Merge V8 5.2.361.47  DO NOT MERGE

https://chromium.googlesource.com/v8/v8/+/5.2.361.47

Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
(cherry picked from commit 537ba893e2530051ec7f296e769fdd37bb4ae4a0)

Bug: 31987131
Bug: 29178923
diff --git a/AUTHORS b/AUTHORS
index 60b6c51..10d4a35 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -40,6 +40,7 @@
 Andreas Anyuru <andreas.anyuru@gmail.com>
 Andrew Paprocki <andrew@ishiboo.com>
 Andrei Kashcha <anvaka@gmail.com>
+Anna Henningsen <addaleax@gmail.com>
 Bangfu Tao <bangfu.tao@samsung.com>
 Ben Noordhuis <info@bnoordhuis.nl>
 Benjamin Tan <demoneaux@gmail.com>
diff --git a/Android.d8.mk b/Android.d8.mk
index d0842ec..24907ab 100644
--- a/Android.d8.mk
+++ b/Android.d8.mk
@@ -47,6 +47,7 @@
 	-Wno-unused-parameter \
 	-Wno-sign-compare \
 	-Wno-missing-field-initializers \
+	-Wno-undefined-var-template \
 	-std=gnu++0x \
 	-O0
 
diff --git a/Android.libv8.mk b/Android.libv8.mk
index 7d10d33..db80f2b 100644
--- a/Android.libv8.mk
+++ b/Android.libv8.mk
@@ -92,6 +92,7 @@
 	-Wno-unused-parameter \
 	-Wno-sign-compare \
 	-Wno-missing-field-initializers \
+	-Wno-undefined-var-template \
 	-fno-exceptions \
 	-fvisibility=hidden \
 	-DENABLE_DEBUGGER_SUPPORT \
diff --git a/Android.v8common.mk b/Android.v8common.mk
index 61a4d20..99bf120 100644
--- a/Android.v8common.mk
+++ b/Android.v8common.mk
@@ -36,6 +36,7 @@
 	src/char-predicates.cc \
 	src/code-factory.cc \
 	src/codegen.cc \
+	src/code-stub-assembler.cc \
 	src/code-stubs.cc \
 	src/code-stubs-hydrogen.cc \
 	src/compilation-cache.cc \
@@ -51,11 +52,10 @@
 	src/compiler/bytecode-branch-analysis.cc \
 	src/compiler/bytecode-graph-builder.cc \
 	src/compiler.cc \
-	src/compiler/change-lowering.cc \
 	src/compiler/c-linkage.cc \
 	src/compiler/coalesced-live-ranges.cc \
+	src/compiler/code-assembler.cc \
 	src/compiler/code-generator.cc \
-	src/compiler/code-stub-assembler.cc \
 	src/compiler/common-node-cache.cc \
 	src/compiler/common-operator.cc \
 	src/compiler/common-operator-reducer.cc \
@@ -63,6 +63,7 @@
 	src/compiler/control-equivalence.cc \
 	src/compiler/control-flow-optimizer.cc \
 	src/compiler/dead-code-elimination.cc \
+	src/compiler/effect-control-linearizer.cc \
 	src/compiler/escape-analysis.cc \
 	src/compiler/escape-analysis-reducer.cc \
 	src/compiler/frame.cc \
@@ -102,6 +103,7 @@
 	src/compiler/loop-peeling.cc \
 	src/compiler/machine-operator.cc \
 	src/compiler/machine-operator-reducer.cc \
+	src/compiler/memory-optimizer.cc \
 	src/compiler/move-optimizer.cc \
 	src/compiler/node-cache.cc \
 	src/compiler/node.cc \
@@ -185,6 +187,7 @@
 	src/extensions/externalize-string-extension.cc \
 	src/extensions/free-buffer-extension.cc \
 	src/extensions/gc-extension.cc \
+	src/extensions/ignition-statistics-extension.cc \
 	src/extensions/statistics-extension.cc \
 	src/extensions/trigger-failure-extension.cc \
 	src/external-reference-table.cc \
@@ -228,7 +231,10 @@
 	src/interface-descriptors.cc \
 	src/interpreter/bytecode-array-builder.cc \
 	src/interpreter/bytecode-array-iterator.cc \
+	src/interpreter/bytecode-array-writer.cc \
 	src/interpreter/bytecode-generator.cc \
+	src/interpreter/bytecode-peephole-optimizer.cc \
+	src/interpreter/bytecode-pipeline.cc \
 	src/interpreter/bytecode-register-allocator.cc \
 	src/interpreter/bytecodes.cc \
 	src/interpreter/constant-array-builder.cc \
@@ -271,6 +277,7 @@
 	src/profiler/sampler.cc \
 	src/profiler/sampling-heap-profiler.cc \
 	src/profiler/strings-storage.cc \
+	src/profiler/tick-sample.cc \
 	src/property.cc \
 	src/property-descriptor.cc \
 	src/regexp/interpreter-irregexp.cc \
@@ -304,7 +311,6 @@
 	src/runtime/runtime-maths.cc \
 	src/runtime/runtime-numbers.cc \
 	src/runtime/runtime-object.cc \
-	src/runtime/runtime-observe.cc \
 	src/runtime/runtime-operators.cc \
 	src/runtime/runtime-proxy.cc \
 	src/runtime/runtime-regexp.cc \
@@ -337,9 +343,9 @@
 	src/type-info.cc \
 	src/types.cc \
 	src/typing-asm.cc \
-	src/typing-reset.cc \
 	src/unicode.cc \
 	src/unicode-decoder.cc \
+	src/uri.cc \
 	src/utils.cc \
 	src/v8.cc \
 	src/v8threads.cc \
@@ -348,6 +354,9 @@
 	src/wasm/ast-decoder.cc \
 	src/wasm/encoder.cc \
 	src/wasm/module-decoder.cc \
+	src/wasm/switch-logic.cc \
+	src/wasm/wasm-external-refs.cc \
+	src/wasm/wasm-function-name-table.cc \
 	src/wasm/wasm-js.cc \
 	src/wasm/wasm-module.cc \
 	src/wasm/wasm-opcodes.cc \
@@ -570,11 +579,8 @@
 	src/js/arraybuffer.js \
 	src/js/typedarray.js \
 	src/js/iterator-prototype.js \
-	src/js/generator.js \
-	src/js/object-observe.js \
 	src/js/collection.js \
 	src/js/weak-collection.js \
-	src/js/collection-iterator.js \
 	src/js/promise.js \
 	src/js/messages.js \
 	src/js/json.js \
@@ -582,6 +588,7 @@
 	src/js/string-iterator.js \
 	src/js/templates.js \
 	src/js/spread.js \
+	src/js/proxy.js \
 	src/debug/mirrors.js \
 	src/debug/debug.js \
 	src/debug/liveedit.js \
@@ -590,14 +597,12 @@
 V8_LOCAL_JS_EXPERIMENTAL_LIBRARY_FILES := \
 	src/js/macros.py \
 	src/messages.h \
-	src/js/proxy.js \
-	src/js/generator.js \
 	src/js/harmony-atomics.js \
 	src/js/harmony-regexp-exec.js \
-	src/js/harmony-object-observe.js \
 	src/js/harmony-sharedarraybuffer.js \
 	src/js/harmony-simd.js \
 	src/js/harmony-species.js \
 	src/js/harmony-unicode-regexps.js \
 	src/js/harmony-string-padding.js \
-	src/js/promise-extra.js
+	src/js/promise-extra.js \
+	src/js/harmony-async-await.js
diff --git a/BUILD.gn b/BUILD.gn
index 28aca24..eec472f 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -18,10 +18,52 @@
 import("snapshot_toolchain.gni")
 
 declare_args() {
+  # Use ICU data file (icudtl.dat) if true or library (shared on windows,
+  # static otherwise).
+  icu_use_data_file_flag = true
+
   # Enable the snapshot feature, for fast context creation.
   # http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html
   v8_use_snapshot = true
 
+  # Use external files for startup data blobs:
+  # the JS builtins sources and the start snapshot.
+  v8_use_external_startup_data = true
+
+  # Sets -DVERIFY_HEAP.
+  v8_enable_verify_heap = false
+
+  # Enable compiler warnings when using V8_DEPRECATED apis.
+  v8_deprecation_warnings = false
+
+  # Enable compiler warnings when using V8_DEPRECATE_SOON apis.
+  v8_imminent_deprecation_warnings = false
+
+  # Sets -dENABLE_DISASSEMBLER.
+  v8_enable_disassembler = false
+
+  # Sets -dENABLE_GDB_JIT_INTERFACE.
+  v8_enable_gdbjit = false
+
+  # Sets -dENABLE_HANDLE_ZAPPING.
+  v8_enable_handle_zapping = is_debug
+
+  # Enable ECMAScript Internationalization API. Enabling this feature will
+  # add a dependency on the ICU library.
+  v8_enable_i18n_support = true
+
+  # Interpreted regexp engine exists as platform-independent alternative
+  # based where the regular expression is compiled to a bytecode.
+  v8_interpreted_regexp = false
+
+  # Sets -dOBJECT_PRINT.
+  v8_object_print = false
+
+  # With post mortem support enabled, metadata is embedded into libv8 that
+  # describes various parameters of the VM for use by debuggers. See
+  # tools/gen-postmortem-metadata.py for details.
+  v8_postmortem_support = false
+
   # Similar to vfp but on MIPS.
   v8_can_use_fpu_instructions = true
 
@@ -29,19 +71,8 @@
   v8_use_mips_abi_hardfloat = true
 }
 
-# TODO(jochen): These will need to be user-settable to support standalone V8
-# builds.
-v8_deprecation_warnings = false
-v8_enable_disassembler = false
-v8_enable_gdbjit = false
-v8_enable_handle_zapping = false
-v8_enable_i18n_support = true
-v8_enable_verify_heap = false
-v8_interpreted_regexp = false
-v8_object_print = false
-v8_postmortem_support = false
 v8_random_seed = "314159265"
-v8_toolset_for_d8 = "host"
+v8_toolset_for_shell = "host"
 
 if (is_msan) {
   # Running the V8-generated code on an ARM simulator is a powerful hack that
@@ -98,6 +129,10 @@
     ]
   }
   include_dirs = [ "include" ]
+  libs = []
+  if (is_android && current_toolchain != host_toolchain) {
+    libs += [ "log" ]
+  }
 }
 
 # This config should only be applied to code that needs to be explicitly
@@ -113,31 +148,34 @@
 
   defines = []
 
-  if (v8_enable_disassembler == true) {
+  if (v8_enable_disassembler) {
     defines += [ "ENABLE_DISASSEMBLER" ]
   }
-  if (v8_enable_gdbjit == true) {
+  if (v8_enable_gdbjit) {
     defines += [ "ENABLE_GDB_JIT_INTERFACE" ]
   }
-  if (v8_object_print == true) {
+  if (v8_object_print) {
     defines += [ "OBJECT_PRINT" ]
   }
-  if (v8_enable_verify_heap == true) {
+  if (v8_enable_verify_heap) {
     defines += [ "VERIFY_HEAP" ]
   }
-  if (v8_interpreted_regexp == true) {
+  if (v8_interpreted_regexp) {
     defines += [ "V8_INTERPRETED_REGEXP" ]
   }
-  if (v8_deprecation_warnings == true) {
+  if (v8_deprecation_warnings) {
     defines += [ "V8_DEPRECATION_WARNINGS" ]
   }
-  if (v8_enable_i18n_support == true) {
+  if (v8_imminent_deprecation_warnings) {
+    defines += [ "V8_IMMINENT_DEPRECATION_WARNINGS" ]
+  }
+  if (v8_enable_i18n_support) {
     defines += [ "V8_I18N_SUPPORT" ]
   }
-  if (v8_enable_handle_zapping == true) {
+  if (v8_enable_handle_zapping) {
     defines += [ "ENABLE_HANDLE_ZAPPING" ]
   }
-  if (v8_use_external_startup_data == true) {
+  if (v8_use_external_startup_data) {
     defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ]
   }
 }
@@ -167,6 +205,7 @@
         "CAN_USE_NEON",
       ]
     }
+
     # TODO(jochen): Add support for arm_test_noprobe.
 
     if (current_cpu != "arm") {
@@ -181,6 +220,7 @@
   if (v8_target_arch == "arm64") {
     defines += [ "V8_TARGET_ARCH_ARM64" ]
   }
+
   # TODO(jochen): Add support for mips.
   if (v8_target_arch == "mipsel") {
     defines += [ "V8_TARGET_ARCH_MIPS" ]
@@ -212,14 +252,17 @@
     } else if (mips_arch_variant == "r1") {
       defines += [ "FPU_MODE_FP32" ]
     }
+
     # TODO(jochen): Add support for mips_arch_variant rx and loongson.
   }
+
   # TODO(jochen): Add support for mips64.
   if (v8_target_arch == "mips64el") {
     defines += [ "V8_TARGET_ARCH_MIPS64" ]
     if (v8_can_use_fpu_instructions) {
       defines += [ "CAN_USE_FPU_INSTRUCTIONS" ]
     }
+
     # TODO(jochen): Add support for big endian host byteorder.
     defines += [ "V8_TARGET_ARCH_MIPS64_LE" ]
     if (v8_use_mips_abi_hardfloat) {
@@ -238,7 +281,7 @@
   }
   if (v8_target_arch == "s390") {
     defines += [ "V8_TARGET_ARCH_S390" ]
-  } 
+  }
   if (v8_target_arch == "s390x") {
     defines += [
       "V8_TARGET_ARCH_S390",
@@ -251,7 +294,7 @@
   if (v8_target_arch == "x64") {
     defines += [ "V8_TARGET_ARCH_X64" ]
   }
-     
+
   if (is_win) {
     defines += [ "WIN32" ]
     # TODO(jochen): Support v8_enable_prof.
@@ -267,8 +310,33 @@
       "OBJECT_PRINT",
       "VERIFY_HEAP",
       "DEBUG",
-      "OPTIMIZED_DEBUG",
+      "TRACE_MAPS",
     ]
+    if (!v8_optimized_debug) {
+      defines += [ "ENABLE_SLOW_DCHECKS" ]
+    }
+  }
+}
+
+###############################################################################
+# Templates
+#
+
+template("v8_source_set") {
+  source_set(target_name) {
+    forward_variables_from(invoker, "*", [ "configs" ])
+    configs += invoker.configs
+    configs -= [ "//build/config/compiler:chromium_code" ]
+    configs += [ "//build/config/compiler:no_chromium_code" ]
+    configs += [
+      ":features",
+      ":toolchain",
+    ]
+
+    if (!is_debug || v8_optimized_debug) {
+      configs -= [ "//build/config/compiler:default_optimization" ]
+      configs += [ "//build/config/compiler:optimize_max" ]
+    }
   }
 }
 
@@ -304,8 +372,6 @@
     "src/js/arraybuffer.js",
     "src/js/typedarray.js",
     "src/js/iterator-prototype.js",
-    "src/js/generator.js",
-    "src/js/object-observe.js",
     "src/js/collection.js",
     "src/js/weak-collection.js",
     "src/js/collection-iterator.js",
@@ -359,10 +425,9 @@
   sources = [
     "src/js/macros.py",
     "src/messages.h",
-    "src/js/generator.js",
+    "src/js/harmony-async-await.js",
     "src/js/harmony-atomics.js",
     "src/js/harmony-regexp-exec.js",
-    "src/js/harmony-object-observe.js",
     "src/js/harmony-sharedarraybuffer.js",
     "src/js/harmony-simd.js",
     "src/js/harmony-species.js",
@@ -375,6 +440,13 @@
     "$target_gen_dir/experimental-libraries.cc",
   ]
 
+  if (v8_enable_i18n_support) {
+    sources += [
+      "src/js/icu-case-mapping.js",
+      "src/js/intl-extra.js",
+    ]
+  }
+
   args = [
            rebase_path("$target_gen_dir/experimental-libraries.cc",
                        root_build_dir),
@@ -580,7 +652,7 @@
 # Source Sets (aka static libraries)
 #
 
-source_set("v8_nosnapshot") {
+v8_source_set("v8_nosnapshot") {
   visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
   deps = [
@@ -599,16 +671,10 @@
     "src/snapshot/snapshot-empty.cc",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config" ]
 }
 
-source_set("v8_snapshot") {
+v8_source_set("v8_snapshot") {
   # Only targets in this file and the top-level visibility target can
   # depend on this.
   visibility = [
@@ -637,17 +703,11 @@
     "$target_gen_dir/snapshot.cc",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config" ]
 }
 
 if (v8_use_external_startup_data) {
-  source_set("v8_external_snapshot") {
+  v8_source_set("v8_external_snapshot") {
     visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
     deps = [
@@ -667,17 +727,11 @@
       "src/snapshot/snapshot-external.cc",
     ]
 
-    configs -= [ "//build/config/compiler:chromium_code" ]
-    configs += [ "//build/config/compiler:no_chromium_code" ]
-    configs += [
-      ":internal_config",
-      ":features",
-      ":toolchain",
-    ]
+    configs = [ ":internal_config" ]
   }
 }
 
-source_set("v8_base") {
+v8_source_set("v8_base") {
   visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
   sources = [
@@ -722,6 +776,7 @@
     "src/ast/ast-literal-reindexer.h",
     "src/ast/ast-numbering.cc",
     "src/ast/ast-numbering.h",
+    "src/ast/ast-type-bounds.h",
     "src/ast/ast-value-factory.cc",
     "src/ast/ast-value-factory.h",
     "src/ast/ast.cc",
@@ -736,7 +791,6 @@
     "src/ast/scopes.h",
     "src/ast/variables.cc",
     "src/ast/variables.h",
-    "src/atomic-utils.h",
     "src/background-parsing-task.cc",
     "src/background-parsing-task.h",
     "src/bailout-reason.cc",
@@ -763,6 +817,8 @@
     "src/checks.h",
     "src/code-factory.cc",
     "src/code-factory.h",
+    "src/code-stub-assembler.cc",
+    "src/code-stub-assembler.h",
     "src/code-stubs-hydrogen.cc",
     "src/code-stubs.cc",
     "src/code-stubs.h",
@@ -796,15 +852,13 @@
     "src/compiler/bytecode-graph-builder.cc",
     "src/compiler/bytecode-graph-builder.h",
     "src/compiler/c-linkage.cc",
-    "src/compiler/change-lowering.cc",
-    "src/compiler/change-lowering.h",
     "src/compiler/coalesced-live-ranges.cc",
     "src/compiler/coalesced-live-ranges.h",
+    "src/compiler/code-assembler.cc",
+    "src/compiler/code-assembler.h",
     "src/compiler/code-generator-impl.h",
     "src/compiler/code-generator.cc",
     "src/compiler/code-generator.h",
-    "src/compiler/code-stub-assembler.cc",
-    "src/compiler/code-stub-assembler.h",
     "src/compiler/common-node-cache.cc",
     "src/compiler/common-node-cache.h",
     "src/compiler/common-operator-reducer.cc",
@@ -820,6 +874,8 @@
     "src/compiler/dead-code-elimination.cc",
     "src/compiler/dead-code-elimination.h",
     "src/compiler/diamond.h",
+    "src/compiler/effect-control-linearizer.cc",
+    "src/compiler/effect-control-linearizer.h",
     "src/compiler/escape-analysis-reducer.cc",
     "src/compiler/escape-analysis-reducer.h",
     "src/compiler/escape-analysis.cc",
@@ -899,6 +955,8 @@
     "src/compiler/machine-operator-reducer.h",
     "src/compiler/machine-operator.cc",
     "src/compiler/machine-operator.h",
+    "src/compiler/memory-optimizer.cc",
+    "src/compiler/memory-optimizer.h",
     "src/compiler/move-optimizer.cc",
     "src/compiler/move-optimizer.h",
     "src/compiler/node-aux-data.h",
@@ -973,6 +1031,7 @@
     "src/conversions-inl.h",
     "src/conversions.cc",
     "src/conversions.h",
+    "src/counters-inl.h",
     "src/counters.cc",
     "src/counters.h",
     "src/crankshaft/compilation-phase.cc",
@@ -1075,6 +1134,8 @@
     "src/extensions/free-buffer-extension.h",
     "src/extensions/gc-extension.cc",
     "src/extensions/gc-extension.h",
+    "src/extensions/ignition-statistics-extension.cc",
+    "src/extensions/ignition-statistics-extension.h",
     "src/extensions/statistics-extension.cc",
     "src/extensions/statistics-extension.h",
     "src/extensions/trigger-failure-extension.cc",
@@ -1177,8 +1238,14 @@
     "src/interpreter/bytecode-array-builder.h",
     "src/interpreter/bytecode-array-iterator.cc",
     "src/interpreter/bytecode-array-iterator.h",
+    "src/interpreter/bytecode-array-writer.cc",
+    "src/interpreter/bytecode-array-writer.h",
     "src/interpreter/bytecode-generator.cc",
     "src/interpreter/bytecode-generator.h",
+    "src/interpreter/bytecode-peephole-optimizer.cc",
+    "src/interpreter/bytecode-peephole-optimizer.h",
+    "src/interpreter/bytecode-pipeline.cc",
+    "src/interpreter/bytecode-pipeline.h",
     "src/interpreter/bytecode-register-allocator.cc",
     "src/interpreter/bytecode-register-allocator.h",
     "src/interpreter/bytecode-traits.h",
@@ -1281,6 +1348,8 @@
     "src/profiler/sampling-heap-profiler.h",
     "src/profiler/strings-storage.cc",
     "src/profiler/strings-storage.h",
+    "src/profiler/tick-sample.cc",
+    "src/profiler/tick-sample.h",
     "src/profiler/unbound-queue-inl.h",
     "src/profiler/unbound-queue.h",
     "src/property-descriptor.cc",
@@ -1332,7 +1401,6 @@
     "src/runtime/runtime-maths.cc",
     "src/runtime/runtime-numbers.cc",
     "src/runtime/runtime-object.cc",
-    "src/runtime/runtime-observe.cc",
     "src/runtime/runtime-operators.cc",
     "src/runtime/runtime-proxy.cc",
     "src/runtime/runtime-regexp.cc",
@@ -1399,8 +1467,6 @@
     "src/types.h",
     "src/typing-asm.cc",
     "src/typing-asm.h",
-    "src/typing-reset.cc",
-    "src/typing-reset.h",
     "src/unicode-cache-inl.h",
     "src/unicode-cache.h",
     "src/unicode-decoder.cc",
@@ -1408,6 +1474,8 @@
     "src/unicode-inl.h",
     "src/unicode.cc",
     "src/unicode.h",
+    "src/uri.cc",
+    "src/uri.h",
     "src/utils-inl.h",
     "src/utils.cc",
     "src/utils.h",
@@ -1427,9 +1495,15 @@
     "src/wasm/decoder.h",
     "src/wasm/encoder.cc",
     "src/wasm/encoder.h",
+    "src/wasm/leb-helper.h",
     "src/wasm/module-decoder.cc",
     "src/wasm/module-decoder.h",
+    "src/wasm/switch-logic.cc",
+    "src/wasm/switch-logic.h",
+    "src/wasm/wasm-external-refs.cc",
     "src/wasm/wasm-external-refs.h",
+    "src/wasm/wasm-function-name-table.cc",
+    "src/wasm/wasm-function-name-table.h",
     "src/wasm/wasm-js.cc",
     "src/wasm/wasm-js.h",
     "src/wasm/wasm-macro-gen.h",
@@ -1664,10 +1738,10 @@
     ]
   } else if (v8_target_arch == "mips64el") {
     sources += [
-      "compiler/mips64/code-generator-mips64.cc",
-      "compiler/mips64/instruction-codes-mips64.h",
-      "compiler/mips64/instruction-scheduler-mips64.cc",
-      "compiler/mips64/instruction-selector-mips64.cc",
+      "src/compiler/mips64/code-generator-mips64.cc",
+      "src/compiler/mips64/instruction-codes-mips64.h",
+      "src/compiler/mips64/instruction-scheduler-mips64.cc",
+      "src/compiler/mips64/instruction-selector-mips64.cc",
       "src/crankshaft/mips64/lithium-codegen-mips64.cc",
       "src/crankshaft/mips64/lithium-codegen-mips64.h",
       "src/crankshaft/mips64/lithium-gap-resolver-mips64.cc",
@@ -1748,18 +1822,7 @@
     ]
   }
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config",
-    ":features",
-    ":toolchain",
-  ]
-
-  if (!is_debug) {
-    configs -= [ "//build/config/compiler:default_optimization" ]
-    configs += [ "//build/config/compiler:optimize_max" ]
-  }
+  configs = [ ":internal_config" ]
 
   defines = []
   deps = [
@@ -1777,8 +1840,13 @@
       deps += [ "//third_party/icu:icudata" ]
     }
 
-    # TODO(jochen): Add support for icu_use_data_file_flag
-    defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ]
+    if (icu_use_data_file_flag) {
+      defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ]
+    } else if (is_win) {
+      defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED" ]
+    } else {
+      defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC" ]
+    }
   } else {
     sources -= [
       "src/i18n.cc",
@@ -1792,13 +1860,14 @@
   }
 }
 
-source_set("v8_libbase") {
+v8_source_set("v8_libbase") {
   visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
   sources = [
     "src/base/accounting-allocator.cc",
     "src/base/accounting-allocator.h",
     "src/base/adapters.h",
+    "src/base/atomic-utils.h",
     "src/base/atomicops.h",
     "src/base/atomicops_internals_arm64_gcc.h",
     "src/base/atomicops_internals_arm_gcc.h",
@@ -1820,6 +1889,7 @@
     "src/base/division-by-constant.cc",
     "src/base/division-by-constant.h",
     "src/base/flags.h",
+    "src/base/format-macros.h",
     "src/base/functional.cc",
     "src/base/functional.h",
     "src/base/iterator.h",
@@ -1850,18 +1920,7 @@
     "src/base/utils/random-number-generator.h",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config_base",
-    ":features",
-    ":toolchain",
-  ]
-
-  if (!is_debug) {
-    configs -= [ "//build/config/compiler:default_optimization" ]
-    configs += [ "//build/config/compiler:optimize_max" ]
-  }
+  configs = [ ":internal_config_base" ]
 
   defines = []
 
@@ -1910,7 +1969,7 @@
   # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris.
 }
 
-source_set("v8_libplatform") {
+v8_source_set("v8_libplatform") {
   sources = [
     "include/libplatform/libplatform.h",
     "src/libplatform/default-platform.cc",
@@ -1921,25 +1980,16 @@
     "src/libplatform/worker-thread.h",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config_base",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config_base" ]
 
-  if (!is_debug) {
-    configs -= [ "//build/config/compiler:default_optimization" ]
-    configs += [ "//build/config/compiler:optimize_max" ]
-  }
+  public_configs = [ ":libplatform_config" ]
 
   deps = [
     ":v8_libbase",
   ]
 }
 
-source_set("fuzzer_support") {
+v8_source_set("fuzzer_support") {
   visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
   sources = [
@@ -1947,19 +1997,15 @@
     "test/fuzzer/fuzzer-support.h",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config_base",
-    ":libplatform_config",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config_base" ]
 
   deps = [
-    ":v8_libplatform",
     snapshot_target,
   ]
+
+  public_deps = [
+    ":v8_libplatform",
+  ]
 }
 
 ###############################################################################
@@ -1978,7 +2024,6 @@
     configs += [ "//build/config/compiler:no_chromium_code" ]
     configs += [
       ":internal_config",
-      ":libplatform_config",
       ":features",
       ":toolchain",
     ]
@@ -1988,6 +2033,7 @@
       ":v8_libplatform",
       ":v8_nosnapshot",
       "//build/config/sanitizers:deps",
+      "//build/win:default_exe_manifest",
     ]
   }
 }
@@ -2016,11 +2062,6 @@
     ]
 
     public_configs = [ ":external_config" ]
-
-    libs = []
-    if (is_android && current_toolchain != host_toolchain) {
-      libs += [ "log" ]
-    }
   }
 } else {
   group("v8") {
@@ -2032,13 +2073,51 @@
   }
 }
 
-if ((current_toolchain == host_toolchain && v8_toolset_for_d8 == "host") ||
-    (current_toolchain == snapshot_toolchain && v8_toolset_for_d8 == "host") ||
-    (current_toolchain != host_toolchain && v8_toolset_for_d8 == "target")) {
-  executable("d8") {
+executable("d8") {
+  sources = [
+    "src/d8.cc",
+    "src/d8.h",
+  ]
+
+  configs -= [ "//build/config/compiler:chromium_code" ]
+  configs += [ "//build/config/compiler:no_chromium_code" ]
+  configs += [
+    # Note: don't use :internal_config here because this target will get
+    # the :external_config applied to it by virtue of depending on :v8, and
+    # you can't have both applied to the same target.
+    ":internal_config_base",
+    ":features",
+    ":toolchain",
+  ]
+
+  deps = [
+    ":d8_js2c",
+    ":v8",
+    ":v8_libplatform",
+    "//build/config/sanitizers:deps",
+    "//build/win:default_exe_manifest",
+  ]
+
+  # TODO(jochen): Add support for vtunejit.
+
+  if (is_posix) {
+    sources += [ "src/d8-posix.cc" ]
+  } else if (is_win) {
+    sources += [ "src/d8-windows.cc" ]
+  }
+
+  if (!is_component_build) {
+    sources += [ "$target_gen_dir/d8-js.cc" ]
+  }
+  if (v8_enable_i18n_support) {
+    deps += [ "//third_party/icu" ]
+  }
+}
+
+if ((current_toolchain == host_toolchain && v8_toolset_for_shell == "host") || (current_toolchain == snapshot_toolchain && v8_toolset_for_shell == "host") || (current_toolchain != host_toolchain && v8_toolset_for_shell == "target")) {
+  executable("v8_shell") {
     sources = [
-      "src/d8.cc",
-      "src/d8.h",
+      "samples/shell.cc",
     ]
 
     configs -= [ "//build/config/compiler:chromium_code" ]
@@ -2053,30 +2132,19 @@
     ]
 
     deps = [
-      ":d8_js2c",
       ":v8",
       ":v8_libplatform",
       "//build/config/sanitizers:deps",
+      "//build/win:default_exe_manifest",
     ]
 
-    # TODO(jochen): Add support for vtunejit.
-
-    if (is_posix) {
-      sources += [ "src/d8-posix.cc" ]
-    } else if (is_win) {
-      sources += [ "src/d8-windows.cc" ]
-    }
-
-    if (!is_component_build) {
-      sources += [ "$target_gen_dir/d8-js.cc" ]
-    }
     if (v8_enable_i18n_support) {
       deps += [ "//third_party/icu" ]
     }
   }
 }
 
-source_set("json_fuzzer") {
+v8_source_set("json_fuzzer") {
   sources = [
     "test/fuzzer/json.cc",
   ]
@@ -2085,17 +2153,10 @@
     ":fuzzer_support",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config",
-    ":libplatform_config",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config" ]
 }
 
-source_set("parser_fuzzer") {
+v8_source_set("parser_fuzzer") {
   sources = [
     "test/fuzzer/parser.cc",
   ]
@@ -2104,17 +2165,10 @@
     ":fuzzer_support",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config",
-    ":libplatform_config",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config" ]
 }
 
-source_set("regexp_fuzzer") {
+v8_source_set("regexp_fuzzer") {
   sources = [
     "test/fuzzer/regexp.cc",
   ]
@@ -2123,17 +2177,10 @@
     ":fuzzer_support",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config",
-    ":libplatform_config",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config" ]
 }
 
-source_set("wasm_fuzzer") {
+v8_source_set("wasm_fuzzer") {
   sources = [
     "test/fuzzer/wasm.cc",
   ]
@@ -2142,17 +2189,10 @@
     ":fuzzer_support",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config",
-    ":libplatform_config",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config" ]
 }
 
-source_set("wasm_asmjs_fuzzer") {
+v8_source_set("wasm_asmjs_fuzzer") {
   sources = [
     "test/fuzzer/wasm-asmjs.cc",
   ]
@@ -2161,12 +2201,5 @@
     ":fuzzer_support",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
-    ":internal_config",
-    ":libplatform_config",
-    ":features",
-    ":toolchain",
-  ]
+  configs = [ ":internal_config" ]
 }
diff --git a/ChangeLog b/ChangeLog
index dc97b80..2bd48c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,2144 +1,1698 @@
-2016-04-06: Version 5.1.281
+2016-05-18: Version 5.2.361
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.280
+2016-05-18: Version 5.2.360
 
         Performance and stability improvements on all platforms.
 
-
-2016-04-05: Version 5.1.279
 
-        Ship --harmony-regexp-exec (issue 4602).
+2016-05-18: Version 5.2.359
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.278
-
-        [V8] Removed debugger V8::PromiseEvent (Chromium issue 526811).
-
-        [asm.js] Fix typing bug for non-literals in heap access (Chromium issue
-        599825).
-
-        Ensure CreateDataProperty works correctly on TypedArrays (Chromium issue
-        596394).
+2016-05-18: Version 5.2.358
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.277
+2016-05-18: Version 5.2.357
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.276
+2016-05-18: Version 5.2.356
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.275
+2016-05-18: Version 5.2.355
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.274
+2016-05-18: Version 5.2.354
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.273
+2016-05-18: Version 5.2.353
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.272
+2016-05-18: Version 5.2.352
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-05: Version 5.1.271
+2016-05-18: Version 5.2.351
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.270
+2016-05-18: Version 5.2.350
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.269
+2016-05-18: Version 5.2.349
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.268
+2016-05-18: Version 5.2.348
 
         Performance and stability improvements on all platforms.
 
-
-2016-04-04: Version 5.1.267
 
-        [api] Restrict Template::Set to take templates or primitive values.
+2016-05-17: Version 5.2.347
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.266
+2016-05-17: Version 5.2.346
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.265
+2016-05-17: Version 5.2.345
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.264
+2016-05-17: Version 5.2.344
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.263
+2016-05-17: Version 5.2.343
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.262
+2016-05-17: Version 5.2.342
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.261
+2016-05-17: Version 5.2.341
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.260
+2016-05-17: Version 5.2.340
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-04: Version 5.1.259
+2016-05-17: Version 5.2.339
 
-        Further ES2015 RegExp spec compliance fixes (issue 4602).
+        [wasm] remove extra nops in asm-wasm (issue 4203).
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-03: Version 5.1.258
+2016-05-17: Version 5.2.338
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-02: Version 5.1.257
+2016-05-17: Version 5.2.337
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-02: Version 5.1.256
+2016-05-17: Version 5.2.336
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-02: Version 5.1.255
+2016-05-17: Version 5.2.335
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.254
+2016-05-17: Version 5.2.334
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.253
+2016-05-17: Version 5.2.333
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.252
+2016-05-17: Version 5.2.332
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.251
+2016-05-16: Version 5.2.331
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.250
-
-        Performance and stability improvements on all platforms.
-
-
-2016-04-01: Version 5.1.249
+2016-05-16: Version 5.2.330
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.248
+2016-05-16: Version 5.2.329
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.247
+2016-05-16: Version 5.2.328
 
-        Performance and stability improvements on all platforms.
+        Add UseCounter for decimal with leading zero (issue 4973).
 
-
-2016-04-01: Version 5.1.246
+        [esnext] implement frontend changes for async/await proposal (issue
+        4483).
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.245
+2016-05-16: Version 5.2.327
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.244
+2016-05-15: Version 5.2.326
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.243
+2016-05-14: Version 5.2.325
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.242
+2016-05-14: Version 5.2.324
 
         Performance and stability improvements on all platforms.
 
 
-2016-04-01: Version 5.1.241
-
-        [GN] Define USE_EABI_HARDFLOAT=1 when arm_float_abi=="hard" (Chromium
-        issue 592660).
-
-        Ship --harmony-regexp-exec (issue 4602).
+2016-05-13: Version 5.2.323
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.240
+2016-05-13: Version 5.2.322
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.239
+2016-05-13: Version 5.2.321
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.238
+2016-05-13: Version 5.2.320
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.237
+2016-05-13: Version 5.2.319
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.236
+2016-05-13: Version 5.2.318
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.235
+2016-05-13: Version 5.2.317
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.234
-
-        [arm/Linux] Don't rely on KUSER_HELPERS feature (Chromium issue 599051).
+2016-05-13: Version 5.2.316
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.233
+2016-05-13: Version 5.2.315
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.232
+2016-05-13: Version 5.2.314
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.231
-
-        Turn scavenge_reclaim_unmodified_objects on by default (Chromium issue
-        4880).
+2016-05-13: Version 5.2.313
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.230
+2016-05-13: Version 5.2.312
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.229
+2016-05-13: Version 5.2.311
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.228
-
-        Performance and stability improvements on all platforms.
-
+2016-05-13: Version 5.2.310
 
-2016-03-31: Version 5.1.227
+        [api] Clarify expectations of ArrayBuffer::Allocator in API (Chromium
+        issue 611688).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.226
+2016-05-13: Version 5.2.309
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.225
+2016-05-13: Version 5.2.308
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.224
+2016-05-13: Version 5.2.307
 
-        Raise minimum Mac OS version to 10.7 (issue 4847).
+        In parallel to the strict octal check that would reject `012` in strict
+        mode, this patch collects UseCounters for `089` in strict mode. The spec
+        says this should be an error, but this patch does not report it as such
+        (issue 4973).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-31: Version 5.1.223
+2016-05-12: Version 5.2.306
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-30: Version 5.1.222
+2016-05-12: Version 5.2.305
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-30: Version 5.1.221
+2016-05-12: Version 5.2.304
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-30: Version 5.1.220
-
-        Stage --harmony-regexp-exec (issue 4602).
-
-        Add fast paths for native RegExps in ES2015 subclass-aware code (issue
-        4602).
-
-        [V8] Add FunctionMirror.prototype.contextDebugId method (Chromium issue
-        595206).
+2016-05-12: Version 5.2.303
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-30: Version 5.1.219
-
-        Remove RegExp.prototype.source getter compat workaround (issue 4827,
-        Chromium issue 581577).
-
-        Check for proper types from error handling code (Chromium issue 596718).
-
-        Add ES2015 RegExp full subclassing semantics behind a flag (issue 4602).
+2016-05-12: Version 5.2.302
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-24: Version 5.1.218
+2016-05-12: Version 5.2.301
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-24: Version 5.1.217
-
-        [esnext] implement String padding proposal.
+2016-05-12: Version 5.2.300
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-24: Version 5.1.216
+2016-05-12: Version 5.2.299
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-24: Version 5.1.215
+2016-05-12: Version 5.2.298
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-24: Version 5.1.214
+2016-05-12: Version 5.2.297
 
         Performance and stability improvements on all platforms.
 
-
-2016-03-23: Version 5.1.213
 
-        Implement ES2015 labelled function declaration restrictions (Chromium
-        issue 595309).
+2016-05-12: Version 5.2.296
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.212
+2016-05-12: Version 5.2.295
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.211
+2016-05-11: Version 5.2.294
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.210
+2016-05-11: Version 5.2.293
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.209
+2016-05-11: Version 5.2.292
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.208
+2016-05-11: Version 5.2.291
 
-        Performance and stability improvements on all platforms.
-
-
-2016-03-23: Version 5.1.207
+        Use ICU case conversion/transliterator for case conversion (issues 4476,
+        4477).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.206
+2016-05-11: Version 5.2.290
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.205
+2016-05-11: Version 5.2.289
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.204
+2016-05-11: Version 5.2.288
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.203
+2016-05-11: Version 5.2.287
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.202
+2016-05-11: Version 5.2.286
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.201
+2016-05-11: Version 5.2.285
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-23: Version 5.1.200
+2016-05-11: Version 5.2.284
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-22: Version 5.1.199
+2016-05-10: Version 5.2.283
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-22: Version 5.1.198
-
-        Performance and stability improvements on all platforms.
-
+2016-05-10: Version 5.2.282
 
-2016-03-22: Version 5.1.197
+        Fix Map::AsArray to properly iterate over the backing store (issue
+        4946).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-22: Version 5.1.196
-
-        Performance and stability improvements on all platforms.
-
+2016-05-10: Version 5.2.281
 
-2016-03-22: Version 5.1.195
+        Remove LOG line checking from presubmit.
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-22: Version 5.1.194
-
-        Fix match default behavior on strings for ES2015 semantics (issue 4602).
+2016-05-10: Version 5.2.280
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-22: Version 5.1.193
+2016-05-10: Version 5.2.279
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-22: Version 5.1.192
+2016-05-10: Version 5.2.278
 
         Performance and stability improvements on all platforms.
 
-
-2016-03-22: Version 5.1.191
 
-        [Interpreter] TurboFan implementation of intrinsics (issue 4822).
+2016-05-10: Version 5.2.277
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-22: Version 5.1.190
+2016-05-10: Version 5.2.276
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.189
+2016-05-10: Version 5.2.275
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.188
+2016-05-10: Version 5.2.274
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.187
+2016-05-10: Version 5.2.273
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.186
+2016-05-10: Version 5.2.272
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.185
+2016-05-10: Version 5.2.271
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.184
+2016-05-10: Version 5.2.270
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.183
+2016-05-10: Version 5.2.269
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.182
+2016-05-10: Version 5.2.268
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.181
+2016-05-10: Version 5.2.267
 
-        Temporarily undeprecate ForceSet (Chromium issue 595601).
+        Various species micro-optimizations (Chromium issue 609739).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-21: Version 5.1.180
+2016-05-09: Version 5.2.266
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-20: Version 5.1.179
+2016-05-09: Version 5.2.265
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-20: Version 5.1.178
+2016-05-09: Version 5.2.264
 
-        Performance and stability improvements on all platforms.
-
-
-2016-03-20: Version 5.1.177
+        Fix TypedArray Property optimizations (Chromium issue 593634).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-19: Version 5.1.176
+2016-05-09: Version 5.2.263
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-18: Version 5.1.175
+2016-05-09: Version 5.2.262
 
-        Performance and stability improvements on all platforms.
-
-
-2016-03-18: Version 5.1.174
+        [V8] Add v8::Value::TypeOf to API (Chromium issue 595206).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-18: Version 5.1.173
-
-        Parser: Make skipping HTML comments optional (Chromium issue 573887).
-
-        [es7] implement exponentiation operator proposal (issue 3915).
+2016-05-09: Version 5.2.261
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-18: Version 5.1.172
+2016-05-09: Version 5.2.260
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-18: Version 5.1.171
-
-        Performance and stability improvements on all platforms.
-
+2016-05-09: Version 5.2.259
 
-2016-03-18: Version 5.1.170
+        Expose IsConstructor to the C++ API (issue 4993).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-18: Version 5.1.169
+2016-05-09: Version 5.2.258
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.168
+2016-05-09: Version 5.2.257
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.167
-
-        Throw the right exceptions from setting elements in
-        Array.prototype.concat (Chromium issue 595319).
+2016-05-09: Version 5.2.256
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.166
-
-        Throw exceptions from CreateDataProperty when should_throw (Chromium
-        issue 595319).
+2016-05-09: Version 5.2.255
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.165
+2016-05-09: Version 5.2.254
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.164
+2016-05-08: Version 5.2.253
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.163
+2016-05-07: Version 5.2.252
 
-        Performance and stability improvements on all platforms.
-
-
-2016-03-17: Version 5.1.162
+        fix Set::AsArray to not leave undefined holes in output array (issue
+        4946).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.161
+2016-05-06: Version 5.2.251
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.160
+2016-05-06: Version 5.2.250
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.159
+2016-05-06: Version 5.2.249
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.158
+2016-05-06: Version 5.2.248
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.157
+2016-05-06: Version 5.2.247
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.156
+2016-05-06: Version 5.2.246
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.155
+2016-05-06: Version 5.2.245
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.154
+2016-05-06: Version 5.2.244
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.153
+2016-05-06: Version 5.2.243
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.152
+2016-05-04: Version 5.2.242
 
         Performance and stability improvements on all platforms.
 
-
-2016-03-17: Version 5.1.151
 
-        Move FastAccessorAssembler from RawMachineAssembler to CodeStubAssembler
-        (Chromium issue 508898).
+2016-05-04: Version 5.2.241
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.150
-
-        [serializer] Add API to warm up startup snapshot with an additional
-        script (issue 4836).
+2016-05-04: Version 5.2.240
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.149
+2016-05-04: Version 5.2.239
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.148
+2016-05-04: Version 5.2.238
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-17: Version 5.1.147
+2016-05-04: Version 5.2.237
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-16: Version 5.1.146
+2016-05-04: Version 5.2.236
 
-        Ship ES2015 restrictions on function declaration locations (issue 4824).
+        S390: Add HasProperty code stub that tries simple lookups or jumps to
+        runtime otherwise (issue 2743).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-16: Version 5.1.145
+2016-05-04: Version 5.2.235
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-16: Version 5.1.144
+2016-05-04: Version 5.2.234
 
-        Performance and stability improvements on all platforms.
-
-
-2016-03-16: Version 5.1.143
-
-        Performance and stability improvements on all platforms.
-
+        Make array __proto__ manipulations not disturb the species protector
+        (Chromium issue 606207).
 
-2016-03-16: Version 5.1.142
+        Add v8::Object::GetOwnPropertyNames(context, filter) method (issue 3861,
+        Chromium issue 581495).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-16: Version 5.1.141
+2016-05-04: Version 5.2.233
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-16: Version 5.1.140
-
-        Put RegExp js code in strict mode (issue 4504).
+2016-05-04: Version 5.2.232
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.139
+2016-05-04: Version 5.2.231
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.138
-
-        [builtins] Fix Array.prototype.concat bug (Chromium issue 594574).
+2016-05-04: Version 5.2.230
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.137
+2016-05-04: Version 5.2.229
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.136
+2016-05-04: Version 5.2.228
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.135
+2016-05-04: Version 5.2.227
 
-        Ship Array.prototype.values (issue 4247).
+        MIPS64: Fix [turbofan] Length and index2 are unsigned in
+        CheckedLoad/CheckedStore (Chromium issue 599717).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.134
+2016-05-04: Version 5.2.226
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.133
+2016-05-04: Version 5.2.225
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.132
+2016-05-04: Version 5.2.224
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.131
+2016-05-04: Version 5.2.223
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.130
+2016-05-04: Version 5.2.222
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.129
+2016-05-04: Version 5.2.221
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-15: Version 5.1.128
+2016-05-04: Version 5.2.220
 
-        Performance and stability improvements on all platforms.
-
-
-2016-03-14: Version 5.1.127
+        [wasm] Fix for 608630: allow proxies as FFI (Chromium issue 608630).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-14: Version 5.1.126
-
-        Remove --harmony-modules flag and let embedder decide when modules are
-        used (issue 1569, Chromium issue 594639).
+2016-05-04: Version 5.2.219
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-14: Version 5.1.125
-
-        Make test262 test runner check for which exception is thrown (issue
-        4803).
+2016-05-03: Version 5.2.218
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-14: Version 5.1.124
+2016-05-03: Version 5.2.217
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-14: Version 5.1.123
+2016-05-03: Version 5.2.216
 
-        Performance and stability improvements on all platforms.
+        [wasm] Disallow runtime calls in asm.js modules (Chromium issue 592352).
 
+        [API] remove (deprecated) hidden properties.
 
-2016-03-14: Version 5.1.122
-
-        Performance and stability improvements on all platforms.
+        [wasm] Fix bug with empty input to Wasm.instantiateModuleFromAsm()
+        (Chromium issue 605488).
 
+        Add HasProperty code stub that tries simple lookups or jumps to runtime
+        otherwise (issue 2743).
 
-2016-03-14: Version 5.1.121
+        Fix ExternalTwobyteStringUtf16CharacterStream::PushBack(kEndOfInput)
+        (Chromium issue 607903).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-14: Version 5.1.120
+2016-05-03: Version 5.2.215
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-14: Version 5.1.119
+2016-05-03: Version 5.2.214
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-13: Version 5.1.118
+2016-05-03: Version 5.2.213
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-11: Version 5.1.117
+2016-05-03: Version 5.2.212
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-11: Version 5.1.116
+2016-05-03: Version 5.2.211
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-11: Version 5.1.115
+2016-05-02: Version 5.2.210
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-11: Version 5.1.114
-
-        [arm64] Fix i/d cache line size confusion typo (Chromium issue 593867).
+2016-05-02: Version 5.2.209
 
         Performance and stability improvements on all platforms.
 
-
-2016-03-11: Version 5.1.113
 
-        Fix expression positions for for-loops (issue 4690).
+2016-05-02: Version 5.2.208
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-11: Version 5.1.112
+2016-05-02: Version 5.2.207
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-11: Version 5.1.111
+2016-05-02: Version 5.2.206
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.110
-
-        Minor library function fixes for TypedArray spec compliance (issue
-        4785).
-
-        Check that Promise subclasses have callable resolve/reject (issue 4633).
+2016-05-02: Version 5.2.205
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.109
+2016-05-02: Version 5.2.204
 
-        Performance and stability improvements on all platforms.
-
-
-2016-03-10: Version 5.1.108
+        [debugger] Add JSProxy support in Runtime::GetInternalProperties
+        (Chromium issue 588705).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.107
+2016-05-02: Version 5.2.203
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.106
+2016-05-02: Version 5.2.202
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.105
+2016-05-02: Version 5.2.201
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.104
+2016-05-02: Version 5.2.200
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.103
+2016-05-02: Version 5.2.199
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.102
+2016-05-02: Version 5.2.198
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.101
+2016-05-02: Version 5.2.197
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.100
-
-        [strong] Remove all remainders of strong mode (issue 3956).
+2016-05-02: Version 5.2.196
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.99
-
-        Marks the label associated with the runtime call in
-        CodeStubAssembler::Allocate as deferred (Chromium issue 593359).
+2016-05-02: Version 5.2.195
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.98
-
-        Implement iterator finalization in array destructuring (issue 3566).
+2016-05-02: Version 5.2.194
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.97
+2016-05-02: Version 5.2.193
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.96
+2016-05-02: Version 5.2.192
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-10: Version 5.1.95
-
-        String.prototype[Symbol.iterator] does RequireObjectCoercible(this)
-        (issue 4348).
-
-        Stage restrictive declarations flag (issue 4824).
-
-        Expose Array.prototype.values behind a flag and stage it (issue 4247).
+2016-05-02: Version 5.2.191
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.94
+2016-05-01: Version 5.2.190
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.93
-
-        Ensure appropriate bounds checking for Array subclass concat (Chromium
-        issue 592340).
+2016-05-01: Version 5.2.189
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.92
+2016-04-30: Version 5.2.188
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.91
+2016-04-30: Version 5.2.187
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.90
+2016-04-30: Version 5.2.186
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.89
+2016-04-29: Version 5.2.185
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.88
+2016-04-29: Version 5.2.184
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.87
+2016-04-29: Version 5.2.183
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.86
+2016-04-29: Version 5.2.182
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.85
+2016-04-29: Version 5.2.181
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-09: Version 5.1.84
+2016-04-29: Version 5.2.180
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.83
+2016-04-29: Version 5.2.179
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.82
+2016-04-29: Version 5.2.178
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.81
-
-        Optimize new TypedArray(typedArray) constructor (Chromium issue 592007).
-
-        Ensure the @@species protector is updated for accessors (issue 4093).
+2016-04-29: Version 5.2.177
 
-        Add UseCounters for various RegExp compatibility issues (Chromium issue
-        581577).
+        Fix overflow issue in Zone::New (Chromium issue 606115).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.80
+2016-04-29: Version 5.2.176
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.79
+2016-04-29: Version 5.2.175
 
-        Performance and stability improvements on all platforms.
-
+        [wasm] Binary 11: Bump module version to 0xB. [wasm] Binary 11: Swap the
+        order of section name / section length. [wasm] Binary 11: Shorter
+        section names. [wasm] Binary 11: Add a prefix for function type
+        declarations. [wasm] Binary 11: Function types encoded as pcount, p*,
+        rcount, r* [wasm] Fix numeric names for functions (Chromium issue
+        575167).
 
-2016-03-08: Version 5.1.78
+        [wasm] Binary 11: WASM AST is now postorder. [wasm] Binary 11: br_table
+        takes a value. [wasm] Binary 11: Add implicit blocks to if arms. [wasm]
+        Binary 11: Add arities to call, return, and breaks [wasm] Binary 11: Add
+        experimental version (Chromium issue 575167).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.77
-
-        Performance and stability improvements on all platforms.
-
+2016-04-29: Version 5.2.174
 
-2016-03-08: Version 5.1.76
+        Add checks for detached ArrayBuffers to ArrayBuffer.prototype.slice
+        (issue 4964).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.75
+2016-04-28: Version 5.2.173
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.74
+2016-04-28: Version 5.2.172
 
         Performance and stability improvements on all platforms.
 
-
-2016-03-08: Version 5.1.73
-
-        Performance and stability improvements on all platforms.
 
+2016-04-28: Version 5.2.171
 
-2016-03-08: Version 5.1.72
+        Ship for-in initializer deprecation (issue 4942).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-08: Version 5.1.71
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.70
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.69
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.68
-
-        [key-accumulator] Starting to reimplement the key-accumulator (issue
-        4758, Chromium issue 545503).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.67
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.66
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.65
-
-        [key-accumulator] Starting to reimplement the key-accumulator (issue
-        4758, Chromium issue 545503).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.64
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.63
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.62
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.61
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.60
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.59
-
-        Use v8::kGCCallbackFlagCollectAllAvailableGarbage in
-        Heap::CollectAllAvailableGarbage (Chromium issue 591463).
-
-        [key-accumulator] Starting to reimplement the key-accumulator (issue
-        4758, Chromium issue 545503).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.58
-
-        [regexp] Fix off-by-one in CharacterRange::Negate (Chromium issue
-        592343).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.57
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-07: Version 5.1.56
-
-        Use v8::kGCCallbackFlagCollectAllAvailableGarbage in
-        Heap::CollectAllAvailableGarbage (Chromium issue 591463).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-06: Version 5.1.55
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-06: Version 5.1.54
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.53
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.52
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.51
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.50
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.49
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.48
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.47
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.46
-
-        Introduce v8::MicrotasksScope (Chromium issue 585949).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.45
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.44
-
-        Use a different GCCallbackFlag for GCs triggered by
-        CollectAllAvailableGarbage (Chromium issue 591463).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.43
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.42
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.41
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.40
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.39
-
-        Ship ES2015 Function.name reform (issue 3699, Chromium issue 588803).
-
-        Introduce v8::MicrotasksScope (Chromium issue 585949).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-04: Version 5.1.38
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-03: Version 5.1.37
-
-        Restrict FunctionDeclarations in Statement position (issue 4647).
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-03: Version 5.1.36
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-03: Version 5.1.35
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-03: Version 5.1.34
-
-        Performance and stability improvements on all platforms.
-
-
-2016-03-03: Version 5.1.33
-
-        Performance and stability improvements on all platforms.
-
+2016-04-28: Version 5.2.170
 
-2016-03-03: Version 5.1.32
+        Add GC request to libFuzzers in attempt to avoid parasitic coverage
+        (Chromium issue 584819).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-03: Version 5.1.31
+2016-04-28: Version 5.2.169
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-03: Version 5.1.30
+2016-04-28: Version 5.2.168
 
-        Implement TypedArray(typedarray) constructor (issue 4726).
+        Prevent unnecessary memory (de-)allocations in LiteralBuffer::CopyFrom
+        (issue 4947).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-02: Version 5.1.29
+2016-04-28: Version 5.2.167
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-02: Version 5.1.28
-
-        [turbofan] Adds an Allocate macro to the CodeStubAssembler (Chromium
-        issue 588692).
+2016-04-28: Version 5.2.166
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-02: Version 5.1.27
+2016-04-28: Version 5.2.165
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-02: Version 5.1.26
+2016-04-28: Version 5.2.164
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-02: Version 5.1.25
+2016-04-27: Version 5.2.163
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-02: Version 5.1.24
-
-        Devtools: expose scopes source location to debugger (Chromium issue
-        327092).
-
-        CodeStubAssembler can generate code for builtins (issue 4614).
+2016-04-27: Version 5.2.162
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.23
+2016-04-27: Version 5.2.161
 
-        Performance and stability improvements on all platforms.
+        [esnext] stage --harmony-string-padding (issue 4954).
 
-
-2016-03-01: Version 5.1.22
+        Disallow generator declarations in certain locations (issue 4824).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.21
+2016-04-27: Version 5.2.160
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.20
-
-        Performance and stability improvements on all platforms.
-
+2016-04-27: Version 5.2.159
 
-2016-03-01: Version 5.1.19
+        [api] Expose FunctionCallbackInfo::NewTarget (issue 4261).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.18
+2016-04-27: Version 5.2.158
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.17
+2016-04-27: Version 5.2.157
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.16
+2016-04-27: Version 5.2.156
 
-        Performance and stability improvements on all platforms.
-
-
-2016-03-01: Version 5.1.15
+        [es8] Report proper syntax error for tail call expressions in for-in and
+        for-of bodies (issue 4915).
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.14
+2016-04-27: Version 5.2.155
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.13
+2016-04-27: Version 5.2.154
 
         Performance and stability improvements on all platforms.
 
 
-2016-03-01: Version 5.1.12
+2016-04-27: Version 5.2.153
 
         Performance and stability improvements on all platforms.
 
-
-2016-03-01: Version 5.1.11
 
-        Make %TypedArray%.from spec-compliant (issue 4782).
+2016-04-27: Version 5.2.152
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-29: Version 5.1.10
+2016-04-27: Version 5.2.151
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-29: Version 5.1.9
+2016-04-26: Version 5.2.150
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-28: Version 5.1.8
+2016-04-26: Version 5.2.149
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-28: Version 5.1.7
+2016-04-26: Version 5.2.148
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-28: Version 5.1.6
-
-        Performance and stability improvements on all platforms.
-
+2016-04-26: Version 5.2.147
 
-2016-02-28: Version 5.1.5
+        Do not penalize performance when --harmony-species is off (Chromium
+        issue 606207).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-28: Version 5.1.4
+2016-04-26: Version 5.2.146
 
-        Performance and stability improvements on all platforms.
-
-
-2016-02-28: Version 5.1.3
+        [es8] Initial set of changes to support syntactic tail calls (issue
+        4915).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-28: Version 5.1.2
+2016-04-26: Version 5.2.145
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-27: Version 5.1.1
-
-        Fix strict mode function error message (issue 2198).
-
-        Reland of Make Intl install properties more like how other builtins do
-        (patchset #1 id:1 of https://codereview.chromium.org/1733293003/ )
-        (issue 4778).
-
-        [turbofan] Bailout if LoadBuffer typing assumption doesn't hold
-        (Chromium issue 589792).
+2016-04-26: Version 5.2.144
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-26: Version 5.0.104
-
-        Performance and stability improvements on all platforms.
-
-
-2016-02-26: Version 5.0.103
-
-        Make Intl install properties more like how other builtins do (issue
-        4778).
+2016-04-26: Version 5.2.143
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-26: Version 5.0.102
-
-        Make TypedArray.from and TypedArray.of writable and configurable (issue
-        4315).
+2016-04-26: Version 5.2.142
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.101
+2016-04-26: Version 5.2.141
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.100
-
-        Ship ES2015 iterator finalization (issue 3566).
+2016-04-26: Version 5.2.140
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.99
-
-        Introduce MicrotasksCompletedCallback (Chromium issue 585949).
+2016-04-26: Version 5.2.139
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.98
+2016-04-26: Version 5.2.138
 
-        Performance and stability improvements on all platforms.
-
-
-2016-02-25: Version 5.0.97
+        [es6] Fix tail call elimination in single-expression arrow functions
+        (issue 4698).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.96
+2016-04-26: Version 5.2.137
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.95
+2016-04-25: Version 5.2.136
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.94
+2016-04-25: Version 5.2.135
 
-        Performance and stability improvements on all platforms.
-
-
-2016-02-25: Version 5.0.93
+        Widen --harmony-for-in flag to throw errors in PreParser (issue 4942).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.92
+2016-04-25: Version 5.2.134
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.91
+2016-04-25: Version 5.2.133
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.90
+2016-04-25: Version 5.2.132
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.89
+2016-04-25: Version 5.2.131
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.88
+2016-04-25: Version 5.2.130
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.87
+2016-04-25: Version 5.2.129
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.86
+2016-04-25: Version 5.2.128
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-25: Version 5.0.85
+2016-04-25: Version 5.2.127
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.84
+2016-04-25: Version 5.2.126
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.83
+2016-04-25: Version 5.2.125
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.82
-
-        Ensure IteratorClose is called for errors in non-declaring assignments
-        (issue 4776).
-
-        Fix priority of exceptions being thrown from for-of loops (issue 4775).
+2016-04-25: Version 5.2.124
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.81
+2016-04-25: Version 5.2.123
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.80
-
-        Encode interpreter::SourcePositionTable as variable-length ints (issue
-        4690).
-
-        Stage ES2015 iterator finalization (issue 3566).
+2016-04-25: Version 5.2.122
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.79
+2016-04-22: Version 5.2.121
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.78
+2016-04-22: Version 5.2.120
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.77
+2016-04-22: Version 5.2.119
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.76
+2016-04-22: Version 5.2.118
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-24: Version 5.0.75
+2016-04-22: Version 5.2.117
 
-        Performance and stability improvements on all platforms.
-
-
-2016-02-24: Version 5.0.74
+        [debugger] Hide scopes that originate from desugaring (Chromium issue
+        604458).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-23: Version 5.0.73
-
-        Intl: Use private symbols to memoize bound functions (issue 3785).
-
-        Ensure Array.prototype.indexOf returns +0 rather than -0.
-
-        Ship ES2015 Symbol.species (issue 4093).
+2016-04-22: Version 5.2.116
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-23: Version 5.0.72
+2016-04-22: Version 5.2.115
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-23: Version 5.0.71
+2016-04-21: Version 5.2.114
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-23: Version 5.0.70
+2016-04-21: Version 5.2.113
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-23: Version 5.0.69
+2016-04-21: Version 5.2.112
 
-        Performance and stability improvements on all platforms.
-
-
-2016-02-23: Version 5.0.68
+        [ic] Restore PROPERTY key tracking in keyed ICs (Chromium issue 594183).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-23: Version 5.0.67
+2016-04-21: Version 5.2.111
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-23: Version 5.0.66
+2016-04-21: Version 5.2.110
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.65
+2016-04-21: Version 5.2.109
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.64
-
-        ES2015 web compat workaround: RegExp.prototype.flags => "" (Chromium
-        issue 581577).
-
-        Remove the Proxy enumerate trap (issue 4768).
+2016-04-21: Version 5.2.108
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.63
+2016-04-21: Version 5.2.107
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.62
-
-        Remove Reflect.enumerate (issue 4768).
+2016-04-21: Version 5.2.106
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.61
+2016-04-21: Version 5.2.105
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.60
+2016-04-21: Version 5.2.104
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.59
+2016-04-21: Version 5.2.103
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.58
+2016-04-21: Version 5.2.102
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.57
+2016-04-20: Version 5.2.101
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.56
+2016-04-20: Version 5.2.100
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.55
+2016-04-20: Version 5.2.99
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-22: Version 5.0.54
+2016-04-20: Version 5.2.98
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-21: Version 5.0.53
+2016-04-20: Version 5.2.97
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-21: Version 5.0.52
+2016-04-20: Version 5.2.96
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-21: Version 5.0.51
+2016-04-20: Version 5.2.95
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-21: Version 5.0.50
+2016-04-20: Version 5.2.94
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-21: Version 5.0.49
+2016-04-20: Version 5.2.93
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-21: Version 5.0.48
+2016-04-20: Version 5.2.92
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-20: Version 5.0.47
+2016-04-20: Version 5.2.91
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-20: Version 5.0.46
+2016-04-20: Version 5.2.90
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.45
+2016-04-20: Version 5.2.89
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.44
+2016-04-20: Version 5.2.88
 
-        Return undefined from RegExp.prototype.compile (Chromium issue 585775).
+        [turbofan] Length and index2 are unsigned in CheckedLoad/CheckedStore
+        (Chromium issue 599717).
 
-        Performance and stability improvements on all platforms.
-
-
-2016-02-19: Version 5.0.43
-
-        Disable --harmony-object-observe (Chromium issue 552100).
+        Prevent un-parsed LiteralFunction reaching the compiler (Chromium issue
+        604044).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.42
-
-        Introduce BeforeCallEnteredCallback (Chromium issue 585949).
+2016-04-20: Version 5.2.87
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.41
+2016-04-20: Version 5.2.86
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.40
+2016-04-19: Version 5.2.85
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.39
+2016-04-19: Version 5.2.84
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.38
-
-        [wasm] Add support for import section (Chromium issue 575167).
+2016-04-19: Version 5.2.83
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.37
+2016-04-19: Version 5.2.82
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.36
+2016-04-19: Version 5.2.81
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.35
+2016-04-19: Version 5.2.80
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.34
+2016-04-19: Version 5.2.79
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.33
+2016-04-19: Version 5.2.78
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.32
+2016-04-19: Version 5.2.77
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.31
+2016-04-19: Version 5.2.76
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.30
-
-        Mark old SetAccessCheckCallback as deprecated.
+2016-04-19: Version 5.2.75
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.29
+2016-04-19: Version 5.2.74
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.28
+2016-04-19: Version 5.2.73
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.27
+2016-04-19: Version 5.2.72
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-19: Version 5.0.26
+2016-04-19: Version 5.2.71
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.25
+2016-04-19: Version 5.2.70
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.24
-
-        Make Date.prototype.toGMTString an alias for Date.prototype.toUTCString
-        (issue 4708).
+2016-04-19: Version 5.2.69
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.23
+2016-04-19: Version 5.2.68
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.22
+2016-04-19: Version 5.2.67
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.21
+2016-04-19: Version 5.2.66
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.20
+2016-04-18: Version 5.2.65
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.19
+2016-04-18: Version 5.2.64
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.18
+2016-04-18: Version 5.2.63
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.17
+2016-04-18: Version 5.2.62
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.16
+2016-04-18: Version 5.2.61
 
-        [es6] Implement for-of iterator finalization (issue 2214).
+        [Atomics] Remove Atomics code stubs; use TF ops (issue 4614).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.15
+2016-04-18: Version 5.2.60
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.14
-
-        Use displayName in Error.stack rendering if present (issue 4761).
+2016-04-18: Version 5.2.59
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.13
+2016-04-18: Version 5.2.58
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.12
+2016-04-18: Version 5.2.57
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-18: Version 5.0.11
+2016-04-18: Version 5.2.56
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-17: Version 5.0.10
-
-        [Atomics] Add dmb/dsb/isb instructions to ARM (issue 4614).
+2016-04-18: Version 5.2.55
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-17: Version 5.0.9
+2016-04-18: Version 5.2.54
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-17: Version 5.0.8
+2016-04-18: Version 5.2.53
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-17: Version 5.0.7
+2016-04-18: Version 5.2.52
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-17: Version 5.0.6
+2016-04-18: Version 5.2.51
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-17: Version 5.0.5
+2016-04-18: Version 5.2.50
 
-        Performance and stability improvements on all platforms.
-
-
-2016-02-17: Version 5.0.4
+        [Atomics] Remove Atomics code stubs; use TF ops (issue 4614).
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-17: Version 5.0.3
+2016-04-18: Version 5.2.49
 
-        Performance and stability improvements on all platforms.
-
-
-2016-02-17: Version 5.0.2
+        [api] Bring back finalizers on global handles.
 
         Performance and stability improvements on all platforms.
 
 
-2016-02-17: Version 5.0.1
+2016-02-17: Sentinel
 
-        Performance and stability improvements on all platforms.
-
+        The ChangeLog file is no longer maintained on master. This
+        sentinel should stay on top of this list.
 
 2016-02-17: Version 4.10.253
 
@@ -7268,12 +6822,6 @@
         Performance and stability improvements on all platforms.
 
 
-2015-05-17: Sentinel
-
-        The ChangeLog file is no longer maintained on bleeding_edge. This
-        sentinel should stay on top of this list.
-
-
 2015-05-17: Version 4.5.2
 
         Performance and stability improvements on all platforms.
diff --git a/DEPS b/DEPS
index 0559523..dfe214e 100644
--- a/DEPS
+++ b/DEPS
@@ -7,14 +7,16 @@
 }
 
 deps = {
-  "v8/build/gyp":
-    Var("git_url") + "/external/gyp.git" + "@" + "4ec6c4e3a94bd04a6da2858163d40b2429b8aad1",
+  "v8/build":
+    Var("git_url") + "/chromium/src/build.git" + "@" + "01ca9403e7d6ba63e9a4b6df1cb5cb8397ff7b92",
+  "v8/tools/gyp":
+    Var("git_url") + "/external/gyp.git" + "@" + "bce1c7793010574d88d7915e2d55395213ac63d1",
   "v8/third_party/icu":
     Var("git_url") + "/chromium/deps/icu.git" + "@" + "c291cde264469b20ca969ce8832088acb21e0c48",
   "v8/buildtools":
-    Var("git_url") + "/chromium/buildtools.git" + "@" + "80b5126f91be4eb359248d28696746ef09d5be67",
+    Var("git_url") + "/chromium/buildtools.git" + "@" + "06e80a0e17319868d4a9b13f9bb6a248dc8d8b20",
   "v8/base/trace_event/common":
-    Var("git_url") + "/chromium/src/base/trace_event/common.git" + "@" + "c8c8665c2deaf1cc749d9f8e153256d4f67bf1b8",
+    Var("git_url") + "/chromium/src/base/trace_event/common.git" + "@" + "54b8455be9505c2cb0cf5c26bb86739c236471aa",
   "v8/tools/swarming_client":
     Var('git_url') + '/external/swarming.client.git' + '@' + "df6e95e7669883c8fe9ef956c69a544154701a49",
   "v8/testing/gtest":
@@ -27,9 +29,9 @@
     Var("git_url") + "/v8/deps/third_party/mozilla-tests.git" + "@" + "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be",
   "v8/test/simdjs/data": Var("git_url") + "/external/github.com/tc39/ecmascript_simd.git" + "@" + "c8ef63c728283debc25891123eb00482fee4b8cd",
   "v8/test/test262/data":
-    Var("git_url") + "/external/github.com/tc39/test262.git" + "@" + "57d3e2216fa86ad63b6c0a54914ba9dcbff96003",
+    Var("git_url") + "/external/github.com/tc39/test262.git" + "@" + "9c45e2ac684bae64614d8eb55789cae97323a7e7",
   "v8/tools/clang":
-    Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "faee82e064e04e5cbf60cc7327e7a81d2a4557ad",
+    Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "18b63c680a59a7125514b1e05ca42cdfb89a19c7",
 }
 
 deps_os = {
@@ -53,6 +55,7 @@
 # checkdeps.py shouldn't check for includes in these directories:
 skip_child_includes = [
   "build",
+  "gypfiles",
   "third_party",
 ]
 
@@ -65,7 +68,7 @@
     'pattern': '.',
     'action': [
         'python',
-        'v8/build/landmines.py',
+        'v8/gypfiles/landmines.py',
     ],
   },
   # Pull clang-format binaries using checked-in hashes.
@@ -190,7 +193,7 @@
     # Update the Windows toolchain if necessary.
     'name': 'win_toolchain',
     'pattern': '.',
-    'action': ['python', 'v8/build/vs_toolchain.py', 'update'],
+    'action': ['python', 'v8/gypfiles/vs_toolchain.py', 'update'],
   },
   # Pull binutils for linux, enabled debug fission for faster linking /
   # debugging when used with clang on Ubuntu Precise.
@@ -208,7 +211,7 @@
     # Note: This must run before the clang update.
     'name': 'gold_plugin',
     'pattern': '.',
-    'action': ['python', 'v8/build/download_gold_plugin.py'],
+    'action': ['python', 'v8/gypfiles/download_gold_plugin.py'],
   },
   {
     # Pull clang if needed or requested via GYP_DEFINES.
@@ -220,6 +223,6 @@
   {
     # A change to a .gyp, .gypi, or to GYP itself should run the generator.
     "pattern": ".",
-    "action": ["python", "v8/build/gyp_v8"],
+    "action": ["python", "v8/gypfiles/gyp_v8"],
   },
 ]
diff --git a/Makefile b/Makefile
index a0c08a6..0f8f93a 100644
--- a/Makefile
+++ b/Makefile
@@ -227,6 +227,11 @@
   GYPFLAGS += -Drelease_extra_cflags=-fno-omit-frame-pointer
 endif
 
+ifdef android_ndk_root
+  GYPFLAGS += -Dandroid_ndk_root=$(android_ndk_root)
+  export ANDROID_NDK_ROOT = $(android_ndk_root)
+endif
+
 # ----------------- available targets: --------------------
 # - "grokdump": rebuilds heap constants lists used by grokdump
 # - any arch listed in ARCHES (see below)
@@ -256,10 +261,11 @@
 
 # List of files that trigger Makefile regeneration:
 GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
-	   build/shim_headers.gypi build/features.gypi build/standalone.gypi \
-	   build/toolchain.gypi build/all.gyp build/mac/asan.gyp \
+	   gypfiles/shim_headers.gypi gypfiles/features.gypi \
+           gypfiles/standalone.gypi \
+	   gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \
 	   test/cctest/cctest.gyp test/fuzzer/fuzzer.gyp \
-	   test/unittests/unittests.gyp tools/gyp/v8.gyp \
+	   test/unittests/unittests.gyp src/v8.gyp \
 	   tools/parser-shell.gyp testing/gmock.gyp testing/gtest.gyp \
 	   buildtools/third_party/libc++abi/libc++abi.gyp \
 	   buildtools/third_party/libc++/libc++.gyp samples/samples.gyp \
@@ -432,7 +438,7 @@
 	rm -rf $(OUTDIR)/native
 	find $(OUTDIR) -regex '.*\(host\|target\)\.native\.mk' -delete
 
-clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.clean gtags.clean
+clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.clean gtags.clean tags.clean
 
 # GYP file generation targets.
 OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(BUILDS))
@@ -442,10 +448,10 @@
 	$(eval CXX_TARGET_ARCH:=$(subst aarch64,arm64,$(CXX_TARGET_ARCH)))
 	$(eval CXX_TARGET_ARCH:=$(subst x86_64,x64,$(CXX_TARGET_ARCH)))
 	$(eval V8_TARGET_ARCH:=$(subst .,,$(suffix $(basename $@))))
-	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH):$(shell pwd)/build/gyp/pylib:$(PYTHONPATH)" \
+	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \
 	GYP_GENERATORS=make \
-	build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
-	              -Ibuild/standalone.gypi --depth=. \
+	tools/gyp/gyp --generator-output="$(OUTDIR)" gypfiles/all.gyp \
+	              -Igypfiles/standalone.gypi --depth=. \
 	              -Dv8_target_arch=$(V8_TARGET_ARCH) \
 	              $(if $(findstring $(CXX_TARGET_ARCH),$(V8_TARGET_ARCH)), \
 	              -Dtarget_arch=$(V8_TARGET_ARCH),) \
@@ -453,10 +459,10 @@
 	              -S$(suffix $(basename $@))$(suffix $@) $(GYPFLAGS)
 
 $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE)
-	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH):$(shell pwd)/build/gyp/pylib:$(PYTHONPATH)" \
+	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \
 	GYP_GENERATORS=make \
-	build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
-	              -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS)
+	tools/gyp/gyp --generator-output="$(OUTDIR)" gypfiles/all.gyp \
+	              -Igypfiles/standalone.gypi --depth=. -S.native $(GYPFLAGS)
 
 # Note that NACL_SDK_ROOT must be set to point to an appropriate
 # Native Client SDK before using this makefile. You can download
@@ -497,11 +503,21 @@
 
 # We need to manually set the stack limit here, to work around bugs in
 # gmake-3.81 and global-5.7.1 on recent 64-bit Linux systems.
-GPATH GRTAGS GSYMS GTAGS: gtags.files $(shell cat gtags.files 2> /dev/null)
+# Using $(wildcard ...) gracefully ignores non-existing files, so that stale
+# gtags.files after switching branches don't cause recipe failures.
+GPATH GRTAGS GSYMS GTAGS: gtags.files $(wildcard $(shell cat gtags.files 2> /dev/null))
 	@bash -c 'ulimit -s 10240 && GTAGSFORCECPP=yes gtags -i -q -f $<'
 
 gtags.clean:
 	rm -f gtags.files GPATH GRTAGS GSYMS GTAGS
 
+tags: gtags.files $(wildcard $(shell cat gtags.files 2> /dev/null))
+	@(ctags --version | grep 'Exuberant Ctags' >/dev/null) || \
+		(echo "Please install Exuberant Ctags (check 'ctags --version')" >&2; false)
+	ctags --fields=+l -L $<
+
+tags.clean:
+	rm -r tags
+
 dependencies builddeps:
 	$(error Use 'gclient sync' instead)
diff --git a/Makefile.android b/Makefile.android
index c49cb85..fd5f968 100644
--- a/Makefile.android
+++ b/Makefile.android
@@ -35,18 +35,27 @@
 ANDROID_BUILDS = $(foreach mode,$(MODES), \
                    $(addsuffix .$(mode),$(ANDROID_ARCHES)))
 
+HOST_OS = $(shell uname -s | sed -e 's/Linux/linux/;s/Darwin/darwin/')
+HOST_ARCH = $(shell uname -m | sed -e 's/i[3456]86/x86/')
+
 ifeq ($(ARCH), android_arm)
   DEFINES  = target_arch=arm v8_target_arch=arm
+  ANDROID_TOOLCHAIN = $(ANDROID_NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(HOST_OS)-$(HOST_ARCH)/arm-linux-androideabi/bin
 else ifeq ($(ARCH), android_arm64)
   DEFINES  = target_arch=arm64 v8_target_arch=arm64
+  ANDROID_TOOLCHAIN = $(ANDROID_NDK_ROOT)/toolchains/aarch64-linux-android-4.9/prebuilt/$(HOST_OS)-$(HOST_ARCH)/aarch64-linux-android/bin
 else ifeq ($(ARCH), android_mipsel)
   DEFINES  = target_arch=mipsel v8_target_arch=mipsel
+  ANDROID_TOOLCHAIN = $(ANDROID_NDK_ROOT)/toolchains/mipsel-linux-android-4.9/prebuilt/$(HOST_OS)-$(HOST_ARCH)/mipsel-linux-android/bin
 else ifeq ($(ARCH), android_ia32)
   DEFINES = target_arch=ia32 v8_target_arch=ia32
+  ANDROID_TOOLCHAIN = $(ANDROID_NDK_ROOT)/toolchains/x86-4.9/prebuilt/$(HOST_OS)-$(HOST_ARCH)/i686-linux-android/bin
 else ifeq ($(ARCH), android_x64)
   DEFINES = target_arch=x64 v8_target_arch=x64
+  ANDROID_TOOLCHAIN = $(ANDROID_NDK_ROOT)/toolchains/x86_64-4.9/prebuilt/$(HOST_OS)-$(HOST_ARCH)/x86_64-linux-android/bin
 else ifeq ($(ARCH), android_x87)
   DEFINES = target_arch=ia32 v8_target_arch=x87
+  ANDROID_TOOLCHAIN = $(ANDROID_NDK_ROOT)/toolchains/x86-4.9/prebuilt/$(HOST_OS)-$(HOST_ARCH)/i686-linux-android/bin
 else
   $(error Target architecture "${ARCH}" is not supported)
 endif
@@ -57,6 +66,7 @@
 .SECONDEXPANSION:
 $(ANDROID_BUILDS): $(OUTDIR)/Makefile.$$@
 	@$(MAKE) -C "$(OUTDIR)" -f Makefile.$@ \
+	          AR="$(ANDROID_TOOLCHAIN)/ar" \
 	          BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
 	                      python -c "print raw_input().capitalize()") \
 	          builddir="$(shell pwd)/$(OUTDIR)/$@"
@@ -67,6 +77,6 @@
 	GYP_GENERATORS=make-android \
 	GYP_DEFINES="${DEFINES}" \
 	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH)" \
-	build/gyp/gyp --generator-output="${OUTDIR}" build/all.gyp \
-	              -Ibuild/standalone.gypi --depth=. \
+	tools/gyp/gyp --generator-output="${OUTDIR}" gypfiles/all.gyp \
+	              -Igypfiles/standalone.gypi --depth=. \
 	              -S$(suffix $(basename $@))$(suffix $@) ${GYPFLAGS}
diff --git a/Makefile.nacl b/Makefile.nacl
index 3459c42..5eaff47 100644
--- a/Makefile.nacl
+++ b/Makefile.nacl
@@ -91,7 +91,7 @@
 	CXX=${NACL_CXX} \
 	LINK=${NACL_LINK} \
 	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH)" \
-	build/gyp/gyp --generator-output="${OUTDIR}" build/all.gyp \
-	              -Ibuild/standalone.gypi --depth=. \
+	tools/gyp/gyp --generator-output="${OUTDIR}" gypfiles/all.gyp \
+	              -Igypfiles/standalone.gypi --depth=. \
 	              -S$(suffix $(basename $@))$(suffix $@) $(GYPFLAGS) \
                       -Dwno_array_bounds=-Wno-array-bounds
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index f8516af..60a5fd7 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -242,32 +242,15 @@
   return input_api.environ.get('PRESUBMIT_TREE_CHECK') == 'skip'
 
 
-def _CheckChangeLogFlag(input_api, output_api, warn):
-  """Checks usage of LOG= flag in the commit message."""
-  results = []
-  if (input_api.change.BUG and input_api.change.BUG != 'none' and
-      not 'LOG' in input_api.change.tags):
-    text = ('An issue reference (BUG=) requires a change log flag (LOG=). '
-            'Use LOG=Y for including this commit message in the change log. '
-            'Use LOG=N or leave blank otherwise.')
-    if warn:
-      results.append(output_api.PresubmitPromptWarning(text))
-    else:
-      results.append(output_api.PresubmitError(text))
-  return results
-
-
 def CheckChangeOnUpload(input_api, output_api):
   results = []
   results.extend(_CommonChecks(input_api, output_api))
-  results.extend(_CheckChangeLogFlag(input_api, output_api, True))
   return results
 
 
 def CheckChangeOnCommit(input_api, output_api):
   results = []
   results.extend(_CommonChecks(input_api, output_api))
-  results.extend(_CheckChangeLogFlag(input_api, output_api, False))
   results.extend(input_api.canned_checks.CheckChangeHasDescription(
       input_api, output_api))
   if not _SkipTreeCheck(input_api, output_api):
diff --git a/V8_MERGE_REVISION b/V8_MERGE_REVISION
index 5278fb5..9b09eef 100644
--- a/V8_MERGE_REVISION
+++ b/V8_MERGE_REVISION
@@ -1,2 +1,2 @@
-v8 5.1.281.59
-https://chromium.googlesource.com/v8/v8/+/5.1.281.59
+v8 5.2.361.47
+https://chromium.googlesource.com/v8/v8/+/5.2.361.47
diff --git a/WATCHLISTS b/WATCHLISTS
index 29b957b..bd07d31 100644
--- a/WATCHLISTS
+++ b/WATCHLISTS
@@ -44,7 +44,6 @@
     },
     'interpreter': {
       'filepath': 'src/interpreter/' \
-                  '|src/compiler/interpreter' \
                   '|src/compiler/bytecode' \
                   '|test/cctest/interpreter/' \
                   '|test/unittests/interpreter/',
@@ -60,6 +59,9 @@
     },
     'ia32': {
       'filepath': '/ia32/',
+    },
+    'merges': {
+      'filepath': '.',
     }
   },
 
@@ -91,5 +93,9 @@
     'ia32': [
       'v8-x87-ports@googlegroups.com',
     ],
+    'merges': [
+      # Only enabled on branches created with tools/release/create_release.py
+      'v8-merges@googlegroups.com',
+    ],
   },
 }
diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py
deleted file mode 100644
index 95fbcf4..0000000
--- a/build/vs_toolchain.py
+++ /dev/null
@@ -1,268 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 the V8 project authors. All rights reserved.
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import json
-import os
-import pipes
-import shutil
-import subprocess
-import sys
-import vs_toolchain
-
-
-script_dir = os.path.dirname(os.path.realpath(__file__))
-chrome_src = os.path.abspath(os.path.join(script_dir, os.pardir))
-SRC_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-sys.path.insert(1, os.path.join(chrome_src, 'tools'))
-sys.path.insert(0, os.path.join(chrome_src, 'build', 'gyp', 'pylib'))
-json_data_file = os.path.join(script_dir, 'win_toolchain.json')
-
-
-import gyp
-
-
-def SetEnvironmentAndGetRuntimeDllDirs():
-  """Sets up os.environ to use the depot_tools VS toolchain with gyp, and
-  returns the location of the VS runtime DLLs so they can be copied into
-  the output directory after gyp generation.
-  """
-  vs2013_runtime_dll_dirs = None
-  depot_tools_win_toolchain = \
-      bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1')))
-  # When running on a non-Windows host, only do this if the SDK has explicitly
-  # been downloaded before (in which case json_data_file will exist).
-  if ((sys.platform in ('win32', 'cygwin') or os.path.exists(json_data_file))
-      and depot_tools_win_toolchain):
-    if not os.path.exists(json_data_file):
-      Update()
-    with open(json_data_file, 'r') as tempf:
-      toolchain_data = json.load(tempf)
-
-    toolchain = toolchain_data['path']
-    version = toolchain_data['version']
-    win_sdk = toolchain_data.get('win_sdk')
-    if not win_sdk:
-      win_sdk = toolchain_data['win8sdk']
-    wdk = toolchain_data['wdk']
-    # TODO(scottmg): The order unfortunately matters in these. They should be
-    # split into separate keys for x86 and x64. (See CopyVsRuntimeDlls call
-    # below). http://crbug.com/345992
-    vs2013_runtime_dll_dirs = toolchain_data['runtime_dirs']
-
-    os.environ['GYP_MSVS_OVERRIDE_PATH'] = toolchain
-    os.environ['GYP_MSVS_VERSION'] = version
-    # We need to make sure windows_sdk_path is set to the automated
-    # toolchain values in GYP_DEFINES, but don't want to override any
-    # otheroptions.express
-    # values there.
-    gyp_defines_dict = gyp.NameValueListToDict(gyp.ShlexEnv('GYP_DEFINES'))
-    gyp_defines_dict['windows_sdk_path'] = win_sdk
-    os.environ['GYP_DEFINES'] = ' '.join('%s=%s' % (k, pipes.quote(str(v)))
-        for k, v in gyp_defines_dict.iteritems())
-    os.environ['WINDOWSSDKDIR'] = win_sdk
-    os.environ['WDK_DIR'] = wdk
-    # Include the VS runtime in the PATH in case it's not machine-installed.
-    runtime_path = ';'.join(vs2013_runtime_dll_dirs)
-    os.environ['PATH'] = runtime_path + ';' + os.environ['PATH']
-  return vs2013_runtime_dll_dirs
-
-
-def _VersionNumber():
-  """Gets the standard version number ('120', '140', etc.) based on
-  GYP_MSVS_VERSION."""
-  if os.environ['GYP_MSVS_VERSION'] == '2013':
-    return '120'
-  elif os.environ['GYP_MSVS_VERSION'] == '2015':
-    return '140'
-  else:
-    raise ValueError('Unexpected GYP_MSVS_VERSION')
-
-
-def _CopyRuntimeImpl(target, source):
-  """Copy |source| to |target| if it doesn't already exist or if it
-  needs to be updated.
-  """
-  if (os.path.isdir(os.path.dirname(target)) and
-      (not os.path.isfile(target) or
-      os.stat(target).st_mtime != os.stat(source).st_mtime)):
-    print 'Copying %s to %s...' % (source, target)
-    if os.path.exists(target):
-      os.unlink(target)
-    shutil.copy2(source, target)
-
-
-def _CopyRuntime2013(target_dir, source_dir, dll_pattern):
-  """Copy both the msvcr and msvcp runtime DLLs, only if the target doesn't
-  exist, but the target directory does exist."""
-  for file_part in ('p', 'r'):
-    dll = dll_pattern % file_part
-    target = os.path.join(target_dir, dll)
-    source = os.path.join(source_dir, dll)
-    _CopyRuntimeImpl(target, source)
-
-
-def _CopyRuntime2015(target_dir, source_dir, dll_pattern):
-  """Copy both the msvcp and vccorlib runtime DLLs, only if the target doesn't
-  exist, but the target directory does exist."""
-  for file_part in ('msvcp', 'vccorlib'):
-    dll = dll_pattern % file_part
-    target = os.path.join(target_dir, dll)
-    source = os.path.join(source_dir, dll)
-    _CopyRuntimeImpl(target, source)
-
-
-def CopyVsRuntimeDlls(output_dir, runtime_dirs):
-  """Copies the VS runtime DLLs from the given |runtime_dirs| to the output
-  directory so that even if not system-installed, built binaries are likely to
-  be able to run.
-
-  This needs to be run after gyp has been run so that the expected target
-  output directories are already created.
-  """
-  x86, x64 = runtime_dirs
-  out_debug = os.path.join(output_dir, 'Debug')
-  out_debug_nacl64 = os.path.join(output_dir, 'Debug', 'x64')
-  out_release = os.path.join(output_dir, 'Release')
-  out_release_nacl64 = os.path.join(output_dir, 'Release', 'x64')
-  out_debug_x64 = os.path.join(output_dir, 'Debug_x64')
-  out_release_x64 = os.path.join(output_dir, 'Release_x64')
-
-  if os.path.exists(out_debug) and not os.path.exists(out_debug_nacl64):
-    os.makedirs(out_debug_nacl64)
-  if os.path.exists(out_release) and not os.path.exists(out_release_nacl64):
-    os.makedirs(out_release_nacl64)
-  if os.environ.get('GYP_MSVS_VERSION') == '2015':
-    _CopyRuntime2015(out_debug,          x86, '%s140d.dll')
-    _CopyRuntime2015(out_release,        x86, '%s140.dll')
-    _CopyRuntime2015(out_debug_x64,      x64, '%s140d.dll')
-    _CopyRuntime2015(out_release_x64,    x64, '%s140.dll')
-    _CopyRuntime2015(out_debug_nacl64,   x64, '%s140d.dll')
-    _CopyRuntime2015(out_release_nacl64, x64, '%s140.dll')
-  else:
-    # VS2013 is the default.
-    _CopyRuntime2013(out_debug,          x86, 'msvc%s120d.dll')
-    _CopyRuntime2013(out_release,        x86, 'msvc%s120.dll')
-    _CopyRuntime2013(out_debug_x64,      x64, 'msvc%s120d.dll')
-    _CopyRuntime2013(out_release_x64,    x64, 'msvc%s120.dll')
-    _CopyRuntime2013(out_debug_nacl64,   x64, 'msvc%s120d.dll')
-    _CopyRuntime2013(out_release_nacl64, x64, 'msvc%s120.dll')
-
-  # Copy the PGO runtime library to the release directories.
-  if os.environ.get('GYP_MSVS_OVERRIDE_PATH'):
-    pgo_x86_runtime_dir = os.path.join(os.environ.get('GYP_MSVS_OVERRIDE_PATH'),
-                                       'VC', 'bin')
-    pgo_x64_runtime_dir = os.path.join(pgo_x86_runtime_dir, 'amd64')
-    pgo_runtime_dll = 'pgort' + _VersionNumber() + '.dll'
-    source_x86 = os.path.join(pgo_x86_runtime_dir, pgo_runtime_dll)
-    if os.path.exists(source_x86):
-      _CopyRuntimeImpl(os.path.join(out_release, pgo_runtime_dll), source_x86)
-    source_x64 = os.path.join(pgo_x64_runtime_dir, pgo_runtime_dll)
-    if os.path.exists(source_x64):
-      _CopyRuntimeImpl(os.path.join(out_release_x64, pgo_runtime_dll),
-                       source_x64)
-
-
-def CopyDlls(target_dir, configuration, target_cpu):
-  """Copy the VS runtime DLLs into the requested directory as needed.
-
-  configuration is one of 'Debug' or 'Release'.
-  target_cpu is one of 'x86' or 'x64'.
-
-  The debug configuration gets both the debug and release DLLs; the
-  release config only the latter.
-  """
-  vs2013_runtime_dll_dirs = SetEnvironmentAndGetRuntimeDllDirs()
-  if not vs2013_runtime_dll_dirs:
-    return
-
-  x64_runtime, x86_runtime = vs2013_runtime_dll_dirs
-  runtime_dir = x64_runtime if target_cpu == 'x64' else x86_runtime
-  _CopyRuntime2013(
-      target_dir, runtime_dir, 'msvc%s' + _VersionNumber() + '.dll')
-  if configuration == 'Debug':
-    _CopyRuntime2013(
-        target_dir, runtime_dir, 'msvc%s' + _VersionNumber() + 'd.dll')
-
-
-def _GetDesiredVsToolchainHashes():
-  """Load a list of SHA1s corresponding to the toolchains that we want installed
-  to build with."""
-  if os.environ.get('GYP_MSVS_VERSION') == '2015':
-    return ['5a85cf1ce842f7cc96b9d17039a445a9dc9cf0dd']
-  else:
-    # Default to VS2013.
-    return ['9ff97c632ae1fee0c98bcd53e71770eb3a0d8deb']
-
-
-def Update(force=False):
-  """Requests an update of the toolchain to the specific hashes we have at
-  this revision. The update outputs a .json of the various configuration
-  information required to pass to gyp which we use in |GetToolchainDir()|.
-  """
-  if force != False and force != '--force':
-    print >>sys.stderr, 'Unknown parameter "%s"' % force
-    return 1
-  if force == '--force' or os.path.exists(json_data_file):
-    force = True
-
-  depot_tools_win_toolchain = \
-      bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1')))
-  if ((sys.platform in ('win32', 'cygwin') or force) and
-        depot_tools_win_toolchain):
-    import find_depot_tools
-    depot_tools_path = find_depot_tools.add_depot_tools_to_path()
-    get_toolchain_args = [
-        sys.executable,
-        os.path.join(depot_tools_path,
-                    'win_toolchain',
-                    'get_toolchain_if_necessary.py'),
-        '--output-json', json_data_file,
-      ] + _GetDesiredVsToolchainHashes()
-    if force:
-      get_toolchain_args.append('--force')
-    subprocess.check_call(get_toolchain_args)
-
-  return 0
-
-
-def GetToolchainDir():
-  """Gets location information about the current toolchain (must have been
-  previously updated by 'update'). This is used for the GN build."""
-  runtime_dll_dirs = SetEnvironmentAndGetRuntimeDllDirs()
-
-  # If WINDOWSSDKDIR is not set, search the default SDK path and set it.
-  if not 'WINDOWSSDKDIR' in os.environ:
-    default_sdk_path = 'C:\\Program Files (x86)\\Windows Kits\\8.1'
-    if os.path.isdir(default_sdk_path):
-      os.environ['WINDOWSSDKDIR'] = default_sdk_path
-
-  print '''vs_path = "%s"
-sdk_path = "%s"
-vs_version = "%s"
-wdk_dir = "%s"
-runtime_dirs = "%s"
-''' % (
-      os.environ['GYP_MSVS_OVERRIDE_PATH'],
-      os.environ['WINDOWSSDKDIR'],
-      os.environ['GYP_MSVS_VERSION'],
-      os.environ.get('WDK_DIR', ''),
-      ';'.join(runtime_dll_dirs or ['None']))
-
-
-def main():
-  commands = {
-      'update': Update,
-      'get_toolchain_dir': GetToolchainDir,
-      'copy_dlls': CopyDlls,
-  }
-  if len(sys.argv) < 2 or sys.argv[1] not in commands:
-    print >>sys.stderr, 'Expected one of: %s' % ', '.join(commands)
-    return 1
-  return commands[sys.argv[1]](*sys.argv[2:])
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/build_overrides/v8.gni b/build_overrides/v8.gni
new file mode 100644
index 0000000..656045b
--- /dev/null
+++ b/build_overrides/v8.gni
@@ -0,0 +1,29 @@
+# Copyright 2015 The V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/features.gni")
+import("//build/config/ui.gni")
+
+if (is_android) {
+  import("//build/config/android/config.gni")
+}
+
+declare_args() {
+  # V8 generates code for this architecture.
+  v8_target_arch = target_cpu
+}
+
+if (((v8_target_arch == "ia32" ||
+      v8_target_arch == "x64" ||
+      v8_target_arch=="x87") &&
+     (is_linux || is_mac)) ||
+    (v8_target_arch == "ppc64" && is_linux)) {
+  v8_enable_gdbjit = true
+}
+
+icu_use_data_file_flag = false
+v8_imminent_deprecation_warnings = true
+v8_optimized_debug = false
+v8_extra_library_files = []
+v8_experimental_extra_library_files = []
diff --git a/build/OWNERS b/gypfiles/OWNERS
similarity index 100%
rename from build/OWNERS
rename to gypfiles/OWNERS
diff --git a/build/README.txt b/gypfiles/README.txt
similarity index 100%
rename from build/README.txt
rename to gypfiles/README.txt
diff --git a/build/all.gyp b/gypfiles/all.gyp
similarity index 80%
rename from build/all.gyp
rename to gypfiles/all.gyp
index feaf4fe..ff1bea4 100644
--- a/build/all.gyp
+++ b/gypfiles/all.gyp
@@ -8,11 +8,7 @@
       'target_name': 'All',
       'type': 'none',
       'dependencies': [
-        '../samples/samples.gyp:*',
         '../src/d8.gyp:d8',
-        '../test/cctest/cctest.gyp:*',
-        '../test/fuzzer/fuzzer.gyp:*',
-        '../test/unittests/unittests.gyp:*',
       ],
       'conditions': [
         ['component!="shared_library"', {
@@ -20,6 +16,15 @@
             '../tools/parser-shell.gyp:parser-shell',
           ],
         }],
+        # These items don't compile for Android on Mac.
+        ['host_os!="mac" or OS!="android"', {
+          'dependencies': [
+            '../samples/samples.gyp:*',
+            '../test/cctest/cctest.gyp:*',
+            '../test/fuzzer/fuzzer.gyp:*',
+            '../test/unittests/unittests.gyp:*',
+            ],
+        }],
         ['test_isolation_mode != "noop"', {
           'dependencies': [
             '../test/bot_default.gyp:*',
diff --git a/build/config/win/msvs_dependencies.isolate b/gypfiles/config/win/msvs_dependencies.isolate
similarity index 100%
rename from build/config/win/msvs_dependencies.isolate
rename to gypfiles/config/win/msvs_dependencies.isolate
diff --git a/build/coverage_wrapper.py b/gypfiles/coverage_wrapper.py
similarity index 100%
rename from build/coverage_wrapper.py
rename to gypfiles/coverage_wrapper.py
diff --git a/build/detect_v8_host_arch.py b/gypfiles/detect_v8_host_arch.py
similarity index 100%
rename from build/detect_v8_host_arch.py
rename to gypfiles/detect_v8_host_arch.py
diff --git a/build/download_gold_plugin.py b/gypfiles/download_gold_plugin.py
similarity index 100%
rename from build/download_gold_plugin.py
rename to gypfiles/download_gold_plugin.py
diff --git a/build/features.gypi b/gypfiles/features.gypi
similarity index 100%
rename from build/features.gypi
rename to gypfiles/features.gypi
diff --git a/build/get_landmines.py b/gypfiles/get_landmines.py
similarity index 100%
rename from build/get_landmines.py
rename to gypfiles/get_landmines.py
diff --git a/build/gyp_environment.py b/gypfiles/gyp_environment.py
similarity index 100%
rename from build/gyp_environment.py
rename to gypfiles/gyp_environment.py
diff --git a/build/gyp_v8 b/gypfiles/gyp_v8
similarity index 97%
rename from build/gyp_v8
rename to gypfiles/gyp_v8
index 8813f2c..e97507a 100755
--- a/build/gyp_v8
+++ b/gypfiles/gyp_v8
@@ -43,7 +43,7 @@
 script_dir = os.path.dirname(os.path.realpath(__file__))
 v8_root = os.path.abspath(os.path.join(script_dir, os.pardir))
 
-sys.path.insert(0, os.path.join(v8_root, 'build', 'gyp', 'pylib'))
+sys.path.insert(0, os.path.join(v8_root, 'tools', 'gyp', 'pylib'))
 import gyp
 
 # Add paths so that pymod_do_main(...) can import files.
@@ -90,7 +90,7 @@
       result.append(path)
 
   # Always include standalone.gypi
-  AddInclude(os.path.join(v8_root, 'build', 'standalone.gypi'))
+  AddInclude(os.path.join(v8_root, 'gypfiles', 'standalone.gypi'))
 
   # Optionally add supplemental .gypi files if present.
   supplements = glob.glob(os.path.join(v8_root, '*', 'supplement.gypi'))
diff --git a/build/gyp_v8.py b/gypfiles/gyp_v8.py
similarity index 100%
rename from build/gyp_v8.py
rename to gypfiles/gyp_v8.py
diff --git a/build/has_valgrind.py b/gypfiles/has_valgrind.py
similarity index 100%
rename from build/has_valgrind.py
rename to gypfiles/has_valgrind.py
diff --git a/build/isolate.gypi b/gypfiles/isolate.gypi
similarity index 95%
rename from build/isolate.gypi
rename to gypfiles/isolate.gypi
index 4cfbbfd..a9614b5 100644
--- a/build/isolate.gypi
+++ b/gypfiles/isolate.gypi
@@ -17,7 +17,7 @@
 #           'foo_test',
 #         ],
 #         'includes': [
-#           '../build/isolate.gypi',
+#           '../gypfiles/isolate.gypi',
 #         ],
 #         'sources': [
 #           'foo_test.isolate',
@@ -81,7 +81,6 @@
         '--config-variable', 'component=<(component)',
         '--config-variable', 'target_arch=<(target_arch)',
         '--config-variable', 'use_custom_libcxx=<(use_custom_libcxx)',
-        '--config-variable', 'v8_separate_ignition_snapshot=<(v8_separate_ignition_snapshot)',
         '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)',
         '--config-variable', 'v8_use_snapshot=<(v8_use_snapshot)',
       ],
diff --git a/build/landmine_utils.py b/gypfiles/landmine_utils.py
similarity index 100%
rename from build/landmine_utils.py
rename to gypfiles/landmine_utils.py
diff --git a/build/landmines.py b/gypfiles/landmines.py
similarity index 98%
rename from build/landmines.py
rename to gypfiles/landmines.py
index 97c6390..2a81c66 100755
--- a/build/landmines.py
+++ b/gypfiles/landmines.py
@@ -198,7 +198,7 @@
   parser = optparse.OptionParser()
   parser.add_option(
       '-s', '--landmine-scripts', action='append',
-      default=[os.path.join(SRC_DIR, 'build', 'get_landmines.py')],
+      default=[os.path.join(SRC_DIR, 'gypfiles', 'get_landmines.py')],
       help='Path to the script which emits landmines to stdout. The target '
            'is passed to this script via option -t. Note that an extra '
            'script can be specified via an env var EXTRA_LANDMINES_SCRIPT.')
diff --git a/build/mac/asan.gyp b/gypfiles/mac/asan.gyp
similarity index 100%
rename from build/mac/asan.gyp
rename to gypfiles/mac/asan.gyp
diff --git a/gypfiles/set_clang_warning_flags.gypi b/gypfiles/set_clang_warning_flags.gypi
new file mode 100644
index 0000000..63d5f14
--- /dev/null
+++ b/gypfiles/set_clang_warning_flags.gypi
@@ -0,0 +1,59 @@
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Copyright (c) 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This file is meant to be included to set clang-specific compiler flags.
+# To use this the following variable can be defined:
+#   clang_warning_flags:       list: Compiler flags to pass to clang.
+#   clang_warning_flags_unset: list: Compiler flags to not pass to clang.
+#
+# Only use this in third-party code. In chromium_code, fix your code to not
+# warn instead!
+#
+# Note that the gypi file is included in target_defaults, so it does not need
+# to be explicitly included.
+#
+# Warning flags set by this will be used on all platforms. If you want to set
+# warning flags on only some platforms, you have to do so manually.
+#
+# To use this, create a gyp target with the following form:
+# {
+#   'target_name': 'my_target',
+#   'variables': {
+#     'clang_warning_flags': ['-Wno-awesome-warning'],
+#     'clang_warning_flags_unset': ['-Wpreviously-set-flag'],
+#   }
+# }
+
+{
+  'variables': {
+    'clang_warning_flags_unset%': [],  # Provide a default value.
+  },
+  'conditions': [
+    ['clang==1', {
+      # This uses >@ instead of @< to also see clang_warning_flags set in
+      # targets directly, not just the clang_warning_flags in target_defaults.
+      'cflags': [ '>@(clang_warning_flags)' ],
+      'cflags!': [ '>@(clang_warning_flags_unset)' ],
+      'xcode_settings': {
+        'WARNING_CFLAGS': ['>@(clang_warning_flags)'],
+        'WARNING_CFLAGS!': ['>@(clang_warning_flags_unset)'],
+      },
+      'msvs_settings': {
+        'VCCLCompilerTool': {
+          'AdditionalOptions': [ '>@(clang_warning_flags)' ],
+          'AdditionalOptions!': [ '>@(clang_warning_flags_unset)' ],
+        },
+      },
+    }],
+    ['clang==0 and host_clang==1', {
+      'target_conditions': [
+        ['_toolset=="host"', {
+          'cflags': [ '>@(clang_warning_flags)' ],
+          'cflags!': [ '>@(clang_warning_flags_unset)' ],
+        }],
+      ],
+    }],
+  ],
+}
diff --git a/build/shim_headers.gypi b/gypfiles/shim_headers.gypi
similarity index 100%
rename from build/shim_headers.gypi
rename to gypfiles/shim_headers.gypi
diff --git a/build/standalone.gypi b/gypfiles/standalone.gypi
similarity index 92%
rename from build/standalone.gypi
rename to gypfiles/standalone.gypi
index 6c88409..630c45e 100644
--- a/build/standalone.gypi
+++ b/gypfiles/standalone.gypi
@@ -194,9 +194,6 @@
     # their own default value.
     'v8_use_external_startup_data%': 1,
 
-    # Use a separate ignition snapshot file in standalone builds.
-    'v8_separate_ignition_snapshot': 1,
-
     # Relative path to icu.gyp from this file.
     'icu_gyp_path': '../third_party/icu/icu.gyp',
 
@@ -262,44 +259,50 @@
             'android_ndk_root%': '<(base_dir)/third_party/android_tools/ndk/',
             'android_host_arch%': "<!(uname -m | sed -e 's/i[3456]86/x86/')",
             'host_os%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')",
+            'os_folder_name%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/darwin/')",
           },
 
           # Copy conditionally-set variables out one scope.
           'android_ndk_root%': '<(android_ndk_root)',
           'host_os%': '<(host_os)',
+          'os_folder_name%': '<(os_folder_name)',
 
           'conditions': [
             ['target_arch == "ia32"', {
-              'android_toolchain%': '<(android_ndk_root)/toolchains/x86-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
+              'android_toolchain%': '<(android_ndk_root)/toolchains/x86-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin',
               'android_target_arch%': 'x86',
               'android_target_platform%': '16',
+              'arm_version%': 'default',
             }],
             ['target_arch == "x64"', {
-              'android_toolchain%': '<(android_ndk_root)/toolchains/x86_64-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
+              'android_toolchain%': '<(android_ndk_root)/toolchains/x86_64-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin',
               'android_target_arch%': 'x86_64',
               'android_target_platform%': '21',
+              'arm_version%': 'default',
             }],
             ['target_arch=="arm"', {
-              'android_toolchain%': '<(android_ndk_root)/toolchains/arm-linux-androideabi-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
+              'android_toolchain%': '<(android_ndk_root)/toolchains/arm-linux-androideabi-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin',
               'android_target_arch%': 'arm',
               'android_target_platform%': '16',
               'arm_version%': 7,
             }],
             ['target_arch == "arm64"', {
-              'android_toolchain%': '<(android_ndk_root)/toolchains/aarch64-linux-android-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
+              'android_toolchain%': '<(android_ndk_root)/toolchains/aarch64-linux-android-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin',
               'android_target_arch%': 'arm64',
               'android_target_platform%': '21',
               'arm_version%': 'default',
             }],
             ['target_arch == "mipsel"', {
-              'android_toolchain%': '<(android_ndk_root)/toolchains/mipsel-linux-android-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
+              'android_toolchain%': '<(android_ndk_root)/toolchains/mipsel-linux-android-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin',
               'android_target_arch%': 'mips',
               'android_target_platform%': '16',
+              'arm_version%': 'default',
             }],
             ['target_arch == "mips64el"', {
-              'android_toolchain%': '<(android_ndk_root)/toolchains/mips64el-linux-android-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
+              'android_toolchain%': '<(android_ndk_root)/toolchains/mips64el-linux-android-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin',
               'android_target_arch%': 'mips64',
               'android_target_platform%': '21',
+              'arm_version%': 'default',
             }],
           ],
         },
@@ -351,6 +354,12 @@
         'android_libcpp_library': 'c++_static',
       }],  # OS=="android"
       ['host_clang==1', {
+        'conditions':[
+          ['OS=="android"', {
+            'host_ld': '<!(which ld)',
+            'host_ranlib': '<!(which ranlib)',
+          }],
+        ],
         'host_cc': '<(clang_dir)/bin/clang',
         'host_cxx': '<(clang_dir)/bin/clang++',
       }, {
@@ -380,12 +389,17 @@
   'target_defaults': {
     'variables': {
       'v8_code%': '<(v8_code)',
+      'clang_warning_flags': [
+        # TODO(thakis): https://crbug.com/604888
+        '-Wno-undefined-var-template',
+      ],
       'conditions':[
         ['OS=="android"', {
           'host_os%': '<(host_os)',
         }],
       ],
     },
+    'includes': [ 'set_clang_warning_flags.gypi', ],
     'default_configuration': 'Debug',
     'configurations': {
       'DebugBaseCommon': {
@@ -452,6 +466,9 @@
           }],
         ],
       }],
+      ['clang==1 and target_arch=="ia32"', {
+        'cflags': ['-mstack-alignment=16', '-mstackrealign'],
+      }],
       ['fastbuild!=0', {
         'conditions': [
           ['OS=="win" and fastbuild==1', {
@@ -660,7 +677,7 @@
               ],
             },
             'dependencies': [
-              '<(DEPTH)/build/mac/asan.gyp:asan_dynamic_runtime',
+              '<(DEPTH)/gypfiles/mac/asan.gyp:asan_dynamic_runtime',
             ],
             'target_conditions': [
               ['_type!="static_library"', {
@@ -693,8 +710,7 @@
           '-Wno-long-long',
           '-pthread',
           '-pedantic',
-          # Don't warn about the "struct foo f = {0};" initialization pattern.
-          '-Wno-missing-field-initializers',
+          '-Wmissing-field-initializers',
           '-Wno-gnu-zero-variadic-macro-arguments',
         ],
         'cflags_cc': [
@@ -932,6 +948,44 @@
               }],
             ],
           },
+          'conditions': [
+            ['clang==1', {
+              'VCCLCompilerTool': {
+                'AdditionalOptions': [
+                  # Don't warn about unused function parameters.
+                  # (This is also used on other platforms.)
+                  '-Wno-unused-parameter',
+                  # Don't warn about the "struct foo f = {0};" initialization
+                  # pattern.
+                  '-Wno-missing-field-initializers',
+
+                  # Many files use intrinsics without including this header.
+                  # TODO(hans): Fix those files, or move this to sub-GYPs.
+                  '/FIIntrin.h',
+
+                  # TODO(hans): Make this list shorter eventually, http://crbug.com/504657
+                  '-Qunused-arguments',  # http://crbug.com/504658
+                  '-Wno-microsoft-enum-value',  # http://crbug.com/505296
+                  '-Wno-unknown-pragmas',  # http://crbug.com/505314
+                  '-Wno-microsoft-cast',  # http://crbug.com/550065
+                ],
+              },
+            }],
+            ['clang==1 and MSVS_VERSION == "2013"', {
+              'VCCLCompilerTool': {
+                'AdditionalOptions': [
+                  '-fmsc-version=1800',
+                ],
+              },
+            }],
+            ['clang==1 and MSVS_VERSION == "2015"', {
+              'VCCLCompilerTool': {
+                'AdditionalOptions': [
+                  '-fmsc-version=1900',
+                ],
+              },
+            }],
+          ],
         },
       },
     }],  # OS=="win"
@@ -984,6 +1038,13 @@
               'CLANG_CXX_LANGUAGE_STANDARD': 'c++11',  # -std=c++11
             },
             'conditions': [
+              ['clang_xcode==0', {
+                'xcode_settings': {
+                  'CC': '<(clang_dir)/bin/clang',
+                  'LDPLUSPLUS': '<(clang_dir)/bin/clang++',
+                  'CLANG_CXX_LIBRARY': 'libc++'
+                },
+              }],
               ['v8_target_arch=="x64" or v8_target_arch=="arm64" \
                 or v8_target_arch=="mips64el"', {
                 'xcode_settings': {'WARNING_CFLAGS': ['-Wshorten-64-to-32']},
@@ -1188,8 +1249,12 @@
       # Hardcode the compiler names in the Makefile so that
       # it won't depend on the environment at make time.
       'make_global_settings': [
+        ['LD', '<!(/bin/echo -n <(android_toolchain)/../*/bin/ld)'],
+        ['RANLIB', '<!(/bin/echo -n <(android_toolchain)/../*/bin/ranlib)'],
         ['CC', '<!(/bin/echo -n <(android_toolchain)/*-gcc)'],
         ['CXX', '<!(/bin/echo -n <(android_toolchain)/*-g++)'],
+        ['LD.host', '<(host_ld)'],
+        ['RANLIB.host', '<(host_ranlib)'],
         ['CC.host', '<(host_cc)'],
         ['CXX.host', '<(host_cxx)'],
       ],
@@ -1261,10 +1326,10 @@
         ['coverage==1', {
           # Wrap goma with coverage wrapper.
           'make_global_settings': [
-            ['CC_wrapper', '<(base_dir)/build/coverage_wrapper.py <(gomadir)/gomacc'],
-            ['CXX_wrapper', '<(base_dir)/build/coverage_wrapper.py <(gomadir)/gomacc'],
-            ['CC.host_wrapper', '<(base_dir)/build/coverage_wrapper.py <(gomadir)/gomacc'],
-            ['CXX.host_wrapper', '<(base_dir)/build/coverage_wrapper.py <(gomadir)/gomacc'],
+            ['CC_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py <(gomadir)/gomacc'],
+            ['CXX_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py <(gomadir)/gomacc'],
+            ['CC.host_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py <(gomadir)/gomacc'],
+            ['CXX.host_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py <(gomadir)/gomacc'],
           ],
         }, {
           # Use only goma wrapper.
@@ -1281,10 +1346,10 @@
         ['coverage==1', {
           # Use only coverage wrapper.
           'make_global_settings': [
-            ['CC_wrapper', '<(base_dir)/build/coverage_wrapper.py'],
-            ['CXX_wrapper', '<(base_dir)/build/coverage_wrapper.py'],
-            ['CC.host_wrapper', '<(base_dir)/build/coverage_wrapper.py'],
-            ['CXX.host_wrapper', '<(base_dir)/build/coverage_wrapper.py'],
+            ['CC_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py'],
+            ['CXX_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py'],
+            ['CC.host_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py'],
+            ['CXX.host_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py'],
           ],
         }],
       ],
diff --git a/build/toolchain.gypi b/gypfiles/toolchain.gypi
similarity index 98%
rename from build/toolchain.gypi
rename to gypfiles/toolchain.gypi
index 6090898..bc3ee5e 100644
--- a/build/toolchain.gypi
+++ b/gypfiles/toolchain.gypi
@@ -73,16 +73,13 @@
     'v8_no_strict_aliasing%': 0,
 
     # Chrome needs this definition unconditionally. For standalone V8 builds,
-    # it's handled in build/standalone.gypi.
+    # it's handled in gypfiles/standalone.gypi.
     'want_separate_host_toolset%': 1,
 
-    # Toolset the d8 binary should be compiled for. Possible values are 'host'
-    # and 'target'. If you want to run v8 tests, it needs to be set to 'target'.
+    # Toolset the shell binary should be compiled for. Possible values are
+    # 'host' and 'target'.
     # The setting is ignored if want_separate_host_toolset is 0.
-    'v8_toolset_for_d8%': 'target',
-
-    # Control usage of a separate ignition snapshot file.
-    'v8_separate_ignition_snapshot%': 0,
+    'v8_toolset_for_shell%': 'target',
 
     'host_os%': '<(OS)',
     'werror%': '-Werror',
@@ -670,6 +667,9 @@
                     'ldflags': ['-mips32r2'],
                   }],
                   ['mips_arch_variant=="r1"', {
+                    'defines': [
+                      'FPU_MODE_FP32',
+                    ],
                     'cflags!': ['-mfp64', '-mfpxx'],
                     'conditions': [
                       [ 'clang==0', {
diff --git a/gypfiles/vs_toolchain.py b/gypfiles/vs_toolchain.py
new file mode 100644
index 0000000..1693647
--- /dev/null
+++ b/gypfiles/vs_toolchain.py
@@ -0,0 +1,379 @@
+#!/usr/bin/env python
+# Copyright 2015 the V8 project authors. All rights reserved.
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import glob
+import json
+import os
+import pipes
+import shutil
+import subprocess
+import sys
+
+
+script_dir = os.path.dirname(os.path.realpath(__file__))
+chrome_src = os.path.abspath(os.path.join(script_dir, os.pardir))
+SRC_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+sys.path.insert(1, os.path.join(chrome_src, 'tools'))
+sys.path.insert(0, os.path.join(chrome_src, 'tools', 'gyp', 'pylib'))
+json_data_file = os.path.join(script_dir, 'win_toolchain.json')
+
+
+import gyp
+
+
+# Use MSVS2013 as the default toolchain.
+CURRENT_DEFAULT_TOOLCHAIN_VERSION = '2013'
+
+
+def SetEnvironmentAndGetRuntimeDllDirs():
+  """Sets up os.environ to use the depot_tools VS toolchain with gyp, and
+  returns the location of the VS runtime DLLs so they can be copied into
+  the output directory after gyp generation.
+  """
+  vs_runtime_dll_dirs = None
+  depot_tools_win_toolchain = \
+      bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1')))
+  # When running on a non-Windows host, only do this if the SDK has explicitly
+  # been downloaded before (in which case json_data_file will exist).
+  if ((sys.platform in ('win32', 'cygwin') or os.path.exists(json_data_file))
+      and depot_tools_win_toolchain):
+    if ShouldUpdateToolchain():
+      Update()
+    with open(json_data_file, 'r') as tempf:
+      toolchain_data = json.load(tempf)
+
+    toolchain = toolchain_data['path']
+    version = toolchain_data['version']
+    win_sdk = toolchain_data.get('win_sdk')
+    if not win_sdk:
+      win_sdk = toolchain_data['win8sdk']
+    wdk = toolchain_data['wdk']
+    # TODO(scottmg): The order unfortunately matters in these. They should be
+    # split into separate keys for x86 and x64. (See CopyVsRuntimeDlls call
+    # below). http://crbug.com/345992
+    vs_runtime_dll_dirs = toolchain_data['runtime_dirs']
+
+    os.environ['GYP_MSVS_OVERRIDE_PATH'] = toolchain
+    os.environ['GYP_MSVS_VERSION'] = version
+    # We need to make sure windows_sdk_path is set to the automated
+    # toolchain values in GYP_DEFINES, but don't want to override any
+    # otheroptions.express
+    # values there.
+    gyp_defines_dict = gyp.NameValueListToDict(gyp.ShlexEnv('GYP_DEFINES'))
+    gyp_defines_dict['windows_sdk_path'] = win_sdk
+    os.environ['GYP_DEFINES'] = ' '.join('%s=%s' % (k, pipes.quote(str(v)))
+        for k, v in gyp_defines_dict.iteritems())
+    os.environ['WINDOWSSDKDIR'] = win_sdk
+    os.environ['WDK_DIR'] = wdk
+    # Include the VS runtime in the PATH in case it's not machine-installed.
+    runtime_path = os.path.pathsep.join(vs_runtime_dll_dirs)
+    os.environ['PATH'] = runtime_path + os.path.pathsep + os.environ['PATH']
+  elif sys.platform == 'win32' and not depot_tools_win_toolchain:
+    if not 'GYP_MSVS_OVERRIDE_PATH' in os.environ:
+      os.environ['GYP_MSVS_OVERRIDE_PATH'] = DetectVisualStudioPath()
+    if not 'GYP_MSVS_VERSION' in os.environ:
+      os.environ['GYP_MSVS_VERSION'] = GetVisualStudioVersion()
+
+  return vs_runtime_dll_dirs
+
+
+def _RegistryGetValueUsingWinReg(key, value):
+  """Use the _winreg module to obtain the value of a registry key.
+
+  Args:
+    key: The registry key.
+    value: The particular registry value to read.
+  Return:
+    contents of the registry key's value, or None on failure.  Throws
+    ImportError if _winreg is unavailable.
+  """
+  import _winreg
+  try:
+    root, subkey = key.split('\\', 1)
+    assert root == 'HKLM'  # Only need HKLM for now.
+    with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, subkey) as hkey:
+      return _winreg.QueryValueEx(hkey, value)[0]
+  except WindowsError:
+    return None
+
+
+def _RegistryGetValue(key, value):
+  try:
+    return _RegistryGetValueUsingWinReg(key, value)
+  except ImportError:
+    raise Exception('The python library _winreg not found.')
+
+
+def GetVisualStudioVersion():
+  """Return GYP_MSVS_VERSION of Visual Studio.
+  """
+  return os.environ.get('GYP_MSVS_VERSION', CURRENT_DEFAULT_TOOLCHAIN_VERSION)
+
+
+def DetectVisualStudioPath():
+  """Return path to the GYP_MSVS_VERSION of Visual Studio.
+  """
+
+  # Note that this code is used from
+  # build/toolchain/win/setup_toolchain.py as well.
+  version_as_year = GetVisualStudioVersion()
+  year_to_version = {
+      '2013': '12.0',
+      '2015': '14.0',
+  }
+  if version_as_year not in year_to_version:
+    raise Exception(('Visual Studio version %s (from GYP_MSVS_VERSION)'
+                     ' not supported. Supported versions are: %s') % (
+                       version_as_year, ', '.join(year_to_version.keys())))
+  version = year_to_version[version_as_year]
+  keys = [r'HKLM\Software\Microsoft\VisualStudio\%s' % version,
+          r'HKLM\Software\Wow6432Node\Microsoft\VisualStudio\%s' % version]
+  for key in keys:
+    path = _RegistryGetValue(key, 'InstallDir')
+    if not path:
+      continue
+    path = os.path.normpath(os.path.join(path, '..', '..'))
+    return path
+
+  raise Exception(('Visual Studio Version %s (from GYP_MSVS_VERSION)'
+                   ' not found.') % (version_as_year))
+
+
+def _VersionNumber():
+  """Gets the standard version number ('120', '140', etc.) based on
+  GYP_MSVS_VERSION."""
+  vs_version = GetVisualStudioVersion()
+  if vs_version == '2013':
+    return '120'
+  elif vs_version == '2015':
+    return '140'
+  else:
+    raise ValueError('Unexpected GYP_MSVS_VERSION')
+
+
+def _CopyRuntimeImpl(target, source, verbose=True):
+  """Copy |source| to |target| if it doesn't already exist or if it
+  needs to be updated.
+  """
+  if (os.path.isdir(os.path.dirname(target)) and
+      (not os.path.isfile(target) or
+      os.stat(target).st_mtime != os.stat(source).st_mtime)):
+    if verbose:
+      print 'Copying %s to %s...' % (source, target)
+    if os.path.exists(target):
+      os.unlink(target)
+    shutil.copy2(source, target)
+
+
+def _CopyRuntime2013(target_dir, source_dir, dll_pattern):
+  """Copy both the msvcr and msvcp runtime DLLs, only if the target doesn't
+  exist, but the target directory does exist."""
+  for file_part in ('p', 'r'):
+    dll = dll_pattern % file_part
+    target = os.path.join(target_dir, dll)
+    source = os.path.join(source_dir, dll)
+    _CopyRuntimeImpl(target, source)
+
+
+def _CopyRuntime2015(target_dir, source_dir, dll_pattern, suffix):
+  """Copy both the msvcp and vccorlib runtime DLLs, only if the target doesn't
+  exist, but the target directory does exist."""
+  for file_part in ('msvcp', 'vccorlib', 'vcruntime'):
+    dll = dll_pattern % file_part
+    target = os.path.join(target_dir, dll)
+    source = os.path.join(source_dir, dll)
+    _CopyRuntimeImpl(target, source)
+  ucrt_src_dir = os.path.join(source_dir, 'api-ms-win-*.dll')
+  print 'Copying %s to %s...' % (ucrt_src_dir, target_dir)
+  for ucrt_src_file in glob.glob(ucrt_src_dir):
+    file_part = os.path.basename(ucrt_src_file)
+    ucrt_dst_file = os.path.join(target_dir, file_part)
+    _CopyRuntimeImpl(ucrt_dst_file, ucrt_src_file, False)
+  _CopyRuntimeImpl(os.path.join(target_dir, 'ucrtbase' + suffix),
+                    os.path.join(source_dir, 'ucrtbase' + suffix))
+
+
+def _CopyRuntime(target_dir, source_dir, target_cpu, debug):
+  """Copy the VS runtime DLLs, only if the target doesn't exist, but the target
+  directory does exist. Handles VS 2013 and VS 2015."""
+  suffix = "d.dll" if debug else ".dll"
+  if GetVisualStudioVersion() == '2015':
+    _CopyRuntime2015(target_dir, source_dir, '%s140' + suffix, suffix)
+  else:
+    _CopyRuntime2013(target_dir, source_dir, 'msvc%s120' + suffix)
+
+  # Copy the PGO runtime library to the release directories.
+  if not debug and os.environ.get('GYP_MSVS_OVERRIDE_PATH'):
+    pgo_x86_runtime_dir = os.path.join(os.environ.get('GYP_MSVS_OVERRIDE_PATH'),
+                                        'VC', 'bin')
+    pgo_x64_runtime_dir = os.path.join(pgo_x86_runtime_dir, 'amd64')
+    pgo_runtime_dll = 'pgort' + _VersionNumber() + '.dll'
+    if target_cpu == "x86":
+      source_x86 = os.path.join(pgo_x86_runtime_dir, pgo_runtime_dll)
+      if os.path.exists(source_x86):
+        _CopyRuntimeImpl(os.path.join(target_dir, pgo_runtime_dll), source_x86)
+    elif target_cpu == "x64":
+      source_x64 = os.path.join(pgo_x64_runtime_dir, pgo_runtime_dll)
+      if os.path.exists(source_x64):
+        _CopyRuntimeImpl(os.path.join(target_dir, pgo_runtime_dll),
+                          source_x64)
+    else:
+      raise NotImplementedError("Unexpected target_cpu value:" + target_cpu)
+
+
+def CopyVsRuntimeDlls(output_dir, runtime_dirs):
+  """Copies the VS runtime DLLs from the given |runtime_dirs| to the output
+  directory so that even if not system-installed, built binaries are likely to
+  be able to run.
+
+  This needs to be run after gyp has been run so that the expected target
+  output directories are already created.
+
+  This is used for the GYP build and gclient runhooks.
+  """
+  x86, x64 = runtime_dirs
+  out_debug = os.path.join(output_dir, 'Debug')
+  out_debug_nacl64 = os.path.join(output_dir, 'Debug', 'x64')
+  out_release = os.path.join(output_dir, 'Release')
+  out_release_nacl64 = os.path.join(output_dir, 'Release', 'x64')
+  out_debug_x64 = os.path.join(output_dir, 'Debug_x64')
+  out_release_x64 = os.path.join(output_dir, 'Release_x64')
+
+  if os.path.exists(out_debug) and not os.path.exists(out_debug_nacl64):
+    os.makedirs(out_debug_nacl64)
+  if os.path.exists(out_release) and not os.path.exists(out_release_nacl64):
+    os.makedirs(out_release_nacl64)
+  _CopyRuntime(out_debug,          x86, "x86", debug=True)
+  _CopyRuntime(out_release,        x86, "x86", debug=False)
+  _CopyRuntime(out_debug_x64,      x64, "x64", debug=True)
+  _CopyRuntime(out_release_x64,    x64, "x64", debug=False)
+  _CopyRuntime(out_debug_nacl64,   x64, "x64", debug=True)
+  _CopyRuntime(out_release_nacl64, x64, "x64", debug=False)
+
+
+def CopyDlls(target_dir, configuration, target_cpu):
+  """Copy the VS runtime DLLs into the requested directory as needed.
+
+  configuration is one of 'Debug' or 'Release'.
+  target_cpu is one of 'x86' or 'x64'.
+
+  The debug configuration gets both the debug and release DLLs; the
+  release config only the latter.
+
+  This is used for the GN build.
+  """
+  vs_runtime_dll_dirs = SetEnvironmentAndGetRuntimeDllDirs()
+  if not vs_runtime_dll_dirs:
+    return
+
+  x64_runtime, x86_runtime = vs_runtime_dll_dirs
+  runtime_dir = x64_runtime if target_cpu == 'x64' else x86_runtime
+  _CopyRuntime(target_dir, runtime_dir, target_cpu, debug=False)
+  if configuration == 'Debug':
+    _CopyRuntime(target_dir, runtime_dir, target_cpu, debug=True)
+
+
+def _GetDesiredVsToolchainHashes():
+  """Load a list of SHA1s corresponding to the toolchains that we want installed
+  to build with."""
+  if GetVisualStudioVersion() == '2015':
+    # Update 2.
+    return ['95ddda401ec5678f15eeed01d2bee08fcbc5ee97']
+  else:
+    return ['03a4e939cd325d6bc5216af41b92d02dda1366a6']
+
+
+def ShouldUpdateToolchain():
+  """Check if the toolchain should be upgraded."""
+  if not os.path.exists(json_data_file):
+    return True
+  with open(json_data_file, 'r') as tempf:
+    toolchain_data = json.load(tempf)
+  version = toolchain_data['version']
+  env_version = GetVisualStudioVersion()
+  # If there's a mismatch between the version set in the environment and the one
+  # in the json file then the toolchain should be updated.
+  return version != env_version
+
+
+def Update(force=False):
+  """Requests an update of the toolchain to the specific hashes we have at
+  this revision. The update outputs a .json of the various configuration
+  information required to pass to gyp which we use in |GetToolchainDir()|.
+  """
+  if force != False and force != '--force':
+    print >>sys.stderr, 'Unknown parameter "%s"' % force
+    return 1
+  if force == '--force' or os.path.exists(json_data_file):
+    force = True
+
+  depot_tools_win_toolchain = \
+      bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1')))
+  if ((sys.platform in ('win32', 'cygwin') or force) and
+        depot_tools_win_toolchain):
+    import find_depot_tools
+    depot_tools_path = find_depot_tools.add_depot_tools_to_path()
+    # Necessary so that get_toolchain_if_necessary.py will put the VS toolkit
+    # in the correct directory.
+    os.environ['GYP_MSVS_VERSION'] = GetVisualStudioVersion()
+    get_toolchain_args = [
+        sys.executable,
+        os.path.join(depot_tools_path,
+                    'win_toolchain',
+                    'get_toolchain_if_necessary.py'),
+        '--output-json', json_data_file,
+      ] + _GetDesiredVsToolchainHashes()
+    if force:
+      get_toolchain_args.append('--force')
+    subprocess.check_call(get_toolchain_args)
+
+  return 0
+
+
+def NormalizePath(path):
+  while path.endswith("\\"):
+    path = path[:-1]
+  return path
+
+
+def GetToolchainDir():
+  """Gets location information about the current toolchain (must have been
+  previously updated by 'update'). This is used for the GN build."""
+  runtime_dll_dirs = SetEnvironmentAndGetRuntimeDllDirs()
+
+  # If WINDOWSSDKDIR is not set, search the default SDK path and set it.
+  if not 'WINDOWSSDKDIR' in os.environ:
+    default_sdk_path = 'C:\\Program Files (x86)\\Windows Kits\\10'
+    if os.path.isdir(default_sdk_path):
+      os.environ['WINDOWSSDKDIR'] = default_sdk_path
+
+  print '''vs_path = "%s"
+sdk_path = "%s"
+vs_version = "%s"
+wdk_dir = "%s"
+runtime_dirs = "%s"
+''' % (
+      NormalizePath(os.environ['GYP_MSVS_OVERRIDE_PATH']),
+      NormalizePath(os.environ['WINDOWSSDKDIR']),
+      GetVisualStudioVersion(),
+      NormalizePath(os.environ.get('WDK_DIR', '')),
+      os.path.pathsep.join(runtime_dll_dirs or ['None']))
+
+
+def main():
+  commands = {
+      'update': Update,
+      'get_toolchain_dir': GetToolchainDir,
+      'copy_dlls': CopyDlls,
+  }
+  if len(sys.argv) < 2 or sys.argv[1] not in commands:
+    print >>sys.stderr, 'Expected one of: %s' % ', '.join(commands)
+    return 1
+  return commands[sys.argv[1]](*sys.argv[2:])
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/include/v8-profiler.h b/include/v8-profiler.h
index 007ae2e..535e821 100644
--- a/include/v8-profiler.h
+++ b/include/v8-profiler.h
@@ -515,6 +515,11 @@
  */
 class V8_EXPORT HeapProfiler {
  public:
+  enum SamplingFlags {
+    kSamplingNoFlags = 0,
+    kSamplingForceGC = 1 << 0,
+  };
+
   /**
    * Callback function invoked for obtaining RetainedObjectInfo for
    * the given JavaScript wrapper object. It is prohibited to enter V8
@@ -640,7 +645,8 @@
    * Returns false if a sampling heap profiler is already running.
    */
   bool StartSamplingHeapProfiler(uint64_t sample_interval = 512 * 1024,
-                                 int stack_depth = 16);
+                                 int stack_depth = 16,
+                                 SamplingFlags flags = kSamplingNoFlags);
 
   /**
    * Stops the sampling heap profile and discards the current profile.
diff --git a/include/v8-util.h b/include/v8-util.h
index 73ec658..8133fdd 100644
--- a/include/v8-util.h
+++ b/include/v8-util.h
@@ -95,12 +95,12 @@
       MapType* map, const K& key, Local<V> value) {
     return NULL;
   }
-  static MapType* MapFromWeakCallbackData(
-          const WeakCallbackData<V, WeakCallbackDataType>& data) {
+  static MapType* MapFromWeakCallbackInfo(
+      const WeakCallbackInfo<WeakCallbackDataType>& data) {
     return NULL;
   }
-  static K KeyFromWeakCallbackData(
-      const WeakCallbackData<V, WeakCallbackDataType>& data) {
+  static K KeyFromWeakCallbackInfo(
+      const WeakCallbackInfo<WeakCallbackDataType>& data) {
     return K();
   }
   static void DisposeCallbackData(WeakCallbackDataType* data) { }
@@ -206,6 +206,17 @@
   }
 
   /**
+   * Call V8::RegisterExternallyReferencedObject with the map value for given
+   * key.
+   */
+  void RegisterExternallyReferencedObject(K& key) {
+    DCHECK(Contains(key));
+    V8::RegisterExternallyReferencedObject(
+        reinterpret_cast<internal::Object**>(FromVal(Traits::Get(&impl_, key))),
+        reinterpret_cast<internal::Isolate*>(GetIsolate()));
+  }
+
+  /**
    * Return value for key and remove it from the map.
    */
   Global<V> Remove(const K& key) {
@@ -402,11 +413,11 @@
 
  private:
   static void WeakCallback(
-      const WeakCallbackData<V, typename Traits::WeakCallbackDataType>& data) {
+      const WeakCallbackInfo<typename Traits::WeakCallbackDataType>& data) {
     if (Traits::kCallbackType != kNotWeak) {
       PersistentValueMap<K, V, Traits>* persistentValueMap =
-          Traits::MapFromWeakCallbackData(data);
-      K key = Traits::KeyFromWeakCallbackData(data);
+          Traits::MapFromWeakCallbackInfo(data);
+      K key = Traits::KeyFromWeakCallbackInfo(data);
       Traits::Dispose(data.GetIsolate(),
                       persistentValueMap->Remove(key).Pass(), key);
       Traits::DisposeCallbackData(data.GetParameter());
diff --git a/include/v8-version.h b/include/v8-version.h
index 545ec70..2729045 100644
--- a/include/v8-version.h
+++ b/include/v8-version.h
@@ -9,9 +9,9 @@
 // NOTE these macros are used by some of the tool scripts and the build
 // system so their names cannot be changed without changing the scripts.
 #define V8_MAJOR_VERSION 5
-#define V8_MINOR_VERSION 1
-#define V8_BUILD_NUMBER 281
-#define V8_PATCH_LEVEL 59
+#define V8_MINOR_VERSION 2
+#define V8_BUILD_NUMBER 361
+#define V8_PATCH_LEVEL 47
 
 // Use 1 for candidates and 0 otherwise.
 // (Boolean macro values are not supported by all preprocessors.)
diff --git a/include/v8.h b/include/v8.h
index 703a4f4..3f02ce8 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -457,32 +457,12 @@
 };
 
 
-template <class T, class P>
-class WeakCallbackData {
- public:
-  typedef void (*Callback)(const WeakCallbackData<T, P>& data);
-
-  WeakCallbackData(Isolate* isolate, P* parameter, Local<T> handle)
-      : isolate_(isolate), parameter_(parameter), handle_(handle) {}
-
-  V8_INLINE Isolate* GetIsolate() const { return isolate_; }
-  V8_INLINE P* GetParameter() const { return parameter_; }
-  V8_INLINE Local<T> GetValue() const { return handle_; }
-
- private:
-  Isolate* isolate_;
-  P* parameter_;
-  Local<T> handle_;
-};
-
-
-// TODO(dcarney): delete this with WeakCallbackData
-template <class T>
-using PhantomCallbackData = WeakCallbackInfo<T>;
-
-
-enum class WeakCallbackType { kParameter, kInternalFields };
-
+// kParameter will pass a void* parameter back to the callback, kInternalFields
+// will pass the first two internal fields back to the callback, kFinalizer
+// will pass a void* parameter back, but is invoked before the object is
+// actually collected, so it can be resurrected. In the last case, it is not
+// possible to request a second pass callback.
+enum class WeakCallbackType { kParameter, kInternalFields, kFinalizer };
 
 /**
  * An object reference that is independent of any handle scope.  Where
@@ -561,36 +541,19 @@
    *  critical form of resource management!
    */
   template <typename P>
-  V8_INLINE V8_DEPRECATED(
-      "use WeakCallbackInfo version",
-      void SetWeak(P* parameter,
-                   typename WeakCallbackData<T, P>::Callback callback));
-
-  template <typename S, typename P>
-  V8_INLINE V8_DEPRECATED(
-      "use WeakCallbackInfo version",
-      void SetWeak(P* parameter,
-                   typename WeakCallbackData<S, P>::Callback callback));
-
-  // Phantom persistents work like weak persistents, except that the pointer to
-  // the object being collected is not available in the finalization callback.
-  // This enables the garbage collector to collect the object and any objects
-  // it references transitively in one GC cycle. At the moment you can either
-  // specify a parameter for the callback or the location of two internal
-  // fields in the dying object.
-  template <typename P>
-  V8_INLINE V8_DEPRECATED(
-      "use SetWeak",
-      void SetPhantom(P* parameter,
-                      typename WeakCallbackInfo<P>::Callback callback,
-                      int internal_field_index1 = -1,
-                      int internal_field_index2 = -1));
-
-  template <typename P>
   V8_INLINE void SetWeak(P* parameter,
                          typename WeakCallbackInfo<P>::Callback callback,
                          WeakCallbackType type);
 
+  /**
+   * Turns this handle into a weak phantom handle without finalization callback.
+   * The handle will be reset automatically when the garbage collector detects
+   * that the object is no longer reachable.
+   * A related function Isolate::NumberOfPhantomHandleResetsSinceLastCall
+   * returns how many phantom handles were reset by the garbage collector.
+   */
+  V8_INLINE void SetWeak();
+
   template<typename P>
   V8_INLINE P* ClearWeak();
 
@@ -602,7 +565,7 @@
    * is alive. Only allowed when the embedder is asked to trace its heap by
    * EmbedderHeapTracer.
    */
-  V8_INLINE void RegisterExternalReference(Isolate* isolate);
+  V8_INLINE void RegisterExternalReference(Isolate* isolate) const;
 
   /**
    * Marks the reference to this object independent. Garbage collector is free
@@ -620,7 +583,9 @@
    * external dependencies. This mark is automatically cleared after each
    * garbage collection.
    */
-  V8_INLINE void MarkPartiallyDependent();
+  V8_INLINE V8_DEPRECATED(
+      "deprecated optimization, do not use partially dependent groups",
+      void MarkPartiallyDependent());
 
   /**
    * Marks the reference to this object as active. The scavenge garbage
@@ -1665,9 +1630,8 @@
   StateTag vm_state;
 };
 
-
 /**
- * A JSON Parser.
+ * A JSON Parser and Stringifier.
  */
 class V8_EXPORT JSON {
  public:
@@ -1678,10 +1642,23 @@
    * \param json_string The string to parse.
    * \return The corresponding value if successfully parsed.
    */
-  static V8_DEPRECATED("Use maybe version",
+  static V8_DEPRECATED("Use the maybe version taking context",
                        Local<Value> Parse(Local<String> json_string));
+  static V8_DEPRECATE_SOON("Use the maybe version taking context",
+                           MaybeLocal<Value> Parse(Isolate* isolate,
+                                                   Local<String> json_string));
   static V8_WARN_UNUSED_RESULT MaybeLocal<Value> Parse(
-      Isolate* isolate, Local<String> json_string);
+      Local<Context> context, Local<String> json_string);
+
+  /**
+   * Tries to stringify the JSON-serializable object |json_object| and returns
+   * it as string if successful.
+   *
+   * \param json_object The JSON-serializable object to stringify.
+   * \return The corresponding string if successfully stringified.
+   */
+  static V8_WARN_UNUSED_RESULT MaybeLocal<String> Stringify(
+      Local<Context> context, Local<Object> json_object);
 };
 
 
@@ -2050,6 +2027,8 @@
 
   template <class T> V8_INLINE static Value* Cast(T* value);
 
+  Local<String> TypeOf(v8::Isolate*);
+
  private:
   V8_INLINE bool QuickIsUndefined() const;
   V8_INLINE bool QuickIsNull() const;
@@ -2640,6 +2619,18 @@
 };
 
 /**
+ * Property filter bits. They can be or'ed to build a composite filter.
+ */
+enum PropertyFilter {
+  ALL_PROPERTIES = 0,
+  ONLY_WRITABLE = 1,
+  ONLY_ENUMERABLE = 2,
+  ONLY_CONFIGURABLE = 4,
+  SKIP_STRINGS = 8,
+  SKIP_SYMBOLS = 16
+};
+
+/**
  * Integrity level for objects.
  */
 enum class IntegrityLevel { kFrozen, kSealed };
@@ -2799,6 +2790,15 @@
       Local<Context> context);
 
   /**
+   * Returns an array containing the names of the filtered properties
+   * of this object, including properties from prototype objects.  The
+   * array returned by this method contains the same values as would
+   * be enumerated by a for-in statement over this object.
+   */
+  V8_WARN_UNUSED_RESULT MaybeLocal<Array> GetOwnPropertyNames(
+      Local<Context> context, PropertyFilter filter);
+
+  /**
    * Get the prototype object.  This does not skip objects marked to
    * be skipped by __proto__ and it does not consult the security
    * handler.
@@ -2878,6 +2878,8 @@
   V8_DEPRECATED("Use maybe version", bool HasOwnProperty(Local<String> key));
   V8_WARN_UNUSED_RESULT Maybe<bool> HasOwnProperty(Local<Context> context,
                                                    Local<Name> key);
+  V8_WARN_UNUSED_RESULT Maybe<bool> HasOwnProperty(Local<Context> context,
+                                                   uint32_t index);
   V8_DEPRECATE_SOON("Use maybe version",
                     bool HasRealNamedProperty(Local<String> key));
   V8_WARN_UNUSED_RESULT Maybe<bool> HasRealNamedProperty(Local<Context> context,
@@ -2950,13 +2952,6 @@
    */
   int GetIdentityHash();
 
-  V8_DEPRECATED("Use v8::Object::SetPrivate instead.",
-                bool SetHiddenValue(Local<String> key, Local<Value> value));
-  V8_DEPRECATED("Use v8::Object::GetPrivate instead.",
-                Local<Value> GetHiddenValue(Local<String> key));
-  V8_DEPRECATED("Use v8::Object::DeletePrivate instead.",
-                bool DeleteHiddenValue(Local<String> key));
-
   /**
    * Clone this object with a fast but shallow copy.  Values will point
    * to the same values as the original object.
@@ -2977,6 +2972,11 @@
   bool IsCallable();
 
   /**
+   * True if this object is a constructor.
+   */
+  bool IsConstructor();
+
+  /**
    * Call an Object as a function if a callback is set by the
    * ObjectTemplate::SetCallAsFunctionHandler method.
    */
@@ -3177,12 +3177,13 @@
                           Local<Function> Callee() const);
   V8_INLINE Local<Object> This() const;
   V8_INLINE Local<Object> Holder() const;
+  V8_INLINE Local<Value> NewTarget() const;
   V8_INLINE bool IsConstructCall() const;
   V8_INLINE Local<Value> Data() const;
   V8_INLINE Isolate* GetIsolate() const;
   V8_INLINE ReturnValue<T> GetReturnValue() const;
   // This shouldn't be public, but the arm compiler needs it.
-  static const int kArgsLength = 7;
+  static const int kArgsLength = 8;
 
  protected:
   friend class internal::FunctionCallbackArguments;
@@ -3194,15 +3195,13 @@
   static const int kDataIndex = 4;
   static const int kCalleeIndex = 5;
   static const int kContextSaveIndex = 6;
+  static const int kNewTargetIndex = 7;
 
   V8_INLINE FunctionCallbackInfo(internal::Object** implicit_args,
-                   internal::Object** values,
-                   int length,
-                   bool is_construct_call);
+                                 internal::Object** values, int length);
   internal::Object** implicit_args_;
   internal::Object** values_;
   int length_;
-  int is_construct_call_;
 };
 
 
@@ -3241,6 +3240,7 @@
 
 typedef void (*FunctionCallback)(const FunctionCallbackInfo<Value>& info);
 
+enum class ConstructorBehavior { kThrow, kAllow };
 
 /**
  * A JavaScript function object (ECMA-262, 15.3).
@@ -3251,10 +3251,10 @@
    * Create a function in the current execution context
    * for a given FunctionCallback.
    */
-  static MaybeLocal<Function> New(Local<Context> context,
-                                  FunctionCallback callback,
-                                  Local<Value> data = Local<Value>(),
-                                  int length = 0);
+  static MaybeLocal<Function> New(
+      Local<Context> context, FunctionCallback callback,
+      Local<Value> data = Local<Value>(), int length = 0,
+      ConstructorBehavior behavior = ConstructorBehavior::kAllow);
   static V8_DEPRECATE_SOON(
       "Use maybe version",
       Local<Function> New(Isolate* isolate, FunctionCallback callback,
@@ -3456,10 +3456,20 @@
 class V8_EXPORT ArrayBuffer : public Object {
  public:
   /**
-   * Allocator that V8 uses to allocate |ArrayBuffer|'s memory.
+   * A thread-safe allocator that V8 uses to allocate |ArrayBuffer|'s memory.
    * The allocator is a global V8 setting. It has to be set via
    * Isolate::CreateParams.
    *
+   * Memory allocated through this allocator by V8 is accounted for as external
+   * memory by V8. Note that V8 keeps track of the memory for all internalized
+   * |ArrayBuffer|s. Responsibility for tracking external memory (using
+   * Isolate::AdjustAmountOfExternalAllocatedMemory) is handed over to the
+   * embedder upon externalization and taken over upon internalization (creating
+   * an internalized buffer from an existing buffer).
+   *
+   * Note that it is unsafe to call back into V8 from any of the allocator
+   * functions.
+   *
    * This API is experimental and may change significantly.
    */
   class V8_EXPORT Allocator { // NOLINT
@@ -4127,7 +4137,11 @@
  */
 class V8_EXPORT Template : public Data {
  public:
-  /** Adds a property to each instance created by this template.*/
+  /**
+   * Adds a property to each instance created by this template.
+   *
+   * The property must be defined either as a primitive value, or a template.
+   */
   void Set(Local<Name> name, Local<Data> value,
            PropertyAttribute attributes = None);
   V8_INLINE void Set(Isolate* isolate, const char* name, Local<Data> value);
@@ -4477,7 +4491,8 @@
   static Local<FunctionTemplate> New(
       Isolate* isolate, FunctionCallback callback = 0,
       Local<Value> data = Local<Value>(),
-      Local<Signature> signature = Local<Signature>(), int length = 0);
+      Local<Signature> signature = Local<Signature>(), int length = 0,
+      ConstructorBehavior behavior = ConstructorBehavior::kAllow);
 
   /**
    * Creates a function template with a fast handler. If a fast handler is set,
@@ -5121,6 +5136,11 @@
    */
   static int GetCurrentDepth(Isolate* isolate);
 
+  /**
+   * Returns true while microtasks are being executed.
+   */
+  static bool IsRunningMicrotasks(Isolate* isolate);
+
  private:
   internal::Isolate* const isolate_;
   bool run_;
@@ -5394,31 +5414,29 @@
  * trace through its heap and call PersistentBase::RegisterExternalReference on
  * each js object reachable from any of the given wrappers.
  *
- * Before the first call to the TraceWrappableFrom function v8 will call
- * TraceRoots. When the v8 garbage collection is finished, v8 will call
- * ClearTracingMarks.
+ * Before the first call to the TraceWrappersFrom function TracePrologue will be
+ * called. When the garbage collection cycle is finished, TraceEpilogue will be
+ * called.
  */
-class EmbedderHeapTracer {
+class V8_EXPORT EmbedderHeapTracer {
  public:
   /**
    * V8 will call this method at the beginning of the gc cycle.
    */
-  virtual void TraceRoots(Isolate* isolate) = 0;
-
+  virtual void TracePrologue() = 0;
   /**
    * V8 will call this method with internal fields of a potential wrappers.
    * Embedder is expected to trace its heap (synchronously) and call
    * PersistentBase::RegisterExternalReference() on all wrappers reachable from
    * any of the given wrappers.
    */
-  virtual void TraceWrappableFrom(
-      Isolate* isolate,
+  virtual void TraceWrappersFrom(
       const std::vector<std::pair<void*, void*> >& internal_fields) = 0;
   /**
    * V8 will call this method at the end of the gc cycle. Allocation is *not*
-   * allowed in the ClearTracingMarks.
+   * allowed in the TraceEpilogue.
    */
-  virtual void ClearTracingMarks(Isolate* isolate) = 0;
+  virtual void TraceEpilogue() = 0;
 
  protected:
   virtual ~EmbedderHeapTracer() = default;
@@ -5621,9 +5639,10 @@
     kLegacyFunctionDeclaration = 29,
     kRegExpPrototypeSourceGetter = 30,
     kRegExpPrototypeOldFlagGetter = 31,
+    kDecimalWithLeadingZeroInStrictMode = 32,
 
-    // If you add new values here, you'll also need to update V8Initializer.cpp
-    // in Chromium.
+    // If you add new values here, you'll also need to update Chromium's:
+    // UseCounter.h, V8PerIsolateData.cpp, histograms.xml
     kUseCounterFeatureCount  // This enum value must be last.
   };
 
@@ -5796,6 +5815,12 @@
       AdjustAmountOfExternalAllocatedMemory(int64_t change_in_bytes);
 
   /**
+   * Returns the number of phantom handles without callbacks that were reset
+   * by the garbage collector since the last call to this function.
+   */
+  size_t NumberOfPhantomHandleResetsSinceLastCall();
+
+  /**
    * Returns heap profiler for this isolate. Will return NULL until the isolate
    * is initialized.
    */
@@ -6234,13 +6259,17 @@
    * Enables the host application to provide a mechanism to be notified
    * and perform custom logging when V8 Allocates Executable Memory.
    */
-  void AddMemoryAllocationCallback(MemoryAllocationCallback callback,
-                                   ObjectSpace space, AllocationAction action);
+  void V8_DEPRECATED(
+      "Use a combination of RequestInterrupt and GCCallback instead",
+      AddMemoryAllocationCallback(MemoryAllocationCallback callback,
+                                  ObjectSpace space, AllocationAction action));
 
   /**
    * Removes callback that was installed by AddMemoryAllocationCallback.
    */
-  void RemoveMemoryAllocationCallback(MemoryAllocationCallback callback);
+  void V8_DEPRECATED(
+      "Use a combination of RequestInterrupt and GCCallback instead",
+      RemoveMemoryAllocationCallback(MemoryAllocationCallback callback));
 
   /**
    * Iterates through all external resources referenced from current isolate
@@ -6477,23 +6506,6 @@
       void RemoveGCEpilogueCallback(GCCallback callback));
 
   /**
-   * Enables the host application to provide a mechanism to be notified
-   * and perform custom logging when V8 Allocates Executable Memory.
-   */
-  V8_INLINE static V8_DEPRECATED(
-      "Use isolate version",
-      void AddMemoryAllocationCallback(MemoryAllocationCallback callback,
-                                       ObjectSpace space,
-                                       AllocationAction action));
-
-  /**
-   * Removes callback that was installed by AddMemoryAllocationCallback.
-   */
-  V8_INLINE static V8_DEPRECATED(
-      "Use isolate version",
-      void RemoveMemoryAllocationCallback(MemoryAllocationCallback callback));
-
-  /**
    * Initializes V8. This function needs to be called before the first Isolate
    * is created. It always returns true.
    */
@@ -6653,26 +6665,27 @@
                                                internal::Object** handle);
   static internal::Object** CopyPersistent(internal::Object** handle);
   static void DisposeGlobal(internal::Object** global_handle);
-  typedef WeakCallbackData<Value, void>::Callback WeakCallback;
-  static void RegisterExternallyReferencedObject(internal::Object** object,
-                                                 internal::Isolate* isolate);
-  static void MakeWeak(internal::Object** global_handle, void* data,
-                       WeakCallback weak_callback);
-  static void MakeWeak(internal::Object** global_handle, void* data,
+  static void MakeWeak(internal::Object** location, void* data,
                        WeakCallbackInfo<void>::Callback weak_callback,
                        WeakCallbackType type);
-  static void MakeWeak(internal::Object** global_handle, void* data,
+  static void MakeWeak(internal::Object** location, void* data,
                        // Must be 0 or -1.
                        int internal_field_index1,
                        // Must be 1 or -1.
                        int internal_field_index2,
                        WeakCallbackInfo<void>::Callback weak_callback);
-  static void* ClearWeak(internal::Object** global_handle);
+  static void MakeWeak(internal::Object*** location_addr);
+  static void* ClearWeak(internal::Object** location);
   static void Eternalize(Isolate* isolate,
                          Value* handle,
                          int* index);
   static Local<Value> GetEternal(Isolate* isolate, int index);
 
+  static void RegisterExternallyReferencedObject(internal::Object** object,
+                                                 internal::Isolate* isolate);
+  template <class K, class V, class T>
+  friend class PersistentValueMapBase;
+
   static void FromJustIsNothing();
   static void ToLocalEmpty();
   static void InternalFieldOutOfBounds(int index);
@@ -7330,7 +7343,7 @@
       1 * kApiPointerSize + kApiIntSize;
   static const int kStringResourceOffset = 3 * kApiPointerSize;
 
-  static const int kOddballKindOffset = 5 * kApiPointerSize;
+  static const int kOddballKindOffset = 5 * kApiPointerSize + sizeof(double);
   static const int kForeignAddressOffset = kApiPointerSize;
   static const int kJSObjectHeaderSize = 3 * kApiPointerSize;
   static const int kFixedArrayHeaderSize = 2 * kApiPointerSize;
@@ -7370,7 +7383,8 @@
   static const int kNodeIsPartiallyDependentShift = 4;
   static const int kNodeIsActiveShift = 4;
 
-  static const int kJSObjectType = 0xb8;
+  static const int kJSObjectType = 0xb7;
+  static const int kJSApiObjectType = 0xb6;
   static const int kFirstNonstringType = 0x80;
   static const int kOddballType = 0x83;
   static const int kForeignType = 0x87;
@@ -7624,39 +7638,6 @@
 
 
 template <class T>
-template <typename S, typename P>
-void PersistentBase<T>::SetWeak(
-    P* parameter,
-    typename WeakCallbackData<S, P>::Callback callback) {
-  TYPE_CHECK(S, T);
-  typedef typename WeakCallbackData<Value, void>::Callback Callback;
-  V8::MakeWeak(reinterpret_cast<internal::Object**>(this->val_), parameter,
-               reinterpret_cast<Callback>(callback));
-}
-
-
-template <class T>
-template <typename P>
-void PersistentBase<T>::SetWeak(
-    P* parameter,
-    typename WeakCallbackData<T, P>::Callback callback) {
-  SetWeak<T, P>(parameter, callback);
-}
-
-
-template <class T>
-template <typename P>
-void PersistentBase<T>::SetPhantom(
-    P* parameter, typename WeakCallbackInfo<P>::Callback callback,
-    int internal_field_index1, int internal_field_index2) {
-  typedef typename WeakCallbackInfo<void>::Callback Callback;
-  V8::MakeWeak(reinterpret_cast<internal::Object**>(this->val_), parameter,
-               internal_field_index1, internal_field_index2,
-               reinterpret_cast<Callback>(callback));
-}
-
-
-template <class T>
 template <typename P>
 V8_INLINE void PersistentBase<T>::SetWeak(
     P* parameter, typename WeakCallbackInfo<P>::Callback callback,
@@ -7666,6 +7647,10 @@
                reinterpret_cast<Callback>(callback), type);
 }
 
+template <class T>
+void PersistentBase<T>::SetWeak() {
+  V8::MakeWeak(reinterpret_cast<internal::Object***>(&this->val_));
+}
 
 template <class T>
 template <typename P>
@@ -7675,7 +7660,7 @@
 }
 
 template <class T>
-void PersistentBase<T>::RegisterExternalReference(Isolate* isolate) {
+void PersistentBase<T>::RegisterExternalReference(Isolate* isolate) const {
   if (IsEmpty()) return;
   V8::RegisterExternallyReferencedObject(
       reinterpret_cast<internal::Object**>(this->val_),
@@ -7857,17 +7842,11 @@
   return value_[-1];
 }
 
-
-template<typename T>
+template <typename T>
 FunctionCallbackInfo<T>::FunctionCallbackInfo(internal::Object** implicit_args,
                                               internal::Object** values,
-                                              int length,
-                                              bool is_construct_call)
-    : implicit_args_(implicit_args),
-      values_(values),
-      length_(length),
-      is_construct_call_(is_construct_call) { }
-
+                                              int length)
+    : implicit_args_(implicit_args), values_(values), length_(length) {}
 
 template<typename T>
 Local<Value> FunctionCallbackInfo<T>::operator[](int i) const {
@@ -7895,8 +7874,13 @@
       &implicit_args_[kHolderIndex]));
 }
 
+template <typename T>
+Local<Value> FunctionCallbackInfo<T>::NewTarget() const {
+  return Local<Value>(
+      reinterpret_cast<Value*>(&implicit_args_[kNewTargetIndex]));
+}
 
-template<typename T>
+template <typename T>
 Local<Value> FunctionCallbackInfo<T>::Data() const {
   return Local<Value>(reinterpret_cast<Value*>(&implicit_args_[kDataIndex]));
 }
@@ -7916,7 +7900,7 @@
 
 template<typename T>
 bool FunctionCallbackInfo<T>::IsConstructCall() const {
-  return is_construct_call_ & 0x1;
+  return !NewTarget()->IsUndefined();
 }
 
 
@@ -8010,7 +7994,9 @@
   O* obj = *reinterpret_cast<O**>(this);
   // Fast path: If the object is a plain JSObject, which is the common case, we
   // know where to find the internal fields and can return the value directly.
-  if (I::GetInstanceType(obj) == I::kJSObjectType) {
+  auto instance_type = I::GetInstanceType(obj);
+  if (instance_type == I::kJSObjectType ||
+      instance_type == I::kJSApiObjectType) {
     int offset = I::kJSObjectHeaderSize + (internal::kApiPointerSize * index);
     O* value = I::ReadField<O*>(obj, offset);
     O** result = HandleScope::CreateHandle(reinterpret_cast<HO*>(obj), value);
@@ -8028,7 +8014,9 @@
   O* obj = *reinterpret_cast<O**>(this);
   // Fast path: If the object is a plain JSObject, which is the common case, we
   // know where to find the internal fields and can return the value directly.
-  if (V8_LIKELY(I::GetInstanceType(obj) == I::kJSObjectType)) {
+  auto instance_type = I::GetInstanceType(obj);
+  if (V8_LIKELY(instance_type == I::kJSObjectType ||
+                instance_type == I::kJSApiObjectType)) {
     int offset = I::kJSObjectHeaderSize + (internal::kApiPointerSize * index);
     return I::ReadField<void*>(obj, offset);
   }
@@ -8708,21 +8696,6 @@
       reinterpret_cast<v8::Isolate::GCCallback>(callback));
 }
 
-
-void V8::AddMemoryAllocationCallback(MemoryAllocationCallback callback,
-                                     ObjectSpace space,
-                                     AllocationAction action) {
-  Isolate* isolate = Isolate::GetCurrent();
-  isolate->AddMemoryAllocationCallback(callback, space, action);
-}
-
-
-void V8::RemoveMemoryAllocationCallback(MemoryAllocationCallback callback) {
-  Isolate* isolate = Isolate::GetCurrent();
-  isolate->RemoveMemoryAllocationCallback(callback);
-}
-
-
 void V8::TerminateExecution(Isolate* isolate) { isolate->TerminateExecution(); }
 
 
diff --git a/infra/config/cq.cfg b/infra/config/cq.cfg
index 5f85111..5622b01 100644
--- a/infra/config/cq.cfg
+++ b/infra/config/cq.cfg
@@ -27,15 +27,31 @@
     buckets {
       name: "tryserver.v8"
       builders { name: "v8_android_arm_compile_rel" }
-      builders { name: "v8_linux64_asan_rel" }
-      builders { name: "v8_linux64_avx2_rel" }
+      builders { name: "v8_linux64_asan_rel_ng" }
+      builders {
+        name: "v8_linux64_asan_rel_ng_triggered"
+        triggered_by: "v8_linux64_asan_rel_ng"
+      }
+      builders { name: "v8_linux64_avx2_rel_ng" }
+      builders {
+        name: "v8_linux64_avx2_rel_ng_triggered"
+        triggered_by: "v8_linux64_avx2_rel_ng"
+      }
       builders { name: "v8_linux64_rel_ng" }
       builders {
         name: "v8_linux64_rel_ng_triggered"
         triggered_by: "v8_linux64_rel_ng"
       }
-      builders { name: "v8_linux_arm64_rel" }
-      builders { name: "v8_linux_arm_rel" }
+      builders { name: "v8_linux_arm64_rel_ng" }
+      builders {
+        name: "v8_linux_arm64_rel_ng_triggered"
+        triggered_by: "v8_linux_arm64_rel_ng"
+      }
+      builders { name: "v8_linux_arm_rel_ng" }
+      builders {
+        name: "v8_linux_arm_rel_ng_triggered"
+        triggered_by: "v8_linux_arm_rel_ng"
+      }
       builders { name: "v8_linux_chromium_gn_rel" }
       builders { name: "v8_linux_dbg_ng" }
       builders {
@@ -45,13 +61,21 @@
       builders { name: "v8_linux_gcc_compile_rel" }
       builders { name: "v8_linux_mipsel_compile_rel" }
       builders { name: "v8_linux_mips64el_compile_rel" }
-      builders { name: "v8_linux_nodcheck_rel" }
+      builders { name: "v8_linux_nodcheck_rel_ng" }
+      builders {
+        name: "v8_linux_nodcheck_rel_ng_triggered"
+        triggered_by: "v8_linux_nodcheck_rel_ng"
+      }
       builders { name: "v8_linux_rel_ng" }
       builders {
         name: "v8_linux_rel_ng_triggered"
         triggered_by: "v8_linux_rel_ng"
       }
-      builders { name: "v8_mac_rel" }
+      builders { name: "v8_mac_rel_ng" }
+      builders {
+        name: "v8_mac_rel_ng_triggered"
+        triggered_by: "v8_mac_rel_ng"
+      }
       builders { name: "v8_presubmit" }
       builders { name: "v8_win64_rel_ng" }
       builders {
@@ -59,7 +83,11 @@
         triggered_by: "v8_win64_rel_ng"
       }
       builders { name: "v8_win_compile_dbg" }
-      builders { name: "v8_win_nosnap_shared_compile_rel" }
+      builders { name: "v8_win_nosnap_shared_rel_ng" }
+      builders {
+        name: "v8_win_nosnap_shared_rel_ng_triggered"
+        triggered_by: "v8_win_nosnap_shared_rel_ng"
+      }
       builders { name: "v8_win_rel_ng" }
       builders {
         name: "v8_win_rel_ng_triggered"
@@ -67,7 +95,7 @@
       }
       builders {
         name: "v8_linux_blink_rel"
-        experiment_percentage: 20
+        experiment_percentage: 100
       }
       builders {
         name: "v8_linux64_sanitizer_coverage_rel"
diff --git a/samples/samples.gyp b/samples/samples.gyp
index 7e0608b..e5e9ef0 100644
--- a/samples/samples.gyp
+++ b/samples/samples.gyp
@@ -29,13 +29,14 @@
   'variables': {
     'v8_code': 1,
     'v8_enable_i18n_support%': 1,
+    'v8_toolset_for_shell%': 'target',
   },
-  'includes': ['../build/toolchain.gypi', '../build/features.gypi'],
+  'includes': ['../gypfiles/toolchain.gypi', '../gypfiles/features.gypi'],
   'target_defaults': {
     'type': 'executable',
     'dependencies': [
-      '../tools/gyp/v8.gyp:v8',
-      '../tools/gyp/v8.gyp:v8_libplatform',
+      '../src/v8.gyp:v8',
+      '../src/v8.gyp:v8_libplatform',
     ],
     'include_dirs': [
       '..',
@@ -56,10 +57,15 @@
   },
   'targets': [
     {
-      'target_name': 'shell',
+      'target_name': 'v8_shell',
       'sources': [
         'shell.cc',
       ],
+      'conditions': [
+        [ 'want_separate_host_toolset==1', {
+          'toolsets': [ '<(v8_toolset_for_shell)', ],
+        }],
+      ],
     },
     {
       'target_name': 'hello-world',
diff --git a/src/DEPS b/src/DEPS
index 1bb616e..00c7f1f 100644
--- a/src/DEPS
+++ b/src/DEPS
@@ -3,7 +3,7 @@
   "+src",
   "-src/compiler",
   "+src/compiler/pipeline.h",
-  "+src/compiler/code-stub-assembler.h",
+  "+src/compiler/code-assembler.h",
   "+src/compiler/wasm-compiler.h",
   "-src/heap",
   "+src/heap/heap.h",
diff --git a/src/accessors.cc b/src/accessors.cc
index 374c0a2..8b8753b 100644
--- a/src/accessors.cc
+++ b/src/accessors.cc
@@ -40,6 +40,11 @@
   Handle<Object> set = v8::FromCData(isolate, setter);
   info->set_getter(*get);
   info->set_setter(*set);
+  Address redirected = info->redirected_getter();
+  if (redirected != nullptr) {
+    Handle<Object> js_get = v8::FromCData(isolate, redirected);
+    info->set_js_getter(*js_get);
+  }
   return info;
 }
 
@@ -88,37 +93,6 @@
   Isolate* isolate = name->GetIsolate();
 
   switch (map->instance_type()) {
-    case JS_TYPED_ARRAY_TYPE: {
-      if (!CheckForName(name, isolate->factory()->length_string(),
-                        JSTypedArray::kLengthOffset, object_offset) &&
-          !CheckForName(name, isolate->factory()->byte_length_string(),
-                        JSTypedArray::kByteLengthOffset, object_offset) &&
-          !CheckForName(name, isolate->factory()->byte_offset_string(),
-                        JSTypedArray::kByteOffsetOffset, object_offset)) {
-        return false;
-      }
-
-      if (map->is_dictionary_map()) return false;
-
-      // Check if the property is overridden on the instance.
-      DescriptorArray* descriptors = map->instance_descriptors();
-      int descriptor = descriptors->SearchWithCache(isolate, *name, *map);
-      if (descriptor != DescriptorArray::kNotFound) return false;
-
-      Handle<Object> proto = Handle<Object>(map->prototype(), isolate);
-      if (!proto->IsJSReceiver()) return false;
-
-      // Check if the property is defined in the prototype chain.
-      LookupIterator it(proto, name);
-      if (!it.IsFound()) return false;
-
-      Object* original_proto =
-          JSFunction::cast(map->GetConstructor())->prototype();
-
-      // Property is not configurable. It is enough to verify that
-      // the holder is the same.
-      return *it.GetHolder<Object>() == original_proto;
-    }
     case JS_DATA_VIEW_TYPE:
       return CheckForName(name, isolate->factory()->byte_length_string(),
                           JSDataView::kByteLengthOffset, object_offset) ||
@@ -129,9 +103,11 @@
   }
 }
 
-MUST_USE_RESULT static MaybeHandle<Object> ReplaceAccessorWithDataProperty(
-    Isolate* isolate, Handle<JSObject> receiver, Handle<JSObject> holder,
-    Handle<Name> name, Handle<Object> value, bool observe) {
+namespace {
+
+MUST_USE_RESULT MaybeHandle<Object> ReplaceAccessorWithDataProperty(
+    Isolate* isolate, Handle<Object> receiver, Handle<JSObject> holder,
+    Handle<Name> name, Handle<Object> value) {
   LookupIterator it(receiver, name, holder,
                     LookupIterator::OWN_SKIP_INTERCEPTOR);
   // Skip any access checks we might hit. This accessor should never hit in a
@@ -140,37 +116,26 @@
     CHECK(it.HasAccess());
     it.Next();
   }
+  DCHECK(holder.is_identical_to(it.GetHolder<JSObject>()));
   CHECK_EQ(LookupIterator::ACCESSOR, it.state());
-
-  Handle<Object> old_value;
-  bool is_observed = observe && receiver->map()->is_observed();
-  if (is_observed) {
-    MaybeHandle<Object> maybe_old = Object::GetPropertyWithAccessor(&it);
-    if (!maybe_old.ToHandle(&old_value)) return maybe_old;
-  }
-
   it.ReconfigureDataProperty(value, it.property_attributes());
-
-  if (is_observed && !old_value->SameValue(*value)) {
-    return JSObject::EnqueueChangeRecord(receiver, "update", name, old_value);
-  }
-
   return value;
 }
 
+}  // namespace
+
 void Accessors::ReconfigureToDataProperty(
     v8::Local<v8::Name> key, v8::Local<v8::Value> val,
     const v8::PropertyCallbackInfo<void>& info) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   HandleScope scope(isolate);
-  Handle<JSObject> receiver =
-      Handle<JSObject>::cast(Utils::OpenHandle(*info.This()));
+  Handle<Object> receiver = Utils::OpenHandle(*info.This());
   Handle<JSObject> holder =
       Handle<JSObject>::cast(Utils::OpenHandle(*info.Holder()));
   Handle<Name> name = Utils::OpenHandle(*key);
   Handle<Object> value = Utils::OpenHandle(*val);
-  MaybeHandle<Object> result = ReplaceAccessorWithDataProperty(
-      isolate, receiver, holder, name, value, false);
+  MaybeHandle<Object> result =
+      ReplaceAccessorWithDataProperty(isolate, receiver, holder, name, value);
   if (result.is_null()) isolate->OptionalRescheduleException(false);
 }
 
@@ -221,7 +186,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   HandleScope scope(isolate);
 
-  Handle<JSReceiver> object = Utils::OpenHandle(*info.This());
+  Handle<JSReceiver> object = Utils::OpenHandle(*info.Holder());
   Handle<JSArray> array = Handle<JSArray>::cast(object);
   Handle<Object> length_obj = Utils::OpenHandle(*val);
 
@@ -231,9 +196,7 @@
     return;
   }
 
-  if (JSArray::ObservableSetLength(array, length).is_null()) {
-    isolate->OptionalRescheduleException(false);
-  }
+  JSArray::SetLength(array, length);
 
   if (info.ShouldThrowOnError()) {
     uint32_t actual_new_len = 0;
@@ -305,7 +268,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* res = Smi::FromInt(
       Script::cast(JSValue::cast(object)->value())->column_offset());
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(res, isolate)));
@@ -332,7 +295,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* id = Smi::FromInt(Script::cast(JSValue::cast(object)->value())->id());
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(id, isolate)));
 }
@@ -357,7 +320,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* source = Script::cast(JSValue::cast(object)->value())->name();
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(source, isolate)));
 }
@@ -381,7 +344,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* source = Script::cast(JSValue::cast(object)->value())->source();
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(source, isolate)));
 }
@@ -405,7 +368,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* res =
       Smi::FromInt(Script::cast(JSValue::cast(object)->value())->line_offset());
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(res, isolate)));
@@ -432,7 +395,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* res =
       Smi::FromInt(Script::cast(JSValue::cast(object)->value())->type());
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(res, isolate)));
@@ -458,7 +421,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* res = Smi::FromInt(
       Script::cast(JSValue::cast(object)->value())->compilation_type());
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(res, isolate)));
@@ -484,7 +447,7 @@
     const v8::PropertyCallbackInfo<v8::Value>& info) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   HandleScope scope(isolate);
-  Handle<Object> object = Utils::OpenHandle(*info.This());
+  Handle<Object> object = Utils::OpenHandle(*info.Holder());
   Handle<Script> script(
       Script::cast(Handle<JSValue>::cast(object)->value()), isolate);
   Script::InitLineEnds(script);
@@ -519,7 +482,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* url = Script::cast(JSValue::cast(object)->value())->source_url();
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(url, isolate)));
 }
@@ -543,7 +506,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* url =
       Script::cast(JSValue::cast(object)->value())->source_mapping_url();
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(url, isolate)));
@@ -567,7 +530,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   bool is_embedder_debug_script = Script::cast(JSValue::cast(object)->value())
                                       ->origin_options()
                                       .IsEmbedderDebugScript();
@@ -596,7 +559,7 @@
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   DisallowHeapAllocation no_allocation;
   HandleScope scope(isolate);
-  Object* object = *Utils::OpenHandle(*info.This());
+  Object* object = *Utils::OpenHandle(*info.Holder());
   Object* res = Script::cast(JSValue::cast(object)->value())->context_data();
   info.GetReturnValue().Set(Utils::ToLocal(Handle<Object>(res, isolate)));
 }
@@ -621,7 +584,7 @@
     const v8::PropertyCallbackInfo<v8::Value>& info) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   HandleScope scope(isolate);
-  Handle<Object> object = Utils::OpenHandle(*info.This());
+  Handle<Object> object = Utils::OpenHandle(*info.Holder());
   Handle<Script> script(
       Script::cast(Handle<JSValue>::cast(object)->value()), isolate);
   Handle<Object> result = isolate->factory()->undefined_value();
@@ -657,16 +620,12 @@
     const v8::PropertyCallbackInfo<v8::Value>& info) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   HandleScope scope(isolate);
-  Handle<Object> object = Utils::OpenHandle(*info.This());
+  Handle<Object> object = Utils::OpenHandle(*info.Holder());
   Handle<Script> script(
       Script::cast(Handle<JSValue>::cast(object)->value()), isolate);
   Handle<Object> result = isolate->factory()->undefined_value();
   if (script->compilation_type() == Script::COMPILATION_TYPE_EVAL) {
-    Handle<Code> code(SharedFunctionInfo::cast(
-        script->eval_from_shared())->code());
-    result = Handle<Object>(Smi::FromInt(code->SourcePosition(
-                                script->eval_from_instructions_offset())),
-                            isolate);
+    result = Handle<Object>(Smi::FromInt(script->GetEvalPosition()), isolate);
   }
   info.GetReturnValue().Set(Utils::ToLocal(result));
 }
@@ -691,17 +650,19 @@
     const v8::PropertyCallbackInfo<v8::Value>& info) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
   HandleScope scope(isolate);
-  Handle<Object> object = Utils::OpenHandle(*info.This());
+  Handle<Object> object = Utils::OpenHandle(*info.Holder());
   Handle<Script> script(
       Script::cast(Handle<JSValue>::cast(object)->value()), isolate);
-  Handle<Object> result;
-  Handle<SharedFunctionInfo> shared(
-      SharedFunctionInfo::cast(script->eval_from_shared()));
-  // Find the name of the function calling eval.
-  if (!shared->name()->IsUndefined()) {
-    result = Handle<Object>(shared->name(), isolate);
-  } else {
-    result = Handle<Object>(shared->inferred_name(), isolate);
+  Handle<Object> result = isolate->factory()->undefined_value();
+  if (!script->eval_from_shared()->IsUndefined()) {
+    Handle<SharedFunctionInfo> shared(
+        SharedFunctionInfo::cast(script->eval_from_shared()));
+    // Find the name of the function calling eval.
+    if (!shared->name()->IsUndefined()) {
+      result = Handle<Object>(shared->name(), isolate);
+    } else {
+      result = Handle<Object>(shared->inferred_name(), isolate);
+    }
   }
   info.GetReturnValue().Set(Utils::ToLocal(result));
 }
@@ -732,24 +693,8 @@
 
 MUST_USE_RESULT static MaybeHandle<Object> SetFunctionPrototype(
     Isolate* isolate, Handle<JSFunction> function, Handle<Object> value) {
-  Handle<Object> old_value;
-  bool is_observed = function->map()->is_observed();
-  if (is_observed) {
-    if (function->has_prototype())
-      old_value = handle(function->prototype(), isolate);
-    else
-      old_value = isolate->factory()->NewFunctionPrototype(function);
-  }
-
   JSFunction::SetPrototype(function, value);
   DCHECK(function->prototype() == *value);
-
-  if (is_observed && !old_value->SameValue(*value)) {
-    MaybeHandle<Object> result = JSObject::EnqueueChangeRecord(
-        function, "update", isolate->factory()->prototype_string(), old_value);
-    if (result.is_null()) return MaybeHandle<Object>();
-  }
-
   return function;
 }
 
@@ -811,45 +756,19 @@
   HandleScope scope(isolate);
   Handle<JSFunction> function =
       Handle<JSFunction>::cast(Utils::OpenHandle(*info.Holder()));
-
-  int length = 0;
-  if (function->shared()->is_compiled()) {
-    length = function->shared()->length();
-  } else {
-    // If the function isn't compiled yet, the length is not computed
-    // correctly yet. Compile it now and return the right length.
-    if (Compiler::Compile(function, Compiler::KEEP_EXCEPTION)) {
-      length = function->shared()->length();
-    }
-    if (isolate->has_pending_exception()) {
-      isolate->OptionalRescheduleException(false);
-    }
+  Handle<Object> result;
+  if (!JSFunction::GetLength(isolate, function).ToHandle(&result)) {
+    result = handle(Smi::FromInt(0), isolate);
+    isolate->OptionalRescheduleException(false);
   }
-  Handle<Object> result(Smi::FromInt(length), isolate);
+
   info.GetReturnValue().Set(Utils::ToLocal(result));
 }
 
-void Accessors::ObservedReconfigureToDataProperty(
-    v8::Local<v8::Name> key, v8::Local<v8::Value> val,
-    const v8::PropertyCallbackInfo<void>& info) {
-  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
-  HandleScope scope(isolate);
-  Handle<JSObject> receiver =
-      Handle<JSObject>::cast(Utils::OpenHandle(*info.This()));
-  Handle<JSObject> holder =
-      Handle<JSObject>::cast(Utils::OpenHandle(*info.Holder()));
-  Handle<Name> name = Utils::OpenHandle(*key);
-  Handle<Object> value = Utils::OpenHandle(*val);
-  MaybeHandle<Object> result = ReplaceAccessorWithDataProperty(
-      isolate, receiver, holder, name, value, true);
-  if (result.is_null()) isolate->OptionalRescheduleException(false);
-}
-
-
 Handle<AccessorInfo> Accessors::FunctionLengthInfo(
       Isolate* isolate, PropertyAttributes attributes) {
   return MakeAccessor(isolate, isolate->factory()->length_string(),
-                      &FunctionLengthGetter, &ObservedReconfigureToDataProperty,
+                      &FunctionLengthGetter, &ReconfigureToDataProperty,
                       attributes);
 }
 
@@ -866,19 +785,14 @@
   HandleScope scope(isolate);
   Handle<JSFunction> function =
       Handle<JSFunction>::cast(Utils::OpenHandle(*info.Holder()));
-  Handle<Object> result;
-  if (function->shared()->name_should_print_as_anonymous()) {
-    result = isolate->factory()->anonymous_string();
-  } else {
-    result = handle(function->shared()->name(), isolate);
-  }
+  Handle<Object> result = JSFunction::GetName(isolate, function);
   info.GetReturnValue().Set(Utils::ToLocal(result));
 }
 
 Handle<AccessorInfo> Accessors::FunctionNameInfo(
       Isolate* isolate, PropertyAttributes attributes) {
   return MakeAccessor(isolate, isolate->factory()->name_string(),
-                      &FunctionNameGetter, &ObservedReconfigureToDataProperty,
+                      &FunctionNameGetter, &ReconfigureToDataProperty,
                       attributes);
 }
 
@@ -1155,6 +1069,65 @@
 
 
 //
+// Accessors::BoundFunctionLength
+//
+
+void Accessors::BoundFunctionLengthGetter(
+    v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) {
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
+  HandleScope scope(isolate);
+  Handle<JSBoundFunction> function =
+      Handle<JSBoundFunction>::cast(Utils::OpenHandle(*info.Holder()));
+
+  Handle<Smi> target_length;
+  Handle<JSFunction> target(JSFunction::cast(function->bound_target_function()),
+                            isolate);
+  if (!JSFunction::GetLength(isolate, target).ToHandle(&target_length)) {
+    target_length = handle(Smi::FromInt(0), isolate);
+    isolate->OptionalRescheduleException(false);
+    return;
+  }
+
+  int bound_length = function->bound_arguments()->length();
+  int length = Max(0, target_length->value() - bound_length);
+
+  Handle<Object> result(Smi::FromInt(length), isolate);
+  info.GetReturnValue().Set(Utils::ToLocal(result));
+}
+
+Handle<AccessorInfo> Accessors::BoundFunctionLengthInfo(
+    Isolate* isolate, PropertyAttributes attributes) {
+  return MakeAccessor(isolate, isolate->factory()->length_string(),
+                      &BoundFunctionLengthGetter, &ReconfigureToDataProperty,
+                      attributes);
+}
+
+//
+// Accessors::BoundFunctionName
+//
+
+void Accessors::BoundFunctionNameGetter(
+    v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) {
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(info.GetIsolate());
+  HandleScope scope(isolate);
+  Handle<JSBoundFunction> function =
+      Handle<JSBoundFunction>::cast(Utils::OpenHandle(*info.Holder()));
+  Handle<Object> result;
+  if (!JSBoundFunction::GetName(isolate, function).ToHandle(&result)) {
+    isolate->OptionalRescheduleException(false);
+    return;
+  }
+  info.GetReturnValue().Set(Utils::ToLocal(result));
+}
+
+Handle<AccessorInfo> Accessors::BoundFunctionNameInfo(
+    Isolate* isolate, PropertyAttributes attributes) {
+  return MakeAccessor(isolate, isolate->factory()->name_string(),
+                      &BoundFunctionNameGetter, &ReconfigureToDataProperty,
+                      attributes);
+}
+
+//
 // Accessors::MakeModuleExport
 //
 
diff --git a/src/accessors.h b/src/accessors.h
index 3fe550c..6a99934 100644
--- a/src/accessors.h
+++ b/src/accessors.h
@@ -22,6 +22,8 @@
 #define ACCESSOR_INFO_LIST(V)     \
   V(ArgumentsIterator)            \
   V(ArrayLength)                  \
+  V(BoundFunctionLength)          \
+  V(BoundFunctionName)            \
   V(FunctionArguments)            \
   V(FunctionCaller)               \
   V(FunctionName)                 \
@@ -46,7 +48,6 @@
 
 #define ACCESSOR_SETTER_LIST(V)        \
   V(ReconfigureToDataProperty)         \
-  V(ObservedReconfigureToDataProperty) \
   V(ArrayLengthSetter)                 \
   V(FunctionPrototypeSetter)
 
diff --git a/src/address-map.h b/src/address-map.h
index df32f89..017fc5d 100644
--- a/src/address-map.h
+++ b/src/address-map.h
@@ -40,7 +40,6 @@
   }
 };
 
-
 class RootIndexMap : public AddressMapBase {
  public:
   explicit RootIndexMap(Isolate* isolate);
@@ -59,123 +58,155 @@
   DISALLOW_COPY_AND_ASSIGN(RootIndexMap);
 };
 
-
-class BackReference {
+class SerializerReference {
  public:
-  explicit BackReference(uint32_t bitfield) : bitfield_(bitfield) {}
+  SerializerReference() : bitfield_(Special(kInvalidValue)) {}
 
-  BackReference() : bitfield_(kInvalidValue) {}
-
-  static BackReference SourceReference() { return BackReference(kSourceValue); }
-
-  static BackReference GlobalProxyReference() {
-    return BackReference(kGlobalProxyValue);
+  static SerializerReference FromBitfield(uint32_t bitfield) {
+    return SerializerReference(bitfield);
   }
 
-  static BackReference LargeObjectReference(uint32_t index) {
-    return BackReference(SpaceBits::encode(LO_SPACE) |
-                         ChunkOffsetBits::encode(index));
-  }
-
-  static BackReference DummyReference() { return BackReference(kDummyValue); }
-
-  static BackReference Reference(AllocationSpace space, uint32_t chunk_index,
-                                 uint32_t chunk_offset) {
+  static SerializerReference BackReference(AllocationSpace space,
+                                           uint32_t chunk_index,
+                                           uint32_t chunk_offset) {
     DCHECK(IsAligned(chunk_offset, kObjectAlignment));
     DCHECK_NE(LO_SPACE, space);
-    return BackReference(
+    return SerializerReference(
         SpaceBits::encode(space) | ChunkIndexBits::encode(chunk_index) |
         ChunkOffsetBits::encode(chunk_offset >> kObjectAlignmentBits));
   }
 
-  bool is_valid() const { return bitfield_ != kInvalidValue; }
-  bool is_source() const { return bitfield_ == kSourceValue; }
-  bool is_global_proxy() const { return bitfield_ == kGlobalProxyValue; }
+  static SerializerReference LargeObjectReference(uint32_t index) {
+    return SerializerReference(SpaceBits::encode(LO_SPACE) |
+                               ValueIndexBits::encode(index));
+  }
+
+  static SerializerReference AttachedReference(uint32_t index) {
+    return SerializerReference(SpaceBits::encode(kAttachedReferenceSpace) |
+                               ValueIndexBits::encode(index));
+  }
+
+  static SerializerReference DummyReference() {
+    return SerializerReference(Special(kDummyValue));
+  }
+
+  bool is_valid() const { return bitfield_ != Special(kInvalidValue); }
+
+  bool is_back_reference() const {
+    return SpaceBits::decode(bitfield_) <= LAST_SPACE;
+  }
 
   AllocationSpace space() const {
-    DCHECK(is_valid());
-    return SpaceBits::decode(bitfield_);
+    DCHECK(is_back_reference());
+    return static_cast<AllocationSpace>(SpaceBits::decode(bitfield_));
   }
 
   uint32_t chunk_offset() const {
-    DCHECK(is_valid());
+    DCHECK(is_back_reference());
     return ChunkOffsetBits::decode(bitfield_) << kObjectAlignmentBits;
   }
 
   uint32_t large_object_index() const {
-    DCHECK(is_valid());
+    DCHECK(is_back_reference());
     DCHECK(chunk_index() == 0);
     return ChunkOffsetBits::decode(bitfield_);
   }
 
   uint32_t chunk_index() const {
-    DCHECK(is_valid());
+    DCHECK(is_back_reference());
     return ChunkIndexBits::decode(bitfield_);
   }
 
-  uint32_t reference() const {
-    DCHECK(is_valid());
+  uint32_t back_reference() const {
+    DCHECK(is_back_reference());
     return bitfield_ & (ChunkOffsetBits::kMask | ChunkIndexBits::kMask);
   }
 
-  uint32_t bitfield() const { return bitfield_; }
+  bool is_attached_reference() const {
+    return SpaceBits::decode(bitfield_) == kAttachedReferenceSpace;
+  }
+
+  int attached_reference_index() const {
+    DCHECK(is_attached_reference());
+    return ValueIndexBits::decode(bitfield_);
+  }
 
  private:
-  static const uint32_t kInvalidValue = 0xFFFFFFFF;
-  static const uint32_t kSourceValue = 0xFFFFFFFE;
-  static const uint32_t kGlobalProxyValue = 0xFFFFFFFD;
-  static const uint32_t kDummyValue = 0xFFFFFFFC;
+  explicit SerializerReference(uint32_t bitfield) : bitfield_(bitfield) {}
+
+  inline static uint32_t Special(int value) {
+    return SpaceBits::encode(kSpecialValueSpace) |
+           ValueIndexBits::encode(value);
+  }
+
+  // We use the 32-bit bitfield to encode either a back reference, a special
+  // value, or an attached reference index.
+  // Back reference:
+  //   [ Space index             ] [ Chunk index ] [ Chunk offset ]
+  //   [ LO_SPACE                ] [ large object index           ]
+  // Special value
+  //   [ kSpecialValueSpace      ] [ Special value index          ]
+  // Attached reference
+  //   [ kAttachedReferenceSpace ] [ Attached reference index     ]
+
   static const int kChunkOffsetSize = kPageSizeBits - kObjectAlignmentBits;
   static const int kChunkIndexSize = 32 - kChunkOffsetSize - kSpaceTagSize;
+  static const int kValueIndexSize = kChunkOffsetSize + kChunkIndexSize;
 
- public:
-  static const int kMaxChunkIndex = (1 << kChunkIndexSize) - 1;
+  static const int kSpecialValueSpace = LAST_SPACE + 1;
+  static const int kAttachedReferenceSpace = kSpecialValueSpace + 1;
+  STATIC_ASSERT(kAttachedReferenceSpace < (1 << kSpaceTagSize));
 
- private:
+  static const int kInvalidValue = 0;
+  static const int kDummyValue = 1;
+
+  // The chunk offset can also be used to encode the index of special values.
   class ChunkOffsetBits : public BitField<uint32_t, 0, kChunkOffsetSize> {};
   class ChunkIndexBits
       : public BitField<uint32_t, ChunkOffsetBits::kNext, kChunkIndexSize> {};
-  class SpaceBits
-      : public BitField<AllocationSpace, ChunkIndexBits::kNext, kSpaceTagSize> {
-  };
+  class ValueIndexBits : public BitField<uint32_t, 0, kValueIndexSize> {};
+  STATIC_ASSERT(ChunkIndexBits::kNext == ValueIndexBits::kNext);
+  class SpaceBits : public BitField<int, kValueIndexSize, kSpaceTagSize> {};
+  STATIC_ASSERT(SpaceBits::kNext == 32);
 
   uint32_t bitfield_;
-};
 
+  friend class SerializerReferenceMap;
+};
 
 // Mapping objects to their location after deserialization.
 // This is used during building, but not at runtime by V8.
-class BackReferenceMap : public AddressMapBase {
+class SerializerReferenceMap : public AddressMapBase {
  public:
-  BackReferenceMap()
-      : no_allocation_(), map_(new HashMap(HashMap::PointersMatch)) {}
+  SerializerReferenceMap()
+      : no_allocation_(),
+        map_(HashMap::PointersMatch),
+        attached_reference_index_(0) {}
 
-  ~BackReferenceMap() { delete map_; }
-
-  BackReference Lookup(HeapObject* obj) {
-    HashMap::Entry* entry = LookupEntry(map_, obj, false);
-    return entry ? BackReference(GetValue(entry)) : BackReference();
+  SerializerReference Lookup(HeapObject* obj) {
+    HashMap::Entry* entry = LookupEntry(&map_, obj, false);
+    return entry ? SerializerReference(GetValue(entry)) : SerializerReference();
   }
 
-  void Add(HeapObject* obj, BackReference b) {
+  void Add(HeapObject* obj, SerializerReference b) {
     DCHECK(b.is_valid());
-    DCHECK_NULL(LookupEntry(map_, obj, false));
-    HashMap::Entry* entry = LookupEntry(map_, obj, true);
-    SetValue(entry, b.bitfield());
+    DCHECK_NULL(LookupEntry(&map_, obj, false));
+    HashMap::Entry* entry = LookupEntry(&map_, obj, true);
+    SetValue(entry, b.bitfield_);
   }
 
-  void AddSourceString(String* string) {
-    Add(string, BackReference::SourceReference());
-  }
-
-  void AddGlobalProxy(HeapObject* global_proxy) {
-    Add(global_proxy, BackReference::GlobalProxyReference());
+  SerializerReference AddAttachedReference(HeapObject* attached_reference) {
+    SerializerReference reference =
+        SerializerReference::AttachedReference(attached_reference_index_++);
+    Add(attached_reference, reference);
+    return reference;
   }
 
  private:
   DisallowHeapAllocation no_allocation_;
-  HashMap* map_;
-  DISALLOW_COPY_AND_ASSIGN(BackReferenceMap);
+  HashMap map_;
+  int attached_reference_index_;
+  DISALLOW_COPY_AND_ASSIGN(SerializerReferenceMap);
 };
 
 }  // namespace internal
diff --git a/src/api-arguments.cc b/src/api-arguments.cc
index c4b698c..71a0f60 100644
--- a/src/api-arguments.cc
+++ b/src/api-arguments.cc
@@ -9,10 +9,10 @@
 
 Handle<Object> FunctionCallbackArguments::Call(FunctionCallback f) {
   Isolate* isolate = this->isolate();
+  RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::FunctionCallback);
   VMState<EXTERNAL> state(isolate);
   ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
-  FunctionCallbackInfo<v8::Value> info(begin(), argv_, argc_,
-                                       is_construct_call_);
+  FunctionCallbackInfo<v8::Value> info(begin(), argv_, argc_);
   f(info);
   return GetReturnValue<Object>(isolate);
 }
@@ -20,6 +20,7 @@
 Handle<JSObject> PropertyCallbackArguments::Call(
     IndexedPropertyEnumeratorCallback f) {
   Isolate* isolate = this->isolate();
+  RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::PropertyCallback);
   VMState<EXTERNAL> state(isolate);
   ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
   PropertyCallbackInfo<v8::Array> info(begin());
diff --git a/src/api-arguments.h b/src/api-arguments.h
index 3bfe34d..57a2d98 100644
--- a/src/api-arguments.h
+++ b/src/api-arguments.h
@@ -116,6 +116,7 @@
 #define WRITE_CALL_1_NAME(Function, type, ApiReturn, InternalReturn)         \
   Handle<InternalReturn> Call(Function f, Handle<Name> name) {               \
     Isolate* isolate = this->isolate();                                      \
+    RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Function);       \
     VMState<EXTERNAL> state(isolate);                                        \
     ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));             \
     PropertyCallbackInfo<ApiReturn> info(begin());                           \
@@ -138,6 +139,7 @@
 #define WRITE_CALL_1_INDEX(Function, type, ApiReturn, InternalReturn)  \
   Handle<InternalReturn> Call(Function f, uint32_t index) {            \
     Isolate* isolate = this->isolate();                                \
+    RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Function); \
     VMState<EXTERNAL> state(isolate);                                  \
     ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));       \
     PropertyCallbackInfo<ApiReturn> info(begin());                     \
@@ -155,6 +157,8 @@
   Handle<Object> Call(GenericNamedPropertySetterCallback f, Handle<Name> name,
                       Handle<Object> value) {
     Isolate* isolate = this->isolate();
+    RuntimeCallTimerScope timer(
+        isolate, &RuntimeCallStats::GenericNamedPropertySetterCallback);
     VMState<EXTERNAL> state(isolate);
     ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
     PropertyCallbackInfo<v8::Value> info(begin());
@@ -167,6 +171,8 @@
   Handle<Object> Call(IndexedPropertySetterCallback f, uint32_t index,
                       Handle<Object> value) {
     Isolate* isolate = this->isolate();
+    RuntimeCallTimerScope timer(
+        isolate, &RuntimeCallStats::IndexedPropertySetterCallback);
     VMState<EXTERNAL> state(isolate);
     ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
     PropertyCallbackInfo<v8::Value> info(begin());
@@ -179,6 +185,8 @@
   void Call(AccessorNameSetterCallback f, Handle<Name> name,
             Handle<Object> value) {
     Isolate* isolate = this->isolate();
+    RuntimeCallTimerScope timer(isolate,
+                                &RuntimeCallStats::AccessorNameSetterCallback);
     VMState<EXTERNAL> state(isolate);
     ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
     PropertyCallbackInfo<void> info(begin());
@@ -206,19 +214,19 @@
   static const int kIsolateIndex = T::kIsolateIndex;
   static const int kCalleeIndex = T::kCalleeIndex;
   static const int kContextSaveIndex = T::kContextSaveIndex;
+  static const int kNewTargetIndex = T::kNewTargetIndex;
 
   FunctionCallbackArguments(internal::Isolate* isolate, internal::Object* data,
                             internal::HeapObject* callee,
-                            internal::Object* holder, internal::Object** argv,
-                            int argc, bool is_construct_call)
-      : Super(isolate),
-        argv_(argv),
-        argc_(argc),
-        is_construct_call_(is_construct_call) {
+                            internal::Object* holder,
+                            internal::HeapObject* new_target,
+                            internal::Object** argv, int argc)
+      : Super(isolate), argv_(argv), argc_(argc) {
     Object** values = begin();
     values[T::kDataIndex] = data;
     values[T::kCalleeIndex] = callee;
     values[T::kHolderIndex] = holder;
+    values[T::kNewTargetIndex] = new_target;
     values[T::kContextSaveIndex] = isolate->heap()->the_hole_value();
     values[T::kIsolateIndex] = reinterpret_cast<internal::Object*>(isolate);
     // Here the hole is set as default value.
@@ -245,7 +253,6 @@
  private:
   internal::Object** argv_;
   int argc_;
-  bool is_construct_call_;
 };
 
 }  // namespace internal
diff --git a/src/api-natives.cc b/src/api-natives.cc
index adf4b6a..fcd19cc 100644
--- a/src/api-natives.cc
+++ b/src/api-natives.cc
@@ -17,6 +17,7 @@
 
 MaybeHandle<JSObject> InstantiateObject(Isolate* isolate,
                                         Handle<ObjectTemplateInfo> data,
+                                        Handle<JSReceiver> new_target,
                                         bool is_hidden_prototype);
 
 MaybeHandle<JSFunction> InstantiateFunction(Isolate* isolate,
@@ -31,7 +32,7 @@
                                Handle<FunctionTemplateInfo>::cast(data), name);
   } else if (data->IsObjectTemplateInfo()) {
     return InstantiateObject(isolate, Handle<ObjectTemplateInfo>::cast(data),
-                             false);
+                             Handle<JSReceiver>(), false);
   } else {
     return data;
   }
@@ -288,11 +289,25 @@
 
 MaybeHandle<JSObject> InstantiateObject(Isolate* isolate,
                                         Handle<ObjectTemplateInfo> info,
+                                        Handle<JSReceiver> new_target,
                                         bool is_hidden_prototype) {
-  // Fast path.
-  Handle<JSObject> result;
+  Handle<JSFunction> constructor;
   uint32_t serial_number =
       static_cast<uint32_t>(Smi::cast(info->serial_number())->value());
+  if (!new_target.is_null()) {
+    if (new_target->IsJSFunction() &&
+        JSFunction::cast(*new_target)->shared()->function_data() ==
+            info->constructor() &&
+        JSFunction::cast(*new_target)->context()->native_context() ==
+            isolate->context()->native_context()) {
+      constructor = Handle<JSFunction>::cast(new_target);
+    } else {
+      // Disable caching for subclass instantiation.
+      serial_number = 0;
+    }
+  }
+  // Fast path.
+  Handle<JSObject> result;
   if (serial_number) {
     // Probe cache.
     auto cache = isolate->template_instantiations_cache();
@@ -305,20 +320,27 @@
   }
   // Enter a new scope.  Recursion could otherwise create a lot of handles.
   HandleScope scope(isolate);
-  auto constructor = handle(info->constructor(), isolate);
-  Handle<JSFunction> cons;
-  if (constructor->IsUndefined()) {
-    cons = isolate->object_function();
-  } else {
-    auto cons_templ = Handle<FunctionTemplateInfo>::cast(constructor);
-    ASSIGN_RETURN_ON_EXCEPTION(
-        isolate, cons, InstantiateFunction(isolate, cons_templ), JSFunction);
+
+  if (constructor.is_null()) {
+    Handle<Object> cons(info->constructor(), isolate);
+    if (cons->IsUndefined()) {
+      constructor = isolate->object_function();
+    } else {
+      auto cons_templ = Handle<FunctionTemplateInfo>::cast(cons);
+      ASSIGN_RETURN_ON_EXCEPTION(isolate, constructor,
+                                 InstantiateFunction(isolate, cons_templ),
+                                 JSObject);
+    }
+
+    if (new_target.is_null()) new_target = constructor;
   }
-  auto object = isolate->factory()->NewJSObject(cons);
+
+  Handle<JSObject> object;
+  ASSIGN_RETURN_ON_EXCEPTION(isolate, object,
+                             JSObject::New(constructor, new_target), JSObject);
   ASSIGN_RETURN_ON_EXCEPTION(
       isolate, result,
-      ConfigureInstance(isolate, object, info, is_hidden_prototype),
-      JSFunction);
+      ConfigureInstance(isolate, object, info, is_hidden_prototype), JSObject);
   // TODO(dcarney): is this necessary?
   JSObject::MigrateSlowToFast(result, 0, "ApiNatives::InstantiateObject");
 
@@ -356,7 +378,7 @@
           isolate, prototype,
           InstantiateObject(isolate,
                             Handle<ObjectTemplateInfo>::cast(prototype_templ),
-                            data->hidden_prototype()),
+                            Handle<JSReceiver>(), data->hidden_prototype()),
           JSFunction);
     }
     auto parent = handle(data->parent_template(), isolate);
@@ -448,12 +470,11 @@
   return ::v8::internal::InstantiateFunction(isolate, data);
 }
 
-
 MaybeHandle<JSObject> ApiNatives::InstantiateObject(
-    Handle<ObjectTemplateInfo> data) {
+    Handle<ObjectTemplateInfo> data, Handle<JSReceiver> new_target) {
   Isolate* isolate = data->GetIsolate();
   InvokeScope invoke_scope(isolate);
-  return ::v8::internal::InstantiateObject(isolate, data, false);
+  return ::v8::internal::InstantiateObject(isolate, data, new_target, false);
 }
 
 
@@ -545,7 +566,7 @@
         if (!obj->needs_access_check() &&
             obj->named_property_handler()->IsUndefined() &&
             obj->indexed_property_handler()->IsUndefined()) {
-          type = JS_OBJECT_TYPE;
+          type = JS_API_OBJECT_TYPE;
         } else {
           type = JS_SPECIAL_API_OBJECT_TYPE;
         }
diff --git a/src/api-natives.h b/src/api-natives.h
index 91f0b16..66901fe 100644
--- a/src/api-natives.h
+++ b/src/api-natives.h
@@ -23,7 +23,8 @@
       Handle<FunctionTemplateInfo> data);
 
   MUST_USE_RESULT static MaybeHandle<JSObject> InstantiateObject(
-      Handle<ObjectTemplateInfo> data);
+      Handle<ObjectTemplateInfo> data,
+      Handle<JSReceiver> new_target = Handle<JSReceiver>());
 
   enum ApiInstanceType {
     JavaScriptObjectType,
diff --git a/src/api.cc b/src/api.cc
index 853bd50..f757d1d 100644
--- a/src/api.cc
+++ b/src/api.cc
@@ -48,13 +48,13 @@
 #include "src/profiler/heap-profiler.h"
 #include "src/profiler/heap-snapshot-generator-inl.h"
 #include "src/profiler/profile-generator-inl.h"
-#include "src/profiler/sampler.h"
-#include "src/property.h"
+#include "src/profiler/tick-sample.h"
 #include "src/property-descriptor.h"
 #include "src/property-details.h"
+#include "src/property.h"
 #include "src/prototype.h"
-#include "src/runtime/runtime.h"
 #include "src/runtime-profiler.h"
+#include "src/runtime/runtime.h"
 #include "src/simulator.h"
 #include "src/snapshot/natives.h"
 #include "src/snapshot/snapshot.h"
@@ -66,57 +66,56 @@
 #include "src/version.h"
 #include "src/vm-state-inl.h"
 
-
 namespace v8 {
 
-#define LOG_API(isolate, expr) LOG(isolate, ApiEntryCall(expr))
-
+#define LOG_API(isolate, class_name, function_name)                       \
+  i::RuntimeCallTimerScope _runtime_timer(                                \
+      isolate, &i::RuntimeCallStats::API_##class_name##_##function_name); \
+  LOG(isolate, ApiEntryCall("v8::" #class_name "::" #function_name))
 
 #define ENTER_V8(isolate) i::VMState<v8::OTHER> __state__((isolate))
 
-
-#define PREPARE_FOR_EXECUTION_GENERIC(isolate, context, function_name, \
-                                      bailout_value, HandleScopeClass, \
-                                      do_callback)                     \
-  if (IsExecutionTerminatingCheck(isolate)) {                          \
-    return bailout_value;                                              \
-  }                                                                    \
-  HandleScopeClass handle_scope(isolate);                              \
-  CallDepthScope call_depth_scope(isolate, context, do_callback);      \
-  LOG_API(isolate, function_name);                                     \
-  ENTER_V8(isolate);                                                   \
+#define PREPARE_FOR_EXECUTION_GENERIC(isolate, context, class_name,  \
+                                      function_name, bailout_value,  \
+                                      HandleScopeClass, do_callback) \
+  if (IsExecutionTerminatingCheck(isolate)) {                        \
+    return bailout_value;                                            \
+  }                                                                  \
+  HandleScopeClass handle_scope(isolate);                            \
+  CallDepthScope call_depth_scope(isolate, context, do_callback);    \
+  LOG_API(isolate, class_name, function_name);                       \
+  ENTER_V8(isolate);                                                 \
   bool has_pending_exception = false
 
-
-#define PREPARE_FOR_EXECUTION_WITH_CONTEXT(                                  \
-    context, function_name, bailout_value, HandleScopeClass, do_callback)    \
-  auto isolate = context.IsEmpty()                                           \
-                     ? i::Isolate::Current()                                 \
-                     : reinterpret_cast<i::Isolate*>(context->GetIsolate()); \
-  PREPARE_FOR_EXECUTION_GENERIC(isolate, context, function_name,             \
+#define PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, class_name, function_name, \
+                                           bailout_value, HandleScopeClass,    \
+                                           do_callback)                        \
+  auto isolate = context.IsEmpty()                                             \
+                     ? i::Isolate::Current()                                   \
+                     : reinterpret_cast<i::Isolate*>(context->GetIsolate());   \
+  PREPARE_FOR_EXECUTION_GENERIC(isolate, context, class_name, function_name,   \
                                 bailout_value, HandleScopeClass, do_callback);
 
+#define PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, class_name, function_name, \
+                                           T)                                  \
+  PREPARE_FOR_EXECUTION_GENERIC(isolate, Local<Context>(), class_name,         \
+                                function_name, MaybeLocal<T>(),                \
+                                InternalEscapableScope, false);
 
-#define PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, function_name, T)     \
-  PREPARE_FOR_EXECUTION_GENERIC(isolate, Local<Context>(), function_name, \
-                                MaybeLocal<T>(), InternalEscapableScope,  \
-                                false);
+#define PREPARE_FOR_EXECUTION(context, class_name, function_name, T)          \
+  PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, class_name, function_name,      \
+                                     MaybeLocal<T>(), InternalEscapableScope, \
+                                     false)
 
+#define PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, class_name,              \
+                                            function_name, T)                 \
+  PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, class_name, function_name,      \
+                                     MaybeLocal<T>(), InternalEscapableScope, \
+                                     true)
 
-#define PREPARE_FOR_EXECUTION(context, function_name, T)                      \
-  PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, function_name, MaybeLocal<T>(), \
-                                     InternalEscapableScope, false)
-
-
-#define PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, function_name, T)        \
-  PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, function_name, MaybeLocal<T>(), \
-                                     InternalEscapableScope, true)
-
-
-#define PREPARE_FOR_EXECUTION_PRIMITIVE(context, function_name, T)         \
-  PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, function_name, Nothing<T>(), \
-                                     i::HandleScope, false)
-
+#define PREPARE_FOR_EXECUTION_PRIMITIVE(context, class_name, function_name, T) \
+  PREPARE_FOR_EXECUTION_WITH_CONTEXT(context, class_name, function_name,       \
+                                     Nothing<T>(), i::HandleScope, false)
 
 #define EXCEPTION_BAILOUT_CHECK_SCOPED(isolate, value) \
   do {                                                 \
@@ -241,7 +240,7 @@
 
 // When V8 cannot allocated memory FatalProcessOutOfMemory is called.
 // The default fatal error handler is called and execution is stopped.
-void i::V8::FatalProcessOutOfMemory(const char* location, bool take_snapshot) {
+void i::V8::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) {
   i::Isolate* isolate = i::Isolate::Current();
   char last_few_messages[Heap::kTraceRingBufferSize + 1];
   char js_stacktrace[Heap::kStacktraceBufferSize + 1];
@@ -303,7 +302,9 @@
     PrintF("\n<--- Last few GCs --->\n%s\n", first_newline);
     PrintF("\n<--- JS stacktrace --->\n%s\n", js_stacktrace);
   }
-  Utils::ApiCheck(false, location, "Allocation failed - process out of memory");
+  Utils::ApiCheck(false, location, is_heap_oom
+                  ? "Allocation failed - JavaScript heap out of memory"
+                  : "Allocation failed - process out of memory");
   // If the fatal error handler returns, we stop execution.
   FATAL("API fatal error handler returned after process out of memory");
 }
@@ -656,7 +657,7 @@
 
 
 i::Object** V8::GlobalizeReference(i::Isolate* isolate, i::Object** obj) {
-  LOG_API(isolate, "Persistent::New");
+  LOG_API(isolate, Persistent, New);
   i::Handle<i::Object> result = isolate->global_handles()->Create(*obj);
 #ifdef VERIFY_HEAP
   if (i::FLAG_verify_heap) {
@@ -682,13 +683,7 @@
   isolate->heap()->RegisterExternallyReferencedObject(object);
 }
 
-void V8::MakeWeak(i::Object** object, void* parameter,
-                  WeakCallback weak_callback) {
-  i::GlobalHandles::MakeWeak(object, parameter, weak_callback);
-}
-
-
-void V8::MakeWeak(i::Object** object, void* parameter,
+void V8::MakeWeak(i::Object** location, void* parameter,
                   int internal_field_index1, int internal_field_index2,
                   WeakCallbackInfo<void>::Callback weak_callback) {
   WeakCallbackType type = WeakCallbackType::kParameter;
@@ -703,24 +698,25 @@
     DCHECK_EQ(internal_field_index1, -1);
     DCHECK_EQ(internal_field_index2, -1);
   }
-  i::GlobalHandles::MakeWeak(object, parameter, weak_callback, type);
+  i::GlobalHandles::MakeWeak(location, parameter, weak_callback, type);
 }
 
-
-void V8::MakeWeak(i::Object** object, void* parameter,
+void V8::MakeWeak(i::Object** location, void* parameter,
                   WeakCallbackInfo<void>::Callback weak_callback,
                   WeakCallbackType type) {
-  i::GlobalHandles::MakeWeak(object, parameter, weak_callback, type);
+  i::GlobalHandles::MakeWeak(location, parameter, weak_callback, type);
 }
 
-
-void* V8::ClearWeak(i::Object** obj) {
-  return i::GlobalHandles::ClearWeakness(obj);
+void V8::MakeWeak(i::Object*** location_addr) {
+  i::GlobalHandles::MakeWeak(location_addr);
 }
 
+void* V8::ClearWeak(i::Object** location) {
+  return i::GlobalHandles::ClearWeakness(location);
+}
 
-void V8::DisposeGlobal(i::Object** obj) {
-  i::GlobalHandles::Destroy(obj);
+void V8::DisposeGlobal(i::Object** location) {
+  i::GlobalHandles::Destroy(location);
 }
 
 
@@ -1028,13 +1024,13 @@
   ENTER_V8(isolate);
   i::HandleScope scope(isolate);
   auto value_obj = Utils::OpenHandle(*value);
+  CHECK(!value_obj->IsJSReceiver() || value_obj->IsTemplateInfo());
   if (value_obj->IsObjectTemplateInfo()) {
     templ->set_serial_number(i::Smi::FromInt(0));
     if (templ->IsFunctionTemplateInfo()) {
       i::Handle<i::FunctionTemplateInfo>::cast(templ)->set_do_not_cache(true);
     }
   }
-  // TODO(dcarney): split api to allow values of v8::Value or v8::TemplateInfo.
   i::ApiNatives::AddDataProperty(isolate, templ, Utils::OpenHandle(*name),
                                  value_obj,
                                  static_cast<i::PropertyAttributes>(attribute));
@@ -1136,19 +1132,19 @@
 }
 
 
-Local<FunctionTemplate> FunctionTemplate::New(Isolate* isolate,
-                                              FunctionCallback callback,
-                                              v8::Local<Value> data,
-                                              v8::Local<Signature> signature,
-                                              int length) {
+Local<FunctionTemplate> FunctionTemplate::New(
+    Isolate* isolate, FunctionCallback callback, v8::Local<Value> data,
+    v8::Local<Signature> signature, int length, ConstructorBehavior behavior) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
   // Changes to the environment cannot be captured in the snapshot. Expect no
   // function templates when the isolate is created for serialization.
   DCHECK(!i_isolate->serializer_enabled());
-  LOG_API(i_isolate, "FunctionTemplate::New");
+  LOG_API(i_isolate, FunctionTemplate, New);
   ENTER_V8(i_isolate);
-  return FunctionTemplateNew(i_isolate, callback, nullptr, data, signature,
-                             length, false);
+  auto templ = FunctionTemplateNew(i_isolate, callback, nullptr, data,
+                                   signature, length, false);
+  if (behavior == ConstructorBehavior::kThrow) templ->RemovePrototype();
+  return templ;
 }
 
 
@@ -1158,7 +1154,7 @@
     v8::Local<Signature> signature, int length) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
   DCHECK(!i_isolate->serializer_enabled());
-  LOG_API(i_isolate, "FunctionTemplate::NewWithFastHandler");
+  LOG_API(i_isolate, FunctionTemplate, NewWithFastHandler);
   ENTER_V8(i_isolate);
   return FunctionTemplateNew(i_isolate, callback, fast_handler, data, signature,
                              length, false);
@@ -1223,8 +1219,10 @@
   return obj;
 }
 
+namespace {
+
 template <typename Getter, typename Setter>
-static i::Handle<i::AccessorInfo> MakeAccessorInfo(
+i::Handle<i::AccessorInfo> MakeAccessorInfo(
     v8::Local<Name> name, Getter getter, Setter setter, v8::Local<Value> data,
     v8::AccessControl settings, v8::PropertyAttribute attributes,
     v8::Local<AccessorSignature> signature, bool is_special_data_property) {
@@ -1235,6 +1233,8 @@
     setter = reinterpret_cast<Setter>(&i::Accessors::ReconfigureToDataProperty);
   }
   SET_FIELD_WRAPPED(obj, set_setter, setter);
+  i::Address redirected = obj->redirected_getter();
+  if (redirected != nullptr) SET_FIELD_WRAPPED(obj, set_js_getter, redirected);
   if (data.IsEmpty()) {
     data = v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));
   }
@@ -1243,6 +1243,7 @@
   return SetAccessorInfoProperties(obj, name, settings, attributes, signature);
 }
 
+}  // namespace
 
 Local<ObjectTemplate> FunctionTemplate::InstanceTemplate() {
   i::Handle<i::FunctionTemplateInfo> handle = Utils::OpenHandle(this, true);
@@ -1337,7 +1338,7 @@
   // Changes to the environment cannot be captured in the snapshot. Expect no
   // object templates when the isolate is created for serialization.
   DCHECK(!isolate->serializer_enabled());
-  LOG_API(isolate, "ObjectTemplate::New");
+  LOG_API(isolate, ObjectTemplate, New);
   ENTER_V8(isolate);
   i::Handle<i::Struct> struct_obj =
       isolate->factory()->NewStruct(i::OBJECT_TEMPLATE_INFO_TYPE);
@@ -1715,7 +1716,7 @@
   i::Handle<i::HeapObject> obj =
       i::Handle<i::HeapObject>::cast(Utils::OpenHandle(this));
   i::Isolate* isolate = obj->GetIsolate();
-  LOG_API(isolate, "v8::UnboundScript::GetId");
+  LOG_API(isolate, UnboundScript, GetId);
   i::HandleScope scope(isolate);
   i::Handle<i::SharedFunctionInfo> function_info(
       i::SharedFunctionInfo::cast(*obj));
@@ -1728,7 +1729,7 @@
   i::Handle<i::SharedFunctionInfo> obj =
       i::Handle<i::SharedFunctionInfo>::cast(Utils::OpenHandle(this));
   i::Isolate* isolate = obj->GetIsolate();
-  LOG_API(isolate, "UnboundScript::GetLineNumber");
+  LOG_API(isolate, UnboundScript, GetLineNumber);
   if (obj->script()->IsScript()) {
     i::Handle<i::Script> script(i::Script::cast(obj->script()));
     return i::Script::GetLineNumber(script, code_pos);
@@ -1742,7 +1743,7 @@
   i::Handle<i::SharedFunctionInfo> obj =
       i::Handle<i::SharedFunctionInfo>::cast(Utils::OpenHandle(this));
   i::Isolate* isolate = obj->GetIsolate();
-  LOG_API(isolate, "UnboundScript::GetName");
+  LOG_API(isolate, UnboundScript, GetName);
   if (obj->script()->IsScript()) {
     i::Object* name = i::Script::cast(obj->script())->name();
     return Utils::ToLocal(i::Handle<i::Object>(name, isolate));
@@ -1756,7 +1757,7 @@
   i::Handle<i::SharedFunctionInfo> obj =
       i::Handle<i::SharedFunctionInfo>::cast(Utils::OpenHandle(this));
   i::Isolate* isolate = obj->GetIsolate();
-  LOG_API(isolate, "UnboundScript::GetSourceURL");
+  LOG_API(isolate, UnboundScript, GetSourceURL);
   if (obj->script()->IsScript()) {
     i::Object* url = i::Script::cast(obj->script())->source_url();
     return Utils::ToLocal(i::Handle<i::Object>(url, isolate));
@@ -1770,7 +1771,7 @@
   i::Handle<i::SharedFunctionInfo> obj =
       i::Handle<i::SharedFunctionInfo>::cast(Utils::OpenHandle(this));
   i::Isolate* isolate = obj->GetIsolate();
-  LOG_API(isolate, "UnboundScript::GetSourceMappingURL");
+  LOG_API(isolate, UnboundScript, GetSourceMappingURL);
   if (obj->script()->IsScript()) {
     i::Object* url = i::Script::cast(obj->script())->source_mapping_url();
     return Utils::ToLocal(i::Handle<i::Object>(url, isolate));
@@ -1781,12 +1782,13 @@
 
 
 MaybeLocal<Value> Script::Run(Local<Context> context) {
-  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, "v8::Script::Run()", Value)
+  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, Script, Run, Value)
+  i::HistogramTimerScope execute_timer(isolate->counters()->execute(), true);
   i::AggregatingHistogramTimerScope timer(isolate->counters()->compile_lazy());
   i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate);
   TRACE_EVENT0("v8", "V8.Execute");
   auto fun = i::Handle<i::JSFunction>::cast(Utils::OpenHandle(this));
-  i::Handle<i::Object> receiver(isolate->global_proxy(), isolate);
+  i::Handle<i::Object> receiver = isolate->global_proxy();
   Local<Value> result;
   has_pending_exception =
       !ToLocal<Value>(i::Execution::Call(isolate, fun, receiver, 0, NULL),
@@ -1817,8 +1819,8 @@
     Isolate* v8_isolate, Source* source, CompileOptions options,
     bool is_module) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
-  PREPARE_FOR_EXECUTION_WITH_ISOLATE(
-      isolate, "v8::ScriptCompiler::CompileUnbound()", UnboundScript);
+  PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, ScriptCompiler, CompileUnbound,
+                                     UnboundScript);
 
   // Don't try to produce any kind of cache when the debugger is loaded.
   if (isolate->debug()->is_loaded() &&
@@ -1977,8 +1979,8 @@
     Local<Context> v8_context, Source* source, size_t arguments_count,
     Local<String> arguments[], size_t context_extension_count,
     Local<Object> context_extensions[]) {
-  PREPARE_FOR_EXECUTION(
-      v8_context, "v8::ScriptCompiler::CompileFunctionInContext()", Function);
+  PREPARE_FOR_EXECUTION(v8_context, ScriptCompiler, CompileFunctionInContext,
+                        Function);
   i::Handle<i::String> source_string;
   auto factory = isolate->factory();
   if (arguments_count) {
@@ -2032,6 +2034,8 @@
   }
 
   i::Handle<i::Object> name_obj;
+  int eval_scope_position = 0;
+  int eval_position = i::RelocInfo::kNoPosition;
   int line_offset = 0;
   int column_offset = 0;
   if (!source->resource_name.IsEmpty()) {
@@ -2044,11 +2048,13 @@
     column_offset = static_cast<int>(source->resource_column_offset->Value());
   }
   i::Handle<i::JSFunction> fun;
-  has_pending_exception = !i::Compiler::GetFunctionFromEval(
-                               source_string, outer_info, context, i::SLOPPY,
-                               i::ONLY_SINGLE_FUNCTION_LITERAL, line_offset,
-                               column_offset - scope_position, name_obj,
-                               source->resource_options).ToHandle(&fun);
+  has_pending_exception =
+      !i::Compiler::GetFunctionFromEval(
+           source_string, outer_info, context, i::SLOPPY,
+           i::ONLY_SINGLE_FUNCTION_LITERAL, eval_scope_position, eval_position,
+           line_offset, column_offset - scope_position, name_obj,
+           source->resource_options)
+           .ToHandle(&fun);
   if (has_pending_exception) {
     isolate->ReportPendingMessages();
   }
@@ -2088,7 +2094,7 @@
                                            StreamedSource* v8_source,
                                            Local<String> full_source_string,
                                            const ScriptOrigin& origin) {
-  PREPARE_FOR_EXECUTION(context, "v8::ScriptCompiler::Compile()", Script);
+  PREPARE_FOR_EXECUTION(context, ScriptCompiler, Compile, Script);
   i::StreamedSource* source = v8_source->impl();
   i::Handle<i::String> str = Utils::OpenHandle(*(full_source_string));
   i::Handle<i::Script> script = isolate->factory()->NewScript(str);
@@ -2287,7 +2293,7 @@
   if (!HasCaught()) return v8::Local<Value>();
   i::Object* raw_obj = reinterpret_cast<i::Object*>(exception_);
   if (!raw_obj->IsJSObject()) return v8::Local<Value>();
-  PREPARE_FOR_EXECUTION(context, "v8::TryCatch::StackTrace", Value);
+  PREPARE_FOR_EXECUTION(context, TryCatch, StackTrace, Value);
   i::Handle<i::JSObject> obj(i::JSObject::cast(raw_obj), isolate_);
   i::Handle<i::String> name = isolate->factory()->stack_string();
   Maybe<bool> maybe = i::JSReceiver::HasProperty(obj, name);
@@ -2389,7 +2395,7 @@
 
 
 Maybe<int> Message::GetLineNumber(Local<Context> context) const {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Message::GetLineNumber()", int);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Message, GetLineNumber, int);
   i::Handle<i::JSFunction> fun = isolate->message_get_line_number();
   i::Handle<i::Object> undefined = isolate->factory()->undefined_value();
   i::Handle<i::Object> args[] = {Utils::OpenHandle(this)};
@@ -2421,8 +2427,7 @@
 
 
 Maybe<int> Message::GetStartColumn(Local<Context> context) const {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Message::GetStartColumn()",
-                                  int);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Message, GetStartColumn, int);
   i::Handle<i::JSFunction> fun = isolate->message_get_column_number();
   i::Handle<i::Object> undefined = isolate->factory()->undefined_value();
   i::Handle<i::Object> args[] = {Utils::OpenHandle(this)};
@@ -2444,7 +2449,7 @@
 
 Maybe<int> Message::GetEndColumn(Local<Context> context) const {
   auto self = Utils::OpenHandle(this);
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Message::GetEndColumn()", int);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Message, GetEndColumn, int);
   i::Handle<i::JSFunction> fun = isolate->message_get_column_number();
   i::Handle<i::Object> undefined = isolate->factory()->undefined_value();
   i::Handle<i::Object> args[] = {self};
@@ -2488,7 +2493,7 @@
 
 
 MaybeLocal<String> Message::GetSourceLine(Local<Context> context) const {
-  PREPARE_FOR_EXECUTION(context, "v8::Message::GetSourceLine()", String);
+  PREPARE_FOR_EXECUTION(context, Message, GetSourceLine, String);
   i::Handle<i::JSFunction> fun = isolate->message_get_source_line();
   i::Handle<i::Object> undefined = isolate->factory()->undefined_value();
   i::Handle<i::Object> args[] = {Utils::OpenHandle(this)};
@@ -2733,7 +2738,7 @@
 
 MaybeLocal<Value> JSON::Parse(Isolate* v8_isolate, Local<String> json_string) {
   auto isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
-  PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, "JSON::Parse", Value);
+  PREPARE_FOR_EXECUTION_WITH_ISOLATE(isolate, JSON, Parse, Value);
   i::Handle<i::String> string = Utils::OpenHandle(*json_string);
   i::Handle<i::String> source = i::String::Flatten(string);
   auto maybe = source->IsSeqOneByteString()
@@ -2745,13 +2750,38 @@
   RETURN_ESCAPED(result);
 }
 
-
-Local<Value> JSON::Parse(Local<String> json_string) {
-  auto isolate = reinterpret_cast<v8::Isolate*>(
-      Utils::OpenHandle(*json_string)->GetIsolate());
-  RETURN_TO_LOCAL_UNCHECKED(Parse(isolate, json_string), Value);
+MaybeLocal<Value> JSON::Parse(Local<Context> context,
+                              Local<String> json_string) {
+  PREPARE_FOR_EXECUTION(context, JSON, Parse, Value);
+  i::Handle<i::String> string = Utils::OpenHandle(*json_string);
+  i::Handle<i::String> source = i::String::Flatten(string);
+  auto maybe = source->IsSeqOneByteString()
+                   ? i::JsonParser<true>::Parse(source)
+                   : i::JsonParser<false>::Parse(source);
+  Local<Value> result;
+  has_pending_exception = !ToLocal<Value>(maybe, &result);
+  RETURN_ON_FAILED_EXECUTION(Value);
+  RETURN_ESCAPED(result);
 }
 
+Local<Value> JSON::Parse(Local<String> json_string) {
+  RETURN_TO_LOCAL_UNCHECKED(Parse(Local<Context>(), json_string), Value);
+}
+
+MaybeLocal<String> JSON::Stringify(Local<Context> context,
+                                   Local<Object> json_object) {
+  PREPARE_FOR_EXECUTION(context, JSON, Stringify, String);
+  i::Handle<i::Object> object = Utils::OpenHandle(*json_object);
+  i::Handle<i::Object> maybe;
+  has_pending_exception =
+      !i::Runtime::BasicJsonStringify(isolate, object).ToHandle(&maybe);
+  RETURN_ON_FAILED_EXECUTION(String);
+  Local<String> result;
+  has_pending_exception =
+      !ToLocal<String>(i::Object::ToString(isolate, maybe), &result);
+  RETURN_ON_FAILED_EXECUTION(String);
+  RETURN_ESCAPED(result);
+}
 
 // --- D a t a ---
 
@@ -2969,7 +2999,7 @@
 MaybeLocal<String> Value::ToString(Local<Context> context) const {
   auto obj = Utils::OpenHandle(this);
   if (obj->IsString()) return ToApiHandle<String>(obj);
-  PREPARE_FOR_EXECUTION(context, "ToString", String);
+  PREPARE_FOR_EXECUTION(context, Object, ToString, String);
   Local<String> result;
   has_pending_exception =
       !ToLocal<String>(i::Object::ToString(isolate, obj), &result);
@@ -2986,7 +3016,7 @@
 MaybeLocal<String> Value::ToDetailString(Local<Context> context) const {
   i::Handle<i::Object> obj = Utils::OpenHandle(this);
   if (obj->IsString()) return ToApiHandle<String>(obj);
-  PREPARE_FOR_EXECUTION(context, "ToDetailString", String);
+  PREPARE_FOR_EXECUTION(context, Object, ToDetailString, String);
   Local<String> result;
   i::Handle<i::Object> args[] = {obj};
   has_pending_exception = !ToLocal<String>(
@@ -3008,7 +3038,7 @@
 MaybeLocal<Object> Value::ToObject(Local<Context> context) const {
   auto obj = Utils::OpenHandle(this);
   if (obj->IsJSReceiver()) return ToApiHandle<Object>(obj);
-  PREPARE_FOR_EXECUTION(context, "ToObject", Object);
+  PREPARE_FOR_EXECUTION(context, Object, ToObject, Object);
   Local<Object> result;
   has_pending_exception =
       !ToLocal<Object>(i::Object::ToObject(isolate, obj), &result);
@@ -3039,7 +3069,7 @@
 MaybeLocal<Number> Value::ToNumber(Local<Context> context) const {
   auto obj = Utils::OpenHandle(this);
   if (obj->IsNumber()) return ToApiHandle<Number>(obj);
-  PREPARE_FOR_EXECUTION(context, "ToNumber", Number);
+  PREPARE_FOR_EXECUTION(context, Object, ToNumber, Number);
   Local<Number> result;
   has_pending_exception = !ToLocal<Number>(i::Object::ToNumber(obj), &result);
   RETURN_ON_FAILED_EXECUTION(Number);
@@ -3055,7 +3085,7 @@
 MaybeLocal<Integer> Value::ToInteger(Local<Context> context) const {
   auto obj = Utils::OpenHandle(this);
   if (obj->IsSmi()) return ToApiHandle<Integer>(obj);
-  PREPARE_FOR_EXECUTION(context, "ToInteger", Integer);
+  PREPARE_FOR_EXECUTION(context, Object, ToInteger, Integer);
   Local<Integer> result;
   has_pending_exception =
       !ToLocal<Integer>(i::Object::ToInteger(isolate, obj), &result);
@@ -3073,7 +3103,7 @@
   auto obj = Utils::OpenHandle(this);
   if (obj->IsSmi()) return ToApiHandle<Int32>(obj);
   Local<Int32> result;
-  PREPARE_FOR_EXECUTION(context, "ToInt32", Int32);
+  PREPARE_FOR_EXECUTION(context, Object, ToInt32, Int32);
   has_pending_exception =
       !ToLocal<Int32>(i::Object::ToInt32(isolate, obj), &result);
   RETURN_ON_FAILED_EXECUTION(Int32);
@@ -3090,7 +3120,7 @@
   auto obj = Utils::OpenHandle(this);
   if (obj->IsSmi()) return ToApiHandle<Uint32>(obj);
   Local<Uint32> result;
-  PREPARE_FOR_EXECUTION(context, "ToUint32", Uint32);
+  PREPARE_FOR_EXECUTION(context, Object, ToUint32, Uint32);
   has_pending_exception =
       !ToLocal<Uint32>(i::Object::ToUint32(isolate, obj), &result);
   RETURN_ON_FAILED_EXECUTION(Uint32);
@@ -3105,62 +3135,55 @@
 
 void i::Internals::CheckInitializedImpl(v8::Isolate* external_isolate) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(external_isolate);
-  Utils::ApiCheck(isolate != NULL &&
-                  !isolate->IsDead(),
-                  "v8::internal::Internals::CheckInitialized()",
+  Utils::ApiCheck(isolate != NULL && !isolate->IsDead(),
+                  "v8::internal::Internals::CheckInitialized",
                   "Isolate is not initialized or V8 has died");
 }
 
 
 void External::CheckCast(v8::Value* that) {
-  Utils::ApiCheck(Utils::OpenHandle(that)->IsExternal(),
-                  "v8::External::Cast()",
+  Utils::ApiCheck(Utils::OpenHandle(that)->IsExternal(), "v8::External::Cast",
                   "Could not convert to external");
 }
 
 
 void v8::Object::CheckCast(Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsJSReceiver(), "v8::Object::Cast()",
+  Utils::ApiCheck(obj->IsJSReceiver(), "v8::Object::Cast",
                   "Could not convert to object");
 }
 
 
 void v8::Function::CheckCast(Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsCallable(), "v8::Function::Cast()",
+  Utils::ApiCheck(obj->IsCallable(), "v8::Function::Cast",
                   "Could not convert to function");
 }
 
 
 void v8::Boolean::CheckCast(v8::Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsBoolean(),
-                  "v8::Boolean::Cast()",
+  Utils::ApiCheck(obj->IsBoolean(), "v8::Boolean::Cast",
                   "Could not convert to boolean");
 }
 
 
 void v8::Name::CheckCast(v8::Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsName(),
-                  "v8::Name::Cast()",
-                  "Could not convert to name");
+  Utils::ApiCheck(obj->IsName(), "v8::Name::Cast", "Could not convert to name");
 }
 
 
 void v8::String::CheckCast(v8::Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsString(),
-                  "v8::String::Cast()",
+  Utils::ApiCheck(obj->IsString(), "v8::String::Cast",
                   "Could not convert to string");
 }
 
 
 void v8::Symbol::CheckCast(v8::Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsSymbol(),
-                  "v8::Symbol::Cast()",
+  Utils::ApiCheck(obj->IsSymbol(), "v8::Symbol::Cast",
                   "Could not convert to symbol");
 }
 
@@ -3175,62 +3198,56 @@
 
 void v8::Integer::CheckCast(v8::Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsNumber(),
-                  "v8::Integer::Cast()",
+  Utils::ApiCheck(obj->IsNumber(), "v8::Integer::Cast",
                   "Could not convert to number");
 }
 
 
 void v8::Int32::CheckCast(v8::Value* that) {
-  Utils::ApiCheck(that->IsInt32(), "v8::Int32::Cast()",
+  Utils::ApiCheck(that->IsInt32(), "v8::Int32::Cast",
                   "Could not convert to 32-bit signed integer");
 }
 
 
 void v8::Uint32::CheckCast(v8::Value* that) {
-  Utils::ApiCheck(that->IsUint32(), "v8::Uint32::Cast()",
+  Utils::ApiCheck(that->IsUint32(), "v8::Uint32::Cast",
                   "Could not convert to 32-bit unsigned integer");
 }
 
 
 void v8::Array::CheckCast(Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsJSArray(),
-                  "v8::Array::Cast()",
+  Utils::ApiCheck(obj->IsJSArray(), "v8::Array::Cast",
                   "Could not convert to array");
 }
 
 
 void v8::Map::CheckCast(Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsJSMap(), "v8::Map::Cast()",
-                  "Could not convert to Map");
+  Utils::ApiCheck(obj->IsJSMap(), "v8::Map::Cast", "Could not convert to Map");
 }
 
 
 void v8::Set::CheckCast(Value* that) {
   i::Handle<i::Object> obj = Utils::OpenHandle(that);
-  Utils::ApiCheck(obj->IsJSSet(), "v8::Set::Cast()",
-                  "Could not convert to Set");
+  Utils::ApiCheck(obj->IsJSSet(), "v8_Set_Cast", "Could not convert to Set");
 }
 
 
 void v8::Promise::CheckCast(Value* that) {
-  Utils::ApiCheck(that->IsPromise(),
-                  "v8::Promise::Cast()",
+  Utils::ApiCheck(that->IsPromise(), "v8::Promise::Cast",
                   "Could not convert to promise");
 }
 
 
 void v8::Promise::Resolver::CheckCast(Value* that) {
-  Utils::ApiCheck(that->IsPromise(),
-                  "v8::Promise::Resolver::Cast()",
+  Utils::ApiCheck(that->IsPromise(), "v8::Promise::Resolver::Cast",
                   "Could not convert to promise resolver");
 }
 
 
 void v8::Proxy::CheckCast(Value* that) {
-  Utils::ApiCheck(that->IsProxy(), "v8::Proxy::Cast()",
+  Utils::ApiCheck(that->IsProxy(), "v8::Proxy::Cast",
                   "Could not convert to proxy");
 }
 
@@ -3367,7 +3384,7 @@
 Maybe<double> Value::NumberValue(Local<Context> context) const {
   auto obj = Utils::OpenHandle(this);
   if (obj->IsNumber()) return Just(obj->Number());
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "NumberValue", double);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, NumberValue, double);
   i::Handle<i::Object> num;
   has_pending_exception = !i::Object::ToNumber(obj).ToHandle(&num);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(double);
@@ -3388,7 +3405,7 @@
   if (obj->IsNumber()) {
     return Just(NumberToInt64(*obj));
   }
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "IntegerValue", int64_t);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, IntegerValue, int64_t);
   i::Handle<i::Object> num;
   has_pending_exception = !i::Object::ToInteger(isolate, obj).ToHandle(&num);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(int64_t);
@@ -3412,7 +3429,7 @@
 Maybe<int32_t> Value::Int32Value(Local<Context> context) const {
   auto obj = Utils::OpenHandle(this);
   if (obj->IsNumber()) return Just(NumberToInt32(*obj));
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Int32Value", int32_t);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, Int32Value, int32_t);
   i::Handle<i::Object> num;
   has_pending_exception = !i::Object::ToInt32(isolate, obj).ToHandle(&num);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(int32_t);
@@ -3431,7 +3448,7 @@
 Maybe<uint32_t> Value::Uint32Value(Local<Context> context) const {
   auto obj = Utils::OpenHandle(this);
   if (obj->IsNumber()) return Just(NumberToUint32(*obj));
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Uint32Value", uint32_t);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, Uint32Value, uint32_t);
   i::Handle<i::Object> num;
   has_pending_exception = !i::Object::ToUint32(isolate, obj).ToHandle(&num);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(uint32_t);
@@ -3453,7 +3470,7 @@
     if (i::Smi::cast(*self)->value() >= 0) return Utils::Uint32ToLocal(self);
     return Local<Uint32>();
   }
-  PREPARE_FOR_EXECUTION(context, "ToArrayIndex", Uint32);
+  PREPARE_FOR_EXECUTION(context, Object, ToArrayIndex, Uint32);
   i::Handle<i::Object> string_obj;
   has_pending_exception =
       !i::Object::ToString(isolate, self).ToHandle(&string_obj);
@@ -3519,10 +3536,16 @@
   return self->SameValue(*other);
 }
 
+Local<String> Value::TypeOf(v8::Isolate* external_isolate) {
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(external_isolate);
+  ENTER_V8(isolate);
+  LOG_API(isolate, Value, TypeOf);
+  return Utils::ToLocal(i::Object::TypeOf(isolate, Utils::OpenHandle(this)));
+}
 
 Maybe<bool> v8::Object::Set(v8::Local<v8::Context> context,
                             v8::Local<Value> key, v8::Local<Value> value) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Set()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, Set, bool);
   auto self = Utils::OpenHandle(this);
   auto key_obj = Utils::OpenHandle(*key);
   auto value_obj = Utils::OpenHandle(*value);
@@ -3542,7 +3565,7 @@
 
 Maybe<bool> v8::Object::Set(v8::Local<v8::Context> context, uint32_t index,
                             v8::Local<Value> value) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Set()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, Set, bool);
   auto self = Utils::OpenHandle(this);
   auto value_obj = Utils::OpenHandle(*value);
   has_pending_exception = i::Object::SetElement(isolate, self, index, value_obj,
@@ -3561,8 +3584,7 @@
 Maybe<bool> v8::Object::CreateDataProperty(v8::Local<v8::Context> context,
                                            v8::Local<Name> key,
                                            v8::Local<Value> value) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::CreateDataProperty()",
-                                  bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, CreateDataProperty, bool);
   i::Handle<i::JSReceiver> self = Utils::OpenHandle(this);
   i::Handle<i::Name> key_obj = Utils::OpenHandle(*key);
   i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
@@ -3580,8 +3602,7 @@
 Maybe<bool> v8::Object::CreateDataProperty(v8::Local<v8::Context> context,
                                            uint32_t index,
                                            v8::Local<Value> value) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::CreateDataProperty()",
-                                  bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, CreateDataProperty, bool);
   i::Handle<i::JSReceiver> self = Utils::OpenHandle(this);
   i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
 
@@ -3598,8 +3619,7 @@
                                           v8::Local<Name> key,
                                           v8::Local<Value> value,
                                           v8::PropertyAttribute attributes) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::DefineOwnProperty()",
-                                  bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, DefineOwnProperty, bool);
   i::Handle<i::JSReceiver> self = Utils::OpenHandle(this);
   i::Handle<i::Name> key_obj = Utils::OpenHandle(*key);
   i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
@@ -3642,7 +3662,7 @@
 Maybe<bool> v8::Object::ForceSet(v8::Local<v8::Context> context,
                                  v8::Local<Value> key, v8::Local<Value> value,
                                  v8::PropertyAttribute attribs) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::ForceSet()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, ForceSet, bool);
   auto self = i::Handle<i::JSObject>::cast(Utils::OpenHandle(this));
   auto key_obj = Utils::OpenHandle(*key);
   auto value_obj = Utils::OpenHandle(*value);
@@ -3658,9 +3678,8 @@
 bool v8::Object::ForceSet(v8::Local<Value> key, v8::Local<Value> value,
                           v8::PropertyAttribute attribs) {
   i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
-  PREPARE_FOR_EXECUTION_GENERIC(isolate, Local<Context>(),
-                                "v8::Object::ForceSet", false, i::HandleScope,
-                                false);
+  PREPARE_FOR_EXECUTION_GENERIC(isolate, Local<Context>(), Object, ForceSet,
+                                false, i::HandleScope, false);
   i::Handle<i::JSObject> self =
       i::Handle<i::JSObject>::cast(Utils::OpenHandle(this));
   i::Handle<i::Object> key_obj = Utils::OpenHandle(*key);
@@ -3676,7 +3695,7 @@
 
 Maybe<bool> v8::Object::SetPrivate(Local<Context> context, Local<Private> key,
                                    Local<Value> value) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetPrivate()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, SetPrivate, bool);
   auto self = Utils::OpenHandle(this);
   auto key_obj = Utils::OpenHandle(reinterpret_cast<Name*>(*key));
   auto value_obj = Utils::OpenHandle(*value);
@@ -3702,7 +3721,7 @@
 
 MaybeLocal<Value> v8::Object::Get(Local<v8::Context> context,
                                   Local<Value> key) {
-  PREPARE_FOR_EXECUTION(context, "v8::Object::Get()", Value);
+  PREPARE_FOR_EXECUTION(context, Object, Get, Value);
   auto self = Utils::OpenHandle(this);
   auto key_obj = Utils::OpenHandle(*key);
   i::Handle<i::Object> result;
@@ -3720,7 +3739,7 @@
 
 
 MaybeLocal<Value> v8::Object::Get(Local<Context> context, uint32_t index) {
-  PREPARE_FOR_EXECUTION(context, "v8::Object::Get()", Value);
+  PREPARE_FOR_EXECUTION(context, Object, Get, Value);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> result;
   has_pending_exception =
@@ -3744,8 +3763,8 @@
 
 Maybe<PropertyAttribute> v8::Object::GetPropertyAttributes(
     Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(
-      context, "v8::Object::GetPropertyAttributes()", PropertyAttribute);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, GetPropertyAttributes,
+                                  PropertyAttribute);
   auto self = Utils::OpenHandle(this);
   auto key_obj = Utils::OpenHandle(*key);
   if (!key_obj->IsName()) {
@@ -3773,8 +3792,7 @@
 
 MaybeLocal<Value> v8::Object::GetOwnPropertyDescriptor(Local<Context> context,
                                                        Local<String> key) {
-  PREPARE_FOR_EXECUTION(context, "v8::Object::GetOwnPropertyDescriptor()",
-                        Value);
+  PREPARE_FOR_EXECUTION(context, Object, GetOwnPropertyDescriptor, Value);
   i::Handle<i::JSReceiver> obj = Utils::OpenHandle(this);
   i::Handle<i::String> key_name = Utils::OpenHandle(*key);
 
@@ -3806,7 +3824,7 @@
 
 Maybe<bool> v8::Object::SetPrototype(Local<Context> context,
                                      Local<Value> value) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetPrototype()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, SetPrototype, bool);
   auto self = Utils::OpenHandle(this);
   auto value_obj = Utils::OpenHandle(*value);
   // We do not allow exceptions thrown while setting the prototype
@@ -3844,7 +3862,7 @@
 
 
 MaybeLocal<Array> v8::Object::GetPropertyNames(Local<Context> context) {
-  PREPARE_FOR_EXECUTION(context, "v8::Object::GetPropertyNames()", Array);
+  PREPARE_FOR_EXECUTION(context, Object, GetPropertyNames, Array);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::FixedArray> value;
   has_pending_exception =
@@ -3864,13 +3882,24 @@
   RETURN_TO_LOCAL_UNCHECKED(GetPropertyNames(context), Array);
 }
 
-
 MaybeLocal<Array> v8::Object::GetOwnPropertyNames(Local<Context> context) {
-  PREPARE_FOR_EXECUTION(context, "v8::Object::GetOwnPropertyNames()", Array);
+  return GetOwnPropertyNames(
+      context, static_cast<v8::PropertyFilter>(ONLY_ENUMERABLE | SKIP_SYMBOLS));
+}
+
+Local<Array> v8::Object::GetOwnPropertyNames() {
+  auto context = ContextFromHeapObject(Utils::OpenHandle(this));
+  RETURN_TO_LOCAL_UNCHECKED(GetOwnPropertyNames(context), Array);
+}
+
+MaybeLocal<Array> v8::Object::GetOwnPropertyNames(Local<Context> context,
+                                                  PropertyFilter filter) {
+  PREPARE_FOR_EXECUTION(context, Object, GetOwnPropertyNames, Array);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::FixedArray> value;
   has_pending_exception =
-      !i::JSReceiver::GetKeys(self, i::OWN_ONLY, i::ENUMERABLE_STRINGS)
+      !i::JSReceiver::GetKeys(self, i::OWN_ONLY,
+                              static_cast<i::PropertyFilter>(filter))
            .ToHandle(&value);
   RETURN_ON_FAILED_EXECUTION(Array);
   DCHECK(self->map()->EnumLength() == i::kInvalidEnumCacheSentinel ||
@@ -3880,15 +3909,8 @@
   RETURN_ESCAPED(Utils::ToLocal(result));
 }
 
-
-Local<Array> v8::Object::GetOwnPropertyNames() {
-  auto context = ContextFromHeapObject(Utils::OpenHandle(this));
-  RETURN_TO_LOCAL_UNCHECKED(GetOwnPropertyNames(context), Array);
-}
-
-
 MaybeLocal<String> v8::Object::ObjectProtoToString(Local<Context> context) {
-  PREPARE_FOR_EXECUTION(context, "v8::Object::ObjectProtoToString", String);
+  PREPARE_FOR_EXECUTION(context, Object, ObjectProtoToString, String);
   auto obj = Utils::OpenHandle(this);
   Local<String> result;
   has_pending_exception =
@@ -3912,8 +3934,7 @@
 
 Maybe<bool> v8::Object::SetIntegrityLevel(Local<Context> context,
                                           IntegrityLevel level) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetIntegrityLevel()",
-                                  bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, SetIntegrityLevel, bool);
   auto self = Utils::OpenHandle(this);
   i::JSReceiver::IntegrityLevel i_level =
       level == IntegrityLevel::kFrozen ? i::FROZEN : i::SEALED;
@@ -3925,7 +3946,7 @@
 }
 
 Maybe<bool> v8::Object::Delete(Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Delete()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, Delete, bool);
   auto self = Utils::OpenHandle(this);
   auto key_obj = Utils::OpenHandle(*key);
   Maybe<bool> result =
@@ -3949,7 +3970,7 @@
 
 
 Maybe<bool> v8::Object::Has(Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Get()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, Get, bool);
   auto self = Utils::OpenHandle(this);
   auto key_obj = Utils::OpenHandle(*key);
   Maybe<bool> maybe = Nothing<bool>();
@@ -3982,8 +4003,7 @@
 
 
 Maybe<bool> v8::Object::Delete(Local<Context> context, uint32_t index) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::DeleteProperty()",
-                                  bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, DeleteProperty, bool);
   auto self = Utils::OpenHandle(this);
   Maybe<bool> result = i::JSReceiver::DeleteElement(self, index);
   has_pending_exception = result.IsNothing();
@@ -3999,7 +4019,7 @@
 
 
 Maybe<bool> v8::Object::Has(Local<Context> context, uint32_t index) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::Get()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, Get, bool);
   auto self = Utils::OpenHandle(this);
   auto maybe = i::JSReceiver::HasElement(self, index);
   has_pending_exception = maybe.IsNothing();
@@ -4020,7 +4040,7 @@
                                      Setter setter, Data data,
                                      AccessControl settings,
                                      PropertyAttribute attributes) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::SetAccessor()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, SetAccessor, bool);
   if (!Utils::OpenHandle(self)->IsJSObject()) return Just(false);
   i::Handle<i::JSObject> obj =
       i::Handle<i::JSObject>::cast(Utils::OpenHandle(self));
@@ -4092,8 +4112,7 @@
 
 Maybe<bool> v8::Object::HasOwnProperty(Local<Context> context,
                                        Local<Name> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::HasOwnProperty()",
-                                  bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, HasOwnProperty, bool);
   auto self = Utils::OpenHandle(this);
   auto key_val = Utils::OpenHandle(*key);
   auto result = i::JSReceiver::HasOwnProperty(self, key_val);
@@ -4102,6 +4121,14 @@
   return result;
 }
 
+Maybe<bool> v8::Object::HasOwnProperty(Local<Context> context, uint32_t index) {
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, HasOwnProperty, bool);
+  auto self = Utils::OpenHandle(this);
+  auto result = i::JSReceiver::HasOwnProperty(self, index);
+  has_pending_exception = result.IsNothing();
+  RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
+  return result;
+}
 
 bool v8::Object::HasOwnProperty(Local<String> key) {
   auto context = ContextFromHeapObject(Utils::OpenHandle(this));
@@ -4111,8 +4138,7 @@
 
 Maybe<bool> v8::Object::HasRealNamedProperty(Local<Context> context,
                                              Local<Name> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "v8::Object::HasRealNamedProperty()",
-                                  bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, HasRealNamedProperty, bool);
   auto self = Utils::OpenHandle(this);
   if (!self->IsJSObject()) return Just(false);
   auto key_val = Utils::OpenHandle(*key);
@@ -4132,8 +4158,8 @@
 
 Maybe<bool> v8::Object::HasRealIndexedProperty(Local<Context> context,
                                                uint32_t index) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context,
-                                  "v8::Object::HasRealIndexedProperty()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, HasRealIndexedProperty,
+                                  bool);
   auto self = Utils::OpenHandle(this);
   if (!self->IsJSObject()) return Just(false);
   auto result = i::JSObject::HasRealElementProperty(
@@ -4152,8 +4178,8 @@
 
 Maybe<bool> v8::Object::HasRealNamedCallbackProperty(Local<Context> context,
                                                      Local<Name> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(
-      context, "v8::Object::HasRealNamedCallbackProperty()", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Object, HasRealNamedCallbackProperty,
+                                  bool);
   auto self = Utils::OpenHandle(this);
   if (!self->IsJSObject()) return Just(false);
   auto key_val = Utils::OpenHandle(*key);
@@ -4187,8 +4213,8 @@
 
 MaybeLocal<Value> v8::Object::GetRealNamedPropertyInPrototypeChain(
     Local<Context> context, Local<Name> key) {
-  PREPARE_FOR_EXECUTION(
-      context, "v8::Object::GetRealNamedPropertyInPrototypeChain()", Value);
+  PREPARE_FOR_EXECUTION(context, Object, GetRealNamedPropertyInPrototypeChain,
+                        Value);
   i::Handle<i::JSReceiver> self = Utils::OpenHandle(this);
   if (!self->IsJSObject()) return MaybeLocal<Value>();
   i::Handle<i::Name> key_obj = Utils::OpenHandle(*key);
@@ -4219,7 +4245,7 @@
 v8::Object::GetRealNamedPropertyAttributesInPrototypeChain(
     Local<Context> context, Local<Name> key) {
   PREPARE_FOR_EXECUTION_PRIMITIVE(
-      context, "v8::Object::GetRealNamedPropertyAttributesInPrototypeChain()",
+      context, Object, GetRealNamedPropertyAttributesInPrototypeChain,
       PropertyAttribute);
   i::Handle<i::JSReceiver> self = Utils::OpenHandle(this);
   if (!self->IsJSObject()) return Nothing<PropertyAttribute>();
@@ -4249,7 +4275,7 @@
 
 MaybeLocal<Value> v8::Object::GetRealNamedProperty(Local<Context> context,
                                                    Local<Name> key) {
-  PREPARE_FOR_EXECUTION(context, "v8::Object::GetRealNamedProperty()", Value);
+  PREPARE_FOR_EXECUTION(context, Object, GetRealNamedProperty, Value);
   auto self = Utils::OpenHandle(this);
   auto key_obj = Utils::OpenHandle(*key);
   i::LookupIterator it = i::LookupIterator::PropertyOrElement(
@@ -4272,8 +4298,7 @@
 Maybe<PropertyAttribute> v8::Object::GetRealNamedPropertyAttributes(
     Local<Context> context, Local<Name> key) {
   PREPARE_FOR_EXECUTION_PRIMITIVE(
-      context, "v8::Object::GetRealNamedPropertyAttributes()",
-      PropertyAttribute);
+      context, Object, GetRealNamedPropertyAttributes, PropertyAttribute);
   auto self = Utils::OpenHandle(this);
   auto key_obj = Utils::OpenHandle(*key);
   i::LookupIterator it = i::LookupIterator::PropertyOrElement(
@@ -4322,70 +4347,21 @@
 }
 
 
-bool v8::Object::SetHiddenValue(v8::Local<v8::String> key,
-                                v8::Local<v8::Value> value) {
-  i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
-  ENTER_V8(isolate);
-  i::HandleScope scope(isolate);
-  i::Handle<i::JSReceiver> self = Utils::OpenHandle(this);
-  if (!self->IsJSObject()) return false;
-  i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
-  i::Handle<i::String> key_string =
-      isolate->factory()->InternalizeString(key_obj);
-  if (value.IsEmpty()) {
-    i::JSObject::DeleteHiddenProperty(i::Handle<i::JSObject>::cast(self),
-                                      key_string);
-    return true;
-  }
-  i::Handle<i::Object> value_obj = Utils::OpenHandle(*value);
-  i::Handle<i::Object> result = i::JSObject::SetHiddenProperty(
-      i::Handle<i::JSObject>::cast(self), key_string, value_obj);
-  return *result == *self;
-}
-
-
-v8::Local<v8::Value> v8::Object::GetHiddenValue(v8::Local<v8::String> key) {
-  i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
-  ENTER_V8(isolate);
-  i::Handle<i::JSReceiver> self = Utils::OpenHandle(this);
-  if (!self->IsJSObject()) return v8::Local<v8::Value>();
-  i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
-  i::Handle<i::String> key_string =
-      isolate->factory()->InternalizeString(key_obj);
-  i::Handle<i::Object> result(
-      i::Handle<i::JSObject>::cast(self)->GetHiddenProperty(key_string),
-      isolate);
-  if (result->IsTheHole()) return v8::Local<v8::Value>();
-  return Utils::ToLocal(result);
-}
-
-
-bool v8::Object::DeleteHiddenValue(v8::Local<v8::String> key) {
-  i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
-  ENTER_V8(isolate);
-  i::HandleScope scope(isolate);
-  i::Handle<i::JSReceiver> self = Utils::OpenHandle(this);
-  if (!self->IsJSObject()) return false;
-  i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
-  i::Handle<i::String> key_string =
-      isolate->factory()->InternalizeString(key_obj);
-  i::JSObject::DeleteHiddenProperty(i::Handle<i::JSObject>::cast(self),
-                                    key_string);
-  return true;
-}
-
-
 bool v8::Object::IsCallable() {
   auto self = Utils::OpenHandle(this);
   return self->IsCallable();
 }
 
+bool v8::Object::IsConstructor() {
+  auto self = Utils::OpenHandle(this);
+  return self->IsConstructor();
+}
 
 MaybeLocal<Value> Object::CallAsFunction(Local<Context> context,
                                          Local<Value> recv, int argc,
                                          Local<Value> argv[]) {
-  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, "v8::Object::CallAsFunction()",
-                                      Value);
+  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, Object, CallAsFunction, Value);
+  i::HistogramTimerScope execute_timer(isolate->counters()->execute(), true);
   i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate);
   TRACE_EVENT0("v8", "V8.Execute");
   auto self = Utils::OpenHandle(this);
@@ -4411,8 +4387,9 @@
 
 MaybeLocal<Value> Object::CallAsConstructor(Local<Context> context, int argc,
                                             Local<Value> argv[]) {
-  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context,
-                                      "v8::Object::CallAsConstructor()", Value);
+  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, Object, CallAsConstructor,
+                                      Value);
+  i::HistogramTimerScope execute_timer(isolate->counters()->execute(), true);
   i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate);
   TRACE_EVENT0("v8", "V8.Execute");
   auto self = Utils::OpenHandle(this);
@@ -4433,22 +4410,23 @@
   RETURN_TO_LOCAL_UNCHECKED(CallAsConstructor(context, argc, argv_cast), Value);
 }
 
-
 MaybeLocal<Function> Function::New(Local<Context> context,
                                    FunctionCallback callback, Local<Value> data,
-                                   int length) {
+                                   int length, ConstructorBehavior behavior) {
   i::Isolate* isolate = Utils::OpenHandle(*context)->GetIsolate();
-  LOG_API(isolate, "Function::New");
+  LOG_API(isolate, Function, New);
   ENTER_V8(isolate);
-  return FunctionTemplateNew(isolate, callback, nullptr, data,
-                             Local<Signature>(), length, true)
-      ->GetFunction(context);
+  auto templ = FunctionTemplateNew(isolate, callback, nullptr, data,
+                                   Local<Signature>(), length, true);
+  if (behavior == ConstructorBehavior::kThrow) templ->RemovePrototype();
+  return templ->GetFunction(context);
 }
 
 
 Local<Function> Function::New(Isolate* v8_isolate, FunctionCallback callback,
                               Local<Value> data, int length) {
-  return Function::New(v8_isolate->GetCurrentContext(), callback, data, length)
+  return Function::New(v8_isolate->GetCurrentContext(), callback, data, length,
+                       ConstructorBehavior::kAllow)
       .FromMaybe(Local<Function>());
 }
 
@@ -4461,8 +4439,8 @@
 
 MaybeLocal<Object> Function::NewInstance(Local<Context> context, int argc,
                                          v8::Local<v8::Value> argv[]) const {
-  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, "v8::Function::NewInstance()",
-                                      Object);
+  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, Function, NewInstance, Object);
+  i::HistogramTimerScope execute_timer(isolate->counters()->execute(), true);
   i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate);
   TRACE_EVENT0("v8", "V8.Execute");
   auto self = Utils::OpenHandle(this);
@@ -4486,7 +4464,8 @@
 MaybeLocal<v8::Value> Function::Call(Local<Context> context,
                                      v8::Local<v8::Value> recv, int argc,
                                      v8::Local<v8::Value> argv[]) {
-  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, "v8::Function::Call()", Value);
+  PREPARE_FOR_EXECUTION_WITH_CALLBACK(context, Function, Call, Value);
+  i::HistogramTimerScope execute_timer(isolate->counters()->execute(), true);
   i::TimerEventScope<i::TimerEventExecute> timer_scope(isolate);
   TRACE_EVENT0("v8", "V8.Execute");
   auto self = Utils::OpenHandle(this);
@@ -4518,16 +4497,20 @@
 
 Local<Value> Function::GetName() const {
   auto self = Utils::OpenHandle(this);
+  i::Isolate* isolate = self->GetIsolate();
   if (self->IsJSBoundFunction()) {
     auto func = i::Handle<i::JSBoundFunction>::cast(self);
-    return Utils::ToLocal(handle(func->name(), func->GetIsolate()));
+    i::Handle<i::Object> name;
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, name,
+                                     i::JSBoundFunction::GetName(isolate, func),
+                                     Local<Value>());
+    return Utils::ToLocal(name);
   }
   if (self->IsJSFunction()) {
     auto func = i::Handle<i::JSFunction>::cast(self);
-    return Utils::ToLocal(handle(func->shared()->name(), func->GetIsolate()));
+    return Utils::ToLocal(handle(func->shared()->name(), isolate));
   }
-  return ToApiHandle<Primitive>(
-      self->GetIsolate()->factory()->undefined_value());
+  return ToApiHandle<Primitive>(isolate->factory()->undefined_value());
 }
 
 
@@ -5195,7 +5178,7 @@
                       int* nchars_ref,
                       int options) const {
   i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
-  LOG_API(isolate, "String::WriteUtf8");
+  LOG_API(isolate, String, WriteUtf8);
   ENTER_V8(isolate);
   i::Handle<i::String> str = Utils::OpenHandle(this);
   if (options & HINT_MANY_WRITES_EXPECTED) {
@@ -5248,7 +5231,7 @@
                               int length,
                               int options) {
   i::Isolate* isolate = Utils::OpenHandle(string)->GetIsolate();
-  LOG_API(isolate, "String::Write");
+  LOG_API(isolate, String, Write);
   ENTER_V8(isolate);
   DCHECK(start >= 0 && length >= -1);
   i::Handle<i::String> str = Utils::OpenHandle(string);
@@ -5622,7 +5605,7 @@
                                 v8::Local<ObjectTemplate> global_template,
                                 v8::Local<Value> global_object) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(external_isolate);
-  LOG_API(isolate, "Context::New");
+  LOG_API(isolate, Context, New);
   i::HandleScope scope(isolate);
   ExtensionConfiguration no_extensions;
   if (extensions == NULL) extensions = &no_extensions;
@@ -5725,7 +5708,7 @@
 
 
 MaybeLocal<v8::Object> ObjectTemplate::NewInstance(Local<Context> context) {
-  PREPARE_FOR_EXECUTION(context, "v8::ObjectTemplate::NewInstance()", Object);
+  PREPARE_FOR_EXECUTION(context, ObjectTemplate, NewInstance, Object);
   auto self = Utils::OpenHandle(this);
   Local<Object> result;
   has_pending_exception =
@@ -5742,8 +5725,7 @@
 
 
 MaybeLocal<v8::Function> FunctionTemplate::GetFunction(Local<Context> context) {
-  PREPARE_FOR_EXECUTION(context, "v8::FunctionTemplate::GetFunction()",
-                        Function);
+  PREPARE_FOR_EXECUTION(context, FunctionTemplate, GetFunction, Function);
   auto self = Utils::OpenHandle(this);
   Local<Function> result;
   has_pending_exception =
@@ -5769,7 +5751,7 @@
 Local<External> v8::External::New(Isolate* isolate, void* value) {
   STATIC_ASSERT(sizeof(value) == sizeof(i::Address));
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "External::New");
+  LOG_API(i_isolate, External, New);
   ENTER_V8(i_isolate);
   i::Handle<i::JSObject> external = i_isolate->factory()->NewExternal(value);
   return Utils::ExternalToLocal(external);
@@ -5837,42 +5819,42 @@
 
 STATIC_ASSERT(v8::String::kMaxLength == i::String::kMaxLength);
 
-
-template <typename Char>
-inline MaybeLocal<String> NewString(Isolate* v8_isolate, const char* location,
-                                    const char* env, const Char* data,
-                                    v8::NewStringType type, int length) {
-  i::Isolate* isolate = reinterpret_cast<internal::Isolate*>(v8_isolate);
-  if (length == 0) return String::Empty(v8_isolate);
-  // TODO(dcarney): throw a context free exception.
-  if (length > i::String::kMaxLength) return MaybeLocal<String>();
-  ENTER_V8(isolate);
-  LOG_API(isolate, env);
-  if (length < 0) length = StringLength(data);
-  i::Handle<i::String> result =
-      NewString(isolate->factory(), type, i::Vector<const Char>(data, length))
-          .ToHandleChecked();
-  return Utils::ToLocal(result);
-}
-
 }  // anonymous namespace
 
+// TODO(dcarney): throw a context free exception.
+#define NEW_STRING(isolate, class_name, function_name, Char, data, type,   \
+                   length)                                                 \
+  MaybeLocal<String> result;                                               \
+  if (length == 0) {                                                       \
+    result = String::Empty(isolate);                                       \
+  } else if (length > i::String::kMaxLength) {                             \
+    result = MaybeLocal<String>();                                         \
+  } else {                                                                 \
+    i::Isolate* i_isolate = reinterpret_cast<internal::Isolate*>(isolate); \
+    ENTER_V8(i_isolate);                                                   \
+    LOG_API(i_isolate, class_name, function_name);                         \
+    if (length < 0) length = StringLength(data);                           \
+    i::Handle<i::String> handle_result =                                   \
+        NewString(i_isolate->factory(), type,                              \
+                  i::Vector<const Char>(data, length))                     \
+            .ToHandleChecked();                                            \
+    result = Utils::ToLocal(handle_result);                                \
+  }
 
 Local<String> String::NewFromUtf8(Isolate* isolate,
                                   const char* data,
                                   NewStringType type,
                                   int length) {
-  RETURN_TO_LOCAL_UNCHECKED(
-      NewString(isolate, "v8::String::NewFromUtf8()", "String::NewFromUtf8",
-                data, static_cast<v8::NewStringType>(type), length),
-      String);
+  NEW_STRING(isolate, String, NewFromUtf8, char, data,
+             static_cast<v8::NewStringType>(type), length);
+  RETURN_TO_LOCAL_UNCHECKED(result, String);
 }
 
 
 MaybeLocal<String> String::NewFromUtf8(Isolate* isolate, const char* data,
                                        v8::NewStringType type, int length) {
-  return NewString(isolate, "v8::String::NewFromUtf8()", "String::NewFromUtf8",
-                   data, type, length);
+  NEW_STRING(isolate, String, NewFromUtf8, char, data, type, length);
+  return result;
 }
 
 
@@ -5880,18 +5862,16 @@
                                      const uint8_t* data,
                                      NewStringType type,
                                      int length) {
-  RETURN_TO_LOCAL_UNCHECKED(
-      NewString(isolate, "v8::String::NewFromOneByte()",
-                "String::NewFromOneByte", data,
-                static_cast<v8::NewStringType>(type), length),
-      String);
+  NEW_STRING(isolate, String, NewFromOneByte, uint8_t, data,
+             static_cast<v8::NewStringType>(type), length);
+  RETURN_TO_LOCAL_UNCHECKED(result, String);
 }
 
 
 MaybeLocal<String> String::NewFromOneByte(Isolate* isolate, const uint8_t* data,
                                           v8::NewStringType type, int length) {
-  return NewString(isolate, "v8::String::NewFromOneByte()",
-                   "String::NewFromOneByte", data, type, length);
+  NEW_STRING(isolate, String, NewFromOneByte, uint8_t, data, type, length);
+  return result;
 }
 
 
@@ -5899,19 +5879,17 @@
                                      const uint16_t* data,
                                      NewStringType type,
                                      int length) {
-  RETURN_TO_LOCAL_UNCHECKED(
-      NewString(isolate, "v8::String::NewFromTwoByte()",
-                "String::NewFromTwoByte", data,
-                static_cast<v8::NewStringType>(type), length),
-      String);
+  NEW_STRING(isolate, String, NewFromTwoByte, uint16_t, data,
+             static_cast<v8::NewStringType>(type), length);
+  RETURN_TO_LOCAL_UNCHECKED(result, String);
 }
 
 
 MaybeLocal<String> String::NewFromTwoByte(Isolate* isolate,
                                           const uint16_t* data,
                                           v8::NewStringType type, int length) {
-  return NewString(isolate, "v8::String::NewFromTwoByte()",
-                   "String::NewFromTwoByte", data, type, length);
+  NEW_STRING(isolate, String, NewFromTwoByte, uint16_t, data, type, length);
+  return result;
 }
 
 
@@ -5919,7 +5897,7 @@
   i::Handle<i::String> left_string = Utils::OpenHandle(*left);
   i::Isolate* isolate = left_string->GetIsolate();
   ENTER_V8(isolate);
-  LOG_API(isolate, "v8::String::Concat");
+  LOG_API(isolate, String, Concat);
   i::Handle<i::String> right_string = Utils::OpenHandle(*right);
   // If we are steering towards a range error, do not wait for the error to be
   // thrown, and return the null handle instead.
@@ -5941,7 +5919,7 @@
   }
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
   ENTER_V8(i_isolate);
-  LOG_API(i_isolate, "String::NewExternalTwoByte");
+  LOG_API(i_isolate, String, NewExternalTwoByte);
   i::Handle<i::String> string = i_isolate->factory()
                                     ->NewExternalStringFromTwoByte(resource)
                                     .ToHandleChecked();
@@ -5965,7 +5943,7 @@
   }
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
   ENTER_V8(i_isolate);
-  LOG_API(i_isolate, "String::NewExternalOneByte");
+  LOG_API(i_isolate, String, NewExternalOneByte);
   i::Handle<i::String> string = i_isolate->factory()
                                     ->NewExternalStringFromOneByte(resource)
                                     .ToHandleChecked();
@@ -6048,7 +6026,7 @@
 
 Local<v8::Object> v8::Object::New(Isolate* isolate) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "Object::New");
+  LOG_API(i_isolate, Object, New);
   ENTER_V8(i_isolate);
   i::Handle<i::JSObject> obj =
       i_isolate->factory()->NewJSObject(i_isolate->object_function());
@@ -6058,7 +6036,7 @@
 
 Local<v8::Value> v8::NumberObject::New(Isolate* isolate, double value) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "NumberObject::New");
+  LOG_API(i_isolate, NumberObject, New);
   ENTER_V8(i_isolate);
   i::Handle<i::Object> number = i_isolate->factory()->NewNumber(value);
   i::Handle<i::Object> obj =
@@ -6071,14 +6049,14 @@
   i::Handle<i::Object> obj = Utils::OpenHandle(this);
   i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
   i::Isolate* isolate = jsvalue->GetIsolate();
-  LOG_API(isolate, "NumberObject::NumberValue");
+  LOG_API(isolate, NumberObject, NumberValue);
   return jsvalue->value()->Number();
 }
 
 
 Local<v8::Value> v8::BooleanObject::New(Isolate* isolate, bool value) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "BooleanObject::New");
+  LOG_API(i_isolate, BooleanObject, New);
   ENTER_V8(i_isolate);
   i::Handle<i::Object> boolean(value ? i_isolate->heap()->true_value()
                                      : i_isolate->heap()->false_value(),
@@ -6098,7 +6076,7 @@
   i::Handle<i::Object> obj = Utils::OpenHandle(this);
   i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
   i::Isolate* isolate = jsvalue->GetIsolate();
-  LOG_API(isolate, "BooleanObject::BooleanValue");
+  LOG_API(isolate, BooleanObject, BooleanValue);
   return jsvalue->value()->IsTrue();
 }
 
@@ -6106,7 +6084,7 @@
 Local<v8::Value> v8::StringObject::New(Local<String> value) {
   i::Handle<i::String> string = Utils::OpenHandle(*value);
   i::Isolate* isolate = string->GetIsolate();
-  LOG_API(isolate, "StringObject::New");
+  LOG_API(isolate, StringObject, New);
   ENTER_V8(isolate);
   i::Handle<i::Object> obj =
       i::Object::ToObject(isolate, string).ToHandleChecked();
@@ -6118,7 +6096,7 @@
   i::Handle<i::Object> obj = Utils::OpenHandle(this);
   i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
   i::Isolate* isolate = jsvalue->GetIsolate();
-  LOG_API(isolate, "StringObject::StringValue");
+  LOG_API(isolate, StringObject, StringValue);
   return Utils::ToLocal(
       i::Handle<i::String>(i::String::cast(jsvalue->value())));
 }
@@ -6126,7 +6104,7 @@
 
 Local<v8::Value> v8::SymbolObject::New(Isolate* isolate, Local<Symbol> value) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "SymbolObject::New");
+  LOG_API(i_isolate, SymbolObject, New);
   ENTER_V8(i_isolate);
   i::Handle<i::Object> obj = i::Object::ToObject(
       i_isolate, Utils::OpenHandle(*value)).ToHandleChecked();
@@ -6138,7 +6116,7 @@
   i::Handle<i::Object> obj = Utils::OpenHandle(this);
   i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
   i::Isolate* isolate = jsvalue->GetIsolate();
-  LOG_API(isolate, "SymbolObject::SymbolValue");
+  LOG_API(isolate, SymbolObject, SymbolValue);
   return Utils::ToLocal(
       i::Handle<i::Symbol>(i::Symbol::cast(jsvalue->value())));
 }
@@ -6149,7 +6127,7 @@
     // Introduce only canonical NaN value into the VM, to avoid signaling NaNs.
     time = std::numeric_limits<double>::quiet_NaN();
   }
-  PREPARE_FOR_EXECUTION(context, "Date::New", Value);
+  PREPARE_FOR_EXECUTION(context, Date, New, Value);
   Local<Value> result;
   has_pending_exception = !ToLocal<Value>(
       i::JSDate::New(isolate->date_function(), isolate->date_function(), time),
@@ -6169,14 +6147,14 @@
   i::Handle<i::Object> obj = Utils::OpenHandle(this);
   i::Handle<i::JSDate> jsdate = i::Handle<i::JSDate>::cast(obj);
   i::Isolate* isolate = jsdate->GetIsolate();
-  LOG_API(isolate, "Date::NumberValue");
+  LOG_API(isolate, Date, NumberValue);
   return jsdate->value()->Number();
 }
 
 
 void v8::Date::DateTimeConfigurationChangeNotification(Isolate* isolate) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "Date::DateTimeConfigurationChangeNotification");
+  LOG_API(i_isolate, Date, DateTimeConfigurationChangeNotification);
   ENTER_V8(i_isolate);
   i_isolate->date_cache()->ResetDateCache();
   if (!i_isolate->eternal_handles()->Exists(
@@ -6196,7 +6174,7 @@
 
 MaybeLocal<v8::RegExp> v8::RegExp::New(Local<Context> context,
                                        Local<String> pattern, Flags flags) {
-  PREPARE_FOR_EXECUTION(context, "RegExp::New", RegExp);
+  PREPARE_FOR_EXECUTION(context, RegExp, New, RegExp);
   Local<v8::RegExp> result;
   has_pending_exception =
       !ToLocal<RegExp>(i::JSRegExp::New(Utils::OpenHandle(*pattern),
@@ -6241,7 +6219,7 @@
 
 Local<v8::Array> v8::Array::New(Isolate* isolate, int length) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "Array::New");
+  LOG_API(i_isolate, Array, New);
   ENTER_V8(i_isolate);
   int real_length = length > 0 ? length : 0;
   i::Handle<i::JSArray> obj = i_isolate->factory()->NewJSArray(real_length);
@@ -6265,7 +6243,7 @@
 
 MaybeLocal<Object> Array::CloneElementAt(Local<Context> context,
                                          uint32_t index) {
-  PREPARE_FOR_EXECUTION(context, "v8::Array::CloneElementAt()", Object);
+  PREPARE_FOR_EXECUTION(context, Array, CloneElementAt, Object);
   auto self = Utils::OpenHandle(this);
   if (!self->HasFastObjectElements()) return Local<Object>();
   i::FixedArray* elms = i::FixedArray::cast(self->elements());
@@ -6286,7 +6264,7 @@
 
 Local<v8::Map> v8::Map::New(Isolate* isolate) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "Map::New");
+  LOG_API(i_isolate, Map, New);
   ENTER_V8(i_isolate);
   i::Handle<i::JSMap> obj = i_isolate->factory()->NewJSMap();
   return Utils::ToLocal(obj);
@@ -6302,14 +6280,14 @@
 void Map::Clear() {
   auto self = Utils::OpenHandle(this);
   i::Isolate* isolate = self->GetIsolate();
-  LOG_API(isolate, "Map::Clear");
+  LOG_API(isolate, Map, Clear);
   ENTER_V8(isolate);
   i::JSMap::Clear(self);
 }
 
 
 MaybeLocal<Value> Map::Get(Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION(context, "Map::Get", Value);
+  PREPARE_FOR_EXECUTION(context, Map, Get, Value);
   auto self = Utils::OpenHandle(this);
   Local<Value> result;
   i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)};
@@ -6324,7 +6302,7 @@
 
 MaybeLocal<Map> Map::Set(Local<Context> context, Local<Value> key,
                          Local<Value> value) {
-  PREPARE_FOR_EXECUTION(context, "Map::Set", Map);
+  PREPARE_FOR_EXECUTION(context, Map, Set, Map);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> result;
   i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key),
@@ -6338,7 +6316,7 @@
 
 
 Maybe<bool> Map::Has(Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Map::Has", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Map, Has, bool);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> result;
   i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)};
@@ -6351,7 +6329,7 @@
 
 
 Maybe<bool> Map::Delete(Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Map::Delete", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Map, Delete, bool);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> result;
   i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)};
@@ -6367,17 +6345,25 @@
   i::Handle<i::JSMap> obj = Utils::OpenHandle(this);
   i::Isolate* isolate = obj->GetIsolate();
   i::Factory* factory = isolate->factory();
-  LOG_API(isolate, "Map::AsArray");
+  LOG_API(isolate, Map, AsArray);
   ENTER_V8(isolate);
   i::Handle<i::OrderedHashMap> table(i::OrderedHashMap::cast(obj->table()));
-  int size = table->NumberOfElements();
-  int length = size * 2;
+  int length = table->NumberOfElements() * 2;
   i::Handle<i::FixedArray> result = factory->NewFixedArray(length);
-  for (int i = 0; i < size; ++i) {
-    if (table->KeyAt(i)->IsTheHole()) continue;
-    result->set(i * 2, table->KeyAt(i));
-    result->set(i * 2 + 1, table->ValueAt(i));
+  int result_index = 0;
+  {
+    i::DisallowHeapAllocation no_gc;
+    int capacity = table->UsedCapacity();
+    i::Oddball* the_hole = isolate->heap()->the_hole_value();
+    for (int i = 0; i < capacity; ++i) {
+      i::Object* key = table->KeyAt(i);
+      if (key == the_hole) continue;
+      result->set(result_index++, key);
+      result->set(result_index++, table->ValueAt(i));
+    }
   }
+  DCHECK_EQ(result_index, result->length());
+  DCHECK_EQ(result_index, length);
   i::Handle<i::JSArray> result_array =
       factory->NewJSArrayWithElements(result, i::FAST_ELEMENTS, length);
   return Utils::ToLocal(result_array);
@@ -6386,7 +6372,7 @@
 
 Local<v8::Set> v8::Set::New(Isolate* isolate) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "Set::New");
+  LOG_API(i_isolate, Set, New);
   ENTER_V8(i_isolate);
   i::Handle<i::JSSet> obj = i_isolate->factory()->NewJSSet();
   return Utils::ToLocal(obj);
@@ -6402,14 +6388,14 @@
 void Set::Clear() {
   auto self = Utils::OpenHandle(this);
   i::Isolate* isolate = self->GetIsolate();
-  LOG_API(isolate, "Set::Clear");
+  LOG_API(isolate, Set, Clear);
   ENTER_V8(isolate);
   i::JSSet::Clear(self);
 }
 
 
 MaybeLocal<Set> Set::Add(Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION(context, "Set::Add", Set);
+  PREPARE_FOR_EXECUTION(context, Set, Add, Set);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> result;
   i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)};
@@ -6422,7 +6408,7 @@
 
 
 Maybe<bool> Set::Has(Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Set::Has", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Set, Has, bool);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> result;
   i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)};
@@ -6435,7 +6421,7 @@
 
 
 Maybe<bool> Set::Delete(Local<Context> context, Local<Value> key) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Set::Delete", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Set, Delete, bool);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> result;
   i::Handle<i::Object> argv[] = {Utils::OpenHandle(*key)};
@@ -6451,17 +6437,24 @@
   i::Handle<i::JSSet> obj = Utils::OpenHandle(this);
   i::Isolate* isolate = obj->GetIsolate();
   i::Factory* factory = isolate->factory();
-  LOG_API(isolate, "Set::AsArray");
+  LOG_API(isolate, Set, AsArray);
   ENTER_V8(isolate);
   i::Handle<i::OrderedHashSet> table(i::OrderedHashSet::cast(obj->table()));
   int length = table->NumberOfElements();
   i::Handle<i::FixedArray> result = factory->NewFixedArray(length);
-  for (int i = 0; i < length; ++i) {
-    i::Object* key = table->KeyAt(i);
-    if (!key->IsTheHole()) {
-      result->set(i, key);
+  int result_index = 0;
+  {
+    i::DisallowHeapAllocation no_gc;
+    int capacity = table->UsedCapacity();
+    i::Oddball* the_hole = isolate->heap()->the_hole_value();
+    for (int i = 0; i < capacity; ++i) {
+      i::Object* key = table->KeyAt(i);
+      if (key == the_hole) continue;
+      result->set(result_index++, key);
     }
   }
+  DCHECK_EQ(result_index, result->length());
+  DCHECK_EQ(result_index, length);
   i::Handle<i::JSArray> result_array =
       factory->NewJSArrayWithElements(result, i::FAST_ELEMENTS, length);
   return Utils::ToLocal(result_array);
@@ -6469,7 +6462,7 @@
 
 
 MaybeLocal<Promise::Resolver> Promise::Resolver::New(Local<Context> context) {
-  PREPARE_FOR_EXECUTION(context, "Promise::Resolver::New", Resolver);
+  PREPARE_FOR_EXECUTION(context, Promise_Resolver, New, Resolver);
   i::Handle<i::Object> result;
   has_pending_exception =
       !i::Execution::Call(isolate, isolate->promise_create(),
@@ -6494,7 +6487,7 @@
 
 Maybe<bool> Promise::Resolver::Resolve(Local<Context> context,
                                        Local<Value> value) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Promise::Resolver::Resolve", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Promise_Resolver, Resolve, bool);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> argv[] = {self, Utils::OpenHandle(*value)};
   has_pending_exception =
@@ -6515,7 +6508,7 @@
 
 Maybe<bool> Promise::Resolver::Reject(Local<Context> context,
                                       Local<Value> value) {
-  PREPARE_FOR_EXECUTION_PRIMITIVE(context, "Promise::Resolver::Resolve", bool);
+  PREPARE_FOR_EXECUTION_PRIMITIVE(context, Promise_Resolver, Resolve, bool);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> argv[] = {self, Utils::OpenHandle(*value)};
   has_pending_exception =
@@ -6538,7 +6531,7 @@
 
 MaybeLocal<Promise> DoChain(Value* value, Local<Context> context,
                             Local<Function> handler) {
-  PREPARE_FOR_EXECUTION(context, "Promise::Chain", Promise);
+  PREPARE_FOR_EXECUTION(context, Promise, Chain, Promise);
   auto self = Utils::OpenHandle(value);
   i::Handle<i::Object> argv[] = {Utils::OpenHandle(*handler)};
   i::Handle<i::Object> result;
@@ -6566,7 +6559,7 @@
 
 MaybeLocal<Promise> Promise::Catch(Local<Context> context,
                                    Local<Function> handler) {
-  PREPARE_FOR_EXECUTION(context, "Promise::Catch", Promise);
+  PREPARE_FOR_EXECUTION(context, Promise, Catch, Promise);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> argv[] = { Utils::OpenHandle(*handler) };
   i::Handle<i::Object> result;
@@ -6586,7 +6579,7 @@
 
 MaybeLocal<Promise> Promise::Then(Local<Context> context,
                                   Local<Function> handler) {
-  PREPARE_FOR_EXECUTION(context, "Promise::Then", Promise);
+  PREPARE_FOR_EXECUTION(context, Promise, Then, Promise);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::Object> argv[] = { Utils::OpenHandle(*handler) };
   i::Handle<i::Object> result;
@@ -6607,7 +6600,7 @@
 bool Promise::HasHandler() {
   i::Handle<i::JSReceiver> promise = Utils::OpenHandle(this);
   i::Isolate* isolate = promise->GetIsolate();
-  LOG_API(isolate, "Promise::HasRejectHandler");
+  LOG_API(isolate, Promise, HasRejectHandler);
   ENTER_V8(isolate);
   i::Handle<i::Symbol> key = isolate->factory()->promise_has_handler_symbol();
   return i::JSReceiver::GetDataProperty(promise, key)->IsTrue();
@@ -6642,7 +6635,7 @@
 
 MaybeLocal<Proxy> Proxy::New(Local<Context> context, Local<Object> local_target,
                              Local<Object> local_handler) {
-  PREPARE_FOR_EXECUTION(context, "Proxy::New", Proxy);
+  PREPARE_FOR_EXECUTION(context, Proxy, New, Proxy);
   i::Handle<i::JSReceiver> target = Utils::OpenHandle(*local_target);
   i::Handle<i::JSReceiver> handler = Utils::OpenHandle(*local_handler);
   Local<Proxy> result;
@@ -6665,7 +6658,7 @@
 v8::ArrayBuffer::Contents v8::ArrayBuffer::Externalize() {
   i::Handle<i::JSArrayBuffer> self = Utils::OpenHandle(this);
   i::Isolate* isolate = self->GetIsolate();
-  Utils::ApiCheck(!self->is_external(), "v8::ArrayBuffer::Externalize",
+  Utils::ApiCheck(!self->is_external(), "v8_ArrayBuffer_Externalize",
                   "ArrayBuffer already externalized");
   self->set_is_external(true);
   isolate->heap()->UnregisterArrayBuffer(*self);
@@ -6692,7 +6685,7 @@
                   "Only externalized ArrayBuffers can be neutered");
   Utils::ApiCheck(obj->is_neuterable(), "v8::ArrayBuffer::Neuter",
                   "Only neuterable ArrayBuffers can be neutered");
-  LOG_API(obj->GetIsolate(), "v8::ArrayBuffer::Neuter()");
+  LOG_API(obj->GetIsolate(), ArrayBuffer, Neuter);
   ENTER_V8(isolate);
   obj->Neuter();
 }
@@ -6706,7 +6699,7 @@
 
 Local<ArrayBuffer> v8::ArrayBuffer::New(Isolate* isolate, size_t byte_length) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "v8::ArrayBuffer::New(size_t)");
+  LOG_API(i_isolate, ArrayBuffer, New);
   ENTER_V8(i_isolate);
   i::Handle<i::JSArrayBuffer> obj =
       i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kNotShared);
@@ -6721,7 +6714,7 @@
   // Embedders must guarantee that the external backing store is valid.
   CHECK(byte_length == 0 || data != NULL);
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "v8::ArrayBuffer::New(void*, size_t)");
+  LOG_API(i_isolate, ArrayBuffer, New);
   ENTER_V8(i_isolate);
   i::Handle<i::JSArrayBuffer> obj =
       i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kNotShared);
@@ -6794,49 +6787,45 @@
   return static_cast<size_t>(obj->length_value());
 }
 
-
-#define TYPED_ARRAY_NEW(Type, type, TYPE, ctype, size)                        \
-  Local<Type##Array> Type##Array::New(Local<ArrayBuffer> array_buffer,        \
-                                      size_t byte_offset, size_t length) {    \
-    i::Isolate* isolate = Utils::OpenHandle(*array_buffer)->GetIsolate();     \
-    LOG_API(isolate,                                                          \
-            "v8::" #Type "Array::New(Local<ArrayBuffer>, size_t, size_t)");   \
-    ENTER_V8(isolate);                                                        \
-    if (!Utils::ApiCheck(length <= static_cast<size_t>(i::Smi::kMaxValue),    \
-                         "v8::" #Type                                         \
-                         "Array::New(Local<ArrayBuffer>, size_t, size_t)",    \
-                         "length exceeds max allowed value")) {               \
-      return Local<Type##Array>();                                            \
-    }                                                                         \
-    i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*array_buffer);    \
-    i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray(     \
-        i::kExternal##Type##Array, buffer, byte_offset, length);              \
-    return Utils::ToLocal##Type##Array(obj);                                  \
-  }                                                                           \
-  Local<Type##Array> Type##Array::New(                                        \
-      Local<SharedArrayBuffer> shared_array_buffer, size_t byte_offset,       \
-      size_t length) {                                                        \
-    CHECK(i::FLAG_harmony_sharedarraybuffer);                                 \
-    i::Isolate* isolate =                                                     \
-        Utils::OpenHandle(*shared_array_buffer)->GetIsolate();                \
-    LOG_API(isolate, "v8::" #Type                                             \
-                     "Array::New(Local<SharedArrayBuffer>, size_t, size_t)"); \
-    ENTER_V8(isolate);                                                        \
-    if (!Utils::ApiCheck(                                                     \
-            length <= static_cast<size_t>(i::Smi::kMaxValue),                 \
-            "v8::" #Type                                                      \
-            "Array::New(Local<SharedArrayBuffer>, size_t, size_t)",           \
-            "length exceeds max allowed value")) {                            \
-      return Local<Type##Array>();                                            \
-    }                                                                         \
-    i::Handle<i::JSArrayBuffer> buffer =                                      \
-        Utils::OpenHandle(*shared_array_buffer);                              \
-    i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray(     \
-        i::kExternal##Type##Array, buffer, byte_offset, length);              \
-    return Utils::ToLocal##Type##Array(obj);                                  \
+#define TYPED_ARRAY_NEW(Type, type, TYPE, ctype, size)                     \
+  Local<Type##Array> Type##Array::New(Local<ArrayBuffer> array_buffer,     \
+                                      size_t byte_offset, size_t length) { \
+    i::Isolate* isolate = Utils::OpenHandle(*array_buffer)->GetIsolate();  \
+    LOG_API(isolate, Type##Array, New);                                    \
+    ENTER_V8(isolate);                                                     \
+    if (!Utils::ApiCheck(length <= static_cast<size_t>(i::Smi::kMaxValue), \
+                         "v8::" #Type                                      \
+                         "Array::New(Local<ArrayBuffer>, size_t, size_t)", \
+                         "length exceeds max allowed value")) {            \
+      return Local<Type##Array>();                                         \
+    }                                                                      \
+    i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*array_buffer); \
+    i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray(  \
+        i::kExternal##Type##Array, buffer, byte_offset, length);           \
+    return Utils::ToLocal##Type##Array(obj);                               \
+  }                                                                        \
+  Local<Type##Array> Type##Array::New(                                     \
+      Local<SharedArrayBuffer> shared_array_buffer, size_t byte_offset,    \
+      size_t length) {                                                     \
+    CHECK(i::FLAG_harmony_sharedarraybuffer);                              \
+    i::Isolate* isolate =                                                  \
+        Utils::OpenHandle(*shared_array_buffer)->GetIsolate();             \
+    LOG_API(isolate, Type##Array, New);                                    \
+    ENTER_V8(isolate);                                                     \
+    if (!Utils::ApiCheck(                                                  \
+            length <= static_cast<size_t>(i::Smi::kMaxValue),              \
+            "v8::" #Type                                                   \
+            "Array::New(Local<SharedArrayBuffer>, size_t, size_t)",        \
+            "length exceeds max allowed value")) {                         \
+      return Local<Type##Array>();                                         \
+    }                                                                      \
+    i::Handle<i::JSArrayBuffer> buffer =                                   \
+        Utils::OpenHandle(*shared_array_buffer);                           \
+    i::Handle<i::JSTypedArray> obj = isolate->factory()->NewJSTypedArray(  \
+        i::kExternal##Type##Array, buffer, byte_offset, length);           \
+    return Utils::ToLocal##Type##Array(obj);                               \
   }
 
-
 TYPED_ARRAYS(TYPED_ARRAY_NEW)
 #undef TYPED_ARRAY_NEW
 
@@ -6844,7 +6833,7 @@
                               size_t byte_offset, size_t byte_length) {
   i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*array_buffer);
   i::Isolate* isolate = buffer->GetIsolate();
-  LOG_API(isolate, "v8::DataView::New(Local<ArrayBuffer>, size_t, size_t)");
+  LOG_API(isolate, DataView, New);
   ENTER_V8(isolate);
   i::Handle<i::JSDataView> obj =
       isolate->factory()->NewJSDataView(buffer, byte_offset, byte_length);
@@ -6857,8 +6846,7 @@
   CHECK(i::FLAG_harmony_sharedarraybuffer);
   i::Handle<i::JSArrayBuffer> buffer = Utils::OpenHandle(*shared_array_buffer);
   i::Isolate* isolate = buffer->GetIsolate();
-  LOG_API(isolate,
-          "v8::DataView::New(Local<SharedArrayBuffer>, size_t, size_t)");
+  LOG_API(isolate, DataView, New);
   ENTER_V8(isolate);
   i::Handle<i::JSDataView> obj =
       isolate->factory()->NewJSDataView(buffer, byte_offset, byte_length);
@@ -6874,7 +6862,7 @@
 v8::SharedArrayBuffer::Contents v8::SharedArrayBuffer::Externalize() {
   i::Handle<i::JSArrayBuffer> self = Utils::OpenHandle(this);
   i::Isolate* isolate = self->GetIsolate();
-  Utils::ApiCheck(!self->is_external(), "v8::SharedArrayBuffer::Externalize",
+  Utils::ApiCheck(!self->is_external(), "v8_SharedArrayBuffer_Externalize",
                   "SharedArrayBuffer already externalized");
   self->set_is_external(true);
   isolate->heap()->UnregisterArrayBuffer(*self);
@@ -6902,7 +6890,7 @@
                                                     size_t byte_length) {
   CHECK(i::FLAG_harmony_sharedarraybuffer);
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "v8::SharedArrayBuffer::New(size_t)");
+  LOG_API(i_isolate, SharedArrayBuffer, New);
   ENTER_V8(i_isolate);
   i::Handle<i::JSArrayBuffer> obj =
       i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kShared);
@@ -6919,7 +6907,7 @@
   // Embedders must guarantee that the external backing store is valid.
   CHECK(byte_length == 0 || data != NULL);
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "v8::SharedArrayBuffer::New(void*, size_t)");
+  LOG_API(i_isolate, SharedArrayBuffer, New);
   ENTER_V8(i_isolate);
   i::Handle<i::JSArrayBuffer> obj =
       i_isolate->factory()->NewJSArrayBuffer(i::SharedFlag::kShared);
@@ -6932,7 +6920,7 @@
 
 Local<Symbol> v8::Symbol::New(Isolate* isolate, Local<String> name) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "Symbol::New()");
+  LOG_API(i_isolate, Symbol, New);
   ENTER_V8(i_isolate);
   i::Handle<i::Symbol> result = i_isolate->factory()->NewSymbol();
   if (!name.IsEmpty()) result->set_name(*Utils::OpenHandle(*name));
@@ -7005,7 +6993,7 @@
 
 Local<Private> v8::Private::New(Isolate* isolate, Local<String> name) {
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
-  LOG_API(i_isolate, "Private::New()");
+  LOG_API(i_isolate, Private, New);
   ENTER_V8(i_isolate);
   i::Handle<i::Symbol> symbol = i_isolate->factory()->NewPrivateSymbol();
   if (!name.IsEmpty()) symbol->set_name(*Utils::OpenHandle(*name));
@@ -7202,7 +7190,7 @@
                                           ObjectSpace space,
                                           AllocationAction action) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
-  isolate->memory_allocator()->AddMemoryAllocationCallback(
+  isolate->heap()->memory_allocator()->AddMemoryAllocationCallback(
       callback, space, action);
 }
 
@@ -7210,8 +7198,7 @@
 void Isolate::RemoveMemoryAllocationCallback(
     MemoryAllocationCallback callback) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
-  isolate->memory_allocator()->RemoveMemoryAllocationCallback(
-      callback);
+  isolate->heap()->memory_allocator()->RemoveMemoryAllocationCallback(callback);
 }
 
 
@@ -7484,10 +7471,25 @@
 void Isolate::GetStackSample(const RegisterState& state, void** frames,
                              size_t frames_limit, SampleInfo* sample_info) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
-  i::TickSample::GetStackSample(isolate, state, i::TickSample::kSkipCEntryFrame,
+#if defined(USE_SIMULATOR)
+  RegisterState regs;
+  regs.pc = state.pc;
+  regs.sp = state.sp;
+  regs.fp = state.fp;
+  i::SimulatorHelper::FillRegisters(isolate, &regs);
+#else
+  const RegisterState& regs = state;
+#endif
+  i::TickSample::GetStackSample(isolate, regs, i::TickSample::kSkipCEntryFrame,
                                 frames, frames_limit, sample_info);
 }
 
+size_t Isolate::NumberOfPhantomHandleResetsSinceLastCall() {
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
+  size_t result = isolate->global_handles()->NumberOfPhantomHandleResets();
+  isolate->global_handles()->ResetNumberOfPhantomHandleResets();
+  return result;
+}
 
 void Isolate::SetEventLogger(LogEventCallback that) {
   // Do not overwrite the event logger if we want to log explicitly.
@@ -7706,9 +7708,10 @@
 
 void Isolate::GetCodeRange(void** start, size_t* length_in_bytes) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
-  if (isolate->code_range()->valid()) {
-    *start = isolate->code_range()->start();
-    *length_in_bytes = isolate->code_range()->size();
+  if (isolate->heap()->memory_allocator()->code_range()->valid()) {
+    *start = isolate->heap()->memory_allocator()->code_range()->start();
+    *length_in_bytes =
+        isolate->heap()->memory_allocator()->code_range()->size();
   } else {
     *start = NULL;
     *length_in_bytes = 0;
@@ -7874,6 +7877,10 @@
   return isolate->handle_scope_implementer()->GetMicrotasksScopeDepth();
 }
 
+bool MicrotasksScope::IsRunningMicrotasks(Isolate* v8Isolate) {
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8Isolate);
+  return isolate->IsRunningMicrotasks();
+}
 
 String::Utf8Value::Utf8Value(v8::Local<v8::Value> obj)
     : str_(NULL), length_(0) {
@@ -7918,11 +7925,10 @@
   i::DeleteArray(str_);
 }
 
-
 #define DEFINE_ERROR(NAME, name)                                         \
   Local<Value> Exception::NAME(v8::Local<v8::String> raw_message) {      \
     i::Isolate* isolate = i::Isolate::Current();                         \
-    LOG_API(isolate, #NAME);                                             \
+    LOG_API(isolate, NAME, New);                                         \
     ENTER_V8(isolate);                                                   \
     i::Object* error;                                                    \
     {                                                                    \
@@ -8038,7 +8044,7 @@
 MaybeLocal<Value> Debug::Call(Local<Context> context,
                               v8::Local<v8::Function> fun,
                               v8::Local<v8::Value> data) {
-  PREPARE_FOR_EXECUTION(context, "v8::Debug::Call()", Value);
+  PREPARE_FOR_EXECUTION(context, Debug, Call, Value);
   i::Handle<i::Object> data_obj;
   if (data.IsEmpty()) {
     data_obj = isolate->factory()->undefined_value();
@@ -8063,7 +8069,7 @@
 
 MaybeLocal<Value> Debug::GetMirror(Local<Context> context,
                                    v8::Local<v8::Value> obj) {
-  PREPARE_FOR_EXECUTION(context, "v8::Debug::GetMirror()", Value);
+  PREPARE_FOR_EXECUTION(context, Debug, GetMirror, Value);
   i::Debug* isolate_debug = isolate->debug();
   has_pending_exception = !isolate_debug->Load();
   RETURN_ON_FAILED_EXECUTION(Value);
@@ -8309,7 +8315,9 @@
 
 
 void CpuProfiler::SetIdle(bool is_idle) {
-  i::Isolate* isolate = reinterpret_cast<i::CpuProfiler*>(this)->isolate();
+  i::CpuProfiler* profiler = reinterpret_cast<i::CpuProfiler*>(this);
+  if (!profiler->is_profiling()) return;
+  i::Isolate* isolate = profiler->isolate();
   v8::StateTag state = isolate->current_vm_state();
   DCHECK(state == v8::EXTERNAL || state == v8::IDLE);
   if (isolate->js_entry_sp() != NULL) return;
@@ -8521,11 +8529,11 @@
   return heap_profiler->PushHeapObjectsStats(stream, timestamp_us);
 }
 
-
 bool HeapProfiler::StartSamplingHeapProfiler(uint64_t sample_interval,
-                                             int stack_depth) {
-  return reinterpret_cast<i::HeapProfiler*>(this)
-      ->StartSamplingHeapProfiler(sample_interval, stack_depth);
+                                             int stack_depth,
+                                             SamplingFlags flags) {
+  return reinterpret_cast<i::HeapProfiler*>(this)->StartSamplingHeapProfiler(
+      sample_interval, stack_depth, flags);
 }
 
 
@@ -8781,6 +8789,8 @@
     v8::AccessorNameGetterCallback getter) {
   // Leaving JavaScript.
   Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate());
+  RuntimeCallTimerScope timer(isolate,
+                              &RuntimeCallStats::AccessorGetterCallback);
   Address getter_address = reinterpret_cast<Address>(reinterpret_cast<intptr_t>(
       getter));
   VMState<EXTERNAL> state(isolate);
@@ -8792,6 +8802,8 @@
 void InvokeFunctionCallback(const v8::FunctionCallbackInfo<v8::Value>& info,
                             v8::FunctionCallback callback) {
   Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate());
+  RuntimeCallTimerScope timer(isolate,
+                              &RuntimeCallStats::InvokeFunctionCallback);
   Address callback_address =
       reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback));
   VMState<EXTERNAL> state(isolate);
diff --git a/src/arguments.h b/src/arguments.h
index 02090f9..53cea46 100644
--- a/src/arguments.h
+++ b/src/arguments.h
@@ -79,22 +79,29 @@
 #define CLOBBER_DOUBLE_REGISTERS()
 #endif
 
-#define RUNTIME_FUNCTION_RETURNS_TYPE(Type, Name)                          \
-  static INLINE(Type __RT_impl_##Name(Arguments args, Isolate* isolate));  \
-  Type Name(int args_length, Object** args_object, Isolate* isolate) {     \
-    CLOBBER_DOUBLE_REGISTERS();                                            \
-    Type value;                                                            \
-    TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"), "V8." #Name);    \
-    Arguments args(args_length, args_object);                              \
-    if (FLAG_runtime_call_stats) {                                         \
-      RuntimeCallStats* stats = isolate->counters()->runtime_call_stats(); \
-      RuntimeCallTimerScope timer(isolate, &stats->Name);                  \
-      value = __RT_impl_##Name(args, isolate);                             \
-    } else {                                                               \
-      value = __RT_impl_##Name(args, isolate);                             \
-    }                                                                      \
-    return value;                                                          \
-  }                                                                        \
+// TODO(cbruni): add global flag to check whether any tracing events have been
+// enabled.
+#define RUNTIME_FUNCTION_RETURNS_TYPE(Type, Name)                             \
+  static INLINE(Type __RT_impl_##Name(Arguments args, Isolate* isolate));     \
+                                                                              \
+  V8_NOINLINE static Type Stats_##Name(int args_length, Object** args_object, \
+                                       Isolate* isolate) {                    \
+    RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Name);            \
+    TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"),                     \
+                 "V8.Runtime_" #Name);                                        \
+    Arguments args(args_length, args_object);                                 \
+    return __RT_impl_##Name(args, isolate);                                   \
+  }                                                                           \
+                                                                              \
+  Type Name(int args_length, Object** args_object, Isolate* isolate) {        \
+    CLOBBER_DOUBLE_REGISTERS();                                               \
+    if (FLAG_runtime_call_stats) {                                            \
+      return Stats_##Name(args_length, args_object, isolate);                 \
+    }                                                                         \
+    Arguments args(args_length, args_object);                                 \
+    return __RT_impl_##Name(args, isolate);                                   \
+  }                                                                           \
+                                                                              \
   static Type __RT_impl_##Name(Arguments args, Isolate* isolate)
 
 #define RUNTIME_FUNCTION(Name) RUNTIME_FUNCTION_RETURNS_TYPE(Object*, Name)
diff --git a/src/arm/assembler-arm-inl.h b/src/arm/assembler-arm-inl.h
index b0b22b6..52ebe32 100644
--- a/src/arm/assembler-arm-inl.h
+++ b/src/arm/assembler-arm-inl.h
@@ -71,11 +71,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Assembler::target_address_at(pc_, host_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)
                               || rmode_ == EMBEDDED_OBJECT
@@ -118,19 +113,6 @@
   }
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Assembler::set_target_address_at(isolate_, pc_, host_, updated_reference,
-                                   icache_flush_mode);
-}
-
 Object* RelocInfo::target_object() {
   DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
   return reinterpret_cast<Object*>(Assembler::target_address_at(pc_, host_));
@@ -276,7 +258,7 @@
   }
 }
 
-
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc
index 62516e8..1ccc3a6 100644
--- a/src/arm/assembler-arm.cc
+++ b/src/arm/assembler-arm.cc
@@ -141,15 +141,6 @@
   }
 
   if (FLAG_enable_32dregs && cpu.has_vfp3_d32()) supported_ |= 1u << VFP32DREGS;
-
-  if (cpu.implementer() == base::CPU::NVIDIA &&
-      cpu.variant() == base::CPU::NVIDIA_DENVER &&
-      cpu.part() <= base::CPU::NVIDIA_DENVER_V10) {
-    // TODO(jkummerow): This is turned off as an experiment to see if it
-    // affects crash rates. Keep an eye on crash reports and either remove
-    // coherent cache support permanently, or re-enable it!
-    // supported_ |= 1u << COHERENT_CACHE;
-  }
 #endif
 
   DCHECK(!IsSupported(VFP3) || IsSupported(ARMv7));
@@ -212,18 +203,14 @@
 
 void CpuFeatures::PrintFeatures() {
   printf(
-    "ARMv8=%d ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d MLS=%d"
-    "UNALIGNED_ACCESSES=%d MOVW_MOVT_IMMEDIATE_LOADS=%d COHERENT_CACHE=%d",
-    CpuFeatures::IsSupported(ARMv8),
-    CpuFeatures::IsSupported(ARMv7),
-    CpuFeatures::IsSupported(VFP3),
-    CpuFeatures::IsSupported(VFP32DREGS),
-    CpuFeatures::IsSupported(NEON),
-    CpuFeatures::IsSupported(SUDIV),
-    CpuFeatures::IsSupported(MLS),
-    CpuFeatures::IsSupported(UNALIGNED_ACCESSES),
-    CpuFeatures::IsSupported(MOVW_MOVT_IMMEDIATE_LOADS),
-    CpuFeatures::IsSupported(COHERENT_CACHE));
+      "ARMv8=%d ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d MLS=%d"
+      "UNALIGNED_ACCESSES=%d MOVW_MOVT_IMMEDIATE_LOADS=%d",
+      CpuFeatures::IsSupported(ARMv8), CpuFeatures::IsSupported(ARMv7),
+      CpuFeatures::IsSupported(VFP3), CpuFeatures::IsSupported(VFP32DREGS),
+      CpuFeatures::IsSupported(NEON), CpuFeatures::IsSupported(SUDIV),
+      CpuFeatures::IsSupported(MLS),
+      CpuFeatures::IsSupported(UNALIGNED_ACCESSES),
+      CpuFeatures::IsSupported(MOVW_MOVT_IMMEDIATE_LOADS));
 #ifdef __arm__
   bool eabi_hardfloat = base::OS::ArmUsingHardFloat();
 #elif USE_EABI_HARDFLOAT
@@ -255,6 +242,42 @@
   return Assembler::is_constant_pool_load(pc_);
 }
 
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Assembler::target_address_at(pc_, host_);
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return reinterpret_cast<uint32_t>(Assembler::target_address_at(pc_, host_));
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_)) {
+    Address updated_memory_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_memory_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_memory_reference &&
+           updated_memory_reference < new_base + new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, updated_memory_reference, icache_flush_mode);
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, reinterpret_cast<Address>(updated_size_reference),
+        icache_flush_mode);
+  } else {
+    UNREACHABLE();
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Implementation of Operand and MemOperand
@@ -1702,8 +1725,6 @@
                      int satpos,
                      const Operand& src,
                      Condition cond) {
-  // v6 and above.
-  DCHECK(CpuFeatures::IsSupported(ARMv7));
   DCHECK(!dst.is(pc) && !src.rm_.is(pc));
   DCHECK((satpos >= 0) && (satpos <= 31));
   DCHECK((src.shift_op_ == ASR) || (src.shift_op_ == LSL));
@@ -2038,7 +2059,6 @@
 
 void Assembler::ldrd(Register dst1, Register dst2,
                      const MemOperand& src, Condition cond) {
-  DCHECK(IsEnabled(ARMv7));
   DCHECK(src.rm().is(no_reg));
   DCHECK(!dst1.is(lr));  // r14.
   DCHECK_EQ(0, dst1.code() % 2);
@@ -2053,7 +2073,6 @@
   DCHECK(!src1.is(lr));  // r14.
   DCHECK_EQ(0, src1.code() % 2);
   DCHECK_EQ(src1.code() + 1, src2.code());
-  DCHECK(IsEnabled(ARMv7));
   addrmod3(cond | B7 | B6 | B5 | B4, src1, dst);
 }
 
@@ -3371,6 +3390,69 @@
        0x5 * B9 | B6);
 }
 
+void Assembler::vsel(Condition cond, const DwVfpRegister dst,
+                     const DwVfpRegister src1, const DwVfpRegister src2) {
+  // cond=kSpecialCondition(31-28) | 11100(27-23) | D(22) |
+  // vsel_cond=XX(21-20) | Vn(19-16) | Vd(15-12) | 101(11-9) | sz=1(8) | N(7) |
+  // 0(6) | M(5) | 0(4) | Vm(3-0)
+  DCHECK(CpuFeatures::IsSupported(ARMv8));
+  int vd, d;
+  dst.split_code(&vd, &d);
+  int vn, n;
+  src1.split_code(&vn, &n);
+  int vm, m;
+  src2.split_code(&vm, &m);
+  int sz = 1;
+
+  // VSEL has a special (restricted) condition encoding.
+  //   eq(0b0000)... -> 0b00
+  //   ge(0b1010)... -> 0b10
+  //   gt(0b1100)... -> 0b11
+  //   vs(0b0110)... -> 0b01
+  // No other conditions are supported.
+  int vsel_cond = (cond >> 30) & 0x3;
+  if ((cond != eq) && (cond != ge) && (cond != gt) && (cond != vs)) {
+    // We can implement some other conditions by swapping the inputs.
+    DCHECK((cond == ne) | (cond == lt) | (cond == le) | (cond == vc));
+    std::swap(vn, vm);
+    std::swap(n, m);
+  }
+
+  emit(kSpecialCondition | 0x1C * B23 | d * B22 | vsel_cond * B20 | vn * B16 |
+       vd * B12 | 0x5 * B9 | sz * B8 | n * B7 | m * B5 | vm);
+}
+
+void Assembler::vsel(Condition cond, const SwVfpRegister dst,
+                     const SwVfpRegister src1, const SwVfpRegister src2) {
+  // cond=kSpecialCondition(31-28) | 11100(27-23) | D(22) |
+  // vsel_cond=XX(21-20) | Vn(19-16) | Vd(15-12) | 101(11-9) | sz=0(8) | N(7) |
+  // 0(6) | M(5) | 0(4) | Vm(3-0)
+  DCHECK(CpuFeatures::IsSupported(ARMv8));
+  int vd, d;
+  dst.split_code(&vd, &d);
+  int vn, n;
+  src1.split_code(&vn, &n);
+  int vm, m;
+  src2.split_code(&vm, &m);
+  int sz = 0;
+
+  // VSEL has a special (restricted) condition encoding.
+  //   eq(0b0000)... -> 0b00
+  //   ge(0b1010)... -> 0b10
+  //   gt(0b1100)... -> 0b11
+  //   vs(0b0110)... -> 0b01
+  // No other conditions are supported.
+  int vsel_cond = (cond >> 30) & 0x3;
+  if ((cond != eq) && (cond != ge) && (cond != gt) && (cond != vs)) {
+    // We can implement some other conditions by swapping the inputs.
+    DCHECK((cond == ne) | (cond == lt) | (cond == le) | (cond == vc));
+    std::swap(vn, vm);
+    std::swap(n, m);
+  }
+
+  emit(kSpecialCondition | 0x1C * B23 | d * B22 | vsel_cond * B20 | vn * B16 |
+       vd * B12 | 0x5 * B9 | sz * B8 | n * B7 | m * B5 | vm);
+}
 
 void Assembler::vsqrt(const DwVfpRegister dst,
                       const DwVfpRegister src,
diff --git a/src/arm/assembler-arm.h b/src/arm/assembler-arm.h
index 08ad64c..26e062b 100644
--- a/src/arm/assembler-arm.h
+++ b/src/arm/assembler-arm.h
@@ -57,6 +57,12 @@
 #define ALLOCATABLE_GENERAL_REGISTERS(V) \
   V(r0)  V(r1)  V(r2)  V(r3)  V(r4)  V(r5)  V(r6)  V(r7)  V(r8)
 
+#define FLOAT_REGISTERS(V)                                \
+  V(s0)  V(s1)  V(s2)  V(s3)  V(s4)  V(s5)  V(s6)  V(s7)  \
+  V(s8)  V(s9)  V(s10) V(s11) V(s12) V(s13) V(s14) V(s15) \
+  V(s16) V(s17) V(s18) V(s19) V(s20) V(s21) V(s22) V(s23) \
+  V(s24) V(s25) V(s26) V(s27) V(s28) V(s29) V(s30) V(s31)
+
 #define DOUBLE_REGISTERS(V)                               \
   V(d0)  V(d1)  V(d2)  V(d3)  V(d4)  V(d5)  V(d6)  V(d7)  \
   V(d8)  V(d9)  V(d10) V(d11) V(d12) V(d13) V(d14) V(d15) \
@@ -154,6 +160,10 @@
     DCHECK(is_valid());
     return 1 << reg_code;
   }
+  static SwVfpRegister from_code(int code) {
+    SwVfpRegister r = {code};
+    return r;
+  }
   void split_code(int* vm, int* m) const {
     DCHECK(is_valid());
     *m = reg_code & 0x1;
@@ -163,9 +173,10 @@
   int reg_code;
 };
 
+typedef SwVfpRegister FloatRegister;
 
 // Double word VFP register.
-struct DoubleRegister {
+struct DwVfpRegister {
   enum Code {
 #define REGISTER_CODE(R) kCode_##R,
     DOUBLE_REGISTERS(REGISTER_CODE)
@@ -187,7 +198,7 @@
   const char* ToString();
   bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
-  bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
+  bool is(DwVfpRegister reg) const { return reg_code == reg.reg_code; }
   int code() const {
     DCHECK(is_valid());
     return reg_code;
@@ -197,8 +208,8 @@
     return 1 << reg_code;
   }
 
-  static DoubleRegister from_code(int code) {
-    DoubleRegister r = {code};
+  static DwVfpRegister from_code(int code) {
+    DwVfpRegister r = {code};
     return r;
   }
   void split_code(int* vm, int* m) const {
@@ -211,7 +222,7 @@
 };
 
 
-typedef DoubleRegister DwVfpRegister;
+typedef DwVfpRegister DoubleRegister;
 
 
 // Double word VFP register d0-15.
@@ -1225,6 +1236,17 @@
             const Condition cond = al);
   void vcmp(const SwVfpRegister src1, const float src2,
             const Condition cond = al);
+
+  // VSEL supports cond in {eq, ne, ge, lt, gt, le, vs, vc}.
+  void vsel(const Condition cond,
+            const DwVfpRegister dst,
+            const DwVfpRegister src1,
+            const DwVfpRegister src2);
+  void vsel(const Condition cond,
+            const SwVfpRegister dst,
+            const SwVfpRegister src1,
+            const SwVfpRegister src2);
+
   void vsqrt(const DwVfpRegister dst,
              const DwVfpRegister src,
              const Condition cond = al);
@@ -1357,7 +1379,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   // Record the emission of a constant pool.
   //
diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
index 1fffcb6..031b483 100644
--- a/src/arm/builtins-arm.cc
+++ b/src/arm/builtins-arm.cc
@@ -604,16 +604,9 @@
     // r0: number of arguments
     // r1: constructor function
     // r3: new target
-    if (is_api_function) {
-      __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset));
-      Handle<Code> code =
-          masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ Call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(r0);
-      __ InvokeFunction(r1, r3, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+    ParameterCount actual(r0);
+    __ InvokeFunction(r1, r3, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -704,6 +697,140 @@
   Generate_JSConstructStubHelper(masm, false, false, true);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r0 : the value to pass to the generator
+  //  -- r1 : the JSGeneratorObject to resume
+  //  -- r2 : the resume mode (tagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(r1);
+
+  // Store input value into generator object.
+  __ str(r0, FieldMemOperand(r1, JSGeneratorObject::kInputOffset));
+  __ RecordWriteField(r1, JSGeneratorObject::kInputOffset, r0, r3,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ str(r2, FieldMemOperand(r1, JSGeneratorObject::kResumeModeOffset));
+
+  // Load suspended function and context.
+  __ ldr(cp, FieldMemOperand(r1, JSGeneratorObject::kContextOffset));
+  __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  __ mov(ip, Operand(step_in_enabled));
+  __ ldrb(ip, MemOperand(ip));
+  __ cmp(ip, Operand(0));
+  __ b(eq, &skip_flooding);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r1, r2, r4);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(r1, r2);
+    __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Push receiver.
+  __ ldr(ip, FieldMemOperand(r1, JSGeneratorObject::kReceiverOffset));
+  __ Push(ip);
+
+  // ----------- S t a t e -------------
+  //  -- r1    : the JSGeneratorObject to resume
+  //  -- r2    : the resume mode (tagged)
+  //  -- r4    : generator function
+  //  -- cp    : generator context
+  //  -- lr    : return address
+  //  -- sp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ ldr(r3, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
+  __ ldr(r3,
+         FieldMemOperand(r3, SharedFunctionInfo::kFormalParameterCountOffset));
+  {
+    Label done_loop, loop;
+    __ bind(&loop);
+    __ sub(r3, r3, Operand(Smi::FromInt(1)), SetCC);
+    __ b(mi, &done_loop);
+    __ PushRoot(Heap::kTheHoleValueRootIndex);
+    __ b(&loop);
+    __ bind(&done_loop);
+  }
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ ldr(r3, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
+  __ ldr(r3, FieldMemOperand(r3, SharedFunctionInfo::kFunctionDataOffset));
+  __ CompareObjectType(r3, r3, r3, BYTECODE_ARRAY_TYPE);
+  __ b(ne, &old_generator);
+
+  // New-style (ignition/turbofan) generator object
+  {
+    __ ldr(r0, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
+    __ ldr(r0,
+         FieldMemOperand(r0, SharedFunctionInfo::kFormalParameterCountOffset));
+    __ SmiUntag(r0);
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ Move(r3, r1);
+    __ Move(r1, r4);
+    __ ldr(r5, FieldMemOperand(r1, JSFunction::kCodeEntryOffset));
+    __ Jump(r5);
+  }
+
+  // Old-style (full-codegen) generator object
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    DCHECK(!FLAG_enable_embedded_constant_pool);
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ Push(lr, fp);
+    __ Move(fp, sp);
+    __ Push(cp, r4);
+
+    // Restore the operand stack.
+    __ ldr(r0, FieldMemOperand(r1, JSGeneratorObject::kOperandStackOffset));
+    __ ldr(r3, FieldMemOperand(r0, FixedArray::kLengthOffset));
+    __ add(r0, r0, Operand(FixedArray::kHeaderSize - kHeapObjectTag));
+    __ add(r3, r0, Operand(r3, LSL, kPointerSizeLog2 - 1));
+    {
+      Label done_loop, loop;
+      __ bind(&loop);
+      __ cmp(r0, r3);
+      __ b(eq, &done_loop);
+      __ ldr(ip, MemOperand(r0, kPointerSize, PostIndex));
+      __ Push(ip);
+      __ b(&loop);
+      __ bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ LoadRoot(ip, Heap::kEmptyFixedArrayRootIndex);
+    __ str(ip, FieldMemOperand(r1, JSGeneratorObject::kOperandStackOffset));
+
+    // Resume the generator function at the continuation.
+    __ ldr(r3, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
+    __ ldr(r3, FieldMemOperand(r3, SharedFunctionInfo::kCodeOffset));
+    __ add(r3, r3, Operand(Code::kHeaderSize - kHeapObjectTag));
+    __ ldr(r2, FieldMemOperand(r1, JSGeneratorObject::kContinuationOffset));
+    __ add(r3, r3, Operand(r2, ASR, 1));
+    __ mov(r2, Operand(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
+    __ str(r2, FieldMemOperand(r1, JSGeneratorObject::kContinuationOffset));
+    __ Move(r0, r1);  // Continuation expects generator object in r0.
+    __ Jump(r3);
+  }
+}
 
 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
   FrameScope scope(masm, StackFrame::INTERNAL);
@@ -832,7 +959,6 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
-
 // Generate code for entering a JS function with the interpreter.
 // On entry to the function the receiver and arguments have been pushed on the
 // stack left to right.  The actual argument count matches the formal parameter
@@ -850,14 +976,16 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
   FrameScope frame_scope(masm, StackFrame::MANUAL);
   __ PushStandardFrame(r1);
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into kInterpreterBytecodeRegister.
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ ldr(r0, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
   Register debug_info = kInterpreterBytecodeArrayRegister;
   DCHECK(!debug_info.is(r0));
@@ -869,8 +997,12 @@
   __ ldr(kInterpreterBytecodeArrayRegister,
          FieldMemOperand(debug_info, DebugInfo::kAbstractCodeIndex), ne);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ CompareRoot(kInterpreterBytecodeArrayRegister,
+                 Heap::kUndefinedValueRootIndex);
+  __ b(eq, &bytecode_array_not_present);
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ SmiTst(kInterpreterBytecodeArrayRegister);
     __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
     __ CompareObjectType(kInterpreterBytecodeArrayRegister, r0, no_reg,
@@ -878,8 +1010,12 @@
     __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
   }
 
-  // Push new.target, bytecode array and zero for bytecode array offset.
-  __ mov(r0, Operand(0));
+  // Load the initial bytecode offset.
+  __ mov(kInterpreterBytecodeOffsetRegister,
+         Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
+
+  // Push new.target, bytecode array and Smi tagged bytecode array offset.
+  __ SmiTag(r0, kInterpreterBytecodeOffsetRegister);
   __ Push(r3, kInterpreterBytecodeArrayRegister, r0);
 
   // Allocate the local and temporary register file on the stack.
@@ -911,18 +1047,8 @@
     __ b(&loop_header, ge);
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load accumulator, register file, bytecode offset, dispatch table into
-  // registers.
+  // Load accumulator and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ add(kInterpreterRegisterFileRegister, fp,
-         Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
-  __ mov(kInterpreterBytecodeOffsetRegister,
-         Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
   __ mov(kInterpreterDispatchTableRegister,
          Operand(ExternalReference::interpreter_dispatch_table_address(
              masm->isolate())));
@@ -932,35 +1058,33 @@
                          kInterpreterBytecodeOffsetRegister));
   __ ldr(ip, MemOperand(kInterpreterDispatchTableRegister, r1, LSL,
                         kPointerSizeLog2));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ add(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Call(ip);
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
-}
+  // The return value is in r0.
 
-
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
-
-  // The return value is in accumulator, which is already in r0.
+  // Get the arguments + reciever count.
+  __ ldr(r2, MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ ldr(r2, FieldMemOperand(r2, BytecodeArray::kParameterSizeOffset));
 
   // Leave the frame (also dropping the register file).
   __ LeaveFrame(StackFrame::JAVA_SCRIPT);
 
-  // Drop receiver + arguments and return.
-  __ ldr(ip, FieldMemOperand(kInterpreterBytecodeArrayRegister,
-                             BytecodeArray::kParameterSizeOffset));
-  __ add(sp, sp, ip, LeaveCC);
+  __ add(sp, sp, r2, LeaveCC);
   __ Jump(lr);
-}
 
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ bind(&bytecode_array_not_present);
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+  __ ldr(r4, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
+  __ ldr(r4, FieldMemOperand(r4, SharedFunctionInfo::kCodeOffset));
+  __ add(r4, r4, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ str(r4, FieldMemOperand(r1, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(r1, r4, r5);
+  __ Jump(r4);
+}
 
 static void Generate_InterpreterPushArgs(MacroAssembler* masm, Register index,
                                          Register limit, Register scratch) {
@@ -974,7 +1098,6 @@
   __ b(gt, &loop_header);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -1000,7 +1123,6 @@
           RelocInfo::CODE_TARGET);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm) {
   // ----------- S t a t e -------------
@@ -1025,25 +1147,24 @@
   __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
 }
 
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ Move(r2, masm->isolate()->builtins()->InterpreterEntryTrampoline());
+  __ add(lr, r2, Operand(interpreter_entry_return_pc_offset->value() +
+                         Code::kHeaderSize - kHeapObjectTag));
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register and dispatch table register.
-  __ add(kInterpreterRegisterFileRegister, fp,
-         Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+  // Initialize the dispatch table register.
   __ mov(kInterpreterDispatchTableRegister,
          Operand(ExternalReference::interpreter_dispatch_table_address(
              masm->isolate())));
 
-  // Get the context from the frame.
-  __ ldr(kContextRegister,
-         MemOperand(kInterpreterRegisterFileRegister,
-                    InterpreterFrameConstants::kContextFromRegisterPointer));
-
   // Get the bytecode array pointer from the frame.
-  __ ldr(
-      kInterpreterBytecodeArrayRegister,
-      MemOperand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+  __ ldr(kInterpreterBytecodeArrayRegister,
+         MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -1056,9 +1177,7 @@
 
   // Get the target bytecode offset from the frame.
   __ ldr(kInterpreterBytecodeOffsetRegister,
-         MemOperand(
-             kInterpreterRegisterFileRegister,
-             InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+         MemOperand(fp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiUntag(kInterpreterBytecodeOffsetRegister);
 
   // Dispatch to the target bytecode.
@@ -1066,63 +1185,169 @@
                          kInterpreterBytecodeOffsetRegister));
   __ ldr(ip, MemOperand(kInterpreterDispatchTableRegister, r1, LSL,
                         kPointerSizeLog2));
-  __ add(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ mov(pc, ip);
 }
 
-
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ mov(r1, Operand(Smi::FromInt(static_cast<int>(type))));
-    __ push(r1);
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register.
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ Move(lr, masm->isolate()->builtins()->InterpreterEntryTrampoline());
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r0 : argument count (preserved for callee)
+  //  -- r3 : new target (preserved for callee)
+  //  -- r1 : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime, gotta_call_runtime_no_stack;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register argument_count = r0;
+  Register closure = r1;
+  Register new_target = r3;
+  __ push(argument_count);
+  __ push(new_target);
+  __ push(closure);
+
+  Register map = argument_count;
+  Register index = r2;
+  __ ldr(map, FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ ldr(map,
+         FieldMemOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ ldr(index, FieldMemOperand(map, FixedArray::kLengthOffset));
+  __ cmp(index, Operand(Smi::FromInt(2)));
+  __ b(lt, &gotta_call_runtime);
+
+  // Find literals.
+  // r3  : native context
+  // r2  : length / index
+  // r0  : optimized code map
+  // stack[0] : new target
+  // stack[4] : closure
+  Register native_context = r3;
+  __ ldr(native_context, NativeContextMemOperand());
+
+  __ bind(&loop_top);
+  Register temp = r1;
+  Register array_pointer = r5;
+
+  // Does the native context match?
+  __ add(array_pointer, map, Operand::PointerOffsetFromSmiKey(index));
+  __ ldr(temp, FieldMemOperand(array_pointer,
+                               SharedFunctionInfo::kOffsetToPreviousContext));
+  __ ldr(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ cmp(temp, native_context);
+  __ b(ne, &loop_bottom);
+  // OSR id set to none?
+  __ ldr(temp, FieldMemOperand(array_pointer,
+                               SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  const int bailout_id = BailoutId::None().ToInt();
+  __ cmp(temp, Operand(Smi::FromInt(bailout_id)));
+  __ b(ne, &loop_bottom);
+  // Literals available?
+  __ ldr(temp, FieldMemOperand(array_pointer,
+                               SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ ldr(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ ldr(r4, MemOperand(sp, 0));
+  __ str(temp, FieldMemOperand(r4, JSFunction::kLiteralsOffset));
+  __ push(index);
+  __ RecordWriteField(r4, JSFunction::kLiteralsOffset, temp, index,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  __ pop(index);
+
+  // Code available?
+  Register entry = r4;
+  __ ldr(entry,
+         FieldMemOperand(array_pointer,
+                         SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ ldr(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  __ pop(closure);
+  // Store code entry in the closure.
+  __ add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+
+  Label install_optimized_code_and_tailcall;
+  __ bind(&install_optimized_code_and_tailcall);
+  __ str(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(closure, entry, r5);
+
+  // Link the closure into the optimized function list.
+  // r4 : code entry
+  // r3 : native context
+  // r1 : closure
+  __ ldr(r5,
+         ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ str(r5, FieldMemOperand(closure, JSFunction::kNextFunctionLinkOffset));
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, r5, r0,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ str(closure,
+         ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  // Save closure before the write barrier.
+  __ mov(r5, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, closure, r0,
+                            kLRHasNotBeenSaved, kDontSaveFPRegs);
+  __ mov(closure, r5);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ Jump(entry);
+
+  __ bind(&loop_bottom);
+  __ sub(index, index, Operand(Smi::FromInt(SharedFunctionInfo::kEntryLength)));
+  __ cmp(index, Operand(Smi::FromInt(1)));
+  __ b(gt, &loop_top);
+
+  // We found neither literals nor code.
+  __ jmp(&gotta_call_runtime);
+
+  __ bind(&maybe_call_runtime);
+  __ pop(closure);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ ldr(entry, FieldMemOperand(map, FixedArray::kHeaderSize +
+                                         SharedFunctionInfo::kSharedCodeIndex));
+  __ ldr(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ jmp(&install_optimized_code_and_tailcall);
+
+  __ bind(&try_shared);
+  __ pop(new_target);
+  __ pop(argument_count);
+  // Is the full code valid?
+  __ ldr(entry,
+         FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ ldr(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ ldr(r5, FieldMemOperand(entry, Code::kFlagsOffset));
+  __ and_(r5, r5, Operand(Code::KindField::kMask));
+  __ mov(r5, Operand(r5, LSR, Code::KindField::kShift));
+  __ cmp(r5, Operand(Code::BUILTIN));
+  __ b(eq, &gotta_call_runtime_no_stack);
+  // Yes, install the full code.
+  __ add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ str(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(closure, entry, r5);
+  __ Jump(entry);
+
+  __ bind(&gotta_call_runtime);
+  __ pop(closure);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ bind(&gotta_call_runtime_no_stack);
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
 
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
@@ -1252,14 +1477,17 @@
   __ SmiUntag(r6);
   // Switch on the state.
   Label with_tos_register, unknown_state;
-  __ cmp(r6, Operand(FullCodeGenerator::NO_REGISTERS));
+  __ cmp(r6,
+         Operand(static_cast<int>(Deoptimizer::BailoutState::NO_REGISTERS)));
   __ b(ne, &with_tos_register);
   __ add(sp, sp, Operand(1 * kPointerSize));  // Remove state.
   __ Ret();
 
   __ bind(&with_tos_register);
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), r0.code());
   __ ldr(r0, MemOperand(sp, 1 * kPointerSize));
-  __ cmp(r6, Operand(FullCodeGenerator::TOS_REG));
+  __ cmp(r6,
+         Operand(static_cast<int>(Deoptimizer::BailoutState::TOS_REGISTER)));
   __ b(ne, &unknown_state);
   __ add(sp, sp, Operand(2 * kPointerSize));  // Remove state.
   __ Ret();
@@ -1474,28 +1702,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- r0    : argc
-  //  -- sp[0] : first argument (left-hand side)
-  //  -- sp[4] : receiver (right-hand side)
-  // -----------------------------------
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ ldr(InstanceOfDescriptor::LeftRegister(),
-           MemOperand(fp, 2 * kPointerSize));  // Load left-hand side.
-    __ ldr(InstanceOfDescriptor::RightRegister(),
-           MemOperand(fp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ Ret(2);
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- r0    : argc
@@ -2387,6 +2593,30 @@
           RelocInfo::CODE_TARGET);
 }
 
+// static
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r1 : requested object size (untagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ SmiTag(r1);
+  __ Push(r1);
+  __ Move(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
+}
+
+// static
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r1 : requested object size (untagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ SmiTag(r1);
+  __ Move(r2, Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ Push(r1, r2);
+  __ Move(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
+}
 
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
index 31e3e95..0224f9d 100644
--- a/src/arm/code-stubs-arm.cc
+++ b/src/arm/code-stubs-arm.cc
@@ -55,12 +55,6 @@
 }
 
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -73,11 +67,6 @@
 }
 
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(r0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -1072,8 +1061,6 @@
   }
   // Result returned in r0, r1:r0 or r2:r1:r0 - do not destroy these registers!
 
-  __ VFPEnsureFPSCRState(r3);
-
   // Check result for exception sentinel.
   Label exception_returned;
   __ CompareRoot(r0, Heap::kExceptionRootIndex);
@@ -1183,7 +1170,6 @@
   __ vstm(db_w, sp, kFirstCalleeSavedDoubleReg, kLastCalleeSavedDoubleReg);
   // Set up the reserved register for 0.0.
   __ vmov(kDoubleRegZero, 0.0);
-  __ VFPEnsureFPSCRState(r4);
 
   // Get address of argv, see stm above.
   // r0: code entry
@@ -1333,126 +1319,6 @@
 }
 
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = r1;              // Object (lhs).
-  Register const function = r0;            // Function (rhs).
-  Register const object_map = r2;          // Map of {object}.
-  Register const function_map = r3;        // Map of {function}.
-  Register const function_prototype = r4;  // Prototype of {function}.
-  Register const scratch = r5;
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ ldr(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ CompareRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ b(ne, &fast_case);
-  __ CompareRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-  __ b(ne, &fast_case);
-  __ LoadRoot(r0, Heap::kInstanceofCacheAnswerRootIndex);
-  __ Ret();
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ CompareObjectType(function, function_map, scratch, JS_FUNCTION_TYPE);
-  __ b(ne, &slow_case);
-  __ LoadRoot(r0, Heap::kFalseValueRootIndex);
-  __ Ret();
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ CompareObjectType(function, function_map, scratch, JS_FUNCTION_TYPE);
-  __ b(ne, &slow_case);
-
-  // Go to the runtime if the function is not a constructor.
-  __ ldrb(scratch, FieldMemOperand(function_map, Map::kBitFieldOffset));
-  __ tst(scratch, Operand(1 << Map::kIsConstructor));
-  __ b(eq, &slow_case);
-
-  // Ensure that {function} has an instance prototype.
-  __ tst(scratch, Operand(1 << Map::kHasNonInstancePrototype));
-  __ b(ne, &slow_case);
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ ldr(function_prototype,
-         FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  __ CompareObjectType(function_prototype, scratch, scratch, MAP_TYPE);
-  __ b(ne, &function_prototype_valid);
-  __ ldr(function_prototype,
-         FieldMemOperand(function_prototype, Map::kPrototypeOffset));
-  __ bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Register const object_instance_type = function_map;
-  Register const map_bit_field = function_map;
-  Register const null = scratch;
-  Register const result = r0;
-
-  Label done, loop, fast_runtime_fallback;
-  __ LoadRoot(result, Heap::kTrueValueRootIndex);
-  __ LoadRoot(null, Heap::kNullValueRootIndex);
-  __ bind(&loop);
-
-  // Check if the object needs to be access checked.
-  __ ldrb(map_bit_field, FieldMemOperand(object_map, Map::kBitFieldOffset));
-  __ tst(map_bit_field, Operand(1 << Map::kIsAccessCheckNeeded));
-  __ b(ne, &fast_runtime_fallback);
-  // Check if the current object is a Proxy.
-  __ CompareInstanceType(object_map, object_instance_type, JS_PROXY_TYPE);
-  __ b(eq, &fast_runtime_fallback);
-
-  __ ldr(object, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ cmp(object, function_prototype);
-  __ b(eq, &done);
-  __ cmp(object, null);
-  __ ldr(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ b(ne, &loop);
-  __ LoadRoot(result, Heap::kFalseValueRootIndex);
-  __ bind(&done);
-  __ StoreRoot(result, Heap::kInstanceofCacheAnswerRootIndex);
-  __ Ret();
-
-  // Found Proxy or access check needed: Call the runtime
-  __ bind(&fast_runtime_fallback);
-  __ Push(object, function_prototype);
-  // Invalidate the instanceof cache.
-  __ Move(scratch, Smi::FromInt(0));
-  __ StoreRoot(scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ Push(object, function);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
-
 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
   Label miss;
   Register receiver = LoadDescriptor::ReceiverRegister();
@@ -3227,7 +3093,6 @@
   // GC safe. The RegExp backend also relies on this.
   __ str(lr, MemOperand(sp, 0));
   __ blx(ip);  // Call the C++ function.
-  __ VFPEnsureFPSCRState(r2);
   __ ldr(pc, MemOperand(sp, 0));
 }
 
@@ -3839,8 +3704,8 @@
   __ bind(&not_array);
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ b(ne, &miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
                                                receiver, name, feedback,
                                                receiver_map, scratch1, r9);
@@ -3984,8 +3849,8 @@
   __ bind(&not_array);
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ b(ne, &miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(
       masm, Code::STORE_IC, code_flags, receiver, key, feedback, receiver_map,
       scratch1, scratch2);
@@ -4562,15 +4427,15 @@
   __ bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ str(r2, MemOperand(r0, JSObject::kMapOffset));
+  __ str(r2, FieldMemOperand(r0, JSObject::kMapOffset));
   __ LoadRoot(r3, Heap::kEmptyFixedArrayRootIndex);
-  __ str(r3, MemOperand(r0, JSObject::kPropertiesOffset));
-  __ str(r3, MemOperand(r0, JSObject::kElementsOffset));
+  __ str(r3, FieldMemOperand(r0, JSObject::kPropertiesOffset));
+  __ str(r3, FieldMemOperand(r0, JSObject::kElementsOffset));
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
-  __ add(r1, r0, Operand(JSObject::kHeaderSize));
+  __ add(r1, r0, Operand(JSObject::kHeaderSize - kHeapObjectTag));
 
   // ----------- S t a t e -------------
-  //  -- r0 : result (untagged)
+  //  -- r0 : result (tagged)
   //  -- r1 : result fields (untagged)
   //  -- r5 : result end (untagged)
   //  -- r2 : initial map
@@ -4588,10 +4453,6 @@
   {
     // Initialize all in-object fields with undefined.
     __ InitializeFieldsWithFiller(r1, r5, r6);
-
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ add(r0, r0, Operand(kHeapObjectTag));
     __ Ret();
   }
   __ bind(&slack_tracking);
@@ -4610,10 +4471,6 @@
     __ LoadRoot(r6, Heap::kOnePointerFillerMapRootIndex);
     __ InitializeFieldsWithFiller(r1, r5, r6);
 
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ add(r0, r0, Operand(kHeapObjectTag));
-
     // Check if we can finalize the instance size.
     STATIC_ASSERT(Map::kSlackTrackingCounterEnd == 1);
     __ tst(r3, Operand(Map::ConstructionCounter::kMask));
@@ -4640,10 +4497,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(r2);
   }
-  STATIC_ASSERT(kHeapObjectTag == 1);
-  __ sub(r0, r0, Operand(kHeapObjectTag));
   __ ldrb(r5, FieldMemOperand(r2, Map::kInstanceSizeOffset));
   __ add(r5, r0, Operand(r5, LSL, kPointerSizeLog2));
+  STATIC_ASSERT(kHeapObjectTag == 1);
+  __ sub(r5, r5, Operand(kHeapObjectTag));
   __ b(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4662,20 +4519,20 @@
   // -----------------------------------
   __ AssertFunction(r1);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make r2 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ mov(r2, fp);
-    __ b(&loop_entry);
-    __ bind(&loop);
+  // Make r2 point to the JavaScript frame.
+  __ mov(r2, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ ldr(r2, MemOperand(r2, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ ldr(ip, MemOperand(r2, StandardFrameConstants::kFunctionOffset));
     __ cmp(ip, r1);
-    __ b(ne, &loop);
+    __ b(eq, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4706,7 +4563,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, r0, r1, r2, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, r0, r1, r2, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the rest parameter array in r0.
@@ -4748,7 +4605,7 @@
     Label allocate, done_allocate;
     __ mov(r1, Operand(JSArray::kSize + FixedArray::kHeaderSize));
     __ add(r1, r1, Operand(r0, LSL, kPointerSizeLog2 - 1));
-    __ Allocate(r1, r3, r4, r5, &allocate, TAG_OBJECT);
+    __ Allocate(r1, r3, r4, r5, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in r3.
@@ -4804,23 +4661,40 @@
   // -----------------------------------
   __ AssertFunction(r1);
 
+  // Make r9 point to the JavaScript frame.
+  __ mov(r9, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ ldr(r9, MemOperand(r9, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ ldr(ip, MemOperand(r9, StandardFrameConstants::kFunctionOffset));
+    __ cmp(ip, r1);
+    __ b(eq, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
+  }
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
   __ ldr(r2, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
   __ ldr(r2,
          FieldMemOperand(r2, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ add(r3, fp, Operand(r2, LSL, kPointerSizeLog2 - 1));
+  __ add(r3, r9, Operand(r2, LSL, kPointerSizeLog2 - 1));
   __ add(r3, r3, Operand(StandardFrameConstants::kCallerSPOffset));
 
   // r1 : function
   // r2 : number of parameters (tagged)
   // r3 : parameters pointer
+  // r9 : JavaScript frame pointer
   // Registers used over whole function:
   //  r5 : arguments count (tagged)
   //  r6 : mapped parameter count (tagged)
 
   // Check if the calling frame is an arguments adaptor frame.
   Label adaptor_frame, try_allocate, runtime;
-  __ ldr(r4, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
+  __ ldr(r4, MemOperand(r9, StandardFrameConstants::kCallerFPOffset));
   __ ldr(r0, MemOperand(r4, CommonFrameConstants::kContextOrFrameTypeOffset));
   __ cmp(r0, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
   __ b(eq, &adaptor_frame);
@@ -4863,7 +4737,7 @@
   __ add(r9, r9, Operand(JSSloppyArgumentsObject::kSize));
 
   // Do the allocation of all three objects in one go.
-  __ Allocate(r9, r0, r9, r4, &runtime, TAG_OBJECT);
+  __ Allocate(r9, r0, r9, r4, &runtime, NO_ALLOCATION_FLAGS);
 
   // r0 = address of new object(s) (tagged)
   // r2 = argument count (smi-tagged)
@@ -5009,20 +4883,20 @@
   // -----------------------------------
   __ AssertFunction(r1);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make r2 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ mov(r2, fp);
-    __ b(&loop_entry);
-    __ bind(&loop);
+  // Make r2 point to the JavaScript frame.
+  __ mov(r2, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ ldr(r2, MemOperand(r2, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ ldr(ip, MemOperand(r2, StandardFrameConstants::kFunctionOffset));
     __ cmp(ip, r1);
-    __ b(ne, &loop);
+    __ b(eq, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -5060,7 +4934,7 @@
   Label allocate, done_allocate;
   __ mov(r1, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
   __ add(r1, r1, Operand(r0, LSL, kPointerSizeLog2 - 1));
-  __ Allocate(r1, r3, r4, r5, &allocate, TAG_OBJECT);
+  __ Allocate(r1, r3, r4, r5, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in r3.
@@ -5423,7 +5297,11 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
+
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
 
   // context save
   __ push(context);
@@ -5457,7 +5335,7 @@
 
   // Allocate the v8::Arguments structure in the arguments' space since
   // it's not controlled by GC.
-  const int kApiStackSpace = 4;
+  const int kApiStackSpace = 3;
 
   FrameScope frame_scope(masm, StackFrame::MANUAL);
   __ EnterExitFrame(false, kApiStackSpace);
@@ -5474,9 +5352,6 @@
   // FunctionCallbackInfo::length_ = argc
   __ mov(ip, Operand(argc()));
   __ str(ip, MemOperand(r0, 2 * kPointerSize));
-  // FunctionCallbackInfo::is_construct_call_ = 0
-  __ mov(ip, Operand::Zero());
-  __ str(ip, MemOperand(r0, 3 * kPointerSize));
 
   ExternalReference thunk_ref =
       ExternalReference::invoke_function_callback(masm->isolate());
@@ -5493,8 +5368,8 @@
   }
   MemOperand return_value_operand(fp, return_value_offset * kPointerSize);
   int stack_space = 0;
-  MemOperand is_construct_call_operand = MemOperand(sp, 4 * kPointerSize);
-  MemOperand* stack_space_operand = &is_construct_call_operand;
+  MemOperand length_operand = MemOperand(sp, 3 * kPointerSize);
+  MemOperand* stack_space_operand = &length_operand;
   stack_space = argc() + FCA::kArgsLength + 1;
   stack_space_operand = NULL;
 
@@ -5505,16 +5380,36 @@
 
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- sp[0]                        : name
-  //  -- sp[4 .. (4 + kArgsLength*4)] : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- r2                           : api_function_address
-  // -----------------------------------
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
 
-  Register api_function_address = ApiGetterDescriptor::function_address();
-  DCHECK(api_function_address.is(r2));
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
+  Register scratch = r4;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
 
+  Register api_function_address = r2;
+
+  __ push(receiver);
+  // Push data from AccessorInfo.
+  __ ldr(scratch, FieldMemOperand(callback, AccessorInfo::kDataOffset));
+  __ push(scratch);
+  __ LoadRoot(scratch, Heap::kUndefinedValueRootIndex);
+  __ Push(scratch, scratch);
+  __ mov(scratch, Operand(ExternalReference::isolate_address(isolate())));
+  __ Push(scratch, holder);
+  __ Push(Smi::FromInt(0));  // should_throw_on_error -> false
+  __ ldr(scratch, FieldMemOperand(callback, AccessorInfo::kNameOffset));
+  __ push(scratch);
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
 
@@ -5534,6 +5429,10 @@
   ExternalReference thunk_ref =
       ExternalReference::invoke_accessor_getter_callback(isolate());
 
+  __ ldr(scratch, FieldMemOperand(callback, AccessorInfo::kJsGetterOffset));
+  __ ldr(api_function_address,
+         FieldMemOperand(scratch, Foreign::kForeignAddressOffset));
+
   // +3 is to skip prolog, return address and name handle.
   MemOperand return_value_operand(
       fp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize);
@@ -5541,7 +5440,6 @@
                            kStackUnwindSpace, NULL, return_value_operand, NULL);
 }
 
-
 #undef __
 
 }  // namespace internal
diff --git a/src/arm/codegen-arm.cc b/src/arm/codegen-arm.cc
index 7e1a550..4014aba 100644
--- a/src/arm/codegen-arm.cc
+++ b/src/arm/codegen-arm.cc
@@ -450,6 +450,7 @@
   __ mov(lr, Operand(length, LSL, 2));
   __ add(lr, lr, Operand(FixedDoubleArray::kHeaderSize));
   __ Allocate(lr, array, elements, scratch2, &gc_required, DOUBLE_ALIGNMENT);
+  __ sub(array, array, Operand(kHeapObjectTag));
   // array: destination FixedDoubleArray, not tagged as heap object.
   __ ldr(elements, FieldMemOperand(receiver, JSObject::kElementsOffset));
   // r4: source FixedArray.
@@ -594,11 +595,13 @@
   __ add(array_size, array_size, Operand(length, LSL, 1));
   __ Allocate(array_size, array, allocate_scratch, scratch, &gc_required,
               NO_ALLOCATION_FLAGS);
-  // array: destination FixedArray, not tagged as heap object
+  // array: destination FixedArray, tagged as heap object
   // Set destination FixedDoubleArray's length and map.
   __ LoadRoot(scratch, Heap::kFixedArrayMapRootIndex);
-  __ str(length, MemOperand(array, FixedDoubleArray::kLengthOffset));
-  __ str(scratch, MemOperand(array, HeapObject::kMapOffset));
+  __ str(length, FieldMemOperand(array, FixedDoubleArray::kLengthOffset));
+  __ str(scratch, FieldMemOperand(array, HeapObject::kMapOffset));
+
+  __ sub(array, array, Operand(kHeapObjectTag));
 
   // Prepare for conversion loop.
   Register src_elements = elements;
diff --git a/src/arm/disasm-arm.cc b/src/arm/disasm-arm.cc
index 287152a..20a898e 100644
--- a/src/arm/disasm-arm.cc
+++ b/src/arm/disasm-arm.cc
@@ -1869,6 +1869,48 @@
         Unknown(instr);
       }
       break;
+    case 0x1C:
+      if ((instr->Bits(11, 9) == 0x5) && (instr->Bit(6) == 0) &&
+          (instr->Bit(4) == 0)) {
+        // VSEL* (floating-point)
+        bool dp_operation = (instr->SzValue() == 1);
+        switch (instr->Bits(21, 20)) {
+          case 0x0:
+            if (dp_operation) {
+              Format(instr, "vseleq.f64 'Dd, 'Dn, 'Dm");
+            } else {
+              Format(instr, "vseleq.f32 'Sd, 'Sn, 'Sm");
+            }
+            break;
+          case 0x1:
+            if (dp_operation) {
+              Format(instr, "vselvs.f64 'Dd, 'Dn, 'Dm");
+            } else {
+              Format(instr, "vselvs.f32 'Sd, 'Sn, 'Sm");
+            }
+            break;
+          case 0x2:
+            if (dp_operation) {
+              Format(instr, "vselge.f64 'Dd, 'Dn, 'Dm");
+            } else {
+              Format(instr, "vselge.f32 'Sd, 'Sn, 'Sm");
+            }
+            break;
+          case 0x3:
+            if (dp_operation) {
+              Format(instr, "vselgt.f64 'Dd, 'Dn, 'Dm");
+            } else {
+              Format(instr, "vselgt.f32 'Sd, 'Sn, 'Sm");
+            }
+            break;
+          default:
+            UNREACHABLE();  // Case analysis is exhaustive.
+            break;
+        }
+      } else {
+        Unknown(instr);
+      }
+      break;
     default:
       Unknown(instr);
       break;
diff --git a/src/arm/interface-descriptors-arm.cc b/src/arm/interface-descriptors-arm.cc
index b6cac76..4e8c95c 100644
--- a/src/arm/interface-descriptors-arm.cc
+++ b/src/arm/interface-descriptors-arm.cc
@@ -48,16 +48,11 @@
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return r0; }
 
 
-const Register InstanceOfDescriptor::LeftRegister() { return r1; }
-const Register InstanceOfDescriptor::RightRegister() { return r0; }
-
-
 const Register StringCompareDescriptor::LeftRegister() { return r1; }
 const Register StringCompareDescriptor::RightRegister() { return r0; }
 
-
-const Register ApiGetterDescriptor::function_address() { return r2; }
-
+const Register ApiGetterDescriptor::HolderRegister() { return r0; }
+const Register ApiGetterDescriptor::CallbackRegister() { return r3; }
 
 const Register MathPowTaggedDescriptor::exponent() { return r2; }
 
@@ -70,6 +65,8 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return r0; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return r3; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return r0; }
+const Register HasPropertyDescriptor::KeyRegister() { return r3; }
 
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -248,13 +245,16 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {r0};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  // register state
+  // r0 -- number of arguments
+  // r1 -- function
+  // r2 -- allocation site with elements kind
+  Register registers[] = {r1, r2, r0};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
@@ -318,6 +318,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {r1};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -398,9 +403,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister,
-      kInterpreterDispatchTableRegister};
+      kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+      kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -435,6 +439,16 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      r0,  // the value to pass to the generator
+      r1,  // the JSGeneratorObject to resume
+      r2   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
index 6af3d6c..d723251 100644
--- a/src/arm/macro-assembler-arm.cc
+++ b/src/arm/macro-assembler-arm.cc
@@ -355,37 +355,6 @@
 }
 
 
-void MacroAssembler::Usat(Register dst, int satpos, const Operand& src,
-                          Condition cond) {
-  if (!CpuFeatures::IsSupported(ARMv7) || predictable_code_size()) {
-    DCHECK(!dst.is(pc) && !src.rm().is(pc));
-    DCHECK((satpos >= 0) && (satpos <= 31));
-
-    // These asserts are required to ensure compatibility with the ARMv7
-    // implementation.
-    DCHECK((src.shift_op() == ASR) || (src.shift_op() == LSL));
-    DCHECK(src.rs().is(no_reg));
-
-    Label done;
-    int satval = (1 << satpos) - 1;
-
-    if (cond != al) {
-      b(NegateCondition(cond), &done);  // Skip saturate if !condition.
-    }
-    if (!(src.is_reg() && dst.is(src.rm()))) {
-      mov(dst, src);
-    }
-    tst(dst, Operand(~satval));
-    b(eq, &done);
-    mov(dst, Operand::Zero(), LeaveCC, mi);  // 0 if negative.
-    mov(dst, Operand(satval), LeaveCC, pl);  // satval if positive.
-    bind(&done);
-  } else {
-    usat(dst, satpos, src, cond);
-  }
-}
-
-
 void MacroAssembler::Load(Register dst,
                           const MemOperand& src,
                           Representation r) {
@@ -889,10 +858,8 @@
   // below doesn't support it yet.
   DCHECK((src.am() != PreIndex) && (src.am() != NegPreIndex));
 
-  // Generate two ldr instructions if ldrd is not available.
-  if (CpuFeatures::IsSupported(ARMv7) && !predictable_code_size() &&
-      (dst1.code() % 2 == 0) && (dst1.code() + 1 == dst2.code())) {
-    CpuFeatureScope scope(this, ARMv7);
+  // Generate two ldr instructions if ldrd is not applicable.
+  if ((dst1.code() % 2 == 0) && (dst1.code() + 1 == dst2.code())) {
     ldrd(dst1, dst2, src, cond);
   } else {
     if ((src.am() == Offset) || (src.am() == NegOffset)) {
@@ -930,10 +897,8 @@
   // below doesn't support it yet.
   DCHECK((dst.am() != PreIndex) && (dst.am() != NegPreIndex));
 
-  // Generate two str instructions if strd is not available.
-  if (CpuFeatures::IsSupported(ARMv7) && !predictable_code_size() &&
-      (src1.code() % 2 == 0) && (src1.code() + 1 == src2.code())) {
-    CpuFeatureScope scope(this, ARMv7);
+  // Generate two str instructions if strd is not applicable.
+  if ((src1.code() % 2 == 0) && (src1.code() + 1 == src2.code())) {
     strd(src1, src2, dst, cond);
   } else {
     MemOperand dst2(dst);
@@ -950,30 +915,12 @@
   }
 }
 
-
-void MacroAssembler::VFPEnsureFPSCRState(Register scratch) {
-  // If needed, restore wanted bits of FPSCR.
-  Label fpscr_done;
-  vmrs(scratch);
-  if (emit_debug_code()) {
-    Label rounding_mode_correct;
-    tst(scratch, Operand(kVFPRoundingModeMask));
-    b(eq, &rounding_mode_correct);
-    // Don't call Assert here, since Runtime_Abort could re-enter here.
-    stop("Default rounding mode not set");
-    bind(&rounding_mode_correct);
-  }
-  tst(scratch, Operand(kVFPDefaultNaNModeControlBit));
-  b(ne, &fpscr_done);
-  orr(scratch, scratch, Operand(kVFPDefaultNaNModeControlBit));
-  vmsr(scratch);
-  bind(&fpscr_done);
-}
-
-
 void MacroAssembler::VFPCanonicalizeNaN(const DwVfpRegister dst,
                                         const DwVfpRegister src,
                                         const Condition cond) {
+  // Subtracting 0.0 preserves all inputs except for signalling NaNs, which
+  // become quiet NaNs. We use vsub rather than vadd because vsub preserves -0.0
+  // inputs: -0.0 + 0.0 = 0.0, but -0.0 - 0.0 = -0.0.
   vsub(dst, src, kDoubleRegZero, cond);
 }
 
@@ -2003,6 +1950,7 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -2090,26 +2038,29 @@
       shift += 8;
       Operand bits_operand(bits);
       DCHECK(bits_operand.instructions_required(this) == 1);
-      add(result_end, source, bits_operand, SetCC, cond);
+      add(result_end, source, bits_operand, LeaveCC, cond);
       source = result_end;
       cond = cc;
     }
   }
-  b(cs, gc_required);
+
   cmp(result_end, Operand(alloc_limit));
   b(hi, gc_required);
-  str(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    add(result, result, Operand(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    str(result_end, MemOperand(top_address));
   }
+
+  // Tag object.
+  add(result, result, Operand(kHeapObjectTag));
 }
 
 
 void MacroAssembler::Allocate(Register object_size, Register result,
                               Register result_end, Register scratch,
                               Label* gc_required, AllocationFlags flags) {
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -2185,7 +2136,7 @@
   } else {
     add(result_end, result, Operand(object_size), SetCC);
   }
-  b(cs, gc_required);
+
   cmp(result_end, Operand(alloc_limit));
   b(hi, gc_required);
 
@@ -2194,14 +2145,122 @@
     tst(result_end, Operand(kObjectAlignmentMask));
     Check(eq, kUnalignedAllocationInNewSpace);
   }
-  str(result_end, MemOperand(top_address));
-
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    add(result, result, Operand(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    str(result_end, MemOperand(top_address));
   }
+
+  // Tag object.
+  add(result, result, Operand(kHeapObjectTag));
 }
 
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, Register scratch,
+                                  AllocationFlags flags) {
+  // |object_size| and |result_end| may overlap if the DOUBLE_ALIGNMENT flag
+  // is not specified. Other registers must not overlap.
+  DCHECK(!AreAliased(object_size, result, scratch, ip));
+  DCHECK(!AreAliased(result_end, result, scratch, ip));
+  DCHECK((flags & DOUBLE_ALIGNMENT) == 0 || !object_size.is(result_end));
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  Register top_address = scratch;
+  mov(top_address, Operand(allocation_top));
+  ldr(result, MemOperand(top_address));
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    // Align the next allocation. Storing the filler map without checking top is
+    // safe in new-space because the limit of the heap is aligned there.
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    and_(result_end, result, Operand(kDoubleAlignmentMask), SetCC);
+    Label aligned;
+    b(eq, &aligned);
+    mov(result_end, Operand(isolate()->factory()->one_pointer_filler_map()));
+    str(result_end, MemOperand(result, kDoubleSize / 2, PostIndex));
+    bind(&aligned);
+  }
+
+  // Calculate new top using result. Object size may be in words so a shift is
+  // required to get the number of bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    add(result_end, result, Operand(object_size, LSL, kPointerSizeLog2), SetCC);
+  } else {
+    add(result_end, result, Operand(object_size), SetCC);
+  }
+
+  // Update allocation top. result temporarily holds the new top.
+  if (emit_debug_code()) {
+    tst(result_end, Operand(kObjectAlignmentMask));
+    Check(eq, kUnalignedAllocationInNewSpace);
+  }
+  // The top pointer is not updated for allocation folding dominators.
+  str(result_end, MemOperand(top_address));
+
+  add(result, result, Operand(kHeapObjectTag));
+}
+
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register scratch1, Register scratch2,
+                                  AllocationFlags flags) {
+  DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK(!AreAliased(result, scratch1, scratch2, ip));
+
+  // Make object size into bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    object_size *= kPointerSize;
+  }
+  DCHECK_EQ(0, object_size & kObjectAlignmentMask);
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  // Set up allocation top address register.
+  Register top_address = scratch1;
+  Register result_end = scratch2;
+  mov(top_address, Operand(allocation_top));
+  ldr(result, MemOperand(top_address));
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    // Align the next allocation. Storing the filler map without checking top is
+    // safe in new-space because the limit of the heap is aligned there.
+    STATIC_ASSERT(kPointerAlignment * 2 == kDoubleAlignment);
+    and_(result_end, result, Operand(kDoubleAlignmentMask), SetCC);
+    Label aligned;
+    b(eq, &aligned);
+    mov(result_end, Operand(isolate()->factory()->one_pointer_filler_map()));
+    str(result_end, MemOperand(result, kDoubleSize / 2, PostIndex));
+    bind(&aligned);
+  }
+
+  // Calculate new top using result. Object size may be in words so a shift is
+  // required to get the number of bytes. We must preserve the ip register at
+  // this point, so we cannot just use add().
+  DCHECK(object_size > 0);
+  Register source = result;
+  Condition cond = al;
+  int shift = 0;
+  while (object_size != 0) {
+    if (((object_size >> shift) & 0x03) == 0) {
+      shift += 2;
+    } else {
+      int bits = object_size & (0xff << shift);
+      object_size -= bits;
+      shift += 8;
+      Operand bits_operand(bits);
+      DCHECK(bits_operand.instructions_required(this) == 1);
+      add(result_end, source, bits_operand, LeaveCC, cond);
+      source = result_end;
+      cond = cc;
+    }
+  }
+
+  // The top pointer is not updated for allocation folding dominators.
+  str(result_end, MemOperand(top_address));
+
+  add(result, result, Operand(kHeapObjectTag));
+}
 
 void MacroAssembler::AllocateTwoByteString(Register result,
                                            Register length,
@@ -2218,12 +2277,8 @@
   and_(scratch1, scratch1, Operand(~kObjectAlignmentMask));
 
   // Allocate two-byte string in new space.
-  Allocate(scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result,
@@ -2247,12 +2302,8 @@
   and_(scratch1, scratch1, Operand(~kObjectAlignmentMask));
 
   // Allocate one-byte string in new space.
-  Allocate(scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result, length, Heap::kOneByteStringMapRootIndex,
@@ -2266,7 +2317,7 @@
                                                Register scratch2,
                                                Label* gc_required) {
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result,
                       length,
@@ -2280,12 +2331,8 @@
                                                Register scratch1,
                                                Register scratch2,
                                                Label* gc_required) {
-  Allocate(ConsString::kSize,
-           result,
-           scratch1,
-           scratch2,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kConsOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -2298,7 +2345,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result,
                       length,
@@ -2314,7 +2361,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kSlicedOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -2414,12 +2461,6 @@
            DONT_DO_SMI_CHECK);
 
   vldr(double_scratch, FieldMemOperand(value_reg, HeapNumber::kValueOffset));
-  // Force a canonical NaN.
-  if (emit_debug_code()) {
-    vmrs(ip);
-    tst(ip, Operand(kVFPDefaultNaNModeControlBit));
-    Assert(ne, kDefaultNaNModeNotSet);
-  }
   VFPCanonicalizeNaN(double_scratch);
   b(&store);
 
@@ -3129,6 +3170,17 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    STATIC_ASSERT(kSmiTag == 0);
+    tst(object, Operand(kSmiTagMask));
+    Check(ne, kOperandIsASmiAndNotAGeneratorObject);
+    push(object);
+    CompareObjectType(object, object, object, JS_GENERATOR_OBJECT_TYPE);
+    pop(object);
+    Check(eq, kOperandIsNotAGeneratorObject);
+  }
+}
 
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
@@ -3225,12 +3277,11 @@
                                         Register scratch2,
                                         Register heap_number_map,
                                         Label* gc_required,
-                                        TaggingMode tagging_mode,
                                         MutableMode mode) {
   // Allocate an object in the heap for the heap number and tag it as a heap
   // object.
   Allocate(HeapNumber::kSize, result, scratch1, scratch2, gc_required,
-           tagging_mode == TAG_RESULT ? TAG_OBJECT : NO_ALLOCATION_FLAGS);
+           NO_ALLOCATION_FLAGS);
 
   Heap::RootListIndex map_index = mode == MUTABLE
       ? Heap::kMutableHeapNumberMapRootIndex
@@ -3238,11 +3289,7 @@
   AssertIsRoot(heap_number_map, map_index);
 
   // Store heap number map in the allocated object.
-  if (tagging_mode == TAG_RESULT) {
-    str(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
-  } else {
-    str(heap_number_map, MemOperand(result, HeapObject::kMapOffset));
-  }
+  str(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
 }
 
 
@@ -3267,7 +3314,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch1, scratch2);
@@ -3662,7 +3710,7 @@
 
 
 void MacroAssembler::ClampUint8(Register output_reg, Register input_reg) {
-  Usat(output_reg, 8, Operand(input_reg));
+  usat(output_reg, 8, Operand(input_reg));
 }
 
 
@@ -3770,7 +3818,7 @@
     Label* no_memento_found) {
   Label map_check;
   Label top_check;
-  ExternalReference new_space_allocation_top =
+  ExternalReference new_space_allocation_top_adr =
       ExternalReference::new_space_allocation_top_address(isolate());
   const int kMementoMapOffset = JSArray::kSize - kHeapObjectTag;
   const int kMementoEndOffset = kMementoMapOffset + AllocationMemento::kSize;
@@ -3780,7 +3828,9 @@
   // If the object is in new space, we need to check whether it is on the same
   // page as the current top.
   add(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
-  eor(scratch_reg, scratch_reg, Operand(new_space_allocation_top));
+  mov(ip, Operand(new_space_allocation_top_adr));
+  ldr(ip, MemOperand(ip));
+  eor(scratch_reg, scratch_reg, Operand(ip));
   tst(scratch_reg, Operand(~Page::kPageAlignmentMask));
   b(eq, &top_check);
   // The object is on a different page than allocation top. Bail out if the
@@ -3796,7 +3846,9 @@
   // we are below top.
   bind(&top_check);
   add(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
-  cmp(scratch_reg, Operand(new_space_allocation_top));
+  mov(ip, Operand(new_space_allocation_top_adr));
+  ldr(ip, MemOperand(ip));
+  cmp(scratch_reg, ip);
   b(gt, no_memento_found);
   // Memento map check.
   bind(&map_check);
diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h
index f326304..8fa197c 100644
--- a/src/arm/macro-assembler-arm.h
+++ b/src/arm/macro-assembler-arm.h
@@ -19,8 +19,8 @@
 const Register kReturnRegister2 = {Register::kCode_r2};
 const Register kJSFunctionRegister = {Register::kCode_r1};
 const Register kContextRegister = {Register::kCode_r7};
+const Register kAllocateSizeRegister = {Register::kCode_r1};
 const Register kInterpreterAccumulatorRegister = {Register::kCode_r0};
-const Register kInterpreterRegisterFileRegister = {Register::kCode_r4};
 const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_r5};
 const Register kInterpreterBytecodeArrayRegister = {Register::kCode_r6};
 const Register kInterpreterDispatchTableRegister = {Register::kCode_r8};
@@ -157,8 +157,6 @@
            int width,
            Condition cond = al);
   void Bfc(Register dst, Register src, int lsb, int width, Condition cond = al);
-  void Usat(Register dst, int satpos, const Operand& src,
-            Condition cond = al);
 
   void Call(Label* target);
   void Push(Register src) { push(src); }
@@ -489,15 +487,6 @@
             const MemOperand& dst,
             Condition cond = al);
 
-  // Ensure that FPSCR contains values needed by JavaScript.
-  // We need the NaNModeControlBit to be sure that operations like
-  // vadd and vsub generate the Canonical NaN (if a NaN must be generated).
-  // In VFP3 it will be always the Canonical NaN.
-  // In VFP2 it will be either the Canonical NaN or the negative version
-  // of the Canonical NaN. It doesn't matter if we have two values. The aim
-  // is to be sure to never generate the hole NaN.
-  void VFPEnsureFPSCRState(Register scratch);
-
   // If the value is a NaN, canonicalize the value else, do nothing.
   void VFPCanonicalizeNaN(const DwVfpRegister dst,
                           const DwVfpRegister src,
@@ -792,6 +781,15 @@
   void Allocate(Register object_size, Register result, Register result_end,
                 Register scratch, Label* gc_required, AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(int object_size, Register result, Register scratch1,
+                    Register scratch2, AllocationFlags flags);
+
+  void FastAllocate(Register object_size, Register result, Register result_end,
+                    Register scratch, AllocationFlags flags);
+
   void AllocateTwoByteString(Register result,
                              Register length,
                              Register scratch1,
@@ -826,7 +824,6 @@
                           Register scratch2,
                           Register heap_number_map,
                           Label* gc_required,
-                          TaggingMode tagging_mode = TAG_RESULT,
                           MutableMode mode = IMMUTABLE);
   void AllocateHeapNumberWithValue(Register result,
                                    DwVfpRegister value,
@@ -1326,6 +1323,10 @@
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
   void AssertReceiver(Register object);
 
diff --git a/src/arm/simulator-arm.cc b/src/arm/simulator-arm.cc
index 6c22a0a..1a870c5 100644
--- a/src/arm/simulator-arm.cc
+++ b/src/arm/simulator-arm.cc
@@ -387,7 +387,7 @@
         end = cur + words;
 
         while (cur < end) {
-          PrintF("  0x%08x:  0x%08x %10d",
+          PrintF("  0x%08" V8PRIxPTR ":  0x%08x %10d",
                  reinterpret_cast<intptr_t>(cur), *cur, *cur);
           HeapObject* obj = reinterpret_cast<HeapObject*>(*cur);
           int value = *cur;
@@ -449,8 +449,8 @@
         while (cur < end) {
           prev = cur;
           cur += dasm.InstructionDecode(buffer, cur);
-          PrintF("  0x%08x  %s\n",
-                 reinterpret_cast<intptr_t>(prev), buffer.start());
+          PrintF("  0x%08" V8PRIxPTR "  %s\n", reinterpret_cast<intptr_t>(prev),
+                 buffer.start());
         }
       } else if (strcmp(cmd, "gdb") == 0) {
         PrintF("relinquishing control to gdb\n");
@@ -1271,7 +1271,7 @@
 
 // Unsupported instructions use Format to print an error and stop execution.
 void Simulator::Format(Instruction* instr, const char* format) {
-  PrintF("Simulator found unsupported instruction:\n 0x%08x: %s\n",
+  PrintF("Simulator found unsupported instruction:\n 0x%08" V8PRIxPTR ": %s\n",
          reinterpret_cast<intptr_t>(instr), format);
   UNIMPLEMENTED();
 }
@@ -4028,6 +4028,45 @@
         UNIMPLEMENTED();
       }
       break;
+    case 0x1C:
+      if ((instr->Bits(11, 9) == 0x5) && (instr->Bit(6) == 0) &&
+          (instr->Bit(4) == 0)) {
+        // VSEL* (floating-point)
+        bool condition_holds;
+        switch (instr->Bits(21, 20)) {
+          case 0x0:  // VSELEQ
+            condition_holds = (z_flag_ == 1);
+            break;
+          case 0x1:  // VSELVS
+            condition_holds = (v_flag_ == 1);
+            break;
+          case 0x2:  // VSELGE
+            condition_holds = (n_flag_ == v_flag_);
+            break;
+          case 0x3:  // VSELGT
+            condition_holds = ((z_flag_ == 0) && (n_flag_ == v_flag_));
+            break;
+          default:
+            UNREACHABLE();  // Case analysis is exhaustive.
+            break;
+        }
+        if (instr->SzValue() == 0x1) {
+          int n = instr->VFPNRegValue(kDoublePrecision);
+          int m = instr->VFPMRegValue(kDoublePrecision);
+          int d = instr->VFPDRegValue(kDoublePrecision);
+          double result = get_double_from_d_register(condition_holds ? n : m);
+          set_d_register_from_double(d, result);
+        } else {
+          int n = instr->VFPNRegValue(kSinglePrecision);
+          int m = instr->VFPMRegValue(kSinglePrecision);
+          int d = instr->VFPDRegValue(kSinglePrecision);
+          float result = get_float_from_s_register(condition_holds ? n : m);
+          set_s_register_from_float(d, result);
+        }
+      } else {
+        UNIMPLEMENTED();
+      }
+      break;
     default:
       UNIMPLEMENTED();
       break;
@@ -4048,7 +4087,8 @@
     v8::internal::EmbeddedVector<char, 256> buffer;
     dasm.InstructionDecode(buffer,
                            reinterpret_cast<byte*>(instr));
-    PrintF("  0x%08x  %s\n", reinterpret_cast<intptr_t>(instr), buffer.start());
+    PrintF("  0x%08" V8PRIxPTR "  %s\n", reinterpret_cast<intptr_t>(instr),
+           buffer.start());
   }
   if (instr->ConditionField() == kSpecialCondition) {
     DecodeSpecialCondition(instr);
diff --git a/src/arm64/assembler-arm64-inl.h b/src/arm64/assembler-arm64-inl.h
index 6191216..8e46771 100644
--- a/src/arm64/assembler-arm64-inl.h
+++ b/src/arm64/assembler-arm64-inl.h
@@ -41,19 +41,6 @@
   }
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Assembler::set_target_address_at(isolate_, pc_, host_, updated_reference,
-                                   icache_flush_mode);
-}
-
 inline int CPURegister::code() const {
   DCHECK(IsValid());
   return reg_code;
@@ -705,11 +692,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Assembler::target_address_at(pc_, host_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)
                               || rmode_ == EMBEDDED_OBJECT
@@ -868,7 +850,7 @@
   }
 }
 
-
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/arm64/assembler-arm64.cc b/src/arm64/assembler-arm64.cc
index 2471d5e..91563a4 100644
--- a/src/arm64/assembler-arm64.cc
+++ b/src/arm64/assembler-arm64.cc
@@ -51,26 +51,13 @@
   // Only use statically determined features for cross compile (snapshot).
   if (cross_compile) return;
 
-  // Probe for runtime features
-  base::CPU cpu;
-  if (cpu.implementer() == base::CPU::NVIDIA &&
-      cpu.variant() == base::CPU::NVIDIA_DENVER &&
-      cpu.part() <= base::CPU::NVIDIA_DENVER_V10) {
-    // TODO(jkummerow): This is turned off as an experiment to see if it
-    // affects crash rates. Keep an eye on crash reports and either remove
-    // coherent cache support permanently, or re-enable it!
-    // supported_ |= 1u << COHERENT_CACHE;
-  }
+  // We used to probe for coherent cache support, but on older CPUs it
+  // causes crashes (crbug.com/524337), and newer CPUs don't even have
+  // the feature any more.
 }
 
-
 void CpuFeatures::PrintTarget() { }
-
-
-void CpuFeatures::PrintFeatures() {
-  printf("COHERENT_CACHE=%d\n", CpuFeatures::IsSupported(COHERENT_CACHE));
-}
-
+void CpuFeatures::PrintFeatures() {}
 
 // -----------------------------------------------------------------------------
 // CPURegList utilities.
@@ -192,6 +179,41 @@
   return instr->IsLdrLiteralX();
 }
 
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Memory::Address_at(Assembler::target_pointer_address_at(pc_));
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return Memory::uint32_at(Assembler::target_pointer_address_at(pc_));
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_) && old_base != new_base) {
+    Address updated_memory_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_memory_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_memory_reference &&
+           updated_memory_reference < new_base + new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, updated_memory_reference, icache_flush_mode);
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Memory::uint32_at(Assembler::target_pointer_address_at(pc_)) =
+        updated_size_reference;
+  } else {
+    UNREACHABLE();
+  }
+}
 
 Register GetAllocatableRegisterThatIsNotOneOf(Register reg1, Register reg2,
                                               Register reg3, Register reg4) {
@@ -294,13 +316,11 @@
 // Constant Pool.
 void ConstPool::RecordEntry(intptr_t data,
                             RelocInfo::Mode mode) {
-  DCHECK(mode != RelocInfo::COMMENT &&
-         mode != RelocInfo::POSITION &&
+  DCHECK(mode != RelocInfo::COMMENT && mode != RelocInfo::POSITION &&
          mode != RelocInfo::STATEMENT_POSITION &&
-         mode != RelocInfo::CONST_POOL &&
-         mode != RelocInfo::VENEER_POOL &&
+         mode != RelocInfo::CONST_POOL && mode != RelocInfo::VENEER_POOL &&
          mode != RelocInfo::CODE_AGE_SEQUENCE &&
-         mode != RelocInfo::DEOPT_REASON);
+         mode != RelocInfo::DEOPT_REASON && mode != RelocInfo::DEOPT_ID);
   uint64_t raw_data = static_cast<uint64_t>(data);
   int offset = assm_->pc_offset();
   if (IsEmpty()) {
@@ -2878,11 +2898,12 @@
        (rmode <= RelocInfo::DEBUG_BREAK_SLOT_AT_TAIL_CALL)) ||
       (rmode == RelocInfo::INTERNAL_REFERENCE) ||
       (rmode == RelocInfo::CONST_POOL) || (rmode == RelocInfo::VENEER_POOL) ||
-      (rmode == RelocInfo::DEOPT_REASON) ||
+      (rmode == RelocInfo::DEOPT_REASON) || (rmode == RelocInfo::DEOPT_ID) ||
       (rmode == RelocInfo::GENERATOR_CONTINUATION)) {
     // Adjust code for new modes.
     DCHECK(RelocInfo::IsDebugBreakSlot(rmode) || RelocInfo::IsComment(rmode) ||
-           RelocInfo::IsDeoptReason(rmode) || RelocInfo::IsPosition(rmode) ||
+           RelocInfo::IsDeoptReason(rmode) || RelocInfo::IsDeoptId(rmode) ||
+           RelocInfo::IsPosition(rmode) ||
            RelocInfo::IsInternalReference(rmode) ||
            RelocInfo::IsConstPool(rmode) || RelocInfo::IsVeneerPool(rmode) ||
            RelocInfo::IsGeneratorContinuation(rmode));
diff --git a/src/arm64/assembler-arm64.h b/src/arm64/assembler-arm64.h
index 5460254..fac7a70 100644
--- a/src/arm64/assembler-arm64.h
+++ b/src/arm64/assembler-arm64.h
@@ -40,6 +40,12 @@
   R(x8)  R(x9)  R(x10) R(x11) R(x12) R(x13) R(x14) R(x15) \
   R(x18) R(x19) R(x20) R(x21) R(x22) R(x23) R(x24) R(x27)
 
+#define FLOAT_REGISTERS(V)                               \
+  V(s0)  V(s1)  V(s2)  V(s3)  V(s4)  V(s5)  V(s6)  V(s7)  \
+  V(s8)  V(s9)  V(s10) V(s11) V(s12) V(s13) V(s14) V(s15) \
+  V(s16) V(s17) V(s18) V(s19) V(s20) V(s21) V(s22) V(s23) \
+  V(s24) V(s25) V(s26) V(s27) V(s28) V(s29) V(s30) V(s31)
+
 #define DOUBLE_REGISTERS(R)                               \
   R(d0)  R(d1)  R(d2)  R(d3)  R(d4)  R(d5)  R(d6)  R(d7)  \
   R(d8)  R(d9)  R(d10) R(d11) R(d12) R(d13) R(d14) R(d15) \
@@ -366,7 +372,7 @@
                         const CPURegister& reg7 = NoCPUReg,
                         const CPURegister& reg8 = NoCPUReg);
 
-
+typedef FPRegister FloatRegister;
 typedef FPRegister DoubleRegister;
 
 // TODO(arm64) Define SIMD registers.
@@ -929,7 +935,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   int buffer_space() const;
 
diff --git a/src/arm64/builtins-arm64.cc b/src/arm64/builtins-arm64.cc
index 44bfc17..be372e6 100644
--- a/src/arm64/builtins-arm64.cc
+++ b/src/arm64/builtins-arm64.cc
@@ -605,16 +605,9 @@
     // x0: number of arguments
     // x1: constructor function
     // x3: new target
-    if (is_api_function) {
-      __ Ldr(cp, FieldMemOperand(constructor, JSFunction::kContextOffset));
-      Handle<Code> code =
-          masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ Call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(argc);
-      __ InvokeFunction(constructor, new_target, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+    ParameterCount actual(argc);
+    __ InvokeFunction(constructor, new_target, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -711,6 +704,132 @@
   __ CallRuntime(Runtime::kThrowConstructedNonConstructable);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- x0 : the value to pass to the generator
+  //  -- x1 : the JSGeneratorObject to resume
+  //  -- x2 : the resume mode (tagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(x1);
+
+  // Store input value into generator object.
+  __ Str(x0, FieldMemOperand(x1, JSGeneratorObject::kInputOffset));
+  __ RecordWriteField(x1, JSGeneratorObject::kInputOffset, x0, x3,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ Str(x2, FieldMemOperand(x1, JSGeneratorObject::kResumeModeOffset));
+
+  // Load suspended function and context.
+  __ Ldr(cp, FieldMemOperand(x1, JSGeneratorObject::kContextOffset));
+  __ Ldr(x4, FieldMemOperand(x1, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  __ Mov(x10, Operand(step_in_enabled));
+  __ Ldrb(x10, MemOperand(x10));
+  __ CompareAndBranch(x10, Operand(0), eq, &skip_flooding);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(x1, x2, x4);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(x2, x1);
+    __ Ldr(x4, FieldMemOperand(x1, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Push receiver.
+  __ Ldr(x5, FieldMemOperand(x1, JSGeneratorObject::kReceiverOffset));
+  __ Push(x5);
+
+  // ----------- S t a t e -------------
+  //  -- x1      : the JSGeneratorObject to resume
+  //  -- x2      : the resume mode (tagged)
+  //  -- x4      : generator function
+  //  -- cp      : generator context
+  //  -- lr      : return address
+  //  -- jssp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ Ldr(x10, FieldMemOperand(x4, JSFunction::kSharedFunctionInfoOffset));
+  __ Ldr(w10,
+         FieldMemOperand(x10, SharedFunctionInfo::kFormalParameterCountOffset));
+  __ LoadRoot(x11, Heap::kTheHoleValueRootIndex);
+  __ PushMultipleTimes(x11, w10);
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ Ldr(x3, FieldMemOperand(x4, JSFunction::kSharedFunctionInfoOffset));
+  __ Ldr(x3, FieldMemOperand(x3, SharedFunctionInfo::kFunctionDataOffset));
+  __ CompareObjectType(x3, x3, x3, BYTECODE_ARRAY_TYPE);
+  __ B(ne, &old_generator);
+
+  // New-style (ignition/turbofan) generator object
+  {
+    __ Ldr(x0, FieldMemOperand(x4, JSFunction::kSharedFunctionInfoOffset));
+    __ Ldr(x0,
+         FieldMemOperand(x0, SharedFunctionInfo::kFormalParameterCountOffset));
+    __ SmiUntag(x0);
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ Move(x3, x1);
+    __ Move(x1, x4);
+    __ Ldr(x5, FieldMemOperand(x1, JSFunction::kCodeEntryOffset));
+    __ Jump(x5);
+  }
+
+  // Old-style (full-codegen) generator object
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ Push(lr, fp);
+    __ Move(fp, jssp);
+    __ Push(cp, x4);
+
+    // Restore the operand stack.
+    __ Ldr(x0, FieldMemOperand(x1, JSGeneratorObject::kOperandStackOffset));
+    __ Ldr(w3, UntagSmiFieldMemOperand(x0, FixedArray::kLengthOffset));
+    __ Add(x0, x0, Operand(FixedArray::kHeaderSize - kHeapObjectTag));
+    __ Add(x3, x0, Operand(x3, LSL, kPointerSizeLog2));
+    {
+      Label done_loop, loop;
+      __ Bind(&loop);
+      __ Cmp(x0, x3);
+      __ B(eq, &done_loop);
+      __ Ldr(x10, MemOperand(x0, kPointerSize, PostIndex));
+      __ Push(x10);
+      __ B(&loop);
+      __ Bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ LoadRoot(x10, Heap::kEmptyFixedArrayRootIndex);
+    __ Str(x10, FieldMemOperand(x1, JSGeneratorObject::kOperandStackOffset));
+
+    // Resume the generator function at the continuation.
+    __ Ldr(x10, FieldMemOperand(x4, JSFunction::kSharedFunctionInfoOffset));
+    __ Ldr(x10, FieldMemOperand(x10, SharedFunctionInfo::kCodeOffset));
+    __ Add(x10, x10, Code::kHeaderSize - kHeapObjectTag);
+    __ Ldrsw(x11,
+        UntagSmiFieldMemOperand(x1, JSGeneratorObject::kContinuationOffset));
+    __ Add(x10, x10, x11);
+    __ Mov(x12, Smi::FromInt(JSGeneratorObject::kGeneratorExecuting));
+    __ Str(x12, FieldMemOperand(x1, JSGeneratorObject::kContinuationOffset));
+    __ Move(x0, x1);  // Continuation expects generator object in x0.
+    __ Br(x10);
+  }
+}
 
 enum IsTagged { kArgcIsSmiTagged, kArgcIsUntaggedInt };
 
@@ -844,7 +963,6 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
-
 // Generate code for entering a JS function with the interpreter.
 // On entry to the function the receiver and arguments have been pushed on the
 // stack left to right.  The actual argument count matches the formal parameter
@@ -861,6 +979,8 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
@@ -868,8 +988,8 @@
   __ Push(lr, fp, cp, x1);
   __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp);
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into kInterpreterBytecodeRegister.
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ Ldr(x0, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset));
   Register debug_info = kInterpreterBytecodeArrayRegister;
   Label load_debug_bytecode_array, bytecode_array_loaded;
@@ -881,8 +1001,12 @@
          FieldMemOperand(x0, SharedFunctionInfo::kFunctionDataOffset));
   __ Bind(&bytecode_array_loaded);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ CompareRoot(kInterpreterBytecodeArrayRegister,
+                 Heap::kUndefinedValueRootIndex);
+  __ B(eq, &bytecode_array_not_present);
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ AssertNotSmi(kInterpreterBytecodeArrayRegister,
                     kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
     __ CompareObjectType(kInterpreterBytecodeArrayRegister, x0, x0,
@@ -890,8 +1014,12 @@
     __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
   }
 
-  // Push new.target, bytecode array and zero for bytecode array offset.
-  __ Mov(x0, Operand(0));
+  // Load the initial bytecode offset.
+  __ Mov(kInterpreterBytecodeOffsetRegister,
+         Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
+
+  // Push new.target, bytecode array and Smi tagged bytecode array offset.
+  __ SmiTag(x0, kInterpreterBytecodeOffsetRegister);
   __ Push(x3, kInterpreterBytecodeArrayRegister, x0);
 
   // Allocate the local and temporary register file on the stack.
@@ -921,18 +1049,8 @@
     __ Bind(&loop_header);
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load accumulator, register file, bytecode offset, dispatch table into
-  // registers.
+  // Load accumulator and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ Add(kInterpreterRegisterFileRegister, fp,
-         Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
-  __ Mov(kInterpreterBytecodeOffsetRegister,
-         Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
   __ Mov(kInterpreterDispatchTableRegister,
          Operand(ExternalReference::interpreter_dispatch_table_address(
              masm->isolate())));
@@ -942,60 +1060,130 @@
                          kInterpreterBytecodeOffsetRegister));
   __ Mov(x1, Operand(x1, LSL, kPointerSizeLog2));
   __ Ldr(ip0, MemOperand(kInterpreterDispatchTableRegister, x1));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ Add(ip0, ip0, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Call(ip0);
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
+  // The return value is in x0.
+
+  // Get the arguments + reciever count.
+  __ ldr(x1, MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ Ldr(w1, FieldMemOperand(x1, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  // Drop receiver + arguments and return.
+  __ Drop(x1, 1);
+  __ Ret();
 
   // Load debug copy of the bytecode array.
   __ Bind(&load_debug_bytecode_array);
   __ Ldr(kInterpreterBytecodeArrayRegister,
          FieldMemOperand(debug_info, DebugInfo::kAbstractCodeIndex));
   __ B(&bytecode_array_loaded);
-}
 
-
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
-
-  // The return value is in accumulator, which is already in x0.
-
-  // Leave the frame (also dropping the register file).
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ Bind(&bytecode_array_not_present);
   __ LeaveFrame(StackFrame::JAVA_SCRIPT);
-
-  // Drop receiver + arguments and return.
-  __ Ldr(w1, FieldMemOperand(kInterpreterBytecodeArrayRegister,
-                             BytecodeArray::kParameterSizeOffset));
-  __ Drop(x1, 1);
-  __ Ret();
+  __ Ldr(x7, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset));
+  __ Ldr(x7, FieldMemOperand(x7, SharedFunctionInfo::kCodeOffset));
+  __ Add(x7, x7, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ Str(x7, FieldMemOperand(x1, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(x1, x7, x5);
+  __ Jump(x7);
 }
 
+// static
+void Builtins::Generate_InterpreterPushArgsAndCallImpl(
+    MacroAssembler* masm, TailCallMode tail_call_mode) {
+  // ----------- S t a t e -------------
+  //  -- x0 : the number of arguments (not including the receiver)
+  //  -- x2 : the address of the first argument to be pushed. Subsequent
+  //          arguments should be consecutive above this, in the same order as
+  //          they are to be pushed onto the stack.
+  //  -- x1 : the target to call (can be any Object).
+  // -----------------------------------
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register and dispatch table register.
-  __ Add(kInterpreterRegisterFileRegister, fp,
-         Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+  // Find the address of the last argument.
+  __ add(x3, x0, Operand(1));  // Add one for receiver.
+  __ lsl(x3, x3, kPointerSizeLog2);
+  __ sub(x4, x2, x3);
+
+  // Push the arguments.
+  Label loop_header, loop_check;
+  __ Mov(x5, jssp);
+  __ Claim(x3, 1);
+  __ B(&loop_check);
+  __ Bind(&loop_header);
+  // TODO(rmcilroy): Push two at a time once we ensure we keep stack aligned.
+  __ Ldr(x3, MemOperand(x2, -kPointerSize, PostIndex));
+  __ Str(x3, MemOperand(x5, -kPointerSize, PreIndex));
+  __ Bind(&loop_check);
+  __ Cmp(x2, x4);
+  __ B(gt, &loop_header);
+
+  // Call the target.
+  __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny,
+                                            tail_call_mode),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  // -- x0 : argument count (not including receiver)
+  // -- x3 : new target
+  // -- x1 : constructor to call
+  // -- x2 : address of the first argument
+  // -----------------------------------
+
+  // Find the address of the last argument.
+  __ add(x5, x0, Operand(1));  // Add one for receiver (to be constructed).
+  __ lsl(x5, x5, kPointerSizeLog2);
+
+  // Set stack pointer and where to stop.
+  __ Mov(x6, jssp);
+  __ Claim(x5, 1);
+  __ sub(x4, x6, x5);
+
+  // Push a slot for the receiver.
+  __ Str(xzr, MemOperand(x6, -kPointerSize, PreIndex));
+
+  Label loop_header, loop_check;
+  // Push the arguments.
+  __ B(&loop_check);
+  __ Bind(&loop_header);
+  // TODO(rmcilroy): Push two at a time once we ensure we keep stack aligned.
+  __ Ldr(x5, MemOperand(x2, -kPointerSize, PostIndex));
+  __ Str(x5, MemOperand(x6, -kPointerSize, PreIndex));
+  __ Bind(&loop_check);
+  __ Cmp(x6, x4);
+  __ B(gt, &loop_header);
+
+  // Call the constructor with x0, x1, and x3 unmodified.
+  __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
+}
+
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ LoadObject(x1, masm->isolate()->builtins()->InterpreterEntryTrampoline());
+  __ Add(lr, x1, Operand(interpreter_entry_return_pc_offset->value() +
+                         Code::kHeaderSize - kHeapObjectTag));
+
+  // Initialize the dispatch table register.
   __ Mov(kInterpreterDispatchTableRegister,
          Operand(ExternalReference::interpreter_dispatch_table_address(
              masm->isolate())));
 
-  // Get the context from the frame.
-  __ Ldr(kContextRegister,
-         MemOperand(kInterpreterRegisterFileRegister,
-                    InterpreterFrameConstants::kContextFromRegisterPointer));
-
   // Get the bytecode array pointer from the frame.
-  __ Ldr(
-      kInterpreterBytecodeArrayRegister,
-      MemOperand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+  __ Ldr(kInterpreterBytecodeArrayRegister,
+         MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -1008,9 +1196,7 @@
 
   // Get the target bytecode offset from the frame.
   __ Ldr(kInterpreterBytecodeOffsetRegister,
-         MemOperand(
-             kInterpreterRegisterFileRegister,
-             InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+         MemOperand(fp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiUntag(kInterpreterBytecodeOffsetRegister);
 
   // Dispatch to the target bytecode.
@@ -1018,63 +1204,147 @@
                          kInterpreterBytecodeOffsetRegister));
   __ Mov(x1, Operand(x1, LSL, kPointerSizeLog2));
   __ Ldr(ip0, MemOperand(kInterpreterDispatchTableRegister, x1));
-  __ Add(ip0, ip0, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Jump(ip0);
 }
 
-
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ Mov(x1, Operand(Smi::FromInt(static_cast<int>(type))));
-    __ Push(x1);
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register.
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ LoadObject(lr, masm->isolate()->builtins()->InterpreterEntryTrampoline());
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- x0 : argument count (preserved for callee)
+  //  -- x3 : new target (preserved for callee)
+  //  -- x1 : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register closure = x1;
+  Register map = x13;
+  Register index = x2;
+  __ Ldr(map, FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ Ldr(map,
+         FieldMemOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ Ldrsw(index, UntagSmiFieldMemOperand(map, FixedArray::kLengthOffset));
+  __ Cmp(index, Operand(2));
+  __ B(lt, &gotta_call_runtime);
+
+  // Find literals.
+  // x3  : native context
+  // x2  : length / index
+  // x13 : optimized code map
+  // stack[0] : new target
+  // stack[4] : closure
+  Register native_context = x4;
+  __ Ldr(native_context, NativeContextMemOperand());
+
+  __ Bind(&loop_top);
+  Register temp = x5;
+  Register array_pointer = x6;
+
+  // Does the native context match?
+  __ Add(array_pointer, map, Operand(index, LSL, kPointerSizeLog2));
+  __ Ldr(temp, FieldMemOperand(array_pointer,
+                               SharedFunctionInfo::kOffsetToPreviousContext));
+  __ Ldr(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ Cmp(temp, native_context);
+  __ B(ne, &loop_bottom);
+  // OSR id set to none?
+  __ Ldr(temp, FieldMemOperand(array_pointer,
+                               SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  const int bailout_id = BailoutId::None().ToInt();
+  __ Cmp(temp, Operand(Smi::FromInt(bailout_id)));
+  __ B(ne, &loop_bottom);
+  // Literals available?
+  __ Ldr(temp, FieldMemOperand(array_pointer,
+                               SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ Ldr(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ Str(temp, FieldMemOperand(closure, JSFunction::kLiteralsOffset));
+  __ RecordWriteField(closure, JSFunction::kLiteralsOffset, temp, x7,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+
+  // Code available?
+  Register entry = x7;
+  __ Ldr(entry,
+         FieldMemOperand(array_pointer,
+                         SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ Ldr(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  __ Add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+
+  Label install_optimized_code_and_tailcall;
+  __ Bind(&install_optimized_code_and_tailcall);
+  __ Str(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(closure, entry, x5);
+
+  // Link the closure into the optimized function list.
+  // x7 : code entry
+  // x4 : native context
+  // x1 : closure
+  __ Ldr(x8,
+         ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ Str(x8, FieldMemOperand(closure, JSFunction::kNextFunctionLinkOffset));
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, x8, x13,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ Str(closure,
+         ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ Mov(x5, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, x5, x13,
+                            kLRHasNotBeenSaved, kDontSaveFPRegs);
+  __ Jump(entry);
+
+  __ Bind(&loop_bottom);
+  __ Sub(index, index, Operand(SharedFunctionInfo::kEntryLength));
+  __ Cmp(index, Operand(1));
+  __ B(gt, &loop_top);
+
+  // We found neither literals nor code.
+  __ B(&gotta_call_runtime);
+
+  __ Bind(&maybe_call_runtime);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ Ldr(entry, FieldMemOperand(map, FixedArray::kHeaderSize +
+                                         SharedFunctionInfo::kSharedCodeIndex));
+  __ Ldr(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ Add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ B(&install_optimized_code_and_tailcall);
+
+  __ Bind(&try_shared);
+  // Is the full code valid?
+  __ Ldr(entry,
+         FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ Ldr(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ Ldr(x5, FieldMemOperand(entry, Code::kFlagsOffset));
+  __ and_(x5, x5, Operand(Code::KindField::kMask));
+  __ Mov(x5, Operand(x5, LSR, Code::KindField::kShift));
+  __ Cmp(x5, Operand(Code::BUILTIN));
+  __ B(eq, &gotta_call_runtime);
+  // Yes, install the full code.
+  __ Add(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ Str(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(closure, entry, x5);
+  __ Jump(entry);
+
+  __ Bind(&gotta_call_runtime);
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
 
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
@@ -1225,15 +1495,19 @@
 
   // Switch on the state.
   Label with_tos_register, unknown_state;
-  __ CompareAndBranch(
-      state, FullCodeGenerator::NO_REGISTERS, ne, &with_tos_register);
+  __ CompareAndBranch(state,
+                      static_cast<int>(Deoptimizer::BailoutState::NO_REGISTERS),
+                      ne, &with_tos_register);
   __ Drop(1);  // Remove state.
   __ Ret();
 
   __ Bind(&with_tos_register);
   // Reload TOS register.
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), x0.code());
   __ Peek(x0, kPointerSize);
-  __ CompareAndBranch(state, FullCodeGenerator::TOS_REG, ne, &unknown_state);
+  __ CompareAndBranch(state,
+                      static_cast<int>(Deoptimizer::BailoutState::TOS_REGISTER),
+                      ne, &unknown_state);
   __ Drop(2);  // Remove state and TOS.
   __ Ret();
 
@@ -1439,30 +1713,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- x0      : argc
-  //  -- jssp[0] : first argument (left-hand side)
-  //  -- jssp[8] : receiver (right-hand side)
-  // -----------------------------------
-  ASM_LOCATION("Builtins::Generate_FunctionHasInstance");
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ Ldr(InstanceOfDescriptor::LeftRegister(),
-           MemOperand(fp, 2 * kPointerSize));  // Load left-hand side.
-    __ Ldr(InstanceOfDescriptor::RightRegister(),
-           MemOperand(fp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ Drop(2);
-  __ Ret();
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- x0       : argc
@@ -2434,80 +2684,33 @@
           RelocInfo::CODE_TARGET);
 }
 
-
 // static
-void Builtins::Generate_InterpreterPushArgsAndCallImpl(
-    MacroAssembler* masm, TailCallMode tail_call_mode) {
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  ASM_LOCATION("Builtins::Generate_AllocateInNewSpace");
   // ----------- S t a t e -------------
-  //  -- x0 : the number of arguments (not including the receiver)
-  //  -- x2 : the address of the first argument to be pushed. Subsequent
-  //          arguments should be consecutive above this, in the same order as
-  //          they are to be pushed onto the stack.
-  //  -- x1 : the target to call (can be any Object).
+  //  -- x1 : requested object size (untagged)
+  //  -- lr : return address
   // -----------------------------------
-
-  // Find the address of the last argument.
-  __ add(x3, x0, Operand(1));  // Add one for receiver.
-  __ lsl(x3, x3, kPointerSizeLog2);
-  __ sub(x4, x2, x3);
-
-  // Push the arguments.
-  Label loop_header, loop_check;
-  __ Mov(x5, jssp);
-  __ Claim(x3, 1);
-  __ B(&loop_check);
-  __ Bind(&loop_header);
-  // TODO(rmcilroy): Push two at a time once we ensure we keep stack aligned.
-  __ Ldr(x3, MemOperand(x2, -kPointerSize, PostIndex));
-  __ Str(x3, MemOperand(x5, -kPointerSize, PreIndex));
-  __ Bind(&loop_check);
-  __ Cmp(x2, x4);
-  __ B(gt, &loop_header);
-
-  // Call the target.
-  __ Jump(masm->isolate()->builtins()->Call(ConvertReceiverMode::kAny,
-                                            tail_call_mode),
-          RelocInfo::CODE_TARGET);
+  __ SmiTag(x1);
+  __ Push(x1);
+  __ Move(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
 }
 
-
 // static
-void Builtins::Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm) {
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  ASM_LOCATION("Builtins::Generate_AllocateInOldSpace");
   // ----------- S t a t e -------------
-  // -- x0 : argument count (not including receiver)
-  // -- x3 : new target
-  // -- x1 : constructor to call
-  // -- x2 : address of the first argument
+  //  -- x1 : requested object size (untagged)
+  //  -- lr : return address
   // -----------------------------------
-
-  // Find the address of the last argument.
-  __ add(x5, x0, Operand(1));  // Add one for receiver (to be constructed).
-  __ lsl(x5, x5, kPointerSizeLog2);
-
-  // Set stack pointer and where to stop.
-  __ Mov(x6, jssp);
-  __ Claim(x5, 1);
-  __ sub(x4, x6, x5);
-
-  // Push a slot for the receiver.
-  __ Str(xzr, MemOperand(x6, -kPointerSize, PreIndex));
-
-  Label loop_header, loop_check;
-  // Push the arguments.
-  __ B(&loop_check);
-  __ Bind(&loop_header);
-  // TODO(rmcilroy): Push two at a time once we ensure we keep stack aligned.
-  __ Ldr(x5, MemOperand(x2, -kPointerSize, PostIndex));
-  __ Str(x5, MemOperand(x6, -kPointerSize, PreIndex));
-  __ Bind(&loop_check);
-  __ Cmp(x6, x4);
-  __ B(gt, &loop_header);
-
-  // Call the constructor with x0, x1, and x3 unmodified.
-  __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
+  __ SmiTag(x1);
+  __ Move(x2, Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ Push(x1, x2);
+  __ Move(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
-
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   ASM_LOCATION("Builtins::Generate_ArgumentsAdaptorTrampoline");
   // ----------- S t a t e -------------
diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc
index ee40535..a96b3df 100644
--- a/src/arm64/code-stubs-arm64.cc
+++ b/src/arm64/code-stubs-arm64.cc
@@ -43,12 +43,6 @@
 }
 
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -77,11 +71,6 @@
 }
 
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(x0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -1323,11 +1312,6 @@
   __ Mov(jssp, csp);
   __ SetStackPointer(jssp);
 
-  // Configure the FPCR. We don't restore it, so this is technically not allowed
-  // according to AAPCS64. However, we only set default-NaN mode and this will
-  // be harmless for most C code. Also, it works for ARM.
-  __ ConfigureFPCR();
-
   ProfileEntryHookStub::MaybeCallEntryHook(masm);
 
   // Set up the reserved register for 0.0.
@@ -1520,123 +1504,6 @@
 }
 
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = x1;              // Object (lhs).
-  Register const function = x0;            // Function (rhs).
-  Register const object_map = x2;          // Map of {object}.
-  Register const function_map = x3;        // Map of {function}.
-  Register const function_prototype = x4;  // Prototype of {function}.
-  Register const scratch = x5;
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ Ldr(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ JumpIfNotRoot(function, Heap::kInstanceofCacheFunctionRootIndex,
-                   &fast_case);
-  __ JumpIfNotRoot(object_map, Heap::kInstanceofCacheMapRootIndex, &fast_case);
-  __ LoadRoot(x0, Heap::kInstanceofCacheAnswerRootIndex);
-  __ Ret();
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ Bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ JumpIfNotObjectType(function, function_map, scratch, JS_FUNCTION_TYPE,
-                         &slow_case);
-  __ LoadRoot(x0, Heap::kFalseValueRootIndex);
-  __ Ret();
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ Bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ JumpIfNotObjectType(function, function_map, scratch, JS_FUNCTION_TYPE,
-                         &slow_case);
-
-  // Go to the runtime if the function is not a constructor.
-  __ Ldrb(scratch, FieldMemOperand(function_map, Map::kBitFieldOffset));
-  __ Tbz(scratch, Map::kIsConstructor, &slow_case);
-
-  // Ensure that {function} has an instance prototype.
-  __ Tbnz(scratch, Map::kHasNonInstancePrototype, &slow_case);
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ Ldr(function_prototype,
-         FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  __ JumpIfNotObjectType(function_prototype, scratch, scratch, MAP_TYPE,
-                         &function_prototype_valid);
-  __ Ldr(function_prototype,
-         FieldMemOperand(function_prototype, Map::kPrototypeOffset));
-  __ Bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Register const object_instance_type = function_map;
-  Register const map_bit_field = function_map;
-  Register const null = scratch;
-  Register const result = x0;
-
-  Label done, loop, fast_runtime_fallback;
-  __ LoadRoot(result, Heap::kTrueValueRootIndex);
-  __ LoadRoot(null, Heap::kNullValueRootIndex);
-  __ Bind(&loop);
-
-  // Check if the object needs to be access checked.
-  __ Ldrb(map_bit_field, FieldMemOperand(object_map, Map::kBitFieldOffset));
-  __ TestAndBranchIfAnySet(map_bit_field, 1 << Map::kIsAccessCheckNeeded,
-                           &fast_runtime_fallback);
-  // Check if the current object is a Proxy.
-  __ CompareInstanceType(object_map, object_instance_type, JS_PROXY_TYPE);
-  __ B(eq, &fast_runtime_fallback);
-
-  __ Ldr(object, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ Cmp(object, function_prototype);
-  __ B(eq, &done);
-  __ Cmp(object, null);
-  __ Ldr(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ B(ne, &loop);
-  __ LoadRoot(result, Heap::kFalseValueRootIndex);
-  __ Bind(&done);
-  __ StoreRoot(result, Heap::kInstanceofCacheAnswerRootIndex);
-  __ Ret();
-
-  // Found Proxy or access check needed: Call the runtime
-  __ Bind(&fast_runtime_fallback);
-  __ Push(object, function_prototype);
-  // Invalidate the instanceof cache.
-  __ Move(scratch, Smi::FromInt(0));
-  __ StoreRoot(scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ Push(object, function);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
-
 void RegExpExecStub::Generate(MacroAssembler* masm) {
 #ifdef V8_INTERPRETED_REGEXP
   __ TailCallRuntime(Runtime::kRegExpExec);
@@ -3815,8 +3682,8 @@
 
   __ Bind(&not_array);
   __ JumpIfNotRoot(feedback, Heap::kmegamorphic_symbolRootIndex, &miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
                                                receiver, name, feedback,
                                                receiver_map, scratch1, x7);
@@ -3951,8 +3818,8 @@
 
   __ Bind(&not_array);
   __ JumpIfNotRoot(feedback, Heap::kmegamorphic_symbolRootIndex, &miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, code_flags,
                                                receiver, key, feedback,
                                                receiver_map, scratch1, x8);
@@ -4829,17 +4696,18 @@
   __ Bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ Mov(x1, x0);
   STATIC_ASSERT(JSObject::kMapOffset == 0 * kPointerSize);
-  __ Str(x2, MemOperand(x1, kPointerSize, PostIndex));
+  __ Str(x2, FieldMemOperand(x0, JSObject::kMapOffset));
   __ LoadRoot(x3, Heap::kEmptyFixedArrayRootIndex);
   STATIC_ASSERT(JSObject::kPropertiesOffset == 1 * kPointerSize);
   STATIC_ASSERT(JSObject::kElementsOffset == 2 * kPointerSize);
-  __ Stp(x3, x3, MemOperand(x1, 2 * kPointerSize, PostIndex));
+  __ Str(x3, FieldMemOperand(x0, JSObject::kPropertiesOffset));
+  __ Str(x3, FieldMemOperand(x0, JSObject::kElementsOffset));
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
+  __ Add(x1, x0, Operand(JSObject::kHeaderSize - kHeapObjectTag));
 
   // ----------- S t a t e -------------
-  //  -- x0 : result (untagged)
+  //  -- x0 : result (tagged)
   //  -- x1 : result fields (untagged)
   //  -- x5 : result end (untagged)
   //  -- x2 : initial map
@@ -4857,10 +4725,6 @@
   {
     // Initialize all in-object fields with undefined.
     __ InitializeFieldsWithFiller(x1, x5, x6);
-
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ Add(x0, x0, kHeapObjectTag);
     __ Ret();
   }
   __ Bind(&slack_tracking);
@@ -4879,10 +4743,6 @@
     __ LoadRoot(x6, Heap::kOnePointerFillerMapRootIndex);
     __ InitializeFieldsWithFiller(x1, x5, x6);
 
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ Add(x0, x0, kHeapObjectTag);
-
     // Check if we can finalize the instance size.
     Label finalize;
     STATIC_ASSERT(Map::kSlackTrackingCounterEnd == 1);
@@ -4912,10 +4772,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(x2);
   }
-  STATIC_ASSERT(kHeapObjectTag == 1);
-  __ Sub(x0, x0, kHeapObjectTag);
   __ Ldrb(x5, FieldMemOperand(x2, Map::kInstanceSizeOffset));
   __ Add(x5, x0, Operand(x5, LSL, kPointerSizeLog2));
+  STATIC_ASSERT(kHeapObjectTag == 1);
+  __ Sub(x5, x5, kHeapObjectTag);  // Subtract the tag from end.
   __ B(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4934,20 +4794,20 @@
   // -----------------------------------
   __ AssertFunction(x1);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make x2 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ Mov(x2, fp);
-    __ B(&loop_entry);
-    __ Bind(&loop);
+  // Make x2 point to the JavaScript frame.
+  __ Mov(x2, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ Ldr(x2, MemOperand(x2, StandardFrameConstants::kCallerFPOffset));
-    __ Bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ Ldr(x3, MemOperand(x2, StandardFrameConstants::kFunctionOffset));
     __ Cmp(x3, x1);
-    __ B(ne, &loop);
+    __ B(eq, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ Bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4979,7 +4839,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, x0, x1, x2, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, x0, x1, x2, &allocate, NO_ALLOCATION_FLAGS);
     __ Bind(&done_allocate);
 
     // Setup the rest parameter array in x0.
@@ -5020,7 +4880,7 @@
     Label allocate, done_allocate;
     __ Mov(x1, JSArray::kSize + FixedArray::kHeaderSize);
     __ Add(x1, x1, Operand(x0, LSL, kPointerSizeLog2));
-    __ Allocate(x1, x3, x4, x5, &allocate, TAG_OBJECT);
+    __ Allocate(x1, x3, x4, x5, &allocate, NO_ALLOCATION_FLAGS);
     __ Bind(&done_allocate);
 
     // Compute arguments.length in x6.
@@ -5081,17 +4941,34 @@
   // -----------------------------------
   __ AssertFunction(x1);
 
+  // Make x6 point to the JavaScript frame.
+  __ Mov(x6, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ Ldr(x6, MemOperand(x6, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ Ldr(x3, MemOperand(x6, StandardFrameConstants::kFunctionOffset));
+    __ Cmp(x3, x1);
+    __ B(eq, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ Bind(&ok);
+  }
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
   __ Ldr(x2, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset));
   __ Ldrsw(
       x2, FieldMemOperand(x2, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ Add(x3, fp, Operand(x2, LSL, kPointerSizeLog2));
+  __ Add(x3, x6, Operand(x2, LSL, kPointerSizeLog2));
   __ Add(x3, x3, Operand(StandardFrameConstants::kCallerSPOffset));
   __ SmiTag(x2);
 
   // x1 : function
   // x2 : number of parameters (tagged)
   // x3 : parameters pointer
+  // x6 : JavaScript frame pointer
   //
   // Returns pointer to result object in x0.
 
@@ -5109,7 +4986,7 @@
   Register caller_ctx = x12;
   Label runtime;
   Label adaptor_frame, try_allocate;
-  __ Ldr(caller_fp, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
+  __ Ldr(caller_fp, MemOperand(x6, StandardFrameConstants::kCallerFPOffset));
   __ Ldr(
       caller_ctx,
       MemOperand(caller_fp, CommonFrameConstants::kContextOrFrameTypeOffset));
@@ -5180,7 +5057,7 @@
   // Do the allocation of all three objects in one go. Assign this to x0, as it
   // will be returned to the caller.
   Register alloc_obj = x0;
-  __ Allocate(size, alloc_obj, x11, x12, &runtime, TAG_OBJECT);
+  __ Allocate(size, alloc_obj, x11, x12, &runtime, NO_ALLOCATION_FLAGS);
 
   // Get the arguments boilerplate from the current (global) context.
 
@@ -5364,20 +5241,20 @@
   // -----------------------------------
   __ AssertFunction(x1);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make x2 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ Mov(x2, fp);
-    __ B(&loop_entry);
-    __ Bind(&loop);
+  // Make x2 point to the JavaScript frame.
+  __ Mov(x2, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ Ldr(x2, MemOperand(x2, StandardFrameConstants::kCallerFPOffset));
-    __ Bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ Ldr(x3, MemOperand(x2, StandardFrameConstants::kFunctionOffset));
     __ Cmp(x3, x1);
-    __ B(ne, &loop);
+    __ B(eq, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ Bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -5414,7 +5291,7 @@
   Label allocate, done_allocate;
   __ Mov(x1, JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize);
   __ Add(x1, x1, Operand(x0, LSL, kPointerSizeLog2));
-  __ Allocate(x1, x3, x4, x5, &allocate, TAG_OBJECT);
+  __ Allocate(x1, x3, x4, x5, &allocate, NO_ALLOCATION_FLAGS);
   __ Bind(&done_allocate);
 
   // Compute arguments.length in x6.
@@ -5807,9 +5684,15 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
 
-  // FunctionCallbackArguments: context, callee and call data.
+  // FunctionCallbackArguments
+
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
+
+  // context, callee and call data.
   __ Push(context, callee, call_data);
 
   if (!is_lazy()) {
@@ -5833,7 +5716,7 @@
 
   // Allocate the v8::Arguments structure in the arguments' space, since it's
   // not controlled by GC.
-  const int kApiStackSpace = 4;
+  const int kApiStackSpace = 3;
 
   // Allocate space for CallApiFunctionAndReturn can store some scratch
   // registeres on the stack.
@@ -5849,10 +5732,9 @@
   // FunctionCallbackInfo::implicit_args_ and FunctionCallbackInfo::values_
   __ Add(x10, args, Operand((FCA::kArgsLength - 1 + argc()) * kPointerSize));
   __ Stp(args, x10, MemOperand(x0, 0 * kPointerSize));
-  // FunctionCallbackInfo::length_ = argc and
-  // FunctionCallbackInfo::is_construct_call = 0
+  // FunctionCallbackInfo::length_ = argc
   __ Mov(x10, argc());
-  __ Stp(x10, xzr, MemOperand(x0, 2 * kPointerSize));
+  __ Str(x10, MemOperand(x0, 2 * kPointerSize));
 
   ExternalReference thunk_ref =
       ExternalReference::invoke_function_callback(masm->isolate());
@@ -5869,9 +5751,9 @@
   }
   MemOperand return_value_operand(fp, return_value_offset * kPointerSize);
   int stack_space = 0;
-  MemOperand is_construct_call_operand =
-      MemOperand(masm->StackPointer(), 4 * kPointerSize);
-  MemOperand* stack_space_operand = &is_construct_call_operand;
+  MemOperand length_operand =
+      MemOperand(masm->StackPointer(), 3 * kPointerSize);
+  MemOperand* stack_space_operand = &length_operand;
   stack_space = argc() + FCA::kArgsLength + 1;
   stack_space_operand = NULL;
 
@@ -5883,15 +5765,34 @@
 
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- sp[0]                         : name
-  //  -- sp[8 .. (8 + kArgsLength*8)]  : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- x2                            : api_function_address
-  // -----------------------------------
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
 
-  Register api_function_address = ApiGetterDescriptor::function_address();
-  DCHECK(api_function_address.is(x2));
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
+  Register scratch = x4;
+  Register scratch2 = x5;
+  Register scratch3 = x6;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
+
+  __ Push(receiver);
+
+  __ LoadRoot(scratch, Heap::kUndefinedValueRootIndex);
+  __ Mov(scratch2, Operand(ExternalReference::isolate_address(isolate())));
+  __ Ldr(scratch3, FieldMemOperand(callback, AccessorInfo::kDataOffset));
+  __ Push(scratch3, scratch, scratch, scratch2, holder);
+  __ Push(Smi::FromInt(0));  // should_throw_on_error -> false
+  __ Ldr(scratch, FieldMemOperand(callback, AccessorInfo::kNameOffset));
+  __ Push(scratch);
 
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
@@ -5918,6 +5819,11 @@
   ExternalReference thunk_ref =
       ExternalReference::invoke_accessor_getter_callback(isolate());
 
+  Register api_function_address = x2;
+  __ Ldr(scratch, FieldMemOperand(callback, AccessorInfo::kJsGetterOffset));
+  __ Ldr(api_function_address,
+         FieldMemOperand(scratch, Foreign::kForeignAddressOffset));
+
   const int spill_offset = 1 + kApiStackSpace;
   // +3 is to skip prolog, return address and name handle.
   MemOperand return_value_operand(
@@ -5927,7 +5833,6 @@
                            return_value_operand, NULL);
 }
 
-
 #undef __
 
 }  // namespace internal
diff --git a/src/arm64/codegen-arm64.cc b/src/arm64/codegen-arm64.cc
index c2073f1..990dd41 100644
--- a/src/arm64/codegen-arm64.cc
+++ b/src/arm64/codegen-arm64.cc
@@ -175,8 +175,8 @@
   Register map_root = array_size;
   __ LoadRoot(map_root, Heap::kFixedDoubleArrayMapRootIndex);
   __ SmiTag(x11, length);
-  __ Str(x11, MemOperand(array, FixedDoubleArray::kLengthOffset));
-  __ Str(map_root, MemOperand(array, HeapObject::kMapOffset));
+  __ Str(x11, FieldMemOperand(array, FixedDoubleArray::kLengthOffset));
+  __ Str(map_root, FieldMemOperand(array, HeapObject::kMapOffset));
 
   __ Str(target_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
   __ RecordWriteField(receiver, HeapObject::kMapOffset, target_map, scratch,
@@ -184,18 +184,18 @@
                       OMIT_SMI_CHECK);
 
   // Replace receiver's backing store with newly created FixedDoubleArray.
-  __ Add(x10, array, kHeapObjectTag);
-  __ Str(x10, FieldMemOperand(receiver, JSObject::kElementsOffset));
-  __ RecordWriteField(receiver, JSObject::kElementsOffset, x10,
-                      scratch, kLRHasBeenSaved, kDontSaveFPRegs,
-                      EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
+  __ Move(x10, array);
+  __ Str(array, FieldMemOperand(receiver, JSObject::kElementsOffset));
+  __ RecordWriteField(receiver, JSObject::kElementsOffset, x10, scratch,
+                      kLRHasBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
 
   // Prepare for conversion loop.
   Register src_elements = x10;
   Register dst_elements = x11;
   Register dst_end = x12;
   __ Add(src_elements, elements, FixedArray::kHeaderSize - kHeapObjectTag);
-  __ Add(dst_elements, array, FixedDoubleArray::kHeaderSize);
+  __ Add(dst_elements, array, FixedDoubleArray::kHeaderSize - kHeapObjectTag);
   __ Add(dst_end, dst_elements, Operand(length, LSL, kDoubleSizeLog2));
 
   FPRegister nan_d = d1;
@@ -282,8 +282,8 @@
   Register map_root = array_size;
   __ LoadRoot(map_root, Heap::kFixedArrayMapRootIndex);
   __ SmiTag(x11, length);
-  __ Str(x11, MemOperand(array, FixedDoubleArray::kLengthOffset));
-  __ Str(map_root, MemOperand(array, HeapObject::kMapOffset));
+  __ Str(x11, FieldMemOperand(array, FixedDoubleArray::kLengthOffset));
+  __ Str(map_root, FieldMemOperand(array, HeapObject::kMapOffset));
 
   // Prepare for conversion loop.
   Register src_elements = x10;
@@ -293,7 +293,7 @@
   __ LoadRoot(the_hole, Heap::kTheHoleValueRootIndex);
   __ Add(src_elements, elements,
          FixedDoubleArray::kHeaderSize - kHeapObjectTag);
-  __ Add(dst_elements, array, FixedArray::kHeaderSize);
+  __ Add(dst_elements, array, FixedArray::kHeaderSize - kHeapObjectTag);
   __ Add(dst_end, dst_elements, Operand(length, LSL, kPointerSizeLog2));
 
   // Allocating heap numbers in the loop below can fail and cause a jump to
@@ -307,8 +307,7 @@
   __ Cmp(dst_elements, dst_end);
   __ B(lt, &initialization_loop);
 
-  __ Add(dst_elements, array, FixedArray::kHeaderSize);
-  __ Add(array, array, kHeapObjectTag);
+  __ Add(dst_elements, array, FixedArray::kHeaderSize - kHeapObjectTag);
 
   Register heap_num_map = x15;
   __ LoadRoot(heap_num_map, Heap::kHeapNumberMapRootIndex);
diff --git a/src/arm64/cpu-arm64.cc b/src/arm64/cpu-arm64.cc
index 712dbbd..7c1084f 100644
--- a/src/arm64/cpu-arm64.cc
+++ b/src/arm64/cpu-arm64.cc
@@ -58,14 +58,16 @@
   __asm__ __volatile__ (  // NOLINT
     // Clean every line of the D cache containing the target data.
     "0:                                \n\t"
-    // dc      : Data Cache maintenance
-    //    c    : Clean
-    //     va  : by (Virtual) Address
-    //       u : to the point of Unification
-    // The point of unification for a processor is the point by which the
-    // instruction and data caches are guaranteed to see the same copy of a
-    // memory location. See ARM DDI 0406B page B2-12 for more information.
-    "dc   cvau, %[dline]                \n\t"
+    // dc       : Data Cache maintenance
+    //    c     : Clean
+    //     i    : Invalidate
+    //      va  : by (Virtual) Address
+    //        c : to the point of Coherency
+    // See ARM DDI 0406B page B2-12 for more information.
+    // We would prefer to use "cvau" (clean to the point of unification) here
+    // but we use "civac" to work around Cortex-A53 errata 819472, 826319,
+    // 827319 and 824069.
+    "dc   civac, %[dline]               \n\t"
     "add  %[dline], %[dline], %[dsize]  \n\t"
     "cmp  %[dline], %[end]              \n\t"
     "b.lt 0b                            \n\t"
diff --git a/src/arm64/interface-descriptors-arm64.cc b/src/arm64/interface-descriptors-arm64.cc
index f307aeb..d23eb58 100644
--- a/src/arm64/interface-descriptors-arm64.cc
+++ b/src/arm64/interface-descriptors-arm64.cc
@@ -48,16 +48,11 @@
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return x0; }
 
 
-const Register InstanceOfDescriptor::LeftRegister() { return x1; }
-const Register InstanceOfDescriptor::RightRegister() { return x0; }
-
-
 const Register StringCompareDescriptor::LeftRegister() { return x1; }
 const Register StringCompareDescriptor::RightRegister() { return x0; }
 
-
-const Register ApiGetterDescriptor::function_address() { return x2; }
-
+const Register ApiGetterDescriptor::HolderRegister() { return x0; }
+const Register ApiGetterDescriptor::CallbackRegister() { return x3; }
 
 const Register MathPowTaggedDescriptor::exponent() { return x11; }
 
@@ -68,6 +63,8 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return x0; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return x3; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return x0; }
+const Register HasPropertyDescriptor::KeyRegister() { return x3; }
 
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -273,13 +270,16 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {x0};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  // register state
+  // x1: function
+  // x2: allocation site with elements kind
+  // x0: number of arguments to the constructor function
+  Register registers[] = {x1, x2, x0};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // x1: function
@@ -348,6 +348,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {x1};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -430,9 +435,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister,
-      kInterpreterDispatchTableRegister};
+      kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+      kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -467,6 +471,15 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      x0,  // the value to pass to the generator
+      x1,  // the JSGeneratorObject to resume
+      x2   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 }  // namespace internal
 }  // namespace v8
diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc
index 12ddd81..8a54e20 100644
--- a/src/arm64/macro-assembler-arm64.cc
+++ b/src/arm64/macro-assembler-arm64.cc
@@ -1373,10 +1373,6 @@
       Mrs(fpcr, FPCR);
     }
 
-    // Settings overridden by ConfiugreFPCR():
-    //   - Assert that default-NaN mode is set.
-    Tbz(fpcr, DN_offset, &unexpected_mode);
-
     // Settings left to their default values:
     //   - Assert that flush-to-zero is not set.
     Tbnz(fpcr, FZ_offset, &unexpected_mode);
@@ -1393,31 +1389,13 @@
 }
 
 
-void MacroAssembler::ConfigureFPCR() {
-  UseScratchRegisterScope temps(this);
-  Register fpcr = temps.AcquireX();
-  Mrs(fpcr, FPCR);
-
-  // If necessary, enable default-NaN mode. The default values of the other FPCR
-  // options should be suitable, and AssertFPCRState will verify that.
-  Label no_write_required;
-  Tbnz(fpcr, DN_offset, &no_write_required);
-
-  Orr(fpcr, fpcr, DN_mask);
-  Msr(FPCR, fpcr);
-
-  Bind(&no_write_required);
-  AssertFPCRState(fpcr);
-}
-
-
 void MacroAssembler::CanonicalizeNaN(const FPRegister& dst,
                                      const FPRegister& src) {
   AssertFPCRState();
 
-  // With DN=1 and RMode=FPTieEven, subtracting 0.0 preserves all inputs except
-  // for NaNs, which become the default NaN. We use fsub rather than fadd
-  // because sub preserves -0.0 inputs: -0.0 + 0.0 = 0.0, but -0.0 - 0.0 = -0.0.
+  // Subtracting 0.0 preserves all inputs except for signalling NaNs, which
+  // become quiet NaNs. We use fsub rather than fadd because fsub preserves -0.0
+  // inputs: -0.0 + 0.0 = 0.0, but -0.0 - 0.0 = -0.0.
   Fsub(dst, src, fp_zero);
 }
 
@@ -1558,7 +1536,7 @@
                                                      Label* no_memento_found) {
   Label map_check;
   Label top_check;
-  ExternalReference new_space_allocation_top =
+  ExternalReference new_space_allocation_top_adr =
       ExternalReference::new_space_allocation_top_address(isolate());
   const int kMementoMapOffset = JSArray::kSize - kHeapObjectTag;
   const int kMementoEndOffset = kMementoMapOffset + AllocationMemento::kSize;
@@ -1568,7 +1546,9 @@
   Add(scratch1, receiver, kMementoEndOffset);
   // If the object is in new space, we need to check whether it is on the same
   // page as the current top.
-  Eor(scratch2, scratch1, new_space_allocation_top);
+  Mov(scratch2, new_space_allocation_top_adr);
+  Ldr(scratch2, MemOperand(scratch2));
+  Eor(scratch2, scratch1, scratch2);
   Tst(scratch2, ~Page::kPageAlignmentMask);
   B(eq, &top_check);
   // The object is on a different page than allocation top. Bail out if the
@@ -1582,7 +1562,9 @@
   // If top is on the same page as the current object, we need to check whether
   // we are below top.
   bind(&top_check);
-  Cmp(scratch1, new_space_allocation_top);
+  Mov(scratch2, new_space_allocation_top_adr);
+  Ldr(scratch2, MemOperand(scratch2));
+  Cmp(scratch1, scratch2);
   B(gt, no_memento_found);
   // Memento map check.
   bind(&map_check);
@@ -1659,6 +1641,17 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    AssertNotSmi(object, kOperandIsASmiAndNotAGeneratorObject);
+
+    UseScratchRegisterScope temps(this);
+    Register temp = temps.AcquireX();
+
+    CompareObjectType(object, temp, temp, JS_GENERATOR_OBJECT_TYPE);
+    Check(eq, kOperandIsNotAGeneratorObject);
+  }
+}
 
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
@@ -3041,6 +3034,7 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -3101,14 +3095,16 @@
 
   // Calculate new top and bail out if new space is exhausted.
   Adds(result_end, result, object_size);
-  Ccmp(result_end, alloc_limit, CFlag, cc);
+  Ccmp(result_end, alloc_limit, NoFlag, cc);
   B(hi, gc_required);
-  Str(result_end, MemOperand(top_address));
 
-  // Tag the object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    ObjectTag(result, result);
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    Str(result_end, MemOperand(top_address));
   }
+
+  // Tag the object.
+  ObjectTag(result, result);
 }
 
 
@@ -3181,16 +3177,88 @@
     Check(eq, kUnalignedAllocationInNewSpace);
   }
 
-  Ccmp(result_end, alloc_limit, CFlag, cc);
+  Ccmp(result_end, alloc_limit, NoFlag, cc);
   B(hi, gc_required);
-  Str(result_end, MemOperand(top_address));
 
-  // Tag the object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    ObjectTag(result, result);
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    Str(result_end, MemOperand(top_address));
   }
+
+  // Tag the object.
+  ObjectTag(result, result);
 }
 
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register scratch1, Register scratch2,
+                                  AllocationFlags flags) {
+  DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+
+  DCHECK(!AreAliased(result, scratch1, scratch2));
+  DCHECK(result.Is64Bits() && scratch1.Is64Bits() && scratch2.Is64Bits());
+
+  // Make object size into bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    object_size *= kPointerSize;
+  }
+  DCHECK(0 == (object_size & kObjectAlignmentMask));
+
+  ExternalReference heap_allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  // Set up allocation top address and allocation limit registers.
+  Register top_address = scratch1;
+  Register result_end = scratch2;
+  Mov(top_address, Operand(heap_allocation_top));
+  Ldr(result, MemOperand(top_address));
+
+  // We can ignore DOUBLE_ALIGNMENT flags here because doubles and pointers have
+  // the same alignment on ARM64.
+  STATIC_ASSERT(kPointerAlignment == kDoubleAlignment);
+
+  // Calculate new top and write it back.
+  Adds(result_end, result, object_size);
+  Str(result_end, MemOperand(top_address));
+
+  ObjectTag(result, result);
+}
+
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, Register scratch,
+                                  AllocationFlags flags) {
+  // |object_size| and |result_end| may overlap, other registers must not.
+  DCHECK(!AreAliased(object_size, result, scratch));
+  DCHECK(!AreAliased(result_end, result, scratch));
+  DCHECK(object_size.Is64Bits() && result.Is64Bits() && scratch.Is64Bits() &&
+         result_end.Is64Bits());
+
+  ExternalReference heap_allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  // Set up allocation top address and allocation limit registers.
+  Register top_address = scratch;
+  Mov(top_address, heap_allocation_top);
+  Ldr(result, MemOperand(top_address));
+
+  // We can ignore DOUBLE_ALIGNMENT flags here because doubles and pointers have
+  // the same alignment on ARM64.
+  STATIC_ASSERT(kPointerAlignment == kDoubleAlignment);
+
+  // Calculate new top and write it back.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    Adds(result_end, result, Operand(object_size, LSL, kPointerSizeLog2));
+  } else {
+    Adds(result_end, result, object_size);
+  }
+  Str(result_end, MemOperand(top_address));
+
+  if (emit_debug_code()) {
+    Tst(result_end, kObjectAlignmentMask);
+    Check(eq, kUnalignedAllocationInNewSpace);
+  }
+
+  ObjectTag(result, result);
+}
 
 void MacroAssembler::AllocateTwoByteString(Register result,
                                            Register length,
@@ -3207,12 +3275,8 @@
   Bic(scratch1, scratch1, kObjectAlignmentMask);
 
   // Allocate two-byte string in new space.
-  Allocate(scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result,
@@ -3236,12 +3300,8 @@
   Bic(scratch1, scratch1, kObjectAlignmentMask);
 
   // Allocate one-byte string in new space.
-  Allocate(scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result, length, Heap::kOneByteStringMapRootIndex,
@@ -3255,7 +3315,7 @@
                                                Register scratch2,
                                                Label* gc_required) {
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result,
                       length,
@@ -3269,12 +3329,8 @@
                                                Register scratch1,
                                                Register scratch2,
                                                Label* gc_required) {
-  Allocate(ConsString::kSize,
-           result,
-           scratch1,
-           scratch2,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kConsOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -3288,7 +3344,7 @@
                                                  Label* gc_required) {
   DCHECK(!AreAliased(result, length, scratch1, scratch2));
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result,
                       length,
@@ -3305,7 +3361,7 @@
                                                  Label* gc_required) {
   DCHECK(!AreAliased(result, length, scratch1, scratch2));
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kSlicedOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -3359,14 +3415,14 @@
   if (value.IsSameSizeAndType(heap_number_map)) {
     STATIC_ASSERT(HeapObject::kMapOffset + kPointerSize ==
                   HeapNumber::kValueOffset);
-    Stp(heap_number_map, value, MemOperand(result, HeapObject::kMapOffset));
+    Stp(heap_number_map, value,
+        FieldMemOperand(result, HeapObject::kMapOffset));
   } else {
-    Str(heap_number_map, MemOperand(result, HeapObject::kMapOffset));
+    Str(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
     if (value.IsValid()) {
-      Str(value, MemOperand(result, HeapNumber::kValueOffset));
+      Str(value, FieldMemOperand(result, HeapNumber::kValueOffset));
     }
   }
-  ObjectTag(result, result);
 }
 
 
@@ -3390,7 +3446,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch1, scratch2);
diff --git a/src/arm64/macro-assembler-arm64.h b/src/arm64/macro-assembler-arm64.h
index 4b6b3c0..67e64f4 100644
--- a/src/arm64/macro-assembler-arm64.h
+++ b/src/arm64/macro-assembler-arm64.h
@@ -21,12 +21,15 @@
   #define ASM_UNIMPLEMENTED_BREAK(message)                                   \
   __ Debug(message, __LINE__,                                                \
            FLAG_ignore_asm_unimplemented_break ? NO_PARAM : BREAK)
-  #define ASM_LOCATION(message)                                              \
-  __ Debug("LOCATION: " message, __LINE__, NO_PARAM)
+#if DEBUG
+#define ASM_LOCATION(message) __ Debug("LOCATION: " message, __LINE__, NO_PARAM)
 #else
-  #define ASM_UNIMPLEMENTED(message)
-  #define ASM_UNIMPLEMENTED_BREAK(message)
-  #define ASM_LOCATION(message)
+#define ASM_LOCATION(message)
+#endif
+#else
+#define ASM_UNIMPLEMENTED(message)
+#define ASM_UNIMPLEMENTED_BREAK(message)
+#define ASM_LOCATION(message)
 #endif
 
 
@@ -39,8 +42,8 @@
 #define kReturnRegister2 x2
 #define kJSFunctionRegister x1
 #define kContextRegister cp
+#define kAllocateSizeRegister x1
 #define kInterpreterAccumulatorRegister x0
-#define kInterpreterRegisterFileRegister x18
 #define kInterpreterBytecodeOffsetRegister x19
 #define kInterpreterBytecodeArrayRegister x20
 #define kInterpreterDispatchTableRegister x21
@@ -865,7 +868,6 @@
   inline void InitializeRootRegister();
 
   void AssertFPCRState(Register fpcr = NoReg);
-  void ConfigureFPCR();
   void CanonicalizeNaN(const FPRegister& dst, const FPRegister& src);
   void CanonicalizeNaN(const FPRegister& reg) {
     CanonicalizeNaN(reg, reg);
@@ -970,6 +972,10 @@
   // Abort execution if argument is not a JSFunction, enabled via --debug-code.
   void AssertFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSBoundFunction,
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
@@ -1306,7 +1312,6 @@
   //
   // If the new space is exhausted control continues at the gc_required label.
   // In this case, the result and scratch registers may still be clobbered.
-  // If flags includes TAG_OBJECT, the result is tagged as as a heap object.
   void Allocate(Register object_size, Register result, Register result_end,
                 Register scratch, Label* gc_required, AllocationFlags flags);
 
@@ -1317,6 +1322,15 @@
                 Label* gc_required,
                 AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(Register object_size, Register result, Register result_end,
+                    Register scratch, AllocationFlags flags);
+
+  void FastAllocate(int object_size, Register result, Register scratch1,
+                    Register scratch2, AllocationFlags flags);
+
   void AllocateTwoByteString(Register result,
                              Register length,
                              Register scratch1,
diff --git a/src/arm64/simulator-arm64.h b/src/arm64/simulator-arm64.h
index 724c767..586f204 100644
--- a/src/arm64/simulator-arm64.h
+++ b/src/arm64/simulator-arm64.h
@@ -14,6 +14,7 @@
 #include "src/arm64/disasm-arm64.h"
 #include "src/arm64/instrument-arm64.h"
 #include "src/assembler.h"
+#include "src/base/compiler-specific.h"
 #include "src/globals.h"
 #include "src/utils.h"
 
@@ -794,7 +795,7 @@
   // Output stream.
   FILE* stream_;
   PrintDisassembler* print_disasm_;
-  void PRINTF_METHOD_CHECKING TraceSim(const char* format, ...);
+  void PRINTF_FORMAT(2, 3) TraceSim(const char* format, ...);
 
   // Instrumentation.
   Instrument* instrument_;
diff --git a/src/assembler.cc b/src/assembler.cc
index a912bb6..17cd56b 100644
--- a/src/assembler.cc
+++ b/src/assembler.cc
@@ -201,7 +201,6 @@
 
 void AssemblerBase::FlushICache(Isolate* isolate, void* start, size_t size) {
   if (size == 0) return;
-  if (CpuFeatures::IsSupported(COHERENT_CACHE)) return;
 
 #if defined(USE_SIMULATOR)
   Simulator::FlushICache(isolate->simulator_i_cache(), start, size);
@@ -514,7 +513,8 @@
     if (RelocInfo::IsComment(rmode)) {
       WriteData(rinfo->data());
     } else if (RelocInfo::IsConstPool(rmode) ||
-               RelocInfo::IsVeneerPool(rmode)) {
+               RelocInfo::IsVeneerPool(rmode) ||
+               RelocInfo::IsDeoptId(rmode)) {
       WriteIntData(static_cast<int>(rinfo->data()));
     }
   }
@@ -705,7 +705,8 @@
             Advance(kIntSize);
           }
         } else if (RelocInfo::IsConstPool(rmode) ||
-                   RelocInfo::IsVeneerPool(rmode)) {
+                   RelocInfo::IsVeneerPool(rmode) ||
+                   RelocInfo::IsDeoptId(rmode)) {
           if (SetMode(rmode)) {
             AdvanceReadInt();
             return;
@@ -828,6 +829,8 @@
       return "encoded internal reference";
     case DEOPT_REASON:
       return "deopt reason";
+    case DEOPT_ID:
+      return "deopt index";
     case CONST_POOL:
       return "constant pool";
     case VENEER_POOL:
@@ -846,6 +849,8 @@
       return "generator continuation";
     case WASM_MEMORY_REFERENCE:
       return "wasm memory reference";
+    case WASM_MEMORY_SIZE_REFERENCE:
+      return "wasm memory size reference";
     case NUMBER_OF_MODES:
     case PC_JUMP:
       UNREACHABLE();
@@ -933,6 +938,7 @@
     case STATEMENT_POSITION:
     case EXTERNAL_REFERENCE:
     case DEOPT_REASON:
+    case DEOPT_ID:
     case CONST_POOL:
     case VENEER_POOL:
     case DEBUG_BREAK_SLOT_AT_POSITION:
@@ -941,6 +947,7 @@
     case DEBUG_BREAK_SLOT_AT_TAIL_CALL:
     case GENERATOR_CONTINUATION:
     case WASM_MEMORY_REFERENCE:
+    case WASM_MEMORY_SIZE_REFERENCE:
     case NONE32:
     case NONE64:
       break;
@@ -1072,6 +1079,12 @@
   return ExternalReference(isolate->interpreter()->dispatch_table_address());
 }
 
+ExternalReference ExternalReference::interpreter_dispatch_counters(
+    Isolate* isolate) {
+  return ExternalReference(
+      isolate->interpreter()->bytecode_dispatch_counters_table());
+}
+
 ExternalReference::ExternalReference(StatsCounter* counter)
   : address_(reinterpret_cast<Address>(counter->GetInternalPointer())) {}
 
@@ -1255,6 +1268,26 @@
       Redirect(isolate, FUNCTION_ADDR(wasm::uint64_mod_wrapper)));
 }
 
+ExternalReference ExternalReference::wasm_word32_ctz(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(wasm::word32_ctz_wrapper)));
+}
+
+ExternalReference ExternalReference::wasm_word64_ctz(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(wasm::word64_ctz_wrapper)));
+}
+
+ExternalReference ExternalReference::wasm_word32_popcnt(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(wasm::word32_popcnt_wrapper)));
+}
+
+ExternalReference ExternalReference::wasm_word64_popcnt(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(wasm::word64_popcnt_wrapper)));
+}
+
 static void f64_acos_wrapper(double* param) { *param = std::acos(*param); }
 
 ExternalReference ExternalReference::f64_acos_wrapper_function(
@@ -2023,12 +2056,12 @@
 
 // Platform specific but identical code for all the platforms.
 
-
-void Assembler::RecordDeoptReason(const int reason, int raw_position) {
+void Assembler::RecordDeoptReason(const int reason, int raw_position, int id) {
   if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling()) {
     EnsureSpace ensure_space(this);
     RecordRelocInfo(RelocInfo::POSITION, raw_position);
     RecordRelocInfo(RelocInfo::DEOPT_REASON, reason);
+    RecordRelocInfo(RelocInfo::DEOPT_ID, id);
   }
 }
 
diff --git a/src/assembler.h b/src/assembler.h
index 192d16b..353abdb 100644
--- a/src/assembler.h
+++ b/src/assembler.h
@@ -384,9 +384,10 @@
     CODE_TARGET_WITH_ID,
     DEBUGGER_STATEMENT,  // Code target for the debugger statement.
     EMBEDDED_OBJECT,
-    CELL,
     // To relocate pointers into the wasm memory embedded in wasm code
     WASM_MEMORY_REFERENCE,
+    WASM_MEMORY_SIZE_REFERENCE,
+    CELL,
 
     // Everything after runtime_entry (inclusive) is not GC'ed.
     RUNTIME_ENTRY,
@@ -415,6 +416,7 @@
     VENEER_POOL,
 
     DEOPT_REASON,  // Deoptimization reason index.
+    DEOPT_ID,      // Deoptimization inlining id.
 
     // This is not an actual reloc mode, but used to encode a long pc jump that
     // cannot be encoded as part of another record.
@@ -430,7 +432,7 @@
     FIRST_REAL_RELOC_MODE = CODE_TARGET,
     LAST_REAL_RELOC_MODE = VENEER_POOL,
     LAST_CODE_ENUM = DEBUGGER_STATEMENT,
-    LAST_GCED_ENUM = WASM_MEMORY_REFERENCE,
+    LAST_GCED_ENUM = WASM_MEMORY_SIZE_REFERENCE,
     FIRST_SHAREABLE_RELOC_MODE = CELL,
   };
 
@@ -475,6 +477,9 @@
   static inline bool IsDeoptReason(Mode mode) {
     return mode == DEOPT_REASON;
   }
+  static inline bool IsDeoptId(Mode mode) {
+    return mode == DEOPT_ID;
+  }
   static inline bool IsPosition(Mode mode) {
     return mode == POSITION || mode == STATEMENT_POSITION;
   }
@@ -521,6 +526,9 @@
   static inline bool IsWasmMemoryReference(Mode mode) {
     return mode == WASM_MEMORY_REFERENCE;
   }
+  static inline bool IsWasmMemorySizeReference(Mode mode) {
+    return mode == WASM_MEMORY_SIZE_REFERENCE;
+  }
   static inline int ModeMask(Mode mode) { return 1 << mode; }
 
   // Accessors
@@ -547,6 +555,12 @@
   // constant pool, otherwise the pointer is embedded in the instruction stream.
   bool IsInConstantPool();
 
+  Address wasm_memory_reference();
+  uint32_t wasm_memory_size_reference();
+  void update_wasm_memory_reference(
+      Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+      ICacheFlushMode icache_flush_mode = SKIP_ICACHE_FLUSH);
+
   // this relocation applies to;
   // can only be called if IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)
   INLINE(Address target_address());
@@ -581,10 +595,6 @@
                                 ICacheFlushMode icache_flush_mode =
                                     FLUSH_ICACHE_IF_NEEDED));
 
-  INLINE(Address wasm_memory_reference());
-  INLINE(void update_wasm_memory_reference(
-      Address old_base, Address new_base, size_t old_size, size_t new_size,
-      ICacheFlushMode icache_flush_mode = SKIP_ICACHE_FLUSH));
   // Returns the address of the constant pool entry where the target address
   // is held.  This should only be called if IsInConstantPool returns true.
   INLINE(Address constant_pool_entry_address());
@@ -631,6 +641,8 @@
   INLINE(void WipeOut());
 
   template<typename StaticVisitor> inline void Visit(Heap* heap);
+
+  template <typename ObjectVisitor>
   inline void Visit(Isolate* isolate, ObjectVisitor* v);
 
   // Check whether this debug break slot has been patched with a call to the
@@ -909,6 +921,7 @@
   // ExternalReferenceTable in serialize.cc manually.
 
   static ExternalReference interpreter_dispatch_table_address(Isolate* isolate);
+  static ExternalReference interpreter_dispatch_counters(Isolate* isolate);
 
   static ExternalReference incremental_marking_record_write_function(
       Isolate* isolate);
@@ -948,6 +961,10 @@
   static ExternalReference wasm_int64_mod(Isolate* isolate);
   static ExternalReference wasm_uint64_div(Isolate* isolate);
   static ExternalReference wasm_uint64_mod(Isolate* isolate);
+  static ExternalReference wasm_word32_ctz(Isolate* isolate);
+  static ExternalReference wasm_word64_ctz(Isolate* isolate);
+  static ExternalReference wasm_word32_popcnt(Isolate* isolate);
+  static ExternalReference wasm_word64_popcnt(Isolate* isolate);
 
   static ExternalReference f64_acos_wrapper_function(Isolate* isolate);
   static ExternalReference f64_asin_wrapper_function(Isolate* isolate);
diff --git a/src/ast/ast-expression-rewriter.cc b/src/ast/ast-expression-rewriter.cc
index edee91d..b39f7f1 100644
--- a/src/ast/ast-expression-rewriter.cc
+++ b/src/ast/ast-expression-rewriter.cc
@@ -169,12 +169,10 @@
 
 
 void AstExpressionRewriter::VisitForOfStatement(ForOfStatement* node) {
-  AST_REWRITE_PROPERTY(Expression, node, each);
   AST_REWRITE_PROPERTY(Expression, node, assign_iterator);
   AST_REWRITE_PROPERTY(Expression, node, next_result);
   AST_REWRITE_PROPERTY(Expression, node, result_done);
   AST_REWRITE_PROPERTY(Expression, node, assign_each);
-  AST_REWRITE_PROPERTY(Expression, node, subject);
   AST_REWRITE_PROPERTY(Statement, node, body);
 }
 
diff --git a/src/ast/ast-expression-visitor.cc b/src/ast/ast-expression-visitor.cc
index dbf4ea4..91d4afb 100644
--- a/src/ast/ast-expression-visitor.cc
+++ b/src/ast/ast-expression-visitor.cc
@@ -170,8 +170,6 @@
 
 
 void AstExpressionVisitor::VisitForOfStatement(ForOfStatement* stmt) {
-  RECURSE(Visit(stmt->iterable()));
-  RECURSE(Visit(stmt->each()));
   RECURSE(Visit(stmt->assign_iterator()));
   RECURSE(Visit(stmt->next_result()));
   RECURSE(Visit(stmt->result_done()));
diff --git a/src/ast/ast-expression-visitor.h b/src/ast/ast-expression-visitor.h
index 545a45c..283bc7b 100644
--- a/src/ast/ast-expression-visitor.h
+++ b/src/ast/ast-expression-visitor.h
@@ -27,10 +27,10 @@
   virtual void VisitExpression(Expression* expression) = 0;
   int depth() { return depth_; }
 
- private:
   void VisitDeclarations(ZoneList<Declaration*>* d) override;
   void VisitStatements(ZoneList<Statement*>* s) override;
 
+ private:
   DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
 
 #define DECLARE_VISIT(type) void Visit##type(type* node) override;
diff --git a/src/ast/ast-numbering.cc b/src/ast/ast-numbering.cc
index f54333f..bd96026 100644
--- a/src/ast/ast-numbering.cc
+++ b/src/ast/ast-numbering.cc
@@ -17,6 +17,7 @@
         isolate_(isolate),
         zone_(zone),
         next_id_(BailoutId::FirstUsable().ToInt()),
+        yield_count_(0),
         properties_(zone),
         slot_cache_(zone),
         dont_optimize_reason_(kNoReason) {
@@ -31,8 +32,6 @@
   AST_NODE_LIST(DEFINE_VISIT)
 #undef DEFINE_VISIT
 
-  bool Finish(FunctionLiteral* node);
-
   void VisitVariableProxyReference(VariableProxy* node);
   void VisitPropertyReference(Property* node);
   void VisitReference(Expression* expr);
@@ -76,6 +75,7 @@
   Isolate* isolate_;
   Zone* zone_;
   int next_id_;
+  int yield_count_;
   AstProperties properties_;
   // The slot cache allows us to reuse certain feedback vector slots.
   FeedbackVectorSlotCache slot_cache_;
@@ -217,6 +217,8 @@
 
 
 void AstNumberingVisitor::VisitYield(Yield* node) {
+  node->set_yield_id(yield_count_);
+  yield_count_++;
   IncrementNodeCount();
   DisableOptimization(kYield);
   ReserveFeedbackSlots(node);
@@ -284,8 +286,10 @@
   IncrementNodeCount();
   DisableSelfOptimization();
   node->set_base_id(ReserveIdRange(DoWhileStatement::num_ids()));
+  node->set_first_yield_id(yield_count_);
   Visit(node->body());
   Visit(node->cond());
+  node->set_yield_count(yield_count_ - node->first_yield_id());
 }
 
 
@@ -293,8 +297,10 @@
   IncrementNodeCount();
   DisableSelfOptimization();
   node->set_base_id(ReserveIdRange(WhileStatement::num_ids()));
+  node->set_first_yield_id(yield_count_);
   Visit(node->cond());
   Visit(node->body());
+  node->set_yield_count(yield_count_ - node->first_yield_id());
 }
 
 
@@ -377,9 +383,11 @@
   IncrementNodeCount();
   DisableSelfOptimization();
   node->set_base_id(ReserveIdRange(ForInStatement::num_ids()));
+  Visit(node->enumerable());  // Not part of loop.
+  node->set_first_yield_id(yield_count_);
   Visit(node->each());
-  Visit(node->enumerable());
   Visit(node->body());
+  node->set_yield_count(yield_count_ - node->first_yield_id());
   ReserveFeedbackSlots(node);
 }
 
@@ -388,11 +396,13 @@
   IncrementNodeCount();
   DisableCrankshaft(kForOfStatement);
   node->set_base_id(ReserveIdRange(ForOfStatement::num_ids()));
-  Visit(node->assign_iterator());
+  Visit(node->assign_iterator());  // Not part of loop.
+  node->set_first_yield_id(yield_count_);
   Visit(node->next_result());
   Visit(node->result_done());
   Visit(node->assign_each());
   Visit(node->body());
+  node->set_yield_count(yield_count_ - node->first_yield_id());
   ReserveFeedbackSlots(node);
 }
 
@@ -440,10 +450,12 @@
   IncrementNodeCount();
   DisableSelfOptimization();
   node->set_base_id(ReserveIdRange(ForStatement::num_ids()));
-  if (node->init() != NULL) Visit(node->init());
+  if (node->init() != NULL) Visit(node->init());  // Not part of loop.
+  node->set_first_yield_id(yield_count_);
   if (node->cond() != NULL) Visit(node->cond());
   if (node->next() != NULL) Visit(node->next());
   Visit(node->body());
+  node->set_yield_count(yield_count_ - node->first_yield_id());
 }
 
 
@@ -554,13 +566,6 @@
 }
 
 
-bool AstNumberingVisitor::Finish(FunctionLiteral* node) {
-  node->set_ast_properties(&properties_);
-  node->set_dont_optimize_reason(dont_optimize_reason());
-  return !HasStackOverflow();
-}
-
-
 bool AstNumberingVisitor::Renumber(FunctionLiteral* node) {
   Scope* scope = node->scope();
   if (scope->new_target_var()) DisableCrankshaft(kSuperReference);
@@ -577,7 +582,10 @@
   VisitDeclarations(scope->declarations());
   VisitStatements(node->body());
 
-  return Finish(node);
+  node->set_ast_properties(&properties_);
+  node->set_dont_optimize_reason(dont_optimize_reason());
+  node->set_yield_count(yield_count_);
+  return !HasStackOverflow();
 }
 
 
diff --git a/src/ast/ast-numbering.h b/src/ast/ast-numbering.h
index 0ac1ef2..a1d3137 100644
--- a/src/ast/ast-numbering.h
+++ b/src/ast/ast-numbering.h
@@ -14,11 +14,27 @@
 class Zone;
 
 namespace AstNumbering {
-// Assign type feedback IDs and bailout IDs to an AST node tree.
-//
+// Assign type feedback IDs, bailout IDs, and generator yield IDs to an AST node
+// tree.
 bool Renumber(Isolate* isolate, Zone* zone, FunctionLiteral* function);
 }
 
+// Some details on yield IDs
+// -------------------------
+//
+// In order to assist Ignition in generating bytecode for a generator function,
+// we assign a unique number (the yield ID) to each Yield node in its AST. We
+// also annotate loops with the number of yields they contain (loop.yield_count)
+// and the smallest ID of those (loop.first_yield_id), and we annotate the
+// function itself with the number of yields it contains (function.yield_count).
+//
+// The way in which we choose the IDs is simply by enumerating the Yield nodes.
+// Ignition relies on the following properties:
+// - For each loop l and each yield y of l:
+//     l.first_yield_id  <=  y.yield_id  <  l.first_yield_id + l.yield_count
+// - For the generator function f itself and each yield y of f:
+//                    0  <=  y.yield_id  <  f.yield_count
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/ast/ast-type-bounds.h b/src/ast/ast-type-bounds.h
new file mode 100644
index 0000000..ec26fdf
--- /dev/null
+++ b/src/ast/ast-type-bounds.h
@@ -0,0 +1,40 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// A container to associate type bounds with AST Expression nodes.
+
+#ifndef V8_AST_AST_TYPE_BOUNDS_H_
+#define V8_AST_AST_TYPE_BOUNDS_H_
+
+#include "src/types.h"
+#include "src/zone-containers.h"
+
+namespace v8 {
+namespace internal {
+
+class Expression;
+
+class AstTypeBounds {
+ public:
+  explicit AstTypeBounds(Zone* zone) : bounds_map_(zone) {}
+  ~AstTypeBounds() {}
+
+  Bounds get(Expression* expression) const {
+    ZoneMap<Expression*, Bounds>::const_iterator i =
+        bounds_map_.find(expression);
+    return (i != bounds_map_.end()) ? i->second : Bounds::Unbounded();
+  }
+
+  void set(Expression* expression, Bounds bounds) {
+    bounds_map_[expression] = bounds;
+  }
+
+ private:
+  ZoneMap<Expression*, Bounds> bounds_map_;
+};
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_AST_AST_TYPE_BOUNDS_H_
diff --git a/src/ast/ast-value-factory.h b/src/ast/ast-value-factory.h
index 8b3f0ed..041581b 100644
--- a/src/ast/ast-value-factory.h
+++ b/src/ast/ast-value-factory.h
@@ -242,6 +242,8 @@
 #define STRING_CONSTANTS(F)                     \
   F(anonymous_function, "(anonymous function)") \
   F(arguments, "arguments")                     \
+  F(async, "async")                             \
+  F(await, "await")                             \
   F(constructor, "constructor")                 \
   F(default, "default")                         \
   F(done, "done")                               \
diff --git a/src/ast/ast.cc b/src/ast/ast.cc
index e8b6269..7c83e3b 100644
--- a/src/ast/ast.cc
+++ b/src/ast/ast.cc
@@ -813,6 +813,291 @@
   }
 }
 
+// ----------------------------------------------------------------------------
+// Implementation of AstTraversalVisitor
+
+AstTraversalVisitor::AstTraversalVisitor(Isolate* isolate) {
+  InitializeAstVisitor(isolate);
+}
+
+void AstTraversalVisitor::VisitVariableDeclaration(VariableDeclaration* decl) {}
+
+void AstTraversalVisitor::VisitFunctionDeclaration(FunctionDeclaration* decl) {
+  Visit(decl->fun());
+}
+
+void AstTraversalVisitor::VisitImportDeclaration(ImportDeclaration* decl) {}
+
+void AstTraversalVisitor::VisitExportDeclaration(ExportDeclaration* decl) {}
+
+void AstTraversalVisitor::VisitStatements(ZoneList<Statement*>* stmts) {
+  for (int i = 0; i < stmts->length(); ++i) {
+    Statement* stmt = stmts->at(i);
+    Visit(stmt);
+    if (stmt->IsJump()) break;
+  }
+}
+
+void AstTraversalVisitor::VisitExpressions(ZoneList<Expression*>* expressions) {
+  for (int i = 0; i < expressions->length(); i++) {
+    Expression* expression = expressions->at(i);
+    if (expression != NULL) Visit(expression);
+  }
+}
+
+void AstTraversalVisitor::VisitBlock(Block* stmt) {
+  VisitStatements(stmt->statements());
+}
+
+void AstTraversalVisitor::VisitExpressionStatement(ExpressionStatement* stmt) {
+  Visit(stmt->expression());
+}
+
+void AstTraversalVisitor::VisitEmptyStatement(EmptyStatement* stmt) {}
+
+void AstTraversalVisitor::VisitSloppyBlockFunctionStatement(
+    SloppyBlockFunctionStatement* stmt) {
+  Visit(stmt->statement());
+}
+
+void AstTraversalVisitor::VisitIfStatement(IfStatement* stmt) {
+  Visit(stmt->condition());
+  Visit(stmt->then_statement());
+  Visit(stmt->else_statement());
+}
+
+void AstTraversalVisitor::VisitContinueStatement(ContinueStatement* stmt) {}
+
+void AstTraversalVisitor::VisitBreakStatement(BreakStatement* stmt) {}
+
+void AstTraversalVisitor::VisitReturnStatement(ReturnStatement* stmt) {
+  Visit(stmt->expression());
+}
+
+void AstTraversalVisitor::VisitWithStatement(WithStatement* stmt) {
+  stmt->expression();
+  stmt->statement();
+}
+
+void AstTraversalVisitor::VisitSwitchStatement(SwitchStatement* stmt) {
+  Visit(stmt->tag());
+
+  ZoneList<CaseClause*>* clauses = stmt->cases();
+
+  for (int i = 0; i < clauses->length(); ++i) {
+    CaseClause* clause = clauses->at(i);
+    if (!clause->is_default()) {
+      Expression* label = clause->label();
+      Visit(label);
+    }
+    ZoneList<Statement*>* stmts = clause->statements();
+    VisitStatements(stmts);
+  }
+}
+
+void AstTraversalVisitor::VisitCaseClause(CaseClause* clause) { UNREACHABLE(); }
+
+void AstTraversalVisitor::VisitDoWhileStatement(DoWhileStatement* stmt) {
+  Visit(stmt->body());
+  Visit(stmt->cond());
+}
+
+void AstTraversalVisitor::VisitWhileStatement(WhileStatement* stmt) {
+  Visit(stmt->cond());
+  Visit(stmt->body());
+}
+
+void AstTraversalVisitor::VisitForStatement(ForStatement* stmt) {
+  if (stmt->init() != NULL) {
+    Visit(stmt->init());
+  }
+  if (stmt->cond() != NULL) {
+    Visit(stmt->cond());
+  }
+  if (stmt->next() != NULL) {
+    Visit(stmt->next());
+  }
+  Visit(stmt->body());
+}
+
+void AstTraversalVisitor::VisitForInStatement(ForInStatement* stmt) {
+  Visit(stmt->enumerable());
+  Visit(stmt->body());
+}
+
+void AstTraversalVisitor::VisitForOfStatement(ForOfStatement* stmt) {
+  Visit(stmt->assign_iterator());
+  Visit(stmt->next_result());
+  Visit(stmt->result_done());
+  Visit(stmt->assign_each());
+  Visit(stmt->body());
+}
+
+void AstTraversalVisitor::VisitTryCatchStatement(TryCatchStatement* stmt) {
+  Visit(stmt->try_block());
+  Visit(stmt->catch_block());
+}
+
+void AstTraversalVisitor::VisitTryFinallyStatement(TryFinallyStatement* stmt) {
+  Visit(stmt->try_block());
+  Visit(stmt->finally_block());
+}
+
+void AstTraversalVisitor::VisitDebuggerStatement(DebuggerStatement* stmt) {}
+
+void AstTraversalVisitor::VisitFunctionLiteral(FunctionLiteral* expr) {
+  Scope* scope = expr->scope();
+  VisitDeclarations(scope->declarations());
+  VisitStatements(expr->body());
+}
+
+void AstTraversalVisitor::VisitNativeFunctionLiteral(
+    NativeFunctionLiteral* expr) {}
+
+void AstTraversalVisitor::VisitDoExpression(DoExpression* expr) {
+  VisitBlock(expr->block());
+  VisitVariableProxy(expr->result());
+}
+
+void AstTraversalVisitor::VisitConditional(Conditional* expr) {
+  Visit(expr->condition());
+  Visit(expr->then_expression());
+  Visit(expr->else_expression());
+}
+
+void AstTraversalVisitor::VisitVariableProxy(VariableProxy* expr) {}
+
+void AstTraversalVisitor::VisitLiteral(Literal* expr) {}
+
+void AstTraversalVisitor::VisitRegExpLiteral(RegExpLiteral* expr) {}
+
+void AstTraversalVisitor::VisitObjectLiteral(ObjectLiteral* expr) {
+  ZoneList<ObjectLiteralProperty*>* props = expr->properties();
+  for (int i = 0; i < props->length(); ++i) {
+    ObjectLiteralProperty* prop = props->at(i);
+    if (!prop->key()->IsLiteral()) {
+      Visit(prop->key());
+    }
+    Visit(prop->value());
+  }
+}
+
+void AstTraversalVisitor::VisitArrayLiteral(ArrayLiteral* expr) {
+  ZoneList<Expression*>* values = expr->values();
+  for (int i = 0; i < values->length(); ++i) {
+    Expression* value = values->at(i);
+    Visit(value);
+  }
+}
+
+void AstTraversalVisitor::VisitAssignment(Assignment* expr) {
+  Visit(expr->target());
+  Visit(expr->value());
+}
+
+void AstTraversalVisitor::VisitYield(Yield* expr) {
+  Visit(expr->generator_object());
+  Visit(expr->expression());
+}
+
+void AstTraversalVisitor::VisitThrow(Throw* expr) { Visit(expr->exception()); }
+
+void AstTraversalVisitor::VisitProperty(Property* expr) {
+  Visit(expr->obj());
+  Visit(expr->key());
+}
+
+void AstTraversalVisitor::VisitCall(Call* expr) {
+  Visit(expr->expression());
+  ZoneList<Expression*>* args = expr->arguments();
+  for (int i = 0; i < args->length(); ++i) {
+    Expression* arg = args->at(i);
+    Visit(arg);
+  }
+}
+
+void AstTraversalVisitor::VisitCallNew(CallNew* expr) {
+  Visit(expr->expression());
+  ZoneList<Expression*>* args = expr->arguments();
+  for (int i = 0; i < args->length(); ++i) {
+    Expression* arg = args->at(i);
+    Visit(arg);
+  }
+}
+
+void AstTraversalVisitor::VisitCallRuntime(CallRuntime* expr) {
+  ZoneList<Expression*>* args = expr->arguments();
+  for (int i = 0; i < args->length(); ++i) {
+    Expression* arg = args->at(i);
+    Visit(arg);
+  }
+}
+
+void AstTraversalVisitor::VisitUnaryOperation(UnaryOperation* expr) {
+  Visit(expr->expression());
+}
+
+void AstTraversalVisitor::VisitCountOperation(CountOperation* expr) {
+  Visit(expr->expression());
+}
+
+void AstTraversalVisitor::VisitBinaryOperation(BinaryOperation* expr) {
+  Visit(expr->left());
+  Visit(expr->right());
+}
+
+void AstTraversalVisitor::VisitCompareOperation(CompareOperation* expr) {
+  Visit(expr->left());
+  Visit(expr->right());
+}
+
+void AstTraversalVisitor::VisitThisFunction(ThisFunction* expr) {}
+
+void AstTraversalVisitor::VisitDeclarations(ZoneList<Declaration*>* decls) {
+  for (int i = 0; i < decls->length(); ++i) {
+    Declaration* decl = decls->at(i);
+    Visit(decl);
+  }
+}
+
+void AstTraversalVisitor::VisitClassLiteral(ClassLiteral* expr) {
+  if (expr->extends() != nullptr) {
+    Visit(expr->extends());
+  }
+  Visit(expr->constructor());
+  ZoneList<ObjectLiteralProperty*>* props = expr->properties();
+  for (int i = 0; i < props->length(); ++i) {
+    ObjectLiteralProperty* prop = props->at(i);
+    if (!prop->key()->IsLiteral()) {
+      Visit(prop->key());
+    }
+    Visit(prop->value());
+  }
+}
+
+void AstTraversalVisitor::VisitSpread(Spread* expr) {
+  Visit(expr->expression());
+}
+
+void AstTraversalVisitor::VisitEmptyParentheses(EmptyParentheses* expr) {}
+
+void AstTraversalVisitor::VisitSuperPropertyReference(
+    SuperPropertyReference* expr) {
+  VisitVariableProxy(expr->this_var());
+  Visit(expr->home_object());
+}
+
+void AstTraversalVisitor::VisitSuperCallReference(SuperCallReference* expr) {
+  VisitVariableProxy(expr->this_var());
+  VisitVariableProxy(expr->new_target_var());
+  VisitVariableProxy(expr->this_function_var());
+}
+
+void AstTraversalVisitor::VisitRewritableExpression(
+    RewritableExpression* expr) {
+  Visit(expr->expression());
+}
+
 CaseClause::CaseClause(Zone* zone, Expression* label,
                        ZoneList<Statement*>* statements, int pos)
     : Expression(zone, pos),
diff --git a/src/ast/ast.h b/src/ast/ast.h
index 52bac8e..bee0bab 100644
--- a/src/ast/ast.h
+++ b/src/ast/ast.h
@@ -337,10 +337,6 @@
   // True iff the expression is a valid target for an assignment.
   bool IsValidReferenceExpressionOrThis() const;
 
-  // Expression type bounds
-  Bounds bounds() const { return bounds_; }
-  void set_bounds(Bounds bounds) { bounds_ = bounds; }
-
   // Type feedback information for assignments and properties.
   virtual bool IsMonomorphic() {
     UNREACHABLE();
@@ -374,7 +370,6 @@
   Expression(Zone* zone, int pos)
       : AstNode(pos),
         base_id_(BailoutId::None().ToInt()),
-        bounds_(Bounds::Unbounded()),
         bit_field_(0) {}
   static int parent_num_ids() { return 0; }
   void set_to_boolean_types(uint16_t types) {
@@ -390,7 +385,6 @@
   int local_id(int n) const { return base_id() + parent_num_ids() + n; }
 
   int base_id_;
-  Bounds bounds_;
   class ToBooleanTypesField : public BitField16<uint16_t, 0, 9> {};
   uint16_t bit_field_;
   // Ends with 16-bit field; deriving classes in turn begin with
@@ -598,7 +592,7 @@
   ImportDeclaration(Zone* zone, VariableProxy* proxy,
                     const AstRawString* import_name,
                     const AstRawString* module_specifier, Scope* scope, int pos)
-      : Declaration(zone, proxy, IMPORT, scope, pos),
+      : Declaration(zone, proxy, CONST, scope, pos),
         import_name_(import_name),
         module_specifier_(module_specifier) {}
 
@@ -647,6 +641,13 @@
   Statement* body() const { return body_; }
   void set_body(Statement* s) { body_ = s; }
 
+  int yield_count() const { return yield_count_; }
+  int first_yield_id() const { return first_yield_id_; }
+  void set_yield_count(int yield_count) { yield_count_ = yield_count; }
+  void set_first_yield_id(int first_yield_id) {
+    first_yield_id_ = first_yield_id;
+  }
+
   static int num_ids() { return parent_num_ids() + 1; }
   BailoutId OsrEntryId() const { return BailoutId(local_id(0)); }
   virtual BailoutId ContinueId() const = 0;
@@ -658,7 +659,9 @@
  protected:
   IterationStatement(Zone* zone, ZoneList<const AstRawString*>* labels, int pos)
       : BreakableStatement(zone, labels, TARGET_FOR_ANONYMOUS, pos),
-        body_(NULL) {}
+        body_(NULL),
+        yield_count_(0),
+        first_yield_id_(0) {}
   static int parent_num_ids() { return BreakableStatement::num_ids(); }
   void Initialize(Statement* body) { body_ = body; }
 
@@ -667,6 +670,8 @@
 
   Statement* body_;
   Label continue_target_;
+  int yield_count_;
+  int first_yield_id_;
 };
 
 
@@ -779,17 +784,7 @@
     ITERATE      // for (each of subject) body;
   };
 
-  void Initialize(Expression* each, Expression* subject, Statement* body) {
-    IterationStatement::Initialize(body);
-    each_ = each;
-    subject_ = subject;
-  }
-
-  Expression* each() const { return each_; }
-  Expression* subject() const { return subject_; }
-
-  void set_each(Expression* e) { each_ = e; }
-  void set_subject(Expression* e) { subject_ = e; }
+  using IterationStatement::Initialize;
 
   static const char* VisitModeString(VisitMode mode) {
     return mode == ITERATE ? "for-of" : "for-in";
@@ -797,11 +792,7 @@
 
  protected:
   ForEachStatement(Zone* zone, ZoneList<const AstRawString*>* labels, int pos)
-      : IterationStatement(zone, labels, pos), each_(NULL), subject_(NULL) {}
-
- private:
-  Expression* each_;
-  Expression* subject_;
+      : IterationStatement(zone, labels, pos) {}
 };
 
 
@@ -809,10 +800,22 @@
  public:
   DECLARE_NODE_TYPE(ForInStatement)
 
+  void Initialize(Expression* each, Expression* subject, Statement* body) {
+    ForEachStatement::Initialize(body);
+    each_ = each;
+    subject_ = subject;
+  }
+
   Expression* enumerable() const {
     return subject();
   }
 
+  Expression* each() const { return each_; }
+  Expression* subject() const { return subject_; }
+
+  void set_each(Expression* e) { each_ = e; }
+  void set_subject(Expression* e) { subject_ = e; }
+
   // Type feedback information.
   void AssignFeedbackVectorSlots(Isolate* isolate, FeedbackVectorSpec* spec,
                                  FeedbackVectorSlotCache* cache) override;
@@ -838,12 +841,17 @@
 
  protected:
   ForInStatement(Zone* zone, ZoneList<const AstRawString*>* labels, int pos)
-      : ForEachStatement(zone, labels, pos), for_in_type_(SLOW_FOR_IN) {}
+      : ForEachStatement(zone, labels, pos),
+        each_(nullptr),
+        subject_(nullptr),
+        for_in_type_(SLOW_FOR_IN) {}
   static int parent_num_ids() { return ForEachStatement::num_ids(); }
 
  private:
   int local_id(int n) const { return base_id() + parent_num_ids() + n; }
 
+  Expression* each_;
+  Expression* subject_;
   ForInType for_in_type_;
   FeedbackVectorSlot each_slot_;
   FeedbackVectorSlot for_in_feedback_slot_;
@@ -854,15 +862,10 @@
  public:
   DECLARE_NODE_TYPE(ForOfStatement)
 
-  void Initialize(Expression* each,
-                  Expression* subject,
-                  Statement* body,
-                  Variable* iterator,
-                  Expression* assign_iterator,
-                  Expression* next_result,
-                  Expression* result_done,
-                  Expression* assign_each) {
-    ForEachStatement::Initialize(each, subject, body);
+  void Initialize(Statement* body, Variable* iterator,
+                  Expression* assign_iterator, Expression* next_result,
+                  Expression* result_done, Expression* assign_each) {
+    ForEachStatement::Initialize(body);
     iterator_ = iterator;
     assign_iterator_ = assign_iterator;
     next_result_ = next_result;
@@ -870,10 +873,6 @@
     assign_each_ = assign_each;
   }
 
-  Expression* iterable() const {
-    return subject();
-  }
-
   Variable* iterator() const {
     return iterator_;
   }
@@ -2526,20 +2525,24 @@
 
   Expression* generator_object() const { return generator_object_; }
   Expression* expression() const { return expression_; }
+  int yield_id() const { return yield_id_; }
 
   void set_generator_object(Expression* e) { generator_object_ = e; }
   void set_expression(Expression* e) { expression_ = e; }
+  void set_yield_id(int yield_id) { yield_id_ = yield_id; }
 
  protected:
   Yield(Zone* zone, Expression* generator_object, Expression* expression,
         int pos)
       : Expression(zone, pos),
         generator_object_(generator_object),
-        expression_(expression) {}
+        expression_(expression),
+        yield_id_(-1) {}
 
  private:
   Expression* generator_object_;
   Expression* expression_;
+  int yield_id_;
 };
 
 
@@ -2584,12 +2587,12 @@
   int start_position() const;
   int end_position() const;
   int SourceSize() const { return end_position() - start_position(); }
-  bool is_declaration() const { return IsDeclaration::decode(bitfield_); }
+  bool is_declaration() const { return function_type() == kDeclaration; }
   bool is_named_expression() const {
-    return IsNamedExpression::decode(bitfield_);
+    return function_type() == kNamedExpression;
   }
   bool is_anonymous_expression() const {
-    return IsAnonymousExpression::decode(bitfield_);
+    return function_type() == kAnonymousExpression;
   }
   LanguageMode language_mode() const;
 
@@ -2666,6 +2669,9 @@
     bitfield_ = ShouldBeUsedOnceHint::update(bitfield_, true);
   }
 
+  FunctionType function_type() const {
+    return FunctionTypeBits::decode(bitfield_);
+  }
   FunctionKind kind() const { return FunctionKindBits::decode(bitfield_); }
 
   int ast_node_count() { return ast_properties_.node_count(); }
@@ -2686,6 +2692,9 @@
     return is_anonymous_expression();
   }
 
+  int yield_count() { return yield_count_; }
+  void set_yield_count(int yield_count) { yield_count_ = yield_count; }
+
  protected:
   FunctionLiteral(Zone* zone, const AstString* name,
                   AstValueFactory* ast_value_factory, Scope* scope,
@@ -2705,12 +2714,10 @@
         materialized_literal_count_(materialized_literal_count),
         expected_property_count_(expected_property_count),
         parameter_count_(parameter_count),
-        function_token_position_(RelocInfo::kNoPosition) {
+        function_token_position_(RelocInfo::kNoPosition),
+        yield_count_(0) {
     bitfield_ =
-        IsDeclaration::encode(function_type == kDeclaration) |
-        IsNamedExpression::encode(function_type == kNamedExpression) |
-        IsAnonymousExpression::encode(function_type == kAnonymousExpression) |
-        Pretenure::encode(false) |
+        FunctionTypeBits::encode(function_type) | Pretenure::encode(false) |
         HasDuplicateParameters::encode(has_duplicate_parameters ==
                                        kHasDuplicateParameters) |
         IsFunction::encode(is_function) |
@@ -2720,15 +2727,13 @@
   }
 
  private:
-  class IsDeclaration : public BitField16<bool, 0, 1> {};
-  class IsNamedExpression : public BitField16<bool, 1, 1> {};
-  class IsAnonymousExpression : public BitField16<bool, 2, 1> {};
-  class Pretenure : public BitField16<bool, 3, 1> {};
-  class HasDuplicateParameters : public BitField16<bool, 4, 1> {};
-  class IsFunction : public BitField16<bool, 5, 1> {};
-  class ShouldEagerCompile : public BitField16<bool, 6, 1> {};
-  class ShouldBeUsedOnceHint : public BitField16<bool, 7, 1> {};
-  class FunctionKindBits : public BitField16<FunctionKind, 8, 8> {};
+  class FunctionTypeBits : public BitField16<FunctionType, 0, 2> {};
+  class Pretenure : public BitField16<bool, 2, 1> {};
+  class HasDuplicateParameters : public BitField16<bool, 3, 1> {};
+  class IsFunction : public BitField16<bool, 4, 1> {};
+  class ShouldEagerCompile : public BitField16<bool, 5, 1> {};
+  class ShouldBeUsedOnceHint : public BitField16<bool, 6, 1> {};
+  class FunctionKindBits : public BitField16<FunctionKind, 7, 9> {};
 
   // Start with 16-bit field, which should get packed together
   // with Expression's trailing 16-bit field.
@@ -2746,6 +2751,7 @@
   int expected_property_count_;
   int parameter_count_;
   int function_token_position_;
+  int yield_count_;
 };
 
 
@@ -3041,6 +3047,30 @@
 
 
 // ----------------------------------------------------------------------------
+// Traversing visitor
+// - fully traverses the entire AST.
+
+class AstTraversalVisitor : public AstVisitor {
+ public:
+  explicit AstTraversalVisitor(Isolate* isolate);
+  virtual ~AstTraversalVisitor() {}
+
+  // Iteration left-to-right.
+  void VisitDeclarations(ZoneList<Declaration*>* declarations) override;
+  void VisitStatements(ZoneList<Statement*>* statements) override;
+  void VisitExpressions(ZoneList<Expression*>* expressions) override;
+
+// Individual nodes
+#define DECLARE_VISIT(type) void Visit##type(type* node) override;
+  AST_NODE_LIST(DECLARE_VISIT)
+#undef DECLARE_VISIT
+
+ private:
+  DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
+  DISALLOW_COPY_AND_ASSIGN(AstTraversalVisitor);
+};
+
+// ----------------------------------------------------------------------------
 // AstNode factory
 
 class AstNodeFactory final BASE_EMBEDDED {
diff --git a/src/ast/prettyprinter.cc b/src/ast/prettyprinter.cc
index 2a79049..49bff08 100644
--- a/src/ast/prettyprinter.cc
+++ b/src/ast/prettyprinter.cc
@@ -192,10 +192,11 @@
 
 
 void CallPrinter::VisitForOfStatement(ForOfStatement* node) {
-  Find(node->each());
   Find(node->assign_iterator());
-  Find(node->body());
   Find(node->next_result());
+  Find(node->result_done());
+  Find(node->assign_each());
+  Find(node->body());
 }
 
 
@@ -675,11 +676,37 @@
 
 
 void PrettyPrinter::VisitForOfStatement(ForOfStatement* node) {
+  // TODO(adamk): ForOf is largely desugared as part of parsing,
+  // so it's hard to display useful stuff here. Should likely
+  // either bite the bullet and display less or try harder
+  // to preserve more.
   PrintLabels(node->labels());
-  Print("for (");
-  Visit(node->each());
-  Print(" of ");
-  Visit(node->iterable());
+  // The <each> is embedded inside a do-expression by the time we get here.
+  Print("for (<each> of ");
+  if (node->assign_iterator()->IsAssignment() &&
+      node->assign_iterator()->AsAssignment()->value()->IsCall() &&
+      node->assign_iterator()
+          ->AsAssignment()
+          ->value()
+          ->AsCall()
+          ->expression()
+          ->IsProperty() &&
+      node->assign_iterator()
+          ->AsAssignment()
+          ->value()
+          ->AsCall()
+          ->expression()
+          ->IsProperty()) {
+    Visit(node->assign_iterator()
+              ->AsAssignment()
+              ->value()
+              ->AsCall()
+              ->expression()
+              ->AsProperty()
+              ->obj());
+  } else {
+    Print("<iterable>");
+  }
   Print(") ");
   Visit(node->body());
 }
@@ -1055,7 +1082,8 @@
     if (object->IsJSFunction()) {
       Print("JS-Function");
     } else if (object->IsJSArray()) {
-      Print("JS-array[%u]", JSArray::cast(object)->length());
+      Print("JS-array[%u]",
+            Smi::cast(JSArray::cast(object)->length())->value());
     } else if (object->IsJSObject()) {
       Print("JS-Object");
     } else {
@@ -1145,7 +1173,7 @@
   for (int i = 0; i < indent_; i++) {
     Print(". ");
   }
-  Print(txt);
+  Print("%s", txt);
 }
 
 
@@ -1191,6 +1219,10 @@
 const char* AstPrinter::PrintProgram(FunctionLiteral* program) {
   Init();
   { IndentedScope indent(this, "FUNC", program->position());
+    PrintIndented("KIND");
+    Print(" %d\n", program->kind());
+    PrintIndented("YIELD COUNT");
+    Print(" %d\n", program->yield_count());
     PrintLiteralIndented("NAME", program->name(), true);
     PrintLiteralIndented("INFERRED NAME", program->inferred_name(), true);
     PrintParameters(program->scope());
@@ -1359,6 +1391,8 @@
 
 void AstPrinter::VisitDoWhileStatement(DoWhileStatement* node) {
   IndentedScope indent(this, "DO", node->position());
+  PrintIndented("YIELD COUNT");
+  Print(" %d\n", node->yield_count());
   PrintLabelsIndented(node->labels());
   PrintIndentedVisit("BODY", node->body());
   PrintIndentedVisit("COND", node->cond());
@@ -1367,6 +1401,8 @@
 
 void AstPrinter::VisitWhileStatement(WhileStatement* node) {
   IndentedScope indent(this, "WHILE", node->position());
+  PrintIndented("YIELD COUNT");
+  Print(" %d\n", node->yield_count());
   PrintLabelsIndented(node->labels());
   PrintIndentedVisit("COND", node->cond());
   PrintIndentedVisit("BODY", node->body());
@@ -1375,6 +1411,8 @@
 
 void AstPrinter::VisitForStatement(ForStatement* node) {
   IndentedScope indent(this, "FOR", node->position());
+  PrintIndented("YIELD COUNT");
+  Print(" %d\n", node->yield_count());
   PrintLabelsIndented(node->labels());
   if (node->init()) PrintIndentedVisit("INIT", node->init());
   if (node->cond()) PrintIndentedVisit("COND", node->cond());
@@ -1385,6 +1423,8 @@
 
 void AstPrinter::VisitForInStatement(ForInStatement* node) {
   IndentedScope indent(this, "FOR IN", node->position());
+  PrintIndented("YIELD COUNT");
+  Print(" %d\n", node->yield_count());
   PrintIndentedVisit("FOR", node->each());
   PrintIndentedVisit("IN", node->enumerable());
   PrintIndentedVisit("BODY", node->body());
@@ -1393,13 +1433,13 @@
 
 void AstPrinter::VisitForOfStatement(ForOfStatement* node) {
   IndentedScope indent(this, "FOR OF", node->position());
-  PrintIndentedVisit("FOR", node->each());
-  PrintIndentedVisit("OF", node->iterable());
-  PrintIndentedVisit("BODY", node->body());
+  PrintIndented("YIELD COUNT");
+  Print(" %d\n", node->yield_count());
   PrintIndentedVisit("INIT", node->assign_iterator());
   PrintIndentedVisit("NEXT", node->next_result());
-  PrintIndentedVisit("EACH", node->assign_each());
   PrintIndentedVisit("DONE", node->result_done());
+  PrintIndentedVisit("EACH", node->assign_each());
+  PrintIndentedVisit("BODY", node->body());
 }
 
 
@@ -1522,7 +1562,7 @@
   if (node->flags() & RegExp::kSticky) buf[i++] = 'y';
   buf[i] = '\0';
   PrintIndented("FLAGS ");
-  Print(buf.start());
+  Print("%s", buf.start());
   Print("\n");
 }
 
@@ -1594,7 +1634,9 @@
 
 
 void AstPrinter::VisitYield(Yield* node) {
-  IndentedScope indent(this, "YIELD", node->position());
+  EmbeddedVector<char, 128> buf;
+  SNPrintF(buf, "YIELD id %d", node->yield_id());
+  IndentedScope indent(this, buf.start(), node->position());
   Visit(node->expression());
 }
 
diff --git a/src/ast/prettyprinter.h b/src/ast/prettyprinter.h
index 0186203..4e90294 100644
--- a/src/ast/prettyprinter.h
+++ b/src/ast/prettyprinter.h
@@ -7,6 +7,7 @@
 
 #include "src/allocation.h"
 #include "src/ast/ast.h"
+#include "src/base/compiler-specific.h"
 
 namespace v8 {
 namespace internal {
@@ -20,7 +21,7 @@
   // string. The result string is alive as long as the CallPrinter is alive.
   const char* Print(FunctionLiteral* program, int position);
 
-  void Print(const char* format, ...);
+  void PRINTF_FORMAT(2, 3) Print(const char* format, ...);
 
   void Find(AstNode* node, bool print = false);
 
@@ -62,7 +63,7 @@
   const char* PrintExpression(FunctionLiteral* program);
   const char* PrintProgram(FunctionLiteral* program);
 
-  void Print(const char* format, ...);
+  void PRINTF_FORMAT(2, 3) Print(const char* format, ...);
 
   // Print a node to stdout.
   static void PrintOut(Isolate* isolate, AstNode* node);
diff --git a/src/ast/scopeinfo.cc b/src/ast/scopeinfo.cc
index 4ffc020..10315aa 100644
--- a/src/ast/scopeinfo.cc
+++ b/src/ast/scopeinfo.cc
@@ -438,16 +438,13 @@
   return ContextLocalMaybeAssignedFlag::decode(value);
 }
 
-
-bool ScopeInfo::LocalIsSynthetic(int var) {
-  DCHECK(0 <= var && var < LocalCount());
+bool ScopeInfo::VariableIsSynthetic(String* name) {
   // There's currently no flag stored on the ScopeInfo to indicate that a
   // variable is a compiler-introduced temporary. However, to avoid conflict
   // with user declarations, the current temporaries like .generator_object and
   // .result start with a dot, so we can use that as a flag. It's a hack!
-  Handle<String> name(LocalName(var));
-  return (name->length() > 0 && name->Get(0) == '.') ||
-         name->Equals(*GetIsolate()->factory()->this_string());
+  return name->length() == 0 || name->Get(0) == '.' ||
+         name->Equals(name->GetHeap()->this_string());
 }
 
 
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc
index 5d4b809..beffa53 100644
--- a/src/ast/scopes.cc
+++ b/src/ast/scopes.cc
@@ -175,7 +175,10 @@
   asm_module_ = false;
   asm_function_ = outer_scope != NULL && outer_scope->asm_module_;
   // Inherit the language mode from the parent scope.
-  language_mode_ = outer_scope != NULL ? outer_scope->language_mode_ : SLOPPY;
+  language_mode_ =
+      is_module_scope()
+          ? STRICT
+          : (outer_scope != NULL ? outer_scope->language_mode_ : SLOPPY);
   outer_scope_calls_sloppy_eval_ = false;
   inner_scope_calls_eval_ = false;
   scope_nonlinear_ = false;
@@ -193,6 +196,7 @@
   scope_info_ = scope_info;
   start_position_ = RelocInfo::kNoPosition;
   end_position_ = RelocInfo::kNoPosition;
+  is_hidden_ = false;
   if (!scope_info.is_null()) {
     scope_calls_eval_ = scope_info->CallsEval();
     language_mode_ = scope_info->language_mode();
@@ -287,6 +291,7 @@
                                : FLAG_print_scopes) {
     scope->Print();
   }
+  scope->CheckScopePositions();
 #endif
 
   info->set_scope(scope);
@@ -553,17 +558,19 @@
   return var;
 }
 
-
-bool Scope::RemoveTemporary(Variable* var) {
+int Scope::RemoveTemporary(Variable* var) {
+  DCHECK_NOT_NULL(var);
   // Most likely (always?) any temporary variable we want to remove
   // was just added before, so we search backwards.
   for (int i = temps_.length(); i-- > 0;) {
     if (temps_[i] == var) {
-      temps_.Remove(i);
-      return true;
+      // Don't shrink temps_, as callers of this method expect
+      // the returned indices to be unique per-scope.
+      temps_[i] = nullptr;
+      return i;
     }
   }
-  return false;
+  return -1;
 }
 
 
@@ -630,6 +637,7 @@
   // context as a whole has forced context allocation.
   for (int i = 0; i < temps_.length(); i++) {
     Variable* var = temps_[i];
+    if (var == nullptr) continue;
     if (var->is_used()) {
       if (var->IsContextSlot()) {
         DCHECK(has_forced_context_allocation());
@@ -953,6 +961,8 @@
   if (is_strict(language_mode())) {
     Indent(n1, "// strict mode scope\n");
   }
+  if (asm_module_) Indent(n1, "// scope is an asm module\n");
+  if (asm_function_) Indent(n1, "// scope is an asm function\n");
   if (scope_inside_with_) Indent(n1, "// scope inside 'with'\n");
   if (scope_calls_eval_) Indent(n1, "// scope calls 'eval'\n");
   if (scope_uses_arguments_) Indent(n1, "// scope uses 'arguments'\n");
@@ -979,9 +989,15 @@
   }
 
   if (temps_.length() > 0) {
-    Indent(n1, "// temporary vars:\n");
+    bool printed_header = false;
     for (int i = 0; i < temps_.length(); i++) {
-      PrintVar(n1, temps_[i]);
+      if (temps_[i] != nullptr) {
+        if (!printed_header) {
+          printed_header = true;
+          Indent(n1, "// temporary vars:\n");
+        }
+        PrintVar(n1, temps_[i]);
+      }
     }
   }
 
@@ -1007,6 +1023,16 @@
 
   Indent(n0, "}\n");
 }
+
+void Scope::CheckScopePositions() {
+  // A scope is allowed to have invalid positions if it is hidden and has no
+  // inner scopes
+  if (!is_hidden() && inner_scopes_.length() == 0) {
+    CHECK_NE(RelocInfo::kNoPosition, start_position());
+    CHECK_NE(RelocInfo::kNoPosition, end_position());
+  }
+  for (Scope* scope : inner_scopes_) scope->CheckScopePositions();
+}
 #endif  // DEBUG
 
 
@@ -1083,12 +1109,15 @@
     if (var != NULL && proxy->is_assigned()) var->set_maybe_assigned();
     *binding_kind = DYNAMIC_LOOKUP;
     return NULL;
-  } else if (calls_sloppy_eval() && !is_script_scope() &&
-             name_can_be_shadowed) {
+  } else if (calls_sloppy_eval() && is_declaration_scope() &&
+             !is_script_scope() && name_can_be_shadowed) {
     // A variable binding may have been found in an outer scope, but the current
     // scope makes a sloppy 'eval' call, so the found variable may not be
     // the correct one (the 'eval' may introduce a binding with the same name).
     // In that case, change the lookup result to reflect this situation.
+    // Only scopes that can host var bindings (declaration scopes) need be
+    // considered here (this excludes block and catch scopes), and variable
+    // lookups at script scope are always dynamic.
     if (*binding_kind == BOUND) {
       *binding_kind = BOUND_EVAL_SHADOWED;
     } else if (*binding_kind == UNBOUND) {
@@ -1398,6 +1427,7 @@
 void Scope::AllocateNonParameterLocalsAndDeclaredGlobals(Isolate* isolate) {
   // All variables that have no rewrite yet are non-parameter locals.
   for (int i = 0; i < temps_.length(); i++) {
+    if (temps_[i] == nullptr) continue;
     AllocateNonParameterLocal(isolate, temps_[i]);
   }
 
diff --git a/src/ast/scopes.h b/src/ast/scopes.h
index dae70c0..d767a33 100644
--- a/src/ast/scopes.h
+++ b/src/ast/scopes.h
@@ -209,7 +209,9 @@
 
   // Remove a temporary variable. This is for adjusting the scope of
   // temporaries used when desugaring parameter initializers.
-  bool RemoveTemporary(Variable* var);
+  // Returns the index at which it was found in this scope, or -1 if
+  // it was not found.
+  int RemoveTemporary(Variable* var);
 
   // Adds a temporary variable in this scope's TemporaryScope. This is for
   // adjusting the scope of temporaries used when desugaring parameter
@@ -243,6 +245,7 @@
 
   // Set the language mode flag (unless disabled by a global flag).
   void SetLanguageMode(LanguageMode language_mode) {
+    DCHECK(!is_module_scope() || is_strict(language_mode));
     language_mode_ = language_mode;
   }
 
@@ -295,6 +298,10 @@
     end_position_ = statement_pos;
   }
 
+  // Scopes created for desugaring are hidden. I.e. not visible to the debugger.
+  bool is_hidden() const { return is_hidden_; }
+  void set_is_hidden() { is_hidden_ = true; }
+
   // In some cases we want to force context allocation for a whole scope.
   void ForceContextAllocation() {
     DCHECK(!already_resolved());
@@ -574,6 +581,9 @@
 
 #ifdef DEBUG
   void Print(int n = 0);  // n = indentation; n < 0 => don't print recursively
+
+  // Check that the scope has positions assigned.
+  void CheckScopePositions();
 #endif
 
   // ---------------------------------------------------------------------------
@@ -597,7 +607,9 @@
   // variables may be implicitly 'declared' by being used (possibly in
   // an inner scope) with no intervening with statements or eval calls.
   VariableMap variables_;
-  // Compiler-allocated (user-invisible) temporaries.
+  // Compiler-allocated (user-invisible) temporaries. Due to the implementation
+  // of RemoveTemporary(), may contain nulls, which must be skipped-over during
+  // allocation and printing.
   ZoneList<Variable*> temps_;
   // Parameter list in source order.
   ZoneList<Variable*> params_;
@@ -645,6 +657,7 @@
   // Source positions.
   int start_position_;
   int end_position_;
+  bool is_hidden_;
 
   // Computed via PropagateScopeInfo.
   bool outer_scope_calls_sloppy_eval_;
diff --git a/src/ast/variables.cc b/src/ast/variables.cc
index 7b9a5d2..2950db4 100644
--- a/src/ast/variables.cc
+++ b/src/ast/variables.cc
@@ -19,7 +19,6 @@
     case CONST_LEGACY: return "CONST_LEGACY";
     case LET: return "LET";
     case CONST: return "CONST";
-    case IMPORT: return "IMPORT";
     case DYNAMIC: return "DYNAMIC";
     case DYNAMIC_GLOBAL: return "DYNAMIC_GLOBAL";
     case DYNAMIC_LOCAL: return "DYNAMIC_LOCAL";
diff --git a/src/bailout-reason.h b/src/bailout-reason.h
index 92929cf..c44ad85 100644
--- a/src/bailout-reason.h
+++ b/src/bailout-reason.h
@@ -18,7 +18,6 @@
   V(kAPICallReturnedInvalidObject, "API call returned invalid object")         \
   V(kArgumentsObjectValueInATestContext,                                       \
     "Arguments object value in a test context")                                \
-  V(kArrayBoilerplateCreationFailed, "Array boilerplate creation failed")      \
   V(kArrayIndexConstantValueTooBig, "Array index constant value too big")      \
   V(kAssignmentToArguments, "Assignment to arguments")                         \
   V(kAssignmentToLetVariableBeforeInitialization,                              \
@@ -62,8 +61,8 @@
   V(kEmitLoadRegisterUnsupportedDoubleImmediate,                               \
     "EmitLoadRegister: Unsupported double immediate")                          \
   V(kEval, "eval")                                                             \
-  V(kExpectedAlignmentMarker, "Expected alignment marker")                     \
   V(kExpectedAllocationSite, "Expected allocation site")                       \
+  V(kExpectedBooleanValue, "Expected boolean value")                           \
   V(kExpectedFunctionObject, "Expected function object in register")           \
   V(kExpectedHeapNumber, "Expected HeapNumber")                                \
   V(kExpectedNativeContext, "Expected native context")                         \
@@ -79,17 +78,15 @@
   V(kForInStatementWithNonLocalEachVariable,                                   \
     "ForInStatement with non-local each variable")                             \
   V(kForOfStatement, "ForOfStatement")                                         \
-  V(kFrameIsExpectedToBeAligned, "Frame is expected to be aligned")            \
   V(kFunctionBeingDebugged, "Function is being debugged")                      \
   V(kFunctionCallsEval, "Function calls eval")                                 \
   V(kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry,                      \
     "The function_data field should be a BytecodeArray on interpreter entry")  \
   V(kGeneratedCodeIsTooLarge, "Generated code is too large")                   \
-  V(kGeneratorFailedToResume, "Generator failed to resume")                    \
-  V(kGeneratorResumeMethod, "Generator resume method is being called")         \
   V(kGenerator, "Generator")                                                   \
   V(kGlobalFunctionsMustHaveInitialMap,                                        \
     "Global functions must have initial map")                                  \
+  V(kGraphBuildingFailed, "Optimized graph construction failed")               \
   V(kHeapNumberMapRegisterClobbered, "HeapNumberMap register clobbered")       \
   V(kHydrogenFilter, "Optimization disabled by filter")                        \
   V(kImportDeclaration, "Import declaration")                                  \
@@ -102,15 +99,22 @@
   V(kInteger32ToSmiFieldWritingToNonSmiLocation,                               \
     "Integer32ToSmiField writing to non-smi location")                         \
   V(kInvalidBytecode, "Invalid bytecode")                                      \
-  V(kInvalidCaptureReferenced, "Invalid capture referenced")                   \
   V(kInvalidElementsKindForInternalArrayOrInternalPackedArray,                 \
     "Invalid ElementsKind for InternalArray or InternalPackedArray")           \
+  V(kInvalidFrameForFastNewRestArgumentsStub,                                  \
+    "Invalid frame for FastNewRestArgumentsStub")                              \
+  V(kInvalidFrameForFastNewSloppyArgumentsStub,                                \
+    "Invalid frame for FastNewSloppyArgumentsStub")                            \
+  V(kInvalidFrameForFastNewStrictArgumentsStub,                                \
+    "Invalid frame for FastNewStrictArgumentsStub")                            \
   V(kInvalidFullCodegenState, "invalid full-codegen state")                    \
   V(kInvalidHandleScopeLevel, "Invalid HandleScope level")                     \
+  V(kInvalidJumpTableIndex, "Invalid jump table index")                        \
   V(kInvalidLeftHandSideInAssignment, "Invalid left-hand side in assignment")  \
   V(kInvalidLhsInCompoundAssignment, "Invalid lhs in compound assignment")     \
   V(kInvalidLhsInCountOperation, "Invalid lhs in count operation")             \
   V(kInvalidMinLength, "Invalid min_length")                                   \
+  V(kInvalidRegisterFileInGenerator, "invalid register file in generator")     \
   V(kJSGlobalObjectNativeContextShouldBeANativeContext,                        \
     "JSGlobalObject::native_context should be a native context")               \
   V(kJSGlobalProxyContextShouldNotBeNull,                                      \
@@ -118,7 +122,6 @@
   V(kJSObjectWithFastElementsMapHasSlowElements,                               \
     "JSObject with fast elements map has slow elements")                       \
   V(kLetBindingReInitialization, "Let binding re-initialization")              \
-  V(kLiveBytesCountOverflowChunkSize, "Live Bytes Count overflow chunk size")  \
   V(kLiveEdit, "LiveEdit")                                                     \
   V(kLookupVariableInCountOperation, "Lookup variable in count operation")     \
   V(kMapBecameDeprecated, "Map became deprecated")                             \
@@ -143,13 +146,15 @@
   V(kOperandIsASmiAndNotABoundFunction,                                        \
     "Operand is a smi and not a bound function")                               \
   V(kOperandIsASmiAndNotAFunction, "Operand is a smi and not a function")      \
+  V(kOperandIsASmiAndNotAGeneratorObject,                                      \
+    "Operand is a smi and not a generator object")                             \
   V(kOperandIsASmiAndNotAName, "Operand is a smi and not a name")              \
   V(kOperandIsASmiAndNotAReceiver, "Operand is a smi and not a receiver")      \
   V(kOperandIsASmiAndNotAString, "Operand is a smi and not a string")          \
   V(kOperandIsASmi, "Operand is a smi")                                        \
-  V(kOperandIsNotADate, "Operand is not a date")                               \
   V(kOperandIsNotABoundFunction, "Operand is not a bound function")            \
   V(kOperandIsNotAFunction, "Operand is not a function")                       \
+  V(kOperandIsNotAGeneratorObject, "Operand is not a generator object")        \
   V(kOperandIsNotAName, "Operand is not a name")                               \
   V(kOperandIsNotANumber, "Operand is not a number")                           \
   V(kOperandIsNotAReceiver, "Operand is not a receiver")                       \
@@ -159,7 +164,8 @@
   V(kOperandNotANumber, "Operand not a number")                                \
   V(kObjectTagged, "The object is tagged")                                     \
   V(kObjectNotTagged, "The object is not tagged")                              \
-  V(kOptimizationDisabled, "Optimization is disabled")                         \
+  V(kOptimizationDisabled, "Optimization disabled")                            \
+  V(kOptimizationDisabledForTest, "Optimization disabled for test")            \
   V(kOptimizedTooManyTimes, "Optimized too many times")                        \
   V(kOutOfVirtualRegistersWhileTryingToAllocateTempRegister,                   \
     "Out of virtual registers while trying to allocate temp register")         \
@@ -185,8 +191,6 @@
   V(kTailCall, "Tail call")                                                    \
   V(kTheCurrentStackPointerIsBelowCsp,                                         \
     "The current stack pointer is below csp")                                  \
-  V(kTheSourceAndDestinationAreTheSame,                                        \
-    "The source and destination are the same")                                 \
   V(kTheStackWasCorruptedByMacroAssemblerCall,                                 \
     "The stack was corrupted by MacroAssembler::Call()")                       \
   V(kTooManyParametersLocals, "Too many parameters/locals")                    \
@@ -228,8 +232,6 @@
   V(kUnexpectedLevelAfterReturnFromApiCall,                                    \
     "Unexpected level after return from api call")                             \
   V(kUnexpectedNegativeValue, "Unexpected negative value")                     \
-  V(kUnexpectedNumberOfPreAllocatedPropertyFields,                             \
-    "Unexpected number of pre-allocated property fields")                      \
   V(kUnexpectedFunctionIDForInvokeIntrinsic,                                   \
     "Unexpected runtime function id for the InvokeIntrinsic bytecode")         \
   V(kUnexpectedFPCRMode, "Unexpected FPCR mode.")                              \
@@ -252,8 +254,6 @@
   V(kUnsupportedPhiUseOfArguments, "Unsupported phi use of arguments")         \
   V(kUnsupportedPhiUseOfConstVariable,                                         \
     "Unsupported phi use of const or let variable")                            \
-  V(kUnexpectedReturnFromBytecodeHandler,                                      \
-    "Unexpectedly returned from a bytecode handler")                           \
   V(kUnexpectedReturnFromThrow, "Unexpectedly returned from a throw")          \
   V(kUnsupportedSwitchStatement, "Unsupported switch statement")               \
   V(kUnsupportedTaggedImmediate, "Unsupported tagged immediate")               \
diff --git a/src/base.isolate b/src/base.isolate
index b51de01..592e4f6 100644
--- a/src/base.isolate
+++ b/src/base.isolate
@@ -4,7 +4,7 @@
 {
   'includes': [
     '../third_party/icu/icu.isolate',
-    '../build/config/win/msvs_dependencies.isolate',
+    '../gypfiles/config/win/msvs_dependencies.isolate',
   ],
   'conditions': [
     ['use_custom_libcxx==1', {
@@ -22,13 +22,6 @@
         ],
       },
     }],
-    ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and v8_separate_ignition_snapshot==1', {
-      'variables': {
-        'files': [
-          '<(PRODUCT_DIR)/snapshot_blob_ignition.bin',
-        ],
-      },
-    }],
     ['OS=="linux" and component=="shared_library" and target_arch=="ia32"', {
       'variables': {
         'files': [
diff --git a/src/atomic-utils.h b/src/base/atomic-utils.h
similarity index 98%
rename from src/atomic-utils.h
rename to src/base/atomic-utils.h
index 34e1cb0..ac90fd9 100644
--- a/src/atomic-utils.h
+++ b/src/base/atomic-utils.h
@@ -11,7 +11,7 @@
 #include "src/base/macros.h"
 
 namespace v8 {
-namespace internal {
+namespace base {
 
 template <class T>
 class AtomicNumber {
@@ -169,7 +169,7 @@
   base::AtomicWord bits_;
 };
 
-}  // namespace internal
+}  // namespace base
 }  // namespace v8
 
 #endif  // #define V8_ATOMIC_UTILS_H_
diff --git a/src/base/bits.cc b/src/base/bits.cc
index 74d747f..9b949cc 100644
--- a/src/base/bits.cc
+++ b/src/base/bits.cc
@@ -7,6 +7,7 @@
 #include <limits>
 
 #include "src/base/logging.h"
+#include "src/base/safe_math.h"
 
 namespace v8 {
 namespace base {
@@ -48,6 +49,35 @@
   return lhs % rhs;
 }
 
+
+int64_t FromCheckedNumeric(const internal::CheckedNumeric<int64_t> value) {
+  if (value.IsValid())
+    return value.ValueUnsafe();
+
+  // We could return max/min but we don't really expose what the maximum delta
+  // is. Instead, return max/(-max), which is something that clients can reason
+  // about.
+  // TODO(rvargas) crbug.com/332611: don't use internal values.
+  int64_t limit = std::numeric_limits<int64_t>::max();
+  if (value.validity() == internal::RANGE_UNDERFLOW)
+    limit = -limit;
+  return value.ValueOrDefault(limit);
+}
+
+
+int64_t SignedSaturatedAdd64(int64_t lhs, int64_t rhs) {
+  internal::CheckedNumeric<int64_t> rv(lhs);
+  rv += rhs;
+  return FromCheckedNumeric(rv);
+}
+
+
+int64_t SignedSaturatedSub64(int64_t lhs, int64_t rhs) {
+  internal::CheckedNumeric<int64_t> rv(lhs);
+  rv -= rhs;
+  return FromCheckedNumeric(rv);
+}
+
 }  // namespace bits
 }  // namespace base
 }  // namespace v8
diff --git a/src/base/bits.h b/src/base/bits.h
index 0e76624..2e6527b 100644
--- a/src/base/bits.h
+++ b/src/base/bits.h
@@ -16,6 +16,12 @@
 
 namespace v8 {
 namespace base {
+
+namespace internal {
+template <typename T>
+class CheckedNumeric;
+}
+
 namespace bits {
 
 // CountPopulation32(value) returns the number of bits set in |value|.
@@ -296,6 +302,21 @@
   return rhs ? lhs % rhs : 0u;
 }
 
+
+// Clamp |value| on overflow and underflow conditions.
+int64_t FromCheckedNumeric(const internal::CheckedNumeric<int64_t> value);
+
+
+// SignedSaturatedAdd64(lhs, rhs) adds |lhs| and |rhs|,
+// checks and returns the result.
+int64_t SignedSaturatedAdd64(int64_t lhs, int64_t rhs);
+
+
+// SignedSaturatedSub64(lhs, rhs) substracts |lhs| by |rhs|,
+// checks and returns the result.
+int64_t SignedSaturatedSub64(int64_t lhs, int64_t rhs);
+
+
 }  // namespace bits
 }  // namespace base
 }  // namespace v8
diff --git a/src/base/compiler-specific.h b/src/base/compiler-specific.h
index ffd5a44..822893f 100644
--- a/src/base/compiler-specific.h
+++ b/src/base/compiler-specific.h
@@ -26,6 +26,17 @@
 #define WARN_UNUSED_RESULT /* NOT SUPPORTED */
 #endif
 
+// Tell the compiler a function is using a printf-style format string.
+// |format_param| is the one-based index of the format string parameter;
+// |dots_param| is the one-based index of the "..." parameter.
+// For v*printf functions (which take a va_list), pass 0 for dots_param.
+// (This is undocumented but matches what the system C headers do.)
+#if defined(__GNUC__)
+#define PRINTF_FORMAT(format_param, dots_param) \
+  __attribute__((format(printf, format_param, dots_param)))
+#else
+#define PRINTF_FORMAT(format_param, dots_param)
+#endif
 
 // The C++ standard requires that static const members have an out-of-class
 // definition (in a single compilation unit), but MSVC chokes on this (when
diff --git a/src/base/format-macros.h b/src/base/format-macros.h
new file mode 100644
index 0000000..5f5fe5d
--- /dev/null
+++ b/src/base/format-macros.h
@@ -0,0 +1,97 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_FORMAT_MACROS_H_
+#define BASE_FORMAT_MACROS_H_
+
+// This file defines the format macros for some integer types.
+
+// To print a 64-bit value in a portable way:
+//   int64_t value;
+//   printf("xyz:%" PRId64, value);
+// The "d" in the macro corresponds to %d; you can also use PRIu64 etc.
+//
+// For wide strings, prepend "Wide" to the macro:
+//   int64_t value;
+//   StringPrintf(L"xyz: %" WidePRId64, value);
+//
+// To print a size_t value in a portable way:
+//   size_t size;
+//   printf("xyz: %" PRIuS, size);
+// The "u" in the macro corresponds to %u, and S is for "size".
+
+#include <stddef.h>
+#include <stdint.h>
+
+#include "src/base/build_config.h"
+
+#if defined(V8_OS_POSIX) && (defined(_INTTYPES_H) || defined(_INTTYPES_H_)) && \
+    !defined(PRId64)
+#error "inttypes.h has already been included before this header file, but "
+#error "without __STDC_FORMAT_MACROS defined."
+#endif
+
+#if defined(V8_OS_POSIX) && !defined(__STDC_FORMAT_MACROS)
+#define __STDC_FORMAT_MACROS
+#endif
+
+#include <inttypes.h>
+
+#if defined(V8_OS_POSIX)
+
+// GCC will concatenate wide and narrow strings correctly, so nothing needs to
+// be done here.
+#define WidePRId64 PRId64
+#define WidePRIu64 PRIu64
+#define WidePRIx64 PRIx64
+
+#if !defined(PRIuS)
+#define PRIuS "zu"
+#endif
+
+// The size of NSInteger and NSUInteger varies between 32-bit and 64-bit
+// architectures and Apple does not provides standard format macros and
+// recommends casting. This has many drawbacks, so instead define macros
+// for formatting those types.
+#if defined(V8_OS_MACOSX)
+#if defined(V8_HOST_ARCH_64_BIT)
+#if !defined(PRIdNS)
+#define PRIdNS "ld"
+#endif
+#if !defined(PRIuNS)
+#define PRIuNS "lu"
+#endif
+#if !defined(PRIxNS)
+#define PRIxNS "lx"
+#endif
+#else  // defined(V8_HOST_ARCH_64_BIT)
+#if !defined(PRIdNS)
+#define PRIdNS "d"
+#endif
+#if !defined(PRIuNS)
+#define PRIuNS "u"
+#endif
+#if !defined(PRIxNS)
+#define PRIxNS "x"
+#endif
+#endif
+#endif  // defined(V8_OS_MACOSX)
+
+#else  // V8_OS_WIN
+
+#if !defined(PRId64) || !defined(PRIu64) || !defined(PRIx64)
+#error "inttypes.h provided by win toolchain should define these."
+#endif
+
+#define WidePRId64 L"I64d"
+#define WidePRIu64 L"I64u"
+#define WidePRIx64 L"I64x"
+
+#if !defined(PRIuS)
+#define PRIuS "Iu"
+#endif
+
+#endif
+
+#endif  // BASE_FORMAT_MACROS_H_
diff --git a/src/base/logging.h b/src/base/logging.h
index 15322f6..45bc3c4 100644
--- a/src/base/logging.h
+++ b/src/base/logging.h
@@ -10,9 +10,10 @@
 #include <string>
 
 #include "src/base/build_config.h"
+#include "src/base/compiler-specific.h"
 
-extern "C" V8_NORETURN void V8_Fatal(const char* file, int line,
-                                     const char* format, ...);
+extern "C" PRINTF_FORMAT(3, 4) V8_NORETURN
+    void V8_Fatal(const char* file, int line, const char* format, ...);
 
 extern "C" void V8_RuntimeError(const char* file, int line,
                                 const char* message);
diff --git a/src/base/macros.h b/src/base/macros.h
index 3f09b2b..382c30b 100644
--- a/src/base/macros.h
+++ b/src/base/macros.h
@@ -5,13 +5,8 @@
 #ifndef V8_BASE_MACROS_H_
 #define V8_BASE_MACROS_H_
 
-#include <stddef.h>
-#include <stdint.h>
-
-#include <cstring>
-
-#include "src/base/build_config.h"
 #include "src/base/compiler-specific.h"
+#include "src/base/format-macros.h"
 #include "src/base/logging.h"
 
 
@@ -274,23 +269,27 @@
 #define V8PRIdPTR V8_PTR_PREFIX "d"
 #define V8PRIuPTR V8_PTR_PREFIX "u"
 
+// ptrdiff_t is 't' according to the standard, but MSVC uses 'I'.
+#if V8_CC_MSVC
+#define V8PRIxPTRDIFF "Ix"
+#define V8PRIdPTRDIFF "Id"
+#define V8PRIuPTRDIFF "Iu"
+#else
+#define V8PRIxPTRDIFF "tx"
+#define V8PRIdPTRDIFF "td"
+#define V8PRIuPTRDIFF "tu"
+#endif
+
 // Fix for Mac OS X defining uintptr_t as "unsigned long":
 #if V8_OS_MACOSX
 #undef V8PRIxPTR
 #define V8PRIxPTR "lx"
+#undef V8PRIdPTR
+#define V8PRIdPTR "ld"
 #undef V8PRIuPTR
 #define V8PRIuPTR "lxu"
 #endif
 
-// GCC on S390 31-bit expands 'size_t' to 'long unsigned int'
-// instead of 'int', resulting in compilation errors with %d.
-// The printf format specifier needs to be %zd instead.
-#if V8_HOST_ARCH_S390 && !V8_HOST_ARCH_64_BIT
-#define V8_SIZET_PREFIX "z"
-#else
-#define V8_SIZET_PREFIX ""
-#endif
-
 // The following macro works on both 32 and 64-bit platforms.
 // Usage: instead of writing 0x1234567890123456
 //      write V8_2PART_UINT64_C(0x12345678,90123456);
diff --git a/src/base/platform/condition-variable.cc b/src/base/platform/condition-variable.cc
index fcd6cf7..19c33f8 100644
--- a/src/base/platform/condition-variable.cc
+++ b/src/base/platform/condition-variable.cc
@@ -36,6 +36,19 @@
 
 
 ConditionVariable::~ConditionVariable() {
+#if defined(V8_OS_MACOSX)
+  // This hack is necessary to avoid a fatal pthreads subsystem bug in the
+  // Darwin kernel. http://crbug.com/517681.
+  {
+    Mutex lock;
+    LockGuard<Mutex> l(&lock);
+    struct timespec ts;
+    ts.tv_sec = 0;
+    ts.tv_nsec = 1;
+    pthread_cond_timedwait_relative_np(&native_handle_, &lock.native_handle(),
+                                       &ts);
+  }
+#endif
   int result = pthread_cond_destroy(&native_handle_);
   DCHECK_EQ(0, result);
   USE(result);
diff --git a/src/base/platform/platform-macos.cc b/src/base/platform/platform-macos.cc
index 419281f..ecd440c 100644
--- a/src/base/platform/platform-macos.cc
+++ b/src/base/platform/platform-macos.cc
@@ -86,10 +86,10 @@
     char* code_ptr = getsectdatafromheader(header, SEG_TEXT, SECT_TEXT, &size);
 #endif
     if (code_ptr == NULL) continue;
-    const uintptr_t slide = _dyld_get_image_vmaddr_slide(i);
+    const intptr_t slide = _dyld_get_image_vmaddr_slide(i);
     const uintptr_t start = reinterpret_cast<uintptr_t>(code_ptr) + slide;
-    result.push_back(
-        SharedLibraryAddress(_dyld_get_image_name(i), start, start + size));
+    result.push_back(SharedLibraryAddress(_dyld_get_image_name(i), start,
+                                          start + size, slide));
   }
   return result;
 }
diff --git a/src/base/platform/platform.h b/src/base/platform/platform.h
index 5b2dbc9..9464fb1 100644
--- a/src/base/platform/platform.h
+++ b/src/base/platform/platform.h
@@ -26,6 +26,7 @@
 #include <vector>
 
 #include "src/base/build_config.h"
+#include "src/base/compiler-specific.h"
 #include "src/base/platform/mutex.h"
 #include "src/base/platform/semaphore.h"
 
@@ -154,18 +155,19 @@
   // Print output to console. This is mostly used for debugging output.
   // On platforms that has standard terminal output, the output
   // should go to stdout.
-  static void Print(const char* format, ...);
-  static void VPrint(const char* format, va_list args);
+  static PRINTF_FORMAT(1, 2) void Print(const char* format, ...);
+  static PRINTF_FORMAT(1, 0) void VPrint(const char* format, va_list args);
 
   // Print output to a file. This is mostly used for debugging output.
-  static void FPrint(FILE* out, const char* format, ...);
-  static void VFPrint(FILE* out, const char* format, va_list args);
+  static PRINTF_FORMAT(2, 3) void FPrint(FILE* out, const char* format, ...);
+  static PRINTF_FORMAT(2, 0) void VFPrint(FILE* out, const char* format,
+                                          va_list args);
 
   // Print error output to console. This is mostly used for error message
   // output. On platforms that has standard terminal output, the output
   // should go to stderr.
-  static void PrintError(const char* format, ...);
-  static void VPrintError(const char* format, va_list args);
+  static PRINTF_FORMAT(1, 2) void PrintError(const char* format, ...);
+  static PRINTF_FORMAT(1, 0) void VPrintError(const char* format, va_list args);
 
   // Allocate/Free memory used by JS heap. Pages are readable/writable, but
   // they are not guaranteed to be executable unless 'executable' is true.
@@ -222,11 +224,10 @@
 
   // Safe formatting print. Ensures that str is always null-terminated.
   // Returns the number of chars written, or -1 if output was truncated.
-  static int SNPrintF(char* str, int length, const char* format, ...);
-  static int VSNPrintF(char* str,
-                       int length,
-                       const char* format,
-                       va_list args);
+  static PRINTF_FORMAT(3, 4) int SNPrintF(char* str, int length,
+                                          const char* format, ...);
+  static PRINTF_FORMAT(3, 0) int VSNPrintF(char* str, int length,
+                                           const char* format, va_list args);
 
   static char* StrChr(char* str, int c);
   static void StrNCpy(char* dest, int length, const char* src, size_t n);
@@ -234,13 +235,20 @@
   // Support for the profiler.  Can do nothing, in which case ticks
   // occuring in shared libraries will not be properly accounted for.
   struct SharedLibraryAddress {
-    SharedLibraryAddress(
-        const std::string& library_path, uintptr_t start, uintptr_t end)
-        : library_path(library_path), start(start), end(end) {}
+    SharedLibraryAddress(const std::string& library_path, uintptr_t start,
+                         uintptr_t end)
+        : library_path(library_path), start(start), end(end), aslr_slide(0) {}
+    SharedLibraryAddress(const std::string& library_path, uintptr_t start,
+                         uintptr_t end, intptr_t aslr_slide)
+        : library_path(library_path),
+          start(start),
+          end(end),
+          aslr_slide(aslr_slide) {}
 
     std::string library_path;
     uintptr_t start;
     uintptr_t end;
+    intptr_t aslr_slide;
   };
 
   static std::vector<SharedLibraryAddress> GetSharedLibraryAddresses();
diff --git a/src/base/platform/semaphore.cc b/src/base/platform/semaphore.cc
index 284474e..a7e522a 100644
--- a/src/base/platform/semaphore.cc
+++ b/src/base/platform/semaphore.cc
@@ -34,7 +34,6 @@
   USE(result);
 }
 
-
 void Semaphore::Signal() {
   kern_return_t result = semaphore_signal(native_handle_);
   DCHECK_EQ(KERN_SUCCESS, result);
@@ -74,6 +73,19 @@
 #elif V8_OS_POSIX
 
 Semaphore::Semaphore(int count) {
+  // The sem_init() does not check for alignment of the native handle.
+  // Unaligned native handle can later cause a failure in semaphore signal.
+  // Check the alignment here to catch the failure earlier.
+  // Context: crbug.com/605349.
+#if V8_OS_AIX
+  // On aix sem_t is of type int
+  const uintptr_t kSemaphoreAlignmentMask = sizeof(int) - 1;
+#else
+  const uintptr_t kSemaphoreAlignmentMask = sizeof(void*) - 1;
+#endif
+  CHECK_EQ(
+      0, reinterpret_cast<uintptr_t>(&native_handle_) &
+      kSemaphoreAlignmentMask);
   DCHECK(count >= 0);
 #if V8_LIBC_GLIBC
   // sem_init in glibc prior to 2.1 does not zero out semaphores.
@@ -91,7 +103,6 @@
   USE(result);
 }
 
-
 void Semaphore::Signal() {
   int result = sem_post(&native_handle_);
   CHECK_EQ(0, result);
@@ -162,7 +173,6 @@
   USE(result);
 }
 
-
 void Semaphore::Signal() {
   LONG dummy;
   BOOL result = ReleaseSemaphore(native_handle_, 1, &dummy);
diff --git a/src/base/platform/time.cc b/src/base/platform/time.cc
index 6d5e538..b2355a3 100644
--- a/src/base/platform/time.cc
+++ b/src/base/platform/time.cc
@@ -10,7 +10,9 @@
 #include <unistd.h>
 #endif
 #if V8_OS_MACOSX
+#include <mach/mach.h>
 #include <mach/mach_time.h>
+#include <pthread.h>
 #endif
 
 #include <cstring>
@@ -25,6 +27,51 @@
 #include "src/base/logging.h"
 #include "src/base/platform/platform.h"
 
+namespace {
+
+#if V8_OS_MACOSX
+int64_t ComputeThreadTicks() {
+  mach_msg_type_number_t thread_info_count = THREAD_BASIC_INFO_COUNT;
+  thread_basic_info_data_t thread_info_data;
+  kern_return_t kr = thread_info(
+      pthread_mach_thread_np(pthread_self()),
+      THREAD_BASIC_INFO,
+      reinterpret_cast<thread_info_t>(&thread_info_data),
+      &thread_info_count);
+  CHECK(kr == KERN_SUCCESS);
+
+  v8::base::CheckedNumeric<int64_t> absolute_micros(
+      thread_info_data.user_time.seconds);
+  absolute_micros *= v8::base::Time::kMicrosecondsPerSecond;
+  absolute_micros += thread_info_data.user_time.microseconds;
+  return absolute_micros.ValueOrDie();
+}
+#elif V8_OS_POSIX
+// Helper function to get results from clock_gettime() and convert to a
+// microsecond timebase. Minimum requirement is MONOTONIC_CLOCK to be supported
+// on the system. FreeBSD 6 has CLOCK_MONOTONIC but defines
+// _POSIX_MONOTONIC_CLOCK to -1.
+inline int64_t ClockNow(clockid_t clk_id) {
+#if (defined(_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK >= 0) || \
+  defined(V8_OS_BSD) || defined(V8_OS_ANDROID)
+  struct timespec ts;
+  if (clock_gettime(clk_id, &ts) != 0) {
+    UNREACHABLE();
+    return 0;
+  }
+  v8::base::internal::CheckedNumeric<int64_t> result(ts.tv_sec);
+  result *= v8::base::Time::kMicrosecondsPerSecond;
+  result += (ts.tv_nsec / v8::base::Time::kNanosecondsPerMicrosecond);
+  return result.ValueOrDie();
+#else  // Monotonic clock not supported.
+  return 0;
+#endif
+}
+#endif  // V8_OS_MACOSX
+
+
+}  // namespace
+
 namespace v8 {
 namespace base {
 
@@ -541,12 +588,7 @@
 #elif V8_OS_SOLARIS
   ticks = (gethrtime() / Time::kNanosecondsPerMicrosecond);
 #elif V8_OS_POSIX
-  struct timespec ts;
-  int result = clock_gettime(CLOCK_MONOTONIC, &ts);
-  DCHECK_EQ(0, result);
-  USE(result);
-  ticks = (ts.tv_sec * Time::kMicrosecondsPerSecond +
-           ts.tv_nsec / Time::kNanosecondsPerMicrosecond);
+  ticks = ClockNow(CLOCK_MONOTONIC);
 #endif  // V8_OS_MACOSX
   // Make sure we never return 0 here.
   return TimeTicks(ticks + 1);
@@ -560,5 +602,30 @@
 
 #endif  // V8_OS_WIN
 
+
+// TODO(lpy): For windows ThreadTicks implementation,
+// see http://crbug.com/v8/5000
+bool ThreadTicks::IsSupported() {
+#if (defined(_POSIX_THREAD_CPUTIME) && (_POSIX_THREAD_CPUTIME >= 0)) || \
+    defined(V8_OS_MACOSX) || defined(V8_OS_ANDROID)
+    return true;
+#else
+    return false;
+#endif
+}
+
+
+ThreadTicks ThreadTicks::Now() {
+#if V8_OS_MACOSX
+  return ThreadTicks(ComputeThreadTicks());
+#elif(defined(_POSIX_THREAD_CPUTIME) && (_POSIX_THREAD_CPUTIME >= 0)) || \
+  defined(V8_OS_ANDROID)
+  return ThreadTicks(ClockNow(CLOCK_THREAD_CPUTIME_ID));
+#else
+  UNREACHABLE();
+  return ThreadTicks();
+#endif
+}
+
 }  // namespace base
 }  // namespace v8
diff --git a/src/base/platform/time.h b/src/base/platform/time.h
index c8140ef..e17fc1d 100644
--- a/src/base/platform/time.h
+++ b/src/base/platform/time.h
@@ -9,7 +9,9 @@
 #include <iosfwd>
 #include <limits>
 
+#include "src/base/bits.h"
 #include "src/base/macros.h"
+#include "src/base/safe_math.h"
 
 // Forward declarations.
 extern "C" {
@@ -23,8 +25,14 @@
 namespace base {
 
 class Time;
+class TimeDelta;
 class TimeTicks;
 
+namespace time_internal {
+template<class TimeClass>
+class TimeBase;
+}
+
 // -----------------------------------------------------------------------------
 // TimeDelta
 //
@@ -143,6 +151,7 @@
   }
 
  private:
+  template<class TimeClass> friend class time_internal::TimeBase;
   // Constructs a delta given the duration in microseconds. This is private
   // to avoid confusion by callers with an integer constructor. Use
   // FromSeconds, FromMilliseconds, etc. instead.
@@ -153,34 +162,122 @@
 };
 
 
+namespace time_internal {
+
+// TimeBase--------------------------------------------------------------------
+
+// Provides value storage and comparison/math operations common to all time
+// classes. Each subclass provides for strong type-checking to ensure
+// semantically meaningful comparison/math of time values from the same clock
+// source or timeline.
+template<class TimeClass>
+class TimeBase {
+ public:
+  static const int64_t kHoursPerDay = 24;
+  static const int64_t kMillisecondsPerSecond = 1000;
+  static const int64_t kMillisecondsPerDay =
+      kMillisecondsPerSecond * 60 * 60 * kHoursPerDay;
+  static const int64_t kMicrosecondsPerMillisecond = 1000;
+  static const int64_t kMicrosecondsPerSecond =
+      kMicrosecondsPerMillisecond * kMillisecondsPerSecond;
+  static const int64_t kMicrosecondsPerMinute = kMicrosecondsPerSecond * 60;
+  static const int64_t kMicrosecondsPerHour = kMicrosecondsPerMinute * 60;
+  static const int64_t kMicrosecondsPerDay =
+      kMicrosecondsPerHour * kHoursPerDay;
+  static const int64_t kMicrosecondsPerWeek = kMicrosecondsPerDay * 7;
+  static const int64_t kNanosecondsPerMicrosecond = 1000;
+  static const int64_t kNanosecondsPerSecond =
+      kNanosecondsPerMicrosecond * kMicrosecondsPerSecond;
+
+  // Returns true if this object has not been initialized.
+  //
+  // Warning: Be careful when writing code that performs math on time values,
+  // since it's possible to produce a valid "zero" result that should not be
+  // interpreted as a "null" value.
+  bool IsNull() const {
+    return us_ == 0;
+  }
+
+  // Returns true if this object represents the maximum time.
+  bool IsMax() const { return us_ == std::numeric_limits<int64_t>::max(); }
+
+  // For serializing only. Use FromInternalValue() to reconstitute. Please don't
+  // use this and do arithmetic on it, as it is more error prone than using the
+  // provided operators.
+  int64_t ToInternalValue() const { return us_; }
+
+  TimeClass& operator=(TimeClass other) {
+    us_ = other.us_;
+    return *(static_cast<TimeClass*>(this));
+  }
+
+  // Compute the difference between two times.
+  TimeDelta operator-(TimeClass other) const {
+    return TimeDelta::FromMicroseconds(us_ - other.us_);
+  }
+
+  // Return a new time modified by some delta.
+  TimeClass operator+(TimeDelta delta) const {
+    return TimeClass(bits::SignedSaturatedAdd64(delta.delta_, us_));
+  }
+  TimeClass operator-(TimeDelta delta) const {
+    return TimeClass(-bits::SignedSaturatedSub64(delta.delta_, us_));
+  }
+
+  // Modify by some time delta.
+  TimeClass& operator+=(TimeDelta delta) {
+    return static_cast<TimeClass&>(*this = (*this + delta));
+  }
+  TimeClass& operator-=(TimeDelta delta) {
+    return static_cast<TimeClass&>(*this = (*this - delta));
+  }
+
+  // Comparison operators
+  bool operator==(TimeClass other) const {
+    return us_ == other.us_;
+  }
+  bool operator!=(TimeClass other) const {
+    return us_ != other.us_;
+  }
+  bool operator<(TimeClass other) const {
+    return us_ < other.us_;
+  }
+  bool operator<=(TimeClass other) const {
+    return us_ <= other.us_;
+  }
+  bool operator>(TimeClass other) const {
+    return us_ > other.us_;
+  }
+  bool operator>=(TimeClass other) const {
+    return us_ >= other.us_;
+  }
+
+  // Converts an integer value representing TimeClass to a class. This is used
+  // when deserializing a |TimeClass| structure, using a value known to be
+  // compatible. It is not provided as a constructor because the integer type
+  // may be unclear from the perspective of a caller.
+  static TimeClass FromInternalValue(int64_t us) { return TimeClass(us); }
+
+ protected:
+  explicit TimeBase(int64_t us) : us_(us) {}
+
+  // Time value in a microsecond timebase.
+  int64_t us_;
+};
+
+}  // namespace time_internal
+
+
 // -----------------------------------------------------------------------------
 // Time
 //
 // This class represents an absolute point in time, internally represented as
 // microseconds (s/1,000,000) since 00:00:00 UTC, January 1, 1970.
 
-class Time final {
+class Time final : public time_internal::TimeBase<Time> {
  public:
-  static const int64_t kMillisecondsPerSecond = 1000;
-  static const int64_t kMicrosecondsPerMillisecond = 1000;
-  static const int64_t kMicrosecondsPerSecond = kMicrosecondsPerMillisecond *
-                                                kMillisecondsPerSecond;
-  static const int64_t kMicrosecondsPerMinute = kMicrosecondsPerSecond * 60;
-  static const int64_t kMicrosecondsPerHour = kMicrosecondsPerMinute * 60;
-  static const int64_t kMicrosecondsPerDay = kMicrosecondsPerHour * 24;
-  static const int64_t kMicrosecondsPerWeek = kMicrosecondsPerDay * 7;
-  static const int64_t kNanosecondsPerMicrosecond = 1000;
-  static const int64_t kNanosecondsPerSecond = kNanosecondsPerMicrosecond *
-                                               kMicrosecondsPerSecond;
-
   // Contains the NULL time. Use Time::Now() to get the current time.
-  Time() : us_(0) {}
-
-  // Returns true if the time object has not been initialized.
-  bool IsNull() const { return us_ == 0; }
-
-  // Returns true if the time object is the maximum time.
-  bool IsMax() const { return us_ == std::numeric_limits<int64_t>::max(); }
+  Time() : TimeBase(0) {}
 
   // Returns the current time. Watch out, the system might adjust its clock
   // in which case time will actually go backwards. We don't guarantee that
@@ -200,15 +297,6 @@
   // with which we might compare it.
   static Time Max() { return Time(std::numeric_limits<int64_t>::max()); }
 
-  // Converts to/from internal values. The meaning of the "internal value" is
-  // completely up to the implementation, so it should be treated as opaque.
-  static Time FromInternalValue(int64_t value) {
-    return Time(value);
-  }
-  int64_t ToInternalValue() const {
-    return us_;
-  }
-
   // Converts to/from POSIX time specs.
   static Time FromTimespec(struct timespec ts);
   struct timespec ToTimespec() const;
@@ -226,59 +314,9 @@
   static Time FromJsTime(double ms_since_epoch);
   double ToJsTime() const;
 
-  Time& operator=(const Time& other) {
-    us_ = other.us_;
-    return *this;
-  }
-
-  // Compute the difference between two times.
-  TimeDelta operator-(const Time& other) const {
-    return TimeDelta::FromMicroseconds(us_ - other.us_);
-  }
-
-  // Modify by some time delta.
-  Time& operator+=(const TimeDelta& delta) {
-    us_ += delta.InMicroseconds();
-    return *this;
-  }
-  Time& operator-=(const TimeDelta& delta) {
-    us_ -= delta.InMicroseconds();
-    return *this;
-  }
-
-  // Return a new time modified by some delta.
-  Time operator+(const TimeDelta& delta) const {
-    return Time(us_ + delta.InMicroseconds());
-  }
-  Time operator-(const TimeDelta& delta) const {
-    return Time(us_ - delta.InMicroseconds());
-  }
-
-  // Comparison operators
-  bool operator==(const Time& other) const {
-    return us_ == other.us_;
-  }
-  bool operator!=(const Time& other) const {
-    return us_ != other.us_;
-  }
-  bool operator<(const Time& other) const {
-    return us_ < other.us_;
-  }
-  bool operator<=(const Time& other) const {
-    return us_ <= other.us_;
-  }
-  bool operator>(const Time& other) const {
-    return us_ > other.us_;
-  }
-  bool operator>=(const Time& other) const {
-    return us_ >= other.us_;
-  }
-
  private:
-  explicit Time(int64_t us) : us_(us) {}
-
-  // Time in microseconds in UTC.
-  int64_t us_;
+  friend class time_internal::TimeBase<Time>;
+  explicit Time(int64_t us) : TimeBase(us) {}
 };
 
 std::ostream& operator<<(std::ostream&, const Time&);
@@ -298,9 +336,9 @@
 // Time::Now() may actually decrease or jump).  But note that TimeTicks may
 // "stand still", for example if the computer suspended.
 
-class TimeTicks final {
+class TimeTicks final : public time_internal::TimeBase<TimeTicks> {
  public:
-  TimeTicks() : ticks_(0) {}
+  TimeTicks() : TimeBase(0) {}
 
   // Platform-dependent tick count representing "right now."
   // The resolution of this clock is ~1-15ms.  Resolution varies depending
@@ -318,79 +356,43 @@
   // Returns true if the high-resolution clock is working on this system.
   static bool IsHighResolutionClockWorking();
 
-  // Returns true if this object has not been initialized.
-  bool IsNull() const { return ticks_ == 0; }
-
-  // Converts to/from internal values. The meaning of the "internal value" is
-  // completely up to the implementation, so it should be treated as opaque.
-  static TimeTicks FromInternalValue(int64_t value) {
-    return TimeTicks(value);
-  }
-  int64_t ToInternalValue() const {
-    return ticks_;
-  }
-
-  TimeTicks& operator=(const TimeTicks other) {
-    ticks_ = other.ticks_;
-    return *this;
-  }
-
-  // Compute the difference between two times.
-  TimeDelta operator-(const TimeTicks other) const {
-    return TimeDelta::FromMicroseconds(ticks_ - other.ticks_);
-  }
-
-  // Modify by some time delta.
-  TimeTicks& operator+=(const TimeDelta& delta) {
-    ticks_ += delta.InMicroseconds();
-    return *this;
-  }
-  TimeTicks& operator-=(const TimeDelta& delta) {
-    ticks_ -= delta.InMicroseconds();
-    return *this;
-  }
-
-  // Return a new TimeTicks modified by some delta.
-  TimeTicks operator+(const TimeDelta& delta) const {
-    return TimeTicks(ticks_ + delta.InMicroseconds());
-  }
-  TimeTicks operator-(const TimeDelta& delta) const {
-    return TimeTicks(ticks_ - delta.InMicroseconds());
-  }
-
-  // Comparison operators
-  bool operator==(const TimeTicks& other) const {
-    return ticks_ == other.ticks_;
-  }
-  bool operator!=(const TimeTicks& other) const {
-    return ticks_ != other.ticks_;
-  }
-  bool operator<(const TimeTicks& other) const {
-    return ticks_ < other.ticks_;
-  }
-  bool operator<=(const TimeTicks& other) const {
-    return ticks_ <= other.ticks_;
-  }
-  bool operator>(const TimeTicks& other) const {
-    return ticks_ > other.ticks_;
-  }
-  bool operator>=(const TimeTicks& other) const {
-    return ticks_ >= other.ticks_;
-  }
-
  private:
-  // Please use Now() to create a new object. This is for internal use
-  // and testing. Ticks is in microseconds.
-  explicit TimeTicks(int64_t ticks) : ticks_(ticks) {}
+  friend class time_internal::TimeBase<TimeTicks>;
 
-  // Tick count in microseconds.
-  int64_t ticks_;
+  // Please use Now() to create a new object. This is for internal use
+  // and testing. Ticks are in microseconds.
+  explicit TimeTicks(int64_t ticks) : TimeBase(ticks) {}
 };
 
 inline TimeTicks operator+(const TimeDelta& delta, const TimeTicks& ticks) {
   return ticks + delta;
 }
 
+
+// ThreadTicks ----------------------------------------------------------------
+
+// Represents a clock, specific to a particular thread, than runs only while the
+// thread is running.
+class ThreadTicks final : public time_internal::TimeBase<ThreadTicks> {
+ public:
+  ThreadTicks() : TimeBase(0) {}
+
+  // Returns true if ThreadTicks::Now() is supported on this system.
+  static bool IsSupported();
+
+  // Returns thread-specific CPU-time on systems that support this feature.
+  // Needs to be guarded with a call to IsSupported(). Use this timer
+  // to (approximately) measure how much time the calling thread spent doing
+  // actual work vs. being de-scheduled. May return bogus results if the thread
+  // migrates to another CPU between two calls. Returns an empty ThreadTicks
+  // object until the initialization is completed.
+  static ThreadTicks Now();
+
+ private:
+  // This is for internal use and testing. Ticks are in microseconds.
+  explicit ThreadTicks(int64_t ticks) : TimeBase(ticks) {}
+};
+
 }  // namespace base
 }  // namespace v8
 
diff --git a/src/bignum.cc b/src/bignum.cc
index e7c6747..e2a9c4e 100644
--- a/src/bignum.cc
+++ b/src/bignum.cc
@@ -539,13 +539,6 @@
 }
 
 
-static char HexCharOfValue(int value) {
-  DCHECK(0 <= value && value <= 16);
-  if (value < 10) return value + '0';
-  return value - 10 + 'A';
-}
-
-
 bool Bignum::ToHexString(char* buffer, int buffer_size) const {
   DCHECK(IsClamped());
   // Each bigit must be printable as separate hex-character.
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
index f67065d..70eec2b 100644
--- a/src/bootstrapper.cc
+++ b/src/bootstrapper.cc
@@ -10,6 +10,7 @@
 #include "src/extensions/externalize-string-extension.h"
 #include "src/extensions/free-buffer-extension.h"
 #include "src/extensions/gc-extension.h"
+#include "src/extensions/ignition-statistics-extension.h"
 #include "src/extensions/statistics-extension.h"
 #include "src/extensions/trigger-failure-extension.h"
 #include "src/heap/heap.h"
@@ -73,7 +74,7 @@
 v8::Extension* Bootstrapper::externalize_string_extension_ = NULL;
 v8::Extension* Bootstrapper::statistics_extension_ = NULL;
 v8::Extension* Bootstrapper::trigger_failure_extension_ = NULL;
-
+v8::Extension* Bootstrapper::ignition_statistics_extension_ = NULL;
 
 void Bootstrapper::InitializeOncePerProcess() {
   free_buffer_extension_ = new FreeBufferExtension;
@@ -86,6 +87,8 @@
   v8::RegisterExtension(statistics_extension_);
   trigger_failure_extension_ = new TriggerFailureExtension;
   v8::RegisterExtension(trigger_failure_extension_);
+  ignition_statistics_extension_ = new IgnitionStatisticsExtension;
+  v8::RegisterExtension(ignition_statistics_extension_);
 }
 
 
@@ -100,6 +103,8 @@
   statistics_extension_ = NULL;
   delete trigger_failure_extension_;
   trigger_failure_extension_ = NULL;
+  delete ignition_statistics_extension_;
+  ignition_statistics_extension_ = NULL;
 }
 
 
@@ -157,7 +162,8 @@
   Handle<JSFunction> GetThrowTypeErrorIntrinsic(Builtins::Name builtin_name);
 
   void CreateStrictModeFunctionMaps(Handle<JSFunction> empty);
-  void CreateIteratorMaps();
+  void CreateIteratorMaps(Handle<JSFunction> empty);
+  void CreateAsyncFunctionMaps(Handle<JSFunction> empty);
   void CreateJSProxyMaps();
 
   // Make the "arguments" and "caller" properties throw a TypeError on access.
@@ -200,6 +206,7 @@
   HARMONY_STAGED(DECLARE_FEATURE_INITIALIZATION)
   HARMONY_SHIPPING(DECLARE_FEATURE_INITIALIZATION)
   DECLARE_FEATURE_INITIALIZATION(promise_extra, "")
+  DECLARE_FEATURE_INITIALIZATION(intl_extra, "")
 #undef DECLARE_FEATURE_INITIALIZATION
 
   Handle<JSFunction> InstallArrayBuffer(Handle<JSObject> target,
@@ -354,7 +361,6 @@
   }
 }
 
-
 namespace {
 
 void InstallFunction(Handle<JSObject> target, Handle<Name> property_name,
@@ -367,20 +373,18 @@
   function->shared()->set_native(true);
 }
 
-
-static void InstallFunction(Handle<JSObject> target,
-                            Handle<JSFunction> function, Handle<Name> name,
-                            PropertyAttributes attributes = DONT_ENUM) {
+void InstallFunction(Handle<JSObject> target, Handle<JSFunction> function,
+                     Handle<Name> name,
+                     PropertyAttributes attributes = DONT_ENUM) {
   Handle<String> name_string = Name::ToFunctionName(name).ToHandleChecked();
   InstallFunction(target, name, function, name_string, attributes);
 }
 
-
-static Handle<JSFunction> CreateFunction(Isolate* isolate, Handle<String> name,
-                                         InstanceType type, int instance_size,
-                                         MaybeHandle<JSObject> maybe_prototype,
-                                         Builtins::Name call,
-                                         bool strict_function_map = false) {
+Handle<JSFunction> CreateFunction(Isolate* isolate, Handle<String> name,
+                                  InstanceType type, int instance_size,
+                                  MaybeHandle<JSObject> maybe_prototype,
+                                  Builtins::Name call,
+                                  bool strict_function_map = false) {
   Factory* factory = isolate->factory();
   Handle<Code> call_code(isolate->builtins()->builtin(call));
   Handle<JSObject> prototype;
@@ -394,7 +398,6 @@
                                                     strict_function_map);
 }
 
-
 Handle<JSFunction> InstallFunction(Handle<JSObject> target, Handle<Name> name,
                                    InstanceType type, int instance_size,
                                    MaybeHandle<JSObject> maybe_prototype,
@@ -409,7 +412,6 @@
   return function;
 }
 
-
 Handle<JSFunction> InstallFunction(Handle<JSObject> target, const char* name,
                                    InstanceType type, int instance_size,
                                    MaybeHandle<JSObject> maybe_prototype,
@@ -422,8 +424,40 @@
                          strict_function_map);
 }
 
-}  // namespace
+Handle<JSFunction> SimpleCreateFunction(Isolate* isolate, Handle<String> name,
+                                        Builtins::Name call, int len,
+                                        bool adapt) {
+  Handle<JSFunction> fun =
+      CreateFunction(isolate, name, JS_OBJECT_TYPE, JSObject::kHeaderSize,
+                     MaybeHandle<JSObject>(), call);
+  if (adapt) {
+    fun->shared()->set_internal_formal_parameter_count(len);
+  } else {
+    fun->shared()->DontAdaptArguments();
+  }
+  fun->shared()->set_length(len);
+  return fun;
+}
 
+Handle<JSFunction> SimpleInstallFunction(Handle<JSObject> base,
+                                         Handle<String> name,
+                                         Builtins::Name call, int len,
+                                         bool adapt) {
+  Handle<JSFunction> fun =
+      SimpleCreateFunction(base->GetIsolate(), name, call, len, adapt);
+  InstallFunction(base, fun, name, DONT_ENUM);
+  return fun;
+}
+
+Handle<JSFunction> SimpleInstallFunction(Handle<JSObject> base,
+                                         const char* name, Builtins::Name call,
+                                         int len, bool adapt) {
+  Factory* const factory = base->GetIsolate()->factory();
+  return SimpleInstallFunction(base, factory->InternalizeUtf8String(name), call,
+                               len, adapt);
+}
+
+}  // namespace
 
 void Genesis::SetFunctionInstanceDescriptor(Handle<Map> map,
                                             FunctionMode function_mode) {
@@ -709,22 +743,43 @@
       CreateStrictFunctionMap(FUNCTION_WITH_WRITEABLE_PROTOTYPE, empty);
 }
 
-
-void Genesis::CreateIteratorMaps() {
+void Genesis::CreateIteratorMaps(Handle<JSFunction> empty) {
   // Create iterator-related meta-objects.
   Handle<JSObject> iterator_prototype =
       factory()->NewJSObject(isolate()->object_function(), TENURED);
   Handle<JSObject> generator_object_prototype =
       factory()->NewJSObject(isolate()->object_function(), TENURED);
+  native_context()->set_initial_generator_prototype(
+      *generator_object_prototype);
+  SetObjectPrototype(generator_object_prototype, iterator_prototype);
   Handle<JSObject> generator_function_prototype =
       factory()->NewJSObject(isolate()->object_function(), TENURED);
-  SetObjectPrototype(generator_object_prototype, iterator_prototype);
+  SetObjectPrototype(generator_function_prototype, empty);
 
+  JSObject::AddProperty(
+      generator_function_prototype, factory()->to_string_tag_symbol(),
+      factory()->NewStringFromAsciiChecked("GeneratorFunction"),
+      static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
   JSObject::AddProperty(generator_function_prototype,
-                        factory()->InternalizeUtf8String("prototype"),
+                        factory()->prototype_string(),
                         generator_object_prototype,
                         static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
 
+  JSObject::AddProperty(generator_object_prototype,
+                        factory()->constructor_string(),
+                        generator_function_prototype,
+                        static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
+  JSObject::AddProperty(generator_object_prototype,
+                        factory()->to_string_tag_symbol(),
+                        factory()->NewStringFromAsciiChecked("Generator"),
+                        static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
+  SimpleInstallFunction(generator_object_prototype, "next",
+                        Builtins::kGeneratorPrototypeNext, 1, true);
+  SimpleInstallFunction(generator_object_prototype, "return",
+                        Builtins::kGeneratorPrototypeReturn, 1, true);
+  SimpleInstallFunction(generator_object_prototype, "throw",
+                        Builtins::kGeneratorPrototypeThrow, 1, true);
+
   // Create maps for generator functions and their prototypes.  Store those
   // maps in the native context. The "prototype" property descriptor is
   // writable, non-enumerable, and non-configurable (as per ES6 draft
@@ -754,6 +809,32 @@
       *generator_object_prototype_map);
 }
 
+void Genesis::CreateAsyncFunctionMaps(Handle<JSFunction> empty) {
+  // %AsyncFunctionPrototype% intrinsic
+  Handle<JSObject> async_function_prototype =
+      factory()->NewJSObject(isolate()->object_function(), TENURED);
+  SetObjectPrototype(async_function_prototype, empty);
+
+  JSObject::AddProperty(async_function_prototype,
+                        factory()->to_string_tag_symbol(),
+                        factory()->NewStringFromAsciiChecked("AsyncFunction"),
+                        static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
+
+  Handle<Map> strict_function_map(
+      native_context()->strict_function_without_prototype_map());
+  Handle<Map> sloppy_async_function_map =
+      Map::Copy(strict_function_map, "SloppyAsyncFunction");
+  sloppy_async_function_map->set_is_constructor(false);
+  Map::SetPrototype(sloppy_async_function_map, async_function_prototype);
+  native_context()->set_sloppy_async_function_map(*sloppy_async_function_map);
+
+  Handle<Map> strict_async_function_map =
+      Map::Copy(strict_function_map, "StrictAsyncFunction");
+  strict_async_function_map->set_is_constructor(false);
+  Map::SetPrototype(strict_async_function_map, async_function_prototype);
+  native_context()->set_strict_async_function_map(*strict_async_function_map);
+}
+
 void Genesis::CreateJSProxyMaps() {
   // Allocate the different maps for all Proxy types.
   // Next to the default proxy, we need maps indicating callable and
@@ -807,11 +888,11 @@
   Heap* heap = context->GetIsolate()->heap();
 #ifdef DEBUG
   { // NOLINT
-    DCHECK(context->get(Context::NEXT_CONTEXT_LINK)->IsUndefined());
+    DCHECK(context->next_context_link()->IsUndefined());
     // Check that context is not in the list yet.
     for (Object* current = heap->native_contexts_list();
          !current->IsUndefined();
-         current = Context::cast(current)->get(Context::NEXT_CONTEXT_LINK)) {
+         current = Context::cast(current)->next_context_link()) {
       DCHECK(current != context);
     }
   }
@@ -971,45 +1052,6 @@
   TransferIndexedProperties(global_object_from_snapshot, global_object);
 }
 
-
-static Handle<JSFunction> SimpleCreateFunction(Isolate* isolate,
-                                               Handle<String> name,
-                                               Builtins::Name call, int len,
-                                               bool adapt) {
-  Handle<JSFunction> fun =
-      CreateFunction(isolate, name, JS_OBJECT_TYPE, JSObject::kHeaderSize,
-                     MaybeHandle<JSObject>(), call);
-  if (adapt) {
-    fun->shared()->set_internal_formal_parameter_count(len);
-  } else {
-    fun->shared()->DontAdaptArguments();
-  }
-  fun->shared()->set_length(len);
-  return fun;
-}
-
-
-static Handle<JSFunction> SimpleInstallFunction(Handle<JSObject> base,
-                                                Handle<String> name,
-                                                Builtins::Name call, int len,
-                                                bool adapt) {
-  Handle<JSFunction> fun =
-      SimpleCreateFunction(base->GetIsolate(), name, call, len, adapt);
-  InstallFunction(base, fun, name, DONT_ENUM);
-  return fun;
-}
-
-
-static Handle<JSFunction> SimpleInstallFunction(Handle<JSObject> base,
-                                                const char* name,
-                                                Builtins::Name call, int len,
-                                                bool adapt) {
-  Factory* const factory = base->GetIsolate()->factory();
-  return SimpleInstallFunction(base, factory->InternalizeUtf8String(name), call,
-                               len, adapt);
-}
-
-
 static void InstallWithIntrinsicDefaultProto(Isolate* isolate,
                                              Handle<JSFunction> function,
                                              int context_index) {
@@ -1049,40 +1091,74 @@
     Handle<JSFunction> object_function = isolate->object_function();
     JSObject::AddProperty(global_object, object_name, object_function,
                           DONT_ENUM);
+
     SimpleInstallFunction(object_function, factory->assign_string(),
                           Builtins::kObjectAssign, 2, false);
     SimpleInstallFunction(object_function, factory->create_string(),
                           Builtins::kObjectCreate, 2, false);
-    Handle<JSFunction> object_freeze = SimpleInstallFunction(
-        object_function, "freeze", Builtins::kObjectFreeze, 1, false);
-    native_context()->set_object_freeze(*object_freeze);
     SimpleInstallFunction(object_function, "getOwnPropertyDescriptor",
                           Builtins::kObjectGetOwnPropertyDescriptor, 2, false);
     SimpleInstallFunction(object_function, "getOwnPropertyNames",
                           Builtins::kObjectGetOwnPropertyNames, 1, false);
     SimpleInstallFunction(object_function, "getOwnPropertySymbols",
                           Builtins::kObjectGetOwnPropertySymbols, 1, false);
-    SimpleInstallFunction(object_function, "is", Builtins::kObjectIs, 2, true);
-    Handle<JSFunction> object_is_extensible =
-        SimpleInstallFunction(object_function, "isExtensible",
-                              Builtins::kObjectIsExtensible, 1, false);
+    SimpleInstallFunction(object_function, "is",
+                          Builtins::kObjectIs, 2, true);
+    SimpleInstallFunction(object_function, "preventExtensions",
+                          Builtins::kObjectPreventExtensions, 1, false);
+    SimpleInstallFunction(object_function, "seal",
+                          Builtins::kObjectSeal, 1, false);
+
+    Handle<JSFunction> object_define_properties = SimpleInstallFunction(
+        object_function, "defineProperties",
+        Builtins::kObjectDefineProperties, 2, true);
+    native_context()->set_object_define_properties(*object_define_properties);
+
+    Handle<JSFunction> object_define_property = SimpleInstallFunction(
+        object_function, factory->defineProperty_string(),
+        Builtins::kObjectDefineProperty, 3, true);
+    native_context()->set_object_define_property(*object_define_property);
+
+    Handle<JSFunction> object_freeze = SimpleInstallFunction(
+        object_function, "freeze", Builtins::kObjectFreeze, 1, false);
+    native_context()->set_object_freeze(*object_freeze);
+
+    Handle<JSFunction> object_get_prototype_of = SimpleInstallFunction(
+        object_function, "getPrototypeOf", Builtins::kObjectGetPrototypeOf,
+        1, false);
+    native_context()->set_object_get_prototype_of(*object_get_prototype_of);
+
+    Handle<JSFunction> object_is_extensible = SimpleInstallFunction(
+        object_function, "isExtensible", Builtins::kObjectIsExtensible,
+        1, false);
     native_context()->set_object_is_extensible(*object_is_extensible);
+
     Handle<JSFunction> object_is_frozen = SimpleInstallFunction(
         object_function, "isFrozen", Builtins::kObjectIsFrozen, 1, false);
     native_context()->set_object_is_frozen(*object_is_frozen);
+
     Handle<JSFunction> object_is_sealed = SimpleInstallFunction(
         object_function, "isSealed", Builtins::kObjectIsSealed, 1, false);
     native_context()->set_object_is_sealed(*object_is_sealed);
+
     Handle<JSFunction> object_keys = SimpleInstallFunction(
         object_function, "keys", Builtins::kObjectKeys, 1, false);
     native_context()->set_object_keys(*object_keys);
-    SimpleInstallFunction(object_function, "preventExtensions",
-                          Builtins::kObjectPreventExtensions, 1, false);
-    SimpleInstallFunction(object_function, "seal", Builtins::kObjectSeal, 1,
-                          false);
 
+    SimpleInstallFunction(isolate->initial_object_prototype(),
+                          "__defineGetter__", Builtins::kObjectDefineGetter, 2,
+                          true);
+    SimpleInstallFunction(isolate->initial_object_prototype(),
+                          "__defineSetter__", Builtins::kObjectDefineSetter, 2,
+                          true);
     SimpleInstallFunction(isolate->initial_object_prototype(), "hasOwnProperty",
                           Builtins::kObjectHasOwnProperty, 1, true);
+    SimpleInstallFunction(isolate->initial_object_prototype(),
+                          "__lookupGetter__", Builtins::kObjectLookupGetter, 1,
+                          true);
+    SimpleInstallFunction(isolate->initial_object_prototype(),
+                          "__lookupSetter__", Builtins::kObjectLookupSetter, 1,
+                          true);
   }
 
   Handle<JSObject> global(native_context()->global_object());
@@ -1115,7 +1191,7 @@
     Handle<JSFunction> has_instance = InstallFunction(
         prototype, factory->has_instance_symbol(), JS_OBJECT_TYPE,
         JSObject::kHeaderSize, MaybeHandle<JSObject>(),
-        Builtins::kFunctionHasInstance,
+        Builtins::kFunctionPrototypeHasInstance,
         static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY));
 
     // Set the expected parameters for @@hasInstance to 1; required by builtin.
@@ -1124,9 +1200,6 @@
     // Set the length for the function to satisfy ECMA-262.
     has_instance->shared()->set_length(1);
 
-    // Install in the native context
-    native_context()->set_ordinary_has_instance(*has_instance);
-
     // Install the "constructor" property on the %FunctionPrototype%.
     JSObject::AddProperty(prototype, factory->constructor_string(),
                           function_fun, DONT_ENUM);
@@ -1252,6 +1325,22 @@
     // Install the String.fromCharCode function.
     SimpleInstallFunction(string_fun, "fromCharCode",
                           Builtins::kStringFromCharCode, 1, false);
+
+    // Create the %StringPrototype%
+    Handle<JSValue> prototype =
+        Handle<JSValue>::cast(factory->NewJSObject(string_fun, TENURED));
+    prototype->set_value(isolate->heap()->empty_string());
+    Accessors::FunctionSetPrototype(string_fun, prototype).Assert();
+
+    // Install the "constructor" property on the {prototype}.
+    JSObject::AddProperty(prototype, factory->constructor_string(), string_fun,
+                          DONT_ENUM);
+
+    // Install the String.prototype methods.
+    SimpleInstallFunction(prototype, "charAt", Builtins::kStringPrototypeCharAt,
+                          1, true);
+    SimpleInstallFunction(prototype, "charCodeAt",
+                          Builtins::kStringPrototypeCharCodeAt, 1, true);
   }
 
   {
@@ -1702,18 +1791,21 @@
         static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY);
     Map::EnsureDescriptorSlack(map, 2);
 
+    Handle<AccessorInfo> bound_length =
+        Accessors::BoundFunctionLengthInfo(isolate, roc_attribs);
     {  // length
-      DataDescriptor d(factory->length_string(), JSBoundFunction::kLengthIndex,
-                       roc_attribs, Representation::Tagged());
+      AccessorConstantDescriptor d(factory->length_string(), bound_length,
+                                   roc_attribs);
       map->AppendDescriptor(&d);
     }
-    {  // name
-      DataDescriptor d(factory->name_string(), JSBoundFunction::kNameIndex,
-                       roc_attribs, Representation::Tagged());
+    Handle<AccessorInfo> bound_name =
+        Accessors::BoundFunctionNameInfo(isolate, roc_attribs);
+    {  // length
+      AccessorConstantDescriptor d(factory->name_string(), bound_name,
+                                   roc_attribs);
       map->AppendDescriptor(&d);
     }
-
-    map->SetInObjectProperties(2);
+    map->SetInObjectProperties(0);
     native_context()->set_bound_function_without_constructor_map(*map);
 
     map = Map::Copy(map, "IsConstructor");
@@ -1887,6 +1979,7 @@
   HARMONY_STAGED(FEATURE_INITIALIZE_GLOBAL)
   HARMONY_SHIPPING(FEATURE_INITIALIZE_GLOBAL)
   FEATURE_INITIALIZE_GLOBAL(promise_extra, "")
+  FEATURE_INITIALIZE_GLOBAL(intl_extra, "")
 #undef FEATURE_INITIALIZE_GLOBAL
 }
 
@@ -2169,6 +2262,13 @@
         isolate, generator_function_function,
         Context::GENERATOR_FUNCTION_FUNCTION_INDEX);
 
+    SetObjectPrototype(generator_function_function,
+                       isolate->function_function());
+    JSObject::AddProperty(
+        generator_function_prototype, factory->constructor_string(),
+        generator_function_function,
+        static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
+
     native_context->sloppy_generator_function_map()->SetConstructor(
         *generator_function_function);
     native_context->strict_generator_function_map()->SetConstructor(
@@ -2341,6 +2441,42 @@
           script_is_embedder_debug_script, attribs);
       script_map->AppendDescriptor(&d);
     }
+
+    {
+      PrototypeIterator iter(native_context->sloppy_async_function_map());
+      Handle<JSObject> async_function_prototype(iter.GetCurrent<JSObject>());
+
+      static const bool kUseStrictFunctionMap = true;
+      Handle<JSFunction> async_function_constructor = InstallFunction(
+          container, "AsyncFunction", JS_FUNCTION_TYPE, JSFunction::kSize,
+          async_function_prototype, Builtins::kAsyncFunctionConstructor,
+          kUseStrictFunctionMap);
+      async_function_constructor->set_prototype_or_initial_map(
+          native_context->sloppy_async_function_map());
+      async_function_constructor->shared()->DontAdaptArguments();
+      async_function_constructor->shared()->set_construct_stub(
+          *isolate->builtins()->AsyncFunctionConstructor());
+      async_function_constructor->shared()->set_length(1);
+      InstallWithIntrinsicDefaultProto(isolate, async_function_constructor,
+                                       Context::ASYNC_FUNCTION_FUNCTION_INDEX);
+
+      JSObject::AddProperty(
+          async_function_prototype, factory->constructor_string(),
+          async_function_constructor,
+          static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
+
+      JSFunction::SetPrototype(async_function_constructor,
+                               async_function_prototype);
+
+      Handle<JSFunction> async_function_next =
+          SimpleInstallFunction(container, "AsyncFunctionNext",
+                                Builtins::kGeneratorPrototypeNext, 2, false);
+      Handle<JSFunction> async_function_throw =
+          SimpleInstallFunction(container, "AsyncFunctionThrow",
+                                Builtins::kGeneratorPrototypeThrow, 2, false);
+      async_function_next->shared()->set_native(true);
+      async_function_throw->shared()->set_native(true);
+    }
   }
 }
 
@@ -2358,6 +2494,7 @@
   }
 
   INITIALIZE_FLAG(FLAG_harmony_species)
+  INITIALIZE_FLAG(FLAG_intl_extra)
 
 #undef INITIALIZE_FLAG
 }
@@ -2366,12 +2503,9 @@
 #define EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(id) \
   void Genesis::InitializeGlobal_##id() {}
 
-EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_sloppy)
-EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_sloppy_function)
-EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_sloppy_let)
-EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_object_observe)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_unicode_regexps)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_do_expressions)
+EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_for_in)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_iterator_close)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_regexp_exec)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_regexp_lookbehind)
@@ -2379,11 +2513,17 @@
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_function_name)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_function_sent)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(promise_extra)
+EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(intl_extra)
+EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_explicit_tailcalls)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_tailcalls)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_instanceof)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_restrictive_declarations)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_exponentiation_operator)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_string_padding)
+#ifdef V8_I18N_SUPPORT
+EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(icu_case_mapping)
+#endif
+EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_async_await)
 
 void InstallPublicSymbol(Factory* factory, Handle<Context> native_context,
                          const char* name, Handle<Symbol> value) {
@@ -2416,9 +2556,26 @@
   if (!FLAG_harmony_sharedarraybuffer) return;
 
   Handle<JSGlobalObject> global(native_context()->global_object());
+  Isolate* isolate = global->GetIsolate();
+  Factory* factory = isolate->factory();
+
   Handle<JSFunction> shared_array_buffer_fun =
       InstallArrayBuffer(global, "SharedArrayBuffer");
   native_context()->set_shared_array_buffer_fun(*shared_array_buffer_fun);
+
+  Handle<String> name = factory->InternalizeUtf8String("Atomics");
+  Handle<JSFunction> cons = factory->NewFunction(name);
+  JSFunction::SetInstancePrototype(
+      cons,
+      Handle<Object>(native_context()->initial_object_prototype(), isolate));
+  Handle<JSObject> atomics_object = factory->NewJSObject(cons, TENURED);
+  DCHECK(atomics_object->IsJSObject());
+  JSObject::AddProperty(global, name, atomics_object, DONT_ENUM);
+
+  SimpleInstallFunction(atomics_object, factory->InternalizeUtf8String("load"),
+                        Builtins::kAtomicsLoad, 2, true);
+  SimpleInstallFunction(atomics_object, factory->InternalizeUtf8String("store"),
+                        Builtins::kAtomicsStore, 3, true);
 }
 
 
@@ -2665,11 +2822,22 @@
   native_context()->set_string_function_prototype_map(
       HeapObject::cast(string_function->initial_map()->prototype())->map());
 
+  Handle<JSGlobalObject> global_object =
+      handle(native_context()->global_object());
+
+  // Install Global.encodeURI.
+  SimpleInstallFunction(global_object, "encodeURI", Builtins::kGlobalEncodeURI,
+                        1, false);
+
+  // Install Global.encodeURIComponent.
+  SimpleInstallFunction(global_object, "encodeURIComponent",
+                        Builtins::kGlobalEncodeURIComponent, 1, false);
+
   // Install Global.eval.
   {
-    Handle<JSFunction> eval = SimpleInstallFunction(
-        handle(native_context()->global_object()), factory()->eval_string(),
-        Builtins::kGlobalEval, 1, false);
+    Handle<JSFunction> eval =
+        SimpleInstallFunction(global_object, factory()->eval_string(),
+                              Builtins::kGlobalEval, 1, false);
     native_context()->set_global_eval_fun(*eval);
   }
 
@@ -2712,8 +2880,7 @@
   {
     Handle<String> key = factory()->Promise_string();
     Handle<JSFunction> function = Handle<JSFunction>::cast(
-        JSReceiver::GetProperty(handle(native_context()->global_object()), key)
-            .ToHandleChecked());
+        JSReceiver::GetProperty(global_object, key).ToHandleChecked());
     JSFunction::EnsureHasInitialMap(function);
     function->initial_map()->set_instance_type(JS_PROMISE_TYPE);
     function->shared()->set_construct_stub(
@@ -2724,37 +2891,6 @@
 
   InstallBuiltinFunctionIds();
 
-  // Also install builtin function ids to some generator object methods. These
-  // three methods use the three resume operations (Runtime_GeneratorNext,
-  // Runtime_GeneratorReturn, Runtime_GeneratorThrow) respectively. Those
-  // operations are not supported by Crankshaft, TurboFan, nor Ignition.
-  {
-    Handle<JSObject> generator_object_prototype(JSObject::cast(
-        native_context()->generator_object_prototype_map()->prototype()));
-
-    {  // GeneratorObject.prototype.next
-      Handle<String> key = factory()->next_string();
-      Handle<JSFunction> function = Handle<JSFunction>::cast(
-          JSReceiver::GetProperty(generator_object_prototype, key)
-              .ToHandleChecked());
-      function->shared()->set_builtin_function_id(kGeneratorObjectNext);
-    }
-    {  // GeneratorObject.prototype.return
-      Handle<String> key = factory()->NewStringFromAsciiChecked("return");
-      Handle<JSFunction> function = Handle<JSFunction>::cast(
-          JSReceiver::GetProperty(generator_object_prototype, key)
-              .ToHandleChecked());
-      function->shared()->set_builtin_function_id(kGeneratorObjectReturn);
-    }
-    {  // GeneratorObject.prototype.throw
-      Handle<String> key = factory()->throw_string();
-      Handle<JSFunction> function = Handle<JSFunction>::cast(
-          JSReceiver::GetProperty(generator_object_prototype, key)
-              .ToHandleChecked());
-      function->shared()->set_builtin_function_id(kGeneratorObjectThrow);
-    }
-  }
-
   // Create a map for accessor property descriptors (a variant of JSObject
   // that predefines four properties get, set, configurable and enumerable).
   {
@@ -2936,21 +3072,18 @@
 
 bool Genesis::InstallExperimentalNatives() {
   static const char* harmony_iterator_close_natives[] = {nullptr};
-  static const char* harmony_sloppy_natives[] = {nullptr};
-  static const char* harmony_sloppy_function_natives[] = {nullptr};
-  static const char* harmony_sloppy_let_natives[] = {nullptr};
   static const char* harmony_species_natives[] = {"native harmony-species.js",
                                                   nullptr};
+  static const char* harmony_explicit_tailcalls_natives[] = {nullptr};
   static const char* harmony_tailcalls_natives[] = {nullptr};
   static const char* harmony_unicode_regexps_natives[] = {
       "native harmony-unicode-regexps.js", nullptr};
-  static const char* harmony_object_observe_natives[] = {
-      "native harmony-object-observe.js", nullptr};
   static const char* harmony_sharedarraybuffer_natives[] = {
       "native harmony-sharedarraybuffer.js", "native harmony-atomics.js", NULL};
   static const char* harmony_simd_natives[] = {"native harmony-simd.js",
                                                nullptr};
   static const char* harmony_do_expressions_natives[] = {nullptr};
+  static const char* harmony_for_in_natives[] = {nullptr};
   static const char* harmony_regexp_exec_natives[] = {
       "native harmony-regexp-exec.js", nullptr};
   static const char* harmony_regexp_subclass_natives[] = {nullptr};
@@ -2962,6 +3095,7 @@
   static const char* harmony_function_sent_natives[] = {nullptr};
   static const char* promise_extra_natives[] = {"native promise-extra.js",
                                                 nullptr};
+  static const char* intl_extra_natives[] = {"native intl-extra.js", nullptr};
   static const char* harmony_object_values_entries_natives[] = {nullptr};
   static const char* harmony_object_own_property_descriptors_natives[] = {
       nullptr};
@@ -2969,6 +3103,12 @@
   static const char* harmony_exponentiation_operator_natives[] = {nullptr};
   static const char* harmony_string_padding_natives[] = {
       "native harmony-string-padding.js", nullptr};
+#ifdef V8_I18N_SUPPORT
+  static const char* icu_case_mapping_natives[] = {"native icu-case-mapping.js",
+                                                   nullptr};
+#endif
+  static const char* harmony_async_await_natives[] = {
+      "native harmony-async-await.js", nullptr};
 
   for (int i = ExperimentalNatives::GetDebuggerCount();
        i < ExperimentalNatives::GetBuiltinsCount(); i++) {
@@ -2987,6 +3127,7 @@
     HARMONY_INPROGRESS(INSTALL_EXPERIMENTAL_NATIVES);
     HARMONY_STAGED(INSTALL_EXPERIMENTAL_NATIVES);
     HARMONY_SHIPPING(INSTALL_EXPERIMENTAL_NATIVES);
+    INSTALL_EXPERIMENTAL_NATIVES(intl_extra, "");
     INSTALL_EXPERIMENTAL_NATIVES(promise_extra, "");
 #undef INSTALL_EXPERIMENTAL_NATIVES
   }
@@ -3179,17 +3320,20 @@
   Isolate* isolate = native_context->GetIsolate();
   ExtensionStates extension_states;  // All extensions have state UNVISITED.
   return InstallAutoExtensions(isolate, &extension_states) &&
-      (!FLAG_expose_free_buffer ||
-       InstallExtension(isolate, "v8/free-buffer", &extension_states)) &&
-      (!FLAG_expose_gc ||
-       InstallExtension(isolate, "v8/gc", &extension_states)) &&
-      (!FLAG_expose_externalize_string ||
-       InstallExtension(isolate, "v8/externalize", &extension_states)) &&
-      (!FLAG_track_gc_object_stats ||
-       InstallExtension(isolate, "v8/statistics", &extension_states)) &&
-      (!FLAG_expose_trigger_failure ||
-       InstallExtension(isolate, "v8/trigger-failure", &extension_states)) &&
-      InstallRequestedExtensions(isolate, extensions, &extension_states);
+         (!FLAG_expose_free_buffer ||
+          InstallExtension(isolate, "v8/free-buffer", &extension_states)) &&
+         (!FLAG_expose_gc ||
+          InstallExtension(isolate, "v8/gc", &extension_states)) &&
+         (!FLAG_expose_externalize_string ||
+          InstallExtension(isolate, "v8/externalize", &extension_states)) &&
+         (!FLAG_track_gc_object_stats ||
+          InstallExtension(isolate, "v8/statistics", &extension_states)) &&
+         (!FLAG_expose_trigger_failure ||
+          InstallExtension(isolate, "v8/trigger-failure", &extension_states)) &&
+         (!(FLAG_ignition && FLAG_trace_ignition_dispatches) ||
+          InstallExtension(isolate, "v8/ignition-statistics",
+                           &extension_states)) &&
+         InstallRequestedExtensions(isolate, extensions, &extension_states);
 }
 
 
@@ -3559,7 +3703,8 @@
     CreateRoots();
     Handle<JSFunction> empty_function = CreateEmptyFunction(isolate);
     CreateStrictModeFunctionMaps(empty_function);
-    CreateIteratorMaps();
+    CreateIteratorMaps(empty_function);
+    CreateAsyncFunctionMaps(empty_function);
     Handle<JSGlobalObject> global_object =
         CreateNewGlobals(global_proxy_template, global_proxy);
     HookUpGlobalProxy(global_object, global_proxy);
diff --git a/src/bootstrapper.h b/src/bootstrapper.h
index d1bf201..5563eea 100644
--- a/src/bootstrapper.h
+++ b/src/bootstrapper.h
@@ -136,6 +136,7 @@
   static v8::Extension* externalize_string_extension_;
   static v8::Extension* statistics_extension_;
   static v8::Extension* trigger_failure_extension_;
+  static v8::Extension* ignition_statistics_extension_;
 
   DISALLOW_COPY_AND_ASSIGN(Bootstrapper);
 };
diff --git a/src/builtins.cc b/src/builtins.cc
index 9c3ff59..75f6150 100644
--- a/src/builtins.cc
+++ b/src/builtins.cc
@@ -4,13 +4,13 @@
 
 #include "src/builtins.h"
 
-#include "src/api.h"
 #include "src/api-arguments.h"
 #include "src/api-natives.h"
+#include "src/api.h"
 #include "src/base/once.h"
 #include "src/bootstrapper.h"
 #include "src/code-factory.h"
-#include "src/compiler/code-stub-assembler.h"
+#include "src/code-stub-assembler.h"
 #include "src/dateparser-inl.h"
 #include "src/elements.h"
 #include "src/frames-inl.h"
@@ -23,6 +23,7 @@
 #include "src/property-descriptor.h"
 #include "src/prototype.h"
 #include "src/string-builder.h"
+#include "src/uri.h"
 #include "src/vm-state-inl.h"
 
 namespace v8 {
@@ -41,12 +42,12 @@
   }
 
   Object*& operator[] (int index) {
-    DCHECK(index < length());
+    DCHECK_LT(index, length());
     return Arguments::operator[](index);
   }
 
   template <class S> Handle<S> at(int index) {
-    DCHECK(index < length());
+    DCHECK_LT(index, length());
     return Arguments::at<S>(index);
   }
 
@@ -138,25 +139,28 @@
 //
 // In the body of the builtin function the arguments can be accessed
 // through the BuiltinArguments object args.
-
+// TODO(cbruni): add global flag to check whether any tracing events have been
+// enabled.
 #define BUILTIN(name)                                                          \
   MUST_USE_RESULT static Object* Builtin_Impl_##name(name##ArgumentsType args, \
                                                      Isolate* isolate);        \
-  MUST_USE_RESULT static Object* Builtin_##name(                               \
+                                                                               \
+  V8_NOINLINE static Object* Builtin_Impl_Stats_##name(                        \
       int args_length, Object** args_object, Isolate* isolate) {               \
-    Object* value;                                                             \
-    isolate->counters()->runtime_calls()->Increment();                         \
+    name##ArgumentsType args(args_length, args_object);                        \
+    RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Builtin_##name);   \
     TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"),                      \
                  "V8.Builtin_" #name);                                         \
-    name##ArgumentsType args(args_length, args_object);                        \
+    return Builtin_Impl_##name(args, isolate);                                 \
+  }                                                                            \
+                                                                               \
+  MUST_USE_RESULT static Object* Builtin_##name(                               \
+      int args_length, Object** args_object, Isolate* isolate) {               \
     if (FLAG_runtime_call_stats) {                                             \
-      RuntimeCallStats* stats = isolate->counters()->runtime_call_stats();     \
-      RuntimeCallTimerScope timer(isolate, &stats->Builtin_##name);            \
-      value = Builtin_Impl_##name(args, isolate);                              \
-    } else {                                                                   \
-      value = Builtin_Impl_##name(args, isolate);                              \
+      return Builtin_Impl_Stats_##name(args_length, args_object, isolate);     \
     }                                                                          \
-    return value;                                                              \
+    name##ArgumentsType args(args_length, args_object);                        \
+    return Builtin_Impl_##name(args, isolate);                                 \
   }                                                                            \
                                                                                \
   MUST_USE_RESULT static Object* Builtin_Impl_##name(name##ArgumentsType args, \
@@ -164,7 +168,6 @@
 
 // ----------------------------------------------------------------------------
 
-
 #define CHECK_RECEIVER(Type, name, method)                                  \
   if (!args.receiver()->Is##Type()) {                                       \
     THROW_NEW_ERROR_RETURN_FAILURE(                                         \
@@ -207,9 +210,14 @@
 
 inline bool GetSloppyArgumentsLength(Isolate* isolate, Handle<JSObject> object,
                                      int* out) {
-  Map* arguments_map = isolate->native_context()->sloppy_arguments_map();
-  if (object->map() != arguments_map) return false;
-  DCHECK(object->HasFastElements());
+  Context* context = *isolate->native_context();
+  Map* map = object->map();
+  if (map != context->sloppy_arguments_map() &&
+      map != context->strict_arguments_map() &&
+      map != context->fast_aliased_arguments_map()) {
+    return false;
+  }
+  DCHECK(object->HasFastElements() || object->HasFastArgumentsElements());
   Object* len_obj = object->InObjectPropertyAt(JSArgumentsObject::kLengthIndex);
   if (!len_obj->IsSmi()) return false;
   *out = Max(0, Smi::cast(len_obj)->value());
@@ -269,7 +277,6 @@
   Handle<JSArray> array = Handle<JSArray>::cast(receiver);
   ElementsKind origin_kind = array->GetElementsKind();
   if (IsDictionaryElementsKind(origin_kind)) return false;
-  if (array->map()->is_observed()) return false;
   if (!array->map()->is_extensible()) return false;
   if (args == nullptr) return true;
 
@@ -344,11 +351,43 @@
 
 BUILTIN(EmptyFunction) { return isolate->heap()->undefined_value(); }
 
-void Builtins::Generate_ObjectHasOwnProperty(
-    compiler::CodeStubAssembler* assembler) {
+void Builtins::Generate_ArrayIsArray(CodeStubAssembler* assembler) {
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Label Label;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Label Label;
+
+  Node* object = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+
+  Label call_runtime(assembler), return_true(assembler),
+      return_false(assembler);
+
+  assembler->GotoIf(assembler->WordIsSmi(object), &return_false);
+  Node* instance_type = assembler->LoadInstanceType(object);
+
+  assembler->GotoIf(assembler->Word32Equal(
+                        instance_type, assembler->Int32Constant(JS_ARRAY_TYPE)),
+                    &return_true);
+
+  // TODO(verwaest): Handle proxies in-place.
+  assembler->Branch(assembler->Word32Equal(
+                        instance_type, assembler->Int32Constant(JS_PROXY_TYPE)),
+                    &call_runtime, &return_false);
+
+  assembler->Bind(&return_true);
+  assembler->Return(assembler->BooleanConstant(true));
+
+  assembler->Bind(&return_false);
+  assembler->Return(assembler->BooleanConstant(false));
+
+  assembler->Bind(&call_runtime);
+  assembler->Return(
+      assembler->CallRuntime(Runtime::kArrayIsArray, context, object));
+}
+
+void Builtins::Generate_ObjectHasOwnProperty(CodeStubAssembler* assembler) {
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* object = assembler->Parameter(0);
   Node* key = assembler->Parameter(1);
@@ -368,153 +407,17 @@
 
   Variable var_index(assembler, MachineRepresentation::kWord32);
 
-  Label if_keyissmi(assembler), if_keyisnotsmi(assembler),
-      keyisindex(assembler);
-  assembler->Branch(assembler->WordIsSmi(key), &if_keyissmi, &if_keyisnotsmi);
-  assembler->Bind(&if_keyissmi);
-  {
-    // Negative smi keys are named properties. Handle in the runtime.
-    Label if_keyispositive(assembler);
-    assembler->Branch(assembler->WordIsPositiveSmi(key), &if_keyispositive,
-                      &call_runtime);
-    assembler->Bind(&if_keyispositive);
+  Label keyisindex(assembler), if_iskeyunique(assembler);
+  assembler->TryToName(key, &keyisindex, &var_index, &if_iskeyunique,
+                       &call_runtime);
 
-    var_index.Bind(assembler->SmiUntag(key));
-    assembler->Goto(&keyisindex);
-  }
-
-  assembler->Bind(&if_keyisnotsmi);
-
-  Node* key_instance_type = assembler->LoadInstanceType(key);
-  Label if_iskeyunique(assembler), if_iskeynotsymbol(assembler);
-  assembler->Branch(
-      assembler->Word32Equal(key_instance_type,
-                             assembler->Int32Constant(SYMBOL_TYPE)),
-      &if_iskeyunique, &if_iskeynotsymbol);
-  assembler->Bind(&if_iskeynotsymbol);
-  {
-    Label if_iskeyinternalized(assembler);
-    Node* bits = assembler->WordAnd(
-        key_instance_type,
-        assembler->Int32Constant(kIsNotStringMask | kIsNotInternalizedMask));
-    assembler->Branch(
-        assembler->Word32Equal(
-            bits, assembler->Int32Constant(kStringTag | kInternalizedTag)),
-        &if_iskeyinternalized, &call_runtime);
-    assembler->Bind(&if_iskeyinternalized);
-
-    // Check whether the key is an array index passed in as string. Handle
-    // uniform with smi keys if so.
-    // TODO(verwaest): Also support non-internalized strings.
-    Node* hash = assembler->LoadNameHash(key);
-    Node* bit = assembler->Word32And(
-        hash, assembler->Int32Constant(internal::Name::kIsNotArrayIndexMask));
-    Label if_isarrayindex(assembler);
-    assembler->Branch(assembler->Word32Equal(bit, assembler->Int32Constant(0)),
-                      &if_isarrayindex, &if_iskeyunique);
-    assembler->Bind(&if_isarrayindex);
-    var_index.Bind(
-        assembler->BitFieldDecode<internal::Name::ArrayIndexValueBits>(hash));
-    assembler->Goto(&keyisindex);
-  }
   assembler->Bind(&if_iskeyunique);
-
-  {
-    Label if_objectissimple(assembler);
-    assembler->Branch(assembler->Int32LessThanOrEqual(
-                          instance_type,
-                          assembler->Int32Constant(LAST_SPECIAL_RECEIVER_TYPE)),
-                      &call_runtime, &if_objectissimple);
-    assembler->Bind(&if_objectissimple);
-  }
-
-  // TODO(verwaest): Perform a dictonary lookup on slow-mode receivers.
-  Node* bit_field3 = assembler->LoadMapBitField3(map);
-  Node* bit = assembler->BitFieldDecode<Map::DictionaryMap>(bit_field3);
-  Label if_isfastmap(assembler);
-  assembler->Branch(assembler->Word32Equal(bit, assembler->Int32Constant(0)),
-                    &if_isfastmap, &call_runtime);
-  assembler->Bind(&if_isfastmap);
-  Node* nof =
-      assembler->BitFieldDecode<Map::NumberOfOwnDescriptorsBits>(bit_field3);
-  // Bail out to the runtime for large numbers of own descriptors. The stub only
-  // does linear search, which becomes too expensive in that case.
-  {
-    static const int32_t kMaxLinear = 256;
-    Label above_max(assembler), below_max(assembler);
-    assembler->Branch(assembler->Int32LessThanOrEqual(
-                          nof, assembler->Int32Constant(kMaxLinear)),
-                      &below_max, &call_runtime);
-    assembler->Bind(&below_max);
-  }
-  Node* descriptors = assembler->LoadMapDescriptors(map);
-
-  Variable var_descriptor(assembler, MachineRepresentation::kWord32);
-  Label loop(assembler, &var_descriptor);
-  var_descriptor.Bind(assembler->Int32Constant(0));
-  assembler->Goto(&loop);
-  assembler->Bind(&loop);
-  {
-    Node* index = var_descriptor.value();
-    Node* offset = assembler->Int32Constant(DescriptorArray::ToKeyIndex(0));
-    Node* factor = assembler->Int32Constant(DescriptorArray::kDescriptorSize);
-    Label if_notdone(assembler);
-    assembler->Branch(assembler->Word32Equal(index, nof), &return_false,
-                      &if_notdone);
-    assembler->Bind(&if_notdone);
-    {
-      Node* array_index =
-          assembler->Int32Add(offset, assembler->Int32Mul(index, factor));
-      Node* current =
-          assembler->LoadFixedArrayElementInt32Index(descriptors, array_index);
-      Label if_unequal(assembler);
-      assembler->Branch(assembler->WordEqual(current, key), &return_true,
-                        &if_unequal);
-      assembler->Bind(&if_unequal);
-
-      var_descriptor.Bind(
-          assembler->Int32Add(index, assembler->Int32Constant(1)));
-      assembler->Goto(&loop);
-    }
-  }
+  assembler->TryLookupProperty(object, map, instance_type, key, &return_true,
+                               &return_false, &call_runtime);
 
   assembler->Bind(&keyisindex);
-  {
-    Label if_objectissimple(assembler);
-    assembler->Branch(assembler->Int32LessThanOrEqual(
-                          instance_type, assembler->Int32Constant(
-                                             LAST_CUSTOM_ELEMENTS_RECEIVER)),
-                      &call_runtime, &if_objectissimple);
-    assembler->Bind(&if_objectissimple);
-  }
-
-  Node* index = var_index.value();
-  Node* bit_field2 = assembler->LoadMapBitField2(map);
-  Node* elements_kind =
-      assembler->BitFieldDecode<Map::ElementsKindBits>(bit_field2);
-
-  // TODO(verwaest): Support other elements kinds as well.
-  Label if_isobjectorsmi(assembler);
-  assembler->Branch(
-      assembler->Int32LessThanOrEqual(
-          elements_kind, assembler->Int32Constant(FAST_HOLEY_ELEMENTS)),
-      &if_isobjectorsmi, &call_runtime);
-  assembler->Bind(&if_isobjectorsmi);
-  {
-    Node* elements = assembler->LoadElements(object);
-    Node* length = assembler->LoadFixedArrayBaseLength(elements);
-
-    Label if_iskeyinrange(assembler);
-    assembler->Branch(
-        assembler->Int32LessThan(index, assembler->SmiToWord32(length)),
-        &if_iskeyinrange, &return_false);
-
-    assembler->Bind(&if_iskeyinrange);
-    Node* element = assembler->LoadFixedArrayElementInt32Index(elements, index);
-    Node* the_hole = assembler->LoadRoot(Heap::kTheHoleValueRootIndex);
-    assembler->Branch(assembler->WordEqual(element, the_hole), &return_false,
-                      &return_true);
-  }
+  assembler->TryLookupElement(object, map, instance_type, var_index.value(),
+                              &return_true, &return_false, &call_runtime);
 
   assembler->Bind(&return_true);
   assembler->Return(assembler->BooleanConstant(true));
@@ -577,7 +480,6 @@
   }
 
   Handle<JSArray> array = Handle<JSArray>::cast(receiver);
-  DCHECK(!array->map()->is_observed());
 
   uint32_t len = static_cast<uint32_t>(Smi::cast(array->length())->value());
   if (len == 0) return isolate->heap()->undefined_value();
@@ -610,7 +512,6 @@
     return CallJsIntrinsic(isolate, isolate->array_shift(), args);
   }
   Handle<JSArray> array = Handle<JSArray>::cast(receiver);
-  DCHECK(!array->map()->is_observed());
 
   int len = Smi::cast(array->length())->value();
   if (len == 0) return heap->undefined_value();
@@ -631,7 +532,6 @@
     return CallJsIntrinsic(isolate, isolate->array_unshift(), args);
   }
   Handle<JSArray> array = Handle<JSArray>::cast(receiver);
-  DCHECK(!array->map()->is_observed());
   int to_add = args.length() - 1;
   if (to_add == 0) return array->length();
 
@@ -670,10 +570,11 @@
   } else if (receiver->IsJSObject() &&
              GetSloppyArgumentsLength(isolate, Handle<JSObject>::cast(receiver),
                                       &len)) {
-    DCHECK_EQ(FAST_ELEMENTS, JSObject::cast(*receiver)->GetElementsKind());
-    // Array.prototype.slice(arguments, ...) is quite a common idiom
+    // Array.prototype.slice.call(arguments, ...) is quite a common idiom
     // (notably more than 50% of invocations in Web apps).
     // Treat it in C++ as well.
+    DCHECK(JSObject::cast(*receiver)->HasFastElements() ||
+           JSObject::cast(*receiver)->HasFastArgumentsElements());
   } else {
     AllowHeapAllocation allow_allocation;
     return CallJsIntrinsic(isolate, isolate->array_slice(), args);
@@ -729,7 +630,6 @@
     return CallJsIntrinsic(isolate, isolate->array_splice(), args);
   }
   Handle<JSArray> array = Handle<JSArray>::cast(receiver);
-  DCHECK(!array->map()->is_observed());
 
   int argument_count = args.length() - 1;
   int relative_start = 0;
@@ -1323,23 +1223,18 @@
   return true;
 }
 
-
-bool HasConcatSpreadableModifier(Isolate* isolate, Handle<JSArray> obj) {
-  Handle<Symbol> key(isolate->factory()->is_concat_spreadable_symbol());
-  Maybe<bool> maybe = JSReceiver::HasProperty(obj, key);
-  return maybe.FromMaybe(false);
-}
-
-
 static Maybe<bool> IsConcatSpreadable(Isolate* isolate, Handle<Object> obj) {
   HandleScope handle_scope(isolate);
   if (!obj->IsJSReceiver()) return Just(false);
-  Handle<Symbol> key(isolate->factory()->is_concat_spreadable_symbol());
-  Handle<Object> value;
-  MaybeHandle<Object> maybeValue =
-      i::Runtime::GetObjectProperty(isolate, obj, key);
-  if (!maybeValue.ToHandle(&value)) return Nothing<bool>();
-  if (!value->IsUndefined()) return Just(value->BooleanValue());
+  if (!isolate->IsIsConcatSpreadableLookupChainIntact()) {
+    // Slow path if @@isConcatSpreadable has been used.
+    Handle<Symbol> key(isolate->factory()->is_concat_spreadable_symbol());
+    Handle<Object> value;
+    MaybeHandle<Object> maybeValue =
+        i::Runtime::GetObjectProperty(isolate, obj, key);
+    if (!maybeValue.ToHandle(&value)) return Nothing<bool>();
+    if (!value->IsUndefined()) return Just(value->BooleanValue());
+  }
   return Object::IsArray(obj);
 }
 
@@ -1527,8 +1422,24 @@
   }
 }
 
+bool IsSimpleArray(Isolate* isolate, Handle<JSArray> obj) {
+  DisallowHeapAllocation no_gc;
+  Map* map = obj->map();
+  // If there is only the 'length' property we are fine.
+  if (map->prototype() ==
+          isolate->native_context()->initial_array_prototype() &&
+      map->NumberOfOwnDescriptors() == 1) {
+    return true;
+  }
+  // TODO(cbruni): slower lookup for array subclasses and support slow
+  // @@IsConcatSpreadable lookup.
+  return false;
+}
 
 MaybeHandle<JSArray> Fast_ArrayConcat(Isolate* isolate, Arguments* args) {
+  if (!isolate->IsIsConcatSpreadableLookupChainIntact()) {
+    return MaybeHandle<JSArray>();
+  }
   // We shouldn't overflow when adding another len.
   const int kHalfOfMaxInt = 1 << (kBitsPerInt - 2);
   STATIC_ASSERT(FixedArray::kMaxLength < kHalfOfMaxInt);
@@ -1544,14 +1455,15 @@
     for (int i = 0; i < n_arguments; i++) {
       Object* arg = (*args)[i];
       if (!arg->IsJSArray()) return MaybeHandle<JSArray>();
-      if (!JSObject::cast(arg)->HasFastElements()) {
-        return MaybeHandle<JSArray>();
-      }
       if (!HasOnlySimpleReceiverElements(isolate, JSObject::cast(arg))) {
         return MaybeHandle<JSArray>();
       }
+      // TODO(cbruni): support fast concatenation of DICTIONARY_ELEMENTS.
+      if (!JSObject::cast(arg)->HasFastElements()) {
+        return MaybeHandle<JSArray>();
+      }
       Handle<JSArray> array(JSArray::cast(arg), isolate);
-      if (HasConcatSpreadableModifier(isolate, array)) {
+      if (!IsSimpleArray(isolate, array)) {
         return MaybeHandle<JSArray>();
       }
       // The Array length is guaranted to be <= kHalfOfMaxInt thus we won't
@@ -1559,16 +1471,15 @@
       result_len += Smi::cast(array->length())->value();
       DCHECK(result_len >= 0);
       // Throw an Error if we overflow the FixedArray limits
-      if (FixedDoubleArray::kMaxLength < result_len ||
-          FixedArray::kMaxLength < result_len) {
-        AllowHeapAllocation allow_gc;
+      if (FixedArray::kMaxLength < result_len) {
+        AllowHeapAllocation gc;
         THROW_NEW_ERROR(isolate,
                         NewRangeError(MessageTemplate::kInvalidArrayLength),
                         JSArray);
       }
     }
   }
-  return ElementsAccessor::Concat(isolate, args, n_arguments);
+  return ElementsAccessor::Concat(isolate, args, n_arguments, result_len);
 }
 
 }  // namespace
@@ -1616,16 +1527,6 @@
 }
 
 
-// ES6 22.1.2.2 Array.isArray
-BUILTIN(ArrayIsArray) {
-  HandleScope scope(isolate);
-  DCHECK_EQ(2, args.length());
-  Handle<Object> object = args.at<Object>(1);
-  Maybe<bool> result = Object::IsArray(object);
-  MAYBE_RETURN(result, isolate->heap()->exception());
-  return *isolate->factory()->ToBoolean(result.FromJust());
-}
-
 namespace {
 
 MUST_USE_RESULT Maybe<bool> FastAssign(Handle<JSReceiver> to,
@@ -1637,6 +1538,14 @@
                 String::cast(*next_source)->length() == 0);
   }
 
+  // If the target is deprecated, the object will be updated on first store. If
+  // the source for that store equals the target, this will invalidate the
+  // cached representation of the source. Preventively upgrade the target.
+  // Do this on each iteration since any property load could cause deprecation.
+  if (to->map()->is_deprecated()) {
+    JSObject::MigrateInstance(Handle<JSObject>::cast(to));
+  }
+
   Isolate* isolate = to->GetIsolate();
   Handle<Map> map(JSReceiver::cast(*next_source)->map(), isolate);
 
@@ -1789,6 +1698,156 @@
   return *object;
 }
 
+// ES6 section 19.1.2.3 Object.defineProperties
+BUILTIN(ObjectDefineProperties) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(3, args.length());
+  Handle<Object> target = args.at<Object>(1);
+  Handle<Object> properties = args.at<Object>(2);
+
+  Handle<Object> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result,
+      JSReceiver::DefineProperties(isolate, target, properties));
+  return *result;
+}
+
+// ES6 section 19.1.2.4 Object.defineProperty
+BUILTIN(ObjectDefineProperty) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(4, args.length());
+  Handle<Object> target = args.at<Object>(1);
+  Handle<Object> key = args.at<Object>(2);
+  Handle<Object> attributes = args.at<Object>(3);
+
+  return JSReceiver::DefineProperty(isolate, target, key, attributes);
+}
+
+namespace {
+
+template <AccessorComponent which_accessor>
+Object* ObjectDefineAccessor(Isolate* isolate, Handle<Object> object,
+                             Handle<Object> name, Handle<Object> accessor) {
+  // 1. Let O be ? ToObject(this value).
+  Handle<JSReceiver> receiver;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver,
+                                     Object::ConvertReceiver(isolate, object));
+  // 2. If IsCallable(getter) is false, throw a TypeError exception.
+  if (!accessor->IsCallable()) {
+    MessageTemplate::Template message =
+        which_accessor == ACCESSOR_GETTER
+            ? MessageTemplate::kObjectGetterExpectingFunction
+            : MessageTemplate::kObjectSetterExpectingFunction;
+    THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewTypeError(message));
+  }
+  // 3. Let desc be PropertyDescriptor{[[Get]]: getter, [[Enumerable]]: true,
+  //                                   [[Configurable]]: true}.
+  PropertyDescriptor desc;
+  if (which_accessor == ACCESSOR_GETTER) {
+    desc.set_get(accessor);
+  } else {
+    DCHECK(which_accessor == ACCESSOR_SETTER);
+    desc.set_set(accessor);
+  }
+  desc.set_enumerable(true);
+  desc.set_configurable(true);
+  // 4. Let key be ? ToPropertyKey(P).
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, name,
+                                     Object::ToPropertyKey(isolate, name));
+  // 5. Perform ? DefinePropertyOrThrow(O, key, desc).
+  // To preserve legacy behavior, we ignore errors silently rather than
+  // throwing an exception.
+  Maybe<bool> success = JSReceiver::DefineOwnProperty(
+      isolate, receiver, name, &desc, Object::DONT_THROW);
+  MAYBE_RETURN(success, isolate->heap()->exception());
+  // 6. Return undefined.
+  return isolate->heap()->undefined_value();
+}
+
+Object* ObjectLookupAccessor(Isolate* isolate, Handle<Object> object,
+                             Handle<Object> key, AccessorComponent component) {
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, object,
+                                     Object::ConvertReceiver(isolate, object));
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, key,
+                                     Object::ToPropertyKey(isolate, key));
+  bool success = false;
+  LookupIterator it = LookupIterator::PropertyOrElement(
+      isolate, object, key, &success,
+      LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
+  DCHECK(success);
+
+  for (; it.IsFound(); it.Next()) {
+    switch (it.state()) {
+      case LookupIterator::INTERCEPTOR:
+      case LookupIterator::NOT_FOUND:
+      case LookupIterator::TRANSITION:
+        UNREACHABLE();
+
+      case LookupIterator::ACCESS_CHECK:
+        if (it.HasAccess()) continue;
+        isolate->ReportFailedAccessCheck(it.GetHolder<JSObject>());
+        RETURN_FAILURE_IF_SCHEDULED_EXCEPTION(isolate);
+        return isolate->heap()->undefined_value();
+
+      case LookupIterator::JSPROXY:
+        return isolate->heap()->undefined_value();
+
+      case LookupIterator::INTEGER_INDEXED_EXOTIC:
+        return isolate->heap()->undefined_value();
+      case LookupIterator::DATA:
+        continue;
+      case LookupIterator::ACCESSOR: {
+        Handle<Object> maybe_pair = it.GetAccessors();
+        if (maybe_pair->IsAccessorPair()) {
+          return *AccessorPair::GetComponent(
+              Handle<AccessorPair>::cast(maybe_pair), component);
+        }
+      }
+    }
+  }
+
+  return isolate->heap()->undefined_value();
+}
+
+}  // namespace
+
+// ES6 B.2.2.2 a.k.a.
+// https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__
+BUILTIN(ObjectDefineGetter) {
+  HandleScope scope(isolate);
+  Handle<Object> object = args.at<Object>(0);  // Receiver.
+  Handle<Object> name = args.at<Object>(1);
+  Handle<Object> getter = args.at<Object>(2);
+  return ObjectDefineAccessor<ACCESSOR_GETTER>(isolate, object, name, getter);
+}
+
+// ES6 B.2.2.3 a.k.a.
+// https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__
+BUILTIN(ObjectDefineSetter) {
+  HandleScope scope(isolate);
+  Handle<Object> object = args.at<Object>(0);  // Receiver.
+  Handle<Object> name = args.at<Object>(1);
+  Handle<Object> setter = args.at<Object>(2);
+  return ObjectDefineAccessor<ACCESSOR_SETTER>(isolate, object, name, setter);
+}
+
+// ES6 B.2.2.4 a.k.a.
+// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter__
+BUILTIN(ObjectLookupGetter) {
+  HandleScope scope(isolate);
+  Handle<Object> object = args.at<Object>(0);
+  Handle<Object> name = args.at<Object>(1);
+  return ObjectLookupAccessor(isolate, object, name, ACCESSOR_GETTER);
+}
+
+// ES6 B.2.2.5 a.k.a.
+// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter__
+BUILTIN(ObjectLookupSetter) {
+  HandleScope scope(isolate);
+  Handle<Object> object = args.at<Object>(0);
+  Handle<Object> name = args.at<Object>(1);
+  return ObjectLookupAccessor(isolate, object, name, ACCESSOR_SETTER);
+}
 
 // ES6 section 19.1.2.5 Object.freeze ( O )
 BUILTIN(ObjectFreeze) {
@@ -1803,6 +1862,23 @@
 }
 
 
+// ES section 19.1.2.9 Object.getPrototypeOf ( O )
+BUILTIN(ObjectGetPrototypeOf) {
+  HandleScope scope(isolate);
+  Handle<Object> object = args.atOrUndefined(isolate, 1);
+
+  Handle<JSReceiver> receiver;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, receiver, Object::ToObject(isolate, object));
+
+  Handle<Object> prototype;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, prototype, JSReceiver::GetPrototype(isolate, receiver));
+
+  return *prototype;
+}
+
+
 // ES6 section 19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
 BUILTIN(ObjectGetOwnPropertyDescriptor) {
   HandleScope scope(isolate);
@@ -2031,6 +2107,26 @@
   return *object;
 }
 
+// ES6 section 18.2.6.4 encodeURI (uri)
+BUILTIN(GlobalEncodeURI) {
+  HandleScope scope(isolate);
+  Handle<String> uri;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, uri, Object::ToString(isolate, args.atOrUndefined(isolate, 1)));
+
+  return Uri::EncodeUri(isolate, uri);
+}
+
+// ES6 section 18.2.6.5 encodeURIComponenet (uriComponent)
+BUILTIN(GlobalEncodeURIComponent) {
+  HandleScope scope(isolate);
+  Handle<String> uriComponent;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, uriComponent,
+      Object::ToString(isolate, args.atOrUndefined(isolate, 1)));
+
+  return Uri::EncodeUriComponent(isolate, uriComponent);
+}
 
 namespace {
 
@@ -2069,11 +2165,12 @@
   }
 
   // Compile source string in the native context.
-  Handle<SharedFunctionInfo> outer_info(native_context->closure()->shared(),
-                                        isolate);
+  int eval_scope_position = 0;
+  int eval_position = RelocInfo::kNoPosition;
+  Handle<SharedFunctionInfo> outer_info(native_context->closure()->shared());
   return Compiler::GetFunctionFromEval(source, outer_info, native_context,
-                                       SLOPPY, restriction,
-                                       RelocInfo::kNoPosition);
+                                       SLOPPY, restriction, eval_scope_position,
+                                       eval_position);
 }
 
 }  // namespace
@@ -2135,12 +2232,11 @@
 namespace {
 
 void Generate_MathRoundingOperation(
-    compiler::CodeStubAssembler* assembler,
-    compiler::Node* (compiler::CodeStubAssembler::*float64op)(
-        compiler::Node*)) {
-  typedef compiler::CodeStubAssembler::Label Label;
+    CodeStubAssembler* assembler,
+    compiler::Node* (CodeStubAssembler::*float64op)(compiler::Node*)) {
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* context = assembler->Parameter(4);
 
@@ -2197,16 +2293,15 @@
 }  // namespace
 
 // ES6 section 20.2.2.10 Math.ceil ( x )
-void Builtins::Generate_MathCeil(compiler::CodeStubAssembler* assembler) {
-  Generate_MathRoundingOperation(assembler,
-                                 &compiler::CodeStubAssembler::Float64Ceil);
+void Builtins::Generate_MathCeil(CodeStubAssembler* assembler) {
+  Generate_MathRoundingOperation(assembler, &CodeStubAssembler::Float64Ceil);
 }
 
 // ES6 section 20.2.2.11 Math.clz32 ( x )
-void Builtins::Generate_MathClz32(compiler::CodeStubAssembler* assembler) {
-  typedef compiler::CodeStubAssembler::Label Label;
+void Builtins::Generate_MathClz32(CodeStubAssembler* assembler) {
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* context = assembler->Parameter(4);
 
@@ -2271,9 +2366,8 @@
 }
 
 // ES6 section 20.2.2.16 Math.floor ( x )
-void Builtins::Generate_MathFloor(compiler::CodeStubAssembler* assembler) {
-  Generate_MathRoundingOperation(assembler,
-                                 &compiler::CodeStubAssembler::Float64Floor);
+void Builtins::Generate_MathFloor(CodeStubAssembler* assembler) {
+  Generate_MathRoundingOperation(assembler, &CodeStubAssembler::Float64Floor);
 }
 
 // ES6 section 20.2.2.17 Math.fround ( x )
@@ -2299,13 +2393,12 @@
 }
 
 // ES6 section 20.2.2.28 Math.round ( x )
-void Builtins::Generate_MathRound(compiler::CodeStubAssembler* assembler) {
-  Generate_MathRoundingOperation(assembler,
-                                 &compiler::CodeStubAssembler::Float64Round);
+void Builtins::Generate_MathRound(CodeStubAssembler* assembler) {
+  Generate_MathRoundingOperation(assembler, &CodeStubAssembler::Float64Round);
 }
 
 // ES6 section 20.2.2.32 Math.sqrt ( x )
-void Builtins::Generate_MathSqrt(compiler::CodeStubAssembler* assembler) {
+void Builtins::Generate_MathSqrt(CodeStubAssembler* assembler) {
   using compiler::Node;
 
   Node* x = assembler->Parameter(1);
@@ -2317,15 +2410,133 @@
 }
 
 // ES6 section 20.2.2.35 Math.trunc ( x )
-void Builtins::Generate_MathTrunc(compiler::CodeStubAssembler* assembler) {
-  Generate_MathRoundingOperation(assembler,
-                                 &compiler::CodeStubAssembler::Float64Trunc);
+void Builtins::Generate_MathTrunc(CodeStubAssembler* assembler) {
+  Generate_MathRoundingOperation(assembler, &CodeStubAssembler::Float64Trunc);
+}
+
+// -----------------------------------------------------------------------------
+// ES6 section 19.2 Function Objects
+
+// ES6 section 19.2.3.6 Function.prototype [ @@hasInstance ] ( V )
+void Builtins::Generate_FunctionPrototypeHasInstance(
+    CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* f = assembler->Parameter(0);
+  Node* v = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* result = assembler->OrdinaryHasInstance(context, f, v);
+  assembler->Return(result);
+}
+
+// -----------------------------------------------------------------------------
+// ES6 section 25.3 Generator Objects
+
+namespace {
+
+void Generate_GeneratorPrototypeResume(
+    CodeStubAssembler* assembler, JSGeneratorObject::ResumeMode resume_mode,
+    char const* const method_name) {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+
+  Node* receiver = assembler->Parameter(0);
+  Node* value = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* closed = assembler->SmiConstant(
+      Smi::FromInt(JSGeneratorObject::kGeneratorClosed));
+
+  // Check if the {receiver} is actually a JSGeneratorObject.
+  Label if_receiverisincompatible(assembler, Label::kDeferred);
+  assembler->GotoIf(assembler->WordIsSmi(receiver), &if_receiverisincompatible);
+  Node* receiver_instance_type = assembler->LoadInstanceType(receiver);
+  assembler->GotoUnless(assembler->Word32Equal(
+                            receiver_instance_type,
+                            assembler->Int32Constant(JS_GENERATOR_OBJECT_TYPE)),
+                        &if_receiverisincompatible);
+
+  // Check if the {receiver} is running or already closed.
+  Node* receiver_continuation = assembler->LoadObjectField(
+      receiver, JSGeneratorObject::kContinuationOffset);
+  Label if_receiverisclosed(assembler, Label::kDeferred),
+      if_receiverisrunning(assembler, Label::kDeferred);
+  assembler->GotoIf(assembler->SmiEqual(receiver_continuation, closed),
+                    &if_receiverisclosed);
+  DCHECK_LT(JSGeneratorObject::kGeneratorExecuting,
+            JSGeneratorObject::kGeneratorClosed);
+  assembler->GotoIf(assembler->SmiLessThan(receiver_continuation, closed),
+                    &if_receiverisrunning);
+
+  // Resume the {receiver} using our trampoline.
+  Node* result = assembler->CallStub(
+      CodeFactory::ResumeGenerator(assembler->isolate()), context, value,
+      receiver, assembler->SmiConstant(Smi::FromInt(resume_mode)));
+  assembler->Return(result);
+
+  assembler->Bind(&if_receiverisincompatible);
+  {
+    // The {receiver} is not a valid JSGeneratorObject.
+    Node* result = assembler->CallRuntime(
+        Runtime::kThrowIncompatibleMethodReceiver, context,
+        assembler->HeapConstant(assembler->factory()->NewStringFromAsciiChecked(
+            method_name, TENURED)),
+        receiver);
+    assembler->Return(result);  // Never reached.
+  }
+
+  assembler->Bind(&if_receiverisclosed);
+  {
+    // The {receiver} is closed already.
+    Node* result = nullptr;
+    switch (resume_mode) {
+      case JSGeneratorObject::kNext:
+        result = assembler->CallRuntime(Runtime::kCreateIterResultObject,
+                                        context, assembler->UndefinedConstant(),
+                                        assembler->BooleanConstant(true));
+        break;
+      case JSGeneratorObject::kReturn:
+        result =
+            assembler->CallRuntime(Runtime::kCreateIterResultObject, context,
+                                   value, assembler->BooleanConstant(true));
+        break;
+      case JSGeneratorObject::kThrow:
+        result = assembler->CallRuntime(Runtime::kThrow, context, value);
+        break;
+    }
+    assembler->Return(result);
+  }
+
+  assembler->Bind(&if_receiverisrunning);
+  {
+    Node* result =
+        assembler->CallRuntime(Runtime::kThrowGeneratorRunning, context);
+    assembler->Return(result);  // Never reached.
+  }
+}
+
+}  // namespace
+
+// ES6 section 25.3.1.2 Generator.prototype.next ( value )
+void Builtins::Generate_GeneratorPrototypeNext(CodeStubAssembler* assembler) {
+  Generate_GeneratorPrototypeResume(assembler, JSGeneratorObject::kNext,
+                                    "[Generator].prototype.next");
+}
+
+// ES6 section 25.3.1.3 Generator.prototype.return ( value )
+void Builtins::Generate_GeneratorPrototypeReturn(CodeStubAssembler* assembler) {
+  Generate_GeneratorPrototypeResume(assembler, JSGeneratorObject::kReturn,
+                                    "[Generator].prototype.return");
+}
+
+// ES6 section 25.3.1.4 Generator.prototype.throw ( exception )
+void Builtins::Generate_GeneratorPrototypeThrow(CodeStubAssembler* assembler) {
+  Generate_GeneratorPrototypeResume(assembler, JSGeneratorObject::kThrow,
+                                    "[Generator].prototype.throw");
 }
 
 // -----------------------------------------------------------------------------
 // ES6 section 26.1 The Reflect Object
 
-
 // ES6 section 26.1.3 Reflect.defineProperty
 BUILTIN(ReflectDefineProperty) {
   HandleScope scope(isolate);
@@ -2971,8 +3182,7 @@
   HandleScope scope(isolate);
   double const time_val = JSDate::CurrentTimeValue(isolate);
   char buffer[128];
-  Vector<char> str(buffer, arraysize(buffer));
-  ToDateString(time_val, str, isolate->date_cache());
+  ToDateString(time_val, ArrayVector(buffer), isolate->date_cache());
   Handle<String> result;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, result,
@@ -3555,8 +3765,8 @@
   HandleScope scope(isolate);
   CHECK_RECEIVER(JSDate, date, "Date.prototype.toDateString");
   char buffer[128];
-  Vector<char> str(buffer, arraysize(buffer));
-  ToDateString(date->value()->Number(), str, isolate->date_cache(), kDateOnly);
+  ToDateString(date->value()->Number(), ArrayVector(buffer),
+               isolate->date_cache(), kDateOnly);
   Handle<String> result;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, result,
@@ -3579,18 +3789,17 @@
   isolate->date_cache()->BreakDownTime(time_ms, &year, &month, &day, &weekday,
                                        &hour, &min, &sec, &ms);
   char buffer[128];
-  Vector<char> str(buffer, arraysize(buffer));
   if (year >= 0 && year <= 9999) {
-    SNPrintF(str, "%04d-%02d-%02dT%02d:%02d:%02d.%03dZ", year, month + 1, day,
-             hour, min, sec, ms);
+    SNPrintF(ArrayVector(buffer), "%04d-%02d-%02dT%02d:%02d:%02d.%03dZ", year,
+             month + 1, day, hour, min, sec, ms);
   } else if (year < 0) {
-    SNPrintF(str, "-%06d-%02d-%02dT%02d:%02d:%02d.%03dZ", -year, month + 1, day,
-             hour, min, sec, ms);
+    SNPrintF(ArrayVector(buffer), "-%06d-%02d-%02dT%02d:%02d:%02d.%03dZ", -year,
+             month + 1, day, hour, min, sec, ms);
   } else {
-    SNPrintF(str, "+%06d-%02d-%02dT%02d:%02d:%02d.%03dZ", year, month + 1, day,
-             hour, min, sec, ms);
+    SNPrintF(ArrayVector(buffer), "+%06d-%02d-%02dT%02d:%02d:%02d.%03dZ", year,
+             month + 1, day, hour, min, sec, ms);
   }
-  return *isolate->factory()->NewStringFromAsciiChecked(str.start());
+  return *isolate->factory()->NewStringFromAsciiChecked(buffer);
 }
 
 
@@ -3599,8 +3808,8 @@
   HandleScope scope(isolate);
   CHECK_RECEIVER(JSDate, date, "Date.prototype.toString");
   char buffer[128];
-  Vector<char> str(buffer, arraysize(buffer));
-  ToDateString(date->value()->Number(), str, isolate->date_cache());
+  ToDateString(date->value()->Number(), ArrayVector(buffer),
+               isolate->date_cache());
   Handle<String> result;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, result,
@@ -3614,8 +3823,8 @@
   HandleScope scope(isolate);
   CHECK_RECEIVER(JSDate, date, "Date.prototype.toTimeString");
   char buffer[128];
-  Vector<char> str(buffer, arraysize(buffer));
-  ToDateString(date->value()->Number(), str, isolate->date_cache(), kTimeOnly);
+  ToDateString(date->value()->Number(), ArrayVector(buffer),
+               isolate->date_cache(), kTimeOnly);
   Handle<String> result;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, result,
@@ -3633,14 +3842,14 @@
     return *isolate->factory()->NewStringFromAsciiChecked("Invalid Date");
   }
   char buffer[128];
-  Vector<char> str(buffer, arraysize(buffer));
   int64_t time_ms = static_cast<int64_t>(time_val);
   int year, month, day, weekday, hour, min, sec, ms;
   isolate->date_cache()->BreakDownTime(time_ms, &year, &month, &day, &weekday,
                                        &hour, &min, &sec, &ms);
-  SNPrintF(str, "%s, %02d %s %4d %02d:%02d:%02d GMT", kShortWeekDays[weekday],
-           day, kShortMonths[month], year, hour, min, sec);
-  return *isolate->factory()->NewStringFromAsciiChecked(str.start());
+  SNPrintF(ArrayVector(buffer), "%s, %02d %s %4d %02d:%02d:%02d GMT",
+           kShortWeekDays[weekday], day, kShortMonths[month], year, hour, min,
+           sec);
+  return *isolate->factory()->NewStringFromAsciiChecked(buffer);
 }
 
 
@@ -3963,46 +4172,67 @@
       isolate, function,
       isolate->factory()->NewJSBoundFunction(target, this_arg, argv));
 
-  // TODO(bmeurer): Optimize the rest for the common cases where {target} is
-  // a function with some initial map or even a bound function.
+  LookupIterator length_lookup(target, isolate->factory()->length_string(),
+                               target, LookupIterator::OWN);
   // Setup the "length" property based on the "length" of the {target}.
-  Handle<Object> length(Smi::FromInt(0), isolate);
-  Maybe<bool> target_has_length =
-      JSReceiver::HasOwnProperty(target, isolate->factory()->length_string());
-  if (!target_has_length.IsJust()) {
-    return isolate->heap()->exception();
-  } else if (target_has_length.FromJust()) {
-    Handle<Object> target_length;
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, target_length,
-        JSReceiver::GetProperty(target, isolate->factory()->length_string()));
-    if (target_length->IsNumber()) {
-      length = isolate->factory()->NewNumber(std::max(
-          0.0, DoubleToInteger(target_length->Number()) - argv.length()));
+  // If the targets length is the default JSFunction accessor, we can keep the
+  // accessor that's installed by default on the JSBoundFunction. It lazily
+  // computes the value from the underlying internal length.
+  if (!target->IsJSFunction() ||
+      length_lookup.state() != LookupIterator::ACCESSOR ||
+      !length_lookup.GetAccessors()->IsAccessorInfo()) {
+    Handle<Object> length(Smi::FromInt(0), isolate);
+    Maybe<PropertyAttributes> attributes =
+        JSReceiver::GetPropertyAttributes(&length_lookup);
+    if (!attributes.IsJust()) return isolate->heap()->exception();
+    if (attributes.FromJust() != ABSENT) {
+      Handle<Object> target_length;
+      ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, target_length,
+                                         Object::GetProperty(&length_lookup));
+      if (target_length->IsNumber()) {
+        length = isolate->factory()->NewNumber(std::max(
+            0.0, DoubleToInteger(target_length->Number()) - argv.length()));
+      }
     }
+    LookupIterator it(function, isolate->factory()->length_string(), function);
+    DCHECK_EQ(LookupIterator::ACCESSOR, it.state());
+    RETURN_FAILURE_ON_EXCEPTION(isolate,
+                                JSObject::DefineOwnPropertyIgnoreAttributes(
+                                    &it, length, it.property_attributes()));
   }
-  function->set_length(*length);
 
   // Setup the "name" property based on the "name" of the {target}.
-  Handle<Object> target_name;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, target_name,
-      JSReceiver::GetProperty(target, isolate->factory()->name_string()));
-  Handle<String> name;
-  if (!target_name->IsString()) {
-    name = isolate->factory()->bound__string();
-  } else {
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, name, Name::ToFunctionName(Handle<String>::cast(target_name)));
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, name, isolate->factory()->NewConsString(
-                           isolate->factory()->bound__string(), name));
+  // If the targets name is the default JSFunction accessor, we can keep the
+  // accessor that's installed by default on the JSBoundFunction. It lazily
+  // computes the value from the underlying internal name.
+  LookupIterator name_lookup(target, isolate->factory()->name_string(), target,
+                             LookupIterator::OWN);
+  if (!target->IsJSFunction() ||
+      name_lookup.state() != LookupIterator::ACCESSOR ||
+      !name_lookup.GetAccessors()->IsAccessorInfo()) {
+    Handle<Object> target_name;
+    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, target_name,
+                                       Object::GetProperty(&name_lookup));
+    Handle<String> name;
+    if (target_name->IsString()) {
+      ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+          isolate, name,
+          Name::ToFunctionName(Handle<String>::cast(target_name)));
+      ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+          isolate, name, isolate->factory()->NewConsString(
+                             isolate->factory()->bound__string(), name));
+    } else {
+      name = isolate->factory()->bound__string();
+    }
+    LookupIterator it(function, isolate->factory()->name_string());
+    DCHECK_EQ(LookupIterator::ACCESSOR, it.state());
+    RETURN_FAILURE_ON_EXCEPTION(isolate,
+                                JSObject::DefineOwnPropertyIgnoreAttributes(
+                                    &it, name, it.property_attributes()));
   }
-  function->set_name(*name);
   return *function;
 }
 
-
 // ES6 section 19.2.3.5 Function.prototype.toString ( )
 BUILTIN(FunctionPrototypeToString) {
   HandleScope scope(isolate);
@@ -4028,6 +4258,13 @@
   return *result;
 }
 
+BUILTIN(AsyncFunctionConstructor) {
+  HandleScope scope(isolate);
+  Handle<JSFunction> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result, CreateDynamicFunction(isolate, args, "async function"));
+  return *result;
+}
 
 // ES6 section 19.4.1.1 Symbol ( [ description ] ) for the [[Call]] case.
 BUILTIN(SymbolConstructor) {
@@ -4128,6 +4365,193 @@
   return *result;
 }
 
+// ES6 section 21.1.3.1 String.prototype.charAt ( pos )
+void Builtins::Generate_StringPrototypeCharAt(CodeStubAssembler* assembler) {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Variable Variable;
+
+  Node* receiver = assembler->Parameter(0);
+  Node* position = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+
+  // Check that {receiver} is coercible to Object and convert it to a String.
+  receiver =
+      assembler->ToThisString(context, receiver, "String.prototype.charAt");
+
+  // Convert the {position} to a Smi and check that it's in bounds of the
+  // {receiver}.
+  // TODO(bmeurer): Find an abstraction for this!
+  {
+    // Check if the {position} is already a Smi.
+    Variable var_position(assembler, MachineRepresentation::kTagged);
+    var_position.Bind(position);
+    Label if_positionissmi(assembler),
+        if_positionisnotsmi(assembler, Label::kDeferred);
+    assembler->Branch(assembler->WordIsSmi(position), &if_positionissmi,
+                      &if_positionisnotsmi);
+    assembler->Bind(&if_positionisnotsmi);
+    {
+      // Convert the {position} to an Integer via the ToIntegerStub.
+      Callable callable = CodeFactory::ToInteger(assembler->isolate());
+      Node* index = assembler->CallStub(callable, context, position);
+
+      // Check if the resulting {index} is now a Smi.
+      Label if_indexissmi(assembler, Label::kDeferred),
+          if_indexisnotsmi(assembler, Label::kDeferred);
+      assembler->Branch(assembler->WordIsSmi(index), &if_indexissmi,
+                        &if_indexisnotsmi);
+
+      assembler->Bind(&if_indexissmi);
+      {
+        var_position.Bind(index);
+        assembler->Goto(&if_positionissmi);
+      }
+
+      assembler->Bind(&if_indexisnotsmi);
+      {
+        // The ToIntegerStub canonicalizes everything in Smi range to Smi
+        // representation, so any HeapNumber returned is not in Smi range.
+        // The only exception here is -0.0, which we treat as 0.
+        Node* index_value = assembler->LoadHeapNumberValue(index);
+        Label if_indexiszero(assembler, Label::kDeferred),
+            if_indexisnotzero(assembler, Label::kDeferred);
+        assembler->Branch(assembler->Float64Equal(
+                              index_value, assembler->Float64Constant(0.0)),
+                          &if_indexiszero, &if_indexisnotzero);
+
+        assembler->Bind(&if_indexiszero);
+        {
+          var_position.Bind(assembler->SmiConstant(Smi::FromInt(0)));
+          assembler->Goto(&if_positionissmi);
+        }
+
+        assembler->Bind(&if_indexisnotzero);
+        {
+          // The {index} is some other integral Number, that is definitely
+          // neither -0.0 nor in Smi range.
+          assembler->Return(assembler->EmptyStringConstant());
+        }
+      }
+    }
+    assembler->Bind(&if_positionissmi);
+    position = var_position.value();
+
+    // Determine the actual length of the {receiver} String.
+    Node* receiver_length =
+        assembler->LoadObjectField(receiver, String::kLengthOffset);
+
+    // Return "" if the Smi {position} is outside the bounds of the {receiver}.
+    Label if_positioninbounds(assembler),
+        if_positionnotinbounds(assembler, Label::kDeferred);
+    assembler->Branch(assembler->SmiAboveOrEqual(position, receiver_length),
+                      &if_positionnotinbounds, &if_positioninbounds);
+    assembler->Bind(&if_positionnotinbounds);
+    assembler->Return(assembler->EmptyStringConstant());
+    assembler->Bind(&if_positioninbounds);
+  }
+
+  // Load the character code at the {position} from the {receiver}.
+  Node* code = assembler->StringCharCodeAt(receiver, position);
+
+  // And return the single character string with only that {code}.
+  Node* result = assembler->StringFromCharCode(code);
+  assembler->Return(result);
+}
+
+// ES6 section 21.1.3.2 String.prototype.charCodeAt ( pos )
+void Builtins::Generate_StringPrototypeCharCodeAt(
+    CodeStubAssembler* assembler) {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Variable Variable;
+
+  Node* receiver = assembler->Parameter(0);
+  Node* position = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+
+  // Check that {receiver} is coercible to Object and convert it to a String.
+  receiver =
+      assembler->ToThisString(context, receiver, "String.prototype.charCodeAt");
+
+  // Convert the {position} to a Smi and check that it's in bounds of the
+  // {receiver}.
+  // TODO(bmeurer): Find an abstraction for this!
+  {
+    // Check if the {position} is already a Smi.
+    Variable var_position(assembler, MachineRepresentation::kTagged);
+    var_position.Bind(position);
+    Label if_positionissmi(assembler),
+        if_positionisnotsmi(assembler, Label::kDeferred);
+    assembler->Branch(assembler->WordIsSmi(position), &if_positionissmi,
+                      &if_positionisnotsmi);
+    assembler->Bind(&if_positionisnotsmi);
+    {
+      // Convert the {position} to an Integer via the ToIntegerStub.
+      Callable callable = CodeFactory::ToInteger(assembler->isolate());
+      Node* index = assembler->CallStub(callable, context, position);
+
+      // Check if the resulting {index} is now a Smi.
+      Label if_indexissmi(assembler, Label::kDeferred),
+          if_indexisnotsmi(assembler, Label::kDeferred);
+      assembler->Branch(assembler->WordIsSmi(index), &if_indexissmi,
+                        &if_indexisnotsmi);
+
+      assembler->Bind(&if_indexissmi);
+      {
+        var_position.Bind(index);
+        assembler->Goto(&if_positionissmi);
+      }
+
+      assembler->Bind(&if_indexisnotsmi);
+      {
+        // The ToIntegerStub canonicalizes everything in Smi range to Smi
+        // representation, so any HeapNumber returned is not in Smi range.
+        // The only exception here is -0.0, which we treat as 0.
+        Node* index_value = assembler->LoadHeapNumberValue(index);
+        Label if_indexiszero(assembler, Label::kDeferred),
+            if_indexisnotzero(assembler, Label::kDeferred);
+        assembler->Branch(assembler->Float64Equal(
+                              index_value, assembler->Float64Constant(0.0)),
+                          &if_indexiszero, &if_indexisnotzero);
+
+        assembler->Bind(&if_indexiszero);
+        {
+          var_position.Bind(assembler->SmiConstant(Smi::FromInt(0)));
+          assembler->Goto(&if_positionissmi);
+        }
+
+        assembler->Bind(&if_indexisnotzero);
+        {
+          // The {index} is some other integral Number, that is definitely
+          // neither -0.0 nor in Smi range.
+          assembler->Return(assembler->NaNConstant());
+        }
+      }
+    }
+    assembler->Bind(&if_positionissmi);
+    position = var_position.value();
+
+    // Determine the actual length of the {receiver} String.
+    Node* receiver_length =
+        assembler->LoadObjectField(receiver, String::kLengthOffset);
+
+    // Return NaN if the Smi {position} is outside the bounds of the {receiver}.
+    Label if_positioninbounds(assembler),
+        if_positionnotinbounds(assembler, Label::kDeferred);
+    assembler->Branch(assembler->SmiAboveOrEqual(position, receiver_length),
+                      &if_positionnotinbounds, &if_positioninbounds);
+    assembler->Bind(&if_positionnotinbounds);
+    assembler->Return(assembler->NaNConstant());
+    assembler->Bind(&if_positioninbounds);
+  }
+
+  // Load the character at the {position} from the {receiver}.
+  Node* value = assembler->StringCharCodeAt(receiver, position);
+  Node* result = assembler->SmiFromWord32(value);
+  assembler->Return(result);
+}
+
 // -----------------------------------------------------------------------------
 // ES6 section 21.1 ArrayBuffer Objects
 
@@ -4237,11 +4661,13 @@
 
 namespace {
 
-template <bool is_construct>
 MUST_USE_RESULT MaybeHandle<Object> HandleApiCallHelper(
-    Isolate* isolate, BuiltinArguments<BuiltinExtraArguments::kTarget> args) {
+    Isolate* isolate,
+    BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget> args) {
   HandleScope scope(isolate);
   Handle<HeapObject> function = args.target<HeapObject>();
+  Handle<HeapObject> new_target = args.new_target();
+  bool is_construct = !new_target->IsUndefined();
   Handle<JSReceiver> receiver;
 
   DCHECK(function->IsFunctionTemplateInfo() ||
@@ -4261,9 +4687,11 @@
     }
     Handle<ObjectTemplateInfo> instance_template(
         ObjectTemplateInfo::cast(fun_data->instance_template()), isolate);
-    ASSIGN_RETURN_ON_EXCEPTION(isolate, receiver,
-                               ApiNatives::InstantiateObject(instance_template),
-                               Object);
+    ASSIGN_RETURN_ON_EXCEPTION(
+        isolate, receiver,
+        ApiNatives::InstantiateObject(instance_template,
+                                      Handle<JSReceiver>::cast(new_target)),
+        Object);
     args[0] = *receiver;
     DCHECK_EQ(*receiver, *args.receiver());
   } else {
@@ -4301,13 +4729,9 @@
     LOG(isolate, ApiObjectAccess("call", JSObject::cast(*args.receiver())));
     DCHECK(raw_holder->IsJSObject());
 
-    FunctionCallbackArguments custom(isolate,
-                                     data_obj,
-                                     *function,
-                                     raw_holder,
-                                     &args[0] - 1,
-                                     args.length() - 1,
-                                     is_construct);
+    FunctionCallbackArguments custom(isolate, data_obj, *function, raw_holder,
+                                     *new_target, &args[0] - 1,
+                                     args.length() - 1);
 
     Handle<Object> result = custom.Call(callback);
     if (result.is_null()) result = isolate->factory()->undefined_value();
@@ -4328,19 +4752,11 @@
   HandleScope scope(isolate);
   Handle<Object> result;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     HandleApiCallHelper<false>(isolate, args));
+                                     HandleApiCallHelper(isolate, args));
   return *result;
 }
 
 
-BUILTIN(HandleApiCallConstruct) {
-  HandleScope scope(isolate);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     HandleApiCallHelper<true>(isolate, args));
-  return *result;
-}
-
 Handle<Code> Builtins::CallFunction(ConvertReceiverMode mode,
                                     TailCallMode tail_call_mode) {
   switch (tail_call_mode) {
@@ -4422,11 +4838,12 @@
 namespace {
 
 class RelocatableArguments
-    : public BuiltinArguments<BuiltinExtraArguments::kTarget>,
+    : public BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget>,
       public Relocatable {
  public:
   RelocatableArguments(Isolate* isolate, int length, Object** arguments)
-      : BuiltinArguments<BuiltinExtraArguments::kTarget>(length, arguments),
+      : BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget>(length,
+                                                                     arguments),
         Relocatable(isolate) {}
 
   virtual inline void IterateInstance(ObjectVisitor* v) {
@@ -4450,32 +4867,31 @@
     DCHECK(function->IsFunctionTemplateInfo() || function->IsJSFunction());
     if (function->IsFunctionTemplateInfo() ||
         is_sloppy(JSFunction::cast(*function)->shared()->language_mode())) {
-      if (receiver->IsUndefined() || receiver->IsNull()) {
-        receiver = handle(isolate->global_proxy(), isolate);
-      } else {
-        ASSIGN_RETURN_ON_EXCEPTION(isolate, receiver,
-                                   Object::ToObject(isolate, receiver), Object);
-      }
+      ASSIGN_RETURN_ON_EXCEPTION(isolate, receiver,
+                                 Object::ConvertReceiver(isolate, receiver),
+                                 Object);
     }
   }
-  // Construct BuiltinArguments object: function, arguments reversed, receiver.
+  // Construct BuiltinArguments object:
+  // new target, function, arguments reversed, receiver.
   const int kBufferSize = 32;
   Object* small_argv[kBufferSize];
   Object** argv;
-  if (argc + 2 <= kBufferSize) {
+  if (argc + 3 <= kBufferSize) {
     argv = small_argv;
   } else {
-    argv = new Object* [argc + 2];
+    argv = new Object*[argc + 3];
   }
-  argv[argc + 1] = *receiver;
+  argv[argc + 2] = *receiver;
   for (int i = 0; i < argc; ++i) {
-    argv[argc - i] = *args[i];
+    argv[argc - i + 1] = *args[i];
   }
-  argv[0] = *function;
+  argv[1] = *function;
+  argv[0] = isolate->heap()->undefined_value();  // new target
   MaybeHandle<Object> result;
   {
-    RelocatableArguments arguments(isolate, argc + 2, &argv[argc + 1]);
-    result = HandleApiCallHelper<false>(isolate, arguments);
+    RelocatableArguments arguments(isolate, argc + 3, &argv[argc] + 2);
+    result = HandleApiCallHelper(isolate, arguments);
   }
   if (argv != small_argv) {
     delete[] argv;
@@ -4495,6 +4911,18 @@
   // Get the object called.
   JSObject* obj = JSObject::cast(*receiver);
 
+  // Set the new target.
+  HeapObject* new_target;
+  if (is_construct_call) {
+    // TODO(adamk): This should be passed through in args instead of
+    // being patched in here. We need to set a non-undefined value
+    // for v8::FunctionCallbackInfo::IsConstructCall() to get the
+    // right answer.
+    new_target = obj;
+  } else {
+    new_target = isolate->heap()->undefined_value();
+  }
+
   // Get the invocation callback from the function descriptor that was
   // used to create the called object.
   DCHECK(obj->map()->is_callable());
@@ -4517,13 +4945,9 @@
     HandleScope scope(isolate);
     LOG(isolate, ApiObjectAccess("call non-function", obj));
 
-    FunctionCallbackArguments custom(isolate,
-                                     call_data->data(),
-                                     constructor,
-                                     obj,
-                                     &args[0] - 1,
-                                     args.length() - 1,
-                                     is_construct_call);
+    FunctionCallbackArguments custom(isolate, call_data->data(), constructor,
+                                     obj, new_target, &args[0] - 1,
+                                     args.length() - 1);
     Handle<Object> result_handle = custom.Call(callback);
     if (result_handle.is_null()) {
       result = isolate->heap()->undefined_value();
@@ -4610,6 +5034,14 @@
   NamedStoreHandlerCompiler::GenerateStoreViaSetterForDeopt(masm);
 }
 
+static void Generate_StoreIC_Megamorphic(MacroAssembler* masm) {
+  StoreIC::GenerateMegamorphic(masm);
+}
+
+static void Generate_StoreIC_Megamorphic_Strict(MacroAssembler* masm) {
+  StoreIC::GenerateMegamorphic(masm);
+}
+
 
 static void Generate_KeyedStoreIC_Megamorphic(MacroAssembler* masm) {
   KeyedStoreIC::GenerateMegamorphic(masm, SLOPPY);
@@ -4626,26 +5058,6 @@
 }
 
 
-static void Generate_KeyedStoreIC_Initialize(MacroAssembler* masm) {
-  KeyedStoreIC::GenerateInitialize(masm);
-}
-
-
-static void Generate_KeyedStoreIC_Initialize_Strict(MacroAssembler* masm) {
-  KeyedStoreIC::GenerateInitialize(masm);
-}
-
-
-static void Generate_KeyedStoreIC_PreMonomorphic(MacroAssembler* masm) {
-  KeyedStoreIC::GeneratePreMonomorphic(masm);
-}
-
-
-static void Generate_KeyedStoreIC_PreMonomorphic_Strict(MacroAssembler* masm) {
-  KeyedStoreIC::GeneratePreMonomorphic(masm);
-}
-
-
 static void Generate_Return_DebugBreak(MacroAssembler* masm) {
   DebugCodegen::GenerateDebugBreakStub(masm,
                                        DebugCodegen::SAVE_RESULT_REGISTER);
@@ -4749,11 +5161,10 @@
 Handle<Code> CodeStubAssemblerBuilder(Isolate* isolate,
                                       BuiltinDesc const* builtin_desc) {
   Zone zone(isolate->allocator());
-  compiler::CodeStubAssembler assembler(isolate, &zone, builtin_desc->argc,
-                                        builtin_desc->flags,
-                                        builtin_desc->s_name);
+  CodeStubAssembler assembler(isolate, &zone, builtin_desc->argc,
+                              builtin_desc->flags, builtin_desc->s_name);
   // Generate the code/adaptor.
-  typedef void (*Generator)(compiler::CodeStubAssembler*);
+  typedef void (*Generator)(CodeStubAssembler*);
   Generator g = FUNCTION_CAST<Generator>(builtin_desc->generator);
   g(&assembler);
   return assembler.GenerateCode();
@@ -4907,6 +5318,242 @@
   masm->TailCallRuntime(Runtime::kStackGuard);
 }
 
+namespace {
+
+void ValidateSharedTypedArray(CodeStubAssembler* a, compiler::Node* tagged,
+                              compiler::Node* context,
+                              compiler::Node** out_instance_type,
+                              compiler::Node** out_backing_store) {
+  using namespace compiler;
+  CodeStubAssembler::Label is_smi(a), not_smi(a), is_typed_array(a),
+      not_typed_array(a), is_shared(a), not_shared(a), is_float_or_clamped(a),
+      not_float_or_clamped(a), invalid(a);
+
+  // Fail if it is not a heap object.
+  a->Branch(a->WordIsSmi(tagged), &is_smi, &not_smi);
+  a->Bind(&is_smi);
+  a->Goto(&invalid);
+
+  // Fail if the array's instance type is not JSTypedArray.
+  a->Bind(&not_smi);
+  a->Branch(a->WordEqual(a->LoadInstanceType(tagged),
+                         a->Int32Constant(JS_TYPED_ARRAY_TYPE)),
+            &is_typed_array, &not_typed_array);
+  a->Bind(&not_typed_array);
+  a->Goto(&invalid);
+
+  // Fail if the array's JSArrayBuffer is not shared.
+  a->Bind(&is_typed_array);
+  Node* array_buffer = a->LoadObjectField(tagged, JSTypedArray::kBufferOffset);
+  Node* is_buffer_shared = a->BitFieldDecode<JSArrayBuffer::IsShared>(
+      a->LoadObjectField(array_buffer, JSArrayBuffer::kBitFieldSlot));
+  a->Branch(is_buffer_shared, &is_shared, &not_shared);
+  a->Bind(&not_shared);
+  a->Goto(&invalid);
+
+  // Fail if the array's element type is float32, float64 or clamped.
+  a->Bind(&is_shared);
+  Node* elements_instance_type = a->LoadInstanceType(
+      a->LoadObjectField(tagged, JSObject::kElementsOffset));
+  STATIC_ASSERT(FIXED_INT8_ARRAY_TYPE < FIXED_FLOAT32_ARRAY_TYPE);
+  STATIC_ASSERT(FIXED_INT16_ARRAY_TYPE < FIXED_FLOAT32_ARRAY_TYPE);
+  STATIC_ASSERT(FIXED_INT32_ARRAY_TYPE < FIXED_FLOAT32_ARRAY_TYPE);
+  STATIC_ASSERT(FIXED_UINT8_ARRAY_TYPE < FIXED_FLOAT32_ARRAY_TYPE);
+  STATIC_ASSERT(FIXED_UINT16_ARRAY_TYPE < FIXED_FLOAT32_ARRAY_TYPE);
+  STATIC_ASSERT(FIXED_UINT32_ARRAY_TYPE < FIXED_FLOAT32_ARRAY_TYPE);
+  a->Branch(a->Int32LessThan(elements_instance_type,
+                             a->Int32Constant(FIXED_FLOAT32_ARRAY_TYPE)),
+            &not_float_or_clamped, &is_float_or_clamped);
+  a->Bind(&is_float_or_clamped);
+  a->Goto(&invalid);
+
+  a->Bind(&invalid);
+  a->CallRuntime(Runtime::kThrowNotIntegerSharedTypedArrayError, context,
+                 tagged);
+  a->Return(a->UndefinedConstant());
+
+  a->Bind(&not_float_or_clamped);
+  *out_instance_type = elements_instance_type;
+
+  Node* backing_store =
+      a->LoadObjectField(array_buffer, JSArrayBuffer::kBackingStoreOffset);
+  Node* byte_offset = a->ChangeUint32ToWord(a->TruncateTaggedToWord32(
+      context,
+      a->LoadObjectField(tagged, JSArrayBufferView::kByteOffsetOffset)));
+  *out_backing_store = a->IntPtrAdd(backing_store, byte_offset);
+}
+
+// https://tc39.github.io/ecmascript_sharedmem/shmem.html#Atomics.ValidateAtomicAccess
+compiler::Node* ConvertTaggedAtomicIndexToWord32(CodeStubAssembler* a,
+                                                 compiler::Node* tagged,
+                                                 compiler::Node* context) {
+  using namespace compiler;
+  CodeStubAssembler::Variable var_result(a, MachineRepresentation::kWord32);
+
+  Callable to_number = CodeFactory::ToNumber(a->isolate());
+  Node* number_index = a->CallStub(to_number, context, tagged);
+  CodeStubAssembler::Label done(a, &var_result);
+
+  CodeStubAssembler::Label if_numberissmi(a), if_numberisnotsmi(a);
+  a->Branch(a->WordIsSmi(number_index), &if_numberissmi, &if_numberisnotsmi);
+
+  a->Bind(&if_numberissmi);
+  {
+    var_result.Bind(a->SmiToWord32(number_index));
+    a->Goto(&done);
+  }
+
+  a->Bind(&if_numberisnotsmi);
+  {
+    Node* number_index_value = a->LoadHeapNumberValue(number_index);
+    Node* access_index = a->TruncateFloat64ToWord32(number_index_value);
+    Node* test_index = a->ChangeInt32ToFloat64(access_index);
+
+    CodeStubAssembler::Label if_indexesareequal(a), if_indexesarenotequal(a);
+    a->Branch(a->Float64Equal(number_index_value, test_index),
+              &if_indexesareequal, &if_indexesarenotequal);
+
+    a->Bind(&if_indexesareequal);
+    {
+      var_result.Bind(access_index);
+      a->Goto(&done);
+    }
+
+    a->Bind(&if_indexesarenotequal);
+    a->Return(
+        a->CallRuntime(Runtime::kThrowInvalidAtomicAccessIndexError, context));
+  }
+
+  a->Bind(&done);
+  return var_result.value();
+}
+
+void ValidateAtomicIndex(CodeStubAssembler* a, compiler::Node* index_word,
+                         compiler::Node* array_length_word,
+                         compiler::Node* context) {
+  using namespace compiler;
+  // Check if the index is in bounds. If not, throw RangeError.
+  CodeStubAssembler::Label if_inbounds(a), if_notinbounds(a);
+  a->Branch(
+      a->WordOr(a->Int32LessThan(index_word, a->Int32Constant(0)),
+                a->Int32GreaterThanOrEqual(index_word, array_length_word)),
+      &if_notinbounds, &if_inbounds);
+  a->Bind(&if_notinbounds);
+  a->Return(
+      a->CallRuntime(Runtime::kThrowInvalidAtomicAccessIndexError, context));
+  a->Bind(&if_inbounds);
+}
+
+}  // anonymous namespace
+
+void Builtins::Generate_AtomicsLoad(CodeStubAssembler* a) {
+  using namespace compiler;
+  Node* array = a->Parameter(1);
+  Node* index = a->Parameter(2);
+  Node* context = a->Parameter(3 + 2);
+
+  Node* instance_type;
+  Node* backing_store;
+  ValidateSharedTypedArray(a, array, context, &instance_type, &backing_store);
+
+  Node* index_word32 = ConvertTaggedAtomicIndexToWord32(a, index, context);
+  Node* array_length_word32 = a->TruncateTaggedToWord32(
+      context, a->LoadObjectField(array, JSTypedArray::kLengthOffset));
+  ValidateAtomicIndex(a, index_word32, array_length_word32, context);
+  Node* index_word = a->ChangeUint32ToWord(index_word32);
+
+  CodeStubAssembler::Label i8(a), u8(a), i16(a), u16(a), i32(a), u32(a),
+      other(a);
+  int32_t case_values[] = {
+      FIXED_INT8_ARRAY_TYPE,   FIXED_UINT8_ARRAY_TYPE, FIXED_INT16_ARRAY_TYPE,
+      FIXED_UINT16_ARRAY_TYPE, FIXED_INT32_ARRAY_TYPE, FIXED_UINT32_ARRAY_TYPE,
+  };
+  CodeStubAssembler::Label* case_labels[] = {
+      &i8, &u8, &i16, &u16, &i32, &u32,
+  };
+  a->Switch(instance_type, &other, case_values, case_labels,
+            arraysize(case_labels));
+
+  a->Bind(&i8);
+  a->Return(
+      a->SmiTag(a->AtomicLoad(MachineType::Int8(), backing_store, index_word)));
+
+  a->Bind(&u8);
+  a->Return(a->SmiTag(
+      a->AtomicLoad(MachineType::Uint8(), backing_store, index_word)));
+
+  a->Bind(&i16);
+  a->Return(a->SmiTag(a->AtomicLoad(MachineType::Int16(), backing_store,
+                                    a->WordShl(index_word, 1))));
+
+  a->Bind(&u16);
+  a->Return(a->SmiTag(a->AtomicLoad(MachineType::Uint16(), backing_store,
+                                    a->WordShl(index_word, 1))));
+
+  a->Bind(&i32);
+  a->Return(a->ChangeInt32ToTagged(a->AtomicLoad(
+      MachineType::Int32(), backing_store, a->WordShl(index_word, 2))));
+
+  a->Bind(&u32);
+  a->Return(a->ChangeUint32ToTagged(a->AtomicLoad(
+      MachineType::Uint32(), backing_store, a->WordShl(index_word, 2))));
+
+  // This shouldn't happen, we've already validated the type.
+  a->Bind(&other);
+  a->Return(a->Int32Constant(0));
+}
+
+void Builtins::Generate_AtomicsStore(CodeStubAssembler* a) {
+  using namespace compiler;
+  Node* array = a->Parameter(1);
+  Node* index = a->Parameter(2);
+  Node* value = a->Parameter(3);
+  Node* context = a->Parameter(4 + 2);
+
+  Node* instance_type;
+  Node* backing_store;
+  ValidateSharedTypedArray(a, array, context, &instance_type, &backing_store);
+
+  Node* index_word32 = ConvertTaggedAtomicIndexToWord32(a, index, context);
+  Node* array_length_word32 = a->TruncateTaggedToWord32(
+      context, a->LoadObjectField(array, JSTypedArray::kLengthOffset));
+  ValidateAtomicIndex(a, index_word32, array_length_word32, context);
+  Node* index_word = a->ChangeUint32ToWord(index_word32);
+
+  Callable to_integer = CodeFactory::ToInteger(a->isolate());
+  Node* value_integer = a->CallStub(to_integer, context, value);
+  Node* value_word32 = a->TruncateTaggedToWord32(context, value_integer);
+
+  CodeStubAssembler::Label u8(a), u16(a), u32(a), other(a);
+  int32_t case_values[] = {
+      FIXED_INT8_ARRAY_TYPE,   FIXED_UINT8_ARRAY_TYPE, FIXED_INT16_ARRAY_TYPE,
+      FIXED_UINT16_ARRAY_TYPE, FIXED_INT32_ARRAY_TYPE, FIXED_UINT32_ARRAY_TYPE,
+  };
+  CodeStubAssembler::Label* case_labels[] = {
+      &u8, &u8, &u16, &u16, &u32, &u32,
+  };
+  a->Switch(instance_type, &other, case_values, case_labels,
+            arraysize(case_labels));
+
+  a->Bind(&u8);
+  a->AtomicStore(MachineRepresentation::kWord8, backing_store, index_word,
+                 value_word32);
+  a->Return(value_integer);
+
+  a->Bind(&u16);
+  a->SmiTag(a->AtomicStore(MachineRepresentation::kWord16, backing_store,
+                           a->WordShl(index_word, 1), value_word32));
+  a->Return(value_integer);
+
+  a->Bind(&u32);
+  a->AtomicStore(MachineRepresentation::kWord32, backing_store,
+                 a->WordShl(index_word, 2), value_word32);
+  a->Return(value_integer);
+
+  // This shouldn't happen, we've already validated the type.
+  a->Bind(&other);
+  a->Return(a->Int32Constant(0));
+}
 
 #define DEFINE_BUILTIN_ACCESSOR_C(name, ignore)               \
 Handle<Code> Builtins::name() {                               \
diff --git a/src/builtins.h b/src/builtins.h
index 221d06f..ff1d77d 100644
--- a/src/builtins.h
+++ b/src/builtins.h
@@ -11,13 +11,9 @@
 namespace v8 {
 namespace internal {
 
-namespace compiler {
-
 // Forward declarations.
 class CodeStubAssembler;
 
-}  // namespace compiler
-
 // Specifies extra arguments required by a C++ builtin.
 enum class BuiltinExtraArguments : uint8_t {
   kNone = 0u,
@@ -64,7 +60,6 @@
   V(EmptyFunction, kNone)                                      \
                                                                \
   V(ArrayConcat, kNone)                                        \
-  V(ArrayIsArray, kNone)                                       \
   V(ArrayPop, kNone)                                           \
   V(ArrayPush, kNone)                                          \
   V(ArrayShift, kNone)                                         \
@@ -119,6 +114,10 @@
   V(FunctionPrototypeToString, kNone)                          \
                                                                \
   V(GeneratorFunctionConstructor, kTargetAndNewTarget)         \
+  V(AsyncFunctionConstructor, kTargetAndNewTarget)             \
+                                                               \
+  V(GlobalEncodeURI, kNone)                                    \
+  V(GlobalEncodeURIComponent, kNone)                           \
                                                                \
   V(GlobalEval, kTarget)                                       \
                                                                \
@@ -130,21 +129,28 @@
                                                                \
   V(ObjectAssign, kNone)                                       \
   V(ObjectCreate, kNone)                                       \
+  V(ObjectDefineGetter, kNone)                                 \
+  V(ObjectDefineProperties, kNone)                             \
+  V(ObjectDefineProperty, kNone)                               \
+  V(ObjectDefineSetter, kNone)                                 \
+  V(ObjectEntries, kNone)                                      \
   V(ObjectFreeze, kNone)                                       \
   V(ObjectGetOwnPropertyDescriptor, kNone)                     \
+  V(ObjectGetOwnPropertyDescriptors, kNone)                    \
   V(ObjectGetOwnPropertyNames, kNone)                          \
   V(ObjectGetOwnPropertySymbols, kNone)                        \
+  V(ObjectGetPrototypeOf, kNone)                               \
   V(ObjectIs, kNone)                                           \
   V(ObjectIsExtensible, kNone)                                 \
   V(ObjectIsFrozen, kNone)                                     \
   V(ObjectIsSealed, kNone)                                     \
   V(ObjectKeys, kNone)                                         \
-  V(ObjectValues, kNone)                                       \
-  V(ObjectEntries, kNone)                                      \
-  V(ObjectGetOwnPropertyDescriptors, kNone)                    \
+  V(ObjectLookupGetter, kNone)                                 \
+  V(ObjectLookupSetter, kNone)                                 \
   V(ObjectPreventExtensions, kNone)                            \
-  V(ObjectSeal, kNone)                                         \
   V(ObjectProtoToString, kNone)                                \
+  V(ObjectSeal, kNone)                                         \
+  V(ObjectValues, kNone)                                       \
                                                                \
   V(ProxyConstructor, kNone)                                   \
   V(ProxyConstructor_ConstructStub, kTarget)                   \
@@ -166,8 +172,7 @@
   V(SymbolConstructor, kNone)                                  \
   V(SymbolConstructor_ConstructStub, kTarget)                  \
                                                                \
-  V(HandleApiCall, kTarget)                                    \
-  V(HandleApiCallConstruct, kTarget)                           \
+  V(HandleApiCall, kTargetAndNewTarget)                        \
   V(HandleApiCallAsFunction, kNone)                            \
   V(HandleApiCallAsConstructor, kNone)                         \
                                                                \
@@ -176,6 +181,9 @@
 
 // Define list of builtins implemented in assembly.
 #define BUILTIN_LIST_A(V)                                                      \
+  V(AllocateInNewSpace, BUILTIN, UNINITIALIZED, kNoExtraICState)               \
+  V(AllocateInOldSpace, BUILTIN, UNINITIALIZED, kNoExtraICState)               \
+                                                                               \
   V(ArgumentsAdaptorTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
                                                                                \
   V(ConstructedNonConstructable, BUILTIN, UNINITIALIZED, kNoExtraICState)      \
@@ -219,7 +227,9 @@
   V(JSConstructStubApi, BUILTIN, UNINITIALIZED, kNoExtraICState)               \
   V(JSEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
   V(JSConstructEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
+  V(ResumeGeneratorTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState)        \
   V(CompileLazy, BUILTIN, UNINITIALIZED, kNoExtraICState)                      \
+  V(CompileBaseline, BUILTIN, UNINITIALIZED, kNoExtraICState)                  \
   V(CompileOptimized, BUILTIN, UNINITIALIZED, kNoExtraICState)                 \
   V(CompileOptimizedConcurrent, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
   V(NotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
@@ -229,13 +239,9 @@
   V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, kNoExtraICState)     \
                                                                                \
   V(InterpreterEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
-  V(InterpreterExitTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState)        \
   V(InterpreterPushArgsAndCall, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
   V(InterpreterPushArgsAndTailCall, BUILTIN, UNINITIALIZED, kNoExtraICState)   \
   V(InterpreterPushArgsAndConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState)  \
-  V(InterpreterNotifyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState)     \
-  V(InterpreterNotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \
-  V(InterpreterNotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState) \
   V(InterpreterEnterBytecodeDispatch, BUILTIN, UNINITIALIZED, kNoExtraICState) \
                                                                                \
   V(LoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState)                      \
@@ -248,15 +254,11 @@
   V(StoreIC_Setter_ForDeopt, STORE_IC, MONOMORPHIC,                            \
     StoreICState::kStrictModeState)                                            \
                                                                                \
-  V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, kNoExtraICState)   \
-  V(KeyedStoreIC_PreMonomorphic, KEYED_STORE_IC, PREMONOMORPHIC,               \
-    kNoExtraICState)                                                           \
-  V(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, MEGAMORPHIC, kNoExtraICState)    \
+  V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC, kNoExtraICState)               \
+  V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC,                         \
+    StoreICState::kStrictModeState)                                            \
                                                                                \
-  V(KeyedStoreIC_Initialize_Strict, KEYED_STORE_IC, UNINITIALIZED,             \
-    StoreICState::kStrictModeState)                                            \
-  V(KeyedStoreIC_PreMonomorphic_Strict, KEYED_STORE_IC, PREMONOMORPHIC,        \
-    StoreICState::kStrictModeState)                                            \
+  V(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, MEGAMORPHIC, kNoExtraICState)    \
   V(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC, MEGAMORPHIC,              \
     StoreICState::kStrictModeState)                                            \
                                                                                \
@@ -279,7 +281,6 @@
   V(DatePrototypeGetUTCMonth, BUILTIN, UNINITIALIZED, kNoExtraICState)         \
   V(DatePrototypeGetUTCSeconds, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
                                                                                \
-  V(FunctionHasInstance, BUILTIN, UNINITIALIZED, kNoExtraICState)              \
   V(FunctionPrototypeApply, BUILTIN, UNINITIALIZED, kNoExtraICState)           \
   V(FunctionPrototypeCall, BUILTIN, UNINITIALIZED, kNoExtraICState)            \
                                                                                \
@@ -308,14 +309,23 @@
   CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V)
 
 // Define list of builtins implemented in TurboFan (with JS linkage).
-#define BUILTIN_LIST_T(V) \
-  V(MathCeil, 2)          \
-  V(MathClz32, 2)         \
-  V(MathFloor, 2)         \
-  V(MathRound, 2)         \
-  V(MathSqrt, 2)          \
-  V(MathTrunc, 2)         \
-  V(ObjectHasOwnProperty, 2)
+#define BUILTIN_LIST_T(V)            \
+  V(FunctionPrototypeHasInstance, 2) \
+  V(GeneratorPrototypeNext, 2)       \
+  V(GeneratorPrototypeReturn, 2)     \
+  V(GeneratorPrototypeThrow, 2)      \
+  V(MathCeil, 2)                     \
+  V(MathClz32, 2)                    \
+  V(MathFloor, 2)                    \
+  V(MathRound, 2)                    \
+  V(MathSqrt, 2)                     \
+  V(MathTrunc, 2)                    \
+  V(ObjectHasOwnProperty, 2)         \
+  V(ArrayIsArray, 2)                 \
+  V(StringPrototypeCharAt, 2)        \
+  V(StringPrototypeCharCodeAt, 2)    \
+  V(AtomicsLoad, 3)                  \
+  V(AtomicsStore, 4)
 
 // Define list of builtin handlers implemented in assembly.
 #define BUILTIN_LIST_H(V)                    \
@@ -439,8 +449,11 @@
   static void Generate_Adaptor(MacroAssembler* masm,
                                CFunctionId id,
                                BuiltinExtraArguments extra_args);
+  static void Generate_AllocateInNewSpace(MacroAssembler* masm);
+  static void Generate_AllocateInOldSpace(MacroAssembler* masm);
   static void Generate_ConstructedNonConstructable(MacroAssembler* masm);
   static void Generate_CompileLazy(MacroAssembler* masm);
+  static void Generate_CompileBaseline(MacroAssembler* masm);
   static void Generate_InOptimizationQueue(MacroAssembler* masm);
   static void Generate_CompileOptimized(MacroAssembler* masm);
   static void Generate_CompileOptimizedConcurrent(MacroAssembler* masm);
@@ -450,6 +463,7 @@
   static void Generate_JSConstructStubApi(MacroAssembler* masm);
   static void Generate_JSEntryTrampoline(MacroAssembler* masm);
   static void Generate_JSConstructEntryTrampoline(MacroAssembler* masm);
+  static void Generate_ResumeGeneratorTrampoline(MacroAssembler* masm);
   static void Generate_NotifyDeoptimized(MacroAssembler* masm);
   static void Generate_NotifySoftDeoptimized(MacroAssembler* masm);
   static void Generate_NotifyLazyDeoptimized(MacroAssembler* masm);
@@ -578,7 +592,6 @@
   // ES6 section 20.3.4.19 Date.prototype.getUTCSeconds ( )
   static void Generate_DatePrototypeGetUTCSeconds(MacroAssembler* masm);
 
-  static void Generate_FunctionHasInstance(MacroAssembler* masm);
   static void Generate_FunctionPrototypeApply(MacroAssembler* masm);
   static void Generate_FunctionPrototypeCall(MacroAssembler* masm);
 
@@ -589,11 +602,11 @@
   static void Generate_ArrayCode(MacroAssembler* masm);
 
   // ES6 section 20.2.2.10 Math.ceil ( x )
-  static void Generate_MathCeil(compiler::CodeStubAssembler* assembler);
+  static void Generate_MathCeil(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.11 Math.clz32 ( x )
-  static void Generate_MathClz32(compiler::CodeStubAssembler* assembler);
+  static void Generate_MathClz32(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.16 Math.floor ( x )
-  static void Generate_MathFloor(compiler::CodeStubAssembler* assembler);
+  static void Generate_MathFloor(CodeStubAssembler* assembler);
   enum class MathMaxMinKind { kMax, kMin };
   static void Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind);
   // ES6 section 20.2.2.24 Math.max ( value1, value2 , ...values )
@@ -605,20 +618,38 @@
     Generate_MathMaxMin(masm, MathMaxMinKind::kMin);
   }
   // ES6 section 20.2.2.28 Math.round ( x )
-  static void Generate_MathRound(compiler::CodeStubAssembler* assembler);
+  static void Generate_MathRound(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.32 Math.sqrt ( x )
-  static void Generate_MathSqrt(compiler::CodeStubAssembler* assembler);
+  static void Generate_MathSqrt(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.35 Math.trunc ( x )
-  static void Generate_MathTrunc(compiler::CodeStubAssembler* assembler);
+  static void Generate_MathTrunc(CodeStubAssembler* assembler);
 
   // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case.
   static void Generate_NumberConstructor(MacroAssembler* masm);
   // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case.
   static void Generate_NumberConstructor_ConstructStub(MacroAssembler* masm);
 
+  // ES6 section 19.2.3.6 Function.prototype [ @@hasInstance ] ( V )
+  static void Generate_FunctionPrototypeHasInstance(
+      CodeStubAssembler* assembler);
+
+  // ES6 section 25.3.1.2 Generator.prototype.next ( value )
+  static void Generate_GeneratorPrototypeNext(CodeStubAssembler* assembler);
+  // ES6 section 25.3.1.3 Generator.prototype.return ( value )
+  static void Generate_GeneratorPrototypeReturn(CodeStubAssembler* assembler);
+  // ES6 section 25.3.1.4 Generator.prototype.throw ( exception )
+  static void Generate_GeneratorPrototypeThrow(CodeStubAssembler* assembler);
+
   // ES6 section 19.1.3.2 Object.prototype.hasOwnProperty
-  static void Generate_ObjectHasOwnProperty(
-      compiler::CodeStubAssembler* assembler);
+  static void Generate_ObjectHasOwnProperty(CodeStubAssembler* assembler);
+
+  // ES6 section 22.1.2.2 Array.isArray
+  static void Generate_ArrayIsArray(CodeStubAssembler* assembler);
+
+  // ES6 section 21.1.3.1 String.prototype.charAt ( pos )
+  static void Generate_StringPrototypeCharAt(CodeStubAssembler* assembler);
+  // ES6 section 21.1.3.2 String.prototype.charCodeAt ( pos )
+  static void Generate_StringPrototypeCharCodeAt(CodeStubAssembler* assembler);
 
   static void Generate_StringConstructor(MacroAssembler* masm);
   static void Generate_StringConstructor_ConstructStub(MacroAssembler* masm);
@@ -627,7 +658,7 @@
   static void Generate_StackCheck(MacroAssembler* masm);
 
   static void Generate_InterpreterEntryTrampoline(MacroAssembler* masm);
-  static void Generate_InterpreterExitTrampoline(MacroAssembler* masm);
+  static void Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm);
   static void Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) {
     return Generate_InterpreterPushArgsAndCallImpl(masm,
                                                    TailCallMode::kDisallow);
@@ -638,10 +669,6 @@
   static void Generate_InterpreterPushArgsAndCallImpl(
       MacroAssembler* masm, TailCallMode tail_call_mode);
   static void Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm);
-  static void Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm);
-  static void Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm);
-  static void Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm);
-  static void Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm);
 
 #define DECLARE_CODE_AGE_BUILTIN_GENERATOR(C)                \
   static void Generate_Make##C##CodeYoungAgainEvenMarking(   \
@@ -655,6 +682,9 @@
   static void Generate_MarkCodeAsExecutedOnce(MacroAssembler* masm);
   static void Generate_MarkCodeAsExecutedTwice(MacroAssembler* masm);
 
+  static void Generate_AtomicsLoad(CodeStubAssembler* assembler);
+  static void Generate_AtomicsStore(CodeStubAssembler* assembler);
+
   static void InitBuiltinFunctionTable();
 
   bool initialized_;
diff --git a/src/cancelable-task.cc b/src/cancelable-task.cc
index d231bb7..defbb44 100644
--- a/src/cancelable-task.cc
+++ b/src/cancelable-task.cc
@@ -14,7 +14,6 @@
 Cancelable::Cancelable(CancelableTaskManager* parent)
     : parent_(parent), status_(kWaiting), id_(0), cancel_counter_(0) {
   id_ = parent->Register(this);
-  CHECK(id_ != 0);
 }
 
 
@@ -27,49 +26,35 @@
   }
 }
 
-
-static bool ComparePointers(void* ptr1, void* ptr2) { return ptr1 == ptr2; }
-
-
-CancelableTaskManager::CancelableTaskManager()
-    : task_id_counter_(0), cancelable_tasks_(ComparePointers) {}
-
+CancelableTaskManager::CancelableTaskManager() : task_id_counter_(0) {}
 
 uint32_t CancelableTaskManager::Register(Cancelable* task) {
   base::LockGuard<base::Mutex> guard(&mutex_);
   uint32_t id = ++task_id_counter_;
   // The loop below is just used when task_id_counter_ overflows.
-  while ((id == 0) || (cancelable_tasks_.Lookup(reinterpret_cast<void*>(id),
-                                                id) != nullptr)) {
-    ++id;
-  }
-  HashMap::Entry* entry =
-      cancelable_tasks_.LookupOrInsert(reinterpret_cast<void*>(id), id);
-  entry->value = task;
+  while (cancelable_tasks_.count(id) > 0) ++id;
+  cancelable_tasks_[id] = task;
   return id;
 }
 
 
 void CancelableTaskManager::RemoveFinishedTask(uint32_t id) {
   base::LockGuard<base::Mutex> guard(&mutex_);
-  void* removed = cancelable_tasks_.Remove(reinterpret_cast<void*>(id), id);
+  size_t removed = cancelable_tasks_.erase(id);
   USE(removed);
-  DCHECK(removed != nullptr);
+  DCHECK_NE(0, removed);
   cancelable_tasks_barrier_.NotifyOne();
 }
 
 
 bool CancelableTaskManager::TryAbort(uint32_t id) {
   base::LockGuard<base::Mutex> guard(&mutex_);
-  HashMap::Entry* entry =
-      cancelable_tasks_.Lookup(reinterpret_cast<void*>(id), id);
-  if (entry != nullptr) {
-    Cancelable* value = reinterpret_cast<Cancelable*>(entry->value);
+  auto entry = cancelable_tasks_.find(id);
+  if (entry != cancelable_tasks_.end()) {
+    Cancelable* value = entry->second;
     if (value->Cancel()) {
       // Cannot call RemoveFinishedTask here because of recursive locking.
-      void* removed = cancelable_tasks_.Remove(reinterpret_cast<void*>(id), id);
-      USE(removed);
-      DCHECK(removed != nullptr);
+      cancelable_tasks_.erase(entry);
       cancelable_tasks_barrier_.NotifyOne();
       return true;
     }
@@ -85,27 +70,19 @@
   // started.
   base::LockGuard<base::Mutex> guard(&mutex_);
 
-  // HashMap does not support removing while iterating, hence keep a set of
-  // entries that are to be removed.
-  std::set<uint32_t> to_remove;
-
-  // Cancelable tasks could potentially register new tasks, requiring a loop
-  // here.
-  while (cancelable_tasks_.occupancy() > 0) {
-    for (HashMap::Entry* p = cancelable_tasks_.Start(); p != nullptr;
-         p = cancelable_tasks_.Next(p)) {
-      if (reinterpret_cast<Cancelable*>(p->value)->Cancel()) {
-        to_remove.insert(reinterpret_cast<Cancelable*>(p->value)->id());
+  // Cancelable tasks could be running or could potentially register new
+  // tasks, requiring a loop here.
+  while (!cancelable_tasks_.empty()) {
+    for (auto it = cancelable_tasks_.begin(); it != cancelable_tasks_.end();) {
+      auto current = it;
+      // We need to get to the next element before erasing the current.
+      ++it;
+      if (current->second->Cancel()) {
+        cancelable_tasks_.erase(current);
       }
     }
-    // Remove tasks that were successfully canceled.
-    for (auto id : to_remove) {
-      cancelable_tasks_.Remove(reinterpret_cast<void*>(id), id);
-    }
-    to_remove.clear();
-
-    // Finally, wait for already running background tasks.
-    if (cancelable_tasks_.occupancy() > 0) {
+    // Wait for already running background tasks.
+    if (!cancelable_tasks_.empty()) {
       cancelable_tasks_barrier_.Wait(&mutex_);
     }
   }
diff --git a/src/cancelable-task.h b/src/cancelable-task.h
index a8387fc..b1d62aa 100644
--- a/src/cancelable-task.h
+++ b/src/cancelable-task.h
@@ -5,11 +5,12 @@
 #ifndef V8_CANCELABLE_TASK_H_
 #define V8_CANCELABLE_TASK_H_
 
+#include <map>
+
 #include "include/v8-platform.h"
-#include "src/atomic-utils.h"
+#include "src/base/atomic-utils.h"
 #include "src/base/macros.h"
 #include "src/base/platform/condition-variable.h"
-#include "src/hashmap.h"
 
 namespace v8 {
 namespace internal {
@@ -51,7 +52,7 @@
   uint32_t task_id_counter_;
 
   // A set of cancelable tasks that are currently registered.
-  HashMap cancelable_tasks_;
+  std::map<uint32_t, Cancelable*> cancelable_tasks_;
 
   // Mutex and condition variable enabling concurrent register and removing, as
   // well as waiting for background tasks on {CancelAndWait}.
@@ -104,13 +105,13 @@
   }
 
   CancelableTaskManager* parent_;
-  AtomicValue<Status> status_;
+  base::AtomicValue<Status> status_;
   uint32_t id_;
 
   // The counter is incremented for failing tries to cancel a task. This can be
   // used by the task itself as an indication how often external entities tried
   // to abort it.
-  AtomicNumber<intptr_t> cancel_counter_;
+  base::AtomicNumber<intptr_t> cancel_counter_;
 
   friend class CancelableTaskManager;
 
diff --git a/src/code-factory.cc b/src/code-factory.cc
index fbfdd5f..dd12b05 100644
--- a/src/code-factory.cc
+++ b/src/code-factory.cc
@@ -13,11 +13,15 @@
 
 // static
 Callable CodeFactory::LoadIC(Isolate* isolate, TypeofMode typeof_mode) {
-  return Callable(LoadIC::initialize_stub(
-                      isolate, LoadICState(typeof_mode).GetExtraICState()),
-                  LoadDescriptor(isolate));
+  LoadICTrampolineStub stub(isolate, LoadICState(typeof_mode));
+  return Callable(stub.GetCode(), LoadDescriptor(isolate));
 }
 
+// static
+Callable CodeFactory::ApiGetter(Isolate* isolate) {
+  CallApiGetterStub stub(isolate);
+  return Callable(stub.GetCode(), ApiGetterDescriptor(isolate));
+}
 
 // static
 Callable CodeFactory::LoadICInOptimizedCode(
@@ -32,8 +36,8 @@
 
 // static
 Callable CodeFactory::KeyedLoadIC(Isolate* isolate) {
-  return Callable(KeyedLoadIC::initialize_stub(isolate, kNoExtraICState),
-                  LoadDescriptor(isolate));
+  KeyedLoadICTrampolineStub stub(isolate, LoadICState(kNoExtraICState));
+  return Callable(stub.GetCode(), LoadDescriptor(isolate));
 }
 
 
@@ -53,8 +57,8 @@
 Callable CodeFactory::CallIC(Isolate* isolate, int argc,
                              ConvertReceiverMode mode,
                              TailCallMode tail_call_mode) {
-  return Callable(CallIC::initialize_stub(isolate, argc, mode, tail_call_mode),
-                  CallFunctionWithFeedbackDescriptor(isolate));
+  CallICTrampolineStub stub(isolate, CallICState(argc, mode, tail_call_mode));
+  return Callable(stub.GetCode(), CallFunctionWithFeedbackDescriptor(isolate));
 }
 
 
@@ -70,9 +74,8 @@
 
 // static
 Callable CodeFactory::StoreIC(Isolate* isolate, LanguageMode language_mode) {
-  return Callable(
-      StoreIC::initialize_stub(isolate, language_mode, UNINITIALIZED),
-      VectorStoreICTrampolineDescriptor(isolate));
+  VectorStoreICTrampolineStub stub(isolate, StoreICState(language_mode));
+  return Callable(stub.GetCode(), VectorStoreICTrampolineDescriptor(isolate));
 }
 
 
@@ -92,9 +95,8 @@
 // static
 Callable CodeFactory::KeyedStoreIC(Isolate* isolate,
                                    LanguageMode language_mode) {
-  return Callable(
-      KeyedStoreIC::initialize_stub(isolate, language_mode, UNINITIALIZED),
-      VectorStoreICTrampolineDescriptor(isolate));
+  VectorKeyedStoreICTrampolineStub stub(isolate, StoreICState(language_mode));
+  return Callable(stub.GetCode(), VectorStoreICTrampolineDescriptor(isolate));
 }
 
 
@@ -225,6 +227,42 @@
 }
 
 // static
+Callable CodeFactory::Multiply(Isolate* isolate) {
+  MultiplyStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::Divide(Isolate* isolate) {
+  DivideStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::Modulus(Isolate* isolate) {
+  ModulusStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::ShiftRight(Isolate* isolate) {
+  ShiftRightStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::ShiftRightLogical(Isolate* isolate) {
+  ShiftRightLogicalStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::ShiftLeft(Isolate* isolate) {
+  ShiftLeftStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
 Callable CodeFactory::BitwiseAnd(Isolate* isolate) {
   BitwiseAndStub stub(isolate);
   return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
@@ -243,6 +281,18 @@
 }
 
 // static
+Callable CodeFactory::Inc(Isolate* isolate) {
+  IncStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
+Callable CodeFactory::Dec(Isolate* isolate) {
+  DecStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
 Callable CodeFactory::LessThan(Isolate* isolate) {
   LessThanStub stub(isolate);
   return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
@@ -365,9 +415,9 @@
 
 
 // static
-Callable CodeFactory::StoreInterceptor(Isolate* isolate) {
-  StoreInterceptorStub stub(isolate);
-  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+Callable CodeFactory::ResumeGenerator(Isolate* isolate) {
+  return Callable(isolate->builtins()->ResumeGeneratorTrampoline(),
+                  ResumeGeneratorDescriptor(isolate));
 }
 
 // static
@@ -423,22 +473,25 @@
 
 
 // static
-Callable CodeFactory::FastNewRestParameter(Isolate* isolate) {
-  FastNewRestParameterStub stub(isolate);
+Callable CodeFactory::FastNewRestParameter(Isolate* isolate,
+                                           bool skip_stub_frame) {
+  FastNewRestParameterStub stub(isolate, skip_stub_frame);
   return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 }
 
 
 // static
-Callable CodeFactory::FastNewSloppyArguments(Isolate* isolate) {
-  FastNewSloppyArgumentsStub stub(isolate);
+Callable CodeFactory::FastNewSloppyArguments(Isolate* isolate,
+                                             bool skip_stub_frame) {
+  FastNewSloppyArgumentsStub stub(isolate, skip_stub_frame);
   return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 }
 
 
 // static
-Callable CodeFactory::FastNewStrictArguments(Isolate* isolate) {
-  FastNewStrictArgumentsStub stub(isolate);
+Callable CodeFactory::FastNewStrictArguments(Isolate* isolate,
+                                             bool skip_stub_frame) {
+  FastNewStrictArgumentsStub stub(isolate, skip_stub_frame);
   return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 }
 
@@ -449,13 +502,6 @@
   return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
 }
 
-
-// static
-Callable CodeFactory::AllocateMutableHeapNumber(Isolate* isolate) {
-  AllocateMutableHeapNumberStub stub(isolate);
-  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
-}
-
 #define SIMD128_ALLOC(TYPE, Type, type, lane_count, lane_type)          \
   Callable CodeFactory::Allocate##Type(Isolate* isolate) {              \
     Allocate##Type##Stub stub(isolate);                                 \
@@ -465,13 +511,6 @@
 #undef SIMD128_ALLOC
 
 // static
-Callable CodeFactory::AllocateInNewSpace(Isolate* isolate) {
-  AllocateInNewSpaceStub stub(isolate);
-  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
-}
-
-
-// static
 Callable CodeFactory::ArgumentAdaptor(Isolate* isolate) {
   return Callable(isolate->builtins()->ArgumentsAdaptorTrampoline(),
                   ArgumentAdaptorDescriptor(isolate));
@@ -506,6 +545,11 @@
                   ConstructTrampolineDescriptor(isolate));
 }
 
+// static
+Callable CodeFactory::HasProperty(Isolate* isolate) {
+  HasPropertyStub stub(isolate);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
 
 // static
 Callable CodeFactory::InterpreterPushArgsAndCall(Isolate* isolate,
diff --git a/src/code-factory.h b/src/code-factory.h
index deb125f..7b43cae 100644
--- a/src/code-factory.h
+++ b/src/code-factory.h
@@ -54,13 +54,15 @@
       Isolate* isolate, LanguageMode mode,
       InlineCacheState initialization_state);
 
-  static Callable StoreInterceptor(Isolate* isolate);
+  static Callable ResumeGenerator(Isolate* isolate);
 
   static Callable CompareIC(Isolate* isolate, Token::Value op);
   static Callable CompareNilIC(Isolate* isolate, NilValue nil_value);
 
   static Callable BinaryOpIC(Isolate* isolate, Token::Value op);
 
+  static Callable ApiGetter(Isolate* isolate);
+
   // Code stubs. Add methods here as needed to reduce dependency on
   // code-stubs.h.
   static Callable InstanceOf(Isolate* isolate);
@@ -82,9 +84,17 @@
 
   static Callable Add(Isolate* isolate);
   static Callable Subtract(Isolate* isolate);
+  static Callable Multiply(Isolate* isolate);
+  static Callable Divide(Isolate* isolate);
+  static Callable Modulus(Isolate* isolate);
+  static Callable ShiftRight(Isolate* isolate);
+  static Callable ShiftRightLogical(Isolate* isolate);
+  static Callable ShiftLeft(Isolate* isolate);
   static Callable BitwiseAnd(Isolate* isolate);
   static Callable BitwiseOr(Isolate* isolate);
   static Callable BitwiseXor(Isolate* isolate);
+  static Callable Inc(Isolate* isolate);
+  static Callable Dec(Isolate* isolate);
   static Callable LessThan(Isolate* isolate);
   static Callable LessThanOrEqual(Isolate* isolate);
   static Callable GreaterThan(Isolate* isolate);
@@ -115,17 +125,18 @@
   static Callable FastNewClosure(Isolate* isolate, LanguageMode language_mode,
                                  FunctionKind kind);
   static Callable FastNewObject(Isolate* isolate);
-  static Callable FastNewRestParameter(Isolate* isolate);
-  static Callable FastNewSloppyArguments(Isolate* isolate);
-  static Callable FastNewStrictArguments(Isolate* isolate);
+  static Callable FastNewRestParameter(Isolate* isolate,
+                                       bool skip_stub_frame = false);
+  static Callable FastNewSloppyArguments(Isolate* isolate,
+                                         bool skip_stub_frame = false);
+  static Callable FastNewStrictArguments(Isolate* isolate,
+                                         bool skip_stub_frame = false);
 
   static Callable AllocateHeapNumber(Isolate* isolate);
-  static Callable AllocateMutableHeapNumber(Isolate* isolate);
 #define SIMD128_ALLOC(TYPE, Type, type, lane_count, lane_type) \
   static Callable Allocate##Type(Isolate* isolate);
   SIMD128_TYPES(SIMD128_ALLOC)
 #undef SIMD128_ALLOC
-  static Callable AllocateInNewSpace(Isolate* isolate);
 
   static Callable ArgumentAdaptor(Isolate* isolate);
   static Callable Call(Isolate* isolate,
@@ -135,6 +146,7 @@
       Isolate* isolate, ConvertReceiverMode mode = ConvertReceiverMode::kAny);
   static Callable Construct(Isolate* isolate);
   static Callable ConstructFunction(Isolate* isolate);
+  static Callable HasProperty(Isolate* isolate);
 
   static Callable InterpreterPushArgsAndCall(Isolate* isolate,
                                              TailCallMode tail_call_mode);
diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc
new file mode 100644
index 0000000..3e26b52
--- /dev/null
+++ b/src/code-stub-assembler.cc
@@ -0,0 +1,1572 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/code-stub-assembler.h"
+#include "src/code-factory.h"
+
+namespace v8 {
+namespace internal {
+
+using compiler::Node;
+
+CodeStubAssembler::CodeStubAssembler(Isolate* isolate, Zone* zone,
+                                     const CallInterfaceDescriptor& descriptor,
+                                     Code::Flags flags, const char* name,
+                                     size_t result_size)
+    : compiler::CodeAssembler(isolate, zone, descriptor, flags, name,
+                              result_size) {}
+
+CodeStubAssembler::CodeStubAssembler(Isolate* isolate, Zone* zone,
+                                     int parameter_count, Code::Flags flags,
+                                     const char* name)
+    : compiler::CodeAssembler(isolate, zone, parameter_count, flags, name) {}
+
+Node* CodeStubAssembler::BooleanMapConstant() {
+  return HeapConstant(isolate()->factory()->boolean_map());
+}
+
+Node* CodeStubAssembler::EmptyStringConstant() {
+  return LoadRoot(Heap::kempty_stringRootIndex);
+}
+
+Node* CodeStubAssembler::HeapNumberMapConstant() {
+  return HeapConstant(isolate()->factory()->heap_number_map());
+}
+
+Node* CodeStubAssembler::NoContextConstant() {
+  return SmiConstant(Smi::FromInt(0));
+}
+
+Node* CodeStubAssembler::NullConstant() {
+  return LoadRoot(Heap::kNullValueRootIndex);
+}
+
+Node* CodeStubAssembler::UndefinedConstant() {
+  return LoadRoot(Heap::kUndefinedValueRootIndex);
+}
+
+Node* CodeStubAssembler::StaleRegisterConstant() {
+  return LoadRoot(Heap::kStaleRegisterRootIndex);
+}
+
+Node* CodeStubAssembler::Float64Round(Node* x) {
+  Node* one = Float64Constant(1.0);
+  Node* one_half = Float64Constant(0.5);
+
+  Variable var_x(this, MachineRepresentation::kFloat64);
+  Label return_x(this);
+
+  // Round up {x} towards Infinity.
+  var_x.Bind(Float64Ceil(x));
+
+  GotoIf(Float64LessThanOrEqual(Float64Sub(var_x.value(), one_half), x),
+         &return_x);
+  var_x.Bind(Float64Sub(var_x.value(), one));
+  Goto(&return_x);
+
+  Bind(&return_x);
+  return var_x.value();
+}
+
+Node* CodeStubAssembler::Float64Ceil(Node* x) {
+  if (IsFloat64RoundUpSupported()) {
+    return Float64RoundUp(x);
+  }
+
+  Node* one = Float64Constant(1.0);
+  Node* zero = Float64Constant(0.0);
+  Node* two_52 = Float64Constant(4503599627370496.0E0);
+  Node* minus_two_52 = Float64Constant(-4503599627370496.0E0);
+
+  Variable var_x(this, MachineRepresentation::kFloat64);
+  Label return_x(this), return_minus_x(this);
+  var_x.Bind(x);
+
+  // Check if {x} is greater than zero.
+  Label if_xgreaterthanzero(this), if_xnotgreaterthanzero(this);
+  Branch(Float64GreaterThan(x, zero), &if_xgreaterthanzero,
+         &if_xnotgreaterthanzero);
+
+  Bind(&if_xgreaterthanzero);
+  {
+    // Just return {x} unless it's in the range ]0,2^52[.
+    GotoIf(Float64GreaterThanOrEqual(x, two_52), &return_x);
+
+    // Round positive {x} towards Infinity.
+    var_x.Bind(Float64Sub(Float64Add(two_52, x), two_52));
+    GotoUnless(Float64LessThan(var_x.value(), x), &return_x);
+    var_x.Bind(Float64Add(var_x.value(), one));
+    Goto(&return_x);
+  }
+
+  Bind(&if_xnotgreaterthanzero);
+  {
+    // Just return {x} unless it's in the range ]-2^52,0[
+    GotoIf(Float64LessThanOrEqual(x, minus_two_52), &return_x);
+    GotoUnless(Float64LessThan(x, zero), &return_x);
+
+    // Round negated {x} towards Infinity and return the result negated.
+    Node* minus_x = Float64Neg(x);
+    var_x.Bind(Float64Sub(Float64Add(two_52, minus_x), two_52));
+    GotoUnless(Float64GreaterThan(var_x.value(), minus_x), &return_minus_x);
+    var_x.Bind(Float64Sub(var_x.value(), one));
+    Goto(&return_minus_x);
+  }
+
+  Bind(&return_minus_x);
+  var_x.Bind(Float64Neg(var_x.value()));
+  Goto(&return_x);
+
+  Bind(&return_x);
+  return var_x.value();
+}
+
+Node* CodeStubAssembler::Float64Floor(Node* x) {
+  if (IsFloat64RoundDownSupported()) {
+    return Float64RoundDown(x);
+  }
+
+  Node* one = Float64Constant(1.0);
+  Node* zero = Float64Constant(0.0);
+  Node* two_52 = Float64Constant(4503599627370496.0E0);
+  Node* minus_two_52 = Float64Constant(-4503599627370496.0E0);
+
+  Variable var_x(this, MachineRepresentation::kFloat64);
+  Label return_x(this), return_minus_x(this);
+  var_x.Bind(x);
+
+  // Check if {x} is greater than zero.
+  Label if_xgreaterthanzero(this), if_xnotgreaterthanzero(this);
+  Branch(Float64GreaterThan(x, zero), &if_xgreaterthanzero,
+         &if_xnotgreaterthanzero);
+
+  Bind(&if_xgreaterthanzero);
+  {
+    // Just return {x} unless it's in the range ]0,2^52[.
+    GotoIf(Float64GreaterThanOrEqual(x, two_52), &return_x);
+
+    // Round positive {x} towards -Infinity.
+    var_x.Bind(Float64Sub(Float64Add(two_52, x), two_52));
+    GotoUnless(Float64GreaterThan(var_x.value(), x), &return_x);
+    var_x.Bind(Float64Sub(var_x.value(), one));
+    Goto(&return_x);
+  }
+
+  Bind(&if_xnotgreaterthanzero);
+  {
+    // Just return {x} unless it's in the range ]-2^52,0[
+    GotoIf(Float64LessThanOrEqual(x, minus_two_52), &return_x);
+    GotoUnless(Float64LessThan(x, zero), &return_x);
+
+    // Round negated {x} towards -Infinity and return the result negated.
+    Node* minus_x = Float64Neg(x);
+    var_x.Bind(Float64Sub(Float64Add(two_52, minus_x), two_52));
+    GotoUnless(Float64LessThan(var_x.value(), minus_x), &return_minus_x);
+    var_x.Bind(Float64Add(var_x.value(), one));
+    Goto(&return_minus_x);
+  }
+
+  Bind(&return_minus_x);
+  var_x.Bind(Float64Neg(var_x.value()));
+  Goto(&return_x);
+
+  Bind(&return_x);
+  return var_x.value();
+}
+
+Node* CodeStubAssembler::Float64Trunc(Node* x) {
+  if (IsFloat64RoundTruncateSupported()) {
+    return Float64RoundTruncate(x);
+  }
+
+  Node* one = Float64Constant(1.0);
+  Node* zero = Float64Constant(0.0);
+  Node* two_52 = Float64Constant(4503599627370496.0E0);
+  Node* minus_two_52 = Float64Constant(-4503599627370496.0E0);
+
+  Variable var_x(this, MachineRepresentation::kFloat64);
+  Label return_x(this), return_minus_x(this);
+  var_x.Bind(x);
+
+  // Check if {x} is greater than 0.
+  Label if_xgreaterthanzero(this), if_xnotgreaterthanzero(this);
+  Branch(Float64GreaterThan(x, zero), &if_xgreaterthanzero,
+         &if_xnotgreaterthanzero);
+
+  Bind(&if_xgreaterthanzero);
+  {
+    if (IsFloat64RoundDownSupported()) {
+      var_x.Bind(Float64RoundDown(x));
+    } else {
+      // Just return {x} unless it's in the range ]0,2^52[.
+      GotoIf(Float64GreaterThanOrEqual(x, two_52), &return_x);
+
+      // Round positive {x} towards -Infinity.
+      var_x.Bind(Float64Sub(Float64Add(two_52, x), two_52));
+      GotoUnless(Float64GreaterThan(var_x.value(), x), &return_x);
+      var_x.Bind(Float64Sub(var_x.value(), one));
+    }
+    Goto(&return_x);
+  }
+
+  Bind(&if_xnotgreaterthanzero);
+  {
+    if (IsFloat64RoundUpSupported()) {
+      var_x.Bind(Float64RoundUp(x));
+      Goto(&return_x);
+    } else {
+      // Just return {x} unless its in the range ]-2^52,0[.
+      GotoIf(Float64LessThanOrEqual(x, minus_two_52), &return_x);
+      GotoUnless(Float64LessThan(x, zero), &return_x);
+
+      // Round negated {x} towards -Infinity and return result negated.
+      Node* minus_x = Float64Neg(x);
+      var_x.Bind(Float64Sub(Float64Add(two_52, minus_x), two_52));
+      GotoUnless(Float64GreaterThan(var_x.value(), minus_x), &return_minus_x);
+      var_x.Bind(Float64Sub(var_x.value(), one));
+      Goto(&return_minus_x);
+    }
+  }
+
+  Bind(&return_minus_x);
+  var_x.Bind(Float64Neg(var_x.value()));
+  Goto(&return_x);
+
+  Bind(&return_x);
+  return var_x.value();
+}
+
+Node* CodeStubAssembler::SmiFromWord32(Node* value) {
+  value = ChangeInt32ToIntPtr(value);
+  return WordShl(value, SmiShiftBitsConstant());
+}
+
+Node* CodeStubAssembler::SmiTag(Node* value) {
+  int32_t constant_value;
+  if (ToInt32Constant(value, constant_value) && Smi::IsValid(constant_value)) {
+    return SmiConstant(Smi::FromInt(constant_value));
+  }
+  return WordShl(value, SmiShiftBitsConstant());
+}
+
+Node* CodeStubAssembler::SmiUntag(Node* value) {
+  return WordSar(value, SmiShiftBitsConstant());
+}
+
+Node* CodeStubAssembler::SmiToWord32(Node* value) {
+  Node* result = WordSar(value, SmiShiftBitsConstant());
+  if (Is64()) {
+    result = TruncateInt64ToInt32(result);
+  }
+  return result;
+}
+
+Node* CodeStubAssembler::SmiToFloat64(Node* value) {
+  return ChangeInt32ToFloat64(SmiToWord32(value));
+}
+
+Node* CodeStubAssembler::SmiAdd(Node* a, Node* b) { return IntPtrAdd(a, b); }
+
+Node* CodeStubAssembler::SmiAddWithOverflow(Node* a, Node* b) {
+  return IntPtrAddWithOverflow(a, b);
+}
+
+Node* CodeStubAssembler::SmiSub(Node* a, Node* b) { return IntPtrSub(a, b); }
+
+Node* CodeStubAssembler::SmiSubWithOverflow(Node* a, Node* b) {
+  return IntPtrSubWithOverflow(a, b);
+}
+
+Node* CodeStubAssembler::SmiEqual(Node* a, Node* b) { return WordEqual(a, b); }
+
+Node* CodeStubAssembler::SmiAboveOrEqual(Node* a, Node* b) {
+  return UintPtrGreaterThanOrEqual(a, b);
+}
+
+Node* CodeStubAssembler::SmiLessThan(Node* a, Node* b) {
+  return IntPtrLessThan(a, b);
+}
+
+Node* CodeStubAssembler::SmiLessThanOrEqual(Node* a, Node* b) {
+  return IntPtrLessThanOrEqual(a, b);
+}
+
+Node* CodeStubAssembler::SmiMin(Node* a, Node* b) {
+  // TODO(bmeurer): Consider using Select once available.
+  Variable min(this, MachineRepresentation::kTagged);
+  Label if_a(this), if_b(this), join(this);
+  BranchIfSmiLessThan(a, b, &if_a, &if_b);
+  Bind(&if_a);
+  min.Bind(a);
+  Goto(&join);
+  Bind(&if_b);
+  min.Bind(b);
+  Goto(&join);
+  Bind(&join);
+  return min.value();
+}
+
+Node* CodeStubAssembler::WordIsSmi(Node* a) {
+  return WordEqual(WordAnd(a, IntPtrConstant(kSmiTagMask)), IntPtrConstant(0));
+}
+
+Node* CodeStubAssembler::WordIsPositiveSmi(Node* a) {
+  return WordEqual(WordAnd(a, IntPtrConstant(kSmiTagMask | kSmiSignMask)),
+                   IntPtrConstant(0));
+}
+
+Node* CodeStubAssembler::AllocateRawUnaligned(Node* size_in_bytes,
+                                              AllocationFlags flags,
+                                              Node* top_address,
+                                              Node* limit_address) {
+  Node* top = Load(MachineType::Pointer(), top_address);
+  Node* limit = Load(MachineType::Pointer(), limit_address);
+
+  // If there's not enough space, call the runtime.
+  Variable result(this, MachineRepresentation::kTagged);
+  Label runtime_call(this, Label::kDeferred), no_runtime_call(this);
+  Label merge_runtime(this, &result);
+
+  Node* new_top = IntPtrAdd(top, size_in_bytes);
+  Branch(UintPtrGreaterThanOrEqual(new_top, limit), &runtime_call,
+         &no_runtime_call);
+
+  Bind(&runtime_call);
+  // AllocateInTargetSpace does not use the context.
+  Node* context = SmiConstant(Smi::FromInt(0));
+
+  Node* runtime_result;
+  if (flags & kPretenured) {
+    Node* runtime_flags = SmiConstant(
+        Smi::FromInt(AllocateDoubleAlignFlag::encode(false) |
+                     AllocateTargetSpace::encode(AllocationSpace::OLD_SPACE)));
+    runtime_result = CallRuntime(Runtime::kAllocateInTargetSpace, context,
+                                 SmiTag(size_in_bytes), runtime_flags);
+  } else {
+    runtime_result = CallRuntime(Runtime::kAllocateInNewSpace, context,
+                                 SmiTag(size_in_bytes));
+  }
+  result.Bind(runtime_result);
+  Goto(&merge_runtime);
+
+  // When there is enough space, return `top' and bump it up.
+  Bind(&no_runtime_call);
+  Node* no_runtime_result = top;
+  StoreNoWriteBarrier(MachineType::PointerRepresentation(), top_address,
+                      new_top);
+  no_runtime_result = BitcastWordToTagged(
+      IntPtrAdd(no_runtime_result, IntPtrConstant(kHeapObjectTag)));
+  result.Bind(no_runtime_result);
+  Goto(&merge_runtime);
+
+  Bind(&merge_runtime);
+  return result.value();
+}
+
+Node* CodeStubAssembler::AllocateRawAligned(Node* size_in_bytes,
+                                            AllocationFlags flags,
+                                            Node* top_address,
+                                            Node* limit_address) {
+  Node* top = Load(MachineType::Pointer(), top_address);
+  Node* limit = Load(MachineType::Pointer(), limit_address);
+  Variable adjusted_size(this, MachineType::PointerRepresentation());
+  adjusted_size.Bind(size_in_bytes);
+  if (flags & kDoubleAlignment) {
+    // TODO(epertoso): Simd128 alignment.
+    Label aligned(this), not_aligned(this), merge(this, &adjusted_size);
+    Branch(WordAnd(top, IntPtrConstant(kDoubleAlignmentMask)), &not_aligned,
+           &aligned);
+
+    Bind(&not_aligned);
+    Node* not_aligned_size =
+        IntPtrAdd(size_in_bytes, IntPtrConstant(kPointerSize));
+    adjusted_size.Bind(not_aligned_size);
+    Goto(&merge);
+
+    Bind(&aligned);
+    Goto(&merge);
+
+    Bind(&merge);
+  }
+
+  Variable address(this, MachineRepresentation::kTagged);
+  address.Bind(AllocateRawUnaligned(adjusted_size.value(), kNone, top, limit));
+
+  Label needs_filler(this), doesnt_need_filler(this),
+      merge_address(this, &address);
+  Branch(IntPtrEqual(adjusted_size.value(), size_in_bytes), &doesnt_need_filler,
+         &needs_filler);
+
+  Bind(&needs_filler);
+  // Store a filler and increase the address by kPointerSize.
+  // TODO(epertoso): this code assumes that we only align to kDoubleSize. Change
+  // it when Simd128 alignment is supported.
+  StoreNoWriteBarrier(MachineType::PointerRepresentation(), top,
+                      LoadRoot(Heap::kOnePointerFillerMapRootIndex));
+  address.Bind(BitcastWordToTagged(
+      IntPtrAdd(address.value(), IntPtrConstant(kPointerSize))));
+  Goto(&merge_address);
+
+  Bind(&doesnt_need_filler);
+  Goto(&merge_address);
+
+  Bind(&merge_address);
+  // Update the top.
+  StoreNoWriteBarrier(MachineType::PointerRepresentation(), top_address,
+                      IntPtrAdd(top, adjusted_size.value()));
+  return address.value();
+}
+
+Node* CodeStubAssembler::Allocate(Node* size_in_bytes, AllocationFlags flags) {
+  bool const new_space = !(flags & kPretenured);
+  Node* top_address = ExternalConstant(
+      new_space
+          ? ExternalReference::new_space_allocation_top_address(isolate())
+          : ExternalReference::old_space_allocation_top_address(isolate()));
+  Node* limit_address = ExternalConstant(
+      new_space
+          ? ExternalReference::new_space_allocation_limit_address(isolate())
+          : ExternalReference::old_space_allocation_limit_address(isolate()));
+
+#ifdef V8_HOST_ARCH_32_BIT
+  if (flags & kDoubleAlignment) {
+    return AllocateRawAligned(size_in_bytes, flags, top_address, limit_address);
+  }
+#endif
+
+  return AllocateRawUnaligned(size_in_bytes, flags, top_address, limit_address);
+}
+
+Node* CodeStubAssembler::Allocate(int size_in_bytes, AllocationFlags flags) {
+  return CodeStubAssembler::Allocate(IntPtrConstant(size_in_bytes), flags);
+}
+
+Node* CodeStubAssembler::InnerAllocate(Node* previous, Node* offset) {
+  return BitcastWordToTagged(IntPtrAdd(previous, offset));
+}
+
+Node* CodeStubAssembler::InnerAllocate(Node* previous, int offset) {
+  return InnerAllocate(previous, IntPtrConstant(offset));
+}
+
+Node* CodeStubAssembler::LoadBufferObject(Node* buffer, int offset,
+                                          MachineType rep) {
+  return Load(rep, buffer, IntPtrConstant(offset));
+}
+
+Node* CodeStubAssembler::LoadObjectField(Node* object, int offset,
+                                         MachineType rep) {
+  return Load(rep, object, IntPtrConstant(offset - kHeapObjectTag));
+}
+
+Node* CodeStubAssembler::LoadHeapNumberValue(Node* object) {
+  return Load(MachineType::Float64(), object,
+              IntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag));
+}
+
+Node* CodeStubAssembler::LoadMap(Node* object) {
+  return LoadObjectField(object, HeapObject::kMapOffset);
+}
+
+Node* CodeStubAssembler::LoadInstanceType(Node* object) {
+  return LoadMapInstanceType(LoadMap(object));
+}
+
+Node* CodeStubAssembler::LoadElements(Node* object) {
+  return LoadObjectField(object, JSObject::kElementsOffset);
+}
+
+Node* CodeStubAssembler::LoadFixedArrayBaseLength(Node* array) {
+  return LoadObjectField(array, FixedArrayBase::kLengthOffset);
+}
+
+Node* CodeStubAssembler::LoadMapBitField(Node* map) {
+  return Load(MachineType::Uint8(), map,
+              IntPtrConstant(Map::kBitFieldOffset - kHeapObjectTag));
+}
+
+Node* CodeStubAssembler::LoadMapBitField2(Node* map) {
+  return Load(MachineType::Uint8(), map,
+              IntPtrConstant(Map::kBitField2Offset - kHeapObjectTag));
+}
+
+Node* CodeStubAssembler::LoadMapBitField3(Node* map) {
+  return Load(MachineType::Uint32(), map,
+              IntPtrConstant(Map::kBitField3Offset - kHeapObjectTag));
+}
+
+Node* CodeStubAssembler::LoadMapInstanceType(Node* map) {
+  return Load(MachineType::Uint8(), map,
+              IntPtrConstant(Map::kInstanceTypeOffset - kHeapObjectTag));
+}
+
+Node* CodeStubAssembler::LoadMapDescriptors(Node* map) {
+  return LoadObjectField(map, Map::kDescriptorsOffset);
+}
+
+Node* CodeStubAssembler::LoadMapPrototype(Node* map) {
+  return LoadObjectField(map, Map::kPrototypeOffset);
+}
+
+Node* CodeStubAssembler::LoadNameHash(Node* name) {
+  return Load(MachineType::Uint32(), name,
+              IntPtrConstant(Name::kHashFieldOffset - kHeapObjectTag));
+}
+
+Node* CodeStubAssembler::AllocateUninitializedFixedArray(Node* length) {
+  Node* header_size = IntPtrConstant(FixedArray::kHeaderSize);
+  Node* data_size = WordShl(length, IntPtrConstant(kPointerSizeLog2));
+  Node* total_size = IntPtrAdd(data_size, header_size);
+
+  Node* result = Allocate(total_size, kNone);
+  StoreMapNoWriteBarrier(result, LoadRoot(Heap::kFixedArrayMapRootIndex));
+  StoreObjectFieldNoWriteBarrier(result, FixedArray::kLengthOffset,
+      SmiTag(length));
+
+  return result;
+}
+
+Node* CodeStubAssembler::LoadFixedArrayElement(Node* object, Node* index_node,
+                                               int additional_offset,
+                                               ParameterMode parameter_mode) {
+  int32_t header_size =
+      FixedArray::kHeaderSize + additional_offset - kHeapObjectTag;
+  Node* offset = ElementOffsetFromIndex(index_node, FAST_HOLEY_ELEMENTS,
+                                        parameter_mode, header_size);
+  return Load(MachineType::AnyTagged(), object, offset);
+}
+
+Node* CodeStubAssembler::LoadMapInstanceSize(Node* map) {
+  return Load(MachineType::Uint8(), map,
+              IntPtrConstant(Map::kInstanceSizeOffset - kHeapObjectTag));
+}
+
+Node* CodeStubAssembler::LoadNativeContext(Node* context) {
+  return LoadFixedArrayElement(context,
+                               Int32Constant(Context::NATIVE_CONTEXT_INDEX));
+}
+
+Node* CodeStubAssembler::LoadJSArrayElementsMap(ElementsKind kind,
+                                                Node* native_context) {
+  return LoadFixedArrayElement(native_context,
+                               Int32Constant(Context::ArrayMapIndex(kind)));
+}
+
+Node* CodeStubAssembler::StoreHeapNumberValue(Node* object, Node* value) {
+  return StoreNoWriteBarrier(
+      MachineRepresentation::kFloat64, object,
+      IntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag), value);
+}
+
+Node* CodeStubAssembler::StoreObjectField(
+    Node* object, int offset, Node* value) {
+  return Store(MachineRepresentation::kTagged, object,
+               IntPtrConstant(offset - kHeapObjectTag), value);
+}
+
+Node* CodeStubAssembler::StoreObjectFieldNoWriteBarrier(
+    Node* object, int offset, Node* value, MachineRepresentation rep) {
+  return StoreNoWriteBarrier(rep, object,
+                             IntPtrConstant(offset - kHeapObjectTag), value);
+}
+
+Node* CodeStubAssembler::StoreMapNoWriteBarrier(Node* object, Node* map) {
+  return StoreNoWriteBarrier(
+      MachineRepresentation::kTagged, object,
+      IntPtrConstant(HeapNumber::kMapOffset - kHeapObjectTag), map);
+}
+
+Node* CodeStubAssembler::StoreFixedArrayElement(Node* object, Node* index_node,
+                                                Node* value,
+                                                WriteBarrierMode barrier_mode,
+                                                ParameterMode parameter_mode) {
+  DCHECK(barrier_mode == SKIP_WRITE_BARRIER ||
+         barrier_mode == UPDATE_WRITE_BARRIER);
+  Node* offset =
+      ElementOffsetFromIndex(index_node, FAST_HOLEY_ELEMENTS, parameter_mode,
+                             FixedArray::kHeaderSize - kHeapObjectTag);
+  MachineRepresentation rep = MachineRepresentation::kTagged;
+  if (barrier_mode == SKIP_WRITE_BARRIER) {
+    return StoreNoWriteBarrier(rep, object, offset, value);
+  } else {
+    return Store(rep, object, offset, value);
+  }
+}
+
+Node* CodeStubAssembler::StoreFixedDoubleArrayElement(
+    Node* object, Node* index_node, Node* value, ParameterMode parameter_mode) {
+  Node* offset =
+      ElementOffsetFromIndex(index_node, FAST_DOUBLE_ELEMENTS, parameter_mode,
+                             FixedArray::kHeaderSize - kHeapObjectTag);
+  MachineRepresentation rep = MachineRepresentation::kFloat64;
+  return StoreNoWriteBarrier(rep, object, offset, value);
+}
+
+Node* CodeStubAssembler::AllocateHeapNumber() {
+  Node* result = Allocate(HeapNumber::kSize, kNone);
+  StoreMapNoWriteBarrier(result, HeapNumberMapConstant());
+  return result;
+}
+
+Node* CodeStubAssembler::AllocateHeapNumberWithValue(Node* value) {
+  Node* result = AllocateHeapNumber();
+  StoreHeapNumberValue(result, value);
+  return result;
+}
+
+Node* CodeStubAssembler::AllocateSeqOneByteString(int length) {
+  Node* result = Allocate(SeqOneByteString::SizeFor(length));
+  StoreMapNoWriteBarrier(result, LoadRoot(Heap::kOneByteStringMapRootIndex));
+  StoreObjectFieldNoWriteBarrier(result, SeqOneByteString::kLengthOffset,
+                                 SmiConstant(Smi::FromInt(length)));
+  StoreObjectFieldNoWriteBarrier(result, SeqOneByteString::kHashFieldSlot,
+                                 IntPtrConstant(String::kEmptyHashField));
+  return result;
+}
+
+Node* CodeStubAssembler::AllocateSeqTwoByteString(int length) {
+  Node* result = Allocate(SeqTwoByteString::SizeFor(length));
+  StoreMapNoWriteBarrier(result, LoadRoot(Heap::kStringMapRootIndex));
+  StoreObjectFieldNoWriteBarrier(result, SeqTwoByteString::kLengthOffset,
+                                 SmiConstant(Smi::FromInt(length)));
+  StoreObjectFieldNoWriteBarrier(result, SeqTwoByteString::kHashFieldSlot,
+                                 IntPtrConstant(String::kEmptyHashField));
+  return result;
+}
+
+Node* CodeStubAssembler::AllocateJSArray(ElementsKind kind, Node* array_map,
+                                         Node* capacity_node, Node* length_node,
+                                         compiler::Node* allocation_site,
+                                         ParameterMode mode) {
+  bool is_double = IsFastDoubleElementsKind(kind);
+  int base_size = JSArray::kSize + FixedArray::kHeaderSize;
+  int elements_offset = JSArray::kSize;
+
+  if (allocation_site != nullptr) {
+    base_size += AllocationMemento::kSize;
+    elements_offset += AllocationMemento::kSize;
+  }
+
+  int32_t capacity;
+  bool constant_capacity = ToInt32Constant(capacity_node, capacity);
+  Node* total_size =
+      ElementOffsetFromIndex(capacity_node, kind, mode, base_size);
+
+  // Allocate both array and elements object, and initialize the JSArray.
+  Heap* heap = isolate()->heap();
+  Node* array = Allocate(total_size);
+  StoreMapNoWriteBarrier(array, array_map);
+  Node* empty_properties =
+      HeapConstant(Handle<HeapObject>(heap->empty_fixed_array()));
+  StoreObjectFieldNoWriteBarrier(array, JSArray::kPropertiesOffset,
+                                 empty_properties);
+  StoreObjectFieldNoWriteBarrier(
+      array, JSArray::kLengthOffset,
+      mode == SMI_PARAMETERS ? length_node : SmiTag(length_node));
+
+  if (allocation_site != nullptr) {
+    InitializeAllocationMemento(array, JSArray::kSize, allocation_site);
+  }
+
+  // Setup elements object.
+  Node* elements = InnerAllocate(array, elements_offset);
+  StoreObjectFieldNoWriteBarrier(array, JSArray::kElementsOffset, elements);
+  Handle<Map> elements_map(is_double ? heap->fixed_double_array_map()
+                                     : heap->fixed_array_map());
+  StoreMapNoWriteBarrier(elements, HeapConstant(elements_map));
+  StoreObjectFieldNoWriteBarrier(
+      elements, FixedArray::kLengthOffset,
+      mode == SMI_PARAMETERS ? capacity_node : SmiTag(capacity_node));
+
+  int const first_element_offset = FixedArray::kHeaderSize - kHeapObjectTag;
+  Node* hole = HeapConstant(Handle<HeapObject>(heap->the_hole_value()));
+  Node* double_hole =
+      Is64() ? Int64Constant(kHoleNanInt64) : Int32Constant(kHoleNanLower32);
+  DCHECK_EQ(kHoleNanLower32, kHoleNanUpper32);
+  if (constant_capacity && capacity <= kElementLoopUnrollThreshold) {
+    for (int i = 0; i < capacity; ++i) {
+      if (is_double) {
+        Node* offset = ElementOffsetFromIndex(Int32Constant(i), kind, mode,
+                                              first_element_offset);
+        // Don't use doubles to store the hole double, since manipulating the
+        // signaling NaN used for the hole in C++, e.g. with bit_cast, will
+        // change its value on ia32 (the x87 stack is used to return values
+        // and stores to the stack silently clear the signalling bit).
+        //
+        // TODO(danno): When we have a Float32/Float64 wrapper class that
+        // preserves double bits during manipulation, remove this code/change
+        // this to an indexed Float64 store.
+        if (Is64()) {
+          StoreNoWriteBarrier(MachineRepresentation::kWord64, elements, offset,
+                              double_hole);
+        } else {
+          StoreNoWriteBarrier(MachineRepresentation::kWord32, elements, offset,
+                              double_hole);
+          offset = ElementOffsetFromIndex(Int32Constant(i), kind, mode,
+                                          first_element_offset + kPointerSize);
+          StoreNoWriteBarrier(MachineRepresentation::kWord32, elements, offset,
+                              double_hole);
+        }
+      } else {
+        StoreFixedArrayElement(elements, Int32Constant(i), hole,
+                               SKIP_WRITE_BARRIER);
+      }
+    }
+  } else {
+    // TODO(danno): Add a loop for initialization
+    UNIMPLEMENTED();
+  }
+
+  return array;
+}
+
+void CodeStubAssembler::InitializeAllocationMemento(
+    compiler::Node* base_allocation, int base_allocation_size,
+    compiler::Node* allocation_site) {
+  StoreObjectFieldNoWriteBarrier(
+      base_allocation, AllocationMemento::kMapOffset + base_allocation_size,
+      HeapConstant(Handle<Map>(isolate()->heap()->allocation_memento_map())));
+  StoreObjectFieldNoWriteBarrier(
+      base_allocation,
+      AllocationMemento::kAllocationSiteOffset + base_allocation_size,
+      allocation_site);
+  if (FLAG_allocation_site_pretenuring) {
+    Node* count = LoadObjectField(allocation_site,
+                                  AllocationSite::kPretenureCreateCountOffset);
+    Node* incremented_count = IntPtrAdd(count, SmiConstant(Smi::FromInt(1)));
+    StoreObjectFieldNoWriteBarrier(allocation_site,
+                                   AllocationSite::kPretenureCreateCountOffset,
+                                   incremented_count);
+  }
+}
+
+Node* CodeStubAssembler::TruncateTaggedToFloat64(Node* context, Node* value) {
+  // We might need to loop once due to ToNumber conversion.
+  Variable var_value(this, MachineRepresentation::kTagged),
+      var_result(this, MachineRepresentation::kFloat64);
+  Label loop(this, &var_value), done_loop(this, &var_result);
+  var_value.Bind(value);
+  Goto(&loop);
+  Bind(&loop);
+  {
+    // Load the current {value}.
+    value = var_value.value();
+
+    // Check if the {value} is a Smi or a HeapObject.
+    Label if_valueissmi(this), if_valueisnotsmi(this);
+    Branch(WordIsSmi(value), &if_valueissmi, &if_valueisnotsmi);
+
+    Bind(&if_valueissmi);
+    {
+      // Convert the Smi {value}.
+      var_result.Bind(SmiToFloat64(value));
+      Goto(&done_loop);
+    }
+
+    Bind(&if_valueisnotsmi);
+    {
+      // Check if {value} is a HeapNumber.
+      Label if_valueisheapnumber(this),
+          if_valueisnotheapnumber(this, Label::kDeferred);
+      Branch(WordEqual(LoadMap(value), HeapNumberMapConstant()),
+             &if_valueisheapnumber, &if_valueisnotheapnumber);
+
+      Bind(&if_valueisheapnumber);
+      {
+        // Load the floating point value.
+        var_result.Bind(LoadHeapNumberValue(value));
+        Goto(&done_loop);
+      }
+
+      Bind(&if_valueisnotheapnumber);
+      {
+        // Convert the {value} to a Number first.
+        Callable callable = CodeFactory::NonNumberToNumber(isolate());
+        var_value.Bind(CallStub(callable, context, value));
+        Goto(&loop);
+      }
+    }
+  }
+  Bind(&done_loop);
+  return var_result.value();
+}
+
+Node* CodeStubAssembler::TruncateTaggedToWord32(Node* context, Node* value) {
+  // We might need to loop once due to ToNumber conversion.
+  Variable var_value(this, MachineRepresentation::kTagged),
+      var_result(this, MachineRepresentation::kWord32);
+  Label loop(this, &var_value), done_loop(this, &var_result);
+  var_value.Bind(value);
+  Goto(&loop);
+  Bind(&loop);
+  {
+    // Load the current {value}.
+    value = var_value.value();
+
+    // Check if the {value} is a Smi or a HeapObject.
+    Label if_valueissmi(this), if_valueisnotsmi(this);
+    Branch(WordIsSmi(value), &if_valueissmi, &if_valueisnotsmi);
+
+    Bind(&if_valueissmi);
+    {
+      // Convert the Smi {value}.
+      var_result.Bind(SmiToWord32(value));
+      Goto(&done_loop);
+    }
+
+    Bind(&if_valueisnotsmi);
+    {
+      // Check if {value} is a HeapNumber.
+      Label if_valueisheapnumber(this),
+          if_valueisnotheapnumber(this, Label::kDeferred);
+      Branch(WordEqual(LoadMap(value), HeapNumberMapConstant()),
+             &if_valueisheapnumber, &if_valueisnotheapnumber);
+
+      Bind(&if_valueisheapnumber);
+      {
+        // Truncate the floating point value.
+        var_result.Bind(TruncateHeapNumberValueToWord32(value));
+        Goto(&done_loop);
+      }
+
+      Bind(&if_valueisnotheapnumber);
+      {
+        // Convert the {value} to a Number first.
+        Callable callable = CodeFactory::NonNumberToNumber(isolate());
+        var_value.Bind(CallStub(callable, context, value));
+        Goto(&loop);
+      }
+    }
+  }
+  Bind(&done_loop);
+  return var_result.value();
+}
+
+Node* CodeStubAssembler::TruncateHeapNumberValueToWord32(Node* object) {
+  Node* value = LoadHeapNumberValue(object);
+  return TruncateFloat64ToWord32(value);
+}
+
+Node* CodeStubAssembler::ChangeFloat64ToTagged(Node* value) {
+  Node* value32 = RoundFloat64ToInt32(value);
+  Node* value64 = ChangeInt32ToFloat64(value32);
+
+  Label if_valueisint32(this), if_valueisheapnumber(this), if_join(this);
+
+  Label if_valueisequal(this), if_valueisnotequal(this);
+  Branch(Float64Equal(value, value64), &if_valueisequal, &if_valueisnotequal);
+  Bind(&if_valueisequal);
+  {
+    GotoUnless(Word32Equal(value32, Int32Constant(0)), &if_valueisint32);
+    BranchIfInt32LessThan(Float64ExtractHighWord32(value), Int32Constant(0),
+                          &if_valueisheapnumber, &if_valueisint32);
+  }
+  Bind(&if_valueisnotequal);
+  Goto(&if_valueisheapnumber);
+
+  Variable var_result(this, MachineRepresentation::kTagged);
+  Bind(&if_valueisint32);
+  {
+    if (Is64()) {
+      Node* result = SmiTag(ChangeInt32ToInt64(value32));
+      var_result.Bind(result);
+      Goto(&if_join);
+    } else {
+      Node* pair = Int32AddWithOverflow(value32, value32);
+      Node* overflow = Projection(1, pair);
+      Label if_overflow(this, Label::kDeferred), if_notoverflow(this);
+      Branch(overflow, &if_overflow, &if_notoverflow);
+      Bind(&if_overflow);
+      Goto(&if_valueisheapnumber);
+      Bind(&if_notoverflow);
+      {
+        Node* result = Projection(0, pair);
+        var_result.Bind(result);
+        Goto(&if_join);
+      }
+    }
+  }
+  Bind(&if_valueisheapnumber);
+  {
+    Node* result = AllocateHeapNumberWithValue(value);
+    var_result.Bind(result);
+    Goto(&if_join);
+  }
+  Bind(&if_join);
+  return var_result.value();
+}
+
+Node* CodeStubAssembler::ChangeInt32ToTagged(Node* value) {
+  if (Is64()) {
+    return SmiTag(ChangeInt32ToInt64(value));
+  }
+  Variable var_result(this, MachineRepresentation::kTagged);
+  Node* pair = Int32AddWithOverflow(value, value);
+  Node* overflow = Projection(1, pair);
+  Label if_overflow(this, Label::kDeferred), if_notoverflow(this),
+      if_join(this);
+  Branch(overflow, &if_overflow, &if_notoverflow);
+  Bind(&if_overflow);
+  {
+    Node* value64 = ChangeInt32ToFloat64(value);
+    Node* result = AllocateHeapNumberWithValue(value64);
+    var_result.Bind(result);
+  }
+  Goto(&if_join);
+  Bind(&if_notoverflow);
+  {
+    Node* result = Projection(0, pair);
+    var_result.Bind(result);
+  }
+  Goto(&if_join);
+  Bind(&if_join);
+  return var_result.value();
+}
+
+Node* CodeStubAssembler::ChangeUint32ToTagged(Node* value) {
+  Label if_overflow(this, Label::kDeferred), if_not_overflow(this),
+      if_join(this);
+  Variable var_result(this, MachineRepresentation::kTagged);
+  // If {value} > 2^31 - 1, we need to store it in a HeapNumber.
+  Branch(Int32LessThan(value, Int32Constant(0)), &if_overflow,
+         &if_not_overflow);
+  Bind(&if_not_overflow);
+  {
+    if (Is64()) {
+      var_result.Bind(SmiTag(ChangeUint32ToUint64(value)));
+    } else {
+      // If tagging {value} results in an overflow, we need to use a HeapNumber
+      // to represent it.
+      Node* pair = Int32AddWithOverflow(value, value);
+      Node* overflow = Projection(1, pair);
+      GotoIf(overflow, &if_overflow);
+
+      Node* result = Projection(0, pair);
+      var_result.Bind(result);
+    }
+  }
+  Goto(&if_join);
+
+  Bind(&if_overflow);
+  {
+    Node* float64_value = ChangeUint32ToFloat64(value);
+    var_result.Bind(AllocateHeapNumberWithValue(float64_value));
+  }
+  Goto(&if_join);
+
+  Bind(&if_join);
+  return var_result.value();
+}
+
+Node* CodeStubAssembler::ToThisString(Node* context, Node* value,
+                                      char const* method_name) {
+  Variable var_value(this, MachineRepresentation::kTagged);
+  var_value.Bind(value);
+
+  // Check if the {value} is a Smi or a HeapObject.
+  Label if_valueissmi(this, Label::kDeferred), if_valueisnotsmi(this),
+      if_valueisstring(this);
+  Branch(WordIsSmi(value), &if_valueissmi, &if_valueisnotsmi);
+  Bind(&if_valueisnotsmi);
+  {
+    // Load the instance type of the {value}.
+    Node* value_instance_type = LoadInstanceType(value);
+
+    // Check if the {value} is already String.
+    Label if_valueisnotstring(this, Label::kDeferred);
+    Branch(
+        Int32LessThan(value_instance_type, Int32Constant(FIRST_NONSTRING_TYPE)),
+        &if_valueisstring, &if_valueisnotstring);
+    Bind(&if_valueisnotstring);
+    {
+      // Check if the {value} is null.
+      Label if_valueisnullorundefined(this, Label::kDeferred),
+          if_valueisnotnullorundefined(this, Label::kDeferred),
+          if_valueisnotnull(this, Label::kDeferred);
+      Branch(WordEqual(value, NullConstant()), &if_valueisnullorundefined,
+             &if_valueisnotnull);
+      Bind(&if_valueisnotnull);
+      {
+        // Check if the {value} is undefined.
+        Branch(WordEqual(value, UndefinedConstant()),
+               &if_valueisnullorundefined, &if_valueisnotnullorundefined);
+        Bind(&if_valueisnotnullorundefined);
+        {
+          // Convert the {value} to a String.
+          Callable callable = CodeFactory::ToString(isolate());
+          var_value.Bind(CallStub(callable, context, value));
+          Goto(&if_valueisstring);
+        }
+      }
+
+      Bind(&if_valueisnullorundefined);
+      {
+        // The {value} is either null or undefined.
+        CallRuntime(Runtime::kThrowCalledOnNullOrUndefined, context,
+                    HeapConstant(factory()->NewStringFromAsciiChecked(
+                        method_name, TENURED)));
+        Goto(&if_valueisstring);  // Never reached.
+      }
+    }
+  }
+  Bind(&if_valueissmi);
+  {
+    // The {value} is a Smi, convert it to a String.
+    Callable callable = CodeFactory::NumberToString(isolate());
+    var_value.Bind(CallStub(callable, context, value));
+    Goto(&if_valueisstring);
+  }
+  Bind(&if_valueisstring);
+  return var_value.value();
+}
+
+Node* CodeStubAssembler::StringCharCodeAt(Node* string, Node* index) {
+  // Translate the {index} into a Word.
+  index = SmiToWord(index);
+
+  // We may need to loop in case of cons or sliced strings.
+  Variable var_index(this, MachineType::PointerRepresentation());
+  Variable var_result(this, MachineRepresentation::kWord32);
+  Variable var_string(this, MachineRepresentation::kTagged);
+  Variable* loop_vars[] = {&var_index, &var_string};
+  Label done_loop(this, &var_result), loop(this, 2, loop_vars);
+  var_string.Bind(string);
+  var_index.Bind(index);
+  Goto(&loop);
+  Bind(&loop);
+  {
+    // Load the current {index}.
+    index = var_index.value();
+
+    // Load the current {string}.
+    string = var_string.value();
+
+    // Load the instance type of the {string}.
+    Node* string_instance_type = LoadInstanceType(string);
+
+    // Check if the {string} is a SeqString.
+    Label if_stringissequential(this), if_stringisnotsequential(this);
+    Branch(Word32Equal(Word32And(string_instance_type,
+                                 Int32Constant(kStringRepresentationMask)),
+                       Int32Constant(kSeqStringTag)),
+           &if_stringissequential, &if_stringisnotsequential);
+
+    Bind(&if_stringissequential);
+    {
+      // Check if the {string} is a TwoByteSeqString or a OneByteSeqString.
+      Label if_stringistwobyte(this), if_stringisonebyte(this);
+      Branch(Word32Equal(Word32And(string_instance_type,
+                                   Int32Constant(kStringEncodingMask)),
+                         Int32Constant(kTwoByteStringTag)),
+             &if_stringistwobyte, &if_stringisonebyte);
+
+      Bind(&if_stringisonebyte);
+      {
+        var_result.Bind(
+            Load(MachineType::Uint8(), string,
+                 IntPtrAdd(index, IntPtrConstant(SeqOneByteString::kHeaderSize -
+                                                 kHeapObjectTag))));
+        Goto(&done_loop);
+      }
+
+      Bind(&if_stringistwobyte);
+      {
+        var_result.Bind(
+            Load(MachineType::Uint16(), string,
+                 IntPtrAdd(WordShl(index, IntPtrConstant(1)),
+                           IntPtrConstant(SeqTwoByteString::kHeaderSize -
+                                          kHeapObjectTag))));
+        Goto(&done_loop);
+      }
+    }
+
+    Bind(&if_stringisnotsequential);
+    {
+      // Check if the {string} is a ConsString.
+      Label if_stringiscons(this), if_stringisnotcons(this);
+      Branch(Word32Equal(Word32And(string_instance_type,
+                                   Int32Constant(kStringRepresentationMask)),
+                         Int32Constant(kConsStringTag)),
+             &if_stringiscons, &if_stringisnotcons);
+
+      Bind(&if_stringiscons);
+      {
+        // Check whether the right hand side is the empty string (i.e. if
+        // this is really a flat string in a cons string). If that is not
+        // the case we flatten the string first.
+        Label if_rhsisempty(this), if_rhsisnotempty(this, Label::kDeferred);
+        Node* rhs = LoadObjectField(string, ConsString::kSecondOffset);
+        Branch(WordEqual(rhs, EmptyStringConstant()), &if_rhsisempty,
+               &if_rhsisnotempty);
+
+        Bind(&if_rhsisempty);
+        {
+          // Just operate on the left hand side of the {string}.
+          var_string.Bind(LoadObjectField(string, ConsString::kFirstOffset));
+          Goto(&loop);
+        }
+
+        Bind(&if_rhsisnotempty);
+        {
+          // Flatten the {string} and lookup in the resulting string.
+          var_string.Bind(CallRuntime(Runtime::kFlattenString,
+                                      NoContextConstant(), string));
+          Goto(&loop);
+        }
+      }
+
+      Bind(&if_stringisnotcons);
+      {
+        // Check if the {string} is an ExternalString.
+        Label if_stringisexternal(this), if_stringisnotexternal(this);
+        Branch(Word32Equal(Word32And(string_instance_type,
+                                     Int32Constant(kStringRepresentationMask)),
+                           Int32Constant(kExternalStringTag)),
+               &if_stringisexternal, &if_stringisnotexternal);
+
+        Bind(&if_stringisexternal);
+        {
+          // Check if the {string} is a short external string.
+          Label if_stringisshort(this),
+              if_stringisnotshort(this, Label::kDeferred);
+          Branch(Word32Equal(Word32And(string_instance_type,
+                                       Int32Constant(kShortExternalStringMask)),
+                             Int32Constant(0)),
+                 &if_stringisshort, &if_stringisnotshort);
+
+          Bind(&if_stringisshort);
+          {
+            // Load the actual resource data from the {string}.
+            Node* string_resource_data =
+                LoadObjectField(string, ExternalString::kResourceDataOffset,
+                                MachineType::Pointer());
+
+            // Check if the {string} is a TwoByteExternalString or a
+            // OneByteExternalString.
+            Label if_stringistwobyte(this), if_stringisonebyte(this);
+            Branch(Word32Equal(Word32And(string_instance_type,
+                                         Int32Constant(kStringEncodingMask)),
+                               Int32Constant(kTwoByteStringTag)),
+                   &if_stringistwobyte, &if_stringisonebyte);
+
+            Bind(&if_stringisonebyte);
+            {
+              var_result.Bind(
+                  Load(MachineType::Uint8(), string_resource_data, index));
+              Goto(&done_loop);
+            }
+
+            Bind(&if_stringistwobyte);
+            {
+              var_result.Bind(Load(MachineType::Uint16(), string_resource_data,
+                                   WordShl(index, IntPtrConstant(1))));
+              Goto(&done_loop);
+            }
+          }
+
+          Bind(&if_stringisnotshort);
+          {
+            // The {string} might be compressed, call the runtime.
+            var_result.Bind(SmiToWord32(
+                CallRuntime(Runtime::kExternalStringGetChar,
+                            NoContextConstant(), string, SmiTag(index))));
+            Goto(&done_loop);
+          }
+        }
+
+        Bind(&if_stringisnotexternal);
+        {
+          // The {string} is a SlicedString, continue with its parent.
+          Node* string_offset =
+              SmiToWord(LoadObjectField(string, SlicedString::kOffsetOffset));
+          Node* string_parent =
+              LoadObjectField(string, SlicedString::kParentOffset);
+          var_index.Bind(IntPtrAdd(index, string_offset));
+          var_string.Bind(string_parent);
+          Goto(&loop);
+        }
+      }
+    }
+  }
+
+  Bind(&done_loop);
+  return var_result.value();
+}
+
+Node* CodeStubAssembler::StringFromCharCode(Node* code) {
+  Variable var_result(this, MachineRepresentation::kTagged);
+
+  // Check if the {code} is a one-byte char code.
+  Label if_codeisonebyte(this), if_codeistwobyte(this, Label::kDeferred),
+      if_done(this);
+  Branch(Int32LessThanOrEqual(code, Int32Constant(String::kMaxOneByteCharCode)),
+         &if_codeisonebyte, &if_codeistwobyte);
+  Bind(&if_codeisonebyte);
+  {
+    // Load the isolate wide single character string cache.
+    Node* cache = LoadRoot(Heap::kSingleCharacterStringCacheRootIndex);
+
+    // Check if we have an entry for the {code} in the single character string
+    // cache already.
+    Label if_entryisundefined(this, Label::kDeferred),
+        if_entryisnotundefined(this);
+    Node* entry = LoadFixedArrayElement(cache, code);
+    Branch(WordEqual(entry, UndefinedConstant()), &if_entryisundefined,
+           &if_entryisnotundefined);
+
+    Bind(&if_entryisundefined);
+    {
+      // Allocate a new SeqOneByteString for {code} and store it in the {cache}.
+      Node* result = AllocateSeqOneByteString(1);
+      StoreNoWriteBarrier(
+          MachineRepresentation::kWord8, result,
+          IntPtrConstant(SeqOneByteString::kHeaderSize - kHeapObjectTag), code);
+      StoreFixedArrayElement(cache, code, result);
+      var_result.Bind(result);
+      Goto(&if_done);
+    }
+
+    Bind(&if_entryisnotundefined);
+    {
+      // Return the entry from the {cache}.
+      var_result.Bind(entry);
+      Goto(&if_done);
+    }
+  }
+
+  Bind(&if_codeistwobyte);
+  {
+    // Allocate a new SeqTwoByteString for {code}.
+    Node* result = AllocateSeqTwoByteString(1);
+    StoreNoWriteBarrier(
+        MachineRepresentation::kWord16, result,
+        IntPtrConstant(SeqTwoByteString::kHeaderSize - kHeapObjectTag), code);
+    var_result.Bind(result);
+    Goto(&if_done);
+  }
+
+  Bind(&if_done);
+  return var_result.value();
+}
+
+Node* CodeStubAssembler::BitFieldDecode(Node* word32, uint32_t shift,
+                                        uint32_t mask) {
+  return Word32Shr(Word32And(word32, Int32Constant(mask)),
+                   Int32Constant(shift));
+}
+
+void CodeStubAssembler::TryToName(Node* key, Label* if_keyisindex,
+                                  Variable* var_index, Label* if_keyisunique,
+                                  Label* call_runtime) {
+  DCHECK_EQ(MachineRepresentation::kWord32, var_index->rep());
+
+  Label if_keyissmi(this), if_keyisnotsmi(this);
+  Branch(WordIsSmi(key), &if_keyissmi, &if_keyisnotsmi);
+  Bind(&if_keyissmi);
+  {
+    // Negative smi keys are named properties. Handle in the runtime.
+    Label if_keyispositive(this);
+    Branch(WordIsPositiveSmi(key), &if_keyispositive, call_runtime);
+    Bind(&if_keyispositive);
+
+    var_index->Bind(SmiToWord32(key));
+    Goto(if_keyisindex);
+  }
+
+  Bind(&if_keyisnotsmi);
+
+  Node* key_instance_type = LoadInstanceType(key);
+  Label if_keyisnotsymbol(this);
+  Branch(Word32Equal(key_instance_type, Int32Constant(SYMBOL_TYPE)),
+         if_keyisunique, &if_keyisnotsymbol);
+  Bind(&if_keyisnotsymbol);
+  {
+    Label if_keyisinternalized(this);
+    Node* bits =
+        WordAnd(key_instance_type,
+                Int32Constant(kIsNotStringMask | kIsNotInternalizedMask));
+    Branch(Word32Equal(bits, Int32Constant(kStringTag | kInternalizedTag)),
+           &if_keyisinternalized, call_runtime);
+    Bind(&if_keyisinternalized);
+
+    // Check whether the key is an array index passed in as string. Handle
+    // uniform with smi keys if so.
+    // TODO(verwaest): Also support non-internalized strings.
+    Node* hash = LoadNameHash(key);
+    Node* bit =
+        Word32And(hash, Int32Constant(internal::Name::kIsNotArrayIndexMask));
+    Label if_isarrayindex(this);
+    Branch(Word32Equal(bit, Int32Constant(0)), &if_isarrayindex,
+           if_keyisunique);
+    Bind(&if_isarrayindex);
+    var_index->Bind(BitFieldDecode<internal::Name::ArrayIndexValueBits>(hash));
+    Goto(if_keyisindex);
+  }
+}
+
+void CodeStubAssembler::TryLookupProperty(Node* object, Node* map,
+                                          Node* instance_type, Node* name,
+                                          Label* if_found, Label* if_not_found,
+                                          Label* call_runtime) {
+  {
+    Label if_objectissimple(this);
+    Branch(Int32LessThanOrEqual(instance_type,
+                                Int32Constant(LAST_SPECIAL_RECEIVER_TYPE)),
+           call_runtime, &if_objectissimple);
+    Bind(&if_objectissimple);
+  }
+
+  // TODO(verwaest): Perform a dictonary lookup on slow-mode receivers.
+  Node* bit_field3 = LoadMapBitField3(map);
+  Node* bit = BitFieldDecode<Map::DictionaryMap>(bit_field3);
+  Label if_isfastmap(this);
+  Branch(Word32Equal(bit, Int32Constant(0)), &if_isfastmap, call_runtime);
+  Bind(&if_isfastmap);
+  Node* nof = BitFieldDecode<Map::NumberOfOwnDescriptorsBits>(bit_field3);
+  // Bail out to the runtime for large numbers of own descriptors. The stub only
+  // does linear search, which becomes too expensive in that case.
+  {
+    static const int32_t kMaxLinear = 210;
+    Label above_max(this), below_max(this);
+    Branch(Int32LessThanOrEqual(nof, Int32Constant(kMaxLinear)), &below_max,
+           call_runtime);
+    Bind(&below_max);
+  }
+  Node* descriptors = LoadMapDescriptors(map);
+
+  Variable var_descriptor(this, MachineRepresentation::kWord32);
+  Label loop(this, &var_descriptor);
+  var_descriptor.Bind(Int32Constant(0));
+  Goto(&loop);
+  Bind(&loop);
+  {
+    Node* index = var_descriptor.value();
+    Node* offset = Int32Constant(DescriptorArray::ToKeyIndex(0));
+    Node* factor = Int32Constant(DescriptorArray::kDescriptorSize);
+    Label if_notdone(this);
+    Branch(Word32Equal(index, nof), if_not_found, &if_notdone);
+    Bind(&if_notdone);
+    {
+      Node* array_index = Int32Add(offset, Int32Mul(index, factor));
+      Node* current = LoadFixedArrayElement(descriptors, array_index);
+      Label if_unequal(this);
+      Branch(WordEqual(current, name), if_found, &if_unequal);
+      Bind(&if_unequal);
+
+      var_descriptor.Bind(Int32Add(index, Int32Constant(1)));
+      Goto(&loop);
+    }
+  }
+}
+
+void CodeStubAssembler::TryLookupElement(Node* object, Node* map,
+                                         Node* instance_type, Node* index,
+                                         Label* if_found, Label* if_not_found,
+                                         Label* call_runtime) {
+  {
+    Label if_objectissimple(this);
+    Branch(Int32LessThanOrEqual(instance_type,
+                                Int32Constant(LAST_CUSTOM_ELEMENTS_RECEIVER)),
+           call_runtime, &if_objectissimple);
+    Bind(&if_objectissimple);
+  }
+
+  Node* bit_field2 = LoadMapBitField2(map);
+  Node* elements_kind = BitFieldDecode<Map::ElementsKindBits>(bit_field2);
+
+  // TODO(verwaest): Support other elements kinds as well.
+  Label if_isobjectorsmi(this);
+  Branch(
+      Int32LessThanOrEqual(elements_kind, Int32Constant(FAST_HOLEY_ELEMENTS)),
+      &if_isobjectorsmi, call_runtime);
+  Bind(&if_isobjectorsmi);
+  {
+    Node* elements = LoadElements(object);
+    Node* length = LoadFixedArrayBaseLength(elements);
+
+    Label if_iskeyinrange(this);
+    Branch(Int32LessThan(index, SmiToWord32(length)), &if_iskeyinrange,
+           if_not_found);
+
+    Bind(&if_iskeyinrange);
+    Node* element = LoadFixedArrayElement(elements, index);
+    Node* the_hole = LoadRoot(Heap::kTheHoleValueRootIndex);
+    Branch(WordEqual(element, the_hole), if_not_found, if_found);
+  }
+}
+
+Node* CodeStubAssembler::OrdinaryHasInstance(Node* context, Node* callable,
+                                             Node* object) {
+  Variable var_result(this, MachineRepresentation::kTagged);
+  Label return_false(this), return_true(this),
+      return_runtime(this, Label::kDeferred), return_result(this);
+
+  // Goto runtime if {object} is a Smi.
+  GotoIf(WordIsSmi(object), &return_runtime);
+
+  // Load map of {object}.
+  Node* object_map = LoadMap(object);
+
+  // Lookup the {callable} and {object} map in the global instanceof cache.
+  // Note: This is safe because we clear the global instanceof cache whenever
+  // we change the prototype of any object.
+  Node* instanceof_cache_function =
+      LoadRoot(Heap::kInstanceofCacheFunctionRootIndex);
+  Node* instanceof_cache_map = LoadRoot(Heap::kInstanceofCacheMapRootIndex);
+  {
+    Label instanceof_cache_miss(this);
+    GotoUnless(WordEqual(instanceof_cache_function, callable),
+               &instanceof_cache_miss);
+    GotoUnless(WordEqual(instanceof_cache_map, object_map),
+               &instanceof_cache_miss);
+    var_result.Bind(LoadRoot(Heap::kInstanceofCacheAnswerRootIndex));
+    Goto(&return_result);
+    Bind(&instanceof_cache_miss);
+  }
+
+  // Goto runtime if {callable} is a Smi.
+  GotoIf(WordIsSmi(callable), &return_runtime);
+
+  // Load map of {callable}.
+  Node* callable_map = LoadMap(callable);
+
+  // Goto runtime if {callable} is not a JSFunction.
+  Node* callable_instance_type = LoadMapInstanceType(callable_map);
+  GotoUnless(
+      Word32Equal(callable_instance_type, Int32Constant(JS_FUNCTION_TYPE)),
+      &return_runtime);
+
+  // Goto runtime if {callable} is not a constructor or has
+  // a non-instance "prototype".
+  Node* callable_bitfield = LoadMapBitField(callable_map);
+  GotoUnless(
+      Word32Equal(Word32And(callable_bitfield,
+                            Int32Constant((1 << Map::kHasNonInstancePrototype) |
+                                          (1 << Map::kIsConstructor))),
+                  Int32Constant(1 << Map::kIsConstructor)),
+      &return_runtime);
+
+  // Get the "prototype" (or initial map) of the {callable}.
+  Node* callable_prototype =
+      LoadObjectField(callable, JSFunction::kPrototypeOrInitialMapOffset);
+  {
+    Variable var_callable_prototype(this, MachineRepresentation::kTagged);
+    Label callable_prototype_valid(this);
+    var_callable_prototype.Bind(callable_prototype);
+
+    // Resolve the "prototype" if the {callable} has an initial map.  Afterwards
+    // the {callable_prototype} will be either the JSReceiver prototype object
+    // or the hole value, which means that no instances of the {callable} were
+    // created so far and hence we should return false.
+    Node* callable_prototype_instance_type =
+        LoadInstanceType(callable_prototype);
+    GotoUnless(
+        Word32Equal(callable_prototype_instance_type, Int32Constant(MAP_TYPE)),
+        &callable_prototype_valid);
+    var_callable_prototype.Bind(
+        LoadObjectField(callable_prototype, Map::kPrototypeOffset));
+    Goto(&callable_prototype_valid);
+    Bind(&callable_prototype_valid);
+    callable_prototype = var_callable_prototype.value();
+  }
+
+  // Update the global instanceof cache with the current {object} map and
+  // {callable}.  The cached answer will be set when it is known below.
+  StoreRoot(Heap::kInstanceofCacheFunctionRootIndex, callable);
+  StoreRoot(Heap::kInstanceofCacheMapRootIndex, object_map);
+
+  // Loop through the prototype chain looking for the {callable} prototype.
+  Variable var_object_map(this, MachineRepresentation::kTagged);
+  var_object_map.Bind(object_map);
+  Label loop(this, &var_object_map);
+  Goto(&loop);
+  Bind(&loop);
+  {
+    Node* object_map = var_object_map.value();
+
+    // Check if the current {object} needs to be access checked.
+    Node* object_bitfield = LoadMapBitField(object_map);
+    GotoUnless(
+        Word32Equal(Word32And(object_bitfield,
+                              Int32Constant(1 << Map::kIsAccessCheckNeeded)),
+                    Int32Constant(0)),
+        &return_runtime);
+
+    // Check if the current {object} is a proxy.
+    Node* object_instance_type = LoadMapInstanceType(object_map);
+    GotoIf(Word32Equal(object_instance_type, Int32Constant(JS_PROXY_TYPE)),
+           &return_runtime);
+
+    // Check the current {object} prototype.
+    Node* object_prototype = LoadMapPrototype(object_map);
+    GotoIf(WordEqual(object_prototype, callable_prototype), &return_true);
+    GotoIf(WordEqual(object_prototype, NullConstant()), &return_false);
+
+    // Continue with the prototype.
+    var_object_map.Bind(LoadMap(object_prototype));
+    Goto(&loop);
+  }
+
+  Bind(&return_true);
+  StoreRoot(Heap::kInstanceofCacheAnswerRootIndex, BooleanConstant(true));
+  var_result.Bind(BooleanConstant(true));
+  Goto(&return_result);
+
+  Bind(&return_false);
+  StoreRoot(Heap::kInstanceofCacheAnswerRootIndex, BooleanConstant(false));
+  var_result.Bind(BooleanConstant(false));
+  Goto(&return_result);
+
+  Bind(&return_runtime);
+  {
+    // Invalidate the global instanceof cache.
+    StoreRoot(Heap::kInstanceofCacheFunctionRootIndex, SmiConstant(0));
+    // Fallback to the runtime implementation.
+    var_result.Bind(
+        CallRuntime(Runtime::kOrdinaryHasInstance, context, callable, object));
+  }
+  Goto(&return_result);
+
+  Bind(&return_result);
+  return var_result.value();
+}
+
+compiler::Node* CodeStubAssembler::ElementOffsetFromIndex(Node* index_node,
+                                                          ElementsKind kind,
+                                                          ParameterMode mode,
+                                                          int base_size) {
+  bool is_double = IsFastDoubleElementsKind(kind);
+  int element_size_shift = is_double ? kDoubleSizeLog2 : kPointerSizeLog2;
+  int element_size = 1 << element_size_shift;
+  int const kSmiShiftBits = kSmiShiftSize + kSmiTagSize;
+  int32_t index = 0;
+  bool constant_index = false;
+  if (mode == SMI_PARAMETERS) {
+    element_size_shift -= kSmiShiftBits;
+    intptr_t temp = 0;
+    constant_index = ToIntPtrConstant(index_node, temp);
+    index = temp >> kSmiShiftBits;
+  } else {
+    constant_index = ToInt32Constant(index_node, index);
+  }
+  if (constant_index) {
+    return IntPtrConstant(base_size + element_size * index);
+  }
+  if (Is64() && mode == INTEGER_PARAMETERS) {
+    index_node = ChangeInt32ToInt64(index_node);
+  }
+  if (base_size == 0) {
+    return (element_size_shift >= 0)
+               ? WordShl(index_node, IntPtrConstant(element_size_shift))
+               : WordShr(index_node, IntPtrConstant(-element_size_shift));
+  }
+  return IntPtrAdd(
+      IntPtrConstant(base_size),
+      (element_size_shift >= 0)
+          ? WordShl(index_node, IntPtrConstant(element_size_shift))
+          : WordShr(index_node, IntPtrConstant(-element_size_shift)));
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
new file mode 100644
index 0000000..891fd24
--- /dev/null
+++ b/src/code-stub-assembler.h
@@ -0,0 +1,264 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_CODE_STUB_ASSEMBLER_H_
+#define V8_CODE_STUB_ASSEMBLER_H_
+
+#include "src/compiler/code-assembler.h"
+#include "src/objects.h"
+
+namespace v8 {
+namespace internal {
+
+class CallInterfaceDescriptor;
+
+// Provides JavaScript-specific "macro-assembler" functionality on top of the
+// CodeAssembler. By factoring the JavaScript-isms out of the CodeAssembler,
+// it's possible to add JavaScript-specific useful CodeAssembler "macros"
+// without modifying files in the compiler directory (and requiring a review
+// from a compiler directory OWNER).
+class CodeStubAssembler : public compiler::CodeAssembler {
+ public:
+  // Create with CallStub linkage.
+  // |result_size| specifies the number of results returned by the stub.
+  // TODO(rmcilroy): move result_size to the CallInterfaceDescriptor.
+  CodeStubAssembler(Isolate* isolate, Zone* zone,
+                    const CallInterfaceDescriptor& descriptor,
+                    Code::Flags flags, const char* name,
+                    size_t result_size = 1);
+
+  // Create with JSCall linkage.
+  CodeStubAssembler(Isolate* isolate, Zone* zone, int parameter_count,
+                    Code::Flags flags, const char* name);
+
+  enum ParameterMode { INTEGER_PARAMETERS, SMI_PARAMETERS };
+
+  compiler::Node* BooleanMapConstant();
+  compiler::Node* EmptyStringConstant();
+  compiler::Node* HeapNumberMapConstant();
+  compiler::Node* NoContextConstant();
+  compiler::Node* NullConstant();
+  compiler::Node* UndefinedConstant();
+  compiler::Node* StaleRegisterConstant();
+
+  // Float64 operations.
+  compiler::Node* Float64Ceil(compiler::Node* x);
+  compiler::Node* Float64Floor(compiler::Node* x);
+  compiler::Node* Float64Round(compiler::Node* x);
+  compiler::Node* Float64Trunc(compiler::Node* x);
+
+  // Tag a Word as a Smi value.
+  compiler::Node* SmiTag(compiler::Node* value);
+  // Untag a Smi value as a Word.
+  compiler::Node* SmiUntag(compiler::Node* value);
+
+  // Smi conversions.
+  compiler::Node* SmiToFloat64(compiler::Node* value);
+  compiler::Node* SmiFromWord32(compiler::Node* value);
+  compiler::Node* SmiToWord(compiler::Node* value) { return SmiUntag(value); }
+  compiler::Node* SmiToWord32(compiler::Node* value);
+
+  // Smi operations.
+  compiler::Node* SmiAdd(compiler::Node* a, compiler::Node* b);
+  compiler::Node* SmiAddWithOverflow(compiler::Node* a, compiler::Node* b);
+  compiler::Node* SmiSub(compiler::Node* a, compiler::Node* b);
+  compiler::Node* SmiSubWithOverflow(compiler::Node* a, compiler::Node* b);
+  compiler::Node* SmiEqual(compiler::Node* a, compiler::Node* b);
+  compiler::Node* SmiAboveOrEqual(compiler::Node* a, compiler::Node* b);
+  compiler::Node* SmiLessThan(compiler::Node* a, compiler::Node* b);
+  compiler::Node* SmiLessThanOrEqual(compiler::Node* a, compiler::Node* b);
+  compiler::Node* SmiMin(compiler::Node* a, compiler::Node* b);
+
+  // Allocate an object of the given size.
+  compiler::Node* Allocate(compiler::Node* size, AllocationFlags flags = kNone);
+  compiler::Node* Allocate(int size, AllocationFlags flags = kNone);
+  compiler::Node* InnerAllocate(compiler::Node* previous, int offset);
+  compiler::Node* InnerAllocate(compiler::Node* previous,
+                                compiler::Node* offset);
+
+  // Check a value for smi-ness
+  compiler::Node* WordIsSmi(compiler::Node* a);
+  // Check that the value is a positive smi.
+  compiler::Node* WordIsPositiveSmi(compiler::Node* a);
+
+  void BranchIfSmiLessThan(compiler::Node* a, compiler::Node* b, Label* if_true,
+                           Label* if_false) {
+    BranchIf(SmiLessThan(a, b), if_true, if_false);
+  }
+
+  void BranchIfSmiLessThanOrEqual(compiler::Node* a, compiler::Node* b,
+                                  Label* if_true, Label* if_false) {
+    BranchIf(SmiLessThanOrEqual(a, b), if_true, if_false);
+  }
+
+  void BranchIfFloat64IsNaN(compiler::Node* value, Label* if_true,
+                            Label* if_false) {
+    BranchIfFloat64Equal(value, value, if_false, if_true);
+  }
+
+  // Load an object pointer from a buffer that isn't in the heap.
+  compiler::Node* LoadBufferObject(compiler::Node* buffer, int offset,
+                                   MachineType rep = MachineType::AnyTagged());
+  // Load a field from an object on the heap.
+  compiler::Node* LoadObjectField(compiler::Node* object, int offset,
+                                  MachineType rep = MachineType::AnyTagged());
+  // Load the floating point value of a HeapNumber.
+  compiler::Node* LoadHeapNumberValue(compiler::Node* object);
+  // Load the Map of an HeapObject.
+  compiler::Node* LoadMap(compiler::Node* object);
+  // Load the instance type of an HeapObject.
+  compiler::Node* LoadInstanceType(compiler::Node* object);
+  // Load the elements backing store of a JSObject.
+  compiler::Node* LoadElements(compiler::Node* object);
+  // Load the length of a fixed array base instance.
+  compiler::Node* LoadFixedArrayBaseLength(compiler::Node* array);
+  // Load the bit field of a Map.
+  compiler::Node* LoadMapBitField(compiler::Node* map);
+  // Load bit field 2 of a map.
+  compiler::Node* LoadMapBitField2(compiler::Node* map);
+  // Load bit field 3 of a map.
+  compiler::Node* LoadMapBitField3(compiler::Node* map);
+  // Load the instance type of a map.
+  compiler::Node* LoadMapInstanceType(compiler::Node* map);
+  // Load the instance descriptors of a map.
+  compiler::Node* LoadMapDescriptors(compiler::Node* map);
+  // Load the prototype of a map.
+  compiler::Node* LoadMapPrototype(compiler::Node* map);
+
+  // Load the hash field of a name.
+  compiler::Node* LoadNameHash(compiler::Node* name);
+  // Load the instance size of a Map.
+  compiler::Node* LoadMapInstanceSize(compiler::Node* map);
+
+  compiler::Node* AllocateUninitializedFixedArray(compiler::Node* length);
+
+  // Load an array element from a FixedArray.
+  compiler::Node* LoadFixedArrayElement(
+      compiler::Node* object, compiler::Node* int32_index,
+      int additional_offset = 0,
+      ParameterMode parameter_mode = INTEGER_PARAMETERS);
+
+  // Context manipulation
+  compiler::Node* LoadNativeContext(compiler::Node* context);
+
+  compiler::Node* LoadJSArrayElementsMap(ElementsKind kind,
+                                         compiler::Node* native_context);
+
+  // Store the floating point value of a HeapNumber.
+  compiler::Node* StoreHeapNumberValue(compiler::Node* object,
+                                       compiler::Node* value);
+  // Store a field to an object on the heap.
+  compiler::Node* StoreObjectField(
+      compiler::Node* object, int offset, compiler::Node* value);
+  compiler::Node* StoreObjectFieldNoWriteBarrier(
+      compiler::Node* object, int offset, compiler::Node* value,
+      MachineRepresentation rep = MachineRepresentation::kTagged);
+  // Store the Map of an HeapObject.
+  compiler::Node* StoreMapNoWriteBarrier(compiler::Node* object,
+                                         compiler::Node* map);
+  // Store an array element to a FixedArray.
+  compiler::Node* StoreFixedArrayElement(
+      compiler::Node* object, compiler::Node* index, compiler::Node* value,
+      WriteBarrierMode barrier_mode = UPDATE_WRITE_BARRIER,
+      ParameterMode parameter_mode = INTEGER_PARAMETERS);
+
+  compiler::Node* StoreFixedDoubleArrayElement(
+      compiler::Node* object, compiler::Node* index, compiler::Node* value,
+      ParameterMode parameter_mode = INTEGER_PARAMETERS);
+
+  // Allocate a HeapNumber without initializing its value.
+  compiler::Node* AllocateHeapNumber();
+  // Allocate a HeapNumber with a specific value.
+  compiler::Node* AllocateHeapNumberWithValue(compiler::Node* value);
+  // Allocate a SeqOneByteString with the given length.
+  compiler::Node* AllocateSeqOneByteString(int length);
+  // Allocate a SeqTwoByteString with the given length.
+  compiler::Node* AllocateSeqTwoByteString(int length);
+  // Allocated an JSArray
+  compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map,
+                                  compiler::Node* capacity,
+                                  compiler::Node* length,
+                                  compiler::Node* allocation_site = nullptr,
+                                  ParameterMode mode = INTEGER_PARAMETERS);
+
+  // Allocation site manipulation
+  void InitializeAllocationMemento(compiler::Node* base_allocation,
+                                   int base_allocation_size,
+                                   compiler::Node* allocation_site);
+
+  compiler::Node* TruncateTaggedToFloat64(compiler::Node* context,
+                                          compiler::Node* value);
+  compiler::Node* TruncateTaggedToWord32(compiler::Node* context,
+                                         compiler::Node* value);
+  // Truncate the floating point value of a HeapNumber to an Int32.
+  compiler::Node* TruncateHeapNumberValueToWord32(compiler::Node* object);
+
+  // Conversions.
+  compiler::Node* ChangeFloat64ToTagged(compiler::Node* value);
+  compiler::Node* ChangeInt32ToTagged(compiler::Node* value);
+  compiler::Node* ChangeUint32ToTagged(compiler::Node* value);
+
+  // Type conversions.
+  // Throws a TypeError for {method_name} if {value} is not coercible to Object,
+  // or returns the {value} converted to a String otherwise.
+  compiler::Node* ToThisString(compiler::Node* context, compiler::Node* value,
+                               char const* method_name);
+
+  // String helpers.
+  // Load a character from a String (might flatten a ConsString).
+  compiler::Node* StringCharCodeAt(compiler::Node* string,
+                                   compiler::Node* smi_index);
+  // Return the single character string with only {code}.
+  compiler::Node* StringFromCharCode(compiler::Node* code);
+
+  // Returns a node that is true if the given bit is set in |word32|.
+  template <typename T>
+  compiler::Node* BitFieldDecode(compiler::Node* word32) {
+    return BitFieldDecode(word32, T::kShift, T::kMask);
+  }
+
+  compiler::Node* BitFieldDecode(compiler::Node* word32, uint32_t shift,
+                                 uint32_t mask);
+
+  // Various building blocks for stubs doing property lookups.
+  void TryToName(compiler::Node* key, Label* if_keyisindex, Variable* var_index,
+                 Label* if_keyisunique, Label* call_runtime);
+
+  void TryLookupProperty(compiler::Node* object, compiler::Node* map,
+                         compiler::Node* instance_type, compiler::Node* name,
+                         Label* if_found, Label* if_not_found,
+                         Label* call_runtime);
+
+  void TryLookupElement(compiler::Node* object, compiler::Node* map,
+                        compiler::Node* instance_type, compiler::Node* index,
+                        Label* if_found, Label* if_not_found,
+                        Label* call_runtime);
+
+  // Instanceof helpers.
+  // ES6 section 7.3.19 OrdinaryHasInstance (C, O)
+  compiler::Node* OrdinaryHasInstance(compiler::Node* context,
+                                      compiler::Node* callable,
+                                      compiler::Node* object);
+
+ private:
+  compiler::Node* ElementOffsetFromIndex(compiler::Node* index,
+                                         ElementsKind kind, ParameterMode mode,
+                                         int base_size = 0);
+
+  compiler::Node* AllocateRawAligned(compiler::Node* size_in_bytes,
+                                     AllocationFlags flags,
+                                     compiler::Node* top_address,
+                                     compiler::Node* limit_address);
+  compiler::Node* AllocateRawUnaligned(compiler::Node* size_in_bytes,
+                                       AllocationFlags flags,
+                                       compiler::Node* top_adddress,
+                                       compiler::Node* limit_address);
+
+  static const int kElementLoopUnrollThreshold = 8;
+};
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_CODE_STUB_ASSEMBLER_H_
diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
index 1d2fb81..6680e66 100644
--- a/src/code-stubs-hydrogen.cc
+++ b/src/code-stubs-hydrogen.cc
@@ -97,26 +97,6 @@
   HValue* BuildInternalArrayConstructor(ElementsKind kind,
                                         ArgumentClass argument_class);
 
-  // BuildCheckAndInstallOptimizedCode emits code to install the optimized
-  // function found in the optimized code map at map_index in js_function, if
-  // the function at map_index matches the given native_context. Builder is
-  // left in the "Then()" state after the install.
-  void BuildCheckAndInstallOptimizedCode(HValue* js_function,
-                                         HValue* native_context,
-                                         IfBuilder* builder,
-                                         HValue* optimized_map,
-                                         HValue* map_index);
-  void BuildInstallOptimizedCode(HValue* js_function, HValue* native_context,
-                                 HValue* code_object, HValue* literals);
-  void BuildInstallCode(HValue* js_function, HValue* shared_info);
-
-  HInstruction* LoadFromOptimizedCodeMap(HValue* optimized_map,
-                                         HValue* iterator,
-                                         int field_offset);
-  void BuildInstallFromOptimizedCodeMap(HValue* js_function,
-                                        HValue* shared_info,
-                                        HValue* native_context);
-
   HValue* BuildToString(HValue* input, bool convert);
   HValue* BuildToPrimitive(HValue* input, HValue* input_map);
 
@@ -298,8 +278,8 @@
     timer.Start();
   }
   Zone zone(isolate->allocator());
-  CompilationInfo info(CodeStub::MajorName(stub->MajorKey()), isolate, &zone,
-                       stub->GetCodeFlags());
+  CompilationInfo info(CStrVector(CodeStub::MajorName(stub->MajorKey())),
+                       isolate, &zone, stub->GetCodeFlags());
   // Parameter count is number of stack parameters.
   int parameter_count = descriptor.GetStackParameterCount();
   if (descriptor.function_mode() == NOT_JS_FUNCTION_STUB_MODE) {
@@ -463,7 +443,7 @@
         JSRegExp::kSize + JSRegExp::kInObjectFieldCount * kPointerSize;
     HValue* result =
         Add<HAllocate>(Add<HConstant>(result_size), HType::JSObject(),
-                       NOT_TENURED, JS_REGEXP_TYPE);
+                       NOT_TENURED, JS_REGEXP_TYPE, graph()->GetConstant0());
     Add<HStoreNamedField>(
         result, HObjectAccess::ForMap(),
         Add<HLoadNamedField>(boilerplate, nullptr, HObjectAccess::ForMap()));
@@ -570,87 +550,15 @@
 
 
 template <>
-HValue* CodeStubGraphBuilder<FastCloneShallowObjectStub>::BuildCodeStub() {
-  HValue* undefined = graph()->GetConstantUndefined();
-  HValue* closure = GetParameter(0);
-  HValue* literal_index = GetParameter(1);
-
-  HValue* literals_array = Add<HLoadNamedField>(
-      closure, nullptr, HObjectAccess::ForLiteralsPointer());
-
-  HInstruction* allocation_site = Add<HLoadKeyed>(
-      literals_array, literal_index, nullptr, nullptr, FAST_ELEMENTS,
-      NEVER_RETURN_HOLE, LiteralsArray::kOffsetToFirstLiteral - kHeapObjectTag);
-
-  IfBuilder checker(this);
-  checker.IfNot<HCompareObjectEqAndBranch, HValue*>(allocation_site,
-                                                    undefined);
-  checker.And();
-
-  HObjectAccess access = HObjectAccess::ForAllocationSiteOffset(
-      AllocationSite::kTransitionInfoOffset);
-  HInstruction* boilerplate =
-      Add<HLoadNamedField>(allocation_site, nullptr, access);
-
-  int length = casted_stub()->length();
-  if (length == 0) {
-    // Empty objects have some slack added to them.
-    length = JSObject::kInitialGlobalObjectUnusedPropertiesCount;
-  }
-  int size = JSObject::kHeaderSize + length * kPointerSize;
-  int object_size = size;
-  if (FLAG_allocation_site_pretenuring) {
-    size += AllocationMemento::kSize;
-  }
-
-  HValue* boilerplate_map =
-      Add<HLoadNamedField>(boilerplate, nullptr, HObjectAccess::ForMap());
-  HValue* boilerplate_size = Add<HLoadNamedField>(
-      boilerplate_map, nullptr, HObjectAccess::ForMapInstanceSize());
-  HValue* size_in_words = Add<HConstant>(object_size >> kPointerSizeLog2);
-  checker.If<HCompareNumericAndBranch>(boilerplate_size,
-                                       size_in_words, Token::EQ);
-  checker.Then();
-
-  HValue* size_in_bytes = Add<HConstant>(size);
-
-  HInstruction* object = Add<HAllocate>(size_in_bytes, HType::JSObject(),
-      NOT_TENURED, JS_OBJECT_TYPE);
-
-  for (int i = 0; i < object_size; i += kPointerSize) {
-    HObjectAccess access = HObjectAccess::ForObservableJSObjectOffset(i);
-    Add<HStoreNamedField>(object, access,
-                          Add<HLoadNamedField>(boilerplate, nullptr, access));
-  }
-
-  DCHECK(FLAG_allocation_site_pretenuring || (size == object_size));
-  if (FLAG_allocation_site_pretenuring) {
-    BuildCreateAllocationMemento(
-        object, Add<HConstant>(object_size), allocation_site);
-  }
-
-  environment()->Push(object);
-  checker.ElseDeopt(Deoptimizer::kUninitializedBoilerplateInFastClone);
-  checker.End();
-
-  return environment()->Pop();
-}
-
-
-Handle<Code> FastCloneShallowObjectStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
-template <>
 HValue* CodeStubGraphBuilder<CreateAllocationSiteStub>::BuildCodeStub() {
   // This stub is performance sensitive, the generated code must be tuned
   // so that it doesn't build an eager frame.
   info()->MarkMustNotHaveEagerFrame();
 
   HValue* size = Add<HConstant>(AllocationSite::kSize);
-  HInstruction* object = Add<HAllocate>(size, HType::JSObject(), TENURED,
-      JS_OBJECT_TYPE);
+  HInstruction* object =
+      Add<HAllocate>(size, HType::JSObject(), TENURED, JS_OBJECT_TYPE,
+                     graph()->GetConstant0());
 
   // Store the map
   Handle<Map> allocation_site_map = isolate()->factory()->allocation_site_map();
@@ -728,7 +636,8 @@
 
   HValue* size = Add<HConstant>(WeakCell::kSize);
   HInstruction* object =
-      Add<HAllocate>(size, HType::JSObject(), TENURED, JS_OBJECT_TYPE);
+      Add<HAllocate>(size, HType::JSObject(), TENURED, JS_OBJECT_TYPE,
+                     graph()->GetConstant0());
 
   Handle<Map> weak_cell_map = isolate()->factory()->weak_cell_map();
   AddStoreMapConstant(object, weak_cell_map);
@@ -856,18 +765,6 @@
     check.End();
   }
 
-  // Disallow pushing onto observed objects.
-  {
-    HValue* bit_field =
-        Add<HLoadNamedField>(map, nullptr, HObjectAccess::ForMapBitField());
-    HValue* mask = Add<HConstant>(1 << Map::kIsObserved);
-    HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, bit_field, mask);
-    IfBuilder check(this);
-    check.If<HCompareNumericAndBranch>(bit, mask, Token::EQ);
-    check.ThenDeopt(Deoptimizer::kFastArrayPushFailed);
-    check.End();
-  }
-
   // Disallow pushing onto arrays in dictionary named property mode. We need to
   // figure out whether the length property is still writable.
   {
@@ -1272,7 +1169,7 @@
         // TODO(hpayer): Allocation site pretenuring support.
         HInstruction* heap_number =
             Add<HAllocate>(heap_number_size, HType::HeapObject(), NOT_TENURED,
-                           MUTABLE_HEAP_NUMBER_TYPE);
+                           MUTABLE_HEAP_NUMBER_TYPE, graph()->GetConstant0());
         AddStoreMapConstant(heap_number,
                             isolate()->factory()->mutable_heap_number_map());
         Add<HStoreNamedField>(heap_number, HObjectAccess::ForHeapNumberValue(),
@@ -1394,20 +1291,6 @@
   return DoGenerateCode(this);
 }
 
-
-template <>
-HValue* CodeStubGraphBuilder<AllocateInNewSpaceStub>::BuildCodeStub() {
-  HValue* result = Add<HAllocate>(GetParameter(0), HType::Tagged(), NOT_TENURED,
-                                  JS_OBJECT_TYPE);
-  return result;
-}
-
-
-Handle<Code> AllocateInNewSpaceStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
 HValue* CodeStubGraphBuilderBase::BuildArrayConstructor(
     ElementsKind kind,
     AllocationSiteOverrideMode override_mode,
@@ -1498,7 +1381,6 @@
       ? JSArrayBuilder::FILL_WITH_HOLE
       : JSArrayBuilder::DONT_FILL_WITH_HOLE;
   HValue* new_object = array_builder->AllocateArray(checked_length,
-                                                    max_alloc_length,
                                                     checked_length,
                                                     fill_mode);
   HValue* elements = array_builder->GetElementsLocation();
@@ -1527,12 +1409,6 @@
   return BuildArrayConstructor(kind, override_mode, NONE);
 }
 
-
-Handle<Code> ArrayNoArgumentConstructorStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
 template <>
 HValue* CodeStubGraphBuilder<ArraySingleArgumentConstructorStub>::
     BuildCodeStub() {
@@ -1568,11 +1444,6 @@
 }
 
 
-Handle<Code> InternalArrayNoArgumentConstructorStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
 template <>
 HValue* CodeStubGraphBuilder<InternalArraySingleArgumentConstructorStub>::
     BuildCodeStub() {
@@ -1746,9 +1617,9 @@
       // Convert the primitive to a string value.
       ToStringStub stub(isolate());
       HValue* values[] = {context(), Pop()};
-      Push(AddUncasted<HCallWithDescriptor>(
-          Add<HConstant>(stub.GetCode()), 0, stub.GetCallInterfaceDescriptor(),
-          Vector<HValue*>(values, arraysize(values))));
+      Push(AddUncasted<HCallWithDescriptor>(Add<HConstant>(stub.GetCode()), 0,
+                                            stub.GetCallInterfaceDescriptor(),
+                                            ArrayVector(values)));
     }
     if_inputisstring.End();
   }
@@ -2013,182 +1884,6 @@
 Handle<Code> ToObjectStub::GenerateCode() { return DoGenerateCode(this); }
 
 
-void CodeStubGraphBuilderBase::BuildCheckAndInstallOptimizedCode(
-    HValue* js_function,
-    HValue* native_context,
-    IfBuilder* builder,
-    HValue* optimized_map,
-    HValue* map_index) {
-  HValue* osr_ast_id_none = Add<HConstant>(BailoutId::None().ToInt());
-  HValue* context_slot = LoadFromOptimizedCodeMap(
-      optimized_map, map_index, SharedFunctionInfo::kContextOffset);
-  context_slot = Add<HLoadNamedField>(context_slot, nullptr,
-                                      HObjectAccess::ForWeakCellValue());
-  HValue* osr_ast_slot = LoadFromOptimizedCodeMap(
-      optimized_map, map_index, SharedFunctionInfo::kOsrAstIdOffset);
-  HValue* code_object = LoadFromOptimizedCodeMap(
-      optimized_map, map_index, SharedFunctionInfo::kCachedCodeOffset);
-  code_object = Add<HLoadNamedField>(code_object, nullptr,
-                                     HObjectAccess::ForWeakCellValue());
-  builder->If<HCompareObjectEqAndBranch>(native_context,
-                                         context_slot);
-  builder->AndIf<HCompareObjectEqAndBranch>(osr_ast_slot, osr_ast_id_none);
-  builder->And();
-  builder->IfNot<HCompareObjectEqAndBranch>(code_object,
-                                            graph()->GetConstant0());
-  builder->Then();
-  HValue* literals = LoadFromOptimizedCodeMap(optimized_map,
-      map_index, SharedFunctionInfo::kLiteralsOffset);
-  literals = Add<HLoadNamedField>(literals, nullptr,
-                                  HObjectAccess::ForWeakCellValue());
-  IfBuilder maybe_deopt(this);
-  maybe_deopt.If<HCompareObjectEqAndBranch>(literals, graph()->GetConstant0());
-  maybe_deopt.ThenDeopt(Deoptimizer::kLiteralsWereDisposed);
-  maybe_deopt.End();
-
-  BuildInstallOptimizedCode(js_function, native_context, code_object, literals);
-
-  // The builder continues in the "then" after this function.
-}
-
-
-void CodeStubGraphBuilderBase::BuildInstallOptimizedCode(HValue* js_function,
-                                                         HValue* native_context,
-                                                         HValue* code_object,
-                                                         HValue* literals) {
-  Counters* counters = isolate()->counters();
-  AddIncrementCounter(counters->fast_new_closure_install_optimized());
-
-  // TODO(fschneider): Idea: store proper code pointers in the optimized code
-  // map and either unmangle them on marking or do nothing as the whole map is
-  // discarded on major GC anyway.
-  Add<HStoreCodeEntry>(js_function, code_object);
-  Add<HStoreNamedField>(js_function, HObjectAccess::ForLiteralsPointer(),
-                        literals);
-
-  // Now link a function into a list of optimized functions.
-  HValue* optimized_functions_list = Add<HLoadNamedField>(
-      native_context, nullptr,
-      HObjectAccess::ForContextSlot(Context::OPTIMIZED_FUNCTIONS_LIST));
-  Add<HStoreNamedField>(js_function,
-                        HObjectAccess::ForNextFunctionLinkPointer(),
-                        optimized_functions_list);
-
-  // This store is the only one that should have a write barrier.
-  Add<HStoreNamedField>(native_context,
-           HObjectAccess::ForContextSlot(Context::OPTIMIZED_FUNCTIONS_LIST),
-           js_function);
-}
-
-
-void CodeStubGraphBuilderBase::BuildInstallCode(HValue* js_function,
-                                                HValue* shared_info) {
-  Add<HStoreNamedField>(js_function,
-                        HObjectAccess::ForNextFunctionLinkPointer(),
-                        graph()->GetConstantUndefined());
-  HValue* code_object = Add<HLoadNamedField>(shared_info, nullptr,
-                                             HObjectAccess::ForCodeOffset());
-  Add<HStoreCodeEntry>(js_function, code_object);
-}
-
-
-HInstruction* CodeStubGraphBuilderBase::LoadFromOptimizedCodeMap(
-    HValue* optimized_map,
-    HValue* iterator,
-    int field_offset) {
-  // By making sure to express these loads in the form [<hvalue> + constant]
-  // the keyed load can be hoisted.
-  DCHECK(field_offset >= 0 && field_offset < SharedFunctionInfo::kEntryLength);
-  HValue* field_slot = iterator;
-  if (field_offset > 0) {
-    HValue* field_offset_value = Add<HConstant>(field_offset);
-    field_slot = AddUncasted<HAdd>(iterator, field_offset_value);
-  }
-  HInstruction* field_entry = Add<HLoadKeyed>(optimized_map, field_slot,
-                                              nullptr, nullptr, FAST_ELEMENTS);
-  return field_entry;
-}
-
-
-void CodeStubGraphBuilderBase::BuildInstallFromOptimizedCodeMap(
-    HValue* js_function,
-    HValue* shared_info,
-    HValue* native_context) {
-  Counters* counters = isolate()->counters();
-  Factory* factory = isolate()->factory();
-  IfBuilder is_optimized(this);
-  HInstruction* optimized_map = Add<HLoadNamedField>(
-      shared_info, nullptr, HObjectAccess::ForOptimizedCodeMap());
-  HValue* null_constant = Add<HConstant>(0);
-  is_optimized.If<HCompareObjectEqAndBranch>(optimized_map, null_constant);
-  is_optimized.Then();
-  {
-    BuildInstallCode(js_function, shared_info);
-  }
-  is_optimized.Else();
-  {
-    AddIncrementCounter(counters->fast_new_closure_try_optimized());
-    // The {optimized_map} points to fixed array of 4-element entries:
-    //   (native context, optimized code, literals, ast-id).
-    // Iterate through the {optimized_map} backwards. After the loop, if no
-    // matching optimized code was found, install unoptimized code.
-    //   for(i = map.length() - SharedFunctionInfo::kEntryLength;
-    //       i >= SharedFunctionInfo::kEntriesStart;
-    //       i -= SharedFunctionInfo::kEntryLength) { ... }
-    HValue* first_entry_index =
-        Add<HConstant>(SharedFunctionInfo::kEntriesStart);
-    HValue* shared_function_entry_length =
-        Add<HConstant>(SharedFunctionInfo::kEntryLength);
-    LoopBuilder loop_builder(this, context(), LoopBuilder::kPostDecrement,
-                             shared_function_entry_length);
-    HValue* array_length = Add<HLoadNamedField>(
-        optimized_map, nullptr, HObjectAccess::ForFixedArrayLength());
-    HValue* start_pos =
-        AddUncasted<HSub>(array_length, shared_function_entry_length);
-    HValue* slot_iterator =
-        loop_builder.BeginBody(start_pos, first_entry_index, Token::GTE);
-    {
-      IfBuilder done_check(this);
-      BuildCheckAndInstallOptimizedCode(js_function, native_context,
-                                        &done_check, optimized_map,
-                                        slot_iterator);
-      // Fall out of the loop
-      loop_builder.Break();
-    }
-    loop_builder.EndBody();
-
-    // If {slot_iterator} is less than the first entry index, then we failed to
-    // find a context-dependent code and try context-independent code next.
-    IfBuilder no_optimized_code_check(this);
-    no_optimized_code_check.If<HCompareNumericAndBranch>(
-        slot_iterator, first_entry_index, Token::LT);
-    no_optimized_code_check.Then();
-    {
-      IfBuilder shared_code_check(this);
-      HValue* shared_code =
-          Add<HLoadNamedField>(optimized_map, nullptr,
-                               HObjectAccess::ForOptimizedCodeMapSharedCode());
-      shared_code = Add<HLoadNamedField>(shared_code, nullptr,
-                                         HObjectAccess::ForWeakCellValue());
-      shared_code_check.IfNot<HCompareObjectEqAndBranch>(
-          shared_code, graph()->GetConstant0());
-      shared_code_check.Then();
-      {
-        // Store the context-independent optimized code.
-        HValue* literals = Add<HConstant>(factory->empty_fixed_array());
-        BuildInstallOptimizedCode(js_function, native_context, shared_code,
-                                  literals);
-      }
-      shared_code_check.Else();
-      {
-        // Store the unoptimized code.
-        BuildInstallCode(js_function, shared_info);
-      }
-    }
-  }
-}
-
-
 template<>
 HValue* CodeStubGraphBuilder<FastNewClosureStub>::BuildCodeStub() {
   Counters* counters = isolate()->counters();
@@ -2202,7 +1897,8 @@
   // Create a new closure from the given function info in new space
   HValue* size = Add<HConstant>(JSFunction::kSize);
   HInstruction* js_function =
-      Add<HAllocate>(size, HType::JSObject(), NOT_TENURED, JS_FUNCTION_TYPE);
+      Add<HAllocate>(size, HType::JSObject(), NOT_TENURED, JS_FUNCTION_TYPE,
+                     graph()->GetConstant0());
 
   int map_index = Context::FunctionMapIndex(casted_stub()->language_mode(),
                                             casted_stub()->kind());
@@ -2228,10 +1924,13 @@
   Add<HStoreNamedField>(js_function, HObjectAccess::ForFunctionContextPointer(),
                         context());
 
-  // Initialize the code pointer in the function to be the one found in the
-  // shared function info object. But first check if there is an optimized
-  // version for our context.
-  BuildInstallFromOptimizedCodeMap(js_function, shared_info, native_context);
+  Handle<Code> lazy_builtin(
+      isolate()->builtins()->builtin(Builtins::kCompileLazy));
+  HConstant* lazy = Add<HConstant>(lazy_builtin);
+  Add<HStoreCodeEntry>(js_function, lazy);
+  Add<HStoreNamedField>(js_function,
+                        HObjectAccess::ForNextFunctionLinkPointer(),
+                        graph()->GetConstantUndefined());
 
   return js_function;
 }
@@ -2252,7 +1951,8 @@
   // Allocate the context in new space.
   HAllocate* function_context = Add<HAllocate>(
       Add<HConstant>(length * kPointerSize + FixedArray::kHeaderSize),
-      HType::HeapObject(), NOT_TENURED, FIXED_ARRAY_TYPE);
+      HType::HeapObject(), NOT_TENURED, FIXED_ARRAY_TYPE,
+      graph()->GetConstant0());
 
   // Set up the object header.
   AddStoreMapConstant(function_context,
diff --git a/src/code-stubs.cc b/src/code-stubs.cc
index 60b350c..d7ea506 100644
--- a/src/code-stubs.cc
+++ b/src/code-stubs.cc
@@ -8,7 +8,7 @@
 
 #include "src/bootstrapper.h"
 #include "src/code-factory.h"
-#include "src/compiler/code-stub-assembler.h"
+#include "src/code-stub-assembler.h"
 #include "src/factory.h"
 #include "src/gdb-jit.h"
 #include "src/ic/handler-compiler.h"
@@ -99,8 +99,7 @@
 
 
 Code::Flags CodeStub::GetCodeFlags() const {
-  return Code::ComputeFlags(GetCodeKind(), GetICState(), GetExtraICState(),
-                            GetStubType());
+  return Code::ComputeFlags(GetCodeKind(), GetICState(), GetExtraICState());
 }
 
 
@@ -135,11 +134,8 @@
   CodeDesc desc;
   masm.GetCode(&desc);
   // Copy the generated code into a heap object.
-  Code::Flags flags = Code::ComputeFlags(
-      GetCodeKind(),
-      GetICState(),
-      GetExtraICState(),
-      GetStubType());
+  Code::Flags flags =
+      Code::ComputeFlags(GetCodeKind(), GetICState(), GetExtraICState());
   Handle<Code> new_object = factory->NewCode(
       desc, flags, masm.CodeObject(), NeedsImmovableCode());
   return new_object;
@@ -390,19 +386,14 @@
 
 
 bool CompareICStub::FindCodeInSpecialCache(Code** code_out) {
-  Factory* factory = isolate()->factory();
   Code::Flags flags = Code::ComputeFlags(
       GetCodeKind(),
       UNINITIALIZED);
-  Handle<Object> probe(
-      known_map_->FindInCodeCache(
-        strict() ?
-            *factory->strict_compare_ic_string() :
-            *factory->compare_ic_string(),
-        flags),
-      isolate());
-  if (probe->IsCode()) {
-    *code_out = Code::cast(*probe);
+  Name* name = strict() ? isolate()->heap()->strict_compare_ic_string()
+                        : isolate()->heap()->compare_ic_string();
+  Code* code = known_map_->LookupInCodeCache(name, flags);
+  if (code != nullptr) {
+    *code_out = code;
 #ifdef DEBUG
     CompareICStub decode((*code_out)->stub_key(), isolate());
     DCHECK(op() == decode.op());
@@ -457,36 +448,25 @@
   const char* name = CodeStub::MajorName(MajorKey());
   Zone zone(isolate()->allocator());
   CallInterfaceDescriptor descriptor(GetCallInterfaceDescriptor());
-  compiler::CodeStubAssembler assembler(isolate(), &zone, descriptor,
-                                        GetCodeFlags(), name);
+  CodeStubAssembler assembler(isolate(), &zone, descriptor, GetCodeFlags(),
+                              name);
   GenerateAssembly(&assembler);
   return assembler.GenerateCode();
 }
 
 void AllocateHeapNumberStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+    CodeStubAssembler* assembler) const {
   typedef compiler::Node Node;
 
   Node* result = assembler->AllocateHeapNumber();
   assembler->Return(result);
 }
 
-void AllocateMutableHeapNumberStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
-  typedef compiler::Node Node;
-
-  Node* result = assembler->Allocate(HeapNumber::kSize);
-  assembler->StoreMapNoWriteBarrier(
-      result,
-      assembler->HeapConstant(isolate()->factory()->mutable_heap_number_map()));
-  assembler->Return(result);
-}
-
 #define SIMD128_GEN_ASM(TYPE, Type, type, lane_count, lane_type)            \
-  void Allocate##Type##Stub::GenerateAssembly(                              \
-      compiler::CodeStubAssembler* assembler) const {                       \
-    compiler::Node* result = assembler->Allocate(                           \
-        Simd128Value::kSize, compiler::CodeStubAssembler::kNone);           \
+  void Allocate##Type##Stub::GenerateAssembly(CodeStubAssembler* assembler) \
+      const {                                                               \
+    compiler::Node* result =                                                \
+        assembler->Allocate(Simd128Value::kSize, CodeStubAssembler::kNone); \
     compiler::Node* map_offset =                                            \
         assembler->IntPtrConstant(HeapObject::kMapOffset - kHeapObjectTag); \
     compiler::Node* map = assembler->IntPtrAdd(result, map_offset);         \
@@ -498,8 +478,7 @@
 SIMD128_TYPES(SIMD128_GEN_ASM)
 #undef SIMD128_GEN_ASM
 
-void StringLengthStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void StringLengthStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   compiler::Node* value = assembler->Parameter(0);
   compiler::Node* string =
       assembler->LoadObjectField(value, JSValue::kValueOffset);
@@ -508,12 +487,13 @@
   assembler->Return(result);
 }
 
-void AddStub::GenerateAssembly(compiler::CodeStubAssembler* assembler) const {
-  typedef compiler::CodeStubAssembler::Label Label;
+// static
+compiler::Node* AddStub::Generate(CodeStubAssembler* assembler,
+                                  compiler::Node* left, compiler::Node* right,
+                                  compiler::Node* context) {
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
-
-  Node* context = assembler->Parameter(2);
+  typedef CodeStubAssembler::Variable Variable;
 
   // Shared entry for floating point addition.
   Label do_fadd(assembler);
@@ -523,11 +503,14 @@
   // We might need to loop several times due to ToPrimitive, ToString and/or
   // ToNumber conversions.
   Variable var_lhs(assembler, MachineRepresentation::kTagged),
-      var_rhs(assembler, MachineRepresentation::kTagged);
+      var_rhs(assembler, MachineRepresentation::kTagged),
+      var_result(assembler, MachineRepresentation::kTagged);
   Variable* loop_vars[2] = {&var_lhs, &var_rhs};
-  Label loop(assembler, 2, loop_vars);
-  var_lhs.Bind(assembler->Parameter(0));
-  var_rhs.Bind(assembler->Parameter(1));
+  Label loop(assembler, 2, loop_vars), end(assembler),
+      string_add_convert_left(assembler, Label::kDeferred),
+      string_add_convert_right(assembler, Label::kDeferred);
+  var_lhs.Bind(left);
+  var_rhs.Bind(right);
   assembler->Goto(&loop);
   assembler->Bind(&loop);
   {
@@ -564,7 +547,8 @@
         }
 
         assembler->Bind(&if_notoverflow);
-        assembler->Return(assembler->Projection(0, pair));
+        var_result.Bind(assembler->Projection(0, pair));
+        assembler->Goto(&end);
       }
 
       assembler->Bind(&if_rhsisnotsmi);
@@ -601,11 +585,9 @@
 
           assembler->Bind(&if_rhsisstring);
           {
-            // Convert {lhs}, which is a Smi, to a String and concatenate the
-            // resulting string with the String {rhs}.
-            Callable callable = CodeFactory::StringAdd(
-                assembler->isolate(), STRING_ADD_CONVERT_LEFT, NOT_TENURED);
-            assembler->TailCallStub(callable, context, lhs, rhs);
+            var_lhs.Bind(lhs);
+            var_rhs.Bind(rhs);
+            assembler->Goto(&string_add_convert_left);
           }
 
           assembler->Bind(&if_rhsisnotstring);
@@ -655,11 +637,9 @@
 
       assembler->Bind(&if_lhsisstring);
       {
-        // Convert {rhs} to a String (using the sequence of ToPrimitive with
-        // no hint followed by ToString) and concatenate the strings.
-        Callable callable = CodeFactory::StringAdd(
-            assembler->isolate(), STRING_ADD_CONVERT_RIGHT, NOT_TENURED);
-        assembler->TailCallStub(callable, context, lhs, rhs);
+        var_lhs.Bind(lhs);
+        var_rhs.Bind(rhs);
+        assembler->Goto(&string_add_convert_right);
       }
 
       assembler->Bind(&if_lhsisnotstring);
@@ -733,11 +713,9 @@
 
           assembler->Bind(&if_rhsisstring);
           {
-            // Convert {lhs} to a String (using the sequence of ToPrimitive with
-            // no hint followed by ToString) and concatenate the strings.
-            Callable callable = CodeFactory::StringAdd(
-                assembler->isolate(), STRING_ADD_CONVERT_LEFT, NOT_TENURED);
-            assembler->TailCallStub(callable, context, lhs, rhs);
+            var_lhs.Bind(lhs);
+            var_rhs.Bind(rhs);
+            assembler->Goto(&string_add_convert_left);
           }
 
           assembler->Bind(&if_rhsisnotstring);
@@ -853,6 +831,27 @@
       }
     }
   }
+  assembler->Bind(&string_add_convert_left);
+  {
+    // Convert {lhs}, which is a Smi, to a String and concatenate the
+    // resulting string with the String {rhs}.
+    Callable callable = CodeFactory::StringAdd(
+        assembler->isolate(), STRING_ADD_CONVERT_LEFT, NOT_TENURED);
+    var_result.Bind(assembler->CallStub(callable, context, var_lhs.value(),
+                                        var_rhs.value()));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&string_add_convert_right);
+  {
+    // Convert {lhs}, which is a Smi, to a String and concatenate the
+    // resulting string with the String {rhs}.
+    Callable callable = CodeFactory::StringAdd(
+        assembler->isolate(), STRING_ADD_CONVERT_RIGHT, NOT_TENURED);
+    var_result.Bind(assembler->CallStub(callable, context, var_lhs.value(),
+                                        var_rhs.value()));
+    assembler->Goto(&end);
+  }
 
   assembler->Bind(&do_fadd);
   {
@@ -860,31 +859,36 @@
     Node* rhs_value = var_fadd_rhs.value();
     Node* value = assembler->Float64Add(lhs_value, rhs_value);
     Node* result = assembler->ChangeFloat64ToTagged(value);
-    assembler->Return(result);
+    var_result.Bind(result);
+    assembler->Goto(&end);
   }
+  assembler->Bind(&end);
+  return var_result.value();
 }
 
-void SubtractStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
-  typedef compiler::CodeStubAssembler::Label Label;
+// static
+compiler::Node* SubtractStub::Generate(CodeStubAssembler* assembler,
+                                       compiler::Node* left,
+                                       compiler::Node* right,
+                                       compiler::Node* context) {
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
-
-  Node* context = assembler->Parameter(2);
+  typedef CodeStubAssembler::Variable Variable;
 
   // Shared entry for floating point subtraction.
-  Label do_fsub(assembler);
+  Label do_fsub(assembler), end(assembler);
   Variable var_fsub_lhs(assembler, MachineRepresentation::kFloat64),
       var_fsub_rhs(assembler, MachineRepresentation::kFloat64);
 
   // We might need to loop several times due to ToPrimitive and/or ToNumber
   // conversions.
   Variable var_lhs(assembler, MachineRepresentation::kTagged),
-      var_rhs(assembler, MachineRepresentation::kTagged);
+      var_rhs(assembler, MachineRepresentation::kTagged),
+      var_result(assembler, MachineRepresentation::kTagged);
   Variable* loop_vars[2] = {&var_lhs, &var_rhs};
   Label loop(assembler, 2, loop_vars);
-  var_lhs.Bind(assembler->Parameter(0));
-  var_rhs.Bind(assembler->Parameter(1));
+  var_lhs.Bind(left);
+  var_rhs.Bind(right);
   assembler->Goto(&loop);
   assembler->Bind(&loop);
   {
@@ -922,7 +926,8 @@
         }
 
         assembler->Bind(&if_notoverflow);
-        assembler->Return(assembler->Projection(0, pair));
+        var_result.Bind(assembler->Projection(0, pair));
+        assembler->Goto(&end);
       }
 
       assembler->Bind(&if_rhsisnotsmi);
@@ -948,7 +953,8 @@
         assembler->Bind(&if_rhsisnotnumber);
         {
           // Convert the {rhs} to a Number first.
-          Callable callable = CodeFactory::NonNumberToNumber(isolate());
+          Callable callable =
+              CodeFactory::NonNumberToNumber(assembler->isolate());
           var_rhs.Bind(assembler->CallStub(callable, context, rhs));
           assembler->Goto(&loop);
         }
@@ -1004,7 +1010,8 @@
           assembler->Bind(&if_rhsisnotnumber);
           {
             // Convert the {rhs} to a Number first.
-            Callable callable = CodeFactory::NonNumberToNumber(isolate());
+            Callable callable =
+                CodeFactory::NonNumberToNumber(assembler->isolate());
             var_rhs.Bind(assembler->CallStub(callable, context, rhs));
             assembler->Goto(&loop);
           }
@@ -1014,7 +1021,8 @@
       assembler->Bind(&if_lhsisnotnumber);
       {
         // Convert the {lhs} to a Number first.
-        Callable callable = CodeFactory::NonNumberToNumber(isolate());
+        Callable callable =
+            CodeFactory::NonNumberToNumber(assembler->isolate());
         var_lhs.Bind(assembler->CallStub(callable, context, lhs));
         assembler->Goto(&loop);
       }
@@ -1026,51 +1034,834 @@
     Node* lhs_value = var_fsub_lhs.value();
     Node* rhs_value = var_fsub_rhs.value();
     Node* value = assembler->Float64Sub(lhs_value, rhs_value);
+    var_result.Bind(assembler->ChangeFloat64ToTagged(value));
+    assembler->Goto(&end);
+  }
+  assembler->Bind(&end);
+  return var_result.value();
+}
+
+// static
+compiler::Node* MultiplyStub::Generate(CodeStubAssembler* assembler,
+                                       compiler::Node* left,
+                                       compiler::Node* right,
+                                       compiler::Node* context) {
+  using compiler::Node;
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+
+  // Shared entry point for floating point multiplication.
+  Label do_fmul(assembler);
+  Variable var_lhs_float64(assembler, MachineRepresentation::kFloat64),
+      var_rhs_float64(assembler, MachineRepresentation::kFloat64);
+
+  Node* number_map = assembler->HeapNumberMapConstant();
+
+  // We might need to loop one or two times due to ToNumber conversions.
+  Variable var_lhs(assembler, MachineRepresentation::kTagged),
+      var_rhs(assembler, MachineRepresentation::kTagged);
+  Variable* loop_variables[] = {&var_lhs, &var_rhs};
+  Label loop(assembler, 2, loop_variables);
+  var_lhs.Bind(left);
+  var_rhs.Bind(right);
+  assembler->Goto(&loop);
+  assembler->Bind(&loop);
+  {
+    Node* lhs = var_lhs.value();
+    Node* rhs = var_rhs.value();
+
+    Label lhs_is_smi(assembler), lhs_is_not_smi(assembler);
+    assembler->Branch(assembler->WordIsSmi(lhs), &lhs_is_smi, &lhs_is_not_smi);
+
+    assembler->Bind(&lhs_is_smi);
+    {
+      Label rhs_is_smi(assembler), rhs_is_not_smi(assembler);
+      assembler->Branch(assembler->WordIsSmi(rhs), &rhs_is_smi,
+                        &rhs_is_not_smi);
+
+      assembler->Bind(&rhs_is_smi);
+      {
+        // Both {lhs} and {rhs} are Smis. Convert them to double and multiply.
+        // TODO(epertoso): use SmiMulWithOverflow once available.
+        var_lhs_float64.Bind(assembler->SmiToFloat64(lhs));
+        var_rhs_float64.Bind(assembler->SmiToFloat64(rhs));
+        assembler->Goto(&do_fmul);
+      }
+
+      assembler->Bind(&rhs_is_not_smi);
+      {
+        Node* rhs_map = assembler->LoadMap(rhs);
+
+        // Check if {rhs} is a HeapNumber.
+        Label rhs_is_number(assembler),
+            rhs_is_not_number(assembler, Label::kDeferred);
+        assembler->Branch(assembler->WordEqual(rhs_map, number_map),
+                          &rhs_is_number, &rhs_is_not_number);
+
+        assembler->Bind(&rhs_is_number);
+        {
+          // Convert {lhs} to a double and multiply it with the value of {rhs}.
+          var_lhs_float64.Bind(assembler->SmiToFloat64(lhs));
+          var_rhs_float64.Bind(assembler->LoadHeapNumberValue(rhs));
+          assembler->Goto(&do_fmul);
+        }
+
+        assembler->Bind(&rhs_is_not_number);
+        {
+          // Multiplication is commutative, swap {lhs} with {rhs} and loop.
+          var_lhs.Bind(rhs);
+          var_rhs.Bind(lhs);
+          assembler->Goto(&loop);
+        }
+      }
+    }
+
+    assembler->Bind(&lhs_is_not_smi);
+    {
+      Node* lhs_map = assembler->LoadMap(lhs);
+
+      // Check if {lhs} is a HeapNumber.
+      Label lhs_is_number(assembler),
+          lhs_is_not_number(assembler, Label::kDeferred);
+      assembler->Branch(assembler->WordEqual(lhs_map, number_map),
+                        &lhs_is_number, &lhs_is_not_number);
+
+      assembler->Bind(&lhs_is_number);
+      {
+        // Check if {rhs} is a Smi.
+        Label rhs_is_smi(assembler), rhs_is_not_smi(assembler);
+        assembler->Branch(assembler->WordIsSmi(rhs), &rhs_is_smi,
+                          &rhs_is_not_smi);
+
+        assembler->Bind(&rhs_is_smi);
+        {
+          // Convert {rhs} to a double and multiply it with the value of {lhs}.
+          var_lhs_float64.Bind(assembler->LoadHeapNumberValue(lhs));
+          var_rhs_float64.Bind(assembler->SmiToFloat64(rhs));
+          assembler->Goto(&do_fmul);
+        }
+
+        assembler->Bind(&rhs_is_not_smi);
+        {
+          Node* rhs_map = assembler->LoadMap(rhs);
+
+          // Check if {rhs} is a HeapNumber.
+          Label rhs_is_number(assembler),
+              rhs_is_not_number(assembler, Label::kDeferred);
+          assembler->Branch(assembler->WordEqual(rhs_map, number_map),
+                            &rhs_is_number, &rhs_is_not_number);
+
+          assembler->Bind(&rhs_is_number);
+          {
+            // Both {lhs} and {rhs} are HeapNumbers. Load their values and
+            // multiply them.
+            var_lhs_float64.Bind(assembler->LoadHeapNumberValue(lhs));
+            var_rhs_float64.Bind(assembler->LoadHeapNumberValue(rhs));
+            assembler->Goto(&do_fmul);
+          }
+
+          assembler->Bind(&rhs_is_not_number);
+          {
+            // Multiplication is commutative, swap {lhs} with {rhs} and loop.
+            var_lhs.Bind(rhs);
+            var_rhs.Bind(lhs);
+            assembler->Goto(&loop);
+          }
+        }
+      }
+
+      assembler->Bind(&lhs_is_not_number);
+      {
+        // Convert {lhs} to a Number and loop.
+        Callable callable =
+            CodeFactory::NonNumberToNumber(assembler->isolate());
+        var_lhs.Bind(assembler->CallStub(callable, context, lhs));
+        assembler->Goto(&loop);
+      }
+    }
+  }
+
+  assembler->Bind(&do_fmul);
+  {
+    Node* value =
+        assembler->Float64Mul(var_lhs_float64.value(), var_rhs_float64.value());
     Node* result = assembler->ChangeFloat64ToTagged(value);
-    assembler->Return(result);
+    return result;
   }
 }
 
-void BitwiseAndStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+// static
+compiler::Node* DivideStub::Generate(CodeStubAssembler* assembler,
+                                     compiler::Node* left,
+                                     compiler::Node* right,
+                                     compiler::Node* context) {
+  using compiler::Node;
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+
+  // Shared entry point for floating point division.
+  Label do_fdiv(assembler), end(assembler);
+  Variable var_dividend_float64(assembler, MachineRepresentation::kFloat64),
+      var_divisor_float64(assembler, MachineRepresentation::kFloat64);
+
+  Node* number_map = assembler->HeapNumberMapConstant();
+
+  // We might need to loop one or two times due to ToNumber conversions.
+  Variable var_dividend(assembler, MachineRepresentation::kTagged),
+      var_divisor(assembler, MachineRepresentation::kTagged),
+      var_result(assembler, MachineRepresentation::kTagged);
+  Variable* loop_variables[] = {&var_dividend, &var_divisor};
+  Label loop(assembler, 2, loop_variables);
+  var_dividend.Bind(left);
+  var_divisor.Bind(right);
+  assembler->Goto(&loop);
+  assembler->Bind(&loop);
+  {
+    Node* dividend = var_dividend.value();
+    Node* divisor = var_divisor.value();
+
+    Label dividend_is_smi(assembler), dividend_is_not_smi(assembler);
+    assembler->Branch(assembler->WordIsSmi(dividend), &dividend_is_smi,
+                      &dividend_is_not_smi);
+
+    assembler->Bind(&dividend_is_smi);
+    {
+      Label divisor_is_smi(assembler), divisor_is_not_smi(assembler);
+      assembler->Branch(assembler->WordIsSmi(divisor), &divisor_is_smi,
+                        &divisor_is_not_smi);
+
+      assembler->Bind(&divisor_is_smi);
+      {
+        Label bailout(assembler);
+
+        // Do floating point division if {divisor} is zero.
+        assembler->GotoIf(
+            assembler->WordEqual(divisor, assembler->IntPtrConstant(0)),
+            &bailout);
+
+        // Do floating point division {dividend} is zero and {divisor} is
+        // negative.
+        Label dividend_is_zero(assembler), dividend_is_not_zero(assembler);
+        assembler->Branch(
+            assembler->WordEqual(dividend, assembler->IntPtrConstant(0)),
+            &dividend_is_zero, &dividend_is_not_zero);
+
+        assembler->Bind(&dividend_is_zero);
+        {
+          assembler->GotoIf(
+              assembler->IntPtrLessThan(divisor, assembler->IntPtrConstant(0)),
+              &bailout);
+          assembler->Goto(&dividend_is_not_zero);
+        }
+        assembler->Bind(&dividend_is_not_zero);
+
+        Node* untagged_divisor = assembler->SmiUntag(divisor);
+        Node* untagged_dividend = assembler->SmiUntag(dividend);
+
+        // Do floating point division if {dividend} is kMinInt (or kMinInt - 1
+        // if the Smi size is 31) and {divisor} is -1.
+        Label divisor_is_minus_one(assembler),
+            divisor_is_not_minus_one(assembler);
+        assembler->Branch(assembler->Word32Equal(untagged_divisor,
+                                                 assembler->Int32Constant(-1)),
+                          &divisor_is_minus_one, &divisor_is_not_minus_one);
+
+        assembler->Bind(&divisor_is_minus_one);
+        {
+          assembler->GotoIf(
+              assembler->Word32Equal(
+                  untagged_dividend,
+                  assembler->Int32Constant(
+                      kSmiValueSize == 32 ? kMinInt : (kMinInt >> 1))),
+              &bailout);
+          assembler->Goto(&divisor_is_not_minus_one);
+        }
+        assembler->Bind(&divisor_is_not_minus_one);
+
+        // TODO(epertoso): consider adding a machine instruction that returns
+        // both the result and the remainder.
+        Node* untagged_result =
+            assembler->Int32Div(untagged_dividend, untagged_divisor);
+        Node* truncated =
+            assembler->IntPtrMul(untagged_result, untagged_divisor);
+        // Do floating point division if the remainder is not 0.
+        assembler->GotoIf(
+            assembler->Word32NotEqual(untagged_dividend, truncated), &bailout);
+        var_result.Bind(assembler->SmiTag(untagged_result));
+        assembler->Goto(&end);
+
+        // Bailout: convert {dividend} and {divisor} to double and do double
+        // division.
+        assembler->Bind(&bailout);
+        {
+          var_dividend_float64.Bind(assembler->SmiToFloat64(dividend));
+          var_divisor_float64.Bind(assembler->SmiToFloat64(divisor));
+          assembler->Goto(&do_fdiv);
+        }
+      }
+
+      assembler->Bind(&divisor_is_not_smi);
+      {
+        Node* divisor_map = assembler->LoadMap(divisor);
+
+        // Check if {divisor} is a HeapNumber.
+        Label divisor_is_number(assembler),
+            divisor_is_not_number(assembler, Label::kDeferred);
+        assembler->Branch(assembler->WordEqual(divisor_map, number_map),
+                          &divisor_is_number, &divisor_is_not_number);
+
+        assembler->Bind(&divisor_is_number);
+        {
+          // Convert {dividend} to a double and divide it with the value of
+          // {divisor}.
+          var_dividend_float64.Bind(assembler->SmiToFloat64(dividend));
+          var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor));
+          assembler->Goto(&do_fdiv);
+        }
+
+        assembler->Bind(&divisor_is_not_number);
+        {
+          // Convert {divisor} to a number and loop.
+          Callable callable =
+              CodeFactory::NonNumberToNumber(assembler->isolate());
+          var_divisor.Bind(assembler->CallStub(callable, context, divisor));
+          assembler->Goto(&loop);
+        }
+      }
+    }
+
+    assembler->Bind(&dividend_is_not_smi);
+    {
+      Node* dividend_map = assembler->LoadMap(dividend);
+
+      // Check if {dividend} is a HeapNumber.
+      Label dividend_is_number(assembler),
+          dividend_is_not_number(assembler, Label::kDeferred);
+      assembler->Branch(assembler->WordEqual(dividend_map, number_map),
+                        &dividend_is_number, &dividend_is_not_number);
+
+      assembler->Bind(&dividend_is_number);
+      {
+        // Check if {divisor} is a Smi.
+        Label divisor_is_smi(assembler), divisor_is_not_smi(assembler);
+        assembler->Branch(assembler->WordIsSmi(divisor), &divisor_is_smi,
+                          &divisor_is_not_smi);
+
+        assembler->Bind(&divisor_is_smi);
+        {
+          // Convert {divisor} to a double and use it for a floating point
+          // division.
+          var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend));
+          var_divisor_float64.Bind(assembler->SmiToFloat64(divisor));
+          assembler->Goto(&do_fdiv);
+        }
+
+        assembler->Bind(&divisor_is_not_smi);
+        {
+          Node* divisor_map = assembler->LoadMap(divisor);
+
+          // Check if {divisor} is a HeapNumber.
+          Label divisor_is_number(assembler),
+              divisor_is_not_number(assembler, Label::kDeferred);
+          assembler->Branch(assembler->WordEqual(divisor_map, number_map),
+                            &divisor_is_number, &divisor_is_not_number);
+
+          assembler->Bind(&divisor_is_number);
+          {
+            // Both {dividend} and {divisor} are HeapNumbers. Load their values
+            // and divide them.
+            var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend));
+            var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor));
+            assembler->Goto(&do_fdiv);
+          }
+
+          assembler->Bind(&divisor_is_not_number);
+          {
+            // Convert {divisor} to a number and loop.
+            Callable callable =
+                CodeFactory::NonNumberToNumber(assembler->isolate());
+            var_divisor.Bind(assembler->CallStub(callable, context, divisor));
+            assembler->Goto(&loop);
+          }
+        }
+      }
+
+      assembler->Bind(&dividend_is_not_number);
+      {
+        // Convert {dividend} to a Number and loop.
+        Callable callable =
+            CodeFactory::NonNumberToNumber(assembler->isolate());
+        var_dividend.Bind(assembler->CallStub(callable, context, dividend));
+        assembler->Goto(&loop);
+      }
+    }
+  }
+
+  assembler->Bind(&do_fdiv);
+  {
+    Node* value = assembler->Float64Div(var_dividend_float64.value(),
+                                        var_divisor_float64.value());
+    var_result.Bind(assembler->ChangeFloat64ToTagged(value));
+    assembler->Goto(&end);
+  }
+  assembler->Bind(&end);
+  return var_result.value();
+}
+
+// static
+compiler::Node* ModulusStub::Generate(CodeStubAssembler* assembler,
+                                      compiler::Node* left,
+                                      compiler::Node* right,
+                                      compiler::Node* context) {
+  using compiler::Node;
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+
+  // Shared entry point for floating point modulus.
+  Label do_fmod(assembler);
+  Variable var_dividend_float64(assembler, MachineRepresentation::kFloat64),
+      var_divisor_float64(assembler, MachineRepresentation::kFloat64);
+
+  Node* number_map = assembler->HeapNumberMapConstant();
+
+  // We might need to loop one or two times due to ToNumber conversions.
+  Variable var_dividend(assembler, MachineRepresentation::kTagged),
+      var_divisor(assembler, MachineRepresentation::kTagged);
+  Variable* loop_variables[] = {&var_dividend, &var_divisor};
+  Label loop(assembler, 2, loop_variables);
+  var_dividend.Bind(left);
+  var_divisor.Bind(right);
+  assembler->Goto(&loop);
+  assembler->Bind(&loop);
+  {
+    Node* dividend = var_dividend.value();
+    Node* divisor = var_divisor.value();
+
+    Label dividend_is_smi(assembler), dividend_is_not_smi(assembler);
+    assembler->Branch(assembler->WordIsSmi(dividend), &dividend_is_smi,
+                      &dividend_is_not_smi);
+
+    assembler->Bind(&dividend_is_smi);
+    {
+      Label dividend_is_not_zero(assembler);
+      Label divisor_is_smi(assembler), divisor_is_not_smi(assembler);
+      assembler->Branch(assembler->WordIsSmi(divisor), &divisor_is_smi,
+                        &divisor_is_not_smi);
+
+      assembler->Bind(&divisor_is_smi);
+      {
+        var_dividend_float64.Bind(assembler->SmiToFloat64(dividend));
+        var_divisor_float64.Bind(assembler->SmiToFloat64(divisor));
+        assembler->Goto(&do_fmod);
+      }
+
+      assembler->Bind(&divisor_is_not_smi);
+      {
+        Node* divisor_map = assembler->LoadMap(divisor);
+
+        // Check if {divisor} is a HeapNumber.
+        Label divisor_is_number(assembler),
+            divisor_is_not_number(assembler, Label::kDeferred);
+        assembler->Branch(assembler->WordEqual(divisor_map, number_map),
+                          &divisor_is_number, &divisor_is_not_number);
+
+        assembler->Bind(&divisor_is_number);
+        {
+          // Convert {dividend} to a double and compute its modulus with the
+          // value of {dividend}.
+          var_dividend_float64.Bind(assembler->SmiToFloat64(dividend));
+          var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor));
+          assembler->Goto(&do_fmod);
+        }
+
+        assembler->Bind(&divisor_is_not_number);
+        {
+          // Convert {divisor} to a number and loop.
+          Callable callable =
+              CodeFactory::NonNumberToNumber(assembler->isolate());
+          var_divisor.Bind(assembler->CallStub(callable, context, divisor));
+          assembler->Goto(&loop);
+        }
+      }
+    }
+
+    assembler->Bind(&dividend_is_not_smi);
+    {
+      Node* dividend_map = assembler->LoadMap(dividend);
+
+      // Check if {dividend} is a HeapNumber.
+      Label dividend_is_number(assembler),
+          dividend_is_not_number(assembler, Label::kDeferred);
+      assembler->Branch(assembler->WordEqual(dividend_map, number_map),
+                        &dividend_is_number, &dividend_is_not_number);
+
+      assembler->Bind(&dividend_is_number);
+      {
+        // Check if {divisor} is a Smi.
+        Label divisor_is_smi(assembler), divisor_is_not_smi(assembler);
+        assembler->Branch(assembler->WordIsSmi(divisor), &divisor_is_smi,
+                          &divisor_is_not_smi);
+
+        assembler->Bind(&divisor_is_smi);
+        {
+          // Convert {divisor} to a double and compute {dividend}'s modulus with
+          // it.
+          var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend));
+          var_divisor_float64.Bind(assembler->SmiToFloat64(divisor));
+          assembler->Goto(&do_fmod);
+        }
+
+        assembler->Bind(&divisor_is_not_smi);
+        {
+          Node* divisor_map = assembler->LoadMap(divisor);
+
+          // Check if {divisor} is a HeapNumber.
+          Label divisor_is_number(assembler),
+              divisor_is_not_number(assembler, Label::kDeferred);
+          assembler->Branch(assembler->WordEqual(divisor_map, number_map),
+                            &divisor_is_number, &divisor_is_not_number);
+
+          assembler->Bind(&divisor_is_number);
+          {
+            // Both {dividend} and {divisor} are HeapNumbers. Load their values
+            // and compute their modulus.
+            var_dividend_float64.Bind(assembler->LoadHeapNumberValue(dividend));
+            var_divisor_float64.Bind(assembler->LoadHeapNumberValue(divisor));
+            assembler->Goto(&do_fmod);
+          }
+
+          assembler->Bind(&divisor_is_not_number);
+          {
+            // Convert {divisor} to a number and loop.
+            Callable callable =
+                CodeFactory::NonNumberToNumber(assembler->isolate());
+            var_divisor.Bind(assembler->CallStub(callable, context, divisor));
+            assembler->Goto(&loop);
+          }
+        }
+      }
+
+      assembler->Bind(&dividend_is_not_number);
+      {
+        // Convert {dividend} to a Number and loop.
+        Callable callable =
+            CodeFactory::NonNumberToNumber(assembler->isolate());
+        var_dividend.Bind(assembler->CallStub(callable, context, dividend));
+        assembler->Goto(&loop);
+      }
+    }
+  }
+
+  assembler->Bind(&do_fmod);
+  {
+    Node* value = assembler->Float64Mod(var_dividend_float64.value(),
+                                        var_divisor_float64.value());
+    Node* result = assembler->ChangeFloat64ToTagged(value);
+    return result;
+  }
+}
+
+// static
+compiler::Node* ShiftLeftStub::Generate(CodeStubAssembler* assembler,
+                                        compiler::Node* left,
+                                        compiler::Node* right,
+                                        compiler::Node* context) {
   using compiler::Node;
 
-  Node* lhs = assembler->Parameter(0);
-  Node* rhs = assembler->Parameter(1);
-  Node* context = assembler->Parameter(2);
-  Node* lhs_value = assembler->TruncateTaggedToWord32(context, lhs);
-  Node* rhs_value = assembler->TruncateTaggedToWord32(context, rhs);
+  Node* lhs_value = assembler->TruncateTaggedToWord32(context, left);
+  Node* rhs_value = assembler->TruncateTaggedToWord32(context, right);
+  Node* shift_count =
+      assembler->Word32And(rhs_value, assembler->Int32Constant(0x1f));
+  Node* value = assembler->Word32Shl(lhs_value, shift_count);
+  Node* result = assembler->ChangeInt32ToTagged(value);
+  return result;
+}
+
+// static
+compiler::Node* ShiftRightStub::Generate(CodeStubAssembler* assembler,
+                                         compiler::Node* left,
+                                         compiler::Node* right,
+                                         compiler::Node* context) {
+  using compiler::Node;
+
+  Node* lhs_value = assembler->TruncateTaggedToWord32(context, left);
+  Node* rhs_value = assembler->TruncateTaggedToWord32(context, right);
+  Node* shift_count =
+      assembler->Word32And(rhs_value, assembler->Int32Constant(0x1f));
+  Node* value = assembler->Word32Sar(lhs_value, shift_count);
+  Node* result = assembler->ChangeInt32ToTagged(value);
+  return result;
+}
+
+// static
+compiler::Node* ShiftRightLogicalStub::Generate(CodeStubAssembler* assembler,
+                                                compiler::Node* left,
+                                                compiler::Node* right,
+                                                compiler::Node* context) {
+  using compiler::Node;
+
+  Node* lhs_value = assembler->TruncateTaggedToWord32(context, left);
+  Node* rhs_value = assembler->TruncateTaggedToWord32(context, right);
+  Node* shift_count =
+      assembler->Word32And(rhs_value, assembler->Int32Constant(0x1f));
+  Node* value = assembler->Word32Shr(lhs_value, shift_count);
+  Node* result = assembler->ChangeUint32ToTagged(value);
+  return result;
+}
+
+// static
+compiler::Node* BitwiseAndStub::Generate(CodeStubAssembler* assembler,
+                                         compiler::Node* left,
+                                         compiler::Node* right,
+                                         compiler::Node* context) {
+  using compiler::Node;
+
+  Node* lhs_value = assembler->TruncateTaggedToWord32(context, left);
+  Node* rhs_value = assembler->TruncateTaggedToWord32(context, right);
   Node* value = assembler->Word32And(lhs_value, rhs_value);
   Node* result = assembler->ChangeInt32ToTagged(value);
-  assembler->Return(result);
+  return result;
 }
 
-void BitwiseOrStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+// static
+compiler::Node* BitwiseOrStub::Generate(CodeStubAssembler* assembler,
+                                        compiler::Node* left,
+                                        compiler::Node* right,
+                                        compiler::Node* context) {
   using compiler::Node;
 
-  Node* lhs = assembler->Parameter(0);
-  Node* rhs = assembler->Parameter(1);
-  Node* context = assembler->Parameter(2);
-  Node* lhs_value = assembler->TruncateTaggedToWord32(context, lhs);
-  Node* rhs_value = assembler->TruncateTaggedToWord32(context, rhs);
+  Node* lhs_value = assembler->TruncateTaggedToWord32(context, left);
+  Node* rhs_value = assembler->TruncateTaggedToWord32(context, right);
   Node* value = assembler->Word32Or(lhs_value, rhs_value);
   Node* result = assembler->ChangeInt32ToTagged(value);
-  assembler->Return(result);
+  return result;
 }
 
-void BitwiseXorStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+// static
+compiler::Node* BitwiseXorStub::Generate(CodeStubAssembler* assembler,
+                                         compiler::Node* left,
+                                         compiler::Node* right,
+                                         compiler::Node* context) {
   using compiler::Node;
 
-  Node* lhs = assembler->Parameter(0);
-  Node* rhs = assembler->Parameter(1);
-  Node* context = assembler->Parameter(2);
-  Node* lhs_value = assembler->TruncateTaggedToWord32(context, lhs);
-  Node* rhs_value = assembler->TruncateTaggedToWord32(context, rhs);
+  Node* lhs_value = assembler->TruncateTaggedToWord32(context, left);
+  Node* rhs_value = assembler->TruncateTaggedToWord32(context, right);
   Node* value = assembler->Word32Xor(lhs_value, rhs_value);
   Node* result = assembler->ChangeInt32ToTagged(value);
-  assembler->Return(result);
+  return result;
+}
+
+// static
+compiler::Node* IncStub::Generate(CodeStubAssembler* assembler,
+                                  compiler::Node* value,
+                                  compiler::Node* context) {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Variable Variable;
+
+  // Shared entry for floating point increment.
+  Label do_finc(assembler), end(assembler);
+  Variable var_finc_value(assembler, MachineRepresentation::kFloat64);
+
+  // We might need to try again due to ToNumber conversion.
+  Variable value_var(assembler, MachineRepresentation::kTagged);
+  Variable result_var(assembler, MachineRepresentation::kTagged);
+  Label start(assembler, &value_var);
+  value_var.Bind(value);
+  assembler->Goto(&start);
+  assembler->Bind(&start);
+  {
+    value = value_var.value();
+
+    Label if_issmi(assembler), if_isnotsmi(assembler);
+    assembler->Branch(assembler->WordIsSmi(value), &if_issmi, &if_isnotsmi);
+
+    assembler->Bind(&if_issmi);
+    {
+      // Try fast Smi addition first.
+      Node* one = assembler->SmiConstant(Smi::FromInt(1));
+      Node* pair = assembler->SmiAddWithOverflow(value, one);
+      Node* overflow = assembler->Projection(1, pair);
+
+      // Check if the Smi additon overflowed.
+      Label if_overflow(assembler), if_notoverflow(assembler);
+      assembler->Branch(overflow, &if_overflow, &if_notoverflow);
+
+      assembler->Bind(&if_notoverflow);
+      result_var.Bind(assembler->Projection(0, pair));
+      assembler->Goto(&end);
+
+      assembler->Bind(&if_overflow);
+      {
+        var_finc_value.Bind(assembler->SmiToFloat64(value));
+        assembler->Goto(&do_finc);
+      }
+    }
+
+    assembler->Bind(&if_isnotsmi);
+    {
+      // Check if the value is a HeapNumber.
+      Label if_valueisnumber(assembler),
+          if_valuenotnumber(assembler, Label::kDeferred);
+      Node* value_map = assembler->LoadMap(value);
+      Node* number_map = assembler->HeapNumberMapConstant();
+      assembler->Branch(assembler->WordEqual(value_map, number_map),
+                        &if_valueisnumber, &if_valuenotnumber);
+
+      assembler->Bind(&if_valueisnumber);
+      {
+        // Load the HeapNumber value.
+        var_finc_value.Bind(assembler->LoadHeapNumberValue(value));
+        assembler->Goto(&do_finc);
+      }
+
+      assembler->Bind(&if_valuenotnumber);
+      {
+        // Convert to a Number first and try again.
+        Callable callable =
+            CodeFactory::NonNumberToNumber(assembler->isolate());
+        value_var.Bind(assembler->CallStub(callable, context, value));
+        assembler->Goto(&start);
+      }
+    }
+  }
+
+  assembler->Bind(&do_finc);
+  {
+    Node* finc_value = var_finc_value.value();
+    Node* one = assembler->Float64Constant(1.0);
+    Node* finc_result = assembler->Float64Add(finc_value, one);
+    result_var.Bind(assembler->ChangeFloat64ToTagged(finc_result));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&end);
+  return result_var.value();
+}
+
+// static
+compiler::Node* DecStub::Generate(CodeStubAssembler* assembler,
+                                  compiler::Node* value,
+                                  compiler::Node* context) {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Variable Variable;
+
+  // Shared entry for floating point decrement.
+  Label do_fdec(assembler), end(assembler);
+  Variable var_fdec_value(assembler, MachineRepresentation::kFloat64);
+
+  // We might need to try again due to ToNumber conversion.
+  Variable value_var(assembler, MachineRepresentation::kTagged);
+  Variable result_var(assembler, MachineRepresentation::kTagged);
+  Label start(assembler, &value_var);
+  value_var.Bind(value);
+  assembler->Goto(&start);
+  assembler->Bind(&start);
+  {
+    value = value_var.value();
+
+    Label if_issmi(assembler), if_isnotsmi(assembler);
+    assembler->Branch(assembler->WordIsSmi(value), &if_issmi, &if_isnotsmi);
+
+    assembler->Bind(&if_issmi);
+    {
+      // Try fast Smi subtraction first.
+      Node* one = assembler->SmiConstant(Smi::FromInt(1));
+      Node* pair = assembler->SmiSubWithOverflow(value, one);
+      Node* overflow = assembler->Projection(1, pair);
+
+      // Check if the Smi subtraction overflowed.
+      Label if_overflow(assembler), if_notoverflow(assembler);
+      assembler->Branch(overflow, &if_overflow, &if_notoverflow);
+
+      assembler->Bind(&if_notoverflow);
+      result_var.Bind(assembler->Projection(0, pair));
+      assembler->Goto(&end);
+
+      assembler->Bind(&if_overflow);
+      {
+        var_fdec_value.Bind(assembler->SmiToFloat64(value));
+        assembler->Goto(&do_fdec);
+      }
+    }
+
+    assembler->Bind(&if_isnotsmi);
+    {
+      // Check if the value is a HeapNumber.
+      Label if_valueisnumber(assembler),
+          if_valuenotnumber(assembler, Label::kDeferred);
+      Node* value_map = assembler->LoadMap(value);
+      Node* number_map = assembler->HeapNumberMapConstant();
+      assembler->Branch(assembler->WordEqual(value_map, number_map),
+                        &if_valueisnumber, &if_valuenotnumber);
+
+      assembler->Bind(&if_valueisnumber);
+      {
+        // Load the HeapNumber value.
+        var_fdec_value.Bind(assembler->LoadHeapNumberValue(value));
+        assembler->Goto(&do_fdec);
+      }
+
+      assembler->Bind(&if_valuenotnumber);
+      {
+        // Convert to a Number first and try again.
+        Callable callable =
+            CodeFactory::NonNumberToNumber(assembler->isolate());
+        value_var.Bind(assembler->CallStub(callable, context, value));
+        assembler->Goto(&start);
+      }
+    }
+  }
+
+  assembler->Bind(&do_fdec);
+  {
+    Node* fdec_value = var_fdec_value.value();
+    Node* one = assembler->Float64Constant(1.0);
+    Node* fdec_result = assembler->Float64Sub(fdec_value, one);
+    result_var.Bind(assembler->ChangeFloat64ToTagged(fdec_result));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&end);
+  return result_var.value();
+}
+
+void InstanceOfStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+
+  Node* object = assembler->Parameter(0);
+  Node* callable = assembler->Parameter(1);
+  Node* context = assembler->Parameter(2);
+
+  Label return_runtime(assembler, Label::kDeferred);
+
+  // Check if no one installed @@hasInstance somewhere.
+  assembler->GotoUnless(
+      assembler->WordEqual(
+          assembler->LoadObjectField(
+              assembler->LoadRoot(Heap::kHasInstanceProtectorRootIndex),
+              PropertyCell::kValueOffset),
+          assembler->SmiConstant(Smi::FromInt(Isolate::kArrayProtectorValid))),
+      &return_runtime);
+
+  // Check if {callable} is a valid receiver.
+  assembler->GotoIf(assembler->WordIsSmi(callable), &return_runtime);
+  assembler->GotoIf(
+      assembler->Word32Equal(
+          assembler->Word32And(
+              assembler->LoadMapBitField(assembler->LoadMap(callable)),
+              assembler->Int32Constant(1 << Map::kIsCallable)),
+          assembler->Int32Constant(0)),
+      &return_runtime);
+
+  // Use the inline OrdinaryHasInstance directly.
+  assembler->Return(assembler->OrdinaryHasInstance(context, callable, object));
+
+  // TODO(bmeurer): Use GetPropertyStub here once available.
+  assembler->Bind(&return_runtime);
+  assembler->TailCallRuntime(Runtime::kInstanceOf, context, object, callable);
 }
 
 namespace {
@@ -1082,11 +1873,11 @@
   kGreaterThanOrEqual
 };
 
-void GenerateAbstractRelationalComparison(
-    compiler::CodeStubAssembler* assembler, RelationalComparisonMode mode) {
-  typedef compiler::CodeStubAssembler::Label Label;
+void GenerateAbstractRelationalComparison(CodeStubAssembler* assembler,
+                                          RelationalComparisonMode mode) {
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* context = assembler->Parameter(2);
 
@@ -1425,17 +2216,16 @@
 
 enum ResultMode { kDontNegateResult, kNegateResult };
 
-void GenerateEqual_Same(compiler::CodeStubAssembler* assembler,
-                        compiler::Node* value,
-                        compiler::CodeStubAssembler::Label* if_equal,
-                        compiler::CodeStubAssembler::Label* if_notequal) {
+void GenerateEqual_Same(CodeStubAssembler* assembler, compiler::Node* value,
+                        CodeStubAssembler::Label* if_equal,
+                        CodeStubAssembler::Label* if_notequal) {
   // In case of abstract or strict equality checks, we need additional checks
   // for NaN values because they are not considered equal, even if both the
   // left and the right hand side reference exactly the same value.
   // TODO(bmeurer): This seems to violate the SIMD.js specification, but it
   // seems to be what is tested in the current SIMD.js testsuite.
 
-  typedef compiler::CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
 
   // Check if {value} is a Smi or a HeapObject.
@@ -1472,11 +2262,10 @@
 }
 
 void GenerateEqual_Simd128Value_HeapObject(
-    compiler::CodeStubAssembler* assembler, compiler::Node* lhs,
-    compiler::Node* lhs_map, compiler::Node* rhs, compiler::Node* rhs_map,
-    compiler::CodeStubAssembler::Label* if_equal,
-    compiler::CodeStubAssembler::Label* if_notequal) {
-  typedef compiler::CodeStubAssembler::Label Label;
+    CodeStubAssembler* assembler, compiler::Node* lhs, compiler::Node* lhs_map,
+    compiler::Node* rhs, compiler::Node* rhs_map,
+    CodeStubAssembler::Label* if_equal, CodeStubAssembler::Label* if_notequal) {
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
 
   // Check if {lhs} and {rhs} have the same map.
@@ -1551,14 +2340,14 @@
 }
 
 // ES6 section 7.2.12 Abstract Equality Comparison
-void GenerateEqual(compiler::CodeStubAssembler* assembler, ResultMode mode) {
+void GenerateEqual(CodeStubAssembler* assembler, ResultMode mode) {
   // This is a slightly optimized version of Object::Equals represented as
   // scheduled TurboFan graph utilizing the CodeStubAssembler. Whenever you
   // change something functionality wise in here, remember to update the
   // Object::Equals method as well.
-  typedef compiler::CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* context = assembler->Parameter(2);
 
@@ -2079,8 +2868,7 @@
   assembler->Return(assembler->BooleanConstant(mode == kNegateResult));
 }
 
-void GenerateStrictEqual(compiler::CodeStubAssembler* assembler,
-                         ResultMode mode) {
+void GenerateStrictEqual(CodeStubAssembler* assembler, ResultMode mode) {
   // Here's pseudo-code for the algorithm below in case of kDontNegateResult
   // mode; for kNegateResult mode we properly negate the result.
   //
@@ -2129,7 +2917,7 @@
   //   }
   // }
 
-  typedef compiler::CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
 
   Node* lhs = assembler->Parameter(0);
@@ -2336,11 +3124,11 @@
   assembler->Return(assembler->BooleanConstant(mode == kNegateResult));
 }
 
-void GenerateStringRelationalComparison(compiler::CodeStubAssembler* assembler,
+void GenerateStringRelationalComparison(CodeStubAssembler* assembler,
                                         RelationalComparisonMode mode) {
-  typedef compiler::CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* lhs = assembler->Parameter(0);
   Node* rhs = assembler->Parameter(1);
@@ -2519,8 +3307,7 @@
   }
 }
 
-void GenerateStringEqual(compiler::CodeStubAssembler* assembler,
-                         ResultMode mode) {
+void GenerateStringEqual(CodeStubAssembler* assembler, ResultMode mode) {
   // Here's pseudo-code for the algorithm below in case of kDontNegateResult
   // mode; for kNegateResult mode we properly negate the result.
   //
@@ -2537,9 +3324,9 @@
   // }
   // return %StringEqual(lhs, rhs);
 
-  typedef compiler::CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* lhs = assembler->Parameter(0);
   Node* rhs = assembler->Parameter(1);
@@ -2698,80 +3485,86 @@
 
 }  // namespace
 
-void LessThanStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void LoadApiGetterStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+  Node* context = assembler->Parameter(3);
+  Node* receiver = assembler->Parameter(0);
+  // For now we only support receiver_is_holder.
+  DCHECK(receiver_is_holder());
+  Node* holder = receiver;
+  Node* map = assembler->LoadMap(receiver);
+  Node* descriptors = assembler->LoadMapDescriptors(map);
+  Node* offset =
+      assembler->Int32Constant(DescriptorArray::ToValueIndex(index()));
+  Node* callback = assembler->LoadFixedArrayElement(descriptors, offset);
+  assembler->TailCallStub(CodeFactory::ApiGetter(isolate()), context, receiver,
+                          holder, callback);
+}
+
+void LessThanStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateAbstractRelationalComparison(assembler, kLessThan);
 }
 
-void LessThanOrEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void LessThanOrEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateAbstractRelationalComparison(assembler, kLessThanOrEqual);
 }
 
-void GreaterThanStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void GreaterThanStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateAbstractRelationalComparison(assembler, kGreaterThan);
 }
 
 void GreaterThanOrEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+    CodeStubAssembler* assembler) const {
   GenerateAbstractRelationalComparison(assembler, kGreaterThanOrEqual);
 }
 
-void EqualStub::GenerateAssembly(compiler::CodeStubAssembler* assembler) const {
+void EqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateEqual(assembler, kDontNegateResult);
 }
 
-void NotEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void NotEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateEqual(assembler, kNegateResult);
 }
 
-void StrictEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void StrictEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateStrictEqual(assembler, kDontNegateResult);
 }
 
-void StrictNotEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void StrictNotEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateStrictEqual(assembler, kNegateResult);
 }
 
-void StringEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void StringEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateStringEqual(assembler, kDontNegateResult);
 }
 
-void StringNotEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void StringNotEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateStringEqual(assembler, kNegateResult);
 }
 
-void StringLessThanStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void StringLessThanStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   GenerateStringRelationalComparison(assembler, kLessThan);
 }
 
 void StringLessThanOrEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+    CodeStubAssembler* assembler) const {
   GenerateStringRelationalComparison(assembler, kLessThanOrEqual);
 }
 
 void StringGreaterThanStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+    CodeStubAssembler* assembler) const {
   GenerateStringRelationalComparison(assembler, kGreaterThan);
 }
 
 void StringGreaterThanOrEqualStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+    CodeStubAssembler* assembler) const {
   GenerateStringRelationalComparison(assembler, kGreaterThanOrEqual);
 }
 
-void ToLengthStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
-  typedef compiler::CodeStubAssembler::Label Label;
+void ToLengthStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* context = assembler->Parameter(1);
 
@@ -2844,13 +3637,13 @@
   }
 }
 
-void ToBooleanStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+void ToBooleanStub::GenerateAssembly(CodeStubAssembler* assembler) const {
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Label Label;
 
   Node* value = assembler->Parameter(0);
-  Label if_valueissmi(assembler), if_valueisnotsmi(assembler);
+  Label if_valueissmi(assembler), if_valueisnotsmi(assembler),
+      return_true(assembler), return_false(assembler);
 
   // Check if {value} is a Smi or a HeapObject.
   assembler->Branch(assembler->WordIsSmi(value), &if_valueissmi,
@@ -2859,21 +3652,15 @@
   assembler->Bind(&if_valueissmi);
   {
     // The {value} is a Smi, only need to check against zero.
-    Label if_valueiszero(assembler), if_valueisnotzero(assembler);
     assembler->Branch(assembler->SmiEqual(value, assembler->SmiConstant(0)),
-                      &if_valueiszero, &if_valueisnotzero);
-
-    assembler->Bind(&if_valueiszero);
-    assembler->Return(assembler->BooleanConstant(false));
-
-    assembler->Bind(&if_valueisnotzero);
-    assembler->Return(assembler->BooleanConstant(true));
+                      &return_false, &return_true);
   }
 
   assembler->Bind(&if_valueisnotsmi);
   {
-    Label if_valueisstring(assembler), if_valueisheapnumber(assembler),
-        if_valueisoddball(assembler), if_valueisother(assembler);
+    Label if_valueisstring(assembler), if_valueisnotstring(assembler),
+        if_valueisheapnumber(assembler), if_valueisoddball(assembler),
+        if_valueisother(assembler);
 
     // The {value} is a HeapObject, load its map.
     Node* value_map = assembler->LoadMap(value);
@@ -2885,24 +3672,20 @@
 
     // Dispatch based on the instance type; we distinguish all String instance
     // types, the HeapNumber type and the Oddball type.
-    size_t const kNumCases = FIRST_NONSTRING_TYPE + 2;
+    assembler->Branch(assembler->Int32LessThan(
+                          value_instance_type,
+                          assembler->Int32Constant(FIRST_NONSTRING_TYPE)),
+                      &if_valueisstring, &if_valueisnotstring);
+    assembler->Bind(&if_valueisnotstring);
+    size_t const kNumCases = 2;
     Label* case_labels[kNumCases];
     int32_t case_values[kNumCases];
-    for (int32_t i = 0; i < FIRST_NONSTRING_TYPE; ++i) {
-      case_labels[i] = new Label(assembler);
-      case_values[i] = i;
-    }
-    case_labels[FIRST_NONSTRING_TYPE + 0] = &if_valueisheapnumber;
-    case_values[FIRST_NONSTRING_TYPE + 0] = HEAP_NUMBER_TYPE;
-    case_labels[FIRST_NONSTRING_TYPE + 1] = &if_valueisoddball;
-    case_values[FIRST_NONSTRING_TYPE + 1] = ODDBALL_TYPE;
+    case_labels[0] = &if_valueisheapnumber;
+    case_values[0] = HEAP_NUMBER_TYPE;
+    case_labels[1] = &if_valueisoddball;
+    case_values[1] = ODDBALL_TYPE;
     assembler->Switch(value_instance_type, &if_valueisother, case_values,
                       case_labels, arraysize(case_values));
-    for (int32_t i = 0; i < FIRST_NONSTRING_TYPE; ++i) {
-      assembler->Bind(case_labels[i]);
-      assembler->Goto(&if_valueisstring);
-      delete case_labels[i];
-    }
 
     assembler->Bind(&if_valueisstring);
     {
@@ -2911,16 +3694,9 @@
           assembler->LoadObjectField(value, String::kLengthOffset);
 
       // Check if the {value} is the empty string.
-      Label if_valueisempty(assembler), if_valueisnotempty(assembler);
       assembler->Branch(
           assembler->SmiEqual(value_length, assembler->SmiConstant(0)),
-          &if_valueisempty, &if_valueisnotempty);
-
-      assembler->Bind(&if_valueisempty);
-      assembler->Return(assembler->BooleanConstant(false));
-
-      assembler->Bind(&if_valueisnotempty);
-      assembler->Return(assembler->BooleanConstant(true));
+          &return_false, &return_true);
     }
 
     assembler->Bind(&if_valueisheapnumber);
@@ -2929,25 +3705,15 @@
           MachineType::Float64(), value,
           assembler->IntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag));
 
-      Label if_valueispositive(assembler), if_valueisnotpositive(assembler),
-          if_valueisnegative(assembler), if_valueisnanorzero(assembler);
+      Label if_valueisnotpositive(assembler);
       assembler->Branch(assembler->Float64LessThan(
                             assembler->Float64Constant(0.0), value_value),
-                        &if_valueispositive, &if_valueisnotpositive);
-
-      assembler->Bind(&if_valueispositive);
-      assembler->Return(assembler->BooleanConstant(true));
+                        &return_true, &if_valueisnotpositive);
 
       assembler->Bind(&if_valueisnotpositive);
       assembler->Branch(assembler->Float64LessThan(
                             value_value, assembler->Float64Constant(0.0)),
-                        &if_valueisnegative, &if_valueisnanorzero);
-
-      assembler->Bind(&if_valueisnegative);
-      assembler->Return(assembler->BooleanConstant(true));
-
-      assembler->Bind(&if_valueisnanorzero);
-      assembler->Return(assembler->BooleanConstant(false));
+                        &return_true, &return_false);
     }
 
     assembler->Bind(&if_valueisoddball);
@@ -2968,26 +3734,22 @@
           assembler->Int32Constant(1 << Map::kIsUndetectable));
 
       // Check if the {value} is undetectable.
-      Label if_valueisundetectable(assembler),
-          if_valueisnotundetectable(assembler);
       assembler->Branch(assembler->Word32Equal(value_map_undetectable,
                                                assembler->Int32Constant(0)),
-                        &if_valueisnotundetectable, &if_valueisundetectable);
-
-      assembler->Bind(&if_valueisundetectable);
-      assembler->Return(assembler->BooleanConstant(false));
-
-      assembler->Bind(&if_valueisnotundetectable);
-      assembler->Return(assembler->BooleanConstant(true));
+                        &return_true, &return_false);
     }
   }
+  assembler->Bind(&return_false);
+  assembler->Return(assembler->BooleanConstant(false));
+
+  assembler->Bind(&return_true);
+  assembler->Return(assembler->BooleanConstant(true));
 }
 
-void ToIntegerStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
-  typedef compiler::CodeStubAssembler::Label Label;
+void ToIntegerStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+  typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Variable Variable;
+  typedef CodeStubAssembler::Variable Variable;
 
   Node* context = assembler->Parameter(1);
 
@@ -3046,7 +3808,7 @@
 }
 
 void StoreInterceptorStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+    CodeStubAssembler* assembler) const {
   typedef compiler::Node Node;
   Node* receiver = assembler->Parameter(0);
   Node* name = assembler->Parameter(1);
@@ -3057,9 +3819,9 @@
 }
 
 void LoadIndexedInterceptorStub::GenerateAssembly(
-    compiler::CodeStubAssembler* assembler) const {
+    CodeStubAssembler* assembler) const {
   typedef compiler::Node Node;
-  typedef compiler::CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Label Label;
   Node* receiver = assembler->Parameter(0);
   Node* key = assembler->Parameter(1);
   Node* slot = assembler->Parameter(2);
@@ -3078,6 +3840,133 @@
                              slot, vector);
 }
 
+// static
+bool FastCloneShallowObjectStub::IsSupported(ObjectLiteral* expr) {
+  // FastCloneShallowObjectStub doesn't copy elements, and object literals don't
+  // support copy-on-write (COW) elements for now.
+  // TODO(mvstanton): make object literals support COW elements.
+  return expr->fast_elements() && expr->has_shallow_properties() &&
+         expr->properties_count() <= kMaximumClonedProperties;
+}
+
+// static
+int FastCloneShallowObjectStub::PropertiesCount(int literal_length) {
+  // This heuristic of setting empty literals to have
+  // kInitialGlobalObjectUnusedPropertiesCount must remain in-sync with the
+  // runtime.
+  // TODO(verwaest): Unify this with the heuristic in the runtime.
+  return literal_length == 0
+             ? JSObject::kInitialGlobalObjectUnusedPropertiesCount
+             : literal_length;
+}
+
+// static
+compiler::Node* FastCloneShallowObjectStub::GenerateFastPath(
+    CodeStubAssembler* assembler, compiler::CodeAssembler::Label* call_runtime,
+    compiler::Node* closure, compiler::Node* literals_index,
+    compiler::Node* properties_count) {
+  typedef compiler::Node Node;
+  typedef compiler::CodeAssembler::Label Label;
+  typedef compiler::CodeAssembler::Variable Variable;
+
+  Node* undefined = assembler->UndefinedConstant();
+  Node* literals_array =
+      assembler->LoadObjectField(closure, JSFunction::kLiteralsOffset);
+  Node* allocation_site = assembler->LoadFixedArrayElement(
+      literals_array, literals_index,
+      LiteralsArray::kFirstLiteralIndex * kPointerSize,
+      CodeStubAssembler::SMI_PARAMETERS);
+  assembler->GotoIf(assembler->WordEqual(allocation_site, undefined),
+                    call_runtime);
+
+  // Calculate the object and allocation size based on the properties count.
+  Node* object_size = assembler->IntPtrAdd(
+      assembler->WordShl(properties_count, kPointerSizeLog2),
+      assembler->IntPtrConstant(JSObject::kHeaderSize));
+  Node* allocation_size = object_size;
+  if (FLAG_allocation_site_pretenuring) {
+    allocation_size = assembler->IntPtrAdd(
+        object_size, assembler->IntPtrConstant(AllocationMemento::kSize));
+  }
+  Node* boilerplate = assembler->LoadObjectField(
+      allocation_site, AllocationSite::kTransitionInfoOffset);
+  Node* boilerplate_map = assembler->LoadMap(boilerplate);
+  Node* instance_size = assembler->LoadMapInstanceSize(boilerplate_map);
+  Node* size_in_words = assembler->WordShr(object_size, kPointerSizeLog2);
+  assembler->GotoUnless(assembler->Word32Equal(instance_size, size_in_words),
+                        call_runtime);
+
+  Node* copy = assembler->Allocate(allocation_size);
+
+  // Copy boilerplate elements.
+  Variable offset(assembler, MachineType::PointerRepresentation());
+  offset.Bind(assembler->IntPtrConstant(-kHeapObjectTag));
+  Node* end_offset = assembler->IntPtrAdd(object_size, offset.value());
+  Label loop_body(assembler, &offset), loop_check(assembler, &offset);
+  // We should always have an object size greater than zero.
+  assembler->Goto(&loop_body);
+  assembler->Bind(&loop_body);
+  {
+    // The Allocate above guarantees that the copy lies in new space. This
+    // allows us to skip write barriers. This is necessary since we may also be
+    // copying unboxed doubles.
+    Node* field =
+        assembler->Load(MachineType::IntPtr(), boilerplate, offset.value());
+    assembler->StoreNoWriteBarrier(MachineType::PointerRepresentation(), copy,
+                                   offset.value(), field);
+    assembler->Goto(&loop_check);
+  }
+  assembler->Bind(&loop_check);
+  {
+    offset.Bind(assembler->IntPtrAdd(offset.value(),
+                                     assembler->IntPtrConstant(kPointerSize)));
+    assembler->GotoUnless(
+        assembler->IntPtrGreaterThanOrEqual(offset.value(), end_offset),
+        &loop_body);
+  }
+
+  if (FLAG_allocation_site_pretenuring) {
+    Node* memento = assembler->InnerAllocate(copy, object_size);
+    assembler->StoreObjectFieldNoWriteBarrier(
+        memento, HeapObject::kMapOffset,
+        assembler->LoadRoot(Heap::kAllocationMementoMapRootIndex));
+    assembler->StoreObjectFieldNoWriteBarrier(
+        memento, AllocationMemento::kAllocationSiteOffset, allocation_site);
+    Node* memento_create_count = assembler->LoadObjectField(
+        allocation_site, AllocationSite::kPretenureCreateCountOffset);
+    memento_create_count = assembler->SmiAdd(
+        memento_create_count, assembler->SmiConstant(Smi::FromInt(1)));
+    assembler->StoreObjectFieldNoWriteBarrier(
+        allocation_site, AllocationSite::kPretenureCreateCountOffset,
+        memento_create_count);
+  }
+
+  // TODO(verwaest): Allocate and fill in double boxes.
+  return copy;
+}
+
+void FastCloneShallowObjectStub::GenerateAssembly(
+    CodeStubAssembler* assembler) const {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+  Label call_runtime(assembler);
+  Node* closure = assembler->Parameter(0);
+  Node* literals_index = assembler->Parameter(1);
+
+  Node* properties_count =
+      assembler->IntPtrConstant(PropertiesCount(this->length()));
+  Node* copy = GenerateFastPath(assembler, &call_runtime, closure,
+                                literals_index, properties_count);
+  assembler->Return(copy);
+
+  assembler->Bind(&call_runtime);
+  Node* constant_properties = assembler->Parameter(2);
+  Node* flags = assembler->Parameter(3);
+  Node* context = assembler->Parameter(4);
+  assembler->TailCallRuntime(Runtime::kCreateObjectLiteral, context, closure,
+                             literals_index, constant_properties, flags);
+}
+
 template<class StateType>
 void HydrogenCodeStub::TraceTransition(StateType from, StateType to) {
   // Note: Although a no-op transition is semantically OK, it is hinting at a
@@ -3191,11 +4080,7 @@
   return VectorStoreTransitionDescriptor(isolate());
 }
 
-
-void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
-  descriptor->Initialize(Runtime::FunctionForId(Runtime::kNewClosure)->entry);
-}
-
+void FastNewClosureStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {}
 
 void FastNewContextStub::InitializeDescriptor(CodeStubDescriptor* d) {}
 
@@ -3224,14 +4109,6 @@
 }
 
 
-void FastCloneShallowObjectStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  FastCloneShallowObjectDescriptor call_descriptor(isolate());
-  descriptor->Initialize(
-      Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry);
-}
-
-
 void CreateAllocationSiteStub::InitializeDescriptor(CodeStubDescriptor* d) {}
 
 
@@ -3259,11 +4136,6 @@
 }
 
 
-void AllocateMutableHeapNumberStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  descriptor->Initialize();
-}
-
 #define SIMD128_INIT_DESC(TYPE, Type, type, lane_count, lane_type) \
   void Allocate##Type##Stub::InitializeDescriptor(                 \
       CodeStubDescriptor* descriptor) {                            \
@@ -3273,11 +4145,6 @@
 SIMD128_TYPES(SIMD128_INIT_DESC)
 #undef SIMD128_INIT_DESC
 
-void AllocateInNewSpaceStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  descriptor->Initialize();
-}
-
 void ToBooleanICStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   descriptor->Initialize(FUNCTION_ADDR(Runtime_ToBooleanIC_Miss));
   descriptor->SetMissHandler(ExternalReference(
@@ -3316,6 +4183,123 @@
   stub.GetCode();
 }
 
+void HasPropertyStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+
+  Node* key = assembler->Parameter(0);
+  Node* object = assembler->Parameter(1);
+  Node* context = assembler->Parameter(2);
+
+  Label call_runtime(assembler), return_true(assembler),
+      return_false(assembler);
+
+  // Ensure object is JSReceiver, otherwise call runtime to throw error.
+  Label if_objectisnotsmi(assembler);
+  assembler->Branch(assembler->WordIsSmi(object), &call_runtime,
+                    &if_objectisnotsmi);
+  assembler->Bind(&if_objectisnotsmi);
+
+  Node* map = assembler->LoadMap(object);
+  Node* instance_type = assembler->LoadMapInstanceType(map);
+  {
+    Label if_objectisreceiver(assembler);
+    STATIC_ASSERT(LAST_JS_RECEIVER_TYPE == LAST_TYPE);
+    assembler->Branch(
+        assembler->Int32GreaterThanOrEqual(
+            instance_type, assembler->Int32Constant(FIRST_JS_RECEIVER_TYPE)),
+        &if_objectisreceiver, &call_runtime);
+    assembler->Bind(&if_objectisreceiver);
+  }
+
+  Variable var_index(assembler, MachineRepresentation::kWord32);
+
+  Label keyisindex(assembler), if_iskeyunique(assembler);
+  assembler->TryToName(key, &keyisindex, &var_index, &if_iskeyunique,
+                       &call_runtime);
+
+  assembler->Bind(&if_iskeyunique);
+  {
+    Variable var_object(assembler, MachineRepresentation::kTagged);
+    Variable var_map(assembler, MachineRepresentation::kTagged);
+    Variable var_instance_type(assembler, MachineRepresentation::kWord8);
+
+    Variable* merged_variables[] = {&var_object, &var_map, &var_instance_type};
+    Label loop(assembler, arraysize(merged_variables), merged_variables);
+    var_object.Bind(object);
+    var_map.Bind(map);
+    var_instance_type.Bind(instance_type);
+    assembler->Goto(&loop);
+    assembler->Bind(&loop);
+    {
+      Label next_proto(assembler);
+      assembler->TryLookupProperty(var_object.value(), var_map.value(),
+                                   var_instance_type.value(), key, &return_true,
+                                   &next_proto, &call_runtime);
+      assembler->Bind(&next_proto);
+
+      Node* proto = assembler->LoadMapPrototype(var_map.value());
+
+      Label if_not_null(assembler);
+      assembler->Branch(assembler->WordEqual(proto, assembler->NullConstant()),
+                        &return_false, &if_not_null);
+      assembler->Bind(&if_not_null);
+
+      Node* map = assembler->LoadMap(proto);
+      Node* instance_type = assembler->LoadMapInstanceType(map);
+
+      var_object.Bind(proto);
+      var_map.Bind(map);
+      var_instance_type.Bind(instance_type);
+      assembler->Goto(&loop);
+    }
+  }
+  assembler->Bind(&keyisindex);
+  {
+    Variable var_object(assembler, MachineRepresentation::kTagged);
+    Variable var_map(assembler, MachineRepresentation::kTagged);
+    Variable var_instance_type(assembler, MachineRepresentation::kWord8);
+
+    Variable* merged_variables[] = {&var_object, &var_map, &var_instance_type};
+    Label loop(assembler, arraysize(merged_variables), merged_variables);
+    var_object.Bind(object);
+    var_map.Bind(map);
+    var_instance_type.Bind(instance_type);
+    assembler->Goto(&loop);
+    assembler->Bind(&loop);
+    {
+      Label next_proto(assembler);
+      assembler->TryLookupElement(var_object.value(), var_map.value(),
+                                  var_instance_type.value(), var_index.value(),
+                                  &return_true, &next_proto, &call_runtime);
+      assembler->Bind(&next_proto);
+
+      Node* proto = assembler->LoadMapPrototype(var_map.value());
+
+      Label if_not_null(assembler);
+      assembler->Branch(assembler->WordEqual(proto, assembler->NullConstant()),
+                        &return_false, &if_not_null);
+      assembler->Bind(&if_not_null);
+
+      Node* map = assembler->LoadMap(proto);
+      Node* instance_type = assembler->LoadMapInstanceType(map);
+
+      var_object.Bind(proto);
+      var_map.Bind(map);
+      var_instance_type.Bind(instance_type);
+      assembler->Goto(&loop);
+    }
+  }
+  assembler->Bind(&return_true);
+  assembler->Return(assembler->BooleanConstant(true));
+
+  assembler->Bind(&return_false);
+  assembler->Return(assembler->BooleanConstant(false));
+
+  assembler->Bind(&call_runtime);
+  assembler->TailCallRuntime(Runtime::kHasProperty, context, key, object);
+}
 
 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
   CreateAllocationSiteStub stub(isolate);
@@ -3472,6 +4456,43 @@
   entry_hook(function, stack_pointer);
 }
 
+void ArrayNoArgumentConstructorStub::GenerateAssembly(
+    CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+  Node* native_context = assembler->LoadObjectField(
+      assembler->Parameter(
+          ArrayNoArgumentConstructorDescriptor::kFunctionIndex),
+      JSFunction::kContextOffset);
+  bool track_allocation_site =
+      AllocationSite::GetMode(elements_kind()) == TRACK_ALLOCATION_SITE &&
+      override_mode() != DISABLE_ALLOCATION_SITES;
+  Node* allocation_site =
+      track_allocation_site
+          ? assembler->Parameter(
+                ArrayNoArgumentConstructorDescriptor::kAllocationSiteIndex)
+          : nullptr;
+  Node* array_map =
+      assembler->LoadJSArrayElementsMap(elements_kind(), native_context);
+  Node* array = assembler->AllocateJSArray(
+      elements_kind(), array_map,
+      assembler->IntPtrConstant(JSArray::kPreallocatedArrayElements),
+      assembler->IntPtrConstant(0), allocation_site);
+  assembler->Return(array);
+}
+
+void InternalArrayNoArgumentConstructorStub::GenerateAssembly(
+    CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+  Node* array_map = assembler->LoadObjectField(
+      assembler->Parameter(
+          ArrayNoArgumentConstructorDescriptor::kFunctionIndex),
+      JSFunction::kPrototypeOrInitialMapOffset);
+  Node* array = assembler->AllocateJSArray(
+      elements_kind(), array_map,
+      assembler->IntPtrConstant(JSArray::kPreallocatedArrayElements),
+      assembler->IntPtrConstant(0), nullptr);
+  assembler->Return(array);
+}
 
 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate)
     : PlatformCodeStub(isolate) {
diff --git a/src/code-stubs.h b/src/code-stubs.h
index ace4aae..7bccaa9 100644
--- a/src/code-stubs.h
+++ b/src/code-stubs.h
@@ -7,8 +7,8 @@
 
 #include "src/allocation.h"
 #include "src/assembler.h"
+#include "src/code-stub-assembler.h"
 #include "src/codegen.h"
-#include "src/compiler/code-stub-assembler.h"
 #include "src/globals.h"
 #include "src/ic/ic-state.h"
 #include "src/interface-descriptors.h"
@@ -31,7 +31,6 @@
   V(CompareIC)                              \
   V(DoubleToI)                              \
   V(FunctionPrototype)                      \
-  V(InstanceOf)                             \
   V(InternalArrayConstructor)               \
   V(JSEntry)                                \
   V(KeyedLoadICTrampoline)                  \
@@ -57,9 +56,7 @@
   V(VectorStoreIC)                          \
   V(VectorKeyedStoreIC)                     \
   /* HydrogenCodeStubs */                   \
-  V(AllocateInNewSpace)                     \
   V(ArrayNArgumentsConstructor)             \
-  V(ArrayNoArgumentConstructor)             \
   V(ArraySingleArgumentConstructor)         \
   V(BinaryOpIC)                             \
   V(BinaryOpWithAllocationSite)             \
@@ -69,7 +66,6 @@
   V(FastArrayPush)                          \
   V(FastCloneRegExp)                        \
   V(FastCloneShallowArray)                  \
-  V(FastCloneShallowObject)                 \
   V(FastNewClosure)                         \
   V(FastNewContext)                         \
   V(FastNewObject)                          \
@@ -78,7 +74,6 @@
   V(FastNewStrictArguments)                 \
   V(GrowArrayElements)                      \
   V(InternalArrayNArgumentsConstructor)     \
-  V(InternalArrayNoArgumentConstructor)     \
   V(InternalArraySingleArgumentConstructor) \
   V(KeyedLoadGeneric)                       \
   V(LoadGlobalViaContext)                   \
@@ -98,7 +93,6 @@
   V(LoadIC)                                 \
   /* TurboFanCodeStubs */                   \
   V(AllocateHeapNumber)                     \
-  V(AllocateMutableHeapNumber)              \
   V(AllocateFloat32x4)                      \
   V(AllocateInt32x4)                        \
   V(AllocateUint32x4)                       \
@@ -109,12 +103,24 @@
   V(AllocateInt8x16)                        \
   V(AllocateUint8x16)                       \
   V(AllocateBool8x16)                       \
+  V(ArrayNoArgumentConstructor)             \
   V(StringLength)                           \
   V(Add)                                    \
   V(Subtract)                               \
+  V(Multiply)                               \
+  V(Divide)                                 \
+  V(Modulus)                                \
+  V(ShiftRight)                             \
+  V(ShiftRightLogical)                      \
+  V(ShiftLeft)                              \
   V(BitwiseAnd)                             \
   V(BitwiseOr)                              \
   V(BitwiseXor)                             \
+  V(Inc)                                    \
+  V(InternalArrayNoArgumentConstructor)     \
+  V(Dec)                                    \
+  V(FastCloneShallowObject)                 \
+  V(InstanceOf)                             \
   V(LessThan)                               \
   V(LessThanOrEqual)                        \
   V(GreaterThan)                            \
@@ -132,17 +138,19 @@
   V(ToBoolean)                              \
   V(ToInteger)                              \
   V(ToLength)                               \
+  V(HasProperty)                            \
   /* IC Handler stubs */                    \
   V(ArrayBufferViewLoadField)               \
+  V(KeyedLoadSloppyArguments)               \
+  V(KeyedStoreSloppyArguments)              \
+  V(LoadApiGetter)                          \
   V(LoadConstant)                           \
   V(LoadFastElement)                        \
   V(LoadField)                              \
   V(LoadIndexedInterceptor)                 \
-  V(KeyedLoadSloppyArguments)               \
-  V(KeyedStoreSloppyArguments)              \
   V(StoreField)                             \
-  V(StoreInterceptor)                       \
   V(StoreGlobal)                            \
+  V(StoreInterceptor)                       \
   V(StoreTransition)
 
 // List of code stubs only used on ARM 32 bits platforms.
@@ -284,7 +292,6 @@
 
   virtual InlineCacheState GetICState() const { return UNINITIALIZED; }
   virtual ExtraICState GetExtraICState() const { return kNoExtraICState; }
-  virtual Code::StubType GetStubType() const { return Code::NORMAL; }
 
   Code::Flags GetCodeFlags() const;
 
@@ -390,10 +397,32 @@
   Handle<Code> GenerateCode() override;                               \
   DEFINE_CODE_STUB(NAME, SUPER)
 
-#define DEFINE_TURBOFAN_CODE_STUB(NAME, SUPER)                  \
- public:                                                        \
-  void GenerateAssembly(compiler::CodeStubAssembler* assembler) \
-      const override;                                           \
+#define DEFINE_TURBOFAN_CODE_STUB(NAME, SUPER)                        \
+ public:                                                              \
+  void GenerateAssembly(CodeStubAssembler* assembler) const override; \
+  DEFINE_CODE_STUB(NAME, SUPER)
+
+#define DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(NAME, SUPER)                       \
+ public:                                                                       \
+  static compiler::Node* Generate(CodeStubAssembler* assembler,                \
+                                  compiler::Node* left, compiler::Node* right, \
+                                  compiler::Node* context);                    \
+  void GenerateAssembly(CodeStubAssembler* assembler) const override {         \
+    assembler->Return(Generate(assembler, assembler->Parameter(0),             \
+                               assembler->Parameter(1),                        \
+                               assembler->Parameter(2)));                      \
+  }                                                                            \
+  DEFINE_CODE_STUB(NAME, SUPER)
+
+#define DEFINE_TURBOFAN_UNARY_OP_CODE_STUB(NAME, SUPER)                \
+ public:                                                               \
+  static compiler::Node* Generate(CodeStubAssembler* assembler,        \
+                                  compiler::Node* value,               \
+                                  compiler::Node* context);            \
+  void GenerateAssembly(CodeStubAssembler* assembler) const override { \
+    assembler->Return(Generate(assembler, assembler->Parameter(0),     \
+                               assembler->Parameter(1)));              \
+  }                                                                    \
   DEFINE_CODE_STUB(NAME, SUPER)
 
 #define DEFINE_HANDLER_CODE_STUB(NAME, SUPER) \
@@ -579,13 +608,10 @@
     return GetCallInterfaceDescriptor().GetStackParameterCount();
   }
 
-  Code::StubType GetStubType() const override { return Code::FAST; }
-
  protected:
   explicit TurboFanCodeStub(Isolate* isolate) : CodeStub(isolate) {}
 
-  virtual void GenerateAssembly(
-      compiler::CodeStubAssembler* assembler) const = 0;
+  virtual void GenerateAssembly(CodeStubAssembler* assembler) const = 0;
 
  private:
   DEFINE_CODE_STUB_BASE(TurboFanCodeStub, CodeStub);
@@ -678,7 +704,7 @@
   explicit AddStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
-  DEFINE_TURBOFAN_CODE_STUB(Add, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Add, TurboFanCodeStub);
 };
 
 class SubtractStub final : public TurboFanCodeStub {
@@ -686,7 +712,56 @@
   explicit SubtractStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
-  DEFINE_TURBOFAN_CODE_STUB(Subtract, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Subtract, TurboFanCodeStub);
+};
+
+class MultiplyStub final : public TurboFanCodeStub {
+ public:
+  explicit MultiplyStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Multiply, TurboFanCodeStub);
+};
+
+class DivideStub final : public TurboFanCodeStub {
+ public:
+  explicit DivideStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Divide, TurboFanCodeStub);
+};
+
+class ModulusStub final : public TurboFanCodeStub {
+ public:
+  explicit ModulusStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Modulus, TurboFanCodeStub);
+};
+
+class ShiftRightStub final : public TurboFanCodeStub {
+ public:
+  explicit ShiftRightStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(ShiftRight, TurboFanCodeStub);
+};
+
+class ShiftRightLogicalStub final : public TurboFanCodeStub {
+ public:
+  explicit ShiftRightLogicalStub(Isolate* isolate)
+      : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(ShiftRightLogical, TurboFanCodeStub);
+};
+
+class ShiftLeftStub final : public TurboFanCodeStub {
+ public:
+  explicit ShiftLeftStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(ShiftLeft, TurboFanCodeStub);
 };
 
 class BitwiseAndStub final : public TurboFanCodeStub {
@@ -694,7 +769,7 @@
   explicit BitwiseAndStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
-  DEFINE_TURBOFAN_CODE_STUB(BitwiseAnd, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(BitwiseAnd, TurboFanCodeStub);
 };
 
 class BitwiseOrStub final : public TurboFanCodeStub {
@@ -702,7 +777,7 @@
   explicit BitwiseOrStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
-  DEFINE_TURBOFAN_CODE_STUB(BitwiseOr, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(BitwiseOr, TurboFanCodeStub);
 };
 
 class BitwiseXorStub final : public TurboFanCodeStub {
@@ -710,7 +785,32 @@
   explicit BitwiseXorStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp);
-  DEFINE_TURBOFAN_CODE_STUB(BitwiseXor, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(BitwiseXor, TurboFanCodeStub);
+};
+
+class IncStub final : public TurboFanCodeStub {
+ public:
+  explicit IncStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(CountOp);
+  DEFINE_TURBOFAN_UNARY_OP_CODE_STUB(Inc, TurboFanCodeStub);
+};
+
+class DecStub final : public TurboFanCodeStub {
+ public:
+  explicit DecStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(CountOp);
+  DEFINE_TURBOFAN_UNARY_OP_CODE_STUB(Dec, TurboFanCodeStub);
+};
+
+class InstanceOfStub final : public TurboFanCodeStub {
+ public:
+  explicit InstanceOfStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+ private:
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
+  DEFINE_TURBOFAN_CODE_STUB(InstanceOf, TurboFanCodeStub);
 };
 
 class LessThanStub final : public TurboFanCodeStub {
@@ -857,9 +957,11 @@
  public:
   explicit StoreInterceptorStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
-  void GenerateAssembly(compiler::CodeStubAssembler* assember) const override;
+  void GenerateAssembly(CodeStubAssembler* assember) const override;
 
   Code::Kind GetCodeKind() const override { return Code::HANDLER; }
+  ExtraICState GetExtraICState() const override { return Code::STORE_IC; }
+  InlineCacheState GetICState() const override { return MONOMORPHIC; }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Store);
   DEFINE_CODE_STUB(StoreInterceptor, TurboFanCodeStub);
@@ -871,11 +973,22 @@
       : TurboFanCodeStub(isolate) {}
 
   Code::Kind GetCodeKind() const override { return Code::HANDLER; }
+  ExtraICState GetExtraICState() const override { return Code::KEYED_LOAD_IC; }
+  InlineCacheState GetICState() const override { return MONOMORPHIC; }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
   DEFINE_TURBOFAN_CODE_STUB(LoadIndexedInterceptor, TurboFanCodeStub);
 };
 
+// ES6 section 12.10.3 "in" operator evaluation.
+class HasPropertyStub : public TurboFanCodeStub {
+ public:
+  explicit HasPropertyStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(HasProperty);
+  DEFINE_TURBOFAN_CODE_STUB(HasProperty, TurboFanCodeStub);
+};
+
 enum StringAddFlags {
   // Omit both parameter checks.
   STRING_ADD_CHECK_NONE = 0,
@@ -942,7 +1055,7 @@
  private:
   STATIC_ASSERT(LANGUAGE_END == 3);
   class LanguageModeBits : public BitField<LanguageMode, 0, 2> {};
-  class FunctionKindBits : public BitField<FunctionKind, 2, 8> {};
+  class FunctionKindBits : public BitField<FunctionKind, 2, 9> {};
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewClosure);
   DEFINE_HYDROGEN_CODE_STUB(FastNewClosure, HydrogenCodeStub);
@@ -986,11 +1099,19 @@
 // of the strict arguments object materialization code.
 class FastNewRestParameterStub final : public PlatformCodeStub {
  public:
-  explicit FastNewRestParameterStub(Isolate* isolate)
-      : PlatformCodeStub(isolate) {}
+  explicit FastNewRestParameterStub(Isolate* isolate,
+                                    bool skip_stub_frame = false)
+      : PlatformCodeStub(isolate) {
+    minor_key_ = SkipStubFrameBits::encode(skip_stub_frame);
+  }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewRestParameter);
   DEFINE_PLATFORM_CODE_STUB(FastNewRestParameter, PlatformCodeStub);
+
+  int skip_stub_frame() const { return SkipStubFrameBits::decode(minor_key_); }
+
+ private:
+  class SkipStubFrameBits : public BitField<bool, 0, 1> {};
 };
 
 
@@ -999,11 +1120,19 @@
 // and easy as the current handwritten version.
 class FastNewSloppyArgumentsStub final : public PlatformCodeStub {
  public:
-  explicit FastNewSloppyArgumentsStub(Isolate* isolate)
-      : PlatformCodeStub(isolate) {}
+  explicit FastNewSloppyArgumentsStub(Isolate* isolate,
+                                      bool skip_stub_frame = false)
+      : PlatformCodeStub(isolate) {
+    minor_key_ = SkipStubFrameBits::encode(skip_stub_frame);
+  }
+
+  int skip_stub_frame() const { return SkipStubFrameBits::decode(minor_key_); }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewSloppyArguments);
   DEFINE_PLATFORM_CODE_STUB(FastNewSloppyArguments, PlatformCodeStub);
+
+ private:
+  class SkipStubFrameBits : public BitField<bool, 0, 1> {};
 };
 
 
@@ -1012,11 +1141,19 @@
 // and easy as the current handwritten version.
 class FastNewStrictArgumentsStub final : public PlatformCodeStub {
  public:
-  explicit FastNewStrictArgumentsStub(Isolate* isolate)
-      : PlatformCodeStub(isolate) {}
+  explicit FastNewStrictArgumentsStub(Isolate* isolate,
+                                      bool skip_stub_frame = false)
+      : PlatformCodeStub(isolate) {
+    minor_key_ = SkipStubFrameBits::encode(skip_stub_frame);
+  }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(FastNewStrictArguments);
   DEFINE_PLATFORM_CODE_STUB(FastNewStrictArguments, PlatformCodeStub);
+
+  int skip_stub_frame() const { return SkipStubFrameBits::decode(minor_key_); }
+
+ private:
+  class SkipStubFrameBits : public BitField<bool, 0, 1> {};
 };
 
 
@@ -1049,26 +1186,33 @@
   DEFINE_HYDROGEN_CODE_STUB(FastCloneShallowArray, HydrogenCodeStub);
 };
 
-
-class FastCloneShallowObjectStub : public HydrogenCodeStub {
+class FastCloneShallowObjectStub : public TurboFanCodeStub {
  public:
   // Maximum number of properties in copied object.
   static const int kMaximumClonedProperties = 6;
 
   FastCloneShallowObjectStub(Isolate* isolate, int length)
-      : HydrogenCodeStub(isolate) {
+      : TurboFanCodeStub(isolate) {
     DCHECK_GE(length, 0);
     DCHECK_LE(length, kMaximumClonedProperties);
-    set_sub_minor_key(LengthBits::encode(length));
+    minor_key_ = LengthBits::encode(LengthBits::encode(length));
   }
 
-  int length() const { return LengthBits::decode(sub_minor_key()); }
+  static compiler::Node* GenerateFastPath(
+      CodeStubAssembler* assembler,
+      compiler::CodeAssembler::Label* call_runtime, compiler::Node* closure,
+      compiler::Node* literals_index, compiler::Node* properties_count);
+
+  static bool IsSupported(ObjectLiteral* expr);
+  static int PropertiesCount(int literal_length);
+
+  int length() const { return LengthBits::decode(minor_key_); }
 
  private:
   class LengthBits : public BitField<int, 0, 4> {};
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(FastCloneShallowObject);
-  DEFINE_HYDROGEN_CODE_STUB(FastCloneShallowObject, HydrogenCodeStub);
+  DEFINE_TURBOFAN_CODE_STUB(FastCloneShallowObject, TurboFanCodeStub);
 };
 
 
@@ -1126,24 +1270,6 @@
   DEFINE_HYDROGEN_CODE_STUB(FastArrayPush, HydrogenCodeStub);
 };
 
-class InstanceOfStub final : public PlatformCodeStub {
- public:
-  explicit InstanceOfStub(Isolate* isolate, bool es6_instanceof = false)
-      : PlatformCodeStub(isolate) {
-    minor_key_ = IsES6InstanceOfBits::encode(es6_instanceof);
-  }
-
-  bool is_es6_instanceof() const {
-    return IsES6InstanceOfBits::decode(minor_key_);
-  }
-
- private:
-  class IsES6InstanceOfBits : public BitField<bool, 0, 1> {};
-
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(InstanceOf);
-  DEFINE_PLATFORM_CODE_STUB(InstanceOf, PlatformCodeStub);
-};
-
 
 enum AllocationSiteOverrideMode {
   DONT_OVERRIDE,
@@ -1280,7 +1406,6 @@
       : PlatformCodeStub(isolate) {}
 
   Code::Kind GetCodeKind() const override { return Code::HANDLER; }
-  Code::StubType GetStubType() const override { return Code::FAST; }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
   DEFINE_PLATFORM_CODE_STUB(LoadIndexedString, PlatformCodeStub);
@@ -1320,7 +1445,6 @@
 
  protected:
   Code::Kind kind() const override { return Code::LOAD_IC; }
-  Code::StubType GetStubType() const override { return Code::FAST; }
 
  private:
   class LoadFieldByIndexBits : public BitField<int, 0, 13> {};
@@ -1346,7 +1470,6 @@
 
  protected:
   Code::Kind kind() const override { return Code::LOAD_IC; }
-  Code::StubType GetStubType() const override { return Code::FAST; }
 
  private:
   class ArrayBufferViewLoadFieldByIndexBits : public BitField<int, 0, 13> {};
@@ -1362,7 +1485,6 @@
 
  protected:
   Code::Kind kind() const override { return Code::KEYED_LOAD_IC; }
-  Code::StubType GetStubType() const override { return Code::FAST; }
 
  private:
   DEFINE_HANDLER_CODE_STUB(KeyedLoadSloppyArguments, HandlerStub);
@@ -1381,7 +1503,6 @@
 
  protected:
   Code::Kind kind() const override { return Code::KEYED_STORE_IC; }
-  Code::StubType GetStubType() const override { return Code::FAST; }
 
  private:
   DEFINE_HANDLER_CODE_STUB(KeyedStoreSloppyArguments, HandlerStub);
@@ -1401,7 +1522,6 @@
 
  protected:
   Code::Kind kind() const override { return Code::LOAD_IC; }
-  Code::StubType GetStubType() const override { return Code::FAST; }
 
  private:
   class ConstantIndexBits : public BitField<int, 0, kSubMinorKeyBits> {};
@@ -1409,6 +1529,33 @@
   DEFINE_HANDLER_CODE_STUB(LoadConstant, HandlerStub);
 };
 
+class LoadApiGetterStub : public TurboFanCodeStub {
+ public:
+  LoadApiGetterStub(Isolate* isolate, bool receiver_is_holder, int index)
+      : TurboFanCodeStub(isolate) {
+    // If that's not true, we need to ensure that the receiver is actually a
+    // JSReceiver. http://crbug.com/609134
+    DCHECK(receiver_is_holder);
+    minor_key_ = IndexBits::encode(index) |
+                 ReceiverIsHolderBits::encode(receiver_is_holder);
+  }
+
+  Code::Kind GetCodeKind() const override { return Code::HANDLER; }
+  ExtraICState GetExtraICState() const override { return Code::LOAD_IC; }
+  InlineCacheState GetICState() const override { return MONOMORPHIC; }
+
+  int index() const { return IndexBits::decode(minor_key_); }
+  bool receiver_is_holder() const {
+    return ReceiverIsHolderBits::decode(minor_key_);
+  }
+
+ private:
+  class ReceiverIsHolderBits : public BitField<bool, 0, 1> {};
+  class IndexBits : public BitField<int, 1, kDescriptorIndexBitCount> {};
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
+  DEFINE_TURBOFAN_CODE_STUB(LoadApiGetter, TurboFanCodeStub);
+};
 
 class StoreFieldStub : public HandlerStub {
  public:
@@ -1433,7 +1580,6 @@
 
  protected:
   Code::Kind kind() const override { return Code::STORE_IC; }
-  Code::StubType GetStubType() const override { return Code::FAST; }
 
  private:
   class StoreFieldByIndexBits : public BitField<int, 0, 13> {};
@@ -1543,7 +1689,6 @@
 
  protected:
   Code::Kind kind() const override { return Code::STORE_IC; }
-  Code::StubType GetStubType() const override { return Code::FAST; }
 
  private:
   class StoreFieldByIndexBits : public BitField<int, 0, 13> {};
@@ -2492,13 +2637,11 @@
 
  private:
   static const int kContextIndexBits = 9;
-  static const int kSlotIndexBits = 13;
+  static const int kSlotIndexBits = 12;
   class ContextIndexBits : public BitField<int, 0, kContextIndexBits> {};
   class SlotIndexBits
       : public BitField<int, kContextIndexBits, kSlotIndexBits> {};
 
-  Code::StubType GetStubType() const override { return Code::FAST; }
-
   DEFINE_CODE_STUB_BASE(ScriptContextFieldStub, HandlerStub);
 };
 
@@ -2631,24 +2774,12 @@
       : TurboFanCodeStub(isolate) {}
 
   void InitializeDescriptor(CodeStubDescriptor* descriptor) override;
-  void GenerateAssembly(compiler::CodeStubAssembler* assembler) const override;
+  void GenerateAssembly(CodeStubAssembler* assembler) const override;
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(AllocateHeapNumber);
   DEFINE_CODE_STUB(AllocateHeapNumber, TurboFanCodeStub);
 };
 
-class AllocateMutableHeapNumberStub : public TurboFanCodeStub {
- public:
-  explicit AllocateMutableHeapNumberStub(Isolate* isolate)
-      : TurboFanCodeStub(isolate) {}
-
-  void InitializeDescriptor(CodeStubDescriptor* descriptor) override;
-  void GenerateAssembly(compiler::CodeStubAssembler* assembler) const override;
-
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(AllocateMutableHeapNumber);
-  DEFINE_CODE_STUB(AllocateMutableHeapNumber, TurboFanCodeStub);
-};
-
 #define SIMD128_ALLOC_STUB(TYPE, Type, type, lane_count, lane_type)     \
   class Allocate##Type##Stub : public TurboFanCodeStub {                \
    public:                                                              \
@@ -2656,8 +2787,7 @@
         : TurboFanCodeStub(isolate) {}                                  \
                                                                         \
     void InitializeDescriptor(CodeStubDescriptor* descriptor) override; \
-    void GenerateAssembly(                                              \
-        compiler::CodeStubAssembler* assembler) const override;         \
+    void GenerateAssembly(CodeStubAssembler* assembler) const override; \
                                                                         \
     DEFINE_CALL_INTERFACE_DESCRIPTOR(Allocate##Type);                   \
     DEFINE_CODE_STUB(Allocate##Type, TurboFanCodeStub);                 \
@@ -2665,17 +2795,6 @@
 SIMD128_TYPES(SIMD128_ALLOC_STUB)
 #undef SIMD128_ALLOC_STUB
 
-class AllocateInNewSpaceStub final : public HydrogenCodeStub {
- public:
-  explicit AllocateInNewSpaceStub(Isolate* isolate)
-      : HydrogenCodeStub(isolate) {}
-
- private:
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(AllocateInNewSpace);
-  DEFINE_HYDROGEN_CODE_STUB(AllocateInNewSpace, HydrogenCodeStub);
-};
-
-
 class ArrayConstructorStubBase : public HydrogenCodeStub {
  public:
   ArrayConstructorStubBase(Isolate* isolate,
@@ -2720,26 +2839,77 @@
   DEFINE_CODE_STUB_BASE(ArrayConstructorStubBase, HydrogenCodeStub);
 };
 
+class CommonArrayConstructorStub : public TurboFanCodeStub {
+ protected:
+  CommonArrayConstructorStub(Isolate* isolate, ElementsKind kind,
+                             AllocationSiteOverrideMode override_mode)
+      : TurboFanCodeStub(isolate) {
+    // It only makes sense to override local allocation site behavior
+    // if there is a difference between the global allocation site policy
+    // for an ElementsKind and the desired usage of the stub.
+    DCHECK(override_mode != DISABLE_ALLOCATION_SITES ||
+           AllocationSite::GetMode(kind) == TRACK_ALLOCATION_SITE);
+    set_sub_minor_key(ElementsKindBits::encode(kind) |
+                      AllocationSiteOverrideModeBits::encode(override_mode));
+  }
 
-class ArrayNoArgumentConstructorStub : public ArrayConstructorStubBase {
+  void set_sub_minor_key(uint32_t key) { minor_key_ = key; }
+
+  uint32_t sub_minor_key() const { return minor_key_; }
+
+  CommonArrayConstructorStub(uint32_t key, Isolate* isolate)
+      : TurboFanCodeStub(key, isolate) {}
+
  public:
-  ArrayNoArgumentConstructorStub(
-      Isolate* isolate,
-      ElementsKind kind,
-      AllocationSiteOverrideMode override_mode = DONT_OVERRIDE)
-      : ArrayConstructorStubBase(isolate, kind, override_mode) {
+  ElementsKind elements_kind() const {
+    return ElementsKindBits::decode(sub_minor_key());
+  }
+
+  AllocationSiteOverrideMode override_mode() const {
+    return AllocationSiteOverrideModeBits::decode(sub_minor_key());
   }
 
  private:
-  void PrintName(std::ostream& os) const override {  // NOLINT
-    BasePrintName(os, "ArrayNoArgumentConstructorStub");
-  }
+  // Ensure data fits within available bits.
+  STATIC_ASSERT(LAST_ALLOCATION_SITE_OVERRIDE_MODE == 1);
 
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayConstructorConstantArgCount);
-  DEFINE_HYDROGEN_CODE_STUB(ArrayNoArgumentConstructor,
-                            ArrayConstructorStubBase);
+  class ElementsKindBits : public BitField<ElementsKind, 0, 8> {};
+  class AllocationSiteOverrideModeBits
+      : public BitField<AllocationSiteOverrideMode, 8, 1> {};  // NOLINT
 };
 
+class ArrayNoArgumentConstructorStub : public CommonArrayConstructorStub {
+ public:
+  ArrayNoArgumentConstructorStub(
+      Isolate* isolate, ElementsKind kind,
+      AllocationSiteOverrideMode override_mode = DONT_OVERRIDE)
+      : CommonArrayConstructorStub(isolate, kind, override_mode) {}
+
+ private:
+  void PrintName(std::ostream& os) const override {  // NOLINT
+    os << "ArrayNoArgumentConstructorStub";
+  }
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayNoArgumentConstructor);
+  DEFINE_TURBOFAN_CODE_STUB(ArrayNoArgumentConstructor,
+                            CommonArrayConstructorStub);
+};
+
+class InternalArrayNoArgumentConstructorStub
+    : public CommonArrayConstructorStub {
+ public:
+  InternalArrayNoArgumentConstructorStub(Isolate* isolate, ElementsKind kind)
+      : CommonArrayConstructorStub(isolate, kind, DONT_OVERRIDE) {}
+
+ private:
+  void PrintName(std::ostream& os) const override {  // NOLINT
+    os << "InternalArrayNoArgumentConstructorStub";
+  }
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayNoArgumentConstructor);
+  DEFINE_TURBOFAN_CODE_STUB(InternalArrayNoArgumentConstructor,
+                            CommonArrayConstructorStub);
+};
 
 class ArraySingleArgumentConstructorStub : public ArrayConstructorStubBase {
  public:
@@ -2804,19 +2974,6 @@
 };
 
 
-class InternalArrayNoArgumentConstructorStub : public
-    InternalArrayConstructorStubBase {
- public:
-  InternalArrayNoArgumentConstructorStub(Isolate* isolate,
-                                         ElementsKind kind)
-      : InternalArrayConstructorStubBase(isolate, kind) { }
-
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(InternalArrayConstructorConstantArgCount);
-  DEFINE_HYDROGEN_CODE_STUB(InternalArrayNoArgumentConstructor,
-                            InternalArrayConstructorStubBase);
-};
-
-
 class InternalArraySingleArgumentConstructorStub : public
     InternalArrayConstructorStubBase {
  public:
diff --git a/src/codegen.cc b/src/codegen.cc
index 692fa64..93ae307 100644
--- a/src/codegen.cc
+++ b/src/codegen.cc
@@ -162,16 +162,15 @@
         info->parse_info() && (code->kind() == Code::OPTIMIZED_FUNCTION ||
                                code->kind() == Code::FUNCTION);
     if (print_source) {
-      FunctionLiteral* literal = info->literal();
+      Handle<SharedFunctionInfo> shared = info->shared_info();
       Handle<Script> script = info->script();
       if (!script->IsUndefined() && !script->source()->IsUndefined()) {
         os << "--- Raw source ---\n";
         StringCharacterStream stream(String::cast(script->source()),
-                                     literal->start_position());
+                                     shared->start_position());
         // fun->end_position() points to the last character in the stream. We
         // need to compensate by adding one to calculate the length.
-        int source_len =
-            literal->end_position() - literal->start_position() + 1;
+        int source_len = shared->end_position() - shared->start_position() + 1;
         for (int i = 0; i < source_len; i++) {
           if (stream.HasMore()) {
             os << AsReversiblyEscapedUC16(stream.GetNext());
@@ -191,8 +190,8 @@
       os << "--- Code ---\n";
     }
     if (print_source) {
-      FunctionLiteral* literal = info->literal();
-      os << "source_position = " << literal->start_position() << "\n";
+      Handle<SharedFunctionInfo> shared = info->shared_info();
+      os << "source_position = " << shared->start_position() << "\n";
     }
     code->Disassemble(debug_name.get(), os);
     os << "--- End code ---\n";
diff --git a/src/compilation-statistics.cc b/src/compilation-statistics.cc
index ed568cb..c7e15b2 100644
--- a/src/compilation-statistics.cc
+++ b/src/compilation-statistics.cc
@@ -66,9 +66,8 @@
   double size_percent =
       static_cast<double>(stats.total_allocated_bytes_ * 100) /
       static_cast<double>(total_stats.total_allocated_bytes_);
-  base::OS::SNPrintF(buffer, kBufferSize,
-                     "%28s %10.3f (%5.1f%%)  "
-                     "%10u (%5.1f%%) %10u %10u",
+  base::OS::SNPrintF(buffer, kBufferSize, "%28s %10.3f (%5.1f%%)  %10" PRIuS
+                                          " (%5.1f%%) %10" PRIuS " %10" PRIuS,
                      name, ms, percent, stats.total_allocated_bytes_,
                      size_percent, stats.max_allocated_bytes_,
                      stats.absolute_max_allocated_bytes_);
diff --git a/src/compiler.cc b/src/compiler.cc
index 8bb5332..d649950 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -15,13 +15,11 @@
 #include "src/compilation-cache.h"
 #include "src/compiler/pipeline.h"
 #include "src/crankshaft/hydrogen.h"
-#include "src/crankshaft/lithium.h"
-#include "src/crankshaft/typing.h"
 #include "src/debug/debug.h"
 #include "src/debug/liveedit.h"
 #include "src/deoptimizer.h"
+#include "src/frames-inl.h"
 #include "src/full-codegen/full-codegen.h"
-#include "src/gdb-jit.h"
 #include "src/interpreter/interpreter.h"
 #include "src/isolate-inl.h"
 #include "src/log-inl.h"
@@ -32,6 +30,7 @@
 #include "src/profiler/cpu-profiler.h"
 #include "src/runtime-profiler.h"
 #include "src/snapshot/code-serializer.h"
+#include "src/typing-asm.h"
 #include "src/vm-state-inl.h"
 
 namespace v8 {
@@ -52,15 +51,10 @@
 
 
 PARSE_INFO_GETTER(Handle<Script>, script)
-PARSE_INFO_GETTER(bool, is_eval)
-PARSE_INFO_GETTER(bool, is_native)
-PARSE_INFO_GETTER(bool, is_module)
 PARSE_INFO_GETTER(FunctionLiteral*, literal)
-PARSE_INFO_GETTER_WITH_DEFAULT(LanguageMode, language_mode, STRICT)
-PARSE_INFO_GETTER_WITH_DEFAULT(Handle<JSFunction>, closure,
-                               Handle<JSFunction>::null())
 PARSE_INFO_GETTER_WITH_DEFAULT(Scope*, scope, nullptr)
-PARSE_INFO_GETTER(Handle<Context>, context)
+PARSE_INFO_GETTER_WITH_DEFAULT(Handle<Context>, context,
+                               Handle<Context>::null())
 PARSE_INFO_GETTER(Handle<SharedFunctionInfo>, shared_info)
 
 #undef PARSE_INFO_GETTER
@@ -80,26 +74,17 @@
   CompilationInfo* info_;
 };
 
-// Exactly like a CompilationInfo, except being allocated via {new} and it also
-// creates and enters a Zone on construction and deallocates it on destruction.
-class CompilationInfoWithZone : public CompilationInfo {
- public:
-  explicit CompilationInfoWithZone(Handle<JSFunction> function)
-      : CompilationInfo(new ParseInfo(&zone_, function)),
-        zone_(function->GetIsolate()->allocator()) {}
-
-  // Virtual destructor because a CompilationInfoWithZone has to exit the
-  // zone scope and get rid of dependent maps even when the destructor is
-  // called when cast as a CompilationInfo.
-  virtual ~CompilationInfoWithZone() {
-    DisableFutureOptimization();
-    dependencies()->Rollback();
-    delete parse_info_;
-    parse_info_ = nullptr;
+// Helper that times a scoped region and records the elapsed time.
+struct ScopedTimer {
+  explicit ScopedTimer(base::TimeDelta* location) : location_(location) {
+    DCHECK(location_ != NULL);
+    timer_.Start();
   }
 
- private:
-  Zone zone_;
+  ~ScopedTimer() { *location_ += timer_.Elapsed(); }
+
+  base::ElapsedTimer timer_;
+  base::TimeDelta* location_;
 };
 
 // ----------------------------------------------------------------------------
@@ -109,25 +94,12 @@
   return parse_info_ && !parse_info_->shared_info().is_null();
 }
 
+CompilationInfo::CompilationInfo(ParseInfo* parse_info,
+                                 Handle<JSFunction> closure)
+    : CompilationInfo(parse_info, {}, Code::ComputeFlags(Code::FUNCTION), BASE,
+                      parse_info->isolate(), parse_info->zone()) {
+  closure_ = closure;
 
-bool CompilationInfo::has_context() const {
-  return parse_info_ && !parse_info_->context().is_null();
-}
-
-
-bool CompilationInfo::has_literal() const {
-  return parse_info_ && parse_info_->literal() != nullptr;
-}
-
-
-bool CompilationInfo::has_scope() const {
-  return parse_info_ && parse_info_->scope() != nullptr;
-}
-
-
-CompilationInfo::CompilationInfo(ParseInfo* parse_info)
-    : CompilationInfo(parse_info, nullptr, Code::ComputeFlags(Code::FUNCTION),
-                      BASE, parse_info->isolate(), parse_info->zone()) {
   // Compiling for the snapshot typically results in different code than
   // compiling later on. This means that code recompiled with deoptimization
   // support won't be "equivalent" (as defined by SharedFunctionInfo::
@@ -140,19 +112,15 @@
   if (FLAG_turbo_inlining) MarkAsInliningEnabled();
   if (FLAG_turbo_source_positions) MarkAsSourcePositionsEnabled();
   if (FLAG_turbo_splitting) MarkAsSplittingEnabled();
-  if (FLAG_turbo_types) MarkAsTypingEnabled();
-
-  if (has_shared_info()) {
-    if (shared_info()->never_compiled()) MarkAsFirstCompile();
-  }
 }
 
-
-CompilationInfo::CompilationInfo(const char* debug_name, Isolate* isolate,
-                                 Zone* zone, Code::Flags code_flags)
+CompilationInfo::CompilationInfo(Vector<const char> debug_name,
+                                 Isolate* isolate, Zone* zone,
+                                 Code::Flags code_flags)
     : CompilationInfo(nullptr, debug_name, code_flags, STUB, isolate, zone) {}
 
-CompilationInfo::CompilationInfo(ParseInfo* parse_info, const char* debug_name,
+CompilationInfo::CompilationInfo(ParseInfo* parse_info,
+                                 Vector<const char> debug_name,
                                  Code::Flags code_flags, Mode mode,
                                  Isolate* isolate, Zone* zone)
     : parse_info_(parse_info),
@@ -168,26 +136,20 @@
       prologue_offset_(Code::kPrologueOffsetNotSet),
       track_positions_(FLAG_hydrogen_track_positions ||
                        isolate->cpu_profiler()->is_profiling()),
-      opt_count_(has_shared_info() ? shared_info()->opt_count() : 0),
       parameter_count_(0),
       optimization_id_(-1),
       osr_expr_stack_height_(0),
       debug_name_(debug_name) {}
 
-
 CompilationInfo::~CompilationInfo() {
   DisableFutureOptimization();
+  dependencies()->Rollback();
   delete deferred_handles_;
-#ifdef DEBUG
-  // Check that no dependent maps have been added or added dependent maps have
-  // been rolled back or committed.
-  DCHECK(dependencies()->IsEmpty());
-#endif  // DEBUG
 }
 
 
 int CompilationInfo::num_parameters() const {
-  return has_scope() ? scope()->num_parameters() : parameter_count_;
+  return !IsStub() ? scope()->num_parameters() : parameter_count_;
 }
 
 
@@ -199,11 +161,6 @@
 bool CompilationInfo::is_this_defined() const { return !IsStub(); }
 
 
-int CompilationInfo::num_heap_slots() const {
-  return has_scope() ? scope()->num_heap_slots() : 0;
-}
-
-
 // Primitive functions are unlikely to be picked up by the stack-walking
 // profiler, so they trigger their own optimization when they're called
 // for the SharedFunctionInfo::kCallsUntilPrimitiveOptimization-th time.
@@ -212,7 +169,7 @@
          !(literal()->flags() & AstProperties::kDontSelfOptimize) &&
          !literal()->dont_optimize() &&
          literal()->scope()->AllowsLazyCompilation() &&
-         (!has_shared_info() || !shared_info()->optimization_disabled());
+         !shared_info()->optimization_disabled();
 }
 
 
@@ -221,59 +178,6 @@
 }
 
 
-int CompilationInfo::TraceInlinedFunction(Handle<SharedFunctionInfo> shared,
-                                          SourcePosition position,
-                                          int parent_id) {
-  DCHECK(track_positions_);
-
-  int inline_id = static_cast<int>(inlined_function_infos_.size());
-  InlinedFunctionInfo info(parent_id, position, UnboundScript::kNoScriptId,
-      shared->start_position());
-  if (!shared->script()->IsUndefined()) {
-    Handle<Script> script(Script::cast(shared->script()));
-    info.script_id = script->id();
-
-    if (FLAG_hydrogen_track_positions && !script->source()->IsUndefined()) {
-      CodeTracer::Scope tracing_scope(isolate()->GetCodeTracer());
-      OFStream os(tracing_scope.file());
-      os << "--- FUNCTION SOURCE (" << shared->DebugName()->ToCString().get()
-         << ") id{" << optimization_id() << "," << inline_id << "} ---\n";
-      {
-        DisallowHeapAllocation no_allocation;
-        int start = shared->start_position();
-        int len = shared->end_position() - start;
-        String::SubStringRange source(String::cast(script->source()), start,
-                                      len);
-        for (const auto& c : source) {
-          os << AsReversiblyEscapedUC16(c);
-        }
-      }
-
-      os << "\n--- END ---\n";
-    }
-  }
-
-  inlined_function_infos_.push_back(info);
-
-  if (FLAG_hydrogen_track_positions && inline_id != 0) {
-    CodeTracer::Scope tracing_scope(isolate()->GetCodeTracer());
-    OFStream os(tracing_scope.file());
-    os << "INLINE (" << shared->DebugName()->ToCString().get() << ") id{"
-       << optimization_id() << "," << inline_id << "} AS " << inline_id
-       << " AT " << position << std::endl;
-  }
-
-  return inline_id;
-}
-
-
-void CompilationInfo::LogDeoptCallPosition(int pc_offset, int inlining_id) {
-  if (!track_positions_ || IsStub()) return;
-  DCHECK_LT(static_cast<size_t>(inlining_id), inlined_function_infos_.size());
-  inlined_function_infos_.at(inlining_id).deopt_pc_offsets.push_back(pc_offset);
-}
-
-
 base::SmartArrayPointer<char> CompilationInfo::GetDebugName() const {
   if (parse_info() && parse_info()->literal()) {
     AllowHandleDereference allow_deref;
@@ -282,10 +186,11 @@
   if (parse_info() && !parse_info()->shared_info().is_null()) {
     return parse_info()->shared_info()->DebugName()->ToCString();
   }
-  const char* str = debug_name_ ? debug_name_ : "unknown";
-  size_t len = strlen(str) + 1;
-  base::SmartArrayPointer<char> name(new char[len]);
-  memcpy(name.get(), str, len);
+  Vector<const char> name_vec = debug_name_;
+  if (name_vec.is_empty()) name_vec = ArrayVector("unknown");
+  base::SmartArrayPointer<char> name(new char[name_vec.length() + 1]);
+  memcpy(name.get(), name_vec.start(), name_vec.length());
+  name[name_vec.length()] = '\0';
   return name;
 }
 
@@ -308,8 +213,15 @@
   }
 }
 
+int CompilationInfo::GetDeclareGlobalsFlags() const {
+  DCHECK(DeclareGlobalsLanguageMode::is_valid(parse_info()->language_mode()));
+  return DeclareGlobalsEvalFlag::encode(parse_info()->is_eval()) |
+         DeclareGlobalsNativeFlag::encode(parse_info()->is_native()) |
+         DeclareGlobalsLanguageMode::encode(parse_info()->language_mode());
+}
+
 bool CompilationInfo::ExpectsJSReceiverAsReceiver() {
-  return is_sloppy(language_mode()) && !is_native();
+  return is_sloppy(parse_info()->language_mode()) && !parse_info()->is_native();
 }
 
 #if DEBUG
@@ -320,250 +232,47 @@
 #endif
 
 // ----------------------------------------------------------------------------
-// Implementation of OptimizedCompileJob
+// Implementation of CompilationJob
 
-class HOptimizedGraphBuilderWithPositions: public HOptimizedGraphBuilder {
- public:
-  explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info)
-      : HOptimizedGraphBuilder(info) {
-  }
-
-#define DEF_VISIT(type)                                      \
-  void Visit##type(type* node) override {                    \
-    SourcePosition old_position = SourcePosition::Unknown(); \
-    if (node->position() != RelocInfo::kNoPosition) {        \
-      old_position = source_position();                      \
-      SetSourcePosition(node->position());                   \
-    }                                                        \
-    HOptimizedGraphBuilder::Visit##type(node);               \
-    if (!old_position.IsUnknown()) {                         \
-      set_source_position(old_position);                     \
-    }                                                        \
-  }
-  EXPRESSION_NODE_LIST(DEF_VISIT)
-#undef DEF_VISIT
-
-#define DEF_VISIT(type)                                      \
-  void Visit##type(type* node) override {                    \
-    SourcePosition old_position = SourcePosition::Unknown(); \
-    if (node->position() != RelocInfo::kNoPosition) {        \
-      old_position = source_position();                      \
-      SetSourcePosition(node->position());                   \
-    }                                                        \
-    HOptimizedGraphBuilder::Visit##type(node);               \
-    if (!old_position.IsUnknown()) {                         \
-      set_source_position(old_position);                     \
-    }                                                        \
-  }
-  STATEMENT_NODE_LIST(DEF_VISIT)
-#undef DEF_VISIT
-
-#define DEF_VISIT(type)                        \
-  void Visit##type(type* node) override {      \
-    HOptimizedGraphBuilder::Visit##type(node); \
-  }
-  DECLARATION_NODE_LIST(DEF_VISIT)
-#undef DEF_VISIT
-};
-
-
-OptimizedCompileJob::Status OptimizedCompileJob::CreateGraph() {
+CompilationJob::Status CompilationJob::CreateGraph() {
+  DisallowJavascriptExecution no_js(isolate());
   DCHECK(info()->IsOptimizing());
 
-  // Do not use Crankshaft/TurboFan if we need to be able to set break points.
-  if (info()->shared_info()->HasDebugInfo()) {
-    return AbortOptimization(kFunctionBeingDebugged);
-  }
-
-  // Resuming a suspended frame is not supported by Crankshaft/TurboFan.
-  if (info()->shared_info()->HasBuiltinFunctionId() &&
-      (info()->shared_info()->builtin_function_id() == kGeneratorObjectNext ||
-       info()->shared_info()->builtin_function_id() == kGeneratorObjectReturn ||
-       info()->shared_info()->builtin_function_id() == kGeneratorObjectThrow)) {
-    return AbortOptimization(kGeneratorResumeMethod);
-  }
-
-  // Limit the number of times we try to optimize functions.
-  const int kMaxOptCount =
-      FLAG_deopt_every_n_times == 0 ? FLAG_max_opt_count : 1000;
-  if (info()->opt_count() > kMaxOptCount) {
-    return AbortOptimization(kOptimizedTooManyTimes);
-  }
-
-  // Check the whitelist for Crankshaft.
-  if (!info()->shared_info()->PassesFilter(FLAG_hydrogen_filter)) {
-    return AbortOptimization(kHydrogenFilter);
-  }
-
-  // Optimization requires a version of fullcode with deoptimization support.
-  // Recompile the unoptimized version of the code if the current version
-  // doesn't have deoptimization support already.
-  // Otherwise, if we are gathering compilation time and space statistics
-  // for hydrogen, gather baseline statistics for a fullcode compilation.
-  bool should_recompile = !info()->shared_info()->has_deoptimization_support();
-  if (should_recompile || FLAG_hydrogen_stats) {
-    base::ElapsedTimer timer;
-    if (FLAG_hydrogen_stats) {
-      timer.Start();
-    }
-    if (!Compiler::EnsureDeoptimizationSupport(info())) {
-      return SetLastStatus(FAILED);
-    }
-    if (FLAG_hydrogen_stats) {
-      isolate()->GetHStatistics()->IncrementFullCodeGen(timer.Elapsed());
-    }
-  }
-
-  DCHECK(info()->shared_info()->has_deoptimization_support());
-  DCHECK(!info()->is_first_compile());
-
-  bool optimization_disabled = info()->shared_info()->optimization_disabled();
-  bool dont_crankshaft = info()->shared_info()->dont_crankshaft();
-
-  // Check the enabling conditions for Turbofan.
-  // 1. "use asm" code.
-  bool is_turbofanable_asm = FLAG_turbo_asm &&
-                             info()->shared_info()->asm_function() &&
-                             !optimization_disabled;
-
-  // 2. Fallback for features unsupported by Crankshaft.
-  bool is_unsupported_by_crankshaft_but_turbofanable =
-      dont_crankshaft && strcmp(FLAG_turbo_filter, "~~") == 0 &&
-      !optimization_disabled;
-
-  // 3. Explicitly enabled by the command-line filter.
-  bool passes_turbo_filter =
-      info()->shared_info()->PassesFilter(FLAG_turbo_filter);
-
-  // If this is OSR request, OSR must be enabled by Turbofan.
-  bool passes_osr_test = FLAG_turbo_osr || !info()->is_osr();
-
-  if ((is_turbofanable_asm || is_unsupported_by_crankshaft_but_turbofanable ||
-       passes_turbo_filter) &&
-      passes_osr_test) {
-    // Use TurboFan for the compilation.
-    if (FLAG_trace_opt) {
-      OFStream os(stdout);
-      os << "[compiling method " << Brief(*info()->closure())
-         << " using TurboFan";
-      if (info()->is_osr()) os << " OSR";
-      os << "]" << std::endl;
-    }
-
-    if (info()->shared_info()->asm_function()) {
-      if (info()->osr_frame()) info()->MarkAsFrameSpecializing();
-      info()->MarkAsFunctionContextSpecializing();
-    } else {
-      if (!FLAG_always_opt) {
-        info()->MarkAsBailoutOnUninitialized();
-      }
-      if (FLAG_native_context_specialization) {
-        info()->MarkAsNativeContextSpecializing();
-        info()->MarkAsTypingEnabled();
-      }
-    }
-    if (!info()->shared_info()->asm_function() ||
-        FLAG_turbo_asm_deoptimization) {
-      info()->MarkAsDeoptimizationEnabled();
-    }
-
-    Timer t(this, &time_taken_to_create_graph_);
-    compiler::Pipeline pipeline(info());
-    pipeline.GenerateCode();
-    if (!info()->code().is_null()) {
-      return SetLastStatus(SUCCEEDED);
-    }
-  }
-
-  if (!isolate()->use_crankshaft() || dont_crankshaft) {
-    // Crankshaft is entirely disabled.
-    return SetLastStatus(FAILED);
-  }
-
-  Scope* scope = info()->scope();
-  if (LUnallocated::TooManyParameters(scope->num_parameters())) {
-    // Crankshaft would require too many Lithium operands.
-    return AbortOptimization(kTooManyParameters);
-  }
-
-  if (info()->is_osr() &&
-      LUnallocated::TooManyParametersOrStackSlots(scope->num_parameters(),
-                                                  scope->num_stack_slots())) {
-    // Crankshaft would require too many Lithium operands.
-    return AbortOptimization(kTooManyParametersLocals);
-  }
-
   if (FLAG_trace_opt) {
     OFStream os(stdout);
-    os << "[compiling method " << Brief(*info()->closure())
-       << " using Crankshaft";
+    os << "[compiling method " << Brief(*info()->closure()) << " using "
+       << compiler_name_;
     if (info()->is_osr()) os << " OSR";
     os << "]" << std::endl;
   }
 
-  if (FLAG_trace_hydrogen) {
-    isolate()->GetHTracer()->TraceCompilation(info());
-  }
-
-  // Type-check the function.
-  AstTyper(info()->isolate(), info()->zone(), info()->closure(),
-           info()->scope(), info()->osr_ast_id(), info()->literal())
-      .Run();
-
-  // Optimization could have been disabled by the parser. Note that this check
-  // is only needed because the Hydrogen graph builder is missing some bailouts.
-  if (info()->shared_info()->optimization_disabled()) {
-    return AbortOptimization(
-        info()->shared_info()->disable_optimization_reason());
-  }
-
-  HOptimizedGraphBuilder* graph_builder =
-      (info()->is_tracking_positions() || FLAG_trace_ic)
-          ? new (info()->zone()) HOptimizedGraphBuilderWithPositions(info())
-          : new (info()->zone()) HOptimizedGraphBuilder(info());
-
-  Timer t(this, &time_taken_to_create_graph_);
-  graph_ = graph_builder->CreateGraph();
-
-  if (isolate()->has_pending_exception()) {
-    return SetLastStatus(FAILED);
-  }
-
-  if (graph_ == NULL) return SetLastStatus(BAILED_OUT);
-
-  if (info()->dependencies()->HasAborted()) {
-    // Dependency has changed during graph creation. Let's try again later.
-    return RetryOptimization(kBailedOutDueToDependencyChange);
-  }
-
-  return SetLastStatus(SUCCEEDED);
+  // Delegate to the underlying implementation.
+  DCHECK_EQ(SUCCEEDED, last_status());
+  ScopedTimer t(&time_taken_to_create_graph_);
+  return SetLastStatus(CreateGraphImpl());
 }
 
-
-OptimizedCompileJob::Status OptimizedCompileJob::OptimizeGraph() {
+CompilationJob::Status CompilationJob::OptimizeGraph() {
   DisallowHeapAllocation no_allocation;
   DisallowHandleAllocation no_handles;
   DisallowHandleDereference no_deref;
   DisallowCodeDependencyChange no_dependency_change;
 
-  DCHECK(last_status() == SUCCEEDED);
-  // TODO(turbofan): Currently everything is done in the first phase.
-  if (!info()->code().is_null()) {
-    return last_status();
-  }
+  // Delegate to the underlying implementation.
+  DCHECK_EQ(SUCCEEDED, last_status());
+  ScopedTimer t(&time_taken_to_optimize_);
+  return SetLastStatus(OptimizeGraphImpl());
+}
 
-  Timer t(this, &time_taken_to_optimize_);
-  DCHECK(graph_ != NULL);
-  BailoutReason bailout_reason = kNoReason;
+CompilationJob::Status CompilationJob::GenerateCode() {
+  DisallowCodeDependencyChange no_dependency_change;
+  DisallowJavascriptExecution no_js(isolate());
+  DCHECK(!info()->dependencies()->HasAborted());
 
-  if (graph_->Optimize(&bailout_reason)) {
-    chunk_ = LChunk::NewChunk(graph_);
-    if (chunk_ != NULL) return SetLastStatus(SUCCEEDED);
-  } else if (bailout_reason != kNoReason) {
-    info_->AbortOptimization(bailout_reason);
-  }
-
-  return SetLastStatus(BAILED_OUT);
+  // Delegate to the underlying implementation.
+  DCHECK_EQ(SUCCEEDED, last_status());
+  ScopedTimer t(&time_taken_to_codegen_);
+  return SetLastStatus(GenerateCodeImpl());
 }
 
 
@@ -578,8 +287,9 @@
   heap->AddWeakObjectToCodeDependency(object, dep);
 }
 
+}  // namespace
 
-void RegisterWeakObjectsInOptimizedCode(Handle<Code> code) {
+void CompilationJob::RegisterWeakObjectsInOptimizedCode(Handle<Code> code) {
   // TODO(turbofan): Move this to pipeline.cc once Crankshaft dies.
   Isolate* const isolate = code->GetIsolate();
   DCHECK(code->is_optimized_code());
@@ -619,53 +329,7 @@
   code->set_can_have_weak_objects(true);
 }
 
-}  // namespace
-
-
-OptimizedCompileJob::Status OptimizedCompileJob::GenerateCode() {
-  DCHECK(last_status() == SUCCEEDED);
-  // TODO(turbofan): Currently everything is done in the first phase.
-  if (!info()->code().is_null()) {
-    info()->dependencies()->Commit(info()->code());
-    if (info()->is_deoptimization_enabled()) {
-      info()->parse_info()->context()->native_context()->AddOptimizedCode(
-          *info()->code());
-      RegisterWeakObjectsInOptimizedCode(info()->code());
-    }
-    RecordOptimizationStats();
-    return last_status();
-  }
-
-  DCHECK(!info()->dependencies()->HasAborted());
-  DisallowCodeDependencyChange no_dependency_change;
-  DisallowJavascriptExecution no_js(isolate());
-  {  // Scope for timer.
-    Timer timer(this, &time_taken_to_codegen_);
-    DCHECK(chunk_ != NULL);
-    DCHECK(graph_ != NULL);
-    // Deferred handles reference objects that were accessible during
-    // graph creation.  To make sure that we don't encounter inconsistencies
-    // between graph creation and code generation, we disallow accessing
-    // objects through deferred handles during the latter, with exceptions.
-    DisallowDeferredHandleDereference no_deferred_handle_deref;
-    Handle<Code> optimized_code = chunk_->Codegen();
-    if (optimized_code.is_null()) {
-      if (info()->bailout_reason() == kNoReason) {
-        return AbortOptimization(kCodeGenerationFailed);
-      }
-      return SetLastStatus(BAILED_OUT);
-    }
-    RegisterWeakObjectsInOptimizedCode(optimized_code);
-    info()->SetCode(optimized_code);
-  }
-  RecordOptimizationStats();
-  // Add to the weak list of optimized code objects.
-  info()->context()->native_context()->AddOptimizedCode(*info()->code());
-  return SetLastStatus(SUCCEEDED);
-}
-
-
-void OptimizedCompileJob::RecordOptimizationStats() {
+void CompilationJob::RecordOptimizationStats() {
   Handle<JSFunction> function = info()->closure();
   if (!function->IsOptimized()) {
     // Concurrent recompilation and OSR may race.  Increment only once.
@@ -706,47 +370,25 @@
 
 namespace {
 
-// Sets the expected number of properties based on estimate from compiler.
-void SetExpectedNofPropertiesFromEstimate(Handle<SharedFunctionInfo> shared,
-                                          int estimate) {
-  // If no properties are added in the constructor, they are more likely
-  // to be added later.
-  if (estimate == 0) estimate = 2;
-
-  // TODO(yangguo): check whether those heuristics are still up-to-date.
-  // We do not shrink objects that go into a snapshot (yet), so we adjust
-  // the estimate conservatively.
-  if (shared->GetIsolate()->serializer_enabled()) {
-    estimate += 2;
-  } else {
-    // Inobject slack tracking will reclaim redundant inobject space later,
-    // so we can afford to adjust the estimate generously.
-    estimate += 8;
-  }
-
-  shared->set_expected_nof_properties(estimate);
-}
-
-void MaybeDisableOptimization(Handle<SharedFunctionInfo> shared_info,
-                              BailoutReason bailout_reason) {
-  if (bailout_reason != kNoReason) {
-    shared_info->DisableOptimization(bailout_reason);
-  }
+bool IsEvalToplevel(Handle<SharedFunctionInfo> shared) {
+  return shared->is_toplevel() && shared->script()->IsScript() &&
+         Script::cast(shared->script())->compilation_type() ==
+             Script::COMPILATION_TYPE_EVAL;
 }
 
 void RecordFunctionCompilation(Logger::LogEventsAndTags tag,
-                               CompilationInfo* info,
-                               Handle<SharedFunctionInfo> shared) {
-  // SharedFunctionInfo is passed separately, because if CompilationInfo
-  // was created using Script object, it will not have it.
-
+                               CompilationInfo* info) {
   // Log the code generation. If source information is available include
   // script name and line number. Check explicitly whether logging is
   // enabled as finding the line number is not free.
   if (info->isolate()->logger()->is_logging_code_events() ||
       info->isolate()->cpu_profiler()->is_profiling()) {
+    Handle<SharedFunctionInfo> shared = info->shared_info();
     Handle<Script> script = info->parse_info()->script();
-    Handle<AbstractCode> abstract_code = info->abstract_code();
+    Handle<AbstractCode> abstract_code =
+        info->has_bytecode_array()
+            ? Handle<AbstractCode>::cast(info->bytecode_array())
+            : Handle<AbstractCode>::cast(info->code());
     if (abstract_code.is_identical_to(
             info->isolate()->builtins()->CompileLazy())) {
       return;
@@ -759,13 +401,13 @@
                               : info->isolate()->heap()->empty_string();
     Logger::LogEventsAndTags log_tag = Logger::ToNativeByScript(tag, *script);
     PROFILE(info->isolate(),
-            CodeCreateEvent(log_tag, *abstract_code, *shared, info, script_name,
+            CodeCreateEvent(log_tag, *abstract_code, *shared, script_name,
                             line_num, column_num));
   }
 }
 
 void EnsureFeedbackVector(CompilationInfo* info) {
-  if (!info->has_shared_info()) return;
+  DCHECK(info->has_shared_info());
 
   // If no type feedback vector exists, we create one now. At this point the
   // AstNumbering pass has already run. Note the snapshot can contain outdated
@@ -786,28 +428,9 @@
       info->literal()->feedback_vector_spec()));
 }
 
-bool CompileUnoptimizedCode(CompilationInfo* info) {
-  DCHECK(AllowCompilation::IsAllowed(info->isolate()));
-  if (!Compiler::Analyze(info->parse_info()) ||
-      !(EnsureFeedbackVector(info), FullCodeGenerator::MakeCode(info))) {
-    Isolate* isolate = info->isolate();
-    if (!isolate->has_pending_exception()) isolate->StackOverflow();
-    return false;
-  }
-  return true;
-}
-
 bool UseIgnition(CompilationInfo* info) {
-  // TODO(4681): Generator functions are not yet supported.
-  if (info->shared_info()->is_generator()) {
-    return false;
-  }
-
-  // TODO(4681): Resuming a suspended frame is not supported.
-  if (info->shared_info()->HasBuiltinFunctionId() &&
-      (info->shared_info()->builtin_function_id() == kGeneratorObjectNext ||
-       info->shared_info()->builtin_function_id() == kGeneratorObjectReturn ||
-       info->shared_info()->builtin_function_id() == kGeneratorObjectThrow)) {
+  if (info->is_debug()) return false;
+  if (info->shared_info()->is_resumable() && !FLAG_ignition_generators) {
     return false;
   }
 
@@ -839,9 +462,20 @@
   return size;
 }
 
-bool GenerateBaselineCode(CompilationInfo* info) {
+bool GenerateUnoptimizedCode(CompilationInfo* info) {
   bool success;
   EnsureFeedbackVector(info);
+  if (FLAG_validate_asm && info->scope()->asm_module()) {
+    AsmTyper typer(info->isolate(), info->zone(), *(info->script()),
+                   info->literal());
+    if (FLAG_enable_simd_asmjs) {
+      typer.set_allow_simd(true);
+    }
+    if (!typer.Validate()) {
+      DCHECK(!info->isolate()->has_pending_exception());
+      PrintF("Validation of asm.js module failed: %s", typer.error_message());
+    }
+  }
   if (FLAG_ignition && UseIgnition(info)) {
     success = interpreter::Interpreter::MakeBytecode(info);
   } else {
@@ -850,15 +484,17 @@
   if (success) {
     Isolate* isolate = info->isolate();
     Counters* counters = isolate->counters();
+    // TODO(4280): Rename counters from "baseline" to "unoptimized" eventually.
     counters->total_baseline_code_size()->Increment(CodeAndMetadataSize(info));
     counters->total_baseline_compile_count()->Increment(1);
   }
   return success;
 }
 
-bool CompileBaselineCode(CompilationInfo* info) {
+bool CompileUnoptimizedCode(CompilationInfo* info) {
   DCHECK(AllowCompilation::IsAllowed(info->isolate()));
-  if (!Compiler::Analyze(info->parse_info()) || !GenerateBaselineCode(info)) {
+  if (!Compiler::Analyze(info->parse_info()) ||
+      !GenerateUnoptimizedCode(info)) {
     Isolate* isolate = info->isolate();
     if (!isolate->has_pending_exception()) isolate->StackOverflow();
     return false;
@@ -866,44 +502,45 @@
   return true;
 }
 
-void InstallBaselineCompilationResult(CompilationInfo* info,
-                                      Handle<SharedFunctionInfo> shared,
-                                      Handle<ScopeInfo> scope_info) {
+void InstallSharedScopeInfo(CompilationInfo* info,
+                            Handle<SharedFunctionInfo> shared) {
+  Handle<ScopeInfo> scope_info =
+      ScopeInfo::Create(info->isolate(), info->zone(), info->scope());
+  shared->set_scope_info(*scope_info);
+}
+
+void InstallSharedCompilationResult(CompilationInfo* info,
+                                    Handle<SharedFunctionInfo> shared) {
   // Assert that we are not overwriting (possibly patched) debug code.
-  DCHECK(!shared->HasDebugCode());
+  DCHECK(!shared->HasDebugInfo());
   DCHECK(!info->code().is_null());
   shared->ReplaceCode(*info->code());
-  shared->set_scope_info(*scope_info);
   if (info->has_bytecode_array()) {
     DCHECK(!shared->HasBytecodeArray());  // Only compiled once.
     shared->set_bytecode_array(*info->bytecode_array());
   }
 }
 
-MUST_USE_RESULT MaybeHandle<Code> GetUnoptimizedCodeCommon(
-    CompilationInfo* info) {
+MUST_USE_RESULT MaybeHandle<Code> GetUnoptimizedCode(CompilationInfo* info) {
   VMState<COMPILER> state(info->isolate());
   PostponeInterruptsScope postpone(info->isolate());
 
   // Parse and update CompilationInfo with the results.
   if (!Parser::ParseStatic(info->parse_info())) return MaybeHandle<Code>();
   Handle<SharedFunctionInfo> shared = info->shared_info();
-  FunctionLiteral* lit = info->literal();
-  DCHECK_EQ(shared->language_mode(), lit->language_mode());
-  SetExpectedNofPropertiesFromEstimate(shared, lit->expected_property_count());
-  MaybeDisableOptimization(shared, lit->dont_optimize_reason());
+  DCHECK_EQ(shared->language_mode(), info->literal()->language_mode());
 
   // Compile either unoptimized code or bytecode for the interpreter.
-  if (!CompileBaselineCode(info)) return MaybeHandle<Code>();
-  RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info, shared);
+  if (!CompileUnoptimizedCode(info)) return MaybeHandle<Code>();
 
-  // Update the shared function info with the scope info. Allocating the
-  // ScopeInfo object may cause a GC.
-  Handle<ScopeInfo> scope_info =
-      ScopeInfo::Create(info->isolate(), info->zone(), info->scope());
+  // Update the shared function info with the scope info.
+  InstallSharedScopeInfo(info, shared);
 
   // Install compilation result on the shared function info
-  InstallBaselineCompilationResult(info, shared, scope_info);
+  InstallSharedCompilationResult(info, shared);
+
+  // Record the function compilation event.
+  RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info);
 
   return info->code();
 }
@@ -964,7 +601,9 @@
   if (!shared_info.is_null()) {
     FunctionLiteral* lit = parse_info->literal();
     shared_info->set_ast_node_count(lit->ast_node_count());
-    MaybeDisableOptimization(shared_info, lit->dont_optimize_reason());
+    if (lit->dont_optimize_reason() != kNoReason) {
+      shared_info->DisableOptimization(lit->dont_optimize_reason());
+    }
     shared_info->set_dont_crankshaft(
         shared_info->dont_crankshaft() ||
         (lit->flags() & AstProperties::kDontCrankshaft));
@@ -972,21 +611,42 @@
   return true;
 }
 
-bool GetOptimizedCodeNow(CompilationInfo* info) {
-  Isolate* isolate = info->isolate();
-  CanonicalHandleScope canonical(isolate);
-  TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate);
-  TRACE_EVENT0("v8", "V8.OptimizeCode");
+bool UseTurboFan(Handle<SharedFunctionInfo> shared) {
+  bool optimization_disabled = shared->optimization_disabled();
+  bool dont_crankshaft = shared->dont_crankshaft();
 
-  if (!Compiler::ParseAndAnalyze(info->parse_info())) return false;
+  // Check the enabling conditions for Turbofan.
+  // 1. "use asm" code.
+  bool is_turbofanable_asm =
+      FLAG_turbo_asm && shared->asm_function() && !optimization_disabled;
+
+  // 2. Fallback for features unsupported by Crankshaft.
+  bool is_unsupported_by_crankshaft_but_turbofanable =
+      dont_crankshaft && strcmp(FLAG_turbo_filter, "~~") == 0 &&
+      !optimization_disabled;
+
+  // 3. Explicitly enabled by the command-line filter.
+  bool passes_turbo_filter = shared->PassesFilter(FLAG_turbo_filter);
+
+  return is_turbofanable_asm || is_unsupported_by_crankshaft_but_turbofanable ||
+         passes_turbo_filter;
+}
+
+bool GetOptimizedCodeNow(CompilationJob* job) {
+  CompilationInfo* info = job->info();
+  Isolate* isolate = info->isolate();
+
+  // Parsing is not required when optimizing from existing bytecode.
+  if (!info->is_optimizing_from_bytecode()) {
+    if (!Compiler::ParseAndAnalyze(info->parse_info())) return false;
+  }
 
   TimerEventScope<TimerEventRecompileSynchronous> timer(isolate);
   TRACE_EVENT0("v8", "V8.RecompileSynchronous");
 
-  OptimizedCompileJob job(info);
-  if (job.CreateGraph() != OptimizedCompileJob::SUCCEEDED ||
-      job.OptimizeGraph() != OptimizedCompileJob::SUCCEEDED ||
-      job.GenerateCode() != OptimizedCompileJob::SUCCEEDED) {
+  if (job->CreateGraph() != CompilationJob::SUCCEEDED ||
+      job->OptimizeGraph() != CompilationJob::SUCCEEDED ||
+      job->GenerateCode() != CompilationJob::SUCCEEDED) {
     if (FLAG_trace_opt) {
       PrintF("[aborted optimizing ");
       info->closure()->ShortPrint();
@@ -996,18 +656,16 @@
   }
 
   // Success!
+  job->RecordOptimizationStats();
   DCHECK(!isolate->has_pending_exception());
   InsertCodeIntoOptimizedCodeMap(info);
-  RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info,
-                            info->shared_info());
+  RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info);
   return true;
 }
 
-bool GetOptimizedCodeLater(CompilationInfo* info) {
+bool GetOptimizedCodeLater(CompilationJob* job) {
+  CompilationInfo* info = job->info();
   Isolate* isolate = info->isolate();
-  CanonicalHandleScope canonical(isolate);
-  TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate);
-  TRACE_EVENT0("v8", "V8.OptimizeCode");
 
   if (!isolate->optimizing_compile_dispatcher()->IsQueueAvailable()) {
     if (FLAG_trace_concurrent_recompilation) {
@@ -1018,8 +676,14 @@
     return false;
   }
 
+  // All handles below this point will be allocated in a deferred handle scope
+  // that is detached and handed off to the background thread when we return.
   CompilationHandleScope handle_scope(info);
-  if (!Compiler::ParseAndAnalyze(info->parse_info())) return false;
+
+  // Parsing is not required when optimizing from existing bytecode.
+  if (!info->is_optimizing_from_bytecode()) {
+    if (!Compiler::ParseAndAnalyze(info->parse_info())) return false;
+  }
 
   // Reopen handles in the new CompilationHandleScope.
   info->ReopenHandlesInNewHandleScope();
@@ -1028,45 +692,23 @@
   TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate());
   TRACE_EVENT0("v8", "V8.RecompileSynchronous");
 
-  OptimizedCompileJob* job = new (info->zone()) OptimizedCompileJob(info);
-  OptimizedCompileJob::Status status = job->CreateGraph();
-  if (status != OptimizedCompileJob::SUCCEEDED) return false;
+  if (job->CreateGraph() != CompilationJob::SUCCEEDED) return false;
   isolate->optimizing_compile_dispatcher()->QueueForOptimization(job);
 
   if (FLAG_trace_concurrent_recompilation) {
     PrintF("  ** Queued ");
     info->closure()->ShortPrint();
-    if (info->is_osr()) {
-      PrintF(" for concurrent OSR at %d.\n", info->osr_ast_id().ToInt());
-    } else {
-      PrintF(" for concurrent optimization.\n");
-    }
+    PrintF(" for concurrent optimization.\n");
   }
   return true;
 }
 
-MaybeHandle<Code> GetUnoptimizedCode(Handle<JSFunction> function) {
-  DCHECK(!function->GetIsolate()->has_pending_exception());
-  DCHECK(!function->is_compiled());
-  if (function->shared()->is_compiled()) {
-    return Handle<Code>(function->shared()->code());
-  }
-
-  CompilationInfoWithZone info(function);
-  Handle<Code> result;
-  ASSIGN_RETURN_ON_EXCEPTION(info.isolate(), result,
-                             GetUnoptimizedCodeCommon(&info),
-                             Code);
-  return result;
-}
-
 MaybeHandle<Code> GetOptimizedCode(Handle<JSFunction> function,
                                    Compiler::ConcurrencyMode mode,
                                    BailoutId osr_ast_id = BailoutId::None(),
                                    JavaScriptFrame* osr_frame = nullptr) {
   Isolate* isolate = function->GetIsolate();
   Handle<SharedFunctionInfo> shared(function->shared(), isolate);
-  if (shared->HasDebugInfo()) return MaybeHandle<Code>();
 
   Handle<Code> cached_code;
   if (GetCodeFromOptimizedCodeMap(function, osr_ast_id)
@@ -1082,46 +724,186 @@
     return cached_code;
   }
 
-  DCHECK(AllowCompilation::IsAllowed(isolate));
-
+  // Reset profiler ticks, function is no longer considered hot.
   if (shared->is_compiled()) {
     shared->code()->set_profiler_ticks(0);
   }
 
-  // TODO(mstarzinger): We cannot properly deserialize a scope chain containing
-  // an eval scope and hence would fail at parsing the eval source again.
-  if (shared->disable_optimization_reason() == kEval) {
-    return MaybeHandle<Code>();
-  }
-
-  // TODO(mstarzinger): We cannot properly deserialize a scope chain for the
-  // builtin context, hence Genesis::InstallExperimentalNatives would fail.
-  if (shared->is_toplevel() && isolate->bootstrapper()->IsActive()) {
-    return MaybeHandle<Code>();
-  }
-
-  base::SmartPointer<CompilationInfo> info(
-      new CompilationInfoWithZone(function));
   VMState<COMPILER> state(isolate);
   DCHECK(!isolate->has_pending_exception());
   PostponeInterruptsScope postpone(isolate);
+  bool use_turbofan = UseTurboFan(shared);
+  base::SmartPointer<CompilationJob> job(
+      use_turbofan ? compiler::Pipeline::NewCompilationJob(function)
+                   : new HCompilationJob(function));
+  CompilationInfo* info = job->info();
+  ParseInfo* parse_info = info->parse_info();
 
-  info->SetOptimizingForOsr(osr_ast_id);
+  info->SetOptimizingForOsr(osr_ast_id, osr_frame);
+
+  // Do not use Crankshaft/TurboFan if we need to be able to set break points.
+  if (info->shared_info()->HasDebugInfo()) {
+    info->AbortOptimization(kFunctionBeingDebugged);
+    return MaybeHandle<Code>();
+  }
+
+  // Limit the number of times we try to optimize functions.
+  const int kMaxOptCount =
+      FLAG_deopt_every_n_times == 0 ? FLAG_max_opt_count : 1000;
+  if (info->shared_info()->opt_count() > kMaxOptCount) {
+    info->AbortOptimization(kOptimizedTooManyTimes);
+    return MaybeHandle<Code>();
+  }
+
+  CanonicalHandleScope canonical(isolate);
+  TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate);
+  TRACE_EVENT0("v8", "V8.OptimizeCode");
+
+  // TurboFan can optimize directly from existing bytecode.
+  if (FLAG_turbo_from_bytecode && use_turbofan &&
+      info->shared_info()->HasBytecodeArray()) {
+    info->MarkAsOptimizeFromBytecode();
+  }
+
+  if (IsEvalToplevel(shared)) {
+    parse_info->set_eval();
+    if (function->context()->IsNativeContext()) parse_info->set_global();
+    parse_info->set_toplevel();
+    parse_info->set_allow_lazy_parsing(false);
+    parse_info->set_lazy(false);
+  }
 
   if (mode == Compiler::CONCURRENT) {
-    if (GetOptimizedCodeLater(info.get())) {
-      info.Detach();  // The background recompile job owns this now.
+    if (GetOptimizedCodeLater(job.get())) {
+      job.Detach();   // The background recompile job owns this now.
       return isolate->builtins()->InOptimizationQueue();
     }
   } else {
-    info->set_osr_frame(osr_frame);
-    if (GetOptimizedCodeNow(info.get())) return info->code();
+    if (GetOptimizedCodeNow(job.get())) return info->code();
   }
 
   if (isolate->has_pending_exception()) isolate->clear_pending_exception();
   return MaybeHandle<Code>();
 }
 
+class InterpreterActivationsFinder : public ThreadVisitor,
+                                     public OptimizedFunctionVisitor {
+ public:
+  SharedFunctionInfo* shared_;
+  bool has_activations_;
+
+  explicit InterpreterActivationsFinder(SharedFunctionInfo* shared)
+      : shared_(shared), has_activations_(false) {}
+
+  void VisitThread(Isolate* isolate, ThreadLocalTop* top) {
+    JavaScriptFrameIterator it(isolate, top);
+    for (; !it.done() && !has_activations_; it.Advance()) {
+      JavaScriptFrame* frame = it.frame();
+      if (!frame->is_interpreted()) continue;
+      if (frame->function()->shared() == shared_) has_activations_ = true;
+    }
+  }
+
+  void VisitFunction(JSFunction* function) {
+    if (function->Inlines(shared_)) has_activations_ = true;
+  }
+
+  void EnterContext(Context* context) {}
+  void LeaveContext(Context* context) {}
+};
+
+bool HasInterpreterActivations(Isolate* isolate, SharedFunctionInfo* shared) {
+  InterpreterActivationsFinder activations_finder(shared);
+  activations_finder.VisitThread(isolate, isolate->thread_local_top());
+  isolate->thread_manager()->IterateArchivedThreads(&activations_finder);
+  if (FLAG_turbo_from_bytecode) {
+    // If we are able to optimize functions directly from bytecode, then there
+    // might be optimized functions that rely on bytecode being around. We need
+    // to prevent switching the given function to baseline code in those cases.
+    Deoptimizer::VisitAllOptimizedFunctions(isolate, &activations_finder);
+  }
+  return activations_finder.has_activations_;
+}
+
+MaybeHandle<Code> GetBaselineCode(Handle<JSFunction> function) {
+  Isolate* isolate = function->GetIsolate();
+  VMState<COMPILER> state(isolate);
+  PostponeInterruptsScope postpone(isolate);
+  Zone zone(isolate->allocator());
+  ParseInfo parse_info(&zone, function);
+  CompilationInfo info(&parse_info, function);
+
+  // Reset profiler ticks, function is no longer considered hot.
+  if (function->shared()->HasBytecodeArray()) {
+    function->shared()->set_profiler_ticks(0);
+  }
+
+  // Nothing left to do if the function already has baseline code.
+  if (function->shared()->code()->kind() == Code::FUNCTION) {
+    return Handle<Code>(function->shared()->code());
+  }
+
+  // We do not switch to baseline code when the debugger might have created a
+  // copy of the bytecode with break slots to be able to set break points.
+  if (function->shared()->HasDebugInfo()) {
+    return MaybeHandle<Code>();
+  }
+
+  // TODO(4280): For now we do not switch generators to baseline code because
+  // there might be suspended activations stored in generator objects on the
+  // heap. We could eventually go directly to TurboFan in this case.
+  if (function->shared()->is_generator()) {
+    return MaybeHandle<Code>();
+  }
+
+  // TODO(4280): For now we disable switching to baseline code in the presence
+  // of interpreter activations of the given function. The reasons are:
+  //  1) The debugger assumes each function is either full-code or bytecode.
+  //  2) The underlying bytecode is cleared below, breaking stack unwinding.
+  if (HasInterpreterActivations(isolate, function->shared())) {
+    if (FLAG_trace_opt) {
+      OFStream os(stdout);
+      os << "[unable to switch " << Brief(*function) << " due to activations]"
+         << std::endl;
+    }
+    return MaybeHandle<Code>();
+  }
+
+  if (FLAG_trace_opt) {
+    OFStream os(stdout);
+    os << "[switching method " << Brief(*function) << " to baseline code]"
+       << std::endl;
+  }
+
+  // Parse and update CompilationInfo with the results.
+  if (!Parser::ParseStatic(info.parse_info())) return MaybeHandle<Code>();
+  Handle<SharedFunctionInfo> shared = info.shared_info();
+  DCHECK_EQ(shared->language_mode(), info.literal()->language_mode());
+
+  // Compile baseline code using the full code generator.
+  if (!Compiler::Analyze(info.parse_info()) ||
+      !FullCodeGenerator::MakeCode(&info)) {
+    if (!isolate->has_pending_exception()) isolate->StackOverflow();
+    return MaybeHandle<Code>();
+  }
+
+  // TODO(4280): For now we play it safe and remove the bytecode array when we
+  // switch to baseline code. We might consider keeping around the bytecode so
+  // that it can be used as the "source of truth" eventually.
+  shared->ClearBytecodeArray();
+
+  // Update the shared function info with the scope info.
+  InstallSharedScopeInfo(&info, shared);
+
+  // Install compilation result on the shared function info
+  InstallSharedCompilationResult(&info, shared);
+
+  // Record the function compilation event.
+  RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, &info);
+
+  return info.code();
+}
+
 MaybeHandle<Code> GetLazyCode(Handle<JSFunction> function) {
   Isolate* isolate = function->GetIsolate();
   DCHECK(!isolate->has_pending_exception());
@@ -1129,35 +911,30 @@
   TimerEventScope<TimerEventCompileCode> compile_timer(isolate);
   TRACE_EVENT0("v8", "V8.CompileCode");
   AggregatedHistogramTimerScope timer(isolate->counters()->compile_lazy());
-  // If the debugger is active, do not compile with turbofan unless we can
-  // deopt from turbofan code.
-  if (FLAG_turbo_asm && function->shared()->asm_function() &&
-      (FLAG_turbo_asm_deoptimization || !isolate->debug()->is_active()) &&
-      !FLAG_turbo_osr) {
-    CompilationInfoWithZone info(function);
 
-    VMState<COMPILER> state(isolate);
-    PostponeInterruptsScope postpone(isolate);
-
-    info.SetOptimizing();
-
-    if (GetOptimizedCodeNow(&info)) {
+  if (FLAG_turbo_cache_shared_code) {
+    Handle<Code> cached_code;
+    if (GetCodeFromOptimizedCodeMap(function, BailoutId::None())
+            .ToHandle(&cached_code)) {
+      if (FLAG_trace_opt) {
+        PrintF("[found optimized code for ");
+        function->ShortPrint();
+        PrintF(" during unoptimized compile]\n");
+      }
       DCHECK(function->shared()->is_compiled());
-      return info.code();
+      return cached_code;
     }
-    // We have failed compilation. If there was an exception clear it so that
-    // we can compile unoptimized code.
-    if (isolate->has_pending_exception()) isolate->clear_pending_exception();
   }
 
   if (function->shared()->is_compiled()) {
     return Handle<Code>(function->shared()->code());
   }
 
-  CompilationInfoWithZone info(function);
+  Zone zone(isolate->allocator());
+  ParseInfo parse_info(&zone, function);
+  CompilationInfo info(&parse_info, function);
   Handle<Code> result;
-  ASSIGN_RETURN_ON_EXCEPTION(isolate, result, GetUnoptimizedCodeCommon(&info),
-                             Code);
+  ASSIGN_RETURN_ON_EXCEPTION(isolate, result, GetUnoptimizedCode(&info), Code);
 
   if (FLAG_always_opt) {
     Handle<Code> opt_code;
@@ -1171,59 +948,6 @@
 }
 
 
-bool CompileEvalForDebugging(Handle<JSFunction> function,
-                             Handle<SharedFunctionInfo> shared) {
-  Handle<Script> script(Script::cast(shared->script()));
-  Handle<Context> context(function->context());
-
-  Zone zone(function->GetIsolate()->allocator());
-  ParseInfo parse_info(&zone, script);
-  CompilationInfo info(&parse_info);
-  Isolate* isolate = info.isolate();
-
-  parse_info.set_eval();
-  parse_info.set_context(context);
-  if (context->IsNativeContext()) parse_info.set_global();
-  parse_info.set_toplevel();
-  parse_info.set_allow_lazy_parsing(false);
-  parse_info.set_language_mode(shared->language_mode());
-  parse_info.set_parse_restriction(NO_PARSE_RESTRICTION);
-  info.MarkAsDebug();
-
-  VMState<COMPILER> state(info.isolate());
-
-  if (!Parser::ParseStatic(&parse_info)) {
-    isolate->clear_pending_exception();
-    return false;
-  }
-
-  FunctionLiteral* lit = parse_info.literal();
-  LiveEditFunctionTracker live_edit_tracker(isolate, lit);
-
-  if (!CompileUnoptimizedCode(&info)) {
-    isolate->clear_pending_exception();
-    return false;
-  }
-  shared->ReplaceCode(*info.code());
-  return true;
-}
-
-
-bool CompileForDebugging(CompilationInfo* info) {
-  info->MarkAsDebug();
-  if (GetUnoptimizedCodeCommon(info).is_null()) {
-    info->isolate()->clear_pending_exception();
-    return false;
-  }
-  return true;
-}
-
-inline bool IsEvalToplevel(Handle<SharedFunctionInfo> shared) {
-  return shared->is_toplevel() && shared->script()->IsScript() &&
-         Script::cast(shared->script())->compilation_type() ==
-             Script::COMPILATION_TYPE_EVAL;
-}
-
 Handle<SharedFunctionInfo> NewSharedFunctionInfoForLiteral(
     Isolate* isolate, FunctionLiteral* literal, Handle<Script> script) {
   Handle<Code> code = isolate->builtins()->CompileLazy();
@@ -1294,61 +1018,55 @@
 
     DCHECK(!info->is_debug() || !parse_info->allow_lazy_parsing());
 
-    info->MarkAsFirstCompile();
-
     FunctionLiteral* lit = parse_info->literal();
-    LiveEditFunctionTracker live_edit_tracker(isolate, lit);
 
     // Measure how long it takes to do the compilation; only take the
     // rest of the function into account to avoid overlap with the
     // parsing statistics.
-    HistogramTimer* rate = info->is_eval()
-          ? info->isolate()->counters()->compile_eval()
-          : info->isolate()->counters()->compile();
+    RuntimeCallTimerScope runtimeTimer(
+        isolate, parse_info->is_eval() ? &RuntimeCallStats::CompileEval
+                                       : &RuntimeCallStats::Compile);
+    HistogramTimer* rate = parse_info->is_eval()
+                               ? info->isolate()->counters()->compile_eval()
+                               : info->isolate()->counters()->compile();
     HistogramTimerScope timer(rate);
-    TRACE_EVENT0("v8", info->is_eval() ? "V8.CompileEval" : "V8.Compile");
+    TRACE_EVENT0("v8", parse_info->is_eval() ? "V8.CompileEval" : "V8.Compile");
 
     // Allocate a shared function info object.
     DCHECK_EQ(RelocInfo::kNoPosition, lit->function_token_position());
     result = NewSharedFunctionInfoForLiteral(isolate, lit, script);
     result->set_is_toplevel(true);
-    if (info->is_eval()) {
+    if (parse_info->is_eval()) {
       // Eval scripts cannot be (re-)compiled without context.
       result->set_allows_lazy_compilation_without_context(false);
     }
     parse_info->set_shared_info(result);
 
     // Compile the code.
-    if (!CompileBaselineCode(info)) {
+    if (!CompileUnoptimizedCode(info)) {
       return Handle<SharedFunctionInfo>::null();
     }
 
+    // Update the shared function info with the scope info.
+    InstallSharedScopeInfo(info, result);
+
     // Install compilation result on the shared function info
-    Handle<ScopeInfo> scope_info =
-        ScopeInfo::Create(info->isolate(), info->zone(), info->scope());
-    InstallBaselineCompilationResult(info, result, scope_info);
+    InstallSharedCompilationResult(info, result);
 
     Handle<String> script_name =
         script->name()->IsString()
             ? Handle<String>(String::cast(script->name()))
             : isolate->factory()->empty_string();
-    Logger::LogEventsAndTags log_tag = info->is_eval()
-        ? Logger::EVAL_TAG
-        : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script);
+    Logger::LogEventsAndTags log_tag =
+        parse_info->is_eval()
+            ? Logger::EVAL_TAG
+            : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script);
 
-    PROFILE(isolate, CodeCreateEvent(log_tag, *info->abstract_code(), *result,
-                                     info, *script_name));
-
-    // Hint to the runtime system used when allocating space for initial
-    // property space by setting the expected number of properties for
-    // the instances of the function.
-    SetExpectedNofPropertiesFromEstimate(result,
-                                         lit->expected_property_count());
+    PROFILE(isolate, CodeCreateEvent(log_tag, result->abstract_code(), *result,
+                                     *script_name));
 
     if (!script.is_null())
       script->set_compilation_state(Script::COMPILATION_STATE_COMPILED);
-
-    live_edit_tracker.RecordFunctionInfo(result, lit, info->zone());
   }
 
   return result;
@@ -1370,90 +1088,205 @@
 
 bool Compiler::ParseAndAnalyze(ParseInfo* info) {
   if (!Parser::ParseStatic(info)) return false;
-  return Compiler::Analyze(info);
+  if (!Compiler::Analyze(info)) return false;
+  DCHECK_NOT_NULL(info->literal());
+  DCHECK_NOT_NULL(info->scope());
+  return true;
 }
 
 bool Compiler::Compile(Handle<JSFunction> function, ClearExceptionFlag flag) {
   if (function->is_compiled()) return true;
-  MaybeHandle<Code> maybe_code = GetLazyCode(function);
+  Isolate* isolate = function->GetIsolate();
+  DCHECK(AllowCompilation::IsAllowed(isolate));
+
+  // Start a compilation.
   Handle<Code> code;
-  if (!maybe_code.ToHandle(&code)) {
+  if (!GetLazyCode(function).ToHandle(&code)) {
     if (flag == CLEAR_EXCEPTION) {
-      function->GetIsolate()->clear_pending_exception();
+      isolate->clear_pending_exception();
     }
     return false;
   }
-  DCHECK(code->IsJavaScriptCode());
+
+  // Install code on closure.
   function->ReplaceCode(*code);
+
+  // Check postconditions on success.
+  DCHECK(!isolate->has_pending_exception());
+  DCHECK(function->shared()->is_compiled());
+  DCHECK(function->is_compiled());
+  return true;
+}
+
+bool Compiler::CompileBaseline(Handle<JSFunction> function) {
+  Isolate* isolate = function->GetIsolate();
+  DCHECK(AllowCompilation::IsAllowed(isolate));
+
+  // Start a compilation.
+  Handle<Code> code;
+  if (!GetBaselineCode(function).ToHandle(&code)) {
+    // Baseline generation failed, get unoptimized code.
+    DCHECK(function->shared()->is_compiled());
+    code = handle(function->shared()->code());
+    isolate->clear_pending_exception();
+  }
+
+  // Install code on closure.
+  function->ReplaceCode(*code);
+
+  // Check postconditions on success.
+  DCHECK(!isolate->has_pending_exception());
+  DCHECK(function->shared()->is_compiled());
   DCHECK(function->is_compiled());
   return true;
 }
 
 bool Compiler::CompileOptimized(Handle<JSFunction> function,
                                 ConcurrencyMode mode) {
+  if (function->IsOptimized()) return true;
+  Isolate* isolate = function->GetIsolate();
+  DCHECK(AllowCompilation::IsAllowed(isolate));
+
+  // Start a compilation.
   Handle<Code> code;
-  if (GetOptimizedCode(function, mode).ToHandle(&code)) {
-    // Optimization succeeded, return optimized code.
-    function->ReplaceCode(*code);
-  } else {
+  if (!GetOptimizedCode(function, mode).ToHandle(&code)) {
     // Optimization failed, get unoptimized code.
-    Isolate* isolate = function->GetIsolate();
-    if (isolate->has_pending_exception()) {  // Possible stack overflow.
-      return false;
-    }
-    code = Handle<Code>(function->shared()->code(), isolate);
-    if (code->kind() != Code::FUNCTION &&
-        code->kind() != Code::OPTIMIZED_FUNCTION) {
-      if (!GetUnoptimizedCode(function).ToHandle(&code)) {
+    DCHECK(!isolate->has_pending_exception());
+    if (function->shared()->is_compiled()) {
+      code = handle(function->shared()->code(), isolate);
+    } else {
+      Zone zone(isolate->allocator());
+      ParseInfo parse_info(&zone, function);
+      CompilationInfo info(&parse_info, function);
+      if (!GetUnoptimizedCode(&info).ToHandle(&code)) {
         return false;
       }
     }
-    function->ReplaceCode(*code);
   }
 
-  DCHECK(function->code()->kind() == Code::FUNCTION ||
-         function->code()->kind() == Code::OPTIMIZED_FUNCTION ||
-         (function->code()->is_interpreter_entry_trampoline() &&
-          function->shared()->HasBytecodeArray()) ||
-         function->IsInOptimizationQueue());
+  // Install code on closure.
+  function->ReplaceCode(*code);
+
+  // Check postconditions on success.
+  DCHECK(!isolate->has_pending_exception());
+  DCHECK(function->shared()->is_compiled());
+  DCHECK(function->is_compiled());
   return true;
 }
 
 bool Compiler::CompileDebugCode(Handle<JSFunction> function) {
-  Handle<SharedFunctionInfo> shared(function->shared());
-  if (IsEvalToplevel(shared)) {
-    return CompileEvalForDebugging(function, shared);
-  } else {
-    CompilationInfoWithZone info(function);
-    return CompileForDebugging(&info);
+  Isolate* isolate = function->GetIsolate();
+  DCHECK(AllowCompilation::IsAllowed(isolate));
+
+  // Start a compilation.
+  Zone zone(isolate->allocator());
+  ParseInfo parse_info(&zone, function);
+  CompilationInfo info(&parse_info, Handle<JSFunction>::null());
+  if (IsEvalToplevel(handle(function->shared()))) {
+    parse_info.set_eval();
+    if (function->context()->IsNativeContext()) parse_info.set_global();
+    parse_info.set_toplevel();
+    parse_info.set_allow_lazy_parsing(false);
+    parse_info.set_lazy(false);
   }
+  info.MarkAsDebug();
+  if (GetUnoptimizedCode(&info).is_null()) {
+    isolate->clear_pending_exception();
+    return false;
+  }
+
+  // Check postconditions on success.
+  DCHECK(!isolate->has_pending_exception());
+  DCHECK(function->shared()->is_compiled());
+  DCHECK(function->shared()->HasDebugCode());
+  return true;
 }
 
 bool Compiler::CompileDebugCode(Handle<SharedFunctionInfo> shared) {
+  Isolate* isolate = shared->GetIsolate();
+  DCHECK(AllowCompilation::IsAllowed(isolate));
+
+  // Start a compilation.
+  Zone zone(isolate->allocator());
+  ParseInfo parse_info(&zone, shared);
+  CompilationInfo info(&parse_info, Handle<JSFunction>::null());
   DCHECK(shared->allows_lazy_compilation_without_context());
   DCHECK(!IsEvalToplevel(shared));
-  Zone zone(shared->GetIsolate()->allocator());
-  ParseInfo parse_info(&zone, shared);
-  CompilationInfo info(&parse_info);
-  return CompileForDebugging(&info);
+  info.MarkAsDebug();
+  if (GetUnoptimizedCode(&info).is_null()) {
+    isolate->clear_pending_exception();
+    return false;
+  }
+
+  // Check postconditions on success.
+  DCHECK(!isolate->has_pending_exception());
+  DCHECK(shared->is_compiled());
+  DCHECK(shared->HasDebugCode());
+  return true;
+}
+
+MaybeHandle<JSArray> Compiler::CompileForLiveEdit(Handle<Script> script) {
+  Isolate* isolate = script->GetIsolate();
+  DCHECK(AllowCompilation::IsAllowed(isolate));
+
+  // In order to ensure that live edit function info collection finds the newly
+  // generated shared function infos, clear the script's list temporarily
+  // and restore it at the end of this method.
+  Handle<Object> old_function_infos(script->shared_function_infos(), isolate);
+  script->set_shared_function_infos(Smi::FromInt(0));
+
+  // Start a compilation.
+  Zone zone(isolate->allocator());
+  ParseInfo parse_info(&zone, script);
+  CompilationInfo info(&parse_info, Handle<JSFunction>::null());
+  parse_info.set_global();
+  info.MarkAsDebug();
+
+  // TODO(635): support extensions.
+  const bool compilation_succeeded = !CompileToplevel(&info).is_null();
+  Handle<JSArray> infos;
+  if (compilation_succeeded) {
+    // Check postconditions on success.
+    DCHECK(!isolate->has_pending_exception());
+    infos = LiveEditFunctionTracker::Collect(parse_info.literal(), script,
+                                             &zone, isolate);
+  }
+
+  // Restore the original function info list in order to remain side-effect
+  // free as much as possible, since some code expects the old shared function
+  // infos to stick around.
+  script->set_shared_function_infos(*old_function_infos);
+
+  return infos;
 }
 
 // TODO(turbofan): In the future, unoptimized code with deopt support could
 // be generated lazily once deopt is triggered.
 bool Compiler::EnsureDeoptimizationSupport(CompilationInfo* info) {
   DCHECK_NOT_NULL(info->literal());
-  DCHECK(info->has_scope());
+  DCHECK_NOT_NULL(info->scope());
   Handle<SharedFunctionInfo> shared = info->shared_info();
   if (!shared->has_deoptimization_support()) {
-    // TODO(titzer): just reuse the ParseInfo for the unoptimized compile.
-    CompilationInfoWithZone unoptimized(info->closure());
-    // Note that we use the same AST that we will use for generating the
-    // optimized code.
-    ParseInfo* parse_info = unoptimized.parse_info();
-    parse_info->set_literal(info->literal());
-    parse_info->set_scope(info->scope());
-    parse_info->set_context(info->context());
+    Zone zone(info->isolate()->allocator());
+    CompilationInfo unoptimized(info->parse_info(), info->closure());
     unoptimized.EnableDeoptimizationSupport();
+
+    // TODO(4280): For now we do not switch generators to baseline code because
+    // there might be suspended activations stored in generator objects on the
+    // heap. We could eventually go directly to TurboFan in this case.
+    if (shared->is_generator()) return false;
+
+    // TODO(4280): For now we disable switching to baseline code in the presence
+    // of interpreter activations of the given function. The reasons are:
+    //  1) The debugger assumes each function is either full-code or bytecode.
+    //  2) The underlying bytecode is cleared below, breaking stack unwinding.
+    // The expensive check for activations only needs to be done when the given
+    // function has bytecode, otherwise we can be sure there are no activations.
+    if (shared->HasBytecodeArray() &&
+        HasInterpreterActivations(info->isolate(), *shared)) {
+      return false;
+    }
+
     // If the current code has reloc info for serialization, also include
     // reloc info for serialization for the new code, so that deopt support
     // can be added without losing IC state.
@@ -1464,48 +1297,32 @@
     EnsureFeedbackVector(&unoptimized);
     if (!FullCodeGenerator::MakeCode(&unoptimized)) return false;
 
-    shared->EnableDeoptimizationSupport(*unoptimized.code());
-
-    info->MarkAsCompiled();
+    // TODO(4280): For now we play it safe and remove the bytecode array when we
+    // switch to baseline code. We might consider keeping around the bytecode so
+    // that it can be used as the "source of truth" eventually.
+    shared->ClearBytecodeArray();
 
     // The scope info might not have been set if a lazily compiled
     // function is inlined before being called for the first time.
     if (shared->scope_info() == ScopeInfo::Empty(info->isolate())) {
-      Handle<ScopeInfo> target_scope_info =
-          ScopeInfo::Create(info->isolate(), info->zone(), info->scope());
-      shared->set_scope_info(*target_scope_info);
+      InstallSharedScopeInfo(info, shared);
     }
 
+    // Install compilation result on the shared function info
+    shared->EnableDeoptimizationSupport(*unoptimized.code());
+
     // The existing unoptimized code was replaced with the new one.
-    RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, &unoptimized, shared);
+    RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, &unoptimized);
   }
   return true;
 }
 
-void Compiler::CompileForLiveEdit(Handle<Script> script) {
-  // TODO(635): support extensions.
-  Zone zone(script->GetIsolate()->allocator());
-  ParseInfo parse_info(&zone, script);
-  CompilationInfo info(&parse_info);
-  PostponeInterruptsScope postpone(info.isolate());
-  VMState<COMPILER> state(info.isolate());
-
-  // Get rid of old list of shared function infos.
-  info.MarkAsFirstCompile();
-  info.MarkAsDebug();
-  info.parse_info()->set_global();
-  if (!Parser::ParseStatic(info.parse_info())) return;
-
-  LiveEditFunctionTracker tracker(info.isolate(), parse_info.literal());
-  if (!CompileUnoptimizedCode(&info)) return;
-  tracker.RecordRootFunctionInfo(info.code());
-}
-
 MaybeHandle<JSFunction> Compiler::GetFunctionFromEval(
     Handle<String> source, Handle<SharedFunctionInfo> outer_info,
     Handle<Context> context, LanguageMode language_mode,
-    ParseRestriction restriction, int line_offset, int column_offset,
-    Handle<Object> script_name, ScriptOriginOptions options) {
+    ParseRestriction restriction, int eval_scope_position, int eval_position,
+    int line_offset, int column_offset, Handle<Object> script_name,
+    ScriptOriginOptions options) {
   Isolate* isolate = source->GetIsolate();
   int source_length = source->length();
   isolate->counters()->total_eval_size()->Increment(source_length);
@@ -1514,7 +1331,7 @@
   CompilationCache* compilation_cache = isolate->compilation_cache();
   MaybeHandle<SharedFunctionInfo> maybe_shared_info =
       compilation_cache->LookupEval(source, outer_info, context, language_mode,
-                                    line_offset);
+                                    eval_scope_position);
   Handle<SharedFunctionInfo> shared_info;
 
   Handle<Script> script;
@@ -1526,33 +1343,28 @@
       script->set_column_offset(column_offset);
     }
     script->set_origin_options(options);
+    script->set_compilation_type(Script::COMPILATION_TYPE_EVAL);
+    Script::SetEvalOrigin(script, outer_info, eval_position);
+
     Zone zone(isolate->allocator());
     ParseInfo parse_info(&zone, script);
-    CompilationInfo info(&parse_info);
+    CompilationInfo info(&parse_info, Handle<JSFunction>::null());
     parse_info.set_eval();
     if (context->IsNativeContext()) parse_info.set_global();
     parse_info.set_language_mode(language_mode);
     parse_info.set_parse_restriction(restriction);
     parse_info.set_context(context);
 
-    Debug::RecordEvalCaller(script);
-
     shared_info = CompileToplevel(&info);
 
     if (shared_info.is_null()) {
       return MaybeHandle<JSFunction>();
     } else {
-      // Explicitly disable optimization for eval code. We're not yet prepared
-      // to handle eval-code in the optimizing compiler.
-      if (restriction != ONLY_SINGLE_FUNCTION_LITERAL) {
-        shared_info->DisableOptimization(kEval);
-      }
-
       // If caller is strict mode, the result must be in strict mode as well.
       DCHECK(is_sloppy(language_mode) ||
              is_strict(shared_info->language_mode()));
       compilation_cache->PutEval(source, outer_info, context, shared_info,
-                                 line_offset);
+                                 eval_scope_position);
     }
   }
 
@@ -1627,8 +1439,10 @@
     timer.Start();
   }
 
-  if (!maybe_result.ToHandle(&result)) {
-    // No cache entry found. Compile the script.
+  if (!maybe_result.ToHandle(&result) ||
+      (FLAG_serialize_toplevel &&
+       compile_options == ScriptCompiler::kProduceCodeCache)) {
+    // No cache entry found, or embedder wants a code cache. Compile the script.
 
     // Create a script object describing the script to be compiled.
     Handle<Script> script = isolate->factory()->NewScript(source);
@@ -1652,7 +1466,7 @@
     // Compile the function and add it to the cache.
     Zone zone(isolate->allocator());
     ParseInfo parse_info(&zone, script);
-    CompilationInfo info(&parse_info);
+    CompilationInfo info(&parse_info, Handle<JSFunction>::null());
     if (is_module) {
       parse_info.set_module();
     } else {
@@ -1670,7 +1484,7 @@
     }
 
     parse_info.set_language_mode(
-        static_cast<LanguageMode>(info.language_mode() | language_mode));
+        static_cast<LanguageMode>(parse_info.language_mode() | language_mode));
     result = CompileToplevel(&info);
     if (extension == NULL && !result.is_null()) {
       compilation_cache->PutScript(source, context, language_mode, result);
@@ -1709,7 +1523,7 @@
   parse_info->set_language_mode(
       static_cast<LanguageMode>(parse_info->language_mode() | language_mode));
 
-  CompilationInfo compile_info(parse_info);
+  CompilationInfo compile_info(parse_info, Handle<JSFunction>::null());
 
   // The source was parsed lazily, so compiling for debugging is not possible.
   DCHECK(!compile_info.is_debug());
@@ -1726,7 +1540,9 @@
   // Precondition: code has been parsed and scopes have been analyzed.
   Isolate* isolate = outer_info->isolate();
   MaybeHandle<SharedFunctionInfo> maybe_existing;
-  if (outer_info->is_first_compile()) {
+
+  // Find any previously allocated shared function info for the given literal.
+  if (outer_info->shared_info()->never_compiled()) {
     // On the first compile, there are no existing shared function info for
     // inner functions yet, so do not try to find them. All bets are off for
     // live edit though.
@@ -1735,6 +1551,7 @@
   } else {
     maybe_existing = script->FindSharedFunctionInfo(literal);
   }
+
   // We found an existing shared function info. If it's already compiled,
   // don't worry about compiling it, and simply return it. If it's not yet
   // compiled, continue to decide whether to eagerly compile.
@@ -1742,6 +1559,7 @@
   // unless we already have code with debut break slots.
   Handle<SharedFunctionInfo> existing;
   if (maybe_existing.ToHandle(&existing) && existing->is_compiled()) {
+    DCHECK(!existing->is_toplevel());
     if (!outer_info->is_debug() || existing->HasDebugCode()) {
       return existing;
     }
@@ -1752,20 +1570,23 @@
   if (!maybe_existing.ToHandle(&result)) {
     result = NewSharedFunctionInfoForLiteral(isolate, literal, script);
     result->set_is_toplevel(false);
+
+    // If the outer function has been compiled before, we cannot be sure that
+    // shared function info for this function literal has been created for the
+    // first time. It may have already been compiled previously.
+    result->set_never_compiled(outer_info->shared_info()->never_compiled());
   }
 
   Zone zone(isolate->allocator());
   ParseInfo parse_info(&zone, script);
-  CompilationInfo info(&parse_info);
+  CompilationInfo info(&parse_info, Handle<JSFunction>::null());
   parse_info.set_literal(literal);
   parse_info.set_shared_info(result);
   parse_info.set_scope(literal->scope());
   parse_info.set_language_mode(literal->scope()->language_mode());
   if (outer_info->will_serialize()) info.PrepareForSerializing();
-  if (outer_info->is_first_compile()) info.MarkAsFirstCompile();
   if (outer_info->is_debug()) info.MarkAsDebug();
 
-  LiveEditFunctionTracker live_edit_tracker(isolate, literal);
   // Determine if the function can be lazily compiled. This is necessary to
   // allow some of our builtin JS files to be lazily compiled. These
   // builtins cannot be handled lazily by the parser, since we have to know
@@ -1775,13 +1596,7 @@
   // aggressive about lazy compilation, because it might trigger compilation
   // of functions without an outer context when setting a breakpoint through
   // Debug::FindSharedFunctionInfoInScript.
-  bool allow_lazy_without_ctx = literal->AllowsLazyCompilationWithoutContext();
-  // Compile eagerly for live edit. When compiling debug code, eagerly compile
-  // unless we can lazily compile without the context.
-  bool allow_lazy = literal->AllowsLazyCompilation() &&
-                    !LiveEditFunctionTracker::IsActive(isolate) &&
-                    (!info.is_debug() || allow_lazy_without_ctx);
-
+  bool allow_lazy = literal->AllowsLazyCompilation() && !info.is_debug();
   bool lazy = FLAG_lazy && allow_lazy && !literal->should_eager_compile();
 
   // Consider compiling eagerly when targeting the code cache.
@@ -1796,37 +1611,24 @@
   TRACE_EVENT0("v8", "V8.CompileCode");
   if (lazy) {
     info.SetCode(isolate->builtins()->CompileLazy());
-  } else if (Renumber(info.parse_info()) && GenerateBaselineCode(&info)) {
+  } else if (Renumber(info.parse_info()) && GenerateUnoptimizedCode(&info)) {
     // Code generation will ensure that the feedback vector is present and
     // appropriately sized.
     DCHECK(!info.code().is_null());
-    Handle<ScopeInfo> scope_info =
-        ScopeInfo::Create(info.isolate(), info.zone(), info.scope());
     if (literal->should_eager_compile() &&
         literal->should_be_used_once_hint()) {
       info.code()->MarkToBeExecutedOnce(isolate);
     }
+    // Update the shared function info with the scope info.
+    InstallSharedScopeInfo(&info, result);
     // Install compilation result on the shared function info.
-    InstallBaselineCompilationResult(&info, result, scope_info);
+    InstallSharedCompilationResult(&info, result);
   } else {
     return Handle<SharedFunctionInfo>::null();
   }
 
   if (maybe_existing.is_null()) {
-    // If the outer function has been compiled before, we cannot be sure that
-    // shared function info for this function literal has been created for the
-    // first time. It may have already been compiled previously.
-    result->set_never_compiled(outer_info->is_first_compile() && lazy);
-
-    RecordFunctionCompilation(Logger::FUNCTION_TAG, &info, result);
-    result->set_allows_lazy_compilation(literal->AllowsLazyCompilation());
-    result->set_allows_lazy_compilation_without_context(allow_lazy_without_ctx);
-
-    // Set the expected number of properties for instances and return
-    // the resulting function.
-    SetExpectedNofPropertiesFromEstimate(result,
-                                         literal->expected_property_count());
-    live_edit_tracker.RecordFunctionInfo(result, literal, info.zone());
+    RecordFunctionCompilation(Logger::FUNCTION_TAG, &info);
   }
 
   return result;
@@ -1872,10 +1674,10 @@
   return GetOptimizedCode(function, NOT_CONCURRENT, osr_ast_id, osr_frame);
 }
 
-void Compiler::FinalizeOptimizedCompileJob(OptimizedCompileJob* job) {
-  // Take ownership of compilation info.  Deleting compilation info
-  // also tears down the zone and the recompile job.
-  base::SmartPointer<CompilationInfo> info(job->info());
+void Compiler::FinalizeCompilationJob(CompilationJob* raw_job) {
+  // Take ownership of compilation job.  Deleting job also tears down the zone.
+  base::SmartPointer<CompilationJob> job(raw_job);
+  CompilationInfo* info = job->info();
   Isolate* isolate = info->isolate();
 
   VMState<COMPILER> state(isolate);
@@ -1892,16 +1694,17 @@
   //    Except when OSR already disabled optimization for some reason.
   // 3) The code may have already been invalidated due to dependency change.
   // 4) Code generation may have failed.
-  if (job->last_status() == OptimizedCompileJob::SUCCEEDED) {
+  if (job->last_status() == CompilationJob::SUCCEEDED) {
     if (shared->optimization_disabled()) {
       job->RetryOptimization(kOptimizationDisabled);
     } else if (info->dependencies()->HasAborted()) {
       job->RetryOptimization(kBailedOutDueToDependencyChange);
-    } else if (job->GenerateCode() == OptimizedCompileJob::SUCCEEDED) {
-      RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info.get(), shared);
+    } else if (job->GenerateCode() == CompilationJob::SUCCEEDED) {
+      job->RecordOptimizationStats();
+      RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info);
       if (shared->SearchOptimizedCodeMap(info->context()->native_context(),
                                          info->osr_ast_id()).code == nullptr) {
-        InsertCodeIntoOptimizedCodeMap(info.get());
+        InsertCodeIntoOptimizedCodeMap(info);
       }
       if (FLAG_trace_opt) {
         PrintF("[completed optimizing ");
@@ -1913,7 +1716,7 @@
     }
   }
 
-  DCHECK(job->last_status() != OptimizedCompileJob::SUCCEEDED);
+  DCHECK(job->last_status() != CompilationJob::SUCCEEDED);
   if (FLAG_trace_opt) {
     PrintF("[aborted optimizing ");
     info->closure()->ShortPrint();
diff --git a/src/compiler.h b/src/compiler.h
index fa04399..64bc88d 100644
--- a/src/compiler.h
+++ b/src/compiler.h
@@ -17,8 +17,8 @@
 
 // Forward declarations.
 class CompilationInfo;
+class CompilationJob;
 class JavaScriptFrame;
-class OptimizedCompileJob;
 class ParseInfo;
 class ScriptData;
 
@@ -44,13 +44,14 @@
   // given function holds (except for live-edit, which compiles the world).
 
   static bool Compile(Handle<JSFunction> function, ClearExceptionFlag flag);
+  static bool CompileBaseline(Handle<JSFunction> function);
   static bool CompileOptimized(Handle<JSFunction> function, ConcurrencyMode);
   static bool CompileDebugCode(Handle<JSFunction> function);
   static bool CompileDebugCode(Handle<SharedFunctionInfo> shared);
-  static void CompileForLiveEdit(Handle<Script> script);
+  static MaybeHandle<JSArray> CompileForLiveEdit(Handle<Script> script);
 
-  // Generate and install code from previously queued optimization job.
-  static void FinalizeOptimizedCompileJob(OptimizedCompileJob* job);
+  // Generate and install code from previously queued compilation job.
+  static void FinalizeCompilationJob(CompilationJob* job);
 
   // Give the compiler a chance to perform low-latency initialization tasks of
   // the given {function} on its instantiation. Note that only the runtime will
@@ -77,7 +78,8 @@
   MUST_USE_RESULT static MaybeHandle<JSFunction> GetFunctionFromEval(
       Handle<String> source, Handle<SharedFunctionInfo> outer_info,
       Handle<Context> context, LanguageMode language_mode,
-      ParseRestriction restriction, int line_offset, int column_offset = 0,
+      ParseRestriction restriction, int eval_scope_position, int eval_position,
+      int line_offset = 0, int column_offset = 0,
       Handle<Object> script_name = Handle<Object>(),
       ScriptOriginOptions options = ScriptOriginOptions());
 
@@ -118,26 +120,10 @@
       JavaScriptFrame* osr_frame);
 };
 
-struct InlinedFunctionInfo {
-  InlinedFunctionInfo(int parent_id, SourcePosition inline_position,
-                      int script_id, int start_position)
-      : parent_id(parent_id),
-        inline_position(inline_position),
-        script_id(script_id),
-        start_position(start_position) {}
-  int parent_id;
-  SourcePosition inline_position;
-  int script_id;
-  int start_position;
-  std::vector<size_t> deopt_pc_offsets;
-
-  static const int kNoParentId = -1;
-};
-
 
 // CompilationInfo encapsulates some information known at compile time.  It
 // is constructed based on the resources available at compile-time.
-class CompilationInfo {
+class CompilationInfo final {
  public:
   // Various configuration flags for a compilation, as well as some properties
   // of the compiled code produced by a compilation.
@@ -154,19 +140,18 @@
     kFrameSpecializing = 1 << 9,
     kNativeContextSpecializing = 1 << 10,
     kInliningEnabled = 1 << 11,
-    kTypingEnabled = 1 << 12,
-    kDisableFutureOptimization = 1 << 13,
-    kSplittingEnabled = 1 << 14,
-    kDeoptimizationEnabled = 1 << 16,
-    kSourcePositionsEnabled = 1 << 17,
-    kFirstCompile = 1 << 18,
-    kBailoutOnUninitialized = 1 << 19,
+    kDisableFutureOptimization = 1 << 12,
+    kSplittingEnabled = 1 << 13,
+    kDeoptimizationEnabled = 1 << 14,
+    kSourcePositionsEnabled = 1 << 15,
+    kBailoutOnUninitialized = 1 << 16,
+    kOptimizeFromBytecode = 1 << 17,
   };
 
-  explicit CompilationInfo(ParseInfo* parse_info);
-  CompilationInfo(const char* debug_name, Isolate* isolate, Zone* zone,
+  CompilationInfo(ParseInfo* parse_info, Handle<JSFunction> closure);
+  CompilationInfo(Vector<const char> debug_name, Isolate* isolate, Zone* zone,
                   Code::Flags code_flags = Code::ComputeFlags(Code::STUB));
-  virtual ~CompilationInfo();
+  ~CompilationInfo();
 
   ParseInfo* parse_info() const { return parse_info_; }
 
@@ -174,19 +159,11 @@
   // TODO(titzer): inline and delete accessors of ParseInfo
   // -----------------------------------------------------------
   Handle<Script> script() const;
-  bool is_eval() const;
-  bool is_native() const;
-  bool is_module() const;
-  LanguageMode language_mode() const;
-  Handle<JSFunction> closure() const;
   FunctionLiteral* literal() const;
   Scope* scope() const;
   Handle<Context> context() const;
   Handle<SharedFunctionInfo> shared_info() const;
   bool has_shared_info() const;
-  bool has_context() const;
-  bool has_literal() const;
-  bool has_scope() const;
   // -----------------------------------------------------------
 
   Isolate* isolate() const {
@@ -194,14 +171,14 @@
   }
   Zone* zone() { return zone_; }
   bool is_osr() const { return !osr_ast_id_.IsNone(); }
+  Handle<JSFunction> closure() const { return closure_; }
   Handle<Code> code() const { return code_; }
   Code::Flags code_flags() const { return code_flags_; }
   BailoutId osr_ast_id() const { return osr_ast_id_; }
-  int opt_count() const { return opt_count_; }
+  JavaScriptFrame* osr_frame() const { return osr_frame_; }
   int num_parameters() const;
   int num_parameters_including_this() const;
   bool is_this_defined() const;
-  int num_heap_slots() const;
 
   void set_parameter_count(int parameter_count) {
     DCHECK(IsStub());
@@ -211,11 +188,6 @@
   bool has_bytecode_array() const { return !bytecode_array_.is_null(); }
   Handle<BytecodeArray> bytecode_array() const { return bytecode_array_; }
 
-  Handle<AbstractCode> abstract_code() const {
-    return has_bytecode_array() ? Handle<AbstractCode>::cast(bytecode_array())
-                                : Handle<AbstractCode>::cast(code());
-  }
-
   bool is_tracking_positions() const { return track_positions_; }
 
   bool is_calling() const {
@@ -294,26 +266,22 @@
 
   bool is_inlining_enabled() const { return GetFlag(kInliningEnabled); }
 
-  void MarkAsTypingEnabled() { SetFlag(kTypingEnabled); }
-
-  bool is_typing_enabled() const { return GetFlag(kTypingEnabled); }
-
   void MarkAsSplittingEnabled() { SetFlag(kSplittingEnabled); }
 
   bool is_splitting_enabled() const { return GetFlag(kSplittingEnabled); }
 
-  void MarkAsFirstCompile() { SetFlag(kFirstCompile); }
-
-  void MarkAsCompiled() { SetFlag(kFirstCompile, false); }
-
-  bool is_first_compile() const { return GetFlag(kFirstCompile); }
-
   void MarkAsBailoutOnUninitialized() { SetFlag(kBailoutOnUninitialized); }
 
   bool is_bailout_on_uninitialized() const {
     return GetFlag(kBailoutOnUninitialized);
   }
 
+  void MarkAsOptimizeFromBytecode() { SetFlag(kOptimizeFromBytecode); }
+
+  bool is_optimizing_from_bytecode() const {
+    return GetFlag(kOptimizeFromBytecode);
+  }
+
   bool GeneratePreagedPrologue() const {
     // Generate a pre-aged prologue if we are optimizing for size, which
     // will make code flushing more aggressive. Only apply to Code::FUNCTION,
@@ -357,9 +325,10 @@
     code_flags_ =
         Code::KindField::update(code_flags_, Code::OPTIMIZED_FUNCTION);
   }
-  void SetOptimizingForOsr(BailoutId osr_ast_id) {
+  void SetOptimizingForOsr(BailoutId osr_ast_id, JavaScriptFrame* osr_frame) {
     SetOptimizing();
     osr_ast_id_ = osr_ast_id;
+    osr_frame_ = osr_frame;
   }
 
   // Deoptimization support.
@@ -383,7 +352,7 @@
   }
 
   void ReopenHandlesInNewHandleScope() {
-    // Empty for now but will be needed once fields move from ParseInfo.
+    closure_ = Handle<JSFunction>(*closure_);
   }
 
   void AbortOptimization(BailoutReason reason) {
@@ -410,23 +379,8 @@
     prologue_offset_ = prologue_offset;
   }
 
-  int start_position_for(uint32_t inlining_id) {
-    return inlined_function_infos_.at(inlining_id).start_position;
-  }
-  const std::vector<InlinedFunctionInfo>& inlined_function_infos() {
-    return inlined_function_infos_;
-  }
-
-  void LogDeoptCallPosition(int pc_offset, int inlining_id);
-  int TraceInlinedFunction(Handle<SharedFunctionInfo> shared,
-                           SourcePosition position, int pareint_id);
-
   CompilationDependencies* dependencies() { return &dependencies_; }
 
-  bool HasSameOsrEntry(Handle<JSFunction> function, BailoutId osr_ast_id) {
-    return osr_ast_id_ == osr_ast_id && function.is_identical_to(closure());
-  }
-
   int optimization_id() const { return optimization_id_; }
 
   int osr_expr_stack_height() { return osr_expr_stack_height_; }
@@ -434,8 +388,6 @@
     DCHECK(height >= 0);
     osr_expr_stack_height_ = height;
   }
-  JavaScriptFrame* osr_frame() const { return osr_frame_; }
-  void set_osr_frame(JavaScriptFrame* osr_frame) { osr_frame_ = osr_frame; }
 
 #if DEBUG
   void PrintAstForTesting();
@@ -474,6 +426,8 @@
 
   StackFrame::Type GetOutputStackFrameType() const;
 
+  int GetDeclareGlobalsFlags() const;
+
  protected:
   ParseInfo* parse_info_;
 
@@ -505,7 +459,7 @@
     STUB
   };
 
-  CompilationInfo(ParseInfo* parse_info, const char* debug_name,
+  CompilationInfo(ParseInfo* parse_info, Vector<const char> debug_name,
                   Code::Flags code_flags, Mode mode, Isolate* isolate,
                   Zone* zone);
 
@@ -527,6 +481,8 @@
 
   Code::Flags code_flags_;
 
+  Handle<JSFunction> closure_;
+
   // The compiled code.
   Handle<Code> code_;
 
@@ -552,15 +508,10 @@
 
   int prologue_offset_;
 
-  std::vector<InlinedFunctionInfo> inlined_function_infos_;
   bool track_positions_;
 
   InlinedFunctionList inlined_functions_;
 
-  // A copy of shared_info()->opt_count() to avoid handle deref
-  // during graph optimization.
-  int opt_count_;
-
   // Number of parameters used for compilation of stubs that require arguments.
   int parameter_count_;
 
@@ -571,29 +522,30 @@
   // The current OSR frame for specialization or {nullptr}.
   JavaScriptFrame* osr_frame_ = nullptr;
 
-  const char* debug_name_;
+  Vector<const char> debug_name_;
 
   DISALLOW_COPY_AND_ASSIGN(CompilationInfo);
 };
 
-
-class HGraph;
-class LChunk;
-
-// A helper class that calls the three compilation phases in
-// Crankshaft and keeps track of its state.  The three phases
-// CreateGraph, OptimizeGraph and GenerateAndInstallCode can either
-// fail, bail-out to the full code generator or succeed.  Apart from
-// their return value, the status of the phase last run can be checked
-// using last_status().
-class OptimizedCompileJob: public ZoneObject {
+// A base class for compilation jobs intended to run concurrent to the main
+// thread. The job is split into three phases which are called in sequence on
+// different threads and with different limitations:
+//  1) CreateGraph:   Runs on main thread. No major limitations.
+//  2) OptimizeGraph: Runs concurrently. No heap allocation or handle derefs.
+//  3) GenerateCode:  Runs on main thread. No dependency changes.
+//
+// Each of the three phases can either fail or succeed. Apart from their return
+// value, the status of the phase last run can be checked using {last_status()}
+// as well. When failing we distinguish between the following levels:
+//  a) AbortOptimization: Persistent failure, disable future optimization.
+//  b) RetryOptimzation: Transient failure, try again next time.
+class CompilationJob {
  public:
-  explicit OptimizedCompileJob(CompilationInfo* info)
-      : info_(info), graph_(NULL), chunk_(NULL), last_status_(FAILED) {}
+  explicit CompilationJob(CompilationInfo* info, const char* compiler_name)
+      : info_(info), compiler_name_(compiler_name), last_status_(SUCCEEDED) {}
+  virtual ~CompilationJob() {}
 
-  enum Status {
-    FAILED, BAILED_OUT, SUCCEEDED
-  };
+  enum Status { FAILED, SUCCEEDED };
 
   MUST_USE_RESULT Status CreateGraph();
   MUST_USE_RESULT Status OptimizeGraph();
@@ -605,44 +557,36 @@
 
   Status RetryOptimization(BailoutReason reason) {
     info_->RetryOptimization(reason);
-    return SetLastStatus(BAILED_OUT);
+    return SetLastStatus(FAILED);
   }
 
   Status AbortOptimization(BailoutReason reason) {
     info_->AbortOptimization(reason);
-    return SetLastStatus(BAILED_OUT);
+    return SetLastStatus(FAILED);
   }
 
+  void RecordOptimizationStats();
+
+ protected:
+  void RegisterWeakObjectsInOptimizedCode(Handle<Code> code);
+
+  // Overridden by the actual implementation.
+  virtual Status CreateGraphImpl() = 0;
+  virtual Status OptimizeGraphImpl() = 0;
+  virtual Status GenerateCodeImpl() = 0;
+
  private:
   CompilationInfo* info_;
-  HGraph* graph_;
-  LChunk* chunk_;
   base::TimeDelta time_taken_to_create_graph_;
   base::TimeDelta time_taken_to_optimize_;
   base::TimeDelta time_taken_to_codegen_;
+  const char* compiler_name_;
   Status last_status_;
 
   MUST_USE_RESULT Status SetLastStatus(Status status) {
     last_status_ = status;
     return last_status_;
   }
-  void RecordOptimizationStats();
-
-  struct Timer {
-    Timer(OptimizedCompileJob* job, base::TimeDelta* location)
-        : job_(job), location_(location) {
-      DCHECK(location_ != NULL);
-      timer_.Start();
-    }
-
-    ~Timer() {
-      *location_ += timer_.Elapsed();
-    }
-
-    OptimizedCompileJob* job_;
-    base::ElapsedTimer timer_;
-    base::TimeDelta* location_;
-  };
 };
 
 }  // namespace internal
diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc
index 722bbf0..d4187fa 100644
--- a/src/compiler/access-builder.cc
+++ b/src/compiler/access-builder.cc
@@ -16,36 +16,39 @@
 
 // static
 FieldAccess AccessBuilder::ForMap() {
-  FieldAccess access = {kTaggedBase, HeapObject::kMapOffset,
-                        MaybeHandle<Name>(), Type::Any(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase, HeapObject::kMapOffset,   MaybeHandle<Name>(),
+      Type::Any(), MachineType::AnyTagged(), kMapWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForHeapNumberValue() {
-  FieldAccess access = {kTaggedBase, HeapNumber::kValueOffset,
-                        MaybeHandle<Name>(), TypeCache().Get().kFloat64,
-                        MachineType::Float64()};
+  FieldAccess access = {kTaggedBase,
+                        HeapNumber::kValueOffset,
+                        MaybeHandle<Name>(),
+                        TypeCache::Get().kFloat64,
+                        MachineType::Float64(),
+                        kNoWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSObjectProperties() {
-  FieldAccess access = {kTaggedBase, JSObject::kPropertiesOffset,
-                        MaybeHandle<Name>(), Type::Internal(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase,      JSObject::kPropertiesOffset, MaybeHandle<Name>(),
+      Type::Internal(), MachineType::AnyTagged(),    kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSObjectElements() {
-  FieldAccess access = {kTaggedBase, JSObject::kElementsOffset,
-                        MaybeHandle<Name>(), Type::Internal(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase,      JSObject::kElementsOffset, MaybeHandle<Name>(),
+      Type::Internal(), MachineType::AnyTagged(),  kPointerWriteBarrier};
   return access;
 }
 
@@ -54,39 +57,93 @@
 FieldAccess AccessBuilder::ForJSObjectInObjectProperty(Handle<Map> map,
                                                        int index) {
   int const offset = map->GetInObjectPropertyOffset(index);
-  FieldAccess access = {kTaggedBase, offset, MaybeHandle<Name>(),
-                        Type::Tagged(), MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        offset,
+                        MaybeHandle<Name>(),
+                        Type::Tagged(),
+                        MachineType::AnyTagged(),
+                        kFullWriteBarrier};
   return access;
 }
 
 
 // static
+FieldAccess AccessBuilder::ForJSFunctionPrototypeOrInitialMap() {
+  FieldAccess access = {kTaggedBase,
+                        JSFunction::kPrototypeOrInitialMapOffset,
+                        MaybeHandle<Name>(),
+                        Type::Any(),
+                        MachineType::AnyTagged(),
+                        kFullWriteBarrier};
+  return access;
+}
+
+// static
 FieldAccess AccessBuilder::ForJSFunctionContext() {
-  FieldAccess access = {kTaggedBase, JSFunction::kContextOffset,
-                        MaybeHandle<Name>(), Type::Internal(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase,      JSFunction::kContextOffset, MaybeHandle<Name>(),
+      Type::Internal(), MachineType::AnyTagged(),   kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSFunctionSharedFunctionInfo() {
-  FieldAccess access = {kTaggedBase, JSFunction::kSharedFunctionInfoOffset,
-                        Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        JSFunction::kSharedFunctionInfoOffset,
+                        Handle<Name>(),
+                        Type::Any(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
   return access;
 }
 
 
 // static
+FieldAccess AccessBuilder::ForJSFunctionLiterals() {
+  FieldAccess access = {
+      kTaggedBase,      JSFunction::kLiteralsOffset, Handle<Name>(),
+      Type::Internal(), MachineType::AnyTagged(),    kPointerWriteBarrier};
+  return access;
+}
+
+// static
+FieldAccess AccessBuilder::ForJSFunctionCodeEntry() {
+  FieldAccess access = {kTaggedBase,
+                        JSFunction::kCodeEntryOffset,
+                        Handle<Name>(),
+                        Type::UntaggedPointer(),
+                        MachineType::Pointer(),
+                        kNoWriteBarrier};
+  return access;
+}
+
+// static
+FieldAccess AccessBuilder::ForJSFunctionNextFunctionLink() {
+  FieldAccess access = {kTaggedBase,
+                        JSFunction::kNextFunctionLinkOffset,
+                        Handle<Name>(),
+                        Type::Any(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
+  return access;
+}
+
+// static
 FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) {
   TypeCache const& type_cache = TypeCache::Get();
-  FieldAccess access = {kTaggedBase, JSArray::kLengthOffset, Handle<Name>(),
+  FieldAccess access = {kTaggedBase,
+                        JSArray::kLengthOffset,
+                        Handle<Name>(),
                         type_cache.kJSArrayLengthType,
-                        MachineType::AnyTagged()};
+                        MachineType::AnyTagged(),
+                        kFullWriteBarrier};
   if (IsFastDoubleElementsKind(elements_kind)) {
     access.type = type_cache.kFixedDoubleArrayLengthType;
+    access.write_barrier_kind = kNoWriteBarrier;
   } else if (IsFastElementsKind(elements_kind)) {
     access.type = type_cache.kFixedArrayLengthType;
+    access.write_barrier_kind = kNoWriteBarrier;
   }
   return access;
 }
@@ -94,190 +151,228 @@
 
 // static
 FieldAccess AccessBuilder::ForJSArrayBufferBackingStore() {
-  FieldAccess access = {kTaggedBase, JSArrayBuffer::kBackingStoreOffset,
-                        MaybeHandle<Name>(), Type::UntaggedPointer(),
-                        MachineType::Pointer()};
+  FieldAccess access = {kTaggedBase,
+                        JSArrayBuffer::kBackingStoreOffset,
+                        MaybeHandle<Name>(),
+                        Type::UntaggedPointer(),
+                        MachineType::Pointer(),
+                        kNoWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSArrayBufferBitField() {
-  FieldAccess access = {kTaggedBase, JSArrayBuffer::kBitFieldOffset,
+  FieldAccess access = {kTaggedBase,         JSArrayBuffer::kBitFieldOffset,
                         MaybeHandle<Name>(), TypeCache::Get().kInt8,
-                        MachineType::Int8()};
+                        MachineType::Int8(), kNoWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSArrayBufferViewBuffer() {
-  FieldAccess access = {kTaggedBase, JSArrayBufferView::kBufferOffset,
-                        MaybeHandle<Name>(), Type::TaggedPointer(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        JSArrayBufferView::kBufferOffset,
+                        MaybeHandle<Name>(),
+                        Type::TaggedPointer(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSDateField(JSDate::FieldIndex index) {
-  FieldAccess access = {
-      kTaggedBase, JSDate::kValueOffset + index * kPointerSize,
-      MaybeHandle<Name>(), Type::Number(), MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        JSDate::kValueOffset + index * kPointerSize,
+                        MaybeHandle<Name>(),
+                        Type::Number(),
+                        MachineType::AnyTagged(),
+                        kFullWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSIteratorResultDone() {
-  FieldAccess access = {kTaggedBase, JSIteratorResult::kDoneOffset,
-                        MaybeHandle<Name>(), Type::Any(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase, JSIteratorResult::kDoneOffset, MaybeHandle<Name>(),
+      Type::Any(), MachineType::AnyTagged(),      kFullWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSIteratorResultValue() {
-  FieldAccess access = {kTaggedBase, JSIteratorResult::kValueOffset,
-                        MaybeHandle<Name>(), Type::Any(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase, JSIteratorResult::kValueOffset, MaybeHandle<Name>(),
+      Type::Any(), MachineType::AnyTagged(),       kFullWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSRegExpFlags() {
-  FieldAccess access = {kTaggedBase, JSRegExp::kFlagsOffset,
-                        MaybeHandle<Name>(), Type::Tagged(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase,    JSRegExp::kFlagsOffset,   MaybeHandle<Name>(),
+      Type::Tagged(), MachineType::AnyTagged(), kFullWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSRegExpSource() {
-  FieldAccess access = {kTaggedBase, JSRegExp::kSourceOffset,
-                        MaybeHandle<Name>(), Type::Tagged(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase,    JSRegExp::kSourceOffset,  MaybeHandle<Name>(),
+      Type::Tagged(), MachineType::AnyTagged(), kFullWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForFixedArrayLength() {
-  FieldAccess access = {
-      kTaggedBase, FixedArray::kLengthOffset, MaybeHandle<Name>(),
-      TypeCache::Get().kFixedArrayLengthType, MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        FixedArray::kLengthOffset,
+                        MaybeHandle<Name>(),
+                        TypeCache::Get().kFixedArrayLengthType,
+                        MachineType::AnyTagged(),
+                        kNoWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForDescriptorArrayEnumCache() {
-  FieldAccess access = {kTaggedBase, DescriptorArray::kEnumCacheOffset,
-                        Handle<Name>(), Type::TaggedPointer(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        DescriptorArray::kEnumCacheOffset,
+                        Handle<Name>(),
+                        Type::TaggedPointer(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForDescriptorArrayEnumCacheBridgeCache() {
-  FieldAccess access = {
-      kTaggedBase, DescriptorArray::kEnumCacheBridgeCacheOffset, Handle<Name>(),
-      Type::TaggedPointer(), MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        DescriptorArray::kEnumCacheBridgeCacheOffset,
+                        Handle<Name>(),
+                        Type::TaggedPointer(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForMapBitField() {
-  FieldAccess access = {kTaggedBase, Map::kBitFieldOffset, Handle<Name>(),
-                        TypeCache::Get().kUint8, MachineType::Uint8()};
+  FieldAccess access = {kTaggedBase,          Map::kBitFieldOffset,
+                        Handle<Name>(),       TypeCache::Get().kUint8,
+                        MachineType::Uint8(), kNoWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForMapBitField3() {
-  FieldAccess access = {kTaggedBase, Map::kBitField3Offset, Handle<Name>(),
-                        TypeCache::Get().kInt32, MachineType::Int32()};
+  FieldAccess access = {kTaggedBase,          Map::kBitField3Offset,
+                        Handle<Name>(),       TypeCache::Get().kInt32,
+                        MachineType::Int32(), kNoWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForMapDescriptors() {
-  FieldAccess access = {kTaggedBase, Map::kDescriptorsOffset, Handle<Name>(),
-                        Type::TaggedPointer(), MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase,           Map::kDescriptorsOffset,  Handle<Name>(),
+      Type::TaggedPointer(), MachineType::AnyTagged(), kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForMapInstanceType() {
-  FieldAccess access = {kTaggedBase, Map::kInstanceTypeOffset, Handle<Name>(),
-                        TypeCache::Get().kUint8, MachineType::Uint8()};
+  FieldAccess access = {kTaggedBase,          Map::kInstanceTypeOffset,
+                        Handle<Name>(),       TypeCache::Get().kUint8,
+                        MachineType::Uint8(), kNoWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForMapPrototype() {
-  FieldAccess access = {kTaggedBase, Map::kPrototypeOffset, Handle<Name>(),
-                        Type::TaggedPointer(), MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase,           Map::kPrototypeOffset,    Handle<Name>(),
+      Type::TaggedPointer(), MachineType::AnyTagged(), kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForStringLength() {
-  FieldAccess access = {kTaggedBase, String::kLengthOffset, Handle<Name>(),
+  FieldAccess access = {kTaggedBase,
+                        String::kLengthOffset,
+                        Handle<Name>(),
                         TypeCache::Get().kStringLengthType,
-                        MachineType::AnyTagged()};
+                        MachineType::AnyTagged(),
+                        kNoWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSGlobalObjectGlobalProxy() {
-  FieldAccess access = {kTaggedBase, JSGlobalObject::kGlobalProxyOffset,
-                        Handle<Name>(), Type::Receiver(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        JSGlobalObject::kGlobalProxyOffset,
+                        Handle<Name>(),
+                        Type::Receiver(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForJSGlobalObjectNativeContext() {
-  FieldAccess access = {kTaggedBase, JSGlobalObject::kNativeContextOffset,
-                        Handle<Name>(), Type::Internal(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        JSGlobalObject::kNativeContextOffset,
+                        Handle<Name>(),
+                        Type::Internal(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForValue() {
-  FieldAccess access = {kTaggedBase, JSValue::kValueOffset, Handle<Name>(),
-                        Type::Any(), MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase, JSValue::kValueOffset,    Handle<Name>(),
+      Type::Any(), MachineType::AnyTagged(), kFullWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForArgumentsLength() {
-  FieldAccess access = {kTaggedBase, JSArgumentsObject::kLengthOffset,
-                        Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase, JSArgumentsObject::kLengthOffset, Handle<Name>(),
+      Type::Any(), MachineType::AnyTagged(),         kFullWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForArgumentsCallee() {
-  FieldAccess access = {kTaggedBase, JSSloppyArgumentsObject::kCalleeOffset,
-                        Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        JSSloppyArgumentsObject::kCalleeOffset,
+                        Handle<Name>(),
+                        Type::Any(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
   return access;
 }
 
@@ -285,8 +380,12 @@
 // static
 FieldAccess AccessBuilder::ForFixedArraySlot(size_t index) {
   int offset = FixedArray::OffsetOfElementAt(static_cast<int>(index));
-  FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        offset,
+                        Handle<Name>(),
+                        Type::Any(),
+                        MachineType::AnyTagged(),
+                        kFullWriteBarrier};
   return access;
 }
 
@@ -296,8 +395,12 @@
   int offset = Context::kHeaderSize + static_cast<int>(index) * kPointerSize;
   DCHECK_EQ(offset,
             Context::SlotOffset(static_cast<int>(index)) + kHeapObjectTag);
-  FieldAccess access = {kTaggedBase, offset, Handle<Name>(), Type::Any(),
-                        MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        offset,
+                        Handle<Name>(),
+                        Type::Any(),
+                        MachineType::AnyTagged(),
+                        kFullWriteBarrier};
   return access;
 }
 
@@ -310,16 +413,21 @@
 
 // static
 FieldAccess AccessBuilder::ForPropertyCellValue(Type* type) {
-  FieldAccess access = {kTaggedBase, PropertyCell::kValueOffset, Handle<Name>(),
-                        type, MachineType::AnyTagged()};
+  FieldAccess access = {
+      kTaggedBase, PropertyCell::kValueOffset, Handle<Name>(),
+      type,        MachineType::AnyTagged(),   kFullWriteBarrier};
   return access;
 }
 
 
 // static
 FieldAccess AccessBuilder::ForSharedFunctionInfoTypeFeedbackVector() {
-  FieldAccess access = {kTaggedBase, SharedFunctionInfo::kFeedbackVectorOffset,
-                        Handle<Name>(), Type::Any(), MachineType::AnyTagged()};
+  FieldAccess access = {kTaggedBase,
+                        SharedFunctionInfo::kFeedbackVectorOffset,
+                        Handle<Name>(),
+                        Type::Any(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
   return access;
 }
 
@@ -327,7 +435,7 @@
 // static
 ElementAccess AccessBuilder::ForFixedArrayElement() {
   ElementAccess access = {kTaggedBase, FixedArray::kHeaderSize, Type::Tagged(),
-                          MachineType::AnyTagged()};
+                          MachineType::AnyTagged(), kFullWriteBarrier};
   return access;
 }
 
@@ -335,7 +443,8 @@
 // static
 ElementAccess AccessBuilder::ForFixedDoubleArrayElement() {
   ElementAccess access = {kTaggedBase, FixedDoubleArray::kHeaderSize,
-                          TypeCache::Get().kFloat64, MachineType::Float64()};
+                          TypeCache::Get().kFloat64, MachineType::Float64(),
+                          kNoWriteBarrier};
   return access;
 }
 
@@ -348,56 +457,49 @@
   switch (type) {
     case kExternalInt8Array: {
       ElementAccess access = {taggedness, header_size, Type::Signed32(),
-                              MachineType::Int8()};
+                              MachineType::Int8(), kNoWriteBarrier};
       return access;
     }
     case kExternalUint8Array:
     case kExternalUint8ClampedArray: {
       ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
-                              MachineType::Uint8()};
+                              MachineType::Uint8(), kNoWriteBarrier};
       return access;
     }
     case kExternalInt16Array: {
       ElementAccess access = {taggedness, header_size, Type::Signed32(),
-                              MachineType::Int16()};
+                              MachineType::Int16(), kNoWriteBarrier};
       return access;
     }
     case kExternalUint16Array: {
       ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
-                              MachineType::Uint16()};
+                              MachineType::Uint16(), kNoWriteBarrier};
       return access;
     }
     case kExternalInt32Array: {
       ElementAccess access = {taggedness, header_size, Type::Signed32(),
-                              MachineType::Int32()};
+                              MachineType::Int32(), kNoWriteBarrier};
       return access;
     }
     case kExternalUint32Array: {
       ElementAccess access = {taggedness, header_size, Type::Unsigned32(),
-                              MachineType::Uint32()};
+                              MachineType::Uint32(), kNoWriteBarrier};
       return access;
     }
     case kExternalFloat32Array: {
       ElementAccess access = {taggedness, header_size, Type::Number(),
-                              MachineType::Float32()};
+                              MachineType::Float32(), kNoWriteBarrier};
       return access;
     }
     case kExternalFloat64Array: {
       ElementAccess access = {taggedness, header_size, Type::Number(),
-                              MachineType::Float64()};
+                              MachineType::Float64(), kNoWriteBarrier};
       return access;
     }
   }
   UNREACHABLE();
-  ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None()};
-  return access;
-}
-
-
-// static
-FieldAccess AccessBuilder::ForStatsCounter() {
-  FieldAccess access = {kUntaggedBase, 0, MaybeHandle<Name>(),
-                        TypeCache::Get().kInt32, MachineType::Int32()};
+  ElementAccess access = {kUntaggedBase, 0, Type::None(), MachineType::None(),
+                          kNoWriteBarrier};
   return access;
 }
 
diff --git a/src/compiler/access-builder.h b/src/compiler/access-builder.h
index 8375d37..b36277e 100644
--- a/src/compiler/access-builder.h
+++ b/src/compiler/access-builder.h
@@ -34,12 +34,24 @@
   // Provides access to JSObject inobject property fields.
   static FieldAccess ForJSObjectInObjectProperty(Handle<Map> map, int index);
 
+  // Provides access to JSFunction::prototype_or_initial_map() field.
+  static FieldAccess ForJSFunctionPrototypeOrInitialMap();
+
   // Provides access to JSFunction::context() field.
   static FieldAccess ForJSFunctionContext();
 
   // Provides access to JSFunction::shared() field.
   static FieldAccess ForJSFunctionSharedFunctionInfo();
 
+  // Provides access to JSFunction::literals() field.
+  static FieldAccess ForJSFunctionLiterals();
+
+  // Provides access to JSFunction::code() field.
+  static FieldAccess ForJSFunctionCodeEntry();
+
+  // Provides access to JSFunction::next_function_link() field.
+  static FieldAccess ForJSFunctionNextFunctionLink();
+
   // Provides access to JSArray::length() field.
   static FieldAccess ForJSArrayLength(ElementsKind elements_kind);
 
@@ -130,12 +142,6 @@
   static ElementAccess ForTypedArrayElement(ExternalArrayType type,
                                             bool is_external);
 
-  // ===========================================================================
-  // Access to global per-isolate variables (based on external reference).
-
-  // Provides access to the backing store of a StatsCounter.
-  static FieldAccess ForStatsCounter();
-
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(AccessBuilder);
 };
diff --git a/src/compiler/access-info.cc b/src/compiler/access-info.cc
index 4a2a857..e38f629 100644
--- a/src/compiler/access-info.cc
+++ b/src/compiler/access-info.cc
@@ -192,12 +192,12 @@
   MapTransitionList transitions(maps.length());
   for (Handle<Map> map : maps) {
     if (Map::TryUpdate(map).ToHandle(&map)) {
-      Handle<Map> transition_target =
-          Map::FindTransitionedMap(map, &possible_transition_targets);
-      if (transition_target.is_null()) {
+      Map* transition_target =
+          map->FindElementsKindTransitionedMap(&possible_transition_targets);
+      if (transition_target == nullptr) {
         receiver_maps.Add(map);
       } else {
-        transitions.push_back(std::make_pair(map, transition_target));
+        transitions.push_back(std::make_pair(map, handle(transition_target)));
       }
     }
   }
diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc
index a0b5022..2c9415e 100644
--- a/src/compiler/arm/code-generator-arm.cc
+++ b/src/compiler/arm/code-generator-arm.cc
@@ -149,7 +149,7 @@
 
   MemOperand ToMemOperand(InstructionOperand* op) const {
     DCHECK_NOT_NULL(op);
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToMemOperand(AllocatedOperand::cast(op)->index());
   }
 
@@ -218,7 +218,8 @@
         value_(value),
         scratch0_(scratch0),
         scratch1_(scratch1),
-        mode_(mode) {}
+        mode_(mode),
+        must_save_lr_(!gen->frame_access_state()->has_frame()) {}
 
   OutOfLineRecordWrite(CodeGenerator* gen, Register object, int32_t index,
                        Register value, Register scratch0, Register scratch1,
@@ -388,12 +389,25 @@
     DCHECK_EQ(LeaveCC, i.OutputSBit());           \
   } while (0)
 
+#define ASSEMBLE_ATOMIC_LOAD_INTEGER(asm_instr)                       \
+  do {                                                                \
+    __ asm_instr(i.OutputRegister(),                                  \
+                 MemOperand(i.InputRegister(0), i.InputRegister(1))); \
+    __ dmb(ISH);                                                      \
+  } while (0)
+
+#define ASSEMBLE_ATOMIC_STORE_INTEGER(asm_instr)                      \
+  do {                                                                \
+    __ dmb(ISH);                                                      \
+    __ asm_instr(i.InputRegister(2),                                  \
+                 MemOperand(i.InputRegister(0), i.InputRegister(1))); \
+    __ dmb(ISH);                                                      \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ LeaveFrame(StackFrame::MANUAL);
 }
 
-void CodeGenerator::AssembleSetupStackPointer() {}
-
 void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
   int sp_slot_delta = TailCallFrameStackSlotDelta(stack_param_delta);
   if (sp_slot_delta > 0) {
@@ -445,7 +459,8 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   ArmOperandConverter i(this, instr);
 
   __ MaybeCheckConstPool();
@@ -488,6 +503,14 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!instr->InputAt(0)->IsImmediate());
+      __ Jump(i.InputRegister(0));
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       EnsureSpaceForLazyDeopt();
       Register func = i.InputRegister(0);
@@ -571,7 +594,9 @@
           BuildTranslation(instr, -1, 0, OutputFrameStateCombine::Ignore());
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -856,7 +881,7 @@
       }
       break;
     case kArmVcmpF32:
-      if (instr->InputAt(1)->IsDoubleRegister()) {
+      if (instr->InputAt(1)->IsFPRegister()) {
         __ VFPCompareAndSetFlags(i.InputFloat32Register(0),
                                  i.InputFloat32Register(1));
       } else {
@@ -907,7 +932,7 @@
       __ vneg(i.OutputFloat32Register(), i.InputFloat32Register(0));
       break;
     case kArmVcmpF64:
-      if (instr->InputAt(1)->IsDoubleRegister()) {
+      if (instr->InputAt(1)->IsFPRegister()) {
         __ VFPCompareAndSetFlags(i.InputFloat64Register(0),
                                  i.InputFloat64Register(1));
       } else {
@@ -1146,8 +1171,48 @@
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
+    case kArmFloat32Max: {
+      CpuFeatureScope scope(masm(), ARMv8);
+      // (b < a) ? a : b
+      SwVfpRegister a = i.InputFloat32Register(0);
+      SwVfpRegister b = i.InputFloat32Register(1);
+      SwVfpRegister result = i.OutputFloat32Register(0);
+      __ VFPCompareAndSetFlags(a, b);
+      __ vsel(gt, result, a, b);
+      break;
+    }
+    case kArmFloat32Min: {
+      CpuFeatureScope scope(masm(), ARMv8);
+      // (a < b) ? a : b
+      SwVfpRegister a = i.InputFloat32Register(0);
+      SwVfpRegister b = i.InputFloat32Register(1);
+      SwVfpRegister result = i.OutputFloat32Register(0);
+      __ VFPCompareAndSetFlags(b, a);
+      __ vsel(gt, result, a, b);
+      break;
+    }
+    case kArmFloat64Max: {
+      CpuFeatureScope scope(masm(), ARMv8);
+      // (b < a) ? a : b
+      DwVfpRegister a = i.InputFloat64Register(0);
+      DwVfpRegister b = i.InputFloat64Register(1);
+      DwVfpRegister result = i.OutputFloat64Register(0);
+      __ VFPCompareAndSetFlags(a, b);
+      __ vsel(gt, result, a, b);
+      break;
+    }
+    case kArmFloat64Min: {
+      CpuFeatureScope scope(masm(), ARMv8);
+      // (a < b) ? a : b
+      DwVfpRegister a = i.InputFloat64Register(0);
+      DwVfpRegister b = i.InputFloat64Register(1);
+      DwVfpRegister result = i.OutputFloat64Register(0);
+      __ VFPCompareAndSetFlags(b, a);
+      __ vsel(gt, result, a, b);
+      break;
+    }
     case kArmPush:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ vpush(i.InputDoubleRegister(0));
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
       } else {
@@ -1202,7 +1267,34 @@
     case kCheckedStoreWord64:
       UNREACHABLE();  // currently unsupported checked int64 load/store.
       break;
+
+    case kAtomicLoadInt8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(ldrsb);
+      break;
+    case kAtomicLoadUint8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(ldrb);
+      break;
+    case kAtomicLoadInt16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(ldrsh);
+      break;
+    case kAtomicLoadUint16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(ldrh);
+      break;
+    case kAtomicLoadWord32:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(ldr);
+      break;
+
+    case kAtomicStoreWord8:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(strb);
+      break;
+    case kAtomicStoreWord16:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(strh);
+      break;
+    case kAtomicStoreWord32:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(str);
+      break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 
@@ -1263,20 +1355,47 @@
   }
 }
 
-
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
   // TODO(turbofan): We should be able to generate better code by sharing the
   // actual final call site and just bl'ing to it here, similar to what we do
   // in the lithium backend.
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ Call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
   __ CheckConstPool(false, false);
+  return kSuccess;
 }
 
+void CodeGenerator::FinishFrame(Frame* frame) {
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
 
-void CodeGenerator::AssemblePrologue() {
+  const RegList saves_fp = descriptor->CalleeSavedFPRegisters();
+  if (saves_fp != 0) {
+    frame->AlignSavedCalleeRegisterSlots();
+  }
+
+  if (saves_fp != 0) {
+    // Save callee-saved FP registers.
+    STATIC_ASSERT(DwVfpRegister::kMaxNumRegisters == 32);
+    uint32_t last = base::bits::CountLeadingZeros32(saves_fp) - 1;
+    uint32_t first = base::bits::CountTrailingZeros32(saves_fp);
+    DCHECK_EQ((last - first + 1), base::bits::CountPopulation32(saves_fp));
+    frame->AllocateSavedCalleeRegisterSlots((last - first + 1) *
+                                            (kDoubleSize / kPointerSize));
+  }
+  const RegList saves = FLAG_enable_embedded_constant_pool
+                            ? (descriptor->CalleeSavedRegisters() & ~pp.bit())
+                            : descriptor->CalleeSavedRegisters();
+  if (saves != 0) {
+    // Save callee-saved registers.
+    frame->AllocateSavedCalleeRegisterSlots(
+        base::bits::CountPopulation32(saves));
+  }
+}
+
+void CodeGenerator::AssembleConstructFrame() {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (frame_access_state()->has_frame()) {
     if (descriptor->IsCFunctionCall()) {
@@ -1295,7 +1414,8 @@
     }
   }
 
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
+  int shrink_slots = frame()->GetSpillSlotCount();
+
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -1306,15 +1426,12 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
+    shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
   }
 
   const RegList saves_fp = descriptor->CalleeSavedFPRegisters();
-  if (saves_fp != 0) {
-    stack_shrink_slots += frame()->AlignSavedCalleeRegisterSlots();
-  }
-  if (stack_shrink_slots > 0) {
-    __ sub(sp, sp, Operand(stack_shrink_slots * kPointerSize));
+  if (shrink_slots > 0) {
+    __ sub(sp, sp, Operand(shrink_slots * kPointerSize));
   }
 
   if (saves_fp != 0) {
@@ -1325,8 +1442,6 @@
     DCHECK_EQ((last - first + 1), base::bits::CountPopulation32(saves_fp));
     __ vstm(db_w, sp, DwVfpRegister::from_code(first),
             DwVfpRegister::from_code(last));
-    frame()->AllocateSavedCalleeRegisterSlots((last - first + 1) *
-                                              (kDoubleSize / kPointerSize));
   }
   const RegList saves = FLAG_enable_embedded_constant_pool
                             ? (descriptor->CalleeSavedRegisters() & ~pp.bit())
@@ -1334,8 +1449,6 @@
   if (saves != 0) {
     // Save callee-saved registers.
     __ stm(db_w, sp, saves);
-    frame()->AllocateSavedCalleeRegisterSlots(
-        base::bits::CountPopulation32(saves));
   }
 }
 
@@ -1408,7 +1521,12 @@
           destination->IsRegister() ? g.ToRegister(destination) : kScratchReg;
       switch (src.type()) {
         case Constant::kInt32:
-          __ mov(dst, Operand(src.ToInt32()));
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+            __ mov(dst, Operand(src.ToInt32(), src.rmode()));
+          } else {
+            __ mov(dst, Operand(src.ToInt32()));
+          }
           break;
         case Constant::kInt64:
           UNREACHABLE();
@@ -1443,7 +1561,7 @@
       }
       if (destination->IsStackSlot()) __ str(dst, g.ToMemOperand(destination));
     } else if (src.type() == Constant::kFloat32) {
-      if (destination->IsDoubleStackSlot()) {
+      if (destination->IsFPStackSlot()) {
         MemOperand dst = g.ToMemOperand(destination);
         __ mov(ip, Operand(bit_cast<int32_t>(src.ToFloat32())));
         __ str(ip, dst);
@@ -1453,27 +1571,27 @@
       }
     } else {
       DCHECK_EQ(Constant::kFloat64, src.type());
-      DwVfpRegister dst = destination->IsDoubleRegister()
+      DwVfpRegister dst = destination->IsFPRegister()
                               ? g.ToFloat64Register(destination)
                               : kScratchDoubleReg;
       __ vmov(dst, src.ToFloat64(), kScratchReg);
-      if (destination->IsDoubleStackSlot()) {
+      if (destination->IsFPStackSlot()) {
         __ vstr(dst, g.ToMemOperand(destination));
       }
     }
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     DwVfpRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       DwVfpRegister dst = g.ToDoubleRegister(destination);
       __ Move(dst, src);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       __ vstr(src, g.ToMemOperand(destination));
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       __ vldr(g.ToDoubleRegister(destination), src);
     } else {
       DwVfpRegister temp = kScratchDoubleReg;
@@ -1517,23 +1635,23 @@
     __ vldr(temp_1, dst);
     __ str(temp_0, dst);
     __ vstr(temp_1, src);
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     DwVfpRegister temp = kScratchDoubleReg;
     DwVfpRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       DwVfpRegister dst = g.ToDoubleRegister(destination);
       __ Move(temp, src);
       __ Move(src, dst);
       __ Move(dst, temp);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       MemOperand dst = g.ToMemOperand(destination);
       __ Move(temp, src);
       __ vldr(src, dst);
       __ vstr(temp, dst);
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPStackSlot());
     Register temp_0 = kScratchReg;
     DwVfpRegister temp_1 = kScratchDoubleReg;
     MemOperand src0 = g.ToMemOperand(source);
@@ -1559,11 +1677,6 @@
 }
 
 
-void CodeGenerator::AddNopForSmiCodeInlining() {
-  // On 32-bit ARM we do not insert nops for inlined Smi code.
-}
-
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/arm/instruction-codes-arm.h b/src/compiler/arm/instruction-codes-arm.h
index 5e6f5c9..fc371e0 100644
--- a/src/compiler/arm/instruction-codes-arm.h
+++ b/src/compiler/arm/instruction-codes-arm.h
@@ -101,6 +101,10 @@
   V(ArmVstrF32)                    \
   V(ArmVldrF64)                    \
   V(ArmVstrF64)                    \
+  V(ArmFloat32Max)                 \
+  V(ArmFloat32Min)                 \
+  V(ArmFloat64Max)                 \
+  V(ArmFloat64Min)                 \
   V(ArmLdrb)                       \
   V(ArmLdrsb)                      \
   V(ArmStrb)                       \
diff --git a/src/compiler/arm/instruction-scheduler-arm.cc b/src/compiler/arm/instruction-scheduler-arm.cc
index 466765e..ec28b72 100644
--- a/src/compiler/arm/instruction-scheduler-arm.cc
+++ b/src/compiler/arm/instruction-scheduler-arm.cc
@@ -99,6 +99,10 @@
     case kArmVmovHighU32F64:
     case kArmVmovHighF64U32:
     case kArmVmovF64U32U32:
+    case kArmFloat64Max:
+    case kArmFloat64Min:
+    case kArmFloat32Max:
+    case kArmFloat32Min:
       return kNoOpcodeFlags;
 
     case kArmVldrF32:
diff --git a/src/compiler/arm/instruction-selector-arm.cc b/src/compiler/arm/instruction-selector-arm.cc
index 76d9e3c..b2b1a70 100644
--- a/src/compiler/arm/instruction-selector-arm.cc
+++ b/src/compiler/arm/instruction-selector-arm.cc
@@ -1142,15 +1142,12 @@
   VisitRR(this, kArmVcvtF32F64, node);
 }
 
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
+  VisitRR(this, kArchTruncateDoubleToI, node);
+}
 
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      return VisitRR(this, kArchTruncateDoubleToI, node);
-    case TruncationMode::kRoundToZero:
-      return VisitRR(this, kArmVcvtS32F64, node);
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  VisitRR(this, kArmVcvtS32F64, node);
 }
 
 
@@ -1208,6 +1205,35 @@
   VisitRRR(this, kArmVaddF64, node);
 }
 
+namespace {
+void VisitFloat32SubHelper(InstructionSelector* selector, Node* node) {
+  ArmOperandGenerator g(selector);
+  Float32BinopMatcher m(node);
+  if (m.right().IsFloat32Mul() && selector->CanCover(node, m.right().node())) {
+    Float32BinopMatcher mright(m.right().node());
+    selector->Emit(kArmVmlsF32, g.DefineSameAsFirst(node),
+                   g.UseRegister(m.left().node()),
+                   g.UseRegister(mright.left().node()),
+                   g.UseRegister(mright.right().node()));
+    return;
+  }
+  VisitRRR(selector, kArmVsubF32, node);
+}
+
+void VisitFloat64SubHelper(InstructionSelector* selector, Node* node) {
+  ArmOperandGenerator g(selector);
+  Float64BinopMatcher m(node);
+  if (m.right().IsFloat64Mul() && selector->CanCover(node, m.right().node())) {
+    Float64BinopMatcher mright(m.right().node());
+    selector->Emit(kArmVmlsF64, g.DefineSameAsFirst(node),
+                   g.UseRegister(m.left().node()),
+                   g.UseRegister(mright.left().node()),
+                   g.UseRegister(mright.right().node()));
+    return;
+  }
+  VisitRRR(selector, kArmVsubF64, node);
+}
+}  // namespace
 
 void InstructionSelector::VisitFloat32Sub(Node* node) {
   ArmOperandGenerator g(this);
@@ -1217,16 +1243,12 @@
          g.UseRegister(m.right().node()));
     return;
   }
-  if (m.right().IsFloat32Mul() && CanCover(node, m.right().node())) {
-    Float32BinopMatcher mright(m.right().node());
-    Emit(kArmVmlsF32, g.DefineSameAsFirst(node), g.UseRegister(m.left().node()),
-         g.UseRegister(mright.left().node()),
-         g.UseRegister(mright.right().node()));
-    return;
-  }
-  VisitRRR(this, kArmVsubF32, node);
+  VisitFloat32SubHelper(this, node);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  VisitFloat32SubHelper(this, node);
+}
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
   ArmOperandGenerator g(this);
@@ -1248,16 +1270,12 @@
          g.UseRegister(m.right().node()));
     return;
   }
-  if (m.right().IsFloat64Mul() && CanCover(node, m.right().node())) {
-    Float64BinopMatcher mright(m.right().node());
-    Emit(kArmVmlsF64, g.DefineSameAsFirst(node), g.UseRegister(m.left().node()),
-         g.UseRegister(mright.left().node()),
-         g.UseRegister(mright.right().node()));
-    return;
-  }
-  VisitRRR(this, kArmVsubF64, node);
+  VisitFloat64SubHelper(this, node);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  VisitFloat64SubHelper(this, node);
+}
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   VisitRRR(this, kArmVmulF32, node);
@@ -1285,18 +1303,25 @@
        g.UseFixed(node->InputAt(1), d1))->MarkAsCall();
 }
 
+void InstructionSelector::VisitFloat32Max(Node* node) {
+  DCHECK(IsSupported(ARMv8));
+  VisitRRR(this, kArmFloat32Max, node);
+}
 
-void InstructionSelector::VisitFloat32Max(Node* node) { UNREACHABLE(); }
+void InstructionSelector::VisitFloat64Max(Node* node) {
+  DCHECK(IsSupported(ARMv8));
+  VisitRRR(this, kArmFloat64Max, node);
+}
 
+void InstructionSelector::VisitFloat32Min(Node* node) {
+  DCHECK(IsSupported(ARMv8));
+  VisitRRR(this, kArmFloat32Min, node);
+}
 
-void InstructionSelector::VisitFloat64Max(Node* node) { UNREACHABLE(); }
-
-
-void InstructionSelector::VisitFloat32Min(Node* node) { UNREACHABLE(); }
-
-
-void InstructionSelector::VisitFloat64Min(Node* node) { UNREACHABLE(); }
-
+void InstructionSelector::VisitFloat64Min(Node* node) {
+  DCHECK(IsSupported(ARMv8));
+  VisitRRR(this, kArmFloat64Min, node);
+}
 
 void InstructionSelector::VisitFloat32Abs(Node* node) {
   VisitRR(this, kArmVabsF32, node);
@@ -1807,6 +1832,61 @@
        g.UseRegister(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  ArmOperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  ArchOpcode opcode = kArchNop;
+  switch (load_rep.representation()) {
+    case MachineRepresentation::kWord8:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt8 : kAtomicLoadUint8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt16 : kAtomicLoadUint16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicLoadWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+  Emit(opcode | AddressingModeField::encode(kMode_Offset_RR),
+       g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(index));
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  ArmOperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kAtomicStoreWord8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kAtomicStoreWord16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicStoreWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+
+  AddressingMode addressing_mode = kMode_Offset_RR;
+  InstructionOperand inputs[4];
+  size_t input_count = 0;
+  inputs[input_count++] = g.UseUniqueRegister(base);
+  inputs[input_count++] = g.UseUniqueRegister(index);
+  inputs[input_count++] = g.UseUniqueRegister(value);
+  InstructionCode code = opcode | AddressingModeField::encode(addressing_mode);
+  Emit(code, 0, nullptr, input_count, inputs);
+}
 
 // static
 MachineOperatorBuilder::Flags
@@ -1826,7 +1906,11 @@
              MachineOperatorBuilder::kFloat64RoundTruncate |
              MachineOperatorBuilder::kFloat64RoundTiesAway |
              MachineOperatorBuilder::kFloat32RoundTiesEven |
-             MachineOperatorBuilder::kFloat64RoundTiesEven;
+             MachineOperatorBuilder::kFloat64RoundTiesEven |
+             MachineOperatorBuilder::kFloat32Min |
+             MachineOperatorBuilder::kFloat32Max |
+             MachineOperatorBuilder::kFloat64Min |
+             MachineOperatorBuilder::kFloat64Max;
   }
   return flags;
 }
diff --git a/src/compiler/arm64/code-generator-arm64.cc b/src/compiler/arm64/code-generator-arm64.cc
index 456e7e7..0f9fb7c 100644
--- a/src/compiler/arm64/code-generator-arm64.cc
+++ b/src/compiler/arm64/code-generator-arm64.cc
@@ -33,6 +33,24 @@
     return InputDoubleRegister(index);
   }
 
+  CPURegister InputFloat32OrZeroRegister(size_t index) {
+    if (instr_->InputAt(index)->IsImmediate()) {
+      DCHECK(bit_cast<int32_t>(InputFloat32(index)) == 0);
+      return wzr;
+    }
+    DCHECK(instr_->InputAt(index)->IsFPRegister());
+    return InputDoubleRegister(index).S();
+  }
+
+  CPURegister InputFloat64OrZeroRegister(size_t index) {
+    if (instr_->InputAt(index)->IsImmediate()) {
+      DCHECK(bit_cast<int64_t>(InputDouble(index)) == 0);
+      return xzr;
+    }
+    DCHECK(instr_->InputAt(index)->IsDoubleRegister());
+    return InputDoubleRegister(index);
+  }
+
   size_t OutputCount() { return instr_->OutputCount(); }
 
   DoubleRegister OutputFloat32Register() { return OutputDoubleRegister().S(); }
@@ -141,7 +159,6 @@
     const size_t index = *first_index;
     switch (AddressingModeField::decode(instr_->opcode())) {
       case kMode_None:
-      case kMode_Operand2_R_LSL_I:
       case kMode_Operand2_R_LSR_I:
       case kMode_Operand2_R_ASR_I:
       case kMode_Operand2_R_ROR_I:
@@ -150,6 +167,10 @@
       case kMode_Operand2_R_SXTB:
       case kMode_Operand2_R_SXTH:
         break;
+      case kMode_Operand2_R_LSL_I:
+        *first_index += 3;
+        return MemOperand(InputRegister(index + 0), InputRegister(index + 1),
+                          LSL, InputInt32(index + 2));
       case kMode_MRI:
         *first_index += 2;
         return MemOperand(InputRegister(index + 0), InputInt32(index + 1));
@@ -183,9 +204,18 @@
     Constant constant = ToConstant(operand);
     switch (constant.type()) {
       case Constant::kInt32:
-        return Operand(constant.ToInt32());
+        if (constant.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+          return Operand(constant.ToInt32(), constant.rmode());
+        } else {
+          return Operand(constant.ToInt32());
+        }
       case Constant::kInt64:
-        return Operand(constant.ToInt64());
+        if (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+          return Operand(constant.ToInt64(), constant.rmode());
+        } else {
+          DCHECK(constant.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+          return Operand(constant.ToInt64());
+        }
       case Constant::kFloat32:
         return Operand(
             isolate()->factory()->NewNumber(constant.ToFloat32(), TENURED));
@@ -206,7 +236,7 @@
 
   MemOperand ToMemOperand(InstructionOperand* op, MacroAssembler* masm) const {
     DCHECK_NOT_NULL(op);
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToMemOperand(AllocatedOperand::cast(op)->index(), masm);
   }
 
@@ -412,27 +442,25 @@
     __ Bind(ool->exit());                                    \
   } while (0)
 
-
-#define ASSEMBLE_CHECKED_STORE_FLOAT(width)          \
-  do {                                               \
-    auto buffer = i.InputRegister(0);                \
-    auto offset = i.InputRegister32(1);              \
-    auto length = i.InputOperand32(2);               \
-    auto value = i.InputFloat##width##Register(3);   \
-    __ Cmp(offset, length);                          \
-    Label done;                                      \
-    __ B(hs, &done);                                 \
-    __ Str(value, MemOperand(buffer, offset, UXTW)); \
-    __ Bind(&done);                                  \
+#define ASSEMBLE_CHECKED_STORE_FLOAT(width)              \
+  do {                                                   \
+    auto buffer = i.InputRegister(0);                    \
+    auto offset = i.InputRegister32(1);                  \
+    auto length = i.InputOperand32(2);                   \
+    auto value = i.InputFloat##width##OrZeroRegister(3); \
+    __ Cmp(offset, length);                              \
+    Label done;                                          \
+    __ B(hs, &done);                                     \
+    __ Str(value, MemOperand(buffer, offset, UXTW));     \
+    __ Bind(&done);                                      \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_STORE_INTEGER(asm_instr)          \
   do {                                                     \
     auto buffer = i.InputRegister(0);                      \
     auto offset = i.InputRegister32(1);                    \
     auto length = i.InputOperand32(2);                     \
-    auto value = i.InputRegister32(3);                     \
+    auto value = i.InputOrZeroRegister32(3);               \
     __ Cmp(offset, length);                                \
     Label done;                                            \
     __ B(hs, &done);                                       \
@@ -440,13 +468,12 @@
     __ Bind(&done);                                        \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_STORE_INTEGER_64(asm_instr)       \
   do {                                                     \
     auto buffer = i.InputRegister(0);                      \
     auto offset = i.InputRegister32(1);                    \
     auto length = i.InputOperand32(2);                     \
-    auto value = i.InputRegister(3);                       \
+    auto value = i.InputOrZeroRegister64(3);               \
     __ Cmp(offset, length);                                \
     Label done;                                            \
     __ B(hs, &done);                                       \
@@ -454,7 +481,6 @@
     __ Bind(&done);                                        \
   } while (0)
 
-
 #define ASSEMBLE_SHIFT(asm_instr, width)                                    \
   do {                                                                      \
     if (instr->InputAt(1)->IsRegister()) {                                  \
@@ -468,6 +494,21 @@
     }                                                                       \
   } while (0)
 
+#define ASSEMBLE_ATOMIC_LOAD_INTEGER(asm_instr)                       \
+  do {                                                                \
+    __ asm_instr(i.OutputRegister(),                                  \
+                 MemOperand(i.InputRegister(0), i.InputRegister(1))); \
+    __ Dmb(InnerShareable, BarrierAll);                               \
+  } while (0)
+
+#define ASSEMBLE_ATOMIC_STORE_INTEGER(asm_instr)                      \
+  do {                                                                \
+    __ Dmb(InnerShareable, BarrierAll);                               \
+    __ asm_instr(i.InputRegister(2),                                  \
+                 MemOperand(i.InputRegister(0), i.InputRegister(1))); \
+    __ Dmb(InnerShareable, BarrierAll);                               \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   const CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (descriptor->IsCFunctionCall() || descriptor->UseNativeStack()) {
@@ -526,7 +567,8 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   Arm64OperandConverter i(this, instr);
   InstructionCode opcode = instr->opcode();
   ArchOpcode arch_opcode = ArchOpcodeField::decode(opcode);
@@ -577,6 +619,14 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!instr->InputAt(0)->IsImmediate());
+      __ Jump(i.InputRegister(0));
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       EnsureSpaceForLazyDeopt();
       Register func = i.InputRegister(0);
@@ -670,7 +720,9 @@
           BuildTranslation(instr, -1, 0, OutputFrameStateCombine::Ignore());
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -1038,7 +1090,7 @@
       Register prev = __ StackPointer();
       __ SetStackPointer(arch_opcode == kArm64PokeCSP ? csp : jssp);
       Operand operand(i.InputInt32(1) * kPointerSize);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Poke(i.InputFloat64Register(0), operand);
       } else {
         __ Poke(i.InputRegister(0), operand);
@@ -1048,7 +1100,7 @@
     }
     case kArm64PokePair: {
       int slot = i.InputInt32(2) - 1;
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ PokePair(i.InputFloat64Register(1), i.InputFloat64Register(0),
                     slot * kPointerSize);
       } else {
@@ -1088,7 +1140,7 @@
       __ Tst(i.InputRegister32(0), i.InputOperand32(1));
       break;
     case kArm64Float32Cmp:
-      if (instr->InputAt(1)->IsDoubleRegister()) {
+      if (instr->InputAt(1)->IsFPRegister()) {
         __ Fcmp(i.InputFloat32Register(0), i.InputFloat32Register(1));
       } else {
         DCHECK(instr->InputAt(1)->IsImmediate());
@@ -1132,7 +1184,7 @@
       __ Fsqrt(i.OutputFloat32Register(), i.InputFloat32Register(0));
       break;
     case kArm64Float64Cmp:
-      if (instr->InputAt(1)->IsDoubleRegister()) {
+      if (instr->InputAt(1)->IsFPRegister()) {
         __ Fcmp(i.InputDoubleRegister(0), i.InputDoubleRegister(1));
       } else {
         DCHECK(instr->InputAt(1)->IsImmediate());
@@ -1315,7 +1367,7 @@
       __ Ldrsb(i.OutputRegister(), i.MemoryOperand());
       break;
     case kArm64Strb:
-      __ Strb(i.InputRegister(2), i.MemoryOperand());
+      __ Strb(i.InputOrZeroRegister64(0), i.MemoryOperand(1));
       break;
     case kArm64Ldrh:
       __ Ldrh(i.OutputRegister(), i.MemoryOperand());
@@ -1324,31 +1376,31 @@
       __ Ldrsh(i.OutputRegister(), i.MemoryOperand());
       break;
     case kArm64Strh:
-      __ Strh(i.InputRegister(2), i.MemoryOperand());
+      __ Strh(i.InputOrZeroRegister64(0), i.MemoryOperand(1));
       break;
     case kArm64LdrW:
       __ Ldr(i.OutputRegister32(), i.MemoryOperand());
       break;
     case kArm64StrW:
-      __ Str(i.InputRegister32(2), i.MemoryOperand());
+      __ Str(i.InputOrZeroRegister32(0), i.MemoryOperand(1));
       break;
     case kArm64Ldr:
       __ Ldr(i.OutputRegister(), i.MemoryOperand());
       break;
     case kArm64Str:
-      __ Str(i.InputRegister(2), i.MemoryOperand());
+      __ Str(i.InputOrZeroRegister64(0), i.MemoryOperand(1));
       break;
     case kArm64LdrS:
       __ Ldr(i.OutputDoubleRegister().S(), i.MemoryOperand());
       break;
     case kArm64StrS:
-      __ Str(i.InputDoubleRegister(2).S(), i.MemoryOperand());
+      __ Str(i.InputFloat32OrZeroRegister(0), i.MemoryOperand(1));
       break;
     case kArm64LdrD:
       __ Ldr(i.OutputDoubleRegister(), i.MemoryOperand());
       break;
     case kArm64StrD:
-      __ Str(i.InputDoubleRegister(2), i.MemoryOperand());
+      __ Str(i.InputFloat64OrZeroRegister(0), i.MemoryOperand(1));
       break;
     case kCheckedLoadInt8:
       ASSEMBLE_CHECKED_LOAD_INTEGER(Ldrsb);
@@ -1392,7 +1444,37 @@
     case kCheckedStoreFloat64:
       ASSEMBLE_CHECKED_STORE_FLOAT(64);
       break;
+    case kAtomicLoadInt8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(Ldrsb);
+      break;
+    case kAtomicLoadUint8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(Ldrb);
+      break;
+    case kAtomicLoadInt16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(Ldrsh);
+      break;
+    case kAtomicLoadUint16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(Ldrh);
+      break;
+    case kAtomicLoadWord32:
+      __ Ldr(i.OutputRegister32(),
+             MemOperand(i.InputRegister(0), i.InputRegister(1)));
+      __ Dmb(InnerShareable, BarrierAll);
+      break;
+    case kAtomicStoreWord8:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(Strb);
+      break;
+    case kAtomicStoreWord16:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(Strh);
+      break;
+    case kAtomicStoreWord32:
+      __ Dmb(InnerShareable, BarrierAll);
+      __ Str(i.InputRegister32(2),
+             MemOperand(i.InputRegister(0), i.InputRegister(1)));
+      __ Dmb(InnerShareable, BarrierAll);
+      break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 
@@ -1495,30 +1577,49 @@
   __ EndBlockPools();
 }
 
-
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ Call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
+  return kSuccess;
 }
 
-void CodeGenerator::AssembleSetupStackPointer() {
-  const CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
+void CodeGenerator::FinishFrame(Frame* frame) {
+  frame->AlignFrame(16);
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
+
   if (descriptor->UseNativeStack() || descriptor->IsCFunctionCall()) {
     __ SetStackPointer(csp);
   } else {
     __ SetStackPointer(jssp);
   }
+
+  // Save FP registers.
+  CPURegList saves_fp = CPURegList(CPURegister::kFPRegister, kDRegSizeInBits,
+                                   descriptor->CalleeSavedFPRegisters());
+  int saved_count = saves_fp.Count();
+  if (saved_count != 0) {
+    DCHECK(saves_fp.list() == CPURegList::GetCalleeSavedFP().list());
+    frame->AllocateSavedCalleeRegisterSlots(saved_count *
+                                            (kDoubleSize / kPointerSize));
+  }
+
+  CPURegList saves = CPURegList(CPURegister::kRegister, kXRegSizeInBits,
+                                descriptor->CalleeSavedRegisters());
+  saved_count = saves.Count();
+  if (saved_count != 0) {
+    frame->AllocateSavedCalleeRegisterSlots(saved_count);
+  }
 }
 
-void CodeGenerator::AssemblePrologue() {
+void CodeGenerator::AssembleConstructFrame() {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (descriptor->UseNativeStack()) {
     __ AssertCspAligned();
   }
 
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
   if (frame_access_state()->has_frame()) {
     if (descriptor->IsJSFunctionCall()) {
       DCHECK(!descriptor->UseNativeStack());
@@ -1527,7 +1628,7 @@
       if (descriptor->IsCFunctionCall()) {
         __ Push(lr, fp);
         __ Mov(fp, masm_.StackPointer());
-        __ Claim(stack_shrink_slots);
+        __ Claim(frame()->GetSpillSlotCount());
       } else {
         __ StubPrologue(info()->GetOutputStackFrameType(),
                         frame()->GetTotalFrameSlotCount());
@@ -1535,6 +1636,8 @@
     }
   }
 
+  int shrink_slots = frame()->GetSpillSlotCount();
+
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -1545,11 +1648,11 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
+    shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
   }
 
   if (descriptor->IsJSFunctionCall()) {
-    __ Claim(stack_shrink_slots);
+    __ Claim(shrink_slots);
   }
 
   // Save FP registers.
@@ -1559,8 +1662,6 @@
   if (saved_count != 0) {
     DCHECK(saves_fp.list() == CPURegList::GetCalleeSavedFP().list());
     __ PushCPURegList(saves_fp);
-    frame()->AllocateSavedCalleeRegisterSlots(saved_count *
-                                              (kDoubleSize / kPointerSize));
   }
   // Save registers.
   // TODO(palfia): TF save list is not in sync with
@@ -1571,7 +1672,6 @@
   saved_count = saves.Count();
   if (saved_count != 0) {
     __ PushCPURegList(saves);
-    frame()->AllocateSavedCalleeRegisterSlots(saved_count);
   }
 }
 
@@ -1668,11 +1768,11 @@
         __ Str(dst, g.ToMemOperand(destination, masm()));
       }
     } else if (src.type() == Constant::kFloat32) {
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         FPRegister dst = g.ToDoubleRegister(destination).S();
         __ Fmov(dst, src.ToFloat32());
       } else {
-        DCHECK(destination->IsDoubleStackSlot());
+        DCHECK(destination->IsFPStackSlot());
         UseScratchRegisterScope scope(masm());
         FPRegister temp = scope.AcquireS();
         __ Fmov(temp, src.ToFloat32());
@@ -1680,30 +1780,30 @@
       }
     } else {
       DCHECK_EQ(Constant::kFloat64, src.type());
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         FPRegister dst = g.ToDoubleRegister(destination);
         __ Fmov(dst, src.ToFloat64());
       } else {
-        DCHECK(destination->IsDoubleStackSlot());
+        DCHECK(destination->IsFPStackSlot());
         UseScratchRegisterScope scope(masm());
         FPRegister temp = scope.AcquireD();
         __ Fmov(temp, src.ToFloat64());
         __ Str(temp, g.ToMemOperand(destination, masm()));
       }
     }
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     FPRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       FPRegister dst = g.ToDoubleRegister(destination);
       __ Fmov(dst, src);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       __ Str(src, g.ToMemOperand(destination, masm()));
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source, masm());
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       __ Ldr(g.ToDoubleRegister(destination), src);
     } else {
       UseScratchRegisterScope scope(masm());
@@ -1739,7 +1839,7 @@
       __ Ldr(src, dst);
       __ Str(temp, dst);
     }
-  } else if (source->IsStackSlot() || source->IsDoubleStackSlot()) {
+  } else if (source->IsStackSlot() || source->IsFPStackSlot()) {
     UseScratchRegisterScope scope(masm());
     DoubleRegister temp_0 = scope.AcquireD();
     DoubleRegister temp_1 = scope.AcquireD();
@@ -1749,17 +1849,17 @@
     __ Ldr(temp_1, dst);
     __ Str(temp_0, dst);
     __ Str(temp_1, src);
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     UseScratchRegisterScope scope(masm());
     FPRegister temp = scope.AcquireD();
     FPRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       FPRegister dst = g.ToDoubleRegister(destination);
       __ Fmov(temp, src);
       __ Fmov(src, dst);
       __ Fmov(dst, temp);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       MemOperand dst = g.ToMemOperand(destination, masm());
       __ Fmov(temp, src);
       __ Ldr(src, dst);
@@ -1778,9 +1878,6 @@
 }
 
 
-void CodeGenerator::AddNopForSmiCodeInlining() { __ movz(xzr, 0); }
-
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/arm64/instruction-scheduler-arm64.cc b/src/compiler/arm64/instruction-scheduler-arm64.cc
index ca37299..4320d56 100644
--- a/src/compiler/arm64/instruction-scheduler-arm64.cc
+++ b/src/compiler/arm64/instruction-scheduler-arm64.cc
@@ -176,23 +176,46 @@
   // Basic latency modeling for arm64 instructions. They have been determined
   // in an empirical way.
   switch (instr->arch_opcode()) {
-    case kArm64Float32ToFloat64:
-    case kArm64Float64ToFloat32:
-    case kArm64Float64ToInt32:
-    case kArm64Float64ToUint32:
-    case kArm64Int32ToFloat64:
-    case kArm64Uint32ToFloat64:
-      return 3;
+    case kArm64Add:
+    case kArm64Add32:
+    case kArm64And:
+    case kArm64And32:
+    case kArm64Bic:
+    case kArm64Bic32:
+    case kArm64Cmn:
+    case kArm64Cmn32:
+    case kArm64Cmp:
+    case kArm64Cmp32:
+    case kArm64Eon:
+    case kArm64Eon32:
+    case kArm64Eor:
+    case kArm64Eor32:
+    case kArm64Not:
+    case kArm64Not32:
+    case kArm64Or:
+    case kArm64Or32:
+    case kArm64Orn:
+    case kArm64Orn32:
+    case kArm64Sub:
+    case kArm64Sub32:
+    case kArm64Tst:
+    case kArm64Tst32:
+      if (instr->addressing_mode() != kMode_None) {
+        return 3;
+      } else {
+        return 1;
+      }
 
-    case kArm64Float64Add:
-    case kArm64Float64Sub:
-      return 2;
-
-    case kArm64Float64Mul:
-      return 3;
-
-    case kArm64Float64Div:
-      return 6;
+    case kArm64Clz:
+    case kArm64Clz32:
+    case kArm64Sbfx32:
+    case kArm64Sxtb32:
+    case kArm64Sxth32:
+    case kArm64Sxtw:
+    case kArm64Ubfiz32:
+    case kArm64Ubfx:
+    case kArm64Ubfx32:
+      return 1;
 
     case kArm64Lsl:
     case kArm64Lsl32:
@@ -202,7 +225,17 @@
     case kArm64Asr32:
     case kArm64Ror:
     case kArm64Ror32:
-      return 3;
+      return 1;
+
+    case kArm64Ldr:
+    case kArm64LdrD:
+    case kArm64LdrS:
+    case kArm64LdrW:
+    case kArm64Ldrb:
+    case kArm64Ldrh:
+    case kArm64Ldrsb:
+    case kArm64Ldrsh:
+      return 11;
 
     case kCheckedLoadInt8:
     case kCheckedLoadUint8:
@@ -212,18 +245,94 @@
     case kCheckedLoadWord64:
     case kCheckedLoadFloat32:
     case kCheckedLoadFloat64:
-    case kArm64LdrS:
-    case kArm64LdrD:
-    case kArm64Ldrb:
-    case kArm64Ldrsb:
-    case kArm64Ldrh:
-    case kArm64Ldrsh:
-    case kArm64LdrW:
-    case kArm64Ldr:
+      return 5;
+
+    case kArm64Str:
+    case kArm64StrD:
+    case kArm64StrS:
+    case kArm64StrW:
+    case kArm64Strb:
+    case kArm64Strh:
+      return 1;
+
+    case kCheckedStoreWord8:
+    case kCheckedStoreWord16:
+    case kCheckedStoreWord32:
+    case kCheckedStoreWord64:
+    case kCheckedStoreFloat32:
+    case kCheckedStoreFloat64:
+      return 1;
+
+    case kArm64Madd32:
+    case kArm64Mneg32:
+    case kArm64Msub32:
+    case kArm64Mul32:
+      return 3;
+
+    case kArm64Madd:
+    case kArm64Mneg:
+    case kArm64Msub:
+    case kArm64Mul:
+      return 5;
+
+    case kArm64Idiv32:
+    case kArm64Udiv32:
+      return 12;
+
+    case kArm64Idiv:
+    case kArm64Udiv:
+      return 20;
+
+    case kArm64Float32Add:
+    case kArm64Float32Sub:
+    case kArm64Float64Add:
+    case kArm64Float64Sub:
+      return 5;
+
+    case kArm64Float32Abs:
+    case kArm64Float32Cmp:
+    case kArm64Float64Abs:
+    case kArm64Float64Cmp:
+    case kArm64Float64Neg:
+      return 3;
+
+    case kArm64Float32Div:
+    case kArm64Float32Sqrt:
+      return 12;
+
+    case kArm64Float64Div:
+    case kArm64Float64Sqrt:
+      return 19;
+
+    case kArm64Float32RoundDown:
+    case kArm64Float32RoundTiesEven:
+    case kArm64Float32RoundTruncate:
+    case kArm64Float32RoundUp:
+    case kArm64Float64RoundDown:
+    case kArm64Float64RoundTiesAway:
+    case kArm64Float64RoundTiesEven:
+    case kArm64Float64RoundTruncate:
+    case kArm64Float64RoundUp:
+      return 5;
+
+    case kArm64Float32ToFloat64:
+    case kArm64Float64ToFloat32:
+    case kArm64Float64ToInt32:
+    case kArm64Float64ToUint32:
+    case kArm64Float32ToInt64:
+    case kArm64Float64ToInt64:
+    case kArm64Float32ToUint64:
+    case kArm64Float64ToUint64:
+    case kArm64Int32ToFloat64:
+    case kArm64Int64ToFloat32:
+    case kArm64Int64ToFloat64:
+    case kArm64Uint32ToFloat64:
+    case kArm64Uint64ToFloat32:
+    case kArm64Uint64ToFloat64:
       return 5;
 
     default:
-      return 1;
+      return 2;
   }
 }
 
diff --git a/src/compiler/arm64/instruction-selector-arm64.cc b/src/compiler/arm64/instruction-selector-arm64.cc
index d90deae..240a4f2 100644
--- a/src/compiler/arm64/instruction-selector-arm64.cc
+++ b/src/compiler/arm64/instruction-selector-arm64.cc
@@ -40,7 +40,9 @@
   // Use the zero register if the node has the immediate value zero, otherwise
   // assign a register.
   InstructionOperand UseRegisterOrImmediateZero(Node* node) {
-    if (IsIntegerConstant(node) && (GetIntegerConstantValue(node) == 0)) {
+    if ((IsIntegerConstant(node) && (GetIntegerConstantValue(node) == 0)) ||
+        (IsFloatConstant(node) &&
+         (bit_cast<int64_t>(GetFloatConstantValue(node)) == V8_INT64_C(0)))) {
       return UseImmediate(node);
     }
     return UseRegister(node);
@@ -68,6 +70,19 @@
     return OpParameter<int64_t>(node);
   }
 
+  bool IsFloatConstant(Node* node) {
+    return (node->opcode() == IrOpcode::kFloat32Constant) ||
+           (node->opcode() == IrOpcode::kFloat64Constant);
+  }
+
+  double GetFloatConstantValue(Node* node) {
+    if (node->opcode() == IrOpcode::kFloat32Constant) {
+      return OpParameter<float>(node);
+    }
+    DCHECK_EQ(IrOpcode::kFloat64Constant, node->opcode());
+    return OpParameter<double>(node);
+  }
+
   bool CanBeImmediate(Node* node, ImmediateMode mode) {
     return IsIntegerConstant(node) &&
            CanBeImmediate(GetIntegerConstantValue(node), mode);
@@ -106,6 +121,13 @@
     return false;
   }
 
+  bool CanBeLoadStoreShiftImmediate(Node* node, MachineRepresentation rep) {
+    // TODO(arm64): Load and Store on 128 bit Q registers is not supported yet.
+    DCHECK_NE(MachineRepresentation::kSimd128, rep);
+    return IsIntegerConstant(node) &&
+           (GetIntegerConstantValue(node) == ElementSizeLog2Of(rep));
+  }
+
  private:
   bool IsLoadStoreImmediate(int64_t value, LSDataSize size) {
     return Assembler::IsImmLSScaled(value, size) ||
@@ -211,6 +233,28 @@
   return false;
 }
 
+bool TryMatchLoadStoreShift(Arm64OperandGenerator* g,
+                            InstructionSelector* selector,
+                            MachineRepresentation rep, Node* node, Node* index,
+                            InstructionOperand* index_op,
+                            InstructionOperand* shift_immediate_op) {
+  if (!selector->CanCover(node, index)) return false;
+  if (index->InputCount() != 2) return false;
+  Node* left = index->InputAt(0);
+  Node* right = index->InputAt(1);
+  switch (index->opcode()) {
+    case IrOpcode::kWord32Shl:
+    case IrOpcode::kWord64Shl:
+      if (!g->CanBeLoadStoreShiftImmediate(right, rep)) {
+        return false;
+      }
+      *index_op = g->UseRegister(left);
+      *shift_immediate_op = g->UseImmediate(right);
+      return true;
+    default:
+      return false;
+  }
+}
 
 // Shared routine for multiple binary operations.
 template <typename Matcher>
@@ -344,12 +388,16 @@
 
 void InstructionSelector::VisitLoad(Node* node) {
   LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  MachineRepresentation rep = load_rep.representation();
   Arm64OperandGenerator g(this);
   Node* base = node->InputAt(0);
   Node* index = node->InputAt(1);
-  ArchOpcode opcode = kArchNop;
+  InstructionCode opcode = kArchNop;
   ImmediateMode immediate_mode = kNoImmediate;
-  switch (load_rep.representation()) {
+  InstructionOperand inputs[3];
+  size_t input_count = 0;
+  InstructionOperand outputs[1];
+  switch (rep) {
     case MachineRepresentation::kFloat32:
       opcode = kArm64LdrS;
       immediate_mode = kLoadStoreImm32;
@@ -381,13 +429,25 @@
       UNREACHABLE();
       return;
   }
+
+  outputs[0] = g.DefineAsRegister(node);
+  inputs[0] = g.UseRegister(base);
+
   if (g.CanBeImmediate(index, immediate_mode)) {
-    Emit(opcode | AddressingModeField::encode(kMode_MRI),
-         g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(index));
+    input_count = 2;
+    inputs[1] = g.UseImmediate(index);
+    opcode |= AddressingModeField::encode(kMode_MRI);
+  } else if (TryMatchLoadStoreShift(&g, this, rep, node, index, &inputs[1],
+                                    &inputs[2])) {
+    input_count = 3;
+    opcode |= AddressingModeField::encode(kMode_Operand2_R_LSL_I);
   } else {
-    Emit(opcode | AddressingModeField::encode(kMode_MRR),
-         g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(index));
+    input_count = 2;
+    inputs[1] = g.UseRegister(index);
+    opcode |= AddressingModeField::encode(kMode_MRR);
   }
+
+  Emit(opcode, arraysize(outputs), outputs, input_count, inputs);
 }
 
 
@@ -441,7 +501,9 @@
     code |= MiscField::encode(static_cast<int>(record_write_mode));
     Emit(code, 0, nullptr, input_count, inputs, temp_count, temps);
   } else {
-    ArchOpcode opcode = kArchNop;
+    InstructionOperand inputs[4];
+    size_t input_count = 0;
+    InstructionCode opcode = kArchNop;
     ImmediateMode immediate_mode = kNoImmediate;
     switch (rep) {
       case MachineRepresentation::kFloat32:
@@ -475,13 +537,25 @@
         UNREACHABLE();
         return;
     }
+
+    inputs[0] = g.UseRegisterOrImmediateZero(value);
+    inputs[1] = g.UseRegister(base);
+
     if (g.CanBeImmediate(index, immediate_mode)) {
-      Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(),
-           g.UseRegister(base), g.UseImmediate(index), g.UseRegister(value));
+      input_count = 3;
+      inputs[2] = g.UseImmediate(index);
+      opcode |= AddressingModeField::encode(kMode_MRI);
+    } else if (TryMatchLoadStoreShift(&g, this, rep, node, index, &inputs[2],
+                                      &inputs[3])) {
+      input_count = 4;
+      opcode |= AddressingModeField::encode(kMode_Operand2_R_LSL_I);
     } else {
-      Emit(opcode | AddressingModeField::encode(kMode_MRR), g.NoOutput(),
-           g.UseRegister(base), g.UseRegister(index), g.UseRegister(value));
+      input_count = 3;
+      inputs[2] = g.UseRegister(index);
+      opcode |= AddressingModeField::encode(kMode_MRR);
     }
+
+    Emit(opcode, 0, nullptr, input_count, inputs);
   }
 }
 
@@ -559,7 +633,8 @@
       return;
   }
   Emit(opcode, g.NoOutput(), g.UseRegister(buffer), g.UseRegister(offset),
-       g.UseOperand(length, kArithmeticImm), g.UseRegister(value));
+       g.UseOperand(length, kArithmeticImm),
+       g.UseRegisterOrImmediateZero(value));
 }
 
 
@@ -1396,6 +1471,20 @@
       Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
       return;
     }
+    case IrOpcode::kLoad: {
+      // As for the operations above, a 32-bit load will implicitly clear the
+      // top 32 bits of the destination register.
+      LoadRepresentation load_rep = LoadRepresentationOf(value->op());
+      switch (load_rep.representation()) {
+        case MachineRepresentation::kWord8:
+        case MachineRepresentation::kWord16:
+        case MachineRepresentation::kWord32:
+          Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
+          return;
+        default:
+          break;
+      }
+    }
     default:
       break;
   }
@@ -1407,15 +1496,12 @@
   VisitRR(this, kArm64Float64ToFloat32, node);
 }
 
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
+  VisitRR(this, kArchTruncateDoubleToI, node);
+}
 
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      return VisitRR(this, kArchTruncateDoubleToI, node);
-    case TruncationMode::kRoundToZero:
-      return VisitRR(this, kArm64Float64ToInt32, node);
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  VisitRR(this, kArm64Float64ToInt32, node);
 }
 
 
@@ -1491,6 +1577,9 @@
   VisitRRR(this, kArm64Float32Sub, node);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  VisitRRR(this, kArm64Float32Sub, node);
+}
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
   Arm64OperandGenerator g(this);
@@ -1515,6 +1604,9 @@
   VisitRRR(this, kArm64Float64Sub, node);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  VisitRRR(this, kArm64Float64Sub, node);
+}
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   VisitRRR(this, kArm64Float32Mul, node);
@@ -2246,6 +2338,61 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  Arm64OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  ArchOpcode opcode = kArchNop;
+  switch (load_rep.representation()) {
+    case MachineRepresentation::kWord8:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt8 : kAtomicLoadUint8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt16 : kAtomicLoadUint16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicLoadWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+  Emit(opcode | AddressingModeField::encode(kMode_MRR),
+       g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(index));
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  Arm64OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kAtomicStoreWord8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kAtomicStoreWord16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicStoreWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+
+  AddressingMode addressing_mode = kMode_MRR;
+  InstructionOperand inputs[3];
+  size_t input_count = 0;
+  inputs[input_count++] = g.UseUniqueRegister(base);
+  inputs[input_count++] = g.UseUniqueRegister(index);
+  inputs[input_count++] = g.UseUniqueRegister(value);
+  InstructionCode code = opcode | AddressingModeField::encode(addressing_mode);
+  Emit(code, 0, nullptr, input_count, inputs);
+}
 
 // static
 MachineOperatorBuilder::Flags
diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc
index 89bb619..da8b626 100644
--- a/src/compiler/ast-graph-builder.cc
+++ b/src/compiler/ast-graph-builder.cc
@@ -492,6 +492,12 @@
     // Contexts nested in the native context have a canonical empty function as
     // their closure, not the anonymous closure containing the global code.
     return BuildLoadNativeContextField(Context::CLOSURE_INDEX);
+  } else if (closure_scope->is_eval_scope()) {
+    // Contexts nested inside eval code have the same closure as the context
+    // calling eval, not the anonymous closure containing the eval code.
+    const Operator* op =
+        javascript()->LoadContext(0, Context::CLOSURE_INDEX, false);
+    return NewNode(op, current_context());
   } else {
     DCHECK(closure_scope->is_function_scope());
     return GetFunctionClosure();
@@ -568,7 +574,7 @@
   }
 
   // Build local context only if there are context allocated variables.
-  if (info()->num_heap_slots() > 0) {
+  if (scope->num_heap_slots() > 0) {
     // Push a new inner context scope for the current activation.
     Node* inner_context = BuildLocalActivationContext(GetFunctionContext());
     ContextScope top_context(this, scope, inner_context);
@@ -1083,17 +1089,14 @@
 void AstGraphBuilder::VisitVariableDeclaration(VariableDeclaration* decl) {
   Variable* variable = decl->proxy()->var();
   VariableMode mode = decl->mode();
-  bool hole_init = mode == CONST || mode == CONST_LEGACY || mode == LET;
+  bool hole_init = mode == CONST || mode == LET;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
-    case VariableLocation::UNALLOCATED: {
-      Handle<Oddball> value = variable->binding_needs_init()
-                                  ? isolate()->factory()->the_hole_value()
-                                  : isolate()->factory()->undefined_value();
+    case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals()->push_back(variable->name());
-      globals()->push_back(value);
+      globals()->push_back(isolate()->factory()->undefined_value());
       break;
-    }
     case VariableLocation::PARAMETER:
     case VariableLocation::LOCAL:
       if (hole_init) {
@@ -1108,8 +1111,22 @@
         NewNode(op, current_context(), value);
       }
       break;
-    case VariableLocation::LOOKUP:
-      UNIMPLEMENTED();
+    case VariableLocation::LOOKUP: {
+      Node* name = jsgraph()->Constant(variable->name());
+      // For variables we must not push an initial value (such as 'undefined')
+      // because we may have a (legal) redeclaration and we must not destroy
+      // the current value.
+      Node* value =
+          hole_init ? jsgraph()->TheHoleConstant()
+                    : jsgraph()->ZeroConstant();  // Indicates no initial value.
+      Node* attr =
+          jsgraph()->Constant(variable->DeclarationPropertyAttributes());
+      const Operator* op =
+          javascript()->CallRuntime(Runtime::kDeclareLookupSlot);
+      Node* store = NewNode(op, name, value, attr);
+      PrepareFrameState(store, decl->proxy()->id());
+      break;
+    }
   }
 }
 
@@ -1141,8 +1158,18 @@
       NewNode(op, current_context(), value);
       break;
     }
-    case VariableLocation::LOOKUP:
-      UNIMPLEMENTED();
+    case VariableLocation::LOOKUP: {
+      VisitForValue(decl->fun());
+      Node* value = environment()->Pop();
+      Node* name = jsgraph()->Constant(variable->name());
+      Node* attr =
+          jsgraph()->Constant(variable->DeclarationPropertyAttributes());
+      const Operator* op =
+          javascript()->CallRuntime(Runtime::kDeclareLookupSlot);
+      Node* store = NewNode(op, name, value, attr);
+      PrepareFrameState(store, decl->proxy()->id());
+      break;
+    }
   }
 }
 
@@ -1398,10 +1425,10 @@
         VisitIterationBody(stmt, &for_loop);
       }
       test_value.End();
-      index = environment()->Peek(0);
       for_loop.EndBody();
 
       // Increment counter and continue.
+      index = environment()->Peek(0);
       index = NewNode(javascript()->ForInStep(), index);
       environment()->Poke(0, index);
     }
@@ -1640,12 +1667,11 @@
     }
   }
 
-  // Set both the prototype and constructor to have fast properties.
+  // Set the constructor to have fast properties.
   prototype = environment()->Pop();
   literal = environment()->Pop();
-  const Operator* op =
-      javascript()->CallRuntime(Runtime::kFinalizeClassDefinition);
-  literal = NewNode(op, literal, prototype);
+  const Operator* op = javascript()->CallRuntime(Runtime::kToFastProperties);
+  literal = NewNode(op, literal);
 
   // Assign to class variable.
   if (expr->class_variable_proxy() != nullptr) {
@@ -2225,7 +2251,7 @@
 
 
 void AstGraphBuilder::VisitYield(Yield* expr) {
-  // TODO(turbofan): Implement yield here.
+  // Generator functions are supported only by going through Ignition first.
   SetStackOverflow();
   ast_context()->ProduceValue(jsgraph()->UndefinedConstant());
 }
@@ -2456,11 +2482,13 @@
     // provide a fully resolved callee to patch into the environment.
     Node* function = GetFunctionClosure();
     Node* language = jsgraph()->Constant(language_mode());
-    Node* position = jsgraph()->Constant(current_scope()->start_position());
+    Node* eval_scope_position =
+        jsgraph()->Constant(current_scope()->start_position());
+    Node* eval_position = jsgraph()->Constant(expr->position());
     const Operator* op =
         javascript()->CallRuntime(Runtime::kResolvePossiblyDirectEval);
-    Node* new_callee =
-        NewNode(op, callee, source, function, language, position);
+    Node* new_callee = NewNode(op, callee, source, function, language,
+                               eval_scope_position, eval_position);
     PrepareFrameState(new_callee, expr->EvalId(),
                       OutputFrameStateCombine::PokeAt(arg_count + 1));
 
@@ -2873,7 +2901,6 @@
       op = javascript()->GreaterThanOrEqual();
       break;
     case Token::INSTANCEOF:
-      DCHECK(!FLAG_harmony_instanceof);
       op = javascript()->InstanceOf();
       break;
     case Token::IN:
@@ -2939,9 +2966,7 @@
   Handle<FixedArray> data = isolate()->factory()->NewFixedArray(
       static_cast<int>(globals()->size()), TENURED);
   for (Handle<Object> obj : *globals()) data->set(array_index++, *obj);
-  int encoded_flags = DeclareGlobalsEvalFlag::encode(info()->is_eval()) |
-                      DeclareGlobalsNativeFlag::encode(info()->is_native()) |
-                      DeclareGlobalsLanguageMode::encode(language_mode());
+  int encoded_flags = info()->GetDeclareGlobalsFlags();
   Node* flags = jsgraph()->Constant(encoded_flags);
   Node* pairs = jsgraph()->Constant(data);
   const Operator* op = javascript()->CallRuntime(Runtime::kDeclareGlobals);
@@ -3183,7 +3208,7 @@
 
 
 Node* AstGraphBuilder::BuildLocalFunctionContext(Scope* scope) {
-  DCHECK(scope->is_function_scope());
+  DCHECK(scope->is_function_scope() || scope->is_eval_scope());
 
   // Allocate a new local context.
   int slot_count = scope->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
@@ -3291,16 +3316,6 @@
 }
 
 
-Node* AstGraphBuilder::BuildHoleCheckSilent(Node* value, Node* for_hole,
-                                            Node* not_hole) {
-  Node* the_hole = jsgraph()->TheHoleConstant();
-  Node* check = NewNode(javascript()->StrictEqual(), value, the_hole);
-  return NewNode(
-      common()->Select(MachineRepresentation::kTagged, BranchHint::kFalse),
-      check, for_hole, not_hole);
-}
-
-
 Node* AstGraphBuilder::BuildHoleCheckThenThrow(Node* value, Variable* variable,
                                                Node* not_hole,
                                                BailoutId bailout_id) {
@@ -3374,15 +3389,7 @@
     case VariableLocation::LOCAL: {
       // Local var, const, or let variable.
       Node* value = environment()->Lookup(variable);
-      if (mode == CONST_LEGACY) {
-        // Perform check for uninitialized legacy const variables.
-        if (value->op() == the_hole->op()) {
-          value = jsgraph()->UndefinedConstant();
-        } else if (value->opcode() == IrOpcode::kPhi) {
-          Node* undefined = jsgraph()->UndefinedConstant();
-          value = BuildHoleCheckSilent(value, undefined, value);
-        }
-      } else if (mode == LET || mode == CONST) {
+      if (mode == LET || mode == CONST) {
         // Perform check for uninitialized let/const variables.
         if (value->op() == the_hole->op()) {
           value = BuildThrowReferenceError(variable, bailout_id);
@@ -3402,11 +3409,7 @@
       // TODO(titzer): initialization checks are redundant for already
       // initialized immutable context loads, but only specialization knows.
       // Maybe specializer should be a parameter to the graph builder?
-      if (mode == CONST_LEGACY) {
-        // Perform check for uninitialized legacy const variables.
-        Node* undefined = jsgraph()->UndefinedConstant();
-        value = BuildHoleCheckSilent(value, undefined, value);
-      } else if (mode == LET || mode == CONST) {
+      if (mode == LET || mode == CONST) {
         // Perform check for uninitialized let/const variables.
         value = BuildHoleCheckThenThrow(value, variable, value, bailout_id);
       }
@@ -3483,13 +3486,7 @@
     case VariableLocation::PARAMETER:
     case VariableLocation::LOCAL:
       // Local var, const, or let variable.
-      if (mode == CONST_LEGACY && op == Token::INIT) {
-        // Perform an initialization check for legacy const variables.
-        Node* current = environment()->Lookup(variable);
-        if (current->op() != the_hole->op()) {
-          value = BuildHoleCheckSilent(current, value, current);
-        }
-      } else if (mode == CONST_LEGACY && op != Token::INIT) {
+      if (mode == CONST_LEGACY && op != Token::INIT) {
         // Non-initializing assignment to legacy const is
         // - exception in strict mode.
         // - ignored in sloppy mode.
@@ -3534,13 +3531,7 @@
     case VariableLocation::CONTEXT: {
       // Context variable (potentially up the context chain).
       int depth = current_scope()->ContextChainLength(variable->scope());
-      if (mode == CONST_LEGACY && op == Token::INIT) {
-        // Perform an initialization check for legacy const variables.
-        const Operator* op =
-            javascript()->LoadContext(depth, variable->index(), false);
-        Node* current = NewNode(op, current_context());
-        value = BuildHoleCheckSilent(current, value, current);
-      } else if (mode == CONST_LEGACY && op != Token::INIT) {
+      if (mode == CONST_LEGACY && op != Token::INIT) {
         // Non-initializing assignment to legacy const is
         // - exception in strict mode.
         // - ignored in sloppy mode.
@@ -3578,8 +3569,6 @@
     case VariableLocation::LOOKUP: {
       // Dynamic lookup of context variable (anywhere in the chain).
       Handle<Name> name = variable->name();
-      // TODO(mstarzinger): Use Runtime::kInitializeLegacyConstLookupSlot for
-      // initializations of const declarations.
       Node* store = BuildDynamicStore(name, value);
       PrepareFrameState(store, bailout_id, combine);
       return store;
diff --git a/src/compiler/ast-graph-builder.h b/src/compiler/ast-graph-builder.h
index e206db0..1d0fc90 100644
--- a/src/compiler/ast-graph-builder.h
+++ b/src/compiler/ast-graph-builder.h
@@ -15,7 +15,7 @@
 
 // Forward declarations.
 class BitVector;
-
+class CompilationInfo;
 
 namespace compiler {
 
@@ -341,7 +341,6 @@
   Node* BuildThrowUnsupportedSuperError(BailoutId bailout_id);
 
   // Builders for dynamic hole-checks at runtime.
-  Node* BuildHoleCheckSilent(Node* value, Node* for_hole, Node* not_hole);
   Node* BuildHoleCheckThenThrow(Node* value, Variable* var, Node* not_hole,
                                 BailoutId bailout_id);
   Node* BuildHoleCheckElseThrow(Node* value, Variable* var, Node* for_hole,
diff --git a/src/compiler/ast-loop-assignment-analyzer.cc b/src/compiler/ast-loop-assignment-analyzer.cc
index ac96399..334c597 100644
--- a/src/compiler/ast-loop-assignment-analyzer.cc
+++ b/src/compiler/ast-loop-assignment-analyzer.cc
@@ -265,8 +265,9 @@
 void ALAA::VisitForOfStatement(ForOfStatement* loop) {
   Visit(loop->assign_iterator());
   Enter(loop);
+  Visit(loop->next_result());
+  Visit(loop->result_done());
   Visit(loop->assign_each());
-  Visit(loop->subject());
   Visit(loop->body());
   Exit(loop);
 }
diff --git a/src/compiler/ast-loop-assignment-analyzer.h b/src/compiler/ast-loop-assignment-analyzer.h
index 1696911..a4a4609 100644
--- a/src/compiler/ast-loop-assignment-analyzer.h
+++ b/src/compiler/ast-loop-assignment-analyzer.h
@@ -12,8 +12,9 @@
 namespace v8 {
 namespace internal {
 
-class Variable;
+class CompilationInfo;
 class Scope;
+class Variable;
 
 namespace compiler {
 
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc
index 2249cbc..22299de 100644
--- a/src/compiler/bytecode-graph-builder.cc
+++ b/src/compiler/bytecode-graph-builder.cc
@@ -882,7 +882,9 @@
   Handle<FixedArray> constant_properties = Handle<FixedArray>::cast(
       bytecode_iterator().GetConstantForIndexOperand(0));
   int literal_index = bytecode_iterator().GetIndexOperand(1);
-  int literal_flags = bytecode_iterator().GetFlagOperand(2);
+  int bytecode_flags = bytecode_iterator().GetFlagOperand(2);
+  int literal_flags =
+      interpreter::CreateObjectLiteralFlags::FlagsBits::decode(bytecode_flags);
   // TODO(mstarzinger): Thread through number of properties.
   int number_of_properties = constant_properties->length() / 2;
   const Operator* op = javascript()->CreateLiteralObject(
@@ -1121,9 +1123,11 @@
 
 void BytecodeGraphBuilder::VisitInc() {
   FrameStateBeforeAndAfter states(this);
-  const Operator* js_op = javascript()->Add(BinaryOperationHints::Any());
+  // Note: Use subtract -1 here instead of add 1 to ensure we always convert to
+  // a number, not a string.
+  const Operator* js_op = javascript()->Subtract(BinaryOperationHints::Any());
   Node* node = NewNode(js_op, environment()->LookupAccumulator(),
-                       jsgraph()->OneConstant());
+                       jsgraph()->Constant(-1.0));
   environment()->BindAccumulator(node, &states);
 }
 
@@ -1136,6 +1140,13 @@
 }
 
 void BytecodeGraphBuilder::VisitLogicalNot() {
+  Node* value = environment()->LookupAccumulator();
+  Node* node = NewNode(common()->Select(MachineRepresentation::kTagged), value,
+                       jsgraph()->FalseConstant(), jsgraph()->TrueConstant());
+  environment()->BindAccumulator(node);
+}
+
+void BytecodeGraphBuilder::VisitToBooleanLogicalNot() {
   Node* value = NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
                         environment()->LookupAccumulator());
   Node* node = NewNode(common()->Select(MachineRepresentation::kTagged), value,
@@ -1209,7 +1220,6 @@
 }
 
 void BytecodeGraphBuilder::VisitTestInstanceOf() {
-  DCHECK(!FLAG_harmony_instanceof);
   BuildCompareOp(javascript()->InstanceOf());
 }
 
@@ -1362,6 +1372,48 @@
   environment()->BindAccumulator(index, &states);
 }
 
+void BytecodeGraphBuilder::VisitSuspendGenerator() {
+  Node* state = environment()->LookupAccumulator();
+  Node* generator = environment()->LookupRegister(
+      bytecode_iterator().GetRegisterOperand(0));
+
+  for (int i = 0; i < environment()->register_count(); ++i) {
+    Node* value = environment()->LookupRegister(interpreter::Register(i));
+    NewNode(javascript()->CallRuntime(Runtime::kGeneratorStoreRegister),
+        generator, jsgraph()->Constant(i), value);
+  }
+
+  NewNode(javascript()->CallRuntime(Runtime::kGeneratorSetContext), generator);
+  NewNode(javascript()->CallRuntime(Runtime::kGeneratorSetContinuation),
+      generator, state);
+}
+
+void BytecodeGraphBuilder::VisitResumeGenerator() {
+  FrameStateBeforeAndAfter states(this);
+
+  Node* generator = environment()->LookupRegister(
+      bytecode_iterator().GetRegisterOperand(0));
+  Node* state = NewNode(javascript()->CallRuntime(
+      Runtime::kGeneratorGetContinuation), generator);
+
+  // Bijection between registers and array indices must match that used in
+  // InterpreterAssembler::ExportRegisterFile.
+  for (int i = 0; i < environment()->register_count(); ++i) {
+    Node* value = NewNode(
+        javascript()->CallRuntime(Runtime::kGeneratorLoadRegister),
+        generator, jsgraph()->Constant(i));
+    environment()->BindRegister(interpreter::Register(i), value);
+
+    NewNode(javascript()->CallRuntime(Runtime::kGeneratorStoreRegister),
+        generator, jsgraph()->Constant(i), jsgraph()->StaleRegisterConstant());
+  }
+
+  NewNode(javascript()->CallRuntime(Runtime::kGeneratorSetContinuation),
+      generator, jsgraph()->Constant(JSGeneratorObject::kGeneratorExecuting));
+
+  environment()->BindAccumulator(state, &states);
+}
+
 void BytecodeGraphBuilder::VisitWide() {
   // Consumed by the BytecodeArrayIterator.
   UNREACHABLE();
@@ -1373,10 +1425,12 @@
 }
 
 void BytecodeGraphBuilder::VisitIllegal() {
-  // Never present in valid bytecode.
+  // Not emitted in valid bytecode.
   UNREACHABLE();
 }
 
+void BytecodeGraphBuilder::VisitNop() {}
+
 void BytecodeGraphBuilder::SwitchToMergeEnvironment(int current_offset) {
   if (merge_environments_[current_offset] != nullptr) {
     if (environment() != nullptr) {
diff --git a/src/compiler/change-lowering.cc b/src/compiler/change-lowering.cc
deleted file mode 100644
index 907b36a..0000000
--- a/src/compiler/change-lowering.cc
+++ /dev/null
@@ -1,713 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "src/compiler/change-lowering.h"
-
-#include "src/address-map.h"
-#include "src/code-factory.h"
-#include "src/compiler/js-graph.h"
-#include "src/compiler/linkage.h"
-#include "src/compiler/machine-operator.h"
-#include "src/compiler/node-properties.h"
-#include "src/compiler/operator-properties.h"
-#include "src/compiler/simplified-operator.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-ChangeLowering::~ChangeLowering() {}
-
-
-Reduction ChangeLowering::Reduce(Node* node) {
-  Node* control = graph()->start();
-  switch (node->opcode()) {
-    case IrOpcode::kChangeBitToBool:
-      return ChangeBitToBool(node->InputAt(0), control);
-    case IrOpcode::kChangeBoolToBit:
-      return ChangeBoolToBit(node->InputAt(0));
-    case IrOpcode::kChangeFloat64ToTagged:
-      return ChangeFloat64ToTagged(node->InputAt(0), control);
-    case IrOpcode::kChangeInt32ToTagged:
-      return ChangeInt32ToTagged(node->InputAt(0), control);
-    case IrOpcode::kChangeTaggedToFloat64:
-      return ChangeTaggedToFloat64(node->InputAt(0), control);
-    case IrOpcode::kChangeTaggedToInt32:
-      return ChangeTaggedToUI32(node->InputAt(0), control, kSigned);
-    case IrOpcode::kChangeTaggedToUint32:
-      return ChangeTaggedToUI32(node->InputAt(0), control, kUnsigned);
-    case IrOpcode::kChangeUint32ToTagged:
-      return ChangeUint32ToTagged(node->InputAt(0), control);
-    case IrOpcode::kLoadField:
-      return LoadField(node);
-    case IrOpcode::kStoreField:
-      return StoreField(node);
-    case IrOpcode::kLoadElement:
-      return LoadElement(node);
-    case IrOpcode::kStoreElement:
-      return StoreElement(node);
-    case IrOpcode::kAllocate:
-      return Allocate(node);
-    case IrOpcode::kObjectIsReceiver:
-      return ObjectIsReceiver(node);
-    case IrOpcode::kObjectIsSmi:
-      return ObjectIsSmi(node);
-    case IrOpcode::kObjectIsNumber:
-      return ObjectIsNumber(node);
-    case IrOpcode::kObjectIsUndetectable:
-      return ObjectIsUndetectable(node);
-    default:
-      return NoChange();
-  }
-  UNREACHABLE();
-  return NoChange();
-}
-
-
-Node* ChangeLowering::HeapNumberValueIndexConstant() {
-  return jsgraph()->IntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag);
-}
-
-
-Node* ChangeLowering::SmiMaxValueConstant() {
-  return jsgraph()->Int32Constant(Smi::kMaxValue);
-}
-
-
-Node* ChangeLowering::SmiShiftBitsConstant() {
-  return jsgraph()->IntPtrConstant(kSmiShiftSize + kSmiTagSize);
-}
-
-
-Node* ChangeLowering::AllocateHeapNumberWithValue(Node* value, Node* control) {
-  // The AllocateHeapNumberStub does not use the context, so we can safely pass
-  // in Smi zero here.
-  Callable callable = CodeFactory::AllocateHeapNumber(isolate());
-  Node* target = jsgraph()->HeapConstant(callable.code());
-  Node* context = jsgraph()->NoContextConstant();
-  Node* effect = graph()->NewNode(common()->BeginRegion(), graph()->start());
-  if (!allocate_heap_number_operator_.is_set()) {
-    CallDescriptor* descriptor = Linkage::GetStubCallDescriptor(
-        isolate(), jsgraph()->zone(), callable.descriptor(), 0,
-        CallDescriptor::kNoFlags, Operator::kNoThrow);
-    allocate_heap_number_operator_.set(common()->Call(descriptor));
-  }
-  Node* heap_number = graph()->NewNode(allocate_heap_number_operator_.get(),
-                                       target, context, effect, control);
-  Node* store = graph()->NewNode(
-      machine()->Store(StoreRepresentation(MachineRepresentation::kFloat64,
-                                           kNoWriteBarrier)),
-      heap_number, HeapNumberValueIndexConstant(), value, heap_number, control);
-  return graph()->NewNode(common()->FinishRegion(), heap_number, store);
-}
-
-
-Node* ChangeLowering::ChangeInt32ToFloat64(Node* value) {
-  return graph()->NewNode(machine()->ChangeInt32ToFloat64(), value);
-}
-
-
-Node* ChangeLowering::ChangeInt32ToSmi(Node* value) {
-  if (machine()->Is64()) {
-    value = graph()->NewNode(machine()->ChangeInt32ToInt64(), value);
-  }
-  return graph()->NewNode(machine()->WordShl(), value, SmiShiftBitsConstant());
-}
-
-
-Node* ChangeLowering::ChangeSmiToFloat64(Node* value) {
-  return ChangeInt32ToFloat64(ChangeSmiToInt32(value));
-}
-
-
-Node* ChangeLowering::ChangeSmiToInt32(Node* value) {
-  value = graph()->NewNode(machine()->WordSar(), value, SmiShiftBitsConstant());
-  if (machine()->Is64()) {
-    value = graph()->NewNode(machine()->TruncateInt64ToInt32(), value);
-  }
-  return value;
-}
-
-
-Node* ChangeLowering::ChangeUint32ToFloat64(Node* value) {
-  return graph()->NewNode(machine()->ChangeUint32ToFloat64(), value);
-}
-
-
-Node* ChangeLowering::ChangeUint32ToSmi(Node* value) {
-  if (machine()->Is64()) {
-    value = graph()->NewNode(machine()->ChangeUint32ToUint64(), value);
-  }
-  return graph()->NewNode(machine()->WordShl(), value, SmiShiftBitsConstant());
-}
-
-
-Node* ChangeLowering::LoadHeapNumberValue(Node* value, Node* control) {
-  return graph()->NewNode(machine()->Load(MachineType::Float64()), value,
-                          HeapNumberValueIndexConstant(), graph()->start(),
-                          control);
-}
-
-
-Node* ChangeLowering::TestNotSmi(Node* value) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagMask == 1);
-  return graph()->NewNode(machine()->WordAnd(), value,
-                          jsgraph()->IntPtrConstant(kSmiTagMask));
-}
-
-
-Reduction ChangeLowering::ChangeBitToBool(Node* value, Node* control) {
-  return Replace(
-      graph()->NewNode(common()->Select(MachineRepresentation::kTagged), value,
-                       jsgraph()->TrueConstant(), jsgraph()->FalseConstant()));
-}
-
-
-Reduction ChangeLowering::ChangeBoolToBit(Node* value) {
-  return Replace(graph()->NewNode(machine()->WordEqual(), value,
-                                  jsgraph()->TrueConstant()));
-}
-
-
-Reduction ChangeLowering::ChangeFloat64ToTagged(Node* value, Node* control) {
-  Type* const value_type = NodeProperties::GetType(value);
-  Node* const value32 = graph()->NewNode(
-      machine()->TruncateFloat64ToInt32(TruncationMode::kRoundToZero), value);
-  // TODO(bmeurer): This fast case must be disabled until we kill the asm.js
-  // support in the generic JavaScript pipeline, because LoadBuffer is lying
-  // about its result.
-  // if (value_type->Is(Type::Signed32())) {
-  //   return ChangeInt32ToTagged(value32, control);
-  // }
-  Node* check_same = graph()->NewNode(
-      machine()->Float64Equal(), value,
-      graph()->NewNode(machine()->ChangeInt32ToFloat64(), value32));
-  Node* branch_same = graph()->NewNode(common()->Branch(), check_same, control);
-
-  Node* if_smi = graph()->NewNode(common()->IfTrue(), branch_same);
-  Node* vsmi;
-  Node* if_box = graph()->NewNode(common()->IfFalse(), branch_same);
-  Node* vbox;
-
-  // We only need to check for -0 if the {value} can potentially contain -0.
-  if (value_type->Maybe(Type::MinusZero())) {
-    Node* check_zero = graph()->NewNode(machine()->Word32Equal(), value32,
-                                        jsgraph()->Int32Constant(0));
-    Node* branch_zero = graph()->NewNode(common()->Branch(BranchHint::kFalse),
-                                         check_zero, if_smi);
-
-    Node* if_zero = graph()->NewNode(common()->IfTrue(), branch_zero);
-    Node* if_notzero = graph()->NewNode(common()->IfFalse(), branch_zero);
-
-    // In case of 0, we need to check the high bits for the IEEE -0 pattern.
-    Node* check_negative = graph()->NewNode(
-        machine()->Int32LessThan(),
-        graph()->NewNode(machine()->Float64ExtractHighWord32(), value),
-        jsgraph()->Int32Constant(0));
-    Node* branch_negative = graph()->NewNode(
-        common()->Branch(BranchHint::kFalse), check_negative, if_zero);
-
-    Node* if_negative = graph()->NewNode(common()->IfTrue(), branch_negative);
-    Node* if_notnegative =
-        graph()->NewNode(common()->IfFalse(), branch_negative);
-
-    // We need to create a box for negative 0.
-    if_smi = graph()->NewNode(common()->Merge(2), if_notzero, if_notnegative);
-    if_box = graph()->NewNode(common()->Merge(2), if_box, if_negative);
-  }
-
-  // On 64-bit machines we can just wrap the 32-bit integer in a smi, for 32-bit
-  // machines we need to deal with potential overflow and fallback to boxing.
-  if (machine()->Is64() || value_type->Is(Type::SignedSmall())) {
-    vsmi = ChangeInt32ToSmi(value32);
-  } else {
-    Node* smi_tag =
-        graph()->NewNode(machine()->Int32AddWithOverflow(), value32, value32);
-
-    Node* check_ovf = graph()->NewNode(common()->Projection(1), smi_tag);
-    Node* branch_ovf = graph()->NewNode(common()->Branch(BranchHint::kFalse),
-                                        check_ovf, if_smi);
-
-    Node* if_ovf = graph()->NewNode(common()->IfTrue(), branch_ovf);
-    if_box = graph()->NewNode(common()->Merge(2), if_ovf, if_box);
-
-    if_smi = graph()->NewNode(common()->IfFalse(), branch_ovf);
-    vsmi = graph()->NewNode(common()->Projection(0), smi_tag);
-  }
-
-  // Allocate the box for the {value}.
-  vbox = AllocateHeapNumberWithValue(value, if_box);
-
-  control = graph()->NewNode(common()->Merge(2), if_smi, if_box);
-  value = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
-                           vsmi, vbox, control);
-  return Replace(value);
-}
-
-
-Reduction ChangeLowering::ChangeInt32ToTagged(Node* value, Node* control) {
-  if (machine()->Is64() ||
-      NodeProperties::GetType(value)->Is(Type::SignedSmall())) {
-    return Replace(ChangeInt32ToSmi(value));
-  }
-
-  Node* add = graph()->NewNode(machine()->Int32AddWithOverflow(), value, value);
-
-  Node* ovf = graph()->NewNode(common()->Projection(1), add);
-  Node* branch =
-      graph()->NewNode(common()->Branch(BranchHint::kFalse), ovf, control);
-
-  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
-  Node* vtrue =
-      AllocateHeapNumberWithValue(ChangeInt32ToFloat64(value), if_true);
-
-  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
-  Node* vfalse = graph()->NewNode(common()->Projection(0), add);
-
-  Node* merge = graph()->NewNode(common()->Merge(2), if_true, if_false);
-  Node* phi = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
-                               vtrue, vfalse, merge);
-
-  return Replace(phi);
-}
-
-
-Reduction ChangeLowering::ChangeTaggedToUI32(Node* value, Node* control,
-                                             Signedness signedness) {
-  if (NodeProperties::GetType(value)->Is(Type::TaggedSigned())) {
-    return Replace(ChangeSmiToInt32(value));
-  }
-
-  const Operator* op = (signedness == kSigned)
-                           ? machine()->ChangeFloat64ToInt32()
-                           : machine()->ChangeFloat64ToUint32();
-
-  if (NodeProperties::GetType(value)->Is(Type::TaggedPointer())) {
-    return Replace(graph()->NewNode(op, LoadHeapNumberValue(value, control)));
-  }
-
-  Node* check = TestNotSmi(value);
-  Node* branch =
-      graph()->NewNode(common()->Branch(BranchHint::kFalse), check, control);
-
-  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
-  Node* vtrue = graph()->NewNode(op, LoadHeapNumberValue(value, if_true));
-
-  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
-  Node* vfalse = ChangeSmiToInt32(value);
-
-  Node* merge = graph()->NewNode(common()->Merge(2), if_true, if_false);
-  Node* phi = graph()->NewNode(common()->Phi(MachineRepresentation::kWord32, 2),
-                               vtrue, vfalse, merge);
-
-  return Replace(phi);
-}
-
-
-namespace {
-
-bool CanCover(Node* value, IrOpcode::Value opcode) {
-  if (value->opcode() != opcode) return false;
-  bool first = true;
-  for (Edge const edge : value->use_edges()) {
-    if (NodeProperties::IsControlEdge(edge)) continue;
-    if (NodeProperties::IsEffectEdge(edge)) continue;
-    DCHECK(NodeProperties::IsValueEdge(edge));
-    if (!first) return false;
-    first = false;
-  }
-  return true;
-}
-
-}  // namespace
-
-
-Reduction ChangeLowering::ChangeTaggedToFloat64(Node* value, Node* control) {
-  if (CanCover(value, IrOpcode::kJSToNumber)) {
-    // ChangeTaggedToFloat64(JSToNumber(x)) =>
-    //   if IsSmi(x) then ChangeSmiToFloat64(x)
-    //   else let y = JSToNumber(x) in
-    //     if IsSmi(y) then ChangeSmiToFloat64(y)
-    //     else LoadHeapNumberValue(y)
-    Node* const object = NodeProperties::GetValueInput(value, 0);
-    Node* const context = NodeProperties::GetContextInput(value);
-    Node* const frame_state = NodeProperties::GetFrameStateInput(value, 0);
-    Node* const effect = NodeProperties::GetEffectInput(value);
-    Node* const control = NodeProperties::GetControlInput(value);
-
-    const Operator* merge_op = common()->Merge(2);
-    const Operator* ephi_op = common()->EffectPhi(2);
-    const Operator* phi_op = common()->Phi(MachineRepresentation::kFloat64, 2);
-
-    Node* check1 = TestNotSmi(object);
-    Node* branch1 =
-        graph()->NewNode(common()->Branch(BranchHint::kFalse), check1, control);
-
-    Node* if_true1 = graph()->NewNode(common()->IfTrue(), branch1);
-    Node* vtrue1 = graph()->NewNode(value->op(), object, context, frame_state,
-                                    effect, if_true1);
-    Node* etrue1 = vtrue1;
-
-    Node* check2 = TestNotSmi(vtrue1);
-    Node* branch2 = graph()->NewNode(common()->Branch(), check2, if_true1);
-
-    Node* if_true2 = graph()->NewNode(common()->IfTrue(), branch2);
-    Node* vtrue2 = LoadHeapNumberValue(vtrue1, if_true2);
-
-    Node* if_false2 = graph()->NewNode(common()->IfFalse(), branch2);
-    Node* vfalse2 = ChangeSmiToFloat64(vtrue1);
-
-    if_true1 = graph()->NewNode(merge_op, if_true2, if_false2);
-    vtrue1 = graph()->NewNode(phi_op, vtrue2, vfalse2, if_true1);
-
-    Node* if_false1 = graph()->NewNode(common()->IfFalse(), branch1);
-    Node* vfalse1 = ChangeSmiToFloat64(object);
-    Node* efalse1 = effect;
-
-    Node* merge1 = graph()->NewNode(merge_op, if_true1, if_false1);
-    Node* ephi1 = graph()->NewNode(ephi_op, etrue1, efalse1, merge1);
-    Node* phi1 = graph()->NewNode(phi_op, vtrue1, vfalse1, merge1);
-
-    // Wire the new diamond into the graph, {JSToNumber} can still throw.
-    NodeProperties::ReplaceUses(value, phi1, ephi1, etrue1, etrue1);
-
-    // TODO(mstarzinger): This iteration cuts out the IfSuccess projection from
-    // the node and places it inside the diamond. Come up with a helper method!
-    for (Node* use : etrue1->uses()) {
-      if (use->opcode() == IrOpcode::kIfSuccess) {
-        use->ReplaceUses(merge1);
-        NodeProperties::ReplaceControlInput(branch2, use);
-      }
-    }
-
-    return Replace(phi1);
-  }
-
-  Node* check = TestNotSmi(value);
-  Node* branch =
-      graph()->NewNode(common()->Branch(BranchHint::kFalse), check, control);
-
-  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
-  Node* vtrue = LoadHeapNumberValue(value, if_true);
-
-  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
-  Node* vfalse = ChangeSmiToFloat64(value);
-
-  Node* merge = graph()->NewNode(common()->Merge(2), if_true, if_false);
-  Node* phi = graph()->NewNode(
-      common()->Phi(MachineRepresentation::kFloat64, 2), vtrue, vfalse, merge);
-
-  return Replace(phi);
-}
-
-
-Reduction ChangeLowering::ChangeUint32ToTagged(Node* value, Node* control) {
-  if (NodeProperties::GetType(value)->Is(Type::UnsignedSmall())) {
-    return Replace(ChangeUint32ToSmi(value));
-  }
-
-  Node* check = graph()->NewNode(machine()->Uint32LessThanOrEqual(), value,
-                                 SmiMaxValueConstant());
-  Node* branch =
-      graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
-
-  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
-  Node* vtrue = ChangeUint32ToSmi(value);
-
-  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
-  Node* vfalse =
-      AllocateHeapNumberWithValue(ChangeUint32ToFloat64(value), if_false);
-
-  Node* merge = graph()->NewNode(common()->Merge(2), if_true, if_false);
-  Node* phi = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
-                               vtrue, vfalse, merge);
-
-  return Replace(phi);
-}
-
-
-namespace {
-
-WriteBarrierKind ComputeWriteBarrierKind(BaseTaggedness base_is_tagged,
-                                         MachineRepresentation representation,
-                                         Type* field_type, Type* input_type) {
-  if (field_type->Is(Type::TaggedSigned()) ||
-      input_type->Is(Type::TaggedSigned())) {
-    // Write barriers are only for writes of heap objects.
-    return kNoWriteBarrier;
-  }
-  if (input_type->Is(Type::BooleanOrNullOrUndefined())) {
-    // Write barriers are not necessary when storing true, false, null or
-    // undefined, because these special oddballs are always in the root set.
-    return kNoWriteBarrier;
-  }
-  if (base_is_tagged == kTaggedBase &&
-      representation == MachineRepresentation::kTagged) {
-    if (input_type->IsConstant() &&
-        input_type->AsConstant()->Value()->IsHeapObject()) {
-      Handle<HeapObject> input =
-          Handle<HeapObject>::cast(input_type->AsConstant()->Value());
-      if (input->IsMap()) {
-        // Write barriers for storing maps are cheaper.
-        return kMapWriteBarrier;
-      }
-      Isolate* const isolate = input->GetIsolate();
-      RootIndexMap root_index_map(isolate);
-      int root_index = root_index_map.Lookup(*input);
-      if (root_index != RootIndexMap::kInvalidRootIndex &&
-          isolate->heap()->RootIsImmortalImmovable(root_index)) {
-        // Write barriers are unnecessary for immortal immovable roots.
-        return kNoWriteBarrier;
-      }
-    }
-    if (field_type->Is(Type::TaggedPointer()) ||
-        input_type->Is(Type::TaggedPointer())) {
-      // Write barriers for heap objects don't need a Smi check.
-      return kPointerWriteBarrier;
-    }
-    // Write barriers are only for writes into heap objects (i.e. tagged base).
-    return kFullWriteBarrier;
-  }
-  return kNoWriteBarrier;
-}
-
-
-WriteBarrierKind ComputeWriteBarrierKind(BaseTaggedness base_is_tagged,
-                                         MachineRepresentation representation,
-                                         int field_offset, Type* field_type,
-                                         Type* input_type) {
-  if (base_is_tagged == kTaggedBase && field_offset == HeapObject::kMapOffset) {
-    // Write barriers for storing maps are cheaper.
-    return kMapWriteBarrier;
-  }
-  return ComputeWriteBarrierKind(base_is_tagged, representation, field_type,
-                                 input_type);
-}
-
-}  // namespace
-
-
-Reduction ChangeLowering::LoadField(Node* node) {
-  const FieldAccess& access = FieldAccessOf(node->op());
-  Node* offset = jsgraph()->IntPtrConstant(access.offset - access.tag());
-  node->InsertInput(graph()->zone(), 1, offset);
-  NodeProperties::ChangeOp(node, machine()->Load(access.machine_type));
-  return Changed(node);
-}
-
-
-Reduction ChangeLowering::StoreField(Node* node) {
-  const FieldAccess& access = FieldAccessOf(node->op());
-  Type* type = NodeProperties::GetType(node->InputAt(1));
-  WriteBarrierKind kind = ComputeWriteBarrierKind(
-      access.base_is_tagged, access.machine_type.representation(),
-      access.offset, access.type, type);
-  Node* offset = jsgraph()->IntPtrConstant(access.offset - access.tag());
-  node->InsertInput(graph()->zone(), 1, offset);
-  NodeProperties::ChangeOp(node,
-                           machine()->Store(StoreRepresentation(
-                               access.machine_type.representation(), kind)));
-  return Changed(node);
-}
-
-
-Node* ChangeLowering::ComputeIndex(const ElementAccess& access,
-                                   Node* const key) {
-  Node* index = key;
-  const int element_size_shift =
-      ElementSizeLog2Of(access.machine_type.representation());
-  if (element_size_shift) {
-    index = graph()->NewNode(machine()->Word32Shl(), index,
-                             jsgraph()->Int32Constant(element_size_shift));
-  }
-  const int fixed_offset = access.header_size - access.tag();
-  if (fixed_offset) {
-    index = graph()->NewNode(machine()->Int32Add(), index,
-                             jsgraph()->Int32Constant(fixed_offset));
-  }
-  if (machine()->Is64()) {
-    // TODO(turbofan): This is probably only correct for typed arrays, and only
-    // if the typed arrays are at most 2GiB in size, which happens to match
-    // exactly our current situation.
-    index = graph()->NewNode(machine()->ChangeUint32ToUint64(), index);
-  }
-  return index;
-}
-
-
-Reduction ChangeLowering::LoadElement(Node* node) {
-  const ElementAccess& access = ElementAccessOf(node->op());
-  node->ReplaceInput(1, ComputeIndex(access, node->InputAt(1)));
-  NodeProperties::ChangeOp(node, machine()->Load(access.machine_type));
-  return Changed(node);
-}
-
-
-Reduction ChangeLowering::StoreElement(Node* node) {
-  const ElementAccess& access = ElementAccessOf(node->op());
-  Type* type = NodeProperties::GetType(node->InputAt(2));
-  node->ReplaceInput(1, ComputeIndex(access, node->InputAt(1)));
-  NodeProperties::ChangeOp(
-      node, machine()->Store(StoreRepresentation(
-                access.machine_type.representation(),
-                ComputeWriteBarrierKind(access.base_is_tagged,
-                                        access.machine_type.representation(),
-                                        access.type, type))));
-  return Changed(node);
-}
-
-
-Reduction ChangeLowering::Allocate(Node* node) {
-  PretenureFlag pretenure = OpParameter<PretenureFlag>(node->op());
-  if (pretenure == NOT_TENURED) {
-    Callable callable = CodeFactory::AllocateInNewSpace(isolate());
-    Node* target = jsgraph()->HeapConstant(callable.code());
-    CallDescriptor* descriptor = Linkage::GetStubCallDescriptor(
-        isolate(), jsgraph()->zone(), callable.descriptor(), 0,
-        CallDescriptor::kNoFlags, Operator::kNoThrow);
-    const Operator* op = common()->Call(descriptor);
-    node->InsertInput(graph()->zone(), 0, target);
-    node->InsertInput(graph()->zone(), 2, jsgraph()->NoContextConstant());
-    NodeProperties::ChangeOp(node, op);
-  } else {
-    DCHECK_EQ(TENURED, pretenure);
-    AllocationSpace space = OLD_SPACE;
-    Runtime::FunctionId f = Runtime::kAllocateInTargetSpace;
-    Operator::Properties props = node->op()->properties();
-    CallDescriptor* desc = Linkage::GetRuntimeCallDescriptor(
-        jsgraph()->zone(), f, 2, props, CallDescriptor::kNeedsFrameState);
-    ExternalReference ref(f, jsgraph()->isolate());
-    int32_t flags = AllocateTargetSpace::encode(space);
-    node->InsertInput(graph()->zone(), 0, jsgraph()->CEntryStubConstant(1));
-    node->InsertInput(graph()->zone(), 2, jsgraph()->SmiConstant(flags));
-    node->InsertInput(graph()->zone(), 3, jsgraph()->ExternalConstant(ref));
-    node->InsertInput(graph()->zone(), 4, jsgraph()->Int32Constant(2));
-    node->InsertInput(graph()->zone(), 5, jsgraph()->NoContextConstant());
-    NodeProperties::ChangeOp(node, common()->Call(desc));
-  }
-  return Changed(node);
-}
-
-Node* ChangeLowering::IsSmi(Node* value) {
-  return graph()->NewNode(
-      machine()->WordEqual(),
-      graph()->NewNode(machine()->WordAnd(), value,
-                       jsgraph()->IntPtrConstant(kSmiTagMask)),
-      jsgraph()->IntPtrConstant(kSmiTag));
-}
-
-Node* ChangeLowering::LoadHeapObjectMap(Node* object, Node* control) {
-  return graph()->NewNode(
-      machine()->Load(MachineType::AnyTagged()), object,
-      jsgraph()->IntPtrConstant(HeapObject::kMapOffset - kHeapObjectTag),
-      graph()->start(), control);
-}
-
-Node* ChangeLowering::LoadMapBitField(Node* map) {
-  return graph()->NewNode(
-      machine()->Load(MachineType::Uint8()), map,
-      jsgraph()->IntPtrConstant(Map::kBitFieldOffset - kHeapObjectTag),
-      graph()->start(), graph()->start());
-}
-
-Node* ChangeLowering::LoadMapInstanceType(Node* map) {
-  return graph()->NewNode(
-      machine()->Load(MachineType::Uint8()), map,
-      jsgraph()->IntPtrConstant(Map::kInstanceTypeOffset - kHeapObjectTag),
-      graph()->start(), graph()->start());
-}
-
-Reduction ChangeLowering::ObjectIsNumber(Node* node) {
-  Node* input = NodeProperties::GetValueInput(node, 0);
-  // TODO(bmeurer): Optimize somewhat based on input type.
-  Node* check = IsSmi(input);
-  Node* branch = graph()->NewNode(common()->Branch(), check, graph()->start());
-  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
-  Node* vtrue = jsgraph()->Int32Constant(1);
-  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
-  Node* vfalse = graph()->NewNode(
-      machine()->WordEqual(), LoadHeapObjectMap(input, if_false),
-      jsgraph()->HeapConstant(isolate()->factory()->heap_number_map()));
-  Node* control = graph()->NewNode(common()->Merge(2), if_true, if_false);
-  node->ReplaceInput(0, vtrue);
-  node->AppendInput(graph()->zone(), vfalse);
-  node->AppendInput(graph()->zone(), control);
-  NodeProperties::ChangeOp(node, common()->Phi(MachineRepresentation::kBit, 2));
-  return Changed(node);
-}
-
-Reduction ChangeLowering::ObjectIsReceiver(Node* node) {
-  Node* input = NodeProperties::GetValueInput(node, 0);
-  // TODO(bmeurer): Optimize somewhat based on input type.
-  STATIC_ASSERT(LAST_TYPE == LAST_JS_RECEIVER_TYPE);
-  Node* check = IsSmi(input);
-  Node* branch = graph()->NewNode(common()->Branch(), check, graph()->start());
-  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
-  Node* vtrue = jsgraph()->Int32Constant(0);
-  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
-  Node* vfalse =
-      graph()->NewNode(machine()->Uint32LessThanOrEqual(),
-                       jsgraph()->Uint32Constant(FIRST_JS_RECEIVER_TYPE),
-                       LoadMapInstanceType(LoadHeapObjectMap(input, if_false)));
-  Node* control = graph()->NewNode(common()->Merge(2), if_true, if_false);
-  node->ReplaceInput(0, vtrue);
-  node->AppendInput(graph()->zone(), vfalse);
-  node->AppendInput(graph()->zone(), control);
-  NodeProperties::ChangeOp(node, common()->Phi(MachineRepresentation::kBit, 2));
-  return Changed(node);
-}
-
-Reduction ChangeLowering::ObjectIsUndetectable(Node* node) {
-  Node* input = NodeProperties::GetValueInput(node, 0);
-  // TODO(bmeurer): Optimize somewhat based on input type.
-  Node* check = IsSmi(input);
-  Node* branch = graph()->NewNode(common()->Branch(), check, graph()->start());
-  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
-  Node* vtrue = jsgraph()->Int32Constant(0);
-  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
-  Node* vfalse = graph()->NewNode(
-      machine()->Word32Equal(),
-      graph()->NewNode(
-          machine()->Word32Equal(),
-          graph()->NewNode(machine()->Word32And(),
-                           jsgraph()->Uint32Constant(1 << Map::kIsUndetectable),
-                           LoadMapBitField(LoadHeapObjectMap(input, if_false))),
-          jsgraph()->Int32Constant(0)),
-      jsgraph()->Int32Constant(0));
-  Node* control = graph()->NewNode(common()->Merge(2), if_true, if_false);
-  node->ReplaceInput(0, vtrue);
-  node->AppendInput(graph()->zone(), vfalse);
-  node->AppendInput(graph()->zone(), control);
-  NodeProperties::ChangeOp(node, common()->Phi(MachineRepresentation::kBit, 2));
-  return Changed(node);
-}
-
-Reduction ChangeLowering::ObjectIsSmi(Node* node) {
-  node->ReplaceInput(0,
-                     graph()->NewNode(machine()->WordAnd(), node->InputAt(0),
-                                      jsgraph()->IntPtrConstant(kSmiTagMask)));
-  node->AppendInput(graph()->zone(), jsgraph()->IntPtrConstant(kSmiTag));
-  NodeProperties::ChangeOp(node, machine()->WordEqual());
-  return Changed(node);
-}
-
-Isolate* ChangeLowering::isolate() const { return jsgraph()->isolate(); }
-
-
-Graph* ChangeLowering::graph() const { return jsgraph()->graph(); }
-
-
-CommonOperatorBuilder* ChangeLowering::common() const {
-  return jsgraph()->common();
-}
-
-
-MachineOperatorBuilder* ChangeLowering::machine() const {
-  return jsgraph()->machine();
-}
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
diff --git a/src/compiler/change-lowering.h b/src/compiler/change-lowering.h
deleted file mode 100644
index 7e5078b..0000000
--- a/src/compiler/change-lowering.h
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_COMPILER_CHANGE_LOWERING_H_
-#define V8_COMPILER_CHANGE_LOWERING_H_
-
-#include "src/compiler/graph-reducer.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-// Forward declarations.
-class CommonOperatorBuilder;
-struct ElementAccess;
-class JSGraph;
-class Linkage;
-class MachineOperatorBuilder;
-class Operator;
-
-class ChangeLowering final : public Reducer {
- public:
-  explicit ChangeLowering(JSGraph* jsgraph) : jsgraph_(jsgraph) {}
-  ~ChangeLowering() final;
-
-  Reduction Reduce(Node* node) final;
-
- private:
-  Node* HeapNumberValueIndexConstant();
-  Node* SmiMaxValueConstant();
-  Node* SmiShiftBitsConstant();
-
-  Node* AllocateHeapNumberWithValue(Node* value, Node* control);
-  Node* ChangeInt32ToFloat64(Node* value);
-  Node* ChangeInt32ToSmi(Node* value);
-  Node* ChangeSmiToFloat64(Node* value);
-  Node* ChangeSmiToInt32(Node* value);
-  Node* ChangeUint32ToFloat64(Node* value);
-  Node* ChangeUint32ToSmi(Node* value);
-  Node* LoadHeapNumberValue(Node* value, Node* control);
-  Node* TestNotSmi(Node* value);
-
-  Reduction ChangeBitToBool(Node* value, Node* control);
-  Reduction ChangeBoolToBit(Node* value);
-  Reduction ChangeFloat64ToTagged(Node* value, Node* control);
-  Reduction ChangeInt32ToTagged(Node* value, Node* control);
-  Reduction ChangeTaggedToFloat64(Node* value, Node* control);
-  Reduction ChangeTaggedToUI32(Node* value, Node* control,
-                               Signedness signedness);
-  Reduction ChangeUint32ToTagged(Node* value, Node* control);
-
-  Reduction LoadField(Node* node);
-  Reduction StoreField(Node* node);
-  Reduction LoadElement(Node* node);
-  Reduction StoreElement(Node* node);
-  Reduction Allocate(Node* node);
-
-  Node* IsSmi(Node* value);
-  Node* LoadHeapObjectMap(Node* object, Node* control);
-  Node* LoadMapBitField(Node* map);
-  Node* LoadMapInstanceType(Node* map);
-
-  Reduction ObjectIsNumber(Node* node);
-  Reduction ObjectIsReceiver(Node* node);
-  Reduction ObjectIsSmi(Node* node);
-  Reduction ObjectIsUndetectable(Node* node);
-
-  Node* ComputeIndex(const ElementAccess& access, Node* const key);
-  Graph* graph() const;
-  Isolate* isolate() const;
-  JSGraph* jsgraph() const { return jsgraph_; }
-  CommonOperatorBuilder* common() const;
-  MachineOperatorBuilder* machine() const;
-
-  JSGraph* const jsgraph_;
-  SetOncePointer<const Operator> allocate_heap_number_operator_;
-};
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
-
-#endif  // V8_COMPILER_CHANGE_LOWERING_H_
diff --git a/src/compiler/code-assembler.cc b/src/compiler/code-assembler.cc
new file mode 100644
index 0000000..081f28b
--- /dev/null
+++ b/src/compiler/code-assembler.cc
@@ -0,0 +1,737 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/compiler/code-assembler.h"
+
+#include <ostream>
+
+#include "src/code-factory.h"
+#include "src/compiler/graph.h"
+#include "src/compiler/instruction-selector.h"
+#include "src/compiler/linkage.h"
+#include "src/compiler/node-matchers.h"
+#include "src/compiler/pipeline.h"
+#include "src/compiler/raw-machine-assembler.h"
+#include "src/compiler/schedule.h"
+#include "src/frames.h"
+#include "src/interface-descriptors.h"
+#include "src/interpreter/bytecodes.h"
+#include "src/machine-type.h"
+#include "src/macro-assembler.h"
+#include "src/zone.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+CodeAssembler::CodeAssembler(Isolate* isolate, Zone* zone,
+                             const CallInterfaceDescriptor& descriptor,
+                             Code::Flags flags, const char* name,
+                             size_t result_size)
+    : CodeAssembler(
+          isolate, zone,
+          Linkage::GetStubCallDescriptor(
+              isolate, zone, descriptor, descriptor.GetStackParameterCount(),
+              CallDescriptor::kNoFlags, Operator::kNoProperties,
+              MachineType::AnyTagged(), result_size),
+          flags, name) {}
+
+CodeAssembler::CodeAssembler(Isolate* isolate, Zone* zone, int parameter_count,
+                             Code::Flags flags, const char* name)
+    : CodeAssembler(isolate, zone,
+                    Linkage::GetJSCallDescriptor(zone, false, parameter_count,
+                                                 CallDescriptor::kNoFlags),
+                    flags, name) {}
+
+CodeAssembler::CodeAssembler(Isolate* isolate, Zone* zone,
+                             CallDescriptor* call_descriptor, Code::Flags flags,
+                             const char* name)
+    : raw_assembler_(new RawMachineAssembler(
+          isolate, new (zone) Graph(zone), call_descriptor,
+          MachineType::PointerRepresentation(),
+          InstructionSelector::SupportedMachineOperatorFlags())),
+      flags_(flags),
+      name_(name),
+      code_generated_(false),
+      variables_(zone) {}
+
+CodeAssembler::~CodeAssembler() {}
+
+void CodeAssembler::CallPrologue() {}
+
+void CodeAssembler::CallEpilogue() {}
+
+Handle<Code> CodeAssembler::GenerateCode() {
+  DCHECK(!code_generated_);
+
+  Schedule* schedule = raw_assembler_->Export();
+  Handle<Code> code = Pipeline::GenerateCodeForCodeStub(
+      isolate(), raw_assembler_->call_descriptor(), graph(), schedule, flags_,
+      name_);
+
+  code_generated_ = true;
+  return code;
+}
+
+bool CodeAssembler::Is64() const { return raw_assembler_->machine()->Is64(); }
+
+bool CodeAssembler::IsFloat64RoundUpSupported() const {
+  return raw_assembler_->machine()->Float64RoundUp().IsSupported();
+}
+
+bool CodeAssembler::IsFloat64RoundDownSupported() const {
+  return raw_assembler_->machine()->Float64RoundDown().IsSupported();
+}
+
+bool CodeAssembler::IsFloat64RoundTruncateSupported() const {
+  return raw_assembler_->machine()->Float64RoundTruncate().IsSupported();
+}
+
+Node* CodeAssembler::Int32Constant(int32_t value) {
+  return raw_assembler_->Int32Constant(value);
+}
+
+Node* CodeAssembler::Int64Constant(int64_t value) {
+  return raw_assembler_->Int64Constant(value);
+}
+
+Node* CodeAssembler::IntPtrConstant(intptr_t value) {
+  return raw_assembler_->IntPtrConstant(value);
+}
+
+Node* CodeAssembler::NumberConstant(double value) {
+  return raw_assembler_->NumberConstant(value);
+}
+
+Node* CodeAssembler::SmiConstant(Smi* value) {
+  return IntPtrConstant(bit_cast<intptr_t>(value));
+}
+
+Node* CodeAssembler::HeapConstant(Handle<HeapObject> object) {
+  return raw_assembler_->HeapConstant(object);
+}
+
+Node* CodeAssembler::BooleanConstant(bool value) {
+  return raw_assembler_->BooleanConstant(value);
+}
+
+Node* CodeAssembler::ExternalConstant(ExternalReference address) {
+  return raw_assembler_->ExternalConstant(address);
+}
+
+Node* CodeAssembler::Float64Constant(double value) {
+  return raw_assembler_->Float64Constant(value);
+}
+
+Node* CodeAssembler::NaNConstant() {
+  return LoadRoot(Heap::kNanValueRootIndex);
+}
+
+bool CodeAssembler::ToInt32Constant(Node* node, int32_t& out_value) {
+  Int64Matcher m(node);
+  if (m.HasValue() &&
+      m.IsInRange(std::numeric_limits<int32_t>::min(),
+                  std::numeric_limits<int32_t>::max())) {
+    out_value = static_cast<int32_t>(m.Value());
+    return true;
+  }
+
+  return false;
+}
+
+bool CodeAssembler::ToInt64Constant(Node* node, int64_t& out_value) {
+  Int64Matcher m(node);
+  if (m.HasValue()) out_value = m.Value();
+  return m.HasValue();
+}
+
+bool CodeAssembler::ToIntPtrConstant(Node* node, intptr_t& out_value) {
+  IntPtrMatcher m(node);
+  if (m.HasValue()) out_value = m.Value();
+  return m.HasValue();
+}
+
+Node* CodeAssembler::Parameter(int value) {
+  return raw_assembler_->Parameter(value);
+}
+
+void CodeAssembler::Return(Node* value) {
+  return raw_assembler_->Return(value);
+}
+
+void CodeAssembler::Bind(CodeAssembler::Label* label) { return label->Bind(); }
+
+Node* CodeAssembler::LoadFramePointer() {
+  return raw_assembler_->LoadFramePointer();
+}
+
+Node* CodeAssembler::LoadParentFramePointer() {
+  return raw_assembler_->LoadParentFramePointer();
+}
+
+Node* CodeAssembler::LoadStackPointer() {
+  return raw_assembler_->LoadStackPointer();
+}
+
+Node* CodeAssembler::SmiShiftBitsConstant() {
+  return IntPtrConstant(kSmiShiftSize + kSmiTagSize);
+}
+
+#define DEFINE_CODE_ASSEMBLER_BINARY_OP(name)   \
+  Node* CodeAssembler::name(Node* a, Node* b) { \
+    return raw_assembler_->name(a, b);          \
+  }
+CODE_ASSEMBLER_BINARY_OP_LIST(DEFINE_CODE_ASSEMBLER_BINARY_OP)
+#undef DEFINE_CODE_ASSEMBLER_BINARY_OP
+
+Node* CodeAssembler::WordShl(Node* value, int shift) {
+  return raw_assembler_->WordShl(value, IntPtrConstant(shift));
+}
+
+Node* CodeAssembler::WordShr(Node* value, int shift) {
+  return raw_assembler_->WordShr(value, IntPtrConstant(shift));
+}
+
+Node* CodeAssembler::ChangeUint32ToWord(Node* value) {
+  if (raw_assembler_->machine()->Is64()) {
+    value = raw_assembler_->ChangeUint32ToUint64(value);
+  }
+  return value;
+}
+
+Node* CodeAssembler::ChangeInt32ToIntPtr(Node* value) {
+  if (raw_assembler_->machine()->Is64()) {
+    value = raw_assembler_->ChangeInt32ToInt64(value);
+  }
+  return value;
+}
+
+#define DEFINE_CODE_ASSEMBLER_UNARY_OP(name) \
+  Node* CodeAssembler::name(Node* a) { return raw_assembler_->name(a); }
+CODE_ASSEMBLER_UNARY_OP_LIST(DEFINE_CODE_ASSEMBLER_UNARY_OP)
+#undef DEFINE_CODE_ASSEMBLER_UNARY_OP
+
+Node* CodeAssembler::Load(MachineType rep, Node* base) {
+  return raw_assembler_->Load(rep, base);
+}
+
+Node* CodeAssembler::Load(MachineType rep, Node* base, Node* index) {
+  return raw_assembler_->Load(rep, base, index);
+}
+
+Node* CodeAssembler::AtomicLoad(MachineType rep, Node* base, Node* index) {
+  return raw_assembler_->AtomicLoad(rep, base, index);
+}
+
+Node* CodeAssembler::LoadRoot(Heap::RootListIndex root_index) {
+  if (isolate()->heap()->RootCanBeTreatedAsConstant(root_index)) {
+    Handle<Object> root = isolate()->heap()->root_handle(root_index);
+    if (root->IsSmi()) {
+      return SmiConstant(Smi::cast(*root));
+    } else {
+      return HeapConstant(Handle<HeapObject>::cast(root));
+    }
+  }
+
+  Node* roots_array_start =
+      ExternalConstant(ExternalReference::roots_array_start(isolate()));
+  return Load(MachineType::AnyTagged(), roots_array_start,
+              IntPtrConstant(root_index * kPointerSize));
+}
+
+Node* CodeAssembler::Store(MachineRepresentation rep, Node* base, Node* value) {
+  return raw_assembler_->Store(rep, base, value, kFullWriteBarrier);
+}
+
+Node* CodeAssembler::Store(MachineRepresentation rep, Node* base, Node* index,
+                           Node* value) {
+  return raw_assembler_->Store(rep, base, index, value, kFullWriteBarrier);
+}
+
+Node* CodeAssembler::StoreNoWriteBarrier(MachineRepresentation rep, Node* base,
+                                         Node* value) {
+  return raw_assembler_->Store(rep, base, value, kNoWriteBarrier);
+}
+
+Node* CodeAssembler::StoreNoWriteBarrier(MachineRepresentation rep, Node* base,
+                                         Node* index, Node* value) {
+  return raw_assembler_->Store(rep, base, index, value, kNoWriteBarrier);
+}
+
+Node* CodeAssembler::AtomicStore(MachineRepresentation rep, Node* base,
+                                 Node* index, Node* value) {
+  return raw_assembler_->AtomicStore(rep, base, index, value);
+}
+
+Node* CodeAssembler::StoreRoot(Heap::RootListIndex root_index, Node* value) {
+  DCHECK(Heap::RootCanBeWrittenAfterInitialization(root_index));
+  Node* roots_array_start =
+      ExternalConstant(ExternalReference::roots_array_start(isolate()));
+  return StoreNoWriteBarrier(MachineRepresentation::kTagged, roots_array_start,
+                             IntPtrConstant(root_index * kPointerSize), value);
+}
+
+Node* CodeAssembler::Projection(int index, Node* value) {
+  return raw_assembler_->Projection(index, value);
+}
+
+void CodeAssembler::BranchIf(Node* condition, Label* if_true, Label* if_false) {
+  Label if_condition_is_true(this), if_condition_is_false(this);
+  Branch(condition, &if_condition_is_true, &if_condition_is_false);
+  Bind(&if_condition_is_true);
+  Goto(if_true);
+  Bind(&if_condition_is_false);
+  Goto(if_false);
+}
+
+Node* CodeAssembler::CallN(CallDescriptor* descriptor, Node* code_target,
+                           Node** args) {
+  CallPrologue();
+  Node* return_value = raw_assembler_->CallN(descriptor, code_target, args);
+  CallEpilogue();
+  return return_value;
+}
+
+Node* CodeAssembler::TailCallN(CallDescriptor* descriptor, Node* code_target,
+                               Node** args) {
+  return raw_assembler_->TailCallN(descriptor, code_target, args);
+}
+
+Node* CodeAssembler::CallRuntime(Runtime::FunctionId function_id,
+                                 Node* context) {
+  CallPrologue();
+  Node* return_value = raw_assembler_->CallRuntime0(function_id, context);
+  CallEpilogue();
+  return return_value;
+}
+
+Node* CodeAssembler::CallRuntime(Runtime::FunctionId function_id, Node* context,
+                                 Node* arg1) {
+  CallPrologue();
+  Node* return_value = raw_assembler_->CallRuntime1(function_id, arg1, context);
+  CallEpilogue();
+  return return_value;
+}
+
+Node* CodeAssembler::CallRuntime(Runtime::FunctionId function_id, Node* context,
+                                 Node* arg1, Node* arg2) {
+  CallPrologue();
+  Node* return_value =
+      raw_assembler_->CallRuntime2(function_id, arg1, arg2, context);
+  CallEpilogue();
+  return return_value;
+}
+
+Node* CodeAssembler::CallRuntime(Runtime::FunctionId function_id, Node* context,
+                                 Node* arg1, Node* arg2, Node* arg3) {
+  CallPrologue();
+  Node* return_value =
+      raw_assembler_->CallRuntime3(function_id, arg1, arg2, arg3, context);
+  CallEpilogue();
+  return return_value;
+}
+
+Node* CodeAssembler::CallRuntime(Runtime::FunctionId function_id, Node* context,
+                                 Node* arg1, Node* arg2, Node* arg3,
+                                 Node* arg4) {
+  CallPrologue();
+  Node* return_value = raw_assembler_->CallRuntime4(function_id, arg1, arg2,
+                                                    arg3, arg4, context);
+  CallEpilogue();
+  return return_value;
+}
+
+Node* CodeAssembler::TailCallRuntime(Runtime::FunctionId function_id,
+                                     Node* context) {
+  return raw_assembler_->TailCallRuntime0(function_id, context);
+}
+
+Node* CodeAssembler::TailCallRuntime(Runtime::FunctionId function_id,
+                                     Node* context, Node* arg1) {
+  return raw_assembler_->TailCallRuntime1(function_id, arg1, context);
+}
+
+Node* CodeAssembler::TailCallRuntime(Runtime::FunctionId function_id,
+                                     Node* context, Node* arg1, Node* arg2) {
+  return raw_assembler_->TailCallRuntime2(function_id, arg1, arg2, context);
+}
+
+Node* CodeAssembler::TailCallRuntime(Runtime::FunctionId function_id,
+                                     Node* context, Node* arg1, Node* arg2,
+                                     Node* arg3) {
+  return raw_assembler_->TailCallRuntime3(function_id, arg1, arg2, arg3,
+                                          context);
+}
+
+Node* CodeAssembler::TailCallRuntime(Runtime::FunctionId function_id,
+                                     Node* context, Node* arg1, Node* arg2,
+                                     Node* arg3, Node* arg4) {
+  return raw_assembler_->TailCallRuntime4(function_id, arg1, arg2, arg3, arg4,
+                                          context);
+}
+
+Node* CodeAssembler::CallStub(Callable const& callable, Node* context,
+                              Node* arg1, size_t result_size) {
+  Node* target = HeapConstant(callable.code());
+  return CallStub(callable.descriptor(), target, context, arg1, result_size);
+}
+
+Node* CodeAssembler::CallStub(Callable const& callable, Node* context,
+                              Node* arg1, Node* arg2, size_t result_size) {
+  Node* target = HeapConstant(callable.code());
+  return CallStub(callable.descriptor(), target, context, arg1, arg2,
+                  result_size);
+}
+
+Node* CodeAssembler::CallStub(Callable const& callable, Node* context,
+                              Node* arg1, Node* arg2, Node* arg3,
+                              size_t result_size) {
+  Node* target = HeapConstant(callable.code());
+  return CallStub(callable.descriptor(), target, context, arg1, arg2, arg3,
+                  result_size);
+}
+
+Node* CodeAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
+                              Node* target, Node* context, Node* arg1,
+                              size_t result_size) {
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+
+  Node** args = zone()->NewArray<Node*>(2);
+  args[0] = arg1;
+  args[1] = context;
+
+  return CallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
+                              Node* target, Node* context, Node* arg1,
+                              Node* arg2, size_t result_size) {
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+
+  Node** args = zone()->NewArray<Node*>(3);
+  args[0] = arg1;
+  args[1] = arg2;
+  args[2] = context;
+
+  return CallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
+                              Node* target, Node* context, Node* arg1,
+                              Node* arg2, Node* arg3, size_t result_size) {
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+
+  Node** args = zone()->NewArray<Node*>(4);
+  args[0] = arg1;
+  args[1] = arg2;
+  args[2] = arg3;
+  args[3] = context;
+
+  return CallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
+                              Node* target, Node* context, Node* arg1,
+                              Node* arg2, Node* arg3, Node* arg4,
+                              size_t result_size) {
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+
+  Node** args = zone()->NewArray<Node*>(5);
+  args[0] = arg1;
+  args[1] = arg2;
+  args[2] = arg3;
+  args[3] = arg4;
+  args[4] = context;
+
+  return CallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
+                              Node* target, Node* context, Node* arg1,
+                              Node* arg2, Node* arg3, Node* arg4, Node* arg5,
+                              size_t result_size) {
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+
+  Node** args = zone()->NewArray<Node*>(6);
+  args[0] = arg1;
+  args[1] = arg2;
+  args[2] = arg3;
+  args[3] = arg4;
+  args[4] = arg5;
+  args[5] = context;
+
+  return CallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::TailCallStub(Callable const& callable, Node* context,
+                                  Node* arg1, Node* arg2, size_t result_size) {
+  Node* target = HeapConstant(callable.code());
+  return TailCallStub(callable.descriptor(), target, context, arg1, arg2,
+                      result_size);
+}
+
+Node* CodeAssembler::TailCallStub(Callable const& callable, Node* context,
+                                  Node* arg1, Node* arg2, Node* arg3,
+                                  size_t result_size) {
+  Node* target = HeapConstant(callable.code());
+  return TailCallStub(callable.descriptor(), target, context, arg1, arg2, arg3,
+                      result_size);
+}
+
+Node* CodeAssembler::TailCallStub(const CallInterfaceDescriptor& descriptor,
+                                  Node* target, Node* context, Node* arg1,
+                                  Node* arg2, size_t result_size) {
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
+      CallDescriptor::kSupportsTailCalls, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+
+  Node** args = zone()->NewArray<Node*>(3);
+  args[0] = arg1;
+  args[1] = arg2;
+  args[2] = context;
+
+  return raw_assembler_->TailCallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::TailCallStub(const CallInterfaceDescriptor& descriptor,
+                                  Node* target, Node* context, Node* arg1,
+                                  Node* arg2, Node* arg3, size_t result_size) {
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
+      CallDescriptor::kSupportsTailCalls, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+
+  Node** args = zone()->NewArray<Node*>(4);
+  args[0] = arg1;
+  args[1] = arg2;
+  args[2] = arg3;
+  args[3] = context;
+
+  return raw_assembler_->TailCallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::TailCallBytecodeDispatch(
+    const CallInterfaceDescriptor& interface_descriptor,
+    Node* code_target_address, Node** args) {
+  CallDescriptor* descriptor = Linkage::GetBytecodeDispatchCallDescriptor(
+      isolate(), zone(), interface_descriptor,
+      interface_descriptor.GetStackParameterCount());
+  return raw_assembler_->TailCallN(descriptor, code_target_address, args);
+}
+
+void CodeAssembler::Goto(CodeAssembler::Label* label) {
+  label->MergeVariables();
+  raw_assembler_->Goto(label->label_);
+}
+
+void CodeAssembler::GotoIf(Node* condition, Label* true_label) {
+  Label false_label(this);
+  Branch(condition, true_label, &false_label);
+  Bind(&false_label);
+}
+
+void CodeAssembler::GotoUnless(Node* condition, Label* false_label) {
+  Label true_label(this);
+  Branch(condition, &true_label, false_label);
+  Bind(&true_label);
+}
+
+void CodeAssembler::Branch(Node* condition, CodeAssembler::Label* true_label,
+                           CodeAssembler::Label* false_label) {
+  true_label->MergeVariables();
+  false_label->MergeVariables();
+  return raw_assembler_->Branch(condition, true_label->label_,
+                                false_label->label_);
+}
+
+void CodeAssembler::Switch(Node* index, Label* default_label,
+                           int32_t* case_values, Label** case_labels,
+                           size_t case_count) {
+  RawMachineLabel** labels =
+      new (zone()->New(sizeof(RawMachineLabel*) * case_count))
+          RawMachineLabel*[case_count];
+  for (size_t i = 0; i < case_count; ++i) {
+    labels[i] = case_labels[i]->label_;
+    case_labels[i]->MergeVariables();
+    default_label->MergeVariables();
+  }
+  return raw_assembler_->Switch(index, default_label->label_, case_values,
+                                labels, case_count);
+}
+
+// RawMachineAssembler delegate helpers:
+Isolate* CodeAssembler::isolate() const { return raw_assembler_->isolate(); }
+
+Factory* CodeAssembler::factory() const { return isolate()->factory(); }
+
+Graph* CodeAssembler::graph() const { return raw_assembler_->graph(); }
+
+Zone* CodeAssembler::zone() const { return raw_assembler_->zone(); }
+
+// The core implementation of Variable is stored through an indirection so
+// that it can outlive the often block-scoped Variable declarations. This is
+// needed to ensure that variable binding and merging through phis can
+// properly be verified.
+class CodeAssembler::Variable::Impl : public ZoneObject {
+ public:
+  explicit Impl(MachineRepresentation rep) : value_(nullptr), rep_(rep) {}
+  Node* value_;
+  MachineRepresentation rep_;
+};
+
+CodeAssembler::Variable::Variable(CodeAssembler* assembler,
+                                  MachineRepresentation rep)
+    : impl_(new (assembler->zone()) Impl(rep)) {
+  assembler->variables_.push_back(impl_);
+}
+
+void CodeAssembler::Variable::Bind(Node* value) { impl_->value_ = value; }
+
+Node* CodeAssembler::Variable::value() const {
+  DCHECK_NOT_NULL(impl_->value_);
+  return impl_->value_;
+}
+
+MachineRepresentation CodeAssembler::Variable::rep() const {
+  return impl_->rep_;
+}
+
+bool CodeAssembler::Variable::IsBound() const {
+  return impl_->value_ != nullptr;
+}
+
+CodeAssembler::Label::Label(CodeAssembler* assembler, int merged_value_count,
+                            CodeAssembler::Variable** merged_variables,
+                            CodeAssembler::Label::Type type)
+    : bound_(false), merge_count_(0), assembler_(assembler), label_(nullptr) {
+  void* buffer = assembler->zone()->New(sizeof(RawMachineLabel));
+  label_ = new (buffer)
+      RawMachineLabel(type == kDeferred ? RawMachineLabel::kDeferred
+                                        : RawMachineLabel::kNonDeferred);
+  for (int i = 0; i < merged_value_count; ++i) {
+    variable_phis_[merged_variables[i]->impl_] = nullptr;
+  }
+}
+
+void CodeAssembler::Label::MergeVariables() {
+  ++merge_count_;
+  for (auto var : assembler_->variables_) {
+    size_t count = 0;
+    Node* node = var->value_;
+    if (node != nullptr) {
+      auto i = variable_merges_.find(var);
+      if (i != variable_merges_.end()) {
+        i->second.push_back(node);
+        count = i->second.size();
+      } else {
+        count = 1;
+        variable_merges_[var] = std::vector<Node*>(1, node);
+      }
+    }
+    // If the following asserts, then you've jumped to a label without a bound
+    // variable along that path that expects to merge its value into a phi.
+    DCHECK(variable_phis_.find(var) == variable_phis_.end() ||
+           count == merge_count_);
+    USE(count);
+
+    // If the label is already bound, we already know the set of variables to
+    // merge and phi nodes have already been created.
+    if (bound_) {
+      auto phi = variable_phis_.find(var);
+      if (phi != variable_phis_.end()) {
+        DCHECK_NOT_NULL(phi->second);
+        assembler_->raw_assembler_->AppendPhiInput(phi->second, node);
+      } else {
+        auto i = variable_merges_.find(var);
+        if (i != variable_merges_.end()) {
+          // If the following assert fires, then you've declared a variable that
+          // has the same bound value along all paths up until the point you
+          // bound this label, but then later merged a path with a new value for
+          // the variable after the label bind (it's not possible to add phis to
+          // the bound label after the fact, just make sure to list the variable
+          // in the label's constructor's list of merged variables).
+          DCHECK(find_if(i->second.begin(), i->second.end(),
+                         [node](Node* e) -> bool { return node != e; }) ==
+                 i->second.end());
+        }
+      }
+    }
+  }
+}
+
+void CodeAssembler::Label::Bind() {
+  DCHECK(!bound_);
+  assembler_->raw_assembler_->Bind(label_);
+
+  // Make sure that all variables that have changed along any path up to this
+  // point are marked as merge variables.
+  for (auto var : assembler_->variables_) {
+    Node* shared_value = nullptr;
+    auto i = variable_merges_.find(var);
+    if (i != variable_merges_.end()) {
+      for (auto value : i->second) {
+        DCHECK(value != nullptr);
+        if (value != shared_value) {
+          if (shared_value == nullptr) {
+            shared_value = value;
+          } else {
+            variable_phis_[var] = nullptr;
+          }
+        }
+      }
+    }
+  }
+
+  for (auto var : variable_phis_) {
+    CodeAssembler::Variable::Impl* var_impl = var.first;
+    auto i = variable_merges_.find(var_impl);
+    // If the following assert fires, then a variable that has been marked as
+    // being merged at the label--either by explicitly marking it so in the
+    // label constructor or by having seen different bound values at branches
+    // into the label--doesn't have a bound value along all of the paths that
+    // have been merged into the label up to this point.
+    DCHECK(i != variable_merges_.end() && i->second.size() == merge_count_);
+    Node* phi = assembler_->raw_assembler_->Phi(
+        var.first->rep_, static_cast<int>(merge_count_), &(i->second[0]));
+    variable_phis_[var_impl] = phi;
+  }
+
+  // Bind all variables to a merge phi, the common value along all paths or
+  // null.
+  for (auto var : assembler_->variables_) {
+    auto i = variable_phis_.find(var);
+    if (i != variable_phis_.end()) {
+      var->value_ = i->second;
+    } else {
+      auto j = variable_merges_.find(var);
+      if (j != variable_merges_.end() && j->second.size() == merge_count_) {
+        var->value_ = j->second.back();
+      } else {
+        var->value_ = nullptr;
+      }
+    }
+  }
+
+  bound_ = true;
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/src/compiler/code-assembler.h b/src/compiler/code-assembler.h
new file mode 100644
index 0000000..39af56d
--- /dev/null
+++ b/src/compiler/code-assembler.h
@@ -0,0 +1,408 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_COMPILER_CODE_ASSEMBLER_H_
+#define V8_COMPILER_CODE_ASSEMBLER_H_
+
+#include <map>
+
+// Clients of this interface shouldn't depend on lots of compiler internals.
+// Do not include anything from src/compiler here!
+#include "src/allocation.h"
+#include "src/builtins.h"
+#include "src/heap/heap.h"
+#include "src/machine-type.h"
+#include "src/runtime/runtime.h"
+#include "src/zone-containers.h"
+
+namespace v8 {
+namespace internal {
+
+class Callable;
+class CallInterfaceDescriptor;
+class Isolate;
+class Factory;
+class Zone;
+
+namespace compiler {
+
+class CallDescriptor;
+class Graph;
+class Node;
+class Operator;
+class RawMachineAssembler;
+class RawMachineLabel;
+class Schedule;
+
+#define CODE_ASSEMBLER_COMPARE_BINARY_OP_LIST(V) \
+  V(Float32Equal)                                \
+  V(Float32LessThan)                             \
+  V(Float32LessThanOrEqual)                      \
+  V(Float32GreaterThan)                          \
+  V(Float32GreaterThanOrEqual)                   \
+  V(Float64Equal)                                \
+  V(Float64LessThan)                             \
+  V(Float64LessThanOrEqual)                      \
+  V(Float64GreaterThan)                          \
+  V(Float64GreaterThanOrEqual)                   \
+  V(Int32GreaterThan)                            \
+  V(Int32GreaterThanOrEqual)                     \
+  V(Int32LessThan)                               \
+  V(Int32LessThanOrEqual)                        \
+  V(IntPtrLessThan)                              \
+  V(IntPtrLessThanOrEqual)                       \
+  V(IntPtrGreaterThan)                           \
+  V(IntPtrGreaterThanOrEqual)                    \
+  V(IntPtrEqual)                                 \
+  V(Uint32LessThan)                              \
+  V(UintPtrLessThan)                             \
+  V(UintPtrGreaterThanOrEqual)                   \
+  V(WordEqual)                                   \
+  V(WordNotEqual)                                \
+  V(Word32Equal)                                 \
+  V(Word32NotEqual)                              \
+  V(Word64Equal)                                 \
+  V(Word64NotEqual)
+
+#define CODE_ASSEMBLER_BINARY_OP_LIST(V)   \
+  CODE_ASSEMBLER_COMPARE_BINARY_OP_LIST(V) \
+  V(Float64Add)                            \
+  V(Float64Sub)                            \
+  V(Float64Mul)                            \
+  V(Float64Div)                            \
+  V(Float64Mod)                            \
+  V(Float64InsertLowWord32)                \
+  V(Float64InsertHighWord32)               \
+  V(IntPtrAdd)                             \
+  V(IntPtrAddWithOverflow)                 \
+  V(IntPtrSub)                             \
+  V(IntPtrSubWithOverflow)                 \
+  V(IntPtrMul)                             \
+  V(Int32Add)                              \
+  V(Int32AddWithOverflow)                  \
+  V(Int32Sub)                              \
+  V(Int32Mul)                              \
+  V(Int32Div)                              \
+  V(WordOr)                                \
+  V(WordAnd)                               \
+  V(WordXor)                               \
+  V(WordShl)                               \
+  V(WordShr)                               \
+  V(WordSar)                               \
+  V(WordRor)                               \
+  V(Word32Or)                              \
+  V(Word32And)                             \
+  V(Word32Xor)                             \
+  V(Word32Shl)                             \
+  V(Word32Shr)                             \
+  V(Word32Sar)                             \
+  V(Word32Ror)                             \
+  V(Word64Or)                              \
+  V(Word64And)                             \
+  V(Word64Xor)                             \
+  V(Word64Shr)                             \
+  V(Word64Sar)                             \
+  V(Word64Ror)
+
+#define CODE_ASSEMBLER_UNARY_OP_LIST(V) \
+  V(Float64Neg)                         \
+  V(Float64Sqrt)                        \
+  V(Float64ExtractLowWord32)            \
+  V(Float64ExtractHighWord32)           \
+  V(BitcastWordToTagged)                \
+  V(TruncateFloat64ToWord32)            \
+  V(TruncateInt64ToInt32)               \
+  V(ChangeFloat64ToUint32)              \
+  V(ChangeInt32ToFloat64)               \
+  V(ChangeInt32ToInt64)                 \
+  V(ChangeUint32ToFloat64)              \
+  V(ChangeUint32ToUint64)               \
+  V(RoundFloat64ToInt32)                \
+  V(Float64RoundDown)                   \
+  V(Float64RoundUp)                     \
+  V(Float64RoundTruncate)               \
+  V(Word32Clz)
+
+// A "public" interface used by components outside of compiler directory to
+// create code objects with TurboFan's backend. This class is mostly a thin shim
+// around the RawMachineAssembler, and its primary job is to ensure that the
+// innards of the RawMachineAssembler and other compiler implementation details
+// don't leak outside of the the compiler directory..
+//
+// V8 components that need to generate low-level code using this interface
+// should include this header--and this header only--from the compiler directory
+// (this is actually enforced). Since all interesting data structures are
+// forward declared, it's not possible for clients to peek inside the compiler
+// internals.
+//
+// In addition to providing isolation between TurboFan and code generation
+// clients, CodeAssembler also provides an abstraction for creating variables
+// and enhanced Label functionality to merge variable values along paths where
+// they have differing values, including loops.
+class CodeAssembler {
+ public:
+  // Create with CallStub linkage.
+  // |result_size| specifies the number of results returned by the stub.
+  // TODO(rmcilroy): move result_size to the CallInterfaceDescriptor.
+  CodeAssembler(Isolate* isolate, Zone* zone,
+                const CallInterfaceDescriptor& descriptor, Code::Flags flags,
+                const char* name, size_t result_size = 1);
+
+  // Create with JSCall linkage.
+  CodeAssembler(Isolate* isolate, Zone* zone, int parameter_count,
+                Code::Flags flags, const char* name);
+
+  virtual ~CodeAssembler();
+
+  Handle<Code> GenerateCode();
+
+  bool Is64() const;
+  bool IsFloat64RoundUpSupported() const;
+  bool IsFloat64RoundDownSupported() const;
+  bool IsFloat64RoundTruncateSupported() const;
+
+  class Label;
+  class Variable {
+   public:
+    explicit Variable(CodeAssembler* assembler, MachineRepresentation rep);
+    void Bind(Node* value);
+    Node* value() const;
+    MachineRepresentation rep() const;
+    bool IsBound() const;
+
+   private:
+    friend class CodeAssembler;
+    class Impl;
+    Impl* impl_;
+  };
+
+  enum AllocationFlag : uint8_t {
+    kNone = 0,
+    kDoubleAlignment = 1,
+    kPretenured = 1 << 1
+  };
+
+  typedef base::Flags<AllocationFlag> AllocationFlags;
+
+  // ===========================================================================
+  // Base Assembler
+  // ===========================================================================
+
+  // Constants.
+  Node* Int32Constant(int32_t value);
+  Node* Int64Constant(int64_t value);
+  Node* IntPtrConstant(intptr_t value);
+  Node* NumberConstant(double value);
+  Node* SmiConstant(Smi* value);
+  Node* HeapConstant(Handle<HeapObject> object);
+  Node* BooleanConstant(bool value);
+  Node* ExternalConstant(ExternalReference address);
+  Node* Float64Constant(double value);
+  Node* NaNConstant();
+
+  bool ToInt32Constant(Node* node, int32_t& out_value);
+  bool ToInt64Constant(Node* node, int64_t& out_value);
+  bool ToIntPtrConstant(Node* node, intptr_t& out_value);
+
+  Node* Parameter(int value);
+  void Return(Node* value);
+
+  void Bind(Label* label);
+  void Goto(Label* label);
+  void GotoIf(Node* condition, Label* true_label);
+  void GotoUnless(Node* condition, Label* false_label);
+  void Branch(Node* condition, Label* true_label, Label* false_label);
+
+  void Switch(Node* index, Label* default_label, int32_t* case_values,
+              Label** case_labels, size_t case_count);
+
+  // Access to the frame pointer
+  Node* LoadFramePointer();
+  Node* LoadParentFramePointer();
+
+  // Access to the stack pointer
+  Node* LoadStackPointer();
+
+  // Load raw memory location.
+  Node* Load(MachineType rep, Node* base);
+  Node* Load(MachineType rep, Node* base, Node* index);
+  Node* AtomicLoad(MachineType rep, Node* base, Node* index);
+
+  // Load a value from the root array.
+  Node* LoadRoot(Heap::RootListIndex root_index);
+
+  // Store value to raw memory location.
+  Node* Store(MachineRepresentation rep, Node* base, Node* value);
+  Node* Store(MachineRepresentation rep, Node* base, Node* index, Node* value);
+  Node* StoreNoWriteBarrier(MachineRepresentation rep, Node* base, Node* value);
+  Node* StoreNoWriteBarrier(MachineRepresentation rep, Node* base, Node* index,
+                            Node* value);
+  Node* AtomicStore(MachineRepresentation rep, Node* base, Node* index,
+                    Node* value);
+
+  // Store a value to the root array.
+  Node* StoreRoot(Heap::RootListIndex root_index, Node* value);
+
+// Basic arithmetic operations.
+#define DECLARE_CODE_ASSEMBLER_BINARY_OP(name) Node* name(Node* a, Node* b);
+  CODE_ASSEMBLER_BINARY_OP_LIST(DECLARE_CODE_ASSEMBLER_BINARY_OP)
+#undef DECLARE_CODE_ASSEMBLER_BINARY_OP
+
+  Node* WordShl(Node* value, int shift);
+  Node* WordShr(Node* value, int shift);
+
+// Unary
+#define DECLARE_CODE_ASSEMBLER_UNARY_OP(name) Node* name(Node* a);
+  CODE_ASSEMBLER_UNARY_OP_LIST(DECLARE_CODE_ASSEMBLER_UNARY_OP)
+#undef DECLARE_CODE_ASSEMBLER_UNARY_OP
+
+  // No-op on 32-bit, otherwise zero extend.
+  Node* ChangeUint32ToWord(Node* value);
+  // No-op on 32-bit, otherwise sign extend.
+  Node* ChangeInt32ToIntPtr(Node* value);
+
+  // Projections
+  Node* Projection(int index, Node* value);
+
+  // Calls
+  Node* CallRuntime(Runtime::FunctionId function_id, Node* context);
+  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1);
+  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1,
+                    Node* arg2);
+  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1,
+                    Node* arg2, Node* arg3);
+  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1,
+                    Node* arg2, Node* arg3, Node* arg4);
+  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1,
+                    Node* arg2, Node* arg3, Node* arg4, Node* arg5);
+
+  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context);
+  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context,
+                        Node* arg1);
+  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context,
+                        Node* arg1, Node* arg2);
+  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context,
+                        Node* arg1, Node* arg2, Node* arg3);
+  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context,
+                        Node* arg1, Node* arg2, Node* arg3, Node* arg4);
+
+  Node* CallStub(Callable const& callable, Node* context, Node* arg1,
+                 size_t result_size = 1);
+  Node* CallStub(Callable const& callable, Node* context, Node* arg1,
+                 Node* arg2, size_t result_size = 1);
+  Node* CallStub(Callable const& callable, Node* context, Node* arg1,
+                 Node* arg2, Node* arg3, size_t result_size = 1);
+
+  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+                 Node* context, Node* arg1, size_t result_size = 1);
+  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+                 Node* context, Node* arg1, Node* arg2, size_t result_size = 1);
+  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+                 Node* context, Node* arg1, Node* arg2, Node* arg3,
+                 size_t result_size = 1);
+  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+                 Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4,
+                 size_t result_size = 1);
+  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+                 Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4,
+                 Node* arg5, size_t result_size = 1);
+
+  Node* TailCallStub(Callable const& callable, Node* context, Node* arg1,
+                     Node* arg2, size_t result_size = 1);
+  Node* TailCallStub(Callable const& callable, Node* context, Node* arg1,
+                     Node* arg2, Node* arg3, size_t result_size = 1);
+  Node* TailCallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+                     Node* context, Node* arg1, Node* arg2,
+                     size_t result_size = 1);
+  Node* TailCallStub(const CallInterfaceDescriptor& descriptor, Node* target,
+                     Node* context, Node* arg1, Node* arg2, Node* arg3,
+                     size_t result_size = 1);
+
+  Node* TailCallBytecodeDispatch(const CallInterfaceDescriptor& descriptor,
+                                 Node* code_target_address, Node** args);
+
+  // Branching helpers.
+  void BranchIf(Node* condition, Label* if_true, Label* if_false);
+
+#define BRANCH_HELPER(name)                                                \
+  void BranchIf##name(Node* a, Node* b, Label* if_true, Label* if_false) { \
+    BranchIf(name(a, b), if_true, if_false);                               \
+  }
+  CODE_ASSEMBLER_COMPARE_BINARY_OP_LIST(BRANCH_HELPER)
+#undef BRANCH_HELPER
+
+  // Helpers which delegate to RawMachineAssembler.
+  Factory* factory() const;
+  Isolate* isolate() const;
+  Zone* zone() const;
+
+ protected:
+  // Protected helpers which delegate to RawMachineAssembler.
+  Graph* graph() const;
+
+  Node* SmiShiftBitsConstant();
+
+  // Enables subclasses to perform operations before and after a call.
+  virtual void CallPrologue();
+  virtual void CallEpilogue();
+
+ private:
+  friend class CodeAssemblerTester;
+
+  CodeAssembler(Isolate* isolate, Zone* zone, CallDescriptor* call_descriptor,
+                Code::Flags flags, const char* name);
+
+  Node* CallN(CallDescriptor* descriptor, Node* code_target, Node** args);
+  Node* TailCallN(CallDescriptor* descriptor, Node* code_target, Node** args);
+
+  base::SmartPointer<RawMachineAssembler> raw_assembler_;
+  Code::Flags flags_;
+  const char* name_;
+  bool code_generated_;
+  ZoneVector<Variable::Impl*> variables_;
+
+  DISALLOW_COPY_AND_ASSIGN(CodeAssembler);
+};
+
+DEFINE_OPERATORS_FOR_FLAGS(CodeAssembler::AllocationFlags);
+
+class CodeAssembler::Label {
+ public:
+  enum Type { kDeferred, kNonDeferred };
+
+  explicit Label(
+      CodeAssembler* assembler,
+      CodeAssembler::Label::Type type = CodeAssembler::Label::kNonDeferred)
+      : CodeAssembler::Label(assembler, 0, nullptr, type) {}
+  Label(CodeAssembler* assembler, CodeAssembler::Variable* merged_variable,
+        CodeAssembler::Label::Type type = CodeAssembler::Label::kNonDeferred)
+      : CodeAssembler::Label(assembler, 1, &merged_variable, type) {}
+  Label(CodeAssembler* assembler, int merged_variable_count,
+        CodeAssembler::Variable** merged_variables,
+        CodeAssembler::Label::Type type = CodeAssembler::Label::kNonDeferred);
+  ~Label() {}
+
+ private:
+  friend class CodeAssembler;
+
+  void Bind();
+  void MergeVariables();
+
+  bool bound_;
+  size_t merge_count_;
+  CodeAssembler* assembler_;
+  RawMachineLabel* label_;
+  // Map of variables that need to be merged to their phi nodes (or placeholders
+  // for those phis).
+  std::map<Variable::Impl*, Node*> variable_phis_;
+  // Map of variables to the list of value nodes that have been added from each
+  // merge path in their order of merging.
+  std::map<Variable::Impl*, std::vector<Node*>> variable_merges_;
+};
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_COMPILER_CODE_ASSEMBLER_H_
diff --git a/src/compiler/code-generator-impl.h b/src/compiler/code-generator-impl.h
index 7de32c5..adb8400 100644
--- a/src/compiler/code-generator-impl.h
+++ b/src/compiler/code-generator-impl.h
@@ -43,6 +43,10 @@
     return ToConstant(instr_->InputAt(index)).ToInt32();
   }
 
+  uint32_t InputUint32(size_t index) {
+    return bit_cast<uint32_t>(InputInt32(index));
+  }
+
   int64_t InputInt64(size_t index) {
     return ToConstant(instr_->InputAt(index)).ToInt64();
   }
@@ -127,7 +131,7 @@
     return ToConstant(op).ToHeapObject();
   }
 
-  Frame* frame() const { return gen_->frame(); }
+  const Frame* frame() const { return gen_->frame(); }
   FrameAccessState* frame_access_state() const {
     return gen_->frame_access_state();
   }
@@ -163,7 +167,7 @@
 
   Label* entry() { return &entry_; }
   Label* exit() { return &exit_; }
-  Frame* frame() const { return frame_; }
+  const Frame* frame() const { return frame_; }
   Isolate* isolate() const { return masm()->isolate(); }
   MacroAssembler* masm() const { return masm_; }
   OutOfLineCode* next() const { return next_; }
@@ -171,7 +175,7 @@
  private:
   Label entry_;
   Label exit_;
-  Frame* const frame_;
+  const Frame* const frame_;
   MacroAssembler* const masm_;
   OutOfLineCode* const next_;
 };
diff --git a/src/compiler/code-generator.cc b/src/compiler/code-generator.cc
index 086da56..5cf9d97 100644
--- a/src/compiler/code-generator.cc
+++ b/src/compiler/code-generator.cc
@@ -33,7 +33,7 @@
 
 CodeGenerator::CodeGenerator(Frame* frame, Linkage* linkage,
                              InstructionSequence* code, CompilationInfo* info)
-    : frame_access_state_(new (code->zone()) FrameAccessState(frame)),
+    : frame_access_state_(nullptr),
       linkage_(linkage),
       code_(code),
       info_(info),
@@ -56,6 +56,12 @@
   for (int i = 0; i < code->InstructionBlockCount(); ++i) {
     new (&labels_[i]) Label;
   }
+  CreateFrameAccessState(frame);
+}
+
+void CodeGenerator::CreateFrameAccessState(Frame* frame) {
+  FinishFrame(frame);
+  frame_access_state_ = new (code()->zone()) FrameAccessState(frame);
 }
 
 Handle<Code> CodeGenerator::GenerateCode() {
@@ -96,9 +102,6 @@
     }
   }
 
-  // Finish the Frame
-  frame()->AlignFrame(kFrameAlignmentInBytes);
-  AssembleSetupStackPointer();
   // Assemble all non-deferred blocks, followed by deferred ones.
   for (int deferred = 0; deferred < 2; ++deferred) {
     for (const InstructionBlock* block : code()->instruction_blocks()) {
@@ -143,7 +146,7 @@
 
       masm()->bind(GetLabel(current_block_));
       if (block->must_construct_frame()) {
-        AssemblePrologue();
+        AssembleConstructFrame();
         // We need to setup the root register after we assemble the prologue, to
         // avoid clobbering callee saved registers in case of C linkage and
         // using the roots.
@@ -153,12 +156,14 @@
         }
       }
 
+      CodeGenResult result;
       if (FLAG_enable_embedded_constant_pool && !block->needs_frame()) {
         ConstantPoolUnavailableScope constant_pool_unavailable(masm());
-        AssembleBlock(block);
+        result = AssembleBlock(block);
       } else {
-        AssembleBlock(block);
+        result = AssembleBlock(block);
       }
+      if (result != kSuccess) return Handle<Code>();
     }
   }
 
@@ -274,8 +279,7 @@
 bool CodeGenerator::IsMaterializableFromFrame(Handle<HeapObject> object,
                                               int* slot_return) {
   if (linkage()->GetIncomingDescriptor()->IsJSFunctionCall()) {
-    if (info()->has_context() && object.is_identical_to(info()->context()) &&
-        !info()->is_osr()) {
+    if (object.is_identical_to(info()->context()) && !info()->is_osr()) {
       *slot_return = Frame::kContextSlot;
       return true;
     } else if (object.is_identical_to(info()->closure())) {
@@ -302,15 +306,18 @@
   return false;
 }
 
-void CodeGenerator::AssembleBlock(const InstructionBlock* block) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleBlock(
+    const InstructionBlock* block) {
   for (int i = block->code_start(); i < block->code_end(); ++i) {
     Instruction* instr = code()->InstructionAt(i);
-    AssembleInstruction(instr, block);
+    CodeGenResult result = AssembleInstruction(instr, block);
+    if (result != kSuccess) return result;
   }
+  return kSuccess;
 }
 
-void CodeGenerator::AssembleInstruction(Instruction* instr,
-                                        const InstructionBlock* block) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleInstruction(
+    Instruction* instr, const InstructionBlock* block) {
   AssembleGaps(instr);
   DCHECK_IMPLIES(
       block->must_deconstruct_frame(),
@@ -321,7 +328,8 @@
   }
   AssembleSourcePosition(instr);
   // Assemble architecture-specific code for the instruction.
-  AssembleArchInstruction(instr);
+  CodeGenResult result = AssembleArchInstruction(instr);
+  if (result != kSuccess) return result;
 
   FlagsMode mode = FlagsModeField::decode(instr->opcode());
   FlagsCondition condition = FlagsConditionField::decode(instr->opcode());
@@ -337,7 +345,7 @@
         if (!IsNextInAssemblyOrder(true_rpo)) {
           AssembleArchJump(true_rpo);
         }
-        return;
+        return kSuccess;
       }
       if (IsNextInAssemblyOrder(true_rpo)) {
         // true block is next, can fall through if condition negated.
@@ -379,6 +387,7 @@
       break;
     }
   }
+  return kSuccess;
 }
 
 
@@ -498,10 +507,6 @@
     handlers_.push_back({caught, GetLabel(handler_rpo), masm()->pc_offset()});
   }
 
-  if (flags & CallDescriptor::kNeedsNopAfterCall) {
-    AddNopForSmiCodeInlining();
-  }
-
   if (needs_frame_state) {
     MarkLazyDeoptSite();
     // If the frame state is present, it starts at argument 1 (just after the
@@ -528,7 +533,7 @@
     // by calls.)
     for (size_t i = 0; i < descriptor->GetSize(); i++) {
       InstructionOperand* op = instr->InputAt(frame_state_offset + 1 + i);
-      CHECK(op->IsStackSlot() || op->IsDoubleStackSlot() || op->IsImmediate());
+      CHECK(op->IsStackSlot() || op->IsFPStackSlot() || op->IsImmediate());
     }
 #endif
     safepoints()->RecordLazyDeoptimizationIndex(deopt_state_id);
@@ -710,7 +715,7 @@
     } else {
       CHECK(false);
     }
-  } else if (op->IsDoubleStackSlot()) {
+  } else if (op->IsFPStackSlot()) {
     DCHECK(IsFloatingPoint(type.representation()));
     translation->StoreDoubleStackSlot(LocationOperand::cast(op)->index());
   } else if (op->IsRegister()) {
@@ -728,7 +733,7 @@
     } else {
       CHECK(false);
     }
-  } else if (op->IsDoubleRegister()) {
+  } else if (op->IsFPRegister()) {
     DCHECK(IsFloatingPoint(type.representation()));
     InstructionOperandConverter converter(this, instr);
     translation->StoreDoubleRegister(converter.ToDoubleRegister(op));
diff --git a/src/compiler/code-generator.h b/src/compiler/code-generator.h
index b82181c..5f35e8a 100644
--- a/src/compiler/code-generator.h
+++ b/src/compiler/code-generator.h
@@ -54,7 +54,7 @@
 
   InstructionSequence* code() const { return code_; }
   FrameAccessState* frame_access_state() const { return frame_access_state_; }
-  Frame* frame() const { return frame_access_state_->frame(); }
+  const Frame* frame() const { return frame_access_state_->frame(); }
   Isolate* isolate() const { return info_->isolate(); }
   Linkage* linkage() const { return linkage_; }
 
@@ -67,6 +67,12 @@
   Zone* zone() const { return code()->zone(); }
   CompilationInfo* info() const { return info_; }
 
+  // Create the FrameAccessState object. The Frame is immutable from here on.
+  void CreateFrameAccessState(Frame* frame);
+
+  // Architecture - specific frame finalization.
+  void FinishFrame(Frame* frame);
+
   // Checks if {block} will appear directly after {current_block_} when
   // assembling code, in which case, a fall-through can be used.
   bool IsNextInAssemblyOrder(RpoNumber block) const;
@@ -84,11 +90,14 @@
   bool IsMaterializableFromRoot(Handle<HeapObject> object,
                                 Heap::RootListIndex* index_return);
 
+  enum CodeGenResult { kSuccess, kTooManyDeoptimizationBailouts };
+
   // Assemble instructions for the specified block.
-  void AssembleBlock(const InstructionBlock* block);
+  CodeGenResult AssembleBlock(const InstructionBlock* block);
 
   // Assemble code for the specified instruction.
-  void AssembleInstruction(Instruction* instr, const InstructionBlock* block);
+  CodeGenResult AssembleInstruction(Instruction* instr,
+                                    const InstructionBlock* block);
   void AssembleSourcePosition(Instruction* instr);
   void AssembleGaps(Instruction* instr);
 
@@ -96,21 +105,19 @@
   // ============= Architecture-specific code generation methods. ==============
   // ===========================================================================
 
-  void AssembleArchInstruction(Instruction* instr);
+  CodeGenResult AssembleArchInstruction(Instruction* instr);
   void AssembleArchJump(RpoNumber target);
   void AssembleArchBranch(Instruction* instr, BranchInfo* branch);
   void AssembleArchBoolean(Instruction* instr, FlagsCondition condition);
   void AssembleArchLookupSwitch(Instruction* instr);
   void AssembleArchTableSwitch(Instruction* instr);
 
-  void AssembleDeoptimizerCall(int deoptimization_id,
-                               Deoptimizer::BailoutType bailout_type);
+  CodeGenResult AssembleDeoptimizerCall(int deoptimization_id,
+                                        Deoptimizer::BailoutType bailout_type);
 
   // Generates an architecture-specific, descriptor-specific prologue
   // to set up a stack frame.
-  void AssemblePrologue();
-
-  void AssembleSetupStackPointer();
+  void AssembleConstructFrame();
 
   // Generates an architecture-specific, descriptor-specific return sequence
   // to tear down a stack frame.
@@ -174,7 +181,6 @@
                                              Translation* translation);
   void AddTranslationForOperand(Translation* translation, Instruction* instr,
                                 InstructionOperand* op, MachineType type);
-  void AddNopForSmiCodeInlining();
   void EnsureSpaceForLazyDeopt();
   void MarkLazyDeoptSite();
 
diff --git a/src/compiler/code-stub-assembler.cc b/src/compiler/code-stub-assembler.cc
deleted file mode 100644
index bbb4d63..0000000
--- a/src/compiler/code-stub-assembler.cc
+++ /dev/null
@@ -1,1353 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "src/compiler/code-stub-assembler.h"
-
-#include <ostream>
-
-#include "src/code-factory.h"
-#include "src/compiler/graph.h"
-#include "src/compiler/instruction-selector.h"
-#include "src/compiler/linkage.h"
-#include "src/compiler/pipeline.h"
-#include "src/compiler/raw-machine-assembler.h"
-#include "src/compiler/schedule.h"
-#include "src/frames.h"
-#include "src/interface-descriptors.h"
-#include "src/interpreter/bytecodes.h"
-#include "src/machine-type.h"
-#include "src/macro-assembler.h"
-#include "src/zone.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-CodeStubAssembler::CodeStubAssembler(Isolate* isolate, Zone* zone,
-                                     const CallInterfaceDescriptor& descriptor,
-                                     Code::Flags flags, const char* name,
-                                     size_t result_size)
-    : CodeStubAssembler(
-          isolate, zone,
-          Linkage::GetStubCallDescriptor(
-              isolate, zone, descriptor, descriptor.GetStackParameterCount(),
-              CallDescriptor::kNoFlags, Operator::kNoProperties,
-              MachineType::AnyTagged(), result_size),
-          flags, name) {}
-
-CodeStubAssembler::CodeStubAssembler(Isolate* isolate, Zone* zone,
-                                     int parameter_count, Code::Flags flags,
-                                     const char* name)
-    : CodeStubAssembler(isolate, zone, Linkage::GetJSCallDescriptor(
-                                           zone, false, parameter_count,
-                                           CallDescriptor::kNoFlags),
-                        flags, name) {}
-
-CodeStubAssembler::CodeStubAssembler(Isolate* isolate, Zone* zone,
-                                     CallDescriptor* call_descriptor,
-                                     Code::Flags flags, const char* name)
-    : raw_assembler_(new RawMachineAssembler(
-          isolate, new (zone) Graph(zone), call_descriptor,
-          MachineType::PointerRepresentation(),
-          InstructionSelector::SupportedMachineOperatorFlags())),
-      flags_(flags),
-      name_(name),
-      code_generated_(false),
-      variables_(zone) {}
-
-CodeStubAssembler::~CodeStubAssembler() {}
-
-void CodeStubAssembler::CallPrologue() {}
-
-void CodeStubAssembler::CallEpilogue() {}
-
-Handle<Code> CodeStubAssembler::GenerateCode() {
-  DCHECK(!code_generated_);
-
-  Schedule* schedule = raw_assembler_->Export();
-  Handle<Code> code = Pipeline::GenerateCodeForCodeStub(
-      isolate(), raw_assembler_->call_descriptor(), graph(), schedule, flags_,
-      name_);
-
-  code_generated_ = true;
-  return code;
-}
-
-
-Node* CodeStubAssembler::Int32Constant(int value) {
-  return raw_assembler_->Int32Constant(value);
-}
-
-
-Node* CodeStubAssembler::IntPtrConstant(intptr_t value) {
-  return raw_assembler_->IntPtrConstant(value);
-}
-
-
-Node* CodeStubAssembler::NumberConstant(double value) {
-  return raw_assembler_->NumberConstant(value);
-}
-
-Node* CodeStubAssembler::SmiConstant(Smi* value) {
-  return IntPtrConstant(bit_cast<intptr_t>(value));
-}
-
-Node* CodeStubAssembler::HeapConstant(Handle<HeapObject> object) {
-  return raw_assembler_->HeapConstant(object);
-}
-
-
-Node* CodeStubAssembler::BooleanConstant(bool value) {
-  return raw_assembler_->BooleanConstant(value);
-}
-
-Node* CodeStubAssembler::ExternalConstant(ExternalReference address) {
-  return raw_assembler_->ExternalConstant(address);
-}
-
-Node* CodeStubAssembler::Float64Constant(double value) {
-  return raw_assembler_->Float64Constant(value);
-}
-
-Node* CodeStubAssembler::BooleanMapConstant() {
-  return HeapConstant(isolate()->factory()->boolean_map());
-}
-
-Node* CodeStubAssembler::HeapNumberMapConstant() {
-  return HeapConstant(isolate()->factory()->heap_number_map());
-}
-
-Node* CodeStubAssembler::NullConstant() {
-  return LoadRoot(Heap::kNullValueRootIndex);
-}
-
-Node* CodeStubAssembler::UndefinedConstant() {
-  return LoadRoot(Heap::kUndefinedValueRootIndex);
-}
-
-Node* CodeStubAssembler::Parameter(int value) {
-  return raw_assembler_->Parameter(value);
-}
-
-void CodeStubAssembler::Return(Node* value) {
-  return raw_assembler_->Return(value);
-}
-
-void CodeStubAssembler::Bind(CodeStubAssembler::Label* label) {
-  return label->Bind();
-}
-
-Node* CodeStubAssembler::LoadFramePointer() {
-  return raw_assembler_->LoadFramePointer();
-}
-
-Node* CodeStubAssembler::LoadParentFramePointer() {
-  return raw_assembler_->LoadParentFramePointer();
-}
-
-Node* CodeStubAssembler::LoadStackPointer() {
-  return raw_assembler_->LoadStackPointer();
-}
-
-Node* CodeStubAssembler::SmiShiftBitsConstant() {
-  return IntPtrConstant(kSmiShiftSize + kSmiTagSize);
-}
-
-Node* CodeStubAssembler::Float64Round(Node* x) {
-  Node* one = Float64Constant(1.0);
-  Node* one_half = Float64Constant(0.5);
-
-  Variable var_x(this, MachineRepresentation::kFloat64);
-  Label return_x(this);
-
-  // Round up {x} towards Infinity.
-  var_x.Bind(Float64Ceil(x));
-
-  GotoIf(Float64LessThanOrEqual(Float64Sub(var_x.value(), one_half), x),
-         &return_x);
-  var_x.Bind(Float64Sub(var_x.value(), one));
-  Goto(&return_x);
-
-  Bind(&return_x);
-  return var_x.value();
-}
-
-Node* CodeStubAssembler::Float64Ceil(Node* x) {
-  if (raw_assembler_->machine()->Float64RoundUp().IsSupported()) {
-    return raw_assembler_->Float64RoundUp(x);
-  }
-
-  Node* one = Float64Constant(1.0);
-  Node* zero = Float64Constant(0.0);
-  Node* two_52 = Float64Constant(4503599627370496.0E0);
-  Node* minus_two_52 = Float64Constant(-4503599627370496.0E0);
-
-  Variable var_x(this, MachineRepresentation::kFloat64);
-  Label return_x(this), return_minus_x(this);
-  var_x.Bind(x);
-
-  // Check if {x} is greater than zero.
-  Label if_xgreaterthanzero(this), if_xnotgreaterthanzero(this);
-  Branch(Float64GreaterThan(x, zero), &if_xgreaterthanzero,
-         &if_xnotgreaterthanzero);
-
-  Bind(&if_xgreaterthanzero);
-  {
-    // Just return {x} unless it's in the range ]0,2^52[.
-    GotoIf(Float64GreaterThanOrEqual(x, two_52), &return_x);
-
-    // Round positive {x} towards Infinity.
-    var_x.Bind(Float64Sub(Float64Add(two_52, x), two_52));
-    GotoUnless(Float64LessThan(var_x.value(), x), &return_x);
-    var_x.Bind(Float64Add(var_x.value(), one));
-    Goto(&return_x);
-  }
-
-  Bind(&if_xnotgreaterthanzero);
-  {
-    // Just return {x} unless it's in the range ]-2^52,0[
-    GotoIf(Float64LessThanOrEqual(x, minus_two_52), &return_x);
-    GotoUnless(Float64LessThan(x, zero), &return_x);
-
-    // Round negated {x} towards Infinity and return the result negated.
-    Node* minus_x = Float64Neg(x);
-    var_x.Bind(Float64Sub(Float64Add(two_52, minus_x), two_52));
-    GotoUnless(Float64GreaterThan(var_x.value(), minus_x), &return_minus_x);
-    var_x.Bind(Float64Sub(var_x.value(), one));
-    Goto(&return_minus_x);
-  }
-
-  Bind(&return_minus_x);
-  var_x.Bind(Float64Neg(var_x.value()));
-  Goto(&return_x);
-
-  Bind(&return_x);
-  return var_x.value();
-}
-
-Node* CodeStubAssembler::Float64Floor(Node* x) {
-  if (raw_assembler_->machine()->Float64RoundDown().IsSupported()) {
-    return raw_assembler_->Float64RoundDown(x);
-  }
-
-  Node* one = Float64Constant(1.0);
-  Node* zero = Float64Constant(0.0);
-  Node* two_52 = Float64Constant(4503599627370496.0E0);
-  Node* minus_two_52 = Float64Constant(-4503599627370496.0E0);
-
-  Variable var_x(this, MachineRepresentation::kFloat64);
-  Label return_x(this), return_minus_x(this);
-  var_x.Bind(x);
-
-  // Check if {x} is greater than zero.
-  Label if_xgreaterthanzero(this), if_xnotgreaterthanzero(this);
-  Branch(Float64GreaterThan(x, zero), &if_xgreaterthanzero,
-         &if_xnotgreaterthanzero);
-
-  Bind(&if_xgreaterthanzero);
-  {
-    // Just return {x} unless it's in the range ]0,2^52[.
-    GotoIf(Float64GreaterThanOrEqual(x, two_52), &return_x);
-
-    // Round positive {x} towards -Infinity.
-    var_x.Bind(Float64Sub(Float64Add(two_52, x), two_52));
-    GotoUnless(Float64GreaterThan(var_x.value(), x), &return_x);
-    var_x.Bind(Float64Sub(var_x.value(), one));
-    Goto(&return_x);
-  }
-
-  Bind(&if_xnotgreaterthanzero);
-  {
-    // Just return {x} unless it's in the range ]-2^52,0[
-    GotoIf(Float64LessThanOrEqual(x, minus_two_52), &return_x);
-    GotoUnless(Float64LessThan(x, zero), &return_x);
-
-    // Round negated {x} towards -Infinity and return the result negated.
-    Node* minus_x = Float64Neg(x);
-    var_x.Bind(Float64Sub(Float64Add(two_52, minus_x), two_52));
-    GotoUnless(Float64LessThan(var_x.value(), minus_x), &return_minus_x);
-    var_x.Bind(Float64Add(var_x.value(), one));
-    Goto(&return_minus_x);
-  }
-
-  Bind(&return_minus_x);
-  var_x.Bind(Float64Neg(var_x.value()));
-  Goto(&return_x);
-
-  Bind(&return_x);
-  return var_x.value();
-}
-
-Node* CodeStubAssembler::Float64Trunc(Node* x) {
-  if (raw_assembler_->machine()->Float64RoundTruncate().IsSupported()) {
-    return raw_assembler_->Float64RoundTruncate(x);
-  }
-
-  Node* one = Float64Constant(1.0);
-  Node* zero = Float64Constant(0.0);
-  Node* two_52 = Float64Constant(4503599627370496.0E0);
-  Node* minus_two_52 = Float64Constant(-4503599627370496.0E0);
-
-  Variable var_x(this, MachineRepresentation::kFloat64);
-  Label return_x(this), return_minus_x(this);
-  var_x.Bind(x);
-
-  // Check if {x} is greater than 0.
-  Label if_xgreaterthanzero(this), if_xnotgreaterthanzero(this);
-  Branch(Float64GreaterThan(x, zero), &if_xgreaterthanzero,
-         &if_xnotgreaterthanzero);
-
-  Bind(&if_xgreaterthanzero);
-  {
-    if (raw_assembler_->machine()->Float64RoundDown().IsSupported()) {
-      var_x.Bind(raw_assembler_->Float64RoundDown(x));
-    } else {
-      // Just return {x} unless it's in the range ]0,2^52[.
-      GotoIf(Float64GreaterThanOrEqual(x, two_52), &return_x);
-
-      // Round positive {x} towards -Infinity.
-      var_x.Bind(Float64Sub(Float64Add(two_52, x), two_52));
-      GotoUnless(Float64GreaterThan(var_x.value(), x), &return_x);
-      var_x.Bind(Float64Sub(var_x.value(), one));
-    }
-    Goto(&return_x);
-  }
-
-  Bind(&if_xnotgreaterthanzero);
-  {
-    if (raw_assembler_->machine()->Float64RoundUp().IsSupported()) {
-      var_x.Bind(raw_assembler_->Float64RoundUp(x));
-      Goto(&return_x);
-    } else {
-      // Just return {x} unless its in the range ]-2^52,0[.
-      GotoIf(Float64LessThanOrEqual(x, minus_two_52), &return_x);
-      GotoUnless(Float64LessThan(x, zero), &return_x);
-
-      // Round negated {x} towards -Infinity and return result negated.
-      Node* minus_x = Float64Neg(x);
-      var_x.Bind(Float64Sub(Float64Add(two_52, minus_x), two_52));
-      GotoUnless(Float64GreaterThan(var_x.value(), minus_x), &return_minus_x);
-      var_x.Bind(Float64Sub(var_x.value(), one));
-      Goto(&return_minus_x);
-    }
-  }
-
-  Bind(&return_minus_x);
-  var_x.Bind(Float64Neg(var_x.value()));
-  Goto(&return_x);
-
-  Bind(&return_x);
-  return var_x.value();
-}
-
-Node* CodeStubAssembler::SmiTag(Node* value) {
-  return raw_assembler_->WordShl(value, SmiShiftBitsConstant());
-}
-
-Node* CodeStubAssembler::SmiUntag(Node* value) {
-  return raw_assembler_->WordSar(value, SmiShiftBitsConstant());
-}
-
-Node* CodeStubAssembler::SmiToWord32(Node* value) {
-  Node* result = raw_assembler_->WordSar(value, SmiShiftBitsConstant());
-  if (raw_assembler_->machine()->Is64()) {
-    result = raw_assembler_->TruncateInt64ToInt32(result);
-  }
-  return result;
-}
-
-Node* CodeStubAssembler::SmiToFloat64(Node* value) {
-  return ChangeInt32ToFloat64(SmiUntag(value));
-}
-
-Node* CodeStubAssembler::SmiAdd(Node* a, Node* b) { return IntPtrAdd(a, b); }
-
-Node* CodeStubAssembler::SmiAddWithOverflow(Node* a, Node* b) {
-  return IntPtrAddWithOverflow(a, b);
-}
-
-Node* CodeStubAssembler::SmiSub(Node* a, Node* b) { return IntPtrSub(a, b); }
-
-Node* CodeStubAssembler::SmiSubWithOverflow(Node* a, Node* b) {
-  return IntPtrSubWithOverflow(a, b);
-}
-
-Node* CodeStubAssembler::SmiEqual(Node* a, Node* b) { return WordEqual(a, b); }
-
-Node* CodeStubAssembler::SmiLessThan(Node* a, Node* b) {
-  return IntPtrLessThan(a, b);
-}
-
-Node* CodeStubAssembler::SmiLessThanOrEqual(Node* a, Node* b) {
-  return IntPtrLessThanOrEqual(a, b);
-}
-
-Node* CodeStubAssembler::SmiMin(Node* a, Node* b) {
-  // TODO(bmeurer): Consider using Select once available.
-  Variable min(this, MachineRepresentation::kTagged);
-  Label if_a(this), if_b(this), join(this);
-  BranchIfSmiLessThan(a, b, &if_a, &if_b);
-  Bind(&if_a);
-  min.Bind(a);
-  Goto(&join);
-  Bind(&if_b);
-  min.Bind(b);
-  Goto(&join);
-  Bind(&join);
-  return min.value();
-}
-
-#define DEFINE_CODE_STUB_ASSEMBER_BINARY_OP(name)   \
-  Node* CodeStubAssembler::name(Node* a, Node* b) { \
-    return raw_assembler_->name(a, b);              \
-  }
-CODE_STUB_ASSEMBLER_BINARY_OP_LIST(DEFINE_CODE_STUB_ASSEMBER_BINARY_OP)
-#undef DEFINE_CODE_STUB_ASSEMBER_BINARY_OP
-
-Node* CodeStubAssembler::WordShl(Node* value, int shift) {
-  return raw_assembler_->WordShl(value, IntPtrConstant(shift));
-}
-
-#define DEFINE_CODE_STUB_ASSEMBER_UNARY_OP(name) \
-  Node* CodeStubAssembler::name(Node* a) { return raw_assembler_->name(a); }
-CODE_STUB_ASSEMBLER_UNARY_OP_LIST(DEFINE_CODE_STUB_ASSEMBER_UNARY_OP)
-#undef DEFINE_CODE_STUB_ASSEMBER_UNARY_OP
-
-Node* CodeStubAssembler::WordIsSmi(Node* a) {
-  return WordEqual(raw_assembler_->WordAnd(a, IntPtrConstant(kSmiTagMask)),
-                   IntPtrConstant(0));
-}
-
-Node* CodeStubAssembler::WordIsPositiveSmi(Node* a) {
-  return WordEqual(
-      raw_assembler_->WordAnd(a, IntPtrConstant(kSmiTagMask | kSmiSignMask)),
-      IntPtrConstant(0));
-}
-
-Node* CodeStubAssembler::LoadBufferObject(Node* buffer, int offset,
-                                          MachineType rep) {
-  return raw_assembler_->Load(rep, buffer, IntPtrConstant(offset));
-}
-
-Node* CodeStubAssembler::LoadObjectField(Node* object, int offset,
-                                         MachineType rep) {
-  return raw_assembler_->Load(rep, object,
-                              IntPtrConstant(offset - kHeapObjectTag));
-}
-
-Node* CodeStubAssembler::LoadHeapNumberValue(Node* object) {
-  return Load(MachineType::Float64(), object,
-              IntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag));
-}
-
-Node* CodeStubAssembler::StoreHeapNumberValue(Node* object, Node* value) {
-  return StoreNoWriteBarrier(
-      MachineRepresentation::kFloat64, object,
-      IntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag), value);
-}
-
-Node* CodeStubAssembler::TruncateHeapNumberValueToWord32(Node* object) {
-  Node* value = LoadHeapNumberValue(object);
-  return raw_assembler_->TruncateFloat64ToInt32(TruncationMode::kJavaScript,
-                                                value);
-}
-
-Node* CodeStubAssembler::LoadMapBitField(Node* map) {
-  return Load(MachineType::Uint8(), map,
-              IntPtrConstant(Map::kBitFieldOffset - kHeapObjectTag));
-}
-
-Node* CodeStubAssembler::LoadMapBitField2(Node* map) {
-  return Load(MachineType::Uint8(), map,
-              IntPtrConstant(Map::kBitField2Offset - kHeapObjectTag));
-}
-
-Node* CodeStubAssembler::LoadMapBitField3(Node* map) {
-  return Load(MachineType::Uint32(), map,
-              IntPtrConstant(Map::kBitField3Offset - kHeapObjectTag));
-}
-
-Node* CodeStubAssembler::LoadMapInstanceType(Node* map) {
-  return Load(MachineType::Uint8(), map,
-              IntPtrConstant(Map::kInstanceTypeOffset - kHeapObjectTag));
-}
-
-Node* CodeStubAssembler::LoadMapDescriptors(Node* map) {
-  return LoadObjectField(map, Map::kDescriptorsOffset);
-}
-
-Node* CodeStubAssembler::LoadNameHash(Node* name) {
-  return Load(MachineType::Uint32(), name,
-              IntPtrConstant(Name::kHashFieldOffset - kHeapObjectTag));
-}
-
-Node* CodeStubAssembler::LoadFixedArrayElementInt32Index(
-    Node* object, Node* int32_index, int additional_offset) {
-  Node* header_size = IntPtrConstant(additional_offset +
-                                     FixedArray::kHeaderSize - kHeapObjectTag);
-  Node* scaled_index = WordShl(int32_index, IntPtrConstant(kPointerSizeLog2));
-  Node* offset = IntPtrAdd(scaled_index, header_size);
-  return Load(MachineType::AnyTagged(), object, offset);
-}
-
-Node* CodeStubAssembler::LoadFixedArrayElementSmiIndex(Node* object,
-                                                       Node* smi_index,
-                                                       int additional_offset) {
-  int const kSmiShiftBits = kSmiShiftSize + kSmiTagSize;
-  Node* header_size = IntPtrConstant(additional_offset +
-                                     FixedArray::kHeaderSize - kHeapObjectTag);
-  Node* scaled_index =
-      (kSmiShiftBits > kPointerSizeLog2)
-          ? WordSar(smi_index, IntPtrConstant(kSmiShiftBits - kPointerSizeLog2))
-          : WordShl(smi_index,
-                    IntPtrConstant(kPointerSizeLog2 - kSmiShiftBits));
-  Node* offset = IntPtrAdd(scaled_index, header_size);
-  return Load(MachineType::AnyTagged(), object, offset);
-}
-
-Node* CodeStubAssembler::LoadFixedArrayElementConstantIndex(Node* object,
-                                                            int index) {
-  Node* offset = IntPtrConstant(FixedArray::kHeaderSize - kHeapObjectTag +
-                                index * kPointerSize);
-  return raw_assembler_->Load(MachineType::AnyTagged(), object, offset);
-}
-
-Node* CodeStubAssembler::StoreFixedArrayElementNoWriteBarrier(Node* object,
-                                                              Node* index,
-                                                              Node* value) {
-  Node* offset =
-      IntPtrAdd(WordShl(index, IntPtrConstant(kPointerSizeLog2)),
-                IntPtrConstant(FixedArray::kHeaderSize - kHeapObjectTag));
-  return StoreNoWriteBarrier(MachineRepresentation::kTagged, object, offset,
-                             value);
-}
-
-Node* CodeStubAssembler::LoadRoot(Heap::RootListIndex root_index) {
-  if (isolate()->heap()->RootCanBeTreatedAsConstant(root_index)) {
-    Handle<Object> root = isolate()->heap()->root_handle(root_index);
-    if (root->IsSmi()) {
-      return SmiConstant(Smi::cast(*root));
-    } else {
-      return HeapConstant(Handle<HeapObject>::cast(root));
-    }
-  }
-
-  compiler::Node* roots_array_start =
-      ExternalConstant(ExternalReference::roots_array_start(isolate()));
-  USE(roots_array_start);
-
-  // TODO(danno): Implement thee root-access case where the root is not constant
-  // and must be loaded from the root array.
-  UNIMPLEMENTED();
-  return nullptr;
-}
-
-Node* CodeStubAssembler::AllocateRawUnaligned(Node* size_in_bytes,
-                                              AllocationFlags flags,
-                                              Node* top_address,
-                                              Node* limit_address) {
-  Node* top = Load(MachineType::Pointer(), top_address);
-  Node* limit = Load(MachineType::Pointer(), limit_address);
-
-  // If there's not enough space, call the runtime.
-  RawMachineLabel runtime_call(RawMachineLabel::kDeferred), no_runtime_call,
-      merge_runtime;
-  raw_assembler_->Branch(
-      raw_assembler_->IntPtrLessThan(IntPtrSub(limit, top), size_in_bytes),
-      &runtime_call, &no_runtime_call);
-
-  raw_assembler_->Bind(&runtime_call);
-  // AllocateInTargetSpace does not use the context.
-  Node* context = IntPtrConstant(0);
-  Node* runtime_flags = SmiTag(Int32Constant(
-      AllocateDoubleAlignFlag::encode(false) |
-      AllocateTargetSpace::encode(flags & kPretenured
-                                      ? AllocationSpace::OLD_SPACE
-                                      : AllocationSpace::NEW_SPACE)));
-  Node* runtime_result = CallRuntime(Runtime::kAllocateInTargetSpace, context,
-                                     SmiTag(size_in_bytes), runtime_flags);
-  raw_assembler_->Goto(&merge_runtime);
-
-  // When there is enough space, return `top' and bump it up.
-  raw_assembler_->Bind(&no_runtime_call);
-  Node* no_runtime_result = top;
-  StoreNoWriteBarrier(MachineType::PointerRepresentation(), top_address,
-                      IntPtrAdd(top, size_in_bytes));
-  no_runtime_result =
-      IntPtrAdd(no_runtime_result, IntPtrConstant(kHeapObjectTag));
-  raw_assembler_->Goto(&merge_runtime);
-
-  raw_assembler_->Bind(&merge_runtime);
-  return raw_assembler_->Phi(MachineType::PointerRepresentation(),
-                             runtime_result, no_runtime_result);
-}
-
-Node* CodeStubAssembler::AllocateRawAligned(Node* size_in_bytes,
-                                            AllocationFlags flags,
-                                            Node* top_address,
-                                            Node* limit_address) {
-  Node* top = Load(MachineType::Pointer(), top_address);
-  Node* limit = Load(MachineType::Pointer(), limit_address);
-  Node* adjusted_size = size_in_bytes;
-  if (flags & kDoubleAlignment) {
-    // TODO(epertoso): Simd128 alignment.
-    RawMachineLabel aligned, not_aligned, merge;
-    raw_assembler_->Branch(WordAnd(top, IntPtrConstant(kDoubleAlignmentMask)),
-                           &not_aligned, &aligned);
-
-    raw_assembler_->Bind(&not_aligned);
-    Node* not_aligned_size =
-        IntPtrAdd(size_in_bytes, IntPtrConstant(kPointerSize));
-    raw_assembler_->Goto(&merge);
-
-    raw_assembler_->Bind(&aligned);
-    raw_assembler_->Goto(&merge);
-
-    raw_assembler_->Bind(&merge);
-    adjusted_size = raw_assembler_->Phi(MachineType::PointerRepresentation(),
-                                        not_aligned_size, adjusted_size);
-  }
-
-  Node* address = AllocateRawUnaligned(adjusted_size, kNone, top, limit);
-
-  RawMachineLabel needs_filler, doesnt_need_filler, merge_address;
-  raw_assembler_->Branch(
-      raw_assembler_->IntPtrEqual(adjusted_size, size_in_bytes),
-      &doesnt_need_filler, &needs_filler);
-
-  raw_assembler_->Bind(&needs_filler);
-  // Store a filler and increase the address by kPointerSize.
-  // TODO(epertoso): this code assumes that we only align to kDoubleSize. Change
-  // it when Simd128 alignment is supported.
-  StoreNoWriteBarrier(MachineType::PointerRepresentation(), top,
-                      LoadRoot(Heap::kOnePointerFillerMapRootIndex));
-  Node* address_with_filler = IntPtrAdd(address, IntPtrConstant(kPointerSize));
-  raw_assembler_->Goto(&merge_address);
-
-  raw_assembler_->Bind(&doesnt_need_filler);
-  Node* address_without_filler = address;
-  raw_assembler_->Goto(&merge_address);
-
-  raw_assembler_->Bind(&merge_address);
-  address = raw_assembler_->Phi(MachineType::PointerRepresentation(),
-                                address_with_filler, address_without_filler);
-  // Update the top.
-  StoreNoWriteBarrier(MachineType::PointerRepresentation(), top_address,
-                      IntPtrAdd(top, adjusted_size));
-  return address;
-}
-
-Node* CodeStubAssembler::Allocate(int size_in_bytes, AllocationFlags flags) {
-  bool const new_space = !(flags & kPretenured);
-  Node* top_address = ExternalConstant(
-      new_space
-          ? ExternalReference::new_space_allocation_top_address(isolate())
-          : ExternalReference::old_space_allocation_top_address(isolate()));
-  Node* limit_address = ExternalConstant(
-      new_space
-          ? ExternalReference::new_space_allocation_limit_address(isolate())
-          : ExternalReference::old_space_allocation_limit_address(isolate()));
-
-#ifdef V8_HOST_ARCH_32_BIT
-  if (flags & kDoubleAlignment) {
-    return AllocateRawAligned(IntPtrConstant(size_in_bytes), flags, top_address,
-                              limit_address);
-  }
-#endif
-
-  return AllocateRawUnaligned(IntPtrConstant(size_in_bytes), flags, top_address,
-                              limit_address);
-}
-
-Node* CodeStubAssembler::AllocateHeapNumber() {
-  Node* result = Allocate(HeapNumber::kSize, kNone);
-  StoreMapNoWriteBarrier(result, HeapNumberMapConstant());
-  return result;
-}
-
-Node* CodeStubAssembler::AllocateHeapNumberWithValue(Node* value) {
-  Node* result = AllocateHeapNumber();
-  StoreHeapNumberValue(result, value);
-  return result;
-}
-
-Node* CodeStubAssembler::Load(MachineType rep, Node* base) {
-  return raw_assembler_->Load(rep, base);
-}
-
-Node* CodeStubAssembler::Load(MachineType rep, Node* base, Node* index) {
-  return raw_assembler_->Load(rep, base, index);
-}
-
-Node* CodeStubAssembler::Store(MachineRepresentation rep, Node* base,
-                               Node* value) {
-  return raw_assembler_->Store(rep, base, value, kFullWriteBarrier);
-}
-
-Node* CodeStubAssembler::Store(MachineRepresentation rep, Node* base,
-                               Node* index, Node* value) {
-  return raw_assembler_->Store(rep, base, index, value, kFullWriteBarrier);
-}
-
-Node* CodeStubAssembler::StoreNoWriteBarrier(MachineRepresentation rep,
-                                             Node* base, Node* value) {
-  return raw_assembler_->Store(rep, base, value, kNoWriteBarrier);
-}
-
-Node* CodeStubAssembler::StoreNoWriteBarrier(MachineRepresentation rep,
-                                             Node* base, Node* index,
-                                             Node* value) {
-  return raw_assembler_->Store(rep, base, index, value, kNoWriteBarrier);
-}
-
-Node* CodeStubAssembler::Projection(int index, Node* value) {
-  return raw_assembler_->Projection(index, value);
-}
-
-Node* CodeStubAssembler::LoadMap(Node* object) {
-  return LoadObjectField(object, HeapObject::kMapOffset);
-}
-
-Node* CodeStubAssembler::StoreMapNoWriteBarrier(Node* object, Node* map) {
-  return StoreNoWriteBarrier(
-      MachineRepresentation::kTagged, object,
-      IntPtrConstant(HeapNumber::kMapOffset - kHeapObjectTag), map);
-}
-
-Node* CodeStubAssembler::LoadInstanceType(Node* object) {
-  return LoadMapInstanceType(LoadMap(object));
-}
-
-Node* CodeStubAssembler::LoadElements(Node* object) {
-  return LoadObjectField(object, JSObject::kElementsOffset);
-}
-
-Node* CodeStubAssembler::LoadFixedArrayBaseLength(Node* array) {
-  return LoadObjectField(array, FixedArrayBase::kLengthOffset);
-}
-
-Node* CodeStubAssembler::BitFieldDecode(Node* word32, uint32_t shift,
-                                        uint32_t mask) {
-  return raw_assembler_->Word32Shr(
-      raw_assembler_->Word32And(word32, raw_assembler_->Int32Constant(mask)),
-      raw_assembler_->Int32Constant(shift));
-}
-
-Node* CodeStubAssembler::ChangeFloat64ToTagged(Node* value) {
-  Node* value32 = raw_assembler_->TruncateFloat64ToInt32(
-      TruncationMode::kRoundToZero, value);
-  Node* value64 = ChangeInt32ToFloat64(value32);
-
-  Label if_valueisint32(this), if_valueisheapnumber(this), if_join(this);
-
-  Label if_valueisequal(this), if_valueisnotequal(this);
-  Branch(Float64Equal(value, value64), &if_valueisequal, &if_valueisnotequal);
-  Bind(&if_valueisequal);
-  {
-    Label if_valueiszero(this), if_valueisnotzero(this);
-    Branch(Float64Equal(value, Float64Constant(0.0)), &if_valueiszero,
-           &if_valueisnotzero);
-
-    Bind(&if_valueiszero);
-    BranchIfInt32LessThan(raw_assembler_->Float64ExtractHighWord32(value),
-                          Int32Constant(0), &if_valueisheapnumber,
-                          &if_valueisint32);
-
-    Bind(&if_valueisnotzero);
-    Goto(&if_valueisint32);
-  }
-  Bind(&if_valueisnotequal);
-  Goto(&if_valueisheapnumber);
-
-  Variable var_result(this, MachineRepresentation::kTagged);
-  Bind(&if_valueisint32);
-  {
-    if (raw_assembler_->machine()->Is64()) {
-      Node* result = SmiTag(ChangeInt32ToInt64(value32));
-      var_result.Bind(result);
-      Goto(&if_join);
-    } else {
-      Node* pair = Int32AddWithOverflow(value32, value32);
-      Node* overflow = Projection(1, pair);
-      Label if_overflow(this, Label::kDeferred), if_notoverflow(this);
-      Branch(overflow, &if_overflow, &if_notoverflow);
-      Bind(&if_overflow);
-      Goto(&if_valueisheapnumber);
-      Bind(&if_notoverflow);
-      {
-        Node* result = Projection(0, pair);
-        var_result.Bind(result);
-        Goto(&if_join);
-      }
-    }
-  }
-  Bind(&if_valueisheapnumber);
-  {
-    Node* result = AllocateHeapNumberWithValue(value);
-    var_result.Bind(result);
-    Goto(&if_join);
-  }
-  Bind(&if_join);
-  return var_result.value();
-}
-
-Node* CodeStubAssembler::ChangeInt32ToTagged(Node* value) {
-  if (raw_assembler_->machine()->Is64()) {
-    return SmiTag(ChangeInt32ToInt64(value));
-  }
-  Variable var_result(this, MachineRepresentation::kTagged);
-  Node* pair = Int32AddWithOverflow(value, value);
-  Node* overflow = Projection(1, pair);
-  Label if_overflow(this, Label::kDeferred), if_notoverflow(this),
-      if_join(this);
-  Branch(overflow, &if_overflow, &if_notoverflow);
-  Bind(&if_overflow);
-  {
-    Node* value64 = ChangeInt32ToFloat64(value);
-    Node* result = AllocateHeapNumberWithValue(value64);
-    var_result.Bind(result);
-  }
-  Goto(&if_join);
-  Bind(&if_notoverflow);
-  {
-    Node* result = Projection(0, pair);
-    var_result.Bind(result);
-  }
-  Goto(&if_join);
-  Bind(&if_join);
-  return var_result.value();
-}
-
-Node* CodeStubAssembler::TruncateTaggedToFloat64(Node* context, Node* value) {
-  // We might need to loop once due to ToNumber conversion.
-  Variable var_value(this, MachineRepresentation::kTagged),
-      var_result(this, MachineRepresentation::kFloat64);
-  Label loop(this, &var_value), done_loop(this, &var_result);
-  var_value.Bind(value);
-  Goto(&loop);
-  Bind(&loop);
-  {
-    // Load the current {value}.
-    value = var_value.value();
-
-    // Check if the {value} is a Smi or a HeapObject.
-    Label if_valueissmi(this), if_valueisnotsmi(this);
-    Branch(WordIsSmi(value), &if_valueissmi, &if_valueisnotsmi);
-
-    Bind(&if_valueissmi);
-    {
-      // Convert the Smi {value}.
-      var_result.Bind(SmiToFloat64(value));
-      Goto(&done_loop);
-    }
-
-    Bind(&if_valueisnotsmi);
-    {
-      // Check if {value} is a HeapNumber.
-      Label if_valueisheapnumber(this),
-          if_valueisnotheapnumber(this, Label::kDeferred);
-      Branch(WordEqual(LoadMap(value), HeapNumberMapConstant()),
-             &if_valueisheapnumber, &if_valueisnotheapnumber);
-
-      Bind(&if_valueisheapnumber);
-      {
-        // Load the floating point value.
-        var_result.Bind(LoadHeapNumberValue(value));
-        Goto(&done_loop);
-      }
-
-      Bind(&if_valueisnotheapnumber);
-      {
-        // Convert the {value} to a Number first.
-        Callable callable = CodeFactory::NonNumberToNumber(isolate());
-        var_value.Bind(CallStub(callable, context, value));
-        Goto(&loop);
-      }
-    }
-  }
-  Bind(&done_loop);
-  return var_result.value();
-}
-
-Node* CodeStubAssembler::TruncateTaggedToWord32(Node* context, Node* value) {
-  // We might need to loop once due to ToNumber conversion.
-  Variable var_value(this, MachineRepresentation::kTagged),
-      var_result(this, MachineRepresentation::kWord32);
-  Label loop(this, &var_value), done_loop(this, &var_result);
-  var_value.Bind(value);
-  Goto(&loop);
-  Bind(&loop);
-  {
-    // Load the current {value}.
-    value = var_value.value();
-
-    // Check if the {value} is a Smi or a HeapObject.
-    Label if_valueissmi(this), if_valueisnotsmi(this);
-    Branch(WordIsSmi(value), &if_valueissmi, &if_valueisnotsmi);
-
-    Bind(&if_valueissmi);
-    {
-      // Convert the Smi {value}.
-      var_result.Bind(SmiToWord32(value));
-      Goto(&done_loop);
-    }
-
-    Bind(&if_valueisnotsmi);
-    {
-      // Check if {value} is a HeapNumber.
-      Label if_valueisheapnumber(this),
-          if_valueisnotheapnumber(this, Label::kDeferred);
-      Branch(WordEqual(LoadMap(value), HeapNumberMapConstant()),
-             &if_valueisheapnumber, &if_valueisnotheapnumber);
-
-      Bind(&if_valueisheapnumber);
-      {
-        // Truncate the floating point value.
-        var_result.Bind(TruncateHeapNumberValueToWord32(value));
-        Goto(&done_loop);
-      }
-
-      Bind(&if_valueisnotheapnumber);
-      {
-        // Convert the {value} to a Number first.
-        Callable callable = CodeFactory::NonNumberToNumber(isolate());
-        var_value.Bind(CallStub(callable, context, value));
-        Goto(&loop);
-      }
-    }
-  }
-  Bind(&done_loop);
-  return var_result.value();
-}
-
-void CodeStubAssembler::BranchIf(Node* condition, Label* if_true,
-                                 Label* if_false) {
-  Label if_condition_is_true(this), if_condition_is_false(this);
-  Branch(condition, &if_condition_is_true, &if_condition_is_false);
-  Bind(&if_condition_is_true);
-  Goto(if_true);
-  Bind(&if_condition_is_false);
-  Goto(if_false);
-}
-
-Node* CodeStubAssembler::CallN(CallDescriptor* descriptor, Node* code_target,
-                               Node** args) {
-  CallPrologue();
-  Node* return_value = raw_assembler_->CallN(descriptor, code_target, args);
-  CallEpilogue();
-  return return_value;
-}
-
-
-Node* CodeStubAssembler::TailCallN(CallDescriptor* descriptor,
-                                   Node* code_target, Node** args) {
-  return raw_assembler_->TailCallN(descriptor, code_target, args);
-}
-
-Node* CodeStubAssembler::CallRuntime(Runtime::FunctionId function_id,
-                                     Node* context) {
-  CallPrologue();
-  Node* return_value = raw_assembler_->CallRuntime0(function_id, context);
-  CallEpilogue();
-  return return_value;
-}
-
-Node* CodeStubAssembler::CallRuntime(Runtime::FunctionId function_id,
-                                     Node* context, Node* arg1) {
-  CallPrologue();
-  Node* return_value = raw_assembler_->CallRuntime1(function_id, arg1, context);
-  CallEpilogue();
-  return return_value;
-}
-
-Node* CodeStubAssembler::CallRuntime(Runtime::FunctionId function_id,
-                                     Node* context, Node* arg1, Node* arg2) {
-  CallPrologue();
-  Node* return_value =
-      raw_assembler_->CallRuntime2(function_id, arg1, arg2, context);
-  CallEpilogue();
-  return return_value;
-}
-
-Node* CodeStubAssembler::CallRuntime(Runtime::FunctionId function_id,
-                                     Node* context, Node* arg1, Node* arg2,
-                                     Node* arg3) {
-  CallPrologue();
-  Node* return_value =
-      raw_assembler_->CallRuntime3(function_id, arg1, arg2, arg3, context);
-  CallEpilogue();
-  return return_value;
-}
-
-Node* CodeStubAssembler::CallRuntime(Runtime::FunctionId function_id,
-                                     Node* context, Node* arg1, Node* arg2,
-                                     Node* arg3, Node* arg4) {
-  CallPrologue();
-  Node* return_value = raw_assembler_->CallRuntime4(function_id, arg1, arg2,
-                                                    arg3, arg4, context);
-  CallEpilogue();
-  return return_value;
-}
-
-Node* CodeStubAssembler::TailCallRuntime(Runtime::FunctionId function_id,
-                                         Node* context) {
-  return raw_assembler_->TailCallRuntime0(function_id, context);
-}
-
-Node* CodeStubAssembler::TailCallRuntime(Runtime::FunctionId function_id,
-                                         Node* context, Node* arg1) {
-  return raw_assembler_->TailCallRuntime1(function_id, arg1, context);
-}
-
-Node* CodeStubAssembler::TailCallRuntime(Runtime::FunctionId function_id,
-                                         Node* context, Node* arg1,
-                                         Node* arg2) {
-  return raw_assembler_->TailCallRuntime2(function_id, arg1, arg2, context);
-}
-
-Node* CodeStubAssembler::TailCallRuntime(Runtime::FunctionId function_id,
-                                         Node* context, Node* arg1, Node* arg2,
-                                         Node* arg3) {
-  return raw_assembler_->TailCallRuntime3(function_id, arg1, arg2, arg3,
-                                          context);
-}
-
-Node* CodeStubAssembler::TailCallRuntime(Runtime::FunctionId function_id,
-                                         Node* context, Node* arg1, Node* arg2,
-                                         Node* arg3, Node* arg4) {
-  return raw_assembler_->TailCallRuntime4(function_id, arg1, arg2, arg3, arg4,
-                                          context);
-}
-
-Node* CodeStubAssembler::CallStub(Callable const& callable, Node* context,
-                                  Node* arg1, size_t result_size) {
-  Node* target = HeapConstant(callable.code());
-  return CallStub(callable.descriptor(), target, context, arg1, result_size);
-}
-
-Node* CodeStubAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
-                                  Node* target, Node* context, Node* arg1,
-                                  size_t result_size) {
-  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
-      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
-      CallDescriptor::kNoFlags, Operator::kNoProperties,
-      MachineType::AnyTagged(), result_size);
-
-  Node** args = zone()->NewArray<Node*>(2);
-  args[0] = arg1;
-  args[1] = context;
-
-  return CallN(call_descriptor, target, args);
-}
-
-Node* CodeStubAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
-                                  Node* target, Node* context, Node* arg1,
-                                  Node* arg2, size_t result_size) {
-  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
-      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
-      CallDescriptor::kNoFlags, Operator::kNoProperties,
-      MachineType::AnyTagged(), result_size);
-
-  Node** args = zone()->NewArray<Node*>(3);
-  args[0] = arg1;
-  args[1] = arg2;
-  args[2] = context;
-
-  return CallN(call_descriptor, target, args);
-}
-
-Node* CodeStubAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
-                                  Node* target, Node* context, Node* arg1,
-                                  Node* arg2, Node* arg3, size_t result_size) {
-  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
-      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
-      CallDescriptor::kNoFlags, Operator::kNoProperties,
-      MachineType::AnyTagged(), result_size);
-
-  Node** args = zone()->NewArray<Node*>(4);
-  args[0] = arg1;
-  args[1] = arg2;
-  args[2] = arg3;
-  args[3] = context;
-
-  return CallN(call_descriptor, target, args);
-}
-
-Node* CodeStubAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
-                                  Node* target, Node* context, Node* arg1,
-                                  Node* arg2, Node* arg3, Node* arg4,
-                                  size_t result_size) {
-  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
-      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
-      CallDescriptor::kNoFlags, Operator::kNoProperties,
-      MachineType::AnyTagged(), result_size);
-
-  Node** args = zone()->NewArray<Node*>(5);
-  args[0] = arg1;
-  args[1] = arg2;
-  args[2] = arg3;
-  args[3] = arg4;
-  args[4] = context;
-
-  return CallN(call_descriptor, target, args);
-}
-
-Node* CodeStubAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
-                                  Node* target, Node* context, Node* arg1,
-                                  Node* arg2, Node* arg3, Node* arg4,
-                                  Node* arg5, size_t result_size) {
-  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
-      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
-      CallDescriptor::kNoFlags, Operator::kNoProperties,
-      MachineType::AnyTagged(), result_size);
-
-  Node** args = zone()->NewArray<Node*>(6);
-  args[0] = arg1;
-  args[1] = arg2;
-  args[2] = arg3;
-  args[3] = arg4;
-  args[4] = arg5;
-  args[5] = context;
-
-  return CallN(call_descriptor, target, args);
-}
-
-Node* CodeStubAssembler::TailCallStub(Callable const& callable, Node* context,
-                                      Node* arg1, Node* arg2,
-                                      size_t result_size) {
-  Node* target = HeapConstant(callable.code());
-  return TailCallStub(callable.descriptor(), target, context, arg1, arg2,
-                      result_size);
-}
-
-Node* CodeStubAssembler::TailCallStub(const CallInterfaceDescriptor& descriptor,
-                                      Node* target, Node* context, Node* arg1,
-                                      Node* arg2, size_t result_size) {
-  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
-      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
-      CallDescriptor::kSupportsTailCalls, Operator::kNoProperties,
-      MachineType::AnyTagged(), result_size);
-
-  Node** args = zone()->NewArray<Node*>(3);
-  args[0] = arg1;
-  args[1] = arg2;
-  args[2] = context;
-
-  return raw_assembler_->TailCallN(call_descriptor, target, args);
-}
-
-Node* CodeStubAssembler::TailCall(
-    const CallInterfaceDescriptor& interface_descriptor, Node* code_target,
-    Node** args, size_t result_size) {
-  CallDescriptor* descriptor = Linkage::GetStubCallDescriptor(
-      isolate(), zone(), interface_descriptor,
-      interface_descriptor.GetStackParameterCount(),
-      CallDescriptor::kSupportsTailCalls, Operator::kNoProperties,
-      MachineType::AnyTagged(), result_size);
-  return raw_assembler_->TailCallN(descriptor, code_target, args);
-}
-
-void CodeStubAssembler::Goto(CodeStubAssembler::Label* label) {
-  label->MergeVariables();
-  raw_assembler_->Goto(label->label_);
-}
-
-void CodeStubAssembler::GotoIf(Node* condition, Label* true_label) {
-  Label false_label(this);
-  Branch(condition, true_label, &false_label);
-  Bind(&false_label);
-}
-
-void CodeStubAssembler::GotoUnless(Node* condition, Label* false_label) {
-  Label true_label(this);
-  Branch(condition, &true_label, false_label);
-  Bind(&true_label);
-}
-
-void CodeStubAssembler::Branch(Node* condition,
-                               CodeStubAssembler::Label* true_label,
-                               CodeStubAssembler::Label* false_label) {
-  true_label->MergeVariables();
-  false_label->MergeVariables();
-  return raw_assembler_->Branch(condition, true_label->label_,
-                                false_label->label_);
-}
-
-void CodeStubAssembler::Switch(Node* index, Label* default_label,
-                               int32_t* case_values, Label** case_labels,
-                               size_t case_count) {
-  RawMachineLabel** labels =
-      new (zone()->New(sizeof(RawMachineLabel*) * case_count))
-          RawMachineLabel*[case_count];
-  for (size_t i = 0; i < case_count; ++i) {
-    labels[i] = case_labels[i]->label_;
-    case_labels[i]->MergeVariables();
-    default_label->MergeVariables();
-  }
-  return raw_assembler_->Switch(index, default_label->label_, case_values,
-                                labels, case_count);
-}
-
-// RawMachineAssembler delegate helpers:
-Isolate* CodeStubAssembler::isolate() const {
-  return raw_assembler_->isolate();
-}
-
-Factory* CodeStubAssembler::factory() const { return isolate()->factory(); }
-
-Graph* CodeStubAssembler::graph() const { return raw_assembler_->graph(); }
-
-Zone* CodeStubAssembler::zone() const { return raw_assembler_->zone(); }
-
-// The core implementation of Variable is stored through an indirection so
-// that it can outlive the often block-scoped Variable declarations. This is
-// needed to ensure that variable binding and merging through phis can
-// properly be verified.
-class CodeStubAssembler::Variable::Impl : public ZoneObject {
- public:
-  explicit Impl(MachineRepresentation rep) : value_(nullptr), rep_(rep) {}
-  Node* value_;
-  MachineRepresentation rep_;
-};
-
-CodeStubAssembler::Variable::Variable(CodeStubAssembler* assembler,
-                                      MachineRepresentation rep)
-    : impl_(new (assembler->zone()) Impl(rep)) {
-  assembler->variables_.push_back(impl_);
-}
-
-void CodeStubAssembler::Variable::Bind(Node* value) { impl_->value_ = value; }
-
-Node* CodeStubAssembler::Variable::value() const {
-  DCHECK_NOT_NULL(impl_->value_);
-  return impl_->value_;
-}
-
-MachineRepresentation CodeStubAssembler::Variable::rep() const {
-  return impl_->rep_;
-}
-
-bool CodeStubAssembler::Variable::IsBound() const {
-  return impl_->value_ != nullptr;
-}
-
-CodeStubAssembler::Label::Label(CodeStubAssembler* assembler,
-                                int merged_value_count,
-                                CodeStubAssembler::Variable** merged_variables,
-                                CodeStubAssembler::Label::Type type)
-    : bound_(false), merge_count_(0), assembler_(assembler), label_(nullptr) {
-  void* buffer = assembler->zone()->New(sizeof(RawMachineLabel));
-  label_ = new (buffer)
-      RawMachineLabel(type == kDeferred ? RawMachineLabel::kDeferred
-                                        : RawMachineLabel::kNonDeferred);
-  for (int i = 0; i < merged_value_count; ++i) {
-    variable_phis_[merged_variables[i]->impl_] = nullptr;
-  }
-}
-
-void CodeStubAssembler::Label::MergeVariables() {
-  ++merge_count_;
-  for (auto var : assembler_->variables_) {
-    size_t count = 0;
-    Node* node = var->value_;
-    if (node != nullptr) {
-      auto i = variable_merges_.find(var);
-      if (i != variable_merges_.end()) {
-        i->second.push_back(node);
-        count = i->second.size();
-      } else {
-        count = 1;
-        variable_merges_[var] = std::vector<Node*>(1, node);
-      }
-    }
-    // If the following asserts, then you've jumped to a label without a bound
-    // variable along that path that expects to merge its value into a phi.
-    DCHECK(variable_phis_.find(var) == variable_phis_.end() ||
-           count == merge_count_);
-    USE(count);
-
-    // If the label is already bound, we already know the set of variables to
-    // merge and phi nodes have already been created.
-    if (bound_) {
-      auto phi = variable_phis_.find(var);
-      if (phi != variable_phis_.end()) {
-        DCHECK_NOT_NULL(phi->second);
-        assembler_->raw_assembler_->AppendPhiInput(phi->second, node);
-      } else {
-        auto i = variable_merges_.find(var);
-        if (i != variable_merges_.end()) {
-          // If the following assert fires, then you've declared a variable that
-          // has the same bound value along all paths up until the point you
-          // bound this label, but then later merged a path with a new value for
-          // the variable after the label bind (it's not possible to add phis to
-          // the bound label after the fact, just make sure to list the variable
-          // in the label's constructor's list of merged variables).
-          DCHECK(find_if(i->second.begin(), i->second.end(),
-                         [node](Node* e) -> bool { return node != e; }) ==
-                 i->second.end());
-        }
-      }
-    }
-  }
-}
-
-void CodeStubAssembler::Label::Bind() {
-  DCHECK(!bound_);
-  assembler_->raw_assembler_->Bind(label_);
-
-  // Make sure that all variables that have changed along any path up to this
-  // point are marked as merge variables.
-  for (auto var : assembler_->variables_) {
-    Node* shared_value = nullptr;
-    auto i = variable_merges_.find(var);
-    if (i != variable_merges_.end()) {
-      for (auto value : i->second) {
-        DCHECK(value != nullptr);
-        if (value != shared_value) {
-          if (shared_value == nullptr) {
-            shared_value = value;
-          } else {
-            variable_phis_[var] = nullptr;
-          }
-        }
-      }
-    }
-  }
-
-  for (auto var : variable_phis_) {
-    CodeStubAssembler::Variable::Impl* var_impl = var.first;
-    auto i = variable_merges_.find(var_impl);
-    // If the following assert fires, then a variable that has been marked as
-    // being merged at the label--either by explicitly marking it so in the
-    // label constructor or by having seen different bound values at branches
-    // into the label--doesn't have a bound value along all of the paths that
-    // have been merged into the label up to this point.
-    DCHECK(i != variable_merges_.end() && i->second.size() == merge_count_);
-    Node* phi = assembler_->raw_assembler_->Phi(
-        var.first->rep_, static_cast<int>(merge_count_), &(i->second[0]));
-    variable_phis_[var_impl] = phi;
-  }
-
-  // Bind all variables to a merge phi, the common value along all paths or
-  // null.
-  for (auto var : assembler_->variables_) {
-    auto i = variable_phis_.find(var);
-    if (i != variable_phis_.end()) {
-      var->value_ = i->second;
-    } else {
-      auto j = variable_merges_.find(var);
-      if (j != variable_merges_.end() && j->second.size() == merge_count_) {
-        var->value_ = j->second.back();
-      } else {
-        var->value_ = nullptr;
-      }
-    }
-  }
-
-  bound_ = true;
-}
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
diff --git a/src/compiler/code-stub-assembler.h b/src/compiler/code-stub-assembler.h
deleted file mode 100644
index 9fcb890..0000000
--- a/src/compiler/code-stub-assembler.h
+++ /dev/null
@@ -1,475 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_COMPILER_CODE_STUB_ASSEMBLER_H_
-#define V8_COMPILER_CODE_STUB_ASSEMBLER_H_
-
-#include <map>
-
-// Clients of this interface shouldn't depend on lots of compiler internals.
-// Do not include anything from src/compiler here!
-#include "src/allocation.h"
-#include "src/builtins.h"
-#include "src/heap/heap.h"
-#include "src/machine-type.h"
-#include "src/runtime/runtime.h"
-#include "src/zone-containers.h"
-
-namespace v8 {
-namespace internal {
-
-class Callable;
-class CallInterfaceDescriptor;
-class Isolate;
-class Factory;
-class Zone;
-
-namespace compiler {
-
-class CallDescriptor;
-class Graph;
-class Node;
-class Operator;
-class RawMachineAssembler;
-class RawMachineLabel;
-class Schedule;
-
-#define CODE_STUB_ASSEMBLER_COMPARE_BINARY_OP_LIST(V) \
-  V(Float32Equal)                                     \
-  V(Float32LessThan)                                  \
-  V(Float32LessThanOrEqual)                           \
-  V(Float32GreaterThan)                               \
-  V(Float32GreaterThanOrEqual)                        \
-  V(Float64Equal)                                     \
-  V(Float64LessThan)                                  \
-  V(Float64LessThanOrEqual)                           \
-  V(Float64GreaterThan)                               \
-  V(Float64GreaterThanOrEqual)                        \
-  V(Int32GreaterThan)                                 \
-  V(Int32GreaterThanOrEqual)                          \
-  V(Int32LessThan)                                    \
-  V(Int32LessThanOrEqual)                             \
-  V(IntPtrLessThan)                                   \
-  V(IntPtrLessThanOrEqual)                            \
-  V(Uint32LessThan)                                   \
-  V(UintPtrGreaterThanOrEqual)                        \
-  V(WordEqual)                                        \
-  V(WordNotEqual)                                     \
-  V(Word32Equal)                                      \
-  V(Word32NotEqual)                                   \
-  V(Word64Equal)                                      \
-  V(Word64NotEqual)
-
-#define CODE_STUB_ASSEMBLER_BINARY_OP_LIST(V)   \
-  CODE_STUB_ASSEMBLER_COMPARE_BINARY_OP_LIST(V) \
-  V(Float64Add)                                 \
-  V(Float64Sub)                                 \
-  V(Float64InsertLowWord32)                     \
-  V(Float64InsertHighWord32)                    \
-  V(IntPtrAdd)                                  \
-  V(IntPtrAddWithOverflow)                      \
-  V(IntPtrSub)                                  \
-  V(IntPtrSubWithOverflow)                      \
-  V(Int32Add)                                   \
-  V(Int32AddWithOverflow)                       \
-  V(Int32Sub)                                   \
-  V(Int32Mul)                                   \
-  V(WordOr)                                     \
-  V(WordAnd)                                    \
-  V(WordXor)                                    \
-  V(WordShl)                                    \
-  V(WordShr)                                    \
-  V(WordSar)                                    \
-  V(WordRor)                                    \
-  V(Word32Or)                                   \
-  V(Word32And)                                  \
-  V(Word32Xor)                                  \
-  V(Word32Shl)                                  \
-  V(Word32Shr)                                  \
-  V(Word32Sar)                                  \
-  V(Word32Ror)                                  \
-  V(Word64Or)                                   \
-  V(Word64And)                                  \
-  V(Word64Xor)                                  \
-  V(Word64Shr)                                  \
-  V(Word64Sar)                                  \
-  V(Word64Ror)
-
-#define CODE_STUB_ASSEMBLER_UNARY_OP_LIST(V) \
-  V(Float64Neg)                              \
-  V(Float64Sqrt)                             \
-  V(ChangeFloat64ToUint32)                   \
-  V(ChangeInt32ToFloat64)                    \
-  V(ChangeInt32ToInt64)                      \
-  V(ChangeUint32ToFloat64)                   \
-  V(ChangeUint32ToUint64)                    \
-  V(Word32Clz)
-
-class CodeStubAssembler {
- public:
-  // Create with CallStub linkage.
-  // |result_size| specifies the number of results returned by the stub.
-  // TODO(rmcilroy): move result_size to the CallInterfaceDescriptor.
-  CodeStubAssembler(Isolate* isolate, Zone* zone,
-                    const CallInterfaceDescriptor& descriptor,
-                    Code::Flags flags, const char* name,
-                    size_t result_size = 1);
-
-  // Create with JSCall linkage.
-  CodeStubAssembler(Isolate* isolate, Zone* zone, int parameter_count,
-                    Code::Flags flags, const char* name);
-
-  virtual ~CodeStubAssembler();
-
-  Handle<Code> GenerateCode();
-
-  class Label;
-  class Variable {
-   public:
-    explicit Variable(CodeStubAssembler* assembler, MachineRepresentation rep);
-    void Bind(Node* value);
-    Node* value() const;
-    MachineRepresentation rep() const;
-    bool IsBound() const;
-
-   private:
-    friend class CodeStubAssembler;
-    class Impl;
-    Impl* impl_;
-  };
-
-  enum AllocationFlag : uint8_t {
-    kNone = 0,
-    kDoubleAlignment = 1,
-    kPretenured = 1 << 1
-  };
-
-  typedef base::Flags<AllocationFlag> AllocationFlags;
-
-  // ===========================================================================
-  // Base Assembler
-  // ===========================================================================
-
-  // Constants.
-  Node* Int32Constant(int value);
-  Node* IntPtrConstant(intptr_t value);
-  Node* NumberConstant(double value);
-  Node* SmiConstant(Smi* value);
-  Node* HeapConstant(Handle<HeapObject> object);
-  Node* BooleanConstant(bool value);
-  Node* ExternalConstant(ExternalReference address);
-  Node* Float64Constant(double value);
-  Node* BooleanMapConstant();
-  Node* HeapNumberMapConstant();
-  Node* NullConstant();
-  Node* UndefinedConstant();
-
-  Node* Parameter(int value);
-  void Return(Node* value);
-
-  void Bind(Label* label);
-  void Goto(Label* label);
-  void GotoIf(Node* condition, Label* true_label);
-  void GotoUnless(Node* condition, Label* false_label);
-  void Branch(Node* condition, Label* true_label, Label* false_label);
-
-  void Switch(Node* index, Label* default_label, int32_t* case_values,
-              Label** case_labels, size_t case_count);
-
-  // Access to the frame pointer
-  Node* LoadFramePointer();
-  Node* LoadParentFramePointer();
-
-  // Access to the stack pointer
-  Node* LoadStackPointer();
-
-  // Load raw memory location.
-  Node* Load(MachineType rep, Node* base);
-  Node* Load(MachineType rep, Node* base, Node* index);
-
-  // Store value to raw memory location.
-  Node* Store(MachineRepresentation rep, Node* base, Node* value);
-  Node* Store(MachineRepresentation rep, Node* base, Node* index, Node* value);
-  Node* StoreNoWriteBarrier(MachineRepresentation rep, Node* base, Node* value);
-  Node* StoreNoWriteBarrier(MachineRepresentation rep, Node* base, Node* index,
-                            Node* value);
-
-// Basic arithmetic operations.
-#define DECLARE_CODE_STUB_ASSEMBER_BINARY_OP(name) Node* name(Node* a, Node* b);
-  CODE_STUB_ASSEMBLER_BINARY_OP_LIST(DECLARE_CODE_STUB_ASSEMBER_BINARY_OP)
-#undef DECLARE_CODE_STUB_ASSEMBER_BINARY_OP
-
-  Node* WordShl(Node* value, int shift);
-
-// Unary
-#define DECLARE_CODE_STUB_ASSEMBER_UNARY_OP(name) Node* name(Node* a);
-  CODE_STUB_ASSEMBLER_UNARY_OP_LIST(DECLARE_CODE_STUB_ASSEMBER_UNARY_OP)
-#undef DECLARE_CODE_STUB_ASSEMBER_UNARY_OP
-
-  // Projections
-  Node* Projection(int index, Node* value);
-
-  // Calls
-  Node* CallRuntime(Runtime::FunctionId function_id, Node* context);
-  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1);
-  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1,
-                    Node* arg2);
-  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1,
-                    Node* arg2, Node* arg3);
-  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1,
-                    Node* arg2, Node* arg3, Node* arg4);
-  Node* CallRuntime(Runtime::FunctionId function_id, Node* context, Node* arg1,
-                    Node* arg2, Node* arg3, Node* arg4, Node* arg5);
-
-  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context);
-  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context,
-                        Node* arg1);
-  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context,
-                        Node* arg1, Node* arg2);
-  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context,
-                        Node* arg1, Node* arg2, Node* arg3);
-  Node* TailCallRuntime(Runtime::FunctionId function_id, Node* context,
-                        Node* arg1, Node* arg2, Node* arg3, Node* arg4);
-
-  Node* CallStub(Callable const& callable, Node* context, Node* arg1,
-                 size_t result_size = 1);
-
-  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
-                 Node* context, Node* arg1, size_t result_size = 1);
-  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
-                 Node* context, Node* arg1, Node* arg2, size_t result_size = 1);
-  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
-                 Node* context, Node* arg1, Node* arg2, Node* arg3,
-                 size_t result_size = 1);
-  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
-                 Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4,
-                 size_t result_size = 1);
-  Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
-                 Node* context, Node* arg1, Node* arg2, Node* arg3, Node* arg4,
-                 Node* arg5, size_t result_size = 1);
-
-  Node* TailCallStub(Callable const& callable, Node* context, Node* arg1,
-                     Node* arg2, size_t result_size = 1);
-
-  Node* TailCallStub(const CallInterfaceDescriptor& descriptor, Node* target,
-                     Node* context, Node* arg1, Node* arg2,
-                     size_t result_size = 1);
-
-  Node* TailCall(const CallInterfaceDescriptor& descriptor, Node* target,
-                 Node** args, size_t result_size = 1);
-
-  // ===========================================================================
-  // Macros
-  // ===========================================================================
-
-  // Float64 operations.
-  Node* Float64Ceil(Node* x);
-  Node* Float64Floor(Node* x);
-  Node* Float64Round(Node* x);
-  Node* Float64Trunc(Node* x);
-
-  // Tag a Word as a Smi value.
-  Node* SmiTag(Node* value);
-  // Untag a Smi value as a Word.
-  Node* SmiUntag(Node* value);
-
-  // Smi conversions.
-  Node* SmiToFloat64(Node* value);
-  Node* SmiToWord32(Node* value);
-
-  // Smi operations.
-  Node* SmiAdd(Node* a, Node* b);
-  Node* SmiAddWithOverflow(Node* a, Node* b);
-  Node* SmiSub(Node* a, Node* b);
-  Node* SmiSubWithOverflow(Node* a, Node* b);
-  Node* SmiEqual(Node* a, Node* b);
-  Node* SmiLessThan(Node* a, Node* b);
-  Node* SmiLessThanOrEqual(Node* a, Node* b);
-  Node* SmiMin(Node* a, Node* b);
-
-  // Load a value from the root array.
-  Node* LoadRoot(Heap::RootListIndex root_index);
-
-  // Check a value for smi-ness
-  Node* WordIsSmi(Node* a);
-
-  // Check that the value is a positive smi.
-  Node* WordIsPositiveSmi(Node* a);
-
-  // Load an object pointer from a buffer that isn't in the heap.
-  Node* LoadBufferObject(Node* buffer, int offset,
-                         MachineType rep = MachineType::AnyTagged());
-  // Load a field from an object on the heap.
-  Node* LoadObjectField(Node* object, int offset,
-                        MachineType rep = MachineType::AnyTagged());
-  // Load the floating point value of a HeapNumber.
-  Node* LoadHeapNumberValue(Node* object);
-  // Store the floating point value of a HeapNumber.
-  Node* StoreHeapNumberValue(Node* object, Node* value);
-  // Truncate the floating point value of a HeapNumber to an Int32.
-  Node* TruncateHeapNumberValueToWord32(Node* object);
-  // Load the bit field of a Map.
-  Node* LoadMapBitField(Node* map);
-  // Load bit field 2 of a map.
-  Node* LoadMapBitField2(Node* map);
-  // Load bit field 3 of a map.
-  Node* LoadMapBitField3(Node* map);
-  // Load the instance type of a map.
-  Node* LoadMapInstanceType(Node* map);
-  // Load the instance descriptors of a map.
-  Node* LoadMapDescriptors(Node* map);
-
-  // Load the hash field of a name.
-  Node* LoadNameHash(Node* name);
-
-  // Load an array element from a FixedArray.
-  Node* LoadFixedArrayElementInt32Index(Node* object, Node* int32_index,
-                                        int additional_offset = 0);
-  Node* LoadFixedArrayElementSmiIndex(Node* object, Node* smi_index,
-                                      int additional_offset = 0);
-  Node* LoadFixedArrayElementConstantIndex(Node* object, int index);
-
-  // Allocate an object of the given size.
-  Node* Allocate(int size, AllocationFlags flags = kNone);
-  // Allocate a HeapNumber without initializing its value.
-  Node* AllocateHeapNumber();
-  // Allocate a HeapNumber with a specific value.
-  Node* AllocateHeapNumberWithValue(Node* value);
-
-  // Store an array element to a FixedArray.
-  Node* StoreFixedArrayElementNoWriteBarrier(Node* object, Node* index,
-                                             Node* value);
-  // Load the Map of an HeapObject.
-  Node* LoadMap(Node* object);
-  // Store the Map of an HeapObject.
-  Node* StoreMapNoWriteBarrier(Node* object, Node* map);
-  // Load the instance type of an HeapObject.
-  Node* LoadInstanceType(Node* object);
-
-  // Load the elements backing store of a JSObject.
-  Node* LoadElements(Node* object);
-  // Load the length of a fixed array base instance.
-  Node* LoadFixedArrayBaseLength(Node* array);
-
-  // Returns a node that is true if the given bit is set in |word32|.
-  template <typename T>
-  Node* BitFieldDecode(Node* word32) {
-    return BitFieldDecode(word32, T::kShift, T::kMask);
-  }
-
-  Node* BitFieldDecode(Node* word32, uint32_t shift, uint32_t mask);
-
-  // Conversions.
-  Node* ChangeFloat64ToTagged(Node* value);
-  Node* ChangeInt32ToTagged(Node* value);
-  Node* TruncateTaggedToFloat64(Node* context, Node* value);
-  Node* TruncateTaggedToWord32(Node* context, Node* value);
-
-  // Branching helpers.
-  // TODO(danno): Can we be more cleverish wrt. edge-split?
-  void BranchIf(Node* condition, Label* if_true, Label* if_false);
-
-#define BRANCH_HELPER(name)                                                \
-  void BranchIf##name(Node* a, Node* b, Label* if_true, Label* if_false) { \
-    BranchIf(name(a, b), if_true, if_false);                               \
-  }
-  CODE_STUB_ASSEMBLER_COMPARE_BINARY_OP_LIST(BRANCH_HELPER)
-#undef BRANCH_HELPER
-
-  void BranchIfSmiLessThan(Node* a, Node* b, Label* if_true, Label* if_false) {
-    BranchIf(SmiLessThan(a, b), if_true, if_false);
-  }
-
-  void BranchIfSmiLessThanOrEqual(Node* a, Node* b, Label* if_true,
-                                  Label* if_false) {
-    BranchIf(SmiLessThanOrEqual(a, b), if_true, if_false);
-  }
-
-  void BranchIfFloat64IsNaN(Node* value, Label* if_true, Label* if_false) {
-    BranchIfFloat64Equal(value, value, if_false, if_true);
-  }
-
-  // Helpers which delegate to RawMachineAssembler.
-  Factory* factory() const;
-  Isolate* isolate() const;
-  Zone* zone() const;
-
- protected:
-  // Protected helpers which delegate to RawMachineAssembler.
-  Graph* graph() const;
-
-  // Enables subclasses to perform operations before and after a call.
-  virtual void CallPrologue();
-  virtual void CallEpilogue();
-
- private:
-  friend class CodeStubAssemblerTester;
-
-  CodeStubAssembler(Isolate* isolate, Zone* zone,
-                    CallDescriptor* call_descriptor, Code::Flags flags,
-                    const char* name);
-
-  Node* CallN(CallDescriptor* descriptor, Node* code_target, Node** args);
-  Node* TailCallN(CallDescriptor* descriptor, Node* code_target, Node** args);
-
-  Node* SmiShiftBitsConstant();
-
-  Node* AllocateRawAligned(Node* size_in_bytes, AllocationFlags flags,
-                           Node* top_address, Node* limit_address);
-  Node* AllocateRawUnaligned(Node* size_in_bytes, AllocationFlags flags,
-                             Node* top_adddress, Node* limit_address);
-
-  base::SmartPointer<RawMachineAssembler> raw_assembler_;
-  Code::Flags flags_;
-  const char* name_;
-  bool code_generated_;
-  ZoneVector<Variable::Impl*> variables_;
-
-  DISALLOW_COPY_AND_ASSIGN(CodeStubAssembler);
-};
-
-DEFINE_OPERATORS_FOR_FLAGS(CodeStubAssembler::AllocationFlags);
-
-class CodeStubAssembler::Label {
- public:
-  enum Type { kDeferred, kNonDeferred };
-
-  explicit Label(CodeStubAssembler* assembler,
-                 CodeStubAssembler::Label::Type type =
-                     CodeStubAssembler::Label::kNonDeferred)
-      : CodeStubAssembler::Label(assembler, 0, nullptr, type) {}
-  Label(CodeStubAssembler* assembler,
-        CodeStubAssembler::Variable* merged_variable,
-        CodeStubAssembler::Label::Type type =
-            CodeStubAssembler::Label::kNonDeferred)
-      : CodeStubAssembler::Label(assembler, 1, &merged_variable, type) {}
-  Label(CodeStubAssembler* assembler, int merged_variable_count,
-        CodeStubAssembler::Variable** merged_variables,
-        CodeStubAssembler::Label::Type type =
-            CodeStubAssembler::Label::kNonDeferred);
-  ~Label() {}
-
- private:
-  friend class CodeStubAssembler;
-
-  void Bind();
-  void MergeVariables();
-
-  bool bound_;
-  size_t merge_count_;
-  CodeStubAssembler* assembler_;
-  RawMachineLabel* label_;
-  // Map of variables that need to be merged to their phi nodes (or placeholders
-  // for those phis).
-  std::map<Variable::Impl*, Node*> variable_phis_;
-  // Map of variables to the list of value nodes that have been added from each
-  // merge path in their order of merging.
-  std::map<Variable::Impl*, std::vector<Node*>> variable_merges_;
-};
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
-
-#endif  // V8_COMPILER_CODE_STUB_ASSEMBLER_H_
diff --git a/src/compiler/common-node-cache.cc b/src/compiler/common-node-cache.cc
index a0ae6e8..fa4ca34 100644
--- a/src/compiler/common-node-cache.cc
+++ b/src/compiler/common-node-cache.cc
@@ -17,7 +17,7 @@
 
 
 Node** CommonNodeCache::FindHeapConstant(Handle<HeapObject> value) {
-  return heap_constants_.Find(zone(), bit_cast<intptr_t>(value.location()));
+  return heap_constants_.Find(zone(), bit_cast<intptr_t>(value.address()));
 }
 
 
@@ -29,6 +29,8 @@
   external_constants_.GetCachedNodes(nodes);
   number_constants_.GetCachedNodes(nodes);
   heap_constants_.GetCachedNodes(nodes);
+  relocatable_int32_constants_.GetCachedNodes(nodes);
+  relocatable_int64_constants_.GetCachedNodes(nodes);
 }
 
 }  // namespace compiler
diff --git a/src/compiler/common-node-cache.h b/src/compiler/common-node-cache.h
index 720bc15..cee0c4e 100644
--- a/src/compiler/common-node-cache.h
+++ b/src/compiler/common-node-cache.h
@@ -52,6 +52,14 @@
 
   Node** FindHeapConstant(Handle<HeapObject> value);
 
+  Node** FindRelocatableInt32Constant(int32_t value) {
+    return relocatable_int32_constants_.Find(zone(), value);
+  }
+
+  Node** FindRelocatableInt64Constant(int64_t value) {
+    return relocatable_int64_constants_.Find(zone(), value);
+  }
+
   // Return all nodes from the cache.
   void GetCachedNodes(ZoneVector<Node*>* nodes);
 
@@ -65,6 +73,8 @@
   IntPtrNodeCache external_constants_;
   Int64NodeCache number_constants_;
   IntPtrNodeCache heap_constants_;
+  Int32NodeCache relocatable_int32_constants_;
+  Int64NodeCache relocatable_int64_constants_;
   Zone* const zone_;
 
   DISALLOW_COPY_AND_ASSIGN(CommonNodeCache);
diff --git a/src/compiler/common-operator-reducer.cc b/src/compiler/common-operator-reducer.cc
index 22e16a2..2f48683 100644
--- a/src/compiler/common-operator-reducer.cc
+++ b/src/compiler/common-operator-reducer.cc
@@ -27,10 +27,6 @@
       Int32Matcher mcond(cond);
       return mcond.Value() ? Decision::kTrue : Decision::kFalse;
     }
-    case IrOpcode::kInt64Constant: {
-      Int64Matcher mcond(cond);
-      return mcond.Value() ? Decision::kTrue : Decision::kFalse;
-    }
     case IrOpcode::kHeapConstant: {
       HeapObjectMatcher mcond(cond);
       return mcond.Value()->BooleanValue() ? Decision::kTrue : Decision::kFalse;
@@ -70,8 +66,6 @@
       return ReduceReturn(node);
     case IrOpcode::kSelect:
       return ReduceSelect(node);
-    case IrOpcode::kGuard:
-      return ReduceGuard(node);
     default:
       break;
   }
@@ -396,16 +390,6 @@
 }
 
 
-Reduction CommonOperatorReducer::ReduceGuard(Node* node) {
-  DCHECK_EQ(IrOpcode::kGuard, node->opcode());
-  Node* const input = NodeProperties::GetValueInput(node, 0);
-  Type* const input_type = NodeProperties::GetTypeOrAny(input);
-  Type* const guard_type = OpParameter<Type*>(node);
-  if (input_type->Is(guard_type)) return Replace(input);
-  return NoChange();
-}
-
-
 Reduction CommonOperatorReducer::Change(Node* node, Operator const* op,
                                         Node* a) {
   node->ReplaceInput(0, a);
diff --git a/src/compiler/common-operator-reducer.h b/src/compiler/common-operator-reducer.h
index 49d9f1d..b7aeeb7 100644
--- a/src/compiler/common-operator-reducer.h
+++ b/src/compiler/common-operator-reducer.h
@@ -36,7 +36,6 @@
   Reduction ReducePhi(Node* node);
   Reduction ReduceReturn(Node* node);
   Reduction ReduceSelect(Node* node);
-  Reduction ReduceGuard(Node* node);
 
   Reduction Change(Node* node, Operator const* op, Node* a);
   Reduction Change(Node* node, Operator const* op, Node* a, Node* b);
diff --git a/src/compiler/common-operator.cc b/src/compiler/common-operator.cc
index 3bb1b34..d3f6972 100644
--- a/src/compiler/common-operator.cc
+++ b/src/compiler/common-operator.cc
@@ -98,6 +98,11 @@
   return OpParameter<SelectParameters>(op);
 }
 
+CallDescriptor const* CallDescriptorOf(const Operator* const op) {
+  DCHECK(op->opcode() == IrOpcode::kCall ||
+         op->opcode() == IrOpcode::kTailCall);
+  return OpParameter<CallDescriptor const*>(op);
+}
 
 size_t ProjectionIndexOf(const Operator* const op) {
   DCHECK_EQ(IrOpcode::kProjection, op->opcode());
@@ -142,6 +147,26 @@
   return os;
 }
 
+bool operator==(RelocatablePtrConstantInfo const& lhs,
+                RelocatablePtrConstantInfo const& rhs) {
+  return lhs.rmode() == rhs.rmode() && lhs.value() == rhs.value() &&
+         lhs.type() == rhs.type();
+}
+
+bool operator!=(RelocatablePtrConstantInfo const& lhs,
+                RelocatablePtrConstantInfo const& rhs) {
+  return !(lhs == rhs);
+}
+
+size_t hash_value(RelocatablePtrConstantInfo const& p) {
+  return base::hash_combine(p.value(), p.rmode(), p.type());
+}
+
+std::ostream& operator<<(std::ostream& os,
+                         RelocatablePtrConstantInfo const& p) {
+  return os << p.value() << "|" << p.rmode() << "|" << p.type();
+}
+
 #define CACHED_OP_LIST(V)                                    \
   V(Dead, Operator::kFoldable, 0, 0, 0, 1, 1, 1)             \
   V(DeoptimizeIf, Operator::kFoldable, 2, 1, 1, 0, 0, 1)     \
@@ -154,6 +179,7 @@
   V(Terminate, Operator::kKontrol, 0, 1, 1, 0, 0, 1)         \
   V(OsrNormalEntry, Operator::kFoldable, 0, 1, 1, 0, 1, 1)   \
   V(OsrLoopEntry, Operator::kFoldable, 0, 1, 1, 0, 1, 1)     \
+  V(CheckPoint, Operator::kKontrol, 1, 1, 1, 0, 1, 0)        \
   V(BeginRegion, Operator::kNoThrow, 0, 1, 0, 0, 1, 0)       \
   V(FinishRegion, Operator::kNoThrow, 1, 1, 0, 1, 1, 0)
 
@@ -668,6 +694,23 @@
       value);                                         // parameter
 }
 
+const Operator* CommonOperatorBuilder::RelocatableInt32Constant(
+    int32_t value, RelocInfo::Mode rmode) {
+  return new (zone()) Operator1<RelocatablePtrConstantInfo>(  // --
+      IrOpcode::kRelocatableInt32Constant, Operator::kPure,   // opcode
+      "RelocatableInt32Constant",                             // name
+      0, 0, 0, 1, 0, 0,                                       // counts
+      RelocatablePtrConstantInfo(value, rmode));              // parameter
+}
+
+const Operator* CommonOperatorBuilder::RelocatableInt64Constant(
+    int64_t value, RelocInfo::Mode rmode) {
+  return new (zone()) Operator1<RelocatablePtrConstantInfo>(  // --
+      IrOpcode::kRelocatableInt64Constant, Operator::kPure,   // opcode
+      "RelocatableInt64Constant",                             // name
+      0, 0, 0, 1, 0, 0,                                       // counts
+      RelocatablePtrConstantInfo(value, rmode));              // parameter
+}
 
 const Operator* CommonOperatorBuilder::Select(MachineRepresentation rep,
                                               BranchHint hint) {
@@ -717,24 +760,6 @@
 }
 
 
-const Operator* CommonOperatorBuilder::Guard(Type* type) {
-  return new (zone()) Operator1<Type*>(      // --
-      IrOpcode::kGuard, Operator::kKontrol,  // opcode
-      "Guard",                               // name
-      1, 0, 1, 1, 0, 0,                      // counts
-      type);                                 // parameter
-}
-
-
-const Operator* CommonOperatorBuilder::EffectSet(int arguments) {
-  DCHECK(arguments > 1);                      // Disallow empty/singleton sets.
-  return new (zone()) Operator(               // --
-      IrOpcode::kEffectSet, Operator::kPure,  // opcode
-      "EffectSet",                            // name
-      0, arguments, 0, 0, 1, 0);              // counts
-}
-
-
 const Operator* CommonOperatorBuilder::StateValues(int arguments) {
   switch (arguments) {
 #define CACHED_STATE_VALUES(arguments) \
diff --git a/src/compiler/common-operator.h b/src/compiler/common-operator.h
index 7c59f47..c2a7a37 100644
--- a/src/compiler/common-operator.h
+++ b/src/compiler/common-operator.h
@@ -5,17 +5,13 @@
 #ifndef V8_COMPILER_COMMON_OPERATOR_H_
 #define V8_COMPILER_COMMON_OPERATOR_H_
 
+#include "src/assembler.h"
 #include "src/compiler/frame-states.h"
 #include "src/machine-type.h"
 #include "src/zone-containers.h"
 
 namespace v8 {
 namespace internal {
-
-// Forward declarations.
-class ExternalReference;
-class Type;
-
 namespace compiler {
 
 // Forward declarations.
@@ -88,6 +84,7 @@
 
 SelectParameters const& SelectParametersOf(const Operator* const);
 
+CallDescriptor const* CallDescriptorOf(const Operator* const);
 
 size_t ProjectionIndexOf(const Operator* const);
 
@@ -114,6 +111,31 @@
 int ParameterIndexOf(const Operator* const);
 const ParameterInfo& ParameterInfoOf(const Operator* const);
 
+class RelocatablePtrConstantInfo final {
+ public:
+  enum Type { kInt32, kInt64 };
+
+  RelocatablePtrConstantInfo(int32_t value, RelocInfo::Mode rmode)
+      : value_(value), rmode_(rmode), type_(kInt32) {}
+  RelocatablePtrConstantInfo(int64_t value, RelocInfo::Mode rmode)
+      : value_(value), rmode_(rmode), type_(kInt64) {}
+
+  intptr_t value() const { return value_; }
+  RelocInfo::Mode rmode() const { return rmode_; }
+  Type type() const { return type_; }
+
+ private:
+  intptr_t value_;
+  RelocInfo::Mode rmode_;
+  Type type_;
+};
+
+bool operator==(RelocatablePtrConstantInfo const& lhs,
+                RelocatablePtrConstantInfo const& rhs);
+bool operator!=(RelocatablePtrConstantInfo const& lhs,
+                RelocatablePtrConstantInfo const& rhs);
+std::ostream& operator<<(std::ostream&, RelocatablePtrConstantInfo const&);
+size_t hash_value(RelocatablePtrConstantInfo const& p);
 
 // Interface for building common operators that can be used at any level of IR,
 // including JavaScript, mid-level, and low-level.
@@ -155,12 +177,16 @@
   const Operator* NumberConstant(volatile double);
   const Operator* HeapConstant(const Handle<HeapObject>&);
 
+  const Operator* RelocatableInt32Constant(int32_t value,
+                                           RelocInfo::Mode rmode);
+  const Operator* RelocatableInt64Constant(int64_t value,
+                                           RelocInfo::Mode rmode);
+
   const Operator* Select(MachineRepresentation, BranchHint = BranchHint::kNone);
   const Operator* Phi(MachineRepresentation representation,
                       int value_input_count);
   const Operator* EffectPhi(int effect_input_count);
-  const Operator* EffectSet(int arguments);
-  const Operator* Guard(Type* type);
+  const Operator* CheckPoint();
   const Operator* BeginRegion();
   const Operator* FinishRegion();
   const Operator* StateValues(int arguments);
diff --git a/src/compiler/effect-control-linearizer.cc b/src/compiler/effect-control-linearizer.cc
new file mode 100644
index 0000000..716723b
--- /dev/null
+++ b/src/compiler/effect-control-linearizer.cc
@@ -0,0 +1,983 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/compiler/effect-control-linearizer.h"
+
+#include "src/code-factory.h"
+#include "src/compiler/access-builder.h"
+#include "src/compiler/js-graph.h"
+#include "src/compiler/linkage.h"
+#include "src/compiler/node-properties.h"
+#include "src/compiler/node.h"
+#include "src/compiler/schedule.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+EffectControlLinearizer::EffectControlLinearizer(JSGraph* js_graph,
+                                                 Schedule* schedule,
+                                                 Zone* temp_zone)
+    : js_graph_(js_graph), schedule_(schedule), temp_zone_(temp_zone) {}
+
+Graph* EffectControlLinearizer::graph() const { return js_graph_->graph(); }
+CommonOperatorBuilder* EffectControlLinearizer::common() const {
+  return js_graph_->common();
+}
+SimplifiedOperatorBuilder* EffectControlLinearizer::simplified() const {
+  return js_graph_->simplified();
+}
+MachineOperatorBuilder* EffectControlLinearizer::machine() const {
+  return js_graph_->machine();
+}
+
+namespace {
+
+struct BlockEffectControlData {
+  Node* current_effect = nullptr;  // New effect.
+  Node* current_control = nullptr;  // New control.
+};
+
+// Effect phis that need to be updated after the first pass.
+struct PendingEffectPhi {
+  Node* effect_phi;
+  BasicBlock* block;
+
+  PendingEffectPhi(Node* effect_phi, BasicBlock* block)
+      : effect_phi(effect_phi), block(block) {}
+};
+
+void UpdateEffectPhi(Node* node, BasicBlock* block,
+                     ZoneVector<BlockEffectControlData>* block_effects) {
+  // Update all inputs to an effect phi with the effects from the given
+  // block->effect map.
+  DCHECK_EQ(IrOpcode::kEffectPhi, node->opcode());
+  DCHECK_EQ(node->op()->EffectInputCount(), block->PredecessorCount());
+  for (int i = 0; i < node->op()->EffectInputCount(); i++) {
+    Node* input = node->InputAt(i);
+    BasicBlock* predecessor = block->PredecessorAt(static_cast<size_t>(i));
+    Node* input_effect =
+        (*block_effects)[predecessor->rpo_number()].current_effect;
+    if (input != input_effect) {
+      node->ReplaceInput(i, input_effect);
+    }
+  }
+}
+
+void UpdateBlockControl(BasicBlock* block,
+                        ZoneVector<BlockEffectControlData>* block_effects) {
+  Node* control = block->NodeAt(0);
+  DCHECK(NodeProperties::IsControl(control));
+
+  // Do not rewire the end node.
+  if (control->opcode() == IrOpcode::kEnd) return;
+
+  // Update all inputs to the given control node with the correct control.
+  DCHECK_EQ(control->op()->ControlInputCount(), block->PredecessorCount());
+  for (int i = 0; i < control->op()->ControlInputCount(); i++) {
+    Node* input = NodeProperties::GetControlInput(control, i);
+    BasicBlock* predecessor = block->PredecessorAt(static_cast<size_t>(i));
+    Node* input_control =
+        (*block_effects)[predecessor->rpo_number()].current_control;
+    if (input != input_control) {
+      NodeProperties::ReplaceControlInput(control, input_control, i);
+    }
+  }
+}
+
+bool HasIncomingBackEdges(BasicBlock* block) {
+  for (BasicBlock* pred : block->predecessors()) {
+    if (pred->rpo_number() >= block->rpo_number()) {
+      return true;
+    }
+  }
+  return false;
+}
+
+void RemoveRegionNode(Node* node) {
+  DCHECK(IrOpcode::kFinishRegion == node->opcode() ||
+         IrOpcode::kBeginRegion == node->opcode());
+  // Update the value/context uses to the value input of the finish node and
+  // the effect uses to the effect input.
+  for (Edge edge : node->use_edges()) {
+    DCHECK(!edge.from()->IsDead());
+    if (NodeProperties::IsEffectEdge(edge)) {
+      edge.UpdateTo(NodeProperties::GetEffectInput(node));
+    } else {
+      DCHECK(!NodeProperties::IsControlEdge(edge));
+      DCHECK(!NodeProperties::IsFrameStateEdge(edge));
+      edge.UpdateTo(node->InputAt(0));
+    }
+  }
+  node->Kill();
+}
+
+}  // namespace
+
+void EffectControlLinearizer::Run() {
+  ZoneVector<BlockEffectControlData> block_effects(temp_zone());
+  ZoneVector<PendingEffectPhi> pending_effect_phis(temp_zone());
+  ZoneVector<BasicBlock*> pending_block_controls(temp_zone());
+  block_effects.resize(schedule()->RpoBlockCount());
+  NodeVector inputs_buffer(temp_zone());
+
+  for (BasicBlock* block : *(schedule()->rpo_order())) {
+    size_t instr = 0;
+
+    // The control node should be the first.
+    Node* control = block->NodeAt(instr);
+    DCHECK(NodeProperties::IsControl(control));
+    // Update the control inputs.
+    if (HasIncomingBackEdges(block)) {
+      // If there are back edges, we need to update later because we have not
+      // computed the control yet. This should only happen for loops.
+      DCHECK_EQ(IrOpcode::kLoop, control->opcode());
+      pending_block_controls.push_back(block);
+    } else {
+      // If there are no back edges, we can update now.
+      UpdateBlockControl(block, &block_effects);
+    }
+    instr++;
+
+    // Iterate over the phis and update the effect phis.
+    Node* effect = nullptr;
+    Node* terminate = nullptr;
+    for (; instr < block->NodeCount(); instr++) {
+      Node* node = block->NodeAt(instr);
+      // Only go through the phis and effect phis.
+      if (node->opcode() == IrOpcode::kEffectPhi) {
+        // There should be at most one effect phi in a block.
+        DCHECK_NULL(effect);
+        // IfException blocks should not have effect phis.
+        DCHECK_NE(IrOpcode::kIfException, control->opcode());
+        effect = node;
+
+        // Make sure we update the inputs to the incoming blocks' effects.
+        if (HasIncomingBackEdges(block)) {
+          // In case of loops, we do not update the effect phi immediately
+          // because the back predecessor has not been handled yet. We just
+          // record the effect phi for later processing.
+          pending_effect_phis.push_back(PendingEffectPhi(node, block));
+        } else {
+          UpdateEffectPhi(node, block, &block_effects);
+        }
+      } else if (node->opcode() == IrOpcode::kPhi) {
+        // Just skip phis.
+      } else if (node->opcode() == IrOpcode::kTerminate) {
+        DCHECK(terminate == nullptr);
+        terminate = node;
+      } else {
+        break;
+      }
+    }
+
+    if (effect == nullptr) {
+      // There was no effect phi.
+      DCHECK(!HasIncomingBackEdges(block));
+      if (block == schedule()->start()) {
+        // Start block => effect is start.
+        DCHECK_EQ(graph()->start(), control);
+        effect = graph()->start();
+      } else if (control->opcode() == IrOpcode::kEnd) {
+        // End block is just a dummy, no effect needed.
+        DCHECK_EQ(BasicBlock::kNone, block->control());
+        DCHECK_EQ(1u, block->size());
+        effect = nullptr;
+      } else {
+        // If all the predecessors have the same effect, we can use it
+        // as our current effect.
+        int rpo_number = block->PredecessorAt(0)->rpo_number();
+        effect = block_effects[rpo_number].current_effect;
+        for (size_t i = 1; i < block->PredecessorCount(); i++) {
+          int rpo_number = block->PredecessorAt(i)->rpo_number();
+          if (block_effects[rpo_number].current_effect != effect) {
+            effect = nullptr;
+            break;
+          }
+        }
+        if (effect == nullptr) {
+          DCHECK_NE(IrOpcode::kIfException, control->opcode());
+          // The input blocks do not have the same effect. We have
+          // to create an effect phi node.
+          inputs_buffer.clear();
+          inputs_buffer.resize(block->PredecessorCount(), graph()->start());
+          inputs_buffer.push_back(control);
+          effect = graph()->NewNode(
+              common()->EffectPhi(static_cast<int>(block->PredecessorCount())),
+              static_cast<int>(inputs_buffer.size()), &(inputs_buffer.front()));
+          // Let us update the effect phi node later.
+          pending_effect_phis.push_back(PendingEffectPhi(effect, block));
+        } else if (control->opcode() == IrOpcode::kIfException) {
+          // The IfException is connected into the effect chain, so we need
+          // to update the effect here.
+          NodeProperties::ReplaceEffectInput(control, effect);
+          effect = control;
+        }
+      }
+    }
+
+    // Fixup the Terminate node.
+    if (terminate != nullptr) {
+      NodeProperties::ReplaceEffectInput(terminate, effect);
+    }
+
+    // Process the ordinary instructions.
+    for (; instr < block->NodeCount(); instr++) {
+      Node* node = block->NodeAt(instr);
+      ProcessNode(node, &effect, &control);
+    }
+
+    switch (block->control()) {
+      case BasicBlock::kGoto:
+      case BasicBlock::kNone:
+        break;
+
+      case BasicBlock::kCall:
+      case BasicBlock::kTailCall:
+      case BasicBlock::kBranch:
+      case BasicBlock::kSwitch:
+      case BasicBlock::kReturn:
+      case BasicBlock::kDeoptimize:
+      case BasicBlock::kThrow:
+        ProcessNode(block->control_input(), &effect, &control);
+        break;
+    }
+
+    // Store the effect for later use.
+    block_effects[block->rpo_number()].current_effect = effect;
+    block_effects[block->rpo_number()].current_control = control;
+  }
+
+  // Update the incoming edges of the effect phis that could not be processed
+  // during the first pass (because they could have incoming back edges).
+  for (const PendingEffectPhi& pending_effect_phi : pending_effect_phis) {
+    UpdateEffectPhi(pending_effect_phi.effect_phi, pending_effect_phi.block,
+                    &block_effects);
+  }
+  for (BasicBlock* pending_block_control : pending_block_controls) {
+    UpdateBlockControl(pending_block_control, &block_effects);
+  }
+}
+
+namespace {
+
+void TryScheduleCallIfSuccess(Node* node, Node** control) {
+  // Schedule the call's IfSuccess node if there is no exception use.
+  if (!NodeProperties::IsExceptionalCall(node)) {
+    for (Edge edge : node->use_edges()) {
+      if (NodeProperties::IsControlEdge(edge) &&
+          edge.from()->opcode() == IrOpcode::kIfSuccess) {
+        *control = edge.from();
+      }
+    }
+  }
+}
+
+}  // namespace
+
+void EffectControlLinearizer::ProcessNode(Node* node, Node** effect,
+                                          Node** control) {
+  // If the node needs to be wired into the effect/control chain, do this
+  // here.
+  if (TryWireInStateEffect(node, effect, control)) {
+    return;
+  }
+
+  // Remove the end markers of 'atomic' allocation region because the
+  // region should be wired-in now.
+  if (node->opcode() == IrOpcode::kFinishRegion ||
+      node->opcode() == IrOpcode::kBeginRegion) {
+    // Update the value uses to the value input of the finish node and
+    // the effect uses to the effect input.
+    return RemoveRegionNode(node);
+  }
+
+  // Special treatment for CheckPoint nodes.
+  // TODO(epertoso): Pickup the current frame state.
+  if (node->opcode() == IrOpcode::kCheckPoint) {
+    // Unlink the check point; effect uses will be updated to the incoming
+    // effect that is passed.
+    node->Kill();
+    return;
+  }
+
+  if (node->opcode() == IrOpcode::kIfSuccess) {
+    // We always schedule IfSuccess with its call, so skip it here.
+    DCHECK_EQ(IrOpcode::kCall, node->InputAt(0)->opcode());
+    // The IfSuccess node should not belong to an exceptional call node
+    // because such IfSuccess nodes should only start a basic block (and
+    // basic block start nodes are not handled in the ProcessNode method).
+    DCHECK(!NodeProperties::IsExceptionalCall(node->InputAt(0)));
+    return;
+  }
+
+  // If the node takes an effect, replace with the current one.
+  if (node->op()->EffectInputCount() > 0) {
+    DCHECK_EQ(1, node->op()->EffectInputCount());
+    Node* input_effect = NodeProperties::GetEffectInput(node);
+
+    if (input_effect != *effect) {
+      NodeProperties::ReplaceEffectInput(node, *effect);
+    }
+
+    // If the node produces an effect, update our current effect. (However,
+    // ignore new effect chains started with ValueEffect.)
+    if (node->op()->EffectOutputCount() > 0) {
+      DCHECK_EQ(1, node->op()->EffectOutputCount());
+      *effect = node;
+    }
+  } else {
+    // New effect chain is only started with a Start or ValueEffect node.
+    DCHECK(node->op()->EffectOutputCount() == 0 ||
+           node->opcode() == IrOpcode::kStart);
+  }
+
+  // Rewire control inputs.
+  for (int i = 0; i < node->op()->ControlInputCount(); i++) {
+    NodeProperties::ReplaceControlInput(node, *control, i);
+  }
+  // Update the current control and wire IfSuccess right after calls.
+  if (node->op()->ControlOutputCount() > 0) {
+    *control = node;
+    if (node->opcode() == IrOpcode::kCall) {
+      // Schedule the call's IfSuccess node (if there is no exception use).
+      TryScheduleCallIfSuccess(node, control);
+    }
+  }
+}
+
+bool EffectControlLinearizer::TryWireInStateEffect(Node* node, Node** effect,
+                                                   Node** control) {
+  ValueEffectControl state(nullptr, nullptr, nullptr);
+  switch (node->opcode()) {
+    case IrOpcode::kTypeGuard:
+      state = LowerTypeGuard(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeBitToTagged:
+      state = LowerChangeBitToTagged(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeInt31ToTaggedSigned:
+      state = LowerChangeInt31ToTaggedSigned(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeInt32ToTagged:
+      state = LowerChangeInt32ToTagged(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeUint32ToTagged:
+      state = LowerChangeUint32ToTagged(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeFloat64ToTagged:
+      state = LowerChangeFloat64ToTagged(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeTaggedSignedToInt32:
+      state = LowerChangeTaggedSignedToInt32(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeTaggedToBit:
+      state = LowerChangeTaggedToBit(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeTaggedToInt32:
+      state = LowerChangeTaggedToInt32(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeTaggedToUint32:
+      state = LowerChangeTaggedToUint32(node, *effect, *control);
+      break;
+    case IrOpcode::kChangeTaggedToFloat64:
+      state = LowerChangeTaggedToFloat64(node, *effect, *control);
+      break;
+    case IrOpcode::kTruncateTaggedToWord32:
+      state = LowerTruncateTaggedToWord32(node, *effect, *control);
+      break;
+    case IrOpcode::kObjectIsCallable:
+      state = LowerObjectIsCallable(node, *effect, *control);
+      break;
+    case IrOpcode::kObjectIsNumber:
+      state = LowerObjectIsNumber(node, *effect, *control);
+      break;
+    case IrOpcode::kObjectIsReceiver:
+      state = LowerObjectIsReceiver(node, *effect, *control);
+      break;
+    case IrOpcode::kObjectIsSmi:
+      state = LowerObjectIsSmi(node, *effect, *control);
+      break;
+    case IrOpcode::kObjectIsString:
+      state = LowerObjectIsString(node, *effect, *control);
+      break;
+    case IrOpcode::kObjectIsUndetectable:
+      state = LowerObjectIsUndetectable(node, *effect, *control);
+      break;
+    default:
+      return false;
+  }
+  NodeProperties::ReplaceUses(node, state.value);
+  *effect = state.effect;
+  *control = state.control;
+  return true;
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerTypeGuard(Node* node, Node* effect,
+                                        Node* control) {
+  Node* value = node->InputAt(0);
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeFloat64ToTagged(Node* node, Node* effect,
+                                                    Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* value32 = graph()->NewNode(machine()->RoundFloat64ToInt32(), value);
+  Node* check_same = graph()->NewNode(
+      machine()->Float64Equal(), value,
+      graph()->NewNode(machine()->ChangeInt32ToFloat64(), value32));
+  Node* branch_same = graph()->NewNode(common()->Branch(), check_same, control);
+
+  Node* if_smi = graph()->NewNode(common()->IfTrue(), branch_same);
+  Node* vsmi;
+  Node* if_box = graph()->NewNode(common()->IfFalse(), branch_same);
+
+  // Check if {value} is -0.
+  Node* check_zero = graph()->NewNode(machine()->Word32Equal(), value32,
+                                      jsgraph()->Int32Constant(0));
+  Node* branch_zero = graph()->NewNode(common()->Branch(BranchHint::kFalse),
+                                       check_zero, if_smi);
+
+  Node* if_zero = graph()->NewNode(common()->IfTrue(), branch_zero);
+  Node* if_notzero = graph()->NewNode(common()->IfFalse(), branch_zero);
+
+  // In case of 0, we need to check the high bits for the IEEE -0 pattern.
+  Node* check_negative = graph()->NewNode(
+      machine()->Int32LessThan(),
+      graph()->NewNode(machine()->Float64ExtractHighWord32(), value),
+      jsgraph()->Int32Constant(0));
+  Node* branch_negative = graph()->NewNode(common()->Branch(BranchHint::kFalse),
+                                           check_negative, if_zero);
+
+  Node* if_negative = graph()->NewNode(common()->IfTrue(), branch_negative);
+  Node* if_notnegative = graph()->NewNode(common()->IfFalse(), branch_negative);
+
+  // We need to create a box for negative 0.
+  if_smi = graph()->NewNode(common()->Merge(2), if_notzero, if_notnegative);
+  if_box = graph()->NewNode(common()->Merge(2), if_box, if_negative);
+
+  // On 64-bit machines we can just wrap the 32-bit integer in a smi, for 32-bit
+  // machines we need to deal with potential overflow and fallback to boxing.
+  if (machine()->Is64()) {
+    vsmi = ChangeInt32ToSmi(value32);
+  } else {
+    Node* smi_tag =
+        graph()->NewNode(machine()->Int32AddWithOverflow(), value32, value32);
+
+    Node* check_ovf = graph()->NewNode(common()->Projection(1), smi_tag);
+    Node* branch_ovf = graph()->NewNode(common()->Branch(BranchHint::kFalse),
+                                        check_ovf, if_smi);
+
+    Node* if_ovf = graph()->NewNode(common()->IfTrue(), branch_ovf);
+    if_box = graph()->NewNode(common()->Merge(2), if_ovf, if_box);
+
+    if_smi = graph()->NewNode(common()->IfFalse(), branch_ovf);
+    vsmi = graph()->NewNode(common()->Projection(0), smi_tag);
+  }
+
+  // Allocate the box for the {value}.
+  ValueEffectControl box = AllocateHeapNumberWithValue(value, effect, if_box);
+
+  control = graph()->NewNode(common()->Merge(2), if_smi, box.control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
+                           vsmi, box.value, control);
+  effect =
+      graph()->NewNode(common()->EffectPhi(2), effect, box.effect, control);
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeBitToTagged(Node* node, Node* effect,
+                                                Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* branch = graph()->NewNode(common()->Branch(), value, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* vtrue = jsgraph()->TrueConstant();
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* vfalse = jsgraph()->FalseConstant();
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
+                           vtrue, vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeInt31ToTaggedSigned(Node* node,
+                                                        Node* effect,
+                                                        Node* control) {
+  Node* value = node->InputAt(0);
+  value = ChangeInt32ToSmi(value);
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeInt32ToTagged(Node* node, Node* effect,
+                                                  Node* control) {
+  Node* value = node->InputAt(0);
+
+  if (machine()->Is64()) {
+    return ValueEffectControl(ChangeInt32ToSmi(value), effect, control);
+  }
+
+  Node* add = graph()->NewNode(machine()->Int32AddWithOverflow(), value, value);
+
+  Node* ovf = graph()->NewNode(common()->Projection(1), add);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kFalse), ovf, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  ValueEffectControl alloc =
+      AllocateHeapNumberWithValue(ChangeInt32ToFloat64(value), effect, if_true);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* vfalse = graph()->NewNode(common()->Projection(0), add);
+
+  Node* merge = graph()->NewNode(common()->Merge(2), alloc.control, if_false);
+  Node* phi = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
+                               alloc.value, vfalse, merge);
+  Node* ephi =
+      graph()->NewNode(common()->EffectPhi(2), alloc.effect, effect, merge);
+
+  return ValueEffectControl(phi, ephi, merge);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeUint32ToTagged(Node* node, Node* effect,
+                                                   Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = graph()->NewNode(machine()->Uint32LessThanOrEqual(), value,
+                                 SmiMaxValueConstant());
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* vtrue = ChangeUint32ToSmi(value);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  ValueEffectControl alloc = AllocateHeapNumberWithValue(
+      ChangeUint32ToFloat64(value), effect, if_false);
+
+  Node* merge = graph()->NewNode(common()->Merge(2), if_true, alloc.control);
+  Node* phi = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
+                               vtrue, alloc.value, merge);
+  Node* ephi =
+      graph()->NewNode(common()->EffectPhi(2), effect, alloc.effect, merge);
+
+  return ValueEffectControl(phi, ephi, merge);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeTaggedSignedToInt32(Node* node,
+                                                        Node* effect,
+                                                        Node* control) {
+  Node* value = node->InputAt(0);
+  value = ChangeSmiToInt32(value);
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeTaggedToBit(Node* node, Node* effect,
+                                                Node* control) {
+  Node* value = node->InputAt(0);
+  value = graph()->NewNode(machine()->WordEqual(), value,
+                           jsgraph()->TrueConstant());
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeTaggedToInt32(Node* node, Node* effect,
+                                                  Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = ChangeSmiToInt32(value);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    STATIC_ASSERT(HeapNumber::kValueOffset == Oddball::kToNumberRawOffset);
+    vfalse = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), value,
+        efalse, if_false);
+    vfalse = graph()->NewNode(machine()->ChangeFloat64ToInt32(), vfalse);
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kWord32, 2),
+                           vtrue, vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeTaggedToUint32(Node* node, Node* effect,
+                                                   Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = ChangeSmiToInt32(value);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    STATIC_ASSERT(HeapNumber::kValueOffset == Oddball::kToNumberRawOffset);
+    vfalse = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), value,
+        efalse, if_false);
+    vfalse = graph()->NewNode(machine()->ChangeFloat64ToUint32(), vfalse);
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kWord32, 2),
+                           vtrue, vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerChangeTaggedToFloat64(Node* node, Node* effect,
+                                                    Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue;
+  {
+    vtrue = ChangeSmiToInt32(value);
+    vtrue = graph()->NewNode(machine()->ChangeInt32ToFloat64(), vtrue);
+  }
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    STATIC_ASSERT(HeapNumber::kValueOffset == Oddball::kToNumberRawOffset);
+    vfalse = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), value,
+        efalse, if_false);
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kFloat64, 2),
+                           vtrue, vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerTruncateTaggedToWord32(Node* node, Node* effect,
+                                                     Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = ChangeSmiToInt32(value);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    STATIC_ASSERT(HeapNumber::kValueOffset == Oddball::kToNumberRawOffset);
+    vfalse = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), value,
+        efalse, if_false);
+    vfalse = graph()->NewNode(machine()->TruncateFloat64ToWord32(), vfalse);
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kWord32, 2),
+                           vtrue, vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerObjectIsCallable(Node* node, Node* effect,
+                                               Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kFalse), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = jsgraph()->Int32Constant(0);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    Node* value_map = efalse =
+        graph()->NewNode(simplified()->LoadField(AccessBuilder::ForMap()),
+                         value, efalse, if_false);
+    Node* value_bit_field = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForMapBitField()), value_map,
+        efalse, if_false);
+    vfalse = graph()->NewNode(
+        machine()->Word32Equal(),
+        jsgraph()->Int32Constant(1 << Map::kIsCallable),
+        graph()->NewNode(
+            machine()->Word32And(), value_bit_field,
+            jsgraph()->Int32Constant((1 << Map::kIsCallable) |
+                                     (1 << Map::kIsUndetectable))));
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kBit, 2), vtrue,
+                           vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerObjectIsNumber(Node* node, Node* effect,
+                                             Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch = graph()->NewNode(common()->Branch(), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = jsgraph()->Int32Constant(1);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    Node* value_map = efalse =
+        graph()->NewNode(simplified()->LoadField(AccessBuilder::ForMap()),
+                         value, efalse, if_false);
+    vfalse = graph()->NewNode(machine()->WordEqual(), value_map,
+                              jsgraph()->HeapNumberMapConstant());
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kBit, 2), vtrue,
+                           vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerObjectIsReceiver(Node* node, Node* effect,
+                                               Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kFalse), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = jsgraph()->Int32Constant(0);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    STATIC_ASSERT(LAST_TYPE == LAST_JS_RECEIVER_TYPE);
+    Node* value_map = efalse =
+        graph()->NewNode(simplified()->LoadField(AccessBuilder::ForMap()),
+                         value, efalse, if_false);
+    Node* value_instance_type = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForMapInstanceType()), value_map,
+        efalse, if_false);
+    vfalse = graph()->NewNode(machine()->Uint32LessThanOrEqual(),
+                              jsgraph()->Uint32Constant(FIRST_JS_RECEIVER_TYPE),
+                              value_instance_type);
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kBit, 2), vtrue,
+                           vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerObjectIsSmi(Node* node, Node* effect,
+                                          Node* control) {
+  Node* value = node->InputAt(0);
+  value = ObjectIsSmi(value);
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerObjectIsString(Node* node, Node* effect,
+                                             Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kFalse), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = jsgraph()->Int32Constant(0);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    Node* value_map = efalse =
+        graph()->NewNode(simplified()->LoadField(AccessBuilder::ForMap()),
+                         value, efalse, if_false);
+    Node* value_instance_type = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForMapInstanceType()), value_map,
+        efalse, if_false);
+    vfalse = graph()->NewNode(machine()->Uint32LessThan(), value_instance_type,
+                              jsgraph()->Uint32Constant(FIRST_NONSTRING_TYPE));
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kBit, 2), vtrue,
+                           vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerObjectIsUndetectable(Node* node, Node* effect,
+                                                   Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kFalse), check, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = jsgraph()->Int32Constant(0);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* efalse = effect;
+  Node* vfalse;
+  {
+    Node* value_map = efalse =
+        graph()->NewNode(simplified()->LoadField(AccessBuilder::ForMap()),
+                         value, efalse, if_false);
+    Node* value_bit_field = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForMapBitField()), value_map,
+        efalse, if_false);
+    vfalse = graph()->NewNode(
+        machine()->Word32Equal(),
+        graph()->NewNode(
+            machine()->Word32Equal(), jsgraph()->Int32Constant(0),
+            graph()->NewNode(
+                machine()->Word32And(), value_bit_field,
+                jsgraph()->Int32Constant(1 << Map::kIsUndetectable))),
+        jsgraph()->Int32Constant(0));
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kBit, 2), vtrue,
+                           vfalse, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::AllocateHeapNumberWithValue(Node* value, Node* effect,
+                                                     Node* control) {
+  Node* result = effect = graph()->NewNode(
+      simplified()->Allocate(NOT_TENURED),
+      jsgraph()->Int32Constant(HeapNumber::kSize), effect, control);
+  effect = graph()->NewNode(simplified()->StoreField(AccessBuilder::ForMap()),
+                            result, jsgraph()->HeapNumberMapConstant(), effect,
+                            control);
+  effect = graph()->NewNode(
+      simplified()->StoreField(AccessBuilder::ForHeapNumberValue()), result,
+      value, effect, control);
+  return ValueEffectControl(result, effect, control);
+}
+
+Node* EffectControlLinearizer::ChangeInt32ToSmi(Node* value) {
+  if (machine()->Is64()) {
+    value = graph()->NewNode(machine()->ChangeInt32ToInt64(), value);
+  }
+  return graph()->NewNode(machine()->WordShl(), value, SmiShiftBitsConstant());
+}
+
+Node* EffectControlLinearizer::ChangeUint32ToSmi(Node* value) {
+  if (machine()->Is64()) {
+    value = graph()->NewNode(machine()->ChangeUint32ToUint64(), value);
+  }
+  return graph()->NewNode(machine()->WordShl(), value, SmiShiftBitsConstant());
+}
+
+Node* EffectControlLinearizer::ChangeInt32ToFloat64(Node* value) {
+  return graph()->NewNode(machine()->ChangeInt32ToFloat64(), value);
+}
+
+Node* EffectControlLinearizer::ChangeUint32ToFloat64(Node* value) {
+  return graph()->NewNode(machine()->ChangeUint32ToFloat64(), value);
+}
+
+Node* EffectControlLinearizer::ChangeSmiToInt32(Node* value) {
+  value = graph()->NewNode(machine()->WordSar(), value, SmiShiftBitsConstant());
+  if (machine()->Is64()) {
+    value = graph()->NewNode(machine()->TruncateInt64ToInt32(), value);
+  }
+  return value;
+}
+
+Node* EffectControlLinearizer::ObjectIsSmi(Node* value) {
+  return graph()->NewNode(
+      machine()->WordEqual(),
+      graph()->NewNode(machine()->WordAnd(), value,
+                       jsgraph()->IntPtrConstant(kSmiTagMask)),
+      jsgraph()->IntPtrConstant(kSmiTag));
+}
+
+Node* EffectControlLinearizer::SmiMaxValueConstant() {
+  return jsgraph()->Int32Constant(Smi::kMaxValue);
+}
+
+Node* EffectControlLinearizer::SmiShiftBitsConstant() {
+  return jsgraph()->IntPtrConstant(kSmiShiftSize + kSmiTagSize);
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/src/compiler/effect-control-linearizer.h b/src/compiler/effect-control-linearizer.h
new file mode 100644
index 0000000..7d7f938
--- /dev/null
+++ b/src/compiler/effect-control-linearizer.h
@@ -0,0 +1,108 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_COMPILER_EFFECT_CONTROL_LINEARIZER_H_
+#define V8_COMPILER_EFFECT_CONTROL_LINEARIZER_H_
+
+#include "src/compiler/common-operator.h"
+#include "src/compiler/node.h"
+#include "src/compiler/simplified-operator.h"
+
+namespace v8 {
+namespace internal {
+
+class Zone;
+
+namespace compiler {
+
+class CommonOperatorBuilder;
+class SimplifiedOperatorBuilder;
+class MachineOperatorBuilder;
+class JSGraph;
+class Graph;
+class Schedule;
+
+class EffectControlLinearizer {
+ public:
+  EffectControlLinearizer(JSGraph* graph, Schedule* schedule, Zone* temp_zone);
+
+  void Run();
+
+ private:
+  void ProcessNode(Node* node, Node** current_effect, Node** control);
+
+  struct ValueEffectControl {
+    Node* value;
+    Node* effect;
+    Node* control;
+    ValueEffectControl(Node* value, Node* effect, Node* control)
+        : value(value), effect(effect), control(control) {}
+  };
+
+  bool TryWireInStateEffect(Node* node, Node** effect, Node** control);
+  ValueEffectControl LowerTypeGuard(Node* node, Node* effect, Node* control);
+  ValueEffectControl LowerChangeBitToTagged(Node* node, Node* effect,
+                                            Node* control);
+  ValueEffectControl LowerChangeInt31ToTaggedSigned(Node* node, Node* effect,
+                                                    Node* control);
+  ValueEffectControl LowerChangeInt32ToTagged(Node* node, Node* effect,
+                                              Node* control);
+  ValueEffectControl LowerChangeUint32ToTagged(Node* node, Node* effect,
+                                               Node* control);
+  ValueEffectControl LowerChangeFloat64ToTagged(Node* node, Node* effect,
+                                                Node* control);
+  ValueEffectControl LowerChangeTaggedSignedToInt32(Node* node, Node* effect,
+                                                    Node* control);
+  ValueEffectControl LowerChangeTaggedToBit(Node* node, Node* effect,
+                                            Node* control);
+  ValueEffectControl LowerChangeTaggedToInt32(Node* node, Node* effect,
+                                              Node* control);
+  ValueEffectControl LowerChangeTaggedToUint32(Node* node, Node* effect,
+                                               Node* control);
+  ValueEffectControl LowerChangeTaggedToFloat64(Node* node, Node* effect,
+                                                Node* control);
+  ValueEffectControl LowerTruncateTaggedToWord32(Node* node, Node* effect,
+                                                 Node* control);
+  ValueEffectControl LowerObjectIsCallable(Node* node, Node* effect,
+                                           Node* control);
+  ValueEffectControl LowerObjectIsNumber(Node* node, Node* effect,
+                                         Node* control);
+  ValueEffectControl LowerObjectIsReceiver(Node* node, Node* effect,
+                                           Node* control);
+  ValueEffectControl LowerObjectIsSmi(Node* node, Node* effect, Node* control);
+  ValueEffectControl LowerObjectIsString(Node* node, Node* effect,
+                                         Node* control);
+  ValueEffectControl LowerObjectIsUndetectable(Node* node, Node* effect,
+                                               Node* control);
+  ValueEffectControl AllocateHeapNumberWithValue(Node* node, Node* effect,
+                                                 Node* control);
+
+  Node* ChangeInt32ToSmi(Node* value);
+  Node* ChangeUint32ToSmi(Node* value);
+  Node* ChangeInt32ToFloat64(Node* value);
+  Node* ChangeUint32ToFloat64(Node* value);
+  Node* ChangeSmiToInt32(Node* value);
+  Node* ObjectIsSmi(Node* value);
+
+  Node* SmiMaxValueConstant();
+  Node* SmiShiftBitsConstant();
+
+  JSGraph* jsgraph() const { return js_graph_; }
+  Graph* graph() const;
+  Schedule* schedule() const { return schedule_; }
+  Zone* temp_zone() const { return temp_zone_; }
+  CommonOperatorBuilder* common() const;
+  SimplifiedOperatorBuilder* simplified() const;
+  MachineOperatorBuilder* machine() const;
+
+  JSGraph* js_graph_;
+  Schedule* schedule_;
+  Zone* temp_zone_;
+};
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_COMPILER_EFFECT_CONTROL_LINEARIZER_H_
diff --git a/src/compiler/escape-analysis-reducer.cc b/src/compiler/escape-analysis-reducer.cc
index 313b639..8402366 100644
--- a/src/compiler/escape-analysis-reducer.cc
+++ b/src/compiler/escape-analysis-reducer.cc
@@ -4,6 +4,7 @@
 
 #include "src/compiler/escape-analysis-reducer.h"
 
+#include "src/compiler/all-nodes.h"
 #include "src/compiler/js-graph.h"
 #include "src/counters.h"
 
@@ -28,8 +29,7 @@
       escape_analysis_(escape_analysis),
       zone_(zone),
       fully_reduced_(static_cast<int>(jsgraph->graph()->NodeCount() * 2), zone),
-      exists_virtual_allocate_(true) {}
-
+      exists_virtual_allocate_(escape_analysis->ExistsVirtualAllocate()) {}
 
 Reduction EscapeAnalysisReducer::Reduce(Node* node) {
   if (node->id() < static_cast<NodeId>(fully_reduced_.length()) &&
@@ -105,7 +105,7 @@
     fully_reduced_.Add(node->id());
   }
   if (Node* rep = escape_analysis()->GetReplacement(node)) {
-    counters()->turbo_escape_loads_replaced()->Increment();
+    isolate()->counters()->turbo_escape_loads_replaced()->Increment();
     TRACE("Replaced #%d (%s) with #%d (%s)\n", node->id(),
           node->op()->mnemonic(), rep->id(), rep->op()->mnemonic());
     ReplaceWithValue(node, rep);
@@ -138,7 +138,7 @@
   }
   if (escape_analysis()->IsVirtual(node)) {
     RelaxEffectsAndControls(node);
-    counters()->turbo_escape_allocs_replaced()->Increment();
+    isolate()->counters()->turbo_escape_allocs_replaced()->Increment();
     TRACE("Removed allocate #%d from effect chain\n", node->id());
     return Changed(node);
   }
@@ -328,40 +328,19 @@
 }
 
 
-Counters* EscapeAnalysisReducer::counters() const {
-  return jsgraph_->isolate()->counters();
-}
-
-
-class EscapeAnalysisVerifier final : public AdvancedReducer {
- public:
-  EscapeAnalysisVerifier(Editor* editor, EscapeAnalysis* escape_analysis)
-      : AdvancedReducer(editor), escape_analysis_(escape_analysis) {}
-
-  Reduction Reduce(Node* node) final {
-    switch (node->opcode()) {
-      case IrOpcode::kAllocate:
-        CHECK(!escape_analysis_->IsVirtual(node));
-        break;
-      default:
-        break;
-    }
-    return NoChange();
-  }
-
- private:
-  EscapeAnalysis* escape_analysis_;
-};
-
 void EscapeAnalysisReducer::VerifyReplacement() const {
 #ifdef DEBUG
-  GraphReducer graph_reducer(zone(), jsgraph()->graph());
-  EscapeAnalysisVerifier verifier(&graph_reducer, escape_analysis());
-  graph_reducer.AddReducer(&verifier);
-  graph_reducer.ReduceGraph();
+  AllNodes all(zone(), jsgraph()->graph());
+  for (Node* node : all.live) {
+    if (node->opcode() == IrOpcode::kAllocate) {
+      CHECK(!escape_analysis_->IsVirtual(node));
+    }
+  }
 #endif  // DEBUG
 }
 
+Isolate* EscapeAnalysisReducer::isolate() const { return jsgraph_->isolate(); }
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/escape-analysis-reducer.h b/src/compiler/escape-analysis-reducer.h
index 12487b1..ad67479 100644
--- a/src/compiler/escape-analysis-reducer.h
+++ b/src/compiler/escape-analysis-reducer.h
@@ -9,29 +9,22 @@
 #include "src/compiler/escape-analysis.h"
 #include "src/compiler/graph-reducer.h"
 
-
 namespace v8 {
 namespace internal {
-
-// Forward declarations.
-class Counters;
-
-
 namespace compiler {
 
 // Forward declarations.
 class JSGraph;
 
-
 class EscapeAnalysisReducer final : public AdvancedReducer {
  public:
   EscapeAnalysisReducer(Editor* editor, JSGraph* jsgraph,
                         EscapeAnalysis* escape_analysis, Zone* zone);
 
   Reduction Reduce(Node* node) final;
-  void SetExistsVirtualAllocate(bool exists) {
-    exists_virtual_allocate_ = exists;
-  }
+
+  // Verifies that all virtual allocation nodes have been dealt with. Run it
+  // after this reducer has been applied. Has no effect in release mode.
   void VerifyReplacement() const;
 
  private:
@@ -50,12 +43,12 @@
   JSGraph* jsgraph() const { return jsgraph_; }
   EscapeAnalysis* escape_analysis() const { return escape_analysis_; }
   Zone* zone() const { return zone_; }
-  Counters* counters() const;
+  Isolate* isolate() const;
 
   JSGraph* const jsgraph_;
   EscapeAnalysis* escape_analysis_;
   Zone* const zone_;
-  // _visited marks nodes we already processed (allocs, loads, stores)
+  // This bit vector marks nodes we already processed (allocs, loads, stores)
   // and nodes that do not need a visit from ReduceDeoptState etc.
   BitVector fully_reduced_;
   bool exists_virtual_allocate_;
diff --git a/src/compiler/escape-analysis.cc b/src/compiler/escape-analysis.cc
index b1a12b2..d11c3ab 100644
--- a/src/compiler/escape-analysis.cc
+++ b/src/compiler/escape-analysis.cc
@@ -24,7 +24,7 @@
 namespace internal {
 namespace compiler {
 
-using Alias = EscapeStatusAnalysis::Alias;
+typedef NodeId Alias;
 
 #ifdef DEBUG
 #define TRACE(...)                                    \
@@ -35,6 +35,90 @@
 #define TRACE(...)
 #endif
 
+// EscapeStatusAnalysis determines for each allocation whether it escapes.
+class EscapeStatusAnalysis : public ZoneObject {
+ public:
+  enum Status {
+    kUnknown = 0u,
+    kTracked = 1u << 0,
+    kEscaped = 1u << 1,
+    kOnStack = 1u << 2,
+    kVisited = 1u << 3,
+    // A node is dangling, if it is a load of some kind, and does not have
+    // an effect successor.
+    kDanglingComputed = 1u << 4,
+    kDangling = 1u << 5,
+    // A node is is an effect branch point, if it has more than 2 non-dangling
+    // effect successors.
+    kBranchPointComputed = 1u << 6,
+    kBranchPoint = 1u << 7,
+    kInQueue = 1u << 8
+  };
+  typedef base::Flags<Status, uint16_t> StatusFlags;
+
+  void RunStatusAnalysis();
+
+  bool IsVirtual(Node* node);
+  bool IsEscaped(Node* node);
+  bool IsAllocation(Node* node);
+
+  bool IsInQueue(NodeId id);
+  void SetInQueue(NodeId id, bool on_stack);
+
+  void DebugPrint();
+
+  EscapeStatusAnalysis(EscapeAnalysis* object_analysis, Graph* graph,
+                       Zone* zone);
+  void EnqueueForStatusAnalysis(Node* node);
+  bool SetEscaped(Node* node);
+  bool IsEffectBranchPoint(Node* node);
+  bool IsDanglingEffectNode(Node* node);
+  void ResizeStatusVector();
+  size_t GetStatusVectorSize();
+  bool IsVirtual(NodeId id);
+
+  Graph* graph() const { return graph_; }
+  void AssignAliases();
+  Alias GetAlias(NodeId id) const { return aliases_[id]; }
+  const ZoneVector<Alias>& GetAliasMap() const { return aliases_; }
+  Alias AliasCount() const { return next_free_alias_; }
+  static const Alias kNotReachable;
+  static const Alias kUntrackable;
+
+  bool IsNotReachable(Node* node);
+
+ private:
+  void Process(Node* node);
+  void ProcessAllocate(Node* node);
+  void ProcessFinishRegion(Node* node);
+  void ProcessStoreField(Node* node);
+  void ProcessStoreElement(Node* node);
+  bool CheckUsesForEscape(Node* node, bool phi_escaping = false) {
+    return CheckUsesForEscape(node, node, phi_escaping);
+  }
+  bool CheckUsesForEscape(Node* node, Node* rep, bool phi_escaping = false);
+  void RevisitUses(Node* node);
+  void RevisitInputs(Node* node);
+
+  Alias NextAlias() { return next_free_alias_++; }
+
+  bool HasEntry(Node* node);
+
+  bool IsAllocationPhi(Node* node);
+
+  ZoneVector<Node*> stack_;
+  EscapeAnalysis* object_analysis_;
+  Graph* const graph_;
+  ZoneVector<StatusFlags> status_;
+  Alias next_free_alias_;
+  ZoneVector<Node*> status_stack_;
+  ZoneVector<Alias> aliases_;
+
+  DISALLOW_COPY_AND_ASSIGN(EscapeStatusAnalysis);
+};
+
+DEFINE_OPERATORS_FOR_FLAGS(EscapeStatusAnalysis::StatusFlags)
+
 const Alias EscapeStatusAnalysis::kNotReachable =
     std::numeric_limits<Alias>::max();
 const Alias EscapeStatusAnalysis::kUntrackable =
@@ -475,14 +559,11 @@
     : stack_(zone),
       object_analysis_(object_analysis),
       graph_(graph),
-      zone_(zone),
       status_(zone),
       next_free_alias_(0),
       status_stack_(zone),
       aliases_(zone) {}
 
-EscapeStatusAnalysis::~EscapeStatusAnalysis() {}
-
 bool EscapeStatusAnalysis::HasEntry(Node* node) {
   return status_[node->id()] & (kTracked | kEscaped);
 }
@@ -712,6 +793,7 @@
         }
         break;
       case IrOpcode::kSelect:
+      case IrOpcode::kTypeGuard:
         if (SetEscaped(rep)) {
           TRACE("Setting #%d (%s) to escaped because of use by #%d (%s)\n",
                 rep->id(), rep->op()->mnemonic(), use->id(),
@@ -721,7 +803,8 @@
         break;
       default:
         if (use->op()->EffectInputCount() == 0 &&
-            uses->op()->EffectInputCount() > 0) {
+            uses->op()->EffectInputCount() > 0 &&
+            !IrOpcode::IsJsOpcode(use->opcode())) {
           TRACE("Encountered unaccounted use by #%d (%s)\n", use->id(),
                 use->op()->mnemonic());
           UNREACHABLE();
@@ -759,8 +842,9 @@
 
 EscapeAnalysis::EscapeAnalysis(Graph* graph, CommonOperatorBuilder* common,
                                Zone* zone)
-    : status_analysis_(this, graph, zone),
+    : zone_(zone),
       common_(common),
+      status_analysis_(new (zone) EscapeStatusAnalysis(this, graph, zone)),
       virtual_states_(zone),
       replacements_(zone),
       cache_(nullptr) {}
@@ -769,13 +853,13 @@
 
 void EscapeAnalysis::Run() {
   replacements_.resize(graph()->NodeCount());
-  status_analysis_.AssignAliases();
-  if (status_analysis_.AliasCount() > 0) {
+  status_analysis_->AssignAliases();
+  if (status_analysis_->AliasCount() > 0) {
     cache_ = new (zone()) MergeCache(zone());
     replacements_.resize(graph()->NodeCount());
-    status_analysis_.ResizeStatusVector();
+    status_analysis_->ResizeStatusVector();
     RunObjectAnalysis();
-    status_analysis_.RunStatusAnalysis();
+    status_analysis_->RunStatusAnalysis();
   }
 }
 
@@ -853,11 +937,11 @@
   while (!queue.empty()) {
     Node* node = queue.back();
     queue.pop_back();
-    status_analysis_.SetInQueue(node->id(), false);
+    status_analysis_->SetInQueue(node->id(), false);
     if (Process(node)) {
       for (Edge edge : node->use_edges()) {
         Node* use = edge.from();
-        if (IsNotReachable(use)) {
+        if (status_analysis_->IsNotReachable(use)) {
           continue;
         }
         if (NodeProperties::IsEffectEdge(edge)) {
@@ -865,14 +949,14 @@
           // We need DFS do avoid some duplication of VirtualStates and
           // VirtualObjects, and we want to delay phis to improve performance.
           if (use->opcode() == IrOpcode::kEffectPhi) {
-            if (!status_analysis_.IsInQueue(use->id())) {
+            if (!status_analysis_->IsInQueue(use->id())) {
               queue.push_front(use);
             }
           } else if ((use->opcode() != IrOpcode::kLoadField &&
                       use->opcode() != IrOpcode::kLoadElement) ||
-                     !IsDanglingEffectNode(use)) {
-            if (!status_analysis_.IsInQueue(use->id())) {
-              status_analysis_.SetInQueue(use->id(), true);
+                     !status_analysis_->IsDanglingEffectNode(use)) {
+            if (!status_analysis_->IsInQueue(use->id())) {
+              status_analysis_->SetInQueue(use->id(), true);
               queue.push_back(use);
             }
           } else {
@@ -1008,8 +1092,8 @@
           if (!obj->AllFieldsClear()) {
             obj = CopyForModificationAt(obj, state, node);
             obj->ClearAllFields();
-            TRACE("Cleared all fields of @%d:#%d\n", GetAlias(obj->id()),
-                  obj->id());
+            TRACE("Cleared all fields of @%d:#%d\n",
+                  status_analysis_->GetAlias(obj->id()), obj->id());
           }
         }
         break;
@@ -1035,7 +1119,7 @@
                                                      Node* node) {
   if (obj->NeedCopyForModification()) {
     state = CopyForModificationAt(state, node);
-    return state->Copy(obj, GetAlias(obj->id()));
+    return state->Copy(obj, status_analysis_->GetAlias(obj->id()));
   }
   return obj;
 }
@@ -1045,7 +1129,8 @@
 #ifdef DEBUG
   if (node->opcode() != IrOpcode::kLoadField &&
       node->opcode() != IrOpcode::kLoadElement &&
-      node->opcode() != IrOpcode::kLoad && IsDanglingEffectNode(node)) {
+      node->opcode() != IrOpcode::kLoad &&
+      status_analysis_->IsDanglingEffectNode(node)) {
     PrintF("Dangeling effect node: #%d (%s)\n", node->id(),
            node->op()->mnemonic());
     UNREACHABLE();
@@ -1062,7 +1147,7 @@
           static_cast<void*>(virtual_states_[effect->id()]),
           effect->op()->mnemonic(), effect->id(), node->op()->mnemonic(),
           node->id());
-    if (IsEffectBranchPoint(effect) ||
+    if (status_analysis_->IsEffectBranchPoint(effect) ||
         OperatorProperties::GetFrameStateInputCount(node->op()) > 0) {
       virtual_states_[node->id()]->SetCopyRequired();
       TRACE(", effect input %s#%d is branch point", effect->op()->mnemonic(),
@@ -1075,7 +1160,7 @@
 void EscapeAnalysis::ProcessStart(Node* node) {
   DCHECK_EQ(node->opcode(), IrOpcode::kStart);
   virtual_states_[node->id()] =
-      new (zone()) VirtualState(node, zone(), AliasCount());
+      new (zone()) VirtualState(node, zone(), status_analysis_->AliasCount());
 }
 
 bool EscapeAnalysis::ProcessEffectPhi(Node* node) {
@@ -1084,7 +1169,8 @@
 
   VirtualState* mergeState = virtual_states_[node->id()];
   if (!mergeState) {
-    mergeState = new (zone()) VirtualState(node, zone(), AliasCount());
+    mergeState =
+        new (zone()) VirtualState(node, zone(), status_analysis_->AliasCount());
     virtual_states_[node->id()] = mergeState;
     changed = true;
     TRACE("Effect Phi #%d got new virtual state %p.\n", node->id(),
@@ -1102,7 +1188,8 @@
     if (state) {
       cache_->states().push_back(state);
       if (state == mergeState) {
-        mergeState = new (zone()) VirtualState(node, zone(), AliasCount());
+        mergeState = new (zone())
+            VirtualState(node, zone(), status_analysis_->AliasCount());
         virtual_states_[node->id()] = mergeState;
         changed = true;
       }
@@ -1122,7 +1209,7 @@
   TRACE("Merge %s the node.\n", changed ? "changed" : "did not change");
 
   if (changed) {
-    status_analysis_.ResizeStatusVector();
+    status_analysis_->ResizeStatusVector();
   }
   return changed;
 }
@@ -1131,7 +1218,7 @@
   DCHECK_EQ(node->opcode(), IrOpcode::kAllocate);
   ForwardVirtualState(node);
   VirtualState* state = virtual_states_[node->id()];
-  Alias alias = GetAlias(node->id());
+  Alias alias = status_analysis_->GetAlias(node->id());
 
   // Check if we have already processed this node.
   if (state->VirtualObjectFromAlias(alias)) {
@@ -1163,19 +1250,16 @@
   Node* allocation = NodeProperties::GetValueInput(node, 0);
   if (allocation->opcode() == IrOpcode::kAllocate) {
     VirtualState* state = virtual_states_[node->id()];
-    VirtualObject* obj = state->VirtualObjectFromAlias(GetAlias(node->id()));
+    VirtualObject* obj =
+        state->VirtualObjectFromAlias(status_analysis_->GetAlias(node->id()));
     DCHECK_NOT_NULL(obj);
     obj->SetInitialized();
   }
 }
 
-Node* EscapeAnalysis::replacement(NodeId id) {
-  if (id >= replacements_.size()) return nullptr;
-  return replacements_[id];
-}
-
 Node* EscapeAnalysis::replacement(Node* node) {
-  return replacement(node->id());
+  if (node->id() >= replacements_.size()) return nullptr;
+  return replacements_[node->id()];
 }
 
 bool EscapeAnalysis::SetReplacement(Node* node, Node* rep) {
@@ -1206,41 +1290,25 @@
 }
 
 Node* EscapeAnalysis::GetReplacement(Node* node) {
-  return GetReplacement(node->id());
-}
-
-Node* EscapeAnalysis::GetReplacement(NodeId id) {
-  Node* node = nullptr;
-  while (replacement(id)) {
-    node = replacement(id);
-    id = node->id();
+  Node* result = nullptr;
+  while (replacement(node)) {
+    node = result = replacement(node);
   }
-  return node;
+  return result;
 }
 
 bool EscapeAnalysis::IsVirtual(Node* node) {
-  if (node->id() >= status_analysis_.GetStatusVectorSize()) {
+  if (node->id() >= status_analysis_->GetStatusVectorSize()) {
     return false;
   }
-  return status_analysis_.IsVirtual(node);
+  return status_analysis_->IsVirtual(node);
 }
 
 bool EscapeAnalysis::IsEscaped(Node* node) {
-  if (node->id() >= status_analysis_.GetStatusVectorSize()) {
+  if (node->id() >= status_analysis_->GetStatusVectorSize()) {
     return false;
   }
-  return status_analysis_.IsEscaped(node);
-}
-
-bool EscapeAnalysis::SetEscaped(Node* node) {
-  return status_analysis_.SetEscaped(node);
-}
-
-VirtualObject* EscapeAnalysis::GetVirtualObject(Node* at, NodeId id) {
-  if (VirtualState* states = virtual_states_[at->id()]) {
-    return states->VirtualObjectFromAlias(GetAlias(id));
-  }
-  return nullptr;
+  return status_analysis_->IsEscaped(node);
 }
 
 bool EscapeAnalysis::CompareVirtualObjects(Node* left, Node* right) {
@@ -1269,7 +1337,7 @@
   }
 
   cache_->LoadVirtualObjectsForFieldsFrom(state,
-                                          status_analysis_.GetAliasMap());
+                                          status_analysis_->GetAliasMap());
   if (cache_->objects().size() == cache_->fields().size()) {
     cache_->GetFields(offset);
     if (cache_->fields().size() == cache_->objects().size()) {
@@ -1280,7 +1348,7 @@
         Node* phi = graph()->NewNode(
             common()->Phi(MachineRepresentation::kTagged, value_input_count),
             value_input_count + 1, &cache_->fields().front());
-        status_analysis_.ResizeStatusVector();
+        status_analysis_->ResizeStatusVector();
         SetReplacement(load, phi);
         TRACE(" got phi created.\n");
       } else {
@@ -1360,7 +1428,7 @@
     }
   } else {
     // We have a load from a non-const index, cannot eliminate object.
-    if (SetEscaped(from)) {
+    if (status_analysis_->SetEscaped(from)) {
       TRACE(
           "Setting #%d (%s) to escaped because load element #%d from non-const "
           "index #%d (%s)\n",
@@ -1415,7 +1483,7 @@
     }
   } else {
     // We have a store to a non-const index, cannot eliminate object.
-    if (SetEscaped(to)) {
+    if (status_analysis_->SetEscaped(to)) {
       TRACE(
           "Setting #%d (%s) to escaped because store element #%d to non-const "
           "index #%d (%s)\n",
@@ -1426,8 +1494,8 @@
       if (!obj->AllFieldsClear()) {
         obj = CopyForModificationAt(obj, state, node);
         obj->ClearAllFields();
-        TRACE("Cleared all fields of @%d:#%d\n", GetAlias(obj->id()),
-              obj->id());
+        TRACE("Cleared all fields of @%d:#%d\n",
+              status_analysis_->GetAlias(obj->id()), obj->id());
       }
     }
   }
@@ -1475,21 +1543,17 @@
   return nullptr;
 }
 
-void EscapeAnalysis::DebugPrintObject(VirtualObject* object, Alias alias) {
-  PrintF("  Alias @%d: Object #%d with %zu fields\n", alias, object->id(),
-         object->field_count());
-  for (size_t i = 0; i < object->field_count(); ++i) {
-    if (Node* f = object->GetField(i)) {
-      PrintF("    Field %zu = #%d (%s)\n", i, f->id(), f->op()->mnemonic());
-    }
-  }
-}
-
 void EscapeAnalysis::DebugPrintState(VirtualState* state) {
   PrintF("Dumping virtual state %p\n", static_cast<void*>(state));
-  for (Alias alias = 0; alias < AliasCount(); ++alias) {
+  for (Alias alias = 0; alias < status_analysis_->AliasCount(); ++alias) {
     if (VirtualObject* object = state->VirtualObjectFromAlias(alias)) {
-      DebugPrintObject(object, alias);
+      PrintF("  Alias @%d: Object #%d with %zu fields\n", alias, object->id(),
+             object->field_count());
+      for (size_t i = 0; i < object->field_count(); ++i) {
+        if (Node* f = object->GetField(i)) {
+          PrintF("    Field %zu = #%d (%s)\n", i, f->id(), f->op()->mnemonic());
+        }
+      }
     }
   }
 }
@@ -1511,17 +1575,17 @@
 
 VirtualObject* EscapeAnalysis::GetVirtualObject(VirtualState* state,
                                                 Node* node) {
-  if (node->id() >= status_analysis_.GetAliasMap().size()) return nullptr;
-  Alias alias = GetAlias(node->id());
+  if (node->id() >= status_analysis_->GetAliasMap().size()) return nullptr;
+  Alias alias = status_analysis_->GetAlias(node->id());
   if (alias >= state->size()) return nullptr;
   return state->VirtualObjectFromAlias(alias);
 }
 
 bool EscapeAnalysis::ExistsVirtualAllocate() {
-  for (size_t id = 0; id < status_analysis_.GetAliasMap().size(); ++id) {
-    Alias alias = GetAlias(static_cast<NodeId>(id));
+  for (size_t id = 0; id < status_analysis_->GetAliasMap().size(); ++id) {
+    Alias alias = status_analysis_->GetAlias(static_cast<NodeId>(id));
     if (alias < EscapeStatusAnalysis::kUntrackable) {
-      if (status_analysis_.IsVirtual(static_cast<int>(id))) {
+      if (status_analysis_->IsVirtual(static_cast<int>(id))) {
         return true;
       }
     }
@@ -1529,6 +1593,8 @@
   return false;
 }
 
+Graph* EscapeAnalysis::graph() const { return status_analysis_->graph(); }
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/escape-analysis.h b/src/compiler/escape-analysis.h
index c3f236d..139abd7 100644
--- a/src/compiler/escape-analysis.h
+++ b/src/compiler/escape-analysis.h
@@ -5,7 +5,6 @@
 #ifndef V8_COMPILER_ESCAPE_ANALYSIS_H_
 #define V8_COMPILER_ESCAPE_ANALYSIS_H_
 
-#include "src/base/flags.h"
 #include "src/compiler/graph.h"
 
 namespace v8 {
@@ -14,107 +13,15 @@
 
 // Forward declarations.
 class CommonOperatorBuilder;
-class EscapeAnalysis;
+class EscapeStatusAnalysis;
+class MergeCache;
 class VirtualState;
 class VirtualObject;
 
-// EscapeStatusAnalysis determines for each allocation whether it escapes.
-class EscapeStatusAnalysis {
- public:
-  typedef NodeId Alias;
-  ~EscapeStatusAnalysis();
-
-  enum Status {
-    kUnknown = 0u,
-    kTracked = 1u << 0,
-    kEscaped = 1u << 1,
-    kOnStack = 1u << 2,
-    kVisited = 1u << 3,
-    // A node is dangling, if it is a load of some kind, and does not have
-    // an effect successor.
-    kDanglingComputed = 1u << 4,
-    kDangling = 1u << 5,
-    // A node is is an effect branch point, if it has more than 2 non-dangling
-    // effect successors.
-    kBranchPointComputed = 1u << 6,
-    kBranchPoint = 1u << 7,
-    kInQueue = 1u << 8
-  };
-  typedef base::Flags<Status, uint16_t> StatusFlags;
-
-  void RunStatusAnalysis();
-
-  bool IsVirtual(Node* node);
-  bool IsEscaped(Node* node);
-  bool IsAllocation(Node* node);
-
-  bool IsInQueue(NodeId id);
-  void SetInQueue(NodeId id, bool on_stack);
-
-  void DebugPrint();
-
-  EscapeStatusAnalysis(EscapeAnalysis* object_analysis, Graph* graph,
-                       Zone* zone);
-  void EnqueueForStatusAnalysis(Node* node);
-  bool SetEscaped(Node* node);
-  bool IsEffectBranchPoint(Node* node);
-  bool IsDanglingEffectNode(Node* node);
-  void ResizeStatusVector();
-  size_t GetStatusVectorSize();
-  bool IsVirtual(NodeId id);
-
-  Graph* graph() const { return graph_; }
-  Zone* zone() const { return zone_; }
-  void AssignAliases();
-  Alias GetAlias(NodeId id) const { return aliases_[id]; }
-  const ZoneVector<Alias>& GetAliasMap() const { return aliases_; }
-  Alias AliasCount() const { return next_free_alias_; }
-  static const Alias kNotReachable;
-  static const Alias kUntrackable;
-
-  bool IsNotReachable(Node* node);
-
- private:
-  void Process(Node* node);
-  void ProcessAllocate(Node* node);
-  void ProcessFinishRegion(Node* node);
-  void ProcessStoreField(Node* node);
-  void ProcessStoreElement(Node* node);
-  bool CheckUsesForEscape(Node* node, bool phi_escaping = false) {
-    return CheckUsesForEscape(node, node, phi_escaping);
-  }
-  bool CheckUsesForEscape(Node* node, Node* rep, bool phi_escaping = false);
-  void RevisitUses(Node* node);
-  void RevisitInputs(Node* node);
-
-  Alias NextAlias() { return next_free_alias_++; }
-
-  bool HasEntry(Node* node);
-
-  bool IsAllocationPhi(Node* node);
-
-  ZoneVector<Node*> stack_;
-  EscapeAnalysis* object_analysis_;
-  Graph* const graph_;
-  Zone* const zone_;
-  ZoneVector<StatusFlags> status_;
-  Alias next_free_alias_;
-  ZoneVector<Node*> status_stack_;
-  ZoneVector<Alias> aliases_;
-
-  DISALLOW_COPY_AND_ASSIGN(EscapeStatusAnalysis);
-};
-
-DEFINE_OPERATORS_FOR_FLAGS(EscapeStatusAnalysis::StatusFlags)
-
-// Forward Declaration.
-class MergeCache;
-
 // EscapeObjectAnalysis simulates stores to determine values of loads if
 // an object is virtual and eliminated.
 class EscapeAnalysis {
  public:
-  using Alias = EscapeStatusAnalysis::Alias;
   EscapeAnalysis(Graph* graph, CommonOperatorBuilder* common, Zone* zone);
   ~EscapeAnalysis();
 
@@ -148,13 +55,9 @@
   VirtualState* CopyForModificationAt(VirtualState* state, Node* node);
   VirtualObject* CopyForModificationAt(VirtualObject* obj, VirtualState* state,
                                        Node* node);
-  VirtualObject* GetVirtualObject(Node* at, NodeId id);
 
-  bool SetEscaped(Node* node);
-  Node* replacement(NodeId id);
   Node* replacement(Node* node);
   Node* ResolveReplacement(Node* node);
-  Node* GetReplacement(NodeId id);
   bool SetReplacement(Node* node, Node* rep);
   bool UpdateReplacement(VirtualState* state, Node* node, Node* rep);
 
@@ -162,25 +65,14 @@
 
   void DebugPrint();
   void DebugPrintState(VirtualState* state);
-  void DebugPrintObject(VirtualObject* state, Alias id);
 
-  Graph* graph() const { return status_analysis_.graph(); }
-  Zone* zone() const { return status_analysis_.zone(); }
+  Graph* graph() const;
+  Zone* zone() const { return zone_; }
   CommonOperatorBuilder* common() const { return common_; }
-  bool IsEffectBranchPoint(Node* node) {
-    return status_analysis_.IsEffectBranchPoint(node);
-  }
-  bool IsDanglingEffectNode(Node* node) {
-    return status_analysis_.IsDanglingEffectNode(node);
-  }
-  bool IsNotReachable(Node* node) {
-    return status_analysis_.IsNotReachable(node);
-  }
-  Alias GetAlias(NodeId id) const { return status_analysis_.GetAlias(id); }
-  Alias AliasCount() const { return status_analysis_.AliasCount(); }
 
-  EscapeStatusAnalysis status_analysis_;
+  Zone* const zone_;
   CommonOperatorBuilder* const common_;
+  EscapeStatusAnalysis* status_analysis_;
   ZoneVector<VirtualState*> virtual_states_;
   ZoneVector<Node*> replacements_;
   MergeCache* cache_;
diff --git a/src/compiler/frame.cc b/src/compiler/frame.cc
index 3d93e15..e0284c8 100644
--- a/src/compiler/frame.cc
+++ b/src/compiler/frame.cc
@@ -12,15 +12,13 @@
 namespace internal {
 namespace compiler {
 
-Frame::Frame(int fixed_frame_size_in_slots, const CallDescriptor* descriptor)
+Frame::Frame(int fixed_frame_size_in_slots)
     : frame_slot_count_(fixed_frame_size_in_slots),
-      callee_saved_slot_count_(0),
       spill_slot_count_(0),
       allocated_registers_(nullptr),
       allocated_double_registers_(nullptr) {}
 
 int Frame::AlignFrame(int alignment) {
-  DCHECK_EQ(0, callee_saved_slot_count_);
   int alignment_slots = alignment / kPointerSize;
   int delta = alignment_slots - (frame_slot_count_ & (alignment_slots - 1));
   if (delta != alignment_slots) {
diff --git a/src/compiler/frame.h b/src/compiler/frame.h
index d413d3e..de2ae1a 100644
--- a/src/compiler/frame.h
+++ b/src/compiler/frame.h
@@ -78,14 +78,10 @@
 //
 class Frame : public ZoneObject {
  public:
-  explicit Frame(int fixed_frame_size_in_slots,
-                 const CallDescriptor* descriptor);
+  explicit Frame(int fixed_frame_size_in_slots);
 
   inline int GetTotalFrameSlotCount() const { return frame_slot_count_; }
 
-  inline int GetSavedCalleeRegisterSlotCount() const {
-    return callee_saved_slot_count_;
-  }
   inline int GetSpillSlotCount() const { return spill_slot_count_; }
 
   void SetAllocatedRegisters(BitVector* regs) {
@@ -102,23 +98,20 @@
     return !allocated_double_registers_->IsEmpty();
   }
 
-  int AlignSavedCalleeRegisterSlots(int alignment = kDoubleSize) {
-    DCHECK_EQ(0, callee_saved_slot_count_);
+  void AlignSavedCalleeRegisterSlots(int alignment = kDoubleSize) {
     int alignment_slots = alignment / kPointerSize;
     int delta = alignment_slots - (frame_slot_count_ & (alignment_slots - 1));
     if (delta != alignment_slots) {
       frame_slot_count_ += delta;
     }
-    return delta;
+    spill_slot_count_ += delta;
   }
 
   void AllocateSavedCalleeRegisterSlots(int count) {
     frame_slot_count_ += count;
-    callee_saved_slot_count_ += count;
   }
 
   int AllocateSpillSlot(int width) {
-    DCHECK_EQ(0, callee_saved_slot_count_);
     int frame_slot_count_before = frame_slot_count_;
     int slot = AllocateAlignedFrameSlot(width);
     spill_slot_count_ += (frame_slot_count_ - frame_slot_count_before);
@@ -128,7 +121,6 @@
   int AlignFrame(int alignment = kDoubleSize);
 
   int ReserveSpillSlots(size_t slot_count) {
-    DCHECK_EQ(0, callee_saved_slot_count_);
     DCHECK_EQ(0, spill_slot_count_);
     spill_slot_count_ += static_cast<int>(slot_count);
     frame_slot_count_ += static_cast<int>(slot_count);
@@ -152,7 +144,6 @@
 
  private:
   int frame_slot_count_;
-  int callee_saved_slot_count_;
   int spill_slot_count_;
   BitVector* allocated_registers_;
   BitVector* allocated_double_registers_;
@@ -191,13 +182,13 @@
 // current function's frame.
 class FrameAccessState : public ZoneObject {
  public:
-  explicit FrameAccessState(Frame* const frame)
+  explicit FrameAccessState(const Frame* const frame)
       : frame_(frame),
         access_frame_with_fp_(false),
         sp_delta_(0),
         has_frame_(false) {}
 
-  Frame* frame() const { return frame_; }
+  const Frame* frame() const { return frame_; }
   void MarkHasFrame(bool state);
 
   int sp_delta() const { return sp_delta_; }
@@ -229,7 +220,7 @@
   FrameOffset GetFrameOffset(int spill_slot) const;
 
  private:
-  Frame* const frame_;
+  const Frame* const frame_;
   bool access_frame_with_fp_;
   int sp_delta_;
   bool has_frame_;
diff --git a/src/compiler/gap-resolver.cc b/src/compiler/gap-resolver.cc
index 35e91fa..9403d35 100644
--- a/src/compiler/gap-resolver.cc
+++ b/src/compiler/gap-resolver.cc
@@ -94,7 +94,7 @@
 
   DCHECK((*blocker)->IsPending());
   // Ensure source is a register or both are stack slots, to limit swap cases.
-  if (source.IsStackSlot() || source.IsDoubleStackSlot()) {
+  if (source.IsStackSlot() || source.IsFPStackSlot()) {
     std::swap(source, destination);
   }
   assembler_->AssembleSwap(&source, &destination);
diff --git a/src/compiler/graph-reducer.cc b/src/compiler/graph-reducer.cc
index 6f583d6..2ef1ba1 100644
--- a/src/compiler/graph-reducer.cc
+++ b/src/compiler/graph-reducer.cc
@@ -222,7 +222,11 @@
         edge.UpdateTo(dead_);
         Revisit(user);
       } else {
-        UNREACHABLE();
+        DCHECK_NOT_NULL(control);
+        edge.UpdateTo(control);
+        Revisit(user);
+        // TODO(jarin) Check that the node cannot throw (otherwise, it
+        // would have to be connected via IfSuccess/IfException).
       }
     } else if (NodeProperties::IsEffectEdge(edge)) {
       DCHECK_NOT_NULL(effect);
diff --git a/src/compiler/graph-visualizer.cc b/src/compiler/graph-visualizer.cc
index 301e390..1dc38df 100644
--- a/src/compiler/graph-visualizer.cc
+++ b/src/compiler/graph-visualizer.cc
@@ -25,9 +25,8 @@
 namespace internal {
 namespace compiler {
 
-
-FILE* OpenVisualizerLogFile(CompilationInfo* info, const char* phase,
-                            const char* suffix, const char* mode) {
+base::SmartArrayPointer<const char> GetVisualizerLogFileName(
+    CompilationInfo* info, const char* phase, const char* suffix) {
   EmbeddedVector<char, 256> filename(0);
   base::SmartArrayPointer<char> debug_name = info->GetDebugName();
   if (strlen(debug_name.get()) > 0) {
@@ -46,7 +45,11 @@
   } else {
     SNPrintF(full_filename, "%s-%s.%s", filename.start(), phase, suffix);
   }
-  return base::OS::FOpen(full_filename.start(), mode);
+
+  char* buffer = new char[full_filename.length() + 1];
+  memcpy(buffer, full_filename.start(), full_filename.length());
+  buffer[full_filename.length()] = '\0';
+  return base::SmartArrayPointer<const char>(buffer);
 }
 
 
@@ -536,7 +539,7 @@
     os_ << vreg << ":" << range->relative_id() << " " << type;
     if (range->HasRegisterAssigned()) {
       AllocatedOperand op = AllocatedOperand::cast(range->GetAssignedOperand());
-      if (op.IsDoubleRegister()) {
+      if (op.IsFPRegister()) {
         DoubleRegister assigned_reg = op.GetDoubleRegister();
         os_ << " \"" << assigned_reg.ToString() << "\"";
       } else {
@@ -555,7 +558,7 @@
             << "\"";
       } else {
         index = AllocatedOperand::cast(top->GetSpillOperand())->index();
-        if (top->kind() == DOUBLE_REGISTERS) {
+        if (top->kind() == FP_REGISTERS) {
           os_ << " \"double_stack:" << index << "\"";
         } else if (top->kind() == GENERAL_REGISTERS) {
           os_ << " \"stack:" << index << "\"";
@@ -640,7 +643,13 @@
         if (j++ > 0) os << ", ";
         os << "#" << SafeId(i) << ":" << SafeMnemonic(i);
       }
-      os << ")" << std::endl;
+      os << ")";
+      if (NodeProperties::IsTyped(n)) {
+        os << "  [Type: ";
+        NodeProperties::GetType(n)->PrintTo(os);
+        os << "]";
+      }
+      os << std::endl;
     }
   }
   return os;
diff --git a/src/compiler/graph-visualizer.h b/src/compiler/graph-visualizer.h
index 1a971a5..85b0cf7 100644
--- a/src/compiler/graph-visualizer.h
+++ b/src/compiler/graph-visualizer.h
@@ -8,6 +8,8 @@
 #include <stdio.h>
 #include <iosfwd>
 
+#include "src/base/smart-pointers.h"
+
 namespace v8 {
 namespace internal {
 
@@ -21,8 +23,8 @@
 class Schedule;
 class SourcePositionTable;
 
-FILE* OpenVisualizerLogFile(CompilationInfo* info, const char* phase,
-                            const char* suffix, const char* mode);
+base::SmartArrayPointer<const char> GetVisualizerLogFileName(
+    CompilationInfo* info, const char* phase, const char* suffix);
 
 struct AsJSON {
   AsJSON(const Graph& g, SourcePositionTable* p) : graph(g), positions(p) {}
diff --git a/src/compiler/ia32/code-generator-ia32.cc b/src/compiler/ia32/code-generator-ia32.cc
index ee05ad0..a9083e1 100644
--- a/src/compiler/ia32/code-generator-ia32.cc
+++ b/src/compiler/ia32/code-generator-ia32.cc
@@ -44,11 +44,11 @@
     if (op->IsRegister()) {
       DCHECK(extra == 0);
       return Operand(ToRegister(op));
-    } else if (op->IsDoubleRegister()) {
+    } else if (op->IsFPRegister()) {
       DCHECK(extra == 0);
       return Operand(ToDoubleRegister(op));
     }
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToOperand(AllocatedOperand::cast(op)->index(), extra);
   }
 
@@ -59,12 +59,18 @@
   }
 
   Operand HighOperand(InstructionOperand* op) {
-    DCHECK(op->IsDoubleStackSlot());
+    DCHECK(op->IsFPStackSlot());
     return ToOperand(op, kPointerSize);
   }
 
   Immediate ToImmediate(InstructionOperand* operand) {
     Constant constant = ToConstant(operand);
+    if (constant.type() == Constant::kInt32 &&
+        (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+         constant.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE)) {
+      return Immediate(reinterpret_cast<Address>(constant.ToInt32()),
+                       constant.rmode());
+    }
     switch (constant.type()) {
       case Constant::kInt32:
         return Immediate(constant.ToInt32());
@@ -362,8 +368,6 @@
   __ pop(ebp);
 }
 
-void CodeGenerator::AssembleSetupStackPointer() {}
-
 void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
   int sp_slot_delta = TailCallFrameStackSlotDelta(stack_param_delta);
   if (sp_slot_delta > 0) {
@@ -424,7 +428,8 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   IA32OperandConverter i(this, instr);
   InstructionCode opcode = instr->opcode();
   ArchOpcode arch_opcode = ArchOpcodeField::decode(opcode);
@@ -462,6 +467,15 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!HasImmediateInput(instr, 0));
+      Register reg = i.InputRegister(0);
+      __ jmp(reg);
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       EnsureSpaceForLazyDeopt();
       Register func = i.InputRegister(0);
@@ -534,7 +548,9 @@
           BuildTranslation(instr, -1, 0, OutputFrameStateCombine::Ignore());
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -965,14 +981,14 @@
       __ LoadUint32(i.OutputDoubleRegister(), i.InputOperand(0));
       break;
     case kSSEFloat64ExtractLowWord32:
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ mov(i.OutputRegister(), i.InputOperand(0));
       } else {
         __ movd(i.OutputRegister(), i.InputDoubleRegister(0));
       }
       break;
     case kSSEFloat64ExtractHighWord32:
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ mov(i.OutputRegister(), i.InputOperand(0, kDoubleSize / 2));
       } else {
         __ Pextrd(i.OutputRegister(), i.InputDoubleRegister(0), 1);
@@ -1161,7 +1177,7 @@
       }
       break;
     case kIA32BitcastFI:
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ mov(i.OutputRegister(), i.InputOperand(0));
       } else {
         __ movd(i.OutputRegister(), i.InputDoubleRegister(0));
@@ -1210,7 +1226,7 @@
       break;
     }
     case kIA32PushFloat32:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ movss(Operand(esp, 0), i.InputDoubleRegister(0));
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
@@ -1227,7 +1243,7 @@
       }
       break;
     case kIA32PushFloat64:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ movsd(Operand(esp, 0), i.InputDoubleRegister(0));
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
@@ -1244,7 +1260,7 @@
       }
       break;
     case kIA32Push:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ movsd(Operand(esp, 0), i.InputDoubleRegister(0));
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
@@ -1265,6 +1281,24 @@
       }
       break;
     }
+    case kIA32Xchgb: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchg_b(i.InputRegister(index), operand);
+      break;
+    }
+    case kIA32Xchgw: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchg_w(i.InputRegister(index), operand);
+      break;
+    }
+    case kIA32Xchgl: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchg(i.InputRegister(index), operand);
+      break;
+    }
     case kCheckedLoadInt8:
       ASSEMBLE_CHECKED_LOAD_INTEGER(movsx_b);
       break;
@@ -1311,7 +1345,18 @@
     case kCheckedStoreWord64:
       UNREACHABLE();  // currently unsupported checked int64 load/store.
       break;
+    case kAtomicLoadInt8:
+    case kAtomicLoadUint8:
+    case kAtomicLoadInt16:
+    case kAtomicLoadUint16:
+    case kAtomicLoadWord32:
+    case kAtomicStoreWord8:
+    case kAtomicStoreWord16:
+    case kAtomicStoreWord32:
+      UNREACHABLE();  // Won't be generated by instruction selector.
+      break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 
@@ -1485,12 +1530,13 @@
   __ jmp(Operand::JumpTable(input, times_4, table));
 }
 
-
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
+  return kSuccess;
 }
 
 
@@ -1621,8 +1667,21 @@
 //                                            | RET | args |  caller frame |
 //                                            ^ esp                        ^ ebp
 
+void CodeGenerator::FinishFrame(Frame* frame) {
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
+  const RegList saves = descriptor->CalleeSavedRegisters();
+  if (saves != 0) {  // Save callee-saved registers.
+    DCHECK(!info()->is_osr());
+    int pushed = 0;
+    for (int i = Register::kNumRegisters - 1; i >= 0; i--) {
+      if (!((1 << i) & saves)) continue;
+      ++pushed;
+    }
+    frame->AllocateSavedCalleeRegisterSlots(pushed);
+  }
+}
 
-void CodeGenerator::AssemblePrologue() {
+void CodeGenerator::AssembleConstructFrame() {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (frame_access_state()->has_frame()) {
     if (descriptor->IsCFunctionCall()) {
@@ -1634,7 +1693,9 @@
       __ StubPrologue(info()->GetOutputStackFrameType());
     }
   }
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
+
+  int shrink_slots = frame()->GetSpillSlotCount();
+
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -1645,12 +1706,12 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
+    shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
   }
 
   const RegList saves = descriptor->CalleeSavedRegisters();
-  if (stack_shrink_slots > 0) {
-    __ sub(esp, Immediate(stack_shrink_slots * kPointerSize));
+  if (shrink_slots > 0) {
+    __ sub(esp, Immediate(shrink_slots * kPointerSize));
   }
 
   if (saves != 0) {  // Save callee-saved registers.
@@ -1661,7 +1722,6 @@
       __ push(Register::from_code(i));
       ++pushed;
     }
-    frame()->AllocateSavedCalleeRegisterSlots(pushed);
   }
 }
 
@@ -1756,11 +1816,11 @@
     } else if (src_constant.type() == Constant::kFloat32) {
       // TODO(turbofan): Can we do better here?
       uint32_t src = bit_cast<uint32_t>(src_constant.ToFloat32());
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         XMMRegister dst = g.ToDoubleRegister(destination);
         __ Move(dst, src);
       } else {
-        DCHECK(destination->IsDoubleStackSlot());
+        DCHECK(destination->IsFPStackSlot());
         Operand dst = g.ToOperand(destination);
         __ Move(dst, Immediate(src));
       }
@@ -1769,31 +1829,31 @@
       uint64_t src = bit_cast<uint64_t>(src_constant.ToFloat64());
       uint32_t lower = static_cast<uint32_t>(src);
       uint32_t upper = static_cast<uint32_t>(src >> 32);
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         XMMRegister dst = g.ToDoubleRegister(destination);
         __ Move(dst, src);
       } else {
-        DCHECK(destination->IsDoubleStackSlot());
+        DCHECK(destination->IsFPStackSlot());
         Operand dst0 = g.ToOperand(destination);
         Operand dst1 = g.HighOperand(destination);
         __ Move(dst0, Immediate(lower));
         __ Move(dst1, Immediate(upper));
       }
     }
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     XMMRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       XMMRegister dst = g.ToDoubleRegister(destination);
       __ movaps(dst, src);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       Operand dst = g.ToOperand(destination);
       __ movsd(dst, src);
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     Operand src = g.ToOperand(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       XMMRegister dst = g.ToDoubleRegister(destination);
       __ movsd(dst, src);
     } else {
@@ -1841,21 +1901,21 @@
     frame_access_state()->IncreaseSPDelta(-1);
     Operand src2 = g.ToOperand(source);
     __ pop(src2);
-  } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
+  } else if (source->IsFPRegister() && destination->IsFPRegister()) {
     // XMM register-register swap.
     XMMRegister src = g.ToDoubleRegister(source);
     XMMRegister dst = g.ToDoubleRegister(destination);
     __ movaps(kScratchDoubleReg, src);
     __ movaps(src, dst);
     __ movaps(dst, kScratchDoubleReg);
-  } else if (source->IsDoubleRegister() && destination->IsDoubleStackSlot()) {
+  } else if (source->IsFPRegister() && destination->IsFPStackSlot()) {
     // XMM register-memory swap.
     XMMRegister reg = g.ToDoubleRegister(source);
     Operand other = g.ToOperand(destination);
     __ movsd(kScratchDoubleReg, other);
     __ movsd(other, reg);
     __ movaps(reg, kScratchDoubleReg);
-  } else if (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot()) {
+  } else if (source->IsFPStackSlot() && destination->IsFPStackSlot()) {
     // Double-width memory-to-memory.
     Operand src0 = g.ToOperand(source);
     Operand src1 = g.HighOperand(source);
@@ -1881,9 +1941,6 @@
 }
 
 
-void CodeGenerator::AddNopForSmiCodeInlining() { __ nop(); }
-
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/ia32/instruction-codes-ia32.h b/src/compiler/ia32/instruction-codes-ia32.h
index 3cf2094..79dd05e 100644
--- a/src/compiler/ia32/instruction-codes-ia32.h
+++ b/src/compiler/ia32/instruction-codes-ia32.h
@@ -113,7 +113,10 @@
   V(IA32PushFloat32)               \
   V(IA32PushFloat64)               \
   V(IA32Poke)                      \
-  V(IA32StackCheck)
+  V(IA32StackCheck)                \
+  V(IA32Xchgb)                     \
+  V(IA32Xchgw)                     \
+  V(IA32Xchgl)
 
 // Addressing modes represent the "shape" of inputs to an instruction.
 // Many instructions support multiple addressing modes. Addressing modes
diff --git a/src/compiler/ia32/instruction-scheduler-ia32.cc b/src/compiler/ia32/instruction-scheduler-ia32.cc
index 803fdf6..f341db4 100644
--- a/src/compiler/ia32/instruction-scheduler-ia32.cc
+++ b/src/compiler/ia32/instruction-scheduler-ia32.cc
@@ -127,6 +127,11 @@
     case kIA32Poke:
       return kHasSideEffect;
 
+    case kIA32Xchgb:
+    case kIA32Xchgw:
+    case kIA32Xchgl:
+      return kIsLoadOperation | kHasSideEffect;
+
 #define CASE(Name) case k##Name:
     COMMON_ARCH_OPCODE_LIST(CASE)
 #undef CASE
diff --git a/src/compiler/ia32/instruction-selector-ia32.cc b/src/compiler/ia32/instruction-selector-ia32.cc
index 5c4acce..9002d75 100644
--- a/src/compiler/ia32/instruction-selector-ia32.cc
+++ b/src/compiler/ia32/instruction-selector-ia32.cc
@@ -27,11 +27,15 @@
     return DefineAsRegister(node);
   }
 
-  bool CanBeMemoryOperand(InstructionCode opcode, Node* node, Node* input) {
+  bool CanBeMemoryOperand(InstructionCode opcode, Node* node, Node* input,
+                          int effect_level) {
     if (input->opcode() != IrOpcode::kLoad ||
         !selector()->CanCover(node, input)) {
       return false;
     }
+    if (effect_level != selector()->GetEffectLevel(input)) {
+      return false;
+    }
     MachineRepresentation rep =
         LoadRepresentationOf(input->op()).representation();
     switch (opcode) {
@@ -56,13 +60,20 @@
       case IrOpcode::kInt32Constant:
       case IrOpcode::kNumberConstant:
       case IrOpcode::kExternalConstant:
+      case IrOpcode::kRelocatableInt32Constant:
+      case IrOpcode::kRelocatableInt64Constant:
         return true;
       case IrOpcode::kHeapConstant: {
+// TODO(bmeurer): We must not dereference handles concurrently. If we
+// really have to this here, then we need to find a way to put this
+// information on the HeapConstant node already.
+#if 0
         // Constants in new space cannot be used as immediates in V8 because
         // the GC does not scan code objects when collecting the new generation.
         Handle<HeapObject> value = OpParameter<Handle<HeapObject>>(node);
         Isolate* isolate = value->GetIsolate();
         return !isolate->heap()->InNewSpace(*value);
+#endif
       }
       default:
         return false;
@@ -870,15 +881,12 @@
   VisitRO(this, node, kSSEFloat64ToFloat32);
 }
 
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
+  VisitRR(this, node, kArchTruncateDoubleToI);
+}
 
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      return VisitRR(this, node, kArchTruncateDoubleToI);
-    case TruncationMode::kRoundToZero:
-      return VisitRO(this, node, kSSEFloat64ToInt32);
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  VisitRO(this, node, kSSEFloat64ToInt32);
 }
 
 
@@ -915,6 +923,9 @@
   VisitRROFloat(this, node, kAVXFloat32Sub, kSSEFloat32Sub);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  VisitRROFloat(this, node, kAVXFloat32Sub, kSSEFloat32Sub);
+}
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
   IA32OperandGenerator g(this);
@@ -939,6 +950,9 @@
   VisitRROFloat(this, node, kAVXFloat64Sub, kSSEFloat64Sub);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  VisitRROFloat(this, node, kAVXFloat64Sub, kSSEFloat64Sub);
+}
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   VisitRROFloat(this, node, kAVXFloat32Mul, kSSEFloat32Mul);
@@ -1225,18 +1239,24 @@
 
   InstructionCode narrowed_opcode = TryNarrowOpcodeSize(opcode, left, right);
 
+  int effect_level = selector->GetEffectLevel(node);
+  if (cont->IsBranch()) {
+    effect_level = selector->GetEffectLevel(
+        cont->true_block()->PredecessorAt(0)->control_input());
+  }
+
   // If one of the two inputs is an immediate, make sure it's on the right, or
   // if one of the two inputs is a memory operand, make sure it's on the left.
   if ((!g.CanBeImmediate(right) && g.CanBeImmediate(left)) ||
-      (g.CanBeMemoryOperand(narrowed_opcode, node, right) &&
-       !g.CanBeMemoryOperand(narrowed_opcode, node, left))) {
+      (g.CanBeMemoryOperand(narrowed_opcode, node, right, effect_level) &&
+       !g.CanBeMemoryOperand(narrowed_opcode, node, left, effect_level))) {
     if (!node->op()->HasProperty(Operator::kCommutative)) cont->Commute();
     std::swap(left, right);
   }
 
   // Match immediates on right side of comparison.
   if (g.CanBeImmediate(right)) {
-    if (g.CanBeMemoryOperand(opcode, node, left)) {
+    if (g.CanBeMemoryOperand(opcode, node, left, effect_level)) {
       // TODO(epertoso): we should use `narrowed_opcode' here once we match
       // immediates too.
       return VisitCompareWithMemoryOperand(selector, opcode, left,
@@ -1247,7 +1267,7 @@
   }
 
   // Match memory operands on left side of comparison.
-  if (g.CanBeMemoryOperand(narrowed_opcode, node, left)) {
+  if (g.CanBeMemoryOperand(narrowed_opcode, node, left, effect_level)) {
     bool needs_byte_register =
         narrowed_opcode == kIA32Test8 || narrowed_opcode == kIA32Cmp8;
     return VisitCompareWithMemoryOperand(
@@ -1563,6 +1583,52 @@
        g.UseRegister(left), g.Use(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  DCHECK(load_rep.representation() == MachineRepresentation::kWord8 ||
+         load_rep.representation() == MachineRepresentation::kWord16 ||
+         load_rep.representation() == MachineRepresentation::kWord32);
+  USE(load_rep);
+  VisitLoad(node);
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  IA32OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kIA32Xchgb;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kIA32Xchgw;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kIA32Xchgl;
+      break;
+    default:
+      UNREACHABLE();
+      break;
+  }
+  AddressingMode addressing_mode;
+  InstructionOperand inputs[4];
+  size_t input_count = 0;
+  inputs[input_count++] = g.UseUniqueRegister(base);
+  if (g.CanBeImmediate(index)) {
+    inputs[input_count++] = g.UseImmediate(index);
+    addressing_mode = kMode_MRI;
+  } else {
+    inputs[input_count++] = g.UseUniqueRegister(index);
+    addressing_mode = kMode_MR1;
+  }
+  inputs[input_count++] = g.UseUniqueRegister(value);
+  InstructionCode code = opcode | AddressingModeField::encode(addressing_mode);
+  Emit(code, 0, nullptr, input_count, inputs);
+}
 
 // static
 MachineOperatorBuilder::Flags
diff --git a/src/compiler/instruction-codes.h b/src/compiler/instruction-codes.h
index b005083..57868c6 100644
--- a/src/compiler/instruction-codes.h
+++ b/src/compiler/instruction-codes.h
@@ -48,6 +48,7 @@
   V(ArchCallJSFunction)                   \
   V(ArchTailCallJSFunctionFromJSFunction) \
   V(ArchTailCallJSFunction)               \
+  V(ArchTailCallAddress)                  \
   V(ArchPrepareCallCFunction)             \
   V(ArchCallCFunction)                    \
   V(ArchPrepareTailCall)                  \
@@ -77,7 +78,15 @@
   V(CheckedStoreWord64)                   \
   V(CheckedStoreFloat32)                  \
   V(CheckedStoreFloat64)                  \
-  V(ArchStackSlot)
+  V(ArchStackSlot)                        \
+  V(AtomicLoadInt8)                       \
+  V(AtomicLoadUint8)                      \
+  V(AtomicLoadInt16)                      \
+  V(AtomicLoadUint16)                     \
+  V(AtomicLoadWord32)                     \
+  V(AtomicStoreWord8)                     \
+  V(AtomicStoreWord16)                    \
+  V(AtomicStoreWord32)
 
 #define ARCH_OPCODE_LIST(V)  \
   COMMON_ARCH_OPCODE_LIST(V) \
diff --git a/src/compiler/instruction-scheduler.cc b/src/compiler/instruction-scheduler.cc
index b612cd1..b3e4bbc 100644
--- a/src/compiler/instruction-scheduler.cc
+++ b/src/compiler/instruction-scheduler.cc
@@ -82,7 +82,8 @@
       graph_(zone),
       last_side_effect_instr_(nullptr),
       pending_loads_(zone),
-      last_live_in_reg_marker_(nullptr) {
+      last_live_in_reg_marker_(nullptr),
+      last_deopt_(nullptr) {
 }
 
 
@@ -91,6 +92,7 @@
   DCHECK(last_side_effect_instr_ == nullptr);
   DCHECK(pending_loads_.empty());
   DCHECK(last_live_in_reg_marker_ == nullptr);
+  DCHECK(last_deopt_ == nullptr);
   sequence()->StartBlock(rpo);
 }
 
@@ -106,6 +108,7 @@
   last_side_effect_instr_ = nullptr;
   pending_loads_.clear();
   last_live_in_reg_marker_ = nullptr;
+  last_deopt_ = nullptr;
 }
 
 
@@ -128,6 +131,12 @@
       last_live_in_reg_marker_->AddSuccessor(new_node);
     }
 
+    // Make sure that new instructions are not scheduled before the last
+    // deoptimization point.
+    if (last_deopt_ != nullptr) {
+      last_deopt_->AddSuccessor(new_node);
+    }
+
     // Instructions with side effects and memory operations can't be
     // reordered with respect to each other.
     if (HasSideEffect(instr)) {
@@ -146,6 +155,13 @@
         last_side_effect_instr_->AddSuccessor(new_node);
       }
       pending_loads_.push_back(new_node);
+    } else if (instr->IsDeoptimizeCall()) {
+      // Ensure that deopts are not reordered with respect to side-effect
+      // instructions.
+      if (last_side_effect_instr_ != nullptr) {
+        last_side_effect_instr_->AddSuccessor(new_node);
+      }
+      last_deopt_ = new_node;
     }
 
     // Look for operand dependencies.
@@ -224,6 +240,7 @@
     case kArchTailCallCodeObject:
     case kArchTailCallJSFunctionFromJSFunction:
     case kArchTailCallJSFunction:
+    case kArchTailCallAddress:
       return kHasSideEffect | kIsBlockTerminator;
 
     case kArchDeoptimize:
@@ -253,6 +270,18 @@
     case kArchStoreWithWriteBarrier:
       return kHasSideEffect;
 
+    case kAtomicLoadInt8:
+    case kAtomicLoadUint8:
+    case kAtomicLoadInt16:
+    case kAtomicLoadUint16:
+    case kAtomicLoadWord32:
+      return kIsLoadOperation;
+
+    case kAtomicStoreWord8:
+    case kAtomicStoreWord16:
+    case kAtomicStoreWord32:
+      return kHasSideEffect;
+
 #define CASE(Name) case k##Name:
     TARGET_ARCH_OPCODE_LIST(CASE)
 #undef CASE
diff --git a/src/compiler/instruction-scheduler.h b/src/compiler/instruction-scheduler.h
index 104c0b9..23950f7 100644
--- a/src/compiler/instruction-scheduler.h
+++ b/src/compiler/instruction-scheduler.h
@@ -180,7 +180,9 @@
     return (instr->arch_opcode() == kArchNop) &&
       (instr->OutputCount() == 1) &&
       (instr->OutputAt(0)->IsUnallocated()) &&
-      UnallocatedOperand::cast(instr->OutputAt(0))->HasFixedRegisterPolicy();
+      (UnallocatedOperand::cast(instr->OutputAt(0))->HasFixedRegisterPolicy() ||
+       UnallocatedOperand::cast(
+           instr->OutputAt(0))->HasFixedDoubleRegisterPolicy());
   }
 
   void ComputeTotalLatencies();
@@ -209,6 +211,9 @@
   // All these nops are chained together and added as a predecessor of every
   // other instructions in the basic block.
   ScheduleGraphNode* last_live_in_reg_marker_;
+
+  // Last deoptimization instruction encountered while building the graph.
+  ScheduleGraphNode* last_deopt_;
 };
 
 }  // namespace compiler
diff --git a/src/compiler/instruction-selector-impl.h b/src/compiler/instruction-selector-impl.h
index e750aed..301612c 100644
--- a/src/compiler/instruction-selector-impl.h
+++ b/src/compiler/instruction-selector-impl.h
@@ -211,6 +211,9 @@
         return Constant(OpParameter<int64_t>(node));
       case IrOpcode::kFloat32Constant:
         return Constant(OpParameter<float>(node));
+      case IrOpcode::kRelocatableInt32Constant:
+      case IrOpcode::kRelocatableInt64Constant:
+        return Constant(OpParameter<RelocatablePtrConstantInfo>(node));
       case IrOpcode::kFloat64Constant:
       case IrOpcode::kNumberConstant:
         return Constant(OpParameter<double>(node));
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc
index d172ed1..ea68c78 100644
--- a/src/compiler/instruction-selector.cc
+++ b/src/compiler/instruction-selector.cc
@@ -87,7 +87,6 @@
 #endif
 }
 
-
 void InstructionSelector::StartBlock(RpoNumber rpo) {
   if (FLAG_turbo_instruction_scheduling &&
       InstructionScheduler::SchedulerSupported()) {
@@ -714,6 +713,12 @@
     SetEffectLevel(node, effect_level);
   }
 
+  // We visit the control first, then the nodes in the block, so the block's
+  // control input should be on the same effect level as the last node.
+  if (block->control_input() != nullptr) {
+    SetEffectLevel(block->control_input(), effect_level);
+  }
+
   // Generate code for the block control "top down", but schedule the code
   // "bottom up".
   VisitControl(block);
@@ -859,8 +864,6 @@
       return MarkAsReference(node), VisitIfException(node);
     case IrOpcode::kFinishRegion:
       return MarkAsReference(node), VisitFinishRegion(node);
-    case IrOpcode::kGuard:
-      return MarkAsReference(node), VisitGuard(node);
     case IrOpcode::kParameter: {
       MachineType type =
           linkage()->GetParameterType(ParameterIndexOf(node->op()));
@@ -879,6 +882,8 @@
     case IrOpcode::kInt32Constant:
     case IrOpcode::kInt64Constant:
     case IrOpcode::kExternalConstant:
+    case IrOpcode::kRelocatableInt32Constant:
+    case IrOpcode::kRelocatableInt64Constant:
       return VisitConstant(node);
     case IrOpcode::kFloat32Constant:
       return MarkAsFloat32(node), VisitConstant(node);
@@ -1012,6 +1017,8 @@
       return VisitUint64LessThanOrEqual(node);
     case IrOpcode::kUint64Mod:
       return MarkAsWord64(node), VisitUint64Mod(node);
+    case IrOpcode::kBitcastWordToTagged:
+      return MarkAsReference(node), VisitBitcastWordToTagged(node);
     case IrOpcode::kChangeFloat32ToFloat64:
       return MarkAsFloat64(node), VisitChangeFloat32ToFloat64(node);
     case IrOpcode::kChangeInt32ToFloat64:
@@ -1042,10 +1049,12 @@
       return MarkAsWord64(node), VisitChangeUint32ToUint64(node);
     case IrOpcode::kTruncateFloat64ToFloat32:
       return MarkAsFloat32(node), VisitTruncateFloat64ToFloat32(node);
-    case IrOpcode::kTruncateFloat64ToInt32:
-      return MarkAsWord32(node), VisitTruncateFloat64ToInt32(node);
+    case IrOpcode::kTruncateFloat64ToWord32:
+      return MarkAsWord32(node), VisitTruncateFloat64ToWord32(node);
     case IrOpcode::kTruncateInt64ToInt32:
       return MarkAsWord32(node), VisitTruncateInt64ToInt32(node);
+    case IrOpcode::kRoundFloat64ToInt32:
+      return MarkAsWord32(node), VisitRoundFloat64ToInt32(node);
     case IrOpcode::kRoundInt64ToFloat32:
       return MarkAsFloat32(node), VisitRoundInt64ToFloat32(node);
     case IrOpcode::kRoundInt32ToFloat32:
@@ -1070,6 +1079,8 @@
       return MarkAsFloat32(node), VisitFloat32Add(node);
     case IrOpcode::kFloat32Sub:
       return MarkAsFloat32(node), VisitFloat32Sub(node);
+    case IrOpcode::kFloat32SubPreserveNan:
+      return MarkAsFloat32(node), VisitFloat32SubPreserveNan(node);
     case IrOpcode::kFloat32Mul:
       return MarkAsFloat32(node), VisitFloat32Mul(node);
     case IrOpcode::kFloat32Div:
@@ -1092,6 +1103,8 @@
       return MarkAsFloat64(node), VisitFloat64Add(node);
     case IrOpcode::kFloat64Sub:
       return MarkAsFloat64(node), VisitFloat64Sub(node);
+    case IrOpcode::kFloat64SubPreserveNan:
+      return MarkAsFloat64(node), VisitFloat64SubPreserveNan(node);
     case IrOpcode::kFloat64Mul:
       return MarkAsFloat64(node), VisitFloat64Mul(node);
     case IrOpcode::kFloat64Div:
@@ -1178,6 +1191,13 @@
       MarkAsWord32(NodeProperties::FindProjection(node, 0));
       MarkAsWord32(NodeProperties::FindProjection(node, 1));
       return VisitWord32PairSar(node);
+    case IrOpcode::kAtomicLoad: {
+      LoadRepresentation type = LoadRepresentationOf(node->op());
+      MarkAsRepresentation(type.representation(), node);
+      return VisitAtomicLoad(node);
+    }
+    case IrOpcode::kAtomicStore:
+      return VisitAtomicStore(node);
     default:
       V8_Fatal(__FILE__, __LINE__, "Unexpected operator #%d:%s @ node #%d",
                node->opcode(), node->op()->mnemonic(), node->id());
@@ -1246,6 +1266,12 @@
        sequence()->AddImmediate(Constant(slot)), 0, nullptr);
 }
 
+void InstructionSelector::VisitBitcastWordToTagged(Node* node) {
+  OperandGenerator g(this);
+  Node* value = node->InputAt(0);
+  Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
+}
+
 // 32 bit targets do not implement the following instructions.
 #if V8_TARGET_ARCH_32_BIT
 
@@ -1422,13 +1448,6 @@
 }
 
 
-void InstructionSelector::VisitGuard(Node* node) {
-  OperandGenerator g(this);
-  Node* value = node->InputAt(0);
-  Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
-}
-
-
 void InstructionSelector::VisitParameter(Node* node) {
   OperandGenerator g(this);
   int index = ParameterIndexOf(node->op());
@@ -1449,7 +1468,7 @@
   OperandGenerator g(this);
   Node* call = node->InputAt(1);
   DCHECK_EQ(IrOpcode::kCall, call->opcode());
-  const CallDescriptor* descriptor = OpParameter<const CallDescriptor*>(call);
+  const CallDescriptor* descriptor = CallDescriptorOf(call->op());
   Emit(kArchNop,
        g.DefineAsLocation(node, descriptor->GetReturnLocation(0),
                           descriptor->GetReturnType(0).representation()));
@@ -1521,7 +1540,7 @@
 
 void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) {
   OperandGenerator g(this);
-  const CallDescriptor* descriptor = OpParameter<const CallDescriptor*>(node);
+  const CallDescriptor* descriptor = CallDescriptorOf(node->op());
 
   FrameStateDescriptor* frame_state_descriptor = nullptr;
   if (descriptor->NeedsFrameState()) {
@@ -1589,10 +1608,8 @@
 
 void InstructionSelector::VisitTailCall(Node* node) {
   OperandGenerator g(this);
-  CallDescriptor const* descriptor = OpParameter<CallDescriptor const*>(node);
+  CallDescriptor const* descriptor = CallDescriptorOf(node->op());
   DCHECK_NE(0, descriptor->flags() & CallDescriptor::kSupportsTailCalls);
-  DCHECK_EQ(0, descriptor->flags() & CallDescriptor::kPatchableCallSite);
-  DCHECK_EQ(0, descriptor->flags() & CallDescriptor::kNeedsNopAfterCall);
 
   // TODO(turbofan): Relax restriction for stack parameters.
 
@@ -1635,6 +1652,9 @@
         case CallDescriptor::kCallJSFunction:
           opcode = kArchTailCallJSFunction;
           break;
+        case CallDescriptor::kCallAddress:
+          opcode = kArchTailCallAddress;
+          break;
         default:
           UNREACHABLE();
           return;
diff --git a/src/compiler/instruction-selector.h b/src/compiler/instruction-selector.h
index 9c1cd4c..335099f 100644
--- a/src/compiler/instruction-selector.h
+++ b/src/compiler/instruction-selector.h
@@ -247,7 +247,6 @@
 #undef DECLARE_GENERATOR
 
   void VisitFinishRegion(Node* node);
-  void VisitGuard(Node* node);
   void VisitParameter(Node* node);
   void VisitIfException(Node* node);
   void VisitOsrValue(Node* node);
diff --git a/src/compiler/instruction.cc b/src/compiler/instruction.cc
index c757557..26aebca 100644
--- a/src/compiler/instruction.cc
+++ b/src/compiler/instruction.cc
@@ -127,12 +127,12 @@
       LocationOperand allocated = LocationOperand::cast(op);
       if (op.IsStackSlot()) {
         os << "[stack:" << LocationOperand::cast(op).index();
-      } else if (op.IsDoubleStackSlot()) {
-        os << "[double_stack:" << LocationOperand::cast(op).index();
+      } else if (op.IsFPStackSlot()) {
+        os << "[fp_stack:" << LocationOperand::cast(op).index();
       } else if (op.IsRegister()) {
         os << "[" << LocationOperand::cast(op).GetRegister().ToString() << "|R";
       } else {
-        DCHECK(op.IsDoubleRegister());
+        DCHECK(op.IsFPRegister());
         os << "[" << LocationOperand::cast(op).GetDoubleRegister().ToString()
            << "|R";
       }
@@ -251,17 +251,16 @@
                  DoubleRegister::from_code(index).IsAllocatable());
 }
 
-
 Instruction::Instruction(InstructionCode opcode)
     : opcode_(opcode),
       bit_field_(OutputCountField::encode(0) | InputCountField::encode(0) |
                  TempCountField::encode(0) | IsCallField::encode(false)),
-      reference_map_(nullptr) {
+      reference_map_(nullptr),
+      block_(nullptr) {
   parallel_moves_[0] = nullptr;
   parallel_moves_[1] = nullptr;
 }
 
-
 Instruction::Instruction(InstructionCode opcode, size_t output_count,
                          InstructionOperand* outputs, size_t input_count,
                          InstructionOperand* inputs, size_t temp_count,
@@ -271,7 +270,8 @@
                  InputCountField::encode(input_count) |
                  TempCountField::encode(temp_count) |
                  IsCallField::encode(false)),
-      reference_map_(nullptr) {
+      reference_map_(nullptr),
+      block_(nullptr) {
   parallel_moves_[0] = nullptr;
   parallel_moves_[1] = nullptr;
   size_t offset = 0;
@@ -335,7 +335,7 @@
 void ReferenceMap::RecordReference(const AllocatedOperand& op) {
   // Do not record arguments as pointers.
   if (op.IsStackSlot() && LocationOperand::cast(op).index() < 0) return;
-  DCHECK(!op.IsDoubleRegister() && !op.IsDoubleStackSlot());
+  DCHECK(!op.IsFPRegister() && !op.IsFPStackSlot());
   reference_operands_.push_back(op);
 }
 
@@ -504,6 +504,27 @@
 
 Constant::Constant(int32_t v) : type_(kInt32), value_(v) {}
 
+Constant::Constant(RelocatablePtrConstantInfo info) {
+  if (info.type() == RelocatablePtrConstantInfo::kInt32) {
+    type_ = kInt32;
+  } else if (info.type() == RelocatablePtrConstantInfo::kInt64) {
+    type_ = kInt64;
+  } else {
+    UNREACHABLE();
+  }
+  value_ = info.value();
+  rmode_ = info.rmode();
+}
+
+Handle<HeapObject> Constant::ToHeapObject() const {
+  DCHECK_EQ(kHeapObject, type());
+  Handle<HeapObject> value(
+      bit_cast<HeapObject**>(static_cast<intptr_t>(value_)));
+  if (value->IsConsString()) {
+    value = String::Flatten(Handle<String>::cast(value), TENURED);
+  }
+  return value;
+}
 
 std::ostream& operator<<(std::ostream& os, const Constant& constant) {
   switch (constant.type()) {
@@ -603,7 +624,6 @@
   return instr_block;
 }
 
-
 InstructionBlocks* InstructionSequence::InstructionBlocksFor(
     Zone* zone, const Schedule* schedule) {
   InstructionBlocks* blocks = zone->NewArray<InstructionBlocks>(1);
@@ -620,7 +640,7 @@
   return blocks;
 }
 
-void InstructionSequence::ValidateEdgeSplitForm() {
+void InstructionSequence::ValidateEdgeSplitForm() const {
   // Validate blocks are in edge-split form: no block with multiple successors
   // has an edge to a block (== a successor) with more than one predecessors.
   for (const InstructionBlock* block : instruction_blocks()) {
@@ -635,7 +655,7 @@
   }
 }
 
-void InstructionSequence::ValidateDeferredBlockExitPaths() {
+void InstructionSequence::ValidateDeferredBlockExitPaths() const {
   // A deferred block with more than one successor must have all its successors
   // deferred.
   for (const InstructionBlock* block : instruction_blocks()) {
@@ -646,7 +666,21 @@
   }
 }
 
-void InstructionSequence::ValidateSSA() {
+void InstructionSequence::ValidateDeferredBlockEntryPaths() const {
+  // If a deferred block has multiple predecessors, they have to
+  // all be deferred. Otherwise, we can run into a situation where a range
+  // that spills only in deferred blocks inserts its spill in the block, but
+  // other ranges need moves inserted by ResolveControlFlow in the predecessors,
+  // which may clobber the register of this range.
+  for (const InstructionBlock* block : instruction_blocks()) {
+    if (!block->IsDeferred() || block->PredecessorCount() <= 1) continue;
+    for (RpoNumber predecessor_id : block->predecessors()) {
+      CHECK(InstructionBlockAt(predecessor_id)->IsDeferred());
+    }
+  }
+}
+
+void InstructionSequence::ValidateSSA() const {
   // TODO(mtrofin): We could use a local zone here instead.
   BitVector definitions(VirtualRegisterCount(), zone());
   for (const Instruction* instruction : *this) {
@@ -675,7 +709,6 @@
   }
 }
 
-
 InstructionSequence::InstructionSequence(Isolate* isolate,
                                          Zone* instruction_zone,
                                          InstructionBlocks* instruction_blocks)
@@ -683,7 +716,6 @@
       zone_(instruction_zone),
       instruction_blocks_(instruction_blocks),
       source_positions_(zone()),
-      block_starts_(zone()),
       constants_(ConstantMap::key_compare(),
                  ConstantMap::allocator_type(zone())),
       immediates_(zone()),
@@ -691,10 +723,8 @@
       next_virtual_register_(0),
       reference_maps_(zone()),
       representations_(zone()),
-      deoptimization_entries_(zone()) {
-  block_starts_.reserve(instruction_blocks_->size());
-}
-
+      deoptimization_entries_(zone()),
+      current_block_(nullptr) {}
 
 int InstructionSequence::NextVirtualRegister() {
   int virtual_register = next_virtual_register_++;
@@ -710,28 +740,31 @@
 
 
 void InstructionSequence::StartBlock(RpoNumber rpo) {
-  DCHECK(block_starts_.size() == rpo.ToSize());
-  InstructionBlock* block = InstructionBlockAt(rpo);
+  DCHECK_NULL(current_block_);
+  current_block_ = InstructionBlockAt(rpo);
   int code_start = static_cast<int>(instructions_.size());
-  block->set_code_start(code_start);
-  block_starts_.push_back(code_start);
+  current_block_->set_code_start(code_start);
 }
 
 
 void InstructionSequence::EndBlock(RpoNumber rpo) {
   int end = static_cast<int>(instructions_.size());
-  InstructionBlock* block = InstructionBlockAt(rpo);
-  if (block->code_start() == end) {  // Empty block.  Insert a nop.
+  DCHECK_EQ(current_block_->rpo_number(), rpo);
+  if (current_block_->code_start() == end) {  // Empty block.  Insert a nop.
     AddInstruction(Instruction::New(zone(), kArchNop));
     end = static_cast<int>(instructions_.size());
   }
-  DCHECK(block->code_start() >= 0 && block->code_start() < end);
-  block->set_code_end(end);
+  DCHECK(current_block_->code_start() >= 0 &&
+         current_block_->code_start() < end);
+  current_block_->set_code_end(end);
+  current_block_ = nullptr;
 }
 
 
 int InstructionSequence::AddInstruction(Instruction* instr) {
+  DCHECK_NOT_NULL(current_block_);
   int index = static_cast<int>(instructions_.size());
+  instr->set_block(current_block_);
   instructions_.push_back(instr);
   if (instr->NeedsReferenceMap()) {
     DCHECK(instr->reference_map() == nullptr);
@@ -746,18 +779,7 @@
 
 InstructionBlock* InstructionSequence::GetInstructionBlock(
     int instruction_index) const {
-  DCHECK(instruction_blocks_->size() == block_starts_.size());
-  auto begin = block_starts_.begin();
-  auto end = std::lower_bound(begin, block_starts_.end(), instruction_index);
-  // Post condition of std::lower_bound:
-  DCHECK(end == block_starts_.end() || *end >= instruction_index);
-  if (end == block_starts_.end() || *end > instruction_index) --end;
-  DCHECK(*end <= instruction_index);
-  size_t index = std::distance(begin, end);
-  InstructionBlock* block = instruction_blocks_->at(index);
-  DCHECK(block->code_start() <= instruction_index &&
-         instruction_index < block->code_end());
-  return block;
+  return instructions()[instruction_index]->block();
 }
 
 
diff --git a/src/compiler/instruction.h b/src/compiler/instruction.h
index a1fe494..851ba24 100644
--- a/src/compiler/instruction.h
+++ b/src/compiler/instruction.h
@@ -66,9 +66,13 @@
 
   inline bool IsAnyRegister() const;
   inline bool IsRegister() const;
+  inline bool IsFPRegister() const;
+  inline bool IsFloatRegister() const;
   inline bool IsDoubleRegister() const;
   inline bool IsSimd128Register() const;
   inline bool IsStackSlot() const;
+  inline bool IsFPStackSlot() const;
+  inline bool IsFloatStackSlot() const;
   inline bool IsDoubleStackSlot() const;
   inline bool IsSimd128StackSlot() const;
 
@@ -413,7 +417,7 @@
   }
 
   int index() const {
-    DCHECK(IsStackSlot() || IsDoubleStackSlot() || IsSimd128StackSlot());
+    DCHECK(IsStackSlot() || IsFPStackSlot());
     return static_cast<int64_t>(value_) >> IndexField::kShift;
   }
 
@@ -423,8 +427,16 @@
                                IndexField::kShift);
   }
 
+  FloatRegister GetFloatRegister() const {
+    DCHECK(IsFloatRegister());
+    return FloatRegister::from_code(static_cast<int64_t>(value_) >>
+                                    IndexField::kShift);
+  }
+
   DoubleRegister GetDoubleRegister() const {
-    DCHECK(IsDoubleRegister());
+    // TODO(bbudge) Tighten this test to IsDoubleRegister when all code
+    // generators are changed to use the correct Get*Register method.
+    DCHECK(IsFPRegister());
     return DoubleRegister::from_code(static_cast<int64_t>(value_) >>
                                      IndexField::kShift);
   }
@@ -526,11 +538,23 @@
          !IsFloatingPoint(LocationOperand::cast(this)->representation());
 }
 
-bool InstructionOperand::IsDoubleRegister() const {
+bool InstructionOperand::IsFPRegister() const {
   return IsAnyRegister() &&
          IsFloatingPoint(LocationOperand::cast(this)->representation());
 }
 
+bool InstructionOperand::IsFloatRegister() const {
+  return IsAnyRegister() &&
+         LocationOperand::cast(this)->representation() ==
+             MachineRepresentation::kFloat32;
+}
+
+bool InstructionOperand::IsDoubleRegister() const {
+  return IsAnyRegister() &&
+         LocationOperand::cast(this)->representation() ==
+             MachineRepresentation::kFloat64;
+}
+
 bool InstructionOperand::IsSimd128Register() const {
   return IsAnyRegister() &&
          LocationOperand::cast(this)->representation() ==
@@ -544,13 +568,29 @@
          !IsFloatingPoint(LocationOperand::cast(this)->representation());
 }
 
-bool InstructionOperand::IsDoubleStackSlot() const {
+bool InstructionOperand::IsFPStackSlot() const {
   return (IsAllocated() || IsExplicit()) &&
          LocationOperand::cast(this)->location_kind() ==
              LocationOperand::STACK_SLOT &&
          IsFloatingPoint(LocationOperand::cast(this)->representation());
 }
 
+bool InstructionOperand::IsFloatStackSlot() const {
+  return (IsAllocated() || IsExplicit()) &&
+         LocationOperand::cast(this)->location_kind() ==
+             LocationOperand::STACK_SLOT &&
+         LocationOperand::cast(this)->representation() ==
+             MachineRepresentation::kFloat32;
+}
+
+bool InstructionOperand::IsDoubleStackSlot() const {
+  return (IsAllocated() || IsExplicit()) &&
+         LocationOperand::cast(this)->location_kind() ==
+             LocationOperand::STACK_SLOT &&
+         LocationOperand::cast(this)->representation() ==
+             MachineRepresentation::kFloat64;
+}
+
 bool InstructionOperand::IsSimd128StackSlot() const {
   return (IsAllocated() || IsExplicit()) &&
          LocationOperand::cast(this)->location_kind() ==
@@ -715,6 +755,8 @@
 
 std::ostream& operator<<(std::ostream& os, const ReferenceMap& pm);
 
+class InstructionBlock;
+
 class Instruction final {
  public:
   size_t OutputCount() const { return OutputCountField::decode(bit_field_); }
@@ -826,7 +868,8 @@
     return arch_opcode() == ArchOpcode::kArchTailCallCodeObject ||
            arch_opcode() == ArchOpcode::kArchTailCallCodeObjectFromJSFunction ||
            arch_opcode() == ArchOpcode::kArchTailCallJSFunction ||
-           arch_opcode() == ArchOpcode::kArchTailCallJSFunctionFromJSFunction;
+           arch_opcode() == ArchOpcode::kArchTailCallJSFunctionFromJSFunction ||
+           arch_opcode() == ArchOpcode::kArchTailCallAddress;
   }
   bool IsThrow() const {
     return arch_opcode() == ArchOpcode::kArchThrowTerminator;
@@ -859,6 +902,15 @@
   ParallelMove* const* parallel_moves() const { return &parallel_moves_[0]; }
   ParallelMove** parallel_moves() { return &parallel_moves_[0]; }
 
+  // The block_id may be invalidated in JumpThreading. It is only important for
+  // register allocation, to avoid searching for blocks from instruction
+  // indexes.
+  InstructionBlock* block() const { return block_; }
+  void set_block(InstructionBlock* block) {
+    DCHECK_NOT_NULL(block);
+    block_ = block;
+  }
+
   void Print(const RegisterConfiguration* config) const;
   void Print() const;
 
@@ -879,6 +931,7 @@
   uint32_t bit_field_;
   ParallelMove* parallel_moves_[2];
   ReferenceMap* reference_map_;
+  InstructionBlock* block_;
   InstructionOperand operands_[1];
 
   DISALLOW_COPY_AND_ASSIGN(Instruction);
@@ -950,9 +1003,12 @@
   explicit Constant(Handle<HeapObject> obj)
       : type_(kHeapObject), value_(bit_cast<intptr_t>(obj)) {}
   explicit Constant(RpoNumber rpo) : type_(kRpoNumber), value_(rpo.ToInt()) {}
+  explicit Constant(RelocatablePtrConstantInfo info);
 
   Type type() const { return type_; }
 
+  RelocInfo::Mode rmode() const { return rmode_; }
+
   int32_t ToInt32() const {
     DCHECK(type() == kInt32 || type() == kInt64);
     const int32_t value = static_cast<int32_t>(value_);
@@ -987,14 +1043,16 @@
     return RpoNumber::FromInt(static_cast<int>(value_));
   }
 
-  Handle<HeapObject> ToHeapObject() const {
-    DCHECK_EQ(kHeapObject, type());
-    return bit_cast<Handle<HeapObject> >(static_cast<intptr_t>(value_));
-  }
+  Handle<HeapObject> ToHeapObject() const;
 
  private:
   Type type_;
   int64_t value_;
+#if V8_TARGET_ARCH_32_BIT
+  RelocInfo::Mode rmode_ = RelocInfo::NONE32;
+#else
+  RelocInfo::Mode rmode_ = RelocInfo::NONE64;
+#endif
 };
 
 
@@ -1316,7 +1374,8 @@
   Immediates& immediates() { return immediates_; }
 
   ImmediateOperand AddImmediate(const Constant& constant) {
-    if (constant.type() == Constant::kInt32) {
+    if (constant.type() == Constant::kInt32 &&
+        RelocInfo::IsNone(constant.rmode())) {
       return ImmediateOperand(ImmediateOperand::INLINE, constant.ToInt32());
     }
     int index = static_cast<int>(immediates_.size());
@@ -1374,9 +1433,10 @@
   void PrintBlock(const RegisterConfiguration* config, int block_id) const;
   void PrintBlock(int block_id) const;
 
-  void ValidateEdgeSplitForm();
-  void ValidateDeferredBlockExitPaths();
-  void ValidateSSA();
+  void ValidateEdgeSplitForm() const;
+  void ValidateDeferredBlockExitPaths() const;
+  void ValidateDeferredBlockEntryPaths() const;
+  void ValidateSSA() const;
 
  private:
   friend std::ostream& operator<<(std::ostream& os,
@@ -1388,7 +1448,6 @@
   Zone* const zone_;
   InstructionBlocks* const instruction_blocks_;
   SourcePositionMap source_positions_;
-  IntVector block_starts_;
   ConstantMap constants_;
   Immediates immediates_;
   InstructionDeque instructions_;
@@ -1397,6 +1456,9 @@
   ZoneVector<MachineRepresentation> representations_;
   DeoptimizationVector deoptimization_entries_;
 
+  // Used at construction time
+  InstructionBlock* current_block_;
+
   DISALLOW_COPY_AND_ASSIGN(InstructionSequence);
 };
 
diff --git a/src/compiler/int64-lowering.cc b/src/compiler/int64-lowering.cc
index 8824a03..830a0de 100644
--- a/src/compiler/int64-lowering.cc
+++ b/src/compiler/int64-lowering.cc
@@ -79,8 +79,10 @@
   return result;
 }
 
-static int GetParameterCountAfterLowering(
+int Int64Lowering::GetParameterCountAfterLowering(
     Signature<MachineRepresentation>* signature) {
+  // GetParameterIndexAfterLowering(parameter_count) returns the parameter count
+  // after lowering.
   return GetParameterIndexAfterLowering(
       signature, static_cast<int>(signature->parameter_count()));
 }
@@ -177,7 +179,9 @@
         NodeProperties::ChangeOp(node, store_op);
         ReplaceNode(node, node, high_node);
       } else {
-        DefaultLowering(node);
+        if (HasReplacementLow(node->InputAt(2))) {
+          node->ReplaceInput(2, GetReplacementLow(node->InputAt(2)));
+        }
       }
       break;
     }
@@ -223,7 +227,9 @@
       break;
     }
     case IrOpcode::kCall: {
-      CallDescriptor* descriptor = OpParameter<CallDescriptor*>(node);
+      // TODO(turbofan): Make WASM code const-correct wrt. CallDescriptor.
+      CallDescriptor* descriptor =
+          const_cast<CallDescriptor*>(CallDescriptorOf(node->op()));
       if (DefaultLowering(node) ||
           (descriptor->ReturnCount() == 1 &&
            descriptor->GetReturnType(0) == MachineType::Int64())) {
@@ -262,9 +268,6 @@
       node->NullAllInputs();
       break;
     }
-    // todo(ahaas): I added a list of missing instructions here to make merging
-    // easier when I do them one by one.
-    // kExprI64Add:
     case IrOpcode::kInt64Add: {
       DCHECK(node->InputCount() == 2);
 
@@ -283,8 +286,6 @@
       ReplaceNode(node, low_node, high_node);
       break;
     }
-
-    // kExprI64Sub:
     case IrOpcode::kInt64Sub: {
       DCHECK(node->InputCount() == 2);
 
@@ -303,7 +304,6 @@
       ReplaceNode(node, low_node, high_node);
       break;
     }
-    // kExprI64Mul:
     case IrOpcode::kInt64Mul: {
       DCHECK(node->InputCount() == 2);
 
@@ -322,11 +322,6 @@
       ReplaceNode(node, low_node, high_node);
       break;
     }
-    // kExprI64DivS:
-    // kExprI64DivU:
-    // kExprI64RemS:
-    // kExprI64RemU:
-    // kExprI64Ior:
     case IrOpcode::kWord64Or: {
       DCHECK(node->InputCount() == 2);
       Node* left = node->InputAt(0);
@@ -341,8 +336,6 @@
       ReplaceNode(node, low_node, high_node);
       break;
     }
-
-    // kExprI64Xor:
     case IrOpcode::kWord64Xor: {
       DCHECK(node->InputCount() == 2);
       Node* left = node->InputAt(0);
@@ -357,7 +350,6 @@
       ReplaceNode(node, low_node, high_node);
       break;
     }
-    // kExprI64Shl:
     case IrOpcode::kWord64Shl: {
       // TODO(turbofan): if the shift count >= 32, then we can set the low word
       // of the output to 0 and just calculate the high word.
@@ -380,7 +372,6 @@
       ReplaceNode(node, low_node, high_node);
       break;
     }
-    // kExprI64ShrU:
     case IrOpcode::kWord64Shr: {
       // TODO(turbofan): if the shift count >= 32, then we can set the low word
       // of the output to 0 and just calculate the high word.
@@ -403,7 +394,6 @@
       ReplaceNode(node, low_node, high_node);
       break;
     }
-    // kExprI64ShrS:
     case IrOpcode::kWord64Sar: {
       // TODO(turbofan): if the shift count >= 32, then we can set the low word
       // of the output to 0 and just calculate the high word.
@@ -426,7 +416,6 @@
       ReplaceNode(node, low_node, high_node);
       break;
     }
-    // kExprI64Eq:
     case IrOpcode::kWord64Equal: {
       DCHECK(node->InputCount() == 2);
       Node* left = node->InputAt(0);
@@ -446,7 +435,6 @@
       ReplaceNode(node, replacement, nullptr);
       break;
     }
-    // kExprI64LtS:
     case IrOpcode::kInt64LessThan: {
       LowerComparison(node, machine()->Int32LessThan(),
                       machine()->Uint32LessThan());
@@ -467,8 +455,6 @@
                       machine()->Uint32LessThanOrEqual());
       break;
     }
-
-    // kExprI64SConvertI32:
     case IrOpcode::kChangeInt32ToInt64: {
       DCHECK(node->InputCount() == 1);
       Node* input = node->InputAt(0);
@@ -483,7 +469,6 @@
       node->NullAllInputs();
       break;
     }
-    // kExprI64UConvertI32: {
     case IrOpcode::kChangeUint32ToUint64: {
       DCHECK(node->InputCount() == 1);
       Node* input = node->InputAt(0);
@@ -494,7 +479,6 @@
       node->NullAllInputs();
       break;
     }
-    // kExprF64ReinterpretI64:
     case IrOpcode::kBitcastInt64ToFloat64: {
       DCHECK(node->InputCount() == 1);
       Node* input = node->InputAt(0);
@@ -523,7 +507,6 @@
       ReplaceNode(node, load, nullptr);
       break;
     }
-    // kExprI64ReinterpretF64:
     case IrOpcode::kBitcastFloat64ToInt64: {
       DCHECK(node->InputCount() == 1);
       Node* input = node->InputAt(0);
@@ -659,7 +642,6 @@
       }
       break;
     }
-    // kExprI64Clz:
     case IrOpcode::kWord64Clz: {
       DCHECK(node->InputCount() == 1);
       Node* input = node->InputAt(0);
@@ -678,7 +660,6 @@
       ReplaceNode(node, low_node, graph()->NewNode(common()->Int32Constant(0)));
       break;
     }
-    // kExprI64Ctz:
     case IrOpcode::kWord64Ctz: {
       DCHECK(node->InputCount() == 1);
       DCHECK(machine()->Word32Ctz().IsSupported());
@@ -698,7 +679,6 @@
       ReplaceNode(node, low_node, graph()->NewNode(common()->Int32Constant(0)));
       break;
     }
-    // kExprI64Popcnt:
     case IrOpcode::kWord64Popcnt: {
       DCHECK(node->InputCount() == 1);
       Node* input = node->InputAt(0);
diff --git a/src/compiler/int64-lowering.h b/src/compiler/int64-lowering.h
index 7f6ef9a..054c421 100644
--- a/src/compiler/int64-lowering.h
+++ b/src/compiler/int64-lowering.h
@@ -23,6 +23,9 @@
 
   void LowerGraph();
 
+  static int GetParameterCountAfterLowering(
+      Signature<MachineRepresentation>* signature);
+
  private:
   enum class State : uint8_t { kUnvisited, kOnStack, kVisited };
 
diff --git a/src/compiler/js-builtin-reducer.cc b/src/compiler/js-builtin-reducer.cc
index 41f9c30..0d69a89 100644
--- a/src/compiler/js-builtin-reducer.cc
+++ b/src/compiler/js-builtin-reducer.cc
@@ -174,7 +174,7 @@
 // ES6 draft 08-24-14, section 20.2.2.17.
 Reduction JSBuiltinReducer::ReduceMathFround(Node* node) {
   JSCallReduction r(node);
-  if (r.InputsMatchOne(Type::Number())) {
+  if (r.InputsMatchOne(Type::NumberOrUndefined())) {
     // Math.fround(a:number) -> TruncateFloat64ToFloat32(a)
     Node* value =
         graph()->NewNode(machine()->TruncateFloat64ToFloat32(), r.left());
diff --git a/src/compiler/js-call-reducer.cc b/src/compiler/js-call-reducer.cc
index 892dcc7..b3561e9 100644
--- a/src/compiler/js-call-reducer.cc
+++ b/src/compiler/js-call-reducer.cc
@@ -326,9 +326,8 @@
     }
 
     // Check that the {target} is still the {array_function}.
-    Node* check = effect =
-        graph()->NewNode(javascript()->StrictEqual(), target, array_function,
-                         context, effect, control);
+    Node* check = graph()->NewNode(javascript()->StrictEqual(), target,
+                                   array_function, context);
     control = graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
                                effect, control);
 
@@ -344,15 +343,13 @@
           jsgraph()->Constant(handle(cell->value(), isolate()));
 
       // Check that the {target} is still the {target_function}.
-      Node* check = effect =
-          graph()->NewNode(javascript()->StrictEqual(), target, target_function,
-                           context, effect, control);
+      Node* check = graph()->NewNode(javascript()->StrictEqual(), target,
+                                     target_function, context);
       control = graph()->NewNode(common()->DeoptimizeUnless(), check,
                                  frame_state, effect, control);
 
       // Specialize the JSCallFunction node to the {target_function}.
       NodeProperties::ReplaceValueInput(node, target_function, 0);
-      NodeProperties::ReplaceEffectInput(node, effect);
       NodeProperties::ReplaceControlInput(node, control);
 
       // Try to further reduce the JSCallFunction {node}.
@@ -454,9 +451,8 @@
     }
 
     // Check that the {target} is still the {array_function}.
-    Node* check = effect =
-        graph()->NewNode(javascript()->StrictEqual(), target, array_function,
-                         context, effect, control);
+    Node* check = graph()->NewNode(javascript()->StrictEqual(), target,
+                                   array_function, context);
     control = graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
                                effect, control);
 
@@ -478,9 +474,8 @@
           jsgraph()->Constant(handle(cell->value(), isolate()));
 
       // Check that the {target} is still the {target_function}.
-      Node* check = effect =
-          graph()->NewNode(javascript()->StrictEqual(), target, target_function,
-                           context, effect, control);
+      Node* check = graph()->NewNode(javascript()->StrictEqual(), target,
+                                     target_function, context);
       control = graph()->NewNode(common()->DeoptimizeUnless(), check,
                                  frame_state, effect, control);
 
diff --git a/src/compiler/js-create-lowering.cc b/src/compiler/js-create-lowering.cc
index 2003363..16e1666 100644
--- a/src/compiler/js-create-lowering.cc
+++ b/src/compiler/js-create-lowering.cc
@@ -201,6 +201,8 @@
       return ReduceJSCreateArguments(node);
     case IrOpcode::kJSCreateArray:
       return ReduceJSCreateArray(node);
+    case IrOpcode::kJSCreateClosure:
+      return ReduceJSCreateClosure(node);
     case IrOpcode::kJSCreateIterResultObject:
       return ReduceJSCreateIterResultObject(node);
     case IrOpcode::kJSCreateLiteralArray:
@@ -278,6 +280,7 @@
   CreateArgumentsType type = CreateArgumentsTypeOf(node->op());
   Node* const frame_state = NodeProperties::GetFrameStateInput(node, 0);
   Node* const outer_state = frame_state->InputAt(kFrameStateOuterStateInput);
+  Node* const control = graph()->start();
   FrameStateInfo state_info = OpParameter<FrameStateInfo>(frame_state);
 
   // Use the ArgumentsAccessStub for materializing both mapped and unmapped
@@ -291,38 +294,41 @@
             shared_info->has_duplicate_parameters()) {
           return NoChange();
         }
-        // TODO(bmeurer): Actually we don't need a frame state here.
         Callable callable = CodeFactory::FastNewSloppyArguments(isolate());
+        Operator::Properties properties = node->op()->properties();
         CallDescriptor* desc = Linkage::GetStubCallDescriptor(
             isolate(), graph()->zone(), callable.descriptor(), 0,
-            CallDescriptor::kNeedsFrameState);
+            CallDescriptor::kNoFlags, properties);
         const Operator* new_op = common()->Call(desc);
         Node* stub_code = jsgraph()->HeapConstant(callable.code());
         node->InsertInput(graph()->zone(), 0, stub_code);
+        node->RemoveInput(3);  // Remove the frame state.
         NodeProperties::ChangeOp(node, new_op);
         return Changed(node);
       }
       case CreateArgumentsType::kUnmappedArguments: {
-        // TODO(bmeurer): Actually we don't need a frame state here.
         Callable callable = CodeFactory::FastNewStrictArguments(isolate());
+        Operator::Properties properties = node->op()->properties();
         CallDescriptor* desc = Linkage::GetStubCallDescriptor(
             isolate(), graph()->zone(), callable.descriptor(), 0,
-            CallDescriptor::kNeedsFrameState);
+            CallDescriptor::kNoFlags, properties);
         const Operator* new_op = common()->Call(desc);
         Node* stub_code = jsgraph()->HeapConstant(callable.code());
         node->InsertInput(graph()->zone(), 0, stub_code);
+        node->RemoveInput(3);  // Remove the frame state.
         NodeProperties::ChangeOp(node, new_op);
         return Changed(node);
       }
       case CreateArgumentsType::kRestParameter: {
-        // TODO(bmeurer): Actually we don't need a frame state here.
         Callable callable = CodeFactory::FastNewRestParameter(isolate());
+        Operator::Properties properties = node->op()->properties();
         CallDescriptor* desc = Linkage::GetStubCallDescriptor(
             isolate(), graph()->zone(), callable.descriptor(), 0,
-            CallDescriptor::kNeedsFrameState);
+            CallDescriptor::kNoFlags, properties);
         const Operator* new_op = common()->Call(desc);
         Node* stub_code = jsgraph()->HeapConstant(callable.code());
         node->InsertInput(graph()->zone(), 0, stub_code);
+        node->RemoveInput(3);  // Remove the frame state.
         NodeProperties::ChangeOp(node, new_op);
         return Changed(node);
       }
@@ -335,7 +341,6 @@
       Handle<SharedFunctionInfo> shared;
       if (!state_info.shared_info().ToHandle(&shared)) return NoChange();
       Node* const callee = NodeProperties::GetValueInput(node, 0);
-      Node* const control = NodeProperties::GetControlInput(node);
       Node* const context = NodeProperties::GetContextInput(node);
       Node* effect = NodeProperties::GetEffectInput(node);
       // TODO(mstarzinger): Duplicate parameters are not handled yet.
@@ -376,7 +381,6 @@
     } else if (type == CreateArgumentsType::kUnmappedArguments) {
       // Use inline allocation for all unmapped arguments objects within inlined
       // (i.e. non-outermost) frames, independent of the object size.
-      Node* const control = NodeProperties::GetControlInput(node);
       Node* const context = NodeProperties::GetContextInput(node);
       Node* effect = NodeProperties::GetEffectInput(node);
       // Choose the correct frame state and frame state info depending on
@@ -414,7 +418,6 @@
       int start_index = shared->internal_formal_parameter_count();
       // Use inline allocation for all unmapped arguments objects within inlined
       // (i.e. non-outermost) frames, independent of the object size.
-      Node* const control = NodeProperties::GetControlInput(node);
       Node* const context = NodeProperties::GetContextInput(node);
       Node* effect = NodeProperties::GetEffectInput(node);
       // Choose the correct frame state and frame state info depending on
@@ -471,6 +474,9 @@
   PretenureFlag pretenure = site->GetPretenureMode();
   ElementsKind elements_kind = site->GetElementsKind();
   DCHECK(IsFastElementsKind(elements_kind));
+  if (NodeProperties::GetType(length)->Max() > 0) {
+    elements_kind = GetHoleyElementsKind(elements_kind);
+  }
   dependencies()->AssumeTenuringDecision(site);
   dependencies()->AssumeTransitionStable(site);
 
@@ -540,6 +546,51 @@
   return NoChange();
 }
 
+Reduction JSCreateLowering::ReduceJSCreateClosure(Node* node) {
+  DCHECK_EQ(IrOpcode::kJSCreateClosure, node->opcode());
+  CreateClosureParameters const& p = CreateClosureParametersOf(node->op());
+  Handle<SharedFunctionInfo> shared = p.shared_info();
+
+  // Use inline allocation for functions that don't need literals cloning.
+  if (shared->num_literals() == 0) {
+    Node* effect = NodeProperties::GetEffectInput(node);
+    Node* control = NodeProperties::GetControlInput(node);
+    Node* context = NodeProperties::GetContextInput(node);
+    Node* native_context = effect = graph()->NewNode(
+        javascript()->LoadContext(0, Context::NATIVE_CONTEXT_INDEX, true),
+        context, context, effect);
+    int function_map_index =
+        Context::FunctionMapIndex(shared->language_mode(), shared->kind());
+    Node* function_map = effect =
+        graph()->NewNode(javascript()->LoadContext(0, function_map_index, true),
+                         native_context, native_context, effect);
+    // Note that it is only safe to embed the raw entry point of the compile
+    // lazy stub into the code, because that stub is immortal and immovable.
+    Node* compile_entry = jsgraph()->IntPtrConstant(reinterpret_cast<intptr_t>(
+        jsgraph()->isolate()->builtins()->CompileLazy()->entry()));
+    Node* empty_fixed_array = jsgraph()->EmptyFixedArrayConstant();
+    Node* the_hole = jsgraph()->TheHoleConstant();
+    Node* undefined = jsgraph()->UndefinedConstant();
+    AllocationBuilder a(jsgraph(), effect, control);
+    STATIC_ASSERT(JSFunction::kSize == 9 * kPointerSize);
+    a.Allocate(JSFunction::kSize, p.pretenure());
+    a.Store(AccessBuilder::ForMap(), function_map);
+    a.Store(AccessBuilder::ForJSObjectProperties(), empty_fixed_array);
+    a.Store(AccessBuilder::ForJSObjectElements(), empty_fixed_array);
+    a.Store(AccessBuilder::ForJSFunctionLiterals(), empty_fixed_array);
+    a.Store(AccessBuilder::ForJSFunctionPrototypeOrInitialMap(), the_hole);
+    a.Store(AccessBuilder::ForJSFunctionSharedFunctionInfo(), shared);
+    a.Store(AccessBuilder::ForJSFunctionContext(), context);
+    a.Store(AccessBuilder::ForJSFunctionCodeEntry(), compile_entry);
+    a.Store(AccessBuilder::ForJSFunctionNextFunctionLink(), undefined);
+    RelaxControls(node);
+    a.FinishAndChange(node);
+    return Changed(node);
+  }
+
+  return NoChange();
+}
+
 Reduction JSCreateLowering::ReduceJSCreateIterResultObject(Node* node) {
   DCHECK_EQ(IrOpcode::kJSCreateIterResultObject, node->opcode());
   Node* value = NodeProperties::GetValueInput(node, 0);
@@ -886,8 +937,9 @@
     Handle<Name> property_name(
         boilerplate_map->instance_descriptors()->GetKey(i), isolate());
     FieldIndex index = FieldIndex::ForDescriptor(*boilerplate_map, i);
-    FieldAccess access = {kTaggedBase, index.offset(), property_name,
-                          Type::Tagged(), MachineType::AnyTagged()};
+    FieldAccess access = {
+        kTaggedBase,    index.offset(),           property_name,
+        Type::Tagged(), MachineType::AnyTagged(), kFullWriteBarrier};
     Node* value;
     if (boilerplate->IsUnboxedDoubleField(index)) {
       access.machine_type = MachineType::Float64();
@@ -905,18 +957,21 @@
         site_context->ExitScope(current_site, boilerplate_object);
       } else if (property_details.representation().IsDouble()) {
         // Allocate a mutable HeapNumber box and store the value into it.
-        Callable callable = CodeFactory::AllocateMutableHeapNumber(isolate());
-        CallDescriptor* desc = Linkage::GetStubCallDescriptor(
-            isolate(), jsgraph()->zone(), callable.descriptor(), 0,
-            CallDescriptor::kNoFlags, Operator::kNoThrow);
+        effect = graph()->NewNode(common()->BeginRegion(), effect);
         value = effect = graph()->NewNode(
-            common()->Call(desc), jsgraph()->HeapConstant(callable.code()),
-            jsgraph()->NoContextConstant(), effect, control);
+            simplified()->Allocate(NOT_TENURED),
+            jsgraph()->Constant(HeapNumber::kSize), effect, control);
+        effect = graph()->NewNode(
+            simplified()->StoreField(AccessBuilder::ForMap()), value,
+            jsgraph()->HeapConstant(factory()->mutable_heap_number_map()),
+            effect, control);
         effect = graph()->NewNode(
             simplified()->StoreField(AccessBuilder::ForHeapNumberValue()),
             value, jsgraph()->Constant(
                        Handle<HeapNumber>::cast(boilerplate_value)->value()),
             effect, control);
+        value = effect =
+            graph()->NewNode(common()->FinishRegion(), value, effect);
       } else if (property_details.representation().IsSmi()) {
         // Ensure that value is stored as smi.
         value = boilerplate_value->IsUninitialized()
diff --git a/src/compiler/js-create-lowering.h b/src/compiler/js-create-lowering.h
index 52e7ec2..57b28af 100644
--- a/src/compiler/js-create-lowering.h
+++ b/src/compiler/js-create-lowering.h
@@ -45,6 +45,7 @@
   Reduction ReduceJSCreate(Node* node);
   Reduction ReduceJSCreateArguments(Node* node);
   Reduction ReduceJSCreateArray(Node* node);
+  Reduction ReduceJSCreateClosure(Node* node);
   Reduction ReduceJSCreateIterResultObject(Node* node);
   Reduction ReduceJSCreateLiteral(Node* node);
   Reduction ReduceJSCreateFunctionContext(Node* node);
diff --git a/src/compiler/js-generic-lowering.cc b/src/compiler/js-generic-lowering.cc
index 1f12579..105298e 100644
--- a/src/compiler/js-generic-lowering.cc
+++ b/src/compiler/js-generic-lowering.cc
@@ -28,10 +28,7 @@
                    : CallDescriptor::kNoFlags;
 }
 
-
-JSGenericLowering::JSGenericLowering(bool is_typing_enabled, JSGraph* jsgraph)
-    : is_typing_enabled_(is_typing_enabled), jsgraph_(jsgraph) {}
-
+JSGenericLowering::JSGenericLowering(JSGraph* jsgraph) : jsgraph_(jsgraph) {}
 
 JSGenericLowering::~JSGenericLowering() {}
 
@@ -44,40 +41,12 @@
       break;
     JS_OP_LIST(DECLARE_CASE)
 #undef DECLARE_CASE
-    case IrOpcode::kBranch:
-    case IrOpcode::kDeoptimizeIf:
-    case IrOpcode::kDeoptimizeUnless:
-      // TODO(mstarzinger): If typing is enabled then simplified lowering will
-      // have inserted the correct ChangeBoolToBit, otherwise we need to perform
-      // poor-man's representation inference here and insert manual change.
-      if (!is_typing_enabled_) {
-        Node* condition = node->InputAt(0);
-        Node* test = graph()->NewNode(machine()->WordEqual(), condition,
-                                      jsgraph()->TrueConstant());
-        node->ReplaceInput(0, test);
-      }
-      // Fall-through.
     default:
       // Nothing to see.
       return NoChange();
   }
   return Changed(node);
 }
-
-#define REPLACE_BINARY_OP_IC_CALL(Op, token)                                \
-  void JSGenericLowering::Lower##Op(Node* node) {                           \
-    CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);           \
-    ReplaceWithStubCall(node, CodeFactory::BinaryOpIC(isolate(), token),    \
-                        CallDescriptor::kPatchableCallSiteWithNop | flags); \
-  }
-REPLACE_BINARY_OP_IC_CALL(JSShiftLeft, Token::SHL)
-REPLACE_BINARY_OP_IC_CALL(JSShiftRight, Token::SAR)
-REPLACE_BINARY_OP_IC_CALL(JSShiftRightLogical, Token::SHR)
-REPLACE_BINARY_OP_IC_CALL(JSMultiply, Token::MUL)
-REPLACE_BINARY_OP_IC_CALL(JSDivide, Token::DIV)
-REPLACE_BINARY_OP_IC_CALL(JSModulus, Token::MOD)
-#undef REPLACE_BINARY_OP_IC_CALL
-
 #define REPLACE_RUNTIME_CALL(op, fun)             \
   void JSGenericLowering::Lower##op(Node* node) { \
     ReplaceWithRuntimeCall(node, fun);            \
@@ -95,18 +64,22 @@
   }
 REPLACE_STUB_CALL(Add)
 REPLACE_STUB_CALL(Subtract)
+REPLACE_STUB_CALL(Multiply)
+REPLACE_STUB_CALL(Divide)
+REPLACE_STUB_CALL(Modulus)
 REPLACE_STUB_CALL(BitwiseAnd)
 REPLACE_STUB_CALL(BitwiseOr)
 REPLACE_STUB_CALL(BitwiseXor)
+REPLACE_STUB_CALL(ShiftLeft)
+REPLACE_STUB_CALL(ShiftRight)
+REPLACE_STUB_CALL(ShiftRightLogical)
 REPLACE_STUB_CALL(LessThan)
 REPLACE_STUB_CALL(LessThanOrEqual)
 REPLACE_STUB_CALL(GreaterThan)
 REPLACE_STUB_CALL(GreaterThanOrEqual)
+REPLACE_STUB_CALL(HasProperty)
 REPLACE_STUB_CALL(Equal)
 REPLACE_STUB_CALL(NotEqual)
-REPLACE_STUB_CALL(StrictEqual)
-REPLACE_STUB_CALL(StrictNotEqual)
-REPLACE_STUB_CALL(ToBoolean)
 REPLACE_STUB_CALL(ToInteger)
 REPLACE_STUB_CALL(ToLength)
 REPLACE_STUB_CALL(ToNumber)
@@ -117,7 +90,12 @@
 
 void JSGenericLowering::ReplaceWithStubCall(Node* node, Callable callable,
                                             CallDescriptor::Flags flags) {
-  Operator::Properties properties = node->op()->properties();
+  ReplaceWithStubCall(node, callable, flags, node->op()->properties());
+}
+
+void JSGenericLowering::ReplaceWithStubCall(Node* node, Callable callable,
+                                            CallDescriptor::Flags flags,
+                                            Operator::Properties properties) {
   CallDescriptor* desc = Linkage::GetStubCallDescriptor(
       isolate(), zone(), callable.descriptor(), 0, flags, properties);
   Node* stub_code = jsgraph()->HeapConstant(callable.code());
@@ -143,11 +121,32 @@
   NodeProperties::ChangeOp(node, common()->Call(desc));
 }
 
+void JSGenericLowering::LowerJSStrictEqual(Node* node) {
+  Callable callable = CodeFactory::StrictEqual(isolate());
+  node->AppendInput(zone(), graph()->start());
+  ReplaceWithStubCall(node, callable, CallDescriptor::kNoFlags,
+                      Operator::kEliminatable);
+}
+
+void JSGenericLowering::LowerJSStrictNotEqual(Node* node) {
+  Callable callable = CodeFactory::StrictNotEqual(isolate());
+  node->AppendInput(zone(), graph()->start());
+  ReplaceWithStubCall(node, callable, CallDescriptor::kNoFlags,
+                      Operator::kEliminatable);
+}
+
+void JSGenericLowering::LowerJSToBoolean(Node* node) {
+  Callable callable = CodeFactory::ToBoolean(isolate());
+  node->AppendInput(zone(), graph()->start());
+  ReplaceWithStubCall(node, callable, CallDescriptor::kNoAllocate,
+                      Operator::kEliminatable);
+}
 
 void JSGenericLowering::LowerJSTypeOf(Node* node) {
-  CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);
   Callable callable = CodeFactory::Typeof(isolate());
-  ReplaceWithStubCall(node, callable, flags);
+  node->AppendInput(zone(), graph()->start());
+  ReplaceWithStubCall(node, callable, CallDescriptor::kNoAllocate,
+                      Operator::kEliminatable);
 }
 
 
@@ -344,11 +343,6 @@
 }
 
 
-void JSGenericLowering::LowerJSHasProperty(Node* node) {
-  ReplaceWithRuntimeCall(node, Runtime::kHasProperty);
-}
-
-
 void JSGenericLowering::LowerJSInstanceOf(Node* node) {
   CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);
   Callable callable = CodeFactory::InstanceOf(isolate());
@@ -686,9 +680,6 @@
 }
 
 
-void JSGenericLowering::LowerJSYield(Node* node) { UNIMPLEMENTED(); }
-
-
 void JSGenericLowering::LowerJSStackCheck(Node* node) {
   Node* effect = NodeProperties::GetEffectInput(node);
   Node* control = NodeProperties::GetControlInput(node);
diff --git a/src/compiler/js-generic-lowering.h b/src/compiler/js-generic-lowering.h
index 5ee759b..38ee431 100644
--- a/src/compiler/js-generic-lowering.h
+++ b/src/compiler/js-generic-lowering.h
@@ -24,7 +24,7 @@
 // Lowers JS-level operators to runtime and IC calls in the "generic" case.
 class JSGenericLowering final : public Reducer {
  public:
-  JSGenericLowering(bool is_typing_enabled, JSGraph* jsgraph);
+  explicit JSGenericLowering(JSGraph* jsgraph);
   ~JSGenericLowering() final;
 
   Reduction Reduce(Node* node) final;
@@ -37,6 +37,8 @@
 
   // Helpers to replace existing nodes with a generic call.
   void ReplaceWithStubCall(Node* node, Callable c, CallDescriptor::Flags flags);
+  void ReplaceWithStubCall(Node* node, Callable c, CallDescriptor::Flags flags,
+                           Operator::Properties properties);
   void ReplaceWithRuntimeCall(Node* node, Runtime::FunctionId f, int args = -1);
 
   Zone* zone() const;
@@ -47,7 +49,6 @@
   MachineOperatorBuilder* machine() const;
 
  private:
-  bool const is_typing_enabled_;
   JSGraph* const jsgraph_;
 };
 
diff --git a/src/compiler/js-global-object-specialization.cc b/src/compiler/js-global-object-specialization.cc
index d8c9f17..81ea1ad 100644
--- a/src/compiler/js-global-object-specialization.cc
+++ b/src/compiler/js-global-object-specialization.cc
@@ -74,6 +74,7 @@
   // properties of the global object here (represented as PropertyCell).
   LookupIterator it(global_object, name, LookupIterator::OWN);
   if (it.state() != LookupIterator::DATA) return NoChange();
+  if (!it.GetHolder<JSObject>()->IsJSGlobalObject()) return NoChange();
   Handle<PropertyCell> property_cell = it.GetPropertyCell();
   PropertyDetails property_details = property_cell->property_details();
   Handle<Object> property_cell_value(property_cell->value(), isolate());
@@ -154,6 +155,7 @@
   // properties of the global object here (represented as PropertyCell).
   LookupIterator it(global_object, name, LookupIterator::OWN);
   if (it.state() != LookupIterator::DATA) return NoChange();
+  if (!it.GetHolder<JSObject>()->IsJSGlobalObject()) return NoChange();
   Handle<PropertyCell> property_cell = it.GetPropertyCell();
   PropertyDetails property_details = property_cell->property_details();
   Handle<Object> property_cell_value(property_cell->value(), isolate());
diff --git a/src/compiler/js-graph.cc b/src/compiler/js-graph.cc
index 98ca7aa..229169f 100644
--- a/src/compiler/js-graph.cc
+++ b/src/compiler/js-graph.cc
@@ -14,6 +14,15 @@
 #define CACHED(name, expr) \
   cached_nodes_[name] ? cached_nodes_[name] : (cached_nodes_[name] = (expr))
 
+Node* JSGraph::AllocateInNewSpaceStubConstant() {
+  return CACHED(kAllocateInNewSpaceStubConstant,
+                HeapConstant(isolate()->builtins()->AllocateInNewSpace()));
+}
+
+Node* JSGraph::AllocateInOldSpaceStubConstant() {
+  return CACHED(kAllocateInOldSpaceStubConstant,
+                HeapConstant(isolate()->builtins()->AllocateInOldSpace()));
+}
 
 Node* JSGraph::CEntryStubConstant(int result_size) {
   if (result_size == 1) {
@@ -29,11 +38,21 @@
                 HeapConstant(factory()->empty_fixed_array()));
 }
 
+Node* JSGraph::HeapNumberMapConstant() {
+  return CACHED(kHeapNumberMapConstant,
+                HeapConstant(factory()->heap_number_map()));
+}
+
 Node* JSGraph::OptimizedOutConstant() {
   return CACHED(kOptimizedOutConstant,
                 HeapConstant(factory()->optimized_out()));
 }
 
+Node* JSGraph::StaleRegisterConstant() {
+  return CACHED(kStaleRegisterConstant,
+                HeapConstant(factory()->stale_register()));
+}
+
 Node* JSGraph::UndefinedConstant() {
   return CACHED(kUndefinedConstant, HeapConstant(factory()->undefined_value()));
 }
@@ -76,9 +95,6 @@
 
 
 Node* JSGraph::HeapConstant(Handle<HeapObject> value) {
-  if (value->IsConsString()) {
-    value = String::Flatten(Handle<String>::cast(value), TENURED);
-  }
   Node** loc = cache_.FindHeapConstant(value);
   if (*loc == nullptr) {
     *loc = graph()->NewNode(common()->HeapConstant(value));
@@ -139,6 +155,28 @@
   return *loc;
 }
 
+Node* JSGraph::RelocatableInt32Constant(int32_t value, RelocInfo::Mode rmode) {
+  Node** loc = cache_.FindRelocatableInt32Constant(value);
+  if (*loc == nullptr) {
+    *loc = graph()->NewNode(common()->RelocatableInt32Constant(value, rmode));
+  }
+  return *loc;
+}
+
+Node* JSGraph::RelocatableInt64Constant(int64_t value, RelocInfo::Mode rmode) {
+  Node** loc = cache_.FindRelocatableInt64Constant(value);
+  if (*loc == nullptr) {
+    *loc = graph()->NewNode(common()->RelocatableInt64Constant(value, rmode));
+  }
+  return *loc;
+}
+
+Node* JSGraph::RelocatableIntPtrConstant(intptr_t value,
+                                         RelocInfo::Mode rmode) {
+  return kPointerSize == 8
+             ? RelocatableInt64Constant(value, rmode)
+             : RelocatableInt32Constant(static_cast<int>(value), rmode);
+}
 
 Node* JSGraph::NumberConstant(double value) {
   Node** loc = cache_.FindNumberConstant(value);
diff --git a/src/compiler/js-graph.h b/src/compiler/js-graph.h
index 06e8030..e772da8 100644
--- a/src/compiler/js-graph.h
+++ b/src/compiler/js-graph.h
@@ -39,9 +39,13 @@
   }
 
   // Canonicalized global constants.
+  Node* AllocateInNewSpaceStubConstant();
+  Node* AllocateInOldSpaceStubConstant();
   Node* CEntryStubConstant(int result_size);
   Node* EmptyFixedArrayConstant();
+  Node* HeapNumberMapConstant();
   Node* OptimizedOutConstant();
+  Node* StaleRegisterConstant();
   Node* UndefinedConstant();
   Node* TheHoleConstant();
   Node* TrueConstant();
@@ -96,6 +100,10 @@
     return IntPtrConstant(bit_cast<intptr_t>(value));
   }
 
+  Node* RelocatableInt32Constant(int32_t value, RelocInfo::Mode rmode);
+  Node* RelocatableInt64Constant(int64_t value, RelocInfo::Mode rmode);
+  Node* RelocatableIntPtrConstant(intptr_t value, RelocInfo::Mode rmode);
+
   // Creates a Float32Constant node, usually canonicalized.
   Node* Float32Constant(float value);
 
@@ -135,9 +143,13 @@
 
  private:
   enum CachedNode {
+    kAllocateInNewSpaceStubConstant,
+    kAllocateInOldSpaceStubConstant,
     kCEntryStubConstant,
     kEmptyFixedArrayConstant,
+    kHeapNumberMapConstant,
     kOptimizedOutConstant,
+    kStaleRegisterConstant,
     kUndefinedConstant,
     kTheHoleConstant,
     kTrueConstant,
diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc
index e3254bd..5c01ff3 100644
--- a/src/compiler/js-inlining.cc
+++ b/src/compiler/js-inlining.cc
@@ -414,7 +414,7 @@
 
   Zone zone(info_->isolate()->allocator());
   ParseInfo parse_info(&zone, function);
-  CompilationInfo info(&parse_info);
+  CompilationInfo info(&parse_info, function);
   if (info_->is_deoptimization_enabled()) info.MarkAsDeoptimizationEnabled();
 
   if (!Compiler::ParseAndAnalyze(info.parse_info())) {
@@ -519,7 +519,7 @@
   // in that frame state tho, as the conversion of the receiver can be repeated
   // any number of times, it's not observable.
   if (node->opcode() == IrOpcode::kJSCallFunction &&
-      is_sloppy(info.language_mode()) && !shared_info->native()) {
+      is_sloppy(parse_info.language_mode()) && !shared_info->native()) {
     const CallFunctionParameters& p = CallFunctionParametersOf(node->op());
     Node* effect = NodeProperties::GetEffectInput(node);
     Node* convert = jsgraph_->graph()->NewNode(
diff --git a/src/compiler/js-intrinsic-lowering.cc b/src/compiler/js-intrinsic-lowering.cc
index 034ee6f..70bcda5 100644
--- a/src/compiler/js-intrinsic-lowering.cc
+++ b/src/compiler/js-intrinsic-lowering.cc
@@ -86,8 +86,6 @@
       return ReduceNewObject(node);
     case Runtime::kInlineGetSuperConstructor:
       return ReduceGetSuperConstructor(node);
-    case Runtime::kInlineGetOrdinaryHasInstance:
-      return ReduceGetOrdinaryHasInstance(node);
     default:
       break;
   }
@@ -139,7 +137,7 @@
 
 Reduction JSIntrinsicLowering::ReduceDoubleHi(Node* node) {
   // Tell the compiler to assume number input.
-  Node* renamed = graph()->NewNode(common()->Guard(Type::Number()),
+  Node* renamed = graph()->NewNode(simplified()->TypeGuard(Type::Number()),
                                    node->InputAt(0), graph()->start());
   node->ReplaceInput(0, renamed);
   return Change(node, machine()->Float64ExtractHighWord32());
@@ -148,7 +146,7 @@
 
 Reduction JSIntrinsicLowering::ReduceDoubleLo(Node* node) {
   // Tell the compiler to assume number input.
-  Node* renamed = graph()->NewNode(common()->Guard(Type::Number()),
+  Node* renamed = graph()->NewNode(simplified()->TypeGuard(Type::Number()),
                                    node->InputAt(0), graph()->start());
   node->ReplaceInput(0, renamed);
   return Change(node, machine()->Float64ExtractLowWord32());
@@ -397,15 +395,7 @@
 }
 
 Reduction JSIntrinsicLowering::ReduceNewObject(Node* node) {
-  Node* constructor = NodeProperties::GetValueInput(node, 0);
-  Node* new_target = NodeProperties::GetValueInput(node, 1);
-  Node* context = NodeProperties::GetContextInput(node);
-  Node* effect = NodeProperties::GetEffectInput(node);
-  Node* frame_state = NodeProperties::GetFrameStateInput(node, 0);
-  Node* value = graph()->NewNode(javascript()->Create(), constructor,
-                                 new_target, context, frame_state, effect);
-  ReplaceWithValue(node, value, value);
-  return Replace(value);
+  return Change(node, CodeFactory::FastNewObject(isolate()), 0);
 }
 
 Reduction JSIntrinsicLowering::ReduceGetSuperConstructor(Node* node) {
@@ -419,17 +409,6 @@
                 active_function_map, effect, control);
 }
 
-Reduction JSIntrinsicLowering::ReduceGetOrdinaryHasInstance(Node* node) {
-  Node* effect = NodeProperties::GetEffectInput(node);
-  Node* context = NodeProperties::GetContextInput(node);
-  Node* native_context = effect = graph()->NewNode(
-      javascript()->LoadContext(0, Context::NATIVE_CONTEXT_INDEX, true),
-      context, context, effect);
-  return Change(node, javascript()->LoadContext(
-                          0, Context::ORDINARY_HAS_INSTANCE_INDEX, true),
-                native_context, context, effect);
-}
-
 Reduction JSIntrinsicLowering::Change(Node* node, const Operator* op, Node* a,
                                       Node* b) {
   RelaxControls(node);
@@ -466,12 +445,6 @@
 }
 
 
-Reduction JSIntrinsicLowering::ChangeToUndefined(Node* node, Node* effect) {
-  ReplaceWithValue(node, jsgraph()->UndefinedConstant(), effect);
-  return Changed(node);
-}
-
-
 Reduction JSIntrinsicLowering::Change(Node* node, Callable const& callable,
                                       int stack_parameter_count) {
   CallDescriptor const* const desc = Linkage::GetStubCallDescriptor(
diff --git a/src/compiler/js-intrinsic-lowering.h b/src/compiler/js-intrinsic-lowering.h
index a43ed01..59e6f49 100644
--- a/src/compiler/js-intrinsic-lowering.h
+++ b/src/compiler/js-intrinsic-lowering.h
@@ -63,14 +63,12 @@
   Reduction ReduceCall(Node* node);
   Reduction ReduceNewObject(Node* node);
   Reduction ReduceGetSuperConstructor(Node* node);
-  Reduction ReduceGetOrdinaryHasInstance(Node* node);
 
   Reduction Change(Node* node, const Operator* op);
   Reduction Change(Node* node, const Operator* op, Node* a, Node* b);
   Reduction Change(Node* node, const Operator* op, Node* a, Node* b, Node* c);
   Reduction Change(Node* node, const Operator* op, Node* a, Node* b, Node* c,
                    Node* d);
-  Reduction ChangeToUndefined(Node* node, Node* effect = nullptr);
   Reduction Change(Node* node, Callable const& callable,
                    int stack_parameter_count);
 
diff --git a/src/compiler/js-native-context-specialization.cc b/src/compiler/js-native-context-specialization.cc
index d1353d2..fbc064c 100644
--- a/src/compiler/js-native-context-specialization.cc
+++ b/src/compiler/js-native-context-specialization.cc
@@ -157,13 +157,7 @@
     // Perform map check on {receiver}.
     Type* receiver_type = access_info.receiver_type();
     if (receiver_type->Is(Type::String())) {
-      // Emit an instance type check for strings.
-      Node* receiver_instance_type = this_effect = graph()->NewNode(
-          simplified()->LoadField(AccessBuilder::ForMapInstanceType()),
-          receiver_map, this_effect, fallthrough_control);
-      Node* check =
-          graph()->NewNode(machine()->Uint32LessThan(), receiver_instance_type,
-                           jsgraph()->Uint32Constant(FIRST_NONSTRING_TYPE));
+      Node* check = graph()->NewNode(simplified()->ObjectIsString(), receiver);
       if (j == access_infos.size() - 1) {
         this_control =
             graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
@@ -270,7 +264,7 @@
                                    1 << JSArrayBuffer::WasNeutered::kShift)),
               jsgraph()->Int32Constant(0));
           this_control =
-              graph()->NewNode(common()->DeoptimizeIf(), check, frame_state,
+              graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
                                this_effect, this_control);
           break;
         }
@@ -285,8 +279,9 @@
             simplified()->LoadField(AccessBuilder::ForJSObjectProperties()),
             this_storage, this_effect, this_control);
       }
-      FieldAccess field_access = {kTaggedBase, field_index.offset(), name,
-                                  field_type, MachineType::AnyTagged()};
+      FieldAccess field_access = {
+          kTaggedBase, field_index.offset(),     name,
+          field_type,  MachineType::AnyTagged(), kFullWriteBarrier};
       if (access_mode == AccessMode::kLoad) {
         if (field_type->Is(Type::UntaggedFloat64())) {
           if (!field_index.is_inobject() || field_index.is_hidden_field() ||
@@ -310,26 +305,28 @@
           this_control =
               graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
                                this_effect, this_control);
-          this_value = graph()->NewNode(common()->Guard(Type::Number()),
+          this_value = graph()->NewNode(simplified()->TypeGuard(Type::Number()),
                                         this_value, this_control);
 
           if (!field_index.is_inobject() || field_index.is_hidden_field() ||
               !FLAG_unbox_double_fields) {
             if (access_info.HasTransitionMap()) {
               // Allocate a MutableHeapNumber for the new property.
-              Callable callable =
-                  CodeFactory::AllocateMutableHeapNumber(isolate());
-              CallDescriptor* desc = Linkage::GetStubCallDescriptor(
-                  isolate(), jsgraph()->zone(), callable.descriptor(), 0,
-                  CallDescriptor::kNoFlags, Operator::kNoThrow);
-              Node* this_box = this_effect = graph()->NewNode(
-                  common()->Call(desc),
-                  jsgraph()->HeapConstant(callable.code()),
-                  jsgraph()->NoContextConstant(), this_effect, this_control);
+              this_effect =
+                  graph()->NewNode(common()->BeginRegion(), this_effect);
+              Node* this_box = this_effect =
+                  graph()->NewNode(simplified()->Allocate(NOT_TENURED),
+                                   jsgraph()->Constant(HeapNumber::kSize),
+                                   this_effect, this_control);
+              this_effect = graph()->NewNode(
+                  simplified()->StoreField(AccessBuilder::ForMap()), this_box,
+                  jsgraph()->HeapConstant(factory()->mutable_heap_number_map()),
+                  this_effect, this_control);
               this_effect = graph()->NewNode(
                   simplified()->StoreField(AccessBuilder::ForHeapNumberValue()),
                   this_box, this_value, this_effect, this_control);
-              this_value = this_box;
+              this_value = this_effect = graph()->NewNode(
+                  common()->FinishRegion(), this_box, this_effect);
 
               field_access.type = Type::TaggedPointer();
             } else {
@@ -351,8 +348,9 @@
           this_control =
               graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
                                this_effect, this_control);
-          this_value = graph()->NewNode(common()->Guard(type_cache_.kSmi),
-                                        this_value, this_control);
+          this_value =
+              graph()->NewNode(simplified()->TypeGuard(type_cache_.kSmi),
+                               this_value, this_control);
         } else if (field_type->Is(Type::TaggedPointer())) {
           Node* check =
               graph()->NewNode(simplified()->ObjectIsSmi(), this_value);
@@ -431,25 +429,29 @@
     AccessMode access_mode, LanguageMode language_mode) {
   DCHECK(node->opcode() == IrOpcode::kJSLoadNamed ||
          node->opcode() == IrOpcode::kJSStoreNamed);
+  Node* const receiver = NodeProperties::GetValueInput(node, 0);
+  Node* const effect = NodeProperties::GetEffectInput(node);
 
   // Check if the {nexus} reports type feedback for the IC.
   if (nexus.IsUninitialized()) {
     if ((flags() & kDeoptimizationEnabled) &&
         (flags() & kBailoutOnUninitialized)) {
-      // TODO(turbofan): Implement all eager bailout points correctly in
-      // the graph builder.
-      Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-      if (!OpParameter<FrameStateInfo>(frame_state).bailout_id().IsNone()) {
-        return ReduceSoftDeoptimize(node);
-      }
+      return ReduceSoftDeoptimize(node);
     }
     return NoChange();
   }
 
   // Extract receiver maps from the IC using the {nexus}.
   MapHandleList receiver_maps;
-  if (nexus.ExtractMaps(&receiver_maps) == 0) return NoChange();
-  DCHECK_LT(0, receiver_maps.length());
+  if (!ExtractReceiverMaps(receiver, effect, nexus, &receiver_maps)) {
+    return NoChange();
+  } else if (receiver_maps.length() == 0) {
+    if ((flags() & kDeoptimizationEnabled) &&
+        (flags() & kBailoutOnUninitialized)) {
+      return ReduceSoftDeoptimize(node);
+    }
+    return NoChange();
+  }
 
   // Try to lower the named access based on the {receiver_maps}.
   return ReduceNamedAccess(node, value, receiver_maps, name, access_mode,
@@ -460,8 +462,33 @@
 Reduction JSNativeContextSpecialization::ReduceJSLoadNamed(Node* node) {
   DCHECK_EQ(IrOpcode::kJSLoadNamed, node->opcode());
   NamedAccess const& p = NamedAccessOf(node->op());
+  Node* const receiver = NodeProperties::GetValueInput(node, 0);
   Node* const value = jsgraph()->Dead();
 
+  // Check if we have a constant receiver.
+  HeapObjectMatcher m(receiver);
+  if (m.HasValue()) {
+    // Optimize "prototype" property of functions.
+    if (m.Value()->IsJSFunction() &&
+        p.name().is_identical_to(factory()->prototype_string())) {
+      Handle<JSFunction> function = Handle<JSFunction>::cast(m.Value());
+      if (function->has_initial_map()) {
+        // We need to add a code dependency on the initial map of the
+        // {function} in order to be notified about changes to the
+        // "prototype" of {function}, so it doesn't make sense to
+        // continue unless deoptimization is enabled.
+        if (flags() & kDeoptimizationEnabled) {
+          Handle<Map> initial_map(function->initial_map(), isolate());
+          dependencies()->AssumeInitialMapCantChange(initial_map);
+          Handle<Object> prototype(initial_map->prototype(), isolate());
+          Node* value = jsgraph()->Constant(prototype);
+          ReplaceWithValue(node, value);
+          return Replace(value);
+        }
+      }
+    }
+  }
+
   // Extract receiver maps from the LOAD_IC using the LoadICNexus.
   if (!p.feedback().IsValid()) return NoChange();
   LoadICNexus nexus(p.feedback().vector(), p.feedback().slot());
@@ -664,8 +691,8 @@
           graph()->NewNode(simplified()->ObjectIsNumber(), this_index);
       this_control = graph()->NewNode(common()->DeoptimizeUnless(), check,
                                       frame_state, this_effect, this_control);
-      this_index = graph()->NewNode(common()->Guard(Type::Number()), this_index,
-                                    this_control);
+      this_index = graph()->NewNode(simplified()->TypeGuard(Type::Number()),
+                                    this_index, this_control);
     }
 
     // Convert the {index} to an unsigned32 value and check if the result is
@@ -729,7 +756,8 @@
       element_type = type_cache_.kSmi;
     }
     ElementAccess element_access = {kTaggedBase, FixedArray::kHeaderSize,
-                                    element_type, element_machine_type};
+                                    element_type, element_machine_type,
+                                    kFullWriteBarrier};
 
     // Access the actual element.
     // TODO(bmeurer): Refactor this into separate methods or even a separate
@@ -786,8 +814,8 @@
         }
         // Rename the result to represent the actual type (not polluted by the
         // hole).
-        this_value = graph()->NewNode(common()->Guard(element_type), this_value,
-                                      this_control);
+        this_value = graph()->NewNode(simplified()->TypeGuard(element_type),
+                                      this_value, this_control);
       } else if (elements_kind == FAST_HOLEY_DOUBLE_ELEMENTS) {
         // Perform the hole check on the result.
         Node* check =
@@ -820,14 +848,14 @@
         Node* check = graph()->NewNode(simplified()->ObjectIsSmi(), this_value);
         this_control = graph()->NewNode(common()->DeoptimizeUnless(), check,
                                         frame_state, this_effect, this_control);
-        this_value = graph()->NewNode(common()->Guard(type_cache_.kSmi),
+        this_value = graph()->NewNode(simplified()->TypeGuard(type_cache_.kSmi),
                                       this_value, this_control);
       } else if (IsFastDoubleElementsKind(elements_kind)) {
         Node* check =
             graph()->NewNode(simplified()->ObjectIsNumber(), this_value);
         this_control = graph()->NewNode(common()->DeoptimizeUnless(), check,
                                         frame_state, this_effect, this_control);
-        this_value = graph()->NewNode(common()->Guard(Type::Number()),
+        this_value = graph()->NewNode(simplified()->TypeGuard(Type::Number()),
                                       this_value, this_control);
       }
       this_effect = graph()->NewNode(simplified()->StoreElement(element_access),
@@ -873,25 +901,29 @@
     KeyedAccessStoreMode store_mode) {
   DCHECK(node->opcode() == IrOpcode::kJSLoadProperty ||
          node->opcode() == IrOpcode::kJSStoreProperty);
+  Node* const receiver = NodeProperties::GetValueInput(node, 0);
+  Node* const effect = NodeProperties::GetEffectInput(node);
 
   // Check if the {nexus} reports type feedback for the IC.
   if (nexus.IsUninitialized()) {
     if ((flags() & kDeoptimizationEnabled) &&
         (flags() & kBailoutOnUninitialized)) {
-      // TODO(turbofan): Implement all eager bailout points correctly in
-      // the graph builder.
-      Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-      if (!OpParameter<FrameStateInfo>(frame_state).bailout_id().IsNone()) {
-        return ReduceSoftDeoptimize(node);
-      }
+      return ReduceSoftDeoptimize(node);
     }
     return NoChange();
   }
 
   // Extract receiver maps from the {nexus}.
   MapHandleList receiver_maps;
-  if (nexus.ExtractMaps(&receiver_maps) == 0) return NoChange();
-  DCHECK_LT(0, receiver_maps.length());
+  if (!ExtractReceiverMaps(receiver, effect, nexus, &receiver_maps)) {
+    return NoChange();
+  } else if (receiver_maps.length() == 0) {
+    if ((flags() & kDeoptimizationEnabled) &&
+        (flags() & kBailoutOnUninitialized)) {
+      return ReduceSoftDeoptimize(node);
+    }
+    return NoChange();
+  }
 
   // Optimize access for constant {index}.
   HeapObjectMatcher mindex(index);
@@ -995,6 +1027,84 @@
   }
 }
 
+bool JSNativeContextSpecialization::ExtractReceiverMaps(
+    Node* receiver, Node* effect, FeedbackNexus const& nexus,
+    MapHandleList* receiver_maps) {
+  DCHECK_EQ(0, receiver_maps->length());
+  // See if we can infer a concrete type for the {receiver}.
+  Handle<Map> receiver_map;
+  if (InferReceiverMap(receiver, effect).ToHandle(&receiver_map)) {
+    // We can assume that the {receiver} still has the infered {receiver_map}.
+    receiver_maps->Add(receiver_map);
+    return true;
+  }
+  // Try to extract some maps from the {nexus}.
+  if (nexus.ExtractMaps(receiver_maps) != 0) {
+    // Try to filter impossible candidates based on infered root map.
+    if (InferReceiverRootMap(receiver).ToHandle(&receiver_map)) {
+      for (int i = receiver_maps->length(); --i >= 0;) {
+        if (receiver_maps->at(i)->FindRootMap() != *receiver_map) {
+          receiver_maps->Remove(i);
+        }
+      }
+    }
+    return true;
+  }
+  return false;
+}
+
+MaybeHandle<Map> JSNativeContextSpecialization::InferReceiverMap(Node* receiver,
+                                                                 Node* effect) {
+  NodeMatcher m(receiver);
+  if (m.IsJSCreate()) {
+    HeapObjectMatcher mtarget(m.InputAt(0));
+    HeapObjectMatcher mnewtarget(m.InputAt(1));
+    if (mtarget.HasValue() && mnewtarget.HasValue()) {
+      Handle<JSFunction> constructor =
+          Handle<JSFunction>::cast(mtarget.Value());
+      if (constructor->has_initial_map()) {
+        Handle<Map> initial_map(constructor->initial_map(), isolate());
+        if (initial_map->constructor_or_backpointer() == *mnewtarget.Value()) {
+          // Walk up the {effect} chain to see if the {receiver} is the
+          // dominating effect and there's no other observable write in
+          // between.
+          while (true) {
+            if (receiver == effect) return initial_map;
+            if (!effect->op()->HasProperty(Operator::kNoWrite) ||
+                effect->op()->EffectInputCount() != 1) {
+              break;
+            }
+            effect = NodeProperties::GetEffectInput(effect);
+          }
+        }
+      }
+    }
+  }
+  return MaybeHandle<Map>();
+}
+
+MaybeHandle<Map> JSNativeContextSpecialization::InferReceiverRootMap(
+    Node* receiver) {
+  HeapObjectMatcher m(receiver);
+  if (m.HasValue()) {
+    return handle(m.Value()->map()->FindRootMap(), isolate());
+  } else if (m.IsJSCreate()) {
+    HeapObjectMatcher mtarget(m.InputAt(0));
+    HeapObjectMatcher mnewtarget(m.InputAt(1));
+    if (mtarget.HasValue() && mnewtarget.HasValue()) {
+      Handle<JSFunction> constructor =
+          Handle<JSFunction>::cast(mtarget.Value());
+      if (constructor->has_initial_map()) {
+        Handle<Map> initial_map(constructor->initial_map(), isolate());
+        if (initial_map->constructor_or_backpointer() == *mnewtarget.Value()) {
+          DCHECK_EQ(*initial_map, initial_map->FindRootMap());
+          return initial_map;
+        }
+      }
+    }
+  }
+  return MaybeHandle<Map>();
+}
 
 MaybeHandle<Context> JSNativeContextSpecialization::GetNativeContext(
     Node* node) {
diff --git a/src/compiler/js-native-context-specialization.h b/src/compiler/js-native-context-specialization.h
index 5562c6e..7d43bfb 100644
--- a/src/compiler/js-native-context-specialization.h
+++ b/src/compiler/js-native-context-specialization.h
@@ -85,6 +85,20 @@
                               Handle<Context> native_context,
                               Handle<JSObject> holder);
 
+  // Extract receiver maps from {nexus} and filter based on {receiver} if
+  // possible.
+  bool ExtractReceiverMaps(Node* receiver, Node* effect,
+                           FeedbackNexus const& nexus,
+                           MapHandleList* receiver_maps);
+
+  // Try to infer a map for the given {receiver} at the current {effect}.
+  // If a map is returned then you can be sure that the {receiver} definitely
+  // has the returned map at this point in the program (identified by {effect}).
+  MaybeHandle<Map> InferReceiverMap(Node* receiver, Node* effect);
+  // Try to infer a root map for the {receiver} independent of the current
+  // program location.
+  MaybeHandle<Map> InferReceiverRootMap(Node* receiver);
+
   // Retrieve the native context from the given {node} if known.
   MaybeHandle<Context> GetNativeContext(Node* node);
 
diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc
index 98e090b..dfbe742 100644
--- a/src/compiler/js-operator.cc
+++ b/src/compiler/js-operator.cc
@@ -379,8 +379,8 @@
 #define CACHED_OP_LIST(V)                                  \
   V(Equal, Operator::kNoProperties, 2, 1)                  \
   V(NotEqual, Operator::kNoProperties, 2, 1)               \
-  V(StrictEqual, Operator::kNoThrow, 2, 1)                 \
-  V(StrictNotEqual, Operator::kNoThrow, 2, 1)              \
+  V(StrictEqual, Operator::kPure, 2, 1)                    \
+  V(StrictNotEqual, Operator::kPure, 2, 1)                 \
   V(LessThan, Operator::kNoProperties, 2, 1)               \
   V(GreaterThan, Operator::kNoProperties, 2, 1)            \
   V(LessThanOrEqual, Operator::kNoProperties, 2, 1)        \
@@ -389,13 +389,12 @@
   V(ToLength, Operator::kNoProperties, 1, 1)               \
   V(ToName, Operator::kNoProperties, 1, 1)                 \
   V(ToNumber, Operator::kNoProperties, 1, 1)               \
-  V(ToObject, Operator::kNoProperties, 1, 1)               \
+  V(ToObject, Operator::kFoldable, 1, 1)                   \
   V(ToString, Operator::kNoProperties, 1, 1)               \
-  V(Yield, Operator::kNoProperties, 1, 1)                  \
   V(Create, Operator::kEliminatable, 2, 1)                 \
   V(CreateIterResultObject, Operator::kEliminatable, 2, 1) \
   V(HasProperty, Operator::kNoProperties, 2, 1)            \
-  V(TypeOf, Operator::kEliminatable, 1, 1)                 \
+  V(TypeOf, Operator::kPure, 1, 1)                         \
   V(InstanceOf, Operator::kNoProperties, 2, 1)             \
   V(ForInDone, Operator::kPure, 2, 1)                      \
   V(ForInNext, Operator::kNoProperties, 4, 1)              \
@@ -541,11 +540,11 @@
 
 const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) {
   // TODO(turbofan): Cache most important versions of this operator.
-  return new (zone()) Operator1<ToBooleanHints>(        //--
-      IrOpcode::kJSToBoolean, Operator::kEliminatable,  // opcode
-      "JSToBoolean",                                    // name
-      1, 1, 0, 1, 1, 0,                                 // inputs/outputs
-      hints);                                           // parameter
+  return new (zone()) Operator1<ToBooleanHints>(  //--
+      IrOpcode::kJSToBoolean, Operator::kPure,    // opcode
+      "JSToBoolean",                              // name
+      1, 0, 0, 1, 0, 0,                           // inputs/outputs
+      hints);                                     // parameter
 }
 
 const Operator* JSOperatorBuilder::CallFunction(
@@ -707,11 +706,11 @@
 
 
 const Operator* JSOperatorBuilder::CreateArguments(CreateArgumentsType type) {
-  return new (zone()) Operator1<CreateArgumentsType>(    // --
-      IrOpcode::kJSCreateArguments, Operator::kNoThrow,  // opcode
-      "JSCreateArguments",                               // name
-      1, 1, 1, 1, 1, 0,                                  // counts
-      type);                                             // parameter
+  return new (zone()) Operator1<CreateArgumentsType>(         // --
+      IrOpcode::kJSCreateArguments, Operator::kEliminatable,  // opcode
+      "JSCreateArguments",                                    // name
+      1, 1, 0, 1, 1, 0,                                       // counts
+      type);                                                  // parameter
 }
 
 
diff --git a/src/compiler/js-operator.h b/src/compiler/js-operator.h
index eb323c9..750817a 100644
--- a/src/compiler/js-operator.h
+++ b/src/compiler/js-operator.h
@@ -410,7 +410,6 @@
   const Operator* ToNumber();
   const Operator* ToObject();
   const Operator* ToString();
-  const Operator* Yield();
 
   const Operator* Create();
   const Operator* CreateArguments(CreateArgumentsType type);
diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc
index 7e1a0dc..8099533 100644
--- a/src/compiler/js-typed-lowering.cc
+++ b/src/compiler/js-typed-lowering.cc
@@ -27,7 +27,7 @@
   JSBinopReduction(JSTypedLowering* lowering, Node* node)
       : lowering_(lowering), node_(node) {}
 
-  void ConvertInputsToNumber(Node* frame_state) {
+  void ConvertInputsToNumberOrUndefined(Node* frame_state) {
     // To convert the inputs to numbers, we have to provide frame states
     // for lazy bailouts in the ToNumber conversions.
     // We use a little hack here: we take the frame state before the binary
@@ -46,11 +46,11 @@
       ConvertBothInputsToNumber(&left_input, &right_input, frame_state);
     } else {
       left_input = left_is_primitive
-                       ? ConvertPlainPrimitiveToNumber(left())
+                       ? ConvertPlainPrimitiveToNumberOrUndefined(left())
                        : ConvertSingleInputToNumber(
                              left(), CreateFrameStateForLeftInput(frame_state));
       right_input = right_is_primitive
-                        ? ConvertPlainPrimitiveToNumber(right())
+                        ? ConvertPlainPrimitiveToNumberOrUndefined(right())
                         : ConvertSingleInputToNumber(
                               right(), CreateFrameStateForRightInput(
                                            frame_state, left_input));
@@ -107,32 +107,6 @@
     return lowering_->Changed(node_);
   }
 
-  Reduction ChangeToStringComparisonOperator(const Operator* op,
-                                             bool invert = false) {
-    if (node_->op()->ControlInputCount() > 0) {
-      lowering_->RelaxControls(node_);
-    }
-    // String comparison operators need effect and control inputs, so copy them
-    // over.
-    Node* effect = NodeProperties::GetEffectInput(node_);
-    Node* control = NodeProperties::GetControlInput(node_);
-    node_->ReplaceInput(2, effect);
-    node_->ReplaceInput(3, control);
-
-    node_->TrimInputCount(4);
-    NodeProperties::ChangeOp(node_, op);
-
-    if (invert) {
-      // Insert a boolean-not to invert the value.
-      Node* value = graph()->NewNode(simplified()->BooleanNot(), node_);
-      node_->ReplaceUses(value);
-      // Note: ReplaceUses() smashes all uses, so smash it back here.
-      value->ReplaceInput(0, node_);
-      return lowering_->Replace(value);
-    }
-    return lowering_->Changed(node_);
-  }
-
   Reduction ChangeToPureOperator(const Operator* op, Type* type) {
     return ChangeToPureOperator(op, false, type);
   }
@@ -242,12 +216,14 @@
         frame_state->InputAt(kFrameStateOuterStateInput));
   }
 
-  Node* ConvertPlainPrimitiveToNumber(Node* node) {
+  Node* ConvertPlainPrimitiveToNumberOrUndefined(Node* node) {
     DCHECK(NodeProperties::GetType(node)->Is(Type::PlainPrimitive()));
     // Avoid inserting too many eager ToNumber() operations.
     Reduction const reduction = lowering_->ReduceJSToNumberInput(node);
     if (reduction.Changed()) return reduction.replacement();
-    // TODO(jarin) Use PlainPrimitiveToNumber once we have it.
+    if (NodeProperties::GetType(node)->Is(Type::NumberOrUndefined())) {
+      return node;
+    }
     return graph()->NewNode(
         javascript()->ToNumber(), node, jsgraph()->NoContextConstant(),
         jsgraph()->EmptyFrameState(), graph()->start(), graph()->start());
@@ -257,7 +233,9 @@
     DCHECK(!NodeProperties::GetType(node)->Is(Type::PlainPrimitive()));
     Node* const n = graph()->NewNode(javascript()->ToNumber(), node, context(),
                                      frame_state, effect(), control());
-    NodeProperties::ReplaceUses(node_, node_, node_, n, n);
+    Node* const if_success = graph()->NewNode(common()->IfSuccess(), n);
+    NodeProperties::ReplaceControlInput(node_, if_success);
+    NodeProperties::ReplaceUses(node_, node_, node_, node_, n);
     update_effect(n);
     return n;
   }
@@ -361,20 +339,27 @@
   if (flags() & kDisableBinaryOpReduction) return NoChange();
 
   JSBinopReduction r(this, node);
-  if (r.BothInputsAre(Type::Number())) {
+  if (r.BothInputsAre(Type::NumberOrUndefined())) {
     // JSAdd(x:number, y:number) => NumberAdd(x, y)
-    return r.ChangeToPureOperator(simplified()->NumberAdd(), Type::Number());
+    return ReduceNumberBinop(node, simplified()->NumberAdd());
   }
   if (r.NeitherInputCanBe(Type::StringOrReceiver())) {
     // JSAdd(x:-string, y:-string) => NumberAdd(ToNumber(x), ToNumber(y))
     Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-    r.ConvertInputsToNumber(frame_state);
+    r.ConvertInputsToNumberOrUndefined(frame_state);
     return r.ChangeToPureOperator(simplified()->NumberAdd(), Type::Number());
   }
-  if (r.BothInputsAre(Type::String())) {
-    // JSAdd(x:string, y:string) => CallStub[StringAdd](x, y)
+  if (r.OneInputIs(Type::String())) {
+    StringAddFlags flags = STRING_ADD_CHECK_NONE;
+    if (!r.LeftInputIs(Type::String())) {
+      flags = STRING_ADD_CONVERT_LEFT;
+    } else if (!r.RightInputIs(Type::String())) {
+      flags = STRING_ADD_CONVERT_RIGHT;
+    }
+    // JSAdd(x:string, y) => CallStub[StringAdd](x, y)
+    // JSAdd(x, y:string) => CallStub[StringAdd](x, y)
     Callable const callable =
-        CodeFactory::StringAdd(isolate(), STRING_ADD_CHECK_NONE, NOT_TENURED);
+        CodeFactory::StringAdd(isolate(), flags, NOT_TENURED);
     CallDescriptor const* const desc = Linkage::GetStubCallDescriptor(
         isolate(), graph()->zone(), callable.descriptor(), 0,
         CallDescriptor::kNeedsFrameState, node->op()->properties());
@@ -408,13 +393,13 @@
 
   JSBinopReduction r(this, node);
   if (numberOp == simplified()->NumberModulus()) {
-    if (r.BothInputsAre(Type::Number())) {
+    if (r.BothInputsAre(Type::NumberOrUndefined())) {
       return r.ChangeToPureOperator(numberOp, Type::Number());
     }
     return NoChange();
   }
   Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-  r.ConvertInputsToNumber(frame_state);
+  r.ConvertInputsToNumberOrUndefined(frame_state);
   return r.ChangeToPureOperator(numberOp, Type::Number());
 }
 
@@ -424,7 +409,7 @@
 
   JSBinopReduction r(this, node);
   Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-  r.ConvertInputsToNumber(frame_state);
+  r.ConvertInputsToNumberOrUndefined(frame_state);
   r.ConvertInputsToUI32(kSigned, kSigned);
   return r.ChangeToPureOperator(intOp, Type::Integral32());
 }
@@ -437,7 +422,7 @@
 
   JSBinopReduction r(this, node);
   Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-  r.ConvertInputsToNumber(frame_state);
+  r.ConvertInputsToNumberOrUndefined(frame_state);
   r.ConvertInputsToUI32(left_signedness, kUnsigned);
   return r.ChangeToPureOperator(shift_op);
 }
@@ -468,7 +453,7 @@
       default:
         return NoChange();
     }
-    r.ChangeToStringComparisonOperator(stringOp);
+    r.ChangeToPureOperator(stringOp);
     return Changed(node);
   }
   if (r.OneInputCannotBe(Type::StringOrReceiver())) {
@@ -483,7 +468,7 @@
     } else {
       // TODO(turbofan): mixed signed/unsigned int32 comparisons.
       Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-      r.ConvertInputsToNumber(frame_state);
+      r.ConvertInputsToNumberOrUndefined(frame_state);
       less_than = simplified()->NumberLessThan();
       less_than_or_equal = simplified()->NumberLessThanOrEqual();
     }
@@ -512,18 +497,61 @@
   return NoChange();  // Keep a generic comparison.
 }
 
+Reduction JSTypedLowering::ReduceJSEqualTypeOf(Node* node, bool invert) {
+  HeapObjectBinopMatcher m(node);
+  if (m.left().IsJSTypeOf() && m.right().HasValue() &&
+      m.right().Value()->IsString()) {
+    Node* replacement;
+    Node* input = m.left().InputAt(0);
+    Handle<String> value = Handle<String>::cast(m.right().Value());
+    if (String::Equals(value, factory()->boolean_string())) {
+      replacement = graph()->NewNode(
+          common()->Select(MachineRepresentation::kTagged),
+          graph()->NewNode(simplified()->ReferenceEqual(Type::Any()), input,
+                           jsgraph()->TrueConstant()),
+          jsgraph()->TrueConstant(),
+          graph()->NewNode(simplified()->ReferenceEqual(Type::Any()), input,
+                           jsgraph()->FalseConstant()));
+    } else if (String::Equals(value, factory()->function_string())) {
+      replacement = graph()->NewNode(simplified()->ObjectIsCallable(), input);
+    } else if (String::Equals(value, factory()->number_string())) {
+      replacement = graph()->NewNode(simplified()->ObjectIsNumber(), input);
+    } else if (String::Equals(value, factory()->string_string())) {
+      replacement = graph()->NewNode(simplified()->ObjectIsString(), input);
+    } else if (String::Equals(value, factory()->undefined_string())) {
+      replacement = graph()->NewNode(
+          common()->Select(MachineRepresentation::kTagged),
+          graph()->NewNode(simplified()->ReferenceEqual(Type::Any()), input,
+                           jsgraph()->NullConstant()),
+          jsgraph()->FalseConstant(),
+          graph()->NewNode(simplified()->ObjectIsUndetectable(), input));
+    } else {
+      return NoChange();
+    }
+    if (invert) {
+      replacement = graph()->NewNode(simplified()->BooleanNot(), replacement);
+    }
+    return Replace(replacement);
+  }
+  return NoChange();
+}
 
 Reduction JSTypedLowering::ReduceJSEqual(Node* node, bool invert) {
   if (flags() & kDisableBinaryOpReduction) return NoChange();
 
+  Reduction const reduction = ReduceJSEqualTypeOf(node, invert);
+  if (reduction.Changed()) {
+    ReplaceWithValue(node, reduction.replacement());
+    return reduction;
+  }
+
   JSBinopReduction r(this, node);
 
   if (r.BothInputsAre(Type::Number())) {
     return r.ChangeToPureOperator(simplified()->NumberEqual(), invert);
   }
   if (r.BothInputsAre(Type::String())) {
-    return r.ChangeToStringComparisonOperator(simplified()->StringEqual(),
-                                              invert);
+    return r.ChangeToPureOperator(simplified()->StringEqual(), invert);
   }
   if (r.BothInputsAre(Type::Boolean())) {
     return r.ChangeToPureOperator(simplified()->ReferenceEqual(Type::Boolean()),
@@ -573,6 +601,10 @@
       return Replace(replacement);
     }
   }
+  Reduction const reduction = ReduceJSEqualTypeOf(node, invert);
+  if (reduction.Changed()) {
+    return reduction;
+  }
   if (r.OneInputIs(the_hole_type_)) {
     return r.ChangeToPureOperator(simplified()->ReferenceEqual(the_hole_type_),
                                   invert);
@@ -602,10 +634,9 @@
                                   invert);
   }
   if (r.BothInputsAre(Type::String())) {
-    return r.ChangeToStringComparisonOperator(simplified()->StringEqual(),
-                                              invert);
+    return r.ChangeToPureOperator(simplified()->StringEqual(), invert);
   }
-  if (r.BothInputsAre(Type::Number())) {
+  if (r.BothInputsAre(Type::NumberOrUndefined())) {
     return r.ChangeToPureOperator(simplified()->NumberEqual(), invert);
   }
   // TODO(turbofan): js-typed-lowering of StrictEqual(mixed types)
@@ -616,10 +647,8 @@
 Reduction JSTypedLowering::ReduceJSToBoolean(Node* node) {
   Node* const input = node->InputAt(0);
   Type* const input_type = NodeProperties::GetType(input);
-  Node* const effect = NodeProperties::GetEffectInput(node);
   if (input_type->Is(Type::Boolean())) {
     // JSToBoolean(x:boolean) => x
-    ReplaceWithValue(node, input, effect);
     return Replace(input);
   } else if (input_type->Is(Type::OrderedNumber())) {
     // JSToBoolean(x:ordered-number) => BooleanNot(NumberEqual(x,#0))
@@ -633,11 +662,10 @@
     // JSToBoolean(x:string) => NumberLessThan(#0,x.length)
     FieldAccess const access = AccessBuilder::ForStringLength();
     Node* length = graph()->NewNode(simplified()->LoadField(access), input,
-                                    effect, graph()->start());
+                                    graph()->start(), graph()->start());
     ReplaceWithValue(node, node, length);
     node->ReplaceInput(0, jsgraph()->ZeroConstant());
     node->ReplaceInput(1, length);
-    node->TrimInputCount(2);
     NodeProperties::ChangeOp(node, simplified()->NumberLessThan());
     return Changed(node);
   }
@@ -691,12 +719,6 @@
 }
 
 Reduction JSTypedLowering::ReduceJSToNumberInput(Node* input) {
-  if (input->opcode() == IrOpcode::kJSToNumber) {
-    // Recursively try to reduce the input first.
-    Reduction result = ReduceJSToNumber(input);
-    if (result.Changed()) return result;
-    return Changed(input);  // JSToNumber(JSToNumber(x)) => JSToNumber(x)
-  }
   // Check for ToNumber truncation of signaling NaN to undefined mapping.
   if (input->opcode() == IrOpcode::kSelect) {
     Node* check = NodeProperties::GetValueInput(input, 0);
@@ -914,27 +936,6 @@
     ReplaceWithValue(node, value, effect);
     return Replace(value);
   }
-  // Optimize "prototype" property of functions.
-  if (name.is_identical_to(factory()->prototype_string()) &&
-      receiver_type->IsConstant() &&
-      receiver_type->AsConstant()->Value()->IsJSFunction()) {
-    // TODO(turbofan): This lowering might not kick in if we ever lower
-    // the C++ accessor for "prototype" in an earlier optimization pass.
-    Handle<JSFunction> function =
-        Handle<JSFunction>::cast(receiver_type->AsConstant()->Value());
-    if (function->has_initial_map()) {
-      // We need to add a code dependency on the initial map of the {function}
-      // in order to be notified about changes to the "prototype" of {function},
-      // so it doesn't make sense to continue unless deoptimization is enabled.
-      if (!(flags() & kDeoptimizationEnabled)) return NoChange();
-      Handle<Map> initial_map(function->initial_map(), isolate());
-      dependencies()->AssumeInitialMapCantChange(initial_map);
-      Node* value =
-          jsgraph()->Constant(handle(initial_map->prototype(), isolate()));
-      ReplaceWithValue(node, value);
-      return Replace(value);
-    }
-  }
   return NoChange();
 }
 
@@ -1012,7 +1013,7 @@
         Node* effect = NodeProperties::GetEffectInput(node);
         Node* control = NodeProperties::GetControlInput(node);
         // Convert to a number first.
-        if (!value_type->Is(Type::Number())) {
+        if (!value_type->Is(Type::NumberOrUndefined())) {
           Reduction number_reduction = ReduceJSToNumberInput(value);
           if (number_reduction.Changed()) {
             value = number_reduction.replacement();
@@ -1065,10 +1066,7 @@
   Node* const frame_state = NodeProperties::GetFrameStateInput(node, 0);
 
   // If deoptimization is disabled, we cannot optimize.
-  if (!(flags() & kDeoptimizationEnabled) ||
-      (flags() & kDisableBinaryOpReduction)) {
-    return NoChange();
-  }
+  if (!(flags() & kDeoptimizationEnabled)) return NoChange();
 
   // If we are in a try block, don't optimize since the runtime call
   // in the proxy case can throw.
@@ -1087,15 +1085,21 @@
       Handle<JSFunction>::cast(r.right_type()->AsConstant()->Value());
   Handle<SharedFunctionInfo> shared(function->shared(), isolate());
 
-  if (!function->IsConstructor() ||
-      function->map()->has_non_instance_prototype()) {
+  // Make sure the prototype of {function} is the %FunctionPrototype%, and it
+  // already has a meaningful initial map (i.e. we constructed at least one
+  // instance using the constructor {function}).
+  if (function->map()->prototype() != function->native_context()->closure() ||
+      function->map()->has_non_instance_prototype() ||
+      !function->has_initial_map()) {
     return NoChange();
   }
 
-  JSFunction::EnsureHasInitialMap(function);
-  DCHECK(function->has_initial_map());
+  // We can only use the fast case if @@hasInstance was not used so far.
+  if (!isolate()->IsHasInstanceLookupChainIntact()) return NoChange();
+  dependencies()->AssumePropertyCell(factory()->has_instance_protector());
+
   Handle<Map> initial_map(function->initial_map(), isolate());
-  this->dependencies()->AssumeInitialMapCantChange(initial_map);
+  dependencies()->AssumeInitialMapCantChange(initial_map);
   Node* prototype =
       jsgraph()->Constant(handle(initial_map->prototype(), isolate()));
 
diff --git a/src/compiler/js-typed-lowering.h b/src/compiler/js-typed-lowering.h
index 1517871..8733e6c 100644
--- a/src/compiler/js-typed-lowering.h
+++ b/src/compiler/js-typed-lowering.h
@@ -59,6 +59,7 @@
   Reduction ReduceJSInstanceOf(Node* node);
   Reduction ReduceJSLoadContext(Node* node);
   Reduction ReduceJSStoreContext(Node* node);
+  Reduction ReduceJSEqualTypeOf(Node* node, bool invert);
   Reduction ReduceJSEqual(Node* node, bool invert);
   Reduction ReduceJSStrictEqual(Node* node, bool invert);
   Reduction ReduceJSToBoolean(Node* node);
diff --git a/src/compiler/linkage.cc b/src/compiler/linkage.cc
index 105bd35..5e217b0 100644
--- a/src/compiler/linkage.cc
+++ b/src/compiler/linkage.cc
@@ -88,7 +88,7 @@
 
 bool CallDescriptor::CanTailCall(const Node* node,
                                  int* stack_param_delta) const {
-  CallDescriptor const* other = OpParameter<CallDescriptor const*>(node);
+  CallDescriptor const* other = CallDescriptorOf(node->op());
   size_t current_input = 0;
   size_t other_input = 0;
   *stack_param_delta = 0;
@@ -112,19 +112,12 @@
     ++current_input;
     ++other_input;
   }
-  return HasSameReturnLocationsAs(OpParameter<CallDescriptor const*>(node));
+  return HasSameReturnLocationsAs(CallDescriptorOf(node->op()));
 }
 
 
 CallDescriptor* Linkage::ComputeIncoming(Zone* zone, CompilationInfo* info) {
   DCHECK(!info->IsStub());
-  if (info->has_literal()) {
-    // If we already have the function literal, use the number of parameters
-    // plus the receiver.
-    return GetJSCallDescriptor(zone, info->is_osr(),
-                               1 + info->literal()->parameter_count(),
-                               CallDescriptor::kNoFlags);
-  }
   if (!info->closure().is_null()) {
     // If we are compiling a JS function, use a JS call descriptor,
     // plus the receiver.
@@ -143,14 +136,19 @@
   // not to call into arbitrary JavaScript, not to throw, and not to deoptimize
   // are blacklisted here and can be called without a FrameState.
   switch (function) {
+    case Runtime::kAbort:
     case Runtime::kAllocateInTargetSpace:
     case Runtime::kCreateIterResultObject:
     case Runtime::kDefineDataPropertyInLiteral:
     case Runtime::kDefineGetterPropertyUnchecked:  // TODO(jarin): Is it safe?
     case Runtime::kDefineSetterPropertyUnchecked:  // TODO(jarin): Is it safe?
-    case Runtime::kFinalizeClassDefinition:        // TODO(conradw): Is it safe?
     case Runtime::kForInDone:
     case Runtime::kForInStep:
+    case Runtime::kGeneratorSetContext:
+    case Runtime::kGeneratorGetContinuation:
+    case Runtime::kGeneratorSetContinuation:
+    case Runtime::kGeneratorLoadRegister:
+    case Runtime::kGeneratorStoreRegister:
     case Runtime::kGetSuperConstructor:
     case Runtime::kIsFunction:
     case Runtime::kNewClosure:
@@ -166,6 +164,7 @@
     case Runtime::kStringLessThanOrEqual:
     case Runtime::kStringGreaterThan:
     case Runtime::kStringGreaterThanOrEqual:
+    case Runtime::kToFastProperties:  // TODO(conradw): Is it safe?
     case Runtime::kTraceEnter:
     case Runtime::kTraceExit:
       return 0;
@@ -411,6 +410,78 @@
       descriptor.DebugName(isolate));
 }
 
+// static
+CallDescriptor* Linkage::GetAllocateCallDescriptor(Zone* zone) {
+  LocationSignature::Builder locations(zone, 1, 1);
+  MachineSignature::Builder types(zone, 1, 1);
+
+  locations.AddParam(regloc(kAllocateSizeRegister));
+  types.AddParam(MachineType::Int32());
+
+  locations.AddReturn(regloc(kReturnRegister0));
+  types.AddReturn(MachineType::AnyTagged());
+
+  // The target for allocate calls is a code object.
+  MachineType target_type = MachineType::AnyTagged();
+  LinkageLocation target_loc = LinkageLocation::ForAnyRegister();
+  return new (zone) CallDescriptor(     // --
+      CallDescriptor::kCallCodeObject,  // kind
+      target_type,                      // target MachineType
+      target_loc,                       // target location
+      types.Build(),                    // machine_sig
+      locations.Build(),                // location_sig
+      0,                                // stack_parameter_count
+      Operator::kNoThrow,               // properties
+      kNoCalleeSaved,                   // callee-saved registers
+      kNoCalleeSaved,                   // callee-saved fp
+      CallDescriptor::kCanUseRoots,     // flags
+      "Allocate");
+}
+
+// static
+CallDescriptor* Linkage::GetBytecodeDispatchCallDescriptor(
+    Isolate* isolate, Zone* zone, const CallInterfaceDescriptor& descriptor,
+    int stack_parameter_count) {
+  const int register_parameter_count = descriptor.GetRegisterParameterCount();
+  const int parameter_count = register_parameter_count + stack_parameter_count;
+
+  LocationSignature::Builder locations(zone, 0, parameter_count);
+  MachineSignature::Builder types(zone, 0, parameter_count);
+
+  // Add parameters in registers and on the stack.
+  for (int i = 0; i < parameter_count; i++) {
+    if (i < register_parameter_count) {
+      // The first parameters go in registers.
+      Register reg = descriptor.GetRegisterParameter(i);
+      Representation rep =
+          RepresentationFromType(descriptor.GetParameterType(i));
+      locations.AddParam(regloc(reg));
+      types.AddParam(reptyp(rep));
+    } else {
+      // The rest of the parameters go on the stack.
+      int stack_slot = i - register_parameter_count - stack_parameter_count;
+      locations.AddParam(LinkageLocation::ForCallerFrameSlot(stack_slot));
+      types.AddParam(MachineType::AnyTagged());
+    }
+  }
+
+  // The target for interpreter dispatches is a code entry address.
+  MachineType target_type = MachineType::Pointer();
+  LinkageLocation target_loc = LinkageLocation::ForAnyRegister();
+  return new (zone) CallDescriptor(            // --
+      CallDescriptor::kCallAddress,            // kind
+      target_type,                             // target MachineType
+      target_loc,                              // target location
+      types.Build(),                           // machine_sig
+      locations.Build(),                       // location_sig
+      stack_parameter_count,                   // stack_parameter_count
+      Operator::kNoProperties,                 // properties
+      kNoCalleeSaved,                          // callee-saved registers
+      kNoCalleeSaved,                          // callee-saved fp
+      CallDescriptor::kCanUseRoots |           // flags
+          CallDescriptor::kSupportsTailCalls,  // flags
+      descriptor.DebugName(isolate));
+}
 
 LinkageLocation Linkage::GetOsrValueLocation(int index) const {
   CHECK(incoming_->IsJSFunctionCall());
diff --git a/src/compiler/linkage.h b/src/compiler/linkage.h
index a0434f8..958e8dc 100644
--- a/src/compiler/linkage.h
+++ b/src/compiler/linkage.h
@@ -152,20 +152,19 @@
   enum Flag {
     kNoFlags = 0u,
     kNeedsFrameState = 1u << 0,
-    kPatchableCallSite = 1u << 1,
-    kNeedsNopAfterCall = 1u << 2,
-    kHasExceptionHandler = 1u << 3,
-    kHasLocalCatchHandler = 1u << 4,
-    kSupportsTailCalls = 1u << 5,
-    kCanUseRoots = 1u << 6,
+    kHasExceptionHandler = 1u << 1,
+    kHasLocalCatchHandler = 1u << 2,
+    kSupportsTailCalls = 1u << 3,
+    kCanUseRoots = 1u << 4,
     // (arm64 only) native stack should be used for arguments.
-    kUseNativeStack = 1u << 7,
+    kUseNativeStack = 1u << 5,
     // (arm64 only) call instruction has to restore JSSP or CSP.
-    kRestoreJSSP = 1u << 8,
-    kRestoreCSP = 1u << 9,
+    kRestoreJSSP = 1u << 6,
+    kRestoreCSP = 1u << 7,
     // Causes the code generator to initialize the root register.
-    kInitializeRootRegister = 1u << 10,
-    kPatchableCallSiteWithNop = kPatchableCallSite | kNeedsNopAfterCall
+    kInitializeRootRegister = 1u << 8,
+    // Does not ever try to allocate space on our heap.
+    kNoAllocate = 1u << 9
   };
   typedef base::Flags<Flag> Flags;
 
@@ -304,10 +303,11 @@
 // representing the architecture-specific location. The following call node
 // layouts are supported (where {n} is the number of value inputs):
 //
-//                  #0          #1     #2     #3     [...]             #n
-// Call[CodeStub]   code,       arg 1, arg 2, arg 3, [...],            context
-// Call[JSFunction] function,   rcvr,  arg 1, arg 2, [...], new, #arg, context
-// Call[Runtime]    CEntryStub, arg 1, arg 2, arg 3, [...], fun, #arg, context
+//                        #0          #1     #2     [...]             #n
+// Call[CodeStub]         code,       arg 1, arg 2, [...],            context
+// Call[JSFunction]       function,   rcvr,  arg 1, [...], new, #arg, context
+// Call[Runtime]          CEntryStub, arg 1, arg 2, [...], fun, #arg, context
+// Call[BytecodeDispatch] address,    arg 1, arg 2, [...]
 class Linkage : public ZoneObject {
  public:
   explicit Linkage(CallDescriptor* incoming) : incoming_(incoming) {}
@@ -332,6 +332,11 @@
       MachineType return_type = MachineType::AnyTagged(),
       size_t return_count = 1);
 
+  static CallDescriptor* GetAllocateCallDescriptor(Zone* zone);
+  static CallDescriptor* GetBytecodeDispatchCallDescriptor(
+      Isolate* isolate, Zone* zone, const CallInterfaceDescriptor& descriptor,
+      int stack_parameter_count);
+
   // Creates a call descriptor for simplified C calls that is appropriate
   // for the host platform. This simplified calling convention only supports
   // integers and pointers of one word size each, i.e. no floating point,
diff --git a/src/compiler/load-elimination.cc b/src/compiler/load-elimination.cc
index e19368d..a451cfc 100644
--- a/src/compiler/load-elimination.cc
+++ b/src/compiler/load-elimination.cc
@@ -4,7 +4,6 @@
 
 #include "src/compiler/load-elimination.h"
 
-#include "src/compiler/common-operator.h"
 #include "src/compiler/graph.h"
 #include "src/compiler/node-properties.h"
 #include "src/compiler/simplified-operator.h"
@@ -34,8 +33,9 @@
        effect = NodeProperties::GetEffectInput(effect)) {
     switch (effect->opcode()) {
       case IrOpcode::kLoadField: {
+        FieldAccess const effect_access = FieldAccessOf(effect->op());
         if (object == NodeProperties::GetValueInput(effect, 0) &&
-            access == FieldAccessOf(effect->op())) {
+            access == effect_access && effect_access.type->Is(access.type)) {
           Node* const value = effect;
           ReplaceWithValue(node, value);
           return Replace(value);
@@ -56,8 +56,8 @@
               return Replace(value);
             } else {
               Node* renamed = graph()->NewNode(
-                  common()->Guard(Type::Intersect(stored_value_type, load_type,
-                                                  graph()->zone())),
+                  simplified()->TypeGuard(Type::Intersect(
+                      stored_value_type, load_type, graph()->zone())),
                   value, NodeProperties::GetControlInput(node));
               ReplaceWithValue(node, renamed);
               return Replace(renamed);
diff --git a/src/compiler/load-elimination.h b/src/compiler/load-elimination.h
index 92c6dd0..4a1323b 100644
--- a/src/compiler/load-elimination.h
+++ b/src/compiler/load-elimination.h
@@ -11,25 +11,26 @@
 namespace internal {
 namespace compiler {
 
-class CommonOperatorBuilder;
 class Graph;
+class SimplifiedOperatorBuilder;
 
 class LoadElimination final : public AdvancedReducer {
  public:
   explicit LoadElimination(Editor* editor, Graph* graph,
-                           CommonOperatorBuilder* common)
-      : AdvancedReducer(editor), graph_(graph), common_(common) {}
+                           SimplifiedOperatorBuilder* simplified)
+      : AdvancedReducer(editor), graph_(graph), simplified_(simplified) {}
   ~LoadElimination() final;
 
   Reduction Reduce(Node* node) final;
 
  private:
-  CommonOperatorBuilder* common() const { return common_; }
-  Graph* graph() { return graph_; }
+  SimplifiedOperatorBuilder* simplified() const { return simplified_; }
+  Graph* graph() const { return graph_; }
 
   Reduction ReduceLoadField(Node* node);
-  Graph* graph_;
-  CommonOperatorBuilder* common_;
+
+  Graph* const graph_;
+  SimplifiedOperatorBuilder* const simplified_;
 };
 
 }  // namespace compiler
diff --git a/src/compiler/machine-operator-reducer.cc b/src/compiler/machine-operator-reducer.cc
index 19ea062..4b50ffe 100644
--- a/src/compiler/machine-operator-reducer.cc
+++ b/src/compiler/machine-operator-reducer.cc
@@ -419,8 +419,12 @@
       if (m.HasValue()) return ReplaceInt64(static_cast<uint64_t>(m.Value()));
       break;
     }
-    case IrOpcode::kTruncateFloat64ToInt32:
-      return ReduceTruncateFloat64ToInt32(node);
+    case IrOpcode::kTruncateFloat64ToWord32: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceInt32(DoubleToInt32(m.Value()));
+      if (m.IsChangeInt32ToFloat64()) return Replace(m.node()->InputAt(0));
+      return NoChange();
+    }
     case IrOpcode::kTruncateInt64ToInt32: {
       Int64Matcher m(node->InputAt(0));
       if (m.HasValue()) return ReplaceInt32(static_cast<int32_t>(m.Value()));
@@ -433,11 +437,18 @@
       if (m.IsChangeFloat32ToFloat64()) return Replace(m.node()->InputAt(0));
       break;
     }
+    case IrOpcode::kRoundFloat64ToInt32: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceInt32(static_cast<int32_t>(m.Value()));
+      if (m.IsChangeInt32ToFloat64()) return Replace(m.node()->InputAt(0));
+      break;
+    }
     case IrOpcode::kFloat64InsertLowWord32:
       return ReduceFloat64InsertLowWord32(node);
     case IrOpcode::kFloat64InsertHighWord32:
       return ReduceFloat64InsertHighWord32(node);
     case IrOpcode::kStore:
+    case IrOpcode::kCheckedStore:
       return ReduceStore(node);
     case IrOpcode::kFloat64Equal:
     case IrOpcode::kFloat64LessThan:
@@ -645,41 +656,20 @@
 }
 
 
-Reduction MachineOperatorReducer::ReduceTruncateFloat64ToInt32(Node* node) {
-  Float64Matcher m(node->InputAt(0));
-  if (m.HasValue()) return ReplaceInt32(DoubleToInt32(m.Value()));
-  if (m.IsChangeInt32ToFloat64()) return Replace(m.node()->InputAt(0));
-  if (m.IsPhi()) {
-    Node* const phi = m.node();
-    DCHECK_EQ(MachineRepresentation::kFloat64, PhiRepresentationOf(phi->op()));
-    if (phi->OwnedBy(node)) {
-      // TruncateFloat64ToInt32[mode](Phi[Float64](x1,...,xn))
-      //   => Phi[Int32](TruncateFloat64ToInt32[mode](x1),
-      //                 ...,
-      //                 TruncateFloat64ToInt32[mode](xn))
-      const int value_input_count = phi->InputCount() - 1;
-      for (int i = 0; i < value_input_count; ++i) {
-        Node* input = graph()->NewNode(node->op(), phi->InputAt(i));
-        // TODO(bmeurer): Reschedule input for reduction once we have Revisit()
-        // instead of recursing into ReduceTruncateFloat64ToInt32() here.
-        Reduction reduction = ReduceTruncateFloat64ToInt32(input);
-        if (reduction.Changed()) input = reduction.replacement();
-        phi->ReplaceInput(i, input);
-      }
-      NodeProperties::ChangeOp(
-          phi,
-          common()->Phi(MachineRepresentation::kWord32, value_input_count));
-      return Replace(phi);
-    }
-  }
-  return NoChange();
-}
-
-
 Reduction MachineOperatorReducer::ReduceStore(Node* node) {
-  MachineRepresentation const rep =
-      StoreRepresentationOf(node->op()).representation();
-  Node* const value = node->InputAt(2);
+  NodeMatcher nm(node);
+  MachineRepresentation rep;
+  int value_input;
+  if (nm.IsCheckedStore()) {
+    rep = CheckedStoreRepresentationOf(node->op());
+    value_input = 3;
+  } else {
+    rep = StoreRepresentationOf(node->op()).representation();
+    value_input = 2;
+  }
+
+  Node* const value = node->InputAt(value_input);
+
   switch (value->opcode()) {
     case IrOpcode::kWord32And: {
       Uint32BinopMatcher m(value);
@@ -687,7 +677,7 @@
                                     (m.right().Value() & 0xff) == 0xff) ||
                                    (rep == MachineRepresentation::kWord16 &&
                                     (m.right().Value() & 0xffff) == 0xffff))) {
-        node->ReplaceInput(2, m.left().node());
+        node->ReplaceInput(value_input, m.left().node());
         return Changed(node);
       }
       break;
@@ -700,7 +690,7 @@
                                       m.right().IsInRange(1, 16)))) {
         Int32BinopMatcher mleft(m.left().node());
         if (mleft.right().Is(m.right().Value())) {
-          node->ReplaceInput(2, mleft.left().node());
+          node->ReplaceInput(value_input, mleft.left().node());
           return Changed(node);
         }
       }
diff --git a/src/compiler/machine-operator-reducer.h b/src/compiler/machine-operator-reducer.h
index 7f8ff1a..cddf13d 100644
--- a/src/compiler/machine-operator-reducer.h
+++ b/src/compiler/machine-operator-reducer.h
@@ -70,7 +70,6 @@
   Reduction ReduceUint32Div(Node* node);
   Reduction ReduceInt32Mod(Node* node);
   Reduction ReduceUint32Mod(Node* node);
-  Reduction ReduceTruncateFloat64ToInt32(Node* node);
   Reduction ReduceStore(Node* node);
   Reduction ReduceProjection(size_t index, Node* node);
   Reduction ReduceWord32Shifts(Node* node);
diff --git a/src/compiler/machine-operator.cc b/src/compiler/machine-operator.cc
index 6a506d2..0d229c7 100644
--- a/src/compiler/machine-operator.cc
+++ b/src/compiler/machine-operator.cc
@@ -12,40 +12,6 @@
 namespace internal {
 namespace compiler {
 
-std::ostream& operator<<(std::ostream& os, TruncationMode mode) {
-  switch (mode) {
-    case TruncationMode::kJavaScript:
-      return os << "JavaScript";
-    case TruncationMode::kRoundToZero:
-      return os << "RoundToZero";
-  }
-  UNREACHABLE();
-  return os;
-}
-
-
-TruncationMode TruncationModeOf(Operator const* op) {
-  DCHECK_EQ(IrOpcode::kTruncateFloat64ToInt32, op->opcode());
-  return OpParameter<TruncationMode>(op);
-}
-
-
-std::ostream& operator<<(std::ostream& os, WriteBarrierKind kind) {
-  switch (kind) {
-    case kNoWriteBarrier:
-      return os << "NoWriteBarrier";
-    case kMapWriteBarrier:
-      return os << "MapWriteBarrier";
-    case kPointerWriteBarrier:
-      return os << "PointerWriteBarrier";
-    case kFullWriteBarrier:
-      return os << "FullWriteBarrier";
-  }
-  UNREACHABLE();
-  return os;
-}
-
-
 bool operator==(StoreRepresentation lhs, StoreRepresentation rhs) {
   return lhs.representation() == rhs.representation() &&
          lhs.write_barrier_kind() == rhs.write_barrier_kind();
@@ -69,7 +35,8 @@
 
 
 LoadRepresentation LoadRepresentationOf(Operator const* op) {
-  DCHECK_EQ(IrOpcode::kLoad, op->opcode());
+  DCHECK(IrOpcode::kLoad == op->opcode() ||
+         IrOpcode::kAtomicLoad == op->opcode());
   return OpParameter<LoadRepresentation>(op);
 }
 
@@ -96,6 +63,11 @@
   return OpParameter<MachineRepresentation>(op);
 }
 
+MachineRepresentation AtomicStoreRepresentationOf(Operator const* op) {
+  DCHECK_EQ(IrOpcode::kAtomicStore, op->opcode());
+  return OpParameter<MachineRepresentation>(op);
+}
+
 #define PURE_OP_LIST(V)                                                       \
   V(Word32And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)      \
   V(Word32Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)       \
@@ -145,6 +117,8 @@
   V(Uint64Mod, Operator::kNoProperties, 2, 1, 1)                              \
   V(Uint64LessThan, Operator::kNoProperties, 2, 0, 1)                         \
   V(Uint64LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)                  \
+  V(BitcastWordToTagged, Operator::kNoProperties, 1, 0, 1)                    \
+  V(TruncateFloat64ToWord32, Operator::kNoProperties, 1, 0, 1)                \
   V(ChangeFloat32ToFloat64, Operator::kNoProperties, 1, 0, 1)                 \
   V(ChangeFloat64ToInt32, Operator::kNoProperties, 1, 0, 1)                   \
   V(ChangeFloat64ToUint32, Operator::kNoProperties, 1, 0, 1)                  \
@@ -156,6 +130,7 @@
   V(TryTruncateFloat32ToUint64, Operator::kNoProperties, 1, 0, 2)             \
   V(TryTruncateFloat64ToUint64, Operator::kNoProperties, 1, 0, 2)             \
   V(ChangeInt32ToFloat64, Operator::kNoProperties, 1, 0, 1)                   \
+  V(RoundFloat64ToInt32, Operator::kNoProperties, 1, 0, 1)                    \
   V(RoundInt32ToFloat32, Operator::kNoProperties, 1, 0, 1)                    \
   V(RoundInt64ToFloat32, Operator::kNoProperties, 1, 0, 1)                    \
   V(RoundInt64ToFloat64, Operator::kNoProperties, 1, 0, 1)                    \
@@ -174,12 +149,14 @@
   V(Float32Abs, Operator::kNoProperties, 1, 0, 1)                             \
   V(Float32Add, Operator::kCommutative, 2, 0, 1)                              \
   V(Float32Sub, Operator::kNoProperties, 2, 0, 1)                             \
+  V(Float32SubPreserveNan, Operator::kNoProperties, 2, 0, 1)                  \
   V(Float32Mul, Operator::kCommutative, 2, 0, 1)                              \
   V(Float32Div, Operator::kNoProperties, 2, 0, 1)                             \
   V(Float32Sqrt, Operator::kNoProperties, 1, 0, 1)                            \
   V(Float64Abs, Operator::kNoProperties, 1, 0, 1)                             \
   V(Float64Add, Operator::kCommutative, 2, 0, 1)                              \
   V(Float64Sub, Operator::kNoProperties, 2, 0, 1)                             \
+  V(Float64SubPreserveNan, Operator::kNoProperties, 2, 0, 1)                  \
   V(Float64Mul, Operator::kCommutative, 2, 0, 1)                              \
   V(Float64Div, Operator::kNoProperties, 2, 0, 1)                             \
   V(Float64Mod, Operator::kNoProperties, 2, 0, 1)                             \
@@ -202,7 +179,179 @@
   V(Int32PairMul, Operator::kNoProperties, 4, 0, 2)                           \
   V(Word32PairShl, Operator::kNoProperties, 3, 0, 2)                          \
   V(Word32PairShr, Operator::kNoProperties, 3, 0, 2)                          \
-  V(Word32PairSar, Operator::kNoProperties, 3, 0, 2)
+  V(Word32PairSar, Operator::kNoProperties, 3, 0, 2)                          \
+  V(CreateFloat32x4, Operator::kNoProperties, 4, 0, 1)                        \
+  V(Float32x4ExtractLane, Operator::kNoProperties, 2, 0, 1)                   \
+  V(Float32x4ReplaceLane, Operator::kNoProperties, 3, 0, 1)                   \
+  V(Float32x4Abs, Operator::kNoProperties, 1, 0, 1)                           \
+  V(Float32x4Neg, Operator::kNoProperties, 1, 0, 1)                           \
+  V(Float32x4Sqrt, Operator::kNoProperties, 1, 0, 1)                          \
+  V(Float32x4RecipApprox, Operator::kNoProperties, 1, 0, 1)                   \
+  V(Float32x4RecipSqrtApprox, Operator::kNoProperties, 1, 0, 1)               \
+  V(Float32x4Add, Operator::kCommutative, 2, 0, 1)                            \
+  V(Float32x4Sub, Operator::kNoProperties, 2, 0, 1)                           \
+  V(Float32x4Mul, Operator::kCommutative, 2, 0, 1)                            \
+  V(Float32x4Div, Operator::kNoProperties, 2, 0, 1)                           \
+  V(Float32x4Min, Operator::kCommutative, 2, 0, 1)                            \
+  V(Float32x4Max, Operator::kCommutative, 2, 0, 1)                            \
+  V(Float32x4MinNum, Operator::kCommutative, 2, 0, 1)                         \
+  V(Float32x4MaxNum, Operator::kCommutative, 2, 0, 1)                         \
+  V(Float32x4Equal, Operator::kCommutative, 2, 0, 1)                          \
+  V(Float32x4NotEqual, Operator::kCommutative, 2, 0, 1)                       \
+  V(Float32x4LessThan, Operator::kNoProperties, 2, 0, 1)                      \
+  V(Float32x4LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)               \
+  V(Float32x4GreaterThan, Operator::kNoProperties, 2, 0, 1)                   \
+  V(Float32x4GreaterThanOrEqual, Operator::kNoProperties, 2, 0, 1)            \
+  V(Float32x4Select, Operator::kNoProperties, 3, 0, 1)                        \
+  V(Float32x4Swizzle, Operator::kNoProperties, 5, 0, 1)                       \
+  V(Float32x4Shuffle, Operator::kNoProperties, 6, 0, 1)                       \
+  V(Float32x4FromInt32x4, Operator::kNoProperties, 1, 0, 1)                   \
+  V(Float32x4FromUint32x4, Operator::kNoProperties, 1, 0, 1)                  \
+  V(CreateInt32x4, Operator::kNoProperties, 4, 0, 1)                          \
+  V(Int32x4ExtractLane, Operator::kNoProperties, 2, 0, 1)                     \
+  V(Int32x4ReplaceLane, Operator::kNoProperties, 3, 0, 1)                     \
+  V(Int32x4Neg, Operator::kNoProperties, 1, 0, 1)                             \
+  V(Int32x4Add, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int32x4Sub, Operator::kNoProperties, 2, 0, 1)                             \
+  V(Int32x4Mul, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int32x4Min, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int32x4Max, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int32x4ShiftLeftByScalar, Operator::kNoProperties, 2, 0, 1)               \
+  V(Int32x4ShiftRightByScalar, Operator::kNoProperties, 2, 0, 1)              \
+  V(Int32x4Equal, Operator::kCommutative, 2, 0, 1)                            \
+  V(Int32x4NotEqual, Operator::kCommutative, 2, 0, 1)                         \
+  V(Int32x4LessThan, Operator::kNoProperties, 2, 0, 1)                        \
+  V(Int32x4LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)                 \
+  V(Int32x4GreaterThan, Operator::kNoProperties, 2, 0, 1)                     \
+  V(Int32x4GreaterThanOrEqual, Operator::kNoProperties, 2, 0, 1)              \
+  V(Int32x4Select, Operator::kNoProperties, 3, 0, 1)                          \
+  V(Int32x4Swizzle, Operator::kNoProperties, 5, 0, 1)                         \
+  V(Int32x4Shuffle, Operator::kNoProperties, 6, 0, 1)                         \
+  V(Int32x4FromFloat32x4, Operator::kNoProperties, 1, 0, 1)                   \
+  V(Uint32x4Min, Operator::kCommutative, 2, 0, 1)                             \
+  V(Uint32x4Max, Operator::kCommutative, 2, 0, 1)                             \
+  V(Uint32x4ShiftLeftByScalar, Operator::kNoProperties, 2, 0, 1)              \
+  V(Uint32x4ShiftRightByScalar, Operator::kNoProperties, 2, 0, 1)             \
+  V(Uint32x4LessThan, Operator::kNoProperties, 2, 0, 1)                       \
+  V(Uint32x4LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)                \
+  V(Uint32x4GreaterThan, Operator::kNoProperties, 2, 0, 1)                    \
+  V(Uint32x4GreaterThanOrEqual, Operator::kNoProperties, 2, 0, 1)             \
+  V(Uint32x4FromFloat32x4, Operator::kNoProperties, 1, 0, 1)                  \
+  V(CreateBool32x4, Operator::kNoProperties, 4, 0, 1)                         \
+  V(Bool32x4ExtractLane, Operator::kNoProperties, 2, 0, 1)                    \
+  V(Bool32x4ReplaceLane, Operator::kNoProperties, 3, 0, 1)                    \
+  V(Bool32x4And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)    \
+  V(Bool32x4Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)     \
+  V(Bool32x4Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)    \
+  V(Bool32x4Not, Operator::kNoProperties, 1, 0, 1)                            \
+  V(Bool32x4AnyTrue, Operator::kNoProperties, 1, 0, 1)                        \
+  V(Bool32x4AllTrue, Operator::kNoProperties, 1, 0, 1)                        \
+  V(Bool32x4Swizzle, Operator::kNoProperties, 5, 0, 1)                        \
+  V(Bool32x4Shuffle, Operator::kNoProperties, 6, 0, 1)                        \
+  V(Bool32x4Equal, Operator::kCommutative, 2, 0, 1)                           \
+  V(Bool32x4NotEqual, Operator::kCommutative, 2, 0, 1)                        \
+  V(CreateInt16x8, Operator::kNoProperties, 8, 0, 1)                          \
+  V(Int16x8ExtractLane, Operator::kNoProperties, 2, 0, 1)                     \
+  V(Int16x8ReplaceLane, Operator::kNoProperties, 3, 0, 1)                     \
+  V(Int16x8Neg, Operator::kNoProperties, 1, 0, 1)                             \
+  V(Int16x8Add, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int16x8AddSaturate, Operator::kCommutative, 2, 0, 1)                      \
+  V(Int16x8Sub, Operator::kNoProperties, 2, 0, 1)                             \
+  V(Int16x8SubSaturate, Operator::kNoProperties, 2, 0, 1)                     \
+  V(Int16x8Mul, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int16x8Min, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int16x8Max, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int16x8ShiftLeftByScalar, Operator::kNoProperties, 2, 0, 1)               \
+  V(Int16x8ShiftRightByScalar, Operator::kNoProperties, 2, 0, 1)              \
+  V(Int16x8Equal, Operator::kCommutative, 2, 0, 1)                            \
+  V(Int16x8NotEqual, Operator::kCommutative, 2, 0, 1)                         \
+  V(Int16x8LessThan, Operator::kNoProperties, 2, 0, 1)                        \
+  V(Int16x8LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)                 \
+  V(Int16x8GreaterThan, Operator::kNoProperties, 2, 0, 1)                     \
+  V(Int16x8GreaterThanOrEqual, Operator::kNoProperties, 2, 0, 1)              \
+  V(Int16x8Select, Operator::kNoProperties, 3, 0, 1)                          \
+  V(Int16x8Swizzle, Operator::kNoProperties, 9, 0, 1)                         \
+  V(Int16x8Shuffle, Operator::kNoProperties, 10, 0, 1)                        \
+  V(Uint16x8AddSaturate, Operator::kCommutative, 2, 0, 1)                     \
+  V(Uint16x8SubSaturate, Operator::kNoProperties, 2, 0, 1)                    \
+  V(Uint16x8Min, Operator::kCommutative, 2, 0, 1)                             \
+  V(Uint16x8Max, Operator::kCommutative, 2, 0, 1)                             \
+  V(Uint16x8ShiftLeftByScalar, Operator::kNoProperties, 2, 0, 1)              \
+  V(Uint16x8ShiftRightByScalar, Operator::kNoProperties, 2, 0, 1)             \
+  V(Uint16x8LessThan, Operator::kNoProperties, 2, 0, 1)                       \
+  V(Uint16x8LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)                \
+  V(Uint16x8GreaterThan, Operator::kNoProperties, 2, 0, 1)                    \
+  V(Uint16x8GreaterThanOrEqual, Operator::kNoProperties, 2, 0, 1)             \
+  V(CreateBool16x8, Operator::kNoProperties, 8, 0, 1)                         \
+  V(Bool16x8ExtractLane, Operator::kNoProperties, 2, 0, 1)                    \
+  V(Bool16x8ReplaceLane, Operator::kNoProperties, 3, 0, 1)                    \
+  V(Bool16x8And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)    \
+  V(Bool16x8Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)     \
+  V(Bool16x8Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)    \
+  V(Bool16x8Not, Operator::kNoProperties, 1, 0, 1)                            \
+  V(Bool16x8AnyTrue, Operator::kNoProperties, 1, 0, 1)                        \
+  V(Bool16x8AllTrue, Operator::kNoProperties, 1, 0, 1)                        \
+  V(Bool16x8Swizzle, Operator::kNoProperties, 9, 0, 1)                        \
+  V(Bool16x8Shuffle, Operator::kNoProperties, 10, 0, 1)                       \
+  V(Bool16x8Equal, Operator::kCommutative, 2, 0, 1)                           \
+  V(Bool16x8NotEqual, Operator::kCommutative, 2, 0, 1)                        \
+  V(CreateInt8x16, Operator::kNoProperties, 16, 0, 1)                         \
+  V(Int8x16ExtractLane, Operator::kNoProperties, 2, 0, 1)                     \
+  V(Int8x16ReplaceLane, Operator::kNoProperties, 3, 0, 1)                     \
+  V(Int8x16Neg, Operator::kNoProperties, 1, 0, 1)                             \
+  V(Int8x16Add, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int8x16AddSaturate, Operator::kCommutative, 2, 0, 1)                      \
+  V(Int8x16Sub, Operator::kNoProperties, 2, 0, 1)                             \
+  V(Int8x16SubSaturate, Operator::kNoProperties, 2, 0, 1)                     \
+  V(Int8x16Mul, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int8x16Min, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int8x16Max, Operator::kCommutative, 2, 0, 1)                              \
+  V(Int8x16ShiftLeftByScalar, Operator::kNoProperties, 2, 0, 1)               \
+  V(Int8x16ShiftRightByScalar, Operator::kNoProperties, 2, 0, 1)              \
+  V(Int8x16Equal, Operator::kCommutative, 2, 0, 1)                            \
+  V(Int8x16NotEqual, Operator::kCommutative, 2, 0, 1)                         \
+  V(Int8x16LessThan, Operator::kNoProperties, 2, 0, 1)                        \
+  V(Int8x16LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)                 \
+  V(Int8x16GreaterThan, Operator::kNoProperties, 2, 0, 1)                     \
+  V(Int8x16GreaterThanOrEqual, Operator::kNoProperties, 2, 0, 1)              \
+  V(Int8x16Select, Operator::kNoProperties, 3, 0, 1)                          \
+  V(Int8x16Swizzle, Operator::kNoProperties, 17, 0, 1)                        \
+  V(Int8x16Shuffle, Operator::kNoProperties, 18, 0, 1)                        \
+  V(Uint8x16AddSaturate, Operator::kCommutative, 2, 0, 1)                     \
+  V(Uint8x16SubSaturate, Operator::kNoProperties, 2, 0, 1)                    \
+  V(Uint8x16Min, Operator::kCommutative, 2, 0, 1)                             \
+  V(Uint8x16Max, Operator::kCommutative, 2, 0, 1)                             \
+  V(Uint8x16ShiftLeftByScalar, Operator::kNoProperties, 2, 0, 1)              \
+  V(Uint8x16ShiftRightByScalar, Operator::kNoProperties, 2, 0, 1)             \
+  V(Uint8x16LessThan, Operator::kNoProperties, 2, 0, 1)                       \
+  V(Uint8x16LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)                \
+  V(Uint8x16GreaterThan, Operator::kNoProperties, 2, 0, 1)                    \
+  V(Uint8x16GreaterThanOrEqual, Operator::kNoProperties, 2, 0, 1)             \
+  V(CreateBool8x16, Operator::kNoProperties, 16, 0, 1)                        \
+  V(Bool8x16ExtractLane, Operator::kNoProperties, 2, 0, 1)                    \
+  V(Bool8x16ReplaceLane, Operator::kNoProperties, 3, 0, 1)                    \
+  V(Bool8x16And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)    \
+  V(Bool8x16Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)     \
+  V(Bool8x16Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)    \
+  V(Bool8x16Not, Operator::kNoProperties, 1, 0, 1)                            \
+  V(Bool8x16AnyTrue, Operator::kNoProperties, 1, 0, 1)                        \
+  V(Bool8x16AllTrue, Operator::kNoProperties, 1, 0, 1)                        \
+  V(Bool8x16Swizzle, Operator::kNoProperties, 17, 0, 1)                       \
+  V(Bool8x16Shuffle, Operator::kNoProperties, 18, 0, 1)                       \
+  V(Bool8x16Equal, Operator::kCommutative, 2, 0, 1)                           \
+  V(Bool8x16NotEqual, Operator::kCommutative, 2, 0, 1)                        \
+  V(Simd128Load, Operator::kNoProperties, 2, 0, 1)                            \
+  V(Simd128Load1, Operator::kNoProperties, 2, 0, 1)                           \
+  V(Simd128Load2, Operator::kNoProperties, 2, 0, 1)                           \
+  V(Simd128Load3, Operator::kNoProperties, 2, 0, 1)                           \
+  V(Simd128Store, Operator::kNoProperties, 3, 0, 1)                           \
+  V(Simd128Store1, Operator::kNoProperties, 3, 0, 1)                          \
+  V(Simd128Store2, Operator::kNoProperties, 3, 0, 1)                          \
+  V(Simd128Store3, Operator::kNoProperties, 3, 0, 1)                          \
+  V(Simd128And, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)     \
+  V(Simd128Or, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)      \
+  V(Simd128Xor, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)     \
+  V(Simd128Not, Operator::kNoProperties, 1, 0, 1)
 
 #define PURE_OPTIONAL_OP_LIST(V)                            \
   V(Word32Ctz, Operator::kNoProperties, 1, 0, 1)            \
@@ -250,6 +399,19 @@
   V(kWord64)                           \
   V(kTagged)
 
+#define ATOMIC_TYPE_LIST(V) \
+  V(Int8)                   \
+  V(Uint8)                  \
+  V(Int16)                  \
+  V(Uint16)                 \
+  V(Int32)                  \
+  V(Uint32)
+
+#define ATOMIC_REPRESENTATION_LIST(V) \
+  V(kWord8)                           \
+  V(kWord16)                          \
+  V(kWord32)
+
 struct MachineOperatorGlobalCache {
 #define PURE(Name, properties, value_input_count, control_input_count,         \
              output_count)                                                     \
@@ -264,19 +426,6 @@
   PURE_OPTIONAL_OP_LIST(PURE)
 #undef PURE
 
-  template <TruncationMode kMode>
-  struct TruncateFloat64ToInt32Operator final
-      : public Operator1<TruncationMode> {
-    TruncateFloat64ToInt32Operator()
-        : Operator1<TruncationMode>(IrOpcode::kTruncateFloat64ToInt32,
-                                    Operator::kPure, "TruncateFloat64ToInt32",
-                                    1, 0, 0, 1, 0, 0, kMode) {}
-  };
-  TruncateFloat64ToInt32Operator<TruncationMode::kJavaScript>
-      kTruncateFloat64ToInt32JavaScript;
-  TruncateFloat64ToInt32Operator<TruncationMode::kRoundToZero>
-      kTruncateFloat64ToInt32RoundToZero;
-
 #define LOAD(Type)                                                             \
   struct Load##Type##Operator final : public Operator1<LoadRepresentation> {   \
     Load##Type##Operator()                                                     \
@@ -353,6 +502,30 @@
   CheckedStore##Type##Operator kCheckedStore##Type;
   MACHINE_REPRESENTATION_LIST(STORE)
 #undef STORE
+
+#define ATOMIC_LOAD(Type)                                                     \
+  struct AtomicLoad##Type##Operator final                                     \
+      : public Operator1<LoadRepresentation> {                                \
+    AtomicLoad##Type##Operator()                                              \
+        : Operator1<LoadRepresentation>(                                      \
+              IrOpcode::kAtomicLoad, Operator::kNoThrow | Operator::kNoWrite, \
+              "AtomicLoad", 2, 1, 1, 1, 1, 0, MachineType::Type()) {}         \
+  };                                                                          \
+  AtomicLoad##Type##Operator kAtomicLoad##Type;
+  ATOMIC_TYPE_LIST(ATOMIC_LOAD)
+#undef ATOMIC_LOAD
+
+#define ATOMIC_STORE(Type)                                                     \
+  struct AtomicStore##Type##Operator                                           \
+      : public Operator1<MachineRepresentation> {                              \
+    AtomicStore##Type##Operator()                                              \
+        : Operator1<MachineRepresentation>(                                    \
+              IrOpcode::kAtomicStore, Operator::kNoRead | Operator::kNoThrow,  \
+              "AtomicStore", 3, 1, 1, 0, 1, 0, MachineRepresentation::Type) {} \
+  };                                                                           \
+  AtomicStore##Type##Operator kAtomicStore##Type;
+  ATOMIC_REPRESENTATION_LIST(ATOMIC_STORE)
+#undef STORE
 };
 
 
@@ -384,19 +557,6 @@
 #undef PURE
 
 
-const Operator* MachineOperatorBuilder::TruncateFloat64ToInt32(
-    TruncationMode mode) {
-  switch (mode) {
-    case TruncationMode::kJavaScript:
-      return &cache_.kTruncateFloat64ToInt32JavaScript;
-    case TruncationMode::kRoundToZero:
-      return &cache_.kTruncateFloat64ToInt32RoundToZero;
-  }
-  UNREACHABLE();
-  return nullptr;
-}
-
-
 const Operator* MachineOperatorBuilder::Load(LoadRepresentation rep) {
 #define LOAD(Type)                  \
   if (rep == MachineType::Type()) { \
@@ -487,6 +647,29 @@
 const Operator* MachineOperatorBuilder::Word64CtzPlaceholder() {
   return &cache_.kWord64Ctz;
 }
+
+const Operator* MachineOperatorBuilder::AtomicLoad(LoadRepresentation rep) {
+#define LOAD(Type)                    \
+  if (rep == MachineType::Type()) {   \
+    return &cache_.kAtomicLoad##Type; \
+  }
+  ATOMIC_TYPE_LIST(LOAD)
+#undef LOAD
+  UNREACHABLE();
+  return nullptr;
+}
+
+const Operator* MachineOperatorBuilder::AtomicStore(MachineRepresentation rep) {
+#define STORE(kRep)                         \
+  if (rep == MachineRepresentation::kRep) { \
+    return &cache_.kAtomicStore##kRep;      \
+  }
+  ATOMIC_REPRESENTATION_LIST(STORE)
+#undef STORE
+  UNREACHABLE();
+  return nullptr;
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/machine-operator.h b/src/compiler/machine-operator.h
index 68e393a..814f6c9 100644
--- a/src/compiler/machine-operator.h
+++ b/src/compiler/machine-operator.h
@@ -33,32 +33,6 @@
 };
 
 
-// Supported float64 to int32 truncation modes.
-enum class TruncationMode : uint8_t {
-  kJavaScript,  // ES6 section 7.1.5
-  kRoundToZero  // Round towards zero. Implementation defined for NaN and ovf.
-};
-
-V8_INLINE size_t hash_value(TruncationMode mode) {
-  return static_cast<uint8_t>(mode);
-}
-
-std::ostream& operator<<(std::ostream&, TruncationMode);
-
-TruncationMode TruncationModeOf(Operator const*);
-
-
-// Supported write barrier modes.
-enum WriteBarrierKind {
-  kNoWriteBarrier,
-  kMapWriteBarrier,
-  kPointerWriteBarrier,
-  kFullWriteBarrier
-};
-
-std::ostream& operator<<(std::ostream& os, WriteBarrierKind);
-
-
 // A Load needs a MachineType.
 typedef MachineType LoadRepresentation;
 
@@ -104,6 +78,8 @@
 
 MachineRepresentation StackSlotRepresentationOf(Operator const* op);
 
+MachineRepresentation AtomicStoreRepresentationOf(Operator const* op);
+
 // Interface for building machine-level operators. These operators are
 // machine-level but machine-independent and thus define a language suitable
 // for generating code to run on architectures such as ia32, x64, arm, etc.
@@ -220,6 +196,12 @@
   const Operator* Uint64LessThanOrEqual();
   const Operator* Uint64Mod();
 
+  // This operator reinterprets the bits of a word as tagged pointer.
+  const Operator* BitcastWordToTagged();
+
+  // JavaScript float64 to int32/uint32 truncation.
+  const Operator* TruncateFloat64ToWord32();
+
   // These operators change the representation of numbers while preserving the
   // value of the number. Narrowing operators assume the input is representable
   // in the target type and are *not* defined for other inputs.
@@ -243,8 +225,8 @@
   // These operators truncate or round numbers, both changing the representation
   // of the number and mapping multiple input values onto the same output value.
   const Operator* TruncateFloat64ToFloat32();
-  const Operator* TruncateFloat64ToInt32(TruncationMode);
   const Operator* TruncateInt64ToInt32();
+  const Operator* RoundFloat64ToInt32();
   const Operator* RoundInt32ToFloat32();
   const Operator* RoundInt64ToFloat32();
   const Operator* RoundInt64ToFloat64();
@@ -263,6 +245,7 @@
   // (single-precision).
   const Operator* Float32Add();
   const Operator* Float32Sub();
+  const Operator* Float32SubPreserveNan();
   const Operator* Float32Mul();
   const Operator* Float32Div();
   const Operator* Float32Sqrt();
@@ -271,6 +254,7 @@
   // (double-precision).
   const Operator* Float64Add();
   const Operator* Float64Sub();
+  const Operator* Float64SubPreserveNan();
   const Operator* Float64Mul();
   const Operator* Float64Div();
   const Operator* Float64Mod();
@@ -317,6 +301,190 @@
   const Operator* Float64InsertLowWord32();
   const Operator* Float64InsertHighWord32();
 
+  // SIMD operators.
+  const Operator* CreateFloat32x4();
+  const Operator* Float32x4ExtractLane();
+  const Operator* Float32x4ReplaceLane();
+  const Operator* Float32x4Abs();
+  const Operator* Float32x4Neg();
+  const Operator* Float32x4Sqrt();
+  const Operator* Float32x4RecipApprox();
+  const Operator* Float32x4RecipSqrtApprox();
+  const Operator* Float32x4Add();
+  const Operator* Float32x4Sub();
+  const Operator* Float32x4Mul();
+  const Operator* Float32x4Div();
+  const Operator* Float32x4Min();
+  const Operator* Float32x4Max();
+  const Operator* Float32x4MinNum();
+  const Operator* Float32x4MaxNum();
+  const Operator* Float32x4Equal();
+  const Operator* Float32x4NotEqual();
+  const Operator* Float32x4LessThan();
+  const Operator* Float32x4LessThanOrEqual();
+  const Operator* Float32x4GreaterThan();
+  const Operator* Float32x4GreaterThanOrEqual();
+  const Operator* Float32x4Select();
+  const Operator* Float32x4Swizzle();
+  const Operator* Float32x4Shuffle();
+  const Operator* Float32x4FromInt32x4();
+  const Operator* Float32x4FromUint32x4();
+
+  const Operator* CreateInt32x4();
+  const Operator* Int32x4ExtractLane();
+  const Operator* Int32x4ReplaceLane();
+  const Operator* Int32x4Neg();
+  const Operator* Int32x4Add();
+  const Operator* Int32x4Sub();
+  const Operator* Int32x4Mul();
+  const Operator* Int32x4Min();
+  const Operator* Int32x4Max();
+  const Operator* Int32x4ShiftLeftByScalar();
+  const Operator* Int32x4ShiftRightByScalar();
+  const Operator* Int32x4Equal();
+  const Operator* Int32x4NotEqual();
+  const Operator* Int32x4LessThan();
+  const Operator* Int32x4LessThanOrEqual();
+  const Operator* Int32x4GreaterThan();
+  const Operator* Int32x4GreaterThanOrEqual();
+  const Operator* Int32x4Select();
+  const Operator* Int32x4Swizzle();
+  const Operator* Int32x4Shuffle();
+  const Operator* Int32x4FromFloat32x4();
+
+  const Operator* Uint32x4Min();
+  const Operator* Uint32x4Max();
+  const Operator* Uint32x4ShiftLeftByScalar();
+  const Operator* Uint32x4ShiftRightByScalar();
+  const Operator* Uint32x4LessThan();
+  const Operator* Uint32x4LessThanOrEqual();
+  const Operator* Uint32x4GreaterThan();
+  const Operator* Uint32x4GreaterThanOrEqual();
+  const Operator* Uint32x4FromFloat32x4();
+
+  const Operator* CreateBool32x4();
+  const Operator* Bool32x4ExtractLane();
+  const Operator* Bool32x4ReplaceLane();
+  const Operator* Bool32x4And();
+  const Operator* Bool32x4Or();
+  const Operator* Bool32x4Xor();
+  const Operator* Bool32x4Not();
+  const Operator* Bool32x4AnyTrue();
+  const Operator* Bool32x4AllTrue();
+  const Operator* Bool32x4Swizzle();
+  const Operator* Bool32x4Shuffle();
+  const Operator* Bool32x4Equal();
+  const Operator* Bool32x4NotEqual();
+
+  const Operator* CreateInt16x8();
+  const Operator* Int16x8ExtractLane();
+  const Operator* Int16x8ReplaceLane();
+  const Operator* Int16x8Neg();
+  const Operator* Int16x8Add();
+  const Operator* Int16x8AddSaturate();
+  const Operator* Int16x8Sub();
+  const Operator* Int16x8SubSaturate();
+  const Operator* Int16x8Mul();
+  const Operator* Int16x8Min();
+  const Operator* Int16x8Max();
+  const Operator* Int16x8ShiftLeftByScalar();
+  const Operator* Int16x8ShiftRightByScalar();
+  const Operator* Int16x8Equal();
+  const Operator* Int16x8NotEqual();
+  const Operator* Int16x8LessThan();
+  const Operator* Int16x8LessThanOrEqual();
+  const Operator* Int16x8GreaterThan();
+  const Operator* Int16x8GreaterThanOrEqual();
+  const Operator* Int16x8Select();
+  const Operator* Int16x8Swizzle();
+  const Operator* Int16x8Shuffle();
+
+  const Operator* Uint16x8AddSaturate();
+  const Operator* Uint16x8SubSaturate();
+  const Operator* Uint16x8Min();
+  const Operator* Uint16x8Max();
+  const Operator* Uint16x8ShiftLeftByScalar();
+  const Operator* Uint16x8ShiftRightByScalar();
+  const Operator* Uint16x8LessThan();
+  const Operator* Uint16x8LessThanOrEqual();
+  const Operator* Uint16x8GreaterThan();
+  const Operator* Uint16x8GreaterThanOrEqual();
+
+  const Operator* CreateBool16x8();
+  const Operator* Bool16x8ExtractLane();
+  const Operator* Bool16x8ReplaceLane();
+  const Operator* Bool16x8And();
+  const Operator* Bool16x8Or();
+  const Operator* Bool16x8Xor();
+  const Operator* Bool16x8Not();
+  const Operator* Bool16x8AnyTrue();
+  const Operator* Bool16x8AllTrue();
+  const Operator* Bool16x8Swizzle();
+  const Operator* Bool16x8Shuffle();
+  const Operator* Bool16x8Equal();
+  const Operator* Bool16x8NotEqual();
+
+  const Operator* CreateInt8x16();
+  const Operator* Int8x16ExtractLane();
+  const Operator* Int8x16ReplaceLane();
+  const Operator* Int8x16Neg();
+  const Operator* Int8x16Add();
+  const Operator* Int8x16AddSaturate();
+  const Operator* Int8x16Sub();
+  const Operator* Int8x16SubSaturate();
+  const Operator* Int8x16Mul();
+  const Operator* Int8x16Min();
+  const Operator* Int8x16Max();
+  const Operator* Int8x16ShiftLeftByScalar();
+  const Operator* Int8x16ShiftRightByScalar();
+  const Operator* Int8x16Equal();
+  const Operator* Int8x16NotEqual();
+  const Operator* Int8x16LessThan();
+  const Operator* Int8x16LessThanOrEqual();
+  const Operator* Int8x16GreaterThan();
+  const Operator* Int8x16GreaterThanOrEqual();
+  const Operator* Int8x16Select();
+  const Operator* Int8x16Swizzle();
+  const Operator* Int8x16Shuffle();
+
+  const Operator* Uint8x16AddSaturate();
+  const Operator* Uint8x16SubSaturate();
+  const Operator* Uint8x16Min();
+  const Operator* Uint8x16Max();
+  const Operator* Uint8x16ShiftLeftByScalar();
+  const Operator* Uint8x16ShiftRightByScalar();
+  const Operator* Uint8x16LessThan();
+  const Operator* Uint8x16LessThanOrEqual();
+  const Operator* Uint8x16GreaterThan();
+  const Operator* Uint8x16GreaterThanOrEqual();
+
+  const Operator* CreateBool8x16();
+  const Operator* Bool8x16ExtractLane();
+  const Operator* Bool8x16ReplaceLane();
+  const Operator* Bool8x16And();
+  const Operator* Bool8x16Or();
+  const Operator* Bool8x16Xor();
+  const Operator* Bool8x16Not();
+  const Operator* Bool8x16AnyTrue();
+  const Operator* Bool8x16AllTrue();
+  const Operator* Bool8x16Swizzle();
+  const Operator* Bool8x16Shuffle();
+  const Operator* Bool8x16Equal();
+  const Operator* Bool8x16NotEqual();
+
+  const Operator* Simd128Load();
+  const Operator* Simd128Load1();
+  const Operator* Simd128Load2();
+  const Operator* Simd128Load3();
+  const Operator* Simd128Store();
+  const Operator* Simd128Store1();
+  const Operator* Simd128Store2();
+  const Operator* Simd128Store3();
+  const Operator* Simd128And();
+  const Operator* Simd128Or();
+  const Operator* Simd128Xor();
+  const Operator* Simd128Not();
+
   // load [base + index]
   const Operator* Load(LoadRepresentation rep);
 
@@ -335,6 +503,11 @@
   // checked-store heap, index, length, value
   const Operator* CheckedStore(CheckedStoreRepresentation);
 
+  // atomic-load [base + index]
+  const Operator* AtomicLoad(LoadRepresentation rep);
+  // atomic-store [base + index], value
+  const Operator* AtomicStore(MachineRepresentation rep);
+
   // Target machine word-size assumed by this builder.
   bool Is32() const { return word() == MachineRepresentation::kWord32; }
   bool Is64() const { return word() == MachineRepresentation::kWord64; }
diff --git a/src/compiler/memory-optimizer.cc b/src/compiler/memory-optimizer.cc
new file mode 100644
index 0000000..59fd899
--- /dev/null
+++ b/src/compiler/memory-optimizer.cc
@@ -0,0 +1,494 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/compiler/memory-optimizer.h"
+
+#include "src/compiler/js-graph.h"
+#include "src/compiler/linkage.h"
+#include "src/compiler/node-matchers.h"
+#include "src/compiler/node-properties.h"
+#include "src/compiler/node.h"
+#include "src/compiler/simplified-operator.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+MemoryOptimizer::MemoryOptimizer(JSGraph* jsgraph, Zone* zone)
+    : jsgraph_(jsgraph),
+      empty_state_(AllocationState::Empty(zone)),
+      pending_(zone),
+      tokens_(zone),
+      zone_(zone) {}
+
+void MemoryOptimizer::Optimize() {
+  EnqueueUses(graph()->start(), empty_state());
+  while (!tokens_.empty()) {
+    Token const token = tokens_.front();
+    tokens_.pop();
+    VisitNode(token.node, token.state);
+  }
+  DCHECK(pending_.empty());
+  DCHECK(tokens_.empty());
+}
+
+MemoryOptimizer::AllocationGroup::AllocationGroup(Node* node,
+                                                  PretenureFlag pretenure,
+                                                  Zone* zone)
+    : node_ids_(zone), pretenure_(pretenure), size_(nullptr) {
+  node_ids_.insert(node->id());
+}
+
+MemoryOptimizer::AllocationGroup::AllocationGroup(Node* node,
+                                                  PretenureFlag pretenure,
+                                                  Node* size, Zone* zone)
+    : node_ids_(zone), pretenure_(pretenure), size_(size) {
+  node_ids_.insert(node->id());
+}
+
+void MemoryOptimizer::AllocationGroup::Add(Node* node) {
+  node_ids_.insert(node->id());
+}
+
+bool MemoryOptimizer::AllocationGroup::Contains(Node* node) const {
+  return node_ids_.find(node->id()) != node_ids_.end();
+}
+
+MemoryOptimizer::AllocationState::AllocationState()
+    : group_(nullptr), size_(std::numeric_limits<int>::max()), top_(nullptr) {}
+
+MemoryOptimizer::AllocationState::AllocationState(AllocationGroup* group)
+    : group_(group), size_(std::numeric_limits<int>::max()), top_(nullptr) {}
+
+MemoryOptimizer::AllocationState::AllocationState(AllocationGroup* group,
+                                                  int size, Node* top)
+    : group_(group), size_(size), top_(top) {}
+
+bool MemoryOptimizer::AllocationState::IsNewSpaceAllocation() const {
+  return group() && group()->IsNewSpaceAllocation();
+}
+
+void MemoryOptimizer::VisitNode(Node* node, AllocationState const* state) {
+  DCHECK(!node->IsDead());
+  DCHECK_LT(0, node->op()->EffectInputCount());
+  switch (node->opcode()) {
+    case IrOpcode::kAllocate:
+      return VisitAllocate(node, state);
+    case IrOpcode::kCall:
+      return VisitCall(node, state);
+    case IrOpcode::kLoadElement:
+      return VisitLoadElement(node, state);
+    case IrOpcode::kLoadField:
+      return VisitLoadField(node, state);
+    case IrOpcode::kStoreElement:
+      return VisitStoreElement(node, state);
+    case IrOpcode::kStoreField:
+      return VisitStoreField(node, state);
+    case IrOpcode::kCheckedLoad:
+    case IrOpcode::kCheckedStore:
+    case IrOpcode::kIfException:
+    case IrOpcode::kLoad:
+    case IrOpcode::kStore:
+      return VisitOtherEffect(node, state);
+    default:
+      break;
+  }
+  DCHECK_EQ(0, node->op()->EffectOutputCount());
+}
+
+void MemoryOptimizer::VisitAllocate(Node* node, AllocationState const* state) {
+  DCHECK_EQ(IrOpcode::kAllocate, node->opcode());
+  Node* value;
+  Node* size = node->InputAt(0);
+  Node* effect = node->InputAt(1);
+  Node* control = node->InputAt(2);
+  PretenureFlag pretenure = OpParameter<PretenureFlag>(node->op());
+
+  // Determine the top/limit addresses.
+  Node* top_address = jsgraph()->ExternalConstant(
+      pretenure == NOT_TENURED
+          ? ExternalReference::new_space_allocation_top_address(isolate())
+          : ExternalReference::old_space_allocation_top_address(isolate()));
+  Node* limit_address = jsgraph()->ExternalConstant(
+      pretenure == NOT_TENURED
+          ? ExternalReference::new_space_allocation_limit_address(isolate())
+          : ExternalReference::old_space_allocation_limit_address(isolate()));
+
+  // Check if we can fold this allocation into a previous allocation represented
+  // by the incoming {state}.
+  Int32Matcher m(size);
+  if (m.HasValue() && m.Value() < Page::kMaxRegularHeapObjectSize) {
+    int32_t const object_size = m.Value();
+    if (state->size() <= Page::kMaxRegularHeapObjectSize - object_size &&
+        state->group()->pretenure() == pretenure) {
+      // We can fold this Allocate {node} into the allocation {group}
+      // represented by the given {state}. Compute the upper bound for
+      // the new {state}.
+      int32_t const state_size = state->size() + object_size;
+
+      // Update the reservation check to the actual maximum upper bound.
+      AllocationGroup* const group = state->group();
+      if (OpParameter<int32_t>(group->size()) < state_size) {
+        NodeProperties::ChangeOp(group->size(),
+                                 common()->Int32Constant(state_size));
+      }
+
+      // Update the allocation top with the new object allocation.
+      // TODO(bmeurer): Defer writing back top as much as possible.
+      Node* top = graph()->NewNode(machine()->IntAdd(), state->top(),
+                                   jsgraph()->IntPtrConstant(object_size));
+      effect = graph()->NewNode(
+          machine()->Store(StoreRepresentation(
+              MachineType::PointerRepresentation(), kNoWriteBarrier)),
+          top_address, jsgraph()->IntPtrConstant(0), top, effect, control);
+
+      // Compute the effective inner allocated address.
+      value = graph()->NewNode(
+          machine()->BitcastWordToTagged(),
+          graph()->NewNode(machine()->IntAdd(), state->top(),
+                           jsgraph()->IntPtrConstant(kHeapObjectTag)));
+
+      // Extend the allocation {group}.
+      group->Add(value);
+      state = AllocationState::Open(group, state_size, top, zone());
+    } else {
+      // Setup a mutable reservation size node; will be patched as we fold
+      // additional allocations into this new group.
+      Node* size = graph()->NewNode(common()->Int32Constant(object_size));
+
+      // Load allocation top and limit.
+      Node* top = effect =
+          graph()->NewNode(machine()->Load(MachineType::Pointer()), top_address,
+                           jsgraph()->IntPtrConstant(0), effect, control);
+      Node* limit = effect = graph()->NewNode(
+          machine()->Load(MachineType::Pointer()), limit_address,
+          jsgraph()->IntPtrConstant(0), effect, control);
+
+      // Check if we need to collect garbage before we can start bump pointer
+      // allocation (always done for folded allocations).
+      Node* check = graph()->NewNode(
+          machine()->UintLessThan(),
+          graph()->NewNode(
+              machine()->IntAdd(), top,
+              machine()->Is64()
+                  ? graph()->NewNode(machine()->ChangeInt32ToInt64(), size)
+                  : size),
+          limit);
+      Node* branch =
+          graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+      Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+      Node* etrue = effect;
+      Node* vtrue = top;
+
+      Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+      Node* efalse = effect;
+      Node* vfalse;
+      {
+        Node* target = pretenure == NOT_TENURED
+                           ? jsgraph()->AllocateInNewSpaceStubConstant()
+                           : jsgraph()->AllocateInOldSpaceStubConstant();
+        if (!allocate_operator_.is_set()) {
+          CallDescriptor* descriptor =
+              Linkage::GetAllocateCallDescriptor(graph()->zone());
+          allocate_operator_.set(common()->Call(descriptor));
+        }
+        vfalse = efalse = graph()->NewNode(allocate_operator_.get(), target,
+                                           size, efalse, if_false);
+        vfalse = graph()->NewNode(machine()->IntSub(), vfalse,
+                                  jsgraph()->IntPtrConstant(kHeapObjectTag));
+      }
+
+      control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+      effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+      value = graph()->NewNode(
+          common()->Phi(MachineType::PointerRepresentation(), 2), vtrue, vfalse,
+          control);
+
+      // Compute the new top and write it back.
+      top = graph()->NewNode(machine()->IntAdd(), value,
+                             jsgraph()->IntPtrConstant(object_size));
+      effect = graph()->NewNode(
+          machine()->Store(StoreRepresentation(
+              MachineType::PointerRepresentation(), kNoWriteBarrier)),
+          top_address, jsgraph()->IntPtrConstant(0), top, effect, control);
+
+      // Compute the initial object address.
+      value = graph()->NewNode(
+          machine()->BitcastWordToTagged(),
+          graph()->NewNode(machine()->IntAdd(), value,
+                           jsgraph()->IntPtrConstant(kHeapObjectTag)));
+
+      // Start a new allocation group.
+      AllocationGroup* group =
+          new (zone()) AllocationGroup(value, pretenure, size, zone());
+      state = AllocationState::Open(group, object_size, top, zone());
+    }
+  } else {
+    // Load allocation top and limit.
+    Node* top = effect =
+        graph()->NewNode(machine()->Load(MachineType::Pointer()), top_address,
+                         jsgraph()->IntPtrConstant(0), effect, control);
+    Node* limit = effect =
+        graph()->NewNode(machine()->Load(MachineType::Pointer()), limit_address,
+                         jsgraph()->IntPtrConstant(0), effect, control);
+
+    // Compute the new top.
+    Node* new_top = graph()->NewNode(
+        machine()->IntAdd(), top,
+        machine()->Is64()
+            ? graph()->NewNode(machine()->ChangeInt32ToInt64(), size)
+            : size);
+
+    // Check if we can do bump pointer allocation here.
+    Node* check = graph()->NewNode(machine()->UintLessThan(), new_top, limit);
+    Node* branch =
+        graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+    Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+    Node* etrue = effect;
+    Node* vtrue;
+    {
+      etrue = graph()->NewNode(
+          machine()->Store(StoreRepresentation(
+              MachineType::PointerRepresentation(), kNoWriteBarrier)),
+          top_address, jsgraph()->IntPtrConstant(0), new_top, etrue, if_true);
+      vtrue = graph()->NewNode(
+          machine()->BitcastWordToTagged(),
+          graph()->NewNode(machine()->IntAdd(), top,
+                           jsgraph()->IntPtrConstant(kHeapObjectTag)));
+    }
+
+    Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+    Node* efalse = effect;
+    Node* vfalse;
+    {
+      Node* target = pretenure == NOT_TENURED
+                         ? jsgraph()->AllocateInNewSpaceStubConstant()
+                         : jsgraph()->AllocateInOldSpaceStubConstant();
+      if (!allocate_operator_.is_set()) {
+        CallDescriptor* descriptor =
+            Linkage::GetAllocateCallDescriptor(graph()->zone());
+        allocate_operator_.set(common()->Call(descriptor));
+      }
+      vfalse = efalse = graph()->NewNode(allocate_operator_.get(), target, size,
+                                         efalse, if_false);
+    }
+
+    control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+    effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+    value = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
+                             vtrue, vfalse, control);
+
+    // Create an unfoldable allocation group.
+    AllocationGroup* group =
+        new (zone()) AllocationGroup(value, pretenure, zone());
+    state = AllocationState::Closed(group, zone());
+  }
+
+  // Replace all effect uses of {node} with the {effect}, enqueue the
+  // effect uses for further processing, and replace all value uses of
+  // {node} with the {value}.
+  for (Edge edge : node->use_edges()) {
+    if (NodeProperties::IsEffectEdge(edge)) {
+      EnqueueUse(edge.from(), edge.index(), state);
+      edge.UpdateTo(effect);
+    } else {
+      DCHECK(NodeProperties::IsValueEdge(edge));
+      edge.UpdateTo(value);
+    }
+  }
+
+  // Kill the {node} to make sure we don't leave dangling dead uses.
+  node->Kill();
+}
+
+void MemoryOptimizer::VisitCall(Node* node, AllocationState const* state) {
+  DCHECK_EQ(IrOpcode::kCall, node->opcode());
+  // If the call can allocate, we start with a fresh state.
+  if (!(CallDescriptorOf(node->op())->flags() & CallDescriptor::kNoAllocate)) {
+    state = empty_state();
+  }
+  EnqueueUses(node, state);
+}
+
+void MemoryOptimizer::VisitLoadElement(Node* node,
+                                       AllocationState const* state) {
+  DCHECK_EQ(IrOpcode::kLoadElement, node->opcode());
+  ElementAccess const& access = ElementAccessOf(node->op());
+  Node* index = node->InputAt(1);
+  node->ReplaceInput(1, ComputeIndex(access, index));
+  NodeProperties::ChangeOp(node, machine()->Load(access.machine_type));
+  EnqueueUses(node, state);
+}
+
+void MemoryOptimizer::VisitLoadField(Node* node, AllocationState const* state) {
+  DCHECK_EQ(IrOpcode::kLoadField, node->opcode());
+  FieldAccess const& access = FieldAccessOf(node->op());
+  Node* offset = jsgraph()->IntPtrConstant(access.offset - access.tag());
+  node->InsertInput(graph()->zone(), 1, offset);
+  NodeProperties::ChangeOp(node, machine()->Load(access.machine_type));
+  EnqueueUses(node, state);
+}
+
+void MemoryOptimizer::VisitStoreElement(Node* node,
+                                        AllocationState const* state) {
+  DCHECK_EQ(IrOpcode::kStoreElement, node->opcode());
+  ElementAccess const& access = ElementAccessOf(node->op());
+  Node* object = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  WriteBarrierKind write_barrier_kind =
+      ComputeWriteBarrierKind(object, state, access.write_barrier_kind);
+  node->ReplaceInput(1, ComputeIndex(access, index));
+  NodeProperties::ChangeOp(
+      node, machine()->Store(StoreRepresentation(
+                access.machine_type.representation(), write_barrier_kind)));
+  EnqueueUses(node, state);
+}
+
+void MemoryOptimizer::VisitStoreField(Node* node,
+                                      AllocationState const* state) {
+  DCHECK_EQ(IrOpcode::kStoreField, node->opcode());
+  FieldAccess const& access = FieldAccessOf(node->op());
+  Node* object = node->InputAt(0);
+  WriteBarrierKind write_barrier_kind =
+      ComputeWriteBarrierKind(object, state, access.write_barrier_kind);
+  Node* offset = jsgraph()->IntPtrConstant(access.offset - access.tag());
+  node->InsertInput(graph()->zone(), 1, offset);
+  NodeProperties::ChangeOp(
+      node, machine()->Store(StoreRepresentation(
+                access.machine_type.representation(), write_barrier_kind)));
+  EnqueueUses(node, state);
+}
+
+void MemoryOptimizer::VisitOtherEffect(Node* node,
+                                       AllocationState const* state) {
+  EnqueueUses(node, state);
+}
+
+Node* MemoryOptimizer::ComputeIndex(ElementAccess const& access, Node* key) {
+  Node* index = key;
+  int element_size_shift =
+      ElementSizeLog2Of(access.machine_type.representation());
+  if (element_size_shift) {
+    index = graph()->NewNode(machine()->Word32Shl(), index,
+                             jsgraph()->Int32Constant(element_size_shift));
+  }
+  const int fixed_offset = access.header_size - access.tag();
+  if (fixed_offset) {
+    index = graph()->NewNode(machine()->Int32Add(), index,
+                             jsgraph()->Int32Constant(fixed_offset));
+  }
+  if (machine()->Is64()) {
+    // TODO(turbofan): This is probably only correct for typed arrays, and only
+    // if the typed arrays are at most 2GiB in size, which happens to match
+    // exactly our current situation.
+    index = graph()->NewNode(machine()->ChangeUint32ToUint64(), index);
+  }
+  return index;
+}
+
+WriteBarrierKind MemoryOptimizer::ComputeWriteBarrierKind(
+    Node* object, AllocationState const* state,
+    WriteBarrierKind write_barrier_kind) {
+  if (state->IsNewSpaceAllocation() && state->group()->Contains(object)) {
+    write_barrier_kind = kNoWriteBarrier;
+  }
+  return write_barrier_kind;
+}
+
+MemoryOptimizer::AllocationState const* MemoryOptimizer::MergeStates(
+    AllocationStates const& states) {
+  // Check if all states are the same; or at least if all allocation
+  // states belong to the same allocation group.
+  AllocationState const* state = states.front();
+  AllocationGroup* group = state->group();
+  for (size_t i = 1; i < states.size(); ++i) {
+    if (states[i] != state) state = nullptr;
+    if (states[i]->group() != group) group = nullptr;
+  }
+  if (state == nullptr) {
+    if (group != nullptr) {
+      // We cannot fold any more allocations into this group, but we can still
+      // eliminate write barriers on stores to this group.
+      // TODO(bmeurer): We could potentially just create a Phi here to merge
+      // the various tops; but we need to pay special attention not to create
+      // an unschedulable graph.
+      state = AllocationState::Closed(group, zone());
+    } else {
+      // The states are from different allocation groups.
+      state = empty_state();
+    }
+  }
+  return state;
+}
+
+void MemoryOptimizer::EnqueueMerge(Node* node, int index,
+                                   AllocationState const* state) {
+  DCHECK_EQ(IrOpcode::kEffectPhi, node->opcode());
+  int const input_count = node->InputCount() - 1;
+  DCHECK_LT(0, input_count);
+  Node* const control = node->InputAt(input_count);
+  if (control->opcode() == IrOpcode::kLoop) {
+    // For loops we always start with an empty state at the beginning.
+    if (index == 0) EnqueueUses(node, empty_state());
+  } else {
+    DCHECK_EQ(IrOpcode::kMerge, control->opcode());
+    // Check if we already know about this pending merge.
+    NodeId const id = node->id();
+    auto it = pending_.find(id);
+    if (it == pending_.end()) {
+      // Insert a new pending merge.
+      it = pending_.insert(std::make_pair(id, AllocationStates(zone()))).first;
+    }
+    // Add the next input state.
+    it->second.push_back(state);
+    // Check if states for all inputs are available by now.
+    if (it->second.size() == static_cast<size_t>(input_count)) {
+      // All inputs to this effect merge are done, merge the states given all
+      // input constraints, drop the pending merge and enqueue uses of the
+      // EffectPhi {node}.
+      state = MergeStates(it->second);
+      EnqueueUses(node, state);
+      pending_.erase(it);
+    }
+  }
+}
+
+void MemoryOptimizer::EnqueueUses(Node* node, AllocationState const* state) {
+  for (Edge const edge : node->use_edges()) {
+    if (NodeProperties::IsEffectEdge(edge)) {
+      EnqueueUse(edge.from(), edge.index(), state);
+    }
+  }
+}
+
+void MemoryOptimizer::EnqueueUse(Node* node, int index,
+                                 AllocationState const* state) {
+  if (node->opcode() == IrOpcode::kEffectPhi) {
+    // An EffectPhi represents a merge of different effect chains, which
+    // needs special handling depending on whether the merge is part of a
+    // loop or just a normal control join.
+    EnqueueMerge(node, index, state);
+  } else {
+    Token token = {node, state};
+    tokens_.push(token);
+  }
+}
+
+Graph* MemoryOptimizer::graph() const { return jsgraph()->graph(); }
+
+Isolate* MemoryOptimizer::isolate() const { return jsgraph()->isolate(); }
+
+CommonOperatorBuilder* MemoryOptimizer::common() const {
+  return jsgraph()->common();
+}
+
+MachineOperatorBuilder* MemoryOptimizer::machine() const {
+  return jsgraph()->machine();
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/src/compiler/memory-optimizer.h b/src/compiler/memory-optimizer.h
new file mode 100644
index 0000000..f0cd546
--- /dev/null
+++ b/src/compiler/memory-optimizer.h
@@ -0,0 +1,149 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_COMPILER_MEMORY_OPTIMIZER_H_
+#define V8_COMPILER_MEMORY_OPTIMIZER_H_
+
+#include "src/zone-containers.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+// Forward declarations.
+class CommonOperatorBuilder;
+struct ElementAccess;
+class Graph;
+class JSGraph;
+class MachineOperatorBuilder;
+class Node;
+class Operator;
+
+// NodeIds are identifying numbers for nodes that can be used to index auxiliary
+// out-of-line data associated with each node.
+typedef uint32_t NodeId;
+
+// Lowers all simplified memory access and allocation related nodes (i.e.
+// Allocate, LoadField, StoreField and friends) to machine operators.
+// Performs allocation folding and store write barrier elimination
+// implicitly.
+class MemoryOptimizer final {
+ public:
+  MemoryOptimizer(JSGraph* jsgraph, Zone* zone);
+  ~MemoryOptimizer() {}
+
+  void Optimize();
+
+ private:
+  // An allocation group represents a set of allocations that have been folded
+  // together.
+  class AllocationGroup final : public ZoneObject {
+   public:
+    AllocationGroup(Node* node, PretenureFlag pretenure, Zone* zone);
+    AllocationGroup(Node* node, PretenureFlag pretenure, Node* size,
+                    Zone* zone);
+    ~AllocationGroup() {}
+
+    void Add(Node* object);
+    bool Contains(Node* object) const;
+    bool IsNewSpaceAllocation() const { return pretenure() == NOT_TENURED; }
+
+    PretenureFlag pretenure() const { return pretenure_; }
+    Node* size() const { return size_; }
+
+   private:
+    ZoneSet<NodeId> node_ids_;
+    PretenureFlag const pretenure_;
+    Node* const size_;
+
+    DISALLOW_IMPLICIT_CONSTRUCTORS(AllocationGroup);
+  };
+
+  // An allocation state is propagated on the effect paths through the graph.
+  class AllocationState final : public ZoneObject {
+   public:
+    static AllocationState const* Empty(Zone* zone) {
+      return new (zone) AllocationState();
+    }
+    static AllocationState const* Closed(AllocationGroup* group, Zone* zone) {
+      return new (zone) AllocationState(group);
+    }
+    static AllocationState const* Open(AllocationGroup* group, int size,
+                                       Node* top, Zone* zone) {
+      return new (zone) AllocationState(group, size, top);
+    }
+
+    bool IsNewSpaceAllocation() const;
+
+    AllocationGroup* group() const { return group_; }
+    Node* top() const { return top_; }
+    int size() const { return size_; }
+
+   private:
+    AllocationState();
+    explicit AllocationState(AllocationGroup* group);
+    AllocationState(AllocationGroup* group, int size, Node* top);
+
+    AllocationGroup* const group_;
+    // The upper bound of the combined allocated object size on the current path
+    // (max int if allocation folding is impossible on this path).
+    int const size_;
+    Node* const top_;
+
+    DISALLOW_COPY_AND_ASSIGN(AllocationState);
+  };
+
+  // An array of allocation states used to collect states on merges.
+  typedef ZoneVector<AllocationState const*> AllocationStates;
+
+  // We thread through tokens to represent the current state on a given effect
+  // path through the graph.
+  struct Token {
+    Node* node;
+    AllocationState const* state;
+  };
+
+  void VisitNode(Node*, AllocationState const*);
+  void VisitAllocate(Node*, AllocationState const*);
+  void VisitCall(Node*, AllocationState const*);
+  void VisitLoadElement(Node*, AllocationState const*);
+  void VisitLoadField(Node*, AllocationState const*);
+  void VisitStoreElement(Node*, AllocationState const*);
+  void VisitStoreField(Node*, AllocationState const*);
+  void VisitOtherEffect(Node*, AllocationState const*);
+
+  Node* ComputeIndex(ElementAccess const&, Node*);
+  WriteBarrierKind ComputeWriteBarrierKind(Node* object,
+                                           AllocationState const* state,
+                                           WriteBarrierKind);
+
+  AllocationState const* MergeStates(AllocationStates const& states);
+
+  void EnqueueMerge(Node*, int, AllocationState const*);
+  void EnqueueUses(Node*, AllocationState const*);
+  void EnqueueUse(Node*, int, AllocationState const*);
+
+  AllocationState const* empty_state() const { return empty_state_; }
+  Graph* graph() const;
+  Isolate* isolate() const;
+  JSGraph* jsgraph() const { return jsgraph_; }
+  CommonOperatorBuilder* common() const;
+  MachineOperatorBuilder* machine() const;
+  Zone* zone() const { return zone_; }
+
+  SetOncePointer<const Operator> allocate_operator_;
+  JSGraph* const jsgraph_;
+  AllocationState const* const empty_state_;
+  ZoneMap<NodeId, AllocationStates> pending_;
+  ZoneQueue<Token> tokens_;
+  Zone* const zone_;
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(MemoryOptimizer);
+};
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_COMPILER_MEMORY_OPTIMIZER_H_
diff --git a/src/compiler/mips/code-generator-mips.cc b/src/compiler/mips/code-generator-mips.cc
index 9b0d706..c437d5e 100644
--- a/src/compiler/mips/code-generator-mips.cc
+++ b/src/compiler/mips/code-generator-mips.cc
@@ -119,7 +119,7 @@
 
   MemOperand ToMemOperand(InstructionOperand* op) const {
     DCHECK_NOT_NULL(op);
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToMemOperand(AllocatedOperand::cast(op)->index());
   }
 
@@ -472,13 +472,24 @@
     __ bind(&done);                                                           \
   }
 
+#define ASSEMBLE_ATOMIC_LOAD_INTEGER(asm_instr)          \
+  do {                                                   \
+    __ asm_instr(i.OutputRegister(), i.MemoryOperand()); \
+    __ sync();                                           \
+  } while (0)
+
+#define ASSEMBLE_ATOMIC_STORE_INTEGER(asm_instr)         \
+  do {                                                   \
+    __ sync();                                           \
+    __ asm_instr(i.InputRegister(2), i.MemoryOperand()); \
+    __ sync();                                           \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ mov(sp, fp);
   __ Pop(ra, fp);
 }
 
-void CodeGenerator::AssembleSetupStackPointer() {}
-
 void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
   int sp_slot_delta = TailCallFrameStackSlotDelta(stack_param_delta);
   if (sp_slot_delta > 0) {
@@ -527,7 +538,8 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   MipsOperandConverter i(this, instr);
   InstructionCode opcode = instr->opcode();
   ArchOpcode arch_opcode = ArchOpcodeField::decode(opcode);
@@ -564,6 +576,14 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!instr->InputAt(0)->IsImmediate());
+      __ Jump(i.InputRegister(0));
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       EnsureSpaceForLazyDeopt();
       Register func = i.InputRegister(0);
@@ -641,7 +661,9 @@
           BuildTranslation(instr, -1, 0, OutputFrameStateCombine::Ignore());
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -839,6 +861,36 @@
         __ sra(i.OutputRegister(), i.InputRegister(0), imm);
       }
       break;
+    case kMipsShlPair: {
+      if (instr->InputAt(2)->IsRegister()) {
+        __ ShlPair(i.OutputRegister(0), i.OutputRegister(1), i.InputRegister(0),
+                   i.InputRegister(1), i.InputRegister(2));
+      } else {
+        uint32_t imm = i.InputOperand(2).immediate();
+        __ ShlPair(i.OutputRegister(0), i.OutputRegister(1), i.InputRegister(0),
+                   i.InputRegister(1), imm);
+      }
+    } break;
+    case kMipsShrPair: {
+      if (instr->InputAt(2)->IsRegister()) {
+        __ ShrPair(i.OutputRegister(0), i.OutputRegister(1), i.InputRegister(0),
+                   i.InputRegister(1), i.InputRegister(2));
+      } else {
+        uint32_t imm = i.InputOperand(2).immediate();
+        __ ShrPair(i.OutputRegister(0), i.OutputRegister(1), i.InputRegister(0),
+                   i.InputRegister(1), imm);
+      }
+    } break;
+    case kMipsSarPair: {
+      if (instr->InputAt(2)->IsRegister()) {
+        __ SarPair(i.OutputRegister(0), i.OutputRegister(1), i.InputRegister(0),
+                   i.InputRegister(1), i.InputRegister(2));
+      } else {
+        uint32_t imm = i.InputOperand(2).immediate();
+        __ SarPair(i.OutputRegister(0), i.OutputRegister(1), i.InputRegister(0),
+                   i.InputRegister(1), imm);
+      }
+    } break;
     case kMipsExt:
       __ Ext(i.OutputRegister(), i.InputRegister(0), i.InputInt8(1),
              i.InputInt8(2));
@@ -869,7 +921,11 @@
         __ li(i.OutputRegister(), i.InputOperand(0));
       }
       break;
-
+    case kMipsLsa:
+      DCHECK(instr->InputAt(2)->IsImmediate());
+      __ Lsa(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
+             i.InputInt8(2));
+      break;
     case kMipsCmpS:
       // Psuedo-instruction used for FP cmp/branch. No opcode emitted here.
       break;
@@ -923,6 +979,14 @@
     case kMipsCmpD:
       // Psuedo-instruction used for FP cmp/branch. No opcode emitted here.
       break;
+    case kMipsAddPair:
+      __ AddPair(i.OutputRegister(0), i.OutputRegister(1), i.InputRegister(0),
+                 i.InputRegister(1), i.InputRegister(2), i.InputRegister(3));
+      break;
+    case kMipsSubPair:
+      __ SubPair(i.OutputRegister(0), i.OutputRegister(1), i.InputRegister(0),
+                 i.InputRegister(1), i.InputRegister(2), i.InputRegister(3));
+      break;
     case kMipsMulPair: {
       __ Mulu(i.OutputRegister(1), i.OutputRegister(0), i.InputRegister(0),
               i.InputRegister(2));
@@ -1212,7 +1276,7 @@
       __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand());
       break;
     case kMipsPush:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize));
         __ Subu(sp, sp, Operand(kDoubleSize));
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
@@ -1227,7 +1291,7 @@
       break;
     }
     case kMipsStoreToStackSlot: {
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, i.InputInt32(1)));
       } else {
         __ sw(i.InputRegister(0), MemOperand(sp, i.InputInt32(1)));
@@ -1274,7 +1338,32 @@
     case kCheckedStoreWord64:
       UNREACHABLE();  // currently unsupported checked int64 load/store.
       break;
+    case kAtomicLoadInt8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lb);
+      break;
+    case kAtomicLoadUint8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lbu);
+      break;
+    case kAtomicLoadInt16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lh);
+      break;
+    case kAtomicLoadUint16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lhu);
+      break;
+    case kAtomicLoadWord32:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lw);
+      break;
+    case kAtomicStoreWord8:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(sb);
+      break;
+    case kAtomicStoreWord16:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(sh);
+      break;
+    case kAtomicStoreWord32:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(sw);
+      break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 
@@ -1569,18 +1658,40 @@
   });
 }
 
-
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ Call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
+  return kSuccess;
 }
 
-
-void CodeGenerator::AssemblePrologue() {
+void CodeGenerator::FinishFrame(Frame* frame) {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
+
+  const RegList saves_fpu = descriptor->CalleeSavedFPRegisters();
+  if (saves_fpu != 0) {
+    frame->AlignSavedCalleeRegisterSlots();
+  }
+
+  if (saves_fpu != 0) {
+    int count = base::bits::CountPopulation32(saves_fpu);
+    DCHECK(kNumCalleeSavedFPU == count);
+    frame->AllocateSavedCalleeRegisterSlots(count *
+                                            (kDoubleSize / kPointerSize));
+  }
+
+  const RegList saves = descriptor->CalleeSavedRegisters();
+  if (saves != 0) {
+    int count = base::bits::CountPopulation32(saves);
+    DCHECK(kNumCalleeSaved == count + 1);
+    frame->AllocateSavedCalleeRegisterSlots(count);
+  }
+}
+
+void CodeGenerator::AssembleConstructFrame() {
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (frame_access_state()->has_frame()) {
     if (descriptor->IsCFunctionCall()) {
       __ Push(ra, fp);
@@ -1592,6 +1703,8 @@
     }
   }
 
+  int shrink_slots = frame()->GetSpillSlotCount();
+
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -1602,35 +1715,24 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
+    shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
   }
 
   const RegList saves_fpu = descriptor->CalleeSavedFPRegisters();
-  if (saves_fpu != 0) {
-    stack_shrink_slots += frame()->AlignSavedCalleeRegisterSlots();
-  }
-  if (stack_shrink_slots > 0) {
-    __ Subu(sp, sp, Operand(stack_shrink_slots * kPointerSize));
+  if (shrink_slots > 0) {
+    __ Subu(sp, sp, Operand(shrink_slots * kPointerSize));
   }
 
   // Save callee-saved FPU registers.
   if (saves_fpu != 0) {
     __ MultiPushFPU(saves_fpu);
-    int count = base::bits::CountPopulation32(saves_fpu);
-    DCHECK(kNumCalleeSavedFPU == count);
-    frame()->AllocateSavedCalleeRegisterSlots(count *
-                                              (kDoubleSize / kPointerSize));
   }
 
   const RegList saves = descriptor->CalleeSavedRegisters();
   if (saves != 0) {
     // Save callee-saved registers.
     __ MultiPush(saves);
-    // kNumCalleeSaved includes the fp register, but the fp register
-    // is saved separately in TF.
-    int count = base::bits::CountPopulation32(saves);
-    DCHECK(kNumCalleeSaved == count + 1);
-    frame()->AllocateSavedCalleeRegisterSlots(count);
+    DCHECK(kNumCalleeSaved == base::bits::CountPopulation32(saves) + 1);
   }
 }
 
@@ -1701,7 +1803,12 @@
           destination->IsRegister() ? g.ToRegister(destination) : kScratchReg;
       switch (src.type()) {
         case Constant::kInt32:
-          __ li(dst, Operand(src.ToInt32()));
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+            __ li(dst, Operand(src.ToInt32(), src.rmode()));
+          } else {
+            __ li(dst, Operand(src.ToInt32()));
+          }
           break;
         case Constant::kFloat32:
           __ li(dst, isolate()->factory()->NewNumber(src.ToFloat32(), TENURED));
@@ -1734,7 +1841,7 @@
       }
       if (destination->IsStackSlot()) __ sw(dst, g.ToMemOperand(destination));
     } else if (src.type() == Constant::kFloat32) {
-      if (destination->IsDoubleStackSlot()) {
+      if (destination->IsFPStackSlot()) {
         MemOperand dst = g.ToMemOperand(destination);
         __ li(at, Operand(bit_cast<int32_t>(src.ToFloat32())));
         __ sw(at, dst);
@@ -1744,27 +1851,27 @@
       }
     } else {
       DCHECK_EQ(Constant::kFloat64, src.type());
-      DoubleRegister dst = destination->IsDoubleRegister()
+      DoubleRegister dst = destination->IsFPRegister()
                                ? g.ToDoubleRegister(destination)
                                : kScratchDoubleReg;
       __ Move(dst, src.ToFloat64());
-      if (destination->IsDoubleStackSlot()) {
+      if (destination->IsFPStackSlot()) {
         __ sdc1(dst, g.ToMemOperand(destination));
       }
     }
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     FPURegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       FPURegister dst = g.ToDoubleRegister(destination);
       __ Move(dst, src);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       __ sdc1(src, g.ToMemOperand(destination));
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       __ ldc1(g.ToDoubleRegister(destination), src);
     } else {
       FPURegister temp = kScratchDoubleReg;
@@ -1808,23 +1915,23 @@
     __ lw(temp_1, dst);
     __ sw(temp_0, dst);
     __ sw(temp_1, src);
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     FPURegister temp = kScratchDoubleReg;
     FPURegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       FPURegister dst = g.ToDoubleRegister(destination);
       __ Move(temp, src);
       __ Move(src, dst);
       __ Move(dst, temp);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       MemOperand dst = g.ToMemOperand(destination);
       __ Move(temp, src);
       __ ldc1(src, dst);
       __ sdc1(temp, dst);
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPStackSlot());
     Register temp_0 = kScratchReg;
     FPURegister temp_1 = kScratchDoubleReg;
     MemOperand src0 = g.ToMemOperand(source);
@@ -1850,13 +1957,6 @@
 }
 
 
-void CodeGenerator::AddNopForSmiCodeInlining() {
-  // Unused on 32-bit ARM. Still exists on 64-bit arm.
-  // TODO(plind): Unclear when this is called now. Understand, fix if needed.
-  __ nop();  // Maybe PROPERTY_ACCESS_INLINED?
-}
-
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/mips/instruction-codes-mips.h b/src/compiler/mips/instruction-codes-mips.h
index d85c2a7..5c36525 100644
--- a/src/compiler/mips/instruction-codes-mips.h
+++ b/src/compiler/mips/instruction-codes-mips.h
@@ -30,9 +30,13 @@
   V(MipsClz)                       \
   V(MipsCtz)                       \
   V(MipsPopcnt)                    \
+  V(MipsLsa)                       \
   V(MipsShl)                       \
   V(MipsShr)                       \
   V(MipsSar)                       \
+  V(MipsShlPair)                   \
+  V(MipsShrPair)                   \
+  V(MipsSarPair)                   \
   V(MipsExt)                       \
   V(MipsIns)                       \
   V(MipsRor)                       \
@@ -59,6 +63,8 @@
   V(MipsSqrtD)                     \
   V(MipsMaxD)                      \
   V(MipsMinD)                      \
+  V(MipsAddPair)                   \
+  V(MipsSubPair)                   \
   V(MipsMulPair)                   \
   V(MipsFloat32RoundDown)          \
   V(MipsFloat32RoundTruncate)      \
diff --git a/src/compiler/mips/instruction-selector-mips.cc b/src/compiler/mips/instruction-selector-mips.cc
index f86ffe7..cccb39a 100644
--- a/src/compiler/mips/instruction-selector-mips.cc
+++ b/src/compiler/mips/instruction-selector-mips.cc
@@ -395,27 +395,71 @@
   VisitRRO(this, kMipsSar, node);
 }
 
-void InstructionSelector::VisitInt32PairAdd(Node* node) { UNIMPLEMENTED(); }
+static void VisitInt32PairBinop(InstructionSelector* selector,
+                                InstructionCode opcode, Node* node) {
+  MipsOperandGenerator g(selector);
 
-void InstructionSelector::VisitInt32PairSub(Node* node) { UNIMPLEMENTED(); }
-
-void InstructionSelector::VisitInt32PairMul(Node* node) {
-  MipsOperandGenerator g(this);
+  // We use UseUniqueRegister here to avoid register sharing with the output
+  // register.
   InstructionOperand inputs[] = {g.UseUniqueRegister(node->InputAt(0)),
                                  g.UseUniqueRegister(node->InputAt(1)),
                                  g.UseUniqueRegister(node->InputAt(2)),
                                  g.UseUniqueRegister(node->InputAt(3))};
+
   InstructionOperand outputs[] = {
       g.DefineAsRegister(node),
       g.DefineAsRegister(NodeProperties::FindProjection(node, 1))};
-  Emit(kMipsMulPair, 2, outputs, 4, inputs);
+  selector->Emit(opcode, 2, outputs, 4, inputs);
 }
 
-void InstructionSelector::VisitWord32PairShl(Node* node) { UNIMPLEMENTED(); }
+void InstructionSelector::VisitInt32PairAdd(Node* node) {
+  VisitInt32PairBinop(this, kMipsAddPair, node);
+}
 
-void InstructionSelector::VisitWord32PairShr(Node* node) { UNIMPLEMENTED(); }
+void InstructionSelector::VisitInt32PairSub(Node* node) {
+  VisitInt32PairBinop(this, kMipsSubPair, node);
+}
 
-void InstructionSelector::VisitWord32PairSar(Node* node) { UNIMPLEMENTED(); }
+void InstructionSelector::VisitInt32PairMul(Node* node) {
+  VisitInt32PairBinop(this, kMipsMulPair, node);
+}
+
+// Shared routine for multiple shift operations.
+static void VisitWord32PairShift(InstructionSelector* selector,
+                                 InstructionCode opcode, Node* node) {
+  MipsOperandGenerator g(selector);
+  Int32Matcher m(node->InputAt(2));
+  InstructionOperand shift_operand;
+  if (m.HasValue()) {
+    shift_operand = g.UseImmediate(m.node());
+  } else {
+    shift_operand = g.UseUniqueRegister(m.node());
+  }
+
+  // We use UseUniqueRegister here to avoid register sharing with the output
+  // register.
+  InstructionOperand inputs[] = {g.UseUniqueRegister(node->InputAt(0)),
+                                 g.UseUniqueRegister(node->InputAt(1)),
+                                 shift_operand};
+
+  InstructionOperand outputs[] = {
+      g.DefineAsRegister(node),
+      g.DefineAsRegister(NodeProperties::FindProjection(node, 1))};
+
+  selector->Emit(opcode, 2, outputs, 3, inputs);
+}
+
+void InstructionSelector::VisitWord32PairShl(Node* node) {
+  VisitWord32PairShift(this, kMipsShlPair, node);
+}
+
+void InstructionSelector::VisitWord32PairShr(Node* node) {
+  VisitWord32PairShift(this, kMipsShrPair, node);
+}
+
+void InstructionSelector::VisitWord32PairSar(Node* node) {
+  VisitWord32PairShift(this, kMipsSarPair, node);
+}
 
 void InstructionSelector::VisitWord32Ror(Node* node) {
   VisitRRO(this, kMipsRor, node);
@@ -444,8 +488,32 @@
 
 void InstructionSelector::VisitInt32Add(Node* node) {
   MipsOperandGenerator g(this);
+  Int32BinopMatcher m(node);
 
-  // TODO(plind): Consider multiply & add optimization from arm port.
+  // Select Lsa for (left + (left_of_right << imm)).
+  if (m.right().opcode() == IrOpcode::kWord32Shl &&
+      CanCover(node, m.left().node()) && CanCover(node, m.right().node())) {
+    Int32BinopMatcher mright(m.right().node());
+    if (mright.right().HasValue()) {
+      int32_t shift_value = static_cast<int32_t>(mright.right().Value());
+      Emit(kMipsLsa, g.DefineAsRegister(node), g.UseRegister(m.left().node()),
+           g.UseRegister(mright.left().node()), g.TempImmediate(shift_value));
+      return;
+    }
+  }
+
+  // Select Lsa for ((left_of_left << imm) + right).
+  if (m.left().opcode() == IrOpcode::kWord32Shl &&
+      CanCover(node, m.right().node()) && CanCover(node, m.left().node())) {
+    Int32BinopMatcher mleft(m.left().node());
+    if (mleft.right().HasValue()) {
+      int32_t shift_value = static_cast<int32_t>(mleft.right().Value());
+      Emit(kMipsLsa, g.DefineAsRegister(node), g.UseRegister(m.right().node()),
+           g.UseRegister(mleft.left().node()), g.TempImmediate(shift_value));
+      return;
+    }
+  }
+
   VisitBinop(this, node, kMipsAdd);
 }
 
@@ -467,12 +535,9 @@
       return;
     }
     if (base::bits::IsPowerOfTwo32(value - 1)) {
-      InstructionOperand temp = g.TempRegister();
-      Emit(kMipsShl | AddressingModeField::encode(kMode_None), temp,
+      Emit(kMipsLsa, g.DefineAsRegister(node), g.UseRegister(m.left().node()),
            g.UseRegister(m.left().node()),
            g.TempImmediate(WhichPowerOf2(value - 1)));
-      Emit(kMipsAdd | AddressingModeField::encode(kMode_None),
-           g.DefineAsRegister(node), g.UseRegister(m.left().node()), temp);
       return;
     }
     if (base::bits::IsPowerOfTwo32(value + 1)) {
@@ -654,17 +719,13 @@
   VisitRR(this, kMipsCvtSD, node);
 }
 
-
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      return VisitRR(this, kArchTruncateDoubleToI, node);
-    case TruncationMode::kRoundToZero:
-      return VisitRR(this, kMipsTruncWD, node);
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
+  VisitRR(this, kArchTruncateDoubleToI, node);
 }
 
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  VisitRR(this, kMipsTruncWD, node);
+}
 
 void InstructionSelector::VisitBitcastFloat32ToInt32(Node* node) {
   VisitRR(this, kMipsFloat64ExtractLowWord32, node);
@@ -693,6 +754,9 @@
   VisitRRR(this, kMipsSubS, node);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  VisitRRR(this, kMipsSubS, node);
+}
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
   MipsOperandGenerator g(this);
@@ -712,6 +776,9 @@
   VisitRRR(this, kMipsSubD, node);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  VisitRRR(this, kMipsSubD, node);
+}
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   VisitRRR(this, kMipsMulS, node);
@@ -999,7 +1066,6 @@
 
 
 namespace {
-
 // Shared routine for multiple compare operations.
 static void VisitCompare(InstructionSelector* selector, InstructionCode opcode,
                          InstructionOperand left, InstructionOperand right,
@@ -1388,6 +1454,73 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  MipsOperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  ArchOpcode opcode = kArchNop;
+  switch (load_rep.representation()) {
+    case MachineRepresentation::kWord8:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt8 : kAtomicLoadUint8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt16 : kAtomicLoadUint16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicLoadWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+  if (g.CanBeImmediate(index, opcode)) {
+    Emit(opcode | AddressingModeField::encode(kMode_MRI),
+         g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(index));
+  } else {
+    InstructionOperand addr_reg = g.TempRegister();
+    Emit(kMipsAdd | AddressingModeField::encode(kMode_None), addr_reg,
+         g.UseRegister(index), g.UseRegister(base));
+    // Emit desired load opcode, using temp addr_reg.
+    Emit(opcode | AddressingModeField::encode(kMode_MRI),
+         g.DefineAsRegister(node), addr_reg, g.TempImmediate(0));
+  }
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  MipsOperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kAtomicStoreWord8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kAtomicStoreWord16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicStoreWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+
+  if (g.CanBeImmediate(index, opcode)) {
+    Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(),
+         g.UseRegister(base), g.UseImmediate(index), g.UseRegister(value));
+  } else {
+    InstructionOperand addr_reg = g.TempRegister();
+    Emit(kMipsAdd | AddressingModeField::encode(kMode_None), addr_reg,
+         g.UseRegister(index), g.UseRegister(base));
+    // Emit desired store opcode, using temp addr_reg.
+    Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(),
+         addr_reg, g.TempImmediate(0), g.UseRegister(value));
+  }
+}
 
 // static
 MachineOperatorBuilder::Flags
diff --git a/src/compiler/mips64/code-generator-mips64.cc b/src/compiler/mips64/code-generator-mips64.cc
index c6341b1..a7d2301 100644
--- a/src/compiler/mips64/code-generator-mips64.cc
+++ b/src/compiler/mips64/code-generator-mips64.cc
@@ -119,7 +119,7 @@
 
   MemOperand ToMemOperand(InstructionOperand* op) const {
     DCHECK_NOT_NULL(op);
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToMemOperand(AllocatedOperand::cast(op)->index());
   }
 
@@ -359,7 +359,6 @@
 
 }  // namespace
 
-
 #define ASSEMBLE_CHECKED_LOAD_FLOAT(width, asm_instr)                         \
   do {                                                                        \
     auto result = i.Output##width##Register();                                \
@@ -367,7 +366,8 @@
     if (instr->InputAt(0)->IsRegister()) {                                    \
       auto offset = i.InputRegister(0);                                       \
       __ Branch(USE_DELAY_SLOT, ool->entry(), hs, offset, i.InputOperand(1)); \
-      __ Daddu(kScratchReg, i.InputRegister(2), offset);                      \
+      __ And(kScratchReg, offset, Operand(0xffffffff));                       \
+      __ Daddu(kScratchReg, i.InputRegister(2), kScratchReg);                 \
       __ asm_instr(result, MemOperand(kScratchReg, 0));                       \
     } else {                                                                  \
       int offset = static_cast<int>(i.InputOperand(0).immediate());           \
@@ -377,7 +377,6 @@
     __ bind(ool->exit());                                                     \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_LOAD_INTEGER(asm_instr)                              \
   do {                                                                        \
     auto result = i.OutputRegister();                                         \
@@ -385,7 +384,8 @@
     if (instr->InputAt(0)->IsRegister()) {                                    \
       auto offset = i.InputRegister(0);                                       \
       __ Branch(USE_DELAY_SLOT, ool->entry(), hs, offset, i.InputOperand(1)); \
-      __ Daddu(kScratchReg, i.InputRegister(2), offset);                      \
+      __ And(kScratchReg, offset, Operand(0xffffffff));                       \
+      __ Daddu(kScratchReg, i.InputRegister(2), kScratchReg);                 \
       __ asm_instr(result, MemOperand(kScratchReg, 0));                       \
     } else {                                                                  \
       int offset = static_cast<int>(i.InputOperand(0).immediate());           \
@@ -395,7 +395,6 @@
     __ bind(ool->exit());                                                     \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_STORE_FLOAT(width, asm_instr)                 \
   do {                                                                 \
     Label done;                                                        \
@@ -403,7 +402,8 @@
       auto offset = i.InputRegister(0);                                \
       auto value = i.Input##width##Register(2);                        \
       __ Branch(USE_DELAY_SLOT, &done, hs, offset, i.InputOperand(1)); \
-      __ Daddu(kScratchReg, i.InputRegister(3), offset);               \
+      __ And(kScratchReg, offset, Operand(0xffffffff));                \
+      __ Daddu(kScratchReg, i.InputRegister(3), kScratchReg);          \
       __ asm_instr(value, MemOperand(kScratchReg, 0));                 \
     } else {                                                           \
       int offset = static_cast<int>(i.InputOperand(0).immediate());    \
@@ -414,7 +414,6 @@
     __ bind(&done);                                                    \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_STORE_INTEGER(asm_instr)                      \
   do {                                                                 \
     Label done;                                                        \
@@ -422,7 +421,8 @@
       auto offset = i.InputRegister(0);                                \
       auto value = i.InputRegister(2);                                 \
       __ Branch(USE_DELAY_SLOT, &done, hs, offset, i.InputOperand(1)); \
-      __ Daddu(kScratchReg, i.InputRegister(3), offset);               \
+      __ And(kScratchReg, offset, Operand(0xffffffff));                \
+      __ Daddu(kScratchReg, i.InputRegister(3), kScratchReg);          \
       __ asm_instr(value, MemOperand(kScratchReg, 0));                 \
     } else {                                                           \
       int offset = static_cast<int>(i.InputOperand(0).immediate());    \
@@ -433,7 +433,6 @@
     __ bind(&done);                                                    \
   } while (0)
 
-
 #define ASSEMBLE_ROUND_DOUBLE_TO_DOUBLE(mode)                                  \
   if (kArchVariant == kMips64r6) {                                             \
     __ cfc1(kScratchReg, FCSR);                                                \
@@ -484,13 +483,24 @@
     __ bind(&done);                                                           \
   }
 
+#define ASSEMBLE_ATOMIC_LOAD_INTEGER(asm_instr)          \
+  do {                                                   \
+    __ asm_instr(i.OutputRegister(), i.MemoryOperand()); \
+    __ sync();                                           \
+  } while (0)
+
+#define ASSEMBLE_ATOMIC_STORE_INTEGER(asm_instr)         \
+  do {                                                   \
+    __ sync();                                           \
+    __ asm_instr(i.InputRegister(2), i.MemoryOperand()); \
+    __ sync();                                           \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ mov(sp, fp);
   __ Pop(ra, fp);
 }
 
-void CodeGenerator::AssembleSetupStackPointer() {}
-
 void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
   int sp_slot_delta = TailCallFrameStackSlotDelta(stack_param_delta);
   if (sp_slot_delta > 0) {
@@ -539,7 +549,8 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   MipsOperandConverter i(this, instr);
   InstructionCode opcode = instr->opcode();
   ArchOpcode arch_opcode = ArchOpcodeField::decode(opcode);
@@ -576,6 +587,14 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!instr->InputAt(0)->IsImmediate());
+      __ Jump(i.InputRegister(0));
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       EnsureSpaceForLazyDeopt();
       Register func = i.InputRegister(0);
@@ -651,7 +670,9 @@
           BuildTranslation(instr, -1, 0, OutputFrameStateCombine::Ignore());
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -775,6 +796,16 @@
     case kMips64DmodU:
       __ Dmodu(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1));
       break;
+    case kMips64Dlsa:
+      DCHECK(instr->InputAt(2)->IsImmediate());
+      __ Dlsa(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
+              i.InputInt8(2));
+      break;
+    case kMips64Lsa:
+      DCHECK(instr->InputAt(2)->IsImmediate());
+      __ Lsa(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
+             i.InputInt8(2));
+      break;
     case kMips64And:
       __ And(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1));
       break;
@@ -1466,6 +1497,9 @@
     case kMips64Lw:
       __ lw(i.OutputRegister(), i.MemoryOperand());
       break;
+    case kMips64Lwu:
+      __ lwu(i.OutputRegister(), i.MemoryOperand());
+      break;
     case kMips64Ld:
       __ ld(i.OutputRegister(), i.MemoryOperand());
       break;
@@ -1492,7 +1526,7 @@
       __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand());
       break;
     case kMips64Push:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize));
         __ Subu(sp, sp, Operand(kDoubleSize));
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
@@ -1507,7 +1541,7 @@
       break;
     }
     case kMips64StoreToStackSlot: {
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, i.InputInt32(1)));
       } else {
         __ sd(i.InputRegister(0), MemOperand(sp, i.InputInt32(1)));
@@ -1556,7 +1590,32 @@
     case kCheckedStoreFloat64:
       ASSEMBLE_CHECKED_STORE_FLOAT(Double, sdc1);
       break;
+    case kAtomicLoadInt8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lb);
+      break;
+    case kAtomicLoadUint8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lbu);
+      break;
+    case kAtomicLoadInt16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lh);
+      break;
+    case kAtomicLoadUint16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lhu);
+      break;
+    case kAtomicLoadWord32:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lw);
+      break;
+    case kAtomicStoreWord8:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(sb);
+      break;
+    case kAtomicStoreWord16:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(sh);
+      break;
+    case kAtomicStoreWord32:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(sw);
+      break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 
@@ -1868,16 +1927,35 @@
   });
 }
 
-
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ Call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
+  return kSuccess;
 }
 
+void CodeGenerator::FinishFrame(Frame* frame) {
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
 
-void CodeGenerator::AssemblePrologue() {
+  const RegList saves_fpu = descriptor->CalleeSavedFPRegisters();
+  if (saves_fpu != 0) {
+    int count = base::bits::CountPopulation32(saves_fpu);
+    DCHECK(kNumCalleeSavedFPU == count);
+    frame->AllocateSavedCalleeRegisterSlots(count *
+                                            (kDoubleSize / kPointerSize));
+  }
+
+  const RegList saves = descriptor->CalleeSavedRegisters();
+  if (saves != 0) {
+    int count = base::bits::CountPopulation32(saves);
+    DCHECK(kNumCalleeSaved == count + 1);
+    frame->AllocateSavedCalleeRegisterSlots(count);
+  }
+}
+
+void CodeGenerator::AssembleConstructFrame() {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (frame_access_state()->has_frame()) {
     if (descriptor->IsCFunctionCall()) {
@@ -1890,7 +1968,8 @@
     }
   }
 
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
+  int shrink_slots = frame()->GetSpillSlotCount();
+
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -1901,32 +1980,25 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
+    shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
   }
 
-  if (stack_shrink_slots > 0) {
-    __ Dsubu(sp, sp, Operand(stack_shrink_slots * kPointerSize));
+  if (shrink_slots > 0) {
+    __ Dsubu(sp, sp, Operand(shrink_slots * kPointerSize));
   }
 
   const RegList saves_fpu = descriptor->CalleeSavedFPRegisters();
   if (saves_fpu != 0) {
     // Save callee-saved FPU registers.
     __ MultiPushFPU(saves_fpu);
-    int count = base::bits::CountPopulation32(saves_fpu);
-    DCHECK(kNumCalleeSavedFPU == count);
-    frame()->AllocateSavedCalleeRegisterSlots(count *
-                                              (kDoubleSize / kPointerSize));
+    DCHECK(kNumCalleeSavedFPU == base::bits::CountPopulation32(saves_fpu));
   }
 
   const RegList saves = descriptor->CalleeSavedRegisters();
   if (saves != 0) {
     // Save callee-saved registers.
     __ MultiPush(saves);
-    // kNumCalleeSaved includes the fp register, but the fp register
-    // is saved separately in TF.
-    int count = base::bits::CountPopulation32(saves);
-    DCHECK(kNumCalleeSaved == count + 1);
-    frame()->AllocateSavedCalleeRegisterSlots(count);
+    DCHECK(kNumCalleeSaved == base::bits::CountPopulation32(saves) + 1);
   }
 }
 
@@ -1997,13 +2069,22 @@
           destination->IsRegister() ? g.ToRegister(destination) : kScratchReg;
       switch (src.type()) {
         case Constant::kInt32:
-          __ li(dst, Operand(src.ToInt32()));
+          if (src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+            __ li(dst, Operand(src.ToInt32(), src.rmode()));
+          } else {
+            __ li(dst, Operand(src.ToInt32()));
+          }
           break;
         case Constant::kFloat32:
           __ li(dst, isolate()->factory()->NewNumber(src.ToFloat32(), TENURED));
           break;
         case Constant::kInt64:
-          __ li(dst, Operand(src.ToInt64()));
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+            __ li(dst, Operand(src.ToInt64(), src.rmode()));
+          } else {
+            DCHECK(src.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+            __ li(dst, Operand(src.ToInt64()));
+          }
           break;
         case Constant::kFloat64:
           __ li(dst, isolate()->factory()->NewNumber(src.ToFloat64(), TENURED));
@@ -2030,7 +2111,7 @@
       }
       if (destination->IsStackSlot()) __ sd(dst, g.ToMemOperand(destination));
     } else if (src.type() == Constant::kFloat32) {
-      if (destination->IsDoubleStackSlot()) {
+      if (destination->IsFPStackSlot()) {
         MemOperand dst = g.ToMemOperand(destination);
         __ li(at, Operand(bit_cast<int32_t>(src.ToFloat32())));
         __ sw(at, dst);
@@ -2040,27 +2121,27 @@
       }
     } else {
       DCHECK_EQ(Constant::kFloat64, src.type());
-      DoubleRegister dst = destination->IsDoubleRegister()
+      DoubleRegister dst = destination->IsFPRegister()
                                ? g.ToDoubleRegister(destination)
                                : kScratchDoubleReg;
       __ Move(dst, src.ToFloat64());
-      if (destination->IsDoubleStackSlot()) {
+      if (destination->IsFPStackSlot()) {
         __ sdc1(dst, g.ToMemOperand(destination));
       }
     }
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     FPURegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       FPURegister dst = g.ToDoubleRegister(destination);
       __ Move(dst, src);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       __ sdc1(src, g.ToMemOperand(destination));
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       __ ldc1(g.ToDoubleRegister(destination), src);
     } else {
       FPURegister temp = kScratchDoubleReg;
@@ -2104,23 +2185,23 @@
     __ ld(temp_1, dst);
     __ sd(temp_0, dst);
     __ sd(temp_1, src);
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     FPURegister temp = kScratchDoubleReg;
     FPURegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       FPURegister dst = g.ToDoubleRegister(destination);
       __ Move(temp, src);
       __ Move(src, dst);
       __ Move(dst, temp);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       MemOperand dst = g.ToMemOperand(destination);
       __ Move(temp, src);
       __ ldc1(src, dst);
       __ sdc1(temp, dst);
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPStackSlot());
     Register temp_0 = kScratchReg;
     FPURegister temp_1 = kScratchDoubleReg;
     MemOperand src0 = g.ToMemOperand(source);
@@ -2146,13 +2227,6 @@
 }
 
 
-void CodeGenerator::AddNopForSmiCodeInlining() {
-  // Unused on 32-bit ARM. Still exists on 64-bit arm.
-  // TODO(plind): Unclear when this is called now. Understand, fix if needed.
-  __ nop();  // Maybe PROPERTY_ACCESS_INLINED?
-}
-
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/mips64/instruction-codes-mips64.h b/src/compiler/mips64/instruction-codes-mips64.h
index 9e94c09..6fd321e 100644
--- a/src/compiler/mips64/instruction-codes-mips64.h
+++ b/src/compiler/mips64/instruction-codes-mips64.h
@@ -36,6 +36,8 @@
   V(Mips64Nor)                      \
   V(Mips64Xor)                      \
   V(Mips64Clz)                      \
+  V(Mips64Lsa)                      \
+  V(Mips64Dlsa)                     \
   V(Mips64Shl)                      \
   V(Mips64Shr)                      \
   V(Mips64Sar)                      \
@@ -114,9 +116,10 @@
   V(Mips64Lh)                       \
   V(Mips64Lhu)                      \
   V(Mips64Sh)                       \
-  V(Mips64Ld)                       \
   V(Mips64Lw)                       \
+  V(Mips64Lwu)                      \
   V(Mips64Sw)                       \
+  V(Mips64Ld)                       \
   V(Mips64Sd)                       \
   V(Mips64Lwc1)                     \
   V(Mips64Swc1)                     \
diff --git a/src/compiler/mips64/instruction-selector-mips64.cc b/src/compiler/mips64/instruction-selector-mips64.cc
index 5e2b5f2..3516e76 100644
--- a/src/compiler/mips64/instruction-selector-mips64.cc
+++ b/src/compiler/mips64/instruction-selector-mips64.cc
@@ -158,7 +158,7 @@
       opcode = load_rep.IsUnsigned() ? kMips64Lhu : kMips64Lh;
       break;
     case MachineRepresentation::kWord32:
-      opcode = kMips64Lw;
+      opcode = load_rep.IsUnsigned() ? kMips64Lwu : kMips64Lw;
       break;
     case MachineRepresentation::kTagged:  // Fall through.
     case MachineRepresentation::kWord64:
@@ -611,14 +611,66 @@
 
 void InstructionSelector::VisitInt32Add(Node* node) {
   Mips64OperandGenerator g(this);
-  // TODO(plind): Consider multiply & add optimization from arm port.
+  Int32BinopMatcher m(node);
+
+  // Select Lsa for (left + (left_of_right << imm)).
+  if (m.right().opcode() == IrOpcode::kWord32Shl &&
+      CanCover(node, m.left().node()) && CanCover(node, m.right().node())) {
+    Int32BinopMatcher mright(m.right().node());
+    if (mright.right().HasValue()) {
+      int32_t shift_value = static_cast<int32_t>(mright.right().Value());
+      Emit(kMips64Lsa, g.DefineAsRegister(node), g.UseRegister(m.left().node()),
+           g.UseRegister(mright.left().node()), g.TempImmediate(shift_value));
+      return;
+    }
+  }
+
+  // Select Lsa for ((left_of_left << imm) + right).
+  if (m.left().opcode() == IrOpcode::kWord32Shl &&
+      CanCover(node, m.right().node()) && CanCover(node, m.left().node())) {
+    Int32BinopMatcher mleft(m.left().node());
+    if (mleft.right().HasValue()) {
+      int32_t shift_value = static_cast<int32_t>(mleft.right().Value());
+      Emit(kMips64Lsa, g.DefineAsRegister(node),
+           g.UseRegister(m.right().node()), g.UseRegister(mleft.left().node()),
+           g.TempImmediate(shift_value));
+      return;
+    }
+  }
   VisitBinop(this, node, kMips64Add);
 }
 
 
 void InstructionSelector::VisitInt64Add(Node* node) {
   Mips64OperandGenerator g(this);
-  // TODO(plind): Consider multiply & add optimization from arm port.
+  Int64BinopMatcher m(node);
+
+  // Select Dlsa for (left + (left_of_right << imm)).
+  if (m.right().opcode() == IrOpcode::kWord64Shl &&
+      CanCover(node, m.left().node()) && CanCover(node, m.right().node())) {
+    Int64BinopMatcher mright(m.right().node());
+    if (mright.right().HasValue()) {
+      int32_t shift_value = static_cast<int32_t>(mright.right().Value());
+      Emit(kMips64Dlsa, g.DefineAsRegister(node),
+           g.UseRegister(m.left().node()), g.UseRegister(mright.left().node()),
+           g.TempImmediate(shift_value));
+      return;
+    }
+  }
+
+  // Select Dlsa for ((left_of_left << imm) + right).
+  if (m.left().opcode() == IrOpcode::kWord64Shl &&
+      CanCover(node, m.right().node()) && CanCover(node, m.left().node())) {
+    Int64BinopMatcher mleft(m.left().node());
+    if (mleft.right().HasValue()) {
+      int32_t shift_value = static_cast<int32_t>(mleft.right().Value());
+      Emit(kMips64Dlsa, g.DefineAsRegister(node),
+           g.UseRegister(m.right().node()), g.UseRegister(mleft.left().node()),
+           g.TempImmediate(shift_value));
+      return;
+    }
+  }
+
   VisitBinop(this, node, kMips64Dadd);
 }
 
@@ -645,12 +697,9 @@
       return;
     }
     if (base::bits::IsPowerOfTwo32(value - 1)) {
-      InstructionOperand temp = g.TempRegister();
-      Emit(kMips64Shl | AddressingModeField::encode(kMode_None), temp,
+      Emit(kMips64Lsa, g.DefineAsRegister(node), g.UseRegister(m.left().node()),
            g.UseRegister(m.left().node()),
            g.TempImmediate(WhichPowerOf2(value - 1)));
-      Emit(kMips64Add | AddressingModeField::encode(kMode_None),
-           g.DefineAsRegister(node), g.UseRegister(m.left().node()), temp);
       return;
     }
     if (base::bits::IsPowerOfTwo32(value + 1)) {
@@ -705,12 +754,10 @@
       return;
     }
     if (base::bits::IsPowerOfTwo32(value - 1)) {
-      InstructionOperand temp = g.TempRegister();
-      Emit(kMips64Dshl | AddressingModeField::encode(kMode_None), temp,
-           g.UseRegister(m.left().node()),
+      // Dlsa macro will handle the shifting value out of bound cases.
+      Emit(kMips64Dlsa, g.DefineAsRegister(node),
+           g.UseRegister(m.left().node()), g.UseRegister(m.left().node()),
            g.TempImmediate(WhichPowerOf2(value - 1)));
-      Emit(kMips64Dadd | AddressingModeField::encode(kMode_None),
-           g.DefineAsRegister(node), g.UseRegister(m.left().node()), temp);
       return;
     }
     if (base::bits::IsPowerOfTwo32(value + 1)) {
@@ -1047,17 +1094,13 @@
   VisitRR(this, kMips64CvtSD, node);
 }
 
-
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      return VisitRR(this, kArchTruncateDoubleToI, node);
-    case TruncationMode::kRoundToZero:
-      return VisitRR(this, kMips64TruncWD, node);
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
+  VisitRR(this, kArchTruncateDoubleToI, node);
 }
 
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  VisitRR(this, kMips64TruncWD, node);
+}
 
 void InstructionSelector::VisitRoundInt64ToFloat32(Node* node) {
   VisitRR(this, kMips64CvtSL, node);
@@ -1116,6 +1159,9 @@
   VisitRRR(this, kMips64SubS, node);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  VisitRRR(this, kMips64SubS, node);
+}
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
   Mips64OperandGenerator g(this);
@@ -1135,6 +1181,9 @@
   VisitRRR(this, kMips64SubD, node);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  VisitRRR(this, kMips64SubD, node);
+}
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   VisitRRR(this, kMips64MulS, node);
@@ -1916,6 +1965,73 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  Mips64OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  ArchOpcode opcode = kArchNop;
+  switch (load_rep.representation()) {
+    case MachineRepresentation::kWord8:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt8 : kAtomicLoadUint8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt16 : kAtomicLoadUint16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicLoadWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+  if (g.CanBeImmediate(index, opcode)) {
+    Emit(opcode | AddressingModeField::encode(kMode_MRI),
+         g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(index));
+  } else {
+    InstructionOperand addr_reg = g.TempRegister();
+    Emit(kMips64Dadd | AddressingModeField::encode(kMode_None), addr_reg,
+         g.UseRegister(index), g.UseRegister(base));
+    // Emit desired load opcode, using temp addr_reg.
+    Emit(opcode | AddressingModeField::encode(kMode_MRI),
+         g.DefineAsRegister(node), addr_reg, g.TempImmediate(0));
+  }
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  Mips64OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kAtomicStoreWord8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kAtomicStoreWord16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicStoreWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+
+  if (g.CanBeImmediate(index, opcode)) {
+    Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(),
+         g.UseRegister(base), g.UseImmediate(index), g.UseRegister(value));
+  } else {
+    InstructionOperand addr_reg = g.TempRegister();
+    Emit(kMips64Dadd | AddressingModeField::encode(kMode_None), addr_reg,
+         g.UseRegister(index), g.UseRegister(base));
+    // Emit desired store opcode, using temp addr_reg.
+    Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(),
+         addr_reg, g.TempImmediate(0), g.UseRegister(value));
+  }
+}
 
 // static
 MachineOperatorBuilder::Flags
diff --git a/src/compiler/node-matchers.h b/src/compiler/node-matchers.h
index 37d0e1a..6238be3 100644
--- a/src/compiler/node-matchers.h
+++ b/src/compiler/node-matchers.h
@@ -253,7 +253,8 @@
 typedef BinopMatcher<Float32Matcher, Float32Matcher> Float32BinopMatcher;
 typedef BinopMatcher<Float64Matcher, Float64Matcher> Float64BinopMatcher;
 typedef BinopMatcher<NumberMatcher, NumberMatcher> NumberBinopMatcher;
-
+typedef BinopMatcher<HeapObjectMatcher, HeapObjectMatcher>
+    HeapObjectBinopMatcher;
 
 template <class BinopMatcher, IrOpcode::Value kMulOpcode,
           IrOpcode::Value kShiftOpcode>
diff --git a/src/compiler/node-properties.cc b/src/compiler/node-properties.cc
index ac9cc34..2cf899b 100644
--- a/src/compiler/node-properties.cc
+++ b/src/compiler/node-properties.cc
@@ -158,8 +158,9 @@
 
 
 // static
-void NodeProperties::ReplaceControlInput(Node* node, Node* control) {
-  node->ReplaceInput(FirstControlIndex(node), control);
+void NodeProperties::ReplaceControlInput(Node* node, Node* control, int index) {
+  DCHECK(index < node->op()->ControlInputCount());
+  node->ReplaceInput(FirstControlIndex(node) + index, control);
 }
 
 
diff --git a/src/compiler/node-properties.h b/src/compiler/node-properties.h
index 58005a7..78ffd1d 100644
--- a/src/compiler/node-properties.h
+++ b/src/compiler/node-properties.h
@@ -81,7 +81,7 @@
 
   static void ReplaceValueInput(Node* node, Node* value, int index);
   static void ReplaceContextInput(Node* node, Node* context);
-  static void ReplaceControlInput(Node* node, Node* control);
+  static void ReplaceControlInput(Node* node, Node* control, int index = 0);
   static void ReplaceEffectInput(Node* node, Node* effect, int index = 0);
   static void ReplaceFrameStateInput(Node* node, int index, Node* frame_state);
   static void RemoveFrameStateInput(Node* node, int index);
diff --git a/src/compiler/opcodes.h b/src/compiler/opcodes.h
index b038d15..ce5087c 100644
--- a/src/compiler/opcodes.h
+++ b/src/compiler/opcodes.h
@@ -32,21 +32,22 @@
   V(End)
 
 // Opcodes for constant operators.
-#define CONSTANT_OP_LIST(V) \
-  V(Int32Constant)          \
-  V(Int64Constant)          \
-  V(Float32Constant)        \
-  V(Float64Constant)        \
-  V(ExternalConstant)       \
-  V(NumberConstant)         \
-  V(HeapConstant)
+#define CONSTANT_OP_LIST(V)   \
+  V(Int32Constant)            \
+  V(Int64Constant)            \
+  V(Float32Constant)          \
+  V(Float64Constant)          \
+  V(ExternalConstant)         \
+  V(NumberConstant)           \
+  V(HeapConstant)             \
+  V(RelocatableInt32Constant) \
+  V(RelocatableInt64Constant)
 
 #define INNER_OP_LIST(V) \
   V(Select)              \
   V(Phi)                 \
-  V(EffectSet)           \
   V(EffectPhi)           \
-  V(Guard)               \
+  V(CheckPoint)          \
   V(BeginRegion)         \
   V(FinishRegion)        \
   V(FrameState)          \
@@ -150,7 +151,6 @@
   V(JSForInStep)            \
   V(JSLoadMessage)          \
   V(JSStoreMessage)         \
-  V(JSYield)                \
   V(JSStackCheck)
 
 #define JS_OP_LIST(V)     \
@@ -194,16 +194,18 @@
   V(NumberToInt32)                 \
   V(NumberToUint32)                \
   V(NumberIsHoleNaN)               \
-  V(PlainPrimitiveToNumber)        \
   V(StringToNumber)                \
+  V(ChangeTaggedSignedToInt32)     \
   V(ChangeTaggedToInt32)           \
   V(ChangeTaggedToUint32)          \
   V(ChangeTaggedToFloat64)         \
+  V(ChangeInt31ToTaggedSigned)     \
   V(ChangeInt32ToTagged)           \
   V(ChangeUint32ToTagged)          \
   V(ChangeFloat64ToTagged)         \
-  V(ChangeBoolToBit)               \
-  V(ChangeBitToBool)               \
+  V(ChangeTaggedToBit)             \
+  V(ChangeBitToTagged)             \
+  V(TruncateTaggedToWord32)        \
   V(Allocate)                      \
   V(LoadField)                     \
   V(LoadBuffer)                    \
@@ -211,10 +213,13 @@
   V(StoreField)                    \
   V(StoreBuffer)                   \
   V(StoreElement)                  \
+  V(ObjectIsCallable)              \
   V(ObjectIsNumber)                \
   V(ObjectIsReceiver)              \
   V(ObjectIsSmi)                   \
-  V(ObjectIsUndetectable)
+  V(ObjectIsString)                \
+  V(ObjectIsUndetectable)          \
+  V(TypeGuard)
 
 // Opcodes for Machine-level operators.
 #define MACHINE_COMPARE_BINOP_LIST(V) \
@@ -282,6 +287,8 @@
   V(Int64Mod)                   \
   V(Uint64Div)                  \
   V(Uint64Mod)                  \
+  V(BitcastWordToTagged)        \
+  V(TruncateFloat64ToWord32)    \
   V(ChangeFloat32ToFloat64)     \
   V(ChangeFloat64ToInt32)       \
   V(ChangeFloat64ToUint32)      \
@@ -297,8 +304,8 @@
   V(ChangeUint32ToFloat64)      \
   V(ChangeUint32ToUint64)       \
   V(TruncateFloat64ToFloat32)   \
-  V(TruncateFloat64ToInt32)     \
   V(TruncateInt64ToInt32)       \
+  V(RoundFloat64ToInt32)        \
   V(RoundInt32ToFloat32)        \
   V(RoundInt64ToFloat32)        \
   V(RoundInt64ToFloat64)        \
@@ -311,6 +318,7 @@
   V(BitcastInt64ToFloat64)      \
   V(Float32Add)                 \
   V(Float32Sub)                 \
+  V(Float32SubPreserveNan)      \
   V(Float32Mul)                 \
   V(Float32Div)                 \
   V(Float32Max)                 \
@@ -320,6 +328,7 @@
   V(Float32RoundDown)           \
   V(Float64Add)                 \
   V(Float64Sub)                 \
+  V(Float64SubPreserveNan)      \
   V(Float64Mul)                 \
   V(Float64Div)                 \
   V(Float64Mod)                 \
@@ -349,12 +358,198 @@
   V(Int32PairMul)               \
   V(Word32PairShl)              \
   V(Word32PairShr)              \
-  V(Word32PairSar)
+  V(Word32PairSar)              \
+  V(AtomicLoad)                 \
+  V(AtomicStore)
 
-#define VALUE_OP_LIST(V) \
-  COMMON_OP_LIST(V)      \
-  SIMPLIFIED_OP_LIST(V)  \
-  MACHINE_OP_LIST(V)     \
+#define MACHINE_SIMD_RETURN_SIMD_OP_LIST(V) \
+  V(CreateFloat32x4)                        \
+  V(Float32x4ReplaceLane)                   \
+  V(Float32x4Abs)                           \
+  V(Float32x4Neg)                           \
+  V(Float32x4Sqrt)                          \
+  V(Float32x4RecipApprox)                   \
+  V(Float32x4RecipSqrtApprox)               \
+  V(Float32x4Add)                           \
+  V(Float32x4Sub)                           \
+  V(Float32x4Mul)                           \
+  V(Float32x4Div)                           \
+  V(Float32x4Min)                           \
+  V(Float32x4Max)                           \
+  V(Float32x4MinNum)                        \
+  V(Float32x4MaxNum)                        \
+  V(Float32x4Equal)                         \
+  V(Float32x4NotEqual)                      \
+  V(Float32x4LessThan)                      \
+  V(Float32x4LessThanOrEqual)               \
+  V(Float32x4GreaterThan)                   \
+  V(Float32x4GreaterThanOrEqual)            \
+  V(Float32x4Select)                        \
+  V(Float32x4Swizzle)                       \
+  V(Float32x4Shuffle)                       \
+  V(Float32x4FromInt32x4)                   \
+  V(Float32x4FromUint32x4)                  \
+  V(CreateInt32x4)                          \
+  V(Int32x4ReplaceLane)                     \
+  V(Int32x4Neg)                             \
+  V(Int32x4Add)                             \
+  V(Int32x4Sub)                             \
+  V(Int32x4Mul)                             \
+  V(Int32x4Min)                             \
+  V(Int32x4Max)                             \
+  V(Int32x4ShiftLeftByScalar)               \
+  V(Int32x4ShiftRightByScalar)              \
+  V(Int32x4Equal)                           \
+  V(Int32x4NotEqual)                        \
+  V(Int32x4LessThan)                        \
+  V(Int32x4LessThanOrEqual)                 \
+  V(Int32x4GreaterThan)                     \
+  V(Int32x4GreaterThanOrEqual)              \
+  V(Int32x4Select)                          \
+  V(Int32x4Swizzle)                         \
+  V(Int32x4Shuffle)                         \
+  V(Int32x4FromFloat32x4)                   \
+  V(Uint32x4Min)                            \
+  V(Uint32x4Max)                            \
+  V(Uint32x4ShiftLeftByScalar)              \
+  V(Uint32x4ShiftRightByScalar)             \
+  V(Uint32x4LessThan)                       \
+  V(Uint32x4LessThanOrEqual)                \
+  V(Uint32x4GreaterThan)                    \
+  V(Uint32x4GreaterThanOrEqual)             \
+  V(Uint32x4FromFloat32x4)                  \
+  V(CreateBool32x4)                         \
+  V(Bool32x4ReplaceLane)                    \
+  V(Bool32x4And)                            \
+  V(Bool32x4Or)                             \
+  V(Bool32x4Xor)                            \
+  V(Bool32x4Not)                            \
+  V(Bool32x4Swizzle)                        \
+  V(Bool32x4Shuffle)                        \
+  V(Bool32x4Equal)                          \
+  V(Bool32x4NotEqual)                       \
+  V(CreateInt16x8)                          \
+  V(Int16x8ReplaceLane)                     \
+  V(Int16x8Neg)                             \
+  V(Int16x8Add)                             \
+  V(Int16x8AddSaturate)                     \
+  V(Int16x8Sub)                             \
+  V(Int16x8SubSaturate)                     \
+  V(Int16x8Mul)                             \
+  V(Int16x8Min)                             \
+  V(Int16x8Max)                             \
+  V(Int16x8ShiftLeftByScalar)               \
+  V(Int16x8ShiftRightByScalar)              \
+  V(Int16x8Equal)                           \
+  V(Int16x8NotEqual)                        \
+  V(Int16x8LessThan)                        \
+  V(Int16x8LessThanOrEqual)                 \
+  V(Int16x8GreaterThan)                     \
+  V(Int16x8GreaterThanOrEqual)              \
+  V(Int16x8Select)                          \
+  V(Int16x8Swizzle)                         \
+  V(Int16x8Shuffle)                         \
+  V(Uint16x8AddSaturate)                    \
+  V(Uint16x8SubSaturate)                    \
+  V(Uint16x8Min)                            \
+  V(Uint16x8Max)                            \
+  V(Uint16x8ShiftLeftByScalar)              \
+  V(Uint16x8ShiftRightByScalar)             \
+  V(Uint16x8LessThan)                       \
+  V(Uint16x8LessThanOrEqual)                \
+  V(Uint16x8GreaterThan)                    \
+  V(Uint16x8GreaterThanOrEqual)             \
+  V(CreateBool16x8)                         \
+  V(Bool16x8ReplaceLane)                    \
+  V(Bool16x8And)                            \
+  V(Bool16x8Or)                             \
+  V(Bool16x8Xor)                            \
+  V(Bool16x8Not)                            \
+  V(Bool16x8Swizzle)                        \
+  V(Bool16x8Shuffle)                        \
+  V(Bool16x8Equal)                          \
+  V(Bool16x8NotEqual)                       \
+  V(CreateInt8x16)                          \
+  V(Int8x16ReplaceLane)                     \
+  V(Int8x16Neg)                             \
+  V(Int8x16Add)                             \
+  V(Int8x16AddSaturate)                     \
+  V(Int8x16Sub)                             \
+  V(Int8x16SubSaturate)                     \
+  V(Int8x16Mul)                             \
+  V(Int8x16Min)                             \
+  V(Int8x16Max)                             \
+  V(Int8x16ShiftLeftByScalar)               \
+  V(Int8x16ShiftRightByScalar)              \
+  V(Int8x16Equal)                           \
+  V(Int8x16NotEqual)                        \
+  V(Int8x16LessThan)                        \
+  V(Int8x16LessThanOrEqual)                 \
+  V(Int8x16GreaterThan)                     \
+  V(Int8x16GreaterThanOrEqual)              \
+  V(Int8x16Select)                          \
+  V(Int8x16Swizzle)                         \
+  V(Int8x16Shuffle)                         \
+  V(Uint8x16AddSaturate)                    \
+  V(Uint8x16SubSaturate)                    \
+  V(Uint8x16Min)                            \
+  V(Uint8x16Max)                            \
+  V(Uint8x16ShiftLeftByScalar)              \
+  V(Uint8x16ShiftRightByScalar)             \
+  V(Uint8x16LessThan)                       \
+  V(Uint8x16LessThanOrEqual)                \
+  V(Uint8x16GreaterThan)                    \
+  V(Uint8x16GreaterThanOrEqual)             \
+  V(CreateBool8x16)                         \
+  V(Bool8x16ReplaceLane)                    \
+  V(Bool8x16And)                            \
+  V(Bool8x16Or)                             \
+  V(Bool8x16Xor)                            \
+  V(Bool8x16Not)                            \
+  V(Bool8x16Swizzle)                        \
+  V(Bool8x16Shuffle)                        \
+  V(Bool8x16Equal)                          \
+  V(Bool8x16NotEqual)                       \
+  V(Simd128Load)                            \
+  V(Simd128Load1)                           \
+  V(Simd128Load2)                           \
+  V(Simd128Load3)                           \
+  V(Simd128Store)                           \
+  V(Simd128Store1)                          \
+  V(Simd128Store2)                          \
+  V(Simd128Store3)                          \
+  V(Simd128And)                             \
+  V(Simd128Or)                              \
+  V(Simd128Xor)                             \
+  V(Simd128Not)
+
+#define MACHINE_SIMD_RETURN_NUM_OP_LIST(V) \
+  V(Float32x4ExtractLane)                  \
+  V(Int32x4ExtractLane)                    \
+  V(Int16x8ExtractLane)                    \
+  V(Int8x16ExtractLane)
+
+#define MACHINE_SIMD_RETURN_BOOL_OP_LIST(V) \
+  V(Bool32x4ExtractLane)                    \
+  V(Bool32x4AnyTrue)                        \
+  V(Bool32x4AllTrue)                        \
+  V(Bool16x8ExtractLane)                    \
+  V(Bool16x8AnyTrue)                        \
+  V(Bool16x8AllTrue)                        \
+  V(Bool8x16ExtractLane)                    \
+  V(Bool8x16AnyTrue)                        \
+  V(Bool8x16AllTrue)
+
+#define MACHINE_SIMD_OP_LIST(V)       \
+  MACHINE_SIMD_RETURN_SIMD_OP_LIST(V) \
+  MACHINE_SIMD_RETURN_NUM_OP_LIST(V)  \
+  MACHINE_SIMD_RETURN_BOOL_OP_LIST(V)
+
+#define VALUE_OP_LIST(V)  \
+  COMMON_OP_LIST(V)       \
+  SIMPLIFIED_OP_LIST(V)   \
+  MACHINE_OP_LIST(V)      \
+  MACHINE_SIMD_OP_LIST(V) \
   JS_OP_LIST(V)
 
 // The combination of all operators at all levels and the common operators.
@@ -400,7 +595,7 @@
 
   // Returns true if opcode for constant operator.
   static bool IsConstantOpcode(Value value) {
-    return kInt32Constant <= value && value <= kHeapConstant;
+    return kInt32Constant <= value && value <= kRelocatableInt64Constant;
   }
 
   static bool IsPhiOpcode(Value value) {
diff --git a/src/compiler/pipeline-statistics.h b/src/compiler/pipeline-statistics.h
index 2b6563d..c52c61c 100644
--- a/src/compiler/pipeline-statistics.h
+++ b/src/compiler/pipeline-statistics.h
@@ -7,6 +7,8 @@
 
 #include <string>
 
+#include "src/base/platform/elapsed-timer.h"
+#include "src/base/smart-pointers.h"
 #include "src/compilation-statistics.h"
 #include "src/compiler/zone-pool.h"
 
@@ -22,6 +24,7 @@
   ~PipelineStatistics();
 
   void BeginPhaseKind(const char* phase_kind_name);
+  void EndPhaseKind();
 
  private:
   size_t OuterZoneSize() {
@@ -43,7 +46,6 @@
   };
 
   bool InPhaseKind() { return !phase_kind_stats_.scope_.is_empty(); }
-  void EndPhaseKind();
 
   friend class PhaseScope;
   bool InPhase() { return !phase_stats_.scope_.is_empty(); }
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
index 1d7e967..82583e9 100644
--- a/src/compiler/pipeline.cc
+++ b/src/compiler/pipeline.cc
@@ -14,20 +14,20 @@
 #include "src/compiler/basic-block-instrumentor.h"
 #include "src/compiler/branch-elimination.h"
 #include "src/compiler/bytecode-graph-builder.h"
-#include "src/compiler/change-lowering.h"
 #include "src/compiler/code-generator.h"
 #include "src/compiler/common-operator-reducer.h"
 #include "src/compiler/control-flow-optimizer.h"
 #include "src/compiler/dead-code-elimination.h"
-#include "src/compiler/escape-analysis.h"
+#include "src/compiler/effect-control-linearizer.h"
 #include "src/compiler/escape-analysis-reducer.h"
+#include "src/compiler/escape-analysis.h"
 #include "src/compiler/frame-elider.h"
 #include "src/compiler/graph-replay.h"
 #include "src/compiler/graph-trimmer.h"
 #include "src/compiler/graph-visualizer.h"
 #include "src/compiler/greedy-allocator.h"
-#include "src/compiler/instruction.h"
 #include "src/compiler/instruction-selector.h"
+#include "src/compiler/instruction.h"
 #include "src/compiler/js-builtin-reducer.h"
 #include "src/compiler/js-call-reducer.h"
 #include "src/compiler/js-context-specialization.h"
@@ -45,24 +45,27 @@
 #include "src/compiler/loop-analysis.h"
 #include "src/compiler/loop-peeling.h"
 #include "src/compiler/machine-operator-reducer.h"
+#include "src/compiler/memory-optimizer.h"
 #include "src/compiler/move-optimizer.h"
 #include "src/compiler/osr.h"
 #include "src/compiler/pipeline-statistics.h"
-#include "src/compiler/register-allocator.h"
 #include "src/compiler/register-allocator-verifier.h"
+#include "src/compiler/register-allocator.h"
 #include "src/compiler/schedule.h"
 #include "src/compiler/scheduler.h"
 #include "src/compiler/select-lowering.h"
 #include "src/compiler/simplified-lowering.h"
-#include "src/compiler/simplified-operator.h"
 #include "src/compiler/simplified-operator-reducer.h"
+#include "src/compiler/simplified-operator.h"
 #include "src/compiler/tail-call-optimization.h"
 #include "src/compiler/type-hint-analyzer.h"
 #include "src/compiler/typer.h"
 #include "src/compiler/value-numbering-reducer.h"
 #include "src/compiler/verifier.h"
 #include "src/compiler/zone-pool.h"
+#include "src/isolate-inl.h"
 #include "src/ostreams.h"
+#include "src/parsing/parser.h"
 #include "src/register-configuration.h"
 #include "src/type-info.h"
 #include "src/utils.h"
@@ -78,31 +81,19 @@
                PipelineStatistics* pipeline_statistics)
       : isolate_(info->isolate()),
         info_(info),
+        debug_name_(info_->GetDebugName()),
         outer_zone_(info_->zone()),
         zone_pool_(zone_pool),
         pipeline_statistics_(pipeline_statistics),
-        compilation_failed_(false),
-        code_(Handle<Code>::null()),
         graph_zone_scope_(zone_pool_),
         graph_zone_(graph_zone_scope_.zone()),
-        graph_(nullptr),
-        loop_assignment_(nullptr),
-        simplified_(nullptr),
-        machine_(nullptr),
-        common_(nullptr),
-        javascript_(nullptr),
-        jsgraph_(nullptr),
-        schedule_(nullptr),
         instruction_zone_scope_(zone_pool_),
         instruction_zone_(instruction_zone_scope_.zone()),
-        sequence_(nullptr),
-        frame_(nullptr),
         register_allocation_zone_scope_(zone_pool_),
-        register_allocation_zone_(register_allocation_zone_scope_.zone()),
-        register_allocation_data_(nullptr) {
+        register_allocation_zone_(register_allocation_zone_scope_.zone()) {
     PhaseScope scope(pipeline_statistics, "init pipeline data");
     graph_ = new (graph_zone_) Graph(graph_zone_);
-    source_positions_.Reset(new SourcePositionTable(graph_));
+    source_positions_ = new (graph_zone_) SourcePositionTable(graph_);
     simplified_ = new (graph_zone_) SimplifiedOperatorBuilder(graph_zone_);
     machine_ = new (graph_zone_) MachineOperatorBuilder(
         graph_zone_, MachineType::PointerRepresentation(),
@@ -113,62 +104,50 @@
         JSGraph(isolate_, graph_, common_, javascript_, simplified_, machine_);
   }
 
+  // For WASM compile entry point.
+  PipelineData(ZonePool* zone_pool, CompilationInfo* info, Graph* graph,
+               SourcePositionTable* source_positions)
+      : isolate_(info->isolate()),
+        info_(info),
+        debug_name_(info_->GetDebugName()),
+        zone_pool_(zone_pool),
+        graph_zone_scope_(zone_pool_),
+        graph_(graph),
+        source_positions_(source_positions),
+        instruction_zone_scope_(zone_pool_),
+        instruction_zone_(instruction_zone_scope_.zone()),
+        register_allocation_zone_scope_(zone_pool_),
+        register_allocation_zone_(register_allocation_zone_scope_.zone()) {}
+
   // For machine graph testing entry point.
   PipelineData(ZonePool* zone_pool, CompilationInfo* info, Graph* graph,
                Schedule* schedule)
       : isolate_(info->isolate()),
         info_(info),
-        outer_zone_(nullptr),
+        debug_name_(info_->GetDebugName()),
         zone_pool_(zone_pool),
-        pipeline_statistics_(nullptr),
-        compilation_failed_(false),
-        code_(Handle<Code>::null()),
         graph_zone_scope_(zone_pool_),
-        graph_zone_(nullptr),
         graph_(graph),
-        source_positions_(new SourcePositionTable(graph_)),
-        loop_assignment_(nullptr),
-        simplified_(nullptr),
-        machine_(nullptr),
-        common_(nullptr),
-        javascript_(nullptr),
-        jsgraph_(nullptr),
+        source_positions_(new (info->zone()) SourcePositionTable(graph_)),
         schedule_(schedule),
         instruction_zone_scope_(zone_pool_),
         instruction_zone_(instruction_zone_scope_.zone()),
-        sequence_(nullptr),
-        frame_(nullptr),
         register_allocation_zone_scope_(zone_pool_),
-        register_allocation_zone_(register_allocation_zone_scope_.zone()),
-        register_allocation_data_(nullptr) {}
+        register_allocation_zone_(register_allocation_zone_scope_.zone()) {}
 
   // For register allocation testing entry point.
   PipelineData(ZonePool* zone_pool, CompilationInfo* info,
                InstructionSequence* sequence)
       : isolate_(info->isolate()),
         info_(info),
-        outer_zone_(nullptr),
+        debug_name_(info_->GetDebugName()),
         zone_pool_(zone_pool),
-        pipeline_statistics_(nullptr),
-        compilation_failed_(false),
-        code_(Handle<Code>::null()),
         graph_zone_scope_(zone_pool_),
-        graph_zone_(nullptr),
-        graph_(nullptr),
-        loop_assignment_(nullptr),
-        simplified_(nullptr),
-        machine_(nullptr),
-        common_(nullptr),
-        javascript_(nullptr),
-        jsgraph_(nullptr),
-        schedule_(nullptr),
         instruction_zone_scope_(zone_pool_),
         instruction_zone_(sequence->zone()),
         sequence_(sequence),
-        frame_(nullptr),
         register_allocation_zone_scope_(zone_pool_),
-        register_allocation_zone_(register_allocation_zone_scope_.zone()),
-        register_allocation_data_(nullptr) {}
+        register_allocation_zone_(register_allocation_zone_scope_.zone()) {}
 
   ~PipelineData() {
     DeleteRegisterAllocationZone();
@@ -193,9 +172,7 @@
 
   Zone* graph_zone() const { return graph_zone_; }
   Graph* graph() const { return graph_; }
-  SourcePositionTable* source_positions() const {
-    return source_positions_.get();
-  }
+  SourcePositionTable* source_positions() const { return source_positions_; }
   MachineOperatorBuilder* machine() const { return machine_; }
   CommonOperatorBuilder* common() const { return common_; }
   JSOperatorBuilder* javascript() const { return javascript_; }
@@ -224,6 +201,7 @@
     DCHECK(!schedule_);
     schedule_ = schedule;
   }
+  void reset_schedule() { schedule_ = nullptr; }
 
   Zone* instruction_zone() const { return instruction_zone_; }
   InstructionSequence* sequence() const { return sequence_; }
@@ -234,14 +212,24 @@
     return register_allocation_data_;
   }
 
+  BasicBlockProfiler::Data* profiler_data() const { return profiler_data_; }
+  void set_profiler_data(BasicBlockProfiler::Data* profiler_data) {
+    profiler_data_ = profiler_data;
+  }
+
+  std::string const& source_position_output() const {
+    return source_position_output_;
+  }
+  void set_source_position_output(std::string const& source_position_output) {
+    source_position_output_ = source_position_output;
+  }
+
   void DeleteGraphZone() {
-    // Destroy objects with destructors first.
-    source_positions_.Reset(nullptr);
     if (graph_zone_ == nullptr) return;
-    // Destroy zone and clear pointers.
     graph_zone_scope_.Destroy();
     graph_zone_ = nullptr;
     graph_ = nullptr;
+    source_positions_ = nullptr;
     loop_assignment_ = nullptr;
     type_hint_analysis_ = nullptr;
     simplified_ = nullptr;
@@ -288,42 +276,53 @@
     if (descriptor != nullptr) {
       fixed_frame_size = CalculateFixedFrameSize(descriptor);
     }
-    frame_ = new (instruction_zone()) Frame(fixed_frame_size, descriptor);
+    frame_ = new (instruction_zone()) Frame(fixed_frame_size);
   }
 
   void InitializeRegisterAllocationData(const RegisterConfiguration* config,
-                                        CallDescriptor* descriptor,
-                                        const char* debug_name) {
+                                        CallDescriptor* descriptor) {
     DCHECK(register_allocation_data_ == nullptr);
     register_allocation_data_ = new (register_allocation_zone())
         RegisterAllocationData(config, register_allocation_zone(), frame(),
-                               sequence(), debug_name);
+                               sequence(), debug_name_.get());
+  }
+
+  void BeginPhaseKind(const char* phase_kind_name) {
+    if (pipeline_statistics() != nullptr) {
+      pipeline_statistics()->BeginPhaseKind(phase_kind_name);
+    }
+  }
+
+  void EndPhaseKind() {
+    if (pipeline_statistics() != nullptr) {
+      pipeline_statistics()->EndPhaseKind();
+    }
   }
 
  private:
-  Isolate* isolate_;
-  CompilationInfo* info_;
-  Zone* outer_zone_;
+  Isolate* const isolate_;
+  CompilationInfo* const info_;
+  base::SmartArrayPointer<char> debug_name_;
+  Zone* outer_zone_ = nullptr;
   ZonePool* const zone_pool_;
-  PipelineStatistics* pipeline_statistics_;
-  bool compilation_failed_;
-  Handle<Code> code_;
+  PipelineStatistics* pipeline_statistics_ = nullptr;
+  bool compilation_failed_ = false;
+  Handle<Code> code_ = Handle<Code>::null();
 
   // All objects in the following group of fields are allocated in graph_zone_.
   // They are all set to nullptr when the graph_zone_ is destroyed.
   ZonePool::Scope graph_zone_scope_;
-  Zone* graph_zone_;
-  Graph* graph_;
-  // TODO(dcarney): make this into a ZoneObject.
-  base::SmartPointer<SourcePositionTable> source_positions_;
-  LoopAssignmentAnalysis* loop_assignment_;
+  Zone* graph_zone_ = nullptr;
+  Graph* graph_ = nullptr;
+  SourcePositionTable* source_positions_ = nullptr;
+  LoopAssignmentAnalysis* loop_assignment_ = nullptr;
   TypeHintAnalysis* type_hint_analysis_ = nullptr;
-  SimplifiedOperatorBuilder* simplified_;
-  MachineOperatorBuilder* machine_;
-  CommonOperatorBuilder* common_;
-  JSOperatorBuilder* javascript_;
-  JSGraph* jsgraph_;
-  Schedule* schedule_;
+  SimplifiedOperatorBuilder* simplified_ = nullptr;
+  MachineOperatorBuilder* machine_ = nullptr;
+  CommonOperatorBuilder* common_ = nullptr;
+  JSOperatorBuilder* javascript_ = nullptr;
+  JSGraph* jsgraph_ = nullptr;
+  Schedule* schedule_ = nullptr;
 
   // All objects in the following group of fields are allocated in
   // instruction_zone_.  They are all set to nullptr when the instruction_zone_
@@ -331,15 +330,21 @@
   // destroyed.
   ZonePool::Scope instruction_zone_scope_;
   Zone* instruction_zone_;
-  InstructionSequence* sequence_;
-  Frame* frame_;
+  InstructionSequence* sequence_ = nullptr;
+  Frame* frame_ = nullptr;
 
   // All objects in the following group of fields are allocated in
   // register_allocation_zone_.  They are all set to nullptr when the zone is
   // destroyed.
   ZonePool::Scope register_allocation_zone_scope_;
   Zone* register_allocation_zone_;
-  RegisterAllocationData* register_allocation_data_;
+  RegisterAllocationData* register_allocation_data_ = nullptr;
+
+  // Basic block profiling support.
+  BasicBlockProfiler::Data* profiler_data_ = nullptr;
+
+  // Source position output for --trace-turbo.
+  std::string source_position_output_;
 
   int CalculateFixedFrameSize(CallDescriptor* descriptor) {
     if (descriptor->IsJSFunctionCall()) {
@@ -354,6 +359,38 @@
   DISALLOW_COPY_AND_ASSIGN(PipelineData);
 };
 
+class PipelineImpl final {
+ public:
+  explicit PipelineImpl(PipelineData* data) : data_(data) {}
+
+  // Helpers for executing pipeline phases.
+  template <typename Phase>
+  void Run();
+  template <typename Phase, typename Arg0>
+  void Run(Arg0 arg_0);
+  template <typename Phase, typename Arg0, typename Arg1>
+  void Run(Arg0 arg_0, Arg1 arg_1);
+
+  // Run the graph creation and initial optimization passes.
+  bool CreateGraph();
+
+  // Run the concurrent optimization passes.
+  bool OptimizeGraph(Linkage* linkage);
+
+  // Perform the actual code generation and return handle to a code object.
+  Handle<Code> GenerateCode(Linkage* linkage);
+
+  bool ScheduleAndSelectInstructions(Linkage* linkage);
+  void RunPrintAndVerify(const char* phase, bool untyped = false);
+  Handle<Code> ScheduleAndGenerateCode(CallDescriptor* call_descriptor);
+  void AllocateRegisters(const RegisterConfiguration* config,
+                         CallDescriptor* descriptor, bool run_verifier);
+
+  CompilationInfo* info() const;
+  Isolate* isolate() const;
+
+  PipelineData* const data_;
+};
 
 namespace {
 
@@ -363,26 +400,30 @@
                       std::ios_base::app) {}
 };
 
+struct TurboJsonFile : public std::ofstream {
+  TurboJsonFile(CompilationInfo* info, std::ios_base::openmode mode)
+      : std::ofstream(GetVisualizerLogFileName(info, nullptr, "json").get(),
+                      mode) {}
+};
 
 void TraceSchedule(CompilationInfo* info, Schedule* schedule) {
   if (FLAG_trace_turbo) {
-    FILE* json_file = OpenVisualizerLogFile(info, nullptr, "json", "a+");
-    if (json_file != nullptr) {
-      OFStream json_of(json_file);
-      json_of << "{\"name\":\"Schedule\",\"type\":\"schedule\",\"data\":\"";
-      std::stringstream schedule_stream;
-      schedule_stream << *schedule;
-      std::string schedule_string(schedule_stream.str());
-      for (const auto& c : schedule_string) {
-        json_of << AsEscapedUC16ForJSON(c);
-      }
-      json_of << "\"},\n";
-      fclose(json_file);
+    AllowHandleDereference allow_deref;
+    TurboJsonFile json_of(info, std::ios_base::app);
+    json_of << "{\"name\":\"Schedule\",\"type\":\"schedule\",\"data\":\"";
+    std::stringstream schedule_stream;
+    schedule_stream << *schedule;
+    std::string schedule_string(schedule_stream.str());
+    for (const auto& c : schedule_string) {
+      json_of << AsEscapedUC16ForJSON(c);
     }
+    json_of << "\"},\n";
   }
-  if (!FLAG_trace_turbo_graph && !FLAG_trace_turbo_scheduler) return;
-  OFStream os(stdout);
-  os << "-- Schedule --------------------------------------\n" << *schedule;
+  if (FLAG_trace_turbo_graph || FLAG_trace_turbo_scheduler) {
+    AllowHandleDereference allow_deref;
+    OFStream os(stdout);
+    os << "-- Schedule --------------------------------------\n" << *schedule;
+  }
 }
 
 
@@ -476,32 +517,199 @@
   ZonePool::Scope zone_scope_;
 };
 
+PipelineStatistics* CreatePipelineStatistics(CompilationInfo* info,
+                                             ZonePool* zone_pool) {
+  PipelineStatistics* pipeline_statistics = nullptr;
+
+  if (FLAG_turbo_stats) {
+    pipeline_statistics = new PipelineStatistics(info, zone_pool);
+    pipeline_statistics->BeginPhaseKind("initializing");
+  }
+
+  if (FLAG_trace_turbo) {
+    TurboJsonFile json_of(info, std::ios_base::trunc);
+    Handle<Script> script = info->script();
+    base::SmartArrayPointer<char> function_name = info->GetDebugName();
+    int pos = info->shared_info()->start_position();
+    json_of << "{\"function\":\"" << function_name.get()
+            << "\", \"sourcePosition\":" << pos << ", \"source\":\"";
+    if (!script->IsUndefined() && !script->source()->IsUndefined()) {
+      DisallowHeapAllocation no_allocation;
+      int start = info->shared_info()->start_position();
+      int len = info->shared_info()->end_position() - start;
+      String::SubStringRange source(String::cast(script->source()), start, len);
+      for (const auto& c : source) {
+        json_of << AsEscapedUC16ForJSON(c);
+      }
+    }
+    json_of << "\",\n\"phases\":[";
+  }
+
+  return pipeline_statistics;
+}
+
 }  // namespace
 
+class PipelineCompilationJob final : public CompilationJob {
+ public:
+  PipelineCompilationJob(Isolate* isolate, Handle<JSFunction> function)
+      // Note that the CompilationInfo is not initialized at the time we pass it
+      // to the CompilationJob constructor, but it is not dereferenced there.
+      : CompilationJob(&info_, "TurboFan"),
+        zone_(isolate->allocator()),
+        zone_pool_(isolate->allocator()),
+        parse_info_(&zone_, function),
+        info_(&parse_info_, function),
+        pipeline_statistics_(CreatePipelineStatistics(info(), &zone_pool_)),
+        data_(&zone_pool_, info(), pipeline_statistics_.get()),
+        pipeline_(&data_),
+        linkage_(nullptr) {}
+
+ protected:
+  Status CreateGraphImpl() final;
+  Status OptimizeGraphImpl() final;
+  Status GenerateCodeImpl() final;
+
+ private:
+  Zone zone_;
+  ZonePool zone_pool_;
+  ParseInfo parse_info_;
+  CompilationInfo info_;
+  base::SmartPointer<PipelineStatistics> pipeline_statistics_;
+  PipelineData data_;
+  PipelineImpl pipeline_;
+  Linkage* linkage_;
+};
+
+PipelineCompilationJob::Status PipelineCompilationJob::CreateGraphImpl() {
+  if (info()->shared_info()->asm_function()) {
+    if (info()->osr_frame()) info()->MarkAsFrameSpecializing();
+    info()->MarkAsFunctionContextSpecializing();
+  } else {
+    if (!FLAG_always_opt) {
+      info()->MarkAsBailoutOnUninitialized();
+    }
+    if (FLAG_native_context_specialization) {
+      info()->MarkAsNativeContextSpecializing();
+    }
+  }
+  if (!info()->shared_info()->asm_function() || FLAG_turbo_asm_deoptimization) {
+    info()->MarkAsDeoptimizationEnabled();
+  }
+  if (!info()->is_optimizing_from_bytecode()) {
+    if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED;
+  }
+
+  linkage_ = new (&zone_) Linkage(Linkage::ComputeIncoming(&zone_, info()));
+
+  if (!pipeline_.CreateGraph()) {
+    if (isolate()->has_pending_exception()) return FAILED;  // Stack overflowed.
+    return AbortOptimization(kGraphBuildingFailed);
+  }
+
+  return SUCCEEDED;
+}
+
+PipelineCompilationJob::Status PipelineCompilationJob::OptimizeGraphImpl() {
+  if (!pipeline_.OptimizeGraph(linkage_)) return FAILED;
+  return SUCCEEDED;
+}
+
+PipelineCompilationJob::Status PipelineCompilationJob::GenerateCodeImpl() {
+  Handle<Code> code = pipeline_.GenerateCode(linkage_);
+  if (code.is_null()) {
+    if (info()->bailout_reason() == kNoReason) {
+      return AbortOptimization(kCodeGenerationFailed);
+    }
+    return FAILED;
+  }
+  info()->dependencies()->Commit(code);
+  info()->SetCode(code);
+  if (info()->is_deoptimization_enabled()) {
+    info()->context()->native_context()->AddOptimizedCode(*code);
+    RegisterWeakObjectsInOptimizedCode(code);
+  }
+  return SUCCEEDED;
+}
+
+class PipelineWasmCompilationJob final : public CompilationJob {
+ public:
+  explicit PipelineWasmCompilationJob(CompilationInfo* info, Graph* graph,
+                                      CallDescriptor* descriptor,
+                                      SourcePositionTable* source_positions)
+      : CompilationJob(info, "TurboFan"),
+        zone_pool_(info->isolate()->allocator()),
+        data_(&zone_pool_, info, graph, source_positions),
+        pipeline_(&data_),
+        linkage_(descriptor) {}
+
+ protected:
+  Status CreateGraphImpl() final;
+  Status OptimizeGraphImpl() final;
+  Status GenerateCodeImpl() final;
+
+ private:
+  ZonePool zone_pool_;
+  PipelineData data_;
+  PipelineImpl pipeline_;
+  Linkage linkage_;
+};
+
+PipelineWasmCompilationJob::Status
+PipelineWasmCompilationJob::CreateGraphImpl() {
+  return SUCCEEDED;
+}
+
+PipelineWasmCompilationJob::Status
+PipelineWasmCompilationJob::OptimizeGraphImpl() {
+  if (FLAG_trace_turbo) {
+    TurboJsonFile json_of(info(), std::ios_base::trunc);
+    json_of << "{\"function\":\"" << info()->GetDebugName().get()
+            << "\", \"source\":\"\",\n\"phases\":[";
+  }
+
+  pipeline_.RunPrintAndVerify("Machine", true);
+
+  if (!pipeline_.ScheduleAndSelectInstructions(&linkage_)) return FAILED;
+  return SUCCEEDED;
+}
+
+PipelineWasmCompilationJob::Status
+PipelineWasmCompilationJob::GenerateCodeImpl() {
+  pipeline_.GenerateCode(&linkage_);
+  return SUCCEEDED;
+}
 
 template <typename Phase>
-void Pipeline::Run() {
+void PipelineImpl::Run() {
   PipelineRunScope scope(this->data_, Phase::phase_name());
   Phase phase;
   phase.Run(this->data_, scope.zone());
 }
 
-
 template <typename Phase, typename Arg0>
-void Pipeline::Run(Arg0 arg_0) {
+void PipelineImpl::Run(Arg0 arg_0) {
   PipelineRunScope scope(this->data_, Phase::phase_name());
   Phase phase;
   phase.Run(this->data_, scope.zone(), arg_0);
 }
 
+template <typename Phase, typename Arg0, typename Arg1>
+void PipelineImpl::Run(Arg0 arg_0, Arg1 arg_1) {
+  PipelineRunScope scope(this->data_, Phase::phase_name());
+  Phase phase;
+  phase.Run(this->data_, scope.zone(), arg_0, arg_1);
+}
 
 struct LoopAssignmentAnalysisPhase {
   static const char* phase_name() { return "loop assignment analysis"; }
 
   void Run(PipelineData* data, Zone* temp_zone) {
-    AstLoopAssignmentAnalyzer analyzer(data->graph_zone(), data->info());
-    LoopAssignmentAnalysis* loop_assignment = analyzer.Analyze();
-    data->set_loop_assignment(loop_assignment);
+    if (!data->info()->is_optimizing_from_bytecode()) {
+      AstLoopAssignmentAnalyzer analyzer(data->graph_zone(), data->info());
+      LoopAssignmentAnalysis* loop_assignment = analyzer.Analyze();
+      data->set_loop_assignment(loop_assignment);
+    }
   }
 };
 
@@ -510,10 +718,12 @@
   static const char* phase_name() { return "type hint analysis"; }
 
   void Run(PipelineData* data, Zone* temp_zone) {
-    TypeHintAnalyzer analyzer(data->graph_zone());
-    Handle<Code> code(data->info()->shared_info()->code(), data->isolate());
-    TypeHintAnalysis* type_hint_analysis = analyzer.Analyze(code);
-    data->set_type_hint_analysis(type_hint_analysis);
+    if (!data->info()->is_optimizing_from_bytecode()) {
+      TypeHintAnalyzer analyzer(data->graph_zone());
+      Handle<Code> code(data->info()->shared_info()->code(), data->isolate());
+      TypeHintAnalysis* type_hint_analysis = analyzer.Analyze(code);
+      data->set_type_hint_analysis(type_hint_analysis);
+    }
   }
 };
 
@@ -525,7 +735,7 @@
     bool stack_check = !data->info()->IsStub();
     bool succeeded = false;
 
-    if (data->info()->shared_info()->HasBytecodeArray()) {
+    if (data->info()->is_optimizing_from_bytecode()) {
       BytecodeGraphBuilder graph_builder(temp_zone, data->info(),
                                          data->jsgraph());
       succeeded = graph_builder.CreateGraph();
@@ -610,6 +820,31 @@
   }
 };
 
+#ifdef DEBUG
+
+struct UntyperPhase {
+  static const char* phase_name() { return "untyper"; }
+
+  void Run(PipelineData* data, Zone* temp_zone) {
+    class RemoveTypeReducer final : public Reducer {
+     public:
+      Reduction Reduce(Node* node) final {
+        if (NodeProperties::IsTyped(node)) {
+          NodeProperties::RemoveType(node);
+          return Changed(node);
+        }
+        return NoChange();
+      }
+    };
+
+    JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
+    RemoveTypeReducer remove_type_reducer;
+    AddReducer(data, &graph_reducer, &remove_type_reducer);
+    graph_reducer.ReduceGraph();
+  }
+};
+
+#endif  // DEBUG
 
 struct OsrDeconstructionPhase {
   static const char* phase_name() { return "OSR deconstruction"; }
@@ -629,7 +864,7 @@
     DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
                                               data->common());
     LoadElimination load_elimination(&graph_reducer, data->graph(),
-                                     data->common());
+                                     data->jsgraph()->simplified());
     JSBuiltinReducer builtin_reducer(&graph_reducer, data->jsgraph());
     MaybeHandle<LiteralsArray> literals_array =
         data->info()->is_native_context_specializing()
@@ -697,30 +932,28 @@
     JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
     EscapeAnalysisReducer escape_reducer(&graph_reducer, data->jsgraph(),
                                          &escape_analysis, temp_zone);
-    escape_reducer.SetExistsVirtualAllocate(
-        escape_analysis.ExistsVirtualAllocate());
     AddReducer(data, &graph_reducer, &escape_reducer);
     graph_reducer.ReduceGraph();
     escape_reducer.VerifyReplacement();
   }
 };
 
-
-struct SimplifiedLoweringPhase {
-  static const char* phase_name() { return "simplified lowering"; }
+struct RepresentationSelectionPhase {
+  static const char* phase_name() { return "representation selection"; }
 
   void Run(PipelineData* data, Zone* temp_zone) {
     SimplifiedLowering lowering(data->jsgraph(), temp_zone,
                                 data->source_positions());
     lowering.LowerAllNodes();
+  }
+};
 
-    // TODO(bmeurer): See comment on SimplifiedLowering::abort_compilation_.
-    if (lowering.abort_compilation_) {
-      data->set_compilation_failed();
-      return;
-    }
+struct EarlyOptimizationPhase {
+  static const char* phase_name() { return "early optimization"; }
 
+  void Run(PipelineData* data, Zone* temp_zone) {
     JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
+    JSGenericLowering generic_lowering(data->jsgraph());
     DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
                                               data->common());
     SimplifiedOperatorReducer simple_reducer(data->jsgraph());
@@ -730,6 +963,7 @@
                                          data->common(), data->machine());
     AddReducer(data, &graph_reducer, &dead_code_elimination);
     AddReducer(data, &graph_reducer, &simple_reducer);
+    AddReducer(data, &graph_reducer, &generic_lowering);
     AddReducer(data, &graph_reducer, &value_numbering);
     AddReducer(data, &graph_reducer, &machine_reducer);
     AddReducer(data, &graph_reducer, &common_reducer);
@@ -737,7 +971,6 @@
   }
 };
 
-
 struct ControlFlowOptimizationPhase {
   static const char* phase_name() { return "control flow optimization"; }
 
@@ -748,31 +981,70 @@
   }
 };
 
+struct EffectControlLinearizationPhase {
+  static const char* phase_name() { return "effect linearization"; }
 
-struct ChangeLoweringPhase {
-  static const char* phase_name() { return "change lowering"; }
+  void Run(PipelineData* data, Zone* temp_zone) {
+    // The scheduler requires the graphs to be trimmed, so trim now.
+    // TODO(jarin) Remove the trimming once the scheduler can handle untrimmed
+    // graphs.
+    GraphTrimmer trimmer(temp_zone, data->graph());
+    NodeVector roots(temp_zone);
+    data->jsgraph()->GetCachedNodes(&roots);
+    trimmer.TrimGraph(roots.begin(), roots.end());
+
+    // Schedule the graph without node splitting so that we can
+    // fix the effect and control flow for nodes with low-level side
+    // effects (such as changing representation to tagged or
+    // 'floating' allocation regions.)
+    Schedule* schedule = Scheduler::ComputeSchedule(temp_zone, data->graph(),
+                                                    Scheduler::kNoFlags);
+    if (FLAG_turbo_verify) ScheduleVerifier::Run(schedule);
+    TraceSchedule(data->info(), schedule);
+
+    // Post-pass for wiring the control/effects
+    // - connect allocating representation changes into the control&effect
+    //   chains and lower them,
+    // - get rid of the region markers,
+    // - introduce effect phis and rewire effects to get SSA again.
+    EffectControlLinearizer linearizer(data->jsgraph(), schedule, temp_zone);
+    linearizer.Run();
+  }
+};
+
+struct MemoryOptimizationPhase {
+  static const char* phase_name() { return "memory optimization"; }
+
+  void Run(PipelineData* data, Zone* temp_zone) {
+    MemoryOptimizer optimizer(data->jsgraph(), temp_zone);
+    optimizer.Optimize();
+  }
+};
+
+struct LateOptimizationPhase {
+  static const char* phase_name() { return "late optimization"; }
 
   void Run(PipelineData* data, Zone* temp_zone) {
     JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
     DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
                                               data->common());
-    SimplifiedOperatorReducer simple_reducer(data->jsgraph());
     ValueNumberingReducer value_numbering(temp_zone);
-    ChangeLowering lowering(data->jsgraph());
     MachineOperatorReducer machine_reducer(data->jsgraph());
     CommonOperatorReducer common_reducer(&graph_reducer, data->graph(),
                                          data->common(), data->machine());
+    SelectLowering select_lowering(data->jsgraph()->graph(),
+                                   data->jsgraph()->common());
+    TailCallOptimization tco(data->common(), data->graph());
     AddReducer(data, &graph_reducer, &dead_code_elimination);
-    AddReducer(data, &graph_reducer, &simple_reducer);
     AddReducer(data, &graph_reducer, &value_numbering);
-    AddReducer(data, &graph_reducer, &lowering);
     AddReducer(data, &graph_reducer, &machine_reducer);
     AddReducer(data, &graph_reducer, &common_reducer);
+    AddReducer(data, &graph_reducer, &select_lowering);
+    AddReducer(data, &graph_reducer, &tco);
     graph_reducer.ReduceGraph();
   }
 };
 
-
 struct EarlyGraphTrimmingPhase {
   static const char* phase_name() { return "early graph trimming"; }
   void Run(PipelineData* data, Zone* temp_zone) {
@@ -810,30 +1082,6 @@
 };
 
 
-struct GenericLoweringPhase {
-  static const char* phase_name() { return "generic lowering"; }
-
-  void Run(PipelineData* data, Zone* temp_zone) {
-    JSGraphReducer graph_reducer(data->jsgraph(), temp_zone);
-    DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
-                                              data->common());
-    CommonOperatorReducer common_reducer(&graph_reducer, data->graph(),
-                                         data->common(), data->machine());
-    JSGenericLowering generic_lowering(data->info()->is_typing_enabled(),
-                                       data->jsgraph());
-    SelectLowering select_lowering(data->jsgraph()->graph(),
-                                   data->jsgraph()->common());
-    TailCallOptimization tco(data->common(), data->graph());
-    AddReducer(data, &graph_reducer, &dead_code_elimination);
-    AddReducer(data, &graph_reducer, &common_reducer);
-    AddReducer(data, &graph_reducer, &generic_lowering);
-    AddReducer(data, &graph_reducer, &select_lowering);
-    AddReducer(data, &graph_reducer, &tco);
-    graph_reducer.ReduceGraph();
-  }
-};
-
-
 struct ComputeSchedulePhase {
   static const char* phase_name() { return "scheduling"; }
 
@@ -915,13 +1163,14 @@
   }
 };
 
-
 template <typename RegAllocator>
-struct AllocateDoubleRegistersPhase {
-  static const char* phase_name() { return "allocate double registers"; }
+struct AllocateFPRegistersPhase {
+  static const char* phase_name() {
+    return "allocate floating point registers";
+  }
 
   void Run(PipelineData* data, Zone* temp_zone) {
-    RegAllocator allocator(data->register_allocation_data(), DOUBLE_REGISTERS,
+    RegAllocator allocator(data->register_allocation_data(), FP_REGISTERS,
                            temp_zone);
     allocator.AllocateRegisters();
   }
@@ -1049,15 +1298,14 @@
     Graph* graph = data->graph();
 
     {  // Print JSON.
-      FILE* json_file = OpenVisualizerLogFile(info, nullptr, "json", "a+");
-      if (json_file == nullptr) return;
-      OFStream json_of(json_file);
+      AllowHandleDereference allow_deref;
+      TurboJsonFile json_of(info, std::ios_base::app);
       json_of << "{\"name\":\"" << phase << "\",\"type\":\"graph\",\"data\":"
               << AsJSON(*graph, data->source_positions()) << "},\n";
-      fclose(json_file);
     }
 
     if (FLAG_trace_turbo_graph) {  // Simple textual RPO.
+      AllowHandleDereference allow_deref;
       OFStream os(stdout);
       os << "-- Graph after " << phase << " -- " << std::endl;
       os << AsRPO(*graph);
@@ -1069,22 +1317,14 @@
 struct VerifyGraphPhase {
   static const char* phase_name() { return nullptr; }
 
-  void Run(PipelineData* data, Zone* temp_zone, const bool untyped) {
-    Verifier::Run(data->graph(), FLAG_turbo_types && !untyped
-                                     ? Verifier::TYPED
-                                     : Verifier::UNTYPED);
+  void Run(PipelineData* data, Zone* temp_zone, const bool untyped,
+           bool values_only = false) {
+    Verifier::Run(data->graph(), !untyped ? Verifier::TYPED : Verifier::UNTYPED,
+                  values_only ? Verifier::kValuesOnly : Verifier::kAll);
   }
 };
 
-
-void Pipeline::BeginPhaseKind(const char* phase_kind_name) {
-  if (data_->pipeline_statistics() != nullptr) {
-    data_->pipeline_statistics()->BeginPhaseKind(phase_kind_name);
-  }
-}
-
-
-void Pipeline::RunPrintAndVerify(const char* phase, bool untyped) {
+void PipelineImpl::RunPrintAndVerify(const char* phase, bool untyped) {
   if (FLAG_trace_turbo) {
     Run<PrintGraphPhase>(phase);
   }
@@ -1093,46 +1333,10 @@
   }
 }
 
+bool PipelineImpl::CreateGraph() {
+  PipelineData* data = this->data_;
 
-Handle<Code> Pipeline::GenerateCode() {
-  ZonePool zone_pool(isolate()->allocator());
-  base::SmartPointer<PipelineStatistics> pipeline_statistics;
-
-  if (FLAG_turbo_stats) {
-    pipeline_statistics.Reset(new PipelineStatistics(info(), &zone_pool));
-    pipeline_statistics->BeginPhaseKind("initializing");
-  }
-
-  if (FLAG_trace_turbo) {
-    FILE* json_file = OpenVisualizerLogFile(info(), nullptr, "json", "w+");
-    if (json_file != nullptr) {
-      OFStream json_of(json_file);
-      Handle<Script> script = info()->script();
-      base::SmartArrayPointer<char> function_name = info()->GetDebugName();
-      int pos = info()->shared_info()->start_position();
-      json_of << "{\"function\":\"" << function_name.get()
-              << "\", \"sourcePosition\":" << pos << ", \"source\":\"";
-      if (info()->has_literal() && !script->IsUndefined() &&
-          !script->source()->IsUndefined()) {
-        DisallowHeapAllocation no_allocation;
-        FunctionLiteral* function = info()->literal();
-        int start = function->start_position();
-        int len = function->end_position() - start;
-        String::SubStringRange source(String::cast(script->source()), start,
-                                      len);
-        for (const auto& c : source) {
-          json_of << AsEscapedUC16ForJSON(c);
-        }
-      }
-      json_of << "\",\n\"phases\":[";
-      fclose(json_file);
-    }
-  }
-
-  PipelineData data(&zone_pool, info(), pipeline_statistics.get());
-  this->data_ = &data;
-
-  BeginPhaseKind("graph creation");
+  data->BeginPhaseKind("graph creation");
 
   if (FLAG_trace_turbo) {
     OFStream os(stdout);
@@ -1143,18 +1347,19 @@
     tcf << AsC1VCompilation(info());
   }
 
-  data.source_positions()->AddDecorator();
+  data->source_positions()->AddDecorator();
 
   if (FLAG_loop_assignment_analysis) {
     Run<LoopAssignmentAnalysisPhase>();
   }
 
-  if (info()->is_typing_enabled()) {
-    Run<TypeHintAnalysisPhase>();
-  }
+  Run<TypeHintAnalysisPhase>();
 
   Run<GraphBuilderPhase>();
-  if (data.compilation_failed()) return Handle<Code>::null();
+  if (data->compilation_failed()) {
+    data->EndPhaseKind();
+    return false;
+  }
   RunPrintAndVerify("Initial untyped", true);
 
   // Perform OSR deconstruction.
@@ -1173,24 +1378,23 @@
 
   if (FLAG_print_turbo_replay) {
     // Print a replay of the initial graph.
-    GraphReplayPrinter::PrintReplay(data.graph());
+    GraphReplayPrinter::PrintReplay(data->graph());
   }
 
-  base::SmartPointer<Typer> typer;
-  if (info()->is_typing_enabled()) {
-    // Type the graph.
-    typer.Reset(new Typer(isolate(), data.graph(),
-                          info()->is_deoptimization_enabled()
-                              ? Typer::kDeoptimizationEnabled
-                              : Typer::kNoFlags,
-                          info()->dependencies()));
-    Run<TyperPhase>(typer.get());
+  // Run the type-sensitive lowerings and optimizations on the graph.
+  {
+    // Type the graph and keep the Typer running on newly created nodes within
+    // this scope; the Typer is automatically unlinked from the Graph once we
+    // leave this scope below.
+    Typer typer(isolate(), data->graph(), info()->is_deoptimization_enabled()
+                                              ? Typer::kDeoptimizationEnabled
+                                              : Typer::kNoFlags,
+                info()->dependencies());
+    Run<TyperPhase>(&typer);
     RunPrintAndVerify("Typed");
-  }
 
-  BeginPhaseKind("lowering");
+    data->BeginPhaseKind("lowering");
 
-  if (info()->is_typing_enabled()) {
     // Lower JSOperators where we can determine types.
     Run<TypedLoweringPhase>();
     RunPrintAndVerify("Lowered typed");
@@ -1205,55 +1409,79 @@
       RunPrintAndVerify("Escape Analysed");
     }
 
-    // Lower simplified operators and insert changes.
-    Run<SimplifiedLoweringPhase>();
-    RunPrintAndVerify("Lowered simplified");
+    // Select representations.
+    Run<RepresentationSelectionPhase>();
+    RunPrintAndVerify("Representations selected");
 
-    Run<BranchEliminationPhase>();
-    RunPrintAndVerify("Branch conditions eliminated");
-
-    // Optimize control flow.
-    if (FLAG_turbo_cf_optimization) {
-      Run<ControlFlowOptimizationPhase>();
-      RunPrintAndVerify("Control flow optimized");
-    }
-
-    // Lower changes that have been inserted before.
-    Run<ChangeLoweringPhase>();
-    // TODO(jarin, rossberg): Remove UNTYPED once machine typing works.
-    RunPrintAndVerify("Lowered changes", true);
+    // Run early optimization pass.
+    Run<EarlyOptimizationPhase>();
+    RunPrintAndVerify("Early optimized");
   }
 
-  // Lower any remaining generic JSOperators.
-  Run<GenericLoweringPhase>();
+#ifdef DEBUG
+  // From now on it is invalid to look at types on the nodes, because:
+  //
+  //  (a) The remaining passes (might) run concurrent to the main thread and
+  //      therefore must not access the Heap or the Isolate in an uncontrolled
+  //      way (as done by the type system), and
+  //  (b) the types on the nodes might not make sense after representation
+  //      selection due to the way we handle truncations; if we'd want to look
+  //      at types afterwards we'd essentially need to re-type (large portions
+  //      of) the graph.
+  //
+  // In order to catch bugs related to type access after this point we remove
+  // the types from the nodes at this point (currently only in Debug builds).
+  Run<UntyperPhase>();
+  RunPrintAndVerify("Untyped", true);
+#endif
+
+  data->EndPhaseKind();
+
+  return true;
+}
+
+bool PipelineImpl::OptimizeGraph(Linkage* linkage) {
+  PipelineData* data = this->data_;
+
+  data->BeginPhaseKind("block building");
+
+  Run<EffectControlLinearizationPhase>();
+  RunPrintAndVerify("Effect and control linearized", true);
+
+  Run<BranchEliminationPhase>();
+  RunPrintAndVerify("Branch conditions eliminated", true);
+
+  // Optimize control flow.
+  if (FLAG_turbo_cf_optimization) {
+    Run<ControlFlowOptimizationPhase>();
+    RunPrintAndVerify("Control flow optimized", true);
+  }
+
+  // Optimize memory access and allocation operations.
+  Run<MemoryOptimizationPhase>();
   // TODO(jarin, rossberg): Remove UNTYPED once machine typing works.
-  RunPrintAndVerify("Lowered generic", true);
+  RunPrintAndVerify("Memory optimized", true);
+
+  // Lower changes that have been inserted before.
+  Run<LateOptimizationPhase>();
+  // TODO(jarin, rossberg): Remove UNTYPED once machine typing works.
+  RunPrintAndVerify("Late optimized", true);
 
   Run<LateGraphTrimmingPhase>();
   // TODO(jarin, rossberg): Remove UNTYPED once machine typing works.
   RunPrintAndVerify("Late trimmed", true);
 
-  BeginPhaseKind("block building");
+  data->source_positions()->RemoveDecorator();
 
-  data.source_positions()->RemoveDecorator();
-
-  // Kill the Typer and thereby uninstall the decorator (if any).
-  typer.Reset(nullptr);
-
-  // TODO(bmeurer): See comment on SimplifiedLowering::abort_compilation_.
-  if (data.compilation_failed()) return Handle<Code>::null();
-
-  return ScheduleAndGenerateCode(
-      Linkage::ComputeIncoming(data.instruction_zone(), info()));
+  return ScheduleAndSelectInstructions(linkage);
 }
 
-
 Handle<Code> Pipeline::GenerateCodeForCodeStub(Isolate* isolate,
                                                CallDescriptor* call_descriptor,
                                                Graph* graph, Schedule* schedule,
                                                Code::Flags flags,
                                                const char* debug_name) {
-  CompilationInfo info(debug_name, isolate, graph->zone(), flags);
+  CompilationInfo info(CStrVector(debug_name), isolate, graph->zone(), flags);
 
   // Construct a pipeline for scheduling and code generation.
   ZonePool zone_pool(isolate->allocator());
@@ -1264,25 +1492,36 @@
     pipeline_statistics->BeginPhaseKind("stub codegen");
   }
 
-  Pipeline pipeline(&info);
-  pipeline.data_ = &data;
+  PipelineImpl pipeline(&data);
   DCHECK_NOT_NULL(data.schedule());
 
   if (FLAG_trace_turbo) {
-    FILE* json_file = OpenVisualizerLogFile(&info, nullptr, "json", "w+");
-    if (json_file != nullptr) {
-      OFStream json_of(json_file);
-      json_of << "{\"function\":\"" << info.GetDebugName().get()
-              << "\", \"source\":\"\",\n\"phases\":[";
-      fclose(json_file);
-    }
+    TurboJsonFile json_of(&info, std::ios_base::trunc);
+    json_of << "{\"function\":\"" << info.GetDebugName().get()
+            << "\", \"source\":\"\",\n\"phases\":[";
     pipeline.Run<PrintGraphPhase>("Machine");
   }
 
+  pipeline.Run<VerifyGraphPhase>(false, true);
   return pipeline.ScheduleAndGenerateCode(call_descriptor);
 }
 
+// static
+Handle<Code> Pipeline::GenerateCodeForTesting(CompilationInfo* info) {
+  ZonePool zone_pool(info->isolate()->allocator());
+  base::SmartPointer<PipelineStatistics> pipeline_statistics(
+      CreatePipelineStatistics(info, &zone_pool));
+  PipelineData data(&zone_pool, info, pipeline_statistics.get());
+  PipelineImpl pipeline(&data);
 
+  Linkage linkage(Linkage::ComputeIncoming(data.instruction_zone(), info));
+
+  if (!pipeline.CreateGraph()) return Handle<Code>::null();
+  if (!pipeline.OptimizeGraph(&linkage)) return Handle<Code>::null();
+  return pipeline.GenerateCode(&linkage);
+}
+
+// static
 Handle<Code> Pipeline::GenerateCodeForTesting(CompilationInfo* info,
                                               Graph* graph,
                                               Schedule* schedule) {
@@ -1291,7 +1530,7 @@
   return GenerateCodeForTesting(info, call_descriptor, graph, schedule);
 }
 
-
+// static
 Handle<Code> Pipeline::GenerateCodeForTesting(CompilationInfo* info,
                                               CallDescriptor* call_descriptor,
                                               Graph* graph,
@@ -1305,33 +1544,47 @@
     pipeline_statistics->BeginPhaseKind("test codegen");
   }
 
-  Pipeline pipeline(info);
-  pipeline.data_ = &data;
-  if (data.schedule() == nullptr) {
-    // TODO(rossberg): Should this really be untyped?
-    pipeline.RunPrintAndVerify("Machine", true);
+  PipelineImpl pipeline(&data);
+
+  if (FLAG_trace_turbo) {
+    TurboJsonFile json_of(info, std::ios_base::trunc);
+    json_of << "{\"function\":\"" << info->GetDebugName().get()
+            << "\", \"source\":\"\",\n\"phases\":[";
   }
+  // TODO(rossberg): Should this really be untyped?
+  pipeline.RunPrintAndVerify("Machine", true);
 
   return pipeline.ScheduleAndGenerateCode(call_descriptor);
 }
 
+// static
+CompilationJob* Pipeline::NewCompilationJob(Handle<JSFunction> function) {
+  return new PipelineCompilationJob(function->GetIsolate(), function);
+}
+
+// static
+CompilationJob* Pipeline::NewWasmCompilationJob(
+    CompilationInfo* info, Graph* graph, CallDescriptor* descriptor,
+    SourcePositionTable* source_positions) {
+  return new PipelineWasmCompilationJob(info, graph, descriptor,
+                                        source_positions);
+}
 
 bool Pipeline::AllocateRegistersForTesting(const RegisterConfiguration* config,
                                            InstructionSequence* sequence,
                                            bool run_verifier) {
-  CompilationInfo info("testing", sequence->isolate(), sequence->zone());
+  CompilationInfo info(ArrayVector("testing"), sequence->isolate(),
+                       sequence->zone());
   ZonePool zone_pool(sequence->isolate()->allocator());
   PipelineData data(&zone_pool, &info, sequence);
-  Pipeline pipeline(&info);
-  pipeline.data_ = &data;
+  PipelineImpl pipeline(&data);
   pipeline.data_->InitializeFrameData(nullptr);
   pipeline.AllocateRegisters(config, nullptr, run_verifier);
   return !data.compilation_failed();
 }
 
-
-Handle<Code> Pipeline::ScheduleAndGenerateCode(
-    CallDescriptor* call_descriptor) {
+bool PipelineImpl::ScheduleAndSelectInstructions(Linkage* linkage) {
+  CallDescriptor* call_descriptor = linkage->GetIncomingDescriptor();
   PipelineData* data = this->data_;
 
   DCHECK_NOT_NULL(data->graph());
@@ -1339,34 +1592,34 @@
   if (data->schedule() == nullptr) Run<ComputeSchedulePhase>();
   TraceSchedule(data->info(), data->schedule());
 
-  BasicBlockProfiler::Data* profiler_data = nullptr;
   if (FLAG_turbo_profiling) {
-    profiler_data = BasicBlockInstrumentor::Instrument(info(), data->graph(),
-                                                       data->schedule());
+    data->set_profiler_data(BasicBlockInstrumentor::Instrument(
+        info(), data->graph(), data->schedule()));
   }
 
   data->InitializeInstructionSequence(call_descriptor);
 
   data->InitializeFrameData(call_descriptor);
   // Select and schedule instructions covering the scheduled graph.
-  Linkage linkage(call_descriptor);
-  Run<InstructionSelectionPhase>(&linkage);
+  Run<InstructionSelectionPhase>(linkage);
 
   if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) {
+    AllowHandleDereference allow_deref;
     TurboCfgFile tcf(isolate());
     tcf << AsC1V("CodeGen", data->schedule(), data->source_positions(),
                  data->sequence());
   }
 
-  std::ostringstream source_position_output;
   if (FLAG_trace_turbo) {
+    std::ostringstream source_position_output;
     // Output source position information before the graph is deleted.
     data_->source_positions()->Print(source_position_output);
+    data_->set_source_position_output(source_position_output.str());
   }
 
   data->DeleteGraphZone();
 
-  BeginPhaseKind("register allocation");
+  data->BeginPhaseKind("register allocation");
 
   bool run_verifier = FLAG_turbo_verify_allocation;
 
@@ -1377,10 +1630,10 @@
   Run<FrameElisionPhase>();
   if (data->compilation_failed()) {
     info()->AbortOptimization(kNotEnoughVirtualRegistersRegalloc);
-    return Handle<Code>();
+    data->EndPhaseKind();
+    return false;
   }
 
-  BeginPhaseKind("code generation");
   // TODO(mtrofin): move this off to the register allocator.
   bool generate_frame_at_start =
       data_->sequence()->instruction_blocks().front()->must_construct_frame();
@@ -1389,15 +1642,25 @@
     Run<JumpThreadingPhase>(generate_frame_at_start);
   }
 
+  data->EndPhaseKind();
+
+  return true;
+}
+
+Handle<Code> PipelineImpl::GenerateCode(Linkage* linkage) {
+  PipelineData* data = this->data_;
+
+  data->BeginPhaseKind("code generation");
+
   // Generate final machine code.
-  Run<GenerateCodePhase>(&linkage);
+  Run<GenerateCodePhase>(linkage);
 
   Handle<Code> code = data->code();
-  if (profiler_data != nullptr) {
+  if (data->profiler_data()) {
 #if ENABLE_DISASSEMBLER
     std::ostringstream os;
     code->Disassemble(nullptr, os);
-    profiler_data->SetCode(&os);
+    data->profiler_data()->SetCode(&os);
 #endif
   }
 
@@ -1405,25 +1668,21 @@
   v8::internal::CodeGenerator::PrintCode(code, info());
 
   if (FLAG_trace_turbo) {
-    FILE* json_file = OpenVisualizerLogFile(info(), nullptr, "json", "a+");
-    if (json_file != nullptr) {
-      OFStream json_of(json_file);
-      json_of
-          << "{\"name\":\"disassembly\",\"type\":\"disassembly\",\"data\":\"";
+    TurboJsonFile json_of(info(), std::ios_base::app);
+    json_of << "{\"name\":\"disassembly\",\"type\":\"disassembly\",\"data\":\"";
 #if ENABLE_DISASSEMBLER
-      std::stringstream disassembly_stream;
-      code->Disassemble(nullptr, disassembly_stream);
-      std::string disassembly_string(disassembly_stream.str());
-      for (const auto& c : disassembly_string) {
-        json_of << AsEscapedUC16ForJSON(c);
-      }
-#endif  // ENABLE_DISASSEMBLER
-      json_of << "\"}\n],\n";
-      json_of << "\"nodePositions\":";
-      json_of << source_position_output.str();
-      json_of << "}";
-      fclose(json_file);
+    std::stringstream disassembly_stream;
+    code->Disassemble(nullptr, disassembly_stream);
+    std::string disassembly_string(disassembly_stream.str());
+    for (const auto& c : disassembly_string) {
+      json_of << AsEscapedUC16ForJSON(c);
     }
+#endif  // ENABLE_DISASSEMBLER
+    json_of << "\"}\n],\n";
+    json_of << "\"nodePositions\":";
+    json_of << data->source_position_output();
+    json_of << "}";
+
     OFStream os(stdout);
     os << "---------------------------------------------------\n"
        << "Finished compiling method " << info()->GetDebugName().get()
@@ -1433,12 +1692,21 @@
   return code;
 }
 
+Handle<Code> PipelineImpl::ScheduleAndGenerateCode(
+    CallDescriptor* call_descriptor) {
+  Linkage linkage(call_descriptor);
 
-void Pipeline::AllocateRegisters(const RegisterConfiguration* config,
-                                 CallDescriptor* descriptor,
-                                 bool run_verifier) {
+  // Schedule the graph, perform instruction selection and register allocation.
+  if (!ScheduleAndSelectInstructions(&linkage)) return Handle<Code>();
+
+  // Generate the final machine code.
+  return GenerateCode(&linkage);
+}
+
+void PipelineImpl::AllocateRegisters(const RegisterConfiguration* config,
+                                     CallDescriptor* descriptor,
+                                     bool run_verifier) {
   PipelineData* data = this->data_;
-
   // Don't track usage for this zone in compiler stats.
   base::SmartPointer<Zone> verifier_zone;
   RegisterAllocatorVerifier* verifier = nullptr;
@@ -1448,14 +1716,13 @@
         verifier_zone.get(), config, data->sequence());
   }
 
-  base::SmartArrayPointer<char> debug_name;
 #ifdef DEBUG
-  debug_name = info()->GetDebugName();
   data_->sequence()->ValidateEdgeSplitForm();
+  data_->sequence()->ValidateDeferredBlockEntryPaths();
   data_->sequence()->ValidateDeferredBlockExitPaths();
 #endif
 
-  data->InitializeRegisterAllocationData(config, descriptor, debug_name.get());
+  data->InitializeRegisterAllocationData(config, descriptor);
   if (info()->is_osr()) {
     OsrHelper osr_helper(info());
     osr_helper.SetupFrame(data->frame());
@@ -1465,10 +1732,10 @@
   Run<ResolvePhisPhase>();
   Run<BuildLiveRangesPhase>();
   if (FLAG_trace_turbo_graph) {
+    AllowHandleDereference allow_deref;
     OFStream os(stdout);
-    PrintableInstructionSequence printable = {config, data->sequence()};
     os << "----- Instruction sequence before register allocation -----\n"
-       << printable;
+       << PrintableInstructionSequence({config, data->sequence()});
   }
   if (verifier != nullptr) {
     CHECK(!data->register_allocation_data()->ExistsUseWithoutDefinition());
@@ -1482,10 +1749,10 @@
 
   if (FLAG_turbo_greedy_regalloc) {
     Run<AllocateGeneralRegistersPhase<GreedyAllocator>>();
-    Run<AllocateDoubleRegistersPhase<GreedyAllocator>>();
+    Run<AllocateFPRegistersPhase<GreedyAllocator>>();
   } else {
     Run<AllocateGeneralRegistersPhase<LinearScanAllocator>>();
-    Run<AllocateDoubleRegistersPhase<LinearScanAllocator>>();
+    Run<AllocateFPRegistersPhase<LinearScanAllocator>>();
   }
 
   if (FLAG_turbo_preprocess_ranges) {
@@ -1505,10 +1772,10 @@
   Run<LocateSpillSlotsPhase>();
 
   if (FLAG_trace_turbo_graph) {
+    AllowHandleDereference allow_deref;
     OFStream os(stdout);
-    PrintableInstructionSequence printable = {config, data->sequence()};
     os << "----- Instruction sequence after register allocation -----\n"
-       << printable;
+       << PrintableInstructionSequence({config, data->sequence()});
   }
 
   if (verifier != nullptr) {
@@ -1525,7 +1792,9 @@
   data->DeleteRegisterAllocationZone();
 }
 
-Isolate* Pipeline::isolate() const { return info()->isolate(); }
+CompilationInfo* PipelineImpl::info() const { return data_->info(); }
+
+Isolate* PipelineImpl::isolate() const { return info()->isolate(); }
 
 }  // namespace compiler
 }  // namespace internal
diff --git a/src/compiler/pipeline.h b/src/compiler/pipeline.h
index edb8191..64befbf 100644
--- a/src/compiler/pipeline.h
+++ b/src/compiler/pipeline.h
@@ -13,6 +13,7 @@
 namespace internal {
 
 class CompilationInfo;
+class CompilationJob;
 class RegisterConfiguration;
 
 namespace compiler {
@@ -20,16 +21,18 @@
 class CallDescriptor;
 class Graph;
 class InstructionSequence;
-class Linkage;
-class PipelineData;
 class Schedule;
+class SourcePositionTable;
 
-class Pipeline {
+class Pipeline : public AllStatic {
  public:
-  explicit Pipeline(CompilationInfo* info) : info_(info) {}
+  // Returns a new compilation job for the given function.
+  static CompilationJob* NewCompilationJob(Handle<JSFunction> function);
 
-  // Run the entire pipeline and generate a handle to a code object.
-  Handle<Code> GenerateCode();
+  // Returns a new compilation job for the WebAssembly compilation info.
+  static CompilationJob* NewWasmCompilationJob(
+      CompilationInfo* info, Graph* graph, CallDescriptor* descriptor,
+      SourcePositionTable* source_positions);
 
   // Run the pipeline on a machine graph and generate code. The {schedule} must
   // be valid, hence the given {graph} does not need to be schedulable.
@@ -39,6 +42,10 @@
                                               Code::Flags flags,
                                               const char* debug_name);
 
+  // Run the entire pipeline and generate a handle to a code object suitable for
+  // testing.
+  static Handle<Code> GenerateCodeForTesting(CompilationInfo* info);
+
   // Run the pipeline on a machine graph and generate code. If {schedule} is
   // {nullptr}, then compute a new schedule for code generation.
   static Handle<Code> GenerateCodeForTesting(CompilationInfo* info,
@@ -58,27 +65,7 @@
                                              Schedule* schedule = nullptr);
 
  private:
-  // Helpers for executing pipeline phases.
-  template <typename Phase>
-  void Run();
-  template <typename Phase, typename Arg0>
-  void Run(Arg0 arg_0);
-  template <typename Phase, typename Arg0, typename Arg1>
-  void Run(Arg0 arg_0, Arg1 arg_1);
-
-  void BeginPhaseKind(const char* phase_kind);
-  void RunPrintAndVerify(const char* phase, bool untyped = false);
-  Handle<Code> ScheduleAndGenerateCode(CallDescriptor* call_descriptor);
-  void AllocateRegisters(const RegisterConfiguration* config,
-                         CallDescriptor* descriptor, bool run_verifier);
-
-  CompilationInfo* info() const { return info_; }
-  Isolate* isolate() const;
-
-  CompilationInfo* const info_;
-  PipelineData* data_;
-
-  DISALLOW_COPY_AND_ASSIGN(Pipeline);
+  DISALLOW_IMPLICIT_CONSTRUCTORS(Pipeline);
 };
 
 }  // namespace compiler
diff --git a/src/compiler/ppc/code-generator-ppc.cc b/src/compiler/ppc/code-generator-ppc.cc
index 6f1e588..8a0c585 100644
--- a/src/compiler/ppc/code-generator-ppc.cc
+++ b/src/compiler/ppc/code-generator-ppc.cc
@@ -103,7 +103,7 @@
 
   MemOperand ToMemOperand(InstructionOperand* op) const {
     DCHECK_NOT_NULL(op);
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToMemOperand(AllocatedOperand::cast(op)->index());
   }
 
@@ -175,7 +175,8 @@
         value_(value),
         scratch0_(scratch0),
         scratch1_(scratch1),
-        mode_(mode) {}
+        mode_(mode),
+        must_save_lr_(!gen->frame_access_state()->has_frame()) {}
 
   OutOfLineRecordWrite(CodeGenerator* gen, Register object, int32_t offset,
                        Register value, Register scratch0, Register scratch1,
@@ -259,15 +260,10 @@
 #if V8_TARGET_ARCH_PPC64
         case kPPC_Add:
         case kPPC_Sub:
-          return lt;
 #endif
         case kPPC_AddWithOverflow32:
         case kPPC_SubWithOverflow32:
-#if V8_TARGET_ARCH_PPC64
-          return ne;
-#else
           return lt;
-#endif
         default:
           break;
       }
@@ -277,15 +273,10 @@
 #if V8_TARGET_ARCH_PPC64
         case kPPC_Add:
         case kPPC_Sub:
-          return ge;
 #endif
         case kPPC_AddWithOverflow32:
         case kPPC_SubWithOverflow32:
-#if V8_TARGET_ARCH_PPC64
-          return eq;
-#else
           return ge;
-#endif
         default:
           break;
       }
@@ -378,17 +369,16 @@
 
 
 #if V8_TARGET_ARCH_PPC64
-#define ASSEMBLE_ADD_WITH_OVERFLOW32()           \
-  do {                                           \
-    ASSEMBLE_BINOP(add, addi);                   \
-    __ TestIfInt32(i.OutputRegister(), r0, cr0); \
+#define ASSEMBLE_ADD_WITH_OVERFLOW32()         \
+  do {                                         \
+    ASSEMBLE_ADD_WITH_OVERFLOW();              \
+    __ extsw(kScratchReg, kScratchReg, SetRC); \
   } while (0)
 
-
-#define ASSEMBLE_SUB_WITH_OVERFLOW32()           \
-  do {                                           \
-    ASSEMBLE_BINOP(sub, subi);                   \
-    __ TestIfInt32(i.OutputRegister(), r0, cr0); \
+#define ASSEMBLE_SUB_WITH_OVERFLOW32()         \
+  do {                                         \
+    ASSEMBLE_SUB_WITH_OVERFLOW();              \
+    __ extsw(kScratchReg, kScratchReg, SetRC); \
   } while (0)
 #else
 #define ASSEMBLE_ADD_WITH_OVERFLOW32 ASSEMBLE_ADD_WITH_OVERFLOW
@@ -536,8 +526,13 @@
     DCHECK_EQ(LeaveRC, i.OutputRCBit());                 \
   } while (0)
 
-
+#if V8_TARGET_ARCH_PPC64
 // TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
+#define CleanUInt32(x) __ ClearLeftImm(x, x, Operand(32))
+#else
+#define CleanUInt32(x)
+#endif
+
 #define ASSEMBLE_CHECKED_LOAD_FLOAT(asm_instr, asm_instrx, width)  \
   do {                                                             \
     DoubleRegister result = i.OutputDoubleRegister();              \
@@ -546,7 +541,6 @@
     MemOperand operand = i.MemoryOperand(&mode, index);            \
     DCHECK_EQ(kMode_MRR, mode);                                    \
     Register offset = operand.rb();                                \
-    __ extsw(offset, offset);                                      \
     if (HasRegisterInput(instr, 2)) {                              \
       __ cmplw(offset, i.InputRegister(2));                        \
     } else {                                                       \
@@ -557,14 +551,13 @@
     if (mode == kMode_MRI) {                                       \
       __ asm_instr(result, operand);                               \
     } else {                                                       \
+      CleanUInt32(offset);                                         \
       __ asm_instrx(result, operand);                              \
     }                                                              \
     __ bind(ool->exit());                                          \
     DCHECK_EQ(LeaveRC, i.OutputRCBit());                           \
   } while (0)
 
-
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_LOAD_INTEGER(asm_instr, asm_instrx) \
   do {                                                       \
     Register result = i.OutputRegister();                    \
@@ -573,7 +566,6 @@
     MemOperand operand = i.MemoryOperand(&mode, index);      \
     DCHECK_EQ(kMode_MRR, mode);                              \
     Register offset = operand.rb();                          \
-    __ extsw(offset, offset);                                \
     if (HasRegisterInput(instr, 2)) {                        \
       __ cmplw(offset, i.InputRegister(2));                  \
     } else {                                                 \
@@ -584,14 +576,13 @@
     if (mode == kMode_MRI) {                                 \
       __ asm_instr(result, operand);                         \
     } else {                                                 \
+      CleanUInt32(offset);                                   \
       __ asm_instrx(result, operand);                        \
     }                                                        \
     __ bind(ool->exit());                                    \
     DCHECK_EQ(LeaveRC, i.OutputRCBit());                     \
   } while (0)
 
-
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_STORE_FLOAT32()                \
   do {                                                  \
     Label done;                                         \
@@ -600,7 +591,6 @@
     MemOperand operand = i.MemoryOperand(&mode, index); \
     DCHECK_EQ(kMode_MRR, mode);                         \
     Register offset = operand.rb();                     \
-    __ extsw(offset, offset);                           \
     if (HasRegisterInput(instr, 2)) {                   \
       __ cmplw(offset, i.InputRegister(2));             \
     } else {                                            \
@@ -612,14 +602,13 @@
     if (mode == kMode_MRI) {                            \
       __ stfs(kScratchDoubleReg, operand);              \
     } else {                                            \
+      CleanUInt32(offset);                              \
       __ stfsx(kScratchDoubleReg, operand);             \
     }                                                   \
     __ bind(&done);                                     \
     DCHECK_EQ(LeaveRC, i.OutputRCBit());                \
   } while (0)
 
-
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_STORE_DOUBLE()                 \
   do {                                                  \
     Label done;                                         \
@@ -628,7 +617,6 @@
     MemOperand operand = i.MemoryOperand(&mode, index); \
     DCHECK_EQ(kMode_MRR, mode);                         \
     Register offset = operand.rb();                     \
-    __ extsw(offset, offset);                           \
     if (HasRegisterInput(instr, 2)) {                   \
       __ cmplw(offset, i.InputRegister(2));             \
     } else {                                            \
@@ -639,14 +627,13 @@
     if (mode == kMode_MRI) {                            \
       __ stfd(value, operand);                          \
     } else {                                            \
+      CleanUInt32(offset);                              \
       __ stfdx(value, operand);                         \
     }                                                   \
     __ bind(&done);                                     \
     DCHECK_EQ(LeaveRC, i.OutputRCBit());                \
   } while (0)
 
-
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_STORE_INTEGER(asm_instr, asm_instrx) \
   do {                                                        \
     Label done;                                               \
@@ -655,7 +642,6 @@
     MemOperand operand = i.MemoryOperand(&mode, index);       \
     DCHECK_EQ(kMode_MRR, mode);                               \
     Register offset = operand.rb();                           \
-    __ extsw(offset, offset);                                 \
     if (HasRegisterInput(instr, 2)) {                         \
       __ cmplw(offset, i.InputRegister(2));                   \
     } else {                                                  \
@@ -666,18 +652,49 @@
     if (mode == kMode_MRI) {                                  \
       __ asm_instr(value, operand);                           \
     } else {                                                  \
+      CleanUInt32(offset);                                    \
       __ asm_instrx(value, operand);                          \
     }                                                         \
     __ bind(&done);                                           \
     DCHECK_EQ(LeaveRC, i.OutputRCBit());                      \
   } while (0)
 
+#define ASSEMBLE_ATOMIC_LOAD_INTEGER(asm_instr, asm_instrx)   \
+  do {                                                        \
+    Label done;                                               \
+    Register result = i.OutputRegister();                     \
+    AddressingMode mode = kMode_None;                         \
+    MemOperand operand = i.MemoryOperand(&mode);              \
+    __ sync();                                                \
+    if (mode == kMode_MRI) {                                  \
+    __ asm_instr(result, operand);                            \
+    } else {                                                  \
+    __ asm_instrx(result, operand);                           \
+    }                                                         \
+    __ bind(&done);                                           \
+    __ cmp(result, result);                                   \
+    __ bne(&done);                                            \
+    __ isync();                                               \
+  } while (0)
+#define ASSEMBLE_ATOMIC_STORE_INTEGER(asm_instr, asm_instrx)  \
+  do {                                                        \
+    size_t index = 0;                                         \
+    AddressingMode mode = kMode_None;                         \
+    MemOperand operand = i.MemoryOperand(&mode, &index);      \
+    Register value = i.InputRegister(index);                  \
+    __ sync();                                                \
+    if (mode == kMode_MRI) {                                  \
+      __ asm_instr(value, operand);                           \
+    } else {                                                  \
+      __ asm_instrx(value, operand);                          \
+    }                                                         \
+    DCHECK_EQ(LeaveRC, i.OutputRCBit());                      \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ LeaveFrame(StackFrame::MANUAL);
 }
 
-void CodeGenerator::AssembleSetupStackPointer() {}
-
 void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
   int sp_slot_delta = TailCallFrameStackSlotDelta(stack_param_delta);
   if (sp_slot_delta > 0) {
@@ -725,7 +742,8 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   PPCOperandConverter i(this, instr);
   ArchOpcode opcode = ArchOpcodeField::decode(instr->opcode());
 
@@ -771,6 +789,14 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!instr->InputAt(0)->IsImmediate());
+      __ Jump(i.InputRegister(0));
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       v8::internal::Assembler::BlockTrampolinePoolScope block_trampoline_pool(
           masm());
@@ -858,7 +884,9 @@
           BuildTranslation(instr, -1, 0, OutputFrameStateCombine::Ignore());
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -1281,7 +1309,7 @@
       break;
 #endif
     case kPPC_Push:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ stfdu(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize));
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
       } else {
@@ -1292,21 +1320,22 @@
       break;
     case kPPC_PushFrame: {
       int num_slots = i.InputInt32(1);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
-        __ stfdu(i.InputDoubleRegister(0),
-                 MemOperand(sp, -num_slots * kPointerSize));
+      if (instr->InputAt(0)->IsFPRegister()) {
+        __ StoreDoubleU(i.InputDoubleRegister(0),
+                        MemOperand(sp, -num_slots * kPointerSize), r0);
       } else {
         __ StorePU(i.InputRegister(0),
-                   MemOperand(sp, -num_slots * kPointerSize));
+                   MemOperand(sp, -num_slots * kPointerSize), r0);
       }
       break;
     }
     case kPPC_StoreToStackSlot: {
       int slot = i.InputInt32(1);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
-        __ stfd(i.InputDoubleRegister(0), MemOperand(sp, slot * kPointerSize));
+      if (instr->InputAt(0)->IsFPRegister()) {
+        __ StoreDouble(i.InputDoubleRegister(0),
+                       MemOperand(sp, slot * kPointerSize), r0);
       } else {
-        __ StoreP(i.InputRegister(0), MemOperand(sp, slot * kPointerSize));
+        __ StoreP(i.InputRegister(0), MemOperand(sp, slot * kPointerSize), r0);
       }
       break;
     }
@@ -1492,6 +1521,9 @@
     case kPPC_LoadWordS16:
       ASSEMBLE_LOAD_INTEGER(lha, lhax);
       break;
+    case kPPC_LoadWordU32:
+      ASSEMBLE_LOAD_INTEGER(lwz, lwzx);
+      break;
     case kPPC_LoadWordS32:
       ASSEMBLE_LOAD_INTEGER(lwa, lwax);
       break;
@@ -1540,7 +1572,7 @@
       ASSEMBLE_CHECKED_LOAD_INTEGER(lhz, lhzx);
       break;
     case kCheckedLoadWord32:
-      ASSEMBLE_CHECKED_LOAD_INTEGER(lwa, lwax);
+      ASSEMBLE_CHECKED_LOAD_INTEGER(lwz, lwzx);
       break;
     case kCheckedLoadWord64:
 #if V8_TARGET_ARCH_PPC64
@@ -1577,10 +1609,38 @@
     case kCheckedStoreFloat64:
       ASSEMBLE_CHECKED_STORE_DOUBLE();
       break;
+
+    case kAtomicLoadInt8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lbz, lbzx);
+      __ extsb(i.OutputRegister(), i.OutputRegister());
+      break;
+    case kAtomicLoadUint8:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lbz, lbzx);
+      break;
+    case kAtomicLoadInt16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lha, lhax);
+      break;
+    case kAtomicLoadUint16:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lhz, lhzx);
+      break;
+    case kAtomicLoadWord32:
+      ASSEMBLE_ATOMIC_LOAD_INTEGER(lwz, lwzx);
+      break;
+
+    case kAtomicStoreWord8:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(stb, stbx);
+      break;
+    case kAtomicStoreWord16:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(sth, sthx);
+      break;
+    case kAtomicStoreWord32:
+      ASSEMBLE_ATOMIC_STORE_INTEGER(stw, stwx);
+      break;
     default:
       UNREACHABLE();
       break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 
@@ -1676,7 +1736,7 @@
   PPCOperandConverter i(this, instr);
   Register input = i.InputRegister(0);
   for (size_t index = 2; index < instr->InputCount(); index += 2) {
-    __ Cmpi(input, Operand(i.InputInt32(index + 0)), r0);
+    __ Cmpwi(input, Operand(i.InputInt32(index + 0)), r0);
     __ beq(GetLabel(i.InputRpo(index + 1)));
   }
   AssembleArchJump(i.InputRpo(1));
@@ -1700,19 +1760,45 @@
   __ Jump(kScratchReg);
 }
 
-
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
   // TODO(turbofan): We should be able to generate better code by sharing the
   // actual final call site and just bl'ing to it here, similar to what we do
   // in the lithium backend.
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ Call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
+  return kSuccess;
 }
 
+void CodeGenerator::FinishFrame(Frame* frame) {
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
+  const RegList double_saves = descriptor->CalleeSavedFPRegisters();
 
-void CodeGenerator::AssemblePrologue() {
+  // Save callee-saved Double registers.
+  if (double_saves != 0) {
+    frame->AlignSavedCalleeRegisterSlots();
+    DCHECK(kNumCalleeSavedDoubles ==
+           base::bits::CountPopulation32(double_saves));
+    frame->AllocateSavedCalleeRegisterSlots(kNumCalleeSavedDoubles *
+                                             (kDoubleSize / kPointerSize));
+  }
+  // Save callee-saved registers.
+  const RegList saves =
+      FLAG_enable_embedded_constant_pool
+          ? descriptor->CalleeSavedRegisters() & ~kConstantPoolRegister.bit()
+          : descriptor->CalleeSavedRegisters();
+  if (saves != 0) {
+    // register save area does not include the fp or constant pool pointer.
+    const int num_saves =
+        kNumCalleeSaved - 1 - (FLAG_enable_embedded_constant_pool ? 1 : 0);
+    DCHECK(num_saves == base::bits::CountPopulation32(saves));
+    frame->AllocateSavedCalleeRegisterSlots(num_saves);
+  }
+}
+
+void CodeGenerator::AssembleConstructFrame() {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (frame_access_state()->has_frame()) {
     if (descriptor->IsCFunctionCall()) {
@@ -1736,7 +1822,7 @@
     }
   }
 
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
+  int shrink_slots = frame()->GetSpillSlotCount();
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -1747,15 +1833,12 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
+    shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
   }
 
   const RegList double_saves = descriptor->CalleeSavedFPRegisters();
-  if (double_saves != 0) {
-    stack_shrink_slots += frame()->AlignSavedCalleeRegisterSlots();
-  }
-  if (stack_shrink_slots > 0) {
-    __ Add(sp, sp, -stack_shrink_slots * kPointerSize, r0);
+  if (shrink_slots > 0) {
+    __ Add(sp, sp, -shrink_slots * kPointerSize, r0);
   }
 
   // Save callee-saved Double registers.
@@ -1763,8 +1846,6 @@
     __ MultiPushDoubles(double_saves);
     DCHECK(kNumCalleeSavedDoubles ==
            base::bits::CountPopulation32(double_saves));
-    frame()->AllocateSavedCalleeRegisterSlots(kNumCalleeSavedDoubles *
-                                              (kDoubleSize / kPointerSize));
   }
 
   // Save callee-saved registers.
@@ -1775,10 +1856,6 @@
   if (saves != 0) {
     __ MultiPush(saves);
     // register save area does not include the fp or constant pool pointer.
-    const int num_saves =
-        kNumCalleeSaved - 1 - (FLAG_enable_embedded_constant_pool ? 1 : 0);
-    DCHECK(num_saves == base::bits::CountPopulation32(saves));
-    frame()->AllocateSavedCalleeRegisterSlots(num_saves);
   }
 }
 
@@ -1848,10 +1925,28 @@
           destination->IsRegister() ? g.ToRegister(destination) : kScratchReg;
       switch (src.type()) {
         case Constant::kInt32:
-          __ mov(dst, Operand(src.ToInt32()));
+#if V8_TARGET_ARCH_PPC64
+          if (src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+#else
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+#endif
+            __ mov(dst, Operand(src.ToInt32(), src.rmode()));
+          } else {
+            __ mov(dst, Operand(src.ToInt32()));
+          }
           break;
         case Constant::kInt64:
-          __ mov(dst, Operand(src.ToInt64()));
+#if V8_TARGET_ARCH_PPC64
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+            __ mov(dst, Operand(src.ToInt64(), src.rmode()));
+          } else {
+            DCHECK(src.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+#endif
+            __ mov(dst, Operand(src.ToInt64()));
+#if V8_TARGET_ARCH_PPC64
+          }
+#endif
           break;
         case Constant::kFloat32:
           __ Move(dst,
@@ -1885,29 +1980,29 @@
         __ StoreP(dst, g.ToMemOperand(destination), r0);
       }
     } else {
-      DoubleRegister dst = destination->IsDoubleRegister()
+      DoubleRegister dst = destination->IsFPRegister()
                                ? g.ToDoubleRegister(destination)
                                : kScratchDoubleReg;
       double value = (src.type() == Constant::kFloat32) ? src.ToFloat32()
                                                         : src.ToFloat64();
       __ LoadDoubleLiteral(dst, value, kScratchReg);
-      if (destination->IsDoubleStackSlot()) {
+      if (destination->IsFPStackSlot()) {
         __ StoreDouble(dst, g.ToMemOperand(destination), r0);
       }
     }
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     DoubleRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       DoubleRegister dst = g.ToDoubleRegister(destination);
       __ Move(dst, src);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       __ StoreDouble(src, g.ToMemOperand(destination), r0);
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       __ LoadDouble(g.ToDoubleRegister(destination), src, r0);
     } else {
       DoubleRegister temp = kScratchDoubleReg;
@@ -1942,7 +2037,7 @@
       __ StoreP(temp, dst);
     }
 #if V8_TARGET_ARCH_PPC64
-  } else if (source->IsStackSlot() || source->IsDoubleStackSlot()) {
+  } else if (source->IsStackSlot() || source->IsFPStackSlot()) {
 #else
   } else if (source->IsStackSlot()) {
     DCHECK(destination->IsStackSlot());
@@ -1955,24 +2050,24 @@
     __ LoadP(temp_1, dst);
     __ StoreP(temp_0, dst);
     __ StoreP(temp_1, src);
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     DoubleRegister temp = kScratchDoubleReg;
     DoubleRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       DoubleRegister dst = g.ToDoubleRegister(destination);
       __ fmr(temp, src);
       __ fmr(src, dst);
       __ fmr(dst, temp);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       MemOperand dst = g.ToMemOperand(destination);
       __ fmr(temp, src);
       __ lfd(src, dst);
       __ stfd(temp, dst);
     }
 #if !V8_TARGET_ARCH_PPC64
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPStackSlot());
     DoubleRegister temp_0 = kScratchDoubleReg;
     DoubleRegister temp_1 = d0;
     MemOperand src = g.ToMemOperand(source);
@@ -1996,11 +2091,6 @@
 }
 
 
-void CodeGenerator::AddNopForSmiCodeInlining() {
-  // We do not insert nops for inlined Smi code.
-}
-
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/ppc/instruction-codes-ppc.h b/src/compiler/ppc/instruction-codes-ppc.h
index 66c2e99..23cd235 100644
--- a/src/compiler/ppc/instruction-codes-ppc.h
+++ b/src/compiler/ppc/instruction-codes-ppc.h
@@ -112,6 +112,7 @@
   V(PPC_LoadWordS16)               \
   V(PPC_LoadWordU16)               \
   V(PPC_LoadWordS32)               \
+  V(PPC_LoadWordU32)               \
   V(PPC_LoadWord64)                \
   V(PPC_LoadFloat32)               \
   V(PPC_LoadDouble)                \
diff --git a/src/compiler/ppc/instruction-scheduler-ppc.cc b/src/compiler/ppc/instruction-scheduler-ppc.cc
index e7d7719..1259a87 100644
--- a/src/compiler/ppc/instruction-scheduler-ppc.cc
+++ b/src/compiler/ppc/instruction-scheduler-ppc.cc
@@ -113,6 +113,7 @@
     case kPPC_LoadWordS16:
     case kPPC_LoadWordU16:
     case kPPC_LoadWordS32:
+    case kPPC_LoadWordU32:
     case kPPC_LoadWord64:
     case kPPC_LoadFloat32:
     case kPPC_LoadDouble:
diff --git a/src/compiler/ppc/instruction-selector-ppc.cc b/src/compiler/ppc/instruction-selector-ppc.cc
index 5abb5f1..b8ca3ba 100644
--- a/src/compiler/ppc/instruction-selector-ppc.cc
+++ b/src/compiler/ppc/instruction-selector-ppc.cc
@@ -190,11 +190,7 @@
     case MachineRepresentation::kTagged:  // Fall through.
 #endif
     case MachineRepresentation::kWord32:
-      opcode = kPPC_LoadWordS32;
-#if V8_TARGET_ARCH_PPC64
-      // TODO(mbrandy): this applies to signed loads only (lwa)
-      mode = kInt16Imm_4ByteAligned;
-#endif
+      opcode = kPPC_LoadWordU32;
       break;
 #if V8_TARGET_ARCH_PPC64
     case MachineRepresentation::kTagged:  // Fall through.
@@ -1137,15 +1133,12 @@
   VisitRR(this, kPPC_DoubleToFloat32, node);
 }
 
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
+  VisitRR(this, kArchTruncateDoubleToI, node);
+}
 
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      return VisitRR(this, kArchTruncateDoubleToI, node);
-    case TruncationMode::kRoundToZero:
-      return VisitRR(this, kPPC_DoubleToInt32, node);
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  VisitRR(this, kPPC_DoubleToInt32, node);
 }
 
 
@@ -1233,6 +1226,10 @@
   VisitRRR(this, kPPC_SubDouble | MiscField::encode(1), node);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  PPCOperandGenerator g(this);
+  VisitRRR(this, kPPC_SubDouble | MiscField::encode(1), node);
+}
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
   // TODO(mbrandy): detect multiply-subtract
@@ -1259,6 +1256,9 @@
   VisitRRR(this, kPPC_SubDouble, node);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  VisitRRR(this, kPPC_SubDouble, node);
+}
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   VisitRRR(this, kPPC_MulDouble | MiscField::encode(1), node);
@@ -1921,6 +1921,60 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  PPCOperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  ArchOpcode opcode = kArchNop;
+  switch (load_rep.representation()) {
+    case MachineRepresentation::kWord8:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt8 : kAtomicLoadUint8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt16 : kAtomicLoadUint16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicLoadWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+  Emit(opcode | AddressingModeField::encode(kMode_MRR),
+      g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(index));
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  PPCOperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kAtomicStoreWord8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kAtomicStoreWord16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicStoreWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+
+  InstructionOperand inputs[4];
+  size_t input_count = 0;
+  inputs[input_count++] = g.UseUniqueRegister(base);
+  inputs[input_count++] = g.UseUniqueRegister(index);
+  inputs[input_count++] = g.UseUniqueRegister(value);
+  Emit(opcode | AddressingModeField::encode(kMode_MRR),
+      0, nullptr, input_count, inputs);
+}
 
 // static
 MachineOperatorBuilder::Flags
diff --git a/src/compiler/raw-machine-assembler.cc b/src/compiler/raw-machine-assembler.cc
index 728d79a..9407da6 100644
--- a/src/compiler/raw-machine-assembler.cc
+++ b/src/compiler/raw-machine-assembler.cc
@@ -35,6 +35,12 @@
   graph->SetEnd(graph->NewNode(common_.End(0)));
 }
 
+Node* RawMachineAssembler::RelocatableIntPtrConstant(intptr_t value,
+                                                     RelocInfo::Mode rmode) {
+  return kPointerSize == 8
+             ? RelocatableInt64Constant(value, rmode)
+             : RelocatableInt32Constant(static_cast<int>(value), rmode);
+}
 
 Schedule* RawMachineAssembler::Export() {
   // Compute the correct codegen order.
@@ -44,7 +50,7 @@
     PrintF("--- RAW SCHEDULE -------------------------------------------\n");
     os << *schedule_;
   }
-  schedule_->EnsureSplitEdgeForm();
+  schedule_->EnsureCFGWellFormedness();
   schedule_->PropagateDeferredMark();
   if (FLAG_trace_turbo_scheduler) {
     PrintF("--- EDGE SPLIT AND PROPAGATED DEFERRED SCHEDULE ------------\n");
@@ -109,7 +115,6 @@
 
 void RawMachineAssembler::Return(Node* value) {
   Node* ret = MakeNode(common()->Return(), 1, &value);
-  NodeProperties::MergeControlToEnd(graph(), common(), ret);
   schedule()->AddReturn(CurrentBlock(), ret);
   current_block_ = nullptr;
 }
@@ -118,7 +123,6 @@
 void RawMachineAssembler::Return(Node* v1, Node* v2) {
   Node* values[] = {v1, v2};
   Node* ret = MakeNode(common()->Return(2), 2, values);
-  NodeProperties::MergeControlToEnd(graph(), common(), ret);
   schedule()->AddReturn(CurrentBlock(), ret);
   current_block_ = nullptr;
 }
@@ -127,7 +131,6 @@
 void RawMachineAssembler::Return(Node* v1, Node* v2, Node* v3) {
   Node* values[] = {v1, v2, v3};
   Node* ret = MakeNode(common()->Return(3), 3, values);
-  NodeProperties::MergeControlToEnd(graph(), common(), ret);
   schedule()->AddReturn(CurrentBlock(), ret);
   current_block_ = nullptr;
 }
@@ -254,7 +257,6 @@
     buffer[index++] = args[i];
   }
   Node* tail_call = MakeNode(common()->TailCall(desc), input_count, buffer);
-  NodeProperties::MergeControlToEnd(graph(), common(), tail_call);
   schedule()->AddTailCall(CurrentBlock(), tail_call);
   current_block_ = nullptr;
   return tail_call;
@@ -276,7 +278,6 @@
   Node* nodes[] = {centry, ref, arity, context};
   Node* tail_call = MakeNode(common()->TailCall(desc), arraysize(nodes), nodes);
 
-  NodeProperties::MergeControlToEnd(graph(), common(), tail_call);
   schedule()->AddTailCall(CurrentBlock(), tail_call);
   current_block_ = nullptr;
   return tail_call;
@@ -298,7 +299,6 @@
   Node* nodes[] = {centry, arg1, ref, arity, context};
   Node* tail_call = MakeNode(common()->TailCall(desc), arraysize(nodes), nodes);
 
-  NodeProperties::MergeControlToEnd(graph(), common(), tail_call);
   schedule()->AddTailCall(CurrentBlock(), tail_call);
   current_block_ = nullptr;
   return tail_call;
@@ -322,7 +322,6 @@
   Node* nodes[] = {centry, arg1, arg2, ref, arity, context};
   Node* tail_call = MakeNode(common()->TailCall(desc), arraysize(nodes), nodes);
 
-  NodeProperties::MergeControlToEnd(graph(), common(), tail_call);
   schedule()->AddTailCall(CurrentBlock(), tail_call);
   current_block_ = nullptr;
   return tail_call;
@@ -345,7 +344,6 @@
   Node* nodes[] = {centry, arg1, arg2, arg3, ref, arity, context};
   Node* tail_call = MakeNode(common()->TailCall(desc), arraysize(nodes), nodes);
 
-  NodeProperties::MergeControlToEnd(graph(), common(), tail_call);
   schedule()->AddTailCall(CurrentBlock(), tail_call);
   current_block_ = nullptr;
   return tail_call;
@@ -368,7 +366,6 @@
   Node* nodes[] = {centry, arg1, arg2, arg3, arg4, ref, arity, context};
   Node* tail_call = MakeNode(common()->TailCall(desc), arraysize(nodes), nodes);
 
-  NodeProperties::MergeControlToEnd(graph(), common(), tail_call);
   schedule()->AddTailCall(CurrentBlock(), tail_call);
   current_block_ = nullptr;
   return tail_call;
diff --git a/src/compiler/raw-machine-assembler.h b/src/compiler/raw-machine-assembler.h
index f3445ac..69ddd50 100644
--- a/src/compiler/raw-machine-assembler.h
+++ b/src/compiler/raw-machine-assembler.h
@@ -76,6 +76,7 @@
     return kPointerSize == 8 ? Int64Constant(value)
                              : Int32Constant(static_cast<int>(value));
   }
+  Node* RelocatableIntPtrConstant(intptr_t value, RelocInfo::Mode rmode);
   Node* Int32Constant(int32_t value) {
     return AddNode(common()->Int32Constant(value));
   }
@@ -104,6 +105,12 @@
   Node* ExternalConstant(ExternalReference address) {
     return AddNode(common()->ExternalConstant(address));
   }
+  Node* RelocatableInt32Constant(int32_t value, RelocInfo::Mode rmode) {
+    return AddNode(common()->RelocatableInt32Constant(value, rmode));
+  }
+  Node* RelocatableInt64Constant(int64_t value, RelocInfo::Mode rmode) {
+    return AddNode(common()->RelocatableInt64Constant(value, rmode));
+  }
 
   Node* Projection(int index, Node* a) {
     return AddNode(common()->Projection(index), a);
@@ -126,6 +133,15 @@
                    base, index, value);
   }
 
+  // Atomic memory operations.
+  Node* AtomicLoad(MachineType rep, Node* base, Node* index) {
+    return AddNode(machine()->AtomicLoad(rep), base, index);
+  }
+  Node* AtomicStore(MachineRepresentation rep, Node* base, Node* index,
+                    Node* value) {
+    return AddNode(machine()->AtomicStore(rep), base, index, value);
+  }
+
   // Arithmetic Operations.
   Node* WordAnd(Node* a, Node* b) {
     return AddNode(machine()->WordAnd(), a, b);
@@ -353,6 +369,8 @@
   INTPTR_BINOP(Int, AddWithOverflow);
   INTPTR_BINOP(Int, Sub);
   INTPTR_BINOP(Int, SubWithOverflow);
+  INTPTR_BINOP(Int, Mul);
+  INTPTR_BINOP(Int, Div);
   INTPTR_BINOP(Int, LessThan);
   INTPTR_BINOP(Int, LessThanOrEqual);
   INTPTR_BINOP(Word, Equal);
@@ -381,6 +399,9 @@
   Node* Float32Sub(Node* a, Node* b) {
     return AddNode(machine()->Float32Sub(), a, b);
   }
+  Node* Float32SubPreserveNan(Node* a, Node* b) {
+    return AddNode(machine()->Float32SubPreserveNan(), a, b);
+  }
   Node* Float32Mul(Node* a, Node* b) {
     return AddNode(machine()->Float32Mul(), a, b);
   }
@@ -419,6 +440,9 @@
   Node* Float64Sub(Node* a, Node* b) {
     return AddNode(machine()->Float64Sub(), a, b);
   }
+  Node* Float64SubPreserveNan(Node* a, Node* b) {
+    return AddNode(machine()->Float64SubPreserveNan(), a, b);
+  }
   Node* Float64Mul(Node* a, Node* b) {
     return AddNode(machine()->Float64Mul(), a, b);
   }
@@ -455,6 +479,12 @@
   }
 
   // Conversions.
+  Node* BitcastWordToTagged(Node* a) {
+    return AddNode(machine()->BitcastWordToTagged(), a);
+  }
+  Node* TruncateFloat64ToWord32(Node* a) {
+    return AddNode(machine()->TruncateFloat64ToWord32(), a);
+  }
   Node* ChangeFloat32ToFloat64(Node* a) {
     return AddNode(machine()->ChangeFloat32ToFloat64(), a);
   }
@@ -500,12 +530,12 @@
   Node* TruncateFloat64ToFloat32(Node* a) {
     return AddNode(machine()->TruncateFloat64ToFloat32(), a);
   }
-  Node* TruncateFloat64ToInt32(TruncationMode mode, Node* a) {
-    return AddNode(machine()->TruncateFloat64ToInt32(mode), a);
-  }
   Node* TruncateInt64ToInt32(Node* a) {
     return AddNode(machine()->TruncateInt64ToInt32(), a);
   }
+  Node* RoundFloat64ToInt32(Node* a) {
+    return AddNode(machine()->RoundFloat64ToInt32(), a);
+  }
   Node* RoundInt32ToFloat32(Node* a) {
     return AddNode(machine()->RoundInt32ToFloat32(), a);
   }
diff --git a/src/compiler/register-allocator-verifier.cc b/src/compiler/register-allocator-verifier.cc
index f2160f5..6746719 100644
--- a/src/compiler/register-allocator-verifier.cc
+++ b/src/compiler/register-allocator-verifier.cc
@@ -44,39 +44,15 @@
 
 }  // namespace
 
-
-void RegisterAllocatorVerifier::VerifyInput(
-    const OperandConstraint& constraint) {
-  CHECK_NE(kSameAsFirst, constraint.type_);
-  if (constraint.type_ != kImmediate && constraint.type_ != kExplicit) {
-    CHECK_NE(InstructionOperand::kInvalidVirtualRegister,
-             constraint.virtual_register_);
-  }
-}
-
-
-void RegisterAllocatorVerifier::VerifyTemp(
-    const OperandConstraint& constraint) {
-  CHECK_NE(kSameAsFirst, constraint.type_);
-  CHECK_NE(kImmediate, constraint.type_);
-  CHECK_NE(kExplicit, constraint.type_);
-  CHECK_NE(kConstant, constraint.type_);
-}
-
-
-void RegisterAllocatorVerifier::VerifyOutput(
-    const OperandConstraint& constraint) {
-  CHECK_NE(kImmediate, constraint.type_);
-  CHECK_NE(kExplicit, constraint.type_);
-  CHECK_NE(InstructionOperand::kInvalidVirtualRegister,
-           constraint.virtual_register_);
-}
-
-
 RegisterAllocatorVerifier::RegisterAllocatorVerifier(
     Zone* zone, const RegisterConfiguration* config,
     const InstructionSequence* sequence)
-    : zone_(zone), config_(config), sequence_(sequence), constraints_(zone) {
+    : zone_(zone),
+      config_(config),
+      sequence_(sequence),
+      constraints_(zone),
+      assessments_(zone),
+      outstanding_assessments_(zone) {
   constraints_.reserve(sequence->instructions().size());
   // TODO(dcarney): model unique constraints.
   // Construct OperandConstraints for all InstructionOperands, eliminating
@@ -111,6 +87,30 @@
   }
 }
 
+void RegisterAllocatorVerifier::VerifyInput(
+    const OperandConstraint& constraint) {
+  CHECK_NE(kSameAsFirst, constraint.type_);
+  if (constraint.type_ != kImmediate && constraint.type_ != kExplicit) {
+    CHECK_NE(InstructionOperand::kInvalidVirtualRegister,
+             constraint.virtual_register_);
+  }
+}
+
+void RegisterAllocatorVerifier::VerifyTemp(
+    const OperandConstraint& constraint) {
+  CHECK_NE(kSameAsFirst, constraint.type_);
+  CHECK_NE(kImmediate, constraint.type_);
+  CHECK_NE(kExplicit, constraint.type_);
+  CHECK_NE(kConstant, constraint.type_);
+}
+
+void RegisterAllocatorVerifier::VerifyOutput(
+    const OperandConstraint& constraint) {
+  CHECK_NE(kImmediate, constraint.type_);
+  CHECK_NE(kExplicit, constraint.type_);
+  CHECK_NE(InstructionOperand::kInvalidVirtualRegister,
+           constraint.virtual_register_);
+}
 
 void RegisterAllocatorVerifier::VerifyAssignment() {
   CHECK(sequence()->instructions().size() == constraints()->size());
@@ -138,7 +138,6 @@
   }
 }
 
-
 void RegisterAllocatorVerifier::BuildConstraint(const InstructionOperand* op,
                                                 OperandConstraint* constraint) {
   constraint->value_ = kMinInt;
@@ -204,7 +203,6 @@
   }
 }
 
-
 void RegisterAllocatorVerifier::CheckConstraint(
     const InstructionOperand* op, const OperandConstraint* constraint) {
   switch (constraint->type_) {
@@ -226,7 +224,7 @@
       CHECK(op->IsRegister());
       return;
     case kDoubleRegister:
-      CHECK(op->IsDoubleRegister());
+      CHECK(op->IsFPRegister());
       return;
     case kExplicit:
       CHECK(op->IsExplicit());
@@ -238,7 +236,7 @@
                constraint->value_);
       return;
     case kFixedDoubleRegister:
-      CHECK(op->IsDoubleRegister());
+      CHECK(op->IsFPRegister());
       CHECK_EQ(LocationOperand::cast(op)->GetDoubleRegister().code(),
                constraint->value_);
       return;
@@ -250,13 +248,13 @@
       CHECK(op->IsStackSlot());
       return;
     case kDoubleSlot:
-      CHECK(op->IsDoubleStackSlot());
+      CHECK(op->IsFPStackSlot());
       return;
     case kNone:
       CHECK(op->IsRegister() || op->IsStackSlot());
       return;
     case kNoneDouble:
-      CHECK(op->IsDoubleRegister() || op->IsDoubleStackSlot());
+      CHECK(op->IsFPRegister() || op->IsFPStackSlot());
       return;
     case kSameAsFirst:
       CHECK(false);
@@ -264,457 +262,235 @@
   }
 }
 
-namespace {
-
-typedef RpoNumber Rpo;
-
-static const int kInvalidVreg = InstructionOperand::kInvalidVirtualRegister;
-
-struct PhiData : public ZoneObject {
-  PhiData(Rpo definition_rpo, const PhiInstruction* phi, int first_pred_vreg,
-          const PhiData* first_pred_phi, Zone* zone)
-      : definition_rpo(definition_rpo),
-        virtual_register(phi->virtual_register()),
-        first_pred_vreg(first_pred_vreg),
-        first_pred_phi(first_pred_phi),
-        operands(zone) {
-    operands.reserve(phi->operands().size());
-    operands.insert(operands.begin(), phi->operands().begin(),
-                    phi->operands().end());
-  }
-  const Rpo definition_rpo;
-  const int virtual_register;
-  const int first_pred_vreg;
-  const PhiData* first_pred_phi;
-  IntVector operands;
-};
-
-class PhiMap : public ZoneMap<int, PhiData*>, public ZoneObject {
- public:
-  explicit PhiMap(Zone* zone) : ZoneMap<int, PhiData*>(zone) {}
-};
-
-struct OperandLess {
-  bool operator()(const InstructionOperand* a,
-                  const InstructionOperand* b) const {
-    return a->CompareCanonicalized(*b);
-  }
-};
-
-class OperandMap : public ZoneObject {
- public:
-  struct MapValue : public ZoneObject {
-    MapValue()
-        : incoming(nullptr),
-          define_vreg(kInvalidVreg),
-          use_vreg(kInvalidVreg),
-          succ_vreg(kInvalidVreg) {}
-    MapValue* incoming;  // value from first predecessor block.
-    int define_vreg;     // valid if this value was defined in this block.
-    int use_vreg;        // valid if this value was used in this block.
-    int succ_vreg;       // valid if propagated back from successor block.
-  };
-
-  class Map
-      : public ZoneMap<const InstructionOperand*, MapValue*, OperandLess> {
-   public:
-    explicit Map(Zone* zone)
-        : ZoneMap<const InstructionOperand*, MapValue*, OperandLess>(zone) {}
-
-    // Remove all entries with keys not in other.
-    void Intersect(const Map& other) {
-      if (this->empty()) return;
-      auto it = this->begin();
-      OperandLess less;
-      for (const std::pair<const InstructionOperand*, MapValue*>& o : other) {
-        while (less(it->first, o.first)) {
-          this->erase(it++);
-          if (it == this->end()) return;
-        }
-        if (it->first->EqualsCanonicalized(*o.first)) {
-          ++it;
-          if (it == this->end()) return;
-        } else {
-          CHECK(less(o.first, it->first));
-        }
-      }
-    }
-  };
-
-  explicit OperandMap(Zone* zone) : map_(zone) {}
-
-  Map& map() { return map_; }
-
-  void RunParallelMoves(Zone* zone, const ParallelMove* moves) {
-    // Compute outgoing mappings.
-    Map to_insert(zone);
-    for (const MoveOperands* move : *moves) {
-      if (move->IsEliminated()) continue;
-      auto cur = map().find(&move->source());
-      CHECK(cur != map().end());
-      auto res =
-          to_insert.insert(std::make_pair(&move->destination(), cur->second));
-      // Ensure injectivity of moves.
-      CHECK(res.second);
-    }
-    // Drop current mappings.
-    for (const MoveOperands* move : *moves) {
-      if (move->IsEliminated()) continue;
-      auto cur = map().find(&move->destination());
-      if (cur != map().end()) map().erase(cur);
-    }
-    // Insert new values.
-    map().insert(to_insert.begin(), to_insert.end());
-  }
-
-  void RunGaps(Zone* zone, const Instruction* instr) {
-    for (int i = Instruction::FIRST_GAP_POSITION;
-         i <= Instruction::LAST_GAP_POSITION; i++) {
-      Instruction::GapPosition inner_pos =
-          static_cast<Instruction::GapPosition>(i);
-      const ParallelMove* move = instr->GetParallelMove(inner_pos);
-      if (move == nullptr) continue;
-      RunParallelMoves(zone, move);
-    }
-  }
-
-  void Drop(const InstructionOperand* op) {
-    auto it = map().find(op);
-    if (it != map().end()) map().erase(it);
-  }
-
-  void DropRegisters(const RegisterConfiguration* config) {
-    // TODO(dcarney): sort map by kind and drop range.
-    for (auto it = map().begin(); it != map().end();) {
-      const InstructionOperand* op = it->first;
-      if (op->IsRegister() || op->IsDoubleRegister()) {
-        map().erase(it++);
-      } else {
-        ++it;
-      }
-    }
-  }
-
-  MapValue* Define(Zone* zone, const InstructionOperand* op,
-                   int virtual_register) {
-    MapValue* value = new (zone) MapValue();
-    value->define_vreg = virtual_register;
-    auto res = map().insert(std::make_pair(op, value));
-    if (!res.second) res.first->second = value;
-    return value;
-  }
-
-  void Use(const InstructionOperand* op, int use_vreg, bool initial_pass) {
-    auto it = map().find(op);
-    CHECK(it != map().end());
-    MapValue* v = it->second;
-    if (v->define_vreg != kInvalidVreg) {
-      CHECK_EQ(v->define_vreg, use_vreg);
-    }
-    // Already used this vreg in this block.
-    if (v->use_vreg != kInvalidVreg) {
-      CHECK_EQ(v->use_vreg, use_vreg);
-      return;
-    }
-    if (!initial_pass) {
-      // A value may be defined and used in this block or the use must have
-      // propagated up.
-      if (v->succ_vreg != kInvalidVreg) {
-        CHECK_EQ(v->succ_vreg, use_vreg);
-      } else {
-        CHECK_EQ(v->define_vreg, use_vreg);
-      }
-      // Mark the use.
-      it->second->use_vreg = use_vreg;
-      return;
-    }
-    // Go up block list and ensure the correct definition is reached.
-    for (; v != nullptr; v = v->incoming) {
-      // Value unused in block.
-      if (v->define_vreg == kInvalidVreg && v->use_vreg == kInvalidVreg) {
-        continue;
-      }
-      // Found correct definition or use.
-      CHECK(v->define_vreg == use_vreg || v->use_vreg == use_vreg);
-      // Mark the use.
-      it->second->use_vreg = use_vreg;
-      return;
-    }
-    // Use of a non-phi value without definition.
-    CHECK(false);
-  }
-
-  void UsePhi(const InstructionOperand* op, const PhiData* phi,
-              bool initial_pass) {
-    auto it = map().find(op);
-    CHECK(it != map().end());
-    MapValue* v = it->second;
-    int use_vreg = phi->virtual_register;
-    // Phis are not defined.
-    CHECK_EQ(kInvalidVreg, v->define_vreg);
-    // Already used this vreg in this block.
-    if (v->use_vreg != kInvalidVreg) {
-      CHECK_EQ(v->use_vreg, use_vreg);
-      return;
-    }
-    if (!initial_pass) {
-      // A used phi must have propagated its use to a predecessor.
-      CHECK_EQ(v->succ_vreg, use_vreg);
-      // Mark the use.
-      v->use_vreg = use_vreg;
-      return;
-    }
-    // Go up the block list starting at the first predecessor and ensure this
-    // phi has a correct use or definition.
-    for (v = v->incoming; v != nullptr; v = v->incoming) {
-      // Value unused in block.
-      if (v->define_vreg == kInvalidVreg && v->use_vreg == kInvalidVreg) {
-        continue;
-      }
-      // Found correct definition or use.
-      if (v->define_vreg != kInvalidVreg) {
-        CHECK(v->define_vreg == phi->first_pred_vreg);
-      } else if (v->use_vreg != phi->first_pred_vreg) {
-        // Walk the phi chain, hunting for a matching phi use.
-        const PhiData* p = phi;
-        for (; p != nullptr; p = p->first_pred_phi) {
-          if (p->virtual_register == v->use_vreg) break;
-        }
-        CHECK(p);
-      }
-      // Mark the use.
-      it->second->use_vreg = use_vreg;
-      return;
-    }
-    // Use of a phi value without definition.
-    UNREACHABLE();
-  }
-
- private:
-  Map map_;
-  DISALLOW_COPY_AND_ASSIGN(OperandMap);
-};
-
-}  // namespace
-
-
-class RegisterAllocatorVerifier::BlockMaps {
- public:
-  BlockMaps(Zone* zone, const InstructionSequence* sequence)
-      : zone_(zone),
-        sequence_(sequence),
-        phi_map_guard_(sequence->VirtualRegisterCount(), zone),
-        phi_map_(zone),
-        incoming_maps_(zone),
-        outgoing_maps_(zone) {
-    InitializePhis();
-    InitializeOperandMaps();
-  }
-
-  bool IsPhi(int virtual_register) {
-    return phi_map_guard_.Contains(virtual_register);
-  }
-
-  const PhiData* GetPhi(int virtual_register) {
-    auto it = phi_map_.find(virtual_register);
-    CHECK(it != phi_map_.end());
-    return it->second;
-  }
-
-  OperandMap* InitializeIncoming(size_t block_index, bool initial_pass) {
-    return initial_pass ? InitializeFromFirstPredecessor(block_index)
-                        : InitializeFromIntersection(block_index);
-  }
-
-  void PropagateUsesBackwards() {
-    typedef std::set<size_t, std::greater<size_t>, zone_allocator<size_t>>
-        BlockIds;
-    BlockIds block_ids((BlockIds::key_compare()),
-                       zone_allocator<size_t>(zone()));
-    // First ensure that incoming contains only keys in all predecessors.
-    for (const InstructionBlock* block : sequence()->instruction_blocks()) {
-      size_t index = block->rpo_number().ToSize();
-      block_ids.insert(index);
-      OperandMap::Map& succ_map = incoming_maps_[index]->map();
-      for (size_t i = 0; i < block->PredecessorCount(); ++i) {
-        RpoNumber pred_rpo = block->predecessors()[i];
-        succ_map.Intersect(outgoing_maps_[pred_rpo.ToSize()]->map());
-      }
-    }
-    // Back propagation fixpoint.
-    while (!block_ids.empty()) {
-      // Pop highest block_id.
-      auto block_id_it = block_ids.begin();
-      const size_t succ_index = *block_id_it;
-      block_ids.erase(block_id_it);
-      // Propagate uses back to their definition blocks using succ_vreg.
-      const InstructionBlock* block =
-          sequence()->instruction_blocks()[succ_index];
-      OperandMap::Map& succ_map = incoming_maps_[succ_index]->map();
-      for (size_t i = 0; i < block->PredecessorCount(); ++i) {
-        for (auto& succ_val : succ_map) {
-          // An incoming map contains no defines.
-          CHECK_EQ(kInvalidVreg, succ_val.second->define_vreg);
-          // Compute succ_vreg.
-          int succ_vreg = succ_val.second->succ_vreg;
-          if (succ_vreg == kInvalidVreg) {
-            succ_vreg = succ_val.second->use_vreg;
-            // Initialize succ_vreg in back propagation chain.
-            succ_val.second->succ_vreg = succ_vreg;
-          }
-          if (succ_vreg == kInvalidVreg) continue;
-          // May need to transition phi.
-          if (IsPhi(succ_vreg)) {
-            const PhiData* phi = GetPhi(succ_vreg);
-            if (phi->definition_rpo.ToSize() == succ_index) {
-              // phi definition block, transition to pred value.
-              succ_vreg = phi->operands[i];
-            }
-          }
-          // Push succ_vreg up to all predecessors.
-          RpoNumber pred_rpo = block->predecessors()[i];
-          OperandMap::Map& pred_map = outgoing_maps_[pred_rpo.ToSize()]->map();
-          auto& pred_val = *pred_map.find(succ_val.first);
-          if (pred_val.second->use_vreg != kInvalidVreg) {
-            CHECK_EQ(succ_vreg, pred_val.second->use_vreg);
-          }
-          if (pred_val.second->define_vreg != kInvalidVreg) {
-            CHECK_EQ(succ_vreg, pred_val.second->define_vreg);
-          }
-          if (pred_val.second->succ_vreg != kInvalidVreg) {
-            if (succ_vreg != pred_val.second->succ_vreg) {
-              // When a block introduces 2 identical phis A and B, and both are
-              // operands to other phis C and D, and we optimized the moves
-              // defining A or B such that they now appear in the block defining
-              // A and B, the back propagation will get confused when visiting
-              // upwards from C and D. The operand in the block defining A and B
-              // will be attributed to C (or D, depending which of these is
-              // visited first).
-              CHECK(IsPhi(pred_val.second->succ_vreg));
-              CHECK(IsPhi(succ_vreg));
-              const PhiData* current_phi = GetPhi(succ_vreg);
-              const PhiData* assigned_phi = GetPhi(pred_val.second->succ_vreg);
-              CHECK_EQ(current_phi->operands.size(),
-                       assigned_phi->operands.size());
-              CHECK_EQ(current_phi->definition_rpo,
-                       assigned_phi->definition_rpo);
-              for (size_t i = 0; i < current_phi->operands.size(); ++i) {
-                CHECK_EQ(current_phi->operands[i], assigned_phi->operands[i]);
-              }
-            }
-          } else {
-            pred_val.second->succ_vreg = succ_vreg;
-            block_ids.insert(pred_rpo.ToSize());
-          }
-        }
-      }
-    }
-    // Clear uses and back links for second pass.
-    for (OperandMap* operand_map : incoming_maps_) {
-      for (auto& succ_val : operand_map->map()) {
-        succ_val.second->incoming = nullptr;
-        succ_val.second->use_vreg = kInvalidVreg;
-      }
-    }
-  }
-
- private:
-  OperandMap* InitializeFromFirstPredecessor(size_t block_index) {
-    OperandMap* to_init = outgoing_maps_[block_index];
-    CHECK(to_init->map().empty());
-    const InstructionBlock* block =
-        sequence()->instruction_blocks()[block_index];
-    if (block->predecessors().empty()) return to_init;
-    size_t predecessor_index = block->predecessors()[0].ToSize();
-    // Ensure not a backedge.
-    CHECK(predecessor_index < block->rpo_number().ToSize());
-    OperandMap* incoming = outgoing_maps_[predecessor_index];
-    // Copy map and replace values.
-    to_init->map() = incoming->map();
-    for (auto& it : to_init->map()) {
-      OperandMap::MapValue* incoming = it.second;
-      it.second = new (zone()) OperandMap::MapValue();
-      it.second->incoming = incoming;
-    }
-    // Copy to incoming map for second pass.
-    incoming_maps_[block_index]->map() = to_init->map();
-    return to_init;
-  }
-
-  OperandMap* InitializeFromIntersection(size_t block_index) {
-    return incoming_maps_[block_index];
-  }
-
-  void InitializeOperandMaps() {
-    size_t block_count = sequence()->instruction_blocks().size();
-    incoming_maps_.reserve(block_count);
-    outgoing_maps_.reserve(block_count);
-    for (size_t i = 0; i < block_count; ++i) {
-      incoming_maps_.push_back(new (zone()) OperandMap(zone()));
-      outgoing_maps_.push_back(new (zone()) OperandMap(zone()));
-    }
-  }
-
-  void InitializePhis() {
-    const size_t block_count = sequence()->instruction_blocks().size();
-    for (size_t block_index = 0; block_index < block_count; ++block_index) {
-      const InstructionBlock* block =
-          sequence()->instruction_blocks()[block_index];
-      for (const PhiInstruction* phi : block->phis()) {
-        int first_pred_vreg = phi->operands()[0];
-        const PhiData* first_pred_phi = nullptr;
-        if (IsPhi(first_pred_vreg)) {
-          first_pred_phi = GetPhi(first_pred_vreg);
-          first_pred_vreg = first_pred_phi->first_pred_vreg;
-        }
-        CHECK(!IsPhi(first_pred_vreg));
-        PhiData* phi_data = new (zone()) PhiData(
-            block->rpo_number(), phi, first_pred_vreg, first_pred_phi, zone());
-        auto res =
-            phi_map_.insert(std::make_pair(phi->virtual_register(), phi_data));
-        CHECK(res.second);
-        phi_map_guard_.Add(phi->virtual_register());
-      }
-    }
-  }
-
-  typedef ZoneVector<OperandMap*> OperandMaps;
-  typedef ZoneVector<PhiData*> PhiVector;
-
-  Zone* zone() const { return zone_; }
-  const InstructionSequence* sequence() const { return sequence_; }
-
-  Zone* const zone_;
-  const InstructionSequence* const sequence_;
-  BitVector phi_map_guard_;
-  PhiMap phi_map_;
-  OperandMaps incoming_maps_;
-  OperandMaps outgoing_maps_;
-};
-
-
-void RegisterAllocatorVerifier::VerifyGapMoves() {
-  BlockMaps block_maps(zone(), sequence());
-  VerifyGapMoves(&block_maps, true);
-  block_maps.PropagateUsesBackwards();
-  VerifyGapMoves(&block_maps, false);
+void BlockAssessments::PerformMoves(const Instruction* instruction) {
+  const ParallelMove* first =
+      instruction->GetParallelMove(Instruction::GapPosition::START);
+  PerformParallelMoves(first);
+  const ParallelMove* last =
+      instruction->GetParallelMove(Instruction::GapPosition::END);
+  PerformParallelMoves(last);
 }
 
+void BlockAssessments::PerformParallelMoves(const ParallelMove* moves) {
+  if (moves == nullptr) return;
 
-// Compute and verify outgoing values for every block.
-void RegisterAllocatorVerifier::VerifyGapMoves(BlockMaps* block_maps,
-                                               bool initial_pass) {
+  CHECK(map_for_moves_.empty());
+  for (MoveOperands* move : *moves) {
+    if (move->IsEliminated() || move->IsRedundant()) continue;
+    auto it = map_.find(move->source());
+    // The RHS of a parallel move should have been already assessed.
+    CHECK(it != map_.end());
+    // The LHS of a parallel move should not have been assigned in this
+    // parallel move.
+    CHECK(map_for_moves_.find(move->destination()) == map_for_moves_.end());
+    // Copy the assessment to the destination.
+    map_for_moves_[move->destination()] = it->second;
+  }
+  for (auto pair : map_for_moves_) {
+    map_[pair.first] = pair.second;
+  }
+  map_for_moves_.clear();
+}
+
+void BlockAssessments::DropRegisters() {
+  for (auto iterator = map().begin(), end = map().end(); iterator != end;) {
+    auto current = iterator;
+    ++iterator;
+    InstructionOperand op = current->first;
+    if (op.IsAnyRegister()) map().erase(current);
+  }
+}
+
+BlockAssessments* RegisterAllocatorVerifier::CreateForBlock(
+    const InstructionBlock* block) {
+  RpoNumber current_block_id = block->rpo_number();
+
+  BlockAssessments* ret = new (zone()) BlockAssessments(zone());
+  if (block->PredecessorCount() == 0) {
+    // TODO(mtrofin): the following check should hold, however, in certain
+    // unit tests it is invalidated by the last block. Investigate and
+    // normalize the CFG.
+    // CHECK(current_block_id.ToInt() == 0);
+    // The phi size test below is because we can, technically, have phi
+    // instructions with one argument. Some tests expose that, too.
+  } else if (block->PredecessorCount() == 1 && block->phis().size() == 0) {
+    const BlockAssessments* prev_block = assessments_[block->predecessors()[0]];
+    ret->CopyFrom(prev_block);
+  } else {
+    for (RpoNumber pred_id : block->predecessors()) {
+      // For every operand coming from any of the predecessors, create an
+      // Unfinalized assessment.
+      auto iterator = assessments_.find(pred_id);
+      if (iterator == assessments_.end()) {
+        // This block is the head of a loop, and this predecessor is the
+        // loopback
+        // arc.
+        // Validate this is a loop case, otherwise the CFG is malformed.
+        CHECK(pred_id >= current_block_id);
+        CHECK(block->IsLoopHeader());
+        continue;
+      }
+      const BlockAssessments* pred_assessments = iterator->second;
+      CHECK_NOT_NULL(pred_assessments);
+      for (auto pair : pred_assessments->map()) {
+        InstructionOperand operand = pair.first;
+        if (ret->map().find(operand) == ret->map().end()) {
+          ret->map().insert(std::make_pair(
+              operand, new (zone()) PendingAssessment(block, operand)));
+        }
+      }
+    }
+  }
+  return ret;
+}
+
+void RegisterAllocatorVerifier::ValidatePendingAssessment(
+    RpoNumber block_id, InstructionOperand op,
+    BlockAssessments* current_assessments, const PendingAssessment* assessment,
+    int virtual_register) {
+  // When validating a pending assessment, it is possible some of the
+  // assessments
+  // for the original operand (the one where the assessment was created for
+  // first) are also pending. To avoid recursion, we use a work list. To
+  // deal with cycles, we keep a set of seen nodes.
+  ZoneQueue<std::pair<const PendingAssessment*, int>> worklist(zone());
+  ZoneSet<RpoNumber> seen(zone());
+  worklist.push(std::make_pair(assessment, virtual_register));
+  seen.insert(block_id);
+
+  while (!worklist.empty()) {
+    auto work = worklist.front();
+    const PendingAssessment* current_assessment = work.first;
+    int current_virtual_register = work.second;
+    InstructionOperand current_operand = current_assessment->operand();
+    worklist.pop();
+
+    const InstructionBlock* origin = current_assessment->origin();
+    CHECK(origin->PredecessorCount() > 1 || origin->phis().size() > 0);
+
+    // Check if the virtual register is a phi first, instead of relying on
+    // the incoming assessments. In particular, this handles the case
+    // v1 = phi v0 v0, which structurally is identical to v0 having been
+    // defined at the top of a diamond, and arriving at the node joining the
+    // diamond's branches.
+    const PhiInstruction* phi = nullptr;
+    for (const PhiInstruction* candidate : origin->phis()) {
+      if (candidate->virtual_register() == current_virtual_register) {
+        phi = candidate;
+        break;
+      }
+    }
+
+    int op_index = 0;
+    for (RpoNumber pred : origin->predecessors()) {
+      int expected =
+          phi != nullptr ? phi->operands()[op_index] : current_virtual_register;
+
+      ++op_index;
+      auto pred_assignment = assessments_.find(pred);
+      if (pred_assignment == assessments_.end()) {
+        CHECK(origin->IsLoopHeader());
+        auto todo_iter = outstanding_assessments_.find(pred);
+        DelayedAssessments* set = nullptr;
+        if (todo_iter == outstanding_assessments_.end()) {
+          set = new (zone()) DelayedAssessments(zone());
+          outstanding_assessments_.insert(std::make_pair(pred, set));
+        } else {
+          set = todo_iter->second;
+        }
+        set->AddDelayedAssessment(current_operand, expected);
+        continue;
+      }
+
+      const BlockAssessments* pred_assessments = pred_assignment->second;
+      auto found_contribution = pred_assessments->map().find(current_operand);
+      CHECK(found_contribution != pred_assessments->map().end());
+      Assessment* contribution = found_contribution->second;
+
+      switch (contribution->kind()) {
+        case Final:
+          ValidateFinalAssessment(
+              block_id, current_operand, current_assessments,
+              FinalAssessment::cast(contribution), expected);
+          break;
+        case Pending: {
+          // This happens if we have a diamond feeding into another one, and
+          // the inner one never being used - other than for carrying the value.
+          const PendingAssessment* next = PendingAssessment::cast(contribution);
+          if (seen.find(pred) == seen.end()) {
+            worklist.push({next, expected});
+            seen.insert(pred);
+          }
+          // Note that we do not want to finalize pending assessments at the
+          // beginning of a block - which is the information we'd have
+          // available here. This is because this operand may be reused to
+          // define
+          // duplicate phis.
+          break;
+        }
+      }
+    }
+  }
+  // If everything checks out, we may make the assessment.
+  current_assessments->map()[op] =
+      new (zone()) FinalAssessment(virtual_register, assessment);
+}
+
+void RegisterAllocatorVerifier::ValidateFinalAssessment(
+    RpoNumber block_id, InstructionOperand op,
+    BlockAssessments* current_assessments, const FinalAssessment* assessment,
+    int virtual_register) {
+  if (assessment->virtual_register() == virtual_register) return;
+  // If we have 2 phis with the exact same operand list, and the first phi is
+  // used before the second one, via the operand incoming to the block,
+  // and the second one's operand is defined (via a parallel move) after the
+  // use, then the original operand will be assigned to the first phi. We
+  // then look at the original pending assessment to ascertain if op
+  // is virtual_register.
+  const PendingAssessment* old = assessment->original_pending_assessment();
+  CHECK_NOT_NULL(old);
+  ValidatePendingAssessment(block_id, op, current_assessments, old,
+                            virtual_register);
+}
+
+void RegisterAllocatorVerifier::ValidateUse(
+    RpoNumber block_id, BlockAssessments* current_assessments,
+    InstructionOperand op, int virtual_register) {
+  auto iterator = current_assessments->map().find(op);
+  // We should have seen this operand before.
+  CHECK(iterator != current_assessments->map().end());
+  Assessment* assessment = iterator->second;
+
+  switch (assessment->kind()) {
+    case Final:
+      ValidateFinalAssessment(block_id, op, current_assessments,
+                              FinalAssessment::cast(assessment),
+                              virtual_register);
+      break;
+    case Pending: {
+      const PendingAssessment* pending = PendingAssessment::cast(assessment);
+      ValidatePendingAssessment(block_id, op, current_assessments, pending,
+                                virtual_register);
+      break;
+    }
+  }
+}
+
+void RegisterAllocatorVerifier::VerifyGapMoves() {
+  CHECK(assessments_.empty());
+  CHECK(outstanding_assessments_.empty());
   const size_t block_count = sequence()->instruction_blocks().size();
   for (size_t block_index = 0; block_index < block_count; ++block_index) {
-    OperandMap* current =
-        block_maps->InitializeIncoming(block_index, initial_pass);
     const InstructionBlock* block =
         sequence()->instruction_blocks()[block_index];
+    BlockAssessments* block_assessments = CreateForBlock(block);
+
     for (int instr_index = block->code_start(); instr_index < block->code_end();
          ++instr_index) {
       const InstructionConstraint& instr_constraint = constraints_[instr_index];
       const Instruction* instr = instr_constraint.instruction_;
-      current->RunGaps(zone(), instr);
+      block_assessments->PerformMoves(instr);
+
       const OperandConstraint* op_constraints =
           instr_constraint.operand_constraints_;
       size_t count = 0;
@@ -724,24 +500,19 @@
           continue;
         }
         int virtual_register = op_constraints[count].virtual_register_;
-        const InstructionOperand* op = instr->InputAt(i);
-        if (!block_maps->IsPhi(virtual_register)) {
-          current->Use(op, virtual_register, initial_pass);
-        } else {
-          const PhiData* phi = block_maps->GetPhi(virtual_register);
-          current->UsePhi(op, phi, initial_pass);
-        }
+        InstructionOperand op = *instr->InputAt(i);
+        ValidateUse(block->rpo_number(), block_assessments, op,
+                    virtual_register);
       }
       for (size_t i = 0; i < instr->TempCount(); ++i, ++count) {
-        current->Drop(instr->TempAt(i));
+        block_assessments->Drop(*instr->TempAt(i));
       }
       if (instr->IsCall()) {
-        current->DropRegisters(config());
+        block_assessments->DropRegisters();
       }
       for (size_t i = 0; i < instr->OutputCount(); ++i, ++count) {
         int virtual_register = op_constraints[count].virtual_register_;
-        OperandMap::MapValue* value =
-            current->Define(zone(), instr->OutputAt(i), virtual_register);
+        block_assessments->AddDefinition(*instr->OutputAt(i), virtual_register);
         if (op_constraints[count].type_ == kRegisterAndSlot) {
           const AllocatedOperand* reg_op =
               AllocatedOperand::cast(instr->OutputAt(i));
@@ -749,13 +520,38 @@
           const AllocatedOperand* stack_op = AllocatedOperand::New(
               zone(), LocationOperand::LocationKind::STACK_SLOT, rep,
               op_constraints[i].spilled_slot_);
-          auto insert_result =
-              current->map().insert(std::make_pair(stack_op, value));
-          DCHECK(insert_result.second);
-          USE(insert_result);
+          block_assessments->AddDefinition(*stack_op, virtual_register);
         }
       }
     }
+    // Now commit the assessments for this block. If there are any delayed
+    // assessments, ValidatePendingAssessment should see this block, too.
+    assessments_[block->rpo_number()] = block_assessments;
+
+    auto todo_iter = outstanding_assessments_.find(block->rpo_number());
+    if (todo_iter == outstanding_assessments_.end()) continue;
+    DelayedAssessments* todo = todo_iter->second;
+    for (auto pair : todo->map()) {
+      InstructionOperand op = pair.first;
+      int vreg = pair.second;
+      auto found_op = block_assessments->map().find(op);
+      CHECK(found_op != block_assessments->map().end());
+      switch (found_op->second->kind()) {
+        case Final:
+          ValidateFinalAssessment(block->rpo_number(), op, block_assessments,
+                                  FinalAssessment::cast(found_op->second),
+                                  vreg);
+          break;
+        case Pending:
+          const PendingAssessment* pending =
+              PendingAssessment::cast(found_op->second);
+          ValidatePendingAssessment(block->rpo_number(), op, block_assessments,
+                                    pending, vreg);
+          block_assessments->map()[op] =
+              new (zone()) FinalAssessment(vreg, pending);
+          break;
+      }
+    }
   }
 }
 
diff --git a/src/compiler/register-allocator-verifier.h b/src/compiler/register-allocator-verifier.h
index f3ab54f..06d9029 100644
--- a/src/compiler/register-allocator-verifier.h
+++ b/src/compiler/register-allocator-verifier.h
@@ -14,6 +14,153 @@
 class InstructionOperand;
 class InstructionSequence;
 
+// The register allocator validator traverses instructions in the instruction
+// sequence, and verifies the correctness of machine operand substitutions of
+// virtual registers. It collects the virtual register instruction signatures
+// before register allocation. Then, after the register allocation pipeline
+// completes, it compares the operand substitutions against the pre-allocation
+// data.
+// At a high level, validation works as follows: we iterate through each block,
+// and, in a block, through each instruction; then:
+// - when an operand is the output of an instruction, we associate it to the
+// virtual register that the instruction sequence declares as its output. We
+// use the concept of "FinalAssessment" to model this.
+// - when an operand is used in an instruction, we check that the assessment
+// matches the expectation of the instruction
+// - moves simply copy the assessment over to the new operand
+// - blocks with more than one predecessor associate to each operand a "Pending"
+// assessment. The pending assessment remembers the operand and block where it
+// was created. Then, when the value is used (which may be as a different
+// operand, because of moves), we check that the virtual register at the use
+// site matches the definition of this pending operand: either the phi inputs
+// match, or, if it's not a phi, all the predecessors at the point the pending
+// assessment was defined have that operand assigned to the given virtual
+// register.
+// If a block is a loop header - so one or more of its predecessors are it or
+// below - we still treat uses of operands as above, but we record which operand
+// assessments haven't been made yet, and what virtual register they must
+// correspond to, and verify that when we are done with the respective
+// predecessor blocks.
+// This way, the algorithm always makes a final decision about the operands
+// in an instruction, ensuring convergence.
+// Operand assessments are recorded per block, as the result at the exit from
+// the block. When moving to a new block, we copy assessments from its single
+// predecessor, or, if the block has multiple predecessors, the mechanism was
+// described already.
+
+enum AssessmentKind { Final, Pending };
+
+class Assessment : public ZoneObject {
+ public:
+  AssessmentKind kind() const { return kind_; }
+
+ protected:
+  explicit Assessment(AssessmentKind kind) : kind_(kind) {}
+  AssessmentKind kind_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(Assessment);
+};
+
+// PendingAssessments are associated to operands coming from the multiple
+// predecessors of a block. We only record the operand and the block, and
+// will determine if the way the operand is defined (from the predecessors)
+// matches a particular use. This handles scenarios where multiple phis are
+// defined with identical operands, and the move optimizer moved down the moves
+// separating the 2 phis in the block defining them.
+class PendingAssessment final : public Assessment {
+ public:
+  explicit PendingAssessment(const InstructionBlock* origin,
+                             InstructionOperand operand)
+      : Assessment(Pending), origin_(origin), operand_(operand) {}
+
+  static const PendingAssessment* cast(const Assessment* assessment) {
+    CHECK(assessment->kind() == Pending);
+    return static_cast<const PendingAssessment*>(assessment);
+  }
+
+  const InstructionBlock* origin() const { return origin_; }
+  InstructionOperand operand() const { return operand_; }
+
+ private:
+  const InstructionBlock* const origin_;
+  InstructionOperand operand_;
+
+  DISALLOW_COPY_AND_ASSIGN(PendingAssessment);
+};
+
+// FinalAssessmens are associated to operands that we know to be a certain
+// virtual register.
+class FinalAssessment final : public Assessment {
+ public:
+  explicit FinalAssessment(int virtual_register,
+                           const PendingAssessment* original_pending = nullptr)
+      : Assessment(Final),
+        virtual_register_(virtual_register),
+        original_pending_assessment_(original_pending) {}
+
+  int virtual_register() const { return virtual_register_; }
+  static const FinalAssessment* cast(const Assessment* assessment) {
+    CHECK(assessment->kind() == Final);
+    return static_cast<const FinalAssessment*>(assessment);
+  }
+
+  const PendingAssessment* original_pending_assessment() const {
+    return original_pending_assessment_;
+  }
+
+ private:
+  int virtual_register_;
+  const PendingAssessment* original_pending_assessment_;
+
+  DISALLOW_COPY_AND_ASSIGN(FinalAssessment);
+};
+
+struct OperandAsKeyLess {
+  bool operator()(const InstructionOperand& a,
+                  const InstructionOperand& b) const {
+    return a.CompareCanonicalized(b);
+  }
+};
+
+// Assessments associated with a basic block.
+class BlockAssessments : public ZoneObject {
+ public:
+  typedef ZoneMap<InstructionOperand, Assessment*, OperandAsKeyLess> OperandMap;
+  explicit BlockAssessments(Zone* zone)
+      : map_(zone), map_for_moves_(zone), zone_(zone) {}
+  void Drop(InstructionOperand operand) { map_.erase(operand); }
+  void DropRegisters();
+  void AddDefinition(InstructionOperand operand, int virtual_register) {
+    auto existent = map_.find(operand);
+    if (existent != map_.end()) {
+      // Drop the assignment
+      map_.erase(existent);
+    }
+    map_.insert(
+        std::make_pair(operand, new (zone_) FinalAssessment(virtual_register)));
+  }
+
+  void PerformMoves(const Instruction* instruction);
+  void PerformParallelMoves(const ParallelMove* moves);
+  void CopyFrom(const BlockAssessments* other) {
+    CHECK(map_.empty());
+    CHECK_NOT_NULL(other);
+    map_.insert(other->map_.begin(), other->map_.end());
+  }
+
+  OperandMap& map() { return map_; }
+  const OperandMap& map() const { return map_; }
+  void Print() const;
+
+ private:
+  OperandMap map_;
+  OperandMap map_for_moves_;
+  Zone* zone_;
+
+  DISALLOW_COPY_AND_ASSIGN(BlockAssessments);
+};
+
 class RegisterAllocatorVerifier final : public ZoneObject {
  public:
   RegisterAllocatorVerifier(Zone* zone, const RegisterConfiguration* config,
@@ -53,10 +200,29 @@
     OperandConstraint* operand_constraints_;
   };
 
-  class BlockMaps;
-
   typedef ZoneVector<InstructionConstraint> Constraints;
 
+  class DelayedAssessments : public ZoneObject {
+   public:
+    explicit DelayedAssessments(Zone* zone) : map_(zone) {}
+
+    const ZoneMap<InstructionOperand, int, OperandAsKeyLess>& map() const {
+      return map_;
+    }
+
+    void AddDelayedAssessment(InstructionOperand op, int vreg) {
+      auto it = map_.find(op);
+      if (it == map_.end()) {
+        map_.insert(std::make_pair(op, vreg));
+      } else {
+        CHECK_EQ(it->second, vreg);
+      }
+    }
+
+   private:
+    ZoneMap<InstructionOperand, int, OperandAsKeyLess> map_;
+  };
+
   Zone* zone() const { return zone_; }
   const RegisterConfiguration* config() { return config_; }
   const InstructionSequence* sequence() const { return sequence_; }
@@ -70,13 +236,25 @@
                        OperandConstraint* constraint);
   void CheckConstraint(const InstructionOperand* op,
                        const OperandConstraint* constraint);
+  BlockAssessments* CreateForBlock(const InstructionBlock* block);
 
-  void VerifyGapMoves(BlockMaps* outgoing_mappings, bool initial_pass);
+  void ValidatePendingAssessment(RpoNumber block_id, InstructionOperand op,
+                                 BlockAssessments* current_assessments,
+                                 const PendingAssessment* assessment,
+                                 int virtual_register);
+  void ValidateFinalAssessment(RpoNumber block_id, InstructionOperand op,
+                               BlockAssessments* current_assessments,
+                               const FinalAssessment* assessment,
+                               int virtual_register);
+  void ValidateUse(RpoNumber block_id, BlockAssessments* current_assessments,
+                   InstructionOperand op, int virtual_register);
 
   Zone* const zone_;
   const RegisterConfiguration* config_;
   const InstructionSequence* const sequence_;
   Constraints constraints_;
+  ZoneMap<RpoNumber, BlockAssessments*> assessments_;
+  ZoneMap<RpoNumber, DelayedAssessments*> outstanding_assessments_;
 
   DISALLOW_COPY_AND_ASSIGN(RegisterAllocatorVerifier);
 };
diff --git a/src/compiler/register-allocator.cc b/src/compiler/register-allocator.cc
index 82faf75..4683672 100644
--- a/src/compiler/register-allocator.cc
+++ b/src/compiler/register-allocator.cc
@@ -26,23 +26,22 @@
 }
 
 int GetRegisterCount(const RegisterConfiguration* cfg, RegisterKind kind) {
-  return kind == DOUBLE_REGISTERS ? cfg->num_double_registers()
-                                  : cfg->num_general_registers();
+  return kind == FP_REGISTERS ? cfg->num_double_registers()
+                              : cfg->num_general_registers();
 }
 
 
 int GetAllocatableRegisterCount(const RegisterConfiguration* cfg,
                                 RegisterKind kind) {
-  return kind == DOUBLE_REGISTERS
-             ? cfg->num_allocatable_aliased_double_registers()
-             : cfg->num_allocatable_general_registers();
+  return kind == FP_REGISTERS ? cfg->num_allocatable_aliased_double_registers()
+                              : cfg->num_allocatable_general_registers();
 }
 
 
 const int* GetAllocatableRegisterCodes(const RegisterConfiguration* cfg,
                                        RegisterKind kind) {
-  return kind == DOUBLE_REGISTERS ? cfg->allocatable_double_codes()
-                                  : cfg->allocatable_general_codes();
+  return kind == FP_REGISTERS ? cfg->allocatable_double_codes()
+                              : cfg->allocatable_general_codes();
 }
 
 
@@ -81,7 +80,7 @@
 bool IsOutputDoubleRegisterOf(Instruction* instr, DoubleRegister reg) {
   for (size_t i = 0; i < instr->OutputCount(); i++) {
     InstructionOperand* output = instr->OutputAt(i);
-    if (output->IsDoubleRegister() &&
+    if (output->IsFPRegister() &&
         LocationOperand::cast(output)->GetDoubleRegister().is(reg)) {
       return true;
     }
@@ -351,10 +350,10 @@
     case InstructionOperand::UNALLOCATED:
       return UsePositionHintType::kUnresolved;
     case InstructionOperand::ALLOCATED:
-      if (op.IsRegister() || op.IsDoubleRegister()) {
+      if (op.IsRegister() || op.IsFPRegister()) {
         return UsePositionHintType::kOperand;
       } else {
-        DCHECK(op.IsStackSlot() || op.IsDoubleStackSlot());
+        DCHECK(op.IsStackSlot() || op.IsFPStackSlot());
         return UsePositionHintType::kNone;
       }
     case InstructionOperand::INVALID:
@@ -489,8 +488,7 @@
 
 
 RegisterKind LiveRange::kind() const {
-  return IsFloatingPoint(representation()) ? DOUBLE_REGISTERS
-                                           : GENERAL_REGISTERS;
+  return IsFloatingPoint(representation()) ? FP_REGISTERS : GENERAL_REGISTERS;
 }
 
 
@@ -728,11 +726,11 @@
     if (!pos->HasOperand()) continue;
     switch (pos->type()) {
       case UsePositionType::kRequiresSlot:
-        DCHECK(spill_op.IsStackSlot() || spill_op.IsDoubleStackSlot());
+        DCHECK(spill_op.IsStackSlot() || spill_op.IsFPStackSlot());
         InstructionOperand::ReplaceWith(pos->operand(), &spill_op);
         break;
       case UsePositionType::kRequiresRegister:
-        DCHECK(op.IsRegister() || op.IsDoubleRegister());
+        DCHECK(op.IsRegister() || op.IsFPRegister());
       // Fall through.
       case UsePositionType::kAny:
         InstructionOperand::ReplaceWith(pos->operand(), &op);
@@ -1400,10 +1398,6 @@
       debug_name_(debug_name),
       config_(config),
       phi_map_(allocation_zone()),
-      allocatable_codes_(this->config()->num_general_registers(), -1,
-                         allocation_zone()),
-      allocatable_double_codes_(this->config()->num_double_registers(), -1,
-                                allocation_zone()),
       live_in_sets_(code->InstructionBlockCount(), nullptr, allocation_zone()),
       live_out_sets_(code->InstructionBlockCount(), nullptr, allocation_zone()),
       live_ranges_(code->VirtualRegisterCount() * 2, nullptr,
@@ -1418,10 +1412,6 @@
       assigned_double_registers_(nullptr),
       virtual_register_count_(code->VirtualRegisterCount()),
       preassigned_slot_ranges_(zone) {
-  DCHECK(this->config()->num_general_registers() <=
-         RegisterConfiguration::kMaxGeneralRegisters);
-  DCHECK(this->config()->num_double_registers() <=
-         RegisterConfiguration::kMaxDoubleRegisters);
   assigned_registers_ = new (code_zone())
       BitVector(this->config()->num_general_registers(), code_zone());
   assigned_double_registers_ = new (code_zone())
@@ -1591,7 +1581,7 @@
 
 
 void RegisterAllocationData::MarkAllocated(RegisterKind kind, int index) {
-  if (kind == DOUBLE_REGISTERS) {
+  if (kind == FP_REGISTERS) {
     assigned_double_registers_->Add(index);
   } else {
     DCHECK(kind == GENERAL_REGISTERS);
@@ -1942,7 +1932,7 @@
                                   MachineRepresentation::kFloat64);
     DCHECK(result->IsFixed());
     result->set_assigned_register(index);
-    data()->MarkAllocated(DOUBLE_REGISTERS, index);
+    data()->MarkAllocated(FP_REGISTERS, index);
     data()->fixed_double_live_ranges()[index] = result;
   }
   return result;
@@ -1959,7 +1949,7 @@
   } else if (operand->IsRegister()) {
     return FixedLiveRangeFor(
         LocationOperand::cast(operand)->GetRegister().code());
-  } else if (operand->IsDoubleRegister()) {
+  } else if (operand->IsFPRegister()) {
     return FixedDoubleLiveRangeFor(
         LocationOperand::cast(operand)->GetDoubleRegister().code());
   } else {
@@ -2590,8 +2580,8 @@
 
 const ZoneVector<TopLevelLiveRange*>& RegisterAllocator::GetFixedRegisters()
     const {
-  return mode() == DOUBLE_REGISTERS ? data()->fixed_double_live_ranges()
-                                    : data()->fixed_live_ranges();
+  return mode() == FP_REGISTERS ? data()->fixed_double_live_ranges()
+                                : data()->fixed_live_ranges();
 }
 
 
@@ -2616,7 +2606,7 @@
   inactive_live_ranges().reserve(8);
   // TryAllocateFreeReg and AllocateBlockedReg assume this
   // when allocating local arrays.
-  DCHECK(RegisterConfiguration::kMaxDoubleRegisters >=
+  DCHECK(RegisterConfiguration::kMaxFPRegisters >=
          this->data()->config()->num_general_registers());
 }
 
@@ -2813,7 +2803,7 @@
 
 
 bool LinearScanAllocator::TryAllocateFreeReg(LiveRange* current) {
-  LifetimePosition free_until_pos[RegisterConfiguration::kMaxDoubleRegisters];
+  LifetimePosition free_until_pos[RegisterConfiguration::kMaxFPRegisters];
 
   for (int i = 0; i < num_registers(); i++) {
     free_until_pos[i] = LifetimePosition::MaxPosition();
@@ -2899,8 +2889,8 @@
     return;
   }
 
-  LifetimePosition use_pos[RegisterConfiguration::kMaxDoubleRegisters];
-  LifetimePosition block_pos[RegisterConfiguration::kMaxDoubleRegisters];
+  LifetimePosition use_pos[RegisterConfiguration::kMaxFPRegisters];
+  LifetimePosition block_pos[RegisterConfiguration::kMaxFPRegisters];
 
   for (int i = 0; i < num_registers(); i++) {
     use_pos[i] = block_pos[i] = LifetimePosition::MaxPosition();
@@ -2947,9 +2937,13 @@
   LifetimePosition pos = use_pos[reg];
 
   if (pos < register_use->pos()) {
-    // All registers are blocked before the first use that requires a register.
-    // Spill starting part of live range up to that use.
-    SpillBetween(current, current->Start(), register_use->pos());
+    if (LifetimePosition::ExistsGapPositionBetween(current->Start(),
+                                                   register_use->pos())) {
+      SpillBetween(current, current->Start(), register_use->pos());
+    } else {
+      SetLiveRangeAssignedRegister(current, reg);
+      SplitAndSpillIntersecting(current);
+    }
     return;
   }
 
@@ -2994,6 +2988,8 @@
         // live-ranges: ranges are allocated in order of their start positions,
         // ranges are retired from active/inactive when the start of the
         // current live-range is larger than their end.
+        DCHECK(LifetimePosition::ExistsGapPositionBetween(current->Start(),
+                                                          next_pos->pos()));
         SpillBetweenUntil(range, spill_pos, current->Start(), next_pos->pos());
       }
       ActiveToHandled(range);
@@ -3092,7 +3088,7 @@
             ? range->TopLevel()->GetSpillRange()
             : data()->AssignSpillRangeToLiveRange(range->TopLevel());
     bool merged = first_op_spill->TryMerge(spill_range);
-    CHECK(merged);
+    if (!merged) return false;
     Spill(range);
     return true;
   } else if (pos->pos() > range->Start().NextStart()) {
@@ -3101,7 +3097,7 @@
             ? range->TopLevel()->GetSpillRange()
             : data()->AssignSpillRangeToLiveRange(range->TopLevel());
     bool merged = first_op_spill->TryMerge(spill_range);
-    CHECK(merged);
+    if (!merged) return false;
     SpillBetween(range, range->Start(), pos->pos());
     DCHECK(UnhandledIsSorted());
     return true;
@@ -3405,7 +3401,8 @@
     BitVector* live = live_in_sets[block->rpo_number().ToInt()];
     BitVector::Iterator iterator(live);
     while (!iterator.Done()) {
-      LiveRangeBoundArray* array = finder.ArrayFor(iterator.Current());
+      int vreg = iterator.Current();
+      LiveRangeBoundArray* array = finder.ArrayFor(vreg);
       for (const RpoNumber& pred : block->predecessors()) {
         FindResult result;
         const InstructionBlock* pred_block = code()->InstructionBlockAt(pred);
@@ -3622,6 +3619,7 @@
     worklist.push(iterator.Current());
   }
 
+  ZoneSet<std::pair<RpoNumber, int>> done_moves(temp_zone);
   // Seek the deferred blocks that dominate locations requiring spill operands,
   // and spill there. We only need to spill at the start of such blocks.
   BitVector done_blocks(
@@ -3648,10 +3646,15 @@
 
         InstructionOperand pred_op = bound->range_->GetAssignedOperand();
 
-        data()->AddGapMove(spill_block->first_instruction_index(),
-                           Instruction::GapPosition::START, pred_op,
-                           spill_operand);
-        spill_block->mark_needs_frame();
+        RpoNumber spill_block_number = spill_block->rpo_number();
+        if (done_moves.find(std::make_pair(
+                spill_block_number, range->vreg())) == done_moves.end()) {
+          data()->AddGapMove(spill_block->first_instruction_index(),
+                             Instruction::GapPosition::START, pred_op,
+                             spill_operand);
+          done_moves.insert(std::make_pair(spill_block_number, range->vreg()));
+          spill_block->mark_needs_frame();
+        }
       }
     }
   }
diff --git a/src/compiler/register-allocator.h b/src/compiler/register-allocator.h
index d6ed005..c67d60e 100644
--- a/src/compiler/register-allocator.h
+++ b/src/compiler/register-allocator.h
@@ -14,11 +14,7 @@
 namespace internal {
 namespace compiler {
 
-enum RegisterKind {
-  GENERAL_REGISTERS,
-  DOUBLE_REGISTERS
-};
-
+enum RegisterKind { GENERAL_REGISTERS, FP_REGISTERS };
 
 // This class represents a single point of a InstructionOperand's lifetime. For
 // each instruction there are four lifetime positions:
@@ -46,6 +42,14 @@
     return LifetimePosition(index * kStep + kHalfStep);
   }
 
+  static bool ExistsGapPositionBetween(LifetimePosition pos1,
+                                       LifetimePosition pos2) {
+    if (pos1 > pos2) std::swap(pos1, pos2);
+    LifetimePosition next(pos1.value_ + 1);
+    if (next.IsGapPosition()) return next < pos2;
+    return next.NextFullStart() < pos2;
+  }
+
   // Returns a numeric representation of this lifetime position.
   int value() const { return value_; }
 
@@ -238,11 +242,9 @@
 static const int32_t kUnassignedRegister =
     RegisterConfiguration::kMaxGeneralRegisters;
 
-
-static_assert(kUnassignedRegister <= RegisterConfiguration::kMaxDoubleRegisters,
+static_assert(kUnassignedRegister <= RegisterConfiguration::kMaxFPRegisters,
               "kUnassignedRegister too small");
 
-
 // Representation of a use position.
 class UsePosition final : public ZoneObject {
  public:
@@ -851,8 +853,6 @@
   const char* const debug_name_;
   const RegisterConfiguration* const config_;
   PhiMap phi_map_;
-  ZoneVector<int> allocatable_codes_;
-  ZoneVector<int> allocatable_double_codes_;
   ZoneVector<BitVector*> live_in_sets_;
   ZoneVector<BitVector*> live_out_sets_;
   ZoneVector<TopLevelLiveRange*> live_ranges_;
diff --git a/src/compiler/representation-change.cc b/src/compiler/representation-change.cc
index f59c8bc..180355d 100644
--- a/src/compiler/representation-change.cc
+++ b/src/compiler/representation-change.cc
@@ -188,12 +188,14 @@
   // Select the correct X -> Tagged operator.
   const Operator* op;
   if (output_rep == MachineRepresentation::kBit) {
-    op = simplified()->ChangeBitToBool();
+    op = simplified()->ChangeBitToTagged();
   } else if (IsWord(output_rep)) {
-    if (output_type->Is(Type::Unsigned32())) {
-      op = simplified()->ChangeUint32ToTagged();
+    if (output_type->Is(Type::Signed31())) {
+      op = simplified()->ChangeInt31ToTaggedSigned();
     } else if (output_type->Is(Type::Signed32())) {
       op = simplified()->ChangeInt32ToTagged();
+    } else if (output_type->Is(Type::Unsigned32())) {
+      op = simplified()->ChangeUint32ToTagged();
     } else {
       return TypeError(node, output_rep, output_type,
                        MachineRepresentation::kTagged);
@@ -201,9 +203,24 @@
   } else if (output_rep ==
              MachineRepresentation::kFloat32) {  // float32 -> float64 -> tagged
     node = InsertChangeFloat32ToFloat64(node);
+    // TODO(bmeurer): Pass -0 hint to ChangeFloat64ToTagged.
     op = simplified()->ChangeFloat64ToTagged();
   } else if (output_rep == MachineRepresentation::kFloat64) {
-    op = simplified()->ChangeFloat64ToTagged();
+    if (output_type->Is(Type::Signed31())) {  // float64 -> int32 -> tagged
+      node = InsertChangeFloat64ToInt32(node);
+      op = simplified()->ChangeInt31ToTaggedSigned();
+    } else if (output_type->Is(
+                   Type::Signed32())) {  // float64 -> int32 -> tagged
+      node = InsertChangeFloat64ToInt32(node);
+      op = simplified()->ChangeInt32ToTagged();
+    } else if (output_type->Is(
+                   Type::Unsigned32())) {  // float64 -> uint32 -> tagged
+      node = InsertChangeFloat64ToUint32(node);
+      op = simplified()->ChangeUint32ToTagged();
+    } else {
+      // TODO(bmeurer): Pass -0 hint to ChangeFloat64ToTagged.
+      op = simplified()->ChangeFloat64ToTagged();
+    }
   } else {
     return TypeError(node, output_rep, output_type,
                      MachineRepresentation::kTagged);
@@ -253,7 +270,7 @@
       op = machine()->TruncateFloat64ToFloat32();
     }
   } else if (output_rep == MachineRepresentation::kTagged) {
-    if (output_type->Is(Type::Number())) {
+    if (output_type->Is(Type::NumberOrUndefined())) {
       op = simplified()
                ->ChangeTaggedToFloat64();  // tagged -> float64 -> float32
       node = jsgraph()->graph()->NewNode(op, node);
@@ -305,7 +322,13 @@
       op = machine()->ChangeUint32ToFloat64();
     }
   } else if (output_rep == MachineRepresentation::kTagged) {
-    if (output_type->Is(Type::Number())) {
+    if (output_type->Is(Type::Undefined())) {
+      return jsgraph()->Float64Constant(
+          std::numeric_limits<double>::quiet_NaN());
+    } else if (output_type->Is(Type::TaggedSigned())) {
+      node = InsertChangeTaggedSignedToInt32(node);
+      op = machine()->ChangeInt32ToFloat64();
+    } else if (output_type->Is(Type::NumberOrUndefined())) {
       op = simplified()->ChangeTaggedToFloat64();
     }
   } else if (output_rep == MachineRepresentation::kFloat32) {
@@ -348,7 +371,7 @@
     } else if (output_type->Is(Type::Signed32())) {
       op = machine()->ChangeFloat64ToInt32();
     } else if (truncation.TruncatesToWord32()) {
-      op = machine()->TruncateFloat64ToInt32(TruncationMode::kJavaScript);
+      op = machine()->TruncateFloat64ToWord32();
     }
   } else if (output_rep == MachineRepresentation::kFloat32) {
     node = InsertChangeFloat32ToFloat64(node);  // float32 -> float64 -> int32
@@ -357,16 +380,17 @@
     } else if (output_type->Is(Type::Signed32())) {
       op = machine()->ChangeFloat64ToInt32();
     } else if (truncation.TruncatesToWord32()) {
-      op = machine()->TruncateFloat64ToInt32(TruncationMode::kJavaScript);
+      op = machine()->TruncateFloat64ToWord32();
     }
   } else if (output_rep == MachineRepresentation::kTagged) {
-    if (output_type->Is(Type::Unsigned32())) {
+    if (output_type->Is(Type::TaggedSigned())) {
+      op = simplified()->ChangeTaggedSignedToInt32();
+    } else if (output_type->Is(Type::Unsigned32())) {
       op = simplified()->ChangeTaggedToUint32();
     } else if (output_type->Is(Type::Signed32())) {
       op = simplified()->ChangeTaggedToInt32();
     } else if (truncation.TruncatesToWord32()) {
-      node = InsertChangeTaggedToFloat64(node);
-      op = machine()->TruncateFloat64ToInt32(TruncationMode::kJavaScript);
+      op = simplified()->TruncateTaggedToWord32();
     }
   }
   if (op == nullptr) {
@@ -394,7 +418,7 @@
   // Select the correct X -> Bit operator.
   const Operator* op;
   if (output_rep == MachineRepresentation::kTagged) {
-    op = simplified()->ChangeBoolToBit();
+    op = simplified()->ChangeTaggedToBit();
   } else {
     return TypeError(node, output_rep, output_type,
                      MachineRepresentation::kBit);
@@ -530,6 +554,18 @@
   return jsgraph()->graph()->NewNode(machine()->ChangeFloat32ToFloat64(), node);
 }
 
+Node* RepresentationChanger::InsertChangeFloat64ToUint32(Node* node) {
+  return jsgraph()->graph()->NewNode(machine()->ChangeFloat64ToUint32(), node);
+}
+
+Node* RepresentationChanger::InsertChangeFloat64ToInt32(Node* node) {
+  return jsgraph()->graph()->NewNode(machine()->ChangeFloat64ToInt32(), node);
+}
+
+Node* RepresentationChanger::InsertChangeTaggedSignedToInt32(Node* node) {
+  return jsgraph()->graph()->NewNode(simplified()->ChangeTaggedSignedToInt32(),
+                                     node);
+}
 
 Node* RepresentationChanger::InsertChangeTaggedToFloat64(Node* node) {
   return jsgraph()->graph()->NewNode(simplified()->ChangeTaggedToFloat64(),
diff --git a/src/compiler/representation-change.h b/src/compiler/representation-change.h
index 24e28f3..839335d 100644
--- a/src/compiler/representation-change.h
+++ b/src/compiler/representation-change.h
@@ -31,6 +31,9 @@
   bool TruncatesToWord32() const {
     return LessGeneral(kind_, TruncationKind::kWord32);
   }
+  bool TruncatesToFloat64() const {
+    return LessGeneral(kind_, TruncationKind::kFloat64);
+  }
   bool TruncatesNaNToZero() {
     return LessGeneral(kind_, TruncationKind::kWord32) ||
            LessGeneral(kind_, TruncationKind::kBool);
@@ -130,6 +133,9 @@
                   Type* output_type, MachineRepresentation use);
   Node* MakeTruncatedInt32Constant(double value);
   Node* InsertChangeFloat32ToFloat64(Node* node);
+  Node* InsertChangeFloat64ToInt32(Node* node);
+  Node* InsertChangeFloat64ToUint32(Node* node);
+  Node* InsertChangeTaggedSignedToInt32(Node* node);
   Node* InsertChangeTaggedToFloat64(Node* node);
 
   JSGraph* jsgraph() const { return jsgraph_; }
diff --git a/src/compiler/s390/code-generator-s390.cc b/src/compiler/s390/code-generator-s390.cc
index 1d96856..fece596 100644
--- a/src/compiler/s390/code-generator-s390.cc
+++ b/src/compiler/s390/code-generator-s390.cc
@@ -67,8 +67,8 @@
 
   MemOperand MemoryOperand(AddressingMode* mode, size_t* first_index) {
     const size_t index = *first_index;
-    *mode = AddressingModeField::decode(instr_->opcode());
-    switch (*mode) {
+    if (mode) *mode = AddressingModeField::decode(instr_->opcode());
+    switch (AddressingModeField::decode(instr_->opcode())) {
       case kMode_None:
         break;
       case kMode_MRI:
@@ -82,13 +82,14 @@
     return MemOperand(r0);
   }
 
-  MemOperand MemoryOperand(AddressingMode* mode, size_t first_index = 0) {
+  MemOperand MemoryOperand(AddressingMode* mode = NULL,
+                           size_t first_index = 0) {
     return MemoryOperand(mode, &first_index);
   }
 
   MemOperand ToMemOperand(InstructionOperand* op) const {
     DCHECK_NOT_NULL(op);
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToMemOperand(AllocatedOperand::cast(op)->index());
   }
 
@@ -155,7 +156,8 @@
         value_(value),
         scratch0_(scratch0),
         scratch1_(scratch1),
-        mode_(mode) {}
+        mode_(mode),
+        must_save_lr_(!gen->frame_access_state()->has_frame()) {}
 
   OutOfLineRecordWrite(CodeGenerator* gen, Register object, int32_t offset,
                        Register value, Register scratch0, Register scratch1,
@@ -236,15 +238,10 @@
 #if V8_TARGET_ARCH_S390X
         case kS390_Add:
         case kS390_Sub:
-          return lt;
 #endif
         case kS390_AddWithOverflow32:
         case kS390_SubWithOverflow32:
-#if V8_TARGET_ARCH_S390X
-          return ne;
-#else
           return lt;
-#endif
         default:
           break;
       }
@@ -254,15 +251,10 @@
 #if V8_TARGET_ARCH_S390X
         case kS390_Add:
         case kS390_Sub:
-          return ge;
 #endif
         case kS390_AddWithOverflow32:
         case kS390_SubWithOverflow32:
-#if V8_TARGET_ARCH_S390X
-          return eq;
-#else
           return ge;
-#endif
         default:
           break;
       }
@@ -332,16 +324,16 @@
   } while (0)
 
 #if V8_TARGET_ARCH_S390X
-#define ASSEMBLE_ADD_WITH_OVERFLOW32()      \
-  do {                                      \
-    ASSEMBLE_BINOP(AddP, AddP);             \
-    __ TestIfInt32(i.OutputRegister(), r0); \
+#define ASSEMBLE_ADD_WITH_OVERFLOW32()                   \
+  do {                                                   \
+    ASSEMBLE_ADD_WITH_OVERFLOW();                        \
+    __ LoadAndTestP_ExtendSrc(kScratchReg, kScratchReg); \
   } while (0)
 
-#define ASSEMBLE_SUB_WITH_OVERFLOW32()      \
-  do {                                      \
-    ASSEMBLE_BINOP(SubP, SubP);             \
-    __ TestIfInt32(i.OutputRegister(), r0); \
+#define ASSEMBLE_SUB_WITH_OVERFLOW32()                   \
+  do {                                                   \
+    ASSEMBLE_SUB_WITH_OVERFLOW();                        \
+    __ LoadAndTestP_ExtendSrc(kScratchReg, kScratchReg); \
   } while (0)
 #else
 #define ASSEMBLE_ADD_WITH_OVERFLOW32 ASSEMBLE_ADD_WITH_OVERFLOW
@@ -461,7 +453,6 @@
     __ asm_instr(value, operand);                        \
   } while (0)
 
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_LOAD_FLOAT(asm_instr, width)              \
   do {                                                             \
     DoubleRegister result = i.OutputDoubleRegister();              \
@@ -469,7 +460,6 @@
     AddressingMode mode = kMode_None;                              \
     MemOperand operand = i.MemoryOperand(&mode, index);            \
     Register offset = operand.rb();                                \
-    __ lgfr(offset, offset);                                       \
     if (HasRegisterInput(instr, 2)) {                              \
       __ CmpLogical32(offset, i.InputRegister(2));                 \
     } else {                                                       \
@@ -477,11 +467,11 @@
     }                                                              \
     auto ool = new (zone()) OutOfLineLoadNAN##width(this, result); \
     __ bge(ool->entry());                                          \
+    __ CleanUInt32(offset);                                        \
     __ asm_instr(result, operand);                                 \
     __ bind(ool->exit());                                          \
   } while (0)
 
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_LOAD_INTEGER(asm_instr)             \
   do {                                                       \
     Register result = i.OutputRegister();                    \
@@ -489,7 +479,6 @@
     AddressingMode mode = kMode_None;                        \
     MemOperand operand = i.MemoryOperand(&mode, index);      \
     Register offset = operand.rb();                          \
-    __ lgfr(offset, offset);                                 \
     if (HasRegisterInput(instr, 2)) {                        \
       __ CmpLogical32(offset, i.InputRegister(2));           \
     } else {                                                 \
@@ -497,11 +486,11 @@
     }                                                        \
     auto ool = new (zone()) OutOfLineLoadZero(this, result); \
     __ bge(ool->entry());                                    \
+    __ CleanUInt32(offset);                                  \
     __ asm_instr(result, operand);                           \
     __ bind(ool->exit());                                    \
   } while (0)
 
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_STORE_FLOAT32()                \
   do {                                                  \
     Label done;                                         \
@@ -509,7 +498,6 @@
     AddressingMode mode = kMode_None;                   \
     MemOperand operand = i.MemoryOperand(&mode, index); \
     Register offset = operand.rb();                     \
-    __ lgfr(offset, offset);                            \
     if (HasRegisterInput(instr, 2)) {                   \
       __ CmpLogical32(offset, i.InputRegister(2));      \
     } else {                                            \
@@ -517,11 +505,11 @@
     }                                                   \
     __ bge(&done);                                      \
     DoubleRegister value = i.InputDoubleRegister(3);    \
+    __ CleanUInt32(offset);                             \
     __ StoreFloat32(value, operand);                    \
     __ bind(&done);                                     \
   } while (0)
 
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_STORE_DOUBLE()                 \
   do {                                                  \
     Label done;                                         \
@@ -530,7 +518,6 @@
     MemOperand operand = i.MemoryOperand(&mode, index); \
     DCHECK_EQ(kMode_MRR, mode);                         \
     Register offset = operand.rb();                     \
-    __ lgfr(offset, offset);                            \
     if (HasRegisterInput(instr, 2)) {                   \
       __ CmpLogical32(offset, i.InputRegister(2));      \
     } else {                                            \
@@ -538,11 +525,11 @@
     }                                                   \
     __ bge(&done);                                      \
     DoubleRegister value = i.InputDoubleRegister(3);    \
+    __ CleanUInt32(offset);                             \
     __ StoreDouble(value, operand);                     \
     __ bind(&done);                                     \
   } while (0)
 
-// TODO(mbrandy): fix paths that produce garbage in offset's upper 32-bits.
 #define ASSEMBLE_CHECKED_STORE_INTEGER(asm_instr)       \
   do {                                                  \
     Label done;                                         \
@@ -550,7 +537,6 @@
     AddressingMode mode = kMode_None;                   \
     MemOperand operand = i.MemoryOperand(&mode, index); \
     Register offset = operand.rb();                     \
-    __ lgfr(offset, offset);                            \
     if (HasRegisterInput(instr, 2)) {                   \
       __ CmpLogical32(offset, i.InputRegister(2));      \
     } else {                                            \
@@ -558,6 +544,7 @@
     }                                                   \
     __ bge(&done);                                      \
     Register value = i.InputRegister(3);                \
+    __ CleanUInt32(offset);                             \
     __ asm_instr(value, operand);                       \
     __ bind(&done);                                     \
   } while (0)
@@ -566,8 +553,6 @@
   __ LeaveFrame(StackFrame::MANUAL);
 }
 
-void CodeGenerator::AssembleSetupStackPointer() {}
-
 void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
   int sp_slot_delta = TailCallFrameStackSlotDelta(stack_param_delta);
   if (sp_slot_delta > 0) {
@@ -614,7 +599,8 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   S390OperandConverter i(this, instr);
   ArchOpcode opcode = ArchOpcodeField::decode(instr->opcode());
 
@@ -656,6 +642,14 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!instr->InputAt(0)->IsImmediate());
+      __ Jump(i.InputRegister(0));
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       EnsureSpaceForLazyDeopt();
       Register func = i.InputRegister(0);
@@ -735,7 +729,9 @@
           BuildTranslation(instr, -1, 0, OutputFrameStateCombine::Ignore());
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -1306,7 +1302,7 @@
       break;
 #endif
     case kS390_Push:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ lay(sp, MemOperand(sp, -kDoubleSize));
         __ StoreDouble(i.InputDoubleRegister(0), MemOperand(sp));
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
@@ -1318,7 +1314,7 @@
     case kS390_PushFrame: {
       int num_slots = i.InputInt32(1);
       __ lay(sp, MemOperand(sp, -num_slots * kPointerSize));
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ StoreDouble(i.InputDoubleRegister(0),
                  MemOperand(sp));
       } else {
@@ -1329,7 +1325,7 @@
     }
     case kS390_StoreToStackSlot: {
       int slot = i.InputInt32(1);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ StoreDouble(i.InputDoubleRegister(0),
                        MemOperand(sp, slot * kPointerSize));
       } else {
@@ -1555,6 +1551,9 @@
     case kS390_LoadWordS16:
       ASSEMBLE_LOAD_INTEGER(LoadHalfWordP);
       break;
+    case kS390_LoadWordU32:
+      ASSEMBLE_LOAD_INTEGER(LoadlW);
+      break;
     case kS390_LoadWordS32:
       ASSEMBLE_LOAD_INTEGER(LoadW);
       break;
@@ -1607,7 +1606,7 @@
       ASSEMBLE_CHECKED_LOAD_INTEGER(LoadLogicalHalfWordP);
       break;
     case kCheckedLoadWord32:
-      ASSEMBLE_CHECKED_LOAD_INTEGER(LoadW);
+      ASSEMBLE_CHECKED_LOAD_INTEGER(LoadlW);
       break;
     case kCheckedLoadWord64:
 #if V8_TARGET_ARCH_S390X
@@ -1644,10 +1643,35 @@
     case kCheckedStoreFloat64:
       ASSEMBLE_CHECKED_STORE_DOUBLE();
       break;
+    case kAtomicLoadInt8:
+      __ LoadB(i.OutputRegister(), i.MemoryOperand());
+      break;
+    case kAtomicLoadUint8:
+      __ LoadlB(i.OutputRegister(), i.MemoryOperand());
+      break;
+    case kAtomicLoadInt16:
+      __ LoadHalfWordP(i.OutputRegister(), i.MemoryOperand());
+      break;
+    case kAtomicLoadUint16:
+      __ LoadLogicalHalfWordP(i.OutputRegister(), i.MemoryOperand());
+      break;
+    case kAtomicLoadWord32:
+      __ LoadlW(i.OutputRegister(), i.MemoryOperand());
+      break;
+    case kAtomicStoreWord8:
+      __ StoreByte(i.InputRegister(0), i.MemoryOperand(NULL, 1));
+      break;
+    case kAtomicStoreWord16:
+      __ StoreHalfWord(i.InputRegister(0), i.MemoryOperand(NULL, 1));
+      break;
+    case kAtomicStoreWord32:
+      __ StoreW(i.InputRegister(0), i.MemoryOperand(NULL, 1));
+      break;
     default:
       UNREACHABLE();
       break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 // Assembles branches after an instruction.
@@ -1744,7 +1768,7 @@
   S390OperandConverter i(this, instr);
   Register input = i.InputRegister(0);
   for (size_t index = 2; index < instr->InputCount(); index += 2) {
-    __ CmpP(input, Operand(i.InputInt32(index + 0)));
+    __ Cmp32(input, Operand(i.InputInt32(index + 0)));
     __ beq(GetLabel(i.InputRpo(index + 1)));
   }
   AssembleArchJump(i.InputRpo(1));
@@ -1767,17 +1791,41 @@
   __ Jump(kScratchReg);
 }
 
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
   // TODO(turbofan): We should be able to generate better code by sharing the
   // actual final call site and just bl'ing to it here, similar to what we do
   // in the lithium backend.
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ Call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
+  return kSuccess;
 }
 
-void CodeGenerator::AssemblePrologue() {
+void CodeGenerator::FinishFrame(Frame* frame) {
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
+  const RegList double_saves = descriptor->CalleeSavedFPRegisters();
+
+  // Save callee-saved Double registers.
+  if (double_saves != 0) {
+    frame->AlignSavedCalleeRegisterSlots();
+    DCHECK(kNumCalleeSavedDoubles ==
+           base::bits::CountPopulation32(double_saves));
+    frame->AllocateSavedCalleeRegisterSlots(kNumCalleeSavedDoubles *
+                                            (kDoubleSize / kPointerSize));
+  }
+  // Save callee-saved registers.
+  const RegList saves = descriptor->CalleeSavedRegisters();
+  if (saves != 0) {
+    // register save area does not include the fp or constant pool pointer.
+    const int num_saves = kNumCalleeSaved - 1;
+    DCHECK(num_saves == base::bits::CountPopulation32(saves));
+    frame->AllocateSavedCalleeRegisterSlots(num_saves);
+  }
+}
+
+void CodeGenerator::AssembleConstructFrame() {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
 
   if (frame_access_state()->has_frame()) {
@@ -1794,7 +1842,7 @@
     }
   }
 
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
+  int shrink_slots = frame()->GetSpillSlotCount();
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -1805,15 +1853,12 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
+    shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
   }
 
   const RegList double_saves = descriptor->CalleeSavedFPRegisters();
-  if (double_saves != 0) {
-    stack_shrink_slots += frame()->AlignSavedCalleeRegisterSlots();
-  }
-  if (stack_shrink_slots > 0) {
-    __ lay(sp, MemOperand(sp, -stack_shrink_slots * kPointerSize));
+  if (shrink_slots > 0) {
+    __ lay(sp, MemOperand(sp, -shrink_slots * kPointerSize));
   }
 
   // Save callee-saved Double registers.
@@ -1821,8 +1866,6 @@
     __ MultiPushDoubles(double_saves);
     DCHECK(kNumCalleeSavedDoubles ==
            base::bits::CountPopulation32(double_saves));
-    frame()->AllocateSavedCalleeRegisterSlots(kNumCalleeSavedDoubles *
-                                              (kDoubleSize / kPointerSize));
   }
 
   // Save callee-saved registers.
@@ -1830,10 +1873,6 @@
   if (saves != 0) {
     __ MultiPush(saves);
     // register save area does not include the fp or constant pool pointer.
-    const int num_saves =
-        kNumCalleeSaved - 1 - (FLAG_enable_embedded_constant_pool ? 1 : 0);
-    DCHECK(num_saves == base::bits::CountPopulation32(saves));
-    frame()->AllocateSavedCalleeRegisterSlots(num_saves);
   }
 }
 
@@ -1898,10 +1937,28 @@
           destination->IsRegister() ? g.ToRegister(destination) : kScratchReg;
       switch (src.type()) {
         case Constant::kInt32:
-          __ mov(dst, Operand(src.ToInt32()));
+#if V8_TARGET_ARCH_S390X
+          if (src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+#else
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+#endif
+            __ mov(dst, Operand(src.ToInt32(), src.rmode()));
+          } else {
+            __ mov(dst, Operand(src.ToInt32()));
+          }
           break;
         case Constant::kInt64:
+#if V8_TARGET_ARCH_S390X
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+            __ mov(dst, Operand(src.ToInt64(), src.rmode()));
+          } else {
+            DCHECK(src.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+            __ mov(dst, Operand(src.ToInt64()));
+          }
+#else
           __ mov(dst, Operand(src.ToInt64()));
+#endif  // V8_TARGET_ARCH_S390X
           break;
         case Constant::kFloat32:
           __ Move(dst,
@@ -1935,7 +1992,7 @@
         __ StoreP(dst, g.ToMemOperand(destination), r0);
       }
     } else {
-      DoubleRegister dst = destination->IsDoubleRegister()
+      DoubleRegister dst = destination->IsFPRegister()
                                ? g.ToDoubleRegister(destination)
                                : kScratchDoubleReg;
       double value = (src.type() == Constant::kFloat32) ? src.ToFloat32()
@@ -1946,23 +2003,23 @@
         __ LoadDoubleLiteral(dst, value, kScratchReg);
       }
 
-      if (destination->IsDoubleStackSlot()) {
+      if (destination->IsFPStackSlot()) {
         __ StoreDouble(dst, g.ToMemOperand(destination));
       }
     }
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     DoubleRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       DoubleRegister dst = g.ToDoubleRegister(destination);
       __ Move(dst, src);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       __ StoreDouble(src, g.ToMemOperand(destination));
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       __ LoadDouble(g.ToDoubleRegister(destination), src);
     } else {
       DoubleRegister temp = kScratchDoubleReg;
@@ -1996,7 +2053,7 @@
       __ StoreP(temp, dst);
     }
 #if V8_TARGET_ARCH_S390X
-  } else if (source->IsStackSlot() || source->IsDoubleStackSlot()) {
+  } else if (source->IsStackSlot() || source->IsFPStackSlot()) {
 #else
   } else if (source->IsStackSlot()) {
     DCHECK(destination->IsStackSlot());
@@ -2009,24 +2066,24 @@
     __ LoadP(temp_1, dst);
     __ StoreP(temp_0, dst);
     __ StoreP(temp_1, src);
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     DoubleRegister temp = kScratchDoubleReg;
     DoubleRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       DoubleRegister dst = g.ToDoubleRegister(destination);
       __ ldr(temp, src);
       __ ldr(src, dst);
       __ ldr(dst, temp);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       MemOperand dst = g.ToMemOperand(destination);
       __ ldr(temp, src);
       __ LoadDouble(src, dst);
       __ StoreDouble(temp, dst);
     }
 #if !V8_TARGET_ARCH_S390X
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPStackSlot());
     DoubleRegister temp_0 = kScratchDoubleReg;
     DoubleRegister temp_1 = d0;
     MemOperand src = g.ToMemOperand(source);
@@ -2049,10 +2106,6 @@
   }
 }
 
-void CodeGenerator::AddNopForSmiCodeInlining() {
-  // We do not insert nops for inlined Smi code.
-}
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/s390/instruction-codes-s390.h b/src/compiler/s390/instruction-codes-s390.h
index a32f875..a54b2ed 100644
--- a/src/compiler/s390/instruction-codes-s390.h
+++ b/src/compiler/s390/instruction-codes-s390.h
@@ -126,6 +126,7 @@
   V(S390_LoadWordS16)              \
   V(S390_LoadWordU16)              \
   V(S390_LoadWordS32)              \
+  V(S390_LoadWordU32)              \
   V(S390_LoadWord64)               \
   V(S390_LoadFloat32)              \
   V(S390_LoadDouble)               \
diff --git a/src/compiler/s390/instruction-scheduler-s390.cc b/src/compiler/s390/instruction-scheduler-s390.cc
index 2d98e11..d187227 100644
--- a/src/compiler/s390/instruction-scheduler-s390.cc
+++ b/src/compiler/s390/instruction-scheduler-s390.cc
@@ -126,6 +126,7 @@
     case kS390_LoadWordS16:
     case kS390_LoadWordU16:
     case kS390_LoadWordS32:
+    case kS390_LoadWordU32:
     case kS390_LoadWord64:
     case kS390_LoadFloat32:
     case kS390_LoadDouble:
diff --git a/src/compiler/s390/instruction-selector-s390.cc b/src/compiler/s390/instruction-selector-s390.cc
index 8a4af5e..00782d1 100644
--- a/src/compiler/s390/instruction-selector-s390.cc
+++ b/src/compiler/s390/instruction-selector-s390.cc
@@ -182,11 +182,7 @@
     case MachineRepresentation::kTagged:  // Fall through.
 #endif
     case MachineRepresentation::kWord32:
-      opcode = kS390_LoadWordS32;
-#if V8_TARGET_ARCH_S390X
-      // TODO(john.yan): Remove this mode since s390 do not has this restriction
-      mode = kInt16Imm_4ByteAligned;
-#endif
+      opcode = kS390_LoadWordU32;
       break;
 #if V8_TARGET_ARCH_S390X
     case MachineRepresentation::kTagged:  // Fall through.
@@ -1042,14 +1038,12 @@
   VisitRR(this, kS390_DoubleToFloat32, node);
 }
 
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      return VisitRR(this, kArchTruncateDoubleToI, node);
-    case TruncationMode::kRoundToZero:
-      return VisitRR(this, kS390_DoubleToInt32, node);
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
+  VisitRR(this, kArchTruncateDoubleToI, node);
+}
+
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  VisitRR(this, kS390_DoubleToInt32, node);
 }
 
 void InstructionSelector::VisitTruncateFloat32ToInt32(Node* node) {
@@ -1123,6 +1117,11 @@
   VisitRRR(this, kS390_SubFloat, node);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  S390OperandGenerator g(this);
+  VisitRRR(this, kS390_SubFloat, node);
+}
+
 void InstructionSelector::VisitFloat64Sub(Node* node) {
   // TODO(mbrandy): detect multiply-subtract
   S390OperandGenerator g(this);
@@ -1148,6 +1147,10 @@
   VisitRRR(this, kS390_SubDouble, node);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  VisitRRR(this, kS390_SubDouble, node);
+}
+
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   VisitRRR(this, kS390_MulFloat, node);
 }
@@ -1750,6 +1753,61 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  S390OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  ArchOpcode opcode = kArchNop;
+  switch (load_rep.representation()) {
+    case MachineRepresentation::kWord8:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt8 : kAtomicLoadUint8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = load_rep.IsSigned() ? kAtomicLoadInt16 : kAtomicLoadUint16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicLoadWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+  Emit(opcode | AddressingModeField::encode(kMode_MRR),
+       g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(index));
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  S390OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kAtomicStoreWord8;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kAtomicStoreWord16;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kAtomicStoreWord32;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+
+  InstructionOperand inputs[4];
+  size_t input_count = 0;
+  inputs[input_count++] = g.UseUniqueRegister(value);
+  inputs[input_count++] = g.UseUniqueRegister(base);
+  inputs[input_count++] = g.UseUniqueRegister(index);
+  Emit(opcode | AddressingModeField::encode(kMode_MRR), 0, nullptr, input_count,
+       inputs);
+}
+
 // static
 MachineOperatorBuilder::Flags
 InstructionSelector::SupportedMachineOperatorFlags() {
diff --git a/src/compiler/schedule.cc b/src/compiler/schedule.cc
index 4ac65e5..6bd1a17 100644
--- a/src/compiler/schedule.cc
+++ b/src/compiler/schedule.cc
@@ -199,11 +199,28 @@
   AddSuccessor(block, succ);
 }
 
+#if DEBUG
+namespace {
+
+bool IsPotentiallyThrowingCall(IrOpcode::Value opcode) {
+  switch (opcode) {
+#define BUILD_BLOCK_JS_CASE(Name) case IrOpcode::k##Name:
+    JS_OP_LIST(BUILD_BLOCK_JS_CASE)
+#undef BUILD_BLOCK_JS_CASE
+    case IrOpcode::kCall:
+      return true;
+    default:
+      return false;
+  }
+}
+
+}  // namespace
+#endif  // DEBUG
 
 void Schedule::AddCall(BasicBlock* block, Node* call, BasicBlock* success_block,
                        BasicBlock* exception_block) {
   DCHECK_EQ(BasicBlock::kNone, block->control());
-  DCHECK_EQ(IrOpcode::kCall, call->opcode());
+  DCHECK(IsPotentiallyThrowingCall(call->opcode()));
   block->set_control(BasicBlock::kCall);
   AddSuccessor(block, success_block);
   AddSuccessor(block, exception_block);
@@ -298,41 +315,87 @@
   SetControlInput(block, sw);
 }
 
-void Schedule::EnsureSplitEdgeForm() {
+void Schedule::EnsureCFGWellFormedness() {
   // Make a copy of all the blocks for the iteration, since adding the split
   // edges will allocate new blocks.
   BasicBlockVector all_blocks_copy(all_blocks_);
 
   // Insert missing split edge blocks.
   for (auto block : all_blocks_copy) {
-    if (block->PredecessorCount() > 1 && block != end_) {
-      for (auto current_pred = block->predecessors().begin();
-           current_pred != block->predecessors().end(); ++current_pred) {
-        BasicBlock* pred = *current_pred;
-        if (pred->SuccessorCount() > 1) {
-          // Found a predecessor block with multiple successors.
-          BasicBlock* split_edge_block = NewBasicBlock();
-          split_edge_block->set_control(BasicBlock::kGoto);
-          split_edge_block->successors().push_back(block);
-          split_edge_block->predecessors().push_back(pred);
-          split_edge_block->set_deferred(pred->deferred());
-          *current_pred = split_edge_block;
-          // Find a corresponding successor in the previous block, replace it
-          // with the split edge block... but only do it once, since we only
-          // replace the previous blocks in the current block one at a time.
-          for (auto successor = pred->successors().begin();
-               successor != pred->successors().end(); ++successor) {
-            if (*successor == block) {
-              *successor = split_edge_block;
-              break;
-            }
-          }
+    if (block->PredecessorCount() > 1) {
+      if (block != end_) {
+        EnsureSplitEdgeForm(block);
+      }
+      if (block->deferred()) {
+        EnsureDeferredCodeSingleEntryPoint(block);
+      }
+    }
+  }
+}
+
+void Schedule::EnsureSplitEdgeForm(BasicBlock* block) {
+  DCHECK(block->PredecessorCount() > 1 && block != end_);
+  for (auto current_pred = block->predecessors().begin();
+       current_pred != block->predecessors().end(); ++current_pred) {
+    BasicBlock* pred = *current_pred;
+    if (pred->SuccessorCount() > 1) {
+      // Found a predecessor block with multiple successors.
+      BasicBlock* split_edge_block = NewBasicBlock();
+      split_edge_block->set_control(BasicBlock::kGoto);
+      split_edge_block->successors().push_back(block);
+      split_edge_block->predecessors().push_back(pred);
+      split_edge_block->set_deferred(pred->deferred());
+      *current_pred = split_edge_block;
+      // Find a corresponding successor in the previous block, replace it
+      // with the split edge block... but only do it once, since we only
+      // replace the previous blocks in the current block one at a time.
+      for (auto successor = pred->successors().begin();
+           successor != pred->successors().end(); ++successor) {
+        if (*successor == block) {
+          *successor = split_edge_block;
+          break;
         }
       }
     }
   }
 }
 
+void Schedule::EnsureDeferredCodeSingleEntryPoint(BasicBlock* block) {
+  // If a deferred block has multiple predecessors, they have to
+  // all be deferred. Otherwise, we can run into a situation where a range
+  // that spills only in deferred blocks inserts its spill in the block, but
+  // other ranges need moves inserted by ResolveControlFlow in the predecessors,
+  // which may clobber the register of this range.
+  // To ensure that, when a deferred block has multiple predecessors, and some
+  // are not deferred, we add a non-deferred block to collect all such edges.
+
+  DCHECK(block->deferred() && block->PredecessorCount() > 1);
+  bool all_deferred = true;
+  for (auto current_pred = block->predecessors().begin();
+       current_pred != block->predecessors().end(); ++current_pred) {
+    BasicBlock* pred = *current_pred;
+    if (!pred->deferred()) {
+      all_deferred = false;
+      break;
+    }
+  }
+
+  if (all_deferred) return;
+  BasicBlock* merger = NewBasicBlock();
+  merger->set_control(BasicBlock::kGoto);
+  merger->successors().push_back(block);
+  for (auto current_pred = block->predecessors().begin();
+       current_pred != block->predecessors().end(); ++current_pred) {
+    BasicBlock* pred = *current_pred;
+    merger->predecessors().push_back(pred);
+    pred->successors().clear();
+    pred->successors().push_back(merger);
+  }
+  merger->set_deferred(false);
+  block->predecessors().clear();
+  block->predecessors().push_back(merger);
+}
+
 void Schedule::PropagateDeferredMark() {
   // Push forward the deferred block marks through newly inserted blocks and
   // other improperly marked blocks until a fixed point is reached.
diff --git a/src/compiler/schedule.h b/src/compiler/schedule.h
index c99a0fc..74ba835 100644
--- a/src/compiler/schedule.h
+++ b/src/compiler/schedule.h
@@ -257,8 +257,12 @@
   friend class BasicBlockInstrumentor;
   friend class RawMachineAssembler;
 
+  // Ensure properties of the CFG assumed by further stages.
+  void EnsureCFGWellFormedness();
   // Ensure split-edge form for a hand-assembled schedule.
-  void EnsureSplitEdgeForm();
+  void EnsureSplitEdgeForm(BasicBlock* block);
+  // Ensure entry into a deferred block happens from a single hot block.
+  void EnsureDeferredCodeSingleEntryPoint(BasicBlock* block);
   // Copy deferred block markers down as far as possible
   void PropagateDeferredMark();
 
diff --git a/src/compiler/scheduler.cc b/src/compiler/scheduler.cc
index b04ba6f..58c01cc 100644
--- a/src/compiler/scheduler.cc
+++ b/src/compiler/scheduler.cc
@@ -324,6 +324,10 @@
       case IrOpcode::kSwitch:
         BuildBlocksForSuccessors(node);
         break;
+#define BUILD_BLOCK_JS_CASE(Name) case IrOpcode::k##Name:
+        JS_OP_LIST(BUILD_BLOCK_JS_CASE)
+// JS opcodes are just like calls => fall through.
+#undef BUILD_BLOCK_JS_CASE
       case IrOpcode::kCall:
         if (NodeProperties::IsExceptionalCall(node)) {
           BuildBlocksForSuccessors(node);
@@ -364,6 +368,10 @@
         scheduler_->UpdatePlacement(node, Scheduler::kFixed);
         ConnectThrow(node);
         break;
+#define CONNECT_BLOCK_JS_CASE(Name) case IrOpcode::k##Name:
+        JS_OP_LIST(CONNECT_BLOCK_JS_CASE)
+// JS opcodes are just like calls => fall through.
+#undef CONNECT_BLOCK_JS_CASE
       case IrOpcode::kCall:
         if (NodeProperties::IsExceptionalCall(node)) {
           scheduler_->UpdatePlacement(node, Scheduler::kFixed);
diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc
index 88931f5..a76d3e2 100644
--- a/src/compiler/simplified-lowering.cc
+++ b/src/compiler/simplified-lowering.cc
@@ -6,8 +6,10 @@
 
 #include <limits>
 
+#include "src/address-map.h"
 #include "src/base/bits.h"
 #include "src/code-factory.h"
+#include "src/compiler/access-builder.h"
 #include "src/compiler/common-operator.h"
 #include "src/compiler/diamond.h"
 #include "src/compiler/linkage.h"
@@ -17,6 +19,7 @@
 #include "src/compiler/representation-change.h"
 #include "src/compiler/simplified-operator.h"
 #include "src/compiler/source-position.h"
+#include "src/conversions-inl.h"
 #include "src/objects.h"
 #include "src/type-cache.h"
 
@@ -84,10 +87,10 @@
   static UseInfo Bool() {
     return UseInfo(MachineRepresentation::kBit, Truncation::Bool());
   }
-  static UseInfo Float32() {
+  static UseInfo TruncatingFloat32() {
     return UseInfo(MachineRepresentation::kFloat32, Truncation::Float32());
   }
-  static UseInfo Float64() {
+  static UseInfo TruncatingFloat64() {
     return UseInfo(MachineRepresentation::kFloat64, Truncation::Float64());
   }
   static UseInfo PointerInt() {
@@ -122,15 +125,15 @@
     case MachineRepresentation::kTagged:
       return UseInfo::AnyTagged();
     case MachineRepresentation::kFloat64:
-    return UseInfo::Float64();
+      return UseInfo::TruncatingFloat64();
     case MachineRepresentation::kFloat32:
-      return UseInfo::Float32();
+      return UseInfo::TruncatingFloat32();
     case MachineRepresentation::kWord64:
-    return UseInfo::TruncatingWord64();
+      return UseInfo::TruncatingWord64();
     case MachineRepresentation::kWord8:
     case MachineRepresentation::kWord16:
     case MachineRepresentation::kWord32:
-    return UseInfo::TruncatingWord32();
+      return UseInfo::TruncatingWord32();
     case MachineRepresentation::kBit:
       return UseInfo::Bool();
     case MachineRepresentation::kSimd128:  // Fall through.
@@ -511,7 +514,8 @@
 
   // Helpers for specific types of binops.
   void VisitFloat64Binop(Node* node) {
-    VisitBinop(node, UseInfo::Float64(), MachineRepresentation::kFloat64);
+    VisitBinop(node, UseInfo::TruncatingFloat64(),
+               MachineRepresentation::kFloat64);
   }
   void VisitInt32Binop(Node* node) {
     VisitBinop(node, UseInfo::TruncatingWord32(),
@@ -534,7 +538,7 @@
                MachineRepresentation::kWord64);
   }
   void VisitFloat64Cmp(Node* node) {
-    VisitBinop(node, UseInfo::Float64(), MachineRepresentation::kBit);
+    VisitBinop(node, UseInfo::TruncatingFloat64(), MachineRepresentation::kBit);
   }
   void VisitInt32Cmp(Node* node) {
     VisitBinop(node, UseInfo::TruncatingWord32(), MachineRepresentation::kBit);
@@ -563,6 +567,8 @@
       return MachineRepresentation::kBit;
     } else if (type->Is(Type::Number())) {
       return MachineRepresentation::kFloat64;
+    } else if (use.TruncatesToFloat64()) {
+      return MachineRepresentation::kFloat64;
     } else if (type->Is(Type::Internal())) {
       // We mark (u)int64 as Type::Internal.
       // TODO(jarin) This is a workaround for our lack of (u)int64
@@ -630,7 +636,7 @@
   }
 
   void VisitCall(Node* node, SimplifiedLowering* lowering) {
-    const CallDescriptor* desc = OpParameter<const CallDescriptor*>(node->op());
+    const CallDescriptor* desc = CallDescriptorOf(node->op());
     const MachineSignature* sig = desc->GetMachineSignature();
     int params = static_cast<int>(sig->parameter_count());
     // Propagate representation information from call descriptor.
@@ -705,6 +711,71 @@
     return changer_->Float64OperatorFor(node->opcode());
   }
 
+  WriteBarrierKind WriteBarrierKindFor(
+      BaseTaggedness base_taggedness,
+      MachineRepresentation field_representation, Type* field_type,
+      Node* value) {
+    if (base_taggedness == kTaggedBase &&
+        field_representation == MachineRepresentation::kTagged) {
+      Type* value_type = NodeProperties::GetType(value);
+      if (field_type->Is(Type::TaggedSigned()) ||
+          value_type->Is(Type::TaggedSigned())) {
+        // Write barriers are only for stores of heap objects.
+        return kNoWriteBarrier;
+      }
+      if (field_type->Is(Type::BooleanOrNullOrUndefined()) ||
+          value_type->Is(Type::BooleanOrNullOrUndefined())) {
+        // Write barriers are not necessary when storing true, false, null or
+        // undefined, because these special oddballs are always in the root set.
+        return kNoWriteBarrier;
+      }
+      if (value_type->IsConstant() &&
+          value_type->AsConstant()->Value()->IsHeapObject()) {
+        Handle<HeapObject> value_object =
+            Handle<HeapObject>::cast(value_type->AsConstant()->Value());
+        RootIndexMap root_index_map(jsgraph_->isolate());
+        int root_index = root_index_map.Lookup(*value_object);
+        if (root_index != RootIndexMap::kInvalidRootIndex &&
+            jsgraph_->isolate()->heap()->RootIsImmortalImmovable(root_index)) {
+          // Write barriers are unnecessary for immortal immovable roots.
+          return kNoWriteBarrier;
+        }
+        if (value_object->IsMap()) {
+          // Write barriers for storing maps are cheaper.
+          return kMapWriteBarrier;
+        }
+      }
+      if (field_type->Is(Type::TaggedPointer()) ||
+          value_type->Is(Type::TaggedPointer())) {
+        // Write barriers for heap objects are cheaper.
+        return kPointerWriteBarrier;
+      }
+      NumberMatcher m(value);
+      if (m.HasValue()) {
+        if (IsSmiDouble(m.Value())) {
+          // Storing a smi doesn't need a write barrier.
+          return kNoWriteBarrier;
+        }
+        // The NumberConstant will be represented as HeapNumber.
+        return kPointerWriteBarrier;
+      }
+      return kFullWriteBarrier;
+    }
+    return kNoWriteBarrier;
+  }
+
+  WriteBarrierKind WriteBarrierKindFor(
+      BaseTaggedness base_taggedness,
+      MachineRepresentation field_representation, int field_offset,
+      Type* field_type, Node* value) {
+    if (base_taggedness == kTaggedBase &&
+        field_offset == HeapObject::kMapOffset) {
+      return kMapWriteBarrier;
+    }
+    return WriteBarrierKindFor(base_taggedness, field_representation,
+                               field_type, value);
+  }
+
   // Dispatching routine for visiting the node {node} with the usage {use}.
   // Depending on the operator, propagate new usage info to the inputs.
   void VisitNode(Node* node, Truncation truncation,
@@ -758,19 +829,23 @@
       case IrOpcode::kCall:
         return VisitCall(node, lowering);
 
-//------------------------------------------------------------------
-// JavaScript operators.
-//------------------------------------------------------------------
-// For now, we assume that all JS operators were too complex to lower
-// to Simplified and that they will always require tagged value inputs
-// and produce tagged value outputs.
-// TODO(turbofan): it might be possible to lower some JSOperators here,
-// but that responsibility really lies in the typed lowering phase.
-#define DEFINE_JS_CASE(x) case IrOpcode::k##x:
-        JS_OP_LIST(DEFINE_JS_CASE)
-#undef DEFINE_JS_CASE
+      //------------------------------------------------------------------
+      // JavaScript operators.
+      //------------------------------------------------------------------
+      case IrOpcode::kJSToNumber: {
         VisitInputs(node);
-        return SetOutput(node, MachineRepresentation::kTagged);
+        // TODO(bmeurer): Optimize somewhat based on input type?
+        if (truncation.TruncatesToWord32()) {
+          SetOutput(node, MachineRepresentation::kWord32);
+          if (lower()) lowering->DoJSToNumberTruncatesToWord32(node, this);
+        } else if (truncation.TruncatesToFloat64()) {
+          SetOutput(node, MachineRepresentation::kFloat64);
+          if (lower()) lowering->DoJSToNumberTruncatesToFloat64(node, this);
+        } else {
+          SetOutput(node, MachineRepresentation::kTagged);
+        }
+        break;
+      }
 
       //------------------------------------------------------------------
       // Simplified operators.
@@ -962,35 +1037,39 @@
         }
         break;
       }
-      case IrOpcode::kNumberImul: {
-        VisitBinop(node, UseInfo::TruncatingWord32(),
-                   UseInfo::TruncatingWord32(), MachineRepresentation::kWord32);
-        if (lower()) NodeProperties::ChangeOp(node, Uint32Op(node));
-        break;
-      }
       case IrOpcode::kNumberClz32: {
         VisitUnop(node, UseInfo::TruncatingWord32(),
                   MachineRepresentation::kWord32);
         if (lower()) NodeProperties::ChangeOp(node, Uint32Op(node));
         break;
       }
+      case IrOpcode::kNumberImul: {
+        VisitBinop(node, UseInfo::TruncatingWord32(),
+                   UseInfo::TruncatingWord32(), MachineRepresentation::kWord32);
+        if (lower()) NodeProperties::ChangeOp(node, Uint32Op(node));
+        break;
+      }
       case IrOpcode::kNumberCeil: {
-        VisitUnop(node, UseInfo::Float64(), MachineRepresentation::kFloat64);
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kFloat64);
         if (lower()) DeferReplacement(node, lowering->Float64Ceil(node));
         break;
       }
       case IrOpcode::kNumberFloor: {
-        VisitUnop(node, UseInfo::Float64(), MachineRepresentation::kFloat64);
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kFloat64);
         if (lower()) DeferReplacement(node, lowering->Float64Floor(node));
         break;
       }
       case IrOpcode::kNumberRound: {
-        VisitUnop(node, UseInfo::Float64(), MachineRepresentation::kFloat64);
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kFloat64);
         if (lower()) DeferReplacement(node, lowering->Float64Round(node));
         break;
       }
       case IrOpcode::kNumberTrunc: {
-        VisitUnop(node, UseInfo::Float64(), MachineRepresentation::kFloat64);
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kFloat64);
         if (lower()) DeferReplacement(node, lowering->Float64Trunc(node));
         break;
       }
@@ -1009,7 +1088,8 @@
         break;
       }
       case IrOpcode::kNumberIsHoleNaN: {
-        VisitUnop(node, UseInfo::Float64(), MachineRepresentation::kBit);
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kBit);
         if (lower()) {
           // NumberIsHoleNaN(x) => Word32Equal(Float64ExtractLowWord32(x),
           //                                   #HoleNaNLower32)
@@ -1023,23 +1103,6 @@
         }
         break;
       }
-      case IrOpcode::kPlainPrimitiveToNumber: {
-        VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
-        if (lower()) {
-          // PlainPrimitiveToNumber(x) => Call(ToNumberStub, x, no-context)
-          Operator::Properties properties = node->op()->properties();
-          Callable callable = CodeFactory::ToNumber(jsgraph_->isolate());
-          CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
-          CallDescriptor* desc = Linkage::GetStubCallDescriptor(
-              jsgraph_->isolate(), jsgraph_->zone(), callable.descriptor(), 0,
-              flags, properties);
-          node->InsertInput(jsgraph_->zone(), 0,
-                            jsgraph_->HeapConstant(callable.code()));
-          node->AppendInput(jsgraph_->zone(), jsgraph_->NoContextConstant());
-          NodeProperties::ChangeOp(node, jsgraph_->common()->Call(desc));
-        }
-        break;
-      }
       case IrOpcode::kReferenceEqual: {
         VisitBinop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit);
         if (lower()) {
@@ -1051,7 +1114,8 @@
         VisitBinop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
         if (lower()) {
           // StringEqual(x, y) => Call(StringEqualStub, x, y, no-context)
-          Operator::Properties properties = node->op()->properties();
+          Operator::Properties properties =
+              Operator::kCommutative | Operator::kNoThrow;
           Callable callable = CodeFactory::StringEqual(jsgraph_->isolate());
           CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
           CallDescriptor* desc = Linkage::GetStubCallDescriptor(
@@ -1059,7 +1123,9 @@
               flags, properties);
           node->InsertInput(jsgraph_->zone(), 0,
                             jsgraph_->HeapConstant(callable.code()));
-          node->InsertInput(jsgraph_->zone(), 3, jsgraph_->NoContextConstant());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->NoContextConstant());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->graph()->start());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->graph()->start());
           NodeProperties::ChangeOp(node, jsgraph_->common()->Call(desc));
         }
         break;
@@ -1068,7 +1134,7 @@
         VisitBinop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
         if (lower()) {
           // StringLessThan(x, y) => Call(StringLessThanStub, x, y, no-context)
-          Operator::Properties properties = node->op()->properties();
+          Operator::Properties properties = Operator::kNoThrow;
           Callable callable = CodeFactory::StringLessThan(jsgraph_->isolate());
           CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
           CallDescriptor* desc = Linkage::GetStubCallDescriptor(
@@ -1076,7 +1142,9 @@
               flags, properties);
           node->InsertInput(jsgraph_->zone(), 0,
                             jsgraph_->HeapConstant(callable.code()));
-          node->InsertInput(jsgraph_->zone(), 3, jsgraph_->NoContextConstant());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->NoContextConstant());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->graph()->start());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->graph()->start());
           NodeProperties::ChangeOp(node, jsgraph_->common()->Call(desc));
         }
         break;
@@ -1086,7 +1154,7 @@
         if (lower()) {
           // StringLessThanOrEqual(x, y)
           //   => Call(StringLessThanOrEqualStub, x, y, no-context)
-          Operator::Properties properties = node->op()->properties();
+          Operator::Properties properties = Operator::kNoThrow;
           Callable callable =
               CodeFactory::StringLessThanOrEqual(jsgraph_->isolate());
           CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
@@ -1095,7 +1163,9 @@
               flags, properties);
           node->InsertInput(jsgraph_->zone(), 0,
                             jsgraph_->HeapConstant(callable.code()));
-          node->InsertInput(jsgraph_->zone(), 3, jsgraph_->NoContextConstant());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->NoContextConstant());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->graph()->start());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->graph()->start());
           NodeProperties::ChangeOp(node, jsgraph_->common()->Call(desc));
         }
         break;
@@ -1104,7 +1174,7 @@
         VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
         if (lower()) {
           // StringToNumber(x) => Call(StringToNumberStub, x, no-context)
-          Operator::Properties properties = node->op()->properties();
+          Operator::Properties properties = Operator::kNoThrow;
           Callable callable = CodeFactory::StringToNumber(jsgraph_->isolate());
           CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
           CallDescriptor* desc = Linkage::GetStubCallDescriptor(
@@ -1113,12 +1183,14 @@
           node->InsertInput(jsgraph_->zone(), 0,
                             jsgraph_->HeapConstant(callable.code()));
           node->AppendInput(jsgraph_->zone(), jsgraph_->NoContextConstant());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->graph()->start());
+          node->AppendInput(jsgraph_->zone(), jsgraph_->graph()->start());
           NodeProperties::ChangeOp(node, jsgraph_->common()->Call(desc));
         }
         break;
       }
       case IrOpcode::kAllocate: {
-        ProcessInput(node, 0, UseInfo::AnyTagged());
+        ProcessInput(node, 0, UseInfo::TruncatingWord32());
         ProcessRemainingInputs(node, 1);
         SetOutput(node, MachineRepresentation::kTagged);
         break;
@@ -1137,6 +1209,16 @@
                                   access.machine_type.representation()));
         ProcessRemainingInputs(node, 2);
         SetOutput(node, MachineRepresentation::kNone);
+        if (lower()) {
+          WriteBarrierKind write_barrier_kind = WriteBarrierKindFor(
+              access.base_is_tagged, access.machine_type.representation(),
+              access.offset, access.type, node->InputAt(1));
+          if (write_barrier_kind < access.write_barrier_kind) {
+            access.write_barrier_kind = write_barrier_kind;
+            NodeProperties::ChangeOp(
+                node, jsgraph_->simplified()->StoreField(access));
+          }
+        }
         break;
       }
       case IrOpcode::kLoadBuffer: {
@@ -1160,18 +1242,10 @@
                 MachineRepresentation::kFloat32) {
               output = access.machine_type().representation();
             } else {
-              if (access.machine_type().representation() !=
-                  MachineRepresentation::kFloat64) {
-                // TODO(bmeurer): See comment on abort_compilation_.
-                if (lower()) lowering->abort_compilation_ = true;
-              }
               output = MachineRepresentation::kFloat64;
             }
           }
         } else {
-          // TODO(bmeurer): See comment on abort_compilation_.
-          if (lower()) lowering->abort_compilation_ = true;
-
           // If undefined is not truncated away, we need to have the tagged
           // representation.
           output = MachineRepresentation::kTagged;
@@ -1210,11 +1284,23 @@
                          access.machine_type.representation()));  // value
         ProcessRemainingInputs(node, 3);
         SetOutput(node, MachineRepresentation::kNone);
+        if (lower()) {
+          WriteBarrierKind write_barrier_kind = WriteBarrierKindFor(
+              access.base_is_tagged, access.machine_type.representation(),
+              access.type, node->InputAt(2));
+          if (write_barrier_kind < access.write_barrier_kind) {
+            access.write_barrier_kind = write_barrier_kind;
+            NodeProperties::ChangeOp(
+                node, jsgraph_->simplified()->StoreElement(access));
+          }
+        }
         break;
       }
+      case IrOpcode::kObjectIsCallable:
       case IrOpcode::kObjectIsNumber:
       case IrOpcode::kObjectIsReceiver:
       case IrOpcode::kObjectIsSmi:
+      case IrOpcode::kObjectIsString:
       case IrOpcode::kObjectIsUndetectable: {
         ProcessInput(node, 0, UseInfo::AnyTagged());
         SetOutput(node, MachineRepresentation::kBit);
@@ -1323,14 +1409,15 @@
         return VisitUnop(node, UseInfo::TruncatingWord32(),
                          MachineRepresentation::kWord64);
       case IrOpcode::kTruncateFloat64ToFloat32:
-        return VisitUnop(node, UseInfo::Float64(),
+        return VisitUnop(node, UseInfo::TruncatingFloat64(),
                          MachineRepresentation::kFloat32);
-      case IrOpcode::kTruncateFloat64ToInt32:
-        return VisitUnop(node, UseInfo::Float64(),
+      case IrOpcode::kTruncateFloat64ToWord32:
+        return VisitUnop(node, UseInfo::TruncatingFloat64(),
                          MachineRepresentation::kWord32);
 
       case IrOpcode::kChangeFloat32ToFloat64:
-        return VisitUnop(node, UseInfo::Float32(),
+        UNREACHABLE();
+        return VisitUnop(node, UseInfo::TruncatingFloat32(),
                          MachineRepresentation::kFloat64);
       case IrOpcode::kChangeInt32ToFloat64:
         return VisitUnop(node, UseInfo::TruncatingWord32(),
@@ -1351,7 +1438,7 @@
       case IrOpcode::kFloat64RoundTruncate:
       case IrOpcode::kFloat64RoundTiesAway:
       case IrOpcode::kFloat64RoundUp:
-        return VisitUnop(node, UseInfo::Float64(),
+        return VisitUnop(node, UseInfo::TruncatingFloat64(),
                          MachineRepresentation::kFloat64);
       case IrOpcode::kFloat64Equal:
       case IrOpcode::kFloat64LessThan:
@@ -1359,11 +1446,12 @@
         return VisitFloat64Cmp(node);
       case IrOpcode::kFloat64ExtractLowWord32:
       case IrOpcode::kFloat64ExtractHighWord32:
-        return VisitUnop(node, UseInfo::Float64(),
+        return VisitUnop(node, UseInfo::TruncatingFloat64(),
                          MachineRepresentation::kWord32);
       case IrOpcode::kFloat64InsertLowWord32:
       case IrOpcode::kFloat64InsertHighWord32:
-        return VisitBinop(node, UseInfo::Float64(), UseInfo::TruncatingWord32(),
+        return VisitBinop(node, UseInfo::TruncatingFloat64(),
+                          UseInfo::TruncatingWord32(),
                           MachineRepresentation::kFloat64);
       case IrOpcode::kLoadStackPointer:
       case IrOpcode::kLoadFramePointer:
@@ -1482,6 +1570,166 @@
   selector.Run(this);
 }
 
+void SimplifiedLowering::DoJSToNumberTruncatesToFloat64(
+    Node* node, RepresentationSelector* selector) {
+  DCHECK_EQ(IrOpcode::kJSToNumber, node->opcode());
+  Node* value = node->InputAt(0);
+  Node* context = node->InputAt(1);
+  Node* frame_state = node->InputAt(2);
+  Node* effect = node->InputAt(3);
+  Node* control = node->InputAt(4);
+  Node* throwing;
+
+  Node* check0 = graph()->NewNode(simplified()->ObjectIsSmi(), value);
+  Node* branch0 =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check0, control);
+
+  Node* if_true0 = graph()->NewNode(common()->IfTrue(), branch0);
+  Node* etrue0 = effect;
+  Node* vtrue0;
+  {
+    vtrue0 = graph()->NewNode(simplified()->ChangeTaggedSignedToInt32(), value);
+    vtrue0 = graph()->NewNode(machine()->ChangeInt32ToFloat64(), vtrue0);
+  }
+
+  Node* if_false0 = graph()->NewNode(common()->IfFalse(), branch0);
+  Node* efalse0 = effect;
+  Node* vfalse0;
+  {
+    throwing = vfalse0 = efalse0 =
+        graph()->NewNode(ToNumberOperator(), ToNumberCode(), value, context,
+                         frame_state, efalse0, if_false0);
+    if_false0 = graph()->NewNode(common()->IfSuccess(), throwing);
+
+    Node* check1 = graph()->NewNode(simplified()->ObjectIsSmi(), vfalse0);
+    Node* branch1 = graph()->NewNode(common()->Branch(), check1, if_false0);
+
+    Node* if_true1 = graph()->NewNode(common()->IfTrue(), branch1);
+    Node* etrue1 = efalse0;
+    Node* vtrue1;
+    {
+      vtrue1 =
+          graph()->NewNode(simplified()->ChangeTaggedSignedToInt32(), vfalse0);
+      vtrue1 = graph()->NewNode(machine()->ChangeInt32ToFloat64(), vtrue1);
+    }
+
+    Node* if_false1 = graph()->NewNode(common()->IfFalse(), branch1);
+    Node* efalse1 = efalse0;
+    Node* vfalse1;
+    {
+      vfalse1 = efalse1 = graph()->NewNode(
+          simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), efalse0,
+          efalse1, if_false1);
+    }
+
+    if_false0 = graph()->NewNode(common()->Merge(2), if_true1, if_false1);
+    efalse0 =
+        graph()->NewNode(common()->EffectPhi(2), etrue1, efalse1, if_false0);
+    vfalse0 =
+        graph()->NewNode(common()->Phi(MachineRepresentation::kFloat64, 2),
+                         vtrue1, vfalse1, if_false0);
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true0, if_false0);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue0, efalse0, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kFloat64, 2),
+                           vtrue0, vfalse0, control);
+
+  // Replace effect and control uses appropriately.
+  for (Edge edge : node->use_edges()) {
+    if (NodeProperties::IsControlEdge(edge)) {
+      if (edge.from()->opcode() == IrOpcode::kIfSuccess) {
+        edge.from()->ReplaceUses(control);
+        edge.from()->Kill();
+      } else if (edge.from()->opcode() == IrOpcode::kIfException) {
+        edge.UpdateTo(throwing);
+      } else {
+        UNREACHABLE();
+      }
+    } else if (NodeProperties::IsEffectEdge(edge)) {
+      edge.UpdateTo(effect);
+    }
+  }
+
+  selector->DeferReplacement(node, value);
+}
+
+void SimplifiedLowering::DoJSToNumberTruncatesToWord32(
+    Node* node, RepresentationSelector* selector) {
+  DCHECK_EQ(IrOpcode::kJSToNumber, node->opcode());
+  Node* value = node->InputAt(0);
+  Node* context = node->InputAt(1);
+  Node* frame_state = node->InputAt(2);
+  Node* effect = node->InputAt(3);
+  Node* control = node->InputAt(4);
+  Node* throwing;
+
+  Node* check0 = graph()->NewNode(simplified()->ObjectIsSmi(), value);
+  Node* branch0 =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check0, control);
+
+  Node* if_true0 = graph()->NewNode(common()->IfTrue(), branch0);
+  Node* etrue0 = effect;
+  Node* vtrue0 =
+      graph()->NewNode(simplified()->ChangeTaggedSignedToInt32(), value);
+
+  Node* if_false0 = graph()->NewNode(common()->IfFalse(), branch0);
+  Node* efalse0 = effect;
+  Node* vfalse0;
+  {
+    throwing = vfalse0 = efalse0 =
+        graph()->NewNode(ToNumberOperator(), ToNumberCode(), value, context,
+                         frame_state, efalse0, if_false0);
+    if_false0 = graph()->NewNode(common()->IfSuccess(), throwing);
+
+    Node* check1 = graph()->NewNode(simplified()->ObjectIsSmi(), vfalse0);
+    Node* branch1 = graph()->NewNode(common()->Branch(), check1, if_false0);
+
+    Node* if_true1 = graph()->NewNode(common()->IfTrue(), branch1);
+    Node* etrue1 = efalse0;
+    Node* vtrue1 =
+        graph()->NewNode(simplified()->ChangeTaggedSignedToInt32(), vfalse0);
+
+    Node* if_false1 = graph()->NewNode(common()->IfFalse(), branch1);
+    Node* efalse1 = efalse0;
+    Node* vfalse1;
+    {
+      vfalse1 = efalse1 = graph()->NewNode(
+          simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), efalse0,
+          efalse1, if_false1);
+      vfalse1 = graph()->NewNode(machine()->TruncateFloat64ToWord32(), vfalse1);
+    }
+
+    if_false0 = graph()->NewNode(common()->Merge(2), if_true1, if_false1);
+    efalse0 =
+        graph()->NewNode(common()->EffectPhi(2), etrue1, efalse1, if_false0);
+    vfalse0 = graph()->NewNode(common()->Phi(MachineRepresentation::kWord32, 2),
+                               vtrue1, vfalse1, if_false0);
+  }
+
+  control = graph()->NewNode(common()->Merge(2), if_true0, if_false0);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue0, efalse0, control);
+  value = graph()->NewNode(common()->Phi(MachineRepresentation::kWord32, 2),
+                           vtrue0, vfalse0, control);
+
+  // Replace effect and control uses appropriately.
+  for (Edge edge : node->use_edges()) {
+    if (NodeProperties::IsControlEdge(edge)) {
+      if (edge.from()->opcode() == IrOpcode::kIfSuccess) {
+        edge.from()->ReplaceUses(control);
+        edge.from()->Kill();
+      } else if (edge.from()->opcode() == IrOpcode::kIfException) {
+        edge.UpdateTo(throwing);
+      } else {
+        UNREACHABLE();
+      }
+    } else if (NodeProperties::IsEffectEdge(edge)) {
+      edge.UpdateTo(effect);
+    }
+  }
+
+  selector->DeferReplacement(node, value);
+}
 
 void SimplifiedLowering::DoLoadBuffer(Node* node,
                                       MachineRepresentation output_rep,
@@ -1507,9 +1755,11 @@
     Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
     Node* etrue = graph()->NewNode(machine()->Load(access_type), buffer, index,
                                    effect, if_true);
+    Type* element_type =
+        Type::Intersect(NodeProperties::GetType(node), Type::Number(), zone());
     Node* vtrue = changer->GetRepresentationFor(
-        etrue, access_type.representation(), NodeProperties::GetType(node),
-        output_rep, Truncation::None());
+        etrue, access_type.representation(), element_type, output_rep,
+        Truncation::None());
 
     Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
     Node* efalse = effect;
@@ -2200,6 +2450,26 @@
   NodeProperties::ChangeOp(node, op);
 }
 
+Node* SimplifiedLowering::ToNumberCode() {
+  if (!to_number_code_.is_set()) {
+    Callable callable = CodeFactory::ToNumber(isolate());
+    to_number_code_.set(jsgraph()->HeapConstant(callable.code()));
+  }
+  return to_number_code_.get();
+}
+
+Operator const* SimplifiedLowering::ToNumberOperator() {
+  if (!to_number_operator_.is_set()) {
+    Callable callable = CodeFactory::ToNumber(isolate());
+    CallDescriptor::Flags flags = CallDescriptor::kNeedsFrameState;
+    CallDescriptor* desc = Linkage::GetStubCallDescriptor(
+        isolate(), graph()->zone(), callable.descriptor(), 0, flags,
+        Operator::kNoProperties);
+    to_number_operator_.set(common()->Call(desc));
+  }
+  return to_number_operator_.get();
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/simplified-lowering.h b/src/compiler/simplified-lowering.h
index 8b711a9..baffe20 100644
--- a/src/compiler/simplified-lowering.h
+++ b/src/compiler/simplified-lowering.h
@@ -21,6 +21,7 @@
 
 // Forward declarations.
 class RepresentationChanger;
+class RepresentationSelector;
 class SourcePositionTable;
 
 class SimplifiedLowering final {
@@ -31,6 +32,10 @@
 
   void LowerAllNodes();
 
+  void DoJSToNumberTruncatesToFloat64(Node* node,
+                                      RepresentationSelector* selector);
+  void DoJSToNumberTruncatesToWord32(Node* node,
+                                     RepresentationSelector* selector);
   // TODO(turbofan): The representation can be removed once the result of the
   // representation analysis is stored in the node bounds.
   void DoLoadBuffer(Node* node, MachineRepresentation rep,
@@ -38,15 +43,12 @@
   void DoStoreBuffer(Node* node);
   void DoShift(Node* node, Operator const* op, Type* rhs_type);
 
-  // TODO(bmeurer): This is a gigantic hack to support the gigantic LoadBuffer
-  // typing hack to support the gigantic "asm.js should be fast without proper
-  // verifier"-hack, ... Kill this! Soon! Really soon! I'm serious!
-  bool abort_compilation_ = false;
-
  private:
   JSGraph* const jsgraph_;
   Zone* const zone_;
   TypeCache const& type_cache_;
+  SetOncePointer<Node> to_number_code_;
+  SetOncePointer<Operator const> to_number_operator_;
 
   // TODO(danno): SimplifiedLowering shouldn't know anything about the source
   // positions table, but must for now since there currently is no other way to
@@ -64,6 +66,9 @@
   Node* Uint32Div(Node* const node);
   Node* Uint32Mod(Node* const node);
 
+  Node* ToNumberCode();
+  Operator const* ToNumberOperator();
+
   friend class RepresentationSelector;
 
   Isolate* isolate() { return jsgraph_->isolate(); }
@@ -72,6 +77,7 @@
   Graph* graph() { return jsgraph()->graph(); }
   CommonOperatorBuilder* common() { return jsgraph()->common(); }
   MachineOperatorBuilder* machine() { return jsgraph()->machine(); }
+  SimplifiedOperatorBuilder* simplified() { return jsgraph()->simplified(); }
 };
 
 }  // namespace compiler
diff --git a/src/compiler/simplified-operator-reducer.cc b/src/compiler/simplified-operator-reducer.cc
index 012004a..6fbf16e 100644
--- a/src/compiler/simplified-operator-reducer.cc
+++ b/src/compiler/simplified-operator-reducer.cc
@@ -8,6 +8,7 @@
 #include "src/compiler/machine-operator.h"
 #include "src/compiler/node-matchers.h"
 #include "src/compiler/operator-properties.h"
+#include "src/compiler/simplified-operator.h"
 #include "src/conversions-inl.h"
 #include "src/type-cache.h"
 
@@ -31,34 +32,39 @@
       if (m.IsBooleanNot()) return Replace(m.InputAt(0));
       break;
     }
-    case IrOpcode::kChangeBitToBool: {
+    case IrOpcode::kChangeBitToTagged: {
       Int32Matcher m(node->InputAt(0));
       if (m.Is(0)) return Replace(jsgraph()->FalseConstant());
       if (m.Is(1)) return Replace(jsgraph()->TrueConstant());
-      if (m.IsChangeBoolToBit()) return Replace(m.InputAt(0));
+      if (m.IsChangeTaggedToBit()) return Replace(m.InputAt(0));
       break;
     }
-    case IrOpcode::kChangeBoolToBit: {
+    case IrOpcode::kChangeTaggedToBit: {
       HeapObjectMatcher m(node->InputAt(0));
       if (m.HasValue()) return ReplaceInt32(m.Value()->BooleanValue());
-      if (m.IsChangeBitToBool()) return Replace(m.InputAt(0));
+      if (m.IsChangeBitToTagged()) return Replace(m.InputAt(0));
       break;
     }
     case IrOpcode::kChangeFloat64ToTagged: {
       Float64Matcher m(node->InputAt(0));
       if (m.HasValue()) return ReplaceNumber(m.Value());
+      if (m.IsChangeTaggedToFloat64()) return Replace(m.node()->InputAt(0));
       break;
     }
+    case IrOpcode::kChangeInt31ToTaggedSigned:
     case IrOpcode::kChangeInt32ToTagged: {
       Int32Matcher m(node->InputAt(0));
       if (m.HasValue()) return ReplaceNumber(m.Value());
+      if (m.IsChangeTaggedToInt32() || m.IsChangeTaggedSignedToInt32()) {
+        return Replace(m.InputAt(0));
+      }
       break;
     }
     case IrOpcode::kChangeTaggedToFloat64: {
       NumberMatcher m(node->InputAt(0));
       if (m.HasValue()) return ReplaceFloat64(m.Value());
       if (m.IsChangeFloat64ToTagged()) return Replace(m.node()->InputAt(0));
-      if (m.IsChangeInt32ToTagged()) {
+      if (m.IsChangeInt31ToTaggedSigned() || m.IsChangeInt32ToTagged()) {
         return Change(node, machine()->ChangeInt32ToFloat64(), m.InputAt(0));
       }
       if (m.IsChangeUint32ToTagged()) {
@@ -72,7 +78,9 @@
       if (m.IsChangeFloat64ToTagged()) {
         return Change(node, machine()->ChangeFloat64ToInt32(), m.InputAt(0));
       }
-      if (m.IsChangeInt32ToTagged()) return Replace(m.InputAt(0));
+      if (m.IsChangeInt31ToTaggedSigned() || m.IsChangeInt32ToTagged()) {
+        return Replace(m.InputAt(0));
+      }
       break;
     }
     case IrOpcode::kChangeTaggedToUint32: {
@@ -89,6 +97,18 @@
       if (m.HasValue()) return ReplaceNumber(FastUI2D(m.Value()));
       break;
     }
+    case IrOpcode::kTruncateTaggedToWord32: {
+      NumberMatcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceInt32(DoubleToInt32(m.Value()));
+      if (m.IsChangeInt31ToTaggedSigned() || m.IsChangeInt32ToTagged() ||
+          m.IsChangeUint32ToTagged()) {
+        return Replace(m.InputAt(0));
+      }
+      if (m.IsChangeFloat64ToTagged()) {
+        return Change(node, machine()->TruncateFloat64ToWord32(), m.InputAt(0));
+      }
+      break;
+    }
     case IrOpcode::kNumberCeil:
     case IrOpcode::kNumberFloor:
     case IrOpcode::kNumberRound:
@@ -102,6 +122,8 @@
     }
     case IrOpcode::kReferenceEqual:
       return ReduceReferenceEqual(node);
+    case IrOpcode::kTypeGuard:
+      return ReduceTypeGuard(node);
     default:
       break;
   }
@@ -124,6 +146,14 @@
   return NoChange();
 }
 
+Reduction SimplifiedOperatorReducer::ReduceTypeGuard(Node* node) {
+  DCHECK_EQ(IrOpcode::kTypeGuard, node->opcode());
+  Node* const input = NodeProperties::GetValueInput(node, 0);
+  Type* const input_type = NodeProperties::GetTypeOrAny(input);
+  Type* const guard_type = TypeOf(node->op());
+  if (input_type->Is(guard_type)) return Replace(input);
+  return NoChange();
+}
 
 Reduction SimplifiedOperatorReducer::Change(Node* node, const Operator* op,
                                             Node* a) {
diff --git a/src/compiler/simplified-operator-reducer.h b/src/compiler/simplified-operator-reducer.h
index 13301c2..70750a8 100644
--- a/src/compiler/simplified-operator-reducer.h
+++ b/src/compiler/simplified-operator-reducer.h
@@ -30,6 +30,7 @@
 
  private:
   Reduction ReduceReferenceEqual(Node* node);
+  Reduction ReduceTypeGuard(Node* node);
 
   Reduction Change(Node* node, const Operator* op, Node* a);
   Reduction ReplaceFloat64(double value);
diff --git a/src/compiler/simplified-operator.cc b/src/compiler/simplified-operator.cc
index daa9501..0350403 100644
--- a/src/compiler/simplified-operator.cc
+++ b/src/compiler/simplified-operator.cc
@@ -13,6 +13,10 @@
 namespace internal {
 namespace compiler {
 
+size_t hash_value(BaseTaggedness base_taggedness) {
+  return static_cast<uint8_t>(base_taggedness);
+}
+
 std::ostream& operator<<(std::ostream& os, BaseTaggedness base_taggedness) {
   switch (base_taggedness) {
     case kUntaggedBase:
@@ -84,6 +88,9 @@
 
 
 bool operator==(FieldAccess const& lhs, FieldAccess const& rhs) {
+  // On purpose we don't include the write barrier kind here, as this method is
+  // really only relevant for eliminating loads and they don't care about the
+  // write barrier mode.
   return lhs.base_is_tagged == rhs.base_is_tagged && lhs.offset == rhs.offset &&
          lhs.machine_type == rhs.machine_type;
 }
@@ -95,6 +102,9 @@
 
 
 size_t hash_value(FieldAccess const& access) {
+  // On purpose we don't include the write barrier kind here, as this method is
+  // really only relevant for eliminating loads and they don't care about the
+  // write barrier mode.
   return base::hash_combine(access.base_is_tagged, access.offset,
                             access.machine_type);
 }
@@ -110,12 +120,15 @@
   }
 #endif
   access.type->PrintTo(os);
-  os << ", " << access.machine_type << "]";
+  os << ", " << access.machine_type << ", " << access.write_barrier_kind << "]";
   return os;
 }
 
 
 bool operator==(ElementAccess const& lhs, ElementAccess const& rhs) {
+  // On purpose we don't include the write barrier kind here, as this method is
+  // really only relevant for eliminating loads and they don't care about the
+  // write barrier mode.
   return lhs.base_is_tagged == rhs.base_is_tagged &&
          lhs.header_size == rhs.header_size &&
          lhs.machine_type == rhs.machine_type;
@@ -128,6 +141,9 @@
 
 
 size_t hash_value(ElementAccess const& access) {
+  // On purpose we don't include the write barrier kind here, as this method is
+  // really only relevant for eliminating loads and they don't care about the
+  // write barrier mode.
   return base::hash_combine(access.base_is_tagged, access.header_size,
                             access.machine_type);
 }
@@ -136,7 +152,7 @@
 std::ostream& operator<<(std::ostream& os, ElementAccess const& access) {
   os << access.base_is_tagged << ", " << access.header_size << ", ";
   access.type->PrintTo(os);
-  os << ", " << access.machine_type;
+  os << ", " << access.machine_type << ", " << access.write_barrier_kind;
   return os;
 }
 
@@ -156,51 +172,58 @@
   return OpParameter<ElementAccess>(op);
 }
 
-#define PURE_OP_LIST(V)                                  \
-  V(BooleanNot, Operator::kNoProperties, 1)              \
-  V(BooleanToNumber, Operator::kNoProperties, 1)         \
-  V(NumberEqual, Operator::kCommutative, 2)              \
-  V(NumberLessThan, Operator::kNoProperties, 2)          \
-  V(NumberLessThanOrEqual, Operator::kNoProperties, 2)   \
-  V(NumberAdd, Operator::kCommutative, 2)                \
-  V(NumberSubtract, Operator::kNoProperties, 2)          \
-  V(NumberMultiply, Operator::kCommutative, 2)           \
-  V(NumberDivide, Operator::kNoProperties, 2)            \
-  V(NumberModulus, Operator::kNoProperties, 2)           \
-  V(NumberBitwiseOr, Operator::kCommutative, 2)          \
-  V(NumberBitwiseXor, Operator::kCommutative, 2)         \
-  V(NumberBitwiseAnd, Operator::kCommutative, 2)         \
-  V(NumberShiftLeft, Operator::kNoProperties, 2)         \
-  V(NumberShiftRight, Operator::kNoProperties, 2)        \
-  V(NumberShiftRightLogical, Operator::kNoProperties, 2) \
-  V(NumberImul, Operator::kNoProperties, 2)              \
-  V(NumberClz32, Operator::kNoProperties, 1)             \
-  V(NumberCeil, Operator::kNoProperties, 1)              \
-  V(NumberFloor, Operator::kNoProperties, 1)             \
-  V(NumberRound, Operator::kNoProperties, 1)             \
-  V(NumberTrunc, Operator::kNoProperties, 1)             \
-  V(NumberToInt32, Operator::kNoProperties, 1)           \
-  V(NumberToUint32, Operator::kNoProperties, 1)          \
-  V(NumberIsHoleNaN, Operator::kNoProperties, 1)         \
-  V(PlainPrimitiveToNumber, Operator::kNoProperties, 1)  \
-  V(StringToNumber, Operator::kNoProperties, 1)          \
-  V(ChangeTaggedToInt32, Operator::kNoProperties, 1)     \
-  V(ChangeTaggedToUint32, Operator::kNoProperties, 1)    \
-  V(ChangeTaggedToFloat64, Operator::kNoProperties, 1)   \
-  V(ChangeInt32ToTagged, Operator::kNoProperties, 1)     \
-  V(ChangeUint32ToTagged, Operator::kNoProperties, 1)    \
-  V(ChangeFloat64ToTagged, Operator::kNoProperties, 1)   \
-  V(ChangeBoolToBit, Operator::kNoProperties, 1)         \
-  V(ChangeBitToBool, Operator::kNoProperties, 1)         \
-  V(ObjectIsNumber, Operator::kNoProperties, 1)          \
-  V(ObjectIsReceiver, Operator::kNoProperties, 1)        \
-  V(ObjectIsSmi, Operator::kNoProperties, 1)             \
-  V(ObjectIsUndetectable, Operator::kNoProperties, 1)
+Type* TypeOf(const Operator* op) {
+  DCHECK_EQ(IrOpcode::kTypeGuard, op->opcode());
+  return OpParameter<Type*>(op);
+}
 
-#define NO_THROW_OP_LIST(V)                 \
-  V(StringEqual, Operator::kCommutative, 2) \
-  V(StringLessThan, Operator::kNoThrow, 2)  \
-  V(StringLessThanOrEqual, Operator::kNoThrow, 2)
+#define PURE_OP_LIST(V)                                    \
+  V(BooleanNot, Operator::kNoProperties, 1)                \
+  V(BooleanToNumber, Operator::kNoProperties, 1)           \
+  V(NumberEqual, Operator::kCommutative, 2)                \
+  V(NumberLessThan, Operator::kNoProperties, 2)            \
+  V(NumberLessThanOrEqual, Operator::kNoProperties, 2)     \
+  V(NumberAdd, Operator::kCommutative, 2)                  \
+  V(NumberSubtract, Operator::kNoProperties, 2)            \
+  V(NumberMultiply, Operator::kCommutative, 2)             \
+  V(NumberDivide, Operator::kNoProperties, 2)              \
+  V(NumberModulus, Operator::kNoProperties, 2)             \
+  V(NumberBitwiseOr, Operator::kCommutative, 2)            \
+  V(NumberBitwiseXor, Operator::kCommutative, 2)           \
+  V(NumberBitwiseAnd, Operator::kCommutative, 2)           \
+  V(NumberShiftLeft, Operator::kNoProperties, 2)           \
+  V(NumberShiftRight, Operator::kNoProperties, 2)          \
+  V(NumberShiftRightLogical, Operator::kNoProperties, 2)   \
+  V(NumberImul, Operator::kCommutative, 2)                 \
+  V(NumberClz32, Operator::kNoProperties, 1)               \
+  V(NumberCeil, Operator::kNoProperties, 1)                \
+  V(NumberFloor, Operator::kNoProperties, 1)               \
+  V(NumberRound, Operator::kNoProperties, 1)               \
+  V(NumberTrunc, Operator::kNoProperties, 1)               \
+  V(NumberToInt32, Operator::kNoProperties, 1)             \
+  V(NumberToUint32, Operator::kNoProperties, 1)            \
+  V(NumberIsHoleNaN, Operator::kNoProperties, 1)           \
+  V(StringToNumber, Operator::kNoProperties, 1)            \
+  V(ChangeTaggedSignedToInt32, Operator::kNoProperties, 1) \
+  V(ChangeTaggedToInt32, Operator::kNoProperties, 1)       \
+  V(ChangeTaggedToUint32, Operator::kNoProperties, 1)      \
+  V(ChangeTaggedToFloat64, Operator::kNoProperties, 1)     \
+  V(ChangeInt31ToTaggedSigned, Operator::kNoProperties, 1) \
+  V(ChangeInt32ToTagged, Operator::kNoProperties, 1)       \
+  V(ChangeUint32ToTagged, Operator::kNoProperties, 1)      \
+  V(ChangeFloat64ToTagged, Operator::kNoProperties, 1)     \
+  V(ChangeTaggedToBit, Operator::kNoProperties, 1)         \
+  V(ChangeBitToTagged, Operator::kNoProperties, 1)         \
+  V(TruncateTaggedToWord32, Operator::kNoProperties, 1)    \
+  V(ObjectIsCallable, Operator::kNoProperties, 1)          \
+  V(ObjectIsNumber, Operator::kNoProperties, 1)            \
+  V(ObjectIsReceiver, Operator::kNoProperties, 1)          \
+  V(ObjectIsSmi, Operator::kNoProperties, 1)               \
+  V(ObjectIsString, Operator::kNoProperties, 1)            \
+  V(ObjectIsUndetectable, Operator::kNoProperties, 1)      \
+  V(StringEqual, Operator::kCommutative, 2)                \
+  V(StringLessThan, Operator::kNoProperties, 2)            \
+  V(StringLessThanOrEqual, Operator::kNoProperties, 2)
 
 struct SimplifiedOperatorGlobalCache final {
 #define PURE(Name, properties, input_count)                                \
@@ -213,15 +236,14 @@
   PURE_OP_LIST(PURE)
 #undef PURE
 
-#define NO_THROW(Name, properties, input_count)                               \
-  struct Name##Operator final : public Operator {                             \
-    Name##Operator()                                                          \
-        : Operator(IrOpcode::k##Name, Operator::kNoThrow | properties, #Name, \
-                   input_count, 1, 1, 1, 1, 0) {}                             \
-  };                                                                          \
-  Name##Operator k##Name;
-  NO_THROW_OP_LIST(NO_THROW)
-#undef NO_THROW
+  template <PretenureFlag kPretenure>
+  struct AllocateOperator final : public Operator1<PretenureFlag> {
+    AllocateOperator()
+        : Operator1<PretenureFlag>(IrOpcode::kAllocate, Operator::kNoThrow,
+                                   "Allocate", 1, 1, 1, 1, 1, 0, kPretenure) {}
+  };
+  AllocateOperator<NOT_TENURED> kAllocateNotTenuredOperator;
+  AllocateOperator<TENURED> kAllocateTenuredOperator;
 
 #define BUFFER_ACCESS(Type, type, TYPE, ctype, size)                          \
   struct LoadBuffer##Type##Operator final : public Operator1<BufferAccess> {  \
@@ -256,7 +278,6 @@
 #define GET_FROM_CACHE(Name, properties, input_count) \
   const Operator* SimplifiedOperatorBuilder::Name() { return &cache_.k##Name; }
 PURE_OP_LIST(GET_FROM_CACHE)
-NO_THROW_OP_LIST(GET_FROM_CACHE)
 #undef GET_FROM_CACHE
 
 
@@ -266,11 +287,32 @@
                                "ReferenceEqual", 2, 0, 0, 1, 0, 0);
 }
 
+const Operator* SimplifiedOperatorBuilder::TypeGuard(Type* type) {
+  class TypeGuardOperator final : public Operator1<Type*> {
+   public:
+    explicit TypeGuardOperator(Type* type)
+        : Operator1<Type*>(                           // --
+              IrOpcode::kTypeGuard, Operator::kPure,  // opcode
+              "TypeGuard",                            // name
+              1, 0, 1, 1, 0, 0,                       // counts
+              type) {}                                // parameter
+
+    void PrintParameter(std::ostream& os) const final {
+      parameter()->PrintTo(os);
+    }
+  };
+  return new (zone()) TypeGuardOperator(type);
+}
 
 const Operator* SimplifiedOperatorBuilder::Allocate(PretenureFlag pretenure) {
-  return new (zone())
-      Operator1<PretenureFlag>(IrOpcode::kAllocate, Operator::kNoThrow,
-                               "Allocate", 1, 1, 1, 1, 1, 0, pretenure);
+  switch (pretenure) {
+    case NOT_TENURED:
+      return &cache_.kAllocateNotTenuredOperator;
+    case TENURED:
+      return &cache_.kAllocateTenuredOperator;
+  }
+  UNREACHABLE();
+  return nullptr;
 }
 
 
diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h
index a39d864..20d8a39 100644
--- a/src/compiler/simplified-operator.h
+++ b/src/compiler/simplified-operator.h
@@ -25,8 +25,9 @@
 class Operator;
 struct SimplifiedOperatorGlobalCache;
 
+enum BaseTaggedness : uint8_t { kUntaggedBase, kTaggedBase };
 
-enum BaseTaggedness { kUntaggedBase, kTaggedBase };
+size_t hash_value(BaseTaggedness);
 
 std::ostream& operator<<(std::ostream&, BaseTaggedness);
 
@@ -63,6 +64,7 @@
   MaybeHandle<Name> name;         // debugging only.
   Type* type;                     // type of the field.
   MachineType machine_type;       // machine type of the field.
+  WriteBarrierKind write_barrier_kind;  // write barrier hint.
 
   int tag() const { return base_is_tagged == kTaggedBase ? kHeapObjectTag : 0; }
 };
@@ -86,6 +88,7 @@
   int header_size;                // size of the header, without tag.
   Type* type;                     // type of the element.
   MachineType machine_type;       // machine type of the element.
+  WriteBarrierKind write_barrier_kind;  // write barrier hint.
 
   int tag() const { return base_is_tagged == kTaggedBase ? kHeapObjectTag : 0; }
 };
@@ -99,6 +102,7 @@
 
 ElementAccess const& ElementAccessOf(const Operator* op) WARN_UNUSED_RESULT;
 
+Type* TypeOf(const Operator* op) WARN_UNUSED_RESULT;
 
 // Interface for building simplified operators, which represent the
 // medium-level operations of V8, including adding numbers, allocating objects,
@@ -153,8 +157,6 @@
   const Operator* NumberToUint32();
   const Operator* NumberIsHoleNaN();
 
-  const Operator* PlainPrimitiveToNumber();
-
   const Operator* ReferenceEqual(Type* type);
 
   const Operator* StringEqual();
@@ -162,20 +164,27 @@
   const Operator* StringLessThanOrEqual();
   const Operator* StringToNumber();
 
+  const Operator* ChangeTaggedSignedToInt32();
   const Operator* ChangeTaggedToInt32();
   const Operator* ChangeTaggedToUint32();
   const Operator* ChangeTaggedToFloat64();
+  const Operator* ChangeInt31ToTaggedSigned();
   const Operator* ChangeInt32ToTagged();
   const Operator* ChangeUint32ToTagged();
   const Operator* ChangeFloat64ToTagged();
-  const Operator* ChangeBoolToBit();
-  const Operator* ChangeBitToBool();
+  const Operator* ChangeTaggedToBit();
+  const Operator* ChangeBitToTagged();
+  const Operator* TruncateTaggedToWord32();
 
+  const Operator* ObjectIsCallable();
   const Operator* ObjectIsNumber();
   const Operator* ObjectIsReceiver();
   const Operator* ObjectIsSmi();
+  const Operator* ObjectIsString();
   const Operator* ObjectIsUndetectable();
 
+  const Operator* TypeGuard(Type* type);
+
   const Operator* Allocate(PretenureFlag pretenure = NOT_TENURED);
 
   const Operator* LoadField(FieldAccess const&);
diff --git a/src/compiler/source-position.cc b/src/compiler/source-position.cc
index 48361ec..80f1800 100644
--- a/src/compiler/source-position.cc
+++ b/src/compiler/source-position.cc
@@ -16,7 +16,8 @@
       : source_positions_(source_positions) {}
 
   void Decorate(Node* node) final {
-    source_positions_->table_.Set(node, source_positions_->current_position_);
+    source_positions_->SetSourcePosition(node,
+                                         source_positions_->current_position_);
   }
 
  private:
@@ -49,6 +50,10 @@
   return table_.Get(node);
 }
 
+void SourcePositionTable::SetSourcePosition(Node* node,
+                                            SourcePosition position) {
+  table_.Set(node, position);
+}
 
 void SourcePositionTable::Print(std::ostream& os) const {
   os << "{";
diff --git a/src/compiler/source-position.h b/src/compiler/source-position.h
index 81db1d2..912f188 100644
--- a/src/compiler/source-position.h
+++ b/src/compiler/source-position.h
@@ -38,8 +38,7 @@
   return !(lhs == rhs);
 }
 
-
-class SourcePositionTable final {
+class SourcePositionTable final : public ZoneObject {
  public:
   class Scope final {
    public:
@@ -66,14 +65,12 @@
   };
 
   explicit SourcePositionTable(Graph* graph);
-  ~SourcePositionTable() {
-    if (decorator_) RemoveDecorator();
-  }
 
   void AddDecorator();
   void RemoveDecorator();
 
   SourcePosition GetSourcePosition(Node* node) const;
+  void SetSourcePosition(Node* node, SourcePosition position);
 
   void Print(std::ostream& os) const;
 
diff --git a/src/compiler/tail-call-optimization.cc b/src/compiler/tail-call-optimization.cc
index 6635fb9..7e1623a 100644
--- a/src/compiler/tail-call-optimization.cc
+++ b/src/compiler/tail-call-optimization.cc
@@ -20,7 +20,7 @@
   // other effect between the Call and the Return nodes.
   Node* const call = NodeProperties::GetValueInput(node, 0);
   if (call->opcode() == IrOpcode::kCall &&
-      OpParameter<CallDescriptor const*>(call)->SupportsTailCalls() &&
+      CallDescriptorOf(call->op())->SupportsTailCalls() &&
       NodeProperties::GetEffectInput(node) == call &&
       !NodeProperties::IsExceptionalCall(call)) {
     Node* const control = NodeProperties::GetControlInput(node);
@@ -71,7 +71,7 @@
                           NodeProperties::GetValueInput(call, index));
       }
       NodeProperties::ChangeOp(
-          node, common()->TailCall(OpParameter<CallDescriptor const*>(call)));
+          node, common()->TailCall(CallDescriptorOf(call->op())));
       return Changed(node);
     }
   }
diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc
index 81c3d3d..d98d2fe 100644
--- a/src/compiler/typer.cc
+++ b/src/compiler/typer.cc
@@ -97,6 +97,7 @@
       COMMON_OP_LIST(DECLARE_CASE)
       SIMPLIFIED_OP_LIST(DECLARE_CASE)
       MACHINE_OP_LIST(DECLARE_CASE)
+      MACHINE_SIMD_OP_LIST(DECLARE_CASE)
       JS_SIMPLE_UNOP_LIST(DECLARE_CASE)
       JS_OBJECT_OP_LIST(DECLARE_CASE)
       JS_CONTEXT_OP_LIST(DECLARE_CASE)
@@ -143,6 +144,7 @@
       COMMON_OP_LIST(DECLARE_CASE)
       SIMPLIFIED_OP_LIST(DECLARE_CASE)
       MACHINE_OP_LIST(DECLARE_CASE)
+      MACHINE_SIMD_OP_LIST(DECLARE_CASE)
       JS_SIMPLE_UNOP_LIST(DECLARE_CASE)
       JS_OBJECT_OP_LIST(DECLARE_CASE)
       JS_CONTEXT_OP_LIST(DECLARE_CASE)
@@ -247,9 +249,11 @@
   static Type* NumberToInt32(Type*, Typer*);
   static Type* NumberToUint32(Type*, Typer*);
 
+  static Type* ObjectIsCallable(Type*, Typer*);
   static Type* ObjectIsNumber(Type*, Typer*);
   static Type* ObjectIsReceiver(Type*, Typer*);
   static Type* ObjectIsSmi(Type*, Typer*);
+  static Type* ObjectIsString(Type*, Typer*);
   static Type* ObjectIsUndetectable(Type*, Typer*);
 
   static Type* JSAddRanger(RangeType*, RangeType*, Typer*);
@@ -556,6 +560,11 @@
 
 // Type checks.
 
+Type* Typer::Visitor::ObjectIsCallable(Type* type, Typer* t) {
+  if (type->Is(Type::Function())) return t->singleton_true_;
+  if (type->Is(Type::Primitive())) return t->singleton_false_;
+  return Type::Boolean();
+}
 
 Type* Typer::Visitor::ObjectIsNumber(Type* type, Typer* t) {
   if (type->Is(Type::Number())) return t->singleton_true_;
@@ -577,6 +586,11 @@
   return Type::Boolean();
 }
 
+Type* Typer::Visitor::ObjectIsString(Type* type, Typer* t) {
+  if (type->Is(Type::String())) return t->singleton_true_;
+  if (!type->Maybe(Type::String())) return t->singleton_false_;
+  return Type::Boolean();
+}
 
 Type* Typer::Visitor::ObjectIsUndetectable(Type* type, Typer* t) {
   if (type->Is(Type::Undetectable())) return t->singleton_true_;
@@ -624,6 +638,14 @@
   return Type::Internal();  // TODO(rossberg): Add int64 bitset type?
 }
 
+// TODO(gdeepti) : Fix this to do something meaningful.
+Type* Typer::Visitor::TypeRelocatableInt32Constant(Node* node) {
+  return Type::Internal();
+}
+
+Type* Typer::Visitor::TypeRelocatableInt64Constant(Node* node) {
+  return Type::Internal();
+}
 
 Type* Typer::Visitor::TypeFloat32Constant(Node* node) {
   return Type::Intersect(Type::Of(OpParameter<float>(node), zone()),
@@ -677,19 +699,16 @@
   return nullptr;
 }
 
-
-Type* Typer::Visitor::TypeEffectSet(Node* node) {
-  UNREACHABLE();
-  return nullptr;
-}
-
-
-Type* Typer::Visitor::TypeGuard(Node* node) {
+Type* Typer::Visitor::TypeTypeGuard(Node* node) {
   Type* input_type = Operand(node, 0);
-  Type* guard_type = OpParameter<Type*>(node);
+  Type* guard_type = TypeOf(node->op());
   return Type::Intersect(input_type, guard_type, zone());
 }
 
+Type* Typer::Visitor::TypeCheckPoint(Node* node) {
+  UNREACHABLE();
+  return nullptr;
+}
 
 Type* Typer::Visitor::TypeBeginRegion(Node* node) {
   UNREACHABLE();
@@ -1331,34 +1350,6 @@
 
 
 Type* Typer::Visitor::TypeJSLoadNamed(Node* node) {
-  Factory* const f = isolate()->factory();
-  Handle<Name> name = NamedAccessOf(node->op()).name();
-  if (name.is_identical_to(f->prototype_string())) {
-    Type* receiver = Operand(node, 0);
-    if (receiver->Is(Type::None())) return Type::None();
-    if (receiver->IsConstant() &&
-        receiver->AsConstant()->Value()->IsJSFunction()) {
-      Handle<JSFunction> function =
-          Handle<JSFunction>::cast(receiver->AsConstant()->Value());
-      if (function->has_prototype()) {
-        // We need to add a code dependency on the initial map of the {function}
-        // in order to be notified about changes to "prototype" of {function},
-        // so we can only infer a constant type if deoptimization is enabled.
-        if (flags() & kDeoptimizationEnabled) {
-          JSFunction::EnsureHasInitialMap(function);
-          Handle<Map> initial_map(function->initial_map(), isolate());
-          dependencies()->AssumeInitialMapCantChange(initial_map);
-          return Type::Constant(handle(initial_map->prototype(), isolate()),
-                                zone());
-        }
-      }
-    } else if (receiver->IsClass() &&
-               receiver->AsClass()->Map()->IsJSFunctionMap()) {
-      Handle<Map> map = receiver->AsClass()->Map();
-      return map->has_non_instance_prototype() ? Type::Primitive()
-                                               : Type::Receiver();
-    }
-  }
   return Type::Any();
 }
 
@@ -1537,9 +1528,6 @@
 // JS other operators.
 
 
-Type* Typer::Visitor::TypeJSYield(Node* node) { return Type::Any(); }
-
-
 Type* Typer::Visitor::TypeJSCallConstruct(Node* node) {
   return Type::Receiver();
 }
@@ -1793,12 +1781,6 @@
   return Type::Boolean();
 }
 
-
-Type* Typer::Visitor::TypePlainPrimitiveToNumber(Node* node) {
-  return TypeUnaryOp(node, ToNumber);
-}
-
-
 // static
 Type* Typer::Visitor::ReferenceEqualTyper(Type* lhs, Type* rhs, Typer* t) {
   if (lhs->IsConstant() && rhs->Is(lhs)) {
@@ -1833,6 +1815,11 @@
 
 }  // namespace
 
+Type* Typer::Visitor::TypeChangeTaggedSignedToInt32(Node* node) {
+  Type* arg = Operand(node, 0);
+  // TODO(neis): DCHECK(arg->Is(Type::Signed32()));
+  return ChangeRepresentation(arg, Type::UntaggedIntegral32(), zone());
+}
 
 Type* Typer::Visitor::TypeChangeTaggedToInt32(Node* node) {
   Type* arg = Operand(node, 0);
@@ -1854,6 +1841,13 @@
   return ChangeRepresentation(arg, Type::UntaggedFloat64(), zone());
 }
 
+Type* Typer::Visitor::TypeChangeInt31ToTaggedSigned(Node* node) {
+  Type* arg = Operand(node, 0);
+  // TODO(neis): DCHECK(arg->Is(Type::Signed31()));
+  Type* rep =
+      arg->Is(Type::SignedSmall()) ? Type::TaggedSigned() : Type::Tagged();
+  return ChangeRepresentation(arg, rep, zone());
+}
 
 Type* Typer::Visitor::TypeChangeInt32ToTagged(Node* node) {
   Type* arg = Operand(node, 0);
@@ -1877,20 +1871,23 @@
   return ChangeRepresentation(arg, Type::Tagged(), zone());
 }
 
-
-Type* Typer::Visitor::TypeChangeBoolToBit(Node* node) {
+Type* Typer::Visitor::TypeChangeTaggedToBit(Node* node) {
   Type* arg = Operand(node, 0);
   // TODO(neis): DCHECK(arg.upper->Is(Type::Boolean()));
   return ChangeRepresentation(arg, Type::UntaggedBit(), zone());
 }
 
-
-Type* Typer::Visitor::TypeChangeBitToBool(Node* node) {
+Type* Typer::Visitor::TypeChangeBitToTagged(Node* node) {
   Type* arg = Operand(node, 0);
   // TODO(neis): DCHECK(arg.upper->Is(Type::Boolean()));
   return ChangeRepresentation(arg, Type::TaggedPointer(), zone());
 }
 
+Type* Typer::Visitor::TypeTruncateTaggedToWord32(Node* node) {
+  Type* arg = Operand(node, 0);
+  // TODO(neis): DCHECK(arg->Is(Type::Number()));
+  return ChangeRepresentation(arg, Type::UntaggedIntegral32(), zone());
+}
 
 Type* Typer::Visitor::TypeAllocate(Node* node) { return Type::TaggedPointer(); }
 
@@ -1949,9 +1946,9 @@
   // TODO(bmeurer): This typing is not yet correct. Since we can still access
   // out of bounds, the type in the general case has to include Undefined.
   switch (BufferAccessOf(node->op()).external_array_type()) {
-#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
-  case kExternal##Type##Array:                          \
-    return typer_->cache_.k##Type;
+#define TYPED_ARRAY_CASE(ElemType, type, TYPE, ctype, size) \
+  case kExternal##ElemType##Array:                          \
+    return Type::Union(typer_->cache_.k##ElemType, Type::Undefined(), zone());
     TYPED_ARRAYS(TYPED_ARRAY_CASE)
 #undef TYPED_ARRAY_CASE
   }
@@ -1982,6 +1979,9 @@
   return nullptr;
 }
 
+Type* Typer::Visitor::TypeObjectIsCallable(Node* node) {
+  return TypeUnaryOp(node, ObjectIsCallable);
+}
 
 Type* Typer::Visitor::TypeObjectIsNumber(Node* node) {
   return TypeUnaryOp(node, ObjectIsNumber);
@@ -1997,6 +1997,9 @@
   return TypeUnaryOp(node, ObjectIsSmi);
 }
 
+Type* Typer::Visitor::TypeObjectIsString(Node* node) {
+  return TypeUnaryOp(node, ObjectIsString);
+}
 
 Type* Typer::Visitor::TypeObjectIsUndetectable(Node* node) {
   return TypeUnaryOp(node, ObjectIsUndetectable);
@@ -2194,6 +2197,9 @@
 
 Type* Typer::Visitor::TypeUint64Mod(Node* node) { return Type::Internal(); }
 
+Type* Typer::Visitor::TypeBitcastWordToTagged(Node* node) {
+  return Type::TaggedPointer();
+}
 
 Type* Typer::Visitor::TypeChangeFloat32ToFloat64(Node* node) {
   return Type::Intersect(Type::Number(), Type::UntaggedFloat64(), zone());
@@ -2270,9 +2276,9 @@
   return Type::Intersect(Type::Number(), Type::UntaggedFloat32(), zone());
 }
 
-
-Type* Typer::Visitor::TypeTruncateFloat64ToInt32(Node* node) {
-  return Type::Intersect(Type::Signed32(), Type::UntaggedIntegral32(), zone());
+Type* Typer::Visitor::TypeTruncateFloat64ToWord32(Node* node) {
+  return Type::Intersect(Type::Integral32(), Type::UntaggedIntegral32(),
+                         zone());
 }
 
 
@@ -2280,6 +2286,9 @@
   return Type::Intersect(Type::Signed32(), Type::UntaggedIntegral32(), zone());
 }
 
+Type* Typer::Visitor::TypeRoundFloat64ToInt32(Node* node) {
+  return Type::Intersect(Type::Signed32(), Type::UntaggedIntegral32(), zone());
+}
 
 Type* Typer::Visitor::TypeRoundInt32ToFloat32(Node* node) {
   return Type::Intersect(Type::PlainNumber(), Type::UntaggedFloat32(), zone());
@@ -2336,6 +2345,9 @@
 
 Type* Typer::Visitor::TypeFloat32Sub(Node* node) { return Type::Number(); }
 
+Type* Typer::Visitor::TypeFloat32SubPreserveNan(Node* node) {
+  return Type::Number();
+}
 
 Type* Typer::Visitor::TypeFloat32Mul(Node* node) { return Type::Number(); }
 
@@ -2376,6 +2388,9 @@
 
 Type* Typer::Visitor::TypeFloat64Sub(Node* node) { return Type::Number(); }
 
+Type* Typer::Visitor::TypeFloat64SubPreserveNan(Node* node) {
+  return Type::Number();
+}
 
 Type* Typer::Visitor::TypeFloat64Mul(Node* node) { return Type::Number(); }
 
@@ -2503,12 +2518,18 @@
 
 Type* Typer::Visitor::TypeCheckedLoad(Node* node) { return Type::Any(); }
 
-
 Type* Typer::Visitor::TypeCheckedStore(Node* node) {
   UNREACHABLE();
   return nullptr;
 }
 
+Type* Typer::Visitor::TypeAtomicLoad(Node* node) { return Type::Any(); }
+
+Type* Typer::Visitor::TypeAtomicStore(Node* node) {
+  UNREACHABLE();
+  return nullptr;
+}
+
 Type* Typer::Visitor::TypeInt32PairAdd(Node* node) { return Type::Internal(); }
 
 Type* Typer::Visitor::TypeInt32PairSub(Node* node) { return Type::Internal(); }
@@ -2521,8 +2542,24 @@
 
 Type* Typer::Visitor::TypeWord32PairSar(Node* node) { return Type::Internal(); }
 
-// Heap constants.
+// SIMD type methods.
 
+#define SIMD_RETURN_SIMD(Name) \
+  Type* Typer::Visitor::Type##Name(Node* node) { return Type::Simd(); }
+MACHINE_SIMD_RETURN_SIMD_OP_LIST(SIMD_RETURN_SIMD)
+#undef SIMD_RETURN_SIMD
+
+#define SIMD_RETURN_NUM(Name) \
+  Type* Typer::Visitor::Type##Name(Node* node) { return Type::Number(); }
+MACHINE_SIMD_RETURN_NUM_OP_LIST(SIMD_RETURN_NUM)
+#undef SIMD_RETURN_NUM
+
+#define SIMD_RETURN_BOOL(Name) \
+  Type* Typer::Visitor::Type##Name(Node* node) { return Type::Boolean(); }
+MACHINE_SIMD_RETURN_BOOL_OP_LIST(SIMD_RETURN_BOOL)
+#undef SIMD_RETURN_BOOL
+
+// Heap constants.
 
 Type* Typer::Visitor::TypeConstant(Handle<Object> value) {
   if (value->IsJSTypedArray()) {
diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc
index a69ace9..0e34285 100644
--- a/src/compiler/verifier.cc
+++ b/src/compiler/verifier.cc
@@ -42,12 +42,14 @@
 
 class Verifier::Visitor {
  public:
-  Visitor(Zone* z, Typing typed) : zone(z), typing(typed) {}
+  Visitor(Zone* z, Typing typed, CheckInputs check_inputs)
+      : zone(z), typing(typed), check_inputs(check_inputs) {}
 
   void Check(Node* node);
 
   Zone* zone;
   Typing typing;
+  CheckInputs check_inputs;
 
  private:
   void CheckNotTyped(Node* node) {
@@ -114,8 +116,10 @@
   int control_count = node->op()->ControlInputCount();
 
   // Verify number of inputs matches up.
-  int input_count = value_count + context_count + frame_state_count +
-                    effect_count + control_count;
+  int input_count = value_count + context_count + frame_state_count;
+  if (check_inputs == kAll) {
+    input_count += effect_count + control_count;
+  }
   CHECK_EQ(input_count, node->InputCount());
 
   // Verify that frame state has been inserted for the nodes that need it.
@@ -150,20 +154,23 @@
     CHECK(IsUseDefChainLinkPresent(context, node));
   }
 
-  // Verify all effect inputs actually have an effect.
-  for (int i = 0; i < effect_count; ++i) {
-    Node* effect = NodeProperties::GetEffectInput(node);
-    CheckOutput(effect, node, effect->op()->EffectOutputCount(), "effect");
-    CHECK(IsDefUseChainLinkPresent(effect, node));
-    CHECK(IsUseDefChainLinkPresent(effect, node));
-  }
+  if (check_inputs == kAll) {
+    // Verify all effect inputs actually have an effect.
+    for (int i = 0; i < effect_count; ++i) {
+      Node* effect = NodeProperties::GetEffectInput(node);
+      CheckOutput(effect, node, effect->op()->EffectOutputCount(), "effect");
+      CHECK(IsDefUseChainLinkPresent(effect, node));
+      CHECK(IsUseDefChainLinkPresent(effect, node));
+    }
 
-  // Verify all control inputs are control nodes.
-  for (int i = 0; i < control_count; ++i) {
-    Node* control = NodeProperties::GetControlInput(node, i);
-    CheckOutput(control, node, control->op()->ControlOutputCount(), "control");
-    CHECK(IsDefUseChainLinkPresent(control, node));
-    CHECK(IsUseDefChainLinkPresent(control, node));
+    // Verify all control inputs are control nodes.
+    for (int i = 0; i < control_count; ++i) {
+      Node* control = NodeProperties::GetControlInput(node, i);
+      CheckOutput(control, node, control->op()->ControlOutputCount(),
+                  "control");
+      CHECK(IsDefUseChainLinkPresent(control, node));
+      CHECK(IsUseDefChainLinkPresent(control, node));
+    }
   }
 
   switch (node->opcode()) {
@@ -345,6 +352,10 @@
       // Type is a number.
       CheckUpperIs(node, Type::Number());
       break;
+    case IrOpcode::kRelocatableInt32Constant:
+    case IrOpcode::kRelocatableInt64Constant:
+      CHECK_EQ(0, input_count);
+      break;
     case IrOpcode::kHeapConstant:
       // Constants have no inputs.
       CHECK_EQ(0, input_count);
@@ -406,15 +417,13 @@
       CHECK_EQ(input_count, 1 + effect_count);
       break;
     }
-    case IrOpcode::kEffectSet: {
-      CHECK_EQ(0, value_count);
-      CHECK_EQ(0, control_count);
-      CHECK_LT(1, effect_count);
-      break;
-    }
-    case IrOpcode::kGuard:
+    case IrOpcode::kTypeGuard:
       // TODO(bmeurer): what are the constraints on these?
       break;
+    case IrOpcode::kCheckPoint:
+      // Type is empty.
+      CheckNotTyped(node);
+      break;
     case IrOpcode::kBeginRegion:
       // TODO(rossberg): what are the constraints on these?
       break;
@@ -596,7 +605,6 @@
       break;
     case IrOpcode::kJSCallFunction:
     case IrOpcode::kJSCallRuntime:
-    case IrOpcode::kJSYield:
       // Type can be anything.
       CheckUpperIs(node, Type::Any());
       break;
@@ -646,17 +654,27 @@
       CheckUpperIs(node, Type::Number());
       break;
     case IrOpcode::kNumberEqual:
+      // (NumberOrUndefined, NumberOrUndefined) -> Boolean
+      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
+      CheckValueInputIs(node, 1, Type::NumberOrUndefined());
+      CheckUpperIs(node, Type::Boolean());
+      break;
     case IrOpcode::kNumberLessThan:
     case IrOpcode::kNumberLessThanOrEqual:
       // (Number, Number) -> Boolean
-      CheckValueInputIs(node, 0, Type::Number());
-      CheckValueInputIs(node, 1, Type::Number());
+      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
+      CheckValueInputIs(node, 1, Type::NumberOrUndefined());
       CheckUpperIs(node, Type::Boolean());
       break;
     case IrOpcode::kNumberAdd:
     case IrOpcode::kNumberSubtract:
     case IrOpcode::kNumberMultiply:
     case IrOpcode::kNumberDivide:
+      // (Number, Number) -> Number
+      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
+      CheckValueInputIs(node, 1, Type::NumberOrUndefined());
+      // CheckUpperIs(node, Type::Number());
+      break;
     case IrOpcode::kNumberModulus:
       // (Number, Number) -> Number
       CheckValueInputIs(node, 0, Type::Number());
@@ -706,12 +724,12 @@
       break;
     case IrOpcode::kNumberToInt32:
       // Number -> Signed32
-      CheckValueInputIs(node, 0, Type::Number());
+      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
       CheckUpperIs(node, Type::Signed32());
       break;
     case IrOpcode::kNumberToUint32:
       // Number -> Unsigned32
-      CheckValueInputIs(node, 0, Type::Number());
+      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
       CheckUpperIs(node, Type::Unsigned32());
       break;
     case IrOpcode::kNumberIsHoleNaN:
@@ -719,11 +737,6 @@
       CheckValueInputIs(node, 0, Type::Number());
       CheckUpperIs(node, Type::Boolean());
       break;
-    case IrOpcode::kPlainPrimitiveToNumber:
-      // PlainPrimitive -> Number
-      CheckValueInputIs(node, 0, Type::PlainPrimitive());
-      CheckUpperIs(node, Type::Number());
-      break;
     case IrOpcode::kStringEqual:
     case IrOpcode::kStringLessThan:
     case IrOpcode::kStringLessThanOrEqual:
@@ -743,9 +756,11 @@
       CheckUpperIs(node, Type::Boolean());
       break;
     }
+    case IrOpcode::kObjectIsCallable:
     case IrOpcode::kObjectIsNumber:
     case IrOpcode::kObjectIsReceiver:
     case IrOpcode::kObjectIsSmi:
+    case IrOpcode::kObjectIsString:
     case IrOpcode::kObjectIsUndetectable:
       CheckValueInputIs(node, 0, Type::Any());
       CheckUpperIs(node, Type::Boolean());
@@ -755,6 +770,15 @@
       CheckUpperIs(node, Type::TaggedPointer());
       break;
 
+    case IrOpcode::kChangeTaggedSignedToInt32: {
+      // Signed32 /\ Tagged -> Signed32 /\ UntaggedInt32
+      // TODO(neis): Activate once ChangeRepresentation works in typer.
+      // Type* from = Type::Intersect(Type::Signed32(), Type::Tagged());
+      // Type* to = Type::Intersect(Type::Signed32(), Type::UntaggedInt32());
+      // CheckValueInputIs(node, 0, from));
+      // CheckUpperIs(node, to));
+      break;
+    }
     case IrOpcode::kChangeTaggedToInt32: {
       // Signed32 /\ Tagged -> Signed32 /\ UntaggedInt32
       // TODO(neis): Activate once ChangeRepresentation works in typer.
@@ -782,6 +806,15 @@
       // CheckUpperIs(node, to));
       break;
     }
+    case IrOpcode::kChangeInt31ToTaggedSigned: {
+      // Signed31 /\ UntaggedInt32 -> Signed31 /\ Tagged
+      // TODO(neis): Activate once ChangeRepresentation works in typer.
+      // Type* from =Type::Intersect(Type::Signed31(), Type::UntaggedInt32());
+      // Type* to = Type::Intersect(Type::Signed31(), Type::Tagged());
+      // CheckValueInputIs(node, 0, from));
+      // CheckUpperIs(node, to));
+      break;
+    }
     case IrOpcode::kChangeInt32ToTagged: {
       // Signed32 /\ UntaggedInt32 -> Signed32 /\ Tagged
       // TODO(neis): Activate once ChangeRepresentation works in typer.
@@ -809,7 +842,7 @@
       // CheckUpperIs(node, to));
       break;
     }
-    case IrOpcode::kChangeBoolToBit: {
+    case IrOpcode::kChangeTaggedToBit: {
       // Boolean /\ TaggedPtr -> Boolean /\ UntaggedInt1
       // TODO(neis): Activate once ChangeRepresentation works in typer.
       // Type* from = Type::Intersect(Type::Boolean(), Type::TaggedPtr());
@@ -818,7 +851,7 @@
       // CheckUpperIs(node, to));
       break;
     }
-    case IrOpcode::kChangeBitToBool: {
+    case IrOpcode::kChangeBitToTagged: {
       // Boolean /\ UntaggedInt1 -> Boolean /\ TaggedPtr
       // TODO(neis): Activate once ChangeRepresentation works in typer.
       // Type* from = Type::Intersect(Type::Boolean(), Type::UntaggedInt1());
@@ -827,6 +860,15 @@
       // CheckUpperIs(node, to));
       break;
     }
+    case IrOpcode::kTruncateTaggedToWord32: {
+      // Number /\ Tagged -> Signed32 /\ UntaggedInt32
+      // TODO(neis): Activate once ChangeRepresentation works in typer.
+      // Type* from = Type::Intersect(Type::Number(), Type::Tagged());
+      // Type* to = Type::Intersect(Type::Number(), Type::UntaggedInt32());
+      // CheckValueInputIs(node, 0, from));
+      // CheckUpperIs(node, to));
+      break;
+    }
 
     case IrOpcode::kLoadField:
       // Object -> fieldtype
@@ -918,6 +960,7 @@
     case IrOpcode::kUint64LessThanOrEqual:
     case IrOpcode::kFloat32Add:
     case IrOpcode::kFloat32Sub:
+    case IrOpcode::kFloat32SubPreserveNan:
     case IrOpcode::kFloat32Mul:
     case IrOpcode::kFloat32Div:
     case IrOpcode::kFloat32Max:
@@ -929,6 +972,7 @@
     case IrOpcode::kFloat32LessThanOrEqual:
     case IrOpcode::kFloat64Add:
     case IrOpcode::kFloat64Sub:
+    case IrOpcode::kFloat64SubPreserveNan:
     case IrOpcode::kFloat64Mul:
     case IrOpcode::kFloat64Div:
     case IrOpcode::kFloat64Mod:
@@ -949,6 +993,7 @@
     case IrOpcode::kFloat64LessThan:
     case IrOpcode::kFloat64LessThanOrEqual:
     case IrOpcode::kTruncateInt64ToInt32:
+    case IrOpcode::kRoundFloat64ToInt32:
     case IrOpcode::kRoundInt32ToFloat32:
     case IrOpcode::kRoundInt64ToFloat32:
     case IrOpcode::kRoundInt64ToFloat64:
@@ -956,11 +1001,12 @@
     case IrOpcode::kRoundUint64ToFloat64:
     case IrOpcode::kRoundUint64ToFloat32:
     case IrOpcode::kTruncateFloat64ToFloat32:
-    case IrOpcode::kTruncateFloat64ToInt32:
+    case IrOpcode::kTruncateFloat64ToWord32:
     case IrOpcode::kBitcastFloat32ToInt32:
     case IrOpcode::kBitcastFloat64ToInt64:
     case IrOpcode::kBitcastInt32ToFloat32:
     case IrOpcode::kBitcastInt64ToFloat64:
+    case IrOpcode::kBitcastWordToTagged:
     case IrOpcode::kChangeInt32ToInt64:
     case IrOpcode::kChangeUint32ToUint64:
     case IrOpcode::kChangeInt32ToFloat64:
@@ -990,17 +1036,23 @@
     case IrOpcode::kLoadParentFramePointer:
     case IrOpcode::kCheckedLoad:
     case IrOpcode::kCheckedStore:
+    case IrOpcode::kAtomicLoad:
+    case IrOpcode::kAtomicStore:
+
+#define SIMD_MACHINE_OP_CASE(Name) case IrOpcode::k##Name:
+      MACHINE_SIMD_OP_LIST(SIMD_MACHINE_OP_CASE)
+#undef SIMD_MACHINE_OP_CASE
+
       // TODO(rossberg): Check.
       break;
   }
 }  // NOLINT(readability/fn_size)
 
-
-void Verifier::Run(Graph* graph, Typing typing) {
+void Verifier::Run(Graph* graph, Typing typing, CheckInputs check_inputs) {
   CHECK_NOT_NULL(graph->start());
   CHECK_NOT_NULL(graph->end());
   Zone zone(graph->zone()->allocator());
-  Visitor visitor(&zone, typing);
+  Visitor visitor(&zone, typing, check_inputs);
   AllNodes all(&zone, graph);
   for (Node* node : all.live) visitor.Check(node);
 
diff --git a/src/compiler/verifier.h b/src/compiler/verifier.h
index 428558d..60849e0 100644
--- a/src/compiler/verifier.h
+++ b/src/compiler/verifier.h
@@ -21,8 +21,10 @@
 class Verifier {
  public:
   enum Typing { TYPED, UNTYPED };
+  enum CheckInputs { kValuesOnly, kAll };
 
-  static void Run(Graph* graph, Typing typing = TYPED);
+  static void Run(Graph* graph, Typing typing = TYPED,
+                  CheckInputs check_inputs = kAll);
 
 #ifdef DEBUG
   // Verifies consistency of node inputs and uses:
diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc
index 93d5a08..619e639 100644
--- a/src/compiler/wasm-compiler.cc
+++ b/src/compiler/wasm-compiler.cc
@@ -10,11 +10,10 @@
 #include "src/base/platform/platform.h"
 
 #include "src/compiler/access-builder.h"
-#include "src/compiler/change-lowering.h"
 #include "src/compiler/common-operator.h"
 #include "src/compiler/diamond.h"
-#include "src/compiler/graph.h"
 #include "src/compiler/graph-visualizer.h"
+#include "src/compiler/graph.h"
 #include "src/compiler/instruction-selector.h"
 #include "src/compiler/int64-lowering.h"
 #include "src/compiler/js-generic-lowering.h"
@@ -24,10 +23,8 @@
 #include "src/compiler/machine-operator.h"
 #include "src/compiler/node-matchers.h"
 #include "src/compiler/pipeline.h"
-#include "src/compiler/simplified-lowering.h"
-#include "src/compiler/simplified-operator.h"
 #include "src/compiler/source-position.h"
-#include "src/compiler/typer.h"
+#include "src/compiler/zone-pool.h"
 
 #include "src/code-factory.h"
 #include "src/code-stubs.h"
@@ -52,17 +49,11 @@
 
 namespace {
 const Operator* UnsupportedOpcode(wasm::WasmOpcode opcode) {
-  if (wasm::WasmOpcodes::IsSupported(opcode)) {
-    V8_Fatal(__FILE__, __LINE__,
-             "Unsupported opcode #%d:%s reported as supported", opcode,
-             wasm::WasmOpcodes::OpcodeName(opcode));
-  }
   V8_Fatal(__FILE__, __LINE__, "Unsupported opcode #%d:%s", opcode,
            wasm::WasmOpcodes::OpcodeName(opcode));
   return nullptr;
 }
 
-
 void MergeControlToEnd(JSGraph* jsgraph, Node* node) {
   Graph* g = jsgraph->graph();
   if (g->end()) {
@@ -83,62 +74,72 @@
   explicit WasmTrapHelper(WasmGraphBuilder* builder)
       : builder_(builder),
         jsgraph_(builder->jsgraph()),
-        graph_(builder->jsgraph() ? builder->jsgraph()->graph() : nullptr) {
-    for (int i = 0; i < wasm::kTrapCount; i++) traps_[i] = nullptr;
-  }
+        graph_(builder->jsgraph() ? builder->jsgraph()->graph() : nullptr) {}
 
   // Make the current control path trap to unreachable.
-  void Unreachable() { ConnectTrap(wasm::kTrapUnreachable); }
+  void Unreachable(wasm::WasmCodePosition position) {
+    ConnectTrap(wasm::kTrapUnreachable, position);
+  }
 
   // Always trap with the given reason.
-  void TrapAlways(wasm::TrapReason reason) { ConnectTrap(reason); }
+  void TrapAlways(wasm::TrapReason reason, wasm::WasmCodePosition position) {
+    ConnectTrap(reason, position);
+  }
 
   // Add a check that traps if {node} is equal to {val}.
-  Node* TrapIfEq32(wasm::TrapReason reason, Node* node, int32_t val) {
+  Node* TrapIfEq32(wasm::TrapReason reason, Node* node, int32_t val,
+                   wasm::WasmCodePosition position) {
     Int32Matcher m(node);
     if (m.HasValue() && !m.Is(val)) return graph()->start();
     if (val == 0) {
-      AddTrapIfFalse(reason, node);
+      AddTrapIfFalse(reason, node, position);
     } else {
       AddTrapIfTrue(reason,
                     graph()->NewNode(jsgraph()->machine()->Word32Equal(), node,
-                                     jsgraph()->Int32Constant(val)));
+                                     jsgraph()->Int32Constant(val)),
+                    position);
     }
     return builder_->Control();
   }
 
   // Add a check that traps if {node} is zero.
-  Node* ZeroCheck32(wasm::TrapReason reason, Node* node) {
-    return TrapIfEq32(reason, node, 0);
+  Node* ZeroCheck32(wasm::TrapReason reason, Node* node,
+                    wasm::WasmCodePosition position) {
+    return TrapIfEq32(reason, node, 0, position);
   }
 
   // Add a check that traps if {node} is equal to {val}.
-  Node* TrapIfEq64(wasm::TrapReason reason, Node* node, int64_t val) {
+  Node* TrapIfEq64(wasm::TrapReason reason, Node* node, int64_t val,
+                   wasm::WasmCodePosition position) {
     Int64Matcher m(node);
     if (m.HasValue() && !m.Is(val)) return graph()->start();
-    AddTrapIfTrue(reason,
-                  graph()->NewNode(jsgraph()->machine()->Word64Equal(), node,
-                                   jsgraph()->Int64Constant(val)));
+    AddTrapIfTrue(reason, graph()->NewNode(jsgraph()->machine()->Word64Equal(),
+                                           node, jsgraph()->Int64Constant(val)),
+                  position);
     return builder_->Control();
   }
 
   // Add a check that traps if {node} is zero.
-  Node* ZeroCheck64(wasm::TrapReason reason, Node* node) {
-    return TrapIfEq64(reason, node, 0);
+  Node* ZeroCheck64(wasm::TrapReason reason, Node* node,
+                    wasm::WasmCodePosition position) {
+    return TrapIfEq64(reason, node, 0, position);
   }
 
   // Add a trap if {cond} is true.
-  void AddTrapIfTrue(wasm::TrapReason reason, Node* cond) {
-    AddTrapIf(reason, cond, true);
+  void AddTrapIfTrue(wasm::TrapReason reason, Node* cond,
+                     wasm::WasmCodePosition position) {
+    AddTrapIf(reason, cond, true, position);
   }
 
   // Add a trap if {cond} is false.
-  void AddTrapIfFalse(wasm::TrapReason reason, Node* cond) {
-    AddTrapIf(reason, cond, false);
+  void AddTrapIfFalse(wasm::TrapReason reason, Node* cond,
+                      wasm::WasmCodePosition position) {
+    AddTrapIf(reason, cond, false, position);
   }
 
   // Add a trap if {cond} is true or false according to {iftrue}.
-  void AddTrapIf(wasm::TrapReason reason, Node* cond, bool iftrue) {
+  void AddTrapIf(wasm::TrapReason reason, Node* cond, bool iftrue,
+                 wasm::WasmCodePosition position) {
     Node** effect_ptr = builder_->effect_;
     Node** control_ptr = builder_->control_;
     Node* before = *effect_ptr;
@@ -148,7 +149,7 @@
     Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
 
     *control_ptr = iftrue ? if_true : if_false;
-    ConnectTrap(reason);
+    ConnectTrap(reason, position);
     *control_ptr = iftrue ? if_false : if_true;
     *effect_ptr = before;
   }
@@ -179,49 +180,69 @@
   WasmGraphBuilder* builder_;
   JSGraph* jsgraph_;
   Graph* graph_;
-  Node* traps_[wasm::kTrapCount];
-  Node* effects_[wasm::kTrapCount];
+  Node* trap_merge_ = nullptr;
+  Node* trap_effect_;
+  Node* trap_reason_;
+  Node* trap_position_;
 
   JSGraph* jsgraph() { return jsgraph_; }
   Graph* graph() { return jsgraph_->graph(); }
   CommonOperatorBuilder* common() { return jsgraph()->common(); }
 
-  void ConnectTrap(wasm::TrapReason reason) {
-    if (traps_[reason] == nullptr) {
-      // Create trap code for the first time this trap is used.
-      return BuildTrapCode(reason);
+  void ConnectTrap(wasm::TrapReason reason, wasm::WasmCodePosition position) {
+    DCHECK(position != wasm::kNoCodePosition);
+    Node* reason_node = builder_->Int32Constant(
+        wasm::WasmOpcodes::TrapReasonToMessageId(reason));
+    Node* position_node = builder_->Int32Constant(position);
+    if (trap_merge_ == nullptr) {
+      // Create trap code for the first time.
+      return BuildTrapCode(reason_node, position_node);
     }
     // Connect the current control and effect to the existing trap code.
-    builder_->AppendToMerge(traps_[reason], builder_->Control());
-    builder_->AppendToPhi(traps_[reason], effects_[reason], builder_->Effect());
+    builder_->AppendToMerge(trap_merge_, builder_->Control());
+    builder_->AppendToPhi(trap_effect_, builder_->Effect());
+    builder_->AppendToPhi(trap_reason_, reason_node);
+    builder_->AppendToPhi(trap_position_, position_node);
   }
 
-  void BuildTrapCode(wasm::TrapReason reason) {
-    Node* exception =
-        builder_->String(wasm::WasmOpcodes::TrapReasonName(reason));
+  void BuildTrapCode(Node* reason_node, Node* position_node) {
     Node* end;
     Node** control_ptr = builder_->control_;
     Node** effect_ptr = builder_->effect_;
     wasm::ModuleEnv* module = builder_->module_;
-    *control_ptr = traps_[reason] =
+    DCHECK(trap_merge_ == NULL);
+    *control_ptr = trap_merge_ =
         graph()->NewNode(common()->Merge(1), *control_ptr);
-    *effect_ptr = effects_[reason] =
+    *effect_ptr = trap_effect_ =
         graph()->NewNode(common()->EffectPhi(1), *effect_ptr, *control_ptr);
+    trap_reason_ =
+        graph()->NewNode(common()->Phi(MachineRepresentation::kWord32, 1),
+                         reason_node, *control_ptr);
+    trap_position_ =
+        graph()->NewNode(common()->Phi(MachineRepresentation::kWord32, 1),
+                         position_node, *control_ptr);
+
+    Node* trap_reason_smi = builder_->BuildChangeInt32ToSmi(trap_reason_);
+    Node* trap_position_smi = builder_->BuildChangeInt32ToSmi(trap_position_);
 
     if (module && !module->instance->context.is_null()) {
       // Use the module context to call the runtime to throw an exception.
-      Runtime::FunctionId f = Runtime::kThrow;
+      Runtime::FunctionId f = Runtime::kThrowWasmError;
       const Runtime::Function* fun = Runtime::FunctionForId(f);
       CallDescriptor* desc = Linkage::GetRuntimeCallDescriptor(
           jsgraph()->zone(), f, fun->nargs, Operator::kNoProperties,
           CallDescriptor::kNoFlags);
+      // CEntryStubConstant nodes have to be created and cached in the main
+      // thread. At the moment this is only done for CEntryStubConstant(1).
+      DCHECK_EQ(1, fun->result_size);
       Node* inputs[] = {
           jsgraph()->CEntryStubConstant(fun->result_size),  // C entry
-          exception,                                        // exception
+          trap_reason_smi,                                  // message id
+          trap_position_smi,                                // byte position
           jsgraph()->ExternalConstant(
-              ExternalReference(f, jsgraph()->isolate())),  // ref
-          jsgraph()->Int32Constant(fun->nargs),             // arity
-          jsgraph()->Constant(module->instance->context),   // context
+              ExternalReference(f, jsgraph()->isolate())),    // ref
+          jsgraph()->Int32Constant(fun->nargs),               // arity
+          builder_->HeapConstant(module->instance->context),  // context
           *effect_ptr,
           *control_ptr};
 
@@ -247,8 +268,9 @@
   }
 };
 
-WasmGraphBuilder::WasmGraphBuilder(Zone* zone, JSGraph* jsgraph,
-                                   wasm::FunctionSig* function_signature)
+WasmGraphBuilder::WasmGraphBuilder(
+    Zone* zone, JSGraph* jsgraph, wasm::FunctionSig* function_signature,
+    compiler::SourcePositionTable* source_position_table)
     : zone_(zone),
       jsgraph_(jsgraph),
       module_(nullptr),
@@ -260,32 +282,28 @@
       cur_buffer_(def_buffer_),
       cur_bufsize_(kDefaultBufferSize),
       trap_(new (zone) WasmTrapHelper(this)),
-      function_signature_(function_signature) {
+      function_signature_(function_signature),
+      source_position_table_(source_position_table) {
   DCHECK_NOT_NULL(jsgraph_);
 }
 
-
 Node* WasmGraphBuilder::Error() { return jsgraph()->Dead(); }
 
-
 Node* WasmGraphBuilder::Start(unsigned params) {
   Node* start = graph()->NewNode(jsgraph()->common()->Start(params));
   graph()->SetStart(start);
   return start;
 }
 
-
 Node* WasmGraphBuilder::Param(unsigned index, wasm::LocalType type) {
   return graph()->NewNode(jsgraph()->common()->Parameter(index),
                           graph()->start());
 }
 
-
 Node* WasmGraphBuilder::Loop(Node* entry) {
   return graph()->NewNode(jsgraph()->common()->Loop(1), entry);
 }
 
-
 Node* WasmGraphBuilder::Terminate(Node* effect, Node* control) {
   Node* terminate =
       graph()->NewNode(jsgraph()->common()->Terminate(), effect, control);
@@ -293,18 +311,15 @@
   return terminate;
 }
 
-
 unsigned WasmGraphBuilder::InputCount(Node* node) {
   return static_cast<unsigned>(node->InputCount());
 }
 
-
 bool WasmGraphBuilder::IsPhiWithMerge(Node* phi, Node* merge) {
   return phi && IrOpcode::IsPhiOpcode(phi->opcode()) &&
          NodeProperties::GetControlInput(phi) == merge;
 }
 
-
 void WasmGraphBuilder::AppendToMerge(Node* merge, Node* from) {
   DCHECK(IrOpcode::IsMergeOpcode(merge->opcode()));
   merge->AppendInput(jsgraph()->zone(), from);
@@ -313,22 +328,18 @@
       merge, jsgraph()->common()->ResizeMergeOrPhi(merge->op(), new_size));
 }
 
-
-void WasmGraphBuilder::AppendToPhi(Node* merge, Node* phi, Node* from) {
+void WasmGraphBuilder::AppendToPhi(Node* phi, Node* from) {
   DCHECK(IrOpcode::IsPhiOpcode(phi->opcode()));
-  DCHECK(IrOpcode::IsMergeOpcode(merge->opcode()));
   int new_size = phi->InputCount();
   phi->InsertInput(jsgraph()->zone(), phi->InputCount() - 1, from);
   NodeProperties::ChangeOp(
       phi, jsgraph()->common()->ResizeMergeOrPhi(phi->op(), new_size));
 }
 
-
 Node* WasmGraphBuilder::Merge(unsigned count, Node** controls) {
   return graph()->NewNode(jsgraph()->common()->Merge(count), count, controls);
 }
 
-
 Node* WasmGraphBuilder::Phi(wasm::LocalType type, unsigned count, Node** vals,
                             Node* control) {
   DCHECK(IrOpcode::IsMergeOpcode(control->opcode()));
@@ -338,7 +349,6 @@
                           buf);
 }
 
-
 Node* WasmGraphBuilder::EffectPhi(unsigned count, Node** effects,
                                   Node* control) {
   DCHECK(IrOpcode::IsMergeOpcode(control->opcode()));
@@ -348,19 +358,20 @@
                           buf);
 }
 
+Node* WasmGraphBuilder::NumberConstant(int32_t value) {
+  return jsgraph()->Constant(value);
+}
 
 Node* WasmGraphBuilder::Int32Constant(int32_t value) {
   return jsgraph()->Int32Constant(value);
 }
 
-
 Node* WasmGraphBuilder::Int64Constant(int64_t value) {
   return jsgraph()->Int64Constant(value);
 }
 
-
-Node* WasmGraphBuilder::Binop(wasm::WasmOpcode opcode, Node* left,
-                              Node* right) {
+Node* WasmGraphBuilder::Binop(wasm::WasmOpcode opcode, Node* left, Node* right,
+                              wasm::WasmCodePosition position) {
   const Operator* op;
   MachineOperatorBuilder* m = jsgraph()->machine();
   switch (opcode) {
@@ -374,13 +385,13 @@
       op = m->Int32Mul();
       break;
     case wasm::kExprI32DivS:
-      return BuildI32DivS(left, right);
+      return BuildI32DivS(left, right, position);
     case wasm::kExprI32DivU:
-      return BuildI32DivU(left, right);
+      return BuildI32DivU(left, right, position);
     case wasm::kExprI32RemS:
-      return BuildI32RemS(left, right);
+      return BuildI32RemS(left, right, position);
     case wasm::kExprI32RemU:
-      return BuildI32RemU(left, right);
+      return BuildI32RemU(left, right, position);
     case wasm::kExprI32And:
       op = m->Word32And();
       break;
@@ -445,62 +456,46 @@
     case wasm::kExprI64And:
       op = m->Word64And();
       break;
-    // todo(ahaas): I added a list of missing instructions here to make merging
-    // easier when I do them one by one.
-    // kExprI64Add:
     case wasm::kExprI64Add:
       op = m->Int64Add();
       break;
-    // kExprI64Sub:
     case wasm::kExprI64Sub:
       op = m->Int64Sub();
       break;
-    // kExprI64Mul:
     case wasm::kExprI64Mul:
       op = m->Int64Mul();
       break;
-    // kExprI64DivS:
     case wasm::kExprI64DivS:
-      return BuildI64DivS(left, right);
-    // kExprI64DivU:
+      return BuildI64DivS(left, right, position);
     case wasm::kExprI64DivU:
-      return BuildI64DivU(left, right);
-    // kExprI64RemS:
+      return BuildI64DivU(left, right, position);
     case wasm::kExprI64RemS:
-      return BuildI64RemS(left, right);
-    // kExprI64RemU:
+      return BuildI64RemS(left, right, position);
     case wasm::kExprI64RemU:
-      return BuildI64RemU(left, right);
+      return BuildI64RemU(left, right, position);
     case wasm::kExprI64Ior:
       op = m->Word64Or();
       break;
-// kExprI64Xor:
     case wasm::kExprI64Xor:
       op = m->Word64Xor();
       break;
-// kExprI64Shl:
     case wasm::kExprI64Shl:
       op = m->Word64Shl();
       right = MaskShiftCount64(right);
       break;
-    // kExprI64ShrU:
     case wasm::kExprI64ShrU:
       op = m->Word64Shr();
       right = MaskShiftCount64(right);
       break;
-    // kExprI64ShrS:
     case wasm::kExprI64ShrS:
       op = m->Word64Sar();
       right = MaskShiftCount64(right);
       break;
-    // kExprI64Eq:
     case wasm::kExprI64Eq:
       op = m->Word64Equal();
       break;
-// kExprI64Ne:
     case wasm::kExprI64Ne:
       return Invert(Binop(wasm::kExprI64Eq, left, right));
-// kExprI64LtS:
     case wasm::kExprI64LtS:
       op = m->Int64LessThan();
       break;
@@ -543,7 +538,7 @@
       op = m->Float32Add();
       break;
     case wasm::kExprF32Sub:
-      op = m->Float32Sub();
+      op = m->Float32SubPreserveNan();
       break;
     case wasm::kExprF32Mul:
       op = m->Float32Mul();
@@ -574,7 +569,7 @@
       op = m->Float64Add();
       break;
     case wasm::kExprF64Sub:
-      op = m->Float64Sub();
+      op = m->Float64SubPreserveNan();
       break;
     case wasm::kExprF64Mul:
       op = m->Float64Mul();
@@ -609,23 +604,38 @@
       return BuildF32Max(left, right);
     case wasm::kExprF64Max:
       return BuildF64Max(left, right);
-    case wasm::kExprF64Pow: {
+    case wasm::kExprF64Pow:
       return BuildF64Pow(left, right);
-    }
-    case wasm::kExprF64Atan2: {
+    case wasm::kExprF64Atan2:
       return BuildF64Atan2(left, right);
-    }
-    case wasm::kExprF64Mod: {
+    case wasm::kExprF64Mod:
       return BuildF64Mod(left, right);
-    }
+    case wasm::kExprI32AsmjsDivS:
+      return BuildI32AsmjsDivS(left, right);
+    case wasm::kExprI32AsmjsDivU:
+      return BuildI32AsmjsDivU(left, right);
+    case wasm::kExprI32AsmjsRemS:
+      return BuildI32AsmjsRemS(left, right);
+    case wasm::kExprI32AsmjsRemU:
+      return BuildI32AsmjsRemU(left, right);
+    case wasm::kExprI32AsmjsStoreMem8:
+      return BuildAsmjsStoreMem(MachineType::Int8(), left, right);
+    case wasm::kExprI32AsmjsStoreMem16:
+      return BuildAsmjsStoreMem(MachineType::Int16(), left, right);
+    case wasm::kExprI32AsmjsStoreMem:
+      return BuildAsmjsStoreMem(MachineType::Int32(), left, right);
+    case wasm::kExprF32AsmjsStoreMem:
+      return BuildAsmjsStoreMem(MachineType::Float32(), left, right);
+    case wasm::kExprF64AsmjsStoreMem:
+      return BuildAsmjsStoreMem(MachineType::Float64(), left, right);
     default:
       op = UnsupportedOpcode(opcode);
   }
   return graph()->NewNode(op, left, right);
 }
 
-
-Node* WasmGraphBuilder::Unop(wasm::WasmOpcode opcode, Node* input) {
+Node* WasmGraphBuilder::Unop(wasm::WasmOpcode opcode, Node* input,
+                             wasm::WasmCodePosition position) {
   const Operator* op;
   MachineOperatorBuilder* m = jsgraph()->machine();
   switch (opcode) {
@@ -649,9 +659,13 @@
       op = m->Float64Sqrt();
       break;
     case wasm::kExprI32SConvertF64:
-      return BuildI32SConvertF64(input);
+      return BuildI32SConvertF64(input, position);
     case wasm::kExprI32UConvertF64:
-      return BuildI32UConvertF64(input);
+      return BuildI32UConvertF64(input, position);
+    case wasm::kExprI32AsmjsSConvertF64:
+      return BuildI32AsmjsSConvertF64(input);
+    case wasm::kExprI32AsmjsUConvertF64:
+      return BuildI32AsmjsUConvertF64(input);
     case wasm::kExprF32ConvertF64:
       op = m->TruncateFloat64ToFloat32();
       break;
@@ -668,9 +682,13 @@
       op = m->RoundUint32ToFloat32();
       break;
     case wasm::kExprI32SConvertF32:
-      return BuildI32SConvertF32(input);
+      return BuildI32SConvertF32(input, position);
     case wasm::kExprI32UConvertF32:
-      return BuildI32UConvertF32(input);
+      return BuildI32UConvertF32(input, position);
+    case wasm::kExprI32AsmjsSConvertF32:
+      return BuildI32AsmjsSConvertF32(input);
+    case wasm::kExprI32AsmjsUConvertF32:
+      return BuildI32AsmjsUConvertF32(input);
     case wasm::kExprF64ConvertF32:
       op = m->ChangeFloat32ToFloat64();
       break;
@@ -769,31 +787,24 @@
     case wasm::kExprF64Log: {
       return BuildF64Log(input);
     }
-    // kExprI32ConvertI64:
     case wasm::kExprI32ConvertI64:
       op = m->TruncateInt64ToInt32();
       break;
-    // kExprI64SConvertI32:
     case wasm::kExprI64SConvertI32:
       op = m->ChangeInt32ToInt64();
       break;
-    // kExprI64UConvertI32:
     case wasm::kExprI64UConvertI32:
       op = m->ChangeUint32ToUint64();
       break;
-    // kExprF64ReinterpretI64:
     case wasm::kExprF64ReinterpretI64:
       op = m->BitcastInt64ToFloat64();
       break;
-    // kExprI64ReinterpretF64:
     case wasm::kExprI64ReinterpretF64:
       op = m->BitcastFloat64ToInt64();
       break;
-    // kExprI64Clz:
     case wasm::kExprI64Clz:
       op = m->Word64Clz();
       break;
-    // kExprI64Ctz:
     case wasm::kExprI64Ctz: {
       if (m->Word64Ctz().IsSupported()) {
         op = m->Word64Ctz().op();
@@ -809,7 +820,6 @@
         return BuildI64Ctz(input);
       }
     }
-    // kExprI64Popcnt:
     case wasm::kExprI64Popcnt: {
       if (m->Word64Popcnt().IsSupported()) {
         op = m->Word64Popcnt().op();
@@ -820,7 +830,6 @@
       }
       break;
     }
-    // kExprF32SConvertI64:
     case wasm::kExprI64Eqz:
       op = m->Word64Equal();
       return graph()->NewNode(op, input, jsgraph()->Int64Constant(0));
@@ -830,65 +839,64 @@
       }
       op = m->RoundInt64ToFloat32();
       break;
-    // kExprF32UConvertI64:
     case wasm::kExprF32UConvertI64:
       if (m->Is32()) {
         return BuildF32UConvertI64(input);
       }
       op = m->RoundUint64ToFloat32();
       break;
-    // kExprF64SConvertI64:
     case wasm::kExprF64SConvertI64:
       if (m->Is32()) {
         return BuildF64SConvertI64(input);
       }
       op = m->RoundInt64ToFloat64();
       break;
-    // kExprF64UConvertI64:
     case wasm::kExprF64UConvertI64:
       if (m->Is32()) {
         return BuildF64UConvertI64(input);
       }
       op = m->RoundUint64ToFloat64();
       break;
-// kExprI64SConvertF32:
-    case wasm::kExprI64SConvertF32: {
-      return BuildI64SConvertF32(input);
-    }
-    // kExprI64SConvertF64:
-    case wasm::kExprI64SConvertF64: {
-      return BuildI64SConvertF64(input);
-    }
-    // kExprI64UConvertF32:
-    case wasm::kExprI64UConvertF32: {
-      return BuildI64UConvertF32(input);
-    }
-    // kExprI64UConvertF64:
-    case wasm::kExprI64UConvertF64: {
-      return BuildI64UConvertF64(input);
-    }
+    case wasm::kExprI64SConvertF32:
+      return BuildI64SConvertF32(input, position);
+    case wasm::kExprI64SConvertF64:
+      return BuildI64SConvertF64(input, position);
+    case wasm::kExprI64UConvertF32:
+      return BuildI64UConvertF32(input, position);
+    case wasm::kExprI64UConvertF64:
+      return BuildI64UConvertF64(input, position);
+    case wasm::kExprI32AsmjsLoadMem8S:
+      return BuildAsmjsLoadMem(MachineType::Int8(), input);
+    case wasm::kExprI32AsmjsLoadMem8U:
+      return BuildAsmjsLoadMem(MachineType::Uint8(), input);
+    case wasm::kExprI32AsmjsLoadMem16S:
+      return BuildAsmjsLoadMem(MachineType::Int16(), input);
+    case wasm::kExprI32AsmjsLoadMem16U:
+      return BuildAsmjsLoadMem(MachineType::Uint16(), input);
+    case wasm::kExprI32AsmjsLoadMem:
+      return BuildAsmjsLoadMem(MachineType::Int32(), input);
+    case wasm::kExprF32AsmjsLoadMem:
+      return BuildAsmjsLoadMem(MachineType::Float32(), input);
+    case wasm::kExprF64AsmjsLoadMem:
+      return BuildAsmjsLoadMem(MachineType::Float64(), input);
     default:
       op = UnsupportedOpcode(opcode);
   }
   return graph()->NewNode(op, input);
 }
 
-
 Node* WasmGraphBuilder::Float32Constant(float value) {
   return jsgraph()->Float32Constant(value);
 }
 
-
 Node* WasmGraphBuilder::Float64Constant(double value) {
   return jsgraph()->Float64Constant(value);
 }
 
-
-Node* WasmGraphBuilder::Constant(Handle<Object> value) {
-  return jsgraph()->Constant(value);
+Node* WasmGraphBuilder::HeapConstant(Handle<HeapObject> value) {
+  return jsgraph()->HeapConstant(value);
 }
 
-
 Node* WasmGraphBuilder::Branch(Node* cond, Node** true_node,
                                Node** false_node) {
   DCHECK_NOT_NULL(cond);
@@ -900,24 +908,20 @@
   return branch;
 }
 
-
 Node* WasmGraphBuilder::Switch(unsigned count, Node* key) {
   return graph()->NewNode(jsgraph()->common()->Switch(count), key, *control_);
 }
 
-
 Node* WasmGraphBuilder::IfValue(int32_t value, Node* sw) {
   DCHECK_EQ(IrOpcode::kSwitch, sw->opcode());
   return graph()->NewNode(jsgraph()->common()->IfValue(value), sw);
 }
 
-
 Node* WasmGraphBuilder::IfDefault(Node* sw) {
   DCHECK_EQ(IrOpcode::kSwitch, sw->opcode());
   return graph()->NewNode(jsgraph()->common()->IfDefault(), sw);
 }
 
-
 Node* WasmGraphBuilder::Return(unsigned count, Node** vals) {
   DCHECK_NOT_NULL(*control_);
   DCHECK_NOT_NULL(*effect_);
@@ -937,12 +941,10 @@
   return ret;
 }
 
-
 Node* WasmGraphBuilder::ReturnVoid() { return Return(0, Buffer(0)); }
 
-
-Node* WasmGraphBuilder::Unreachable() {
-  trap_->Unreachable();
+Node* WasmGraphBuilder::Unreachable(wasm::WasmCodePosition position) {
+  trap_->Unreachable(position);
   return nullptr;
 }
 
@@ -987,7 +989,6 @@
   return result;
 }
 
-
 Node* WasmGraphBuilder::BuildF64Neg(Node* input) {
 #if WASM_64
   Node* result =
@@ -1007,7 +1008,6 @@
 #endif
 }
 
-
 Node* WasmGraphBuilder::BuildF32CopySign(Node* left, Node* right) {
   Node* result = Unop(
       wasm::kExprF32ReinterpretI32,
@@ -1020,7 +1020,6 @@
   return result;
 }
 
-
 Node* WasmGraphBuilder::BuildF64CopySign(Node* left, Node* right) {
 #if WASM_64
   Node* result = Unop(
@@ -1049,7 +1048,6 @@
 #endif
 }
 
-
 Node* WasmGraphBuilder::BuildF32Min(Node* left, Node* right) {
   Diamond left_le_right(graph(), jsgraph()->common(),
                         Binop(wasm::kExprF32Le, left, right));
@@ -1070,7 +1068,6 @@
               Binop(wasm::kExprF32Mul, left, Float32Constant(1.0)))));
 }
 
-
 Node* WasmGraphBuilder::BuildF32Max(Node* left, Node* right) {
   Diamond left_ge_right(graph(), jsgraph()->common(),
                         Binop(wasm::kExprF32Ge, left, right));
@@ -1091,7 +1088,6 @@
               Binop(wasm::kExprF32Mul, left, Float32Constant(1.0)))));
 }
 
-
 Node* WasmGraphBuilder::BuildF64Min(Node* left, Node* right) {
   Diamond left_le_right(graph(), jsgraph()->common(),
                         Binop(wasm::kExprF64Le, left, right));
@@ -1112,7 +1108,6 @@
               Binop(wasm::kExprF64Mul, left, Float64Constant(1.0)))));
 }
 
-
 Node* WasmGraphBuilder::BuildF64Max(Node* left, Node* right) {
   Diamond left_ge_right(graph(), jsgraph()->common(),
                         Binop(wasm::kExprF64Ge, left, right));
@@ -1133,16 +1128,9 @@
               Binop(wasm::kExprF64Mul, left, Float64Constant(1.0)))));
 }
 
-
-Node* WasmGraphBuilder::BuildI32SConvertF32(Node* input) {
+Node* WasmGraphBuilder::BuildI32SConvertF32(Node* input,
+                                            wasm::WasmCodePosition position) {
   MachineOperatorBuilder* m = jsgraph()->machine();
-  if (module_ && module_->asm_js()) {
-    // asm.js must use the wacky JS semantics.
-    input = graph()->NewNode(m->ChangeFloat32ToFloat64(), input);
-    return graph()->NewNode(
-        m->TruncateFloat64ToInt32(TruncationMode::kJavaScript), input);
-  }
-
   // Truncation of the input value is needed for the overflow check later.
   Node* trunc = Unop(wasm::kExprF32Trunc, input);
   Node* result = graph()->NewNode(m->TruncateFloat32ToInt32(), trunc);
@@ -1151,19 +1139,14 @@
   // truncated input value, then there has been an overflow and we trap.
   Node* check = Unop(wasm::kExprF32SConvertI32, result);
   Node* overflow = Binop(wasm::kExprF32Ne, trunc, check);
-  trap_->AddTrapIfTrue(wasm::kTrapFloatUnrepresentable, overflow);
+  trap_->AddTrapIfTrue(wasm::kTrapFloatUnrepresentable, overflow, position);
 
   return result;
 }
 
-
-Node* WasmGraphBuilder::BuildI32SConvertF64(Node* input) {
+Node* WasmGraphBuilder::BuildI32SConvertF64(Node* input,
+                                            wasm::WasmCodePosition position) {
   MachineOperatorBuilder* m = jsgraph()->machine();
-  if (module_ && module_->asm_js()) {
-    // asm.js must use the wacky JS semantics.
-    return graph()->NewNode(
-        m->TruncateFloat64ToInt32(TruncationMode::kJavaScript), input);
-  }
   // Truncation of the input value is needed for the overflow check later.
   Node* trunc = Unop(wasm::kExprF64Trunc, input);
   Node* result = graph()->NewNode(m->ChangeFloat64ToInt32(), trunc);
@@ -1172,21 +1155,14 @@
   // truncated input value, then there has been an overflow and we trap.
   Node* check = Unop(wasm::kExprF64SConvertI32, result);
   Node* overflow = Binop(wasm::kExprF64Ne, trunc, check);
-  trap_->AddTrapIfTrue(wasm::kTrapFloatUnrepresentable, overflow);
+  trap_->AddTrapIfTrue(wasm::kTrapFloatUnrepresentable, overflow, position);
 
   return result;
 }
 
-
-Node* WasmGraphBuilder::BuildI32UConvertF32(Node* input) {
+Node* WasmGraphBuilder::BuildI32UConvertF32(Node* input,
+                                            wasm::WasmCodePosition position) {
   MachineOperatorBuilder* m = jsgraph()->machine();
-  if (module_ && module_->asm_js()) {
-    // asm.js must use the wacky JS semantics.
-    input = graph()->NewNode(m->ChangeFloat32ToFloat64(), input);
-    return graph()->NewNode(
-        m->TruncateFloat64ToInt32(TruncationMode::kJavaScript), input);
-  }
-
   // Truncation of the input value is needed for the overflow check later.
   Node* trunc = Unop(wasm::kExprF32Trunc, input);
   Node* result = graph()->NewNode(m->TruncateFloat32ToUint32(), trunc);
@@ -1195,19 +1171,14 @@
   // truncated input value, then there has been an overflow and we trap.
   Node* check = Unop(wasm::kExprF32UConvertI32, result);
   Node* overflow = Binop(wasm::kExprF32Ne, trunc, check);
-  trap_->AddTrapIfTrue(wasm::kTrapFloatUnrepresentable, overflow);
+  trap_->AddTrapIfTrue(wasm::kTrapFloatUnrepresentable, overflow, position);
 
   return result;
 }
 
-
-Node* WasmGraphBuilder::BuildI32UConvertF64(Node* input) {
+Node* WasmGraphBuilder::BuildI32UConvertF64(Node* input,
+                                            wasm::WasmCodePosition position) {
   MachineOperatorBuilder* m = jsgraph()->machine();
-  if (module_ && module_->asm_js()) {
-    // asm.js must use the wacky JS semantics.
-    return graph()->NewNode(
-        m->TruncateFloat64ToInt32(TruncationMode::kJavaScript), input);
-  }
   // Truncation of the input value is needed for the overflow check later.
   Node* trunc = Unop(wasm::kExprF64Trunc, input);
   Node* result = graph()->NewNode(m->TruncateFloat64ToUint32(), trunc);
@@ -1216,185 +1187,82 @@
   // truncated input value, then there has been an overflow and we trap.
   Node* check = Unop(wasm::kExprF64UConvertI32, result);
   Node* overflow = Binop(wasm::kExprF64Ne, trunc, check);
-  trap_->AddTrapIfTrue(wasm::kTrapFloatUnrepresentable, overflow);
+  trap_->AddTrapIfTrue(wasm::kTrapFloatUnrepresentable, overflow, position);
 
   return result;
 }
 
+Node* WasmGraphBuilder::BuildI32AsmjsSConvertF32(Node* input) {
+  MachineOperatorBuilder* m = jsgraph()->machine();
+  // asm.js must use the wacky JS semantics.
+  input = graph()->NewNode(m->ChangeFloat32ToFloat64(), input);
+  return graph()->NewNode(m->TruncateFloat64ToWord32(), input);
+}
+
+Node* WasmGraphBuilder::BuildI32AsmjsSConvertF64(Node* input) {
+  MachineOperatorBuilder* m = jsgraph()->machine();
+  // asm.js must use the wacky JS semantics.
+  return graph()->NewNode(m->TruncateFloat64ToWord32(), input);
+}
+
+Node* WasmGraphBuilder::BuildI32AsmjsUConvertF32(Node* input) {
+  MachineOperatorBuilder* m = jsgraph()->machine();
+  // asm.js must use the wacky JS semantics.
+  input = graph()->NewNode(m->ChangeFloat32ToFloat64(), input);
+  return graph()->NewNode(m->TruncateFloat64ToWord32(), input);
+}
+
+Node* WasmGraphBuilder::BuildI32AsmjsUConvertF64(Node* input) {
+  MachineOperatorBuilder* m = jsgraph()->machine();
+  // asm.js must use the wacky JS semantics.
+  return graph()->NewNode(m->TruncateFloat64ToWord32(), input);
+}
+
+Node* WasmGraphBuilder::BuildBitCountingCall(Node* input, ExternalReference ref,
+                                             MachineRepresentation input_type) {
+  Node* stack_slot_param =
+      graph()->NewNode(jsgraph()->machine()->StackSlot(input_type));
+
+  const Operator* store_op = jsgraph()->machine()->Store(
+      StoreRepresentation(input_type, kNoWriteBarrier));
+  *effect_ =
+      graph()->NewNode(store_op, stack_slot_param, jsgraph()->Int32Constant(0),
+                       input, *effect_, *control_);
+
+  MachineSignature::Builder sig_builder(jsgraph()->zone(), 1, 1);
+  sig_builder.AddReturn(MachineType::Int32());
+  sig_builder.AddParam(MachineType::Pointer());
+
+  Node* function = graph()->NewNode(jsgraph()->common()->ExternalConstant(ref));
+  Node* args[] = {function, stack_slot_param};
+
+  return BuildCCall(sig_builder.Build(), args);
+}
 
 Node* WasmGraphBuilder::BuildI32Ctz(Node* input) {
-  //// Implement the following code as TF graph.
-  // value = value | (value << 1);
-  // value = value | (value << 2);
-  // value = value | (value << 4);
-  // value = value | (value << 8);
-  // value = value | (value << 16);
-  // return CountPopulation32(0xffffffff XOR value);
-
-  Node* result =
-      Binop(wasm::kExprI32Ior, input,
-            Binop(wasm::kExprI32Shl, input, jsgraph()->Int32Constant(1)));
-
-  result = Binop(wasm::kExprI32Ior, result,
-                 Binop(wasm::kExprI32Shl, result, jsgraph()->Int32Constant(2)));
-
-  result = Binop(wasm::kExprI32Ior, result,
-                 Binop(wasm::kExprI32Shl, result, jsgraph()->Int32Constant(4)));
-
-  result = Binop(wasm::kExprI32Ior, result,
-                 Binop(wasm::kExprI32Shl, result, jsgraph()->Int32Constant(8)));
-
-  result =
-      Binop(wasm::kExprI32Ior, result,
-            Binop(wasm::kExprI32Shl, result, jsgraph()->Int32Constant(16)));
-
-  result = BuildI32Popcnt(
-      Binop(wasm::kExprI32Xor, jsgraph()->Int32Constant(0xffffffff), result));
-
-  return result;
+  return BuildBitCountingCall(
+      input, ExternalReference::wasm_word32_ctz(jsgraph()->isolate()),
+      MachineRepresentation::kWord32);
 }
 
-
 Node* WasmGraphBuilder::BuildI64Ctz(Node* input) {
-  //// Implement the following code as TF graph.
-  // value = value | (value << 1);
-  // value = value | (value << 2);
-  // value = value | (value << 4);
-  // value = value | (value << 8);
-  // value = value | (value << 16);
-  // value = value | (value << 32);
-  // return CountPopulation64(0xffffffffffffffff XOR value);
-
-  Node* result =
-      Binop(wasm::kExprI64Ior, input,
-            Binop(wasm::kExprI64Shl, input, jsgraph()->Int64Constant(1)));
-
-  result = Binop(wasm::kExprI64Ior, result,
-                 Binop(wasm::kExprI64Shl, result, jsgraph()->Int64Constant(2)));
-
-  result = Binop(wasm::kExprI64Ior, result,
-                 Binop(wasm::kExprI64Shl, result, jsgraph()->Int64Constant(4)));
-
-  result = Binop(wasm::kExprI64Ior, result,
-                 Binop(wasm::kExprI64Shl, result, jsgraph()->Int64Constant(8)));
-
-  result =
-      Binop(wasm::kExprI64Ior, result,
-            Binop(wasm::kExprI64Shl, result, jsgraph()->Int64Constant(16)));
-
-  result =
-      Binop(wasm::kExprI64Ior, result,
-            Binop(wasm::kExprI64Shl, result, jsgraph()->Int64Constant(32)));
-
-  result = BuildI64Popcnt(Binop(
-      wasm::kExprI64Xor, jsgraph()->Int64Constant(0xffffffffffffffff), result));
-
-  return result;
+  return Unop(wasm::kExprI64UConvertI32,
+              BuildBitCountingCall(input, ExternalReference::wasm_word64_ctz(
+                                              jsgraph()->isolate()),
+                                   MachineRepresentation::kWord64));
 }
 
-
 Node* WasmGraphBuilder::BuildI32Popcnt(Node* input) {
-  //// Implement the following code as a TF graph.
-  // value = ((value >> 1) & 0x55555555) + (value & 0x55555555);
-  // value = ((value >> 2) & 0x33333333) + (value & 0x33333333);
-  // value = ((value >> 4) & 0x0f0f0f0f) + (value & 0x0f0f0f0f);
-  // value = ((value >> 8) & 0x00ff00ff) + (value & 0x00ff00ff);
-  // value = ((value >> 16) & 0x0000ffff) + (value & 0x0000ffff);
-
-  Node* result = Binop(
-      wasm::kExprI32Add,
-      Binop(wasm::kExprI32And,
-            Binop(wasm::kExprI32ShrU, input, jsgraph()->Int32Constant(1)),
-            jsgraph()->Int32Constant(0x55555555)),
-      Binop(wasm::kExprI32And, input, jsgraph()->Int32Constant(0x55555555)));
-
-  result = Binop(
-      wasm::kExprI32Add,
-      Binop(wasm::kExprI32And,
-            Binop(wasm::kExprI32ShrU, result, jsgraph()->Int32Constant(2)),
-            jsgraph()->Int32Constant(0x33333333)),
-      Binop(wasm::kExprI32And, result, jsgraph()->Int32Constant(0x33333333)));
-
-  result = Binop(
-      wasm::kExprI32Add,
-      Binop(wasm::kExprI32And,
-            Binop(wasm::kExprI32ShrU, result, jsgraph()->Int32Constant(4)),
-            jsgraph()->Int32Constant(0x0f0f0f0f)),
-      Binop(wasm::kExprI32And, result, jsgraph()->Int32Constant(0x0f0f0f0f)));
-
-  result = Binop(
-      wasm::kExprI32Add,
-      Binop(wasm::kExprI32And,
-            Binop(wasm::kExprI32ShrU, result, jsgraph()->Int32Constant(8)),
-            jsgraph()->Int32Constant(0x00ff00ff)),
-      Binop(wasm::kExprI32And, result, jsgraph()->Int32Constant(0x00ff00ff)));
-
-  result = Binop(
-      wasm::kExprI32Add,
-      Binop(wasm::kExprI32And,
-            Binop(wasm::kExprI32ShrU, result, jsgraph()->Int32Constant(16)),
-            jsgraph()->Int32Constant(0x0000ffff)),
-      Binop(wasm::kExprI32And, result, jsgraph()->Int32Constant(0x0000ffff)));
-
-  return result;
+  return BuildBitCountingCall(
+      input, ExternalReference::wasm_word32_popcnt(jsgraph()->isolate()),
+      MachineRepresentation::kWord32);
 }
 
-
 Node* WasmGraphBuilder::BuildI64Popcnt(Node* input) {
-  //// Implement the following code as a TF graph.
-  // value = ((value >> 1) & 0x5555555555555555) + (value & 0x5555555555555555);
-  // value = ((value >> 2) & 0x3333333333333333) + (value & 0x3333333333333333);
-  // value = ((value >> 4) & 0x0f0f0f0f0f0f0f0f) + (value & 0x0f0f0f0f0f0f0f0f);
-  // value = ((value >> 8) & 0x00ff00ff00ff00ff) + (value & 0x00ff00ff00ff00ff);
-  // value = ((value >> 16) & 0x0000ffff0000ffff) + (value &
-  // 0x0000ffff0000ffff);
-  // value = ((value >> 32) & 0x00000000ffffffff) + (value &
-  // 0x00000000ffffffff);
-
-  Node* result =
-      Binop(wasm::kExprI64Add,
-            Binop(wasm::kExprI64And,
-                  Binop(wasm::kExprI64ShrU, input, jsgraph()->Int64Constant(1)),
-                  jsgraph()->Int64Constant(0x5555555555555555)),
-            Binop(wasm::kExprI64And, input,
-                  jsgraph()->Int64Constant(0x5555555555555555)));
-
-  result = Binop(wasm::kExprI64Add,
-                 Binop(wasm::kExprI64And, Binop(wasm::kExprI64ShrU, result,
-                                                jsgraph()->Int64Constant(2)),
-                       jsgraph()->Int64Constant(0x3333333333333333)),
-                 Binop(wasm::kExprI64And, result,
-                       jsgraph()->Int64Constant(0x3333333333333333)));
-
-  result = Binop(wasm::kExprI64Add,
-                 Binop(wasm::kExprI64And, Binop(wasm::kExprI64ShrU, result,
-                                                jsgraph()->Int64Constant(4)),
-                       jsgraph()->Int64Constant(0x0f0f0f0f0f0f0f0f)),
-                 Binop(wasm::kExprI64And, result,
-                       jsgraph()->Int64Constant(0x0f0f0f0f0f0f0f0f)));
-
-  result = Binop(wasm::kExprI64Add,
-                 Binop(wasm::kExprI64And, Binop(wasm::kExprI64ShrU, result,
-                                                jsgraph()->Int64Constant(8)),
-                       jsgraph()->Int64Constant(0x00ff00ff00ff00ff)),
-                 Binop(wasm::kExprI64And, result,
-                       jsgraph()->Int64Constant(0x00ff00ff00ff00ff)));
-
-  result = Binop(wasm::kExprI64Add,
-                 Binop(wasm::kExprI64And, Binop(wasm::kExprI64ShrU, result,
-                                                jsgraph()->Int64Constant(16)),
-                       jsgraph()->Int64Constant(0x0000ffff0000ffff)),
-                 Binop(wasm::kExprI64And, result,
-                       jsgraph()->Int64Constant(0x0000ffff0000ffff)));
-
-  result = Binop(wasm::kExprI64Add,
-                 Binop(wasm::kExprI64And, Binop(wasm::kExprI64ShrU, result,
-                                                jsgraph()->Int64Constant(32)),
-                       jsgraph()->Int64Constant(0x00000000ffffffff)),
-                 Binop(wasm::kExprI64And, result,
-                       jsgraph()->Int64Constant(0x00000000ffffffff)));
-
-  return result;
+  return Unop(wasm::kExprI64UConvertI32,
+              BuildBitCountingCall(input, ExternalReference::wasm_word64_popcnt(
+                                              jsgraph()->isolate()),
+                                   MachineRepresentation::kWord64));
 }
 
 Node* WasmGraphBuilder::BuildF32Trunc(Node* input) {
@@ -1635,66 +1503,70 @@
   return load;
 }
 
-Node* WasmGraphBuilder::BuildI64SConvertF32(Node* input) {
+Node* WasmGraphBuilder::BuildI64SConvertF32(Node* input,
+                                            wasm::WasmCodePosition position) {
   if (jsgraph()->machine()->Is32()) {
     return BuildFloatToIntConversionInstruction(
         input, ExternalReference::wasm_float32_to_int64(jsgraph()->isolate()),
-        MachineRepresentation::kFloat32, MachineType::Int64());
+        MachineRepresentation::kFloat32, MachineType::Int64(), position);
   } else {
     Node* trunc = graph()->NewNode(
         jsgraph()->machine()->TryTruncateFloat32ToInt64(), input);
     Node* result = graph()->NewNode(jsgraph()->common()->Projection(0), trunc);
     Node* overflow =
         graph()->NewNode(jsgraph()->common()->Projection(1), trunc);
-    trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow);
+    trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow, position);
     return result;
   }
 }
 
-Node* WasmGraphBuilder::BuildI64UConvertF32(Node* input) {
+Node* WasmGraphBuilder::BuildI64UConvertF32(Node* input,
+                                            wasm::WasmCodePosition position) {
   if (jsgraph()->machine()->Is32()) {
     return BuildFloatToIntConversionInstruction(
         input, ExternalReference::wasm_float32_to_uint64(jsgraph()->isolate()),
-        MachineRepresentation::kFloat32, MachineType::Int64());
+        MachineRepresentation::kFloat32, MachineType::Int64(), position);
   } else {
     Node* trunc = graph()->NewNode(
         jsgraph()->machine()->TryTruncateFloat32ToUint64(), input);
     Node* result = graph()->NewNode(jsgraph()->common()->Projection(0), trunc);
     Node* overflow =
         graph()->NewNode(jsgraph()->common()->Projection(1), trunc);
-    trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow);
+    trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow, position);
     return result;
   }
 }
 
-Node* WasmGraphBuilder::BuildI64SConvertF64(Node* input) {
+Node* WasmGraphBuilder::BuildI64SConvertF64(Node* input,
+                                            wasm::WasmCodePosition position) {
   if (jsgraph()->machine()->Is32()) {
     return BuildFloatToIntConversionInstruction(
         input, ExternalReference::wasm_float64_to_int64(jsgraph()->isolate()),
-        MachineRepresentation::kFloat64, MachineType::Int64());
+        MachineRepresentation::kFloat64, MachineType::Int64(), position);
   } else {
     Node* trunc = graph()->NewNode(
         jsgraph()->machine()->TryTruncateFloat64ToInt64(), input);
     Node* result = graph()->NewNode(jsgraph()->common()->Projection(0), trunc);
     Node* overflow =
         graph()->NewNode(jsgraph()->common()->Projection(1), trunc);
-    trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow);
+    trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow, position);
     return result;
   }
 }
 
-Node* WasmGraphBuilder::BuildI64UConvertF64(Node* input) {
+Node* WasmGraphBuilder::BuildI64UConvertF64(Node* input,
+                                            wasm::WasmCodePosition position) {
   if (jsgraph()->machine()->Is32()) {
     return BuildFloatToIntConversionInstruction(
         input, ExternalReference::wasm_float64_to_uint64(jsgraph()->isolate()),
-        MachineRepresentation::kFloat64, MachineType::Int64());
+        MachineRepresentation::kFloat64, MachineType::Int64(), position);
   } else {
     Node* trunc = graph()->NewNode(
         jsgraph()->machine()->TryTruncateFloat64ToUint64(), input);
     Node* result = graph()->NewNode(jsgraph()->common()->Projection(0), trunc);
     Node* overflow =
         graph()->NewNode(jsgraph()->common()->Projection(1), trunc);
-    trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow);
+    trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow, position);
     return result;
   }
 }
@@ -1702,7 +1574,7 @@
 Node* WasmGraphBuilder::BuildFloatToIntConversionInstruction(
     Node* input, ExternalReference ref,
     MachineRepresentation parameter_representation,
-    const MachineType result_type) {
+    const MachineType result_type, wasm::WasmCodePosition position) {
   Node* stack_slot_param = graph()->NewNode(
       jsgraph()->machine()->StackSlot(parameter_representation));
   Node* stack_slot_result = graph()->NewNode(
@@ -1719,7 +1591,7 @@
   Node* function = graph()->NewNode(jsgraph()->common()->ExternalConstant(ref));
   Node* args[] = {function, stack_slot_param, stack_slot_result};
   trap_->ZeroCheck32(wasm::kTrapFloatUnrepresentable,
-                     BuildCCall(sig_builder.Build(), args));
+                     BuildCCall(sig_builder.Build(), args), position);
   const Operator* load_op = jsgraph()->machine()->Load(result_type);
   Node* load =
       graph()->NewNode(load_op, stack_slot_result, jsgraph()->Int32Constant(0),
@@ -1728,37 +1600,10 @@
   return load;
 }
 
-Node* WasmGraphBuilder::BuildI32DivS(Node* left, Node* right) {
+Node* WasmGraphBuilder::BuildI32DivS(Node* left, Node* right,
+                                     wasm::WasmCodePosition position) {
   MachineOperatorBuilder* m = jsgraph()->machine();
-  if (module_ && module_->asm_js()) {
-    // asm.js semantics return 0 on divide or mod by zero.
-    if (m->Int32DivIsSafe()) {
-      // The hardware instruction does the right thing (e.g. arm).
-      return graph()->NewNode(m->Int32Div(), left, right, graph()->start());
-    }
-
-    // Check denominator for zero.
-    Diamond z(
-        graph(), jsgraph()->common(),
-        graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(0)),
-        BranchHint::kFalse);
-
-    // Check numerator for -1. (avoid minint / -1 case).
-    Diamond n(
-        graph(), jsgraph()->common(),
-        graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(-1)),
-        BranchHint::kFalse);
-
-    Node* div = graph()->NewNode(m->Int32Div(), left, right, z.if_false);
-    Node* neg =
-        graph()->NewNode(m->Int32Sub(), jsgraph()->Int32Constant(0), left);
-
-    return n.Phi(MachineRepresentation::kWord32, neg,
-                 z.Phi(MachineRepresentation::kWord32,
-                       jsgraph()->Int32Constant(0), div));
-  }
-
-  trap_->ZeroCheck32(wasm::kTrapDivByZero, right);
+  trap_->ZeroCheck32(wasm::kTrapDivByZero, right, position);
   Node* before = *control_;
   Node* denom_is_m1;
   Node* denom_is_not_m1;
@@ -1766,7 +1611,7 @@
       graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(-1)),
       &denom_is_m1, &denom_is_not_m1);
   *control_ = denom_is_m1;
-  trap_->TrapIfEq32(wasm::kTrapDivUnrepresentable, left, kMinInt);
+  trap_->TrapIfEq32(wasm::kTrapDivUnrepresentable, left, kMinInt, position);
   if (*control_ != denom_is_m1) {
     *control_ = graph()->NewNode(jsgraph()->common()->Merge(2), denom_is_not_m1,
                                  *control_);
@@ -1776,30 +1621,11 @@
   return graph()->NewNode(m->Int32Div(), left, right, *control_);
 }
 
-Node* WasmGraphBuilder::BuildI32RemS(Node* left, Node* right) {
+Node* WasmGraphBuilder::BuildI32RemS(Node* left, Node* right,
+                                     wasm::WasmCodePosition position) {
   MachineOperatorBuilder* m = jsgraph()->machine();
-  if (module_ && module_->asm_js()) {
-    // asm.js semantics return 0 on divide or mod by zero.
-    // Explicit check for x % 0.
-    Diamond z(
-        graph(), jsgraph()->common(),
-        graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(0)),
-        BranchHint::kFalse);
 
-    // Explicit check for x % -1.
-    Diamond d(
-        graph(), jsgraph()->common(),
-        graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(-1)),
-        BranchHint::kFalse);
-    d.Chain(z.if_false);
-
-    return z.Phi(
-        MachineRepresentation::kWord32, jsgraph()->Int32Constant(0),
-        d.Phi(MachineRepresentation::kWord32, jsgraph()->Int32Constant(0),
-              graph()->NewNode(m->Int32Mod(), left, right, d.if_false)));
-  }
-
-  trap_->ZeroCheck32(wasm::kTrapRemByZero, right);
+  trap_->ZeroCheck32(wasm::kTrapRemByZero, right, position);
 
   Diamond d(
       graph(), jsgraph()->common(),
@@ -1811,56 +1637,115 @@
                graph()->NewNode(m->Int32Mod(), left, right, d.if_false));
 }
 
-Node* WasmGraphBuilder::BuildI32DivU(Node* left, Node* right) {
+Node* WasmGraphBuilder::BuildI32DivU(Node* left, Node* right,
+                                     wasm::WasmCodePosition position) {
   MachineOperatorBuilder* m = jsgraph()->machine();
-  if (module_ && module_->asm_js()) {
-    // asm.js semantics return 0 on divide or mod by zero.
-    if (m->Uint32DivIsSafe()) {
-      // The hardware instruction does the right thing (e.g. arm).
-      return graph()->NewNode(m->Uint32Div(), left, right, graph()->start());
-    }
-
-    // Explicit check for x % 0.
-    Diamond z(
-        graph(), jsgraph()->common(),
-        graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(0)),
-        BranchHint::kFalse);
-
-    return z.Phi(MachineRepresentation::kWord32, jsgraph()->Int32Constant(0),
-                 graph()->NewNode(jsgraph()->machine()->Uint32Div(), left,
-                                  right, z.if_false));
-  }
-  return graph()->NewNode(m->Uint32Div(), left, right,
-                          trap_->ZeroCheck32(wasm::kTrapDivByZero, right));
+  return graph()->NewNode(
+      m->Uint32Div(), left, right,
+      trap_->ZeroCheck32(wasm::kTrapDivByZero, right, position));
 }
 
-Node* WasmGraphBuilder::BuildI32RemU(Node* left, Node* right) {
+Node* WasmGraphBuilder::BuildI32RemU(Node* left, Node* right,
+                                     wasm::WasmCodePosition position) {
   MachineOperatorBuilder* m = jsgraph()->machine();
-  if (module_ && module_->asm_js()) {
-    // asm.js semantics return 0 on divide or mod by zero.
-    // Explicit check for x % 0.
-    Diamond z(
-        graph(), jsgraph()->common(),
-        graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(0)),
-        BranchHint::kFalse);
-
-    Node* rem = graph()->NewNode(jsgraph()->machine()->Uint32Mod(), left, right,
-                                 z.if_false);
-    return z.Phi(MachineRepresentation::kWord32, jsgraph()->Int32Constant(0),
-                 rem);
-  }
-
-  return graph()->NewNode(m->Uint32Mod(), left, right,
-                          trap_->ZeroCheck32(wasm::kTrapRemByZero, right));
+  return graph()->NewNode(
+      m->Uint32Mod(), left, right,
+      trap_->ZeroCheck32(wasm::kTrapRemByZero, right, position));
 }
 
-Node* WasmGraphBuilder::BuildI64DivS(Node* left, Node* right) {
+Node* WasmGraphBuilder::BuildI32AsmjsDivS(Node* left, Node* right) {
+  MachineOperatorBuilder* m = jsgraph()->machine();
+  // asm.js semantics return 0 on divide or mod by zero.
+  if (m->Int32DivIsSafe()) {
+    // The hardware instruction does the right thing (e.g. arm).
+    return graph()->NewNode(m->Int32Div(), left, right, graph()->start());
+  }
+
+  // Check denominator for zero.
+  Diamond z(
+      graph(), jsgraph()->common(),
+      graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(0)),
+      BranchHint::kFalse);
+
+  // Check numerator for -1. (avoid minint / -1 case).
+  Diamond n(
+      graph(), jsgraph()->common(),
+      graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(-1)),
+      BranchHint::kFalse);
+
+  Node* div = graph()->NewNode(m->Int32Div(), left, right, z.if_false);
+  Node* neg =
+      graph()->NewNode(m->Int32Sub(), jsgraph()->Int32Constant(0), left);
+
+  return n.Phi(
+      MachineRepresentation::kWord32, neg,
+      z.Phi(MachineRepresentation::kWord32, jsgraph()->Int32Constant(0), div));
+}
+
+Node* WasmGraphBuilder::BuildI32AsmjsRemS(Node* left, Node* right) {
+  MachineOperatorBuilder* m = jsgraph()->machine();
+  // asm.js semantics return 0 on divide or mod by zero.
+  // Explicit check for x % 0.
+  Diamond z(
+      graph(), jsgraph()->common(),
+      graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(0)),
+      BranchHint::kFalse);
+
+  // Explicit check for x % -1.
+  Diamond d(
+      graph(), jsgraph()->common(),
+      graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(-1)),
+      BranchHint::kFalse);
+  d.Chain(z.if_false);
+
+  return z.Phi(
+      MachineRepresentation::kWord32, jsgraph()->Int32Constant(0),
+      d.Phi(MachineRepresentation::kWord32, jsgraph()->Int32Constant(0),
+            graph()->NewNode(m->Int32Mod(), left, right, d.if_false)));
+}
+
+Node* WasmGraphBuilder::BuildI32AsmjsDivU(Node* left, Node* right) {
+  MachineOperatorBuilder* m = jsgraph()->machine();
+  // asm.js semantics return 0 on divide or mod by zero.
+  if (m->Uint32DivIsSafe()) {
+    // The hardware instruction does the right thing (e.g. arm).
+    return graph()->NewNode(m->Uint32Div(), left, right, graph()->start());
+  }
+
+  // Explicit check for x % 0.
+  Diamond z(
+      graph(), jsgraph()->common(),
+      graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(0)),
+      BranchHint::kFalse);
+
+  return z.Phi(MachineRepresentation::kWord32, jsgraph()->Int32Constant(0),
+               graph()->NewNode(jsgraph()->machine()->Uint32Div(), left, right,
+                                z.if_false));
+}
+
+Node* WasmGraphBuilder::BuildI32AsmjsRemU(Node* left, Node* right) {
+  MachineOperatorBuilder* m = jsgraph()->machine();
+  // asm.js semantics return 0 on divide or mod by zero.
+  // Explicit check for x % 0.
+  Diamond z(
+      graph(), jsgraph()->common(),
+      graph()->NewNode(m->Word32Equal(), right, jsgraph()->Int32Constant(0)),
+      BranchHint::kFalse);
+
+  Node* rem = graph()->NewNode(jsgraph()->machine()->Uint32Mod(), left, right,
+                               z.if_false);
+  return z.Phi(MachineRepresentation::kWord32, jsgraph()->Int32Constant(0),
+               rem);
+}
+
+Node* WasmGraphBuilder::BuildI64DivS(Node* left, Node* right,
+                                     wasm::WasmCodePosition position) {
   if (jsgraph()->machine()->Is32()) {
     return BuildDiv64Call(
         left, right, ExternalReference::wasm_int64_div(jsgraph()->isolate()),
-        MachineType::Int64(), wasm::kTrapDivByZero);
+        MachineType::Int64(), wasm::kTrapDivByZero, position);
   }
-  trap_->ZeroCheck64(wasm::kTrapDivByZero, right);
+  trap_->ZeroCheck64(wasm::kTrapDivByZero, right, position);
   Node* before = *control_;
   Node* denom_is_m1;
   Node* denom_is_not_m1;
@@ -1869,7 +1754,7 @@
          &denom_is_m1, &denom_is_not_m1);
   *control_ = denom_is_m1;
   trap_->TrapIfEq64(wasm::kTrapDivUnrepresentable, left,
-                    std::numeric_limits<int64_t>::min());
+                    std::numeric_limits<int64_t>::min(), position);
   if (*control_ != denom_is_m1) {
     *control_ = graph()->NewNode(jsgraph()->common()->Merge(2), denom_is_not_m1,
                                  *control_);
@@ -1880,13 +1765,14 @@
                           *control_);
 }
 
-Node* WasmGraphBuilder::BuildI64RemS(Node* left, Node* right) {
+Node* WasmGraphBuilder::BuildI64RemS(Node* left, Node* right,
+                                     wasm::WasmCodePosition position) {
   if (jsgraph()->machine()->Is32()) {
     return BuildDiv64Call(
         left, right, ExternalReference::wasm_int64_mod(jsgraph()->isolate()),
-        MachineType::Int64(), wasm::kTrapRemByZero);
+        MachineType::Int64(), wasm::kTrapRemByZero, position);
   }
-  trap_->ZeroCheck64(wasm::kTrapRemByZero, right);
+  trap_->ZeroCheck64(wasm::kTrapRemByZero, right, position);
   Diamond d(jsgraph()->graph(), jsgraph()->common(),
             graph()->NewNode(jsgraph()->machine()->Word64Equal(), right,
                              jsgraph()->Int64Constant(-1)));
@@ -1898,28 +1784,33 @@
                rem);
 }
 
-Node* WasmGraphBuilder::BuildI64DivU(Node* left, Node* right) {
+Node* WasmGraphBuilder::BuildI64DivU(Node* left, Node* right,
+                                     wasm::WasmCodePosition position) {
   if (jsgraph()->machine()->Is32()) {
     return BuildDiv64Call(
         left, right, ExternalReference::wasm_uint64_div(jsgraph()->isolate()),
-        MachineType::Int64(), wasm::kTrapDivByZero);
+        MachineType::Int64(), wasm::kTrapDivByZero, position);
   }
-  return graph()->NewNode(jsgraph()->machine()->Uint64Div(), left, right,
-                          trap_->ZeroCheck64(wasm::kTrapDivByZero, right));
+  return graph()->NewNode(
+      jsgraph()->machine()->Uint64Div(), left, right,
+      trap_->ZeroCheck64(wasm::kTrapDivByZero, right, position));
 }
-Node* WasmGraphBuilder::BuildI64RemU(Node* left, Node* right) {
+Node* WasmGraphBuilder::BuildI64RemU(Node* left, Node* right,
+                                     wasm::WasmCodePosition position) {
   if (jsgraph()->machine()->Is32()) {
     return BuildDiv64Call(
         left, right, ExternalReference::wasm_uint64_mod(jsgraph()->isolate()),
-        MachineType::Int64(), wasm::kTrapRemByZero);
+        MachineType::Int64(), wasm::kTrapRemByZero, position);
   }
-  return graph()->NewNode(jsgraph()->machine()->Uint64Mod(), left, right,
-                          trap_->ZeroCheck64(wasm::kTrapRemByZero, right));
+  return graph()->NewNode(
+      jsgraph()->machine()->Uint64Mod(), left, right,
+      trap_->ZeroCheck64(wasm::kTrapRemByZero, right, position));
 }
 
 Node* WasmGraphBuilder::BuildDiv64Call(Node* left, Node* right,
                                        ExternalReference ref,
-                                       MachineType result_type, int trap_zero) {
+                                       MachineType result_type, int trap_zero,
+                                       wasm::WasmCodePosition position) {
   Node* stack_slot_dst = graph()->NewNode(
       jsgraph()->machine()->StackSlot(MachineRepresentation::kWord64));
   Node* stack_slot_src = graph()->NewNode(
@@ -1946,8 +1837,8 @@
 
   // TODO(wasm): This can get simpler if we have a specialized runtime call to
   // throw WASM exceptions by trap code instead of by string.
-  trap_->ZeroCheck32(static_cast<wasm::TrapReason>(trap_zero), call);
-  trap_->TrapIfEq32(wasm::kTrapDivUnrepresentable, call, -1);
+  trap_->ZeroCheck32(static_cast<wasm::TrapReason>(trap_zero), call, position);
+  trap_->TrapIfEq32(wasm::kTrapDivUnrepresentable, call, -1, position);
   const Operator* load_op = jsgraph()->machine()->Load(result_type);
   Node* load =
       graph()->NewNode(load_op, stack_slot_dst, jsgraph()->Int32Constant(0),
@@ -1977,7 +1868,8 @@
   return call;
 }
 
-Node* WasmGraphBuilder::BuildWasmCall(wasm::FunctionSig* sig, Node** args) {
+Node* WasmGraphBuilder::BuildWasmCall(wasm::FunctionSig* sig, Node** args,
+                                      wasm::WasmCodePosition position) {
   const size_t params = sig->parameter_count();
   const size_t extra = 2;  // effect and control inputs.
   const size_t count = 1 + params + extra;
@@ -1993,32 +1885,36 @@
       wasm::ModuleEnv::GetWasmCallDescriptor(jsgraph()->zone(), sig);
   const Operator* op = jsgraph()->common()->Call(descriptor);
   Node* call = graph()->NewNode(op, static_cast<int>(count), args);
+  SetSourcePosition(call, position);
 
   *effect_ = call;
   return call;
 }
 
-Node* WasmGraphBuilder::CallDirect(uint32_t index, Node** args) {
+Node* WasmGraphBuilder::CallDirect(uint32_t index, Node** args,
+                                   wasm::WasmCodePosition position) {
   DCHECK_NULL(args[0]);
 
   // Add code object as constant.
-  args[0] = Constant(module_->GetFunctionCode(index));
+  args[0] = HeapConstant(module_->GetFunctionCode(index));
   wasm::FunctionSig* sig = module_->GetFunctionSignature(index);
 
-  return BuildWasmCall(sig, args);
+  return BuildWasmCall(sig, args, position);
 }
 
-Node* WasmGraphBuilder::CallImport(uint32_t index, Node** args) {
+Node* WasmGraphBuilder::CallImport(uint32_t index, Node** args,
+                                   wasm::WasmCodePosition position) {
   DCHECK_NULL(args[0]);
 
   // Add code object as constant.
-  args[0] = Constant(module_->GetImportCode(index));
+  args[0] = HeapConstant(module_->GetImportCode(index));
   wasm::FunctionSig* sig = module_->GetImportSignature(index);
 
-  return BuildWasmCall(sig, args);
+  return BuildWasmCall(sig, args, position);
 }
 
-Node* WasmGraphBuilder::CallIndirect(uint32_t index, Node** args) {
+Node* WasmGraphBuilder::CallIndirect(uint32_t index, Node** args,
+                                     wasm::WasmCodePosition position) {
   DCHECK_NOT_NULL(args[0]);
   DCHECK(module_ && module_->instance);
 
@@ -2033,10 +1929,10 @@
     // Bounds check against the table size.
     Node* size = Int32Constant(static_cast<int>(table_size));
     Node* in_bounds = graph()->NewNode(machine->Uint32LessThan(), key, size);
-    trap_->AddTrapIfFalse(wasm::kTrapFuncInvalid, in_bounds);
+    trap_->AddTrapIfFalse(wasm::kTrapFuncInvalid, in_bounds, position);
   } else {
     // No function table. Generate a trap and return a constant.
-    trap_->AddTrapIfFalse(wasm::kTrapFuncInvalid, Int32Constant(0));
+    trap_->AddTrapIfFalse(wasm::kTrapFuncInvalid, Int32Constant(0), position);
     return trap_->GetTrapValue(module_->GetSignature(index));
   }
   Node* table = FunctionTable();
@@ -2056,7 +1952,7 @@
         *effect_, *control_);
     Node* sig_match = graph()->NewNode(machine->WordEqual(), load_sig,
                                        jsgraph()->SmiConstant(index));
-    trap_->AddTrapIfFalse(wasm::kTrapFuncSigMismatch, sig_match);
+    trap_->AddTrapIfFalse(wasm::kTrapFuncSigMismatch, sig_match, position);
   }
 
   // Load code object from the table.
@@ -2071,77 +1967,7 @@
 
   args[0] = load_code;
   wasm::FunctionSig* sig = module_->GetSignature(index);
-  return BuildWasmCall(sig, args);
-}
-
-
-Node* WasmGraphBuilder::ToJS(Node* node, Node* context, wasm::LocalType type) {
-  SimplifiedOperatorBuilder simplified(jsgraph()->zone());
-  switch (type) {
-    case wasm::kAstI32:
-      return graph()->NewNode(simplified.ChangeInt32ToTagged(), node);
-    case wasm::kAstI64:
-      // TODO(titzer): i64->JS has no good solution right now. Using lower 32
-      // bits.
-      node =
-          graph()->NewNode(jsgraph()->machine()->TruncateInt64ToInt32(), node);
-      return graph()->NewNode(simplified.ChangeInt32ToTagged(), node);
-    case wasm::kAstF32:
-      node = graph()->NewNode(jsgraph()->machine()->ChangeFloat32ToFloat64(),
-                              node);
-      return graph()->NewNode(simplified.ChangeFloat64ToTagged(), node);
-    case wasm::kAstF64:
-      return graph()->NewNode(simplified.ChangeFloat64ToTagged(), node);
-    case wasm::kAstStmt:
-      return jsgraph()->UndefinedConstant();
-    default:
-      UNREACHABLE();
-      return nullptr;
-  }
-}
-
-
-Node* WasmGraphBuilder::FromJS(Node* node, Node* context,
-                               wasm::LocalType type) {
-  // Do a JavaScript ToNumber.
-  Node* num =
-      graph()->NewNode(jsgraph()->javascript()->ToNumber(), node, context,
-                       jsgraph()->EmptyFrameState(), *effect_, *control_);
-  *control_ = num;
-  *effect_ = num;
-
-  // Change representation.
-  SimplifiedOperatorBuilder simplified(jsgraph()->zone());
-  num = graph()->NewNode(simplified.ChangeTaggedToFloat64(), num);
-
-  switch (type) {
-    case wasm::kAstI32: {
-      num = graph()->NewNode(jsgraph()->machine()->TruncateFloat64ToInt32(
-                                 TruncationMode::kJavaScript),
-                             num);
-      break;
-    }
-    case wasm::kAstI64:
-      // TODO(titzer): JS->i64 has no good solution right now. Using 32 bits.
-      num = graph()->NewNode(jsgraph()->machine()->TruncateFloat64ToInt32(
-                                 TruncationMode::kJavaScript),
-                             num);
-      num = graph()->NewNode(jsgraph()->machine()->ChangeInt32ToInt64(), num);
-      break;
-    case wasm::kAstF32:
-      num = graph()->NewNode(jsgraph()->machine()->TruncateFloat64ToFloat32(),
-                             num);
-      break;
-    case wasm::kAstF64:
-      break;
-    case wasm::kAstStmt:
-      num = jsgraph()->Int32Constant(0);
-      break;
-    default:
-      UNREACHABLE();
-      return nullptr;
-  }
-  return num;
+  return BuildWasmCall(sig, args, position);
 }
 
 Node* WasmGraphBuilder::BuildI32Rol(Node* left, Node* right) {
@@ -2174,31 +2000,404 @@
   return Unop(wasm::kExprI32Eqz, node);
 }
 
+Node* WasmGraphBuilder::BuildChangeInt32ToTagged(Node* value) {
+  MachineOperatorBuilder* machine = jsgraph()->machine();
+  CommonOperatorBuilder* common = jsgraph()->common();
+
+  if (machine->Is64()) {
+    return BuildChangeInt32ToSmi(value);
+  }
+
+  Node* add = graph()->NewNode(machine->Int32AddWithOverflow(), value, value);
+
+  Node* ovf = graph()->NewNode(common->Projection(1), add);
+  Node* branch = graph()->NewNode(common->Branch(BranchHint::kFalse), ovf,
+                                  graph()->start());
+
+  Node* if_true = graph()->NewNode(common->IfTrue(), branch);
+  Node* vtrue = BuildAllocateHeapNumberWithValue(
+      graph()->NewNode(machine->ChangeInt32ToFloat64(), value), if_true);
+
+  Node* if_false = graph()->NewNode(common->IfFalse(), branch);
+  Node* vfalse = graph()->NewNode(common->Projection(0), add);
+
+  Node* merge = graph()->NewNode(common->Merge(2), if_true, if_false);
+  Node* phi = graph()->NewNode(common->Phi(MachineRepresentation::kTagged, 2),
+                               vtrue, vfalse, merge);
+  return phi;
+}
+
+Node* WasmGraphBuilder::BuildChangeFloat64ToTagged(Node* value) {
+  MachineOperatorBuilder* machine = jsgraph()->machine();
+  CommonOperatorBuilder* common = jsgraph()->common();
+
+  Node* value32 = graph()->NewNode(machine->RoundFloat64ToInt32(), value);
+  Node* check_same = graph()->NewNode(
+      machine->Float64Equal(), value,
+      graph()->NewNode(machine->ChangeInt32ToFloat64(), value32));
+  Node* branch_same =
+      graph()->NewNode(common->Branch(), check_same, graph()->start());
+
+  Node* if_smi = graph()->NewNode(common->IfTrue(), branch_same);
+  Node* vsmi;
+  Node* if_box = graph()->NewNode(common->IfFalse(), branch_same);
+  Node* vbox;
+
+  // We only need to check for -0 if the {value} can potentially contain -0.
+  Node* check_zero = graph()->NewNode(machine->Word32Equal(), value32,
+                                      jsgraph()->Int32Constant(0));
+  Node* branch_zero =
+      graph()->NewNode(common->Branch(BranchHint::kFalse), check_zero, if_smi);
+
+  Node* if_zero = graph()->NewNode(common->IfTrue(), branch_zero);
+  Node* if_notzero = graph()->NewNode(common->IfFalse(), branch_zero);
+
+  // In case of 0, we need to check the high bits for the IEEE -0 pattern.
+  Node* check_negative = graph()->NewNode(
+      machine->Int32LessThan(),
+      graph()->NewNode(machine->Float64ExtractHighWord32(), value),
+      jsgraph()->Int32Constant(0));
+  Node* branch_negative = graph()->NewNode(common->Branch(BranchHint::kFalse),
+                                           check_negative, if_zero);
+
+  Node* if_negative = graph()->NewNode(common->IfTrue(), branch_negative);
+  Node* if_notnegative = graph()->NewNode(common->IfFalse(), branch_negative);
+
+  // We need to create a box for negative 0.
+  if_smi = graph()->NewNode(common->Merge(2), if_notzero, if_notnegative);
+  if_box = graph()->NewNode(common->Merge(2), if_box, if_negative);
+
+  // On 64-bit machines we can just wrap the 32-bit integer in a smi, for 32-bit
+  // machines we need to deal with potential overflow and fallback to boxing.
+  if (machine->Is64()) {
+    vsmi = BuildChangeInt32ToSmi(value32);
+  } else {
+    Node* smi_tag =
+        graph()->NewNode(machine->Int32AddWithOverflow(), value32, value32);
+
+    Node* check_ovf = graph()->NewNode(common->Projection(1), smi_tag);
+    Node* branch_ovf =
+        graph()->NewNode(common->Branch(BranchHint::kFalse), check_ovf, if_smi);
+
+    Node* if_ovf = graph()->NewNode(common->IfTrue(), branch_ovf);
+    if_box = graph()->NewNode(common->Merge(2), if_ovf, if_box);
+
+    if_smi = graph()->NewNode(common->IfFalse(), branch_ovf);
+    vsmi = graph()->NewNode(common->Projection(0), smi_tag);
+  }
+
+  // Allocate the box for the {value}.
+  vbox = BuildAllocateHeapNumberWithValue(value, if_box);
+
+  Node* control = graph()->NewNode(common->Merge(2), if_smi, if_box);
+  value = graph()->NewNode(common->Phi(MachineRepresentation::kTagged, 2), vsmi,
+                           vbox, control);
+  return value;
+}
+
+Node* WasmGraphBuilder::ToJS(Node* node, Node* context, wasm::LocalType type) {
+  switch (type) {
+    case wasm::kAstI32:
+      return BuildChangeInt32ToTagged(node);
+    case wasm::kAstI64:
+      // TODO(titzer): i64->JS has no good solution right now. Using lower 32
+      // bits.
+      if (jsgraph()->machine()->Is64()) {
+        // On 32 bit platforms we do not have to do the truncation because the
+        // node we get in as a parameter only contains the low word anyways.
+        node = graph()->NewNode(jsgraph()->machine()->TruncateInt64ToInt32(),
+                                node);
+      }
+      return BuildChangeInt32ToTagged(node);
+    case wasm::kAstF32:
+      node = graph()->NewNode(jsgraph()->machine()->ChangeFloat32ToFloat64(),
+                              node);
+      return BuildChangeFloat64ToTagged(node);
+    case wasm::kAstF64:
+      return BuildChangeFloat64ToTagged(node);
+    case wasm::kAstStmt:
+      return jsgraph()->UndefinedConstant();
+    default:
+      UNREACHABLE();
+      return nullptr;
+  }
+}
+
+Node* WasmGraphBuilder::BuildJavaScriptToNumber(Node* node, Node* context,
+                                                Node* effect, Node* control) {
+  Callable callable = CodeFactory::ToNumber(jsgraph()->isolate());
+  CallDescriptor* desc = Linkage::GetStubCallDescriptor(
+      jsgraph()->isolate(), jsgraph()->zone(), callable.descriptor(), 0,
+      CallDescriptor::kNoFlags, Operator::kNoProperties);
+  Node* stub_code = jsgraph()->HeapConstant(callable.code());
+
+  Node* result = graph()->NewNode(jsgraph()->common()->Call(desc), stub_code,
+                                  node, context, effect, control);
+
+  *control_ = result;
+  *effect_ = result;
+
+  return result;
+}
+
+bool CanCover(Node* value, IrOpcode::Value opcode) {
+  if (value->opcode() != opcode) return false;
+  bool first = true;
+  for (Edge const edge : value->use_edges()) {
+    if (NodeProperties::IsControlEdge(edge)) continue;
+    if (NodeProperties::IsEffectEdge(edge)) continue;
+    DCHECK(NodeProperties::IsValueEdge(edge));
+    if (!first) return false;
+    first = false;
+  }
+  return true;
+}
+
+Node* WasmGraphBuilder::BuildChangeTaggedToFloat64(Node* value) {
+  MachineOperatorBuilder* machine = jsgraph()->machine();
+  CommonOperatorBuilder* common = jsgraph()->common();
+
+  if (CanCover(value, IrOpcode::kJSToNumber)) {
+    // ChangeTaggedToFloat64(JSToNumber(x)) =>
+    //   if IsSmi(x) then ChangeSmiToFloat64(x)
+    //   else let y = JSToNumber(x) in
+    //     if IsSmi(y) then ChangeSmiToFloat64(y)
+    //     else BuildLoadHeapNumberValue(y)
+    Node* object = NodeProperties::GetValueInput(value, 0);
+    Node* context = NodeProperties::GetContextInput(value);
+    Node* frame_state = NodeProperties::GetFrameStateInput(value, 0);
+    Node* effect = NodeProperties::GetEffectInput(value);
+    Node* control = NodeProperties::GetControlInput(value);
+
+    const Operator* merge_op = common->Merge(2);
+    const Operator* ephi_op = common->EffectPhi(2);
+    const Operator* phi_op = common->Phi(MachineRepresentation::kFloat64, 2);
+
+    Node* check1 = BuildTestNotSmi(object);
+    Node* branch1 =
+        graph()->NewNode(common->Branch(BranchHint::kFalse), check1, control);
+
+    Node* if_true1 = graph()->NewNode(common->IfTrue(), branch1);
+    Node* vtrue1 = graph()->NewNode(value->op(), object, context, frame_state,
+                                    effect, if_true1);
+    Node* etrue1 = vtrue1;
+
+    Node* check2 = BuildTestNotSmi(vtrue1);
+    Node* branch2 = graph()->NewNode(common->Branch(), check2, if_true1);
+
+    Node* if_true2 = graph()->NewNode(common->IfTrue(), branch2);
+    Node* vtrue2 = BuildLoadHeapNumberValue(vtrue1, if_true2);
+
+    Node* if_false2 = graph()->NewNode(common->IfFalse(), branch2);
+    Node* vfalse2 = BuildChangeSmiToFloat64(vtrue1);
+
+    if_true1 = graph()->NewNode(merge_op, if_true2, if_false2);
+    vtrue1 = graph()->NewNode(phi_op, vtrue2, vfalse2, if_true1);
+
+    Node* if_false1 = graph()->NewNode(common->IfFalse(), branch1);
+    Node* vfalse1 = BuildChangeSmiToFloat64(object);
+    Node* efalse1 = effect;
+
+    Node* merge1 = graph()->NewNode(merge_op, if_true1, if_false1);
+    Node* ephi1 = graph()->NewNode(ephi_op, etrue1, efalse1, merge1);
+    Node* phi1 = graph()->NewNode(phi_op, vtrue1, vfalse1, merge1);
+
+    // Wire the new diamond into the graph, {JSToNumber} can still throw.
+    NodeProperties::ReplaceUses(value, phi1, ephi1, etrue1, etrue1);
+
+    // TODO(mstarzinger): This iteration cuts out the IfSuccess projection from
+    // the node and places it inside the diamond. Come up with a helper method!
+    for (Node* use : etrue1->uses()) {
+      if (use->opcode() == IrOpcode::kIfSuccess) {
+        use->ReplaceUses(merge1);
+        NodeProperties::ReplaceControlInput(branch2, use);
+      }
+    }
+    return phi1;
+  }
+
+  Node* check = BuildTestNotSmi(value);
+  Node* branch = graph()->NewNode(common->Branch(BranchHint::kFalse), check,
+                                  graph()->start());
+
+  Node* if_not_smi = graph()->NewNode(common->IfTrue(), branch);
+
+  Node* vnot_smi;
+  Node* check_undefined = graph()->NewNode(machine->WordEqual(), value,
+                                           jsgraph()->UndefinedConstant());
+  Node* branch_undefined = graph()->NewNode(common->Branch(BranchHint::kFalse),
+                                            check_undefined, if_not_smi);
+
+  Node* if_undefined = graph()->NewNode(common->IfTrue(), branch_undefined);
+  Node* vundefined =
+      jsgraph()->Float64Constant(std::numeric_limits<double>::quiet_NaN());
+
+  Node* if_not_undefined =
+      graph()->NewNode(common->IfFalse(), branch_undefined);
+  Node* vheap_number = BuildLoadHeapNumberValue(value, if_not_undefined);
+
+  if_not_smi =
+      graph()->NewNode(common->Merge(2), if_undefined, if_not_undefined);
+  vnot_smi = graph()->NewNode(common->Phi(MachineRepresentation::kFloat64, 2),
+                              vundefined, vheap_number, if_not_smi);
+
+  Node* if_smi = graph()->NewNode(common->IfFalse(), branch);
+  Node* vfrom_smi = BuildChangeSmiToFloat64(value);
+
+  Node* merge = graph()->NewNode(common->Merge(2), if_not_smi, if_smi);
+  Node* phi = graph()->NewNode(common->Phi(MachineRepresentation::kFloat64, 2),
+                               vnot_smi, vfrom_smi, merge);
+
+  return phi;
+}
+
+Node* WasmGraphBuilder::FromJS(Node* node, Node* context,
+                               wasm::LocalType type) {
+  // Do a JavaScript ToNumber.
+  Node* num = BuildJavaScriptToNumber(node, context, *effect_, *control_);
+
+  // Change representation.
+  SimplifiedOperatorBuilder simplified(jsgraph()->zone());
+  num = BuildChangeTaggedToFloat64(num);
+
+  switch (type) {
+    case wasm::kAstI32: {
+      num = graph()->NewNode(jsgraph()->machine()->TruncateFloat64ToWord32(),
+                             num);
+      break;
+    }
+    case wasm::kAstI64:
+      // TODO(titzer): JS->i64 has no good solution right now. Using 32 bits.
+      num = graph()->NewNode(jsgraph()->machine()->TruncateFloat64ToWord32(),
+                             num);
+      if (jsgraph()->machine()->Is64()) {
+        // We cannot change an int32 to an int64 on a 32 bit platform. Instead
+        // we will split the parameter node later.
+        num = graph()->NewNode(jsgraph()->machine()->ChangeInt32ToInt64(), num);
+      }
+      break;
+    case wasm::kAstF32:
+      num = graph()->NewNode(jsgraph()->machine()->TruncateFloat64ToFloat32(),
+                             num);
+      break;
+    case wasm::kAstF64:
+      break;
+    case wasm::kAstStmt:
+      num = jsgraph()->Int32Constant(0);
+      break;
+    default:
+      UNREACHABLE();
+      return nullptr;
+  }
+  return num;
+}
+
+Node* WasmGraphBuilder::BuildChangeInt32ToSmi(Node* value) {
+  if (jsgraph()->machine()->Is64()) {
+    value = graph()->NewNode(jsgraph()->machine()->ChangeInt32ToInt64(), value);
+  }
+  return graph()->NewNode(jsgraph()->machine()->WordShl(), value,
+                          BuildSmiShiftBitsConstant());
+}
+
+Node* WasmGraphBuilder::BuildChangeSmiToInt32(Node* value) {
+  value = graph()->NewNode(jsgraph()->machine()->WordSar(), value,
+                           BuildSmiShiftBitsConstant());
+  if (jsgraph()->machine()->Is64()) {
+    value =
+        graph()->NewNode(jsgraph()->machine()->TruncateInt64ToInt32(), value);
+  }
+  return value;
+}
+
+Node* WasmGraphBuilder::BuildChangeSmiToFloat64(Node* value) {
+  return graph()->NewNode(jsgraph()->machine()->ChangeInt32ToFloat64(),
+                          BuildChangeSmiToInt32(value));
+}
+
+Node* WasmGraphBuilder::BuildTestNotSmi(Node* value) {
+  STATIC_ASSERT(kSmiTag == 0);
+  STATIC_ASSERT(kSmiTagMask == 1);
+  return graph()->NewNode(jsgraph()->machine()->WordAnd(), value,
+                          jsgraph()->IntPtrConstant(kSmiTagMask));
+}
+
+Node* WasmGraphBuilder::BuildSmiShiftBitsConstant() {
+  return jsgraph()->IntPtrConstant(kSmiShiftSize + kSmiTagSize);
+}
+
+Node* WasmGraphBuilder::BuildAllocateHeapNumberWithValue(Node* value,
+                                                         Node* control) {
+  MachineOperatorBuilder* machine = jsgraph()->machine();
+  CommonOperatorBuilder* common = jsgraph()->common();
+  // The AllocateHeapNumberStub does not use the context, so we can safely pass
+  // in Smi zero here.
+  Callable callable = CodeFactory::AllocateHeapNumber(jsgraph()->isolate());
+  Node* target = jsgraph()->HeapConstant(callable.code());
+  Node* context = jsgraph()->NoContextConstant();
+  Node* effect = graph()->NewNode(common->BeginRegion(), graph()->start());
+  if (!allocate_heap_number_operator_.is_set()) {
+    CallDescriptor* descriptor = Linkage::GetStubCallDescriptor(
+        jsgraph()->isolate(), jsgraph()->zone(), callable.descriptor(), 0,
+        CallDescriptor::kNoFlags, Operator::kNoThrow);
+    allocate_heap_number_operator_.set(common->Call(descriptor));
+  }
+  Node* heap_number = graph()->NewNode(allocate_heap_number_operator_.get(),
+                                       target, context, effect, control);
+  Node* store =
+      graph()->NewNode(machine->Store(StoreRepresentation(
+                           MachineRepresentation::kFloat64, kNoWriteBarrier)),
+                       heap_number, BuildHeapNumberValueIndexConstant(), value,
+                       heap_number, control);
+  return graph()->NewNode(common->FinishRegion(), heap_number, store);
+}
+
+Node* WasmGraphBuilder::BuildLoadHeapNumberValue(Node* value, Node* control) {
+  return graph()->NewNode(jsgraph()->machine()->Load(MachineType::Float64()),
+                          value, BuildHeapNumberValueIndexConstant(),
+                          graph()->start(), control);
+}
+
+Node* WasmGraphBuilder::BuildHeapNumberValueIndexConstant() {
+  return jsgraph()->IntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag);
+}
 
 void WasmGraphBuilder::BuildJSToWasmWrapper(Handle<Code> wasm_code,
                                             wasm::FunctionSig* sig) {
-  int params = static_cast<int>(sig->parameter_count());
-  int count = params + 3;
+  int wasm_count = static_cast<int>(sig->parameter_count());
+  int param_count;
+  if (jsgraph()->machine()->Is64()) {
+    param_count = static_cast<int>(sig->parameter_count());
+  } else {
+    param_count = Int64Lowering::GetParameterCountAfterLowering(sig);
+  }
+  int count = param_count + 3;
   Node** args = Buffer(count);
 
   // Build the start and the JS parameter nodes.
-  Node* start = Start(params + 5);
+  Node* start = Start(param_count + 5);
   *control_ = start;
   *effect_ = start;
   // Create the context parameter
   Node* context = graph()->NewNode(
       jsgraph()->common()->Parameter(
-          Linkage::GetJSCallContextParamIndex(params + 1), "%context"),
+          Linkage::GetJSCallContextParamIndex(wasm_count + 1), "%context"),
       graph()->start());
 
   int pos = 0;
-  args[pos++] = Constant(wasm_code);
+  args[pos++] = HeapConstant(wasm_code);
 
   // Convert JS parameters to WASM numbers.
-  for (int i = 0; i < params; i++) {
+  for (int i = 0; i < wasm_count; i++) {
     Node* param =
         graph()->NewNode(jsgraph()->common()->Parameter(i + 1), start);
-    args[pos++] = FromJS(param, context, sig->GetParam(i));
+    Node* wasm_param = FromJS(param, context, sig->GetParam(i));
+    args[pos++] = wasm_param;
+    if (jsgraph()->machine()->Is32() && sig->GetParam(i) == wasm::kAstI64) {
+      // We make up the high word with SAR to get the proper sign extension.
+      args[pos++] = graph()->NewNode(jsgraph()->machine()->Word32Sar(),
+                                     wasm_param, jsgraph()->Int32Constant(31));
+    }
   }
 
   args[pos++] = *effect_;
@@ -2207,9 +2406,18 @@
   // Call the WASM code.
   CallDescriptor* desc =
       wasm::ModuleEnv::GetWasmCallDescriptor(jsgraph()->zone(), sig);
+  if (jsgraph()->machine()->Is32()) {
+    desc = wasm::ModuleEnv::GetI32WasmCallDescriptor(jsgraph()->zone(), desc);
+  }
   Node* call = graph()->NewNode(jsgraph()->common()->Call(desc), count, args);
+  Node* retval = call;
+  if (jsgraph()->machine()->Is32() && sig->return_count() > 0 &&
+      sig->GetReturn(0) == wasm::kAstI64) {
+    // The return values comes as two values, we pick the low word.
+    retval = graph()->NewNode(jsgraph()->common()->Projection(0), retval);
+  }
   Node* jsval =
-      ToJS(call, context,
+      ToJS(retval, context,
            sig->return_count() == 0 ? wasm::kAstStmt : sig->GetReturn());
   Node* ret =
       graph()->NewNode(jsgraph()->common()->Return(), jsval, call, start);
@@ -2217,20 +2425,25 @@
   MergeControlToEnd(jsgraph(), ret);
 }
 
-
 void WasmGraphBuilder::BuildWasmToJSWrapper(Handle<JSFunction> function,
                                             wasm::FunctionSig* sig) {
   int js_count = function->shared()->internal_formal_parameter_count();
   int wasm_count = static_cast<int>(sig->parameter_count());
+  int param_count;
+  if (jsgraph()->machine()->Is64()) {
+    param_count = wasm_count;
+  } else {
+    param_count = Int64Lowering::GetParameterCountAfterLowering(sig);
+  }
 
   // Build the start and the parameter nodes.
   Isolate* isolate = jsgraph()->isolate();
   CallDescriptor* desc;
-  Node* start = Start(wasm_count + 3);
+  Node* start = Start(param_count + 3);
   *effect_ = start;
   *control_ = start;
   // JS context is the last parameter.
-  Node* context = Constant(Handle<Context>(function->context(), isolate));
+  Node* context = HeapConstant(Handle<Context>(function->context(), isolate));
   Node** args = Buffer(wasm_count + 7);
 
   bool arg_count_before_args = false;
@@ -2262,9 +2475,15 @@
   args[pos++] = jsgraph()->Constant(global);
 
   // Convert WASM numbers to JS values.
+  int param_index = 0;
   for (int i = 0; i < wasm_count; i++) {
-    Node* param = graph()->NewNode(jsgraph()->common()->Parameter(i), start);
+    Node* param =
+        graph()->NewNode(jsgraph()->common()->Parameter(param_index++), start);
     args[pos++] = ToJS(param, context, sig->GetParam(i));
+    if (jsgraph()->machine()->Is32() && sig->GetParam(i) == wasm::kAstI64) {
+      // On 32 bit platforms we have to skip the high word of int64 parameters.
+      param_index++;
+    }
   }
 
   if (add_new_target_undefined) {
@@ -2281,30 +2500,39 @@
   Node* call = graph()->NewNode(jsgraph()->common()->Call(desc), pos, args);
 
   // Convert the return value back.
+  Node* ret;
   Node* val =
       FromJS(call, context,
              sig->return_count() == 0 ? wasm::kAstStmt : sig->GetReturn());
-  Node* ret = graph()->NewNode(jsgraph()->common()->Return(), val, call, start);
+  if (jsgraph()->machine()->Is32() && sig->return_count() > 0 &&
+      sig->GetReturn() == wasm::kAstI64) {
+    ret = graph()->NewNode(jsgraph()->common()->Return(), val,
+                           graph()->NewNode(jsgraph()->machine()->Word32Sar(),
+                                            val, jsgraph()->Int32Constant(31)),
+                           call, start);
+  } else {
+    ret = graph()->NewNode(jsgraph()->common()->Return(), val, call, start);
+  }
 
   MergeControlToEnd(jsgraph(), ret);
 }
 
-
 Node* WasmGraphBuilder::MemBuffer(uint32_t offset) {
   DCHECK(module_ && module_->instance);
   if (offset == 0) {
     if (!mem_buffer_) {
-      mem_buffer_ = jsgraph()->IntPtrConstant(
-          reinterpret_cast<uintptr_t>(module_->instance->mem_start));
+      mem_buffer_ = jsgraph()->RelocatableIntPtrConstant(
+          reinterpret_cast<uintptr_t>(module_->instance->mem_start),
+          RelocInfo::WASM_MEMORY_REFERENCE);
     }
     return mem_buffer_;
   } else {
-    return jsgraph()->IntPtrConstant(
-        reinterpret_cast<uintptr_t>(module_->instance->mem_start + offset));
+    return jsgraph()->RelocatableIntPtrConstant(
+        reinterpret_cast<uintptr_t>(module_->instance->mem_start + offset),
+        RelocInfo::WASM_MEMORY_REFERENCE);
   }
 }
 
-
 Node* WasmGraphBuilder::MemSize(uint32_t offset) {
   DCHECK(module_ && module_->instance);
   uint32_t size = static_cast<uint32_t>(module_->instance->mem_size);
@@ -2316,17 +2544,15 @@
   }
 }
 
-
 Node* WasmGraphBuilder::FunctionTable() {
   DCHECK(module_ && module_->instance &&
          !module_->instance->function_table.is_null());
   if (!function_table_) {
-    function_table_ = jsgraph()->Constant(module_->instance->function_table);
+    function_table_ = HeapConstant(module_->instance->function_table);
   }
   return function_table_;
 }
 
-
 Node* WasmGraphBuilder::LoadGlobal(uint32_t index) {
   DCHECK(module_ && module_->instance && module_->instance->globals_start);
   MachineType mem_type = module_->GetGlobalType(index);
@@ -2340,7 +2566,6 @@
   return node;
 }
 
-
 Node* WasmGraphBuilder::StoreGlobal(uint32_t index, Node* val) {
   DCHECK(module_ && module_->instance && module_->instance->globals_start);
   MachineType mem_type = module_->GetGlobalType(index);
@@ -2355,46 +2580,48 @@
   return node;
 }
 
-
 void WasmGraphBuilder::BoundsCheckMem(MachineType memtype, Node* index,
-                                      uint32_t offset) {
-  // TODO(turbofan): fold bounds checks for constant indexes.
+                                      uint32_t offset,
+                                      wasm::WasmCodePosition position) {
   DCHECK(module_ && module_->instance);
   size_t size = module_->instance->mem_size;
   byte memsize = wasm::WasmOpcodes::MemSize(memtype);
-  Node* cond;
+
   if (offset >= size || (static_cast<uint64_t>(offset) + memsize) > size) {
-    // The access will always throw.
-    cond = jsgraph()->Int32Constant(0);
-  } else {
-    // Check against the limit.
-    size_t limit = size - offset - memsize;
-    CHECK(limit <= kMaxUInt32);
-    cond = graph()->NewNode(
-        jsgraph()->machine()->Uint32LessThanOrEqual(), index,
-        jsgraph()->Int32Constant(static_cast<uint32_t>(limit)));
+    // The access will always throw (unless memory is grown).
+    Node* cond = jsgraph()->Int32Constant(0);
+    trap_->AddTrapIfFalse(wasm::kTrapMemOutOfBounds, cond, position);
+    return;
   }
 
-  trap_->AddTrapIfFalse(wasm::kTrapMemOutOfBounds, cond);
+  // Check against the effective size.
+  size_t effective_size = size - offset - memsize;
+  CHECK(effective_size <= kMaxUInt32);
+
+  Uint32Matcher m(index);
+  if (m.HasValue()) {
+    uint32_t value = m.Value();
+    if (value <= effective_size) {
+      // The bounds check will always succeed.
+      return;
+    }
+  }
+
+  Node* cond = graph()->NewNode(
+      jsgraph()->machine()->Uint32LessThanOrEqual(), index,
+      jsgraph()->Int32Constant(static_cast<uint32_t>(effective_size)));
+
+  trap_->AddTrapIfFalse(wasm::kTrapMemOutOfBounds, cond, position);
 }
 
-
 Node* WasmGraphBuilder::LoadMem(wasm::LocalType type, MachineType memtype,
-                                Node* index, uint32_t offset) {
+                                Node* index, uint32_t offset,
+                                wasm::WasmCodePosition position) {
   Node* load;
-
-  if (module_ && module_->asm_js()) {
-    // asm.js semantics use CheckedLoad (i.e. OOB reads return 0ish).
-    DCHECK_EQ(0, offset);
-    const Operator* op = jsgraph()->machine()->CheckedLoad(memtype);
-    load = graph()->NewNode(op, MemBuffer(0), index, MemSize(0), *effect_,
-                            *control_);
-  } else {
-    // WASM semantics throw on OOB. Introduce explicit bounds check.
-    BoundsCheckMem(memtype, index, offset);
-    load = graph()->NewNode(jsgraph()->machine()->Load(memtype),
-                            MemBuffer(offset), index, *effect_, *control_);
-  }
+  // WASM semantics throw on OOB. Introduce explicit bounds check.
+  BoundsCheckMem(memtype, index, offset, position);
+  load = graph()->NewNode(jsgraph()->machine()->Load(memtype),
+                          MemBuffer(offset), index, *effect_, *control_);
 
   *effect_ = load;
 
@@ -2414,41 +2641,50 @@
   return load;
 }
 
-
 Node* WasmGraphBuilder::StoreMem(MachineType memtype, Node* index,
-                                 uint32_t offset, Node* val) {
+                                 uint32_t offset, Node* val,
+                                 wasm::WasmCodePosition position) {
   Node* store;
-  if (module_ && module_->asm_js()) {
-    // asm.js semantics use CheckedStore (i.e. ignore OOB writes).
-    DCHECK_EQ(0, offset);
-    const Operator* op =
-        jsgraph()->machine()->CheckedStore(memtype.representation());
-    store = graph()->NewNode(op, MemBuffer(0), index, MemSize(0), val, *effect_,
-                             *control_);
-  } else {
-    // WASM semantics throw on OOB. Introduce explicit bounds check.
-    BoundsCheckMem(memtype, index, offset);
-    StoreRepresentation rep(memtype.representation(), kNoWriteBarrier);
-    store =
-        graph()->NewNode(jsgraph()->machine()->Store(rep), MemBuffer(offset),
-                         index, val, *effect_, *control_);
-  }
+  // WASM semantics throw on OOB. Introduce explicit bounds check.
+  BoundsCheckMem(memtype, index, offset, position);
+  StoreRepresentation rep(memtype.representation(), kNoWriteBarrier);
+  store = graph()->NewNode(jsgraph()->machine()->Store(rep), MemBuffer(offset),
+                           index, val, *effect_, *control_);
   *effect_ = store;
   return store;
 }
 
+Node* WasmGraphBuilder::BuildAsmjsLoadMem(MachineType type, Node* index) {
+  // TODO(turbofan): fold bounds checks for constant asm.js loads.
+  // asm.js semantics use CheckedLoad (i.e. OOB reads return 0ish).
+  const Operator* op = jsgraph()->machine()->CheckedLoad(type);
+  Node* load = graph()->NewNode(op, MemBuffer(0), index, MemSize(0), *effect_,
+                                *control_);
+  *effect_ = load;
+  return load;
+}
+
+Node* WasmGraphBuilder::BuildAsmjsStoreMem(MachineType type, Node* index,
+                                           Node* val) {
+  // TODO(turbofan): fold bounds checks for constant asm.js stores.
+  // asm.js semantics use CheckedStore (i.e. ignore OOB writes).
+  const Operator* op =
+      jsgraph()->machine()->CheckedStore(type.representation());
+  Node* store = graph()->NewNode(op, MemBuffer(0), index, MemSize(0), val,
+                                 *effect_, *control_);
+  *effect_ = store;
+  return val;
+}
 
 void WasmGraphBuilder::PrintDebugName(Node* node) {
   PrintF("#%d:%s", node->id(), node->op()->mnemonic());
 }
 
-
 Node* WasmGraphBuilder::String(const char* string) {
   return jsgraph()->Constant(
       jsgraph()->isolate()->factory()->NewStringFromAsciiChecked(string));
 }
 
-
 Graph* WasmGraphBuilder::graph() { return jsgraph()->graph(); }
 
 void WasmGraphBuilder::Int64LoweringForTesting() {
@@ -2460,6 +2696,14 @@
   }
 }
 
+void WasmGraphBuilder::SetSourcePosition(Node* node,
+                                         wasm::WasmCodePosition position) {
+  DCHECK_NE(position, wasm::kNoCodePosition);
+  compiler::SourcePosition pos(position);
+  if (source_position_table_)
+    source_position_table_->SetSourcePosition(node, pos);
+}
+
 static void RecordFunctionCompilation(Logger::LogEventsAndTags tag,
                                       CompilationInfo* info,
                                       const char* message, uint32_t index,
@@ -2468,8 +2712,8 @@
   if (isolate->logger()->is_logging_code_events() ||
       isolate->cpu_profiler()->is_profiling()) {
     ScopedVector<char> buffer(128);
-    SNPrintF(buffer, "%s#%d:%.*s", message, index, func_name.length,
-             func_name.name);
+    SNPrintF(buffer, "%s#%d:%.*s", message, index, func_name.length(),
+             func_name.start());
     Handle<String> name_str =
         isolate->factory()->NewStringFromAsciiChecked(buffer.start());
     Handle<String> script_str =
@@ -2478,7 +2722,7 @@
     Handle<SharedFunctionInfo> shared =
         isolate->factory()->NewSharedFunctionInfo(name_str, code, false);
     PROFILE(isolate, CodeCreateEvent(tag, AbstractCode::cast(*code), *shared,
-                                     info, *script_str, 0, 0));
+                                     *script_str, 0, 0));
   }
 }
 
@@ -2506,9 +2750,8 @@
   Zone zone(isolate->allocator());
   Graph graph(&zone);
   CommonOperatorBuilder common(&zone);
-  JSOperatorBuilder javascript(&zone);
   MachineOperatorBuilder machine(&zone);
-  JSGraph jsgraph(isolate, &graph, &common, &javascript, nullptr, &machine);
+  JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine);
 
   Node* control = nullptr;
   Node* effect = nullptr;
@@ -2523,20 +2766,6 @@
   // Run the compilation pipeline.
   //----------------------------------------------------------------------------
   {
-    // Changes lowering requires types.
-    Typer typer(isolate, &graph);
-    NodeVector roots(&zone);
-    jsgraph.GetCachedNodes(&roots);
-    typer.Run(roots);
-
-    // Run generic and change lowering.
-    JSGenericLowering generic(true, &jsgraph);
-    ChangeLowering changes(&jsgraph);
-    GraphReducer graph_reducer(&zone, &graph, jsgraph.Dead());
-    graph_reducer.AddReducer(&changes);
-    graph_reducer.AddReducer(&generic);
-    graph_reducer.ReduceGraph();
-
     if (FLAG_trace_turbo_graph) {  // Simple textual RPO.
       OFStream os(stdout);
       os << "-- Graph after change lowering -- " << std::endl;
@@ -2555,19 +2784,19 @@
 #else
         FLAG_print_opt_code || FLAG_trace_turbo || FLAG_trace_turbo_graph;
 #endif
-    const char* func_name = "js-to-wasm";
+    Vector<const char> func_name = ArrayVector("js-to-wasm");
 
     static unsigned id = 0;
     Vector<char> buffer;
     if (debugging) {
       buffer = Vector<char>::New(128);
-      SNPrintF(buffer, "js-to-wasm#%d", id);
-      func_name = buffer.start();
+      int chars = SNPrintF(buffer, "js-to-wasm#%d", id);
+      func_name = Vector<const char>::cast(buffer.SubVector(0, chars));
     }
 
     CompilationInfo info(func_name, isolate, &zone, flags);
     Handle<Code> code =
-        Pipeline::GenerateCodeForTesting(&info, incoming, &graph, nullptr);
+        Pipeline::GenerateCodeForTesting(&info, incoming, &graph);
 #ifdef ENABLE_DISASSEMBLER
     if (FLAG_print_opt_code && !code.is_null()) {
       OFStream os(stdout);
@@ -2598,9 +2827,8 @@
   Zone zone(isolate->allocator());
   Graph graph(&zone);
   CommonOperatorBuilder common(&zone);
-  JSOperatorBuilder javascript(&zone);
   MachineOperatorBuilder machine(&zone);
-  JSGraph jsgraph(isolate, &graph, &common, &javascript, nullptr, &machine);
+  JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine);
 
   Node* control = nullptr;
   Node* effect = nullptr;
@@ -2613,20 +2841,6 @@
 
   Handle<Code> code = Handle<Code>::null();
   {
-    // Changes lowering requires types.
-    Typer typer(isolate, &graph);
-    NodeVector roots(&zone);
-    jsgraph.GetCachedNodes(&roots);
-    typer.Run(roots);
-
-    // Run generic and change lowering.
-    JSGenericLowering generic(true, &jsgraph);
-    ChangeLowering changes(&jsgraph);
-    GraphReducer graph_reducer(&zone, &graph, jsgraph.Dead());
-    graph_reducer.AddReducer(&changes);
-    graph_reducer.AddReducer(&generic);
-    graph_reducer.ReduceGraph();
-
     if (FLAG_trace_turbo_graph) {  // Simple textual RPO.
       OFStream os(stdout);
       os << "-- Graph after change lowering -- " << std::endl;
@@ -2636,6 +2850,9 @@
     // Schedule and compile to machine code.
     CallDescriptor* incoming =
         wasm::ModuleEnv::GetWasmCallDescriptor(&zone, sig);
+    if (machine.Is32()) {
+      incoming = wasm::ModuleEnv::GetI32WasmCallDescriptor(&zone, incoming);
+    }
     Code::Flags flags = Code::ComputeFlags(Code::WASM_TO_JS_FUNCTION);
     bool debugging =
 #if DEBUG
@@ -2643,13 +2860,13 @@
 #else
         FLAG_print_opt_code || FLAG_trace_turbo || FLAG_trace_turbo_graph;
 #endif
-    const char* func_name = "wasm-to-js";
+    Vector<const char> func_name = ArrayVector("wasm-to-js");
     static unsigned id = 0;
     Vector<char> buffer;
     if (debugging) {
       buffer = Vector<char>::New(128);
-      SNPrintF(buffer, "wasm-to-js#%d", id);
-      func_name = buffer.start();
+      int chars = SNPrintF(buffer, "wasm-to-js#%d", id);
+      func_name = Vector<const char>::cast(buffer.SubVector(0, chars));
     }
 
     CompilationInfo info(func_name, isolate, &zone, flags);
@@ -2670,40 +2887,34 @@
   return code;
 }
 
-
-// Helper function to compile a single function.
-Handle<Code> CompileWasmFunction(wasm::ErrorThrower& thrower, Isolate* isolate,
-                                 wasm::ModuleEnv* module_env,
-                                 const wasm::WasmFunction& function) {
-  if (FLAG_trace_wasm_compiler) {
-    OFStream os(stdout);
-    os << "Compiling WASM function "
-       << wasm::WasmFunctionName(&function, module_env) << std::endl;
-    os << std::endl;
-  }
-
-  double decode_ms = 0;
+std::pair<JSGraph*, SourcePositionTable*> BuildGraphForWasmFunction(
+    JSGraph* jsgraph, wasm::ErrorThrower* thrower, Isolate* isolate,
+    wasm::ModuleEnv*& module_env, const wasm::WasmFunction* function,
+    double* decode_ms) {
   base::ElapsedTimer decode_timer;
   if (FLAG_trace_wasm_decode_time) {
     decode_timer.Start();
   }
-
   // Create a TF graph during decoding.
-  Zone zone(isolate->allocator());
-  Graph graph(&zone);
-  CommonOperatorBuilder common(&zone);
-  MachineOperatorBuilder machine(
-      &zone, MachineType::PointerRepresentation(),
-      InstructionSelector::SupportedMachineOperatorFlags());
-  JSGraph jsgraph(isolate, &graph, &common, nullptr, nullptr, &machine);
-  WasmGraphBuilder builder(&zone, &jsgraph, function.sig);
+  Graph* graph = jsgraph->graph();
+  CommonOperatorBuilder* common = jsgraph->common();
+  MachineOperatorBuilder* machine = jsgraph->machine();
+  SourcePositionTable* source_position_table =
+      new (jsgraph->zone()) SourcePositionTable(graph);
+  WasmGraphBuilder builder(jsgraph->zone(), jsgraph, function->sig,
+                           source_position_table);
   wasm::FunctionBody body = {
-      module_env, function.sig, module_env->module->module_start,
-      module_env->module->module_start + function.code_start_offset,
-      module_env->module->module_start + function.code_end_offset};
+      module_env, function->sig, module_env->module->module_start,
+      module_env->module->module_start + function->code_start_offset,
+      module_env->module->module_start + function->code_end_offset};
   wasm::TreeResult result =
       wasm::BuildTFGraph(isolate->allocator(), &builder, body);
 
+  if (machine->Is32()) {
+    Int64Lowering r(graph, machine, common, jsgraph->zone(), function->sig);
+    r.LowerGraph();
+  }
+
   if (result.failed()) {
     if (FLAG_trace_wasm_compiler) {
       OFStream os(stdout);
@@ -2711,76 +2922,198 @@
     }
     // Add the function as another context for the exception
     ScopedVector<char> buffer(128);
-    wasm::WasmName name =
-        module_env->module->GetName(function.name_offset, function.name_length);
+    wasm::WasmName name = module_env->module->GetName(function->name_offset,
+                                                      function->name_length);
     SNPrintF(buffer, "Compiling WASM function #%d:%.*s failed:",
-             function.func_index, name.length, name.name);
-    thrower.Failed(buffer.start(), result);
-    return Handle<Code>::null();
+             function->func_index, name.length(), name.start());
+    thrower->Failed(buffer.start(), result);
+    return std::make_pair(nullptr, nullptr);
   }
-
-  int index = static_cast<int>(function.func_index);
+  int index = static_cast<int>(function->func_index);
   if (index >= FLAG_trace_wasm_ast_start && index < FLAG_trace_wasm_ast_end) {
     PrintAst(isolate->allocator(), body);
   }
-
   if (FLAG_trace_wasm_decode_time) {
-    decode_ms = decode_timer.Elapsed().InMillisecondsF();
+    *decode_ms = decode_timer.Elapsed().InMillisecondsF();
   }
-
-  base::ElapsedTimer compile_timer;
-  if (FLAG_trace_wasm_decode_time) {
-    compile_timer.Start();
-  }
-  // Run the compiler pipeline to generate machine code.
-  CallDescriptor* descriptor =
-      wasm::ModuleEnv::GetWasmCallDescriptor(&zone, function.sig);
-  if (machine.Is32()) {
-    descriptor = module_env->GetI32WasmCallDescriptor(&zone, descriptor);
-  }
-  Code::Flags flags = Code::ComputeFlags(Code::WASM_FUNCTION);
-  // add flags here if a meaningful name is helpful for debugging.
-  bool debugging =
-#if DEBUG
-      true;
-#else
-      FLAG_print_opt_code || FLAG_trace_turbo || FLAG_trace_turbo_graph;
-#endif
-  const char* func_name = "wasm";
-  Vector<char> buffer;
-  if (debugging) {
-    buffer = Vector<char>::New(128);
-    wasm::WasmName name =
-        module_env->module->GetName(function.name_offset, function.name_length);
-    SNPrintF(buffer, "WASM_function_#%d:%.*s", function.func_index, name.length,
-             name.name);
-    func_name = buffer.start();
-  }
-  CompilationInfo info(func_name, isolate, &zone, flags);
-
-  Handle<Code> code =
-      Pipeline::GenerateCodeForTesting(&info, descriptor, &graph);
-  if (debugging) {
-    buffer.Dispose();
-  }
-  if (!code.is_null()) {
-    RecordFunctionCompilation(Logger::FUNCTION_TAG, &info, "WASM_function",
-                              function.func_index,
-                              module_env->module->GetName(
-                                  function.name_offset, function.name_length));
-  }
-
-  if (FLAG_trace_wasm_decode_time) {
-    double compile_ms = compile_timer.Elapsed().InMillisecondsF();
-    PrintF(
-        "wasm-compile ok: %d bytes, %0.3f ms decode, %d nodes, %0.3f ms "
-        "compile\n",
-        static_cast<int>(function.code_end_offset - function.code_start_offset),
-        decode_ms, static_cast<int>(graph.NodeCount()), compile_ms);
-  }
-  return code;
+  return std::make_pair(jsgraph, source_position_table);
 }
 
+class WasmCompilationUnit {
+ public:
+  WasmCompilationUnit(wasm::ErrorThrower* thrower, Isolate* isolate,
+                      wasm::ModuleEnv* module_env,
+                      const wasm::WasmFunction* function, uint32_t index)
+      : thrower_(thrower),
+        isolate_(isolate),
+        module_env_(module_env),
+        function_(function),
+        graph_zone_(new Zone(isolate->allocator())),
+        jsgraph_(new (graph_zone()) JSGraph(
+            isolate, new (graph_zone()) Graph(graph_zone()),
+            new (graph_zone()) CommonOperatorBuilder(graph_zone()), nullptr,
+            nullptr,
+            new (graph_zone()) MachineOperatorBuilder(
+                graph_zone(), MachineType::PointerRepresentation(),
+                InstructionSelector::SupportedMachineOperatorFlags()))),
+        compilation_zone_(isolate->allocator()),
+        info_(function->name_length != 0
+                  ? module_env->module->GetNameOrNull(function->name_offset,
+                                                      function->name_length)
+                  : ArrayVector("wasm"),
+              isolate, &compilation_zone_,
+              Code::ComputeFlags(Code::WASM_FUNCTION)),
+        job_(),
+        index_(index),
+        ok_(true) {
+    // Create and cache this node in the main thread.
+    jsgraph_->CEntryStubConstant(1);
+  }
+
+  Zone* graph_zone() { return graph_zone_.get(); }
+
+  void ExecuteCompilation() {
+    // TODO(ahaas): The counters are not thread-safe at the moment.
+    //    HistogramTimerScope wasm_compile_function_time_scope(
+    //        isolate_->counters()->wasm_compile_function_time());
+    if (FLAG_trace_wasm_compiler) {
+      OFStream os(stdout);
+      os << "Compiling WASM function "
+         << wasm::WasmFunctionName(function_, module_env_) << std::endl;
+      os << std::endl;
+    }
+
+    double decode_ms = 0;
+    size_t node_count = 0;
+
+    base::SmartPointer<Zone> graph_zone(graph_zone_.Detach());
+    std::pair<JSGraph*, SourcePositionTable*> graph_result =
+        BuildGraphForWasmFunction(jsgraph_, thrower_, isolate_, module_env_,
+                                  function_, &decode_ms);
+    JSGraph* jsgraph = graph_result.first;
+    SourcePositionTable* source_positions = graph_result.second;
+
+    if (jsgraph == nullptr) {
+      ok_ = false;
+      return;
+    }
+
+    base::ElapsedTimer pipeline_timer;
+    if (FLAG_trace_wasm_decode_time) {
+      node_count = jsgraph->graph()->NodeCount();
+      pipeline_timer.Start();
+    }
+
+    // Run the compiler pipeline to generate machine code.
+    CallDescriptor* descriptor = wasm::ModuleEnv::GetWasmCallDescriptor(
+        &compilation_zone_, function_->sig);
+    if (jsgraph->machine()->Is32()) {
+      descriptor =
+          module_env_->GetI32WasmCallDescriptor(&compilation_zone_, descriptor);
+    }
+    job_.Reset(Pipeline::NewWasmCompilationJob(&info_, jsgraph->graph(),
+                                               descriptor, source_positions));
+    ok_ = job_->OptimizeGraph() == CompilationJob::SUCCEEDED;
+    // TODO(bradnelson): Improve histogram handling of size_t.
+    // TODO(ahaas): The counters are not thread-safe at the moment.
+    //    isolate_->counters()->wasm_compile_function_peak_memory_bytes()
+    // ->AddSample(
+    //        static_cast<int>(jsgraph->graph()->zone()->allocation_size()));
+
+    if (FLAG_trace_wasm_decode_time) {
+      double pipeline_ms = pipeline_timer.Elapsed().InMillisecondsF();
+      PrintF(
+          "wasm-compilation phase 1 ok: %d bytes, %0.3f ms decode, %zu nodes, "
+          "%0.3f ms pipeline\n",
+          static_cast<int>(function_->code_end_offset -
+                           function_->code_start_offset),
+          decode_ms, node_count, pipeline_ms);
+    }
+  }
+
+  Handle<Code> FinishCompilation() {
+    if (!ok_) {
+      return Handle<Code>::null();
+    }
+    if (job_->GenerateCode() != CompilationJob::SUCCEEDED) {
+      return Handle<Code>::null();
+    }
+    base::ElapsedTimer compile_timer;
+    if (FLAG_trace_wasm_decode_time) {
+      compile_timer.Start();
+    }
+    Handle<Code> code = info_.code();
+    DCHECK(!code.is_null());
+    DCHECK(code->deoptimization_data() == nullptr ||
+           code->deoptimization_data()->length() == 0);
+    Handle<FixedArray> deopt_data =
+        isolate_->factory()->NewFixedArray(2, TENURED);
+    if (!module_env_->instance->js_object.is_null()) {
+      deopt_data->set(0, *module_env_->instance->js_object);
+    }
+    deopt_data->set(1, Smi::FromInt(function_->func_index));
+    deopt_data->set_length(2);
+    code->set_deoptimization_data(*deopt_data);
+
+    RecordFunctionCompilation(
+        Logger::FUNCTION_TAG, &info_, "WASM_function", function_->func_index,
+        module_env_->module->GetName(function_->name_offset,
+                                     function_->name_length));
+
+    if (FLAG_trace_wasm_decode_time) {
+      double compile_ms = compile_timer.Elapsed().InMillisecondsF();
+      PrintF("wasm-code-generation ok: %d bytes, %0.3f ms code generation\n",
+             static_cast<int>(function_->code_end_offset -
+                              function_->code_start_offset),
+             compile_ms);
+    }
+
+    return code;
+  }
+
+  wasm::ErrorThrower* thrower_;
+  Isolate* isolate_;
+  wasm::ModuleEnv* module_env_;
+  const wasm::WasmFunction* function_;
+  // The graph zone is deallocated at the end of ExecuteCompilation.
+  base::SmartPointer<Zone> graph_zone_;
+  JSGraph* jsgraph_;
+  Zone compilation_zone_;
+  CompilationInfo info_;
+  base::SmartPointer<CompilationJob> job_;
+  uint32_t index_;
+  bool ok_;
+};
+
+WasmCompilationUnit* CreateWasmCompilationUnit(
+    wasm::ErrorThrower* thrower, Isolate* isolate, wasm::ModuleEnv* module_env,
+    const wasm::WasmFunction* function, uint32_t index) {
+  return new WasmCompilationUnit(thrower, isolate, module_env, function, index);
+}
+
+void ExecuteCompilation(WasmCompilationUnit* unit) {
+  unit->ExecuteCompilation();
+}
+
+uint32_t GetIndexOfWasmCompilationUnit(WasmCompilationUnit* unit) {
+  return unit->index_;
+}
+
+Handle<Code> FinishCompilation(WasmCompilationUnit* unit) {
+  Handle<Code> result = unit->FinishCompilation();
+  delete unit;
+  return result;
+}
+
+// Helper function to compile a single function.
+Handle<Code> CompileWasmFunction(wasm::ErrorThrower* thrower, Isolate* isolate,
+                                 wasm::ModuleEnv* module_env,
+                                 const wasm::WasmFunction* function) {
+  WasmCompilationUnit* unit =
+      CreateWasmCompilationUnit(thrower, isolate, module_env, function, 0);
+  ExecuteCompilation(unit);
+  return FinishCompilation(unit);
+}
 
 }  // namespace compiler
 }  // namespace internal
diff --git a/src/compiler/wasm-compiler.h b/src/compiler/wasm-compiler.h
index bbcafa7..93c2ae9 100644
--- a/src/compiler/wasm-compiler.h
+++ b/src/compiler/wasm-compiler.h
@@ -18,6 +18,9 @@
 class Node;
 class JSGraph;
 class Graph;
+class Operator;
+class SourcePositionTable;
+class WasmCompilationUnit;
 }
 
 namespace wasm {
@@ -33,9 +36,9 @@
 
 namespace compiler {
 // Compiles a single function, producing a code object.
-Handle<Code> CompileWasmFunction(wasm::ErrorThrower& thrower, Isolate* isolate,
+Handle<Code> CompileWasmFunction(wasm::ErrorThrower* thrower, Isolate* isolate,
                                  wasm::ModuleEnv* module_env,
-                                 const wasm::WasmFunction& function);
+                                 const wasm::WasmFunction* function);
 
 // Wraps a JS function, producing a code object that can be called from WASM.
 Handle<Code> CompileWasmToJSWrapper(Isolate* isolate, wasm::ModuleEnv* module,
@@ -50,12 +53,24 @@
     Isolate* isolate, wasm::ModuleEnv* module, Handle<String> name,
     Handle<Code> wasm_code, Handle<JSObject> module_object, uint32_t index);
 
+WasmCompilationUnit* CreateWasmCompilationUnit(
+    wasm::ErrorThrower* thrower, Isolate* isolate, wasm::ModuleEnv* module_env,
+    const wasm::WasmFunction* function, uint32_t index);
+
+void ExecuteCompilation(WasmCompilationUnit* unit);
+
+Handle<Code> FinishCompilation(WasmCompilationUnit* unit);
+
+uint32_t GetIndexOfWasmCompilationUnit(WasmCompilationUnit* unit);
+
 // Abstracts details of building TurboFan graph nodes for WASM to separate
 // the WASM decoder from the internal details of TurboFan.
 class WasmTrapHelper;
 class WasmGraphBuilder {
  public:
-  WasmGraphBuilder(Zone* z, JSGraph* g, wasm::FunctionSig* function_signature);
+  WasmGraphBuilder(
+      Zone* z, JSGraph* g, wasm::FunctionSig* function_signature,
+      compiler::SourcePositionTable* source_position_table = nullptr);
 
   Node** Buffer(size_t count) {
     if (count > cur_bufsize_) {
@@ -78,17 +93,20 @@
   Node* Merge(unsigned count, Node** controls);
   Node* Phi(wasm::LocalType type, unsigned count, Node** vals, Node* control);
   Node* EffectPhi(unsigned count, Node** effects, Node* control);
+  Node* NumberConstant(int32_t value);
   Node* Int32Constant(int32_t value);
   Node* Int64Constant(int64_t value);
   Node* Float32Constant(float value);
   Node* Float64Constant(double value);
-  Node* Constant(Handle<Object> value);
-  Node* Binop(wasm::WasmOpcode opcode, Node* left, Node* right);
-  Node* Unop(wasm::WasmOpcode opcode, Node* input);
+  Node* HeapConstant(Handle<HeapObject> value);
+  Node* Binop(wasm::WasmOpcode opcode, Node* left, Node* right,
+              wasm::WasmCodePosition position = wasm::kNoCodePosition);
+  Node* Unop(wasm::WasmOpcode opcode, Node* input,
+             wasm::WasmCodePosition position = wasm::kNoCodePosition);
   unsigned InputCount(Node* node);
   bool IsPhiWithMerge(Node* phi, Node* merge);
   void AppendToMerge(Node* merge, Node* from);
-  void AppendToPhi(Node* merge, Node* phi, Node* from);
+  void AppendToPhi(Node* phi, Node* from);
 
   //-----------------------------------------------------------------------
   // Operations that read and/or write {control} and {effect}.
@@ -99,14 +117,18 @@
   Node* IfDefault(Node* sw);
   Node* Return(unsigned count, Node** vals);
   Node* ReturnVoid();
-  Node* Unreachable();
+  Node* Unreachable(wasm::WasmCodePosition position);
 
-  Node* CallDirect(uint32_t index, Node** args);
-  Node* CallImport(uint32_t index, Node** args);
-  Node* CallIndirect(uint32_t index, Node** args);
+  Node* CallDirect(uint32_t index, Node** args,
+                   wasm::WasmCodePosition position);
+  Node* CallImport(uint32_t index, Node** args,
+                   wasm::WasmCodePosition position);
+  Node* CallIndirect(uint32_t index, Node** args,
+                     wasm::WasmCodePosition position);
   void BuildJSToWasmWrapper(Handle<Code> wasm_code, wasm::FunctionSig* sig);
   void BuildWasmToJSWrapper(Handle<JSFunction> function,
                             wasm::FunctionSig* sig);
+
   Node* ToJS(Node* node, Node* context, wasm::LocalType type);
   Node* FromJS(Node* node, Node* context, wasm::LocalType type);
   Node* Invert(Node* node);
@@ -119,8 +141,9 @@
   Node* LoadGlobal(uint32_t index);
   Node* StoreGlobal(uint32_t index, Node* val);
   Node* LoadMem(wasm::LocalType type, MachineType memtype, Node* index,
-                uint32_t offset);
-  Node* StoreMem(MachineType type, Node* index, uint32_t offset, Node* val);
+                uint32_t offset, wasm::WasmCodePosition position);
+  Node* StoreMem(MachineType type, Node* index, uint32_t offset, Node* val,
+                 wasm::WasmCodePosition position);
 
   static void PrintDebugName(Node* node);
 
@@ -137,6 +160,8 @@
 
   void Int64LoweringForTesting();
 
+  void SetSourcePosition(Node* node, wasm::WasmCodePosition position);
+
  private:
   static const int kDefaultBufferSize = 16;
   friend class WasmTrapHelper;
@@ -155,6 +180,9 @@
 
   WasmTrapHelper* trap_;
   wasm::FunctionSig* function_signature_;
+  SetOncePointer<const Operator> allocate_heap_number_operator_;
+
+  compiler::SourcePositionTable* source_position_table_ = nullptr;
 
   // Internal helper methods.
   JSGraph* jsgraph() { return jsgraph_; }
@@ -162,13 +190,15 @@
 
   Node* String(const char* string);
   Node* MemBuffer(uint32_t offset);
-  void BoundsCheckMem(MachineType memtype, Node* index, uint32_t offset);
+  void BoundsCheckMem(MachineType memtype, Node* index, uint32_t offset,
+                      wasm::WasmCodePosition position);
 
   Node* MaskShiftCount32(Node* node);
   Node* MaskShiftCount64(Node* node);
 
   Node* BuildCCall(MachineSignature* sig, Node** args);
-  Node* BuildWasmCall(wasm::FunctionSig* sig, Node** args);
+  Node* BuildWasmCall(wasm::FunctionSig* sig, Node** args,
+                      wasm::WasmCodePosition position);
 
   Node* BuildF32Neg(Node* input);
   Node* BuildF64Neg(Node* input);
@@ -178,14 +208,17 @@
   Node* BuildF32Max(Node* left, Node* right);
   Node* BuildF64Min(Node* left, Node* right);
   Node* BuildF64Max(Node* left, Node* right);
-  Node* BuildI32SConvertF32(Node* input);
-  Node* BuildI32SConvertF64(Node* input);
-  Node* BuildI32UConvertF32(Node* input);
-  Node* BuildI32UConvertF64(Node* input);
+  Node* BuildI32SConvertF32(Node* input, wasm::WasmCodePosition position);
+  Node* BuildI32SConvertF64(Node* input, wasm::WasmCodePosition position);
+  Node* BuildI32UConvertF32(Node* input, wasm::WasmCodePosition position);
+  Node* BuildI32UConvertF64(Node* input, wasm::WasmCodePosition position);
   Node* BuildI32Ctz(Node* input);
   Node* BuildI32Popcnt(Node* input);
   Node* BuildI64Ctz(Node* input);
   Node* BuildI64Popcnt(Node* input);
+  Node* BuildBitCountingCall(Node* input, ExternalReference ref,
+                             MachineRepresentation input_type);
+
   Node* BuildCFuncInstruction(ExternalReference ref, MachineType type,
                               Node* input0, Node* input1 = nullptr);
   Node* BuildF32Trunc(Node* input);
@@ -223,23 +256,52 @@
   Node* BuildFloatToIntConversionInstruction(
       Node* input, ExternalReference ref,
       MachineRepresentation parameter_representation,
-      const MachineType result_type);
-  Node* BuildI64SConvertF32(Node* input);
-  Node* BuildI64UConvertF32(Node* input);
-  Node* BuildI64SConvertF64(Node* input);
-  Node* BuildI64UConvertF64(Node* input);
+      const MachineType result_type, wasm::WasmCodePosition position);
+  Node* BuildI64SConvertF32(Node* input, wasm::WasmCodePosition position);
+  Node* BuildI64UConvertF32(Node* input, wasm::WasmCodePosition position);
+  Node* BuildI64SConvertF64(Node* input, wasm::WasmCodePosition position);
+  Node* BuildI64UConvertF64(Node* input, wasm::WasmCodePosition position);
 
-  Node* BuildI32DivS(Node* left, Node* right);
-  Node* BuildI32RemS(Node* left, Node* right);
-  Node* BuildI32DivU(Node* left, Node* right);
-  Node* BuildI32RemU(Node* left, Node* right);
+  Node* BuildI32DivS(Node* left, Node* right, wasm::WasmCodePosition position);
+  Node* BuildI32RemS(Node* left, Node* right, wasm::WasmCodePosition position);
+  Node* BuildI32DivU(Node* left, Node* right, wasm::WasmCodePosition position);
+  Node* BuildI32RemU(Node* left, Node* right, wasm::WasmCodePosition position);
 
-  Node* BuildI64DivS(Node* left, Node* right);
-  Node* BuildI64RemS(Node* left, Node* right);
-  Node* BuildI64DivU(Node* left, Node* right);
-  Node* BuildI64RemU(Node* left, Node* right);
+  Node* BuildI64DivS(Node* left, Node* right, wasm::WasmCodePosition position);
+  Node* BuildI64RemS(Node* left, Node* right, wasm::WasmCodePosition position);
+  Node* BuildI64DivU(Node* left, Node* right, wasm::WasmCodePosition position);
+  Node* BuildI64RemU(Node* left, Node* right, wasm::WasmCodePosition position);
   Node* BuildDiv64Call(Node* left, Node* right, ExternalReference ref,
-                       MachineType result_type, int trap_zero);
+                       MachineType result_type, int trap_zero,
+                       wasm::WasmCodePosition position);
+
+  Node* BuildJavaScriptToNumber(Node* node, Node* context, Node* effect,
+                                Node* control);
+  Node* BuildChangeInt32ToTagged(Node* value);
+  Node* BuildChangeFloat64ToTagged(Node* value);
+  Node* BuildChangeTaggedToFloat64(Node* value);
+
+  Node* BuildChangeInt32ToSmi(Node* value);
+  Node* BuildChangeSmiToInt32(Node* value);
+  Node* BuildChangeSmiToFloat64(Node* value);
+  Node* BuildTestNotSmi(Node* value);
+  Node* BuildSmiShiftBitsConstant();
+
+  Node* BuildAllocateHeapNumberWithValue(Node* value, Node* control);
+  Node* BuildLoadHeapNumberValue(Node* value, Node* control);
+  Node* BuildHeapNumberValueIndexConstant();
+
+  // Asm.js specific functionality.
+  Node* BuildI32AsmjsSConvertF32(Node* input);
+  Node* BuildI32AsmjsSConvertF64(Node* input);
+  Node* BuildI32AsmjsUConvertF32(Node* input);
+  Node* BuildI32AsmjsUConvertF64(Node* input);
+  Node* BuildI32AsmjsDivS(Node* left, Node* right);
+  Node* BuildI32AsmjsRemS(Node* left, Node* right);
+  Node* BuildI32AsmjsDivU(Node* left, Node* right);
+  Node* BuildI32AsmjsRemU(Node* left, Node* right);
+  Node* BuildAsmjsLoadMem(MachineType type, Node* index);
+  Node* BuildAsmjsStoreMem(MachineType type, Node* index, Node* val);
 
   Node** Realloc(Node** buffer, size_t old_count, size_t new_count) {
     Node** buf = Buffer(new_count);
diff --git a/src/compiler/wasm-linkage.cc b/src/compiler/wasm-linkage.cc
index f0e14ce..41acf55 100644
--- a/src/compiler/wasm-linkage.cc
+++ b/src/compiler/wasm-linkage.cc
@@ -58,7 +58,7 @@
 // ===========================================================================
 // == ia32 ===================================================================
 // ===========================================================================
-#define GP_PARAM_REGISTERS eax, edx, ecx, ebx
+#define GP_PARAM_REGISTERS eax, edx, ecx, ebx, esi
 #define GP_RETURN_REGISTERS eax, edx
 #define FP_PARAM_REGISTERS xmm1, xmm2, xmm3, xmm4, xmm5, xmm6
 #define FP_RETURN_REGISTERS xmm1, xmm2
diff --git a/src/compiler/x64/code-generator-x64.cc b/src/compiler/x64/code-generator-x64.cc
index 2e4eccb..a90a584 100644
--- a/src/compiler/x64/code-generator-x64.cc
+++ b/src/compiler/x64/code-generator-x64.cc
@@ -44,11 +44,15 @@
       DCHECK_EQ(0, bit_cast<int64_t>(constant.ToFloat64()));
       return Immediate(0);
     }
+    if (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+        constant.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+      return Immediate(constant.ToInt32(), constant.rmode());
+    }
     return Immediate(constant.ToInt32());
   }
 
   Operand ToOperand(InstructionOperand* op, int extra = 0) {
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToOperand(AllocatedOperand::cast(op)->index(), extra);
   }
 
@@ -341,31 +345,28 @@
     }                                                       \
   } while (0)
 
-
 #define ASSEMBLE_SSE_BINOP(asm_instr)                                   \
   do {                                                                  \
-    if (instr->InputAt(1)->IsDoubleRegister()) {                        \
+    if (instr->InputAt(1)->IsFPRegister()) {                            \
       __ asm_instr(i.InputDoubleRegister(0), i.InputDoubleRegister(1)); \
     } else {                                                            \
       __ asm_instr(i.InputDoubleRegister(0), i.InputOperand(1));        \
     }                                                                   \
   } while (0)
 
-
 #define ASSEMBLE_SSE_UNOP(asm_instr)                                    \
   do {                                                                  \
-    if (instr->InputAt(0)->IsDoubleRegister()) {                        \
+    if (instr->InputAt(0)->IsFPRegister()) {                            \
       __ asm_instr(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); \
     } else {                                                            \
       __ asm_instr(i.OutputDoubleRegister(), i.InputOperand(0));        \
     }                                                                   \
   } while (0)
 
-
 #define ASSEMBLE_AVX_BINOP(asm_instr)                                  \
   do {                                                                 \
     CpuFeatureScope avx_scope(masm(), AVX);                            \
-    if (instr->InputAt(1)->IsDoubleRegister()) {                       \
+    if (instr->InputAt(1)->IsFPRegister()) {                           \
       __ asm_instr(i.OutputDoubleRegister(), i.InputDoubleRegister(0), \
                    i.InputDoubleRegister(1));                          \
     } else {                                                           \
@@ -374,13 +375,12 @@
     }                                                                  \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_LOAD_FLOAT(asm_instr)                               \
   do {                                                                       \
     auto result = i.OutputDoubleRegister();                                  \
     auto buffer = i.InputRegister(0);                                        \
     auto index1 = i.InputRegister(1);                                        \
-    auto index2 = i.InputInt32(2);                                           \
+    auto index2 = i.InputUint32(2);                                          \
     OutOfLineCode* ool;                                                      \
     if (instr->InputAt(3)->IsRegister()) {                                   \
       auto length = i.InputRegister(3);                                      \
@@ -388,9 +388,9 @@
       __ cmpl(index1, length);                                               \
       ool = new (zone()) OutOfLineLoadNaN(this, result);                     \
     } else {                                                                 \
-      auto length = i.InputInt32(3);                                         \
+      auto length = i.InputUint32(3);                                        \
       DCHECK_LE(index2, length);                                             \
-      __ cmpq(index1, Immediate(length - index2));                           \
+      __ cmpl(index1, Immediate(length - index2));                           \
       class OutOfLineLoadFloat final : public OutOfLineCode {                \
        public:                                                               \
         OutOfLineLoadFloat(CodeGenerator* gen, XMMRegister result,           \
@@ -427,13 +427,12 @@
     __ bind(ool->exit());                                                    \
   } while (false)
 
-
 #define ASSEMBLE_CHECKED_LOAD_INTEGER(asm_instr)                               \
   do {                                                                         \
     auto result = i.OutputRegister();                                          \
     auto buffer = i.InputRegister(0);                                          \
     auto index1 = i.InputRegister(1);                                          \
-    auto index2 = i.InputInt32(2);                                             \
+    auto index2 = i.InputUint32(2);                                            \
     OutOfLineCode* ool;                                                        \
     if (instr->InputAt(3)->IsRegister()) {                                     \
       auto length = i.InputRegister(3);                                        \
@@ -441,9 +440,9 @@
       __ cmpl(index1, length);                                                 \
       ool = new (zone()) OutOfLineLoadZero(this, result);                      \
     } else {                                                                   \
-      auto length = i.InputInt32(3);                                           \
+      auto length = i.InputUint32(3);                                          \
       DCHECK_LE(index2, length);                                               \
-      __ cmpq(index1, Immediate(length - index2));                             \
+      __ cmpl(index1, Immediate(length - index2));                             \
       class OutOfLineLoadInteger final : public OutOfLineCode {                \
        public:                                                                 \
         OutOfLineLoadInteger(CodeGenerator* gen, Register result,              \
@@ -483,12 +482,11 @@
     __ bind(ool->exit());                                                      \
   } while (false)
 
-
 #define ASSEMBLE_CHECKED_STORE_FLOAT(asm_instr)                              \
   do {                                                                       \
     auto buffer = i.InputRegister(0);                                        \
     auto index1 = i.InputRegister(1);                                        \
-    auto index2 = i.InputInt32(2);                                           \
+    auto index2 = i.InputUint32(2);                                          \
     auto value = i.InputDoubleRegister(4);                                   \
     if (instr->InputAt(3)->IsRegister()) {                                   \
       auto length = i.InputRegister(3);                                      \
@@ -499,9 +497,9 @@
       __ asm_instr(Operand(buffer, index1, times_1, index2), value);         \
       __ bind(&done);                                                        \
     } else {                                                                 \
-      auto length = i.InputInt32(3);                                         \
+      auto length = i.InputUint32(3);                                        \
       DCHECK_LE(index2, length);                                             \
-      __ cmpq(index1, Immediate(length - index2));                           \
+      __ cmpl(index1, Immediate(length - index2));                           \
       class OutOfLineStoreFloat final : public OutOfLineCode {               \
        public:                                                               \
         OutOfLineStoreFloat(CodeGenerator* gen, Register buffer,             \
@@ -537,12 +535,11 @@
     }                                                                        \
   } while (false)
 
-
 #define ASSEMBLE_CHECKED_STORE_INTEGER_IMPL(asm_instr, Value)                  \
   do {                                                                         \
     auto buffer = i.InputRegister(0);                                          \
     auto index1 = i.InputRegister(1);                                          \
-    auto index2 = i.InputInt32(2);                                             \
+    auto index2 = i.InputUint32(2);                                            \
     if (instr->InputAt(3)->IsRegister()) {                                     \
       auto length = i.InputRegister(3);                                        \
       DCHECK_EQ(0, index2);                                                    \
@@ -552,9 +549,9 @@
       __ asm_instr(Operand(buffer, index1, times_1, index2), value);           \
       __ bind(&done);                                                          \
     } else {                                                                   \
-      auto length = i.InputInt32(3);                                           \
+      auto length = i.InputUint32(3);                                          \
       DCHECK_LE(index2, length);                                               \
-      __ cmpq(index1, Immediate(length - index2));                             \
+      __ cmpl(index1, Immediate(length - index2));                             \
       class OutOfLineStoreInteger final : public OutOfLineCode {               \
        public:                                                                 \
         OutOfLineStoreInteger(CodeGenerator* gen, Register buffer,             \
@@ -590,7 +587,6 @@
     }                                                                          \
   } while (false)
 
-
 #define ASSEMBLE_CHECKED_STORE_INTEGER(asm_instr)                \
   do {                                                           \
     if (instr->InputAt(4)->IsRegister()) {                       \
@@ -607,8 +603,6 @@
   __ popq(rbp);
 }
 
-void CodeGenerator::AssembleSetupStackPointer() {}
-
 void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
   int sp_slot_delta = TailCallFrameStackSlotDelta(stack_param_delta);
   if (sp_slot_delta > 0) {
@@ -656,7 +650,8 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   X64OperandConverter i(this, instr);
   InstructionCode opcode = instr->opcode();
   ArchOpcode arch_opcode = ArchOpcodeField::decode(opcode);
@@ -695,6 +690,15 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!HasImmediateInput(instr, 0));
+      Register reg = i.InputRegister(0);
+      __ jmp(reg);
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       EnsureSpaceForLazyDeopt();
       Register func = i.InputRegister(0);
@@ -768,7 +772,9 @@
           BuildTranslation(instr, -1, 0, OutputFrameStateCombine::Ignore());
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -791,10 +797,13 @@
       auto result = i.OutputRegister();
       auto input = i.InputDoubleRegister(0);
       auto ool = new (zone()) OutOfLineTruncateDoubleToI(this, result, input);
+      // We use Cvttsd2siq instead of Cvttsd2si due to performance reasons. The
+      // use of Cvttsd2siq requires the movl below to avoid sign extension.
       __ Cvttsd2siq(result, input);
       __ cmpq(result, Immediate(1));
       __ j(overflow, ool->entry());
       __ bind(ool->exit());
+      __ movl(result, result);
       break;
     }
     case kArchStoreWithWriteBarrier: {
@@ -1047,14 +1056,14 @@
       break;
     }
     case kSSEFloat32ToInt32:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Cvttss2si(i.OutputRegister(), i.InputDoubleRegister(0));
       } else {
         __ Cvttss2si(i.OutputRegister(), i.InputOperand(0));
       }
       break;
     case kSSEFloat32ToUint32: {
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Cvttss2siq(i.OutputRegister(), i.InputDoubleRegister(0));
       } else {
         __ Cvttss2siq(i.OutputRegister(), i.InputOperand(0));
@@ -1145,14 +1154,14 @@
       ASSEMBLE_SSE_UNOP(Cvtsd2ss);
       break;
     case kSSEFloat64ToInt32:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Cvttsd2si(i.OutputRegister(), i.InputDoubleRegister(0));
       } else {
         __ Cvttsd2si(i.OutputRegister(), i.InputOperand(0));
       }
       break;
     case kSSEFloat64ToUint32: {
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Cvttsd2siq(i.OutputRegister(), i.InputDoubleRegister(0));
       } else {
         __ Cvttsd2siq(i.OutputRegister(), i.InputOperand(0));
@@ -1163,7 +1172,7 @@
       break;
     }
     case kSSEFloat32ToInt64:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Cvttss2siq(i.OutputRegister(), i.InputDoubleRegister(0));
       } else {
         __ Cvttss2siq(i.OutputRegister(), i.InputOperand(0));
@@ -1173,7 +1182,7 @@
         Label done;
         Label fail;
         __ Move(kScratchDoubleReg, static_cast<float>(INT64_MIN));
-        if (instr->InputAt(0)->IsDoubleRegister()) {
+        if (instr->InputAt(0)->IsFPRegister()) {
           __ Ucomiss(kScratchDoubleReg, i.InputDoubleRegister(0));
         } else {
           __ Ucomiss(kScratchDoubleReg, i.InputOperand(0));
@@ -1192,7 +1201,7 @@
       }
       break;
     case kSSEFloat64ToInt64:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Cvttsd2siq(i.OutputRegister(0), i.InputDoubleRegister(0));
       } else {
         __ Cvttsd2siq(i.OutputRegister(0), i.InputOperand(0));
@@ -1202,7 +1211,7 @@
         Label done;
         Label fail;
         __ Move(kScratchDoubleReg, static_cast<double>(INT64_MIN));
-        if (instr->InputAt(0)->IsDoubleRegister()) {
+        if (instr->InputAt(0)->IsFPRegister()) {
           __ Ucomisd(kScratchDoubleReg, i.InputDoubleRegister(0));
         } else {
           __ Ucomisd(kScratchDoubleReg, i.InputOperand(0));
@@ -1228,7 +1237,7 @@
       }
       // There does not exist a Float32ToUint64 instruction, so we have to use
       // the Float32ToInt64 instruction.
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Cvttss2siq(i.OutputRegister(), i.InputDoubleRegister(0));
       } else {
         __ Cvttss2siq(i.OutputRegister(), i.InputOperand(0));
@@ -1241,7 +1250,7 @@
       // input value was not within the positive int64 range. We subtract 2^64
       // and convert it again to see if it is within the uint64 range.
       __ Move(kScratchDoubleReg, -9223372036854775808.0f);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ addss(kScratchDoubleReg, i.InputDoubleRegister(0));
       } else {
         __ addss(kScratchDoubleReg, i.InputOperand(0));
@@ -1271,7 +1280,7 @@
       }
       // There does not exist a Float64ToUint64 instruction, so we have to use
       // the Float64ToInt64 instruction.
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ Cvttsd2siq(i.OutputRegister(), i.InputDoubleRegister(0));
       } else {
         __ Cvttsd2siq(i.OutputRegister(), i.InputOperand(0));
@@ -1284,7 +1293,7 @@
       // input value was not within the positive int64 range. We subtract 2^64
       // and convert it again to see if it is within the uint64 range.
       __ Move(kScratchDoubleReg, -9223372036854775808.0);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ addsd(kScratchDoubleReg, i.InputDoubleRegister(0));
       } else {
         __ addsd(kScratchDoubleReg, i.InputOperand(0));
@@ -1369,14 +1378,14 @@
       __ Cvtqsi2ss(i.OutputDoubleRegister(), kScratchRegister);
       break;
     case kSSEFloat64ExtractLowWord32:
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ movl(i.OutputRegister(), i.InputOperand(0));
       } else {
         __ Movd(i.OutputRegister(), i.InputDoubleRegister(0));
       }
       break;
     case kSSEFloat64ExtractHighWord32:
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ movl(i.OutputRegister(), i.InputOperand(0, kDoubleSize / 2));
       } else {
         __ Pextrd(i.OutputRegister(), i.InputDoubleRegister(0), 1);
@@ -1405,7 +1414,7 @@
       break;
     case kAVXFloat32Cmp: {
       CpuFeatureScope avx_scope(masm(), AVX);
-      if (instr->InputAt(1)->IsDoubleRegister()) {
+      if (instr->InputAt(1)->IsFPRegister()) {
         __ vucomiss(i.InputDoubleRegister(0), i.InputDoubleRegister(1));
       } else {
         __ vucomiss(i.InputDoubleRegister(0), i.InputOperand(1));
@@ -1435,7 +1444,7 @@
       break;
     case kAVXFloat64Cmp: {
       CpuFeatureScope avx_scope(masm(), AVX);
-      if (instr->InputAt(1)->IsDoubleRegister()) {
+      if (instr->InputAt(1)->IsFPRegister()) {
         __ vucomisd(i.InputDoubleRegister(0), i.InputDoubleRegister(1));
       } else {
         __ vucomisd(i.InputDoubleRegister(0), i.InputOperand(1));
@@ -1468,7 +1477,7 @@
       CpuFeatureScope avx_scope(masm(), AVX);
       __ vpcmpeqd(kScratchDoubleReg, kScratchDoubleReg, kScratchDoubleReg);
       __ vpsrlq(kScratchDoubleReg, kScratchDoubleReg, 33);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ vandps(i.OutputDoubleRegister(), kScratchDoubleReg,
                   i.InputDoubleRegister(0));
       } else {
@@ -1482,7 +1491,7 @@
       CpuFeatureScope avx_scope(masm(), AVX);
       __ vpcmpeqd(kScratchDoubleReg, kScratchDoubleReg, kScratchDoubleReg);
       __ vpsllq(kScratchDoubleReg, kScratchDoubleReg, 31);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ vxorps(i.OutputDoubleRegister(), kScratchDoubleReg,
                   i.InputDoubleRegister(0));
       } else {
@@ -1496,7 +1505,7 @@
       CpuFeatureScope avx_scope(masm(), AVX);
       __ vpcmpeqd(kScratchDoubleReg, kScratchDoubleReg, kScratchDoubleReg);
       __ vpsrlq(kScratchDoubleReg, kScratchDoubleReg, 1);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ vandpd(i.OutputDoubleRegister(), kScratchDoubleReg,
                   i.InputDoubleRegister(0));
       } else {
@@ -1510,7 +1519,7 @@
       CpuFeatureScope avx_scope(masm(), AVX);
       __ vpcmpeqd(kScratchDoubleReg, kScratchDoubleReg, kScratchDoubleReg);
       __ vpsllq(kScratchDoubleReg, kScratchDoubleReg, 63);
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ vxorpd(i.OutputDoubleRegister(), kScratchDoubleReg,
                   i.InputDoubleRegister(0));
       } else {
@@ -1612,14 +1621,14 @@
       }
       break;
     case kX64BitcastFI:
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ movl(i.OutputRegister(), i.InputOperand(0));
       } else {
         __ Movd(i.OutputRegister(), i.InputDoubleRegister(0));
       }
       break;
     case kX64BitcastDL:
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ movq(i.OutputRegister(), i.InputOperand(0));
       } else {
         __ Movq(i.OutputRegister(), i.InputDoubleRegister(0));
@@ -1690,7 +1699,7 @@
         if (instr->InputAt(0)->IsRegister()) {
           __ pushq(i.InputRegister(0));
           frame_access_state()->IncreaseSPDelta(1);
-        } else if (instr->InputAt(0)->IsDoubleRegister()) {
+        } else if (instr->InputAt(0)->IsFPRegister()) {
           // TODO(titzer): use another machine instruction?
           __ subq(rsp, Immediate(kDoubleSize));
           frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
@@ -1710,6 +1719,24 @@
       }
       break;
     }
+    case kX64Xchgb: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchgb(i.InputRegister(index), operand);
+      break;
+    }
+    case kX64Xchgw: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchgw(i.InputRegister(index), operand);
+      break;
+    }
+    case kX64Xchgl: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchgl(i.InputRegister(index), operand);
+      break;
+    }
     case kCheckedLoadInt8:
       ASSEMBLE_CHECKED_LOAD_INTEGER(movsxbl);
       break;
@@ -1755,7 +1782,18 @@
     case kX64StackCheck:
       __ CompareRoot(rsp, Heap::kStackLimitRootIndex);
       break;
+    case kAtomicLoadInt8:
+    case kAtomicLoadUint8:
+    case kAtomicLoadInt16:
+    case kAtomicLoadUint16:
+    case kAtomicLoadWord32:
+    case kAtomicStoreWord8:
+    case kAtomicStoreWord16:
+    case kAtomicStoreWord32:
+      UNREACHABLE();  // Won't be generated by instruction selector.
+      break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 
@@ -1918,12 +1956,13 @@
   __ jmp(Operand(kScratchRegister, input, times_8, 0));
 }
 
-
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
+  return kSuccess;
 }
 
 
@@ -1933,8 +1972,31 @@
 
 }  // namespace
 
+void CodeGenerator::FinishFrame(Frame* frame) {
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
 
-void CodeGenerator::AssemblePrologue() {
+  const RegList saves_fp = descriptor->CalleeSavedFPRegisters();
+  if (saves_fp != 0) {
+    frame->AlignSavedCalleeRegisterSlots();
+    if (saves_fp != 0) {  // Save callee-saved XMM registers.
+      const uint32_t saves_fp_count = base::bits::CountPopulation32(saves_fp);
+      frame->AllocateSavedCalleeRegisterSlots(saves_fp_count *
+                                              (kQuadWordSize / kPointerSize));
+    }
+  }
+  const RegList saves = descriptor->CalleeSavedRegisters();
+  if (saves != 0) {  // Save callee-saved registers.
+    int count = 0;
+    for (int i = Register::kNumRegisters - 1; i >= 0; i--) {
+      if (((1 << i) & saves)) {
+        ++count;
+      }
+    }
+    frame->AllocateSavedCalleeRegisterSlots(count);
+  }
+}
+
+void CodeGenerator::AssembleConstructFrame() {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (frame_access_state()->has_frame()) {
     if (descriptor->IsCFunctionCall()) {
@@ -1946,7 +2008,8 @@
       __ StubPrologue(info()->GetOutputStackFrameType());
     }
   }
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
+  int shrink_slots = frame()->GetSpillSlotCount();
+
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -1957,16 +2020,12 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -=
-        static_cast<int>(OsrHelper(info()).UnoptimizedFrameSlots());
+    shrink_slots -= static_cast<int>(OsrHelper(info()).UnoptimizedFrameSlots());
   }
 
   const RegList saves_fp = descriptor->CalleeSavedFPRegisters();
-  if (saves_fp != 0) {
-    stack_shrink_slots += frame()->AlignSavedCalleeRegisterSlots();
-  }
-  if (stack_shrink_slots > 0) {
-    __ subq(rsp, Immediate(stack_shrink_slots * kPointerSize));
+  if (shrink_slots > 0) {
+    __ subq(rsp, Immediate(shrink_slots * kPointerSize));
   }
 
   if (saves_fp != 0) {  // Save callee-saved XMM registers.
@@ -1982,8 +2041,6 @@
                 XMMRegister::from_code(i));
       slot_idx++;
     }
-    frame()->AllocateSavedCalleeRegisterSlots(saves_fp_count *
-                                              (kQuadWordSize / kPointerSize));
   }
 
   const RegList saves = descriptor->CalleeSavedRegisters();
@@ -1991,7 +2048,6 @@
     for (int i = Register::kNumRegisters - 1; i >= 0; i--) {
       if (!((1 << i) & saves)) continue;
       __ pushq(Register::from_code(i));
-      frame()->AllocateSavedCalleeRegisterSlots(1);
     }
   }
 }
@@ -2077,12 +2133,27 @@
       Register dst = destination->IsRegister() ? g.ToRegister(destination)
                                                : kScratchRegister;
       switch (src.type()) {
-        case Constant::kInt32:
-          // TODO(dcarney): don't need scratch in this case.
-          __ Set(dst, src.ToInt32());
+        case Constant::kInt32: {
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+            __ movq(dst, src.ToInt64(), src.rmode());
+          } else {
+            // TODO(dcarney): don't need scratch in this case.
+            int32_t value = src.ToInt32();
+            if (value == 0) {
+              __ xorl(dst, dst);
+            } else {
+              __ movl(dst, Immediate(value));
+            }
+          }
           break;
+        }
         case Constant::kInt64:
-          __ Set(dst, src.ToInt64());
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+            __ movq(dst, src.ToInt64(), src.rmode());
+          } else {
+            DCHECK(src.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+            __ Set(dst, src.ToInt64());
+          }
           break;
         case Constant::kFloat32:
           __ Move(dst,
@@ -2118,38 +2189,38 @@
     } else if (src.type() == Constant::kFloat32) {
       // TODO(turbofan): Can we do better here?
       uint32_t src_const = bit_cast<uint32_t>(src.ToFloat32());
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         __ Move(g.ToDoubleRegister(destination), src_const);
       } else {
-        DCHECK(destination->IsDoubleStackSlot());
+        DCHECK(destination->IsFPStackSlot());
         Operand dst = g.ToOperand(destination);
         __ movl(dst, Immediate(src_const));
       }
     } else {
       DCHECK_EQ(Constant::kFloat64, src.type());
       uint64_t src_const = bit_cast<uint64_t>(src.ToFloat64());
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         __ Move(g.ToDoubleRegister(destination), src_const);
       } else {
-        DCHECK(destination->IsDoubleStackSlot());
+        DCHECK(destination->IsFPStackSlot());
         __ movq(kScratchRegister, src_const);
         __ movq(g.ToOperand(destination), kScratchRegister);
       }
     }
-  } else if (source->IsDoubleRegister()) {
+  } else if (source->IsFPRegister()) {
     XMMRegister src = g.ToDoubleRegister(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       XMMRegister dst = g.ToDoubleRegister(destination);
       __ Movapd(dst, src);
     } else {
-      DCHECK(destination->IsDoubleStackSlot());
+      DCHECK(destination->IsFPStackSlot());
       Operand dst = g.ToOperand(destination);
       __ Movsd(dst, src);
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     Operand src = g.ToOperand(source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       XMMRegister dst = g.ToDoubleRegister(destination);
       __ Movsd(dst, src);
     } else {
@@ -2186,8 +2257,7 @@
     dst = g.ToOperand(destination);
     __ popq(dst);
   } else if ((source->IsStackSlot() && destination->IsStackSlot()) ||
-             (source->IsDoubleStackSlot() &&
-              destination->IsDoubleStackSlot())) {
+             (source->IsFPStackSlot() && destination->IsFPStackSlot())) {
     // Memory-memory.
     Register tmp = kScratchRegister;
     Operand src = g.ToOperand(source);
@@ -2200,7 +2270,7 @@
     frame_access_state()->IncreaseSPDelta(-1);
     dst = g.ToOperand(destination);
     __ popq(dst);
-  } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
+  } else if (source->IsFPRegister() && destination->IsFPRegister()) {
     // XMM register-register swap. We rely on having xmm0
     // available as a fixed scratch register.
     XMMRegister src = g.ToDoubleRegister(source);
@@ -2208,7 +2278,7 @@
     __ Movapd(xmm0, src);
     __ Movapd(src, dst);
     __ Movapd(dst, xmm0);
-  } else if (source->IsDoubleRegister() && destination->IsDoubleStackSlot()) {
+  } else if (source->IsFPRegister() && destination->IsFPStackSlot()) {
     // XMM register-memory swap.  We rely on having xmm0
     // available as a fixed scratch register.
     XMMRegister src = g.ToDoubleRegister(source);
@@ -2230,9 +2300,6 @@
 }
 
 
-void CodeGenerator::AddNopForSmiCodeInlining() { __ nop(); }
-
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/x64/instruction-codes-x64.h b/src/compiler/x64/instruction-codes-x64.h
index bd19386..638e77b 100644
--- a/src/compiler/x64/instruction-codes-x64.h
+++ b/src/compiler/x64/instruction-codes-x64.h
@@ -141,7 +141,10 @@
   V(X64Inc32)                      \
   V(X64Push)                       \
   V(X64Poke)                       \
-  V(X64StackCheck)
+  V(X64StackCheck)                 \
+  V(X64Xchgb)                      \
+  V(X64Xchgw)                      \
+  V(X64Xchgl)
 
 // Addressing modes represent the "shape" of inputs to an instruction.
 // Many instructions support multiple addressing modes. Addressing modes
diff --git a/src/compiler/x64/instruction-scheduler-x64.cc b/src/compiler/x64/instruction-scheduler-x64.cc
index 3c31965..6133bd8 100644
--- a/src/compiler/x64/instruction-scheduler-x64.cc
+++ b/src/compiler/x64/instruction-scheduler-x64.cc
@@ -168,6 +168,11 @@
     case kX64Poke:
       return kHasSideEffect;
 
+    case kX64Xchgb:
+    case kX64Xchgw:
+    case kX64Xchgl:
+      return kIsLoadOperation | kHasSideEffect;
+
 #define CASE(Name) case k##Name:
     COMMON_ARCH_OPCODE_LIST(CASE)
 #undef CASE
diff --git a/src/compiler/x64/instruction-selector-x64.cc b/src/compiler/x64/instruction-selector-x64.cc
index ea1d48b..47deb02 100644
--- a/src/compiler/x64/instruction-selector-x64.cc
+++ b/src/compiler/x64/instruction-selector-x64.cc
@@ -22,6 +22,7 @@
   bool CanBeImmediate(Node* node) {
     switch (node->opcode()) {
       case IrOpcode::kInt32Constant:
+      case IrOpcode::kRelocatableInt32Constant:
         return true;
       case IrOpcode::kInt64Constant: {
         const int64_t value = OpParameter<int64_t>(node);
@@ -36,11 +37,15 @@
     }
   }
 
-  bool CanBeMemoryOperand(InstructionCode opcode, Node* node, Node* input) {
+  bool CanBeMemoryOperand(InstructionCode opcode, Node* node, Node* input,
+                          int effect_level) {
     if (input->opcode() != IrOpcode::kLoad ||
         !selector()->CanCover(node, input)) {
       return false;
     }
+    if (effect_level != selector()->GetEffectLevel(input)) {
+      return false;
+    }
     MachineRepresentation rep =
         LoadRepresentationOf(input->op()).representation();
     switch (opcode) {
@@ -1140,15 +1145,8 @@
   VisitRO(this, node, kSSEFloat64ToFloat32);
 }
 
-
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      return VisitRR(this, node, kArchTruncateDoubleToI);
-    case TruncationMode::kRoundToZero:
-      return VisitRO(this, node, kSSEFloat64ToInt32);
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
+  VisitRR(this, node, kArchTruncateDoubleToI);
 }
 
 
@@ -1174,6 +1172,9 @@
   Emit(kX64Movl, g.DefineAsRegister(node), g.Use(value));
 }
 
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  VisitRO(this, node, kSSEFloat64ToInt32);
+}
 
 void InstructionSelector::VisitRoundInt32ToFloat32(Node* node) {
   X64OperandGenerator g(this);
@@ -1255,6 +1256,9 @@
   VisitFloatBinop(this, node, kAVXFloat32Sub, kSSEFloat32Sub);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  VisitFloatBinop(this, node, kAVXFloat32Sub, kSSEFloat32Sub);
+}
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   VisitFloatBinop(this, node, kAVXFloat32Mul, kSSEFloat32Mul);
@@ -1314,6 +1318,9 @@
   VisitFloatBinop(this, node, kAVXFloat64Sub, kSSEFloat64Sub);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  VisitFloatBinop(this, node, kAVXFloat64Sub, kSSEFloat64Sub);
+}
 
 void InstructionSelector::VisitFloat64Mul(Node* node) {
   VisitFloatBinop(this, node, kAVXFloat64Mul, kSSEFloat64Mul);
@@ -1545,16 +1552,22 @@
 
   // If one of the two inputs is an immediate, make sure it's on the right, or
   // if one of the two inputs is a memory operand, make sure it's on the left.
+  int effect_level = selector->GetEffectLevel(node);
+  if (cont->IsBranch()) {
+    effect_level = selector->GetEffectLevel(
+        cont->true_block()->PredecessorAt(0)->control_input());
+  }
+
   if ((!g.CanBeImmediate(right) && g.CanBeImmediate(left)) ||
-      (g.CanBeMemoryOperand(opcode, node, right) &&
-       !g.CanBeMemoryOperand(opcode, node, left))) {
+      (g.CanBeMemoryOperand(opcode, node, right, effect_level) &&
+       !g.CanBeMemoryOperand(opcode, node, left, effect_level))) {
     if (!node->op()->HasProperty(Operator::kCommutative)) cont->Commute();
     std::swap(left, right);
   }
 
   // Match immediates on right side of comparison.
   if (g.CanBeImmediate(right)) {
-    if (g.CanBeMemoryOperand(opcode, node, left)) {
+    if (g.CanBeMemoryOperand(opcode, node, left, effect_level)) {
       return VisitCompareWithMemoryOperand(selector, opcode, left,
                                            g.UseImmediate(right), cont);
     }
@@ -1563,7 +1576,7 @@
   }
 
   // Match memory operands on left side of comparison.
-  if (g.CanBeMemoryOperand(opcode, node, left)) {
+  if (g.CanBeMemoryOperand(opcode, node, left, effect_level)) {
     return VisitCompareWithMemoryOperand(selector, opcode, left,
                                          g.UseRegister(right), cont);
   }
@@ -2023,6 +2036,52 @@
        g.UseRegister(left), g.Use(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  DCHECK(load_rep.representation() == MachineRepresentation::kWord8 ||
+         load_rep.representation() == MachineRepresentation::kWord16 ||
+         load_rep.representation() == MachineRepresentation::kWord32);
+  USE(load_rep);
+  VisitLoad(node);
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  X64OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kX64Xchgb;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kX64Xchgw;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kX64Xchgl;
+      break;
+    default:
+      UNREACHABLE();
+      return;
+  }
+  AddressingMode addressing_mode;
+  InstructionOperand inputs[4];
+  size_t input_count = 0;
+  inputs[input_count++] = g.UseUniqueRegister(base);
+  if (g.CanBeImmediate(index)) {
+    inputs[input_count++] = g.UseImmediate(index);
+    addressing_mode = kMode_MRI;
+  } else {
+    inputs[input_count++] = g.UseUniqueRegister(index);
+    addressing_mode = kMode_MR1;
+  }
+  inputs[input_count++] = g.UseUniqueRegister(value);
+  InstructionCode code = opcode | AddressingModeField::encode(addressing_mode);
+  Emit(code, 0, static_cast<InstructionOperand*>(nullptr), input_count, inputs);
+}
 
 // static
 MachineOperatorBuilder::Flags
diff --git a/src/compiler/x87/code-generator-x87.cc b/src/compiler/x87/code-generator-x87.cc
index da7fdb4..0eef24f 100644
--- a/src/compiler/x87/code-generator-x87.cc
+++ b/src/compiler/x87/code-generator-x87.cc
@@ -42,7 +42,7 @@
       DCHECK(extra == 0);
       return Operand(ToRegister(op));
     }
-    DCHECK(op->IsStackSlot() || op->IsDoubleStackSlot());
+    DCHECK(op->IsStackSlot() || op->IsFPStackSlot());
     return SlotToOperand(AllocatedOperand::cast(op)->index(), extra);
   }
 
@@ -53,12 +53,18 @@
   }
 
   Operand HighOperand(InstructionOperand* op) {
-    DCHECK(op->IsDoubleStackSlot());
+    DCHECK(op->IsFPStackSlot());
     return ToOperand(op, kPointerSize);
   }
 
   Immediate ToImmediate(InstructionOperand* operand) {
     Constant constant = ToConstant(operand);
+    if (constant.type() == Constant::kInt32 &&
+        (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+         constant.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE)) {
+      return Immediate(reinterpret_cast<Address>(constant.ToInt32()),
+                       constant.rmode());
+    }
     switch (constant.type()) {
       case Constant::kInt32:
         return Immediate(constant.ToInt32());
@@ -369,11 +375,6 @@
   __ pop(ebp);
 }
 
-// For insert fninit/fld1 instructions after the Prologue
-thread_local bool is_block_0 = false;
-
-void CodeGenerator::AssembleSetupStackPointer() { is_block_0 = true; }
-
 void CodeGenerator::AssembleDeconstructActivationRecord(int stack_param_delta) {
   int sp_slot_delta = TailCallFrameStackSlotDelta(stack_param_delta);
   if (sp_slot_delta > 0) {
@@ -434,18 +435,12 @@
 }
 
 // Assembles an instruction after register allocation, producing machine code.
-void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
+CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
+    Instruction* instr) {
   X87OperandConverter i(this, instr);
   InstructionCode opcode = instr->opcode();
   ArchOpcode arch_opcode = ArchOpcodeField::decode(opcode);
 
-  // Workaround for CL #35139 (https://codereview.chromium.org/1775323002)
-  if (is_block_0) {
-    __ fninit();
-    __ fld1();
-    is_block_0 = false;
-  }
-
   switch (arch_opcode) {
     case kArchCallCodeObject: {
       if (FLAG_debug_code && FLAG_enable_slow_asserts) {
@@ -463,7 +458,7 @@
       }
       RecordCallPosition(instr);
       bool double_result =
-          instr->HasOutput() && instr->Output()->IsDoubleRegister();
+          instr->HasOutput() && instr->Output()->IsFPRegister();
       if (double_result) {
         __ lea(esp, Operand(esp, -kDoubleSize));
         __ fstp_d(Operand(esp, 0));
@@ -501,6 +496,15 @@
       frame_access_state()->ClearSPDelta();
       break;
     }
+    case kArchTailCallAddress: {
+      int stack_param_delta = i.InputInt32(instr->InputCount() - 1);
+      AssembleDeconstructActivationRecord(stack_param_delta);
+      CHECK(!HasImmediateInput(instr, 0));
+      Register reg = i.InputRegister(0);
+      __ jmp(reg);
+      frame_access_state()->ClearSPDelta();
+      break;
+    }
     case kArchCallJSFunction: {
       EnsureSpaceForLazyDeopt();
       Register func = i.InputRegister(0);
@@ -516,7 +520,7 @@
       __ call(FieldOperand(func, JSFunction::kCodeEntryOffset));
       RecordCallPosition(instr);
       bool double_result =
-          instr->HasOutput() && instr->Output()->IsDoubleRegister();
+          instr->HasOutput() && instr->Output()->IsFPRegister();
       if (double_result) {
         __ lea(esp, Operand(esp, -kDoubleSize));
         __ fstp_d(Operand(esp, 0));
@@ -577,7 +581,7 @@
         __ CallCFunction(func, num_parameters);
       }
       bool double_result =
-          instr->HasOutput() && instr->Output()->IsDoubleRegister();
+          instr->HasOutput() && instr->Output()->IsFPRegister();
       if (double_result) {
         __ lea(esp, Operand(esp, -kDoubleSize));
         __ fstp_d(Operand(esp, 0));
@@ -612,7 +616,7 @@
       int double_register_param_count = 0;
       int x87_layout = 0;
       for (size_t i = 0; i < instr->InputCount(); i++) {
-        if (instr->InputAt(i)->IsDoubleRegister()) {
+        if (instr->InputAt(i)->IsFPRegister()) {
           double_register_param_count++;
         }
       }
@@ -630,7 +634,9 @@
 
       Deoptimizer::BailoutType bailout_type =
           Deoptimizer::BailoutType(MiscField::decode(instr->opcode()));
-      AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      CodeGenResult result =
+          AssembleDeoptimizerCall(deopt_state_id, bailout_type);
+      if (result != kSuccess) return result;
       break;
     }
     case kArchRet:
@@ -650,11 +656,11 @@
       }
       break;
     case kArchTruncateDoubleToI: {
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fld_d(i.InputOperand(0));
       }
       __ TruncateX87TOSToI(i.OutputRegister());
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fstp(0);
       }
       break;
@@ -900,7 +906,7 @@
       uint64_t src = bit_cast<uint64_t>(src_constant.ToFloat64());
       uint32_t lower = static_cast<uint32_t>(src);
       uint32_t upper = static_cast<uint32_t>(src >> 32);
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ mov(MemOperand(esp, 0), Immediate(lower));
         __ mov(MemOperand(esp, kInt32Size), Immediate(upper));
@@ -1092,10 +1098,10 @@
       // Set the correct round mode in x87 control register
       __ X87SetRC((mode << 10));
 
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         InstructionOperand* input = instr->InputAt(0);
         USE(input);
-        DCHECK(input->IsDoubleStackSlot());
+        DCHECK(input->IsFPStackSlot());
         if (FLAG_debug_code && FLAG_enable_slow_asserts) {
           __ VerifyX87StackDepth(1);
         }
@@ -1333,13 +1339,13 @@
     }
     case kX87Float32ToFloat64: {
       InstructionOperand* input = instr->InputAt(0);
-      if (input->IsDoubleRegister()) {
+      if (input->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ fstp_s(MemOperand(esp, 0));
         __ fld_s(MemOperand(esp, 0));
         __ add(esp, Immediate(kDoubleSize));
       } else {
-        DCHECK(input->IsDoubleStackSlot());
+        DCHECK(input->IsFPStackSlot());
         if (FLAG_debug_code && FLAG_enable_slow_asserts) {
           __ VerifyX87StackDepth(1);
         }
@@ -1357,17 +1363,17 @@
       break;
     }
     case kX87Float32ToInt32: {
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fld_s(i.InputOperand(0));
       }
       __ TruncateX87TOSToI(i.OutputRegister(0));
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fstp(0);
       }
       break;
     }
     case kX87Float32ToUint32: {
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fld_s(i.InputOperand(0));
       }
       Label success;
@@ -1381,30 +1387,30 @@
       __ TruncateX87TOSToI(i.OutputRegister(0));
       __ or_(i.OutputRegister(0), Immediate(0x80000000));
       __ bind(&success);
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fstp(0);
       }
       break;
     }
     case kX87Float64ToInt32: {
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fld_d(i.InputOperand(0));
       }
       __ TruncateX87TOSToI(i.OutputRegister(0));
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fstp(0);
       }
       break;
     }
     case kX87Float64ToFloat32: {
       InstructionOperand* input = instr->InputAt(0);
-      if (input->IsDoubleRegister()) {
+      if (input->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ fstp_s(MemOperand(esp, 0));
         __ fld_s(MemOperand(esp, 0));
         __ add(esp, Immediate(kDoubleSize));
       } else {
-        DCHECK(input->IsDoubleStackSlot());
+        DCHECK(input->IsFPStackSlot());
         if (FLAG_debug_code && FLAG_enable_slow_asserts) {
           __ VerifyX87StackDepth(1);
         }
@@ -1419,7 +1425,7 @@
     }
     case kX87Float64ToUint32: {
       __ push_imm32(-2147483648);
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fld_d(i.InputOperand(0));
       }
       __ fild_s(Operand(esp, 0));
@@ -1429,13 +1435,13 @@
       __ add(esp, Immediate(kInt32Size));
       __ add(i.OutputRegister(), Immediate(0x80000000));
       __ fstp(0);
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         __ fstp(0);
       }
       break;
     }
     case kX87Float64ExtractHighWord32: {
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ fst_d(MemOperand(esp, 0));
         __ mov(i.OutputRegister(), MemOperand(esp, kDoubleSize / 2));
@@ -1443,13 +1449,13 @@
       } else {
         InstructionOperand* input = instr->InputAt(0);
         USE(input);
-        DCHECK(input->IsDoubleStackSlot());
+        DCHECK(input->IsFPStackSlot());
         __ mov(i.OutputRegister(), i.InputOperand(0, kDoubleSize / 2));
       }
       break;
     }
     case kX87Float64ExtractLowWord32: {
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ fst_d(MemOperand(esp, 0));
         __ mov(i.OutputRegister(), MemOperand(esp, 0));
@@ -1457,7 +1463,7 @@
       } else {
         InstructionOperand* input = instr->InputAt(0);
         USE(input);
-        DCHECK(input->IsDoubleStackSlot());
+        DCHECK(input->IsFPStackSlot());
         __ mov(i.OutputRegister(), i.InputOperand(0));
       }
       break;
@@ -1496,10 +1502,10 @@
       // Set the correct round mode in x87 control register
       __ X87SetRC((mode << 10));
 
-      if (!instr->InputAt(0)->IsDoubleRegister()) {
+      if (!instr->InputAt(0)->IsFPRegister()) {
         InstructionOperand* input = instr->InputAt(0);
         USE(input);
-        DCHECK(input->IsDoubleStackSlot());
+        DCHECK(input->IsFPStackSlot());
         if (FLAG_debug_code && FLAG_enable_slow_asserts) {
           __ VerifyX87StackDepth(1);
         }
@@ -1652,7 +1658,7 @@
       break;
     }
     case kX87Push:
-      if (instr->InputAt(0)->IsDoubleRegister()) {
+      if (instr->InputAt(0)->IsFPRegister()) {
         auto allocated = AllocatedOperand::cast(*instr->InputAt(0));
         if (allocated.representation() == MachineRepresentation::kFloat32) {
           __ sub(esp, Immediate(kDoubleSize));
@@ -1663,7 +1669,7 @@
           __ fst_d(Operand(esp, 0));
         }
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
-      } else if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      } else if (instr->InputAt(0)->IsFPStackSlot()) {
         auto allocated = AllocatedOperand::cast(*instr->InputAt(0));
         if (allocated.representation() == MachineRepresentation::kFloat32) {
           __ sub(esp, Immediate(kDoubleSize));
@@ -1693,12 +1699,30 @@
       }
       break;
     }
+    case kX87Xchgb: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchg_b(i.InputRegister(index), operand);
+      break;
+    }
+    case kX87Xchgw: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchg_w(i.InputRegister(index), operand);
+      break;
+    }
+    case kX87Xchgl: {
+      size_t index = 0;
+      Operand operand = i.MemoryOperand(&index);
+      __ xchg(i.InputRegister(index), operand);
+      break;
+    }
     case kX87PushFloat32:
       __ lea(esp, Operand(esp, -kFloatSize));
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ fld_s(i.InputOperand(0));
         __ fstp_s(MemOperand(esp, 0));
-      } else if (instr->InputAt(0)->IsDoubleRegister()) {
+      } else if (instr->InputAt(0)->IsFPRegister()) {
         __ fst_s(MemOperand(esp, 0));
       } else {
         UNREACHABLE();
@@ -1706,10 +1730,10 @@
       break;
     case kX87PushFloat64:
       __ lea(esp, Operand(esp, -kDoubleSize));
-      if (instr->InputAt(0)->IsDoubleStackSlot()) {
+      if (instr->InputAt(0)->IsFPStackSlot()) {
         __ fld_d(i.InputOperand(0));
         __ fstp_d(MemOperand(esp, 0));
-      } else if (instr->InputAt(0)->IsDoubleRegister()) {
+      } else if (instr->InputAt(0)->IsFPRegister()) {
         __ fst_d(MemOperand(esp, 0));
       } else {
         UNREACHABLE();
@@ -1761,7 +1785,18 @@
     case kCheckedStoreWord64:
       UNREACHABLE();  // currently unsupported checked int64 load/store.
       break;
+    case kAtomicLoadInt8:
+    case kAtomicLoadUint8:
+    case kAtomicLoadInt16:
+    case kAtomicLoadUint16:
+    case kAtomicLoadWord32:
+    case kAtomicStoreWord8:
+    case kAtomicStoreWord16:
+    case kAtomicStoreWord32:
+      UNREACHABLE();  // Won't be generated by instruction selector.
+      break;
   }
+  return kSuccess;
 }  // NOLINT(readability/fn_size)
 
 
@@ -1837,7 +1872,7 @@
     int double_register_param_count = 0;
     int x87_layout = 0;
     for (size_t i = 0; i < instr->InputCount(); i++) {
-      if (instr->InputAt(i)->IsDoubleRegister()) {
+      if (instr->InputAt(i)->IsFPRegister()) {
         double_register_param_count++;
       }
     }
@@ -1971,12 +2006,13 @@
   __ jmp(Operand::JumpTable(input, times_4, table));
 }
 
-
-void CodeGenerator::AssembleDeoptimizerCall(
+CodeGenerator::CodeGenResult CodeGenerator::AssembleDeoptimizerCall(
     int deoptimization_id, Deoptimizer::BailoutType bailout_type) {
   Address deopt_entry = Deoptimizer::GetDeoptimizationEntry(
       isolate(), deoptimization_id, bailout_type);
+  if (deopt_entry == nullptr) return kTooManyDeoptimizationBailouts;
   __ call(deopt_entry, RelocInfo::RUNTIME_ENTRY);
+  return kSuccess;
 }
 
 
@@ -2107,8 +2143,25 @@
 //                                            | RET | args |  caller frame |
 //                                            ^ esp                        ^ ebp
 
+void CodeGenerator::FinishFrame(Frame* frame) {
+  CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
+  const RegList saves = descriptor->CalleeSavedRegisters();
+  if (saves != 0) {  // Save callee-saved registers.
+    DCHECK(!info()->is_osr());
+    int pushed = 0;
+    for (int i = Register::kNumRegisters - 1; i >= 0; i--) {
+      if (!((1 << i) & saves)) continue;
+      ++pushed;
+    }
+    frame->AllocateSavedCalleeRegisterSlots(pushed);
+  }
 
-void CodeGenerator::AssemblePrologue() {
+  // Initailize FPU state.
+  __ fninit();
+  __ fld1();
+}
+
+void CodeGenerator::AssembleConstructFrame() {
   CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (frame_access_state()->has_frame()) {
     if (descriptor->IsCFunctionCall()) {
@@ -2120,7 +2173,9 @@
       __ StubPrologue(info()->GetOutputStackFrameType());
     }
   }
-  int stack_shrink_slots = frame()->GetSpillSlotCount();
+
+  int shrink_slots = frame()->GetSpillSlotCount();
+
   if (info()->is_osr()) {
     // TurboFan OSR-compiled functions cannot be entered directly.
     __ Abort(kShouldNotDirectlyEnterOsrFunction);
@@ -2131,7 +2186,7 @@
     // remaining stack slots.
     if (FLAG_code_comments) __ RecordComment("-- OSR entrypoint --");
     osr_pc_offset_ = __ pc_offset();
-    stack_shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
+    shrink_slots -= OsrHelper(info()).UnoptimizedFrameSlots();
 
     // Initailize FPU state.
     __ fninit();
@@ -2139,8 +2194,8 @@
   }
 
   const RegList saves = descriptor->CalleeSavedRegisters();
-  if (stack_shrink_slots > 0) {
-    __ sub(esp, Immediate(stack_shrink_slots * kPointerSize));
+  if (shrink_slots > 0) {
+    __ sub(esp, Immediate(shrink_slots * kPointerSize));
   }
 
   if (saves != 0) {  // Save callee-saved registers.
@@ -2151,7 +2206,6 @@
       __ push(Register::from_code(i));
       ++pushed;
     }
-    frame()->AllocateSavedCalleeRegisterSlots(pushed);
   }
 }
 
@@ -2263,7 +2317,7 @@
     } else if (src_constant.type() == Constant::kFloat32) {
       // TODO(turbofan): Can we do better here?
       uint32_t src = bit_cast<uint32_t>(src_constant.ToFloat32());
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         __ sub(esp, Immediate(kInt32Size));
         __ mov(MemOperand(esp, 0), Immediate(src));
         // always only push one value into the x87 stack.
@@ -2271,7 +2325,7 @@
         __ fld_s(MemOperand(esp, 0));
         __ add(esp, Immediate(kInt32Size));
       } else {
-        DCHECK(destination->IsDoubleStackSlot());
+        DCHECK(destination->IsFPStackSlot());
         Operand dst = g.ToOperand(destination);
         __ Move(dst, Immediate(src));
       }
@@ -2280,7 +2334,7 @@
       uint64_t src = bit_cast<uint64_t>(src_constant.ToFloat64());
       uint32_t lower = static_cast<uint32_t>(src);
       uint32_t upper = static_cast<uint32_t>(src >> 32);
-      if (destination->IsDoubleRegister()) {
+      if (destination->IsFPRegister()) {
         __ sub(esp, Immediate(kDoubleSize));
         __ mov(MemOperand(esp, 0), Immediate(lower));
         __ mov(MemOperand(esp, kInt32Size), Immediate(upper));
@@ -2289,15 +2343,15 @@
         __ fld_d(MemOperand(esp, 0));
         __ add(esp, Immediate(kDoubleSize));
       } else {
-        DCHECK(destination->IsDoubleStackSlot());
+        DCHECK(destination->IsFPStackSlot());
         Operand dst0 = g.ToOperand(destination);
         Operand dst1 = g.HighOperand(destination);
         __ Move(dst0, Immediate(lower));
         __ Move(dst1, Immediate(upper));
       }
     }
-  } else if (source->IsDoubleRegister()) {
-    DCHECK(destination->IsDoubleStackSlot());
+  } else if (source->IsFPRegister()) {
+    DCHECK(destination->IsFPStackSlot());
     Operand dst = g.ToOperand(destination);
     auto allocated = AllocatedOperand::cast(*source);
     switch (allocated.representation()) {
@@ -2310,11 +2364,11 @@
       default:
         UNREACHABLE();
     }
-  } else if (source->IsDoubleStackSlot()) {
-    DCHECK(destination->IsDoubleRegister() || destination->IsDoubleStackSlot());
+  } else if (source->IsFPStackSlot()) {
+    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     Operand src = g.ToOperand(source);
     auto allocated = AllocatedOperand::cast(*source);
-    if (destination->IsDoubleRegister()) {
+    if (destination->IsFPRegister()) {
       // always only push one value into the x87 stack.
       __ fstp(0);
       switch (allocated.representation()) {
@@ -2373,9 +2427,9 @@
     frame_access_state()->IncreaseSPDelta(-1);
     Operand src2 = g.ToOperand(source);
     __ pop(src2);
-  } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
+  } else if (source->IsFPRegister() && destination->IsFPRegister()) {
     UNREACHABLE();
-  } else if (source->IsDoubleRegister() && destination->IsDoubleStackSlot()) {
+  } else if (source->IsFPRegister() && destination->IsFPStackSlot()) {
     auto allocated = AllocatedOperand::cast(*source);
     switch (allocated.representation()) {
       case MachineRepresentation::kFloat32:
@@ -2391,7 +2445,7 @@
       default:
         UNREACHABLE();
     }
-  } else if (source->IsDoubleStackSlot() && destination->IsDoubleStackSlot()) {
+  } else if (source->IsFPStackSlot() && destination->IsFPStackSlot()) {
     auto allocated = AllocatedOperand::cast(*source);
     switch (allocated.representation()) {
       case MachineRepresentation::kFloat32:
@@ -2423,9 +2477,6 @@
 }
 
 
-void CodeGenerator::AddNopForSmiCodeInlining() { __ nop(); }
-
-
 void CodeGenerator::EnsureSpaceForLazyDeopt() {
   if (!info()->ShouldEnsureSpaceForLazyDeopt()) {
     return;
diff --git a/src/compiler/x87/instruction-codes-x87.h b/src/compiler/x87/instruction-codes-x87.h
index d70a737..0cf9f35 100644
--- a/src/compiler/x87/instruction-codes-x87.h
+++ b/src/compiler/x87/instruction-codes-x87.h
@@ -96,7 +96,10 @@
   V(X87PushFloat64)                \
   V(X87PushFloat32)                \
   V(X87Poke)                       \
-  V(X87StackCheck)
+  V(X87StackCheck)                 \
+  V(X87Xchgb)                      \
+  V(X87Xchgw)                      \
+  V(X87Xchgl)
 
 // Addressing modes represent the "shape" of inputs to an instruction.
 // Many instructions support multiple addressing modes. Addressing modes
diff --git a/src/compiler/x87/instruction-selector-x87.cc b/src/compiler/x87/instruction-selector-x87.cc
index e4d085e..a99e7a6 100644
--- a/src/compiler/x87/instruction-selector-x87.cc
+++ b/src/compiler/x87/instruction-selector-x87.cc
@@ -27,11 +27,15 @@
     return DefineAsRegister(node);
   }
 
-  bool CanBeMemoryOperand(InstructionCode opcode, Node* node, Node* input) {
+  bool CanBeMemoryOperand(InstructionCode opcode, Node* node, Node* input,
+                          int effect_level) {
     if (input->opcode() != IrOpcode::kLoad ||
         !selector()->CanCover(node, input)) {
       return false;
     }
+    if (effect_level != selector()->GetEffectLevel(input)) {
+      return false;
+    }
     MachineRepresentation rep =
         LoadRepresentationOf(input->op()).representation();
     switch (opcode) {
@@ -60,13 +64,20 @@
       case IrOpcode::kInt32Constant:
       case IrOpcode::kNumberConstant:
       case IrOpcode::kExternalConstant:
+      case IrOpcode::kRelocatableInt32Constant:
+      case IrOpcode::kRelocatableInt64Constant:
         return true;
       case IrOpcode::kHeapConstant: {
+// TODO(bmeurer): We must not dereference handles concurrently. If we
+// really have to this here, then we need to find a way to put this
+// information on the HeapConstant node already.
+#if 0
         // Constants in new space cannot be used as immediates in V8 because
         // the GC does not scan code objects when collecting the new generation.
         Handle<HeapObject> value = OpParameter<Handle<HeapObject>>(node);
         Isolate* isolate = value->GetIsolate();
         return !isolate->heap()->InNewSpace(*value);
+#endif
       }
       default:
         return false;
@@ -842,21 +853,15 @@
        g.Use(node->InputAt(0)));
 }
 
-
-void InstructionSelector::VisitTruncateFloat64ToInt32(Node* node) {
+void InstructionSelector::VisitTruncateFloat64ToWord32(Node* node) {
   X87OperandGenerator g(this);
+  Emit(kArchTruncateDoubleToI, g.DefineAsRegister(node),
+       g.Use(node->InputAt(0)));
+}
 
-  switch (TruncationModeOf(node->op())) {
-    case TruncationMode::kJavaScript:
-      Emit(kArchTruncateDoubleToI, g.DefineAsRegister(node),
-           g.Use(node->InputAt(0)));
-      return;
-    case TruncationMode::kRoundToZero:
-      Emit(kX87Float64ToInt32, g.DefineAsRegister(node),
-           g.Use(node->InputAt(0)));
-      return;
-  }
-  UNREACHABLE();
+void InstructionSelector::VisitRoundFloat64ToInt32(Node* node) {
+  X87OperandGenerator g(this);
+  Emit(kX87Float64ToInt32, g.DefineAsRegister(node), g.Use(node->InputAt(0)));
 }
 
 
@@ -896,6 +901,12 @@
   Emit(kX87Float32Sub, g.DefineAsFixed(node, stX_0), 0, nullptr);
 }
 
+void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
+  X87OperandGenerator g(this);
+  Emit(kX87PushFloat32, g.NoOutput(), g.Use(node->InputAt(0)));
+  Emit(kX87PushFloat32, g.NoOutput(), g.Use(node->InputAt(1)));
+  Emit(kX87Float32Sub, g.DefineAsFixed(node, stX_0), 0, nullptr);
+}
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
   X87OperandGenerator g(this);
@@ -904,6 +915,13 @@
   Emit(kX87Float64Sub, g.DefineAsFixed(node, stX_0), 0, nullptr);
 }
 
+void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
+  X87OperandGenerator g(this);
+  Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(0)));
+  Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(1)));
+  Emit(kX87Float64Sub, g.DefineAsFixed(node, stX_0), 0, nullptr);
+}
+
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
   X87OperandGenerator g(this);
@@ -1254,18 +1272,24 @@
 
   InstructionCode narrowed_opcode = TryNarrowOpcodeSize(opcode, left, right);
 
+  int effect_level = selector->GetEffectLevel(node);
+  if (cont->IsBranch()) {
+    effect_level = selector->GetEffectLevel(
+        cont->true_block()->PredecessorAt(0)->control_input());
+  }
+
   // If one of the two inputs is an immediate, make sure it's on the right, or
   // if one of the two inputs is a memory operand, make sure it's on the left.
   if ((!g.CanBeImmediate(right) && g.CanBeImmediate(left)) ||
-      (g.CanBeMemoryOperand(narrowed_opcode, node, right) &&
-       !g.CanBeMemoryOperand(narrowed_opcode, node, left))) {
+      (g.CanBeMemoryOperand(narrowed_opcode, node, right, effect_level) &&
+       !g.CanBeMemoryOperand(narrowed_opcode, node, left, effect_level))) {
     if (!node->op()->HasProperty(Operator::kCommutative)) cont->Commute();
     std::swap(left, right);
   }
 
   // Match immediates on right side of comparison.
   if (g.CanBeImmediate(right)) {
-    if (g.CanBeMemoryOperand(opcode, node, left)) {
+    if (g.CanBeMemoryOperand(opcode, node, left, effect_level)) {
       // TODO(epertoso): we should use `narrowed_opcode' here once we match
       // immediates too.
       return VisitCompareWithMemoryOperand(selector, opcode, left,
@@ -1276,7 +1300,7 @@
   }
 
   // Match memory operands on left side of comparison.
-  if (g.CanBeMemoryOperand(narrowed_opcode, node, left)) {
+  if (g.CanBeMemoryOperand(narrowed_opcode, node, left, effect_level)) {
     bool needs_byte_register =
         narrowed_opcode == kX87Test8 || narrowed_opcode == kX87Cmp8;
     return VisitCompareWithMemoryOperand(
@@ -1588,6 +1612,52 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitAtomicLoad(Node* node) {
+  LoadRepresentation load_rep = LoadRepresentationOf(node->op());
+  DCHECK(load_rep.representation() == MachineRepresentation::kWord8 ||
+         load_rep.representation() == MachineRepresentation::kWord16 ||
+         load_rep.representation() == MachineRepresentation::kWord32);
+  USE(load_rep);
+  VisitLoad(node);
+}
+
+void InstructionSelector::VisitAtomicStore(Node* node) {
+  X87OperandGenerator g(this);
+  Node* base = node->InputAt(0);
+  Node* index = node->InputAt(1);
+  Node* value = node->InputAt(2);
+
+  MachineRepresentation rep = AtomicStoreRepresentationOf(node->op());
+  ArchOpcode opcode = kArchNop;
+  switch (rep) {
+    case MachineRepresentation::kWord8:
+      opcode = kX87Xchgb;
+      break;
+    case MachineRepresentation::kWord16:
+      opcode = kX87Xchgw;
+      break;
+    case MachineRepresentation::kWord32:
+      opcode = kX87Xchgl;
+      break;
+    default:
+      UNREACHABLE();
+      break;
+  }
+  AddressingMode addressing_mode;
+  InstructionOperand inputs[4];
+  size_t input_count = 0;
+  inputs[input_count++] = g.UseUniqueRegister(base);
+  if (g.CanBeImmediate(index)) {
+    inputs[input_count++] = g.UseImmediate(index);
+    addressing_mode = kMode_MRI;
+  } else {
+    inputs[input_count++] = g.UseUniqueRegister(index);
+    addressing_mode = kMode_MR1;
+  }
+  inputs[input_count++] = g.UseUniqueRegister(value);
+  InstructionCode code = opcode | AddressingModeField::encode(addressing_mode);
+  Emit(code, 0, nullptr, input_count, inputs);
+}
 
 // static
 MachineOperatorBuilder::Flags
diff --git a/src/context-measure.cc b/src/context-measure.cc
index 3423629..00c11ee 100644
--- a/src/context-measure.cc
+++ b/src/context-measure.cc
@@ -18,7 +18,7 @@
       count_(0),
       size_(0) {
   DCHECK(context_->IsNativeContext());
-  Object* next_link = context_->get(Context::NEXT_CONTEXT_LINK);
+  Object* next_link = context_->next_context_link();
   MeasureObject(context_);
   MeasureDeferredObjects();
   context_->set(Context::NEXT_CONTEXT_LINK, next_link);
@@ -37,10 +37,10 @@
 
 
 void ContextMeasure::MeasureObject(HeapObject* object) {
-  if (back_reference_map_.Lookup(object).is_valid()) return;
+  if (reference_map_.Lookup(object).is_valid()) return;
   if (root_index_map_.Lookup(object) != RootIndexMap::kInvalidRootIndex) return;
   if (IsShared(object)) return;
-  back_reference_map_.Add(object, BackReference::DummyReference());
+  reference_map_.Add(object, SerializerReference::DummyReference());
   recursion_depth_++;
   if (recursion_depth_ > kMaxRecursion) {
     deferred_objects_.Add(object);
diff --git a/src/context-measure.h b/src/context-measure.h
index 665c547..7e94f2c 100644
--- a/src/context-measure.h
+++ b/src/context-measure.h
@@ -29,7 +29,7 @@
 
   Context* context_;
 
-  BackReferenceMap back_reference_map_;
+  SerializerReferenceMap reference_map_;
   RootIndexMap root_index_map_;
 
   static const int kMaxRecursion = 16;
diff --git a/src/contexts-inl.h b/src/contexts-inl.h
index 344d5db..5d62a04 100644
--- a/src/contexts-inl.h
+++ b/src/contexts-inl.h
@@ -56,6 +56,7 @@
 }
 void Context::set_previous(Context* context) { set(PREVIOUS_INDEX, context); }
 
+Object* Context::next_context_link() { return get(Context::NEXT_CONTEXT_LINK); }
 
 bool Context::has_extension() { return !extension()->IsTheHole(); }
 HeapObject* Context::extension() {
diff --git a/src/contexts.cc b/src/contexts.cc
index 67a9fea..392a3cc 100644
--- a/src/contexts.cc
+++ b/src/contexts.cc
@@ -184,29 +184,24 @@
   switch (mode) {
     case VAR:
       *attributes = NONE;
-      *binding_flags = MUTABLE_IS_INITIALIZED;
+      *binding_flags = BINDING_IS_INITIALIZED;
       break;
     case LET:
       *attributes = NONE;
       *binding_flags = (init_flag == kNeedsInitialization)
-                           ? MUTABLE_CHECK_INITIALIZED
-                           : MUTABLE_IS_INITIALIZED;
+                           ? BINDING_CHECK_INITIALIZED
+                           : BINDING_IS_INITIALIZED;
       break;
     case CONST_LEGACY:
+      DCHECK_EQ(kCreatedInitialized, init_flag);
       *attributes = READ_ONLY;
-      *binding_flags = (init_flag == kNeedsInitialization)
-                           ? IMMUTABLE_CHECK_INITIALIZED
-                           : IMMUTABLE_IS_INITIALIZED;
+      *binding_flags = BINDING_IS_INITIALIZED;
       break;
     case CONST:
       *attributes = READ_ONLY;
       *binding_flags = (init_flag == kNeedsInitialization)
-                           ? IMMUTABLE_CHECK_INITIALIZED_HARMONY
-                           : IMMUTABLE_IS_INITIALIZED_HARMONY;
-      break;
-    case IMPORT:
-      // TODO(ES6)
-      UNREACHABLE();
+                           ? BINDING_CHECK_INITIALIZED
+                           : BINDING_IS_INITIALIZED;
       break;
     case DYNAMIC:
     case DYNAMIC_GLOBAL:
@@ -362,8 +357,7 @@
           *index = function_index;
           *attributes = READ_ONLY;
           DCHECK(mode == CONST_LEGACY || mode == CONST);
-          *binding_flags = (mode == CONST_LEGACY)
-              ? IMMUTABLE_IS_INITIALIZED : IMMUTABLE_IS_INITIALIZED_HARMONY;
+          *binding_flags = BINDING_IS_INITIALIZED;
           return context;
         }
       }
@@ -376,7 +370,7 @@
         }
         *index = Context::THROWN_OBJECT_INDEX;
         *attributes = NONE;
-        *binding_flags = MUTABLE_IS_INITIALIZED;
+        *binding_flags = BINDING_IS_INITIALIZED;
         return context;
       }
     } else if (context->IsDebugEvaluateContext()) {
@@ -466,7 +460,7 @@
       found = true;
       break;
     }
-    context = Context::cast(context)->get(Context::NEXT_CONTEXT_LINK);
+    context = Context::cast(context)->next_context_link();
   }
   CHECK(found);
 #endif
diff --git a/src/contexts.h b/src/contexts.h
index 90fb9a4..1161885 100644
--- a/src/contexts.h
+++ b/src/contexts.h
@@ -30,44 +30,34 @@
 // their state is changed by the InitializeImmutableBinding method. The
 // BindingFlags enum represents information if a binding has definitely been
 // initialized. A mutable binding does not need to be checked and thus has
-// the BindingFlag MUTABLE_IS_INITIALIZED.
+// the BindingFlag BINDING_IS_INITIALIZED.
 //
-// There are two possibilities for immutable bindings
-//  * 'const' declared variables. They are initialized when evaluating the
-//    corresponding declaration statement. They need to be checked for being
-//    initialized and thus get the flag IMMUTABLE_CHECK_INITIALIZED.
+// There is one possibility for legacy immutable bindings:
 //  * The function name of a named function literal. The binding is immediately
 //    initialized when entering the function and thus does not need to be
-//    checked. it gets the BindingFlag IMMUTABLE_IS_INITIALIZED.
-// Accessing an uninitialized binding produces the undefined value.
+//    checked. it gets the BindingFlag BINDING_IS_INITIALIZED.
 //
 // The harmony proposal for block scoped bindings also introduces the
 // uninitialized state for mutable bindings.
 //  * A 'let' declared variable. They are initialized when evaluating the
 //    corresponding declaration statement. They need to be checked for being
-//    initialized and thus get the flag MUTABLE_CHECK_INITIALIZED.
+//    initialized and thus get the flag BINDING_CHECK_INITIALIZED.
 //  * A 'var' declared variable. It is initialized immediately upon creation
 //    and thus doesn't need to be checked. It gets the flag
-//    MUTABLE_IS_INITIALIZED.
+//    BINDING_IS_INITIALIZED.
 //  * Catch bound variables, function parameters and variables introduced by
 //    function declarations are initialized immediately and do not need to be
-//    checked. Thus they get the flag MUTABLE_IS_INITIALIZED.
-// Immutable bindings in harmony mode get the _HARMONY flag variants. Accessing
-// an uninitialized binding produces a reference error.
+//    checked. Thus they get the flag BINDING_IS_INITIALIZED.
+// Accessing an uninitialized binding produces a reference error.
 //
 // In V8 uninitialized bindings are set to the hole value upon creation and set
 // to a different value upon initialization.
 enum BindingFlags {
-  MUTABLE_IS_INITIALIZED,
-  MUTABLE_CHECK_INITIALIZED,
-  IMMUTABLE_IS_INITIALIZED,
-  IMMUTABLE_CHECK_INITIALIZED,
-  IMMUTABLE_IS_INITIALIZED_HARMONY,
-  IMMUTABLE_CHECK_INITIALIZED_HARMONY,
+  BINDING_IS_INITIALIZED,
+  BINDING_CHECK_INITIALIZED,
   MISSING_BINDING
 };
 
-
 // Heap-allocated activation contexts.
 //
 // Contexts are implemented as FixedArray objects; the Context
@@ -77,79 +67,76 @@
 // must always be allocated via Heap::AllocateContext() or
 // Factory::NewContext.
 
-#define NATIVE_CONTEXT_INTRINSIC_FUNCTIONS(V)                             \
-  V(IS_ARRAYLIKE, JSFunction, is_arraylike)                               \
-  V(GET_TEMPLATE_CALL_SITE_INDEX, JSFunction, get_template_call_site)     \
-  V(MAKE_RANGE_ERROR_INDEX, JSFunction, make_range_error)                 \
-  V(MAKE_TYPE_ERROR_INDEX, JSFunction, make_type_error)                   \
-  V(OBJECT_FREEZE, JSFunction, object_freeze)                             \
-  V(OBJECT_IS_EXTENSIBLE, JSFunction, object_is_extensible)               \
-  V(OBJECT_IS_FROZEN, JSFunction, object_is_frozen)                       \
-  V(OBJECT_IS_SEALED, JSFunction, object_is_sealed)                       \
-  V(OBJECT_KEYS, JSFunction, object_keys)                                 \
-  V(REFLECT_APPLY_INDEX, JSFunction, reflect_apply)                       \
-  V(REFLECT_CONSTRUCT_INDEX, JSFunction, reflect_construct)               \
-  V(REFLECT_DEFINE_PROPERTY_INDEX, JSFunction, reflect_define_property)   \
-  V(REFLECT_DELETE_PROPERTY_INDEX, JSFunction, reflect_delete_property)   \
-  V(SPREAD_ARGUMENTS_INDEX, JSFunction, spread_arguments)                 \
-  V(SPREAD_ITERABLE_INDEX, JSFunction, spread_iterable)                   \
-  V(ORDINARY_HAS_INSTANCE_INDEX, JSFunction, ordinary_has_instance)       \
-  V(MATH_FLOOR, JSFunction, math_floor)                                   \
+#define NATIVE_CONTEXT_INTRINSIC_FUNCTIONS(V)                           \
+  V(IS_ARRAYLIKE, JSFunction, is_arraylike)                             \
+  V(GET_TEMPLATE_CALL_SITE_INDEX, JSFunction, get_template_call_site)   \
+  V(MAKE_RANGE_ERROR_INDEX, JSFunction, make_range_error)               \
+  V(MAKE_TYPE_ERROR_INDEX, JSFunction, make_type_error)                 \
+  V(OBJECT_DEFINE_PROPERTIES, JSFunction, object_define_properties)     \
+  V(OBJECT_DEFINE_PROPERTY, JSFunction, object_define_property)         \
+  V(OBJECT_FREEZE, JSFunction, object_freeze)                           \
+  V(OBJECT_GET_PROTOTYPE_OF, JSFunction, object_get_prototype_of)       \
+  V(OBJECT_IS_EXTENSIBLE, JSFunction, object_is_extensible)             \
+  V(OBJECT_IS_FROZEN, JSFunction, object_is_frozen)                     \
+  V(OBJECT_IS_SEALED, JSFunction, object_is_sealed)                     \
+  V(OBJECT_KEYS, JSFunction, object_keys)                               \
+  V(REFLECT_APPLY_INDEX, JSFunction, reflect_apply)                     \
+  V(REFLECT_CONSTRUCT_INDEX, JSFunction, reflect_construct)             \
+  V(REFLECT_DEFINE_PROPERTY_INDEX, JSFunction, reflect_define_property) \
+  V(REFLECT_DELETE_PROPERTY_INDEX, JSFunction, reflect_delete_property) \
+  V(SPREAD_ARGUMENTS_INDEX, JSFunction, spread_arguments)               \
+  V(SPREAD_ITERABLE_INDEX, JSFunction, spread_iterable)                 \
+  V(MATH_FLOOR, JSFunction, math_floor)                                 \
   V(MATH_SQRT, JSFunction, math_sqrt)
 
-#define NATIVE_CONTEXT_IMPORTED_FIELDS(V)                                     \
-  V(ARRAY_CONCAT_INDEX, JSFunction, array_concat)                             \
-  V(ARRAY_POP_INDEX, JSFunction, array_pop)                                   \
-  V(ARRAY_PUSH_INDEX, JSFunction, array_push)                                 \
-  V(ARRAY_SHIFT_INDEX, JSFunction, array_shift)                               \
-  V(ARRAY_SPLICE_INDEX, JSFunction, array_splice)                             \
-  V(ARRAY_SLICE_INDEX, JSFunction, array_slice)                               \
-  V(ARRAY_UNSHIFT_INDEX, JSFunction, array_unshift)                           \
-  V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator)           \
-  V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap)                     \
-  V(ERROR_FUNCTION_INDEX, JSFunction, error_function)                         \
-  V(EVAL_ERROR_FUNCTION_INDEX, JSFunction, eval_error_function)               \
-  V(GET_STACK_TRACE_LINE_INDEX, JSFunction, get_stack_trace_line_fun)         \
-  V(GLOBAL_EVAL_FUN_INDEX, JSFunction, global_eval_fun)                       \
-  V(JSON_SERIALIZE_ADAPTER_INDEX, JSFunction, json_serialize_adapter)         \
-  V(MAKE_ERROR_FUNCTION_INDEX, JSFunction, make_error_function)               \
-  V(MAP_DELETE_METHOD_INDEX, JSFunction, map_delete)                          \
-  V(MAP_GET_METHOD_INDEX, JSFunction, map_get)                                \
-  V(MAP_HAS_METHOD_INDEX, JSFunction, map_has)                                \
-  V(MAP_SET_METHOD_INDEX, JSFunction, map_set)                                \
-  V(MATH_POW_METHOD_INDEX, JSFunction, math_pow)                              \
-  V(MESSAGE_GET_COLUMN_NUMBER_INDEX, JSFunction, message_get_column_number)   \
-  V(MESSAGE_GET_LINE_NUMBER_INDEX, JSFunction, message_get_line_number)       \
-  V(MESSAGE_GET_SOURCE_LINE_INDEX, JSFunction, message_get_source_line)       \
-  V(NATIVE_OBJECT_GET_NOTIFIER_INDEX, JSFunction, native_object_get_notifier) \
-  V(NATIVE_OBJECT_NOTIFIER_PERFORM_CHANGE, JSFunction,                        \
-    native_object_notifier_perform_change)                                    \
-  V(NATIVE_OBJECT_OBSERVE_INDEX, JSFunction, native_object_observe)           \
-  V(NO_SIDE_EFFECTS_TO_STRING_FUN_INDEX, JSFunction,                          \
-    no_side_effects_to_string_fun)                                            \
-  V(OBJECT_VALUE_OF, JSFunction, object_value_of)                             \
-  V(OBJECT_TO_STRING, JSFunction, object_to_string)                           \
-  V(OBSERVERS_BEGIN_SPLICE_INDEX, JSFunction, observers_begin_perform_splice) \
-  V(OBSERVERS_END_SPLICE_INDEX, JSFunction, observers_end_perform_splice)     \
-  V(OBSERVERS_ENQUEUE_SPLICE_INDEX, JSFunction, observers_enqueue_splice)     \
-  V(OBSERVERS_NOTIFY_CHANGE_INDEX, JSFunction, observers_notify_change)       \
-  V(PROMISE_CATCH_INDEX, JSFunction, promise_catch)                           \
-  V(PROMISE_CHAIN_INDEX, JSFunction, promise_chain)                           \
-  V(PROMISE_CREATE_INDEX, JSFunction, promise_create)                         \
-  V(PROMISE_FUNCTION_INDEX, JSFunction, promise_function)                     \
-  V(PROMISE_HAS_USER_DEFINED_REJECT_HANDLER_INDEX, JSFunction,                \
-    promise_has_user_defined_reject_handler)                                  \
-  V(PROMISE_REJECT_INDEX, JSFunction, promise_reject)                         \
-  V(PROMISE_RESOLVE_INDEX, JSFunction, promise_resolve)                       \
-  V(PROMISE_THEN_INDEX, JSFunction, promise_then)                             \
-  V(RANGE_ERROR_FUNCTION_INDEX, JSFunction, range_error_function)             \
-  V(REFERENCE_ERROR_FUNCTION_INDEX, JSFunction, reference_error_function)     \
-  V(SET_ADD_METHOD_INDEX, JSFunction, set_add)                                \
-  V(SET_DELETE_METHOD_INDEX, JSFunction, set_delete)                          \
-  V(SET_HAS_METHOD_INDEX, JSFunction, set_has)                                \
-  V(STACK_OVERFLOW_BOILERPLATE_INDEX, JSObject, stack_overflow_boilerplate)   \
-  V(SYNTAX_ERROR_FUNCTION_INDEX, JSFunction, syntax_error_function)           \
-  V(TYPE_ERROR_FUNCTION_INDEX, JSFunction, type_error_function)               \
+#define NATIVE_CONTEXT_IMPORTED_FIELDS(V)                                   \
+  V(ARRAY_CONCAT_INDEX, JSFunction, array_concat)                           \
+  V(ARRAY_POP_INDEX, JSFunction, array_pop)                                 \
+  V(ARRAY_PUSH_INDEX, JSFunction, array_push)                               \
+  V(ARRAY_SHIFT_INDEX, JSFunction, array_shift)                             \
+  V(ARRAY_SPLICE_INDEX, JSFunction, array_splice)                           \
+  V(ARRAY_SLICE_INDEX, JSFunction, array_slice)                             \
+  V(ARRAY_UNSHIFT_INDEX, JSFunction, array_unshift)                         \
+  V(ARRAY_VALUES_ITERATOR_INDEX, JSFunction, array_values_iterator)         \
+  V(ASYNC_FUNCTION_AWAIT_INDEX, JSFunction, async_function_await)           \
+  V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap)                   \
+  V(ERROR_FUNCTION_INDEX, JSFunction, error_function)                       \
+  V(EVAL_ERROR_FUNCTION_INDEX, JSFunction, eval_error_function)             \
+  V(GET_STACK_TRACE_LINE_INDEX, JSFunction, get_stack_trace_line_fun)       \
+  V(GLOBAL_EVAL_FUN_INDEX, JSFunction, global_eval_fun)                     \
+  V(JSON_SERIALIZE_ADAPTER_INDEX, JSFunction, json_serialize_adapter)       \
+  V(MAKE_ERROR_FUNCTION_INDEX, JSFunction, make_error_function)             \
+  V(MAP_DELETE_METHOD_INDEX, JSFunction, map_delete)                        \
+  V(MAP_GET_METHOD_INDEX, JSFunction, map_get)                              \
+  V(MAP_HAS_METHOD_INDEX, JSFunction, map_has)                              \
+  V(MAP_SET_METHOD_INDEX, JSFunction, map_set)                              \
+  V(MATH_POW_METHOD_INDEX, JSFunction, math_pow)                            \
+  V(MESSAGE_GET_COLUMN_NUMBER_INDEX, JSFunction, message_get_column_number) \
+  V(MESSAGE_GET_LINE_NUMBER_INDEX, JSFunction, message_get_line_number)     \
+  V(MESSAGE_GET_SOURCE_LINE_INDEX, JSFunction, message_get_source_line)     \
+  V(NO_SIDE_EFFECTS_TO_STRING_FUN_INDEX, JSFunction,                        \
+    no_side_effects_to_string_fun)                                          \
+  V(OBJECT_VALUE_OF, JSFunction, object_value_of)                           \
+  V(OBJECT_TO_STRING, JSFunction, object_to_string)                         \
+  V(PROMISE_CATCH_INDEX, JSFunction, promise_catch)                         \
+  V(PROMISE_CHAIN_INDEX, JSFunction, promise_chain)                         \
+  V(PROMISE_CREATE_INDEX, JSFunction, promise_create)                       \
+  V(PROMISE_FUNCTION_INDEX, JSFunction, promise_function)                   \
+  V(PROMISE_HAS_USER_DEFINED_REJECT_HANDLER_INDEX, JSFunction,              \
+    promise_has_user_defined_reject_handler)                                \
+  V(PROMISE_REJECT_INDEX, JSFunction, promise_reject)                       \
+  V(PROMISE_RESOLVE_INDEX, JSFunction, promise_resolve)                     \
+  V(PROMISE_CREATE_RESOLVED_INDEX, JSFunction, promise_create_resolved)     \
+  V(PROMISE_CREATE_REJECTED_INDEX, JSFunction, promise_create_rejected)     \
+  V(PROMISE_THEN_INDEX, JSFunction, promise_then)                           \
+  V(RANGE_ERROR_FUNCTION_INDEX, JSFunction, range_error_function)           \
+  V(REFERENCE_ERROR_FUNCTION_INDEX, JSFunction, reference_error_function)   \
+  V(SET_ADD_METHOD_INDEX, JSFunction, set_add)                              \
+  V(SET_DELETE_METHOD_INDEX, JSFunction, set_delete)                        \
+  V(SET_HAS_METHOD_INDEX, JSFunction, set_has)                              \
+  V(STACK_OVERFLOW_BOILERPLATE_INDEX, JSObject, stack_overflow_boilerplate) \
+  V(SYNTAX_ERROR_FUNCTION_INDEX, JSFunction, syntax_error_function)         \
+  V(TYPE_ERROR_FUNCTION_INDEX, JSFunction, type_error_function)             \
   V(URI_ERROR_FUNCTION_INDEX, JSFunction, uri_error_function)
 
 #define NATIVE_CONTEXT_FIELDS(V)                                               \
@@ -162,6 +149,7 @@
   V(ARRAY_BUFFER_FUN_INDEX, JSFunction, array_buffer_fun)                      \
   V(ARRAY_BUFFER_MAP_INDEX, Map, array_buffer_map)                             \
   V(ARRAY_FUNCTION_INDEX, JSFunction, array_function)                          \
+  V(ASYNC_FUNCTION_FUNCTION_INDEX, JSFunction, async_function_constructor)     \
   V(BOOL16X8_FUNCTION_INDEX, JSFunction, bool16x8_function)                    \
   V(BOOL32X4_FUNCTION_INDEX, JSFunction, bool32x4_function)                    \
   V(BOOL8X16_FUNCTION_INDEX, JSFunction, bool8x16_function)                    \
@@ -193,6 +181,7 @@
     generator_function_function)                                               \
   V(GENERATOR_OBJECT_PROTOTYPE_MAP_INDEX, Map, generator_object_prototype_map) \
   V(INITIAL_ARRAY_PROTOTYPE_INDEX, JSObject, initial_array_prototype)          \
+  V(INITIAL_GENERATOR_PROTOTYPE_INDEX, JSObject, initial_generator_prototype)  \
   V(INITIAL_OBJECT_PROTOTYPE_INDEX, JSObject, initial_object_prototype)        \
   V(INT16_ARRAY_FUN_INDEX, JSFunction, int16_array_fun)                        \
   V(INT16X8_FUNCTION_INDEX, JSFunction, int16x8_function)                      \
@@ -249,8 +238,10 @@
   V(SLOPPY_FUNCTION_WITH_READONLY_PROTOTYPE_MAP_INDEX, Map,                    \
     sloppy_function_with_readonly_prototype_map)                               \
   V(WASM_FUNCTION_MAP_INDEX, Map, wasm_function_map)                           \
+  V(SLOPPY_ASYNC_FUNCTION_MAP_INDEX, Map, sloppy_async_function_map)           \
   V(SLOPPY_GENERATOR_FUNCTION_MAP_INDEX, Map, sloppy_generator_function_map)   \
   V(SLOW_ALIASED_ARGUMENTS_MAP_INDEX, Map, slow_aliased_arguments_map)         \
+  V(STRICT_ASYNC_FUNCTION_MAP_INDEX, Map, strict_async_function_map)           \
   V(STRICT_ARGUMENTS_MAP_INDEX, Map, strict_arguments_map)                     \
   V(STRICT_FUNCTION_MAP_INDEX, Map, strict_function_map)                       \
   V(STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX, Map,                          \
@@ -421,6 +412,8 @@
   inline Context* previous();
   inline void set_previous(Context* context);
 
+  inline Object* next_context_link();
+
   inline bool has_extension();
   inline HeapObject* extension();
   inline void set_extension(HeapObject* object);
@@ -531,6 +524,11 @@
                                       : SLOPPY_GENERATOR_FUNCTION_MAP_INDEX;
     }
 
+    if (IsAsyncFunction(kind)) {
+      return is_strict(language_mode) ? STRICT_ASYNC_FUNCTION_MAP_INDEX
+                                      : SLOPPY_ASYNC_FUNCTION_MAP_INDEX;
+    }
+
     if (IsClassConstructor(kind)) {
       // Use strict function map (no own "caller" / "arguments")
       return STRICT_FUNCTION_MAP_INDEX;
diff --git a/src/counters-inl.h b/src/counters-inl.h
new file mode 100644
index 0000000..c8c06d2
--- /dev/null
+++ b/src/counters-inl.h
@@ -0,0 +1,24 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_COUNTERS_INL_H_
+#define V8_COUNTERS_INL_H_
+
+#include "src/counters.h"
+
+namespace v8 {
+namespace internal {
+
+RuntimeCallTimerScope::RuntimeCallTimerScope(
+    HeapObject* heap_object, RuntimeCallStats::CounterId counter_id) {
+  if (V8_UNLIKELY(FLAG_runtime_call_stats)) {
+    isolate_ = heap_object->GetIsolate();
+    RuntimeCallStats::Enter(isolate_, &timer_, counter_id);
+  }
+}
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_COUNTERS_INL_H_
diff --git a/src/counters.cc b/src/counters.cc
index 4f5c251..0dd62a0 100644
--- a/src/counters.cc
+++ b/src/counters.cc
@@ -272,30 +272,38 @@
   time = base::TimeDelta();
 }
 
-void RuntimeCallStats::Enter(RuntimeCallCounter* counter) {
-  RuntimeCallTimer* timer = new RuntimeCallTimer();
-  timer->Initialize(counter, current_timer_);
-  Enter(timer);
+// static
+void RuntimeCallStats::Enter(Isolate* isolate, RuntimeCallTimer* timer,
+                             CounterId counter_id) {
+  RuntimeCallStats* stats = isolate->counters()->runtime_call_stats();
+  RuntimeCallCounter* counter = &(stats->*counter_id);
+  timer->Start(counter, stats->current_timer_);
+  stats->current_timer_ = timer;
 }
 
-void RuntimeCallStats::Enter(RuntimeCallTimer* timer_) {
-  current_timer_ = timer_;
-  current_timer_->Start();
+// static
+void RuntimeCallStats::Leave(Isolate* isolate, RuntimeCallTimer* timer) {
+  RuntimeCallStats* stats = isolate->counters()->runtime_call_stats();
+  DCHECK_EQ(stats->current_timer_, timer);
+  stats->current_timer_ = timer->Stop();
 }
 
-void RuntimeCallStats::Leave() {
-  RuntimeCallTimer* timer = current_timer_;
-  Leave(timer);
-  delete timer;
-}
-
-void RuntimeCallStats::Leave(RuntimeCallTimer* timer) {
-  current_timer_ = timer->Stop();
+// static
+void RuntimeCallStats::CorrectCurrentCounterId(Isolate* isolate,
+                                               CounterId counter_id) {
+  RuntimeCallStats* stats = isolate->counters()->runtime_call_stats();
+  DCHECK_NOT_NULL(stats->current_timer_);
+  RuntimeCallCounter* counter = &(stats->*counter_id);
+  stats->current_timer_->counter_ = counter;
 }
 
 void RuntimeCallStats::Print(std::ostream& os) {
   RuntimeCallStatEntries entries;
 
+#define PRINT_COUNTER(name) entries.Add(&this->name);
+  FOR_EACH_MANUAL_COUNTER(PRINT_COUNTER)
+#undef PRINT_COUNTER
+
 #define PRINT_COUNTER(name, nargs, ressize) entries.Add(&this->Runtime_##name);
   FOR_EACH_INTRINSIC(PRINT_COUNTER)
 #undef PRINT_COUNTER
@@ -304,36 +312,38 @@
   BUILTIN_LIST_C(PRINT_COUNTER)
 #undef PRINT_COUNTER
 
-  entries.Add(&this->ExternalCallback);
-  entries.Add(&this->GC);
-  entries.Add(&this->UnexpectedStubMiss);
+#define PRINT_COUNTER(name) entries.Add(&this->API_##name);
+  FOR_EACH_API_COUNTER(PRINT_COUNTER)
+#undef PRINT_COUNTER
+
+#define PRINT_COUNTER(name) entries.Add(&this->Handler_##name);
+  FOR_EACH_HANDLER_COUNTER(PRINT_COUNTER)
+#undef PRINT_COUNTER
 
   entries.Print(os);
 }
 
 void RuntimeCallStats::Reset() {
   if (!FLAG_runtime_call_stats) return;
-#define RESET_COUNTER(name, nargs, ressize) this->Runtime_##name.Reset();
+#define RESET_COUNTER(name) this->name.Reset();
+  FOR_EACH_MANUAL_COUNTER(RESET_COUNTER)
+#undef RESET_COUNTER
+
+#define RESET_COUNTER(name, nargs, result_size) this->Runtime_##name.Reset();
   FOR_EACH_INTRINSIC(RESET_COUNTER)
 #undef RESET_COUNTER
+
 #define RESET_COUNTER(name, type) this->Builtin_##name.Reset();
   BUILTIN_LIST_C(RESET_COUNTER)
 #undef RESET_COUNTER
-  this->ExternalCallback.Reset();
-  this->GC.Reset();
-  this->UnexpectedStubMiss.Reset();
-}
 
-void RuntimeCallTimerScope::Enter(Isolate* isolate,
-                                  RuntimeCallCounter* counter) {
-  isolate_ = isolate;
-  RuntimeCallStats* stats = isolate->counters()->runtime_call_stats();
-  timer_.Initialize(counter, stats->current_timer());
-  stats->Enter(&timer_);
-}
+#define RESET_COUNTER(name) this->API_##name.Reset();
+  FOR_EACH_API_COUNTER(RESET_COUNTER)
+#undef RESET_COUNTER
 
-void RuntimeCallTimerScope::Leave() {
-  isolate_->counters()->runtime_call_stats()->Leave(&timer_);
+#define RESET_COUNTER(name) this->Handler_##name.Reset();
+  FOR_EACH_HANDLER_COUNTER(RESET_COUNTER)
+#undef RESET_COUNTER
 }
 
 }  // namespace internal
diff --git a/src/counters.h b/src/counters.h
index 7183d0e..a61cacf 100644
--- a/src/counters.h
+++ b/src/counters.h
@@ -492,43 +492,255 @@
 // timers used for properly measuring the own time of a RuntimeCallCounter.
 class RuntimeCallTimer {
  public:
-  inline void Initialize(RuntimeCallCounter* counter,
-                         RuntimeCallTimer* parent) {
+  RuntimeCallTimer() {}
+
+ private:
+  friend class RuntimeCallStats;
+
+  inline void Start(RuntimeCallCounter* counter, RuntimeCallTimer* parent) {
     counter_ = counter;
     parent_ = parent;
-  }
-
-  inline void Start() {
     timer_.Start();
-    counter_->count++;
   }
 
   inline RuntimeCallTimer* Stop() {
     base::TimeDelta delta = timer_.Elapsed();
+    timer_.Stop();
+    counter_->count++;
     counter_->time += delta;
     if (parent_ != NULL) {
-      parent_->AdjustForSubTimer(delta);
+      // Adjust parent timer so that it does not include sub timer's time.
+      parent_->counter_->time -= delta;
     }
     return parent_;
   }
 
-  inline void AdjustForSubTimer(base::TimeDelta delta) {
-    counter_->time -= delta;
-  }
-
- private:
-  RuntimeCallCounter* counter_;
-  RuntimeCallTimer* parent_;
+  RuntimeCallCounter* counter_ = nullptr;
+  RuntimeCallTimer* parent_ = nullptr;
   base::ElapsedTimer timer_;
 };
 
-struct RuntimeCallStats {
-  // Dummy counter for the unexpected stub miss.
-  RuntimeCallCounter UnexpectedStubMiss =
-      RuntimeCallCounter("UnexpectedStubMiss");
-  // Counter for runtime callbacks into JavaScript.
-  RuntimeCallCounter ExternalCallback = RuntimeCallCounter("ExternalCallback");
-  RuntimeCallCounter GC = RuntimeCallCounter("GC");
+#define FOR_EACH_API_COUNTER(V)                            \
+  V(ArrayBuffer_Cast)                                      \
+  V(ArrayBuffer_Neuter)                                    \
+  V(ArrayBuffer_New)                                       \
+  V(Array_CloneElementAt)                                  \
+  V(Array_New)                                             \
+  V(BooleanObject_BooleanValue)                            \
+  V(BooleanObject_New)                                     \
+  V(Context_New)                                           \
+  V(DataView_New)                                          \
+  V(Date_DateTimeConfigurationChangeNotification)          \
+  V(Date_New)                                              \
+  V(Date_NumberValue)                                      \
+  V(Debug_Call)                                            \
+  V(Debug_GetMirror)                                       \
+  V(Error_New)                                             \
+  V(External_New)                                          \
+  V(Float32Array_New)                                      \
+  V(Float64Array_New)                                      \
+  V(Function_Call)                                         \
+  V(Function_New)                                          \
+  V(Function_NewInstance)                                  \
+  V(FunctionTemplate_GetFunction)                          \
+  V(FunctionTemplate_New)                                  \
+  V(FunctionTemplate_NewWithFastHandler)                   \
+  V(Int16Array_New)                                        \
+  V(Int32Array_New)                                        \
+  V(Int8Array_New)                                         \
+  V(JSON_Parse)                                            \
+  V(JSON_Stringify)                                        \
+  V(Map_AsArray)                                           \
+  V(Map_Clear)                                             \
+  V(Map_Delete)                                            \
+  V(Map_Get)                                               \
+  V(Map_Has)                                               \
+  V(Map_New)                                               \
+  V(Map_Set)                                               \
+  V(Message_GetEndColumn)                                  \
+  V(Message_GetLineNumber)                                 \
+  V(Message_GetSourceLine)                                 \
+  V(Message_GetStartColumn)                                \
+  V(NumberObject_New)                                      \
+  V(NumberObject_NumberValue)                              \
+  V(Object_CallAsConstructor)                              \
+  V(Object_CallAsFunction)                                 \
+  V(Object_CreateDataProperty)                             \
+  V(Object_DefineOwnProperty)                              \
+  V(Object_Delete)                                         \
+  V(Object_DeleteProperty)                                 \
+  V(Object_ForceSet)                                       \
+  V(Object_Get)                                            \
+  V(Object_GetOwnPropertyDescriptor)                       \
+  V(Object_GetOwnPropertyNames)                            \
+  V(Object_GetPropertyAttributes)                          \
+  V(Object_GetPropertyNames)                               \
+  V(Object_GetRealNamedProperty)                           \
+  V(Object_GetRealNamedPropertyAttributes)                 \
+  V(Object_GetRealNamedPropertyAttributesInPrototypeChain) \
+  V(Object_GetRealNamedPropertyInPrototypeChain)           \
+  V(Object_HasOwnProperty)                                 \
+  V(Object_HasRealIndexedProperty)                         \
+  V(Object_HasRealNamedCallbackProperty)                   \
+  V(Object_HasRealNamedProperty)                           \
+  V(Object_Int32Value)                                     \
+  V(Object_IntegerValue)                                   \
+  V(Object_New)                                            \
+  V(Object_NumberValue)                                    \
+  V(Object_ObjectProtoToString)                            \
+  V(Object_Set)                                            \
+  V(Object_SetAccessor)                                    \
+  V(Object_SetIntegrityLevel)                              \
+  V(Object_SetPrivate)                                     \
+  V(Object_SetPrototype)                                   \
+  V(ObjectTemplate_New)                                    \
+  V(ObjectTemplate_NewInstance)                            \
+  V(Object_ToArrayIndex)                                   \
+  V(Object_ToDetailString)                                 \
+  V(Object_ToInt32)                                        \
+  V(Object_ToInteger)                                      \
+  V(Object_ToNumber)                                       \
+  V(Object_ToObject)                                       \
+  V(Object_ToString)                                       \
+  V(Object_ToUint32)                                       \
+  V(Object_Uint32Value)                                    \
+  V(Persistent_New)                                        \
+  V(Private_New)                                           \
+  V(Promise_Catch)                                         \
+  V(Promise_Chain)                                         \
+  V(Promise_HasRejectHandler)                              \
+  V(Promise_Resolver_New)                                  \
+  V(Promise_Resolver_Resolve)                              \
+  V(Promise_Then)                                          \
+  V(Proxy_New)                                             \
+  V(RangeError_New)                                        \
+  V(ReferenceError_New)                                    \
+  V(RegExp_New)                                            \
+  V(ScriptCompiler_Compile)                                \
+  V(ScriptCompiler_CompileFunctionInContext)               \
+  V(ScriptCompiler_CompileUnbound)                         \
+  V(Script_Run)                                            \
+  V(Set_Add)                                               \
+  V(Set_AsArray)                                           \
+  V(Set_Clear)                                             \
+  V(Set_Delete)                                            \
+  V(Set_Has)                                               \
+  V(Set_New)                                               \
+  V(SharedArrayBuffer_New)                                 \
+  V(String_Concat)                                         \
+  V(String_NewExternalOneByte)                             \
+  V(String_NewExternalTwoByte)                             \
+  V(String_NewFromOneByte)                                 \
+  V(String_NewFromTwoByte)                                 \
+  V(String_NewFromUtf8)                                    \
+  V(StringObject_New)                                      \
+  V(StringObject_StringValue)                              \
+  V(String_Write)                                          \
+  V(String_WriteUtf8)                                      \
+  V(Symbol_New)                                            \
+  V(SymbolObject_New)                                      \
+  V(SymbolObject_SymbolValue)                              \
+  V(SyntaxError_New)                                       \
+  V(TryCatch_StackTrace)                                   \
+  V(TypeError_New)                                         \
+  V(Uint16Array_New)                                       \
+  V(Uint32Array_New)                                       \
+  V(Uint8Array_New)                                        \
+  V(Uint8ClampedArray_New)                                 \
+  V(UnboundScript_GetId)                                   \
+  V(UnboundScript_GetLineNumber)                           \
+  V(UnboundScript_GetName)                                 \
+  V(UnboundScript_GetSourceMappingURL)                     \
+  V(UnboundScript_GetSourceURL)                            \
+  V(Value_TypeOf)
+
+#define FOR_EACH_MANUAL_COUNTER(V)                  \
+  V(AccessorGetterCallback)                         \
+  V(AccessorNameGetterCallback)                     \
+  V(AccessorNameSetterCallback)                     \
+  V(Compile)                                        \
+  V(CompileCode)                                    \
+  V(CompileDeserialize)                             \
+  V(CompileEval)                                    \
+  V(CompileFullCode)                                \
+  V(CompileIgnition)                                \
+  V(CompileSerialize)                               \
+  V(DeoptimizeCode)                                 \
+  V(FunctionCallback)                               \
+  V(GC)                                             \
+  V(GenericNamedPropertyDeleterCallback)            \
+  V(GenericNamedPropertyQueryCallback)              \
+  V(GenericNamedPropertySetterCallback)             \
+  V(IndexedPropertyDeleterCallback)                 \
+  V(IndexedPropertyGetterCallback)                  \
+  V(IndexedPropertyQueryCallback)                   \
+  V(IndexedPropertySetterCallback)                  \
+  V(InvokeFunctionCallback)                         \
+  V(JS_Execution)                                   \
+  V(Map_SetPrototype)                               \
+  V(Map_TransitionToAccessorProperty)               \
+  V(Map_TransitionToDataProperty)                   \
+  V(Object_DeleteProperty)                          \
+  V(OptimizeCode)                                   \
+  V(Parse)                                          \
+  V(ParseLazy)                                      \
+  V(PropertyCallback)                               \
+  V(PrototypeMap_TransitionToAccessorProperty)      \
+  V(PrototypeMap_TransitionToDataProperty)          \
+  V(PrototypeObject_DeleteProperty)                 \
+  V(RecompileConcurrent)                            \
+  V(RecompileSynchronous)                           \
+  /* Dummy counter for the unexpected stub miss. */ \
+  V(UnexpectedStubMiss)
+
+#define FOR_EACH_HANDLER_COUNTER(V)             \
+  V(IC_HandlerCacheHit)                         \
+  V(KeyedLoadIC_LoadIndexedStringStub)          \
+  V(KeyedLoadIC_LoadIndexedInterceptorStub)     \
+  V(KeyedLoadIC_KeyedLoadSloppyArgumentsStub)   \
+  V(KeyedLoadIC_LoadFastElementStub)            \
+  V(KeyedLoadIC_LoadDictionaryElementStub)      \
+  V(KeyedLoadIC_PolymorphicElement)             \
+  V(KeyedStoreIC_KeyedStoreSloppyArgumentsStub) \
+  V(KeyedStoreIC_StoreFastElementStub)          \
+  V(KeyedStoreIC_StoreElementStub)              \
+  V(KeyedStoreIC_Polymorphic)                   \
+  V(LoadIC_FunctionPrototypeStub)               \
+  V(LoadIC_ArrayBufferViewLoadFieldStub)        \
+  V(LoadIC_LoadApiGetterStub)                   \
+  V(LoadIC_LoadCallback)                        \
+  V(LoadIC_LoadConstant)                        \
+  V(LoadIC_LoadConstantStub)                    \
+  V(LoadIC_LoadField)                           \
+  V(LoadIC_LoadFieldStub)                       \
+  V(LoadIC_LoadGlobal)                          \
+  V(LoadIC_LoadInterceptor)                     \
+  V(LoadIC_LoadNonexistent)                     \
+  V(LoadIC_LoadNormal)                          \
+  V(LoadIC_LoadScriptContextFieldStub)          \
+  V(LoadIC_LoadViaGetter)                       \
+  V(LoadIC_SlowStub)                            \
+  V(LoadIC_StringLengthStub)                    \
+  V(StoreIC_SlowStub)                           \
+  V(StoreIC_StoreCallback)                      \
+  V(StoreIC_StoreField)                         \
+  V(StoreIC_StoreFieldStub)                     \
+  V(StoreIC_StoreGlobal)                        \
+  V(StoreIC_StoreGlobalTransition)              \
+  V(StoreIC_StoreInterceptorStub)               \
+  V(StoreIC_StoreNormal)                        \
+  V(StoreIC_StoreScriptContextFieldStub)        \
+  V(StoreIC_StoreTransition)                    \
+  V(StoreIC_StoreViaSetter)
+
+class RuntimeCallStats {
+ public:
+  typedef RuntimeCallCounter RuntimeCallStats::*CounterId;
+
+#define CALL_RUNTIME_COUNTER(name) \
+  RuntimeCallCounter name = RuntimeCallCounter(#name);
+  FOR_EACH_MANUAL_COUNTER(CALL_RUNTIME_COUNTER)
+#undef CALL_RUNTIME_COUNTER
 #define CALL_RUNTIME_COUNTER(name, nargs, ressize) \
   RuntimeCallCounter Runtime_##name = RuntimeCallCounter(#name);
   FOR_EACH_INTRINSIC(CALL_RUNTIME_COUNTER)
@@ -537,42 +749,71 @@
   RuntimeCallCounter Builtin_##name = RuntimeCallCounter(#name);
   BUILTIN_LIST_C(CALL_BUILTIN_COUNTER)
 #undef CALL_BUILTIN_COUNTER
-
-  // Counter to track recursive time events.
-  RuntimeCallTimer* current_timer_ = NULL;
+#define CALL_BUILTIN_COUNTER(name) \
+  RuntimeCallCounter API_##name = RuntimeCallCounter("API_" #name);
+  FOR_EACH_API_COUNTER(CALL_BUILTIN_COUNTER)
+#undef CALL_BUILTIN_COUNTER
+#define CALL_BUILTIN_COUNTER(name) \
+  RuntimeCallCounter Handler_##name = RuntimeCallCounter(#name);
+  FOR_EACH_HANDLER_COUNTER(CALL_BUILTIN_COUNTER)
+#undef CALL_BUILTIN_COUNTER
 
   // Starting measuring the time for a function. This will establish the
   // connection to the parent counter for properly calculating the own times.
-  void Enter(RuntimeCallCounter* counter);
-  void Enter(RuntimeCallTimer* timer);
+  static void Enter(Isolate* isolate, RuntimeCallTimer* timer,
+                    CounterId counter_id);
+
   // Leave a scope for a measured runtime function. This will properly add
   // the time delta to the current_counter and subtract the delta from its
   // parent.
-  void Leave();
-  void Leave(RuntimeCallTimer* timer);
+  static void Leave(Isolate* isolate, RuntimeCallTimer* timer);
 
-  RuntimeCallTimer* current_timer() { return current_timer_; }
+  // Set counter id for the innermost measurement. It can be used to refine
+  // event kind when a runtime entry counter is too generic.
+  static void CorrectCurrentCounterId(Isolate* isolate, CounterId counter_id);
 
   void Reset();
   void Print(std::ostream& os);
 
   RuntimeCallStats() { Reset(); }
+
+ private:
+  // Counter to track recursive time events.
+  RuntimeCallTimer* current_timer_ = NULL;
 };
 
+#define TRACE_RUNTIME_CALL_STATS(isolate, counter_name) \
+  do {                                                  \
+    if (FLAG_runtime_call_stats) {                      \
+      RuntimeCallStats::CorrectCurrentCounterId(        \
+          isolate, &RuntimeCallStats::counter_name);    \
+    }                                                   \
+  } while (false)
+
+#define TRACE_HANDLER_STATS(isolate, counter_name) \
+  TRACE_RUNTIME_CALL_STATS(isolate, Handler_##counter_name)
+
 // A RuntimeCallTimerScopes wraps around a RuntimeCallTimer to measure the
 // the time of C++ scope.
 class RuntimeCallTimerScope {
  public:
-  inline explicit RuntimeCallTimerScope(Isolate* isolate,
-                                        RuntimeCallCounter* counter) {
-    if (FLAG_runtime_call_stats) Enter(isolate, counter);
+  inline RuntimeCallTimerScope(Isolate* isolate,
+                               RuntimeCallStats::CounterId counter_id) {
+    if (V8_UNLIKELY(FLAG_runtime_call_stats)) {
+      isolate_ = isolate;
+      RuntimeCallStats::Enter(isolate_, &timer_, counter_id);
+    }
   }
-  inline ~RuntimeCallTimerScope() {
-    if (FLAG_runtime_call_stats) Leave();
-  }
+  // This constructor is here just to avoid calling GetIsolate() when the
+  // stats are disabled and the isolate is not directly available.
+  inline RuntimeCallTimerScope(HeapObject* heap_object,
+                               RuntimeCallStats::CounterId counter_id);
 
-  void Enter(Isolate* isolate, RuntimeCallCounter* counter);
-  void Leave();
+  inline ~RuntimeCallTimerScope() {
+    if (V8_UNLIKELY(FLAG_runtime_call_stats)) {
+      RuntimeCallStats::Leave(isolate_, &timer_);
+    }
+  }
 
  private:
   Isolate* isolate_;
@@ -588,39 +829,53 @@
      101)                                                                     \
   HR(code_cache_reject_reason, V8.CodeCacheRejectReason, 1, 6, 6)             \
   HR(errors_thrown_per_context, V8.ErrorsThrownPerContext, 0, 200, 20)        \
-  HR(debug_feature_usage, V8.DebugFeatureUsage, 1, 7, 7)
+  HR(debug_feature_usage, V8.DebugFeatureUsage, 1, 7, 7)                      \
+  /* Asm/Wasm. */                                                             \
+  HR(wasm_functions_per_module, V8.WasmFunctionsPerModule, 1, 10000, 51)
 
-#define HISTOGRAM_TIMER_LIST(HT)                                              \
-  /* Garbage collection timers. */                                            \
-  HT(gc_compactor, V8.GCCompactor, 10000, MILLISECOND)                        \
-  HT(gc_finalize, V8.GCFinalizeMC, 10000, MILLISECOND)                        \
-  HT(gc_finalize_reduce_memory, V8.GCFinalizeMCReduceMemory, 10000,           \
-     MILLISECOND)                                                             \
-  HT(gc_scavenger, V8.GCScavenger, 10000, MILLISECOND)                        \
-  HT(gc_context, V8.GCContext, 10000,                                         \
-     MILLISECOND) /* GC context cleanup time */                               \
-  HT(gc_idle_notification, V8.GCIdleNotification, 10000, MILLISECOND)         \
-  HT(gc_incremental_marking, V8.GCIncrementalMarking, 10000, MILLISECOND)     \
-  HT(gc_incremental_marking_start, V8.GCIncrementalMarkingStart, 10000,       \
-     MILLISECOND)                                                             \
-  HT(gc_incremental_marking_finalize, V8.GCIncrementalMarkingFinalize, 10000, \
-     MILLISECOND)                                                             \
-  HT(gc_low_memory_notification, V8.GCLowMemoryNotification, 10000,           \
-     MILLISECOND)                                                             \
-  /* Parsing timers. */                                                       \
-  HT(parse, V8.ParseMicroSeconds, 1000000, MICROSECOND)                       \
-  HT(parse_lazy, V8.ParseLazyMicroSeconds, 1000000, MICROSECOND)              \
-  HT(pre_parse, V8.PreParseMicroSeconds, 1000000, MICROSECOND)                \
-  /* Compilation times. */                                                    \
-  HT(compile, V8.CompileMicroSeconds, 1000000, MICROSECOND)                   \
-  HT(compile_eval, V8.CompileEvalMicroSeconds, 1000000, MICROSECOND)          \
-  /* Serialization as part of compilation (code caching) */                   \
-  HT(compile_serialize, V8.CompileSerializeMicroSeconds, 100000, MICROSECOND) \
-  HT(compile_deserialize, V8.CompileDeserializeMicroSeconds, 1000000,         \
-     MICROSECOND)                                                             \
-  /* Total compilation time incl. caching/parsing */                          \
-  HT(compile_script, V8.CompileScriptMicroSeconds, 1000000, MICROSECOND)
-
+#define HISTOGRAM_TIMER_LIST(HT)                                               \
+  /* Garbage collection timers. */                                             \
+  HT(gc_compactor, V8.GCCompactor, 10000, MILLISECOND)                         \
+  HT(gc_finalize, V8.GCFinalizeMC, 10000, MILLISECOND)                         \
+  HT(gc_finalize_reduce_memory, V8.GCFinalizeMCReduceMemory, 10000,            \
+     MILLISECOND)                                                              \
+  HT(gc_scavenger, V8.GCScavenger, 10000, MILLISECOND)                         \
+  HT(gc_context, V8.GCContext, 10000,                                          \
+     MILLISECOND) /* GC context cleanup time */                                \
+  HT(gc_idle_notification, V8.GCIdleNotification, 10000, MILLISECOND)          \
+  HT(gc_incremental_marking, V8.GCIncrementalMarking, 10000, MILLISECOND)      \
+  HT(gc_incremental_marking_start, V8.GCIncrementalMarkingStart, 10000,        \
+     MILLISECOND)                                                              \
+  HT(gc_incremental_marking_finalize, V8.GCIncrementalMarkingFinalize, 10000,  \
+     MILLISECOND)                                                              \
+  HT(gc_low_memory_notification, V8.GCLowMemoryNotification, 10000,            \
+     MILLISECOND)                                                              \
+  /* Parsing timers. */                                                        \
+  HT(parse, V8.ParseMicroSeconds, 1000000, MICROSECOND)                        \
+  HT(parse_lazy, V8.ParseLazyMicroSeconds, 1000000, MICROSECOND)               \
+  HT(pre_parse, V8.PreParseMicroSeconds, 1000000, MICROSECOND)                 \
+  /* Compilation times. */                                                     \
+  HT(compile, V8.CompileMicroSeconds, 1000000, MICROSECOND)                    \
+  HT(compile_eval, V8.CompileEvalMicroSeconds, 1000000, MICROSECOND)           \
+  /* Serialization as part of compilation (code caching) */                    \
+  HT(compile_serialize, V8.CompileSerializeMicroSeconds, 100000, MICROSECOND)  \
+  HT(compile_deserialize, V8.CompileDeserializeMicroSeconds, 1000000,          \
+     MICROSECOND)                                                              \
+  /* Total compilation time incl. caching/parsing */                           \
+  HT(compile_script, V8.CompileScriptMicroSeconds, 1000000, MICROSECOND)       \
+  /* Total JavaScript execution time (including callbacks and runtime calls */ \
+  HT(execute, V8.Execute, 1000000, MICROSECOND)                                \
+  /* Asm/Wasm */                                                               \
+  HT(wasm_instantiate_module_time, V8.WasmInstantiateModuleMicroSeconds,       \
+     1000000, MICROSECOND)                                                     \
+  HT(wasm_decode_module_time, V8.WasmDecodeModuleMicroSeconds, 1000000,        \
+     MICROSECOND)                                                              \
+  HT(wasm_decode_function_time, V8.WasmDecodeFunctionMicroSeconds, 1000000,    \
+     MICROSECOND)                                                              \
+  HT(wasm_compile_module_time, V8.WasmCompileModuleMicroSeconds, 1000000,      \
+     MICROSECOND)                                                              \
+  HT(wasm_compile_function_time, V8.WasmCompileFunctionMicroSeconds, 1000000,  \
+     MICROSECOND)
 
 #define AGGREGATABLE_HISTOGRAM_TIMER_LIST(AHT) \
   AHT(compile_lazy, V8.CompileLazyMicroSeconds)
@@ -651,10 +906,17 @@
   HM(heap_sample_code_space_committed, V8.MemoryHeapSampleCodeSpaceCommitted) \
   HM(heap_sample_maximum_committed, V8.MemoryHeapSampleMaximumCommitted)
 
-#define HISTOGRAM_MEMORY_LIST(HM)                   \
-  HM(memory_heap_committed, V8.MemoryHeapCommitted) \
-  HM(memory_heap_used, V8.MemoryHeapUsed)
-
+#define HISTOGRAM_MEMORY_LIST(HM)                                              \
+  HM(memory_heap_committed, V8.MemoryHeapCommitted)                            \
+  HM(memory_heap_used, V8.MemoryHeapUsed)                                      \
+  /* Asm/Wasm */                                                               \
+  HM(wasm_decode_module_peak_memory_bytes, V8.WasmDecodeModulePeakMemoryBytes) \
+  HM(wasm_compile_function_peak_memory_bytes,                                  \
+     V8.WasmCompileFunctionPeakMemoryBytes)                                    \
+  HM(wasm_min_mem_pages_count, V8.WasmMinMemPagesCount)                        \
+  HM(wasm_max_mem_pages_count, V8.WasmMaxMemPagesCount)                        \
+  HM(wasm_function_size_bytes, V8.WasmFunctionSizeBytes)                       \
+  HM(wasm_module_size_bytes, V8.WasmModuleSizeBytes)
 
 // WARNING: STATS_COUNTER_LIST_* is a very large macro that is causing MSVC
 // Intellisense to crash.  It was broken into two macros (each of length 40
@@ -703,7 +965,6 @@
   /* The store-buffer implementation of the write barrier. */         \
   SC(store_buffer_overflows, V8.StoreBufferOverflows)
 
-
 #define STATS_COUNTER_LIST_2(SC)                                               \
   /* Number of code stubs. */                                                  \
   SC(code_stubs, V8.CodeStubs)                                                 \
@@ -743,8 +1004,6 @@
   SC(enum_cache_hits, V8.EnumCacheHits)                                        \
   SC(enum_cache_misses, V8.EnumCacheMisses)                                    \
   SC(fast_new_closure_total, V8.FastNewClosureTotal)                           \
-  SC(fast_new_closure_try_optimized, V8.FastNewClosureTryOptimized)            \
-  SC(fast_new_closure_install_optimized, V8.FastNewClosureInstallOptimized)    \
   SC(string_add_runtime, V8.StringAddRuntime)                                  \
   SC(string_add_native, V8.StringAddNative)                                    \
   SC(string_add_runtime_ext_to_one_byte, V8.StringAddRuntimeExtToOneByte)      \
@@ -757,13 +1016,12 @@
   SC(number_to_string_native, V8.NumberToStringNative)                         \
   SC(number_to_string_runtime, V8.NumberToStringRuntime)                       \
   SC(math_atan2_runtime, V8.MathAtan2Runtime)                                  \
-  SC(math_clz32_runtime, V8.MathClz32Runtime)                                  \
   SC(math_exp_runtime, V8.MathExpRuntime)                                      \
   SC(math_log_runtime, V8.MathLogRuntime)                                      \
   SC(math_pow_runtime, V8.MathPowRuntime)                                      \
   SC(stack_interrupts, V8.StackInterrupts)                                     \
   SC(runtime_profiler_ticks, V8.RuntimeProfilerTicks)                          \
-  SC(runtime_calls, V8.RuntimeCalls)                          \
+  SC(runtime_calls, V8.RuntimeCalls)                                           \
   SC(bounds_checks_eliminated, V8.BoundsChecksEliminated)                      \
   SC(bounds_checks_hoisted, V8.BoundsChecksHoisted)                            \
   SC(soft_deopts_requested, V8.SoftDeoptsRequested)                            \
diff --git a/src/crankshaft/arm/lithium-arm.cc b/src/crankshaft/arm/lithium-arm.cc
index 4072982..d8ee9cd 100644
--- a/src/crankshaft/arm/lithium-arm.cc
+++ b/src/crankshaft/arm/lithium-arm.cc
@@ -877,7 +877,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -934,17 +934,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), cp);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, r0), instr);
-}
-
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
@@ -2351,13 +2340,18 @@
 
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
   LOperand* size = UseRegisterOrConstant(instr->size());
   LOperand* temp1 = TempRegister();
   LOperand* temp2 = TempRegister();
-  LAllocate* result = new(zone()) LAllocate(context, size, temp1, temp2);
-  return AssignPointerMap(DefineAsRegister(result));
+  if (instr->IsAllocationFolded()) {
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp1, temp2);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LAllocate* result = new (zone()) LAllocate(context, size, temp1, temp2);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 
diff --git a/src/crankshaft/arm/lithium-arm.h b/src/crankshaft/arm/lithium-arm.h
index 60fe79d..2ec992f 100644
--- a/src/crankshaft/arm/lithium-arm.h
+++ b/src/crankshaft/arm/lithium-arm.h
@@ -67,6 +67,7 @@
   V(Drop)                                    \
   V(Dummy)                                   \
   V(DummyUse)                                \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -78,7 +79,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -151,7 +151,6 @@
   V(UnknownOSRValue)                         \
   V(WrapReceiver)
 
-
 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic)            \
   Opcode opcode() const final { return LInstruction::k##type; } \
   void CompileToNative(LCodeGen* generator) final;              \
@@ -1135,22 +1134,6 @@
 };
 
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() const { return inputs_[0]; }
-  LOperand* left() const { return inputs_[1]; }
-  LOperand* right() const { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 0> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype) {
@@ -2391,6 +2374,21 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 2> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) {
+    inputs_[0] = size;
+    temps_[0] = temp1;
+    temps_[1] = temp2;
+  }
+
+  LOperand* size() { return inputs_[0]; }
+  LOperand* temp1() { return temps_[0]; }
+  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
 
 class LTypeof final : public LTemplateInstruction<1, 2, 0> {
  public:
diff --git a/src/crankshaft/arm/lithium-codegen-arm.cc b/src/crankshaft/arm/lithium-codegen-arm.cc
index c64aac3..340642a 100644
--- a/src/crankshaft/arm/lithium-codegen-arm.cc
+++ b/src/crankshaft/arm/lithium-codegen-arm.cc
@@ -329,8 +329,6 @@
       } else {
         __ bl(&call_deopt_entry);
       }
-      info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                   table_entry->deopt_info.inlining_id);
       masm()->CheckConstPool(false, false);
     }
 
@@ -823,7 +821,7 @@
     __ stop("trap_on_deopt", condition);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   // Go through jump table if we need to handle condition, build frame, or
@@ -832,7 +830,6 @@
       !info()->saves_caller_doubles()) {
     DeoptComment(deopt_info);
     __ Call(entry, RelocInfo::RUNTIME_ENTRY);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type,
                                             !frame_is_built_);
@@ -2498,16 +2495,6 @@
 }
 
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(r0));
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
@@ -4031,11 +4018,6 @@
 
   if (instr->NeedsCanonicalization()) {
     // Force a canonical NaN.
-    if (masm()->emit_debug_code()) {
-      __ vmrs(ip);
-      __ tst(ip, Operand(kVFPDefaultNaNModeControlBit));
-      __ Assert(ne, kDefaultNaNModeNotSet);
-    }
     __ VFPCanonicalizeNaN(double_scratch, value);
     __ vstr(double_scratch, scratch, 0);
   } else {
@@ -4193,7 +4175,15 @@
 
     LOperand* key = instr->key();
     if (key->IsConstantOperand()) {
-      __ Move(r3, Operand(ToSmi(LConstantOperand::cast(key))));
+      LConstantOperand* constant_key = LConstantOperand::cast(key);
+      int32_t int_key = ToInteger32(constant_key);
+      if (Smi::IsValid(int_key)) {
+        __ mov(r3, Operand(Smi::FromInt(int_key)));
+      } else {
+        // We should never get here at runtime because there is a smi check on
+        // the key before this point.
+        __ stop("expected smi");
+      }
     } else {
       __ Move(r3, ToRegister(key));
       __ SmiTag(r3);
@@ -4494,7 +4484,7 @@
 
   if (FLAG_inline_new) {
     __ LoadRoot(tmp3, Heap::kHeapNumberMapRootIndex);
-    __ AllocateHeapNumber(dst, tmp1, tmp2, tmp3, &slow, DONT_TAG_RESULT);
+    __ AllocateHeapNumber(dst, tmp1, tmp2, tmp3, &slow);
     __ b(&done);
   }
 
@@ -4518,15 +4508,13 @@
     __ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
     RecordSafepointWithRegisters(
         instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
-    __ sub(r0, r0, Operand(kHeapObjectTag));
     __ StoreToSafepointRegisterSlot(r0, dst);
   }
 
   // Done. Put the value in dbl_scratch into the value of the allocated heap
   // number.
   __ bind(&done);
-  __ vstr(dbl_scratch, dst, HeapNumber::kValueOffset);
-  __ add(dst, dst, Operand(kHeapObjectTag));
+  __ vstr(dbl_scratch, FieldMemOperand(dst, HeapNumber::kValueOffset));
 }
 
 
@@ -4551,16 +4539,12 @@
   DeferredNumberTagD* deferred = new(zone()) DeferredNumberTagD(this, instr);
   if (FLAG_inline_new) {
     __ LoadRoot(scratch, Heap::kHeapNumberMapRootIndex);
-    // We want the untagged address first for performance
-    __ AllocateHeapNumber(reg, temp1, temp2, scratch, deferred->entry(),
-                          DONT_TAG_RESULT);
+    __ AllocateHeapNumber(reg, temp1, temp2, scratch, deferred->entry());
   } else {
     __ jmp(deferred->entry());
   }
   __ bind(deferred->exit());
-  __ vstr(input_reg, reg, HeapNumber::kValueOffset);
-  // Now that we have finished with the object's real address tag it
-  __ add(reg, reg, Operand(kHeapObjectTag));
+  __ vstr(input_reg, FieldMemOperand(reg, HeapNumber::kValueOffset));
 }
 
 
@@ -4581,7 +4565,6 @@
   __ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
   RecordSafepointWithRegisters(
       instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
-  __ sub(r0, r0, Operand(kHeapObjectTag));
   __ StoreToSafepointRegisterSlot(r0, reg);
 }
 
@@ -5105,7 +5088,7 @@
   Register scratch2 = ToRegister(instr->temp2());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -5114,6 +5097,11 @@
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
 
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
+
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
     CHECK(size <= Page::kMaxRegularHeapObjectSize);
@@ -5181,6 +5169,49 @@
   CallRuntimeFromDeferred(
       Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
   __ StoreToSafepointRegisterSlot(r0, result);
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    Register top_address = scratch0();
+    __ sub(r0, r0, Operand(kHeapObjectTag));
+    __ mov(top_address, Operand(allocation_top));
+    __ str(r0, MemOperand(top_address));
+    __ add(r0, r0, Operand(kHeapObjectTag));
+  }
+}
+
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register scratch1 = ToRegister(instr->temp1());
+  Register scratch2 = ToRegister(instr->temp2());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  }
 }
 
 
diff --git a/src/crankshaft/arm/lithium-codegen-arm.h b/src/crankshaft/arm/lithium-codegen-arm.h
index 8bbacc3..30a26f2 100644
--- a/src/crankshaft/arm/lithium-codegen-arm.h
+++ b/src/crankshaft/arm/lithium-codegen-arm.h
@@ -135,8 +135,6 @@
 #undef DECLARE_DO
 
  private:
-  LanguageMode language_mode() const { return info()->language_mode(); }
-
   Scope* scope() const { return scope_; }
 
   Register scratch0() { return r9; }
diff --git a/src/crankshaft/arm64/lithium-arm64.cc b/src/crankshaft/arm64/lithium-arm64.cc
index 6cfc846..2154398 100644
--- a/src/crankshaft/arm64/lithium-arm64.cc
+++ b/src/crankshaft/arm64/lithium-arm64.cc
@@ -726,7 +726,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -841,14 +841,20 @@
 
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
   LOperand* size = UseRegisterOrConstant(instr->size());
   LOperand* temp1 = TempRegister();
   LOperand* temp2 = TempRegister();
-  LOperand* temp3 = instr->MustPrefillWithFiller() ? TempRegister() : NULL;
-  LAllocate* result = new(zone()) LAllocate(context, size, temp1, temp2, temp3);
-  return AssignPointerMap(DefineAsRegister(result));
+  if (instr->IsAllocationFolded()) {
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp1, temp2);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LOperand* temp3 = instr->MustPrefillWithFiller() ? TempRegister() : NULL;
+    LAllocate* result =
+        new (zone()) LAllocate(context, size, temp1, temp2, temp3);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 
@@ -1461,17 +1467,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), cp);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, x0), instr);
-}
-
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
diff --git a/src/crankshaft/arm64/lithium-arm64.h b/src/crankshaft/arm64/lithium-arm64.h
index 237487f..383e5c3 100644
--- a/src/crankshaft/arm64/lithium-arm64.h
+++ b/src/crankshaft/arm64/lithium-arm64.h
@@ -70,6 +70,7 @@
   V(Drop)                                    \
   V(Dummy)                                   \
   V(DummyUse)                                \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -81,7 +82,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -163,7 +163,6 @@
   V(UnknownOSRValue)                         \
   V(WrapReceiver)
 
-
 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic)            \
   Opcode opcode() const final { return LInstruction::k##type; } \
   void CompileToNative(LCodeGen* generator) final;              \
@@ -626,6 +625,21 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 2> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) {
+    inputs_[0] = size;
+    temps_[0] = temp1;
+    temps_[1] = temp2;
+  }
+
+  LOperand* size() { return inputs_[0]; }
+  LOperand* temp1() { return temps_[0]; }
+  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
 
 class LApplyArguments final : public LTemplateInstruction<1, 4, 0> {
  public:
@@ -1363,22 +1377,6 @@
 };
 
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() const { return inputs_[0]; }
-  LOperand* left() const { return inputs_[1]; }
-  LOperand* right() const { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 2> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype,
diff --git a/src/crankshaft/arm64/lithium-codegen-arm64.cc b/src/crankshaft/arm64/lithium-codegen-arm64.cc
index 9bbc8b8..ebc5277 100644
--- a/src/crankshaft/arm64/lithium-codegen-arm64.cc
+++ b/src/crankshaft/arm64/lithium-codegen-arm64.cc
@@ -599,7 +599,7 @@
   Comment(";;; Prologue begin");
 
   // Allocate a local context if needed.
-  if (info()->num_heap_slots() > 0) {
+  if (info()->scope()->num_heap_slots() > 0) {
     Comment(";;; Allocate local context");
     bool need_write_barrier = true;
     // Argument to NewContext is the function, which is in x1.
@@ -775,8 +775,6 @@
         // table.
         __ Bl(&call_deopt_entry);
       }
-      info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                   table_entry->deopt_info.inlining_id);
 
       masm()->CheckConstPool(false, false);
     }
@@ -892,7 +890,7 @@
     __ Bind(&dont_trap);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   // Go through jump table if we need to build frame, or restore caller doubles.
@@ -900,7 +898,6 @@
       frame_is_built_ && !info()->saves_caller_doubles()) {
     DeoptComment(deopt_info);
     __ Call(entry, RelocInfo::RUNTIME_ENTRY);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry* table_entry =
         new (zone()) Deoptimizer::JumpTableEntry(
@@ -1416,7 +1413,7 @@
   Register temp2 = ToRegister(instr->temp2());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -1426,6 +1423,11 @@
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
 
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
+
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
     CHECK(size <= Page::kMaxRegularHeapObjectSize);
@@ -1487,6 +1489,49 @@
   CallRuntimeFromDeferred(
       Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
   __ StoreToSafepointRegisterSlot(x0, ToRegister(instr->result()));
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    Register top_address = x10;
+    __ Sub(x0, x0, Operand(kHeapObjectTag));
+    __ Mov(top_address, Operand(allocation_top));
+    __ Str(x0, MemOperand(top_address));
+    __ Add(x0, x0, Operand(kHeapObjectTag));
+  }
+}
+
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register scratch1 = ToRegister(instr->temp1());
+  Register scratch2 = ToRegister(instr->temp2());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  }
 }
 
 
@@ -2758,16 +2803,6 @@
 }
 
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(x0));
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
diff --git a/src/crankshaft/hydrogen-gvn.cc b/src/crankshaft/hydrogen-gvn.cc
index 07bfabc..e6ddd75 100644
--- a/src/crankshaft/hydrogen-gvn.cc
+++ b/src/crankshaft/hydrogen-gvn.cc
@@ -637,17 +637,12 @@
 }
 
 
-bool HGlobalValueNumberingPhase::AllowCodeMotion() {
-  return info()->IsStub() || info()->opt_count() + 1 < FLAG_max_opt_count;
-}
-
-
 bool HGlobalValueNumberingPhase::ShouldMove(HInstruction* instr,
                                             HBasicBlock* loop_header) {
   // If we've disabled code motion or we're in a block that unconditionally
   // deoptimizes, don't move any instructions.
-  return AllowCodeMotion() && !instr->block()->IsDeoptimizing() &&
-      instr->block()->IsReachable();
+  return graph()->allow_code_motion() && !instr->block()->IsDeoptimizing() &&
+         instr->block()->IsReachable();
 }
 
 
diff --git a/src/crankshaft/hydrogen-gvn.h b/src/crankshaft/hydrogen-gvn.h
index a5e2168..9a8d407 100644
--- a/src/crankshaft/hydrogen-gvn.h
+++ b/src/crankshaft/hydrogen-gvn.h
@@ -126,7 +126,6 @@
   void ProcessLoopBlock(HBasicBlock* block,
                         HBasicBlock* before_loop,
                         SideEffects loop_kills);
-  bool AllowCodeMotion();
   bool ShouldMove(HInstruction* instr, HBasicBlock* loop_header);
   TrackedEffects Print(SideEffects side_effects) {
     return TrackedEffects(&side_effects_tracker_, side_effects);
diff --git a/src/crankshaft/hydrogen-instructions.cc b/src/crankshaft/hydrogen-instructions.cc
index 7de8b5d..5e4ad37 100644
--- a/src/crankshaft/hydrogen-instructions.cc
+++ b/src/crankshaft/hydrogen-instructions.cc
@@ -798,7 +798,6 @@
     case HValue::kHasCachedArrayIndexAndBranch:
     case HValue::kHasInstanceTypeAndBranch:
     case HValue::kInnerAllocatedObject:
-    case HValue::kInstanceOf:
     case HValue::kIsSmiAndBranch:
     case HValue::kIsStringAndBranch:
     case HValue::kIsUndetectableAndBranch:
@@ -1203,7 +1202,6 @@
 String* TypeOfString(HConstant* constant, Isolate* isolate) {
   Heap* heap = isolate->heap();
   if (constant->HasNumberValue()) return heap->number_string();
-  if (constant->IsUndetectable()) return heap->undefined_string();
   if (constant->HasStringValue()) return heap->string_string();
   switch (constant->GetInstanceType()) {
     case ODDBALL_TYPE: {
@@ -1232,6 +1230,7 @@
       return nullptr;
     }
     default:
+      if (constant->IsUndetectable()) return heap->undefined_string();
       if (constant->IsCallable()) return heap->function_string();
       return heap->object_string();
   }
@@ -1652,12 +1651,6 @@
 }
 
 
-std::ostream& HInstanceOf::PrintDataTo(std::ostream& os) const {  // NOLINT
-  return os << NameOf(left()) << " " << NameOf(right()) << " "
-            << NameOf(context());
-}
-
-
 Range* HValue::InferRange(Zone* zone) {
   Range* result;
   if (representation().IsSmi() || type().IsSmi()) {
@@ -3126,6 +3119,7 @@
 bool HAllocate::HandleSideEffectDominator(GVNFlag side_effect,
                                           HValue* dominator) {
   DCHECK(side_effect == kNewSpacePromotion);
+  DCHECK(!IsAllocationFolded());
   Zone* zone = block()->zone();
   Isolate* isolate = block()->isolate();
   if (!FLAG_use_allocation_folding) return false;
@@ -3153,7 +3147,8 @@
   HValue* current_size = size();
 
   // TODO(hpayer): Add support for non-constant allocation in dominator.
-  if (!dominator_size->IsInteger32Constant()) {
+  if (!current_size->IsInteger32Constant() ||
+      !dominator_size->IsInteger32Constant()) {
     if (FLAG_trace_allocation_folding) {
       PrintF("#%d (%s) cannot fold into #%d (%s), "
              "dynamic allocation size in dominator\n",
@@ -3171,32 +3166,6 @@
     return false;
   }
 
-  if (!has_size_upper_bound()) {
-    if (FLAG_trace_allocation_folding) {
-      PrintF("#%d (%s) cannot fold into #%d (%s), "
-             "can't estimate total allocation size\n",
-          id(), Mnemonic(), dominator->id(), dominator->Mnemonic());
-    }
-    return false;
-  }
-
-  if (!current_size->IsInteger32Constant()) {
-    // If it's not constant then it is a size_in_bytes calculation graph
-    // like this: (const_header_size + const_element_size * size).
-    DCHECK(current_size->IsInstruction());
-
-    HInstruction* current_instr = HInstruction::cast(current_size);
-    if (!current_instr->Dominates(dominator_allocate)) {
-      if (FLAG_trace_allocation_folding) {
-        PrintF("#%d (%s) cannot fold into #%d (%s), dynamic size "
-               "value does not dominate target allocation\n",
-            id(), Mnemonic(), dominator_allocate->id(),
-            dominator_allocate->Mnemonic());
-      }
-      return false;
-    }
-  }
-
   DCHECK(
       (IsNewSpaceAllocation() && dominator_allocate->IsNewSpaceAllocation()) ||
       (IsOldSpaceAllocation() && dominator_allocate->IsOldSpaceAllocation()));
@@ -3213,7 +3182,7 @@
     }
   }
 
-  int32_t current_size_max_value = size_upper_bound()->GetInteger32Constant();
+  int32_t current_size_max_value = size()->GetInteger32Constant();
   int32_t new_dominator_size = dominator_size_constant + current_size_max_value;
 
   // Since we clear the first word after folded memory, we cannot use the
@@ -3227,27 +3196,9 @@
     return false;
   }
 
-  HInstruction* new_dominator_size_value;
-
-  if (current_size->IsInteger32Constant()) {
-    new_dominator_size_value = HConstant::CreateAndInsertBefore(
-        isolate, zone, context(), new_dominator_size, Representation::None(),
-        dominator_allocate);
-  } else {
-    HValue* new_dominator_size_constant = HConstant::CreateAndInsertBefore(
-        isolate, zone, context(), dominator_size_constant,
-        Representation::Integer32(), dominator_allocate);
-
-    // Add old and new size together and insert.
-    current_size->ChangeRepresentation(Representation::Integer32());
-
-    new_dominator_size_value = HAdd::New(
-        isolate, zone, context(), new_dominator_size_constant, current_size);
-    new_dominator_size_value->ClearFlag(HValue::kCanOverflow);
-    new_dominator_size_value->ChangeRepresentation(Representation::Integer32());
-
-    new_dominator_size_value->InsertBefore(dominator_allocate);
-  }
+  HInstruction* new_dominator_size_value = HConstant::CreateAndInsertBefore(
+      isolate, zone, context(), new_dominator_size, Representation::None(),
+      dominator_allocate);
 
   dominator_allocate->UpdateSize(new_dominator_size_value);
 
@@ -3257,103 +3208,45 @@
     }
   }
 
-  bool keep_heap_iterable = FLAG_log_gc || FLAG_heap_stats;
-#ifdef VERIFY_HEAP
-  keep_heap_iterable = keep_heap_iterable || FLAG_verify_heap;
-#endif
-
-  if (keep_heap_iterable) {
-    dominator_allocate->MakePrefillWithFiller();
-  } else {
-    // TODO(hpayer): This is a short-term hack to make allocation mementos
-    // work again in new space.
-    dominator_allocate->ClearNextMapWord(original_object_size);
+  if (IsAllocationFoldingDominator()) {
+    DeleteAndReplaceWith(dominator_allocate);
+    if (FLAG_trace_allocation_folding) {
+      PrintF(
+          "#%d (%s) folded dominator into #%d (%s), new dominator size: %d\n",
+          id(), Mnemonic(), dominator_allocate->id(),
+          dominator_allocate->Mnemonic(), new_dominator_size);
+    }
+    return true;
   }
 
-  dominator_allocate->UpdateClearNextMapWord(MustClearNextMapWord());
+  if (!dominator_allocate->IsAllocationFoldingDominator()) {
+    HAllocate* first_alloc =
+        HAllocate::New(isolate, zone, dominator_allocate->context(),
+                       dominator_size, dominator_allocate->type(),
+                       IsNewSpaceAllocation() ? NOT_TENURED : TENURED,
+                       JS_OBJECT_TYPE, block()->graph()->GetConstant0());
+    first_alloc->InsertAfter(dominator_allocate);
+    dominator_allocate->ReplaceAllUsesWith(first_alloc);
+    dominator_allocate->MakeAllocationFoldingDominator();
+    first_alloc->MakeFoldedAllocation(dominator_allocate);
+    if (FLAG_trace_allocation_folding) {
+      PrintF("#%d (%s) inserted for dominator #%d (%s)\n", first_alloc->id(),
+             first_alloc->Mnemonic(), dominator_allocate->id(),
+             dominator_allocate->Mnemonic());
+    }
+  }
 
-  // After that replace the dominated allocate instruction.
-  HInstruction* inner_offset = HConstant::CreateAndInsertBefore(
-      isolate, zone, context(), dominator_size_constant, Representation::None(),
-      this);
+  MakeFoldedAllocation(dominator_allocate);
 
-  HInstruction* dominated_allocate_instr = HInnerAllocatedObject::New(
-      isolate, zone, context(), dominator_allocate, inner_offset, type());
-  dominated_allocate_instr->InsertBefore(this);
-  DeleteAndReplaceWith(dominated_allocate_instr);
   if (FLAG_trace_allocation_folding) {
-    PrintF("#%d (%s) folded into #%d (%s)\n",
-        id(), Mnemonic(), dominator_allocate->id(),
-        dominator_allocate->Mnemonic());
+    PrintF("#%d (%s) folded into #%d (%s), new dominator size: %d\n", id(),
+           Mnemonic(), dominator_allocate->id(), dominator_allocate->Mnemonic(),
+           new_dominator_size);
   }
   return true;
 }
 
 
-void HAllocate::UpdateFreeSpaceFiller(int32_t free_space_size) {
-  DCHECK(filler_free_space_size_ != NULL);
-  Zone* zone = block()->zone();
-  // We must explicitly force Smi representation here because on x64 we
-  // would otherwise automatically choose int32, but the actual store
-  // requires a Smi-tagged value.
-  HConstant* new_free_space_size = HConstant::CreateAndInsertBefore(
-      block()->isolate(), zone, context(),
-      filler_free_space_size_->value()->GetInteger32Constant() +
-          free_space_size,
-      Representation::Smi(), filler_free_space_size_);
-  filler_free_space_size_->UpdateValue(new_free_space_size);
-}
-
-
-void HAllocate::CreateFreeSpaceFiller(int32_t free_space_size) {
-  DCHECK(filler_free_space_size_ == NULL);
-  Isolate* isolate = block()->isolate();
-  Zone* zone = block()->zone();
-  HInstruction* free_space_instr =
-      HInnerAllocatedObject::New(isolate, zone, context(), dominating_allocate_,
-                                 dominating_allocate_->size(), type());
-  free_space_instr->InsertBefore(this);
-  HConstant* filler_map = HConstant::CreateAndInsertAfter(
-      zone, Unique<Map>::CreateImmovable(isolate->factory()->free_space_map()),
-      true, free_space_instr);
-  HInstruction* store_map =
-      HStoreNamedField::New(isolate, zone, context(), free_space_instr,
-                            HObjectAccess::ForMap(), filler_map);
-  store_map->SetFlag(HValue::kHasNoObservableSideEffects);
-  store_map->InsertAfter(filler_map);
-
-  // We must explicitly force Smi representation here because on x64 we
-  // would otherwise automatically choose int32, but the actual store
-  // requires a Smi-tagged value.
-  HConstant* filler_size =
-      HConstant::CreateAndInsertAfter(isolate, zone, context(), free_space_size,
-                                      Representation::Smi(), store_map);
-  // Must force Smi representation for x64 (see comment above).
-  HObjectAccess access = HObjectAccess::ForMapAndOffset(
-      isolate->factory()->free_space_map(), FreeSpace::kSizeOffset,
-      Representation::Smi());
-  HStoreNamedField* store_size = HStoreNamedField::New(
-      isolate, zone, context(), free_space_instr, access, filler_size);
-  store_size->SetFlag(HValue::kHasNoObservableSideEffects);
-  store_size->InsertAfter(filler_size);
-  filler_free_space_size_ = store_size;
-}
-
-
-void HAllocate::ClearNextMapWord(int offset) {
-  if (MustClearNextMapWord()) {
-    Zone* zone = block()->zone();
-    HObjectAccess access =
-        HObjectAccess::ForObservableJSObjectOffset(offset);
-    HStoreNamedField* clear_next_map =
-        HStoreNamedField::New(block()->isolate(), zone, context(), this, access,
-                              block()->graph()->GetConstant0());
-    clear_next_map->ClearAllSideEffects();
-    clear_next_map->InsertAfter(this);
-  }
-}
-
-
 std::ostream& HAllocate::PrintDataTo(std::ostream& os) const {  // NOLINT
   os << NameOf(size()) << " (";
   if (IsNewSpaceAllocation()) os << "N";
diff --git a/src/crankshaft/hydrogen-instructions.h b/src/crankshaft/hydrogen-instructions.h
index 196a14f..fdb1fd6 100644
--- a/src/crankshaft/hydrogen-instructions.h
+++ b/src/crankshaft/hydrogen-instructions.h
@@ -95,7 +95,6 @@
   V(HasCachedArrayIndexAndBranch)             \
   V(HasInstanceTypeAndBranch)                 \
   V(InnerAllocatedObject)                     \
-  V(InstanceOf)                               \
   V(InvokeFunction)                           \
   V(HasInPrototypeChainAndBranch)             \
   V(IsStringAndBranch)                        \
@@ -2498,7 +2497,7 @@
   // Indicates if we support a double (and int32) output for Math.floor and
   // Math.round.
   bool SupportsFlexibleFloorAndRound() const {
-#if V8_TARGET_ARCH_ARM64
+#if V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_PPC
     return true;
 #elif V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X64
     return CpuFeatures::IsSupported(SSE4_1);
@@ -4271,27 +4270,6 @@
 };
 
 
-class HInstanceOf final : public HBinaryOperation {
- public:
-  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P2(HInstanceOf, HValue*, HValue*);
-
-  Representation RequiredInputRepresentation(int index) override {
-    return Representation::Tagged();
-  }
-
-  std::ostream& PrintDataTo(std::ostream& os) const override;  // NOLINT
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf)
-
- private:
-  HInstanceOf(HValue* context, HValue* left, HValue* right)
-      : HBinaryOperation(context, left, right, HType::Boolean()) {
-    set_representation(Representation::Tagged());
-    SetAllSideEffects();
-  }
-};
-
-
 class HHasInPrototypeChainAndBranch final
     : public HTemplateControlInstruction<2, 2> {
  public:
@@ -4939,8 +4917,7 @@
   FeedbackVectorSlot slot_;
 };
 
-
-class HAllocate final : public HTemplateInstruction<2> {
+class HAllocate final : public HTemplateInstruction<3> {
  public:
   static bool CompatibleInstanceTypes(InstanceType type1,
                                       InstanceType type2) {
@@ -4951,9 +4928,10 @@
   static HAllocate* New(
       Isolate* isolate, Zone* zone, HValue* context, HValue* size, HType type,
       PretenureFlag pretenure_flag, InstanceType instance_type,
+      HValue* dominator,
       Handle<AllocationSite> allocation_site = Handle<AllocationSite>::null()) {
-    return new(zone) HAllocate(context, size, type, pretenure_flag,
-        instance_type, allocation_site);
+    return new (zone) HAllocate(context, size, type, pretenure_flag,
+                                instance_type, dominator, allocation_site);
   }
 
   // Maximum instance size for which allocations will be inlined.
@@ -4961,13 +4939,7 @@
 
   HValue* context() const { return OperandAt(0); }
   HValue* size() const { return OperandAt(1); }
-
-  bool has_size_upper_bound() { return size_upper_bound_ != NULL; }
-  HConstant* size_upper_bound() { return size_upper_bound_; }
-  void set_size_upper_bound(HConstant* value) {
-    DCHECK(size_upper_bound_ == NULL);
-    size_upper_bound_ = value;
-  }
+  HValue* allocation_folding_dominator() const { return OperandAt(2); }
 
   Representation RequiredInputRepresentation(int index) override {
     if (index == 0) {
@@ -5005,14 +4977,28 @@
     flags_ = static_cast<HAllocate::Flags>(flags_ | PREFILL_WITH_FILLER);
   }
 
-  bool MustClearNextMapWord() const {
-    return (flags_ & CLEAR_NEXT_MAP_WORD) != 0;
-  }
-
   void MakeDoubleAligned() {
     flags_ = static_cast<HAllocate::Flags>(flags_ | ALLOCATE_DOUBLE_ALIGNED);
   }
 
+  void MakeAllocationFoldingDominator() {
+    flags_ =
+        static_cast<HAllocate::Flags>(flags_ | ALLOCATION_FOLDING_DOMINATOR);
+  }
+
+  bool IsAllocationFoldingDominator() {
+    return (flags_ & ALLOCATION_FOLDING_DOMINATOR) != 0;
+  }
+
+  void MakeFoldedAllocation(HAllocate* dominator) {
+    flags_ = static_cast<HAllocate::Flags>(flags_ | ALLOCATION_FOLDED);
+    ClearFlag(kTrackSideEffectDominators);
+    ClearChangesFlag(kNewSpacePromotion);
+    SetOperandAt(2, dominator);
+  }
+
+  bool IsAllocationFolded() { return (flags_ & ALLOCATION_FOLDED) != 0; }
+
   bool HandleSideEffectDominator(GVNFlag side_effect,
                                  HValue* dominator) override;
 
@@ -5026,23 +5012,19 @@
     ALLOCATE_IN_OLD_SPACE = 1 << 2,
     ALLOCATE_DOUBLE_ALIGNED = 1 << 3,
     PREFILL_WITH_FILLER = 1 << 4,
-    CLEAR_NEXT_MAP_WORD = 1 << 5
+    ALLOCATION_FOLDING_DOMINATOR = 1 << 5,
+    ALLOCATION_FOLDED = 1 << 6
   };
 
-  HAllocate(HValue* context,
-            HValue* size,
-            HType type,
-            PretenureFlag pretenure_flag,
-            InstanceType instance_type,
-            Handle<AllocationSite> allocation_site =
-                Handle<AllocationSite>::null())
-      : HTemplateInstruction<2>(type),
-        flags_(ComputeFlags(pretenure_flag, instance_type)),
-        dominating_allocate_(NULL),
-        filler_free_space_size_(NULL),
-        size_upper_bound_(NULL) {
+  HAllocate(
+      HValue* context, HValue* size, HType type, PretenureFlag pretenure_flag,
+      InstanceType instance_type, HValue* dominator,
+      Handle<AllocationSite> allocation_site = Handle<AllocationSite>::null())
+      : HTemplateInstruction<3>(type),
+        flags_(ComputeFlags(pretenure_flag, instance_type)) {
     SetOperandAt(0, context);
     UpdateSize(size);
+    SetOperandAt(2, dominator);
     set_representation(Representation::Tagged());
     SetFlag(kTrackSideEffectDominators);
     SetChangesFlag(kNewSpacePromotion);
@@ -5072,46 +5054,20 @@
     if (!FLAG_use_gvn || !FLAG_use_allocation_folding) {
       flags = static_cast<Flags>(flags | PREFILL_WITH_FILLER);
     }
-    if (pretenure_flag == NOT_TENURED &&
-        AllocationSite::CanTrack(instance_type)) {
-      flags = static_cast<Flags>(flags | CLEAR_NEXT_MAP_WORD);
-    }
     return flags;
   }
 
-  void UpdateClearNextMapWord(bool clear_next_map_word) {
-    flags_ = static_cast<Flags>(clear_next_map_word
-                                ? flags_ | CLEAR_NEXT_MAP_WORD
-                                : flags_ & ~CLEAR_NEXT_MAP_WORD);
-  }
-
   void UpdateSize(HValue* size) {
     SetOperandAt(1, size);
-    if (size->IsInteger32Constant()) {
-      size_upper_bound_ = HConstant::cast(size);
-    } else {
-      size_upper_bound_ = NULL;
-    }
   }
 
-  HAllocate* GetFoldableDominator(HAllocate* dominator);
-
-  void UpdateFreeSpaceFiller(int32_t filler_size);
-
-  void CreateFreeSpaceFiller(int32_t filler_size);
-
   bool IsFoldable(HAllocate* allocate) {
     return (IsNewSpaceAllocation() && allocate->IsNewSpaceAllocation()) ||
            (IsOldSpaceAllocation() && allocate->IsOldSpaceAllocation());
   }
 
-  void ClearNextMapWord(int offset);
-
   Flags flags_;
   Handle<Map> known_initial_map_;
-  HAllocate* dominating_allocate_;
-  HStoreNamedField* filler_free_space_size_;
-  HConstant* size_upper_bound_;
 };
 
 
@@ -5183,9 +5139,20 @@
 inline bool ReceiverObjectNeedsWriteBarrier(HValue* object,
                                             HValue* value,
                                             HValue* dominator) {
+  // There may be multiple inner allocates dominated by one allocate.
   while (object->IsInnerAllocatedObject()) {
     object = HInnerAllocatedObject::cast(object)->base_object();
   }
+
+  if (object->IsAllocate()) {
+    HAllocate* allocate = HAllocate::cast(object);
+    if (allocate->IsAllocationFolded()) {
+      HValue* dominator = allocate->allocation_folding_dominator();
+      DCHECK(HAllocate::cast(dominator)->IsAllocationFoldingDominator());
+      object = dominator;
+    }
+  }
+
   if (object->IsConstant() &&
       HConstant::cast(object)->HasExternalReferenceValue()) {
     // Stores to external references require no write barriers
@@ -5226,10 +5193,7 @@
     // hole value. This is used for checking for loading of uninitialized
     // harmony bindings where we deoptimize into full-codegen generated code
     // which will subsequently throw a reference error.
-    kCheckDeoptimize,
-    // Load and check the value of the context slot. Return undefined if it's
-    // the hole value. This is used for non-harmony const assignments
-    kCheckReturnUndefined
+    kCheckDeoptimize
   };
 
   HLoadContextSlot(HValue* context, int slot_index, Mode mode)
@@ -5282,9 +5246,7 @@
     // hole value. This is used for checking for assignments to uninitialized
     // harmony bindings where we deoptimize into full-codegen generated code
     // which will subsequently throw a reference error.
-    kCheckDeoptimize,
-    // Check the previous value and ignore assignment if it isn't a hole value
-    kCheckIgnoreAssignment
+    kCheckDeoptimize
   };
 
   DECLARE_INSTRUCTION_FACTORY_P4(HStoreContextSlot, HValue*, int,
diff --git a/src/crankshaft/hydrogen-range-analysis.h b/src/crankshaft/hydrogen-range-analysis.h
index cff7026..eeac690 100644
--- a/src/crankshaft/hydrogen-range-analysis.h
+++ b/src/crankshaft/hydrogen-range-analysis.h
@@ -5,6 +5,7 @@
 #ifndef V8_CRANKSHAFT_HYDROGEN_RANGE_ANALYSIS_H_
 #define V8_CRANKSHAFT_HYDROGEN_RANGE_ANALYSIS_H_
 
+#include "src/base/compiler-specific.h"
 #include "src/crankshaft/hydrogen.h"
 
 namespace v8 {
@@ -21,7 +22,7 @@
   void Run();
 
  private:
-  void TraceRange(const char* msg, ...);
+  PRINTF_FORMAT(2, 3) void TraceRange(const char* msg, ...);
   void InferControlFlowRange(HCompareNumericAndBranch* test,
                              HBasicBlock* dest);
   void UpdateControlFlowRange(Token::Value op, HValue* value, HValue* other);
diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc
index 0de6dac..9c5fa15 100644
--- a/src/crankshaft/hydrogen.cc
+++ b/src/crankshaft/hydrogen.cc
@@ -68,6 +68,177 @@
 namespace v8 {
 namespace internal {
 
+class HOptimizedGraphBuilderWithPositions : public HOptimizedGraphBuilder {
+ public:
+  explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info)
+      : HOptimizedGraphBuilder(info) {}
+
+#define DEF_VISIT(type)                                      \
+  void Visit##type(type* node) override {                    \
+    SourcePosition old_position = SourcePosition::Unknown(); \
+    if (node->position() != RelocInfo::kNoPosition) {        \
+      old_position = source_position();                      \
+      SetSourcePosition(node->position());                   \
+    }                                                        \
+    HOptimizedGraphBuilder::Visit##type(node);               \
+    if (!old_position.IsUnknown()) {                         \
+      set_source_position(old_position);                     \
+    }                                                        \
+  }
+  EXPRESSION_NODE_LIST(DEF_VISIT)
+#undef DEF_VISIT
+
+#define DEF_VISIT(type)                                      \
+  void Visit##type(type* node) override {                    \
+    SourcePosition old_position = SourcePosition::Unknown(); \
+    if (node->position() != RelocInfo::kNoPosition) {        \
+      old_position = source_position();                      \
+      SetSourcePosition(node->position());                   \
+    }                                                        \
+    HOptimizedGraphBuilder::Visit##type(node);               \
+    if (!old_position.IsUnknown()) {                         \
+      set_source_position(old_position);                     \
+    }                                                        \
+  }
+  STATEMENT_NODE_LIST(DEF_VISIT)
+#undef DEF_VISIT
+
+#define DEF_VISIT(type)                        \
+  void Visit##type(type* node) override {      \
+    HOptimizedGraphBuilder::Visit##type(node); \
+  }
+  DECLARATION_NODE_LIST(DEF_VISIT)
+#undef DEF_VISIT
+};
+
+HCompilationJob::Status HCompilationJob::CreateGraphImpl() {
+  bool dont_crankshaft = info()->shared_info()->dont_crankshaft();
+
+  // Optimization requires a version of fullcode with deoptimization support.
+  // Recompile the unoptimized version of the code if the current version
+  // doesn't have deoptimization support already.
+  // Otherwise, if we are gathering compilation time and space statistics
+  // for hydrogen, gather baseline statistics for a fullcode compilation.
+  bool should_recompile = !info()->shared_info()->has_deoptimization_support();
+  if (should_recompile || FLAG_hydrogen_stats) {
+    base::ElapsedTimer timer;
+    if (FLAG_hydrogen_stats) {
+      timer.Start();
+    }
+    if (!Compiler::EnsureDeoptimizationSupport(info())) {
+      return FAILED;
+    }
+    if (FLAG_hydrogen_stats) {
+      isolate()->GetHStatistics()->IncrementFullCodeGen(timer.Elapsed());
+    }
+  }
+  DCHECK(info()->shared_info()->has_deoptimization_support());
+  DCHECK(!info()->shared_info()->never_compiled());
+
+  if (!isolate()->use_crankshaft() || dont_crankshaft) {
+    // Crankshaft is entirely disabled.
+    return FAILED;
+  }
+
+  // Check the whitelist for Crankshaft.
+  if (!info()->shared_info()->PassesFilter(FLAG_hydrogen_filter)) {
+    return AbortOptimization(kHydrogenFilter);
+  }
+
+  Scope* scope = info()->scope();
+  if (LUnallocated::TooManyParameters(scope->num_parameters())) {
+    // Crankshaft would require too many Lithium operands.
+    return AbortOptimization(kTooManyParameters);
+  }
+
+  if (info()->is_osr() &&
+      LUnallocated::TooManyParametersOrStackSlots(scope->num_parameters(),
+                                                  scope->num_stack_slots())) {
+    // Crankshaft would require too many Lithium operands.
+    return AbortOptimization(kTooManyParametersLocals);
+  }
+
+  if (IsGeneratorFunction(info()->shared_info()->kind())) {
+    // Crankshaft does not support generators.
+    return AbortOptimization(kGenerator);
+  }
+
+  if (FLAG_trace_hydrogen) {
+    isolate()->GetHTracer()->TraceCompilation(info());
+  }
+
+  // Optimization could have been disabled by the parser. Note that this check
+  // is only needed because the Hydrogen graph builder is missing some bailouts.
+  if (info()->shared_info()->optimization_disabled()) {
+    return AbortOptimization(
+        info()->shared_info()->disable_optimization_reason());
+  }
+
+  HOptimizedGraphBuilder* graph_builder =
+      (info()->is_tracking_positions() || FLAG_trace_ic)
+          ? new (info()->zone()) HOptimizedGraphBuilderWithPositions(info())
+          : new (info()->zone()) HOptimizedGraphBuilder(info());
+
+  // Type-check the function.
+  AstTyper(info()->isolate(), info()->zone(), info()->closure(),
+           info()->scope(), info()->osr_ast_id(), info()->literal(),
+           graph_builder->bounds())
+      .Run();
+
+  graph_ = graph_builder->CreateGraph();
+
+  if (isolate()->has_pending_exception()) {
+    return FAILED;
+  }
+
+  if (graph_ == NULL) return FAILED;
+
+  if (info()->dependencies()->HasAborted()) {
+    // Dependency has changed during graph creation. Let's try again later.
+    return RetryOptimization(kBailedOutDueToDependencyChange);
+  }
+
+  return SUCCEEDED;
+}
+
+HCompilationJob::Status HCompilationJob::OptimizeGraphImpl() {
+  DCHECK(graph_ != NULL);
+  BailoutReason bailout_reason = kNoReason;
+
+  if (graph_->Optimize(&bailout_reason)) {
+    chunk_ = LChunk::NewChunk(graph_);
+    if (chunk_ != NULL) return SUCCEEDED;
+  } else if (bailout_reason != kNoReason) {
+    info()->AbortOptimization(bailout_reason);
+  }
+
+  return FAILED;
+}
+
+HCompilationJob::Status HCompilationJob::GenerateCodeImpl() {
+  DCHECK(chunk_ != NULL);
+  DCHECK(graph_ != NULL);
+  {
+    // Deferred handles reference objects that were accessible during
+    // graph creation.  To make sure that we don't encounter inconsistencies
+    // between graph creation and code generation, we disallow accessing
+    // objects through deferred handles during the latter, with exceptions.
+    DisallowDeferredHandleDereference no_deferred_handle_deref;
+    Handle<Code> optimized_code = chunk_->Codegen();
+    if (optimized_code.is_null()) {
+      if (info()->bailout_reason() == kNoReason) {
+        return AbortOptimization(kCodeGenerationFailed);
+      }
+      return FAILED;
+    }
+    RegisterWeakObjectsInOptimizedCode(optimized_code);
+    info()->SetCode(optimized_code);
+  }
+  // Add to the weak list of optimized code objects.
+  info()->context()->native_context()->AddOptimizedCode(*info()->code());
+  return SUCCEEDED;
+}
+
 HBasicBlock::HBasicBlock(HGraph* graph)
     : block_id_(graph->GetNextBlockID()),
       graph_(graph),
@@ -1188,6 +1359,9 @@
 HGraph* HGraphBuilder::CreateGraph() {
   graph_ = new (zone()) HGraph(info_, descriptor_);
   if (FLAG_hydrogen_stats) isolate()->GetHStatistics()->Initialize(info_);
+  if (!info_->IsStub() && info_->is_tracking_positions()) {
+    TraceInlinedFunction(info_->shared_info(), SourcePosition::Unknown());
+  }
   CompilationPhase phase("H_Block building", info_);
   set_current_block(graph()->entry_block());
   if (!BuildGraph()) return NULL;
@@ -1195,6 +1369,52 @@
   return graph_;
 }
 
+int HGraphBuilder::TraceInlinedFunction(Handle<SharedFunctionInfo> shared,
+                                        SourcePosition position) {
+  DCHECK(info_->is_tracking_positions());
+
+  int inline_id = static_cast<int>(graph()->inlined_function_infos().size());
+  HInlinedFunctionInfo info(shared->start_position());
+  if (!shared->script()->IsUndefined()) {
+    Handle<Script> script(Script::cast(shared->script()));
+
+    if (FLAG_hydrogen_track_positions && !script->source()->IsUndefined()) {
+      CodeTracer::Scope tracing_scope(isolate()->GetCodeTracer());
+      Object* source_name = script->name();
+      OFStream os(tracing_scope.file());
+      os << "--- FUNCTION SOURCE (";
+      if (source_name->IsString()) {
+        os << String::cast(source_name)->ToCString().get() << ":";
+      }
+      os << shared->DebugName()->ToCString().get() << ") id{";
+      os << info_->optimization_id() << "," << inline_id << "} ---\n";
+      {
+        DisallowHeapAllocation no_allocation;
+        int start = shared->start_position();
+        int len = shared->end_position() - start;
+        String::SubStringRange source(String::cast(script->source()), start,
+                                      len);
+        for (const auto& c : source) {
+          os << AsReversiblyEscapedUC16(c);
+        }
+      }
+
+      os << "\n--- END ---\n";
+    }
+  }
+
+  graph()->inlined_function_infos().push_back(info);
+
+  if (FLAG_hydrogen_track_positions && inline_id != 0) {
+    CodeTracer::Scope tracing_scope(isolate()->GetCodeTracer());
+    OFStream os(tracing_scope.file());
+    os << "INLINE (" << shared->DebugName()->ToCString().get() << ") id{"
+       << info_->optimization_id() << "," << inline_id << "} AS " << inline_id
+       << " AT " << position << std::endl;
+  }
+
+  return inline_id;
+}
 
 HInstruction* HGraphBuilder::AddInstruction(HInstruction* instr) {
   DCHECK(current_block() != NULL);
@@ -1822,7 +2042,7 @@
   // Allocate the JSIteratorResult object.
   HValue* result =
       Add<HAllocate>(Add<HConstant>(JSIteratorResult::kSize), HType::JSObject(),
-                     NOT_TENURED, JS_OBJECT_TYPE);
+                     NOT_TENURED, JS_OBJECT_TYPE, graph()->GetConstant0());
 
   // Initialize the JSIteratorResult object.
   HValue* native_context = BuildGetNativeContext();
@@ -1859,9 +2079,9 @@
   HValue* size = BuildCalculateElementsSize(elements_kind, length);
 
   // Allocate the JSRegExpResult and the FixedArray in one step.
-  HValue* result = Add<HAllocate>(
-      Add<HConstant>(JSRegExpResult::kSize), HType::JSArray(),
-      NOT_TENURED, JS_ARRAY_TYPE);
+  HValue* result =
+      Add<HAllocate>(Add<HConstant>(JSRegExpResult::kSize), HType::JSArray(),
+                     NOT_TENURED, JS_ARRAY_TYPE, graph()->GetConstant0());
 
   // Initialize the JSRegExpResult header.
   HValue* native_context = Add<HLoadNamedField>(
@@ -1895,12 +2115,6 @@
   HAllocate* elements = BuildAllocateElements(elements_kind, size);
   BuildInitializeElementsHeader(elements, elements_kind, length);
 
-  if (!elements->has_size_upper_bound()) {
-    HConstant* size_in_bytes_upper_bound = EstablishElementsAllocationSize(
-        elements_kind, max_length->Integer32Value());
-    elements->set_size_upper_bound(size_in_bytes_upper_bound);
-  }
-
   Add<HStoreNamedField>(
       result, HObjectAccess::ForJSArrayOffset(JSArray::kElementsOffset),
       elements);
@@ -2062,9 +2276,8 @@
   Callable callable = CodeFactory::ToNumber(isolate());
   HValue* stub = Add<HConstant>(callable.code());
   HValue* values[] = {context(), input};
-  HCallWithDescriptor* instr =
-      Add<HCallWithDescriptor>(stub, 0, callable.descriptor(),
-                               Vector<HValue*>(values, arraysize(values)));
+  HCallWithDescriptor* instr = Add<HCallWithDescriptor>(
+      stub, 0, callable.descriptor(), ArrayVector(values));
   instr->set_type(HType::TaggedNumber());
   return instr;
 }
@@ -2177,8 +2390,8 @@
 
   // Perform the actual allocation.
   HAllocate* object = Add<HAllocate>(
-      size, type, allocation_mode.GetPretenureMode(),
-      instance_type, allocation_mode.feedback_site());
+      size, type, allocation_mode.GetPretenureMode(), instance_type,
+      graph()->GetConstant0(), allocation_mode.feedback_site());
 
   // Setup the allocation memento.
   if (allocation_mode.CreateAllocationMementos()) {
@@ -2673,7 +2886,6 @@
       return array_builder->AllocateEmptyArray();
     } else {
       return array_builder->AllocateArray(length_argument,
-                                          array_length,
                                           length_argument);
     }
   }
@@ -2706,7 +2918,7 @@
   // Figure out total size
   HValue* length = Pop();
   HValue* capacity = Pop();
-  return array_builder->AllocateArray(capacity, max_alloc_length, length);
+  return array_builder->AllocateArray(capacity, length);
 }
 
 
@@ -2738,8 +2950,8 @@
     base_size += AllocationMemento::kSize;
   }
   HConstant* size_in_bytes = Add<HConstant>(base_size);
-  return Add<HAllocate>(
-      size_in_bytes, HType::JSArray(), NOT_TENURED, JS_OBJECT_TYPE);
+  return Add<HAllocate>(size_in_bytes, HType::JSArray(), NOT_TENURED,
+                        JS_OBJECT_TYPE, graph()->GetConstant0());
 }
 
 
@@ -2761,7 +2973,7 @@
       : FIXED_ARRAY_TYPE;
 
   return Add<HAllocate>(size_in_bytes, HType::HeapObject(), NOT_TENURED,
-                        instance_type);
+                        instance_type, graph()->GetConstant0());
 }
 
 
@@ -3149,14 +3361,6 @@
 
   HAllocate* elements = BuildAllocateElements(kind, elements_size);
 
-  // This function implicitly relies on the fact that the
-  // FastCloneShallowArrayStub is called only for literals shorter than
-  // JSArray::kInitialMaxFastElementArray.
-  // Can't add HBoundsCheck here because otherwise the stub will eager a frame.
-  HConstant* size_upper_bound = EstablishElementsAllocationSize(
-      kind, JSArray::kInitialMaxFastElementArray);
-  elements->set_size_upper_bound(size_upper_bound);
-
   Add<HStoreNamedField>(result, HObjectAccess::ForElementsPointer(), elements);
 
   // The allocation for the cloned array above causes register pressure on
@@ -3396,42 +3600,12 @@
 HAllocate* HGraphBuilder::JSArrayBuilder::AllocateEmptyArray() {
   HConstant* capacity = builder()->Add<HConstant>(initial_capacity());
   return AllocateArray(capacity,
-                       capacity,
                        builder()->graph()->GetConstant0());
 }
 
 
 HAllocate* HGraphBuilder::JSArrayBuilder::AllocateArray(
     HValue* capacity,
-    HConstant* capacity_upper_bound,
-    HValue* length_field,
-    FillMode fill_mode) {
-  return AllocateArray(capacity,
-                       capacity_upper_bound->GetInteger32Constant(),
-                       length_field,
-                       fill_mode);
-}
-
-
-HAllocate* HGraphBuilder::JSArrayBuilder::AllocateArray(
-    HValue* capacity,
-    int capacity_upper_bound,
-    HValue* length_field,
-    FillMode fill_mode) {
-  HConstant* elememts_size_upper_bound = capacity->IsInteger32Constant()
-      ? HConstant::cast(capacity)
-      : builder()->EstablishElementsAllocationSize(kind_, capacity_upper_bound);
-
-  HAllocate* array = AllocateArray(capacity, length_field, fill_mode);
-  if (!elements_location_->has_size_upper_bound()) {
-    elements_location_->set_size_upper_bound(elememts_size_upper_bound);
-  }
-  return array;
-}
-
-
-HAllocate* HGraphBuilder::JSArrayBuilder::AllocateArray(
-    HValue* capacity,
     HValue* length_field,
     FillMode fill_mode) {
   // These HForceRepresentations are because we store these as fields in the
@@ -3506,7 +3680,8 @@
       break_scope_(NULL),
       inlined_count_(0),
       globals_(10, info->zone()),
-      osr_(new (info->zone()) HOsrBuilder(this)) {
+      osr_(new (info->zone()) HOsrBuilder(this)),
+      bounds_(info->zone()) {
   // This is not initialized in the initializer list because the
   // constructor for the initial state relies on function_state_ == NULL
   // to know it's the initial state.
@@ -3599,7 +3774,6 @@
   return os << "B" << b.block_id();
 }
 
-
 HGraph::HGraph(CompilationInfo* info, CallInterfaceDescriptor descriptor)
     : isolate_(info->isolate()),
       next_block_id_(0),
@@ -3612,21 +3786,19 @@
       info_(info),
       descriptor_(descriptor),
       zone_(info->zone()),
+      allow_code_motion_(false),
       use_optimistic_licm_(false),
       depends_on_empty_array_proto_elements_(false),
       type_change_checksum_(0),
       maximum_environment_size_(0),
       no_side_effects_scope_count_(0),
-      disallow_adding_new_values_(false) {
+      disallow_adding_new_values_(false),
+      inlined_function_infos_(info->zone()) {
   if (info->IsStub()) {
     // For stubs, explicitly add the context to the environment.
     start_environment_ = new (zone_)
         HEnvironment(zone_, descriptor.GetRegisterParameterCount() + 1);
   } else {
-    if (info->is_tracking_positions()) {
-      info->TraceInlinedFunction(info->shared_info(), SourcePosition::Unknown(),
-                                 InlinedFunctionInfo::kNoParentId);
-    }
     start_environment_ =
         new(zone_) HEnvironment(NULL, info->scope(), info->closure(), zone_);
   }
@@ -3655,7 +3827,8 @@
 
 int HGraph::SourcePositionToScriptPosition(SourcePosition pos) {
   return (FLAG_hydrogen_track_positions && !pos.IsUnknown())
-             ? info()->start_position_for(pos.inlining_id()) + pos.position()
+             ? inlined_function_infos_.at(pos.inlining_id()).start_position +
+                   pos.position()
              : pos.raw();
 }
 
@@ -4445,6 +4618,11 @@
       !type_info->matches_inlined_type_change_checksum(composite_checksum));
   type_info->set_inlined_type_change_checksum(composite_checksum);
 
+  // Set this predicate early to avoid handle deref during graph optimization.
+  graph()->set_allow_code_motion(
+      current_info()->IsStub() ||
+      current_info()->shared_info()->opt_count() + 1 < FLAG_max_opt_count);
+
   // Perform any necessary OSR-specific cleanups or changes to the graph.
   osr()->FinishGraph();
 
@@ -4991,7 +5169,7 @@
   CHECK_ALIVE(VisitForValue(stmt->tag()));
   Add<HSimulate>(stmt->EntryId());
   HValue* tag_value = Top();
-  Type* tag_type = stmt->tag()->bounds().lower;
+  Type* tag_type = bounds_.get(stmt->tag()).lower;
 
   // 1. Build all the tests, with dangling true branches
   BailoutId default_id = BailoutId::None();
@@ -5008,7 +5186,7 @@
     if (current_block() == NULL) return Bailout(kUnsupportedSwitchStatement);
     HValue* label_value = Pop();
 
-    Type* label_type = clause->label()->bounds().lower;
+    Type* label_type = bounds_.get(clause->label()).lower;
     Type* combined_type = clause->compare_type();
     HControlInstruction* compare = BuildCompareInstruction(
         Token::EQ_STRICT, tag_value, label_value, tag_type, label_type,
@@ -5500,8 +5678,8 @@
     FastNewClosureDescriptor descriptor(isolate());
     HValue* values[] = {context(), shared_info_value};
     HConstant* stub_value = Add<HConstant>(stub.GetCode());
-    instr = New<HCallWithDescriptor>(
-        stub_value, 0, descriptor, Vector<HValue*>(values, arraysize(values)));
+    instr = New<HCallWithDescriptor>(stub_value, 0, descriptor,
+                                     ArrayVector(values));
   } else {
     Add<HPushArguments>(shared_info_value);
     Runtime::FunctionId function_id =
@@ -5593,6 +5771,7 @@
       return kUseGeneric;
     case LookupIterator::DATA:
       if (access_type == STORE && it->IsReadOnly()) return kUseGeneric;
+      if (!it->GetHolder<JSObject>()->IsJSGlobalObject()) return kUseGeneric;
       return kUseCell;
     case LookupIterator::JSPROXY:
     case LookupIterator::TRANSITION:
@@ -5746,9 +5925,6 @@
         case CONST:
           mode = HLoadContextSlot::kCheckDeoptimize;
           break;
-        case CONST_LEGACY:
-          mode = HLoadContextSlot::kCheckReturnUndefined;
-          break;
         default:
           mode = HLoadContextSlot::kNoCheck;
           break;
@@ -5782,9 +5958,8 @@
       context(), AddThisFunction(), Add<HConstant>(expr->literal_index()),
       Add<HConstant>(expr->pattern()), Add<HConstant>(expr->flags())};
   HConstant* stub_value = Add<HConstant>(callable.code());
-  HInstruction* instr =
-      New<HCallWithDescriptor>(stub_value, 0, callable.descriptor(),
-                               Vector<HValue*>(values, arraysize(values)));
+  HInstruction* instr = New<HCallWithDescriptor>(
+      stub_value, 0, callable.descriptor(), ArrayVector(values));
   return ast_context()->ReturnInstruction(instr, expr->id());
 }
 
@@ -5995,59 +6170,29 @@
   Handle<AllocationSite> site;
   Handle<LiteralsArray> literals(environment()->closure()->literals(),
                                  isolate());
-  bool uninitialized = false;
   Handle<Object> literals_cell(literals->literal(expr->literal_index()),
                                isolate());
   Handle<JSObject> boilerplate_object;
-  if (literals_cell->IsUndefined()) {
-    uninitialized = true;
-    Handle<Object> raw_boilerplate;
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-        isolate(), raw_boilerplate,
-        Runtime::CreateArrayLiteralBoilerplate(isolate(), literals,
-                                               expr->constant_elements()),
-        Bailout(kArrayBoilerplateCreationFailed));
-
-    boilerplate_object = Handle<JSObject>::cast(raw_boilerplate);
-    AllocationSiteCreationContext creation_context(isolate());
-    site = creation_context.EnterNewScope();
-    if (JSObject::DeepWalk(boilerplate_object, &creation_context).is_null()) {
-      return Bailout(kArrayBoilerplateCreationFailed);
-    }
-    creation_context.ExitScope(site, boilerplate_object);
-    literals->set_literal(expr->literal_index(), *site);
-
-    if (boilerplate_object->elements()->map() ==
-        isolate()->heap()->fixed_cow_array_map()) {
-      isolate()->counters()->cow_arrays_created_runtime()->Increment();
-    }
-  } else {
+  if (!literals_cell->IsUndefined()) {
     DCHECK(literals_cell->IsAllocationSite());
     site = Handle<AllocationSite>::cast(literals_cell);
     boilerplate_object = Handle<JSObject>(
         JSObject::cast(site->transition_info()), isolate());
   }
 
-  DCHECK(!boilerplate_object.is_null());
-  DCHECK(site->SitePointsToLiteral());
-
-  ElementsKind boilerplate_elements_kind =
-      boilerplate_object->GetElementsKind();
-
   // Check whether to use fast or slow deep-copying for boilerplate.
   int max_properties = kMaxFastLiteralProperties;
-  if (IsFastLiteral(boilerplate_object,
-                    kMaxFastLiteralDepth,
+  if (!boilerplate_object.is_null() &&
+      IsFastLiteral(boilerplate_object, kMaxFastLiteralDepth,
                     &max_properties)) {
+    DCHECK(site->SitePointsToLiteral());
     AllocationSiteUsageContext site_context(isolate(), site, false);
     site_context.EnterNewScope();
     literal = BuildFastLiteral(boilerplate_object, &site_context);
     site_context.ExitScope(site, boilerplate_object);
   } else {
     NoObservableSideEffectsScope no_effects(this);
-    // Boilerplate already exists and constant elements are never accessed,
-    // pass an empty fixed array to the runtime function instead.
-    Handle<FixedArray> constants = isolate()->factory()->empty_fixed_array();
+    Handle<FixedArray> constants = expr->constant_elements();
     int literal_index = expr->literal_index();
     int flags = expr->ComputeFlags(true);
 
@@ -6058,7 +6203,9 @@
     literal = Add<HCallRuntime>(Runtime::FunctionForId(function_id), 4);
 
     // Register to deopt if the boilerplate ElementsKind changes.
-    top_info()->dependencies()->AssumeTransitionStable(site);
+    if (!site.is_null()) {
+      top_info()->dependencies()->AssumeTransitionStable(site);
+    }
   }
 
   // The array is expected in the bailout environment during computation
@@ -6083,21 +6230,28 @@
 
     HValue* key = Add<HConstant>(i);
 
-    switch (boilerplate_elements_kind) {
-      case FAST_SMI_ELEMENTS:
-      case FAST_HOLEY_SMI_ELEMENTS:
-      case FAST_ELEMENTS:
-      case FAST_HOLEY_ELEMENTS:
-      case FAST_DOUBLE_ELEMENTS:
-      case FAST_HOLEY_DOUBLE_ELEMENTS: {
-        HStoreKeyed* instr = Add<HStoreKeyed>(elements, key, value, nullptr,
-                                              boilerplate_elements_kind);
-        instr->SetUninitialized(uninitialized);
-        break;
+    if (!boilerplate_object.is_null()) {
+      ElementsKind boilerplate_elements_kind =
+          boilerplate_object->GetElementsKind();
+      switch (boilerplate_elements_kind) {
+        case FAST_SMI_ELEMENTS:
+        case FAST_HOLEY_SMI_ELEMENTS:
+        case FAST_ELEMENTS:
+        case FAST_HOLEY_ELEMENTS:
+        case FAST_DOUBLE_ELEMENTS:
+        case FAST_HOLEY_DOUBLE_ELEMENTS: {
+          Add<HStoreKeyed>(elements, key, value, nullptr,
+                           boilerplate_elements_kind);
+          break;
+        }
+        default:
+          UNREACHABLE();
+          break;
       }
-      default:
-        UNREACHABLE();
-        break;
+    } else {
+      HInstruction* instr = BuildKeyedGeneric(
+          STORE, expr, expr->LiteralFeedbackSlot(), literal, key, value);
+      AddInstruction(instr);
     }
 
     Add<HSimulate>(expr->GetIdForElement(i));
@@ -6176,10 +6330,9 @@
       HInstruction* heap_number_size = Add<HConstant>(HeapNumber::kSize);
 
       // TODO(hpayer): Allocation site pretenuring support.
-      HInstruction* heap_number = Add<HAllocate>(heap_number_size,
-          HType::HeapObject(),
-          NOT_TENURED,
-          MUTABLE_HEAP_NUMBER_TYPE);
+      HInstruction* heap_number =
+          Add<HAllocate>(heap_number_size, HType::HeapObject(), NOT_TENURED,
+                         MUTABLE_HEAP_NUMBER_TYPE, graph()->GetConstant0());
       AddStoreMapConstant(
           heap_number, isolate()->factory()->mutable_heap_number_map());
       Add<HStoreNamedField>(heap_number, HObjectAccess::ForHeapNumberValue(),
@@ -6761,7 +6914,6 @@
       // possible if the receiver had a known map at some point, and no
       // map-changing stores have happened to it since.
       Handle<Map> candidate_map = receiver->GetMonomorphicJSObjectMap();
-      if (candidate_map->is_observed()) return false;
       for (HInstruction* current = builder->current_block()->last();
            current != nullptr; current = current->previous()) {
         if (current->IsBlockEntry()) break;
@@ -7026,7 +7178,11 @@
           case CONST:
             return Bailout(kNonInitializerAssignmentToConst);
           case CONST_LEGACY:
-            return ast_context()->ReturnValue(Pop());
+            if (is_strict(function_language_mode())) {
+              return Bailout(kNonInitializerAssignmentToConst);
+            } else {
+              return ast_context()->ReturnValue(Pop());
+            }
           default:
             mode = HStoreContextSlot::kNoCheck;
         }
@@ -7095,10 +7251,16 @@
       }
     } else if (var->mode() == CONST_LEGACY) {
       if (expr->op() != Token::INIT) {
-        CHECK_ALIVE(VisitForValue(expr->value()));
-        return ast_context()->ReturnValue(Pop());
+        if (is_strict(function_language_mode())) {
+          return Bailout(kNonInitializerAssignmentToConst);
+        } else {
+          CHECK_ALIVE(VisitForValue(expr->value()));
+          return ast_context()->ReturnValue(Pop());
+        }
       }
 
+      // TODO(adamk): Is this required? Legacy const variables are always
+      // initialized before use.
       if (var->IsStackAllocated()) {
         // We insert a use of the old value to detect unsupported uses of const
         // variables (e.g. initialization inside a loop).
@@ -7170,11 +7332,7 @@
           }
         } else {
           DCHECK_EQ(Token::INIT, expr->op());
-          if (var->mode() == CONST_LEGACY) {
-            mode = HStoreContextSlot::kCheckIgnoreAssignment;
-          } else {
-            mode = HStoreContextSlot::kNoCheck;
-          }
+          mode = HStoreContextSlot::kNoCheck;
         }
 
         HValue* context = BuildContextChainWalk(var);
@@ -7546,9 +7704,13 @@
   // Get transition target for each map (NULL == no transition).
   for (int i = 0; i < maps->length(); ++i) {
     Handle<Map> map = maps->at(i);
-    Handle<Map> transitioned_map =
-        Map::FindTransitionedMap(map, &possible_transitioned_maps);
-    transition_target.Add(transitioned_map);
+    Map* transitioned_map =
+        map->FindElementsKindTransitionedMap(&possible_transitioned_maps);
+    if (transitioned_map != nullptr) {
+      transition_target.Add(handle(transitioned_map));
+    } else {
+      transition_target.Add(Handle<Map>());
+    }
   }
 
   MapHandleList untransitionable_maps(maps->length());
@@ -8025,7 +8187,7 @@
   HConstant* stub = Add<HConstant>(callable.code());
 
   return New<HCallWithDescriptor>(stub, argument_count, callable.descriptor(),
-                                  Vector<HValue*>(op_vals, arraysize(op_vals)),
+                                  ArrayVector(op_vals),
                                   syntactic_tail_call_mode);
 }
 
@@ -8050,7 +8212,7 @@
   HConstant* stub = Add<HConstant>(callable.code());
 
   return New<HCallWithDescriptor>(stub, argument_count, callable.descriptor(),
-                                  Vector<HValue*>(op_vals, arraysize(op_vals)),
+                                  ArrayVector(op_vals),
                                   syntactic_tail_call_mode);
 }
 
@@ -8402,7 +8564,7 @@
       top_info()->parse_info()->ast_value_factory());
   parse_info.set_ast_value_factory_owned(false);
 
-  CompilationInfo target_info(&parse_info);
+  CompilationInfo target_info(&parse_info, target);
   Handle<SharedFunctionInfo> target_shared(target->shared());
 
   if (inlining_kind != CONSTRUCT_CALL_RETURN &&
@@ -8424,6 +8586,10 @@
     TraceInline(target, caller, "parse failure");
     return false;
   }
+  if (target_shared->dont_crankshaft()) {
+    TraceInline(target, caller, "ParseAndAnalyze found incompatibility");
+    return false;
+  }
 
   if (target_info.scope()->num_heap_slots() > 0) {
     TraceInline(target, caller, "target has context-allocated variables");
@@ -8496,13 +8662,13 @@
   // Type-check the inlined function.
   DCHECK(target_shared->has_deoptimization_support());
   AstTyper(target_info.isolate(), target_info.zone(), target_info.closure(),
-           target_info.scope(), target_info.osr_ast_id(), target_info.literal())
+           target_info.scope(), target_info.osr_ast_id(), target_info.literal(),
+           &bounds_)
       .Run();
 
   int inlining_id = 0;
   if (top_info()->is_tracking_positions()) {
-    inlining_id = top_info()->TraceInlinedFunction(
-        target_shared, source_position(), function_state()->inlining_id());
+    inlining_id = TraceInlinedFunction(target_shared, source_position());
   }
 
   // Save the pending call context. Set up new one for the inlined function.
@@ -8767,8 +8933,7 @@
   return !receiver_map.is_null() && receiver_map->prototype()->IsJSObject() &&
          receiver_map->instance_type() == JS_ARRAY_TYPE &&
          IsFastElementsKind(receiver_map->elements_kind()) &&
-         !receiver_map->is_dictionary_map() && !receiver_map->is_observed() &&
-         receiver_map->is_extensible() &&
+         !receiver_map->is_dictionary_map() && receiver_map->is_extensible() &&
          (!receiver_map->is_prototype_map() || receiver_map->is_stable()) &&
          !IsReadOnlyLengthDescriptor(receiver_map);
 }
@@ -9145,7 +9310,6 @@
       if (!receiver_map->prototype()->IsJSObject()) return false;
       ElementsKind kind = receiver_map->elements_kind();
       if (!IsFastElementsKind(kind)) return false;
-      if (receiver_map->is_observed()) return false;
       if (argument_count != 2) return false;
       if (!receiver_map->is_extensible()) return false;
 
@@ -10091,9 +10255,8 @@
   Callable callable = CodeFactory::Construct(isolate());
   HConstant* stub = Add<HConstant>(callable.code());
   PushArgumentsFromEnvironment(argument_count);
-  HInstruction* construct =
-      New<HCallWithDescriptor>(stub, argument_count, callable.descriptor(),
-                               Vector<HValue*>(op_vals, arraysize(op_vals)));
+  HInstruction* construct = New<HCallWithDescriptor>(
+      stub, argument_count, callable.descriptor(), ArrayVector(op_vals));
   return ast_context()->ReturnInstruction(construct, expr->id());
 }
 
@@ -10202,7 +10365,8 @@
   length = AddUncasted<HForceRepresentation>(length, Representation::Smi());
   HValue* elements = Add<HAllocate>(
       Add<HConstant>(FixedTypedArrayBase::kHeaderSize), HType::HeapObject(),
-      NOT_TENURED, external_array_map->instance_type());
+      NOT_TENURED, external_array_map->instance_type(),
+      graph()->GetConstant0());
 
   AddStoreMapConstant(elements, external_array_map);
   Add<HStoreNamedField>(elements,
@@ -10258,9 +10422,9 @@
   length = AddUncasted<HForceRepresentation>(length, Representation::Smi());
   Handle<Map> fixed_typed_array_map(
       isolate()->heap()->MapForFixedTypedArray(array_type));
-  HAllocate* elements =
-      Add<HAllocate>(total_size, HType::HeapObject(), NOT_TENURED,
-                     fixed_typed_array_map->instance_type());
+  HAllocate* elements = Add<HAllocate>(
+      total_size, HType::HeapObject(), NOT_TENURED,
+      fixed_typed_array_map->instance_type(), graph()->GetConstant0());
 
 #ifndef V8_HOST_ARCH_64_BIT
   if (array_type == kExternalFloat64Array) {
@@ -10972,9 +11136,9 @@
     HValue* left,
     HValue* right,
     PushBeforeSimulateBehavior push_sim_result) {
-  Type* left_type = expr->left()->bounds().lower;
-  Type* right_type = expr->right()->bounds().lower;
-  Type* result_type = expr->bounds().lower;
+  Type* left_type = bounds_.get(expr->left()).lower;
+  Type* right_type = bounds_.get(expr->right()).lower;
+  Type* result_type = bounds_.get(expr).lower;
   Maybe<int> fixed_right_arg = expr->fixed_right_arg();
   Handle<AllocationSite> allocation_site = expr->allocation_site();
 
@@ -11159,46 +11323,53 @@
   // inline several instructions (including the two pushes) for every tagged
   // operation in optimized code, which is more expensive, than a stub call.
   if (graph()->info()->IsStub() && is_non_primitive) {
-    Runtime::FunctionId function_id;
+    HValue* values[] = {context(), left, right};
+#define GET_STUB(Name)                                                       \
+  do {                                                                       \
+    Callable callable = CodeFactory::Name(isolate());                        \
+    HValue* stub = Add<HConstant>(callable.code());                          \
+    instr = AddUncasted<HCallWithDescriptor>(stub, 0, callable.descriptor(), \
+                                             ArrayVector(values));           \
+  } while (false)
+
     switch (op) {
       default:
         UNREACHABLE();
       case Token::ADD:
-        function_id = Runtime::kAdd;
+        GET_STUB(Add);
         break;
       case Token::SUB:
-        function_id = Runtime::kSubtract;
+        GET_STUB(Subtract);
         break;
       case Token::MUL:
-        function_id = Runtime::kMultiply;
+        GET_STUB(Multiply);
         break;
       case Token::DIV:
-        function_id = Runtime::kDivide;
+        GET_STUB(Divide);
         break;
       case Token::MOD:
-        function_id = Runtime::kModulus;
+        GET_STUB(Modulus);
         break;
       case Token::BIT_OR:
-        function_id = Runtime::kBitwiseOr;
+        GET_STUB(BitwiseOr);
         break;
       case Token::BIT_AND:
-        function_id = Runtime::kBitwiseAnd;
+        GET_STUB(BitwiseAnd);
         break;
       case Token::BIT_XOR:
-        function_id = Runtime::kBitwiseXor;
+        GET_STUB(BitwiseXor);
         break;
       case Token::SAR:
-        function_id = Runtime::kShiftRight;
+        GET_STUB(ShiftRight);
         break;
       case Token::SHR:
-        function_id = Runtime::kShiftRightLogical;
+        GET_STUB(ShiftRightLogical);
         break;
       case Token::SHL:
-        function_id = Runtime::kShiftLeft;
+        GET_STUB(ShiftLeft);
         break;
     }
-    Add<HPushArguments>(left, right);
-    instr = AddUncasted<HCallRuntime>(Runtime::FunctionForId(function_id), 2);
+#undef GET_STUB
   } else {
     switch (op) {
       case Token::ADD:
@@ -11502,8 +11673,8 @@
     return ast_context()->ReturnControl(instr, expr->id());
   }
 
-  Type* left_type = expr->left()->bounds().lower;
-  Type* right_type = expr->right()->bounds().lower;
+  Type* left_type = bounds_.get(expr->left()).lower;
+  Type* right_type = bounds_.get(expr->right()).lower;
   Type* combined_type = expr->combined_type();
 
   CHECK_ALIVE(VisitForValue(expr->left()));
@@ -11520,18 +11691,24 @@
   }
 
   if (op == Token::INSTANCEOF) {
-    DCHECK(!FLAG_harmony_instanceof);
     // Check to see if the rhs of the instanceof is a known function.
     if (right->IsConstant() &&
         HConstant::cast(right)->handle(isolate())->IsJSFunction()) {
-      Handle<JSFunction> constructor =
+      Handle<JSFunction> function =
           Handle<JSFunction>::cast(HConstant::cast(right)->handle(isolate()));
-      if (constructor->IsConstructor() &&
-          !constructor->map()->has_non_instance_prototype()) {
-        JSFunction::EnsureHasInitialMap(constructor);
-        DCHECK(constructor->has_initial_map());
-        Handle<Map> initial_map(constructor->initial_map(), isolate());
+      // Make sure the prototype of {function} is the %FunctionPrototype%, and
+      // it already has a meaningful initial map (i.e. we constructed at least
+      // one instance using the constructor {function}).
+      // We can only use the fast case if @@hasInstance was not used so far.
+      if (function->has_initial_map() &&
+          function->map()->prototype() ==
+              function->native_context()->closure() &&
+          !function->map()->has_non_instance_prototype() &&
+          isolate()->IsHasInstanceLookupChainIntact()) {
+        Handle<Map> initial_map(function->initial_map(), isolate());
         top_info()->dependencies()->AssumeInitialMapCantChange(initial_map);
+        top_info()->dependencies()->AssumePropertyCell(
+            isolate()->factory()->has_instance_protector());
         HInstruction* prototype =
             Add<HConstant>(handle(initial_map->prototype(), isolate()));
         HHasInPrototypeChainAndBranch* result =
@@ -11540,13 +11717,21 @@
       }
     }
 
-    HInstanceOf* result = New<HInstanceOf>(left, right);
+    Callable callable = CodeFactory::InstanceOf(isolate());
+    HValue* stub = Add<HConstant>(callable.code());
+    HValue* values[] = {context(), left, right};
+    HCallWithDescriptor* result = New<HCallWithDescriptor>(
+        stub, 0, callable.descriptor(), ArrayVector(values));
+    result->set_type(HType::Boolean());
     return ast_context()->ReturnInstruction(result, expr->id());
 
   } else if (op == Token::IN) {
-    Add<HPushArguments>(left, right);
+    Callable callable = CodeFactory::HasProperty(isolate());
+    HValue* stub = Add<HConstant>(callable.code());
+    HValue* values[] = {context(), left, right};
     HInstruction* result =
-        New<HCallRuntime>(Runtime::FunctionForId(Runtime::kHasProperty), 2);
+        New<HCallWithDescriptor>(stub, 0, callable.descriptor(),
+                                 Vector<HValue*>(values, arraysize(values)));
     return ast_context()->ReturnInstruction(result, expr->id());
   }
 
@@ -11827,8 +12012,9 @@
   }
   top_info()->dependencies()->AssumeTransitionStable(current_site);
 
-  HInstruction* object = Add<HAllocate>(
-      object_size_constant, type, pretenure_flag, instance_type, top_site);
+  HInstruction* object =
+      Add<HAllocate>(object_size_constant, type, pretenure_flag, instance_type,
+                     graph()->GetConstant0(), top_site);
 
   // If allocation folding reaches Page::kMaxRegularHeapObjectSize the
   // elements array may not get folded into the object. Hence, we set the
@@ -11869,7 +12055,8 @@
     InstanceType instance_type = boilerplate_object->HasFastDoubleElements()
         ? FIXED_DOUBLE_ARRAY_TYPE : FIXED_ARRAY_TYPE;
     object_elements = Add<HAllocate>(object_elements_size, HType::HeapObject(),
-                                     pretenure_flag, instance_type, top_site);
+                                     pretenure_flag, instance_type,
+                                     graph()->GetConstant0(), top_site);
     BuildEmitElements(boilerplate_object, elements, object_elements,
                       site_context);
     Add<HStoreNamedField>(object, HObjectAccess::ForElementsPointer(),
@@ -11970,9 +12157,9 @@
       if (representation.IsDouble()) {
         // Allocate a HeapNumber box and store the value into it.
         HValue* heap_number_constant = Add<HConstant>(HeapNumber::kSize);
-        HInstruction* double_box =
-            Add<HAllocate>(heap_number_constant, HType::HeapObject(),
-                pretenure_flag, MUTABLE_HEAP_NUMBER_TYPE);
+        HInstruction* double_box = Add<HAllocate>(
+            heap_number_constant, HType::HeapObject(), pretenure_flag,
+            MUTABLE_HEAP_NUMBER_TYPE, graph()->GetConstant0());
         AddStoreMapConstant(double_box,
             isolate()->factory()->mutable_heap_number_map());
         // Unwrap the mutable heap number from the boilerplate.
@@ -12113,10 +12300,7 @@
     Handle<FixedArray> array =
        isolate()->factory()->NewFixedArray(globals_.length(), TENURED);
     for (int i = 0; i < globals_.length(); ++i) array->set(i, *globals_.at(i));
-    int flags =
-        DeclareGlobalsEvalFlag::encode(current_info()->is_eval()) |
-        DeclareGlobalsNativeFlag::encode(current_info()->is_native()) |
-        DeclareGlobalsLanguageMode::encode(current_info()->language_mode());
+    int flags = current_info()->GetDeclareGlobalsFlags();
     Add<HDeclareGlobals>(array, flags);
     globals_.Rewind(0);
   }
@@ -12128,14 +12312,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_.Add(variable->name(), zone());
-      globals_.Add(variable->binding_needs_init()
-                       ? isolate()->factory()->the_hole_value()
-                       : isolate()->factory()->undefined_value(), zone());
+      globals_.Add(isolate()->factory()->undefined_value(), zone());
       return;
     case VariableLocation::PARAMETER:
     case VariableLocation::LOCAL:
@@ -12291,9 +12474,8 @@
     Callable callable = CodeFactory::ToInteger(isolate());
     HValue* stub = Add<HConstant>(callable.code());
     HValue* values[] = {context(), input};
-    HInstruction* result =
-        New<HCallWithDescriptor>(stub, 0, callable.descriptor(),
-                                 Vector<HValue*>(values, arraysize(values)));
+    HInstruction* result = New<HCallWithDescriptor>(
+        stub, 0, callable.descriptor(), ArrayVector(values));
     return ast_context()->ReturnInstruction(result, call->id());
   }
 }
@@ -12315,9 +12497,8 @@
     Callable callable = CodeFactory::ToName(isolate());
     HValue* stub = Add<HConstant>(callable.code());
     HValue* values[] = {context(), input};
-    HInstruction* result =
-        New<HCallWithDescriptor>(stub, 0, callable.descriptor(),
-                                 Vector<HValue*>(values, arraysize(values)));
+    HInstruction* result = New<HCallWithDescriptor>(
+        stub, 0, callable.descriptor(), ArrayVector(values));
     return ast_context()->ReturnInstruction(result, call->id());
   }
 }
@@ -12342,9 +12523,8 @@
     Callable callable = CodeFactory::ToString(isolate());
     HValue* stub = Add<HConstant>(callable.code());
     HValue* values[] = {context(), input};
-    HInstruction* result =
-        New<HCallWithDescriptor>(stub, 0, callable.descriptor(),
-                                 Vector<HValue*>(values, arraysize(values)));
+    HInstruction* result = New<HCallWithDescriptor>(
+        stub, 0, callable.descriptor(), ArrayVector(values));
     return ast_context()->ReturnInstruction(result, call->id());
   }
 }
@@ -12357,9 +12537,8 @@
   HValue* input = Pop();
   HValue* stub = Add<HConstant>(callable.code());
   HValue* values[] = {context(), input};
-  HInstruction* result =
-      New<HCallWithDescriptor>(stub, 0, callable.descriptor(),
-                               Vector<HValue*>(values, arraysize(values)));
+  HInstruction* result = New<HCallWithDescriptor>(
+      stub, 0, callable.descriptor(), ArrayVector(values));
   return ast_context()->ReturnInstruction(result, call->id());
 }
 
@@ -12532,9 +12711,9 @@
   Callable callable = CodeFactory::SubString(isolate());
   HValue* stub = Add<HConstant>(callable.code());
   HValue* values[] = {context()};
-  HInstruction* result = New<HCallWithDescriptor>(
-      stub, call->arguments()->length(), callable.descriptor(),
-      Vector<HValue*>(values, arraysize(values)));
+  HInstruction* result =
+      New<HCallWithDescriptor>(stub, call->arguments()->length(),
+                               callable.descriptor(), ArrayVector(values));
   result->set_type(HType::String());
   return ast_context()->ReturnInstruction(result, call->id());
 }
@@ -12547,8 +12726,8 @@
   FastNewObjectDescriptor descriptor(isolate());
   HValue* values[] = {context(), Pop(), Pop()};
   HConstant* stub_value = Add<HConstant>(stub.GetCode());
-  HInstruction* result = New<HCallWithDescriptor>(
-      stub_value, 0, descriptor, Vector<HValue*>(values, arraysize(values)));
+  HInstruction* result =
+      New<HCallWithDescriptor>(stub_value, 0, descriptor, ArrayVector(values));
   return ast_context()->ReturnInstruction(result, call->id());
 }
 
@@ -12560,9 +12739,9 @@
   Callable callable = CodeFactory::RegExpExec(isolate());
   HValue* stub = Add<HConstant>(callable.code());
   HValue* values[] = {context()};
-  HInstruction* result = New<HCallWithDescriptor>(
-      stub, call->arguments()->length(), callable.descriptor(),
-      Vector<HValue*>(values, arraysize(values)));
+  HInstruction* result =
+      New<HCallWithDescriptor>(stub, call->arguments()->length(),
+                               callable.descriptor(), ArrayVector(values));
   return ast_context()->ReturnInstruction(result, call->id());
 }
 
@@ -12644,54 +12823,15 @@
 void HOptimizedGraphBuilder::GenerateCall(CallRuntime* call) {
   DCHECK_LE(2, call->arguments()->length());
   CHECK_ALIVE(VisitExpressions(call->arguments()));
-
-  // Try and customize ES6 instanceof here.
-  // We should at least have the constructor on the expression stack.
-  if (FLAG_harmony_instanceof && FLAG_harmony_instanceof_opt &&
-      call->arguments()->length() == 3) {
-    HValue* target = environment()->ExpressionStackAt(2);
-    if (target->IsConstant()) {
-      HConstant* constant_function = HConstant::cast(target);
-      if (constant_function->handle(isolate())->IsJSFunction()) {
-        Handle<JSFunction> func =
-            Handle<JSFunction>::cast(constant_function->handle(isolate()));
-        if (*func == isolate()->native_context()->ordinary_has_instance()) {
-          // Look at the function, which will be argument 1.
-          HValue* right = environment()->ExpressionStackAt(1);
-          if (right->IsConstant() &&
-              HConstant::cast(right)->handle(isolate())->IsJSFunction()) {
-            Handle<JSFunction> constructor = Handle<JSFunction>::cast(
-                HConstant::cast(right)->handle(isolate()));
-            if (constructor->IsConstructor() &&
-                !constructor->map()->has_non_instance_prototype()) {
-              JSFunction::EnsureHasInitialMap(constructor);
-              DCHECK(constructor->has_initial_map());
-              Handle<Map> initial_map(constructor->initial_map(), isolate());
-              top_info()->dependencies()->AssumeInitialMapCantChange(
-                  initial_map);
-              HInstruction* prototype =
-                  Add<HConstant>(handle(initial_map->prototype(), isolate()));
-              HValue* left = environment()->ExpressionStackAt(0);
-              HHasInPrototypeChainAndBranch* result =
-                  New<HHasInPrototypeChainAndBranch>(left, prototype);
-              Drop(3);
-              return ast_context()->ReturnControl(result, call->id());
-            }
-          }
-        }
-      }
-    }
-  }
-
   CallTrampolineDescriptor descriptor(isolate());
   PushArgumentsFromEnvironment(call->arguments()->length() - 1);
   HValue* trampoline = Add<HConstant>(isolate()->builtins()->Call());
   HValue* target = Pop();
   HValue* values[] = {context(), target,
                       Add<HConstant>(call->arguments()->length() - 2)};
-  HInstruction* result = New<HCallWithDescriptor>(
-      trampoline, call->arguments()->length() - 1, descriptor,
-      Vector<HValue*>(values, arraysize(values)));
+  HInstruction* result =
+      New<HCallWithDescriptor>(trampoline, call->arguments()->length() - 1,
+                               descriptor, ArrayVector(values));
   return ast_context()->ReturnInstruction(result, call->id());
 }
 
@@ -12793,7 +12933,7 @@
   // Allocate the table and add the proper map.
   HValue* table =
       Add<HAllocate>(Add<HConstant>(kSizeInBytes), HType::HeapObject(),
-                     NOT_TENURED, FIXED_ARRAY_TYPE);
+                     NOT_TENURED, FIXED_ARRAY_TYPE, graph()->GetConstant0());
   AddStoreMapConstant(table, isolate()->factory()->ordered_hash_table_map());
 
   // Initialize the FixedArray...
@@ -12923,13 +13063,6 @@
   return ast_context()->ReturnValue(value);
 }
 
-void HOptimizedGraphBuilder::GenerateGetOrdinaryHasInstance(CallRuntime* call) {
-  DCHECK(call->arguments()->length() == 0);
-  // ordinary_has_instance is immutable so we can treat it as a constant.
-  HValue* value = Add<HConstant>(isolate()->ordinary_has_instance());
-  return ast_context()->ReturnValue(value);
-}
-
 #undef CHECK_BAILOUT
 #undef CHECK_ALIVE
 
@@ -13251,13 +13384,24 @@
 
 void HTracer::TraceCompilation(CompilationInfo* info) {
   Tag tag(this, "compilation");
-  base::SmartArrayPointer<char> name = info->GetDebugName();
+  std::string name;
+  Object* source_name = info->script()->name();
+  if (source_name->IsString()) {
+    String* str = String::cast(source_name);
+    if (str->length() > 0) {
+      name.append(str->ToCString().get());
+      name.append(":");
+    }
+  }
+  base::SmartArrayPointer<char> method_name = info->GetDebugName();
+  name.append(method_name.get());
   if (info->IsOptimizing()) {
-    PrintStringProperty("name", name.get());
+    PrintStringProperty("name", name.c_str());
     PrintIndent();
-    trace_.Add("method \"%s:%d\"\n", name.get(), info->optimization_id());
+    trace_.Add("method \"%s:%d\"\n", method_name.get(),
+               info->optimization_id());
   } else {
-    PrintStringProperty("name", name.get());
+    PrintStringProperty("name", name.c_str());
     PrintStringProperty("method", "stub");
   }
   PrintLongProperty("date",
diff --git a/src/crankshaft/hydrogen.h b/src/crankshaft/hydrogen.h
index 10c0baa..3811773 100644
--- a/src/crankshaft/hydrogen.h
+++ b/src/crankshaft/hydrogen.h
@@ -7,12 +7,14 @@
 
 #include "src/accessors.h"
 #include "src/allocation.h"
+#include "src/ast/ast-type-bounds.h"
 #include "src/ast/ast.h"
 #include "src/ast/scopes.h"
 #include "src/bailout-reason.h"
 #include "src/compiler.h"
 #include "src/crankshaft/compilation-phase.h"
 #include "src/crankshaft/hydrogen-instructions.h"
+#include "src/parsing/parser.h"
 #include "src/zone.h"
 
 namespace v8 {
@@ -30,6 +32,28 @@
 class LChunk;
 class LiveRange;
 
+class HCompilationJob final : public CompilationJob {
+ public:
+  explicit HCompilationJob(Handle<JSFunction> function)
+      : CompilationJob(&info_, "Crankshaft"),
+        zone_(function->GetIsolate()->allocator()),
+        parse_info_(&zone_, function),
+        info_(&parse_info_, function),
+        graph_(nullptr),
+        chunk_(nullptr) {}
+
+ protected:
+  virtual Status CreateGraphImpl();
+  virtual Status OptimizeGraphImpl();
+  virtual Status GenerateCodeImpl();
+
+ private:
+  Zone zone_;
+  ParseInfo parse_info_;
+  CompilationInfo info_;
+  HGraph* graph_;
+  LChunk* chunk_;
+};
 
 class HBasicBlock final : public ZoneObject {
  public:
@@ -293,6 +317,11 @@
   HStackCheck* stack_check_;
 };
 
+struct HInlinedFunctionInfo {
+  explicit HInlinedFunctionInfo(int start_position)
+      : start_position(start_position) {}
+  int start_position;
+};
 
 class HGraph final : public ZoneObject {
  public:
@@ -392,13 +421,11 @@
   }
   int maximum_environment_size() { return maximum_environment_size_; }
 
-  bool use_optimistic_licm() {
-    return use_optimistic_licm_;
-  }
+  bool allow_code_motion() const { return allow_code_motion_; }
+  void set_allow_code_motion(bool value) { allow_code_motion_ = value; }
 
-  void set_use_optimistic_licm(bool value) {
-    use_optimistic_licm_ = value;
-  }
+  bool use_optimistic_licm() const { return use_optimistic_licm_; }
+  void set_use_optimistic_licm(bool value) { use_optimistic_licm_ = value; }
 
   void MarkDependsOnEmptyArrayProtoElements() {
     // Add map dependency if not already added.
@@ -444,6 +471,10 @@
   // the corresponding script.
   int SourcePositionToScriptPosition(SourcePosition position);
 
+  ZoneVector<HInlinedFunctionInfo>& inlined_function_infos() {
+    return inlined_function_infos_;
+  }
+
  private:
   HConstant* ReinsertConstantIfNecessary(HConstant* constant);
   HConstant* GetConstant(SetOncePointer<HConstant>* pointer,
@@ -480,6 +511,7 @@
   CallInterfaceDescriptor descriptor_;
   Zone* zone_;
 
+  bool allow_code_motion_;
   bool use_optimistic_licm_;
   bool depends_on_empty_array_proto_elements_;
   int type_change_checksum_;
@@ -487,6 +519,8 @@
   int no_side_effects_scope_count_;
   bool disallow_adding_new_values_;
 
+  ZoneVector<HInlinedFunctionInfo> inlined_function_infos_;
+
   DISALLOW_COPY_AND_ASSIGN(HGraph);
 };
 
@@ -1768,18 +1802,6 @@
     HAllocate* AllocateArray(HValue* capacity,
                              HValue* length_field,
                              FillMode fill_mode = FILL_WITH_HOLE);
-    // Use these allocators when capacity could be unknown at compile time
-    // but its limit is known. For constant |capacity| the value of
-    // |capacity_upper_bound| is ignored and the actual |capacity|
-    // value is used as an upper bound.
-    HAllocate* AllocateArray(HValue* capacity,
-                             int capacity_upper_bound,
-                             HValue* length_field,
-                             FillMode fill_mode = FILL_WITH_HOLE);
-    HAllocate* AllocateArray(HValue* capacity,
-                             HConstant* capacity_upper_bound,
-                             HValue* length_field,
-                             FillMode fill_mode = FILL_WITH_HOLE);
     HValue* GetElementsLocation() { return elements_location_; }
     HValue* EmitMapCode();
 
@@ -1929,6 +1951,9 @@
   SourcePosition source_position() { return position_; }
   void set_source_position(SourcePosition position) { position_ = position; }
 
+  int TraceInlinedFunction(Handle<SharedFunctionInfo> shared,
+                           SourcePosition position);
+
   HValue* BuildAllocateEmptyArrayBuffer(HValue* byte_length);
   template <typename ViewClass>
   void BuildArrayBufferViewInitialization(HValue* obj,
@@ -2170,6 +2195,8 @@
 
   void VisitDeclarations(ZoneList<Declaration*>* declarations) override;
 
+  AstTypeBounds* bounds() { return &bounds_; }
+
   void* operator new(size_t size, Zone* zone) { return zone->New(size); }
   void operator delete(void* pointer, Zone* zone) { }
   void operator delete(void* pointer) { }
@@ -2224,7 +2251,7 @@
     function_state()->ClearInlinedTestContext();
   }
   LanguageMode function_language_mode() {
-    return function_state()->compilation_info()->language_mode();
+    return function_state()->compilation_info()->parse_info()->language_mode();
   }
 
 #define FOR_EACH_HYDROGEN_INTRINSIC(F) \
@@ -2259,7 +2286,6 @@
   F(RegExpSource)                      \
   F(NumberToString)                    \
   F(DebugIsActive)                     \
-  F(GetOrdinaryHasInstance)            \
   /* Typed Arrays */                   \
   F(TypedArrayInitialize)              \
   F(MaxSmi)                            \
@@ -2903,6 +2929,8 @@
 
   HOsrBuilder* osr_;
 
+  AstTypeBounds bounds_;
+
   friend class FunctionState;  // Pushes and pops the state stack.
   friend class AstContext;  // Pushes and pops the AST context stack.
   friend class KeyedLoadFastElementStub;
diff --git a/src/crankshaft/ia32/lithium-codegen-ia32.cc b/src/crankshaft/ia32/lithium-codegen-ia32.cc
index ae1ca1f..fa0a897 100644
--- a/src/crankshaft/ia32/lithium-codegen-ia32.cc
+++ b/src/crankshaft/ia32/lithium-codegen-ia32.cc
@@ -165,11 +165,11 @@
   Comment(";;; Prologue begin");
 
   // Possibly allocate a local context.
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     Comment(";;; Allocate local context");
     bool need_write_barrier = true;
     // Argument to NewContext is the function, which is still in edi.
-    int slots = info_->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
+    int slots = info_->scope()->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
     Safepoint::DeoptMode deopt_mode = Safepoint::kNoLazyDeopt;
     if (info()->scope()->is_script_scope()) {
       __ push(edi);
@@ -274,8 +274,6 @@
       if (info()->saves_caller_doubles()) RestoreCallerDoubles();
       __ call(entry, RelocInfo::RUNTIME_ENTRY);
     }
-    info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                 table_entry->deopt_info.inlining_id);
   }
   if (needs_frame.is_linked()) {
     __ bind(&needs_frame);
@@ -725,13 +723,12 @@
     __ bind(&done);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   if (cc == no_condition && frame_is_built_) {
     DeoptComment(deopt_info);
     __ call(entry, RelocInfo::RUNTIME_ENTRY);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type,
                                             !frame_is_built_);
@@ -2291,16 +2288,6 @@
 }
 
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(esi));
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(eax));
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
@@ -2728,9 +2715,9 @@
     __ j(not_equal, &done);
     if (info()->IsStub()) {
       // A stub can safely convert the hole to undefined only if the array
-      // protector cell contains (Smi) Isolate::kArrayProtectorValid. Otherwise
-      // it needs to bail out.
-      __ mov(result, isolate()->factory()->array_protector());
+      // protector cell contains (Smi) Isolate::kArrayProtectorValid.
+      // Otherwise it needs to bail out.
+      __ LoadRoot(result, Heap::kArrayProtectorRootIndex);
       __ cmp(FieldOperand(result, PropertyCell::kValueOffset),
              Immediate(Smi::FromInt(Isolate::kArrayProtectorValid)));
       DeoptimizeIf(not_equal, instr, Deoptimizer::kHole);
@@ -3091,8 +3078,19 @@
   DeoptimizeIf(not_equal, instr, Deoptimizer::kNotAHeapNumber);
 
   Label slow, allocated, done;
-  Register tmp = input_reg.is(eax) ? ecx : eax;
-  Register tmp2 = tmp.is(ecx) ? edx : input_reg.is(ecx) ? edx : ecx;
+  uint32_t available_regs = eax.bit() | ecx.bit() | edx.bit() | ebx.bit();
+  available_regs &= ~input_reg.bit();
+  if (instr->context()->IsRegister()) {
+    // Make sure that the context isn't overwritten in the AllocateHeapNumber
+    // macro below.
+    available_regs &= ~ToRegister(instr->context()).bit();
+  }
+
+  Register tmp =
+      Register::from_code(base::bits::CountTrailingZeros32(available_regs));
+  available_regs &= ~tmp.bit();
+  Register tmp2 =
+      Register::from_code(base::bits::CountTrailingZeros32(available_regs));
 
   // Preserve the value of all registers.
   PushSafepointRegistersScope scope(this);
@@ -3975,7 +3973,15 @@
 
     LOperand* key = instr->key();
     if (key->IsConstantOperand()) {
-      __ mov(ebx, ToImmediate(key, Representation::Smi()));
+      LConstantOperand* constant_key = LConstantOperand::cast(key);
+      int32_t int_key = ToInteger32(constant_key);
+      if (Smi::IsValid(int_key)) {
+        __ mov(ebx, Immediate(Smi::FromInt(int_key)));
+      } else {
+        // We should never get here at runtime because there is a smi check on
+        // the key before this point.
+        __ int3();
+      }
     } else {
       __ Move(ebx, ToRegister(key));
       __ SmiTag(ebx);
@@ -4854,7 +4860,7 @@
   Register temp = ToRegister(instr->temp());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -4862,6 +4868,10 @@
     DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
 
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
@@ -4892,6 +4902,29 @@
   }
 }
 
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register temp = ToRegister(instr->temp());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, temp, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, temp, flags);
+  }
+}
 
 void LCodeGen::DoDeferredAllocate(LAllocate* instr) {
   Register result = ToRegister(instr->result());
@@ -4931,6 +4964,22 @@
   CallRuntimeFromDeferred(
       Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
   __ StoreToSafepointRegisterSlot(result, eax);
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    __ sub(eax, Immediate(kHeapObjectTag));
+    __ mov(Operand::StaticVariable(allocation_top), eax);
+    __ add(eax, Immediate(kHeapObjectTag));
+  }
 }
 
 
diff --git a/src/crankshaft/ia32/lithium-codegen-ia32.h b/src/crankshaft/ia32/lithium-codegen-ia32.h
index bc61c96..5084819 100644
--- a/src/crankshaft/ia32/lithium-codegen-ia32.h
+++ b/src/crankshaft/ia32/lithium-codegen-ia32.h
@@ -115,8 +115,6 @@
 #undef DECLARE_DO
 
  private:
-  LanguageMode language_mode() const { return info()->language_mode(); }
-
   Scope* scope() const { return scope_; }
 
   XMMRegister double_scratch0() const { return xmm0; }
diff --git a/src/crankshaft/ia32/lithium-ia32.cc b/src/crankshaft/ia32/lithium-ia32.cc
index 4afeef5..0bfdb0d 100644
--- a/src/crankshaft/ia32/lithium-ia32.cc
+++ b/src/crankshaft/ia32/lithium-ia32.cc
@@ -910,7 +910,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -966,17 +966,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), esi);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, eax), instr);
-}
-
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
@@ -2406,14 +2395,19 @@
 
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
-  LOperand* size = instr->size()->IsConstant()
-      ? UseConstant(instr->size())
-      : UseTempRegister(instr->size());
-  LOperand* temp = TempRegister();
-  LAllocate* result = new(zone()) LAllocate(context, size, temp);
-  return AssignPointerMap(DefineAsRegister(result));
+  LOperand* size = instr->size()->IsConstant() ? UseConstant(instr->size())
+                                               : UseRegister(instr->size());
+  if (instr->IsAllocationFolded()) {
+    LOperand* temp = TempRegister();
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LOperand* temp = TempRegister();
+    LAllocate* result = new (zone()) LAllocate(context, size, temp);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 
diff --git a/src/crankshaft/ia32/lithium-ia32.h b/src/crankshaft/ia32/lithium-ia32.h
index 68541a4..d1d5a06 100644
--- a/src/crankshaft/ia32/lithium-ia32.h
+++ b/src/crankshaft/ia32/lithium-ia32.h
@@ -71,6 +71,7 @@
   V(Drop)                                    \
   V(Dummy)                                   \
   V(DummyUse)                                \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -82,7 +83,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -1139,22 +1139,6 @@
 };
 
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() const { return inputs_[0]; }
-  LOperand* left() const { return inputs_[1]; }
-  LOperand* right() const { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 1> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype,
@@ -2401,6 +2385,19 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 1> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp) {
+    inputs_[0] = size;
+    temps_[0] = temp;
+  }
+
+  LOperand* size() const { return inputs_[0]; }
+  LOperand* temp() { return temps_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
 
 class LTypeof final : public LTemplateInstruction<1, 2, 0> {
  public:
diff --git a/src/crankshaft/lithium-allocator.h b/src/crankshaft/lithium-allocator.h
index b648bd8..ce0e565 100644
--- a/src/crankshaft/lithium-allocator.h
+++ b/src/crankshaft/lithium-allocator.h
@@ -6,6 +6,7 @@
 #define V8_CRANKSHAFT_LITHIUM_ALLOCATOR_H_
 
 #include "src/allocation.h"
+#include "src/base/compiler-specific.h"
 #include "src/crankshaft/compilation-phase.h"
 #include "src/crankshaft/lithium.h"
 #include "src/zone.h"
@@ -327,7 +328,7 @@
  public:
   LAllocator(int first_virtual_register, HGraph* graph);
 
-  static void TraceAlloc(const char* msg, ...);
+  static PRINTF_FORMAT(1, 2) void TraceAlloc(const char* msg, ...);
 
   // Checks whether the value of a given virtual register is tagged.
   bool HasTaggedValue(int virtual_register) const;
diff --git a/src/crankshaft/lithium-codegen.cc b/src/crankshaft/lithium-codegen.cc
index 53fedcf..4bf2100 100644
--- a/src/crankshaft/lithium-codegen.cc
+++ b/src/crankshaft/lithium-codegen.cc
@@ -158,8 +158,9 @@
 
 void LCodeGenBase::DeoptComment(const Deoptimizer::DeoptInfo& deopt_info) {
   SourcePosition position = deopt_info.position;
+  int deopt_id = deopt_info.deopt_id;
   int raw_position = position.IsUnknown() ? 0 : position.raw();
-  masm()->RecordDeoptReason(deopt_info.deopt_reason, raw_position);
+  masm()->RecordDeoptReason(deopt_info.deopt_reason, raw_position, deopt_id);
 }
 
 
@@ -364,13 +365,10 @@
   }
 }
 
-
 Deoptimizer::DeoptInfo LCodeGenBase::MakeDeoptInfo(
-    LInstruction* instr, Deoptimizer::DeoptReason deopt_reason) {
+    LInstruction* instr, Deoptimizer::DeoptReason deopt_reason, int deopt_id) {
   Deoptimizer::DeoptInfo deopt_info(instr->hydrogen_value()->position(),
-                                    instr->Mnemonic(), deopt_reason);
-  HEnterInlined* enter_inlined = instr->environment()->entry();
-  deopt_info.inlining_id = enter_inlined ? enter_inlined->inlining_id() : 0;
+                                    deopt_reason, deopt_id);
   return deopt_info;
 }
 }  // namespace internal
diff --git a/src/crankshaft/lithium-codegen.h b/src/crankshaft/lithium-codegen.h
index b1f7dac..70b8897 100644
--- a/src/crankshaft/lithium-codegen.h
+++ b/src/crankshaft/lithium-codegen.h
@@ -12,6 +12,8 @@
 namespace v8 {
 namespace internal {
 
+class HGraph;
+class LChunk;
 class LEnvironment;
 class LInstruction;
 class LPlatformChunk;
@@ -33,10 +35,10 @@
   LPlatformChunk* chunk() const { return chunk_; }
   HGraph* graph() const;
 
-  void FPRINTF_CHECKING Comment(const char* format, ...);
+  void PRINTF_FORMAT(2, 3) Comment(const char* format, ...);
   void DeoptComment(const Deoptimizer::DeoptInfo& deopt_info);
   static Deoptimizer::DeoptInfo MakeDeoptInfo(
-      LInstruction* instr, Deoptimizer::DeoptReason deopt_reason);
+      LInstruction* instr, Deoptimizer::DeoptReason deopt_reason, int deopt_id);
 
   bool GenerateBody();
   virtual void GenerateBodyInstructionPre(LInstruction* instr) {}
diff --git a/src/crankshaft/mips/lithium-codegen-mips.cc b/src/crankshaft/mips/lithium-codegen-mips.cc
index f1717ca..bdc5c64 100644
--- a/src/crankshaft/mips/lithium-codegen-mips.cc
+++ b/src/crankshaft/mips/lithium-codegen-mips.cc
@@ -330,8 +330,6 @@
       } else {
         __ Call(&call_deopt_entry);
       }
-      info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                   table_entry->deopt_info.inlining_id);
     }
 
     if (needs_frame.is_linked()) {
@@ -789,7 +787,7 @@
     __ bind(&skip);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   // Go through jump table if we need to handle condition, build frame, or
@@ -798,7 +796,6 @@
       !info()->saves_caller_doubles()) {
     DeoptComment(deopt_info);
     __ Call(entry, RelocInfo::RUNTIME_ENTRY, condition, src1, src2);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type,
                                             !frame_is_built_);
@@ -1728,13 +1725,13 @@
   LOperand* left = instr->left();
   LOperand* right = instr->right();
   HMathMinMax::Operation operation = instr->hydrogen()->operation();
-  Condition condition = (operation == HMathMinMax::kMathMin) ? le : ge;
+  Register scratch = scratch1();
   if (instr->hydrogen()->representation().IsSmiOrInteger32()) {
+    Condition condition = (operation == HMathMinMax::kMathMin) ? le : ge;
     Register left_reg = ToRegister(left);
     Register right_reg = EmitLoadRegister(right, scratch0());
     Register result_reg = ToRegister(instr->result());
     Label return_right, done;
-    Register scratch = scratch1();
     __ Slt(scratch, left_reg, Operand(right_reg));
     if (condition == ge) {
      __  Movz(result_reg, left_reg, scratch);
@@ -1749,43 +1746,19 @@
     FPURegister left_reg = ToDoubleRegister(left);
     FPURegister right_reg = ToDoubleRegister(right);
     FPURegister result_reg = ToDoubleRegister(instr->result());
-    Label check_nan_left, check_zero, return_left, return_right, done;
-    __ BranchF(&check_zero, &check_nan_left, eq, left_reg, right_reg);
-    __ BranchF(&return_left, NULL, condition, left_reg, right_reg);
-    __ Branch(&return_right);
-
-    __ bind(&check_zero);
-    // left == right != 0.
-    __ BranchF(&return_left, NULL, ne, left_reg, kDoubleRegZero);
-    // At this point, both left and right are either 0 or -0.
-    if (operation == HMathMinMax::kMathMin) {
-      // The algorithm is: -((-L) + (-R)), which in case of L and R being
-      // different registers is most efficiently expressed as -((-L) - R).
-      __ neg_d(left_reg, left_reg);
-      if (left_reg.is(right_reg)) {
-        __ add_d(result_reg, left_reg, right_reg);
-      } else {
-        __ sub_d(result_reg, left_reg, right_reg);
-      }
-      __ neg_d(result_reg, result_reg);
+    Label nan, done;
+    if (operation == HMathMinMax::kMathMax) {
+      __ MaxNaNCheck_d(result_reg, left_reg, right_reg, &nan);
     } else {
-      __ add_d(result_reg, left_reg, right_reg);
+      DCHECK(operation == HMathMinMax::kMathMin);
+      __ MinNaNCheck_d(result_reg, left_reg, right_reg, &nan);
     }
     __ Branch(&done);
 
-    __ bind(&check_nan_left);
-    // left == NaN.
-    __ BranchF(NULL, &return_left, eq, left_reg, left_reg);
-    __ bind(&return_right);
-    if (!right_reg.is(result_reg)) {
-      __ mov_d(result_reg, right_reg);
-    }
-    __ Branch(&done);
+    __ bind(&nan);
+    __ LoadRoot(scratch, Heap::kNanValueRootIndex);
+    __ ldc1(result_reg, FieldMemOperand(scratch, HeapNumber::kValueOffset));
 
-    __ bind(&return_left);
-    if (!left_reg.is(result_reg)) {
-      __ mov_d(result_reg, left_reg);
-    }
     __ bind(&done);
   }
 }
@@ -2409,16 +2382,6 @@
 }
 
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(v0));
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
@@ -4159,7 +4122,15 @@
 
     LOperand* key = instr->key();
     if (key->IsConstantOperand()) {
-      __ li(a3, Operand(ToSmi(LConstantOperand::cast(key))));
+      LConstantOperand* constant_key = LConstantOperand::cast(key);
+      int32_t int_key = ToInteger32(constant_key);
+      if (Smi::IsValid(int_key)) {
+        __ li(a3, Operand(Smi::FromInt(int_key)));
+      } else {
+        // We should never get here at runtime because there is a smi check on
+        // the key before this point.
+        __ stop("expected smi");
+      }
     } else {
       __ mov(a3, ToRegister(key));
       __ SmiTag(a3);
@@ -4456,7 +4427,7 @@
 
   if (FLAG_inline_new) {
     __ LoadRoot(tmp3, Heap::kHeapNumberMapRootIndex);
-    __ AllocateHeapNumber(dst, tmp1, tmp2, tmp3, &slow, DONT_TAG_RESULT);
+    __ AllocateHeapNumber(dst, tmp1, tmp2, tmp3, &slow);
     __ Branch(&done);
   }
 
@@ -4480,16 +4451,13 @@
     __ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
     RecordSafepointWithRegisters(
         instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
-    __ Subu(v0, v0, kHeapObjectTag);
     __ StoreToSafepointRegisterSlot(v0, dst);
   }
 
-
   // Done. Put the value in dbl_scratch into the value of the allocated heap
   // number.
   __ bind(&done);
-  __ sdc1(dbl_scratch, MemOperand(dst, HeapNumber::kValueOffset));
-  __ Addu(dst, dst, kHeapObjectTag);
+  __ sdc1(dbl_scratch, FieldMemOperand(dst, HeapNumber::kValueOffset));
 }
 
 
@@ -4514,16 +4482,13 @@
   DeferredNumberTagD* deferred = new(zone()) DeferredNumberTagD(this, instr);
   if (FLAG_inline_new) {
     __ LoadRoot(scratch, Heap::kHeapNumberMapRootIndex);
-    // We want the untagged address first for performance
-    __ AllocateHeapNumber(reg, temp1, temp2, scratch, deferred->entry(),
-                          DONT_TAG_RESULT);
+    __ AllocateHeapNumber(reg, temp1, temp2, scratch, deferred->entry());
   } else {
     __ Branch(deferred->entry());
   }
   __ bind(deferred->exit());
-  __ sdc1(input_reg, MemOperand(reg, HeapNumber::kValueOffset));
+  __ sdc1(input_reg, FieldMemOperand(reg, HeapNumber::kValueOffset));
   // Now that we have finished with the object's real address tag it
-  __ Addu(reg, reg, kHeapObjectTag);
 }
 
 
@@ -4544,7 +4509,6 @@
   __ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
   RecordSafepointWithRegisters(
       instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
-  __ Subu(v0, v0, kHeapObjectTag);
   __ StoreToSafepointRegisterSlot(v0, reg);
 }
 
@@ -5092,7 +5056,7 @@
   Register scratch2 = ToRegister(instr->temp2());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -5100,6 +5064,12 @@
     DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
+
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
     CHECK(size <= Page::kMaxRegularHeapObjectSize);
@@ -5168,6 +5138,49 @@
   CallRuntimeFromDeferred(
       Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
   __ StoreToSafepointRegisterSlot(v0, result);
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    Register top_address = scratch0();
+    __ Subu(v0, v0, Operand(kHeapObjectTag));
+    __ li(top_address, Operand(allocation_top));
+    __ sw(v0, MemOperand(top_address));
+    __ Addu(v0, v0, Operand(kHeapObjectTag));
+  }
+}
+
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register scratch1 = ToRegister(instr->temp1());
+  Register scratch2 = ToRegister(instr->temp2());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  }
 }
 
 
diff --git a/src/crankshaft/mips/lithium-codegen-mips.h b/src/crankshaft/mips/lithium-codegen-mips.h
index 7a316e5..d2b0d2d 100644
--- a/src/crankshaft/mips/lithium-codegen-mips.h
+++ b/src/crankshaft/mips/lithium-codegen-mips.h
@@ -134,8 +134,6 @@
 #undef DECLARE_DO
 
  private:
-  LanguageMode language_mode() const { return info()->language_mode(); }
-
   Scope* scope() const { return scope_; }
 
   Register scratch0() { return kLithiumScratchReg; }
diff --git a/src/crankshaft/mips/lithium-mips.cc b/src/crankshaft/mips/lithium-mips.cc
index 71c34df..345694d 100644
--- a/src/crankshaft/mips/lithium-mips.cc
+++ b/src/crankshaft/mips/lithium-mips.cc
@@ -887,7 +887,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -939,17 +939,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), cp);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, v0), instr);
-}
-
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
@@ -2298,13 +2287,18 @@
 
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
   LOperand* size = UseRegisterOrConstant(instr->size());
   LOperand* temp1 = TempRegister();
   LOperand* temp2 = TempRegister();
-  LAllocate* result = new(zone()) LAllocate(context, size, temp1, temp2);
-  return AssignPointerMap(DefineAsRegister(result));
+  if (instr->IsAllocationFolded()) {
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp1, temp2);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LAllocate* result = new (zone()) LAllocate(context, size, temp1, temp2);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 
diff --git a/src/crankshaft/mips/lithium-mips.h b/src/crankshaft/mips/lithium-mips.h
index 7d41093..ea5e792 100644
--- a/src/crankshaft/mips/lithium-mips.h
+++ b/src/crankshaft/mips/lithium-mips.h
@@ -67,6 +67,7 @@
   V(Drop)                                    \
   V(Dummy)                                   \
   V(DummyUse)                                \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -78,7 +79,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -1113,22 +1113,6 @@
 };
 
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() const { return inputs_[0]; }
-  LOperand* left() const { return inputs_[1]; }
-  LOperand* right() const { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 0> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype) {
@@ -2350,6 +2334,21 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 2> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) {
+    inputs_[0] = size;
+    temps_[0] = temp1;
+    temps_[1] = temp2;
+  }
+
+  LOperand* size() { return inputs_[0]; }
+  LOperand* temp1() { return temps_[0]; }
+  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
 
 class LTypeof final : public LTemplateInstruction<1, 2, 0> {
  public:
diff --git a/src/crankshaft/mips64/lithium-codegen-mips64.cc b/src/crankshaft/mips64/lithium-codegen-mips64.cc
index c7bbe9f..d114e4f 100644
--- a/src/crankshaft/mips64/lithium-codegen-mips64.cc
+++ b/src/crankshaft/mips64/lithium-codegen-mips64.cc
@@ -315,8 +315,6 @@
           __ BranchAndLink(&call_deopt_entry);
         }
       }
-      info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                   table_entry->deopt_info.inlining_id);
     }
     if (needs_frame.is_linked()) {
       __ bind(&needs_frame);
@@ -776,7 +774,7 @@
     __ bind(&skip);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   // Go through jump table if we need to handle condition, build frame, or
@@ -785,7 +783,6 @@
       !info()->saves_caller_doubles()) {
     DeoptComment(deopt_info);
     __ Call(entry, RelocInfo::RUNTIME_ENTRY, condition, src1, src2);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry* table_entry =
         new (zone()) Deoptimizer::JumpTableEntry(
@@ -1846,13 +1843,13 @@
   LOperand* left = instr->left();
   LOperand* right = instr->right();
   HMathMinMax::Operation operation = instr->hydrogen()->operation();
-  Condition condition = (operation == HMathMinMax::kMathMin) ? le : ge;
+  Register scratch = scratch1();
   if (instr->hydrogen()->representation().IsSmiOrInteger32()) {
+    Condition condition = (operation == HMathMinMax::kMathMin) ? le : ge;
     Register left_reg = ToRegister(left);
     Register right_reg = EmitLoadRegister(right, scratch0());
     Register result_reg = ToRegister(instr->result());
     Label return_right, done;
-    Register scratch = scratch1();
     __ Slt(scratch, left_reg, Operand(right_reg));
     if (condition == ge) {
      __  Movz(result_reg, left_reg, scratch);
@@ -1867,43 +1864,19 @@
     FPURegister left_reg = ToDoubleRegister(left);
     FPURegister right_reg = ToDoubleRegister(right);
     FPURegister result_reg = ToDoubleRegister(instr->result());
-    Label check_nan_left, check_zero, return_left, return_right, done;
-    __ BranchF(&check_zero, &check_nan_left, eq, left_reg, right_reg);
-    __ BranchF(&return_left, NULL, condition, left_reg, right_reg);
-    __ Branch(&return_right);
-
-    __ bind(&check_zero);
-    // left == right != 0.
-    __ BranchF(&return_left, NULL, ne, left_reg, kDoubleRegZero);
-    // At this point, both left and right are either 0 or -0.
-    if (operation == HMathMinMax::kMathMin) {
-      // The algorithm is: -((-L) + (-R)), which in case of L and R being
-      // different registers is most efficiently expressed as -((-L) - R).
-      __ neg_d(left_reg, left_reg);
-      if (left_reg.is(right_reg)) {
-        __ add_d(result_reg, left_reg, right_reg);
-      } else {
-        __ sub_d(result_reg, left_reg, right_reg);
-      }
-      __ neg_d(result_reg, result_reg);
+    Label nan, done;
+    if (operation == HMathMinMax::kMathMax) {
+      __ MaxNaNCheck_d(result_reg, left_reg, right_reg, &nan);
     } else {
-      __ add_d(result_reg, left_reg, right_reg);
+      DCHECK(operation == HMathMinMax::kMathMin);
+      __ MinNaNCheck_d(result_reg, left_reg, right_reg, &nan);
     }
     __ Branch(&done);
 
-    __ bind(&check_nan_left);
-    // left == NaN.
-    __ BranchF(NULL, &return_left, eq, left_reg, left_reg);
-    __ bind(&return_right);
-    if (!right_reg.is(result_reg)) {
-      __ mov_d(result_reg, right_reg);
-    }
-    __ Branch(&done);
+    __ bind(&nan);
+    __ LoadRoot(scratch, Heap::kNanValueRootIndex);
+    __ ldc1(result_reg, FieldMemOperand(scratch, HeapNumber::kValueOffset));
 
-    __ bind(&return_left);
-    if (!left_reg.is(result_reg)) {
-      __ mov_d(result_reg, left_reg);
-    }
     __ bind(&done);
   }
 }
@@ -2529,18 +2502,6 @@
 }
 
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(cp));
-  Label true_label, done;
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(v0));
-
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
@@ -4391,7 +4352,15 @@
 
     LOperand* key = instr->key();
     if (key->IsConstantOperand()) {
-      __ li(a3, Operand(ToSmi(LConstantOperand::cast(key))));
+      LConstantOperand* constant_key = LConstantOperand::cast(key);
+      int32_t int_key = ToInteger32(constant_key);
+      if (Smi::IsValid(int_key)) {
+        __ li(a3, Operand(Smi::FromInt(int_key)));
+      } else {
+        // We should never get here at runtime because there is a smi check on
+        // the key before this point.
+        __ stop("expected smi");
+      }
     } else {
       __ mov(a3, ToRegister(key));
       __ SmiTag(a3);
@@ -4662,7 +4631,7 @@
 
   if (FLAG_inline_new) {
     __ LoadRoot(tmp3, Heap::kHeapNumberMapRootIndex);
-    __ AllocateHeapNumber(dst, tmp1, tmp2, tmp3, &slow, TAG_RESULT);
+    __ AllocateHeapNumber(dst, tmp1, tmp2, tmp3, &slow);
     __ Branch(&done);
   }
 
@@ -4717,15 +4686,12 @@
   if (FLAG_inline_new) {
     __ LoadRoot(scratch, Heap::kHeapNumberMapRootIndex);
     // We want the untagged address first for performance
-    __ AllocateHeapNumber(reg, temp1, temp2, scratch, deferred->entry(),
-                          DONT_TAG_RESULT);
+    __ AllocateHeapNumber(reg, temp1, temp2, scratch, deferred->entry());
   } else {
     __ Branch(deferred->entry());
   }
   __ bind(deferred->exit());
-  __ sdc1(input_reg, MemOperand(reg, HeapNumber::kValueOffset));
-  // Now that we have finished with the object's real address tag it
-  __ Daddu(reg, reg, kHeapObjectTag);
+  __ sdc1(input_reg, FieldMemOperand(reg, HeapNumber::kValueOffset));
 }
 
 
@@ -4746,7 +4712,6 @@
   __ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
   RecordSafepointWithRegisters(
       instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
-  __ Dsubu(v0, v0, kHeapObjectTag);
   __ StoreToSafepointRegisterSlot(v0, reg);
 }
 
@@ -5293,7 +5258,7 @@
   Register scratch2 = ToRegister(instr->temp2());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -5301,6 +5266,12 @@
     DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
+
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
     CHECK(size <= Page::kMaxRegularHeapObjectSize);
@@ -5371,6 +5342,49 @@
   CallRuntimeFromDeferred(
       Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
   __ StoreToSafepointRegisterSlot(v0, result);
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    Register top_address = scratch0();
+    __ Dsubu(v0, v0, Operand(kHeapObjectTag));
+    __ li(top_address, Operand(allocation_top));
+    __ sd(v0, MemOperand(top_address));
+    __ Daddu(v0, v0, Operand(kHeapObjectTag));
+  }
+}
+
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register scratch1 = ToRegister(instr->temp1());
+  Register scratch2 = ToRegister(instr->temp2());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  }
 }
 
 
diff --git a/src/crankshaft/mips64/lithium-codegen-mips64.h b/src/crankshaft/mips64/lithium-codegen-mips64.h
index 4a700bd..9ac3192 100644
--- a/src/crankshaft/mips64/lithium-codegen-mips64.h
+++ b/src/crankshaft/mips64/lithium-codegen-mips64.h
@@ -136,8 +136,6 @@
 #undef DECLARE_DO
 
  private:
-  LanguageMode language_mode() const { return info()->language_mode(); }
-
   Scope* scope() const { return scope_; }
 
   Register scratch0() { return kLithiumScratchReg; }
diff --git a/src/crankshaft/mips64/lithium-mips64.cc b/src/crankshaft/mips64/lithium-mips64.cc
index bcfbc24..3ee9ab6 100644
--- a/src/crankshaft/mips64/lithium-mips64.cc
+++ b/src/crankshaft/mips64/lithium-mips64.cc
@@ -887,7 +887,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -939,17 +939,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), cp);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, v0), instr);
-}
-
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
@@ -2303,13 +2292,18 @@
 
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
   LOperand* size = UseRegisterOrConstant(instr->size());
   LOperand* temp1 = TempRegister();
   LOperand* temp2 = TempRegister();
-  LAllocate* result = new(zone()) LAllocate(context, size, temp1, temp2);
-  return AssignPointerMap(DefineAsRegister(result));
+  if (instr->IsAllocationFolded()) {
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp1, temp2);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LAllocate* result = new (zone()) LAllocate(context, size, temp1, temp2);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 
diff --git a/src/crankshaft/mips64/lithium-mips64.h b/src/crankshaft/mips64/lithium-mips64.h
index 41cf93c..5d282ec 100644
--- a/src/crankshaft/mips64/lithium-mips64.h
+++ b/src/crankshaft/mips64/lithium-mips64.h
@@ -69,6 +69,7 @@
   V(Drop)                                    \
   V(Dummy)                                   \
   V(DummyUse)                                \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -80,7 +81,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -1131,22 +1131,6 @@
 };
 
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() const { return inputs_[0]; }
-  LOperand* left() const { return inputs_[1]; }
-  LOperand* right() const { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 0> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype) {
@@ -2396,6 +2380,21 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 2> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) {
+    inputs_[0] = size;
+    temps_[0] = temp1;
+    temps_[1] = temp2;
+  }
+
+  LOperand* size() { return inputs_[0]; }
+  LOperand* temp1() { return temps_[0]; }
+  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
 
 class LTypeof final : public LTemplateInstruction<1, 2, 0> {
  public:
diff --git a/src/crankshaft/ppc/lithium-codegen-ppc.cc b/src/crankshaft/ppc/lithium-codegen-ppc.cc
index d5d0104..31d9ebe 100644
--- a/src/crankshaft/ppc/lithium-codegen-ppc.cc
+++ b/src/crankshaft/ppc/lithium-codegen-ppc.cc
@@ -326,8 +326,6 @@
       } else {
         __ b(&call_deopt_entry, SetLK);
       }
-      info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                   table_entry->deopt_info.inlining_id);
     }
 
     if (needs_frame.is_linked()) {
@@ -755,7 +753,7 @@
     __ stop("trap_on_deopt", cond, kDefaultStopCode, cr);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   // Go through jump table if we need to handle condition, build frame, or
@@ -763,7 +761,6 @@
   if (cond == al && frame_is_built_ && !info()->saves_caller_doubles()) {
     DeoptComment(deopt_info);
     __ Call(entry, RelocInfo::RUNTIME_ENTRY);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type,
                                             !frame_is_built_);
@@ -2555,16 +2552,6 @@
 }
 
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(r3));
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
@@ -3614,8 +3601,13 @@
   }
 }
 
+void LCodeGen::DoMathFloorD(LMathFloorD* instr) {
+  DoubleRegister input_reg = ToDoubleRegister(instr->value());
+  DoubleRegister output_reg = ToDoubleRegister(instr->result());
+  __ frim(output_reg, input_reg);
+}
 
-void LCodeGen::DoMathFloor(LMathFloor* instr) {
+void LCodeGen::DoMathFloorI(LMathFloorI* instr) {
   DoubleRegister input = ToDoubleRegister(instr->value());
   Register result = ToRegister(instr->result());
   Register input_high = scratch0();
@@ -3637,8 +3629,30 @@
   __ bind(&done);
 }
 
+void LCodeGen::DoMathRoundD(LMathRoundD* instr) {
+  DoubleRegister input_reg = ToDoubleRegister(instr->value());
+  DoubleRegister output_reg = ToDoubleRegister(instr->result());
+  DoubleRegister dot_five = double_scratch0();
+  Label done;
 
-void LCodeGen::DoMathRound(LMathRound* instr) {
+  __ frin(output_reg, input_reg);
+  __ fcmpu(input_reg, kDoubleRegZero);
+  __ bge(&done);
+  __ fcmpu(output_reg, input_reg);
+  __ beq(&done);
+
+  // Negative, non-integer case
+  __ LoadDoubleLiteral(dot_five, 0.5, r0);
+  __ fadd(output_reg, input_reg, dot_five);
+  __ frim(output_reg, output_reg);
+  // The range [-0.5, -0.0[ yielded +0.0. Force the sign to negative.
+  __ fabs(output_reg, output_reg);
+  __ fneg(output_reg, output_reg);
+
+  __ bind(&done);
+}
+
+void LCodeGen::DoMathRoundI(LMathRoundI* instr) {
   DoubleRegister input = ToDoubleRegister(instr->value());
   Register result = ToRegister(instr->result());
   DoubleRegister double_scratch1 = ToDoubleRegister(instr->temp());
@@ -4430,7 +4444,15 @@
 
     LOperand* key = instr->key();
     if (key->IsConstantOperand()) {
-      __ LoadSmiLiteral(r6, ToSmi(LConstantOperand::cast(key)));
+      LConstantOperand* constant_key = LConstantOperand::cast(key);
+      int32_t int_key = ToInteger32(constant_key);
+      if (Smi::IsValid(int_key)) {
+        __ LoadSmiLiteral(r6, Smi::FromInt(int_key));
+      } else {
+        // We should never get here at runtime because there is a smi check on
+        // the key before this point.
+        __ stop("expected smi");
+      }
     } else {
       __ SmiTag(r6, ToRegister(key));
     }
@@ -5311,7 +5333,7 @@
   class DeferredAllocate final : public LDeferredCode {
    public:
     DeferredAllocate(LCodeGen* codegen, LAllocate* instr)
-        : LDeferredCode(codegen), instr_(instr) {}
+        : LDeferredCode(codegen), instr_(instr) { }
     void Generate() override { codegen()->DoDeferredAllocate(instr_); }
     LInstruction* instr() override { return instr_; }
 
@@ -5319,14 +5341,15 @@
     LAllocate* instr_;
   };
 
-  DeferredAllocate* deferred = new (zone()) DeferredAllocate(this, instr);
+  DeferredAllocate* deferred =
+      new(zone()) DeferredAllocate(this, instr);
 
   Register result = ToRegister(instr->result());
   Register scratch = ToRegister(instr->temp1());
   Register scratch2 = ToRegister(instr->temp2());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -5335,6 +5358,12 @@
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
 
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
+
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
     CHECK(size <= Page::kMaxRegularHeapObjectSize);
@@ -5406,6 +5435,49 @@
   CallRuntimeFromDeferred(Runtime::kAllocateInTargetSpace, 2, instr,
                           instr->context());
   __ StoreToSafepointRegisterSlot(r3, result);
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    Register top_address = scratch0();
+    __ subi(r3, r3, Operand(kHeapObjectTag));
+    __ mov(top_address, Operand(allocation_top));
+    __ StoreP(r3, MemOperand(top_address));
+    __ addi(r3, r3, Operand(kHeapObjectTag));
+  }
+}
+
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register scratch1 = ToRegister(instr->temp1());
+  Register scratch2 = ToRegister(instr->temp2());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  }
 }
 
 
diff --git a/src/crankshaft/ppc/lithium-codegen-ppc.h b/src/crankshaft/ppc/lithium-codegen-ppc.h
index 28f1680..730c4bd 100644
--- a/src/crankshaft/ppc/lithium-codegen-ppc.h
+++ b/src/crankshaft/ppc/lithium-codegen-ppc.h
@@ -128,8 +128,6 @@
 #undef DECLARE_DO
 
  private:
-  LanguageMode language_mode() const { return info()->language_mode(); }
-
   Scope* scope() const { return scope_; }
 
   Register scratch0() { return kLithiumScratch; }
diff --git a/src/crankshaft/ppc/lithium-ppc.cc b/src/crankshaft/ppc/lithium-ppc.cc
index b739786..0d9a617 100644
--- a/src/crankshaft/ppc/lithium-ppc.cc
+++ b/src/crankshaft/ppc/lithium-ppc.cc
@@ -892,7 +892,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -949,17 +949,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), cp);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, r3), instr);
-}
-
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
@@ -1107,20 +1096,32 @@
 
 
 LInstruction* LChunkBuilder::DoMathFloor(HUnaryMathOperation* instr) {
+  DCHECK(instr->value()->representation().IsDouble());
   LOperand* input = UseRegister(instr->value());
-  LMathFloor* result = new (zone()) LMathFloor(input);
-  return AssignEnvironment(AssignPointerMap(DefineAsRegister(result)));
+  if (instr->representation().IsInteger32()) {
+    LMathFloorI* result = new (zone()) LMathFloorI(input);
+    return AssignEnvironment(AssignPointerMap(DefineAsRegister(result)));
+  } else {
+    DCHECK(instr->representation().IsDouble());
+    LMathFloorD* result = new (zone()) LMathFloorD(input);
+    return DefineAsRegister(result);
+  }
 }
 
-
 LInstruction* LChunkBuilder::DoMathRound(HUnaryMathOperation* instr) {
+  DCHECK(instr->value()->representation().IsDouble());
   LOperand* input = UseRegister(instr->value());
-  LOperand* temp = TempDoubleRegister();
-  LMathRound* result = new (zone()) LMathRound(input, temp);
-  return AssignEnvironment(DefineAsRegister(result));
+  if (instr->representation().IsInteger32()) {
+    LOperand* temp = TempDoubleRegister();
+    LMathRoundI* result = new (zone()) LMathRoundI(input, temp);
+    return AssignEnvironment(AssignPointerMap(DefineAsRegister(result)));
+  } else {
+    DCHECK(instr->representation().IsDouble());
+    LMathRoundD* result = new (zone()) LMathRoundD(input);
+    return DefineAsRegister(result);
+  }
 }
 
-
 LInstruction* LChunkBuilder::DoMathFround(HUnaryMathOperation* instr) {
   LOperand* input = UseRegister(instr->value());
   LMathFround* result = new (zone()) LMathFround(input);
@@ -2307,13 +2308,18 @@
 
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
   LOperand* size = UseRegisterOrConstant(instr->size());
   LOperand* temp1 = TempRegister();
   LOperand* temp2 = TempRegister();
-  LAllocate* result = new (zone()) LAllocate(context, size, temp1, temp2);
-  return AssignPointerMap(DefineAsRegister(result));
+  if (instr->IsAllocationFolded()) {
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp1, temp2);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LAllocate* result = new (zone()) LAllocate(context, size, temp1, temp2);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 
diff --git a/src/crankshaft/ppc/lithium-ppc.h b/src/crankshaft/ppc/lithium-ppc.h
index c39f620..f089b02 100644
--- a/src/crankshaft/ppc/lithium-ppc.h
+++ b/src/crankshaft/ppc/lithium-ppc.h
@@ -67,6 +67,7 @@
   V(Drop)                                    \
   V(Dummy)                                   \
   V(DummyUse)                                \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -78,7 +79,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -99,12 +99,14 @@
   V(MathAbs)                                 \
   V(MathClz32)                               \
   V(MathExp)                                 \
-  V(MathFloor)                               \
+  V(MathFloorD)                              \
+  V(MathFloorI)                              \
   V(MathFround)                              \
   V(MathLog)                                 \
   V(MathMinMax)                              \
   V(MathPowHalf)                             \
-  V(MathRound)                               \
+  V(MathRoundD)                              \
+  V(MathRoundI)                              \
   V(MathSqrt)                                \
   V(MaybeGrowElements)                       \
   V(ModByConstI)                             \
@@ -151,7 +153,6 @@
   V(UnknownOSRValue)                         \
   V(WrapReceiver)
 
-
 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic)            \
   Opcode opcode() const final { return LInstruction::k##type; } \
   void CompileToNative(LCodeGen* generator) final;              \
@@ -807,21 +808,43 @@
   void PrintDataTo(StringStream* stream) override;
 };
 
-
-class LMathFloor final : public LTemplateInstruction<1, 1, 0> {
+// Math.floor with a double result.
+class LMathFloorD final : public LTemplateInstruction<1, 1, 0> {
  public:
-  explicit LMathFloor(LOperand* value) { inputs_[0] = value; }
+  explicit LMathFloorD(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
 
-  DECLARE_CONCRETE_INSTRUCTION(MathFloor, "math-floor")
+  DECLARE_CONCRETE_INSTRUCTION(MathFloorD, "math-floor-d")
   DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
 };
 
-
-class LMathRound final : public LTemplateInstruction<1, 1, 1> {
+// Math.floor with an integer result.
+class LMathFloorI final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathRound(LOperand* value, LOperand* temp) {
+  explicit LMathFloorI(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathFloorI, "math-floor-i")
+  DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
+};
+
+// Math.round with a double result.
+class LMathRoundD final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathRoundD(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathRoundD, "math-round-d")
+  DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
+};
+
+// Math.round with an integer result.
+class LMathRoundI final : public LTemplateInstruction<1, 1, 1> {
+ public:
+  LMathRoundI(LOperand* value, LOperand* temp) {
     inputs_[0] = value;
     temps_[0] = temp;
   }
@@ -829,7 +852,7 @@
   LOperand* value() { return inputs_[0]; }
   LOperand* temp() { return temps_[0]; }
 
-  DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round")
+  DECLARE_CONCRETE_INSTRUCTION(MathRoundI, "math-round-i")
   DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
 };
 
@@ -1092,22 +1115,6 @@
 };
 
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() const { return inputs_[0]; }
-  LOperand* left() const { return inputs_[1]; }
-  LOperand* right() const { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 0> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype) {
@@ -2294,6 +2301,22 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 2> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) {
+    inputs_[0] = size;
+    temps_[0] = temp1;
+    temps_[1] = temp2;
+  }
+
+  LOperand* size() { return inputs_[0]; }
+  LOperand* temp1() { return temps_[0]; }
+  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
+
 
 class LTypeof final : public LTemplateInstruction<1, 2, 0> {
  public:
diff --git a/src/crankshaft/s390/lithium-codegen-s390.cc b/src/crankshaft/s390/lithium-codegen-s390.cc
index 689f4bc..38d1808 100644
--- a/src/crankshaft/s390/lithium-codegen-s390.cc
+++ b/src/crankshaft/s390/lithium-codegen-s390.cc
@@ -312,8 +312,6 @@
       } else {
         __ b(r14, &call_deopt_entry);
       }
-      info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                   table_entry->deopt_info.inlining_id);
     }
 
     if (needs_frame.is_linked()) {
@@ -746,14 +744,13 @@
     __ stop("trap_on_deopt", cond, kDefaultStopCode, cr);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   // Go through jump table if we need to handle condition, build frame, or
   // restore caller doubles.
   if (cond == al && frame_is_built_ && !info()->saves_caller_doubles()) {
     __ Call(entry, RelocInfo::RUNTIME_ENTRY);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type,
                                             !frame_is_built_);
@@ -2541,15 +2538,6 @@
   EmitBranch(instr, eq);
 }
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(r2));
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
@@ -4387,7 +4375,15 @@
 
     LOperand* key = instr->key();
     if (key->IsConstantOperand()) {
-      __ LoadSmiLiteral(r5, ToSmi(LConstantOperand::cast(key)));
+      LConstantOperand* constant_key = LConstantOperand::cast(key);
+      int32_t int_key = ToInteger32(constant_key);
+      if (Smi::IsValid(int_key)) {
+        __ LoadSmiLiteral(r5, Smi::FromInt(int_key));
+      } else {
+        // We should never get here at runtime because there is a smi check on
+        // the key before this point.
+        __ stop("expected smi");
+      }
     } else {
       __ SmiTag(r5, ToRegister(key));
     }
@@ -5244,7 +5240,7 @@
   Register scratch2 = ToRegister(instr->temp2());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -5253,6 +5249,12 @@
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
 
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
+
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
     CHECK(size <= Page::kMaxRegularHeapObjectSize);
@@ -5331,6 +5333,49 @@
   CallRuntimeFromDeferred(Runtime::kAllocateInTargetSpace, 2, instr,
                           instr->context());
   __ StoreToSafepointRegisterSlot(r2, result);
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    Register top_address = scratch0();
+    __ SubP(r2, r2, Operand(kHeapObjectTag));
+    __ mov(top_address, Operand(allocation_top));
+    __ StoreP(r2, MemOperand(top_address));
+    __ AddP(r2, r2, Operand(kHeapObjectTag));
+  }
+}
+
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register scratch1 = ToRegister(instr->temp1());
+  Register scratch2 = ToRegister(instr->temp2());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, scratch1, scratch2, flags);
+  }
 }
 
 void LCodeGen::DoTypeof(LTypeof* instr) {
diff --git a/src/crankshaft/s390/lithium-codegen-s390.h b/src/crankshaft/s390/lithium-codegen-s390.h
index 6d364cb..7721b30 100644
--- a/src/crankshaft/s390/lithium-codegen-s390.h
+++ b/src/crankshaft/s390/lithium-codegen-s390.h
@@ -127,8 +127,6 @@
 #undef DECLARE_DO
 
  private:
-  LanguageMode language_mode() const { return info()->language_mode(); }
-
   Scope* scope() const { return scope_; }
 
   Register scratch0() { return kLithiumScratch; }
diff --git a/src/crankshaft/s390/lithium-s390.cc b/src/crankshaft/s390/lithium-s390.cc
index a18f877..fbc1970 100644
--- a/src/crankshaft/s390/lithium-s390.cc
+++ b/src/crankshaft/s390/lithium-s390.cc
@@ -815,7 +815,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -865,16 +865,6 @@
   return DefineAsRegister(new (zone()) LArgumentsElements);
 }
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), cp);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, r2), instr);
-}
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
@@ -2124,13 +2114,18 @@
 }
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
   LOperand* size = UseRegisterOrConstant(instr->size());
   LOperand* temp1 = TempRegister();
   LOperand* temp2 = TempRegister();
-  LAllocate* result = new (zone()) LAllocate(context, size, temp1, temp2);
-  return AssignPointerMap(DefineAsRegister(result));
+  if (instr->IsAllocationFolded()) {
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp1, temp2);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LAllocate* result = new (zone()) LAllocate(context, size, temp1, temp2);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 LInstruction* LChunkBuilder::DoOsrEntry(HOsrEntry* instr) {
diff --git a/src/crankshaft/s390/lithium-s390.h b/src/crankshaft/s390/lithium-s390.h
index b6a1614..407d45d 100644
--- a/src/crankshaft/s390/lithium-s390.h
+++ b/src/crankshaft/s390/lithium-s390.h
@@ -67,6 +67,7 @@
   V(Drop)                                    \
   V(Dummy)                                   \
   V(DummyUse)                                \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -78,7 +79,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -1035,21 +1035,6 @@
   Token::Value op() const { return hydrogen()->token(); }
 };
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() const { return inputs_[0]; }
-  LOperand* left() const { return inputs_[1]; }
-  LOperand* right() const { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 0> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype) {
@@ -2165,6 +2150,22 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 2> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp1, LOperand* temp2) {
+    inputs_[0] = size;
+    temps_[0] = temp1;
+    temps_[1] = temp2;
+  }
+
+  LOperand* size() { return inputs_[0]; }
+  LOperand* temp1() { return temps_[0]; }
+  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
+
 class LTypeof final : public LTemplateInstruction<1, 2, 0> {
  public:
   LTypeof(LOperand* context, LOperand* value) {
diff --git a/src/crankshaft/typing.cc b/src/crankshaft/typing.cc
index 69d7efe..9bd09ac 100644
--- a/src/crankshaft/typing.cc
+++ b/src/crankshaft/typing.cc
@@ -14,9 +14,9 @@
 namespace v8 {
 namespace internal {
 
-
 AstTyper::AstTyper(Isolate* isolate, Zone* zone, Handle<JSFunction> closure,
-                   Scope* scope, BailoutId osr_ast_id, FunctionLiteral* root)
+                   Scope* scope, BailoutId osr_ast_id, FunctionLiteral* root,
+                   AstTypeBounds* bounds)
     : isolate_(isolate),
       zone_(zone),
       closure_(closure),
@@ -26,7 +26,8 @@
       oracle_(isolate, zone, handle(closure->shared()->code()),
               handle(closure->shared()->feedback_vector()),
               handle(closure->context()->native_context())),
-      store_(zone) {
+      store_(zone),
+      bounds_(bounds) {
   InitializeAstVisitor(isolate);
 }
 
@@ -304,14 +305,7 @@
   store_.Forget();  // Control may transfer here via 'break'.
 }
 
-
-void AstTyper::VisitForOfStatement(ForOfStatement* stmt) {
-  RECURSE(Visit(stmt->iterable()));
-  store_.Forget();  // Control may transfer here via looping or 'continue'.
-  RECURSE(Visit(stmt->body()));
-  store_.Forget();  // Control may transfer here via 'break'.
-}
-
+void AstTyper::VisitForOfStatement(ForOfStatement* stmt) {}
 
 void AstTyper::VisitTryCatchStatement(TryCatchStatement* stmt) {
   Effects try_effects = EnterEffects();
@@ -353,7 +347,7 @@
 void AstTyper::VisitDoExpression(DoExpression* expr) {
   RECURSE(VisitBlock(expr->block()));
   RECURSE(VisitVariableProxy(expr->result()));
-  NarrowType(expr, expr->result()->bounds());
+  NarrowType(expr, bounds_->get(expr->result()));
 }
 
 
@@ -371,9 +365,9 @@
   then_effects.Alt(else_effects);
   store_.Seq(then_effects);
 
-  NarrowType(expr, Bounds::Either(
-      expr->then_expression()->bounds(),
-      expr->else_expression()->bounds(), zone()));
+  NarrowType(expr,
+             Bounds::Either(bounds_->get(expr->then_expression()),
+                            bounds_->get(expr->else_expression()), zone()));
 }
 
 
@@ -464,11 +458,11 @@
       expr->is_compound() ? expr->binary_operation() : expr->value();
   RECURSE(Visit(expr->target()));
   RECURSE(Visit(rhs));
-  NarrowType(expr, rhs->bounds());
+  NarrowType(expr, bounds_->get(rhs));
 
   VariableProxy* proxy = expr->target()->AsVariableProxy();
   if (proxy != NULL && proxy->var()->IsStackAllocated()) {
-    store_.Seq(variable_index(proxy->var()), Effect(expr->bounds()));
+    store_.Seq(variable_index(proxy->var()), Effect(bounds_->get(expr)));
   }
 }
 
@@ -628,7 +622,7 @@
 
   VariableProxy* proxy = expr->expression()->AsVariableProxy();
   if (proxy != NULL && proxy->var()->IsStackAllocated()) {
-    store_.Seq(variable_index(proxy->var()), Effect(expr->bounds()));
+    store_.Seq(variable_index(proxy->var()), Effect(bounds_->get(expr)));
   }
 }
 
@@ -656,7 +650,7 @@
     case Token::COMMA:
       RECURSE(Visit(expr->left()));
       RECURSE(Visit(expr->right()));
-      NarrowType(expr, expr->right()->bounds());
+      NarrowType(expr, bounds_->get(expr->right()));
       break;
     case Token::OR:
     case Token::AND: {
@@ -669,16 +663,16 @@
       left_effects.Alt(right_effects);
       store_.Seq(left_effects);
 
-      NarrowType(expr, Bounds::Either(
-          expr->left()->bounds(), expr->right()->bounds(), zone()));
+      NarrowType(expr, Bounds::Either(bounds_->get(expr->left()),
+                                      bounds_->get(expr->right()), zone()));
       break;
     }
     case Token::BIT_OR:
     case Token::BIT_AND: {
       RECURSE(Visit(expr->left()));
       RECURSE(Visit(expr->right()));
-      Type* upper = Type::Union(
-          expr->left()->bounds().upper, expr->right()->bounds().upper, zone());
+      Type* upper = Type::Union(bounds_->get(expr->left()).upper,
+                                bounds_->get(expr->right()).upper, zone());
       if (!upper->Is(Type::Signed32())) upper = Type::Signed32();
       Type* lower = Type::Intersect(Type::SignedSmall(), upper, zone());
       NarrowType(expr, Bounds(lower, upper));
@@ -702,8 +696,8 @@
     case Token::ADD: {
       RECURSE(Visit(expr->left()));
       RECURSE(Visit(expr->right()));
-      Bounds l = expr->left()->bounds();
-      Bounds r = expr->right()->bounds();
+      Bounds l = bounds_->get(expr->left());
+      Bounds r = bounds_->get(expr->right());
       Type* lower =
           !l.lower->IsInhabited() || !r.lower->IsInhabited()
               ? Type::None()
diff --git a/src/crankshaft/typing.h b/src/crankshaft/typing.h
index 40b538a..27b6809 100644
--- a/src/crankshaft/typing.h
+++ b/src/crankshaft/typing.h
@@ -6,6 +6,7 @@
 #define V8_CRANKSHAFT_TYPING_H_
 
 #include "src/allocation.h"
+#include "src/ast/ast-type-bounds.h"
 #include "src/ast/ast.h"
 #include "src/ast/scopes.h"
 #include "src/effects.h"
@@ -16,11 +17,11 @@
 namespace v8 {
 namespace internal {
 
-
 class AstTyper: public AstVisitor {
  public:
   AstTyper(Isolate* isolate, Zone* zone, Handle<JSFunction> closure,
-           Scope* scope, BailoutId osr_ast_id, FunctionLiteral* root);
+           Scope* scope, BailoutId osr_ast_id, FunctionLiteral* root,
+           AstTypeBounds* bounds);
   void Run();
 
   DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
@@ -41,15 +42,16 @@
   FunctionLiteral* root_;
   TypeFeedbackOracle oracle_;
   Store store_;
+  AstTypeBounds* bounds_;
 
   Zone* zone() const { return zone_; }
   TypeFeedbackOracle* oracle() { return &oracle_; }
 
   void NarrowType(Expression* e, Bounds b) {
-    e->set_bounds(Bounds::Both(e->bounds(), b, zone()));
+    bounds_->set(e, Bounds::Both(bounds_->get(e), b, zone()));
   }
   void NarrowLowerType(Expression* e, Type* t) {
-    e->set_bounds(Bounds::NarrowLower(e->bounds(), t, zone()));
+    bounds_->set(e, Bounds::NarrowLower(bounds_->get(e), t, zone()));
   }
 
   Effects EnterEffects() {
diff --git a/src/crankshaft/x64/lithium-codegen-x64.cc b/src/crankshaft/x64/lithium-codegen-x64.cc
index fbda59b..350543e 100644
--- a/src/crankshaft/x64/lithium-codegen-x64.cc
+++ b/src/crankshaft/x64/lithium-codegen-x64.cc
@@ -168,11 +168,11 @@
   Comment(";;; Prologue begin");
 
   // Possibly allocate a local context.
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     Comment(";;; Allocate local context");
     bool need_write_barrier = true;
     // Argument to NewContext is the function, which is still in rdi.
-    int slots = info_->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
+    int slots = info_->scope()->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
     Safepoint::DeoptMode deopt_mode = Safepoint::kNoLazyDeopt;
     if (info()->scope()->is_script_scope()) {
       __ Push(rdi);
@@ -299,8 +299,6 @@
       }
       __ call(entry, RelocInfo::RUNTIME_ENTRY);
     }
-    info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                 table_entry->deopt_info.inlining_id);
   }
 
   if (needs_frame.is_linked()) {
@@ -748,7 +746,7 @@
     __ bind(&done);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   // Go through jump table if we need to handle condition, build frame, or
@@ -757,7 +755,6 @@
       !info()->saves_caller_doubles()) {
     DeoptComment(deopt_info);
     __ call(entry, RelocInfo::RUNTIME_ENTRY);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type,
                                             !frame_is_built_);
@@ -2441,16 +2438,6 @@
 }
 
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(rsi));
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(rax));
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
@@ -3287,8 +3274,19 @@
   DeoptimizeIf(not_equal, instr, Deoptimizer::kNotAHeapNumber);
 
   Label slow, allocated, done;
-  Register tmp = input_reg.is(rax) ? rcx : rax;
-  Register tmp2 = tmp.is(rcx) ? rdx : input_reg.is(rcx) ? rdx : rcx;
+  uint32_t available_regs = rax.bit() | rcx.bit() | rdx.bit() | rbx.bit();
+  available_regs &= ~input_reg.bit();
+  if (instr->context()->IsRegister()) {
+    // Make sure that the context isn't overwritten in the AllocateHeapNumber
+    // macro below.
+    available_regs &= ~ToRegister(instr->context()).bit();
+  }
+
+  Register tmp =
+      Register::from_code(base::bits::CountTrailingZeros32(available_regs));
+  available_regs &= ~tmp.bit();
+  Register tmp2 =
+      Register::from_code(base::bits::CountTrailingZeros32(available_regs));
 
   // Preserve the value of all registers.
   PushSafepointRegistersScope scope(this);
@@ -5162,7 +5160,7 @@
   Register temp = ToRegister(instr->temp());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -5171,6 +5169,11 @@
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
 
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
+
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
     CHECK(size <= Page::kMaxRegularHeapObjectSize);
@@ -5200,6 +5203,29 @@
   }
 }
 
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register temp = ToRegister(instr->temp());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, temp, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, temp, flags);
+  }
+}
 
 void LCodeGen::DoDeferredAllocate(LAllocate* instr) {
   Register result = ToRegister(instr->result());
@@ -5232,6 +5258,22 @@
   CallRuntimeFromDeferred(
       Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
   __ StoreToSafepointRegisterSlot(result, rax);
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    __ subp(rax, Immediate(kHeapObjectTag));
+    __ Store(allocation_top, rax);
+    __ addp(rax, Immediate(kHeapObjectTag));
+  }
 }
 
 
diff --git a/src/crankshaft/x64/lithium-codegen-x64.h b/src/crankshaft/x64/lithium-codegen-x64.h
index 139645e..f643e2b 100644
--- a/src/crankshaft/x64/lithium-codegen-x64.h
+++ b/src/crankshaft/x64/lithium-codegen-x64.h
@@ -111,8 +111,6 @@
 #undef DECLARE_DO
 
  private:
-  LanguageMode language_mode() const { return info()->language_mode(); }
-
   LPlatformChunk* chunk() const { return chunk_; }
   Scope* scope() const { return scope_; }
   HGraph* graph() const { return chunk()->graph(); }
diff --git a/src/crankshaft/x64/lithium-x64.cc b/src/crankshaft/x64/lithium-x64.cc
index e86b90c..daedd72 100644
--- a/src/crankshaft/x64/lithium-x64.cc
+++ b/src/crankshaft/x64/lithium-x64.cc
@@ -907,7 +907,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -957,17 +957,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), rsi);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, rax), instr);
-}
-
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
@@ -2408,14 +2397,19 @@
 
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
-  LOperand* size = instr->size()->IsConstant()
-      ? UseConstant(instr->size())
-      : UseTempRegister(instr->size());
-  LOperand* temp = TempRegister();
-  LAllocate* result = new(zone()) LAllocate(context, size, temp);
-  return AssignPointerMap(DefineAsRegister(result));
+  LOperand* size = instr->size()->IsConstant() ? UseConstant(instr->size())
+                                               : UseRegister(instr->size());
+  if (instr->IsAllocationFolded()) {
+    LOperand* temp = TempRegister();
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LOperand* temp = TempRegister();
+    LAllocate* result = new (zone()) LAllocate(context, size, temp);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 
diff --git a/src/crankshaft/x64/lithium-x64.h b/src/crankshaft/x64/lithium-x64.h
index 1feba4b..91f5541 100644
--- a/src/crankshaft/x64/lithium-x64.h
+++ b/src/crankshaft/x64/lithium-x64.h
@@ -67,6 +67,7 @@
   V(Drop)                                    \
   V(DummyUse)                                \
   V(Dummy)                                   \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -78,7 +79,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -1136,22 +1136,6 @@
 };
 
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() { return inputs_[0]; }
-  LOperand* left() { return inputs_[1]; }
-  LOperand* right() { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 0> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype) {
@@ -2385,6 +2369,19 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 1> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp) {
+    inputs_[0] = size;
+    temps_[0] = temp;
+  }
+
+  LOperand* size() const { return inputs_[0]; }
+  LOperand* temp() { return temps_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
 
 class LTypeof final : public LTemplateInstruction<1, 2, 0> {
  public:
diff --git a/src/crankshaft/x87/lithium-codegen-x87.cc b/src/crankshaft/x87/lithium-codegen-x87.cc
index 1751199..641a87a 100644
--- a/src/crankshaft/x87/lithium-codegen-x87.cc
+++ b/src/crankshaft/x87/lithium-codegen-x87.cc
@@ -135,11 +135,11 @@
   Comment(";;; Prologue begin");
 
   // Possibly allocate a local context.
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     Comment(";;; Allocate local context");
     bool need_write_barrier = true;
     // Argument to NewContext is the function, which is still in edi.
-    int slots = info_->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
+    int slots = info_->scope()->num_heap_slots() - Context::MIN_CONTEXT_SLOTS;
     Safepoint::DeoptMode deopt_mode = Safepoint::kNoLazyDeopt;
     if (info()->scope()->is_script_scope()) {
       __ push(edi);
@@ -201,6 +201,13 @@
 
   osr_pc_offset_ = masm()->pc_offset();
 
+  // Interpreter is the first tier compiler now. It will run the code generated
+  // by TurboFan compiler which will always put "1" on x87 FPU stack.
+  // This behavior will affect crankshaft's x87 FPU stack depth check under
+  // debug mode.
+  // Need to reset the FPU stack here for this scenario.
+  __ fninit();
+
   // Adjust the frame size, subsuming the unoptimized frame into the
   // optimized frame.
   int slots = GetStackSlotCount() - graph()->osr()->UnoptimizedFrameSlots();
@@ -268,8 +275,6 @@
     } else {
       __ call(entry, RelocInfo::RUNTIME_ENTRY);
     }
-    info()->LogDeoptCallPosition(masm()->pc_offset(),
-                                 table_entry->deopt_info.inlining_id);
   }
   if (needs_frame.is_linked()) {
     __ bind(&needs_frame);
@@ -1009,13 +1014,12 @@
     __ bind(&done);
   }
 
-  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason);
+  Deoptimizer::DeoptInfo deopt_info = MakeDeoptInfo(instr, deopt_reason, id);
 
   DCHECK(info()->IsStub() || frame_is_built_);
   if (cc == no_condition && frame_is_built_) {
     DeoptComment(deopt_info);
     __ call(entry, RelocInfo::RUNTIME_ENTRY);
-    info()->LogDeoptCallPosition(masm()->pc_offset(), deopt_info.inlining_id);
   } else {
     Deoptimizer::JumpTableEntry table_entry(entry, deopt_info, bailout_type,
                                             !frame_is_built_);
@@ -2572,16 +2576,6 @@
 }
 
 
-void LCodeGen::DoInstanceOf(LInstanceOf* instr) {
-  DCHECK(ToRegister(instr->context()).is(esi));
-  DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister()));
-  DCHECK(ToRegister(instr->result()).is(eax));
-  InstanceOfStub stub(isolate());
-  CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
-}
-
-
 void LCodeGen::DoHasInPrototypeChainAndBranch(
     LHasInPrototypeChainAndBranch* instr) {
   Register const object = ToRegister(instr->object());
@@ -2999,9 +2993,9 @@
     __ j(not_equal, &done);
     if (info()->IsStub()) {
       // A stub can safely convert the hole to undefined only if the array
-      // protector cell contains (Smi) Isolate::kArrayProtectorValid. Otherwise
-      // it needs to bail out.
-      __ mov(result, isolate()->factory()->array_protector());
+      // protector cell contains (Smi) Isolate::kArrayProtectorValid.
+      // Otherwise it needs to bail out.
+      __ LoadRoot(result, Heap::kArrayProtectorRootIndex);
       __ cmp(FieldOperand(result, PropertyCell::kValueOffset),
              Immediate(Smi::FromInt(Isolate::kArrayProtectorValid)));
       DeoptimizeIf(not_equal, instr, Deoptimizer::kHole);
@@ -3362,8 +3356,19 @@
   DeoptimizeIf(not_equal, instr, Deoptimizer::kNotAHeapNumber);
 
   Label slow, allocated, done;
-  Register tmp = input_reg.is(eax) ? ecx : eax;
-  Register tmp2 = tmp.is(ecx) ? edx : input_reg.is(ecx) ? edx : ecx;
+  uint32_t available_regs = eax.bit() | ecx.bit() | edx.bit() | ebx.bit();
+  available_regs &= ~input_reg.bit();
+  if (instr->context()->IsRegister()) {
+    // Make sure that the context isn't overwritten in the AllocateHeapNumber
+    // macro below.
+    available_regs &= ~ToRegister(instr->context()).bit();
+  }
+
+  Register tmp =
+      Register::from_code(base::bits::CountTrailingZeros32(available_regs));
+  available_regs &= ~tmp.bit();
+  Register tmp2 =
+      Register::from_code(base::bits::CountTrailingZeros32(available_regs));
 
   // Preserve the value of all registers.
   PushSafepointRegistersScope scope(this);
@@ -4364,7 +4369,15 @@
 
     LOperand* key = instr->key();
     if (key->IsConstantOperand()) {
-      __ mov(ebx, ToImmediate(key, Representation::Smi()));
+      LConstantOperand* constant_key = LConstantOperand::cast(key);
+      int32_t int_key = ToInteger32(constant_key);
+      if (Smi::IsValid(int_key)) {
+        __ mov(ebx, Immediate(Smi::FromInt(int_key)));
+      } else {
+        // We should never get here at runtime because there is a smi check on
+        // the key before this point.
+        __ int3();
+      }
     } else {
       __ Move(ebx, ToRegister(key));
       __ SmiTag(ebx);
@@ -5396,7 +5409,7 @@
   Register temp = ToRegister(instr->temp());
 
   // Allocate memory for the object.
-  AllocationFlags flags = TAG_OBJECT;
+  AllocationFlags flags = NO_ALLOCATION_FLAGS;
   if (instr->hydrogen()->MustAllocateDoubleAligned()) {
     flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
   }
@@ -5405,6 +5418,11 @@
     flags = static_cast<AllocationFlags>(flags | PRETENURE);
   }
 
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    flags = static_cast<AllocationFlags>(flags | ALLOCATION_FOLDING_DOMINATOR);
+  }
+  DCHECK(!instr->hydrogen()->IsAllocationFolded());
+
   if (instr->size()->IsConstantOperand()) {
     int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
     CHECK(size <= Page::kMaxRegularHeapObjectSize);
@@ -5434,6 +5452,29 @@
   }
 }
 
+void LCodeGen::DoFastAllocate(LFastAllocate* instr) {
+  DCHECK(instr->hydrogen()->IsAllocationFolded());
+  DCHECK(!instr->hydrogen()->IsAllocationFoldingDominator());
+  Register result = ToRegister(instr->result());
+  Register temp = ToRegister(instr->temp());
+
+  AllocationFlags flags = ALLOCATION_FOLDED;
+  if (instr->hydrogen()->MustAllocateDoubleAligned()) {
+    flags = static_cast<AllocationFlags>(flags | DOUBLE_ALIGNMENT);
+  }
+  if (instr->hydrogen()->IsOldSpaceAllocation()) {
+    DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+    flags = static_cast<AllocationFlags>(flags | PRETENURE);
+  }
+  if (instr->size()->IsConstantOperand()) {
+    int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
+    CHECK(size <= Page::kMaxRegularHeapObjectSize);
+    __ FastAllocate(size, result, temp, flags);
+  } else {
+    Register size = ToRegister(instr->size());
+    __ FastAllocate(size, result, temp, flags);
+  }
+}
 
 void LCodeGen::DoDeferredAllocate(LAllocate* instr) {
   Register result = ToRegister(instr->result());
@@ -5473,6 +5514,22 @@
   CallRuntimeFromDeferred(
       Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
   __ StoreToSafepointRegisterSlot(result, eax);
+
+  if (instr->hydrogen()->IsAllocationFoldingDominator()) {
+    AllocationFlags allocation_flags = NO_ALLOCATION_FLAGS;
+    if (instr->hydrogen()->IsOldSpaceAllocation()) {
+      DCHECK(!instr->hydrogen()->IsNewSpaceAllocation());
+      allocation_flags = static_cast<AllocationFlags>(flags | PRETENURE);
+    }
+    // If the allocation folding dominator allocate triggered a GC, allocation
+    // happend in the runtime. We have to reset the top pointer to virtually
+    // undo the allocation.
+    ExternalReference allocation_top =
+        AllocationUtils::GetAllocationTopReference(isolate(), allocation_flags);
+    __ sub(eax, Immediate(kHeapObjectTag));
+    __ mov(Operand::StaticVariable(allocation_top), eax);
+    __ add(eax, Immediate(kHeapObjectTag));
+  }
 }
 
 
diff --git a/src/crankshaft/x87/lithium-codegen-x87.h b/src/crankshaft/x87/lithium-codegen-x87.h
index 3719236..f979cf0 100644
--- a/src/crankshaft/x87/lithium-codegen-x87.h
+++ b/src/crankshaft/x87/lithium-codegen-x87.h
@@ -150,8 +150,6 @@
 #undef DECLARE_DO
 
  private:
-  LanguageMode language_mode() const { return info()->language_mode(); }
-
   Scope* scope() const { return scope_; }
 
   void EmitClassOfTest(Label* if_true,
diff --git a/src/crankshaft/x87/lithium-x87.cc b/src/crankshaft/x87/lithium-x87.cc
index 163d2c9..7df70ae 100644
--- a/src/crankshaft/x87/lithium-x87.cc
+++ b/src/crankshaft/x87/lithium-x87.cc
@@ -925,7 +925,7 @@
 
 LInstruction* LChunkBuilder::DoPrologue(HPrologue* instr) {
   LInstruction* result = new (zone()) LPrologue();
-  if (info_->num_heap_slots() > 0) {
+  if (info_->scope()->num_heap_slots() > 0) {
     result = MarkAsCall(result, instr);
   }
   return result;
@@ -983,17 +983,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
-  LOperand* left =
-      UseFixed(instr->left(), InstanceOfDescriptor::LeftRegister());
-  LOperand* right =
-      UseFixed(instr->right(), InstanceOfDescriptor::RightRegister());
-  LOperand* context = UseFixed(instr->context(), esi);
-  LInstanceOf* result = new (zone()) LInstanceOf(context, left, right);
-  return MarkAsCall(DefineFixed(result, eax), instr);
-}
-
-
 LInstruction* LChunkBuilder::DoHasInPrototypeChainAndBranch(
     HHasInPrototypeChainAndBranch* instr) {
   LOperand* object = UseRegister(instr->object());
@@ -2399,14 +2388,19 @@
 
 
 LInstruction* LChunkBuilder::DoAllocate(HAllocate* instr) {
-  info()->MarkAsDeferredCalling();
-  LOperand* context = UseAny(instr->context());
-  LOperand* size = instr->size()->IsConstant()
-      ? UseConstant(instr->size())
-      : UseTempRegister(instr->size());
-  LOperand* temp = TempRegister();
-  LAllocate* result = new(zone()) LAllocate(context, size, temp);
-  return AssignPointerMap(DefineAsRegister(result));
+  LOperand* size = instr->size()->IsConstant() ? UseConstant(instr->size())
+                                               : UseRegister(instr->size());
+  if (instr->IsAllocationFolded()) {
+    LOperand* temp = TempRegister();
+    LFastAllocate* result = new (zone()) LFastAllocate(size, temp);
+    return DefineAsRegister(result);
+  } else {
+    info()->MarkAsDeferredCalling();
+    LOperand* context = UseAny(instr->context());
+    LOperand* temp = TempRegister();
+    LAllocate* result = new (zone()) LAllocate(context, size, temp);
+    return AssignPointerMap(DefineAsRegister(result));
+  }
 }
 
 
diff --git a/src/crankshaft/x87/lithium-x87.h b/src/crankshaft/x87/lithium-x87.h
index d83322a..98703ae 100644
--- a/src/crankshaft/x87/lithium-x87.h
+++ b/src/crankshaft/x87/lithium-x87.h
@@ -72,6 +72,7 @@
   V(Drop)                                    \
   V(Dummy)                                   \
   V(DummyUse)                                \
+  V(FastAllocate)                            \
   V(FlooringDivByConstI)                     \
   V(FlooringDivByPowerOf2I)                  \
   V(FlooringDivI)                            \
@@ -83,7 +84,6 @@
   V(HasInPrototypeChainAndBranch)            \
   V(HasInstanceTypeAndBranch)                \
   V(InnerAllocatedObject)                    \
-  V(InstanceOf)                              \
   V(InstructionGap)                          \
   V(Integer32ToDouble)                       \
   V(InvokeFunction)                          \
@@ -153,7 +153,6 @@
   V(UnknownOSRValue)                         \
   V(WrapReceiver)
 
-
 #define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic)            \
   Opcode opcode() const final { return LInstruction::k##type; } \
   void CompileToNative(LCodeGen* generator) final;              \
@@ -1134,22 +1133,6 @@
 };
 
 
-class LInstanceOf final : public LTemplateInstruction<1, 3, 0> {
- public:
-  LInstanceOf(LOperand* context, LOperand* left, LOperand* right) {
-    inputs_[0] = context;
-    inputs_[1] = left;
-    inputs_[2] = right;
-  }
-
-  LOperand* context() const { return inputs_[0]; }
-  LOperand* left() const { return inputs_[1]; }
-  LOperand* right() const { return inputs_[2]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(InstanceOf, "instance-of")
-};
-
-
 class LHasInPrototypeChainAndBranch final : public LControlInstruction<2, 1> {
  public:
   LHasInPrototypeChainAndBranch(LOperand* object, LOperand* prototype,
@@ -2398,6 +2381,19 @@
   DECLARE_HYDROGEN_ACCESSOR(Allocate)
 };
 
+class LFastAllocate final : public LTemplateInstruction<1, 1, 1> {
+ public:
+  LFastAllocate(LOperand* size, LOperand* temp) {
+    inputs_[0] = size;
+    temps_[0] = temp;
+  }
+
+  LOperand* size() const { return inputs_[0]; }
+  LOperand* temp() { return temps_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(FastAllocate, "fast-allocate")
+  DECLARE_HYDROGEN_ACCESSOR(Allocate)
+};
 
 class LTypeof final : public LTemplateInstruction<1, 2, 0> {
  public:
diff --git a/src/d8.cc b/src/d8.cc
index 0688380..9466ab7 100644
--- a/src/d8.cc
+++ b/src/d8.cc
@@ -19,6 +19,7 @@
 
 #ifndef V8_SHARED
 #include <algorithm>
+#include <fstream>
 #include <vector>
 #endif  // !V8_SHARED
 
@@ -41,6 +42,7 @@
 #include "src/base/platform/platform.h"
 #include "src/base/sys-info.h"
 #include "src/basic-block-profiler.h"
+#include "src/interpreter/interpreter.h"
 #include "src/snapshot/natives.h"
 #include "src/utils.h"
 #include "src/v8.h"
@@ -1275,6 +1277,21 @@
 inline bool operator<(const CounterAndKey& lhs, const CounterAndKey& rhs) {
   return strcmp(lhs.key, rhs.key) < 0;
 }
+
+void Shell::WriteIgnitionDispatchCountersFile(v8::Isolate* isolate) {
+  HandleScope handle_scope(isolate);
+  Local<Context> context = Context::New(isolate);
+  Context::Scope context_scope(context);
+
+  Local<Object> dispatch_counters = reinterpret_cast<i::Isolate*>(isolate)
+                                        ->interpreter()
+                                        ->GetDispatchCountersObject();
+  std::ofstream dispatch_counters_stream(
+      i::FLAG_trace_ignition_dispatches_output_file);
+  dispatch_counters_stream << *String::Utf8Value(
+      JSON::Stringify(context, dispatch_counters).ToLocalChecked());
+}
+
 #endif  // !V8_SHARED
 
 
@@ -1312,6 +1329,7 @@
            "-------------+\n");
     delete [] counters;
   }
+
   delete counters_file_;
   delete counter_map_;
 #endif  // !V8_SHARED
@@ -2476,6 +2494,13 @@
       RunShell(isolate);
     }
 
+#ifndef V8_SHARED
+    if (i::FLAG_ignition && i::FLAG_trace_ignition_dispatches &&
+        i::FLAG_trace_ignition_dispatches_output_file != nullptr) {
+      WriteIgnitionDispatchCountersFile(isolate);
+    }
+#endif
+
     // Shut down contexts and collect garbage.
     evaluation_context_.Reset();
 #ifndef V8_SHARED
diff --git a/src/d8.gyp b/src/d8.gyp
index f249a78..e60b01f 100644
--- a/src/d8.gyp
+++ b/src/d8.gyp
@@ -31,16 +31,15 @@
     # Enable support for Intel VTune. Supported on ia32/x64 only
     'v8_enable_vtunejit%': 0,
     'v8_enable_i18n_support%': 1,
-    'v8_toolset_for_d8%': 'target',
   },
-  'includes': ['../build/toolchain.gypi', '../build/features.gypi'],
+  'includes': ['../gypfiles/toolchain.gypi', '../gypfiles/features.gypi'],
   'targets': [
     {
       'target_name': 'd8',
       'type': 'executable',
       'dependencies': [
-        '../tools/gyp/v8.gyp:v8',
-        '../tools/gyp/v8.gyp:v8_libplatform',
+        'v8.gyp:v8',
+        'v8.gyp:v8_libplatform',
       ],
       # Generated source files need this explicitly:
       'include_dirs+': [
@@ -52,7 +51,7 @@
       ],
       'conditions': [
         [ 'want_separate_host_toolset==1', {
-          'toolsets': [ '<(v8_toolset_for_d8)', ],
+          'toolsets': [ 'target', ],
         }],
         ['(OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="netbsd" \
            or OS=="openbsd" or OS=="solaris" or OS=="android" \
@@ -141,7 +140,7 @@
     },
   ],
   'conditions': [
-    ['test_isolation_mode != "noop" and v8_toolset_for_d8 == "target"', {
+    ['test_isolation_mode != "noop"', {
       'targets': [
         {
           'target_name': 'd8_run',
@@ -150,7 +149,7 @@
             'd8',
           ],
           'includes': [
-            '../build/isolate.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'd8.isolate',
diff --git a/src/d8.h b/src/d8.h
index 321d9c1..e51e8ee 100644
--- a/src/d8.h
+++ b/src/d8.h
@@ -461,6 +461,7 @@
   static i::List<Worker*> workers_;
   static i::List<SharedArrayBuffer::Contents> externalized_shared_contents_;
 
+  static void WriteIgnitionDispatchCountersFile(v8::Isolate* isolate);
   static Counter* GetCounter(const char* name, bool is_histogram);
   static Local<String> Stringify(Isolate* isolate, Local<Value> value);
 #endif  // !V8_SHARED
diff --git a/src/debug/debug-evaluate.cc b/src/debug/debug-evaluate.cc
index 1729408..d5ebaa5 100644
--- a/src/debug/debug-evaluate.cc
+++ b/src/debug/debug-evaluate.cc
@@ -95,11 +95,12 @@
   }
 
   Handle<JSFunction> eval_fun;
-  ASSIGN_RETURN_ON_EXCEPTION(isolate, eval_fun,
-                             Compiler::GetFunctionFromEval(
-                                 source, outer_info, context, SLOPPY,
-                                 NO_PARSE_RESTRICTION, RelocInfo::kNoPosition),
-                             Object);
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate, eval_fun,
+      Compiler::GetFunctionFromEval(
+          source, outer_info, context, SLOPPY, NO_PARSE_RESTRICTION,
+          RelocInfo::kNoPosition, RelocInfo::kNoPosition),
+      Object);
 
   Handle<Object> result;
   ASSIGN_RETURN_ON_EXCEPTION(
@@ -182,7 +183,8 @@
         context_chain_element.wrapped_context = current_context;
       }
       context_chain_.Add(context_chain_element);
-    } else if (scope_type == ScopeIterator::ScopeTypeBlock) {
+    } else if (scope_type == ScopeIterator::ScopeTypeBlock ||
+               scope_type == ScopeIterator::ScopeTypeEval) {
       Handle<JSObject> materialized = factory->NewJSObjectWithNullProto();
       frame_inspector.MaterializeStackLocals(materialized,
                                              it.CurrentScopeInfo());
@@ -247,7 +249,8 @@
     // 'this' is allocated in an outer context and is is already being
     // referenced by the current function, so it can be correctly resolved.
     return;
-  } else if (local_function->shared()->scope_info()->HasReceiver()) {
+  } else if (local_function->shared()->scope_info()->HasReceiver() &&
+             !frame_->receiver()->IsTheHole()) {
     recv = handle(frame_->receiver(), isolate_);
   }
   JSObject::SetOwnPropertyIgnoreAttributes(target, name, recv, NONE).Check();
diff --git a/src/debug/debug-frames.cc b/src/debug/debug-frames.cc
index a7956ff..453a77d 100644
--- a/src/debug/debug-frames.cc
+++ b/src/debug/debug-frames.cc
@@ -72,8 +72,7 @@
     return deoptimized_frame_->GetSourcePosition();
   } else if (is_interpreted_) {
     InterpretedFrame* frame = reinterpret_cast<InterpretedFrame*>(frame_);
-    BytecodeArray* bytecode_array =
-        frame->function()->shared()->bytecode_array();
+    BytecodeArray* bytecode_array = frame->GetBytecodeArray();
     return bytecode_array->SourcePosition(frame->GetBytecodeOffset());
   } else {
     Code* code = frame_->LookupCode();
@@ -117,6 +116,7 @@
     // TODO(yangguo): check whether this is necessary, now that we materialize
     //                context locals as well.
     Handle<String> name(scope_info->ParameterName(i));
+    if (ScopeInfo::VariableIsSynthetic(*name)) continue;
     if (ParameterIsShadowedByContextLocal(scope_info, name)) continue;
 
     Handle<Object> value =
@@ -130,8 +130,8 @@
 
   // Second fill all stack locals.
   for (int i = 0; i < scope_info->StackLocalCount(); ++i) {
-    if (scope_info->LocalIsSynthetic(i)) continue;
     Handle<String> name(scope_info->StackLocalName(i));
+    if (ScopeInfo::VariableIsSynthetic(*name)) continue;
     Handle<Object> value = GetExpression(scope_info->StackLocalIndex(i));
     // TODO(yangguo): We convert optimized out values to {undefined} when they
     // are passed to the debugger. Eventually we should handle them somehow.
@@ -163,6 +163,7 @@
   for (int i = 0; i < scope_info->ParameterCount(); ++i) {
     // Shadowed parameters were not materialized.
     Handle<String> name(scope_info->ParameterName(i));
+    if (ScopeInfo::VariableIsSynthetic(*name)) continue;
     if (ParameterIsShadowedByContextLocal(scope_info, name)) continue;
 
     DCHECK(!frame_->GetParameter(i)->IsTheHole());
@@ -173,13 +174,12 @@
 
   // Stack locals.
   for (int i = 0; i < scope_info->StackLocalCount(); ++i) {
-    if (scope_info->LocalIsSynthetic(i)) continue;
+    Handle<String> name(scope_info->StackLocalName(i));
+    if (ScopeInfo::VariableIsSynthetic(*name)) continue;
     int index = scope_info->StackLocalIndex(i);
     if (frame_->GetExpression(index)->IsTheHole()) continue;
     Handle<Object> value =
-        Object::GetPropertyOrElement(
-            target, handle(scope_info->StackLocalName(i), isolate_))
-            .ToHandleChecked();
+        Object::GetPropertyOrElement(target, name).ToHandleChecked();
     frame_->SetExpression(index, *value);
   }
 }
diff --git a/src/debug/debug-scopes.cc b/src/debug/debug-scopes.cc
index d9c615b..1602711 100644
--- a/src/debug/debug-scopes.cc
+++ b/src/debug/debug-scopes.cc
@@ -5,6 +5,7 @@
 #include "src/debug/debug-scopes.h"
 
 #include "src/ast/scopes.h"
+#include "src/compiler.h"
 #include "src/debug/debug.h"
 #include "src/frames-inl.h"
 #include "src/globals.h"
@@ -80,34 +81,29 @@
   }
 
   // Reparse the code and analyze the scopes.
-  Scope* scope = NULL;
   // Check whether we are in global, eval or function code.
   Zone zone(isolate->allocator());
+  base::SmartPointer<ParseInfo> info;
   if (scope_info->scope_type() != FUNCTION_SCOPE) {
     // Global or eval code.
     Handle<Script> script(Script::cast(shared_info->script()));
-    ParseInfo info(&zone, script);
+    info.Reset(new ParseInfo(&zone, script));
+    info->set_toplevel();
     if (scope_info->scope_type() == SCRIPT_SCOPE) {
-      info.set_global();
+      info->set_global();
     } else {
       DCHECK(scope_info->scope_type() == EVAL_SCOPE);
-      info.set_eval();
-      info.set_context(Handle<Context>(function->context()));
+      info->set_eval();
+      info->set_context(Handle<Context>(function->context()));
     }
-    if (Parser::ParseStatic(&info) && Scope::Analyze(&info)) {
-      scope = info.literal()->scope();
-    }
-    if (!ignore_nested_scopes) RetrieveScopeChain(scope);
-    if (collect_non_locals) CollectNonLocals(scope);
   } else {
-    // Function code
-    ParseInfo info(&zone, function);
-    if (Parser::ParseStatic(&info) && Scope::Analyze(&info)) {
-      scope = info.literal()->scope();
-    }
-    if (!ignore_nested_scopes) RetrieveScopeChain(scope);
-    if (collect_non_locals) CollectNonLocals(scope);
+    // Inner function.
+    info.Reset(new ParseInfo(&zone, function));
   }
+  Scope* scope = NULL;
+  if (Compiler::ParseAndAnalyze(info.get())) scope = info->literal()->scope();
+  if (!ignore_nested_scopes) RetrieveScopeChain(scope);
+  if (collect_non_locals) CollectNonLocals(scope);
   UnwrapEvaluationContext();
 }
 
@@ -126,8 +122,6 @@
   while (true) {
     if (context_.is_null()) return;
     if (!context_->IsDebugEvaluateContext()) return;
-    // An existing debug-evaluate context can only be outside the local scope.
-    DCHECK(nested_scope_chain_.is_empty());
     Handle<Object> wrapped(context_->get(Context::WRAPPED_CONTEXT_INDEX),
                            isolate_);
     if (wrapped->IsContext()) {
@@ -201,11 +195,15 @@
   } else if (nested_scope_chain_.is_empty()) {
     context_ = Handle<Context>(context_->previous(), isolate_);
   } else {
-    if (nested_scope_chain_.last().scope_info->HasContext()) {
-      DCHECK(context_->previous() != NULL);
-      context_ = Handle<Context>(context_->previous(), isolate_);
-    }
-    nested_scope_chain_.RemoveLast();
+    do {
+      if (nested_scope_chain_.last().scope_info->HasContext()) {
+        DCHECK(context_->previous() != NULL);
+        context_ = Handle<Context>(context_->previous(), isolate_);
+      }
+      nested_scope_chain_.RemoveLast();
+      if (nested_scope_chain_.is_empty()) break;
+      // Repeat to skip hidden scopes.
+    } while (nested_scope_chain_.last().is_hidden());
   }
   UnwrapEvaluationContext();
 }
@@ -236,8 +234,10 @@
         DCHECK(!scope_info->HasContext() || context_->IsBlockContext());
         return ScopeTypeBlock;
       case EVAL_SCOPE:
-        UNREACHABLE();
+        DCHECK(!scope_info->HasContext() || context_->IsFunctionContext());
+        return ScopeTypeEval;
     }
+    UNREACHABLE();
   }
   if (context_->IsNativeContext()) {
     DCHECK(context_->global_object()->IsJSGlobalObject());
@@ -284,7 +284,8 @@
       // Materialize the content of the closure scope into a JSObject.
       return MaterializeClosure();
     case ScopeIterator::ScopeTypeBlock:
-      return MaterializeBlockScope();
+    case ScopeIterator::ScopeTypeEval:
+      return MaterializeInnerScope();
     case ScopeIterator::ScopeTypeModule:
       return MaterializeModuleScope();
   }
@@ -295,7 +296,8 @@
 
 bool ScopeIterator::HasContext() {
   ScopeType type = Type();
-  if (type == ScopeTypeBlock || type == ScopeTypeLocal) {
+  if (type == ScopeTypeBlock || type == ScopeTypeLocal ||
+      type == ScopeTypeEval) {
     if (!nested_scope_chain_.is_empty()) {
       return nested_scope_chain_.last().scope_info->HasContext();
     }
@@ -321,7 +323,8 @@
     case ScopeIterator::ScopeTypeScript:
       return SetScriptVariableValue(variable_name, new_value);
     case ScopeIterator::ScopeTypeBlock:
-      return SetBlockVariableValue(variable_name, new_value);
+    case ScopeIterator::ScopeTypeEval:
+      return SetInnerScopeVariableValue(variable_name, new_value);
     case ScopeIterator::ScopeTypeModule:
       // TODO(2399): should we implement it?
       break;
@@ -453,7 +456,7 @@
       global->native_context()->script_context_table());
 
   Handle<JSObject> script_scope =
-      isolate_->factory()->NewJSObject(isolate_->object_function());
+      isolate_->factory()->NewJSObjectWithNullProto();
 
   for (int context_index = 0; context_index < script_contexts->used();
        context_index++) {
@@ -470,7 +473,7 @@
   Handle<JSFunction> function = GetFunction();
 
   Handle<JSObject> local_scope =
-      isolate_->factory()->NewJSObject(isolate_->object_function());
+      isolate_->factory()->NewJSObjectWithNullProto();
   frame_inspector_->MaterializeStackLocals(local_scope, function);
 
   Handle<Context> frame_context =
@@ -482,19 +485,16 @@
 
   if (!scope_info->HasContext()) return local_scope;
 
-  // Third fill all context locals.
+  // Fill all context locals.
   Handle<Context> function_context(frame_context->closure_context());
   CopyContextLocalsToScopeObject(scope_info, function_context, local_scope);
 
   // Finally copy any properties from the function context extension.
   // These will be variables introduced by eval.
   if (function_context->closure() == *function &&
-      function_context->has_extension() &&
       !function_context->IsNativeContext()) {
-    bool success = CopyContextExtensionToScopeObject(
-        handle(function_context->extension_object(), isolate_), local_scope,
-        INCLUDE_PROTOS);
-    if (!success) return MaybeHandle<JSObject>();
+    CopyContextExtensionToScopeObject(function_context, local_scope,
+                                      INCLUDE_PROTOS);
   }
 
   return local_scope;
@@ -513,19 +513,14 @@
   // Allocate and initialize a JSObject with all the content of this function
   // closure.
   Handle<JSObject> closure_scope =
-      isolate_->factory()->NewJSObject(isolate_->object_function());
+      isolate_->factory()->NewJSObjectWithNullProto();
 
   // Fill all context locals to the context extension.
   CopyContextLocalsToScopeObject(scope_info, context, closure_scope);
 
   // Finally copy any properties from the function context extension. This will
   // be variables introduced by eval.
-  if (context->has_extension()) {
-    bool success = CopyContextExtensionToScopeObject(
-        handle(context->extension_object(), isolate_), closure_scope, OWN_ONLY);
-    DCHECK(success);
-    USE(success);
-  }
+  CopyContextExtensionToScopeObject(context, closure_scope, OWN_ONLY);
 
   return closure_scope;
 }
@@ -540,7 +535,7 @@
   Handle<Object> thrown_object(context->get(Context::THROWN_OBJECT_INDEX),
                                isolate_);
   Handle<JSObject> catch_scope =
-      isolate_->factory()->NewJSObject(isolate_->object_function());
+      isolate_->factory()->NewJSObjectWithNullProto();
   JSObject::SetOwnPropertyIgnoreAttributes(catch_scope, name, thrown_object,
                                            NONE)
       .Check();
@@ -560,14 +555,14 @@
 
 // Create a plain JSObject which materializes the block scope for the specified
 // block context.
-Handle<JSObject> ScopeIterator::MaterializeBlockScope() {
-  Handle<JSObject> block_scope =
-      isolate_->factory()->NewJSObject(isolate_->object_function());
+Handle<JSObject> ScopeIterator::MaterializeInnerScope() {
+  Handle<JSObject> inner_scope =
+      isolate_->factory()->NewJSObjectWithNullProto();
 
   Handle<Context> context = Handle<Context>::null();
   if (!nested_scope_chain_.is_empty()) {
     Handle<ScopeInfo> scope_info = nested_scope_chain_.last().scope_info;
-    frame_inspector_->MaterializeStackLocals(block_scope, scope_info);
+    frame_inspector_->MaterializeStackLocals(inner_scope, scope_info);
     if (scope_info->HasContext()) context = CurrentContext();
   } else {
     context = CurrentContext();
@@ -575,17 +570,10 @@
 
   if (!context.is_null()) {
     // Fill all context locals.
-    CopyContextLocalsToScopeObject(handle(context->scope_info()),
-                                   context, block_scope);
-    // Fill all extension variables.
-    if (context->extension_object() != nullptr) {
-      bool success = CopyContextExtensionToScopeObject(
-          handle(context->extension_object()), block_scope, OWN_ONLY);
-      DCHECK(success);
-      USE(success);
-    }
+    CopyContextLocalsToScopeObject(CurrentScopeInfo(), context, inner_scope);
+    CopyContextExtensionToScopeObject(context, inner_scope, OWN_ONLY);
   }
-  return block_scope;
+  return inner_scope;
 }
 
 
@@ -599,7 +587,7 @@
   // Allocate and initialize a JSObject with all the members of the debugged
   // module.
   Handle<JSObject> module_scope =
-      isolate_->factory()->NewJSObject(isolate_->object_function());
+      isolate_->factory()->NewJSObjectWithNullProto();
 
   // Fill all context locals.
   CopyContextLocalsToScopeObject(scope_info, context, module_scope);
@@ -607,12 +595,43 @@
   return module_scope;
 }
 
+bool ScopeIterator::SetParameterValue(Handle<ScopeInfo> scope_info,
+                                      JavaScriptFrame* frame,
+                                      Handle<String> parameter_name,
+                                      Handle<Object> new_value) {
+  // Setting stack locals of optimized frames is not supported.
+  if (frame->is_optimized()) return false;
+  HandleScope scope(isolate_);
+  for (int i = 0; i < scope_info->ParameterCount(); ++i) {
+    if (String::Equals(handle(scope_info->ParameterName(i)), parameter_name)) {
+      frame->SetParameterValue(i, *new_value);
+      return true;
+    }
+  }
+  return false;
+}
 
-// Set the context local variable value.
-bool ScopeIterator::SetContextLocalValue(Handle<ScopeInfo> scope_info,
-                                         Handle<Context> context,
-                                         Handle<String> variable_name,
-                                         Handle<Object> new_value) {
+bool ScopeIterator::SetStackVariableValue(Handle<ScopeInfo> scope_info,
+                                          JavaScriptFrame* frame,
+                                          Handle<String> variable_name,
+                                          Handle<Object> new_value) {
+  // Setting stack locals of optimized frames is not supported.
+  if (frame->is_optimized()) return false;
+  HandleScope scope(isolate_);
+  for (int i = 0; i < scope_info->StackLocalCount(); ++i) {
+    if (String::Equals(handle(scope_info->StackLocalName(i)), variable_name)) {
+      frame->SetExpression(scope_info->StackLocalIndex(i), *new_value);
+      return true;
+    }
+  }
+  return false;
+}
+
+bool ScopeIterator::SetContextVariableValue(Handle<ScopeInfo> scope_info,
+                                            Handle<Context> context,
+                                            Handle<String> variable_name,
+                                            Handle<Object> new_value) {
+  HandleScope scope(isolate_);
   for (int i = 0; i < scope_info->ContextLocalCount(); i++) {
     Handle<String> next_name(scope_info->ContextLocalName(i));
     if (String::Equals(variable_name, next_name)) {
@@ -626,128 +645,8 @@
     }
   }
 
-  return false;
-}
-
-
-bool ScopeIterator::SetLocalVariableValue(Handle<String> variable_name,
-                                          Handle<Object> new_value) {
-  JavaScriptFrame* frame = GetFrame();
-  // Optimized frames are not supported.
-  if (frame->is_optimized()) return false;
-
-  Handle<JSFunction> function(frame->function());
-  Handle<SharedFunctionInfo> shared(function->shared());
-  Handle<ScopeInfo> scope_info(shared->scope_info());
-
-  bool default_result = false;
-
-  // Parameters.
-  for (int i = 0; i < scope_info->ParameterCount(); ++i) {
-    HandleScope scope(isolate_);
-    if (String::Equals(handle(scope_info->ParameterName(i)), variable_name)) {
-      frame->SetParameterValue(i, *new_value);
-      // Argument might be shadowed in heap context, don't stop here.
-      default_result = true;
-    }
-  }
-
-  // Stack locals.
-  for (int i = 0; i < scope_info->StackLocalCount(); ++i) {
-    HandleScope scope(isolate_);
-    if (String::Equals(handle(scope_info->StackLocalName(i)), variable_name)) {
-      frame->SetExpression(scope_info->StackLocalIndex(i), *new_value);
-      return true;
-    }
-  }
-
-  if (scope_info->HasContext()) {
-    // Context locals.
-    Handle<Context> frame_context(Context::cast(frame->context()));
-    Handle<Context> function_context(frame_context->declaration_context());
-    if (SetContextLocalValue(scope_info, function_context, variable_name,
-                             new_value)) {
-      return true;
-    }
-
-    // Function context extension. These are variables introduced by eval.
-    if (function_context->closure() == *function) {
-      if (function_context->has_extension() &&
-          !function_context->IsNativeContext()) {
-        Handle<JSObject> ext(function_context->extension_object());
-
-        Maybe<bool> maybe = JSReceiver::HasProperty(ext, variable_name);
-        DCHECK(maybe.IsJust());
-        if (maybe.FromJust()) {
-          // We don't expect this to do anything except replacing
-          // property value.
-          Runtime::SetObjectProperty(isolate_, ext, variable_name, new_value,
-                                     SLOPPY)
-              .Assert();
-          return true;
-        }
-      }
-    }
-  }
-
-  return default_result;
-}
-
-
-bool ScopeIterator::SetBlockVariableValue(Handle<String> variable_name,
-                                          Handle<Object> new_value) {
-  Handle<ScopeInfo> scope_info = CurrentScopeInfo();
-  JavaScriptFrame* frame = GetFrame();
-
-  for (int i = 0; i < scope_info->StackLocalCount(); ++i) {
-    HandleScope scope(isolate_);
-    if (String::Equals(handle(scope_info->StackLocalName(i)), variable_name)) {
-      frame->SetExpression(scope_info->StackLocalIndex(i), *new_value);
-      return true;
-    }
-  }
-
-  if (HasContext()) {
-    Handle<Context> context = CurrentContext();
-    if (SetContextLocalValue(scope_info, context, variable_name, new_value)) {
-      return true;
-    }
-
-    Handle<JSObject> ext(context->extension_object(), isolate_);
-    if (!ext.is_null()) {
-      Maybe<bool> maybe = JSReceiver::HasOwnProperty(ext, variable_name);
-      DCHECK(maybe.IsJust());
-      if (maybe.FromJust()) {
-        // We don't expect this to do anything except replacing property value.
-        JSObject::SetOwnPropertyIgnoreAttributes(ext, variable_name, new_value,
-                                                 NONE)
-            .Check();
-        return true;
-      }
-    }
-  }
-
-  return false;
-}
-
-
-// This method copies structure of MaterializeClosure method above.
-bool ScopeIterator::SetClosureVariableValue(Handle<String> variable_name,
-                                            Handle<Object> new_value) {
-  Handle<Context> context = CurrentContext();
-  DCHECK(context->IsFunctionContext());
-
-  // Context locals to the context extension.
-  Handle<SharedFunctionInfo> shared(context->closure()->shared());
-  Handle<ScopeInfo> scope_info(shared->scope_info());
-  if (SetContextLocalValue(scope_info, context, variable_name, new_value)) {
-    return true;
-  }
-
-  // Properties from the function context extension. This will
-  // be variables introduced by eval.
   if (context->has_extension()) {
-    Handle<JSObject> ext(JSObject::cast(context->extension_object()));
+    Handle<JSObject> ext(context->extension_object());
     Maybe<bool> maybe = JSReceiver::HasOwnProperty(ext, variable_name);
     DCHECK(maybe.IsJust());
     if (maybe.FromJust()) {
@@ -762,6 +661,55 @@
   return false;
 }
 
+bool ScopeIterator::SetLocalVariableValue(Handle<String> variable_name,
+                                          Handle<Object> new_value) {
+  JavaScriptFrame* frame = GetFrame();
+  Handle<ScopeInfo> scope_info(frame->function()->shared()->scope_info());
+
+  // Parameter might be shadowed in context. Don't stop here.
+  bool result = SetParameterValue(scope_info, frame, variable_name, new_value);
+
+  // Stack locals.
+  if (SetStackVariableValue(scope_info, frame, variable_name, new_value)) {
+    return true;
+  }
+
+  if (scope_info->HasContext() &&
+      SetContextVariableValue(scope_info, CurrentContext(), variable_name,
+                              new_value)) {
+    return true;
+  }
+
+  return result;
+}
+
+bool ScopeIterator::SetInnerScopeVariableValue(Handle<String> variable_name,
+                                               Handle<Object> new_value) {
+  Handle<ScopeInfo> scope_info = CurrentScopeInfo();
+  DCHECK(scope_info->scope_type() == BLOCK_SCOPE ||
+         scope_info->scope_type() == EVAL_SCOPE);
+  JavaScriptFrame* frame = GetFrame();
+
+  // Setting stack locals of optimized frames is not supported.
+  if (SetStackVariableValue(scope_info, frame, variable_name, new_value)) {
+    return true;
+  }
+
+  if (HasContext() && SetContextVariableValue(scope_info, CurrentContext(),
+                                              variable_name, new_value)) {
+    return true;
+  }
+
+  return false;
+}
+
+// This method copies structure of MaterializeClosure method above.
+bool ScopeIterator::SetClosureVariableValue(Handle<String> variable_name,
+                                            Handle<Object> new_value) {
+  DCHECK(CurrentContext()->IsFunctionContext());
+  return SetContextVariableValue(CurrentScopeInfo(), CurrentContext(),
+                                 variable_name, new_value);
+}
 
 bool ScopeIterator::SetScriptVariableValue(Handle<String> variable_name,
                                            Handle<Object> new_value) {
@@ -780,7 +728,6 @@
   return false;
 }
 
-
 bool ScopeIterator::SetCatchVariableValue(Handle<String> variable_name,
                                           Handle<Object> new_value) {
   Handle<Context> context = CurrentContext();
@@ -801,48 +748,47 @@
   int local_count = scope_info->ContextLocalCount();
   if (local_count == 0) return;
   // Fill all context locals to the context extension.
-  int first_context_var = scope_info->StackLocalCount();
-  int start = scope_info->ContextLocalNameEntriesIndex();
   for (int i = 0; i < local_count; ++i) {
-    if (scope_info->LocalIsSynthetic(first_context_var + i)) continue;
+    Handle<String> name(scope_info->ContextLocalName(i));
+    if (ScopeInfo::VariableIsSynthetic(*name)) continue;
     int context_index = Context::MIN_CONTEXT_SLOTS + i;
     Handle<Object> value = Handle<Object>(context->get(context_index), isolate);
     // Reflect variables under TDZ as undefined in scope object.
     if (value->IsTheHole()) continue;
     // This should always succeed.
     // TODO(verwaest): Use AddDataProperty instead.
-    JSObject::SetOwnPropertyIgnoreAttributes(
-        scope_object, handle(String::cast(scope_info->get(i + start))), value,
-        NONE)
+    JSObject::SetOwnPropertyIgnoreAttributes(scope_object, name, value, NONE)
         .Check();
   }
 }
 
-bool ScopeIterator::CopyContextExtensionToScopeObject(
-    Handle<JSObject> extension, Handle<JSObject> scope_object,
+void ScopeIterator::CopyContextExtensionToScopeObject(
+    Handle<Context> context, Handle<JSObject> scope_object,
     KeyCollectionType type) {
-  Handle<FixedArray> keys;
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-      isolate_, keys, JSReceiver::GetKeys(extension, type, ENUMERABLE_STRINGS),
-      false);
+  if (context->extension_object() == nullptr) return;
+  Handle<JSObject> extension(context->extension_object());
+  Handle<FixedArray> keys =
+      JSReceiver::GetKeys(extension, type, ENUMERABLE_STRINGS)
+          .ToHandleChecked();
 
   for (int i = 0; i < keys->length(); i++) {
     // Names of variables introduced by eval are strings.
     DCHECK(keys->get(i)->IsString());
     Handle<String> key(String::cast(keys->get(i)));
-    Handle<Object> value;
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-        isolate_, value, Object::GetPropertyOrElement(extension, key), false);
-    RETURN_ON_EXCEPTION_VALUE(
-        isolate_, JSObject::SetOwnPropertyIgnoreAttributes(
-            scope_object, key, value, NONE), false);
+    Handle<Object> value =
+        Object::GetPropertyOrElement(extension, key).ToHandleChecked();
+    JSObject::SetOwnPropertyIgnoreAttributes(scope_object, key, value, NONE)
+        .Check();
   }
-  return true;
 }
 
 void ScopeIterator::GetNestedScopeChain(Isolate* isolate, Scope* scope,
                                         int position) {
-  if (!scope->is_eval_scope()) {
+  if (scope->is_hidden()) {
+    // We need to add this chain element in case the scope has a context
+    // associated. We need to keep the scope chain and context chain in sync.
+    nested_scope_chain_.Add(ExtendedScopeInfo(scope->GetScopeInfo(isolate)));
+  } else {
     nested_scope_chain_.Add(ExtendedScopeInfo(scope->GetScopeInfo(isolate),
                                               scope->start_position(),
                                               scope->end_position()));
@@ -851,7 +797,7 @@
     Scope* inner_scope = scope->inner_scopes()->at(i);
     int beg_pos = inner_scope->start_position();
     int end_pos = inner_scope->end_position();
-    DCHECK(beg_pos >= 0 && end_pos >= 0);
+    DCHECK((beg_pos >= 0 && end_pos >= 0) || inner_scope->is_hidden());
     if (beg_pos <= position && position < end_pos) {
       GetNestedScopeChain(isolate, inner_scope, position);
       return;
diff --git a/src/debug/debug-scopes.h b/src/debug/debug-scopes.h
index 4e95fc4..9560227 100644
--- a/src/debug/debug-scopes.h
+++ b/src/debug/debug-scopes.h
@@ -25,6 +25,7 @@
     ScopeTypeCatch,
     ScopeTypeBlock,
     ScopeTypeScript,
+    ScopeTypeEval,
     ScopeTypeModule
   };
 
@@ -85,9 +86,12 @@
   struct ExtendedScopeInfo {
     ExtendedScopeInfo(Handle<ScopeInfo> info, int start, int end)
         : scope_info(info), start_position(start), end_position(end) {}
+    explicit ExtendedScopeInfo(Handle<ScopeInfo> info)
+        : scope_info(info), start_position(-1), end_position(-1) {}
     Handle<ScopeInfo> scope_info;
     int start_position;
     int end_position;
+    bool is_hidden() { return start_position == -1 && end_position == -1; }
   };
 
   Isolate* isolate_;
@@ -117,28 +121,37 @@
   MUST_USE_RESULT MaybeHandle<JSObject> MaterializeModuleScope();
   Handle<JSObject> MaterializeClosure();
   Handle<JSObject> MaterializeCatchScope();
-  Handle<JSObject> MaterializeBlockScope();
+  Handle<JSObject> MaterializeInnerScope();
   Handle<JSObject> WithContextExtension();
 
   bool SetLocalVariableValue(Handle<String> variable_name,
                              Handle<Object> new_value);
-  bool SetBlockVariableValue(Handle<String> variable_name,
-                             Handle<Object> new_value);
+  bool SetInnerScopeVariableValue(Handle<String> variable_name,
+                                  Handle<Object> new_value);
   bool SetClosureVariableValue(Handle<String> variable_name,
                                Handle<Object> new_value);
   bool SetScriptVariableValue(Handle<String> variable_name,
                               Handle<Object> new_value);
   bool SetCatchVariableValue(Handle<String> variable_name,
                              Handle<Object> new_value);
-  bool SetContextLocalValue(Handle<ScopeInfo> scope_info,
-                            Handle<Context> context,
-                            Handle<String> variable_name,
-                            Handle<Object> new_value);
+
+  // Helper functions.
+  bool SetParameterValue(Handle<ScopeInfo> scope_info, JavaScriptFrame* frame,
+                         Handle<String> parameter_name,
+                         Handle<Object> new_value);
+  bool SetStackVariableValue(Handle<ScopeInfo> scope_info,
+                             JavaScriptFrame* frame,
+                             Handle<String> variable_name,
+                             Handle<Object> new_value);
+  bool SetContextVariableValue(Handle<ScopeInfo> scope_info,
+                               Handle<Context> context,
+                               Handle<String> variable_name,
+                               Handle<Object> new_value);
 
   void CopyContextLocalsToScopeObject(Handle<ScopeInfo> scope_info,
                                       Handle<Context> context,
                                       Handle<JSObject> scope_object);
-  bool CopyContextExtensionToScopeObject(Handle<JSObject> extension,
+  void CopyContextExtensionToScopeObject(Handle<Context> context,
                                          Handle<JSObject> scope_object,
                                          KeyCollectionType type);
 
diff --git a/src/debug/debug.cc b/src/debug/debug.cc
index 6e94012..3b5fb5f 100644
--- a/src/debug/debug.cc
+++ b/src/debug/debug.cc
@@ -260,12 +260,6 @@
   return it->GetBreakLocation();
 }
 
-FrameSummary GetFirstFrameSummary(JavaScriptFrame* frame) {
-  List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
-  frame->Summarize(&frames);
-  return frames.first();
-}
-
 int CallOffsetFromCodeOffset(int code_offset, bool is_interpreted) {
   // Code offset points to the instruction after the call. Subtract 1 to
   // exclude that instruction from the search. For bytecode, the code offset
@@ -275,7 +269,7 @@
 
 BreakLocation BreakLocation::FromFrame(Handle<DebugInfo> debug_info,
                                        JavaScriptFrame* frame) {
-  FrameSummary summary = GetFirstFrameSummary(frame);
+  FrameSummary summary = FrameSummary::GetFirst(frame);
   int call_offset =
       CallOffsetFromCodeOffset(summary.code_offset(), frame->is_interpreted());
   return FromCodeOffset(debug_info, call_offset);
@@ -631,7 +625,7 @@
       step_break = location.IsTailCall();
     // Fall through.
     case StepIn: {
-      FrameSummary summary = GetFirstFrameSummary(frame);
+      FrameSummary summary = FrameSummary::GetFirst(frame);
       int offset = summary.code_offset();
       step_break = step_break || location.IsReturn() ||
                    (current_fp != last_fp) ||
@@ -962,6 +956,14 @@
     it.Advance();
   }
 
+  if (last_step_action() == StepNext) {
+    while (!it.done()) {
+      Address current_fp = it.frame()->UnpaddedFP();
+      if (current_fp >= thread_local_.target_fp_) break;
+      it.Advance();
+    }
+  }
+
   // Find the closest Javascript frame we can flood with one-shots.
   while (!it.done() &&
          !it.frame()->function()->shared()->IsSubjectToDebugging()) {
@@ -1011,7 +1013,7 @@
   }
 
   // Get the debug info (create it if it does not exist).
-  FrameSummary summary = GetFirstFrameSummary(frame);
+  FrameSummary summary = FrameSummary::GetFirst(frame);
   Handle<JSFunction> function(summary.function());
   Handle<SharedFunctionInfo> shared(function->shared());
   if (!EnsureDebugInfo(shared, function)) {
@@ -1022,7 +1024,7 @@
   Handle<DebugInfo> debug_info(shared->GetDebugInfo());
   // Refresh frame summary if the code has been recompiled for debugging.
   if (AbstractCode::cast(shared->code()) != *summary.abstract_code()) {
-    summary = GetFirstFrameSummary(frame);
+    summary = FrameSummary::GetFirst(frame);
   }
 
   int call_offset =
@@ -1604,7 +1606,7 @@
   if (!shared->HasDebugInfo()) return false;
 
   DCHECK(!frame->is_optimized());
-  FrameSummary summary = GetFirstFrameSummary(frame);
+  FrameSummary summary = FrameSummary::GetFirst(frame);
 
   Handle<DebugInfo> debug_info(shared->GetDebugInfo());
   BreakLocation location =
@@ -1656,21 +1658,6 @@
 }
 
 
-void Debug::RecordEvalCaller(Handle<Script> script) {
-  script->set_compilation_type(Script::COMPILATION_TYPE_EVAL);
-  // For eval scripts add information on the function from which eval was
-  // called.
-  StackTraceFrameIterator it(script->GetIsolate());
-  if (!it.done()) {
-    script->set_eval_from_shared(it.frame()->function()->shared());
-    Code* code = it.frame()->LookupCode();
-    int offset = static_cast<int>(
-        it.frame()->pc() - code->instruction_start());
-    script->set_eval_from_instructions_offset(offset);
-  }
-}
-
-
 MaybeHandle<Object> Debug::MakeExecutionState() {
   // Create the execution state object.
   Handle<Object> argv[] = { isolate_->factory()->NewNumberFromInt(break_id()) };
@@ -1911,7 +1898,7 @@
                               exec_state,
                               event_data,
                               event_listener_data_ };
-    Handle<JSReceiver> global(isolate_->global_proxy());
+    Handle<JSReceiver> global = isolate_->global_proxy();
     Execution::TryCall(isolate_, Handle<JSFunction>::cast(event_listener_),
                        global, arraysize(argv), argv);
   }
@@ -2260,7 +2247,7 @@
   JavaScriptFrameIterator iterator(isolate_);
   if (iterator.done()) return;
   JavaScriptFrame* frame = iterator.frame();
-  FrameSummary summary = GetFirstFrameSummary(frame);
+  FrameSummary summary = FrameSummary::GetFirst(frame);
   int source_position =
       summary.abstract_code()->SourcePosition(summary.code_offset());
   Handle<Object> script_obj(summary.function()->shared()->script(), isolate_);
@@ -2271,8 +2258,10 @@
     Handle<Script> script = Handle<Script>::cast(script_obj);
     Handle<String> source(String::cast(script->source()));
     Script::InitLineEnds(script);
-    int line = Script::GetLineNumber(script, source_position);
-    int column = Script::GetColumnNumber(script, source_position);
+    int line =
+        Script::GetLineNumber(script, source_position) - script->line_offset();
+    int column = Script::GetColumnNumber(script, source_position) -
+                 (line == 0 ? script->column_offset() : 0);
     Handle<FixedArray> line_ends(FixedArray::cast(script->line_ends()));
     int line_start =
         line == 0 ? 0 : Smi::cast(line_ends->get(line - 1))->value() + 1;
diff --git a/src/debug/debug.h b/src/debug/debug.h
index 501de63..2cdc151 100644
--- a/src/debug/debug.h
+++ b/src/debug/debug.h
@@ -498,9 +498,6 @@
   static int ArchiveSpacePerThread();
   void FreeThreadResources() { }
 
-  // Record function from which eval was called.
-  static void RecordEvalCaller(Handle<Script> script);
-
   bool CheckExecutionState(int id) {
     return is_active() && !debug_context().is_null() && break_id() != 0 &&
            break_id() == id;
diff --git a/src/debug/debug.js b/src/debug/debug.js
index 7f06ca1..38934b0 100644
--- a/src/debug/debug.js
+++ b/src/debug/debug.js
@@ -894,10 +894,6 @@
   return %GetFrameCount(this.break_id);
 };
 
-ExecutionState.prototype.threadCount = function() {
-  return %GetThreadCount(this.break_id);
-};
-
 ExecutionState.prototype.frame = function(opt_index) {
   // If no index supplied return the selected frame.
   if (opt_index == null) opt_index = this.selected_frame;
@@ -2173,28 +2169,6 @@
 };
 
 
-DebugCommandProcessor.prototype.threadsRequest_ = function(request, response) {
-  // Get the number of threads.
-  var total_threads = this.exec_state_.threadCount();
-
-  // Get information for all threads.
-  var threads = [];
-  for (var i = 0; i < total_threads; i++) {
-    var details = %GetThreadDetails(this.exec_state_.break_id, i);
-    var thread_info = { current: details[0],
-                        id: details[1]
-                      };
-    threads.push(thread_info);
-  }
-
-  // Create the response body.
-  response.body = {
-    totalThreads: total_threads,
-    threads: threads
-  };
-};
-
-
 DebugCommandProcessor.prototype.suspendRequest_ = function(request, response) {
   response.running = false;
 };
@@ -2360,7 +2334,6 @@
     "references":           proto.referencesRequest_,
     "source":               proto.sourceRequest_,
     "scripts":              proto.scriptsRequest_,
-    "threads":              proto.threadsRequest_,
     "suspend":              proto.suspendRequest_,
     "version":              proto.versionRequest_,
     "changelive":           proto.changeLiveRequest_,
diff --git a/src/debug/liveedit.cc b/src/debug/liveedit.cc
index 78ed6f1..50d60a1 100644
--- a/src/debug/liveedit.cc
+++ b/src/debug/liveedit.cc
@@ -13,6 +13,7 @@
 #include "src/deoptimizer.h"
 #include "src/frames-inl.h"
 #include "src/global-handles.h"
+#include "src/interpreter/source-position-table.h"
 #include "src/isolate-inl.h"
 #include "src/messages.h"
 #include "src/parsing/parser.h"
@@ -623,6 +624,8 @@
 
 void FunctionInfoWrapper::SetFunctionCode(Handle<Code> function_code,
                                           Handle<HeapObject> code_scope_info) {
+  // CompileForLiveEdit must deliver full-codegen code.
+  DCHECK(function_code->kind() == Code::FUNCTION);
   Handle<JSValue> code_wrapper = WrapInJSValue(function_code);
   this->SetField(kCodeOffset_, code_wrapper);
 
@@ -688,115 +691,6 @@
 }
 
 
-class FunctionInfoListener {
- public:
-  explicit FunctionInfoListener(Isolate* isolate) {
-    current_parent_index_ = -1;
-    len_ = 0;
-    result_ = isolate->factory()->NewJSArray(10);
-  }
-
-  void FunctionStarted(FunctionLiteral* fun) {
-    HandleScope scope(isolate());
-    FunctionInfoWrapper info = FunctionInfoWrapper::Create(isolate());
-    info.SetInitialProperties(fun->name(), fun->start_position(),
-                              fun->end_position(), fun->parameter_count(),
-                              fun->materialized_literal_count(),
-                              current_parent_index_);
-    current_parent_index_ = len_;
-    SetElementSloppy(result_, len_, info.GetJSArray());
-    len_++;
-  }
-
-  void FunctionDone() {
-    HandleScope scope(isolate());
-    FunctionInfoWrapper info = FunctionInfoWrapper::cast(
-        *JSReceiver::GetElement(isolate(), result_, current_parent_index_)
-             .ToHandleChecked());
-    current_parent_index_ = info.GetParentIndex();
-  }
-
-  // Saves only function code, because for a script function we
-  // may never create a SharedFunctionInfo object.
-  void FunctionCode(Handle<Code> function_code) {
-    FunctionInfoWrapper info = FunctionInfoWrapper::cast(
-        *JSReceiver::GetElement(isolate(), result_, current_parent_index_)
-             .ToHandleChecked());
-    info.SetFunctionCode(function_code,
-                         Handle<HeapObject>(isolate()->heap()->null_value()));
-  }
-
-  // Saves full information about a function: its code, its scope info
-  // and a SharedFunctionInfo object.
-  void FunctionInfo(Handle<SharedFunctionInfo> shared, Scope* scope,
-                    Zone* zone) {
-    if (!shared->IsSharedFunctionInfo()) {
-      return;
-    }
-    FunctionInfoWrapper info = FunctionInfoWrapper::cast(
-        *JSReceiver::GetElement(isolate(), result_, current_parent_index_)
-             .ToHandleChecked());
-    info.SetFunctionCode(Handle<Code>(shared->code()),
-                         Handle<HeapObject>(shared->scope_info()));
-    info.SetSharedFunctionInfo(shared);
-
-    Handle<Object> scope_info_list = SerializeFunctionScope(scope, zone);
-    info.SetFunctionScopeInfo(scope_info_list);
-  }
-
-  Handle<JSArray> GetResult() { return result_; }
-
- private:
-  Isolate* isolate() const { return result_->GetIsolate(); }
-
-  Handle<Object> SerializeFunctionScope(Scope* scope, Zone* zone) {
-    Handle<JSArray> scope_info_list = isolate()->factory()->NewJSArray(10);
-    int scope_info_length = 0;
-
-    // Saves some description of scope. It stores name and indexes of
-    // variables in the whole scope chain. Null-named slots delimit
-    // scopes of this chain.
-    Scope* current_scope = scope;
-    while (current_scope != NULL) {
-      HandleScope handle_scope(isolate());
-      ZoneList<Variable*> stack_list(current_scope->StackLocalCount(), zone);
-      ZoneList<Variable*> context_list(
-          current_scope->ContextLocalCount(), zone);
-      ZoneList<Variable*> globals_list(current_scope->ContextGlobalCount(),
-                                       zone);
-      current_scope->CollectStackAndContextLocals(&stack_list, &context_list,
-                                                  &globals_list);
-      context_list.Sort(&Variable::CompareIndex);
-
-      for (int i = 0; i < context_list.length(); i++) {
-        SetElementSloppy(scope_info_list,
-                         scope_info_length,
-                         context_list[i]->name());
-        scope_info_length++;
-        SetElementSloppy(
-            scope_info_list,
-            scope_info_length,
-            Handle<Smi>(Smi::FromInt(context_list[i]->index()), isolate()));
-        scope_info_length++;
-      }
-      SetElementSloppy(scope_info_list,
-                       scope_info_length,
-                       Handle<Object>(isolate()->heap()->null_value(),
-                                      isolate()));
-      scope_info_length++;
-
-      current_scope = current_scope->outer_scope();
-    }
-
-    return scope_info_list;
-  }
-
-  Handle<JSArray> result_;
-  int len_;
-  int current_parent_index_;
-};
-
-
 void LiveEdit::InitializeThreadLocal(Debug* debug) {
   debug->thread_local_.frame_drop_mode_ = LiveEdit::FRAMES_UNTOUCHED;
 }
@@ -832,11 +726,10 @@
                                                  Handle<String> source) {
   Isolate* isolate = script->GetIsolate();
 
-  FunctionInfoListener listener(isolate);
+  MaybeHandle<JSArray> infos;
   Handle<Object> original_source =
       Handle<Object>(script->source(), isolate);
   script->set_source(*source);
-  isolate->set_active_function_info_listener(&listener);
 
   {
     // Creating verbose TryCatch from public API is currently the only way to
@@ -845,7 +738,7 @@
     try_catch.SetVerbose(true);
 
     // A logical 'try' section.
-    Compiler::CompileForLiveEdit(script);
+    infos = Compiler::CompileForLiveEdit(script);
   }
 
   // A logical 'catch' section.
@@ -883,11 +776,10 @@
   }
 
   // A logical 'finally' section.
-  isolate->set_active_function_info_listener(NULL);
   script->set_source(*original_source);
 
   if (rethrow_exception.is_null()) {
-    return listener.GetResult();
+    return infos.ToHandleChecked();
   } else {
     return isolate->Throw<JSArray>(rethrow_exception);
   }
@@ -1116,9 +1008,23 @@
 
   Handle<SharedFunctionInfo> shared_info = shared_info_wrapper.GetInfo();
 
-  if (shared_info->code()->kind() == Code::FUNCTION) {
-    Handle<Code> code = compile_info_wrapper.GetFunctionCode();
-    ReplaceCodeObject(Handle<Code>(shared_info->code()), code);
+  if (shared_info->is_compiled()) {
+    Handle<Code> new_code = compile_info_wrapper.GetFunctionCode();
+    Handle<Code> old_code(shared_info->code());
+    if (shared_info->HasBytecodeArray()) {
+      // The old code is interpreted. If we clear the bytecode array, the
+      // interpreter entry trampoline will self-heal and go to compiled code.
+      shared_info->ClearBytecodeArray();
+      shared_info->ReplaceCode(*new_code);
+    } else {
+      DCHECK(old_code->kind() == Code::FUNCTION);
+      ReplaceCodeObject(old_code, new_code);
+    }
+    if (shared_info->HasDebugInfo()) {
+      // Existing break points will be re-applied. Reset the debug info here.
+      isolate->debug()->RemoveDebugInfoAndClearFromShared(
+          handle(shared_info->GetDebugInfo()));
+    }
     Handle<Object> code_scope_info = compile_info_wrapper.GetCodeScopeInfo();
     if (code_scope_info->IsFixedArray()) {
       shared_info->set_scope_info(ScopeInfo::cast(*code_scope_info));
@@ -1282,12 +1188,11 @@
   static const int kMaximalBufferSize = 512*MB;
 };
 
-
+namespace {
 // Patch positions in code (changes relocation info section) and possibly
 // returns new instance of code.
-static Handle<Code> PatchPositionsInCode(
-    Handle<Code> code,
-    Handle<JSArray> position_change_array) {
+Handle<Code> PatchPositionsInCode(Handle<Code> code,
+                                  Handle<JSArray> position_change_array) {
   Isolate* isolate = code->GetIsolate();
 
   RelocInfoBuffer buffer_writer(code->relocation_size(),
@@ -1328,6 +1233,24 @@
   }
 }
 
+void PatchPositionsInBytecodeArray(Handle<BytecodeArray> bytecode,
+                                   Handle<JSArray> position_change_array) {
+  Isolate* isolate = bytecode->GetIsolate();
+  Zone zone(isolate->allocator());
+  interpreter::SourcePositionTableBuilder builder(isolate, &zone);
+
+  for (interpreter::SourcePositionTableIterator iterator(
+           bytecode->source_position_table());
+       !iterator.done(); iterator.Advance()) {
+    int position = iterator.source_position();
+    int new_position = TranslatePosition(position, position_change_array);
+    builder.AddPosition(iterator.bytecode_offset(), new_position,
+                        iterator.is_statement());
+  }
+
+  bytecode->set_source_position_table(*builder.ToSourcePositionTable());
+}
+}  // namespace
 
 void LiveEdit::PatchFunctionPositions(Handle<JSArray> shared_info_array,
                                       Handle<JSArray> position_change_array) {
@@ -1358,6 +1281,9 @@
       // untouched).
       ReplaceCodeObject(Handle<Code>(info->code()), patched_code);
     }
+  } else if (info->HasBytecodeArray()) {
+    PatchPositionsInBytecodeArray(Handle<BytecodeArray>(info->bytecode_array()),
+                                  position_change_array);
   }
 }
 
@@ -1374,8 +1300,7 @@
   copy->set_type(original->type());
   copy->set_context_data(original->context_data());
   copy->set_eval_from_shared(original->eval_from_shared());
-  copy->set_eval_from_instructions_offset(
-      original->eval_from_instructions_offset());
+  copy->set_eval_from_position(original->eval_from_position());
 
   // Copy all the flags, but clear compilation state.
   copy->set_flags(original->flags());
@@ -1555,6 +1480,13 @@
     top_frame = frames[top_frame_index - 2];
     *mode = LiveEdit::CURRENTLY_SET_MODE;
     frame_has_padding = false;
+  } else if (pre_top_frame_code->kind() == Code::BYTECODE_HANDLER) {
+    // Interpreted bytecode takes up two stack frames, one for the bytecode
+    // handler and one for the interpreter entry trampoline. Therefore we shift
+    // up by one frame.
+    *mode = LiveEdit::FRAME_DROPPED_IN_DIRECT_CALL;
+    pre_top_frame = frames[top_frame_index - 2];
+    top_frame = frames[top_frame_index - 1];
   } else {
     return "Unknown structure of stack above changing function";
   }
@@ -1792,7 +1724,8 @@
   // Adjust break_frame after some frames has been dropped.
   StackFrame::Id new_id = StackFrame::NO_ID;
   for (int i = bottom_js_frame_index + 1; i < frames.length(); i++) {
-    if (frames[i]->type() == StackFrame::JAVA_SCRIPT) {
+    if (frames[i]->type() == StackFrame::JAVA_SCRIPT ||
+        frames[i]->type() == StackFrame::INTERPRETED) {
       new_id = frames[i]->id();
       break;
     }
@@ -2004,40 +1937,107 @@
   return NULL;
 }
 
+Handle<JSArray> LiveEditFunctionTracker::Collect(FunctionLiteral* node,
+                                                 Handle<Script> script,
+                                                 Zone* zone, Isolate* isolate) {
+  LiveEditFunctionTracker visitor(script, zone, isolate);
+  visitor.VisitFunctionLiteral(node);
+  return visitor.result_;
+}
 
-LiveEditFunctionTracker::LiveEditFunctionTracker(Isolate* isolate,
-                                                 FunctionLiteral* fun)
-    : isolate_(isolate) {
-  if (isolate_->active_function_info_listener() != NULL) {
-    isolate_->active_function_info_listener()->FunctionStarted(fun);
+LiveEditFunctionTracker::LiveEditFunctionTracker(Handle<Script> script,
+                                                 Zone* zone, Isolate* isolate)
+    : AstTraversalVisitor(isolate) {
+  current_parent_index_ = -1;
+  isolate_ = isolate;
+  len_ = 0;
+  result_ = isolate->factory()->NewJSArray(10);
+  script_ = script;
+  zone_ = zone;
+}
+
+void LiveEditFunctionTracker::VisitFunctionLiteral(FunctionLiteral* node) {
+  Scope* scope = node->scope();
+
+  // FunctionStarted is called in pre-order.
+  FunctionStarted(node);
+
+  VisitDeclarations(scope->declarations());
+  VisitStatements(node->body());
+
+  // FunctionDone are called in post-order.
+  // TODO(jgruber): If required, replace the (linear cost)
+  // FindSharedFunctionInfo call with a more efficient implementation.
+  Handle<SharedFunctionInfo> info =
+      script_->FindSharedFunctionInfo(node).ToHandleChecked();
+  FunctionDone(info, scope);
+}
+
+void LiveEditFunctionTracker::FunctionStarted(FunctionLiteral* fun) {
+  HandleScope handle_scope(isolate_);
+  FunctionInfoWrapper info = FunctionInfoWrapper::Create(isolate_);
+  info.SetInitialProperties(fun->name(), fun->start_position(),
+                            fun->end_position(), fun->parameter_count(),
+                            fun->materialized_literal_count(),
+                            current_parent_index_);
+  current_parent_index_ = len_;
+  SetElementSloppy(result_, len_, info.GetJSArray());
+  len_++;
+}
+
+// Saves full information about a function: its code, its scope info
+// and a SharedFunctionInfo object.
+void LiveEditFunctionTracker::FunctionDone(Handle<SharedFunctionInfo> shared,
+                                           Scope* scope) {
+  HandleScope handle_scope(isolate_);
+  FunctionInfoWrapper info = FunctionInfoWrapper::cast(
+      *JSReceiver::GetElement(isolate_, result_, current_parent_index_)
+           .ToHandleChecked());
+  info.SetFunctionCode(Handle<Code>(shared->code()),
+                       Handle<HeapObject>(shared->scope_info()));
+  info.SetSharedFunctionInfo(shared);
+
+  Handle<Object> scope_info_list = SerializeFunctionScope(scope);
+  info.SetFunctionScopeInfo(scope_info_list);
+
+  current_parent_index_ = info.GetParentIndex();
+}
+
+Handle<Object> LiveEditFunctionTracker::SerializeFunctionScope(Scope* scope) {
+  Handle<JSArray> scope_info_list = isolate_->factory()->NewJSArray(10);
+  int scope_info_length = 0;
+
+  // Saves some description of scope. It stores name and indexes of
+  // variables in the whole scope chain. Null-named slots delimit
+  // scopes of this chain.
+  Scope* current_scope = scope;
+  while (current_scope != NULL) {
+    HandleScope handle_scope(isolate_);
+    ZoneList<Variable*> stack_list(current_scope->StackLocalCount(), zone_);
+    ZoneList<Variable*> context_list(current_scope->ContextLocalCount(), zone_);
+    ZoneList<Variable*> globals_list(current_scope->ContextGlobalCount(),
+                                     zone_);
+    current_scope->CollectStackAndContextLocals(&stack_list, &context_list,
+                                                &globals_list);
+    context_list.Sort(&Variable::CompareIndex);
+
+    for (int i = 0; i < context_list.length(); i++) {
+      SetElementSloppy(scope_info_list, scope_info_length,
+                       context_list[i]->name());
+      scope_info_length++;
+      SetElementSloppy(
+          scope_info_list, scope_info_length,
+          Handle<Smi>(Smi::FromInt(context_list[i]->index()), isolate_));
+      scope_info_length++;
+    }
+    SetElementSloppy(scope_info_list, scope_info_length,
+                     Handle<Object>(isolate_->heap()->null_value(), isolate_));
+    scope_info_length++;
+
+    current_scope = current_scope->outer_scope();
   }
-}
 
-
-LiveEditFunctionTracker::~LiveEditFunctionTracker() {
-  if (isolate_->active_function_info_listener() != NULL) {
-    isolate_->active_function_info_listener()->FunctionDone();
-  }
-}
-
-
-void LiveEditFunctionTracker::RecordFunctionInfo(
-    Handle<SharedFunctionInfo> info, FunctionLiteral* lit,
-    Zone* zone) {
-  if (isolate_->active_function_info_listener() != NULL) {
-    isolate_->active_function_info_listener()->FunctionInfo(info, lit->scope(),
-                                                            zone);
-  }
-}
-
-
-void LiveEditFunctionTracker::RecordRootFunctionInfo(Handle<Code> code) {
-  isolate_->active_function_info_listener()->FunctionCode(code);
-}
-
-
-bool LiveEditFunctionTracker::IsActive(Isolate* isolate) {
-  return isolate->active_function_info_listener() != NULL;
+  return scope_info_list;
 }
 
 }  // namespace internal
diff --git a/src/debug/liveedit.h b/src/debug/liveedit.h
index 67be70e..af74043 100644
--- a/src/debug/liveedit.h
+++ b/src/debug/liveedit.h
@@ -32,26 +32,39 @@
 namespace internal {
 
 // This class collects some specific information on structure of functions
-// in a particular script. It gets called from compiler all the time, but
-// actually records any data only when liveedit operation is in process;
-// in any other time this class is very cheap.
+// in a particular script.
 //
 // The primary interest of the Tracker is to record function scope structures
-// in order to analyze whether function code maybe safely patched (with new
+// in order to analyze whether function code may be safely patched (with new
 // code successfully reading existing data from function scopes). The Tracker
 // also collects compiled function codes.
-class LiveEditFunctionTracker {
+class LiveEditFunctionTracker : public AstTraversalVisitor {
  public:
-  explicit LiveEditFunctionTracker(Isolate* isolate, FunctionLiteral* fun);
-  ~LiveEditFunctionTracker();
-  void RecordFunctionInfo(Handle<SharedFunctionInfo> info,
-                          FunctionLiteral* lit, Zone* zone);
-  void RecordRootFunctionInfo(Handle<Code> code);
+  // Traverses the entire AST, and records information about all
+  // FunctionLiterals for further use by LiveEdit code patching. The collected
+  // information is returned as a serialized array.
+  static Handle<JSArray> Collect(FunctionLiteral* node, Handle<Script> script,
+                                 Zone* zone, Isolate* isolate);
 
-  static bool IsActive(Isolate* isolate);
+  virtual ~LiveEditFunctionTracker() {}
+  void VisitFunctionLiteral(FunctionLiteral* node) override;
 
  private:
+  LiveEditFunctionTracker(Handle<Script> script, Zone* zone, Isolate* isolate);
+
+  void FunctionStarted(FunctionLiteral* fun);
+  void FunctionDone(Handle<SharedFunctionInfo> shared, Scope* scope);
+  Handle<Object> SerializeFunctionScope(Scope* scope);
+
+  Handle<Script> script_;
+  Zone* zone_;
   Isolate* isolate_;
+
+  Handle<JSArray> result_;
+  int len_;
+  int current_parent_index_;
+
+  DISALLOW_COPY_AND_ASSIGN(LiveEditFunctionTracker);
 };
 
 
diff --git a/src/debug/mirrors.js b/src/debug/mirrors.js
index 881f303..d098c1c 100644
--- a/src/debug/mirrors.js
+++ b/src/debug/mirrors.js
@@ -16,8 +16,8 @@
 var MapEntries;
 var MapIteratorNext;
 var MathMin = global.Math.min;
-var promiseStatusSymbol = utils.ImportNow("promise_status_symbol");
-var promiseValueSymbol = utils.ImportNow("promise_value_symbol");
+var promiseStateSymbol = utils.ImportNow("promise_state_symbol");
+var promiseResultSymbol = utils.ImportNow("promise_result_symbol");
 var SetIteratorNext;
 var SetValues;
 var SymbolToString;
@@ -115,7 +115,7 @@
 
 function ObjectIsPromise(value) {
   return IS_RECEIVER(value) &&
-         !IS_UNDEFINED(%DebugGetProperty(value, promiseStatusSymbol));
+         !IS_UNDEFINED(%DebugGetProperty(value, promiseStateSymbol));
 }
 
 
@@ -256,13 +256,15 @@
 // A copy of the scope types from runtime-debug.cc.
 // NOTE: these constants should be backward-compatible, so
 // add new ones to the end of this list.
-var ScopeType = { Global: 0,
-                  Local: 1,
-                  With: 2,
+var ScopeType = { Global:  0,
+                  Local:   1,
+                  With:    2,
                   Closure: 3,
-                  Catch: 4,
-                  Block: 5,
-                  Script: 6 };
+                  Catch:   4,
+                  Block:   5,
+                  Script:  6,
+                  Eval:    7,
+                };
 
 /**
  * Base class for all mirror objects.
@@ -1272,7 +1274,7 @@
 
 
 function PromiseGetStatus_(value) {
-  var status = %DebugGetProperty(value, promiseStatusSymbol);
+  var status = %DebugGetProperty(value, promiseStateSymbol);
   if (status == 0) return "pending";
   if (status == 1) return "resolved";
   return "rejected";
@@ -1280,7 +1282,7 @@
 
 
 function PromiseGetValue_(value) {
-  return %DebugGetProperty(value, promiseValueSymbol);
+  return %DebugGetProperty(value, promiseResultSymbol);
 }
 
 
@@ -1408,8 +1410,8 @@
 
 function GeneratorGetStatus_(value) {
   var continuation = %GeneratorGetContinuation(value);
-  if (continuation < 0) return "running";
-  if (continuation == 0) return "closed";
+  if (continuation < -1) return "running";
+  if (continuation == -1) return "closed";
   return "suspended";
 }
 
@@ -1495,6 +1497,12 @@
 };
 
 
+PropertyMirror.prototype.toText = function() {
+  if (IS_SYMBOL(this.name_)) return %SymbolDescriptiveString(this.name_);
+  return this.name_;
+};
+
+
 PropertyMirror.prototype.isIndexed = function() {
   for (var i = 0; i < this.name_.length; i++) {
     if (this.name_[i] < '0' || '9' < this.name_[i]) {
@@ -1529,11 +1537,6 @@
 };
 
 
-PropertyMirror.prototype.insertionIndex = function() {
-  return %DebugPropertyIndexFromDetails(this.details_);
-};
-
-
 /**
  * Returns whether this property has a getter defined through __defineGetter__.
  * @return {booolean} True if this property has a getter
@@ -2027,10 +2030,10 @@
         if (display_receiver) {
           result += '.';
         }
-        result += property.name();
+        result += property.toText();
       } else {
         result += '[';
-        result += property.name();
+        result += property.toText();
         result += ']';
       }
       // Also known as - if the name in the function doesn't match the name
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc
index b2c5d42..adf4cf1 100644
--- a/src/deoptimizer.cc
+++ b/src/deoptimizer.cc
@@ -47,7 +47,7 @@
 
 DeoptimizerData::~DeoptimizerData() {
   for (int i = 0; i <= Deoptimizer::kLastBailoutType; ++i) {
-    allocator_->Free(deopt_entry_code_[i]);
+    allocator_->Free<MemoryAllocator::kFull>(deopt_entry_code_[i]);
     deopt_entry_code_[i] = NULL;
   }
 }
@@ -228,7 +228,7 @@
   Object* context = isolate->heap()->native_contexts_list();
   while (!context->IsUndefined()) {
     VisitAllOptimizedFunctionsForContext(Context::cast(context), visitor);
-    context = Context::cast(context)->get(Context::NEXT_CONTEXT_LINK);
+    context = Context::cast(context)->next_context_link();
   }
 }
 
@@ -296,7 +296,9 @@
                          !FLAG_turbo_asm_deoptimization;
       bool safe_to_deopt =
           deopt_index != Safepoint::kNoDeoptimizationIndex || turbofanned;
-      CHECK(topmost_optimized_code == NULL || safe_to_deopt || turbofanned);
+      bool builtin = code->kind() == Code::BUILTIN;
+      CHECK(topmost_optimized_code == NULL || safe_to_deopt || turbofanned ||
+            builtin);
       if (topmost_optimized_code == NULL) {
         topmost_optimized_code = code;
         safe_to_deopt_topmost_optimized_code = safe_to_deopt;
@@ -372,6 +374,8 @@
 
 
 void Deoptimizer::DeoptimizeAll(Isolate* isolate) {
+  RuntimeCallTimerScope runtimeTimer(isolate,
+                                     &RuntimeCallStats::DeoptimizeCode);
   TimerEventScope<TimerEventDeoptimizeCode> timer(isolate);
   TRACE_EVENT0("v8", "V8.DeoptimizeCode");
   if (FLAG_trace_deopt) {
@@ -385,12 +389,14 @@
     Context* native_context = Context::cast(context);
     MarkAllCodeForContext(native_context);
     DeoptimizeMarkedCodeForContext(native_context);
-    context = native_context->get(Context::NEXT_CONTEXT_LINK);
+    context = native_context->next_context_link();
   }
 }
 
 
 void Deoptimizer::DeoptimizeMarkedCode(Isolate* isolate) {
+  RuntimeCallTimerScope runtimeTimer(isolate,
+                                     &RuntimeCallStats::DeoptimizeCode);
   TimerEventScope<TimerEventDeoptimizeCode> timer(isolate);
   TRACE_EVENT0("v8", "V8.DeoptimizeCode");
   if (FLAG_trace_deopt) {
@@ -403,7 +409,7 @@
   while (!context->IsUndefined()) {
     Context* native_context = Context::cast(context);
     DeoptimizeMarkedCodeForContext(native_context);
-    context = native_context->get(Context::NEXT_CONTEXT_LINK);
+    context = native_context->next_context_link();
   }
 }
 
@@ -420,7 +426,10 @@
 
 
 void Deoptimizer::DeoptimizeFunction(JSFunction* function) {
-  TimerEventScope<TimerEventDeoptimizeCode> timer(function->GetIsolate());
+  Isolate* isolate = function->GetIsolate();
+  RuntimeCallTimerScope runtimeTimer(isolate,
+                                     &RuntimeCallStats::DeoptimizeCode);
+  TimerEventScope<TimerEventDeoptimizeCode> timer(isolate);
   TRACE_EVENT0("v8", "V8.DeoptimizeCode");
   Code* code = function->code();
   if (code->kind() == Code::OPTIMIZED_FUNCTION) {
@@ -660,7 +669,7 @@
       length++;
       element = code->next_code_link();
     }
-    context = Context::cast(context)->get(Context::NEXT_CONTEXT_LINK);
+    context = Context::cast(context)->next_context_link();
   }
   return length;
 }
@@ -839,9 +848,8 @@
            " @%d => node=%d, pc=0x%08" V8PRIxPTR ", caller sp=0x%08" V8PRIxPTR
            ", state=%s, took %0.3f ms]\n",
            bailout_id_, node_id.ToInt(), output_[index]->GetPc(),
-           caller_frame_top_, FullCodeGenerator::State2String(
-                                  static_cast<FullCodeGenerator::State>(
-                                      output_[index]->GetState()->value())),
+           caller_frame_top_, BailoutStateToString(static_cast<BailoutState>(
+                                  output_[index]->GetState()->value())),
            ms);
   }
 }
@@ -1053,10 +1061,11 @@
 
   // If we are going to the catch handler, then the exception lives in
   // the accumulator.
-  FullCodeGenerator::State state =
-      goto_catch_handler ? FullCodeGenerator::TOS_REG
-                         : FullCodeGenerator::StateField::decode(pc_and_state);
-  output_frame->SetState(Smi::FromInt(state));
+  BailoutState state =
+      goto_catch_handler
+          ? BailoutState::TOS_REGISTER
+          : FullCodeGenerator::BailoutStateField::decode(pc_and_state);
+  output_frame->SetState(Smi::FromInt(static_cast<int>(state)));
 
   // Set the continuation for the topmost frame.
   if (is_topmost) {
@@ -1272,7 +1281,9 @@
   Code* dispatch_builtin =
       builtins->builtin(Builtins::kInterpreterEnterBytecodeDispatch);
   output_frame->SetPc(reinterpret_cast<intptr_t>(dispatch_builtin->entry()));
-  output_frame->SetState(0);
+  // Restore accumulator (TOS) register.
+  output_frame->SetState(
+      Smi::FromInt(static_cast<int>(BailoutState::TOS_REGISTER)));
 
   // Update constant pool.
   if (FLAG_enable_embedded_constant_pool) {
@@ -1288,14 +1299,11 @@
 
   // Set the continuation for the topmost frame.
   if (is_topmost) {
-    Code* continuation =
-        builtins->builtin(Builtins::kInterpreterNotifyDeoptimized);
+    Code* continuation = builtins->builtin(Builtins::kNotifyDeoptimized);
     if (bailout_type_ == LAZY) {
-      continuation =
-          builtins->builtin(Builtins::kInterpreterNotifyLazyDeoptimized);
+      continuation = builtins->builtin(Builtins::kNotifyLazyDeoptimized);
     } else if (bailout_type_ == SOFT) {
-      continuation =
-          builtins->builtin(Builtins::kInterpreterNotifySoftDeoptimized);
+      continuation = builtins->builtin(Builtins::kNotifySoftDeoptimized);
     } else {
       CHECK_EQ(bailout_type_, EAGER);
     }
@@ -1509,7 +1517,7 @@
   // value of result register is preserved during continuation execution.
   // We do this here by "pushing" the result of the constructor function to the
   // top of the reconstructed stack and then using the
-  // FullCodeGenerator::TOS_REG machinery.
+  // BailoutState::TOS_REGISTER machinery.
   if (is_topmost) {
     height_in_bytes += kPointerSize;
   }
@@ -1630,7 +1638,8 @@
     DebugPrintOutputSlot(value, frame_index, output_offset,
                          "constructor result\n");
 
-    output_frame->SetState(Smi::FromInt(FullCodeGenerator::TOS_REG));
+    output_frame->SetState(
+        Smi::FromInt(static_cast<int>(BailoutState::TOS_REGISTER)));
   }
 
   CHECK_EQ(0u, output_offset);
@@ -1684,7 +1693,7 @@
   // value of result register is preserved during continuation execution.
   // We do this here by "pushing" the result of the accessor function to the
   // top of the reconstructed stack and then using the
-  // FullCodeGenerator::TOS_REG machinery.
+  // BailoutState::TOS_REGISTER machinery.
   // We don't need to restore the result in case of a setter call because we
   // have to return the stored value but not the result of the setter function.
   bool should_preserve_result = is_topmost && !is_setter_stub_frame;
@@ -1803,9 +1812,11 @@
     DebugPrintOutputSlot(value, frame_index, output_offset,
                          "accessor result\n");
 
-    output_frame->SetState(Smi::FromInt(FullCodeGenerator::TOS_REG));
+    output_frame->SetState(
+        Smi::FromInt(static_cast<int>(BailoutState::TOS_REGISTER)));
   } else {
-    output_frame->SetState(Smi::FromInt(FullCodeGenerator::NO_REGISTERS));
+    output_frame->SetState(
+        Smi::FromInt(static_cast<int>(BailoutState::NO_REGISTERS)));
   }
 
   CHECK_EQ(0u, output_offset);
@@ -2060,7 +2071,8 @@
     output_frame->SetConstantPool(constant_pool_value);
     output_frame->SetRegister(constant_pool_reg.code(), constant_pool_value);
   }
-  output_frame->SetState(Smi::FromInt(FullCodeGenerator::NO_REGISTERS));
+  output_frame->SetState(
+      Smi::FromInt(static_cast<int>(BailoutState::NO_REGISTERS)));
   Code* notify_failure =
       isolate_->builtins()->builtin(Builtins::kNotifyStubFailureSaveDoubles);
   output_frame->SetContinuation(
@@ -2639,23 +2651,6 @@
   return it->GetValue();
 }
 
-int ComputeSourcePosition(Handle<SharedFunctionInfo> shared,
-                          BailoutId node_id) {
-  if (shared->HasBytecodeArray()) {
-    BytecodeArray* bytecodes = shared->bytecode_array();
-    // BailoutId points to the next bytecode in the bytecode aray. Subtract
-    // 1 to get the end of current bytecode.
-    return bytecodes->SourcePosition(node_id.ToInt() - 1);
-  } else {
-    Code* non_optimized_code = shared->code();
-    FixedArray* raw_data = non_optimized_code->deoptimization_data();
-    DeoptimizationOutputData* data = DeoptimizationOutputData::cast(raw_data);
-    unsigned pc_and_state = Deoptimizer::GetOutputInfo(data, node_id, *shared);
-    unsigned pc_offset = FullCodeGenerator::PcField::decode(pc_and_state);
-    return non_optimized_code->SourcePosition(pc_offset);
-  }
-}
-
 }  // namespace
 
 DeoptimizedFrameInfo::DeoptimizedFrameInfo(TranslatedState* state,
@@ -2685,8 +2680,8 @@
       parameter_frame != state->begin() &&
       (parameter_frame - 1)->kind() == TranslatedFrame::kConstructStub;
 
-  source_position_ =
-      ComputeSourcePosition(frame_it->shared_info(), frame_it->node_id());
+  source_position_ = Deoptimizer::ComputeSourcePosition(
+      *frame_it->shared_info(), frame_it->node_id());
 
   TranslatedFrame::iterator value_it = frame_it->begin();
   // Get the function. Note that this might materialize the function.
@@ -2750,24 +2745,48 @@
 Deoptimizer::DeoptInfo Deoptimizer::GetDeoptInfo(Code* code, Address pc) {
   SourcePosition last_position = SourcePosition::Unknown();
   Deoptimizer::DeoptReason last_reason = Deoptimizer::kNoReason;
+  int last_deopt_id = Deoptimizer::DeoptInfo::kNoDeoptId;
   int mask = RelocInfo::ModeMask(RelocInfo::DEOPT_REASON) |
+             RelocInfo::ModeMask(RelocInfo::DEOPT_ID) |
              RelocInfo::ModeMask(RelocInfo::POSITION);
   for (RelocIterator it(code, mask); !it.done(); it.next()) {
     RelocInfo* info = it.rinfo();
-    if (info->pc() >= pc) return DeoptInfo(last_position, NULL, last_reason);
+    if (info->pc() >= pc) {
+      return DeoptInfo(last_position, last_reason, last_deopt_id);
+    }
     if (info->rmode() == RelocInfo::POSITION) {
       int raw_position = static_cast<int>(info->data());
       last_position = raw_position ? SourcePosition::FromRaw(raw_position)
                                    : SourcePosition::Unknown();
+    } else if (info->rmode() == RelocInfo::DEOPT_ID) {
+      last_deopt_id = static_cast<int>(info->data());
     } else if (info->rmode() == RelocInfo::DEOPT_REASON) {
       last_reason = static_cast<Deoptimizer::DeoptReason>(info->data());
     }
   }
-  return DeoptInfo(SourcePosition::Unknown(), NULL, Deoptimizer::kNoReason);
+  return DeoptInfo(SourcePosition::Unknown(), Deoptimizer::kNoReason, -1);
 }
 
 
 // static
+int Deoptimizer::ComputeSourcePosition(SharedFunctionInfo* shared,
+                                       BailoutId node_id) {
+  if (shared->HasBytecodeArray()) {
+    BytecodeArray* bytecodes = shared->bytecode_array();
+    // BailoutId points to the next bytecode in the bytecode aray. Subtract
+    // 1 to get the end of current bytecode.
+    return bytecodes->SourcePosition(node_id.ToInt() - 1);
+  } else {
+    Code* non_optimized_code = shared->code();
+    FixedArray* raw_data = non_optimized_code->deoptimization_data();
+    DeoptimizationOutputData* data = DeoptimizationOutputData::cast(raw_data);
+    unsigned pc_and_state = Deoptimizer::GetOutputInfo(data, node_id, shared);
+    unsigned pc_offset = FullCodeGenerator::PcField::decode(pc_and_state);
+    return non_optimized_code->SourcePosition(pc_offset);
+  }
+}
+
+// static
 TranslatedValue TranslatedValue::NewArgumentsObject(TranslatedState* container,
                                                     int length,
                                                     int object_index) {
@@ -3486,6 +3505,7 @@
   int deopt_index = Safepoint::kNoDeoptimizationIndex;
   DeoptimizationInputData* data =
       static_cast<OptimizedFrame*>(frame)->GetDeoptimizationData(&deopt_index);
+  DCHECK(data != nullptr && deopt_index != Safepoint::kNoDeoptimizationIndex);
   TranslationIterator it(data->TranslationByteArray(),
                          data->TranslationIndex(deopt_index)->value());
   Init(frame->fp(), &it, data->LiteralArray(), nullptr /* registers */,
diff --git a/src/deoptimizer.h b/src/deoptimizer.h
index 21ca84e..1d413e6 100644
--- a/src/deoptimizer.h
+++ b/src/deoptimizer.h
@@ -402,6 +402,22 @@
  public:
   enum BailoutType { EAGER, LAZY, SOFT, kLastBailoutType = SOFT };
 
+  enum class BailoutState {
+    NO_REGISTERS,
+    TOS_REGISTER,
+  };
+
+  static const char* BailoutStateToString(BailoutState state) {
+    switch (state) {
+      case BailoutState::NO_REGISTERS:
+        return "NO_REGISTERS";
+      case BailoutState::TOS_REGISTER:
+        return "TOS_REGISTER";
+    }
+    UNREACHABLE();
+    return nullptr;
+  }
+
 #define DEOPT_MESSAGES_CONSTANTS(C, T) C,
   enum DeoptReason {
     DEOPT_MESSAGES_LIST(DEOPT_MESSAGES_CONSTANTS) kLastDeoptReason
@@ -410,17 +426,21 @@
   static const char* GetDeoptReason(DeoptReason deopt_reason);
 
   struct DeoptInfo {
-    DeoptInfo(SourcePosition position, const char* m, DeoptReason d)
-        : position(position), mnemonic(m), deopt_reason(d), inlining_id(0) {}
+    DeoptInfo(SourcePosition position, DeoptReason deopt_reason, int deopt_id)
+        : position(position), deopt_reason(deopt_reason), deopt_id(deopt_id) {}
 
     SourcePosition position;
-    const char* mnemonic;
     DeoptReason deopt_reason;
-    int inlining_id;
+    int deopt_id;
+
+    static const int kNoDeoptId = -1;
   };
 
   static DeoptInfo GetDeoptInfo(Code* code, byte* from);
 
+  static int ComputeSourcePosition(SharedFunctionInfo* shared,
+                                   BailoutId node_id);
+
   struct JumpTableEntry : public ZoneObject {
     inline JumpTableEntry(Address entry, const DeoptInfo& deopt_info,
                           Deoptimizer::BailoutType type, bool frame)
diff --git a/src/disassembler.cc b/src/disassembler.cc
index ed9ca9a..c29022a 100644
--- a/src/disassembler.cc
+++ b/src/disassembler.cc
@@ -109,10 +109,9 @@
           it->rinfo()->rmode() == RelocInfo::INTERNAL_REFERENCE) {
         // raw pointer embedded in code stream, e.g., jump table
         byte* ptr = *reinterpret_cast<byte**>(pc);
-        SNPrintF(decode_buffer,
-                 "%08" V8PRIxPTR "      jump table entry %4" V8PRIdPTR,
-                 reinterpret_cast<intptr_t>(ptr),
-                 ptr - begin);
+        SNPrintF(
+            decode_buffer, "%08" V8PRIxPTR "      jump table entry %4" PRIuS,
+            reinterpret_cast<intptr_t>(ptr), static_cast<size_t>(ptr - begin));
         pc += sizeof(ptr);
       } else {
         decode_buffer[0] = '\0';
@@ -147,7 +146,7 @@
     }
 
     // Instruction address and instruction offset.
-    out.AddFormatted("%p  %4d  ", prev_pc, prev_pc - begin);
+    out.AddFormatted("%p  %4" V8PRIdPTRDIFF "  ", prev_pc, prev_pc - begin);
 
     // Instruction.
     out.AddFormatted("%s", decode_buffer.start());
@@ -171,15 +170,20 @@
       RelocInfo::Mode rmode = relocinfo.rmode();
       if (RelocInfo::IsPosition(rmode)) {
         if (RelocInfo::IsStatementPosition(rmode)) {
-          out.AddFormatted("    ;; debug: statement %d", relocinfo.data());
+          out.AddFormatted("    ;; debug: statement %" V8PRIdPTR,
+                           relocinfo.data());
         } else {
-          out.AddFormatted("    ;; debug: position %d", relocinfo.data());
+          out.AddFormatted("    ;; debug: position %" V8PRIdPTR,
+                           relocinfo.data());
         }
       } else if (rmode == RelocInfo::DEOPT_REASON) {
         Deoptimizer::DeoptReason reason =
             static_cast<Deoptimizer::DeoptReason>(relocinfo.data());
         out.AddFormatted("    ;; debug: deopt reason '%s'",
                          Deoptimizer::GetDeoptReason(reason));
+      } else if (rmode == RelocInfo::DEOPT_ID) {
+        out.AddFormatted("    ;; debug: deopt index %d",
+                         static_cast<int>(relocinfo.data()));
       } else if (rmode == RelocInfo::EMBEDDED_OBJECT) {
         HeapStringAllocator allocator;
         StringStream accumulator(&allocator);
@@ -203,10 +207,6 @@
           InlineCacheState ic_state = code->ic_state();
           out.AddFormatted(" %s, %s", Code::Kind2String(kind),
               Code::ICState2String(ic_state));
-          if (ic_state == MONOMORPHIC) {
-            Code::StubType type = code->type();
-            out.AddFormatted(", %s", Code::StubType2String(type));
-          }
         } else if (kind == Code::STUB || kind == Code::HANDLER) {
           // Get the STUB key and extract major and minor key.
           uint32_t key = code->stub_key();
diff --git a/src/elements.cc b/src/elements.cc
index 288c60e..6c257ac 100644
--- a/src/elements.cc
+++ b/src/elements.cc
@@ -140,14 +140,11 @@
   if (copy_size == 0) return;
   FixedArray* from = FixedArray::cast(from_base);
   FixedArray* to = FixedArray::cast(to_base);
-  DCHECK(IsFastSmiOrObjectElementsKind(from_kind) ||
-         from_kind == FAST_STRING_WRAPPER_ELEMENTS);
+  DCHECK(IsFastSmiOrObjectElementsKind(from_kind));
   DCHECK(IsFastSmiOrObjectElementsKind(to_kind));
 
   WriteBarrierMode write_barrier_mode =
-      ((IsFastObjectElementsKind(from_kind) &&
-        IsFastObjectElementsKind(to_kind)) ||
-       from_kind == FAST_STRING_WRAPPER_ELEMENTS)
+      (IsFastObjectElementsKind(from_kind) && IsFastObjectElementsKind(to_kind))
           ? UPDATE_WRITE_BARRIER
           : SKIP_WRITE_BARRIER;
   for (int i = 0; i < copy_size; i++) {
@@ -466,8 +463,7 @@
 // http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern).  We use
 // CRTP to guarantee aggressive compile time optimizations (i.e.  inlining and
 // specialization of SomeElementsAccessor methods).
-template <typename ElementsAccessorSubclass,
-          typename ElementsTraitsParam>
+template <typename Subclass, typename ElementsTraitsParam>
 class ElementsAccessorBase : public ElementsAccessor {
  public:
   explicit ElementsAccessorBase(const char* name)
@@ -495,12 +491,12 @@
     } else {
       length = fixed_array_base->length();
     }
-    ElementsAccessorSubclass::ValidateContents(holder, length);
+    Subclass::ValidateContents(holder, length);
   }
 
   void Validate(Handle<JSObject> holder) final {
     DisallowHeapAllocation no_gc;
-    ElementsAccessorSubclass::ValidateImpl(holder);
+    Subclass::ValidateImpl(holder);
   }
 
   static bool IsPackedImpl(Handle<JSObject> holder,
@@ -508,8 +504,7 @@
                            uint32_t end) {
     if (IsFastPackedElementsKind(kind())) return true;
     for (uint32_t i = start; i < end; i++) {
-      if (!ElementsAccessorSubclass::HasElementImpl(holder, i, backing_store,
-                                                    ALL_PROPERTIES)) {
+      if (!Subclass::HasElementImpl(holder, i, backing_store, ALL_PROPERTIES)) {
         return false;
       }
     }
@@ -520,8 +515,7 @@
     if (!IsHoleyElementsKind(kind())) return;
     int length = Smi::cast(array->length())->value();
     Handle<FixedArrayBase> backing_store(array->elements());
-    if (!ElementsAccessorSubclass::IsPackedImpl(array, backing_store, 0,
-                                                length)) {
+    if (!Subclass::IsPackedImpl(array, backing_store, 0, length)) {
       return;
     }
     ElementsKind packed_kind = GetPackedElementsKind(kind());
@@ -537,20 +531,18 @@
   bool HasElement(Handle<JSObject> holder, uint32_t index,
                   Handle<FixedArrayBase> backing_store,
                   PropertyFilter filter) final {
-    return ElementsAccessorSubclass::HasElementImpl(holder, index,
-                                                    backing_store, filter);
+    return Subclass::HasElementImpl(holder, index, backing_store, filter);
   }
 
   static bool HasElementImpl(Handle<JSObject> holder, uint32_t index,
                              Handle<FixedArrayBase> backing_store,
                              PropertyFilter filter) {
-    return ElementsAccessorSubclass::GetEntryForIndexImpl(
-               *holder, *backing_store, index, filter) != kMaxUInt32;
+    return Subclass::GetEntryForIndexImpl(*holder, *backing_store, index,
+                                          filter) != kMaxUInt32;
   }
 
   bool HasAccessors(JSObject* holder) final {
-    return ElementsAccessorSubclass::HasAccessorsImpl(holder,
-                                                      holder->elements());
+    return Subclass::HasAccessorsImpl(holder, holder->elements());
   }
 
   static bool HasAccessorsImpl(JSObject* holder,
@@ -559,11 +551,11 @@
   }
 
   Handle<Object> Get(Handle<JSObject> holder, uint32_t entry) final {
-    return ElementsAccessorSubclass::GetImpl(holder, entry);
+    return Subclass::GetImpl(holder, entry);
   }
 
   static Handle<Object> GetImpl(Handle<JSObject> holder, uint32_t entry) {
-    return ElementsAccessorSubclass::GetImpl(holder->elements(), entry);
+    return Subclass::GetImpl(holder->elements(), entry);
   }
 
   static Handle<Object> GetImpl(FixedArrayBase* backing_store, uint32_t entry) {
@@ -573,14 +565,13 @@
   }
 
   void Set(Handle<JSObject> holder, uint32_t entry, Object* value) final {
-    ElementsAccessorSubclass::SetImpl(holder, entry, value);
+    Subclass::SetImpl(holder, entry, value);
   }
 
   void Reconfigure(Handle<JSObject> object, Handle<FixedArrayBase> store,
                    uint32_t entry, Handle<Object> value,
                    PropertyAttributes attributes) final {
-    ElementsAccessorSubclass::ReconfigureImpl(object, store, entry, value,
-                                              attributes);
+    Subclass::ReconfigureImpl(object, store, entry, value, attributes);
   }
 
   static void ReconfigureImpl(Handle<JSObject> object,
@@ -592,8 +583,7 @@
 
   void Add(Handle<JSObject> object, uint32_t index, Handle<Object> value,
            PropertyAttributes attributes, uint32_t new_capacity) final {
-    ElementsAccessorSubclass::AddImpl(object, index, value, attributes,
-                                      new_capacity);
+    Subclass::AddImpl(object, index, value, attributes, new_capacity);
   }
 
   static void AddImpl(Handle<JSObject> object, uint32_t index,
@@ -604,7 +594,7 @@
 
   uint32_t Push(Handle<JSArray> receiver, Arguments* args,
                 uint32_t push_size) final {
-    return ElementsAccessorSubclass::PushImpl(receiver, args, push_size);
+    return Subclass::PushImpl(receiver, args, push_size);
   }
 
   static uint32_t PushImpl(Handle<JSArray> receiver, Arguments* args,
@@ -615,7 +605,7 @@
 
   uint32_t Unshift(Handle<JSArray> receiver, Arguments* args,
                    uint32_t unshift_size) final {
-    return ElementsAccessorSubclass::UnshiftImpl(receiver, args, unshift_size);
+    return Subclass::UnshiftImpl(receiver, args, unshift_size);
   }
 
   static uint32_t UnshiftImpl(Handle<JSArray> receiver, Arguments* args,
@@ -626,7 +616,7 @@
 
   Handle<JSArray> Slice(Handle<JSObject> receiver, uint32_t start,
                         uint32_t end) final {
-    return ElementsAccessorSubclass::SliceImpl(receiver, start, end);
+    return Subclass::SliceImpl(receiver, start, end);
   }
 
   static Handle<JSArray> SliceImpl(Handle<JSObject> receiver,
@@ -638,8 +628,7 @@
   Handle<JSArray> Splice(Handle<JSArray> receiver, uint32_t start,
                          uint32_t delete_count, Arguments* args,
                          uint32_t add_count) final {
-    return ElementsAccessorSubclass::SpliceImpl(receiver, start, delete_count,
-                                                args, add_count);
+    return Subclass::SpliceImpl(receiver, start, delete_count, args, add_count);
   }
 
   static Handle<JSArray> SpliceImpl(Handle<JSArray> receiver,
@@ -650,7 +639,7 @@
   }
 
   Handle<Object> Pop(Handle<JSArray> receiver) final {
-    return ElementsAccessorSubclass::PopImpl(receiver);
+    return Subclass::PopImpl(receiver);
   }
 
   static Handle<Object> PopImpl(Handle<JSArray> receiver) {
@@ -659,7 +648,7 @@
   }
 
   Handle<Object> Shift(Handle<JSArray> receiver) final {
-    return ElementsAccessorSubclass::ShiftImpl(receiver);
+    return Subclass::ShiftImpl(receiver);
   }
 
   static Handle<Object> ShiftImpl(Handle<JSArray> receiver) {
@@ -668,8 +657,8 @@
   }
 
   void SetLength(Handle<JSArray> array, uint32_t length) final {
-    ElementsAccessorSubclass::SetLengthImpl(array->GetIsolate(), array, length,
-                                            handle(array->elements()));
+    Subclass::SetLengthImpl(array->GetIsolate(), array, length,
+                            handle(array->elements()));
   }
 
   static void SetLengthImpl(Isolate* isolate, Handle<JSArray> array,
@@ -713,7 +702,7 @@
     } else {
       // Check whether the backing store should be expanded.
       capacity = Max(length, JSObject::NewElementsCapacity(capacity));
-      ElementsAccessorSubclass::GrowCapacityAndConvertImpl(array, capacity);
+      Subclass::GrowCapacityAndConvertImpl(array, capacity);
     }
 
     array->set_length(Smi::FromInt(length));
@@ -727,7 +716,7 @@
       return static_cast<uint32_t>(
           Smi::cast(JSArray::cast(receiver)->length())->value());
     }
-    return ElementsAccessorSubclass::GetCapacityImpl(receiver, elements);
+    return Subclass::GetCapacityImpl(receiver, elements);
   }
 
   static Handle<FixedArrayBase> ConvertElementsWithCapacity(
@@ -762,9 +751,8 @@
       packed_size = Smi::cast(JSArray::cast(*object)->length())->value();
     }
 
-    ElementsAccessorSubclass::CopyElementsImpl(
-        *old_elements, src_index, *new_elements, from_kind, dst_index,
-        packed_size, copy_size);
+    Subclass::CopyElementsImpl(*old_elements, src_index, *new_elements,
+                               from_kind, dst_index, packed_size, copy_size);
 
     return new_elements;
   }
@@ -784,12 +772,17 @@
     DCHECK(IsFastDoubleElementsKind(from_kind) !=
                IsFastDoubleElementsKind(kind()) ||
            IsDictionaryElementsKind(from_kind) ||
-           from_kind == SLOW_STRING_WRAPPER_ELEMENTS ||
            static_cast<uint32_t>(old_elements->length()) < capacity);
+    Subclass::BasicGrowCapacityAndConvertImpl(object, old_elements, from_kind,
+                                              kind(), capacity);
+  }
+
+  static void BasicGrowCapacityAndConvertImpl(
+      Handle<JSObject> object, Handle<FixedArrayBase> old_elements,
+      ElementsKind from_kind, ElementsKind to_kind, uint32_t capacity) {
     Handle<FixedArrayBase> elements =
         ConvertElementsWithCapacity(object, old_elements, from_kind, capacity);
 
-    ElementsKind to_kind = kind();
     if (IsHoleyElementsKind(from_kind)) to_kind = GetHoleyElementsKind(to_kind);
     Handle<Map> new_map = JSObject::GetElementsTransitionMap(object, to_kind);
     JSObject::SetMapAndElements(object, new_map, elements);
@@ -805,11 +798,11 @@
 
   void GrowCapacityAndConvert(Handle<JSObject> object,
                               uint32_t capacity) final {
-    ElementsAccessorSubclass::GrowCapacityAndConvertImpl(object, capacity);
+    Subclass::GrowCapacityAndConvertImpl(object, capacity);
   }
 
   void Delete(Handle<JSObject> obj, uint32_t entry) final {
-    ElementsAccessorSubclass::DeleteImpl(obj, entry);
+    Subclass::DeleteImpl(obj, entry);
   }
 
   static void CopyElementsImpl(FixedArrayBase* from, uint32_t from_start,
@@ -833,7 +826,7 @@
       }
     }
     FixedArrayBase* from = from_holder->elements();
-    // NOTE: the ElementsAccessorSubclass::CopyElementsImpl() methods
+    // NOTE: the Subclass::CopyElementsImpl() methods
     // violate the handlified function signature convention:
     // raw pointer parameters in the function that allocates. This is done
     // intentionally to avoid ArrayConcat() builtin performance degradation.
@@ -842,13 +835,12 @@
     // copying from object with fast double elements to object with object
     // elements. In all the other cases there are no allocations performed and
     // handle creation causes noticeable performance degradation of the builtin.
-    ElementsAccessorSubclass::CopyElementsImpl(
-        from, from_start, *to, from_kind, to_start, packed_size, copy_size);
+    Subclass::CopyElementsImpl(from, from_start, *to, from_kind, to_start,
+                               packed_size, copy_size);
   }
 
   Handle<SeededNumberDictionary> Normalize(Handle<JSObject> object) final {
-    return ElementsAccessorSubclass::NormalizeImpl(object,
-                                                   handle(object->elements()));
+    return Subclass::NormalizeImpl(object, handle(object->elements()));
   }
 
   static Handle<SeededNumberDictionary> NormalizeImpl(
@@ -861,7 +853,7 @@
                                      Handle<FixedArray> values_or_entries,
                                      bool get_entries, int* nof_items,
                                      PropertyFilter filter) {
-    return ElementsAccessorSubclass::CollectValuesOrEntriesImpl(
+    return Subclass::CollectValuesOrEntriesImpl(
         isolate, object, values_or_entries, get_entries, nof_items, filter);
   }
 
@@ -872,9 +864,8 @@
     int count = 0;
     KeyAccumulator accumulator(isolate, OWN_ONLY, ALL_PROPERTIES);
     accumulator.NextPrototype();
-    ElementsAccessorSubclass::CollectElementIndicesImpl(
-        object, handle(object->elements(), isolate), &accumulator, kMaxUInt32,
-        ALL_PROPERTIES, 0);
+    Subclass::CollectElementIndicesImpl(
+        object, handle(object->elements(), isolate), &accumulator);
     Handle<FixedArray> keys = accumulator.GetKeys();
 
     for (int i = 0; i < keys->length(); ++i) {
@@ -883,15 +874,14 @@
       uint32_t index;
       if (!key->ToUint32(&index)) continue;
 
-      uint32_t entry = ElementsAccessorSubclass::GetEntryForIndexImpl(
+      uint32_t entry = Subclass::GetEntryForIndexImpl(
           *object, object->elements(), index, filter);
       if (entry == kMaxUInt32) continue;
 
-      PropertyDetails details =
-          ElementsAccessorSubclass::GetDetailsImpl(*object, entry);
+      PropertyDetails details = Subclass::GetDetailsImpl(*object, entry);
 
       if (details.kind() == kData) {
-        value = ElementsAccessorSubclass::GetImpl(object, entry);
+        value = Subclass::GetImpl(object, entry);
       } else {
         LookupIterator it(isolate, object, index, LookupIterator::OWN);
         ASSIGN_RETURN_ON_EXCEPTION_VALUE(
@@ -909,25 +899,20 @@
 
   void CollectElementIndices(Handle<JSObject> object,
                              Handle<FixedArrayBase> backing_store,
-                             KeyAccumulator* keys, uint32_t range,
-                             PropertyFilter filter, uint32_t offset) final {
-    if (filter & ONLY_ALL_CAN_READ) return;
-    ElementsAccessorSubclass::CollectElementIndicesImpl(
-        object, backing_store, keys, range, filter, offset);
+                             KeyAccumulator* keys) final {
+    if (keys->filter() & ONLY_ALL_CAN_READ) return;
+    Subclass::CollectElementIndicesImpl(object, backing_store, keys);
   }
 
   static void CollectElementIndicesImpl(Handle<JSObject> object,
                                         Handle<FixedArrayBase> backing_store,
-                                        KeyAccumulator* keys, uint32_t range,
-                                        PropertyFilter filter,
-                                        uint32_t offset) {
+                                        KeyAccumulator* keys) {
     DCHECK_NE(DICTIONARY_ELEMENTS, kind());
     // Non-dictionary elements can't have all-can-read accessors.
     uint32_t length = GetIterationLength(*object, *backing_store);
-    if (range < length) length = range;
-    for (uint32_t i = offset; i < length; i++) {
-      if (ElementsAccessorSubclass::HasElementImpl(object, i, backing_store,
-                                                   filter)) {
+    PropertyFilter filter = keys->filter();
+    for (uint32_t i = 0; i < length; i++) {
+      if (Subclass::HasElementImpl(object, i, backing_store, filter)) {
         keys->AddKey(i);
       }
     }
@@ -938,11 +923,9 @@
       Handle<FixedArrayBase> backing_store, GetKeysConversion convert,
       PropertyFilter filter, Handle<FixedArray> list, uint32_t* nof_indices,
       uint32_t insertion_index = 0) {
-    uint32_t length =
-        ElementsAccessorSubclass::GetIterationLength(*object, *backing_store);
+    uint32_t length = Subclass::GetIterationLength(*object, *backing_store);
     for (uint32_t i = 0; i < length; i++) {
-      if (ElementsAccessorSubclass::HasElementImpl(object, i, backing_store,
-                                                   filter)) {
+      if (Subclass::HasElementImpl(object, i, backing_store, filter)) {
         if (convert == CONVERT_TO_STRING) {
           Handle<String> index_string = isolate->factory()->Uint32ToString(i);
           list->set(insertion_index, *index_string);
@@ -961,8 +944,8 @@
                                            Handle<FixedArray> keys,
                                            GetKeysConversion convert,
                                            PropertyFilter filter) final {
-    return ElementsAccessorSubclass::PrependElementIndicesImpl(
-        object, backing_store, keys, convert, filter);
+    return Subclass::PrependElementIndicesImpl(object, backing_store, keys,
+                                               convert, filter);
   }
 
   static Handle<FixedArray> PrependElementIndicesImpl(
@@ -972,14 +955,14 @@
     Isolate* isolate = object->GetIsolate();
     uint32_t nof_property_keys = keys->length();
     uint32_t initial_list_length =
-        ElementsAccessorSubclass::GetCapacityImpl(*object, *backing_store);
+        Subclass::GetCapacityImpl(*object, *backing_store);
     initial_list_length += nof_property_keys;
 
     // Collect the element indices into a new list.
     uint32_t nof_indices = 0;
     Handle<FixedArray> combined_keys =
         isolate->factory()->NewFixedArray(initial_list_length);
-    combined_keys = ElementsAccessorSubclass::DirectCollectElementIndicesImpl(
+    combined_keys = Subclass::DirectCollectElementIndicesImpl(
         isolate, object, backing_store, convert, filter, combined_keys,
         &nof_indices);
 
@@ -1011,13 +994,10 @@
                        &array_length) &&
                    array_length <= Smi::kMaxValue)) {
         // Since we use std::sort above, the GC will no longer know where the
-        // HeapNumbers are, hence we have to write them again.
-        // For Arrays with valid Smi length, we are sure to have no HeapNumber
-        // indices and thus we can skip this step.
-        for (uint32_t i = 0; i < nof_indices; i++) {
-          Object* index = combined_keys->get(i);
-          combined_keys->set(i, index);
-        }
+        // HeapNumbers are.  For Arrays with valid Smi length, we are sure to
+        // have no HeapNumber indices and thus we can skip this step.
+        FIXED_ARRAY_ELEMENTS_WRITE_BARRIER(isolate->heap(), *combined_keys, 0,
+                                           nof_indices);
       }
     }
 
@@ -1038,8 +1018,7 @@
   void AddElementsToKeyAccumulator(Handle<JSObject> receiver,
                                    KeyAccumulator* accumulator,
                                    AddKeyConversion convert) final {
-    ElementsAccessorSubclass::AddElementsToKeyAccumulatorImpl(
-        receiver, accumulator, convert);
+    Subclass::AddElementsToKeyAccumulatorImpl(receiver, accumulator, convert);
   }
 
   static uint32_t GetCapacityImpl(JSObject* holder,
@@ -1048,7 +1027,7 @@
   }
 
   uint32_t GetCapacity(JSObject* holder, FixedArrayBase* backing_store) final {
-    return ElementsAccessorSubclass::GetCapacityImpl(holder, backing_store);
+    return Subclass::GetCapacityImpl(holder, backing_store);
   }
 
   static uint32_t GetIndexForEntryImpl(FixedArrayBase* backing_store,
@@ -1060,8 +1039,7 @@
                                        FixedArrayBase* backing_store,
                                        uint32_t index, PropertyFilter filter) {
     if (IsHoleyElementsKind(kind())) {
-      return index < ElementsAccessorSubclass::GetCapacityImpl(holder,
-                                                               backing_store) &&
+      return index < Subclass::GetCapacityImpl(holder, backing_store) &&
                      !BackingStore::cast(backing_store)->is_the_hole(index)
                  ? index
                  : kMaxUInt32;
@@ -1073,8 +1051,8 @@
 
   uint32_t GetEntryForIndex(JSObject* holder, FixedArrayBase* backing_store,
                             uint32_t index) final {
-    return ElementsAccessorSubclass::GetEntryForIndexImpl(
-        holder, backing_store, index, ALL_PROPERTIES);
+    return Subclass::GetEntryForIndexImpl(holder, backing_store, index,
+                                          ALL_PROPERTIES);
   }
 
   static PropertyDetails GetDetailsImpl(FixedArrayBase* backing_store,
@@ -1087,7 +1065,7 @@
   }
 
   PropertyDetails GetDetails(JSObject* holder, uint32_t entry) final {
-    return ElementsAccessorSubclass::GetDetailsImpl(holder, entry);
+    return Subclass::GetDetailsImpl(holder, entry);
   }
 
  private:
@@ -1333,16 +1311,15 @@
 
   static void CollectElementIndicesImpl(Handle<JSObject> object,
                                         Handle<FixedArrayBase> backing_store,
-                                        KeyAccumulator* keys, uint32_t range,
-                                        PropertyFilter filter,
-                                        uint32_t offset) {
-    if (filter & SKIP_STRINGS) return;
+                                        KeyAccumulator* keys) {
+    if (keys->filter() & SKIP_STRINGS) return;
     Isolate* isolate = keys->isolate();
     Handle<Object> undefined = isolate->factory()->undefined_value();
     Handle<Object> the_hole = isolate->factory()->the_hole_value();
     Handle<SeededNumberDictionary> dictionary =
         Handle<SeededNumberDictionary>::cast(backing_store);
     int capacity = dictionary->Capacity();
+    PropertyFilter filter = keys->filter();
     for (int i = 0; i < capacity; i++) {
       uint32_t key =
           GetKeyForEntryImpl(dictionary, i, filter, *undefined, *the_hole);
@@ -1403,21 +1380,18 @@
 
 
 // Super class for all fast element arrays.
-template<typename FastElementsAccessorSubclass,
-         typename KindTraits>
-class FastElementsAccessor
-    : public ElementsAccessorBase<FastElementsAccessorSubclass, KindTraits> {
+template <typename Subclass, typename KindTraits>
+class FastElementsAccessor : public ElementsAccessorBase<Subclass, KindTraits> {
  public:
   explicit FastElementsAccessor(const char* name)
-      : ElementsAccessorBase<FastElementsAccessorSubclass,
-                             KindTraits>(name) {}
+      : ElementsAccessorBase<Subclass, KindTraits>(name) {}
 
   typedef typename KindTraits::BackingStore BackingStore;
 
   static Handle<SeededNumberDictionary> NormalizeImpl(
       Handle<JSObject> object, Handle<FixedArrayBase> store) {
     Isolate* isolate = store->GetIsolate();
-    ElementsKind kind = FastElementsAccessorSubclass::kind();
+    ElementsKind kind = Subclass::kind();
 
     // Ensure that notifications fire if the array or object prototypes are
     // normalizing.
@@ -1436,7 +1410,7 @@
       if (IsHoleyElementsKind(kind)) {
         if (BackingStore::cast(*store)->is_the_hole(i)) continue;
       }
-      Handle<Object> value = FastElementsAccessorSubclass::GetImpl(*store, i);
+      Handle<Object> value = Subclass::GetImpl(*store, i);
       dictionary = SeededNumberDictionary::AddNumberEntry(
           dictionary, i, value, details, used_as_prototype);
       j++;
@@ -1453,7 +1427,9 @@
     }
     if (entry == 0) {
       FixedArray* empty = heap->empty_fixed_array();
-      if (obj->HasFastArgumentsElements()) {
+      // Dynamically ask for the elements kind here since we manually redirect
+      // the operations for argument backing stores.
+      if (obj->GetElementsKind() == FAST_SLOPPY_ARGUMENTS_ELEMENTS) {
         FixedArray::cast(obj->elements())->set(1, empty);
       } else {
         obj->set_elements(empty);
@@ -1538,14 +1514,13 @@
                       uint32_t new_capacity) {
     DCHECK_EQ(NONE, attributes);
     ElementsKind from_kind = object->GetElementsKind();
-    ElementsKind to_kind = FastElementsAccessorSubclass::kind();
+    ElementsKind to_kind = Subclass::kind();
     if (IsDictionaryElementsKind(from_kind) ||
         IsFastDoubleElementsKind(from_kind) !=
             IsFastDoubleElementsKind(to_kind) ||
-        FastElementsAccessorSubclass::GetCapacityImpl(
-            *object, object->elements()) != new_capacity) {
-      FastElementsAccessorSubclass::GrowCapacityAndConvertImpl(object,
-                                                               new_capacity);
+        Subclass::GetCapacityImpl(*object, object->elements()) !=
+            new_capacity) {
+      Subclass::GrowCapacityAndConvertImpl(object, new_capacity);
     } else {
       if (IsFastElementsKind(from_kind) && from_kind != to_kind) {
         JSObject::TransitionElementsKind(object, to_kind);
@@ -1555,7 +1530,7 @@
         JSObject::EnsureWritableFastElements(object);
       }
     }
-    FastElementsAccessorSubclass::SetImpl(object, index, *value);
+    Subclass::SetImpl(object, index, *value);
   }
 
   static void DeleteImpl(Handle<JSObject> obj, uint32_t entry) {
@@ -1578,13 +1553,11 @@
                                               AddKeyConversion convert) {
     Handle<FixedArrayBase> elements(receiver->elements(),
                                     receiver->GetIsolate());
-    uint32_t length =
-        FastElementsAccessorSubclass::GetIterationLength(*receiver, *elements);
+    uint32_t length = Subclass::GetIterationLength(*receiver, *elements);
     for (uint32_t i = 0; i < length; i++) {
       if (IsFastPackedElementsKind(KindTraits::Kind) ||
           HasEntryImpl(*elements, i)) {
-        accumulator->AddKey(FastElementsAccessorSubclass::GetImpl(*elements, i),
-                            convert);
+        accumulator->AddKey(Subclass::GetImpl(*elements, i), convert);
       }
     }
   }
@@ -1592,16 +1565,20 @@
   static void ValidateContents(Handle<JSObject> holder, int length) {
 #if DEBUG
     Isolate* isolate = holder->GetIsolate();
+    Heap* heap = isolate->heap();
     HandleScope scope(isolate);
     Handle<FixedArrayBase> elements(holder->elements(), isolate);
     Map* map = elements->map();
-    DCHECK((IsFastSmiOrObjectElementsKind(KindTraits::Kind) &&
-            (map == isolate->heap()->fixed_array_map() ||
-             map == isolate->heap()->fixed_cow_array_map())) ||
-           (IsFastDoubleElementsKind(KindTraits::Kind) ==
-            ((map == isolate->heap()->fixed_array_map() && length == 0) ||
-             map == isolate->heap()->fixed_double_array_map())));
+    if (IsFastSmiOrObjectElementsKind(KindTraits::Kind)) {
+      DCHECK_NE(map, heap->fixed_double_array_map());
+    } else if (IsFastDoubleElementsKind(KindTraits::Kind)) {
+      DCHECK_NE(map, heap->fixed_cow_array_map());
+      if (map == heap->fixed_array_map()) DCHECK_EQ(0, length);
+    } else {
+      UNREACHABLE();
+    }
     if (length == 0) return;  // nothing to do!
+#if ENABLE_SLOW_DCHECKS
     DisallowHeapAllocation no_gc;
     Handle<BackingStore> backing_store = Handle<BackingStore>::cast(elements);
     if (IsFastSmiElementsKind(KindTraits::Kind)) {
@@ -1610,30 +1587,38 @@
                (IsFastHoleyElementsKind(KindTraits::Kind) &&
                 backing_store->is_the_hole(i)));
       }
+    } else if (KindTraits::Kind == FAST_ELEMENTS ||
+               KindTraits::Kind == FAST_DOUBLE_ELEMENTS) {
+      for (int i = 0; i < length; i++) {
+        DCHECK(!backing_store->is_the_hole(i));
+      }
+    } else {
+      DCHECK(IsFastHoleyElementsKind(KindTraits::Kind));
     }
 #endif
+#endif
   }
 
   static Handle<Object> PopImpl(Handle<JSArray> receiver) {
-    return FastElementsAccessorSubclass::RemoveElement(receiver, AT_END);
+    return Subclass::RemoveElement(receiver, AT_END);
   }
 
   static Handle<Object> ShiftImpl(Handle<JSArray> receiver) {
-    return FastElementsAccessorSubclass::RemoveElement(receiver, AT_START);
+    return Subclass::RemoveElement(receiver, AT_START);
   }
 
   static uint32_t PushImpl(Handle<JSArray> receiver,
                            Arguments* args, uint32_t push_size) {
     Handle<FixedArrayBase> backing_store(receiver->elements());
-    return FastElementsAccessorSubclass::AddArguments(receiver, backing_store,
-                                                      args, push_size, AT_END);
+    return Subclass::AddArguments(receiver, backing_store, args, push_size,
+                                  AT_END);
   }
 
   static uint32_t UnshiftImpl(Handle<JSArray> receiver,
                               Arguments* args, uint32_t unshift_size) {
     Handle<FixedArrayBase> backing_store(receiver->elements());
-    return FastElementsAccessorSubclass::AddArguments(
-        receiver, backing_store, args, unshift_size, AT_START);
+    return Subclass::AddArguments(receiver, backing_store, args, unshift_size,
+                                  AT_START);
   }
 
   static Handle<JSArray> SliceImpl(Handle<JSObject> receiver,
@@ -1644,11 +1629,10 @@
     Handle<JSArray> result_array = isolate->factory()->NewJSArray(
         KindTraits::Kind, result_len, result_len);
     DisallowHeapAllocation no_gc;
-    FastElementsAccessorSubclass::CopyElementsImpl(
-        *backing_store, start, result_array->elements(), KindTraits::Kind, 0,
-        kPackedSizeNotKnown, result_len);
-    FastElementsAccessorSubclass::TryTransitionResultArrayToPacked(
-        result_array);
+    Subclass::CopyElementsImpl(*backing_store, start, result_array->elements(),
+                               KindTraits::Kind, 0, kPackedSizeNotKnown,
+                               result_len);
+    Subclass::TryTransitionResultArrayToPacked(result_array);
     return result_array;
   }
 
@@ -1681,29 +1665,26 @@
         KindTraits::Kind, delete_count, delete_count);
     if (delete_count > 0) {
       DisallowHeapAllocation no_gc;
-      FastElementsAccessorSubclass::CopyElementsImpl(
-          *backing_store, start, deleted_elements->elements(), KindTraits::Kind,
-          0, kPackedSizeNotKnown, delete_count);
+      Subclass::CopyElementsImpl(*backing_store, start,
+                                 deleted_elements->elements(), KindTraits::Kind,
+                                 0, kPackedSizeNotKnown, delete_count);
     }
 
     // Delete and move elements to make space for add_count new elements.
     if (add_count < delete_count) {
-      FastElementsAccessorSubclass::SpliceShrinkStep(
-          isolate, receiver, backing_store, start, delete_count, add_count,
-          length, new_length);
+      Subclass::SpliceShrinkStep(isolate, receiver, backing_store, start,
+                                 delete_count, add_count, length, new_length);
     } else if (add_count > delete_count) {
-      backing_store = FastElementsAccessorSubclass::SpliceGrowStep(
-          isolate, receiver, backing_store, start, delete_count, add_count,
-          length, new_length);
+      backing_store =
+          Subclass::SpliceGrowStep(isolate, receiver, backing_store, start,
+                                   delete_count, add_count, length, new_length);
     }
 
     // Copy over the arguments.
-    FastElementsAccessorSubclass::CopyArguments(args, backing_store, add_count,
-                                                3, start);
+    Subclass::CopyArguments(args, backing_store, add_count, 3, start);
 
     receiver->set_length(Smi::FromInt(new_length));
-    FastElementsAccessorSubclass::TryTransitionResultArrayToPacked(
-        deleted_elements);
+    Subclass::TryTransitionResultArrayToPacked(deleted_elements);
     return deleted_elements;
   }
 
@@ -1715,8 +1696,7 @@
     uint32_t length = object->elements()->length();
     for (uint32_t index = 0; index < length; ++index) {
       if (!HasEntryImpl(object->elements(), index)) continue;
-      Handle<Object> value =
-          FastElementsAccessorSubclass::GetImpl(object->elements(), index);
+      Handle<Object> value = Subclass::GetImpl(object->elements(), index);
       if (get_entries) {
         value = MakeEntryPair(isolate, index, value);
       }
@@ -1765,9 +1745,9 @@
                                uint32_t new_length) {
     const int move_left_count = len - delete_count - start;
     const int move_left_dst_index = start + add_count;
-    FastElementsAccessorSubclass::MoveElements(
-        isolate, receiver, backing_store, move_left_dst_index,
-        start + delete_count, move_left_count, new_length, len);
+    Subclass::MoveElements(isolate, receiver, backing_store,
+                           move_left_dst_index, start + delete_count,
+                           move_left_count, new_length, len);
   }
 
   // SpliceGrowStep might modify the backing_store.
@@ -1780,23 +1760,22 @@
     DCHECK((add_count - delete_count) <= (Smi::kMaxValue - length));
     // Check if backing_store is big enough.
     if (new_length <= static_cast<uint32_t>(backing_store->length())) {
-      FastElementsAccessorSubclass::MoveElements(
-          isolate, receiver, backing_store, start + add_count,
-          start + delete_count, (length - delete_count - start), 0, 0);
+      Subclass::MoveElements(isolate, receiver, backing_store,
+                             start + add_count, start + delete_count,
+                             (length - delete_count - start), 0, 0);
       // MoveElements updates the backing_store in-place.
       return backing_store;
     }
     // New backing storage is needed.
     int capacity = JSObject::NewElementsCapacity(new_length);
     // Partially copy all elements up to start.
-    Handle<FixedArrayBase> new_elms =
-        FastElementsAccessorSubclass::ConvertElementsWithCapacity(
-            receiver, backing_store, KindTraits::Kind, capacity, start);
+    Handle<FixedArrayBase> new_elms = Subclass::ConvertElementsWithCapacity(
+        receiver, backing_store, KindTraits::Kind, capacity, start);
     // Copy the trailing elements after start + delete_count
-    FastElementsAccessorSubclass::CopyElementsImpl(
-        *backing_store, start + delete_count, *new_elms, KindTraits::Kind,
-        start + add_count, kPackedSizeNotKnown,
-        ElementsAccessor::kCopyToEndAndInitializeToHole);
+    Subclass::CopyElementsImpl(*backing_store, start + delete_count, *new_elms,
+                               KindTraits::Kind, start + add_count,
+                               kPackedSizeNotKnown,
+                               ElementsAccessor::kCopyToEndAndInitializeToHole);
     receiver->set_elements(*new_elms);
     return new_elms;
   }
@@ -1815,14 +1794,12 @@
     DCHECK(length > 0);
     int new_length = length - 1;
     int remove_index = remove_position == AT_START ? 0 : new_length;
-    Handle<Object> result =
-        FastElementsAccessorSubclass::GetImpl(*backing_store, remove_index);
+    Handle<Object> result = Subclass::GetImpl(*backing_store, remove_index);
     if (remove_position == AT_START) {
-      FastElementsAccessorSubclass::MoveElements(
-          isolate, receiver, backing_store, 0, 1, new_length, 0, 0);
+      Subclass::MoveElements(isolate, receiver, backing_store, 0, 1, new_length,
+                             0, 0);
     }
-    FastElementsAccessorSubclass::SetLengthImpl(isolate, receiver, new_length,
-                                                backing_store);
+    Subclass::SetLengthImpl(isolate, receiver, new_length, backing_store);
 
     if (IsHoleyElementsKind(kind) && result->IsTheHole()) {
       return isolate->factory()->undefined_value();
@@ -1833,7 +1810,7 @@
   static uint32_t AddArguments(Handle<JSArray> receiver,
                                Handle<FixedArrayBase> backing_store,
                                Arguments* args, uint32_t add_size,
-                               Where remove_position) {
+                               Where add_position) {
     uint32_t length = Smi::cast(receiver->length())->value();
     DCHECK(0 < add_size);
     uint32_t elms_len = backing_store->length();
@@ -1845,24 +1822,23 @@
       // New backing storage is needed.
       uint32_t capacity = JSObject::NewElementsCapacity(new_length);
       // If we add arguments to the start we have to shift the existing objects.
-      int copy_dst_index = remove_position == AT_START ? add_size : 0;
+      int copy_dst_index = add_position == AT_START ? add_size : 0;
       // Copy over all objects to a new backing_store.
-      backing_store = FastElementsAccessorSubclass::ConvertElementsWithCapacity(
+      backing_store = Subclass::ConvertElementsWithCapacity(
           receiver, backing_store, KindTraits::Kind, capacity, 0,
           copy_dst_index, ElementsAccessor::kCopyToEndAndInitializeToHole);
       receiver->set_elements(*backing_store);
-    } else if (remove_position == AT_START) {
+    } else if (add_position == AT_START) {
       // If the backing store has enough capacity and we add elements to the
       // start we have to shift the existing objects.
       Isolate* isolate = receiver->GetIsolate();
-      FastElementsAccessorSubclass::MoveElements(
-          isolate, receiver, backing_store, add_size, 0, length, 0, 0);
+      Subclass::MoveElements(isolate, receiver, backing_store, add_size, 0,
+                             length, 0, 0);
     }
 
-    int insertion_index = remove_position == AT_START ? 0 : length;
+    int insertion_index = add_position == AT_START ? 0 : length;
     // Copy the arguments to the start.
-    FastElementsAccessorSubclass::CopyArguments(args, backing_store, add_size,
-                                                1, insertion_index);
+    Subclass::CopyArguments(args, backing_store, add_size, 1, insertion_index);
     // Set the length.
     receiver->set_length(Smi::FromInt(new_length));
     return new_length;
@@ -1876,22 +1852,19 @@
     FixedArrayBase* raw_backing_store = *dst_store;
     WriteBarrierMode mode = raw_backing_store->GetWriteBarrierMode(no_gc);
     for (uint32_t i = 0; i < copy_size; i++) {
-      Object* argument = (*args)[i + src_index];
-      FastElementsAccessorSubclass::SetImpl(raw_backing_store, i + dst_index,
-                                            argument, mode);
+      Object* argument = (*args)[src_index + i];
+      DCHECK(!argument->IsTheHole());
+      Subclass::SetImpl(raw_backing_store, dst_index + i, argument, mode);
     }
   }
 };
 
-
-template<typename FastElementsAccessorSubclass,
-         typename KindTraits>
+template <typename Subclass, typename KindTraits>
 class FastSmiOrObjectElementsAccessor
-    : public FastElementsAccessor<FastElementsAccessorSubclass, KindTraits> {
+    : public FastElementsAccessor<Subclass, KindTraits> {
  public:
   explicit FastSmiOrObjectElementsAccessor(const char* name)
-      : FastElementsAccessor<FastElementsAccessorSubclass,
-                             KindTraits>(name) {}
+      : FastElementsAccessor<Subclass, KindTraits>(name) {}
 
   static inline void SetImpl(Handle<JSObject> holder, uint32_t entry,
                              Object* value) {
@@ -1909,8 +1882,7 @@
   }
 
   static Object* GetRaw(FixedArray* backing_store, uint32_t entry) {
-    uint32_t index = FastElementsAccessorSubclass::GetIndexForEntryImpl(
-        backing_store, entry);
+    uint32_t index = Subclass::GetIndexForEntryImpl(backing_store, entry);
     return backing_store->get(index);
   }
 
@@ -1931,7 +1903,6 @@
       case FAST_HOLEY_SMI_ELEMENTS:
       case FAST_ELEMENTS:
       case FAST_HOLEY_ELEMENTS:
-      case FAST_STRING_WRAPPER_ELEMENTS:
         CopyObjectToObjectElements(from, from_kind, from_start, to, to_kind,
                                    to_start, copy_size);
         break;
@@ -1943,12 +1914,13 @@
         break;
       }
       case DICTIONARY_ELEMENTS:
-      case SLOW_STRING_WRAPPER_ELEMENTS:
         CopyDictionaryToObjectElements(from, from_start, to, to_kind, to_start,
                                        copy_size);
         break;
       case FAST_SLOPPY_ARGUMENTS_ELEMENTS:
       case SLOW_SLOPPY_ARGUMENTS_ELEMENTS:
+      case FAST_STRING_WRAPPER_ELEMENTS:
+      case SLOW_STRING_WRAPPER_ELEMENTS:
 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) case TYPE##_ELEMENTS:
       TYPED_ARRAYS(TYPED_ARRAY_CASE)
 #undef TYPED_ARRAY_CASE
@@ -2010,15 +1982,12 @@
           ElementsKindTraits<FAST_HOLEY_ELEMENTS> >(name) {}
 };
 
-
-template<typename FastElementsAccessorSubclass,
-         typename KindTraits>
+template <typename Subclass, typename KindTraits>
 class FastDoubleElementsAccessor
-    : public FastElementsAccessor<FastElementsAccessorSubclass, KindTraits> {
+    : public FastElementsAccessor<Subclass, KindTraits> {
  public:
   explicit FastDoubleElementsAccessor(const char* name)
-      : FastElementsAccessor<FastElementsAccessorSubclass,
-                             KindTraits>(name) {}
+      : FastElementsAccessor<Subclass, KindTraits>(name) {}
 
   static Handle<Object> GetImpl(Handle<JSObject> holder, uint32_t entry) {
     return GetImpl(holder->elements(), entry);
@@ -2239,16 +2208,12 @@
 TYPED_ARRAYS(FIXED_ELEMENTS_ACCESSOR)
 #undef FIXED_ELEMENTS_ACCESSOR
 
-
-template <typename SloppyArgumentsElementsAccessorSubclass,
-          typename ArgumentsAccessor, typename KindTraits>
+template <typename Subclass, typename ArgumentsAccessor, typename KindTraits>
 class SloppyArgumentsElementsAccessor
-    : public ElementsAccessorBase<SloppyArgumentsElementsAccessorSubclass,
-                                  KindTraits> {
+    : public ElementsAccessorBase<Subclass, KindTraits> {
  public:
   explicit SloppyArgumentsElementsAccessor(const char* name)
-      : ElementsAccessorBase<SloppyArgumentsElementsAccessorSubclass,
-                             KindTraits>(name) {
+      : ElementsAccessorBase<Subclass, KindTraits>(name) {
     USE(KindTraits::Kind);
   }
 
@@ -2384,7 +2349,7 @@
     FixedArray* arguments = FixedArray::cast(parameter_map->get(1));
     uint32_t entry = ArgumentsAccessor::GetEntryForIndexImpl(holder, arguments,
                                                              index, filter);
-    if (entry == kMaxUInt32) return entry;
+    if (entry == kMaxUInt32) return kMaxUInt32;
     return (parameter_map->length() - 2) + entry;
   }
 
@@ -2414,31 +2379,24 @@
       // would enable GC of the context.
       parameter_map->set_the_hole(entry + 2);
     } else {
-      SloppyArgumentsElementsAccessorSubclass::DeleteFromArguments(
-          obj, entry - length);
+      Subclass::DeleteFromArguments(obj, entry - length);
     }
   }
 
   static void CollectElementIndicesImpl(Handle<JSObject> object,
                                         Handle<FixedArrayBase> backing_store,
-                                        KeyAccumulator* keys, uint32_t range,
-                                        PropertyFilter filter,
-                                        uint32_t offset) {
+                                        KeyAccumulator* keys) {
     FixedArray* parameter_map = FixedArray::cast(*backing_store);
     uint32_t length = parameter_map->length() - 2;
-    if (range < length) length = range;
-
-    for (uint32_t i = offset; i < length; ++i) {
+    for (uint32_t i = 0; i < length; ++i) {
       if (!parameter_map->get(i + 2)->IsTheHole()) {
         keys->AddKey(i);
       }
     }
 
     Handle<FixedArrayBase> store(FixedArrayBase::cast(parameter_map->get(1)));
-    ArgumentsAccessor::CollectElementIndicesImpl(object, store, keys, range,
-                                                 filter, offset);
-    if (SloppyArgumentsElementsAccessorSubclass::kind() ==
-        FAST_SLOPPY_ARGUMENTS_ELEMENTS) {
+    ArgumentsAccessor::CollectElementIndicesImpl(object, store, keys);
+    if (Subclass::kind() == FAST_SLOPPY_ARGUMENTS_ELEMENTS) {
       keys->SortCurrentElementsList();
     }
   }
@@ -2568,16 +2526,45 @@
             FastHoleyObjectElementsAccessor,
             ElementsKindTraits<FAST_SLOPPY_ARGUMENTS_ELEMENTS> >(name) {}
 
+  static Handle<FixedArray> GetArguments(Isolate* isolate,
+                                         FixedArrayBase* backing_store) {
+    FixedArray* parameter_map = FixedArray::cast(backing_store);
+    return Handle<FixedArray>(FixedArray::cast(parameter_map->get(1)), isolate);
+  }
+
+  static Handle<JSArray> SliceImpl(Handle<JSObject> receiver, uint32_t start,
+                                   uint32_t end) {
+    Isolate* isolate = receiver->GetIsolate();
+    uint32_t result_len = end < start ? 0u : end - start;
+    Handle<JSArray> result_array = isolate->factory()->NewJSArray(
+        FAST_HOLEY_ELEMENTS, result_len, result_len);
+    DisallowHeapAllocation no_gc;
+    FixedArray* elements = FixedArray::cast(result_array->elements());
+    FixedArray* parameters = FixedArray::cast(receiver->elements());
+    uint32_t insertion_index = 0;
+    for (uint32_t i = start; i < end; i++) {
+      uint32_t entry =
+          GetEntryForIndexImpl(*receiver, parameters, i, ALL_PROPERTIES);
+      if (entry != kMaxUInt32 && HasEntryImpl(parameters, entry)) {
+        elements->set(insertion_index, *GetImpl(parameters, entry));
+      } else {
+        elements->set_the_hole(insertion_index);
+      }
+      insertion_index++;
+    }
+    return result_array;
+  }
+
   static Handle<SeededNumberDictionary> NormalizeImpl(
       Handle<JSObject> object, Handle<FixedArrayBase> elements) {
-    FixedArray* parameter_map = FixedArray::cast(*elements);
-    Handle<FixedArray> arguments(FixedArray::cast(parameter_map->get(1)));
+    Handle<FixedArray> arguments =
+        GetArguments(elements->GetIsolate(), *elements);
     return FastHoleyObjectElementsAccessor::NormalizeImpl(object, arguments);
   }
 
   static void DeleteFromArguments(Handle<JSObject> obj, uint32_t entry) {
-    FixedArray* parameter_map = FixedArray::cast(obj->elements());
-    Handle<FixedArray> arguments(FixedArray::cast(parameter_map->get(1)));
+    Handle<FixedArray> arguments =
+        GetArguments(obj->GetIsolate(), obj->elements());
     FastHoleyObjectElementsAccessor::DeleteCommon(obj, entry, arguments);
   }
 
@@ -2650,15 +2637,12 @@
   }
 };
 
-template <typename StringWrapperElementsAccessorSubclass,
-          typename BackingStoreAccessor, typename KindTraits>
+template <typename Subclass, typename BackingStoreAccessor, typename KindTraits>
 class StringWrapperElementsAccessor
-    : public ElementsAccessorBase<StringWrapperElementsAccessorSubclass,
-                                  KindTraits> {
+    : public ElementsAccessorBase<Subclass, KindTraits> {
  public:
   explicit StringWrapperElementsAccessor(const char* name)
-      : ElementsAccessorBase<StringWrapperElementsAccessorSubclass, KindTraits>(
-            name) {
+      : ElementsAccessorBase<Subclass, KindTraits>(name) {
     USE(KindTraits::Kind);
   }
 
@@ -2722,8 +2706,7 @@
         (object->GetElementsKind() == SLOW_STRING_WRAPPER_ELEMENTS ||
          BackingStoreAccessor::GetCapacityImpl(*object, object->elements()) !=
              new_capacity)) {
-      StringWrapperElementsAccessorSubclass::GrowCapacityAndConvertImpl(
-          object, new_capacity);
+      GrowCapacityAndConvertImpl(object, new_capacity);
     }
     BackingStoreAccessor::AddImpl(object, index, value, attributes,
                                   new_capacity);
@@ -2760,23 +2743,41 @@
 
   static void CollectElementIndicesImpl(Handle<JSObject> object,
                                         Handle<FixedArrayBase> backing_store,
-                                        KeyAccumulator* keys, uint32_t range,
-                                        PropertyFilter filter,
-                                        uint32_t offset) {
+                                        KeyAccumulator* keys) {
     uint32_t length = GetString(*object)->length();
     for (uint32_t i = 0; i < length; i++) {
       keys->AddKey(i);
     }
-    BackingStoreAccessor::CollectElementIndicesImpl(object, backing_store, keys,
-                                                    range, filter, offset);
+    BackingStoreAccessor::CollectElementIndicesImpl(object, backing_store,
+                                                    keys);
+  }
+
+  static void GrowCapacityAndConvertImpl(Handle<JSObject> object,
+                                         uint32_t capacity) {
+    Handle<FixedArrayBase> old_elements(object->elements());
+    ElementsKind from_kind = object->GetElementsKind();
+    // This method should only be called if there's a reason to update the
+    // elements.
+    DCHECK(from_kind == SLOW_STRING_WRAPPER_ELEMENTS ||
+           static_cast<uint32_t>(old_elements->length()) < capacity);
+    Subclass::BasicGrowCapacityAndConvertImpl(object, old_elements, from_kind,
+                                              FAST_STRING_WRAPPER_ELEMENTS,
+                                              capacity);
   }
 
   static void CopyElementsImpl(FixedArrayBase* from, uint32_t from_start,
                                FixedArrayBase* to, ElementsKind from_kind,
                                uint32_t to_start, int packed_size,
                                int copy_size) {
-    BackingStoreAccessor::CopyElementsImpl(from, from_start, to, from_kind,
-                                           to_start, packed_size, copy_size);
+    DCHECK(!to->IsDictionary());
+    if (from_kind == SLOW_STRING_WRAPPER_ELEMENTS) {
+      CopyDictionaryToObjectElements(from, from_start, to, FAST_HOLEY_ELEMENTS,
+                                     to_start, copy_size);
+    } else {
+      DCHECK_EQ(FAST_STRING_WRAPPER_ELEMENTS, from_kind);
+      CopyObjectToObjectElements(from, FAST_HOLEY_ELEMENTS, from_start, to,
+                                 FAST_HOLEY_ELEMENTS, to_start, copy_size);
+    }
   }
 
  private:
@@ -2914,7 +2915,7 @@
   }
 
   // Fill in the content
-  switch (array->GetElementsKind()) {
+  switch (elements_kind) {
     case FAST_HOLEY_SMI_ELEMENTS:
     case FAST_SMI_ELEMENTS: {
       Handle<FixedArray> smi_elms = Handle<FixedArray>::cast(elms);
@@ -2975,31 +2976,17 @@
   elements_accessors_ = NULL;
 }
 
-
 Handle<JSArray> ElementsAccessor::Concat(Isolate* isolate, Arguments* args,
-                                         uint32_t concat_size) {
-  const int kHalfOfMaxInt = 1 << (kBitsPerInt - 2);
-  STATIC_ASSERT(FixedDoubleArray::kMaxLength < kHalfOfMaxInt);
-  USE(kHalfOfMaxInt);
-  uint32_t result_len = 0;
-  bool has_raw_doubles = false;
+                                         uint32_t concat_size,
+                                         uint32_t result_len) {
   ElementsKind result_elements_kind = GetInitialFastElementsKind();
+  bool has_raw_doubles = false;
   {
     DisallowHeapAllocation no_gc;
     bool is_holey = false;
-    // Iterate through all the arguments performing checks
-    // and calculating total length.
     for (uint32_t i = 0; i < concat_size; i++) {
-      JSArray* array = JSArray::cast((*args)[i]);
-      uint32_t len = 0;
-      array->length()->ToArrayLength(&len);
-
-      // We shouldn't overflow when adding another len.
-      result_len += len;
-      DCHECK(0 <= result_len);
-      DCHECK(result_len <= FixedDoubleArray::kMaxLength);
-
-      ElementsKind arg_kind = array->GetElementsKind();
+      Object* arg = (*args)[i];
+      ElementsKind arg_kind = JSArray::cast(arg)->GetElementsKind();
       has_raw_doubles = has_raw_doubles || IsFastDoubleElementsKind(arg_kind);
       is_holey = is_holey || IsFastHoleyElementsKind(arg_kind);
       result_elements_kind =
diff --git a/src/elements.h b/src/elements.h
index 2b18ab0..9f70f2a 100644
--- a/src/elements.h
+++ b/src/elements.h
@@ -81,18 +81,12 @@
   // whose PropertyAttribute match |filter|.
   virtual void CollectElementIndices(Handle<JSObject> object,
                                      Handle<FixedArrayBase> backing_store,
-                                     KeyAccumulator* keys,
-                                     uint32_t range = kMaxUInt32,
-                                     PropertyFilter filter = ALL_PROPERTIES,
-                                     uint32_t offset = 0) = 0;
+                                     KeyAccumulator* keys) = 0;
 
   inline void CollectElementIndices(Handle<JSObject> object,
-                                    KeyAccumulator* keys,
-                                    uint32_t range = kMaxUInt32,
-                                    PropertyFilter filter = ALL_PROPERTIES,
-                                    uint32_t offset = 0) {
-    CollectElementIndices(object, handle(object->elements()), keys, range,
-                          filter, offset);
+                                    KeyAccumulator* keys) {
+    CollectElementIndices(object, handle(object->elements(), keys->isolate()),
+                          keys);
   }
 
   virtual Maybe<bool> CollectValuesOrEntries(
@@ -100,7 +94,6 @@
       Handle<FixedArray> values_or_entries, bool get_entries, int* nof_items,
       PropertyFilter filter = ALL_PROPERTIES) = 0;
 
-  //
   virtual Handle<FixedArray> PrependElementIndices(
       Handle<JSObject> object, Handle<FixedArrayBase> backing_store,
       Handle<FixedArray> keys, GetKeysConversion convert,
@@ -135,7 +128,7 @@
                    uint32_t new_capacity) = 0;
 
   static Handle<JSArray> Concat(Isolate* isolate, Arguments* args,
-                                uint32_t concat_size);
+                                uint32_t concat_size, uint32_t result_length);
 
   virtual uint32_t Push(Handle<JSArray> receiver, Arguments* args,
                         uint32_t push_size) = 0;
diff --git a/src/execution.cc b/src/execution.cc
index a092a8a..37e41d5 100644
--- a/src/execution.cc
+++ b/src/execution.cc
@@ -94,6 +94,7 @@
     if (FLAG_profile_deserialization && target->IsJSFunction()) {
       PrintDeserializedCodeInfo(Handle<JSFunction>::cast(target));
     }
+    RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::JS_Execution);
     value = CALL_GENERATED_CODE(isolate, stub_entry, orig_func, func, recv,
                                 argc, argv);
   }
diff --git a/src/extensions/ignition-statistics-extension.cc b/src/extensions/ignition-statistics-extension.cc
new file mode 100644
index 0000000..b22c599
--- /dev/null
+++ b/src/extensions/ignition-statistics-extension.cc
@@ -0,0 +1,36 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/extensions/ignition-statistics-extension.h"
+
+#include "src/interpreter/bytecodes.h"
+#include "src/interpreter/interpreter.h"
+#include "src/isolate.h"
+
+namespace v8 {
+namespace internal {
+
+v8::Local<v8::FunctionTemplate>
+IgnitionStatisticsExtension::GetNativeFunctionTemplate(
+    v8::Isolate* isolate, v8::Local<v8::String> name) {
+  DCHECK_EQ(strcmp(*v8::String::Utf8Value(name), "getIgnitionDispatchCounters"),
+            0);
+  return v8::FunctionTemplate::New(
+      isolate, IgnitionStatisticsExtension::GetIgnitionDispatchCounters);
+}
+
+const char* const IgnitionStatisticsExtension::kSource =
+    "native function getIgnitionDispatchCounters();";
+
+void IgnitionStatisticsExtension::GetIgnitionDispatchCounters(
+    const v8::FunctionCallbackInfo<v8::Value>& args) {
+  DCHECK_EQ(args.Length(), 0);
+  DCHECK(FLAG_trace_ignition_dispatches);
+  args.GetReturnValue().Set(reinterpret_cast<Isolate*>(args.GetIsolate())
+                                ->interpreter()
+                                ->GetDispatchCountersObject());
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/extensions/ignition-statistics-extension.h b/src/extensions/ignition-statistics-extension.h
new file mode 100644
index 0000000..fee55f6
--- /dev/null
+++ b/src/extensions/ignition-statistics-extension.h
@@ -0,0 +1,31 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_EXTENSIONS_IGNITION_STATISTICS_EXTENSION_H_
+#define V8_EXTENSIONS_IGNITION_STATISTICS_EXTENSION_H_
+
+#include "include/v8.h"
+
+namespace v8 {
+namespace internal {
+
+class IgnitionStatisticsExtension : public v8::Extension {
+ public:
+  IgnitionStatisticsExtension()
+      : v8::Extension("v8/ignition-statistics", kSource) {}
+
+  v8::Local<v8::FunctionTemplate> GetNativeFunctionTemplate(
+      v8::Isolate* isolate, v8::Local<v8::String> name) override;
+
+  static void GetIgnitionDispatchCounters(
+      const v8::FunctionCallbackInfo<v8::Value>& args);
+
+ private:
+  static const char* const kSource;
+};
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_EXTENSIONS_IGNITION_STATISTICS_EXTENSION_H_
diff --git a/src/extensions/statistics-extension.cc b/src/extensions/statistics-extension.cc
index 76dcd43..e6649a6 100644
--- a/src/extensions/statistics-extension.cc
+++ b/src/extensions/statistics-extension.cc
@@ -116,7 +116,7 @@
   };
 
   const StatisticNumber numbers[] = {
-      {isolate->memory_allocator()->Size(), "total_committed_bytes"},
+      {heap->memory_allocator()->Size(), "total_committed_bytes"},
       {heap->new_space()->Size(), "new_space_live_bytes"},
       {heap->new_space()->Available(), "new_space_available_bytes"},
       {heap->new_space()->CommittedMemory(), "new_space_commited_bytes"},
diff --git a/src/external-reference-table.cc b/src/external-reference-table.cc
index 29a2474..6b8b7d8 100644
--- a/src/external-reference-table.cc
+++ b/src/external-reference-table.cc
@@ -59,6 +59,8 @@
   Add(ExternalReference::isolate_address(isolate).address(), "isolate");
   Add(ExternalReference::interpreter_dispatch_table_address(isolate).address(),
       "Interpreter::dispatch_table_address");
+  Add(ExternalReference::interpreter_dispatch_counters(isolate).address(),
+      "Interpreter::interpreter_dispatch_counters");
   Add(ExternalReference::address_of_negative_infinity().address(),
       "LDoubleConstant::negative_infinity");
   Add(ExternalReference::power_double_double_function(isolate).address(),
@@ -134,6 +136,14 @@
       "wasm::uint64_div");
   Add(ExternalReference::wasm_uint64_mod(isolate).address(),
       "wasm::uint64_mod");
+  Add(ExternalReference::wasm_word32_ctz(isolate).address(),
+      "wasm::word32_ctz");
+  Add(ExternalReference::wasm_word64_ctz(isolate).address(),
+      "wasm::word64_ctz");
+  Add(ExternalReference::wasm_word32_popcnt(isolate).address(),
+      "wasm::word32_popcnt");
+  Add(ExternalReference::wasm_word64_popcnt(isolate).address(),
+      "wasm::word64_popcnt");
   Add(ExternalReference::f64_acos_wrapper_function(isolate).address(),
       "f64_acos_wrapper");
   Add(ExternalReference::f64_asin_wrapper_function(isolate).address(),
@@ -295,19 +305,27 @@
     const char* name;
   };
 
-  static const AccessorRefTable accessors[] = {
+  static const AccessorRefTable getters[] = {
 #define ACCESSOR_INFO_DECLARATION(name) \
   {FUNCTION_ADDR(&Accessors::name##Getter), "Accessors::" #name "Getter"},
       ACCESSOR_INFO_LIST(ACCESSOR_INFO_DECLARATION)
 #undef ACCESSOR_INFO_DECLARATION
+  };
+  static const AccessorRefTable setters[] = {
 #define ACCESSOR_SETTER_DECLARATION(name) \
   {FUNCTION_ADDR(&Accessors::name), "Accessors::" #name},
-          ACCESSOR_SETTER_LIST(ACCESSOR_SETTER_DECLARATION)
+      ACCESSOR_SETTER_LIST(ACCESSOR_SETTER_DECLARATION)
 #undef ACCESSOR_INFO_DECLARATION
   };
 
-  for (unsigned i = 0; i < arraysize(accessors); ++i) {
-    Add(accessors[i].address, accessors[i].name);
+  for (unsigned i = 0; i < arraysize(getters); ++i) {
+    Add(getters[i].address, getters[i].name);
+    Add(AccessorInfo::redirect(isolate, getters[i].address, ACCESSOR_GETTER),
+        "");
+  }
+
+  for (unsigned i = 0; i < arraysize(setters); ++i) {
+    Add(setters[i].address, setters[i].name);
   }
 
   StubCache* stub_cache = isolate->stub_cache();
diff --git a/src/factory.cc b/src/factory.cc
index 41c3cb5..7d2dad0 100644
--- a/src/factory.cc
+++ b/src/factory.cc
@@ -190,8 +190,8 @@
 Handle<AccessorPair> Factory::NewAccessorPair() {
   Handle<AccessorPair> accessors =
       Handle<AccessorPair>::cast(NewStruct(ACCESSOR_PAIR_TYPE));
-  accessors->set_getter(*the_hole_value(), SKIP_WRITE_BARRIER);
-  accessors->set_setter(*the_hole_value(), SKIP_WRITE_BARRIER);
+  accessors->set_getter(*null_value(), SKIP_WRITE_BARRIER);
+  accessors->set_setter(*null_value(), SKIP_WRITE_BARRIER);
   return accessors;
 }
 
@@ -853,15 +853,6 @@
 }
 
 
-Handle<CodeCache> Factory::NewCodeCache() {
-  Handle<CodeCache> code_cache =
-      Handle<CodeCache>::cast(NewStruct(CODE_CACHE_TYPE));
-  code_cache->set_default_cache(*empty_fixed_array(), SKIP_WRITE_BARRIER);
-  code_cache->set_normal_type_cache(*undefined_value(), SKIP_WRITE_BARRIER);
-  return code_cache;
-}
-
-
 Handle<AliasedArgumentsEntry> Factory::NewAliasedArgumentsEntry(
     int aliased_context_slot) {
   Handle<AliasedArgumentsEntry> entry = Handle<AliasedArgumentsEntry>::cast(
@@ -894,7 +885,7 @@
   script->set_wrapper(heap->undefined_value());
   script->set_line_ends(heap->undefined_value());
   script->set_eval_from_shared(heap->undefined_value());
-  script->set_eval_from_instructions_offset(0);
+  script->set_eval_from_position(0);
   script->set_shared_function_infos(Smi::FromInt(0));
   script->set_flags(0);
 
@@ -1237,6 +1228,7 @@
       map.is_identical_to(
           isolate()->sloppy_function_with_readonly_prototype_map()) ||
       map.is_identical_to(isolate()->strict_function_map()) ||
+      map.is_identical_to(isolate()->strict_function_without_prototype_map()) ||
       // TODO(titzer): wasm_function_map() could be undefined here. ugly.
       (*map == context->get(Context::WASM_FUNCTION_MAP_INDEX)) ||
       map.is_identical_to(isolate()->proxy_function_map()));
@@ -1411,8 +1403,10 @@
   int obj_size = Code::SizeFor(body_size);
 
   Handle<Code> code = NewCodeRaw(obj_size, immovable);
-  DCHECK(isolate()->code_range() == NULL || !isolate()->code_range()->valid() ||
-         isolate()->code_range()->contains(code->address()) ||
+  DCHECK(isolate()->heap()->memory_allocator()->code_range() == NULL ||
+         !isolate()->heap()->memory_allocator()->code_range()->valid() ||
+         isolate()->heap()->memory_allocator()->code_range()->contains(
+             code->address()) ||
          obj_size <= isolate()->heap()->code_space()->AreaSize());
 
   // The code object has not been fully initialized yet.  We rely on the
@@ -1668,7 +1662,7 @@
 
 Handle<JSGeneratorObject> Factory::NewJSGeneratorObject(
     Handle<JSFunction> function) {
-  DCHECK(function->shared()->is_generator());
+  DCHECK(function->shared()->is_resumable());
   JSFunction::EnsureHasInitialMap(function);
   Handle<Map> map(function->initial_map());
   DCHECK_EQ(JS_GENERATOR_OBJECT_TYPE, map->instance_type());
@@ -1968,13 +1962,9 @@
   }
 
   // Setup the map for the JSBoundFunction instance.
-  Handle<Map> map = handle(
-      target_function->IsConstructor()
-          ? isolate()->native_context()->bound_function_with_constructor_map()
-          : isolate()
-                ->native_context()
-                ->bound_function_without_constructor_map(),
-      isolate());
+  Handle<Map> map = target_function->IsConstructor()
+                        ? isolate()->bound_function_with_constructor_map()
+                        : isolate()->bound_function_without_constructor_map();
   if (map->prototype() != *prototype) {
     map = Map::TransitionToPrototype(map, prototype, REGULAR_PROTOTYPE);
   }
@@ -1986,8 +1976,6 @@
   result->set_bound_target_function(*target_function);
   result->set_bound_this(*bound_this);
   result->set_bound_arguments(*bound_arguments);
-  result->set_length(Smi::FromInt(0));
-  result->set_name(*undefined_value(), SKIP_WRITE_BARRIER);
   return result;
 }
 
@@ -2080,6 +2068,11 @@
     shared->set_instance_class_name(isolate()->heap()->Generator_string());
     shared->DisableOptimization(kGenerator);
   }
+  if (IsAsyncFunction(kind)) {
+    // TODO(caitp): Enable optimization of async functions when they are enabled
+    // for generators functions.
+    shared->DisableOptimization(kGenerator);
+  }
   return shared;
 }
 
@@ -2247,14 +2240,19 @@
       Handle<DebugInfo>::cast(NewStruct(DEBUG_INFO_TYPE));
   debug_info->set_shared(*shared);
   if (shared->HasBytecodeArray()) {
-    // Create a copy for debugging.
-    Handle<BytecodeArray> original(shared->bytecode_array(), isolate());
-    Handle<BytecodeArray> copy = CopyBytecodeArray(original);
-    debug_info->set_abstract_code(AbstractCode::cast(*copy));
+    // We need to create a copy, but delay since this may cause heap
+    // verification.
+    debug_info->set_abstract_code(AbstractCode::cast(shared->bytecode_array()));
   } else {
     debug_info->set_abstract_code(AbstractCode::cast(shared->code()));
   }
   debug_info->set_break_points(*break_points);
+  if (shared->HasBytecodeArray()) {
+    // Create a copy for debugging.
+    Handle<BytecodeArray> original(shared->bytecode_array());
+    Handle<BytecodeArray> copy = CopyBytecodeArray(original);
+    debug_info->set_abstract_code(AbstractCode::cast(*copy));
+  }
 
   // Link debug info to function.
   shared->set_debug_info(*debug_info);
diff --git a/src/factory.h b/src/factory.h
index 2fa2901..51ba09d 100644
--- a/src/factory.h
+++ b/src/factory.h
@@ -270,8 +270,6 @@
   // the old generation).
   Handle<Struct> NewStruct(InstanceType type);
 
-  Handle<CodeCache> NewCodeCache();
-
   Handle<AliasedArgumentsEntry> NewAliasedArgumentsEntry(
       int aliased_context_slot);
 
@@ -562,6 +560,11 @@
     return NewRangeError(MessageTemplate::kInvalidStringLength);
   }
 
+  Handle<Object> NewURIError() {
+    return NewError(isolate()->uri_error_function(),
+                    MessageTemplate::kURIMalformed);
+  }
+
   Handle<Object> NewError(Handle<JSFunction> constructor,
                           MessageTemplate::Template template_index,
                           Handle<Object> arg0 = Handle<Object>(),
diff --git a/src/fast-accessor-assembler.cc b/src/fast-accessor-assembler.cc
index cd2910c..1fbe1a8 100644
--- a/src/fast-accessor-assembler.cc
+++ b/src/fast-accessor-assembler.cc
@@ -5,12 +5,12 @@
 #include "src/fast-accessor-assembler.h"
 
 #include "src/base/logging.h"
+#include "src/code-stub-assembler.h"
 #include "src/code-stubs.h"  // For CallApiCallbackStub.
-#include "src/compiler/code-stub-assembler.h"
 #include "src/handles-inl.h"
 #include "src/objects.h"  // For FAA::LoadInternalField impl.
 
-using v8::internal::compiler::CodeStubAssembler;
+using v8::internal::CodeStubAssembler;
 using v8::internal::compiler::Node;
 
 namespace v8 {
@@ -56,12 +56,13 @@
   CodeStubAssembler::Variable result(assembler_.get(),
                                      MachineRepresentation::kTagged);
   CodeStubAssembler::Label is_jsobject(assembler_.get());
+  CodeStubAssembler::Label maybe_api_object(assembler_.get());
   CodeStubAssembler::Label is_not_jsobject(assembler_.get());
   CodeStubAssembler::Label merge(assembler_.get(), &result);
   assembler_->Branch(
       assembler_->WordEqual(
           instance_type, assembler_->IntPtrConstant(Internals::kJSObjectType)),
-      &is_jsobject, &is_not_jsobject);
+      &is_jsobject, &maybe_api_object);
 
   // JSObject? Then load the internal field field_no.
   assembler_->Bind(&is_jsobject);
@@ -71,6 +72,12 @@
   result.Bind(internal_field);
   assembler_->Goto(&merge);
 
+  assembler_->Bind(&maybe_api_object);
+  assembler_->Branch(
+      assembler_->WordEqual(instance_type, assembler_->IntPtrConstant(
+                                               Internals::kJSApiObjectType)),
+      &is_jsobject, &is_not_jsobject);
+
   // No JSObject? Return undefined.
   // TODO(vogelheim): Check whether this is the appropriate action, or whether
   //                  the method should take a label instead.
diff --git a/src/fast-accessor-assembler.h b/src/fast-accessor-assembler.h
index 57e72e8..346592e 100644
--- a/src/fast-accessor-assembler.h
+++ b/src/fast-accessor-assembler.h
@@ -14,7 +14,7 @@
 #include "src/handles.h"
 
 // For CodeStubAssembler::Label. (We cannot forward-declare inner classes.)
-#include "src/compiler/code-stub-assembler.h"
+#include "src/code-stub-assembler.h"
 
 namespace v8 {
 namespace internal {
@@ -73,9 +73,9 @@
 
  private:
   ValueId FromRaw(compiler::Node* node);
-  LabelId FromRaw(compiler::CodeStubAssembler::Label* label);
+  LabelId FromRaw(CodeStubAssembler::Label* label);
   compiler::Node* FromId(ValueId value) const;
-  compiler::CodeStubAssembler::Label* FromId(LabelId value) const;
+  CodeStubAssembler::Label* FromId(LabelId value) const;
 
   void Clear();
   Zone* zone() { return &zone_; }
@@ -83,13 +83,13 @@
 
   Zone zone_;
   Isolate* isolate_;
-  base::SmartPointer<compiler::CodeStubAssembler> assembler_;
+  base::SmartPointer<CodeStubAssembler> assembler_;
 
   // To prevent exposing the RMA internals to the outside world, we'll map
   // Node + Label pointers integers wrapped in ValueId and LabelId instances.
   // These vectors maintain this mapping.
   std::vector<compiler::Node*> nodes_;
-  std::vector<compiler::CodeStubAssembler::Label*> labels_;
+  std::vector<CodeStubAssembler::Label*> labels_;
 
   // Remember the current state for easy error checking. (We prefer to be
   // strict as this class will be exposed at the API.)
diff --git a/src/flag-definitions.h b/src/flag-definitions.h
index c1fffec..841d326 100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -184,48 +184,63 @@
 DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony features")
 DEFINE_IMPLICATION(es_staging, harmony)
 
-DEFINE_BOOL(promise_extra, true, "additional V8 Promise functions")
-// Removing extra Promise functions is staged
-DEFINE_NEG_IMPLICATION(harmony, promise_extra)
+DEFINE_BOOL(promise_extra, false, "additional V8 Promise functions")
+// Removing extra Promise functions is shipped
+DEFINE_NEG_VALUE_IMPLICATION(harmony_shipping, promise_extra, true)
+
+DEFINE_BOOL(intl_extra, true, "additional V8 Intl functions")
+// Removing extra Intl functions is shipped
+DEFINE_NEG_VALUE_IMPLICATION(harmony_shipping, intl_extra, true)
 
 // Activate on ClusterFuzz.
 DEFINE_IMPLICATION(es_staging, harmony_regexp_lookbehind)
 DEFINE_IMPLICATION(es_staging, move_object_start)
 
 // Features that are still work in progress (behind individual flags).
+#ifdef V8_I18N_SUPPORT
 #define HARMONY_INPROGRESS(V)                                           \
-  V(harmony_object_observe, "harmony Object.observe")                   \
+  V(harmony_array_prototype_values, "harmony Array.prototype.values")   \
   V(harmony_function_sent, "harmony function.sent")                     \
   V(harmony_sharedarraybuffer, "harmony sharedarraybuffer")             \
   V(harmony_simd, "harmony simd")                                       \
   V(harmony_do_expressions, "harmony do-expressions")                   \
   V(harmony_regexp_property, "harmony unicode regexp property classes") \
-  V(harmony_string_padding, "harmony String-padding methods")
+  V(icu_case_mapping, "case mapping with ICU rather than Unibrow")      \
+  V(harmony_async_await, "harmony async-await")
+#else
+#define HARMONY_INPROGRESS(V)                                           \
+  V(harmony_array_prototype_values, "harmony Array.prototype.values")   \
+  V(harmony_function_sent, "harmony function.sent")                     \
+  V(harmony_sharedarraybuffer, "harmony sharedarraybuffer")             \
+  V(harmony_simd, "harmony simd")                                       \
+  V(harmony_do_expressions, "harmony do-expressions")                   \
+  V(harmony_regexp_property, "harmony unicode regexp property classes") \
+  V(harmony_async_await, "harmony async-await")
+#endif
 
 // Features that are complete (but still behind --harmony/es-staging flag).
 #define HARMONY_STAGED(V)                                                    \
+  V(harmony_for_in, "harmony for-in syntax")                                 \
   V(harmony_regexp_lookbehind, "harmony regexp lookbehind")                  \
   V(harmony_tailcalls, "harmony tail calls")                                 \
+  V(harmony_explicit_tailcalls, "harmony explicit tail calls")               \
   V(harmony_object_values_entries, "harmony Object.values / Object.entries") \
   V(harmony_object_own_property_descriptors,                                 \
     "harmony Object.getOwnPropertyDescriptors()")                            \
-  V(harmony_exponentiation_operator, "harmony exponentiation operator `**`")
+  V(harmony_string_padding, "harmony String-padding methods")
 
 // Features that are shipping (turned on by default, but internal flag remains).
 #define HARMONY_SHIPPING(V)                                           \
-  V(harmony_array_prototype_values, "harmony Array.prototype.values") \
   V(harmony_function_name, "harmony Function name inference")         \
   V(harmony_instanceof, "harmony instanceof support")                 \
   V(harmony_iterator_close, "harmony iterator finalization")          \
   V(harmony_unicode_regexps, "harmony unicode regexps")               \
   V(harmony_regexp_exec, "harmony RegExp exec override behavior")     \
-  V(harmony_sloppy, "harmony features in sloppy mode")                \
-  V(harmony_sloppy_let, "harmony let in sloppy mode")                 \
-  V(harmony_sloppy_function, "harmony sloppy function block scoping") \
   V(harmony_regexp_subclass, "harmony regexp subclassing")            \
   V(harmony_restrictive_declarations,                                 \
     "harmony limitations on sloppy mode function declarations")       \
-  V(harmony_species, "harmony Symbol.species")
+  V(harmony_species, "harmony Symbol.species")                        \
+  V(harmony_exponentiation_operator, "harmony exponentiation operator `**`")
 
 // Once a shipping feature has proved stable in the wild, it will be dropped
 // from HARMONY_SHIPPING, all occurrences of the FLAG_ variable are removed,
@@ -250,16 +265,14 @@
 HARMONY_SHIPPING(FLAG_SHIPPING_FEATURES)
 #undef FLAG_SHIPPING_FEATURES
 
-
-// Feature dependencies.
-DEFINE_IMPLICATION(harmony_sloppy_let, harmony_sloppy)
-DEFINE_IMPLICATION(harmony_sloppy_function, harmony_sloppy)
-
 // Flags for experimental implementation features.
 DEFINE_BOOL(compiled_keyed_generic_loads, false,
             "use optimizing compiler to generate keyed generic load stubs")
 DEFINE_BOOL(allocation_site_pretenuring, true,
             "pretenure with allocation sites")
+DEFINE_BOOL(page_promotion, true, "promote pages based on utilization")
+DEFINE_INT(page_promotion_threshold, 70,
+           "min percentage of live bytes on a page to enable fast evacuation")
 DEFINE_BOOL(trace_pretenuring, false,
             "trace pretenuring decisions of HAllocate instructions")
 DEFINE_BOOL(trace_pretenuring_statistics, false,
@@ -268,7 +281,6 @@
 DEFINE_BOOL(track_double_fields, true, "track fields with double values")
 DEFINE_BOOL(track_heap_object_fields, true, "track fields with heap values")
 DEFINE_BOOL(track_computed_fields, true, "track computed boilerplate fields")
-DEFINE_BOOL(harmony_instanceof_opt, true, "optimize ES6 instanceof support")
 DEFINE_IMPLICATION(track_double_fields, track_fields)
 DEFINE_IMPLICATION(track_heap_object_fields, track_fields)
 DEFINE_IMPLICATION(track_computed_fields, track_fields)
@@ -291,13 +303,22 @@
 // Flags for Ignition.
 DEFINE_BOOL(ignition, false, "use ignition interpreter")
 DEFINE_BOOL(ignition_eager, true, "eagerly compile and parse with ignition")
+DEFINE_BOOL(ignition_generators, false,
+            "enable experimental ignition support for generators")
 DEFINE_STRING(ignition_filter, "*", "filter for ignition interpreter")
+DEFINE_BOOL(ignition_peephole, true, "use ignition peephole optimizer")
 DEFINE_BOOL(print_bytecode, false,
             "print bytecode generated by ignition interpreter")
 DEFINE_BOOL(trace_ignition, false,
             "trace the bytecodes executed by the ignition interpreter")
 DEFINE_BOOL(trace_ignition_codegen, false,
             "trace the codegen of ignition interpreter bytecode handlers")
+DEFINE_BOOL(trace_ignition_dispatches, false,
+            "traces the dispatches to bytecode handlers by the ignition "
+            "interpreter")
+DEFINE_STRING(trace_ignition_dispatches_output_file, nullptr,
+              "the file to which the bytecode handler dispatch table is "
+              "written (by default, the table is not written to a file)")
 
 // Flags for Crankshaft.
 DEFINE_BOOL(crankshaft, true, "use crankshaft")
@@ -404,6 +425,7 @@
 DEFINE_BOOL(turbo, false, "enable TurboFan compiler")
 DEFINE_IMPLICATION(turbo, turbo_asm_deoptimization)
 DEFINE_BOOL(turbo_shipping, true, "enable TurboFan compiler on subset")
+DEFINE_BOOL(turbo_from_bytecode, false, "enable building graphs from bytecode")
 DEFINE_BOOL(turbo_greedy_regalloc, false, "use the greedy register allocator")
 DEFINE_BOOL(turbo_sp_frame_access, false,
             "use stack pointer-relative access to frame wherever possible")
@@ -427,7 +449,6 @@
 DEFINE_BOOL(turbo_verify, DEBUG_BOOL, "verify TurboFan graphs at each phase")
 DEFINE_BOOL(turbo_stats, false, "print TurboFan statistics")
 DEFINE_BOOL(turbo_splitting, true, "split nodes during scheduling in TurboFan")
-DEFINE_BOOL(turbo_types, true, "use typed lowering in TurboFan")
 DEFINE_BOOL(turbo_source_positions, false,
             "track source code positions when building TurboFan IR")
 DEFINE_IMPLICATION(trace_turbo, turbo_source_positions)
@@ -443,7 +464,6 @@
             "verify register allocation in TurboFan")
 DEFINE_BOOL(turbo_move_optimization, true, "optimize gap moves in TurboFan")
 DEFINE_BOOL(turbo_jt, true, "enable jump threading in TurboFan")
-DEFINE_BOOL(turbo_osr, true, "enable OSR in TurboFan")
 DEFINE_BOOL(turbo_stress_loop_peeling, false,
             "stress loop peeling optimization")
 DEFINE_BOOL(turbo_cf_optimization, true, "optimize control flow in TurboFan")
@@ -458,6 +478,8 @@
 
 // Flags for native WebAssembly.
 DEFINE_BOOL(expose_wasm, false, "expose WASM interface to JavaScript")
+DEFINE_INT(wasm_num_compilation_tasks, 0,
+           "number of parallel compilation tasks for wasm")
 DEFINE_BOOL(trace_wasm_encoder, false, "trace encoding of wasm code")
 DEFINE_BOOL(trace_wasm_decoder, false, "trace decoding of wasm code")
 DEFINE_BOOL(trace_wasm_decode_time, false, "trace decoding time of wasm code")
@@ -471,10 +493,13 @@
 DEFINE_BOOL(wasm_loop_assignment_analysis, true,
             "perform loop assignment analysis for WASM")
 
+DEFINE_BOOL(validate_asm, false, "validate asm.js modules before compiling")
 DEFINE_BOOL(enable_simd_asmjs, false, "enable SIMD.js in asm.js stdlib")
 
 DEFINE_BOOL(dump_wasm_module, false, "dump WASM module bytes")
 DEFINE_STRING(dump_wasm_module_path, NULL, "directory to dump wasm modules to")
+DEFINE_BOOL(print_wasm_code_size, false,
+            "print the generated code size for each wasm module")
 
 DEFINE_INT(typed_array_max_size_in_heap, 64,
            "threshold for in-heap typed array")
@@ -569,6 +594,8 @@
 DEFINE_BOOL(lazy, true, "use lazy compilation")
 DEFINE_BOOL(trace_opt, false, "trace lazy optimization")
 DEFINE_BOOL(trace_opt_stats, false, "trace lazy optimization statistics")
+DEFINE_BOOL(trace_file_names, false,
+            "include file names in trace-opt/trace-deopt output")
 DEFINE_BOOL(opt, true, "use adaptive optimizations")
 DEFINE_BOOL(always_opt, false, "always try to optimize functions")
 DEFINE_BOOL(always_osr, false, "always try to OSR functions")
diff --git a/src/frames-inl.h b/src/frames-inl.h
index 5ecbd45..998be23 100644
--- a/src/frames-inl.h
+++ b/src/frames-inl.h
@@ -199,11 +199,6 @@
 }
 
 
-inline Object* JavaScriptFrame::receiver() const {
-  return GetParameter(-1);
-}
-
-
 inline void JavaScriptFrame::set_receiver(Object* value) {
   Memory::Object_at(GetParameterSlot(-1)) = value;
 }
@@ -214,11 +209,6 @@
 }
 
 
-inline JSFunction* JavaScriptFrame::function() const {
-  return JSFunction::cast(function_slot_object());
-}
-
-
 inline Object* JavaScriptFrame::function_slot_object() const {
   const int offset = JavaScriptFrameConstants::kFunctionOffset;
   return Memory::Object_at(fp() + offset);
@@ -288,6 +278,28 @@
   return static_cast<JavaScriptFrame*>(frame);
 }
 
+inline StandardFrame* StackTraceFrameIterator::frame() const {
+  StackFrame* frame = iterator_.frame();
+  DCHECK(frame->is_java_script() || frame->is_arguments_adaptor() ||
+         frame->is_wasm());
+  return static_cast<StandardFrame*>(frame);
+}
+
+bool StackTraceFrameIterator::is_javascript() const {
+  return frame()->is_java_script();
+}
+
+bool StackTraceFrameIterator::is_wasm() const { return frame()->is_wasm(); }
+
+JavaScriptFrame* StackTraceFrameIterator::javascript_frame() const {
+  DCHECK(is_javascript());
+  return static_cast<JavaScriptFrame*>(frame());
+}
+
+WasmFrame* StackTraceFrameIterator::wasm_frame() const {
+  DCHECK(is_wasm());
+  return static_cast<WasmFrame*>(frame());
+}
 
 inline StackFrame* SafeStackFrameIterator::frame() const {
   DCHECK(!done());
diff --git a/src/frames.cc b/src/frames.cc
index 0e57429..a8fe6bb 100644
--- a/src/frames.cc
+++ b/src/frames.cc
@@ -16,6 +16,7 @@
 #include "src/safepoint-table.h"
 #include "src/string-stream.h"
 #include "src/vm-state-inl.h"
+#include "src/wasm/wasm-module.h"
 
 namespace v8 {
 namespace internal {
@@ -104,17 +105,15 @@
   StackFrame::Type type = ExitFrame::GetStateForFramePointer(
       Isolate::c_entry_fp(top), &state);
   handler_ = StackHandler::FromAddress(Isolate::handler(top));
-  if (SingletonFor(type) == NULL) return;
   frame_ = SingletonFor(type, &state);
 }
 
 
 StackFrame* StackFrameIteratorBase::SingletonFor(StackFrame::Type type,
                                              StackFrame::State* state) {
-  if (type == StackFrame::NONE) return NULL;
   StackFrame* result = SingletonFor(type);
-  DCHECK(result != NULL);
-  result->state_ = *state;
+  DCHECK((!result) == (type == StackFrame::NONE));
+  if (result) result->state_ = *state;
   return result;
 }
 
@@ -162,28 +161,29 @@
 
 // -------------------------------------------------------------------------
 
-
 StackTraceFrameIterator::StackTraceFrameIterator(Isolate* isolate)
-    : JavaScriptFrameIterator(isolate) {
-  if (!done() && !IsValidFrame()) Advance();
+    : iterator_(isolate) {
+  if (!done() && !IsValidFrame(iterator_.frame())) Advance();
 }
 
 
 void StackTraceFrameIterator::Advance() {
-  while (true) {
-    JavaScriptFrameIterator::Advance();
-    if (done()) return;
-    if (IsValidFrame()) return;
-  }
+  do {
+    iterator_.Advance();
+  } while (!done() && !IsValidFrame(iterator_.frame()));
 }
 
-
-bool StackTraceFrameIterator::IsValidFrame() {
-    if (!frame()->function()->IsJSFunction()) return false;
-    Object* script = frame()->function()->shared()->script();
+bool StackTraceFrameIterator::IsValidFrame(StackFrame* frame) const {
+  if (frame->is_java_script()) {
+    JavaScriptFrame* jsFrame = static_cast<JavaScriptFrame*>(frame);
+    if (!jsFrame->function()->IsJSFunction()) return false;
+    Object* script = jsFrame->function()->shared()->script();
     // Don't show functions from native scripts to user.
     return (script->IsScript() &&
             Script::TYPE_NATIVE != Script::cast(script)->type());
+  }
+  // apart from javascript, only wasm is valid
+  return frame->is_wasm();
 }
 
 
@@ -230,10 +230,8 @@
   } else {
     return;
   }
-  if (SingletonFor(type) == NULL) return;
   frame_ = SingletonFor(type, &state);
-  DCHECK(frame_);
-  Advance();
+  if (frame_) Advance();
 }
 
 
@@ -261,12 +259,8 @@
   // Advance to the previous frame.
   StackFrame::State state;
   StackFrame::Type type = frame_->GetCallerState(&state);
-  if (SingletonFor(type) == NULL) {
-    frame_ = NULL;
-    return;
-  }
   frame_ = SingletonFor(type, &state);
-  DCHECK(frame_);
+  if (!frame_) return;
 
   // Check that we have actually moved to the previous frame in the stack.
   if (frame_->sp() < last_sp || frame_->fp() < last_fp) {
@@ -493,10 +487,10 @@
     case INTERNAL:
     case CONSTRUCT:
     case ARGUMENTS_ADAPTOR:
-      return candidate;
-    case JS_TO_WASM:
     case WASM_TO_JS:
     case WASM:
+      return candidate;
+    case JS_TO_WASM:
     case JAVA_SCRIPT:
     case OPTIMIZED:
     case INTERPRETED:
@@ -624,7 +618,6 @@
   state->constant_pool_address = NULL;
 }
 
-
 Address StandardFrame::GetExpressionAddress(int n) const {
   const int offset = StandardFrameConstants::kExpressionsOffset;
   return fp() + offset - n * kPointerSize;
@@ -711,7 +704,8 @@
       (frame_header_size + StandardFrameConstants::kFixedFrameSizeAboveFp);
 
   Object** frame_header_base = &Memory::Object_at(fp() - frame_header_size);
-  Object** frame_header_limit = &Memory::Object_at(fp());
+  Object** frame_header_limit =
+      &Memory::Object_at(fp() - StandardFrameConstants::kCPSlotSize);
   Object** parameters_base = &Memory::Object_at(sp());
   Object** parameters_limit = frame_header_base - slot_space / kPointerSize;
 
@@ -854,17 +848,23 @@
   functions->Add(function());
 }
 
-
-void JavaScriptFrame::Summarize(List<FrameSummary>* functions) {
+void JavaScriptFrame::Summarize(List<FrameSummary>* functions,
+                                FrameSummary::Mode mode) const {
   DCHECK(functions->length() == 0);
   Code* code = LookupCode();
   int offset = static_cast<int>(pc() - code->instruction_start());
   AbstractCode* abstract_code = AbstractCode::cast(code);
   FrameSummary summary(receiver(), function(), abstract_code, offset,
-                       IsConstructor());
+                       IsConstructor(), mode);
   functions->Add(summary);
 }
 
+JSFunction* JavaScriptFrame::function() const {
+  return JSFunction::cast(function_slot_object());
+}
+
+Object* JavaScriptFrame::receiver() const { return GetParameter(-1); }
+
 int JavaScriptFrame::LookupExceptionHandlerInTable(
     int* stack_depth, HandlerTable::CatchPrediction* prediction) {
   Code* code = LookupCode();
@@ -944,16 +944,6 @@
   }
 }
 
-
-void JavaScriptFrame::RestoreOperandStack(FixedArray* store) {
-  int operands_count = store->length();
-  DCHECK_LE(operands_count, ComputeOperandsCount());
-  for (int i = 0; i < operands_count; i++) {
-    DCHECK_EQ(GetOperand(i), isolate()->heap()->the_hole_value());
-    Memory::Object_at(GetOperandSlot(i)) = store->get(i);
-  }
-}
-
 namespace {
 
 bool CannotDeoptFromAsmCode(Code* code, JSFunction* function) {
@@ -965,7 +955,7 @@
 
 FrameSummary::FrameSummary(Object* receiver, JSFunction* function,
                            AbstractCode* abstract_code, int code_offset,
-                           bool is_constructor)
+                           bool is_constructor, Mode mode)
     : receiver_(receiver, function->GetIsolate()),
       function_(function),
       abstract_code_(abstract_code),
@@ -973,7 +963,14 @@
       is_constructor_(is_constructor) {
   DCHECK(abstract_code->IsBytecodeArray() ||
          Code::cast(abstract_code)->kind() != Code::OPTIMIZED_FUNCTION ||
-         CannotDeoptFromAsmCode(Code::cast(abstract_code), function));
+         CannotDeoptFromAsmCode(Code::cast(abstract_code), function) ||
+         mode == kApproximateSummary);
+}
+
+FrameSummary FrameSummary::GetFirst(JavaScriptFrame* frame) {
+  List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
+  frame->Summarize(&frames);
+  return frames.first();
 }
 
 void FrameSummary::Print() {
@@ -987,8 +984,12 @@
     Code* code = abstract_code_->GetCode();
     if (code->kind() == Code::FUNCTION) PrintF(" UNOPT ");
     if (code->kind() == Code::OPTIMIZED_FUNCTION) {
-      DCHECK(CannotDeoptFromAsmCode(code, *function()));
-      PrintF(" ASM ");
+      if (function()->shared()->asm_function()) {
+        DCHECK(CannotDeoptFromAsmCode(code, *function()));
+        PrintF(" ASM ");
+      } else {
+        PrintF(" OPT (approximate)");
+      }
     }
   } else {
     PrintF(" BYTECODE ");
@@ -996,8 +997,8 @@
   PrintF("\npc: %d\n", code_offset_);
 }
 
-
-void OptimizedFrame::Summarize(List<FrameSummary>* frames) {
+void OptimizedFrame::Summarize(List<FrameSummary>* frames,
+                               FrameSummary::Mode mode) const {
   DCHECK(frames->length() == 0);
   DCHECK(is_optimized());
 
@@ -1012,6 +1013,13 @@
   DisallowHeapAllocation no_gc;
   int deopt_index = Safepoint::kNoDeoptimizationIndex;
   DeoptimizationInputData* const data = GetDeoptimizationData(&deopt_index);
+  if (deopt_index == Safepoint::kNoDeoptimizationIndex) {
+    DCHECK(data == nullptr);
+    if (mode == FrameSummary::kApproximateSummary) {
+      return JavaScriptFrame::Summarize(frames, mode);
+    }
+    FATAL("Missing deoptimization information for OptimizedFrame::Summarize.");
+  }
   FixedArray* const literal_array = data->LiteralArray();
 
   TranslationIterator it(data->TranslationByteArray(),
@@ -1134,9 +1142,10 @@
 
   SafepointEntry safepoint_entry = code->GetSafepointEntry(pc());
   *deopt_index = safepoint_entry.deoptimization_index();
-  DCHECK(*deopt_index != Safepoint::kNoDeoptimizationIndex);
-
-  return DeoptimizationInputData::cast(code->deoptimization_data());
+  if (*deopt_index != Safepoint::kNoDeoptimizationIndex) {
+    return DeoptimizationInputData::cast(code->deoptimization_data());
+  }
+  return nullptr;
 }
 
 
@@ -1155,6 +1164,8 @@
   DisallowHeapAllocation no_gc;
   int deopt_index = Safepoint::kNoDeoptimizationIndex;
   DeoptimizationInputData* const data = GetDeoptimizationData(&deopt_index);
+  DCHECK_NOT_NULL(data);
+  DCHECK_NE(Safepoint::kNoDeoptimizationIndex, deopt_index);
   FixedArray* const literal_array = data->LiteralArray();
 
   TranslationIterator it(data->TranslationByteArray(),
@@ -1228,15 +1239,15 @@
   SetExpression(index, Smi::FromInt(raw_offset));
 }
 
-Object* InterpretedFrame::GetBytecodeArray() const {
+BytecodeArray* InterpretedFrame::GetBytecodeArray() const {
   const int index = InterpreterFrameConstants::kBytecodeArrayExpressionIndex;
   DCHECK_EQ(
       InterpreterFrameConstants::kBytecodeArrayFromFp,
       InterpreterFrameConstants::kExpressionsOffset - index * kPointerSize);
-  return GetExpression(index);
+  return BytecodeArray::cast(GetExpression(index));
 }
 
-void InterpretedFrame::PatchBytecodeArray(Object* bytecode_array) {
+void InterpretedFrame::PatchBytecodeArray(BytecodeArray* bytecode_array) {
   const int index = InterpreterFrameConstants::kBytecodeArrayExpressionIndex;
   DCHECK_EQ(
       InterpreterFrameConstants::kBytecodeArrayFromFp,
@@ -1244,15 +1255,25 @@
   SetExpression(index, bytecode_array);
 }
 
-Object* InterpretedFrame::GetInterpreterRegister(int register_index) const {
+Object* InterpretedFrame::ReadInterpreterRegister(int register_index) const {
   const int index = InterpreterFrameConstants::kRegisterFileExpressionIndex;
   DCHECK_EQ(
-      InterpreterFrameConstants::kRegisterFilePointerFromFp,
+      InterpreterFrameConstants::kRegisterFileFromFp,
       InterpreterFrameConstants::kExpressionsOffset - index * kPointerSize);
   return GetExpression(index + register_index);
 }
 
-void InterpretedFrame::Summarize(List<FrameSummary>* functions) {
+void InterpretedFrame::WriteInterpreterRegister(int register_index,
+                                                Object* value) {
+  const int index = InterpreterFrameConstants::kRegisterFileExpressionIndex;
+  DCHECK_EQ(
+      InterpreterFrameConstants::kRegisterFileFromFp,
+      InterpreterFrameConstants::kExpressionsOffset - index * kPointerSize);
+  return SetExpression(index + register_index, value);
+}
+
+void InterpretedFrame::Summarize(List<FrameSummary>* functions,
+                                 FrameSummary::Mode mode) const {
   DCHECK(functions->length() == 0);
   AbstractCode* abstract_code =
       AbstractCode::cast(function()->shared()->bytecode_array());
@@ -1315,6 +1336,32 @@
   return fp() + ExitFrameConstants::kCallerSPOffset;
 }
 
+Object* WasmFrame::wasm_obj() {
+  FixedArray* deopt_data = LookupCode()->deoptimization_data();
+  DCHECK(deopt_data->length() == 2);
+  return deopt_data->get(0);
+}
+
+uint32_t WasmFrame::function_index() {
+  FixedArray* deopt_data = LookupCode()->deoptimization_data();
+  DCHECK(deopt_data->length() == 2);
+  Object* func_index_obj = deopt_data->get(1);
+  if (func_index_obj->IsUndefined()) return static_cast<uint32_t>(-1);
+  if (func_index_obj->IsSmi()) return Smi::cast(func_index_obj)->value();
+  DCHECK(func_index_obj->IsHeapNumber());
+  uint32_t val = static_cast<uint32_t>(-1);
+  func_index_obj->ToUint32(&val);
+  DCHECK(val != static_cast<uint32_t>(-1));
+  return val;
+}
+
+Object* WasmFrame::function_name() {
+  Object* wasm_object = wasm_obj();
+  if (wasm_object->IsUndefined()) return wasm_object;
+  Handle<JSObject> wasm = handle(JSObject::cast(wasm_object));
+  return *wasm::GetWasmFunctionName(wasm, function_index());
+}
+
 namespace {
 
 
@@ -1364,14 +1411,20 @@
       int offset = static_cast<int>(pc - code->instruction_start());
       int source_pos = code->SourcePosition(offset);
       int line = script->GetLineNumber(source_pos) + 1;
-      accumulator->Add(":%d", line);
+      accumulator->Add(":%d] [pc=%p]", line, pc);
+    } else if (is_interpreted()) {
+      const InterpretedFrame* iframe =
+          reinterpret_cast<const InterpretedFrame*>(this);
+      BytecodeArray* bytecodes = iframe->GetBytecodeArray();
+      int offset = iframe->GetBytecodeOffset();
+      int source_pos = bytecodes->SourcePosition(offset);
+      int line = script->GetLineNumber(source_pos) + 1;
+      accumulator->Add(":%d] [bytecode=%p offset=%d]", line, bytecodes, offset);
     } else {
       int function_start_pos = shared->start_position();
       int line = script->GetLineNumber(function_start_pos) + 1;
-      accumulator->Add(":~%d", line);
+      accumulator->Add(":~%d] [pc=%p]", line, pc);
     }
-
-    accumulator->Add("] [pc=%p] ", pc);
   }
 
   accumulator->Add("(this=%o", receiver);
@@ -1632,7 +1685,8 @@
   Page* page = Page::FromAddress(inner_pointer);
 
   DCHECK_EQ(page->owner(), heap->code_space());
-  heap->mark_compact_collector()->SweepOrWaitUntilSweepingCompleted(page);
+  heap->mark_compact_collector()->sweeper().SweepOrWaitUntilSweepingCompleted(
+      page);
 
   Address addr = page->skip_list()->StartFor(inner_pointer);
 
diff --git a/src/frames.h b/src/frames.h
index f6806d7..4163d6f 100644
--- a/src/frames.h
+++ b/src/frames.h
@@ -324,31 +324,22 @@
       StandardFrameConstants::kFixedFrameSizeFromFp + 3 * kPointerSize;
 
   // FP-relative.
+  static const int kLastParamFromFp = StandardFrameConstants::kCallerSPOffset;
   static const int kNewTargetFromFp =
       -StandardFrameConstants::kFixedFrameSizeFromFp - 1 * kPointerSize;
   static const int kBytecodeArrayFromFp =
       -StandardFrameConstants::kFixedFrameSizeFromFp - 2 * kPointerSize;
   static const int kBytecodeOffsetFromFp =
       -StandardFrameConstants::kFixedFrameSizeFromFp - 3 * kPointerSize;
-  static const int kRegisterFilePointerFromFp =
+  static const int kRegisterFileFromFp =
       -StandardFrameConstants::kFixedFrameSizeFromFp - 4 * kPointerSize;
 
-  static const int kExpressionsOffset = kRegisterFilePointerFromFp;
+  static const int kExpressionsOffset = kRegisterFileFromFp;
 
   // Expression index for {StandardFrame::GetExpressionAddress}.
   static const int kBytecodeArrayExpressionIndex = -2;
   static const int kBytecodeOffsetExpressionIndex = -1;
   static const int kRegisterFileExpressionIndex = 0;
-
-  // Register file pointer relative.
-  static const int kLastParamFromRegisterPointer =
-      StandardFrameConstants::kFixedFrameSize + 4 * kPointerSize;
-
-  static const int kBytecodeOffsetFromRegisterPointer = 1 * kPointerSize;
-  static const int kBytecodeArrayFromRegisterPointer = 2 * kPointerSize;
-  static const int kNewTargetFromRegisterPointer = 3 * kPointerSize;
-  static const int kFunctionFromRegisterPointer = 4 * kPointerSize;
-  static const int kContextFromRegisterPointer = 5 * kPointerSize;
 };
 
 inline static int FPOffsetToFrameSlot(int frame_offset) {
@@ -640,8 +631,40 @@
   friend class StackFrameIteratorBase;
 };
 
+class JavaScriptFrame;
 
-class StandardFrame: public StackFrame {
+class FrameSummary BASE_EMBEDDED {
+ public:
+  // Mode for JavaScriptFrame::Summarize. Exact summary is required to produce
+  // an exact stack trace. It will trigger an assertion failure if that is not
+  // possible, e.g., because of missing deoptimization information. The
+  // approximate mode should produce a summary even without deoptimization
+  // information, but it might miss frames.
+  enum Mode { kExactSummary, kApproximateSummary };
+
+  FrameSummary(Object* receiver, JSFunction* function,
+               AbstractCode* abstract_code, int code_offset,
+               bool is_constructor, Mode mode = kExactSummary);
+
+  static FrameSummary GetFirst(JavaScriptFrame* frame);
+
+  Handle<Object> receiver() { return receiver_; }
+  Handle<JSFunction> function() { return function_; }
+  Handle<AbstractCode> abstract_code() { return abstract_code_; }
+  int code_offset() { return code_offset_; }
+  bool is_constructor() { return is_constructor_; }
+
+  void Print();
+
+ private:
+  Handle<Object> receiver_;
+  Handle<JSFunction> function_;
+  Handle<AbstractCode> abstract_code_;
+  int code_offset_;
+  bool is_constructor_;
+};
+
+class StandardFrame : public StackFrame {
  public:
   // Testers.
   bool is_standard() const override { return true; }
@@ -701,36 +724,19 @@
   friend class SafeStackFrameIterator;
 };
 
-
-class FrameSummary BASE_EMBEDDED {
- public:
-  FrameSummary(Object* receiver, JSFunction* function,
-               AbstractCode* abstract_code, int code_offset,
-               bool is_constructor);
-
-  Handle<Object> receiver() { return receiver_; }
-  Handle<JSFunction> function() { return function_; }
-  Handle<AbstractCode> abstract_code() { return abstract_code_; }
-  int code_offset() { return code_offset_; }
-  bool is_constructor() { return is_constructor_; }
-
-  void Print();
-
- private:
-  Handle<Object> receiver_;
-  Handle<JSFunction> function_;
-  Handle<AbstractCode> abstract_code_;
-  int code_offset_;
-  bool is_constructor_;
-};
-
 class JavaScriptFrame : public StandardFrame {
  public:
   Type type() const override { return JAVA_SCRIPT; }
 
+  // Build a list with summaries for this frame including all inlined frames.
+  virtual void Summarize(
+      List<FrameSummary>* frames,
+      FrameSummary::Mode mode = FrameSummary::kExactSummary) const;
+
   // Accessors.
-  inline JSFunction* function() const;
-  inline Object* receiver() const;
+  virtual JSFunction* function() const;
+  virtual Object* receiver() const;
+
   inline void set_receiver(Object* value);
 
   // Access the parameters.
@@ -747,7 +753,6 @@
 
   // Generator support to preserve operand stack.
   void SaveOperandStack(FixedArray* store) const;
-  void RestoreOperandStack(FixedArray* store);
 
   // Debugger access.
   void SetParameterValue(int index, Object* value) const;
@@ -778,9 +783,6 @@
   // Return a list with JSFunctions of this frame.
   virtual void GetFunctions(List<JSFunction*>* functions) const;
 
-  // Build a list with summaries for this frame including all inlined frames.
-  virtual void Summarize(List<FrameSummary>* frames);
-
   // Lookup exception handler for current {pc}, returns -1 if none found. Also
   // returns data associated with the handler site specific to the frame type:
   //  - JavaScriptFrame : Data is the stack depth at entry of the try-block.
@@ -857,7 +859,9 @@
   // is the top-most activation)
   void GetFunctions(List<JSFunction*>* functions) const override;
 
-  void Summarize(List<FrameSummary>* frames) override;
+  void Summarize(
+      List<FrameSummary>* frames,
+      FrameSummary::Mode mode = FrameSummary::kExactSummary) const override;
 
   // Lookup exception handler for current {pc}, returns -1 if none found.
   int LookupExceptionHandlerInTable(
@@ -893,17 +897,20 @@
   void PatchBytecodeOffset(int new_offset);
 
   // Returns the frame's current bytecode array.
-  Object* GetBytecodeArray() const;
+  BytecodeArray* GetBytecodeArray() const;
 
   // Updates the frame's BytecodeArray with |bytecode_array|. Used by the
   // debugger to swap execution onto a BytecodeArray patched with breakpoints.
-  void PatchBytecodeArray(Object* bytecode_array);
+  void PatchBytecodeArray(BytecodeArray* bytecode_array);
 
   // Access to the interpreter register file for this frame.
-  Object* GetInterpreterRegister(int register_index) const;
+  Object* ReadInterpreterRegister(int register_index) const;
+  void WriteInterpreterRegister(int register_index, Object* value);
 
   // Build a list with summaries for this frame including all inlined frames.
-  void Summarize(List<FrameSummary>* frames) override;
+  void Summarize(
+      List<FrameSummary>* frames,
+      FrameSummary::Mode mode = FrameSummary::kExactSummary) const override;
 
  protected:
   inline explicit InterpretedFrame(StackFrameIteratorBase* iterator);
@@ -961,6 +968,11 @@
   // Determine the code for the frame.
   Code* unchecked_code() const override;
 
+  Object* wasm_obj();
+  uint32_t function_index();
+
+  Object* function_name();
+
   static WasmFrame* cast(StackFrame* frame) {
     DCHECK(frame->is_wasm());
     return static_cast<WasmFrame*>(frame);
@@ -1143,17 +1155,25 @@
   StackFrameIterator iterator_;
 };
 
-// NOTE: The stack trace frame iterator is an iterator that only
-// traverse proper JavaScript frames; that is JavaScript frames that
-// have proper JavaScript functions. This excludes the problematic
-// functions in runtime.js.
-class StackTraceFrameIterator: public JavaScriptFrameIterator {
+// NOTE: The stack trace frame iterator is an iterator that only traverse proper
+// JavaScript frames that have proper JavaScript functions and WASM frames.
+// This excludes the problematic functions in runtime.js.
+class StackTraceFrameIterator BASE_EMBEDDED {
  public:
   explicit StackTraceFrameIterator(Isolate* isolate);
+  bool done() const { return iterator_.done(); }
   void Advance();
 
+  inline StandardFrame* frame() const;
+
+  inline bool is_javascript() const;
+  inline bool is_wasm() const;
+  inline JavaScriptFrame* javascript_frame() const;
+  inline WasmFrame* wasm_frame() const;
+
  private:
-  bool IsValidFrame();
+  StackFrameIterator iterator_;
+  bool IsValidFrame(StackFrame* frame) const;
 };
 
 
diff --git a/src/full-codegen/arm/full-codegen-arm.cc b/src/full-codegen/arm/full-codegen-arm.cc
index 81c5ff2..91253e3 100644
--- a/src/full-codegen/arm/full-codegen-arm.cc
+++ b/src/full-codegen/arm/full-codegen-arm.cc
@@ -176,7 +176,8 @@
       __ push(r1);
       __ Push(info->scope()->GetScopeInfo(info->isolate()));
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -232,7 +233,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -294,7 +296,8 @@
   }
 
   // Visit the declarations and body.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -307,7 +310,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     __ LoadRoot(ip, Heap::kStackLimitRootIndex);
     __ cmp(sp, Operand(ip));
@@ -405,11 +409,11 @@
   EmitProfilingCounterReset();
 
   __ bind(&ok);
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -468,6 +472,9 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+}
 
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
@@ -728,7 +735,7 @@
 
   Label skip;
   if (should_normalize) __ b(&skip);
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ LoadRoot(ip, Heap::kTrueValueRootIndex);
     __ cmp(r0, ip);
@@ -761,15 +768,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                        : isolate()->factory()->undefined_value(),
-                    zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -788,7 +793,7 @@
         __ LoadRoot(r0, Heap::kTheHoleValueRootIndex);
         __ str(r0, ContextMemOperand(cp, variable->index()));
         // No write barrier since the_hole_value is in old space.
-        PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+        PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -809,6 +814,7 @@
       __ Push(r2, r0);
       __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -854,7 +860,7 @@
                                 kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET,
                                 OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -866,6 +872,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -897,7 +904,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -946,7 +953,7 @@
 
     Label skip;
     __ b(&skip);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ LoadRoot(ip, Heap::kTrueValueRootIndex);
     __ cmp(r0, ip);
     __ b(ne, &next_test);
@@ -975,12 +982,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -1013,15 +1020,13 @@
   ToObjectStub stub(isolate());
   __ CallStub(&stub);
   __ bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ push(r0);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime;
   __ CheckEnumCache(&call_runtime);
 
@@ -1035,7 +1040,7 @@
   __ bind(&call_runtime);
   __ push(r0);  // Duplicate the enumerable object on the stack.
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
 
   // If we got a map from the runtime call, we can do a fast
   // modification check. Otherwise, we got a fixed array, and we have
@@ -1076,7 +1081,7 @@
   __ Push(r1, r0);  // Smi and array
   __ ldr(r1, FieldMemOperand(r0, FixedArray::kLengthOffset));
   __ Push(r1);  // Fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ mov(r0, Operand(Smi::FromInt(0)));
   __ Push(r0);  // Initial index.
 
@@ -1118,7 +1123,7 @@
   __ push(r1);  // Enumerable.
   __ push(r3);  // Current entry.
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ mov(r3, Operand(r0));
   __ LoadRoot(ip, Heap::kUndefinedValueRootIndex);
   __ cmp(r0, ip);
@@ -1131,11 +1136,11 @@
   // Perform the assignment as if via '='.
   { EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1154,7 +1159,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(&exit);
   decrement_loop_depth();
 }
@@ -1284,17 +1289,12 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ ldr(r0, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ CompareRoot(r0, Heap::kTheHoleValueRootIndex);
-      if (local->mode() == CONST_LEGACY) {
-        __ LoadRoot(r0, Heap::kUndefinedValueRootIndex, eq);
-      } else {  // LET || CONST
-        __ b(ne, done);
-        __ mov(r0, Operand(var->name()));
-        __ push(r0);
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ b(ne, done);
+      __ mov(r0, Operand(var->name()));
+      __ push(r0);
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ jmp(done);
   }
@@ -1318,7 +1318,7 @@
                                          TypeofMode typeof_mode) {
   // Record position before possible IC call.
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1351,10 +1351,6 @@
           __ push(r0);
           __ CallRuntime(Runtime::kThrowReferenceError);
           __ bind(&done);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ LoadRoot(r0, Heap::kUndefinedValueRootIndex, eq);
         }
         context()->Plug(r0);
         break;
@@ -1427,8 +1423,9 @@
   } else {
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in r0.
@@ -1464,7 +1461,7 @@
             __ ldr(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
 
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
@@ -1498,7 +1495,7 @@
         DCHECK(property->emit_store());
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
 
       case ObjectLiteral::Property::GETTER:
@@ -1556,7 +1553,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1629,7 +1626,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1659,7 +1656,8 @@
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1679,7 +1677,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1694,7 +1693,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1763,23 +1761,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1799,7 +1801,7 @@
     }
 
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1811,7 +1813,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(r0);
       break;
     case NAMED_PROPERTY:
@@ -1840,21 +1842,26 @@
   // this.  It stays on the stack while we update the iterator.
   VisitForStackValue(expr->expression());
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ jmp(&suspend);
   __ bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, r0 holds the generator object.
   __ RecordGeneratorContinuation();
-  __ pop(r1);
-  __ cmp(r1, Operand(Smi::FromInt(JSGeneratorObject::RETURN)));
-  __ b(ne, &resume);
-  __ push(result_register());
+  __ ldr(r1, FieldMemOperand(r0, JSGeneratorObject::kResumeModeOffset));
+  __ ldr(r0, FieldMemOperand(r0, JSGeneratorObject::kInputOffset));
+  STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
+  STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
+  __ cmp(r1, Operand(Smi::FromInt(JSGeneratorObject::kReturn)));
+  __ b(lt, &resume);
+  __ Push(result_register());
+  __ b(gt, &exception);
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -1870,7 +1877,7 @@
   __ b(eq, &post_runtime);
   __ push(r0);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ bind(&post_runtime);
   PopOperand(result_register());
   EmitReturnSequence();
@@ -1879,113 +1886,6 @@
   context()->Plug(result_register());
 }
 
-
-void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
-    Expression *value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  // The value stays in r0, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed.
-  // r1 will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(r1);
-
-  // Store input value into generator object.
-  __ str(result_register(),
-         FieldMemOperand(r1, JSGeneratorObject::kInputOffset));
-  __ mov(r2, result_register());
-  __ RecordWriteField(r1, JSGeneratorObject::kInputOffset, r2, r3,
-                      kLRHasBeenSaved, kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ ldr(cp, FieldMemOperand(r1, JSGeneratorObject::kContextOffset));
-  __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset));
-
-  // Load receiver and store as the first argument.
-  __ ldr(r2, FieldMemOperand(r1, JSGeneratorObject::kReceiverOffset));
-  __ push(r2);
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ ldr(r3, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
-  __ ldr(r3,
-         FieldMemOperand(r3, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ LoadRoot(r2, Heap::kTheHoleValueRootIndex);
-  Label push_argument_holes, push_frame;
-  __ bind(&push_argument_holes);
-  __ sub(r3, r3, Operand(Smi::FromInt(1)), SetCC);
-  __ b(mi, &push_frame);
-  __ push(r2);
-  __ jmp(&push_argument_holes);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ bind(&push_frame);
-  __ bl(&resume_frame);
-  __ jmp(&done);
-  __ bind(&resume_frame);
-  // lr = return address.
-  // fp = caller's frame pointer.
-  // pp = caller's constant pool (if FLAG_enable_embedded_constant_pool),
-  // cp = callee's context,
-  // r4 = callee's JS function.
-  __ PushStandardFrame(r4);
-
-  // Load the operand stack size.
-  __ ldr(r3, FieldMemOperand(r1, JSGeneratorObject::kOperandStackOffset));
-  __ ldr(r3, FieldMemOperand(r3, FixedArray::kLengthOffset));
-  __ SmiUntag(r3);
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ cmp(r3, Operand(0));
-    __ b(ne, &slow_resume);
-    __ ldr(r3, FieldMemOperand(r4, JSFunction::kCodeEntryOffset));
-
-    { ConstantPoolUnavailableScope constant_pool_unavailable(masm_);
-      if (FLAG_enable_embedded_constant_pool) {
-        // Load the new code object's constant pool pointer.
-        __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(r3);
-      }
-
-      __ ldr(r2, FieldMemOperand(r1, JSGeneratorObject::kContinuationOffset));
-      __ SmiUntag(r2);
-      __ add(r3, r3, r2);
-      __ mov(r2, Operand(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
-      __ str(r2, FieldMemOperand(r1, JSGeneratorObject::kContinuationOffset));
-      __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-      __ Jump(r3);
-    }
-    __ bind(&slow_resume);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  Label push_operand_holes, call_resume;
-  __ bind(&push_operand_holes);
-  __ sub(r3, r3, Operand(1), SetCC);
-  __ b(mi, &call_resume);
-  __ push(r2);
-  __ b(&push_operand_holes);
-  __ bind(&call_resume);
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  DCHECK(!result_register().is(r1));
-  __ Push(r1, result_register());
-  __ Push(Smi::FromInt(resume_mode));
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ stop("not-reached");
-
-  __ bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperands(Register reg1, Register reg2) {
   OperandStackDepthIncrement(2);
   __ Push(reg1, reg2);
@@ -2009,7 +1909,8 @@
 void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
   Label allocate, done_allocate;
 
-  __ Allocate(JSIteratorResult::kSize, r0, r2, r3, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, r0, r2, r3, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ b(&done_allocate);
 
   __ bind(&allocate);
@@ -2336,8 +2237,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       // Assignment to var.
       __ Push(var->name());
@@ -2359,25 +2259,6 @@
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
 
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ push(r0);
-      __ mov(r0, Operand(var->name()));
-      __ Push(cp, r0);  // Context and name.
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackAllocated() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, r1);
-      __ ldr(r2, location);
-      __ CompareRoot(r2, Heap::kTheHoleValueRootIndex);
-      __ b(ne, &skip);
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2400,7 +2281,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(r0);
 }
 
@@ -2445,44 +2326,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(r0);
-}
-
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      __ Move(LoadDescriptor::ReceiverRegister(), r0);
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      __ Move(LoadDescriptor::NameRegister(), r0);
-      PopOperand(LoadDescriptor::ReceiverRegister());
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(r0);
 }
 
@@ -2506,7 +2350,7 @@
   if (callee->IsVariableProxy()) {
     { StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the method prologue if it
     // is a sloppy mode method.
@@ -2519,7 +2363,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ ldr(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     __ ldr(ip, MemOperand(sp, 0));
     PushOperand(ip);
@@ -2558,6 +2403,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ str(r0, MemOperand(sp, kPointerSize));
@@ -2582,7 +2428,8 @@
   __ ldr(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
   __ Move(LoadDescriptor::NameRegister(), r0);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   __ ldr(ip, MemOperand(sp, 0));
@@ -2618,6 +2465,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ str(r0, MemOperand(sp, kPointerSize));
@@ -2637,7 +2485,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
     if (FLAG_trace) {
@@ -2658,13 +2506,12 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, r0);
 }
 
-
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
   // r4: copy of the first argument or undefined if it doesn't exist.
   if (arg_count > 0) {
     __ ldr(r4, MemOperand(sp, arg_count * kPointerSize));
@@ -2681,8 +2528,11 @@
   // r1: the start position of the scope the calls resides in.
   __ mov(r1, Operand(Smi::FromInt(scope()->start_position())));
 
+  // r0: the source position of the eval call.
+  __ mov(r0, Operand(Smi::FromInt(expr->position())));
+
   // Do the runtime call.
-  __ Push(r4, r3, r2, r1);
+  __ Push(r4, r3, r2, r1, r0);
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
 }
 
@@ -2703,7 +2553,7 @@
     __ Push(callee->name());
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperands(r0, r1);  // Function, receiver.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the
     // function and receiver and have the slow path jump around this
@@ -2731,7 +2581,7 @@
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
   // In a call to eval, we first call
-  // RuntimeHidden_asResolvePossiblyDirectEval to resolve the function we need
+  // Runtime_ResolvePossiblyDirectEval to resolve the function we need
   // to call.  Then we call the resolved function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
   int arg_count = args->length();
@@ -2747,12 +2597,12 @@
   // resolve eval.
   __ ldr(r1, MemOperand(sp, (arg_count + 1) * kPointerSize));
   __ push(r1);
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the stack with the resolved function.
   __ str(r0, MemOperand(sp, (arg_count + 1) * kPointerSize));
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
 
   // Record source position for debugger.
   SetCallPosition(expr);
@@ -2763,8 +2613,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, r0);
 }
 
@@ -2803,9 +2652,8 @@
   CallConstructStub stub(isolate());
   __ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(r0);
 }
 
@@ -2848,9 +2696,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->Plug(r0);
 }
 
@@ -3239,7 +3085,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to r1.
   int const argc = args->length() - 2;
   __ ldr(r1, MemOperand(sp, (argc + 1) * kPointerSize));
@@ -3247,8 +3093,7 @@
   __ mov(r0, Operand(argc));
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, r0);
 }
@@ -3298,12 +3143,6 @@
   context()->Plug(r0);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ LoadNativeContextSlot(Context::ORDINARY_HAS_INSTANCE_INDEX, r0);
-  context()->Plug(r0);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3323,7 +3162,8 @@
 
   Label runtime, done;
 
-  __ Allocate(JSIteratorResult::kSize, r0, r2, r3, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, r0, r2, r3, &runtime,
+              NO_ALLOCATION_FLAGS);
   __ LoadNativeContextSlot(Context::ITERATOR_RESULT_MAP_INDEX, r1);
   __ pop(r3);
   __ pop(r2);
@@ -3365,9 +3205,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 
@@ -3451,12 +3289,14 @@
                         &materialize_true);
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
         __ bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(r0, Heap::kTrueValueRootIndex);
         if (context()->IsStackValue()) __ push(r0);
         __ jmp(&done);
         __ bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(r0, Heap::kFalseValueRootIndex);
         if (context()->IsStackValue()) __ push(r0);
         __ bind(&done);
@@ -3558,9 +3398,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3609,7 +3449,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3656,7 +3496,8 @@
         { EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(r0);
         }
         // For all contexts except EffectConstant We have the result on
@@ -3667,7 +3508,8 @@
       } else {
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(r0);
       }
       break;
@@ -3677,7 +3519,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3716,7 +3558,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3813,7 +3655,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // First we try a fast inlined version of the compare when one of
   // the operands is a literal.
@@ -3833,7 +3674,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ CompareRoot(r0, Heap::kTrueValueRootIndex);
       Split(eq, if_true, if_false, fall_through);
@@ -3841,6 +3683,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       PopOperand(r1);
       InstanceOfStub stub(isolate());
       __ CallStub(&stub);
@@ -3852,6 +3695,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cond = CompareIC::ComputeCondition(op);
       PopOperand(r1);
 
diff --git a/src/full-codegen/arm64/full-codegen-arm64.cc b/src/full-codegen/arm64/full-codegen-arm64.cc
index aa67117..61cb141 100644
--- a/src/full-codegen/arm64/full-codegen-arm64.cc
+++ b/src/full-codegen/arm64/full-codegen-arm64.cc
@@ -179,7 +179,8 @@
       __ Mov(x10, Operand(info->scope()->GetScopeInfo(info->isolate())));
       __ Push(x1, x10);
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -235,7 +236,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -297,7 +299,8 @@
   }
 
   // Visit the declarations and body.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -310,7 +313,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     DCHECK(jssp.Is(__ StackPointer()));
     __ CompareRoot(jssp, Heap::kStackLimitRootIndex);
@@ -393,11 +397,11 @@
   EmitProfilingCounterReset();
 
   __ Bind(&ok);
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -460,6 +464,9 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+}
 
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
@@ -725,7 +732,7 @@
   if (should_normalize) {
     __ B(&skip);
   }
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ CompareRoot(x0, Heap::kTrueValueRootIndex);
     Split(eq, if_true, if_false, NULL);
@@ -757,16 +764,14 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
 
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                        : isolate()->factory()->undefined_value(),
-                    zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -785,7 +790,7 @@
         __ LoadRoot(x10, Heap::kTheHoleValueRootIndex);
         __ Str(x10, ContextMemOperand(cp, variable->index()));
         // No write barrier since the_hole_value is in old space.
-        PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+        PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -807,6 +812,7 @@
       }
       __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -852,7 +858,7 @@
                                 kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET,
                                 OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -864,6 +870,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -900,7 +907,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -947,7 +954,7 @@
 
     Label skip;
     __ B(&skip);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ JumpIfNotRoot(x0, Heap::kTrueValueRootIndex, &next_test);
     __ Drop(1);
     __ B(clause->body_target());
@@ -973,12 +980,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ Bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ Bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -1011,15 +1018,13 @@
   ToObjectStub stub(isolate());
   __ CallStub(&stub);
   __ Bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ Push(x0);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime;
   __ CheckEnumCache(x0, x15, x10, x11, x12, x13, &call_runtime);
 
@@ -1033,7 +1038,7 @@
   __ Bind(&call_runtime);
   __ Push(x0);  // Duplicate the enumerable object on the stack.
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
 
   // If we got a map from the runtime call, we can do a fast
   // modification check. Otherwise, we got a fixed array, and we have
@@ -1069,7 +1074,7 @@
   __ Mov(x1, Smi::FromInt(1));  // Smi(1) indicates slow check.
   __ Ldr(x2, FieldMemOperand(x0, FixedArray::kLengthOffset));
   __ Push(x1, x0, x2);  // Smi and array, fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ Push(xzr);  // Initial index.
 
   // Generate code for doing the condition check.
@@ -1109,7 +1114,7 @@
   // just skip it.
   __ Push(x1, x3);
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ Mov(x3, x0);
   __ JumpIfRoot(x0, Heap::kUndefinedValueRootIndex,
                 loop_statement.continue_label());
@@ -1121,11 +1126,11 @@
   // Perform the assignment as if via '='.
   { EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1145,7 +1150,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ Bind(&exit);
   decrement_loop_depth();
 }
@@ -1270,16 +1275,11 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ Ldr(x0, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ JumpIfNotRoot(x0, Heap::kTheHoleValueRootIndex, done);
-      if (local->mode() == CONST_LEGACY) {
-        __ LoadRoot(x0, Heap::kUndefinedValueRootIndex);
-      } else {  // LET || CONST
-        __ Mov(x0, Operand(var->name()));
-        __ Push(x0);
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ Mov(x0, Operand(var->name()));
+      __ Push(x0);
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ B(done);
   }
@@ -1303,7 +1303,7 @@
                                          TypeofMode typeof_mode) {
   // Record position before possible IC call.
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1336,11 +1336,6 @@
           __ Push(x0);
           __ CallRuntime(Runtime::kThrowReferenceError);
           __ Bind(&done);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ LoadRoot(x0, Heap::kUndefinedValueRootIndex);
-          __ Bind(&done);
         }
         context()->Plug(x0);
         break;
@@ -1414,8 +1409,9 @@
   } else {
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in x0.
@@ -1451,7 +1447,7 @@
             __ Peek(StoreDescriptor::ReceiverRegister(), 0);
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
 
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
@@ -1484,7 +1480,7 @@
         VisitForStackValue(value);
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
@@ -1541,7 +1537,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1612,7 +1608,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1642,7 +1638,8 @@
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1662,7 +1659,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1677,7 +1675,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1743,23 +1740,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1779,7 +1780,7 @@
     }
 
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1791,7 +1792,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(x0);
       break;
     case NAMED_PROPERTY:
@@ -2127,8 +2128,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       // Assignment to var.
       __ Push(var->name());
@@ -2149,23 +2149,6 @@
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
 
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ Mov(x1, Operand(var->name()));
-      __ Push(x0, cp, x1);
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackLocal() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, x1);
-      __ Ldr(x10, location);
-      __ JumpIfNotRoot(x10, Heap::kTheHoleValueRootIndex, &skip);
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ Bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2189,7 +2172,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(x0);
 }
 
@@ -2237,43 +2220,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(x0);
-}
-
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      __ Move(LoadDescriptor::ReceiverRegister(), x0);
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      __ Move(LoadDescriptor::NameRegister(), x0);
-      PopOperand(LoadDescriptor::ReceiverRegister());
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(x0);
 }
 
@@ -2297,7 +2244,7 @@
   if (callee->IsVariableProxy()) {
     { StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the method prologue if it
     // is a sloppy mode method.
@@ -2314,7 +2261,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ Peek(LoadDescriptor::ReceiverRegister(), 0);
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     PopOperand(x10);
     PushOperands(x0, x10);
@@ -2354,6 +2302,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ Poke(x0, kPointerSize);
@@ -2379,7 +2328,8 @@
   __ Peek(LoadDescriptor::ReceiverRegister(), 0);
   __ Move(LoadDescriptor::NameRegister(), x0);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   PopOperand(x10);
@@ -2415,6 +2365,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ Poke(x0, kPointerSize);
@@ -2435,7 +2386,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
     if (FLAG_trace) {
@@ -2456,13 +2407,12 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, x0);
 }
 
-
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
   ASM_LOCATION("FullCodeGenerator::EmitResolvePossiblyDirectEval");
   // Prepare to push a copy of the first argument or undefined if it doesn't
   // exist.
@@ -2478,9 +2428,11 @@
   __ Mov(x11, Smi::FromInt(language_mode()));
   // Prepare to push the start position of the scope the calls resides in.
   __ Mov(x12, Smi::FromInt(scope()->start_position()));
+  // Prepare to push the source position of the eval call.
+  __ Mov(x13, Smi::FromInt(expr->position()));
 
   // Push.
-  __ Push(x9, x10, x11, x12);
+  __ Push(x9, x10, x11, x12, x13);
 
   // Do the runtime call.
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
@@ -2503,7 +2455,7 @@
     __ Push(callee->name());
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperands(x0, x1);  // Receiver, function.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the
     // function and receiver and have the slow path jump around this
@@ -2530,7 +2482,7 @@
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
   ASM_LOCATION("FullCodeGenerator::EmitPossiblyEvalCall");
-  // In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
+  // In a call to eval, we first call Runtime_ResolvePossiblyDirectEval
   // to resolve the function we need to call.  Then we call the resolved
   // function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
@@ -2547,12 +2499,12 @@
   // resolve eval.
   __ Peek(x10, (arg_count + 1) * kPointerSize);
   __ Push(x10);
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the stack with the resolved function.
   __ Poke(x0, (arg_count + 1) * kPointerSize);
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
 
   // Record source position for debugger.
   SetCallPosition(expr);
@@ -2565,8 +2517,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, x0);
 }
 
@@ -2605,9 +2556,8 @@
   CallConstructStub stub(isolate());
   __ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(x0);
 }
 
@@ -2651,9 +2601,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->Plug(x0);
 }
 
@@ -3042,7 +2990,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to x1.
   int const argc = args->length() - 2;
   __ Peek(x1, (argc + 1) * kXRegSize);
@@ -3050,8 +2998,7 @@
   __ Mov(x0, argc);
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, x0);
 }
@@ -3101,12 +3048,6 @@
   context()->Plug(x0);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ LoadNativeContextSlot(Context::ORDINARY_HAS_INSTANCE_INDEX, x0);
-  context()->Plug(x0);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3127,7 +3068,8 @@
   Label runtime, done;
 
   Register result = x0;
-  __ Allocate(JSIteratorResult::kSize, result, x10, x11, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, result, x10, x11, &runtime,
+              NO_ALLOCATION_FLAGS);
   Register map_reg = x1;
   Register result_value = x2;
   Register boolean_done = x3;
@@ -3179,9 +3121,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 
@@ -3263,12 +3203,14 @@
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
 
         __ Bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(result_register(), Heap::kTrueValueRootIndex);
         __ B(&done);
 
         __ Bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(result_register(), Heap::kFalseValueRootIndex);
         __ B(&done);
 
@@ -3368,9 +3310,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3419,7 +3361,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3468,7 +3410,8 @@
         { EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(x0);
         }
         // For all contexts except EffectConstant We have the result on
@@ -3479,7 +3422,8 @@
       } else {
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(x0);
       }
       break;
@@ -3489,7 +3433,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3528,7 +3472,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3631,7 +3575,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // Try to generate an optimized comparison with a literal value.
   // TODO(jbramley): This only checks common values like NaN or undefined.
@@ -3654,7 +3597,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ CompareRoot(x0, Heap::kTrueValueRootIndex);
       Split(eq, if_true, if_false, fall_through);
@@ -3662,6 +3606,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       PopOperand(x1);
       InstanceOfStub stub(isolate());
       __ CallStub(&stub);
@@ -3673,6 +3618,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cond = CompareIC::ComputeCondition(op);
 
       // Pop the stack value.
@@ -3745,24 +3691,29 @@
   // and suchlike. The implementation changes a little by bleeding_edge so I
   // don't want to spend too much time on it now.
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ B(&suspend);
   // TODO(jbramley): This label is bound here because the following code
   // looks at its pos(). Is it possible to do something more efficient here,
   // perhaps using Adr?
   __ Bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, x0 holds the generator object.
   __ RecordGeneratorContinuation();
-  __ Pop(x1);
-  __ Cmp(x1, Smi::FromInt(JSGeneratorObject::RETURN));
-  __ B(ne, &resume);
+  __ Ldr(x1, FieldMemOperand(x0, JSGeneratorObject::kResumeModeOffset));
+  __ Ldr(x0, FieldMemOperand(x0, JSGeneratorObject::kInputOffset));
+  STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
+  STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
+  __ Cmp(x1, Operand(Smi::FromInt(JSGeneratorObject::kReturn)));
+  __ B(lt, &resume);
   __ Push(result_register());
+  __ B(gt, &exception);
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ Bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ Bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -3778,7 +3729,7 @@
   __ B(eq, &post_runtime);
   __ Push(x0);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ Bind(&post_runtime);
   PopOperand(result_register());
   EmitReturnSequence();
@@ -3787,110 +3738,6 @@
   context()->Plug(result_register());
 }
 
-
-void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
-    Expression *value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  ASM_LOCATION("FullCodeGenerator::EmitGeneratorResume");
-  Register generator_object = x1;
-  Register the_hole = x2;
-  Register operand_stack_size = w3;
-  Register function = x4;
-
-  // The value stays in x0, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed. x1
-  // will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(generator_object);
-
-  // Store input value into generator object.
-  __ Str(result_register(),
-         FieldMemOperand(x1, JSGeneratorObject::kInputOffset));
-  __ Mov(x2, result_register());
-  __ RecordWriteField(x1, JSGeneratorObject::kInputOffset, x2, x3,
-                      kLRHasBeenSaved, kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ Ldr(cp, FieldMemOperand(generator_object,
-                             JSGeneratorObject::kContextOffset));
-  __ Ldr(function, FieldMemOperand(generator_object,
-                                   JSGeneratorObject::kFunctionOffset));
-
-  // Load receiver and store as the first argument.
-  __ Ldr(x10, FieldMemOperand(generator_object,
-                              JSGeneratorObject::kReceiverOffset));
-  __ Push(x10);
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ Ldr(x10, FieldMemOperand(function, JSFunction::kSharedFunctionInfoOffset));
-
-  // The number of arguments is stored as an int32_t, and -1 is a marker
-  // (SharedFunctionInfo::kDontAdaptArgumentsSentinel), so we need sign
-  // extension to correctly handle it. However, in this case, we operate on
-  // 32-bit W registers, so extension isn't required.
-  __ Ldr(w10, FieldMemOperand(x10,
-                              SharedFunctionInfo::kFormalParameterCountOffset));
-  __ LoadRoot(the_hole, Heap::kTheHoleValueRootIndex);
-  __ PushMultipleTimes(the_hole, w10);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ Bl(&resume_frame);
-  __ B(&done);
-
-  __ Bind(&resume_frame);
-  __ Push(lr,           // Return address.
-          fp,           // Caller's frame pointer.
-          cp,           // Callee's context.
-          function);    // Callee's JS Function.
-  __ Add(fp, __ StackPointer(), kPointerSize * 2);
-
-  // Load and untag the operand stack size.
-  __ Ldr(x10, FieldMemOperand(generator_object,
-                              JSGeneratorObject::kOperandStackOffset));
-  __ Ldr(operand_stack_size,
-         UntagSmiFieldMemOperand(x10, FixedArray::kLengthOffset));
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ Cbnz(operand_stack_size, &slow_resume);
-    __ Ldr(x10, FieldMemOperand(function, JSFunction::kCodeEntryOffset));
-    __ Ldrsw(x11,
-             UntagSmiFieldMemOperand(generator_object,
-                                     JSGeneratorObject::kContinuationOffset));
-    __ Add(x10, x10, x11);
-    __ Mov(x12, Smi::FromInt(JSGeneratorObject::kGeneratorExecuting));
-    __ Str(x12, FieldMemOperand(generator_object,
-                                JSGeneratorObject::kContinuationOffset));
-    __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-    __ Br(x10);
-
-    __ Bind(&slow_resume);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  __ PushMultipleTimes(the_hole, operand_stack_size);
-
-  __ Mov(x10, Smi::FromInt(resume_mode));
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  __ Push(generator_object, result_register(), x10);
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ Unreachable();
-
-  __ Bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperands(Register reg1, Register reg2) {
   OperandStackDepthIncrement(2);
   __ Push(reg1, reg2);
@@ -3923,7 +3770,8 @@
   // Allocate and populate an object with this form: { value: VAL, done: DONE }
 
   Register result = x0;
-  __ Allocate(JSIteratorResult::kSize, result, x10, x11, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, result, x10, x11, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ B(&done_allocate);
 
   __ Bind(&allocate);
diff --git a/src/full-codegen/full-codegen.cc b/src/full-codegen/full-codegen.cc
index af5dd41..2d7ad32 100644
--- a/src/full-codegen/full-codegen.cc
+++ b/src/full-codegen/full-codegen.cc
@@ -28,6 +28,8 @@
 bool FullCodeGenerator::MakeCode(CompilationInfo* info) {
   Isolate* isolate = info->isolate();
 
+  RuntimeCallTimerScope runtimeTimer(isolate,
+                                     &RuntimeCallStats::CompileFullCode);
   TimerEventScope<TimerEventCompileFullCode> timer(info->isolate());
   TRACE_EVENT0("v8", "V8.CompileFullCode");
 
@@ -144,13 +146,8 @@
 
 bool FullCodeGenerator::MustCreateObjectLiteralWithRuntime(
     ObjectLiteral* expr) const {
-  // FastCloneShallowObjectStub doesn't copy elements, and object literals don't
-  // support copy-on-write (COW) elements for now.
-  // TODO(mvstanton): make object literals support COW elements.
-  return masm()->serializer_enabled() || !expr->fast_elements() ||
-         !expr->has_shallow_properties() ||
-         expr->properties_count() >
-             FastCloneShallowObjectStub::kMaximumClonedProperties;
+  return masm()->serializer_enabled() ||
+         !FastCloneShallowObjectStub::IsSupported(expr);
 }
 
 
@@ -167,8 +164,8 @@
   masm_->set_predictable_code_size(true);
 }
 
-
-void FullCodeGenerator::PrepareForBailout(Expression* node, State state) {
+void FullCodeGenerator::PrepareForBailout(Expression* node,
+                                          BailoutState state) {
   PrepareForBailoutForId(node->id(), state);
 }
 
@@ -191,9 +188,9 @@
   // if the function was inlined, i.e., this is the return address in the
   // inlined function's frame.
   //
-  // The state is ignored.  We defensively set it to TOS_REG, which is the
-  // real state of the unoptimized code at the return site.
-  PrepareForBailoutForId(call->ReturnId(), TOS_REG);
+  // The bailout state is ignored.  We defensively set it to TOS_REGISTER, which
+  // is the real state of the unoptimized code at the return site.
+  PrepareForBailoutForId(call->ReturnId(), BailoutState::TOS_REGISTER);
 #ifdef DEBUG
   // In debug builds, mark the return so we can verify that this function
   // was called.
@@ -202,13 +199,13 @@
 #endif
 }
 
-
-void FullCodeGenerator::PrepareForBailoutForId(BailoutId id, State state) {
+void FullCodeGenerator::PrepareForBailoutForId(BailoutId id,
+                                               BailoutState state) {
   // There's no need to prepare this code for bailouts from already optimized
   // code or code that can't be optimized.
   if (!info_->HasDeoptimizationSupport()) return;
   unsigned pc_and_state =
-      StateField::encode(state) | PcField::encode(masm_->pc_offset());
+      BailoutStateField::encode(state) | PcField::encode(masm_->pc_offset());
   DCHECK(Smi::IsValid(pc_and_state));
 #ifdef DEBUG
   for (int i = 0; i < bailout_entries_.length(); ++i) {
@@ -447,10 +444,7 @@
 
 
 int FullCodeGenerator::DeclareGlobalsFlags() {
-  DCHECK(DeclareGlobalsLanguageMode::is_valid(language_mode()));
-  return DeclareGlobalsEvalFlag::encode(is_eval()) |
-         DeclareGlobalsNativeFlag::encode(is_native()) |
-         DeclareGlobalsLanguageMode::encode(language_mode());
+  return info_->GetDeclareGlobalsFlags();
 }
 
 void FullCodeGenerator::PushOperand(Handle<Object> handle) {
@@ -609,6 +603,13 @@
   EmitIntrinsicAsStubCall(expr, CodeFactory::RegExpConstructResult(isolate()));
 }
 
+void FullCodeGenerator::EmitHasProperty() {
+  Callable callable = CodeFactory::HasProperty(isolate());
+  PopOperand(callable.descriptor().GetRegisterParameter(1));
+  PopOperand(callable.descriptor().GetRegisterParameter(0));
+  __ Call(callable.code(), RelocInfo::CODE_TARGET);
+  RestoreContext();
+}
 
 bool RecordStatementPosition(MacroAssembler* masm, int pos) {
   if (pos == RelocInfo::kNoPosition) return false;
@@ -652,14 +653,9 @@
   }
 }
 
-
-void FullCodeGenerator::SetExpressionPosition(
-    Expression* expr, FullCodeGenerator::InsertBreak insert_break) {
+void FullCodeGenerator::SetExpressionPosition(Expression* expr) {
   if (expr->position() == RelocInfo::kNoPosition) return;
-  bool recorded = RecordPosition(masm_, expr->position());
-  if (recorded && insert_break == INSERT_BREAK && info_->is_debug()) {
-    DebugCodegen::GenerateSlot(masm_, RelocInfo::DEBUG_BREAK_SLOT_AT_POSITION);
-  }
+  RecordPosition(masm_, expr->position());
 }
 
 
@@ -688,32 +684,15 @@
 void FullCodeGenerator::VisitSuperPropertyReference(
     SuperPropertyReference* super) {
   __ CallRuntime(Runtime::kThrowUnsupportedSuperError);
+  // Even though this expression doesn't produce a value, we need to simulate
+  // plugging of the value context to ensure stack depth tracking is in sync.
+  if (context()->IsStackValue()) OperandStackDepthIncrement(1);
 }
 
 
 void FullCodeGenerator::VisitSuperCallReference(SuperCallReference* super) {
-  __ CallRuntime(Runtime::kThrowUnsupportedSuperError);
-}
-
-
-void FullCodeGenerator::EmitGeneratorNext(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-  EmitGeneratorResume(args->at(0), args->at(1), JSGeneratorObject::NEXT);
-}
-
-
-void FullCodeGenerator::EmitGeneratorReturn(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-  EmitGeneratorResume(args->at(0), args->at(1), JSGeneratorObject::RETURN);
-}
-
-
-void FullCodeGenerator::EmitGeneratorThrow(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-  EmitGeneratorResume(args->at(0), args->at(1), JSGeneratorObject::THROW);
+  // Handled by VisitCall
+  UNREACHABLE();
 }
 
 
@@ -773,7 +752,7 @@
     } else {
       VisitForControl(left, test->true_label(), &eval_right, &eval_right);
     }
-    PrepareForBailoutForId(right_id, NO_REGISTERS);
+    PrepareForBailoutForId(right_id, BailoutState::NO_REGISTERS);
     __ bind(&eval_right);
 
   } else if (context()->IsAccumulatorValue()) {
@@ -792,7 +771,7 @@
     __ jmp(&done);
     __ bind(&discard);
     __ Drop(1);
-    PrepareForBailoutForId(right_id, NO_REGISTERS);
+    PrepareForBailoutForId(right_id, BailoutState::NO_REGISTERS);
 
   } else if (context()->IsStackValue()) {
     VisitForAccumulatorValue(left);
@@ -807,7 +786,7 @@
     }
     __ bind(&discard);
     __ Drop(1);
-    PrepareForBailoutForId(right_id, NO_REGISTERS);
+    PrepareForBailoutForId(right_id, BailoutState::NO_REGISTERS);
 
   } else {
     DCHECK(context()->IsEffect());
@@ -817,7 +796,7 @@
     } else {
       VisitForControl(left, &done, &eval_right, &eval_right);
     }
-    PrepareForBailoutForId(right_id, NO_REGISTERS);
+    PrepareForBailoutForId(right_id, BailoutState::NO_REGISTERS);
     __ bind(&eval_right);
   }
 
@@ -843,6 +822,41 @@
   }
 }
 
+void FullCodeGenerator::VisitProperty(Property* expr) {
+  Comment cmnt(masm_, "[ Property");
+  SetExpressionPosition(expr);
+
+  Expression* key = expr->key();
+
+  if (key->IsPropertyName()) {
+    if (!expr->IsSuperAccess()) {
+      VisitForAccumulatorValue(expr->obj());
+      __ Move(LoadDescriptor::ReceiverRegister(), result_register());
+      EmitNamedPropertyLoad(expr);
+    } else {
+      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
+      VisitForStackValue(
+          expr->obj()->AsSuperPropertyReference()->home_object());
+      EmitNamedSuperPropertyLoad(expr);
+    }
+  } else {
+    if (!expr->IsSuperAccess()) {
+      VisitForStackValue(expr->obj());
+      VisitForAccumulatorValue(expr->key());
+      __ Move(LoadDescriptor::NameRegister(), result_register());
+      PopOperand(LoadDescriptor::ReceiverRegister());
+      EmitKeyedPropertyLoad(expr);
+    } else {
+      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
+      VisitForStackValue(
+          expr->obj()->AsSuperPropertyReference()->home_object());
+      VisitForStackValue(expr->key());
+      EmitKeyedSuperPropertyLoad(expr);
+    }
+  }
+  PrepareForBailoutForId(expr->LoadId(), BailoutState::TOS_REGISTER);
+  context()->Plug(result_register());
+}
 
 void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
   VariableProxy* proxy = expr->AsVariableProxy();
@@ -852,7 +866,7 @@
   if (proxy != NULL && (proxy->var()->IsUnallocatedOrGlobalSlot() ||
                         proxy->var()->IsLookupSlot())) {
     EmitVariableLoad(proxy, INSIDE_TYPEOF);
-    PrepareForBailout(proxy, TOS_REG);
+    PrepareForBailout(proxy, BailoutState::TOS_REGISTER);
   } else {
     // This expression cannot throw a reference error at the top level.
     VisitInDuplicateContext(expr);
@@ -875,7 +889,6 @@
 
 void FullCodeGenerator::VisitDoExpression(DoExpression* expr) {
   Comment cmnt(masm_, "[ Do Expression");
-  NestedStatement nested_block(this);
   SetExpressionPosition(expr);
   VisitBlock(expr->block());
   EmitVariableLoad(expr->result());
@@ -901,24 +914,24 @@
 
   if (stmt->HasElseStatement()) {
     VisitForControl(stmt->condition(), &then_part, &else_part, &then_part);
-    PrepareForBailoutForId(stmt->ThenId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->ThenId(), BailoutState::NO_REGISTERS);
     __ bind(&then_part);
     Visit(stmt->then_statement());
     __ jmp(&done);
 
-    PrepareForBailoutForId(stmt->ElseId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->ElseId(), BailoutState::NO_REGISTERS);
     __ bind(&else_part);
     Visit(stmt->else_statement());
   } else {
     VisitForControl(stmt->condition(), &then_part, &done, &then_part);
-    PrepareForBailoutForId(stmt->ThenId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->ThenId(), BailoutState::NO_REGISTERS);
     __ bind(&then_part);
     Visit(stmt->then_statement());
 
-    PrepareForBailoutForId(stmt->ElseId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->ElseId(), BailoutState::NO_REGISTERS);
   }
   __ bind(&done);
-  PrepareForBailoutForId(stmt->IfId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->IfId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitContinue(Statement* target) {
@@ -1082,7 +1095,7 @@
                                         BailoutId bailout_id) {
   VisitForStackValue(property->key());
   CallRuntimeWithOperands(Runtime::kToName);
-  PrepareForBailoutForId(bailout_id, NO_REGISTERS);
+  PrepareForBailoutForId(bailout_id, BailoutState::NO_REGISTERS);
   PushOperand(result_register());
 }
 
@@ -1108,12 +1121,12 @@
   Callable callable = CodeFactory::ToObject(isolate());
   __ Move(callable.descriptor().GetRegisterParameter(0), result_register());
   __ Call(callable.code(), RelocInfo::CODE_TARGET);
-  PrepareForBailoutForId(stmt->ToObjectId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::NO_REGISTERS);
   PushOperand(result_register());
   PushFunctionArgumentForContextAllocation();
   CallRuntimeWithOperands(Runtime::kPushWithContext);
   StoreToFrameField(StandardFrameConstants::kContextOffset, context_register());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   Scope* saved_scope = scope();
   scope_ = stmt->scope();
@@ -1145,7 +1158,7 @@
   // Record the position of the do while condition and make sure it is
   // possible to break on the condition.
   __ bind(loop_statement.continue_label());
-  PrepareForBailoutForId(stmt->ContinueId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ContinueId(), BailoutState::NO_REGISTERS);
 
   // Here is the actual 'while' keyword.
   SetExpressionAsStatementPosition(stmt->cond());
@@ -1155,12 +1168,12 @@
                   &book_keeping);
 
   // Check stack before looping.
-  PrepareForBailoutForId(stmt->BackEdgeId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BackEdgeId(), BailoutState::NO_REGISTERS);
   __ bind(&book_keeping);
   EmitBackEdgeBookkeeping(stmt, &body);
   __ jmp(&body);
 
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(loop_statement.break_label());
   decrement_loop_depth();
 }
@@ -1181,7 +1194,7 @@
                   loop_statement.break_label(),
                   &body);
 
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   __ bind(&body);
   Visit(stmt->body());
 
@@ -1191,7 +1204,7 @@
   EmitBackEdgeBookkeeping(stmt, &loop);
   __ jmp(&loop);
 
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(loop_statement.break_label());
   decrement_loop_depth();
 }
@@ -1214,11 +1227,11 @@
   // Emit the test at the bottom of the loop (even if empty).
   __ jmp(&test);
 
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   __ bind(&body);
   Visit(stmt->body());
 
-  PrepareForBailoutForId(stmt->ContinueId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ContinueId(), BailoutState::NO_REGISTERS);
   __ bind(loop_statement.continue_label());
   if (stmt->next() != NULL) {
     SetStatementPosition(stmt->next());
@@ -1239,7 +1252,7 @@
     __ jmp(&body);
   }
 
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(loop_statement.break_label());
   decrement_loop_depth();
 }
@@ -1252,6 +1265,7 @@
   increment_loop_depth();
 
   // var iterator = iterable[Symbol.iterator]();
+  SetExpressionAsStatementPosition(stmt->assign_iterator());
   VisitForEffect(stmt->assign_iterator());
 
   // Loop entry.
@@ -1274,12 +1288,12 @@
   Visit(stmt->body());
 
   // Check stack before looping.
-  PrepareForBailoutForId(stmt->BackEdgeId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BackEdgeId(), BailoutState::NO_REGISTERS);
   EmitBackEdgeBookkeeping(stmt, loop_statement.continue_label());
   __ jmp(loop_statement.continue_label());
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(loop_statement.break_label());
   decrement_loop_depth();
 }
@@ -1423,7 +1437,7 @@
   __ DebugBreak();
   // Ignore the return value.
 
-  PrepareForBailoutForId(stmt->DebugBreakId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->DebugBreakId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -1438,7 +1452,7 @@
   VisitForControl(expr->condition(), &true_case, &false_case, &true_case);
 
   int original_stack_depth = operand_stack_depth_;
-  PrepareForBailoutForId(expr->ThenId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->ThenId(), BailoutState::NO_REGISTERS);
   __ bind(&true_case);
   SetExpressionPosition(expr->then_expression());
   if (context()->IsTest()) {
@@ -1453,7 +1467,7 @@
   }
 
   operand_stack_depth_ = original_stack_depth;
-  PrepareForBailoutForId(expr->ElseId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->ElseId(), BailoutState::NO_REGISTERS);
   __ bind(&false_case);
   SetExpressionPosition(expr->else_expression());
   VisitInDuplicateContext(expr->else_expression());
@@ -1504,7 +1518,7 @@
     PushOperand(Smi::FromInt(lit->end_position()));
 
     CallRuntimeWithOperands(Runtime::kDefineClass);
-    PrepareForBailoutForId(lit->CreateLiteralId(), TOS_REG);
+    PrepareForBailoutForId(lit->CreateLiteralId(), BailoutState::TOS_REGISTER);
     PushOperand(result_register());
 
     // Load the "prototype" from the constructor.
@@ -1513,13 +1527,14 @@
                 Heap::kprototype_stringRootIndex);
     __ Move(LoadDescriptor::SlotRegister(), SmiFromSlot(lit->PrototypeSlot()));
     CallLoadIC(NOT_INSIDE_TYPEOF);
-    PrepareForBailoutForId(lit->PrototypeId(), TOS_REG);
+    PrepareForBailoutForId(lit->PrototypeId(), BailoutState::TOS_REGISTER);
     PushOperand(result_register());
 
     EmitClassDefineProperties(lit);
+    DropOperands(1);
 
-    // Set both the prototype and constructor to have fast properties.
-    CallRuntimeWithOperands(Runtime::kFinalizeClassDefinition);
+    // Set the constructor to have fast properties.
+    CallRuntimeWithOperands(Runtime::kToFastProperties);
 
     if (lit->class_variable_proxy() != nullptr) {
       EmitVariableAssignment(lit->class_variable_proxy()->var(), Token::INIT,
@@ -1653,7 +1668,7 @@
       VisitForStackValue(args->at(i));
     }
 
-    PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
     EmitCallJSRuntimeFunction(expr);
     context()->DropAndPlug(1, result_register());
 
@@ -1675,7 +1690,7 @@
         }
 
         // Call the C runtime function.
-        PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
         __ CallRuntime(expr->function(), arg_count);
         OperandStackDepthDecrement(arg_count);
         context()->Plug(result_register());
@@ -1768,16 +1783,19 @@
   Expression* sub_expr;
   Handle<String> check;
   if (expr->IsLiteralCompareTypeof(&sub_expr, &check)) {
+    SetExpressionPosition(expr);
     EmitLiteralCompareTypeof(expr, sub_expr, check);
     return true;
   }
 
   if (expr->IsLiteralCompareUndefined(&sub_expr)) {
+    SetExpressionPosition(expr);
     EmitLiteralCompareNil(expr, sub_expr, kUndefinedValue);
     return true;
   }
 
   if (expr->IsLiteralCompareNull(&sub_expr)) {
+    SetExpressionPosition(expr);
     EmitLiteralCompareNil(expr, sub_expr, kNullValue);
     return true;
   }
@@ -1861,7 +1879,7 @@
   saved_scope_ = codegen_->scope();
 
   if (scope == NULL) {
-    codegen_->PrepareForBailoutForId(entry_id, NO_REGISTERS);
+    codegen_->PrepareForBailoutForId(entry_id, BailoutState::NO_REGISTERS);
     needs_block_context_ = false;
   } else {
     needs_block_context_ = scope->NeedsContext();
@@ -1878,12 +1896,13 @@
                                     codegen_->context_register());
       }
       CHECK_EQ(0, scope->num_stack_slots());
-      codegen_->PrepareForBailoutForId(entry_id, NO_REGISTERS);
+      codegen_->PrepareForBailoutForId(entry_id, BailoutState::NO_REGISTERS);
     }
     {
       Comment cmnt(masm(), "[ Declarations");
       codegen_->VisitDeclarations(scope->declarations());
-      codegen_->PrepareForBailoutForId(declarations_id, NO_REGISTERS);
+      codegen_->PrepareForBailoutForId(declarations_id,
+                                       BailoutState::NO_REGISTERS);
     }
   }
 }
@@ -1897,7 +1916,7 @@
     codegen_->StoreToFrameField(StandardFrameConstants::kContextOffset,
                                 codegen_->context_register());
   }
-  codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS);
+  codegen_->PrepareForBailoutForId(exit_id_, BailoutState::NO_REGISTERS);
   codegen_->scope_ = saved_scope_;
 }
 
@@ -1956,7 +1975,7 @@
   DCHECK(var->initializer_position() != RelocInfo::kNoPosition);
   DCHECK(proxy->position() != RelocInfo::kNoPosition);
 
-  return var->mode() == CONST_LEGACY || var->scope()->is_nonlinear() ||
+  return var->scope()->is_nonlinear() ||
          var->initializer_position() >= proxy->position();
 }
 
diff --git a/src/full-codegen/full-codegen.h b/src/full-codegen/full-codegen.h
index 0c12937..0a004a8 100644
--- a/src/full-codegen/full-codegen.h
+++ b/src/full-codegen/full-codegen.h
@@ -14,6 +14,7 @@
 #include "src/code-stubs.h"
 #include "src/codegen.h"
 #include "src/compiler.h"
+#include "src/deoptimizer.h"
 #include "src/globals.h"
 #include "src/objects.h"
 
@@ -28,11 +29,6 @@
 
 class FullCodeGenerator: public AstVisitor {
  public:
-  enum State {
-    NO_REGISTERS,
-    TOS_REG
-  };
-
   FullCodeGenerator(MacroAssembler* masm, CompilationInfo* info)
       : masm_(masm),
         info_(info),
@@ -60,19 +56,10 @@
 
   static bool MakeCode(CompilationInfo* info);
 
-  // Encode state and pc-offset as a BitField<type, start, size>.
+  // Encode bailout state and pc-offset as a BitField<type, start, size>.
   // Only use 30 bits because we encode the result as a smi.
-  class StateField : public BitField<State, 0, 1> { };
-  class PcField    : public BitField<unsigned, 1, 30-1> { };
-
-  static const char* State2String(State state) {
-    switch (state) {
-      case NO_REGISTERS: return "NO_REGISTERS";
-      case TOS_REG: return "TOS_REG";
-    }
-    UNREACHABLE();
-    return NULL;
-  }
+  class BailoutStateField : public BitField<Deoptimizer::BailoutState, 0, 1> {};
+  class PcField : public BitField<unsigned, 1, 30 - 1> {};
 
   static const int kMaxBackEdgeWeight = 127;
 
@@ -106,6 +93,8 @@
   static Register result_register();
 
  private:
+  typedef Deoptimizer::BailoutState BailoutState;
+
   class Breakable;
   class Iteration;
   class TryFinally;
@@ -366,21 +355,21 @@
     if (FLAG_verify_operand_stack_depth) EmitOperandStackDepthCheck();
     EffectContext context(this);
     Visit(expr);
-    PrepareForBailout(expr, NO_REGISTERS);
+    PrepareForBailout(expr, BailoutState::NO_REGISTERS);
   }
 
   void VisitForAccumulatorValue(Expression* expr) {
     if (FLAG_verify_operand_stack_depth) EmitOperandStackDepthCheck();
     AccumulatorValueContext context(this);
     Visit(expr);
-    PrepareForBailout(expr, TOS_REG);
+    PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   }
 
   void VisitForStackValue(Expression* expr) {
     if (FLAG_verify_operand_stack_depth) EmitOperandStackDepthCheck();
     StackValueContext context(this);
     Visit(expr);
-    PrepareForBailout(expr, NO_REGISTERS);
+    PrepareForBailout(expr, BailoutState::NO_REGISTERS);
   }
 
   void VisitForControl(Expression* expr,
@@ -452,8 +441,8 @@
                              NilValue nil);
 
   // Bailout support.
-  void PrepareForBailout(Expression* node, State state);
-  void PrepareForBailoutForId(BailoutId id, State state);
+  void PrepareForBailout(Expression* node, Deoptimizer::BailoutState state);
+  void PrepareForBailoutForId(BailoutId id, Deoptimizer::BailoutState state);
 
   // Returns a smi for the index into the FixedArray that backs the feedback
   // vector
@@ -531,9 +520,6 @@
   F(HasCachedArrayIndex)                \
   F(GetCachedArrayIndex)                \
   F(GetSuperConstructor)                \
-  F(GeneratorNext)                      \
-  F(GeneratorReturn)                    \
-  F(GeneratorThrow)                     \
   F(DebugBreakInOptimizedCode)          \
   F(ClassOf)                            \
   F(StringCharCodeAt)                   \
@@ -548,7 +534,6 @@
   F(ToName)                             \
   F(ToObject)                           \
   F(DebugIsActive)                      \
-  F(GetOrdinaryHasInstance)             \
   F(CreateIterResultObject)
 
 #define GENERATOR_DECLARATION(Name) void Emit##Name(CallRuntime* call);
@@ -557,10 +542,11 @@
 
   void EmitIntrinsicAsStubCall(CallRuntime* expr, const Callable& callable);
 
-  // Platform-specific code for resuming generators.
-  void EmitGeneratorResume(Expression *generator,
-                           Expression *value,
-                           JSGeneratorObject::ResumeMode resume_mode);
+  // Emits call to respective code stub.
+  void EmitHasProperty();
+
+  // Platform-specific code for restoring context from current JS frame.
+  void RestoreContext();
 
   // Platform-specific code for loading variables.
   void EmitLoadGlobalCheckExtensions(VariableProxy* proxy,
@@ -577,7 +563,7 @@
   bool NeedsHoleCheckForLoad(VariableProxy* proxy);
 
   // Expects the arguments and the function already pushed.
-  void EmitResolvePossiblyDirectEval(int arg_count);
+  void EmitResolvePossiblyDirectEval(Call* expr);
 
   // Platform-specific support for allocating a new closure based on
   // the given function info.
@@ -687,8 +673,7 @@
   // otherwise.
   void SetStatementPosition(Statement* stmt,
                             InsertBreak insert_break = INSERT_BREAK);
-  void SetExpressionPosition(Expression* expr,
-                             InsertBreak insert_break = SKIP_BREAK);
+  void SetExpressionPosition(Expression* expr);
 
   // Consider an expression a statement. As such, we also insert a break.
   // This is used in loop headers where we want to break for each iteration.
@@ -729,8 +714,6 @@
   Isolate* isolate() const { return isolate_; }
   Zone* zone() const { return zone_; }
   Handle<Script> script() { return info_->script(); }
-  bool is_eval() { return info_->is_eval(); }
-  bool is_native() { return info_->is_native(); }
   LanguageMode language_mode() { return scope()->language_mode(); }
   bool has_simple_parameters() { return info_->has_simple_parameters(); }
   FunctionLiteral* literal() const { return info_->literal(); }
diff --git a/src/full-codegen/ia32/full-codegen-ia32.cc b/src/full-codegen/ia32/full-codegen-ia32.cc
index f1945c8..760a818 100644
--- a/src/full-codegen/ia32/full-codegen-ia32.cc
+++ b/src/full-codegen/ia32/full-codegen-ia32.cc
@@ -168,7 +168,8 @@
       __ push(edi);
       __ Push(info->scope()->GetScopeInfo(info->isolate()));
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -227,7 +228,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -289,7 +291,8 @@
   }
 
   // Visit the declarations and body.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -302,7 +305,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     ExternalReference stack_limit =
         ExternalReference::address_of_stack_limit(isolate());
@@ -369,11 +373,11 @@
   EmitProfilingCounterReset();
 
   __ bind(&ok);
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -423,6 +427,9 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+}
 
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
@@ -677,7 +684,7 @@
 
   Label skip;
   if (should_normalize) __ jmp(&skip, Label::kNear);
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ cmp(eax, isolate()->factory()->true_value());
     Split(equal, if_true, if_false, NULL);
@@ -708,14 +715,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                        : isolate()->factory()->undefined_value(), zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -734,7 +740,7 @@
         __ mov(ContextOperand(esi, variable->index()),
                Immediate(isolate()->factory()->the_hole_value()));
         // No write barrier since the hole value is in old space.
-        PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+        PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -755,6 +761,7 @@
       __ push(
           Immediate(Smi::FromInt(variable->DeclarationPropertyAttributes())));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -798,7 +805,7 @@
                                 kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET,
                                 OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -808,6 +815,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -838,7 +846,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -887,7 +895,7 @@
 
     Label skip;
     __ jmp(&skip, Label::kNear);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ cmp(eax, isolate()->factory()->true_value());
     __ j(not_equal, &next_test);
     __ Drop(1);
@@ -915,12 +923,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -953,15 +961,13 @@
   ToObjectStub stub(isolate());
   __ CallStub(&stub);
   __ bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ push(eax);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime, use_cache, fixed_array;
   __ CheckEnumCache(&call_runtime);
 
@@ -972,7 +978,7 @@
   __ bind(&call_runtime);
   __ push(eax);
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
   __ cmp(FieldOperand(eax, HeapObject::kMapOffset),
          isolate()->factory()->meta_map());
   __ j(not_equal, &fixed_array);
@@ -1008,7 +1014,7 @@
   __ push(eax);  // Array
   __ mov(eax, FieldOperand(eax, FixedArray::kLengthOffset));
   __ push(eax);  // Fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ push(Immediate(Smi::FromInt(0)));  // Initial index.
 
   // Generate code for doing the condition check.
@@ -1046,7 +1052,7 @@
   __ push(ecx);  // Enumerable.
   __ push(ebx);  // Current entry.
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ cmp(eax, isolate()->factory()->undefined_value());
   __ j(equal, loop_statement.continue_label());
   __ mov(ebx, eax);
@@ -1058,11 +1064,11 @@
   // Perform the assignment as if via '='.
   { EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1079,7 +1085,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(&exit);
   decrement_loop_depth();
 }
@@ -1207,16 +1213,11 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ mov(eax, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ cmp(eax, isolate()->factory()->the_hole_value());
       __ j(not_equal, done);
-      if (local->mode() == CONST_LEGACY) {
-        __ mov(eax, isolate()->factory()->undefined_value());
-      } else {  // LET || CONST
-        __ push(Immediate(var->name()));
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ push(Immediate(var->name()));
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ jmp(done);
   }
@@ -1242,7 +1243,7 @@
 void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy,
                                          TypeofMode typeof_mode) {
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1274,10 +1275,6 @@
           // binding in harmony mode.
           __ push(Immediate(var->name()));
           __ CallRuntime(Runtime::kThrowReferenceError);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ mov(eax, isolate()->factory()->undefined_value());
         }
         __ bind(&done);
         context()->Plug(eax);
@@ -1356,8 +1353,9 @@
     __ mov(edx, Immediate(Smi::FromInt(flags)));
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in eax.
@@ -1393,7 +1391,7 @@
             __ mov(StoreDescriptor::ReceiverRegister(), Operand(esp, 0));
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
             }
@@ -1421,7 +1419,7 @@
         DCHECK(property->emit_store());
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
@@ -1477,7 +1475,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1550,7 +1548,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1580,7 +1578,8 @@
     Handle<Code> ic =
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1600,7 +1599,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1615,7 +1615,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1680,23 +1679,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1715,7 +1718,7 @@
     }
 
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1727,7 +1730,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(eax);
       break;
     case NAMED_PROPERTY:
@@ -1756,21 +1759,26 @@
   // this.  It stays on the stack while we update the iterator.
   VisitForStackValue(expr->expression());
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ jmp(&suspend);
   __ bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, eax holds the generator object.
   __ RecordGeneratorContinuation();
-  __ pop(ebx);
-  __ cmp(ebx, Immediate(Smi::FromInt(JSGeneratorObject::RETURN)));
-  __ j(not_equal, &resume);
-  __ push(result_register());
+  __ mov(ebx, FieldOperand(eax, JSGeneratorObject::kResumeModeOffset));
+  __ mov(eax, FieldOperand(eax, JSGeneratorObject::kInputOffset));
+  STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
+  STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
+  __ cmp(ebx, Immediate(Smi::FromInt(JSGeneratorObject::kReturn)));
+  __ j(less, &resume);
+  __ Push(result_register());
+  __ j(greater, &exception);
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -1786,8 +1794,7 @@
   __ j(equal, &post_runtime);
   __ push(eax);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ mov(context_register(),
-         Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ bind(&post_runtime);
   PopOperand(result_register());
   EmitReturnSequence();
@@ -1796,101 +1803,6 @@
   context()->Plug(result_register());
 }
 
-
-void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
-    Expression *value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  // The value stays in eax, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed.
-  // ebx will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(ebx);
-
-  // Store input value into generator object.
-  __ mov(FieldOperand(ebx, JSGeneratorObject::kInputOffset), result_register());
-  __ mov(ecx, result_register());
-  __ RecordWriteField(ebx, JSGeneratorObject::kInputOffset, ecx, edx,
-                      kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ mov(esi, FieldOperand(ebx, JSGeneratorObject::kContextOffset));
-  __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
-
-  // Push receiver.
-  __ push(FieldOperand(ebx, JSGeneratorObject::kReceiverOffset));
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ mov(edx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
-  __ mov(edx,
-         FieldOperand(edx, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ mov(ecx, isolate()->factory()->the_hole_value());
-  Label push_argument_holes, push_frame;
-  __ bind(&push_argument_holes);
-  __ sub(edx, Immediate(Smi::FromInt(1)));
-  __ j(carry, &push_frame);
-  __ push(ecx);
-  __ jmp(&push_argument_holes);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ bind(&push_frame);
-  __ call(&resume_frame);
-  __ jmp(&done);
-  __ bind(&resume_frame);
-  __ push(ebp);  // Caller's frame pointer.
-  __ mov(ebp, esp);
-  __ push(esi);  // Callee's context.
-  __ push(edi);  // Callee's JS Function.
-
-  // Load the operand stack size.
-  __ mov(edx, FieldOperand(ebx, JSGeneratorObject::kOperandStackOffset));
-  __ mov(edx, FieldOperand(edx, FixedArray::kLengthOffset));
-  __ SmiUntag(edx);
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ cmp(edx, Immediate(0));
-    __ j(not_zero, &slow_resume);
-    __ mov(edx, FieldOperand(edi, JSFunction::kCodeEntryOffset));
-    __ mov(ecx, FieldOperand(ebx, JSGeneratorObject::kContinuationOffset));
-    __ SmiUntag(ecx);
-    __ add(edx, ecx);
-    __ mov(FieldOperand(ebx, JSGeneratorObject::kContinuationOffset),
-           Immediate(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
-    __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-    __ jmp(edx);
-    __ bind(&slow_resume);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  Label push_operand_holes, call_resume;
-  __ bind(&push_operand_holes);
-  __ sub(edx, Immediate(1));
-  __ j(carry, &call_resume);
-  __ push(ecx);
-  __ jmp(&push_operand_holes);
-  __ bind(&call_resume);
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  __ push(ebx);
-  __ push(result_register());
-  __ Push(Smi::FromInt(resume_mode));
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ Abort(kGeneratorFailedToResume);
-
-  __ bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperand(MemOperand operand) {
   OperandStackDepthIncrement(1);
   __ Push(operand);
@@ -1910,7 +1822,8 @@
 void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
   Label allocate, done_allocate;
 
-  __ Allocate(JSIteratorResult::kSize, eax, ecx, edx, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, eax, ecx, edx, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ jmp(&done_allocate, Label::kNear);
 
   __ bind(&allocate);
@@ -2232,8 +2145,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       // Assignment to var.
       __ Push(Immediate(var->name()));
@@ -2255,25 +2167,6 @@
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
 
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ push(eax);
-      __ push(esi);
-      __ push(Immediate(var->name()));
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackLocal() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, ecx);
-      __ mov(edx, location);
-      __ cmp(edx, isolate()->factory()->the_hole_value());
-      __ j(not_equal, &skip, Label::kNear);
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2296,7 +2189,7 @@
   PopOperand(StoreDescriptor::ReceiverRegister());
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(eax);
 }
 
@@ -2342,44 +2235,7 @@
       CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(eax);
-}
-
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      __ Move(LoadDescriptor::ReceiverRegister(), result_register());
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      PopOperand(LoadDescriptor::ReceiverRegister());              // Object.
-      __ Move(LoadDescriptor::NameRegister(), result_register());  // Key.
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(eax);
 }
 
@@ -2400,7 +2256,7 @@
   if (callee->IsVariableProxy()) {
     { StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the method prologue if it
     // is a sloppy mode method.
@@ -2412,7 +2268,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ mov(LoadDescriptor::ReceiverRegister(), Operand(esp, 0));
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     PushOperand(Operand(esp, 0));
     __ mov(Operand(esp, kPointerSize), eax);
@@ -2447,6 +2304,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ mov(Operand(esp, kPointerSize), eax);
@@ -2471,7 +2329,8 @@
   __ mov(LoadDescriptor::ReceiverRegister(), Operand(esp, 0));
   __ mov(LoadDescriptor::NameRegister(), eax);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   PushOperand(Operand(esp, 0));
@@ -2503,6 +2362,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ mov(Operand(esp, kPointerSize), eax);
@@ -2522,7 +2382,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
     if (FLAG_trace) {
@@ -2543,15 +2403,12 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
-
+  RestoreContext();
   context()->DropAndPlug(1, eax);
 }
 
-
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
   // Push copy of the first argument or undefined if it doesn't exist.
   if (arg_count > 0) {
     __ push(Operand(esp, arg_count * kPointerSize));
@@ -2568,6 +2425,9 @@
   // Push the start position of the scope the calls resides in.
   __ push(Immediate(Smi::FromInt(scope()->start_position())));
 
+  // Push the source position of the eval call.
+  __ push(Immediate(Smi::FromInt(expr->position())));
+
   // Do the runtime call.
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
 }
@@ -2590,7 +2450,7 @@
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperand(eax);  // Function.
     PushOperand(edx);  // Receiver.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the function
     // and receiver and have the slow path jump around this code.
@@ -2614,7 +2474,7 @@
 
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
-  // In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
+  // In a call to eval, we first call Runtime_ResolvePossiblyDirectEval
   // to resolve the function we need to call.  Then we call the resolved
   // function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
@@ -2630,12 +2490,12 @@
   // Push a copy of the function (found below the arguments) and
   // resolve eval.
   __ push(Operand(esp, (arg_count + 1) * kPointerSize));
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the stack with the resolved function.
   __ mov(Operand(esp, (arg_count + 1) * kPointerSize), eax);
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
 
   SetCallPosition(expr);
   __ mov(edi, Operand(esp, (arg_count + 1) * kPointerSize));
@@ -2645,8 +2505,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, eax);
 }
 
@@ -2685,9 +2544,8 @@
   CallConstructStub stub(isolate());
   __ call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(eax);
 }
 
@@ -2728,9 +2586,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->Plug(eax);
 }
 
@@ -3124,7 +2980,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to edi.
   int const argc = args->length() - 2;
   __ mov(edi, Operand(esp, (argc + 1) * kPointerSize));
@@ -3132,8 +2988,7 @@
   __ mov(eax, Immediate(argc));
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, eax);
 }
@@ -3187,13 +3042,6 @@
   context()->Plug(eax);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ mov(eax, NativeContextOperand());
-  __ mov(eax, ContextOperand(eax, Context::ORDINARY_HAS_INSTANCE_INDEX));
-  context()->Plug(eax);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3212,7 +3060,8 @@
 
   Label runtime, done;
 
-  __ Allocate(JSIteratorResult::kSize, eax, ecx, edx, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, eax, ecx, edx, &runtime,
+              NO_ALLOCATION_FLAGS);
   __ mov(ebx, NativeContextOperand());
   __ mov(ebx, ContextOperand(ebx, Context::ITERATOR_RESULT_MAP_INDEX));
   __ mov(FieldOperand(eax, HeapObject::kMapOffset), ebx);
@@ -3253,9 +3102,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 
@@ -3340,7 +3187,8 @@
                         &materialize_true);
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
         __ bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         if (context()->IsAccumulatorValue()) {
           __ mov(eax, isolate()->factory()->true_value());
         } else {
@@ -3348,7 +3196,8 @@
         }
         __ jmp(&done, Label::kNear);
         __ bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         if (context()->IsAccumulatorValue()) {
           __ mov(eax, isolate()->factory()->false_value());
         } else {
@@ -3447,9 +3296,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3504,7 +3353,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3552,7 +3401,8 @@
         { EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(eax);
         }
         // For all contexts except EffectContext We have the result on
@@ -3564,7 +3414,8 @@
         // Perform the assignment as if via '='.
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(eax);
       }
       break;
@@ -3574,7 +3425,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3613,7 +3464,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         // Result is on the stack
         if (!context()->IsEffect()) {
@@ -3709,7 +3560,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // First we try a fast inlined version of the compare when one of
   // the operands is a literal.
@@ -3729,7 +3579,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ cmp(eax, isolate()->factory()->true_value());
       Split(equal, if_true, if_false, fall_through);
@@ -3737,6 +3588,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       PopOperand(edx);
       InstanceOfStub stub(isolate());
       __ CallStub(&stub);
@@ -3748,6 +3600,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cc = CompareIC::ComputeCondition(op);
       PopOperand(edx);
 
diff --git a/src/full-codegen/mips/full-codegen-mips.cc b/src/full-codegen/mips/full-codegen-mips.cc
index f329a23..e61c3e4 100644
--- a/src/full-codegen/mips/full-codegen-mips.cc
+++ b/src/full-codegen/mips/full-codegen-mips.cc
@@ -186,7 +186,8 @@
       __ push(a1);
       __ Push(info->scope()->GetScopeInfo(info->isolate()));
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -242,7 +243,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -305,7 +307,8 @@
 
   // Visit the declarations and body unless there is an illegal
   // redeclaration.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -318,7 +321,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     __ LoadRoot(at, Heap::kStackLimitRootIndex);
     __ Branch(&ok, hs, sp, Operand(at));
@@ -397,11 +401,11 @@
   EmitProfilingCounterReset();
 
   __ bind(&ok);
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -459,6 +463,9 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+}
 
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
@@ -724,7 +731,7 @@
 
   Label skip;
   if (should_normalize) __ Branch(&skip);
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ LoadRoot(t0, Heap::kTrueValueRootIndex);
     Split(eq, a0, Operand(t0), if_true, if_false, NULL);
@@ -758,15 +765,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                        : isolate()->factory()->undefined_value(),
-                    zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -785,7 +790,7 @@
           __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
           __ sw(at, ContextMemOperand(cp, variable->index()));
           // No write barrier since the_hole_value is in old space.
-          PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+          PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -807,6 +812,7 @@
       __ Push(a2, a0);
       __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -852,7 +858,7 @@
                                 kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET,
                                 OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -864,6 +870,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -895,7 +902,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -945,7 +952,7 @@
 
     Label skip;
     __ Branch(&skip);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ LoadRoot(at, Heap::kTrueValueRootIndex);
     __ Branch(&next_test, ne, v0, Operand(at));
     __ Drop(1);
@@ -972,12 +979,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -1013,15 +1020,13 @@
   __ CallStub(&stub);
   __ mov(a0, v0);
   __ bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ push(a0);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime;
   __ CheckEnumCache(&call_runtime);
 
@@ -1035,7 +1040,7 @@
   __ bind(&call_runtime);
   __ push(a0);  // Duplicate the enumerable object on the stack.
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
 
   // If we got a map from the runtime call, we can do a fast
   // modification check. Otherwise, we got a fixed array, and we have
@@ -1073,7 +1078,7 @@
   __ Push(a1, v0);  // Smi and array
   __ lw(a1, FieldMemOperand(v0, FixedArray::kLengthOffset));
   __ Push(a1);  // Fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ li(a0, Operand(Smi::FromInt(0)));
   __ Push(a0);  // Initial index.
 
@@ -1114,7 +1119,7 @@
   // just skip it.
   __ Push(a1, a3);  // Enumerable and current entry.
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ mov(a3, result_register());
   __ LoadRoot(at, Heap::kUndefinedValueRootIndex);
   __ Branch(loop_statement.continue_label(), eq, a3, Operand(at));
@@ -1126,11 +1131,11 @@
   // Perform the assignment as if via '='.
   { EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1149,7 +1154,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(&exit);
   decrement_loop_depth();
 }
@@ -1278,19 +1283,13 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ lw(v0, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
       __ subu(at, v0, at);  // Sub as compare: at == 0 on eq.
-      if (local->mode() == CONST_LEGACY) {
-        __ LoadRoot(a0, Heap::kUndefinedValueRootIndex);
-        __ Movz(v0, a0, at);  // Conditional move: return Undefined if TheHole.
-      } else {  // LET || CONST
-        __ Branch(done, ne, at, Operand(zero_reg));
-        __ li(a0, Operand(var->name()));
-        __ push(a0);
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ Branch(done, ne, at, Operand(zero_reg));
+      __ li(a0, Operand(var->name()));
+      __ push(a0);
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ Branch(done);
   }
@@ -1314,7 +1313,7 @@
                                          TypeofMode typeof_mode) {
   // Record position before possible IC call.
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1348,11 +1347,6 @@
           __ push(a0);
           __ CallRuntime(Runtime::kThrowReferenceError);
           __ bind(&done);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ LoadRoot(a0, Heap::kUndefinedValueRootIndex);
-          __ Movz(v0, a0, at);  // Conditional move: Undefined if TheHole.
         }
         context()->Plug(v0);
         break;
@@ -1424,8 +1418,9 @@
   } else {
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in v0.
@@ -1462,7 +1457,7 @@
             __ lw(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
 
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
@@ -1496,7 +1491,7 @@
         DCHECK(property->emit_store());
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
@@ -1553,7 +1548,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1625,7 +1620,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1657,7 +1652,8 @@
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1677,7 +1673,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1692,7 +1689,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1761,23 +1757,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1797,7 +1797,7 @@
     }
 
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1809,7 +1809,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(v0);
       break;
     case NAMED_PROPERTY:
@@ -1838,20 +1838,24 @@
   // this.  It stays on the stack while we update the iterator.
   VisitForStackValue(expr->expression());
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ jmp(&suspend);
   __ bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, v0 holds the generator object.
   __ RecordGeneratorContinuation();
-  __ pop(a1);
-  __ Branch(&resume, ne, a1, Operand(Smi::FromInt(JSGeneratorObject::RETURN)));
-  __ push(result_register());
+  __ lw(a1, FieldMemOperand(v0, JSGeneratorObject::kResumeModeOffset));
+  __ lw(v0, FieldMemOperand(v0, JSGeneratorObject::kInputOffset));
+  __ Branch(&resume, eq, a1, Operand(Smi::FromInt(JSGeneratorObject::kNext)));
+  __ Push(result_register());
+  __ Branch(&exception, eq, a1,
+            Operand(Smi::FromInt(JSGeneratorObject::kThrow)));
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -1866,7 +1870,7 @@
   __ Branch(&post_runtime, eq, sp, Operand(a1));
   __ push(v0);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ bind(&post_runtime);
   PopOperand(result_register());
   EmitReturnSequence();
@@ -1875,103 +1879,6 @@
   context()->Plug(result_register());
 }
 
-
-void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
-    Expression *value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  // The value stays in a0, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed.
-  // a1 will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(a1);
-
-  // Store input value into generator object.
-  __ sw(result_register(),
-        FieldMemOperand(a1, JSGeneratorObject::kInputOffset));
-  __ mov(a2, result_register());
-  __ RecordWriteField(a1, JSGeneratorObject::kInputOffset, a2, a3,
-                      kRAHasBeenSaved, kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ lw(cp, FieldMemOperand(a1, JSGeneratorObject::kContextOffset));
-  __ lw(t0, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
-
-  // Load receiver and store as the first argument.
-  __ lw(a2, FieldMemOperand(a1, JSGeneratorObject::kReceiverOffset));
-  __ push(a2);
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ lw(a3, FieldMemOperand(t0, JSFunction::kSharedFunctionInfoOffset));
-  __ lw(a3,
-        FieldMemOperand(a3, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ LoadRoot(a2, Heap::kTheHoleValueRootIndex);
-  Label push_argument_holes, push_frame;
-  __ bind(&push_argument_holes);
-  __ Subu(a3, a3, Operand(Smi::FromInt(1)));
-  __ Branch(&push_frame, lt, a3, Operand(zero_reg));
-  __ push(a2);
-  __ jmp(&push_argument_holes);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ bind(&push_frame);
-  __ Call(&resume_frame);
-  __ jmp(&done);
-  __ bind(&resume_frame);
-  // ra = return address.
-  // fp = caller's frame pointer.
-  // cp = callee's context,
-  // t0 = callee's JS function.
-  __ PushStandardFrame(t0);
-
-  // Load the operand stack size.
-  __ lw(a3, FieldMemOperand(a1, JSGeneratorObject::kOperandStackOffset));
-  __ lw(a3, FieldMemOperand(a3, FixedArray::kLengthOffset));
-  __ SmiUntag(a3);
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ Branch(&slow_resume, ne, a3, Operand(zero_reg));
-    __ lw(a3, FieldMemOperand(t0, JSFunction::kCodeEntryOffset));
-    __ lw(a2, FieldMemOperand(a1, JSGeneratorObject::kContinuationOffset));
-    __ SmiUntag(a2);
-    __ Addu(a3, a3, Operand(a2));
-    __ li(a2, Operand(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
-    __ sw(a2, FieldMemOperand(a1, JSGeneratorObject::kContinuationOffset));
-    __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-    __ Jump(a3);
-    __ bind(&slow_resume);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  Label push_operand_holes, call_resume;
-  __ bind(&push_operand_holes);
-  __ Subu(a3, a3, Operand(1));
-  __ Branch(&call_resume, lt, a3, Operand(zero_reg));
-  __ push(a2);
-  __ Branch(&push_operand_holes);
-  __ bind(&call_resume);
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  DCHECK(!result_register().is(a1));
-  __ Push(a1, result_register());
-  __ Push(Smi::FromInt(resume_mode));
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ stop("not-reached");
-
-  __ bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperands(Register reg1, Register reg2) {
   OperandStackDepthIncrement(2);
   __ Push(reg1, reg2);
@@ -2006,7 +1913,8 @@
 void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
   Label allocate, done_allocate;
 
-  __ Allocate(JSIteratorResult::kSize, v0, a2, a3, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, v0, a2, a3, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ jmp(&done_allocate);
 
   __ bind(&allocate);
@@ -2333,8 +2241,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       // Assignment to var.
       __ Push(var->name());
@@ -2356,24 +2263,6 @@
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
 
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ li(a0, Operand(var->name()));
-      __ Push(v0, cp, a0);  // Context and name.
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackAllocated() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, a1);
-      __ lw(a2, location);
-      __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
-      __ Branch(&skip, ne, a2, Operand(at));
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2397,7 +2286,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(v0);
 }
 
@@ -2448,44 +2337,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(v0);
-}
-
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      __ Move(LoadDescriptor::ReceiverRegister(), v0);
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      __ Move(LoadDescriptor::NameRegister(), v0);
-      PopOperand(LoadDescriptor::ReceiverRegister());
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(v0);
 }
 
@@ -2506,7 +2358,7 @@
   if (callee->IsVariableProxy()) {
     { StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the method prologue if it
     // is a sloppy mode method.
@@ -2519,7 +2371,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ lw(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     __ lw(at, MemOperand(sp, 0));
     PushOperand(at);
@@ -2556,6 +2409,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ sw(v0, MemOperand(sp, kPointerSize));
@@ -2580,7 +2434,8 @@
   __ lw(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
   __ Move(LoadDescriptor::NameRegister(), v0);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   __ lw(at, MemOperand(sp, 0));
@@ -2614,6 +2469,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ sw(v0, MemOperand(sp, kPointerSize));
@@ -2633,7 +2489,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Record source position of the IC call.
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
@@ -2655,31 +2511,33 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, v0);
 }
 
-
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
-  // t3: copy of the first argument or undefined if it doesn't exist.
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
+  // t4: copy of the first argument or undefined if it doesn't exist.
   if (arg_count > 0) {
-    __ lw(t3, MemOperand(sp, arg_count * kPointerSize));
+    __ lw(t4, MemOperand(sp, arg_count * kPointerSize));
   } else {
-    __ LoadRoot(t3, Heap::kUndefinedValueRootIndex);
+    __ LoadRoot(t4, Heap::kUndefinedValueRootIndex);
   }
 
-  // t2: the receiver of the enclosing function.
-  __ lw(t2, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
+  // t3: the receiver of the enclosing function.
+  __ lw(t3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
 
-  // t1: the language mode.
-  __ li(t1, Operand(Smi::FromInt(language_mode())));
+  // t2: the language mode.
+  __ li(t2, Operand(Smi::FromInt(language_mode())));
 
-  // t0: the start position of the scope the calls resides in.
-  __ li(t0, Operand(Smi::FromInt(scope()->start_position())));
+  // t1: the start position of the scope the calls resides in.
+  __ li(t1, Operand(Smi::FromInt(scope()->start_position())));
+
+  // t0: the source position of the eval call.
+  __ li(t0, Operand(Smi::FromInt(expr->position())));
 
   // Do the runtime call.
-  __ Push(t3, t2, t1, t0);
+  __ Push(t4, t3, t2, t1, t0);
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
 }
 
@@ -2701,7 +2559,7 @@
     __ Push(callee->name());
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperands(v0, v1);  // Function, receiver.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the
     // function and receiver and have the slow path jump around this
@@ -2728,7 +2586,7 @@
 
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
-  // In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
+  // In a call to eval, we first call Runtime_ResolvePossiblyDirectEval
   // to resolve the function we need to call.  Then we call the resolved
   // function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
@@ -2744,12 +2602,12 @@
   // resolve eval.
   __ lw(a1, MemOperand(sp, (arg_count + 1) * kPointerSize));
   __ push(a1);
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the stack with the resolved function.
   __ sw(v0, MemOperand(sp, (arg_count + 1) * kPointerSize));
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
   // Record source position for debugger.
   SetCallPosition(expr);
   __ lw(a1, MemOperand(sp, (arg_count + 1) * kPointerSize));
@@ -2759,8 +2617,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, v0);
 }
 
@@ -2799,9 +2656,8 @@
   CallConstructStub stub(isolate());
   __ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(v0);
 }
 
@@ -2844,9 +2700,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->Plug(v0);
 }
 
@@ -3250,7 +3104,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to a1.
   int const argc = args->length() - 2;
   __ lw(a1, MemOperand(sp, (argc + 1) * kPointerSize));
@@ -3258,8 +3112,7 @@
   __ li(a0, Operand(argc));
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, v0);
 }
@@ -3310,12 +3163,6 @@
   context()->Plug(v0);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ LoadNativeContextSlot(Context::ORDINARY_HAS_INSTANCE_INDEX, v0);
-  context()->Plug(v0);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3335,7 +3182,8 @@
 
   Label runtime, done;
 
-  __ Allocate(JSIteratorResult::kSize, v0, a2, a3, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, v0, a2, a3, &runtime,
+              NO_ALLOCATION_FLAGS);
   __ LoadNativeContextSlot(Context::ITERATOR_RESULT_MAP_INDEX, a1);
   __ Pop(a2, a3);
   __ LoadRoot(t0, Heap::kEmptyFixedArrayRootIndex);
@@ -3376,9 +3224,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 
@@ -3462,12 +3308,14 @@
                         &materialize_true);
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
         __ bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(v0, Heap::kTrueValueRootIndex);
         if (context()->IsStackValue()) __ push(v0);
         __ jmp(&done);
         __ bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(v0, Heap::kFalseValueRootIndex);
         if (context()->IsStackValue()) __ push(v0);
         __ bind(&done);
@@ -3567,9 +3415,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3620,7 +3468,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3666,7 +3514,8 @@
         { EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(v0);
         }
         // For all contexts except EffectConstant we have the result on
@@ -3677,7 +3526,8 @@
       } else {
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(v0);
       }
       break;
@@ -3688,7 +3538,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3728,7 +3578,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3825,7 +3675,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // First we try a fast inlined version of the compare when one of
   // the operands is a literal.
@@ -3845,7 +3694,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ LoadRoot(t0, Heap::kTrueValueRootIndex);
       Split(eq, v0, Operand(t0), if_true, if_false, fall_through);
@@ -3853,6 +3703,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       __ mov(a0, result_register());
       PopOperand(a1);
       InstanceOfStub stub(isolate());
@@ -3865,6 +3716,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cc = CompareIC::ComputeCondition(op);
       __ mov(a0, result_register());
       PopOperand(a1);
diff --git a/src/full-codegen/mips64/full-codegen-mips64.cc b/src/full-codegen/mips64/full-codegen-mips64.cc
index 681abd1..a93489d 100644
--- a/src/full-codegen/mips64/full-codegen-mips64.cc
+++ b/src/full-codegen/mips64/full-codegen-mips64.cc
@@ -185,7 +185,8 @@
       __ push(a1);
       __ Push(info->scope()->GetScopeInfo(info->isolate()));
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -241,7 +242,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -302,7 +304,8 @@
   }
 
   // Visit the declarations and body.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -315,7 +318,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     __ LoadRoot(at, Heap::kStackLimitRootIndex);
     __ Branch(&ok, hs, sp, Operand(at));
@@ -396,11 +400,11 @@
   EmitProfilingCounterReset();
 
   __ bind(&ok);
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -458,6 +462,9 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+}
 
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
@@ -723,7 +730,7 @@
 
   Label skip;
   if (should_normalize) __ Branch(&skip);
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ LoadRoot(a4, Heap::kTrueValueRootIndex);
     Split(eq, a0, Operand(a4), if_true, if_false, NULL);
@@ -757,15 +764,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                        : isolate()->factory()->undefined_value(),
-                    zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -784,7 +789,7 @@
           __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
           __ sd(at, ContextMemOperand(cp, variable->index()));
           // No write barrier since the_hole_value is in old space.
-          PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+          PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -806,6 +811,7 @@
       __ Push(a2, a0);
       __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -851,7 +857,7 @@
                                 kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET,
                                 OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -863,6 +869,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -894,7 +901,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -944,7 +951,7 @@
 
     Label skip;
     __ Branch(&skip);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ LoadRoot(at, Heap::kTrueValueRootIndex);
     __ Branch(&next_test, ne, v0, Operand(at));
     __ Drop(1);
@@ -971,12 +978,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -1013,15 +1020,13 @@
   __ CallStub(&stub);
   __ mov(a0, v0);
   __ bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ push(a0);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime;
   __ CheckEnumCache(&call_runtime);
 
@@ -1035,7 +1040,7 @@
   __ bind(&call_runtime);
   __ push(a0);  // Duplicate the enumerable object on the stack.
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
 
   // If we got a map from the runtime call, we can do a fast
   // modification check. Otherwise, we got a fixed array, and we have
@@ -1073,7 +1078,7 @@
   __ Push(a1, v0);  // Smi and array
   __ ld(a1, FieldMemOperand(v0, FixedArray::kLengthOffset));
   __ Push(a1);  // Fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ li(a0, Operand(Smi::FromInt(0)));
   __ Push(a0);  // Initial index.
 
@@ -1115,7 +1120,7 @@
   // just skip it.
   __ Push(a1, a3);  // Enumerable and current entry.
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ mov(a3, result_register());
   __ LoadRoot(at, Heap::kUndefinedValueRootIndex);
   __ Branch(loop_statement.continue_label(), eq, a3, Operand(at));
@@ -1127,11 +1132,11 @@
   // Perform the assignment as if via '='.
   { EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1150,7 +1155,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(&exit);
   decrement_loop_depth();
 }
@@ -1279,19 +1284,13 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ ld(v0, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
       __ dsubu(at, v0, at);  // Sub as compare: at == 0 on eq.
-      if (local->mode() == CONST_LEGACY) {
-        __ LoadRoot(a0, Heap::kUndefinedValueRootIndex);
-        __ Movz(v0, a0, at);  // Conditional move: return Undefined if TheHole.
-      } else {  // LET || CONST
-        __ Branch(done, ne, at, Operand(zero_reg));
-        __ li(a0, Operand(var->name()));
-        __ push(a0);
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ Branch(done, ne, at, Operand(zero_reg));
+      __ li(a0, Operand(var->name()));
+      __ push(a0);
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ Branch(done);
   }
@@ -1315,7 +1314,7 @@
                                          TypeofMode typeof_mode) {
   // Record position before possible IC call.
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1349,11 +1348,6 @@
           __ push(a0);
           __ CallRuntime(Runtime::kThrowReferenceError);
           __ bind(&done);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ LoadRoot(a0, Heap::kUndefinedValueRootIndex);
-          __ Movz(v0, a0, at);  // Conditional move: Undefined if TheHole.
         }
         context()->Plug(v0);
         break;
@@ -1425,8 +1419,9 @@
   } else {
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in v0.
@@ -1463,7 +1458,7 @@
             __ ld(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
 
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
@@ -1497,7 +1492,7 @@
         DCHECK(property->emit_store());
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
@@ -1554,7 +1549,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1626,7 +1621,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1658,7 +1653,8 @@
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1678,7 +1674,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1693,7 +1690,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1762,23 +1758,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1798,7 +1798,7 @@
     }
 
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1810,7 +1810,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(v0);
       break;
     case NAMED_PROPERTY:
@@ -1839,20 +1839,24 @@
   // this.  It stays on the stack while we update the iterator.
   VisitForStackValue(expr->expression());
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ jmp(&suspend);
   __ bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, v0 holds the generator object.
   __ RecordGeneratorContinuation();
-  __ pop(a1);
-  __ Branch(&resume, ne, a1, Operand(Smi::FromInt(JSGeneratorObject::RETURN)));
-  __ push(result_register());
+  __ ld(a1, FieldMemOperand(v0, JSGeneratorObject::kResumeModeOffset));
+  __ ld(v0, FieldMemOperand(v0, JSGeneratorObject::kInputOffset));
+  __ Branch(&resume, eq, a1, Operand(Smi::FromInt(JSGeneratorObject::kNext)));
+  __ Push(result_register());
+  __ Branch(&exception, eq, a1,
+            Operand(Smi::FromInt(JSGeneratorObject::kThrow)));
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -1867,7 +1871,7 @@
   __ Branch(&post_runtime, eq, sp, Operand(a1));
   __ push(v0);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ bind(&post_runtime);
   PopOperand(result_register());
   EmitReturnSequence();
@@ -1876,105 +1880,6 @@
   context()->Plug(result_register());
 }
 
-
-void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
-    Expression *value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  // The value stays in a0, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed.
-  // a1 will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(a1);
-
-  // Store input value into generator object.
-  __ sd(result_register(),
-        FieldMemOperand(a1, JSGeneratorObject::kInputOffset));
-  __ mov(a2, result_register());
-  __ RecordWriteField(a1, JSGeneratorObject::kInputOffset, a2, a3,
-                      kRAHasBeenSaved, kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ ld(cp, FieldMemOperand(a1, JSGeneratorObject::kContextOffset));
-  __ ld(a4, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
-
-  // Load receiver and store as the first argument.
-  __ ld(a2, FieldMemOperand(a1, JSGeneratorObject::kReceiverOffset));
-  __ push(a2);
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ ld(a3, FieldMemOperand(a4, JSFunction::kSharedFunctionInfoOffset));
-  // The argument count is stored as int32_t on 64-bit platforms.
-  // TODO(plind): Smi on 32-bit platforms.
-  __ lw(a3,
-        FieldMemOperand(a3, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ LoadRoot(a2, Heap::kTheHoleValueRootIndex);
-  Label push_argument_holes, push_frame;
-  __ bind(&push_argument_holes);
-  __ Dsubu(a3, a3, Operand(1));
-  __ Branch(&push_frame, lt, a3, Operand(zero_reg));
-  __ push(a2);
-  __ jmp(&push_argument_holes);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ bind(&push_frame);
-  __ Call(&resume_frame);
-  __ jmp(&done);
-  __ bind(&resume_frame);
-  // ra = return address.
-  // fp = caller's frame pointer.
-  // cp = callee's context,
-  // a4 = callee's JS function.
-  __ PushStandardFrame(a4);
-
-  // Load the operand stack size.
-  __ ld(a3, FieldMemOperand(a1, JSGeneratorObject::kOperandStackOffset));
-  __ ld(a3, FieldMemOperand(a3, FixedArray::kLengthOffset));
-  __ SmiUntag(a3);
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ Branch(&slow_resume, ne, a3, Operand(zero_reg));
-    __ ld(a3, FieldMemOperand(a4, JSFunction::kCodeEntryOffset));
-    __ ld(a2, FieldMemOperand(a1, JSGeneratorObject::kContinuationOffset));
-    __ SmiUntag(a2);
-    __ Daddu(a3, a3, Operand(a2));
-    __ li(a2, Operand(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
-    __ sd(a2, FieldMemOperand(a1, JSGeneratorObject::kContinuationOffset));
-    __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-    __ Jump(a3);
-    __ bind(&slow_resume);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  Label push_operand_holes, call_resume;
-  __ bind(&push_operand_holes);
-  __ Dsubu(a3, a3, Operand(1));
-  __ Branch(&call_resume, lt, a3, Operand(zero_reg));
-  __ push(a2);
-  __ Branch(&push_operand_holes);
-  __ bind(&call_resume);
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  DCHECK(!result_register().is(a1));
-  __ Push(a1, result_register());
-  __ Push(Smi::FromInt(resume_mode));
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ stop("not-reached");
-
-  __ bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperands(Register reg1, Register reg2) {
   OperandStackDepthIncrement(2);
   __ Push(reg1, reg2);
@@ -2009,7 +1914,8 @@
 void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
   Label allocate, done_allocate;
 
-  __ Allocate(JSIteratorResult::kSize, v0, a2, a3, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, v0, a2, a3, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ jmp(&done_allocate);
 
   __ bind(&allocate);
@@ -2335,8 +2241,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       __ Push(var->name());
       __ Push(v0);
@@ -2357,24 +2262,6 @@
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
 
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ li(a0, Operand(var->name()));
-      __ Push(v0, cp, a0);  // Context and name.
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackAllocated() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, a1);
-      __ ld(a2, location);
-      __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
-      __ Branch(&skip, ne, a2, Operand(at));
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2398,7 +2285,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(v0);
 }
 
@@ -2449,44 +2336,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(v0);
-}
-
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      __ Move(LoadDescriptor::ReceiverRegister(), v0);
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      __ Move(LoadDescriptor::NameRegister(), v0);
-      PopOperand(LoadDescriptor::ReceiverRegister());
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(v0);
 }
 
@@ -2507,7 +2357,7 @@
   if (callee->IsVariableProxy()) {
     { StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the method prologue if it
     // is a sloppy mode method.
@@ -2520,7 +2370,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     __ ld(at, MemOperand(sp, 0));
     PushOperand(at);
@@ -2557,6 +2408,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ sd(v0, MemOperand(sp, kPointerSize));
@@ -2581,7 +2433,8 @@
   __ ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
   __ Move(LoadDescriptor::NameRegister(), v0);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   __ ld(at, MemOperand(sp, 0));
@@ -2615,6 +2468,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ sd(v0, MemOperand(sp, kPointerSize));
@@ -2634,7 +2488,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Record source position of the IC call.
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
@@ -2656,13 +2510,12 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, v0);
 }
 
-
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
   // a6: copy of the first argument or undefined if it doesn't exist.
   if (arg_count > 0) {
     __ ld(a6, MemOperand(sp, arg_count * kPointerSize));
@@ -2679,8 +2532,11 @@
   // a1: the start position of the scope the calls resides in.
   __ li(a1, Operand(Smi::FromInt(scope()->start_position())));
 
+  // a0: the source position of the eval call.
+  __ li(a0, Operand(Smi::FromInt(expr->position())));
+
   // Do the runtime call.
-  __ Push(a6, a5, a4, a1);
+  __ Push(a6, a5, a4, a1, a0);
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
 }
 
@@ -2702,7 +2558,7 @@
     __ Push(callee->name());
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperands(v0, v1);  // Function, receiver.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the
     // function and receiver and have the slow path jump around this
@@ -2729,7 +2585,7 @@
 
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
-  // In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
+  // In a call to eval, we first call Runtime_ResolvePossiblyDirectEval
   // to resolve the function we need to call.  Then we call the resolved
   // function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
@@ -2745,12 +2601,12 @@
   // resolve eval.
   __ ld(a1, MemOperand(sp, (arg_count + 1) * kPointerSize));
   __ push(a1);
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the stack with the resolved function.
   __ sd(v0, MemOperand(sp, (arg_count + 1) * kPointerSize));
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
   // Record source position for debugger.
   SetCallPosition(expr);
   __ ld(a1, MemOperand(sp, (arg_count + 1) * kPointerSize));
@@ -2760,8 +2616,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, v0);
 }
 
@@ -2800,9 +2655,8 @@
   CallConstructStub stub(isolate());
   __ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(v0);
 }
 
@@ -2845,9 +2699,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->Plug(v0);
 }
 
@@ -3252,7 +3104,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to a1.
   int const argc = args->length() - 2;
   __ ld(a1, MemOperand(sp, (argc + 1) * kPointerSize));
@@ -3260,8 +3112,7 @@
   __ li(a0, Operand(argc));
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, v0);
 }
@@ -3312,12 +3163,6 @@
   context()->Plug(v0);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ LoadNativeContextSlot(Context::ORDINARY_HAS_INSTANCE_INDEX, v0);
-  context()->Plug(v0);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3337,7 +3182,8 @@
 
   Label runtime, done;
 
-  __ Allocate(JSIteratorResult::kSize, v0, a2, a3, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, v0, a2, a3, &runtime,
+              NO_ALLOCATION_FLAGS);
   __ LoadNativeContextSlot(Context::ITERATOR_RESULT_MAP_INDEX, a1);
   __ Pop(a2, a3);
   __ LoadRoot(a4, Heap::kEmptyFixedArrayRootIndex);
@@ -3378,9 +3224,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 
@@ -3465,12 +3309,14 @@
                         &materialize_true);
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
         __ bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(v0, Heap::kTrueValueRootIndex);
         if (context()->IsStackValue()) __ push(v0);
         __ jmp(&done);
         __ bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(v0, Heap::kFalseValueRootIndex);
         if (context()->IsStackValue()) __ push(v0);
         __ bind(&done);
@@ -3570,9 +3416,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3623,7 +3469,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3669,7 +3515,8 @@
         { EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(v0);
         }
         // For all contexts except EffectConstant we have the result on
@@ -3680,7 +3527,8 @@
       } else {
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(v0);
       }
       break;
@@ -3691,7 +3539,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3731,7 +3579,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3828,7 +3676,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // First we try a fast inlined version of the compare when one of
   // the operands is a literal.
@@ -3848,7 +3695,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ LoadRoot(a4, Heap::kTrueValueRootIndex);
       Split(eq, v0, Operand(a4), if_true, if_false, fall_through);
@@ -3856,6 +3704,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       __ mov(a0, result_register());
       PopOperand(a1);
       InstanceOfStub stub(isolate());
@@ -3868,6 +3717,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cc = CompareIC::ComputeCondition(op);
       __ mov(a0, result_register());
       PopOperand(a1);
diff --git a/src/full-codegen/ppc/full-codegen-ppc.cc b/src/full-codegen/ppc/full-codegen-ppc.cc
index 301ccf5..50248c1 100644
--- a/src/full-codegen/ppc/full-codegen-ppc.cc
+++ b/src/full-codegen/ppc/full-codegen-ppc.cc
@@ -182,7 +182,8 @@
       __ push(r4);
       __ Push(info->scope()->GetScopeInfo(info->isolate()));
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -238,7 +239,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -300,7 +302,8 @@
   }
 
   // Visit the declarations and body.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -313,7 +316,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     __ LoadRoot(ip, Heap::kStackLimitRootIndex);
     __ cmpl(sp, ip);
@@ -390,11 +394,11 @@
   EmitProfilingCounterReset();
 
   __ bind(&ok);
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -450,6 +454,9 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+}
 
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
@@ -690,7 +697,7 @@
 
   Label skip;
   if (should_normalize) __ b(&skip);
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ LoadRoot(ip, Heap::kTrueValueRootIndex);
     __ cmp(r3, ip);
@@ -723,15 +730,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                        : isolate()->factory()->undefined_value(),
-                    zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -750,7 +755,7 @@
         __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
         __ StoreP(ip, ContextMemOperand(cp, variable->index()), r0);
         // No write barrier since the_hole_value is in old space.
-        PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+        PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -771,6 +776,7 @@
       __ Push(r5, r3);
       __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -812,7 +818,7 @@
       __ RecordWriteContextSlot(cp, offset, result_register(), r5,
                                 kLRHasBeenSaved, kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -824,6 +830,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -855,7 +862,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -904,7 +911,7 @@
 
     Label skip;
     __ b(&skip);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ LoadRoot(ip, Heap::kTrueValueRootIndex);
     __ cmp(r3, ip);
     __ bne(&next_test);
@@ -933,12 +940,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -971,15 +978,13 @@
   ToObjectStub stub(isolate());
   __ CallStub(&stub);
   __ bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ push(r3);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime;
   __ CheckEnumCache(&call_runtime);
 
@@ -993,7 +998,7 @@
   __ bind(&call_runtime);
   __ push(r3);  // Duplicate the enumerable object on the stack.
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
 
   // If we got a map from the runtime call, we can do a fast
   // modification check. Otherwise, we got a fixed array, and we have
@@ -1035,7 +1040,7 @@
   __ Push(r4, r3);  // Smi and array
   __ LoadP(r4, FieldMemOperand(r3, FixedArray::kLengthOffset));
   __ Push(r4);  // Fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ LoadSmiLiteral(r3, Smi::FromInt(0));
   __ Push(r3);  // Initial index.
 
@@ -1079,7 +1084,7 @@
   // just skip it.
   __ Push(r4, r6);  // Enumerable and current entry.
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ mr(r6, r3);
   __ LoadRoot(r0, Heap::kUndefinedValueRootIndex);
   __ cmp(r3, r0);
@@ -1093,11 +1098,11 @@
   {
     EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1116,7 +1121,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(&exit);
   decrement_loop_depth();
 }
@@ -1246,17 +1251,12 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ LoadP(r3, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ CompareRoot(r3, Heap::kTheHoleValueRootIndex);
       __ bne(done);
-      if (local->mode() == CONST_LEGACY) {
-        __ LoadRoot(r3, Heap::kUndefinedValueRootIndex);
-      } else {  // LET || CONST
-        __ mov(r3, Operand(var->name()));
-        __ push(r3);
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ mov(r3, Operand(var->name()));
+      __ push(r3);
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ b(done);
   }
@@ -1280,7 +1280,7 @@
                                          TypeofMode typeof_mode) {
   // Record position before possible IC call.
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1312,10 +1312,6 @@
           __ mov(r3, Operand(var->name()));
           __ push(r3);
           __ CallRuntime(Runtime::kThrowReferenceError);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ LoadRoot(r3, Heap::kUndefinedValueRootIndex);
         }
         __ bind(&done);
         context()->Plug(r3);
@@ -1389,8 +1385,9 @@
   } else {
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in r3.
@@ -1426,7 +1423,7 @@
             __ LoadP(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
 
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
@@ -1460,7 +1457,7 @@
         DCHECK(property->emit_store());
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
@@ -1516,7 +1513,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1589,7 +1586,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1619,7 +1616,8 @@
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1639,7 +1637,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1654,7 +1653,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1723,23 +1721,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1757,7 +1759,7 @@
     }
 
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1769,7 +1771,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(r3);
       break;
     case NAMED_PROPERTY:
@@ -1798,21 +1800,26 @@
   // this.  It stays on the stack while we update the iterator.
   VisitForStackValue(expr->expression());
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ b(&suspend);
   __ bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, r3 holds the generator object.
   __ RecordGeneratorContinuation();
-  __ pop(r4);
-  __ CmpSmiLiteral(r4, Smi::FromInt(JSGeneratorObject::RETURN), r0);
-  __ bne(&resume);
-  __ push(result_register());
+  __ LoadP(r4, FieldMemOperand(r3, JSGeneratorObject::kResumeModeOffset));
+  __ LoadP(r3, FieldMemOperand(r3, JSGeneratorObject::kInputOffset));
+  STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
+  STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
+  __ CmpSmiLiteral(r4, Smi::FromInt(JSGeneratorObject::kReturn), r0);
+  __ blt(&resume);
+  __ Push(result_register());
+  __ bgt(&exception);
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -1829,7 +1836,7 @@
   __ beq(&post_runtime);
   __ push(r3);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ bind(&post_runtime);
   PopOperand(result_register());
   EmitReturnSequence();
@@ -1838,120 +1845,6 @@
   context()->Plug(result_register());
 }
 
-
-void FullCodeGenerator::EmitGeneratorResume(
-    Expression* generator, Expression* value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  // The value stays in r3, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed.
-  // r4 will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(r4);
-
-  // Store input value into generator object.
-  __ StoreP(result_register(),
-            FieldMemOperand(r4, JSGeneratorObject::kInputOffset), r0);
-  __ mr(r5, result_register());
-  __ RecordWriteField(r4, JSGeneratorObject::kInputOffset, r5, r6,
-                      kLRHasBeenSaved, kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ LoadP(cp, FieldMemOperand(r4, JSGeneratorObject::kContextOffset));
-  __ LoadP(r7, FieldMemOperand(r4, JSGeneratorObject::kFunctionOffset));
-
-  // Load receiver and store as the first argument.
-  __ LoadP(r5, FieldMemOperand(r4, JSGeneratorObject::kReceiverOffset));
-  __ push(r5);
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ LoadP(r6, FieldMemOperand(r7, JSFunction::kSharedFunctionInfoOffset));
-  __ LoadWordArith(
-      r6, FieldMemOperand(r6, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ LoadRoot(r5, Heap::kTheHoleValueRootIndex);
-  Label argument_loop, push_frame;
-#if V8_TARGET_ARCH_PPC64
-  __ cmpi(r6, Operand::Zero());
-  __ beq(&push_frame);
-#else
-  __ SmiUntag(r6, SetRC);
-  __ beq(&push_frame, cr0);
-#endif
-  __ mtctr(r6);
-  __ bind(&argument_loop);
-  __ push(r5);
-  __ bdnz(&argument_loop);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ bind(&push_frame);
-  __ b(&resume_frame, SetLK);
-  __ b(&done);
-  __ bind(&resume_frame);
-  // lr = return address.
-  // fp = caller's frame pointer.
-  // cp = callee's context,
-  // r7 = callee's JS function.
-  __ PushStandardFrame(r7);
-
-  // Load the operand stack size.
-  __ LoadP(r6, FieldMemOperand(r4, JSGeneratorObject::kOperandStackOffset));
-  __ LoadP(r6, FieldMemOperand(r6, FixedArray::kLengthOffset));
-  __ SmiUntag(r6, SetRC);
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  Label call_resume;
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ bne(&slow_resume, cr0);
-    __ LoadP(ip, FieldMemOperand(r7, JSFunction::kCodeEntryOffset));
-    {
-      ConstantPoolUnavailableScope constant_pool_unavailable(masm_);
-      if (FLAG_enable_embedded_constant_pool) {
-        __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(ip);
-      }
-      __ LoadP(r5, FieldMemOperand(r4, JSGeneratorObject::kContinuationOffset));
-      __ SmiUntag(r5);
-      __ add(ip, ip, r5);
-      __ LoadSmiLiteral(r5,
-                        Smi::FromInt(JSGeneratorObject::kGeneratorExecuting));
-      __ StoreP(r5, FieldMemOperand(r4, JSGeneratorObject::kContinuationOffset),
-                r0);
-      __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-      __ Jump(ip);
-      __ bind(&slow_resume);
-    }
-  } else {
-    __ beq(&call_resume, cr0);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  Label operand_loop;
-  __ mtctr(r6);
-  __ bind(&operand_loop);
-  __ push(r5);
-  __ bdnz(&operand_loop);
-
-  __ bind(&call_resume);
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  DCHECK(!result_register().is(r4));
-  __ Push(r4, result_register());
-  __ Push(Smi::FromInt(resume_mode));
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ stop("not-reached");
-
-  __ bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperands(Register reg1, Register reg2) {
   OperandStackDepthIncrement(2);
   __ Push(reg1, reg2);
@@ -1987,7 +1880,8 @@
 void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
   Label allocate, done_allocate;
 
-  __ Allocate(JSIteratorResult::kSize, r3, r5, r6, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, r3, r5, r6, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ b(&done_allocate);
 
   __ bind(&allocate);
@@ -2346,8 +2240,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       // Assignment to var.
       __ Push(var->name());
@@ -2368,25 +2261,6 @@
       }
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ push(r3);
-      __ mov(r3, Operand(var->name()));
-      __ Push(cp, r3);  // Context and name.
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackAllocated() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, r4);
-      __ LoadP(r5, location);
-      __ CompareRoot(r5, Heap::kTheHoleValueRootIndex);
-      __ bne(&skip);
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2409,7 +2283,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(r3);
 }
 
@@ -2454,44 +2328,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(r3);
-}
-
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      __ Move(LoadDescriptor::ReceiverRegister(), r3);
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      __ Move(LoadDescriptor::NameRegister(), r3);
-      PopOperand(LoadDescriptor::ReceiverRegister());
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(r3);
 }
 
@@ -2512,7 +2349,7 @@
     {
       StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the method prologue if it
     // is a sloppy mode method.
@@ -2525,7 +2362,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ LoadP(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     __ LoadP(r0, MemOperand(sp, 0));
     PushOperand(r0);
@@ -2562,6 +2400,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ StoreP(r3, MemOperand(sp, kPointerSize));
@@ -2585,7 +2424,8 @@
   __ LoadP(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
   __ Move(LoadDescriptor::NameRegister(), r3);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   __ LoadP(ip, MemOperand(sp, 0));
@@ -2619,6 +2459,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ StoreP(r3, MemOperand(sp, kPointerSize));
@@ -2638,7 +2479,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
     if (FLAG_trace) {
@@ -2659,13 +2500,13 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, r3);
 }
 
 
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
   // r7: copy of the first argument or undefined if it doesn't exist.
   if (arg_count > 0) {
     __ LoadP(r7, MemOperand(sp, arg_count * kPointerSize), r0);
@@ -2682,8 +2523,11 @@
   // r4: the start position of the scope the calls resides in.
   __ LoadSmiLiteral(r4, Smi::FromInt(scope()->start_position()));
 
+  // r3: the source position of the eval call.
+  __ LoadSmiLiteral(r3, Smi::FromInt(expr->position()));
+
   // Do the runtime call.
-  __ Push(r7, r6, r5, r4);
+  __ Push(r7, r6, r5, r4, r3);
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
 }
 
@@ -2704,7 +2548,7 @@
     __ Push(callee->name());
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperands(r3, r4);  // Function, receiver.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the function
     // and receiver and have the slow path jump around this code.
@@ -2731,9 +2575,9 @@
 
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
-  // In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
-  // to resolve the function we need to call.  Then we call the resolved
-  // function using the given arguments.
+  // In a call to eval, we first call
+  // Runtime_ResolvePossiblyDirectEval to resolve the function we need
+  // to call.  Then we call the resolved function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
   int arg_count = args->length();
 
@@ -2748,12 +2592,12 @@
   // resolve eval.
   __ LoadP(r4, MemOperand(sp, (arg_count + 1) * kPointerSize), r0);
   __ push(r4);
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the stack with the resolved function.
   __ StoreP(r3, MemOperand(sp, (arg_count + 1) * kPointerSize), r0);
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
 
   // Record source position for debugger.
   SetCallPosition(expr);
@@ -2764,8 +2608,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, r3);
 }
 
@@ -2804,9 +2647,8 @@
   CallConstructStub stub(isolate());
   __ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(r3);
 }
 
@@ -2849,9 +2691,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->Plug(r3);
 }
 
@@ -3230,7 +3070,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to r4.
   int const argc = args->length() - 2;
   __ LoadP(r4, MemOperand(sp, (argc + 1) * kPointerSize));
@@ -3238,8 +3078,7 @@
   __ mov(r3, Operand(argc));
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, r3);
 }
@@ -3291,12 +3130,6 @@
   context()->Plug(r3);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ LoadNativeContextSlot(Context::ORDINARY_HAS_INSTANCE_INDEX, r3);
-  context()->Plug(r3);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3316,7 +3149,8 @@
 
   Label runtime, done;
 
-  __ Allocate(JSIteratorResult::kSize, r3, r5, r6, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, r3, r5, r6, &runtime,
+              NO_ALLOCATION_FLAGS);
   __ LoadNativeContextSlot(Context::ITERATOR_RESULT_MAP_INDEX, r4);
   __ Pop(r5, r6);
   __ LoadRoot(r7, Heap::kEmptyFixedArrayRootIndex);
@@ -3357,9 +3191,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 
@@ -3439,12 +3271,14 @@
                         &materialize_true, &materialize_true);
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
         __ bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(r3, Heap::kTrueValueRootIndex);
         if (context()->IsStackValue()) __ push(r3);
         __ b(&done);
         __ bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(r3, Heap::kFalseValueRootIndex);
         if (context()->IsStackValue()) __ push(r3);
         __ bind(&done);
@@ -3544,9 +3378,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3598,7 +3432,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3645,7 +3479,8 @@
           EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(r3);
         }
         // For all contexts except EffectConstant We have the result on
@@ -3656,7 +3491,8 @@
       } else {
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(r3);
       }
       break;
@@ -3666,7 +3502,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3705,7 +3541,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3804,7 +3640,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // First we try a fast inlined version of the compare when one of
   // the operands is a literal.
@@ -3824,7 +3659,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ CompareRoot(r3, Heap::kTrueValueRootIndex);
       Split(eq, if_true, if_false, fall_through);
@@ -3832,6 +3668,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       PopOperand(r4);
       InstanceOfStub stub(isolate());
       __ CallStub(&stub);
@@ -3843,6 +3680,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cond = CompareIC::ComputeCondition(op);
       PopOperand(r4);
 
diff --git a/src/full-codegen/s390/full-codegen-s390.cc b/src/full-codegen/s390/full-codegen-s390.cc
index 88bec4c..0d2107d 100644
--- a/src/full-codegen/s390/full-codegen-s390.cc
+++ b/src/full-codegen/s390/full-codegen-s390.cc
@@ -187,7 +187,8 @@
       __ push(r3);
       __ Push(info->scope()->GetScopeInfo(info->isolate()));
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -243,7 +244,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -307,7 +309,8 @@
   }
 
   // Visit the declarations and body.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -320,7 +323,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     __ LoadRoot(ip, Heap::kStackLimitRootIndex);
     __ CmpLogicalP(sp, ip);
@@ -392,11 +396,11 @@
   EmitProfilingCounterReset();
 
   __ bind(&ok);
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -454,6 +458,10 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+}
+
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
   codegen()->GetVar(result_register(), var);
@@ -670,7 +678,7 @@
 
   Label skip;
   if (should_normalize) __ b(&skip);
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ CompareRoot(r2, Heap::kTrueValueRootIndex);
     Split(eq, if_true, if_false, NULL);
@@ -700,15 +708,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                        : isolate()->factory()->undefined_value(),
-                    zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -727,7 +733,7 @@
         __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
         __ StoreP(ip, ContextMemOperand(cp, variable->index()));
         // No write barrier since the_hole_value is in old space.
-        PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+        PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -748,6 +754,7 @@
       __ Push(r4, r2);
       __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -787,7 +794,7 @@
       __ RecordWriteContextSlot(cp, offset, result_register(), r4,
                                 kLRHasBeenSaved, kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -799,6 +806,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -827,7 +835,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -877,7 +885,7 @@
 
     Label skip;
     __ b(&skip);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ CompareRoot(r2, Heap::kTrueValueRootIndex);
     __ bne(&next_test);
     __ Drop(1);
@@ -905,12 +913,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
@@ -942,15 +950,13 @@
   ToObjectStub stub(isolate());
   __ CallStub(&stub);
   __ bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ push(r2);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime;
   __ CheckEnumCache(&call_runtime);
 
@@ -964,7 +970,7 @@
   __ bind(&call_runtime);
   __ push(r2);  // Duplicate the enumerable object on the stack.
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
 
   // If we got a map from the runtime call, we can do a fast
   // modification check. Otherwise, we got a fixed array, and we have
@@ -1005,7 +1011,7 @@
   __ Push(r3, r2);                         // Smi and array
   __ LoadP(r3, FieldMemOperand(r2, FixedArray::kLengthOffset));
   __ Push(r3);  // Fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ LoadSmiLiteral(r2, Smi::FromInt(0));
   __ Push(r2);  // Initial index.
 
@@ -1049,7 +1055,7 @@
   // just skip it.
   __ Push(r3, r5);  // Enumerable and current entry.
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ LoadRR(r5, r2);
   __ LoadRoot(r0, Heap::kUndefinedValueRootIndex);
   __ CmpP(r2, r0);
@@ -1063,11 +1069,11 @@
   {
     EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1086,7 +1092,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(&exit);
   decrement_loop_depth();
 }
@@ -1210,17 +1216,12 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ LoadP(r2, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ CompareRoot(r2, Heap::kTheHoleValueRootIndex);
       __ bne(done);
-      if (local->mode() == CONST_LEGACY) {
-        __ LoadRoot(r2, Heap::kUndefinedValueRootIndex);
-      } else {  // LET || CONST
-        __ mov(r2, Operand(var->name()));
-        __ push(r2);
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ mov(r2, Operand(var->name()));
+      __ push(r2);
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ b(done);
   }
@@ -1242,7 +1243,7 @@
                                          TypeofMode typeof_mode) {
   // Record position before possible IC call.
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1274,10 +1275,6 @@
           __ mov(r2, Operand(var->name()));
           __ push(r2);
           __ CallRuntime(Runtime::kThrowReferenceError);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ LoadRoot(r2, Heap::kUndefinedValueRootIndex);
         }
         __ bind(&done);
         context()->Plug(r2);
@@ -1348,8 +1345,9 @@
   } else {
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in r2.
@@ -1385,7 +1383,7 @@
             __ LoadP(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
 
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
@@ -1419,7 +1417,7 @@
         DCHECK(property->emit_store());
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
@@ -1475,7 +1473,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1547,7 +1545,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1577,7 +1575,8 @@
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1597,7 +1596,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1611,7 +1611,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1680,23 +1679,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1714,7 +1717,7 @@
     }
 
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1726,7 +1729,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(r2);
       break;
     case NAMED_PROPERTY:
@@ -1754,21 +1757,26 @@
   // this.  It stays on the stack while we update the iterator.
   VisitForStackValue(expr->expression());
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ b(&suspend);
   __ bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, r2 holds the generator object.
   __ RecordGeneratorContinuation();
-  __ pop(r3);
-  __ CmpSmiLiteral(r3, Smi::FromInt(JSGeneratorObject::RETURN), r0);
-  __ bne(&resume);
-  __ push(result_register());
+  __ LoadP(r3, FieldMemOperand(r2, JSGeneratorObject::kResumeModeOffset));
+  __ LoadP(r2, FieldMemOperand(r2, JSGeneratorObject::kInputOffset));
+  STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
+  STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
+  __ CmpSmiLiteral(r3, Smi::FromInt(JSGeneratorObject::kReturn), r0);
+  __ blt(&resume);
+  __ Push(result_register());
+  __ bgt(&exception);
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -1785,7 +1793,7 @@
   __ beq(&post_runtime);
   __ push(r2);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ bind(&post_runtime);
   PopOperand(result_register());
   EmitReturnSequence();
@@ -1794,113 +1802,6 @@
   context()->Plug(result_register());
 }
 
-void FullCodeGenerator::EmitGeneratorResume(
-    Expression* generator, Expression* value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  // The value stays in r2, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed.
-  // r3 will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(r3);
-
-  // Store input value into generator object.
-  __ StoreP(result_register(),
-            FieldMemOperand(r3, JSGeneratorObject::kInputOffset), r0);
-  __ LoadRR(r4, result_register());
-  __ RecordWriteField(r3, JSGeneratorObject::kInputOffset, r4, r5,
-                      kLRHasBeenSaved, kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ LoadP(cp, FieldMemOperand(r3, JSGeneratorObject::kContextOffset));
-  __ LoadP(r6, FieldMemOperand(r3, JSGeneratorObject::kFunctionOffset));
-
-  // Load receiver and store as the first argument.
-  __ LoadP(r4, FieldMemOperand(r3, JSGeneratorObject::kReceiverOffset));
-  __ push(r4);
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ LoadP(r5, FieldMemOperand(r6, JSFunction::kSharedFunctionInfoOffset));
-  __ LoadW(
-      r5, FieldMemOperand(r5, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ LoadRoot(r4, Heap::kTheHoleValueRootIndex);
-  Label argument_loop, push_frame;
-#if V8_TARGET_ARCH_S390X
-  __ CmpP(r5, Operand::Zero());
-  __ beq(&push_frame, Label::kNear);
-#else
-  __ SmiUntag(r5);
-  __ beq(&push_frame, Label::kNear);
-#endif
-  __ LoadRR(r0, r5);
-  __ bind(&argument_loop);
-  __ push(r4);
-  __ SubP(r0, Operand(1));
-  __ bne(&argument_loop);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ bind(&push_frame);
-  __ b(r14, &resume_frame);  // brasl
-  __ b(&done);
-  __ bind(&resume_frame);
-  // lr = return address.
-  // fp = caller's frame pointer.
-  // cp = callee's context,
-  // r6 = callee's JS function.
-  __ PushStandardFrame(r6);
-
-  // Load the operand stack size.
-  __ LoadP(r5, FieldMemOperand(r3, JSGeneratorObject::kOperandStackOffset));
-  __ LoadP(r5, FieldMemOperand(r5, FixedArray::kLengthOffset));
-  __ SmiUntag(r5);
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  Label call_resume;
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ bne(&slow_resume, Label::kNear);
-    __ LoadP(ip, FieldMemOperand(r6, JSFunction::kCodeEntryOffset));
-    __ LoadP(r4, FieldMemOperand(r3, JSGeneratorObject::kContinuationOffset));
-    __ SmiUntag(r4);
-    __ AddP(ip, ip, r4);
-    __ LoadSmiLiteral(r4, Smi::FromInt(JSGeneratorObject::kGeneratorExecuting));
-    __ StoreP(r4, FieldMemOperand(r3, JSGeneratorObject::kContinuationOffset));
-    __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-    __ Jump(ip);
-    __ bind(&slow_resume);
-  } else {
-    __ beq(&call_resume);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  Label operand_loop;
-  __ LoadRR(r0, r5);
-  __ bind(&operand_loop);
-  __ push(r4);
-  __ SubP(r0, Operand(1));
-  __ bne(&operand_loop);
-
-  __ bind(&call_resume);
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  DCHECK(!result_register().is(r3));
-  __ Push(r3, result_register());
-  __ Push(Smi::FromInt(resume_mode));
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ stop("not-reached");
-
-  __ bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperands(Register reg1, Register reg2) {
   OperandStackDepthIncrement(2);
   __ Push(reg1, reg2);
@@ -1936,7 +1837,8 @@
 void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
   Label allocate, done_allocate;
 
-  __ Allocate(JSIteratorResult::kSize, r2, r4, r5, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, r2, r4, r5, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ b(&done_allocate);
 
   __ bind(&allocate);
@@ -2292,8 +2194,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       // Assignment to var.
       __ Push(var->name());
@@ -2314,25 +2215,6 @@
       }
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ push(r2);
-      __ mov(r2, Operand(var->name()));
-      __ Push(cp, r2);  // Context and name.
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackAllocated() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, r3);
-      __ LoadP(r4, location);
-      __ CompareRoot(r4, Heap::kTheHoleValueRootIndex);
-      __ bne(&skip);
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2354,7 +2236,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(r2);
 }
 
@@ -2396,43 +2278,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(r2);
-}
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      __ Move(LoadDescriptor::ReceiverRegister(), r2);
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      __ Move(LoadDescriptor::NameRegister(), r2);
-      PopOperand(LoadDescriptor::ReceiverRegister());
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(r2);
 }
 
@@ -2451,7 +2297,7 @@
     {
       StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the method prologue if it
     // is a sloppy mode method.
@@ -2464,7 +2310,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ LoadP(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     __ LoadP(r1, MemOperand(sp, 0));
     PushOperand(r1);
@@ -2500,6 +2347,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ StoreP(r2, MemOperand(sp, kPointerSize));
@@ -2522,7 +2370,8 @@
   __ LoadP(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
   __ Move(LoadDescriptor::NameRegister(), r2);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   __ LoadP(ip, MemOperand(sp, 0));
@@ -2555,6 +2404,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ StoreP(r2, MemOperand(sp, kPointerSize));
@@ -2573,7 +2423,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
     if (FLAG_trace) {
@@ -2594,12 +2444,12 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, r2);
 }
 
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
   // r6: copy of the first argument or undefined if it doesn't exist.
   if (arg_count > 0) {
     __ LoadP(r6, MemOperand(sp, arg_count * kPointerSize), r0);
@@ -2616,8 +2466,11 @@
   // r3: the start position of the scope the calls resides in.
   __ LoadSmiLiteral(r3, Smi::FromInt(scope()->start_position()));
 
+  // r2: the source position of the eval call.
+  __ LoadSmiLiteral(r2, Smi::FromInt(expr->position()));
+
   // Do the runtime call.
-  __ Push(r6, r5, r4, r3);
+  __ Push(r6, r5, r4, r3, r2);
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
 }
 
@@ -2637,7 +2490,7 @@
     __ Push(callee->name());
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperands(r2, r3);  // Function, receiver.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the function
     // and receiver and have the slow path jump around this code.
@@ -2663,9 +2516,9 @@
 }
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
-  // In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
-  // to resolve the function we need to call.  Then we call the resolved
-  // function using the given arguments.
+  // In a call to eval, we first call
+  // Runtime_ResolvePossiblyDirectEval to resolve the function we need
+  // to call.  Then we call the resolved function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
   int arg_count = args->length();
 
@@ -2680,12 +2533,12 @@
   // resolve eval.
   __ LoadP(r3, MemOperand(sp, (arg_count + 1) * kPointerSize), r0);
   __ push(r3);
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the stack with the resolved function.
   __ StoreP(r2, MemOperand(sp, (arg_count + 1) * kPointerSize), r0);
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
 
   // Record source position for debugger.
   SetCallPosition(expr);
@@ -2696,8 +2549,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, r2);
 }
 
@@ -2735,9 +2587,8 @@
   CallConstructStub stub(isolate());
   __ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(r2);
 }
 
@@ -2779,9 +2630,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->Plug(r2);
 }
 
@@ -3146,7 +2995,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to r3.
   int const argc = args->length() - 2;
   __ LoadP(r3, MemOperand(sp, (argc + 1) * kPointerSize));
@@ -3154,8 +3003,7 @@
   __ mov(r2, Operand(argc));
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, r2);
 }
@@ -3202,12 +3050,6 @@
   context()->Plug(r2);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ LoadNativeContextSlot(Context::ORDINARY_HAS_INSTANCE_INDEX, r2);
-  context()->Plug(r2);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3226,7 +3068,8 @@
 
   Label runtime, done;
 
-  __ Allocate(JSIteratorResult::kSize, r2, r4, r5, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, r2, r4, r5, &runtime,
+              NO_ALLOCATION_FLAGS);
   __ LoadNativeContextSlot(Context::ITERATOR_RESULT_MAP_INDEX, r3);
   __ Pop(r4, r5);
   __ LoadRoot(r6, Heap::kEmptyFixedArrayRootIndex);
@@ -3265,9 +3108,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ LoadP(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
@@ -3346,12 +3187,14 @@
                         &materialize_true, &materialize_true);
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
         __ bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(r2, Heap::kTrueValueRootIndex);
         if (context()->IsStackValue()) __ push(r2);
         __ b(&done);
         __ bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         __ LoadRoot(r2, Heap::kFalseValueRootIndex);
         if (context()->IsStackValue()) __ push(r2);
         __ bind(&done);
@@ -3450,9 +3293,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3504,7 +3347,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3551,7 +3394,8 @@
           EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(r2);
         }
         // For all contexts except EffectConstant We have the result on
@@ -3562,7 +3406,8 @@
       } else {
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(r2);
       }
       break;
@@ -3572,7 +3417,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3611,7 +3456,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3705,7 +3550,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // First we try a fast inlined version of the compare when one of
   // the operands is a literal.
@@ -3725,7 +3569,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ CompareRoot(r2, Heap::kTrueValueRootIndex);
       Split(eq, if_true, if_false, fall_through);
@@ -3733,6 +3578,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       PopOperand(r3);
       InstanceOfStub stub(isolate());
       __ CallStub(&stub);
@@ -3744,6 +3590,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cond = CompareIC::ComputeCondition(op);
       PopOperand(r3);
 
diff --git a/src/full-codegen/x64/full-codegen-x64.cc b/src/full-codegen/x64/full-codegen-x64.cc
index 992e7fe..1ef9cee 100644
--- a/src/full-codegen/x64/full-codegen-x64.cc
+++ b/src/full-codegen/x64/full-codegen-x64.cc
@@ -166,7 +166,8 @@
       __ Push(rdi);
       __ Push(info->scope()->GetScopeInfo(info->isolate()));
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -222,7 +223,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -286,7 +288,8 @@
 
   // Visit the declarations and body unless there is an illegal
   // redeclaration.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -299,7 +302,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     __ CompareRoot(rsp, Heap::kStackLimitRootIndex);
     __ j(above_equal, &ok, Label::kNear);
@@ -372,11 +376,11 @@
   }
   __ bind(&ok);
 
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -425,6 +429,9 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
+}
 
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
@@ -689,7 +696,7 @@
 
   Label skip;
   if (should_normalize) __ jmp(&skip, Label::kNear);
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ CompareRoot(rax, Heap::kTrueValueRootIndex);
     Split(equal, if_true, if_false, NULL);
@@ -720,15 +727,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                    : isolate()->factory()->undefined_value(),
-                    zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -747,7 +752,7 @@
         __ LoadRoot(kScratchRegister, Heap::kTheHoleValueRootIndex);
         __ movp(ContextOperand(rsi, variable->index()), kScratchRegister);
         // No write barrier since the hole value is in old space.
-        PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+        PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -767,6 +772,7 @@
       }
       __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -811,7 +817,7 @@
                                 kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET,
                                 OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -821,6 +827,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -851,7 +858,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -901,7 +908,7 @@
 
     Label skip;
     __ jmp(&skip, Label::kNear);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ CompareRoot(rax, Heap::kTrueValueRootIndex);
     __ j(not_equal, &next_test);
     __ Drop(1);
@@ -929,12 +936,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -967,15 +974,13 @@
   ToObjectStub stub(isolate());
   __ CallStub(&stub);
   __ bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ Push(rax);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime;
   __ CheckEnumCache(&call_runtime);
 
@@ -989,7 +994,7 @@
   __ bind(&call_runtime);
   __ Push(rax);  // Duplicate the enumerable object on the stack.
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
 
   // If we got a map from the runtime call, we can do a fast
   // modification check. Otherwise, we got a fixed array, and we have
@@ -1031,7 +1036,7 @@
   __ Push(rax);  // Array
   __ movp(rax, FieldOperand(rax, FixedArray::kLengthOffset));
   __ Push(rax);  // Fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ Push(Smi::FromInt(0));  // Initial index.
 
   // Generate code for doing the condition check.
@@ -1073,7 +1078,7 @@
   __ Push(rcx);  // Enumerable.
   __ Push(rbx);  // Current entry.
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ CompareRoot(rax, Heap::kUndefinedValueRootIndex);
   __ j(equal, loop_statement.continue_label());
   __ movp(rbx, rax);
@@ -1085,11 +1090,11 @@
   // Perform the assignment as if via '='.
   { EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1106,7 +1111,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(&exit);
   decrement_loop_depth();
 }
@@ -1237,16 +1242,11 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ movp(rax, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ CompareRoot(rax, Heap::kTheHoleValueRootIndex);
       __ j(not_equal, done);
-      if (local->mode() == CONST_LEGACY) {
-        __ LoadRoot(rax, Heap::kUndefinedValueRootIndex);
-      } else {  // LET || CONST
-        __ Push(var->name());
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ Push(var->name());
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ jmp(done);
   }
@@ -1270,7 +1270,7 @@
                                          TypeofMode typeof_mode) {
   // Record position before possible IC call.
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1301,10 +1301,6 @@
           // binding in harmony mode.
           __ Push(var->name());
           __ CallRuntime(Runtime::kThrowReferenceError);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ LoadRoot(rax, Heap::kUndefinedValueRootIndex);
         }
         __ bind(&done);
         context()->Plug(rax);
@@ -1382,8 +1378,9 @@
     __ Move(rdx, Smi::FromInt(flags));
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in rax.
@@ -1419,7 +1416,7 @@
             __ movp(StoreDescriptor::ReceiverRegister(), Operand(rsp, 0));
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
 
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
@@ -1448,7 +1445,7 @@
         DCHECK(property->emit_store());
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
@@ -1502,7 +1499,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1575,7 +1572,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1605,7 +1602,8 @@
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1625,7 +1623,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1640,7 +1639,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1704,23 +1702,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1739,7 +1741,7 @@
       EmitBinaryOp(expr->binary_operation(), op);
     }
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1751,7 +1753,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(rax);
       break;
     case NAMED_PROPERTY:
@@ -1780,21 +1782,26 @@
   // this.  It stays on the stack while we update the iterator.
   VisitForStackValue(expr->expression());
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ jmp(&suspend);
   __ bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, rax holds the generator object.
   __ RecordGeneratorContinuation();
-  __ Pop(rbx);
-  __ SmiCompare(rbx, Smi::FromInt(JSGeneratorObject::RETURN));
-  __ j(not_equal, &resume);
+  __ movp(rbx, FieldOperand(rax, JSGeneratorObject::kResumeModeOffset));
+  __ movp(rax, FieldOperand(rax, JSGeneratorObject::kInputOffset));
+  STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
+  STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
+  __ SmiCompare(rbx, Smi::FromInt(JSGeneratorObject::kReturn));
+  __ j(less, &resume);
   __ Push(result_register());
+  __ j(greater, &exception);
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -1810,8 +1817,7 @@
   __ j(equal, &post_runtime);
   __ Push(rax);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ movp(context_register(),
-          Operand(rbp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ bind(&post_runtime);
 
   PopOperand(result_register());
@@ -1821,102 +1827,6 @@
   context()->Plug(result_register());
 }
 
-
-void FullCodeGenerator::EmitGeneratorResume(
-    Expression* generator, Expression* value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  // The value stays in rax, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed.
-  // rbx will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(rbx);
-
-  // Store input value into generator object.
-  __ movp(FieldOperand(rbx, JSGeneratorObject::kInputOffset),
-          result_register());
-  __ movp(rcx, result_register());
-  __ RecordWriteField(rbx, JSGeneratorObject::kInputOffset, rcx, rdx,
-                      kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ movp(rsi, FieldOperand(rbx, JSGeneratorObject::kContextOffset));
-  __ movp(rdi, FieldOperand(rbx, JSGeneratorObject::kFunctionOffset));
-
-  // Push receiver.
-  __ Push(FieldOperand(rbx, JSGeneratorObject::kReceiverOffset));
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ movp(rdx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
-  __ LoadSharedFunctionInfoSpecialField(rdx, rdx,
-      SharedFunctionInfo::kFormalParameterCountOffset);
-  __ LoadRoot(rcx, Heap::kTheHoleValueRootIndex);
-  Label push_argument_holes, push_frame;
-  __ bind(&push_argument_holes);
-  __ subp(rdx, Immediate(1));
-  __ j(carry, &push_frame);
-  __ Push(rcx);
-  __ jmp(&push_argument_holes);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ bind(&push_frame);
-  __ call(&resume_frame);
-  __ jmp(&done);
-  __ bind(&resume_frame);
-  __ pushq(rbp);  // Caller's frame pointer.
-  __ movp(rbp, rsp);
-  __ Push(rsi);  // Callee's context.
-  __ Push(rdi);  // Callee's JS Function.
-
-  // Load the operand stack size.
-  __ movp(rdx, FieldOperand(rbx, JSGeneratorObject::kOperandStackOffset));
-  __ movp(rdx, FieldOperand(rdx, FixedArray::kLengthOffset));
-  __ SmiToInteger32(rdx, rdx);
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ cmpp(rdx, Immediate(0));
-    __ j(not_zero, &slow_resume);
-    __ movp(rdx, FieldOperand(rdi, JSFunction::kCodeEntryOffset));
-    __ SmiToInteger64(rcx,
-        FieldOperand(rbx, JSGeneratorObject::kContinuationOffset));
-    __ addp(rdx, rcx);
-    __ Move(FieldOperand(rbx, JSGeneratorObject::kContinuationOffset),
-            Smi::FromInt(JSGeneratorObject::kGeneratorExecuting));
-    __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-    __ jmp(rdx);
-    __ bind(&slow_resume);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  Label push_operand_holes, call_resume;
-  __ bind(&push_operand_holes);
-  __ subp(rdx, Immediate(1));
-  __ j(carry, &call_resume);
-  __ Push(rcx);
-  __ jmp(&push_operand_holes);
-  __ bind(&call_resume);
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  __ Push(rbx);
-  __ Push(result_register());
-  __ Push(Smi::FromInt(resume_mode));
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ Abort(kGeneratorFailedToResume);
-
-  __ bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperand(MemOperand operand) {
   OperandStackDepthIncrement(1);
   __ Push(operand);
@@ -1936,7 +1846,8 @@
 void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
   Label allocate, done_allocate;
 
-  __ Allocate(JSIteratorResult::kSize, rax, rcx, rdx, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, rax, rcx, rdx, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ jmp(&done_allocate, Label::kNear);
 
   __ bind(&allocate);
@@ -2222,8 +2133,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       // Assignment to var.
       __ Push(var->name());
@@ -2245,25 +2155,6 @@
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
 
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ Push(rax);
-      __ Push(rsi);
-      __ Push(var->name());
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackLocal() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, rcx);
-      __ movp(rdx, location);
-      __ CompareRoot(rdx, Heap::kTheHoleValueRootIndex);
-      __ j(not_equal, &skip);
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2285,7 +2176,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(rax);
 }
 
@@ -2329,45 +2220,7 @@
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
 
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(rax);
-}
-
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      DCHECK(!rax.is(LoadDescriptor::ReceiverRegister()));
-      __ movp(LoadDescriptor::ReceiverRegister(), rax);
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      __ Move(LoadDescriptor::NameRegister(), rax);
-      PopOperand(LoadDescriptor::ReceiverRegister());
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(rax);
 }
 
@@ -2388,7 +2241,7 @@
   if (callee->IsVariableProxy()) {
     { StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the Call builtin if it
     // is a sloppy mode method.
@@ -2400,7 +2253,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ movp(LoadDescriptor::ReceiverRegister(), Operand(rsp, 0));
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     PushOperand(Operand(rsp, 0));
     __ movp(Operand(rsp, kPointerSize), rax);
@@ -2436,6 +2290,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ movp(Operand(rsp, kPointerSize), rax);
@@ -2460,7 +2315,8 @@
   __ movp(LoadDescriptor::ReceiverRegister(), Operand(rsp, 0));
   __ Move(LoadDescriptor::NameRegister(), rax);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   PushOperand(Operand(rsp, 0));
@@ -2493,6 +2349,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ movp(Operand(rsp, kPointerSize), rax);
@@ -2512,7 +2369,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
     if (FLAG_trace) {
@@ -2533,15 +2390,13 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, rax);
 }
 
-
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
   // Push copy of the first argument or undefined if it doesn't exist.
   if (arg_count > 0) {
     __ Push(Operand(rsp, arg_count * kPointerSize));
@@ -2558,6 +2413,9 @@
   // Push the start position of the scope the calls resides in.
   __ Push(Smi::FromInt(scope()->start_position()));
 
+  // Push the source position of the eval call.
+  __ Push(Smi::FromInt(expr->position()));
+
   // Do the runtime call.
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
 }
@@ -2579,7 +2437,7 @@
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperand(rax);  // Function.
     PushOperand(rdx);  // Receiver.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the function
     // and receiver and have the slow path jump around this code.
@@ -2605,7 +2463,7 @@
 
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
-  // In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
+  // In a call to eval, we first call Runtime_ResolvePossiblyDirectEval
   // to resolve the function we need to call.  Then we call the resolved
   // function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
@@ -2620,12 +2478,12 @@
   // Push a copy of the function (found below the arguments) and resolve
   // eval.
   __ Push(Operand(rsp, (arg_count + 1) * kPointerSize));
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the callee.
   __ movp(Operand(rsp, (arg_count + 1) * kPointerSize), rax);
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
 
   SetCallPosition(expr);
   __ movp(rdi, Operand(rsp, (arg_count + 1) * kPointerSize));
@@ -2635,8 +2493,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, rax);
 }
 
@@ -2675,9 +2532,8 @@
   CallConstructStub stub(isolate());
   __ Call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(rax);
 }
 
@@ -2718,10 +2574,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
-
+  RestoreContext();
   context()->Plug(rax);
 }
 
@@ -3113,7 +2966,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to rdi.
   int const argc = args->length() - 2;
   __ movp(rdi, Operand(rsp, (argc + 1) * kPointerSize));
@@ -3121,8 +2974,7 @@
   __ Set(rax, argc);
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, rax);
 }
@@ -3176,12 +3028,6 @@
   context()->Plug(rax);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ LoadNativeContextSlot(Context::ORDINARY_HAS_INSTANCE_INDEX, rax);
-  context()->Plug(rax);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3201,7 +3047,8 @@
 
   Label runtime, done;
 
-  __ Allocate(JSIteratorResult::kSize, rax, rcx, rdx, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, rax, rcx, rdx, &runtime,
+              NO_ALLOCATION_FLAGS);
   __ LoadNativeContextSlot(Context::ITERATOR_RESULT_MAP_INDEX, rbx);
   __ movp(FieldOperand(rax, HeapObject::kMapOffset), rbx);
   __ LoadRoot(rbx, Heap::kEmptyFixedArrayRootIndex);
@@ -3241,9 +3088,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 
@@ -3328,7 +3173,8 @@
                         &materialize_true);
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
         __ bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         if (context()->IsAccumulatorValue()) {
           __ LoadRoot(rax, Heap::kTrueValueRootIndex);
         } else {
@@ -3336,7 +3182,8 @@
         }
         __ jmp(&done, Label::kNear);
         __ bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         if (context()->IsAccumulatorValue()) {
           __ LoadRoot(rax, Heap::kFalseValueRootIndex);
         } else {
@@ -3435,9 +3282,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3490,7 +3337,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3538,7 +3385,8 @@
         { EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(rax);
         }
         // For all contexts except kEffect: We have the result on
@@ -3550,7 +3398,8 @@
         // Perform the assignment as if via '='.
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(rax);
       }
       break;
@@ -3560,7 +3409,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3599,7 +3448,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3695,7 +3544,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // First we try a fast inlined version of the compare when one of
   // the operands is a literal.
@@ -3715,7 +3563,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ CompareRoot(rax, Heap::kTrueValueRootIndex);
       Split(equal, if_true, if_false, fall_through);
@@ -3723,6 +3572,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       PopOperand(rdx);
       InstanceOfStub stub(isolate());
       __ CallStub(&stub);
@@ -3734,6 +3584,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cc = CompareIC::ComputeCondition(op);
       PopOperand(rdx);
 
diff --git a/src/full-codegen/x87/full-codegen-x87.cc b/src/full-codegen/x87/full-codegen-x87.cc
index f14aaf6..d7403fa 100644
--- a/src/full-codegen/x87/full-codegen-x87.cc
+++ b/src/full-codegen/x87/full-codegen-x87.cc
@@ -168,7 +168,8 @@
       __ push(edi);
       __ Push(info->scope()->GetScopeInfo(info->isolate()));
       __ CallRuntime(Runtime::kNewScriptContext);
-      PrepareForBailoutForId(BailoutId::ScriptContext(), TOS_REG);
+      PrepareForBailoutForId(BailoutId::ScriptContext(),
+                             BailoutState::TOS_REGISTER);
       // The new target value is not used, clobbering is safe.
       DCHECK_NULL(info->scope()->new_target_var());
     } else {
@@ -224,7 +225,8 @@
   // Register holding this function and new target are both trashed in case we
   // bailout here. But since that can happen only when new target is not used
   // and we allocate a context, the value of |function_in_register| is correct.
-  PrepareForBailoutForId(BailoutId::FunctionContext(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionContext(),
+                         BailoutState::NO_REGISTERS);
 
   // Possibly set up a local binding to the this function which is used in
   // derived constructors with super calls.
@@ -286,7 +288,8 @@
   }
 
   // Visit the declarations and body.
-  PrepareForBailoutForId(BailoutId::FunctionEntry(), NO_REGISTERS);
+  PrepareForBailoutForId(BailoutId::FunctionEntry(),
+                         BailoutState::NO_REGISTERS);
   {
     Comment cmnt(masm_, "[ Declarations");
     VisitDeclarations(scope()->declarations());
@@ -299,7 +302,8 @@
 
   {
     Comment cmnt(masm_, "[ Stack check");
-    PrepareForBailoutForId(BailoutId::Declarations(), NO_REGISTERS);
+    PrepareForBailoutForId(BailoutId::Declarations(),
+                           BailoutState::NO_REGISTERS);
     Label ok;
     ExternalReference stack_limit =
         ExternalReference::address_of_stack_limit(isolate());
@@ -366,11 +370,11 @@
   EmitProfilingCounterReset();
 
   __ bind(&ok);
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
   // Record a mapping of the OSR id to this PC.  This is used if the OSR
   // entry becomes the target of a bailout.  We don't expect it to be, but
   // we want it to work if it is.
-  PrepareForBailoutForId(stmt->OsrEntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->OsrEntryId(), BailoutState::NO_REGISTERS);
 }
 
 void FullCodeGenerator::EmitProfilingCounterHandlingForReturnSequence(
@@ -420,6 +424,9 @@
   }
 }
 
+void FullCodeGenerator::RestoreContext() {
+  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+}
 
 void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
   DCHECK(var->IsStackAllocated() || var->IsContextSlot());
@@ -674,7 +681,7 @@
 
   Label skip;
   if (should_normalize) __ jmp(&skip, Label::kNear);
-  PrepareForBailout(expr, TOS_REG);
+  PrepareForBailout(expr, BailoutState::TOS_REGISTER);
   if (should_normalize) {
     __ cmp(eax, isolate()->factory()->true_value());
     Split(equal, if_true, if_false, NULL);
@@ -705,14 +712,13 @@
   VariableProxy* proxy = declaration->proxy();
   VariableMode mode = declaration->mode();
   Variable* variable = proxy->var();
-  bool hole_init = mode == LET || mode == CONST || mode == CONST_LEGACY;
+  bool hole_init = mode == LET || mode == CONST;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals_->Add(variable->name(), zone());
-      globals_->Add(variable->binding_needs_init()
-                        ? isolate()->factory()->the_hole_value()
-                        : isolate()->factory()->undefined_value(), zone());
+      globals_->Add(isolate()->factory()->undefined_value(), zone());
       break;
 
     case VariableLocation::PARAMETER:
@@ -731,7 +737,7 @@
         __ mov(ContextOperand(esi, variable->index()),
                Immediate(isolate()->factory()->the_hole_value()));
         // No write barrier since the hole value is in old space.
-        PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+        PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       }
       break;
 
@@ -752,6 +758,7 @@
       __ push(
           Immediate(Smi::FromInt(variable->DeclarationPropertyAttributes())));
       __ CallRuntime(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -790,7 +797,7 @@
       __ RecordWriteContextSlot(esi, Context::SlotOffset(variable->index()),
                                 result_register(), ecx, kDontSaveFPRegs,
                                 EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
-      PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
 
@@ -800,6 +807,7 @@
       VisitForStackValue(declaration->fun());
       PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
       CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
   }
@@ -830,7 +838,7 @@
 
   // Keep the switch value on the stack until a case matches.
   VisitForStackValue(stmt->tag());
-  PrepareForBailoutForId(stmt->EntryId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->EntryId(), BailoutState::NO_REGISTERS);
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
   CaseClause* default_clause = NULL;  // Can occur anywhere in the list.
@@ -879,7 +887,7 @@
 
     Label skip;
     __ jmp(&skip, Label::kNear);
-    PrepareForBailout(clause, TOS_REG);
+    PrepareForBailout(clause, BailoutState::TOS_REGISTER);
     __ cmp(eax, isolate()->factory()->true_value());
     __ j(not_equal, &next_test);
     __ Drop(1);
@@ -907,12 +915,12 @@
     Comment cmnt(masm_, "[ Case body");
     CaseClause* clause = clauses->at(i);
     __ bind(clause->body_target());
-    PrepareForBailoutForId(clause->EntryId(), NO_REGISTERS);
+    PrepareForBailoutForId(clause->EntryId(), BailoutState::NO_REGISTERS);
     VisitStatements(clause->statements());
   }
 
   __ bind(nested_statement.break_label());
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
 }
 
 
@@ -945,15 +953,13 @@
   ToObjectStub stub(isolate());
   __ CallStub(&stub);
   __ bind(&done_convert);
-  PrepareForBailoutForId(stmt->ToObjectId(), TOS_REG);
+  PrepareForBailoutForId(stmt->ToObjectId(), BailoutState::TOS_REGISTER);
   __ push(eax);
 
-  // Check cache validity in generated code. This is a fast case for
-  // the JSObject::IsSimpleEnum cache validity checks. If we cannot
-  // guarantee cache validity, call the runtime system to check cache
-  // validity or get the property names in a fixed array.
-  // Note: Proxies never have an enum cache, so will always take the
-  // slow path.
+  // Check cache validity in generated code. If we cannot guarantee cache
+  // validity, call the runtime system to check cache validity or get the
+  // property names in a fixed array. Note: Proxies never have an enum cache,
+  // so will always take the slow path.
   Label call_runtime, use_cache, fixed_array;
   __ CheckEnumCache(&call_runtime);
 
@@ -964,7 +970,7 @@
   __ bind(&call_runtime);
   __ push(eax);
   __ CallRuntime(Runtime::kForInEnumerate);
-  PrepareForBailoutForId(stmt->EnumId(), TOS_REG);
+  PrepareForBailoutForId(stmt->EnumId(), BailoutState::TOS_REGISTER);
   __ cmp(FieldOperand(eax, HeapObject::kMapOffset),
          isolate()->factory()->meta_map());
   __ j(not_equal, &fixed_array);
@@ -996,11 +1002,11 @@
   // We got a fixed array in register eax. Iterate through that.
   __ bind(&fixed_array);
 
-  __ push(Immediate(Smi::FromInt(1)));  // Smi(1) undicates slow check
+  __ push(Immediate(Smi::FromInt(1)));  // Smi(1) indicates slow check
   __ push(eax);  // Array
   __ mov(eax, FieldOperand(eax, FixedArray::kLengthOffset));
   __ push(eax);  // Fixed array length (as smi).
-  PrepareForBailoutForId(stmt->PrepareId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
   __ push(Immediate(Smi::FromInt(0)));  // Initial index.
 
   // Generate code for doing the condition check.
@@ -1038,7 +1044,7 @@
   __ push(ecx);  // Enumerable.
   __ push(ebx);  // Current entry.
   __ CallRuntime(Runtime::kForInFilter);
-  PrepareForBailoutForId(stmt->FilterId(), TOS_REG);
+  PrepareForBailoutForId(stmt->FilterId(), BailoutState::TOS_REGISTER);
   __ cmp(eax, isolate()->factory()->undefined_value());
   __ j(equal, loop_statement.continue_label());
   __ mov(ebx, eax);
@@ -1050,11 +1056,11 @@
   // Perform the assignment as if via '='.
   { EffectContext context(this);
     EmitAssignment(stmt->each(), stmt->EachFeedbackSlot());
-    PrepareForBailoutForId(stmt->AssignmentId(), NO_REGISTERS);
+    PrepareForBailoutForId(stmt->AssignmentId(), BailoutState::NO_REGISTERS);
   }
 
   // Both Crankshaft and Turbofan expect BodyId to be right before stmt->body().
-  PrepareForBailoutForId(stmt->BodyId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->BodyId(), BailoutState::NO_REGISTERS);
   // Generate code for the body of the loop.
   Visit(stmt->body());
 
@@ -1071,7 +1077,7 @@
   DropOperands(5);
 
   // Exit and decrement the loop depth.
-  PrepareForBailoutForId(stmt->ExitId(), NO_REGISTERS);
+  PrepareForBailoutForId(stmt->ExitId(), BailoutState::NO_REGISTERS);
   __ bind(&exit);
   decrement_loop_depth();
 }
@@ -1199,16 +1205,11 @@
   } else if (var->mode() == DYNAMIC_LOCAL) {
     Variable* local = var->local_if_not_shadowed();
     __ mov(eax, ContextSlotOperandCheckExtensions(local, slow));
-    if (local->mode() == LET || local->mode() == CONST ||
-        local->mode() == CONST_LEGACY) {
+    if (local->mode() == LET || local->mode() == CONST) {
       __ cmp(eax, isolate()->factory()->the_hole_value());
       __ j(not_equal, done);
-      if (local->mode() == CONST_LEGACY) {
-        __ mov(eax, isolate()->factory()->undefined_value());
-      } else {  // LET || CONST
-        __ push(Immediate(var->name()));
-        __ CallRuntime(Runtime::kThrowReferenceError);
-      }
+      __ push(Immediate(var->name()));
+      __ CallRuntime(Runtime::kThrowReferenceError);
     }
     __ jmp(done);
   }
@@ -1234,7 +1235,7 @@
 void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy,
                                          TypeofMode typeof_mode) {
   SetExpressionPosition(proxy);
-  PrepareForBailoutForId(proxy->BeforeId(), NO_REGISTERS);
+  PrepareForBailoutForId(proxy->BeforeId(), BailoutState::NO_REGISTERS);
   Variable* var = proxy->var();
 
   // Three cases: global variables, lookup variables, and all other types of
@@ -1266,10 +1267,6 @@
           // binding in harmony mode.
           __ push(Immediate(var->name()));
           __ CallRuntime(Runtime::kThrowReferenceError);
-        } else {
-          // Uninitialized legacy const bindings are unholed.
-          DCHECK(var->mode() == CONST_LEGACY);
-          __ mov(eax, isolate()->factory()->undefined_value());
         }
         __ bind(&done);
         context()->Plug(eax);
@@ -1348,8 +1345,9 @@
     __ mov(edx, Immediate(Smi::FromInt(flags)));
     FastCloneShallowObjectStub stub(isolate(), expr->properties_count());
     __ CallStub(&stub);
+    RestoreContext();
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   // If result_saved is true the result is on top of the stack.  If
   // result_saved is false the result is in eax.
@@ -1385,7 +1383,7 @@
             __ mov(StoreDescriptor::ReceiverRegister(), Operand(esp, 0));
             EmitLoadStoreICSlot(property->GetSlot(0));
             CallStoreIC();
-            PrepareForBailoutForId(key->id(), NO_REGISTERS);
+            PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
             if (NeedsHomeObject(value)) {
               EmitSetHomeObjectAccumulator(value, 0, property->GetSlot(1));
             }
@@ -1413,7 +1411,7 @@
         DCHECK(property->emit_store());
         CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
         PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                               NO_REGISTERS);
+                               BailoutState::NO_REGISTERS);
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
@@ -1469,7 +1467,7 @@
       DCHECK(property->emit_store());
       CallRuntimeWithOperands(Runtime::kInternalSetPrototype);
       PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
-                             NO_REGISTERS);
+                             BailoutState::NO_REGISTERS);
     } else {
       EmitPropertyKey(property, expr->GetIdForPropertyName(property_index));
       VisitForStackValue(value);
@@ -1542,7 +1540,7 @@
     FastCloneShallowArrayStub stub(isolate(), allocation_site_mode);
     __ CallStub(&stub);
   }
-  PrepareForBailoutForId(expr->CreateLiteralId(), TOS_REG);
+  PrepareForBailoutForId(expr->CreateLiteralId(), BailoutState::TOS_REGISTER);
 
   bool result_saved = false;  // Is the result saved to the stack?
   ZoneList<Expression*>* subexprs = expr->values();
@@ -1572,7 +1570,8 @@
     Handle<Code> ic =
         CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
     CallIC(ic);
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   // In case the array literal contains spread expressions it has two parts. The
@@ -1592,7 +1591,8 @@
     VisitForStackValue(subexpr);
     CallRuntimeWithOperands(Runtime::kAppendElement);
 
-    PrepareForBailoutForId(expr->GetIdForElement(array_index), NO_REGISTERS);
+    PrepareForBailoutForId(expr->GetIdForElement(array_index),
+                           BailoutState::NO_REGISTERS);
   }
 
   if (result_saved) {
@@ -1607,7 +1607,6 @@
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
 
   Comment cmnt(masm_, "[ Assignment");
-  SetExpressionPosition(expr, INSERT_BREAK);
 
   Property* property = expr->target()->AsProperty();
   LhsKind assign_type = Property::GetAssignType(property);
@@ -1672,23 +1671,27 @@
       switch (assign_type) {
         case VARIABLE:
           EmitVariableLoad(expr->target()->AsVariableProxy());
-          PrepareForBailout(expr->target(), TOS_REG);
+          PrepareForBailout(expr->target(), BailoutState::TOS_REGISTER);
           break;
         case NAMED_SUPER_PROPERTY:
           EmitNamedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case NAMED_PROPERTY:
           EmitNamedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_SUPER_PROPERTY:
           EmitKeyedSuperPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
         case KEYED_PROPERTY:
           EmitKeyedPropertyLoad(property);
-          PrepareForBailoutForId(property->LoadId(), TOS_REG);
+          PrepareForBailoutForId(property->LoadId(),
+                                 BailoutState::TOS_REGISTER);
           break;
       }
     }
@@ -1707,7 +1710,7 @@
     }
 
     // Deoptimization point in case the binary operation may have side effects.
-    PrepareForBailout(expr->binary_operation(), TOS_REG);
+    PrepareForBailout(expr->binary_operation(), BailoutState::TOS_REGISTER);
   } else {
     VisitForAccumulatorValue(expr->value());
   }
@@ -1719,7 +1722,7 @@
     case VARIABLE:
       EmitVariableAssignment(expr->target()->AsVariableProxy()->var(),
                              expr->op(), expr->AssignmentSlot());
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       context()->Plug(eax);
       break;
     case NAMED_PROPERTY:
@@ -1748,21 +1751,26 @@
   // this.  It stays on the stack while we update the iterator.
   VisitForStackValue(expr->expression());
 
-  Label suspend, continuation, post_runtime, resume;
+  Label suspend, continuation, post_runtime, resume, exception;
 
   __ jmp(&suspend);
   __ bind(&continuation);
-  // When we arrive here, the stack top is the resume mode and
-  // result_register() holds the input value (the argument given to the
-  // respective resume operation).
+  // When we arrive here, eax holds the generator object.
   __ RecordGeneratorContinuation();
-  __ pop(ebx);
-  __ cmp(ebx, Immediate(Smi::FromInt(JSGeneratorObject::RETURN)));
-  __ j(not_equal, &resume);
-  __ push(result_register());
+  __ mov(ebx, FieldOperand(eax, JSGeneratorObject::kResumeModeOffset));
+  __ mov(eax, FieldOperand(eax, JSGeneratorObject::kInputOffset));
+  STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
+  STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
+  __ cmp(ebx, Immediate(Smi::FromInt(JSGeneratorObject::kReturn)));
+  __ j(less, &resume);
+  __ Push(result_register());
+  __ j(greater, &exception);
   EmitCreateIteratorResult(true);
   EmitUnwindAndReturn();
 
+  __ bind(&exception);
+  __ CallRuntime(Runtime::kThrow);
+
   __ bind(&suspend);
   OperandStackDepthIncrement(1);  // Not popped on this path.
   VisitForAccumulatorValue(expr->generator_object());
@@ -1778,8 +1786,7 @@
   __ j(equal, &post_runtime);
   __ push(eax);  // generator object
   __ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
-  __ mov(context_register(),
-         Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   __ bind(&post_runtime);
   PopOperand(result_register());
   EmitReturnSequence();
@@ -1788,101 +1795,6 @@
   context()->Plug(result_register());
 }
 
-
-void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
-    Expression *value,
-    JSGeneratorObject::ResumeMode resume_mode) {
-  // The value stays in eax, and is ultimately read by the resumed generator, as
-  // if CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
-  // is read to throw the value when the resumed generator is already closed.
-  // ebx will hold the generator object until the activation has been resumed.
-  VisitForStackValue(generator);
-  VisitForAccumulatorValue(value);
-  PopOperand(ebx);
-
-  // Store input value into generator object.
-  __ mov(FieldOperand(ebx, JSGeneratorObject::kInputOffset), result_register());
-  __ mov(ecx, result_register());
-  __ RecordWriteField(ebx, JSGeneratorObject::kInputOffset, ecx, edx,
-                      kDontSaveFPRegs);
-
-  // Load suspended function and context.
-  __ mov(esi, FieldOperand(ebx, JSGeneratorObject::kContextOffset));
-  __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
-
-  // Push receiver.
-  __ push(FieldOperand(ebx, JSGeneratorObject::kReceiverOffset));
-
-  // Push holes for arguments to generator function. Since the parser forced
-  // context allocation for any variables in generators, the actual argument
-  // values have already been copied into the context and these dummy values
-  // will never be used.
-  __ mov(edx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
-  __ mov(edx,
-         FieldOperand(edx, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ mov(ecx, isolate()->factory()->the_hole_value());
-  Label push_argument_holes, push_frame;
-  __ bind(&push_argument_holes);
-  __ sub(edx, Immediate(Smi::FromInt(1)));
-  __ j(carry, &push_frame);
-  __ push(ecx);
-  __ jmp(&push_argument_holes);
-
-  // Enter a new JavaScript frame, and initialize its slots as they were when
-  // the generator was suspended.
-  Label resume_frame, done;
-  __ bind(&push_frame);
-  __ call(&resume_frame);
-  __ jmp(&done);
-  __ bind(&resume_frame);
-  __ push(ebp);  // Caller's frame pointer.
-  __ mov(ebp, esp);
-  __ push(esi);  // Callee's context.
-  __ push(edi);  // Callee's JS Function.
-
-  // Load the operand stack size.
-  __ mov(edx, FieldOperand(ebx, JSGeneratorObject::kOperandStackOffset));
-  __ mov(edx, FieldOperand(edx, FixedArray::kLengthOffset));
-  __ SmiUntag(edx);
-
-  // If we are sending a value and there is no operand stack, we can jump back
-  // in directly.
-  if (resume_mode == JSGeneratorObject::NEXT) {
-    Label slow_resume;
-    __ cmp(edx, Immediate(0));
-    __ j(not_zero, &slow_resume);
-    __ mov(edx, FieldOperand(edi, JSFunction::kCodeEntryOffset));
-    __ mov(ecx, FieldOperand(ebx, JSGeneratorObject::kContinuationOffset));
-    __ SmiUntag(ecx);
-    __ add(edx, ecx);
-    __ mov(FieldOperand(ebx, JSGeneratorObject::kContinuationOffset),
-           Immediate(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
-    __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-    __ jmp(edx);
-    __ bind(&slow_resume);
-  }
-
-  // Otherwise, we push holes for the operand stack and call the runtime to fix
-  // up the stack and the handlers.
-  Label push_operand_holes, call_resume;
-  __ bind(&push_operand_holes);
-  __ sub(edx, Immediate(1));
-  __ j(carry, &call_resume);
-  __ push(ecx);
-  __ jmp(&push_operand_holes);
-  __ bind(&call_resume);
-  __ Push(Smi::FromInt(resume_mode));  // Consumed in continuation.
-  __ push(ebx);
-  __ push(result_register());
-  __ Push(Smi::FromInt(resume_mode));
-  __ CallRuntime(Runtime::kResumeJSGeneratorObject);
-  // Not reached: the runtime call returns elsewhere.
-  __ Abort(kGeneratorFailedToResume);
-
-  __ bind(&done);
-  context()->Plug(result_register());
-}
-
 void FullCodeGenerator::PushOperand(MemOperand operand) {
   OperandStackDepthIncrement(1);
   __ Push(operand);
@@ -1902,7 +1814,8 @@
 void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
   Label allocate, done_allocate;
 
-  __ Allocate(JSIteratorResult::kSize, eax, ecx, edx, &allocate, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, eax, ecx, edx, &allocate,
+              NO_ALLOCATION_FLAGS);
   __ jmp(&done_allocate, Label::kNear);
 
   __ bind(&allocate);
@@ -2224,8 +2137,7 @@
     __ bind(&uninitialized_this);
     EmitStoreToStackLocalOrContextSlot(var, location);
 
-  } else if (!var->is_const_mode() ||
-             (var->mode() == CONST && op == Token::INIT)) {
+  } else if (!var->is_const_mode() || op == Token::INIT) {
     if (var->IsLookupSlot()) {
       // Assignment to var.
       __ Push(Immediate(var->name()));
@@ -2247,25 +2159,6 @@
       EmitStoreToStackLocalOrContextSlot(var, location);
     }
 
-  } else if (var->mode() == CONST_LEGACY && op == Token::INIT) {
-    // Const initializers need a write barrier.
-    DCHECK(!var->IsParameter());  // No const parameters.
-    if (var->IsLookupSlot()) {
-      __ push(eax);
-      __ push(esi);
-      __ push(Immediate(var->name()));
-      __ CallRuntime(Runtime::kInitializeLegacyConstLookupSlot);
-    } else {
-      DCHECK(var->IsStackLocal() || var->IsContextSlot());
-      Label skip;
-      MemOperand location = VarOperand(var, ecx);
-      __ mov(edx, location);
-      __ cmp(edx, isolate()->factory()->the_hole_value());
-      __ j(not_equal, &skip, Label::kNear);
-      EmitStoreToStackLocalOrContextSlot(var, location);
-      __ bind(&skip);
-    }
-
   } else {
     DCHECK(var->mode() == CONST_LEGACY && op != Token::INIT);
     if (is_strict(language_mode())) {
@@ -2288,7 +2181,7 @@
   PopOperand(StoreDescriptor::ReceiverRegister());
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallStoreIC();
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(eax);
 }
 
@@ -2334,44 +2227,7 @@
       CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
   EmitLoadStoreICSlot(expr->AssignmentSlot());
   CallIC(ic);
-  PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
-  context()->Plug(eax);
-}
-
-
-void FullCodeGenerator::VisitProperty(Property* expr) {
-  Comment cmnt(masm_, "[ Property");
-  SetExpressionPosition(expr);
-
-  Expression* key = expr->key();
-
-  if (key->IsPropertyName()) {
-    if (!expr->IsSuperAccess()) {
-      VisitForAccumulatorValue(expr->obj());
-      __ Move(LoadDescriptor::ReceiverRegister(), result_register());
-      EmitNamedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      EmitNamedSuperPropertyLoad(expr);
-    }
-  } else {
-    if (!expr->IsSuperAccess()) {
-      VisitForStackValue(expr->obj());
-      VisitForAccumulatorValue(expr->key());
-      PopOperand(LoadDescriptor::ReceiverRegister());              // Object.
-      __ Move(LoadDescriptor::NameRegister(), result_register());  // Key.
-      EmitKeyedPropertyLoad(expr);
-    } else {
-      VisitForStackValue(expr->obj()->AsSuperPropertyReference()->this_var());
-      VisitForStackValue(
-          expr->obj()->AsSuperPropertyReference()->home_object());
-      VisitForStackValue(expr->key());
-      EmitKeyedSuperPropertyLoad(expr);
-    }
-  }
-  PrepareForBailoutForId(expr->LoadId(), TOS_REG);
+  PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
   context()->Plug(eax);
 }
 
@@ -2392,7 +2248,7 @@
   if (callee->IsVariableProxy()) {
     { StackValueContext context(this);
       EmitVariableLoad(callee->AsVariableProxy());
-      PrepareForBailout(callee, NO_REGISTERS);
+      PrepareForBailout(callee, BailoutState::NO_REGISTERS);
     }
     // Push undefined as receiver. This is patched in the method prologue if it
     // is a sloppy mode method.
@@ -2404,7 +2260,8 @@
     DCHECK(!callee->AsProperty()->IsSuperAccess());
     __ mov(LoadDescriptor::ReceiverRegister(), Operand(esp, 0));
     EmitNamedPropertyLoad(callee->AsProperty());
-    PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+    PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                           BailoutState::TOS_REGISTER);
     // Push the target function under the receiver.
     PushOperand(Operand(esp, 0));
     __ mov(Operand(esp, kPointerSize), eax);
@@ -2439,6 +2296,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ mov(Operand(esp, kPointerSize), eax);
@@ -2463,7 +2321,8 @@
   __ mov(LoadDescriptor::ReceiverRegister(), Operand(esp, 0));
   __ mov(LoadDescriptor::NameRegister(), eax);
   EmitKeyedPropertyLoad(callee->AsProperty());
-  PrepareForBailoutForId(callee->AsProperty()->LoadId(), TOS_REG);
+  PrepareForBailoutForId(callee->AsProperty()->LoadId(),
+                         BailoutState::TOS_REGISTER);
 
   // Push the target function under the receiver.
   PushOperand(Operand(esp, 0));
@@ -2495,6 +2354,7 @@
   //  - home_object
   //  - key
   CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
+  PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
 
   // Replace home_object with target function.
   __ mov(Operand(esp, kPointerSize), eax);
@@ -2514,7 +2374,7 @@
     VisitForStackValue(args->at(i));
   }
 
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   SetCallPosition(expr, expr->tail_call_mode());
   if (expr->tail_call_mode() == TailCallMode::kAllow) {
     if (FLAG_trace) {
@@ -2535,15 +2395,12 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
-
+  RestoreContext();
   context()->DropAndPlug(1, eax);
 }
 
-
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(Call* expr) {
+  int arg_count = expr->arguments()->length();
   // Push copy of the first argument or undefined if it doesn't exist.
   if (arg_count > 0) {
     __ push(Operand(esp, arg_count * kPointerSize));
@@ -2560,6 +2417,9 @@
   // Push the start position of the scope the calls resides in.
   __ push(Immediate(Smi::FromInt(scope()->start_position())));
 
+  // Push the source position of the eval call.
+  __ push(Immediate(Smi::FromInt(expr->position())));
+
   // Do the runtime call.
   __ CallRuntime(Runtime::kResolvePossiblyDirectEval);
 }
@@ -2582,7 +2442,7 @@
     __ CallRuntime(Runtime::kLoadLookupSlotForCall);
     PushOperand(eax);  // Function.
     PushOperand(edx);  // Receiver.
-    PrepareForBailoutForId(expr->LookupId(), NO_REGISTERS);
+    PrepareForBailoutForId(expr->LookupId(), BailoutState::NO_REGISTERS);
 
     // If fast case code has been generated, emit code to push the function
     // and receiver and have the slow path jump around this code.
@@ -2606,7 +2466,7 @@
 
 
 void FullCodeGenerator::EmitPossiblyEvalCall(Call* expr) {
-  // In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
+  // In a call to eval, we first call Runtime_ResolvePossiblyDirectEval
   // to resolve the function we need to call.  Then we call the resolved
   // function using the given arguments.
   ZoneList<Expression*>* args = expr->arguments();
@@ -2622,12 +2482,12 @@
   // Push a copy of the function (found below the arguments) and
   // resolve eval.
   __ push(Operand(esp, (arg_count + 1) * kPointerSize));
-  EmitResolvePossiblyDirectEval(arg_count);
+  EmitResolvePossiblyDirectEval(expr);
 
   // Touch up the stack with the resolved function.
   __ mov(Operand(esp, (arg_count + 1) * kPointerSize), eax);
 
-  PrepareForBailoutForId(expr->EvalId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->EvalId(), BailoutState::NO_REGISTERS);
 
   SetCallPosition(expr);
   __ mov(edi, Operand(esp, (arg_count + 1) * kPointerSize));
@@ -2637,8 +2497,7 @@
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
   RecordJSReturnSite(expr);
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->DropAndPlug(1, eax);
 }
 
@@ -2677,9 +2536,8 @@
   CallConstructStub stub(isolate());
   __ call(stub.GetCode(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-  PrepareForBailoutForId(expr->ReturnId(), TOS_REG);
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  PrepareForBailoutForId(expr->ReturnId(), BailoutState::TOS_REGISTER);
+  RestoreContext();
   context()->Plug(eax);
 }
 
@@ -2720,9 +2578,7 @@
   OperandStackDepthDecrement(arg_count + 1);
 
   RecordJSReturnSite(expr);
-
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   context()->Plug(eax);
 }
 
@@ -3116,7 +2972,7 @@
   for (Expression* const arg : *args) {
     VisitForStackValue(arg);
   }
-  PrepareForBailoutForId(expr->CallId(), NO_REGISTERS);
+  PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
   // Move target to edi.
   int const argc = args->length() - 2;
   __ mov(edi, Operand(esp, (argc + 1) * kPointerSize));
@@ -3124,8 +2980,7 @@
   __ mov(eax, Immediate(argc));
   __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(argc + 1);
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
   // Discard the function left on TOS.
   context()->DropAndPlug(1, eax);
 }
@@ -3179,13 +3034,6 @@
   context()->Plug(eax);
 }
 
-void FullCodeGenerator::EmitGetOrdinaryHasInstance(CallRuntime* expr) {
-  DCHECK_EQ(0, expr->arguments()->length());
-  __ mov(eax, NativeContextOperand());
-  __ mov(eax, ContextOperand(eax, Context::ORDINARY_HAS_INSTANCE_INDEX));
-  context()->Plug(eax);
-}
-
 void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
   DCHECK(expr->arguments()->length() == 0);
   ExternalReference debug_is_active =
@@ -3204,7 +3052,8 @@
 
   Label runtime, done;
 
-  __ Allocate(JSIteratorResult::kSize, eax, ecx, edx, &runtime, TAG_OBJECT);
+  __ Allocate(JSIteratorResult::kSize, eax, ecx, edx, &runtime,
+              NO_ALLOCATION_FLAGS);
   __ mov(ebx, NativeContextOperand());
   __ mov(ebx, ContextOperand(ebx, Context::ITERATOR_RESULT_MAP_INDEX));
   __ mov(FieldOperand(eax, HeapObject::kMapOffset), ebx);
@@ -3245,9 +3094,7 @@
   __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
           RelocInfo::CODE_TARGET);
   OperandStackDepthDecrement(arg_count + 1);
-
-  // Restore context register.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  RestoreContext();
 }
 
 
@@ -3332,7 +3179,8 @@
                         &materialize_true);
         if (!context()->IsAccumulatorValue()) OperandStackDepthIncrement(1);
         __ bind(&materialize_true);
-        PrepareForBailoutForId(expr->MaterializeTrueId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeTrueId(),
+                               BailoutState::NO_REGISTERS);
         if (context()->IsAccumulatorValue()) {
           __ mov(eax, isolate()->factory()->true_value());
         } else {
@@ -3340,7 +3188,8 @@
         }
         __ jmp(&done, Label::kNear);
         __ bind(&materialize_false);
-        PrepareForBailoutForId(expr->MaterializeFalseId(), NO_REGISTERS);
+        PrepareForBailoutForId(expr->MaterializeFalseId(),
+                               BailoutState::NO_REGISTERS);
         if (context()->IsAccumulatorValue()) {
           __ mov(eax, isolate()->factory()->false_value());
         } else {
@@ -3439,9 +3288,9 @@
   // We need a second deoptimization point after loading the value
   // in case evaluating the property load my have a side effect.
   if (assign_type == VARIABLE) {
-    PrepareForBailout(expr->expression(), TOS_REG);
+    PrepareForBailout(expr->expression(), BailoutState::TOS_REGISTER);
   } else {
-    PrepareForBailoutForId(prop->LoadId(), TOS_REG);
+    PrepareForBailoutForId(prop->LoadId(), BailoutState::TOS_REGISTER);
   }
 
   // Inline smi case if we are in a loop.
@@ -3496,7 +3345,7 @@
   // Convert old value into a number.
   ToNumberStub convert_stub(isolate());
   __ CallStub(&convert_stub);
-  PrepareForBailoutForId(expr->ToNumberId(), TOS_REG);
+  PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
   if (expr->is_postfix()) {
@@ -3544,7 +3393,8 @@
         { EffectContext context(this);
           EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                  Token::ASSIGN, expr->CountSlot());
-          PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+          PrepareForBailoutForId(expr->AssignmentId(),
+                                 BailoutState::TOS_REGISTER);
           context.Plug(eax);
         }
         // For all contexts except EffectContext We have the result on
@@ -3556,7 +3406,8 @@
         // Perform the assignment as if via '='.
         EmitVariableAssignment(expr->expression()->AsVariableProxy()->var(),
                                Token::ASSIGN, expr->CountSlot());
-        PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+        PrepareForBailoutForId(expr->AssignmentId(),
+                               BailoutState::TOS_REGISTER);
         context()->Plug(eax);
       }
       break;
@@ -3566,7 +3417,7 @@
       PopOperand(StoreDescriptor::ReceiverRegister());
       EmitLoadStoreICSlot(expr->CountSlot());
       CallStoreIC();
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         if (!context()->IsEffect()) {
           context()->PlugTOS();
@@ -3605,7 +3456,7 @@
           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
       EmitLoadStoreICSlot(expr->CountSlot());
       CallIC(ic);
-      PrepareForBailoutForId(expr->AssignmentId(), TOS_REG);
+      PrepareForBailoutForId(expr->AssignmentId(), BailoutState::TOS_REGISTER);
       if (expr->is_postfix()) {
         // Result is on the stack
         if (!context()->IsEffect()) {
@@ -3701,7 +3552,6 @@
 
 void FullCodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Comment cmnt(masm_, "[ CompareOperation");
-  SetExpressionPosition(expr);
 
   // First we try a fast inlined version of the compare when one of
   // the operands is a literal.
@@ -3721,7 +3571,8 @@
   switch (op) {
     case Token::IN:
       VisitForStackValue(expr->right());
-      CallRuntimeWithOperands(Runtime::kHasProperty);
+      SetExpressionPosition(expr);
+      EmitHasProperty();
       PrepareForBailoutBeforeSplit(expr, false, NULL, NULL);
       __ cmp(eax, isolate()->factory()->true_value());
       Split(equal, if_true, if_false, fall_through);
@@ -3729,6 +3580,7 @@
 
     case Token::INSTANCEOF: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       PopOperand(edx);
       InstanceOfStub stub(isolate());
       __ CallStub(&stub);
@@ -3740,6 +3592,7 @@
 
     default: {
       VisitForAccumulatorValue(expr->right());
+      SetExpressionPosition(expr);
       Condition cc = CompareIC::ComputeCondition(op);
       PopOperand(edx);
 
diff --git a/src/global-handles.cc b/src/global-handles.cc
index ed9caa9..82b4fcd 100644
--- a/src/global-handles.cc
+++ b/src/global-handles.cc
@@ -82,7 +82,6 @@
     index_ = static_cast<uint8_t>(index);
     DCHECK(static_cast<int>(index_) == index);
     set_state(FREE);
-    set_weakness_type(NORMAL_WEAK);
     set_in_new_space_list(false);
     parameter_or_next_free_.next_free = *first_free;
     *first_free = this;
@@ -195,16 +194,26 @@
 
   bool IsInUse() const { return state() != FREE; }
 
+  bool IsPendingPhantomCallback() const {
+    return state() == PENDING &&
+           (weakness_type() == PHANTOM_WEAK ||
+            weakness_type() == PHANTOM_WEAK_2_INTERNAL_FIELDS);
+  }
+
+  bool IsPendingPhantomResetHandle() const {
+    return state() == PENDING && weakness_type() == PHANTOM_WEAK_RESET_HANDLE;
+  }
+
   bool IsRetainer() const {
     return state() != FREE &&
-           !(state() == NEAR_DEATH && weakness_type() != NORMAL_WEAK);
+           !(state() == NEAR_DEATH && weakness_type() != FINALIZER_WEAK);
   }
 
   bool IsStrongRetainer() const { return state() == NORMAL; }
 
   bool IsWeakRetainer() const {
     return state() == WEAK || state() == PENDING ||
-           (state() == NEAR_DEATH && weakness_type() == NORMAL_WEAK);
+           (state() == NEAR_DEATH && weakness_type() == FINALIZER_WEAK);
   }
 
   void MarkPending() {
@@ -250,16 +259,6 @@
     parameter_or_next_free_.next_free = value;
   }
 
-  void MakeWeak(void* parameter, WeakCallback weak_callback) {
-    DCHECK(weak_callback != nullptr);
-    DCHECK(IsInUse());
-    CHECK_NE(object_, reinterpret_cast<Object*>(kGlobalHandleZapValue));
-    set_state(WEAK);
-    set_weakness_type(NORMAL_WEAK);
-    set_parameter(parameter);
-    weak_callback_ = weak_callback;
-  }
-
   void MakeWeak(void* parameter,
                 WeakCallbackInfo<void>::Callback phantom_callback,
                 v8::WeakCallbackType type) {
@@ -272,11 +271,23 @@
         set_weakness_type(PHANTOM_WEAK);
         break;
       case v8::WeakCallbackType::kInternalFields:
-      set_weakness_type(PHANTOM_WEAK_2_INTERNAL_FIELDS);
-      break;
+        set_weakness_type(PHANTOM_WEAK_2_INTERNAL_FIELDS);
+        break;
+      case v8::WeakCallbackType::kFinalizer:
+        set_weakness_type(FINALIZER_WEAK);
+        break;
     }
     set_parameter(parameter);
-    weak_callback_ = reinterpret_cast<WeakCallback>(phantom_callback);
+    weak_callback_ = phantom_callback;
+  }
+
+  void MakeWeak(Object*** location_addr) {
+    DCHECK(IsInUse());
+    CHECK_NE(object_, reinterpret_cast<Object*>(kGlobalHandleZapValue));
+    set_state(WEAK);
+    set_weakness_type(PHANTOM_WEAK_RESET_HANDLE);
+    set_parameter(location_addr);
+    weak_callback_ = nullptr;
   }
 
   void* ClearWeakness() {
@@ -293,6 +304,7 @@
     DCHECK(weakness_type() == PHANTOM_WEAK ||
            weakness_type() == PHANTOM_WEAK_2_INTERNAL_FIELDS);
     DCHECK(state() == PENDING);
+    DCHECK(weak_callback_ != nullptr);
 
     void* internal_fields[v8::kInternalFieldsInWeakCallback] = {nullptr,
                                                                 nullptr};
@@ -317,6 +329,15 @@
     set_state(NEAR_DEATH);
   }
 
+  void ResetPhantomHandle() {
+    DCHECK(weakness_type() == PHANTOM_WEAK_RESET_HANDLE);
+    DCHECK(state() == PENDING);
+    DCHECK(weak_callback_ == nullptr);
+    Object*** handle = reinterpret_cast<Object***>(parameter());
+    *handle = nullptr;
+    Release();
+  }
+
   bool PostGarbageCollectionProcessing(Isolate* isolate) {
     // Handles only weak handles (not phantom) that are dying.
     if (state() != Node::PENDING) return false;
@@ -332,17 +353,17 @@
            ExternalOneByteString::cast(object_)->resource() != NULL);
     DCHECK(!object_->IsExternalTwoByteString() ||
            ExternalTwoByteString::cast(object_)->resource() != NULL);
-    if (weakness_type() != NORMAL_WEAK) return false;
+    if (weakness_type() != FINALIZER_WEAK) {
+      return false;
+    }
 
     // Leaving V8.
     VMState<EXTERNAL> vmstate(isolate);
     HandleScope handle_scope(isolate);
-    Object** object = location();
-    Handle<Object> handle(*object, isolate);
-    v8::WeakCallbackData<v8::Value, void> data(
-        reinterpret_cast<v8::Isolate*>(isolate), parameter(),
-        v8::Utils::ToLocal(handle));
-    set_parameter(NULL);
+    void* internal_fields[v8::kInternalFieldsInWeakCallback] = {nullptr,
+                                                                nullptr};
+    v8::WeakCallbackInfo<void> data(reinterpret_cast<v8::Isolate*>(isolate),
+                                    parameter(), internal_fields, nullptr);
     weak_callback_(data);
 
     // Absence of explicit cleanup or revival of weak handle
@@ -384,7 +405,7 @@
   uint8_t flags_;
 
   // Handle specific callback - might be a weak reference in disguise.
-  WeakCallback weak_callback_;
+  WeakCallbackInfo<void>::Callback weak_callback_;
 
   // Provided data for callback.  In FREE state, this is used for
   // the free list link.
@@ -534,6 +555,7 @@
   }
 
   void RunInternal() override {
+    TRACE_EVENT0("v8", "V8.GCPhantomHandleProcessingCallback");
     isolate()->heap()->CallGCPrologueCallbacks(
         GCType::kGCTypeProcessWeakCallbacks, kNoGCCallbackFlags);
     InvokeSecondPassPhantomCallbacks(&pending_phantom_callbacks_, isolate());
@@ -547,7 +569,6 @@
   DISALLOW_COPY_AND_ASSIGN(PendingPhantomCallbacksSecondPassTask);
 };
 
-
 GlobalHandles::GlobalHandles(Isolate* isolate)
     : isolate_(isolate),
       number_of_global_handles_(0),
@@ -555,9 +576,9 @@
       first_used_block_(NULL),
       first_free_(NULL),
       post_gc_processing_count_(0),
+      number_of_phantom_handle_resets_(0),
       object_group_connections_(kObjectGroupConnectionsCapacity) {}
 
-
 GlobalHandles::~GlobalHandles() {
   NodeBlock* block = first_block_;
   while (block != NULL) {
@@ -599,12 +620,6 @@
 }
 
 
-void GlobalHandles::MakeWeak(Object** location, void* parameter,
-                             WeakCallback weak_callback) {
-  Node::FromLocation(location)->MakeWeak(parameter, weak_callback);
-}
-
-
 typedef v8::WeakCallbackInfo<void>::Callback GenericCallback;
 
 
@@ -614,6 +629,9 @@
   Node::FromLocation(location)->MakeWeak(parameter, phantom_callback, type);
 }
 
+void GlobalHandles::MakeWeak(Object*** location_addr) {
+  Node::FromLocation(*location_addr)->MakeWeak(location_addr);
+}
 
 void* GlobalHandles::ClearWeakness(Object** location) {
   return Node::FromLocation(location)->ClearWeakness();
@@ -649,10 +667,12 @@
     Node* node = it.node();
     if (node->IsWeakRetainer()) {
       // Pending weak phantom handles die immediately. Everything else survives.
-      if (node->state() == Node::PENDING &&
-          node->weakness_type() != NORMAL_WEAK) {
-          node->CollectPhantomCallbackData(isolate(),
-                                           &pending_phantom_callbacks_);
+      if (node->IsPendingPhantomResetHandle()) {
+        node->ResetPhantomHandle();
+        ++number_of_phantom_handle_resets_;
+      } else if (node->IsPendingPhantomCallback()) {
+        node->CollectPhantomCallbackData(isolate(),
+                                         &pending_phantom_callbacks_);
       } else {
         v->VisitPointer(node->location());
       }
@@ -710,8 +730,10 @@
     if ((node->is_independent() || node->is_partially_dependent()) &&
         node->IsWeakRetainer()) {
       // Pending weak phantom handles die immediately. Everything else survives.
-      if (node->state() == Node::PENDING &&
-          node->weakness_type() != NORMAL_WEAK) {
+      if (node->IsPendingPhantomResetHandle()) {
+        node->ResetPhantomHandle();
+        ++number_of_phantom_handle_resets_;
+      } else if (node->IsPendingPhantomCallback()) {
         node->CollectPhantomCallbackData(isolate(),
                                          &pending_phantom_callbacks_);
       } else {
@@ -753,8 +775,10 @@
     if ((node->is_independent() || !node->is_active()) &&
         node->IsWeakRetainer()) {
       // Pending weak phantom handles die immediately. Everything else survives.
-      if (node->state() == Node::PENDING &&
-          node->weakness_type() != NORMAL_WEAK) {
+      if (node->IsPendingPhantomResetHandle()) {
+        node->ResetPhantomHandle();
+        ++number_of_phantom_handle_resets_;
+      } else if (node->IsPendingPhantomCallback()) {
         node->CollectPhantomCallbackData(isolate(),
                                          &pending_phantom_callbacks_);
       } else {
@@ -888,7 +912,7 @@
 }
 
 void ObjectGroupsTracer::PrintObjectGroup(ObjectGroup* group) {
-  PrintIsolate(isolate_, "ObjectGroup (size: %lu)\n", group->length);
+  PrintIsolate(isolate_, "ObjectGroup (size: %" PRIuS ")\n", group->length);
   Object*** objects = group->objects;
 
   for (size_t i = 0; i < group->length; ++i) {
@@ -898,7 +922,7 @@
 }
 
 void ObjectGroupsTracer::PrintImplicitRefGroup(ImplicitRefGroup* group) {
-  PrintIsolate(isolate_, "ImplicitRefGroup (children count: %lu)\n",
+  PrintIsolate(isolate_, "ImplicitRefGroup (children count: %" PRIuS ")\n",
                group->length);
   PrintIsolate(isolate_, "  - Parent: ");
   PrintObject(*(group->parent));
@@ -1223,8 +1247,7 @@
   }
 
   PrintF("Global Handle Statistics:\n");
-  PrintF("  allocated memory = %" V8_SIZET_PREFIX V8_PTR_PREFIX "dB\n",
-         total * sizeof(Node));
+  PrintF("  allocated memory = %" PRIuS "B\n", total * sizeof(Node));
   PrintF("  # weak       = %d\n", weak);
   PrintF("  # pending    = %d\n", pending);
   PrintF("  # near_death = %d\n", near_death);
diff --git a/src/global-handles.h b/src/global-handles.h
index ac8487b..24a2273 100644
--- a/src/global-handles.h
+++ b/src/global-handles.h
@@ -96,19 +96,21 @@
   RetainedObjectInfo* info;
 };
 
-
 enum WeaknessType {
-  NORMAL_WEAK,  // Embedder gets a handle to the dying object.
+  // Embedder gets a handle to the dying object.
+  FINALIZER_WEAK,
   // In the following cases, the embedder gets the parameter they passed in
   // earlier, and 0 or 2 first internal fields. Note that the internal
   // fields must contain aligned non-V8 pointers.  Getting pointers to V8
   // objects through this interface would be GC unsafe so in that case the
   // embedder gets a null pointer instead.
   PHANTOM_WEAK,
-  PHANTOM_WEAK_2_INTERNAL_FIELDS
+  PHANTOM_WEAK_2_INTERNAL_FIELDS,
+  // The handle is automatically reset by the garbage collector when
+  // the object is no longer reachable.
+  PHANTOM_WEAK_RESET_HANDLE
 };
 
-
 class GlobalHandles {
  public:
   ~GlobalHandles();
@@ -122,14 +124,6 @@
   // Destroy a global handle.
   static void Destroy(Object** location);
 
-  typedef WeakCallbackData<v8::Value, void>::Callback WeakCallback;
-
-  // For a phantom weak reference, the callback does not have access to the
-  // dying object.  Phantom weak references are preferred because they allow
-  // memory to be reclaimed in one GC cycle rather than two.  However, for
-  // historical reasons the default is non-phantom.
-  enum PhantomState { Nonphantom, Phantom };
-
   // Make the global handle weak and set the callback parameter for the
   // handle.  When the garbage collector recognizes that only weak global
   // handles point to an object the callback function is invoked (for each
@@ -140,14 +134,11 @@
   // before the callback is invoked, but the handle can still be identified
   // in the callback by using the location() of the handle.
   static void MakeWeak(Object** location, void* parameter,
-                       WeakCallback weak_callback);
-
-  // It would be nice to template this one, but it's really hard to get
-  // the template instantiator to work right if you do.
-  static void MakeWeak(Object** location, void* parameter,
                        WeakCallbackInfo<void>::Callback weak_callback,
                        v8::WeakCallbackType type);
 
+  static void MakeWeak(Object*** location_addr);
+
   void RecordStats(HeapStats* stats);
 
   // Returns the current number of weak handles.
@@ -162,6 +153,14 @@
     return number_of_global_handles_;
   }
 
+  size_t NumberOfPhantomHandleResets() {
+    return number_of_phantom_handle_resets_;
+  }
+
+  void ResetNumberOfPhantomHandleResets() {
+    number_of_phantom_handle_resets_ = 0;
+  }
+
   // Clear the weakness of a global handle.
   static void* ClearWeakness(Object** location);
 
@@ -344,6 +343,8 @@
 
   int post_gc_processing_count_;
 
+  size_t number_of_phantom_handle_resets_;
+
   // Object groups and implicit references, public and more efficient
   // representation.
   List<ObjectGroup*> object_groups_;
diff --git a/src/globals.h b/src/globals.h
index e7ac2b9..ed297e7 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -124,11 +124,6 @@
 const int kDoubleSize    = sizeof(double);    // NOLINT
 const int kIntptrSize    = sizeof(intptr_t);  // NOLINT
 const int kPointerSize   = sizeof(void*);     // NOLINT
-#if V8_TARGET_ARCH_ARM64
-const int kFrameAlignmentInBytes = 2 * kPointerSize;
-#else
-const int kFrameAlignmentInBytes = kPointerSize;
-#endif
 #if V8_TARGET_ARCH_X64 && V8_TARGET_ARCH_32_BIT
 const int kRegisterSize  = kPointerSize + kPointerSize;
 #else
@@ -457,6 +452,33 @@
   kSimd128Unaligned
 };
 
+// Supported write barrier modes.
+enum WriteBarrierKind : uint8_t {
+  kNoWriteBarrier,
+  kMapWriteBarrier,
+  kPointerWriteBarrier,
+  kFullWriteBarrier
+};
+
+inline size_t hash_value(WriteBarrierKind kind) {
+  return static_cast<uint8_t>(kind);
+}
+
+inline std::ostream& operator<<(std::ostream& os, WriteBarrierKind kind) {
+  switch (kind) {
+    case kNoWriteBarrier:
+      return os << "NoWriteBarrier";
+    case kMapWriteBarrier:
+      return os << "MapWriteBarrier";
+    case kPointerWriteBarrier:
+      return os << "PointerWriteBarrier";
+    case kFullWriteBarrier:
+      return os << "FullWriteBarrier";
+  }
+  UNREACHABLE();
+  return os;
+}
+
 // A flag that indicates whether objects should be pretenured when
 // allocated (allocated directly into the old generation) or not
 // (allocated in the young generation if the object size and type
@@ -551,7 +573,7 @@
   // Has been executed and only one receiver type has been seen.
   MONOMORPHIC,
   // Check failed due to prototype (or map deprecation).
-  PROTOTYPE_FAILURE,
+  RECOMPUTE_HANDLER,
   // Multiple receiver types have been seen.
   POLYMORPHIC,
   // Many receiver types have been seen.
@@ -562,7 +584,6 @@
   DEBUG_STUB
 };
 
-
 enum CacheHolderFlag {
   kCacheOnPrototype,
   kCacheOnPrototypeReceiverIsDictionary,
@@ -685,7 +706,6 @@
   MIPSr6,
   // ARM64
   ALWAYS_ALIGN_CSP,
-  COHERENT_CACHE,
   // PPC
   FPR_GPR_MOV,
   LWSYNC,
@@ -800,51 +820,48 @@
 // The order of this enum has to be kept in sync with the predicates below.
 enum VariableMode {
   // User declared variables:
-  VAR,             // declared via 'var', and 'function' declarations
+  VAR,  // declared via 'var', and 'function' declarations
 
-  CONST_LEGACY,    // declared via legacy 'const' declarations
+  CONST_LEGACY,  // declared via legacy 'const' declarations
 
-  LET,             // declared via 'let' declarations (first lexical)
+  LET,  // declared via 'let' declarations (first lexical)
 
-  CONST,           // declared via 'const' declarations
-
-  IMPORT,          // declared via 'import' declarations (last lexical)
+  CONST,  // declared via 'const' declarations (last lexical)
 
   // Variables introduced by the compiler:
-  TEMPORARY,       // temporary variables (not user-visible), stack-allocated
-                   // unless the scope as a whole has forced context allocation
+  TEMPORARY,  // temporary variables (not user-visible), stack-allocated
+              // unless the scope as a whole has forced context allocation
 
-  DYNAMIC,         // always require dynamic lookup (we don't know
-                   // the declaration)
+  DYNAMIC,  // always require dynamic lookup (we don't know
+            // the declaration)
 
   DYNAMIC_GLOBAL,  // requires dynamic lookup, but we know that the
                    // variable is global unless it has been shadowed
                    // by an eval-introduced variable
 
-  DYNAMIC_LOCAL    // requires dynamic lookup, but we know that the
-                   // variable is local and where it is unless it
-                   // has been shadowed by an eval-introduced
-                   // variable
+  DYNAMIC_LOCAL  // requires dynamic lookup, but we know that the
+                 // variable is local and where it is unless it
+                 // has been shadowed by an eval-introduced
+                 // variable
 };
 
-
 inline bool IsDynamicVariableMode(VariableMode mode) {
   return mode >= DYNAMIC && mode <= DYNAMIC_LOCAL;
 }
 
 
 inline bool IsDeclaredVariableMode(VariableMode mode) {
-  return mode >= VAR && mode <= IMPORT;
+  return mode >= VAR && mode <= CONST;
 }
 
 
 inline bool IsLexicalVariableMode(VariableMode mode) {
-  return mode >= LET && mode <= IMPORT;
+  return mode >= LET && mode <= CONST;
 }
 
 
 inline bool IsImmutableVariableMode(VariableMode mode) {
-  return mode == CONST || mode == CONST_LEGACY || mode == IMPORT;
+  return mode == CONST || mode == CONST_LEGACY;
 }
 
 
@@ -945,11 +962,14 @@
   kBaseConstructor = 1 << 5,
   kGetterFunction = 1 << 6,
   kSetterFunction = 1 << 7,
+  kAsyncFunction = 1 << 8,
   kAccessorFunction = kGetterFunction | kSetterFunction,
   kDefaultBaseConstructor = kDefaultConstructor | kBaseConstructor,
   kDefaultSubclassConstructor = kDefaultConstructor | kSubclassConstructor,
   kClassConstructor =
       kBaseConstructor | kSubclassConstructor | kDefaultConstructor,
+  kAsyncArrowFunction = kArrowFunction | kAsyncFunction,
+  kAsyncConciseMethod = kAsyncFunction | kConciseMethod
 };
 
 inline bool IsValidFunctionKind(FunctionKind kind) {
@@ -964,7 +984,10 @@
          kind == FunctionKind::kDefaultBaseConstructor ||
          kind == FunctionKind::kDefaultSubclassConstructor ||
          kind == FunctionKind::kBaseConstructor ||
-         kind == FunctionKind::kSubclassConstructor;
+         kind == FunctionKind::kSubclassConstructor ||
+         kind == FunctionKind::kAsyncFunction ||
+         kind == FunctionKind::kAsyncArrowFunction ||
+         kind == FunctionKind::kAsyncConciseMethod;
 }
 
 
@@ -979,6 +1002,10 @@
   return kind & FunctionKind::kGeneratorFunction;
 }
 
+inline bool IsAsyncFunction(FunctionKind kind) {
+  DCHECK(IsValidFunctionKind(kind));
+  return kind & FunctionKind::kAsyncFunction;
+}
 
 inline bool IsConciseMethod(FunctionKind kind) {
   DCHECK(IsValidFunctionKind(kind));
@@ -1030,6 +1057,7 @@
   if (IsConciseMethod(kind)) return false;
   if (IsArrowFunction(kind)) return false;
   if (IsGeneratorFunction(kind)) return false;
+  if (IsAsyncFunction(kind)) return false;
   return true;
 }
 
diff --git a/src/handles.h b/src/handles.h
index 1f97d6f..ab8ed09 100644
--- a/src/handles.h
+++ b/src/handles.h
@@ -43,6 +43,10 @@
 
   V8_INLINE bool is_null() const { return location_ == nullptr; }
 
+  // Returns the raw address where this handle is stored. This should only be
+  // used for hashing handles; do not ever try to dereference it.
+  V8_INLINE Address address() const { return bit_cast<Address>(location_); }
+
  protected:
   // Provides the C++ dereference operator.
   V8_INLINE Object* operator*() const {
@@ -132,14 +136,14 @@
   // Provide function object for location equality comparison.
   struct equal_to : public std::binary_function<Handle<T>, Handle<T>, bool> {
     V8_INLINE bool operator()(Handle<T> lhs, Handle<T> rhs) const {
-      return lhs.location() == rhs.location();
+      return lhs.address() == rhs.address();
     }
   };
 
   // Provide function object for location hashing.
   struct hash : public std::unary_function<Handle<T>, size_t> {
     V8_INLINE size_t operator()(Handle<T> const& handle) const {
-      return base::hash<void*>()(handle.location());
+      return base::hash<void*>()(handle.address());
     }
   };
 
diff --git a/src/heap-symbols.h b/src/heap-symbols.h
index f019ace..529342a 100644
--- a/src/heap-symbols.h
+++ b/src/heap-symbols.h
@@ -139,6 +139,8 @@
   V(call_site_position_symbol)              \
   V(call_site_receiver_symbol)              \
   V(call_site_strict_symbol)                \
+  V(call_site_wasm_obj_symbol)              \
+  V(call_site_wasm_func_index_symbol)       \
   V(class_end_position_symbol)              \
   V(class_start_position_symbol)            \
   V(detailed_stack_trace_symbol)            \
@@ -149,7 +151,6 @@
   V(formatted_stack_trace_symbol)           \
   V(frozen_symbol)                          \
   V(hash_code_symbol)                       \
-  V(hidden_properties_symbol)               \
   V(home_object_symbol)                     \
   V(internal_error_symbol)                  \
   V(intl_impl_object_symbol)                \
@@ -162,16 +163,15 @@
   V(nonextensible_symbol)                   \
   V(normal_ic_symbol)                       \
   V(not_mapped_symbol)                      \
-  V(observed_symbol)                        \
   V(premonomorphic_symbol)                  \
   V(promise_combined_deferred_symbol)       \
   V(promise_debug_marker_symbol)            \
   V(promise_has_handler_symbol)             \
-  V(promise_on_resolve_symbol)              \
-  V(promise_on_reject_symbol)               \
+  V(promise_fulfill_reactions_symbol)       \
+  V(promise_reject_reactions_symbol)        \
   V(promise_raw_symbol)                     \
-  V(promise_status_symbol)                  \
-  V(promise_value_symbol)                   \
+  V(promise_state_symbol)                   \
+  V(promise_result_symbol)                  \
   V(sealed_symbol)                          \
   V(stack_trace_symbol)                     \
   V(strict_function_transition_symbol)      \
diff --git a/src/heap/gc-idle-time-handler.cc b/src/heap/gc-idle-time-handler.cc
index 972dfa6..0c411f7 100644
--- a/src/heap/gc-idle-time-handler.cc
+++ b/src/heap/gc-idle-time-handler.cc
@@ -41,8 +41,7 @@
 void GCIdleTimeHeapState::Print() {
   PrintF("contexts_disposed=%d ", contexts_disposed);
   PrintF("contexts_disposal_rate=%f ", contexts_disposal_rate);
-  PrintF("size_of_objects=%" V8_SIZET_PREFIX V8_PTR_PREFIX "d ",
-         size_of_objects);
+  PrintF("size_of_objects=%" PRIuS " ", size_of_objects);
   PrintF("incremental_marking_stopped=%d ", incremental_marking_stopped);
 }
 
diff --git a/src/heap/gc-tracer.cc b/src/heap/gc-tracer.cc
index 3c46f52..4bae0a4 100644
--- a/src/heap/gc-tracer.cc
+++ b/src/heap/gc-tracer.cc
@@ -26,10 +26,8 @@
   start_time_ = tracer_->heap_->MonotonicallyIncreasingTimeInMs();
   // TODO(cbruni): remove once we fully moved to a trace-based system.
   if (FLAG_runtime_call_stats) {
-    RuntimeCallStats* stats =
-        tracer_->heap_->isolate()->counters()->runtime_call_stats();
-    timer_.Initialize(&stats->GC, stats->current_timer());
-    stats->Enter(&timer_);
+    RuntimeCallStats::Enter(tracer_->heap_->isolate(), &timer_,
+                            &RuntimeCallStats::GC);
   }
 }
 
@@ -40,7 +38,7 @@
       tracer_->heap_->MonotonicallyIncreasingTimeInMs() - start_time_;
   // TODO(cbruni): remove once we fully moved to a trace-based system.
   if (FLAG_runtime_call_stats) {
-    tracer_->heap_->isolate()->counters()->runtime_call_stats()->Leave(&timer_);
+    RuntimeCallStats::Leave(tracer_->heap_->isolate(), &timer_);
   }
 }
 
@@ -164,7 +162,7 @@
   current_.reduce_memory = heap_->ShouldReduceMemory();
   current_.start_time = start_time;
   current_.start_object_size = heap_->SizeOfObjects();
-  current_.start_memory_size = heap_->isolate()->memory_allocator()->Size();
+  current_.start_memory_size = heap_->memory_allocator()->Size();
   current_.start_holes_size = CountTotalHolesSize(heap_);
   current_.new_space_object_size =
       heap_->new_space()->top() - heap_->new_space()->bottom();
@@ -190,10 +188,7 @@
       start_time, used_memory);
   // TODO(cbruni): remove once we fully moved to a trace-based system.
   if (FLAG_runtime_call_stats) {
-    RuntimeCallStats* stats =
-        heap_->isolate()->counters()->runtime_call_stats();
-    timer_.Initialize(&stats->GC, stats->current_timer());
-    stats->Enter(&timer_);
+    RuntimeCallStats::Enter(heap_->isolate(), &timer_, &RuntimeCallStats::GC);
   }
 }
 
@@ -214,7 +209,7 @@
 
   current_.end_time = heap_->MonotonicallyIncreasingTimeInMs();
   current_.end_object_size = heap_->SizeOfObjects();
-  current_.end_memory_size = heap_->isolate()->memory_allocator()->Size();
+  current_.end_memory_size = heap_->memory_allocator()->Size();
   current_.end_holes_size = CountTotalHolesSize(heap_);
   current_.survived_new_space_object_size = heap_->SurvivedNewSpaceObjectSize();
 
@@ -303,7 +298,7 @@
   cumulative_incremental_marking_finalization_duration_ = 0.0;
   // TODO(cbruni): remove once we fully moved to a trace-based system.
   if (FLAG_runtime_call_stats) {
-    heap_->isolate()->counters()->runtime_call_stats()->Leave(&timer_);
+    RuntimeCallStats::Leave(heap_->isolate(), &timer_);
   }
 }
 
@@ -411,7 +406,7 @@
 
 void GCTracer::Print() const {
   if (FLAG_trace_gc) {
-    PrintIsolate(heap_->isolate(), "");
+    PrintIsolate(heap_->isolate(), "%s", "");
   }
   Output("%8.0f ms: ", heap_->isolate()->time_millis_since_init());
 
@@ -480,20 +475,20 @@
                    "steps_count=%d "
                    "steps_took=%.1f "
                    "scavenge_throughput=%.f "
-                   "total_size_before=%" V8_PTR_PREFIX
-                   "d "
-                   "total_size_after=%" V8_PTR_PREFIX
-                   "d "
-                   "holes_size_before=%" V8_PTR_PREFIX
-                   "d "
-                   "holes_size_after=%" V8_PTR_PREFIX
-                   "d "
-                   "allocated=%" V8_PTR_PREFIX
-                   "d "
-                   "promoted=%" V8_PTR_PREFIX
-                   "d "
-                   "semi_space_copied=%" V8_PTR_PREFIX
-                   "d "
+                   "total_size_before=%" V8PRIdPTR
+                   " "
+                   "total_size_after=%" V8PRIdPTR
+                   " "
+                   "holes_size_before=%" V8PRIdPTR
+                   " "
+                   "holes_size_after=%" V8PRIdPTR
+                   " "
+                   "allocated=%" V8PRIdPTR
+                   " "
+                   "promoted=%" V8PRIdPTR
+                   " "
+                   "semi_space_copied=%" V8PRIdPTR
+                   " "
                    "nodes_died_in_new=%d "
                    "nodes_copied_in_new=%d "
                    "nodes_promoted=%d "
@@ -555,7 +550,6 @@
           "evacuate.clean_up=%.1f "
           "evacuate.copy=%.1f "
           "evacuate.update_pointers=%.1f "
-          "evacuate.update_pointers.between_evacuated=%.1f "
           "evacuate.update_pointers.to_evacuated=%.1f "
           "evacuate.update_pointers.to_new=%.1f "
           "evacuate.update_pointers.weak=%.1f "
@@ -586,20 +580,20 @@
           "finalization_steps_took=%.1f "
           "finalization_longest_step=%.1f "
           "incremental_marking_throughput=%.f "
-          "total_size_before=%" V8_PTR_PREFIX
-          "d "
-          "total_size_after=%" V8_PTR_PREFIX
-          "d "
-          "holes_size_before=%" V8_PTR_PREFIX
-          "d "
-          "holes_size_after=%" V8_PTR_PREFIX
-          "d "
-          "allocated=%" V8_PTR_PREFIX
-          "d "
-          "promoted=%" V8_PTR_PREFIX
-          "d "
-          "semi_space_copied=%" V8_PTR_PREFIX
-          "d "
+          "total_size_before=%" V8PRIdPTR
+          " "
+          "total_size_after=%" V8PRIdPTR
+          " "
+          "holes_size_before=%" V8PRIdPTR
+          " "
+          "holes_size_after=%" V8PRIdPTR
+          " "
+          "allocated=%" V8PRIdPTR
+          " "
+          "promoted=%" V8PRIdPTR
+          " "
+          "semi_space_copied=%" V8PRIdPTR
+          " "
           "nodes_died_in_new=%d "
           "nodes_copied_in_new=%d "
           "nodes_promoted=%d "
@@ -628,7 +622,6 @@
           current_.scopes[Scope::MC_EVACUATE_CLEAN_UP],
           current_.scopes[Scope::MC_EVACUATE_COPY],
           current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS],
-          current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_BETWEEN_EVACUATED],
           current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_TO_EVACUATED],
           current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_TO_NEW],
           current_.scopes[Scope::MC_EVACUATE_UPDATE_POINTERS_WEAK],
diff --git a/src/heap/gc-tracer.h b/src/heap/gc-tracer.h
index 9ea3cce..a657f15 100644
--- a/src/heap/gc-tracer.h
+++ b/src/heap/gc-tracer.h
@@ -5,6 +5,7 @@
 #ifndef V8_HEAP_GC_TRACER_H_
 #define V8_HEAP_GC_TRACER_H_
 
+#include "src/base/compiler-specific.h"
 #include "src/base/platform/platform.h"
 #include "src/counters.h"
 #include "src/globals.h"
@@ -76,7 +77,6 @@
   F(MC_EVACUATE_CLEAN_UP)                          \
   F(MC_EVACUATE_COPY)                              \
   F(MC_EVACUATE_UPDATE_POINTERS)                   \
-  F(MC_EVACUATE_UPDATE_POINTERS_BETWEEN_EVACUATED) \
   F(MC_EVACUATE_UPDATE_POINTERS_TO_EVACUATED)      \
   F(MC_EVACUATE_UPDATE_POINTERS_TO_NEW)            \
   F(MC_EVACUATE_UPDATE_POINTERS_WEAK)              \
@@ -112,7 +112,7 @@
 #define TRACE_GC(tracer, scope_id)                             \
   GCTracer::Scope::ScopeId gc_tracer_scope_id(scope_id);       \
   GCTracer::Scope gc_tracer_scope(tracer, gc_tracer_scope_id); \
-  TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8"),                \
+  TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.gc"),             \
                GCTracer::Scope::Name(gc_tracer_scope_id))
 
 // GCTracer collects and prints ONE line after each garbage collector
@@ -383,7 +383,7 @@
 
   // Prints a line and also adds it to the heap's ring buffer so that
   // it can be included in later crash dumps.
-  void Output(const char* format, ...) const;
+  void PRINTF_FORMAT(2, 3) Output(const char* format, ...) const;
 
   void ClearMarkCompactStatistics() {
     cumulative_incremental_marking_steps_ = 0;
diff --git a/src/heap/heap-inl.h b/src/heap/heap-inl.h
index e31d3d6..f9c9235 100644
--- a/src/heap/heap-inl.h
+++ b/src/heap/heap-inl.h
@@ -395,7 +395,7 @@
 
 
 bool Heap::ShouldBePromoted(Address old_address, int object_size) {
-  NewSpacePage* page = NewSpacePage::FromAddress(old_address);
+  Page* page = Page::FromAddress(old_address);
   Address age_mark = new_space_.age_mark();
   return page->IsFlagSet(MemoryChunk::NEW_SPACE_BELOW_AGE_MARK) &&
          (!page->ContainsLimit(age_mark) || old_address < age_mark);
@@ -405,9 +405,20 @@
   if (!InNewSpace(o) || !object->IsHeapObject() || InNewSpace(object)) {
     return;
   }
-  Page* page = Page::FromAddress(reinterpret_cast<Address>(object));
-  Address slot = HeapObject::cast(object)->address() + offset;
-  RememberedSet<OLD_TO_NEW>::Insert(page, slot);
+  RememberedSet<OLD_TO_NEW>::Insert(
+      Page::FromAddress(reinterpret_cast<Address>(object)),
+      HeapObject::cast(object)->address() + offset);
+}
+
+void Heap::RecordFixedArrayElements(FixedArray* array, int offset, int length) {
+  if (InNewSpace(array)) return;
+  Page* page = Page::FromAddress(reinterpret_cast<Address>(array));
+  for (int i = 0; i < length; i++) {
+    if (!InNewSpace(array->get(offset + i))) continue;
+    RememberedSet<OLD_TO_NEW>::Insert(
+        page,
+        reinterpret_cast<Address>(array->RawFieldOfElementAt(offset + i)));
+  }
 }
 
 
@@ -457,7 +468,7 @@
   Address object_address = object->address();
   Address memento_address = object_address + object->Size();
   Address last_memento_word_address = memento_address + kPointerSize;
-  if (!NewSpacePage::OnSamePage(object_address, last_memento_word_address)) {
+  if (!Page::OnSamePage(object_address, last_memento_word_address)) {
     return nullptr;
   }
   HeapObject* candidate = HeapObject::FromAddress(memento_address);
@@ -485,7 +496,7 @@
       top = NewSpaceTop();
       DCHECK(memento_address == top ||
              memento_address + HeapObject::kHeaderSize <= top ||
-             !NewSpacePage::OnSamePage(memento_address, top - 1));
+             !Page::OnSamePage(memento_address, top - 1));
       if ((memento_address != top) && memento_candidate->IsValid()) {
         return memento_candidate;
       }
@@ -674,30 +685,30 @@
   return last_id;
 }
 
-
 void Heap::SetArgumentsAdaptorDeoptPCOffset(int pc_offset) {
   DCHECK(arguments_adaptor_deopt_pc_offset() == Smi::FromInt(0));
   set_arguments_adaptor_deopt_pc_offset(Smi::FromInt(pc_offset));
 }
 
-
 void Heap::SetConstructStubDeoptPCOffset(int pc_offset) {
   DCHECK(construct_stub_deopt_pc_offset() == Smi::FromInt(0));
   set_construct_stub_deopt_pc_offset(Smi::FromInt(pc_offset));
 }
 
-
 void Heap::SetGetterStubDeoptPCOffset(int pc_offset) {
   DCHECK(getter_stub_deopt_pc_offset() == Smi::FromInt(0));
   set_getter_stub_deopt_pc_offset(Smi::FromInt(pc_offset));
 }
 
-
 void Heap::SetSetterStubDeoptPCOffset(int pc_offset) {
   DCHECK(setter_stub_deopt_pc_offset() == Smi::FromInt(0));
   set_setter_stub_deopt_pc_offset(Smi::FromInt(pc_offset));
 }
 
+void Heap::SetInterpreterEntryReturnPCOffset(int pc_offset) {
+  DCHECK(interpreter_entry_return_pc_offset() == Smi::FromInt(0));
+  set_interpreter_entry_return_pc_offset(Smi::FromInt(pc_offset));
+}
 
 AlwaysAllocateScope::AlwaysAllocateScope(Isolate* isolate)
     : heap_(isolate->heap()) {
diff --git a/src/heap/heap.cc b/src/heap/heap.cc
index c3f56ac..c8f1557 100644
--- a/src/heap/heap.cc
+++ b/src/heap/heap.cc
@@ -71,7 +71,7 @@
 Heap::Heap()
     : amount_of_external_allocated_memory_(0),
       amount_of_external_allocated_memory_at_last_global_gc_(0),
-      isolate_(NULL),
+      isolate_(nullptr),
       code_range_size_(0),
       // semispace_size_ should be a power of 2 and old_generation_size_ should
       // be a multiple of Page::kPageSize.
@@ -115,7 +115,6 @@
       inline_allocation_disabled_(false),
       total_regexp_code_generated_(0),
       tracer_(nullptr),
-      embedder_heap_tracer_(nullptr),
       high_survival_rate_period_length_(0),
       promoted_objects_size_(0),
       promotion_ratio_(0),
@@ -136,6 +135,7 @@
       last_gc_time_(0.0),
       scavenge_collector_(nullptr),
       mark_compact_collector_(nullptr),
+      memory_allocator_(nullptr),
       store_buffer_(this),
       incremental_marking_(nullptr),
       gc_idle_time_handler_(nullptr),
@@ -157,9 +157,6 @@
       current_gc_flags_(Heap::kNoGCFlags),
       current_gc_callback_flags_(GCCallbackFlags::kNoGCCallbackFlags),
       external_string_table_(this),
-      chunks_queued_for_free_(NULL),
-      concurrent_unmapping_tasks_active_(0),
-      pending_unmapping_tasks_semaphore_(0),
       gc_callbacks_depth_(0),
       deserialization_complete_(false),
       strong_roots_list_(NULL),
@@ -191,8 +188,14 @@
 intptr_t Heap::Capacity() {
   if (!HasBeenSetUp()) return 0;
 
-  return new_space_.Capacity() + old_space_->Capacity() +
-         code_space_->Capacity() + map_space_->Capacity();
+  return new_space_.Capacity() + OldGenerationCapacity();
+}
+
+intptr_t Heap::OldGenerationCapacity() {
+  if (!HasBeenSetUp()) return 0;
+
+  return old_space_->Capacity() + code_space_->Capacity() +
+         map_space_->Capacity() + lo_space_->SizeOfObjects();
 }
 
 
@@ -225,7 +228,7 @@
 intptr_t Heap::CommittedMemoryExecutable() {
   if (!HasBeenSetUp()) return 0;
 
-  return isolate()->memory_allocator()->SizeExecutable();
+  return memory_allocator()->SizeExecutable();
 }
 
 
@@ -296,7 +299,7 @@
   // and does not count available bytes already in the old space or code
   // space.  Undercounting is safe---we may get an unrequested full GC when
   // a scavenge would have succeeded.
-  if (isolate_->memory_allocator()->MaxAvailable() <= new_space_.Size()) {
+  if (memory_allocator()->MaxAvailable() <= new_space_.Size()) {
     isolate_->counters()
         ->gc_compactor_caused_by_oldspace_exhaustion()
         ->Increment();
@@ -336,61 +339,59 @@
 
 void Heap::PrintShortHeapStatistics() {
   if (!FLAG_trace_gc_verbose) return;
-  PrintIsolate(isolate_, "Memory allocator,   used: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", available: %6" V8_PTR_PREFIX "d KB\n",
-               isolate_->memory_allocator()->Size() / KB,
-               isolate_->memory_allocator()->Available() / KB);
-  PrintIsolate(isolate_, "New space,          used: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", available: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", committed: %6" V8_PTR_PREFIX "d KB\n",
+  PrintIsolate(isolate_, "Memory allocator,   used: %6" V8PRIdPTR
+                         " KB, available: %6" V8PRIdPTR " KB\n",
+               memory_allocator()->Size() / KB,
+               memory_allocator()->Available() / KB);
+  PrintIsolate(isolate_, "New space,          used: %6" V8PRIdPTR
+                         " KB"
+                         ", available: %6" V8PRIdPTR
+                         " KB"
+                         ", committed: %6" V8PRIdPTR " KB\n",
                new_space_.Size() / KB, new_space_.Available() / KB,
                new_space_.CommittedMemory() / KB);
-  PrintIsolate(isolate_, "Old space,          used: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", available: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", committed: %6" V8_PTR_PREFIX "d KB\n",
+  PrintIsolate(isolate_, "Old space,          used: %6" V8PRIdPTR
+                         " KB"
+                         ", available: %6" V8PRIdPTR
+                         " KB"
+                         ", committed: %6" V8PRIdPTR " KB\n",
                old_space_->SizeOfObjects() / KB, old_space_->Available() / KB,
                old_space_->CommittedMemory() / KB);
-  PrintIsolate(isolate_, "Code space,         used: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", available: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", committed: %6" V8_PTR_PREFIX "d KB\n",
+  PrintIsolate(isolate_, "Code space,         used: %6" V8PRIdPTR
+                         " KB"
+                         ", available: %6" V8PRIdPTR
+                         " KB"
+                         ", committed: %6" V8PRIdPTR " KB\n",
                code_space_->SizeOfObjects() / KB, code_space_->Available() / KB,
                code_space_->CommittedMemory() / KB);
-  PrintIsolate(isolate_, "Map space,          used: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", available: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", committed: %6" V8_PTR_PREFIX "d KB\n",
+  PrintIsolate(isolate_, "Map space,          used: %6" V8PRIdPTR
+                         " KB"
+                         ", available: %6" V8PRIdPTR
+                         " KB"
+                         ", committed: %6" V8PRIdPTR " KB\n",
                map_space_->SizeOfObjects() / KB, map_space_->Available() / KB,
                map_space_->CommittedMemory() / KB);
-  PrintIsolate(isolate_, "Large object space, used: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", available: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", committed: %6" V8_PTR_PREFIX "d KB\n",
+  PrintIsolate(isolate_, "Large object space, used: %6" V8PRIdPTR
+                         " KB"
+                         ", available: %6" V8PRIdPTR
+                         " KB"
+                         ", committed: %6" V8PRIdPTR " KB\n",
                lo_space_->SizeOfObjects() / KB, lo_space_->Available() / KB,
                lo_space_->CommittedMemory() / KB);
-  PrintIsolate(isolate_, "All spaces,         used: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", available: %6" V8_PTR_PREFIX
-                         "d KB"
-                         ", committed: %6" V8_PTR_PREFIX "d KB\n",
+  PrintIsolate(isolate_, "All spaces,         used: %6" V8PRIdPTR
+                         " KB"
+                         ", available: %6" V8PRIdPTR
+                         " KB"
+                         ", committed: %6" V8PRIdPTR " KB\n",
                this->SizeOfObjects() / KB, this->Available() / KB,
                this->CommittedMemory() / KB);
   PrintIsolate(
-      isolate_, "External memory reported: %6" V8_PTR_PREFIX "d KB\n",
+      isolate_, "External memory reported: %6" V8PRIdPTR " KB\n",
       static_cast<intptr_t>(amount_of_external_allocated_memory_ / KB));
   PrintIsolate(isolate_, "Total time spent in GC  : %.1f ms\n",
                total_gc_time_ms_);
 }
 
-
 // TODO(1238405): Combine the infrastructure for --heap-stats and
 // --log-gc to avoid the complicated preprocessor and flag testing.
 void Heap::ReportStatisticsAfterGC() {
@@ -762,10 +763,10 @@
       // If GC happens while adding a stack trace to the weak fixed array,
       // which has been copied into a larger backing store, we may run into
       // a stack trace that has already been preprocessed. Guard against this.
-      if (!maybe_code->IsCode()) break;
-      Code* code = Code::cast(maybe_code);
+      if (!maybe_code->IsAbstractCode()) break;
+      AbstractCode* abstract_code = AbstractCode::cast(maybe_code);
       int offset = Smi::cast(elements->get(j + 3))->value();
-      int pos = code->SourcePosition(offset);
+      int pos = abstract_code->SourcePosition(offset);
       elements->set(j + 2, Smi::FromInt(pos));
     }
   }
@@ -818,10 +819,10 @@
     PrintF("[IncrementalMarking] (%s).\n", gc_reason);
   }
 
-  TRACE_GC(tracer(), GCTracer::Scope::MC_INCREMENTAL_FINALIZE);
   HistogramTimerScope incremental_marking_scope(
       isolate()->counters()->gc_incremental_marking_finalize());
   TRACE_EVENT0("v8", "V8.GCIncrementalMarkingFinalize");
+  TRACE_GC(tracer(), GCTracer::Scope::MC_INCREMENTAL_FINALIZE);
 
   {
     GCCallbacksScope scope(this);
@@ -941,7 +942,7 @@
   // may be uninitialized memory behind top. We fill the remainder of the page
   // with a filler.
   Address to_top = new_space_.top();
-  NewSpacePage* page = NewSpacePage::FromAddress(to_top - kPointerSize);
+  Page* page = Page::FromAddress(to_top - kPointerSize);
   if (page->Contains(to_top)) {
     int remaining_in_page = static_cast<int>(page->area_end() - to_top);
     CreateFillerObjectAt(to_top, remaining_in_page, ClearRecordedSlots::kNo);
@@ -976,10 +977,6 @@
       !ShouldAbortIncrementalMarking() && !incremental_marking()->IsStopped() &&
       !incremental_marking()->should_hurry() && FLAG_incremental_marking &&
       OldGenerationAllocationLimitReached()) {
-    // Make progress in incremental marking.
-    const intptr_t kStepSizeWhenDelayedByScavenge = 1 * MB;
-    incremental_marking()->Step(kStepSizeWhenDelayedByScavenge,
-                                IncrementalMarking::NO_GC_VIA_STACK_GUARD);
     if (!incremental_marking()->IsComplete() &&
         !mark_compact_collector()->marking_deque_.IsEmpty() &&
         !FLAG_gc_global) {
@@ -1102,13 +1099,7 @@
   DCHECK(array->map() != fixed_cow_array_map());
   Object** dst_objects = array->data_start() + dst_index;
   MemMove(dst_objects, array->data_start() + src_index, len * kPointerSize);
-  if (!InNewSpace(array)) {
-    for (int i = 0; i < len; i++) {
-      RecordWrite(array, array->OffsetOfElementAt(dst_index + i),
-                  dst_objects[i]);
-    }
-  }
-  incremental_marking()->IterateBlackObject(array);
+  FIXED_ARRAY_ELEMENTS_WRITE_BARRIER(this, array, dst_index, len);
 }
 
 
@@ -1229,7 +1220,7 @@
     if (!cache->IsUndefined()) {
       NormalizedMapCache::cast(cache)->Clear();
     }
-    context = Context::cast(context)->get(Context::NEXT_CONTEXT_LINK);
+    context = Context::cast(context)->next_context_link();
   }
 }
 
@@ -1475,10 +1466,6 @@
   CompletelyClearInstanceofCache();
 
   FlushNumberStringCache();
-  if (FLAG_cleanup_code_caches_at_gc) {
-    polymorphic_code_cache()->set_cache(undefined_value());
-  }
-
   ClearNormalizedMapCaches();
 }
 
@@ -1545,15 +1532,12 @@
   if (object->IsSmi()) return false;
   HeapObject* heap_object = HeapObject::cast(object);
   if (!object->IsJSObject()) return false;
-  Object* obj_constructor = (JSObject::cast(object))->map()->GetConstructor();
-  if (!obj_constructor->IsJSFunction()) return false;
-  JSFunction* constructor = JSFunction::cast(obj_constructor);
-  if (!constructor->shared()->IsApiFunction()) return false;
-  if (constructor != nullptr &&
-      constructor->initial_map() == heap_object->map()) {
-    return true;
-  }
-  return false;
+  JSObject* js_object = JSObject::cast(object);
+  if (!js_object->WasConstructedFromApiFunction()) return false;
+  JSFunction* constructor =
+      JSFunction::cast(js_object->map()->GetConstructor());
+
+  return constructor->initial_map() == heap_object->map();
 }
 
 
@@ -1565,7 +1549,8 @@
   front_ = rear_ =
       reinterpret_cast<struct Entry*>(heap_->new_space()->ToSpaceEnd());
   limit_ = reinterpret_cast<struct Entry*>(
-      Page::FromAllocationTop(reinterpret_cast<Address>(rear_))->area_start());
+      Page::FromAllocationAreaAddress(reinterpret_cast<Address>(rear_))
+          ->area_start());
   emergency_stack_ = NULL;
 }
 
@@ -1573,7 +1558,7 @@
 void PromotionQueue::RelocateQueueHead() {
   DCHECK(emergency_stack_ == NULL);
 
-  Page* p = Page::FromAllocationTop(reinterpret_cast<Address>(rear_));
+  Page* p = Page::FromAllocationAreaAddress(reinterpret_cast<Address>(rear_));
   struct Entry* head_start = rear_;
   struct Entry* head_end =
       Min(front_, reinterpret_cast<struct Entry*>(p->area_end()));
@@ -1778,12 +1763,6 @@
 
 void Heap::UpdateNewSpaceReferencesInExternalStringTable(
     ExternalStringTableUpdaterCallback updater_func) {
-#ifdef VERIFY_HEAP
-  if (FLAG_verify_heap) {
-    external_string_table_.Verify();
-  }
-#endif
-
   if (external_string_table_.new_space_strings_.is_empty()) return;
 
   Object** start = &external_string_table_.new_space_strings_[0];
@@ -1791,7 +1770,6 @@
   Object** last = start;
 
   for (Object** p = start; p < end; ++p) {
-    DCHECK(InFromSpace(*p));
     String* target = updater_func(this, p);
 
     if (target == NULL) continue;
@@ -1929,13 +1907,14 @@
     // queue of unprocessed copied objects.  Process them until the
     // queue is empty.
     while (new_space_front != new_space_.top()) {
-      if (!NewSpacePage::IsAtEnd(new_space_front)) {
+      if (!Page::IsAlignedToPageSize(new_space_front)) {
         HeapObject* object = HeapObject::FromAddress(new_space_front);
         new_space_front +=
             StaticScavengeVisitor::IterateBody(object->map(), object);
       } else {
-        new_space_front =
-            NewSpacePage::FromLimit(new_space_front)->next_page()->area_start();
+        new_space_front = Page::FromAllocationAreaAddress(new_space_front)
+                              ->next_page()
+                              ->area_start();
       }
     }
 
@@ -2174,6 +2153,21 @@
 #undef STRUCT_TABLE_ELEMENT
 };
 
+namespace {
+
+void FinalizePartialMap(Heap* heap, Map* map) {
+  map->set_code_cache(heap->empty_fixed_array());
+  map->set_dependent_code(DependentCode::cast(heap->empty_fixed_array()));
+  map->set_raw_transitions(Smi::FromInt(0));
+  map->set_instance_descriptors(heap->empty_descriptor_array());
+  if (FLAG_unbox_double_fields) {
+    map->set_layout_descriptor(LayoutDescriptor::FastPointerLayout());
+  }
+  map->set_prototype(heap->null_value());
+  map->set_constructor_or_backpointer(heap->null_value());
+}
+
+}  // namespace
 
 bool Heap::CreateInitialMaps() {
   HeapObject* obj = nullptr;
@@ -2195,8 +2189,10 @@
   }
 
     ALLOCATE_PARTIAL_MAP(FIXED_ARRAY_TYPE, kVariableSizeSentinel, fixed_array);
+    fixed_array_map()->set_elements_kind(FAST_HOLEY_ELEMENTS);
     ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, undefined);
     ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, null);
+    ALLOCATE_PARTIAL_MAP(ODDBALL_TYPE, Oddball::kSize, the_hole);
 
 #undef ALLOCATE_PARTIAL_MAP
   }
@@ -2222,6 +2218,12 @@
   set_undefined_value(Oddball::cast(obj));
   Oddball::cast(obj)->set_kind(Oddball::kUndefined);
   DCHECK(!InNewSpace(undefined_value()));
+  {
+    AllocationResult allocation = Allocate(the_hole_map(), OLD_SPACE);
+    if (!allocation.To(&obj)) return false;
+  }
+  set_the_hole_value(Oddball::cast(obj));
+  Oddball::cast(obj)->set_kind(Oddball::kTheHole);
 
   // Set preliminary exception sentinel value before actually initializing it.
   set_exception(null_value());
@@ -2234,55 +2236,13 @@
   set_empty_descriptor_array(DescriptorArray::cast(obj));
 
   // Fix the instance_descriptors for the existing maps.
-  meta_map()->set_code_cache(empty_fixed_array());
-  meta_map()->set_dependent_code(DependentCode::cast(empty_fixed_array()));
-  meta_map()->set_raw_transitions(Smi::FromInt(0));
-  meta_map()->set_instance_descriptors(empty_descriptor_array());
-  if (FLAG_unbox_double_fields) {
-    meta_map()->set_layout_descriptor(LayoutDescriptor::FastPointerLayout());
-  }
-
-  fixed_array_map()->set_code_cache(empty_fixed_array());
-  fixed_array_map()->set_dependent_code(
-      DependentCode::cast(empty_fixed_array()));
-  fixed_array_map()->set_raw_transitions(Smi::FromInt(0));
-  fixed_array_map()->set_instance_descriptors(empty_descriptor_array());
-  if (FLAG_unbox_double_fields) {
-    fixed_array_map()->set_layout_descriptor(
-        LayoutDescriptor::FastPointerLayout());
-  }
-
-  undefined_map()->set_code_cache(empty_fixed_array());
-  undefined_map()->set_dependent_code(DependentCode::cast(empty_fixed_array()));
-  undefined_map()->set_raw_transitions(Smi::FromInt(0));
-  undefined_map()->set_instance_descriptors(empty_descriptor_array());
-  if (FLAG_unbox_double_fields) {
-    undefined_map()->set_layout_descriptor(
-        LayoutDescriptor::FastPointerLayout());
-  }
-
-  null_map()->set_code_cache(empty_fixed_array());
-  null_map()->set_dependent_code(DependentCode::cast(empty_fixed_array()));
-  null_map()->set_raw_transitions(Smi::FromInt(0));
-  null_map()->set_instance_descriptors(empty_descriptor_array());
-  if (FLAG_unbox_double_fields) {
-    null_map()->set_layout_descriptor(LayoutDescriptor::FastPointerLayout());
-  }
-  null_map()->set_is_undetectable();
-
-  // Fix prototype object for existing maps.
-  meta_map()->set_prototype(null_value());
-  meta_map()->set_constructor_or_backpointer(null_value());
-
-  fixed_array_map()->set_prototype(null_value());
-  fixed_array_map()->set_constructor_or_backpointer(null_value());
-
-  undefined_map()->set_prototype(null_value());
-  undefined_map()->set_constructor_or_backpointer(null_value());
+  FinalizePartialMap(this, meta_map());
+  FinalizePartialMap(this, fixed_array_map());
+  FinalizePartialMap(this, undefined_map());
   undefined_map()->set_is_undetectable();
-
-  null_map()->set_prototype(null_value());
-  null_map()->set_constructor_or_backpointer(null_value());
+  FinalizePartialMap(this, null_map());
+  null_map()->set_is_undetectable();
+  FinalizePartialMap(this, the_hole_map());
 
   {  // Map allocation
 #define ALLOCATE_MAP(instance_type, size, field_name)               \
@@ -2304,7 +2264,8 @@
   }
 
     ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, fixed_cow_array)
-    DCHECK(fixed_array_map() != fixed_cow_array_map());
+    fixed_cow_array_map()->set_elements_kind(FAST_HOLEY_ELEMENTS);
+    DCHECK_NE(fixed_array_map(), fixed_cow_array_map());
 
     ALLOCATE_VARSIZE_MAP(FIXED_ARRAY_TYPE, scope_info)
     ALLOCATE_PRIMITIVE_MAP(HEAP_NUMBER_TYPE, HeapNumber::kSize, heap_number,
@@ -2320,7 +2281,6 @@
 #undef ALLOCATE_SIMD128_MAP
     ALLOCATE_MAP(FOREIGN_TYPE, Foreign::kSize, foreign)
 
-    ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, the_hole);
     ALLOCATE_PRIMITIVE_MAP(ODDBALL_TYPE, Oddball::kSize, boolean,
                            Context::BOOLEAN_FUNCTION_INDEX);
     ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, uninitialized);
@@ -2329,6 +2289,7 @@
     ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, exception);
     ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, termination_exception);
     ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, optimized_out);
+    ALLOCATE_MAP(ODDBALL_TYPE, Oddball::kSize, stale_register);
 
     for (unsigned i = 0; i < arraysize(string_type_table); i++) {
       const StringTypeTable& entry = string_type_table[i];
@@ -2354,6 +2315,7 @@
     }
 
     ALLOCATE_VARSIZE_MAP(FIXED_DOUBLE_ARRAY_TYPE, fixed_double_array)
+    fixed_double_array_map()->set_elements_kind(FAST_HOLEY_DOUBLE_ELEMENTS);
     ALLOCATE_VARSIZE_MAP(BYTE_ARRAY_TYPE, byte_array)
     ALLOCATE_VARSIZE_MAP(BYTECODE_ARRAY_TYPE, bytecode_array)
     ALLOCATE_VARSIZE_MAP(FREE_SPACE_TYPE, free_space)
@@ -2644,10 +2606,6 @@
   set_minus_infinity_value(
       *factory->NewHeapNumber(-V8_INFINITY, IMMUTABLE, TENURED));
 
-  // The hole has not been created yet, but we want to put something
-  // predictable in the gaps in the string table, so lets make that Smi zero.
-  set_the_hole_value(reinterpret_cast<Oddball*>(Smi::FromInt(0)));
-
   // Allocate initial string table.
   set_string_table(*StringTable::New(isolate(), kInitialStringTableSize));
 
@@ -2663,6 +2621,11 @@
                       handle(Smi::FromInt(0), isolate()), false, "object",
                       Oddball::kNull);
 
+  // Initialize the_hole_value.
+  Oddball::Initialize(isolate(), factory->the_hole_value(), "hole",
+                      handle(Smi::FromInt(-1), isolate()), false, "undefined",
+                      Oddball::kTheHole);
+
   // Initialize the true_value.
   Oddball::Initialize(isolate(), factory->true_value(), "true",
                       handle(Smi::FromInt(1), isolate()), true, "boolean",
@@ -2673,10 +2636,6 @@
                       handle(Smi::FromInt(0), isolate()), false, "boolean",
                       Oddball::kFalse);
 
-  set_the_hole_value(*factory->NewOddball(
-      factory->the_hole_map(), "hole", handle(Smi::FromInt(-1), isolate()),
-      false, "undefined", Oddball::kTheHole));
-
   set_uninitialized_value(
       *factory->NewOddball(factory->uninitialized_map(), "uninitialized",
                            handle(Smi::FromInt(-1), isolate()), false,
@@ -2706,6 +2665,11 @@
                            handle(Smi::FromInt(-6), isolate()), false,
                            "undefined", Oddball::kOptimizedOut));
 
+  set_stale_register(
+      *factory->NewOddball(factory->stale_register_map(), "stale_register",
+                           handle(Smi::FromInt(-7), isolate()), false,
+                           "undefined", Oddball::kStaleRegister));
+
   for (unsigned i = 0; i < arraysize(constant_string_table); i++) {
     Handle<String> str =
         factory->InternalizeUtf8String(constant_string_table[i].contents);
@@ -2716,13 +2680,6 @@
   // expanding the dictionary during bootstrapping.
   set_code_stubs(*UnseededNumberDictionary::New(isolate(), 128));
 
-  // Create the non_monomorphic_cache used in stub-cache.cc. The initial size
-  // is set to avoid expanding the dictionary during bootstrapping.
-  set_non_monomorphic_cache(*UnseededNumberDictionary::New(isolate(), 64));
-
-  set_polymorphic_code_cache(PolymorphicCodeCache::cast(
-      *factory->NewStruct(POLYMORPHIC_CODE_CACHE_TYPE)));
-
   set_instanceof_cache_function(Smi::FromInt(0));
   set_instanceof_cache_map(Smi::FromInt(0));
   set_instanceof_cache_answer(Smi::FromInt(0));
@@ -2740,14 +2697,6 @@
 #undef SYMBOL_INIT
   }
 
-  // The {hidden_properties_symbol} is special because it is the only name with
-  // hash code zero. This ensures that it will always be the first entry as
-  // sorted by hash code in descriptor arrays. It is used to identify the hidden
-  // properties in JSObjects.
-  // kIsNotArrayIndexMask is a computed hash with value zero.
-  Symbol::cast(roots_[khidden_properties_symbolRootIndex])
-      ->set_hash_field(Name::kIsNotArrayIndexMask);
-
   {
     HandleScope scope(isolate());
 #define SYMBOL_INIT(name, description)                                      \
@@ -2768,8 +2717,6 @@
 #undef SYMBOL_INIT
   }
 
-  CreateFixedStubs();
-
   // Allocate the dictionary of intrinsic function names.
   Handle<NameDictionary> intrinsic_names =
       NameDictionary::New(isolate(), Runtime::kNumFunctions, TENURED);
@@ -2812,10 +2759,6 @@
   // The symbol registry is initialized lazily.
   set_symbol_registry(Smi::FromInt(0));
 
-  // Allocate object to hold object observation state.
-  set_observation_state(*factory->NewJSObjectFromMap(
-      factory->NewMap(JS_OBJECT_TYPE, JSObject::kHeaderSize)));
-
   // Microtask queue uses the empty fixed array as a sentinel for "empty".
   // Number of queued microtasks stored in Isolate::pending_microtask_count().
   set_microtask_queue(empty_fixed_array());
@@ -2896,8 +2839,16 @@
   cell->set_value(the_hole_value());
   set_empty_property_cell(*cell);
 
-  Handle<PropertyCell> species_cell = factory->NewPropertyCell();
-  species_cell->set_value(Smi::FromInt(Isolate::kArrayProtectorValid));
+  cell = factory->NewPropertyCell();
+  cell->set_value(Smi::FromInt(Isolate::kArrayProtectorValid));
+  set_has_instance_protector(*cell);
+
+  Handle<Cell> is_concat_spreadable_cell = factory->NewCell(
+      handle(Smi::FromInt(Isolate::kArrayProtectorValid), isolate()));
+  set_is_concat_spreadable_protector(*is_concat_spreadable_cell);
+
+  Handle<Cell> species_cell = factory->NewCell(
+      handle(Smi::FromInt(Isolate::kArrayProtectorValid), isolate()));
   set_species_protector(*species_cell);
 
   set_weak_stack_trace_list(Smi::FromInt(0));
@@ -2915,6 +2866,8 @@
 
   // Initialize compilation cache.
   isolate_->compilation_cache()->Clear();
+
+  CreateFixedStubs();
 }
 
 
@@ -2925,8 +2878,6 @@
     case kInstanceofCacheMapRootIndex:
     case kInstanceofCacheAnswerRootIndex:
     case kCodeStubsRootIndex:
-    case kNonMonomorphicCacheRootIndex:
-    case kPolymorphicCodeCacheRootIndex:
     case kEmptyScriptRootIndex:
     case kSymbolRegistryRootIndex:
     case kScriptListRootIndex:
@@ -3166,10 +3117,6 @@
   DCHECK(!lo_space()->Contains(object));
   DCHECK(object->map() != fixed_cow_array_map());
 
-  // Ensure that the no handle-scope has more than one pointer to the same
-  // backing-store.
-  SLOW_DCHECK(CountHandlesForObject(object) <= 1);
-
   STATIC_ASSERT(FixedArrayBase::kMapOffset == 0);
   STATIC_ASSERT(FixedArrayBase::kLengthOffset == kPointerSize);
   STATIC_ASSERT(FixedArrayBase::kHeaderSize == 2 * kPointerSize);
@@ -3185,7 +3132,6 @@
   // we still do it.
   CreateFillerObjectAt(object->address(), bytes_to_trim,
                        ClearRecordedSlots::kYes);
-
   // Initialize header of the trimmed array. Since left trimming is only
   // performed on pages which are not concurrently swept creating a filler
   // object does not require synchronization.
@@ -3197,6 +3143,11 @@
   FixedArrayBase* new_object =
       FixedArrayBase::cast(HeapObject::FromAddress(new_start));
 
+  // Remove recorded slots for the new map and length offset.
+  ClearRecordedSlot(new_object, HeapObject::RawField(new_object, 0));
+  ClearRecordedSlot(new_object, HeapObject::RawField(
+                                    new_object, FixedArrayBase::kLengthOffset));
+
   // Maintain consistency of live bytes during incremental marking
   Marking::TransferMark(this, object->address(), new_start);
   AdjustLiveBytes(new_object, -bytes_to_trim, Heap::CONCURRENT_TO_SWEEPER);
@@ -3372,8 +3323,9 @@
   result->set_map_no_write_barrier(code_map());
   Code* code = Code::cast(result);
   DCHECK(IsAligned(bit_cast<intptr_t>(code->address()), kCodeAlignment));
-  DCHECK(isolate_->code_range() == NULL || !isolate_->code_range()->valid() ||
-         isolate_->code_range()->contains(code->address()) ||
+  DCHECK(memory_allocator()->code_range() == NULL ||
+         !memory_allocator()->code_range()->valid() ||
+         memory_allocator()->code_range()->contains(code->address()) ||
          object_size <= code_space()->AreaSize());
   code->set_gc_metadata(Smi::FromInt(0));
   code->set_ic_age(global_ic_age_);
@@ -3398,8 +3350,9 @@
 
   // Relocate the copy.
   DCHECK(IsAligned(bit_cast<intptr_t>(new_code->address()), kCodeAlignment));
-  DCHECK(isolate_->code_range() == NULL || !isolate_->code_range()->valid() ||
-         isolate_->code_range()->contains(code->address()) ||
+  DCHECK(memory_allocator()->code_range() == NULL ||
+         !memory_allocator()->code_range()->valid() ||
+         memory_allocator()->code_range()->contains(code->address()) ||
          obj_size <= code_space()->AreaSize());
   new_code->Relocate(new_addr - old_addr);
   // We have to iterate over the object and process its pointers when black
@@ -3467,8 +3420,9 @@
 
   // Relocate the copy.
   DCHECK(IsAligned(bit_cast<intptr_t>(new_code->address()), kCodeAlignment));
-  DCHECK(isolate_->code_range() == NULL || !isolate_->code_range()->valid() ||
-         isolate_->code_range()->contains(code->address()) ||
+  DCHECK(memory_allocator()->code_range() == NULL ||
+         !memory_allocator()->code_range()->valid() ||
+         memory_allocator()->code_range()->contains(code->address()) ||
          new_obj_size <= code_space()->AreaSize());
 
   new_code->Relocate(new_addr - old_addr);
@@ -3610,6 +3564,7 @@
   CHECK(map->instance_type() == JS_REGEXP_TYPE ||
         map->instance_type() == JS_OBJECT_TYPE ||
         map->instance_type() == JS_ARRAY_TYPE ||
+        map->instance_type() == JS_API_OBJECT_TYPE ||
         map->instance_type() == JS_SPECIAL_API_OBJECT_TYPE);
 
   int object_size = map->instance_size();
@@ -4018,8 +3973,7 @@
 AllocationResult Heap::AllocateRawFixedDoubleArray(int length,
                                                    PretenureFlag pretenure) {
   if (length < 0 || length > FixedDoubleArray::kMaxLength) {
-    v8::internal::Heap::FatalProcessOutOfMemory("invalid array length",
-                                                kDoubleAligned);
+    v8::internal::Heap::FatalProcessOutOfMemory("invalid array length", true);
   }
   int size = FixedDoubleArray::SizeFor(length);
   AllocationSpace space = SelectSpace(pretenure);
@@ -4520,7 +4474,7 @@
   USE(title);
   PrintF(">>>>>> =============== %s (%d) =============== >>>>>>\n", title,
          gc_count_);
-  PrintF("old_generation_allocation_limit_ %" V8_PTR_PREFIX "d\n",
+  PrintF("old_generation_allocation_limit_ %" V8PRIdPTR "\n",
          old_generation_allocation_limit_);
 
   PrintF("\n");
@@ -4529,7 +4483,7 @@
   PrintF("\n");
 
   PrintF("Heap statistics : ");
-  isolate_->memory_allocator()->ReportStatistics();
+  memory_allocator()->ReportStatistics();
   PrintF("To space : ");
   new_space_.ReportStatistics();
   PrintF("Old space : ");
@@ -4546,7 +4500,7 @@
 #endif  // DEBUG
 
 bool Heap::Contains(HeapObject* value) {
-  if (isolate_->memory_allocator()->IsOutsideAllocatedSpace(value->address())) {
+  if (memory_allocator()->IsOutsideAllocatedSpace(value->address())) {
     return false;
   }
   return HasBeenSetUp() &&
@@ -4556,7 +4510,7 @@
 }
 
 bool Heap::ContainsSlow(Address addr) {
-  if (isolate_->memory_allocator()->IsOutsideAllocatedSpace(addr)) {
+  if (memory_allocator()->IsOutsideAllocatedSpace(addr)) {
     return false;
   }
   return HasBeenSetUp() &&
@@ -4566,7 +4520,7 @@
 }
 
 bool Heap::InSpace(HeapObject* value, AllocationSpace space) {
-  if (isolate_->memory_allocator()->IsOutsideAllocatedSpace(value->address())) {
+  if (memory_allocator()->IsOutsideAllocatedSpace(value->address())) {
     return false;
   }
   if (!HasBeenSetUp()) return false;
@@ -4588,7 +4542,7 @@
 }
 
 bool Heap::InSpaceSlow(Address addr, AllocationSpace space) {
-  if (isolate_->memory_allocator()->IsOutsideAllocatedSpace(addr)) {
+  if (memory_allocator()->IsOutsideAllocatedSpace(addr)) {
     return false;
   }
   if (!HasBeenSetUp()) return false;
@@ -4681,7 +4635,7 @@
   NewSpacePageIterator it(new_space_.FromSpaceStart(),
                           new_space_.FromSpaceEnd());
   while (it.has_next()) {
-    NewSpacePage* page = it.next();
+    Page* page = it.next();
     for (Address cursor = page->area_start(), limit = page->area_end();
          cursor < limit; cursor += kPointerSize) {
       Memory::Address_at(cursor) = kFromSpaceZapValue;
@@ -4805,6 +4759,49 @@
   v->Synchronize(VisitorSynchronization::kSmiRootList);
 }
 
+// We cannot avoid stale handles to left-trimmed objects, but can only make
+// sure all handles still needed are updated. Filter out a stale pointer
+// and clear the slot to allow post processing of handles (needed because
+// the sweeper might actually free the underlying page).
+class FixStaleLeftTrimmedHandlesVisitor : public ObjectVisitor {
+ public:
+  explicit FixStaleLeftTrimmedHandlesVisitor(Heap* heap) : heap_(heap) {
+    USE(heap_);
+  }
+
+  void VisitPointer(Object** p) override { FixHandle(p); }
+
+  void VisitPointers(Object** start, Object** end) override {
+    for (Object** p = start; p < end; p++) FixHandle(p);
+  }
+
+ private:
+  inline void FixHandle(Object** p) {
+    HeapObject* current = reinterpret_cast<HeapObject*>(*p);
+    if (!current->IsHeapObject()) return;
+    const MapWord map_word = current->map_word();
+    if (!map_word.IsForwardingAddress() && current->IsFiller()) {
+#ifdef DEBUG
+      // We need to find a FixedArrayBase map after walking the fillers.
+      while (current->IsFiller()) {
+        Address next = reinterpret_cast<Address>(current);
+        if (current->map() == heap_->one_pointer_filler_map()) {
+          next += kPointerSize;
+        } else if (current->map() == heap_->two_pointer_filler_map()) {
+          next += 2 * kPointerSize;
+        } else {
+          next += current->Size();
+        }
+        current = reinterpret_cast<HeapObject*>(next);
+      }
+      DCHECK(current->IsFixedArrayBase());
+#endif  // DEBUG
+      *p = nullptr;
+    }
+  }
+
+  Heap* heap_;
+};
 
 void Heap::IterateStrongRoots(ObjectVisitor* v, VisitMode mode) {
   v->VisitPointers(&roots_[0], &roots_[kStrongRootListLength]);
@@ -4825,6 +4822,8 @@
   v->Synchronize(VisitorSynchronization::kCompilationCache);
 
   // Iterate over local handles in handle scopes.
+  FixStaleLeftTrimmedHandlesVisitor left_trim_visitor(this);
+  isolate_->handle_scope_implementer()->Iterate(&left_trim_visitor);
   isolate_->handle_scope_implementer()->Iterate(v);
   isolate_->IterateDeferredHandles(v);
   v->Synchronize(VisitorSynchronization::kHandleScope);
@@ -5029,12 +5028,11 @@
   *stats->map_space_capacity = map_space_->Capacity();
   *stats->lo_space_size = lo_space_->Size();
   isolate_->global_handles()->RecordStats(stats);
-  *stats->memory_allocator_size = isolate()->memory_allocator()->Size();
+  *stats->memory_allocator_size = memory_allocator()->Size();
   *stats->memory_allocator_capacity =
-      isolate()->memory_allocator()->Size() +
-      isolate()->memory_allocator()->Available();
+      memory_allocator()->Size() + memory_allocator()->Available();
   *stats->os_error = base::OS::GetLastError();
-  isolate()->memory_allocator()->Available();
+  memory_allocator()->Available();
   if (take_snapshot) {
     HeapIterator iterator(this);
     for (HeapObject* obj = iterator.next(); obj != NULL;
@@ -5188,8 +5186,8 @@
       CalculateOldGenerationAllocationLimit(factor, old_gen_size);
 
   if (FLAG_trace_gc_verbose) {
-    PrintIsolate(isolate_, "Grow: old size: %" V8_PTR_PREFIX
-                           "d KB, new limit: %" V8_PTR_PREFIX "d KB (%.1f)\n",
+    PrintIsolate(isolate_, "Grow: old size: %" V8PRIdPTR
+                           " KB, new limit: %" V8PRIdPTR " KB (%.1f)\n",
                  old_gen_size / KB, old_generation_allocation_limit_ / KB,
                  factor);
   }
@@ -5203,10 +5201,10 @@
   intptr_t limit = CalculateOldGenerationAllocationLimit(factor, old_gen_size);
   if (limit < old_generation_allocation_limit_) {
     if (FLAG_trace_gc_verbose) {
-      PrintIsolate(isolate_, "Dampen: old size: %" V8_PTR_PREFIX
-                             "d KB, old limit: %" V8_PTR_PREFIX
-                             "d KB, "
-                             "new limit: %" V8_PTR_PREFIX "d KB (%.1f)\n",
+      PrintIsolate(isolate_,
+                   "Dampen: old size: %" V8PRIdPTR " KB, old limit: %" V8PRIdPTR
+                   " KB, "
+                   "new limit: %" V8PRIdPTR " KB (%.1f)\n",
                    old_gen_size / KB, old_generation_allocation_limit_ / KB,
                    limit / KB, factor);
     }
@@ -5269,7 +5267,9 @@
   base::CallOnce(&initialize_gc_once, &InitializeGCOnce);
 
   // Set up memory allocator.
-  if (!isolate_->memory_allocator()->SetUp(MaxReserved(), MaxExecutableSize()))
+  memory_allocator_ = new MemoryAllocator(isolate_);
+  if (!memory_allocator_->SetUp(MaxReserved(), MaxExecutableSize(),
+                                code_range_size_))
     return false;
 
   // Initialize incremental marking.
@@ -5286,8 +5286,6 @@
   if (old_space_ == NULL) return false;
   if (!old_space_->SetUp()) return false;
 
-  if (!isolate_->code_range()->SetUp(code_range_size_)) return false;
-
   // Initialize the code space, set its maximum capacity to the old
   // generation size. It needs executable memory.
   code_space_ = new OldSpace(this, CODE_SPACE, EXECUTABLE);
@@ -5407,12 +5405,20 @@
 #endif  // DEBUG
 }
 
+void Heap::SetEmbedderHeapTracer(EmbedderHeapTracer* tracer) {
+  mark_compact_collector()->SetEmbedderHeapTracer(tracer);
+}
+
+bool Heap::UsingEmbedderHeapTracer() {
+  return mark_compact_collector()->UsingEmbedderHeapTracer();
+}
+
+void Heap::TracePossibleWrapper(JSObject* js_object) {
+  mark_compact_collector()->TracePossibleWrapper(js_object);
+}
+
 void Heap::RegisterExternallyReferencedObject(Object** object) {
-  DCHECK(mark_compact_collector()->in_use());
-  HeapObject* heap_object = HeapObject::cast(*object);
-  DCHECK(Contains(heap_object));
-  MarkBit mark_bit = Marking::MarkBitFrom(heap_object);
-  mark_compact_collector()->MarkObject(heap_object, mark_bit);
+  mark_compact_collector()->RegisterExternallyReferencedObject(object);
 }
 
 void Heap::TearDown() {
@@ -5431,7 +5437,7 @@
     PrintF("max_gc_pause=%.1f ", get_max_gc_pause());
     PrintF("total_gc_time=%.1f ", total_gc_time_ms_);
     PrintF("min_in_mutator=%.1f ", get_min_in_mutator());
-    PrintF("max_alive_after_gc=%" V8_PTR_PREFIX "d ", get_max_alive_after_gc());
+    PrintF("max_alive_after_gc=%" V8PRIdPTR " ", get_max_alive_after_gc());
     PrintF("total_marking_time=%.1f ", tracer()->cumulative_marking_duration());
     PrintF("total_sweeping_time=%.1f ",
            tracer()->cumulative_sweeping_duration());
@@ -5440,17 +5446,17 @@
 
   if (FLAG_print_max_heap_committed) {
     PrintF("\n");
-    PrintF("maximum_committed_by_heap=%" V8_PTR_PREFIX "d ",
+    PrintF("maximum_committed_by_heap=%" V8PRIdPTR " ",
            MaximumCommittedMemory());
-    PrintF("maximum_committed_by_new_space=%" V8_PTR_PREFIX "d ",
+    PrintF("maximum_committed_by_new_space=%" V8PRIdPTR " ",
            new_space_.MaximumCommittedMemory());
-    PrintF("maximum_committed_by_old_space=%" V8_PTR_PREFIX "d ",
+    PrintF("maximum_committed_by_old_space=%" V8PRIdPTR " ",
            old_space_->MaximumCommittedMemory());
-    PrintF("maximum_committed_by_code_space=%" V8_PTR_PREFIX "d ",
+    PrintF("maximum_committed_by_code_space=%" V8PRIdPTR " ",
            code_space_->MaximumCommittedMemory());
-    PrintF("maximum_committed_by_map_space=%" V8_PTR_PREFIX "d ",
+    PrintF("maximum_committed_by_map_space=%" V8PRIdPTR " ",
            map_space_->MaximumCommittedMemory());
-    PrintF("maximum_committed_by_lo_space=%" V8_PTR_PREFIX "d ",
+    PrintF("maximum_committed_by_lo_space=%" V8PRIdPTR " ",
            lo_space_->MaximumCommittedMemory());
     PrintF("\n\n");
   }
@@ -5490,8 +5496,6 @@
   delete scavenge_job_;
   scavenge_job_ = nullptr;
 
-  WaitUntilUnmappingOfFreeChunksCompleted();
-
   delete array_buffer_tracker_;
   array_buffer_tracker_ = nullptr;
 
@@ -5527,7 +5531,7 @@
 
   store_buffer()->TearDown();
 
-  isolate_->memory_allocator()->TearDown();
+  memory_allocator()->TearDown();
 
   StrongRootsList* next = NULL;
   for (StrongRootsList* list = strong_roots_list_; list; list = next) {
@@ -5535,6 +5539,9 @@
     delete list;
   }
   strong_roots_list_ = NULL;
+
+  delete memory_allocator_;
+  memory_allocator_ = nullptr;
 }
 
 
@@ -5579,12 +5586,6 @@
   UNREACHABLE();
 }
 
-void Heap::SetEmbedderHeapTracer(EmbedderHeapTracer* tracer) {
-  DCHECK_NOT_NULL(tracer);
-  CHECK_NULL(embedder_heap_tracer_);
-  embedder_heap_tracer_ = tracer;
-}
-
 // TODO(ishell): Find a better place for this.
 void Heap::AddWeakObjectToCodeDependency(Handle<HeapObject> obj,
                                          Handle<DependentCode> dep) {
@@ -5648,9 +5649,8 @@
   if (new_length != length) retained_maps->SetLength(new_length);
 }
 
-
-void Heap::FatalProcessOutOfMemory(const char* location, bool take_snapshot) {
-  v8::internal::V8::FatalProcessOutOfMemory(location, take_snapshot);
+void Heap::FatalProcessOutOfMemory(const char* location, bool is_heap_oom) {
+  v8::internal::V8::FatalProcessOutOfMemory(location, is_heap_oom);
 }
 
 #ifdef DEBUG
@@ -5673,32 +5673,6 @@
 
 #endif
 
-#ifdef ENABLE_SLOW_DCHECKS
-
-class CountHandleVisitor : public ObjectVisitor {
- public:
-  explicit CountHandleVisitor(Object* object) : object_(object) {}
-
-  void VisitPointers(Object** start, Object** end) override {
-    for (Object** p = start; p < end; p++) {
-      if (object_ == reinterpret_cast<Object*>(*p)) count_++;
-    }
-  }
-
-  int count() { return count_; }
-
- private:
-  Object* object_;
-  int count_ = 0;
-};
-
-int Heap::CountHandlesForObject(Object* object) {
-  CountHandleVisitor v(object);
-  isolate_->handle_scope_implementer()->Iterate(&v);
-  return v.count();
-}
-#endif
-
 class CheckHandleCountVisitor : public ObjectVisitor {
  public:
   CheckHandleCountVisitor() : handle_count_(0) {}
@@ -6255,7 +6229,6 @@
   for (int index = 0; index < kLength; index++) keys_[index].source = NULL;
 }
 
-
 void Heap::ExternalStringTable::CleanUp() {
   int last = 0;
   for (int i = 0; i < new_space_strings_.length(); ++i) {
@@ -6290,7 +6263,6 @@
 #endif
 }
 
-
 void Heap::ExternalStringTable::TearDown() {
   for (int i = 0; i < new_space_strings_.length(); ++i) {
     heap_->FinalizeExternalString(ExternalString::cast(new_space_strings_[i]));
@@ -6303,75 +6275,6 @@
 }
 
 
-class Heap::UnmapFreeMemoryTask : public v8::Task {
- public:
-  UnmapFreeMemoryTask(Heap* heap, MemoryChunk* head)
-      : heap_(heap), head_(head) {}
-  virtual ~UnmapFreeMemoryTask() {}
-
- private:
-  // v8::Task overrides.
-  void Run() override {
-    heap_->FreeQueuedChunks(head_);
-    heap_->pending_unmapping_tasks_semaphore_.Signal();
-  }
-
-  Heap* heap_;
-  MemoryChunk* head_;
-
-  DISALLOW_COPY_AND_ASSIGN(UnmapFreeMemoryTask);
-};
-
-
-void Heap::WaitUntilUnmappingOfFreeChunksCompleted() {
-  while (concurrent_unmapping_tasks_active_ > 0) {
-    pending_unmapping_tasks_semaphore_.Wait();
-    concurrent_unmapping_tasks_active_--;
-  }
-}
-
-
-void Heap::QueueMemoryChunkForFree(MemoryChunk* chunk) {
-  // PreFree logically frees the memory chunk. However, the actual freeing
-  // will happen on a separate thread sometime later.
-  isolate_->memory_allocator()->PreFreeMemory(chunk);
-
-  // The chunks added to this queue will be freed by a concurrent thread.
-  chunk->set_next_chunk(chunks_queued_for_free_);
-  chunks_queued_for_free_ = chunk;
-}
-
-
-void Heap::FreeQueuedChunks() {
-  if (chunks_queued_for_free_ != NULL) {
-    if (FLAG_concurrent_sweeping) {
-      V8::GetCurrentPlatform()->CallOnBackgroundThread(
-          new UnmapFreeMemoryTask(this, chunks_queued_for_free_),
-          v8::Platform::kShortRunningTask);
-    } else {
-      FreeQueuedChunks(chunks_queued_for_free_);
-      pending_unmapping_tasks_semaphore_.Signal();
-    }
-    chunks_queued_for_free_ = NULL;
-  } else {
-    // If we do not have anything to unmap, we just signal the semaphore
-    // that we are done.
-    pending_unmapping_tasks_semaphore_.Signal();
-  }
-  concurrent_unmapping_tasks_active_++;
-}
-
-
-void Heap::FreeQueuedChunks(MemoryChunk* list_head) {
-  MemoryChunk* next;
-  MemoryChunk* chunk;
-  for (chunk = list_head; chunk != NULL; chunk = next) {
-    next = chunk->next_chunk();
-    isolate_->memory_allocator()->PerformFreeMemory(chunk);
-  }
-}
-
-
 void Heap::RememberUnmappedPage(Address page, bool compacted) {
   uintptr_t p = reinterpret_cast<uintptr_t>(page);
   // Tag the page pointer to make it findable in the dump file.
diff --git a/src/heap/heap.h b/src/heap/heap.h
index 9457453..8fdb64a 100644
--- a/src/heap/heap.h
+++ b/src/heap/heap.h
@@ -13,7 +13,7 @@
 #include "include/v8.h"
 #include "src/allocation.h"
 #include "src/assert-scope.h"
-#include "src/atomic-utils.h"
+#include "src/base/atomic-utils.h"
 #include "src/globals.h"
 #include "src/heap-symbols.h"
 // TODO(mstarzinger): Two more includes to kill!
@@ -78,6 +78,7 @@
   V(Oddball, exception, Exception)                                             \
   V(Oddball, termination_exception, TerminationException)                      \
   V(Oddball, optimized_out, OptimizedOut)                                      \
+  V(Oddball, stale_register, StaleRegister)                                    \
   V(FixedArray, number_string_cache, NumberStringCache)                        \
   V(Object, instanceof_cache_function, InstanceofCacheFunction)                \
   V(Object, instanceof_cache_map, InstanceofCacheMap)                          \
@@ -152,6 +153,7 @@
   V(Map, exception_map, ExceptionMap)                                          \
   V(Map, termination_exception_map, TerminationExceptionMap)                   \
   V(Map, optimized_out_map, OptimizedOutMap)                                   \
+  V(Map, stale_register_map, StaleRegisterMap)                                 \
   V(Map, message_object_map, JSMessageObjectMap)                               \
   V(Map, foreign_map, ForeignMap)                                              \
   V(Map, neander_map, NeanderMap)                                              \
@@ -162,8 +164,6 @@
   V(HeapNumber, minus_infinity_value, MinusInfinityValue)                      \
   V(JSObject, message_listeners, MessageListeners)                             \
   V(UnseededNumberDictionary, code_stubs, CodeStubs)                           \
-  V(UnseededNumberDictionary, non_monomorphic_cache, NonMonomorphicCache)      \
-  V(PolymorphicCodeCache, polymorphic_code_cache, PolymorphicCodeCache)        \
   V(Code, js_entry_code, JsEntryCode)                                          \
   V(Code, js_construct_entry_code, JsConstructEntryCode)                       \
   V(FixedArray, natives_source_cache, NativesSourceCache)                      \
@@ -176,7 +176,6 @@
   V(NameDictionary, intrinsic_function_names, IntrinsicFunctionNames)          \
   V(NameDictionary, empty_properties_dictionary, EmptyPropertiesDictionary)    \
   V(Cell, undefined_cell, UndefinedCell)                                       \
-  V(JSObject, observation_state, ObservationState)                             \
   V(Object, symbol_registry, SymbolRegistry)                                   \
   V(Object, script_list, ScriptList)                                           \
   V(SeededNumberDictionary, empty_slow_element_dictionary,                     \
@@ -189,12 +188,14 @@
   V(ArrayList, retained_maps, RetainedMaps)                                    \
   V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable)           \
   V(PropertyCell, array_protector, ArrayProtector)                             \
+  V(Cell, is_concat_spreadable_protector, IsConcatSpreadableProtector)         \
   V(PropertyCell, empty_property_cell, EmptyPropertyCell)                      \
   V(Object, weak_stack_trace_list, WeakStackTraceList)                         \
   V(Object, noscript_shared_function_infos, NoScriptSharedFunctionInfos)       \
   V(Map, bytecode_array_map, BytecodeArrayMap)                                 \
   V(WeakCell, empty_weak_cell, EmptyWeakCell)                                  \
-  V(PropertyCell, species_protector, SpeciesProtector)
+  V(PropertyCell, has_instance_protector, HasInstanceProtector)                \
+  V(Cell, species_protector, SpeciesProtector)
 
 // Entries in this list are limited to Smis and are not visited during GC.
 #define SMI_ROOT_LIST(V)                                                   \
@@ -204,8 +205,8 @@
   V(Smi, arguments_adaptor_deopt_pc_offset, ArgumentsAdaptorDeoptPCOffset) \
   V(Smi, construct_stub_deopt_pc_offset, ConstructStubDeoptPCOffset)       \
   V(Smi, getter_stub_deopt_pc_offset, GetterStubDeoptPCOffset)             \
-  V(Smi, setter_stub_deopt_pc_offset, SetterStubDeoptPCOffset)
-
+  V(Smi, setter_stub_deopt_pc_offset, SetterStubDeoptPCOffset)             \
+  V(Smi, interpreter_entry_return_pc_offset, InterpreterEntryReturnPCOffset)
 
 #define ROOT_LIST(V)  \
   STRONG_ROOT_LIST(V) \
@@ -325,7 +326,7 @@
   }
 
   Page* GetHeadPage() {
-    return Page::FromAllocationTop(reinterpret_cast<Address>(rear_));
+    return Page::FromAllocationAreaAddress(reinterpret_cast<Address>(rear_));
   }
 
   void SetNewLimit(Address limit) {
@@ -333,7 +334,7 @@
     if (emergency_stack_) return;
 
     // If the limit is not on the same page, we can ignore it.
-    if (Page::FromAllocationTop(limit) != GetHeadPage()) return;
+    if (Page::FromAllocationAreaAddress(limit) != GetHeadPage()) return;
 
     limit_ = reinterpret_cast<struct Entry*>(limit);
 
@@ -568,7 +569,7 @@
   static inline bool IsOneByte(T t, int chars);
 
   static void FatalProcessOutOfMemory(const char* location,
-                                      bool take_snapshot = false);
+                                      bool is_heap_oom = false);
 
   static bool RootIsImmortalImmovable(int root_index);
 
@@ -626,11 +627,9 @@
     return old_space_->allocation_limit_address();
   }
 
-  // TODO(hpayer): There is still a missmatch between capacity and actual
-  // committed memory size.
-  bool CanExpandOldGeneration(int size = 0) {
+  bool CanExpandOldGeneration(int size) {
     if (force_oom_) return false;
-    return (CommittedOldGenerationMemory() + size) < MaxOldGenerationSize();
+    return (OldGenerationCapacity() + size) < MaxOldGenerationSize();
   }
 
   // Clear the Instanceof cache (used when a prototype changes).
@@ -730,6 +729,14 @@
   // Returns false if not able to reserve.
   bool ReserveSpace(Reservation* reservations);
 
+  void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer);
+
+  bool UsingEmbedderHeapTracer();
+
+  void TracePossibleWrapper(JSObject* js_object);
+
+  void RegisterExternallyReferencedObject(Object** object);
+
   //
   // Support for the API.
   //
@@ -775,11 +782,6 @@
 
   inline bool OldGenerationAllocationLimitReached();
 
-  void QueueMemoryChunkForFree(MemoryChunk* chunk);
-  void FreeQueuedChunks(MemoryChunk* list_head);
-  void FreeQueuedChunks();
-  void WaitUntilUnmappingOfFreeChunksCompleted();
-
   // Completely clear the Instanceof cache (to stop it keeping objects alive
   // around a GC).
   inline void CompletelyClearInstanceofCache();
@@ -792,6 +794,7 @@
   inline void SetConstructStubDeoptPCOffset(int pc_offset);
   inline void SetGetterStubDeoptPCOffset(int pc_offset);
   inline void SetSetterStubDeoptPCOffset(int pc_offset);
+  inline void SetInterpreterEntryReturnPCOffset(int pc_offset);
 
   // For post mortem debugging.
   void RememberUnmappedPage(Address page, bool compacted);
@@ -916,20 +919,12 @@
   const char* GetSpaceName(int idx);
 
   // ===========================================================================
-  // API. ======================================================================
-  // ===========================================================================
-
-  void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer);
-
-  void RegisterExternallyReferencedObject(Object** object);
-
-  // ===========================================================================
   // Getters to other components. ==============================================
   // ===========================================================================
 
   GCTracer* tracer() { return tracer_; }
 
-  EmbedderHeapTracer* embedder_heap_tracer() { return embedder_heap_tracer_; }
+  MemoryAllocator* memory_allocator() { return memory_allocator_; }
 
   PromotionQueue* promotion_queue() { return &promotion_queue_; }
 
@@ -979,11 +974,6 @@
     roots_[kCodeStubsRootIndex] = value;
   }
 
-  // Sets the non_monomorphic_cache_ (only used when expanding the dictionary).
-  void SetRootNonMonomorphicCache(UnseededNumberDictionary* value) {
-    roots_[kNonMonomorphicCacheRootIndex] = value;
-  }
-
   void SetRootMaterializedObjects(FixedArray* objects) {
     roots_[kMaterializedObjectsRootIndex] = objects;
   }
@@ -1089,6 +1079,8 @@
 
   // Write barrier support for object[offset] = o;
   inline void RecordWrite(Object* object, int offset, Object* o);
+  inline void RecordFixedArrayElements(FixedArray* array, int offset,
+                                       int length);
 
   Address* store_buffer_top_address() { return store_buffer()->top_address(); }
 
@@ -1192,6 +1184,9 @@
   // more spaces are needed until it reaches the limit.
   intptr_t Capacity();
 
+  // Returns the capacity of the old generation.
+  intptr_t OldGenerationCapacity();
+
   // Returns the amount of memory currently committed for the heap.
   intptr_t CommittedMemory();
 
@@ -1394,13 +1389,9 @@
   void ReportHeapStatistics(const char* title);
   void ReportCodeStatistics(const char* title);
 #endif
-#ifdef ENABLE_SLOW_DCHECKS
-  int CountHandlesForObject(Object* object);
-#endif
 
  private:
   class PretenuringScope;
-  class UnmapFreeMemoryTask;
 
   // External strings table is a place where all external strings are
   // registered.  We need to keep track of such strings to properly
@@ -2012,11 +2003,11 @@
 
   // This is not the depth of nested AlwaysAllocateScope's but rather a single
   // count, as scopes can be acquired from multiple tasks (read: threads).
-  AtomicNumber<size_t> always_allocate_scope_count_;
+  base::AtomicNumber<size_t> always_allocate_scope_count_;
 
   // Stores the memory pressure level that set by MemoryPressureNotification
   // and reset by a mark-compact garbage collection.
-  AtomicValue<MemoryPressureLevel> memory_pressure_level_;
+  base::AtomicValue<MemoryPressureLevel> memory_pressure_level_;
 
   // For keeping track of context disposals.
   int contexts_disposed_;
@@ -2104,7 +2095,6 @@
   int deferred_counters_[v8::Isolate::kUseCounterFeatureCount];
 
   GCTracer* tracer_;
-  EmbedderHeapTracer* embedder_heap_tracer_;
 
   int high_survival_rate_period_length_;
   intptr_t promoted_objects_size_;
@@ -2151,6 +2141,8 @@
 
   MarkCompactCollector* mark_compact_collector_;
 
+  MemoryAllocator* memory_allocator_;
+
   StoreBuffer store_buffer_;
 
   IncrementalMarking* incremental_marking_;
@@ -2217,12 +2209,6 @@
 
   ExternalStringTable external_string_table_;
 
-  MemoryChunk* chunks_queued_for_free_;
-
-  size_t concurrent_unmapping_tasks_active_;
-
-  base::Semaphore pending_unmapping_tasks_semaphore_;
-
   base::Mutex relocation_mutex_;
 
   int gc_callbacks_depth_;
@@ -2254,6 +2240,7 @@
   friend class Page;
   friend class Scavenger;
   friend class StoreBuffer;
+  friend class TestMemoryAllocatorScope;
 
   // The allocator interface.
   friend class Factory;
diff --git a/src/heap/incremental-marking-job.cc b/src/heap/incremental-marking-job.cc
index 3ccbec2..fe14dd0 100644
--- a/src/heap/incremental-marking-job.cc
+++ b/src/heap/incremental-marking-job.cc
@@ -71,14 +71,12 @@
 IncrementalMarkingJob::IdleTask::Progress IncrementalMarkingJob::IdleTask::Step(
     Heap* heap, double deadline_in_ms) {
   IncrementalMarking* incremental_marking = heap->incremental_marking();
-  MarkCompactCollector* mark_compact_collector = heap->mark_compact_collector();
   if (incremental_marking->IsStopped()) {
     return kDone;
   }
-  if (mark_compact_collector->sweeping_in_progress()) {
-    if (mark_compact_collector->IsSweepingCompleted()) {
-      mark_compact_collector->EnsureSweepingCompleted();
-    }
+  if (incremental_marking->IsSweeping()) {
+    incremental_marking->FinalizeSweeping();
+    // TODO(hpayer): We can continue here if enough idle time is left.
     return kMoreWork;
   }
   const double remaining_idle_time_in_ms =
diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc
index 376e848..c250b90 100644
--- a/src/heap/incremental-marking.cc
+++ b/src/heap/incremental-marking.cc
@@ -279,7 +279,7 @@
   if (IsMarking() && Marking::IsBlack(Marking::MarkBitFrom(object))) {
     Page* page = Page::FromAddress(object->address());
     if ((page->owner() != nullptr) && (page->owner()->identity() == LO_SPACE)) {
-      // IterateBlackObject requires us to visit the hole object.
+      // IterateBlackObject requires us to visit the whole object.
       page->ResetProgressBar();
     }
     IncrementalMarkingMarkingVisitor::IterateBody(object->map(), object);
@@ -353,7 +353,7 @@
     NewSpace* space) {
   NewSpacePageIterator it(space);
   while (it.has_next()) {
-    NewSpacePage* p = it.next();
+    Page* p = it.next();
     SetNewSpacePageFlags(p, false);
   }
 }
@@ -366,7 +366,7 @@
   DeactivateIncrementalWriteBarrierForSpace(heap_->new_space());
 
   LargePage* lop = heap_->lo_space()->first_page();
-  while (lop->is_valid()) {
+  while (LargePage::IsValid(lop)) {
     SetOldSpacePageFlags(lop, false, false);
     lop = lop->next_page();
   }
@@ -385,7 +385,7 @@
 void IncrementalMarking::ActivateIncrementalWriteBarrier(NewSpace* space) {
   NewSpacePageIterator it(space->ToSpaceStart(), space->ToSpaceEnd());
   while (it.has_next()) {
-    NewSpacePage* p = it.next();
+    Page* p = it.next();
     SetNewSpacePageFlags(p, true);
   }
 }
@@ -398,7 +398,7 @@
   ActivateIncrementalWriteBarrier(heap_->new_space());
 
   LargePage* lop = heap_->lo_space()->first_page();
-  while (lop->is_valid()) {
+  while (LargePage::IsValid(lop)) {
     SetOldSpacePageFlags(lop, true, is_compacting_);
     lop = lop->next_page();
   }
@@ -558,12 +558,6 @@
   heap_->CompletelyClearInstanceofCache();
   heap_->isolate()->compilation_cache()->MarkCompactPrologue();
 
-  if (FLAG_cleanup_code_caches_at_gc) {
-    // We will mark cache black with a separate pass
-    // when we finish marking.
-    MarkObjectGreyDoNotEnqueue(heap_->polymorphic_code_cache());
-  }
-
   // Mark strong roots grey.
   IncrementalMarkingRootMarkingVisitor visitor(this);
   heap_->IterateStrongRoots(&visitor, VISIT_ONLY_STRONG);
@@ -605,6 +599,7 @@
 
 
 void IncrementalMarking::MarkObjectGroups() {
+  DCHECK(!heap_->UsingEmbedderHeapTracer());
   DCHECK(!finalize_marking_completed_);
   DCHECK(IsMarking());
 
@@ -735,7 +730,9 @@
   // 4) Remove weak cell with live values from the list of weak cells, they
   // do not need processing during GC.
   MarkRoots();
-  MarkObjectGroups();
+  if (!heap_->UsingEmbedderHeapTracer()) {
+    MarkObjectGroups();
+  }
   if (incremental_marking_finalization_rounds_ == 0) {
     // Map retaining is needed for perfromance, not correctness,
     // so we can do it only once at the beginning of the finalization.
@@ -932,13 +929,6 @@
     }
   }
 
-  if (FLAG_cleanup_code_caches_at_gc) {
-    PolymorphicCodeCache* poly_cache = heap_->polymorphic_code_cache();
-    Marking::GreyToBlack(Marking::MarkBitFrom(poly_cache));
-    MemoryChunk::IncrementLiveBytesFromGC(poly_cache,
-                                          PolymorphicCodeCache::kSize);
-  }
-
   Object* context = heap_->native_contexts_list();
   while (!context->IsUndefined()) {
     // GC can happen when the context is not fully initialized,
@@ -952,7 +942,7 @@
         MemoryChunk::IncrementLiveBytesFromGC(cache, cache->Size());
       }
     }
-    context = Context::cast(context)->get(Context::NEXT_CONTEXT_LINK);
+    context = Context::cast(context)->next_context_link();
   }
 }
 
@@ -1130,6 +1120,18 @@
   }
 }
 
+void IncrementalMarking::FinalizeSweeping() {
+  DCHECK(state_ == SWEEPING);
+  if (heap_->mark_compact_collector()->sweeping_in_progress() &&
+      (heap_->mark_compact_collector()->sweeper().IsSweepingCompleted() ||
+       !FLAG_concurrent_sweeping)) {
+    heap_->mark_compact_collector()->EnsureSweepingCompleted();
+  }
+  if (!heap_->mark_compact_collector()->sweeping_in_progress()) {
+    bytes_scanned_ = 0;
+    StartMarking();
+  }
+}
 
 intptr_t IncrementalMarking::Step(intptr_t allocated_bytes,
                                   CompletionAction action,
@@ -1179,17 +1181,11 @@
 
     bytes_scanned_ += bytes_to_process;
 
+    // TODO(hpayer): Do not account for sweeping finalization while marking.
     if (state_ == SWEEPING) {
-      if (heap_->mark_compact_collector()->sweeping_in_progress() &&
-          (heap_->mark_compact_collector()->IsSweepingCompleted() ||
-           !FLAG_concurrent_sweeping)) {
-        heap_->mark_compact_collector()->EnsureSweepingCompleted();
-      }
-      if (!heap_->mark_compact_collector()->sweeping_in_progress()) {
-        bytes_scanned_ = 0;
-        StartMarking();
-      }
+      FinalizeSweeping();
     }
+
     if (state_ == MARKING) {
       bytes_processed = ProcessMarkingDeque(bytes_to_process);
       if (heap_->mark_compact_collector()->marking_deque()->IsEmpty()) {
diff --git a/src/heap/incremental-marking.h b/src/heap/incremental-marking.h
index f10150d..9c5a3b5 100644
--- a/src/heap/incremental-marking.h
+++ b/src/heap/incremental-marking.h
@@ -68,6 +68,8 @@
 
   inline bool IsStopped() { return state() == STOPPED; }
 
+  inline bool IsSweeping() { return state() == SWEEPING; }
+
   INLINE(bool IsMarking()) { return state() >= MARKING; }
 
   inline bool IsMarkingIncomplete() { return state() == MARKING; }
@@ -135,6 +137,8 @@
   // incremental marking to be postponed.
   static const size_t kMaxIdleMarkingDelayCounter = 3;
 
+  void FinalizeSweeping();
+
   void OldSpaceStep(intptr_t allocated);
 
   intptr_t Step(intptr_t allocated, CompletionAction action,
@@ -181,7 +185,7 @@
     SetOldSpacePageFlags(chunk, IsMarking(), IsCompacting());
   }
 
-  inline void SetNewSpacePageFlags(MemoryChunk* chunk) {
+  inline void SetNewSpacePageFlags(Page* chunk) {
     SetNewSpacePageFlags(chunk, IsMarking());
   }
 
diff --git a/src/heap/mark-compact-inl.h b/src/heap/mark-compact-inl.h
index 281ece4..455f443 100644
--- a/src/heap/mark-compact-inl.h
+++ b/src/heap/mark-compact-inl.h
@@ -12,17 +12,6 @@
 namespace v8 {
 namespace internal {
 
-inline std::vector<Page*>& MarkCompactCollector::sweeping_list(Space* space) {
-  if (space == heap()->old_space()) {
-    return sweeping_list_old_space_;
-  } else if (space == heap()->code_space()) {
-    return sweeping_list_code_space_;
-  }
-  DCHECK_EQ(space, heap()->map_space());
-  return sweeping_list_map_space_;
-}
-
-
 void MarkCompactCollector::PushBlack(HeapObject* obj) {
   DCHECK(Marking::IsBlack(Marking::MarkBitFrom(obj)));
   if (marking_deque_.Push(obj)) {
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
index e537689..b2ae93d 100644
--- a/src/heap/mark-compact.cc
+++ b/src/heap/mark-compact.cc
@@ -49,21 +49,22 @@
 
 MarkCompactCollector::MarkCompactCollector(Heap* heap)
     :  // NOLINT
+      heap_(heap),
+      page_parallel_job_semaphore_(0),
 #ifdef DEBUG
       state_(IDLE),
 #endif
       marking_parity_(ODD_MARKING_PARITY),
       was_marked_incrementally_(false),
       evacuation_(false),
-      heap_(heap),
+      compacting_(false),
+      black_allocation_(false),
+      have_code_to_deoptimize_(false),
       marking_deque_memory_(NULL),
       marking_deque_memory_committed_(0),
       code_flusher_(nullptr),
-      have_code_to_deoptimize_(false),
-      compacting_(false),
-      sweeping_in_progress_(false),
-      pending_sweeper_tasks_semaphore_(0),
-      pending_compaction_tasks_semaphore_(0) {
+      embedder_heap_tracer_(nullptr),
+      sweeper_(heap) {
 }
 
 #ifdef VERIFY_HEAP
@@ -134,10 +135,9 @@
   NewSpacePageIterator it(space->bottom(), end);
   // The bottom position is at the start of its page. Allows us to use
   // page->area_start() as start of range on all pages.
-  CHECK_EQ(space->bottom(),
-           NewSpacePage::FromAddress(space->bottom())->area_start());
+  CHECK_EQ(space->bottom(), Page::FromAddress(space->bottom())->area_start());
   while (it.has_next()) {
-    NewSpacePage* page = it.next();
+    Page* page = it.next();
     Address limit = it.has_next() ? page->area_end() : end;
     CHECK(limit == end || !page->Contains(end));
     VerifyMarking(space->heap(), page->area_start(), limit);
@@ -209,7 +209,7 @@
   VerifyEvacuationVisitor visitor;
 
   while (it.has_next()) {
-    NewSpacePage* page = it.next();
+    Page* page = it.next();
     Address current = page->area_start();
     Address limit = it.has_next() ? page->area_end() : space->top();
     CHECK(limit == space->top() || !page->Contains(space->top()));
@@ -375,7 +375,7 @@
   NewSpacePageIterator it(space->bottom(), space->top());
 
   while (it.has_next()) {
-    NewSpacePage* p = it.next();
+    Page* p = it.next();
     CHECK(p->markbits()->IsClean());
     CHECK_EQ(0, p->LiveBytes());
   }
@@ -459,11 +459,13 @@
   }
 }
 
-
-class MarkCompactCollector::SweeperTask : public v8::Task {
+class MarkCompactCollector::Sweeper::SweeperTask : public v8::Task {
  public:
-  SweeperTask(Heap* heap, AllocationSpace space_to_start)
-      : heap_(heap), space_to_start_(space_to_start) {}
+  SweeperTask(Sweeper* sweeper, base::Semaphore* pending_sweeper_tasks,
+              AllocationSpace space_to_start)
+      : sweeper_(sweeper),
+        pending_sweeper_tasks_(pending_sweeper_tasks),
+        space_to_start_(space_to_start) {}
 
   virtual ~SweeperTask() {}
 
@@ -478,33 +480,45 @@
       const int space_id = FIRST_PAGED_SPACE + ((i + offset) % num_spaces);
       DCHECK_GE(space_id, FIRST_PAGED_SPACE);
       DCHECK_LE(space_id, LAST_PAGED_SPACE);
-      heap_->mark_compact_collector()->SweepInParallel(
-          heap_->paged_space(space_id), 0);
+      sweeper_->ParallelSweepSpace(static_cast<AllocationSpace>(space_id), 0);
     }
-    heap_->mark_compact_collector()->pending_sweeper_tasks_semaphore_.Signal();
+    pending_sweeper_tasks_->Signal();
   }
 
-  Heap* heap_;
+  Sweeper* sweeper_;
+  base::Semaphore* pending_sweeper_tasks_;
   AllocationSpace space_to_start_;
 
   DISALLOW_COPY_AND_ASSIGN(SweeperTask);
 };
 
-
-void MarkCompactCollector::StartSweeperThreads() {
-  V8::GetCurrentPlatform()->CallOnBackgroundThread(
-      new SweeperTask(heap(), OLD_SPACE), v8::Platform::kShortRunningTask);
-  V8::GetCurrentPlatform()->CallOnBackgroundThread(
-      new SweeperTask(heap(), CODE_SPACE), v8::Platform::kShortRunningTask);
-  V8::GetCurrentPlatform()->CallOnBackgroundThread(
-      new SweeperTask(heap(), MAP_SPACE), v8::Platform::kShortRunningTask);
+void MarkCompactCollector::Sweeper::StartSweeping() {
+  sweeping_in_progress_ = true;
+  ForAllSweepingSpaces([this](AllocationSpace space) {
+    std::sort(sweeping_list_[space].begin(), sweeping_list_[space].end(),
+              [](Page* a, Page* b) { return a->LiveBytes() < b->LiveBytes(); });
+  });
+  if (FLAG_concurrent_sweeping) {
+    ForAllSweepingSpaces([this](AllocationSpace space) {
+      if (space == NEW_SPACE) return;
+      StartSweepingHelper(space);
+    });
+  }
 }
 
+void MarkCompactCollector::Sweeper::StartSweepingHelper(
+    AllocationSpace space_to_start) {
+  num_sweeping_tasks_++;
+  V8::GetCurrentPlatform()->CallOnBackgroundThread(
+      new SweeperTask(this, &pending_sweeper_tasks_semaphore_, space_to_start),
+      v8::Platform::kShortRunningTask);
+}
 
-void MarkCompactCollector::SweepOrWaitUntilSweepingCompleted(Page* page) {
+void MarkCompactCollector::Sweeper::SweepOrWaitUntilSweepingCompleted(
+    Page* page) {
   PagedSpace* owner = reinterpret_cast<PagedSpace*>(page->owner());
   if (!page->SweepingDone()) {
-    SweepInParallel(page, owner);
+    ParallelSweepPage(page, owner);
     if (!page->SweepingDone()) {
       // We were not able to sweep that page, i.e., a concurrent
       // sweeper thread currently owns this page. Wait for the sweeper
@@ -514,34 +528,49 @@
   }
 }
 
-
 void MarkCompactCollector::SweepAndRefill(CompactionSpace* space) {
-  if (FLAG_concurrent_sweeping && !IsSweepingCompleted()) {
-    SweepInParallel(heap()->paged_space(space->identity()), 0);
+  if (FLAG_concurrent_sweeping && !sweeper().IsSweepingCompleted()) {
+    sweeper().ParallelSweepSpace(space->identity(), 0);
     space->RefillFreeList();
   }
 }
 
+Page* MarkCompactCollector::Sweeper::GetSweptPageSafe(PagedSpace* space) {
+  base::LockGuard<base::Mutex> guard(&mutex_);
+  SweptList& list = swept_list_[space->identity()];
+  if (list.length() > 0) {
+    return list.RemoveLast();
+  }
+  return nullptr;
+}
 
-void MarkCompactCollector::EnsureSweepingCompleted() {
-  DCHECK(sweeping_in_progress_ == true);
+void MarkCompactCollector::Sweeper::EnsureCompleted() {
+  if (!sweeping_in_progress_) return;
 
   // If sweeping is not completed or not running at all, we try to complete it
   // here.
   if (!FLAG_concurrent_sweeping || !IsSweepingCompleted()) {
-    SweepInParallel(heap()->paged_space(OLD_SPACE), 0);
-    SweepInParallel(heap()->paged_space(CODE_SPACE), 0);
-    SweepInParallel(heap()->paged_space(MAP_SPACE), 0);
+    ForAllSweepingSpaces(
+        [this](AllocationSpace space) { ParallelSweepSpace(space, 0); });
   }
 
   if (FLAG_concurrent_sweeping) {
-    pending_sweeper_tasks_semaphore_.Wait();
-    pending_sweeper_tasks_semaphore_.Wait();
-    pending_sweeper_tasks_semaphore_.Wait();
+    while (num_sweeping_tasks_ > 0) {
+      pending_sweeper_tasks_semaphore_.Wait();
+      num_sweeping_tasks_--;
+    }
   }
 
-  ParallelSweepSpacesComplete();
+  ForAllSweepingSpaces(
+      [this](AllocationSpace space) { DCHECK(sweeping_list_[space].empty()); });
+  late_pages_ = false;
   sweeping_in_progress_ = false;
+}
+
+void MarkCompactCollector::EnsureSweepingCompleted() {
+  if (!sweeper().sweeping_in_progress()) return;
+
+  sweeper().EnsureCompleted();
   heap()->old_space()->RefillFreeList();
   heap()->code_space()->RefillFreeList();
   heap()->map_space()->RefillFreeList();
@@ -553,8 +582,7 @@
 #endif
 }
 
-
-bool MarkCompactCollector::IsSweepingCompleted() {
+bool MarkCompactCollector::Sweeper::IsSweepingCompleted() {
   if (!pending_sweeper_tasks_semaphore_.WaitFor(
           base::TimeDelta::FromSeconds(0))) {
     return false;
@@ -563,7 +591,6 @@
   return true;
 }
 
-
 void Marking::TransferMark(Heap* heap, Address old_start, Address new_start) {
   // This is only used when resizing an object.
   DCHECK(MemoryChunk::FromAddress(old_start) ==
@@ -759,8 +786,8 @@
       if (FLAG_trace_fragmentation_verbose) {
         PrintIsolate(isolate(),
                      "compaction-selection-page: space=%s free_bytes_page=%d "
-                     "fragmentation_limit_kb=%d fragmentation_limit_percent=%d "
-                     "sum_compaction_kb=%d "
+                     "fragmentation_limit_kb=%" V8PRIdPTR
+                     " fragmentation_limit_percent=%d sum_compaction_kb=%d "
                      "compaction_limit_kb=%d\n",
                      AllocationSpaceName(space->identity()), free_bytes / KB,
                      free_bytes_threshold / KB, target_fragmentation_percent,
@@ -821,7 +848,7 @@
 
   // If concurrent unmapping tasks are still running, we should wait for
   // them here.
-  heap()->WaitUntilUnmappingOfFreeChunksCompleted();
+  heap()->memory_allocator()->unmapper()->WaitUntilCompleted();
 
   // Clear marking bits if incremental marking is aborted.
   if (was_marked_incrementally_ && heap_->ShouldAbortIncrementalMarking()) {
@@ -857,6 +884,12 @@
 void MarkCompactCollector::Finish() {
   TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_FINISH);
 
+  if (sweeper().contains_late_pages() && FLAG_concurrent_sweeping) {
+    // If we added some more pages during MC, we need to start at least one
+    // more task as all other tasks might already be finished.
+    sweeper().StartSweepingHelper(OLD_SPACE);
+  }
+
   // The hashing of weak_object_to_code_table is no longer valid.
   heap()->weak_object_to_code_table()->Rehash(
       heap()->isolate()->factory()->undefined_value());
@@ -1373,8 +1406,8 @@
   void MarkObjectByPointer(Object** p) {
     if (!(*p)->IsHeapObject()) return;
 
-    // Replace flat cons strings in place.
     HeapObject* object = HeapObject::cast(*p);
+
     MarkBit mark_bit = Marking::MarkBitFrom(object);
     if (Marking::IsBlackOrGrey(mark_bit)) return;
 
@@ -1633,7 +1666,7 @@
         semispace_copied_size_(0),
         local_pretenuring_feedback_(local_pretenuring_feedback) {}
 
-  bool Visit(HeapObject* object) override {
+  inline bool Visit(HeapObject* object) override {
     heap_->UpdateAllocationSite<Heap::kCached>(object,
                                                local_pretenuring_feedback_);
     int size = object->Size();
@@ -1727,8 +1760,8 @@
         compaction_spaces_->Get(OLD_SPACE)->AllocateRaw(size_in_bytes,
                                                         alignment);
     if (allocation.IsRetry()) {
-      FatalProcessOutOfMemory(
-          "MarkCompactCollector: semi-space copy, fallback in old gen\n");
+      v8::internal::Heap::FatalProcessOutOfMemory(
+          "MarkCompactCollector: semi-space copy, fallback in old gen", true);
     }
     return allocation;
   }
@@ -1765,6 +1798,34 @@
   HashMap* local_pretenuring_feedback_;
 };
 
+class MarkCompactCollector::EvacuateNewSpacePageVisitor final
+    : public MarkCompactCollector::HeapObjectVisitor {
+ public:
+  EvacuateNewSpacePageVisitor() : promoted_size_(0) {}
+
+  static void TryMoveToOldSpace(Page* page, PagedSpace* owner) {
+    if (page->heap()->new_space()->ReplaceWithEmptyPage(page)) {
+      Page* new_page = Page::ConvertNewToOld(page, owner);
+      new_page->SetFlag(Page::PAGE_NEW_OLD_PROMOTION);
+    }
+  }
+
+  inline bool Visit(HeapObject* object) {
+    if (V8_UNLIKELY(object->IsJSArrayBuffer())) {
+      object->GetHeap()->array_buffer_tracker()->Promote(
+          JSArrayBuffer::cast(object));
+    }
+    RecordMigratedSlotVisitor visitor;
+    object->IterateBodyFast(&visitor);
+    promoted_size_ += object->Size();
+    return true;
+  }
+
+  intptr_t promoted_size() { return promoted_size_; }
+
+ private:
+  intptr_t promoted_size_;
+};
 
 class MarkCompactCollector::EvacuateOldSpaceVisitor final
     : public MarkCompactCollector::EvacuateVisitorBase {
@@ -1773,7 +1834,7 @@
                           CompactionSpaceCollection* compaction_spaces)
       : EvacuateVisitorBase(heap, compaction_spaces) {}
 
-  bool Visit(HeapObject* object) override {
+  inline bool Visit(HeapObject* object) override {
     CompactionSpace* target_space = compaction_spaces_->Get(
         Page::FromAddress(object->address())->owner()->identity());
     HeapObject* target_object = nullptr;
@@ -1785,6 +1846,28 @@
   }
 };
 
+class MarkCompactCollector::EvacuateRecordOnlyVisitor final
+    : public MarkCompactCollector::HeapObjectVisitor {
+ public:
+  explicit EvacuateRecordOnlyVisitor(AllocationSpace space) : space_(space) {}
+
+  inline bool Visit(HeapObject* object) {
+    if (space_ == OLD_SPACE) {
+      RecordMigratedSlotVisitor visitor;
+      object->IterateBody(&visitor);
+    } else {
+      DCHECK_EQ(space_, CODE_SPACE);
+      // Add a typed slot for the whole code object.
+      RememberedSet<OLD_TO_OLD>::InsertTyped(
+          Page::FromAddress(object->address()), RELOCATED_CODE_OBJECT,
+          object->address());
+    }
+    return true;
+  }
+
+ private:
+  AllocationSpace space_;
+};
 
 void MarkCompactCollector::DiscoverGreyObjectsInSpace(PagedSpace* space) {
   PageIterator it(space);
@@ -1802,7 +1885,7 @@
   NewSpace* space = heap()->new_space();
   NewSpacePageIterator it(space->bottom(), space->top());
   while (it.has_next()) {
-    NewSpacePage* page = it.next();
+    Page* page = it.next();
     DiscoverGreyObjectsOnPage(page);
     if (marking_deque()->IsFull()) return;
   }
@@ -1961,14 +2044,17 @@
   }
 }
 
-
 // Mark all objects reachable (transitively) from objects on the marking
 // stack including references only considered in the atomic marking pause.
 void MarkCompactCollector::ProcessEphemeralMarking(
     ObjectVisitor* visitor, bool only_process_harmony_weak_collections) {
-  bool work_to_do = true;
   DCHECK(marking_deque_.IsEmpty() && !marking_deque_.overflowed());
+  bool work_to_do = true;
   while (work_to_do) {
+    if (UsingEmbedderHeapTracer()) {
+      embedder_heap_tracer()->TraceWrappersFrom(wrappers_to_trace_);
+      wrappers_to_trace_.clear();
+    }
     if (!only_process_harmony_weak_collections) {
       isolate()->global_handles()->IterateObjectGroups(
           visitor, &IsUnmarkedHeapObjectWithHeap);
@@ -1980,7 +2066,6 @@
   }
 }
 
-
 void MarkCompactCollector::ProcessTopOptimizedFrame(ObjectVisitor* visitor) {
   for (StackFrameIterator it(isolate(), isolate()->thread_local_top());
        !it.done(); it.Advance()) {
@@ -2079,6 +2164,32 @@
   in_use_ = false;
 }
 
+void MarkCompactCollector::SetEmbedderHeapTracer(EmbedderHeapTracer* tracer) {
+  DCHECK_NOT_NULL(tracer);
+  CHECK_NULL(embedder_heap_tracer_);
+  embedder_heap_tracer_ = tracer;
+}
+
+void MarkCompactCollector::TracePossibleWrapper(JSObject* js_object) {
+  DCHECK(js_object->WasConstructedFromApiFunction());
+  if (js_object->GetInternalFieldCount() >= 2 &&
+      js_object->GetInternalField(0) &&
+      js_object->GetInternalField(0) != heap_->undefined_value() &&
+      js_object->GetInternalField(1) != heap_->undefined_value()) {
+    DCHECK(reinterpret_cast<intptr_t>(js_object->GetInternalField(0)) % 2 == 0);
+    wrappers_to_trace().push_back(std::pair<void*, void*>(
+        reinterpret_cast<void*>(js_object->GetInternalField(0)),
+        reinterpret_cast<void*>(js_object->GetInternalField(1))));
+  }
+}
+
+void MarkCompactCollector::RegisterExternallyReferencedObject(Object** object) {
+  DCHECK(in_use());
+  HeapObject* heap_object = HeapObject::cast(*object);
+  DCHECK(heap_->Contains(heap_object));
+  MarkBit mark_bit = Marking::MarkBitFrom(heap_object);
+  MarkObject(heap_object, mark_bit);
+}
 
 void MarkCompactCollector::MarkLiveObjects() {
   TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_MARK);
@@ -2135,8 +2246,11 @@
     {
       TRACE_GC(heap()->tracer(),
                GCTracer::Scope::MC_MARK_WEAK_CLOSURE_EPHEMERAL);
+      if (UsingEmbedderHeapTracer()) {
+        embedder_heap_tracer()->TracePrologue();
+        ProcessMarkingDeque();
+      }
       ProcessEphemeralMarking(&root_visitor, false);
-      ProcessMarkingDeque();
     }
 
     // The objects reachable from the roots, weak maps or object groups
@@ -2170,7 +2284,9 @@
     {
       TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_MARK_WEAK_CLOSURE_HARMONY);
       ProcessEphemeralMarking(&root_visitor, true);
-      ProcessMarkingDeque();
+      if (UsingEmbedderHeapTracer()) {
+        embedder_heap_tracer()->TraceEpilogue();
+      }
     }
   }
 
@@ -2930,9 +3046,16 @@
   newspace_evacuation_candidates_.Rewind(0);
 }
 
-
 class MarkCompactCollector::Evacuator : public Malloced {
  public:
+  // NewSpacePages with more live bytes than this threshold qualify for fast
+  // evacuation.
+  static int PageEvacuationThreshold() {
+    if (FLAG_page_promotion)
+      return FLAG_page_promotion_threshold * Page::kAllocatableMemory / 100;
+    return Page::kAllocatableMemory + kPointerSize;
+  }
+
   explicit Evacuator(MarkCompactCollector* collector)
       : collector_(collector),
         compaction_spaces_(collector->heap()),
@@ -2940,11 +3063,12 @@
                                     kInitialLocalPretenuringFeedbackCapacity),
         new_space_visitor_(collector->heap(), &compaction_spaces_,
                            &local_pretenuring_feedback_),
+        new_space_page_visitor(),
         old_space_visitor_(collector->heap(), &compaction_spaces_),
         duration_(0.0),
         bytes_compacted_(0) {}
 
-  inline bool EvacuatePage(MemoryChunk* chunk);
+  inline bool EvacuatePage(Page* chunk);
 
   // Merge back locally cached info sequentially. Note that this method needs
   // to be called from the main thread.
@@ -2953,16 +3077,32 @@
   CompactionSpaceCollection* compaction_spaces() { return &compaction_spaces_; }
 
  private:
+  enum EvacuationMode {
+    kObjectsNewToOld,
+    kPageNewToOld,
+    kObjectsOldToOld,
+  };
+
   static const int kInitialLocalPretenuringFeedbackCapacity = 256;
 
-  Heap* heap() { return collector_->heap(); }
+  inline Heap* heap() { return collector_->heap(); }
+
+  inline EvacuationMode ComputeEvacuationMode(MemoryChunk* chunk) {
+    // Note: The order of checks is important in this function.
+    if (chunk->InNewSpace()) return kObjectsNewToOld;
+    if (chunk->IsFlagSet(MemoryChunk::PAGE_NEW_OLD_PROMOTION))
+      return kPageNewToOld;
+    DCHECK(chunk->IsEvacuationCandidate());
+    return kObjectsOldToOld;
+  }
 
   void ReportCompactionProgress(double duration, intptr_t bytes_compacted) {
     duration_ += duration;
     bytes_compacted_ += bytes_compacted;
   }
 
-  inline bool EvacuateSinglePage(MemoryChunk* p, HeapObjectVisitor* visitor);
+  template <IterationMode mode, class Visitor>
+  inline bool EvacuateSinglePage(Page* p, Visitor* visitor);
 
   MarkCompactCollector* collector_;
 
@@ -2972,6 +3112,7 @@
 
   // Visitors for the corresponding spaces.
   EvacuateNewSpaceVisitor new_space_visitor_;
+  EvacuateNewSpacePageVisitor new_space_page_visitor;
   EvacuateOldSpaceVisitor old_space_visitor_;
 
   // Book keeping info.
@@ -2979,22 +3120,32 @@
   intptr_t bytes_compacted_;
 };
 
-bool MarkCompactCollector::Evacuator::EvacuateSinglePage(
-    MemoryChunk* p, HeapObjectVisitor* visitor) {
+template <MarkCompactCollector::IterationMode mode, class Visitor>
+bool MarkCompactCollector::Evacuator::EvacuateSinglePage(Page* p,
+                                                         Visitor* visitor) {
   bool success = false;
-  DCHECK(p->IsEvacuationCandidate() || p->InNewSpace());
+  DCHECK(p->IsEvacuationCandidate() || p->InNewSpace() ||
+         p->IsFlagSet(Page::PAGE_NEW_OLD_PROMOTION));
   int saved_live_bytes = p->LiveBytes();
   double evacuation_time;
   {
     AlwaysAllocateScope always_allocate(heap()->isolate());
     TimedScope timed_scope(&evacuation_time);
-    success = collector_->VisitLiveObjects(p, visitor, kClearMarkbits);
+    success = collector_->VisitLiveObjects<Visitor>(p, visitor, mode);
   }
   if (FLAG_trace_evacuation) {
+    const char age_mark_tag =
+        !p->InNewSpace()
+            ? 'x'
+            : !p->IsFlagSet(MemoryChunk::NEW_SPACE_BELOW_AGE_MARK)
+                  ? '>'
+                  : !p->ContainsLimit(heap()->new_space()->age_mark()) ? '<'
+                                                                       : '#';
     PrintIsolate(heap()->isolate(),
-                 "evacuation[%p]: page=%p new_space=%d executable=%d "
-                 "live_bytes=%d time=%f\n",
-                 this, p, p->InNewSpace(),
+                 "evacuation[%p]: page=%p new_space=%d age_mark_tag=%c "
+                 "page_evacuation=%d executable=%d live_bytes=%d time=%f\n",
+                 this, p, p->InNewSpace(), age_mark_tag,
+                 p->IsFlagSet(MemoryChunk::PAGE_NEW_OLD_PROMOTION),
                  p->IsFlagSet(MemoryChunk::IS_EXECUTABLE), saved_live_bytes,
                  evacuation_time);
   }
@@ -3004,20 +3155,38 @@
   return success;
 }
 
-bool MarkCompactCollector::Evacuator::EvacuatePage(MemoryChunk* chunk) {
-  bool success = false;
-  if (chunk->InNewSpace()) {
-    DCHECK_EQ(chunk->concurrent_sweeping_state().Value(),
-              NewSpacePage::kSweepingDone);
-    success = EvacuateSinglePage(chunk, &new_space_visitor_);
-    DCHECK(success);
-    USE(success);
-  } else {
-    DCHECK(chunk->IsEvacuationCandidate());
-    DCHECK_EQ(chunk->concurrent_sweeping_state().Value(), Page::kSweepingDone);
-    success = EvacuateSinglePage(chunk, &old_space_visitor_);
+bool MarkCompactCollector::Evacuator::EvacuatePage(Page* page) {
+  bool result = false;
+  DCHECK(page->SweepingDone());
+  switch (ComputeEvacuationMode(page)) {
+    case kObjectsNewToOld:
+      result = EvacuateSinglePage<kClearMarkbits>(page, &new_space_visitor_);
+      DCHECK(result);
+      USE(result);
+      break;
+    case kPageNewToOld:
+      result = EvacuateSinglePage<kKeepMarking>(page, &new_space_page_visitor);
+      DCHECK(result);
+      USE(result);
+      break;
+    case kObjectsOldToOld:
+      result = EvacuateSinglePage<kClearMarkbits>(page, &old_space_visitor_);
+      if (!result) {
+        // Aborted compaction page. We can record slots here to have them
+        // processed in parallel later on.
+        EvacuateRecordOnlyVisitor record_visitor(page->owner()->identity());
+        result = EvacuateSinglePage<kKeepMarking>(page, &record_visitor);
+        DCHECK(result);
+        USE(result);
+        // We need to return failure here to indicate that we want this page
+        // added to the sweeper.
+        return false;
+      }
+      break;
+    default:
+      UNREACHABLE();
   }
-  return success;
+  return result;
 }
 
 void MarkCompactCollector::Evacuator::Finalize() {
@@ -3025,12 +3194,14 @@
   heap()->code_space()->MergeCompactionSpace(
       compaction_spaces_.Get(CODE_SPACE));
   heap()->tracer()->AddCompactionEvent(duration_, bytes_compacted_);
-  heap()->IncrementPromotedObjectsSize(new_space_visitor_.promoted_size());
+  heap()->IncrementPromotedObjectsSize(new_space_visitor_.promoted_size() +
+                                       new_space_page_visitor.promoted_size());
   heap()->IncrementSemiSpaceCopiedObjectSize(
       new_space_visitor_.semispace_copied_size());
   heap()->IncrementYoungSurvivorsCounter(
       new_space_visitor_.promoted_size() +
-      new_space_visitor_.semispace_copied_size());
+      new_space_visitor_.semispace_copied_size() +
+      new_space_page_visitor.promoted_size());
   heap()->MergeAllocationSitePretenuringFeedback(local_pretenuring_feedback_);
 }
 
@@ -3073,13 +3244,21 @@
 
   static bool ProcessPageInParallel(Heap* heap, PerTaskData evacuator,
                                     MemoryChunk* chunk, PerPageData) {
-    return evacuator->EvacuatePage(chunk);
+    return evacuator->EvacuatePage(reinterpret_cast<Page*>(chunk));
   }
 
-  static void FinalizePageSequentially(Heap*, MemoryChunk* chunk, bool success,
-                                       PerPageData data) {
+  static void FinalizePageSequentially(Heap* heap, MemoryChunk* chunk,
+                                       bool success, PerPageData data) {
     if (chunk->InNewSpace()) {
       DCHECK(success);
+    } else if (chunk->IsFlagSet(Page::PAGE_NEW_OLD_PROMOTION)) {
+      DCHECK(success);
+      Page* p = static_cast<Page*>(chunk);
+      p->ClearFlag(Page::PAGE_NEW_OLD_PROMOTION);
+      p->ForAllFreeListCategories(
+          [](FreeListCategory* category) { DCHECK(!category->is_linked()); });
+      heap->mark_compact_collector()->sweeper().AddLatePage(
+          p->owner()->identity(), p);
     } else {
       Page* p = static_cast<Page*>(chunk);
       if (success) {
@@ -3089,17 +3268,10 @@
       } else {
         // We have partially compacted the page, i.e., some objects may have
         // moved, others are still in place.
-        // We need to:
-        // - Leave the evacuation candidate flag for later processing of slots
-        //   buffer entries.
-        // - Leave the slots buffer there for processing of entries added by
-        //   the write barrier.
-        // - Rescan the page as slot recording in the migration buffer only
-        //   happens upon moving (which we potentially didn't do).
-        // - Leave the page in the list of pages of a space since we could not
-        //   fully evacuate it.
-        DCHECK(p->IsEvacuationCandidate());
         p->SetFlag(Page::COMPACTION_WAS_ABORTED);
+        p->ClearEvacuationCandidate();
+        // Slots have already been recorded so we just need to add it to the
+        // sweeper.
         *data += 1;
       }
     }
@@ -3108,7 +3280,8 @@
 
 void MarkCompactCollector::EvacuatePagesInParallel() {
   PageParallelJob<EvacuationJobTraits> job(
-      heap_, heap_->isolate()->cancelable_task_manager());
+      heap_, heap_->isolate()->cancelable_task_manager(),
+      &page_parallel_job_semaphore_);
 
   int abandoned_pages = 0;
   intptr_t live_bytes = 0;
@@ -3116,8 +3289,16 @@
     live_bytes += page->LiveBytes();
     job.AddPage(page, &abandoned_pages);
   }
-  for (NewSpacePage* page : newspace_evacuation_candidates_) {
+
+  const Address age_mark = heap()->new_space()->age_mark();
+  for (Page* page : newspace_evacuation_candidates_) {
     live_bytes += page->LiveBytes();
+    if (!page->NeverEvacuate() &&
+        (page->LiveBytes() > Evacuator::PageEvacuationThreshold()) &&
+        page->IsFlagSet(MemoryChunk::NEW_SPACE_BELOW_AGE_MARK) &&
+        !page->Contains(age_mark)) {
+      EvacuateNewSpacePageVisitor::TryMoveToOldSpace(page, heap()->old_space());
+    }
     job.AddPage(page, &abandoned_pages);
   }
   DCHECK_GE(job.NumberOfPages(), 1);
@@ -3142,16 +3323,15 @@
   delete[] evacuators;
 
   if (FLAG_trace_evacuation) {
-    PrintIsolate(
-        isolate(),
-        "%8.0f ms: evacuation-summary: parallel=%s pages=%d aborted=%d "
-        "wanted_tasks=%d tasks=%d cores=%d live_bytes=%" V8_PTR_PREFIX
-        "d compaction_speed=%.f\n",
-        isolate()->time_millis_since_init(),
-        FLAG_parallel_compaction ? "yes" : "no", job.NumberOfPages(),
-        abandoned_pages, wanted_num_tasks, job.NumberOfTasks(),
-        V8::GetCurrentPlatform()->NumberOfAvailableBackgroundThreads(),
-        live_bytes, compaction_speed);
+    PrintIsolate(isolate(),
+                 "%8.0f ms: evacuation-summary: parallel=%s pages=%d "
+                 "aborted=%d wanted_tasks=%d tasks=%d cores=%" PRIuS
+                 " live_bytes=%" V8PRIdPTR " compaction_speed=%.f\n",
+                 isolate()->time_millis_since_init(),
+                 FLAG_parallel_compaction ? "yes" : "no", job.NumberOfPages(),
+                 abandoned_pages, wanted_num_tasks, job.NumberOfTasks(),
+                 V8::GetCurrentPlatform()->NumberOfAvailableBackgroundThreads(),
+                 live_bytes, compaction_speed);
   }
 }
 
@@ -3169,28 +3349,18 @@
   }
 };
 
-enum SweepingMode { SWEEP_ONLY, SWEEP_AND_VISIT_LIVE_OBJECTS };
-
-enum SkipListRebuildingMode { REBUILD_SKIP_LIST, IGNORE_SKIP_LIST };
-
-enum FreeSpaceTreatmentMode { IGNORE_FREE_SPACE, ZAP_FREE_SPACE };
-
-// Sweeps a page. After sweeping the page can be iterated.
-// Slots in live objects pointing into evacuation candidates are updated
-// if requested.
-// Returns the size of the biggest continuous freed memory chunk in bytes.
-template <SweepingMode sweeping_mode,
-          MarkCompactCollector::SweepingParallelism parallelism,
-          SkipListRebuildingMode skip_list_mode,
-          FreeSpaceTreatmentMode free_space_mode>
-static int Sweep(PagedSpace* space, Page* p, ObjectVisitor* v) {
+template <MarkCompactCollector::Sweeper::SweepingMode sweeping_mode,
+          MarkCompactCollector::Sweeper::SweepingParallelism parallelism,
+          MarkCompactCollector::Sweeper::SkipListRebuildingMode skip_list_mode,
+          MarkCompactCollector::Sweeper::FreeSpaceTreatmentMode free_space_mode>
+int MarkCompactCollector::Sweeper::RawSweep(PagedSpace* space, Page* p,
+                                            ObjectVisitor* v) {
   DCHECK(!p->IsEvacuationCandidate() && !p->SweepingDone());
   DCHECK(!p->IsFlagSet(Page::BLACK_PAGE));
   DCHECK_EQ(skip_list_mode == REBUILD_SKIP_LIST,
             space->identity() == CODE_SPACE);
   DCHECK((p->skip_list() == NULL) || (skip_list_mode == REBUILD_SKIP_LIST));
-  DCHECK(parallelism == MarkCompactCollector::SWEEP_ON_MAIN_THREAD ||
-         sweeping_mode == SWEEP_ONLY);
+  DCHECK(parallelism == SWEEP_ON_MAIN_THREAD || sweeping_mode == SWEEP_ONLY);
 
   Address free_start = p->area_start();
   DCHECK(reinterpret_cast<intptr_t>(free_start) % (32 * kPointerSize) == 0);
@@ -3252,7 +3422,6 @@
   return FreeList::GuaranteedAllocatable(static_cast<int>(max_freed_bytes));
 }
 
-
 void MarkCompactCollector::InvalidateCode(Code* code) {
   if (heap_->incremental_marking()->IsCompacting() &&
       !ShouldSkipEvacuationSlotRecording(code)) {
@@ -3289,9 +3458,8 @@
 }
 #endif  // VERIFY_HEAP
 
-
-bool MarkCompactCollector::VisitLiveObjects(MemoryChunk* page,
-                                            HeapObjectVisitor* visitor,
+template <class Visitor>
+bool MarkCompactCollector::VisitLiveObjects(MemoryChunk* page, Visitor* visitor,
                                             IterationMode mode) {
 #ifdef VERIFY_HEAP
   VerifyAllBlackObjects(page);
@@ -3349,41 +3517,12 @@
   }
 }
 
-
-void MarkCompactCollector::SweepAbortedPages() {
-  // Second pass on aborted pages.
-  for (Page* p : evacuation_candidates_) {
-    if (p->IsFlagSet(Page::COMPACTION_WAS_ABORTED)) {
-      p->ClearFlag(MemoryChunk::COMPACTION_WAS_ABORTED);
-      p->concurrent_sweeping_state().SetValue(Page::kSweepingInProgress);
-      PagedSpace* space = static_cast<PagedSpace*>(p->owner());
-      switch (space->identity()) {
-        case OLD_SPACE:
-          Sweep<SWEEP_ONLY, SWEEP_ON_MAIN_THREAD, IGNORE_SKIP_LIST,
-                IGNORE_FREE_SPACE>(space, p, nullptr);
-          break;
-        case CODE_SPACE:
-          if (FLAG_zap_code_space) {
-            Sweep<SWEEP_ONLY, SWEEP_ON_MAIN_THREAD, REBUILD_SKIP_LIST,
-                  ZAP_FREE_SPACE>(space, p, nullptr);
-          } else {
-            Sweep<SWEEP_ONLY, SWEEP_ON_MAIN_THREAD, REBUILD_SKIP_LIST,
-                  IGNORE_FREE_SPACE>(space, p, nullptr);
-          }
-          break;
-        default:
-          UNREACHABLE();
-          break;
-      }
-      {
-        base::LockGuard<base::Mutex> guard(&swept_pages_mutex_);
-        swept_pages(space->identity())->Add(p);
-      }
-    }
-  }
+void MarkCompactCollector::Sweeper::AddSweptPageSafe(PagedSpace* space,
+                                                     Page* page) {
+  base::LockGuard<base::Mutex> guard(&mutex_);
+  swept_list_[space->identity()].Add(page);
 }
 
-
 void MarkCompactCollector::EvacuateNewSpaceAndCandidates() {
   TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_EVACUATE);
   Heap::RelocationLock relocation_lock(heap());
@@ -3404,13 +3543,22 @@
   // slots only handles old space (for unboxed doubles), and thus map space can
   // still contain stale pointers. We only free the chunks after pointer updates
   // to still have access to page headers.
-  heap()->FreeQueuedChunks();
+  heap()->memory_allocator()->unmapper()->FreeQueuedChunks();
 
   {
     TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_EVACUATE_CLEAN_UP);
-    // After updating all pointers, we can finally sweep the aborted pages,
-    // effectively overriding any forward pointers.
-    SweepAbortedPages();
+
+    for (Page* p : evacuation_candidates_) {
+      // Important: skip list should be cleared only after roots were updated
+      // because root iteration traverses the stack and might have to find
+      // code objects from non-updated pc pointing into evacuation candidate.
+      SkipList* list = p->skip_list();
+      if (list != NULL) list->Clear();
+      if (p->IsFlagSet(Page::COMPACTION_WAS_ABORTED)) {
+        sweeper().AddLatePage(p->owner()->identity(), p);
+        p->ClearFlag(Page::COMPACTION_WAS_ABORTED);
+      }
+    }
 
     // EvacuateNewSpaceAndCandidates iterates over new space objects and for
     // ArrayBuffers either re-registers them as live or promotes them. This is
@@ -3422,7 +3570,7 @@
   }
 
 #ifdef VERIFY_HEAP
-  if (FLAG_verify_heap && !sweeping_in_progress_) {
+  if (FLAG_verify_heap && !sweeper().sweeping_in_progress()) {
     VerifyEvacuation(heap());
   }
 #endif
@@ -3472,12 +3620,8 @@
 
   static void UpdateOldToNewSlot(HeapObject** address, HeapObject* object) {
     MapWord map_word = object->map_word();
-    // Since we only filter invalid slots in old space, the store buffer can
-    // still contain stale pointers in large object and in map spaces. Ignore
-    // these pointers here.
-    DCHECK(map_word.IsForwardingAddress() ||
-           !object->GetHeap()->old_space()->Contains(
-               reinterpret_cast<Address>(address)));
+    // There could still be stale pointers in large object space, map space,
+    // and old space for pages that have been promoted.
     if (map_word.IsForwardingAddress()) {
       // Update the corresponding slot.
       *address = map_word.ToForwardingAddress();
@@ -3493,9 +3637,9 @@
 }
 
 template <PointerDirection direction>
-void UpdatePointersInParallel(Heap* heap) {
+void UpdatePointersInParallel(Heap* heap, base::Semaphore* semaphore) {
   PageParallelJob<PointerUpdateJobTraits<direction> > job(
-      heap, heap->isolate()->cancelable_task_manager());
+      heap, heap->isolate()->cancelable_task_manager(), semaphore);
   RememberedSet<direction>::IterateMemoryChunks(
       heap, [&job](MemoryChunk* chunk) { job.AddPage(chunk, 0); });
   PointersUpdatingVisitor visitor(heap);
@@ -3525,14 +3669,14 @@
   }
 };
 
-void UpdateToSpacePointersInParallel(Heap* heap) {
+void UpdateToSpacePointersInParallel(Heap* heap, base::Semaphore* semaphore) {
   PageParallelJob<ToSpacePointerUpdateJobTraits> job(
-      heap, heap->isolate()->cancelable_task_manager());
+      heap, heap->isolate()->cancelable_task_manager(), semaphore);
   Address space_start = heap->new_space()->bottom();
   Address space_end = heap->new_space()->top();
   NewSpacePageIterator it(space_start, space_end);
   while (it.has_next()) {
-    NewSpacePage* page = it.next();
+    Page* page = it.next();
     Address start =
         page->Contains(space_start) ? space_start : page->area_start();
     Address end = page->Contains(space_end) ? space_end : page->area_end();
@@ -3551,36 +3695,17 @@
   {
     TRACE_GC(heap()->tracer(),
              GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS_TO_NEW);
-    UpdateToSpacePointersInParallel(heap_);
+    UpdateToSpacePointersInParallel(heap_, &page_parallel_job_semaphore_);
     // Update roots.
     heap_->IterateRoots(&updating_visitor, VISIT_ALL_IN_SWEEP_NEWSPACE);
-    UpdatePointersInParallel<OLD_TO_NEW>(heap_);
+    UpdatePointersInParallel<OLD_TO_NEW>(heap_, &page_parallel_job_semaphore_);
   }
 
   {
     Heap* heap = this->heap();
     TRACE_GC(heap->tracer(),
              GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS_TO_EVACUATED);
-    UpdatePointersInParallel<OLD_TO_OLD>(heap_);
-  }
-
-  {
-    TRACE_GC(heap()->tracer(),
-             GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS_BETWEEN_EVACUATED);
-    for (Page* p : evacuation_candidates_) {
-      DCHECK(p->IsEvacuationCandidate());
-      // Important: skip list should be cleared only after roots were updated
-      // because root iteration traverses the stack and might have to find
-      // code objects from non-updated pc pointing into evacuation candidate.
-      SkipList* list = p->skip_list();
-      if (list != NULL) list->Clear();
-
-      // First pass on aborted pages, fixing up all live objects.
-      if (p->IsFlagSet(Page::COMPACTION_WAS_ABORTED)) {
-        p->ClearEvacuationCandidate();
-        VisitLiveObjectsBody(p, &updating_visitor);
-      }
-    }
+    UpdatePointersInParallel<OLD_TO_OLD>(heap_, &page_parallel_job_semaphore_);
   }
 
   {
@@ -3606,33 +3731,29 @@
   }
   evacuation_candidates_.Rewind(0);
   compacting_ = false;
-  heap()->FreeQueuedChunks();
+  heap()->memory_allocator()->unmapper()->FreeQueuedChunks();
 }
 
-
-int MarkCompactCollector::SweepInParallel(PagedSpace* space,
-                                          int required_freed_bytes,
-                                          int max_pages) {
+int MarkCompactCollector::Sweeper::ParallelSweepSpace(AllocationSpace identity,
+                                                      int required_freed_bytes,
+                                                      int max_pages) {
   int max_freed = 0;
-  int max_freed_overall = 0;
-  int page_count = 0;
-  for (Page* p : sweeping_list(space)) {
-    max_freed = SweepInParallel(p, space);
-    DCHECK(max_freed >= 0);
-    if (required_freed_bytes > 0 && max_freed >= required_freed_bytes) {
+  int pages_freed = 0;
+  Page* page = nullptr;
+  while ((page = GetSweepingPageSafe(identity)) != nullptr) {
+    int freed = ParallelSweepPage(page, heap_->paged_space(identity));
+    pages_freed += 1;
+    DCHECK_GE(freed, 0);
+    max_freed = Max(max_freed, freed);
+    if ((required_freed_bytes) > 0 && (max_freed >= required_freed_bytes))
       return max_freed;
-    }
-    max_freed_overall = Max(max_freed, max_freed_overall);
-    page_count++;
-    if (max_pages > 0 && page_count >= max_pages) {
-      break;
-    }
+    if ((max_pages > 0) && (pages_freed >= max_pages)) return max_freed;
   }
-  return max_freed_overall;
+  return max_freed;
 }
 
-
-int MarkCompactCollector::SweepInParallel(Page* page, PagedSpace* space) {
+int MarkCompactCollector::Sweeper::ParallelSweepPage(Page* page,
+                                                     PagedSpace* space) {
   int max_freed = 0;
   if (page->mutex()->TryLock()) {
     // If this page was already swept in the meantime, we can return here.
@@ -3642,18 +3763,18 @@
     }
     page->concurrent_sweeping_state().SetValue(Page::kSweepingInProgress);
     if (space->identity() == OLD_SPACE) {
-      max_freed = Sweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, IGNORE_SKIP_LIST,
-                        IGNORE_FREE_SPACE>(space, page, NULL);
+      max_freed = RawSweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, IGNORE_SKIP_LIST,
+                           IGNORE_FREE_SPACE>(space, page, NULL);
     } else if (space->identity() == CODE_SPACE) {
-      max_freed = Sweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, REBUILD_SKIP_LIST,
-                        IGNORE_FREE_SPACE>(space, page, NULL);
+      max_freed = RawSweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, REBUILD_SKIP_LIST,
+                           IGNORE_FREE_SPACE>(space, page, NULL);
     } else {
-      max_freed = Sweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, IGNORE_SKIP_LIST,
-                        IGNORE_FREE_SPACE>(space, page, NULL);
+      max_freed = RawSweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, IGNORE_SKIP_LIST,
+                           IGNORE_FREE_SPACE>(space, page, NULL);
     }
     {
-      base::LockGuard<base::Mutex> guard(&swept_pages_mutex_);
-      swept_pages(space->identity())->Add(page);
+      base::LockGuard<base::Mutex> guard(&mutex_);
+      swept_list_[space->identity()].Add(page);
     }
     page->concurrent_sweeping_state().SetValue(Page::kSweepingDone);
     page->mutex()->Unlock();
@@ -3661,6 +3782,43 @@
   return max_freed;
 }
 
+void MarkCompactCollector::Sweeper::AddPage(AllocationSpace space, Page* page) {
+  DCHECK(!sweeping_in_progress_);
+  PrepareToBeSweptPage(space, page);
+  sweeping_list_[space].push_back(page);
+}
+
+void MarkCompactCollector::Sweeper::AddLatePage(AllocationSpace space,
+                                                Page* page) {
+  DCHECK(sweeping_in_progress_);
+  PrepareToBeSweptPage(space, page);
+  late_pages_ = true;
+  AddSweepingPageSafe(space, page);
+}
+
+void MarkCompactCollector::Sweeper::PrepareToBeSweptPage(AllocationSpace space,
+                                                         Page* page) {
+  page->concurrent_sweeping_state().SetValue(Page::kSweepingPending);
+  int to_sweep = page->area_size() - page->LiveBytes();
+  heap_->paged_space(space)->accounting_stats_.ShrinkSpace(to_sweep);
+}
+
+Page* MarkCompactCollector::Sweeper::GetSweepingPageSafe(
+    AllocationSpace space) {
+  base::LockGuard<base::Mutex> guard(&mutex_);
+  Page* page = nullptr;
+  if (!sweeping_list_[space].empty()) {
+    page = sweeping_list_[space].front();
+    sweeping_list_[space].pop_front();
+  }
+  return page;
+}
+
+void MarkCompactCollector::Sweeper::AddSweepingPageSafe(AllocationSpace space,
+                                                        Page* page) {
+  base::LockGuard<base::Mutex> guard(&mutex_);
+  sweeping_list_[space].push_back(page);
+}
 
 void MarkCompactCollector::StartSweepSpace(PagedSpace* space) {
   space->ClearStats();
@@ -3696,8 +3854,9 @@
       // (in the free list) dropped again. Since we only use the flag for
       // testing this is fine.
       p->concurrent_sweeping_state().SetValue(Page::kSweepingInProgress);
-      Sweep<SWEEP_ONLY, SWEEP_ON_MAIN_THREAD, IGNORE_SKIP_LIST,
-            IGNORE_FREE_SPACE>(space, p, nullptr);
+      Sweeper::RawSweep<Sweeper::SWEEP_ONLY, Sweeper::SWEEP_ON_MAIN_THREAD,
+                        Sweeper::IGNORE_SKIP_LIST, Sweeper::IGNORE_FREE_SPACE>(
+          space, p, nullptr);
       continue;
     }
 
@@ -3713,10 +3872,7 @@
       unused_page_present = true;
     }
 
-    p->concurrent_sweeping_state().SetValue(Page::kSweepingPending);
-    sweeping_list(space).push_back(p);
-    int to_sweep = p->area_size() - p->LiveBytes();
-    space->accounting_stats_.ShrinkSpace(to_sweep);
+    sweeper().AddPage(space->identity(), p);
     will_be_swept++;
   }
 
@@ -3724,8 +3880,6 @@
     PrintIsolate(isolate(), "sweeping: space=%s initialized_for_sweeping=%d",
                  AllocationSpaceName(space->identity()), will_be_swept);
   }
-  std::sort(sweeping_list(space).begin(), sweeping_list(space).end(),
-            [](Page* a, Page* b) { return a->LiveBytes() < b->LiveBytes(); });
 }
 
 
@@ -3741,7 +3895,6 @@
 #endif
 
   {
-    sweeping_in_progress_ = true;
     {
       GCTracer::Scope sweep_scope(heap()->tracer(),
                                   GCTracer::Scope::MC_SWEEP_OLD);
@@ -3757,9 +3910,7 @@
                                   GCTracer::Scope::MC_SWEEP_MAP);
       StartSweepSpace(heap()->map_space());
     }
-    if (FLAG_concurrent_sweeping) {
-      StartSweeperThreads();
-    }
+    sweeper().StartSweeping();
   }
 
   // Deallocate unmarked large objects.
@@ -3771,13 +3922,6 @@
   }
 }
 
-
-void MarkCompactCollector::ParallelSweepSpacesComplete() {
-  sweeping_list(heap()->old_space()).clear();
-  sweeping_list(heap()->code_space()).clear();
-  sweeping_list(heap()->map_space()).clear();
-}
-
 Isolate* MarkCompactCollector::isolate() const { return heap_->isolate(); }
 
 
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h
index cd207bc..d6adb03 100644
--- a/src/heap/mark-compact.h
+++ b/src/heap/mark-compact.h
@@ -5,6 +5,8 @@
 #ifndef V8_HEAP_MARK_COMPACT_H_
 #define V8_HEAP_MARK_COMPACT_H_
 
+#include <deque>
+
 #include "src/base/bits.h"
 #include "src/heap/spaces.h"
 #include "src/heap/store-buffer.h"
@@ -400,6 +402,74 @@
  public:
   class Evacuator;
 
+  class Sweeper {
+   public:
+    class SweeperTask;
+
+    enum SweepingMode { SWEEP_ONLY, SWEEP_AND_VISIT_LIVE_OBJECTS };
+    enum SkipListRebuildingMode { REBUILD_SKIP_LIST, IGNORE_SKIP_LIST };
+    enum FreeSpaceTreatmentMode { IGNORE_FREE_SPACE, ZAP_FREE_SPACE };
+    enum SweepingParallelism { SWEEP_ON_MAIN_THREAD, SWEEP_IN_PARALLEL };
+
+    typedef std::deque<Page*> SweepingList;
+    typedef List<Page*> SweptList;
+
+    template <SweepingMode sweeping_mode, SweepingParallelism parallelism,
+              SkipListRebuildingMode skip_list_mode,
+              FreeSpaceTreatmentMode free_space_mode>
+    static int RawSweep(PagedSpace* space, Page* p, ObjectVisitor* v);
+
+    explicit Sweeper(Heap* heap)
+        : heap_(heap),
+          pending_sweeper_tasks_semaphore_(0),
+          sweeping_in_progress_(false),
+          late_pages_(false),
+          num_sweeping_tasks_(0) {}
+
+    bool sweeping_in_progress() { return sweeping_in_progress_; }
+    bool contains_late_pages() { return late_pages_; }
+
+    void AddPage(AllocationSpace space, Page* page);
+    void AddLatePage(AllocationSpace space, Page* page);
+
+    int ParallelSweepSpace(AllocationSpace identity, int required_freed_bytes,
+                           int max_pages = 0);
+    int ParallelSweepPage(Page* page, PagedSpace* space);
+
+    void StartSweeping();
+    void StartSweepingHelper(AllocationSpace space_to_start);
+    void EnsureCompleted();
+    bool IsSweepingCompleted();
+    void SweepOrWaitUntilSweepingCompleted(Page* page);
+
+    void AddSweptPageSafe(PagedSpace* space, Page* page);
+    Page* GetSweptPageSafe(PagedSpace* space);
+
+   private:
+    static const int kAllocationSpaces = LAST_PAGED_SPACE + 1;
+
+    template <typename Callback>
+    void ForAllSweepingSpaces(Callback callback) {
+      for (int i = 0; i < kAllocationSpaces; i++) {
+        callback(static_cast<AllocationSpace>(i));
+      }
+    }
+
+    Page* GetSweepingPageSafe(AllocationSpace space);
+    void AddSweepingPageSafe(AllocationSpace space, Page* page);
+
+    void PrepareToBeSweptPage(AllocationSpace space, Page* page);
+
+    Heap* heap_;
+    base::Semaphore pending_sweeper_tasks_semaphore_;
+    base::Mutex mutex_;
+    SweptList swept_list_[kAllocationSpaces];
+    SweepingList sweeping_list_[kAllocationSpaces];
+    bool sweeping_in_progress_;
+    bool late_pages_;
+    int num_sweeping_tasks_;
+  };
+
   enum IterationMode {
     kKeepMarking,
     kClearMarkbits,
@@ -451,8 +521,6 @@
   CodeFlusher* code_flusher() { return code_flusher_; }
   inline bool is_code_flushing_enabled() const { return code_flusher_ != NULL; }
 
-  enum SweepingParallelism { SWEEP_ON_MAIN_THREAD, SWEEP_IN_PARALLEL };
-
 #ifdef VERIFY_HEAP
   void VerifyValidStoreAndSlotsBufferEntries();
   void VerifyMarkbitsAreClean();
@@ -490,38 +558,19 @@
 
   MarkingParity marking_parity() { return marking_parity_; }
 
-  // Concurrent and parallel sweeping support. If required_freed_bytes was set
-  // to a value larger than 0, then sweeping returns after a block of at least
-  // required_freed_bytes was freed. If required_freed_bytes was set to zero
-  // then the whole given space is swept. It returns the size of the maximum
-  // continuous freed memory chunk.
-  int SweepInParallel(PagedSpace* space, int required_freed_bytes,
-                      int max_pages = 0);
-
-  // Sweeps a given page concurrently to the sweeper threads. It returns the
-  // size of the maximum continuous freed memory chunk.
-  int SweepInParallel(Page* page, PagedSpace* space);
-
   // Ensures that sweeping is finished.
   //
   // Note: Can only be called safely from main thread.
   void EnsureSweepingCompleted();
 
-  void SweepOrWaitUntilSweepingCompleted(Page* page);
-
   // Help out in sweeping the corresponding space and refill memory that has
   // been regained.
   //
   // Note: Thread-safe.
   void SweepAndRefill(CompactionSpace* space);
 
-  // If sweeper threads are not active this method will return true. If
-  // this is a latency issue we should be smarter here. Otherwise, it will
-  // return true if the sweeper threads are done processing the pages.
-  bool IsSweepingCompleted();
-
   // Checks if sweeping is in progress right now on any space.
-  bool sweeping_in_progress() { return sweeping_in_progress_; }
+  bool sweeping_in_progress() { return sweeper().sweeping_in_progress(); }
 
   void set_evacuation(bool evacuation) { evacuation_ = evacuation; }
 
@@ -562,62 +611,39 @@
   // address range.
   void RemoveObjectSlots(Address start_slot, Address end_slot);
 
-  base::Mutex* swept_pages_mutex() { return &swept_pages_mutex_; }
-  List<Page*>* swept_pages(AllocationSpace id) {
-    switch (id) {
-      case OLD_SPACE:
-        return &swept_old_space_pages_;
-      case CODE_SPACE:
-        return &swept_code_space_pages_;
-      case MAP_SPACE:
-        return &swept_map_space_pages_;
-      default:
-        UNREACHABLE();
-    }
-    return nullptr;
+  Sweeper& sweeper() { return sweeper_; }
+
+  std::vector<std::pair<void*, void*>>& wrappers_to_trace() {
+    return wrappers_to_trace_;
   }
 
+  void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer);
+
+  EmbedderHeapTracer* embedder_heap_tracer() { return embedder_heap_tracer_; }
+
+  bool UsingEmbedderHeapTracer() { return embedder_heap_tracer(); }
+
+  void TracePossibleWrapper(JSObject* js_object);
+
+  void RegisterExternallyReferencedObject(Object** object);
+
  private:
+  class EvacuateNewSpacePageVisitor;
   class EvacuateNewSpaceVisitor;
   class EvacuateOldSpaceVisitor;
+  class EvacuateRecordOnlyVisitor;
   class EvacuateVisitorBase;
   class HeapObjectVisitor;
-  class SweeperTask;
-
-  typedef std::vector<Page*> SweepingList;
 
   explicit MarkCompactCollector(Heap* heap);
 
   bool WillBeDeoptimized(Code* code);
   void ClearInvalidRememberedSetSlots();
 
-  void StartSweeperThreads();
-
   void ComputeEvacuationHeuristics(int area_size,
                                    int* target_fragmentation_percent,
                                    int* max_evacuated_bytes);
 
-#ifdef DEBUG
-  enum CollectorState {
-    IDLE,
-    PREPARE_GC,
-    MARK_LIVE_OBJECTS,
-    SWEEP_SPACES,
-    ENCODE_FORWARDING_ADDRESSES,
-    UPDATE_POINTERS,
-    RELOCATE_OBJECTS
-  };
-
-  // The current stage of the collector.
-  CollectorState state_;
-#endif
-
-  MarkingParity marking_parity_;
-
-  bool was_marked_incrementally_;
-
-  bool evacuation_;
-
   // Finishes GC, performs heap verification if enabled.
   void Finish();
 
@@ -678,8 +704,8 @@
   // or overflowed in the heap.  This respects references only considered in
   // the final atomic marking pause including the following:
   //    - Processing of objects reachable through Harmony WeakMaps.
-  //    - Objects reachable due to host application logic like object groups
-  //      or implicit references' groups.
+  //    - Objects reachable due to host application logic like object groups,
+  //      implicit references' groups, or embedder heap tracing.
   void ProcessEphemeralMarking(ObjectVisitor* visitor,
                                bool only_process_harmony_weak_collections);
 
@@ -761,8 +787,6 @@
   //          evacuation.
   //
 
-  inline SweepingList& sweeping_list(Space* space);
-
   // If we are not compacting the heap, we simply sweep the spaces except
   // for the large object space, clearing mark bits and adding unmarked
   // regions to each space's free list.
@@ -782,25 +806,20 @@
 
   // Iterates through all live objects on a page using marking information.
   // Returns whether all objects have successfully been visited.
-  bool VisitLiveObjects(MemoryChunk* page, HeapObjectVisitor* visitor,
+  template <class Visitor>
+  bool VisitLiveObjects(MemoryChunk* page, Visitor* visitor,
                         IterationMode mode);
 
   void VisitLiveObjectsBody(Page* page, ObjectVisitor* visitor);
 
   void RecomputeLiveBytes(MemoryChunk* page);
 
-  void SweepAbortedPages();
-
   void ReleaseEvacuationCandidates();
 
   // Starts sweeping of a space by contributing on the main thread and setting
   // up other pages for sweeping.
   void StartSweepSpace(PagedSpace* space);
 
-  // Finalizes the parallel sweeping phase. Marks all the pages that were
-  // swept in parallel.
-  void ParallelSweepSpacesComplete();
-
 #ifdef DEBUG
   friend class MarkObjectVisitor;
   static void VisitObject(HeapObject* obj);
@@ -810,39 +829,52 @@
 #endif
 
   Heap* heap_;
-  base::VirtualMemory* marking_deque_memory_;
-  size_t marking_deque_memory_committed_;
-  MarkingDeque marking_deque_;
-  CodeFlusher* code_flusher_;
-  bool have_code_to_deoptimize_;
 
-  List<Page*> evacuation_candidates_;
-  List<NewSpacePage*> newspace_evacuation_candidates_;
+  base::Semaphore page_parallel_job_semaphore_;
 
-  base::Mutex swept_pages_mutex_;
-  List<Page*> swept_old_space_pages_;
-  List<Page*> swept_code_space_pages_;
-  List<Page*> swept_map_space_pages_;
+#ifdef DEBUG
+  enum CollectorState {
+    IDLE,
+    PREPARE_GC,
+    MARK_LIVE_OBJECTS,
+    SWEEP_SPACES,
+    ENCODE_FORWARDING_ADDRESSES,
+    UPDATE_POINTERS,
+    RELOCATE_OBJECTS
+  };
 
-  SweepingList sweeping_list_old_space_;
-  SweepingList sweeping_list_code_space_;
-  SweepingList sweeping_list_map_space_;
+  // The current stage of the collector.
+  CollectorState state_;
+#endif
+
+  MarkingParity marking_parity_;
+
+  bool was_marked_incrementally_;
+
+  bool evacuation_;
 
   // True if we are collecting slots to perform evacuation from evacuation
   // candidates.
   bool compacting_;
 
-  // True if concurrent or parallel sweeping is currently in progress.
-  bool sweeping_in_progress_;
-
-  // Semaphore used to synchronize sweeper tasks.
-  base::Semaphore pending_sweeper_tasks_semaphore_;
-
-  // Semaphore used to synchronize compaction tasks.
-  base::Semaphore pending_compaction_tasks_semaphore_;
-
   bool black_allocation_;
 
+  bool have_code_to_deoptimize_;
+
+  base::VirtualMemory* marking_deque_memory_;
+  size_t marking_deque_memory_committed_;
+  MarkingDeque marking_deque_;
+  std::vector<std::pair<void*, void*>> wrappers_to_trace_;
+
+  CodeFlusher* code_flusher_;
+
+  EmbedderHeapTracer* embedder_heap_tracer_;
+
+  List<Page*> evacuation_candidates_;
+  List<Page*> newspace_evacuation_candidates_;
+
+  Sweeper sweeper_;
+
   friend class Heap;
   friend class StoreBuffer;
 };
diff --git a/src/heap/object-stats.cc b/src/heap/object-stats.cc
index c1566ab..0198c6b 100644
--- a/src/heap/object-stats.cc
+++ b/src/heap/object-stats.cc
@@ -187,14 +187,9 @@
                                                       fixed_array_size);
   }
   if (map_obj->has_code_cache()) {
-    CodeCache* cache = CodeCache::cast(map_obj->code_cache());
-    heap->object_stats_->RecordFixedArraySubTypeStats(
-        MAP_CODE_CACHE_SUB_TYPE, cache->default_cache()->Size());
-    if (!cache->normal_type_cache()->IsUndefined()) {
-      heap->object_stats_->RecordFixedArraySubTypeStats(
-          MAP_CODE_CACHE_SUB_TYPE,
-          FixedArray::cast(cache->normal_type_cache())->Size());
-    }
+    FixedArray* cache = FixedArray::cast(map_obj->code_cache());
+    heap->object_stats_->RecordFixedArraySubTypeStats(MAP_CODE_CACHE_SUB_TYPE,
+                                                      cache->Size());
   }
   VisitBase(kVisitMap, map, obj);
 }
diff --git a/src/heap/objects-visiting-inl.h b/src/heap/objects-visiting-inl.h
index c415713..4373451 100644
--- a/src/heap/objects-visiting-inl.h
+++ b/src/heap/objects-visiting-inl.h
@@ -90,6 +90,11 @@
 
   table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSObject,
                                           kVisitJSObjectGeneric>();
+
+  // Not using specialized Api object visitor for newspace.
+  table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSApiObject,
+                                          kVisitJSApiObjectGeneric>();
+
   table_.template RegisterSpecializations<StructVisitor, kVisitStruct,
                                           kVisitStructGeneric>();
 }
@@ -200,6 +205,9 @@
   table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSObject,
                                           kVisitJSObjectGeneric>();
 
+  table_.template RegisterSpecializations<JSApiObjectVisitor, kVisitJSApiObject,
+                                          kVisitJSApiObjectGeneric>();
+
   table_.template RegisterSpecializations<StructObjectVisitor, kVisitStruct,
                                           kVisitStructGeneric>();
 }
@@ -265,8 +273,8 @@
   // when they might be keeping a Context alive, or when the heap is about
   // to be serialized.
   if (FLAG_cleanup_code_caches_at_gc && target->is_inline_cache_stub() &&
-      !target->is_call_stub() && (heap->isolate()->serializer_enabled() ||
-                                  target->ic_age() != heap->global_ic_age())) {
+      (heap->isolate()->serializer_enabled() ||
+       target->ic_age() != heap->global_ic_age())) {
     ICUtility::Clear(heap->isolate(), rinfo->pc(),
                      rinfo->host()->constant_pool());
     target = Code::GetCodeFromTargetAddress(rinfo->target_address());
@@ -625,8 +633,7 @@
   }
 
   // We never flush code for API functions.
-  Object* function_data = shared_info->function_data();
-  if (function_data->IsFunctionTemplateInfo()) {
+  if (shared_info->IsApiFunction()) {
     return false;
   }
 
diff --git a/src/heap/objects-visiting.cc b/src/heap/objects-visiting.cc
index 0b857dc..dfde574 100644
--- a/src/heap/objects-visiting.cc
+++ b/src/heap/objects-visiting.cc
@@ -111,7 +111,6 @@
     case JS_ARRAY_TYPE:
     case JS_GLOBAL_PROXY_TYPE:
     case JS_GLOBAL_OBJECT_TYPE:
-    case JS_SPECIAL_API_OBJECT_TYPE:
     case JS_MESSAGE_OBJECT_TYPE:
     case JS_TYPED_ARRAY_TYPE:
     case JS_DATA_VIEW_TYPE:
@@ -123,6 +122,10 @@
     case JS_BOUND_FUNCTION_TYPE:
       return GetVisitorIdForSize(kVisitJSObject, kVisitJSObjectGeneric,
                                  instance_size, has_unboxed_fields);
+    case JS_API_OBJECT_TYPE:
+    case JS_SPECIAL_API_OBJECT_TYPE:
+      return GetVisitorIdForSize(kVisitJSApiObject, kVisitJSApiObjectGeneric,
+                                 instance_size, has_unboxed_fields);
 
     case JS_FUNCTION_TYPE:
       return kVisitJSFunction;
@@ -282,7 +285,7 @@
   }
 
   static Object* WeakNext(Context* context) {
-    return context->get(Context::NEXT_CONTEXT_LINK);
+    return context->next_context_link();
   }
 
   static int WeakNextOffset() {
diff --git a/src/heap/objects-visiting.h b/src/heap/objects-visiting.h
index 1fe8a17..4be40cd 100644
--- a/src/heap/objects-visiting.h
+++ b/src/heap/objects-visiting.h
@@ -58,6 +58,15 @@
   V(JSObject8)             \
   V(JSObject9)             \
   V(JSObjectGeneric)       \
+  V(JSApiObject2)          \
+  V(JSApiObject3)          \
+  V(JSApiObject4)          \
+  V(JSApiObject5)          \
+  V(JSApiObject6)          \
+  V(JSApiObject7)          \
+  V(JSApiObject8)          \
+  V(JSApiObject9)          \
+  V(JSApiObjectGeneric)    \
   V(Struct2)               \
   V(Struct3)               \
   V(Struct4)               \
@@ -96,9 +105,10 @@
 #define VISITOR_ID_ENUM_DECL(id) kVisit##id,
     VISITOR_ID_LIST(VISITOR_ID_ENUM_DECL)
 #undef VISITOR_ID_ENUM_DECL
-    kVisitorIdCount,
+        kVisitorIdCount,
     kVisitDataObject = kVisitDataObject2,
     kVisitJSObject = kVisitJSObject2,
+    kVisitJSApiObject = kVisitJSApiObject2,
     kVisitStruct = kVisitStruct2,
   };
 
@@ -119,11 +129,12 @@
                                        int object_size,
                                        bool has_unboxed_fields) {
     DCHECK((base == kVisitDataObject) || (base == kVisitStruct) ||
-           (base == kVisitJSObject));
+           (base == kVisitJSObject) || (base == kVisitJSApiObject));
     DCHECK(IsAligned(object_size, kPointerSize));
     DCHECK(Heap::kMinObjectSizeInWords * kPointerSize <= object_size);
     DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
-    DCHECK(!has_unboxed_fields || (base == kVisitJSObject));
+    DCHECK(!has_unboxed_fields || (base == kVisitJSObject) ||
+           (base == kVisitJSApiObject));
 
     if (has_unboxed_fields) return generic;
 
@@ -400,6 +411,28 @@
   typedef FlexibleBodyVisitor<StaticVisitor, JSObject::BodyDescriptor, void>
       JSObjectVisitor;
 
+  class JSApiObjectVisitor : AllStatic {
+   public:
+    template <int size>
+    static inline void VisitSpecialized(Map* map, HeapObject* object) {
+      TracePossibleWrapper(object);
+      JSObjectVisitor::template VisitSpecialized<size>(map, object);
+    }
+
+    INLINE(static void Visit(Map* map, HeapObject* object)) {
+      TracePossibleWrapper(object);
+      JSObjectVisitor::Visit(map, object);
+    }
+
+   private:
+    INLINE(static void TracePossibleWrapper(HeapObject* object)) {
+      if (object->GetHeap()->UsingEmbedderHeapTracer()) {
+        DCHECK(object->IsJSObject());
+        object->GetHeap()->TracePossibleWrapper(JSObject::cast(object));
+      }
+    }
+  };
+
   typedef FlexibleBodyVisitor<StaticVisitor, StructBodyDescriptor, void>
       StructObjectVisitor;
 
diff --git a/src/heap/page-parallel-job.h b/src/heap/page-parallel-job.h
index 720e288..440c440 100644
--- a/src/heap/page-parallel-job.h
+++ b/src/heap/page-parallel-job.h
@@ -33,13 +33,20 @@
 template <typename JobTraits>
 class PageParallelJob {
  public:
-  PageParallelJob(Heap* heap, CancelableTaskManager* cancelable_task_manager)
+  // PageParallelJob cannot dynamically create a semaphore because of a bug in
+  // glibc. See http://crbug.com/609249 and
+  // https://sourceware.org/bugzilla/show_bug.cgi?id=12674.
+  // The caller must provide a semaphore with value 0 and ensure that
+  // the lifetime of the semaphore is the same as the lifetime of the Isolate.
+  // It is guaranteed that the semaphore value will be 0 after Run() call.
+  PageParallelJob(Heap* heap, CancelableTaskManager* cancelable_task_manager,
+                  base::Semaphore* semaphore)
       : heap_(heap),
         cancelable_task_manager_(cancelable_task_manager),
         items_(nullptr),
         num_items_(0),
         num_tasks_(0),
-        pending_tasks_(new base::Semaphore(0)) {}
+        pending_tasks_(semaphore) {}
 
   ~PageParallelJob() {
     Item* item = items_;
@@ -48,7 +55,6 @@
       delete item;
       item = next;
     }
-    delete pending_tasks_;
   }
 
   void AddPage(MemoryChunk* chunk, typename JobTraits::PerPageData data) {
@@ -121,7 +127,7 @@
     Item(MemoryChunk* chunk, typename JobTraits::PerPageData data, Item* next)
         : chunk(chunk), state(kAvailable), data(data), next(next) {}
     MemoryChunk* chunk;
-    AtomicValue<ProcessingState> state;
+    base::AtomicValue<ProcessingState> state;
     typename JobTraits::PerPageData data;
     Item* next;
   };
diff --git a/src/heap/scavenger.cc b/src/heap/scavenger.cc
index 3f532ea..456d8a4 100644
--- a/src/heap/scavenger.cc
+++ b/src/heap/scavenger.cc
@@ -78,6 +78,10 @@
     table_.RegisterSpecializations<ObjectEvacuationStrategy<POINTER_OBJECT>,
                                    kVisitJSObject, kVisitJSObjectGeneric>();
 
+    table_
+        .RegisterSpecializations<ObjectEvacuationStrategy<POINTER_OBJECT>,
+                                 kVisitJSApiObject, kVisitJSApiObjectGeneric>();
+
     table_.RegisterSpecializations<ObjectEvacuationStrategy<POINTER_OBJECT>,
                                    kVisitStruct, kVisitStructGeneric>();
   }
@@ -462,6 +466,7 @@
 void ScavengeVisitor::ScavengePointer(Object** p) {
   Object* object = *p;
   if (!heap_->InNewSpace(object)) return;
+
   Scavenger::ScavengeObject(reinterpret_cast<HeapObject**>(p),
                             reinterpret_cast<HeapObject*>(object));
 }
diff --git a/src/heap/spaces-inl.h b/src/heap/spaces-inl.h
index 135498f..f9e40bb 100644
--- a/src/heap/spaces-inl.h
+++ b/src/heap/spaces-inl.h
@@ -56,8 +56,8 @@
 
 HeapObject* SemiSpaceIterator::Next() {
   while (current_ != limit_) {
-    if (NewSpacePage::IsAtEnd(current_)) {
-      NewSpacePage* page = NewSpacePage::FromLimit(current_);
+    if (Page::IsAlignedToPageSize(current_)) {
+      Page* page = Page::FromAllocationAreaAddress(current_);
       page = page->next_page();
       DCHECK(!page->is_anchor());
       current_ = page->area_start();
@@ -80,9 +80,9 @@
 // NewSpacePageIterator
 
 NewSpacePageIterator::NewSpacePageIterator(NewSpace* space)
-    : prev_page_(NewSpacePage::FromAddress(space->ToSpaceStart())->prev_page()),
-      next_page_(NewSpacePage::FromAddress(space->ToSpaceStart())),
-      last_page_(NewSpacePage::FromLimit(space->ToSpaceEnd())) {}
+    : prev_page_(Page::FromAddress(space->ToSpaceStart())->prev_page()),
+      next_page_(Page::FromAddress(space->ToSpaceStart())),
+      last_page_(Page::FromAllocationAreaAddress(space->ToSpaceEnd())) {}
 
 NewSpacePageIterator::NewSpacePageIterator(SemiSpace* space)
     : prev_page_(space->anchor()),
@@ -90,17 +90,16 @@
       last_page_(prev_page_->prev_page()) {}
 
 NewSpacePageIterator::NewSpacePageIterator(Address start, Address limit)
-    : prev_page_(NewSpacePage::FromAddress(start)->prev_page()),
-      next_page_(NewSpacePage::FromAddress(start)),
-      last_page_(NewSpacePage::FromLimit(limit)) {
+    : prev_page_(Page::FromAddress(start)->prev_page()),
+      next_page_(Page::FromAddress(start)),
+      last_page_(Page::FromAllocationAreaAddress(limit)) {
   SemiSpace::AssertValidRange(start, limit);
 }
 
 
 bool NewSpacePageIterator::has_next() { return prev_page_ != last_page_; }
 
-
-NewSpacePage* NewSpacePageIterator::next() {
+Page* NewSpacePageIterator::next() {
   DCHECK(has_next());
   prev_page_ = next_page_;
   next_page_ = next_page_->next_page();
@@ -251,16 +250,15 @@
   return static_cast<AllocationSpace>(Smi::cast(object_)->value());
 }
 
-NewSpacePage* NewSpacePage::Initialize(Heap* heap, MemoryChunk* chunk,
-                                       Executability executable,
-                                       SemiSpace* owner) {
+Page* Page::Initialize(Heap* heap, MemoryChunk* chunk, Executability executable,
+                       SemiSpace* owner) {
   DCHECK_EQ(executable, Executability::NOT_EXECUTABLE);
   bool in_to_space = (owner->id() != kFromSpace);
   chunk->SetFlag(in_to_space ? MemoryChunk::IN_TO_SPACE
                              : MemoryChunk::IN_FROM_SPACE);
   DCHECK(!chunk->IsFlagSet(in_to_space ? MemoryChunk::IN_FROM_SPACE
                                        : MemoryChunk::IN_TO_SPACE));
-  NewSpacePage* page = static_cast<NewSpacePage*>(chunk);
+  Page* page = static_cast<Page*>(chunk);
   heap->incremental_marking()->SetNewSpacePageFlags(page);
   return page;
 }
@@ -268,6 +266,7 @@
 // --------------------------------------------------------------------------
 // PagedSpace
 
+template <Page::InitializationMode mode>
 Page* Page::Initialize(Heap* heap, MemoryChunk* chunk, Executability executable,
                        PagedSpace* owner) {
   Page* page = reinterpret_cast<Page*>(chunk);
@@ -280,11 +279,26 @@
 
   // Make sure that categories are initialized before freeing the area.
   page->InitializeFreeListCategories();
-  owner->Free(page->area_start(), page->area_size());
+  // In the case we do not free the memory, we effectively account for the whole
+  // page as allocated memory that cannot be used for further allocations.
+  if (mode == kFreeMemory) {
+    owner->Free(page->area_start(), page->area_size());
+  }
 
   return page;
 }
 
+Page* Page::ConvertNewToOld(Page* old_page, PagedSpace* new_owner) {
+  DCHECK(old_page->InNewSpace());
+  old_page->set_owner(new_owner);
+  old_page->SetFlags(0, ~0);
+  new_owner->AccountCommitted(old_page->size());
+  Page* new_page = Page::Initialize<kDoNotFreeMemory>(
+      old_page->heap(), old_page, NOT_EXECUTABLE, new_owner);
+  new_page->InsertAfter(new_owner->anchor()->prev_page());
+  return new_page;
+}
+
 void Page::InitializeFreeListCategories() {
   for (int i = kFirstCategory; i < kNumberOfCategories; i++) {
     categories_[i].Initialize(static_cast<FreeListCategoryType>(i));
@@ -325,14 +339,14 @@
 
 bool PagedSpace::Contains(Address addr) {
   Page* p = Page::FromAddress(addr);
-  if (!p->is_valid()) return false;
+  if (!Page::IsValid(p)) return false;
   return p->owner() == this;
 }
 
 bool PagedSpace::Contains(Object* o) {
   if (!o->IsHeapObject()) return false;
   Page* p = Page::FromAddress(HeapObject::cast(o)->address());
-  if (!p->is_valid()) return false;
+  if (!Page::IsValid(p)) return false;
   return p->owner() == this;
 }
 
@@ -382,8 +396,10 @@
 }
 
 void Page::ClearEvacuationCandidate() {
-  DCHECK_NULL(old_to_old_slots_);
-  DCHECK_NULL(typed_old_to_old_slots_);
+  if (!IsFlagSet(COMPACTION_WAS_ABORTED)) {
+    DCHECK_NULL(old_to_old_slots_);
+    DCHECK_NULL(typed_old_to_old_slots_);
+  }
   ClearFlag(EVACUATION_CANDIDATE);
   InitializeFreeListCategories();
 }
@@ -436,16 +452,6 @@
   return nullptr;
 }
 
-void Page::set_next_page(Page* page) {
-  DCHECK(page->owner() == owner());
-  set_next_chunk(page);
-}
-
-void Page::set_prev_page(Page* page) {
-  DCHECK(page->owner() == owner());
-  set_prev_chunk(page);
-}
-
 Page* FreeListCategory::page() {
   return Page::FromAddress(reinterpret_cast<Address>(this));
 }
@@ -668,15 +674,19 @@
   return AllocateRaw(size_in_bytes, alignment);
 }
 
-
-LargePage* LargePage::Initialize(Heap* heap, MemoryChunk* chunk) {
+LargePage* LargePage::Initialize(Heap* heap, MemoryChunk* chunk,
+                                 Executability executable, Space* owner) {
+  if (executable && chunk->size() > LargePage::kMaxCodePageSize) {
+    STATIC_ASSERT(LargePage::kMaxCodePageSize <= TypedSlotSet::kMaxOffset);
+    FATAL("Code page is too large.");
+  }
   heap->incremental_marking()->SetOldSpacePageFlags(chunk);
   return static_cast<LargePage*>(chunk);
 }
 
 
 intptr_t LargeObjectSpace::Available() {
-  return ObjectSizeFor(heap()->isolate()->memory_allocator()->Available());
+  return ObjectSizeFor(heap()->memory_allocator()->Available());
 }
 
 
diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc
index a0a3752..e517c45 100644
--- a/src/heap/spaces.cc
+++ b/src/heap/spaces.cc
@@ -6,11 +6,13 @@
 
 #include "src/base/bits.h"
 #include "src/base/platform/platform.h"
+#include "src/base/platform/semaphore.h"
 #include "src/full-codegen/full-codegen.h"
 #include "src/heap/slot-set.h"
 #include "src/macro-assembler.h"
 #include "src/msan.h"
 #include "src/snapshot/snapshot.h"
+#include "src/v8.h"
 
 namespace v8 {
 namespace internal {
@@ -62,8 +64,10 @@
   }
   cur_page = cur_page->next_page();
   if (cur_page == space_->anchor()) return false;
-  cur_page->heap()->mark_compact_collector()->SweepOrWaitUntilSweepingCompleted(
-      cur_page);
+  cur_page->heap()
+      ->mark_compact_collector()
+      ->sweeper()
+      .SweepOrWaitUntilSweepingCompleted(cur_page);
   cur_addr_ = cur_page->area_start();
   cur_end_ = cur_page->area_end();
   DCHECK(cur_page->SweepingDone());
@@ -222,7 +226,7 @@
   *allocated = current.size;
   DCHECK(*allocated <= current.size);
   DCHECK(IsAddressAligned(current.start, MemoryChunk::kAlignment));
-  if (!isolate_->memory_allocator()->CommitExecutableMemory(
+  if (!isolate_->heap()->memory_allocator()->CommitExecutableMemory(
           code_range_, current.start, commit_size, *allocated)) {
     *allocated = 0;
     ReleaseBlock(&current);
@@ -233,7 +237,8 @@
 
 
 bool CodeRange::CommitRawMemory(Address start, size_t length) {
-  return isolate_->memory_allocator()->CommitMemory(start, length, EXECUTABLE);
+  return isolate_->heap()->memory_allocator()->CommitMemory(start, length,
+                                                            EXECUTABLE);
 }
 
 
@@ -294,15 +299,17 @@
 
 MemoryAllocator::MemoryAllocator(Isolate* isolate)
     : isolate_(isolate),
+      code_range_(nullptr),
       capacity_(0),
       capacity_executable_(0),
       size_(0),
       size_executable_(0),
       lowest_ever_allocated_(reinterpret_cast<void*>(-1)),
-      highest_ever_allocated_(reinterpret_cast<void*>(0)) {}
+      highest_ever_allocated_(reinterpret_cast<void*>(0)),
+      unmapper_(this) {}
 
-
-bool MemoryAllocator::SetUp(intptr_t capacity, intptr_t capacity_executable) {
+bool MemoryAllocator::SetUp(intptr_t capacity, intptr_t capacity_executable,
+                            intptr_t code_range_size) {
   capacity_ = RoundUp(capacity, Page::kPageSize);
   capacity_executable_ = RoundUp(capacity_executable, Page::kPageSize);
   DCHECK_GE(capacity_, capacity_executable_);
@@ -310,21 +317,84 @@
   size_ = 0;
   size_executable_ = 0;
 
+  code_range_ = new CodeRange(isolate_);
+  if (!code_range_->SetUp(static_cast<size_t>(code_range_size))) return false;
+
   return true;
 }
 
 
 void MemoryAllocator::TearDown() {
-  for (MemoryChunk* chunk : chunk_pool_) {
+  unmapper()->WaitUntilCompleted();
+
+  MemoryChunk* chunk = nullptr;
+  while ((chunk = unmapper()->TryGetPooledMemoryChunkSafe()) != nullptr) {
     FreeMemory(reinterpret_cast<Address>(chunk), MemoryChunk::kPageSize,
                NOT_EXECUTABLE);
   }
+
   // Check that spaces were torn down before MemoryAllocator.
   DCHECK_EQ(size_.Value(), 0);
   // TODO(gc) this will be true again when we fix FreeMemory.
   // DCHECK(size_executable_ == 0);
   capacity_ = 0;
   capacity_executable_ = 0;
+
+  if (last_chunk_.IsReserved()) {
+    last_chunk_.Release();
+  }
+
+  delete code_range_;
+  code_range_ = nullptr;
+}
+
+class MemoryAllocator::Unmapper::UnmapFreeMemoryTask : public v8::Task {
+ public:
+  explicit UnmapFreeMemoryTask(Unmapper* unmapper) : unmapper_(unmapper) {}
+
+ private:
+  // v8::Task overrides.
+  void Run() override {
+    unmapper_->PerformFreeMemoryOnQueuedChunks();
+    unmapper_->pending_unmapping_tasks_semaphore_.Signal();
+  }
+
+  Unmapper* unmapper_;
+  DISALLOW_COPY_AND_ASSIGN(UnmapFreeMemoryTask);
+};
+
+void MemoryAllocator::Unmapper::FreeQueuedChunks() {
+  if (FLAG_concurrent_sweeping) {
+    V8::GetCurrentPlatform()->CallOnBackgroundThread(
+        new UnmapFreeMemoryTask(this), v8::Platform::kShortRunningTask);
+    concurrent_unmapping_tasks_active_++;
+  } else {
+    PerformFreeMemoryOnQueuedChunks();
+  }
+}
+
+bool MemoryAllocator::Unmapper::WaitUntilCompleted() {
+  bool waited = false;
+  while (concurrent_unmapping_tasks_active_ > 0) {
+    pending_unmapping_tasks_semaphore_.Wait();
+    concurrent_unmapping_tasks_active_--;
+    waited = true;
+  }
+  return waited;
+}
+
+void MemoryAllocator::Unmapper::PerformFreeMemoryOnQueuedChunks() {
+  MemoryChunk* chunk = nullptr;
+  // Regular chunks.
+  while ((chunk = GetMemoryChunkSafe<kRegular>()) != nullptr) {
+    bool pooled = chunk->IsFlagSet(MemoryChunk::POOLED);
+    allocator_->PerformFreeMemory(chunk);
+    if (pooled) AddMemoryChunkSafe<kPooled>(chunk);
+  }
+  // Non-regular chunks.
+  while ((chunk = GetMemoryChunkSafe<kNonRegular>()) != nullptr) {
+    allocator_->PerformFreeMemory(chunk);
+  }
 }
 
 bool MemoryAllocator::CommitMemory(Address base, size_t size,
@@ -342,12 +412,10 @@
                                  Executability executable) {
   // TODO(gc) make code_range part of memory allocator?
   // Code which is part of the code-range does not have its own VirtualMemory.
-  DCHECK(isolate_->code_range() == NULL ||
-         !isolate_->code_range()->contains(
-             static_cast<Address>(reservation->address())));
-  DCHECK(executable == NOT_EXECUTABLE || isolate_->code_range() == NULL ||
-         !isolate_->code_range()->valid() ||
-         reservation->size() <= Page::kPageSize);
+  DCHECK(code_range() == NULL ||
+         !code_range()->contains(static_cast<Address>(reservation->address())));
+  DCHECK(executable == NOT_EXECUTABLE || code_range() == NULL ||
+         !code_range()->valid() || reservation->size() <= Page::kPageSize);
 
   reservation->Release();
 }
@@ -356,20 +424,19 @@
 void MemoryAllocator::FreeMemory(Address base, size_t size,
                                  Executability executable) {
   // TODO(gc) make code_range part of memory allocator?
-  if (isolate_->code_range() != NULL &&
-      isolate_->code_range()->contains(static_cast<Address>(base))) {
+  if (code_range() != NULL &&
+      code_range()->contains(static_cast<Address>(base))) {
     DCHECK(executable == EXECUTABLE);
-    isolate_->code_range()->FreeRawMemory(base, size);
+    code_range()->FreeRawMemory(base, size);
   } else {
-    DCHECK(executable == NOT_EXECUTABLE || isolate_->code_range() == NULL ||
-           !isolate_->code_range()->valid());
+    DCHECK(executable == NOT_EXECUTABLE || code_range() == NULL ||
+           !code_range()->valid());
     bool result = base::VirtualMemory::ReleaseRegion(base, size);
     USE(result);
     DCHECK(result);
   }
 }
 
-
 Address MemoryAllocator::ReserveAlignedMemory(size_t size, size_t alignment,
                                               base::VirtualMemory* controller) {
   base::VirtualMemory reservation(size, alignment);
@@ -382,7 +449,6 @@
   return base;
 }
 
-
 Address MemoryAllocator::AllocateAlignedMemory(
     size_t reserve_size, size_t commit_size, size_t alignment,
     Executability executable, base::VirtualMemory* controller) {
@@ -415,20 +481,12 @@
   return base;
 }
 
-
-void Page::InitializeAsAnchor(PagedSpace* owner) {
-  set_owner(owner);
-  set_prev_page(this);
-  set_next_page(this);
-}
-
-void NewSpacePage::InitializeAsAnchor(SemiSpace* semi_space) {
-  set_owner(semi_space);
+void Page::InitializeAsAnchor(Space* space) {
+  set_owner(space);
   set_next_chunk(this);
   set_prev_chunk(this);
-  // Flags marks this invalid page as not being in new-space.
-  // All real new-space pages will be in new-space.
   SetFlags(0, ~0);
+  SetFlag(ANCHOR);
 }
 
 MemoryChunk* MemoryChunk::Initialize(Heap* heap, Address base, size_t size,
@@ -496,19 +554,19 @@
     if (reservation_.IsReserved()) {
       Executability executable =
           IsFlagSet(IS_EXECUTABLE) ? EXECUTABLE : NOT_EXECUTABLE;
-      if (!heap()->isolate()->memory_allocator()->CommitMemory(start, length,
-                                                               executable)) {
+      if (!heap()->memory_allocator()->CommitMemory(start, length,
+                                                    executable)) {
         return false;
       }
     } else {
-      CodeRange* code_range = heap_->isolate()->code_range();
+      CodeRange* code_range = heap_->memory_allocator()->code_range();
       DCHECK(code_range != NULL && code_range->valid() &&
              IsFlagSet(IS_EXECUTABLE));
       if (!code_range->CommitRawMemory(start, length)) return false;
     }
 
     if (Heap::ShouldZapGarbage()) {
-      heap_->isolate()->memory_allocator()->ZapBlock(start, length);
+      heap_->memory_allocator()->ZapBlock(start, length);
     }
   } else if (commit_size < committed_size) {
     DCHECK(commit_size > 0);
@@ -518,7 +576,7 @@
     if (reservation_.IsReserved()) {
       if (!reservation_.Uncommit(start, length)) return false;
     } else {
-      CodeRange* code_range = heap_->isolate()->code_range();
+      CodeRange* code_range = heap_->memory_allocator()->code_range();
       DCHECK(code_range != NULL && code_range->valid() &&
              IsFlagSet(IS_EXECUTABLE));
       if (!code_range->UncommitRawMemory(start, length)) return false;
@@ -614,13 +672,13 @@
 #ifdef V8_TARGET_ARCH_MIPS64
     // Use code range only for large object space on mips64 to keep address
     // range within 256-MB memory region.
-    if (isolate_->code_range() != NULL && isolate_->code_range()->valid() &&
+    if (code_range() != NULL && code_range()->valid() &&
         reserve_area_size > CodePageAreaSize()) {
 #else
-    if (isolate_->code_range() != NULL && isolate_->code_range()->valid()) {
+    if (code_range() != NULL && code_range()->valid()) {
 #endif
-      base = isolate_->code_range()->AllocateRawMemory(chunk_size, commit_size,
-                                                       &chunk_size);
+      base =
+          code_range()->AllocateRawMemory(chunk_size, commit_size, &chunk_size);
       DCHECK(
           IsAligned(reinterpret_cast<intptr_t>(base), MemoryChunk::kAlignment));
       if (base == NULL) return NULL;
@@ -674,6 +732,23 @@
     PerformAllocationCallback(space, kAllocationActionAllocate, chunk_size);
   }
 
+  // We cannot use the last chunk in the address space because we would
+  // overflow when comparing top and limit if this chunk is used for a
+  // linear allocation area.
+  if ((reinterpret_cast<uintptr_t>(base) + chunk_size) == 0u) {
+    CHECK(!last_chunk_.IsReserved());
+    last_chunk_.TakeControl(&reservation);
+    UncommitBlock(reinterpret_cast<Address>(last_chunk_.address()),
+                  last_chunk_.size());
+    size_.Increment(-static_cast<intptr_t>(chunk_size));
+    if (executable == EXECUTABLE) {
+      size_executable_.Increment(-static_cast<intptr_t>(chunk_size));
+    }
+    CHECK(last_chunk_.IsReserved());
+    return AllocateChunk(reserve_area_size, commit_area_size, executable,
+                         owner);
+  }
+
   return MemoryChunk::Initialize(heap, base, chunk_size, area_start, area_end,
                                  executable, owner, &reservation);
 }
@@ -684,20 +759,6 @@
   available_in_free_list_ = 0;
 }
 
-LargePage* MemoryAllocator::AllocateLargePage(intptr_t object_size,
-                                              Space* owner,
-                                              Executability executable) {
-  MemoryChunk* chunk =
-      AllocateChunk(object_size, object_size, executable, owner);
-  if (chunk == NULL) return NULL;
-  if (executable && chunk->size() > LargePage::kMaxCodePageSize) {
-    STATIC_ASSERT(LargePage::kMaxCodePageSize <= TypedSlotSet::kMaxOffset);
-    FATAL("Code page is too large.");
-  }
-  return LargePage::Initialize(isolate_->heap(), chunk);
-}
-
-
 void MemoryAllocator::PreFreeMemory(MemoryChunk* chunk) {
   DCHECK(!chunk->IsFlagSet(MemoryChunk::PRE_FREED));
   LOG(isolate_, DeleteEvent("MemoryChunk", chunk));
@@ -735,36 +796,52 @@
   chunk->ReleaseAllocatedMemory();
 
   base::VirtualMemory* reservation = chunk->reserved_memory();
-  if (reservation->IsReserved()) {
-    FreeMemory(reservation, chunk->executable());
+  if (chunk->IsFlagSet(MemoryChunk::POOLED)) {
+    UncommitBlock(reinterpret_cast<Address>(chunk), MemoryChunk::kPageSize);
   } else {
-    FreeMemory(chunk->address(), chunk->size(), chunk->executable());
+    if (reservation->IsReserved()) {
+      FreeMemory(reservation, chunk->executable());
+    } else {
+      FreeMemory(chunk->address(), chunk->size(), chunk->executable());
+    }
   }
 }
 
-template <MemoryAllocator::AllocationMode mode>
+template <MemoryAllocator::FreeMode mode>
 void MemoryAllocator::Free(MemoryChunk* chunk) {
-  if (mode == kRegular) {
-    PreFreeMemory(chunk);
-    PerformFreeMemory(chunk);
-  } else {
-    DCHECK_EQ(mode, kPooled);
-    FreePooled(chunk);
+  switch (mode) {
+    case kFull:
+      PreFreeMemory(chunk);
+      PerformFreeMemory(chunk);
+      break;
+    case kPooledAndQueue:
+      DCHECK_EQ(chunk->size(), static_cast<size_t>(MemoryChunk::kPageSize));
+      DCHECK_EQ(chunk->executable(), NOT_EXECUTABLE);
+      chunk->SetFlag(MemoryChunk::POOLED);
+    // Fall through to kPreFreeAndQueue.
+    case kPreFreeAndQueue:
+      PreFreeMemory(chunk);
+      // The chunks added to this queue will be freed by a concurrent thread.
+      unmapper()->AddMemoryChunkSafe(chunk);
+      break;
+    default:
+      UNREACHABLE();
   }
 }
 
-template void MemoryAllocator::Free<MemoryAllocator::kRegular>(
+template void MemoryAllocator::Free<MemoryAllocator::kFull>(MemoryChunk* chunk);
+
+template void MemoryAllocator::Free<MemoryAllocator::kPreFreeAndQueue>(
     MemoryChunk* chunk);
 
-template void MemoryAllocator::Free<MemoryAllocator::kPooled>(
+template void MemoryAllocator::Free<MemoryAllocator::kPooledAndQueue>(
     MemoryChunk* chunk);
 
-template <typename PageType, MemoryAllocator::AllocationMode mode,
-          typename SpaceType>
-PageType* MemoryAllocator::AllocatePage(intptr_t size, SpaceType* owner,
-                                        Executability executable) {
+template <MemoryAllocator::AllocationMode alloc_mode, typename SpaceType>
+Page* MemoryAllocator::AllocatePage(intptr_t size, SpaceType* owner,
+                                    Executability executable) {
   MemoryChunk* chunk = nullptr;
-  if (mode == kPooled) {
+  if (alloc_mode == kPooled) {
     DCHECK_EQ(size, static_cast<intptr_t>(MemoryChunk::kAllocatableMemory));
     DCHECK_EQ(executable, NOT_EXECUTABLE);
     chunk = AllocatePagePooled(owner);
@@ -773,22 +850,32 @@
     chunk = AllocateChunk(size, size, executable, owner);
   }
   if (chunk == nullptr) return nullptr;
-  return PageType::Initialize(isolate_->heap(), chunk, executable, owner);
+  return Page::Initialize(isolate_->heap(), chunk, executable, owner);
 }
 
-template Page* MemoryAllocator::AllocatePage<Page, MemoryAllocator::kRegular,
-                                             PagedSpace>(intptr_t, PagedSpace*,
-                                                         Executability);
+template Page*
+MemoryAllocator::AllocatePage<MemoryAllocator::kRegular, PagedSpace>(
+    intptr_t size, PagedSpace* owner, Executability executable);
+template Page*
+MemoryAllocator::AllocatePage<MemoryAllocator::kRegular, SemiSpace>(
+    intptr_t size, SemiSpace* owner, Executability executable);
+template Page*
+MemoryAllocator::AllocatePage<MemoryAllocator::kPooled, SemiSpace>(
+    intptr_t size, SemiSpace* owner, Executability executable);
 
-template NewSpacePage* MemoryAllocator::AllocatePage<
-    NewSpacePage, MemoryAllocator::kPooled, SemiSpace>(intptr_t, SemiSpace*,
-                                                       Executability);
+LargePage* MemoryAllocator::AllocateLargePage(intptr_t size,
+                                              LargeObjectSpace* owner,
+                                              Executability executable) {
+  MemoryChunk* chunk = AllocateChunk(size, size, executable, owner);
+  if (chunk == nullptr) return nullptr;
+  return LargePage::Initialize(isolate_->heap(), chunk, executable, owner);
+}
 
 template <typename SpaceType>
 MemoryChunk* MemoryAllocator::AllocatePagePooled(SpaceType* owner) {
-  if (chunk_pool_.is_empty()) return nullptr;
+  MemoryChunk* chunk = unmapper()->TryGetPooledMemoryChunkSafe();
+  if (chunk == nullptr) return nullptr;
   const int size = MemoryChunk::kPageSize;
-  MemoryChunk* chunk = chunk_pool_.RemoveLast();
   const Address start = reinterpret_cast<Address>(chunk);
   const Address area_start = start + MemoryChunk::kObjectStartOffset;
   const Address area_end = start + size;
@@ -802,18 +889,6 @@
   return chunk;
 }
 
-void MemoryAllocator::FreePooled(MemoryChunk* chunk) {
-  DCHECK_EQ(chunk->size(), static_cast<size_t>(MemoryChunk::kPageSize));
-  DCHECK_EQ(chunk->executable(), NOT_EXECUTABLE);
-  chunk_pool_.Add(chunk);
-  intptr_t chunk_size = static_cast<intptr_t>(chunk->size());
-  if (chunk->executable() == EXECUTABLE) {
-    size_executable_.Increment(-chunk_size);
-  }
-  size_.Increment(-chunk_size);
-  UncommitBlock(reinterpret_cast<Address>(chunk), MemoryChunk::kPageSize);
-}
-
 bool MemoryAllocator::CommitBlock(Address start, size_t size,
                                   Executability executable) {
   if (!CommitMemory(start, size, executable)) return false;
@@ -890,10 +965,7 @@
 void MemoryAllocator::ReportStatistics() {
   intptr_t size = Size();
   float pct = static_cast<float>(capacity_ - size) / capacity_;
-  PrintF("  capacity: %" V8_PTR_PREFIX
-         "d"
-         ", used: %" V8_PTR_PREFIX
-         "d"
+  PrintF("  capacity: %" V8PRIdPTR ", used: %" V8PRIdPTR
          ", available: %%%d\n\n",
          capacity_, size, static_cast<int>(pct * 100));
 }
@@ -959,12 +1031,16 @@
 // MemoryChunk implementation
 
 void MemoryChunk::ReleaseAllocatedMemory() {
-  delete skip_list_;
-  skip_list_ = nullptr;
-  delete mutex_;
-  mutex_ = nullptr;
-  ReleaseOldToNewSlots();
-  ReleaseOldToOldSlots();
+  if (skip_list_ != nullptr) {
+    delete skip_list_;
+    skip_list_ = nullptr;
+  }
+  if (mutex_ != nullptr) {
+    delete mutex_;
+    mutex_ = nullptr;
+  }
+  if (old_to_new_slots_ != nullptr) ReleaseOldToNewSlots();
+  if (old_to_old_slots_ != nullptr) ReleaseOldToOldSlots();
 }
 
 static SlotSet* AllocateSlotSet(size_t size, Address page_start) {
@@ -1029,13 +1105,11 @@
 
 PagedSpace::PagedSpace(Heap* heap, AllocationSpace space,
                        Executability executable)
-    : Space(heap, space, executable), free_list_(this) {
+    : Space(heap, space, executable), anchor_(this), free_list_(this) {
   area_size_ = MemoryAllocator::PageAreaSize(space);
   accounting_stats_.Clear();
 
   allocation_info_.Reset(nullptr, nullptr);
-
-  anchor_.InitializeAsAnchor(this);
 }
 
 
@@ -1048,7 +1122,7 @@
 void PagedSpace::TearDown() {
   PageIterator iterator(this);
   while (iterator.has_next()) {
-    heap()->isolate()->memory_allocator()->Free(iterator.next());
+    heap()->memory_allocator()->Free<MemoryAllocator::kFull>(iterator.next());
   }
   anchor_.set_next_page(&anchor_);
   anchor_.set_prev_page(&anchor_);
@@ -1063,17 +1137,14 @@
     return;
   }
   MarkCompactCollector* collector = heap()->mark_compact_collector();
-  List<Page*>* swept_pages = collector->swept_pages(identity());
   intptr_t added = 0;
   {
-    base::LockGuard<base::Mutex> guard(collector->swept_pages_mutex());
-    for (int i = swept_pages->length() - 1; i >= 0; --i) {
-      Page* p = (*swept_pages)[i];
+    Page* p = nullptr;
+    while ((p = collector->sweeper().GetSweptPageSafe(this)) != nullptr) {
       // Only during compaction pages can actually change ownership. This is
       // safe because there exists no other competing action on the page links
       // during compaction.
       if (is_local() && (p->owner() != this)) {
-        if (added > kCompactionMemoryWanted) break;
         base::LockGuard<base::Mutex> guard(
             reinterpret_cast<PagedSpace*>(p->owner())->mutex());
         p->Unlink();
@@ -1082,7 +1153,7 @@
       }
       added += RelinkFreeListCategories(p);
       added += p->wasted_memory();
-      swept_pages->Remove(i);
+      if (is_local() && (added > kCompactionMemoryWanted)) break;
     }
   }
   accounting_stats_.IncreaseCapacity(added);
@@ -1163,30 +1234,16 @@
 }
 
 
-bool PagedSpace::CanExpand(size_t size) {
-  DCHECK(heap()->mark_compact_collector()->is_compacting() ||
-         Capacity() <= heap()->MaxOldGenerationSize());
-
-  // Are we going to exceed capacity for this space? At this point we can be
-  // way over the maximum size because of AlwaysAllocate scopes and large
-  // objects.
-  if (!heap()->CanExpandOldGeneration(static_cast<int>(size))) return false;
-
-  return true;
-}
-
-
 bool PagedSpace::Expand() {
-  intptr_t size = AreaSize();
+  int size = AreaSize();
   if (snapshotable() && !HasPages()) {
     size = Snapshot::SizeOfFirstPage(heap()->isolate(), identity());
   }
 
-  if (!CanExpand(size)) return false;
+  if (!heap()->CanExpandOldGeneration(size)) return false;
 
-  Page* p = heap()->isolate()->memory_allocator()->AllocatePage<Page>(
-      size, this, executable());
-  if (p == NULL) return false;
+  Page* p = heap()->memory_allocator()->AllocatePage(size, this, executable());
+  if (p == nullptr) return false;
 
   AccountCommitted(static_cast<intptr_t>(p->size()));
 
@@ -1244,7 +1301,7 @@
   free_list_.EvictFreeListItems(page);
   DCHECK(!free_list_.ContainsPageFreeListItems(page));
 
-  if (Page::FromAllocationTop(allocation_info_.top()) == page) {
+  if (Page::FromAllocationAreaAddress(allocation_info_.top()) == page) {
     allocation_info_.Reset(nullptr, nullptr);
   }
 
@@ -1255,7 +1312,7 @@
   }
 
   AccountUncommitted(static_cast<intptr_t>(page->size()));
-  heap()->QueueMemoryChunkForFree(page);
+  heap()->memory_allocator()->Free<MemoryAllocator::kPreFreeAndQueue>(page);
 
   DCHECK(Capacity() > 0);
   accounting_stats_.ShrinkSpace(AreaSize());
@@ -1273,7 +1330,7 @@
   while (page_iterator.has_next()) {
     Page* page = page_iterator.next();
     CHECK(page->owner() == this);
-    if (page == Page::FromAllocationTop(allocation_info_.top())) {
+    if (page == Page::FromAllocationAreaAddress(allocation_info_.top())) {
       allocation_pointer_found_in_space = true;
     }
     CHECK(page->SweepingDone());
@@ -1492,14 +1549,14 @@
 
 bool NewSpace::AddFreshPage() {
   Address top = allocation_info_.top();
-  DCHECK(!NewSpacePage::IsAtStart(top));
+  DCHECK(!Page::IsAtObjectStart(top));
   if (!to_space_.AdvancePage()) {
     // No more pages left to advance.
     return false;
   }
 
   // Clear remainder of current page.
-  Address limit = NewSpacePage::FromLimit(top)->area_end();
+  Address limit = Page::FromAllocationAreaAddress(top)->area_end();
   if (heap()->gc_state() == Heap::SCAVENGE) {
     heap()->promotion_queue()->SetNewLimit(limit);
   }
@@ -1526,7 +1583,7 @@
   int filler_size = Heap::GetFillToAlign(old_top, alignment);
   int aligned_size_in_bytes = size_in_bytes + filler_size;
 
-  if (old_top + aligned_size_in_bytes >= high) {
+  if (old_top + aligned_size_in_bytes > high) {
     // Not enough room in the page, try to allocate a new one.
     if (!AddFreshPage()) {
       return false;
@@ -1537,10 +1594,9 @@
     old_top = allocation_info_.top();
     high = to_space_.page_high();
     filler_size = Heap::GetFillToAlign(old_top, alignment);
-    aligned_size_in_bytes = size_in_bytes + filler_size;
   }
 
-  DCHECK(old_top + aligned_size_in_bytes < high);
+  DCHECK(old_top + aligned_size_in_bytes <= high);
 
   if (allocation_info_.limit() < high) {
     // Either the limit has been lowered because linear allocation was disabled
@@ -1626,9 +1682,9 @@
   CHECK_EQ(current, to_space_.space_start());
 
   while (current != top()) {
-    if (!NewSpacePage::IsAtEnd(current)) {
+    if (!Page::IsAlignedToPageSize(current)) {
       // The allocation pointer should not be in the middle of an object.
-      CHECK(!NewSpacePage::FromLimit(current)->ContainsLimit(top()) ||
+      CHECK(!Page::FromAllocationAreaAddress(current)->ContainsLimit(top()) ||
             current < top());
 
       HeapObject* object = HeapObject::FromAddress(current);
@@ -1654,7 +1710,7 @@
       current += size;
     } else {
       // At end of page, switch to next page.
-      NewSpacePage* page = NewSpacePage::FromLimit(current)->next_page();
+      Page* page = Page::FromAllocationAreaAddress(current)->next_page();
       // Next page should be valid.
       CHECK(!page->is_anchor());
       current = page->area_start();
@@ -1690,15 +1746,12 @@
 
 bool SemiSpace::Commit() {
   DCHECK(!is_committed());
-  NewSpacePage* current = anchor();
+  Page* current = anchor();
   const int num_pages = current_capacity_ / Page::kPageSize;
   for (int pages_added = 0; pages_added < num_pages; pages_added++) {
-    NewSpacePage* new_page =
-        heap()
-            ->isolate()
-            ->memory_allocator()
-            ->AllocatePage<NewSpacePage, MemoryAllocator::kPooled>(
-                NewSpacePage::kAllocatableMemory, this, executable());
+    Page* new_page =
+        heap()->memory_allocator()->AllocatePage<MemoryAllocator::kPooled>(
+            Page::kAllocatableMemory, this, executable());
     if (new_page == nullptr) {
       RewindPages(current, pages_added);
       return false;
@@ -1720,13 +1773,14 @@
   DCHECK(is_committed());
   NewSpacePageIterator it(this);
   while (it.has_next()) {
-    heap()->isolate()->memory_allocator()->Free<MemoryAllocator::kPooled>(
+    heap()->memory_allocator()->Free<MemoryAllocator::kPooledAndQueue>(
         it.next());
   }
   anchor()->set_next_page(anchor());
   anchor()->set_prev_page(anchor());
   AccountUncommitted(current_capacity_);
   committed_ = false;
+  heap()->memory_allocator()->unmapper()->FreeQueuedChunks();
   return true;
 }
 
@@ -1746,21 +1800,18 @@
   if (!is_committed()) {
     if (!Commit()) return false;
   }
-  DCHECK_EQ(new_capacity & NewSpacePage::kPageAlignmentMask, 0);
+  DCHECK_EQ(new_capacity & Page::kPageAlignmentMask, 0);
   DCHECK_LE(new_capacity, maximum_capacity_);
   DCHECK_GT(new_capacity, current_capacity_);
   const int delta = new_capacity - current_capacity_;
   DCHECK(IsAligned(delta, base::OS::AllocateAlignment()));
-  int delta_pages = delta / NewSpacePage::kPageSize;
-  NewSpacePage* last_page = anchor()->prev_page();
+  const int delta_pages = delta / Page::kPageSize;
+  Page* last_page = anchor()->prev_page();
   DCHECK_NE(last_page, anchor());
   for (int pages_added = 0; pages_added < delta_pages; pages_added++) {
-    NewSpacePage* new_page =
-        heap()
-            ->isolate()
-            ->memory_allocator()
-            ->AllocatePage<NewSpacePage, MemoryAllocator::kPooled>(
-                NewSpacePage::kAllocatableMemory, this, executable());
+    Page* new_page =
+        heap()->memory_allocator()->AllocatePage<MemoryAllocator::kPooled>(
+            Page::kAllocatableMemory, this, executable());
     if (new_page == nullptr) {
       RewindPages(last_page, pages_added);
       return false;
@@ -1768,8 +1819,7 @@
     new_page->InsertAfter(last_page);
     Bitmap::Clear(new_page);
     // Duplicate the flags that was set on the old page.
-    new_page->SetFlags(last_page->GetFlags(),
-                       NewSpacePage::kCopyOnFlipFlagsMask);
+    new_page->SetFlags(last_page->GetFlags(), Page::kCopyOnFlipFlagsMask);
     last_page = new_page;
   }
   AccountCommitted(static_cast<intptr_t>(delta));
@@ -1777,9 +1827,9 @@
   return true;
 }
 
-void SemiSpace::RewindPages(NewSpacePage* start, int num_pages) {
-  NewSpacePage* new_last_page = nullptr;
-  NewSpacePage* last_page = start;
+void SemiSpace::RewindPages(Page* start, int num_pages) {
+  Page* new_last_page = nullptr;
+  Page* last_page = start;
   while (num_pages > 0) {
     DCHECK_NE(last_page, anchor());
     new_last_page = last_page->prev_page();
@@ -1791,25 +1841,26 @@
 }
 
 bool SemiSpace::ShrinkTo(int new_capacity) {
-  DCHECK_EQ(new_capacity & NewSpacePage::kPageAlignmentMask, 0);
+  DCHECK_EQ(new_capacity & Page::kPageAlignmentMask, 0);
   DCHECK_GE(new_capacity, minimum_capacity_);
   DCHECK_LT(new_capacity, current_capacity_);
   if (is_committed()) {
     const int delta = current_capacity_ - new_capacity;
     DCHECK(IsAligned(delta, base::OS::AllocateAlignment()));
-    int delta_pages = delta / NewSpacePage::kPageSize;
-    NewSpacePage* new_last_page;
-    NewSpacePage* last_page;
+    int delta_pages = delta / Page::kPageSize;
+    Page* new_last_page;
+    Page* last_page;
     while (delta_pages > 0) {
       last_page = anchor()->prev_page();
       new_last_page = last_page->prev_page();
       new_last_page->set_next_page(anchor());
       anchor()->set_prev_page(new_last_page);
-      heap()->isolate()->memory_allocator()->Free<MemoryAllocator::kPooled>(
+      heap()->memory_allocator()->Free<MemoryAllocator::kPooledAndQueue>(
           last_page);
       delta_pages--;
     }
     AccountUncommitted(static_cast<intptr_t>(delta));
+    heap()->memory_allocator()->unmapper()->FreeQueuedChunks();
   }
   current_capacity_ = new_capacity;
   return true;
@@ -1817,13 +1868,12 @@
 
 void SemiSpace::FixPagesFlags(intptr_t flags, intptr_t mask) {
   anchor_.set_owner(this);
-  // Fixup back-pointers to anchor. Address of anchor changes when we swap.
   anchor_.prev_page()->set_next_page(&anchor_);
   anchor_.next_page()->set_prev_page(&anchor_);
 
   NewSpacePageIterator it(this);
   while (it.has_next()) {
-    NewSpacePage* page = it.next();
+    Page* page = it.next();
     page->set_owner(this);
     page->SetFlags(flags, mask);
     if (id_ == kToSpace) {
@@ -1846,6 +1896,22 @@
   current_page_ = anchor_.next_page();
 }
 
+bool SemiSpace::ReplaceWithEmptyPage(Page* old_page) {
+  // TODO(mlippautz): We do not have to get a new page here when the semispace
+  // is uncommitted later on.
+  Page* new_page = heap()->memory_allocator()->AllocatePage(
+      Page::kAllocatableMemory, this, executable());
+  if (new_page == nullptr) return false;
+  Bitmap::Clear(new_page);
+  new_page->SetFlags(old_page->GetFlags(), Page::kCopyAllFlags);
+  new_page->set_next_page(old_page->next_page());
+  new_page->set_prev_page(old_page->prev_page());
+  old_page->next_page()->set_prev_page(new_page);
+  old_page->prev_page()->set_next_page(new_page);
+  heap()->CreateFillerObjectAt(new_page->area_start(), new_page->area_size(),
+                               ClearRecordedSlots::kNo);
+  return true;
+}
 
 void SemiSpace::Swap(SemiSpace* from, SemiSpace* to) {
   // We won't be swapping semispaces without data in them.
@@ -1863,13 +1929,13 @@
   std::swap(from->anchor_, to->anchor_);
   std::swap(from->current_page_, to->current_page_);
 
-  to->FixPagesFlags(saved_to_space_flags, NewSpacePage::kCopyOnFlipFlagsMask);
+  to->FixPagesFlags(saved_to_space_flags, Page::kCopyOnFlipFlagsMask);
   from->FixPagesFlags(0, 0);
 }
 
 
 void SemiSpace::set_age_mark(Address mark) {
-  DCHECK_EQ(NewSpacePage::FromLimit(mark)->semi_space(), this);
+  DCHECK_EQ(Page::FromAllocationAreaAddress(mark)->owner(), this);
   age_mark_ = mark;
   // Mark all pages up to the one containing mark.
   NewSpacePageIterator it(space_start(), mark);
@@ -1886,10 +1952,10 @@
 #ifdef VERIFY_HEAP
 void SemiSpace::Verify() {
   bool is_from_space = (id_ == kFromSpace);
-  NewSpacePage* page = anchor_.next_page();
-  CHECK(anchor_.semi_space() == this);
+  Page* page = anchor_.next_page();
+  CHECK(anchor_.owner() == this);
   while (page != &anchor_) {
-    CHECK_EQ(page->semi_space(), this);
+    CHECK_EQ(page->owner(), this);
     CHECK(page->InNewSpace());
     CHECK(page->IsFlagSet(is_from_space ? MemoryChunk::IN_FROM_SPACE
                                         : MemoryChunk::IN_TO_SPACE));
@@ -1917,10 +1983,10 @@
 #ifdef DEBUG
 void SemiSpace::AssertValidRange(Address start, Address end) {
   // Addresses belong to same semi-space
-  NewSpacePage* page = NewSpacePage::FromLimit(start);
-  NewSpacePage* end_page = NewSpacePage::FromLimit(end);
-  SemiSpace* space = page->semi_space();
-  CHECK_EQ(space, end_page->semi_space());
+  Page* page = Page::FromAllocationAreaAddress(start);
+  Page* end_page = Page::FromAllocationAreaAddress(end);
+  SemiSpace* space = reinterpret_cast<SemiSpace*>(page->owner());
+  CHECK_EQ(space, end_page->owner());
   // Start address is before end address, either on same page,
   // or end address is on a later page in the linked list of
   // semi-space pages.
@@ -2087,9 +2153,7 @@
 #ifdef DEBUG
   if (FLAG_heap_stats) {
     float pct = static_cast<float>(Available()) / TotalCapacity();
-    PrintF("  capacity: %" V8_PTR_PREFIX
-           "d"
-           ", available: %" V8_PTR_PREFIX "d, %%%d\n",
+    PrintF("  capacity: %" V8PRIdPTR ", available: %" V8PRIdPTR ", %%%d\n",
            TotalCapacity(), Available(), static_cast<int>(pct * 100));
     PrintF("\n  Object Histogram:\n");
     for (int i = 0; i <= LAST_TYPE; i++) {
@@ -2382,7 +2446,6 @@
   int new_node_size = 0;
   FreeSpace* new_node = FindNodeFor(size_in_bytes, &new_node_size);
   if (new_node == nullptr) return nullptr;
-  owner_->AllocationStep(new_node->address(), size_in_bytes);
 
   int bytes_left = new_node_size - size_in_bytes;
   DCHECK(bytes_left >= 0);
@@ -2409,7 +2472,8 @@
     // Keep the linear allocation area empty if requested to do so, just
     // return area back to the free list instead.
     owner_->Free(new_node->address() + size_in_bytes, bytes_left);
-    DCHECK(owner_->top() == NULL && owner_->limit() == NULL);
+    owner_->SetTopAndLimit(new_node->address() + size_in_bytes,
+                           new_node->address() + size_in_bytes);
   } else if (bytes_left > kThreshold &&
              owner_->heap()->incremental_marking()->IsMarkingIncomplete() &&
              FLAG_incremental_marking) {
@@ -2421,13 +2485,16 @@
                  new_node_size - size_in_bytes - linear_size);
     owner_->SetTopAndLimit(new_node->address() + size_in_bytes,
                            new_node->address() + size_in_bytes + linear_size);
-  } else if (bytes_left > 0) {
+  } else {
+    DCHECK(bytes_left >= 0);
     // Normally we give the rest of the node to the allocator as its new
     // linear allocation area.
     owner_->SetTopAndLimit(new_node->address() + size_in_bytes,
                            new_node->address() + new_node_size);
   }
 
+  owner_->AllocationStep(new_node->address(), size_in_bytes);
+
   return new_node;
 }
 
@@ -2596,7 +2663,7 @@
 void PagedSpace::EvictEvacuationCandidatesFromLinearAllocationArea() {
   if (allocation_info_.top() >= allocation_info_.limit()) return;
 
-  if (!Page::FromAllocationTop(allocation_info_.top())->CanAllocate()) {
+  if (!Page::FromAllocationAreaAddress(allocation_info_.top())->CanAllocate()) {
     // Create filler object to keep page iterable if it was iterable.
     int remaining =
         static_cast<int>(allocation_info_.limit() - allocation_info_.top());
@@ -2648,8 +2715,8 @@
     if (object != NULL) return object;
 
     // If sweeping is still in progress try to sweep pages on the main thread.
-    int max_freed = collector->SweepInParallel(heap()->paged_space(identity()),
-                                               size_in_bytes, kMaxPagesToSweep);
+    int max_freed = collector->sweeper().ParallelSweepSpace(
+        identity(), size_in_bytes, kMaxPagesToSweep);
     RefillFreeList();
     if (max_freed >= size_in_bytes) {
       object = free_list_.Allocate(size_in_bytes);
@@ -2815,11 +2882,8 @@
 
 void PagedSpace::ReportStatistics() {
   int pct = static_cast<int>(Available() * 100 / Capacity());
-  PrintF("  capacity: %" V8_PTR_PREFIX
-         "d"
-         ", waste: %" V8_PTR_PREFIX
-         "d"
-         ", available: %" V8_PTR_PREFIX "d, %%%d\n",
+  PrintF("  capacity: %" V8PRIdPTR ", waste: %" V8PRIdPTR
+         ", available: %" V8PRIdPTR ", %%%d\n",
          Capacity(), Waste(), Available(), pct);
 
   if (heap()->mark_compact_collector()->sweeping_in_progress()) {
@@ -2892,9 +2956,9 @@
     LOG(heap()->isolate(), DeleteEvent("LargeObjectChunk", page->address()));
 
     ObjectSpace space = static_cast<ObjectSpace>(1 << identity());
-    heap()->isolate()->memory_allocator()->PerformAllocationCallback(
+    heap()->memory_allocator()->PerformAllocationCallback(
         space, kAllocationActionFree, page->size());
-    heap()->isolate()->memory_allocator()->Free(page);
+    heap()->memory_allocator()->Free<MemoryAllocator::kFull>(page);
   }
   SetUp();
 }
@@ -2908,7 +2972,7 @@
     return AllocationResult::Retry(identity());
   }
 
-  LargePage* page = heap()->isolate()->memory_allocator()->AllocateLargePage(
+  LargePage* page = heap()->memory_allocator()->AllocateLargePage(
       object_size, this, executable);
   if (page == NULL) return AllocationResult::Retry(identity());
   DCHECK(page->area_size() >= object_size);
@@ -2977,7 +3041,7 @@
   if (e != NULL) {
     DCHECK(e->value != NULL);
     LargePage* page = reinterpret_cast<LargePage*>(e->value);
-    DCHECK(page->is_valid());
+    DCHECK(LargePage::IsValid(page));
     if (page->Contains(a)) {
       return page;
     }
@@ -3037,7 +3101,7 @@
                           static_cast<uint32_t>(key));
       }
 
-      heap()->QueueMemoryChunkForFree(page);
+      heap()->memory_allocator()->Free<MemoryAllocator::kPreFreeAndQueue>(page);
     }
   }
 }
@@ -3115,7 +3179,7 @@
 
 
 void LargeObjectSpace::ReportStatistics() {
-  PrintF("  size: %" V8_PTR_PREFIX "d\n", size_);
+  PrintF("  size: %" V8PRIdPTR "\n", size_);
   int num_objects = 0;
   ClearHistograms(heap()->isolate());
   LargeObjectIterator it(this);
@@ -3126,7 +3190,7 @@
 
   PrintF(
       "  number of objects %d, "
-      "size of objects %" V8_PTR_PREFIX "d\n",
+      "size of objects %" V8PRIdPTR "\n",
       num_objects, objects_size_);
   if (num_objects > 0) ReportHistogram(heap()->isolate(), false);
 }
diff --git a/src/heap/spaces.h b/src/heap/spaces.h
index 93a81cc..67e9aae 100644
--- a/src/heap/spaces.h
+++ b/src/heap/spaces.h
@@ -5,8 +5,10 @@
 #ifndef V8_HEAP_SPACES_H_
 #define V8_HEAP_SPACES_H_
 
+#include <list>
+
 #include "src/allocation.h"
-#include "src/atomic-utils.h"
+#include "src/base/atomic-utils.h"
 #include "src/base/atomicops.h"
 #include "src/base/bits.h"
 #include "src/base/platform/mutex.h"
@@ -27,7 +29,6 @@
 class Isolate;
 class MemoryAllocator;
 class MemoryChunk;
-class NewSpacePage;
 class Page;
 class PagedSpace;
 class SemiSpace;
@@ -419,6 +420,10 @@
     // to grey transition is performed in the value.
     HAS_PROGRESS_BAR,
 
+    // |PAGE_NEW_OLD_PROMOTION|: A page tagged with this flag has been promoted
+    // from new to old space during evacuation.
+    PAGE_NEW_OLD_PROMOTION,
+
     // A black page has all mark bits set to 1 (black). A black page currently
     // cannot be iterated because it is not swept. Moreover live bytes are also
     // not updated.
@@ -437,10 +442,17 @@
     // still has to be performed.
     PRE_FREED,
 
+    // |POOLED|: When actually freeing this chunk, only uncommit and do not
+    // give up the reservation as we still reuse the chunk at some point.
+    POOLED,
+
     // |COMPACTION_WAS_ABORTED|: Indicates that the compaction in this page
     //   has been aborted and needs special handling by the sweeper.
     COMPACTION_WAS_ABORTED,
 
+    // |ANCHOR|: Flag is set if page is an anchor.
+    ANCHOR,
+
     // Last flag, keep at bottom.
     NUM_MEMORY_CHUNK_FLAGS
   };
@@ -548,7 +560,7 @@
     if (mark == nullptr) return;
     // Need to subtract one from the mark because when a chunk is full the
     // top points to the next address after the chunk, which effectively belongs
-    // to another chunk. See the comment to Page::FromAllocationTop.
+    // to another chunk. See the comment to Page::FromTopOrLimit.
     MemoryChunk* chunk = MemoryChunk::FromAddress(mark - 1);
     intptr_t new_mark = static_cast<intptr_t>(mark - chunk->address());
     intptr_t old_mark = 0;
@@ -558,9 +570,9 @@
              !chunk->high_water_mark_.TrySetValue(old_mark, new_mark));
   }
 
-  Address address() { return reinterpret_cast<Address>(this); }
+  static bool IsValid(MemoryChunk* chunk) { return chunk != nullptr; }
 
-  bool is_valid() { return address() != NULL; }
+  Address address() { return reinterpret_cast<Address>(this); }
 
   base::Mutex* mutex() { return mutex_; }
 
@@ -574,7 +586,7 @@
     return addr >= area_start() && addr <= area_end();
   }
 
-  AtomicValue<ConcurrentSweepingState>& concurrent_sweeping_state() {
+  base::AtomicValue<ConcurrentSweepingState>& concurrent_sweeping_state() {
     return concurrent_sweeping_;
   }
 
@@ -788,20 +800,20 @@
 
   // Assuming the initial allocation on a page is sequential,
   // count highest number of bytes ever allocated on the page.
-  AtomicValue<intptr_t> high_water_mark_;
+  base::AtomicValue<intptr_t> high_water_mark_;
 
   base::Mutex* mutex_;
 
-  AtomicValue<ConcurrentSweepingState> concurrent_sweeping_;
+  base::AtomicValue<ConcurrentSweepingState> concurrent_sweeping_;
 
   // PagedSpace free-list statistics.
-  AtomicNumber<intptr_t> available_in_free_list_;
-  AtomicNumber<intptr_t> wasted_memory_;
+  base::AtomicNumber<intptr_t> available_in_free_list_;
+  base::AtomicNumber<intptr_t> wasted_memory_;
 
   // next_chunk_ holds a pointer of type MemoryChunk
-  AtomicValue<MemoryChunk*> next_chunk_;
+  base::AtomicValue<MemoryChunk*> next_chunk_;
   // prev_chunk_ holds a pointer of type MemoryChunk
-  AtomicValue<MemoryChunk*> prev_chunk_;
+  base::AtomicValue<MemoryChunk*> prev_chunk_;
 
   FreeListCategory categories_[kNumberOfCategories];
 
@@ -817,59 +829,15 @@
 //
 // The only way to get a page pointer is by calling factory methods:
 //   Page* p = Page::FromAddress(addr); or
-//   Page* p = Page::FromAllocationTop(top);
+//   Page* p = Page::FromTopOrLimit(top);
 class Page : public MemoryChunk {
  public:
-  // Returns the page containing a given address. The address ranges
-  // from [page_addr .. page_addr + kPageSize[
-  // This only works if the object is in fact in a page.  See also MemoryChunk::
-  // FromAddress() and FromAnyAddress().
-  INLINE(static Page* FromAddress(Address a)) {
-    return reinterpret_cast<Page*>(OffsetFrom(a) & ~kPageAlignmentMask);
-  }
+  static const intptr_t kCopyAllFlags = ~0;
 
-  // Only works for addresses in pointer spaces, not code space.
-  inline static Page* FromAnyPointerAddress(Heap* heap, Address addr);
-
-  // Returns the page containing an allocation top. Because an allocation
-  // top address can be the upper bound of the page, we need to subtract
-  // it with kPointerSize first. The address ranges from
-  // [page_addr + kObjectStartOffset .. page_addr + kPageSize].
-  INLINE(static Page* FromAllocationTop(Address top)) {
-    Page* p = FromAddress(top - kPointerSize);
-    return p;
-  }
-
-  // Returns the next page in the chain of pages owned by a space.
-  inline Page* next_page() {
-    DCHECK(next_chunk()->owner() == owner());
-    return static_cast<Page*>(next_chunk());
-  }
-  inline Page* prev_page() {
-    DCHECK(prev_chunk()->owner() == owner());
-    return static_cast<Page*>(prev_chunk());
-  }
-  inline void set_next_page(Page* page);
-  inline void set_prev_page(Page* page);
-
-  // Checks whether an address is page aligned.
-  static bool IsAlignedToPageSize(Address a) {
-    return 0 == (OffsetFrom(a) & kPageAlignmentMask);
-  }
-
-  // Returns the offset of a given address to this page.
-  INLINE(int Offset(Address a)) {
-    int offset = static_cast<int>(a - address());
-    return offset;
-  }
-
-  // Returns the address for a given offset to the this page.
-  Address OffsetToAddress(int offset) {
-    DCHECK_PAGE_OFFSET(offset);
-    return address() + offset;
-  }
-
-  // ---------------------------------------------------------------------
+  // Page flags copied from from-space to to-space when flipping semispaces.
+  static const intptr_t kCopyOnFlipFlagsMask =
+      (1 << MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING) |
+      (1 << MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
 
   // Maximum object size that gets allocated into regular pages. Objects larger
   // than that size are allocated in large object space and are never moved in
@@ -880,12 +848,71 @@
   // short living objects >256K.
   static const int kMaxRegularHeapObjectSize = 600 * KB;
 
-  inline void ClearGCFields();
+  static inline Page* ConvertNewToOld(Page* old_page, PagedSpace* new_owner);
 
-  static inline Page* Initialize(Heap* heap, MemoryChunk* chunk,
-                                 Executability executable, PagedSpace* owner);
+  // Returns the page containing a given address. The address ranges
+  // from [page_addr .. page_addr + kPageSize[. This only works if the object
+  // is in fact in a page.
+  static Page* FromAddress(Address addr) {
+    return reinterpret_cast<Page*>(OffsetFrom(addr) & ~kPageAlignmentMask);
+  }
 
-  void InitializeAsAnchor(PagedSpace* owner);
+  // Returns the page containing the address provided. The address can
+  // potentially point righter after the page. To be also safe for tagged values
+  // we subtract a hole word. The valid address ranges from
+  // [page_addr + kObjectStartOffset .. page_addr + kPageSize + kPointerSize].
+  static Page* FromAllocationAreaAddress(Address address) {
+    return Page::FromAddress(address - kPointerSize);
+  }
+
+  // Checks if address1 and address2 are on the same new space page.
+  static bool OnSamePage(Address address1, Address address2) {
+    return Page::FromAddress(address1) == Page::FromAddress(address2);
+  }
+
+  // Checks whether an address is page aligned.
+  static bool IsAlignedToPageSize(Address addr) {
+    return (OffsetFrom(addr) & kPageAlignmentMask) == 0;
+  }
+
+  static bool IsAtObjectStart(Address addr) {
+    return (reinterpret_cast<intptr_t>(addr) & kPageAlignmentMask) ==
+           kObjectStartOffset;
+  }
+
+  inline static Page* FromAnyPointerAddress(Heap* heap, Address addr);
+
+  // Create a Page object that is only used as anchor for the doubly-linked
+  // list of real pages.
+  explicit Page(Space* owner) { InitializeAsAnchor(owner); }
+
+  inline void MarkNeverAllocateForTesting();
+  inline void MarkEvacuationCandidate();
+  inline void ClearEvacuationCandidate();
+
+  Page* next_page() { return static_cast<Page*>(next_chunk()); }
+  Page* prev_page() { return static_cast<Page*>(prev_chunk()); }
+  void set_next_page(Page* page) { set_next_chunk(page); }
+  void set_prev_page(Page* page) { set_prev_chunk(page); }
+
+  template <typename Callback>
+  inline void ForAllFreeListCategories(Callback callback) {
+    for (int i = kFirstCategory; i < kNumberOfCategories; i++) {
+      callback(&categories_[i]);
+    }
+  }
+
+  // Returns the offset of a given address to this page.
+  inline int Offset(Address a) {
+    int offset = static_cast<int>(a - address());
+    return offset;
+  }
+
+  // Returns the address for a given offset to the this page.
+  Address OffsetToAddress(int offset) {
+    DCHECK_PAGE_OFFSET(offset);
+    return address() + offset;
+  }
 
   // WaitUntilSweepingCompleted only works when concurrent sweeping is in
   // progress. In particular, when we know that right before this call a
@@ -907,42 +934,39 @@
                             available_in_free_list());
   }
 
-  template <typename Callback>
-  inline void ForAllFreeListCategories(Callback callback) {
-    for (int i = kFirstCategory; i < kNumberOfCategories; i++) {
-      callback(&categories_[i]);
-    }
-  }
-
   FreeListCategory* free_list_category(FreeListCategoryType type) {
     return &categories_[type];
   }
 
-#define FRAGMENTATION_STATS_ACCESSORS(type, name)        \
-  type name() { return name##_.Value(); }                \
-  void set_##name(type name) { name##_.SetValue(name); } \
-  void add_##name(type name) { name##_.Increment(name); }
+  bool is_anchor() { return IsFlagSet(Page::ANCHOR); }
 
-  FRAGMENTATION_STATS_ACCESSORS(intptr_t, wasted_memory)
-  FRAGMENTATION_STATS_ACCESSORS(intptr_t, available_in_free_list)
-
-#undef FRAGMENTATION_STATS_ACCESSORS
+  intptr_t wasted_memory() { return wasted_memory_.Value(); }
+  void add_wasted_memory(intptr_t waste) { wasted_memory_.Increment(waste); }
+  intptr_t available_in_free_list() { return available_in_free_list_.Value(); }
+  void add_available_in_free_list(intptr_t available) {
+    available_in_free_list_.Increment(available);
+  }
 
 #ifdef DEBUG
   void Print();
 #endif  // DEBUG
 
-  inline void MarkNeverAllocateForTesting();
-  inline void MarkEvacuationCandidate();
-  inline void ClearEvacuationCandidate();
-
  private:
+  enum InitializationMode { kFreeMemory, kDoNotFreeMemory };
+
+  template <InitializationMode mode = kFreeMemory>
+  static inline Page* Initialize(Heap* heap, MemoryChunk* chunk,
+                                 Executability executable, PagedSpace* owner);
+  static inline Page* Initialize(Heap* heap, MemoryChunk* chunk,
+                                 Executability executable, SemiSpace* owner);
+
   inline void InitializeFreeListCategories();
 
+  void InitializeAsAnchor(Space* owner);
+
   friend class MemoryAllocator;
 };
 
-
 class LargePage : public MemoryChunk {
  public:
   HeapObject* GetObject() { return HeapObject::FromAddress(area_start()); }
@@ -960,7 +984,8 @@
   static const int kMaxCodePageSize = 512 * MB;
 
  private:
-  static inline LargePage* Initialize(Heap* heap, MemoryChunk* chunk);
+  static inline LargePage* Initialize(Heap* heap, MemoryChunk* chunk,
+                                      Executability executable, Space* owner);
 
   friend class MemoryAllocator;
 };
@@ -1036,11 +1061,6 @@
     }
   }
 
-#ifdef DEBUG
-  virtual void Print() = 0;
-#endif
-
- protected:
   void AccountCommitted(intptr_t bytes) {
     DCHECK_GE(bytes, 0);
     committed_ += bytes;
@@ -1055,6 +1075,11 @@
     DCHECK_GE(committed_, 0);
   }
 
+#ifdef DEBUG
+  virtual void Print() = 0;
+#endif
+
+ protected:
   v8::base::SmartPointer<List<AllocationObserver*>> allocation_observers_;
   bool allocation_observers_paused_;
 
@@ -1242,45 +1267,113 @@
 // A space acquires chunks of memory from the operating system. The memory
 // allocator allocated and deallocates pages for the paged heap spaces and large
 // pages for large object space.
-//
-// Each space has to manage it's own pages.
-//
 class MemoryAllocator {
  public:
+  // Unmapper takes care of concurrently unmapping and uncommitting memory
+  // chunks.
+  class Unmapper {
+   public:
+    class UnmapFreeMemoryTask;
+
+    explicit Unmapper(MemoryAllocator* allocator)
+        : allocator_(allocator),
+          pending_unmapping_tasks_semaphore_(0),
+          concurrent_unmapping_tasks_active_(0) {}
+
+    void AddMemoryChunkSafe(MemoryChunk* chunk) {
+      if ((chunk->size() == Page::kPageSize) &&
+          (chunk->executable() != EXECUTABLE)) {
+        AddMemoryChunkSafe<kRegular>(chunk);
+      } else {
+        AddMemoryChunkSafe<kNonRegular>(chunk);
+      }
+    }
+
+    MemoryChunk* TryGetPooledMemoryChunkSafe() {
+      // Procedure:
+      // (1) Try to get a chunk that was declared as pooled and already has
+      // been uncommitted.
+      // (2) Try to steal any memory chunk of kPageSize that would've been
+      // unmapped.
+      MemoryChunk* chunk = GetMemoryChunkSafe<kPooled>();
+      if (chunk == nullptr) {
+        chunk = GetMemoryChunkSafe<kRegular>();
+        if (chunk != nullptr) {
+          // For stolen chunks we need to manually free any allocated memory.
+          chunk->ReleaseAllocatedMemory();
+        }
+      }
+      return chunk;
+    }
+
+    void FreeQueuedChunks();
+    bool WaitUntilCompleted();
+
+   private:
+    enum ChunkQueueType {
+      kRegular,     // Pages of kPageSize that do not live in a CodeRange and
+                    // can thus be used for stealing.
+      kNonRegular,  // Large chunks and executable chunks.
+      kPooled,      // Pooled chunks, already uncommited and ready for reuse.
+      kNumberOfChunkQueues,
+    };
+
+    template <ChunkQueueType type>
+    void AddMemoryChunkSafe(MemoryChunk* chunk) {
+      base::LockGuard<base::Mutex> guard(&mutex_);
+      chunks_[type].push_back(chunk);
+    }
+
+    template <ChunkQueueType type>
+    MemoryChunk* GetMemoryChunkSafe() {
+      base::LockGuard<base::Mutex> guard(&mutex_);
+      if (chunks_[type].empty()) return nullptr;
+      MemoryChunk* chunk = chunks_[type].front();
+      chunks_[type].pop_front();
+      return chunk;
+    }
+
+    void PerformFreeMemoryOnQueuedChunks();
+
+    base::Mutex mutex_;
+    MemoryAllocator* allocator_;
+    std::list<MemoryChunk*> chunks_[kNumberOfChunkQueues];
+    base::Semaphore pending_unmapping_tasks_semaphore_;
+    intptr_t concurrent_unmapping_tasks_active_;
+
+    friend class MemoryAllocator;
+  };
+
   enum AllocationMode {
     kRegular,
     kPooled,
   };
+  enum FreeMode {
+    kFull,
+    kPreFreeAndQueue,
+    kPooledAndQueue,
+  };
 
   explicit MemoryAllocator(Isolate* isolate);
 
   // Initializes its internal bookkeeping structures.
   // Max capacity of the total space and executable memory limit.
-  bool SetUp(intptr_t max_capacity, intptr_t capacity_executable);
+  bool SetUp(intptr_t max_capacity, intptr_t capacity_executable,
+             intptr_t code_range_size);
 
   void TearDown();
 
-  // Allocates either Page or NewSpacePage from the allocator. AllocationMode
-  // is used to indicate whether pooled allocation, which only works for
-  // MemoryChunk::kPageSize, should be tried first.
-  template <typename PageType, MemoryAllocator::AllocationMode mode = kRegular,
+  // Allocates a Page from the allocator. AllocationMode is used to indicate
+  // whether pooled allocation, which only works for MemoryChunk::kPageSize,
+  // should be tried first.
+  template <MemoryAllocator::AllocationMode alloc_mode = kRegular,
             typename SpaceType>
-  PageType* AllocatePage(intptr_t size, SpaceType* owner,
-                         Executability executable);
+  Page* AllocatePage(intptr_t size, SpaceType* owner, Executability executable);
 
-  LargePage* AllocateLargePage(intptr_t object_size, Space* owner,
+  LargePage* AllocateLargePage(intptr_t size, LargeObjectSpace* owner,
                                Executability executable);
 
-  // PreFree logically frees the object, i.e., it takes care of the size
-  // bookkeeping and calls the allocation callback.
-  void PreFreeMemory(MemoryChunk* chunk);
-
-  // FreeMemory can be called concurrently when PreFree was executed before.
-  void PerformFreeMemory(MemoryChunk* chunk);
-
-  // Free is a wrapper method. For kRegular AllocationMode it  calls PreFree and
-  // PerformFreeMemory together. For kPooled it will dispatch to pooled free.
-  template <MemoryAllocator::AllocationMode mode = kRegular>
+  template <MemoryAllocator::FreeMode mode = kFull>
   void Free(MemoryChunk* chunk);
 
   // Returns allocated spaces in bytes.
@@ -1385,34 +1478,43 @@
                                               Address start, size_t commit_size,
                                               size_t reserved_size);
 
+  CodeRange* code_range() { return code_range_; }
+  Unmapper* unmapper() { return &unmapper_; }
+
  private:
+  // PreFree logically frees the object, i.e., it takes care of the size
+  // bookkeeping and calls the allocation callback.
+  void PreFreeMemory(MemoryChunk* chunk);
+
+  // FreeMemory can be called concurrently when PreFree was executed before.
+  void PerformFreeMemory(MemoryChunk* chunk);
+
   // See AllocatePage for public interface. Note that currently we only support
   // pools for NOT_EXECUTABLE pages of size MemoryChunk::kPageSize.
   template <typename SpaceType>
   MemoryChunk* AllocatePagePooled(SpaceType* owner);
 
-  // Free that chunk into the pool.
-  void FreePooled(MemoryChunk* chunk);
-
   Isolate* isolate_;
 
+  CodeRange* code_range_;
+
   // Maximum space size in bytes.
   intptr_t capacity_;
   // Maximum subset of capacity_ that can be executable
   intptr_t capacity_executable_;
 
   // Allocated space size in bytes.
-  AtomicNumber<intptr_t> size_;
+  base::AtomicNumber<intptr_t> size_;
   // Allocated executable space size in bytes.
-  AtomicNumber<intptr_t> size_executable_;
+  base::AtomicNumber<intptr_t> size_executable_;
 
   // We keep the lowest and highest addresses allocated as a quick way
   // of determining that pointers are outside the heap. The estimate is
   // conservative, i.e. not all addrsses in 'allocated' space are allocated
   // to our heap. The range is [lowest, highest[, inclusive on the low end
   // and exclusive on the high end.
-  AtomicValue<void*> lowest_ever_allocated_;
-  AtomicValue<void*> highest_ever_allocated_;
+  base::AtomicValue<void*> lowest_ever_allocated_;
+  base::AtomicValue<void*> highest_ever_allocated_;
 
   struct MemoryAllocationCallbackRegistration {
     MemoryAllocationCallbackRegistration(MemoryAllocationCallback callback,
@@ -1447,7 +1549,10 @@
     } while ((high > ptr) && !highest_ever_allocated_.TrySetValue(ptr, high));
   }
 
-  List<MemoryChunk*> chunk_pool_;
+  base::VirtualMemory last_chunk_;
+  Unmapper unmapper_;
+
+  friend class TestCodeRangeScope;
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(MemoryAllocator);
 };
@@ -1572,7 +1677,8 @@
 
 #ifdef DEBUG
   bool VerifyPagedAllocation() {
-    return (Page::FromAllocationTop(top_) == Page::FromAllocationTop(limit_)) &&
+    return (Page::FromAllocationAreaAddress(top_) ==
+            Page::FromAllocationAreaAddress(limit_)) &&
            (top_ <= limit_);
   }
 #endif
@@ -1872,7 +1978,7 @@
   FreeListCategory* top(FreeListCategoryType type) { return categories_[type]; }
 
   PagedSpace* owner_;
-  AtomicNumber<intptr_t> wasted_bytes_;
+  base::AtomicNumber<intptr_t> wasted_bytes_;
   FreeListCategory* categories_[kNumberOfCategories];
 
   friend class FreeListCategory;
@@ -2152,12 +2258,6 @@
   static void ResetCodeStatistics(Isolate* isolate);
 #endif
 
-  // This function tries to steal size_in_bytes memory from the sweeper threads
-  // free-lists. If it does not succeed stealing enough memory, it will wait
-  // for the sweeper threads to finish sweeping.
-  // It returns true when sweeping is completed and false otherwise.
-  bool EnsureSweeperProgress(intptr_t size_in_bytes);
-
   Page* FirstPage() { return anchor_.next_page(); }
   Page* LastPage() { return anchor_.prev_page(); }
 
@@ -2283,83 +2383,8 @@
   const char* name_;
 };
 
-
 enum SemiSpaceId { kFromSpace = 0, kToSpace = 1 };
 
-
-class NewSpacePage : public MemoryChunk {
- public:
-  static inline NewSpacePage* Initialize(Heap* heap, MemoryChunk* chunk,
-                                         Executability executable,
-                                         SemiSpace* owner);
-
-  static bool IsAtStart(Address addr) {
-    return (reinterpret_cast<intptr_t>(addr) & Page::kPageAlignmentMask) ==
-           kObjectStartOffset;
-  }
-
-  static bool IsAtEnd(Address addr) {
-    return (reinterpret_cast<intptr_t>(addr) & Page::kPageAlignmentMask) == 0;
-  }
-
-  // Finds the NewSpacePage containing the given address.
-  static inline NewSpacePage* FromAddress(Address address_in_page) {
-    Address page_start =
-        reinterpret_cast<Address>(reinterpret_cast<uintptr_t>(address_in_page) &
-                                  ~Page::kPageAlignmentMask);
-    NewSpacePage* page = reinterpret_cast<NewSpacePage*>(page_start);
-    return page;
-  }
-
-  // Find the page for a limit address. A limit address is either an address
-  // inside a page, or the address right after the last byte of a page.
-  static inline NewSpacePage* FromLimit(Address address_limit) {
-    return NewSpacePage::FromAddress(address_limit - 1);
-  }
-
-  // Checks if address1 and address2 are on the same new space page.
-  static inline bool OnSamePage(Address address1, Address address2) {
-    return NewSpacePage::FromAddress(address1) ==
-           NewSpacePage::FromAddress(address2);
-  }
-
-  inline NewSpacePage* next_page() {
-    return static_cast<NewSpacePage*>(next_chunk());
-  }
-
-  inline void set_next_page(NewSpacePage* page) { set_next_chunk(page); }
-
-  inline NewSpacePage* prev_page() {
-    return static_cast<NewSpacePage*>(prev_chunk());
-  }
-
-  inline void set_prev_page(NewSpacePage* page) { set_prev_chunk(page); }
-
-  SemiSpace* semi_space() { return reinterpret_cast<SemiSpace*>(owner()); }
-
-  bool is_anchor() { return !this->InNewSpace(); }
-
- private:
-  // GC related flags copied from from-space to to-space when
-  // flipping semispaces.
-  static const intptr_t kCopyOnFlipFlagsMask =
-      (1 << MemoryChunk::POINTERS_TO_HERE_ARE_INTERESTING) |
-      (1 << MemoryChunk::POINTERS_FROM_HERE_ARE_INTERESTING);
-
-  // Create a NewSpacePage object that is only used as anchor
-  // for the doubly-linked list of real pages.
-  explicit NewSpacePage(SemiSpace* owner) { InitializeAsAnchor(owner); }
-
-  // Intialize a fake NewSpacePage used as sentinel at the ends
-  // of a doubly-linked list of real NewSpacePages.
-  // Only uses the prev/next links, and sets flags to not be in new-space.
-  void InitializeAsAnchor(SemiSpace* owner);
-
-  friend class SemiSpace;
-  friend class SemiSpaceIterator;
-};
-
-
 // -----------------------------------------------------------------------------
 // SemiSpace in young generation
 //
@@ -2408,8 +2433,8 @@
     return anchor_.next_page()->area_start();
   }
 
-  NewSpacePage* first_page() { return anchor_.next_page(); }
-  NewSpacePage* current_page() { return current_page_; }
+  Page* first_page() { return anchor_.next_page(); }
+  Page* current_page() { return current_page_; }
 
   // Returns one past the end address of the space.
   Address space_end() { return anchor_.prev_page()->area_end(); }
@@ -2421,7 +2446,7 @@
   Address page_high() { return current_page_->area_end(); }
 
   bool AdvancePage() {
-    NewSpacePage* next_page = current_page_->next_page();
+    Page* next_page = current_page_->next_page();
     if (next_page == anchor()) return false;
     current_page_ = next_page;
     return true;
@@ -2430,6 +2455,8 @@
   // Resets the space to using the first page.
   void Reset();
 
+  bool ReplaceWithEmptyPage(Page* page);
+
   // Age mark accessors.
   Address age_mark() { return age_mark_; }
   void set_age_mark(Address mark);
@@ -2479,9 +2506,9 @@
 #endif
 
  private:
-  void RewindPages(NewSpacePage* start, int num_pages);
+  void RewindPages(Page* start, int num_pages);
 
-  inline NewSpacePage* anchor() { return &anchor_; }
+  inline Page* anchor() { return &anchor_; }
 
   // Copies the flags into the masked positions on all pages in the space.
   void FixPagesFlags(intptr_t flags, intptr_t flag_mask);
@@ -2501,8 +2528,8 @@
   bool committed_;
   SemiSpaceId id_;
 
-  NewSpacePage anchor_;
-  NewSpacePage* current_page_;
+  Page anchor_;
+  Page* current_page_;
 
   friend class SemiSpaceIterator;
   friend class NewSpacePageIterator;
@@ -2550,15 +2577,15 @@
   inline NewSpacePageIterator(Address start, Address limit);
 
   inline bool has_next();
-  inline NewSpacePage* next();
+  inline Page* next();
 
  private:
-  NewSpacePage* prev_page_;  // Previous page returned.
+  Page* prev_page_;  // Previous page returned.
   // Next page that will be returned.  Cached here so that we can use this
   // iterator for operations that deallocate pages.
-  NewSpacePage* next_page_;
+  Page* next_page_;
   // Last page returned.
-  NewSpacePage* last_page_;
+  Page* last_page_;
 };
 
 
@@ -2607,7 +2634,7 @@
 
   // Return the allocated bytes in the active semispace.
   intptr_t Size() override {
-    return pages_used_ * NewSpacePage::kAllocatableMemory +
+    return pages_used_ * Page::kAllocatableMemory +
            static_cast<int>(top() - to_space_.page_low());
   }
 
@@ -2620,7 +2647,7 @@
   intptr_t Capacity() {
     SLOW_DCHECK(to_space_.current_capacity() == from_space_.current_capacity());
     return (to_space_.current_capacity() / Page::kPageSize) *
-           NewSpacePage::kAllocatableMemory;
+           Page::kAllocatableMemory;
   }
 
   // Return the current size of a semispace, allocatable and non-allocatable
@@ -2650,9 +2677,9 @@
   size_t AllocatedSinceLastGC() {
     bool seen_age_mark = false;
     Address age_mark = to_space_.age_mark();
-    NewSpacePage* current_page = to_space_.first_page();
-    NewSpacePage* age_mark_page = NewSpacePage::FromAddress(age_mark);
-    NewSpacePage* last_page = NewSpacePage::FromAddress(top() - kPointerSize);
+    Page* current_page = to_space_.first_page();
+    Page* age_mark_page = Page::FromAddress(age_mark);
+    Page* last_page = Page::FromAddress(top() - kPointerSize);
     if (age_mark_page == last_page) {
       if (top() - age_mark >= 0) {
         return top() - age_mark;
@@ -2675,7 +2702,7 @@
     DCHECK_EQ(current_page, age_mark_page);
     current_page = age_mark_page->next_page();
     while (current_page != last_page) {
-      allocated += NewSpacePage::kAllocatableMemory;
+      allocated += Page::kAllocatableMemory;
       current_page = current_page->next_page();
     }
     allocated += top() - current_page->area_start();
@@ -2684,6 +2711,12 @@
     return static_cast<size_t>(allocated);
   }
 
+  bool ReplaceWithEmptyPage(Page* page) {
+    // This method is called after flipping the semispace.
+    DCHECK(page->InFromSpace());
+    return from_space_.ReplaceWithEmptyPage(page);
+  }
+
   // Return the maximum capacity of a semispace.
   int MaximumCapacity() {
     DCHECK(to_space_.maximum_capacity() == from_space_.maximum_capacity());
diff --git a/src/i18n.cc b/src/i18n.cc
index 623de50..b64fc17 100644
--- a/src/i18n.cc
+++ b/src/i18n.cc
@@ -768,28 +768,12 @@
   return NULL;
 }
 
-
-template<class T>
-void DeleteNativeObjectAt(const v8::WeakCallbackData<v8::Value, void>& data,
-                          int index) {
-  v8::Local<v8::Object> obj = v8::Local<v8::Object>::Cast(data.GetValue());
-  delete reinterpret_cast<T*>(obj->GetAlignedPointerFromInternalField(index));
-}
-
-
-static void DestroyGlobalHandle(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
+void DateFormat::DeleteDateFormat(const v8::WeakCallbackInfo<void>& data) {
+  delete reinterpret_cast<icu::SimpleDateFormat*>(data.GetInternalField(0));
   GlobalHandles::Destroy(reinterpret_cast<Object**>(data.GetParameter()));
 }
 
 
-void DateFormat::DeleteDateFormat(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
-  DeleteNativeObjectAt<icu::SimpleDateFormat>(data, 0);
-  DestroyGlobalHandle(data);
-}
-
-
 icu::DecimalFormat* NumberFormat::InitializeNumberFormat(
     Isolate* isolate,
     Handle<String> locale,
@@ -847,11 +831,9 @@
   return NULL;
 }
 
-
-void NumberFormat::DeleteNumberFormat(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
-  DeleteNativeObjectAt<icu::DecimalFormat>(data, 0);
-  DestroyGlobalHandle(data);
+void NumberFormat::DeleteNumberFormat(const v8::WeakCallbackInfo<void>& data) {
+  delete reinterpret_cast<icu::DecimalFormat*>(data.GetInternalField(0));
+  GlobalHandles::Destroy(reinterpret_cast<Object**>(data.GetParameter()));
 }
 
 
@@ -908,11 +890,9 @@
   return NULL;
 }
 
-
-void Collator::DeleteCollator(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
-  DeleteNativeObjectAt<icu::Collator>(data, 0);
-  DestroyGlobalHandle(data);
+void Collator::DeleteCollator(const v8::WeakCallbackInfo<void>& data) {
+  delete reinterpret_cast<icu::Collator*>(data.GetInternalField(0));
+  GlobalHandles::Destroy(reinterpret_cast<Object**>(data.GetParameter()));
 }
 
 
@@ -973,12 +953,11 @@
   return NULL;
 }
 
-
 void BreakIterator::DeleteBreakIterator(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
-  DeleteNativeObjectAt<icu::BreakIterator>(data, 0);
-  DeleteNativeObjectAt<icu::UnicodeString>(data, 1);
-  DestroyGlobalHandle(data);
+    const v8::WeakCallbackInfo<void>& data) {
+  delete reinterpret_cast<icu::BreakIterator*>(data.GetInternalField(0));
+  delete reinterpret_cast<icu::UnicodeString*>(data.GetInternalField(1));
+  GlobalHandles::Destroy(reinterpret_cast<Object**>(data.GetParameter()));
 }
 
 }  // namespace internal
diff --git a/src/i18n.h b/src/i18n.h
index a8db4d1..2a4c208 100644
--- a/src/i18n.h
+++ b/src/i18n.h
@@ -51,8 +51,7 @@
 
   // Release memory we allocated for the DateFormat once the JS object that
   // holds the pointer gets garbage collected.
-  static void DeleteDateFormat(
-      const v8::WeakCallbackData<v8::Value, void>& data);
+  static void DeleteDateFormat(const v8::WeakCallbackInfo<void>& data);
 
  private:
   DateFormat();
@@ -75,8 +74,7 @@
 
   // Release memory we allocated for the NumberFormat once the JS object that
   // holds the pointer gets garbage collected.
-  static void DeleteNumberFormat(
-      const v8::WeakCallbackData<v8::Value, void>& data);
+  static void DeleteNumberFormat(const v8::WeakCallbackInfo<void>& data);
 
  private:
   NumberFormat();
@@ -98,8 +96,7 @@
 
   // Release memory we allocated for the Collator once the JS object that holds
   // the pointer gets garbage collected.
-  static void DeleteCollator(
-      const v8::WeakCallbackData<v8::Value, void>& data);
+  static void DeleteCollator(const v8::WeakCallbackInfo<void>& data);
 
  private:
   Collator();
@@ -121,8 +118,7 @@
 
   // Release memory we allocated for the BreakIterator once the JS object that
   // holds the pointer gets garbage collected.
-  static void DeleteBreakIterator(
-      const v8::WeakCallbackData<v8::Value, void>& data);
+  static void DeleteBreakIterator(const v8::WeakCallbackInfo<void>& data);
 
  private:
   BreakIterator();
diff --git a/src/ia32/assembler-ia32-inl.h b/src/ia32/assembler-ia32-inl.h
index cafa676..2120a90 100644
--- a/src/ia32/assembler-ia32-inl.h
+++ b/src/ia32/assembler-ia32-inl.h
@@ -81,11 +81,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Memory::Address_at(pc_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)
                               || rmode_ == EMBEDDED_OBJECT
@@ -119,21 +114,6 @@
   }
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Memory::Address_at(pc_) = updated_reference;
-  if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
-    Assembler::FlushICache(isolate_, pc_, sizeof(int32_t));
-  }
-}
-
 Object* RelocInfo::target_object() {
   DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
   return Memory::Object_at(pc_);
@@ -283,7 +263,7 @@
   }
 }
 
-
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc
index 150131c..fdf11c1 100644
--- a/src/ia32/assembler-ia32.cc
+++ b/src/ia32/assembler-ia32.cc
@@ -186,6 +186,42 @@
   return false;
 }
 
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Memory::Address_at(pc_);
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return Memory::uint32_at(pc_);
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_)) {
+    Address updated_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_reference &&
+           updated_reference < new_base + new_size);
+    Memory::Address_at(pc_) = updated_reference;
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Memory::uint32_at(pc_) = updated_size_reference;
+  } else {
+    UNREACHABLE();
+  }
+  if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
+    Assembler::FlushICache(isolate_, pc_, sizeof(int32_t));
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Implementation of Operand
@@ -681,6 +717,18 @@
   emit_operand(dst, src);
 }
 
+void Assembler::xchg_b(Register reg, const Operand& op) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x86);
+  emit_operand(reg, op);
+}
+
+void Assembler::xchg_w(Register reg, const Operand& op) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x66);
+  EMIT(0x87);
+  emit_operand(reg, op);
+}
 
 void Assembler::adc(Register dst, int32_t imm32) {
   EnsureSpace ensure_space(this);
@@ -787,14 +835,14 @@
 void Assembler::cmpw(Register reg, const Operand& op) {
   EnsureSpace ensure_space(this);
   EMIT(0x66);
-  EMIT(0x39);
+  EMIT(0x3B);
   emit_operand(reg, op);
 }
 
 void Assembler::cmpw(const Operand& op, Register reg) {
   EnsureSpace ensure_space(this);
   EMIT(0x66);
-  EMIT(0x3B);
+  EMIT(0x39);
   emit_operand(reg, op);
 }
 
diff --git a/src/ia32/assembler-ia32.h b/src/ia32/assembler-ia32.h
index 5105ff5..c3edacb 100644
--- a/src/ia32/assembler-ia32.h
+++ b/src/ia32/assembler-ia32.h
@@ -74,6 +74,9 @@
   V(xmm6)                   \
   V(xmm7)
 
+#define FLOAT_REGISTERS DOUBLE_REGISTERS
+#define SIMD_REGISTERS DOUBLE_REGISTERS
+
 #define ALLOCATABLE_DOUBLE_REGISTERS(V) \
   V(xmm1)                               \
   V(xmm2)                               \
@@ -146,8 +149,7 @@
 #undef DECLARE_REGISTER
 const Register no_reg = {Register::kCode_no_reg};
 
-
-struct DoubleRegister {
+struct XMMRegister {
   enum Code {
 #define REGISTER_CODE(R) kCode_##R,
     DOUBLE_REGISTERS(REGISTER_CODE)
@@ -158,8 +160,8 @@
 
   static const int kMaxNumRegisters = Code::kAfterLast;
 
-  static DoubleRegister from_code(int code) {
-    DoubleRegister result = {code};
+  static XMMRegister from_code(int code) {
+    XMMRegister result = {code};
     return result;
   }
 
@@ -171,23 +173,25 @@
     return reg_code;
   }
 
-  bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
+  bool is(XMMRegister reg) const { return reg_code == reg.reg_code; }
 
   const char* ToString();
 
   int reg_code;
 };
 
+typedef XMMRegister FloatRegister;
+
+typedef XMMRegister DoubleRegister;
+
+typedef XMMRegister Simd128Register;
+
 #define DECLARE_REGISTER(R) \
   const DoubleRegister R = {DoubleRegister::kCode_##R};
 DOUBLE_REGISTERS(DECLARE_REGISTER)
 #undef DECLARE_REGISTER
 const DoubleRegister no_double_reg = {DoubleRegister::kCode_no_reg};
 
-typedef DoubleRegister Simd128Register;
-
-typedef DoubleRegister XMMRegister;
-
 enum Condition {
   // any value < 0 is considered no_condition
   no_condition  = -1,
@@ -655,6 +659,8 @@
   // Exchange
   void xchg(Register dst, Register src);
   void xchg(Register dst, const Operand& src);
+  void xchg_b(Register reg, const Operand& op);
+  void xchg_w(Register reg, const Operand& op);
 
   // Arithmetics
   void adc(Register dst, int32_t imm32);
@@ -1432,7 +1438,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   // Writes a single byte or word of data in the code stream.  Used for
   // inline tables, e.g., jump-tables.
diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc
index b7e33d9..232c56b 100644
--- a/src/ia32/builtins-ia32.cc
+++ b/src/ia32/builtins-ia32.cc
@@ -186,16 +186,9 @@
     __ j(greater_equal, &loop);
 
     // Call the function.
-    if (is_api_function) {
-      __ mov(esi, FieldOperand(edi, JSFunction::kContextOffset));
-      Handle<Code> code =
-          masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(eax);
-      __ InvokeFunction(edi, edx, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+    ParameterCount actual(eax);
+    __ InvokeFunction(edi, edx, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -391,6 +384,141 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- eax    : the value to pass to the generator
+  //  -- ebx    : the JSGeneratorObject to resume
+  //  -- edx    : the resume mode (tagged)
+  //  -- esp[0] : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(ebx);
+
+  // Store input value into generator object.
+  __ mov(FieldOperand(ebx, JSGeneratorObject::kInputOffset), eax);
+  __ RecordWriteField(ebx, JSGeneratorObject::kInputOffset, eax, ecx,
+                      kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ mov(FieldOperand(ebx, JSGeneratorObject::kResumeModeOffset), edx);
+
+  // Load suspended function and context.
+  __ mov(esi, FieldOperand(ebx, JSGeneratorObject::kContextOffset));
+  __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  __ cmpb(Operand::StaticVariable(step_in_enabled), Immediate(0));
+  __ j(equal, &skip_flooding);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(ebx);
+    __ Push(edx);
+    __ Push(edi);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(edx);
+    __ Pop(ebx);
+    __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Pop return address.
+  __ PopReturnAddressTo(eax);
+
+  // Push receiver.
+  __ Push(FieldOperand(ebx, JSGeneratorObject::kReceiverOffset));
+
+  // ----------- S t a t e -------------
+  //  -- eax    : return address
+  //  -- ebx    : the JSGeneratorObject to resume
+  //  -- edx    : the resume mode (tagged)
+  //  -- edi    : generator function
+  //  -- esi    : generator context
+  //  -- esp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ mov(ecx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(ecx,
+         FieldOperand(ecx, SharedFunctionInfo::kFormalParameterCountOffset));
+  {
+    Label done_loop, loop;
+    __ bind(&loop);
+    __ sub(ecx, Immediate(Smi::FromInt(1)));
+    __ j(carry, &done_loop, Label::kNear);
+    __ PushRoot(Heap::kTheHoleValueRootIndex);
+    __ jmp(&loop);
+    __ bind(&done_loop);
+  }
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ mov(ecx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(ecx, FieldOperand(ecx, SharedFunctionInfo::kFunctionDataOffset));
+  __ CmpObjectType(ecx, BYTECODE_ARRAY_TYPE, ecx);
+  __ j(not_equal, &old_generator);
+
+  // New-style (ignition/turbofan) generator object
+  {
+    __ PushReturnAddressFrom(eax);
+    __ mov(eax, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+    __ mov(eax,
+         FieldOperand(ecx, SharedFunctionInfo::kFormalParameterCountOffset));
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ mov(edx, ebx);
+    __ jmp(FieldOperand(edi, JSFunction::kCodeEntryOffset));
+  }
+
+  // Old-style (full-codegen) generator object
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ PushReturnAddressFrom(eax);  // Return address.
+    __ Push(ebp);                   // Caller's frame pointer.
+    __ Move(ebp, esp);
+    __ Push(esi);  // Callee's context.
+    __ Push(edi);  // Callee's JS Function.
+
+    // Restore the operand stack.
+    __ mov(eax, FieldOperand(ebx, JSGeneratorObject::kOperandStackOffset));
+    {
+      Label done_loop, loop;
+      __ Move(ecx, Smi::FromInt(0));
+      __ bind(&loop);
+      __ cmp(ecx, FieldOperand(eax, FixedArray::kLengthOffset));
+      __ j(equal, &done_loop, Label::kNear);
+      __ Push(FieldOperand(eax, ecx, times_half_pointer_size,
+                           FixedArray::kHeaderSize));
+      __ add(ecx, Immediate(Smi::FromInt(1)));
+      __ jmp(&loop);
+      __ bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ mov(FieldOperand(ebx, JSGeneratorObject::kOperandStackOffset),
+           Immediate(masm->isolate()->factory()->empty_fixed_array()));
+
+    // Resume the generator function at the continuation.
+    __ mov(edx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+    __ mov(edx, FieldOperand(edx, SharedFunctionInfo::kCodeOffset));
+    __ mov(ecx, FieldOperand(ebx, JSGeneratorObject::kContinuationOffset));
+    __ SmiUntag(ecx);
+    __ lea(edx, FieldOperand(edx, ecx, times_1, Code::kHeaderSize));
+    __ mov(FieldOperand(ebx, JSGeneratorObject::kContinuationOffset),
+           Immediate(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
+    __ mov(eax, ebx);  // Continuation expects generator object in eax.
+    __ jmp(edx);
+  }
+}
 
 // Generate code for entering a JS function with the interpreter.
 // On entry to the function the receiver and arguments have been pushed on the
@@ -407,6 +535,8 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
@@ -417,10 +547,9 @@
   __ push(edi);  // Callee's JS function.
   __ push(edx);  // Callee's new target.
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into edi (InterpreterBytecodeRegister).
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ mov(eax, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
-
   Label load_debug_bytecode_array, bytecode_array_loaded;
   __ cmp(FieldOperand(eax, SharedFunctionInfo::kDebugInfoOffset),
          Immediate(DebugInfo::uninitialized()));
@@ -429,8 +558,12 @@
          FieldOperand(eax, SharedFunctionInfo::kFunctionDataOffset));
   __ bind(&bytecode_array_loaded);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ CompareRoot(kInterpreterBytecodeArrayRegister,
+                 Heap::kUndefinedValueRootIndex);
+  __ j(equal, &bytecode_array_not_present);
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ AssertNotSmi(kInterpreterBytecodeArrayRegister);
     __ CmpObjectType(kInterpreterBytecodeArrayRegister, BYTECODE_ARRAY_TYPE,
                      eax);
@@ -439,8 +572,8 @@
 
   // Push bytecode array.
   __ push(kInterpreterBytecodeArrayRegister);
-  // Push zero for bytecode array offset.
-  __ push(Immediate(0));
+  // Push Smi tagged initial bytecode array offset.
+  __ push(Immediate(Smi::FromInt(BytecodeArray::kHeaderSize - kHeapObjectTag)));
 
   // Allocate the local and temporary register file on the stack.
   {
@@ -473,41 +606,36 @@
     __ j(greater_equal, &loop_header);
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load accumulator, register file, bytecode offset, dispatch table into
-  // registers.
+  // Load accumulator, bytecode offset and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ mov(kInterpreterRegisterFileRegister, ebp);
-  __ add(kInterpreterRegisterFileRegister,
-         Immediate(InterpreterFrameConstants::kRegisterFilePointerFromFp));
   __ mov(kInterpreterBytecodeOffsetRegister,
          Immediate(BytecodeArray::kHeaderSize - kHeapObjectTag));
-  __ mov(ebx, Immediate(ExternalReference::interpreter_dispatch_table_address(
-                  masm->isolate())));
-
-  // Push dispatch table as a stack located parameter to the bytecode handler.
-  DCHECK_EQ(-1, kInterpreterDispatchTableSpillSlot);
-  __ push(ebx);
+  __ mov(kInterpreterDispatchTableRegister,
+         Immediate(ExternalReference::interpreter_dispatch_table_address(
+             masm->isolate())));
 
   // Dispatch to the first bytecode handler for the function.
-  __ movzx_b(eax, Operand(kInterpreterBytecodeArrayRegister,
+  __ movzx_b(ebx, Operand(kInterpreterBytecodeArrayRegister,
                           kInterpreterBytecodeOffsetRegister, times_1, 0));
-  __ mov(ebx, Operand(ebx, eax, times_pointer_size, 0));
-  // Restore undefined_value in accumulator (eax)
-  // TODO(rmcilroy): Remove this once we move the dispatch table back into a
-  // register.
-  __ mov(eax, Immediate(masm->isolate()->factory()->undefined_value()));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ add(ebx, Immediate(Code::kHeaderSize - kHeapObjectTag));
+  __ mov(ebx, Operand(kInterpreterDispatchTableRegister, ebx,
+                      times_pointer_size, 0));
   __ call(ebx);
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
+  // The return value is in eax.
+
+  // Get the arguments + reciever count.
+  __ mov(ebx, Operand(ebp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ mov(ebx, FieldOperand(ebx, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ leave();
+
+  // Drop receiver + arguments and return.
+  __ pop(ecx);
+  __ add(esp, ebx);
+  __ push(ecx);
+  __ ret(0);
 
   // Load debug copy of the bytecode array.
   __ bind(&load_debug_bytecode_array);
@@ -516,31 +644,23 @@
   __ mov(kInterpreterBytecodeArrayRegister,
          FieldOperand(debug_info, DebugInfo::kAbstractCodeIndex));
   __ jmp(&bytecode_array_loaded);
+
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ bind(&bytecode_array_not_present);
+  __ pop(edx);  // Callee's new target.
+  __ pop(edi);  // Callee's JS function.
+  __ pop(esi);  // Callee's context.
+  __ leave();   // Leave the frame so we can tail call.
+  __ mov(ecx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(ecx, FieldOperand(ecx, SharedFunctionInfo::kCodeOffset));
+  __ lea(ecx, FieldOperand(ecx, Code::kHeaderSize));
+  __ mov(FieldOperand(edi, JSFunction::kCodeEntryOffset), ecx);
+  __ RecordWriteCodeEntryField(edi, ecx, ebx);
+  __ jmp(ecx);
 }
 
-
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
-
-  // The return value is in accumulator, which is already in rax.
-
-  // Leave the frame (also dropping the register file).
-  __ leave();
-
-  // Drop receiver + arguments and return.
-  __ mov(ebx, FieldOperand(kInterpreterBytecodeArrayRegister,
-                           BytecodeArray::kParameterSizeOffset));
-  __ pop(ecx);
-  __ add(esp, ebx);
-  __ push(ecx);
-  __ ret(0);
-}
-
-
 static void Generate_InterpreterPushArgs(MacroAssembler* masm,
                                          Register array_limit) {
   // ----------- S t a t e -------------
@@ -558,7 +678,6 @@
   __ j(greater, &loop_header, Label::kNear);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -627,17 +746,26 @@
   __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
 }
 
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ LoadHeapObject(ebx,
+                    masm->isolate()->builtins()->InterpreterEntryTrampoline());
+  __ add(ebx, Immediate(interpreter_entry_return_pc_offset->value() +
+                        Code::kHeaderSize - kHeapObjectTag));
+  __ push(ebx);
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register.
-  __ mov(kInterpreterRegisterFileRegister, ebp);
-  __ add(kInterpreterRegisterFileRegister,
-         Immediate(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+  // Initialize the dispatch table register.
+  __ mov(kInterpreterDispatchTableRegister,
+         Immediate(ExternalReference::interpreter_dispatch_table_address(
+             masm->isolate())));
 
   // Get the bytecode array pointer from the frame.
   __ mov(kInterpreterBytecodeArrayRegister,
-         Operand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+         Operand(ebp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -648,92 +776,173 @@
   }
 
   // Get the target bytecode offset from the frame.
-  __ mov(
-      kInterpreterBytecodeOffsetRegister,
-      Operand(kInterpreterRegisterFileRegister,
-              InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+  __ mov(kInterpreterBytecodeOffsetRegister,
+         Operand(ebp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiUntag(kInterpreterBytecodeOffsetRegister);
 
-  // Push dispatch table as a stack located parameter to the bytecode handler.
-  __ mov(ebx, Immediate(ExternalReference::interpreter_dispatch_table_address(
-                  masm->isolate())));
-  DCHECK_EQ(-1, kInterpreterDispatchTableSpillSlot);
-  __ Pop(esi);
-  __ Push(ebx);
-  __ Push(esi);
-
   // Dispatch to the target bytecode.
-  __ movzx_b(esi, Operand(kInterpreterBytecodeArrayRegister,
+  __ movzx_b(ebx, Operand(kInterpreterBytecodeArrayRegister,
                           kInterpreterBytecodeOffsetRegister, times_1, 0));
-  __ mov(ebx, Operand(ebx, esi, times_pointer_size, 0));
-
-  // Get the context from the frame.
-  __ mov(kContextRegister,
-         Operand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kContextFromRegisterPointer));
-
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ add(ebx, Immediate(Code::kHeaderSize - kHeapObjectTag));
+  __ mov(ebx, Operand(kInterpreterDispatchTableRegister, ebx,
+                      times_pointer_size, 0));
   __ jmp(ebx);
 }
 
-
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ Push(Smi::FromInt(static_cast<int>(type)));
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register and push PC at top
-  // of stack (to simulate initial call to bytecode handler in interpreter entry
-  // trampoline).
-  __ Pop(ebx);
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-  __ Push(ebx);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ Push(masm->isolate()->builtins()->InterpreterEntryTrampoline());
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- eax : argument count (preserved for callee)
+  //  -- edx : new target (preserved for callee)
+  //  -- edi : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime, gotta_call_runtime_no_stack;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register closure = edi;
+  Register new_target = edx;
+  Register argument_count = eax;
+
+  __ push(argument_count);
+  __ push(new_target);
+  __ push(closure);
+
+  Register map = argument_count;
+  Register index = ebx;
+  __ mov(map, FieldOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(map, FieldOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ mov(index, FieldOperand(map, FixedArray::kLengthOffset));
+  __ cmp(index, Immediate(Smi::FromInt(2)));
+  __ j(less, &gotta_call_runtime);
+
+  // Find literals.
+  // edx : native context
+  // ebx : length / index
+  // eax : optimized code map
+  // stack[0] : new target
+  // stack[4] : closure
+  Register native_context = edx;
+  __ mov(native_context, NativeContextOperand());
+
+  __ bind(&loop_top);
+  Register temp = edi;
+
+  // Does the native context match?
+  __ mov(temp, FieldOperand(map, index, times_half_pointer_size,
+                            SharedFunctionInfo::kOffsetToPreviousContext));
+  __ mov(temp, FieldOperand(temp, WeakCell::kValueOffset));
+  __ cmp(temp, native_context);
+  __ j(not_equal, &loop_bottom);
+  // OSR id set to none?
+  __ mov(temp, FieldOperand(map, index, times_half_pointer_size,
+                            SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  const int bailout_id = BailoutId::None().ToInt();
+  __ cmp(temp, Immediate(Smi::FromInt(bailout_id)));
+  __ j(not_equal, &loop_bottom);
+  // Literals available?
+  __ mov(temp, FieldOperand(map, index, times_half_pointer_size,
+                            SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ mov(temp, FieldOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ mov(ecx, Operand(esp, 0));
+  __ mov(FieldOperand(ecx, JSFunction::kLiteralsOffset), temp);
+  __ push(index);
+  __ RecordWriteField(ecx, JSFunction::kLiteralsOffset, temp, index,
+                      kDontSaveFPRegs, EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
+  __ pop(index);
+
+  // Code available?
+  Register entry = ecx;
+  __ mov(entry, FieldOperand(map, index, times_half_pointer_size,
+                             SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ mov(entry, FieldOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  __ pop(closure);
+  // Store code entry in the closure.
+  __ lea(entry, FieldOperand(entry, Code::kHeaderSize));
+
+  Label install_optimized_code_and_tailcall;
+  __ bind(&install_optimized_code_and_tailcall);
+  __ mov(FieldOperand(closure, JSFunction::kCodeEntryOffset), entry);
+  __ RecordWriteCodeEntryField(closure, entry, eax);
+
+  // Link the closure into the optimized function list.
+  // ecx : code entry
+  // edx : native context
+  // edi : closure
+  __ mov(ebx,
+         ContextOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ mov(FieldOperand(closure, JSFunction::kNextFunctionLinkOffset), ebx);
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, ebx, eax,
+                      kDontSaveFPRegs, EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ mov(ContextOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST),
+         closure);
+  // Save closure before the write barrier.
+  __ mov(ebx, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, closure, eax,
+                            kDontSaveFPRegs);
+  __ mov(closure, ebx);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ jmp(entry);
+
+  __ bind(&loop_bottom);
+  __ sub(index, Immediate(Smi::FromInt(SharedFunctionInfo::kEntryLength)));
+  __ cmp(index, Immediate(Smi::FromInt(1)));
+  __ j(greater, &loop_top);
+
+  // We found neither literals nor code.
+  __ jmp(&gotta_call_runtime);
+
+  __ bind(&maybe_call_runtime);
+  __ pop(closure);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ mov(entry, FieldOperand(map, FixedArray::kHeaderSize +
+                                      SharedFunctionInfo::kSharedCodeIndex));
+  __ mov(entry, FieldOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ lea(entry, FieldOperand(entry, Code::kHeaderSize));
+  __ jmp(&install_optimized_code_and_tailcall);
+
+  __ bind(&try_shared);
+  __ pop(new_target);
+  __ pop(argument_count);
+  // Is the full code valid?
+  __ mov(entry, FieldOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(entry, FieldOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ mov(ebx, FieldOperand(entry, Code::kFlagsOffset));
+  __ and_(ebx, Code::KindField::kMask);
+  __ shr(ebx, Code::KindField::kShift);
+  __ cmp(ebx, Immediate(Code::BUILTIN));
+  __ j(equal, &gotta_call_runtime_no_stack);
+  // Yes, install the full code.
+  __ lea(entry, FieldOperand(entry, Code::kHeaderSize));
+  __ mov(FieldOperand(closure, JSFunction::kCodeEntryOffset), entry);
+  __ RecordWriteCodeEntryField(closure, entry, ebx);
+  __ jmp(entry);
+
+  __ bind(&gotta_call_runtime);
+  __ pop(closure);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ bind(&gotta_call_runtime_no_stack);
+
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
 
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
@@ -875,13 +1084,14 @@
 
   // Switch on the state.
   Label not_no_registers, not_tos_eax;
-  __ cmp(ecx, FullCodeGenerator::NO_REGISTERS);
+  __ cmp(ecx, static_cast<int>(Deoptimizer::BailoutState::NO_REGISTERS));
   __ j(not_equal, &not_no_registers, Label::kNear);
   __ ret(1 * kPointerSize);  // Remove state.
 
   __ bind(&not_no_registers);
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), eax.code());
   __ mov(eax, Operand(esp, 2 * kPointerSize));
-  __ cmp(ecx, FullCodeGenerator::TOS_REG);
+  __ cmp(ecx, static_cast<int>(Deoptimizer::BailoutState::TOS_REGISTER));
   __ j(not_equal, &not_tos_eax, Label::kNear);
   __ ret(2 * kPointerSize);  // Remove state, eax.
 
@@ -957,29 +1167,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- eax    : argc
-  //  -- esp[0] : return address
-  //  -- esp[4] : first argument (left-hand side)
-  //  -- esp[8] : receiver (right-hand side)
-  // -----------------------------------
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ mov(InstanceOfDescriptor::LeftRegister(),
-           Operand(ebp, 2 * kPointerSize));  // Load left-hand side.
-    __ mov(InstanceOfDescriptor::RightRegister(),
-           Operand(ebp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ ret(2 * kPointerSize);
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- eax     : argc
@@ -2359,6 +2546,34 @@
           RelocInfo::CODE_TARGET);
 }
 
+// static
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- edx    : requested object size (untagged)
+  //  -- esp[0] : return address
+  // -----------------------------------
+  __ SmiTag(edx);
+  __ PopReturnAddressTo(ecx);
+  __ Push(edx);
+  __ PushReturnAddressFrom(ecx);
+  __ Move(esi, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
+}
+
+// static
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- edx    : requested object size (untagged)
+  //  -- esp[0] : return address
+  // -----------------------------------
+  __ SmiTag(edx);
+  __ PopReturnAddressTo(ecx);
+  __ Push(edx);
+  __ Push(Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ PushReturnAddressFrom(ecx);
+  __ Move(esi, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
+}
 
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
index 53b35a3..b711ce9 100644
--- a/src/ia32/code-stubs-ia32.cc
+++ b/src/ia32/code-stubs-ia32.cc
@@ -62,12 +62,6 @@
 }
 
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -80,11 +74,6 @@
 }
 
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(eax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -2057,129 +2046,6 @@
 }
 
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = edx;                       // Object (lhs).
-  Register const function = eax;                     // Function (rhs).
-  Register const object_map = ecx;                   // Map of {object}.
-  Register const function_map = ebx;                 // Map of {function}.
-  Register const function_prototype = function_map;  // Prototype of {function}.
-  Register const scratch = edi;
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi, Label::kNear);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ mov(object_map, FieldOperand(object, HeapObject::kMapOffset));
-  __ CompareRoot(function, scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ j(not_equal, &fast_case, Label::kNear);
-  __ CompareRoot(object_map, scratch, Heap::kInstanceofCacheMapRootIndex);
-  __ j(not_equal, &fast_case, Label::kNear);
-  __ LoadRoot(eax, Heap::kInstanceofCacheAnswerRootIndex);
-  __ ret(0);
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ CmpObjectType(function, JS_FUNCTION_TYPE, function_map);
-  __ j(not_equal, &slow_case);
-  __ LoadRoot(eax, Heap::kFalseValueRootIndex);
-  __ ret(0);
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ CmpObjectType(function, JS_FUNCTION_TYPE, function_map);
-  __ j(not_equal, &slow_case);
-
-  // Go to the runtime if the function is not a constructor.
-  __ test_b(FieldOperand(function_map, Map::kBitFieldOffset),
-            Immediate(1 << Map::kIsConstructor));
-  __ j(zero, &slow_case);
-
-  // Ensure that {function} has an instance prototype.
-  __ test_b(FieldOperand(function_map, Map::kBitFieldOffset),
-            Immediate(1 << Map::kHasNonInstancePrototype));
-  __ j(not_zero, &slow_case);
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ mov(function_prototype,
-         FieldOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  Register const function_prototype_map = scratch;
-  __ CmpObjectType(function_prototype, MAP_TYPE, function_prototype_map);
-  __ j(not_equal, &function_prototype_valid, Label::kNear);
-  __ mov(function_prototype,
-         FieldOperand(function_prototype, Map::kPrototypeOffset));
-  __ bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, scratch, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Label done, loop, fast_runtime_fallback;
-  __ mov(eax, isolate()->factory()->true_value());
-  __ bind(&loop);
-
-  // Check if the object needs to be access checked.
-  __ test_b(FieldOperand(object_map, Map::kBitFieldOffset),
-            Immediate(1 << Map::kIsAccessCheckNeeded));
-  __ j(not_zero, &fast_runtime_fallback, Label::kNear);
-  // Check if the current object is a Proxy.
-  __ CmpInstanceType(object_map, JS_PROXY_TYPE);
-  __ j(equal, &fast_runtime_fallback, Label::kNear);
-
-  __ mov(object, FieldOperand(object_map, Map::kPrototypeOffset));
-  __ cmp(object, function_prototype);
-  __ j(equal, &done, Label::kNear);
-  __ mov(object_map, FieldOperand(object, HeapObject::kMapOffset));
-  __ cmp(object, isolate()->factory()->null_value());
-  __ j(not_equal, &loop);
-  __ mov(eax, isolate()->factory()->false_value());
-
-  __ bind(&done);
-  __ StoreRoot(eax, scratch, Heap::kInstanceofCacheAnswerRootIndex);
-  __ ret(0);
-
-  // Found Proxy or access check needed: Call the runtime.
-  __ bind(&fast_runtime_fallback);
-  __ PopReturnAddressTo(scratch);
-  __ Push(object);
-  __ Push(function_prototype);
-  __ PushReturnAddressFrom(scratch);
-  // Invalidate the instanceof cache.
-  __ Move(eax, Immediate(Smi::FromInt(0)));
-  __ StoreRoot(eax, scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ PopReturnAddressTo(scratch);
-  __ Push(object);
-  __ Push(function);
-  __ PushReturnAddressFrom(scratch);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
-
 // -------------------------------------------------------------------------
 // StringCharCodeAtGenerator
 
@@ -3842,8 +3708,8 @@
   __ j(not_equal, &miss);
   __ push(slot);
   __ push(vector);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
                                                receiver, name, vector, scratch);
   __ pop(vector);
@@ -4103,8 +3969,8 @@
   __ pop(value);
   __ push(slot);
   __ push(vector);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, code_flags,
                                                receiver, key, slot, no_reg);
   __ pop(vector);
@@ -4714,16 +4580,16 @@
   __ bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ mov(Operand(eax, JSObject::kMapOffset), ecx);
-  __ mov(Operand(eax, JSObject::kPropertiesOffset),
+  __ mov(FieldOperand(eax, JSObject::kMapOffset), ecx);
+  __ mov(FieldOperand(eax, JSObject::kPropertiesOffset),
          masm->isolate()->factory()->empty_fixed_array());
-  __ mov(Operand(eax, JSObject::kElementsOffset),
+  __ mov(FieldOperand(eax, JSObject::kElementsOffset),
          masm->isolate()->factory()->empty_fixed_array());
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
-  __ lea(ebx, Operand(eax, JSObject::kHeaderSize));
+  __ lea(ebx, FieldOperand(eax, JSObject::kHeaderSize));
 
   // ----------- S t a t e -------------
-  //  -- eax    : result (untagged)
+  //  -- eax    : result (tagged)
   //  -- ebx    : result fields (untagged)
   //  -- edi    : result end (untagged)
   //  -- ecx    : initial map
@@ -4741,10 +4607,6 @@
     // Initialize all in-object fields with undefined.
     __ LoadRoot(edx, Heap::kUndefinedValueRootIndex);
     __ InitializeFieldsWithFiller(ebx, edi, edx);
-
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ inc(eax);
     __ Ret();
   }
   __ bind(&slack_tracking);
@@ -4767,10 +4629,6 @@
     __ LoadRoot(edi, Heap::kOnePointerFillerMapRootIndex);
     __ InitializeFieldsWithFiller(ebx, edx, edi);
 
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ inc(eax);
-
     // Check if we can finalize the instance size.
     Label finalize;
     STATIC_ASSERT(Map::kSlackTrackingCounterEnd == 1);
@@ -4801,10 +4659,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(ecx);
   }
-  STATIC_ASSERT(kHeapObjectTag == 1);
-  __ dec(eax);
   __ movzx_b(ebx, FieldOperand(ecx, Map::kInstanceSizeOffset));
   __ lea(edi, Operand(eax, ebx, times_pointer_size, 0));
+  STATIC_ASSERT(kHeapObjectTag == 1);
+  __ dec(edi);
   __ jmp(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4826,19 +4684,19 @@
   // -----------------------------------
   __ AssertFunction(edi);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make edx point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ mov(edx, ebp);
-    __ jmp(&loop_entry, Label::kNear);
-    __ bind(&loop);
+  // Make edx point to the JavaScript frame.
+  __ mov(edx, ebp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ mov(edx, Operand(edx, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ cmp(edi, Operand(edx, StandardFrameConstants::kFunctionOffset));
-    __ j(not_equal, &loop);
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4868,7 +4726,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, eax, edx, ecx, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, eax, edx, ecx, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the rest parameter array in rax.
@@ -4910,7 +4768,7 @@
     Label allocate, done_allocate;
     __ lea(ecx, Operand(eax, times_half_pointer_size,
                         JSArray::kSize + FixedArray::kHeaderSize));
-    __ Allocate(ecx, edx, edi, no_reg, &allocate, TAG_OBJECT);
+    __ Allocate(ecx, edx, edi, no_reg, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in edx.
@@ -4973,35 +4831,50 @@
   // -----------------------------------
   __ AssertFunction(edi);
 
+  // Make ecx point to the JavaScript frame.
+  __ mov(ecx, ebp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ mov(ecx, Operand(ecx, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ cmp(edi, Operand(ecx, StandardFrameConstants::kFunctionOffset));
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewSloppyArgumentsStub);
+    __ bind(&ok);
+  }
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
-  __ mov(ecx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
-  __ mov(ecx,
-         FieldOperand(ecx, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ lea(edx, Operand(ebp, ecx, times_half_pointer_size,
+  __ mov(ebx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(ebx,
+         FieldOperand(ebx, SharedFunctionInfo::kFormalParameterCountOffset));
+  __ lea(edx, Operand(ecx, ebx, times_half_pointer_size,
                       StandardFrameConstants::kCallerSPOffset));
 
-  // ecx : number of parameters (tagged)
+  // ebx : number of parameters (tagged)
   // edx : parameters pointer
   // edi : function
+  // ecx : JavaScript frame pointer.
   // esp[0] : return address
 
   // Check if the calling frame is an arguments adaptor frame.
   Label adaptor_frame, try_allocate, runtime;
-  __ mov(ebx, Operand(ebp, StandardFrameConstants::kCallerFPOffset));
-  __ mov(eax, Operand(ebx, CommonFrameConstants::kContextOrFrameTypeOffset));
+  __ mov(eax, Operand(ecx, StandardFrameConstants::kCallerFPOffset));
+  __ mov(eax, Operand(eax, CommonFrameConstants::kContextOrFrameTypeOffset));
   __ cmp(eax, Immediate(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
   __ j(equal, &adaptor_frame, Label::kNear);
 
   // No adaptor, parameter count = argument count.
-  __ mov(ebx, ecx);
-  __ push(ecx);
+  __ mov(ecx, ebx);
+  __ push(ebx);
   __ jmp(&try_allocate, Label::kNear);
 
   // We have an adaptor frame. Patch the parameters pointer.
   __ bind(&adaptor_frame);
-  __ mov(ebx, ecx);
-  __ push(ecx);
-  __ mov(edx, Operand(ebp, StandardFrameConstants::kCallerFPOffset));
+  __ push(ebx);
+  __ mov(edx, Operand(ecx, StandardFrameConstants::kCallerFPOffset));
   __ mov(ecx, Operand(edx, ArgumentsAdaptorFrameConstants::kLengthOffset));
   __ lea(edx, Operand(edx, ecx, times_2,
                       StandardFrameConstants::kCallerSPOffset));
@@ -5035,7 +4908,7 @@
   __ add(ebx, Immediate(JSSloppyArgumentsObject::kSize));
 
   // Do the allocation of all three objects in one go.
-  __ Allocate(ebx, eax, edi, no_reg, &runtime, TAG_OBJECT);
+  __ Allocate(ebx, eax, edi, no_reg, &runtime, NO_ALLOCATION_FLAGS);
 
   // eax = address of new object(s) (tagged)
   // ecx = argument count (smi-tagged)
@@ -5214,19 +5087,19 @@
   // -----------------------------------
   __ AssertFunction(edi);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make edx point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ mov(edx, ebp);
-    __ jmp(&loop_entry, Label::kNear);
-    __ bind(&loop);
+  // Make edx point to the JavaScript frame.
+  __ mov(edx, ebp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ mov(edx, Operand(edx, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ cmp(edi, Operand(edx, StandardFrameConstants::kFunctionOffset));
-    __ j(not_equal, &loop);
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewStrictArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -5265,7 +5138,7 @@
   __ lea(ecx,
          Operand(eax, times_half_pointer_size,
                  JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
-  __ Allocate(ecx, edx, edi, no_reg, &allocate, TAG_OBJECT);
+  __ Allocate(ecx, edx, edi, no_reg, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in edx.
@@ -5686,9 +5559,14 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
 
   __ pop(return_address);
+
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
+
   // context save.
   __ push(context);
 
@@ -5733,7 +5611,7 @@
 
   // Allocate the v8::Arguments structure in the arguments' space since
   // it's not controlled by GC.
-  const int kApiStackSpace = 4;
+  const int kApiStackSpace = 3;
 
   PrepareCallApiFunction(masm, kApiArgc + kApiStackSpace);
 
@@ -5744,8 +5622,6 @@
   __ mov(ApiParameterOperand(3), scratch);
   // FunctionCallbackInfo::length_.
   __ Move(ApiParameterOperand(4), Immediate(argc()));
-  // FunctionCallbackInfo::is_construct_call_.
-  __ Move(ApiParameterOperand(5), Immediate(0));
 
   // v8::InvocationCallback's argument.
   __ lea(scratch, ApiParameterOperand(2));
@@ -5765,8 +5641,8 @@
   }
   Operand return_value_operand(ebp, return_value_offset * kPointerSize);
   int stack_space = 0;
-  Operand is_construct_call_operand = ApiParameterOperand(5);
-  Operand* stack_space_operand = &is_construct_call_operand;
+  Operand length_operand = ApiParameterOperand(4);
+  Operand* stack_space_operand = &length_operand;
   stack_space = argc() + FCA::kArgsLength + 1;
   stack_space_operand = nullptr;
   CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
@@ -5777,14 +5653,34 @@
 
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- esp[0]                        : return address
-  //  -- esp[4]                        : name
-  //  -- esp[8 .. (8 + kArgsLength*4)] : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- edx                           : api_function_address
-  // -----------------------------------
-  DCHECK(edx.is(ApiGetterDescriptor::function_address()));
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
+
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
+  Register scratch = ebx;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
+
+  __ pop(scratch);  // Pop return address to extend the frame.
+  __ push(receiver);
+  __ push(FieldOperand(callback, AccessorInfo::kDataOffset));
+  __ PushRoot(Heap::kUndefinedValueRootIndex);  // ReturnValue
+  // ReturnValue default value
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
+  __ push(Immediate(ExternalReference::isolate_address(isolate())));
+  __ push(holder);
+  __ push(Immediate(Smi::FromInt(0)));  // should_throw_on_error -> false
+  __ push(FieldOperand(callback, AccessorInfo::kNameOffset));
+  __ push(scratch);  // Restore return address.
 
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
@@ -5794,9 +5690,6 @@
   // active) in non-GCed stack space.
   const int kApiArgc = 3 + 1;
 
-  Register api_function_address = edx;
-  Register scratch = ebx;
-
   // Load address of v8::PropertyAccessorInfo::args_ array.
   __ lea(scratch, Operand(esp, 2 * kPointerSize));
 
@@ -5806,25 +5699,30 @@
   Operand info_object = ApiParameterOperand(3);
   __ mov(info_object, scratch);
 
+  // Name as handle.
   __ sub(scratch, Immediate(kPointerSize));
-  __ mov(ApiParameterOperand(0), scratch);  // name.
+  __ mov(ApiParameterOperand(0), scratch);
+  // Arguments pointer.
   __ lea(scratch, info_object);
-  __ mov(ApiParameterOperand(1), scratch);  // arguments pointer.
+  __ mov(ApiParameterOperand(1), scratch);
   // Reserve space for optional callback address parameter.
   Operand thunk_last_arg = ApiParameterOperand(2);
 
   ExternalReference thunk_ref =
       ExternalReference::invoke_accessor_getter_callback(isolate());
 
+  __ mov(scratch, FieldOperand(callback, AccessorInfo::kJsGetterOffset));
+  Register function_address = edx;
+  __ mov(function_address,
+         FieldOperand(scratch, Foreign::kForeignAddressOffset));
   // +3 is to skip prolog, return address and name handle.
   Operand return_value_operand(
       ebp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize);
-  CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
-                           thunk_last_arg, kStackUnwindSpace, nullptr,
-                           return_value_operand, NULL);
+  CallApiFunctionAndReturn(masm, function_address, thunk_ref, thunk_last_arg,
+                           kStackUnwindSpace, nullptr, return_value_operand,
+                           NULL);
 }
 
-
 #undef __
 
 }  // namespace internal
diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc
index 2190531..36c83cc 100644
--- a/src/ia32/codegen-ia32.cc
+++ b/src/ia32/codegen-ia32.cc
@@ -586,8 +586,7 @@
   // Allocate new FixedDoubleArray.
   // edx: receiver
   // edi: length of source FixedArray (smi-tagged)
-  AllocationFlags flags =
-      static_cast<AllocationFlags>(TAG_OBJECT | DOUBLE_ALIGNMENT);
+  AllocationFlags flags = static_cast<AllocationFlags>(DOUBLE_ALIGNMENT);
   __ Allocate(FixedDoubleArray::kHeaderSize, times_8, edi,
               REGISTER_VALUE_IS_SMI, eax, ebx, no_reg, &gc_required, flags);
 
@@ -714,7 +713,7 @@
   // Allocate new FixedArray.
   // ebx: length of source FixedDoubleArray (smi-tagged)
   __ lea(edi, Operand(ebx, times_2, FixedArray::kHeaderSize));
-  __ Allocate(edi, eax, esi, no_reg, &gc_required, TAG_OBJECT);
+  __ Allocate(edi, eax, esi, no_reg, &gc_required, NO_ALLOCATION_FLAGS);
 
   // eax: destination FixedArray
   // ebx: number of elements
diff --git a/src/ia32/disasm-ia32.cc b/src/ia32/disasm-ia32.cc
index 3cd0ac6..8a1b3b5 100644
--- a/src/ia32/disasm-ia32.cc
+++ b/src/ia32/disasm-ia32.cc
@@ -8,6 +8,7 @@
 
 #if V8_TARGET_ARCH_IA32
 
+#include "src/base/compiler-specific.h"
 #include "src/disasm.h"
 
 namespace disasm {
@@ -29,18 +30,19 @@
 };
 
 static const ByteMnemonic two_operands_instr[] = {
-    {0x01, "add", OPER_REG_OP_ORDER},   {0x03, "add", REG_OPER_OP_ORDER},
-    {0x09, "or", OPER_REG_OP_ORDER},    {0x0B, "or", REG_OPER_OP_ORDER},
-    {0x13, "adc", REG_OPER_OP_ORDER},   {0x1B, "sbb", REG_OPER_OP_ORDER},
-    {0x21, "and", OPER_REG_OP_ORDER},   {0x23, "and", REG_OPER_OP_ORDER},
-    {0x29, "sub", OPER_REG_OP_ORDER},   {0x2A, "subb", REG_OPER_OP_ORDER},
-    {0x2B, "sub", REG_OPER_OP_ORDER},   {0x31, "xor", OPER_REG_OP_ORDER},
-    {0x33, "xor", REG_OPER_OP_ORDER},   {0x38, "cmpb", OPER_REG_OP_ORDER},
-    {0x39, "cmp", OPER_REG_OP_ORDER},   {0x3A, "cmpb", REG_OPER_OP_ORDER},
-    {0x3B, "cmp", REG_OPER_OP_ORDER},   {0x84, "test_b", REG_OPER_OP_ORDER},
-    {0x85, "test", REG_OPER_OP_ORDER},  {0x87, "xchg", REG_OPER_OP_ORDER},
-    {0x8A, "mov_b", REG_OPER_OP_ORDER}, {0x8B, "mov", REG_OPER_OP_ORDER},
-    {0x8D, "lea", REG_OPER_OP_ORDER},   {-1, "", UNSET_OP_ORDER}};
+    {0x01, "add", OPER_REG_OP_ORDER},  {0x03, "add", REG_OPER_OP_ORDER},
+    {0x09, "or", OPER_REG_OP_ORDER},   {0x0B, "or", REG_OPER_OP_ORDER},
+    {0x13, "adc", REG_OPER_OP_ORDER},  {0x1B, "sbb", REG_OPER_OP_ORDER},
+    {0x21, "and", OPER_REG_OP_ORDER},  {0x23, "and", REG_OPER_OP_ORDER},
+    {0x29, "sub", OPER_REG_OP_ORDER},  {0x2A, "subb", REG_OPER_OP_ORDER},
+    {0x2B, "sub", REG_OPER_OP_ORDER},  {0x31, "xor", OPER_REG_OP_ORDER},
+    {0x33, "xor", REG_OPER_OP_ORDER},  {0x38, "cmpb", OPER_REG_OP_ORDER},
+    {0x39, "cmp", OPER_REG_OP_ORDER},  {0x3A, "cmpb", REG_OPER_OP_ORDER},
+    {0x3B, "cmp", REG_OPER_OP_ORDER},  {0x84, "test_b", REG_OPER_OP_ORDER},
+    {0x85, "test", REG_OPER_OP_ORDER}, {0x86, "xchg_b", REG_OPER_OP_ORDER},
+    {0x87, "xchg", REG_OPER_OP_ORDER}, {0x8A, "mov_b", REG_OPER_OP_ORDER},
+    {0x8B, "mov", REG_OPER_OP_ORDER},  {0x8D, "lea", REG_OPER_OP_ORDER},
+    {-1, "", UNSET_OP_ORDER}};
 
 static const ByteMnemonic zero_operands_instr[] = {
   {0xC3, "ret", UNSET_OP_ORDER},
@@ -281,7 +283,7 @@
   bool vex_128() {
     DCHECK(vex_byte0_ == 0xc4 || vex_byte0_ == 0xc5);
     byte checked = vex_byte0_ == 0xc4 ? vex_byte2_ : vex_byte1_;
-    return (checked & 4) != 1;
+    return (checked & 4) == 0;
   }
 
   bool vex_none() {
@@ -389,8 +391,7 @@
   int MemoryFPUInstruction(int escape_opcode, int regop, byte* modrm_start);
   int RegisterFPUInstruction(int escape_opcode, byte modrm_byte);
   int AVXInstruction(byte* data);
-  void AppendToBuffer(const char* format, ...);
-
+  PRINTF_FORMAT(2, 3) void AppendToBuffer(const char* format, ...);
 
   void UnimplementedInstruction() {
     if (abort_on_unimplemented_) {
@@ -1274,7 +1275,7 @@
     const InstructionDesc& idesc = instruction_table_->Get(*data);
     switch (idesc.type) {
       case ZERO_OPERANDS_INSTR:
-        AppendToBuffer(idesc.mnem);
+        AppendToBuffer("%s", idesc.mnem);
         data++;
         break;
 
@@ -1602,11 +1603,26 @@
         while (*data == 0x66) data++;
         if (*data == 0xf && data[1] == 0x1f) {
           AppendToBuffer("nop");  // 0x66 prefix
-        } else if (*data == 0x90) {
-          AppendToBuffer("nop");  // 0x66 prefix
-        } else if (*data == 0x8B) {
+        } else if (*data == 0x39) {
           data++;
-          data += PrintOperands("mov_w", REG_OPER_OP_ORDER, data);
+          data += PrintOperands("cmpw", OPER_REG_OP_ORDER, data);
+        } else if (*data == 0x3B) {
+          data++;
+          data += PrintOperands("cmpw", REG_OPER_OP_ORDER, data);
+        } else if (*data == 0x81) {
+          data++;
+          AppendToBuffer("cmpw ");
+          data += PrintRightOperand(data);
+          int imm = *reinterpret_cast<int16_t*>(data);
+          AppendToBuffer(",0x%x", imm);
+          data += 2;
+        } else if (*data == 0x87) {
+          data++;
+          int mod, regop, rm;
+          get_modrm(*data, &mod, &regop, &rm);
+          AppendToBuffer("xchg_w ");
+          data += PrintRightOperand(data);
+          AppendToBuffer(",%s", NameOfCPURegister(regop));
         } else if (*data == 0x89) {
           data++;
           int mod, regop, rm;
@@ -1614,6 +1630,11 @@
           AppendToBuffer("mov_w ");
           data += PrintRightOperand(data);
           AppendToBuffer(",%s", NameOfCPURegister(regop));
+        } else if (*data == 0x8B) {
+          data++;
+          data += PrintOperands("mov_w", REG_OPER_OP_ORDER, data);
+        } else if (*data == 0x90) {
+          AppendToBuffer("nop");  // 0x66 prefix
         } else if (*data == 0xC7) {
           data++;
           AppendToBuffer("%s ", "mov_w");
diff --git a/src/ia32/interface-descriptors-ia32.cc b/src/ia32/interface-descriptors-ia32.cc
index 2748f90..8a877b1 100644
--- a/src/ia32/interface-descriptors-ia32.cc
+++ b/src/ia32/interface-descriptors-ia32.cc
@@ -51,16 +51,11 @@
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return eax; }
 
 
-const Register InstanceOfDescriptor::LeftRegister() { return edx; }
-const Register InstanceOfDescriptor::RightRegister() { return eax; }
-
-
 const Register StringCompareDescriptor::LeftRegister() { return edx; }
 const Register StringCompareDescriptor::RightRegister() { return eax; }
 
-
-const Register ApiGetterDescriptor::function_address() { return edx; }
-
+const Register ApiGetterDescriptor::HolderRegister() { return ecx; }
+const Register ApiGetterDescriptor::CallbackRegister() { return eax; }
 
 const Register MathPowTaggedDescriptor::exponent() { return eax; }
 
@@ -73,6 +68,8 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return eax; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return ebx; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return eax; }
+const Register HasPropertyDescriptor::KeyRegister() { return ebx; }
 
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -252,13 +249,16 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {eax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  // register state
+  // eax -- number of arguments
+  // edi -- function
+  // ebx -- allocation site with elements kind
+  Register registers[] = {edi, ebx, eax};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
@@ -322,6 +322,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {eax};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -382,8 +387,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister };
+      kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+      kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -418,6 +423,16 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      eax,  // the value to pass to the generator
+      ebx,  // the JSGeneratorObject to resume
+      edx   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc
index f9fd8d6..08189e2 100644
--- a/src/ia32/macro-assembler-ia32.cc
+++ b/src/ia32/macro-assembler-ia32.cc
@@ -1025,6 +1025,16 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    test(object, Immediate(kSmiTagMask));
+    Check(not_equal, kOperandIsASmiAndNotAGeneratorObject);
+    Push(object);
+    CmpObjectType(object, JS_GENERATOR_OBJECT_TYPE, object);
+    Pop(object);
+    Check(equal, kOperandIsNotAGeneratorObject);
+  }
+}
 
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
@@ -1517,6 +1527,7 @@
                               AllocationFlags flags) {
   DCHECK((flags & (RESULT_CONTAINS_TOP | SIZE_IN_WORDS)) == 0);
   DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1558,26 +1569,23 @@
 
   // Calculate new top and bail out if space is exhausted.
   Register top_reg = result_end.is_valid() ? result_end : result;
+
   if (!top_reg.is(result)) {
     mov(top_reg, result);
   }
   add(top_reg, Immediate(object_size));
-  j(carry, gc_required);
   cmp(top_reg, Operand::StaticVariable(allocation_limit));
   j(above, gc_required);
 
-  // Update allocation top.
-  UpdateAllocationTopHelper(top_reg, scratch, flags);
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    UpdateAllocationTopHelper(top_reg, scratch, flags);
+  }
 
-  // Tag result if requested.
-  bool tag_result = (flags & TAG_OBJECT) != 0;
   if (top_reg.is(result)) {
-    if (tag_result) {
-      sub(result, Immediate(object_size - kHeapObjectTag));
-    } else {
-      sub(result, Immediate(object_size));
-    }
-  } else if (tag_result) {
+    sub(result, Immediate(object_size - kHeapObjectTag));
+  } else {
+    // Tag the result.
     DCHECK(kHeapObjectTag == 1);
     inc(result);
   }
@@ -1594,6 +1602,8 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK((flags & SIZE_IN_WORDS) == 0);
+  DCHECK((flags & ALLOCATION_FOLDING_DOMINATOR) == 0);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1645,18 +1655,16 @@
   } else {
     DCHECK(element_count_type == REGISTER_VALUE_IS_INT32);
   }
+
   lea(result_end, Operand(element_count, element_size, header_size));
   add(result_end, result);
-  j(carry, gc_required);
   cmp(result_end, Operand::StaticVariable(allocation_limit));
   j(above, gc_required);
 
-  if ((flags & TAG_OBJECT) != 0) {
-    DCHECK(kHeapObjectTag == 1);
-    inc(result);
-  }
+  // Tag result.
+  DCHECK(kHeapObjectTag == 1);
+  inc(result);
 
-  // Update allocation top.
   UpdateAllocationTopHelper(result_end, scratch, flags);
 }
 
@@ -1668,6 +1676,7 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK((flags & (RESULT_CONTAINS_TOP | SIZE_IN_WORDS)) == 0);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1711,18 +1720,65 @@
     mov(result_end, object_size);
   }
   add(result_end, result);
-  j(carry, gc_required);
   cmp(result_end, Operand::StaticVariable(allocation_limit));
   j(above, gc_required);
 
-  // Tag result if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    DCHECK(kHeapObjectTag == 1);
-    inc(result);
+  // Tag result.
+  DCHECK(kHeapObjectTag == 1);
+  inc(result);
+
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    UpdateAllocationTopHelper(result_end, scratch, flags);
+  }
+}
+
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register result_end, AllocationFlags flags) {
+  DCHECK(!result.is(result_end));
+  // Load address of new object into result.
+  LoadAllocationTopHelper(result, no_reg, flags);
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    Label aligned;
+    test(result, Immediate(kDoubleAlignmentMask));
+    j(zero, &aligned, Label::kNear);
+    mov(Operand(result, 0),
+        Immediate(isolate()->factory()->one_pointer_filler_map()));
+    add(result, Immediate(kDoubleSize / 2));
+    bind(&aligned);
   }
 
-  // Update allocation top.
-  UpdateAllocationTopHelper(result_end, scratch, flags);
+  lea(result_end, Operand(result, object_size));
+  UpdateAllocationTopHelper(result_end, no_reg, flags);
+
+  DCHECK(kHeapObjectTag == 1);
+  inc(result);
+}
+
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, AllocationFlags flags) {
+  DCHECK(!result.is(result_end));
+  // Load address of new object into result.
+  LoadAllocationTopHelper(result, no_reg, flags);
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    Label aligned;
+    test(result, Immediate(kDoubleAlignmentMask));
+    j(zero, &aligned, Label::kNear);
+    mov(Operand(result, 0),
+        Immediate(isolate()->factory()->one_pointer_filler_map()));
+    add(result, Immediate(kDoubleSize / 2));
+    bind(&aligned);
+  }
+
+  lea(result_end, Operand(result, object_size, times_1, 0));
+  UpdateAllocationTopHelper(result_end, no_reg, flags);
+
+  DCHECK(kHeapObjectTag == 1);
+  inc(result);
 }
 
 
@@ -1733,7 +1789,7 @@
                                         MutableMode mode) {
   // Allocate heap number in new space.
   Allocate(HeapNumber::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   Handle<Map> map = mode == MUTABLE
       ? isolate()->factory()->mutable_heap_number_map()
@@ -1759,15 +1815,9 @@
   and_(scratch1, Immediate(~kObjectAlignmentMask));
 
   // Allocate two byte string in new space.
-  Allocate(SeqTwoByteString::kHeaderSize,
-           times_1,
-           scratch1,
-           REGISTER_VALUE_IS_INT32,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(SeqTwoByteString::kHeaderSize, times_1, scratch1,
+           REGISTER_VALUE_IS_INT32, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1793,15 +1843,9 @@
   and_(scratch1, Immediate(~kObjectAlignmentMask));
 
   // Allocate one-byte string in new space.
-  Allocate(SeqOneByteString::kHeaderSize,
-           times_1,
-           scratch1,
-           REGISTER_VALUE_IS_INT32,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(SeqOneByteString::kHeaderSize, times_1, scratch1,
+           REGISTER_VALUE_IS_INT32, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1821,7 +1865,7 @@
 
   // Allocate one-byte string in new space.
   Allocate(SeqOneByteString::SizeFor(length), result, scratch1, scratch2,
-           gc_required, TAG_OBJECT);
+           gc_required, NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1839,7 +1883,7 @@
                                         Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1851,12 +1895,8 @@
                                                Register scratch1,
                                                Register scratch2,
                                                Label* gc_required) {
-  Allocate(ConsString::kSize,
-           result,
-           scratch1,
-           scratch2,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1870,7 +1910,7 @@
                                           Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1884,7 +1924,7 @@
                                                  Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1900,7 +1940,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch, no_reg, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch, no_reg, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch);
diff --git a/src/ia32/macro-assembler-ia32.h b/src/ia32/macro-assembler-ia32.h
index be11f66..91c68d6 100644
--- a/src/ia32/macro-assembler-ia32.h
+++ b/src/ia32/macro-assembler-ia32.h
@@ -19,18 +19,16 @@
 const Register kReturnRegister2 = {Register::kCode_edi};
 const Register kJSFunctionRegister = {Register::kCode_edi};
 const Register kContextRegister = {Register::kCode_esi};
+const Register kAllocateSizeRegister = {Register::kCode_edx};
 const Register kInterpreterAccumulatorRegister = {Register::kCode_eax};
-const Register kInterpreterRegisterFileRegister = {Register::kCode_edx};
 const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_ecx};
 const Register kInterpreterBytecodeArrayRegister = {Register::kCode_edi};
+const Register kInterpreterDispatchTableRegister = {Register::kCode_esi};
 const Register kJavaScriptCallArgCountRegister = {Register::kCode_eax};
 const Register kJavaScriptCallNewTargetRegister = {Register::kCode_edx};
 const Register kRuntimeCallFunctionRegister = {Register::kCode_ebx};
 const Register kRuntimeCallArgCountRegister = {Register::kCode_eax};
 
-// Spill slots used by interpreter dispatch calling convention.
-const int kInterpreterDispatchTableSpillSlot = -1;
-
 // Convenience for platform-independent signatures.  We do not normally
 // distinguish memory operands from other operands on ia32.
 typedef Operand MemOperand;
@@ -511,6 +509,23 @@
     j(not_zero, not_smi_label, distance);
   }
 
+  // Jump if the value cannot be represented by a smi.
+  inline void JumpIfNotValidSmiValue(Register value, Register scratch,
+                                     Label* on_invalid,
+                                     Label::Distance distance = Label::kFar) {
+    mov(scratch, value);
+    add(scratch, Immediate(0x40000000U));
+    j(sign, on_invalid, distance);
+  }
+
+  // Jump if the unsigned integer value cannot be represented by a smi.
+  inline void JumpIfUIntNotValidSmiValue(
+      Register value, Label* on_invalid,
+      Label::Distance distance = Label::kFar) {
+    cmp(value, Immediate(0x40000000U));
+    j(above_equal, on_invalid, distance);
+  }
+
   void LoadInstanceDescriptors(Register map, Register descriptors);
   void EnumLength(Register dst, Register map);
   void NumberOfOwnDescriptors(Register dst, Register map);
@@ -566,6 +581,10 @@
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
   void AssertReceiver(Register object);
 
@@ -621,6 +640,14 @@
   void Allocate(Register object_size, Register result, Register result_end,
                 Register scratch, Label* gc_required, AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(int object_size, Register result, Register result_end,
+                    AllocationFlags flags);
+  void FastAllocate(Register object_size, Register result, Register result_end,
+                    AllocationFlags flags);
+
   // Allocate a heap number in new space with undefined value. The
   // register scratch2 can be passed as no_reg; the others must be
   // valid registers. Returns tagged pointer in result register, or
diff --git a/src/ic/arm/handler-compiler-arm.cc b/src/ic/arm/handler-compiler-arm.cc
index a3f23d3..ed26a4e 100644
--- a/src/ic/arm/handler-compiler-arm.cc
+++ b/src/ic/arm/handler-compiler-arm.cc
@@ -597,57 +597,6 @@
   __ Ret();
 }
 
-
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), receiver()));
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), reg));
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  __ push(receiver());
-  // Push data from AccessorInfo.
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ Move(scratch2(), data);
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch2(), cell);
-  }
-  __ push(scratch2());
-  __ LoadRoot(scratch2(), Heap::kUndefinedValueRootIndex);
-  __ Push(scratch2(), scratch2());
-  __ mov(scratch2(), Operand(ExternalReference::isolate_address(isolate())));
-  __ Push(scratch2(), reg);
-  __ Push(Smi::FromInt(0));  // should_throw_on_error -> false
-  __ push(name());
-
-  // Abi for CallApiGetter
-  Register getter_address_reg = ApiGetterDescriptor::function_address();
-
-  Address getter_address = v8::ToCData<Address>(callback->getter());
-  ApiFunction fun(getter_address);
-  ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL;
-  ExternalReference ref = ExternalReference(&fun, type, isolate());
-  __ mov(getter_address_reg, Operand(ref));
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
-
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
@@ -744,7 +693,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -784,7 +733,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/arm/ic-arm.cc b/src/ic/arm/ic-arm.cc
index 14ed8b4..b0bcc88 100644
--- a/src/ic/arm/ic-arm.cc
+++ b/src/ic/arm/ic-arm.cc
@@ -415,8 +415,8 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ mov(slot, Operand(Smi::FromInt(slot_index)));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key, r4, r5, r6, r9);
   // Cache miss.
@@ -626,10 +626,10 @@
   __ JumpIfSmi(receiver, &slow);
   // Get the map of the object.
   __ ldr(receiver_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ ldrb(ip, FieldMemOperand(receiver_map, Map::kBitFieldOffset));
-  __ tst(ip, Operand(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved));
+  __ tst(ip, Operand(1 << Map::kIsAccessCheckNeeded));
   __ b(ne, &slow);
   // Check if the object is a JS array or not.
   __ ldrb(r4, FieldMemOperand(receiver_map, Map::kInstanceTypeOffset));
@@ -682,10 +682,10 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ mov(slot, Operand(Smi::FromInt(slot_index)));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(
-      masm, Code::STORE_IC, flags, receiver, key, r5, temporary2, r6, r9);
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, r5, temporary2, r6, r9);
   // Cache miss.
   __ b(&miss);
 
@@ -743,11 +743,11 @@
   DCHECK(StoreDescriptor::ValueRegister().is(r0));
 
   // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
 
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, r3, r4, r5, r6);
+                                               receiver, name, r5, r6, r7, r8);
 
   // Cache miss: Jump to runtime.
   GenerateMiss(masm);
diff --git a/src/ic/arm/stub-cache-arm.cc b/src/ic/arm/stub-cache-arm.cc
index 86710eb..db8be30 100644
--- a/src/ic/arm/stub-cache-arm.cc
+++ b/src/ic/arm/stub-cache-arm.cc
@@ -14,10 +14,9 @@
 
 #define __ ACCESS_MASM(masm)
 
-
 static void ProbeTable(Isolate* isolate, MacroAssembler* masm,
-                       Code::Kind ic_kind, Code::Flags flags,
-                       StubCache::Table table, Register receiver, Register name,
+                       Code::Flags flags, StubCache::Table table,
+                       Register receiver, Register name,
                        // Number of the cache entry, not scaled.
                        Register offset, Register scratch, Register scratch2,
                        Register offset_scratch) {
@@ -103,9 +102,6 @@
   // entry size being 12.
   DCHECK(sizeof(Entry) == 12);
 
-  // Make sure the flags does not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Make sure that there are no register conflicts.
   DCHECK(!AreAliased(receiver, name, scratch, extra, extra2, extra3));
 
@@ -154,8 +150,8 @@
   __ and_(scratch, scratch, Operand(mask));
 
   // Probe the primary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kPrimary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kPrimary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Primary miss: Compute hash for secondary probe.
   __ sub(scratch, scratch, Operand(name, LSR, kCacheIndexShift));
@@ -164,8 +160,8 @@
   __ and_(scratch, scratch, Operand(mask2));
 
   // Probe the secondary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kSecondary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kSecondary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Cache miss: Fall-through and let caller handle the miss by
   // entering the runtime system.
diff --git a/src/ic/arm64/handler-compiler-arm64.cc b/src/ic/arm64/handler-compiler-arm64.cc
index a704492..84c0397 100644
--- a/src/ic/arm64/handler-compiler-arm64.cc
+++ b/src/ic/arm64/handler-compiler-arm64.cc
@@ -382,7 +382,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -632,56 +632,6 @@
   __ Ret();
 }
 
-
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), receiver()));
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), reg));
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  __ Push(receiver());
-
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ Mov(scratch3(), Operand(data));
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch3(), cell);
-  }
-  __ LoadRoot(scratch4(), Heap::kUndefinedValueRootIndex);
-  __ Mov(scratch2(), Operand(ExternalReference::isolate_address(isolate())));
-  __ Push(scratch3(), scratch4(), scratch4(), scratch2(), reg);
-  __ Push(Smi::FromInt(0));  // should_throw_on_error -> false
-  __ Push(name());
-
-  // Abi for CallApiGetter.
-  Register getter_address_reg = x2;
-
-  // Set up the call.
-  Address getter_address = v8::ToCData<Address>(callback->getter());
-  ApiFunction fun(getter_address);
-  ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL;
-  ExternalReference ref = ExternalReference(&fun, type, isolate());
-  __ Mov(getter_address_reg, ref);
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
-
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(!AreAliased(receiver(), this->name(), scratch1(), scratch2(),
@@ -782,7 +732,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/arm64/ic-arm64.cc b/src/ic/arm64/ic-arm64.cc
index 726a68e..3fd384e 100644
--- a/src/ic/arm64/ic-arm64.cc
+++ b/src/ic/arm64/ic-arm64.cc
@@ -394,8 +394,8 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ Mov(slot, Operand(Smi::FromInt(slot_index)));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key, scratch1,
                                                scratch2, scratch3, scratch4);
@@ -622,11 +622,10 @@
   __ JumpIfSmi(receiver, &slow);
   __ Ldr(receiver_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
 
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ Ldrb(x10, FieldMemOperand(receiver_map, Map::kBitFieldOffset));
-  __ TestAndBranchIfAnySet(
-      x10, (1 << Map::kIsAccessCheckNeeded) | (1 << Map::kIsObserved), &slow);
+  __ TestAndBranchIfAnySet(x10, (1 << Map::kIsAccessCheckNeeded), &slow);
 
   // Check if the object is a JS array or not.
   Register instance_type = x10;
@@ -673,10 +672,10 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ Mov(slot, Operand(Smi::FromInt(slot_index)));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, key, x5, x6, x7, x8);
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, x5, x6, x7, x8);
   // Cache miss.
   __ B(&miss);
 
@@ -729,14 +728,14 @@
 void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  DCHECK(!AreAliased(receiver, name, StoreDescriptor::ValueRegister(), x3, x4,
-                     x5, x6));
+  DCHECK(!AreAliased(receiver, name, StoreDescriptor::ValueRegister(), x5, x6,
+                     x7, x8));
 
   // Probe the stub cache.
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, x3, x4, x5, x6);
+                                               receiver, name, x5, x6, x7, x8);
 
   // Cache miss: Jump to runtime.
   GenerateMiss(masm);
diff --git a/src/ic/arm64/stub-cache-arm64.cc b/src/ic/arm64/stub-cache-arm64.cc
index eb82f2a..8d378ce 100644
--- a/src/ic/arm64/stub-cache-arm64.cc
+++ b/src/ic/arm64/stub-cache-arm64.cc
@@ -23,10 +23,9 @@
 //
 // 'receiver', 'name' and 'offset' registers are preserved on miss.
 static void ProbeTable(Isolate* isolate, MacroAssembler* masm,
-                       Code::Kind ic_kind, Code::Flags flags,
-                       StubCache::Table table, Register receiver, Register name,
-                       Register offset, Register scratch, Register scratch2,
-                       Register scratch3) {
+                       Code::Flags flags, StubCache::Table table,
+                       Register receiver, Register name, Register offset,
+                       Register scratch, Register scratch2, Register scratch3) {
   // Some code below relies on the fact that the Entry struct contains
   // 3 pointers (name, code, map).
   STATIC_ASSERT(sizeof(StubCache::Entry) == (3 * kPointerSize));
@@ -95,9 +94,6 @@
   Isolate* isolate = masm->isolate();
   Label miss;
 
-  // Make sure the flags does not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Make sure that there are no register conflicts.
   DCHECK(!AreAliased(receiver, name, scratch, extra, extra2, extra3));
 
@@ -140,8 +136,8 @@
           CountTrailingZeros(kPrimaryTableSize, 64));
 
   // Probe the primary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kPrimary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kPrimary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Primary miss: Compute hash for secondary table.
   __ Sub(scratch, scratch, Operand(name, LSR, kCacheIndexShift));
@@ -149,8 +145,8 @@
   __ And(scratch, scratch, kSecondaryTableSize - 1);
 
   // Probe the secondary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kSecondary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kSecondary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Cache miss: Fall-through and let caller handle the miss by
   // entering the runtime system.
diff --git a/src/ic/handler-compiler.cc b/src/ic/handler-compiler.cc
index 714888c..2c8c092 100644
--- a/src/ic/handler-compiler.cc
+++ b/src/ic/handler-compiler.cc
@@ -14,16 +14,14 @@
 namespace v8 {
 namespace internal {
 
-
 Handle<Code> PropertyHandlerCompiler::Find(Handle<Name> name,
                                            Handle<Map> stub_holder,
                                            Code::Kind kind,
-                                           CacheHolderFlag cache_holder,
-                                           Code::StubType type) {
-  Code::Flags flags = Code::ComputeHandlerFlags(kind, type, cache_holder);
-  Object* probe = stub_holder->FindInCodeCache(*name, flags);
-  if (probe->IsCode()) return handle(Code::cast(probe));
-  return Handle<Code>::null();
+                                           CacheHolderFlag cache_holder) {
+  Code::Flags flags = Code::ComputeHandlerFlags(kind, cache_holder);
+  Code* code = stub_holder->LookupInCodeCache(*name, flags);
+  if (code == nullptr) return Handle<Code>();
+  return handle(code);
 }
 
 
@@ -66,9 +64,10 @@
   // Compile the stub that is either shared for all names or
   // name specific if there are global objects involved.
   Handle<Code> handler = PropertyHandlerCompiler::Find(
-      cache_name, stub_holder_map, Code::LOAD_IC, flag, Code::FAST);
+      cache_name, stub_holder_map, Code::LOAD_IC, flag);
   if (!handler.is_null()) return handler;
 
+  TRACE_HANDLER_STATS(isolate, LoadIC_LoadNonexistent);
   NamedLoadHandlerCompiler compiler(isolate, receiver_map, last, flag);
   handler = compiler.CompileLoadNonexistent(cache_name);
   Map::UpdateCodeCache(stub_holder_map, cache_name, handler);
@@ -77,9 +76,8 @@
 
 
 Handle<Code> PropertyHandlerCompiler::GetCode(Code::Kind kind,
-                                              Code::StubType type,
                                               Handle<Name> name) {
-  Code::Flags flags = Code::ComputeHandlerFlags(kind, type, cache_holder());
+  Code::Flags flags = Code::ComputeHandlerFlags(kind, cache_holder());
   Handle<Code> code = GetCodeWithFlags(flags, name);
   PROFILE(isolate(), CodeCreateEvent(Logger::HANDLER_TAG,
                                      AbstractCode::cast(*code), *name));
@@ -194,7 +192,7 @@
   __ Move(receiver(), reg);
   LoadFieldStub stub(isolate(), field);
   GenerateTailCall(masm(), stub.GetCode());
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -204,7 +202,7 @@
   __ Move(receiver(), reg);
   LoadConstantStub stub(isolate(), constant_index);
   GenerateTailCall(masm(), stub.GetCode());
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -221,7 +219,7 @@
   }
   GenerateLoadConstant(isolate()->factory()->undefined_value());
   FrontendFooter(name, &miss);
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -229,7 +227,7 @@
     Handle<Name> name, Handle<AccessorInfo> callback) {
   Register reg = Frontend(name);
   GenerateLoadCallback(reg, callback);
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -240,7 +238,7 @@
   Register holder = Frontend(name);
   GenerateApiAccessorCall(masm(), call_optimization, map(), receiver(),
                           scratch2(), false, no_reg, holder, accessor_index);
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -358,9 +356,21 @@
   } else {
     GenerateLoadInterceptor(reg);
   }
-  return GetCode(kind(), Code::FAST, it->name());
+  return GetCode(kind(), it->name());
 }
 
+void NamedLoadHandlerCompiler::GenerateLoadCallback(
+    Register reg, Handle<AccessorInfo> callback) {
+  DCHECK(receiver().is(ApiGetterDescriptor::ReceiverRegister()));
+  __ Move(ApiGetterDescriptor::HolderRegister(), reg);
+  // The callback is alive if this instruction is executed,
+  // so the weak cell is not cleared and points to data.
+  Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
+  __ GetWeakValue(ApiGetterDescriptor::CallbackRegister(), cell);
+
+  CallApiGetterStub stub(isolate());
+  __ TailCallStub(&stub);
+}
 
 void NamedLoadHandlerCompiler::GenerateLoadPostInterceptor(
     LookupIterator* it, Register interceptor_reg) {
@@ -416,7 +426,7 @@
   Register holder = Frontend(name);
   GenerateLoadViaGetter(masm(), map(), receiver(), holder, accessor_index,
                         expected_arguments, scratch2());
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -506,7 +516,7 @@
   PopVectorAndSlot();
   TailCallBuiltin(masm(), MissBuiltin(kind()));
 
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 bool NamedStoreHandlerCompiler::RequiresFieldTypeChecks(
@@ -534,7 +544,7 @@
   __ bind(&miss);
   if (need_save_restore) PopVectorAndSlot();
   TailCallBuiltin(masm(), MissBuiltin(kind()));
-  return GetCode(kind(), Code::FAST, it->name());
+  return GetCode(kind(), it->name());
 }
 
 
@@ -545,7 +555,7 @@
   GenerateStoreViaSetter(masm(), map(), receiver(), holder, accessor_index,
                          expected_arguments, scratch2());
 
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -556,7 +566,7 @@
   GenerateApiAccessorCall(masm(), call_optimization, handle(object->map()),
                           receiver(), scratch2(), true, value(), holder,
                           accessor_index);
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/handler-compiler.h b/src/ic/handler-compiler.h
index 76036a2..e34cd68 100644
--- a/src/ic/handler-compiler.h
+++ b/src/ic/handler-compiler.h
@@ -19,7 +19,7 @@
 class PropertyHandlerCompiler : public PropertyAccessCompiler {
  public:
   static Handle<Code> Find(Handle<Name> name, Handle<Map> map, Code::Kind kind,
-                           CacheHolderFlag cache_holder, Code::StubType type);
+                           CacheHolderFlag cache_holder);
 
  protected:
   PropertyHandlerCompiler(Isolate* isolate, Code::Kind kind, Handle<Map> map,
@@ -98,7 +98,7 @@
                            Handle<Name> name, Label* miss,
                            PrototypeCheckType check, ReturnHolder return_what);
 
-  Handle<Code> GetCode(Code::Kind kind, Code::StubType type, Handle<Name> name);
+  Handle<Code> GetCode(Code::Kind kind, Handle<Name> name);
   void set_holder(Handle<JSObject> holder) { holder_ = holder; }
   Handle<Map> map() const { return map_; }
   void set_map(Handle<Map> map) { map_ = map; }
diff --git a/src/ic/ia32/handler-compiler-ia32.cc b/src/ic/ia32/handler-compiler-ia32.cc
index 132090d..37ab66d 100644
--- a/src/ic/ia32/handler-compiler-ia32.cc
+++ b/src/ic/ia32/handler-compiler-ia32.cc
@@ -594,58 +594,6 @@
 }
 
 
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(scratch2(), scratch3(), receiver()));
-  DCHECK(!AreAliased(scratch2(), scratch3(), reg));
-
-  // Insert additional parameters into the stack frame above return address.
-  __ pop(scratch3());  // Get return address to place it below.
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  __ push(receiver());  // receiver
-  // Push data from AccessorInfo.
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ push(Immediate(data));
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch2(), cell);
-    __ push(scratch2());
-  }
-  __ push(Immediate(isolate()->factory()->undefined_value()));  // ReturnValue
-  // ReturnValue default value
-  __ push(Immediate(isolate()->factory()->undefined_value()));
-  __ push(Immediate(reinterpret_cast<int>(isolate())));
-  __ push(reg);  // holder
-  __ push(Immediate(Smi::FromInt(0)));  // should_throw_on_error -> false
-
-  __ push(name());  // name
-  __ push(scratch3());  // Restore return address.
-
-  // Abi for CallApiGetter
-  Register getter_address = ApiGetterDescriptor::function_address();
-  Address function_address = v8::ToCData<Address>(callback->getter());
-  __ mov(getter_address, Immediate(function_address));
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
-
 void NamedLoadHandlerCompiler::GenerateLoadConstant(Handle<Object> value) {
   // Return the constant value.
   __ LoadObject(eax, value);
@@ -759,7 +707,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -801,7 +749,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/ia32/ic-ia32.cc b/src/ic/ia32/ic-ia32.cc
index e66716f..d32e1c3 100644
--- a/src/ic/ia32/ic-ia32.cc
+++ b/src/ic/ia32/ic-ia32.cc
@@ -336,8 +336,8 @@
   __ push(Immediate(Smi::FromInt(slot)));
   __ push(Immediate(dummy_vector));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key, ebx, edi);
 
@@ -519,10 +519,10 @@
   __ JumpIfSmi(receiver, &slow);
   // Get the map from the receiver.
   __ mov(edi, FieldOperand(receiver, HeapObject::kMapOffset));
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ test_b(FieldOperand(edi, Map::kBitFieldOffset),
-            Immediate(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved));
+            Immediate(1 << Map::kIsAccessCheckNeeded));
   __ j(not_zero, &slow);
   // Check that the key is a smi.
   __ JumpIfNotSmi(key, &maybe_name_key);
@@ -563,10 +563,10 @@
   __ push(Immediate(Smi::FromInt(slot)));
   __ push(Immediate(dummy_vector));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, key, edi, no_reg);
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, edi, no_reg);
 
   __ pop(VectorStoreICDescriptor::VectorRegister());
   __ pop(VectorStoreICDescriptor::SlotRegister());
diff --git a/src/ic/ia32/stub-cache-ia32.cc b/src/ic/ia32/stub-cache-ia32.cc
index fcfae4b..5a32858 100644
--- a/src/ic/ia32/stub-cache-ia32.cc
+++ b/src/ic/ia32/stub-cache-ia32.cc
@@ -153,9 +153,6 @@
   // being 12.
   DCHECK(sizeof(Entry) == 12);
 
-  // Assert the flags do not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Assert that there are no register conflicts.
   DCHECK(!scratch.is(receiver));
   DCHECK(!scratch.is(name));
diff --git a/src/ic/ic-compiler.cc b/src/ic/ic-compiler.cc
index 9f1d87a..e89cb4b 100644
--- a/src/ic/ic-compiler.cc
+++ b/src/ic/ic-compiler.cc
@@ -13,26 +13,6 @@
 namespace internal {
 
 
-Handle<Code> PropertyICCompiler::Find(Handle<Name> name,
-                                      Handle<Map> stub_holder, Code::Kind kind,
-                                      ExtraICState extra_state,
-                                      CacheHolderFlag cache_holder) {
-  Code::Flags flags =
-      Code::ComputeMonomorphicFlags(kind, extra_state, cache_holder);
-  Object* probe = stub_holder->FindInCodeCache(*name, flags);
-  if (probe->IsCode()) return handle(Code::cast(probe));
-  return Handle<Code>::null();
-}
-
-
-bool PropertyICCompiler::IncludesNumberMap(MapHandleList* maps) {
-  for (int i = 0; i < maps->length(); ++i) {
-    if (maps->at(i)->instance_type() == HEAP_NUMBER_TYPE) return true;
-  }
-  return false;
-}
-
-
 Handle<Code> PropertyICCompiler::ComputeKeyedLoadMonomorphicHandler(
     Handle<Map> receiver_map, ExtraICState extra_ic_state) {
   Isolate* isolate = receiver_map->GetIsolate();
@@ -46,179 +26,68 @@
       *receiver_map == isolate->get_initial_js_array_map(elements_kind);
   Handle<Code> stub;
   if (receiver_map->has_indexed_interceptor()) {
+    TRACE_HANDLER_STATS(isolate, KeyedLoadIC_LoadIndexedInterceptorStub);
     stub = LoadIndexedInterceptorStub(isolate).GetCode();
   } else if (receiver_map->IsStringMap()) {
+    TRACE_HANDLER_STATS(isolate, KeyedLoadIC_LoadIndexedStringStub);
     stub = LoadIndexedStringStub(isolate).GetCode();
   } else if (receiver_map->has_sloppy_arguments_elements()) {
+    TRACE_HANDLER_STATS(isolate, KeyedLoadIC_KeyedLoadSloppyArgumentsStub);
     stub = KeyedLoadSloppyArgumentsStub(isolate).GetCode();
   } else if (receiver_map->has_fast_elements() ||
              receiver_map->has_fixed_typed_array_elements()) {
+    TRACE_HANDLER_STATS(isolate, KeyedLoadIC_LoadFastElementStub);
     stub = LoadFastElementStub(isolate, is_js_array, elements_kind,
                                convert_hole_to_undefined).GetCode();
   } else {
     DCHECK(receiver_map->has_dictionary_elements());
+    TRACE_HANDLER_STATS(isolate, KeyedLoadIC_LoadDictionaryElementStub);
     stub = LoadDictionaryElementStub(isolate, LoadICState(extra_ic_state))
                .GetCode();
   }
   return stub;
 }
 
-
 Handle<Code> PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(
-    Handle<Map> receiver_map, LanguageMode language_mode,
-    KeyedAccessStoreMode store_mode) {
+    Handle<Map> receiver_map, KeyedAccessStoreMode store_mode) {
   Isolate* isolate = receiver_map->GetIsolate();
-  ExtraICState extra_state =
-      KeyedStoreIC::ComputeExtraICState(language_mode, store_mode);
 
   DCHECK(store_mode == STANDARD_STORE ||
          store_mode == STORE_AND_GROW_NO_TRANSITION ||
          store_mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS ||
          store_mode == STORE_NO_TRANSITION_HANDLE_COW);
 
-  PropertyICCompiler compiler(isolate, Code::KEYED_STORE_IC, extra_state);
+  PropertyICCompiler compiler(isolate);
   Handle<Code> code =
       compiler.CompileKeyedStoreMonomorphicHandler(receiver_map, store_mode);
   return code;
 }
 
-
-Code* PropertyICCompiler::FindPreMonomorphic(Isolate* isolate, Code::Kind kind,
-                                             ExtraICState state) {
-  Code::Flags flags = Code::ComputeFlags(kind, PREMONOMORPHIC, state);
-  UnseededNumberDictionary* dictionary =
-      isolate->heap()->non_monomorphic_cache();
-  int entry = dictionary->FindEntry(isolate, flags);
-  DCHECK(entry != -1);
-  Object* code = dictionary->ValueAt(entry);
-  // This might be called during the marking phase of the collector
-  // hence the unchecked cast.
-  return reinterpret_cast<Code*>(code);
-}
-
-
-static void FillCache(Isolate* isolate, Handle<Code> code) {
-  Handle<UnseededNumberDictionary> dictionary = UnseededNumberDictionary::Set(
-      isolate->factory()->non_monomorphic_cache(), code->flags(), code);
-  isolate->heap()->SetRootNonMonomorphicCache(*dictionary);
-}
-
-
-Handle<Code> PropertyICCompiler::ComputeStore(Isolate* isolate,
-                                              InlineCacheState ic_state,
-                                              ExtraICState extra_state) {
-  Code::Flags flags = Code::ComputeFlags(Code::STORE_IC, ic_state, extra_state);
-  Handle<UnseededNumberDictionary> cache =
-      isolate->factory()->non_monomorphic_cache();
-  int entry = cache->FindEntry(isolate, flags);
-  if (entry != -1) return Handle<Code>(Code::cast(cache->ValueAt(entry)));
-
-  PropertyICCompiler compiler(isolate, Code::STORE_IC);
-  Handle<Code> code;
-  if (ic_state == UNINITIALIZED) {
-    code = compiler.CompileStoreInitialize(flags);
-  } else if (ic_state == PREMONOMORPHIC) {
-    code = compiler.CompileStorePreMonomorphic(flags);
-  } else if (ic_state == GENERIC) {
-    code = compiler.CompileStoreGeneric(flags);
-  } else if (ic_state == MEGAMORPHIC) {
-    code = compiler.CompileStoreMegamorphic(flags);
-  } else {
-    UNREACHABLE();
-  }
-
-  FillCache(isolate, code);
-  return code;
-}
-
-
 void PropertyICCompiler::ComputeKeyedStorePolymorphicHandlers(
     MapHandleList* receiver_maps, MapHandleList* transitioned_maps,
-    CodeHandleList* handlers, KeyedAccessStoreMode store_mode,
-    LanguageMode language_mode) {
+    CodeHandleList* handlers, KeyedAccessStoreMode store_mode) {
   Isolate* isolate = receiver_maps->at(0)->GetIsolate();
   DCHECK(store_mode == STANDARD_STORE ||
          store_mode == STORE_AND_GROW_NO_TRANSITION ||
          store_mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS ||
          store_mode == STORE_NO_TRANSITION_HANDLE_COW);
-  ExtraICState extra_state =
-      KeyedStoreIC::ComputeExtraICState(language_mode, store_mode);
-  PropertyICCompiler compiler(isolate, Code::KEYED_STORE_IC, extra_state);
+  PropertyICCompiler compiler(isolate);
   compiler.CompileKeyedStorePolymorphicHandlers(
       receiver_maps, transitioned_maps, handlers, store_mode);
 }
 
 
-Handle<Code> PropertyICCompiler::CompileLoadInitialize(Code::Flags flags) {
-  LoadIC::GenerateInitialize(masm());
-  Handle<Code> code = GetCodeWithFlags(flags, "CompileLoadInitialize");
-  PROFILE(isolate(), CodeCreateEvent(Logger::LOAD_INITIALIZE_TAG,
-                                     AbstractCode::cast(*code), 0));
-  return code;
-}
-
-
-Handle<Code> PropertyICCompiler::CompileStoreInitialize(Code::Flags flags) {
-  StoreIC::GenerateInitialize(masm());
-  Handle<Code> code = GetCodeWithFlags(flags, "CompileStoreInitialize");
-  PROFILE(isolate(), CodeCreateEvent(Logger::STORE_INITIALIZE_TAG,
-                                     AbstractCode::cast(*code), 0));
-  return code;
-}
-
-
-Handle<Code> PropertyICCompiler::CompileStorePreMonomorphic(Code::Flags flags) {
-  StoreIC::GeneratePreMonomorphic(masm());
-  Handle<Code> code = GetCodeWithFlags(flags, "CompileStorePreMonomorphic");
-  PROFILE(isolate(), CodeCreateEvent(Logger::STORE_PREMONOMORPHIC_TAG,
-                                     AbstractCode::cast(*code), 0));
-  return code;
-}
-
-
-Handle<Code> PropertyICCompiler::CompileStoreGeneric(Code::Flags flags) {
-  ExtraICState extra_state = Code::ExtractExtraICStateFromFlags(flags);
-  LanguageMode language_mode = StoreICState::GetLanguageMode(extra_state);
-  GenerateRuntimeSetProperty(masm(), language_mode);
-  Handle<Code> code = GetCodeWithFlags(flags, "CompileStoreGeneric");
-  PROFILE(isolate(), CodeCreateEvent(Logger::STORE_GENERIC_TAG,
-                                     AbstractCode::cast(*code), 0));
-  return code;
-}
-
-
-Handle<Code> PropertyICCompiler::CompileStoreMegamorphic(Code::Flags flags) {
-  StoreIC::GenerateMegamorphic(masm());
-  Handle<Code> code = GetCodeWithFlags(flags, "CompileStoreMegamorphic");
-  PROFILE(isolate(), CodeCreateEvent(Logger::STORE_MEGAMORPHIC_TAG,
-                                     AbstractCode::cast(*code), 0));
-  return code;
-}
-
-
-Handle<Code> PropertyICCompiler::GetCode(Code::Kind kind, Code::StubType type,
-                                         Handle<Name> name,
-                                         InlineCacheState state) {
-  Code::Flags flags =
-      Code::ComputeFlags(kind, state, extra_ic_state_, type, cache_holder());
-  Handle<Code> code = GetCodeWithFlags(flags, name);
-  PROFILE(isolate(),
-          CodeCreateEvent(log_kind(code), AbstractCode::cast(*code), *name));
-#ifdef DEBUG
-  code->VerifyEmbeddedObjects();
-#endif
-  return code;
-}
-
-
 void PropertyICCompiler::CompileKeyedStorePolymorphicHandlers(
     MapHandleList* receiver_maps, MapHandleList* transitioned_maps,
     CodeHandleList* handlers, KeyedAccessStoreMode store_mode) {
   for (int i = 0; i < receiver_maps->length(); ++i) {
     Handle<Map> receiver_map(receiver_maps->at(i));
     Handle<Code> cached_stub;
-    Handle<Map> transitioned_map =
-        Map::FindTransitionedMap(receiver_map, receiver_maps);
+    Handle<Map> transitioned_map;
+    {
+      Map* tmap = receiver_map->FindElementsKindTransitionedMap(receiver_maps);
+      if (tmap != nullptr) transitioned_map = handle(tmap);
+    }
 
     // TODO(mvstanton): The code below is doing pessimistic elements
     // transitions. I would like to stop doing that and rely on Allocation Site
@@ -265,34 +134,21 @@
   bool is_jsarray = receiver_map->instance_type() == JS_ARRAY_TYPE;
   Handle<Code> stub;
   if (receiver_map->has_sloppy_arguments_elements()) {
+    TRACE_HANDLER_STATS(isolate(), KeyedStoreIC_KeyedStoreSloppyArgumentsStub);
     stub = KeyedStoreSloppyArgumentsStub(isolate(), store_mode).GetCode();
   } else if (receiver_map->has_fast_elements() ||
              receiver_map->has_fixed_typed_array_elements()) {
+    TRACE_HANDLER_STATS(isolate(), KeyedStoreIC_StoreFastElementStub);
     stub = StoreFastElementStub(isolate(), is_jsarray, elements_kind,
                                 store_mode).GetCode();
   } else {
+    TRACE_HANDLER_STATS(isolate(), KeyedStoreIC_StoreElementStub);
     stub = StoreElementStub(isolate(), elements_kind, store_mode).GetCode();
   }
   return stub;
 }
 
 
-Handle<Code> PropertyICCompiler::CompileKeyedStoreMonomorphic(
-    Handle<Map> receiver_map, KeyedAccessStoreMode store_mode) {
-  Handle<Code> stub =
-      CompileKeyedStoreMonomorphicHandler(receiver_map, store_mode);
-
-  Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-
-  __ DispatchWeakMap(receiver(), scratch1(), scratch2(), cell, stub,
-                     DO_SMI_CHECK);
-
-  TailCallBuiltin(masm(), Builtins::kKeyedStoreIC_Miss);
-
-  return GetCode(kind(), Code::NORMAL, factory()->empty_string());
-}
-
-
 #undef __
 }  // namespace internal
 }  // namespace v8
diff --git a/src/ic/ic-compiler.h b/src/ic/ic-compiler.h
index 3a5aecc..9d8884f 100644
--- a/src/ic/ic-compiler.h
+++ b/src/ic/ic-compiler.h
@@ -13,25 +13,15 @@
 
 class PropertyICCompiler : public PropertyAccessCompiler {
  public:
-  // Finds the Code object stored in the Heap::non_monomorphic_cache().
-  static Code* FindPreMonomorphic(Isolate* isolate, Code::Kind kind,
-                                  ExtraICState extra_ic_state);
-
-  // Named
-  static Handle<Code> ComputeStore(Isolate* isolate, InlineCacheState ic_state,
-                                   ExtraICState extra_state);
-
   // Keyed
   static Handle<Code> ComputeKeyedLoadMonomorphicHandler(
       Handle<Map> receiver_map, ExtraICState extra_ic_state);
 
   static Handle<Code> ComputeKeyedStoreMonomorphicHandler(
-      Handle<Map> receiver_map, LanguageMode language_mode,
-      KeyedAccessStoreMode store_mode);
+      Handle<Map> receiver_map, KeyedAccessStoreMode store_mode);
   static void ComputeKeyedStorePolymorphicHandlers(
       MapHandleList* receiver_maps, MapHandleList* transitioned_maps,
-      CodeHandleList* handlers, KeyedAccessStoreMode store_mode,
-      LanguageMode language_mode);
+      CodeHandleList* handlers, KeyedAccessStoreMode store_mode);
 
   // Helpers
   // TODO(verwaest): Move all uses of these helpers to the PropertyICCompiler
@@ -41,57 +31,16 @@
 
 
  private:
-  PropertyICCompiler(Isolate* isolate, Code::Kind kind,
-                     ExtraICState extra_ic_state = kNoExtraICState,
-                     CacheHolderFlag cache_holder = kCacheOnReceiver)
-      : PropertyAccessCompiler(isolate, kind, cache_holder),
-        extra_ic_state_(extra_ic_state) {}
-
-  static Handle<Code> Find(Handle<Name> name, Handle<Map> stub_holder_map,
-                           Code::Kind kind,
-                           ExtraICState extra_ic_state = kNoExtraICState,
-                           CacheHolderFlag cache_holder = kCacheOnReceiver);
-
-  Handle<Code> CompileLoadInitialize(Code::Flags flags);
-  Handle<Code> CompileStoreInitialize(Code::Flags flags);
-  Handle<Code> CompileStorePreMonomorphic(Code::Flags flags);
-  Handle<Code> CompileStoreGeneric(Code::Flags flags);
-  Handle<Code> CompileStoreMegamorphic(Code::Flags flags);
+  explicit PropertyICCompiler(Isolate* isolate)
+      : PropertyAccessCompiler(isolate, Code::KEYED_STORE_IC,
+                               kCacheOnReceiver) {}
 
   Handle<Code> CompileKeyedStoreMonomorphicHandler(
       Handle<Map> receiver_map, KeyedAccessStoreMode store_mode);
-  Handle<Code> CompileKeyedStoreMonomorphic(Handle<Map> receiver_map,
-                                            KeyedAccessStoreMode store_mode);
   void CompileKeyedStorePolymorphicHandlers(MapHandleList* receiver_maps,
                                             MapHandleList* transitioned_maps,
                                             CodeHandleList* handlers,
                                             KeyedAccessStoreMode store_mode);
-
-  bool IncludesNumberMap(MapHandleList* maps);
-
-  Handle<Code> GetCode(Code::Kind kind, Code::StubType type, Handle<Name> name,
-                       InlineCacheState state = MONOMORPHIC);
-
-  Logger::LogEventsAndTags log_kind(Handle<Code> code) {
-    if (kind() == Code::LOAD_IC) {
-      return code->ic_state() == MONOMORPHIC ? Logger::LOAD_IC_TAG
-                                             : Logger::LOAD_POLYMORPHIC_IC_TAG;
-    } else if (kind() == Code::KEYED_LOAD_IC) {
-      return code->ic_state() == MONOMORPHIC
-                 ? Logger::KEYED_LOAD_IC_TAG
-                 : Logger::KEYED_LOAD_POLYMORPHIC_IC_TAG;
-    } else if (kind() == Code::STORE_IC) {
-      return code->ic_state() == MONOMORPHIC ? Logger::STORE_IC_TAG
-                                             : Logger::STORE_POLYMORPHIC_IC_TAG;
-    } else {
-      DCHECK_EQ(Code::KEYED_STORE_IC, kind());
-      return code->ic_state() == MONOMORPHIC
-                 ? Logger::KEYED_STORE_IC_TAG
-                 : Logger::KEYED_STORE_POLYMORPHIC_IC_TAG;
-    }
-  }
-
-  const ExtraICState extra_ic_state_;
 };
 
 
diff --git a/src/ic/ic-inl.h b/src/ic/ic-inl.h
index 998bd8c..f77c40a 100644
--- a/src/ic/ic-inl.h
+++ b/src/ic/ic-inl.h
@@ -87,42 +87,12 @@
 
 void IC::set_target(Code* code) {
   SetTargetAtAddress(address(), code, constant_pool());
-  target_set_ = true;
 }
 
-
-void LoadIC::set_target(Code* code) {
-  // The contextual mode must be preserved across IC patching.
-  DCHECK(LoadICState::GetTypeofMode(code->extra_ic_state()) ==
-         LoadICState::GetTypeofMode(target()->extra_ic_state()));
-
-  IC::set_target(code);
-}
-
-
-void StoreIC::set_target(Code* code) {
-  // Language mode must be preserved across IC patching.
-  DCHECK(StoreICState::GetLanguageMode(code->extra_ic_state()) ==
-         StoreICState::GetLanguageMode(target()->extra_ic_state()));
-  IC::set_target(code);
-}
-
-
-void KeyedStoreIC::set_target(Code* code) {
-  // Language mode must be preserved across IC patching.
-  DCHECK(StoreICState::GetLanguageMode(code->extra_ic_state()) ==
-         language_mode());
-  IC::set_target(code);
-}
-
-
-Code* IC::raw_target() const {
+Code* IC::target() const {
   return GetTargetAtAddress(address(), constant_pool());
 }
 
-void IC::UpdateTarget() { target_ = handle(raw_target(), isolate_); }
-
-
 Handle<Map> IC::GetHandlerCacheHolder(Handle<Map> receiver_map,
                                       bool receiver_is_holder, Isolate* isolate,
                                       CacheHolderFlag* flag) {
diff --git a/src/ic/ic.cc b/src/ic/ic.cc
index c5835e4..2dcb8d9 100644
--- a/src/ic/ic.cc
+++ b/src/ic/ic.cc
@@ -9,7 +9,6 @@
 #include "src/api-arguments.h"
 #include "src/arguments.h"
 #include "src/base/bits.h"
-#include "src/code-factory.h"
 #include "src/codegen.h"
 #include "src/conversions.h"
 #include "src/execution.h"
@@ -38,7 +37,7 @@
       return '.';
     case MONOMORPHIC:
       return '1';
-    case PROTOTYPE_FAILURE:
+    case RECOMPUTE_HANDLER:
       return '^';
     case POLYMORPHIC:
       return 'P';
@@ -95,8 +94,8 @@
 void IC::TraceIC(const char* type, Handle<Object> name) {
   if (FLAG_trace_ic) {
     if (AddressIsDeoptimizedCode()) return;
-    State new_state =
-        UseVector() ? nexus()->StateFromFeedback() : raw_target()->ic_state();
+    DCHECK(UseVector());
+    State new_state = nexus()->StateFromFeedback();
     TraceIC(type, name, state(), new_state);
   }
 }
@@ -105,8 +104,7 @@
 void IC::TraceIC(const char* type, Handle<Object> name, State old_state,
                  State new_state) {
   if (FLAG_trace_ic) {
-    Code* new_target = raw_target();
-    PrintF("[%s%s in ", new_target->is_keyed_stub() ? "Keyed" : "", type);
+    PrintF("[%s%s in ", is_keyed() ? "Keyed" : "", type);
 
     // TODO(jkummerow): Add support for "apply". The logic is roughly:
     // marker = [fp_ + kMarkerOffset];
@@ -123,7 +121,7 @@
     }
 
     const char* modifier = "";
-    if (new_target->kind() == Code::KEYED_STORE_IC) {
+    if (kind() == Code::KEYED_STORE_IC) {
       KeyedAccessStoreMode mode =
           casted_nexus<KeyedStoreICNexus>()->GetKeyedAccessStoreMode();
       modifier = GetTransitionMarkModifier(mode);
@@ -146,7 +144,6 @@
 
 IC::IC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus)
     : isolate_(isolate),
-      target_set_(false),
       vector_set_(false),
       target_maps_set_(false),
       nexus_(nexus) {
@@ -185,11 +182,11 @@
     constant_pool_address_ = constant_pool;
   }
   pc_address_ = StackFrame::ResolveReturnAddressLocation(pc_address);
-  target_ = handle(raw_target(), isolate);
-  kind_ = target_->kind();
-  state_ = UseVector() ? nexus->StateFromFeedback() : target_->ic_state();
+  Code* target = this->target();
+  kind_ = target->kind();
+  state_ = UseVector() ? nexus->StateFromFeedback() : target->ic_state();
   old_state_ = state_;
-  extra_ic_state_ = target_->extra_ic_state();
+  extra_ic_state_ = target->extra_ic_state();
 }
 
 
@@ -258,15 +255,10 @@
   }
 }
 
-
-bool IC::TryRemoveInvalidPrototypeDependentStub(Handle<Object> receiver,
-                                                Handle<String> name) {
-  if (!IsNameCompatibleWithPrototypeFailure(name)) return false;
-  if (UseVector()) {
-    maybe_handler_ = nexus()->FindHandlerForMap(receiver_map());
-  } else {
-    maybe_handler_ = target()->FindHandlerForMap(*receiver_map());
-  }
+bool IC::ShouldRecomputeHandler(Handle<Object> receiver, Handle<String> name) {
+  if (!RecomputeHandlerForName(name)) return false;
+  DCHECK(UseVector());
+  maybe_handler_ = nexus()->FindHandlerForMap(receiver_map());
 
   // The current map wasn't handled yet. There's no reason to stay monomorphic,
   // *unless* we're moving from a deprecated map to its replacement, or
@@ -283,38 +275,24 @@
                                                receiver_map()->elements_kind());
   }
 
-  CacheHolderFlag flag;
-  Handle<Map> ic_holder_map(GetICCacheHolder(receiver_map(), isolate(), &flag));
-
-  DCHECK(flag != kCacheOnReceiver || receiver->IsJSObject());
-  DCHECK(flag != kCacheOnPrototype || !receiver->IsJSReceiver());
-  DCHECK(flag != kCacheOnPrototypeReceiverIsDictionary);
-
-  if (state() == MONOMORPHIC) {
-    int index = ic_holder_map->IndexInCodeCache(*name, *target());
-    if (index >= 0) {
-      ic_holder_map->RemoveFromCodeCache(*name, *target(), index);
-    }
-  }
-
   if (receiver->IsJSGlobalObject()) {
     Handle<JSGlobalObject> global = Handle<JSGlobalObject>::cast(receiver);
     LookupIterator it(global, name, LookupIterator::OWN_SKIP_INTERCEPTOR);
     if (it.state() == LookupIterator::ACCESS_CHECK) return false;
     if (!it.IsFound()) return false;
+    if (!it.GetHolder<JSReceiver>()->IsJSGlobalObject()) return false;
     return it.property_details().cell_type() == PropertyCellType::kConstant;
   }
 
   return true;
 }
 
-
-bool IC::IsNameCompatibleWithPrototypeFailure(Handle<Object> name) {
-  if (target()->is_keyed_stub()) {
+bool IC::RecomputeHandlerForName(Handle<Object> name) {
+  if (is_keyed()) {
     // Determine whether the failure is due to a name failure.
     if (!name->IsName()) return false;
-    Name* stub_name =
-        UseVector() ? nexus()->FindFirstName() : target()->FindFirstName();
+    DCHECK(UseVector());
+    Name* stub_name = nexus()->FindFirstName();
     if (*name != stub_name) return false;
   }
 
@@ -331,10 +309,8 @@
   // Remove the target from the code cache if it became invalid
   // because of changes in the prototype chain to avoid hitting it
   // again.
-  if (TryRemoveInvalidPrototypeDependentStub(receiver,
-                                             Handle<String>::cast(name))) {
-    MarkPrototypeFailure(name);
-    return;
+  if (ShouldRecomputeHandler(receiver, Handle<String>::cast(name))) {
+    MarkRecomputeHandler(name);
   }
 }
 
@@ -382,43 +358,12 @@
         *polymorphic_delta = 1;
       }
       break;
-    case PROTOTYPE_FAILURE:
+    case RECOMPUTE_HANDLER:
     case DEBUG_STUB:
       UNREACHABLE();
   }
 }
 
-
-void IC::OnTypeFeedbackChanged(Isolate* isolate, Address address,
-                               State old_state, State new_state,
-                               bool target_remains_ic_stub) {
-  Code* host =
-      isolate->inner_pointer_to_code_cache()->GetCacheEntry(address)->code;
-  if (host->kind() != Code::FUNCTION) return;
-
-  if (FLAG_type_info_threshold > 0 && target_remains_ic_stub &&
-      // Not all Code objects have TypeFeedbackInfo.
-      host->type_feedback_info()->IsTypeFeedbackInfo()) {
-    int polymorphic_delta = 0;  // "Polymorphic" here includes monomorphic.
-    int generic_delta = 0;      // "Generic" here includes megamorphic.
-    ComputeTypeInfoCountDelta(old_state, new_state, &polymorphic_delta,
-                              &generic_delta);
-    TypeFeedbackInfo* info = TypeFeedbackInfo::cast(host->type_feedback_info());
-    info->change_ic_with_type_info_count(polymorphic_delta);
-    info->change_ic_generic_count(generic_delta);
-  }
-  if (host->type_feedback_info()->IsTypeFeedbackInfo()) {
-    TypeFeedbackInfo* info = TypeFeedbackInfo::cast(host->type_feedback_info());
-    info->change_own_type_change_checksum();
-  }
-  host->set_profiler_ticks(0);
-  isolate->runtime_profiler()->NotifyICChanged();
-  // TODO(2029): When an optimized function is patched, it would
-  // be nice to propagate the corresponding type information to its
-  // unoptimized version for the benefit of later inlining.
-}
-
-
 // static
 void IC::OnTypeFeedbackChanged(Isolate* isolate, Code* host) {
   if (host->kind() != Code::FUNCTION) return;
@@ -432,49 +377,51 @@
   // unoptimized version for the benefit of later inlining.
 }
 
-
 void IC::PostPatching(Address address, Code* target, Code* old_target) {
   // Type vector based ICs update these statistics at a different time because
   // they don't always patch on state change.
   if (ICUseVector(target->kind())) return;
 
-  Isolate* isolate = target->GetHeap()->isolate();
-  State old_state = UNINITIALIZED;
-  State new_state = UNINITIALIZED;
-  bool target_remains_ic_stub = false;
-  if (old_target->is_inline_cache_stub() && target->is_inline_cache_stub()) {
-    old_state = old_target->ic_state();
-    new_state = target->ic_state();
-    target_remains_ic_stub = true;
+  DCHECK(old_target->is_inline_cache_stub());
+  DCHECK(target->is_inline_cache_stub());
+  State old_state = old_target->ic_state();
+  State new_state = target->ic_state();
+
+  Isolate* isolate = target->GetIsolate();
+  Code* host =
+      isolate->inner_pointer_to_code_cache()->GetCacheEntry(address)->code;
+  if (host->kind() != Code::FUNCTION) return;
+
+  // Not all Code objects have TypeFeedbackInfo.
+  if (host->type_feedback_info()->IsTypeFeedbackInfo()) {
+    if (FLAG_type_info_threshold > 0) {
+      int polymorphic_delta = 0;  // "Polymorphic" here includes monomorphic.
+      int generic_delta = 0;      // "Generic" here includes megamorphic.
+      ComputeTypeInfoCountDelta(old_state, new_state, &polymorphic_delta,
+                                &generic_delta);
+      TypeFeedbackInfo* info =
+          TypeFeedbackInfo::cast(host->type_feedback_info());
+      info->change_ic_with_type_info_count(polymorphic_delta);
+      info->change_ic_generic_count(generic_delta);
+    }
+    TypeFeedbackInfo* info = TypeFeedbackInfo::cast(host->type_feedback_info());
+    info->change_own_type_change_checksum();
   }
-
-  OnTypeFeedbackChanged(isolate, address, old_state, new_state,
-                        target_remains_ic_stub);
+  host->set_profiler_ticks(0);
+  isolate->runtime_profiler()->NotifyICChanged();
+  // TODO(2029): When an optimized function is patched, it would
+  // be nice to propagate the corresponding type information to its
+  // unoptimized version for the benefit of later inlining.
 }
 
-
 void IC::Clear(Isolate* isolate, Address address, Address constant_pool) {
   Code* target = GetTargetAtAddress(address, constant_pool);
 
   // Don't clear debug break inline cache as it will remove the break point.
   if (target->is_debug_stub()) return;
 
-  switch (target->kind()) {
-    case Code::LOAD_IC:
-    case Code::KEYED_LOAD_IC:
-    case Code::STORE_IC:
-    case Code::KEYED_STORE_IC:
-      return;
-    case Code::COMPARE_IC:
-      return CompareIC::Clear(isolate, address, target, constant_pool);
-    case Code::CALL_IC:  // CallICs are vector-based and cleared differently.
-    case Code::BINARY_OP_IC:
-    case Code::TO_BOOLEAN_IC:
-      // Clearing these is tricky and does not
-      // make any performance difference.
-      return;
-    default:
-      UNREACHABLE();
+  if (target->kind() == Code::COMPARE_IC) {
+    CompareIC::Clear(isolate, address, target, constant_pool);
   }
 }
 
@@ -509,15 +456,6 @@
 }
 
 
-void StoreIC::Clear(Isolate* isolate, Address address, Code* target,
-                    Address constant_pool) {
-  if (IsCleared(target)) return;
-  Code* code = PropertyICCompiler::FindPreMonomorphic(isolate, Code::STORE_IC,
-                                                      target->extra_ic_state());
-  SetTargetAtAddress(address, code, constant_pool);
-}
-
-
 void StoreIC::Clear(Isolate* isolate, Code* host, StoreICNexus* nexus) {
   if (IsCleared(nexus)) return;
   nexus->ConfigurePremonomorphic();
@@ -525,15 +463,6 @@
 }
 
 
-void KeyedStoreIC::Clear(Isolate* isolate, Address address, Code* target,
-                         Address constant_pool) {
-  if (IsCleared(target)) return;
-  Handle<Code> code = pre_monomorphic_stub(
-      isolate, StoreICState::GetLanguageMode(target->extra_ic_state()));
-  SetTargetAtAddress(address, *code, constant_pool);
-}
-
-
 void KeyedStoreIC::Clear(Isolate* isolate, Code* host,
                          KeyedStoreICNexus* nexus) {
   if (IsCleared(nexus)) return;
@@ -671,8 +600,8 @@
     if (FLAG_use_ic) {
       DCHECK(UseVector());
       ConfigureVectorState(MEGAMORPHIC, name);
-      TRACE_IC("LoadIC", name);
       TRACE_GENERIC_IC(isolate(), "LoadIC", "name as array index");
+      TRACE_IC("LoadIC", name);
     }
     Handle<Object> result;
     ASSIGN_RETURN_ON_EXCEPTION(isolate(), result,
@@ -703,6 +632,7 @@
       }
 
       if (use_ic && LoadScriptContextFieldStub::Accepted(&lookup_result)) {
+        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadScriptContextFieldStub);
         LoadScriptContextFieldStub stub(isolate(), &lookup_result);
         PatchCache(name, stub.GetCode());
       }
@@ -750,7 +680,7 @@
 
 bool IC::UpdatePolymorphicIC(Handle<Name> name, Handle<Code> code) {
   if (!code->is_handler()) return false;
-  if (target()->is_keyed_stub() && state() != PROTOTYPE_FAILURE) return false;
+  if (is_keyed() && state() != RECOMPUTE_HANDLER) return false;
   Handle<Map> map = receiver_map();
   MapHandleList maps;
   CodeHandleList handlers;
@@ -783,14 +713,11 @@
   if (number_of_maps == 0 && state() != MONOMORPHIC && state() != POLYMORPHIC) {
     return false;
   }
-  if (UseVector()) {
-    if (!nexus()->FindHandlers(&handlers, maps.length())) return false;
-  } else {
-    if (!target()->FindHandlers(&handlers, maps.length())) return false;
-  }
+  DCHECK(UseVector());
+  if (!nexus()->FindHandlers(&handlers, maps.length())) return false;
 
   number_of_valid_maps++;
-  if (number_of_valid_maps > 1 && target()->is_keyed_stub()) return false;
+  if (number_of_valid_maps > 1 && is_keyed()) return false;
   Handle<Code> ic;
   if (number_of_valid_maps == 1) {
     ConfigureVectorState(name, receiver_map(), code);
@@ -808,7 +735,6 @@
     ConfigureVectorState(name, &maps, &handlers);
   }
 
-  if (!UseVector()) set_target(*ic);
   return true;
 }
 
@@ -823,7 +749,7 @@
   MapHandleList maps;
   CodeHandleList handlers;
   TargetMaps(&maps);
-  if (!target()->FindHandlers(&handlers, maps.length())) return;
+  if (!nexus()->FindHandlers(&handlers, maps.length())) return;
   for (int i = 0; i < maps.length(); i++) {
     UpdateMegamorphicCache(*maps.at(i), *name, *handlers.at(i));
   }
@@ -836,11 +762,12 @@
   ElementsKind target_elements_kind = target_map->elements_kind();
   bool more_general_transition = IsMoreGeneralElementsKindTransition(
       source_map->elements_kind(), target_elements_kind);
-  Map* transitioned_map =
-      more_general_transition
-          ? source_map->LookupElementsTransitionMap(target_elements_kind)
-          : NULL;
-
+  Map* transitioned_map = nullptr;
+  if (more_general_transition) {
+    MapHandleList map_list;
+    map_list.Add(handle(target_map));
+    transitioned_map = source_map->FindElementsKindTransitionedMap(&map_list);
+  }
   return transitioned_map == target_map;
 }
 
@@ -851,29 +778,23 @@
     case PREMONOMORPHIC:
       UpdateMonomorphicIC(code, name);
       break;
-    case PROTOTYPE_FAILURE:
+    case RECOMPUTE_HANDLER:
     case MONOMORPHIC:
     case POLYMORPHIC:
-      if (!target()->is_keyed_stub() || state() == PROTOTYPE_FAILURE) {
+      if (!is_keyed() || state() == RECOMPUTE_HANDLER) {
         if (UpdatePolymorphicIC(name, code)) break;
         // For keyed stubs, we can't know whether old handlers were for the
         // same key.
         CopyICToMegamorphicCache(name);
       }
-      if (UseVector()) {
-        ConfigureVectorState(MEGAMORPHIC, name);
-      } else {
-        set_target(*megamorphic_stub());
-      }
+      DCHECK(UseVector());
+      ConfigureVectorState(MEGAMORPHIC, name);
     // Fall through.
     case MEGAMORPHIC:
       UpdateMegamorphicCache(*receiver_map(), *name, *code);
       // Indicate that we've handled this case.
-      if (UseVector()) {
-        vector_set_ = true;
-      } else {
-        target_set_ = true;
-      }
+      DCHECK(UseVector());
+      vector_set_ = true;
       break;
     case DEBUG_STUB:
       break;
@@ -883,25 +804,11 @@
   }
 }
 
-
-Handle<Code> LoadIC::initialize_stub(Isolate* isolate,
-                                     ExtraICState extra_state) {
-  return LoadICTrampolineStub(isolate, LoadICState(extra_state)).GetCode();
-}
-
-
 Handle<Code> LoadIC::initialize_stub_in_optimized_code(
     Isolate* isolate, ExtraICState extra_state, State initialization_state) {
   return LoadICStub(isolate, LoadICState(extra_state)).GetCode();
 }
 
-
-Handle<Code> KeyedLoadIC::initialize_stub(Isolate* isolate,
-                                          ExtraICState extra_state) {
-  return KeyedLoadICTrampolineStub(isolate, LoadICState(extra_state)).GetCode();
-}
-
-
 Handle<Code> KeyedLoadIC::initialize_stub_in_optimized_code(
     Isolate* isolate, State initialization_state, ExtraICState extra_state) {
   if (initialization_state != MEGAMORPHIC) {
@@ -911,68 +818,27 @@
 }
 
 
-static Handle<Code> KeyedStoreICInitializeStubHelper(
-    Isolate* isolate, LanguageMode language_mode,
-    InlineCacheState initialization_state) {
-  switch (initialization_state) {
-    case UNINITIALIZED:
-      return is_strict(language_mode)
-                 ? isolate->builtins()->KeyedStoreIC_Initialize_Strict()
-                 : isolate->builtins()->KeyedStoreIC_Initialize();
-    case PREMONOMORPHIC:
-      return is_strict(language_mode)
-                 ? isolate->builtins()->KeyedStoreIC_PreMonomorphic_Strict()
-                 : isolate->builtins()->KeyedStoreIC_PreMonomorphic();
-    case MEGAMORPHIC:
-      return is_strict(language_mode)
-                 ? isolate->builtins()->KeyedStoreIC_Megamorphic_Strict()
-                 : isolate->builtins()->KeyedStoreIC_Megamorphic();
-    default:
-      UNREACHABLE();
-  }
-  return Handle<Code>();
-}
-
-
-Handle<Code> KeyedStoreIC::initialize_stub(Isolate* isolate,
-                                           LanguageMode language_mode,
-                                           State initialization_state) {
-  if (initialization_state != MEGAMORPHIC) {
-    VectorKeyedStoreICTrampolineStub stub(isolate, StoreICState(language_mode));
-    return stub.GetCode();
-  }
-
-  return KeyedStoreICInitializeStubHelper(isolate, language_mode,
-                                          initialization_state);
-}
-
-
 Handle<Code> KeyedStoreIC::initialize_stub_in_optimized_code(
     Isolate* isolate, LanguageMode language_mode, State initialization_state) {
+  StoreICState state = StoreICState(language_mode);
   if (initialization_state != MEGAMORPHIC) {
-    VectorKeyedStoreICStub stub(isolate, StoreICState(language_mode));
-    return stub.GetCode();
+    return VectorKeyedStoreICStub(isolate, state).GetCode();
   }
-
-  return KeyedStoreICInitializeStubHelper(isolate, language_mode,
-                                          initialization_state);
+  return ChooseMegamorphicStub(isolate, state.GetExtraICState());
 }
 
 
 Handle<Code> KeyedStoreIC::ChooseMegamorphicStub(Isolate* isolate,
                                                  ExtraICState extra_state) {
   LanguageMode mode = StoreICState::GetLanguageMode(extra_state);
-  return KeyedStoreICInitializeStubHelper(isolate, mode, MEGAMORPHIC);
-}
-
-
-Handle<Code> LoadIC::megamorphic_stub() {
-  DCHECK_EQ(Code::KEYED_LOAD_IC, kind());
-  return KeyedLoadIC::ChooseMegamorphicStub(isolate(), extra_ic_state());
+  return is_strict(mode)
+             ? isolate->builtins()->KeyedStoreIC_Megamorphic_Strict()
+             : isolate->builtins()->KeyedStoreIC_Megamorphic();
 }
 
 
 Handle<Code> LoadIC::SimpleFieldLoad(FieldIndex index) {
+  TRACE_HANDLER_STATS(isolate(), LoadIC_LoadFieldStub);
   LoadFieldStub stub(isolate(), index);
   return stub.GetCode();
 }
@@ -991,8 +857,9 @@
   } else if (accessors->IsAccessorPair()) {
     Handle<Object> getter(Handle<AccessorPair>::cast(accessors)->getter(),
                           isolate);
-    if (!getter->IsJSFunction() && !getter->IsFunctionTemplateInfo())
+    if (!getter->IsJSFunction() && !getter->IsFunctionTemplateInfo()) {
       return false;
+    }
     Handle<JSObject> holder = lookup->GetHolder<JSObject>();
     Handle<Object> receiver = lookup->GetReceiver();
     if (holder->HasFastProperties()) {
@@ -1070,23 +937,38 @@
 
 
 Handle<Code> IC::ComputeHandler(LookupIterator* lookup, Handle<Object> value) {
+  // Try to find a globally shared handler stub.
+  Handle<Code> code = GetMapIndependentHandler(lookup);
+  if (!code.is_null()) return code;
+
+  // Otherwise check the map's handler cache for a map-specific handler, and
+  // compile one if the cache comes up empty.
   bool receiver_is_holder =
       lookup->GetReceiver().is_identical_to(lookup->GetHolder<JSObject>());
   CacheHolderFlag flag;
-  Handle<Map> stub_holder_map = IC::GetHandlerCacheHolder(
-      receiver_map(), receiver_is_holder, isolate(), &flag);
+  Handle<Map> stub_holder_map;
+  if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) {
+    stub_holder_map = IC::GetHandlerCacheHolder(
+        receiver_map(), receiver_is_holder, isolate(), &flag);
+  } else {
+    DCHECK(kind() == Code::STORE_IC || kind() == Code::KEYED_STORE_IC);
+    // Store handlers cannot be cached on prototypes.
+    flag = kCacheOnReceiver;
+    stub_holder_map = receiver_map();
+  }
 
-  Handle<Code> code = PropertyHandlerCompiler::Find(
-      lookup->name(), stub_holder_map, kind(), flag,
-      lookup->is_dictionary_holder() ? Code::NORMAL : Code::FAST);
+  code = PropertyHandlerCompiler::Find(lookup->name(), stub_holder_map, kind(),
+                                       flag);
   // Use the cached value if it exists, and if it is different from the
   // handler that just missed.
   if (!code.is_null()) {
-    if (!maybe_handler_.is_null() &&
-        !maybe_handler_.ToHandleChecked().is_identical_to(code)) {
-      return code;
-    }
-    if (maybe_handler_.is_null()) {
+    Handle<Code> handler;
+    if (maybe_handler_.ToHandle(&handler)) {
+      if (!handler.is_identical_to(code)) {
+        TRACE_HANDLER_STATS(isolate(), IC_HandlerCacheHit);
+        return code;
+      }
+    } else {
       // maybe_handler_ is only populated for MONOMORPHIC and POLYMORPHIC ICs.
       // In MEGAMORPHIC case, check if the handler in the megamorphic stub
       // cache (which just missed) is different from the cached handler.
@@ -1094,8 +976,12 @@
         Map* map = Handle<HeapObject>::cast(lookup->GetReceiver())->map();
         Code* megamorphic_cached_code =
             isolate()->stub_cache()->Get(*lookup->name(), map, code->flags());
-        if (megamorphic_cached_code != *code) return code;
+        if (megamorphic_cached_code != *code) {
+          TRACE_HANDLER_STATS(isolate(), IC_HandlerCacheHit);
+          return code;
+        }
       } else {
+        TRACE_HANDLER_STATS(isolate(), IC_HandlerCacheHit);
         return code;
       }
     }
@@ -1103,24 +989,13 @@
 
   code = CompileHandler(lookup, value, flag);
   DCHECK(code->is_handler());
-
-  // TODO(mvstanton): we'd only like to cache code on the map when it's custom
-  // code compiled for this map, otherwise it's already cached in the global
-  // code cache. We are also guarding against installing code with flags that
-  // don't match the desired CacheHolderFlag computed above, which would lead to
-  // invalid lookups later.
-  if (code->type() != Code::NORMAL &&
-      Code::ExtractCacheHolderFromFlags(code->flags()) == flag) {
-    Map::UpdateCodeCache(stub_holder_map, lookup->name(), code);
-  }
+  DCHECK(Code::ExtractCacheHolderFromFlags(code->flags()) == flag);
+  Map::UpdateCodeCache(stub_holder_map, lookup->name(), code);
 
   return code;
 }
 
-
-Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup,
-                                    Handle<Object> unused,
-                                    CacheHolderFlag cache_holder) {
+Handle<Code> LoadIC::GetMapIndependentHandler(LookupIterator* lookup) {
   Handle<Object> receiver = lookup->GetReceiver();
   if (receiver->IsString() &&
       Name::Equals(isolate()->factory()->length_string(), lookup->name())) {
@@ -1130,6 +1005,7 @@
 
   if (receiver->IsStringWrapper() &&
       Name::Equals(isolate()->factory()->length_string(), lookup->name())) {
+    TRACE_HANDLER_STATS(isolate(), LoadIC_StringLengthStub);
     StringLengthStub string_length_stub(isolate());
     return string_length_stub.GetCode();
   }
@@ -1142,6 +1018,7 @@
            ->map()
            ->has_non_instance_prototype()) {
     Handle<Code> stub;
+    TRACE_HANDLER_STATS(isolate(), LoadIC_FunctionPrototypeStub);
     FunctionPrototypeStub function_prototype_stub(isolate());
     return function_prototype_stub.GetCode();
   }
@@ -1150,16 +1027,8 @@
   Handle<JSObject> holder = lookup->GetHolder<JSObject>();
   bool receiver_is_holder = receiver.is_identical_to(holder);
   switch (lookup->state()) {
-    case LookupIterator::INTERCEPTOR: {
-      DCHECK(!holder->GetNamedInterceptor()->getter()->IsUndefined());
-      NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
-      // Perform a lookup behind the interceptor. Copy the LookupIterator since
-      // the original iterator will be used to fetch the value.
-      LookupIterator it = *lookup;
-      it.Next();
-      LookupForRead(&it);
-      return compiler.CompileLoadInterceptor(&it);
-    }
+    case LookupIterator::INTERCEPTOR:
+      break;  // Custom-compiled handler.
 
     case LookupIterator::ACCESSOR: {
       // Use simple field loads for some well-known callback properties.
@@ -1173,6 +1042,7 @@
       }
       if (Accessors::IsJSArrayBufferViewFieldAccessor(map, lookup->name(),
                                                       &object_offset)) {
+        TRACE_HANDLER_STATS(isolate(), LoadIC_ArrayBufferViewLoadFieldStub);
         FieldIndex index = FieldIndex::ForInObjectOffset(object_offset, *map);
         ArrayBufferViewLoadFieldStub stub(isolate(), index);
         return stub.GetCode();
@@ -1181,62 +1051,60 @@
       if (IsCompatibleReceiver(lookup, map)) {
         Handle<Object> accessors = lookup->GetAccessors();
         if (accessors->IsAccessorPair()) {
-          if (!holder->HasFastProperties()) break;
-          // When debugging we need to go the slow path to flood the accessor.
-          if (GetSharedFunctionInfo()->HasDebugInfo()) break;
-          Handle<Object> getter(Handle<AccessorPair>::cast(accessors)->getter(),
-                                isolate());
-          CallOptimization call_optimization(getter);
-          NamedLoadHandlerCompiler compiler(isolate(), map, holder,
-                                            cache_holder);
-          if (call_optimization.is_simple_api_call()) {
-            return compiler.CompileLoadCallback(
-                lookup->name(), call_optimization, lookup->GetAccessorIndex());
+          if (!holder->HasFastProperties()) {
+            TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
+            return slow_stub();
           }
-          int expected_arguments = Handle<JSFunction>::cast(getter)
-                                       ->shared()
-                                       ->internal_formal_parameter_count();
-          return compiler.CompileLoadViaGetter(
-              lookup->name(), lookup->GetAccessorIndex(), expected_arguments);
+          // When debugging we need to go the slow path to flood the accessor.
+          if (GetSharedFunctionInfo()->HasDebugInfo()) {
+            TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
+            return slow_stub();
+          }
+          break;  // Custom-compiled handler.
         } else if (accessors->IsAccessorInfo()) {
           Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(accessors);
-          if (v8::ToCData<Address>(info->getter()) == 0) break;
-          if (!AccessorInfo::IsCompatibleReceiverMap(isolate(), info, map)) {
-            // This case should be already handled in LoadIC::UpdateCaches.
-            UNREACHABLE();
-            break;
+          if (v8::ToCData<Address>(info->getter()) == nullptr) {
+            TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
+            return slow_stub();
           }
-          if (!holder->HasFastProperties()) break;
-          if (info->is_sloppy() && !receiver->IsJSReceiver()) break;
-          NamedLoadHandlerCompiler compiler(isolate(), map, holder,
-                                            cache_holder);
-          return compiler.CompileLoadCallback(lookup->name(), info);
+          // Ruled out by IsCompatibleReceiver() above.
+          DCHECK(AccessorInfo::IsCompatibleReceiverMap(isolate(), info, map));
+          if (!holder->HasFastProperties()) return slow_stub();
+          if (receiver_is_holder) {
+            TRACE_HANDLER_STATS(isolate(), LoadIC_LoadApiGetterStub);
+            int index = lookup->GetAccessorIndex();
+            LoadApiGetterStub stub(isolate(), true, index);
+            return stub.GetCode();
+          }
+          if (info->is_sloppy() && !receiver->IsJSReceiver()) {
+            TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
+            return slow_stub();
+          }
+          break;  // Custom-compiled handler.
         }
       }
-      break;
+      TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
+      return slow_stub();
     }
 
     case LookupIterator::DATA: {
       if (lookup->is_dictionary_holder()) {
-        if (kind() != Code::LOAD_IC) break;
+        if (kind() != Code::LOAD_IC) {
+          TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
+          return slow_stub();
+        }
         if (holder->IsJSGlobalObject()) {
-          NamedLoadHandlerCompiler compiler(isolate(), map, holder,
-                                            cache_holder);
-          Handle<PropertyCell> cell = lookup->GetPropertyCell();
-          Handle<Code> code = compiler.CompileLoadGlobal(
-              cell, lookup->name(), lookup->IsConfigurable());
-          // TODO(verwaest): Move caching of these NORMAL stubs outside as well.
-          CacheHolderFlag flag;
-          Handle<Map> stub_holder_map =
-              GetHandlerCacheHolder(map, receiver_is_holder, isolate(), &flag);
-          Map::UpdateCodeCache(stub_holder_map, lookup->name(), code);
-          return code;
+          break;  // Custom-compiled handler.
         }
         // There is only one shared stub for loading normalized
         // properties. It does not traverse the prototype chain, so the
         // property must be found in the object for the stub to be
         // applicable.
-        if (!receiver_is_holder) break;
+        if (!receiver_is_holder) {
+          TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
+          return slow_stub();
+        }
+        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadNormal);
         return isolate()->builtins()->LoadIC_Normal();
       }
 
@@ -1246,22 +1114,21 @@
         if (receiver_is_holder) {
           return SimpleFieldLoad(field);
         }
-        NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
-        return compiler.CompileLoadField(lookup->name(), field);
+        break;  // Custom-compiled handler.
       }
 
       // -------------- Constant properties --------------
       DCHECK(lookup->property_details().type() == DATA_CONSTANT);
       if (receiver_is_holder) {
+        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadConstantStub);
         LoadConstantStub stub(isolate(), lookup->GetConstantIndex());
         return stub.GetCode();
       }
-      NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
-      return compiler.CompileLoadConstant(lookup->name(),
-                                          lookup->GetConstantIndex());
+      break;  // Custom-compiled handler.
     }
 
     case LookupIterator::INTEGER_INDEXED_EXOTIC:
+      TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
       return slow_stub();
     case LookupIterator::ACCESS_CHECK:
     case LookupIterator::JSPROXY:
@@ -1270,6 +1137,133 @@
       UNREACHABLE();
   }
 
+  return Handle<Code>::null();
+}
+
+Handle<Code> LoadIC::CompileHandler(LookupIterator* lookup,
+                                    Handle<Object> unused,
+                                    CacheHolderFlag cache_holder) {
+  Handle<JSObject> holder = lookup->GetHolder<JSObject>();
+#ifdef DEBUG
+  // Only used by DCHECKs below.
+  Handle<Object> receiver = lookup->GetReceiver();
+  bool receiver_is_holder = receiver.is_identical_to(holder);
+#endif
+  // Non-map-specific handler stubs have already been selected.
+  DCHECK(!receiver->IsString() ||
+         !Name::Equals(isolate()->factory()->length_string(), lookup->name()));
+  DCHECK(!receiver->IsStringWrapper() ||
+         !Name::Equals(isolate()->factory()->length_string(), lookup->name()));
+
+  DCHECK(!(
+      receiver->IsJSFunction() &&
+      Name::Equals(isolate()->factory()->prototype_string(), lookup->name()) &&
+      receiver->IsConstructor() &&
+      !Handle<JSFunction>::cast(receiver)
+           ->map()
+           ->has_non_instance_prototype()));
+
+  Handle<Map> map = receiver_map();
+  switch (lookup->state()) {
+    case LookupIterator::INTERCEPTOR: {
+      DCHECK(!holder->GetNamedInterceptor()->getter()->IsUndefined());
+      TRACE_HANDLER_STATS(isolate(), LoadIC_LoadInterceptor);
+      NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
+      // Perform a lookup behind the interceptor. Copy the LookupIterator since
+      // the original iterator will be used to fetch the value.
+      LookupIterator it = *lookup;
+      it.Next();
+      LookupForRead(&it);
+      return compiler.CompileLoadInterceptor(&it);
+    }
+
+    case LookupIterator::ACCESSOR: {
+#ifdef DEBUG
+      int object_offset;
+      DCHECK(!Accessors::IsJSObjectFieldAccessor(map, lookup->name(),
+                                                 &object_offset));
+      DCHECK(!Accessors::IsJSArrayBufferViewFieldAccessor(map, lookup->name(),
+                                                          &object_offset));
+#endif
+
+      DCHECK(IsCompatibleReceiver(lookup, map));
+      Handle<Object> accessors = lookup->GetAccessors();
+      if (accessors->IsAccessorPair()) {
+        DCHECK(holder->HasFastProperties());
+        DCHECK(!GetSharedFunctionInfo()->HasDebugInfo());
+        Handle<Object> getter(Handle<AccessorPair>::cast(accessors)->getter(),
+                              isolate());
+        CallOptimization call_optimization(getter);
+        NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
+        if (call_optimization.is_simple_api_call()) {
+          TRACE_HANDLER_STATS(isolate(), LoadIC_LoadCallback);
+          int index = lookup->GetAccessorIndex();
+          Handle<Code> code = compiler.CompileLoadCallback(
+              lookup->name(), call_optimization, index);
+          if (FLAG_runtime_call_stats) return slow_stub();
+          return code;
+        }
+        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadViaGetter);
+        int expected_arguments = Handle<JSFunction>::cast(getter)
+                                     ->shared()
+                                     ->internal_formal_parameter_count();
+        return compiler.CompileLoadViaGetter(
+            lookup->name(), lookup->GetAccessorIndex(), expected_arguments);
+      } else {
+        DCHECK(accessors->IsAccessorInfo());
+        Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(accessors);
+        DCHECK(v8::ToCData<Address>(info->getter()) != nullptr);
+        DCHECK(AccessorInfo::IsCompatibleReceiverMap(isolate(), info, map));
+        DCHECK(holder->HasFastProperties());
+        DCHECK(!receiver_is_holder);
+        DCHECK(!info->is_sloppy() || receiver->IsJSReceiver());
+        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadCallback);
+        NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
+        Handle<Code> code = compiler.CompileLoadCallback(lookup->name(), info);
+        if (FLAG_runtime_call_stats) return slow_stub();
+        return code;
+      }
+      UNREACHABLE();
+    }
+
+    case LookupIterator::DATA: {
+      if (lookup->is_dictionary_holder()) {
+        DCHECK(kind() == Code::LOAD_IC);
+        DCHECK(holder->IsJSGlobalObject());
+        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadGlobal);
+        NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
+        Handle<PropertyCell> cell = lookup->GetPropertyCell();
+        Handle<Code> code = compiler.CompileLoadGlobal(
+            cell, lookup->name(), lookup->IsConfigurable());
+        return code;
+      }
+
+      // -------------- Fields --------------
+      if (lookup->property_details().type() == DATA) {
+        FieldIndex field = lookup->GetFieldIndex();
+        DCHECK(!receiver_is_holder);
+        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadField);
+        NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
+        return compiler.CompileLoadField(lookup->name(), field);
+      }
+
+      // -------------- Constant properties --------------
+      DCHECK(lookup->property_details().type() == DATA_CONSTANT);
+      DCHECK(!receiver_is_holder);
+      TRACE_HANDLER_STATS(isolate(), LoadIC_LoadConstant);
+      NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
+      return compiler.CompileLoadConstant(lookup->name(),
+                                          lookup->GetConstantIndex());
+    }
+
+    case LookupIterator::INTEGER_INDEXED_EXOTIC:
+    case LookupIterator::ACCESS_CHECK:
+    case LookupIterator::JSPROXY:
+    case LookupIterator::NOT_FOUND:
+    case LookupIterator::TRANSITION:
+      UNREACHABLE();
+  }
+  UNREACHABLE();
   return slow_stub();
 }
 
@@ -1293,11 +1287,10 @@
   return key;
 }
 
-
-Handle<Code> KeyedLoadIC::LoadElementStub(Handle<HeapObject> receiver) {
-  Handle<Code> null_handle;
+void KeyedLoadIC::UpdateLoadElement(Handle<HeapObject> receiver) {
   Handle<Map> receiver_map(receiver->map(), isolate());
-  DCHECK(receiver_map->instance_type() != JS_VALUE_TYPE);  // Checked by caller.
+  DCHECK(receiver_map->instance_type() != JS_VALUE_TYPE &&
+         receiver_map->instance_type() != JS_PROXY_TYPE);  // Checked by caller.
   MapHandleList target_receiver_maps;
   TargetMaps(&target_receiver_maps);
 
@@ -1305,15 +1298,19 @@
     Handle<Code> handler =
         PropertyICCompiler::ComputeKeyedLoadMonomorphicHandler(
             receiver_map, extra_ic_state());
-    ConfigureVectorState(Handle<Name>::null(), receiver_map, handler);
-    return null_handle;
+    return ConfigureVectorState(Handle<Name>(), receiver_map, handler);
   }
 
   for (int i = 0; i < target_receiver_maps.length(); i++) {
-    if (!target_receiver_maps.at(i).is_null() &&
-        target_receiver_maps.at(i)->instance_type() == JS_VALUE_TYPE) {
+    Handle<Map> map = target_receiver_maps.at(i);
+    if (map.is_null()) continue;
+    if (map->instance_type() == JS_VALUE_TYPE) {
       TRACE_GENERIC_IC(isolate(), "KeyedLoadIC", "JSValue");
-      return megamorphic_stub();
+      return;
+    }
+    if (map->instance_type() == JS_PROXY_TYPE) {
+      TRACE_GENERIC_IC(isolate(), "KeyedLoadIC", "JSProxy");
+      return;
     }
   }
 
@@ -1331,8 +1328,7 @@
     Handle<Code> handler =
         PropertyICCompiler::ComputeKeyedLoadMonomorphicHandler(
             receiver_map, extra_ic_state());
-    ConfigureVectorState(Handle<Name>::null(), receiver_map, handler);
-    return null_handle;
+    return ConfigureVectorState(Handle<Name>(), receiver_map, handler);
   }
 
   DCHECK(state() != GENERIC);
@@ -1343,21 +1339,21 @@
     // If the miss wasn't due to an unseen map, a polymorphic stub
     // won't help, use the generic stub.
     TRACE_GENERIC_IC(isolate(), "KeyedLoadIC", "same map added twice");
-    return megamorphic_stub();
+    return;
   }
 
   // If the maximum number of receiver maps has been exceeded, use the generic
   // version of the IC.
   if (target_receiver_maps.length() > kMaxKeyedPolymorphism) {
     TRACE_GENERIC_IC(isolate(), "KeyedLoadIC", "max polymorph exceeded");
-    return megamorphic_stub();
+    return;
   }
 
   CodeHandleList handlers(target_receiver_maps.length());
+  TRACE_HANDLER_STATS(isolate(), KeyedLoadIC_PolymorphicElement);
   ElementHandlerCompiler compiler(isolate());
   compiler.CompileElementHandlers(&target_receiver_maps, &handlers);
-  ConfigureVectorState(Handle<Name>::null(), &target_receiver_maps, &handlers);
-  return null_handle;
+  ConfigureVectorState(Handle<Name>(), &target_receiver_maps, &handlers);
 }
 
 
@@ -1372,7 +1368,6 @@
   }
 
   Handle<Object> load_handle;
-  Handle<Code> stub = megamorphic_stub();
 
   // Check for non-string values that can be converted into an
   // internalized string directly or is representable as a smi.
@@ -1386,20 +1381,15 @@
              !object->IsJSValue()) {
     if (object->IsJSObject() || (object->IsString() && key->IsNumber())) {
       Handle<HeapObject> receiver = Handle<HeapObject>::cast(object);
-      if (object->IsString() || key->IsSmi()) stub = LoadElementStub(receiver);
+      if (object->IsString() || key->IsSmi()) UpdateLoadElement(receiver);
     }
   }
 
-  DCHECK(UseVector());
-  if (!is_vector_set() || stub.is_null()) {
-    Code* generic = *megamorphic_stub();
-    if (!stub.is_null() && *stub == generic) {
-      ConfigureVectorState(MEGAMORPHIC, key);
-      TRACE_GENERIC_IC(isolate(), "KeyedLoadIC", "set generic");
-    }
-
-    TRACE_IC("LoadIC", key);
+  if (!is_vector_set()) {
+    ConfigureVectorState(MEGAMORPHIC, key);
+    TRACE_GENERIC_IC(isolate(), "KeyedLoadIC", "set generic");
   }
+  TRACE_IC("LoadIC", key);
 
   if (!load_handle.is_null()) return load_handle;
 
@@ -1487,11 +1477,8 @@
   if (kind() == Code::KEYED_STORE_IC && name->AsArrayIndex(&index)) {
     // Rewrite to the generic keyed store stub.
     if (FLAG_use_ic) {
-      if (UseVector()) {
-        ConfigureVectorState(MEGAMORPHIC, name);
-      } else if (!AddressIsDeoptimizedCode()) {
-        set_target(*megamorphic_stub());
-      }
+      DCHECK(UseVector());
+      ConfigureVectorState(MEGAMORPHIC, name);
       TRACE_IC("StoreIC", name);
       TRACE_GENERIC_IC(isolate(), "StoreIC", "name as array index");
     }
@@ -1529,6 +1516,7 @@
 
       if (FLAG_use_ic &&
           StoreScriptContextFieldStub::Accepted(&lookup_result)) {
+        TRACE_HANDLER_STATS(isolate(), StoreIC_StoreScriptContextFieldStub);
         StoreScriptContextFieldStub stub(isolate(), &lookup_result);
         PatchCache(name, stub.GetCode());
       }
@@ -1554,17 +1542,6 @@
     return TypeError(MessageTemplate::kNonObjectPropertyStore, object, name);
   }
 
-  // Observed objects are always modified through the runtime.
-  if (object->IsHeapObject() &&
-      Handle<HeapObject>::cast(object)->map()->is_observed()) {
-    Handle<Object> result;
-    ASSIGN_RETURN_ON_EXCEPTION(
-        isolate(), result,
-        Object::SetProperty(object, name, value, language_mode(), store_mode),
-        Object);
-    return result;
-  }
-
   LookupIterator it(object, name);
   if (FLAG_use_ic) UpdateCaches(&it, value, store_mode);
 
@@ -1573,14 +1550,6 @@
   return value;
 }
 
-Handle<Code> CallIC::initialize_stub(Isolate* isolate, int argc,
-                                     ConvertReceiverMode mode,
-                                     TailCallMode tail_call_mode) {
-  CallICTrampolineStub stub(isolate, CallICState(argc, mode, tail_call_mode));
-  Handle<Code> code = stub.GetCode();
-  return code;
-}
-
 Handle<Code> CallIC::initialize_stub_in_optimized_code(
     Isolate* isolate, int argc, ConvertReceiverMode mode,
     TailCallMode tail_call_mode) {
@@ -1590,26 +1559,6 @@
 }
 
 
-static Handle<Code> StoreICInitializeStubHelper(
-    Isolate* isolate, ExtraICState extra_state,
-    InlineCacheState initialization_state) {
-  Handle<Code> ic = PropertyICCompiler::ComputeStore(
-      isolate, initialization_state, extra_state);
-  return ic;
-}
-
-
-Handle<Code> StoreIC::initialize_stub(Isolate* isolate,
-                                      LanguageMode language_mode,
-                                      State initialization_state) {
-  DCHECK(initialization_state == UNINITIALIZED ||
-         initialization_state == PREMONOMORPHIC ||
-         initialization_state == MEGAMORPHIC);
-  VectorStoreICTrampolineStub stub(isolate, StoreICState(language_mode));
-  return stub.GetCode();
-}
-
-
 Handle<Code> StoreIC::initialize_stub_in_optimized_code(
     Isolate* isolate, LanguageMode language_mode, State initialization_state) {
   DCHECK(initialization_state == UNINITIALIZED ||
@@ -1620,40 +1569,13 @@
     return stub.GetCode();
   }
 
-  return StoreICInitializeStubHelper(
-      isolate, ComputeExtraICState(language_mode), initialization_state);
+  return is_strict(language_mode)
+             ? isolate->builtins()->StoreIC_Megamorphic_Strict()
+             : isolate->builtins()->StoreIC_Megamorphic();
 }
 
-
-Handle<Code> StoreIC::megamorphic_stub() {
-  if (kind() == Code::STORE_IC) {
-    return PropertyICCompiler::ComputeStore(isolate(), MEGAMORPHIC,
-                                            extra_ic_state());
-  } else {
-    DCHECK(kind() == Code::KEYED_STORE_IC);
-    if (is_strict(language_mode())) {
-      return isolate()->builtins()->KeyedStoreIC_Megamorphic_Strict();
-    } else {
-      return isolate()->builtins()->KeyedStoreIC_Megamorphic();
-    }
-  }
-}
-
-
 Handle<Code> StoreIC::slow_stub() const {
-  if (kind() == Code::STORE_IC) {
-    return isolate()->builtins()->StoreIC_Slow();
-  } else {
-    DCHECK(kind() == Code::KEYED_STORE_IC);
-    return isolate()->builtins()->KeyedStoreIC_Slow();
-  }
-}
-
-
-Handle<Code> StoreIC::pre_monomorphic_stub(Isolate* isolate,
-                                           LanguageMode language_mode) {
-  ExtraICState state = ComputeExtraICState(language_mode);
-  return PropertyICCompiler::ComputeStore(isolate, PREMONOMORPHIC, state);
+  return isolate()->builtins()->StoreIC_Slow();
 }
 
 
@@ -1693,6 +1615,135 @@
   return code;
 }
 
+Handle<Code> StoreIC::GetMapIndependentHandler(LookupIterator* lookup) {
+  DCHECK_NE(LookupIterator::JSPROXY, lookup->state());
+
+  // This is currently guaranteed by checks in StoreIC::Store.
+  Handle<JSObject> receiver = Handle<JSObject>::cast(lookup->GetReceiver());
+  Handle<JSObject> holder = lookup->GetHolder<JSObject>();
+  DCHECK(!receiver->IsAccessCheckNeeded() || lookup->name()->IsPrivate());
+
+  switch (lookup->state()) {
+    case LookupIterator::TRANSITION: {
+      auto store_target = lookup->GetStoreTarget();
+      if (store_target->IsJSGlobalObject()) {
+        break;  // Custom-compiled handler.
+      }
+      // Currently not handled by CompileStoreTransition.
+      if (!holder->HasFastProperties()) {
+        TRACE_GENERIC_IC(isolate(), "StoreIC", "transition from slow");
+        TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+        return slow_stub();
+      }
+
+      DCHECK(lookup->IsCacheableTransition());
+      break;  // Custom-compiled handler.
+    }
+
+    case LookupIterator::INTERCEPTOR: {
+      DCHECK(!holder->GetNamedInterceptor()->setter()->IsUndefined());
+      TRACE_HANDLER_STATS(isolate(), StoreIC_StoreInterceptorStub);
+      StoreInterceptorStub stub(isolate());
+      return stub.GetCode();
+    }
+
+    case LookupIterator::ACCESSOR: {
+      if (!holder->HasFastProperties()) {
+        TRACE_GENERIC_IC(isolate(), "StoreIC", "accessor on slow map");
+        TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+        return slow_stub();
+      }
+      Handle<Object> accessors = lookup->GetAccessors();
+      if (accessors->IsAccessorInfo()) {
+        Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(accessors);
+        if (v8::ToCData<Address>(info->setter()) == nullptr) {
+          TRACE_GENERIC_IC(isolate(), "StoreIC", "setter == nullptr");
+          TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+          return slow_stub();
+        }
+        if (AccessorInfo::cast(*accessors)->is_special_data_property() &&
+            !lookup->HolderIsReceiverOrHiddenPrototype()) {
+          TRACE_GENERIC_IC(isolate(), "StoreIC",
+                           "special data property in prototype chain");
+          TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+          return slow_stub();
+        }
+        if (!AccessorInfo::IsCompatibleReceiverMap(isolate(), info,
+                                                   receiver_map())) {
+          TRACE_GENERIC_IC(isolate(), "StoreIC", "incompatible receiver type");
+          TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+          return slow_stub();
+        }
+        if (info->is_sloppy() && !receiver->IsJSReceiver()) {
+          TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+          return slow_stub();
+        }
+        break;  // Custom-compiled handler.
+      } else if (accessors->IsAccessorPair()) {
+        Handle<Object> setter(Handle<AccessorPair>::cast(accessors)->setter(),
+                              isolate());
+        if (!setter->IsJSFunction() && !setter->IsFunctionTemplateInfo()) {
+          TRACE_GENERIC_IC(isolate(), "StoreIC", "setter not a function");
+          TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+          return slow_stub();
+        }
+        CallOptimization call_optimization(setter);
+        if (call_optimization.is_simple_api_call()) {
+          if (call_optimization.IsCompatibleReceiver(receiver, holder)) {
+            break;  // Custom-compiled handler.
+          }
+          TRACE_GENERIC_IC(isolate(), "StoreIC", "incompatible receiver");
+          TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+          return slow_stub();
+        }
+        break;  // Custom-compiled handler.
+      }
+      TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+      return slow_stub();
+    }
+
+    case LookupIterator::DATA: {
+      if (lookup->is_dictionary_holder()) {
+        if (holder->IsJSGlobalObject()) {
+          break;  // Custom-compiled handler.
+        }
+        TRACE_HANDLER_STATS(isolate(), StoreIC_StoreNormal);
+        DCHECK(holder.is_identical_to(receiver));
+        return isolate()->builtins()->StoreIC_Normal();
+      }
+
+      // -------------- Fields --------------
+      if (lookup->property_details().type() == DATA) {
+        bool use_stub = true;
+        if (lookup->representation().IsHeapObject()) {
+          // Only use a generic stub if no types need to be tracked.
+          Handle<FieldType> field_type = lookup->GetFieldType();
+          use_stub = !field_type->IsClass();
+        }
+        if (use_stub) {
+          TRACE_HANDLER_STATS(isolate(), StoreIC_StoreFieldStub);
+          StoreFieldStub stub(isolate(), lookup->GetFieldIndex(),
+                              lookup->representation());
+          return stub.GetCode();
+        }
+        break;  // Custom-compiled handler.
+      }
+
+      // -------------- Constant properties --------------
+      DCHECK(lookup->property_details().type() == DATA_CONSTANT);
+      TRACE_GENERIC_IC(isolate(), "StoreIC", "constant property");
+      TRACE_HANDLER_STATS(isolate(), StoreIC_SlowStub);
+      return slow_stub();
+    }
+
+    case LookupIterator::INTEGER_INDEXED_EXOTIC:
+    case LookupIterator::ACCESS_CHECK:
+    case LookupIterator::JSPROXY:
+    case LookupIterator::NOT_FOUND:
+      UNREACHABLE();
+  }
+  return Handle<Code>::null();
+}
 
 Handle<Code> StoreIC::CompileHandler(LookupIterator* lookup,
                                      Handle<Object> value,
@@ -1709,6 +1760,7 @@
       auto store_target = lookup->GetStoreTarget();
       if (store_target->IsJSGlobalObject()) {
         // TODO(dcarney): this currently just deopts. Use the transition cell.
+        TRACE_HANDLER_STATS(isolate(), StoreIC_StoreGlobalTransition);
         auto cell = isolate()->factory()->NewPropertyCell();
         cell->set_value(*value);
         auto code = PropertyCellStoreHandler(
@@ -1719,111 +1771,94 @@
       }
       Handle<Map> transition = lookup->transition_map();
       // Currently not handled by CompileStoreTransition.
-      if (!holder->HasFastProperties()) {
-        TRACE_GENERIC_IC(isolate(), "StoreIC", "transition from slow");
-        break;
-      }
+      DCHECK(holder->HasFastProperties());
 
       DCHECK(lookup->IsCacheableTransition());
+      TRACE_HANDLER_STATS(isolate(), StoreIC_StoreTransition);
       NamedStoreHandlerCompiler compiler(isolate(), receiver_map(), holder);
       return compiler.CompileStoreTransition(transition, lookup->name());
     }
 
-    case LookupIterator::INTERCEPTOR: {
-      DCHECK(!holder->GetNamedInterceptor()->setter()->IsUndefined());
-      return CodeFactory::StoreInterceptor(isolate()).code();
-    }
+    case LookupIterator::INTERCEPTOR:
+      UNREACHABLE();
 
     case LookupIterator::ACCESSOR: {
-      if (!holder->HasFastProperties()) {
-        TRACE_GENERIC_IC(isolate(), "StoreIC", "accessor on slow map");
-        break;
-      }
+      DCHECK(holder->HasFastProperties());
       Handle<Object> accessors = lookup->GetAccessors();
       if (accessors->IsAccessorInfo()) {
         Handle<AccessorInfo> info = Handle<AccessorInfo>::cast(accessors);
-        if (v8::ToCData<Address>(info->setter()) == 0) {
-          TRACE_GENERIC_IC(isolate(), "StoreIC", "setter == 0");
-          break;
-        }
-        if (AccessorInfo::cast(*accessors)->is_special_data_property() &&
-            !lookup->HolderIsReceiverOrHiddenPrototype()) {
-          TRACE_GENERIC_IC(isolate(), "StoreIC",
-                           "special data property in prototype chain");
-          break;
-        }
-        if (!AccessorInfo::IsCompatibleReceiverMap(isolate(), info,
-                                                   receiver_map())) {
-          TRACE_GENERIC_IC(isolate(), "StoreIC", "incompatible receiver type");
-          break;
-        }
-        if (info->is_sloppy() && !receiver->IsJSReceiver()) break;
+        DCHECK(v8::ToCData<Address>(info->setter()) != 0);
+        DCHECK(!AccessorInfo::cast(*accessors)->is_special_data_property() ||
+               lookup->HolderIsReceiverOrHiddenPrototype());
+        DCHECK(AccessorInfo::IsCompatibleReceiverMap(isolate(), info,
+                                                     receiver_map()));
+        DCHECK(!info->is_sloppy() || receiver->IsJSReceiver());
+        TRACE_HANDLER_STATS(isolate(), StoreIC_StoreCallback);
         NamedStoreHandlerCompiler compiler(isolate(), receiver_map(), holder);
-        return compiler.CompileStoreCallback(receiver, lookup->name(), info,
-                                             language_mode());
-      } else if (accessors->IsAccessorPair()) {
+        Handle<Code> code = compiler.CompileStoreCallback(
+            receiver, lookup->name(), info, language_mode());
+        if (FLAG_runtime_call_stats) return slow_stub();
+        return code;
+      } else {
+        DCHECK(accessors->IsAccessorPair());
         Handle<Object> setter(Handle<AccessorPair>::cast(accessors)->setter(),
                               isolate());
-        if (!setter->IsJSFunction()) {
-          TRACE_GENERIC_IC(isolate(), "StoreIC", "setter not a function");
-          break;
-        }
-        Handle<JSFunction> function = Handle<JSFunction>::cast(setter);
-        CallOptimization call_optimization(function);
+        DCHECK(setter->IsJSFunction() || setter->IsFunctionTemplateInfo());
+        CallOptimization call_optimization(setter);
         NamedStoreHandlerCompiler compiler(isolate(), receiver_map(), holder);
-        if (call_optimization.is_simple_api_call() &&
-            call_optimization.IsCompatibleReceiver(receiver, holder)) {
-          return compiler.CompileStoreCallback(receiver, lookup->name(),
-                                               call_optimization,
-                                               lookup->GetAccessorIndex());
+        if (call_optimization.is_simple_api_call()) {
+          DCHECK(call_optimization.IsCompatibleReceiver(receiver, holder));
+          TRACE_HANDLER_STATS(isolate(), StoreIC_StoreCallback);
+          Handle<Code> code = compiler.CompileStoreCallback(
+              receiver, lookup->name(), call_optimization,
+              lookup->GetAccessorIndex());
+          if (FLAG_runtime_call_stats) return slow_stub();
+          return code;
         }
-        int expected_arguments =
-            function->shared()->internal_formal_parameter_count();
+        TRACE_HANDLER_STATS(isolate(), StoreIC_StoreViaSetter);
+        int expected_arguments = JSFunction::cast(*setter)
+                                     ->shared()
+                                     ->internal_formal_parameter_count();
         return compiler.CompileStoreViaSetter(receiver, lookup->name(),
                                               lookup->GetAccessorIndex(),
                                               expected_arguments);
       }
-      break;
     }
 
     case LookupIterator::DATA: {
       if (lookup->is_dictionary_holder()) {
-        if (holder->IsJSGlobalObject()) {
-          DCHECK(holder.is_identical_to(receiver) ||
-                 receiver->map()->prototype() == *holder);
-          auto cell = lookup->GetPropertyCell();
-          auto updated_type = PropertyCell::UpdatedType(
-              cell, value, lookup->property_details());
-          auto code = PropertyCellStoreHandler(
-              isolate(), receiver, Handle<JSGlobalObject>::cast(holder),
-              lookup->name(), cell, updated_type);
-          return code;
-        }
-        DCHECK(holder.is_identical_to(receiver));
-        return isolate()->builtins()->StoreIC_Normal();
+        DCHECK(holder->IsJSGlobalObject());
+        TRACE_HANDLER_STATS(isolate(), StoreIC_StoreGlobal);
+        DCHECK(holder.is_identical_to(receiver) ||
+               receiver->map()->prototype() == *holder);
+        auto cell = lookup->GetPropertyCell();
+        auto updated_type =
+            PropertyCell::UpdatedType(cell, value, lookup->property_details());
+        auto code = PropertyCellStoreHandler(
+            isolate(), receiver, Handle<JSGlobalObject>::cast(holder),
+            lookup->name(), cell, updated_type);
+        return code;
       }
 
       // -------------- Fields --------------
       if (lookup->property_details().type() == DATA) {
+#ifdef DEBUG
         bool use_stub = true;
         if (lookup->representation().IsHeapObject()) {
           // Only use a generic stub if no types need to be tracked.
           Handle<FieldType> field_type = lookup->GetFieldType();
           use_stub = !field_type->IsClass();
         }
-        if (use_stub) {
-          StoreFieldStub stub(isolate(), lookup->GetFieldIndex(),
-                              lookup->representation());
-          return stub.GetCode();
-        }
+        DCHECK(!use_stub);
+#endif
+        TRACE_HANDLER_STATS(isolate(), StoreIC_StoreField);
         NamedStoreHandlerCompiler compiler(isolate(), receiver_map(), holder);
         return compiler.CompileStoreField(lookup);
       }
 
       // -------------- Constant properties --------------
       DCHECK(lookup->property_details().type() == DATA_CONSTANT);
-      TRACE_GENERIC_IC(isolate(), "StoreIC", "constant property");
-      break;
+      UNREACHABLE();
     }
 
     case LookupIterator::INTEGER_INDEXED_EXOTIC:
@@ -1832,22 +1867,12 @@
     case LookupIterator::NOT_FOUND:
       UNREACHABLE();
   }
+  UNREACHABLE();
   return slow_stub();
 }
 
-
-Handle<Code> KeyedStoreIC::StoreElementStub(Handle<Map> receiver_map,
-                                            KeyedAccessStoreMode store_mode) {
-  Handle<Code> null_handle;
-  // Don't handle megamorphic property accesses for INTERCEPTORS or
-  // ACCESSOR_CONSTANT
-  // via megamorphic stubs, since they don't have a map in their relocation info
-  // and so the stubs can't be harvested for the object needed for a map check.
-  if (target()->type() != Code::NORMAL) {
-    TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "non-NORMAL target type");
-    return megamorphic_stub();
-  }
-
+void KeyedStoreIC::UpdateStoreElement(Handle<Map> receiver_map,
+                                      KeyedAccessStoreMode store_mode) {
   MapHandleList target_receiver_maps;
   TargetMaps(&target_receiver_maps);
   if (target_receiver_maps.length() == 0) {
@@ -1855,10 +1880,17 @@
         ComputeTransitionedMap(receiver_map, store_mode);
     store_mode = GetNonTransitioningStoreMode(store_mode);
     Handle<Code> handler =
-        PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(
-            monomorphic_map, language_mode(), store_mode);
-    ConfigureVectorState(Handle<Name>::null(), monomorphic_map, handler);
-    return null_handle;
+        PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(monomorphic_map,
+                                                                store_mode);
+    return ConfigureVectorState(Handle<Name>(), monomorphic_map, handler);
+  }
+
+  for (int i = 0; i < target_receiver_maps.length(); i++) {
+    if (!target_receiver_maps.at(i).is_null() &&
+        target_receiver_maps.at(i)->instance_type() == JS_VALUE_TYPE) {
+      TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "JSValue");
+      return;
+    }
   }
 
   // There are several special cases where an IC that is MONOMORPHIC can still
@@ -1883,23 +1915,22 @@
       store_mode = GetNonTransitioningStoreMode(store_mode);
       Handle<Code> handler =
           PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(
-              transitioned_receiver_map, language_mode(), store_mode);
-      ConfigureVectorState(Handle<Name>::null(), transitioned_receiver_map,
-                           handler);
-      return null_handle;
-    } else if (receiver_map.is_identical_to(previous_receiver_map) &&
-               old_store_mode == STANDARD_STORE &&
-               (store_mode == STORE_AND_GROW_NO_TRANSITION ||
-                store_mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS ||
-                store_mode == STORE_NO_TRANSITION_HANDLE_COW)) {
+              transitioned_receiver_map, store_mode);
+      ConfigureVectorState(Handle<Name>(), transitioned_receiver_map, handler);
+      return;
+    }
+    if (receiver_map.is_identical_to(previous_receiver_map) &&
+        old_store_mode == STANDARD_STORE &&
+        (store_mode == STORE_AND_GROW_NO_TRANSITION ||
+         store_mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS ||
+         store_mode == STORE_NO_TRANSITION_HANDLE_COW)) {
       // A "normal" IC that handles stores can switch to a version that can
       // grow at the end of the array, handle OOB accesses or copy COW arrays
       // and still stay MONOMORPHIC.
       Handle<Code> handler =
-          PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(
-              receiver_map, language_mode(), store_mode);
-      ConfigureVectorState(Handle<Name>::null(), receiver_map, handler);
-      return null_handle;
+          PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler(receiver_map,
+                                                                  store_mode);
+      return ConfigureVectorState(Handle<Name>(), receiver_map, handler);
     }
   }
 
@@ -1919,14 +1950,12 @@
     // If the miss wasn't due to an unseen map, a polymorphic stub
     // won't help, use the megamorphic stub which can handle everything.
     TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "same map added twice");
-    return megamorphic_stub();
+    return;
   }
 
   // If the maximum number of receiver maps has been exceeded, use the
   // megamorphic version of the IC.
-  if (target_receiver_maps.length() > kMaxKeyedPolymorphism) {
-    return megamorphic_stub();
-  }
+  if (target_receiver_maps.length() > kMaxKeyedPolymorphism) return;
 
   // Make sure all polymorphic handlers have the same store mode, otherwise the
   // megamorphic stub must be used.
@@ -1936,7 +1965,7 @@
       store_mode = old_store_mode;
     } else if (store_mode != old_store_mode) {
       TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "store mode mismatch");
-      return megamorphic_stub();
+      return;
     }
   }
 
@@ -1954,17 +1983,16 @@
         external_arrays != target_receiver_maps.length()) {
       TRACE_GENERIC_IC(isolate(), "KeyedStoreIC",
                        "unsupported combination of external and normal arrays");
-      return megamorphic_stub();
+      return;
     }
   }
 
+  TRACE_HANDLER_STATS(isolate(), KeyedStoreIC_Polymorphic);
   MapHandleList transitioned_maps(target_receiver_maps.length());
   CodeHandleList handlers(target_receiver_maps.length());
   PropertyICCompiler::ComputeKeyedStorePolymorphicHandlers(
-      &target_receiver_maps, &transitioned_maps, &handlers, store_mode,
-      language_mode());
+      &target_receiver_maps, &transitioned_maps, &handlers, store_mode);
   ConfigureVectorState(&target_receiver_maps, &transitioned_maps, &handlers);
-  return null_handle;
 }
 
 
@@ -2077,7 +2105,6 @@
   key = TryConvertKey(key, isolate());
 
   Handle<Object> store_handle;
-  Handle<Code> stub = megamorphic_stub();
 
   uint32_t index;
   if ((key->IsInternalizedString() &&
@@ -2097,10 +2124,8 @@
     return store_handle;
   }
 
-  bool use_ic =
-      FLAG_use_ic && !object->IsStringWrapper() &&
-      !object->IsAccessCheckNeeded() && !object->IsJSGlobalProxy() &&
-      !(object->IsJSObject() && JSObject::cast(*object)->map()->is_observed());
+  bool use_ic = FLAG_use_ic && !object->IsStringWrapper() &&
+                !object->IsAccessCheckNeeded() && !object->IsJSGlobalProxy();
   if (use_ic && !object->IsSmi()) {
     // Don't use ICs for maps of the objects in Array's prototype chain. We
     // expect to be able to trap element sets to objects with those maps in
@@ -2148,7 +2173,7 @@
         // other non-dictionary receivers in the polymorphic case benefit
         // from fast path keyed stores.
         if (!old_receiver_map->DictionaryElementsInPrototypeChainOnly()) {
-          stub = StoreElementStub(old_receiver_map, store_mode);
+          UpdateStoreElement(old_receiver_map, store_mode);
         } else {
           TRACE_GENERIC_IC(isolate(), "KeyedStoreIC",
                            "dictionary or proxy prototype");
@@ -2161,13 +2186,9 @@
     }
   }
 
-  if (!is_vector_set() || stub.is_null()) {
-    Code* megamorphic = *megamorphic_stub();
-    if (!stub.is_null() && (*stub == megamorphic || *stub == *slow_stub())) {
-      ConfigureVectorState(MEGAMORPHIC, key);
-      TRACE_GENERIC_IC(isolate(), "KeyedStoreIC",
-                       *stub == megamorphic ? "set generic" : "slow stub");
-    }
+  if (!is_vector_set()) {
+    ConfigureVectorState(MEGAMORPHIC, key);
+    TRACE_GENERIC_IC(isolate(), "KeyedStoreIC", "set generic");
   }
   TRACE_IC("StoreIC", key);
 
@@ -2512,7 +2533,28 @@
 MaybeHandle<Object> BinaryOpIC::Transition(
     Handle<AllocationSite> allocation_site, Handle<Object> left,
     Handle<Object> right) {
-  BinaryOpICState state(isolate(), target()->extra_ic_state());
+  BinaryOpICState state(isolate(), extra_ic_state());
+
+#ifdef V8_TARGET_ARCH_X64
+  // Crash instrumentation for crbug.com/621147.
+  uintptr_t left_raw = reinterpret_cast<uintptr_t>(*left);
+  uintptr_t hole_raw =
+      reinterpret_cast<uintptr_t>(isolate()->heap()->the_hole_value());
+  if ((hole_raw & ((1ull << 32) - 1)) == (left_raw & ((1ull << 32) - 1))) {
+    Code* c = GetCode();
+    Code::Kind kind = c->kind();
+    int instruction_size = c->instruction_size() + 2 * sizeof(Address);
+    byte* instructions = static_cast<byte*>(alloca(instruction_size));
+    Address* start = reinterpret_cast<Address*>(instructions);
+    start[0] = fp();
+    start[1] = pc();
+    for (int i = 2 * sizeof(Address); i < instruction_size; i++) {
+      instructions[i] = c->instruction_start()[i];
+    }
+    isolate()->PushStackTraceAndDie(0xBAAAAAAD, instructions, fp(),
+                                    static_cast<unsigned int>(kind));
+  }
+#endif  // V8_TARGET_ARCH_X64
 
   // Compute the actual result using the builtin for the binary operation.
   Handle<Object> result;
@@ -2576,16 +2618,12 @@
     return result;
   }
 
-  // Execution::Call can execute arbitrary JavaScript, hence potentially
-  // update the state of this very IC, so we must update the stored state.
-  UpdateTarget();
-
   // Compute the new state.
   BinaryOpICState old_state(isolate(), target()->extra_ic_state());
   state.Update(left, right, result);
 
   // Check if we have a string operation here.
-  Handle<Code> target;
+  Handle<Code> new_target;
   if (!allocation_site.is_null() || state.ShouldCreateAllocationMementos()) {
     // Setup the allocation site on-demand.
     if (allocation_site.is_null()) {
@@ -2594,24 +2632,24 @@
 
     // Install the stub with an allocation site.
     BinaryOpICWithAllocationSiteStub stub(isolate(), state);
-    target = stub.GetCodeCopyFromTemplate(allocation_site);
+    new_target = stub.GetCodeCopyFromTemplate(allocation_site);
 
     // Sanity check the trampoline stub.
-    DCHECK_EQ(*allocation_site, target->FindFirstAllocationSite());
+    DCHECK_EQ(*allocation_site, new_target->FindFirstAllocationSite());
   } else {
     // Install the generic stub.
     BinaryOpICStub stub(isolate(), state);
-    target = stub.GetCode();
+    new_target = stub.GetCode();
 
     // Sanity check the generic stub.
-    DCHECK_NULL(target->FindFirstAllocationSite());
+    DCHECK_NULL(new_target->FindFirstAllocationSite());
   }
-  set_target(*target);
+  set_target(*new_target);
 
   if (FLAG_trace_ic) {
     OFStream os(stdout);
     os << "[BinaryOpIC" << old_state << " => " << state << " @ "
-       << static_cast<void*>(*target) << " <- ";
+       << static_cast<void*>(*new_target) << " <- ";
     JavaScriptFrame::PrintTop(isolate(), stdout, false, true);
     if (!allocation_site.is_null()) {
       os << " using allocation site " << static_cast<void*>(*allocation_site);
@@ -2739,7 +2777,7 @@
 
 
 Handle<Object> ToBooleanIC::ToBoolean(Handle<Object> object) {
-  ToBooleanICStub stub(isolate(), target()->extra_ic_state());
+  ToBooleanICStub stub(isolate(), extra_ic_state());
   bool to_boolean_value = stub.UpdateStatus(object);
   Handle<Code> code = stub.GetCode();
   set_target(*code);
diff --git a/src/ic/ic.h b/src/ic/ic.h
index 8bd2f44..5dae179 100644
--- a/src/ic/ic.h
+++ b/src/ic/ic.h
@@ -35,11 +35,11 @@
   // Compute the current IC state based on the target stub, receiver and name.
   void UpdateState(Handle<Object> receiver, Handle<Object> name);
 
-  bool IsNameCompatibleWithPrototypeFailure(Handle<Object> name);
-  void MarkPrototypeFailure(Handle<Object> name) {
-    DCHECK(IsNameCompatibleWithPrototypeFailure(name));
+  bool RecomputeHandlerForName(Handle<Object> name);
+  void MarkRecomputeHandler(Handle<Object> name) {
+    DCHECK(RecomputeHandlerForName(name));
     old_state_ = state_;
-    state_ = PROTOTYPE_FAILURE;
+    state_ = RECOMPUTE_HANDLER;
   }
 
   // Clear the inline cache to initial state.
@@ -47,14 +47,12 @@
 
 #ifdef DEBUG
   bool IsLoadStub() const {
-    return target()->is_load_stub() || target()->is_keyed_load_stub();
+    return kind_ == Code::LOAD_IC || kind_ == Code::KEYED_LOAD_IC;
   }
-
   bool IsStoreStub() const {
-    return target()->is_store_stub() || target()->is_keyed_store_stub();
+    return kind_ == Code::STORE_IC || kind_ == Code::KEYED_STORE_IC;
   }
-
-  bool IsCallStub() const { return target()->is_call_stub(); }
+  bool IsCallStub() const { return kind_ == Code::CALL_IC; }
 #endif
 
   static inline Handle<Map> GetHandlerCacheHolder(Handle<Map> receiver_map,
@@ -82,9 +80,6 @@
   }
 
  protected:
-  // Get the call-site target; used for determining the state.
-  Handle<Code> target() const { return target_; }
-
   Address fp() const { return fp_; }
   Address pc() const { return *pc_address_; }
   Isolate* isolate() const { return isolate_; }
@@ -101,13 +96,12 @@
 
   // Set the call-site target.
   inline void set_target(Code* code);
-  bool is_target_set() { return target_set_; }
   bool is_vector_set() { return vector_set_; }
 
   bool UseVector() const {
     bool use = ICUseVector(kind());
     // If we are supposed to use the nexus, verify the nexus is non-null.
-    DCHECK(!use || nexus_ != NULL);
+    DCHECK(!use || nexus_ != nullptr);
     return use;
   }
 
@@ -139,9 +133,6 @@
                                          Address constant_pool);
   static inline void SetTargetAtAddress(Address address, Code* target,
                                         Address constant_pool);
-  static void OnTypeFeedbackChanged(Isolate* isolate, Address address,
-                                    State old_state, State new_state,
-                                    bool target_remains_ic_stub);
   // As a vector-based IC, type feedback must be updated differently.
   static void OnTypeFeedbackChanged(Isolate* isolate, Code* host);
   static void PostPatching(Address address, Code* target, Code* old_target);
@@ -149,6 +140,10 @@
   // Compute the handler either by compiling or by retrieving a cached version.
   Handle<Code> ComputeHandler(LookupIterator* lookup,
                               Handle<Object> value = Handle<Code>::null());
+  virtual Handle<Code> GetMapIndependentHandler(LookupIterator* lookup) {
+    UNREACHABLE();
+    return Handle<Code>::null();
+  }
   virtual Handle<Code> CompileHandler(LookupIterator* lookup,
                                       Handle<Object> value,
                                       CacheHolderFlag cache_holder) {
@@ -164,22 +159,18 @@
   bool IsTransitionOfMonomorphicTarget(Map* source_map, Map* target_map);
   void PatchCache(Handle<Name> name, Handle<Code> code);
   Code::Kind kind() const { return kind_; }
+  bool is_keyed() const {
+    return kind_ == Code::KEYED_LOAD_IC || kind_ == Code::KEYED_STORE_IC;
+  }
   Code::Kind handler_kind() const {
     if (kind_ == Code::KEYED_LOAD_IC) return Code::LOAD_IC;
     DCHECK(kind_ == Code::LOAD_IC || kind_ == Code::STORE_IC ||
            kind_ == Code::KEYED_STORE_IC);
     return kind_;
   }
-  virtual Handle<Code> megamorphic_stub() {
-    UNREACHABLE();
-    return Handle<Code>::null();
-  }
-
-  bool TryRemoveInvalidPrototypeDependentStub(Handle<Object> receiver,
-                                              Handle<String> name);
+  bool ShouldRecomputeHandler(Handle<Object> receiver, Handle<String> name);
 
   ExtraICState extra_ic_state() const { return extra_ic_state_; }
-  void set_extra_ic_state(ExtraICState state) { extra_ic_state_ = state; }
 
   Handle<Map> receiver_map() { return receiver_map_; }
   void update_receiver_map(Handle<Object> receiver) {
@@ -202,12 +193,10 @@
     return target_maps_.length() > 0 ? *target_maps_.at(0) : NULL;
   }
 
-  inline void UpdateTarget();
-
   Handle<TypeFeedbackVector> vector() const { return nexus()->vector_handle(); }
   FeedbackVectorSlot slot() const { return nexus()->slot(); }
   State saved_state() const {
-    return state() == PROTOTYPE_FAILURE ? old_state_ : state();
+    return state() == RECOMPUTE_HANDLER ? old_state_ : state();
   }
 
   template <class NexusClass>
@@ -217,25 +206,17 @@
   FeedbackNexus* nexus() const { return nexus_; }
 
   inline Code* get_host();
+  inline Code* target() const;
 
  private:
-  inline Code* raw_target() const;
   inline Address constant_pool() const;
   inline Address raw_constant_pool() const;
 
   void FindTargetMaps() {
     if (target_maps_set_) return;
     target_maps_set_ = true;
-    if (UseVector()) {
-      nexus()->ExtractMaps(&target_maps_);
-    } else {
-      if (state_ == MONOMORPHIC) {
-        Map* map = target_->FindFirstMap();
-        if (map != NULL) target_maps_.Add(handle(map));
-      } else if (state_ != UNINITIALIZED && state_ != PREMONOMORPHIC) {
-        target_->FindAllMaps(&target_maps_);
-      }
-    }
+    DCHECK(UseVector());
+    nexus()->ExtractMaps(&target_maps_);
   }
 
   // Frame pointer for the frame that uses (calls) the IC.
@@ -253,9 +234,6 @@
 
   Isolate* isolate_;
 
-  // The original code target that missed.
-  Handle<Code> target_;
-  bool target_set_;
   bool vector_set_;
   State old_state_;  // For saving if we marked as prototype failure.
   State state_;
@@ -283,9 +261,6 @@
   void HandleMiss(Handle<Object> function);
 
   // Code generator routines.
-  static Handle<Code> initialize_stub(Isolate* isolate, int argc,
-                                      ConvertReceiverMode mode,
-                                      TailCallMode tail_call_mode);
   static Handle<Code> initialize_stub_in_optimized_code(
       Isolate* isolate, int argc, ConvertReceiverMode mode,
       TailCallMode tail_call_mode);
@@ -312,13 +287,10 @@
 
   // Code generator routines.
 
-  static void GenerateInitialize(MacroAssembler* masm) { GenerateMiss(masm); }
   static void GenerateMiss(MacroAssembler* masm);
   static void GenerateRuntimeGetProperty(MacroAssembler* masm);
   static void GenerateNormal(MacroAssembler* masm);
 
-  static Handle<Code> initialize_stub(Isolate* isolate,
-                                      ExtraICState extra_state);
   static Handle<Code> initialize_stub_in_optimized_code(
       Isolate* isolate, ExtraICState extra_state, State initialization_state);
 
@@ -328,32 +300,22 @@
   static void Clear(Isolate* isolate, Code* host, LoadICNexus* nexus);
 
  protected:
-  inline void set_target(Code* code);
-
   Handle<Code> slow_stub() const {
-    if (kind() == Code::LOAD_IC) {
-      return isolate()->builtins()->LoadIC_Slow();
-    } else {
-      DCHECK_EQ(Code::KEYED_LOAD_IC, kind());
-      return isolate()->builtins()->KeyedLoadIC_Slow();
-    }
+    return isolate()->builtins()->LoadIC_Slow();
   }
 
-  Handle<Code> megamorphic_stub() override;
-
   // Update the inline cache and the global stub cache based on the
   // lookup result.
   void UpdateCaches(LookupIterator* lookup);
 
+  Handle<Code> GetMapIndependentHandler(LookupIterator* lookup) override;
+
   Handle<Code> CompileHandler(LookupIterator* lookup, Handle<Object> unused,
                               CacheHolderFlag cache_holder) override;
 
  private:
   Handle<Code> SimpleFieldLoad(FieldIndex index);
 
-  static void Clear(Isolate* isolate, Address address, Code* target,
-                    Address constant_pool);
-
   friend class IC;
 };
 
@@ -364,7 +326,6 @@
               KeyedLoadICNexus* nexus = NULL)
       : LoadIC(depth, isolate, nexus) {
     DCHECK(nexus != NULL);
-    DCHECK(target()->is_keyed_load_stub());
   }
 
   MUST_USE_RESULT MaybeHandle<Object> Load(Handle<Object> object,
@@ -373,18 +334,8 @@
   // Code generator routines.
   static void GenerateMiss(MacroAssembler* masm);
   static void GenerateRuntimeGetProperty(MacroAssembler* masm);
-  static void GenerateInitialize(MacroAssembler* masm) { GenerateMiss(masm); }
   static void GenerateMegamorphic(MacroAssembler* masm);
 
-  // Bit mask to be tested against bit field for the cases when
-  // generic stub should go into slow case.
-  // Access check is necessary explicitly since generic stub does not perform
-  // map checks.
-  static const int kSlowCaseBitFieldMask =
-      (1 << Map::kIsAccessCheckNeeded) | (1 << Map::kHasIndexedInterceptor);
-
-  static Handle<Code> initialize_stub(Isolate* isolate,
-                                      ExtraICState extra_state);
   static Handle<Code> initialize_stub_in_optimized_code(
       Isolate* isolate, State initialization_state, ExtraICState extra_state);
   static Handle<Code> ChooseMegamorphicStub(Isolate* isolate,
@@ -394,22 +345,15 @@
 
  protected:
   // receiver is HeapObject because it could be a String or a JSObject
-  Handle<Code> LoadElementStub(Handle<HeapObject> receiver);
+  void UpdateLoadElement(Handle<HeapObject> receiver);
 
  private:
-  static void Clear(Isolate* isolate, Address address, Code* target,
-                    Address constant_pool);
-
   friend class IC;
 };
 
 
 class StoreIC : public IC {
  public:
-  static ExtraICState ComputeExtraICState(LanguageMode flag) {
-    return StoreICState(flag).GetExtraICState();
-  }
-
   StoreIC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus = NULL)
       : IC(depth, isolate, nexus) {
     DCHECK(IsStoreStub());
@@ -421,19 +365,12 @@
 
   // Code generators for stub routines. Only called once at startup.
   static void GenerateSlow(MacroAssembler* masm);
-  static void GenerateInitialize(MacroAssembler* masm) { GenerateMiss(masm); }
-  static void GeneratePreMonomorphic(MacroAssembler* masm) {
-    GenerateMiss(masm);
-  }
   static void GenerateMiss(MacroAssembler* masm);
   static void GenerateMegamorphic(MacroAssembler* masm);
   static void GenerateNormal(MacroAssembler* masm);
   static void GenerateRuntimeSetProperty(MacroAssembler* masm,
                                          LanguageMode language_mode);
 
-  static Handle<Code> initialize_stub(Isolate* isolate,
-                                      LanguageMode language_mode,
-                                      State initialization_state);
   static Handle<Code> initialize_stub_in_optimized_code(
       Isolate* isolate, LanguageMode language_mode, State initialization_state);
 
@@ -449,29 +386,17 @@
 
  protected:
   // Stub accessors.
-  Handle<Code> megamorphic_stub() override;
   Handle<Code> slow_stub() const;
 
-  virtual Handle<Code> pre_monomorphic_stub() const {
-    return pre_monomorphic_stub(isolate(), language_mode());
-  }
-
-  static Handle<Code> pre_monomorphic_stub(Isolate* isolate,
-                                           LanguageMode language_mode);
-
   // Update the inline cache and the global stub cache based on the
   // lookup result.
   void UpdateCaches(LookupIterator* lookup, Handle<Object> value,
                     JSReceiver::StoreFromKeyed store_mode);
+  Handle<Code> GetMapIndependentHandler(LookupIterator* lookup) override;
   Handle<Code> CompileHandler(LookupIterator* lookup, Handle<Object> value,
                               CacheHolderFlag cache_holder) override;
 
  private:
-  inline void set_target(Code* code);
-
-  static void Clear(Isolate* isolate, Address address, Code* target,
-                    Address constant_pool);
-
   friend class IC;
 };
 
@@ -484,50 +409,24 @@
 
 class KeyedStoreIC : public StoreIC {
  public:
-  // ExtraICState bits (building on IC)
-  // ExtraICState bits
-  // When more language modes are added, these BitFields need to move too.
-  STATIC_ASSERT(i::LANGUAGE_END == 3);
-  class ExtraICStateKeyedAccessStoreMode
-      : public BitField<KeyedAccessStoreMode, 3, 3> {};  // NOLINT
-
-  class IcCheckTypeField : public BitField<IcCheckType, 6, 1> {};
-
-  static ExtraICState ComputeExtraICState(LanguageMode flag,
-                                          KeyedAccessStoreMode mode) {
-    return StoreICState(flag).GetExtraICState() |
-           ExtraICStateKeyedAccessStoreMode::encode(mode) |
-           IcCheckTypeField::encode(ELEMENT);
-  }
-
   KeyedAccessStoreMode GetKeyedAccessStoreMode() {
     return casted_nexus<KeyedStoreICNexus>()->GetKeyedAccessStoreMode();
   }
 
   KeyedStoreIC(FrameDepth depth, Isolate* isolate,
                KeyedStoreICNexus* nexus = NULL)
-      : StoreIC(depth, isolate, nexus) {
-    DCHECK(target()->is_keyed_store_stub());
-  }
+      : StoreIC(depth, isolate, nexus) {}
 
   MUST_USE_RESULT MaybeHandle<Object> Store(Handle<Object> object,
                                             Handle<Object> name,
                                             Handle<Object> value);
 
   // Code generators for stub routines.  Only called once at startup.
-  static void GenerateInitialize(MacroAssembler* masm) { GenerateMiss(masm); }
-  static void GeneratePreMonomorphic(MacroAssembler* masm) {
-    GenerateMiss(masm);
-  }
   static void GenerateMiss(MacroAssembler* masm);
   static void GenerateSlow(MacroAssembler* masm);
   static void GenerateMegamorphic(MacroAssembler* masm,
                                   LanguageMode language_mode);
 
-  static Handle<Code> initialize_stub(Isolate* isolate,
-                                      LanguageMode language_mode,
-                                      State initialization_state);
-
   static Handle<Code> initialize_stub_in_optimized_code(
       Isolate* isolate, LanguageMode language_mode, State initialization_state);
   static Handle<Code> ChooseMegamorphicStub(Isolate* isolate,
@@ -536,27 +435,10 @@
   static void Clear(Isolate* isolate, Code* host, KeyedStoreICNexus* nexus);
 
  protected:
-  virtual Handle<Code> pre_monomorphic_stub() const {
-    return pre_monomorphic_stub(isolate(), language_mode());
-  }
-  static Handle<Code> pre_monomorphic_stub(Isolate* isolate,
-                                           LanguageMode language_mode) {
-    if (is_strict(language_mode)) {
-      return isolate->builtins()->KeyedStoreIC_PreMonomorphic_Strict();
-    } else {
-      return isolate->builtins()->KeyedStoreIC_PreMonomorphic();
-    }
-  }
-
-  Handle<Code> StoreElementStub(Handle<Map> receiver_map,
-                                KeyedAccessStoreMode store_mode);
+  void UpdateStoreElement(Handle<Map> receiver_map,
+                          KeyedAccessStoreMode store_mode);
 
  private:
-  inline void set_target(Code* code);
-
-  static void Clear(Isolate* isolate, Address address, Code* target,
-                    Address constant_pool);
-
   Handle<Map> ComputeTransitionedMap(Handle<Map> map,
                                      KeyedAccessStoreMode store_mode);
 
diff --git a/src/ic/mips/handler-compiler-mips.cc b/src/ic/mips/handler-compiler-mips.cc
index b924bda..847782e 100644
--- a/src/ic/mips/handler-compiler-mips.cc
+++ b/src/ic/mips/handler-compiler-mips.cc
@@ -584,66 +584,6 @@
 }
 
 
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), receiver()));
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), reg));
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  // Here and below +1 is for name() pushed after the args_ array.
-  typedef PropertyCallbackArguments PCA;
-  __ Subu(sp, sp, (PCA::kArgsLength + 1) * kPointerSize);
-  __ sw(receiver(), MemOperand(sp, (PCA::kThisIndex + 1) * kPointerSize));
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ li(scratch2(), data);
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch2(), cell);
-  }
-  __ sw(scratch2(), MemOperand(sp, (PCA::kDataIndex + 1) * kPointerSize));
-  __ LoadRoot(scratch2(), Heap::kUndefinedValueRootIndex);
-  __ sw(scratch2(),
-        MemOperand(sp, (PCA::kReturnValueOffset + 1) * kPointerSize));
-  __ sw(scratch2(), MemOperand(sp, (PCA::kReturnValueDefaultValueIndex + 1) *
-                                       kPointerSize));
-  __ li(scratch2(), Operand(ExternalReference::isolate_address(isolate())));
-  __ sw(scratch2(), MemOperand(sp, (PCA::kIsolateIndex + 1) * kPointerSize));
-  __ sw(reg, MemOperand(sp, (PCA::kHolderIndex + 1) * kPointerSize));
-  // should_throw_on_error -> false
-  DCHECK(Smi::FromInt(0) == nullptr);
-  __ sw(zero_reg,
-        MemOperand(sp, (PCA::kShouldThrowOnErrorIndex + 1) * kPointerSize));
-
-  __ sw(name(), MemOperand(sp, 0 * kPointerSize));
-
-  // Abi for CallApiGetter.
-  Register getter_address_reg = ApiGetterDescriptor::function_address();
-
-  Address getter_address = v8::ToCData<Address>(callback->getter());
-  ApiFunction fun(getter_address);
-  ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL;
-  ExternalReference ref = ExternalReference(&fun, type, isolate());
-  __ li(getter_address_reg, Operand(ref));
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
-
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
@@ -737,7 +677,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -778,7 +718,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/mips/ic-mips.cc b/src/ic/mips/ic-mips.cc
index ae3615e..6c44918 100644
--- a/src/ic/mips/ic-mips.cc
+++ b/src/ic/mips/ic-mips.cc
@@ -419,9 +419,9 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ li(slot, Operand(Smi::FromInt(slot_index)));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, flags,
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key, t0, t1, t2, t5);
   // Cache miss.
   GenerateMiss(masm);
@@ -616,11 +616,10 @@
   __ JumpIfSmi(receiver, &slow);
   // Get the map of the object.
   __ lw(receiver_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ lbu(t0, FieldMemOperand(receiver_map, Map::kBitFieldOffset));
-  __ And(t0, t0,
-         Operand(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved));
+  __ And(t0, t0, Operand(1 << Map::kIsAccessCheckNeeded));
   __ Branch(&slow, ne, t0, Operand(zero_reg));
   // Check if the object is a JS array or not.
   __ lbu(t0, FieldMemOperand(receiver_map, Map::kInstanceTypeOffset));
@@ -663,10 +662,10 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ li(slot, Operand(Smi::FromInt(slot_index)));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, key, t1, t2, t4, t5);
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, t1, t2, t4, t5);
   // Cache miss.
   __ Branch(&miss);
 
@@ -737,10 +736,10 @@
   DCHECK(StoreDescriptor::ValueRegister().is(a0));
 
   // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, a3, t0, t1, t2);
+                                               receiver, name, t1, t2, t3, t4);
 
   // Cache miss: Jump to runtime.
   GenerateMiss(masm);
diff --git a/src/ic/mips/stub-cache-mips.cc b/src/ic/mips/stub-cache-mips.cc
index 039763c..ec9f043 100644
--- a/src/ic/mips/stub-cache-mips.cc
+++ b/src/ic/mips/stub-cache-mips.cc
@@ -14,10 +14,9 @@
 
 #define __ ACCESS_MASM(masm)
 
-
 static void ProbeTable(Isolate* isolate, MacroAssembler* masm,
-                       Code::Kind ic_kind, Code::Flags flags,
-                       StubCache::Table table, Register receiver, Register name,
+                       Code::Flags flags, StubCache::Table table,
+                       Register receiver, Register name,
                        // Number of the cache entry, not scaled.
                        Register offset, Register scratch, Register scratch2,
                        Register offset_scratch) {
@@ -97,9 +96,6 @@
   // entry size being 12.
   DCHECK(sizeof(Entry) == 12);
 
-  // Make sure the flags does not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Make sure that there are no register conflicts.
   DCHECK(!AreAliased(receiver, name, scratch, extra, extra2, extra3));
 
@@ -145,8 +141,8 @@
   __ And(scratch, scratch, Operand(mask));
 
   // Probe the primary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kPrimary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kPrimary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Primary miss: Compute hash for secondary probe.
   __ srl(at, name, kCacheIndexShift);
@@ -156,8 +152,8 @@
   __ And(scratch, scratch, Operand(mask2));
 
   // Probe the secondary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kSecondary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kSecondary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Cache miss: Fall-through and let caller handle the miss by
   // entering the runtime system.
diff --git a/src/ic/mips64/handler-compiler-mips64.cc b/src/ic/mips64/handler-compiler-mips64.cc
index 52260ee..81a9b3f 100644
--- a/src/ic/mips64/handler-compiler-mips64.cc
+++ b/src/ic/mips64/handler-compiler-mips64.cc
@@ -584,66 +584,6 @@
 }
 
 
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), receiver()));
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), reg));
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  // Here and below +1 is for name() pushed after the args_ array.
-  typedef PropertyCallbackArguments PCA;
-  __ Dsubu(sp, sp, (PCA::kArgsLength + 1) * kPointerSize);
-  __ sd(receiver(), MemOperand(sp, (PCA::kThisIndex + 1) * kPointerSize));
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ li(scratch2(), data);
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch2(), cell);
-  }
-  __ sd(scratch2(), MemOperand(sp, (PCA::kDataIndex + 1) * kPointerSize));
-  __ LoadRoot(scratch2(), Heap::kUndefinedValueRootIndex);
-  __ sd(scratch2(),
-        MemOperand(sp, (PCA::kReturnValueOffset + 1) * kPointerSize));
-  __ sd(scratch2(), MemOperand(sp, (PCA::kReturnValueDefaultValueIndex + 1) *
-                                       kPointerSize));
-  __ li(scratch2(), Operand(ExternalReference::isolate_address(isolate())));
-  __ sd(scratch2(), MemOperand(sp, (PCA::kIsolateIndex + 1) * kPointerSize));
-  __ sd(reg, MemOperand(sp, (PCA::kHolderIndex + 1) * kPointerSize));
-  // should_throw_on_error -> false
-  DCHECK(Smi::FromInt(0) == nullptr);
-  __ sd(zero_reg,
-        MemOperand(sp, (PCA::kShouldThrowOnErrorIndex + 1) * kPointerSize));
-
-  __ sd(name(), MemOperand(sp, 0 * kPointerSize));
-
-  // Abi for CallApiGetter.
-  Register getter_address_reg = ApiGetterDescriptor::function_address();
-
-  Address getter_address = v8::ToCData<Address>(callback->getter());
-  ApiFunction fun(getter_address);
-  ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL;
-  ExternalReference ref = ExternalReference(&fun, type, isolate());
-  __ li(getter_address_reg, Operand(ref));
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
-
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
@@ -737,7 +677,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -778,7 +718,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/mips64/ic-mips64.cc b/src/ic/mips64/ic-mips64.cc
index f46c9dc..5193c85 100644
--- a/src/ic/mips64/ic-mips64.cc
+++ b/src/ic/mips64/ic-mips64.cc
@@ -418,9 +418,9 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ li(slot, Operand(Smi::FromInt(slot_index)));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, flags,
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key, a4, a5, a6, t1);
   // Cache miss.
   GenerateMiss(masm);
@@ -622,11 +622,10 @@
   __ JumpIfSmi(receiver, &slow);
   // Get the map of the object.
   __ ld(receiver_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ lbu(a4, FieldMemOperand(receiver_map, Map::kBitFieldOffset));
-  __ And(a4, a4,
-         Operand(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved));
+  __ And(a4, a4, Operand(1 << Map::kIsAccessCheckNeeded));
   __ Branch(&slow, ne, a4, Operand(zero_reg));
   // Check if the object is a JS array or not.
   __ lbu(a4, FieldMemOperand(receiver_map, Map::kInstanceTypeOffset));
@@ -667,10 +666,10 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ li(slot, Operand(Smi::FromInt(slot_index)));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, key, a5, a6, a7, t0);
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, a5, a6, a7, t0);
   // Cache miss.
   __ Branch(&miss);
 
@@ -741,10 +740,10 @@
   DCHECK(StoreDescriptor::ValueRegister().is(a0));
 
   // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, a3, a4, a5, a6);
+                                               receiver, name, a5, a6, a7, t0);
 
   // Cache miss: Jump to runtime.
   GenerateMiss(masm);
diff --git a/src/ic/mips64/stub-cache-mips64.cc b/src/ic/mips64/stub-cache-mips64.cc
index 0bd7dd0..d000c52 100644
--- a/src/ic/mips64/stub-cache-mips64.cc
+++ b/src/ic/mips64/stub-cache-mips64.cc
@@ -14,10 +14,9 @@
 
 #define __ ACCESS_MASM(masm)
 
-
 static void ProbeTable(Isolate* isolate, MacroAssembler* masm,
-                       Code::Kind ic_kind, Code::Flags flags,
-                       StubCache::Table table, Register receiver, Register name,
+                       Code::Flags flags, StubCache::Table table,
+                       Register receiver, Register name,
                        // Number of the cache entry, not scaled.
                        Register offset, Register scratch, Register scratch2,
                        Register offset_scratch) {
@@ -100,9 +99,6 @@
   // DCHECK(sizeof(Entry) == 12);
   // DCHECK(sizeof(Entry) == 3 * kPointerSize);
 
-  // Make sure the flags does not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Make sure that there are no register conflicts.
   DCHECK(!AreAliased(receiver, name, scratch, extra, extra2, extra3));
 
@@ -148,8 +144,8 @@
   __ And(scratch, scratch, Operand(mask));
 
   // Probe the primary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kPrimary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kPrimary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Primary miss: Compute hash for secondary probe.
   __ dsrl(at, name, kCacheIndexShift);
@@ -159,8 +155,8 @@
   __ And(scratch, scratch, Operand(mask2));
 
   // Probe the secondary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kSecondary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kSecondary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Cache miss: Fall-through and let caller handle the miss by
   // entering the runtime system.
diff --git a/src/ic/ppc/handler-compiler-ppc.cc b/src/ic/ppc/handler-compiler-ppc.cc
index 832c25a..49af112 100644
--- a/src/ic/ppc/handler-compiler-ppc.cc
+++ b/src/ic/ppc/handler-compiler-ppc.cc
@@ -592,56 +592,6 @@
 }
 
 
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), receiver()));
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), reg));
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  __ push(receiver());
-  // Push data from AccessorInfo.
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ Move(scratch2(), data);
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch2(), cell);
-  }
-  __ push(scratch2());
-  __ LoadRoot(scratch2(), Heap::kUndefinedValueRootIndex);
-  __ Push(scratch2(), scratch2());
-  __ mov(scratch2(), Operand(ExternalReference::isolate_address(isolate())));
-  // should_throw_on_error -> false
-  __ mov(scratch3(), Operand(Smi::FromInt(0)));
-  __ Push(scratch2(), reg, scratch3(), name());
-
-  // Abi for CallApiGetter
-  Register getter_address_reg = ApiGetterDescriptor::function_address();
-
-  Address getter_address = v8::ToCData<Address>(callback->getter());
-  ApiFunction fun(getter_address);
-  ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL;
-  ExternalReference ref = ExternalReference(&fun, type, isolate());
-  __ mov(getter_address_reg, Operand(ref));
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
-
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
@@ -737,7 +687,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -777,7 +727,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/ppc/ic-ppc.cc b/src/ic/ppc/ic-ppc.cc
index 567296c..3c86786 100644
--- a/src/ic/ppc/ic-ppc.cc
+++ b/src/ic/ppc/ic-ppc.cc
@@ -425,8 +425,8 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ LoadSmiLiteral(slot, Smi::FromInt(slot_index));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key, r7, r8, r9, r10);
   // Cache miss.
@@ -639,11 +639,10 @@
   __ JumpIfSmi(receiver, &slow);
   // Get the map of the object.
   __ LoadP(receiver_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ lbz(ip, FieldMemOperand(receiver_map, Map::kBitFieldOffset));
-  __ andi(r0, ip,
-          Operand(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved));
+  __ andi(r0, ip, Operand(1 << Map::kIsAccessCheckNeeded));
   __ bne(&slow, cr0);
   // Check if the object is a JS array or not.
   __ lbz(r7, FieldMemOperand(receiver_map, Map::kInstanceTypeOffset));
@@ -686,10 +685,10 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ LoadSmiLiteral(slot, Smi::FromInt(slot_index));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, key, r8, r9, r10, r11);
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, r8, r9, r10, r11);
   // Cache miss.
   __ b(&miss);
 
@@ -747,11 +746,11 @@
   DCHECK(StoreDescriptor::ValueRegister().is(r3));
 
   // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
 
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, r6, r7, r8, r9);
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::STORE_IC, flags, receiver, name, r8, r9, r10, r11);
 
   // Cache miss: Jump to runtime.
   GenerateMiss(masm);
diff --git a/src/ic/ppc/stub-cache-ppc.cc b/src/ic/ppc/stub-cache-ppc.cc
index 6030b2c..45a620c 100644
--- a/src/ic/ppc/stub-cache-ppc.cc
+++ b/src/ic/ppc/stub-cache-ppc.cc
@@ -14,10 +14,9 @@
 
 #define __ ACCESS_MASM(masm)
 
-
 static void ProbeTable(Isolate* isolate, MacroAssembler* masm,
-                       Code::Kind ic_kind, Code::Flags flags,
-                       StubCache::Table table, Register receiver, Register name,
+                       Code::Flags flags, StubCache::Table table,
+                       Register receiver, Register name,
                        // Number of the cache entry, not scaled.
                        Register offset, Register scratch, Register scratch2,
                        Register offset_scratch) {
@@ -120,9 +119,6 @@
   DCHECK(sizeof(Entry) == 12);
 #endif
 
-  // Make sure the flags does not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Make sure that there are no register conflicts.
   DCHECK(!AreAliased(receiver, name, scratch, extra, extra2, extra3));
 
@@ -166,8 +162,8 @@
           Operand((kPrimaryTableSize - 1) << kCacheIndexShift));
 
   // Probe the primary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kPrimary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kPrimary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Primary miss: Compute hash for secondary probe.
   __ sub(scratch, scratch, name);
@@ -176,8 +172,8 @@
           Operand((kSecondaryTableSize - 1) << kCacheIndexShift));
 
   // Probe the secondary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kSecondary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kSecondary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Cache miss: Fall-through and let caller handle the miss by
   // entering the runtime system.
diff --git a/src/ic/s390/handler-compiler-s390.cc b/src/ic/s390/handler-compiler-s390.cc
index 1b39782..f15a04d 100644
--- a/src/ic/s390/handler-compiler-s390.cc
+++ b/src/ic/s390/handler-compiler-s390.cc
@@ -562,55 +562,6 @@
   __ Ret();
 }
 
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), receiver()));
-  DCHECK(!AreAliased(scratch2(), scratch3(), scratch4(), reg));
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  __ Push(receiver());
-  // Push data from AccessorInfo.
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ Move(scratch2(), data);
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch2(), cell);
-  }
-  __ push(scratch2());
-  __ LoadRoot(scratch2(), Heap::kUndefinedValueRootIndex);
-  __ Push(scratch2(), scratch2());
-  __ mov(scratch2(), Operand(ExternalReference::isolate_address(isolate())));
-  // should_throw_on_error -> false
-  __ mov(scratch3(), Operand(Smi::FromInt(0)));
-  __ Push(scratch2(), reg, scratch3(), name());
-
-  // Abi for CallApiGetter
-  Register getter_address_reg = ApiGetterDescriptor::function_address();
-
-  Address getter_address = v8::ToCData<Address>(callback->getter());
-  ApiFunction fun(getter_address);
-  ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL;
-  ExternalReference ref = ExternalReference(&fun, type, isolate());
-  __ mov(getter_address_reg, Operand(ref));
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
@@ -703,7 +654,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 Register NamedStoreHandlerCompiler::value() {
@@ -740,7 +691,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 #undef __
diff --git a/src/ic/s390/ic-s390.cc b/src/ic/s390/ic-s390.cc
index d4f2886..bf9f8a1 100644
--- a/src/ic/s390/ic-s390.cc
+++ b/src/ic/s390/ic-s390.cc
@@ -412,8 +412,8 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ LoadSmiLiteral(slot, Smi::FromInt(slot_index));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key, r6, r7, r8, r9);
   // Cache miss.
@@ -625,11 +625,10 @@
   __ JumpIfSmi(receiver, &slow);
   // Get the map of the object.
   __ LoadP(receiver_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ LoadlB(ip, FieldMemOperand(receiver_map, Map::kBitFieldOffset));
-  __ AndP(r0, ip,
-          Operand(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved));
+  __ AndP(r0, ip, Operand(1 << Map::kIsAccessCheckNeeded));
   __ bne(&slow, Label::kNear);
   // Check if the object is a JS array or not.
   __ LoadlB(r6, FieldMemOperand(receiver_map, Map::kInstanceTypeOffset));
@@ -671,10 +670,10 @@
   __ LoadRoot(vector, Heap::kDummyVectorRootIndex);
   __ LoadSmiLiteral(slot, Smi::FromInt(slot_index));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, key, r7, r8, r9, ip);
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, r7, r8, r9, ip);
   // Cache miss.
   __ b(&miss);
 
@@ -728,11 +727,11 @@
   DCHECK(StoreDescriptor::ValueRegister().is(r2));
 
   // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
 
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, r5, r6, r7, r8);
+                                               receiver, name, r7, r8, r9, ip);
 
   // Cache miss: Jump to runtime.
   GenerateMiss(masm);
diff --git a/src/ic/s390/stub-cache-s390.cc b/src/ic/s390/stub-cache-s390.cc
index 054b946..cd50e56 100644
--- a/src/ic/s390/stub-cache-s390.cc
+++ b/src/ic/s390/stub-cache-s390.cc
@@ -15,8 +15,8 @@
 #define __ ACCESS_MASM(masm)
 
 static void ProbeTable(Isolate* isolate, MacroAssembler* masm,
-                       Code::Kind ic_kind, Code::Flags flags,
-                       StubCache::Table table, Register receiver, Register name,
+                       Code::Flags flags, StubCache::Table table,
+                       Register receiver, Register name,
                        // Number of the cache entry, not scaled.
                        Register offset, Register scratch, Register scratch2,
                        Register offset_scratch) {
@@ -114,9 +114,6 @@
   DCHECK(sizeof(Entry) == 12);
 #endif
 
-  // Make sure the flags does not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Make sure that there are no register conflicts.
   DCHECK(!AreAliased(receiver, name, scratch, extra, extra2, extra3));
 
@@ -160,8 +157,8 @@
           Operand((kPrimaryTableSize - 1) << kCacheIndexShift));
 
   // Probe the primary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kPrimary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kPrimary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Primary miss: Compute hash for secondary probe.
   __ SubP(scratch, scratch, name);
@@ -170,8 +167,8 @@
           Operand((kSecondaryTableSize - 1) << kCacheIndexShift));
 
   // Probe the secondary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kSecondary, receiver, name, scratch,
-             extra, extra2, extra3);
+  ProbeTable(isolate, masm, flags, kSecondary, receiver, name, scratch, extra,
+             extra2, extra3);
 
   // Cache miss: Fall-through and let caller handle the miss by
   // entering the runtime system.
diff --git a/src/ic/stub-cache.cc b/src/ic/stub-cache.cc
index 4a5f9bd..5d71c1f 100644
--- a/src/ic/stub-cache.cc
+++ b/src/ic/stub-cache.cc
@@ -23,7 +23,7 @@
 
 static Code::Flags CommonStubCacheChecks(Name* name, Map* map,
                                          Code::Flags flags) {
-  flags = Code::RemoveTypeAndHolderFromFlags(flags);
+  flags = Code::RemoveHolderFromFlags(flags);
 
   // Validate that the name does not move on scavenge, and that we
   // can use identity checks instead of structural equality checks.
@@ -36,8 +36,7 @@
   DCHECK_EQ(Code::HANDLER, Code::ExtractKindFromFlags(flags));
   STATIC_ASSERT((Code::ICStateField::kMask & 1) == 1);
 
-  // Make sure that the code type and cache holder are not included in the hash.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
+  // Make sure that the cache holder are not included in the hash.
   DCHECK(Code::ExtractCacheHolderFromFlags(flags) == 0);
 
   return flags;
@@ -56,8 +55,7 @@
   // secondary cache before overwriting it.
   if (old_code != isolate_->builtins()->builtin(Builtins::kIllegal)) {
     Map* old_map = primary->map;
-    Code::Flags old_flags =
-        Code::RemoveTypeAndHolderFromFlags(old_code->flags());
+    Code::Flags old_flags = Code::RemoveHolderFromFlags(old_code->flags());
     int seed = PrimaryOffset(primary->key, old_flags, old_map);
     int secondary_offset = SecondaryOffset(primary->key, old_flags, seed);
     Entry* secondary = entry(secondary_, secondary_offset);
diff --git a/src/ic/x64/handler-compiler-x64.cc b/src/ic/x64/handler-compiler-x64.cc
index dde6169..21d96ea 100644
--- a/src/ic/x64/handler-compiler-x64.cc
+++ b/src/ic/x64/handler-compiler-x64.cc
@@ -597,58 +597,6 @@
   }
 }
 
-
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(kScratchRegister, scratch2(), scratch3(), receiver()));
-  DCHECK(!AreAliased(kScratchRegister, scratch2(), scratch3(), reg));
-
-  // Insert additional parameters into the stack frame above return address.
-  __ PopReturnAddressTo(scratch3());
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  __ Push(receiver());  // receiver
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ Push(data);
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch2(), cell);
-    __ Push(scratch2());
-  }
-  __ LoadRoot(kScratchRegister, Heap::kUndefinedValueRootIndex);
-  __ Push(kScratchRegister);  // return value
-  __ Push(kScratchRegister);  // return value default
-  __ PushAddress(ExternalReference::isolate_address(isolate()));
-  __ Push(reg);     // holder
-  __ Push(Smi::FromInt(0));  // should_throw_on_error -> false
-
-  __ Push(name());  // name
-  __ PushReturnAddressFrom(scratch3());
-
-  // Abi for CallApiGetter
-  Register api_function_address = ApiGetterDescriptor::function_address();
-  Address getter_address = v8::ToCData<Address>(callback->getter());
-  __ Move(api_function_address, getter_address, RelocInfo::EXTERNAL_REFERENCE);
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
-
 void NamedLoadHandlerCompiler::GenerateLoadConstant(Handle<Object> value) {
   // Return the constant value.
   __ Move(rax, value);
@@ -756,7 +704,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -798,7 +746,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/x64/ic-x64.cc b/src/ic/x64/ic-x64.cc
index 247116d..4e9927d 100644
--- a/src/ic/x64/ic-x64.cc
+++ b/src/ic/x64/ic-x64.cc
@@ -340,8 +340,8 @@
   __ Move(vector, dummy_vector);
   __ Move(slot, Smi::FromInt(slot_index));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key,
                                                megamorphic_scratch, no_reg);
@@ -519,10 +519,10 @@
   __ JumpIfSmi(receiver, &slow_with_tagged_index);
   // Get the map from the receiver.
   __ movp(r9, FieldOperand(receiver, HeapObject::kMapOffset));
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ testb(FieldOperand(r9, Map::kBitFieldOffset),
-           Immediate(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved));
+           Immediate(1 << Map::kIsAccessCheckNeeded));
   __ j(not_zero, &slow_with_tagged_index);
   // Check that the key is a smi.
   __ JumpIfNotSmi(key, &maybe_name_key);
@@ -567,10 +567,10 @@
   __ Move(vector, dummy_vector);
   __ Move(slot, Smi::FromInt(slot_index));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, key, r9, no_reg);
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, r9, no_reg);
   // Cache miss.
   __ jmp(&miss);
 
diff --git a/src/ic/x64/stub-cache-x64.cc b/src/ic/x64/stub-cache-x64.cc
index 9a9dfe9..a65165b 100644
--- a/src/ic/x64/stub-cache-x64.cc
+++ b/src/ic/x64/stub-cache-x64.cc
@@ -14,10 +14,9 @@
 
 #define __ ACCESS_MASM(masm)
 
-
 static void ProbeTable(Isolate* isolate, MacroAssembler* masm,
-                       Code::Kind ic_kind, Code::Flags flags,
-                       StubCache::Table table, Register receiver, Register name,
+                       Code::Flags flags, StubCache::Table table,
+                       Register receiver, Register name,
                        // The offset is scaled by 4, based on
                        // kCacheIndexShift, which is two bits
                        Register offset) {
@@ -93,9 +92,6 @@
   // entry size being 3 * kPointerSize.
   DCHECK(sizeof(Entry) == 3 * kPointerSize);
 
-  // Make sure the flags do not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Make sure that there are no register conflicts.
   DCHECK(!scratch.is(receiver));
   DCHECK(!scratch.is(name));
@@ -139,7 +135,7 @@
   __ andp(scratch, Immediate((kPrimaryTableSize - 1) << kCacheIndexShift));
 
   // Probe the primary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kPrimary, receiver, name, scratch);
+  ProbeTable(isolate, masm, flags, kPrimary, receiver, name, scratch);
 
   // Primary miss: Compute hash for secondary probe.
   __ movl(scratch, FieldOperand(name, Name::kHashFieldOffset));
@@ -151,8 +147,7 @@
   __ andp(scratch, Immediate((kSecondaryTableSize - 1) << kCacheIndexShift));
 
   // Probe the secondary table.
-  ProbeTable(isolate, masm, ic_kind, flags, kSecondary, receiver, name,
-             scratch);
+  ProbeTable(isolate, masm, flags, kSecondary, receiver, name, scratch);
 
   // Cache miss: Fall-through and let caller handle the miss by
   // entering the runtime system.
diff --git a/src/ic/x87/handler-compiler-x87.cc b/src/ic/x87/handler-compiler-x87.cc
index 281faba..7983273 100644
--- a/src/ic/x87/handler-compiler-x87.cc
+++ b/src/ic/x87/handler-compiler-x87.cc
@@ -594,58 +594,6 @@
 }
 
 
-void NamedLoadHandlerCompiler::GenerateLoadCallback(
-    Register reg, Handle<AccessorInfo> callback) {
-  DCHECK(!AreAliased(scratch2(), scratch3(), receiver()));
-  DCHECK(!AreAliased(scratch2(), scratch3(), reg));
-
-  // Insert additional parameters into the stack frame above return address.
-  __ pop(scratch3());  // Get return address to place it below.
-
-  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
-  // name below the exit frame to make GC aware of them.
-  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
-  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
-  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
-  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
-  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
-  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
-  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
-
-  __ push(receiver());  // receiver
-  // Push data from AccessorInfo.
-  Handle<Object> data(callback->data(), isolate());
-  if (data->IsUndefined() || data->IsSmi()) {
-    __ push(Immediate(data));
-  } else {
-    Handle<WeakCell> cell =
-        isolate()->factory()->NewWeakCell(Handle<HeapObject>::cast(data));
-    // The callback is alive if this instruction is executed,
-    // so the weak cell is not cleared and points to data.
-    __ GetWeakValue(scratch2(), cell);
-    __ push(scratch2());
-  }
-  __ push(Immediate(isolate()->factory()->undefined_value()));  // ReturnValue
-  // ReturnValue default value
-  __ push(Immediate(isolate()->factory()->undefined_value()));
-  __ push(Immediate(reinterpret_cast<int>(isolate())));
-  __ push(reg);  // holder
-  __ push(Immediate(Smi::FromInt(0)));  // should_throw_on_error -> false
-
-  __ push(name());  // name
-  __ push(scratch3());  // Restore return address.
-
-  // Abi for CallApiGetter
-  Register getter_address = ApiGetterDescriptor::function_address();
-  Address function_address = v8::ToCData<Address>(callback->getter());
-  __ mov(getter_address, Immediate(function_address));
-
-  CallApiGetterStub stub(isolate());
-  __ TailCallStub(&stub);
-}
-
-
 void NamedLoadHandlerCompiler::GenerateLoadConstant(Handle<Object> value) {
   // Return the constant value.
   __ LoadObject(eax, value);
@@ -759,7 +707,7 @@
   __ TailCallRuntime(Runtime::kStoreCallbackProperty);
 
   // Return the generated code.
-  return GetCode(kind(), Code::FAST, name);
+  return GetCode(kind(), name);
 }
 
 
@@ -801,7 +749,7 @@
   FrontendFooter(name, &miss);
 
   // Return the generated code.
-  return GetCode(kind(), Code::NORMAL, name);
+  return GetCode(kind(), name);
 }
 
 
diff --git a/src/ic/x87/ic-x87.cc b/src/ic/x87/ic-x87.cc
index b51045b..9491954 100644
--- a/src/ic/x87/ic-x87.cc
+++ b/src/ic/x87/ic-x87.cc
@@ -336,8 +336,8 @@
   __ push(Immediate(Smi::FromInt(slot)));
   __ push(Immediate(dummy_vector));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::KEYED_LOAD_IC, flags,
                                                receiver, key, ebx, edi);
 
@@ -519,10 +519,10 @@
   __ JumpIfSmi(receiver, &slow);
   // Get the map from the receiver.
   __ mov(edi, FieldOperand(receiver, HeapObject::kMapOffset));
-  // Check that the receiver does not require access checks and is not observed.
-  // The generic stub does not perform map checks or handle observed objects.
+  // Check that the receiver does not require access checks.
+  // The generic stub does not perform map checks.
   __ test_b(FieldOperand(edi, Map::kBitFieldOffset),
-            Immediate(1 << Map::kIsAccessCheckNeeded | 1 << Map::kIsObserved));
+            Immediate(1 << Map::kIsAccessCheckNeeded));
   __ j(not_zero, &slow);
   // Check that the key is a smi.
   __ JumpIfNotSmi(key, &maybe_name_key);
@@ -563,10 +563,10 @@
   __ push(Immediate(Smi::FromInt(slot)));
   __ push(Immediate(dummy_vector));
 
-  Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, key, edi, no_reg);
+  Code::Flags flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
+  masm->isolate()->stub_cache()->GenerateProbe(
+      masm, Code::KEYED_STORE_IC, flags, receiver, key, edi, no_reg);
 
   __ pop(VectorStoreICDescriptor::VectorRegister());
   __ pop(VectorStoreICDescriptor::SlotRegister());
diff --git a/src/ic/x87/stub-cache-x87.cc b/src/ic/x87/stub-cache-x87.cc
index dfc0ef6..b238e5f 100644
--- a/src/ic/x87/stub-cache-x87.cc
+++ b/src/ic/x87/stub-cache-x87.cc
@@ -153,9 +153,6 @@
   // being 12.
   DCHECK(sizeof(Entry) == 12);
 
-  // Assert the flags do not name a specific type.
-  DCHECK(Code::ExtractTypeFromFlags(flags) == 0);
-
   // Assert that there are no register conflicts.
   DCHECK(!scratch.is(receiver));
   DCHECK(!scratch.is(name));
diff --git a/src/interface-descriptors.cc b/src/interface-descriptors.cc
index 9ee4269..860ad2a 100644
--- a/src/interface-descriptors.cc
+++ b/src/interface-descriptors.cc
@@ -75,12 +75,6 @@
 }
 
 
-void AllocateMutableHeapNumberDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  data->InitializePlatformSpecific(0, nullptr, nullptr);
-}
-
-
 void VoidDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   data->InitializePlatformSpecific(0, nullptr);
@@ -184,13 +178,6 @@
 }
 
 
-void InstanceOfDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  Register registers[] = {LeftRegister(), RightRegister()};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-
 void StringCompareDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {LeftRegister(), RightRegister()};
@@ -203,6 +190,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void HasPropertyDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {KeyRegister(), ObjectRegister()};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void MathPowTaggedDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -301,23 +293,17 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-FunctionType* ApiGetterDescriptor::BuildCallInterfaceDescriptorFunctionType(
-    Isolate* isolate, int paramater_count) {
-  Zone* zone = isolate->interface_descriptor_zone();
-  FunctionType* function =
-      Type::Function(AnyTagged(zone), Type::Undefined(), 1, zone)->AsFunction();
-  function->InitParameter(0, ExternalPointer(zone));
-  return function;
+const Register ApiGetterDescriptor::ReceiverRegister() {
+  return LoadDescriptor::ReceiverRegister();
 }
 
-
 void ApiGetterDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {function_address()};
+  Register registers[] = {ReceiverRegister(), HolderRegister(),
+                          CallbackRegister()};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-
 void ContextOnlyDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   data->InitializePlatformSpecific(0, nullptr);
@@ -446,6 +432,19 @@
 }
 
 FunctionType*
+ArrayNoArgumentConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType(
+    Isolate* isolate, int paramater_count) {
+  Zone* zone = isolate->interface_descriptor_zone();
+  FunctionType* function =
+      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction();
+  function->InitParameter(0, Type::Receiver());  // JSFunction
+  function->InitParameter(1, AnyTagged(zone));
+  function->InitParameter(2, UntaggedIntegral32(zone));
+  function->InitParameter(3, AnyTagged(zone));
+  return function;
+}
+
+FunctionType*
 ArrayConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType(
     Isolate* isolate, int paramater_count) {
   Zone* zone = isolate->interface_descriptor_zone();
@@ -528,9 +527,8 @@
     Isolate* isolate, int parameter_count) {
   Zone* zone = isolate->interface_descriptor_zone();
   FunctionType* function =
-      Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction();
+      Type::Function(AnyTagged(zone), Type::Undefined(), 4, zone)->AsFunction();
   function->InitParameter(kAccumulatorParameter, AnyTagged(zone));
-  function->InitParameter(kRegisterFileParameter, ExternalPointer(zone));
   function->InitParameter(kBytecodeOffsetParameter, UntaggedIntegral32(zone));
   function->InitParameter(kBytecodeArrayParameter, AnyTagged(zone));
   function->InitParameter(kDispatchTableParameter, AnyTagged(zone));
diff --git a/src/interface-descriptors.h b/src/interface-descriptors.h
index dcce0af..60d8723 100644
--- a/src/interface-descriptors.h
+++ b/src/interface-descriptors.h
@@ -21,7 +21,6 @@
   V(VectorStoreTransition)                    \
   V(VectorStoreICTrampoline)                  \
   V(VectorStoreIC)                            \
-  V(InstanceOf)                               \
   V(LoadWithVector)                           \
   V(FastArrayPush)                            \
   V(FastNewClosure)                           \
@@ -47,7 +46,6 @@
   V(RegExpConstructResult)                    \
   V(TransitionElementsKind)                   \
   V(AllocateHeapNumber)                       \
-  V(AllocateMutableHeapNumber)                \
   V(AllocateFloat32x4)                        \
   V(AllocateInt32x4)                          \
   V(AllocateUint32x4)                         \
@@ -58,7 +56,7 @@
   V(AllocateInt8x16)                          \
   V(AllocateUint8x16)                         \
   V(AllocateBool8x16)                         \
-  V(AllocateInNewSpace)                       \
+  V(ArrayNoArgumentConstructor)               \
   V(ArrayConstructorConstantArgCount)         \
   V(ArrayConstructor)                         \
   V(InternalArrayConstructorConstantArgCount) \
@@ -66,10 +64,12 @@
   V(Compare)                                  \
   V(BinaryOp)                                 \
   V(BinaryOpWithAllocationSite)               \
+  V(CountOp)                                  \
   V(StringAdd)                                \
   V(StringCompare)                            \
   V(Keyed)                                    \
   V(Named)                                    \
+  V(HasProperty)                              \
   V(CallHandler)                              \
   V(ArgumentAdaptor)                          \
   V(ApiCallbackWith0Args)                     \
@@ -90,7 +90,8 @@
   V(InterpreterDispatch)                      \
   V(InterpreterPushArgsAndCall)               \
   V(InterpreterPushArgsAndConstruct)          \
-  V(InterpreterCEntry)
+  V(InterpreterCEntry)                        \
+  V(ResumeGenerator)
 
 class CallInterfaceDescriptorData {
  public:
@@ -334,16 +335,6 @@
 };
 
 
-class InstanceOfDescriptor final : public CallInterfaceDescriptor {
- public:
-  DECLARE_DESCRIPTOR(InstanceOfDescriptor, CallInterfaceDescriptor)
-
-  enum ParameterIndices { kLeftIndex, kRightIndex, kParameterCount };
-  static const Register LeftRegister();
-  static const Register RightRegister();
-};
-
-
 class VectorStoreICTrampolineDescriptor : public StoreDescriptor {
  public:
   DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(
@@ -430,6 +421,15 @@
   static const Register ArgumentRegister();
 };
 
+class HasPropertyDescriptor final : public CallInterfaceDescriptor {
+ public:
+  enum ParameterIndices { kKeyIndex, kObjectIndex };
+
+  DECLARE_DESCRIPTOR(HasPropertyDescriptor, CallInterfaceDescriptor)
+
+  static const Register KeyRegister();
+  static const Register ObjectRegister();
+};
 
 class TypeofDescriptor : public CallInterfaceDescriptor {
  public:
@@ -570,19 +570,18 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-class AllocateMutableHeapNumberDescriptor : public CallInterfaceDescriptor {
+class ArrayNoArgumentConstructorDescriptor : public CallInterfaceDescriptor {
  public:
-  DECLARE_DESCRIPTOR(AllocateMutableHeapNumberDescriptor,
-                     CallInterfaceDescriptor)
+  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(
+      ArrayNoArgumentConstructorDescriptor, CallInterfaceDescriptor)
+  enum ParameterIndices {
+    kFunctionIndex,
+    kAllocationSiteIndex,
+    kArgumentCountIndex,
+    kContextIndex
+  };
 };
 
-
-class AllocateInNewSpaceDescriptor : public CallInterfaceDescriptor {
- public:
-  DECLARE_DESCRIPTOR(AllocateInNewSpaceDescriptor, CallInterfaceDescriptor)
-};
-
-
 class ArrayConstructorConstantArgCountDescriptor
     : public CallInterfaceDescriptor {
  public:
@@ -631,6 +630,10 @@
                      CallInterfaceDescriptor)
 };
 
+class CountOpDescriptor final : public CallInterfaceDescriptor {
+ public:
+  DECLARE_DESCRIPTOR(CountOpDescriptor, CallInterfaceDescriptor)
+};
 
 class StringAddDescriptor : public CallInterfaceDescriptor {
  public:
@@ -746,10 +749,11 @@
 
 class ApiGetterDescriptor : public CallInterfaceDescriptor {
  public:
-  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(ApiGetterDescriptor,
-                                               CallInterfaceDescriptor)
+  DECLARE_DESCRIPTOR(ApiGetterDescriptor, CallInterfaceDescriptor)
 
-  static const Register function_address();
+  static const Register ReceiverRegister();
+  static const Register HolderRegister();
+  static const Register CallbackRegister();
 };
 
 
@@ -795,11 +799,9 @@
                                                CallInterfaceDescriptor)
 
   static const int kAccumulatorParameter = 0;
-  static const int kRegisterFileParameter = 1;
-  static const int kBytecodeOffsetParameter = 2;
-  static const int kBytecodeArrayParameter = 3;
-  static const int kDispatchTableParameter = 4;
-  static const int kContextParameter = 5;
+  static const int kBytecodeOffsetParameter = 1;
+  static const int kBytecodeArrayParameter = 2;
+  static const int kDispatchTableParameter = 3;
 };
 
 class InterpreterPushArgsAndCallDescriptor : public CallInterfaceDescriptor {
@@ -822,6 +824,11 @@
   DECLARE_DESCRIPTOR(InterpreterCEntryDescriptor, CallInterfaceDescriptor)
 };
 
+class ResumeGeneratorDescriptor final : public CallInterfaceDescriptor {
+ public:
+  DECLARE_DESCRIPTOR(ResumeGeneratorDescriptor, CallInterfaceDescriptor)
+};
+
 #undef DECLARE_DESCRIPTOR_WITH_BASE
 #undef DECLARE_DESCRIPTOR
 #undef DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc
index 109b01e..75bf631 100644
--- a/src/interpreter/bytecode-array-builder.cc
+++ b/src/interpreter/bytecode-array-builder.cc
@@ -3,117 +3,43 @@
 // found in the LICENSE file.
 
 #include "src/interpreter/bytecode-array-builder.h"
+
 #include "src/compiler.h"
+#include "src/interpreter/bytecode-array-writer.h"
+#include "src/interpreter/bytecode-peephole-optimizer.h"
 #include "src/interpreter/interpreter-intrinsics.h"
 
 namespace v8 {
 namespace internal {
 namespace interpreter {
 
-class BytecodeArrayBuilder::PreviousBytecodeHelper BASE_EMBEDDED {
- public:
-  explicit PreviousBytecodeHelper(const BytecodeArrayBuilder& array_builder)
-      : array_builder_(array_builder),
-        previous_bytecode_start_(array_builder_.last_bytecode_start_) {
-    // This helper is expected to be instantiated only when the last bytecode is
-    // in the same basic block.
-    DCHECK(array_builder_.LastBytecodeInSameBlock());
-    bytecode_ = Bytecodes::FromByte(
-        array_builder_.bytecodes()->at(previous_bytecode_start_));
-    operand_scale_ = OperandScale::kSingle;
-    if (Bytecodes::IsPrefixScalingBytecode(bytecode_)) {
-      operand_scale_ = Bytecodes::PrefixBytecodeToOperandScale(bytecode_);
-      bytecode_ = Bytecodes::FromByte(
-          array_builder_.bytecodes()->at(previous_bytecode_start_ + 1));
-    }
-  }
-
-  // Returns the previous bytecode in the same basic block.
-  MUST_USE_RESULT Bytecode GetBytecode() const {
-    DCHECK_EQ(array_builder_.last_bytecode_start_, previous_bytecode_start_);
-    return bytecode_;
-  }
-
-  MUST_USE_RESULT Register GetRegisterOperand(int operand_index) const {
-    return Register::FromOperand(GetSignedOperand(operand_index));
-  }
-
-  MUST_USE_RESULT uint32_t GetIndexOperand(int operand_index) const {
-    return GetUnsignedOperand(operand_index);
-  }
-
-  Handle<Object> GetConstantForIndexOperand(int operand_index) const {
-    return array_builder_.constant_array_builder()->At(
-        GetIndexOperand(operand_index));
-  }
-
- private:
-  // Returns the signed operand at operand_index for the previous
-  // bytecode in the same basic block.
-  MUST_USE_RESULT int32_t GetSignedOperand(int operand_index) const {
-    DCHECK_EQ(array_builder_.last_bytecode_start_, previous_bytecode_start_);
-    OperandType operand_type =
-        Bytecodes::GetOperandType(bytecode_, operand_index);
-    DCHECK(!Bytecodes::IsUnsignedOperandType(operand_type));
-    const uint8_t* operand_start = GetOperandStart(operand_index);
-    return Bytecodes::DecodeSignedOperand(operand_start, operand_type,
-                                          operand_scale_);
-  }
-
-  // Returns the unsigned operand at operand_index for the previous
-  // bytecode in the same basic block.
-  MUST_USE_RESULT uint32_t GetUnsignedOperand(int operand_index) const {
-    DCHECK_EQ(array_builder_.last_bytecode_start_, previous_bytecode_start_);
-    OperandType operand_type =
-        Bytecodes::GetOperandType(bytecode_, operand_index);
-    DCHECK(Bytecodes::IsUnsignedOperandType(operand_type));
-    const uint8_t* operand_start = GetOperandStart(operand_index);
-    return Bytecodes::DecodeUnsignedOperand(operand_start, operand_type,
-                                            operand_scale_);
-  }
-
-  const uint8_t* GetOperandStart(int operand_index) const {
-    size_t operand_offset =
-        previous_bytecode_start_ + prefix_offset() +
-        Bytecodes::GetOperandOffset(bytecode_, operand_index, operand_scale_);
-    return &(*array_builder_.bytecodes())[0] + operand_offset;
-  }
-
-  int prefix_offset() const {
-    return Bytecodes::OperandScaleRequiresPrefixBytecode(operand_scale_) ? 1
-                                                                         : 0;
-  }
-
-  const BytecodeArrayBuilder& array_builder_;
-  OperandScale operand_scale_;
-  Bytecode bytecode_;
-  size_t previous_bytecode_start_;
-
-  DISALLOW_COPY_AND_ASSIGN(PreviousBytecodeHelper);
-};
-
 BytecodeArrayBuilder::BytecodeArrayBuilder(Isolate* isolate, Zone* zone,
                                            int parameter_count,
                                            int context_count, int locals_count,
                                            FunctionLiteral* literal)
     : isolate_(isolate),
       zone_(zone),
-      bytecodes_(zone),
       bytecode_generated_(false),
       constant_array_builder_(isolate, zone),
       handler_table_builder_(isolate, zone),
       source_position_table_builder_(isolate, zone),
-      last_block_end_(0),
-      last_bytecode_start_(~0),
       exit_seen_in_block_(false),
       unbound_jumps_(0),
       parameter_count_(parameter_count),
       local_register_count_(locals_count),
       context_register_count_(context_count),
-      temporary_allocator_(zone, fixed_register_count()) {
+      temporary_allocator_(zone, fixed_register_count()),
+      bytecode_array_writer_(zone, &source_position_table_builder_),
+      pipeline_(&bytecode_array_writer_) {
   DCHECK_GE(parameter_count_, 0);
   DCHECK_GE(context_register_count_, 0);
   DCHECK_GE(local_register_count_, 0);
+
+  if (FLAG_ignition_peephole) {
+    pipeline_ = new (zone)
+        BytecodePeepholeOptimizer(&constant_array_builder_, pipeline_);
+  }
+
   return_position_ =
       literal ? std::max(literal->start_position(), literal->end_position() - 1)
               : RelocInfo::kNoPosition;
@@ -121,8 +47,6 @@
                                source_position_table_builder()));
 }
 
-BytecodeArrayBuilder::~BytecodeArrayBuilder() { DCHECK_EQ(0, unbound_jumps_); }
-
 Register BytecodeArrayBuilder::first_context_register() const {
   DCHECK_GT(context_register_count_, 0);
   return Register(local_register_count_);
@@ -147,18 +71,26 @@
 
 
 Handle<BytecodeArray> BytecodeArrayBuilder::ToBytecodeArray() {
+  DCHECK_EQ(0, unbound_jumps_);
   DCHECK_EQ(bytecode_generated_, false);
   DCHECK(exit_seen_in_block_);
 
-  int bytecode_size = static_cast<int>(bytecodes_.size());
-  int register_count = fixed_and_temporary_register_count();
-  int frame_size = register_count * kPointerSize;
+  pipeline()->FlushBasicBlock();
+  const ZoneVector<uint8_t>* bytecodes = bytecode_array_writer()->bytecodes();
+
+  int bytecode_size = static_cast<int>(bytecodes->size());
+
+  // All locals need a frame slot for the debugger, but may not be
+  // present in generated code.
+  int frame_size_for_locals = fixed_register_count() * kPointerSize;
+  int frame_size_used = bytecode_array_writer()->GetMaximumFrameSizeUsed();
+  int frame_size = std::max(frame_size_for_locals, frame_size_used);
   Handle<FixedArray> constant_pool = constant_array_builder()->ToFixedArray();
   Handle<FixedArray> handler_table = handler_table_builder()->ToHandlerTable();
   Handle<ByteArray> source_position_table =
       source_position_table_builder()->ToSourcePositionTable();
   Handle<BytecodeArray> bytecode_array = isolate_->factory()->NewBytecodeArray(
-      bytecode_size, &bytecodes_.front(), frame_size, parameter_count(),
+      bytecode_size, &bytecodes->front(), frame_size, parameter_count(),
       constant_pool);
   bytecode_array->set_handler_table(*handler_table);
   bytecode_array->set_source_position_table(*source_position_table);
@@ -171,50 +103,10 @@
   return bytecode_array;
 }
 
-template <size_t N>
-void BytecodeArrayBuilder::Output(Bytecode bytecode, uint32_t (&operands)[N],
-                                  OperandScale operand_scale) {
-  // Don't output dead code.
-  if (exit_seen_in_block_) return;
-
-  int operand_count = static_cast<int>(N);
-  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), operand_count);
-
-  last_bytecode_start_ = bytecodes()->size();
-  // Emit prefix bytecode for scale if required.
-  if (Bytecodes::OperandScaleRequiresPrefixBytecode(operand_scale)) {
-    bytecodes()->push_back(Bytecodes::ToByte(
-        Bytecodes::OperandScaleToPrefixBytecode(operand_scale)));
-  }
-
-  // Emit bytecode.
-  bytecodes()->push_back(Bytecodes::ToByte(bytecode));
-
-  // Emit operands.
-  for (int i = 0; i < operand_count; i++) {
-    DCHECK(OperandIsValid(bytecode, operand_scale, i, operands[i]));
-    switch (Bytecodes::GetOperandSize(bytecode, i, operand_scale)) {
-      case OperandSize::kNone:
-        UNREACHABLE();
-        break;
-      case OperandSize::kByte:
-        bytecodes()->push_back(static_cast<uint8_t>(operands[i]));
-        break;
-      case OperandSize::kShort: {
-        uint8_t operand_bytes[2];
-        WriteUnalignedUInt16(operand_bytes, operands[i]);
-        bytecodes()->insert(bytecodes()->end(), operand_bytes,
-                            operand_bytes + 2);
-        break;
-      }
-      case OperandSize::kQuad: {
-        uint8_t operand_bytes[4];
-        WriteUnalignedUInt32(operand_bytes, operands[i]);
-        bytecodes()->insert(bytecodes()->end(), operand_bytes,
-                            operand_bytes + 4);
-        break;
-      }
-    }
+void BytecodeArrayBuilder::AttachSourceInfo(BytecodeNode* node) {
+  if (latest_source_info_.is_valid()) {
+    node->source_info().Update(latest_source_info_);
+    latest_source_info_.set_invalid();
   }
 }
 
@@ -222,44 +114,68 @@
   // Don't output dead code.
   if (exit_seen_in_block_) return;
 
-  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 0);
-  last_bytecode_start_ = bytecodes()->size();
-  bytecodes()->push_back(Bytecodes::ToByte(bytecode));
+  BytecodeNode node(bytecode);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
 }
 
 void BytecodeArrayBuilder::OutputScaled(Bytecode bytecode,
                                         OperandScale operand_scale,
                                         uint32_t operand0, uint32_t operand1,
                                         uint32_t operand2, uint32_t operand3) {
-  uint32_t operands[] = {operand0, operand1, operand2, operand3};
-  Output(bytecode, operands, operand_scale);
+  // Don't output dead code.
+  if (exit_seen_in_block_) return;
+  DCHECK(OperandIsValid(bytecode, operand_scale, 0, operand0));
+  DCHECK(OperandIsValid(bytecode, operand_scale, 1, operand1));
+  DCHECK(OperandIsValid(bytecode, operand_scale, 2, operand2));
+  DCHECK(OperandIsValid(bytecode, operand_scale, 3, operand3));
+  BytecodeNode node(bytecode, operand0, operand1, operand2, operand3,
+                    operand_scale);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
 }
 
 void BytecodeArrayBuilder::OutputScaled(Bytecode bytecode,
                                         OperandScale operand_scale,
                                         uint32_t operand0, uint32_t operand1,
                                         uint32_t operand2) {
-  uint32_t operands[] = {operand0, operand1, operand2};
-  Output(bytecode, operands, operand_scale);
+  // Don't output dead code.
+  if (exit_seen_in_block_) return;
+  DCHECK(OperandIsValid(bytecode, operand_scale, 0, operand0));
+  DCHECK(OperandIsValid(bytecode, operand_scale, 1, operand1));
+  DCHECK(OperandIsValid(bytecode, operand_scale, 2, operand2));
+  BytecodeNode node(bytecode, operand0, operand1, operand2, operand_scale);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
 }
 
 void BytecodeArrayBuilder::OutputScaled(Bytecode bytecode,
                                         OperandScale operand_scale,
                                         uint32_t operand0, uint32_t operand1) {
-  uint32_t operands[] = {operand0, operand1};
-  Output(bytecode, operands, operand_scale);
+  // Don't output dead code.
+  if (exit_seen_in_block_) return;
+  DCHECK(OperandIsValid(bytecode, operand_scale, 0, operand0));
+  DCHECK(OperandIsValid(bytecode, operand_scale, 1, operand1));
+  BytecodeNode node(bytecode, operand0, operand1, operand_scale);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
 }
 
 void BytecodeArrayBuilder::OutputScaled(Bytecode bytecode,
                                         OperandScale operand_scale,
                                         uint32_t operand0) {
-  uint32_t operands[] = {operand0};
-  Output(bytecode, operands, operand_scale);
+  // Don't output dead code.
+  if (exit_seen_in_block_) return;
+  DCHECK(OperandIsValid(bytecode, operand_scale, 0, operand0));
+  BytecodeNode node(bytecode, operand0, operand_scale);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
 }
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::BinaryOperation(Token::Value op,
                                                             Register reg) {
-  OperandScale operand_scale = OperandSizesToScale(SizeForRegisterOperand(reg));
+  OperandScale operand_scale =
+      Bytecodes::OperandSizesToScale(reg.SizeOfOperand());
   OutputScaled(BytecodeForBinaryOperation(op), operand_scale,
                RegisterOperand(reg));
   return *this;
@@ -272,7 +188,7 @@
 
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::LogicalNot() {
-  Output(Bytecode::kLogicalNot);
+  Output(Bytecode::kToBooleanLogicalNot);
   return *this;
 }
 
@@ -284,7 +200,8 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::CompareOperation(Token::Value op,
                                                              Register reg) {
-  OperandScale operand_scale = OperandSizesToScale(SizeForRegisterOperand(reg));
+  OperandScale operand_scale =
+      Bytecodes::OperandSizesToScale(reg.SizeOfOperand());
   OutputScaled(BytecodeForCompareOperation(op), operand_scale,
                RegisterOperand(reg));
   return *this;
@@ -297,8 +214,8 @@
   if (raw_smi == 0) {
     Output(Bytecode::kLdaZero);
   } else {
-    OperandSize operand_size = SizeForSignedOperand(raw_smi);
-    OperandScale operand_scale = OperandSizesToScale(operand_size);
+    OperandSize operand_size = Bytecodes::SizeForSignedOperand(raw_smi);
+    OperandScale operand_scale = Bytecodes::OperandSizesToScale(operand_size);
     OutputScaled(Bytecode::kLdaSmi, operand_scale,
                  SignedOperand(raw_smi, operand_size));
   }
@@ -309,7 +226,7 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadLiteral(Handle<Object> object) {
   size_t entry = GetConstantPoolEntry(object);
   OperandScale operand_scale =
-      OperandSizesToScale(SizeForUnsignedOperand(entry));
+      Bytecodes::OperandSizesToScale(Bytecodes::SizeForUnsignedOperand(entry));
   OutputScaled(Bytecode::kLdaConstant, operand_scale, UnsignedOperand(entry));
   return *this;
 }
@@ -346,22 +263,18 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadAccumulatorWithRegister(
     Register reg) {
-  if (!IsRegisterInAccumulator(reg)) {
-    OperandScale operand_scale =
-        OperandSizesToScale(SizeForRegisterOperand(reg));
-    OutputScaled(Bytecode::kLdar, operand_scale, RegisterOperand(reg));
-  }
+  OperandScale operand_scale =
+      Bytecodes::OperandSizesToScale(reg.SizeOfOperand());
+  OutputScaled(Bytecode::kLdar, operand_scale, RegisterOperand(reg));
   return *this;
 }
 
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::StoreAccumulatorInRegister(
     Register reg) {
-  if (!IsRegisterInAccumulator(reg)) {
-    OperandScale operand_scale =
-        OperandSizesToScale(SizeForRegisterOperand(reg));
-    OutputScaled(Bytecode::kStar, operand_scale, RegisterOperand(reg));
-  }
+  OperandScale operand_scale =
+      Bytecodes::OperandSizesToScale(reg.SizeOfOperand());
+  OutputScaled(Bytecode::kStar, operand_scale, RegisterOperand(reg));
   return *this;
 }
 
@@ -369,8 +282,8 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::MoveRegister(Register from,
                                                          Register to) {
   DCHECK(from != to);
-  OperandScale operand_scale = OperandSizesToScale(SizeForRegisterOperand(from),
-                                                   SizeForRegisterOperand(to));
+  OperandScale operand_scale =
+      Bytecodes::OperandSizesToScale(from.SizeOfOperand(), to.SizeOfOperand());
   OutputScaled(Bytecode::kMov, operand_scale, RegisterOperand(from),
                RegisterOperand(to));
   return *this;
@@ -382,9 +295,9 @@
   // operand rather than having extra bytecodes.
   Bytecode bytecode = BytecodeForLoadGlobal(typeof_mode);
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale =
-      OperandSizesToScale(SizeForUnsignedOperand(name_index),
-                          SizeForUnsignedOperand(feedback_slot));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      Bytecodes::SizeForUnsignedOperand(name_index),
+      Bytecodes::SizeForUnsignedOperand(feedback_slot));
   OutputScaled(bytecode, operand_scale, UnsignedOperand(name_index),
                UnsignedOperand(feedback_slot));
   return *this;
@@ -394,9 +307,9 @@
     const Handle<String> name, int feedback_slot, LanguageMode language_mode) {
   Bytecode bytecode = BytecodeForStoreGlobal(language_mode);
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale =
-      OperandSizesToScale(SizeForUnsignedOperand(name_index),
-                          SizeForUnsignedOperand(feedback_slot));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      Bytecodes::SizeForUnsignedOperand(name_index),
+      Bytecodes::SizeForUnsignedOperand(feedback_slot));
   OutputScaled(bytecode, operand_scale, UnsignedOperand(name_index),
                UnsignedOperand(feedback_slot));
   return *this;
@@ -405,8 +318,8 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadContextSlot(Register context,
                                                             int slot_index) {
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(context), SizeForUnsignedOperand(slot_index));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      context.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(slot_index));
   OutputScaled(Bytecode::kLdaContextSlot, operand_scale,
                RegisterOperand(context), UnsignedOperand(slot_index));
   return *this;
@@ -415,8 +328,8 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::StoreContextSlot(Register context,
                                                              int slot_index) {
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(context), SizeForUnsignedOperand(slot_index));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      context.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(slot_index));
   OutputScaled(Bytecode::kStaContextSlot, operand_scale,
                RegisterOperand(context), UnsignedOperand(slot_index));
   return *this;
@@ -428,8 +341,8 @@
                           ? Bytecode::kLdaLookupSlotInsideTypeof
                           : Bytecode::kLdaLookupSlot;
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale =
-      OperandSizesToScale(SizeForUnsignedOperand(name_index));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      Bytecodes::SizeForUnsignedOperand(name_index));
   OutputScaled(bytecode, operand_scale, UnsignedOperand(name_index));
   return *this;
 }
@@ -438,8 +351,8 @@
     const Handle<String> name, LanguageMode language_mode) {
   Bytecode bytecode = BytecodeForStoreLookupSlot(language_mode);
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale =
-      OperandSizesToScale(SizeForUnsignedOperand(name_index));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      Bytecodes::SizeForUnsignedOperand(name_index));
   OutputScaled(bytecode, operand_scale, UnsignedOperand(name_index));
   return *this;
 }
@@ -447,9 +360,9 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadNamedProperty(
     Register object, const Handle<Name> name, int feedback_slot) {
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(object), SizeForUnsignedOperand(name_index),
-      SizeForUnsignedOperand(feedback_slot));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      object.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(name_index),
+      Bytecodes::SizeForUnsignedOperand(feedback_slot));
   OutputScaled(Bytecode::kLoadIC, operand_scale, RegisterOperand(object),
                UnsignedOperand(name_index), UnsignedOperand(feedback_slot));
   return *this;
@@ -457,8 +370,8 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadKeyedProperty(
     Register object, int feedback_slot) {
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(object), SizeForUnsignedOperand(feedback_slot));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      object.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(feedback_slot));
   OutputScaled(Bytecode::kKeyedLoadIC, operand_scale, RegisterOperand(object),
                UnsignedOperand(feedback_slot));
   return *this;
@@ -469,9 +382,9 @@
     LanguageMode language_mode) {
   Bytecode bytecode = BytecodeForStoreIC(language_mode);
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(object), SizeForUnsignedOperand(name_index),
-      SizeForUnsignedOperand(feedback_slot));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      object.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(name_index),
+      Bytecodes::SizeForUnsignedOperand(feedback_slot));
   OutputScaled(bytecode, operand_scale, RegisterOperand(object),
                UnsignedOperand(name_index), UnsignedOperand(feedback_slot));
   return *this;
@@ -482,9 +395,9 @@
     Register object, Register key, int feedback_slot,
     LanguageMode language_mode) {
   Bytecode bytecode = BytecodeForKeyedStoreIC(language_mode);
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(object), SizeForRegisterOperand(key),
-      SizeForUnsignedOperand(feedback_slot));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      object.SizeOfOperand(), key.SizeOfOperand(),
+      Bytecodes::SizeForUnsignedOperand(feedback_slot));
   OutputScaled(bytecode, operand_scale, RegisterOperand(object),
                RegisterOperand(key), UnsignedOperand(feedback_slot));
   return *this;
@@ -495,7 +408,7 @@
     Handle<SharedFunctionInfo> shared_info, PretenureFlag tenured) {
   size_t entry = GetConstantPoolEntry(shared_info);
   OperandScale operand_scale =
-      OperandSizesToScale(SizeForUnsignedOperand(entry));
+      Bytecodes::OperandSizesToScale(Bytecodes::SizeForUnsignedOperand(entry));
   OutputScaled(Bytecode::kCreateClosure, operand_scale, UnsignedOperand(entry),
                UnsignedOperand(static_cast<size_t>(tenured)));
   return *this;
@@ -516,9 +429,10 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateRegExpLiteral(
     Handle<String> pattern, int literal_index, int flags) {
   size_t pattern_entry = GetConstantPoolEntry(pattern);
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForUnsignedOperand(pattern_entry),
-      SizeForUnsignedOperand(literal_index), SizeForUnsignedOperand(flags));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      Bytecodes::SizeForUnsignedOperand(pattern_entry),
+      Bytecodes::SizeForUnsignedOperand(literal_index),
+      Bytecodes::SizeForUnsignedOperand(flags));
   OutputScaled(Bytecode::kCreateRegExpLiteral, operand_scale,
                UnsignedOperand(pattern_entry), UnsignedOperand(literal_index),
                UnsignedOperand(flags));
@@ -529,9 +443,10 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateArrayLiteral(
     Handle<FixedArray> constant_elements, int literal_index, int flags) {
   size_t constant_elements_entry = GetConstantPoolEntry(constant_elements);
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForUnsignedOperand(constant_elements_entry),
-      SizeForUnsignedOperand(literal_index), SizeForUnsignedOperand(flags));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      Bytecodes::SizeForUnsignedOperand(constant_elements_entry),
+      Bytecodes::SizeForUnsignedOperand(literal_index),
+      Bytecodes::SizeForUnsignedOperand(flags));
   OutputScaled(Bytecode::kCreateArrayLiteral, operand_scale,
                UnsignedOperand(constant_elements_entry),
                UnsignedOperand(literal_index), UnsignedOperand(flags));
@@ -542,9 +457,10 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateObjectLiteral(
     Handle<FixedArray> constant_properties, int literal_index, int flags) {
   size_t constant_properties_entry = GetConstantPoolEntry(constant_properties);
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForUnsignedOperand(constant_properties_entry),
-      SizeForUnsignedOperand(literal_index), SizeForUnsignedOperand(flags));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      Bytecodes::SizeForUnsignedOperand(constant_properties_entry),
+      Bytecodes::SizeForUnsignedOperand(literal_index),
+      Bytecodes::SizeForUnsignedOperand(flags));
   OutputScaled(Bytecode::kCreateObjectLiteral, operand_scale,
                UnsignedOperand(constant_properties_entry),
                UnsignedOperand(literal_index), UnsignedOperand(flags));
@@ -554,7 +470,7 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::PushContext(Register context) {
   OperandScale operand_scale =
-      OperandSizesToScale(SizeForRegisterOperand(context));
+      Bytecodes::OperandSizesToScale(context.SizeOfOperand());
   OutputScaled(Bytecode::kPushContext, operand_scale, RegisterOperand(context));
   return *this;
 }
@@ -562,39 +478,12 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::PopContext(Register context) {
   OperandScale operand_scale =
-      OperandSizesToScale(SizeForRegisterOperand(context));
+      Bytecodes::OperandSizesToScale(context.SizeOfOperand());
   OutputScaled(Bytecode::kPopContext, operand_scale, RegisterOperand(context));
   return *this;
 }
 
 
-bool BytecodeArrayBuilder::NeedToBooleanCast() {
-  if (!LastBytecodeInSameBlock()) {
-    return true;
-  }
-  PreviousBytecodeHelper previous_bytecode(*this);
-  switch (previous_bytecode.GetBytecode()) {
-    // If the previous bytecode puts a boolean in the accumulator return true.
-    case Bytecode::kLdaTrue:
-    case Bytecode::kLdaFalse:
-    case Bytecode::kLogicalNot:
-    case Bytecode::kTestEqual:
-    case Bytecode::kTestNotEqual:
-    case Bytecode::kTestEqualStrict:
-    case Bytecode::kTestLessThan:
-    case Bytecode::kTestLessThanOrEqual:
-    case Bytecode::kTestGreaterThan:
-    case Bytecode::kTestGreaterThanOrEqual:
-    case Bytecode::kTestInstanceOf:
-    case Bytecode::kTestIn:
-    case Bytecode::kForInDone:
-      return false;
-    default:
-      return true;
-  }
-}
-
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CastAccumulatorToJSObject() {
   Output(Bytecode::kToObject);
   return *this;
@@ -602,41 +491,24 @@
 
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::CastAccumulatorToName() {
-  if (LastBytecodeInSameBlock()) {
-    PreviousBytecodeHelper previous_bytecode(*this);
-    switch (previous_bytecode.GetBytecode()) {
-      case Bytecode::kToName:
-      case Bytecode::kTypeOf:
-        return *this;
-      case Bytecode::kLdaConstant: {
-        Handle<Object> object = previous_bytecode.GetConstantForIndexOperand(0);
-        if (object->IsName()) return *this;
-        break;
-      }
-      default:
-        break;
-    }
-  }
   Output(Bytecode::kToName);
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CastAccumulatorToNumber() {
-  // TODO(rmcilroy): consider omitting if the preceeding bytecode always returns
-  // a number.
   Output(Bytecode::kToNumber);
   return *this;
 }
 
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::Bind(BytecodeLabel* label) {
+  size_t current_offset = pipeline()->FlushForOffset();
   if (label->is_forward_target()) {
     // An earlier jump instruction refers to this label. Update it's location.
-    PatchJump(bytecodes()->end(), bytecodes()->begin() + label->offset());
+    PatchJump(current_offset, label->offset());
     // Now treat as if the label will only be back referred to.
   }
-  label->bind_to(bytecodes()->size());
+  label->bind_to(current_offset);
   LeaveBasicBlock();
   return *this;
 }
@@ -646,10 +518,11 @@
                                                  BytecodeLabel* label) {
   DCHECK(!label->is_bound());
   DCHECK(target.is_bound());
+  // There is no need to flush the pipeline here, it will have been
+  // flushed when |target| was bound.
   if (label->is_forward_target()) {
     // An earlier jump instruction refers to this label. Update it's location.
-    PatchJump(bytecodes()->begin() + target.offset(),
-              bytecodes()->begin() + label->offset());
+    PatchJump(target.offset(), label->offset());
     // Now treat as if the label will only be back referred to.
   }
   label->bind_to(target.offset());
@@ -684,90 +557,74 @@
   }
 }
 
-// static
-Bytecode BytecodeArrayBuilder::GetJumpWithToBoolean(Bytecode jump_bytecode) {
-  switch (jump_bytecode) {
-    case Bytecode::kJump:
-    case Bytecode::kJumpIfNull:
-    case Bytecode::kJumpIfUndefined:
-    case Bytecode::kJumpIfNotHole:
-      return jump_bytecode;
-    case Bytecode::kJumpIfTrue:
-      return Bytecode::kJumpIfToBooleanTrue;
-    case Bytecode::kJumpIfFalse:
-      return Bytecode::kJumpIfToBooleanFalse;
-    default:
-      UNREACHABLE();
-  }
-  return Bytecode::kIllegal;
-}
-
-
-void BytecodeArrayBuilder::PatchIndirectJumpWith8BitOperand(
-    const ZoneVector<uint8_t>::iterator& jump_location, int delta) {
-  Bytecode jump_bytecode = Bytecodes::FromByte(*jump_location);
+void BytecodeArrayBuilder::PatchJumpWith8BitOperand(
+    ZoneVector<uint8_t>* bytecodes, size_t jump_location, int delta) {
+  Bytecode jump_bytecode = Bytecodes::FromByte(bytecodes->at(jump_location));
   DCHECK(Bytecodes::IsJumpImmediate(jump_bytecode));
-  ZoneVector<uint8_t>::iterator operand_location = jump_location + 1;
-  DCHECK_EQ(*operand_location, 0);
-  if (SizeForSignedOperand(delta) == OperandSize::kByte) {
+  size_t operand_location = jump_location + 1;
+  DCHECK_EQ(bytecodes->at(operand_location), 0);
+  if (Bytecodes::SizeForSignedOperand(delta) == OperandSize::kByte) {
     // The jump fits within the range of an Imm operand, so cancel
     // the reservation and jump directly.
     constant_array_builder()->DiscardReservedEntry(OperandSize::kByte);
-    *operand_location = static_cast<uint8_t>(delta);
+    bytecodes->at(operand_location) = static_cast<uint8_t>(delta);
   } else {
     // The jump does not fit within the range of an Imm operand, so
     // commit reservation putting the offset into the constant pool,
     // and update the jump instruction and operand.
     size_t entry = constant_array_builder()->CommitReservedEntry(
         OperandSize::kByte, handle(Smi::FromInt(delta), isolate()));
-    DCHECK(SizeForUnsignedOperand(entry) == OperandSize::kByte);
+    DCHECK(Bytecodes::SizeForUnsignedOperand(entry) == OperandSize::kByte);
     jump_bytecode = GetJumpWithConstantOperand(jump_bytecode);
-    *jump_location = Bytecodes::ToByte(jump_bytecode);
-    *operand_location = static_cast<uint8_t>(entry);
+    bytecodes->at(jump_location) = Bytecodes::ToByte(jump_bytecode);
+    bytecodes->at(operand_location) = static_cast<uint8_t>(entry);
   }
 }
 
-void BytecodeArrayBuilder::PatchIndirectJumpWith16BitOperand(
-    const ZoneVector<uint8_t>::iterator& jump_location, int delta) {
-  Bytecode jump_bytecode = Bytecodes::FromByte(*jump_location);
+void BytecodeArrayBuilder::PatchJumpWith16BitOperand(
+    ZoneVector<uint8_t>* bytecodes, size_t jump_location, int delta) {
+  Bytecode jump_bytecode = Bytecodes::FromByte(bytecodes->at(jump_location));
   DCHECK(Bytecodes::IsJumpImmediate(jump_bytecode));
-  ZoneVector<uint8_t>::iterator operand_location = jump_location + 1;
+  size_t operand_location = jump_location + 1;
   uint8_t operand_bytes[2];
-  if (SizeForSignedOperand(delta) <= OperandSize::kShort) {
+  if (Bytecodes::SizeForSignedOperand(delta) <= OperandSize::kShort) {
     constant_array_builder()->DiscardReservedEntry(OperandSize::kShort);
     WriteUnalignedUInt16(operand_bytes, static_cast<uint16_t>(delta));
   } else {
     jump_bytecode = GetJumpWithConstantOperand(jump_bytecode);
-    *jump_location = Bytecodes::ToByte(jump_bytecode);
+    bytecodes->at(jump_location) = Bytecodes::ToByte(jump_bytecode);
     size_t entry = constant_array_builder()->CommitReservedEntry(
         OperandSize::kShort, handle(Smi::FromInt(delta), isolate()));
     WriteUnalignedUInt16(operand_bytes, static_cast<uint16_t>(entry));
   }
-  DCHECK(*operand_location == 0 && *(operand_location + 1) == 0);
-  *operand_location++ = operand_bytes[0];
-  *operand_location = operand_bytes[1];
+  DCHECK(bytecodes->at(operand_location) == 0 &&
+         bytecodes->at(operand_location + 1) == 0);
+  bytecodes->at(operand_location++) = operand_bytes[0];
+  bytecodes->at(operand_location) = operand_bytes[1];
 }
 
-void BytecodeArrayBuilder::PatchIndirectJumpWith32BitOperand(
-    const ZoneVector<uint8_t>::iterator& jump_location, int delta) {
-  DCHECK(Bytecodes::IsJumpImmediate(Bytecodes::FromByte(*jump_location)));
+void BytecodeArrayBuilder::PatchJumpWith32BitOperand(
+    ZoneVector<uint8_t>* bytecodes, size_t jump_location, int delta) {
+  DCHECK(Bytecodes::IsJumpImmediate(
+      Bytecodes::FromByte(bytecodes->at(jump_location))));
   constant_array_builder()->DiscardReservedEntry(OperandSize::kQuad);
-  ZoneVector<uint8_t>::iterator operand_location = jump_location + 1;
   uint8_t operand_bytes[4];
   WriteUnalignedUInt32(operand_bytes, static_cast<uint32_t>(delta));
-  DCHECK(*operand_location == 0 && *(operand_location + 1) == 0 &&
-         *(operand_location + 2) == 0 && *(operand_location + 3) == 0);
-  *operand_location++ = operand_bytes[0];
-  *operand_location++ = operand_bytes[1];
-  *operand_location++ = operand_bytes[2];
-  *operand_location = operand_bytes[3];
+  size_t operand_location = jump_location + 1;
+  DCHECK(bytecodes->at(operand_location) == 0 &&
+         bytecodes->at(operand_location + 1) == 0 &&
+         bytecodes->at(operand_location + 2) == 0 &&
+         bytecodes->at(operand_location + 3) == 0);
+  bytecodes->at(operand_location++) = operand_bytes[0];
+  bytecodes->at(operand_location++) = operand_bytes[1];
+  bytecodes->at(operand_location++) = operand_bytes[2];
+  bytecodes->at(operand_location) = operand_bytes[3];
 }
 
-void BytecodeArrayBuilder::PatchJump(
-    const ZoneVector<uint8_t>::iterator& jump_target,
-    const ZoneVector<uint8_t>::iterator& jump_location) {
+void BytecodeArrayBuilder::PatchJump(size_t jump_target, size_t jump_location) {
+  ZoneVector<uint8_t>* bytecodes = bytecode_array_writer()->bytecodes();
+  Bytecode jump_bytecode = Bytecodes::FromByte(bytecodes->at(jump_location));
   int delta = static_cast<int>(jump_target - jump_location);
-  Bytecode jump_bytecode = Bytecodes::FromByte(*jump_location);
   int prefix_offset = 0;
   OperandScale operand_scale = OperandScale::kSingle;
   if (Bytecodes::IsPrefixScalingBytecode(jump_bytecode)) {
@@ -776,19 +633,22 @@
     delta -= 1;
     prefix_offset = 1;
     operand_scale = Bytecodes::PrefixBytecodeToOperandScale(jump_bytecode);
-    jump_bytecode = Bytecodes::FromByte(*(jump_location + prefix_offset));
+    jump_bytecode =
+        Bytecodes::FromByte(bytecodes->at(jump_location + prefix_offset));
   }
 
   DCHECK(Bytecodes::IsJump(jump_bytecode));
   switch (operand_scale) {
     case OperandScale::kSingle:
-      PatchIndirectJumpWith8BitOperand(jump_location, delta);
+      PatchJumpWith8BitOperand(bytecodes, jump_location, delta);
       break;
     case OperandScale::kDouble:
-      PatchIndirectJumpWith16BitOperand(jump_location + prefix_offset, delta);
+      PatchJumpWith16BitOperand(bytecodes, jump_location + prefix_offset,
+                                delta);
       break;
     case OperandScale::kQuadruple:
-      PatchIndirectJumpWith32BitOperand(jump_location + prefix_offset, delta);
+      PatchJumpWith32BitOperand(bytecodes, jump_location + prefix_offset,
+                                delta);
       break;
     default:
       UNREACHABLE();
@@ -802,25 +662,20 @@
   // Don't emit dead code.
   if (exit_seen_in_block_) return *this;
 
-  // Check if the value in accumulator is boolean, if not choose an
-  // appropriate JumpIfToBoolean bytecode.
-  if (NeedToBooleanCast()) {
-    jump_bytecode = GetJumpWithToBoolean(jump_bytecode);
-  }
-
   if (label->is_bound()) {
     // Label has been bound already so this is a backwards jump.
-    CHECK_GE(bytecodes()->size(), label->offset());
-    CHECK_LE(bytecodes()->size(), static_cast<size_t>(kMaxInt));
-    size_t abs_delta = bytecodes()->size() - label->offset();
+    size_t current_offset = pipeline()->FlushForOffset();
+    CHECK_GE(current_offset, label->offset());
+    CHECK_LE(current_offset, static_cast<size_t>(kMaxInt));
+    size_t abs_delta = current_offset - label->offset();
     int delta = -static_cast<int>(abs_delta);
-    OperandSize operand_size = SizeForSignedOperand(delta);
+    OperandSize operand_size = Bytecodes::SizeForSignedOperand(delta);
     if (operand_size > OperandSize::kByte) {
       // Adjust for scaling byte prefix for wide jump offset.
       DCHECK_LE(delta, 0);
       delta -= 1;
     }
-    OutputScaled(jump_bytecode, OperandSizesToScale(operand_size),
+    OutputScaled(jump_bytecode, Bytecodes::OperandSizesToScale(operand_size),
                  SignedOperand(delta, operand_size));
   } else {
     // The label has not yet been bound so this is a forward reference
@@ -829,43 +684,58 @@
     // when the label is bound. The reservation means the maximum size
     // of the operand for the constant is known and the jump can
     // be emitted into the bytecode stream with space for the operand.
-    label->set_referrer(bytecodes()->size());
     unbound_jumps_++;
     OperandSize reserved_operand_size =
         constant_array_builder()->CreateReservedEntry();
-    OutputScaled(jump_bytecode, OperandSizesToScale(reserved_operand_size), 0);
+    OutputScaled(jump_bytecode,
+                 Bytecodes::OperandSizesToScale(reserved_operand_size), 0);
+
+    // Calculate the label position by flushing for offset after emitting the
+    // jump bytecode.
+    size_t offset = pipeline()->FlushForOffset();
+    OperandScale operand_scale =
+        Bytecodes::OperandSizesToScale(reserved_operand_size);
+    offset -= Bytecodes::Size(jump_bytecode, operand_scale);
+    if (Bytecodes::OperandScaleRequiresPrefixBytecode(operand_scale)) {
+      offset -= 1;
+    }
+    label->set_referrer(offset);
   }
   LeaveBasicBlock();
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::Jump(BytecodeLabel* label) {
   return OutputJump(Bytecode::kJump, label);
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::JumpIfTrue(BytecodeLabel* label) {
-  return OutputJump(Bytecode::kJumpIfTrue, label);
+  // The peephole optimizer attempts to simplify JumpIfToBooleanTrue
+  // to JumpIfTrue.
+  return OutputJump(Bytecode::kJumpIfToBooleanTrue, label);
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::JumpIfFalse(BytecodeLabel* label) {
-  return OutputJump(Bytecode::kJumpIfFalse, label);
+  // The peephole optimizer attempts to simplify JumpIfToBooleanFalse
+  // to JumpIfFalse.
+  return OutputJump(Bytecode::kJumpIfToBooleanFalse, label);
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::JumpIfNull(BytecodeLabel* label) {
   return OutputJump(Bytecode::kJumpIfNull, label);
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::JumpIfUndefined(
     BytecodeLabel* label) {
   return OutputJump(Bytecode::kJumpIfUndefined, label);
 }
 
-BytecodeArrayBuilder& BytecodeArrayBuilder::StackCheck() {
+BytecodeArrayBuilder& BytecodeArrayBuilder::StackCheck(int position) {
+  if (position != RelocInfo::kNoPosition) {
+    // We need to attach a non-breakable source position to a stack check,
+    // so we simply add it as expression position.
+    latest_source_info_.Update({position, false});
+  }
   Output(Bytecode::kStackCheck);
   return *this;
 }
@@ -904,7 +774,7 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInPrepare(
     Register cache_info_triple) {
   OperandScale operand_scale =
-      OperandSizesToScale(SizeForRegisterOperand(cache_info_triple));
+      Bytecodes::OperandSizesToScale(cache_info_triple.SizeOfOperand());
   OutputScaled(Bytecode::kForInPrepare, operand_scale,
                RegisterOperand(cache_info_triple));
   return *this;
@@ -912,8 +782,8 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInDone(Register index,
                                                       Register cache_length) {
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(index), SizeForRegisterOperand(cache_length));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      index.SizeOfOperand(), cache_length.SizeOfOperand());
   OutputScaled(Bytecode::kForInDone, operand_scale, RegisterOperand(index),
                RegisterOperand(cache_length));
   return *this;
@@ -922,10 +792,10 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInNext(
     Register receiver, Register index, Register cache_type_array_pair,
     int feedback_slot) {
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(receiver), SizeForRegisterOperand(index),
-      SizeForRegisterOperand(cache_type_array_pair),
-      SizeForUnsignedOperand(feedback_slot));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      receiver.SizeOfOperand(), index.SizeOfOperand(),
+      cache_type_array_pair.SizeOfOperand(),
+      Bytecodes::SizeForUnsignedOperand(feedback_slot));
   OutputScaled(Bytecode::kForInNext, operand_scale, RegisterOperand(receiver),
                RegisterOperand(index), RegisterOperand(cache_type_array_pair),
                UnsignedOperand(feedback_slot));
@@ -935,15 +805,36 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInStep(Register index) {
   OperandScale operand_scale =
-      OperandSizesToScale(SizeForRegisterOperand(index));
+      Bytecodes::OperandSizesToScale(index.SizeOfOperand());
   OutputScaled(Bytecode::kForInStep, operand_scale, RegisterOperand(index));
   return *this;
 }
 
 
+BytecodeArrayBuilder& BytecodeArrayBuilder::SuspendGenerator(
+    Register generator) {
+  OperandScale operand_scale =
+      Bytecodes::OperandSizesToScale(generator.SizeOfOperand());
+  OutputScaled(Bytecode::kSuspendGenerator, operand_scale,
+               RegisterOperand(generator));
+  return *this;
+}
+
+
+BytecodeArrayBuilder& BytecodeArrayBuilder::ResumeGenerator(
+    Register generator) {
+  OperandScale operand_scale =
+      Bytecodes::OperandSizesToScale(generator.SizeOfOperand());
+  OutputScaled(Bytecode::kResumeGenerator, operand_scale,
+               RegisterOperand(generator));
+  return *this;
+}
+
+
 BytecodeArrayBuilder& BytecodeArrayBuilder::MarkHandler(int handler_id,
                                                         bool will_catch) {
-  handler_table_builder()->SetHandlerTarget(handler_id, bytecodes()->size());
+  size_t offset = pipeline()->FlushForOffset();
+  handler_table_builder()->SetHandlerTarget(handler_id, offset);
   handler_table_builder()->SetPrediction(handler_id, will_catch);
   return *this;
 }
@@ -951,21 +842,23 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::MarkTryBegin(int handler_id,
                                                          Register context) {
-  handler_table_builder()->SetTryRegionStart(handler_id, bytecodes()->size());
+  size_t offset = pipeline()->FlushForOffset();
+  handler_table_builder()->SetTryRegionStart(handler_id, offset);
   handler_table_builder()->SetContextRegister(handler_id, context);
   return *this;
 }
 
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::MarkTryEnd(int handler_id) {
-  handler_table_builder()->SetTryRegionEnd(handler_id, bytecodes()->size());
+  size_t offset = pipeline()->FlushForOffset();
+  handler_table_builder()->SetTryRegionEnd(handler_id, offset);
   return *this;
 }
 
 
 void BytecodeArrayBuilder::LeaveBasicBlock() {
-  last_block_end_ = bytecodes()->size();
   exit_seen_in_block_ = false;
+  pipeline()->FlushBasicBlock();
 }
 
 void BytecodeArrayBuilder::EnsureReturn() {
@@ -982,10 +875,10 @@
                                                  int feedback_slot,
                                                  TailCallMode tail_call_mode) {
   Bytecode bytecode = BytecodeForCall(tail_call_mode);
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(callable), SizeForRegisterOperand(receiver_args),
-      SizeForUnsignedOperand(receiver_args_count),
-      SizeForUnsignedOperand(feedback_slot));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      callable.SizeOfOperand(), receiver_args.SizeOfOperand(),
+      Bytecodes::SizeForUnsignedOperand(receiver_args_count),
+      Bytecodes::SizeForUnsignedOperand(feedback_slot));
   OutputScaled(bytecode, operand_scale, RegisterOperand(callable),
                RegisterOperand(receiver_args),
                UnsignedOperand(receiver_args_count),
@@ -1000,9 +893,9 @@
     DCHECK_EQ(0u, arg_count);
     first_arg = Register(0);
   }
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(constructor), SizeForRegisterOperand(first_arg),
-      SizeForUnsignedOperand(arg_count));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      constructor.SizeOfOperand(), first_arg.SizeOfOperand(),
+      Bytecodes::SizeForUnsignedOperand(arg_count));
   OutputScaled(Bytecode::kNew, operand_scale, RegisterOperand(constructor),
                RegisterOperand(first_arg), UnsignedOperand(arg_count));
   return *this;
@@ -1012,7 +905,7 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::CallRuntime(
     Runtime::FunctionId function_id, Register first_arg, size_t arg_count) {
   DCHECK_EQ(1, Runtime::FunctionForId(function_id)->result_size);
-  DCHECK(SizeForUnsignedOperand(function_id) <= OperandSize::kShort);
+  DCHECK(Bytecodes::SizeForUnsignedOperand(function_id) <= OperandSize::kShort);
   if (!first_arg.is_valid()) {
     DCHECK_EQ(0u, arg_count);
     first_arg = Register(0);
@@ -1020,8 +913,8 @@
   Bytecode bytecode = IntrinsicsHelper::IsSupported(function_id)
                           ? Bytecode::kInvokeIntrinsic
                           : Bytecode::kCallRuntime;
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(first_arg), SizeForUnsignedOperand(arg_count));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      first_arg.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(arg_count));
   OutputScaled(bytecode, operand_scale, static_cast<uint16_t>(function_id),
                RegisterOperand(first_arg), UnsignedOperand(arg_count));
   return *this;
@@ -1032,14 +925,14 @@
     Runtime::FunctionId function_id, Register first_arg, size_t arg_count,
     Register first_return) {
   DCHECK_EQ(2, Runtime::FunctionForId(function_id)->result_size);
-  DCHECK(SizeForUnsignedOperand(function_id) <= OperandSize::kShort);
+  DCHECK(Bytecodes::SizeForUnsignedOperand(function_id) <= OperandSize::kShort);
   if (!first_arg.is_valid()) {
     DCHECK_EQ(0u, arg_count);
     first_arg = Register(0);
   }
-  OperandScale operand_scale = OperandSizesToScale(
-      SizeForRegisterOperand(first_arg), SizeForUnsignedOperand(arg_count),
-      SizeForRegisterOperand(first_return));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      first_arg.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(arg_count),
+      first_return.SizeOfOperand());
   OutputScaled(Bytecode::kCallRuntimeForPair, operand_scale,
                static_cast<uint16_t>(function_id), RegisterOperand(first_arg),
                UnsignedOperand(arg_count), RegisterOperand(first_return));
@@ -1048,10 +941,10 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::CallJSRuntime(
     int context_index, Register receiver_args, size_t receiver_args_count) {
-  OperandScale operand_scale =
-      OperandSizesToScale(SizeForUnsignedOperand(context_index),
-                          SizeForRegisterOperand(receiver_args),
-                          SizeForUnsignedOperand(receiver_args_count));
+  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
+      Bytecodes::SizeForUnsignedOperand(context_index),
+      receiver_args.SizeOfOperand(),
+      Bytecodes::SizeForUnsignedOperand(receiver_args_count));
   OutputScaled(Bytecode::kCallJSRuntime, operand_scale,
                UnsignedOperand(context_index), RegisterOperand(receiver_args),
                UnsignedOperand(receiver_args_count));
@@ -1062,7 +955,7 @@
 BytecodeArrayBuilder& BytecodeArrayBuilder::Delete(Register object,
                                                    LanguageMode language_mode) {
   OperandScale operand_scale =
-      OperandSizesToScale(SizeForRegisterOperand(object));
+      Bytecodes::OperandSizesToScale(object.SizeOfOperand());
   OutputScaled(BytecodeForDelete(language_mode), operand_scale,
                RegisterOperand(object));
   return *this;
@@ -1075,29 +968,25 @@
 void BytecodeArrayBuilder::SetReturnPosition() {
   if (return_position_ == RelocInfo::kNoPosition) return;
   if (exit_seen_in_block_) return;
-  source_position_table_builder_.AddStatementPosition(bytecodes_.size(),
-                                                      return_position_);
+  latest_source_info_.Update({return_position_, true});
 }
 
 void BytecodeArrayBuilder::SetStatementPosition(Statement* stmt) {
   if (stmt->position() == RelocInfo::kNoPosition) return;
   if (exit_seen_in_block_) return;
-  source_position_table_builder_.AddStatementPosition(bytecodes_.size(),
-                                                      stmt->position());
+  latest_source_info_.Update({stmt->position(), true});
 }
 
 void BytecodeArrayBuilder::SetExpressionPosition(Expression* expr) {
   if (expr->position() == RelocInfo::kNoPosition) return;
   if (exit_seen_in_block_) return;
-  source_position_table_builder_.AddExpressionPosition(bytecodes_.size(),
-                                                       expr->position());
+  latest_source_info_.Update({expr->position(), false});
 }
 
 void BytecodeArrayBuilder::SetExpressionAsStatementPosition(Expression* expr) {
   if (expr->position() == RelocInfo::kNoPosition) return;
   if (exit_seen_in_block_) return;
-  source_position_table_builder_.AddStatementPosition(bytecodes_.size(),
-                                                      expr->position());
+  latest_source_info_.Update({expr->position(), true});
 }
 
 bool BytecodeArrayBuilder::TemporaryRegisterIsLive(Register reg) const {
@@ -1129,10 +1018,10 @@
     case OperandType::kRuntimeId:
     case OperandType::kImm: {
       size_t unsigned_value = static_cast<size_t>(operand_value);
-      return SizeForUnsignedOperand(unsigned_value) <= operand_size;
+      return Bytecodes::SizeForUnsignedOperand(unsigned_value) <= operand_size;
     }
     case OperandType::kMaybeReg:
-      if (operand_value == 0) {
+      if (RegisterFromOperand(operand_value) == Register(0)) {
         return true;
       }
     // Fall-through to kReg case.
@@ -1169,7 +1058,7 @@
     return false;
   }
 
-  if (SizeForRegisterOperand(reg) > reg_size) {
+  if (reg.SizeOfOperand() > reg_size) {
     return false;
   }
 
@@ -1186,25 +1075,6 @@
   }
 }
 
-
-bool BytecodeArrayBuilder::LastBytecodeInSameBlock() const {
-  return last_bytecode_start_ < bytecodes()->size() &&
-         last_bytecode_start_ >= last_block_end_;
-}
-
-
-bool BytecodeArrayBuilder::IsRegisterInAccumulator(Register reg) {
-  if (LastBytecodeInSameBlock()) {
-    PreviousBytecodeHelper previous_bytecode(*this);
-    Bytecode bytecode = previous_bytecode.GetBytecode();
-    if (bytecode == Bytecode::kLdar || bytecode == Bytecode::kStar) {
-      return previous_bytecode.GetRegisterOperand(0) == reg;
-    }
-  }
-  return false;
-}
-
-
 // static
 Bytecode BytecodeArrayBuilder::BytecodeForBinaryOperation(Token::Value op) {
   switch (op) {
@@ -1386,76 +1256,6 @@
   return Bytecode::kIllegal;
 }
 
-// static
-OperandSize BytecodeArrayBuilder::SizeForRegisterOperand(Register value) {
-  if (value.is_byte_operand()) {
-    return OperandSize::kByte;
-  } else if (value.is_short_operand()) {
-    return OperandSize::kShort;
-  } else {
-    return OperandSize::kQuad;
-  }
-}
-
-// static
-OperandSize BytecodeArrayBuilder::SizeForSignedOperand(int value) {
-  if (kMinInt8 <= value && value <= kMaxInt8) {
-    return OperandSize::kByte;
-  } else if (kMinInt16 <= value && value <= kMaxInt16) {
-    return OperandSize::kShort;
-  } else {
-    return OperandSize::kQuad;
-  }
-}
-
-// static
-OperandSize BytecodeArrayBuilder::SizeForUnsignedOperand(int value) {
-  DCHECK_GE(value, 0);
-  if (value <= kMaxUInt8) {
-    return OperandSize::kByte;
-  } else if (value <= kMaxUInt16) {
-    return OperandSize::kShort;
-  } else {
-    return OperandSize::kQuad;
-  }
-}
-
-OperandSize BytecodeArrayBuilder::SizeForUnsignedOperand(size_t value) {
-  if (value <= static_cast<size_t>(kMaxUInt8)) {
-    return OperandSize::kByte;
-  } else if (value <= static_cast<size_t>(kMaxUInt16)) {
-    return OperandSize::kShort;
-  } else if (value <= kMaxUInt32) {
-    return OperandSize::kQuad;
-  } else {
-    UNREACHABLE();
-    return OperandSize::kQuad;
-  }
-}
-
-OperandScale BytecodeArrayBuilder::OperandSizesToScale(OperandSize size0,
-                                                       OperandSize size1,
-                                                       OperandSize size2,
-                                                       OperandSize size3) {
-  OperandSize upper = std::max(size0, size1);
-  OperandSize lower = std::max(size2, size3);
-  OperandSize result = std::max(upper, lower);
-  // Operand sizes have been scaled before calling this function.
-  // Currently all scalable operands are byte sized at
-  // OperandScale::kSingle.
-  STATIC_ASSERT(static_cast<int>(OperandSize::kByte) ==
-                    static_cast<int>(OperandScale::kSingle) &&
-                static_cast<int>(OperandSize::kShort) ==
-                    static_cast<int>(OperandScale::kDouble) &&
-                static_cast<int>(OperandSize::kQuad) ==
-                    static_cast<int>(OperandScale::kQuadruple));
-  OperandScale operand_scale = static_cast<OperandScale>(result);
-  DCHECK(operand_scale == OperandScale::kSingle ||
-         operand_scale == OperandScale::kDouble ||
-         operand_scale == OperandScale::kQuadruple);
-  return operand_scale;
-}
-
 uint32_t BytecodeArrayBuilder::RegisterOperand(Register reg) {
   return static_cast<uint32_t>(reg.ToOperand());
 }
diff --git a/src/interpreter/bytecode-array-builder.h b/src/interpreter/bytecode-array-builder.h
index 4446a63..3930a06 100644
--- a/src/interpreter/bytecode-array-builder.h
+++ b/src/interpreter/bytecode-array-builder.h
@@ -6,6 +6,7 @@
 #define V8_INTERPRETER_BYTECODE_ARRAY_BUILDER_H_
 
 #include "src/ast/ast.h"
+#include "src/interpreter/bytecode-array-writer.h"
 #include "src/interpreter/bytecode-register-allocator.h"
 #include "src/interpreter/bytecodes.h"
 #include "src/interpreter/constant-array-builder.h"
@@ -21,6 +22,8 @@
 namespace interpreter {
 
 class BytecodeLabel;
+class BytecodeNode;
+class BytecodePipelineStage;
 class Register;
 
 class BytecodeArrayBuilder final : public ZoneObject {
@@ -28,7 +31,6 @@
   BytecodeArrayBuilder(Isolate* isolate, Zone* zone, int parameter_count,
                        int context_count, int locals_count,
                        FunctionLiteral* literal = nullptr);
-  ~BytecodeArrayBuilder();
 
   Handle<BytecodeArray> ToBytecodeArray();
 
@@ -224,7 +226,7 @@
   BytecodeArrayBuilder& JumpIfNull(BytecodeLabel* label);
   BytecodeArrayBuilder& JumpIfUndefined(BytecodeLabel* label);
 
-  BytecodeArrayBuilder& StackCheck();
+  BytecodeArrayBuilder& StackCheck(int position);
 
   BytecodeArrayBuilder& Throw();
   BytecodeArrayBuilder& ReThrow();
@@ -241,6 +243,10 @@
                                   int feedback_slot);
   BytecodeArrayBuilder& ForInStep(Register index);
 
+  // Generators.
+  BytecodeArrayBuilder& SuspendGenerator(Register generator);
+  BytecodeArrayBuilder& ResumeGenerator(Register generator);
+
   // Exception handling.
   BytecodeArrayBuilder& MarkHandler(int handler_id, bool will_catch);
   BytecodeArrayBuilder& MarkTryBegin(int handler_id, Register context);
@@ -257,26 +263,16 @@
   void SetExpressionAsStatementPosition(Expression* expr);
 
   // Accessors
-  Zone* zone() const { return zone_; }
   TemporaryRegisterAllocator* temporary_register_allocator() {
     return &temporary_allocator_;
   }
   const TemporaryRegisterAllocator* temporary_register_allocator() const {
     return &temporary_allocator_;
   }
+  Zone* zone() const { return zone_; }
 
   void EnsureReturn();
 
-  static OperandScale OperandSizesToScale(
-      OperandSize size0, OperandSize size1 = OperandSize::kByte,
-      OperandSize size2 = OperandSize::kByte,
-      OperandSize size3 = OperandSize::kByte);
-
-  static OperandSize SizeForRegisterOperand(Register reg);
-  static OperandSize SizeForSignedOperand(int value);
-  static OperandSize SizeForUnsignedOperand(int value);
-  static OperandSize SizeForUnsignedOperand(size_t value);
-
   static uint32_t RegisterOperand(Register reg);
   static Register RegisterFromOperand(uint32_t operand);
   static uint32_t SignedOperand(int value, OperandSize size);
@@ -284,7 +280,6 @@
   static uint32_t UnsignedOperand(size_t value);
 
  private:
-  class PreviousBytecodeHelper;
   friend class BytecodeRegisterAllocator;
 
   static Bytecode BytecodeForBinaryOperation(Token::Value op);
@@ -300,11 +295,7 @@
   static Bytecode BytecodeForCall(TailCallMode tail_call_mode);
 
   static Bytecode GetJumpWithConstantOperand(Bytecode jump_smi8_operand);
-  static Bytecode GetJumpWithToBoolean(Bytecode jump_smi8_operand);
 
-  template <size_t N>
-  INLINE(void Output(Bytecode bytecode, uint32_t (&operands)[N],
-                     OperandScale operand_scale = OperandScale::kSingle));
   void Output(Bytecode bytecode);
   void OutputScaled(Bytecode bytecode, OperandScale operand_scale,
                     uint32_t operand0, uint32_t operand1, uint32_t operand2,
@@ -318,14 +309,13 @@
 
   BytecodeArrayBuilder& OutputJump(Bytecode jump_bytecode,
                                    BytecodeLabel* label);
-  void PatchJump(const ZoneVector<uint8_t>::iterator& jump_target,
-                 const ZoneVector<uint8_t>::iterator& jump_location);
-  void PatchIndirectJumpWith8BitOperand(
-      const ZoneVector<uint8_t>::iterator& jump_location, int delta);
-  void PatchIndirectJumpWith16BitOperand(
-      const ZoneVector<uint8_t>::iterator& jump_location, int delta);
-  void PatchIndirectJumpWith32BitOperand(
-      const ZoneVector<uint8_t>::iterator& jump_location, int delta);
+  void PatchJump(size_t jump_target, size_t jump_location);
+  void PatchJumpWith8BitOperand(ZoneVector<uint8_t>* bytecodes,
+                                size_t jump_location, int delta);
+  void PatchJumpWith16BitOperand(ZoneVector<uint8_t>* bytecodes,
+                                 size_t jump_location, int delta);
+  void PatchJumpWith32BitOperand(ZoneVector<uint8_t>* bytecodes,
+                                 size_t jump_location, int delta);
 
   void LeaveBasicBlock();
 
@@ -333,9 +323,8 @@
                       int operand_index, uint32_t operand_value) const;
   bool RegisterIsValid(Register reg, OperandSize reg_size) const;
 
-  bool LastBytecodeInSameBlock() const;
-  bool NeedToBooleanCast();
-  bool IsRegisterInAccumulator(Register reg);
+  // Attach latest source position to |node|.
+  void AttachSourceInfo(BytecodeNode* node);
 
   // Set position for return.
   void SetReturnPosition();
@@ -343,9 +332,16 @@
   // Gets a constant pool entry for the |object|.
   size_t GetConstantPoolEntry(Handle<Object> object);
 
-  ZoneVector<uint8_t>* bytecodes() { return &bytecodes_; }
-  const ZoneVector<uint8_t>* bytecodes() const { return &bytecodes_; }
+  // Not implemented as the illegal bytecode is used inside internally
+  // to indicate a bytecode field is not valid or an error has occured
+  // during bytecode generation.
+  BytecodeArrayBuilder& Illegal();
+
   Isolate* isolate() const { return isolate_; }
+  BytecodeArrayWriter* bytecode_array_writer() {
+    return &bytecode_array_writer_;
+  }
+  BytecodePipelineStage* pipeline() { return pipeline_; }
   ConstantArrayBuilder* constant_array_builder() {
     return &constant_array_builder_;
   }
@@ -361,13 +357,10 @@
 
   Isolate* isolate_;
   Zone* zone_;
-  ZoneVector<uint8_t> bytecodes_;
   bool bytecode_generated_;
   ConstantArrayBuilder constant_array_builder_;
   HandlerTableBuilder handler_table_builder_;
   SourcePositionTableBuilder source_position_table_builder_;
-  size_t last_block_end_;
-  size_t last_bytecode_start_;
   bool exit_seen_in_block_;
   int unbound_jumps_;
   int parameter_count_;
@@ -375,6 +368,9 @@
   int context_register_count_;
   int return_position_;
   TemporaryRegisterAllocator temporary_allocator_;
+  BytecodeArrayWriter bytecode_array_writer_;
+  BytecodePipelineStage* pipeline_;
+  BytecodeSourceInfo latest_source_info_;
 
   DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder);
 };
diff --git a/src/interpreter/bytecode-array-iterator.cc b/src/interpreter/bytecode-array-iterator.cc
index a17efcb..319d2a0 100644
--- a/src/interpreter/bytecode-array-iterator.cc
+++ b/src/interpreter/bytecode-array-iterator.cc
@@ -128,26 +128,15 @@
 }
 
 int BytecodeArrayIterator::GetRegisterOperandRange(int operand_index) const {
-  interpreter::OperandType operand_type =
-      Bytecodes::GetOperandType(current_bytecode(), operand_index);
-  DCHECK(Bytecodes::IsRegisterOperandType(operand_type));
-  switch (operand_type) {
-    case OperandType::kRegPair:
-    case OperandType::kRegOutPair:
-      return 2;
-    case OperandType::kRegOutTriple:
-      return 3;
-    default: {
-      if (operand_index + 1 !=
-          Bytecodes::NumberOfOperands(current_bytecode())) {
-        OperandType next_operand_type =
-            Bytecodes::GetOperandType(current_bytecode(), operand_index + 1);
-        if (OperandType::kRegCount == next_operand_type) {
-          return GetRegisterCountOperand(operand_index + 1);
-        }
-      }
-      return 1;
-    }
+  DCHECK_LE(operand_index, Bytecodes::NumberOfOperands(current_bytecode()));
+  const OperandType* operand_types =
+      Bytecodes::GetOperandTypes(current_bytecode());
+  DCHECK(Bytecodes::IsRegisterOperandType(operand_types[operand_index]));
+  if (operand_types[operand_index + 1] == OperandType::kRegCount) {
+    return GetRegisterCountOperand(operand_index + 1);
+  } else {
+    OperandType operand_type = operand_types[operand_index];
+    return Bytecodes::GetNumberOfRegistersRepresentedBy(operand_type);
   }
 }
 
diff --git a/src/interpreter/bytecode-array-writer.cc b/src/interpreter/bytecode-array-writer.cc
new file mode 100644
index 0000000..029688e
--- /dev/null
+++ b/src/interpreter/bytecode-array-writer.cc
@@ -0,0 +1,105 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/interpreter/bytecode-array-writer.h"
+
+#include <iomanip>
+#include "src/interpreter/source-position-table.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+BytecodeArrayWriter::BytecodeArrayWriter(
+    Zone* zone, SourcePositionTableBuilder* source_position_table_builder)
+    : bytecodes_(zone),
+      max_register_count_(0),
+      source_position_table_builder_(source_position_table_builder) {}
+
+// override
+BytecodeArrayWriter::~BytecodeArrayWriter() {}
+
+// override
+size_t BytecodeArrayWriter::FlushForOffset() { return bytecodes()->size(); }
+
+// override
+void BytecodeArrayWriter::Write(BytecodeNode* node) {
+  UpdateSourcePositionTable(node);
+  EmitBytecode(node);
+}
+
+void BytecodeArrayWriter::UpdateSourcePositionTable(
+    const BytecodeNode* const node) {
+  int bytecode_offset = static_cast<int>(bytecodes()->size());
+  const BytecodeSourceInfo& source_info = node->source_info();
+  if (source_info.is_valid()) {
+    source_position_table_builder_->AddPosition(bytecode_offset,
+                                                source_info.source_position(),
+                                                source_info.is_statement());
+  }
+}
+
+void BytecodeArrayWriter::EmitBytecode(const BytecodeNode* const node) {
+  DCHECK_NE(node->bytecode(), Bytecode::kIllegal);
+
+  OperandScale operand_scale = node->operand_scale();
+  if (operand_scale != OperandScale::kSingle) {
+    Bytecode prefix = Bytecodes::OperandScaleToPrefixBytecode(operand_scale);
+    bytecodes()->push_back(Bytecodes::ToByte(prefix));
+  }
+
+  Bytecode bytecode = node->bytecode();
+  bytecodes()->push_back(Bytecodes::ToByte(bytecode));
+
+  int register_operand_bitmap = Bytecodes::GetRegisterOperandBitmap(bytecode);
+  const uint32_t* const operands = node->operands();
+  const OperandType* operand_types = Bytecodes::GetOperandTypes(bytecode);
+  for (int i = 0; operand_types[i] != OperandType::kNone; ++i) {
+    OperandType operand_type = operand_types[i];
+    switch (Bytecodes::SizeOfOperand(operand_type, operand_scale)) {
+      case OperandSize::kNone:
+        UNREACHABLE();
+        break;
+      case OperandSize::kByte:
+        bytecodes()->push_back(static_cast<uint8_t>(operands[i]));
+        break;
+      case OperandSize::kShort: {
+        uint8_t operand_bytes[2];
+        WriteUnalignedUInt16(operand_bytes, operands[i]);
+        bytecodes()->insert(bytecodes()->end(), operand_bytes,
+                            operand_bytes + 2);
+        break;
+      }
+      case OperandSize::kQuad: {
+        uint8_t operand_bytes[4];
+        WriteUnalignedUInt32(operand_bytes, operands[i]);
+        bytecodes()->insert(bytecodes()->end(), operand_bytes,
+                            operand_bytes + 4);
+        break;
+      }
+    }
+
+    if ((register_operand_bitmap >> i) & 1) {
+      int count;
+      if (operand_types[i + 1] == OperandType::kRegCount) {
+        count = static_cast<int>(operands[i + 1]);
+      } else {
+        count = Bytecodes::GetNumberOfRegistersRepresentedBy(operand_type);
+      }
+      Register reg = Register::FromOperand(static_cast<int32_t>(operands[i]));
+      max_register_count_ = std::max(max_register_count_, reg.index() + count);
+    }
+  }
+}
+
+// override
+void BytecodeArrayWriter::FlushBasicBlock() {}
+
+int BytecodeArrayWriter::GetMaximumFrameSizeUsed() {
+  return max_register_count_ * kPointerSize;
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/src/interpreter/bytecode-array-writer.h b/src/interpreter/bytecode-array-writer.h
new file mode 100644
index 0000000..b1303c9
--- /dev/null
+++ b/src/interpreter/bytecode-array-writer.h
@@ -0,0 +1,50 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_INTERPRETER_BYTECODE_ARRAY_WRITER_H_
+#define V8_INTERPRETER_BYTECODE_ARRAY_WRITER_H_
+
+#include "src/interpreter/bytecode-pipeline.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+class SourcePositionTableBuilder;
+
+// Class for emitting bytecode as the final stage of the bytecode
+// generation pipeline.
+class BytecodeArrayWriter final : public BytecodePipelineStage {
+ public:
+  BytecodeArrayWriter(
+      Zone* zone, SourcePositionTableBuilder* source_position_table_builder);
+  virtual ~BytecodeArrayWriter();
+
+  void Write(BytecodeNode* node) override;
+  size_t FlushForOffset() override;
+  void FlushBasicBlock() override;
+
+  // Get the bytecode vector.
+  ZoneVector<uint8_t>* bytecodes() { return &bytecodes_; }
+
+  // Returns the size in bytes of the frame associated with the
+  // bytecode written.
+  int GetMaximumFrameSizeUsed();
+
+ private:
+  void EmitBytecode(const BytecodeNode* const node);
+  void UpdateSourcePositionTable(const BytecodeNode* const node);
+
+  ZoneVector<uint8_t> bytecodes_;
+  int max_register_count_;
+  SourcePositionTableBuilder* source_position_table_builder_;
+
+  DISALLOW_COPY_AND_ASSIGN(BytecodeArrayWriter);
+};
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_INTERPRETER_BYTECODE_ARRAY_WRITER_H_
diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc
index b0fa245..650234a 100644
--- a/src/interpreter/bytecode-generator.cc
+++ b/src/interpreter/bytecode-generator.cc
@@ -5,6 +5,7 @@
 #include "src/interpreter/bytecode-generator.h"
 
 #include "src/ast/scopes.h"
+#include "src/code-stubs.h"
 #include "src/compiler.h"
 #include "src/interpreter/bytecode-register-allocator.h"
 #include "src/interpreter/control-flow-builders.h"
@@ -554,38 +555,41 @@
   Register result_register_;
 };
 
-BytecodeGenerator::BytecodeGenerator(Isolate* isolate, Zone* zone)
-    : isolate_(isolate),
-      zone_(zone),
-      builder_(nullptr),
-      info_(nullptr),
-      scope_(nullptr),
-      globals_(0, zone),
+BytecodeGenerator::BytecodeGenerator(CompilationInfo* info)
+    : isolate_(info->isolate()),
+      zone_(info->zone()),
+      builder_(new (zone()) BytecodeArrayBuilder(
+          info->isolate(), info->zone(), info->num_parameters_including_this(),
+          info->scope()->MaxNestedContextChainLength(),
+          info->scope()->num_stack_slots(), info->literal())),
+      info_(info),
+      scope_(info->scope()),
+      globals_(0, info->zone()),
       execution_control_(nullptr),
       execution_context_(nullptr),
       execution_result_(nullptr),
       register_allocator_(nullptr),
+      generator_resume_points_(info->literal()->yield_count(), info->zone()),
+      generator_state_(),
       try_catch_nesting_level_(0),
       try_finally_nesting_level_(0) {
-  InitializeAstVisitor(isolate);
+  InitializeAstVisitor(isolate());
 }
 
-Handle<BytecodeArray> BytecodeGenerator::MakeBytecode(CompilationInfo* info) {
-  set_info(info);
-  set_scope(info->scope());
-
-  // Initialize bytecode array builder.
-  set_builder(new (zone()) BytecodeArrayBuilder(
-      isolate(), zone(), info->num_parameters_including_this(),
-      scope()->MaxNestedContextChainLength(), scope()->num_stack_slots(),
-      info->literal()));
-
+Handle<BytecodeArray> BytecodeGenerator::MakeBytecode() {
   // Initialize the incoming context.
   ContextScope incoming_context(this, scope(), false);
 
   // Initialize control scope.
   ControlScopeForTopLevel control(this);
 
+  RegisterAllocationScope register_scope(this);
+
+  if (IsGeneratorFunction(info()->literal()->kind())) {
+    generator_state_ = register_allocator()->NewRegister();
+    VisitGeneratorPrologue();
+  }
+
   // Build function context only if there are context allocated variables.
   if (scope()->NeedsContext()) {
     // Push a new inner context scope for the function.
@@ -597,9 +601,15 @@
     MakeBytecodeBody();
   }
 
+  // In generator functions, we may not have visited every yield in the AST
+  // since we skip some obviously dead code. Hence the generated bytecode may
+  // contain jumps to unbound labels (resume points that will never be used).
+  // We bind these now.
+  for (auto& label : generator_resume_points_) {
+    if (!label.is_bound()) builder()->Bind(&label);
+  }
+
   builder()->EnsureReturn();
-  set_scope(nullptr);
-  set_info(nullptr);
   return builder()->ToBytecodeArray();
 }
 
@@ -628,12 +638,90 @@
   VisitDeclarations(scope()->declarations());
 
   // Perform a stack-check before the body.
-  builder()->StackCheck();
+  builder()->StackCheck(info()->literal()->start_position());
 
   // Visit statements in the function body.
   VisitStatements(info()->literal()->body());
 }
 
+void BytecodeGenerator::BuildIndexedJump(Register index, size_t start_index,
+                                         size_t size,
+                                         ZoneVector<BytecodeLabel>& targets) {
+  // TODO(neis): Optimize this by using a proper jump table.
+  for (size_t i = start_index; i < start_index + size; i++) {
+    DCHECK(0 <= i && i < targets.size());
+    builder()
+        ->LoadLiteral(Smi::FromInt(static_cast<int>(i)))
+        .CompareOperation(Token::Value::EQ_STRICT, index)
+        .JumpIfTrue(&(targets[i]));
+  }
+
+  RegisterAllocationScope register_scope(this);
+  Register reason = register_allocator()->NewRegister();
+  BailoutReason bailout_reason = BailoutReason::kInvalidJumpTableIndex;
+  builder()
+      ->LoadLiteral(Smi::FromInt(static_cast<int>(bailout_reason)))
+      .StoreAccumulatorInRegister(reason)
+      .CallRuntime(Runtime::kAbort, reason, 1);
+}
+
+void BytecodeGenerator::VisitIterationHeader(IterationStatement* stmt,
+                                             LoopBuilder* loop_builder) {
+  // Recall that stmt->yield_count() is always zero inside ordinary
+  // (i.e. non-generator) functions.
+
+  // Collect all labels for generator resume points within the loop (if any) so
+  // that they can be bound to the loop header below. Also create fresh labels
+  // for these resume points, to be used inside the loop.
+  ZoneVector<BytecodeLabel> resume_points_in_loop(zone());
+  size_t first_yield = stmt->first_yield_id();
+  for (size_t id = first_yield; id < first_yield + stmt->yield_count(); id++) {
+    DCHECK(0 <= id && id < generator_resume_points_.size());
+    auto& label = generator_resume_points_[id];
+    resume_points_in_loop.push_back(label);
+    generator_resume_points_[id] = BytecodeLabel();
+  }
+
+  loop_builder->LoopHeader(&resume_points_in_loop);
+
+  if (stmt->yield_count() > 0) {
+    // If we are not resuming, fall through to loop body.
+    // If we are resuming, perform state dispatch.
+    BytecodeLabel not_resuming;
+    builder()
+        ->LoadLiteral(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting))
+        .CompareOperation(Token::Value::EQ, generator_state_)
+        .JumpIfTrue(&not_resuming);
+    BuildIndexedJump(generator_state_, first_yield,
+        stmt->yield_count(), generator_resume_points_);
+    builder()->Bind(&not_resuming);
+  }
+}
+
+void BytecodeGenerator::VisitGeneratorPrologue() {
+  // The generator resume trampoline abuses the new.target register both to
+  // indicate that this is a resume call and to pass in the generator object.
+  // In ordinary calls, new.target is always undefined because generator
+  // functions are non-constructable.
+  Register generator_object = Register::new_target();
+  BytecodeLabel regular_call;
+  builder()
+      ->LoadAccumulatorWithRegister(generator_object)
+      .JumpIfUndefined(&regular_call);
+
+  // This is a resume call. Restore registers and perform state dispatch.
+  // (The current context has already been restored by the trampoline.)
+  builder()
+      ->ResumeGenerator(generator_object)
+      .StoreAccumulatorInRegister(generator_state_);
+  BuildIndexedJump(generator_state_, 0, generator_resume_points_.size(),
+                   generator_resume_points_);
+
+  builder()->Bind(&regular_call);
+  // This is a regular call. Fall through to the ordinary function prologue,
+  // after which we will run into the generator object creation and the initial
+  // yield (both inserted by the parser).
+}
 
 void BytecodeGenerator::VisitBlock(Block* stmt) {
   // Visit declarations and statements.
@@ -663,17 +751,14 @@
   VariableMode mode = decl->mode();
   // Const and let variables are initialized with the hole so that we can
   // check that they are only assigned once.
-  bool hole_init = mode == CONST || mode == CONST_LEGACY || mode == LET;
+  bool hole_init = mode == CONST || mode == LET;
   switch (variable->location()) {
     case VariableLocation::GLOBAL:
-    case VariableLocation::UNALLOCATED: {
-      Handle<Oddball> value = variable->binding_needs_init()
-                                  ? isolate()->factory()->the_hole_value()
-                                  : isolate()->factory()->undefined_value();
+    case VariableLocation::UNALLOCATED:
+      DCHECK(!variable->binding_needs_init());
       globals()->push_back(variable->name());
-      globals()->push_back(value);
+      globals()->push_back(isolate()->factory()->undefined_value());
       break;
-    }
     case VariableLocation::LOCAL:
       if (hole_init) {
         Register destination(variable->index());
@@ -793,9 +878,7 @@
   Handle<FixedArray> data = isolate()->factory()->NewFixedArray(
       static_cast<int>(globals()->size()), TENURED);
   for (Handle<Object> obj : *globals()) data->set(array_index++, *obj);
-  int encoded_flags = DeclareGlobalsEvalFlag::encode(info()->is_eval()) |
-                      DeclareGlobalsNativeFlag::encode(info()->is_native()) |
-                      DeclareGlobalsLanguageMode::encode(language_mode());
+  int encoded_flags = info()->GetDeclareGlobalsFlags();
 
   Register pairs = register_allocator()->NewRegister();
   builder()->LoadLiteral(data);
@@ -955,23 +1038,21 @@
 void BytecodeGenerator::VisitIterationBody(IterationStatement* stmt,
                                            LoopBuilder* loop_builder) {
   ControlScopeForIteration execution_control(this, stmt, loop_builder);
-  builder()->StackCheck();
+  builder()->StackCheck(stmt->position());
   Visit(stmt->body());
+  loop_builder->SetContinueTarget();
 }
 
 void BytecodeGenerator::VisitDoWhileStatement(DoWhileStatement* stmt) {
   LoopBuilder loop_builder(builder());
-  loop_builder.LoopHeader();
+  VisitIterationHeader(stmt, &loop_builder);
   if (stmt->cond()->ToBooleanIsFalse()) {
     VisitIterationBody(stmt, &loop_builder);
-    loop_builder.Condition();
   } else if (stmt->cond()->ToBooleanIsTrue()) {
-    loop_builder.Condition();
     VisitIterationBody(stmt, &loop_builder);
     loop_builder.JumpToHeader();
   } else {
     VisitIterationBody(stmt, &loop_builder);
-    loop_builder.Condition();
     builder()->SetExpressionAsStatementPosition(stmt->cond());
     VisitForAccumulatorValue(stmt->cond());
     loop_builder.JumpToHeaderIfTrue();
@@ -986,8 +1067,7 @@
   }
 
   LoopBuilder loop_builder(builder());
-  loop_builder.LoopHeader();
-  loop_builder.Condition();
+  VisitIterationHeader(stmt, &loop_builder);
   if (!stmt->cond()->ToBooleanIsTrue()) {
     builder()->SetExpressionAsStatementPosition(stmt->cond());
     VisitForAccumulatorValue(stmt->cond());
@@ -1010,8 +1090,7 @@
   }
 
   LoopBuilder loop_builder(builder());
-  loop_builder.LoopHeader();
-  loop_builder.Condition();
+  VisitIterationHeader(stmt, &loop_builder);
   if (stmt->cond() && !stmt->cond()->ToBooleanIsTrue()) {
     builder()->SetExpressionAsStatementPosition(stmt->cond());
     VisitForAccumulatorValue(stmt->cond());
@@ -1019,7 +1098,6 @@
   }
   VisitIterationBody(stmt, &loop_builder);
   if (stmt->next() != nullptr) {
-    loop_builder.Next();
     builder()->SetStatementPosition(stmt->next());
     Visit(stmt->next());
   }
@@ -1135,9 +1213,8 @@
   builder()->StoreAccumulatorInRegister(index);
 
   // The loop
-  loop_builder.LoopHeader();
+  VisitIterationHeader(stmt, &loop_builder);
   builder()->SetExpressionAsStatementPosition(stmt->each());
-  loop_builder.Condition();
   builder()->ForInDone(index, cache_length);
   loop_builder.BreakIfTrue();
   DCHECK(Register::AreContiguous(cache_type, cache_array));
@@ -1146,7 +1223,6 @@
   loop_builder.ContinueIfUndefined();
   VisitForInAssignment(stmt->each(), stmt->EachFeedbackSlot());
   VisitIterationBody(stmt, &loop_builder);
-  loop_builder.Next();
   builder()->ForInStep(index);
   builder()->StoreAccumulatorInRegister(index);
   loop_builder.JumpToHeader();
@@ -1160,10 +1236,10 @@
   LoopBuilder loop_builder(builder());
   ControlScopeForIteration control_scope(this, stmt, &loop_builder);
 
+  builder()->SetExpressionAsStatementPosition(stmt->assign_iterator());
   VisitForEffect(stmt->assign_iterator());
 
-  loop_builder.LoopHeader();
-  loop_builder.Next();
+  VisitIterationHeader(stmt, &loop_builder);
   builder()->SetExpressionAsStatementPosition(stmt->next_result());
   VisitForEffect(stmt->next_result());
   VisitForAccumulatorValue(stmt->result_done());
@@ -1324,7 +1400,7 @@
       .StoreAccumulatorInRegister(prototype);
 
   VisitClassLiteralProperties(expr, literal, prototype);
-  builder()->CallRuntime(Runtime::kFinalizeClassDefinition, literal, 2);
+  builder()->CallRuntime(Runtime::kToFastProperties, literal, 1);
   // Assign to class variable.
   if (expr->class_variable_proxy() != nullptr) {
     Variable* var = expr->class_variable_proxy()->var();
@@ -1514,10 +1590,21 @@
 
 
 void BytecodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
-  // Deep-copy the literal boilerplate.
+  // Copy the literal boilerplate.
+  int fast_clone_properties_count = 0;
+  if (FastCloneShallowObjectStub::IsSupported(expr)) {
+    STATIC_ASSERT(
+        FastCloneShallowObjectStub::kMaximumClonedProperties <=
+        1 << CreateObjectLiteralFlags::FastClonePropertiesCountBits::kShift);
+    fast_clone_properties_count =
+        FastCloneShallowObjectStub::PropertiesCount(expr->properties_count());
+  }
+  uint8_t flags =
+      CreateObjectLiteralFlags::FlagsBits::encode(expr->ComputeFlags()) |
+      CreateObjectLiteralFlags::FastClonePropertiesCountBits::encode(
+          fast_clone_properties_count);
   builder()->CreateObjectLiteral(expr->constant_properties(),
-                                 expr->literal_index(),
-                                 expr->ComputeFlags(true));
+                                 expr->literal_index(), flags);
 
   // Allocate in the outer scope since this register is used to return the
   // expression's results to the caller.
@@ -1753,10 +1840,7 @@
 
 void BytecodeGenerator::BuildHoleCheckForVariableLoad(VariableMode mode,
                                                       Handle<String> name) {
-  if (mode == CONST_LEGACY) {
-    BytecodeLabel end_label;
-    builder()->JumpIfNotHole(&end_label).LoadUndefined().Bind(&end_label);
-  } else if (mode == LET || mode == CONST) {
+  if (mode == LET || mode == CONST) {
     BuildThrowIfHole(name);
   }
 }
@@ -1940,7 +2024,7 @@
   RegisterAllocationScope assignment_register_scope(this);
   BytecodeLabel end_label;
   bool hole_check_required =
-      (mode == CONST_LEGACY) || (mode == LET && op != Token::INIT) ||
+      (mode == LET && op != Token::INIT) ||
       (mode == CONST && op != Token::INIT) ||
       (mode == CONST && op == Token::INIT && variable->is_this());
   switch (variable->location()) {
@@ -1953,6 +2037,16 @@
         destination = Register(variable->index());
       }
 
+      if (mode == CONST_LEGACY && op != Token::INIT) {
+        if (is_strict(language_mode())) {
+          builder()->CallRuntime(Runtime::kThrowConstAssignError, Register(),
+                                 0);
+        }
+        // Non-initializing assignments to legacy constants are ignored
+        // in sloppy mode. Break here to avoid storing into variable.
+        break;
+      }
+
       if (hole_check_required) {
         // Load destination to check for hole.
         Register value_temp = register_allocator()->NewRegister();
@@ -1960,28 +2054,9 @@
             ->StoreAccumulatorInRegister(value_temp)
             .LoadAccumulatorWithRegister(destination);
 
-        if (mode == CONST_LEGACY && op == Token::INIT) {
-          // Perform an intialization check for legacy constants.
-          builder()
-              ->JumpIfNotHole(&end_label)
-              .MoveRegister(value_temp, destination)
-              .Bind(&end_label)
-              .LoadAccumulatorWithRegister(value_temp);
-          // Break here because the value should not be stored unconditionally.
-          break;
-        } else if (mode == CONST_LEGACY && op != Token::INIT) {
-          DCHECK(!is_strict(language_mode()));
-          // Ensure accumulator is in the correct state.
-          builder()->LoadAccumulatorWithRegister(value_temp);
-          // Break here, non-initializing assignments to legacy constants are
-          // ignored.
-          break;
-        } else {
-          BuildHoleCheckForVariableAssignment(variable, op);
-          builder()->LoadAccumulatorWithRegister(value_temp);
-        }
+        BuildHoleCheckForVariableAssignment(variable, op);
+        builder()->LoadAccumulatorWithRegister(value_temp);
       }
-
       builder()->StoreAccumulatorInRegister(destination);
       break;
     }
@@ -2018,6 +2093,16 @@
         builder()->LoadAccumulatorWithRegister(value_temp);
       }
 
+      if (mode == CONST_LEGACY && op != Token::INIT) {
+        if (is_strict(language_mode())) {
+          builder()->CallRuntime(Runtime::kThrowConstAssignError, Register(),
+                                 0);
+        }
+        // Non-initializing assignments to legacy constants are ignored
+        // in sloppy mode. Break here to avoid storing into variable.
+        break;
+      }
+
       if (hole_check_required) {
         // Load destination to check for hole.
         Register value_temp = register_allocator()->NewRegister();
@@ -2025,55 +2110,16 @@
             ->StoreAccumulatorInRegister(value_temp)
             .LoadContextSlot(context_reg, variable->index());
 
-        if (mode == CONST_LEGACY && op == Token::INIT) {
-          // Perform an intialization check for legacy constants.
-          builder()
-              ->JumpIfNotHole(&end_label)
-              .LoadAccumulatorWithRegister(value_temp)
-              .StoreContextSlot(context_reg, variable->index())
-              .Bind(&end_label);
-          builder()->LoadAccumulatorWithRegister(value_temp);
-          // Break here because the value should not be stored unconditionally.
-          // The above code performs the store conditionally.
-          break;
-        } else if (mode == CONST_LEGACY && op != Token::INIT) {
-          DCHECK(!is_strict(language_mode()));
-          // Ensure accumulator is in the correct state.
-          builder()->LoadAccumulatorWithRegister(value_temp);
-          // Break here, non-initializing assignments to legacy constants are
-          // ignored.
-          break;
-        } else {
-          BuildHoleCheckForVariableAssignment(variable, op);
-          builder()->LoadAccumulatorWithRegister(value_temp);
-        }
+        BuildHoleCheckForVariableAssignment(variable, op);
+        builder()->LoadAccumulatorWithRegister(value_temp);
       }
 
       builder()->StoreContextSlot(context_reg, variable->index());
       break;
     }
     case VariableLocation::LOOKUP: {
-      if (mode == CONST_LEGACY && op == Token::INIT) {
-        register_allocator()->PrepareForConsecutiveAllocations(3);
-        Register value = register_allocator()->NextConsecutiveRegister();
-        Register context = register_allocator()->NextConsecutiveRegister();
-        Register name = register_allocator()->NextConsecutiveRegister();
-
-        // InitializeLegacyConstLookupSlot runtime call returns the 'value'
-        // passed to it. So, accumulator will have its original contents when
-        // runtime call returns.
-        builder()
-            ->StoreAccumulatorInRegister(value)
-            .MoveRegister(execution_context()->reg(), context)
-            .LoadLiteral(variable->name())
-            .StoreAccumulatorInRegister(name)
-            .CallRuntime(Runtime::kInitializeLegacyConstLookupSlot, value, 3);
-      } else if (mode == CONST_LEGACY && op != Token::INIT) {
-        // Non-intializing assignments to legacy constants are ignored.
-        DCHECK(!is_strict(language_mode()));
-      } else {
-        builder()->StoreLookupSlot(variable->name(), language_mode());
-      }
+      DCHECK_NE(CONST_LEGACY, variable->mode());
+      builder()->StoreLookupSlot(variable->name(), language_mode());
       break;
     }
   }
@@ -2224,16 +2270,86 @@
   execution_result()->SetResultInAccumulator();
 }
 
+void BytecodeGenerator::VisitYield(Yield* expr) {
+  builder()->SetExpressionPosition(expr);
+  Register value = VisitForRegisterValue(expr->expression());
 
-void BytecodeGenerator::VisitYield(Yield* expr) { UNIMPLEMENTED(); }
+  Register generator = VisitForRegisterValue(expr->generator_object());
 
+  // Save context, registers, and state. Then return.
+  builder()
+      ->LoadLiteral(Smi::FromInt(expr->yield_id()))
+      .SuspendGenerator(generator)
+      .LoadAccumulatorWithRegister(value)
+      .Return();  // Hard return (ignore any finally blocks).
+
+  builder()->Bind(&(generator_resume_points_[expr->yield_id()]));
+  // Upon resume, we continue here.
+
+  {
+    RegisterAllocationScope register_scope(this);
+
+    // Update state to indicate that we have finished resuming. Loop headers
+    // rely on this.
+    builder()
+        ->LoadLiteral(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting))
+        .StoreAccumulatorInRegister(generator_state_);
+
+    Register input = register_allocator()->NewRegister();
+    builder()
+        ->CallRuntime(Runtime::kGeneratorGetInput, generator, 1)
+        .StoreAccumulatorInRegister(input);
+
+    Register resume_mode = register_allocator()->NewRegister();
+    builder()
+        ->CallRuntime(Runtime::kGeneratorGetResumeMode, generator, 1)
+        .StoreAccumulatorInRegister(resume_mode);
+
+    // Now dispatch on resume mode.
+
+    BytecodeLabel resume_with_next;
+    BytecodeLabel resume_with_return;
+    BytecodeLabel resume_with_throw;
+
+    builder()
+        ->LoadLiteral(Smi::FromInt(JSGeneratorObject::kNext))
+        .CompareOperation(Token::EQ_STRICT, resume_mode)
+        .JumpIfTrue(&resume_with_next)
+        .LoadLiteral(Smi::FromInt(JSGeneratorObject::kThrow))
+        .CompareOperation(Token::EQ_STRICT, resume_mode)
+        .JumpIfTrue(&resume_with_throw)
+        .Jump(&resume_with_return);
+
+    builder()->Bind(&resume_with_return);
+    {
+      register_allocator()->PrepareForConsecutiveAllocations(2);
+      Register value = register_allocator()->NextConsecutiveRegister();
+      Register done = register_allocator()->NextConsecutiveRegister();
+      builder()
+          ->MoveRegister(input, value)
+          .LoadTrue()
+          .StoreAccumulatorInRegister(done)
+          .CallRuntime(Runtime::kCreateIterResultObject, value, 2);
+      execution_control()->ReturnAccumulator();
+    }
+
+    builder()->Bind(&resume_with_throw);
+    builder()
+        ->LoadAccumulatorWithRegister(input)
+        .Throw();
+
+    builder()->Bind(&resume_with_next);
+    builder()->LoadAccumulatorWithRegister(input);
+  }
+  execution_result()->SetResultInAccumulator();
+}
 
 void BytecodeGenerator::VisitThrow(Throw* expr) {
   VisitForAccumulatorValue(expr->exception());
   builder()->SetExpressionPosition(expr);
   builder()->Throw();
-  // Throw statments are modeled as expression instead of statments. These are
-  // converted from assignment statements in Rewriter::ReWrite pass. An
+  // Throw statements are modeled as expressions instead of statements. These
+  // are converted from assignment statements in Rewriter::ReWrite pass. An
   // assignment statement expects a value in the accumulator. This is a hack to
   // avoid DCHECK fails assert accumulator has been set.
   execution_result()->SetResultInAccumulator();
@@ -2452,12 +2568,14 @@
   // callee value.
   if (call_type == Call::POSSIBLY_EVAL_CALL && args->length() > 0) {
     RegisterAllocationScope inner_register_scope(this);
-    register_allocator()->PrepareForConsecutiveAllocations(5);
+    register_allocator()->PrepareForConsecutiveAllocations(6);
     Register callee_for_eval = register_allocator()->NextConsecutiveRegister();
     Register source = register_allocator()->NextConsecutiveRegister();
     Register function = register_allocator()->NextConsecutiveRegister();
     Register language = register_allocator()->NextConsecutiveRegister();
-    Register position = register_allocator()->NextConsecutiveRegister();
+    Register eval_scope_position =
+        register_allocator()->NextConsecutiveRegister();
+    Register eval_position = register_allocator()->NextConsecutiveRegister();
 
     // Set up arguments for ResolvePossiblyDirectEval by copying callee, source
     // strings and function closure, and loading language and
@@ -2470,11 +2588,13 @@
         .StoreAccumulatorInRegister(language)
         .LoadLiteral(
             Smi::FromInt(execution_context()->scope()->start_position()))
-        .StoreAccumulatorInRegister(position);
+        .StoreAccumulatorInRegister(eval_scope_position)
+        .LoadLiteral(Smi::FromInt(expr->position()))
+        .StoreAccumulatorInRegister(eval_position);
 
     // Call ResolvePossiblyDirectEval and modify the callee.
     builder()
-        ->CallRuntime(Runtime::kResolvePossiblyDirectEval, callee_for_eval, 5)
+        ->CallRuntime(Runtime::kResolvePossiblyDirectEval, callee_for_eval, 6)
         .StoreAccumulatorInRegister(callee);
   }
 
@@ -2739,13 +2859,12 @@
     }
   }
 
-  // Convert old value into a number.
-  builder()->CastAccumulatorToNumber();
-
   // Save result for postfix expressions.
   if (is_postfix) {
     old_value = register_allocator()->outer()->NewRegister();
-    builder()->StoreAccumulatorInRegister(old_value);
+
+    // Convert old value into a number before saving it.
+    builder()->CastAccumulatorToNumber().StoreAccumulatorInRegister(old_value);
   }
 
   // Perform +1/-1 operation.
diff --git a/src/interpreter/bytecode-generator.h b/src/interpreter/bytecode-generator.h
index 4ef1738..0dcc9be 100644
--- a/src/interpreter/bytecode-generator.h
+++ b/src/interpreter/bytecode-generator.h
@@ -11,15 +11,18 @@
 
 namespace v8 {
 namespace internal {
+
+class CompilationInfo;
+
 namespace interpreter {
 
 class LoopBuilder;
 
 class BytecodeGenerator final : public AstVisitor {
  public:
-  BytecodeGenerator(Isolate* isolate, Zone* zone);
+  explicit BytecodeGenerator(CompilationInfo* info);
 
-  Handle<BytecodeArray> MakeBytecode(CompilationInfo* info);
+  Handle<BytecodeArray> MakeBytecode();
 
 #define DECLARE_VISIT(type) void Visit##type(type* node) override;
   AST_NODE_LIST(DECLARE_VISIT)
@@ -109,6 +112,13 @@
   void BuildHoleCheckForVariableLoad(VariableMode mode, Handle<String> name);
   void BuildHoleCheckForVariableAssignment(Variable* variable, Token::Value op);
 
+  // Build jump to targets[value], where
+  // start_index <= value < start_index + size.
+  void BuildIndexedJump(Register value, size_t start_index, size_t size,
+                        ZoneVector<BytecodeLabel>& targets);
+
+  void VisitGeneratorPrologue();
+
   void VisitArgumentsObject(Variable* variable);
   void VisitRestArgumentsArray(Variable* rest);
   void VisitCallSuper(Call* call);
@@ -133,7 +143,9 @@
                                   Register value_out);
   void VisitForInAssignment(Expression* expr, FeedbackVectorSlot slot);
 
-  // Visit the body of a loop iteration.
+  // Visit the header/body of a loop iteration.
+  void VisitIterationHeader(IterationStatement* stmt,
+                            LoopBuilder* loop_builder);
   void VisitIterationBody(IterationStatement* stmt, LoopBuilder* loop_builder);
 
   // Visit a statement and switch scopes, the context is in the accumulator.
@@ -159,16 +171,11 @@
   template <size_t N>
   void InitializeWithConsecutiveRegisters(Register (&registers)[N]);
 
-  inline void set_builder(BytecodeArrayBuilder* builder) { builder_ = builder; }
   inline BytecodeArrayBuilder* builder() const { return builder_; }
-
   inline Isolate* isolate() const { return isolate_; }
   inline Zone* zone() const { return zone_; }
-
   inline Scope* scope() const { return scope_; }
-  inline void set_scope(Scope* scope) { scope_ = scope; }
   inline CompilationInfo* info() const { return info_; }
-  inline void set_info(CompilationInfo* info) { info_ = info; }
 
   inline ControlScope* execution_control() const { return execution_control_; }
   inline void set_execution_control(ControlScope* scope) {
@@ -204,6 +211,8 @@
   ContextScope* execution_context_;
   ExpressionResultScope* execution_result_;
   RegisterAllocationScope* register_allocator_;
+  ZoneVector<BytecodeLabel> generator_resume_points_;
+  Register generator_state_;
   int try_catch_nesting_level_;
   int try_finally_nesting_level_;
 };
diff --git a/src/interpreter/bytecode-peephole-optimizer.cc b/src/interpreter/bytecode-peephole-optimizer.cc
new file mode 100644
index 0000000..803fc23
--- /dev/null
+++ b/src/interpreter/bytecode-peephole-optimizer.cc
@@ -0,0 +1,178 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/interpreter/bytecode-peephole-optimizer.h"
+
+#include "src/interpreter/constant-array-builder.h"
+#include "src/objects-inl.h"
+#include "src/objects.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+BytecodePeepholeOptimizer::BytecodePeepholeOptimizer(
+    ConstantArrayBuilder* constant_array_builder,
+    BytecodePipelineStage* next_stage)
+    : constant_array_builder_(constant_array_builder),
+      next_stage_(next_stage),
+      last_is_discardable_(false) {
+  InvalidateLast();
+}
+
+void BytecodePeepholeOptimizer::InvalidateLast() {
+  last_.set_bytecode(Bytecode::kIllegal);
+}
+
+bool BytecodePeepholeOptimizer::LastIsValid() const {
+  return last_.bytecode() != Bytecode::kIllegal;
+}
+
+void BytecodePeepholeOptimizer::SetLast(const BytecodeNode* const node) {
+  last_.Clone(node);
+  last_is_discardable_ = true;
+}
+
+// override
+size_t BytecodePeepholeOptimizer::FlushForOffset() {
+  size_t buffered_size = next_stage_->FlushForOffset();
+  if (LastIsValid()) {
+    if (last_.bytecode() == Bytecode::kNop &&
+        !last_.source_info().is_statement()) {
+      // The Nop can be dropped as it doesn't have a statement
+      // position for the debugger and doesn't have any effects by
+      // definition.
+      InvalidateLast();
+    } else {
+      buffered_size += last_.Size();
+      last_is_discardable_ = false;
+    }
+  }
+  return buffered_size;
+}
+
+// override
+void BytecodePeepholeOptimizer::FlushBasicBlock() {
+  if (LastIsValid()) {
+    next_stage_->Write(&last_);
+    InvalidateLast();
+  }
+  next_stage_->FlushBasicBlock();
+}
+
+// override
+void BytecodePeepholeOptimizer::Write(BytecodeNode* node) {
+  // Attempt optimization if there is an earlier node to optimize with.
+  if (LastIsValid()) {
+    node = Optimize(node);
+    // Only output the last node if it wasn't invalidated by the optimization.
+    if (LastIsValid()) {
+      next_stage_->Write(&last_);
+      InvalidateLast();
+    }
+  }
+
+  if (node != nullptr) {
+    SetLast(node);
+  }
+}
+
+Handle<Object> BytecodePeepholeOptimizer::GetConstantForIndexOperand(
+    const BytecodeNode* const node, int index) const {
+  DCHECK_LE(index, node->operand_count());
+  DCHECK_EQ(Bytecodes::GetOperandType(node->bytecode(), 0), OperandType::kIdx);
+  uint32_t index_operand = node->operand(0);
+  return constant_array_builder_->At(index_operand);
+}
+
+bool BytecodePeepholeOptimizer::LastBytecodePutsNameInAccumulator() const {
+  DCHECK(LastIsValid());
+  return (last_.bytecode() == Bytecode::kTypeOf ||
+          last_.bytecode() == Bytecode::kToName ||
+          (last_.bytecode() == Bytecode::kLdaConstant &&
+           GetConstantForIndexOperand(&last_, 0)->IsName()));
+}
+
+void BytecodePeepholeOptimizer::UpdateCurrentBytecode(BytecodeNode* current) {
+  if (Bytecodes::IsJumpIfToBoolean(current->bytecode()) &&
+      Bytecodes::WritesBooleanToAccumulator(last_.bytecode())) {
+    // Conditional jumps with boolean conditions are emitted in
+    // ToBoolean form by the bytecode array builder,
+    // i.e. JumpIfToBooleanTrue rather JumpIfTrue. The ToBoolean element
+    // can be removed if the previous bytecode put a boolean value in
+    // the accumulator.
+    Bytecode jump = Bytecodes::GetJumpWithoutToBoolean(current->bytecode());
+    current->set_bytecode(jump, current->operand(0), current->operand_scale());
+  } else if (current->bytecode() == Bytecode::kToBooleanLogicalNot &&
+             Bytecodes::WritesBooleanToAccumulator(last_.bytecode())) {
+    // Logical-nots are emitted in ToBoolean form by the bytecode array
+    // builder, The ToBoolean element can be removed if the previous bytecode
+    // put a boolean value in the accumulator.
+    current->set_bytecode(Bytecode::kLogicalNot);
+  }
+}
+
+bool BytecodePeepholeOptimizer::CanElideCurrent(
+    const BytecodeNode* const current) const {
+  if (Bytecodes::IsLdarOrStar(last_.bytecode()) &&
+      Bytecodes::IsLdarOrStar(current->bytecode()) &&
+      current->operand(0) == last_.operand(0)) {
+    // Ldar and Star make the accumulator and register hold equivalent
+    // values. Only the first bytecode is needed if there's a sequence
+    // of back-to-back Ldar and Star bytecodes with the same operand.
+    return true;
+  } else if (current->bytecode() == Bytecode::kToName &&
+             LastBytecodePutsNameInAccumulator()) {
+    // If the previous bytecode ensured a name was in the accumulator,
+    // the type coercion ToName() can be elided.
+    return true;
+  } else {
+    // Additional candidates for eliding current:
+    // (i) ToNumber if the last puts a number in the accumulator.
+    return false;
+  }
+}
+
+bool BytecodePeepholeOptimizer::CanElideLast(
+    const BytecodeNode* const current) const {
+  if (!last_is_discardable_) {
+    return false;
+  }
+
+  if (last_.bytecode() == Bytecode::kNop) {
+    // Nop are placeholders for holding source position information
+    // and can be elided.
+    return true;
+  } else if (Bytecodes::IsAccumulatorLoadWithoutEffects(current->bytecode()) &&
+             Bytecodes::IsAccumulatorLoadWithoutEffects(last_.bytecode())) {
+    // The accumulator is invisible to the debugger. If there is a sequence of
+    // consecutive accumulator loads (that don't have side effects) then only
+    // the final load is potentially visible.
+    return true;
+  } else {
+    return false;
+  }
+}
+
+BytecodeNode* BytecodePeepholeOptimizer::Optimize(BytecodeNode* current) {
+  UpdateCurrentBytecode(current);
+
+  if (CanElideCurrent(current)) {
+    if (current->source_info().is_valid()) {
+      current->set_bytecode(Bytecode::kNop);
+    } else {
+      current = nullptr;
+    }
+  } else if (CanElideLast(current)) {
+    if (last_.source_info().is_valid()) {
+      current->source_info().Update(last_.source_info());
+    }
+    InvalidateLast();
+  }
+  return current;
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/src/interpreter/bytecode-peephole-optimizer.h b/src/interpreter/bytecode-peephole-optimizer.h
new file mode 100644
index 0000000..1981395
--- /dev/null
+++ b/src/interpreter/bytecode-peephole-optimizer.h
@@ -0,0 +1,57 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_INTERPRETER_BYTECODE_PEEPHOLE_OPTIMIZER_H_
+#define V8_INTERPRETER_BYTECODE_PEEPHOLE_OPTIMIZER_H_
+
+#include "src/interpreter/bytecode-pipeline.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+class ConstantArrayBuilder;
+
+// An optimization stage for performing peephole optimizations on
+// generated bytecode. The optimizer may buffer one bytecode
+// internally.
+class BytecodePeepholeOptimizer final : public BytecodePipelineStage,
+                                        public ZoneObject {
+ public:
+  BytecodePeepholeOptimizer(ConstantArrayBuilder* constant_array_builder,
+                            BytecodePipelineStage* next_stage);
+
+  void Write(BytecodeNode* node) override;
+  size_t FlushForOffset() override;
+  void FlushBasicBlock() override;
+
+ private:
+  BytecodeNode* Optimize(BytecodeNode* current);
+
+  void UpdateCurrentBytecode(BytecodeNode* const current);
+  bool CanElideCurrent(const BytecodeNode* const current) const;
+  bool CanElideLast(const BytecodeNode* const current) const;
+
+  void InvalidateLast();
+  bool LastIsValid() const;
+  void SetLast(const BytecodeNode* const node);
+
+  bool LastBytecodePutsNameInAccumulator() const;
+
+  Handle<Object> GetConstantForIndexOperand(const BytecodeNode* const node,
+                                            int index) const;
+
+  ConstantArrayBuilder* constant_array_builder_;
+  BytecodePipelineStage* next_stage_;
+  BytecodeNode last_;
+  bool last_is_discardable_;
+
+  DISALLOW_COPY_AND_ASSIGN(BytecodePeepholeOptimizer);
+};
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_INTERPRETER_BYTECODE_PEEPHOLE_OPTIMIZER_H_
diff --git a/src/interpreter/bytecode-pipeline.cc b/src/interpreter/bytecode-pipeline.cc
new file mode 100644
index 0000000..7bfb815
--- /dev/null
+++ b/src/interpreter/bytecode-pipeline.cc
@@ -0,0 +1,162 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/interpreter/bytecode-pipeline.h"
+
+#include <iomanip>
+#include "src/interpreter/source-position-table.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+void BytecodeSourceInfo::Update(const BytecodeSourceInfo& entry) {
+  DCHECK(entry.is_valid());
+  if (!is_valid() || (entry.is_statement() && !is_statement()) ||
+      (entry.is_statement() && is_statement() &&
+       entry.source_position() > source_position())) {
+    // Position is updated if any of the following conditions are met:
+    //   (1) there is no existing position.
+    //   (2) the incoming position is a statement and the current position
+    //       is an expression.
+    //   (3) the existing position is a statement and the incoming
+    //       statement has a later source position.
+    // Condition 3 is needed for the first statement in a function which
+    // may end up with later statement positions being added during bytecode
+    // generation.
+    source_position_ = entry.source_position_;
+    is_statement_ = entry.is_statement_;
+  }
+}
+
+BytecodeNode::BytecodeNode(Bytecode bytecode) {
+  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 0);
+  bytecode_ = bytecode;
+  operand_scale_ = OperandScale::kSingle;
+}
+
+BytecodeNode::BytecodeNode(Bytecode bytecode, uint32_t operand0,
+                           OperandScale operand_scale) {
+  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 1);
+  bytecode_ = bytecode;
+  operands_[0] = operand0;
+  operand_scale_ = operand_scale;
+}
+
+BytecodeNode::BytecodeNode(Bytecode bytecode, uint32_t operand0,
+                           uint32_t operand1, OperandScale operand_scale) {
+  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 2);
+  bytecode_ = bytecode;
+  operands_[0] = operand0;
+  operands_[1] = operand1;
+  operand_scale_ = operand_scale;
+}
+
+BytecodeNode::BytecodeNode(Bytecode bytecode, uint32_t operand0,
+                           uint32_t operand1, uint32_t operand2,
+                           OperandScale operand_scale) {
+  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 3);
+  bytecode_ = bytecode;
+  operands_[0] = operand0;
+  operands_[1] = operand1;
+  operands_[2] = operand2;
+  operand_scale_ = operand_scale;
+}
+
+BytecodeNode::BytecodeNode(Bytecode bytecode, uint32_t operand0,
+                           uint32_t operand1, uint32_t operand2,
+                           uint32_t operand3, OperandScale operand_scale) {
+  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 4);
+  bytecode_ = bytecode;
+  operands_[0] = operand0;
+  operands_[1] = operand1;
+  operands_[2] = operand2;
+  operands_[3] = operand3;
+  operand_scale_ = operand_scale;
+}
+
+void BytecodeNode::set_bytecode(Bytecode bytecode) {
+  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 0);
+  bytecode_ = bytecode;
+  operand_scale_ = OperandScale::kSingle;
+}
+
+void BytecodeNode::set_bytecode(Bytecode bytecode, uint32_t operand0,
+                                OperandScale operand_scale) {
+  DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 1);
+  bytecode_ = bytecode;
+  operands_[0] = operand0;
+  operand_scale_ = operand_scale;
+}
+
+size_t BytecodeNode::Size() const {
+  size_t size = Bytecodes::Size(bytecode_, operand_scale_);
+  if (Bytecodes::OperandScaleRequiresPrefixBytecode(operand_scale_)) {
+    size += 1;
+  }
+  return size;
+}
+
+void BytecodeNode::Print(std::ostream& os) const {
+#ifdef DEBUG
+  std::ios saved_state(nullptr);
+  saved_state.copyfmt(os);
+
+  os << Bytecodes::ToString(bytecode_);
+  if (Bytecodes::OperandScaleRequiresPrefixBytecode(operand_scale_)) {
+    Bytecode scale_prefix =
+        Bytecodes::OperandScaleToPrefixBytecode(operand_scale_);
+    os << '.' << Bytecodes::ToString(scale_prefix);
+  }
+
+  for (int i = 0; i < operand_count(); ++i) {
+    os << ' ' << std::setw(8) << std::setfill('0') << std::hex << operands_[i];
+  }
+  os.copyfmt(saved_state);
+
+  if (source_info_.is_valid()) {
+    os << source_info_;
+  }
+  os << '\n';
+#else
+  os << static_cast<const void*>(this);
+#endif  // DEBUG
+}
+
+void BytecodeNode::Clone(const BytecodeNode* const other) {
+  memcpy(this, other, sizeof(*other));
+}
+
+bool BytecodeNode::operator==(const BytecodeNode& other) const {
+  if (this == &other) {
+    return true;
+  } else if (this->bytecode() != other.bytecode() ||
+             this->source_info() != other.source_info()) {
+    return false;
+  } else {
+    for (int i = 0; i < this->operand_count(); ++i) {
+      if (this->operand(i) != other.operand(i)) {
+        return false;
+      }
+    }
+  }
+  return true;
+}
+
+std::ostream& operator<<(std::ostream& os, const BytecodeNode& node) {
+  node.Print(os);
+  return os;
+}
+
+std::ostream& operator<<(std::ostream& os, const BytecodeSourceInfo& info) {
+  if (info.is_valid()) {
+    char description = info.is_statement() ? 'S' : 'E';
+    os << info.source_position() << ' ' << description << '>';
+  }
+  return os;
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/src/interpreter/bytecode-pipeline.h b/src/interpreter/bytecode-pipeline.h
new file mode 100644
index 0000000..ade712c
--- /dev/null
+++ b/src/interpreter/bytecode-pipeline.h
@@ -0,0 +1,138 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_INTERPRETER_BYTECODE_PIPELINE_H_
+#define V8_INTERPRETER_BYTECODE_PIPELINE_H_
+
+#include "src/interpreter/bytecode-register-allocator.h"
+#include "src/interpreter/bytecodes.h"
+#include "src/zone-containers.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+class BytecodeNode;
+class BytecodeSourceInfo;
+
+// Interface for bytecode pipeline stages.
+class BytecodePipelineStage {
+ public:
+  virtual ~BytecodePipelineStage() {}
+
+  // Write bytecode node |node| into pipeline. The node is only valid
+  // for the duration of the call. Callee's should clone it if
+  // deferring Write() to the next stage.
+  virtual void Write(BytecodeNode* node) = 0;
+
+  // Flush state for bytecode array offset calculation. Returns the
+  // current size of bytecode array.
+  virtual size_t FlushForOffset() = 0;
+
+  // Flush state to terminate basic block.
+  virtual void FlushBasicBlock() = 0;
+};
+
+// Source code position information.
+class BytecodeSourceInfo final {
+ public:
+  static const int kUninitializedPosition = -1;
+
+  BytecodeSourceInfo(int position = kUninitializedPosition,
+                     bool is_statement = false)
+      : source_position_(position), is_statement_(is_statement) {}
+
+  // Combine later source info with current.
+  void Update(const BytecodeSourceInfo& entry);
+
+  int source_position() const {
+    DCHECK(is_valid());
+    return source_position_;
+  }
+
+  bool is_statement() const { return is_valid() && is_statement_; }
+
+  bool is_valid() const { return source_position_ != kUninitializedPosition; }
+  void set_invalid() { source_position_ = kUninitializedPosition; }
+
+  bool operator==(const BytecodeSourceInfo& other) const {
+    return source_position_ == other.source_position_ &&
+           is_statement_ == other.is_statement_;
+  }
+  bool operator!=(const BytecodeSourceInfo& other) const {
+    return source_position_ != other.source_position_ ||
+           is_statement_ != other.is_statement_;
+  }
+
+ private:
+  int source_position_;
+  bool is_statement_;
+
+  DISALLOW_COPY_AND_ASSIGN(BytecodeSourceInfo);
+};
+
+// A container for a generated bytecode, it's operands, and source information.
+// These must be allocated by a BytecodeNodeAllocator instance.
+class BytecodeNode final : ZoneObject {
+ public:
+  explicit BytecodeNode(Bytecode bytecode = Bytecode::kIllegal);
+  BytecodeNode(Bytecode bytecode, uint32_t operand0,
+               OperandScale operand_scale);
+  BytecodeNode(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
+               OperandScale operand_scale);
+  BytecodeNode(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
+               uint32_t operand2, OperandScale operand_scale);
+  BytecodeNode(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
+               uint32_t operand2, uint32_t operand3,
+               OperandScale operand_scale);
+
+  void set_bytecode(Bytecode bytecode);
+  void set_bytecode(Bytecode bytecode, uint32_t operand0,
+                    OperandScale operand_scale);
+
+  // Clone |other|.
+  void Clone(const BytecodeNode* const other);
+
+  // Print to stream |os|.
+  void Print(std::ostream& os) const;
+
+  // Return the size when this node is serialized to a bytecode array.
+  size_t Size() const;
+
+  Bytecode bytecode() const { return bytecode_; }
+
+  uint32_t operand(int i) const {
+    DCHECK_LT(i, operand_count());
+    return operands_[i];
+  }
+  uint32_t* operands() { return operands_; }
+  const uint32_t* operands() const { return operands_; }
+
+  int operand_count() const { return Bytecodes::NumberOfOperands(bytecode_); }
+  OperandScale operand_scale() const { return operand_scale_; }
+
+  const BytecodeSourceInfo& source_info() const { return source_info_; }
+  BytecodeSourceInfo& source_info() { return source_info_; }
+
+  bool operator==(const BytecodeNode& other) const;
+  bool operator!=(const BytecodeNode& other) const { return !(*this == other); }
+
+ private:
+  static const int kInvalidPosition = kMinInt;
+  static const size_t kMaxOperands = 4;
+
+  Bytecode bytecode_;
+  uint32_t operands_[kMaxOperands];
+  OperandScale operand_scale_;
+  BytecodeSourceInfo source_info_;
+};
+
+std::ostream& operator<<(std::ostream& os, const BytecodeSourceInfo& info);
+std::ostream& operator<<(std::ostream& os, const BytecodeNode& node);
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_INTERPRETER_BYTECODE_PIPELINE_H_
diff --git a/src/interpreter/bytecode-register-allocator.h b/src/interpreter/bytecode-register-allocator.h
index 696a3b1..a4f6845 100644
--- a/src/interpreter/bytecode-register-allocator.h
+++ b/src/interpreter/bytecode-register-allocator.h
@@ -65,7 +65,7 @@
   DISALLOW_COPY_AND_ASSIGN(TemporaryRegisterAllocator);
 };
 
-// A class than allows the instantiator to allocate temporary registers that are
+// A class that allows the instantiator to allocate temporary registers that are
 // cleaned up when scope is closed.
 class BytecodeRegisterAllocator final {
  public:
diff --git a/src/interpreter/bytecode-traits.h b/src/interpreter/bytecode-traits.h
index c724827..e7d1432 100644
--- a/src/interpreter/bytecode-traits.h
+++ b/src/interpreter/bytecode-traits.h
@@ -41,6 +41,28 @@
 OPERAND_TYPE_LIST(DECLARE_OPERAND_TYPE_TRAITS)
 #undef DECLARE_OPERAND_TYPE_TRAITS
 
+template <OperandType operand_type, OperandScale operand_scale>
+struct OperandScaler {
+  template <bool, OperandSize, OperandScale>
+  struct Helper {
+    static const int kSize = 0;
+  };
+  template <OperandSize size, OperandScale scale>
+  struct Helper<false, size, scale> {
+    static const int kSize = static_cast<int>(size);
+  };
+  template <OperandSize size, OperandScale scale>
+  struct Helper<true, size, scale> {
+    static const int kSize = static_cast<int>(size) * static_cast<int>(scale);
+  };
+
+  static const int kSize =
+      Helper<OperandTraits<operand_type>::TypeInfo::kIsScalable,
+             OperandTraits<operand_type>::TypeInfo::kUnscaledSize,
+             operand_scale>::kSize;
+  static const OperandSize kOperandSize = static_cast<OperandSize>(kSize);
+};
+
 template <OperandType>
 struct RegisterOperandTraits {
   static const int kIsRegisterOperand = 0;
@@ -61,11 +83,30 @@
           OperandType operand_1, OperandType operand_2, OperandType operand_3>
 struct BytecodeTraits<accumulator_use, operand_0, operand_1, operand_2,
                       operand_3> {
-  static OperandType GetOperandType(int i) {
-    DCHECK(0 <= i && i < kOperandCount);
-    const OperandType kOperands[] = {operand_0, operand_1, operand_2,
-                                     operand_3};
-    return kOperands[i];
+  static const OperandType* GetOperandTypes() {
+    static const OperandType operand_types[] = {operand_0, operand_1, operand_2,
+                                                operand_3, OperandType::kNone};
+    return operand_types;
+  }
+
+  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
+    switch (operand_scale) {
+#define CASE(Name, _)                                                  \
+  case OperandScale::k##Name: {                                        \
+    static const OperandSize kOperandSizes[] = {                       \
+        OperandScaler<operand_0, OperandScale::k##Name>::kOperandSize, \
+        OperandScaler<operand_1, OperandScale::k##Name>::kOperandSize, \
+        OperandScaler<operand_2, OperandScale::k##Name>::kOperandSize, \
+        OperandScaler<operand_3, OperandScale::k##Name>::kOperandSize, \
+    };                                                                 \
+    DCHECK_LT(static_cast<size_t>(i), arraysize(kOperandSizes));       \
+    return kOperandSizes[i];                                           \
+  }
+      OPERAND_SCALE_LIST(CASE)
+#undef CASE
+    }
+    UNREACHABLE();
+    return OperandSize::kNone;
   }
 
   template <OperandType ot>
@@ -98,10 +139,29 @@
 template <AccumulatorUse accumulator_use, OperandType operand_0,
           OperandType operand_1, OperandType operand_2>
 struct BytecodeTraits<accumulator_use, operand_0, operand_1, operand_2> {
-  static inline OperandType GetOperandType(int i) {
-    DCHECK(0 <= i && i <= 2);
-    const OperandType kOperands[] = {operand_0, operand_1, operand_2};
-    return kOperands[i];
+  static const OperandType* GetOperandTypes() {
+    static const OperandType operand_types[] = {operand_0, operand_1, operand_2,
+                                                OperandType::kNone};
+    return operand_types;
+  }
+
+  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
+    switch (operand_scale) {
+#define CASE(Name, _)                                                  \
+  case OperandScale::k##Name: {                                        \
+    static const OperandSize kOperandSizes[] = {                       \
+        OperandScaler<operand_0, OperandScale::k##Name>::kOperandSize, \
+        OperandScaler<operand_1, OperandScale::k##Name>::kOperandSize, \
+        OperandScaler<operand_2, OperandScale::k##Name>::kOperandSize, \
+    };                                                                 \
+    DCHECK_LT(static_cast<size_t>(i), arraysize(kOperandSizes));       \
+    return kOperandSizes[i];                                           \
+  }
+      OPERAND_SCALE_LIST(CASE)
+#undef CASE
+    }
+    UNREACHABLE();
+    return OperandSize::kNone;
   }
 
   template <OperandType ot>
@@ -130,10 +190,28 @@
 template <AccumulatorUse accumulator_use, OperandType operand_0,
           OperandType operand_1>
 struct BytecodeTraits<accumulator_use, operand_0, operand_1> {
-  static inline OperandType GetOperandType(int i) {
-    DCHECK(0 <= i && i < kOperandCount);
-    const OperandType kOperands[] = {operand_0, operand_1};
-    return kOperands[i];
+  static const OperandType* GetOperandTypes() {
+    static const OperandType operand_types[] = {operand_0, operand_1,
+                                                OperandType::kNone};
+    return operand_types;
+  }
+
+  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
+    switch (operand_scale) {
+#define CASE(Name, _)                                                  \
+  case OperandScale::k##Name: {                                        \
+    static const OperandSize kOperandSizes[] = {                       \
+        OperandScaler<operand_0, OperandScale::k##Name>::kOperandSize, \
+        OperandScaler<operand_1, OperandScale::k##Name>::kOperandSize, \
+    };                                                                 \
+    DCHECK_LT(static_cast<size_t>(i), arraysize(kOperandSizes));       \
+    return kOperandSizes[i];                                           \
+  }
+      OPERAND_SCALE_LIST(CASE)
+#undef CASE
+    }
+    UNREACHABLE();
+    return OperandSize::kNone;
   }
 
   template <OperandType ot>
@@ -158,9 +236,26 @@
 
 template <AccumulatorUse accumulator_use, OperandType operand_0>
 struct BytecodeTraits<accumulator_use, operand_0> {
-  static inline OperandType GetOperandType(int i) {
-    DCHECK(i == 0);
-    return operand_0;
+  static const OperandType* GetOperandTypes() {
+    static const OperandType operand_types[] = {operand_0, OperandType::kNone};
+    return operand_types;
+  }
+
+  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
+    switch (operand_scale) {
+#define CASE(Name, _)                                                  \
+  case OperandScale::k##Name: {                                        \
+    static const OperandSize kOperandSizes[] = {                       \
+        OperandScaler<operand_0, OperandScale::k##Name>::kOperandSize, \
+    };                                                                 \
+    DCHECK_LT(static_cast<size_t>(i), arraysize(kOperandSizes));       \
+    return kOperandSizes[i];                                           \
+  }
+      OPERAND_SCALE_LIST(CASE)
+#undef CASE
+    }
+    UNREACHABLE();
+    return OperandSize::kNone;
   }
 
   template <OperandType ot>
@@ -182,9 +277,14 @@
 
 template <AccumulatorUse accumulator_use>
 struct BytecodeTraits<accumulator_use> {
-  static inline OperandType GetOperandType(int i) {
+  static const OperandType* GetOperandTypes() {
+    static const OperandType operand_types[] = {OperandType::kNone};
+    return operand_types;
+  }
+
+  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
     UNREACHABLE();
-    return OperandType::kNone;
+    return OperandSize::kNone;
   }
 
   template <OperandType ot>
@@ -200,37 +300,22 @@
   static const int kRegisterOperandBitmap = 0;
 };
 
-template <bool>
-struct OperandScaler {
-  static int Multiply(int size, int operand_scale) { return 0; }
-};
-
-template <>
-struct OperandScaler<false> {
-  static int Multiply(int size, int operand_scale) { return size; }
-};
-
-template <>
-struct OperandScaler<true> {
-  static int Multiply(int size, int operand_scale) {
-    return size * operand_scale;
-  }
-};
-
 static OperandSize ScaledOperandSize(OperandType operand_type,
                                      OperandScale operand_scale) {
+  STATIC_ASSERT(static_cast<int>(OperandScale::kQuadruple) == 4 &&
+                OperandScale::kLast == OperandScale::kQuadruple);
+  int index = static_cast<int>(operand_scale) >> 1;
   switch (operand_type) {
-#define CASE(Name, TypeInfo)                                                   \
-  case OperandType::k##Name: {                                                 \
-    OperandSize base_size = OperandTypeInfoTraits<TypeInfo>::kUnscaledSize;    \
-    int size =                                                                 \
-        OperandScaler<OperandTypeInfoTraits<TypeInfo>::kIsScalable>::Multiply( \
-            static_cast<int>(base_size), static_cast<int>(operand_scale));     \
-    OperandSize operand_size = static_cast<OperandSize>(size);                 \
-    DCHECK(operand_size == OperandSize::kByte ||                               \
-           operand_size == OperandSize::kShort ||                              \
-           operand_size == OperandSize::kQuad);                                \
-    return operand_size;                                                       \
+#define CASE(Name, TypeInfo)                                    \
+  case OperandType::k##Name: {                                  \
+    static const OperandSize kOperandSizes[] = {                \
+        OperandScaler<OperandType::k##Name,                     \
+                      OperandScale::kSingle>::kOperandSize,     \
+        OperandScaler<OperandType::k##Name,                     \
+                      OperandScale::kDouble>::kOperandSize,     \
+        OperandScaler<OperandType::k##Name,                     \
+                      OperandScale::kQuadruple>::kOperandSize}; \
+    return kOperandSizes[index];                                \
   }
     OPERAND_TYPE_LIST(CASE)
 #undef CASE
diff --git a/src/interpreter/bytecodes.cc b/src/interpreter/bytecodes.cc
index fd27f39..5a67847 100644
--- a/src/interpreter/bytecodes.cc
+++ b/src/interpreter/bytecodes.cc
@@ -74,15 +74,13 @@
 // static
 const char* Bytecodes::OperandScaleToString(OperandScale operand_scale) {
   switch (operand_scale) {
-    case OperandScale::kSingle:
-      return "Single";
-    case OperandScale::kDouble:
-      return "Double";
-    case OperandScale::kQuadruple:
-      return "Quadruple";
-    case OperandScale::kInvalid:
-      UNREACHABLE();
+#define CASE(Name, _)         \
+  case OperandScale::k##Name: \
+    return #Name;
+    OPERAND_SCALE_LIST(CASE)
+#undef CASE
   }
+  UNREACHABLE();
   return "";
 }
 
@@ -152,6 +150,11 @@
 
 
 // static
+size_t Bytecodes::ReturnCount(Bytecode bytecode) {
+  return bytecode == Bytecode::kReturn ? 1 : 0;
+}
+
+// static
 int Bytecodes::NumberOfOperands(Bytecode bytecode) {
   DCHECK(bytecode <= Bytecode::kLast);
   switch (bytecode) {
@@ -241,24 +244,81 @@
 }
 
 // static
+bool Bytecodes::WritesBooleanToAccumulator(Bytecode bytecode) {
+  switch (bytecode) {
+    case Bytecode::kLdaTrue:
+    case Bytecode::kLdaFalse:
+    case Bytecode::kToBooleanLogicalNot:
+    case Bytecode::kLogicalNot:
+    case Bytecode::kTestEqual:
+    case Bytecode::kTestNotEqual:
+    case Bytecode::kTestEqualStrict:
+    case Bytecode::kTestLessThan:
+    case Bytecode::kTestLessThanOrEqual:
+    case Bytecode::kTestGreaterThan:
+    case Bytecode::kTestGreaterThanOrEqual:
+    case Bytecode::kTestInstanceOf:
+    case Bytecode::kTestIn:
+    case Bytecode::kForInDone:
+      return true;
+    default:
+      return false;
+  }
+}
+
+// static
+bool Bytecodes::IsAccumulatorLoadWithoutEffects(Bytecode bytecode) {
+  switch (bytecode) {
+    case Bytecode::kLdaZero:
+    case Bytecode::kLdaSmi:
+    case Bytecode::kLdaUndefined:
+    case Bytecode::kLdaNull:
+    case Bytecode::kLdaTheHole:
+    case Bytecode::kLdaTrue:
+    case Bytecode::kLdaFalse:
+    case Bytecode::kLdaConstant:
+    case Bytecode::kLdar:
+      return true;
+    default:
+      return false;
+  }
+}
+
+// static
 OperandType Bytecodes::GetOperandType(Bytecode bytecode, int i) {
+  DCHECK_LE(bytecode, Bytecode::kLast);
+  DCHECK_LT(i, NumberOfOperands(bytecode));
+  DCHECK_GE(i, 0);
+  return GetOperandTypes(bytecode)[i];
+}
+
+// static
+const OperandType* Bytecodes::GetOperandTypes(Bytecode bytecode) {
   DCHECK(bytecode <= Bytecode::kLast);
   switch (bytecode) {
 #define CASE(Name, ...)   \
   case Bytecode::k##Name: \
-    return BytecodeTraits<__VA_ARGS__>::GetOperandType(i);
+    return BytecodeTraits<__VA_ARGS__>::GetOperandTypes();
     BYTECODE_LIST(CASE)
 #undef CASE
   }
   UNREACHABLE();
-  return OperandType::kNone;
+  return nullptr;
 }
 
 // static
 OperandSize Bytecodes::GetOperandSize(Bytecode bytecode, int i,
                                       OperandScale operand_scale) {
-  OperandType op_type = GetOperandType(bytecode, i);
-  return ScaledOperandSize(op_type, operand_scale);
+  DCHECK(bytecode <= Bytecode::kLast);
+  switch (bytecode) {
+#define CASE(Name, ...)   \
+  case Bytecode::k##Name: \
+    return BytecodeTraits<__VA_ARGS__>::GetOperandSize(i, operand_scale);
+    BYTECODE_LIST(CASE)
+#undef CASE
+  }
+  UNREACHABLE();
+  return OperandSize::kNone;
 }
 
 // static
@@ -279,6 +339,7 @@
 // static
 int Bytecodes::GetOperandOffset(Bytecode bytecode, int i,
                                 OperandScale operand_scale) {
+  DCHECK_LT(i, Bytecodes::NumberOfOperands(bytecode));
   // TODO(oth): restore this to a statically determined constant.
   int offset = 1;
   for (int operand_index = 0; operand_index < i; ++operand_index) {
@@ -343,6 +404,31 @@
   return IsJumpImmediate(bytecode) || IsJumpConstant(bytecode);
 }
 
+// static
+bool Bytecodes::IsJumpIfToBoolean(Bytecode bytecode) {
+  return bytecode == Bytecode::kJumpIfToBooleanTrue ||
+         bytecode == Bytecode::kJumpIfToBooleanFalse ||
+         bytecode == Bytecode::kJumpIfToBooleanTrueConstant ||
+         bytecode == Bytecode::kJumpIfToBooleanFalseConstant;
+}
+
+// static
+Bytecode Bytecodes::GetJumpWithoutToBoolean(Bytecode bytecode) {
+  switch (bytecode) {
+    case Bytecode::kJumpIfToBooleanTrue:
+      return Bytecode::kJumpIfTrue;
+    case Bytecode::kJumpIfToBooleanFalse:
+      return Bytecode::kJumpIfFalse;
+    case Bytecode::kJumpIfToBooleanTrueConstant:
+      return Bytecode::kJumpIfTrueConstant;
+    case Bytecode::kJumpIfToBooleanFalseConstant:
+      return Bytecode::kJumpIfFalseConstant;
+    default:
+      break;
+  }
+  UNREACHABLE();
+  return Bytecode::kIllegal;
+}
 
 // static
 bool Bytecodes::IsCallOrNew(Bytecode bytecode) {
@@ -371,6 +457,11 @@
 }
 
 // static
+bool Bytecodes::IsLdarOrStar(Bytecode bytecode) {
+  return bytecode == Bytecode::kLdar || bytecode == Bytecode::kStar;
+}
+
+// static
 bool Bytecodes::IsBytecodeWithScalableOperands(Bytecode bytecode) {
   switch (bytecode) {
 #define CASE(Name, ...)                              \
@@ -461,6 +552,24 @@
 }
 
 // static
+int Bytecodes::GetNumberOfRegistersRepresentedBy(OperandType operand_type) {
+  switch (operand_type) {
+    case OperandType::kMaybeReg:
+    case OperandType::kReg:
+    case OperandType::kRegOut:
+      return 1;
+    case OperandType::kRegPair:
+    case OperandType::kRegOutPair:
+      return 2;
+    case OperandType::kRegOutTriple:
+      return 3;
+    default:
+      UNREACHABLE();
+  }
+  return 0;
+}
+
+// static
 bool Bytecodes::IsUnsignedOperandType(OperandType operand_type) {
   switch (operand_type) {
 #define CASE(Name, _)        \
@@ -474,10 +583,62 @@
 }
 
 // static
-OperandScale Bytecodes::NextOperandScale(OperandScale operand_scale) {
-  DCHECK(operand_scale >= OperandScale::kSingle &&
-         operand_scale <= OperandScale::kMaxValid);
-  return static_cast<OperandScale>(2 * static_cast<int>(operand_scale));
+OperandSize Bytecodes::SizeForSignedOperand(int value) {
+  if (kMinInt8 <= value && value <= kMaxInt8) {
+    return OperandSize::kByte;
+  } else if (kMinInt16 <= value && value <= kMaxInt16) {
+    return OperandSize::kShort;
+  } else {
+    return OperandSize::kQuad;
+  }
+}
+
+// static
+OperandSize Bytecodes::SizeForUnsignedOperand(int value) {
+  DCHECK_GE(value, 0);
+  if (value <= kMaxUInt8) {
+    return OperandSize::kByte;
+  } else if (value <= kMaxUInt16) {
+    return OperandSize::kShort;
+  } else {
+    return OperandSize::kQuad;
+  }
+}
+
+OperandSize Bytecodes::SizeForUnsignedOperand(size_t value) {
+  if (value <= static_cast<size_t>(kMaxUInt8)) {
+    return OperandSize::kByte;
+  } else if (value <= static_cast<size_t>(kMaxUInt16)) {
+    return OperandSize::kShort;
+  } else if (value <= kMaxUInt32) {
+    return OperandSize::kQuad;
+  } else {
+    UNREACHABLE();
+    return OperandSize::kQuad;
+  }
+}
+
+OperandScale Bytecodes::OperandSizesToScale(OperandSize size0,
+                                            OperandSize size1,
+                                            OperandSize size2,
+                                            OperandSize size3) {
+  OperandSize upper = std::max(size0, size1);
+  OperandSize lower = std::max(size2, size3);
+  OperandSize result = std::max(upper, lower);
+  // Operand sizes have been scaled before calling this function.
+  // Currently all scalable operands are byte sized at
+  // OperandScale::kSingle.
+  STATIC_ASSERT(static_cast<int>(OperandSize::kByte) ==
+                    static_cast<int>(OperandScale::kSingle) &&
+                static_cast<int>(OperandSize::kShort) ==
+                    static_cast<int>(OperandScale::kDouble) &&
+                static_cast<int>(OperandSize::kQuad) ==
+                    static_cast<int>(OperandScale::kQuadruple));
+  OperandScale operand_scale = static_cast<OperandScale>(result);
+  DCHECK(operand_scale == OperandScale::kSingle ||
+         operand_scale == OperandScale::kDouble ||
+         operand_scale == OperandScale::kQuadruple);
+  return operand_scale;
 }
 
 // static
@@ -645,21 +806,29 @@
 }
 
 static const int kLastParamRegisterIndex =
-    -InterpreterFrameConstants::kLastParamFromRegisterPointer / kPointerSize;
+    (InterpreterFrameConstants::kRegisterFileFromFp -
+     InterpreterFrameConstants::kLastParamFromFp) /
+    kPointerSize;
 static const int kFunctionClosureRegisterIndex =
-    -InterpreterFrameConstants::kFunctionFromRegisterPointer / kPointerSize;
+    (InterpreterFrameConstants::kRegisterFileFromFp -
+     StandardFrameConstants::kFunctionOffset) /
+    kPointerSize;
 static const int kCurrentContextRegisterIndex =
-    -InterpreterFrameConstants::kContextFromRegisterPointer / kPointerSize;
+    (InterpreterFrameConstants::kRegisterFileFromFp -
+     StandardFrameConstants::kContextOffset) /
+    kPointerSize;
 static const int kNewTargetRegisterIndex =
-    -InterpreterFrameConstants::kNewTargetFromRegisterPointer / kPointerSize;
-
-bool Register::is_byte_operand() const {
-  return index_ >= -kMaxInt8 && index_ <= -kMinInt8;
-}
-
-bool Register::is_short_operand() const {
-  return index_ >= -kMaxInt16 && index_ <= -kMinInt16;
-}
+    (InterpreterFrameConstants::kRegisterFileFromFp -
+     InterpreterFrameConstants::kNewTargetFromFp) /
+    kPointerSize;
+static const int kBytecodeArrayRegisterIndex =
+    (InterpreterFrameConstants::kRegisterFileFromFp -
+     InterpreterFrameConstants::kBytecodeArrayFromFp) /
+    kPointerSize;
+static const int kBytecodeOffsetRegisterIndex =
+    (InterpreterFrameConstants::kRegisterFileFromFp -
+     InterpreterFrameConstants::kBytecodeOffsetFromFp) /
+    kPointerSize;
 
 Register Register::FromParameterIndex(int index, int parameter_count) {
   DCHECK_GE(index, 0);
@@ -669,40 +838,60 @@
   return Register(register_index);
 }
 
-
 int Register::ToParameterIndex(int parameter_count) const {
   DCHECK(is_parameter());
   return index() - kLastParamRegisterIndex + parameter_count - 1;
 }
 
-
 Register Register::function_closure() {
   return Register(kFunctionClosureRegisterIndex);
 }
 
-
 bool Register::is_function_closure() const {
   return index() == kFunctionClosureRegisterIndex;
 }
 
-
 Register Register::current_context() {
   return Register(kCurrentContextRegisterIndex);
 }
 
-
 bool Register::is_current_context() const {
   return index() == kCurrentContextRegisterIndex;
 }
 
-
 Register Register::new_target() { return Register(kNewTargetRegisterIndex); }
 
-
 bool Register::is_new_target() const {
   return index() == kNewTargetRegisterIndex;
 }
 
+Register Register::bytecode_array() {
+  return Register(kBytecodeArrayRegisterIndex);
+}
+
+bool Register::is_bytecode_array() const {
+  return index() == kBytecodeArrayRegisterIndex;
+}
+
+Register Register::bytecode_offset() {
+  return Register(kBytecodeOffsetRegisterIndex);
+}
+
+bool Register::is_bytecode_offset() const {
+  return index() == kBytecodeOffsetRegisterIndex;
+}
+
+OperandSize Register::SizeOfOperand() const {
+  int32_t operand = ToOperand();
+  if (operand >= kMinInt8 && operand <= kMaxInt8) {
+    return OperandSize::kByte;
+  } else if (operand >= kMinInt16 && operand <= kMaxInt16) {
+    return OperandSize::kShort;
+  } else {
+    return OperandSize::kQuad;
+  }
+}
+
 bool Register::AreContiguous(Register reg1, Register reg2, Register reg3,
                              Register reg4, Register reg5) {
   if (reg1.index() + 1 != reg2.index()) {
diff --git a/src/interpreter/bytecodes.h b/src/interpreter/bytecodes.h
index 2361271..d67a390 100644
--- a/src/interpreter/bytecodes.h
+++ b/src/interpreter/bytecodes.h
@@ -9,6 +9,7 @@
 
 // Clients of this interface shouldn't depend on lots of interpreter internals.
 // Do not include anything from src/interpreter here!
+#include "src/frames.h"
 #include "src/utils.h"
 
 namespace v8 {
@@ -97,7 +98,7 @@
     OperandType::kIdx)                                                        \
                                                                               \
   /* Context operations */                                                    \
-  V(PushContext, AccumulatorUse::kRead, OperandType::kReg)                    \
+  V(PushContext, AccumulatorUse::kRead, OperandType::kRegOut)                 \
   V(PopContext, AccumulatorUse::kNone, OperandType::kReg)                     \
   V(LdaContextSlot, AccumulatorUse::kWrite, OperandType::kReg,                \
     OperandType::kIdx)                                                        \
@@ -149,6 +150,7 @@
   /* Unary Operators */                                                       \
   V(Inc, AccumulatorUse::kReadWrite)                                          \
   V(Dec, AccumulatorUse::kReadWrite)                                          \
+  V(ToBooleanLogicalNot, AccumulatorUse::kReadWrite)                          \
   V(LogicalNot, AccumulatorUse::kReadWrite)                                   \
   V(TypeOf, AccumulatorUse::kReadWrite)                                       \
   V(DeletePropertyStrict, AccumulatorUse::kReadWrite, OperandType::kReg)      \
@@ -238,14 +240,22 @@
   /* Non-local flow control */                                                \
   V(Throw, AccumulatorUse::kRead)                                             \
   V(ReThrow, AccumulatorUse::kRead)                                           \
-  V(Return, AccumulatorUse::kNone)                                            \
+  V(Return, AccumulatorUse::kRead)                                            \
+                                                                              \
+  /* Generators */                                                            \
+  V(SuspendGenerator, AccumulatorUse::kRead, OperandType::kReg)               \
+  V(ResumeGenerator, AccumulatorUse::kWrite, OperandType::kReg)               \
                                                                               \
   /* Debugger */                                                              \
   V(Debugger, AccumulatorUse::kNone)                                          \
   DEBUG_BREAK_BYTECODE_LIST(V)                                                \
                                                                               \
   /* Illegal bytecode (terminates execution) */                               \
-  V(Illegal, AccumulatorUse::kNone)
+  V(Illegal, AccumulatorUse::kNone)                                           \
+                                                                              \
+  /* No operation (used to maintain source positions for peephole */          \
+  /* eliminated bytecodes). */                                                \
+  V(Nop, AccumulatorUse::kNone)
 
 enum class AccumulatorUse : uint8_t {
   kNone = 0,
@@ -266,12 +276,16 @@
 
 // Enumeration of scaling factors applicable to scalable operands. Code
 // relies on being able to cast values to integer scaling values.
+#define OPERAND_SCALE_LIST(V) \
+  V(Single, 1)                \
+  V(Double, 2)                \
+  V(Quadruple, 4)
+
 enum class OperandScale : uint8_t {
-  kSingle = 1,
-  kDouble = 2,
-  kQuadruple = 4,
-  kMaxValid = kQuadruple,
-  kInvalid = 8,
+#define DECLARE_OPERAND_SCALE(Name, Scale) k##Name = Scale,
+  OPERAND_SCALE_LIST(DECLARE_OPERAND_SCALE)
+#undef DECLARE_OPERAND_SCALE
+      kLast = kQuadruple
 };
 
 // Enumeration of the size classes of operand types used by
@@ -328,15 +342,13 @@
 
 // An interpreter Register which is located in the function's Register file
 // in its stack-frame. Register hold parameters, this, and expression values.
-class Register {
+class Register final {
  public:
   explicit Register(int index = kInvalidIndex) : index_(index) {}
 
   int index() const { return index_; }
   bool is_parameter() const { return index() < 0; }
   bool is_valid() const { return index_ != kInvalidIndex; }
-  bool is_byte_operand() const;
-  bool is_short_operand() const;
 
   static Register FromParameterIndex(int index, int parameter_count);
   int ToParameterIndex(int parameter_count) const;
@@ -356,8 +368,20 @@
   static Register new_target();
   bool is_new_target() const;
 
-  int32_t ToOperand() const { return -index_; }
-  static Register FromOperand(int32_t operand) { return Register(-operand); }
+  // Returns the register for the bytecode array.
+  static Register bytecode_array();
+  bool is_bytecode_array() const;
+
+  // Returns the register for the saved bytecode offset.
+  static Register bytecode_offset();
+  bool is_bytecode_offset() const;
+
+  OperandSize SizeOfOperand() const;
+
+  int32_t ToOperand() const { return kRegisterFileStartOffset - index_; }
+  static Register FromOperand(int32_t operand) {
+    return Register(kRegisterFileStartOffset - operand);
+  }
 
   static bool AreContiguous(Register reg1, Register reg2,
                             Register reg3 = Register(),
@@ -387,6 +411,8 @@
 
  private:
   static const int kInvalidIndex = kMaxInt;
+  static const int kRegisterFileStartOffset =
+      InterpreterFrameConstants::kRegisterFileFromFp / kPointerSize;
 
   void* operator new(size_t size);
   void operator delete(void* p);
@@ -447,9 +473,20 @@
   // Returns true if |bytecode| writes the accumulator.
   static bool WritesAccumulator(Bytecode bytecode);
 
+  // Return true if |bytecode| writes the accumulator with a boolean value.
+  static bool WritesBooleanToAccumulator(Bytecode bytecode);
+
+  // Return true if |bytecode| is an accumulator load bytecode,
+  // e.g. LdaConstant, LdaTrue, Ldar.
+  static bool IsAccumulatorLoadWithoutEffects(Bytecode bytecode);
+
   // Returns the i-th operand of |bytecode|.
   static OperandType GetOperandType(Bytecode bytecode, int i);
 
+  // Returns a pointer to an array of operand types terminated in
+  // OperandType::kNone.
+  static const OperandType* GetOperandTypes(Bytecode bytecode);
+
   // Returns the size of the i-th operand of |bytecode|.
   static OperandSize GetOperandSize(Bytecode bytecode, int i,
                                     OperandScale operand_scale);
@@ -473,6 +510,9 @@
   // Returns the size of |operand|.
   static OperandSize SizeOfOperand(OperandType operand, OperandScale scale);
 
+  // Returns the number of values which |bytecode| returns.
+  static size_t ReturnCount(Bytecode bytecode);
+
   // Returns true if the bytecode is a conditional jump taking
   // an immediate byte operand (OperandType::kImm).
   static bool IsConditionalJumpImmediate(Bytecode bytecode);
@@ -497,6 +537,13 @@
   // any kind of operand.
   static bool IsJump(Bytecode bytecode);
 
+  // Returns true if the bytecode is a jump that internally coerces the
+  // accumulator to a boolean.
+  static bool IsJumpIfToBoolean(Bytecode bytecode);
+
+  // Returns the equivalent jump bytecode without the accumulator coercion.
+  static Bytecode GetJumpWithoutToBoolean(Bytecode bytecode);
+
   // Returns true if the bytecode is a conditional jump, a jump, or a return.
   static bool IsJumpOrReturn(Bytecode bytecode);
 
@@ -509,6 +556,9 @@
   // Returns true if the bytecode is a debug break.
   static bool IsDebugBreak(Bytecode bytecode);
 
+  // Returns true if the bytecode is Ldar or Star.
+  static bool IsLdarOrStar(Bytecode bytecode);
+
   // Returns true if the bytecode has wider operand forms.
   static bool IsBytecodeWithScalableOperands(Bytecode bytecode);
 
@@ -524,6 +574,10 @@
   // Returns true if |operand_type| represents a register used as an output.
   static bool IsRegisterOutputOperandType(OperandType operand_type);
 
+  // Returns the number of registers represented by a register operand. For
+  // instance, a RegPair represents two registers.
+  static int GetNumberOfRegistersRepresentedBy(OperandType operand_type);
+
   // Returns true if |operand_type| is a maybe register operand
   // (kMaybeReg).
   static bool IsMaybeRegisterOperandType(OperandType operand_type);
@@ -559,13 +613,34 @@
   // OperandScale values.
   static bool BytecodeHasHandler(Bytecode bytecode, OperandScale operand_scale);
 
-  // Return the next larger operand scale.
-  static OperandScale NextOperandScale(OperandScale operand_scale);
+  // Return the operand size required to hold a signed operand.
+  static OperandSize SizeForSignedOperand(int value);
+
+  // Return the operand size required to hold an unsigned operand.
+  static OperandSize SizeForUnsignedOperand(int value);
+
+  // Return the operand size required to hold an unsigned operand.
+  static OperandSize SizeForUnsignedOperand(size_t value);
+
+  // Return the OperandScale required for bytecode emission of
+  // operand sizes.
+  static OperandScale OperandSizesToScale(
+      OperandSize size0, OperandSize size1 = OperandSize::kByte,
+      OperandSize size2 = OperandSize::kByte,
+      OperandSize size3 = OperandSize::kByte);
 
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(Bytecodes);
 };
 
+class CreateObjectLiteralFlags {
+ public:
+  class FlagsBits : public BitField8<int, 0, 3> {};
+  class FastClonePropertiesCountBits
+      : public BitField8<int, FlagsBits::kNext, 3> {};
+  STATIC_ASSERT((FlagsBits::kMask & FastClonePropertiesCountBits::kMask) == 0);
+};
+
 std::ostream& operator<<(std::ostream& os, const Bytecode& bytecode);
 std::ostream& operator<<(std::ostream& os, const AccumulatorUse& use);
 std::ostream& operator<<(std::ostream& os, const OperandScale& operand_scale);
diff --git a/src/interpreter/control-flow-builders.cc b/src/interpreter/control-flow-builders.cc
index 6510aa4..66d650c 100644
--- a/src/interpreter/control-flow-builders.cc
+++ b/src/interpreter/control-flow-builders.cc
@@ -90,13 +90,16 @@
 LoopBuilder::~LoopBuilder() { DCHECK(continue_sites_.empty()); }
 
 
-void LoopBuilder::LoopHeader() {
+void LoopBuilder::LoopHeader(ZoneVector<BytecodeLabel>* additional_labels) {
   // Jumps from before the loop header into the loop violate ordering
   // requirements of bytecode basic blocks. The only entry into a loop
   // must be the loop header. Surely breaks is okay? Not if nested
   // and misplaced between the headers.
   DCHECK(break_sites_.empty() && continue_sites_.empty());
   builder()->Bind(&loop_header_);
+  for (auto& label : *additional_labels) {
+    builder()->Bind(loop_header_, &label);
+  }
 }
 
 
@@ -106,19 +109,11 @@
   DCHECK(loop_header_.is_bound());
   builder()->Bind(&loop_end_);
   SetBreakTarget(loop_end_);
-  if (next_.is_bound()) {
-    DCHECK(!condition_.is_bound() || next_.offset() >= condition_.offset());
-    SetContinueTarget(next_);
-  } else {
-    DCHECK(condition_.is_bound());
-    DCHECK_GE(condition_.offset(), loop_header_.offset());
-    DCHECK_LE(condition_.offset(), loop_end_.offset());
-    SetContinueTarget(condition_);
-  }
 }
 
-
-void LoopBuilder::SetContinueTarget(const BytecodeLabel& target) {
+void LoopBuilder::SetContinueTarget() {
+  BytecodeLabel target;
+  builder()->Bind(&target);
   BindLabels(target, &continue_sites_);
 }
 
diff --git a/src/interpreter/control-flow-builders.h b/src/interpreter/control-flow-builders.h
index e4d376b..8778b26 100644
--- a/src/interpreter/control-flow-builders.h
+++ b/src/interpreter/control-flow-builders.h
@@ -87,27 +87,22 @@
         continue_sites_(builder->zone()) {}
   ~LoopBuilder();
 
-  void LoopHeader();
-  void Condition() { builder()->Bind(&condition_); }
-  void Next() { builder()->Bind(&next_); }
+  void LoopHeader(ZoneVector<BytecodeLabel>* additional_labels);
   void JumpToHeader() { builder()->Jump(&loop_header_); }
   void JumpToHeaderIfTrue() { builder()->JumpIfTrue(&loop_header_); }
+  void SetContinueTarget();
   void EndLoop();
 
   // This method is called when visiting continue statements in the AST.
-  // Inserts a jump to a unbound label that is patched when the corresponding
-  // SetContinueTarget is called.
+  // Inserts a jump to an unbound label that is patched when SetContinueTarget
+  // is called.
   void Continue() { EmitJump(&continue_sites_); }
   void ContinueIfTrue() { EmitJumpIfTrue(&continue_sites_); }
   void ContinueIfUndefined() { EmitJumpIfUndefined(&continue_sites_); }
   void ContinueIfNull() { EmitJumpIfNull(&continue_sites_); }
 
  private:
-  void SetContinueTarget(const BytecodeLabel& continue_target);
-
   BytecodeLabel loop_header_;
-  BytecodeLabel condition_;
-  BytecodeLabel next_;
   BytecodeLabel loop_end_;
 
   // Unbound labels that identify jumps for continue statements in the code.
diff --git a/src/interpreter/interpreter-assembler.cc b/src/interpreter/interpreter-assembler.cc
index 2663e4a..4e911eb 100644
--- a/src/interpreter/interpreter-assembler.cc
+++ b/src/interpreter/interpreter-assembler.cc
@@ -4,6 +4,7 @@
 
 #include "src/interpreter/interpreter-assembler.h"
 
+#include <limits>
 #include <ostream>
 
 #include "src/code-factory.h"
@@ -24,23 +25,19 @@
 InterpreterAssembler::InterpreterAssembler(Isolate* isolate, Zone* zone,
                                            Bytecode bytecode,
                                            OperandScale operand_scale)
-    : compiler::CodeStubAssembler(isolate, zone,
-                                  InterpreterDispatchDescriptor(isolate),
-                                  Code::ComputeFlags(Code::BYTECODE_HANDLER),
-                                  Bytecodes::ToString(bytecode), 0),
+    : CodeStubAssembler(isolate, zone, InterpreterDispatchDescriptor(isolate),
+                        Code::ComputeFlags(Code::BYTECODE_HANDLER),
+                        Bytecodes::ToString(bytecode),
+                        Bytecodes::ReturnCount(bytecode)),
       bytecode_(bytecode),
       operand_scale_(operand_scale),
       accumulator_(this, MachineRepresentation::kTagged),
       accumulator_use_(AccumulatorUse::kNone),
-      context_(this, MachineRepresentation::kTagged),
-      bytecode_array_(this, MachineRepresentation::kTagged),
+      made_call_(false),
       disable_stack_check_across_call_(false),
       stack_pointer_before_call_(nullptr) {
   accumulator_.Bind(
       Parameter(InterpreterDispatchDescriptor::kAccumulatorParameter));
-  context_.Bind(Parameter(InterpreterDispatchDescriptor::kContextParameter));
-  bytecode_array_.Bind(
-      Parameter(InterpreterDispatchDescriptor::kBytecodeArrayParameter));
   if (FLAG_trace_ignition) {
     TraceBytecode(Runtime::kInterpreterTraceBytecodeEntry);
   }
@@ -69,23 +66,26 @@
   accumulator_.Bind(value);
 }
 
-Node* InterpreterAssembler::GetContext() { return context_.value(); }
+Node* InterpreterAssembler::GetContext() {
+  return LoadRegister(Register::current_context());
+}
 
 void InterpreterAssembler::SetContext(Node* value) {
   StoreRegister(value, Register::current_context());
-  context_.Bind(value);
 }
 
 Node* InterpreterAssembler::BytecodeOffset() {
   return Parameter(InterpreterDispatchDescriptor::kBytecodeOffsetParameter);
 }
 
-Node* InterpreterAssembler::RegisterFileRawPointer() {
-  return Parameter(InterpreterDispatchDescriptor::kRegisterFileParameter);
-}
-
 Node* InterpreterAssembler::BytecodeArrayTaggedPointer() {
-  return bytecode_array_.value();
+  if (made_call_) {
+    // If we have made a call, restore bytecode array from stack frame in case
+    // the debugger has swapped us to the patched debugger bytecode array.
+    return LoadRegister(Register::bytecode_array());
+  } else {
+    return Parameter(InterpreterDispatchDescriptor::kBytecodeArrayParameter);
+  }
 }
 
 Node* InterpreterAssembler::DispatchTableRawPointer() {
@@ -93,40 +93,32 @@
 }
 
 Node* InterpreterAssembler::RegisterLocation(Node* reg_index) {
-  return IntPtrAdd(RegisterFileRawPointer(), RegisterFrameOffset(reg_index));
-}
-
-Node* InterpreterAssembler::LoadRegister(int offset) {
-  return Load(MachineType::AnyTagged(), RegisterFileRawPointer(),
-              IntPtrConstant(offset));
-}
-
-Node* InterpreterAssembler::LoadRegister(Register reg) {
-  return LoadRegister(IntPtrConstant(-reg.index()));
+  return IntPtrAdd(LoadParentFramePointer(), RegisterFrameOffset(reg_index));
 }
 
 Node* InterpreterAssembler::RegisterFrameOffset(Node* index) {
   return WordShl(index, kPointerSizeLog2);
 }
 
+Node* InterpreterAssembler::LoadRegister(Register reg) {
+  return Load(MachineType::AnyTagged(), LoadParentFramePointer(),
+              IntPtrConstant(reg.ToOperand() << kPointerSizeLog2));
+}
+
 Node* InterpreterAssembler::LoadRegister(Node* reg_index) {
-  return Load(MachineType::AnyTagged(), RegisterFileRawPointer(),
+  return Load(MachineType::AnyTagged(), LoadParentFramePointer(),
               RegisterFrameOffset(reg_index));
 }
 
-Node* InterpreterAssembler::StoreRegister(Node* value, int offset) {
-  return StoreNoWriteBarrier(MachineRepresentation::kTagged,
-                             RegisterFileRawPointer(), IntPtrConstant(offset),
-                             value);
-}
-
 Node* InterpreterAssembler::StoreRegister(Node* value, Register reg) {
-  return StoreRegister(value, IntPtrConstant(-reg.index()));
+  return StoreNoWriteBarrier(
+      MachineRepresentation::kTagged, LoadParentFramePointer(),
+      IntPtrConstant(reg.ToOperand() << kPointerSizeLog2), value);
 }
 
 Node* InterpreterAssembler::StoreRegister(Node* value, Node* reg_index) {
   return StoreNoWriteBarrier(MachineRepresentation::kTagged,
-                             RegisterFileRawPointer(),
+                             LoadParentFramePointer(),
                              RegisterFrameOffset(reg_index), value);
 }
 
@@ -380,11 +372,6 @@
   return Load(MachineType::AnyTagged(), constant_pool, entry_offset);
 }
 
-Node* InterpreterAssembler::LoadObjectField(Node* object, int offset) {
-  return Load(MachineType::AnyTagged(), object,
-              IntPtrConstant(offset - kHeapObjectTag));
-}
-
 Node* InterpreterAssembler::LoadContextSlot(Node* context, int slot_index) {
   return Load(MachineType::AnyTagged(), context,
               IntPtrConstant(Context::SlotOffset(slot_index)));
@@ -406,9 +393,7 @@
 }
 
 Node* InterpreterAssembler::LoadTypeFeedbackVector() {
-  Node* function = Load(
-      MachineType::AnyTagged(), RegisterFileRawPointer(),
-      IntPtrConstant(InterpreterFrameConstants::kFunctionFromRegisterPointer));
+  Node* function = LoadRegister(Register::function_closure());
   Node* shared_info =
       LoadObjectField(function, JSFunction::kSharedFunctionInfoOffset);
   Node* vector =
@@ -417,13 +402,13 @@
 }
 
 void InterpreterAssembler::CallPrologue() {
-  StoreRegister(SmiTag(BytecodeOffset()),
-                InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer);
+  StoreRegister(SmiTag(BytecodeOffset()), Register::bytecode_offset());
 
   if (FLAG_debug_code && !disable_stack_check_across_call_) {
     DCHECK(stack_pointer_before_call_ == nullptr);
     stack_pointer_before_call_ = LoadStackPointer();
   }
+  made_call_ = true;
 }
 
 void InterpreterAssembler::CallEpilogue() {
@@ -434,11 +419,6 @@
     AbortIfWordNotEqual(stack_pointer_before_call, stack_pointer_after_call,
                         kUnexpectedStackPointer);
   }
-
-  // Restore bytecode array from stack frame in case the debugger has swapped us
-  // to the patched debugger bytecode array.
-  bytecode_array_.Bind(LoadRegister(
-      InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
 }
 
 Node* InterpreterAssembler::CallJS(Node* function, Node* context,
@@ -481,33 +461,32 @@
 }
 
 void InterpreterAssembler::UpdateInterruptBudget(Node* weight) {
-  CodeStubAssembler::Label ok(this);
-  CodeStubAssembler::Label interrupt_check(this);
-  CodeStubAssembler::Label end(this);
+  Label ok(this), interrupt_check(this, Label::kDeferred), end(this);
   Node* budget_offset =
       IntPtrConstant(BytecodeArray::kInterruptBudgetOffset - kHeapObjectTag);
 
   // Update budget by |weight| and check if it reaches zero.
+  Variable new_budget(this, MachineRepresentation::kWord32);
   Node* old_budget =
       Load(MachineType::Int32(), BytecodeArrayTaggedPointer(), budget_offset);
-  Node* new_budget = Int32Add(old_budget, weight);
-  Node* condition = Int32GreaterThanOrEqual(new_budget, Int32Constant(0));
+  new_budget.Bind(Int32Add(old_budget, weight));
+  Node* condition =
+      Int32GreaterThanOrEqual(new_budget.value(), Int32Constant(0));
   Branch(condition, &ok, &interrupt_check);
 
   // Perform interrupt and reset budget.
   Bind(&interrupt_check);
-  CallRuntime(Runtime::kInterrupt, GetContext());
-  StoreNoWriteBarrier(MachineRepresentation::kWord32,
-                      BytecodeArrayTaggedPointer(), budget_offset,
-                      Int32Constant(Interpreter::InterruptBudget()));
-  Goto(&end);
+  {
+    CallRuntime(Runtime::kInterrupt, GetContext());
+    new_budget.Bind(Int32Constant(Interpreter::InterruptBudget()));
+    Goto(&ok);
+  }
 
   // Update budget.
   Bind(&ok);
   StoreNoWriteBarrier(MachineRepresentation::kWord32,
-                      BytecodeArrayTaggedPointer(), budget_offset, new_budget);
-  Goto(&end);
-  Bind(&end);
+                      BytecodeArrayTaggedPointer(), budget_offset,
+                      new_budget.value());
 }
 
 Node* InterpreterAssembler::Advance(int delta) {
@@ -518,16 +497,15 @@
   return IntPtrAdd(BytecodeOffset(), delta);
 }
 
-void InterpreterAssembler::Jump(Node* delta) {
+Node* InterpreterAssembler::Jump(Node* delta) {
   UpdateInterruptBudget(delta);
-  DispatchTo(Advance(delta));
+  return DispatchTo(Advance(delta));
 }
 
 void InterpreterAssembler::JumpConditional(Node* condition, Node* delta) {
-  CodeStubAssembler::Label match(this);
-  CodeStubAssembler::Label no_match(this);
+  Label match(this), no_match(this);
 
-  Branch(condition, &match, &no_match);
+  BranchIf(condition, &match, &no_match);
   Bind(&match);
   Jump(delta);
   Bind(&no_match);
@@ -543,37 +521,45 @@
   JumpConditional(WordNotEqual(lhs, rhs), delta);
 }
 
-void InterpreterAssembler::Dispatch() {
-  DispatchTo(Advance(Bytecodes::Size(bytecode_, operand_scale_)));
+Node* InterpreterAssembler::Dispatch() {
+  return DispatchTo(Advance(Bytecodes::Size(bytecode_, operand_scale_)));
 }
 
-void InterpreterAssembler::DispatchTo(Node* new_bytecode_offset) {
+Node* InterpreterAssembler::DispatchTo(Node* new_bytecode_offset) {
   Node* target_bytecode = Load(
       MachineType::Uint8(), BytecodeArrayTaggedPointer(), new_bytecode_offset);
   if (kPointerSize == 8) {
     target_bytecode = ChangeUint32ToUint64(target_bytecode);
   }
 
-  // TODO(rmcilroy): Create a code target dispatch table to avoid conversion
-  // from code object on every dispatch.
-  Node* target_code_object =
+  if (FLAG_trace_ignition_dispatches) {
+    TraceBytecodeDispatch(target_bytecode);
+  }
+
+  Node* target_code_entry =
       Load(MachineType::Pointer(), DispatchTableRawPointer(),
            WordShl(target_bytecode, IntPtrConstant(kPointerSizeLog2)));
 
-  DispatchToBytecodeHandler(target_code_object, new_bytecode_offset);
+  return DispatchToBytecodeHandlerEntry(target_code_entry, new_bytecode_offset);
 }
 
-void InterpreterAssembler::DispatchToBytecodeHandler(Node* handler,
-                                                     Node* bytecode_offset) {
+Node* InterpreterAssembler::DispatchToBytecodeHandler(Node* handler,
+                                                      Node* bytecode_offset) {
+  Node* handler_entry =
+      IntPtrAdd(handler, IntPtrConstant(Code::kHeaderSize - kHeapObjectTag));
+  return DispatchToBytecodeHandlerEntry(handler_entry, bytecode_offset);
+}
+
+Node* InterpreterAssembler::DispatchToBytecodeHandlerEntry(
+    Node* handler_entry, Node* bytecode_offset) {
   if (FLAG_trace_ignition) {
     TraceBytecode(Runtime::kInterpreterTraceBytecodeExit);
   }
 
   InterpreterDispatchDescriptor descriptor(isolate());
-  Node* args[] = {GetAccumulatorUnchecked(), RegisterFileRawPointer(),
-                  bytecode_offset,           BytecodeArrayTaggedPointer(),
-                  DispatchTableRawPointer(), GetContext()};
-  TailCall(descriptor, handler, args, 0);
+  Node* args[] = {GetAccumulatorUnchecked(), bytecode_offset,
+                  BytecodeArrayTaggedPointer(), DispatchTableRawPointer()};
+  return TailCallBytecodeDispatch(descriptor, handler_entry, args);
 }
 
 void InterpreterAssembler::DispatchWide(OperandScale operand_scale) {
@@ -590,6 +576,11 @@
   if (kPointerSize == 8) {
     next_bytecode = ChangeUint32ToUint64(next_bytecode);
   }
+
+  if (FLAG_trace_ignition_dispatches) {
+    TraceBytecodeDispatch(next_bytecode);
+  }
+
   Node* base_index;
   switch (operand_scale) {
     case OperandScale::kDouble:
@@ -603,14 +594,14 @@
       base_index = nullptr;
   }
   Node* target_index = IntPtrAdd(base_index, next_bytecode);
-  Node* target_code_object =
+  Node* target_code_entry =
       Load(MachineType::Pointer(), DispatchTableRawPointer(),
            WordShl(target_index, kPointerSizeLog2));
 
-  DispatchToBytecodeHandler(target_code_object, next_bytecode_offset);
+  DispatchToBytecodeHandlerEntry(target_code_entry, next_bytecode_offset);
 }
 
-void InterpreterAssembler::InterpreterReturn() {
+void InterpreterAssembler::UpdateInterruptBudgetOnReturn() {
   // TODO(rmcilroy): Investigate whether it is worth supporting self
   // optimization of primitive functions like FullCodegen.
 
@@ -620,29 +611,14 @@
       Int32Sub(Int32Constant(kHeapObjectTag + BytecodeArray::kHeaderSize),
                BytecodeOffset());
   UpdateInterruptBudget(profiling_weight);
-
-  Node* exit_trampoline_code_object =
-      HeapConstant(isolate()->builtins()->InterpreterExitTrampoline());
-  DispatchToBytecodeHandler(exit_trampoline_code_object);
 }
 
-void InterpreterAssembler::StackCheck() {
-  CodeStubAssembler::Label end(this);
-  CodeStubAssembler::Label ok(this);
-  CodeStubAssembler::Label stack_guard(this);
-
+Node* InterpreterAssembler::StackCheckTriggeredInterrupt() {
   Node* sp = LoadStackPointer();
   Node* stack_limit = Load(
       MachineType::Pointer(),
       ExternalConstant(ExternalReference::address_of_stack_limit(isolate())));
-  Node* condition = UintPtrGreaterThanOrEqual(sp, stack_limit);
-  Branch(condition, &ok, &stack_guard);
-  Bind(&stack_guard);
-  CallRuntime(Runtime::kStackGuard, GetContext());
-  Goto(&end);
-  Bind(&ok);
-  Goto(&end);
-  Bind(&end);
+  return UintPtrLessThan(sp, stack_limit);
 }
 
 void InterpreterAssembler::Abort(BailoutReason bailout_reason) {
@@ -654,18 +630,14 @@
 
 void InterpreterAssembler::AbortIfWordNotEqual(Node* lhs, Node* rhs,
                                                BailoutReason bailout_reason) {
-  CodeStubAssembler::Label match(this);
-  CodeStubAssembler::Label no_match(this);
-  CodeStubAssembler::Label end(this);
+  Label ok(this), abort(this, Label::kDeferred);
+  BranchIfWordEqual(lhs, rhs, &ok, &abort);
 
-  Node* condition = WordEqual(lhs, rhs);
-  Branch(condition, &match, &no_match);
-  Bind(&no_match);
+  Bind(&abort);
   Abort(bailout_reason);
-  Goto(&end);
-  Bind(&match);
-  Goto(&end);
-  Bind(&end);
+  Goto(&ok);
+
+  Bind(&ok);
 }
 
 void InterpreterAssembler::TraceBytecode(Runtime::FunctionId function_id) {
@@ -673,6 +645,35 @@
               SmiTag(BytecodeOffset()), GetAccumulatorUnchecked());
 }
 
+void InterpreterAssembler::TraceBytecodeDispatch(Node* target_bytecode) {
+  Node* counters_table = ExternalConstant(
+      ExternalReference::interpreter_dispatch_counters(isolate()));
+  Node* source_bytecode_table_index = IntPtrConstant(
+      static_cast<int>(bytecode_) * (static_cast<int>(Bytecode::kLast) + 1));
+
+  Node* counter_offset =
+      WordShl(IntPtrAdd(source_bytecode_table_index, target_bytecode),
+              IntPtrConstant(kPointerSizeLog2));
+  Node* old_counter =
+      Load(MachineType::IntPtr(), counters_table, counter_offset);
+
+  Label counter_ok(this), counter_saturated(this, Label::kDeferred);
+
+  Node* counter_reached_max = WordEqual(
+      old_counter, IntPtrConstant(std::numeric_limits<uintptr_t>::max()));
+  BranchIf(counter_reached_max, &counter_saturated, &counter_ok);
+
+  Bind(&counter_ok);
+  {
+    Node* new_counter = IntPtrAdd(old_counter, IntPtrConstant(1));
+    StoreNoWriteBarrier(MachineType::PointerRepresentation(), counters_table,
+                        counter_offset, new_counter);
+    Goto(&counter_saturated);
+  }
+
+  Bind(&counter_saturated);
+}
+
 // static
 bool InterpreterAssembler::TargetSupportsUnalignedAccess() {
 #if V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64
@@ -687,6 +688,84 @@
 #endif
 }
 
+Node* InterpreterAssembler::RegisterCount() {
+  Node* bytecode_array = LoadRegister(Register::bytecode_array());
+  Node* frame_size = LoadObjectField(
+      bytecode_array, BytecodeArray::kFrameSizeOffset, MachineType::Int32());
+  return Word32Sar(frame_size, Int32Constant(kPointerSizeLog2));
+}
+
+Node* InterpreterAssembler::ExportRegisterFile(Node* array) {
+  if (FLAG_debug_code) {
+    Node* array_size = SmiUntag(LoadFixedArrayBaseLength(array));
+    AbortIfWordNotEqual(
+        array_size, RegisterCount(), kInvalidRegisterFileInGenerator);
+  }
+
+  Variable var_index(this, MachineRepresentation::kWord32);
+  var_index.Bind(Int32Constant(0));
+
+  // Iterate over register file and write values into array.
+  // The mapping of register to array index must match that used in
+  // BytecodeGraphBuilder::VisitResumeGenerator.
+  Label loop(this, &var_index), done_loop(this);
+  Goto(&loop);
+  Bind(&loop);
+  {
+    Node* index = var_index.value();
+    Node* condition = Int32LessThan(index, RegisterCount());
+    GotoUnless(condition, &done_loop);
+
+    Node* reg_index =
+        Int32Sub(Int32Constant(Register(0).ToOperand()), index);
+    Node* value = LoadRegister(ChangeInt32ToIntPtr(reg_index));
+
+    StoreFixedArrayElement(array, index, value);
+
+    var_index.Bind(Int32Add(index, Int32Constant(1)));
+    Goto(&loop);
+  }
+  Bind(&done_loop);
+
+  return array;
+}
+
+Node* InterpreterAssembler::ImportRegisterFile(Node* array) {
+  if (FLAG_debug_code) {
+    Node* array_size = SmiUntag(LoadFixedArrayBaseLength(array));
+    AbortIfWordNotEqual(
+        array_size, RegisterCount(), kInvalidRegisterFileInGenerator);
+  }
+
+  Variable var_index(this, MachineRepresentation::kWord32);
+  var_index.Bind(Int32Constant(0));
+
+  // Iterate over array and write values into register file.  Also erase the
+  // array contents to not keep them alive artificially.
+  Label loop(this, &var_index), done_loop(this);
+  Goto(&loop);
+  Bind(&loop);
+  {
+    Node* index = var_index.value();
+    Node* condition = Int32LessThan(index, RegisterCount());
+    GotoUnless(condition, &done_loop);
+
+    Node* value = LoadFixedArrayElement(array, index);
+
+    Node* reg_index =
+        Int32Sub(Int32Constant(Register(0).ToOperand()), index);
+    StoreRegister(value, ChangeInt32ToIntPtr(reg_index));
+
+    StoreFixedArrayElement(array, index, StaleRegisterConstant());
+
+    var_index.Bind(Int32Add(index, Int32Constant(1)));
+    Goto(&loop);
+  }
+  Bind(&done_loop);
+
+  return array;
+}
+
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/src/interpreter/interpreter-assembler.h b/src/interpreter/interpreter-assembler.h
index 86ecea5..f8d4b7c 100644
--- a/src/interpreter/interpreter-assembler.h
+++ b/src/interpreter/interpreter-assembler.h
@@ -8,7 +8,7 @@
 #include "src/allocation.h"
 #include "src/base/smart-pointers.h"
 #include "src/builtins.h"
-#include "src/compiler/code-stub-assembler.h"
+#include "src/code-stub-assembler.h"
 #include "src/frames.h"
 #include "src/interpreter/bytecodes.h"
 #include "src/runtime/runtime.h"
@@ -17,7 +17,7 @@
 namespace internal {
 namespace interpreter {
 
-class InterpreterAssembler : public compiler::CodeStubAssembler {
+class InterpreterAssembler : public CodeStubAssembler {
  public:
   InterpreterAssembler(Isolate* isolate, Zone* zone, Bytecode bytecode,
                        OperandScale operand_scale);
@@ -50,11 +50,16 @@
   compiler::Node* GetContext();
   void SetContext(compiler::Node* value);
 
+  // Number of registers.
+  compiler::Node* RegisterCount();
+
+  // Backup/restore register file to/from a fixed array of the correct length.
+  compiler::Node* ExportRegisterFile(compiler::Node* array);
+  compiler::Node* ImportRegisterFile(compiler::Node* array);
+
   // Loads from and stores to the interpreter register file.
-  compiler::Node* LoadRegister(int offset);
   compiler::Node* LoadRegister(Register reg);
   compiler::Node* LoadRegister(compiler::Node* reg_index);
-  compiler::Node* StoreRegister(compiler::Node* value, int offset);
   compiler::Node* StoreRegister(compiler::Node* value, Register reg);
   compiler::Node* StoreRegister(compiler::Node* value,
                                 compiler::Node* reg_index);
@@ -69,9 +74,6 @@
   // Load constant at |index| in the constant pool.
   compiler::Node* LoadConstantPoolEntry(compiler::Node* index);
 
-  // Load a field from an object on the heap.
-  compiler::Node* LoadObjectField(compiler::Node* object, int offset);
-
   // Load |slot_index| from |context|.
   compiler::Node* LoadContextSlot(compiler::Node* context, int slot_index);
   compiler::Node* LoadContextSlot(compiler::Node* context,
@@ -110,12 +112,7 @@
                                compiler::Node* arg_count, int return_size = 1);
 
   // Jump relative to the current bytecode by |jump_offset|.
-  void Jump(compiler::Node* jump_offset);
-
-  // Jump relative to the current bytecode by |jump_offset| if the
-  // |condition| is true. Helper function for JumpIfWordEqual and
-  // JumpIfWordNotEqual.
-  void JumpConditional(compiler::Node* condition, compiler::Node* jump_offset);
+  compiler::Node* Jump(compiler::Node* jump_offset);
 
   // Jump relative to the current bytecode by |jump_offset| if the
   // word values |lhs| and |rhs| are equal.
@@ -127,20 +124,18 @@
   void JumpIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs,
                           compiler::Node* jump_offset);
 
-  // Perform a stack guard check.
-  void StackCheck();
+  // Returns true if the stack guard check triggers an interrupt.
+  compiler::Node* StackCheckTriggeredInterrupt();
 
-  // Returns from the function.
-  void InterpreterReturn();
+  // Updates the profiler interrupt budget for a return.
+  void UpdateInterruptBudgetOnReturn();
 
   // Dispatch to the bytecode.
-  void Dispatch();
+  compiler::Node* Dispatch();
 
   // Dispatch to bytecode handler.
-  void DispatchToBytecodeHandler(compiler::Node* handler,
-                                 compiler::Node* bytecode_offset);
-  void DispatchToBytecodeHandler(compiler::Node* handler) {
-    DispatchToBytecodeHandler(handler, BytecodeOffset());
+  compiler::Node* DispatchToBytecodeHandler(compiler::Node* handler) {
+    return DispatchToBytecodeHandler(handler, BytecodeOffset());
   }
 
   // Dispatch bytecode as wide operand variant.
@@ -148,14 +143,14 @@
 
   // Abort with the given bailout reason.
   void Abort(BailoutReason bailout_reason);
+  void AbortIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs,
+                           BailoutReason bailout_reason);
 
  protected:
   Bytecode bytecode() const { return bytecode_; }
   static bool TargetSupportsUnalignedAccess();
 
  private:
-  // Returns a raw pointer to start of the register file on the stack.
-  compiler::Node* RegisterFileRawPointer();
   // Returns a tagged pointer to the current function's BytecodeArray object.
   compiler::Node* BytecodeArrayTaggedPointer();
   // Returns the offset from the BytecodeArrayPointer of the current bytecode.
@@ -173,6 +168,9 @@
   void CallPrologue() override;
   void CallEpilogue() override;
 
+  // Increment the dispatch counter for the (current, next) bytecode pair.
+  void TraceBytecodeDispatch(compiler::Node* target_index);
+
   // Traces the current bytecode by calling |function_id|.
   void TraceBytecode(Runtime::FunctionId function_id);
 
@@ -206,17 +204,26 @@
   compiler::Node* BytecodeUnsignedOperand(int operand_index,
                                           OperandSize operand_size);
 
+  // Jump relative to the current bytecode by |jump_offset| if the
+  // |condition| is true. Helper function for JumpIfWordEqual and
+  // JumpIfWordNotEqual.
+  void JumpConditional(compiler::Node* condition, compiler::Node* jump_offset);
+
   // Returns BytecodeOffset() advanced by delta bytecodes. Note: this does not
   // update BytecodeOffset() itself.
   compiler::Node* Advance(int delta);
   compiler::Node* Advance(compiler::Node* delta);
 
   // Starts next instruction dispatch at |new_bytecode_offset|.
-  void DispatchTo(compiler::Node* new_bytecode_offset);
+  compiler::Node* DispatchTo(compiler::Node* new_bytecode_offset);
 
-  // Abort operations for debug code.
-  void AbortIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs,
-                           BailoutReason bailout_reason);
+  // Dispatch to the bytecode handler with code offset |handler|.
+  compiler::Node* DispatchToBytecodeHandler(compiler::Node* handler,
+                                            compiler::Node* bytecode_offset);
+
+  // Dispatch to the bytecode handler with code entry point |handler_entry|.
+  compiler::Node* DispatchToBytecodeHandlerEntry(
+      compiler::Node* handler_entry, compiler::Node* bytecode_offset);
 
   OperandScale operand_scale() const { return operand_scale_; }
 
@@ -224,8 +231,7 @@
   OperandScale operand_scale_;
   CodeStubAssembler::Variable accumulator_;
   AccumulatorUse accumulator_use_;
-  CodeStubAssembler::Variable context_;
-  CodeStubAssembler::Variable bytecode_array_;
+  bool made_call_;
 
   bool disable_stack_check_across_call_;
   compiler::Node* stack_pointer_before_call_;
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
index 5084300..a42da50 100644
--- a/src/interpreter/interpreter.cc
+++ b/src/interpreter/interpreter.cc
@@ -4,6 +4,8 @@
 
 #include "src/interpreter/interpreter.h"
 
+#include <fstream>
+
 #include "src/ast/prettyprinter.h"
 #include "src/code-factory.h"
 #include "src/compiler.h"
@@ -20,6 +22,8 @@
 namespace interpreter {
 
 using compiler::Node;
+typedef CodeStubAssembler::Label Label;
+typedef CodeStubAssembler::Variable Variable;
 
 #define __ assembler->
 
@@ -28,15 +32,26 @@
 }
 
 void Interpreter::Initialize() {
-  DCHECK(FLAG_ignition);
   if (IsDispatchTableInitialized()) return;
   Zone zone(isolate_->allocator());
   HandleScope scope(isolate_);
 
+  if (FLAG_trace_ignition_dispatches) {
+    static const int kBytecodeCount = static_cast<int>(Bytecode::kLast) + 1;
+    bytecode_dispatch_counters_table_.Reset(
+        new uintptr_t[kBytecodeCount * kBytecodeCount]);
+    memset(bytecode_dispatch_counters_table_.get(), 0,
+           sizeof(uintptr_t) * kBytecodeCount * kBytecodeCount);
+  }
+
   // Generate bytecode handlers for all bytecodes and scales.
-  for (OperandScale operand_scale = OperandScale::kSingle;
-       operand_scale <= OperandScale::kMaxValid;
-       operand_scale = Bytecodes::NextOperandScale(operand_scale)) {
+  const OperandScale kOperandScales[] = {
+#define VALUE(Name, _) OperandScale::k##Name,
+      OPERAND_SCALE_LIST(VALUE)
+#undef VALUE
+  };
+
+  for (OperandScale operand_scale : kOperandScales) {
 #define GENERATE_CODE(Name, ...)                                               \
   {                                                                            \
     if (Bytecodes::BytecodeHasHandler(Bytecode::k##Name, operand_scale)) {     \
@@ -45,7 +60,7 @@
       Do##Name(&assembler);                                                    \
       Handle<Code> code = assembler.GenerateCode();                            \
       size_t index = GetDispatchTableIndex(Bytecode::k##Name, operand_scale);  \
-      dispatch_table_[index] = *code;                                          \
+      dispatch_table_[index] = code->entry();                                  \
       TraceCodegen(code);                                                      \
       LOG_CODE_EVENT(                                                          \
           isolate_,                                                            \
@@ -73,7 +88,8 @@
   DCHECK(IsDispatchTableInitialized());
   DCHECK(Bytecodes::BytecodeHasHandler(bytecode, operand_scale));
   size_t index = GetDispatchTableIndex(bytecode, operand_scale);
-  return dispatch_table_[index];
+  Address code_entry = dispatch_table_[index];
+  return Code::GetCodeFromTargetAddress(code_entry);
 }
 
 // static
@@ -81,18 +97,30 @@
                                           OperandScale operand_scale) {
   static const size_t kEntriesPerOperandScale = 1u << kBitsPerByte;
   size_t index = static_cast<size_t>(bytecode);
-  OperandScale current_scale = OperandScale::kSingle;
-  while (current_scale != operand_scale) {
-    index += kEntriesPerOperandScale;
-    current_scale = Bytecodes::NextOperandScale(current_scale);
+  switch (operand_scale) {
+    case OperandScale::kSingle:
+      return index;
+    case OperandScale::kDouble:
+      return index + kEntriesPerOperandScale;
+    case OperandScale::kQuadruple:
+      return index + 2 * kEntriesPerOperandScale;
   }
-  return index;
+  UNREACHABLE();
+  return 0;
 }
 
 void Interpreter::IterateDispatchTable(ObjectVisitor* v) {
-  v->VisitPointers(
-      reinterpret_cast<Object**>(&dispatch_table_[0]),
-      reinterpret_cast<Object**>(&dispatch_table_[0] + kDispatchTableSize));
+  for (int i = 0; i < kDispatchTableSize; i++) {
+    Address code_entry = dispatch_table_[i];
+    Object* code = code_entry == nullptr
+                       ? nullptr
+                       : Code::GetCodeFromTargetAddress(code_entry);
+    Object* old_code = code;
+    v->VisitPointer(&code);
+    if (code != old_code) {
+      dispatch_table_[i] = reinterpret_cast<Code*>(code)->entry();
+    }
+  }
 }
 
 // static
@@ -103,6 +131,8 @@
 }
 
 bool Interpreter::MakeBytecode(CompilationInfo* info) {
+  RuntimeCallTimerScope runtimeTimer(info->isolate(),
+                                     &RuntimeCallStats::CompileIgnition);
   TimerEventScope<TimerEventCompileIgnition> timer(info->isolate());
   TRACE_EVENT0("v8", "V8.CompileIgnition");
 
@@ -131,8 +161,8 @@
   }
 #endif  // DEBUG
 
-  BytecodeGenerator generator(info->isolate(), info->zone());
-  Handle<BytecodeArray> bytecodes = generator.MakeBytecode(info);
+  BytecodeGenerator generator(info);
+  Handle<BytecodeArray> bytecodes = generator.MakeBytecode();
 
   if (generator.HasStackOverflow()) return false;
 
@@ -148,9 +178,11 @@
 }
 
 bool Interpreter::IsDispatchTableInitialized() {
-  if (FLAG_trace_ignition || FLAG_trace_ignition_codegen) {
-    // Regenerate table to add bytecode tracing operations
-    // or to print the assembly code generated by TurboFan.
+  if (FLAG_trace_ignition || FLAG_trace_ignition_codegen ||
+      FLAG_trace_ignition_dispatches) {
+    // Regenerate table to add bytecode tracing operations,
+    // print the assembly code generated by TurboFan,
+    // or instrument handlers with dispatch counters.
     return false;
   }
   return dispatch_table_[0] != nullptr;
@@ -168,9 +200,10 @@
 
 const char* Interpreter::LookupNameOfBytecodeHandler(Code* code) {
 #ifdef ENABLE_DISASSEMBLER
-#define RETURN_NAME(Name, ...)                                         \
-  if (dispatch_table_[Bytecodes::ToByte(Bytecode::k##Name)] == code) { \
-    return #Name;                                                      \
+#define RETURN_NAME(Name, ...)                                 \
+  if (dispatch_table_[Bytecodes::ToByte(Bytecode::k##Name)] == \
+      code->entry()) {                                         \
+    return #Name;                                              \
   }
   BYTECODE_LIST(RETURN_NAME)
 #undef RETURN_NAME
@@ -178,6 +211,62 @@
   return nullptr;
 }
 
+uintptr_t Interpreter::GetDispatchCounter(Bytecode from, Bytecode to) const {
+  int from_index = Bytecodes::ToByte(from);
+  int to_index = Bytecodes::ToByte(to);
+  return bytecode_dispatch_counters_table_[from_index * kNumberOfBytecodes +
+                                           to_index];
+}
+
+Local<v8::Object> Interpreter::GetDispatchCountersObject() {
+  v8::Isolate* isolate = reinterpret_cast<v8::Isolate*>(isolate_);
+  Local<v8::Context> context = isolate->GetCurrentContext();
+
+  Local<v8::Object> counters_map = v8::Object::New(isolate);
+
+  // Output is a JSON-encoded object of objects.
+  //
+  // The keys on the top level object are source bytecodes,
+  // and corresponding value are objects. Keys on these last are the
+  // destinations of the dispatch and the value associated is a counter for
+  // the correspondent source-destination dispatch chain.
+  //
+  // Only non-zero counters are written to file, but an entry in the top-level
+  // object is always present, even if the value is empty because all counters
+  // for that source are zero.
+
+  for (int from_index = 0; from_index < kNumberOfBytecodes; ++from_index) {
+    Bytecode from_bytecode = Bytecodes::FromByte(from_index);
+    Local<v8::Object> counters_row = v8::Object::New(isolate);
+
+    for (int to_index = 0; to_index < kNumberOfBytecodes; ++to_index) {
+      Bytecode to_bytecode = Bytecodes::FromByte(to_index);
+      uintptr_t counter = GetDispatchCounter(from_bytecode, to_bytecode);
+
+      if (counter > 0) {
+        std::string to_name = Bytecodes::ToString(to_bytecode);
+        Local<v8::String> to_name_object =
+            v8::String::NewFromUtf8(isolate, to_name.c_str(),
+                                    NewStringType::kNormal)
+                .ToLocalChecked();
+        Local<v8::Number> counter_object = v8::Number::New(isolate, counter);
+        CHECK(counters_row->Set(context, to_name_object, counter_object)
+                  .IsJust());
+      }
+    }
+
+    std::string from_name = Bytecodes::ToString(from_bytecode);
+    Local<v8::String> from_name_object =
+        v8::String::NewFromUtf8(isolate, from_name.c_str(),
+                                NewStringType::kNormal)
+            .ToLocalChecked();
+
+    CHECK(counters_map->Set(context, from_name_object, counters_row).IsJust());
+  }
+
+  return counters_map;
+}
+
 // LdaZero
 //
 // Load literal '0' into the accumulator.
@@ -640,12 +729,22 @@
   __ Dispatch();
 }
 
+template <class Generator>
+void Interpreter::DoBinaryOp(InterpreterAssembler* assembler) {
+  Node* reg_index = __ BytecodeOperandReg(0);
+  Node* lhs = __ LoadRegister(reg_index);
+  Node* rhs = __ GetAccumulator();
+  Node* context = __ GetContext();
+  Node* result = Generator::Generate(assembler, lhs, rhs, context);
+  __ SetAccumulator(result);
+  __ Dispatch();
+}
 
 // Add <src>
 //
 // Add register <src> to accumulator.
 void Interpreter::DoAdd(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::Add(isolate_), assembler);
+  DoBinaryOp<AddStub>(assembler);
 }
 
 
@@ -653,7 +752,7 @@
 //
 // Subtract register <src> from accumulator.
 void Interpreter::DoSub(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::Subtract(isolate_), assembler);
+  DoBinaryOp<SubtractStub>(assembler);
 }
 
 
@@ -661,7 +760,7 @@
 //
 // Multiply accumulator by register <src>.
 void Interpreter::DoMul(InterpreterAssembler* assembler) {
-  DoBinaryOp(Runtime::kMultiply, assembler);
+  DoBinaryOp<MultiplyStub>(assembler);
 }
 
 
@@ -669,7 +768,7 @@
 //
 // Divide register <src> by accumulator.
 void Interpreter::DoDiv(InterpreterAssembler* assembler) {
-  DoBinaryOp(Runtime::kDivide, assembler);
+  DoBinaryOp<DivideStub>(assembler);
 }
 
 
@@ -677,7 +776,7 @@
 //
 // Modulo register <src> by accumulator.
 void Interpreter::DoMod(InterpreterAssembler* assembler) {
-  DoBinaryOp(Runtime::kModulus, assembler);
+  DoBinaryOp<ModulusStub>(assembler);
 }
 
 
@@ -685,7 +784,7 @@
 //
 // BitwiseOr register <src> to accumulator.
 void Interpreter::DoBitwiseOr(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::BitwiseOr(isolate_), assembler);
+  DoBinaryOp<BitwiseOrStub>(assembler);
 }
 
 
@@ -693,7 +792,7 @@
 //
 // BitwiseXor register <src> to accumulator.
 void Interpreter::DoBitwiseXor(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::BitwiseXor(isolate_), assembler);
+  DoBinaryOp<BitwiseXorStub>(assembler);
 }
 
 
@@ -701,7 +800,7 @@
 //
 // BitwiseAnd register <src> to accumulator.
 void Interpreter::DoBitwiseAnd(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::BitwiseAnd(isolate_), assembler);
+  DoBinaryOp<BitwiseAndStub>(assembler);
 }
 
 
@@ -712,7 +811,7 @@
 // before the operation. 5 lsb bits from the accumulator are used as count
 // i.e. <src> << (accumulator & 0x1F).
 void Interpreter::DoShiftLeft(InterpreterAssembler* assembler) {
-  DoBinaryOp(Runtime::kShiftLeft, assembler);
+  DoBinaryOp<ShiftLeftStub>(assembler);
 }
 
 
@@ -723,7 +822,7 @@
 // accumulator to uint32 before the operation. 5 lsb bits from the accumulator
 // are used as count i.e. <src> >> (accumulator & 0x1F).
 void Interpreter::DoShiftRight(InterpreterAssembler* assembler) {
-  DoBinaryOp(Runtime::kShiftRight, assembler);
+  DoBinaryOp<ShiftRightStub>(assembler);
 }
 
 
@@ -734,62 +833,77 @@
 // uint32 before the operation 5 lsb bits from the accumulator are used as
 // count i.e. <src> << (accumulator & 0x1F).
 void Interpreter::DoShiftRightLogical(InterpreterAssembler* assembler) {
-  DoBinaryOp(Runtime::kShiftRightLogical, assembler);
+  DoBinaryOp<ShiftRightLogicalStub>(assembler);
 }
 
-void Interpreter::DoCountOp(Runtime::FunctionId function_id,
-                            InterpreterAssembler* assembler) {
+template <class Generator>
+void Interpreter::DoUnaryOp(InterpreterAssembler* assembler) {
   Node* value = __ GetAccumulator();
-  Node* one = __ NumberConstant(1);
   Node* context = __ GetContext();
-  Node* result = __ CallRuntime(function_id, context, value, one);
+  Node* result = Generator::Generate(assembler, value, context);
   __ SetAccumulator(result);
   __ Dispatch();
 }
 
-
 // Inc
 //
 // Increments value in the accumulator by one.
 void Interpreter::DoInc(InterpreterAssembler* assembler) {
-  DoCountOp(Runtime::kAdd, assembler);
+  DoUnaryOp<IncStub>(assembler);
 }
 
-
 // Dec
 //
 // Decrements value in the accumulator by one.
 void Interpreter::DoDec(InterpreterAssembler* assembler) {
-  DoCountOp(Runtime::kSubtract, assembler);
+  DoUnaryOp<DecStub>(assembler);
 }
 
+void Interpreter::DoLogicalNotOp(Node* value, InterpreterAssembler* assembler) {
+  Label if_true(assembler), if_false(assembler), end(assembler);
+  Node* true_value = __ BooleanConstant(true);
+  Node* false_value = __ BooleanConstant(false);
+  __ BranchIfWordEqual(value, true_value, &if_true, &if_false);
+  __ Bind(&if_true);
+  {
+    __ SetAccumulator(false_value);
+    __ Goto(&end);
+  }
+  __ Bind(&if_false);
+  {
+    if (FLAG_debug_code) {
+      __ AbortIfWordNotEqual(value, false_value,
+                             BailoutReason::kExpectedBooleanValue);
+    }
+    __ SetAccumulator(true_value);
+    __ Goto(&end);
+  }
+  __ Bind(&end);
+}
 
-// LogicalNot
+// ToBooleanLogicalNot
 //
 // Perform logical-not on the accumulator, first casting the
 // accumulator to a boolean value if required.
-void Interpreter::DoLogicalNot(InterpreterAssembler* assembler) {
+void Interpreter::DoToBooleanLogicalNot(InterpreterAssembler* assembler) {
   Callable callable = CodeFactory::ToBoolean(isolate_);
   Node* target = __ HeapConstant(callable.code());
   Node* accumulator = __ GetAccumulator();
   Node* context = __ GetContext();
   Node* to_boolean_value =
       __ CallStub(callable.descriptor(), target, context, accumulator);
-  InterpreterAssembler::Label if_true(assembler), if_false(assembler);
-  Node* true_value = __ BooleanConstant(true);
-  Node* false_value = __ BooleanConstant(false);
-  Node* condition = __ WordEqual(to_boolean_value, true_value);
-  __ Branch(condition, &if_true, &if_false);
-  __ Bind(&if_true);
-  {
-    __ SetAccumulator(false_value);
-    __ Dispatch();
-  }
-  __ Bind(&if_false);
-  {
-    __ SetAccumulator(true_value);
-    __ Dispatch();
-  }
+  DoLogicalNotOp(to_boolean_value, assembler);
+  __ Dispatch();
+}
+
+// LogicalNot
+//
+// Perform logical-not on the accumulator, which must already be a boolean
+// value.
+void Interpreter::DoLogicalNot(InterpreterAssembler* assembler) {
+  Node* value = __ GetAccumulator();
+  DoLogicalNotOp(value, assembler);
+  __ Dispatch();
 }
 
 // TypeOf
@@ -1058,7 +1172,7 @@
 // Test if the object referenced by the register operand is a property of the
 // object referenced by the accumulator.
 void Interpreter::DoTestIn(InterpreterAssembler* assembler) {
-  DoBinaryOp(Runtime::kHasProperty, assembler);
+  DoBinaryOp(CodeFactory::HasProperty(isolate_), assembler);
 }
 
 
@@ -1067,7 +1181,7 @@
 // Test if the object referenced by the <src> register is an an instance of type
 // referenced by the accumulator.
 void Interpreter::DoTestInstanceOf(InterpreterAssembler* assembler) {
-  DoBinaryOp(Runtime::kInstanceOf, assembler);
+  DoBinaryOp(CodeFactory::InstanceOf(isolate_), assembler);
 }
 
 void Interpreter::DoTypeConversionOp(Callable callable,
@@ -1316,23 +1430,6 @@
   __ JumpIfWordNotEqual(accumulator, the_hole_value, relative_jump);
 }
 
-void Interpreter::DoCreateLiteral(Runtime::FunctionId function_id,
-                                  InterpreterAssembler* assembler) {
-  Node* index = __ BytecodeOperandIdx(0);
-  Node* constant_elements = __ LoadConstantPoolEntry(index);
-  Node* literal_index_raw = __ BytecodeOperandIdx(1);
-  Node* literal_index = __ SmiTag(literal_index_raw);
-  Node* flags_raw = __ BytecodeOperandFlag(2);
-  Node* flags = __ SmiTag(flags_raw);
-  Node* closure = __ LoadRegister(Register::function_closure());
-  Node* context = __ GetContext();
-  Node* result = __ CallRuntime(function_id, context, closure, literal_index,
-                                constant_elements, flags);
-  __ SetAccumulator(result);
-  __ Dispatch();
-}
-
-
 // CreateRegExpLiteral <pattern_idx> <literal_idx> <flags>
 //
 // Creates a regular expression literal for literal index <literal_idx> with
@@ -1359,15 +1456,67 @@
 // Creates an array literal for literal index <literal_idx> with flags <flags>
 // and constant elements in <element_idx>.
 void Interpreter::DoCreateArrayLiteral(InterpreterAssembler* assembler) {
-  DoCreateLiteral(Runtime::kCreateArrayLiteral, assembler);
+  Node* index = __ BytecodeOperandIdx(0);
+  Node* constant_elements = __ LoadConstantPoolEntry(index);
+  Node* literal_index_raw = __ BytecodeOperandIdx(1);
+  Node* literal_index = __ SmiTag(literal_index_raw);
+  Node* flags_raw = __ BytecodeOperandFlag(2);
+  Node* flags = __ SmiTag(flags_raw);
+  Node* closure = __ LoadRegister(Register::function_closure());
+  Node* context = __ GetContext();
+  Node* result = __ CallRuntime(Runtime::kCreateArrayLiteral, context, closure,
+                                literal_index, constant_elements, flags);
+  __ SetAccumulator(result);
+  __ Dispatch();
 }
 
 // CreateObjectLiteral <element_idx> <literal_idx> <flags>
 //
-// Creates an object literal for literal index <literal_idx> with flags <flags>
-// and constant elements in <element_idx>.
+// Creates an object literal for literal index <literal_idx> with
+// CreateObjectLiteralFlags <flags> and constant elements in <element_idx>.
 void Interpreter::DoCreateObjectLiteral(InterpreterAssembler* assembler) {
-  DoCreateLiteral(Runtime::kCreateObjectLiteral, assembler);
+  Node* literal_index_raw = __ BytecodeOperandIdx(1);
+  Node* literal_index = __ SmiTag(literal_index_raw);
+  Node* bytecode_flags = __ BytecodeOperandFlag(2);
+  Node* closure = __ LoadRegister(Register::function_closure());
+
+  // Check if we can do a fast clone or have to call the runtime.
+  Label if_fast_clone(assembler),
+      if_not_fast_clone(assembler, Label::kDeferred);
+  Node* fast_clone_properties_count =
+      __ BitFieldDecode<CreateObjectLiteralFlags::FastClonePropertiesCountBits>(
+          bytecode_flags);
+  __ BranchIf(fast_clone_properties_count, &if_fast_clone, &if_not_fast_clone);
+
+  __ Bind(&if_fast_clone);
+  {
+    // If we can do a fast clone do the fast-path in FastCloneShallowObjectStub.
+    Node* result = FastCloneShallowObjectStub::GenerateFastPath(
+        assembler, &if_not_fast_clone, closure, literal_index,
+        fast_clone_properties_count);
+    __ SetAccumulator(result);
+    __ Dispatch();
+  }
+
+  __ Bind(&if_not_fast_clone);
+  {
+    // If we can't do a fast clone, call into the runtime.
+    Node* index = __ BytecodeOperandIdx(0);
+    Node* constant_elements = __ LoadConstantPoolEntry(index);
+    Node* context = __ GetContext();
+
+    STATIC_ASSERT(CreateObjectLiteralFlags::FlagsBits::kShift == 0);
+    Node* flags_raw = __ Word32And(
+        bytecode_flags,
+        __ Int32Constant(CreateObjectLiteralFlags::FlagsBits::kMask));
+    Node* flags = __ SmiTag(flags_raw);
+
+    Node* result =
+        __ CallRuntime(Runtime::kCreateObjectLiteral, context, closure,
+                       literal_index, constant_elements, flags);
+    __ SetAccumulator(result);
+    __ Dispatch();
+  }
 }
 
 // CreateClosure <index> <tenured>
@@ -1394,10 +1543,40 @@
 void Interpreter::DoCreateMappedArguments(InterpreterAssembler* assembler) {
   Node* closure = __ LoadRegister(Register::function_closure());
   Node* context = __ GetContext();
-  Node* result =
-      __ CallRuntime(Runtime::kNewSloppyArguments_Generic, context, closure);
-  __ SetAccumulator(result);
-  __ Dispatch();
+
+  Label if_duplicate_parameters(assembler, Label::kDeferred);
+  Label if_not_duplicate_parameters(assembler);
+
+  // Check if function has duplicate parameters.
+  // TODO(rmcilroy): Remove this check when FastNewSloppyArgumentsStub supports
+  // duplicate parameters.
+  Node* shared_info =
+      __ LoadObjectField(closure, JSFunction::kSharedFunctionInfoOffset);
+  Node* compiler_hints = __ LoadObjectField(
+      shared_info, SharedFunctionInfo::kHasDuplicateParametersByteOffset,
+      MachineType::Uint8());
+  Node* duplicate_parameters_bit = __ Int32Constant(
+      1 << SharedFunctionInfo::kHasDuplicateParametersBitWithinByte);
+  Node* compare = __ Word32And(compiler_hints, duplicate_parameters_bit);
+  __ BranchIf(compare, &if_duplicate_parameters, &if_not_duplicate_parameters);
+
+  __ Bind(&if_not_duplicate_parameters);
+  {
+    // TODO(rmcilroy): Inline FastNewSloppyArguments when it is a TurboFan stub.
+    Callable callable = CodeFactory::FastNewSloppyArguments(isolate_, true);
+    Node* target = __ HeapConstant(callable.code());
+    Node* result = __ CallStub(callable.descriptor(), target, context, closure);
+    __ SetAccumulator(result);
+    __ Dispatch();
+  }
+
+  __ Bind(&if_duplicate_parameters);
+  {
+    Node* result =
+        __ CallRuntime(Runtime::kNewSloppyArguments_Generic, context, closure);
+    __ SetAccumulator(result);
+    __ Dispatch();
+  }
 }
 
 
@@ -1405,7 +1584,8 @@
 //
 // Creates a new unmapped arguments object.
 void Interpreter::DoCreateUnmappedArguments(InterpreterAssembler* assembler) {
-  Callable callable = CodeFactory::FastNewStrictArguments(isolate_);
+  // TODO(rmcilroy): Inline FastNewStrictArguments when it is a TurboFan stub.
+  Callable callable = CodeFactory::FastNewStrictArguments(isolate_, true);
   Node* target = __ HeapConstant(callable.code());
   Node* context = __ GetContext();
   Node* closure = __ LoadRegister(Register::function_closure());
@@ -1418,7 +1598,8 @@
 //
 // Creates a new rest parameter array.
 void Interpreter::DoCreateRestParameter(InterpreterAssembler* assembler) {
-  Callable callable = CodeFactory::FastNewRestParameter(isolate_);
+  // TODO(rmcilroy): Inline FastNewRestArguments when it is a TurboFan stub.
+  Callable callable = CodeFactory::FastNewRestParameter(isolate_, true);
   Node* target = __ HeapConstant(callable.code());
   Node* closure = __ LoadRegister(Register::function_closure());
   Node* context = __ GetContext();
@@ -1431,8 +1612,20 @@
 //
 // Performs a stack guard check.
 void Interpreter::DoStackCheck(InterpreterAssembler* assembler) {
-  __ StackCheck();
+  Label ok(assembler), stack_check_interrupt(assembler, Label::kDeferred);
+
+  Node* interrupt = __ StackCheckTriggeredInterrupt();
+  __ BranchIf(interrupt, &stack_check_interrupt, &ok);
+
+  __ Bind(&ok);
   __ Dispatch();
+
+  __ Bind(&stack_check_interrupt);
+  {
+    Node* context = __ GetContext();
+    __ CallRuntime(Runtime::kStackGuard, context);
+    __ Dispatch();
+  }
 }
 
 // Throw
@@ -1463,7 +1656,9 @@
 //
 // Return the value in the accumulator.
 void Interpreter::DoReturn(InterpreterAssembler* assembler) {
-  __ InterpreterReturn();
+  __ UpdateInterruptBudgetOnReturn();
+  Node* accumulator = __ GetAccumulator();
+  __ Return(accumulator);
 }
 
 // Debugger
@@ -1525,13 +1720,14 @@
   Node* cache_array = __ LoadRegister(cache_array_reg);
 
   // Load the next key from the enumeration array.
-  Node* key = __ LoadFixedArrayElementSmiIndex(cache_array, index);
+  Node* key = __ LoadFixedArrayElement(cache_array, index, 0,
+                                       CodeStubAssembler::SMI_PARAMETERS);
 
   // Check if we can use the for-in fast path potentially using the enum cache.
-  InterpreterAssembler::Label if_fast(assembler), if_slow(assembler);
+  Label if_fast(assembler), if_slow(assembler, Label::kDeferred);
   Node* receiver_map = __ LoadObjectField(receiver, HeapObject::kMapOffset);
   Node* condition = __ WordEqual(receiver_map, cache_type);
-  __ Branch(condition, &if_fast, &if_slow);
+  __ BranchIf(condition, &if_fast, &if_slow);
   __ Bind(&if_fast);
   {
     // Enum cache in use for {receiver}, the {key} is definitely valid.
@@ -1545,8 +1741,8 @@
     Node* type_feedback_vector = __ LoadTypeFeedbackVector();
     Node* megamorphic_sentinel =
         __ HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate_));
-    __ StoreFixedArrayElementNoWriteBarrier(type_feedback_vector, vector_index,
-                                            megamorphic_sentinel);
+    __ StoreFixedArrayElement(type_feedback_vector, vector_index,
+                              megamorphic_sentinel, SKIP_WRITE_BARRIER);
 
     // Need to filter the {key} for the {receiver}.
     Node* context = __ GetContext();
@@ -1567,21 +1763,20 @@
   Node* cache_length = __ LoadRegister(cache_length_reg);
 
   // Check if {index} is at {cache_length} already.
-  InterpreterAssembler::Label if_true(assembler), if_false(assembler);
-  Node* condition = __ WordEqual(index, cache_length);
-  __ Branch(condition, &if_true, &if_false);
+  Label if_true(assembler), if_false(assembler), end(assembler);
+  __ BranchIfWordEqual(index, cache_length, &if_true, &if_false);
   __ Bind(&if_true);
   {
-    Node* result = __ BooleanConstant(true);
-    __ SetAccumulator(result);
-    __ Dispatch();
+    __ SetAccumulator(__ BooleanConstant(true));
+    __ Goto(&end);
   }
   __ Bind(&if_false);
   {
-    Node* result = __ BooleanConstant(false);
-    __ SetAccumulator(result);
-    __ Dispatch();
+    __ SetAccumulator(__ BooleanConstant(false));
+    __ Goto(&end);
   }
+  __ Bind(&end);
+  __ Dispatch();
 }
 
 // ForInStep <index>
@@ -1618,6 +1813,53 @@
   __ Abort(kInvalidBytecode);
 }
 
+// Nop
+//
+// No operation.
+void Interpreter::DoNop(InterpreterAssembler* assembler) { __ Dispatch(); }
+
+// SuspendGenerator <generator>
+//
+// Exports the register file and stores it into the generator.  Also stores the
+// current context and the state given in the accumulator into the generator.
+void Interpreter::DoSuspendGenerator(InterpreterAssembler* assembler) {
+  Node* generator_reg = __ BytecodeOperandReg(0);
+  Node* generator = __ LoadRegister(generator_reg);
+
+  Node* array =
+      __ LoadObjectField(generator, JSGeneratorObject::kOperandStackOffset);
+  Node* context = __ GetContext();
+  Node* state = __ GetAccumulator();
+
+  __ ExportRegisterFile(array);
+  __ StoreObjectField(generator, JSGeneratorObject::kContextOffset, context);
+  __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset, state);
+
+  __ Dispatch();
+}
+
+// ResumeGenerator <generator>
+//
+// Imports the register file stored in the generator. Also loads the
+// generator's state and stores it in the accumulator, before overwriting it
+// with kGeneratorExecuting.
+void Interpreter::DoResumeGenerator(InterpreterAssembler* assembler) {
+  Node* generator_reg = __ BytecodeOperandReg(0);
+  Node* generator = __ LoadRegister(generator_reg);
+
+  __ ImportRegisterFile(
+      __ LoadObjectField(generator, JSGeneratorObject::kOperandStackOffset));
+
+  Node* old_state =
+      __ LoadObjectField(generator, JSGeneratorObject::kContinuationOffset);
+  Node* new_state = __ Int32Constant(JSGeneratorObject::kGeneratorExecuting);
+  __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset,
+      __ SmiTag(new_state));
+  __ SetAccumulator(old_state);
+
+  __ Dispatch();
+}
+
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/src/interpreter/interpreter.h b/src/interpreter/interpreter.h
index ea50faa..d774d8b 100644
--- a/src/interpreter/interpreter.h
+++ b/src/interpreter/interpreter.h
@@ -21,6 +21,10 @@
 class Callable;
 class CompilationInfo;
 
+namespace compiler {
+class Node;
+}  // namespace compiler
+
 namespace interpreter {
 
 class InterpreterAssembler;
@@ -49,10 +53,16 @@
   void TraceCodegen(Handle<Code> code);
   const char* LookupNameOfBytecodeHandler(Code* code);
 
+  Local<v8::Object> GetDispatchCountersObject();
+
   Address dispatch_table_address() {
     return reinterpret_cast<Address>(&dispatch_table_[0]);
   }
 
+  Address bytecode_dispatch_counters_table() {
+    return reinterpret_cast<Address>(bytecode_dispatch_counters_table_.get());
+  }
+
  private:
 // Bytecode handler generator functions.
 #define DECLARE_BYTECODE_HANDLER_GENERATOR(Name, ...) \
@@ -60,16 +70,20 @@
   BYTECODE_LIST(DECLARE_BYTECODE_HANDLER_GENERATOR)
 #undef DECLARE_BYTECODE_HANDLER_GENERATOR
 
-  // Generates code to perform the binary operations via |callable|.
+  // Generates code to perform the binary operation via |callable|.
   void DoBinaryOp(Callable callable, InterpreterAssembler* assembler);
 
-  // Generates code to perform the binary operations via |function_id|.
+  // Generates code to perform the binary operation via |function_id|.
   void DoBinaryOp(Runtime::FunctionId function_id,
                   InterpreterAssembler* assembler);
 
-  // Generates code to perform the count operations via |function_id|.
-  void DoCountOp(Runtime::FunctionId function_id,
-                 InterpreterAssembler* assembler);
+  // Generates code to perform the binary operation via |Generator|.
+  template <class Generator>
+  void DoBinaryOp(InterpreterAssembler* assembler);
+
+  // Generates code to perform the unary operation via |Generator|.
+  template <class Generator>
+  void DoUnaryOp(InterpreterAssembler* assembler);
 
   // Generates code to perform the comparison operation associated with
   // |compare_op|.
@@ -114,9 +128,8 @@
   // Generates code to perform a type conversion.
   void DoTypeConversionOp(Callable callable, InterpreterAssembler* assembler);
 
-  // Generates code ro create a literal via |function_id|.
-  void DoCreateLiteral(Runtime::FunctionId function_id,
-                       InterpreterAssembler* assembler);
+  // Generates code to perform logical-not on boolean |value|.
+  void DoLogicalNotOp(compiler::Node* value, InterpreterAssembler* assembler);
 
   // Generates code to perform delete via function_id.
   void DoDelete(Runtime::FunctionId function_id,
@@ -130,6 +143,8 @@
   void DoStoreLookupSlot(LanguageMode language_mode,
                          InterpreterAssembler* assembler);
 
+  uintptr_t GetDispatchCounter(Bytecode from, Bytecode to) const;
+
   // Get dispatch table index of bytecode.
   static size_t GetDispatchTableIndex(Bytecode bytecode,
                                       OperandScale operand_scale);
@@ -138,9 +153,11 @@
 
   static const int kNumberOfWideVariants = 3;
   static const int kDispatchTableSize = kNumberOfWideVariants * (kMaxUInt8 + 1);
+  static const int kNumberOfBytecodes = static_cast<int>(Bytecode::kLast) + 1;
 
   Isolate* isolate_;
-  Code* dispatch_table_[kDispatchTableSize];
+  Address dispatch_table_[kDispatchTableSize];
+  v8::base::SmartArrayPointer<uintptr_t> bytecode_dispatch_counters_table_;
 
   DISALLOW_COPY_AND_ASSIGN(Interpreter);
 };
diff --git a/src/interpreter/source-position-table.cc b/src/interpreter/source-position-table.cc
index 99a865b..65bfa20 100644
--- a/src/interpreter/source-position-table.cc
+++ b/src/interpreter/source-position-table.cc
@@ -115,53 +115,34 @@
 
 }  // namespace
 
-void SourcePositionTableBuilder::AddStatementPosition(size_t bytecode_offset,
-                                                      int source_position) {
+void SourcePositionTableBuilder::AddPosition(size_t bytecode_offset,
+                                             int source_position,
+                                             bool is_statement) {
   int offset = static_cast<int>(bytecode_offset);
-  AddEntry({offset, source_position, true});
-}
-
-void SourcePositionTableBuilder::AddExpressionPosition(size_t bytecode_offset,
-                                                       int source_position) {
-  int offset = static_cast<int>(bytecode_offset);
-  AddEntry({offset, source_position, false});
+  AddEntry({offset, source_position, is_statement});
 }
 
 void SourcePositionTableBuilder::AddEntry(const PositionTableEntry& entry) {
-  // Don't encode a new entry if this bytecode already has a source position
-  // assigned.
-  if (candidate_.bytecode_offset == entry.bytecode_offset) {
-    if (entry.is_statement) candidate_ = entry;
-    return;
-  }
-
-  CommitEntry();
-  candidate_ = entry;
-}
-
-void SourcePositionTableBuilder::CommitEntry() {
-  if (candidate_.bytecode_offset == kUninitializedCandidateOffset) return;
-  PositionTableEntry tmp(candidate_);
+  PositionTableEntry tmp(entry);
   SubtractFromEntry(tmp, previous_);
   EncodeEntry(bytes_, tmp);
-  previous_ = candidate_;
+  previous_ = entry;
 
-  if (candidate_.is_statement) {
+  if (entry.is_statement) {
     LOG_CODE_EVENT(isolate_, CodeLinePosInfoAddStatementPositionEvent(
-                                 jit_handler_data_, candidate_.bytecode_offset,
-                                 candidate_.source_position));
+                                 jit_handler_data_, entry.bytecode_offset,
+                                 entry.source_position));
   }
   LOG_CODE_EVENT(isolate_, CodeLinePosInfoAddPositionEvent(
-                               jit_handler_data_, candidate_.bytecode_offset,
-                               candidate_.source_position));
+                               jit_handler_data_, entry.bytecode_offset,
+                               entry.source_position));
 
 #ifdef ENABLE_SLOW_DCHECKS
-  raw_entries_.push_back(candidate_);
+  raw_entries_.push_back(entry);
 #endif
 }
 
 Handle<ByteArray> SourcePositionTableBuilder::ToSourcePositionTable() {
-  CommitEntry();
   if (bytes_.empty()) return isolate_->factory()->empty_byte_array();
 
   Handle<ByteArray> table = isolate_->factory()->NewByteArray(
diff --git a/src/interpreter/source-position-table.h b/src/interpreter/source-position-table.h
index 3ac58d6..220ef39 100644
--- a/src/interpreter/source-position-table.h
+++ b/src/interpreter/source-position-table.h
@@ -34,7 +34,7 @@
   bool is_statement;
 };
 
-class SourcePositionTableBuilder : public PositionsRecorder {
+class SourcePositionTableBuilder final : public PositionsRecorder {
  public:
   SourcePositionTableBuilder(Isolate* isolate, Zone* zone)
       : isolate_(isolate),
@@ -42,16 +42,14 @@
 #ifdef ENABLE_SLOW_DCHECKS
         raw_entries_(zone),
 #endif
-        candidate_(kUninitializedCandidateOffset, 0, false) {
+        previous_() {
   }
 
-  void AddStatementPosition(size_t bytecode_offset, int source_position);
-  void AddExpressionPosition(size_t bytecode_offset, int source_position);
+  void AddPosition(size_t bytecode_offset, int source_position,
+                   bool is_statement);
   Handle<ByteArray> ToSourcePositionTable();
 
  private:
-  static const int kUninitializedCandidateOffset = -1;
-
   void AddEntry(const PositionTableEntry& entry);
   void CommitEntry();
 
@@ -60,7 +58,6 @@
 #ifdef ENABLE_SLOW_DCHECKS
   ZoneVector<PositionTableEntry> raw_entries_;
 #endif
-  PositionTableEntry candidate_;  // Next entry to be written, if initialized.
   PositionTableEntry previous_;   // Previously written entry, to compute delta.
 };
 
diff --git a/src/isolate-inl.h b/src/isolate-inl.h
index da36f76..48ea0aa 100644
--- a/src/isolate-inl.h
+++ b/src/isolate-inl.h
@@ -73,7 +73,11 @@
 
 
 Handle<JSGlobalObject> Isolate::global_object() {
-  return Handle<JSGlobalObject>(context()->global_object(), this);
+  return handle(context()->global_object(), this);
+}
+
+Handle<JSObject> Isolate::global_proxy() {
+  return handle(context()->global_proxy(), this);
 }
 
 
@@ -111,11 +115,17 @@
   // done here. In place, there are mjsunit tests harmony/array-species* which
   // ensure that behavior is correct in various invalid protector cases.
 
-  PropertyCell* species_cell = heap()->species_protector();
+  Cell* species_cell = heap()->species_protector();
   return species_cell->value()->IsSmi() &&
          Smi::cast(species_cell->value())->value() == kArrayProtectorValid;
 }
 
+bool Isolate::IsHasInstanceLookupChainIntact() {
+  if (!FLAG_harmony_instanceof) return true;
+  PropertyCell* has_instance_cell = heap()->has_instance_protector();
+  return has_instance_cell->value() == Smi::FromInt(kArrayProtectorValid);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/isolate.cc b/src/isolate.cc
index c9f0111..9d35113 100644
--- a/src/isolate.cc
+++ b/src/isolate.cc
@@ -321,7 +321,6 @@
 // yet.
 static bool IsVisibleInStackTrace(JSFunction* fun,
                                   Object* caller,
-                                  Object* receiver,
                                   bool* seen_caller) {
   if ((fun == caller) && !(*seen_caller)) {
     *seen_caller = true;
@@ -397,9 +396,7 @@
           Handle<JSFunction> fun = frames[i].function();
           Handle<Object> recv = frames[i].receiver();
           // Filter out internal frames that we do not want to show.
-          if (!IsVisibleInStackTrace(*fun, *caller, *recv, &seen_caller)) {
-            continue;
-          }
+          if (!IsVisibleInStackTrace(*fun, *caller, &seen_caller)) continue;
           // Filter out frames from other security contexts.
           if (!this->context()->HasSameSecurityTokenAs(fun->context())) {
             continue;
@@ -433,14 +430,13 @@
         Code* code = wasm_frame->unchecked_code();
         Handle<AbstractCode> abstract_code =
             Handle<AbstractCode>(AbstractCode::cast(code));
-        Handle<JSFunction> fun = factory()->NewFunction(
-            factory()->NewStringFromAsciiChecked("<WASM>"));
+        int offset =
+            static_cast<int>(wasm_frame->pc() - code->instruction_start());
         elements = MaybeGrow(this, elements, cursor, cursor + 4);
-        // TODO(jfb) Pass module object.
-        elements->set(cursor++, *factory()->undefined_value());
-        elements->set(cursor++, *fun);
+        elements->set(cursor++, wasm_frame->wasm_obj());
+        elements->set(cursor++, Smi::FromInt(wasm_frame->function_index()));
         elements->set(cursor++, *abstract_code);
-        elements->set(cursor++, Internals::IntToSmi(0));
+        elements->set(cursor++, Smi::FromInt(offset));
         frames_seen++;
       } break;
 
@@ -542,11 +538,16 @@
     }
   }
 
+  Handle<JSObject> NewStackFrameObject(FrameSummary& summ) {
+    int position = summ.abstract_code()->SourcePosition(summ.code_offset());
+    return NewStackFrameObject(summ.function(), position,
+                               summ.is_constructor());
+  }
+
   Handle<JSObject> NewStackFrameObject(Handle<JSFunction> fun, int position,
                                        bool is_constructor) {
     Handle<JSObject> stack_frame =
         factory()->NewJSObject(isolate_->object_function());
-
     Handle<Script> script(Script::cast(fun->shared()->script()));
 
     if (!line_key_.is_null()) {
@@ -556,12 +557,14 @@
       int relative_line_number = line_number - script_line_offset;
       if (!column_key_.is_null() && relative_line_number >= 0) {
         Handle<FixedArray> line_ends(FixedArray::cast(script->line_ends()));
-        int start = (relative_line_number == 0) ? 0 :
-            Smi::cast(line_ends->get(relative_line_number - 1))->value() + 1;
+        int start =
+            (relative_line_number == 0)
+                ? 0
+                : Smi::cast(line_ends->get(relative_line_number - 1))->value() +
+                      1;
         int column_offset = position - start;
         if (relative_line_number == 0) {
-          // For the case where the code is on the same line as the script
-          // tag.
+          // For the case where the code is on the same line as the script tag.
           column_offset += script->column_offset();
         }
         JSObject::AddProperty(stack_frame, column_key_,
@@ -589,22 +592,51 @@
                             NONE);
     }
 
-    if (!function_key_.is_null()) {
-      Handle<Object> fun_name = JSFunction::GetDebugName(fun);
-      JSObject::AddProperty(stack_frame, function_key_, fun_name, NONE);
-    }
-
     if (!eval_key_.is_null()) {
       Handle<Object> is_eval = factory()->ToBoolean(
           script->compilation_type() == Script::COMPILATION_TYPE_EVAL);
       JSObject::AddProperty(stack_frame, eval_key_, is_eval, NONE);
     }
 
+    if (!function_key_.is_null()) {
+      Handle<Object> fun_name = JSFunction::GetDebugName(fun);
+      JSObject::AddProperty(stack_frame, function_key_, fun_name, NONE);
+    }
+
     if (!constructor_key_.is_null()) {
       Handle<Object> is_constructor_obj = factory()->ToBoolean(is_constructor);
       JSObject::AddProperty(stack_frame, constructor_key_, is_constructor_obj,
                             NONE);
     }
+    return stack_frame;
+  }
+
+  Handle<JSObject> NewStackFrameObject(WasmFrame* frame) {
+    Handle<JSObject> stack_frame =
+        factory()->NewJSObject(isolate_->object_function());
+
+    if (!function_key_.is_null()) {
+      Handle<Object> fun_name = handle(frame->function_name(), isolate_);
+      if (fun_name->IsUndefined())
+        fun_name = isolate_->factory()->InternalizeUtf8String(
+            Vector<const char>("<WASM>"));
+      JSObject::AddProperty(stack_frame, function_key_, fun_name, NONE);
+    }
+    // Encode the function index as line number.
+    if (!line_key_.is_null()) {
+      JSObject::AddProperty(
+          stack_frame, line_key_,
+          isolate_->factory()->NewNumberFromInt(frame->function_index()), NONE);
+    }
+    // Encode the byte offset as column.
+    if (!column_key_.is_null()) {
+      Code* code = frame->LookupCode();
+      int offset = static_cast<int>(frame->pc() - code->instruction_start());
+      int position = code->SourcePosition(offset);
+      JSObject::AddProperty(stack_frame, column_key_,
+                            isolate_->factory()->NewNumberFromInt(position),
+                            NONE);
+    }
 
     return stack_frame;
   }
@@ -683,29 +715,34 @@
   // Ensure no negative values.
   int limit = Max(frame_limit, 0);
   Handle<JSArray> stack_trace = factory()->NewJSArray(frame_limit);
+  Handle<FixedArray> stack_trace_elems(
+      FixedArray::cast(stack_trace->elements()), this);
 
-  StackTraceFrameIterator it(this);
   int frames_seen = 0;
-  while (!it.done() && (frames_seen < limit)) {
-    JavaScriptFrame* frame = it.frame();
-    // Set initial size to the maximum inlining level + 1 for the outermost
-    // function.
-    List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
-    frame->Summarize(&frames);
-    for (int i = frames.length() - 1; i >= 0 && frames_seen < limit; i--) {
-      Handle<JSFunction> fun = frames[i].function();
-      // Filter frames from other security contexts.
-      if (!(options & StackTrace::kExposeFramesAcrossSecurityOrigins) &&
-          !this->context()->HasSameSecurityTokenAs(fun->context())) continue;
-      int position =
-          frames[i].abstract_code()->SourcePosition(frames[i].code_offset());
-      Handle<JSObject> stack_frame =
-          helper.NewStackFrameObject(fun, position, frames[i].is_constructor());
-
-      FixedArray::cast(stack_trace->elements())->set(frames_seen, *stack_frame);
+  for (StackTraceFrameIterator it(this); !it.done() && (frames_seen < limit);
+       it.Advance()) {
+    StandardFrame* frame = it.frame();
+    if (frame->is_java_script()) {
+      // Set initial size to the maximum inlining level + 1 for the outermost
+      // function.
+      List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
+      JavaScriptFrame::cast(frame)->Summarize(&frames);
+      for (int i = frames.length() - 1; i >= 0 && frames_seen < limit; i--) {
+        Handle<JSFunction> fun = frames[i].function();
+        // Filter frames from other security contexts.
+        if (!(options & StackTrace::kExposeFramesAcrossSecurityOrigins) &&
+            !this->context()->HasSameSecurityTokenAs(fun->context()))
+          continue;
+        Handle<JSObject> new_frame_obj = helper.NewStackFrameObject(frames[i]);
+        stack_trace_elems->set(frames_seen, *new_frame_obj);
+        frames_seen++;
+      }
+    } else {
+      WasmFrame* wasm_frame = WasmFrame::cast(frame);
+      Handle<JSObject> new_frame_obj = helper.NewStackFrameObject(wasm_frame);
+      stack_trace_elems->set(frames_seen, *new_frame_obj);
       frames_seen++;
     }
-    it.Advance();
   }
 
   stack_trace->set_length(Smi::FromInt(frames_seen));
@@ -1162,7 +1199,7 @@
         // position of the exception handler. The special builtin below will
         // take care of continuing to dispatch at that position. Also restore
         // the correct context for the handler from the interpreter register.
-        context = Context::cast(js_frame->GetInterpreterRegister(context_reg));
+        context = Context::cast(js_frame->ReadInterpreterRegister(context_reg));
         js_frame->PatchBytecodeOffset(static_cast<int>(offset));
         offset = 0;
 
@@ -1318,14 +1355,26 @@
   while (!it.done()) {
     HandleScope scope(this);
     // Find code position if recorded in relocation info.
-    JavaScriptFrame* frame = it.frame();
-    Code* code = frame->LookupCode();
-    int offset = static_cast<int>(frame->pc() - code->instruction_start());
-    int pos = frame->LookupCode()->SourcePosition(offset);
+    StandardFrame* frame = it.frame();
+    int pos;
+    if (frame->is_interpreted()) {
+      InterpretedFrame* iframe = reinterpret_cast<InterpretedFrame*>(frame);
+      pos = iframe->GetBytecodeArray()->SourcePosition(
+          iframe->GetBytecodeOffset());
+    } else if (frame->is_java_script()) {
+      Code* code = frame->LookupCode();
+      int offset = static_cast<int>(frame->pc() - code->instruction_start());
+      pos = frame->LookupCode()->SourcePosition(offset);
+    } else {
+      DCHECK(frame->is_wasm());
+      // TODO(clemensh): include wasm frames here
+      continue;
+    }
+    JavaScriptFrame* js_frame = JavaScriptFrame::cast(frame);
     Handle<Object> pos_obj(Smi::FromInt(pos), this);
     // Fetch function and receiver.
-    Handle<JSFunction> fun(frame->function());
-    Handle<Object> recv(frame->receiver(), this);
+    Handle<JSFunction> fun(js_frame->function());
+    Handle<Object> recv(js_frame->receiver(), this);
     // Advance to the next JavaScript frame and determine if the
     // current frame is the top-level frame.
     it.Advance();
@@ -1340,31 +1389,29 @@
   }
 }
 
-
 bool Isolate::ComputeLocation(MessageLocation* target) {
   StackTraceFrameIterator it(this);
-  if (!it.done()) {
-    JavaScriptFrame* frame = it.frame();
-    JSFunction* fun = frame->function();
-    Object* script = fun->shared()->script();
-    if (script->IsScript() &&
-        !(Script::cast(script)->source()->IsUndefined())) {
-      Handle<Script> casted_script(Script::cast(script));
-      // Compute the location from the function and the relocation info of the
-      // baseline code. For optimized code this will use the deoptimization
-      // information to get canonical location information.
-      List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
-      it.frame()->Summarize(&frames);
-      FrameSummary& summary = frames.last();
-      int pos = summary.abstract_code()->SourcePosition(summary.code_offset());
-      *target = MessageLocation(casted_script, pos, pos + 1, handle(fun));
-      return true;
-    }
+  if (it.done()) return false;
+  StandardFrame* frame = it.frame();
+  // TODO(clemensh): handle wasm frames
+  if (!frame->is_java_script()) return false;
+  JSFunction* fun = JavaScriptFrame::cast(frame)->function();
+  Object* script = fun->shared()->script();
+  if (!script->IsScript() || (Script::cast(script)->source()->IsUndefined())) {
+    return false;
   }
-  return false;
+  Handle<Script> casted_script(Script::cast(script));
+  // Compute the location from the function and the relocation info of the
+  // baseline code. For optimized code this will use the deoptimization
+  // information to get canonical location information.
+  List<FrameSummary> frames(FLAG_max_inlining_levels + 1);
+  JavaScriptFrame::cast(frame)->Summarize(&frames);
+  FrameSummary& summary = frames.last();
+  int pos = summary.abstract_code()->SourcePosition(summary.code_offset());
+  *target = MessageLocation(casted_script, pos, pos + 1, handle(fun));
+  return true;
 }
 
-
 bool Isolate::ComputeLocationFromException(MessageLocation* target,
                                            Handle<Object> exception) {
   if (!exception->IsJSObject()) return false;
@@ -1405,8 +1452,12 @@
   int elements_limit = Smi::cast(simple_stack_trace->length())->value();
 
   for (int i = 1; i < elements_limit; i += 4) {
-    Handle<JSFunction> fun =
-        handle(JSFunction::cast(elements->get(i + 1)), this);
+    Handle<Object> fun_obj = handle(elements->get(i + 1), this);
+    if (fun_obj->IsSmi()) {
+      // TODO(clemensh): handle wasm frames
+      return false;
+    }
+    Handle<JSFunction> fun = Handle<JSFunction>::cast(fun_obj);
     if (!fun->shared()->IsSubjectToDebugging()) continue;
 
     Object* script = fun->shared()->script();
@@ -1798,7 +1849,6 @@
       runtime_profiler_(NULL),
       compilation_cache_(NULL),
       counters_(NULL),
-      code_range_(NULL),
       logger_(NULL),
       stats_table_(NULL),
       stub_cache_(NULL),
@@ -1809,7 +1859,6 @@
       capture_stack_trace_for_uncaught_exceptions_(false),
       stack_trace_for_uncaught_exceptions_frame_limit_(0),
       stack_trace_for_uncaught_exceptions_options_(StackTrace::kOverview),
-      memory_allocator_(NULL),
       keyed_lookup_cache_(NULL),
       context_slot_cache_(NULL),
       descriptor_lookup_cache_(NULL),
@@ -1845,6 +1894,7 @@
 #if TRACE_MAPS
       next_unique_sfi_id_(0),
 #endif
+      is_running_microtasks_(false),
       use_counter_callback_(NULL),
       basic_block_profiler_(NULL),
       cancelable_task_manager_(new CancelableTaskManager()),
@@ -2067,10 +2117,6 @@
   delete thread_manager_;
   thread_manager_ = NULL;
 
-  delete memory_allocator_;
-  memory_allocator_ = NULL;
-  delete code_range_;
-  code_range_ = NULL;
   delete global_handles_;
   global_handles_ = NULL;
   delete eternal_handles_;
@@ -2164,9 +2210,6 @@
   // The initialization process does not handle memory exhaustion.
   AlwaysAllocateScope always_allocate(this);
 
-  memory_allocator_ = new MemoryAllocator(this);
-  code_range_ = new CodeRange(this);
-
   // Safe after setting Heap::isolate_, and initializing StackGuard
   heap_.SetStackLimits();
 
@@ -2225,7 +2268,7 @@
     return false;
   }
 
-  deoptimizer_data_ = new DeoptimizerData(memory_allocator_);
+  deoptimizer_data_ = new DeoptimizerData(heap()->memory_allocator());
 
   const bool create_heap_objects = (des == NULL);
   if (create_heap_objects && !heap_.CreateHeapObjects()) {
@@ -2247,7 +2290,8 @@
     set_event_logger(Logger::DefaultEventLoggerSentinel);
   }
 
-  if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs) {
+  if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs || FLAG_trace_turbo ||
+      FLAG_trace_turbo_graph) {
     PrintF("Concurrent recompilation has been disabled for tracing.\n");
   } else if (OptimizingCompileDispatcher::Enabled()) {
     optimizing_compile_dispatcher_ = new OptimizingCompileDispatcher(this);
@@ -2262,8 +2306,7 @@
     des->Deserialize(this);
   }
   stub_cache_->Initialize();
-
-  if (FLAG_ignition) {
+  if (FLAG_ignition || serializer_enabled()) {
     interpreter_->Initialize();
   }
 
@@ -2487,6 +2530,31 @@
          CpuFeatures::SupportsCrankshaft();
 }
 
+bool Isolate::IsArrayOrObjectPrototype(Object* object) {
+  Object* context = heap()->native_contexts_list();
+  while (context != heap()->undefined_value()) {
+    Context* current_context = Context::cast(context);
+    if (current_context->initial_object_prototype() == object ||
+        current_context->initial_array_prototype() == object) {
+      return true;
+    }
+    context = current_context->next_context_link();
+  }
+  return false;
+}
+
+bool Isolate::IsInAnyContext(Object* object, uint32_t index) {
+  DisallowHeapAllocation no_gc;
+  Object* context = heap()->native_contexts_list();
+  while (context != heap()->undefined_value()) {
+    Context* current_context = Context::cast(context);
+    if (current_context->get(index) == object) {
+      return true;
+    }
+    context = current_context->next_context_link();
+  }
+  return false;
+}
 
 bool Isolate::IsFastArrayConstructorPrototypeChainIntact() {
   PropertyCell* no_elements_cell = heap()->array_protector();
@@ -2547,52 +2615,72 @@
   return cell_reports_intact;
 }
 
-void Isolate::InvalidateArraySpeciesProtector() {
-  if (!FLAG_harmony_species) return;
-  DCHECK(factory()->species_protector()->value()->IsSmi());
-  DCHECK(IsArraySpeciesLookupChainIntact());
-  PropertyCell::SetValueWithInvalidation(
-      factory()->species_protector(),
-      handle(Smi::FromInt(kArrayProtectorInvalid), this));
-  DCHECK(!IsArraySpeciesLookupChainIntact());
+bool Isolate::IsIsConcatSpreadableLookupChainIntact() {
+  Cell* is_concat_spreadable_cell = heap()->is_concat_spreadable_protector();
+  bool is_is_concat_spreadable_set =
+      Smi::cast(is_concat_spreadable_cell->value())->value() ==
+      kArrayProtectorInvalid;
+#ifdef DEBUG
+  Map* root_array_map = get_initial_js_array_map(GetInitialFastElementsKind());
+  if (root_array_map == NULL) {
+    // Ignore the value of is_concat_spreadable during bootstrap.
+    return !is_is_concat_spreadable_set;
+  }
+  Handle<Object> array_prototype(array_function()->prototype(), this);
+  Handle<Symbol> key = factory()->is_concat_spreadable_symbol();
+  Handle<Object> value;
+  LookupIterator it(array_prototype, key);
+  if (it.IsFound() && !JSReceiver::GetDataProperty(&it)->IsUndefined()) {
+    // TODO(cbruni): Currently we do not revert if we unset the
+    // @@isConcatSpreadable property on Array.prototype or Object.prototype
+    // hence the reverse implication doesn't hold.
+    DCHECK(is_is_concat_spreadable_set);
+    return false;
+  }
+#endif  // DEBUG
+
+  return !is_is_concat_spreadable_set;
 }
 
 void Isolate::UpdateArrayProtectorOnSetElement(Handle<JSObject> object) {
   DisallowHeapAllocation no_gc;
-  if (IsFastArrayConstructorPrototypeChainIntact() &&
-      object->map()->is_prototype_map()) {
-    Object* context = heap()->native_contexts_list();
-    while (!context->IsUndefined()) {
-      Context* current_context = Context::cast(context);
-      if (current_context->get(Context::INITIAL_OBJECT_PROTOTYPE_INDEX) ==
-              *object ||
-          current_context->get(Context::INITIAL_ARRAY_PROTOTYPE_INDEX) ==
-              *object) {
-        CountUsage(v8::Isolate::UseCounterFeature::kArrayProtectorDirtied);
-        PropertyCell::SetValueWithInvalidation(
-            factory()->array_protector(),
-            handle(Smi::FromInt(kArrayProtectorInvalid), this));
-        break;
-      }
-      context = current_context->get(Context::NEXT_CONTEXT_LINK);
-    }
-  }
+  if (!object->map()->is_prototype_map()) return;
+  if (!IsFastArrayConstructorPrototypeChainIntact()) return;
+  if (!IsArrayOrObjectPrototype(*object)) return;
+  PropertyCell::SetValueWithInvalidation(
+      factory()->array_protector(),
+      handle(Smi::FromInt(kArrayProtectorInvalid), this));
 }
 
+void Isolate::InvalidateHasInstanceProtector() {
+  DCHECK(factory()->has_instance_protector()->value()->IsSmi());
+  DCHECK(IsHasInstanceLookupChainIntact());
+  PropertyCell::SetValueWithInvalidation(
+      factory()->has_instance_protector(),
+      handle(Smi::FromInt(kArrayProtectorInvalid), this));
+  DCHECK(!IsHasInstanceLookupChainIntact());
+}
+
+void Isolate::InvalidateIsConcatSpreadableProtector() {
+  DCHECK(factory()->is_concat_spreadable_protector()->value()->IsSmi());
+  DCHECK(IsIsConcatSpreadableLookupChainIntact());
+  factory()->is_concat_spreadable_protector()->set_value(
+      Smi::FromInt(kArrayProtectorInvalid));
+  DCHECK(!IsIsConcatSpreadableLookupChainIntact());
+}
+
+void Isolate::InvalidateArraySpeciesProtector() {
+  if (!FLAG_harmony_species) return;
+  DCHECK(factory()->species_protector()->value()->IsSmi());
+  DCHECK(IsArraySpeciesLookupChainIntact());
+  factory()->species_protector()->set_value(
+      Smi::FromInt(kArrayProtectorInvalid));
+  DCHECK(!IsArraySpeciesLookupChainIntact());
+}
 
 bool Isolate::IsAnyInitialArrayPrototype(Handle<JSArray> array) {
-  if (array->map()->is_prototype_map()) {
-    Object* context = heap()->native_contexts_list();
-    while (!context->IsUndefined()) {
-      Context* current_context = Context::cast(context);
-      if (current_context->get(Context::INITIAL_ARRAY_PROTOTYPE_INDEX) ==
-          *array) {
-        return true;
-      }
-      context = current_context->get(Context::NEXT_CONTEXT_LINK);
-    }
-  }
-  return false;
+  DisallowHeapAllocation no_gc;
+  return IsInAnyContext(*array, Context::INITIAL_ARRAY_PROTOTYPE_INDEX);
 }
 
 
@@ -2758,7 +2846,9 @@
   // Increase call depth to prevent recursive callbacks.
   v8::Isolate::SuppressMicrotaskExecutionScope suppress(
       reinterpret_cast<v8::Isolate*>(this));
+  is_running_microtasks_ = true;
   RunMicrotasksInternal();
+  is_running_microtasks_ = false;
   FireMicrotasksCompletedCallback();
 }
 
@@ -2917,7 +3007,7 @@
       DCHECK(detached_contexts->get(i + 1)->IsWeakCell());
       WeakCell* cell = WeakCell::cast(detached_contexts->get(i + 1));
       if (mark_sweeps > 3) {
-        PrintF("detached context 0x%p\n survived %d GCs (leak?)\n",
+        PrintF("detached context %p\n survived %d GCs (leak?)\n",
                static_cast<void*>(cell->value()), mark_sweeps);
       }
     }
diff --git a/src/isolate.h b/src/isolate.h
index 8847164..5895ebb 100644
--- a/src/isolate.h
+++ b/src/isolate.h
@@ -58,7 +58,6 @@
 class ExternalCallbackScope;
 class ExternalReferenceTable;
 class Factory;
-class FunctionInfoListener;
 class HandleScopeImplementer;
 class HeapProfiler;
 class HStatistics;
@@ -383,8 +382,6 @@
   /* function cache of the native context. */                                  \
   V(int, next_serial_number, 0)                                                \
   V(ExternalReferenceRedirectorPointer*, external_reference_redirector, NULL)  \
-  /* Part of the state of liveedit. */                                         \
-  V(FunctionInfoListener*, active_function_info_listener, NULL)                \
   /* State for Relocatable. */                                                 \
   V(Relocatable*, relocatable_top, NULL)                                       \
   V(DebugObjectCache*, string_stream_debug_object_cache, NULL)                 \
@@ -495,14 +492,6 @@
     return isolate;
   }
 
-  // Like Current, but skips the check that |isolate_key_| was initialized.
-  // Callers have to ensure that themselves.
-  // DO NOT USE. The only remaining callsite will be deleted soon.
-  INLINE(static Isolate* UnsafeCurrent()) {
-    return reinterpret_cast<Isolate*>(
-        base::Thread::GetThreadLocal(isolate_key_));
-  }
-
   // Usually called by Init(), but can be called early e.g. to allow
   // testing components that require logging but not the whole
   // isolate.
@@ -633,9 +622,7 @@
   inline Handle<JSGlobalObject> global_object();
 
   // Returns the global proxy object of the current context.
-  JSObject* global_proxy() {
-    return context()->global_proxy();
-  }
+  inline Handle<JSObject> global_proxy();
 
   static int ArchiveSpacePerThread() { return sizeof(ThreadLocalTop); }
   void FreeThreadResources() { thread_local_top_.Free(); }
@@ -701,7 +688,7 @@
   void ReportFailedAccessCheck(Handle<JSObject> receiver);
 
   // Exception throwing support. The caller should use the result
-  // of Throw() as its return value.
+  // of Throw() as its return vaue.
   Object* Throw(Object* exception, MessageLocation* location = NULL);
   Object* ThrowIllegalOperation();
 
@@ -817,7 +804,6 @@
     DCHECK(counters_ != NULL);
     return counters_;
   }
-  CodeRange* code_range() { return code_range_; }
   RuntimeProfiler* runtime_profiler() { return runtime_profiler_; }
   CompilationCache* compilation_cache() { return compilation_cache_; }
   Logger* logger() {
@@ -841,10 +827,6 @@
     return materialized_object_store_;
   }
 
-  MemoryAllocator* memory_allocator() {
-    return memory_allocator_;
-  }
-
   KeyedLookupCache* keyed_lookup_cache() {
     return keyed_lookup_cache_;
   }
@@ -974,6 +956,8 @@
 
   bool IsFastArrayConstructorPrototypeChainIntact();
   inline bool IsArraySpeciesLookupChainIntact();
+  inline bool IsHasInstanceLookupChainIntact();
+  bool IsIsConcatSpreadableLookupChainIntact();
 
   // On intent to set an element in object, make sure that appropriate
   // notifications occur if the set is on the elements of the array or
@@ -990,6 +974,8 @@
     UpdateArrayProtectorOnSetElement(object);
   }
   void InvalidateArraySpeciesProtector();
+  void InvalidateHasInstanceProtector();
+  void InvalidateIsConcatSpreadableProtector();
 
   // Returns true if array is the initial array prototype in any native context.
   bool IsAnyInitialArrayPrototype(Handle<JSArray> array);
@@ -1077,6 +1063,7 @@
 
   void EnqueueMicrotask(Handle<Object> microtask);
   void RunMicrotasks();
+  bool IsRunningMicrotasks() const { return is_running_microtasks_; }
 
   void SetUseCounterCallback(v8::Isolate::UseCounterCallback callback);
   void CountUsage(v8::Isolate::UseCounterFeature feature);
@@ -1121,8 +1108,11 @@
 
   base::AccountingAllocator* allocator() { return &allocator_; }
 
+  bool IsInAnyContext(Object* object, uint32_t index);
+
  protected:
   explicit Isolate(bool enable_serializer);
+  bool IsArrayOrObjectPrototype(Object* object);
 
  private:
   friend struct GlobalState;
@@ -1240,7 +1230,6 @@
   RuntimeProfiler* runtime_profiler_;
   CompilationCache* compilation_cache_;
   Counters* counters_;
-  CodeRange* code_range_;
   base::RecursiveMutex break_access_;
   Logger* logger_;
   StackGuard stack_guard_;
@@ -1254,7 +1243,6 @@
   bool capture_stack_trace_for_uncaught_exceptions_;
   int stack_trace_for_uncaught_exceptions_frame_limit_;
   StackTrace::StackTraceOptions stack_trace_for_uncaught_exceptions_options_;
-  MemoryAllocator* memory_allocator_;
   KeyedLookupCache* keyed_lookup_cache_;
   ContextSlotCache* context_slot_cache_;
   DescriptorLookupCache* descriptor_lookup_cache_;
@@ -1358,6 +1346,7 @@
 
   // List of callbacks after microtasks were run.
   List<MicrotasksCompletedCallback> microtasks_completed_callbacks_;
+  bool is_running_microtasks_;
 
   v8::Isolate::UseCounterCallback use_counter_callback_;
   BasicBlockProfiler* basic_block_profiler_;
@@ -1381,8 +1370,6 @@
   friend class Simulator;
   friend class StackGuard;
   friend class ThreadId;
-  friend class TestMemoryAllocatorScope;
-  friend class TestCodeRangeScope;
   friend class v8::Isolate;
   friend class v8::Locker;
   friend class v8::Unlocker;
@@ -1499,6 +1486,15 @@
   Isolate* isolate_;
 };
 
+#define STACK_CHECK(isolate, result_value)               \
+  do {                                                   \
+    StackLimitCheck stack_check(isolate);                \
+    if (stack_check.HasOverflowed()) {                   \
+      isolate->Throw(*isolate->factory()->NewRangeError( \
+          MessageTemplate::kStackOverflow));             \
+      return result_value;                               \
+    }                                                    \
+  } while (false)
 
 // Support for temporarily postponing interrupts. When the outermost
 // postpone scope is left the interrupts will be re-enabled and any
diff --git a/src/js/array.js b/src/js/array.js
index 1406df3..0a77b23 100644
--- a/src/js/array.js
+++ b/src/js/array.js
@@ -11,7 +11,6 @@
 // -------------------------------------------------------------------
 // Imports
 
-var AddIndexedProperty;
 var FLAG_harmony_species;
 var GetIterator;
 var GetMethod;
@@ -21,27 +20,18 @@
 var MakeTypeError;
 var MaxSimple;
 var MinSimple;
-var ObjectDefineProperty;
 var ObjectHasOwnProperty;
 var ObjectToString = utils.ImportNow("object_to_string");
-var ObserveBeginPerformSplice;
-var ObserveEndPerformSplice;
-var ObserveEnqueueSpliceRecord;
 var iteratorSymbol = utils.ImportNow("iterator_symbol");
 var unscopablesSymbol = utils.ImportNow("unscopables_symbol");
 
 utils.Import(function(from) {
-  AddIndexedProperty = from.AddIndexedProperty;
   GetIterator = from.GetIterator;
   GetMethod = from.GetMethod;
   MakeTypeError = from.MakeTypeError;
   MaxSimple = from.MaxSimple;
   MinSimple = from.MinSimple;
-  ObjectDefineProperty = from.ObjectDefineProperty;
   ObjectHasOwnProperty = from.ObjectHasOwnProperty;
-  ObserveBeginPerformSplice = from.ObserveBeginPerformSplice;
-  ObserveEndPerformSplice = from.ObserveEndPerformSplice;
-  ObserveEnqueueSpliceRecord = from.ObserveEnqueueSpliceRecord;
 });
 
 utils.ImportFromExperimental(function(from) {
@@ -53,6 +43,9 @@
 
 function ArraySpeciesCreate(array, length) {
   var constructor;
+
+  length = INVERT_NEG_ZERO(length);
+
   if (FLAG_harmony_species) {
     constructor = %ArraySpeciesConstructor(array);
   } else {
@@ -62,17 +55,6 @@
 }
 
 
-function DefineIndexedProperty(array, i, value) {
-  if (FLAG_harmony_species) {
-    var result = ObjectDefineProperty(array, i, {
-      value: value, writable: true, configurable: true, enumerable: true
-    });
-    if (!result) throw MakeTypeError(kStrictCannotAssign, i);
-  } else {
-    AddIndexedProperty(array, i, value);
-  }
-}
-
 function KeySortCompare(a, b) {
   return a - b;
 }
@@ -123,8 +105,7 @@
   // Only use the sparse variant on arrays that are likely to be sparse and the
   // number of elements touched in the operation is relatively small compared to
   // the overall size of the array.
-  if (!is_array || length < 1000 || %IsObserved(array) ||
-      %HasComplexElements(array)) {
+  if (!is_array || length < 1000 || %HasComplexElements(array)) {
     return false;
   }
   if (!%_IsSmi(length)) {
@@ -265,7 +246,7 @@
     for (var i = start_i; i < limit; ++i) {
       var current = array[i];
       if (!IS_UNDEFINED(current) || i in array) {
-        DefineIndexedProperty(deleted_elements, i - start_i, current);
+        %CreateDataProperty(deleted_elements, i - start_i, current);
       }
     }
   } else {
@@ -275,7 +256,7 @@
       if (key >= start_i) {
         var current = array[key];
         if (!IS_UNDEFINED(current) || key in array) {
-          DefineIndexedProperty(deleted_elements, key - start_i, current);
+          %CreateDataProperty(deleted_elements, key - start_i, current);
         }
       }
     }
@@ -352,7 +333,7 @@
     var index = start_i + i;
     if (HAS_INDEX(array, index, is_array)) {
       var current = array[index];
-      DefineIndexedProperty(deleted_elements, i, current);
+      %CreateDataProperty(deleted_elements, i, current);
     }
   }
 }
@@ -456,23 +437,6 @@
 }
 
 
-function ObservedArrayPop(n) {
-  n--;
-  var value = this[n];
-
-  try {
-    ObserveBeginPerformSplice(this);
-    delete this[n];
-    this.length = n;
-  } finally {
-    ObserveEndPerformSplice(this);
-    ObserveEnqueueSpliceRecord(this, n, [value], 0);
-  }
-
-  return value;
-}
-
-
 // Removes the last element from the array and returns it. See
 // ECMA-262, section 15.4.4.6.
 function ArrayPop() {
@@ -485,9 +449,6 @@
     return;
   }
 
-  if (%IsObserved(array))
-    return ObservedArrayPop.call(array, n);
-
   n--;
   var value = array[n];
   %DeleteProperty_Strict(array, n);
@@ -496,46 +457,19 @@
 }
 
 
-function ObservedArrayPush() {
-  var n = TO_LENGTH(this.length);
-  var m = arguments.length;
-
-  try {
-    ObserveBeginPerformSplice(this);
-    for (var i = 0; i < m; i++) {
-      this[i+n] = arguments[i];
-    }
-    var new_length = n + m;
-    this.length = new_length;
-  } finally {
-    ObserveEndPerformSplice(this);
-    ObserveEnqueueSpliceRecord(this, n, [], m);
-  }
-
-  return new_length;
-}
-
-
 // Appends the arguments to the end of the array and returns the new
 // length of the array. See ECMA-262, section 15.4.4.7.
 function ArrayPush() {
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.push");
 
-  if (%IsObserved(this))
-    return ObservedArrayPush.apply(this, arguments);
-
   var array = TO_OBJECT(this);
   var n = TO_LENGTH(array.length);
   var m = arguments.length;
 
-  // It appears that there is no enforced, absolute limit on the number of
-  // arguments, but it would surely blow the stack to use 2**30 or more.
-  // To avoid integer overflow, do the comparison to the max safe integer
-  // after subtracting 2**30 from both sides. (2**31 would seem like a
-  // natural value, but it is negative in JS, and 2**32 is 1.)
-  if (m > (1 << 30) || (n - (1 << 30)) + m > kMaxSafeInteger - (1 << 30)) {
-    throw MakeTypeError(kPushPastSafeLength, m, n);
-  }
+  // Subtract n from kMaxSafeInteger rather than testing m + n >
+  // kMaxSafeInteger. n may already be kMaxSafeInteger. In that case adding
+  // e.g., 1 would not be safe.
+  if (m > kMaxSafeInteger - n) throw MakeTypeError(kPushPastSafeLength, m, n);
 
   for (var i = 0; i < m; i++) {
     array[i+n] = arguments[i];
@@ -646,22 +580,6 @@
 }
 
 
-function ObservedArrayShift(len) {
-  var first = this[0];
-
-  try {
-    ObserveBeginPerformSplice(this);
-    SimpleMove(this, 0, 1, len, 0);
-    this.length = len - 1;
-  } finally {
-    ObserveEndPerformSplice(this);
-    ObserveEnqueueSpliceRecord(this, 0, [first], 0);
-  }
-
-  return first;
-}
-
-
 function ArrayShift() {
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.shift");
 
@@ -675,9 +593,6 @@
 
   if (%object_is_sealed(array)) throw MakeTypeError(kArrayFunctionsOnSealed);
 
-  if (%IsObserved(array))
-    return ObservedArrayShift.call(array, len);
-
   var first = array[0];
 
   if (UseSparseVariant(array, len, IS_ARRAY(array), len)) {
@@ -692,33 +607,9 @@
 }
 
 
-function ObservedArrayUnshift() {
-  var len = TO_LENGTH(this.length);
-  var num_arguments = arguments.length;
-
-  try {
-    ObserveBeginPerformSplice(this);
-    SimpleMove(this, 0, 0, len, num_arguments);
-    for (var i = 0; i < num_arguments; i++) {
-      this[i] = arguments[i];
-    }
-    var new_length = len + num_arguments;
-    this.length = new_length;
-  } finally {
-    ObserveEndPerformSplice(this);
-    ObserveEnqueueSpliceRecord(this, 0, [], num_arguments);
-  }
-
-  return new_length;
-}
-
-
 function ArrayUnshift(arg1) {  // length == 1
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.unshift");
 
-  if (%IsObserved(this))
-    return ObservedArrayUnshift.apply(this, arguments);
-
   var array = TO_OBJECT(this);
   var len = TO_LENGTH(array.length);
   var num_arguments = arguments.length;
@@ -813,53 +704,9 @@
 }
 
 
-function ObservedArraySplice(start, delete_count) {
-  var num_arguments = arguments.length;
-  var len = TO_LENGTH(this.length);
-  var start_i = ComputeSpliceStartIndex(TO_INTEGER(start), len);
-  var del_count = ComputeSpliceDeleteCount(delete_count, num_arguments, len,
-                                           start_i);
-  var deleted_elements = [];
-  deleted_elements.length = del_count;
-  var num_elements_to_add = num_arguments > 2 ? num_arguments - 2 : 0;
-
-  try {
-    ObserveBeginPerformSplice(this);
-
-    SimpleSlice(this, start_i, del_count, len, deleted_elements);
-    SimpleMove(this, start_i, del_count, len, num_elements_to_add);
-
-    // Insert the arguments into the resulting array in
-    // place of the deleted elements.
-    var i = start_i;
-    var arguments_index = 2;
-    var arguments_length = arguments.length;
-    while (arguments_index < arguments_length) {
-      this[i++] = arguments[arguments_index++];
-    }
-    this.length = len - del_count + num_elements_to_add;
-
-  } finally {
-    ObserveEndPerformSplice(this);
-    if (deleted_elements.length || num_elements_to_add) {
-      ObserveEnqueueSpliceRecord(this,
-                                 start_i,
-                                 deleted_elements.slice(),
-                                 num_elements_to_add);
-    }
-  }
-
-  // Return the deleted elements.
-  return deleted_elements;
-}
-
-
 function ArraySplice(start, delete_count) {
   CHECK_OBJECT_COERCIBLE(this, "Array.prototype.splice");
 
-  if (%IsObserved(this))
-    return ObservedArraySplice.apply(this, arguments);
-
   var num_arguments = arguments.length;
   var array = TO_OBJECT(this);
   var len = TO_LENGTH(array.length);
@@ -1048,7 +895,8 @@
   // of a prototype property.
   var CopyFromPrototype = function CopyFromPrototype(obj, length) {
     var max = 0;
-    for (var proto = %_GetPrototype(obj); proto; proto = %_GetPrototype(proto)) {
+    for (var proto = %object_get_prototype_of(obj); proto;
+         proto = %object_get_prototype_of(proto)) {
       var indices = IS_PROXY(proto) ? length : %GetArrayKeys(proto, length);
       if (IS_NUMBER(indices)) {
         // It's an interval.
@@ -1076,7 +924,8 @@
   // where a prototype of obj has an element. I.e., shadow all prototype
   // elements in that range.
   var ShadowPrototypeElements = function(obj, from, to) {
-    for (var proto = %_GetPrototype(obj); proto; proto = %_GetPrototype(proto)) {
+    for (var proto = %object_get_prototype_of(obj); proto;
+         proto = %object_get_prototype_of(proto)) {
       var indices = IS_PROXY(proto) ? to : %GetArrayKeys(proto, to);
       if (IS_NUMBER(indices)) {
         // It's an interval.
@@ -1143,7 +992,7 @@
     }
     for (i = length - num_holes; i < length; i++) {
       // For compatability with Webkit, do not expose elements in the prototype.
-      if (i in %_GetPrototype(obj)) {
+      if (i in %object_get_prototype_of(obj)) {
         obj[i] = UNDEFINED;
       } else {
         delete obj[i];
@@ -1174,9 +1023,9 @@
   var num_non_undefined = %RemoveArrayHoles(array, length);
 
   if (num_non_undefined == -1) {
-    // The array is observed, or there were indexed accessors in the array.
+    // There were indexed accessors in the array.
     // Move array holes and undefineds to the end using a Javascript function
-    // that is safe in the presence of accessors and is observable.
+    // that is safe in the presence of accessors.
     num_non_undefined = SafeRemoveArrayHoles(array);
   }
 
@@ -1211,7 +1060,7 @@
     if (HAS_INDEX(array, i, is_array)) {
       var element = array[i];
       if (%_Call(f, receiver, element, i, array)) {
-        DefineIndexedProperty(result, result_length, element);
+        %CreateDataProperty(result, result_length, element);
         result_length++;
       }
     }
@@ -1331,7 +1180,7 @@
   for (var i = 0; i < length; i++) {
     if (HAS_INDEX(array, i, is_array)) {
       var element = array[i];
-      DefineIndexedProperty(result, i, %_Call(f, receiver, element, i, array));
+      %CreateDataProperty(result, i, %_Call(f, receiver, element, i, array));
     }
   }
   return result;
@@ -1347,7 +1196,7 @@
   if (IS_UNDEFINED(index)) {
     index = 0;
   } else {
-    index = TO_INTEGER(index) + 0;  // Add 0 to convert -0 to 0
+    index = INVERT_NEG_ZERO(TO_INTEGER(index));
     // If index is negative, index from the end of the array.
     if (index < 0) {
       index = length + index;
@@ -1409,7 +1258,7 @@
   if (argumentsLength < 2) {
     index = length - 1;
   } else {
-    index = TO_INTEGER(index) + 0;  // Add 0 to convert -0 to 0
+    index = INVERT_NEG_ZERO(TO_INTEGER(index));
     // If index is negative, index from end of the array.
     if (index < 0) index += length;
     // If index is still negative, do not search the array.
@@ -1736,17 +1585,6 @@
 }
 
 
-function AddArrayElement(constructor, array, i, value) {
-  if (constructor === GlobalArray) {
-    AddIndexedProperty(array, i, value);
-  } else {
-    ObjectDefineProperty(array, i, {
-      value: value, writable: true, configurable: true, enumerable: true
-    });
-  }
-}
-
-
 // ES6, draft 10-14-14, section 22.1.2.1
 function ArrayFrom(arrayLike, mapfn, receiver) {
   var items = TO_OBJECT(arrayLike);
@@ -1775,7 +1613,7 @@
       } else {
         mappedValue = nextValue;
       }
-      AddArrayElement(this, result, k, mappedValue);
+      %CreateDataProperty(result, k, mappedValue);
       k++;
     }
     result.length = k;
@@ -1791,7 +1629,7 @@
       } else {
         mappedValue = nextValue;
       }
-      AddArrayElement(this, result, k, mappedValue);
+      %CreateDataProperty(result, k, mappedValue);
     }
 
     result.length = k;
@@ -1807,7 +1645,7 @@
   // TODO: Implement IsConstructor (ES6 section 7.2.5)
   var array = %IsConstructor(constructor) ? new constructor(length) : [];
   for (var i = 0; i < length; i++) {
-    AddArrayElement(constructor, array, i, args[i]);
+    %CreateDataProperty(array, i, args[i]);
   }
   array.length = length;
   return array;
diff --git a/src/js/arraybuffer.js b/src/js/arraybuffer.js
index f0273c7..e739960 100644
--- a/src/js/arraybuffer.js
+++ b/src/js/arraybuffer.js
@@ -70,7 +70,9 @@
     throw MakeTypeError(kIncompatibleMethodReceiver,
                         'ArrayBuffer.prototype.slice', result);
   }
-  // TODO(littledan): Check for a detached ArrayBuffer
+  // Checks for detached source/target ArrayBuffers are done inside of
+  // %ArrayBufferSliceImpl; the reordering of checks does not violate
+  // the spec because all exceptions thrown are TypeErrors.
   if (result === this) {
     throw MakeTypeError(kArrayBufferSpeciesThis);
   }
diff --git a/src/js/generator.js b/src/js/generator.js
deleted file mode 100644
index 3dcdcc0..0000000
--- a/src/js/generator.js
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-(function(global, utils) {
-
-"use strict";
-
-%CheckIsBootstrapping();
-
-// -------------------------------------------------------------------
-// Imports
-
-var GeneratorFunctionPrototype = utils.ImportNow("GeneratorFunctionPrototype");
-var GeneratorFunction = utils.ImportNow("GeneratorFunction");
-var GlobalFunction = global.Function;
-var MakeTypeError;
-var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
-
-utils.Import(function(from) {
-  MakeTypeError = from.MakeTypeError;
-});
-
-// ----------------------------------------------------------------------------
-
-// Generator functions and objects are specified by ES6, sections 15.19.3 and
-// 15.19.4.
-
-function GeneratorObjectNext(value) {
-  if (!IS_GENERATOR(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        '[Generator].prototype.next', this);
-  }
-
-  var continuation = %GeneratorGetContinuation(this);
-  if (continuation > 0) {
-    // Generator is suspended.
-    DEBUG_PREPARE_STEP_IN_IF_STEPPING(this);
-    return %_GeneratorNext(this, value);
-  } else if (continuation == 0) {
-    // Generator is already closed.
-    return %_CreateIterResultObject(UNDEFINED, true);
-  } else {
-    // Generator is running.
-    throw MakeTypeError(kGeneratorRunning);
-  }
-}
-
-
-function GeneratorObjectReturn(value) {
-  if (!IS_GENERATOR(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        '[Generator].prototype.return', this);
-  }
-
-  var continuation = %GeneratorGetContinuation(this);
-  if (continuation > 0) {
-    // Generator is suspended.
-    DEBUG_PREPARE_STEP_IN_IF_STEPPING(this);
-    return %_GeneratorReturn(this, value);
-  } else if (continuation == 0) {
-    // Generator is already closed.
-    return %_CreateIterResultObject(value, true);
-  } else {
-    // Generator is running.
-    throw MakeTypeError(kGeneratorRunning);
-  }
-}
-
-
-function GeneratorObjectThrow(exn) {
-  if (!IS_GENERATOR(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        '[Generator].prototype.throw', this);
-  }
-
-  var continuation = %GeneratorGetContinuation(this);
-  if (continuation > 0) {
-    // Generator is suspended.
-    DEBUG_PREPARE_STEP_IN_IF_STEPPING(this);
-    return %_GeneratorThrow(this, exn);
-  } else if (continuation == 0) {
-    // Generator is already closed.
-    throw exn;
-  } else {
-    // Generator is running.
-    throw MakeTypeError(kGeneratorRunning);
-  }
-}
-
-// ----------------------------------------------------------------------------
-
-// None of the three resume operations (Runtime_GeneratorNext,
-// Runtime_GeneratorReturn, Runtime_GeneratorThrow) is supported by
-// Crankshaft or TurboFan.  Disable optimization of wrappers here.
-%NeverOptimizeFunction(GeneratorObjectNext);
-%NeverOptimizeFunction(GeneratorObjectReturn);
-%NeverOptimizeFunction(GeneratorObjectThrow);
-
-// Set up non-enumerable functions on the generator prototype object.
-var GeneratorObjectPrototype = GeneratorFunctionPrototype.prototype;
-utils.InstallFunctions(GeneratorObjectPrototype,
-                       DONT_ENUM,
-                      ["next", GeneratorObjectNext,
-                       "return", GeneratorObjectReturn,
-                       "throw", GeneratorObjectThrow]);
-
-%AddNamedProperty(GeneratorObjectPrototype, "constructor",
-    GeneratorFunctionPrototype, DONT_ENUM | READ_ONLY);
-%AddNamedProperty(GeneratorObjectPrototype,
-    toStringTagSymbol, "Generator", DONT_ENUM | READ_ONLY);
-%InternalSetPrototype(GeneratorFunctionPrototype, GlobalFunction.prototype);
-%AddNamedProperty(GeneratorFunctionPrototype,
-    toStringTagSymbol, "GeneratorFunction", DONT_ENUM | READ_ONLY);
-%AddNamedProperty(GeneratorFunctionPrototype, "constructor",
-    GeneratorFunction, DONT_ENUM | READ_ONLY);
-%InternalSetPrototype(GeneratorFunction, GlobalFunction);
-
-})
diff --git a/src/js/harmony-async-await.js b/src/js/harmony-async-await.js
new file mode 100644
index 0000000..c6705ef
--- /dev/null
+++ b/src/js/harmony-async-await.js
@@ -0,0 +1,43 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+(function(global, utils, extrasUtils) {
+
+"use strict";
+
+%CheckIsBootstrapping();
+
+// -------------------------------------------------------------------
+// Imports
+
+var AsyncFunctionNext;
+var AsyncFunctionThrow;
+var PromiseReject;
+var PromiseResolve;
+var PromiseThen;
+
+utils.Import(function(from) {
+  AsyncFunctionNext = from.AsyncFunctionNext;
+  AsyncFunctionThrow = from.AsyncFunctionThrow;
+  PromiseReject = from.PromiseCreateRejected;
+  PromiseResolve = from.PromiseCreateResolved;
+  PromiseThen = from.PromiseThen;
+});
+
+// -------------------------------------------------------------------
+
+function AsyncFunctionAwait(generator, value) {
+  return %_Call(
+      PromiseThen, PromiseResolve(value),
+      function(sentValue) {
+        return %_Call(AsyncFunctionNext, generator, sentValue);
+      },
+      function(sentError) {
+        return %_Call(AsyncFunctionThrow, generator, sentError);
+      });
+}
+
+%InstallToContext([ "async_function_await", AsyncFunctionAwait ]);
+
+})
diff --git a/src/js/harmony-atomics.js b/src/js/harmony-atomics.js
index 9f80227..8372903 100644
--- a/src/js/harmony-atomics.js
+++ b/src/js/harmony-atomics.js
@@ -62,19 +62,6 @@
   return %_AtomicsCompareExchange(sta, index, oldValue, newValue);
 }
 
-function AtomicsLoadJS(sta, index) {
-  CheckSharedIntegerTypedArray(sta);
-  index = ValidateIndex(index, %_TypedArrayGetLength(sta));
-  return %_AtomicsLoad(sta, index);
-}
-
-function AtomicsStoreJS(sta, index, value) {
-  CheckSharedIntegerTypedArray(sta);
-  index = ValidateIndex(index, %_TypedArrayGetLength(sta));
-  value = TO_NUMBER(value);
-  return %_AtomicsStore(sta, index, value);
-}
-
 function AtomicsAddJS(ia, index, value) {
   CheckSharedIntegerTypedArray(ia);
   index = ValidateIndex(index, %_TypedArrayGetLength(ia));
@@ -161,13 +148,9 @@
 
 // -------------------------------------------------------------------
 
-function AtomicsConstructor() {}
+var Atomics = global.Atomics;
 
-var Atomics = new AtomicsConstructor();
-
-%InternalSetPrototype(Atomics, GlobalObject.prototype);
-%AddNamedProperty(global, "Atomics", Atomics, DONT_ENUM);
-%FunctionSetInstanceClassName(AtomicsConstructor, 'Atomics');
+// The Atomics global is defined by the bootstrapper.
 
 %AddNamedProperty(Atomics, toStringTagSymbol, "Atomics", READ_ONLY | DONT_ENUM);
 
@@ -179,9 +162,9 @@
 ]);
 
 utils.InstallFunctions(Atomics, DONT_ENUM, [
+  // TODO(binji): remove the rest of the (non futex) Atomics functions as they
+  // become builtins.
   "compareExchange", AtomicsCompareExchangeJS,
-  "load", AtomicsLoadJS,
-  "store", AtomicsStoreJS,
   "add", AtomicsAddJS,
   "sub", AtomicsSubJS,
   "and", AtomicsAndJS,
diff --git a/src/js/harmony-object-observe.js b/src/js/harmony-object-observe.js
deleted file mode 100644
index 95dd298..0000000
--- a/src/js/harmony-object-observe.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-(function(global, utils) {
-
-"use strict";
-
-%CheckIsBootstrapping();
-
-var ObserveArrayMethods = utils.ImportNow("ObserveArrayMethods");
-var ObserveObjectMethods = utils.ImportNow("ObserveObjectMethods");;
-
-utils.InstallFunctions(global.Object, DONT_ENUM, ObserveObjectMethods);
-utils.InstallFunctions(global.Array, DONT_ENUM, ObserveArrayMethods);
-
-})
diff --git a/src/js/harmony-string-padding.js b/src/js/harmony-string-padding.js
index a6c6c47..dc59823 100644
--- a/src/js/harmony-string-padding.js
+++ b/src/js/harmony-string-padding.js
@@ -30,7 +30,8 @@
   } else {
     fillString = TO_STRING(fillString);
     if (fillString === "") {
-      fillString = " ";
+      // If filler is the empty String, return S.
+      return "";
     }
   }
 
diff --git a/src/js/i18n.js b/src/js/i18n.js
index 845289a..7c9535b 100644
--- a/src/js/i18n.js
+++ b/src/js/i18n.js
@@ -20,6 +20,7 @@
 var ArrayIndexOf;
 var ArrayJoin;
 var ArrayPush;
+var FLAG_intl_extra;
 var GlobalBoolean = global.Boolean;
 var GlobalDate = global.Date;
 var GlobalNumber = global.Number;
@@ -27,7 +28,7 @@
 var GlobalString = global.String;
 var InstallFunctions = utils.InstallFunctions;
 var InstallGetter = utils.InstallGetter;
-var InternalPackedArray = utils.InternalPackedArray;
+var InternalArray = utils.InternalArray;
 var InternalRegExpMatch;
 var InternalRegExpReplace
 var IsFinite;
@@ -35,8 +36,6 @@
 var MakeError;
 var MakeRangeError;
 var MakeTypeError;
-var ObjectDefineProperties = utils.ImportNow("ObjectDefineProperties");
-var ObjectDefineProperty = utils.ImportNow("ObjectDefineProperty");
 var ObjectHasOwnProperty = utils.ImportNow("ObjectHasOwnProperty");
 var OverrideFunction = utils.OverrideFunction;
 var patternSymbol = utils.ImportNow("intl_pattern_symbol");
@@ -66,6 +65,10 @@
   StringSubstring = from.StringSubstring;
 });
 
+utils.ImportFromExperimental(function(from) {
+  FLAG_intl_extra = from.FLAG_intl_extra;
+});
+
 // Utilities for definitions
 
 function InstallFunction(object, name, func) {
@@ -84,11 +87,11 @@
 /**
  * Adds bound method to the prototype of the given object.
  */
-function AddBoundMethod(obj, methodName, implementation, length) {
+function AddBoundMethod(obj, methodName, implementation, length, type) {
   %CheckIsBootstrapping();
   var internalName = %CreatePrivateSymbol(methodName);
   var getter = function() {
-    if (!%IsInitializedIntlObject(this)) {
+    if (!%IsInitializedIntlObjectOfType(this, type)) {
       throw MakeTypeError(kMethodCalledOnWrongObject, methodName);
     }
     if (IS_UNDEFINED(this[internalName])) {
@@ -144,6 +147,13 @@
  */
 var DEFAULT_ICU_LOCALE = UNDEFINED;
 
+function GetDefaultICULocaleJS() {
+  if (IS_UNDEFINED(DEFAULT_ICU_LOCALE)) {
+    DEFAULT_ICU_LOCALE = %GetDefaultICULocale();
+  }
+  return DEFAULT_ICU_LOCALE;
+}
+
 /**
  * Unicode extension regular expression.
  */
@@ -307,7 +317,7 @@
  * Locales appear in the same order in the returned list as in the input list.
  */
 function lookupSupportedLocalesOf(requestedLocales, availableLocales) {
-  var matchedLocales = [];
+  var matchedLocales = new InternalArray();
   for (var i = 0; i < requestedLocales.length; ++i) {
     // Remove -u- extension.
     var locale = InternalRegExpReplace(
@@ -448,11 +458,7 @@
   }
 
   // Didn't find a match, return default.
-  if (IS_UNDEFINED(DEFAULT_ICU_LOCALE)) {
-    DEFAULT_ICU_LOCALE = %GetDefaultICULocale();
-  }
-
-  return {'locale': DEFAULT_ICU_LOCALE, 'extension': '', 'position': -1};
+  return {'locale': GetDefaultICULocaleJS(), 'extension': '', 'position': -1};
 }
 
 
@@ -567,21 +573,23 @@
 
 
 /**
- * Converts all OwnProperties into
+ * Given an array-like, outputs an Array with the numbered
+ * properties copied over and defined
  * configurable: false, writable: false, enumerable: true.
  */
-function freezeArray(array) {
-  var l = array.length;
+function freezeArray(input) {
+  var array = [];
+  var l = input.length;
   for (var i = 0; i < l; i++) {
-    if (i in array) {
-      ObjectDefineProperty(array, i, {value: array[i],
-                                      configurable: false,
-                                      writable: false,
-                                      enumerable: true});
+    if (i in input) {
+      %object_define_property(array, i, {value: input[i],
+                                         configurable: false,
+                                         writable: false,
+                                         enumerable: true});
     }
   }
 
-  ObjectDefineProperty(array, 'length', {value: l, writable: false});
+  %object_define_property(array, 'length', {value: l, writable: false});
   return array;
 }
 
@@ -643,8 +651,8 @@
  * Configurable is false by default.
  */
 function defineWEProperty(object, property, value) {
-  ObjectDefineProperty(object, property,
-                       {value: value, writable: true, enumerable: true});
+  %object_define_property(object, property,
+                          {value: value, writable: true, enumerable: true});
 }
 
 
@@ -663,10 +671,10 @@
  * Defines a property and sets writable, enumerable and configurable to true.
  */
 function defineWECProperty(object, property, value) {
-  ObjectDefineProperty(object, property, {value: value,
-                                          writable: true,
-                                          enumerable: true,
-                                          configurable: true});
+  %object_define_property(object, property, {value: value,
+                                             writable: true,
+                                             enumerable: true,
+                                             configurable: true});
 }
 
 
@@ -722,21 +730,24 @@
  */
 function canonicalizeLanguageTag(localeID) {
   // null is typeof 'object' so we have to do extra check.
-  if (typeof localeID !== 'string' && typeof localeID !== 'object' ||
+  if ((!IS_STRING(localeID) && !IS_RECEIVER(localeID)) ||
       IS_NULL(localeID)) {
     throw MakeTypeError(kLanguageID);
   }
 
+  // Optimize for the most common case; a language code alone in
+  // the canonical form/lowercase (e.g. "en", "fil").
+  if (IS_STRING(localeID) &&
+      !IS_NULL(InternalRegExpMatch(/^[a-z]{2,3}$/, localeID))) {
+    return localeID;
+  }
+
   var localeString = GlobalString(localeID);
 
   if (isValidLanguageTag(localeString) === false) {
     throw MakeRangeError(kInvalidLanguageTag, localeString);
   }
 
-  // This call will strip -kn but not -kn-true extensions.
-  // ICU bug filled - http://bugs.icu-project.org/trac/ticket/9265.
-  // TODO(cira): check if -u-kn-true-kc-true-kh-true still throws after
-  // upgrade to ICU 4.9.
   var tag = %CanonicalizeLanguageTag(localeString);
   if (tag === 'invalid-tag') {
     throw MakeRangeError(kInvalidLanguageTag, localeString);
@@ -751,11 +762,8 @@
  * Throws on locales that are not well formed BCP47 tags.
  */
 function initializeLocaleList(locales) {
-  var seen = [];
-  if (IS_UNDEFINED(locales)) {
-    // Constructor is called without arguments.
-    seen = [];
-  } else {
+  var seen = new InternalArray();
+  if (!IS_UNDEFINED(locales)) {
     // We allow single string localeID.
     if (typeof locales === 'string') {
       %_Call(ArrayPush, seen, canonicalizeLanguageTag(locales));
@@ -810,8 +818,8 @@
   // Skip language since it can match variant regex, so we start from 1.
   // We are matching i-klingon here, but that's ok, since i-klingon-klingon
   // is not valid and would fail LANGUAGE_TAG_RE test.
-  var variants = [];
-  var extensions = [];
+  var variants = new InternalArray();
+  var extensions = new InternalArray();
   var parts = %_Call(StringSplit, locale, '-');
   for (var i = 1; i < parts.length; i++) {
     var value = parts[i];
@@ -965,8 +973,8 @@
   // We define all properties C++ code may produce, to prevent security
   // problems. If malicious user decides to redefine Object.prototype.locale
   // we can't just use plain x.locale = 'us' or in C++ Set("locale", "us").
-  // ObjectDefineProperties will either succeed defining or throw an error.
-  var resolved = ObjectDefineProperties({}, {
+  // %object_define_properties will either succeed defining or throw an error.
+  var resolved = %object_define_properties({}, {
     caseFirst: {writable: true},
     collation: {value: internalOptions.collation, writable: true},
     ignorePunctuation: {writable: true},
@@ -985,7 +993,9 @@
   // Writable, configurable and enumerable are set to false by default.
   %MarkAsInitializedIntlObjectOfType(collator, 'collator', internalCollator);
   collator[resolvedSymbol] = resolved;
-  ObjectDefineProperty(collator, 'resolved', resolvedAccessor);
+  if (FLAG_intl_extra) {
+    %object_define_property(collator, 'resolved', resolvedAccessor);
+  }
 
   return collator;
 }
@@ -1072,7 +1082,7 @@
 };
 
 
-AddBoundMethod(Intl.Collator, 'compare', compare, 2);
+AddBoundMethod(Intl.Collator, 'compare', compare, 2, 'collator');
 
 /**
  * Verifies that the input is a well-formed ISO 4217 currency code.
@@ -1198,7 +1208,7 @@
                              getOption, internalOptions);
 
   var requestedLocale = locale.locale + extension;
-  var resolved = ObjectDefineProperties({}, {
+  var resolved = %object_define_properties({}, {
     currency: {writable: true},
     currencyDisplay: {writable: true},
     locale: {writable: true},
@@ -1206,7 +1216,6 @@
     minimumFractionDigits: {writable: true},
     minimumIntegerDigits: {writable: true},
     numberingSystem: {writable: true},
-    pattern: patternAccessor,
     requestedLocale: {value: requestedLocale, writable: true},
     style: {value: internalOptions.style, writable: true},
     useGrouping: {writable: true}
@@ -1222,13 +1231,16 @@
                                       resolved);
 
   if (internalOptions.style === 'currency') {
-    ObjectDefineProperty(resolved, 'currencyDisplay', {value: currencyDisplay,
-                                                       writable: true});
+    %object_define_property(resolved, 'currencyDisplay',
+        {value: currencyDisplay, writable: true});
   }
 
   %MarkAsInitializedIntlObjectOfType(numberFormat, 'numberformat', formatter);
   numberFormat[resolvedSymbol] = resolved;
-  ObjectDefineProperty(numberFormat, 'resolved', resolvedAccessor);
+  if (FLAG_intl_extra) {
+    %object_define_property(resolved, 'pattern', patternAccessor);
+    %object_define_property(numberFormat, 'resolved', resolvedAccessor);
+  }
 
   return numberFormat;
 }
@@ -1334,14 +1346,12 @@
 /**
  * Returns a Number that represents string value that was passed in.
  */
-function parseNumber(formatter, value) {
+function IntlParseNumber(formatter, value) {
   return %InternalNumberParse(%GetImplFromInitializedIntlObject(formatter),
                               GlobalString(value));
 }
 
-
-AddBoundMethod(Intl.NumberFormat, 'format', formatNumber, 1);
-AddBoundMethod(Intl.NumberFormat, 'v8Parse', parseNumber, 1);
+AddBoundMethod(Intl.NumberFormat, 'format', formatNumber, 1, 'numberformat');
 
 /**
  * Returns a string that matches LDML representation of the options object.
@@ -1508,33 +1518,33 @@
   }
 
   if (needsDefault && (defaults === 'date' || defaults === 'all')) {
-    ObjectDefineProperty(options, 'year', {value: 'numeric',
-                                           writable: true,
-                                           enumerable: true,
-                                           configurable: true});
-    ObjectDefineProperty(options, 'month', {value: 'numeric',
-                                            writable: true,
-                                            enumerable: true,
-                                            configurable: true});
-    ObjectDefineProperty(options, 'day', {value: 'numeric',
-                                          writable: true,
-                                          enumerable: true,
-                                          configurable: true});
+    %object_define_property(options, 'year', {value: 'numeric',
+                                              writable: true,
+                                              enumerable: true,
+                                              configurable: true});
+    %object_define_property(options, 'month', {value: 'numeric',
+                                               writable: true,
+                                               enumerable: true,
+                                               configurable: true});
+    %object_define_property(options, 'day', {value: 'numeric',
+                                             writable: true,
+                                             enumerable: true,
+                                             configurable: true});
   }
 
   if (needsDefault && (defaults === 'time' || defaults === 'all')) {
-    ObjectDefineProperty(options, 'hour', {value: 'numeric',
-                                           writable: true,
-                                           enumerable: true,
-                                           configurable: true});
-    ObjectDefineProperty(options, 'minute', {value: 'numeric',
-                                             writable: true,
-                                             enumerable: true,
-                                             configurable: true});
-    ObjectDefineProperty(options, 'second', {value: 'numeric',
-                                             writable: true,
-                                             enumerable: true,
-                                             configurable: true});
+    %object_define_property(options, 'hour', {value: 'numeric',
+                                              writable: true,
+                                              enumerable: true,
+                                              configurable: true});
+    %object_define_property(options, 'minute', {value: 'numeric',
+                                                writable: true,
+                                                enumerable: true,
+                                                configurable: true});
+    %object_define_property(options, 'second', {value: 'numeric',
+                                                writable: true,
+                                                enumerable: true,
+                                                configurable: true});
   }
 
   return options;
@@ -1592,7 +1602,7 @@
                              getOption, internalOptions);
 
   var requestedLocale = locale.locale + extension;
-  var resolved = ObjectDefineProperties({}, {
+  var resolved = %object_define_properties({}, {
     calendar: {writable: true},
     day: {writable: true},
     era: {writable: true},
@@ -1603,7 +1613,6 @@
     month: {writable: true},
     numberingSystem: {writable: true},
     [patternSymbol]: {writable: true},
-    pattern: patternAccessor,
     requestedLocale: {value: requestedLocale, writable: true},
     second: {writable: true},
     timeZone: {writable: true},
@@ -1622,7 +1631,10 @@
 
   %MarkAsInitializedIntlObjectOfType(dateFormat, 'dateformat', formatter);
   dateFormat[resolvedSymbol] = resolved;
-  ObjectDefineProperty(dateFormat, 'resolved', resolvedAccessor);
+  if (FLAG_intl_extra) {
+    %object_define_property(resolved, 'pattern', patternAccessor);
+    %object_define_property(dateFormat, 'resolved', resolvedAccessor);
+  }
 
   return dateFormat;
 }
@@ -1756,15 +1768,14 @@
  * DateTimeFormat.
  * Returns undefined if date string cannot be parsed.
  */
-function parseDate(formatter, value) {
+function IntlParseDate(formatter, value) {
   return %InternalDateParse(%GetImplFromInitializedIntlObject(formatter),
                             GlobalString(value));
 }
 
 
 // 0 because date is optional argument.
-AddBoundMethod(Intl.DateTimeFormat, 'format', formatDate, 0);
-AddBoundMethod(Intl.DateTimeFormat, 'v8Parse', parseDate, 1);
+AddBoundMethod(Intl.DateTimeFormat, 'format', formatDate, 0, 'dateformat');
 
 
 /**
@@ -1826,7 +1837,7 @@
     'type', 'string', ['character', 'word', 'sentence', 'line'], 'word'));
 
   var locale = resolveLocale('breakiterator', locales, options);
-  var resolved = ObjectDefineProperties({}, {
+  var resolved = %object_define_properties({}, {
     requestedLocale: {value: locale.locale, writable: true},
     type: {value: internalOptions.type, writable: true},
     locale: {writable: true}
@@ -1839,7 +1850,9 @@
   %MarkAsInitializedIntlObjectOfType(iterator, 'breakiterator',
                                      internalIterator);
   iterator[resolvedSymbol] = resolved;
-  ObjectDefineProperty(iterator, 'resolved', resolvedAccessor);
+  if (FLAG_intl_extra) {
+    %object_define_property(iterator, 'resolved', resolvedAccessor);
+  }
 
   return iterator;
 }
@@ -1950,11 +1963,13 @@
 }
 
 
-AddBoundMethod(Intl.v8BreakIterator, 'adoptText', adoptText, 1);
-AddBoundMethod(Intl.v8BreakIterator, 'first', first, 0);
-AddBoundMethod(Intl.v8BreakIterator, 'next', next, 0);
-AddBoundMethod(Intl.v8BreakIterator, 'current', current, 0);
-AddBoundMethod(Intl.v8BreakIterator, 'breakType', breakType, 0);
+AddBoundMethod(Intl.v8BreakIterator, 'adoptText', adoptText, 1,
+               'breakiterator');
+AddBoundMethod(Intl.v8BreakIterator, 'first', first, 0, 'breakiterator');
+AddBoundMethod(Intl.v8BreakIterator, 'next', next, 0, 'breakiterator');
+AddBoundMethod(Intl.v8BreakIterator, 'current', current, 0, 'breakiterator');
+AddBoundMethod(Intl.v8BreakIterator, 'breakType', breakType, 0,
+               'breakiterator');
 
 // Save references to Intl objects and methods we use, for added security.
 var savedObjects = {
@@ -1992,6 +2007,37 @@
   return new savedObjects[service](locales, useOptions);
 }
 
+function LocaleConvertCase(s, locales, isToUpper) {
+  // ECMA 402 section 13.1.2 steps 1 through 12.
+  var language;
+  // Optimize for the most common two cases. initializeLocaleList() can handle
+  // them as well, but it's rather slow accounting for over 60% of
+  // toLocale{U,L}Case() and about 40% of toLocale{U,L}Case("<locale>").
+  if (IS_UNDEFINED(locales)) {
+    language = GetDefaultICULocaleJS();
+  } else if (IS_STRING(locales)) {
+    language = canonicalizeLanguageTag(locales);
+  } else {
+    var locales = initializeLocaleList(locales);
+    language = locales.length > 0 ? locales[0] : GetDefaultICULocaleJS();
+  }
+
+  // StringSplit is slower than this.
+  var pos = %_Call(StringIndexOf, language, '-');
+  if (pos != -1) {
+    language = %_Call(StringSubstring, language, 0, pos);
+  }
+
+  var CUSTOM_CASE_LANGUAGES = ['az', 'el', 'lt', 'tr'];
+  var langIndex = %_Call(ArrayIndexOf, CUSTOM_CASE_LANGUAGES, language);
+  if (langIndex == -1) {
+    // language-independent case conversion.
+    return isToUpper ? %StringToUpperCaseI18N(s) : %StringToLowerCaseI18N(s);
+  }
+  return %StringLocaleConvertCase(s, isToUpper,
+                                  CUSTOM_CASE_LANGUAGES[langIndex]);
+}
+
 /**
  * Compares this and that, and returns less than 0, 0 or greater than 0 value.
  * Overrides the built-in method.
@@ -2044,6 +2090,56 @@
   }
 );
 
+function ToLowerCaseI18N() {
+  if (!IS_UNDEFINED(new.target)) {
+    throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
+  }
+  CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLowerCase");
+  var s = TO_STRING(this);
+  return %StringToLowerCaseI18N(s);
+}
+
+function ToUpperCaseI18N() {
+  if (!IS_UNDEFINED(new.target)) {
+    throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
+  }
+  CHECK_OBJECT_COERCIBLE(this, "String.prototype.toUpperCase");
+  var s = TO_STRING(this);
+  return %StringToUpperCaseI18N(s);
+}
+
+function ToLocaleLowerCaseI18N(locales) {
+  if (!IS_UNDEFINED(new.target)) {
+    throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
+  }
+  CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLocaleLowerCase");
+  return LocaleConvertCase(TO_STRING(this), locales, false);
+}
+
+%FunctionSetLength(ToLocaleLowerCaseI18N, 0);
+
+function ToLocaleUpperCaseI18N(locales) {
+  if (!IS_UNDEFINED(new.target)) {
+    throw MakeTypeError(kOrdinaryFunctionCalledAsConstructor);
+  }
+  CHECK_OBJECT_COERCIBLE(this, "String.prototype.toLocaleUpperCase");
+  return LocaleConvertCase(TO_STRING(this), locales, true);
+}
+
+%FunctionSetLength(ToLocaleUpperCaseI18N, 0);
+
+%FunctionRemovePrototype(ToLowerCaseI18N);
+%FunctionRemovePrototype(ToUpperCaseI18N);
+%FunctionRemovePrototype(ToLocaleLowerCaseI18N);
+%FunctionRemovePrototype(ToLocaleUpperCaseI18N);
+
+utils.Export(function(to) {
+  to.ToLowerCaseI18N = ToLowerCaseI18N;
+  to.ToUpperCaseI18N = ToUpperCaseI18N;
+  to.ToLocaleLowerCaseI18N = ToLocaleLowerCaseI18N;
+  to.ToLocaleUpperCaseI18N = ToLocaleUpperCaseI18N;
+});
+
 
 /**
  * Formats a Number object (this) using locale and options values.
@@ -2138,4 +2234,10 @@
   }
 );
 
+utils.Export(function(to) {
+  to.AddBoundMethod = AddBoundMethod;
+  to.IntlParseDate = IntlParseDate;
+  to.IntlParseNumber = IntlParseNumber;
+});
+
 })
diff --git a/src/js/icu-case-mapping.js b/src/js/icu-case-mapping.js
new file mode 100644
index 0000000..9806249
--- /dev/null
+++ b/src/js/icu-case-mapping.js
@@ -0,0 +1,24 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+(function(global, utils) {
+"use strict";
+
+%CheckIsBootstrapping();
+
+var GlobalString = global.String;
+var OverrideFunction = utils.OverrideFunction;
+var ToLowerCaseI18N = utils.ImportNow("ToLowerCaseI18N");
+var ToUpperCaseI18N = utils.ImportNow("ToUpperCaseI18N");
+var ToLocaleLowerCaseI18N = utils.ImportNow("ToLocaleLowerCaseI18N");
+var ToLocaleUpperCaseI18N = utils.ImportNow("ToLocaleUpperCaseI18N");
+
+OverrideFunction(GlobalString.prototype, 'toLowerCase', ToLowerCaseI18N, true);
+OverrideFunction(GlobalString.prototype, 'toUpperCase', ToUpperCaseI18N, true);
+OverrideFunction(GlobalString.prototype, 'toLocaleLowerCase',
+                 ToLocaleLowerCaseI18N, true);
+OverrideFunction(GlobalString.prototype, 'toLocaleUpperCase',
+                 ToLocaleUpperCaseI18N, true);
+
+})
diff --git a/src/js/intl-extra.js b/src/js/intl-extra.js
new file mode 100644
index 0000000..a4d2256
--- /dev/null
+++ b/src/js/intl-extra.js
@@ -0,0 +1,22 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+(function(global, utils) {
+
+"use strict";
+
+%CheckIsBootstrapping();
+
+var GlobalIntl = global.Intl;
+
+var AddBoundMethod = utils.ImportNow("AddBoundMethod");
+var IntlParseDate = utils.ImportNow("IntlParseDate");
+var IntlParseNumber = utils.ImportNow("IntlParseNumber");
+
+AddBoundMethod(GlobalIntl.DateTimeFormat, 'v8Parse', IntlParseDate, 1,
+               'dateformat');
+AddBoundMethod(GlobalIntl.NumberFormat, 'v8Parse', IntlParseNumber, 1,
+               'numberformat');
+
+})
diff --git a/src/js/macros.py b/src/js/macros.py
index a4c7f53..3cc2d6c 100644
--- a/src/js/macros.py
+++ b/src/js/macros.py
@@ -113,6 +113,7 @@
 macro TO_INTEGER_MAP_MINUS_ZERO(arg) = (%_IsSmi(%IS_VAR(arg)) ? arg : %NumberToIntegerMapMinusZero(arg));
 macro TO_INT32(arg) = ((arg) | 0);
 macro TO_UINT32(arg) = ((arg) >>> 0);
+macro INVERT_NEG_ZERO(arg) = ((arg) + 0);
 macro TO_LENGTH(arg) = (%_ToLength(arg));
 macro TO_STRING(arg) = (%_ToString(arg));
 macro TO_NUMBER(arg) = (%_ToNumber(arg));
@@ -174,16 +175,6 @@
 # 1-based so index of 1 returns the first capture
 macro OVERRIDE_CAPTURE(override, index) = ((override)[(index)]);
 
-# PropertyDescriptor return value indices - must match
-# PropertyDescriptorIndices in runtime-object.cc.
-define IS_ACCESSOR_INDEX = 0;
-define VALUE_INDEX = 1;
-define GETTER_INDEX = 2;
-define SETTER_INDEX = 3;
-define WRITABLE_INDEX = 4;
-define ENUMERABLE_INDEX = 5;
-define CONFIGURABLE_INDEX = 6;
-
 # For messages.js
 # Matches Script::Type from objects.h
 define TYPE_NATIVE = 0;
@@ -238,7 +229,6 @@
 
 # Check whether debug is active.
 define DEBUG_IS_ACTIVE = (%_DebugIsActive() != 0);
-macro DEBUG_PREPARE_STEP_IN_IF_STEPPING(function) = if (%_DebugIsActive() != 0) %DebugPrepareStepInIfStepping(function);
 
 # SharedFlag equivalents
 define kNotShared = false;
@@ -251,7 +241,6 @@
 define kMarkDequeOverflow = 3;
 define kStoreBufferOverflow = 4;
 define kSlotsBufferOverflow = 5;
-define kObjectObserve = 6;
 define kForcedGC = 7;
 define kSloppyMode = 8;
 define kStrictMode = 9;
diff --git a/src/js/messages.js b/src/js/messages.js
index f8cb967..b5c4b56 100644
--- a/src/js/messages.js
+++ b/src/js/messages.js
@@ -23,6 +23,10 @@
     utils.ImportNow("call_site_position_symbol");
 var callSiteStrictSymbol =
     utils.ImportNow("call_site_strict_symbol");
+var callSiteWasmObjectSymbol =
+    utils.ImportNow("call_site_wasm_obj_symbol");
+var callSiteWasmFunctionIndexSymbol =
+    utils.ImportNow("call_site_wasm_func_index_symbol");
 var Float32x4ToString;
 var formattedStackTraceSymbol =
     utils.ImportNow("formatted_stack_trace_symbol");
@@ -32,12 +36,10 @@
 var Int8x16ToString;
 var InternalArray = utils.InternalArray;
 var internalErrorSymbol = utils.ImportNow("internal_error_symbol");
-var ObjectDefineProperty;
 var ObjectHasOwnProperty;
 var ObjectToString = utils.ImportNow("object_to_string");
 var Script = utils.ImportNow("Script");
 var stackTraceSymbol = utils.ImportNow("stack_trace_symbol");
-var StringCharAt;
 var StringIndexOf;
 var StringSubstring;
 var SymbolToString;
@@ -55,9 +57,7 @@
   Int16x8ToString = from.Int16x8ToString;
   Int32x4ToString = from.Int32x4ToString;
   Int8x16ToString = from.Int8x16ToString;
-  ObjectDefineProperty = from.ObjectDefineProperty;
   ObjectHasOwnProperty = from.ObjectHasOwnProperty;
-  StringCharAt = from.StringCharAt;
   StringIndexOf = from.StringIndexOf;
   StringSubstring = from.StringSubstring;
   SymbolToString = from.SymbolToString;
@@ -255,6 +255,7 @@
   return -1;
 }
 
+
 /**
  * Get information on a specific source position.
  * @param {number} position The source position
@@ -272,7 +273,7 @@
   var line_ends = this.line_ends;
   var start = line == 0 ? 0 : line_ends[line - 1] + 1;
   var end = line_ends[line];
-  if (end > 0 && %_Call(StringCharAt, this.source, end - 1) == '\r') {
+  if (end > 0 && %_StringCharAt(this.source, end - 1) === '\r') {
     end--;
   }
   var column = position - start;
@@ -556,7 +557,9 @@
 // Error implementation
 
 function CallSite(receiver, fun, pos, strict_mode) {
-  if (!IS_FUNCTION(fun)) {
+  // For wasm frames, receiver is the wasm object and fun is the function index
+  // instead of an actual function.
+  if (!IS_FUNCTION(fun) && !IS_NUMBER(fun)) {
     throw MakeTypeError(kCallSiteExpectsFunction, typeof fun);
   }
 
@@ -564,14 +567,19 @@
     return new CallSite(receiver, fun, pos, strict_mode);
   }
 
-  SET_PRIVATE(this, callSiteReceiverSymbol, receiver);
-  SET_PRIVATE(this, callSiteFunctionSymbol, fun);
+  if (IS_FUNCTION(fun)) {
+    SET_PRIVATE(this, callSiteReceiverSymbol, receiver);
+    SET_PRIVATE(this, callSiteFunctionSymbol, fun);
+  } else {
+    SET_PRIVATE(this, callSiteWasmObjectSymbol, receiver);
+    SET_PRIVATE(this, callSiteWasmFunctionIndexSymbol, TO_UINT32(fun));
+  }
   SET_PRIVATE(this, callSitePositionSymbol, TO_INT32(pos));
   SET_PRIVATE(this, callSiteStrictSymbol, TO_BOOLEAN(strict_mode));
 }
 
 function CheckCallSite(obj, name) {
-  if (!IS_RECEIVER(obj) || !HAS_PRIVATE(obj, callSiteFunctionSymbol)) {
+  if (!IS_RECEIVER(obj) || !HAS_PRIVATE(obj, callSitePositionSymbol)) {
     throw MakeTypeError(kCallSiteMethod, name);
   }
 }
@@ -622,6 +630,12 @@
 function CallSiteGetFunctionName() {
   // See if the function knows its own name
   CheckCallSite(this, "getFunctionName");
+  if (HAS_PRIVATE(this, callSiteWasmObjectSymbol)) {
+    var wasm = GET_PRIVATE(this, callSiteWasmObjectSymbol);
+    var func_index = GET_PRIVATE(this, callSiteWasmFunctionIndexSymbol);
+    if (IS_UNDEFINED(wasm)) return "<WASM>";
+    return %WasmGetFunctionName(wasm, func_index);
+  }
   return %CallSiteGetFunctionNameRT(this);
 }
 
@@ -638,6 +652,9 @@
 }
 
 function CallSiteGetLineNumber() {
+  if (HAS_PRIVATE(this, callSiteWasmObjectSymbol)) {
+    return GET_PRIVATE(this, callSiteWasmFunctionIndexSymbol);
+  }
   CheckCallSite(this, "getLineNumber");
   return %CallSiteGetLineNumberRT(this);
 }
@@ -658,6 +675,13 @@
 }
 
 function CallSiteToString() {
+  if (HAS_PRIVATE(this, callSiteWasmObjectSymbol)) {
+    var funName = this.getFunctionName();
+    var funcIndex = GET_PRIVATE(this, callSiteWasmFunctionIndexSymbol);
+    var pos = this.getPosition();
+    return funName + " (<WASM>:" + funcIndex + ":" + pos + ")";
+  }
+
   var fileName;
   var fileLocation = "";
   if (this.isNative()) {
@@ -795,14 +819,19 @@
 
 
 function GetStackFrames(raw_stack) {
+  var internal_raw_stack = new InternalArray();
+  %MoveArrayContents(raw_stack, internal_raw_stack);
   var frames = new InternalArray();
-  var sloppy_frames = raw_stack[0];
-  for (var i = 1; i < raw_stack.length; i += 4) {
-    var recv = raw_stack[i];
-    var fun = raw_stack[i + 1];
-    var code = raw_stack[i + 2];
-    var pc = raw_stack[i + 3];
-    var pos = %_IsSmi(code) ? code : %FunctionGetPositionForOffset(code, pc);
+  var sloppy_frames = internal_raw_stack[0];
+  for (var i = 1; i < internal_raw_stack.length; i += 4) {
+    var recv = internal_raw_stack[i];
+    var fun = internal_raw_stack[i + 1];
+    var code = internal_raw_stack[i + 2];
+    var pc = internal_raw_stack[i + 3];
+    // For traps in wasm, the bytecode offset is passed as (-1 - offset).
+    // Otherwise, lookup the position from the pc.
+    var pos = IS_NUMBER(fun) && pc < 0 ? (-1 - pc) :
+      %FunctionGetPositionForOffset(code, pc);
     sloppy_frames--;
     frames.push(new CallSite(recv, fun, pos, (sloppy_frames < 0)));
   }
@@ -879,7 +908,7 @@
       if (IS_UNDEFINED(stack_trace)) {
         // Neither formatted nor structured stack trace available.
         // Look further up the prototype chain.
-        holder = %_GetPrototype(holder);
+        holder = %object_get_prototype_of(holder);
         continue;
       }
       formatted_stack_trace = FormatStackTrace(holder, stack_trace);
@@ -995,9 +1024,9 @@
 // Define actual captureStackTrace function after everything has been set up.
 captureStackTrace = function captureStackTrace(obj, cons_opt) {
   // Define accessors first, as this may fail and throw.
-  ObjectDefineProperty(obj, 'stack', { get: StackTraceGetter,
-                                       set: StackTraceSetter,
-                                       configurable: true });
+  %object_define_property(obj, 'stack', { get: StackTraceGetter,
+                                          set: StackTraceSetter,
+                                          configurable: true });
   %CollectStackTrace(obj, cons_opt ? cons_opt : captureStackTrace);
 };
 
diff --git a/src/js/object-observe.js b/src/js/object-observe.js
deleted file mode 100644
index 5e256bf..0000000
--- a/src/js/object-observe.js
+++ /dev/null
@@ -1,717 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-(function(global, utils) {
-
-"use strict";
-
-%CheckIsBootstrapping();
-
-// -------------------------------------------------------------------
-// Imports
-
-var GetHash;
-var GlobalArray = global.Array;
-var GlobalObject = global.Object;
-var InternalArray = utils.InternalArray;
-var MakeTypeError;
-
-utils.Import(function(from) {
-  GetHash = from.GetHash;
-  MakeTypeError = from.MakeTypeError;
-});
-
-// -------------------------------------------------------------------
-
-// Overview:
-//
-// This file contains all of the routing and accounting for Object.observe.
-// User code will interact with these mechanisms via the Object.observe APIs
-// and, as a side effect of mutation objects which are observed. The V8 runtime
-// (both C++ and JS) will interact with these mechanisms primarily by enqueuing
-// proper change records for objects which were mutated. The Object.observe
-// routing and accounting consists primarily of three participants
-//
-// 1) ObjectInfo. This represents the observed state of a given object. It
-//    records what callbacks are observing the object, with what options, and
-//    what "change types" are in progress on the object (i.e. via
-//    notifier.performChange).
-//
-// 2) CallbackInfo. This represents a callback used for observation. It holds
-//    the records which must be delivered to the callback, as well as the global
-//    priority of the callback (which determines delivery order between
-//    callbacks).
-//
-// 3) observationState.pendingObservers. This is the set of observers which
-//    have change records which must be delivered. During "normal" delivery
-//    (i.e. not Object.deliverChangeRecords), this is the mechanism by which
-//    callbacks are invoked in the proper order until there are no more
-//    change records pending to a callback.
-//
-// Note that in order to reduce allocation and processing costs, the
-// implementation of (1) and (2) have "optimized" states which represent
-// common cases which can be handled more efficiently.
-
-var observationState;
-
-var notifierPrototype = {};
-
-// We have to wait until after bootstrapping to grab a reference to the
-// observationState object, since it's not possible to serialize that
-// reference into the snapshot.
-function GetObservationStateJS() {
-  if (IS_UNDEFINED(observationState)) {
-    observationState = %GetObservationState();
-  }
-
-  // TODO(adamk): Consider moving this code into heap.cc
-  if (IS_UNDEFINED(observationState.callbackInfoMap)) {
-    observationState.callbackInfoMap = %ObservationWeakMapCreate();
-    observationState.objectInfoMap = %ObservationWeakMapCreate();
-    observationState.notifierObjectInfoMap = %ObservationWeakMapCreate();
-    observationState.pendingObservers = null;
-    observationState.nextCallbackPriority = 0;
-    observationState.lastMicrotaskId = 0;
-  }
-
-  return observationState;
-}
-
-
-function GetPendingObservers() {
-  return GetObservationStateJS().pendingObservers;
-}
-
-
-function SetPendingObservers(pendingObservers) {
-  GetObservationStateJS().pendingObservers = pendingObservers;
-}
-
-
-function GetNextCallbackPriority() {
-  return GetObservationStateJS().nextCallbackPriority++;
-}
-
-
-function nullProtoObject() {
-  return { __proto__: null };
-}
-
-
-function TypeMapCreate() {
-  return nullProtoObject();
-}
-
-
-function TypeMapAddType(typeMap, type, ignoreDuplicate) {
-  typeMap[type] = ignoreDuplicate ? 1 : (typeMap[type] || 0) + 1;
-}
-
-
-function TypeMapRemoveType(typeMap, type) {
-  typeMap[type]--;
-}
-
-
-function TypeMapCreateFromList(typeList, length) {
-  var typeMap = TypeMapCreate();
-  for (var i = 0; i < length; i++) {
-    TypeMapAddType(typeMap, typeList[i], true);
-  }
-  return typeMap;
-}
-
-
-function TypeMapHasType(typeMap, type) {
-  return !!typeMap[type];
-}
-
-
-function TypeMapIsDisjointFrom(typeMap1, typeMap2) {
-  if (!typeMap1 || !typeMap2)
-    return true;
-
-  for (var type in typeMap1) {
-    if (TypeMapHasType(typeMap1, type) && TypeMapHasType(typeMap2, type))
-      return false;
-  }
-
-  return true;
-}
-
-
-var defaultAcceptTypes = (function() {
-  var defaultTypes = [
-    'add',
-    'update',
-    'delete',
-    'setPrototype',
-    'reconfigure',
-    'preventExtensions'
-  ];
-  return TypeMapCreateFromList(defaultTypes, defaultTypes.length);
-})();
-
-
-// An Observer is a registration to observe an object by a callback with
-// a given set of accept types. If the set of accept types is the default
-// set for Object.observe, the observer is represented as a direct reference
-// to the callback. An observer never changes its accept types and thus never
-// needs to "normalize".
-function ObserverCreate(callback, acceptList) {
-  if (IS_UNDEFINED(acceptList))
-    return callback;
-  var observer = nullProtoObject();
-  observer.callback = callback;
-  observer.accept = acceptList;
-  return observer;
-}
-
-
-function ObserverGetCallback(observer) {
-  return IS_CALLABLE(observer) ? observer : observer.callback;
-}
-
-
-function ObserverGetAcceptTypes(observer) {
-  return IS_CALLABLE(observer) ? defaultAcceptTypes : observer.accept;
-}
-
-
-function ObserverIsActive(observer, objectInfo) {
-  return TypeMapIsDisjointFrom(ObjectInfoGetPerformingTypes(objectInfo),
-                               ObserverGetAcceptTypes(observer));
-}
-
-
-function ObjectInfoGetOrCreate(object) {
-  var objectInfo = ObjectInfoGet(object);
-  if (IS_UNDEFINED(objectInfo)) {
-    if (!IS_PROXY(object)) {
-      %SetIsObserved(object);
-    }
-    objectInfo = {
-      object: object,
-      changeObservers: null,
-      notifier: null,
-      performing: null,
-      performingCount: 0,
-    };
-    %WeakCollectionSet(GetObservationStateJS().objectInfoMap,
-                       object, objectInfo, GetHash(object));
-  }
-  return objectInfo;
-}
-
-
-function ObjectInfoGet(object) {
-  return %WeakCollectionGet(GetObservationStateJS().objectInfoMap, object,
-                            GetHash(object));
-}
-
-
-function ObjectInfoGetFromNotifier(notifier) {
-  return %WeakCollectionGet(GetObservationStateJS().notifierObjectInfoMap,
-                            notifier, GetHash(notifier));
-}
-
-
-function ObjectInfoGetNotifier(objectInfo) {
-  if (IS_NULL(objectInfo.notifier)) {
-    var notifier = { __proto__: notifierPrototype };
-    objectInfo.notifier = notifier;
-    %WeakCollectionSet(GetObservationStateJS().notifierObjectInfoMap,
-                       notifier, objectInfo, GetHash(notifier));
-  }
-
-  return objectInfo.notifier;
-}
-
-
-function ChangeObserversIsOptimized(changeObservers) {
-  return IS_CALLABLE(changeObservers) ||
-         IS_CALLABLE(changeObservers.callback);
-}
-
-
-// The set of observers on an object is called 'changeObservers'. The first
-// observer is referenced directly via objectInfo.changeObservers. When a second
-// is added, changeObservers "normalizes" to become a mapping of callback
-// priority -> observer and is then stored on objectInfo.changeObservers.
-function ObjectInfoNormalizeChangeObservers(objectInfo) {
-  if (ChangeObserversIsOptimized(objectInfo.changeObservers)) {
-    var observer = objectInfo.changeObservers;
-    var callback = ObserverGetCallback(observer);
-    var callbackInfo = CallbackInfoGet(callback);
-    var priority = CallbackInfoGetPriority(callbackInfo);
-    objectInfo.changeObservers = nullProtoObject();
-    objectInfo.changeObservers[priority] = observer;
-  }
-}
-
-
-function ObjectInfoAddObserver(objectInfo, callback, acceptList) {
-  var callbackInfo = CallbackInfoGetOrCreate(callback);
-  var observer = ObserverCreate(callback, acceptList);
-
-  if (!objectInfo.changeObservers) {
-    objectInfo.changeObservers = observer;
-    return;
-  }
-
-  ObjectInfoNormalizeChangeObservers(objectInfo);
-  var priority = CallbackInfoGetPriority(callbackInfo);
-  objectInfo.changeObservers[priority] = observer;
-}
-
-function ObjectInfoRemoveObserver(objectInfo, callback) {
-  if (!objectInfo.changeObservers)
-    return;
-
-  if (ChangeObserversIsOptimized(objectInfo.changeObservers)) {
-    if (callback === ObserverGetCallback(objectInfo.changeObservers))
-      objectInfo.changeObservers = null;
-    return;
-  }
-
-  var callbackInfo = CallbackInfoGet(callback);
-  var priority = CallbackInfoGetPriority(callbackInfo);
-  objectInfo.changeObservers[priority] = null;
-}
-
-function ObjectInfoHasActiveObservers(objectInfo) {
-  if (IS_UNDEFINED(objectInfo) || !objectInfo.changeObservers)
-    return false;
-
-  if (ChangeObserversIsOptimized(objectInfo.changeObservers))
-    return ObserverIsActive(objectInfo.changeObservers, objectInfo);
-
-  for (var priority in objectInfo.changeObservers) {
-    var observer = objectInfo.changeObservers[priority];
-    if (!IS_NULL(observer) && ObserverIsActive(observer, objectInfo))
-      return true;
-  }
-
-  return false;
-}
-
-
-function ObjectInfoAddPerformingType(objectInfo, type) {
-  objectInfo.performing = objectInfo.performing || TypeMapCreate();
-  TypeMapAddType(objectInfo.performing, type);
-  objectInfo.performingCount++;
-}
-
-
-function ObjectInfoRemovePerformingType(objectInfo, type) {
-  objectInfo.performingCount--;
-  TypeMapRemoveType(objectInfo.performing, type);
-}
-
-
-function ObjectInfoGetPerformingTypes(objectInfo) {
-  return objectInfo.performingCount > 0 ? objectInfo.performing : null;
-}
-
-
-function ConvertAcceptListToTypeMap(arg) {
-  // We use undefined as a sentinel for the default accept list.
-  if (IS_UNDEFINED(arg))
-    return arg;
-
-  if (!IS_RECEIVER(arg)) throw MakeTypeError(kObserveInvalidAccept);
-
-  var len = TO_INTEGER(arg.length);
-  if (len < 0) len = 0;
-
-  return TypeMapCreateFromList(arg, len);
-}
-
-
-// CallbackInfo's optimized state is just a number which represents its global
-// priority. When a change record must be enqueued for the callback, it
-// normalizes. When delivery clears any pending change records, it re-optimizes.
-function CallbackInfoGet(callback) {
-  return %WeakCollectionGet(GetObservationStateJS().callbackInfoMap, callback,
-                            GetHash(callback));
-}
-
-
-function CallbackInfoSet(callback, callbackInfo) {
-  %WeakCollectionSet(GetObservationStateJS().callbackInfoMap,
-                     callback, callbackInfo, GetHash(callback));
-}
-
-
-function CallbackInfoGetOrCreate(callback) {
-  var callbackInfo = CallbackInfoGet(callback);
-  if (!IS_UNDEFINED(callbackInfo))
-    return callbackInfo;
-
-  var priority = GetNextCallbackPriority();
-  CallbackInfoSet(callback, priority);
-  return priority;
-}
-
-
-function CallbackInfoGetPriority(callbackInfo) {
-  if (IS_NUMBER(callbackInfo))
-    return callbackInfo;
-  else
-    return callbackInfo.priority;
-}
-
-
-function CallbackInfoNormalize(callback) {
-  var callbackInfo = CallbackInfoGet(callback);
-  if (IS_NUMBER(callbackInfo)) {
-    var priority = callbackInfo;
-    callbackInfo = new InternalArray;
-    callbackInfo.priority = priority;
-    CallbackInfoSet(callback, callbackInfo);
-  }
-  return callbackInfo;
-}
-
-
-function ObjectObserve(object, callback, acceptList) {
-  if (!IS_RECEIVER(object))
-    throw MakeTypeError(kObserveNonObject, "observe", "observe");
-  if (%IsJSGlobalProxy(object))
-    throw MakeTypeError(kObserveGlobalProxy, "observe");
-  if (%IsAccessCheckNeeded(object))
-    throw MakeTypeError(kObserveAccessChecked, "observe");
-  if (!IS_CALLABLE(callback))
-    throw MakeTypeError(kObserveNonFunction, "observe");
-  if (%object_is_frozen(callback))
-    throw MakeTypeError(kObserveCallbackFrozen);
-
-  var objectObserveFn = %GetObjectContextObjectObserve(object);
-  return objectObserveFn(object, callback, acceptList);
-}
-
-
-function NativeObjectObserve(object, callback, acceptList) {
-  var objectInfo = ObjectInfoGetOrCreate(object);
-  var typeList = ConvertAcceptListToTypeMap(acceptList);
-  ObjectInfoAddObserver(objectInfo, callback, typeList);
-  return object;
-}
-
-
-function ObjectUnobserve(object, callback) {
-  if (!IS_RECEIVER(object))
-    throw MakeTypeError(kObserveNonObject, "unobserve", "unobserve");
-  if (%IsJSGlobalProxy(object))
-    throw MakeTypeError(kObserveGlobalProxy, "unobserve");
-  if (!IS_CALLABLE(callback))
-    throw MakeTypeError(kObserveNonFunction, "unobserve");
-
-  var objectInfo = ObjectInfoGet(object);
-  if (IS_UNDEFINED(objectInfo))
-    return object;
-
-  ObjectInfoRemoveObserver(objectInfo, callback);
-  return object;
-}
-
-
-function ArrayObserve(object, callback) {
-  return ObjectObserve(object, callback, ['add',
-                                          'update',
-                                          'delete',
-                                          'splice']);
-}
-
-
-function ArrayUnobserve(object, callback) {
-  return ObjectUnobserve(object, callback);
-}
-
-
-function ObserverEnqueueIfActive(observer, objectInfo, changeRecord) {
-  if (!ObserverIsActive(observer, objectInfo) ||
-      !TypeMapHasType(ObserverGetAcceptTypes(observer), changeRecord.type)) {
-    return;
-  }
-
-  var callback = ObserverGetCallback(observer);
-  if (!%ObserverObjectAndRecordHaveSameOrigin(callback, changeRecord.object,
-                                              changeRecord)) {
-    return;
-  }
-
-  var callbackInfo = CallbackInfoNormalize(callback);
-  if (IS_NULL(GetPendingObservers())) {
-    SetPendingObservers(nullProtoObject());
-    if (DEBUG_IS_ACTIVE) {
-      var id = ++GetObservationStateJS().lastMicrotaskId;
-      var name = "Object.observe";
-      %EnqueueMicrotask(function() {
-        %DebugAsyncTaskEvent({ type: "willHandle", id: id, name: name });
-        ObserveMicrotaskRunner();
-        %DebugAsyncTaskEvent({ type: "didHandle", id: id, name: name });
-      });
-      %DebugAsyncTaskEvent({ type: "enqueue", id: id, name: name });
-    } else {
-      %EnqueueMicrotask(ObserveMicrotaskRunner);
-    }
-  }
-  GetPendingObservers()[callbackInfo.priority] = callback;
-  callbackInfo.push(changeRecord);
-}
-
-
-function ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, type) {
-  if (!ObjectInfoHasActiveObservers(objectInfo))
-    return;
-
-  var hasType = !IS_UNDEFINED(type);
-  var newRecord = hasType ?
-      { object: objectInfo.object, type: type } :
-      { object: objectInfo.object };
-
-  for (var prop in changeRecord) {
-    if (prop === 'object' || (hasType && prop === 'type')) continue;
-    %DefineDataPropertyUnchecked(
-        newRecord, prop, changeRecord[prop], READ_ONLY + DONT_DELETE);
-  }
-  %object_freeze(newRecord);
-
-  ObjectInfoEnqueueInternalChangeRecord(objectInfo, newRecord);
-}
-
-
-function ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord) {
-  // TODO(rossberg): adjust once there is a story for symbols vs proxies.
-  if (IS_SYMBOL(changeRecord.name)) return;
-
-  if (ChangeObserversIsOptimized(objectInfo.changeObservers)) {
-    var observer = objectInfo.changeObservers;
-    ObserverEnqueueIfActive(observer, objectInfo, changeRecord);
-    return;
-  }
-
-  for (var priority in objectInfo.changeObservers) {
-    var observer = objectInfo.changeObservers[priority];
-    if (IS_NULL(observer))
-      continue;
-    ObserverEnqueueIfActive(observer, objectInfo, changeRecord);
-  }
-}
-
-
-function BeginPerformSplice(array) {
-  var objectInfo = ObjectInfoGet(array);
-  if (!IS_UNDEFINED(objectInfo))
-    ObjectInfoAddPerformingType(objectInfo, 'splice');
-}
-
-
-function EndPerformSplice(array) {
-  var objectInfo = ObjectInfoGet(array);
-  if (!IS_UNDEFINED(objectInfo))
-    ObjectInfoRemovePerformingType(objectInfo, 'splice');
-}
-
-
-function EnqueueSpliceRecord(array, index, removed, addedCount) {
-  var objectInfo = ObjectInfoGet(array);
-  if (!ObjectInfoHasActiveObservers(objectInfo))
-    return;
-
-  var changeRecord = {
-    type: 'splice',
-    object: array,
-    index: index,
-    removed: removed,
-    addedCount: addedCount
-  };
-
-  %object_freeze(changeRecord);
-  %object_freeze(changeRecord.removed);
-  ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord);
-}
-
-
-function NotifyChange(type, object, name, oldValue) {
-  var objectInfo = ObjectInfoGet(object);
-  if (!ObjectInfoHasActiveObservers(objectInfo))
-    return;
-
-  var changeRecord;
-  if (arguments.length == 2) {
-    changeRecord = { type: type, object: object };
-  } else if (arguments.length == 3) {
-    changeRecord = { type: type, object: object, name: name };
-  } else {
-    changeRecord = {
-      type: type,
-      object: object,
-      name: name,
-      oldValue: oldValue
-    };
-  }
-
-  %object_freeze(changeRecord);
-  ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord);
-}
-
-
-function ObjectNotifierNotify(changeRecord) {
-  if (!IS_RECEIVER(this))
-    throw MakeTypeError(kCalledOnNonObject, "notify");
-
-  var objectInfo = ObjectInfoGetFromNotifier(this);
-  if (IS_UNDEFINED(objectInfo))
-    throw MakeTypeError(kObserveNotifyNonNotifier);
-  if (!IS_STRING(changeRecord.type))
-    throw MakeTypeError(kObserveTypeNonString);
-
-  ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord);
-}
-
-
-function ObjectNotifierPerformChange(changeType, changeFn) {
-  if (!IS_RECEIVER(this))
-    throw MakeTypeError(kCalledOnNonObject, "performChange");
-
-  var objectInfo = ObjectInfoGetFromNotifier(this);
-  if (IS_UNDEFINED(objectInfo))
-    throw MakeTypeError(kObserveNotifyNonNotifier);
-  if (!IS_STRING(changeType))
-    throw MakeTypeError(kObservePerformNonString);
-  if (!IS_CALLABLE(changeFn))
-    throw MakeTypeError(kObservePerformNonFunction);
-
-  var performChangeFn = %GetObjectContextNotifierPerformChange(objectInfo);
-  performChangeFn(objectInfo, changeType, changeFn);
-}
-
-
-function NativeObjectNotifierPerformChange(objectInfo, changeType, changeFn) {
-  ObjectInfoAddPerformingType(objectInfo, changeType);
-
-  var changeRecord;
-  try {
-    changeRecord = changeFn();
-  } finally {
-    ObjectInfoRemovePerformingType(objectInfo, changeType);
-  }
-
-  if (IS_RECEIVER(changeRecord))
-    ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, changeType);
-}
-
-
-function ObjectGetNotifier(object) {
-  if (!IS_RECEIVER(object))
-    throw MakeTypeError(kObserveNonObject, "getNotifier", "getNotifier");
-  if (%IsJSGlobalProxy(object))
-    throw MakeTypeError(kObserveGlobalProxy, "getNotifier");
-  if (%IsAccessCheckNeeded(object))
-    throw MakeTypeError(kObserveAccessChecked, "getNotifier");
-
-  if (%object_is_frozen(object)) return null;
-
-  if (!%ObjectWasCreatedInCurrentOrigin(object)) return null;
-
-  var getNotifierFn = %GetObjectContextObjectGetNotifier(object);
-  return getNotifierFn(object);
-}
-
-
-function NativeObjectGetNotifier(object) {
-  var objectInfo = ObjectInfoGetOrCreate(object);
-  return ObjectInfoGetNotifier(objectInfo);
-}
-
-
-function CallbackDeliverPending(callback) {
-  var callbackInfo = CallbackInfoGet(callback);
-  if (IS_UNDEFINED(callbackInfo) || IS_NUMBER(callbackInfo))
-    return false;
-
-  // Clear the pending change records from callback and return it to its
-  // "optimized" state.
-  var priority = callbackInfo.priority;
-  CallbackInfoSet(callback, priority);
-
-  var pendingObservers = GetPendingObservers();
-  if (!IS_NULL(pendingObservers))
-    delete pendingObservers[priority];
-
-  // TODO: combine the following runtime calls for perf optimization.
-  var delivered = [];
-  %MoveArrayContents(callbackInfo, delivered);
-  %DeliverObservationChangeRecords(callback, delivered);
-
-  return true;
-}
-
-
-function ObjectDeliverChangeRecords(callback) {
-  if (!IS_CALLABLE(callback))
-    throw MakeTypeError(kObserveNonFunction, "deliverChangeRecords");
-
-  while (CallbackDeliverPending(callback)) {}
-}
-
-
-function ObserveMicrotaskRunner() {
-  var pendingObservers = GetPendingObservers();
-  if (!IS_NULL(pendingObservers)) {
-    SetPendingObservers(null);
-    for (var i in pendingObservers) {
-      CallbackDeliverPending(pendingObservers[i]);
-    }
-  }
-}
-
-// -------------------------------------------------------------------
-
-utils.InstallFunctions(notifierPrototype, DONT_ENUM, [
-  "notify", ObjectNotifierNotify,
-  "performChange", ObjectNotifierPerformChange
-]);
-
-var ObserveObjectMethods = [
-  "deliverChangeRecords", ObjectDeliverChangeRecords,
-  "getNotifier", ObjectGetNotifier,
-  "observe", ObjectObserve,
-  "unobserve", ObjectUnobserve
-];
-
-var ObserveArrayMethods = [
-  "observe", ArrayObserve,
-  "unobserve", ArrayUnobserve
-];
-
-// TODO(adamk): Figure out why this prototype removal has to
-// happen as part of initial snapshotting.
-var removePrototypeFn = function(f, i) {
-  if (i % 2 === 1) %FunctionRemovePrototype(f);
-};
-ObserveObjectMethods.forEach(removePrototypeFn);
-ObserveArrayMethods.forEach(removePrototypeFn);
-
-%InstallToContext([
-  "native_object_get_notifier", NativeObjectGetNotifier,
-  "native_object_notifier_perform_change", NativeObjectNotifierPerformChange,
-  "native_object_observe", NativeObjectObserve,
-  "observers_begin_perform_splice", BeginPerformSplice,
-  "observers_end_perform_splice", EndPerformSplice,
-  "observers_enqueue_splice", EnqueueSpliceRecord,
-  "observers_notify_change", NotifyChange,
-]);
-
-utils.Export(function(to) {
-  to.ObserveArrayMethods = ObserveArrayMethods;
-  to.ObserveBeginPerformSplice = BeginPerformSplice;
-  to.ObserveEndPerformSplice = EndPerformSplice;
-  to.ObserveEnqueueSpliceRecord = EnqueueSpliceRecord;
-  to.ObserveObjectMethods = ObserveObjectMethods;
-});
-
-})
diff --git a/src/js/prologue.js b/src/js/prologue.js
index f9589a5..b352eb1 100644
--- a/src/js/prologue.js
+++ b/src/js/prologue.js
@@ -128,10 +128,10 @@
 
 function OverrideFunction(object, name, f, afterInitialBootstrap) {
   %CheckIsBootstrapping();
-  %ObjectDefineProperty(object, name, { value: f,
-                                        writeable: true,
-                                        configurable: true,
-                                        enumerable: false });
+  %object_define_property(object, name, { value: f,
+                                          writeable: true,
+                                          configurable: true,
+                                          enumerable: false });
   SetFunctionName(f, name);
   if (!afterInitialBootstrap) %FunctionRemovePrototype(f);
   %SetNativeFlag(f);
@@ -181,10 +181,15 @@
 
   // Whitelist of exports from normal natives to experimental natives and debug.
   var expose_list = [
+    "AddBoundMethod",
     "ArrayToString",
+    "AsyncFunctionNext",
+    "AsyncFunctionThrow",
     "ErrorToString",
     "GetIterator",
     "GetMethod",
+    "IntlParseDate",
+    "IntlParseNumber",
     "IsNaN",
     "MakeError",
     "MakeRangeError",
@@ -195,12 +200,12 @@
     "MaxSimple",
     "MinSimple",
     "NumberIsInteger",
-    "ObjectDefineProperty",
-    "ObserveArrayMethods",
-    "ObserveObjectMethods",
     "PromiseChain",
-    "PromiseDeferred",
-    "PromiseResolved",
+    "PromiseDefer",
+    "PromiseAccept",
+    "PromiseCreateRejected",
+    "PromiseCreateResolved",
+    "PromiseThen",
     "RegExpSubclassExecJS",
     "RegExpSubclassMatch",
     "RegExpSubclassReplace",
@@ -211,12 +216,16 @@
     "SetIteratorNext",
     "SetValues",
     "SymbolToString",
+    "ToLocaleLowerCaseI18N",
+    "ToLocaleUpperCaseI18N",
+    "ToLowerCaseI18N",
     "ToPositiveInteger",
+    "ToUpperCaseI18N",
     // From runtime:
     "is_concat_spreadable_symbol",
     "iterator_symbol",
-    "promise_status_symbol",
-    "promise_value_symbol",
+    "promise_result_symbol",
+    "promise_state_symbol",
     "object_freeze",
     "object_is_frozen",
     "object_is_sealed",
diff --git a/src/js/promise-extra.js b/src/js/promise-extra.js
index f6f7959..34d7323 100644
--- a/src/js/promise-extra.js
+++ b/src/js/promise-extra.js
@@ -11,16 +11,16 @@
 var GlobalPromise = global.Promise;
 
 var PromiseChain = utils.ImportNow("PromiseChain");
-var PromiseDeferred = utils.ImportNow("PromiseDeferred");
-var PromiseResolved = utils.ImportNow("PromiseResolved");
+var PromiseDefer = utils.ImportNow("PromiseDefer");
+var PromiseAccept = utils.ImportNow("PromiseAccept");
 
 utils.InstallFunctions(GlobalPromise.prototype, DONT_ENUM, [
   "chain", PromiseChain,
 ]);
 
 utils.InstallFunctions(GlobalPromise, DONT_ENUM, [
-  "defer", PromiseDeferred,
-  "accept", PromiseResolved,
+  "defer", PromiseDefer,
+  "accept", PromiseAccept,
 ]);
 
 })
diff --git a/src/js/promise.js b/src/js/promise.js
index bcf826a..42b772b 100644
--- a/src/js/promise.js
+++ b/src/js/promise.js
@@ -17,12 +17,13 @@
     utils.ImportNow("promise_combined_deferred_symbol");
 var promiseHasHandlerSymbol =
     utils.ImportNow("promise_has_handler_symbol");
-var promiseOnRejectSymbol = utils.ImportNow("promise_on_reject_symbol");
-var promiseOnResolveSymbol =
-    utils.ImportNow("promise_on_resolve_symbol");
+var promiseRejectReactionsSymbol =
+    utils.ImportNow("promise_reject_reactions_symbol");
+var promiseFulfillReactionsSymbol =
+    utils.ImportNow("promise_fulfill_reactions_symbol");
 var promiseRawSymbol = utils.ImportNow("promise_raw_symbol");
-var promiseStatusSymbol = utils.ImportNow("promise_status_symbol");
-var promiseValueSymbol = utils.ImportNow("promise_value_symbol");
+var promiseStateSymbol = utils.ImportNow("promise_state_symbol");
+var promiseResultSymbol = utils.ImportNow("promise_result_symbol");
 var SpeciesConstructor;
 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
 
@@ -33,22 +34,32 @@
 
 // -------------------------------------------------------------------
 
-// Status values: 0 = pending, +1 = resolved, -1 = rejected
+// [[PromiseState]] values:
+const kPending = 0;
+const kFulfilled = +1;
+const kRejected = -1;
+
 var lastMicrotaskId = 0;
 
+// ES#sec-createresolvingfunctions
+// CreateResolvingFunctions ( promise )
 function CreateResolvingFunctions(promise) {
   var alreadyResolved = false;
 
+  // ES#sec-promise-resolve-functions
+  // Promise Resolve Functions
   var resolve = value => {
     if (alreadyResolved === true) return;
     alreadyResolved = true;
-    PromiseResolve(promise, value);
+    FulfillPromise(promise, value);
   };
 
+  // ES#sec-promise-reject-functions
+  // Promise Reject Functions
   var reject = reason => {
     if (alreadyResolved === true) return;
     alreadyResolved = true;
-    PromiseReject(promise, reason);
+    RejectPromise(promise, reason);
   };
 
   return {
@@ -59,13 +70,16 @@
 }
 
 
+// ES#sec-promise-executor
+// Promise ( executor )
 var GlobalPromise = function Promise(resolver) {
   if (resolver === promiseRawSymbol) {
     return %_NewObject(GlobalPromise, new.target);
   }
   if (IS_UNDEFINED(new.target)) throw MakeTypeError(kNotAPromise, this);
-  if (!IS_CALLABLE(resolver))
+  if (!IS_CALLABLE(resolver)) {
     throw MakeTypeError(kResolverNotAFunction, resolver);
+  }
 
   var promise = PromiseInit(%_NewObject(GlobalPromise, new.target));
   var callbacks = CreateResolvingFunctions(promise);
@@ -85,27 +99,27 @@
 // Core functionality.
 
 function PromiseSet(promise, status, value, onResolve, onReject) {
-  SET_PRIVATE(promise, promiseStatusSymbol, status);
-  SET_PRIVATE(promise, promiseValueSymbol, value);
-  SET_PRIVATE(promise, promiseOnResolveSymbol, onResolve);
-  SET_PRIVATE(promise, promiseOnRejectSymbol, onReject);
+  SET_PRIVATE(promise, promiseStateSymbol, status);
+  SET_PRIVATE(promise, promiseResultSymbol, value);
+  SET_PRIVATE(promise, promiseFulfillReactionsSymbol, onResolve);
+  SET_PRIVATE(promise, promiseRejectReactionsSymbol, onReject);
   return promise;
 }
 
 function PromiseCreateAndSet(status, value) {
   var promise = new GlobalPromise(promiseRawSymbol);
   // If debug is active, notify about the newly created promise first.
-  if (DEBUG_IS_ACTIVE) PromiseSet(promise, 0, UNDEFINED);
+  if (DEBUG_IS_ACTIVE) PromiseSet(promise, kPending, UNDEFINED);
   return PromiseSet(promise, status, value);
 }
 
 function PromiseInit(promise) {
   return PromiseSet(
-      promise, 0, UNDEFINED, new InternalArray, new InternalArray)
+      promise, kPending, UNDEFINED, new InternalArray, new InternalArray)
 }
 
 function PromiseDone(promise, status, value, promiseQueue) {
-  if (GET_PRIVATE(promise, promiseStatusSymbol) === 0) {
+  if (GET_PRIVATE(promise, promiseStateSymbol) === kPending) {
     var tasks = GET_PRIVATE(promise, promiseQueue);
     if (tasks.length) PromiseEnqueue(value, tasks, status);
     PromiseSet(promise, status, value);
@@ -139,7 +153,7 @@
   });
   if (instrumenting) {
     id = ++lastMicrotaskId;
-    name = status > 0 ? "Promise.resolve" : "Promise.reject";
+    name = status === kFulfilled ? "Promise.resolve" : "Promise.reject";
     %DebugAsyncTaskEvent({ type: "enqueue", id: id, name: name });
   }
 }
@@ -154,24 +168,27 @@
 
 // For bootstrapper.
 
+// ES#sec-ispromise IsPromise ( x )
 function IsPromise(x) {
-  return IS_RECEIVER(x) && HAS_DEFINED_PRIVATE(x, promiseStatusSymbol);
+  return IS_RECEIVER(x) && HAS_DEFINED_PRIVATE(x, promiseStateSymbol);
 }
 
 function PromiseCreate() {
   return new GlobalPromise(PromiseNopResolver)
 }
 
-function PromiseResolve(promise, x) {
+// ES#sec-fulfillpromise
+// FulfillPromise ( promise, value)
+function FulfillPromise(promise, x) {
   if (x === promise) {
-    return PromiseReject(promise, MakeTypeError(kPromiseCyclic, x));
+    return RejectPromise(promise, MakeTypeError(kPromiseCyclic, x));
   }
   if (IS_RECEIVER(x)) {
     // 25.4.1.3.2 steps 8-12
     try {
       var then = x.then;
     } catch (e) {
-      return PromiseReject(promise, e);
+      return RejectPromise(promise, e);
     }
     if (IS_CALLABLE(then)) {
       // PromiseResolveThenableJob
@@ -198,22 +215,26 @@
       return;
     }
   }
-  PromiseDone(promise, +1, x, promiseOnResolveSymbol);
+  PromiseDone(promise, kFulfilled, x, promiseFulfillReactionsSymbol);
 }
 
-function PromiseReject(promise, r) {
+// ES#sec-rejectpromise
+// RejectPromise ( promise, reason )
+function RejectPromise(promise, r) {
   // Check promise status to confirm that this reject has an effect.
   // Call runtime for callbacks to the debugger or for unhandled reject.
-  if (GET_PRIVATE(promise, promiseStatusSymbol) == 0) {
+  if (GET_PRIVATE(promise, promiseStateSymbol) === kPending) {
     var debug_is_active = DEBUG_IS_ACTIVE;
     if (debug_is_active ||
         !HAS_DEFINED_PRIVATE(promise, promiseHasHandlerSymbol)) {
       %PromiseRejectEvent(promise, r, debug_is_active);
     }
   }
-  PromiseDone(promise, -1, r, promiseOnRejectSymbol)
+  PromiseDone(promise, kRejected, r, promiseRejectReactionsSymbol)
 }
 
+// ES#sec-newpromisecapability
+// NewPromiseCapability ( C )
 function NewPromiseCapability(C) {
   if (C === GlobalPromise) {
     // Optimized case, avoid extra closure.
@@ -240,23 +261,27 @@
   return result;
 }
 
-function PromiseDeferred() {
+// Unspecified V8-specific legacy function
+function PromiseDefer() {
   %IncrementUseCounter(kPromiseDefer);
   return NewPromiseCapability(this);
 }
 
-function PromiseResolved(x) {
+// Unspecified V8-specific legacy function
+function PromiseAccept(x) {
   %IncrementUseCounter(kPromiseAccept);
-  return %_Call(PromiseCast, this, x);
+  return %_Call(PromiseResolve, this, x);
 }
 
-function PromiseRejected(r) {
+// ES#sec-promise.reject
+// Promise.reject ( x )
+function PromiseReject(r) {
   if (!IS_RECEIVER(this)) {
-    throw MakeTypeError(kCalledOnNonObject, PromiseRejected);
+    throw MakeTypeError(kCalledOnNonObject, PromiseResolve);
   }
   if (this === GlobalPromise) {
     // Optimized case, avoid extra closure.
-    var promise = PromiseCreateAndSet(-1, r);
+    var promise = PromiseCreateAndSet(kRejected, r);
     // The debug event for this would always be an uncaught promise reject,
     // which is usually simply noise. Do not trigger that debug event.
     %PromiseRejectEvent(promise, r, false);
@@ -268,10 +293,21 @@
   }
 }
 
-// Multi-unwrapped chaining with thenable coercion.
+// Shortcut Promise.reject and Promise.resolve() implementations, used by
+// Async Functions implementation.
+function PromiseCreateRejected(r) {
+  return %_Call(PromiseReject, GlobalPromise, r);
+}
 
+function PromiseCreateResolved(x) {
+  return %_Call(PromiseResolve, GlobalPromise, x);
+}
+
+// ES#sec-promise.prototype.then
+// Promise.prototype.then ( onFulfilled, onRejected )
+// Multi-unwrapped chaining with thenable coercion.
 function PromiseThen(onResolve, onReject) {
-  var status = GET_PRIVATE(this, promiseStatusSymbol);
+  var status = GET_PRIVATE(this, promiseStateSymbol);
   if (IS_UNDEFINED(status)) {
     throw MakeTypeError(kNotAPromise, this);
   }
@@ -281,24 +317,25 @@
   onReject = IS_CALLABLE(onReject) ? onReject : PromiseIdRejectHandler;
   var deferred = NewPromiseCapability(constructor);
   switch (status) {
-    case 0:  // Pending
-      GET_PRIVATE(this, promiseOnResolveSymbol).push(onResolve, deferred);
-      GET_PRIVATE(this, promiseOnRejectSymbol).push(onReject, deferred);
+    case kPending:
+      GET_PRIVATE(this, promiseFulfillReactionsSymbol).push(onResolve,
+                                                            deferred);
+      GET_PRIVATE(this, promiseRejectReactionsSymbol).push(onReject, deferred);
       break;
-    case +1:  // Resolved
-      PromiseEnqueue(GET_PRIVATE(this, promiseValueSymbol),
+    case kFulfilled:
+      PromiseEnqueue(GET_PRIVATE(this, promiseResultSymbol),
                      [onResolve, deferred],
-                     +1);
+                     kFulfilled);
       break;
-    case -1:  // Rejected
+    case kRejected:
       if (!HAS_DEFINED_PRIVATE(this, promiseHasHandlerSymbol)) {
         // Promise has already been rejected, but had no handler.
         // Revoke previously triggered reject event.
         %PromiseRevokeReject(this);
       }
-      PromiseEnqueue(GET_PRIVATE(this, promiseValueSymbol),
+      PromiseEnqueue(GET_PRIVATE(this, promiseResultSymbol),
                      [onReject, deferred],
-                     -1);
+                     kRejected);
       break;
   }
   // Mark this promise as having handler.
@@ -306,21 +343,26 @@
   return deferred.promise;
 }
 
+// Unspecified V8-specific legacy function
 // Chain is left around for now as an alias for then
 function PromiseChain(onResolve, onReject) {
   %IncrementUseCounter(kPromiseChain);
   return %_Call(PromiseThen, this, onResolve, onReject);
 }
 
+// ES#sec-promise.prototype.catch
+// Promise.prototype.catch ( onRejected )
 function PromiseCatch(onReject) {
   return this.then(UNDEFINED, onReject);
 }
 
 // Combinators.
 
-function PromiseCast(x) {
+// ES#sec-promise.resolve
+// Promise.resolve ( x )
+function PromiseResolve(x) {
   if (!IS_RECEIVER(this)) {
-    throw MakeTypeError(kCalledOnNonObject, PromiseCast);
+    throw MakeTypeError(kCalledOnNonObject, PromiseResolve);
   }
   if (IsPromise(x) && x.constructor === this) return x;
 
@@ -329,6 +371,8 @@
   return promiseCapability.promise;
 }
 
+// ES#sec-promise.all
+// Promise.all ( iterable )
 function PromiseAll(iterable) {
   if (!IS_RECEIVER(this)) {
     throw MakeTypeError(kCalledOnNonObject, "Promise.all");
@@ -378,6 +422,8 @@
   return deferred.promise;
 }
 
+// ES#sec-promise.race
+// Promise.race ( iterable )
 function PromiseRace(iterable) {
   if (!IS_RECEIVER(this)) {
     throw MakeTypeError(kCalledOnNonObject, PromiseRace);
@@ -399,7 +445,7 @@
 // Utility for debugger
 
 function PromiseHasUserDefinedRejectHandlerRecursive(promise) {
-  var queue = GET_PRIVATE(promise, promiseOnRejectSymbol);
+  var queue = GET_PRIVATE(promise, promiseRejectReactionsSymbol);
   if (IS_UNDEFINED(queue)) return false;
   for (var i = 0; i < queue.length; i += 2) {
     var handler = queue[i];
@@ -432,10 +478,10 @@
                   DONT_ENUM | READ_ONLY);
 
 utils.InstallFunctions(GlobalPromise, DONT_ENUM, [
-  "reject", PromiseRejected,
+  "reject", PromiseReject,
   "all", PromiseAll,
   "race", PromiseRace,
-  "resolve", PromiseCast
+  "resolve", PromiseResolve
 ]);
 
 utils.InstallFunctions(GlobalPromise.prototype, DONT_ENUM, [
@@ -448,9 +494,11 @@
   "promise_chain", PromiseChain,
   "promise_create", PromiseCreate,
   "promise_has_user_defined_reject_handler", PromiseHasUserDefinedRejectHandler,
-  "promise_reject", PromiseReject,
-  "promise_resolve", PromiseResolve,
+  "promise_reject", RejectPromise,
+  "promise_resolve", FulfillPromise,
   "promise_then", PromiseThen,
+  "promise_create_rejected", PromiseCreateRejected,
+  "promise_create_resolved", PromiseCreateResolved
 ]);
 
 // This allows extras to create promises quickly without building extra
@@ -458,18 +506,22 @@
 // promise without having to hold on to those closures forever.
 utils.InstallFunctions(extrasUtils, 0, [
   "createPromise", PromiseCreate,
-  "resolvePromise", PromiseResolve,
-  "rejectPromise", PromiseReject
+  "resolvePromise", FulfillPromise,
+  "rejectPromise", RejectPromise
 ]);
 
 // TODO(v8:4567): Allow experimental natives to remove function prototype
-[PromiseChain, PromiseDeferred, PromiseResolved].forEach(
+[PromiseChain, PromiseDefer, PromiseAccept].forEach(
     fn => %FunctionRemovePrototype(fn));
 
 utils.Export(function(to) {
   to.PromiseChain = PromiseChain;
-  to.PromiseDeferred = PromiseDeferred;
-  to.PromiseResolved = PromiseResolved;
+  to.PromiseDefer = PromiseDefer;
+  to.PromiseAccept = PromiseAccept;
+
+  to.PromiseCreateRejected = PromiseCreateRejected;
+  to.PromiseCreateResolved = PromiseCreateResolved;
+  to.PromiseThen = PromiseThen;
 });
 
 })
diff --git a/src/js/regexp.js b/src/js/regexp.js
index cc8cb41..719a081 100644
--- a/src/js/regexp.js
+++ b/src/js/regexp.js
@@ -4,14 +4,11 @@
 
 (function(global, utils) {
 
-'use strict';
-
 %CheckIsBootstrapping();
 
 // -------------------------------------------------------------------
 // Imports
 
-var AddIndexedProperty;
 var ExpandReplacement;
 var GlobalArray = global.Array;
 var GlobalObject = global.Object;
@@ -29,7 +26,6 @@
 var SpeciesConstructor;
 
 utils.Import(function(from) {
-  AddIndexedProperty = from.AddIndexedProperty;
   ExpandReplacement = from.ExpandReplacement;
   MakeTypeError = from.MakeTypeError;
   MaxSimple = from.MaxSimple;
@@ -502,7 +498,7 @@
   var result;
   if (size === 0) {
     result = RegExpSubclassExec(splitter, string);
-    if (IS_NULL(result)) AddIndexedProperty(array, 0, string);
+    if (IS_NULL(result)) %AddElement(array, 0, string);
     return array;
   }
   var stringIndex = prevStringIndex;
@@ -515,10 +511,10 @@
       stringIndex += AdvanceStringIndex(string, stringIndex, unicode);
     } else {
       var end = MinSimple(TO_LENGTH(splitter.lastIndex), size);
-      if (end === stringIndex) {
+      if (end === prevStringIndex) {
         stringIndex += AdvanceStringIndex(string, stringIndex, unicode);
       } else {
-        AddIndexedProperty(
+        %AddElement(
             array, arrayIndex,
             %_SubString(string, prevStringIndex, stringIndex));
         arrayIndex++;
@@ -526,7 +522,7 @@
         prevStringIndex = end;
         var numberOfCaptures = MaxSimple(TO_LENGTH(result.length), 0);
         for (var i = 1; i < numberOfCaptures; i++) {
-          AddIndexedProperty(array, arrayIndex, result[i]);
+          %AddElement(array, arrayIndex, result[i]);
           arrayIndex++;
           if (arrayIndex === lim) return array;
         }
@@ -534,7 +530,7 @@
       }
     }
   }
-  AddIndexedProperty(array, arrayIndex,
+  %AddElement(array, arrayIndex,
                      %_SubString(string, prevStringIndex, size));
   return array;
 }
diff --git a/src/js/runtime.js b/src/js/runtime.js
index 8e4f283..a6a0b4d 100644
--- a/src/js/runtime.js
+++ b/src/js/runtime.js
@@ -43,19 +43,6 @@
 */
 
 
-// This function should be called rather than %AddElement in contexts where the
-// argument might not be less than 2**32-1. ES2015 ToLength semantics mean that
-// this is a concern at basically all callsites.
-function AddIndexedProperty(obj, index, value) {
-  if (index === TO_UINT32(index) && index !== kMaxUint32) {
-    %AddElement(obj, index, value);
-  } else {
-    %AddNamedProperty(obj, TO_STRING(index), value, NONE);
-  }
-}
-%SetForceInlineFlag(AddIndexedProperty);
-
-
 function ToPositiveInteger(x, rangeErrorIndex) {
   var i = TO_INTEGER_MAP_MINUS_ZERO(x);
   if (i < 0) throw MakeRangeError(rangeErrorIndex);
@@ -122,7 +109,6 @@
 // Exports
 
 utils.Export(function(to) {
-  to.AddIndexedProperty = AddIndexedProperty;
   to.MaxSimple = MaxSimple;
   to.MinSimple = MinSimple;
   to.ToPositiveInteger = ToPositiveInteger;
diff --git a/src/js/string.js b/src/js/string.js
index 0eb394e..badb2b4 100644
--- a/src/js/string.js
+++ b/src/js/string.js
@@ -57,30 +57,6 @@
 }
 
 
-// ECMA-262, section 15.5.4.4
-function StringCharAtJS(pos) {
-  CHECK_OBJECT_COERCIBLE(this, "String.prototype.charAt");
-
-  var result = %_StringCharAt(this, pos);
-  if (%_IsSmi(result)) {
-    result = %_StringCharAt(TO_STRING(this), TO_INTEGER(pos));
-  }
-  return result;
-}
-
-
-// ECMA-262 section 15.5.4.5
-function StringCharCodeAtJS(pos) {
-  CHECK_OBJECT_COERCIBLE(this, "String.prototype.charCodeAt");
-
-  var result = %_StringCharCodeAt(this, pos);
-  if (!%_IsSmi(result)) {
-    result = %_StringCharCodeAt(TO_STRING(this), TO_INTEGER(pos));
-  }
-  return result;
-}
-
-
 // ECMA-262, section 15.5.4.6
 function StringConcat(other /* and more */) {  // length == 1
   "use strict";
@@ -845,13 +821,6 @@
 
 // -------------------------------------------------------------------
 
-// Set the String function and constructor.
-%FunctionSetPrototype(GlobalString, new GlobalString());
-
-// Set up the constructor property on the String prototype object.
-%AddNamedProperty(
-    GlobalString.prototype, "constructor", GlobalString, DONT_ENUM);
-
 // Set up the non-enumerable functions on the String object.
 utils.InstallFunctions(GlobalString, DONT_ENUM, [
   "fromCodePoint", StringFromCodePoint,
@@ -862,8 +831,6 @@
 utils.InstallFunctions(GlobalString.prototype, DONT_ENUM, [
   "valueOf", StringValueOf,
   "toString", StringToString,
-  "charAt", StringCharAtJS,
-  "charCodeAt", StringCharCodeAtJS,
   "codePointAt", StringCodePointAt,
   "concat", StringConcat,
   "endsWith", StringEndsWith,
@@ -909,7 +876,6 @@
 
 utils.Export(function(to) {
   to.ExpandReplacement = ExpandReplacement;
-  to.StringCharAt = StringCharAtJS;
   to.StringIndexOf = StringIndexOf;
   to.StringLastIndexOf = StringLastIndexOf;
   to.StringMatch = StringMatchJS;
diff --git a/src/js/typedarray.js b/src/js/typedarray.js
index 4fb174b..18f6dde 100644
--- a/src/js/typedarray.js
+++ b/src/js/typedarray.js
@@ -11,7 +11,6 @@
 // -------------------------------------------------------------------
 // Imports
 
-var AddIndexedProperty;
 // array.js has to come before typedarray.js for this to work
 var ArrayToString = utils.ImportNow("ArrayToString");
 var ArrayValues;
@@ -22,7 +21,6 @@
 var GlobalArrayBufferPrototype = GlobalArrayBuffer.prototype;
 var GlobalDataView = global.DataView;
 var GlobalObject = global.Object;
-var InternalArray = utils.InternalArray;
 var InnerArrayCopyWithin;
 var InnerArrayEvery;
 var InnerArrayFill;
@@ -71,7 +69,6 @@
 TYPED_ARRAYS(DECLARE_GLOBALS)
 
 utils.Import(function(from) {
-  AddIndexedProperty = from.AddIndexedProperty;
   ArrayValues = from.ArrayValues;
   GetIterator = from.GetIterator;
   GetMethod = from.GetMethod;
diff --git a/src/js/uri.js b/src/js/uri.js
index dca83c9..19bfbd3 100644
--- a/src/js/uri.js
+++ b/src/js/uri.js
@@ -37,72 +37,6 @@
   return -1;
 }
 
-// Does the char code correspond to an alpha-numeric char.
-function isAlphaNumeric(cc) {
-  // a - z
-  if (97 <= cc && cc <= 122) return true;
-  // A - Z
-  if (65 <= cc && cc <= 90) return true;
-  // 0 - 9
-  if (48 <= cc && cc <= 57) return true;
-
-  return false;
-}
-
-// Lazily initialized.
-var hexCharCodeArray = 0;
-
-function URIAddEncodedOctetToBuffer(octet, result, index) {
-  result[index++] = 37; // Char code of '%'.
-  result[index++] = hexCharCodeArray[octet >> 4];
-  result[index++] = hexCharCodeArray[octet & 0x0F];
-  return index;
-}
-
-function URIEncodeOctets(octets, result, index) {
-  if (hexCharCodeArray === 0) {
-    hexCharCodeArray = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
-                        65, 66, 67, 68, 69, 70];
-  }
-  index = URIAddEncodedOctetToBuffer(octets[0], result, index);
-  if (octets[1]) index = URIAddEncodedOctetToBuffer(octets[1], result, index);
-  if (octets[2]) index = URIAddEncodedOctetToBuffer(octets[2], result, index);
-  if (octets[3]) index = URIAddEncodedOctetToBuffer(octets[3], result, index);
-  return index;
-}
-
-function URIEncodeSingle(cc, result, index) {
-  var x = (cc >> 12) & 0xF;
-  var y = (cc >> 6) & 63;
-  var z = cc & 63;
-  var octets = new InternalArray(3);
-  if (cc <= 0x007F) {
-    octets[0] = cc;
-  } else if (cc <= 0x07FF) {
-    octets[0] = y + 192;
-    octets[1] = z + 128;
-  } else {
-    octets[0] = x + 224;
-    octets[1] = y + 128;
-    octets[2] = z + 128;
-  }
-  return URIEncodeOctets(octets, result, index);
-}
-
-function URIEncodePair(cc1 , cc2, result, index) {
-  var u = ((cc1 >> 6) & 0xF) + 1;
-  var w = (cc1 >> 2) & 0xF;
-  var x = cc1 & 3;
-  var y = (cc2 >> 6) & 0xF;
-  var z = cc2 & 63;
-  var octets = new InternalArray(4);
-  octets[0] = (u >> 2) + 240;
-  octets[1] = (((u & 3) << 4) | w) + 128;
-  octets[2] = ((x << 4) | y) + 128;
-  octets[3] = z + 128;
-  return URIEncodeOctets(octets, result, index);
-}
-
 function URIHexCharsToCharCode(highChar, lowChar) {
   var highCode = HexValueOf(highChar);
   var lowCode = HexValueOf(lowChar);
@@ -168,37 +102,6 @@
 }
 
 // ECMA-262, section 15.1.3
-function Encode(uri, unescape) {
-  uri = TO_STRING(uri);
-  var uriLength = uri.length;
-  var array = new InternalArray(uriLength);
-  var index = 0;
-  for (var k = 0; k < uriLength; k++) {
-    var cc1 = %_StringCharCodeAt(uri, k);
-    if (unescape(cc1)) {
-      array[index++] = cc1;
-    } else {
-      if (cc1 >= 0xDC00 && cc1 <= 0xDFFF) throw MakeURIError();
-      if (cc1 < 0xD800 || cc1 > 0xDBFF) {
-        index = URIEncodeSingle(cc1, array, index);
-      } else {
-        k++;
-        if (k == uriLength) throw MakeURIError();
-        var cc2 = %_StringCharCodeAt(uri, k);
-        if (cc2 < 0xDC00 || cc2 > 0xDFFF) throw MakeURIError();
-        index = URIEncodePair(cc1, cc2, array, index);
-      }
-    }
-  }
-
-  var result = %NewString(array.length, NEW_ONE_BYTE_STRING);
-  for (var i = 0; i < array.length; i++) {
-    %_OneByteSeqStringSetChar(i, array[i], result);
-  }
-  return result;
-}
-
-// ECMA-262, section 15.1.3
 function Decode(uri, reserved) {
   uri = TO_STRING(uri);
   var uriLength = uri.length;
@@ -316,52 +219,6 @@
   return Decode(component, reservedPredicate);
 }
 
-// ECMA-262 - 15.1.3.3.
-function URIEncode(uri) {
-  var unescapePredicate = function(cc) {
-    if (isAlphaNumeric(cc)) return true;
-    // !
-    if (cc == 33) return true;
-    // #$
-    if (35 <= cc && cc <= 36) return true;
-    // &'()*+,-./
-    if (38 <= cc && cc <= 47) return true;
-    // :;
-    if (58 <= cc && cc <= 59) return true;
-    // =
-    if (cc == 61) return true;
-    // ?@
-    if (63 <= cc && cc <= 64) return true;
-    // _
-    if (cc == 95) return true;
-    // ~
-    if (cc == 126) return true;
-
-    return false;
-  };
-  return Encode(uri, unescapePredicate);
-}
-
-// ECMA-262 - 15.1.3.4
-function URIEncodeComponent(component) {
-  var unescapePredicate = function(cc) {
-    if (isAlphaNumeric(cc)) return true;
-    // !
-    if (cc == 33) return true;
-    // '()*
-    if (39 <= cc && cc <= 42) return true;
-    // -.
-    if (45 <= cc && cc <= 46) return true;
-    // _
-    if (cc == 95) return true;
-    // ~
-    if (cc == 126) return true;
-
-    return false;
-  };
-  return Encode(component, unescapePredicate);
-}
-
 // -------------------------------------------------------------------
 // Install exported functions.
 
@@ -371,9 +228,7 @@
   "escape", URIEscapeJS,
   "unescape", URIUnescapeJS,
   "decodeURI", URIDecode,
-  "decodeURIComponent", URIDecodeComponent,
-  "encodeURI", URIEncode,
-  "encodeURIComponent", URIEncodeComponent
+  "decodeURIComponent", URIDecodeComponent
 ]);
 
 })
diff --git a/src/js/v8natives.js b/src/js/v8natives.js
index 5185c62..44be941 100644
--- a/src/js/v8natives.js
+++ b/src/js/v8natives.js
@@ -20,9 +20,6 @@
 var MathAbs;
 var NaN = %GetRootNaN();
 var ObjectToString = utils.ImportNow("object_to_string");
-var ObserveBeginPerformSplice;
-var ObserveEndPerformSplice;
-var ObserveEnqueueSpliceRecord;
 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
 
 utils.Import(function(from) {
@@ -30,9 +27,6 @@
   MakeSyntaxError = from.MakeSyntaxError;
   MakeTypeError = from.MakeTypeError;
   MathAbs = from.MathAbs;
-  ObserveBeginPerformSplice = from.ObserveBeginPerformSplice;
-  ObserveEndPerformSplice = from.ObserveEndPerformSplice;
-  ObserveEnqueueSpliceRecord = from.ObserveEnqueueSpliceRecord;
 });
 
 // ----------------------------------------------------------------------------
@@ -148,348 +142,6 @@
   return %PropertyIsEnumerable(TO_OBJECT(this), P);
 }
 
-
-// Extensions for providing property getters and setters.
-function ObjectDefineGetter(name, fun) {
-  var receiver = this;
-  if (IS_NULL(receiver) || IS_UNDEFINED(receiver)) {
-    receiver = %GlobalProxy(ObjectDefineGetter);
-  }
-  if (!IS_CALLABLE(fun)) {
-    throw MakeTypeError(kObjectGetterExpectingFunction);
-  }
-  var desc = new PropertyDescriptor();
-  desc.setGet(fun);
-  desc.setEnumerable(true);
-  desc.setConfigurable(true);
-  DefineOwnProperty(TO_OBJECT(receiver), TO_NAME(name), desc, false);
-}
-
-
-function ObjectLookupGetter(name) {
-  var receiver = this;
-  if (IS_NULL(receiver) || IS_UNDEFINED(receiver)) {
-    receiver = %GlobalProxy(ObjectLookupGetter);
-  }
-  return %LookupAccessor(TO_OBJECT(receiver), TO_NAME(name), GETTER);
-}
-
-
-function ObjectDefineSetter(name, fun) {
-  var receiver = this;
-  if (IS_NULL(receiver) || IS_UNDEFINED(receiver)) {
-    receiver = %GlobalProxy(ObjectDefineSetter);
-  }
-  if (!IS_CALLABLE(fun)) {
-    throw MakeTypeError(kObjectSetterExpectingFunction);
-  }
-  var desc = new PropertyDescriptor();
-  desc.setSet(fun);
-  desc.setEnumerable(true);
-  desc.setConfigurable(true);
-  DefineOwnProperty(TO_OBJECT(receiver), TO_NAME(name), desc, false);
-}
-
-
-function ObjectLookupSetter(name) {
-  var receiver = this;
-  if (IS_NULL(receiver) || IS_UNDEFINED(receiver)) {
-    receiver = %GlobalProxy(ObjectLookupSetter);
-  }
-  return %LookupAccessor(TO_OBJECT(receiver), TO_NAME(name), SETTER);
-}
-
-
-// ES6 6.2.4.1
-function IsAccessorDescriptor(desc) {
-  if (IS_UNDEFINED(desc)) return false;
-  return desc.hasGetter() || desc.hasSetter();
-}
-
-
-// ES6 6.2.4.2
-function IsDataDescriptor(desc) {
-  if (IS_UNDEFINED(desc)) return false;
-  return desc.hasValue() || desc.hasWritable();
-}
-
-
-// ES6 6.2.4.3
-function IsGenericDescriptor(desc) {
-  if (IS_UNDEFINED(desc)) return false;
-  return !(IsAccessorDescriptor(desc) || IsDataDescriptor(desc));
-}
-
-
-function IsInconsistentDescriptor(desc) {
-  return IsAccessorDescriptor(desc) && IsDataDescriptor(desc);
-}
-
-
-// Harmony Proxies
-function FromGenericPropertyDescriptor(desc) {
-  if (IS_UNDEFINED(desc)) return desc;
-  var obj = new GlobalObject();
-
-  if (desc.hasValue()) {
-    %AddNamedProperty(obj, "value", desc.getValue(), NONE);
-  }
-  if (desc.hasWritable()) {
-    %AddNamedProperty(obj, "writable", desc.isWritable(), NONE);
-  }
-  if (desc.hasGetter()) {
-    %AddNamedProperty(obj, "get", desc.getGet(), NONE);
-  }
-  if (desc.hasSetter()) {
-    %AddNamedProperty(obj, "set", desc.getSet(), NONE);
-  }
-  if (desc.hasEnumerable()) {
-    %AddNamedProperty(obj, "enumerable", desc.isEnumerable(), NONE);
-  }
-  if (desc.hasConfigurable()) {
-    %AddNamedProperty(obj, "configurable", desc.isConfigurable(), NONE);
-  }
-  return obj;
-}
-
-
-// ES6 6.2.4.5
-function ToPropertyDescriptor(obj) {
-  if (!IS_RECEIVER(obj)) throw MakeTypeError(kPropertyDescObject, obj);
-
-  var desc = new PropertyDescriptor();
-
-  if ("enumerable" in obj) {
-    desc.setEnumerable(TO_BOOLEAN(obj.enumerable));
-  }
-
-  if ("configurable" in obj) {
-    desc.setConfigurable(TO_BOOLEAN(obj.configurable));
-  }
-
-  if ("value" in obj) {
-    desc.setValue(obj.value);
-  }
-
-  if ("writable" in obj) {
-    desc.setWritable(TO_BOOLEAN(obj.writable));
-  }
-
-  if ("get" in obj) {
-    var get = obj.get;
-    if (!IS_UNDEFINED(get) && !IS_CALLABLE(get)) {
-      throw MakeTypeError(kObjectGetterCallable, get);
-    }
-    desc.setGet(get);
-  }
-
-  if ("set" in obj) {
-    var set = obj.set;
-    if (!IS_UNDEFINED(set) && !IS_CALLABLE(set)) {
-      throw MakeTypeError(kObjectSetterCallable, set);
-    }
-    desc.setSet(set);
-  }
-
-  if (IsInconsistentDescriptor(desc)) {
-    throw MakeTypeError(kValueAndAccessor, obj);
-  }
-  return desc;
-}
-
-// TODO(cbruni): remove once callers have been removed
-function ToCompletePropertyDescriptor(obj) {
-  var desc = ToPropertyDescriptor(obj);
-  if (IsGenericDescriptor(desc) || IsDataDescriptor(desc)) {
-    if (!desc.hasValue()) desc.setValue(UNDEFINED);
-    if (!desc.hasWritable()) desc.setWritable(false);
-  } else {
-    // Is accessor descriptor.
-    if (!desc.hasGetter()) desc.setGet(UNDEFINED);
-    if (!desc.hasSetter()) desc.setSet(UNDEFINED);
-  }
-  if (!desc.hasEnumerable()) desc.setEnumerable(false);
-  if (!desc.hasConfigurable()) desc.setConfigurable(false);
-  return desc;
-}
-
-
-function PropertyDescriptor() {
-  // Initialize here so they are all in-object and have the same map.
-  // Default values from ES5 8.6.1.
-  this.value_ = UNDEFINED;
-  this.hasValue_ = false;
-  this.writable_ = false;
-  this.hasWritable_ = false;
-  this.enumerable_ = false;
-  this.hasEnumerable_ = false;
-  this.configurable_ = false;
-  this.hasConfigurable_ = false;
-  this.get_ = UNDEFINED;
-  this.hasGetter_ = false;
-  this.set_ = UNDEFINED;
-  this.hasSetter_ = false;
-}
-
-utils.SetUpLockedPrototype(PropertyDescriptor, [
-  "value_",
-  "hasValue_",
-  "writable_",
-  "hasWritable_",
-  "enumerable_",
-  "hasEnumerable_",
-  "configurable_",
-  "hasConfigurable_",
-  "get_",
-  "hasGetter_",
-  "set_",
-  "hasSetter_"
-], [
-  "toString", function PropertyDescriptor_ToString() {
-    return "[object PropertyDescriptor]";
-  },
-  "setValue", function PropertyDescriptor_SetValue(value) {
-    this.value_ = value;
-    this.hasValue_ = true;
-  },
-  "getValue", function PropertyDescriptor_GetValue() {
-    return this.value_;
-  },
-  "hasValue", function PropertyDescriptor_HasValue() {
-    return this.hasValue_;
-  },
-  "setEnumerable", function PropertyDescriptor_SetEnumerable(enumerable) {
-    this.enumerable_ = enumerable;
-      this.hasEnumerable_ = true;
-  },
-  "isEnumerable", function PropertyDescriptor_IsEnumerable() {
-    return this.enumerable_;
-  },
-  "hasEnumerable", function PropertyDescriptor_HasEnumerable() {
-    return this.hasEnumerable_;
-  },
-  "setWritable", function PropertyDescriptor_SetWritable(writable) {
-    this.writable_ = writable;
-    this.hasWritable_ = true;
-  },
-  "isWritable", function PropertyDescriptor_IsWritable() {
-    return this.writable_;
-  },
-  "hasWritable", function PropertyDescriptor_HasWritable() {
-    return this.hasWritable_;
-  },
-  "setConfigurable",
-  function PropertyDescriptor_SetConfigurable(configurable) {
-    this.configurable_ = configurable;
-    this.hasConfigurable_ = true;
-  },
-  "hasConfigurable", function PropertyDescriptor_HasConfigurable() {
-    return this.hasConfigurable_;
-  },
-  "isConfigurable", function PropertyDescriptor_IsConfigurable() {
-    return this.configurable_;
-  },
-  "setGet", function PropertyDescriptor_SetGetter(get) {
-    this.get_ = get;
-    this.hasGetter_ = true;
-  },
-  "getGet", function PropertyDescriptor_GetGetter() {
-    return this.get_;
-  },
-  "hasGetter", function PropertyDescriptor_HasGetter() {
-    return this.hasGetter_;
-  },
-  "setSet", function PropertyDescriptor_SetSetter(set) {
-    this.set_ = set;
-    this.hasSetter_ = true;
-  },
-  "getSet", function PropertyDescriptor_GetSetter() {
-    return this.set_;
-  },
-  "hasSetter", function PropertyDescriptor_HasSetter() {
-    return this.hasSetter_;
-  }
-]);
-
-
-// Converts an array returned from Runtime_GetOwnProperty to an actual
-// property descriptor. For a description of the array layout please
-// see the runtime.cc file.
-function ConvertDescriptorArrayToDescriptor(desc_array) {
-  if (IS_UNDEFINED(desc_array)) {
-    return UNDEFINED;
-  }
-
-  var desc = new PropertyDescriptor();
-  // This is an accessor.
-  if (desc_array[IS_ACCESSOR_INDEX]) {
-    desc.setGet(desc_array[GETTER_INDEX]);
-    desc.setSet(desc_array[SETTER_INDEX]);
-  } else {
-    desc.setValue(desc_array[VALUE_INDEX]);
-    desc.setWritable(desc_array[WRITABLE_INDEX]);
-  }
-  desc.setEnumerable(desc_array[ENUMERABLE_INDEX]);
-  desc.setConfigurable(desc_array[CONFIGURABLE_INDEX]);
-
-  return desc;
-}
-
-
-// For Harmony proxies.
-function GetTrap(handler, name, defaultTrap) {
-  var trap = handler[name];
-  if (IS_UNDEFINED(trap)) {
-    if (IS_UNDEFINED(defaultTrap)) {
-      throw MakeTypeError(kIllegalInvocation);
-    }
-    trap = defaultTrap;
-  } else if (!IS_CALLABLE(trap)) {
-    throw MakeTypeError(kIllegalInvocation);
-  }
-  return trap;
-}
-
-
-function CallTrap1(handler, name, defaultTrap, x) {
-  return %_Call(GetTrap(handler, name, defaultTrap), handler, x);
-}
-
-
-function CallTrap2(handler, name, defaultTrap, x, y) {
-  return %_Call(GetTrap(handler, name, defaultTrap), handler, x, y);
-}
-
-
-// ES5 section 8.12.1.
-// TODO(jkummerow): Deprecated. Migrate all callers to
-// ObjectGetOwnPropertyDescriptor and delete this.
-function GetOwnPropertyJS(obj, v) {
-  var p = TO_NAME(v);
-  if (IS_PROXY(obj)) {
-    // TODO(rossberg): adjust once there is a story for symbols vs proxies.
-    if (IS_SYMBOL(v)) return UNDEFINED;
-
-    var handler = %JSProxyGetHandler(obj);
-    var descriptor = CallTrap1(
-                         handler, "getOwnPropertyDescriptor", UNDEFINED, p);
-    if (IS_UNDEFINED(descriptor)) return descriptor;
-    var desc = ToCompletePropertyDescriptor(descriptor);
-    if (!desc.isConfigurable()) {
-      throw MakeTypeError(kIllegalInvocation);
-    }
-    return desc;
-  }
-
-  // GetOwnProperty returns an array indexed by the constants
-  // defined in macros.py.
-  // If p is not a property on obj undefined is returned.
-  var props = %GetOwnProperty_Legacy(TO_OBJECT(obj), p);
-
-  return ConvertDescriptorArrayToDescriptor(props);
-}
-
-
 // ES6 7.3.9
 function GetMethod(obj, p) {
   var func = obj[p];
@@ -498,252 +150,6 @@
   throw MakeTypeError(kCalledNonCallable, typeof func);
 }
 
-
-// Harmony proxies.
-function DefineProxyProperty(obj, p, attributes, should_throw) {
-  // TODO(rossberg): adjust once there is a story for symbols vs proxies.
-  if (IS_SYMBOL(p)) return false;
-
-  var handler = %JSProxyGetHandler(obj);
-  var result = CallTrap2(handler, "defineProperty", UNDEFINED, p, attributes);
-  if (!result) {
-    if (should_throw) {
-      throw MakeTypeError(kIllegalInvocation);
-    } else {
-      return false;
-    }
-  }
-  return true;
-}
-
-
-// ES6 9.1.6 [[DefineOwnProperty]](P, Desc)
-function DefineObjectProperty(obj, p, desc, should_throw) {
-  var current_array = %GetOwnProperty_Legacy(obj, TO_NAME(p));
-  var current = ConvertDescriptorArrayToDescriptor(current_array);
-  var extensible = %object_is_extensible(obj);
-
-  if (IS_UNDEFINED(current) && !extensible) {
-    if (should_throw) {
-      throw MakeTypeError(kDefineDisallowed, p);
-    } else {
-      return false;
-    }
-  }
-
-  if (!IS_UNDEFINED(current)) {
-    if ((IsGenericDescriptor(desc) ||
-         IsDataDescriptor(desc) == IsDataDescriptor(current)) &&
-        (!desc.hasEnumerable() ||
-         %SameValue(desc.isEnumerable(), current.isEnumerable())) &&
-        (!desc.hasConfigurable() ||
-         %SameValue(desc.isConfigurable(), current.isConfigurable())) &&
-        (!desc.hasWritable() ||
-         %SameValue(desc.isWritable(), current.isWritable())) &&
-        (!desc.hasValue() ||
-         %SameValue(desc.getValue(), current.getValue())) &&
-        (!desc.hasGetter() ||
-         %SameValue(desc.getGet(), current.getGet())) &&
-        (!desc.hasSetter() ||
-         %SameValue(desc.getSet(), current.getSet()))) {
-      return true;
-    }
-    if (!current.isConfigurable()) {
-      // Step 7
-      if (desc.isConfigurable() ||
-          (desc.hasEnumerable() &&
-           desc.isEnumerable() != current.isEnumerable())) {
-        if (should_throw) {
-          throw MakeTypeError(kRedefineDisallowed, p);
-        } else {
-          return false;
-        }
-      }
-      // Step 8
-      if (!IsGenericDescriptor(desc)) {
-        // Step 9a
-        if (IsDataDescriptor(current) != IsDataDescriptor(desc)) {
-          if (should_throw) {
-            throw MakeTypeError(kRedefineDisallowed, p);
-          } else {
-            return false;
-          }
-        }
-        // Step 10a
-        if (IsDataDescriptor(current) && IsDataDescriptor(desc)) {
-          var currentIsWritable = current.isWritable();
-          if (currentIsWritable != desc.isWritable()) {
-            if (!currentIsWritable) {
-              if (should_throw) {
-                throw MakeTypeError(kRedefineDisallowed, p);
-              } else {
-                return false;
-              }
-            }
-          }
-          if (!currentIsWritable && desc.hasValue() &&
-              !%SameValue(desc.getValue(), current.getValue())) {
-            if (should_throw) {
-              throw MakeTypeError(kRedefineDisallowed, p);
-            } else {
-              return false;
-            }
-          }
-        }
-        // Step 11
-        if (IsAccessorDescriptor(desc) && IsAccessorDescriptor(current)) {
-          if (desc.hasSetter() &&
-              !%SameValue(desc.getSet(), current.getSet())) {
-            if (should_throw) {
-              throw MakeTypeError(kRedefineDisallowed, p);
-            } else {
-              return false;
-            }
-          }
-          if (desc.hasGetter() && !%SameValue(desc.getGet(),current.getGet())) {
-            if (should_throw) {
-              throw MakeTypeError(kRedefineDisallowed, p);
-            } else {
-              return false;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  // Send flags - enumerable and configurable are common - writable is
-  // only send to the data descriptor.
-  // Take special care if enumerable and configurable is not defined on
-  // desc (we need to preserve the existing values from current).
-  var flag = NONE;
-  if (desc.hasEnumerable()) {
-    flag |= desc.isEnumerable() ? 0 : DONT_ENUM;
-  } else if (!IS_UNDEFINED(current)) {
-    flag |= current.isEnumerable() ? 0 : DONT_ENUM;
-  } else {
-    flag |= DONT_ENUM;
-  }
-
-  if (desc.hasConfigurable()) {
-    flag |= desc.isConfigurable() ? 0 : DONT_DELETE;
-  } else if (!IS_UNDEFINED(current)) {
-    flag |= current.isConfigurable() ? 0 : DONT_DELETE;
-  } else
-    flag |= DONT_DELETE;
-
-  if (IsDataDescriptor(desc) ||
-      (IsGenericDescriptor(desc) &&
-       (IS_UNDEFINED(current) || IsDataDescriptor(current)))) {
-    // There are 3 cases that lead here:
-    // Step 4a - defining a new data property.
-    // Steps 9b & 12 - replacing an existing accessor property with a data
-    //                 property.
-    // Step 12 - updating an existing data property with a data or generic
-    //           descriptor.
-
-    if (desc.hasWritable()) {
-      flag |= desc.isWritable() ? 0 : READ_ONLY;
-    } else if (!IS_UNDEFINED(current)) {
-      flag |= current.isWritable() ? 0 : READ_ONLY;
-    } else {
-      flag |= READ_ONLY;
-    }
-
-    var value = UNDEFINED;  // Default value is undefined.
-    if (desc.hasValue()) {
-      value = desc.getValue();
-    } else if (!IS_UNDEFINED(current) && IsDataDescriptor(current)) {
-      value = current.getValue();
-    }
-
-    %DefineDataPropertyUnchecked(obj, p, value, flag);
-  } else {
-    // There are 3 cases that lead here:
-    // Step 4b - defining a new accessor property.
-    // Steps 9c & 12 - replacing an existing data property with an accessor
-    //                 property.
-    // Step 12 - updating an existing accessor property with an accessor
-    //           descriptor.
-    var getter = null;
-    if (desc.hasGetter()) {
-      getter = desc.getGet();
-    } else if (IsAccessorDescriptor(current) && current.hasGetter()) {
-      getter = current.getGet();
-    }
-    var setter = null;
-    if (desc.hasSetter()) {
-      setter = desc.getSet();
-    } else if (IsAccessorDescriptor(current) && current.hasSetter()) {
-      setter = current.getSet();
-    }
-    %DefineAccessorPropertyUnchecked(obj, p, getter, setter, flag);
-  }
-  return true;
-}
-
-
-// ES5 section 15.4.5.1.
-function DefineArrayProperty(obj, p, desc, should_throw) {
-  // Step 3 - Special handling for array index.
-  if (!IS_SYMBOL(p)) {
-    var index = TO_UINT32(p);
-    var emit_splice = false;
-    if (TO_STRING(index) == p && index != 4294967295) {
-      var length = obj.length;
-      if (index >= length && %IsObserved(obj)) {
-        emit_splice = true;
-        ObserveBeginPerformSplice(obj);
-      }
-
-      var length_desc = GetOwnPropertyJS(obj, "length");
-      if ((index >= length && !length_desc.isWritable()) ||
-          !DefineObjectProperty(obj, p, desc, true)) {
-        if (emit_splice)
-          ObserveEndPerformSplice(obj);
-        if (should_throw) {
-          throw MakeTypeError(kDefineDisallowed, p);
-        } else {
-          return false;
-        }
-      }
-      if (index >= length) {
-        obj.length = index + 1;
-      }
-      if (emit_splice) {
-        ObserveEndPerformSplice(obj);
-        ObserveEnqueueSpliceRecord(obj, length, [], index + 1 - length);
-      }
-      return true;
-    }
-  }
-
-  // Step 5 - Fallback to default implementation.
-  return DefineObjectProperty(obj, p, desc, should_throw);
-}
-
-
-// ES5 section 8.12.9, ES5 section 15.4.5.1 and Harmony proxies.
-function DefineOwnProperty(obj, p, desc, should_throw) {
-  if (IS_PROXY(obj)) {
-    // TODO(rossberg): adjust once there is a story for symbols vs proxies.
-    if (IS_SYMBOL(p)) return false;
-
-    var attributes = FromGenericPropertyDescriptor(desc);
-    return DefineProxyProperty(obj, p, attributes, should_throw);
-  } else if (IS_ARRAY(obj)) {
-    return DefineArrayProperty(obj, p, desc, should_throw);
-  } else {
-    return DefineObjectProperty(obj, p, desc, should_throw);
-  }
-}
-
-
-// ES6 section 19.1.2.9
-function ObjectGetPrototypeOf(obj) {
-  return %_GetPrototype(TO_OBJECT(obj));
-}
-
 // ES6 section 19.1.2.18.
 function ObjectSetPrototypeOf(obj, proto) {
   CHECK_OBJECT_COERCIBLE(obj, "Object.setPrototypeOf");
@@ -759,50 +165,9 @@
   return obj;
 }
 
-
-// ES5 section 15.2.3.6.
-function ObjectDefineProperty(obj, p, attributes) {
-  // The new pure-C++ implementation doesn't support O.o.
-  // TODO(jkummerow): Implement missing features and remove fallback path.
-  if (%IsObserved(obj)) {
-    if (!IS_RECEIVER(obj)) {
-      throw MakeTypeError(kCalledOnNonObject, "Object.defineProperty");
-    }
-    var name = TO_NAME(p);
-    var desc = ToPropertyDescriptor(attributes);
-    DefineOwnProperty(obj, name, desc, true);
-    return obj;
-  }
-  return %ObjectDefineProperty(obj, p, attributes);
-}
-
-
-// ES5 section 15.2.3.7.
-function ObjectDefineProperties(obj, properties) {
-  // The new pure-C++ implementation doesn't support O.o.
-  // TODO(jkummerow): Implement missing features and remove fallback path.
-  if (%IsObserved(obj)) {
-    if (!IS_RECEIVER(obj)) {
-      throw MakeTypeError(kCalledOnNonObject, "Object.defineProperties");
-    }
-    var props = TO_OBJECT(properties);
-    var names = %GetOwnPropertyKeys(props, PROPERTY_FILTER_ONLY_ENUMERABLE);
-    var descriptors = new InternalArray();
-    for (var i = 0; i < names.length; i++) {
-      descriptors.push(ToPropertyDescriptor(props[names[i]]));
-    }
-    for (var i = 0; i < names.length; i++) {
-      DefineOwnProperty(obj, names[i], descriptors[i], true);
-    }
-    return obj;
-  }
-  return %ObjectDefineProperties(obj, properties);
-}
-
-
 // ES6 B.2.2.1.1
 function ObjectGetProto() {
-  return %_GetPrototype(TO_OBJECT(this));
+  return %object_get_prototype_of(this);
 }
 
 
@@ -842,26 +207,19 @@
   "valueOf", ObjectValueOf,
   "isPrototypeOf", ObjectIsPrototypeOf,
   "propertyIsEnumerable", ObjectPropertyIsEnumerable,
-  "__defineGetter__", ObjectDefineGetter,
-  "__lookupGetter__", ObjectLookupGetter,
-  "__defineSetter__", ObjectDefineSetter,
-  "__lookupSetter__", ObjectLookupSetter
+  // __defineGetter__ is added in bootstrapper.cc.
+  // __lookupGetter__ is added in bootstrapper.cc.
+  // __defineSetter__ is added in bootstrapper.cc.
+  // __lookupSetter__ is added in bootstrapper.cc.
 ]);
-utils.InstallGetterSetter(GlobalObject.prototype, "__proto__", ObjectGetProto,
-                    ObjectSetProto);
+utils.InstallGetterSetter(
+    GlobalObject.prototype, "__proto__", ObjectGetProto, ObjectSetProto);
 
 // Set up non-enumerable functions in the Object object.
 utils.InstallFunctions(GlobalObject, DONT_ENUM, [
-  // assign is added in bootstrapper.cc.
-  // keys is added in bootstrapper.cc.
-  "defineProperty", ObjectDefineProperty,
-  "defineProperties", ObjectDefineProperties,
-  "getPrototypeOf", ObjectGetPrototypeOf,
   "setPrototypeOf", ObjectSetPrototypeOf,
   // getOwnPropertySymbols is added in symbol.js.
-  // is is added in bootstrapper.cc.
-  // deliverChangeRecords, getNotifier, observe and unobserve are added
-  // in object-observe.js.
+  // Others are added in bootstrapper.cc.
 ]);
 
 
@@ -1096,8 +454,6 @@
   to.IsNaN = GlobalIsNaN;
   to.NumberIsNaN = NumberIsNaN;
   to.NumberIsInteger = NumberIsInteger;
-  to.ObjectDefineProperties = ObjectDefineProperties;
-  to.ObjectDefineProperty = ObjectDefineProperty;
   to.ObjectHasOwnProperty = GlobalObject.prototype.hasOwnProperty;
 });
 
diff --git a/src/keys.cc b/src/keys.cc
index f8b606c..17270eb 100644
--- a/src/keys.cc
+++ b/src/keys.cc
@@ -4,8 +4,10 @@
 
 #include "src/keys.h"
 
+#include "src/api-arguments.h"
 #include "src/elements.h"
 #include "src/factory.h"
+#include "src/identity-map.h"
 #include "src/isolate-inl.h"
 #include "src/objects-inl.h"
 #include "src/property-descriptor.h"
@@ -20,6 +22,33 @@
   }
 }
 
+namespace {
+
+static bool ContainsOnlyValidKeys(Handle<FixedArray> array) {
+  int len = array->length();
+  for (int i = 0; i < len; i++) {
+    Object* e = array->get(i);
+    if (!(e->IsName() || e->IsNumber())) return false;
+  }
+  return true;
+}
+
+}  // namespace
+
+MaybeHandle<FixedArray> KeyAccumulator::GetKeys(
+    Handle<JSReceiver> object, KeyCollectionType type, PropertyFilter filter,
+    GetKeysConversion keys_conversion, bool filter_proxy_keys) {
+  USE(ContainsOnlyValidKeys);
+  Isolate* isolate = object->GetIsolate();
+  KeyAccumulator accumulator(isolate, type, filter);
+  accumulator.set_filter_proxy_keys(filter_proxy_keys);
+  MAYBE_RETURN(accumulator.CollectKeys(object, object),
+               MaybeHandle<FixedArray>());
+  Handle<FixedArray> keys = accumulator.GetKeys(keys_conversion);
+  DCHECK(ContainsOnlyValidKeys(keys));
+  return keys;
+}
+
 Handle<FixedArray> KeyAccumulator::GetKeys(GetKeysConversion convert) {
   if (length_ == 0) {
     return isolate_->factory()->empty_fixed_array();
@@ -111,7 +140,7 @@
     return AddSymbolKey(key);
   }
   if (filter_ & SKIP_STRINGS) return false;
-  // Make sure we do not add keys to a proxy-level (see AddKeysFromProxy).
+  // Make sure we do not add keys to a proxy-level (see AddKeysFromJSProxy).
   DCHECK_LE(0, level_string_length_);
   // In some cases (e.g. proxies) we might get in String-converted ints which
   // should be added to the elements list instead of the properties. For
@@ -143,7 +172,7 @@
 bool KeyAccumulator::AddKey(uint32_t key) { return AddIntegerKey(key); }
 
 bool KeyAccumulator::AddIntegerKey(uint32_t key) {
-  // Make sure we do not add keys to a proxy-level (see AddKeysFromProxy).
+  // Make sure we do not add keys to a proxy-level (see AddKeysFromJSProxy).
   // We mark proxy-levels with a negative length
   DCHECK_LE(0, level_string_length_);
   // Binary search over all but the last level. The last one might not be
@@ -209,17 +238,6 @@
   accessor->AddElementsToKeyAccumulator(array_like, this, convert);
 }
 
-void KeyAccumulator::AddKeysFromProxy(Handle<JSObject> array_like) {
-  // Proxies define a complete list of keys with no distinction of
-  // elements and properties, which breaks the normal assumption for the
-  // KeyAccumulator.
-  AddKeys(array_like, PROXY_MAGIC);
-  // Invert the current length to indicate a present proxy, so we can ignore
-  // element keys for this level. Otherwise we would not fully respect the order
-  // given by the proxy.
-  level_string_length_ = -level_string_length_;
-}
-
 MaybeHandle<FixedArray> FilterProxyKeys(Isolate* isolate, Handle<JSProxy> owner,
                                         Handle<FixedArray> keys,
                                         PropertyFilter filter) {
@@ -250,8 +268,8 @@
 }
 
 // Returns "nothing" in case of exception, "true" on success.
-Maybe<bool> KeyAccumulator::AddKeysFromProxy(Handle<JSProxy> proxy,
-                                             Handle<FixedArray> keys) {
+Maybe<bool> KeyAccumulator::AddKeysFromJSProxy(Handle<JSProxy> proxy,
+                                               Handle<FixedArray> keys) {
   if (filter_proxy_keys_) {
     ASSIGN_RETURN_ON_EXCEPTION_VALUE(
         isolate_, keys, FilterProxyKeys(isolate_, proxy, keys, filter_),
@@ -312,6 +330,43 @@
   level_symbol_length_ = 0;
 }
 
+Maybe<bool> KeyAccumulator::CollectKeys(Handle<JSReceiver> receiver,
+                                        Handle<JSReceiver> object) {
+  // Proxies have no hidden prototype and we should not trigger the
+  // [[GetPrototypeOf]] trap on the last iteration when using
+  // AdvanceFollowingProxies.
+  if (type_ == OWN_ONLY && object->IsJSProxy()) {
+    MAYBE_RETURN(CollectOwnJSProxyKeys(receiver, Handle<JSProxy>::cast(object)),
+                 Nothing<bool>());
+    return Just(true);
+  }
+
+  PrototypeIterator::WhereToEnd end = type_ == OWN_ONLY
+                                          ? PrototypeIterator::END_AT_NON_HIDDEN
+                                          : PrototypeIterator::END_AT_NULL;
+  for (PrototypeIterator iter(isolate_, object,
+                              PrototypeIterator::START_AT_RECEIVER, end);
+       !iter.IsAtEnd();) {
+    Handle<JSReceiver> current =
+        PrototypeIterator::GetCurrent<JSReceiver>(iter);
+    Maybe<bool> result = Just(false);  // Dummy initialization.
+    if (current->IsJSProxy()) {
+      result = CollectOwnJSProxyKeys(receiver, Handle<JSProxy>::cast(current));
+    } else {
+      DCHECK(current->IsJSObject());
+      result = CollectOwnKeys(receiver, Handle<JSObject>::cast(current));
+    }
+    MAYBE_RETURN(result, Nothing<bool>());
+    if (!result.FromJust()) break;  // |false| means "stop iterating".
+    // Iterate through proxies but ignore access checks for the ALL_CAN_READ
+    // case on API objects for OWN_ONLY keys handled in CollectOwnKeys.
+    if (!iter.AdvanceFollowingProxiesIgnoringAccessChecks()) {
+      return Nothing<bool>();
+    }
+  }
+  return Just(true);
+}
+
 namespace {
 
 void TrySettingEmptyEnumCache(JSReceiver* object) {
@@ -363,6 +418,89 @@
 }
 
 namespace {
+static Handle<FixedArray> ReduceFixedArrayTo(Isolate* isolate,
+                                             Handle<FixedArray> array,
+                                             int length) {
+  DCHECK_LE(length, array->length());
+  if (array->length() == length) return array;
+  return isolate->factory()->CopyFixedArrayUpTo(array, length);
+}
+
+Handle<FixedArray> GetFastEnumPropertyKeys(Isolate* isolate,
+                                           Handle<JSObject> object) {
+  Handle<Map> map(object->map());
+  bool cache_enum_length = map->OnlyHasSimpleProperties();
+
+  Handle<DescriptorArray> descs =
+      Handle<DescriptorArray>(map->instance_descriptors(), isolate);
+  int own_property_count = map->EnumLength();
+  // If the enum length of the given map is set to kInvalidEnumCache, this
+  // means that the map itself has never used the present enum cache. The
+  // first step to using the cache is to set the enum length of the map by
+  // counting the number of own descriptors that are ENUMERABLE_STRINGS.
+  if (own_property_count == kInvalidEnumCacheSentinel) {
+    own_property_count =
+        map->NumberOfDescribedProperties(OWN_DESCRIPTORS, ENUMERABLE_STRINGS);
+  } else {
+    DCHECK(
+        own_property_count ==
+        map->NumberOfDescribedProperties(OWN_DESCRIPTORS, ENUMERABLE_STRINGS));
+  }
+
+  if (descs->HasEnumCache()) {
+    Handle<FixedArray> keys(descs->GetEnumCache(), isolate);
+    // In case the number of properties required in the enum are actually
+    // present, we can reuse the enum cache. Otherwise, this means that the
+    // enum cache was generated for a previous (smaller) version of the
+    // Descriptor Array. In that case we regenerate the enum cache.
+    if (own_property_count <= keys->length()) {
+      isolate->counters()->enum_cache_hits()->Increment();
+      if (cache_enum_length) map->SetEnumLength(own_property_count);
+      return ReduceFixedArrayTo(isolate, keys, own_property_count);
+    }
+  }
+
+  if (descs->IsEmpty()) {
+    isolate->counters()->enum_cache_hits()->Increment();
+    if (cache_enum_length) map->SetEnumLength(0);
+    return isolate->factory()->empty_fixed_array();
+  }
+
+  isolate->counters()->enum_cache_misses()->Increment();
+
+  Handle<FixedArray> storage =
+      isolate->factory()->NewFixedArray(own_property_count);
+  Handle<FixedArray> indices =
+      isolate->factory()->NewFixedArray(own_property_count);
+
+  int size = map->NumberOfOwnDescriptors();
+  int index = 0;
+
+  for (int i = 0; i < size; i++) {
+    PropertyDetails details = descs->GetDetails(i);
+    if (details.IsDontEnum()) continue;
+    Object* key = descs->GetKey(i);
+    if (key->IsSymbol()) continue;
+    storage->set(index, key);
+    if (!indices.is_null()) {
+      if (details.type() != DATA) {
+        indices = Handle<FixedArray>();
+      } else {
+        FieldIndex field_index = FieldIndex::ForDescriptor(*map, i);
+        int load_by_field_index = field_index.GetLoadByFieldIndex();
+        indices->set(index, Smi::FromInt(load_by_field_index));
+      }
+    }
+    index++;
+  }
+  DCHECK(index == storage->length());
+
+  DescriptorArray::SetEnumCache(descs, isolate, storage, indices);
+  if (cache_enum_length) {
+    map->SetEnumLength(own_property_count);
+  }
+  return storage;
+}
 
 template <bool fast_properties>
 Handle<FixedArray> GetOwnKeysWithElements(Isolate* isolate,
@@ -371,10 +509,10 @@
   Handle<FixedArray> keys;
   ElementsAccessor* accessor = object->GetElementsAccessor();
   if (fast_properties) {
-    keys = JSObject::GetFastEnumPropertyKeys(isolate, object);
+    keys = GetFastEnumPropertyKeys(isolate, object);
   } else {
     // TODO(cbruni): preallocate big enough array to also hold elements.
-    keys = JSObject::GetEnumPropertyKeys(object);
+    keys = KeyAccumulator::GetEnumPropertyKeys(isolate, object);
   }
   Handle<FixedArray> result =
       accessor->PrependElementIndices(object, keys, convert, ONLY_ENUMERABLE);
@@ -402,7 +540,7 @@
   }
   // We have no elements but possibly enumerable property keys, hence we can
   // directly initialize the enum cache.
-  return JSObject::GetFastEnumPropertyKeys(isolate, object);
+  return GetFastEnumPropertyKeys(isolate, object);
 }
 
 bool OnlyHasSimpleProperties(Map* map) {
@@ -457,9 +595,314 @@
 
 MaybeHandle<FixedArray> FastKeyAccumulator::GetKeysSlow(
     GetKeysConversion convert) {
-  return JSReceiver::GetKeys(receiver_, type_, ENUMERABLE_STRINGS, KEEP_NUMBERS,
+  return JSReceiver::GetKeys(receiver_, type_, filter_, KEEP_NUMBERS,
                              filter_proxy_keys_);
 }
 
+enum IndexedOrNamed { kIndexed, kNamed };
+
+// Returns |true| on success, |nothing| on exception.
+template <class Callback, IndexedOrNamed type>
+static Maybe<bool> GetKeysFromInterceptor(Handle<JSReceiver> receiver,
+                                          Handle<JSObject> object,
+                                          KeyAccumulator* accumulator) {
+  Isolate* isolate = accumulator->isolate();
+  if (type == kIndexed) {
+    if (!object->HasIndexedInterceptor()) return Just(true);
+  } else {
+    if (!object->HasNamedInterceptor()) return Just(true);
+  }
+  Handle<InterceptorInfo> interceptor(type == kIndexed
+                                          ? object->GetIndexedInterceptor()
+                                          : object->GetNamedInterceptor(),
+                                      isolate);
+  if ((accumulator->filter() & ONLY_ALL_CAN_READ) &&
+      !interceptor->all_can_read()) {
+    return Just(true);
+  }
+  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
+                                 *object, Object::DONT_THROW);
+  Handle<JSObject> result;
+  if (!interceptor->enumerator()->IsUndefined()) {
+    Callback enum_fun = v8::ToCData<Callback>(interceptor->enumerator());
+    const char* log_tag = type == kIndexed ? "interceptor-indexed-enum"
+                                           : "interceptor-named-enum";
+    LOG(isolate, ApiObjectAccess(log_tag, *object));
+    result = args.Call(enum_fun);
+  }
+  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<bool>());
+  if (result.is_null()) return Just(true);
+  DCHECK(result->IsJSArray() || result->HasSloppyArgumentsElements());
+  // The accumulator takes care of string/symbol filtering.
+  if (type == kIndexed) {
+    accumulator->AddElementKeysFromInterceptor(result);
+  } else {
+    accumulator->AddKeys(result, DO_NOT_CONVERT);
+  }
+  return Just(true);
+}
+
+void KeyAccumulator::CollectOwnElementIndices(Handle<JSObject> object) {
+  if (filter_ & SKIP_STRINGS) return;
+  ElementsAccessor* accessor = object->GetElementsAccessor();
+  accessor->CollectElementIndices(object, this);
+}
+
+void KeyAccumulator::CollectOwnPropertyNames(Handle<JSObject> object) {
+  if (object->HasFastProperties()) {
+    int real_size = object->map()->NumberOfOwnDescriptors();
+    Handle<DescriptorArray> descs(object->map()->instance_descriptors(),
+                                  isolate_);
+    for (int i = 0; i < real_size; i++) {
+      PropertyDetails details = descs->GetDetails(i);
+      if ((details.attributes() & filter_) != 0) continue;
+      if (filter_ & ONLY_ALL_CAN_READ) {
+        if (details.kind() != kAccessor) continue;
+        Object* accessors = descs->GetValue(i);
+        if (!accessors->IsAccessorInfo()) continue;
+        if (!AccessorInfo::cast(accessors)->all_can_read()) continue;
+      }
+      Name* key = descs->GetKey(i);
+      if (key->FilterKey(filter_)) continue;
+      AddKey(key, DO_NOT_CONVERT);
+    }
+  } else if (object->IsJSGlobalObject()) {
+    GlobalDictionary::CollectKeysTo(
+        handle(object->global_dictionary(), isolate_), this, filter_);
+  } else {
+    NameDictionary::CollectKeysTo(
+        handle(object->property_dictionary(), isolate_), this, filter_);
+  }
+}
+
+// Returns |true| on success, |false| if prototype walking should be stopped,
+// |nothing| if an exception was thrown.
+Maybe<bool> KeyAccumulator::CollectOwnKeys(Handle<JSReceiver> receiver,
+                                           Handle<JSObject> object) {
+  NextPrototype();
+  // Check access rights if required.
+  if (object->IsAccessCheckNeeded() &&
+      !isolate_->MayAccess(handle(isolate_->context()), object)) {
+    // The cross-origin spec says that [[Enumerate]] shall return an empty
+    // iterator when it doesn't have access...
+    if (type_ == INCLUDE_PROTOS) {
+      return Just(false);
+    }
+    // ...whereas [[OwnPropertyKeys]] shall return whitelisted properties.
+    DCHECK_EQ(OWN_ONLY, type_);
+    filter_ = static_cast<PropertyFilter>(filter_ | ONLY_ALL_CAN_READ);
+  }
+
+  CollectOwnElementIndices(object);
+
+  // Add the element keys from the interceptor.
+  Maybe<bool> success =
+      GetKeysFromInterceptor<v8::IndexedPropertyEnumeratorCallback, kIndexed>(
+          receiver, object, this);
+  MAYBE_RETURN(success, Nothing<bool>());
+
+  if (filter_ == ENUMERABLE_STRINGS) {
+    Handle<FixedArray> enum_keys =
+        KeyAccumulator::GetEnumPropertyKeys(isolate_, object);
+    AddKeys(enum_keys, DO_NOT_CONVERT);
+  } else {
+    CollectOwnPropertyNames(object);
+  }
+
+  // Add the property keys from the interceptor.
+  success = GetKeysFromInterceptor<v8::GenericNamedPropertyEnumeratorCallback,
+                                   kNamed>(receiver, object, this);
+  MAYBE_RETURN(success, Nothing<bool>());
+  return Just(true);
+}
+
+// static
+Handle<FixedArray> KeyAccumulator::GetEnumPropertyKeys(
+    Isolate* isolate, Handle<JSObject> object) {
+  if (object->HasFastProperties()) {
+    return GetFastEnumPropertyKeys(isolate, object);
+  } else if (object->IsJSGlobalObject()) {
+    Handle<GlobalDictionary> dictionary(object->global_dictionary(), isolate);
+    int length = dictionary->NumberOfEnumElements();
+    if (length == 0) {
+      return isolate->factory()->empty_fixed_array();
+    }
+    Handle<FixedArray> storage = isolate->factory()->NewFixedArray(length);
+    dictionary->CopyEnumKeysTo(*storage);
+    return storage;
+  } else {
+    Handle<NameDictionary> dictionary(object->property_dictionary(), isolate);
+    int length = dictionary->NumberOfEnumElements();
+    if (length == 0) {
+      return isolate->factory()->empty_fixed_array();
+    }
+    Handle<FixedArray> storage = isolate->factory()->NewFixedArray(length);
+    dictionary->CopyEnumKeysTo(*storage);
+    return storage;
+  }
+}
+
+// ES6 9.5.12
+// Returns |true| on success, |nothing| in case of exception.
+Maybe<bool> KeyAccumulator::CollectOwnJSProxyKeys(Handle<JSReceiver> receiver,
+                                                  Handle<JSProxy> proxy) {
+  STACK_CHECK(isolate_, Nothing<bool>());
+  // 1. Let handler be the value of the [[ProxyHandler]] internal slot of O.
+  Handle<Object> handler(proxy->handler(), isolate_);
+  // 2. If handler is null, throw a TypeError exception.
+  // 3. Assert: Type(handler) is Object.
+  if (proxy->IsRevoked()) {
+    isolate_->Throw(*isolate_->factory()->NewTypeError(
+        MessageTemplate::kProxyRevoked, isolate_->factory()->ownKeys_string()));
+    return Nothing<bool>();
+  }
+  // 4. Let target be the value of the [[ProxyTarget]] internal slot of O.
+  Handle<JSReceiver> target(proxy->target(), isolate_);
+  // 5. Let trap be ? GetMethod(handler, "ownKeys").
+  Handle<Object> trap;
+  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+      isolate_, trap, Object::GetMethod(Handle<JSReceiver>::cast(handler),
+                                        isolate_->factory()->ownKeys_string()),
+      Nothing<bool>());
+  // 6. If trap is undefined, then
+  if (trap->IsUndefined()) {
+    // 6a. Return target.[[OwnPropertyKeys]]().
+    return CollectOwnJSProxyTargetKeys(proxy, target);
+  }
+  // 7. Let trapResultArray be Call(trap, handler, «target»).
+  Handle<Object> trap_result_array;
+  Handle<Object> args[] = {target};
+  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+      isolate_, trap_result_array,
+      Execution::Call(isolate_, trap, handler, arraysize(args), args),
+      Nothing<bool>());
+  // 8. Let trapResult be ? CreateListFromArrayLike(trapResultArray,
+  //    «String, Symbol»).
+  Handle<FixedArray> trap_result;
+  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+      isolate_, trap_result,
+      Object::CreateListFromArrayLike(isolate_, trap_result_array,
+                                      ElementTypes::kStringAndSymbol),
+      Nothing<bool>());
+  // 9. Let extensibleTarget be ? IsExtensible(target).
+  Maybe<bool> maybe_extensible = JSReceiver::IsExtensible(target);
+  MAYBE_RETURN(maybe_extensible, Nothing<bool>());
+  bool extensible_target = maybe_extensible.FromJust();
+  // 10. Let targetKeys be ? target.[[OwnPropertyKeys]]().
+  Handle<FixedArray> target_keys;
+  ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate_, target_keys,
+                                   JSReceiver::OwnPropertyKeys(target),
+                                   Nothing<bool>());
+  // 11. (Assert)
+  // 12. Let targetConfigurableKeys be an empty List.
+  // To save memory, we're re-using target_keys and will modify it in-place.
+  Handle<FixedArray> target_configurable_keys = target_keys;
+  // 13. Let targetNonconfigurableKeys be an empty List.
+  Handle<FixedArray> target_nonconfigurable_keys =
+      isolate_->factory()->NewFixedArray(target_keys->length());
+  int nonconfigurable_keys_length = 0;
+  // 14. Repeat, for each element key of targetKeys:
+  for (int i = 0; i < target_keys->length(); ++i) {
+    // 14a. Let desc be ? target.[[GetOwnProperty]](key).
+    PropertyDescriptor desc;
+    Maybe<bool> found = JSReceiver::GetOwnPropertyDescriptor(
+        isolate_, target, handle(target_keys->get(i), isolate_), &desc);
+    MAYBE_RETURN(found, Nothing<bool>());
+    // 14b. If desc is not undefined and desc.[[Configurable]] is false, then
+    if (found.FromJust() && !desc.configurable()) {
+      // 14b i. Append key as an element of targetNonconfigurableKeys.
+      target_nonconfigurable_keys->set(nonconfigurable_keys_length,
+                                       target_keys->get(i));
+      nonconfigurable_keys_length++;
+      // The key was moved, null it out in the original list.
+      target_keys->set(i, Smi::FromInt(0));
+    } else {
+      // 14c. Else,
+      // 14c i. Append key as an element of targetConfigurableKeys.
+      // (No-op, just keep it in |target_keys|.)
+    }
+  }
+  NextPrototype();  // Prepare for accumulating keys.
+  // 15. If extensibleTarget is true and targetNonconfigurableKeys is empty,
+  //     then:
+  if (extensible_target && nonconfigurable_keys_length == 0) {
+    // 15a. Return trapResult.
+    return AddKeysFromJSProxy(proxy, trap_result);
+  }
+  // 16. Let uncheckedResultKeys be a new List which is a copy of trapResult.
+  Zone set_zone(isolate_->allocator());
+  const int kPresent = 1;
+  const int kGone = 0;
+  IdentityMap<int> unchecked_result_keys(isolate_->heap(), &set_zone);
+  int unchecked_result_keys_size = 0;
+  for (int i = 0; i < trap_result->length(); ++i) {
+    DCHECK(trap_result->get(i)->IsUniqueName());
+    Object* key = trap_result->get(i);
+    int* entry = unchecked_result_keys.Get(key);
+    if (*entry != kPresent) {
+      *entry = kPresent;
+      unchecked_result_keys_size++;
+    }
+  }
+  // 17. Repeat, for each key that is an element of targetNonconfigurableKeys:
+  for (int i = 0; i < nonconfigurable_keys_length; ++i) {
+    Object* key = target_nonconfigurable_keys->get(i);
+    // 17a. If key is not an element of uncheckedResultKeys, throw a
+    //      TypeError exception.
+    int* found = unchecked_result_keys.Find(key);
+    if (found == nullptr || *found == kGone) {
+      isolate_->Throw(*isolate_->factory()->NewTypeError(
+          MessageTemplate::kProxyOwnKeysMissing, handle(key, isolate_)));
+      return Nothing<bool>();
+    }
+    // 17b. Remove key from uncheckedResultKeys.
+    *found = kGone;
+    unchecked_result_keys_size--;
+  }
+  // 18. If extensibleTarget is true, return trapResult.
+  if (extensible_target) {
+    return AddKeysFromJSProxy(proxy, trap_result);
+  }
+  // 19. Repeat, for each key that is an element of targetConfigurableKeys:
+  for (int i = 0; i < target_configurable_keys->length(); ++i) {
+    Object* key = target_configurable_keys->get(i);
+    if (key->IsSmi()) continue;  // Zapped entry, was nonconfigurable.
+    // 19a. If key is not an element of uncheckedResultKeys, throw a
+    //      TypeError exception.
+    int* found = unchecked_result_keys.Find(key);
+    if (found == nullptr || *found == kGone) {
+      isolate_->Throw(*isolate_->factory()->NewTypeError(
+          MessageTemplate::kProxyOwnKeysMissing, handle(key, isolate_)));
+      return Nothing<bool>();
+    }
+    // 19b. Remove key from uncheckedResultKeys.
+    *found = kGone;
+    unchecked_result_keys_size--;
+  }
+  // 20. If uncheckedResultKeys is not empty, throw a TypeError exception.
+  if (unchecked_result_keys_size != 0) {
+    DCHECK_GT(unchecked_result_keys_size, 0);
+    isolate_->Throw(*isolate_->factory()->NewTypeError(
+        MessageTemplate::kProxyOwnKeysNonExtensible));
+    return Nothing<bool>();
+  }
+  // 21. Return trapResult.
+  return AddKeysFromJSProxy(proxy, trap_result);
+}
+
+Maybe<bool> KeyAccumulator::CollectOwnJSProxyTargetKeys(
+    Handle<JSProxy> proxy, Handle<JSReceiver> target) {
+  // TODO(cbruni): avoid creating another KeyAccumulator
+  Handle<FixedArray> keys;
+  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+      isolate_, keys, JSReceiver::OwnPropertyKeys(target), Nothing<bool>());
+  NextPrototype();  // Prepare for accumulating keys.
+  bool prev_filter_proxy_keys_ = filter_proxy_keys_;
+  filter_proxy_keys_ = false;
+  Maybe<bool> result = AddKeysFromJSProxy(proxy, keys);
+  filter_proxy_keys_ = prev_filter_proxy_keys_;
+  return result;
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/src/keys.h b/src/keys.h
index 1fd3fc0..c73f109 100644
--- a/src/keys.h
+++ b/src/keys.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef V8_KEY_ACCUMULATOR_H_
-#define V8_KEY_ACCUMULATOR_H_
+#ifndef V8_KEYS_H_
+#define V8_KEYS_H_
 
 #include "src/isolate.h"
 #include "src/objects.h"
@@ -36,25 +36,48 @@
       : isolate_(isolate), type_(type), filter_(filter) {}
   ~KeyAccumulator();
 
+  static MaybeHandle<FixedArray> GetKeys(Handle<JSReceiver> object,
+                                         KeyCollectionType type,
+                                         PropertyFilter filter,
+                                         GetKeysConversion keys_conversion,
+                                         bool filter_proxy_keys);
+  Handle<FixedArray> GetKeys(GetKeysConversion convert = KEEP_NUMBERS);
+  Maybe<bool> CollectKeys(Handle<JSReceiver> receiver,
+                          Handle<JSReceiver> object);
+  void CollectOwnElementIndices(Handle<JSObject> object);
+  void CollectOwnPropertyNames(Handle<JSObject> object);
+
+  static Handle<FixedArray> GetEnumPropertyKeys(Isolate* isolate,
+                                                Handle<JSObject> object);
+
   bool AddKey(uint32_t key);
   bool AddKey(Object* key, AddKeyConversion convert);
   bool AddKey(Handle<Object> key, AddKeyConversion convert);
   void AddKeys(Handle<FixedArray> array, AddKeyConversion convert);
   void AddKeys(Handle<JSObject> array, AddKeyConversion convert);
-  void AddKeysFromProxy(Handle<JSObject> array);
-  Maybe<bool> AddKeysFromProxy(Handle<JSProxy> proxy, Handle<FixedArray> keys);
   void AddElementKeysFromInterceptor(Handle<JSObject> array);
+
   // Jump to the next level, pushing the current |levelLength_| to
   // |levelLengths_| and adding a new list to |elements_|.
   void NextPrototype();
   // Sort the integer indices in the last list in |elements_|
   void SortCurrentElementsList();
-  Handle<FixedArray> GetKeys(GetKeysConversion convert = KEEP_NUMBERS);
   int length() { return length_; }
   Isolate* isolate() { return isolate_; }
+  PropertyFilter filter() { return filter_; }
   void set_filter_proxy_keys(bool filter) { filter_proxy_keys_ = filter; }
 
  private:
+  Maybe<bool> CollectOwnKeys(Handle<JSReceiver> receiver,
+                             Handle<JSObject> object);
+  Maybe<bool> CollectOwnJSProxyKeys(Handle<JSReceiver> receiver,
+                                    Handle<JSProxy> proxy);
+  Maybe<bool> CollectOwnJSProxyTargetKeys(Handle<JSProxy> proxy,
+                                          Handle<JSReceiver> target);
+
+  Maybe<bool> AddKeysFromJSProxy(Handle<JSProxy> proxy,
+                                 Handle<FixedArray> keys);
+
   bool AddIntegerKey(uint32_t key);
   bool AddStringKey(Handle<Object> key, AddKeyConversion convert);
   bool AddSymbolKey(Handle<Object> array);
@@ -97,8 +120,6 @@
                      KeyCollectionType type, PropertyFilter filter)
       : isolate_(isolate), receiver_(receiver), type_(type), filter_(filter) {
     Prepare();
-    // TODO(cbruni): pass filter_ directly to the KeyAccumulator.
-    USE(filter_);
   }
 
   bool is_receiver_simple_enum() { return is_receiver_simple_enum_; }
@@ -116,9 +137,9 @@
   Handle<JSReceiver> receiver_;
   KeyCollectionType type_;
   PropertyFilter filter_;
+  bool filter_proxy_keys_ = true;
   bool is_receiver_simple_enum_ = false;
   bool has_empty_prototype_ = false;
-  bool filter_proxy_keys_ = true;
 
   DISALLOW_COPY_AND_ASSIGN(FastKeyAccumulator);
 };
@@ -126,4 +147,4 @@
 }  // namespace internal
 }  // namespace v8
 
-#endif  // V8_KEY_ACCUMULATOR_H_
+#endif  // V8_KEYS_H_
diff --git a/src/libplatform/task-queue.h b/src/libplatform/task-queue.h
index efe9e07..24b68da 100644
--- a/src/libplatform/task-queue.h
+++ b/src/libplatform/task-queue.h
@@ -33,8 +33,8 @@
   void Terminate();
 
  private:
-  base::Mutex lock_;
   base::Semaphore process_queue_semaphore_;
+  base::Mutex lock_;
   std::queue<Task*> task_queue_;
   bool terminated_;
 
diff --git a/src/locked-queue-inl.h b/src/locked-queue-inl.h
index 8b3e9d0..eb18f64 100644
--- a/src/locked-queue-inl.h
+++ b/src/locked-queue-inl.h
@@ -5,7 +5,7 @@
 #ifndef V8_LOCKED_QUEUE_INL_
 #define V8_LOCKED_QUEUE_INL_
 
-#include "src/atomic-utils.h"
+#include "src/base/atomic-utils.h"
 #include "src/locked-queue.h"
 
 namespace v8 {
@@ -15,7 +15,7 @@
 struct LockedQueue<Record>::Node : Malloced {
   Node() : next(nullptr) {}
   Record value;
-  AtomicValue<Node*> next;
+  base::AtomicValue<Node*> next;
 };
 
 
diff --git a/src/log-utils.cc b/src/log-utils.cc
index ff9af68..a83a0ae 100644
--- a/src/log-utils.cc
+++ b/src/log-utils.cc
@@ -164,11 +164,7 @@
   }
 }
 
-
-void Log::MessageBuilder::AppendAddress(Address addr) {
-  Append("0x%" V8PRIxPTR, addr);
-}
-
+void Log::MessageBuilder::AppendAddress(Address addr) { Append("%p", addr); }
 
 void Log::MessageBuilder::AppendSymbolName(Symbol* symbol) {
   DCHECK(symbol);
diff --git a/src/log-utils.h b/src/log-utils.h
index 3e70a96..059e5a5 100644
--- a/src/log-utils.h
+++ b/src/log-utils.h
@@ -10,6 +10,7 @@
 #include <cstdarg>
 
 #include "src/allocation.h"
+#include "src/base/compiler-specific.h"
 #include "src/base/platform/mutex.h"
 #include "src/flags.h"
 
@@ -62,10 +63,10 @@
     ~MessageBuilder() { }
 
     // Append string data to the log message.
-    void Append(const char* format, ...);
+    void PRINTF_FORMAT(2, 3) Append(const char* format, ...);
 
     // Append string data to the log message.
-    void AppendVA(const char* format, va_list args);
+    void PRINTF_FORMAT(2, 0) AppendVA(const char* format, va_list args);
 
     // Append a character to the log message.
     void Append(const char c);
diff --git a/src/log.cc b/src/log.cc
index 93111a2..97acea9 100644
--- a/src/log.cc
+++ b/src/log.cc
@@ -180,8 +180,7 @@
 
 void CodeEventLogger::CodeCreateEvent(Logger::LogEventsAndTags tag,
                                       AbstractCode* code,
-                                      SharedFunctionInfo* shared,
-                                      CompilationInfo* info, Name* name) {
+                                      SharedFunctionInfo* shared, Name* name) {
   name_buffer_->Init(tag);
   name_buffer_->AppendBytes(ComputeMarker(shared, code));
   name_buffer_->AppendName(name);
@@ -190,8 +189,7 @@
 
 void CodeEventLogger::CodeCreateEvent(Logger::LogEventsAndTags tag,
                                       AbstractCode* code,
-                                      SharedFunctionInfo* shared,
-                                      CompilationInfo* info, Name* source,
+                                      SharedFunctionInfo* shared, Name* source,
                                       int line, int column) {
   name_buffer_->Init(tag);
   name_buffer_->AppendBytes(ComputeMarker(shared, code));
@@ -284,12 +282,17 @@
     return;
   }
 
-  base::OS::FPrint(perf_output_handle_, "%llx %x %.*s\n",
-                   reinterpret_cast<uint64_t>(code->instruction_start()),
+  // Linux perf expects hex literals without a leading 0x, while some
+  // implementations of printf might prepend one when using the %p format
+  // for pointers, leading to wrongly formatted JIT symbols maps.
+  //
+  // Instead, we use V8PRIxPTR format string and cast pointer to uintpr_t,
+  // so that we have control over the exact output format.
+  base::OS::FPrint(perf_output_handle_, "%" V8PRIxPTR " %x %.*s\n",
+                   reinterpret_cast<uintptr_t>(code->instruction_start()),
                    code->instruction_size(), length, name);
 }
 
-
 // Low-level logging support.
 #define LL_LOG(Call) if (ll_logger_) ll_logger_->Call;
 
@@ -661,8 +664,9 @@
   std::vector<base::OS::SharedLibraryAddress> addresses =
       base::OS::GetSharedLibraryAddresses();
   for (size_t i = 0; i < addresses.size(); ++i) {
-    LOG(isolate_, SharedLibraryEvent(
-        addresses[i].library_path, addresses[i].start, addresses[i].end));
+    LOG(isolate_,
+        SharedLibraryEvent(addresses[i].library_path, addresses[i].start,
+                           addresses[i].end, addresses[i].aslr_slide));
   }
 
   // Start thread processing the profiler buffer.
@@ -789,7 +793,7 @@
 void Logger::UncheckedIntPtrTEvent(const char* name, intptr_t value) {
   if (!log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
-  msg.Append("%s,%" V8_PTR_PREFIX "d", name, value);
+  msg.Append("%s,%" V8PRIdPTR, name, value);
   msg.WriteToLogFile();
 }
 
@@ -797,7 +801,7 @@
 void Logger::HandleEvent(const char* name, Object** location) {
   if (!log_->IsEnabled() || !FLAG_log_handles) return;
   Log::MessageBuilder msg(log_);
-  msg.Append("%s,0x%" V8PRIxPTR, name, location);
+  msg.Append("%s,%p", name, location);
   msg.WriteToLogFile();
 }
 
@@ -821,14 +825,14 @@
   ApiEvent("api,check-security");
 }
 
-
 void Logger::SharedLibraryEvent(const std::string& library_path,
-                                uintptr_t start,
-                                uintptr_t end) {
+                                uintptr_t start, uintptr_t end,
+                                intptr_t aslr_slide) {
   if (!log_->IsEnabled() || !FLAG_prof_cpp) return;
   Log::MessageBuilder msg(log_);
-  msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR,
-             library_path.c_str(), start, end);
+  msg.Append("shared-library,\"%s\",0x%08" V8PRIxPTR ",0x%08" V8PRIxPTR
+             ",%" V8PRIdPTR,
+             library_path.c_str(), start, end, aslr_slide);
   msg.WriteToLogFile();
 }
 
@@ -838,7 +842,7 @@
   if (!log_->IsEnabled() || !FLAG_log_internal_timer_events) return;
   Log::MessageBuilder msg(log_);
   int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds());
-  msg.Append("code-deopt,%ld,%d", since_epoch, code->CodeSize());
+  msg.Append("code-deopt,%d,%d", since_epoch, code->CodeSize());
   msg.WriteToLogFile();
 }
 
@@ -848,7 +852,7 @@
   DCHECK(FLAG_log_timer_events || FLAG_prof_cpp);
   Log::MessageBuilder msg(log_);
   int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds());
-  msg.Append("current-time,%ld", since_epoch);
+  msg.Append("current-time,%d", since_epoch);
   msg.WriteToLogFile();
 }
 
@@ -1008,8 +1012,7 @@
 void Logger::NewEvent(const char* name, void* object, size_t size) {
   if (!log_->IsEnabled() || !FLAG_log) return;
   Log::MessageBuilder msg(log_);
-  msg.Append("new,%s,0x%" V8PRIxPTR ",%u", name, object,
-             static_cast<unsigned int>(size));
+  msg.Append("new,%s,%p,%u", name, object, static_cast<unsigned int>(size));
   msg.WriteToLogFile();
 }
 
@@ -1017,7 +1020,7 @@
 void Logger::DeleteEvent(const char* name, void* object) {
   if (!log_->IsEnabled() || !FLAG_log) return;
   Log::MessageBuilder msg(log_);
-  msg.Append("delete,%s,0x%" V8PRIxPTR, name, object);
+  msg.Append("delete,%s,%p", name, object);
   msg.WriteToLogFile();
 }
 
@@ -1037,12 +1040,12 @@
   } else {
     Symbol* symbol = Symbol::cast(name);
     if (symbol->name()->IsUndefined()) {
-      msg.Append(",1,symbol(hash %x)", prefix, symbol->Hash());
+      msg.Append(",1,symbol(hash %x)", symbol->Hash());
     } else {
       base::SmartArrayPointer<char> str =
           String::cast(symbol->name())
               ->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
-      msg.Append(",1,symbol(\"%s\" hash %x)", prefix, str.get(),
+      msg.Append(",1,symbol(\"%s%s\" hash %x)", prefix, str.get(),
                  symbol->Hash());
     }
   }
@@ -1114,12 +1117,11 @@
 }
 
 void Logger::CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                             SharedFunctionInfo* shared, CompilationInfo* info,
-                             Name* name) {
-  PROFILER_LOG(CodeCreateEvent(tag, code, shared, info, name));
+                             SharedFunctionInfo* shared, Name* name) {
+  PROFILER_LOG(CodeCreateEvent(tag, code, shared, name));
 
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeCreateEvent(tag, code, shared, info, name));
+  CALL_LISTENERS(CodeCreateEvent(tag, code, shared, name));
 
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   if (code == AbstractCode::cast(
@@ -1147,13 +1149,12 @@
 // the SharedFunctionInfo object, we left it to caller
 // to leave logging functions free from heap allocations.
 void Logger::CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                             SharedFunctionInfo* shared, CompilationInfo* info,
-                             Name* source, int line, int column) {
-  PROFILER_LOG(CodeCreateEvent(tag, code, shared, info, source, line, column));
+                             SharedFunctionInfo* shared, Name* source, int line,
+                             int column) {
+  PROFILER_LOG(CodeCreateEvent(tag, code, shared, source, line, column));
 
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeCreateEvent(tag, code, shared, info, source, line,
-                                 column));
+  CALL_LISTENERS(CodeCreateEvent(tag, code, shared, source, line, column));
 
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
@@ -1386,7 +1387,7 @@
   Log::MessageBuilder msg(log_);
   msg.Append("%s,", kLogEventsNames[TICK_EVENT]);
   msg.AppendAddress(sample->pc);
-  msg.Append(",%ld", static_cast<int>(timer_.Elapsed().InMicroseconds()));
+  msg.Append(",%d", static_cast<int>(timer_.Elapsed().InMicroseconds()));
   if (sample->has_external_callback) {
     msg.Append(",1,");
     msg.AppendAddress(sample->external_callback_entry);
@@ -1577,12 +1578,15 @@
 void Logger::LogBytecodeHandlers() {
   if (!FLAG_ignition) return;
 
-  interpreter::Interpreter* interpreter = isolate_->interpreter();
+  const interpreter::OperandScale kOperandScales[] = {
+#define VALUE(Name, _) interpreter::OperandScale::k##Name,
+      OPERAND_SCALE_LIST(VALUE)
+#undef VALUE
+  };
+
   const int last_index = static_cast<int>(interpreter::Bytecode::kLast);
-  for (auto operand_scale = interpreter::OperandScale::kSingle;
-       operand_scale <= interpreter::OperandScale::kMaxValid;
-       operand_scale =
-           interpreter::Bytecodes::NextOperandScale(operand_scale)) {
+  interpreter::Interpreter* interpreter = isolate_->interpreter();
+  for (auto operand_scale : kOperandScales) {
     for (int index = 0; index <= last_index; ++index) {
       interpreter::Bytecode bytecode = interpreter::Bytecodes::FromByte(index);
       if (interpreter::Bytecodes::BytecodeHasHandler(bytecode, operand_scale)) {
@@ -1610,21 +1614,19 @@
         PROFILE(isolate_,
                 CodeCreateEvent(
                     Logger::ToNativeByScript(Logger::LAZY_COMPILE_TAG, *script),
-                    *code, *shared, NULL,
-                    *script_name, line_num, column_num));
+                    *code, *shared, *script_name, line_num, column_num));
       } else {
         // Can't distinguish eval and script here, so always use Script.
-        PROFILE(isolate_,
-                CodeCreateEvent(
-                    Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script),
-                    *code, *shared, NULL, *script_name));
+        PROFILE(isolate_, CodeCreateEvent(Logger::ToNativeByScript(
+                                              Logger::SCRIPT_TAG, *script),
+                                          *code, *shared, *script_name));
       }
     } else {
       PROFILE(isolate_,
               CodeCreateEvent(
                   Logger::ToNativeByScript(Logger::LAZY_COMPILE_TAG, *script),
-                  *code, *shared, NULL,
-                  isolate_->heap()->empty_string(), line_num, column_num));
+                  *code, *shared, isolate_->heap()->empty_string(), line_num,
+                  column_num));
     }
   } else if (shared->IsApiFunction()) {
     // API function.
@@ -1640,9 +1642,8 @@
       PROFILE(isolate_, CallbackEvent(*func_name, entry_point));
     }
   } else {
-    PROFILE(isolate_,
-            CodeCreateEvent(
-                Logger::LAZY_COMPILE_TAG, *code, *shared, NULL, *func_name));
+    PROFILE(isolate_, CodeCreateEvent(Logger::LAZY_COMPILE_TAG, *code, *shared,
+                                      *func_name));
   }
 }
 
diff --git a/src/log.h b/src/log.h
index fdc5047..9953b4c 100644
--- a/src/log.h
+++ b/src/log.h
@@ -8,6 +8,7 @@
 #include <string>
 
 #include "src/allocation.h"
+#include "src/base/compiler-specific.h"
 #include "src/base/platform/elapsed-timer.h"
 #include "src/base/platform/platform.h"
 #include "src/objects.h"
@@ -56,7 +57,6 @@
 
 // Forward declarations.
 class CodeEventListener;
-class CompilationInfo;
 class CpuProfiler;
 class Isolate;
 class Log;
@@ -99,12 +99,9 @@
   V(CALL_MEGAMORPHIC_TAG, "CallMegamorphic")                             \
   V(CALL_MISS_TAG, "CallMiss")                                           \
   V(CALL_NORMAL_TAG, "CallNormal")                                       \
-  V(CALL_PRE_MONOMORPHIC_TAG, "CallPreMonomorphic")                      \
   V(LOAD_INITIALIZE_TAG, "LoadInitialize")                               \
-  V(LOAD_PREMONOMORPHIC_TAG, "LoadPreMonomorphic")                       \
   V(LOAD_MEGAMORPHIC_TAG, "LoadMegamorphic")                             \
   V(STORE_INITIALIZE_TAG, "StoreInitialize")                             \
-  V(STORE_PREMONOMORPHIC_TAG, "StorePreMonomorphic")                     \
   V(STORE_GENERIC_TAG, "StoreGeneric")                                   \
   V(STORE_MEGAMORPHIC_TAG, "StoreMegamorphic")                           \
   V(KEYED_CALL_DEBUG_BREAK_TAG, "KeyedCallDebugBreak")                   \
@@ -113,7 +110,6 @@
   V(KEYED_CALL_MEGAMORPHIC_TAG, "KeyedCallMegamorphic")                  \
   V(KEYED_CALL_MISS_TAG, "KeyedCallMiss")                                \
   V(KEYED_CALL_NORMAL_TAG, "KeyedCallNormal")                            \
-  V(KEYED_CALL_PRE_MONOMORPHIC_TAG, "KeyedCallPreMonomorphic")           \
   V(CALLBACK_TAG, "Callback")                                            \
   V(EVAL_TAG, "Eval")                                                    \
   V(FUNCTION_TAG, "Function")                                            \
@@ -227,11 +223,10 @@
                        const char* source);
   void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code, Name* name);
   void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, CompilationInfo* info,
-                       Name* name);
+                       SharedFunctionInfo* shared, Name* name);
   void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, CompilationInfo* info,
-                       Name* source, int line, int column);
+                       SharedFunctionInfo* shared, Name* source, int line,
+                       int column);
   void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
                        int args_count);
   // Emits a code deoptimization event.
@@ -274,9 +269,8 @@
   void HeapSampleStats(const char* space, const char* kind,
                        intptr_t capacity, intptr_t used);
 
-  void SharedLibraryEvent(const std::string& library_path,
-                          uintptr_t start,
-                          uintptr_t end);
+  void SharedLibraryEvent(const std::string& library_path, uintptr_t start,
+                          uintptr_t end, intptr_t aslr_slide);
 
   void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta);
   void CurrentTimeEvent();
@@ -358,7 +352,7 @@
   // Emits a profiler tick event. Used by the profiler thread.
   void TickEvent(TickSample* sample, bool overflow);
 
-  void ApiEvent(const char* name, ...);
+  PRINTF_FORMAT(2, 3) void ApiEvent(const char* format, ...);
 
   // Logs a StringEvent regardless of whether FLAG_log is true.
   void UncheckedStringEvent(const char* name, const char* value);
@@ -473,12 +467,10 @@
   virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
                                Name* name) = 0;
   virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                               SharedFunctionInfo* shared,
-                               CompilationInfo* info, Name* name) = 0;
+                               SharedFunctionInfo* shared, Name* name) = 0;
   virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                               SharedFunctionInfo* shared,
-                               CompilationInfo* info, Name* source, int line,
-                               int column) = 0;
+                               SharedFunctionInfo* shared, Name* source,
+                               int line, int column) = 0;
   virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
                                int args_count) = 0;
   virtual void CallbackEvent(Name* name, Address entry_point) = 0;
@@ -505,11 +497,10 @@
   void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
                        int args_count) override;
   void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, CompilationInfo* info,
-                       Name* name) override;
+                       SharedFunctionInfo* shared, Name* name) override;
   void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, CompilationInfo* info,
-                       Name* source, int line, int column) override;
+                       SharedFunctionInfo* shared, Name* source, int line,
+                       int column) override;
   void RegExpCodeCreateEvent(AbstractCode* code, String* source) override;
 
   void CallbackEvent(Name* name, Address entry_point) override {}
diff --git a/src/lookup.cc b/src/lookup.cc
index 3df8752..bdb9f0a 100644
--- a/src/lookup.cc
+++ b/src/lookup.cc
@@ -158,47 +158,42 @@
   DCHECK(IsFound() || !holder_->HasFastProperties());
 }
 
-bool LookupIterator::HolderIsInContextIndex(uint32_t index) const {
-  DisallowHeapAllocation no_gc;
-
-  Object* context = heap()->native_contexts_list();
-  while (!context->IsUndefined()) {
-    Context* current_context = Context::cast(context);
-    if (current_context->get(index) == *holder_) {
-      return true;
-    }
-    context = current_context->get(Context::NEXT_CONTEXT_LINK);
-  }
-  return false;
-}
-
 void LookupIterator::InternalUpdateProtector() {
   if (isolate_->bootstrapper()->IsActive()) return;
-  if (!isolate_->IsArraySpeciesLookupChainIntact()) return;
 
   if (*name_ == heap()->constructor_string()) {
+    if (!isolate_->IsArraySpeciesLookupChainIntact()) return;
     // Setting the constructor property could change an instance's @@species
     if (holder_->IsJSArray()) {
       isolate_->CountUsage(
           v8::Isolate::UseCounterFeature::kArrayInstanceConstructorModified);
       isolate_->InvalidateArraySpeciesProtector();
     } else if (holder_->map()->is_prototype_map()) {
+      DisallowHeapAllocation no_gc;
       // Setting the constructor of Array.prototype of any realm also needs
       // to invalidate the species protector
-      if (HolderIsInContextIndex(Context::INITIAL_ARRAY_PROTOTYPE_INDEX)) {
+      if (isolate_->IsInAnyContext(*holder_,
+                                   Context::INITIAL_ARRAY_PROTOTYPE_INDEX)) {
         isolate_->CountUsage(v8::Isolate::UseCounterFeature::
                                  kArrayPrototypeConstructorModified);
         isolate_->InvalidateArraySpeciesProtector();
       }
     }
   } else if (*name_ == heap()->species_symbol()) {
+    if (!isolate_->IsArraySpeciesLookupChainIntact()) return;
     // Setting the Symbol.species property of any Array constructor invalidates
     // the species protector
-    if (HolderIsInContextIndex(Context::ARRAY_FUNCTION_INDEX)) {
+    if (isolate_->IsInAnyContext(*holder_, Context::ARRAY_FUNCTION_INDEX)) {
       isolate_->CountUsage(
           v8::Isolate::UseCounterFeature::kArraySpeciesModified);
       isolate_->InvalidateArraySpeciesProtector();
     }
+  } else if (*name_ == heap()->is_concat_spreadable_symbol()) {
+    if (!isolate_->IsIsConcatSpreadableLookupChainIntact()) return;
+    isolate_->InvalidateIsConcatSpreadableProtector();
+  } else if (*name_ == heap()->has_instance_symbol()) {
+    if (!isolate_->IsHasInstanceLookupChainIntact()) return;
+    isolate_->InvalidateHasInstanceProtector();
   }
 }
 
@@ -352,9 +347,14 @@
     ElementsAccessor* accessor = object->GetElementsAccessor();
     accessor->Delete(object, number_);
   } else {
-    PropertyNormalizationMode mode = holder->map()->is_prototype_map()
-                                         ? KEEP_INOBJECT_PROPERTIES
-                                         : CLEAR_INOBJECT_PROPERTIES;
+    bool is_prototype_map = holder->map()->is_prototype_map();
+    RuntimeCallTimerScope stats_scope(
+        isolate_, is_prototype_map
+                      ? &RuntimeCallStats::PrototypeObject_DeleteProperty
+                      : &RuntimeCallStats::Object_DeleteProperty);
+
+    PropertyNormalizationMode mode =
+        is_prototype_map ? KEEP_INOBJECT_PROPERTIES : CLEAR_INOBJECT_PROPERTIES;
 
     if (holder->HasFastProperties()) {
       JSObject::NormalizeProperties(Handle<JSObject>::cast(holder), mode, 0,
@@ -370,11 +370,10 @@
   state_ = NOT_FOUND;
 }
 
-
 void LookupIterator::TransitionToAccessorProperty(
-    AccessorComponent component, Handle<Object> accessor,
+    Handle<Object> getter, Handle<Object> setter,
     PropertyAttributes attributes) {
-  DCHECK(!accessor->IsNull());
+  DCHECK(!getter->IsNull() || !setter->IsNull());
   // Can only be called when the receiver is a JSObject. JSProxy has to be
   // handled via a trap. Adding properties to primitive values is not
   // observable.
@@ -393,7 +392,7 @@
         IsFound() ? static_cast<int>(number_) : DescriptorArray::kNotFound;
 
     Handle<Map> new_map = Map::TransitionToAccessorProperty(
-        old_map, name_, descriptor, component, accessor, attributes);
+        isolate_, old_map, name_, descriptor, getter, setter, attributes);
     bool simple_transition = new_map->GetBackPointer() == receiver->map();
     JSObject::MigrateToMap(receiver, new_map);
 
@@ -413,15 +412,18 @@
   if (state() == ACCESSOR && GetAccessors()->IsAccessorPair()) {
     pair = Handle<AccessorPair>::cast(GetAccessors());
     // If the component and attributes are identical, nothing has to be done.
-    if (pair->get(component) == *accessor) {
-      if (property_details().attributes() == attributes) return;
+    if (pair->Equals(*getter, *setter)) {
+      if (property_details().attributes() == attributes) {
+        if (!IsElement()) JSObject::ReoptimizeIfPrototype(receiver);
+        return;
+      }
     } else {
       pair = AccessorPair::Copy(pair);
-      pair->set(component, *accessor);
+      pair->SetComponents(*getter, *setter);
     }
   } else {
     pair = factory()->NewAccessorPair();
-    pair->set(component, *accessor);
+    pair->SetComponents(*getter, *setter);
   }
 
   TransitionToAccessorPair(pair, attributes);
@@ -638,17 +640,7 @@
 JSReceiver* LookupIterator::NextHolder(Map* map) {
   DisallowHeapAllocation no_gc;
   if (map->prototype() == heap()->null_value()) return NULL;
-
-  DCHECK(!map->IsJSGlobalProxyMap() || map->has_hidden_prototype());
-
-  if (!check_prototype_chain() &&
-      !(check_hidden() && map->has_hidden_prototype()) &&
-      // Always lookup behind the JSGlobalProxy into the JSGlobalObject, even
-      // when not checking other hidden prototypes.
-      !map->IsJSGlobalProxyMap()) {
-    return NULL;
-  }
-
+  if (!check_prototype_chain() && !map->has_hidden_prototype()) return NULL;
   return JSReceiver::cast(map->prototype());
 }
 
diff --git a/src/lookup.h b/src/lookup.h
index 8005f32..bb65639 100644
--- a/src/lookup.h
+++ b/src/lookup.h
@@ -16,17 +16,14 @@
  public:
   enum Configuration {
     // Configuration bits.
-    kHidden = 1 << 0,
-    kInterceptor = 1 << 1,
-    kPrototypeChain = 1 << 2,
+    kInterceptor = 1 << 0,
+    kPrototypeChain = 1 << 1,
 
     // Convience combinations of bits.
     OWN_SKIP_INTERCEPTOR = 0,
     OWN = kInterceptor,
-    HIDDEN_SKIP_INTERCEPTOR = kHidden,
-    HIDDEN = kHidden | kInterceptor,
-    PROTOTYPE_CHAIN_SKIP_INTERCEPTOR = kHidden | kPrototypeChain,
-    PROTOTYPE_CHAIN = kHidden | kPrototypeChain | kInterceptor,
+    PROTOTYPE_CHAIN_SKIP_INTERCEPTOR = kPrototypeChain,
+    PROTOTYPE_CHAIN = kPrototypeChain | kInterceptor,
     DEFAULT = PROTOTYPE_CHAIN
   };
 
@@ -229,8 +226,8 @@
   void ReconfigureDataProperty(Handle<Object> value,
                                PropertyAttributes attributes);
   void Delete();
-  void TransitionToAccessorProperty(AccessorComponent component,
-                                    Handle<Object> accessor,
+  void TransitionToAccessorProperty(Handle<Object> getter,
+                                    Handle<Object> setter,
                                     PropertyAttributes attributes);
   void TransitionToAccessorPair(Handle<Object> pair,
                                 PropertyAttributes attributes);
@@ -263,9 +260,12 @@
   Handle<Object> GetDataValue() const;
   void WriteDataValue(Handle<Object> value);
   inline void UpdateProtector() {
-    if (FLAG_harmony_species && !IsElement() &&
-        (*name_ == heap()->constructor_string() ||
-         *name_ == heap()->species_symbol())) {
+    if (IsElement()) return;
+    if (*name_ == heap()->is_concat_spreadable_symbol() ||
+        (FLAG_harmony_species && (*name_ == heap()->constructor_string() ||
+                                  *name_ == heap()->species_symbol())) ||
+        (FLAG_harmony_instanceof &&
+         (*name_ == heap()->has_instance_symbol()))) {
       InternalUpdateProtector();
     }
   }
@@ -315,7 +315,6 @@
                       : holder->GetNamedInterceptor();
   }
 
-  bool check_hidden() const { return (configuration_ & kHidden) != 0; }
   bool check_interceptor() const {
     return (configuration_ & kInterceptor) != 0;
   }
@@ -334,12 +333,7 @@
 
   static Configuration ComputeConfiguration(
       Configuration configuration, Handle<Name> name) {
-    if (name->IsPrivate()) {
-      return static_cast<Configuration>(configuration &
-                                        HIDDEN_SKIP_INTERCEPTOR);
-    } else {
-      return configuration;
-    }
+    return name->IsPrivate() ? OWN_SKIP_INTERCEPTOR : configuration;
   }
 
   static Handle<JSReceiver> GetRootForNonJSReceiver(
@@ -353,8 +347,6 @@
 
   State NotFound(JSReceiver* const holder) const;
 
-  bool HolderIsInContextIndex(uint32_t index) const;
-
   // If configuration_ becomes mutable, update
   // HolderIsReceiverOrHiddenPrototype.
   const Configuration configuration_;
diff --git a/src/machine-type.h b/src/machine-type.h
index 1085657..0878610 100644
--- a/src/machine-type.h
+++ b/src/machine-type.h
@@ -177,7 +177,8 @@
 
 inline bool IsFloatingPoint(MachineRepresentation rep) {
   return rep == MachineRepresentation::kFloat32 ||
-         rep == MachineRepresentation::kFloat64;
+         rep == MachineRepresentation::kFloat64 ||
+         rep == MachineRepresentation::kSimd128;
 }
 
 // Gets the log2 of the element size in bytes of the machine type.
diff --git a/src/macro-assembler.h b/src/macro-assembler.h
index 6338b2c..b683045 100644
--- a/src/macro-assembler.h
+++ b/src/macro-assembler.h
@@ -19,21 +19,22 @@
 enum AllocationFlags {
   // No special flags.
   NO_ALLOCATION_FLAGS = 0,
-  // Return the pointer to the allocated already tagged as a heap object.
-  TAG_OBJECT = 1 << 0,
   // The content of the result register already contains the allocation top in
   // new space.
-  RESULT_CONTAINS_TOP = 1 << 1,
+  RESULT_CONTAINS_TOP = 1 << 0,
   // Specify that the requested size of the space to allocate is specified in
   // words instead of bytes.
-  SIZE_IN_WORDS = 1 << 2,
+  SIZE_IN_WORDS = 1 << 1,
   // Align the allocation to a multiple of kDoubleSize
-  DOUBLE_ALIGNMENT = 1 << 3,
+  DOUBLE_ALIGNMENT = 1 << 2,
   // Directly allocate in old space
-  PRETENURE = 1 << 4,
+  PRETENURE = 1 << 3,
+  // Allocation folding dominator
+  ALLOCATION_FOLDING_DOMINATOR = 1 << 4,
+  // Folded allocation
+  ALLOCATION_FOLDED = 1 << 5
 };
 
-
 #if V8_TARGET_ARCH_IA32
 #include "src/ia32/assembler-ia32.h"
 #include "src/ia32/assembler-ia32-inl.h"
diff --git a/src/messages.cc b/src/messages.cc
index 67ab36f..6e7c495 100644
--- a/src/messages.cc
+++ b/src/messages.cc
@@ -7,11 +7,23 @@
 #include "src/api.h"
 #include "src/execution.h"
 #include "src/isolate-inl.h"
+#include "src/keys.h"
 #include "src/string-builder.h"
+#include "src/wasm/wasm-module.h"
 
 namespace v8 {
 namespace internal {
 
+MessageLocation::MessageLocation(Handle<Script> script, int start_pos,
+                                 int end_pos)
+    : script_(script), start_pos_(start_pos), end_pos_(end_pos) {}
+MessageLocation::MessageLocation(Handle<Script> script, int start_pos,
+                                 int end_pos, Handle<JSFunction> function)
+    : script_(script),
+      start_pos_(start_pos),
+      end_pos_(end_pos),
+      function_(function) {}
+MessageLocation::MessageLocation() : start_pos_(-1), end_pos_(-1) {}
 
 // If no message listeners have been registered this one is called
 // by default.
@@ -158,11 +170,25 @@
     : isolate_(isolate) {
   Handle<Object> maybe_function = JSObject::GetDataProperty(
       call_site_obj, isolate->factory()->call_site_function_symbol());
-  if (!maybe_function->IsJSFunction()) return;
+  if (maybe_function->IsJSFunction()) {
+    // javascript
+    fun_ = Handle<JSFunction>::cast(maybe_function);
+    receiver_ = JSObject::GetDataProperty(
+        call_site_obj, isolate->factory()->call_site_receiver_symbol());
+  } else {
+    Handle<Object> maybe_wasm_func_index = JSObject::GetDataProperty(
+        call_site_obj, isolate->factory()->call_site_wasm_func_index_symbol());
+    if (!maybe_wasm_func_index->IsSmi()) {
+      // invalid: neither javascript nor wasm
+      return;
+    }
+    // wasm
+    wasm_obj_ = Handle<JSObject>::cast(JSObject::GetDataProperty(
+        call_site_obj, isolate->factory()->call_site_wasm_obj_symbol()));
+    wasm_func_index_ = Smi::cast(*maybe_wasm_func_index)->value();
+    DCHECK(static_cast<int>(wasm_func_index_) >= 0);
+  }
 
-  fun_ = Handle<JSFunction>::cast(maybe_function);
-  receiver_ = JSObject::GetDataProperty(
-      call_site_obj, isolate->factory()->call_site_receiver_symbol());
   CHECK(JSObject::GetDataProperty(
             call_site_obj, isolate->factory()->call_site_position_symbol())
             ->ToInt32(&pos_));
@@ -170,15 +196,22 @@
 
 
 Handle<Object> CallSite::GetFileName() {
-  Handle<Object> script(fun_->shared()->script(), isolate_);
-  if (script->IsScript()) {
-    return Handle<Object>(Handle<Script>::cast(script)->name(), isolate_);
-  }
-  return isolate_->factory()->null_value();
+  if (!IsJavaScript()) return isolate_->factory()->null_value();
+  Object* script = fun_->shared()->script();
+  if (!script->IsScript()) return isolate_->factory()->null_value();
+  return Handle<Object>(Script::cast(script)->name(), isolate_);
 }
 
 
 Handle<Object> CallSite::GetFunctionName() {
+  if (IsWasm()) {
+    if (wasm_obj_->IsUndefined()) return isolate_->factory()->null_value();
+    // wasm_obj_ can be a String if we generate WASM code directly in a test
+    // case.
+    if (wasm_obj_->IsString()) return wasm_obj_;
+    return wasm::GetWasmFunctionName(Handle<JSObject>::cast(wasm_obj_),
+                                     wasm_func_index_);
+  }
   Handle<String> result = JSFunction::GetName(fun_);
   if (result->length() != 0) return result;
 
@@ -191,19 +224,16 @@
   return isolate_->factory()->null_value();
 }
 
-
 Handle<Object> CallSite::GetScriptNameOrSourceUrl() {
-  Handle<Object> script_obj(fun_->shared()->script(), isolate_);
-  if (script_obj->IsScript()) {
-    Handle<Script> script = Handle<Script>::cast(script_obj);
-    Object* source_url = script->source_url();
-    if (source_url->IsString()) return Handle<Object>(source_url, isolate_);
-    return Handle<Object>(script->name(), isolate_);
-  }
-  return isolate_->factory()->null_value();
+  if (!IsJavaScript()) return isolate_->factory()->null_value();
+  Object* script_obj = fun_->shared()->script();
+  if (!script_obj->IsScript()) return isolate_->factory()->null_value();
+  Handle<Script> script(Script::cast(script_obj), isolate_);
+  Object* source_url = script->source_url();
+  if (source_url->IsString()) return Handle<Object>(source_url, isolate_);
+  return Handle<Object>(script->name(), isolate_);
 }
 
-
 bool CheckMethodName(Isolate* isolate, Handle<JSObject> obj, Handle<Name> name,
                      Handle<JSFunction> fun,
                      LookupIterator::Configuration config) {
@@ -223,7 +253,7 @@
 
 
 Handle<Object> CallSite::GetMethodName() {
-  if (receiver_->IsNull() || receiver_->IsUndefined()) {
+  if (!IsJavaScript() || receiver_->IsNull() || receiver_->IsUndefined()) {
     return isolate_->factory()->null_value();
   }
   Handle<JSReceiver> receiver =
@@ -261,7 +291,8 @@
     if (!current->IsJSObject()) break;
     Handle<JSObject> current_obj = Handle<JSObject>::cast(current);
     if (current_obj->IsAccessCheckNeeded()) break;
-    Handle<FixedArray> keys = JSObject::GetEnumPropertyKeys(current_obj);
+    Handle<FixedArray> keys =
+        KeyAccumulator::GetEnumPropertyKeys(isolate_, current_obj);
     for (int i = 0; i < keys->length(); i++) {
       HandleScope inner_scope(isolate_);
       if (!keys->get(i)->IsName()) continue;
@@ -281,7 +312,7 @@
 
 
 int CallSite::GetLineNumber() {
-  if (pos_ >= 0) {
+  if (pos_ >= 0 && IsJavaScript()) {
     Handle<Object> script_obj(fun_->shared()->script(), isolate_);
     if (script_obj->IsScript()) {
       Handle<Script> script = Handle<Script>::cast(script_obj);
@@ -293,7 +324,7 @@
 
 
 int CallSite::GetColumnNumber() {
-  if (pos_ >= 0) {
+  if (pos_ >= 0 && IsJavaScript()) {
     Handle<Object> script_obj(fun_->shared()->script(), isolate_);
     if (script_obj->IsScript()) {
       Handle<Script> script = Handle<Script>::cast(script_obj);
@@ -305,6 +336,7 @@
 
 
 bool CallSite::IsNative() {
+  if (!IsJavaScript()) return false;
   Handle<Object> script(fun_->shared()->script(), isolate_);
   return script->IsScript() &&
          Handle<Script>::cast(script)->type() == Script::TYPE_NATIVE;
@@ -312,12 +344,14 @@
 
 
 bool CallSite::IsToplevel() {
+  if (IsWasm()) return false;
   return receiver_->IsJSGlobalProxy() || receiver_->IsNull() ||
          receiver_->IsUndefined();
 }
 
 
 bool CallSite::IsEval() {
+  if (!IsJavaScript()) return false;
   Handle<Object> script(fun_->shared()->script(), isolate_);
   return script->IsScript() &&
          Handle<Script>::cast(script)->compilation_type() ==
@@ -326,7 +360,7 @@
 
 
 bool CallSite::IsConstructor() {
-  if (!receiver_->IsJSObject()) return false;
+  if (!IsJavaScript() || !receiver_->IsJSObject()) return false;
   Handle<Object> constructor =
       JSReceiver::GetDataProperty(Handle<JSObject>::cast(receiver_),
                                   isolate_->factory()->constructor_string());
diff --git a/src/messages.h b/src/messages.h
index 4aa0b73..a9f321e 100644
--- a/src/messages.h
+++ b/src/messages.h
@@ -24,13 +24,10 @@
 
 class MessageLocation {
  public:
+  MessageLocation(Handle<Script> script, int start_pos, int end_pos);
   MessageLocation(Handle<Script> script, int start_pos, int end_pos,
-                  Handle<JSFunction> function = Handle<JSFunction>())
-      : script_(script),
-        start_pos_(start_pos),
-        end_pos_(end_pos),
-        function_(function) {}
-  MessageLocation() : start_pos_(-1), end_pos_(-1) { }
+                  Handle<JSFunction> function);
+  MessageLocation();
 
   Handle<Script> script() const { return script_; }
   int start_pos() const { return start_pos_; }
@@ -62,13 +59,16 @@
   bool IsEval();
   bool IsConstructor();
 
-  bool IsValid() { return !fun_.is_null(); }
+  bool IsJavaScript() { return !fun_.is_null(); }
+  bool IsWasm() { return !wasm_obj_.is_null(); }
 
  private:
   Isolate* isolate_;
   Handle<Object> receiver_;
   Handle<JSFunction> fun_;
-  int32_t pos_;
+  int32_t pos_ = -1;
+  Handle<JSObject> wasm_obj_;
+  uint32_t wasm_func_index_ = static_cast<uint32_t>(-1);
 };
 
 #define MESSAGE_TEMPLATES(T)                                                   \
@@ -94,12 +94,10 @@
   T(ArrayFunctionsOnSealed, "Cannot add/remove sealed array elements")         \
   T(ArrayNotSubclassable, "Subclassing Arrays is not currently supported.")    \
   T(CalledNonCallable, "% is not a function")                                  \
-  T(CalledNonCallableInstanceOf,                                               \
-    "Right-hand side of 'instanceof' is not callable")                         \
   T(CalledOnNonObject, "% called on non-object")                               \
   T(CalledOnNullOrUndefined, "% called on null or undefined")                  \
   T(CallSiteExpectsFunction,                                                   \
-    "CallSite expects function as second argument, got %")                     \
+    "CallSite expects function or number as second argument, got %")           \
   T(CallSiteMethod, "CallSite method % expects CallSite as receiver")          \
   T(CannotConvertToPrimitive, "Cannot convert object to primitive value")      \
   T(CannotPreventExt, "Cannot prevent extensions")                             \
@@ -120,6 +118,7 @@
   T(DebuggerType, "Debugger: Parameters have wrong types.")                    \
   T(DeclarationMissingInitializer, "Missing initializer in % declaration")     \
   T(DefineDisallowed, "Cannot define property:%, object is not extensible.")   \
+  T(DetachedOperation, "Cannot perform % on a detached ArrayBuffer")           \
   T(DuplicateTemplateProperty, "Object template has duplicate property '%'")   \
   T(ExtendsValueGenerator,                                                     \
     "Class extends value % may not be a generator function")                   \
@@ -131,8 +130,6 @@
   T(GeneratorRunning, "Generator is already running")                          \
   T(IllegalInvocation, "Illegal invocation")                                   \
   T(IncompatibleMethodReceiver, "Method % called on incompatible receiver %")  \
-  T(InstanceofFunctionExpected,                                                \
-    "Expecting a function in instanceof check, but got %")                     \
   T(InstanceofNonobjectProto,                                                  \
     "Function has non-object prototype '%' in instanceof check")               \
   T(InvalidArgument, "invalid_argument")                                       \
@@ -149,6 +146,8 @@
     "Method invoked on undefined or null value.")                              \
   T(MethodInvokedOnWrongType, "Method invoked on an object that is not %.")    \
   T(NoAccess, "no access")                                                     \
+  T(NonCallableInInstanceOfCheck,                                              \
+    "Right-hand side of 'instanceof' is not callable")                         \
   T(NonCoercible, "Cannot match against 'undefined' or 'null'.")               \
   T(NonExtensibleProto, "% is not extensible")                                 \
   T(NonObjectInInstanceOfCheck,                                                \
@@ -175,19 +174,6 @@
   T(ObjectSetterExpectingFunction,                                             \
     "Object.prototype.__defineSetter__: Expecting function")                   \
   T(ObjectSetterCallable, "Setter must be a function: %")                      \
-  T(ObserveCallbackFrozen,                                                     \
-    "Object.observe cannot deliver to a frozen function object")               \
-  T(ObserveGlobalProxy, "% cannot be called on the global proxy object")       \
-  T(ObserveAccessChecked, "% cannot be called on access-checked objects")      \
-  T(ObserveInvalidAccept,                                                      \
-    "Third argument to Object.observe must be an array of strings.")           \
-  T(ObserveNonFunction, "Object.% cannot deliver to non-function")             \
-  T(ObserveNonObject, "Object.% cannot % non-object")                          \
-  T(ObserveNotifyNonNotifier, "notify called on non-notifier object")          \
-  T(ObservePerformNonFunction, "Cannot perform non-function")                  \
-  T(ObservePerformNonString, "Invalid non-string changeType")                  \
-  T(ObserveTypeNonString,                                                      \
-    "Invalid changeRecord with non-string 'type' property")                    \
   T(OrdinaryFunctionCalledAsConstructor,                                       \
     "Function object that's not a constructor was created with new")           \
   T(PromiseCyclic, "Chaining cycle detected for promise %")                    \
@@ -370,6 +356,7 @@
   T(BadSetterArity, "Setter must have exactly one formal parameter.")          \
   T(ConstructorIsAccessor, "Class constructor may not be an accessor")         \
   T(ConstructorIsGenerator, "Class constructor may not be a generator")        \
+  T(ConstructorIsAsync, "Class constructor may not be an async method")        \
   T(DerivedConstructorReturn,                                                  \
     "Derived constructors may only return object or undefined")                \
   T(DuplicateConstructor, "A class may only have one constructor")             \
@@ -380,6 +367,8 @@
     "% loop variable declaration may not have an initializer.")                \
   T(ForInOfLoopMultiBindings,                                                  \
     "Invalid left-hand side in % loop: Must have a single binding.")           \
+  T(GeneratorInLegacyContext,                                                  \
+    "Generator declarations are not allowed in legacy contexts.")              \
   T(IllegalBreak, "Illegal break statement")                                   \
   T(IllegalContinue, "Illegal continue statement")                             \
   T(IllegalLanguageModeDirective,                                              \
@@ -430,9 +419,6 @@
   T(SloppyFunction,                                                            \
     "In non-strict mode code, functions can only be declared at top level, "   \
     "inside a block, or as the body of an if statement.")                      \
-  T(SloppyLexical,                                                             \
-    "Block-scoped declarations (let, const, function, class) not yet "         \
-    "supported outside strict mode")                                           \
   T(SpeciesNotConstructor,                                                     \
     "object.constructor[Symbol.species] is not a constructor")                 \
   T(StrictDelete, "Delete of an unqualified identifier in strict mode.")       \
@@ -445,6 +431,10 @@
   T(TemplateOctalLiteral,                                                      \
     "Octal literals are not allowed in template strings.")                     \
   T(ThisFormalParameter, "'this' is not a valid formal parameter name")        \
+  T(AwaitBindingIdentifier,                                                    \
+    "'await' is not a valid identifier name in an async function")             \
+  T(AwaitExpressionFormalParameter,                                            \
+    "Illegal await-expression in formal parameters of async function")         \
   T(TooManyArguments,                                                          \
     "Too many arguments in function call (only 65535 allowed)")                \
   T(TooManyParameters,                                                         \
@@ -455,10 +445,19 @@
   T(UnexpectedEOS, "Unexpected end of input")                                  \
   T(UnexpectedFunctionSent,                                                    \
     "function.sent expression is not allowed outside a generator")             \
+  T(UnexpectedInsideTailCall, "Unexpected expression inside tail call")        \
   T(UnexpectedReserved, "Unexpected reserved word")                            \
   T(UnexpectedStrictReserved, "Unexpected strict mode reserved word")          \
   T(UnexpectedSuper, "'super' keyword unexpected here")                        \
+  T(UnexpectedSloppyTailCall,                                                  \
+    "Tail call expressions are not allowed in non-strict mode")                \
   T(UnexpectedNewTarget, "new.target expression is not allowed here")          \
+  T(UnexpectedTailCall, "Tail call expression is not allowed here")            \
+  T(UnexpectedTailCallInCatchBlock,                                            \
+    "Tail call expression in catch block when finally block is also present")  \
+  T(UnexpectedTailCallInForInOf, "Tail call expression in for-in/of body")     \
+  T(UnexpectedTailCallInTryBlock, "Tail call expression in try block")         \
+  T(UnexpectedTailCallOfEval, "Tail call of a direct eval is not allowed")     \
   T(UnexpectedTemplateString, "Unexpected template string")                    \
   T(UnexpectedToken, "Unexpected token %")                                     \
   T(UnexpectedTokenIdentifier, "Unexpected identifier")                        \
@@ -478,7 +477,16 @@
   /* EvalError */                                                              \
   T(CodeGenFromStrings, "%")                                                   \
   /* URIError */                                                               \
-  T(URIMalformed, "URI malformed")
+  T(URIMalformed, "URI malformed")                                             \
+  /* Wasm errors (currently Error) */                                          \
+  T(WasmTrapUnreachable, "unreachable")                                        \
+  T(WasmTrapMemOutOfBounds, "memory access out of bounds")                     \
+  T(WasmTrapDivByZero, "divide by zero")                                       \
+  T(WasmTrapDivUnrepresentable, "divide result unrepresentable")               \
+  T(WasmTrapRemByZero, "remainder by zero")                                    \
+  T(WasmTrapFloatUnrepresentable, "integer result unrepresentable")            \
+  T(WasmTrapFuncInvalid, "invalid function")                                   \
+  T(WasmTrapFuncSigMismatch, "function signature mismatch")
 
 class MessageTemplate {
  public:
diff --git a/src/mips/assembler-mips-inl.h b/src/mips/assembler-mips-inl.h
index 517d4ad..b463c0b 100644
--- a/src/mips/assembler-mips-inl.h
+++ b/src/mips/assembler-mips-inl.h
@@ -102,11 +102,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Assembler::target_address_at(pc_, host_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) ||
          IsRuntimeEntry(rmode_) ||
@@ -156,19 +151,6 @@
   }
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Assembler::set_target_address_at(isolate_, pc_, host_, updated_reference,
-                                   icache_flush_mode);
-}
-
 Address Assembler::target_address_from_return_address(Address pc) {
   return pc - kCallTargetAddressOffset;
 }
@@ -380,7 +362,7 @@
   }
 }
 
-
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/mips/assembler-mips.cc b/src/mips/assembler-mips.cc
index bfa2328..f95323b 100644
--- a/src/mips/assembler-mips.cc
+++ b/src/mips/assembler-mips.cc
@@ -189,6 +189,42 @@
   return false;
 }
 
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Assembler::target_address_at(pc_, host_);
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return reinterpret_cast<uint32_t>(Assembler::target_address_at(pc_, host_));
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_)) {
+    Address updated_memory_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_memory_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_memory_reference &&
+           updated_memory_reference < new_base + new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, updated_memory_reference, icache_flush_mode);
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, reinterpret_cast<Address>(updated_size_reference),
+        icache_flush_mode);
+  } else {
+    UNREACHABLE();
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Implementation of Operand and MemOperand.
@@ -1829,11 +1865,17 @@
 
 
 void Assembler::lwl(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) ||
+         IsMipsArchVariant(kMips32r2));
   GenInstrImmediate(LWL, rs.rm(), rd, rs.offset_);
 }
 
 
 void Assembler::lwr(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) ||
+         IsMipsArchVariant(kMips32r2));
   GenInstrImmediate(LWR, rs.rm(), rd, rs.offset_);
 }
 
@@ -1869,11 +1911,17 @@
 
 
 void Assembler::swl(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) ||
+         IsMipsArchVariant(kMips32r2));
   GenInstrImmediate(SWL, rs.rm(), rd, rs.offset_);
 }
 
 
 void Assembler::swr(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) ||
+         IsMipsArchVariant(kMips32r2));
   GenInstrImmediate(SWR, rs.rm(), rd, rs.offset_);
 }
 
@@ -2009,6 +2057,10 @@
   emit(instr);
 }
 
+void Assembler::sync() {
+  Instr sync_instr = SPECIAL | SYNC;
+  emit(sync_instr);
+}
 
 // Move from HI/LO register.
 
@@ -2955,6 +3007,7 @@
     data = reinterpret_cast<uint32_t>(buffer_ + label->pos());
   } else {
     data = jump_address(label);
+    unbound_labels_count_++;
     internal_reference_positions_.insert(label->pos());
   }
   RecordRelocInfo(RelocInfo::INTERNAL_REFERENCE);
diff --git a/src/mips/assembler-mips.h b/src/mips/assembler-mips.h
index 886ac6c..c595cc9 100644
--- a/src/mips/assembler-mips.h
+++ b/src/mips/assembler-mips.h
@@ -63,6 +63,8 @@
   V(f16) V(f17) V(f18) V(f19) V(f20) V(f21) V(f22) V(f23) \
   V(f24) V(f25) V(f26) V(f27) V(f28) V(f29) V(f30) V(f31)
 
+#define FLOAT_REGISTERS DOUBLE_REGISTERS
+
 #define ALLOCATABLE_DOUBLE_REGISTERS(V)                   \
   V(f0)  V(f2)  V(f4)  V(f6)  V(f8)  V(f10) V(f12) V(f14) \
   V(f16) V(f18) V(f20) V(f22) V(f24) V(f26)
@@ -154,7 +156,7 @@
 Register ToRegister(int num);
 
 // Coprocessor register.
-struct DoubleRegister {
+struct FPURegister {
   enum Code {
 #define REGISTER_CODE(R) kCode_##R,
     DOUBLE_REGISTERS(REGISTER_CODE)
@@ -174,19 +176,19 @@
   const char* ToString();
   bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
-  bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
-  DoubleRegister low() const {
+  bool is(FPURegister reg) const { return reg_code == reg.reg_code; }
+  FPURegister low() const {
     // Find low reg of a Double-reg pair, which is the reg itself.
     DCHECK(reg_code % 2 == 0);  // Specified Double reg must be even.
-    DoubleRegister reg;
+    FPURegister reg;
     reg.reg_code = reg_code;
     DCHECK(reg.is_valid());
     return reg;
   }
-  DoubleRegister high() const {
+  FPURegister high() const {
     // Find high reg of a Doubel-reg pair, which is reg + 1.
     DCHECK(reg_code % 2 == 0);  // Specified Double reg must be even.
-    DoubleRegister reg;
+    FPURegister reg;
     reg.reg_code = reg_code + 1;
     DCHECK(reg.is_valid());
     return reg;
@@ -201,8 +203,8 @@
     return 1 << reg_code;
   }
 
-  static DoubleRegister from_code(int code) {
-    DoubleRegister r = {code};
+  static FPURegister from_code(int code) {
+    FPURegister r = {code};
     return r;
   }
   void setcode(int f) {
@@ -227,8 +229,12 @@
 // but it is not in common use. Someday we will want to support this in v8.)
 
 // For O32 ABI, Floats and Doubles refer to same set of 32 32-bit registers.
-typedef DoubleRegister FPURegister;
-typedef DoubleRegister FloatRegister;
+typedef FPURegister FloatRegister;
+
+typedef FPURegister DoubleRegister;
+
+// TODO(mips) Define SIMD registers.
+typedef FPURegister Simd128Register;
 
 const DoubleRegister no_freg = {-1};
 
@@ -304,9 +310,6 @@
 const FPUControlRegister no_fpucreg = { kInvalidFPUControlRegister };
 const FPUControlRegister FCSR = { kFCSRRegister };
 
-// TODO(mips) Define SIMD registers.
-typedef DoubleRegister Simd128Register;
-
 // -----------------------------------------------------------------------------
 // Machine instruction Operands.
 
@@ -799,6 +802,9 @@
   void teq(Register rs, Register rt, uint16_t code);
   void tne(Register rs, Register rt, uint16_t code);
 
+  // Memory barrier instruction.
+  void sync();
+
   // Move from HI/LO register.
   void mfhi(Register rd);
   void mflo(Register rd);
@@ -1039,8 +1045,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
-
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   static int RelocateInternalReference(RelocInfo::Mode rmode, byte* pc,
                                        intptr_t pc_delta);
@@ -1158,10 +1163,15 @@
 
   bool IsPrevInstrCompactBranch() { return prev_instr_compact_branch_; }
 
+  inline int UnboundLabelsCount() { return unbound_labels_count_; }
+
  protected:
   // Load Scaled Address instruction.
   void lsa(Register rd, Register rt, Register rs, uint8_t sa);
 
+  // Helpers.
+  void LoadRegPlusOffsetToAt(const MemOperand& src);
+
   // Relocation for a type-recording IC has the AST id added to it.  This
   // member variable is a way to pass the information from the call site to
   // the relocation info.
@@ -1359,8 +1369,6 @@
   void GenInstrJump(Opcode opcode,
                      uint32_t address);
 
-  // Helpers.
-  void LoadRegPlusOffsetToAt(const MemOperand& src);
 
   // Labels.
   void print(Label* L);
diff --git a/src/mips/builtins-mips.cc b/src/mips/builtins-mips.cc
index 9693a52..76d0640 100644
--- a/src/mips/builtins-mips.cc
+++ b/src/mips/builtins-mips.cc
@@ -603,16 +603,9 @@
     // a0: number of arguments
     // a1: constructor function
     // a3: new target
-    if (is_api_function) {
-      __ lw(cp, FieldMemOperand(a1, JSFunction::kContextOffset));
-      Handle<Code> code =
-          masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ Call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(a0);
-      __ InvokeFunction(a1, a3, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+    ParameterCount actual(a0);
+    __ InvokeFunction(a1, a3, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -825,6 +818,139 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- v0 : the value to pass to the generator
+  //  -- a1 : the JSGeneratorObject to resume
+  //  -- a2 : the resume mode (tagged)
+  //  -- ra : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(a1);
+
+  // Store input value into generator object.
+  __ sw(v0, FieldMemOperand(a1, JSGeneratorObject::kInputOffset));
+  __ RecordWriteField(a1, JSGeneratorObject::kInputOffset, v0, a3,
+                      kRAHasNotBeenSaved, kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ sw(a2, FieldMemOperand(a1, JSGeneratorObject::kResumeModeOffset));
+
+  // Load suspended function and context.
+  __ lw(cp, FieldMemOperand(a1, JSGeneratorObject::kContextOffset));
+  __ lw(t0, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  __ li(t1, Operand(step_in_enabled));
+  __ lb(t1, MemOperand(t1));
+  __ Branch(&skip_flooding, eq, t1, Operand(zero_reg));
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(a1, a2, t0);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(a1, a2);
+    __ lw(t0, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Push receiver.
+  __ lw(t1, FieldMemOperand(a1, JSGeneratorObject::kReceiverOffset));
+  __ Push(t1);
+
+  // ----------- S t a t e -------------
+  //  -- a1    : the JSGeneratorObject to resume
+  //  -- a2    : the resume mode (tagged)
+  //  -- t0    : generator function
+  //  -- cp    : generator context
+  //  -- ra    : return address
+  //  -- sp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ lw(a3, FieldMemOperand(t0, JSFunction::kSharedFunctionInfoOffset));
+  __ lw(a3,
+        FieldMemOperand(a3, SharedFunctionInfo::kFormalParameterCountOffset));
+  {
+    Label done_loop, loop;
+    __ bind(&loop);
+    __ Subu(a3, a3, Operand(Smi::FromInt(1)));
+    __ Branch(&done_loop, lt, a3, Operand(zero_reg));
+    __ PushRoot(Heap::kTheHoleValueRootIndex);
+    __ Branch(&loop);
+    __ bind(&done_loop);
+  }
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ lw(a3, FieldMemOperand(t0, JSFunction::kSharedFunctionInfoOffset));
+  __ lw(a3, FieldMemOperand(a3, SharedFunctionInfo::kFunctionDataOffset));
+  __ GetObjectType(a3, a3, a3);
+  __ Branch(&old_generator, ne, a3, Operand(BYTECODE_ARRAY_TYPE));
+
+  // New-style (ignition/turbofan) generator object.
+  {
+    __ lw(a0, FieldMemOperand(t0, JSFunction::kSharedFunctionInfoOffset));
+    __ lw(a0,
+         FieldMemOperand(a0, SharedFunctionInfo::kFormalParameterCountOffset));
+    __ SmiUntag(a0);
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ Move(a3, a1);
+    __ Move(a1, t0);
+    __ lw(a2, FieldMemOperand(a1, JSFunction::kCodeEntryOffset));
+    __ Jump(a2);
+  }
+
+  // Old-style (full-codegen) generator object
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ Push(ra, fp);
+    __ Move(fp, sp);
+    __ Push(cp, t0);
+
+    // Restore the operand stack.
+    __ lw(a0, FieldMemOperand(a1, JSGeneratorObject::kOperandStackOffset));
+    __ lw(a3, FieldMemOperand(a0, FixedArray::kLengthOffset));
+    __ Addu(a0, a0, Operand(FixedArray::kHeaderSize - kHeapObjectTag));
+    __ Lsa(a3, a0, a3, kPointerSizeLog2 - 1);
+    {
+      Label done_loop, loop;
+      __ bind(&loop);
+      __ Branch(&done_loop, eq, a0, Operand(a3));
+      __ lw(t1, MemOperand(a0));
+      __ Push(t1);
+      __ Branch(USE_DELAY_SLOT, &loop);
+      __ addiu(a0, a0, kPointerSize);  // In delay slot.
+      __ bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ LoadRoot(t1, Heap::kEmptyFixedArrayRootIndex);
+    __ sw(t1, FieldMemOperand(a1, JSGeneratorObject::kOperandStackOffset));
+
+    // Resume the generator function at the continuation.
+    __ lw(a3, FieldMemOperand(t0, JSFunction::kSharedFunctionInfoOffset));
+    __ lw(a3, FieldMemOperand(a3, SharedFunctionInfo::kCodeOffset));
+    __ Addu(a3, a3, Operand(Code::kHeaderSize - kHeapObjectTag));
+    __ lw(a2, FieldMemOperand(a1, JSGeneratorObject::kContinuationOffset));
+    __ SmiUntag(a2);
+    __ Addu(a3, a3, Operand(a2));
+    __ li(a2, Operand(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
+    __ sw(a2, FieldMemOperand(a1, JSGeneratorObject::kContinuationOffset));
+    __ Move(v0, a1);  // Continuation expects generator object in v0.
+    __ Jump(a3);
+  }
+}
 
 // Generate code for entering a JS function with the interpreter.
 // On entry to the function the receiver and arguments have been pushed on the
@@ -842,14 +968,16 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
   FrameScope frame_scope(masm, StackFrame::MANUAL);
   __ PushStandardFrame(a1);
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into kInterpreterBytecodeRegister.
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ lw(a0, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
   Label load_debug_bytecode_array, bytecode_array_loaded;
   Register debug_info = kInterpreterBytecodeArrayRegister;
@@ -861,8 +989,11 @@
         FieldMemOperand(a0, SharedFunctionInfo::kFunctionDataOffset));
   __ bind(&bytecode_array_loaded);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ JumpIfRoot(kInterpreterBytecodeArrayRegister,
+                Heap::kUndefinedValueRootIndex, &bytecode_array_not_present);
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ SmiTst(kInterpreterBytecodeArrayRegister, t0);
     __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry, t0,
               Operand(zero_reg));
@@ -871,8 +1002,13 @@
               Operand(BYTECODE_ARRAY_TYPE));
   }
 
-  // Push new.target, bytecode array and zero for bytecode array offset.
-  __ Push(a3, kInterpreterBytecodeArrayRegister, zero_reg);
+  // Load initial bytecode offset.
+  __ li(kInterpreterBytecodeOffsetRegister,
+        Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
+
+  // Push new.target, bytecode array and Smi tagged bytecode array offset.
+  __ SmiTag(t0, kInterpreterBytecodeOffsetRegister);
+  __ Push(a3, kInterpreterBytecodeArrayRegister, t0);
 
   // Allocate the local and temporary register file on the stack.
   {
@@ -902,17 +1038,8 @@
     __ Branch(&loop_header, ge, t0, Operand(zero_reg));
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load bytecode offset and dispatch table into registers.
+  // Load accumulator and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ Addu(kInterpreterRegisterFileRegister, fp,
-          Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
-  __ li(kInterpreterBytecodeOffsetRegister,
-        Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
   __ li(kInterpreterDispatchTableRegister,
         Operand(ExternalReference::interpreter_dispatch_table_address(
             masm->isolate())));
@@ -923,42 +1050,41 @@
   __ lbu(a0, MemOperand(a0));
   __ Lsa(at, kInterpreterDispatchTableRegister, a0, kPointerSizeLog2);
   __ lw(at, MemOperand(at));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ Addu(at, at, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Call(at);
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
+  // The return value is in v0.
+
+  // Get the arguments + reciever count.
+  __ lw(t0, MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ lw(t0, FieldMemOperand(t0, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  // Drop receiver + arguments and return.
+  __ Addu(sp, sp, t0);
+  __ Jump(ra);
 
   // Load debug copy of the bytecode array.
   __ bind(&load_debug_bytecode_array);
   __ lw(kInterpreterBytecodeArrayRegister,
         FieldMemOperand(debug_info, DebugInfo::kAbstractCodeIndex));
   __ Branch(&bytecode_array_loaded);
-}
 
-
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
-
-  // The return value is in accumulator, which is already in v0.
-
-  // Leave the frame (also dropping the register file).
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ bind(&bytecode_array_not_present);
   __ LeaveFrame(StackFrame::JAVA_SCRIPT);
-
-  // Drop receiver + arguments and return.
-  __ lw(at, FieldMemOperand(kInterpreterBytecodeArrayRegister,
-                            BytecodeArray::kParameterSizeOffset));
-  __ Addu(sp, sp, at);
-  __ Jump(ra);
+  __ lw(t0, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
+  __ lw(t0, FieldMemOperand(t0, SharedFunctionInfo::kCodeOffset));
+  __ Addu(t0, t0, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ sw(t0, FieldMemOperand(a1, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(a1, t0, t1);
+  __ Jump(t0);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -991,7 +1117,6 @@
           RelocInfo::CODE_TARGET);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm) {
   // ----------- S t a t e -------------
@@ -1022,25 +1147,24 @@
   __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
 }
 
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ li(t0, Operand(masm->isolate()->builtins()->InterpreterEntryTrampoline()));
+  __ Addu(ra, t0, Operand(interpreter_entry_return_pc_offset->value() +
+                          Code::kHeaderSize - kHeapObjectTag));
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register and dispatch table register.
-  __ Addu(kInterpreterRegisterFileRegister, fp,
-          Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+  // Initialize the dispatch table register.
   __ li(kInterpreterDispatchTableRegister,
         Operand(ExternalReference::interpreter_dispatch_table_address(
             masm->isolate())));
 
-  // Get the context from the frame.
-  __ lw(kContextRegister,
-        MemOperand(kInterpreterRegisterFileRegister,
-                   InterpreterFrameConstants::kContextFromRegisterPointer));
-
   // Get the bytecode array pointer from the frame.
-  __ lw(
-      kInterpreterBytecodeArrayRegister,
-      MemOperand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+  __ lw(kInterpreterBytecodeArrayRegister,
+        MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -1054,9 +1178,7 @@
 
   // Get the target bytecode offset from the frame.
   __ lw(kInterpreterBytecodeOffsetRegister,
-        MemOperand(
-            kInterpreterRegisterFileRegister,
-            InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+        MemOperand(fp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiUntag(kInterpreterBytecodeOffsetRegister);
 
   // Dispatch to the target bytecode.
@@ -1065,63 +1187,164 @@
   __ lbu(a1, MemOperand(a1));
   __ Lsa(a1, kInterpreterDispatchTableRegister, a1, kPointerSizeLog2);
   __ lw(a1, MemOperand(a1));
-  __ Addu(a1, a1, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Jump(a1);
 }
 
-
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ li(a1, Operand(Smi::FromInt(static_cast<int>(type))));
-    __ push(a1);
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register.
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ li(ra, Operand(masm->isolate()->builtins()->InterpreterEntryTrampoline()));
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- a0 : argument count (preserved for callee)
+  //  -- a3 : new target (preserved for callee)
+  //  -- a1 : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime, gotta_call_runtime_no_stack;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register argument_count = a0;
+  Register closure = a1;
+  Register new_target = a3;
+  __ push(argument_count);
+  __ push(new_target);
+  __ push(closure);
+
+  Register map = a0;
+  Register index = a2;
+  __ lw(map, FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ lw(map, FieldMemOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ lw(index, FieldMemOperand(map, FixedArray::kLengthOffset));
+  __ Branch(&gotta_call_runtime, lt, index, Operand(Smi::FromInt(2)));
+
+  // Find literals.
+  // a3  : native context
+  // a2  : length / index
+  // a0  : optimized code map
+  // stack[0] : new target
+  // stack[4] : closure
+  Register native_context = a3;
+  __ lw(native_context, NativeContextMemOperand());
+
+  __ bind(&loop_top);
+  Register temp = a1;
+  Register array_pointer = t1;
+
+  // Does the native context match?
+  __ sll(at, index, kPointerSizeLog2 - kSmiTagSize);
+  __ Addu(array_pointer, map, Operand(at));
+  __ lw(temp, FieldMemOperand(array_pointer,
+                              SharedFunctionInfo::kOffsetToPreviousContext));
+  __ lw(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ Branch(&loop_bottom, ne, temp, Operand(native_context));
+  // OSR id set to none?
+  __ lw(temp, FieldMemOperand(array_pointer,
+                              SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  const int bailout_id = BailoutId::None().ToInt();
+  __ Branch(&loop_bottom, ne, temp, Operand(Smi::FromInt(bailout_id)));
+  // Literals available?
+  __ lw(temp, FieldMemOperand(array_pointer,
+                              SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ lw(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ lw(t0, MemOperand(sp, 0));
+  __ sw(temp, FieldMemOperand(t0, JSFunction::kLiteralsOffset));
+  __ push(index);
+  __ RecordWriteField(t0, JSFunction::kLiteralsOffset, temp, index,
+                      kRAHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  __ pop(index);
+
+  // Code available?
+  Register entry = t0;
+  __ lw(entry,
+        FieldMemOperand(array_pointer,
+                        SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ lw(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  __ pop(closure);
+  // Store code entry in the closure.
+  __ Addu(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+
+  Label install_optimized_code_and_tailcall;
+  __ bind(&install_optimized_code_and_tailcall);
+  __ sw(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(closure, entry, t1);
+
+  // Link the closure into the optimized function list.
+  // t0 : code entry
+  // a3 : native context
+  // a1 : closure
+  __ lw(t1,
+        ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ sw(t1, FieldMemOperand(closure, JSFunction::kNextFunctionLinkOffset));
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, t1, a0,
+                      kRAHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ sw(closure,
+        ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  // Save closure before the write barrier.
+  __ mov(t1, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, closure, a0,
+                            kRAHasNotBeenSaved, kDontSaveFPRegs);
+  __ mov(closure, t1);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ Jump(entry);
+
+  __ bind(&loop_bottom);
+  __ Subu(index, index,
+          Operand(Smi::FromInt(SharedFunctionInfo::kEntryLength)));
+  __ Branch(&loop_top, gt, index, Operand(Smi::FromInt(1)));
+
+  // We found neither literals nor code.
+  __ jmp(&gotta_call_runtime);
+
+  __ bind(&maybe_call_runtime);
+  __ pop(closure);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ lw(entry, FieldMemOperand(map, FixedArray::kHeaderSize +
+                                        SharedFunctionInfo::kSharedCodeIndex));
+  __ lw(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ Addu(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ jmp(&install_optimized_code_and_tailcall);
+
+  __ bind(&try_shared);
+  __ pop(new_target);
+  __ pop(argument_count);
+  // Is the full code valid?
+  __ lw(entry, FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ lw(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ lw(t1, FieldMemOperand(entry, Code::kFlagsOffset));
+  __ And(t1, t1, Operand(Code::KindField::kMask));
+  __ srl(t1, t1, Code::KindField::kShift);
+  __ Branch(&gotta_call_runtime_no_stack, eq, t1, Operand(Code::BUILTIN));
+  // Yes, install the full code.
+  __ Addu(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ sw(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(closure, entry, t1);
+  __ Jump(entry);
+
+  __ bind(&gotta_call_runtime);
+  __ pop(closure);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ bind(&gotta_call_runtime_no_stack);
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
 
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
@@ -1264,15 +1487,17 @@
   __ SmiUntag(t2);
   // Switch on the state.
   Label with_tos_register, unknown_state;
-  __ Branch(&with_tos_register,
-            ne, t2, Operand(FullCodeGenerator::NO_REGISTERS));
+  __ Branch(&with_tos_register, ne, t2,
+            Operand(static_cast<int>(Deoptimizer::BailoutState::NO_REGISTERS)));
   __ Ret(USE_DELAY_SLOT);
   // Safe to fill delay slot Addu will emit one instruction.
   __ Addu(sp, sp, Operand(1 * kPointerSize));  // Remove state.
 
   __ bind(&with_tos_register);
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), v0.code());
   __ lw(v0, MemOperand(sp, 1 * kPointerSize));
-  __ Branch(&unknown_state, ne, t2, Operand(FullCodeGenerator::TOS_REG));
+  __ Branch(&unknown_state, ne, t2,
+            Operand(static_cast<int>(Deoptimizer::BailoutState::TOS_REGISTER)));
 
   __ Ret(USE_DELAY_SLOT);
   // Safe to fill delay slot Addu will emit one instruction.
@@ -1478,28 +1703,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- a0    : argc
-  //  -- sp[0] : first argument (left-hand side)
-  //  -- sp[4] : receiver (right-hand side)
-  // -----------------------------------
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ lw(InstanceOfDescriptor::LeftRegister(),
-          MemOperand(fp, 2 * kPointerSize));  // Load left-hand side.
-    __ lw(InstanceOfDescriptor::RightRegister(),
-          MemOperand(fp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ DropAndRet(2);
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- a0    : argc
@@ -2469,6 +2672,30 @@
           RelocInfo::CODE_TARGET);
 }
 
+// static
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- a0 : requested object size (untagged)
+  //  -- ra : return address
+  // -----------------------------------
+  __ SmiTag(a0);
+  __ Push(a0);
+  __ Move(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
+}
+
+// static
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- a0 : requested object size (untagged)
+  //  -- ra : return address
+  // -----------------------------------
+  __ SmiTag(a0);
+  __ Move(a1, Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ Push(a0, a1);
+  __ Move(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
+}
 
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // State setup as expected by MacroAssembler::InvokePrologue.
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
index fd286fb..4084964 100644
--- a/src/mips/code-stubs-mips.cc
+++ b/src/mips/code-stubs-mips.cc
@@ -54,12 +54,6 @@
 }
 
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -72,11 +66,6 @@
 }
 
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(a0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -1465,128 +1454,6 @@
 }
 
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = a1;              // Object (lhs).
-  Register const function = a0;            // Function (rhs).
-  Register const object_map = a2;          // Map of {object}.
-  Register const function_map = a3;        // Map of {function}.
-  Register const function_prototype = t0;  // Prototype of {function}.
-  Register const scratch = t1;
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ lw(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ LoadRoot(at, Heap::kInstanceofCacheFunctionRootIndex);
-  __ Branch(&fast_case, ne, function, Operand(at));
-  __ LoadRoot(at, Heap::kInstanceofCacheMapRootIndex);
-  __ Branch(&fast_case, ne, object_map, Operand(at));
-  __ Ret(USE_DELAY_SLOT);
-  __ LoadRoot(v0, Heap::kInstanceofCacheAnswerRootIndex);  // In delay slot.
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ GetObjectType(function, function_map, scratch);
-  __ Branch(&slow_case, ne, scratch, Operand(JS_FUNCTION_TYPE));
-  __ Ret(USE_DELAY_SLOT);
-  __ LoadRoot(v0, Heap::kFalseValueRootIndex);  // In delay slot.
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ GetObjectType(function, function_map, scratch);
-  __ Branch(&slow_case, ne, scratch, Operand(JS_FUNCTION_TYPE));
-
-  // Go to the runtime if the function is not a constructor.
-  __ lbu(scratch, FieldMemOperand(function_map, Map::kBitFieldOffset));
-  __ And(at, scratch, Operand(1 << Map::kIsConstructor));
-  __ Branch(&slow_case, eq, at, Operand(zero_reg));
-
-  // Ensure that {function} has an instance prototype.
-  __ And(at, scratch, Operand(1 << Map::kHasNonInstancePrototype));
-  __ Branch(&slow_case, ne, at, Operand(zero_reg));
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ lw(function_prototype,
-        FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  __ GetObjectType(function_prototype, scratch, scratch);
-  __ Branch(&function_prototype_valid, ne, scratch, Operand(MAP_TYPE));
-  __ lw(function_prototype,
-        FieldMemOperand(function_prototype, Map::kPrototypeOffset));
-  __ bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Register const object_instance_type = function_map;
-  Register const map_bit_field = function_map;
-  Register const null = scratch;
-  Register const result = v0;
-
-  Label done, loop, fast_runtime_fallback;
-  __ LoadRoot(result, Heap::kTrueValueRootIndex);
-  __ LoadRoot(null, Heap::kNullValueRootIndex);
-  __ bind(&loop);
-
-  // Check if the object needs to be access checked.
-  __ lbu(map_bit_field, FieldMemOperand(object_map, Map::kBitFieldOffset));
-  __ And(map_bit_field, map_bit_field, Operand(1 << Map::kIsAccessCheckNeeded));
-  __ Branch(&fast_runtime_fallback, ne, map_bit_field, Operand(zero_reg));
-  // Check if the current object is a Proxy.
-  __ lbu(object_instance_type,
-         FieldMemOperand(object_map, Map::kInstanceTypeOffset));
-  __ Branch(&fast_runtime_fallback, eq, object_instance_type,
-            Operand(JS_PROXY_TYPE));
-
-  __ lw(object, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ Branch(&done, eq, object, Operand(function_prototype));
-  __ Branch(USE_DELAY_SLOT, &loop, ne, object, Operand(null));
-  __ lw(object_map,
-        FieldMemOperand(object, HeapObject::kMapOffset));  // In delay slot.
-  __ LoadRoot(result, Heap::kFalseValueRootIndex);
-  __ bind(&done);
-  __ Ret(USE_DELAY_SLOT);
-  __ StoreRoot(result,
-               Heap::kInstanceofCacheAnswerRootIndex);  // In delay slot.
-
-  // Found Proxy or access check needed: Call the runtime
-  __ bind(&fast_runtime_fallback);
-  __ Push(object, function_prototype);
-  // Invalidate the instanceof cache.
-  DCHECK(Smi::FromInt(0) == 0);
-  __ StoreRoot(zero_reg, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ Push(object, function);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
-
 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
   Label miss;
   Register receiver = LoadDescriptor::ReceiverRegister();
@@ -4037,8 +3904,8 @@
   __ bind(&not_array);
   __ LoadRoot(at, Heap::kmegamorphic_symbolRootIndex);
   __ Branch(&miss, ne, at, Operand(feedback));
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
                                                receiver, name, feedback,
                                                receiver_map, scratch1, t5);
@@ -4179,8 +4046,8 @@
   __ bind(&not_array);
   __ LoadRoot(at, Heap::kmegamorphic_symbolRootIndex);
   __ Branch(&miss, ne, feedback, Operand(at));
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(
       masm, Code::STORE_IC, code_flags, receiver, key, feedback, receiver_map,
       scratch1, scratch2);
@@ -4748,15 +4615,15 @@
   __ bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ sw(a2, MemOperand(v0, JSObject::kMapOffset));
+  __ sw(a2, FieldMemOperand(v0, JSObject::kMapOffset));
   __ LoadRoot(a3, Heap::kEmptyFixedArrayRootIndex);
-  __ sw(a3, MemOperand(v0, JSObject::kPropertiesOffset));
-  __ sw(a3, MemOperand(v0, JSObject::kElementsOffset));
+  __ sw(a3, FieldMemOperand(v0, JSObject::kPropertiesOffset));
+  __ sw(a3, FieldMemOperand(v0, JSObject::kElementsOffset));
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
-  __ Addu(a1, v0, Operand(JSObject::kHeaderSize));
+  __ Addu(a1, v0, Operand(JSObject::kHeaderSize - kHeapObjectTag));
 
   // ----------- S t a t e -------------
-  //  -- v0 : result (untagged)
+  //  -- v0 : result (tagged)
   //  -- a1 : result fields (untagged)
   //  -- t1 : result end (untagged)
   //  -- a2 : initial map
@@ -4774,11 +4641,7 @@
   {
     // Initialize all in-object fields with undefined.
     __ InitializeFieldsWithFiller(a1, t1, a0);
-
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ Ret(USE_DELAY_SLOT);
-    __ Addu(v0, v0, Operand(kHeapObjectTag));  // In delay slot.
+    __ Ret();
   }
   __ bind(&slack_tracking);
   {
@@ -4801,9 +4664,7 @@
     Label finalize;
     STATIC_ASSERT(Map::kSlackTrackingCounterEnd == 1);
     __ And(a3, a3, Operand(Map::ConstructionCounter::kMask));
-    __ Branch(USE_DELAY_SLOT, &finalize, eq, a3, Operand(zero_reg));
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ Addu(v0, v0, Operand(kHeapObjectTag));  // In delay slot.
+    __ Branch(&finalize, eq, a3, Operand(zero_reg));
     __ Ret();
 
     // Finalize the instance size.
@@ -4828,10 +4689,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(a2);
   }
-  STATIC_ASSERT(kHeapObjectTag == 1);
-  __ Subu(v0, v0, Operand(kHeapObjectTag));
   __ lbu(t1, FieldMemOperand(a2, Map::kInstanceSizeOffset));
   __ Lsa(t1, v0, t1, kPointerSizeLog2);
+  STATIC_ASSERT(kHeapObjectTag == 1);
+  __ Subu(t1, t1, Operand(kHeapObjectTag));
   __ jmp(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4850,19 +4711,19 @@
   // -----------------------------------
   __ AssertFunction(a1);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make a2 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ Branch(USE_DELAY_SLOT, &loop_entry);
-    __ mov(a2, fp);  // In delay slot.
-    __ bind(&loop);
+  // Make a2 point to the JavaScript frame.
+  __ mov(a2, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ lw(a2, MemOperand(a2, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ lw(a3, MemOperand(a2, StandardFrameConstants::kFunctionOffset));
-    __ Branch(&loop, ne, a1, Operand(a3));
+    __ Branch(&ok, eq, a1, Operand(a3));
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4893,7 +4754,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, v0, a0, a1, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, v0, a0, a1, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the rest parameter array in v0.
@@ -4935,7 +4796,7 @@
     Label allocate, done_allocate;
     __ li(a1, Operand(JSArray::kSize + FixedArray::kHeaderSize));
     __ Lsa(a1, a1, a0, kPointerSizeLog2 - 1);
-    __ Allocate(a1, v0, a3, t0, &allocate, TAG_OBJECT);
+    __ Allocate(a1, v0, a3, t0, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in v0.
@@ -4991,23 +4852,39 @@
   // -----------------------------------
   __ AssertFunction(a1);
 
+  // Make t0 point to the JavaScript frame.
+  __ mov(t0, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ lw(t0, MemOperand(t0, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ lw(a3, MemOperand(t0, StandardFrameConstants::kFunctionOffset));
+    __ Branch(&ok, eq, a1, Operand(a3));
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
+  }
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
   __ lw(a2, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
   __ lw(a2,
         FieldMemOperand(a2, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ Lsa(a3, fp, a2, kPointerSizeLog2 - 1);
+  __ Lsa(a3, t0, a2, kPointerSizeLog2 - 1);
   __ Addu(a3, a3, Operand(StandardFrameConstants::kCallerSPOffset));
 
   // a1 : function
   // a2 : number of parameters (tagged)
   // a3 : parameters pointer
+  // t0 : Javascript frame pointer
   // Registers used over whole function:
   //  t1 : arguments count (tagged)
   //  t2 : mapped parameter count (tagged)
 
   // Check if the calling frame is an arguments adaptor frame.
   Label adaptor_frame, try_allocate, runtime;
-  __ lw(t0, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
+  __ lw(t0, MemOperand(t0, StandardFrameConstants::kCallerFPOffset));
   __ lw(a0, MemOperand(t0, CommonFrameConstants::kContextOrFrameTypeOffset));
   __ Branch(&adaptor_frame, eq, a0,
             Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
@@ -5053,7 +4930,7 @@
   __ Addu(t5, t5, Operand(JSSloppyArgumentsObject::kSize));
 
   // Do the allocation of all three objects in one go.
-  __ Allocate(t5, v0, t5, t0, &runtime, TAG_OBJECT);
+  __ Allocate(t5, v0, t5, t0, &runtime, NO_ALLOCATION_FLAGS);
 
   // v0 = address of new object(s) (tagged)
   // a2 = argument count (smi-tagged)
@@ -5205,19 +5082,19 @@
   // -----------------------------------
   __ AssertFunction(a1);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make a2 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ Branch(USE_DELAY_SLOT, &loop_entry);
-    __ mov(a2, fp);  // In delay slot.
-    __ bind(&loop);
+  // Make a2 point to the JavaScript frame.
+  __ mov(a2, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ lw(a2, MemOperand(a2, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ lw(a3, MemOperand(a2, StandardFrameConstants::kFunctionOffset));
-    __ Branch(&loop, ne, a1, Operand(a3));
+    __ Branch(&ok, eq, a1, Operand(a3));
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -5255,7 +5132,7 @@
   Label allocate, done_allocate;
   __ li(a1, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
   __ Lsa(a1, a1, a0, kPointerSizeLog2 - 1);
-  __ Allocate(a1, v0, a3, t0, &allocate, TAG_OBJECT);
+  __ Allocate(a1, v0, a3, t0, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in v0.
@@ -5608,7 +5485,11 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
+
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
 
   // Save context, callee and call data.
   __ Push(context, callee, call_data);
@@ -5632,7 +5513,7 @@
 
   // Allocate the v8::Arguments structure in the arguments' space since
   // it's not controlled by GC.
-  const int kApiStackSpace = 4;
+  const int kApiStackSpace = 3;
 
   FrameScope frame_scope(masm, StackFrame::MANUAL);
   __ EnterExitFrame(false, kApiStackSpace);
@@ -5649,8 +5530,6 @@
   // FunctionCallbackInfo::length_ = argc
   __ li(at, Operand(argc()));
   __ sw(at, MemOperand(a0, 2 * kPointerSize));
-  // FunctionCallbackInfo::is_construct_call_ = 0
-  __ sw(zero_reg, MemOperand(a0, 3 * kPointerSize));
 
   ExternalReference thunk_ref =
       ExternalReference::invoke_function_callback(masm->isolate());
@@ -5667,8 +5546,9 @@
   }
   MemOperand return_value_operand(fp, return_value_offset * kPointerSize);
   int stack_space = 0;
-  int32_t stack_space_offset = 4 * kPointerSize;
+  int32_t stack_space_offset = 3 * kPointerSize;
   stack_space = argc() + FCA::kArgsLength + 1;
+  // TODO(adamk): Why are we clobbering this immediately?
   stack_space_offset = kInvalidStackOffset;
   CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, stack_space,
                            stack_space_offset, return_value_operand,
@@ -5677,15 +5557,44 @@
 
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- sp[0]                        : name
-  //  -- sp[4 .. (4 + kArgsLength*4)] : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- a2                           : api_function_address
-  // -----------------------------------
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
 
-  Register api_function_address = ApiGetterDescriptor::function_address();
-  DCHECK(api_function_address.is(a2));
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
+  Register scratch = t0;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
+
+  Register api_function_address = a2;
+
+  // Here and below +1 is for name() pushed after the args_ array.
+  typedef PropertyCallbackArguments PCA;
+  __ Subu(sp, sp, (PCA::kArgsLength + 1) * kPointerSize);
+  __ sw(receiver, MemOperand(sp, (PCA::kThisIndex + 1) * kPointerSize));
+  __ lw(scratch, FieldMemOperand(callback, AccessorInfo::kDataOffset));
+  __ sw(scratch, MemOperand(sp, (PCA::kDataIndex + 1) * kPointerSize));
+  __ LoadRoot(scratch, Heap::kUndefinedValueRootIndex);
+  __ sw(scratch, MemOperand(sp, (PCA::kReturnValueOffset + 1) * kPointerSize));
+  __ sw(scratch, MemOperand(sp, (PCA::kReturnValueDefaultValueIndex + 1) *
+                                    kPointerSize));
+  __ li(scratch, Operand(ExternalReference::isolate_address(isolate())));
+  __ sw(scratch, MemOperand(sp, (PCA::kIsolateIndex + 1) * kPointerSize));
+  __ sw(holder, MemOperand(sp, (PCA::kHolderIndex + 1) * kPointerSize));
+  // should_throw_on_error -> false
+  DCHECK(Smi::FromInt(0) == nullptr);
+  __ sw(zero_reg,
+        MemOperand(sp, (PCA::kShouldThrowOnErrorIndex + 1) * kPointerSize));
+  __ lw(scratch, FieldMemOperand(callback, AccessorInfo::kNameOffset));
+  __ sw(scratch, MemOperand(sp, 0 * kPointerSize));
 
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
@@ -5706,6 +5615,10 @@
   ExternalReference thunk_ref =
       ExternalReference::invoke_accessor_getter_callback(isolate());
 
+  __ lw(scratch, FieldMemOperand(callback, AccessorInfo::kJsGetterOffset));
+  __ lw(api_function_address,
+        FieldMemOperand(scratch, Foreign::kForeignAddressOffset));
+
   // +3 is to skip prolog, return address and name handle.
   MemOperand return_value_operand(
       fp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize);
@@ -5714,7 +5627,6 @@
                            return_value_operand, NULL);
 }
 
-
 #undef __
 
 }  // namespace internal
diff --git a/src/mips/codegen-mips.cc b/src/mips/codegen-mips.cc
index 1c6c169..63bbda3 100644
--- a/src/mips/codegen-mips.cc
+++ b/src/mips/codegen-mips.cc
@@ -733,13 +733,13 @@
   __ sll(scratch, length, 2);
   __ Addu(scratch, scratch, FixedDoubleArray::kHeaderSize);
   __ Allocate(scratch, array, t3, scratch2, &gc_required, DOUBLE_ALIGNMENT);
-  // array: destination FixedDoubleArray, not tagged as heap object
+  // array: destination FixedDoubleArray, tagged as heap object
 
   // Set destination FixedDoubleArray's length and map.
   __ LoadRoot(scratch2, Heap::kFixedDoubleArrayMapRootIndex);
-  __ sw(length, MemOperand(array, FixedDoubleArray::kLengthOffset));
+  __ sw(length, FieldMemOperand(array, FixedDoubleArray::kLengthOffset));
   // Update receiver's map.
-  __ sw(scratch2, MemOperand(array, HeapObject::kMapOffset));
+  __ sw(scratch2, FieldMemOperand(array, HeapObject::kMapOffset));
 
   __ sw(target_map, FieldMemOperand(receiver, HeapObject::kMapOffset));
   __ RecordWriteField(receiver,
@@ -751,7 +751,7 @@
                       OMIT_REMEMBERED_SET,
                       OMIT_SMI_CHECK);
   // Replace receiver's backing store with newly created FixedDoubleArray.
-  __ Addu(scratch1, array, Operand(kHeapObjectTag));
+  __ Addu(scratch1, array, Operand(kHeapObjectTag - kHeapObjectTag));
   __ sw(scratch1, FieldMemOperand(receiver, JSObject::kElementsOffset));
   __ RecordWriteField(receiver,
                       JSObject::kElementsOffset,
@@ -766,7 +766,8 @@
   // Prepare for conversion loop.
   __ Addu(scratch1, elements,
       Operand(FixedArray::kHeaderSize - kHeapObjectTag));
-  __ Addu(scratch3, array, Operand(FixedDoubleArray::kHeaderSize));
+  __ Addu(scratch3, array,
+          Operand(FixedDoubleArray::kHeaderSize - kHeapObjectTag));
   __ Lsa(array_end, scratch3, length, 2);
 
   // Repurpose registers no longer in use.
@@ -886,8 +887,8 @@
   // array: destination FixedArray, not tagged as heap object
   // Set destination FixedDoubleArray's length and map.
   __ LoadRoot(scratch, Heap::kFixedArrayMapRootIndex);
-  __ sw(length, MemOperand(array, FixedDoubleArray::kLengthOffset));
-  __ sw(scratch, MemOperand(array, HeapObject::kMapOffset));
+  __ sw(length, FieldMemOperand(array, FixedDoubleArray::kLengthOffset));
+  __ sw(scratch, FieldMemOperand(array, HeapObject::kMapOffset));
 
   // Prepare for conversion loop.
   Register src_elements = elements;
@@ -897,7 +898,8 @@
   __ Addu(src_elements, src_elements, Operand(
         FixedDoubleArray::kHeaderSize - kHeapObjectTag
         + Register::kExponentOffset));
-  __ Addu(dst_elements, array, Operand(FixedArray::kHeaderSize));
+  __ Addu(dst_elements, array,
+          Operand(FixedArray::kHeaderSize - kHeapObjectTag));
   __ Lsa(dst_end, dst_elements, dst_end, 1);
 
   // Allocating heap numbers in the loop below can fail and cause a jump to
@@ -912,8 +914,8 @@
   __ bind(&initialization_loop_entry);
   __ Branch(&initialization_loop, lt, dst_elements, Operand(dst_end));
 
-  __ Addu(dst_elements, array, Operand(FixedArray::kHeaderSize));
-  __ Addu(array, array, Operand(kHeapObjectTag));
+  __ Addu(dst_elements, array,
+          Operand(FixedArray::kHeaderSize - kHeapObjectTag));
   __ LoadRoot(heap_number_map, Heap::kHeapNumberMapRootIndex);
   // Using offsetted addresses.
   // dst_elements: begin of destination FixedArray element fields, not tagged
diff --git a/src/mips/constants-mips.h b/src/mips/constants-mips.h
index 4914251..f50a849 100644
--- a/src/mips/constants-mips.h
+++ b/src/mips/constants-mips.h
@@ -108,6 +108,19 @@
   (CpuFeatures::IsSupported(static_cast<CpuFeature>(check)))
 #endif
 
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+const uint32_t kMipsLwrOffset = 0;
+const uint32_t kMipsLwlOffset = 3;
+const uint32_t kMipsSwrOffset = 0;
+const uint32_t kMipsSwlOffset = 3;
+#elif defined(V8_TARGET_BIG_ENDIAN)
+const uint32_t kMipsLwrOffset = 3;
+const uint32_t kMipsLwlOffset = 0;
+const uint32_t kMipsSwrOffset = 3;
+const uint32_t kMipsSwlOffset = 0;
+#else
+#error Unknown endianness
+#endif
 
 #define __STDC_FORMAT_MACROS
 #include <inttypes.h>
@@ -409,6 +422,7 @@
   MOVZ = ((1U << 3) + 2),
   MOVN = ((1U << 3) + 3),
   BREAK = ((1U << 3) + 5),
+  SYNC = ((1U << 3) + 7),
 
   MFHI = ((2U << 3) + 0),
   CLZ_R6 = ((2U << 3) + 0),
@@ -620,7 +634,6 @@
   NULLSF = 0U
 };
 
-
 // ----- Emulated conditions.
 // On MIPS we use this enum to abstract from conditional branch instructions.
 // The 'U' prefix is used to specify unsigned comparisons.
@@ -928,8 +941,7 @@
       FunctionFieldToBitNumber(TEQ) | FunctionFieldToBitNumber(TNE) |
       FunctionFieldToBitNumber(MOVZ) | FunctionFieldToBitNumber(MOVN) |
       FunctionFieldToBitNumber(MOVCI) | FunctionFieldToBitNumber(SELEQZ_S) |
-      FunctionFieldToBitNumber(SELNEZ_S);
-
+      FunctionFieldToBitNumber(SELNEZ_S) | FunctionFieldToBitNumber(SYNC);
 
   // Get the encoding type of the instruction.
   inline Type InstructionType(TypeChecks checks = NORMAL) const;
diff --git a/src/mips/disasm-mips.cc b/src/mips/disasm-mips.cc
index 7e0a480..e1890ee 100644
--- a/src/mips/disasm-mips.cc
+++ b/src/mips/disasm-mips.cc
@@ -1191,6 +1191,9 @@
     case TNE:
       Format(instr, "tne     'rs, 'rt, code: 'code");
       break;
+    case SYNC:
+      Format(instr, "sync");
+      break;
     case MOVZ:
       Format(instr, "movz    'rd, 'rs, 'rt");
       break;
diff --git a/src/mips/interface-descriptors-mips.cc b/src/mips/interface-descriptors-mips.cc
index 06e3b77..30a7a74 100644
--- a/src/mips/interface-descriptors-mips.cc
+++ b/src/mips/interface-descriptors-mips.cc
@@ -46,16 +46,11 @@
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return a0; }
 
 
-const Register InstanceOfDescriptor::LeftRegister() { return a1; }
-const Register InstanceOfDescriptor::RightRegister() { return a0; }
-
-
 const Register StringCompareDescriptor::LeftRegister() { return a1; }
 const Register StringCompareDescriptor::RightRegister() { return a0; }
 
-
-const Register ApiGetterDescriptor::function_address() { return a2; }
-
+const Register ApiGetterDescriptor::HolderRegister() { return a0; }
+const Register ApiGetterDescriptor::CallbackRegister() { return a3; }
 
 const Register MathPowTaggedDescriptor::exponent() { return a2; }
 
@@ -68,6 +63,8 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return a0; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return a3; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return a0; }
+const Register HasPropertyDescriptor::KeyRegister() { return a3; }
 
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -247,13 +244,16 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {a0};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  // register state
+  // a0 -- number of arguments
+  // a1 -- function
+  // a2 -- allocation site with elements kind
+  Register registers[] = {a1, a2, a0};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
@@ -317,6 +317,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {a1};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -377,9 +382,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister,
-      kInterpreterDispatchTableRegister};
+      kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+      kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -414,6 +418,16 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      v0,  // the value to pass to the generator
+      a1,  // the JSGeneratorObject to resume
+      a2   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
index 7cbbd3a..3dbfd6b 100644
--- a/src/mips/macro-assembler-mips.cc
+++ b/src/mips/macro-assembler-mips.cc
@@ -1192,14 +1192,199 @@
 // ------------Pseudo-instructions-------------
 
 void MacroAssembler::Ulw(Register rd, const MemOperand& rs) {
-  lwr(rd, rs);
-  lwl(rd, MemOperand(rs.rm(), rs.offset() + 3));
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (IsMipsArchVariant(kMips32r6)) {
+    lw(rd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    if (is_int16(rs.offset() + kMipsLwrOffset) &&
+        is_int16(rs.offset() + kMipsLwlOffset)) {
+      if (!rd.is(rs.rm())) {
+        lwr(rd, MemOperand(rs.rm(), rs.offset() + kMipsLwrOffset));
+        lwl(rd, MemOperand(rs.rm(), rs.offset() + kMipsLwlOffset));
+      } else {
+        lwr(at, MemOperand(rs.rm(), rs.offset() + kMipsLwrOffset));
+        lwl(at, MemOperand(rs.rm(), rs.offset() + kMipsLwlOffset));
+        mov(rd, at);
+      }
+    } else {  // Offset > 16 bits, use multiple instructions to load.
+      LoadRegPlusOffsetToAt(rs);
+      lwr(rd, MemOperand(at, kMipsLwrOffset));
+      lwl(rd, MemOperand(at, kMipsLwlOffset));
+    }
+  }
 }
 
 
 void MacroAssembler::Usw(Register rd, const MemOperand& rs) {
-  swr(rd, rs);
-  swl(rd, MemOperand(rs.rm(), rs.offset() + 3));
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (IsMipsArchVariant(kMips32r6)) {
+    sw(rd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    if (is_int16(rs.offset() + kMipsSwrOffset) &&
+        is_int16(rs.offset() + kMipsSwlOffset)) {
+      swr(rd, MemOperand(rs.rm(), rs.offset() + kMipsSwrOffset));
+      swl(rd, MemOperand(rs.rm(), rs.offset() + kMipsSwlOffset));
+    } else {
+      LoadRegPlusOffsetToAt(rs);
+      swr(rd, MemOperand(at, kMipsSwrOffset));
+      swl(rd, MemOperand(at, kMipsSwlOffset));
+    }
+  }
+}
+
+void MacroAssembler::Ulh(Register rd, const MemOperand& rs) {
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (IsMipsArchVariant(kMips32r6)) {
+    lh(rd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    if (is_int16(rs.offset()) && is_int16(rs.offset() + 1)) {
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+      lbu(at, rs);
+      lb(rd, MemOperand(rs.rm(), rs.offset() + 1));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+      lbu(at, MemOperand(rs.rm(), rs.offset() + 1));
+      lb(rd, rs);
+#endif
+    } else {  // Offset > 16 bits, use multiple instructions to load.
+      LoadRegPlusOffsetToAt(rs);
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+      lb(rd, MemOperand(at, 1));
+      lbu(at, MemOperand(at, 0));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+      lb(rd, MemOperand(at, 0));
+      lbu(at, MemOperand(at, 1));
+#endif
+    }
+    sll(rd, rd, 8);
+    or_(rd, rd, at);
+  }
+}
+
+void MacroAssembler::Ulhu(Register rd, const MemOperand& rs) {
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (IsMipsArchVariant(kMips32r6)) {
+    lhu(rd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    if (is_int16(rs.offset()) && is_int16(rs.offset() + 1)) {
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+      lbu(at, rs);
+      lbu(rd, MemOperand(rs.rm(), rs.offset() + 1));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+      lbu(at, MemOperand(rs.rm(), rs.offset() + 1));
+      lbu(rd, rs);
+#endif
+    } else {  // Offset > 16 bits, use multiple instructions to load.
+      LoadRegPlusOffsetToAt(rs);
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+      lbu(rd, MemOperand(at, 1));
+      lbu(at, MemOperand(at, 0));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+      lbu(rd, MemOperand(at, 0));
+      lbu(at, MemOperand(at, 1));
+#endif
+    }
+    sll(rd, rd, 8);
+    or_(rd, rd, at);
+  }
+}
+
+void MacroAssembler::Ush(Register rd, const MemOperand& rs, Register scratch) {
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  DCHECK(!rs.rm().is(scratch));
+  DCHECK(!scratch.is(at));
+  if (IsMipsArchVariant(kMips32r6)) {
+    sh(rd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    MemOperand source = rs;
+    // If offset > 16 bits, load address to at with offset 0.
+    if (!is_int16(rs.offset()) || !is_int16(rs.offset() + 1)) {
+      LoadRegPlusOffsetToAt(rs);
+      source = MemOperand(at, 0);
+    }
+
+    if (!scratch.is(rd)) {
+      mov(scratch, rd);
+    }
+
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+    sb(scratch, source);
+    srl(scratch, scratch, 8);
+    sb(scratch, MemOperand(source.rm(), source.offset() + 1));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+    sb(scratch, MemOperand(source.rm(), source.offset() + 1));
+    srl(scratch, scratch, 8);
+    sb(scratch, source);
+#endif
+  }
+}
+
+void MacroAssembler::Ulwc1(FPURegister fd, const MemOperand& rs,
+                           Register scratch) {
+  if (IsMipsArchVariant(kMips32r6)) {
+    lwc1(fd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    Ulw(scratch, rs);
+    mtc1(scratch, fd);
+  }
+}
+
+void MacroAssembler::Uswc1(FPURegister fd, const MemOperand& rs,
+                           Register scratch) {
+  if (IsMipsArchVariant(kMips32r6)) {
+    swc1(fd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    mfc1(scratch, fd);
+    Usw(scratch, rs);
+  }
+}
+
+void MacroAssembler::Uldc1(FPURegister fd, const MemOperand& rs,
+                           Register scratch) {
+  DCHECK(!scratch.is(at));
+  if (IsMipsArchVariant(kMips32r6)) {
+    ldc1(fd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    Ulw(scratch, MemOperand(rs.rm(), rs.offset() + Register::kMantissaOffset));
+    mtc1(scratch, fd);
+    Ulw(scratch, MemOperand(rs.rm(), rs.offset() + Register::kExponentOffset));
+    Mthc1(scratch, fd);
+  }
+}
+
+void MacroAssembler::Usdc1(FPURegister fd, const MemOperand& rs,
+                           Register scratch) {
+  DCHECK(!scratch.is(at));
+  if (IsMipsArchVariant(kMips32r6)) {
+    sdc1(fd, rs);
+  } else {
+    DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kLoongson));
+    mfc1(scratch, fd);
+    Usw(scratch, MemOperand(rs.rm(), rs.offset() + Register::kMantissaOffset));
+    Mfhc1(scratch, fd);
+    Usw(scratch, MemOperand(rs.rm(), rs.offset() + Register::kExponentOffset));
+  }
 }
 
 
@@ -1354,6 +1539,252 @@
   addiu(sp, sp, stack_offset);
 }
 
+void MacroAssembler::AddPair(Register dst_low, Register dst_high,
+                             Register left_low, Register left_high,
+                             Register right_low, Register right_high) {
+  Label no_overflow;
+  Register kScratchReg = s3;
+  Register kScratchReg2 = s4;
+  // Add lower word
+  Addu(dst_low, left_low, right_low);
+  Addu(dst_high, left_high, right_high);
+  // Check for lower word unsigned overflow
+  Sltu(kScratchReg, dst_low, left_low);
+  Sltu(kScratchReg2, dst_low, right_low);
+  Or(kScratchReg, kScratchReg2, kScratchReg);
+  Branch(&no_overflow, eq, kScratchReg, Operand(zero_reg));
+  // Increment higher word if there was overflow
+  Addu(dst_high, dst_high, 0x1);
+  bind(&no_overflow);
+}
+
+void MacroAssembler::SubPair(Register dst_low, Register dst_high,
+                             Register left_low, Register left_high,
+                             Register right_low, Register right_high) {
+  Label no_overflow;
+  Register kScratchReg = s3;
+  // Subtract lower word
+  Subu(dst_low, left_low, right_low);
+  Subu(dst_high, left_high, right_high);
+  // Check for lower word unsigned underflow
+  Sltu(kScratchReg, left_low, right_low);
+  Branch(&no_overflow, eq, kScratchReg, Operand(zero_reg));
+  // Decrement higher word if there was underflow
+  Subu(dst_high, dst_high, 0x1);
+  bind(&no_overflow);
+}
+
+void MacroAssembler::ShlPair(Register dst_low, Register dst_high,
+                             Register src_low, Register src_high,
+                             Register shift) {
+  Label less_than_32;
+  Label zero_shift;
+  Label word_shift;
+  Label done;
+  Register kScratchReg = s3;
+  And(shift, shift, 0x3F);
+  li(kScratchReg, 0x20);
+  Branch(&less_than_32, lt, shift, Operand(kScratchReg));
+
+  Branch(&word_shift, eq, shift, Operand(kScratchReg));
+  // Shift more than 32
+  Subu(kScratchReg, shift, kScratchReg);
+  mov(dst_low, zero_reg);
+  sllv(dst_high, src_low, kScratchReg);
+  Branch(&done);
+  // Word shift
+  bind(&word_shift);
+  mov(dst_low, zero_reg);
+  mov(dst_high, src_low);
+  Branch(&done);
+
+  bind(&less_than_32);
+  // Check if zero shift
+  Branch(&zero_shift, eq, shift, Operand(zero_reg));
+  // Shift less than 32
+  Subu(kScratchReg, kScratchReg, shift);
+  sllv(dst_high, src_high, shift);
+  sllv(dst_low, src_low, shift);
+  srlv(kScratchReg, src_low, kScratchReg);
+  Or(dst_high, dst_high, kScratchReg);
+  Branch(&done);
+  // Zero shift
+  bind(&zero_shift);
+  mov(dst_low, src_low);
+  mov(dst_high, src_high);
+  bind(&done);
+}
+
+void MacroAssembler::ShlPair(Register dst_low, Register dst_high,
+                             Register src_low, Register src_high,
+                             uint32_t shift) {
+  Register kScratchReg = s3;
+  shift = shift & 0x3F;
+  if (shift < 32) {
+    if (shift == 0) {
+      mov(dst_low, src_low);
+      mov(dst_high, src_high);
+    } else {
+      sll(dst_high, src_high, shift);
+      sll(dst_low, src_low, shift);
+      shift = 32 - shift;
+      srl(kScratchReg, src_low, shift);
+      Or(dst_high, dst_high, kScratchReg);
+    }
+  } else {
+    if (shift == 32) {
+      mov(dst_low, zero_reg);
+      mov(dst_high, src_low);
+    } else {
+      shift = shift - 32;
+      mov(dst_low, zero_reg);
+      sll(dst_high, src_low, shift);
+    }
+  }
+}
+
+void MacroAssembler::ShrPair(Register dst_low, Register dst_high,
+                             Register src_low, Register src_high,
+                             Register shift) {
+  Label less_than_32;
+  Label zero_shift;
+  Label word_shift;
+  Label done;
+  Register kScratchReg = s3;
+  And(shift, shift, 0x3F);
+  li(kScratchReg, 0x20);
+  Branch(&less_than_32, lt, shift, Operand(kScratchReg));
+
+  Branch(&word_shift, eq, shift, Operand(kScratchReg));
+  // Shift more than 32
+  Subu(kScratchReg, shift, kScratchReg);
+  mov(dst_high, zero_reg);
+  srlv(dst_low, src_high, kScratchReg);
+  Branch(&done);
+  // Word shift
+  bind(&word_shift);
+  mov(dst_high, zero_reg);
+  mov(dst_low, src_high);
+  Branch(&done);
+
+  bind(&less_than_32);
+  // Check if zero shift
+  Branch(&zero_shift, eq, shift, Operand(zero_reg));
+  // Shift less than 32
+  Subu(kScratchReg, kScratchReg, shift);
+  srlv(dst_high, src_high, shift);
+  srlv(dst_low, src_low, shift);
+  sllv(kScratchReg, src_high, kScratchReg);
+  Or(dst_low, dst_low, kScratchReg);
+  Branch(&done);
+  // Zero shift
+  bind(&zero_shift);
+  mov(dst_low, src_low);
+  mov(dst_high, src_high);
+  bind(&done);
+}
+
+void MacroAssembler::ShrPair(Register dst_low, Register dst_high,
+                             Register src_low, Register src_high,
+                             uint32_t shift) {
+  Register kScratchReg = s3;
+  shift = shift & 0x3F;
+  if (shift < 32) {
+    if (shift == 0) {
+      mov(dst_low, src_low);
+      mov(dst_high, src_high);
+    } else {
+      srl(dst_high, src_high, shift);
+      srl(dst_low, src_low, shift);
+      shift = 32 - shift;
+      sll(kScratchReg, src_high, shift);
+      Or(dst_low, dst_low, kScratchReg);
+    }
+  } else {
+    if (shift == 32) {
+      mov(dst_high, zero_reg);
+      mov(dst_low, src_high);
+    } else {
+      shift = shift - 32;
+      mov(dst_high, zero_reg);
+      srl(dst_low, src_high, shift);
+    }
+  }
+}
+
+void MacroAssembler::SarPair(Register dst_low, Register dst_high,
+                             Register src_low, Register src_high,
+                             Register shift) {
+  Label less_than_32;
+  Label zero_shift;
+  Label word_shift;
+  Label done;
+  Register kScratchReg = s3;
+  Register kScratchReg2 = s4;
+  And(shift, shift, 0x3F);
+  li(kScratchReg, 0x20);
+  Branch(&less_than_32, lt, shift, Operand(kScratchReg));
+
+  Branch(&word_shift, eq, shift, Operand(kScratchReg));
+
+  // Shift more than 32
+  li(kScratchReg2, 0x1F);
+  Subu(kScratchReg, shift, kScratchReg);
+  srav(dst_high, src_high, kScratchReg2);
+  srav(dst_low, src_high, kScratchReg);
+  Branch(&done);
+  // Word shift
+  bind(&word_shift);
+  li(kScratchReg2, 0x1F);
+  srav(dst_high, src_high, kScratchReg2);
+  mov(dst_low, src_high);
+  Branch(&done);
+
+  bind(&less_than_32);
+  // Check if zero shift
+  Branch(&zero_shift, eq, shift, Operand(zero_reg));
+
+  // Shift less than 32
+  Subu(kScratchReg, kScratchReg, shift);
+  srav(dst_high, src_high, shift);
+  srlv(dst_low, src_low, shift);
+  sllv(kScratchReg, src_high, kScratchReg);
+  Or(dst_low, dst_low, kScratchReg);
+  Branch(&done);
+  // Zero shift
+  bind(&zero_shift);
+  mov(dst_low, src_low);
+  mov(dst_high, src_high);
+  bind(&done);
+}
+
+void MacroAssembler::SarPair(Register dst_low, Register dst_high,
+                             Register src_low, Register src_high,
+                             uint32_t shift) {
+  Register kScratchReg = s3;
+  shift = shift & 0x3F;
+  if (shift < 32) {
+    if (shift == 0) {
+      mov(dst_low, src_low);
+      mov(dst_high, src_high);
+    } else {
+      sra(dst_high, src_high, shift);
+      srl(dst_low, src_low, shift);
+      shift = 32 - shift;
+      sll(kScratchReg, src_high, shift);
+      Or(dst_low, dst_low, kScratchReg);
+    }
+  } else {
+    if (shift == 32) {
+      sra(dst_high, src_high, 31);
+      mov(dst_low, src_high);
+    } else {
+      shift = shift - 32;
+      sra(dst_high, src_high, 31);
+      sra(dst_low, src_high, shift);
+    }
+  }
+}
 
 void MacroAssembler::Ext(Register rt,
                          Register rs,
@@ -3654,6 +4085,7 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -3726,18 +4158,21 @@
   // to calculate the new top.
   Addu(result_end, result, Operand(object_size));
   Branch(gc_required, Ugreater, result_end, Operand(alloc_limit));
-  sw(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    Addu(result, result, Operand(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    sw(result_end, MemOperand(top_address));
   }
+
+  // Tag object.
+  Addu(result, result, Operand(kHeapObjectTag));
 }
 
 
 void MacroAssembler::Allocate(Register object_size, Register result,
                               Register result_end, Register scratch,
                               Label* gc_required, AllocationFlags flags) {
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -3810,6 +4245,7 @@
   } else {
     Addu(result_end, result, Operand(object_size));
   }
+
   Branch(gc_required, Ugreater, result_end, Operand(alloc_limit));
 
   // Update allocation top. result temporarily holds the new top.
@@ -3817,14 +4253,104 @@
     And(alloc_limit, result_end, Operand(kObjectAlignmentMask));
     Check(eq, kUnalignedAllocationInNewSpace, alloc_limit, Operand(zero_reg));
   }
-  sw(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    Addu(result, result, Operand(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    sw(result_end, MemOperand(top_address));
   }
+
+  // Tag object.
+  Addu(result, result, Operand(kHeapObjectTag));
 }
 
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register scratch1, Register scratch2,
+                                  AllocationFlags flags) {
+  DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK(!AreAliased(result, scratch1, scratch2, t9, at));
+
+  // Make object size into bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    object_size *= kPointerSize;
+  }
+  DCHECK_EQ(0, object_size & kObjectAlignmentMask);
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  // Set up allocation top address and allocation limit registers.
+  Register top_address = scratch1;
+  // This code stores a temporary value in t9.
+  Register result_end = scratch2;
+  li(top_address, Operand(allocation_top));
+  lw(result, MemOperand(top_address));
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    // Align the next allocation. Storing the filler map without checking top is
+    // safe in new-space because the limit of the heap is aligned there.
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    And(result_end, result, Operand(kDoubleAlignmentMask));
+    Label aligned;
+    Branch(&aligned, eq, result_end, Operand(zero_reg));
+    li(result_end, Operand(isolate()->factory()->one_pointer_filler_map()));
+    sw(result_end, MemOperand(result));
+    Addu(result, result, Operand(kDoubleSize / 2));
+    bind(&aligned);
+  }
+
+  Addu(result_end, result, Operand(object_size));
+
+  // The top pointer is not updated for allocation folding dominators.
+  sw(result_end, MemOperand(top_address));
+
+  Addu(result, result, Operand(kHeapObjectTag));
+}
+
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, Register scratch,
+                                  AllocationFlags flags) {
+  // |object_size| and |result_end| may overlap if the DOUBLE_ALIGNMENT flag
+  // is not specified. Other registers must not overlap.
+  DCHECK(!AreAliased(object_size, result, scratch, t9, at));
+  DCHECK(!AreAliased(result_end, result, scratch, t9, at));
+  DCHECK((flags & DOUBLE_ALIGNMENT) == 0 || !object_size.is(result_end));
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  // Set up allocation top address and allocation limit registers.
+  Register top_address = scratch;
+  // This code stores a temporary value in t9.
+  li(top_address, Operand(allocation_top));
+  lw(result, MemOperand(top_address));
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    // Align the next allocation. Storing the filler map without checking top is
+    // safe in new-space because the limit of the heap is aligned there.
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    And(result_end, result, Operand(kDoubleAlignmentMask));
+    Label aligned;
+    Branch(&aligned, eq, result_end, Operand(zero_reg));
+    li(result_end, Operand(isolate()->factory()->one_pointer_filler_map()));
+    sw(result_end, MemOperand(result));
+    Addu(result, result, Operand(kDoubleSize / 2));
+    bind(&aligned);
+  }
+
+  // Calculate new top and bail out if new space is exhausted. Use result
+  // to calculate the new top. Object size may be in words so a shift is
+  // required to get the number of bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    Lsa(result_end, result, object_size, kPointerSizeLog2);
+  } else {
+    Addu(result_end, result, Operand(object_size));
+  }
+
+  // The top pointer is not updated for allocation folding dominators.
+  sw(result_end, MemOperand(top_address));
+
+  Addu(result, result, Operand(kHeapObjectTag));
+}
 
 void MacroAssembler::AllocateTwoByteString(Register result,
                                            Register length,
@@ -3841,12 +4367,8 @@
   And(scratch1, scratch1, Operand(~kObjectAlignmentMask));
 
   // Allocate two-byte string in new space.
-  Allocate(scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result,
@@ -3869,12 +4391,8 @@
   And(scratch1, scratch1, Operand(~kObjectAlignmentMask));
 
   // Allocate one-byte string in new space.
-  Allocate(scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result, length, Heap::kOneByteStringMapRootIndex,
@@ -3888,7 +4406,7 @@
                                                Register scratch2,
                                                Label* gc_required) {
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
   InitializeNewString(result,
                       length,
                       Heap::kConsStringMapRootIndex,
@@ -3901,12 +4419,8 @@
                                                Register scratch1,
                                                Register scratch2,
                                                Label* gc_required) {
-  Allocate(ConsString::kSize,
-           result,
-           scratch1,
-           scratch2,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kConsOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -3919,7 +4433,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result,
                       length,
@@ -3935,7 +4449,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kSlicedOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -3961,12 +4475,11 @@
                                         Register scratch2,
                                         Register heap_number_map,
                                         Label* need_gc,
-                                        TaggingMode tagging_mode,
                                         MutableMode mode) {
   // Allocate an object in the heap for the heap number and tag it as a heap
   // object.
   Allocate(HeapNumber::kSize, result, scratch1, scratch2, need_gc,
-           tagging_mode == TAG_RESULT ? TAG_OBJECT : NO_ALLOCATION_FLAGS);
+           NO_ALLOCATION_FLAGS);
 
   Heap::RootListIndex map_index = mode == MUTABLE
       ? Heap::kMutableHeapNumberMapRootIndex
@@ -3974,11 +4487,7 @@
   AssertIsRoot(heap_number_map, map_index);
 
   // Store heap number map in the allocated object.
-  if (tagging_mode == TAG_RESULT) {
-    sw(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
-  } else {
-    sw(heap_number_map, MemOperand(result, HeapObject::kMapOffset));
-  }
+  sw(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
 }
 
 
@@ -4002,7 +4511,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch1, scratch2);
@@ -5615,6 +6125,16 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    STATIC_ASSERT(kSmiTag == 0);
+    SmiTst(object, t8);
+    Check(ne, kOperandIsASmiAndNotAGeneratorObject, t8, Operand(zero_reg));
+    GetObjectType(object, t8, t8);
+    Check(eq, kOperandIsNotAGeneratorObject, t8,
+          Operand(JS_GENERATOR_OBJECT_TYPE));
+  }
+}
 
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
@@ -6089,7 +6609,7 @@
                                                      Label* no_memento_found) {
   Label map_check;
   Label top_check;
-  ExternalReference new_space_allocation_top =
+  ExternalReference new_space_allocation_top_adr =
       ExternalReference::new_space_allocation_top_address(isolate());
   const int kMementoMapOffset = JSArray::kSize - kHeapObjectTag;
   const int kMementoEndOffset = kMementoMapOffset + AllocationMemento::kSize;
@@ -6099,7 +6619,9 @@
   // If the object is in new space, we need to check whether it is on the same
   // page as the current top.
   Addu(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
-  Xor(scratch_reg, scratch_reg, Operand(new_space_allocation_top));
+  li(at, Operand(new_space_allocation_top_adr));
+  lw(at, MemOperand(at));
+  Xor(scratch_reg, scratch_reg, Operand(at));
   And(scratch_reg, scratch_reg, Operand(~Page::kPageAlignmentMask));
   Branch(&top_check, eq, scratch_reg, Operand(zero_reg));
   // The object is on a different page than allocation top. Bail out if the
@@ -6115,7 +6637,7 @@
   // we are below top.
   bind(&top_check);
   Addu(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
-  li(at, Operand(new_space_allocation_top));
+  li(at, Operand(new_space_allocation_top_adr));
   lw(at, MemOperand(at));
   Branch(no_memento_found, gt, scratch_reg, Operand(at));
   // Memento map check.
diff --git a/src/mips/macro-assembler-mips.h b/src/mips/macro-assembler-mips.h
index 2f02865..2417025 100644
--- a/src/mips/macro-assembler-mips.h
+++ b/src/mips/macro-assembler-mips.h
@@ -18,8 +18,8 @@
 const Register kReturnRegister2 = {Register::kCode_a0};
 const Register kJSFunctionRegister = {Register::kCode_a1};
 const Register kContextRegister = {Register::kCpRegister};
+const Register kAllocateSizeRegister = {Register::kCode_a0};
 const Register kInterpreterAccumulatorRegister = {Register::kCode_v0};
-const Register kInterpreterRegisterFileRegister = {Register::kCode_t3};
 const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_t4};
 const Register kInterpreterBytecodeArrayRegister = {Register::kCode_t5};
 const Register kInterpreterDispatchTableRegister = {Register::kCode_t6};
@@ -555,6 +555,15 @@
   void Allocate(Register object_size, Register result, Register result_new,
                 Register scratch, Label* gc_required, AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(int object_size, Register result, Register scratch1,
+                    Register scratch2, AllocationFlags flags);
+
+  void FastAllocate(Register object_size, Register result, Register result_new,
+                    Register scratch, AllocationFlags flags);
+
   void AllocateTwoByteString(Register result,
                              Register length,
                              Register scratch1,
@@ -589,7 +598,6 @@
                           Register scratch2,
                           Register heap_number_map,
                           Label* gc_required,
-                          TaggingMode tagging_mode = TAG_RESULT,
                           MutableMode mode = IMMUTABLE);
   void AllocateHeapNumberWithValue(Register result,
                                    FPURegister value,
@@ -681,9 +689,19 @@
 
   void mov(Register rd, Register rt) { or_(rd, rt, zero_reg); }
 
+  void Ulh(Register rd, const MemOperand& rs);
+  void Ulhu(Register rd, const MemOperand& rs);
+  void Ush(Register rd, const MemOperand& rs, Register scratch);
+
   void Ulw(Register rd, const MemOperand& rs);
   void Usw(Register rd, const MemOperand& rs);
 
+  void Ulwc1(FPURegister fd, const MemOperand& rs, Register scratch);
+  void Uswc1(FPURegister fd, const MemOperand& rs, Register scratch);
+
+  void Uldc1(FPURegister fd, const MemOperand& rs, Register scratch);
+  void Usdc1(FPURegister fd, const MemOperand& rs, Register scratch);
+
   // Load int32 in the rd register.
   void li(Register rd, Operand j, LiFlags mode = OPTIMIZE_SIZE);
   inline void li(Register rd, int32_t j, LiFlags mode = OPTIMIZE_SIZE) {
@@ -809,6 +827,31 @@
   void Ins(Register rt, Register rs, uint16_t pos, uint16_t size);
   void Ext(Register rt, Register rs, uint16_t pos, uint16_t size);
 
+  // Int64Lowering instructions
+  void AddPair(Register dst_low, Register dst_high, Register left_low,
+               Register left_high, Register right_low, Register right_high);
+
+  void SubPair(Register dst_low, Register dst_high, Register left_low,
+               Register left_high, Register right_low, Register right_high);
+
+  void ShlPair(Register dst_low, Register dst_high, Register src_low,
+               Register src_high, Register shift);
+
+  void ShlPair(Register dst_low, Register dst_high, Register src_low,
+               Register src_high, uint32_t shift);
+
+  void ShrPair(Register dst_low, Register dst_high, Register src_low,
+               Register src_high, Register shift);
+
+  void ShrPair(Register dst_low, Register dst_high, Register src_low,
+               Register src_high, uint32_t shift);
+
+  void SarPair(Register dst_low, Register dst_high, Register src_low,
+               Register src_high, Register shift);
+
+  void SarPair(Register dst_low, Register dst_high, Register src_low,
+               Register src_high, uint32_t shift);
+
   // ---------------------------------------------------------------------------
   // FPU macros. These do not handle special cases like NaN or +- inf.
 
@@ -1546,6 +1589,10 @@
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
   void AssertReceiver(Register object);
 
diff --git a/src/mips/simulator-mips.cc b/src/mips/simulator-mips.cc
index e37b6e1..f8dc515 100644
--- a/src/mips/simulator-mips.cc
+++ b/src/mips/simulator-mips.cc
@@ -586,7 +586,7 @@
         }
 
         while (cur < end) {
-          PrintF("  0x%08x:  0x%08x %10d",
+          PrintF("  0x%08" PRIxPTR ":  0x%08x %10d",
                  reinterpret_cast<intptr_t>(cur), *cur, *cur);
           HeapObject* obj = reinterpret_cast<HeapObject*>(*cur);
           int value = *cur;
@@ -649,8 +649,8 @@
 
         while (cur < end) {
           dasm.InstructionDecode(buffer, cur);
-          PrintF("  0x%08x  %s\n",
-              reinterpret_cast<intptr_t>(cur), buffer.start());
+          PrintF("  0x%08" PRIxPTR "  %s\n", reinterpret_cast<intptr_t>(cur),
+                 buffer.start());
           cur += Instruction::kInstrSize;
         }
       } else if (strcmp(cmd, "gdb") == 0) {
@@ -771,8 +771,8 @@
 
         while (cur < end) {
           dasm.InstructionDecode(buffer, cur);
-          PrintF("  0x%08x  %s\n",
-                 reinterpret_cast<intptr_t>(cur), buffer.start());
+          PrintF("  0x%08" PRIxPTR "  %s\n", reinterpret_cast<intptr_t>(cur),
+                 buffer.start());
           cur += Instruction::kInstrSize;
         }
       } else if ((strcmp(cmd, "h") == 0) || (strcmp(cmd, "help") == 0)) {
@@ -1786,12 +1786,12 @@
 int Simulator::ReadW(int32_t addr, Instruction* instr) {
   if (addr >=0 && addr < 0x400) {
     // This has to be a NULL-dereference, drop into debugger.
-    PrintF("Memory read from bad address: 0x%08x, pc=0x%08x\n",
-           addr, reinterpret_cast<intptr_t>(instr));
+    PrintF("Memory read from bad address: 0x%08x, pc=0x%08" PRIxPTR "\n", addr,
+           reinterpret_cast<intptr_t>(instr));
     MipsDebugger dbg(this);
     dbg.Debug();
   }
-  if ((addr & kPointerAlignmentMask) == 0) {
+  if ((addr & kPointerAlignmentMask) == 0 || IsMipsArchVariant(kMips32r6)) {
     intptr_t* ptr = reinterpret_cast<intptr_t*>(addr);
     TraceMemRd(addr, static_cast<int32_t>(*ptr));
     return *ptr;
@@ -1808,12 +1808,12 @@
 void Simulator::WriteW(int32_t addr, int value, Instruction* instr) {
   if (addr >= 0 && addr < 0x400) {
     // This has to be a NULL-dereference, drop into debugger.
-    PrintF("Memory write to bad address: 0x%08x, pc=0x%08x\n",
-           addr, reinterpret_cast<intptr_t>(instr));
+    PrintF("Memory write to bad address: 0x%08x, pc=0x%08" PRIxPTR "\n", addr,
+           reinterpret_cast<intptr_t>(instr));
     MipsDebugger dbg(this);
     dbg.Debug();
   }
-  if ((addr & kPointerAlignmentMask) == 0) {
+  if ((addr & kPointerAlignmentMask) == 0 || IsMipsArchVariant(kMips32r6)) {
     intptr_t* ptr = reinterpret_cast<intptr_t*>(addr);
     TraceMemWr(addr, value, WORD);
     *ptr = value;
@@ -1828,7 +1828,7 @@
 
 
 double Simulator::ReadD(int32_t addr, Instruction* instr) {
-  if ((addr & kDoubleAlignmentMask) == 0) {
+  if ((addr & kDoubleAlignmentMask) == 0 || IsMipsArchVariant(kMips32r6)) {
     double* ptr = reinterpret_cast<double*>(addr);
     return *ptr;
   }
@@ -1841,7 +1841,7 @@
 
 
 void Simulator::WriteD(int32_t addr, double value, Instruction* instr) {
-  if ((addr & kDoubleAlignmentMask) == 0) {
+  if ((addr & kDoubleAlignmentMask) == 0 || IsMipsArchVariant(kMips32r6)) {
     double* ptr = reinterpret_cast<double*>(addr);
     *ptr = value;
     return;
@@ -1854,7 +1854,7 @@
 
 
 uint16_t Simulator::ReadHU(int32_t addr, Instruction* instr) {
-  if ((addr & 1) == 0) {
+  if ((addr & 1) == 0 || IsMipsArchVariant(kMips32r6)) {
     uint16_t* ptr = reinterpret_cast<uint16_t*>(addr);
     TraceMemRd(addr, static_cast<int32_t>(*ptr));
     return *ptr;
@@ -1868,7 +1868,7 @@
 
 
 int16_t Simulator::ReadH(int32_t addr, Instruction* instr) {
-  if ((addr & 1) == 0) {
+  if ((addr & 1) == 0 || IsMipsArchVariant(kMips32r6)) {
     int16_t* ptr = reinterpret_cast<int16_t*>(addr);
     TraceMemRd(addr, static_cast<int32_t>(*ptr));
     return *ptr;
@@ -1882,7 +1882,7 @@
 
 
 void Simulator::WriteH(int32_t addr, uint16_t value, Instruction* instr) {
-  if ((addr & 1) == 0) {
+  if ((addr & 1) == 0 || IsMipsArchVariant(kMips32r6)) {
     uint16_t* ptr = reinterpret_cast<uint16_t*>(addr);
     TraceMemWr(addr, value, HALF);
     *ptr = value;
@@ -1896,7 +1896,7 @@
 
 
 void Simulator::WriteH(int32_t addr, int16_t value, Instruction* instr) {
-  if ((addr & 1) == 0) {
+  if ((addr & 1) == 0 || IsMipsArchVariant(kMips32r6)) {
     int16_t* ptr = reinterpret_cast<int16_t*>(addr);
     TraceMemWr(addr, value, HALF);
     *ptr = value;
@@ -1953,7 +1953,7 @@
 
 // Unsupported instructions use Format to print an error and stop execution.
 void Simulator::Format(Instruction* instr, const char* format) {
-  PrintF("Simulator found unsupported instruction:\n 0x%08x: %s\n",
+  PrintF("Simulator found unsupported instruction:\n 0x%08" PRIxPTR ": %s\n",
          reinterpret_cast<intptr_t>(instr), format);
   UNIMPLEMENTED_MIPS();
 }
@@ -3731,6 +3731,9 @@
     case TNE:
       do_interrupt = rs() != rt();
       break;
+    case SYNC:
+      // TODO(palfia): Ignore sync instruction for now.
+      break;
     // Conditional moves.
     case MOVN:
       if (rt()) {
@@ -4413,8 +4416,9 @@
       UNSUPPORTED();
   }
   if (::v8::internal::FLAG_trace_sim) {
-    PrintF("  0x%08x  %-44s   %s\n", reinterpret_cast<intptr_t>(instr),
-           buffer.start(), trace_buf_.start());
+    PrintF("  0x%08" PRIxPTR "  %-44s   %s\n",
+           reinterpret_cast<intptr_t>(instr), buffer.start(),
+           trace_buf_.start());
   }
   if (!pc_modified_) {
     set_register(pc, reinterpret_cast<int32_t>(instr) +
diff --git a/src/mips64/assembler-mips64-inl.h b/src/mips64/assembler-mips64-inl.h
index dec58e8..7903094 100644
--- a/src/mips64/assembler-mips64-inl.h
+++ b/src/mips64/assembler-mips64-inl.h
@@ -102,11 +102,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Assembler::target_address_at(pc_, host_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) ||
          IsRuntimeEntry(rmode_) ||
@@ -158,19 +153,6 @@
   }
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Assembler::set_target_address_at(isolate_, pc_, host_, updated_reference,
-                                   icache_flush_mode);
-}
-
 Address Assembler::target_address_from_return_address(Address pc) {
   return pc - kCallTargetAddressOffset;
 }
@@ -362,7 +344,7 @@
   }
 }
 
-
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/mips64/assembler-mips64.cc b/src/mips64/assembler-mips64.cc
index 5a8dd2c..2b8bc72 100644
--- a/src/mips64/assembler-mips64.cc
+++ b/src/mips64/assembler-mips64.cc
@@ -167,6 +167,43 @@
   return false;
 }
 
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Assembler::target_address_at(pc_, host_);
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return static_cast<uint32_t>(
+      reinterpret_cast<intptr_t>((Assembler::target_address_at(pc_, host_))));
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_)) {
+    Address updated_memory_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_memory_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_memory_reference &&
+           updated_memory_reference < new_base + new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, updated_memory_reference, icache_flush_mode);
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, reinterpret_cast<Address>(updated_size_reference),
+        icache_flush_mode);
+  } else {
+    UNREACHABLE();
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Implementation of Operand and MemOperand.
@@ -2001,11 +2038,15 @@
 
 
 void Assembler::lwl(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(kArchVariant == kMips64r2);
   GenInstrImmediate(LWL, rs.rm(), rd, rs.offset_);
 }
 
 
 void Assembler::lwr(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(kArchVariant == kMips64r2);
   GenInstrImmediate(LWR, rs.rm(), rd, rs.offset_);
 }
 
@@ -2041,11 +2082,15 @@
 
 
 void Assembler::swl(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(kArchVariant == kMips64r2);
   GenInstrImmediate(SWL, rs.rm(), rd, rs.offset_);
 }
 
 
 void Assembler::swr(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(kArchVariant == kMips64r2);
   GenInstrImmediate(SWR, rs.rm(), rd, rs.offset_);
 }
 
@@ -2084,21 +2129,29 @@
 
 
 void Assembler::ldl(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(kArchVariant == kMips64r2);
   GenInstrImmediate(LDL, rs.rm(), rd, rs.offset_);
 }
 
 
 void Assembler::ldr(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(kArchVariant == kMips64r2);
   GenInstrImmediate(LDR, rs.rm(), rd, rs.offset_);
 }
 
 
 void Assembler::sdl(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(kArchVariant == kMips64r2);
   GenInstrImmediate(SDL, rs.rm(), rd, rs.offset_);
 }
 
 
 void Assembler::sdr(Register rd, const MemOperand& rs) {
+  DCHECK(is_int16(rs.offset_));
+  DCHECK(kArchVariant == kMips64r2);
   GenInstrImmediate(SDR, rs.rm(), rd, rs.offset_);
 }
 
@@ -2255,6 +2308,10 @@
   emit(instr);
 }
 
+void Assembler::sync() {
+  Instr sync_instr = SPECIAL | SYNC;
+  emit(sync_instr);
+}
 
 // Move from HI/LO register.
 
@@ -3208,6 +3265,7 @@
     data = reinterpret_cast<uint64_t>(buffer_ + label->pos());
   } else {
     data = jump_address(label);
+    unbound_labels_count_++;
     internal_reference_positions_.insert(label->pos());
   }
   RecordRelocInfo(RelocInfo::INTERNAL_REFERENCE);
diff --git a/src/mips64/assembler-mips64.h b/src/mips64/assembler-mips64.h
index de09366..f93bc48 100644
--- a/src/mips64/assembler-mips64.h
+++ b/src/mips64/assembler-mips64.h
@@ -63,6 +63,8 @@
   V(f16) V(f17) V(f18) V(f19) V(f20) V(f21) V(f22) V(f23) \
   V(f24) V(f25) V(f26) V(f27) V(f28) V(f29) V(f30) V(f31)
 
+#define FLOAT_REGISTERS DOUBLE_REGISTERS
+
 #define ALLOCATABLE_DOUBLE_REGISTERS(V)                   \
   V(f0)  V(f2)  V(f4)  V(f6)  V(f8)  V(f10) V(f12) V(f14) \
   V(f16) V(f18) V(f20) V(f22) V(f24) V(f26)
@@ -154,7 +156,7 @@
 Register ToRegister(int num);
 
 // Coprocessor register.
-struct DoubleRegister {
+struct FPURegister {
   enum Code {
 #define REGISTER_CODE(R) kCode_##R,
     DOUBLE_REGISTERS(REGISTER_CODE)
@@ -174,21 +176,21 @@
   const char* ToString();
   bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
-  bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
-  DoubleRegister low() const {
+  bool is(FPURegister reg) const { return reg_code == reg.reg_code; }
+  FPURegister low() const {
     // TODO(plind): Create DCHECK for FR=0 mode. This usage suspect for FR=1.
     // Find low reg of a Double-reg pair, which is the reg itself.
     DCHECK(reg_code % 2 == 0);  // Specified Double reg must be even.
-    DoubleRegister reg;
+    FPURegister reg;
     reg.reg_code = reg_code;
     DCHECK(reg.is_valid());
     return reg;
   }
-  DoubleRegister high() const {
+  FPURegister high() const {
     // TODO(plind): Create DCHECK for FR=0 mode. This usage illegal in FR=1.
     // Find high reg of a Doubel-reg pair, which is reg + 1.
     DCHECK(reg_code % 2 == 0);  // Specified Double reg must be even.
-    DoubleRegister reg;
+    FPURegister reg;
     reg.reg_code = reg_code + 1;
     DCHECK(reg.is_valid());
     return reg;
@@ -203,8 +205,8 @@
     return 1 << reg_code;
   }
 
-  static DoubleRegister from_code(int code) {
-    DoubleRegister r = {code};
+  static FPURegister from_code(int code) {
+    FPURegister r = {code};
     return r;
   }
   void setcode(int f) {
@@ -229,8 +231,12 @@
 // but it is not in common use. Someday we will want to support this in v8.)
 
 // For O32 ABI, Floats and Doubles refer to same set of 32 32-bit registers.
-typedef DoubleRegister FPURegister;
-typedef DoubleRegister FloatRegister;
+typedef FPURegister FloatRegister;
+
+typedef FPURegister DoubleRegister;
+
+// TODO(mips64) Define SIMD registers.
+typedef FPURegister Simd128Register;
 
 const DoubleRegister no_freg = {-1};
 
@@ -306,9 +312,6 @@
 const FPUControlRegister no_fpucreg = { kInvalidFPUControlRegister };
 const FPUControlRegister FCSR = { kFCSRRegister };
 
-// TODO(mips64) Define SIMD registers.
-typedef DoubleRegister Simd128Register;
-
 // -----------------------------------------------------------------------------
 // Machine instruction Operands.
 const int kSmiShift = kSmiTagSize + kSmiShiftSize;
@@ -849,6 +852,9 @@
   void teq(Register rs, Register rt, uint16_t code);
   void tne(Register rs, Register rt, uint16_t code);
 
+  // Memory barrier instruction.
+  void sync();
+
   // Move from HI/LO register.
   void mfhi(Register rd);
   void mflo(Register rd);
@@ -1099,7 +1105,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   static int RelocateInternalReference(RelocInfo::Mode rmode, byte* pc,
                                        intptr_t pc_delta);
@@ -1212,11 +1218,16 @@
 
   bool IsPrevInstrCompactBranch() { return prev_instr_compact_branch_; }
 
+  inline int UnboundLabelsCount() { return unbound_labels_count_; }
+
  protected:
   // Load Scaled Address instructions.
   void lsa(Register rd, Register rt, Register rs, uint8_t sa);
   void dlsa(Register rd, Register rt, Register rs, uint8_t sa);
 
+  // Helpers.
+  void LoadRegPlusOffsetToAt(const MemOperand& src);
+
   // Relocation for a type-recording IC has the AST id added to it.  This
   // member variable is a way to pass the information from the call site to
   // the relocation info.
@@ -1413,9 +1424,6 @@
   void GenInstrJump(Opcode opcode,
                      uint32_t address);
 
-  // Helpers.
-  void LoadRegPlusOffsetToAt(const MemOperand& src);
-
   // Labels.
   void print(Label* L);
   void bind_to(Label* L, int pos);
diff --git a/src/mips64/builtins-mips64.cc b/src/mips64/builtins-mips64.cc
index b55b77c..7a0d81a 100644
--- a/src/mips64/builtins-mips64.cc
+++ b/src/mips64/builtins-mips64.cc
@@ -592,16 +592,9 @@
     // a0: number of arguments
     // a1: constructor function
     // a3: new target
-    if (is_api_function) {
-      __ ld(cp, FieldMemOperand(a1, JSFunction::kContextOffset));
-      Handle<Code> code =
-          masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ Call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(a0);
-      __ InvokeFunction(a1, a3, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+    ParameterCount actual(a0);
+    __ InvokeFunction(a1, a3, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -690,6 +683,140 @@
   Generate_JSConstructStubHelper(masm, false, false, true);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- v0 : the value to pass to the generator
+  //  -- a1 : the JSGeneratorObject to resume
+  //  -- a2 : the resume mode (tagged)
+  //  -- ra : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(a1);
+
+  // Store input value into generator object.
+  __ sd(v0, FieldMemOperand(a1, JSGeneratorObject::kInputOffset));
+  __ RecordWriteField(a1, JSGeneratorObject::kInputOffset, v0, a3,
+                      kRAHasNotBeenSaved, kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ sd(a2, FieldMemOperand(a1, JSGeneratorObject::kResumeModeOffset));
+
+  // Load suspended function and context.
+  __ ld(cp, FieldMemOperand(a1, JSGeneratorObject::kContextOffset));
+  __ ld(a4, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  __ li(t1, Operand(step_in_enabled));
+  __ lb(t1, MemOperand(t1));
+  __ Branch(&skip_flooding, eq, t1, Operand(zero_reg));
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(a1, a2, a4);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(a1, a2);
+    __ ld(a4, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Push receiver.
+  __ ld(a5, FieldMemOperand(a1, JSGeneratorObject::kReceiverOffset));
+  __ Push(a5);
+
+  // ----------- S t a t e -------------
+  //  -- a1    : the JSGeneratorObject to resume
+  //  -- a2    : the resume mode (tagged)
+  //  -- a4    : generator function
+  //  -- cp    : generator context
+  //  -- ra    : return address
+  //  -- sp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ ld(a3, FieldMemOperand(a4, JSFunction::kSharedFunctionInfoOffset));
+  __ lw(a3,
+        FieldMemOperand(a3, SharedFunctionInfo::kFormalParameterCountOffset));
+  {
+    Label done_loop, loop;
+    __ bind(&loop);
+    __ Dsubu(a3, a3, Operand(1));
+    __ Branch(&done_loop, lt, a3, Operand(zero_reg));
+    __ PushRoot(Heap::kTheHoleValueRootIndex);
+    __ Branch(&loop);
+    __ bind(&done_loop);
+  }
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ ld(a3, FieldMemOperand(a4, JSFunction::kSharedFunctionInfoOffset));
+  __ ld(a3, FieldMemOperand(a3, SharedFunctionInfo::kFunctionDataOffset));
+  __ GetObjectType(a3, a3, a3);
+  __ Branch(&old_generator, ne, a3, Operand(BYTECODE_ARRAY_TYPE));
+
+  // New-style (ignition/turbofan) generator object.
+  {
+    __ ld(a0, FieldMemOperand(a4, JSFunction::kSharedFunctionInfoOffset));
+    __ lw(a0,
+         FieldMemOperand(a0, SharedFunctionInfo::kFormalParameterCountOffset));
+    __ SmiUntag(a0);
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ Move(a3, a1);
+    __ Move(a1, a4);
+    __ ld(a2, FieldMemOperand(a1, JSFunction::kCodeEntryOffset));
+    __ Jump(a2);
+  }
+
+  // Old-style (full-codegen) generator object
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ Push(ra, fp);
+    __ Move(fp, sp);
+    __ Push(cp, a4);
+
+    // Restore the operand stack.
+    __ ld(a0, FieldMemOperand(a1, JSGeneratorObject::kOperandStackOffset));
+    __ ld(a3, FieldMemOperand(a0, FixedArray::kLengthOffset));
+    __ SmiUntag(a3);
+    __ Daddu(a0, a0, Operand(FixedArray::kHeaderSize - kHeapObjectTag));
+    __ Dlsa(a3, a0, a3, kPointerSizeLog2);
+    {
+      Label done_loop, loop;
+      __ bind(&loop);
+      __ Branch(&done_loop, eq, a0, Operand(a3));
+      __ ld(a5, MemOperand(a0));
+      __ Push(a5);
+      __ Branch(USE_DELAY_SLOT, &loop);
+      __ daddiu(a0, a0, kPointerSize);  // In delay slot.
+      __ bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ LoadRoot(a5, Heap::kEmptyFixedArrayRootIndex);
+    __ sd(a5, FieldMemOperand(a1, JSGeneratorObject::kOperandStackOffset));
+
+    // Resume the generator function at the continuation.
+    __ ld(a3, FieldMemOperand(a4, JSFunction::kSharedFunctionInfoOffset));
+    __ ld(a3, FieldMemOperand(a3, SharedFunctionInfo::kCodeOffset));
+    __ Daddu(a3, a3, Operand(Code::kHeaderSize - kHeapObjectTag));
+    __ ld(a2, FieldMemOperand(a1, JSGeneratorObject::kContinuationOffset));
+    __ SmiUntag(a2);
+    __ Daddu(a3, a3, Operand(a2));
+    __ li(a2, Operand(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
+    __ sd(a2, FieldMemOperand(a1, JSGeneratorObject::kContinuationOffset));
+    __ Move(v0, a1);  // Continuation expects generator object in v0.
+    __ Jump(a3);
+  }
+}
 
 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
   FrameScope scope(masm, StackFrame::INTERNAL);
@@ -813,7 +940,6 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
-
 // Generate code for entering a JS function with the interpreter.
 // On entry to the function the receiver and arguments have been pushed on the
 // stack left to right.  The actual argument count matches the formal parameter
@@ -830,14 +956,16 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
   FrameScope frame_scope(masm, StackFrame::MANUAL);
   __ PushStandardFrame(a1);
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into kInterpreterBytecodeRegister.
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ ld(a0, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
   Label load_debug_bytecode_array, bytecode_array_loaded;
   Register debug_info = kInterpreterBytecodeArrayRegister;
@@ -849,8 +977,11 @@
         FieldMemOperand(a0, SharedFunctionInfo::kFunctionDataOffset));
   __ bind(&bytecode_array_loaded);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ JumpIfRoot(kInterpreterBytecodeArrayRegister,
+                Heap::kUndefinedValueRootIndex, &bytecode_array_not_present);
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ SmiTst(kInterpreterBytecodeArrayRegister, a4);
     __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry, a4,
               Operand(zero_reg));
@@ -859,8 +990,13 @@
               Operand(BYTECODE_ARRAY_TYPE));
   }
 
-  // Push new.target, bytecode array and zero for bytecode array offset.
-  __ Push(a3, kInterpreterBytecodeArrayRegister, zero_reg);
+  // Load initial bytecode offset.
+  __ li(kInterpreterBytecodeOffsetRegister,
+        Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
+
+  // Push new.target, bytecode array and Smi tagged bytecode array offset.
+  __ SmiTag(a4, kInterpreterBytecodeOffsetRegister);
+  __ Push(a3, kInterpreterBytecodeArrayRegister, a4);
 
   // Allocate the local and temporary register file on the stack.
   {
@@ -890,17 +1026,8 @@
     __ Branch(&loop_header, ge, a4, Operand(zero_reg));
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load bytecode offset and dispatch table into registers.
+  // Load accumulator and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ Daddu(kInterpreterRegisterFileRegister, fp,
-           Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
-  __ li(kInterpreterBytecodeOffsetRegister,
-        Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
   __ li(kInterpreterDispatchTableRegister,
         Operand(ExternalReference::interpreter_dispatch_table_address(
             masm->isolate())));
@@ -911,42 +1038,41 @@
   __ lbu(a0, MemOperand(a0));
   __ Dlsa(at, kInterpreterDispatchTableRegister, a0, kPointerSizeLog2);
   __ ld(at, MemOperand(at));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ Daddu(at, at, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Call(at);
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
+  // The return value is in v0.
+
+  // Get the arguments + reciever count.
+  __ ld(t0, MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ lw(t0, FieldMemOperand(t0, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  // Drop receiver + arguments and return.
+  __ Daddu(sp, sp, t0);
+  __ Jump(ra);
 
   // Load debug copy of the bytecode array.
   __ bind(&load_debug_bytecode_array);
   __ ld(kInterpreterBytecodeArrayRegister,
         FieldMemOperand(debug_info, DebugInfo::kAbstractCodeIndex));
   __ Branch(&bytecode_array_loaded);
-}
 
-
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
-
-  // The return value is in accumulator, which is already in v0.
-
-  // Leave the frame (also dropping the register file).
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ bind(&bytecode_array_not_present);
   __ LeaveFrame(StackFrame::JAVA_SCRIPT);
-
-  // Drop receiver + arguments and return.
-  __ lw(at, FieldMemOperand(kInterpreterBytecodeArrayRegister,
-                            BytecodeArray::kParameterSizeOffset));
-  __ Daddu(sp, sp, at);
-  __ Jump(ra);
+  __ ld(a4, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
+  __ ld(a4, FieldMemOperand(a4, SharedFunctionInfo::kCodeOffset));
+  __ Daddu(a4, a4, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ sd(a4, FieldMemOperand(a1, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(a1, a4, a5);
+  __ Jump(a4);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -979,7 +1105,6 @@
           RelocInfo::CODE_TARGET);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm) {
   // ----------- S t a t e -------------
@@ -1010,25 +1135,24 @@
   __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
 }
 
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ li(t0, Operand(masm->isolate()->builtins()->InterpreterEntryTrampoline()));
+  __ Daddu(ra, t0, Operand(interpreter_entry_return_pc_offset->value() +
+                           Code::kHeaderSize - kHeapObjectTag));
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register and dispatch table register.
-  __ Daddu(kInterpreterRegisterFileRegister, fp,
-           Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+  // Initialize the dispatch table register.
   __ li(kInterpreterDispatchTableRegister,
         Operand(ExternalReference::interpreter_dispatch_table_address(
             masm->isolate())));
 
-  // Get the context from the frame.
-  __ ld(kContextRegister,
-        MemOperand(kInterpreterRegisterFileRegister,
-                   InterpreterFrameConstants::kContextFromRegisterPointer));
-
   // Get the bytecode array pointer from the frame.
-  __ ld(
-      kInterpreterBytecodeArrayRegister,
-      MemOperand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+  __ ld(kInterpreterBytecodeArrayRegister,
+        MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -1042,9 +1166,7 @@
 
   // Get the target bytecode offset from the frame.
   __ ld(kInterpreterBytecodeOffsetRegister,
-        MemOperand(
-            kInterpreterRegisterFileRegister,
-            InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+        MemOperand(fp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiUntag(kInterpreterBytecodeOffsetRegister);
 
   // Dispatch to the target bytecode.
@@ -1053,70 +1175,170 @@
   __ lbu(a1, MemOperand(a1));
   __ Dlsa(a1, kInterpreterDispatchTableRegister, a1, kPointerSizeLog2);
   __ ld(a1, MemOperand(a1));
-  __ Daddu(a1, a1, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Jump(a1);
 }
 
-
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ li(a1, Operand(Smi::FromInt(static_cast<int>(type))));
-    __ push(a1);
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register.
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ li(ra, Operand(masm->isolate()->builtins()->InterpreterEntryTrampoline()));
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- a0 : argument count (preserved for callee)
+  //  -- a3 : new target (preserved for callee)
+  //  -- a1 : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime, gotta_call_runtime_no_stack;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register argument_count = a0;
+  Register closure = a1;
+  Register new_target = a3;
+  __ push(argument_count);
+  __ push(new_target);
+  __ push(closure);
+
+  Register map = a0;
+  Register index = a2;
+  __ ld(map, FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ ld(map, FieldMemOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ ld(index, FieldMemOperand(map, FixedArray::kLengthOffset));
+  __ Branch(&gotta_call_runtime, lt, index, Operand(Smi::FromInt(2)));
+
+  // Find literals.
+  // a3  : native context
+  // a2  : length / index
+  // a0  : optimized code map
+  // stack[0] : new target
+  // stack[4] : closure
+  Register native_context = a3;
+  __ ld(native_context, NativeContextMemOperand());
+
+  __ bind(&loop_top);
+  Register temp = a1;
+  Register array_pointer = a5;
+
+  // Does the native context match?
+  __ SmiScale(at, index, kPointerSizeLog2);
+  __ Daddu(array_pointer, map, Operand(at));
+  __ ld(temp, FieldMemOperand(array_pointer,
+                              SharedFunctionInfo::kOffsetToPreviousContext));
+  __ ld(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ Branch(&loop_bottom, ne, temp, Operand(native_context));
+  // OSR id set to none?
+  __ ld(temp, FieldMemOperand(array_pointer,
+                              SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  const int bailout_id = BailoutId::None().ToInt();
+  __ Branch(&loop_bottom, ne, temp, Operand(Smi::FromInt(bailout_id)));
+  // Literals available?
+  __ ld(temp, FieldMemOperand(array_pointer,
+                              SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ ld(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ ld(a4, MemOperand(sp, 0));
+  __ sd(temp, FieldMemOperand(a4, JSFunction::kLiteralsOffset));
+  __ push(index);
+  __ RecordWriteField(a4, JSFunction::kLiteralsOffset, temp, index,
+                      kRAHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  __ pop(index);
+
+  // Code available?
+  Register entry = a4;
+  __ ld(entry,
+        FieldMemOperand(array_pointer,
+                        SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ ld(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  __ pop(closure);
+  // Store code entry in the closure.
+  __ Daddu(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+
+  Label install_optimized_code_and_tailcall;
+  __ bind(&install_optimized_code_and_tailcall);
+  __ sd(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(closure, entry, a5);
+
+  // Link the closure into the optimized function list.
+  // a4 : code entry
+  // a3 : native context
+  // a1 : closure
+  __ ld(a5,
+        ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ sd(a5, FieldMemOperand(closure, JSFunction::kNextFunctionLinkOffset));
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, a5, a0,
+                      kRAHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ sd(closure,
+        ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  // Save closure before the write barrier.
+  __ mov(a5, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, closure, a0,
+                            kRAHasNotBeenSaved, kDontSaveFPRegs);
+  __ mov(closure, a5);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ Jump(entry);
+
+  __ bind(&loop_bottom);
+  __ Dsubu(index, index,
+           Operand(Smi::FromInt(SharedFunctionInfo::kEntryLength)));
+  __ Branch(&loop_top, gt, index, Operand(Smi::FromInt(1)));
+
+  // We found neither literals nor code.
+  __ jmp(&gotta_call_runtime);
+
+  __ bind(&maybe_call_runtime);
+  __ pop(closure);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ ld(entry, FieldMemOperand(map, FixedArray::kHeaderSize +
+                                        SharedFunctionInfo::kSharedCodeIndex));
+  __ ld(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ Daddu(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ jmp(&install_optimized_code_and_tailcall);
+
+  __ bind(&try_shared);
+  __ pop(new_target);
+  __ pop(argument_count);
+  // Is the full code valid?
+  __ ld(entry, FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ ld(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ lw(a5, FieldMemOperand(entry, Code::kFlagsOffset));
+  __ And(a5, a5, Operand(Code::KindField::kMask));
+  __ dsrl(a5, a5, Code::KindField::kShift);
+  __ Branch(&gotta_call_runtime_no_stack, eq, a5, Operand(Code::BUILTIN));
+  // Yes, install the full code.
+  __ Daddu(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ sd(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset));
+  __ RecordWriteCodeEntryField(closure, entry, a5);
+  __ Jump(entry);
+
+  __ bind(&gotta_call_runtime);
+  __ pop(closure);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ bind(&gotta_call_runtime_no_stack);
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
 
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
                                  Runtime::kCompileOptimized_NotConcurrent);
 }
 
-
 void Builtins::Generate_CompileOptimizedConcurrent(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileOptimized_Concurrent);
 }
@@ -1252,15 +1474,19 @@
   __ SmiUntag(a6);
   // Switch on the state.
   Label with_tos_register, unknown_state;
-  __ Branch(&with_tos_register,
-            ne, a6, Operand(FullCodeGenerator::NO_REGISTERS));
+  __ Branch(
+      &with_tos_register, ne, a6,
+      Operand(static_cast<int64_t>(Deoptimizer::BailoutState::NO_REGISTERS)));
   __ Ret(USE_DELAY_SLOT);
   // Safe to fill delay slot Addu will emit one instruction.
   __ Daddu(sp, sp, Operand(1 * kPointerSize));  // Remove state.
 
   __ bind(&with_tos_register);
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), v0.code());
   __ ld(v0, MemOperand(sp, 1 * kPointerSize));
-  __ Branch(&unknown_state, ne, a6, Operand(FullCodeGenerator::TOS_REG));
+  __ Branch(
+      &unknown_state, ne, a6,
+      Operand(static_cast<int64_t>(Deoptimizer::BailoutState::TOS_REGISTER)));
 
   __ Ret(USE_DELAY_SLOT);
   // Safe to fill delay slot Addu will emit one instruction.
@@ -1467,28 +1693,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- a0    : argc
-  //  -- sp[0] : first argument (left-hand side)
-  //  -- sp[8] : receiver (right-hand side)
-  // -----------------------------------
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ ld(InstanceOfDescriptor::LeftRegister(),
-          MemOperand(fp, 2 * kPointerSize));  // Load left-hand side.
-    __ ld(InstanceOfDescriptor::RightRegister(),
-          MemOperand(fp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ DropAndRet(2);
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- a0    : argc
@@ -2457,6 +2661,30 @@
           RelocInfo::CODE_TARGET);
 }
 
+// static
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- a0 : requested object size (untagged)
+  //  -- ra : return address
+  // -----------------------------------
+  __ SmiTag(a0);
+  __ Push(a0);
+  __ Move(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
+}
+
+// static
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- a0 : requested object size (untagged)
+  //  -- ra : return address
+  // -----------------------------------
+  __ SmiTag(a0);
+  __ Move(a1, Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ Push(a0, a1);
+  __ Move(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
+}
 
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // State setup as expected by MacroAssembler::InvokePrologue.
diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc
index fdb6c81..5702c78 100644
--- a/src/mips64/code-stubs-mips64.cc
+++ b/src/mips64/code-stubs-mips64.cc
@@ -53,12 +53,6 @@
 }
 
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -71,11 +65,6 @@
 }
 
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(a0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -1461,128 +1450,6 @@
 }
 
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = a1;              // Object (lhs).
-  Register const function = a0;            // Function (rhs).
-  Register const object_map = a2;          // Map of {object}.
-  Register const function_map = a3;        // Map of {function}.
-  Register const function_prototype = a4;  // Prototype of {function}.
-  Register const scratch = a5;
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ ld(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ LoadRoot(at, Heap::kInstanceofCacheFunctionRootIndex);
-  __ Branch(&fast_case, ne, function, Operand(at));
-  __ LoadRoot(at, Heap::kInstanceofCacheMapRootIndex);
-  __ Branch(&fast_case, ne, object_map, Operand(at));
-  __ Ret(USE_DELAY_SLOT);
-  __ LoadRoot(v0, Heap::kInstanceofCacheAnswerRootIndex);  // In delay slot.
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ GetObjectType(function, function_map, scratch);
-  __ Branch(&slow_case, ne, scratch, Operand(JS_FUNCTION_TYPE));
-  __ Ret(USE_DELAY_SLOT);
-  __ LoadRoot(v0, Heap::kFalseValueRootIndex);  // In delay slot.
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ GetObjectType(function, function_map, scratch);
-  __ Branch(&slow_case, ne, scratch, Operand(JS_FUNCTION_TYPE));
-
-  // Go to the runtime if the function is not a constructor.
-  __ lbu(scratch, FieldMemOperand(function_map, Map::kBitFieldOffset));
-  __ And(at, scratch, Operand(1 << Map::kIsConstructor));
-  __ Branch(&slow_case, eq, at, Operand(zero_reg));
-
-  // Ensure that {function} has an instance prototype.
-  __ And(at, scratch, Operand(1 << Map::kHasNonInstancePrototype));
-  __ Branch(&slow_case, ne, at, Operand(zero_reg));
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ ld(function_prototype,
-        FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  __ GetObjectType(function_prototype, scratch, scratch);
-  __ Branch(&function_prototype_valid, ne, scratch, Operand(MAP_TYPE));
-  __ ld(function_prototype,
-        FieldMemOperand(function_prototype, Map::kPrototypeOffset));
-  __ bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Register const object_instance_type = function_map;
-  Register const map_bit_field = function_map;
-  Register const null = scratch;
-  Register const result = v0;
-
-  Label done, loop, fast_runtime_fallback;
-  __ LoadRoot(result, Heap::kTrueValueRootIndex);
-  __ LoadRoot(null, Heap::kNullValueRootIndex);
-  __ bind(&loop);
-
-  // Check if the object needs to be access checked.
-  __ lbu(map_bit_field, FieldMemOperand(object_map, Map::kBitFieldOffset));
-  __ And(map_bit_field, map_bit_field, Operand(1 << Map::kIsAccessCheckNeeded));
-  __ Branch(&fast_runtime_fallback, ne, map_bit_field, Operand(zero_reg));
-  // Check if the current object is a Proxy.
-  __ lbu(object_instance_type,
-         FieldMemOperand(object_map, Map::kInstanceTypeOffset));
-  __ Branch(&fast_runtime_fallback, eq, object_instance_type,
-            Operand(JS_PROXY_TYPE));
-
-  __ ld(object, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ Branch(&done, eq, object, Operand(function_prototype));
-  __ Branch(USE_DELAY_SLOT, &loop, ne, object, Operand(null));
-  __ ld(object_map,
-        FieldMemOperand(object, HeapObject::kMapOffset));  // In delay slot.
-  __ LoadRoot(result, Heap::kFalseValueRootIndex);
-  __ bind(&done);
-  __ Ret(USE_DELAY_SLOT);
-  __ StoreRoot(result,
-               Heap::kInstanceofCacheAnswerRootIndex);  // In delay slot.
-
-  // Found Proxy or access check needed: Call the runtime
-  __ bind(&fast_runtime_fallback);
-  __ Push(object, function_prototype);
-  // Invalidate the instanceof cache.
-  DCHECK(Smi::FromInt(0) == 0);
-  __ StoreRoot(zero_reg, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ Push(object, function);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
-
 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
   Label miss;
   Register receiver = LoadDescriptor::ReceiverRegister();
@@ -4046,8 +3913,8 @@
   __ bind(&not_array);
   __ LoadRoot(at, Heap::kmegamorphic_symbolRootIndex);
   __ Branch(&miss, ne, feedback, Operand(at));
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
                                                receiver, name, feedback,
                                                receiver_map, scratch1, a7);
@@ -4189,8 +4056,8 @@
 
   __ bind(&not_array);
   __ Branch(&miss, ne, feedback, Heap::kmegamorphic_symbolRootIndex);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(
       masm, Code::STORE_IC, code_flags, receiver, key, feedback, receiver_map,
       scratch1, scratch2);
@@ -4758,15 +4625,15 @@
   __ bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ sd(a2, MemOperand(v0, JSObject::kMapOffset));
+  __ sd(a2, FieldMemOperand(v0, JSObject::kMapOffset));
   __ LoadRoot(a3, Heap::kEmptyFixedArrayRootIndex);
-  __ sd(a3, MemOperand(v0, JSObject::kPropertiesOffset));
-  __ sd(a3, MemOperand(v0, JSObject::kElementsOffset));
+  __ sd(a3, FieldMemOperand(v0, JSObject::kPropertiesOffset));
+  __ sd(a3, FieldMemOperand(v0, JSObject::kElementsOffset));
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
-  __ Daddu(a1, v0, Operand(JSObject::kHeaderSize));
+  __ Daddu(a1, v0, Operand(JSObject::kHeaderSize - kHeapObjectTag));
 
   // ----------- S t a t e -------------
-  //  -- v0 : result (untagged)
+  //  -- v0 : result (tagged)
   //  -- a1 : result fields (untagged)
   //  -- a5 : result end (untagged)
   //  -- a2 : initial map
@@ -4784,11 +4651,7 @@
   {
     // Initialize all in-object fields with undefined.
     __ InitializeFieldsWithFiller(a1, a5, a0);
-
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ Ret(USE_DELAY_SLOT);
-    __ Daddu(v0, v0, Operand(kHeapObjectTag));  // In delay slot.
+    __ Ret();
   }
   __ bind(&slack_tracking);
   {
@@ -4811,9 +4674,7 @@
     Label finalize;
     STATIC_ASSERT(Map::kSlackTrackingCounterEnd == 1);
     __ And(a3, a3, Operand(Map::ConstructionCounter::kMask));
-    __ Branch(USE_DELAY_SLOT, &finalize, eq, a3, Operand(zero_reg));
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ Daddu(v0, v0, Operand(kHeapObjectTag));  // In delay slot.
+    __ Branch(&finalize, eq, a3, Operand(zero_reg));
     __ Ret();
 
     // Finalize the instance size.
@@ -4839,10 +4700,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(a2);
   }
-  STATIC_ASSERT(kHeapObjectTag == 1);
-  __ Dsubu(v0, v0, Operand(kHeapObjectTag));
   __ lbu(a5, FieldMemOperand(a2, Map::kInstanceSizeOffset));
   __ Dlsa(a5, v0, a5, kPointerSizeLog2);
+  STATIC_ASSERT(kHeapObjectTag == 1);
+  __ Dsubu(a5, a5, Operand(kHeapObjectTag));
   __ jmp(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4861,19 +4722,19 @@
   // -----------------------------------
   __ AssertFunction(a1);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make a2 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ Branch(USE_DELAY_SLOT, &loop_entry);
-    __ mov(a2, fp);  // In delay slot.
-    __ bind(&loop);
+  // Make a2 point to the JavaScript frame.
+  __ mov(a2, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ ld(a2, MemOperand(a2, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ ld(a3, MemOperand(a2, StandardFrameConstants::kFunctionOffset));
-    __ Branch(&loop, ne, a1, Operand(a3));
+    __ Branch(&ok, eq, a1, Operand(a3));
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4905,7 +4766,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, v0, a0, a1, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, v0, a0, a1, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the rest parameter array in v0.
@@ -4947,7 +4808,7 @@
     Label allocate, done_allocate;
     __ li(a1, Operand(JSArray::kSize + FixedArray::kHeaderSize));
     __ Dlsa(a1, a1, a0, kPointerSizeLog2);
-    __ Allocate(a1, v0, a3, a4, &allocate, TAG_OBJECT);
+    __ Allocate(a1, v0, a3, a4, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Compute arguments.length in a4.
@@ -5007,24 +4868,40 @@
   // -----------------------------------
   __ AssertFunction(a1);
 
+  // Make t0 point to the JavaScript frame.
+  __ mov(t0, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ ld(t0, MemOperand(t0, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ ld(a3, MemOperand(t0, StandardFrameConstants::kFunctionOffset));
+    __ Branch(&ok, eq, a1, Operand(a3));
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
+  }
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
   __ ld(a2, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
   __ lw(a2,
          FieldMemOperand(a2, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ Lsa(a3, fp, a2, kPointerSizeLog2);
+  __ Lsa(a3, t0, a2, kPointerSizeLog2);
   __ Addu(a3, a3, Operand(StandardFrameConstants::kCallerSPOffset));
   __ SmiTag(a2);
 
   // a1 : function
   // a2 : number of parameters (tagged)
   // a3 : parameters pointer
+  // t0 : Javascript frame pointer
   // Registers used over whole function:
   //  a5 : arguments count (tagged)
   //  a6 : mapped parameter count (tagged)
 
   // Check if the calling frame is an arguments adaptor frame.
   Label adaptor_frame, try_allocate, runtime;
-  __ ld(a4, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
+  __ ld(a4, MemOperand(t0, StandardFrameConstants::kCallerFPOffset));
   __ ld(a0, MemOperand(a4, CommonFrameConstants::kContextOrFrameTypeOffset));
   __ Branch(&adaptor_frame, eq, a0,
             Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
@@ -5072,7 +4949,7 @@
   __ Daddu(t1, t1, Operand(JSSloppyArgumentsObject::kSize));
 
   // Do the allocation of all three objects in one go.
-  __ Allocate(t1, v0, t1, a4, &runtime, TAG_OBJECT);
+  __ Allocate(t1, v0, t1, a4, &runtime, NO_ALLOCATION_FLAGS);
 
   // v0 = address of new object(s) (tagged)
   // a2 = argument count (smi-tagged)
@@ -5227,19 +5104,19 @@
   // -----------------------------------
   __ AssertFunction(a1);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make a2 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ Branch(USE_DELAY_SLOT, &loop_entry);
-    __ mov(a2, fp);  // In delay slot.
-    __ bind(&loop);
+  // Make a2 point to the JavaScript frame.
+  __ mov(a2, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ ld(a2, MemOperand(a2, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ ld(a3, MemOperand(a2, StandardFrameConstants::kFunctionOffset));
-    __ Branch(&loop, ne, a1, Operand(a3));
+    __ Branch(&ok, eq, a1, Operand(a3));
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -5278,7 +5155,7 @@
   Label allocate, done_allocate;
   __ li(a1, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
   __ Dlsa(a1, a1, a0, kPointerSizeLog2);
-  __ Allocate(a1, v0, a3, a4, &allocate, TAG_OBJECT);
+  __ Allocate(a1, v0, a3, a4, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Compute arguments.length in a4.
@@ -5636,7 +5513,11 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
+
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
 
   // Save context, callee and call data.
   __ Push(context, callee, call_data);
@@ -5660,7 +5541,7 @@
 
   // Allocate the v8::Arguments structure in the arguments' space since
   // it's not controlled by GC.
-  const int kApiStackSpace = 4;
+  const int kApiStackSpace = 3;
 
   FrameScope frame_scope(masm, StackFrame::MANUAL);
   __ EnterExitFrame(false, kApiStackSpace);
@@ -5680,8 +5561,6 @@
   // justified by n64 ABI.
   __ li(at, Operand(argc()));
   __ sw(at, MemOperand(a0, 2 * kPointerSize));
-  // FunctionCallbackInfo::is_construct_call_ = 0
-  __ sw(zero_reg, MemOperand(a0, 2 * kPointerSize + kIntSize));
 
   ExternalReference thunk_ref =
       ExternalReference::invoke_function_callback(masm->isolate());
@@ -5698,8 +5577,9 @@
   }
   MemOperand return_value_operand(fp, return_value_offset * kPointerSize);
   int stack_space = 0;
-  int32_t stack_space_offset = 4 * kPointerSize;
+  int32_t stack_space_offset = 3 * kPointerSize;
   stack_space = argc() + FCA::kArgsLength + 1;
+  // TODO(adamk): Why are we clobbering this immediately?
   stack_space_offset = kInvalidStackOffset;
   CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, stack_space,
                            stack_space_offset, return_value_operand,
@@ -5708,15 +5588,44 @@
 
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- sp[0]                        : name
-  //  -- sp[8 .. (8 + kArgsLength*8)] : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- a2                           : api_function_address
-  // -----------------------------------
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
 
-  Register api_function_address = ApiGetterDescriptor::function_address();
-  DCHECK(api_function_address.is(a2));
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
+  Register scratch = a4;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
+
+  Register api_function_address = a2;
+
+  // Here and below +1 is for name() pushed after the args_ array.
+  typedef PropertyCallbackArguments PCA;
+  __ Dsubu(sp, sp, (PCA::kArgsLength + 1) * kPointerSize);
+  __ sd(receiver, MemOperand(sp, (PCA::kThisIndex + 1) * kPointerSize));
+  __ ld(scratch, FieldMemOperand(callback, AccessorInfo::kDataOffset));
+  __ sd(scratch, MemOperand(sp, (PCA::kDataIndex + 1) * kPointerSize));
+  __ LoadRoot(scratch, Heap::kUndefinedValueRootIndex);
+  __ sd(scratch, MemOperand(sp, (PCA::kReturnValueOffset + 1) * kPointerSize));
+  __ sd(scratch, MemOperand(sp, (PCA::kReturnValueDefaultValueIndex + 1) *
+                                    kPointerSize));
+  __ li(scratch, Operand(ExternalReference::isolate_address(isolate())));
+  __ sd(scratch, MemOperand(sp, (PCA::kIsolateIndex + 1) * kPointerSize));
+  __ sd(holder, MemOperand(sp, (PCA::kHolderIndex + 1) * kPointerSize));
+  // should_throw_on_error -> false
+  DCHECK(Smi::FromInt(0) == nullptr);
+  __ sd(zero_reg,
+        MemOperand(sp, (PCA::kShouldThrowOnErrorIndex + 1) * kPointerSize));
+  __ ld(scratch, FieldMemOperand(callback, AccessorInfo::kNameOffset));
+  __ sd(scratch, MemOperand(sp, 0 * kPointerSize));
 
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
@@ -5738,6 +5647,10 @@
   ExternalReference thunk_ref =
       ExternalReference::invoke_accessor_getter_callback(isolate());
 
+  __ ld(scratch, FieldMemOperand(callback, AccessorInfo::kJsGetterOffset));
+  __ ld(api_function_address,
+        FieldMemOperand(scratch, Foreign::kForeignAddressOffset));
+
   // +3 is to skip prolog, return address and name handle.
   MemOperand return_value_operand(
       fp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize);
@@ -5746,7 +5659,6 @@
                            return_value_operand, NULL);
 }
 
-
 #undef __
 
 }  // namespace internal
diff --git a/src/mips64/codegen-mips64.cc b/src/mips64/codegen-mips64.cc
index 44d822b..678f606 100644
--- a/src/mips64/codegen-mips64.cc
+++ b/src/mips64/codegen-mips64.cc
@@ -732,6 +732,7 @@
   __ SmiScale(scratch, length, kDoubleSizeLog2);
   __ Daddu(scratch, scratch, FixedDoubleArray::kHeaderSize);
   __ Allocate(scratch, array, t3, scratch2, &gc_required, DOUBLE_ALIGNMENT);
+  __ Dsubu(array, array, kHeapObjectTag);
   // array: destination FixedDoubleArray, not tagged as heap object
 
   // Set destination FixedDoubleArray's length and map.
@@ -882,6 +883,7 @@
   __ Daddu(array_size, array_size, FixedDoubleArray::kHeaderSize);
   __ Allocate(array_size, array, allocate_scratch, scratch, &gc_required,
               NO_ALLOCATION_FLAGS);
+  __ Dsubu(array, array, kHeapObjectTag);
   // array: destination FixedArray, not tagged as heap object
   // Set destination FixedDoubleArray's length and map.
   __ LoadRoot(scratch, Heap::kFixedArrayMapRootIndex);
diff --git a/src/mips64/constants-mips64.h b/src/mips64/constants-mips64.h
index 57e947b..8272420 100644
--- a/src/mips64/constants-mips64.h
+++ b/src/mips64/constants-mips64.h
@@ -60,6 +60,27 @@
 const bool IsMipsSoftFloatABI = true;
 #endif
 
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+const uint32_t kMipsLwrOffset = 0;
+const uint32_t kMipsLwlOffset = 3;
+const uint32_t kMipsSwrOffset = 0;
+const uint32_t kMipsSwlOffset = 3;
+const uint32_t kMipsLdrOffset = 0;
+const uint32_t kMipsLdlOffset = 7;
+const uint32_t kMipsSdrOffset = 0;
+const uint32_t kMipsSdlOffset = 7;
+#elif defined(V8_TARGET_BIG_ENDIAN)
+const uint32_t kMipsLwrOffset = 3;
+const uint32_t kMipsLwlOffset = 0;
+const uint32_t kMipsSwrOffset = 3;
+const uint32_t kMipsSwlOffset = 0;
+const uint32_t kMipsLdrOffset = 7;
+const uint32_t kMipsLdlOffset = 0;
+const uint32_t kMipsSdrOffset = 7;
+const uint32_t kMipsSdlOffset = 0;
+#else
+#error Unknown endianness
+#endif
 
 #ifndef __STDC_FORMAT_MACROS
 #define __STDC_FORMAT_MACROS
@@ -384,6 +405,7 @@
   MOVZ = ((1U << 3) + 2),
   MOVN = ((1U << 3) + 3),
   BREAK = ((1U << 3) + 5),
+  SYNC = ((1U << 3) + 7),
 
   MFHI = ((2U << 3) + 0),
   CLZ_R6 = ((2U << 3) + 0),
@@ -645,7 +667,6 @@
   NULLSF = 0U
 };
 
-
 // ----- Emulated conditions.
 // On MIPS we use this enum to abstract from conditional branch instructions.
 // The 'U' prefix is used to specify unsigned comparisons.
@@ -911,7 +932,6 @@
 
   enum TypeChecks { NORMAL, EXTRA };
 
-
   static constexpr uint64_t kOpcodeImmediateTypeMask =
       OpcodeToBitNumber(REGIMM) | OpcodeToBitNumber(BEQ) |
       OpcodeToBitNumber(BNE) | OpcodeToBitNumber(BLEZ) |
@@ -926,12 +946,14 @@
       OpcodeToBitNumber(POP76) | OpcodeToBitNumber(LB) | OpcodeToBitNumber(LH) |
       OpcodeToBitNumber(LWL) | OpcodeToBitNumber(LW) | OpcodeToBitNumber(LWU) |
       OpcodeToBitNumber(LD) | OpcodeToBitNumber(LBU) | OpcodeToBitNumber(LHU) |
-      OpcodeToBitNumber(LWR) | OpcodeToBitNumber(SB) | OpcodeToBitNumber(SH) |
+      OpcodeToBitNumber(LDL) | OpcodeToBitNumber(LDR) | OpcodeToBitNumber(LWR) |
+      OpcodeToBitNumber(SDL) | OpcodeToBitNumber(SB) | OpcodeToBitNumber(SH) |
       OpcodeToBitNumber(SWL) | OpcodeToBitNumber(SW) | OpcodeToBitNumber(SD) |
-      OpcodeToBitNumber(SWR) | OpcodeToBitNumber(LWC1) |
-      OpcodeToBitNumber(LDC1) | OpcodeToBitNumber(SWC1) |
-      OpcodeToBitNumber(SDC1) | OpcodeToBitNumber(PCREL) |
-      OpcodeToBitNumber(DAUI) | OpcodeToBitNumber(BC) | OpcodeToBitNumber(BALC);
+      OpcodeToBitNumber(SWR) | OpcodeToBitNumber(SDR) |
+      OpcodeToBitNumber(LWC1) | OpcodeToBitNumber(LDC1) |
+      OpcodeToBitNumber(SWC1) | OpcodeToBitNumber(SDC1) |
+      OpcodeToBitNumber(PCREL) | OpcodeToBitNumber(DAUI) |
+      OpcodeToBitNumber(BC) | OpcodeToBitNumber(BALC);
 
 #define FunctionFieldToBitNumber(function) (1ULL << function)
 
@@ -964,8 +986,7 @@
       FunctionFieldToBitNumber(TEQ) | FunctionFieldToBitNumber(TNE) |
       FunctionFieldToBitNumber(MOVZ) | FunctionFieldToBitNumber(MOVN) |
       FunctionFieldToBitNumber(MOVCI) | FunctionFieldToBitNumber(SELEQZ_S) |
-      FunctionFieldToBitNumber(SELNEZ_S);
-
+      FunctionFieldToBitNumber(SELNEZ_S) | FunctionFieldToBitNumber(SYNC);
 
   // Get the encoding type of the instruction.
   inline Type InstructionType(TypeChecks checks = NORMAL) const;
diff --git a/src/mips64/disasm-mips64.cc b/src/mips64/disasm-mips64.cc
index 3d0e10c..7b05493 100644
--- a/src/mips64/disasm-mips64.cc
+++ b/src/mips64/disasm-mips64.cc
@@ -375,7 +375,8 @@
   uint64_t target = static_cast<uint64_t>(instr->Imm26Value())
                     << kImmFieldShift;
   target = (reinterpret_cast<uint64_t>(instr) & ~0xfffffff) | target;
-  out_buffer_pos_ += SNPrintF(out_buffer_ + out_buffer_pos_, "0x%lx", target);
+  out_buffer_pos_ +=
+      SNPrintF(out_buffer_ + out_buffer_pos_, "0x%" PRIx64, target);
 }
 
 
@@ -801,16 +802,14 @@
   if (instr->Bits(25, 6) == static_cast<int>(kMaxStopCode)) {
     // This is stop(msg).
     Format(instr, "break, code: 'code");
-    out_buffer_pos_ += SNPrintF(out_buffer_ + out_buffer_pos_,
-                                "\n%p       %08lx       stop msg: %s",
-                                static_cast<void*>
-                                      (reinterpret_cast<int32_t*>(instr
-                                              + Instruction::kInstrSize)),
-                                reinterpret_cast<uint64_t>
-                                (*reinterpret_cast<char**>(instr
-                                              + Instruction::kInstrSize)),
-                                *reinterpret_cast<char**>(instr
-                                              + Instruction::kInstrSize));
+    out_buffer_pos_ += SNPrintF(
+        out_buffer_ + out_buffer_pos_,
+        "\n%p       %08" PRIx64 "       stop msg: %s",
+        static_cast<void*>(
+            reinterpret_cast<int32_t*>(instr + Instruction::kInstrSize)),
+        reinterpret_cast<uint64_t>(
+            *reinterpret_cast<char**>(instr + Instruction::kInstrSize)),
+        *reinterpret_cast<char**>(instr + Instruction::kInstrSize));
     // Size 3: the break_ instr, plus embedded 64-bit char pointer.
     return 3 * Instruction::kInstrSize;
   } else {
@@ -1162,26 +1161,22 @@
       if (instr->RsValue() == 0) {
         Format(instr, "srl     'rd, 'rt, 'sa");
       } else {
-        if (kArchVariant == kMips64r2) {
-          Format(instr, "rotr    'rd, 'rt, 'sa");
-        } else {
-          Unknown(instr);
-        }
+        Format(instr, "rotr    'rd, 'rt, 'sa");
       }
       break;
     case DSRL:
       if (instr->RsValue() == 0) {
         Format(instr, "dsrl    'rd, 'rt, 'sa");
       } else {
-        if (kArchVariant == kMips64r2) {
-          Format(instr, "drotr   'rd, 'rt, 'sa");
-        } else {
-          Unknown(instr);
-        }
+        Format(instr, "drotr   'rd, 'rt, 'sa");
       }
       break;
     case DSRL32:
-      Format(instr, "dsrl32  'rd, 'rt, 'sa");
+      if (instr->RsValue() == 0) {
+        Format(instr, "dsrl32  'rd, 'rt, 'sa");
+      } else {
+        Format(instr, "drotr32 'rd, 'rt, 'sa");
+      }
       break;
     case SRA:
       Format(instr, "sra     'rd, 'rt, 'sa");
@@ -1202,22 +1197,14 @@
       if (instr->SaValue() == 0) {
         Format(instr, "srlv    'rd, 'rt, 'rs");
       } else {
-        if (kArchVariant == kMips64r2) {
-          Format(instr, "rotrv   'rd, 'rt, 'rs");
-        } else {
-          Unknown(instr);
-        }
+        Format(instr, "rotrv   'rd, 'rt, 'rs");
       }
       break;
     case DSRLV:
       if (instr->SaValue() == 0) {
         Format(instr, "dsrlv   'rd, 'rt, 'rs");
       } else {
-        if (kArchVariant == kMips64r2) {
-          Format(instr, "drotrv  'rd, 'rt, 'rs");
-        } else {
-          Unknown(instr);
-        }
+        Format(instr, "drotrv  'rd, 'rt, 'rs");
       }
       break;
     case SRAV:
@@ -1400,6 +1387,9 @@
     case TNE:
       Format(instr, "tne     'rs, 'rt, code: 'code");
       break;
+    case SYNC:
+      Format(instr, "sync");
+      break;
     case MOVZ:
       Format(instr, "movz    'rd, 'rs, 'rt");
       break;
diff --git a/src/mips64/interface-descriptors-mips64.cc b/src/mips64/interface-descriptors-mips64.cc
index 7695d0b..67bae36 100644
--- a/src/mips64/interface-descriptors-mips64.cc
+++ b/src/mips64/interface-descriptors-mips64.cc
@@ -46,16 +46,11 @@
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return a0; }
 
 
-const Register InstanceOfDescriptor::LeftRegister() { return a1; }
-const Register InstanceOfDescriptor::RightRegister() { return a0; }
-
-
 const Register StringCompareDescriptor::LeftRegister() { return a1; }
 const Register StringCompareDescriptor::RightRegister() { return a0; }
 
-
-const Register ApiGetterDescriptor::function_address() { return a2; }
-
+const Register ApiGetterDescriptor::HolderRegister() { return a0; }
+const Register ApiGetterDescriptor::CallbackRegister() { return a3; }
 
 const Register MathPowTaggedDescriptor::exponent() { return a2; }
 
@@ -68,6 +63,8 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return a0; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return a3; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return a0; }
+const Register HasPropertyDescriptor::KeyRegister() { return a3; }
 
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -247,13 +244,16 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {a0};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  // register state
+  // a0 -- number of arguments
+  // a1 -- function
+  // a2 -- allocation site with elements kind
+  Register registers[] = {a1, a2, a0};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
@@ -316,6 +316,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {a1};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -376,9 +381,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister,
-      kInterpreterDispatchTableRegister};
+      kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+      kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -413,6 +417,16 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      v0,  // the value to pass to the generator
+      a1,  // the JSGeneratorObject to resume
+      a2   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc
index fb83fe9..b7b4f28 100644
--- a/src/mips64/macro-assembler-mips64.cc
+++ b/src/mips64/macro-assembler-mips64.cc
@@ -1325,33 +1325,175 @@
 // ------------Pseudo-instructions-------------
 
 void MacroAssembler::Ulw(Register rd, const MemOperand& rs) {
-  lwr(rd, rs);
-  lwl(rd, MemOperand(rs.rm(), rs.offset() + 3));
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (kArchVariant == kMips64r6) {
+    lw(rd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    if (is_int16(rs.offset() + kMipsLwrOffset) &&
+        is_int16(rs.offset() + kMipsLwlOffset)) {
+      if (!rd.is(rs.rm())) {
+        lwr(rd, MemOperand(rs.rm(), rs.offset() + kMipsLwrOffset));
+        lwl(rd, MemOperand(rs.rm(), rs.offset() + kMipsLwlOffset));
+      } else {
+        lwr(at, MemOperand(rs.rm(), rs.offset() + kMipsLwrOffset));
+        lwl(at, MemOperand(rs.rm(), rs.offset() + kMipsLwlOffset));
+        mov(rd, at);
+      }
+    } else {  // Offset > 16 bits, use multiple instructions to load.
+      LoadRegPlusOffsetToAt(rs);
+      lwr(rd, MemOperand(at, kMipsLwrOffset));
+      lwl(rd, MemOperand(at, kMipsLwlOffset));
+    }
+  }
+}
+
+void MacroAssembler::Ulwu(Register rd, const MemOperand& rs) {
+  if (kArchVariant == kMips64r6) {
+    lwu(rd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    Ulw(rd, rs);
+    Dext(rd, rd, 0, 32);
+  }
 }
 
 
 void MacroAssembler::Usw(Register rd, const MemOperand& rs) {
-  swr(rd, rs);
-  swl(rd, MemOperand(rs.rm(), rs.offset() + 3));
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (kArchVariant == kMips64r6) {
+    sw(rd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    if (is_int16(rs.offset() + kMipsSwrOffset) &&
+        is_int16(rs.offset() + kMipsSwlOffset)) {
+      swr(rd, MemOperand(rs.rm(), rs.offset() + kMipsSwrOffset));
+      swl(rd, MemOperand(rs.rm(), rs.offset() + kMipsSwlOffset));
+    } else {
+      LoadRegPlusOffsetToAt(rs);
+      swr(rd, MemOperand(at, kMipsSwrOffset));
+      swl(rd, MemOperand(at, kMipsSwlOffset));
+    }
+  }
 }
 
-
-// Do 64-bit load from unaligned address. Note this only handles
-// the specific case of 32-bit aligned, but not 64-bit aligned.
-void MacroAssembler::Uld(Register rd, const MemOperand& rs, Register scratch) {
-  // Assert fail if the offset from start of object IS actually aligned.
-  // ONLY use with known misalignment, since there is performance cost.
-  DCHECK((rs.offset() + kHeapObjectTag) & (kPointerSize - 1));
-  if (kArchEndian == kLittle) {
-    lwu(rd, rs);
-    lw(scratch, MemOperand(rs.rm(), rs.offset() + kPointerSize / 2));
-    dsll32(scratch, scratch, 0);
+void MacroAssembler::Ulh(Register rd, const MemOperand& rs) {
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (kArchVariant == kMips64r6) {
+    lh(rd, rs);
   } else {
-    lw(rd, rs);
-    lwu(scratch, MemOperand(rs.rm(), rs.offset() + kPointerSize / 2));
-    dsll32(rd, rd, 0);
+    DCHECK(kArchVariant == kMips64r2);
+    if (is_int16(rs.offset()) && is_int16(rs.offset() + 1)) {
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+      lbu(at, rs);
+      lb(rd, MemOperand(rs.rm(), rs.offset() + 1));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+      lbu(at, MemOperand(rs.rm(), rs.offset() + 1));
+      lb(rd, rs);
+#endif
+    } else {  // Offset > 16 bits, use multiple instructions to load.
+      LoadRegPlusOffsetToAt(rs);
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+      lb(rd, MemOperand(at, 1));
+      lbu(at, MemOperand(at, 0));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+      lb(rd, MemOperand(at, 0));
+      lbu(at, MemOperand(at, 1));
+#endif
+    }
+    dsll(rd, rd, 8);
+    or_(rd, rd, at);
   }
-  Daddu(rd, rd, scratch);
+}
+
+void MacroAssembler::Ulhu(Register rd, const MemOperand& rs) {
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (kArchVariant == kMips64r6) {
+    lhu(rd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    if (is_int16(rs.offset()) && is_int16(rs.offset() + 1)) {
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+      lbu(at, rs);
+      lbu(rd, MemOperand(rs.rm(), rs.offset() + 1));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+      lbu(at, MemOperand(rs.rm(), rs.offset() + 1));
+      lbu(rd, rs);
+#endif
+    } else {  // Offset > 16 bits, use multiple instructions to load.
+      LoadRegPlusOffsetToAt(rs);
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+      lbu(rd, MemOperand(at, 1));
+      lbu(at, MemOperand(at, 0));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+      lbu(rd, MemOperand(at, 0));
+      lbu(at, MemOperand(at, 1));
+#endif
+    }
+    dsll(rd, rd, 8);
+    or_(rd, rd, at);
+  }
+}
+
+void MacroAssembler::Ush(Register rd, const MemOperand& rs, Register scratch) {
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  DCHECK(!rs.rm().is(scratch));
+  DCHECK(!scratch.is(at));
+  if (kArchVariant == kMips64r6) {
+    sh(rd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    MemOperand source = rs;
+    // If offset > 16 bits, load address to at with offset 0.
+    if (!is_int16(rs.offset()) || !is_int16(rs.offset() + 1)) {
+      LoadRegPlusOffsetToAt(rs);
+      source = MemOperand(at, 0);
+    }
+
+    if (!scratch.is(rd)) {
+      mov(scratch, rd);
+    }
+
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+    sb(scratch, source);
+    srl(scratch, scratch, 8);
+    sb(scratch, MemOperand(source.rm(), source.offset() + 1));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+    sb(scratch, MemOperand(source.rm(), source.offset() + 1));
+    srl(scratch, scratch, 8);
+    sb(scratch, source);
+#endif
+  }
+}
+
+void MacroAssembler::Uld(Register rd, const MemOperand& rs) {
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (kArchVariant == kMips64r6) {
+    ld(rd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    if (is_int16(rs.offset() + kMipsLdrOffset) &&
+        is_int16(rs.offset() + kMipsLdlOffset)) {
+      if (!rd.is(rs.rm())) {
+        ldr(rd, MemOperand(rs.rm(), rs.offset() + kMipsLdrOffset));
+        ldl(rd, MemOperand(rs.rm(), rs.offset() + kMipsLdlOffset));
+      } else {
+        ldr(at, MemOperand(rs.rm(), rs.offset() + kMipsLdrOffset));
+        ldl(at, MemOperand(rs.rm(), rs.offset() + kMipsLdlOffset));
+        mov(rd, at);
+      }
+    } else {  // Offset > 16 bits, use multiple instructions to load.
+      LoadRegPlusOffsetToAt(rs);
+      ldr(rd, MemOperand(at, kMipsLdrOffset));
+      ldl(rd, MemOperand(at, kMipsLdlOffset));
+    }
+  }
 }
 
 
@@ -1366,21 +1508,22 @@
   Daddu(rd, rd, scratch);
 }
 
-
-// Do 64-bit store to unaligned address. Note this only handles
-// the specific case of 32-bit aligned, but not 64-bit aligned.
-void MacroAssembler::Usd(Register rd, const MemOperand& rs, Register scratch) {
-  // Assert fail if the offset from start of object IS actually aligned.
-  // ONLY use with known misalignment, since there is performance cost.
-  DCHECK((rs.offset() + kHeapObjectTag) & (kPointerSize - 1));
-  if (kArchEndian == kLittle) {
-    sw(rd, rs);
-    dsrl32(scratch, rd, 0);
-    sw(scratch, MemOperand(rs.rm(), rs.offset() + kPointerSize / 2));
+void MacroAssembler::Usd(Register rd, const MemOperand& rs) {
+  DCHECK(!rd.is(at));
+  DCHECK(!rs.rm().is(at));
+  if (kArchVariant == kMips64r6) {
+    sd(rd, rs);
   } else {
-    sw(rd, MemOperand(rs.rm(), rs.offset() + kPointerSize / 2));
-    dsrl32(scratch, rd, 0);
-    sw(scratch, rs);
+    DCHECK(kArchVariant == kMips64r2);
+    if (is_int16(rs.offset() + kMipsSdrOffset) &&
+        is_int16(rs.offset() + kMipsSdlOffset)) {
+      sdr(rd, MemOperand(rs.rm(), rs.offset() + kMipsSdrOffset));
+      sdl(rd, MemOperand(rs.rm(), rs.offset() + kMipsSdlOffset));
+    } else {
+      LoadRegPlusOffsetToAt(rs);
+      sdr(rd, MemOperand(at, kMipsSdrOffset));
+      sdl(rd, MemOperand(at, kMipsSdlOffset));
+    }
   }
 }
 
@@ -1393,6 +1536,51 @@
   sw(scratch, MemOperand(rs.rm(), rs.offset() + kPointerSize / 2));
 }
 
+void MacroAssembler::Ulwc1(FPURegister fd, const MemOperand& rs,
+                           Register scratch) {
+  if (kArchVariant == kMips64r6) {
+    lwc1(fd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    Ulw(scratch, rs);
+    mtc1(scratch, fd);
+  }
+}
+
+void MacroAssembler::Uswc1(FPURegister fd, const MemOperand& rs,
+                           Register scratch) {
+  if (kArchVariant == kMips64r6) {
+    swc1(fd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    mfc1(scratch, fd);
+    Usw(scratch, rs);
+  }
+}
+
+void MacroAssembler::Uldc1(FPURegister fd, const MemOperand& rs,
+                           Register scratch) {
+  DCHECK(!scratch.is(at));
+  if (kArchVariant == kMips64r6) {
+    ldc1(fd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    Uld(scratch, rs);
+    dmtc1(scratch, fd);
+  }
+}
+
+void MacroAssembler::Usdc1(FPURegister fd, const MemOperand& rs,
+                           Register scratch) {
+  DCHECK(!scratch.is(at));
+  if (kArchVariant == kMips64r6) {
+    sdc1(fd, rs);
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    dmfc1(scratch, fd);
+    Usd(scratch, rs);
+  }
+}
 
 void MacroAssembler::li(Register dst, Handle<Object> value, LiFlags mode) {
   AllowDeferredHandleDereference smi_check;
@@ -4142,12 +4330,14 @@
   // to calculate the new top.
   Daddu(result_end, result, Operand(object_size));
   Branch(gc_required, Ugreater, result_end, Operand(alloc_limit));
-  sd(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    Daddu(result, result, Operand(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    sd(result_end, MemOperand(top_address));
   }
+
+  // Tag object.
+  Daddu(result, result, Operand(kHeapObjectTag));
 }
 
 
@@ -4217,6 +4407,7 @@
   } else {
     Daddu(result_end, result, Operand(object_size));
   }
+
   Branch(gc_required, Ugreater, result_end, Operand(alloc_limit));
 
   // Update allocation top. result temporarily holds the new top.
@@ -4224,14 +4415,91 @@
     And(at, result_end, Operand(kObjectAlignmentMask));
     Check(eq, kUnalignedAllocationInNewSpace, at, Operand(zero_reg));
   }
-  sd(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    Daddu(result, result, Operand(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    sd(result_end, MemOperand(top_address));
   }
+
+  // Tag object if.
+  Daddu(result, result, Operand(kHeapObjectTag));
 }
 
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register scratch1, Register scratch2,
+                                  AllocationFlags flags) {
+  DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK(!AreAliased(result, scratch1, scratch2, at));
+
+  // Make object size into bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    object_size *= kPointerSize;
+  }
+  DCHECK(0 == (object_size & kObjectAlignmentMask));
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  Register top_address = scratch1;
+  Register result_end = scratch2;
+  li(top_address, Operand(allocation_top));
+  ld(result, MemOperand(top_address));
+
+  // We can ignore DOUBLE_ALIGNMENT flags here because doubles and pointers have
+  // the same alignment on MIPS64.
+  STATIC_ASSERT(kPointerAlignment == kDoubleAlignment);
+
+  if (emit_debug_code()) {
+    And(at, result, Operand(kDoubleAlignmentMask));
+    Check(eq, kAllocationIsNotDoubleAligned, at, Operand(zero_reg));
+  }
+
+  // Calculate new top and write it back.
+  Daddu(result_end, result, Operand(object_size));
+  sd(result_end, MemOperand(top_address));
+
+  Daddu(result, result, Operand(kHeapObjectTag));
+}
+
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, Register scratch,
+                                  AllocationFlags flags) {
+  // |object_size| and |result_end| may overlap, other registers must not.
+  DCHECK(!AreAliased(object_size, result, scratch, at));
+  DCHECK(!AreAliased(result_end, result, scratch, at));
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  // Set up allocation top address and object size registers.
+  Register top_address = scratch;
+  li(top_address, Operand(allocation_top));
+  ld(result, MemOperand(top_address));
+
+  // We can ignore DOUBLE_ALIGNMENT flags here because doubles and pointers have
+  // the same alignment on MIPS64.
+  STATIC_ASSERT(kPointerAlignment == kDoubleAlignment);
+
+  if (emit_debug_code()) {
+    And(at, result, Operand(kDoubleAlignmentMask));
+    Check(eq, kAllocationIsNotDoubleAligned, at, Operand(zero_reg));
+  }
+
+  // Calculate new top and write it back
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    Dlsa(result_end, result, object_size, kPointerSizeLog2);
+  } else {
+    Daddu(result_end, result, Operand(object_size));
+  }
+
+  // Update allocation top. result temporarily holds the new top.
+  if (emit_debug_code()) {
+    And(at, result_end, Operand(kObjectAlignmentMask));
+    Check(eq, kUnalignedAllocationInNewSpace, at, Operand(zero_reg));
+  }
+
+  Daddu(result, result, Operand(kHeapObjectTag));
+}
 
 void MacroAssembler::AllocateTwoByteString(Register result,
                                            Register length,
@@ -4248,12 +4516,8 @@
   And(scratch1, scratch1, Operand(~kObjectAlignmentMask));
 
   // Allocate two-byte string in new space.
-  Allocate(scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result,
@@ -4277,12 +4541,8 @@
   And(scratch1, scratch1, Operand(~kObjectAlignmentMask));
 
   // Allocate one-byte string in new space.
-  Allocate(scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result, length, Heap::kOneByteStringMapRootIndex,
@@ -4296,7 +4556,7 @@
                                                Register scratch2,
                                                Label* gc_required) {
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
   InitializeNewString(result,
                       length,
                       Heap::kConsStringMapRootIndex,
@@ -4309,12 +4569,8 @@
                                                Register scratch1,
                                                Register scratch2,
                                                Label* gc_required) {
-  Allocate(ConsString::kSize,
-           result,
-           scratch1,
-           scratch2,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kConsOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -4327,7 +4583,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result,
                       length,
@@ -4343,7 +4599,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kSlicedOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -4369,12 +4625,11 @@
                                         Register scratch2,
                                         Register heap_number_map,
                                         Label* need_gc,
-                                        TaggingMode tagging_mode,
                                         MutableMode mode) {
   // Allocate an object in the heap for the heap number and tag it as a heap
   // object.
   Allocate(HeapNumber::kSize, result, scratch1, scratch2, need_gc,
-           tagging_mode == TAG_RESULT ? TAG_OBJECT : NO_ALLOCATION_FLAGS);
+           NO_ALLOCATION_FLAGS);
 
   Heap::RootListIndex map_index = mode == MUTABLE
       ? Heap::kMutableHeapNumberMapRootIndex
@@ -4382,11 +4637,7 @@
   AssertIsRoot(heap_number_map, map_index);
 
   // Store heap number map in the allocated object.
-  if (tagging_mode == TAG_RESULT) {
-    sd(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
-  } else {
-    sd(heap_number_map, MemOperand(result, HeapObject::kMapOffset));
-  }
+  sd(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
 }
 
 
@@ -4410,7 +4661,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch1, scratch2);
@@ -6225,6 +6477,16 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    STATIC_ASSERT(kSmiTag == 0);
+    SmiTst(object, t8);
+    Check(ne, kOperandIsASmiAndNotAGeneratorObject, t8, Operand(zero_reg));
+    GetObjectType(object, t8, t8);
+    Check(eq, kOperandIsNotAGeneratorObject, t8,
+          Operand(JS_GENERATOR_OBJECT_TYPE));
+  }
+}
 
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
@@ -6696,7 +6958,7 @@
                                                      Label* no_memento_found) {
   Label map_check;
   Label top_check;
-  ExternalReference new_space_allocation_top =
+  ExternalReference new_space_allocation_top_adr =
       ExternalReference::new_space_allocation_top_address(isolate());
   const int kMementoMapOffset = JSArray::kSize - kHeapObjectTag;
   const int kMementoEndOffset = kMementoMapOffset + AllocationMemento::kSize;
@@ -6705,14 +6967,16 @@
   JumpIfNotInNewSpace(receiver_reg, scratch_reg, no_memento_found);
   // If the object is in new space, we need to check whether it is on the same
   // page as the current top.
-  Addu(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
-  Xor(scratch_reg, scratch_reg, Operand(new_space_allocation_top));
+  Daddu(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
+  li(at, Operand(new_space_allocation_top_adr));
+  ld(at, MemOperand(at));
+  Xor(scratch_reg, scratch_reg, Operand(at));
   And(scratch_reg, scratch_reg, Operand(~Page::kPageAlignmentMask));
   Branch(&top_check, eq, scratch_reg, Operand(zero_reg));
   // The object is on a different page than allocation top. Bail out if the
   // object sits on the page boundary as no memento can follow and we cannot
   // touch the memory following it.
-  Addu(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
+  Daddu(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
   Xor(scratch_reg, scratch_reg, Operand(receiver_reg));
   And(scratch_reg, scratch_reg, Operand(~Page::kPageAlignmentMask));
   Branch(no_memento_found, ne, scratch_reg, Operand(zero_reg));
@@ -6721,13 +6985,13 @@
   // If top is on the same page as the current object, we need to check whether
   // we are below top.
   bind(&top_check);
-  Addu(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
-  li(at, Operand(new_space_allocation_top));
-  lw(at, MemOperand(at));
+  Daddu(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
+  li(at, Operand(new_space_allocation_top_adr));
+  ld(at, MemOperand(at));
   Branch(no_memento_found, gt, scratch_reg, Operand(at));
   // Memento map check.
   bind(&map_check);
-  lw(scratch_reg, MemOperand(receiver_reg, kMementoMapOffset));
+  ld(scratch_reg, MemOperand(receiver_reg, kMementoMapOffset));
   Branch(no_memento_found, ne, scratch_reg,
          Operand(isolate()->factory()->allocation_memento_map()));
 }
diff --git a/src/mips64/macro-assembler-mips64.h b/src/mips64/macro-assembler-mips64.h
index 401112d..27a34b3 100644
--- a/src/mips64/macro-assembler-mips64.h
+++ b/src/mips64/macro-assembler-mips64.h
@@ -18,8 +18,8 @@
 const Register kReturnRegister2 = {Register::kCode_a0};
 const Register kJSFunctionRegister = {Register::kCode_a1};
 const Register kContextRegister = {Register::kCpRegister};
+const Register kAllocateSizeRegister = {Register::kCode_a0};
 const Register kInterpreterAccumulatorRegister = {Register::kCode_v0};
-const Register kInterpreterRegisterFileRegister = {Register::kCode_a7};
 const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_t0};
 const Register kInterpreterBytecodeArrayRegister = {Register::kCode_t1};
 const Register kInterpreterDispatchTableRegister = {Register::kCode_t2};
@@ -587,6 +587,15 @@
   void Allocate(Register object_size, Register result, Register result_end,
                 Register scratch, Label* gc_required, AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(int object_size, Register result, Register scratch1,
+                    Register scratch2, AllocationFlags flags);
+
+  void FastAllocate(Register object_size, Register result, Register result_new,
+                    Register scratch, AllocationFlags flags);
+
   void AllocateTwoByteString(Register result,
                              Register length,
                              Register scratch1,
@@ -621,7 +630,6 @@
                           Register scratch2,
                           Register heap_number_map,
                           Label* gc_required,
-                          TaggingMode tagging_mode = TAG_RESULT,
                           MutableMode mode = IMMUTABLE);
 
   void AllocateHeapNumberWithValue(Register result,
@@ -716,10 +724,22 @@
 
   void mov(Register rd, Register rt) { or_(rd, rt, zero_reg); }
 
+  void Ulh(Register rd, const MemOperand& rs);
+  void Ulhu(Register rd, const MemOperand& rs);
+  void Ush(Register rd, const MemOperand& rs, Register scratch);
+
   void Ulw(Register rd, const MemOperand& rs);
+  void Ulwu(Register rd, const MemOperand& rs);
   void Usw(Register rd, const MemOperand& rs);
-  void Uld(Register rd, const MemOperand& rs, Register scratch = at);
-  void Usd(Register rd, const MemOperand& rs, Register scratch = at);
+
+  void Uld(Register rd, const MemOperand& rs);
+  void Usd(Register rd, const MemOperand& rs);
+
+  void Ulwc1(FPURegister fd, const MemOperand& rs, Register scratch);
+  void Uswc1(FPURegister fd, const MemOperand& rs, Register scratch);
+
+  void Uldc1(FPURegister fd, const MemOperand& rs, Register scratch);
+  void Usdc1(FPURegister fd, const MemOperand& rs, Register scratch);
 
   void LoadWordPair(Register rd, const MemOperand& rs, Register scratch = at);
   void StoreWordPair(Register rd, const MemOperand& rs, Register scratch = at);
@@ -1714,6 +1734,10 @@
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
   void AssertReceiver(Register object);
 
diff --git a/src/mips64/simulator-mips64.cc b/src/mips64/simulator-mips64.cc
index 9519865..3157030 100644
--- a/src/mips64/simulator-mips64.cc
+++ b/src/mips64/simulator-mips64.cc
@@ -268,33 +268,42 @@
 
   PrintF("\n");
   // at, v0, a0.
-  PrintF("%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\n",
+  PrintF("%3s: 0x%016" PRIx64 " %14" PRId64 "\t%3s: 0x%016" PRIx64 " %14" PRId64
+         "\t%3s: 0x%016" PRIx64 " %14" PRId64 "\n",
          REG_INFO(1), REG_INFO(2), REG_INFO(4));
   // v1, a1.
-  PrintF("%34s\t%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\n",
+  PrintF("%34s\t%3s: 0x%016" PRIx64 "  %14" PRId64 " \t%3s: 0x%016" PRIx64
+         "  %14" PRId64 " \n",
          "", REG_INFO(3), REG_INFO(5));
   // a2.
-  PrintF("%34s\t%34s\t%3s: 0x%016lx %14ld\n", "", "", REG_INFO(6));
+  PrintF("%34s\t%34s\t%3s: 0x%016" PRIx64 "  %14" PRId64 " \n", "", "",
+         REG_INFO(6));
   // a3.
-  PrintF("%34s\t%34s\t%3s: 0x%016lx %14ld\n", "", "", REG_INFO(7));
+  PrintF("%34s\t%34s\t%3s: 0x%016" PRIx64 "  %14" PRId64 " \n", "", "",
+         REG_INFO(7));
   PrintF("\n");
   // a4-t3, s0-s7
   for (int i = 0; i < 8; i++) {
-    PrintF("%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\n",
-           REG_INFO(8+i), REG_INFO(16+i));
+    PrintF("%3s: 0x%016" PRIx64 "  %14" PRId64 " \t%3s: 0x%016" PRIx64
+           "  %14" PRId64 " \n",
+           REG_INFO(8 + i), REG_INFO(16 + i));
   }
   PrintF("\n");
   // t8, k0, LO.
-  PrintF("%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\n",
+  PrintF("%3s: 0x%016" PRIx64 "  %14" PRId64 " \t%3s: 0x%016" PRIx64
+         "  %14" PRId64 " \t%3s: 0x%016" PRIx64 "  %14" PRId64 " \n",
          REG_INFO(24), REG_INFO(26), REG_INFO(32));
   // t9, k1, HI.
-  PrintF("%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\n",
+  PrintF("%3s: 0x%016" PRIx64 "  %14" PRId64 " \t%3s: 0x%016" PRIx64
+         "  %14" PRId64 " \t%3s: 0x%016" PRIx64 "  %14" PRId64 " \n",
          REG_INFO(25), REG_INFO(27), REG_INFO(33));
   // sp, fp, gp.
-  PrintF("%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\n",
+  PrintF("%3s: 0x%016" PRIx64 "  %14" PRId64 " \t%3s: 0x%016" PRIx64
+         "  %14" PRId64 " \t%3s: 0x%016" PRIx64 "  %14" PRId64 " \n",
          REG_INFO(29), REG_INFO(30), REG_INFO(28));
   // pc.
-  PrintF("%3s: 0x%016lx %14ld\t%3s: 0x%016lx %14ld\n",
+  PrintF("%3s: 0x%016" PRIx64 "  %14" PRId64 " \t%3s: 0x%016" PRIx64
+         "  %14" PRId64 " \n",
          REG_INFO(31), REG_INFO(34));
 
 #undef REG_INFO
@@ -312,38 +321,38 @@
   PrintF("\n\n");
   // f0, f1, f2, ... f31.
   // TODO(plind): consider printing 2 columns for space efficiency.
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(0) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(1) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(2) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(3) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(4) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(5) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(6) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(7) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(8) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(9) );
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(10));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(11));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(12));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(13));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(14));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(15));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(16));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(17));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(18));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(19));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(20));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(21));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(22));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(23));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(24));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(25));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(26));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(27));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(28));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(29));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(30));
-  PrintF("%3s: 0x%016lx %16.4e\n", FPU_REG_INFO(31));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(0));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(1));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(2));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(3));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(4));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(5));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(6));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(7));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(8));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(9));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(10));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(11));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(12));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(13));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(14));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(15));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(16));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(17));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(18));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(19));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(20));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(21));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(22));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(23));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(24));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(25));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(26));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(27));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(28));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(29));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(30));
+  PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n", FPU_REG_INFO(31));
 
 #undef REG_INFO
 #undef FPU_REG_INFO
@@ -382,7 +391,7 @@
       v8::internal::EmbeddedVector<char, 256> buffer;
       dasm.InstructionDecode(buffer,
                              reinterpret_cast<byte*>(sim_->get_pc()));
-      PrintF("  0x%016lx  %s\n", sim_->get_pc(), buffer.start());
+      PrintF("  0x%016" PRIx64 "   %s\n", sim_->get_pc(), buffer.start());
       last_pc = sim_->get_pc();
     }
     char* line = ReadLine("sim> ");
@@ -433,11 +442,12 @@
 
             if (regnum != kInvalidRegister) {
               value = GetRegisterValue(regnum);
-              PrintF("%s: 0x%08lx %ld \n", arg1, value, value);
+              PrintF("%s: 0x%08" PRIx64 "  %" PRId64 "  \n", arg1, value,
+                     value);
             } else if (fpuregnum != kInvalidFPURegister) {
               value = GetFPURegisterValue(fpuregnum);
               dvalue = GetFPURegisterValueDouble(fpuregnum);
-              PrintF("%3s: 0x%016lx %16.4e\n",
+              PrintF("%3s: 0x%016" PRIx64 "  %16.4e\n",
                      FPURegisters::Name(fpuregnum), value, dvalue);
             } else {
               PrintF("%s unrecognized\n", arg1);
@@ -454,7 +464,7 @@
                 value = GetFPURegisterValue(fpuregnum);
                 value &= 0xffffffffUL;
                 fvalue = GetFPURegisterValueFloat(fpuregnum);
-                PrintF("%s: 0x%08lx %11.4e\n", arg1, value, fvalue);
+                PrintF("%s: 0x%08" PRIx64 "  %11.4e\n", arg1, value, fvalue);
               } else {
                 PrintF("%s unrecognized\n", arg1);
               }
@@ -513,7 +523,7 @@
         end = cur + words;
 
         while (cur < end) {
-          PrintF("  0x%012lx:  0x%016lx %14ld",
+          PrintF("  0x%012" PRIxPTR " :  0x%016" PRIx64 "  %14" PRId64 " ",
                  reinterpret_cast<intptr_t>(cur), *cur, *cur);
           HeapObject* obj = reinterpret_cast<HeapObject*>(*cur);
           int64_t value = *cur;
@@ -576,8 +586,8 @@
 
         while (cur < end) {
           dasm.InstructionDecode(buffer, cur);
-          PrintF("  0x%08lx  %s\n",
-              reinterpret_cast<intptr_t>(cur), buffer.start());
+          PrintF("  0x%08" PRIxPTR "   %s\n", reinterpret_cast<intptr_t>(cur),
+                 buffer.start());
           cur += Instruction::kInstrSize;
         }
       } else if (strcmp(cmd, "gdb") == 0) {
@@ -698,8 +708,8 @@
 
         while (cur < end) {
           dasm.InstructionDecode(buffer, cur);
-          PrintF("  0x%08lx  %s\n",
-                 reinterpret_cast<intptr_t>(cur), buffer.start());
+          PrintF("  0x%08" PRIxPTR "   %s\n", reinterpret_cast<intptr_t>(cur),
+                 buffer.start());
           cur += Instruction::kInstrSize;
         }
       } else if ((strcmp(cmd, "h") == 0) || (strcmp(cmd, "help") == 0)) {
@@ -1683,7 +1693,7 @@
 
 void Simulator::TraceRegWr(int64_t value) {
   if (::v8::internal::FLAG_trace_sim) {
-    SNPrintF(trace_buf_, "%016lx", value);
+    SNPrintF(trace_buf_, "%016" PRIx64 " ", value);
   }
 }
 
@@ -1691,8 +1701,9 @@
 // TODO(plind): consider making icount_ printing a flag option.
 void Simulator::TraceMemRd(int64_t addr, int64_t value) {
   if (::v8::internal::FLAG_trace_sim) {
-    SNPrintF(trace_buf_, "%016lx <-- [%016lx]    (%ld)",
-             value, addr, icount_);
+    SNPrintF(trace_buf_,
+             "%016" PRIx64 "  <-- [%016" PRIx64 " ]    (%" PRId64 " )", value,
+             addr, icount_);
   }
 }
 
@@ -1701,19 +1712,20 @@
   if (::v8::internal::FLAG_trace_sim) {
     switch (t) {
       case BYTE:
-        SNPrintF(trace_buf_, "               %02x --> [%016lx]",
+        SNPrintF(trace_buf_, "               %02x --> [%016" PRIx64 " ]",
                  static_cast<int8_t>(value), addr);
         break;
       case HALF:
-        SNPrintF(trace_buf_, "            %04x --> [%016lx]",
+        SNPrintF(trace_buf_, "            %04x --> [%016" PRIx64 " ]",
                  static_cast<int16_t>(value), addr);
         break;
       case WORD:
-        SNPrintF(trace_buf_, "        %08x --> [%016lx]",
+        SNPrintF(trace_buf_, "        %08x --> [%016" PRIx64 " ]",
                  static_cast<int32_t>(value), addr);
         break;
       case DWORD:
-        SNPrintF(trace_buf_, "%016lx --> [%016lx]    (%ld)",
+        SNPrintF(trace_buf_,
+                 "%016" PRIx64 "  --> [%016" PRIx64 " ]    (%" PRId64 " )",
                  value, addr, icount_);
         break;
     }
@@ -1726,17 +1738,17 @@
 int32_t Simulator::ReadW(int64_t addr, Instruction* instr) {
   if (addr >=0 && addr < 0x400) {
     // This has to be a NULL-dereference, drop into debugger.
-    PrintF("Memory read from bad address: 0x%08lx, pc=0x%08lx\n",
+    PrintF("Memory read from bad address: 0x%08" PRIx64 " , pc=0x%08" PRIxPTR
+           " \n",
            addr, reinterpret_cast<intptr_t>(instr));
     DieOrDebug();
   }
-  if ((addr & 0x3) == 0) {
+  if ((addr & 0x3) == 0 || kArchVariant == kMips64r6) {
     int32_t* ptr = reinterpret_cast<int32_t*>(addr);
     TraceMemRd(addr, static_cast<int64_t>(*ptr));
     return *ptr;
   }
-  PrintF("Unaligned read at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
+  PrintF("Unaligned read at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR "\n", addr,
          reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
   return 0;
@@ -1746,17 +1758,17 @@
 uint32_t Simulator::ReadWU(int64_t addr, Instruction* instr) {
   if (addr >=0 && addr < 0x400) {
     // This has to be a NULL-dereference, drop into debugger.
-    PrintF("Memory read from bad address: 0x%08lx, pc=0x%08lx\n",
+    PrintF("Memory read from bad address: 0x%08" PRIx64 " , pc=0x%08" PRIxPTR
+           " \n",
            addr, reinterpret_cast<intptr_t>(instr));
     DieOrDebug();
   }
-  if ((addr & 0x3) == 0) {
+  if ((addr & 0x3) == 0 || kArchVariant == kMips64r6) {
     uint32_t* ptr = reinterpret_cast<uint32_t*>(addr);
     TraceMemRd(addr, static_cast<int64_t>(*ptr));
     return *ptr;
   }
-  PrintF("Unaligned read at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
+  PrintF("Unaligned read at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR "\n", addr,
          reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
   return 0;
@@ -1766,18 +1778,18 @@
 void Simulator::WriteW(int64_t addr, int32_t value, Instruction* instr) {
   if (addr >= 0 && addr < 0x400) {
     // This has to be a NULL-dereference, drop into debugger.
-    PrintF("Memory write to bad address: 0x%08lx, pc=0x%08lx\n",
+    PrintF("Memory write to bad address: 0x%08" PRIx64 " , pc=0x%08" PRIxPTR
+           " \n",
            addr, reinterpret_cast<intptr_t>(instr));
     DieOrDebug();
   }
-  if ((addr & 0x3) == 0) {
+  if ((addr & 0x3) == 0 || kArchVariant == kMips64r6) {
     TraceMemWr(addr, value, WORD);
     int* ptr = reinterpret_cast<int*>(addr);
     *ptr = value;
     return;
   }
-  PrintF("Unaligned write at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
+  PrintF("Unaligned write at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR "\n", addr,
          reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
 }
@@ -1786,17 +1798,17 @@
 int64_t Simulator::Read2W(int64_t addr, Instruction* instr) {
   if (addr >=0 && addr < 0x400) {
     // This has to be a NULL-dereference, drop into debugger.
-    PrintF("Memory read from bad address: 0x%08lx, pc=0x%08lx\n",
+    PrintF("Memory read from bad address: 0x%08" PRIx64 " , pc=0x%08" PRIxPTR
+           " \n",
            addr, reinterpret_cast<intptr_t>(instr));
     DieOrDebug();
   }
-  if ((addr & kPointerAlignmentMask) == 0) {
+  if ((addr & kPointerAlignmentMask) == 0 || kArchVariant == kMips64r6) {
     int64_t* ptr = reinterpret_cast<int64_t*>(addr);
     TraceMemRd(addr, *ptr);
     return *ptr;
   }
-  PrintF("Unaligned read at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
+  PrintF("Unaligned read at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR "\n", addr,
          reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
   return 0;
@@ -1806,102 +1818,100 @@
 void Simulator::Write2W(int64_t addr, int64_t value, Instruction* instr) {
   if (addr >= 0 && addr < 0x400) {
     // This has to be a NULL-dereference, drop into debugger.
-    PrintF("Memory write to bad address: 0x%08lx, pc=0x%08lx\n",
+    PrintF("Memory write to bad address: 0x%08" PRIx64 " , pc=0x%08" PRIxPTR
+           "\n",
            addr, reinterpret_cast<intptr_t>(instr));
     DieOrDebug();
   }
-  if ((addr & kPointerAlignmentMask) == 0) {
+  if ((addr & kPointerAlignmentMask) == 0 || kArchVariant == kMips64r6) {
     TraceMemWr(addr, value, DWORD);
     int64_t* ptr = reinterpret_cast<int64_t*>(addr);
     *ptr = value;
     return;
   }
-  PrintF("Unaligned write at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
+  PrintF("Unaligned write at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR "\n", addr,
          reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
 }
 
 
 double Simulator::ReadD(int64_t addr, Instruction* instr) {
-  if ((addr & kDoubleAlignmentMask) == 0) {
+  if ((addr & kDoubleAlignmentMask) == 0 || kArchVariant == kMips64r6) {
     double* ptr = reinterpret_cast<double*>(addr);
     return *ptr;
   }
-  PrintF("Unaligned (double) read at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
-         reinterpret_cast<intptr_t>(instr));
+  PrintF("Unaligned (double) read at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR "\n",
+         addr, reinterpret_cast<intptr_t>(instr));
   base::OS::Abort();
   return 0;
 }
 
 
 void Simulator::WriteD(int64_t addr, double value, Instruction* instr) {
-  if ((addr & kDoubleAlignmentMask) == 0) {
+  if ((addr & kDoubleAlignmentMask) == 0 || kArchVariant == kMips64r6) {
     double* ptr = reinterpret_cast<double*>(addr);
     *ptr = value;
     return;
   }
-  PrintF("Unaligned (double) write at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
-         reinterpret_cast<intptr_t>(instr));
+  PrintF("Unaligned (double) write at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR
+         "\n",
+         addr, reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
 }
 
 
 uint16_t Simulator::ReadHU(int64_t addr, Instruction* instr) {
-  if ((addr & 1) == 0) {
+  if ((addr & 1) == 0 || kArchVariant == kMips64r6) {
     uint16_t* ptr = reinterpret_cast<uint16_t*>(addr);
     TraceMemRd(addr, static_cast<int64_t>(*ptr));
     return *ptr;
   }
-  PrintF("Unaligned unsigned halfword read at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
-         reinterpret_cast<intptr_t>(instr));
+  PrintF("Unaligned unsigned halfword read at 0x%08" PRIx64
+         " , pc=0x%08" V8PRIxPTR "\n",
+         addr, reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
   return 0;
 }
 
 
 int16_t Simulator::ReadH(int64_t addr, Instruction* instr) {
-  if ((addr & 1) == 0) {
+  if ((addr & 1) == 0 || kArchVariant == kMips64r6) {
     int16_t* ptr = reinterpret_cast<int16_t*>(addr);
     TraceMemRd(addr, static_cast<int64_t>(*ptr));
     return *ptr;
   }
-  PrintF("Unaligned signed halfword read at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
-         reinterpret_cast<intptr_t>(instr));
+  PrintF("Unaligned signed halfword read at 0x%08" PRIx64
+         " , pc=0x%08" V8PRIxPTR "\n",
+         addr, reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
   return 0;
 }
 
 
 void Simulator::WriteH(int64_t addr, uint16_t value, Instruction* instr) {
-  if ((addr & 1) == 0) {
+  if ((addr & 1) == 0 || kArchVariant == kMips64r6) {
     TraceMemWr(addr, value, HALF);
     uint16_t* ptr = reinterpret_cast<uint16_t*>(addr);
     *ptr = value;
     return;
   }
-  PrintF(
-      "Unaligned unsigned halfword write at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-      addr,
-      reinterpret_cast<intptr_t>(instr));
+  PrintF("Unaligned unsigned halfword write at 0x%08" PRIx64
+         " , pc=0x%08" V8PRIxPTR "\n",
+         addr, reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
 }
 
 
 void Simulator::WriteH(int64_t addr, int16_t value, Instruction* instr) {
-  if ((addr & 1) == 0) {
+  if ((addr & 1) == 0 || kArchVariant == kMips64r6) {
     TraceMemWr(addr, value, HALF);
     int16_t* ptr = reinterpret_cast<int16_t*>(addr);
     *ptr = value;
     return;
   }
-  PrintF("Unaligned halfword write at 0x%08lx, pc=0x%08" V8PRIxPTR "\n",
-         addr,
-         reinterpret_cast<intptr_t>(instr));
+  PrintF("Unaligned halfword write at 0x%08" PRIx64 " , pc=0x%08" V8PRIxPTR
+         "\n",
+         addr, reinterpret_cast<intptr_t>(instr));
   DieOrDebug();
 }
 
@@ -1950,7 +1960,7 @@
 
 // Unsupported instructions use Format to print an error and stop execution.
 void Simulator::Format(Instruction* instr, const char* format) {
-  PrintF("Simulator found unsupported instruction:\n 0x%08lx: %s\n",
+  PrintF("Simulator found unsupported instruction:\n 0x%08" PRIxPTR " : %s\n",
          reinterpret_cast<intptr_t>(instr), format);
   UNIMPLEMENTED_MIPS();
 }
@@ -2133,8 +2143,8 @@
       }
     } else if (redirection->type() == ExternalReference::DIRECT_API_CALL) {
       if (::v8::internal::FLAG_trace_sim) {
-        PrintF("Call to host function at %p args %08lx\n",
-            reinterpret_cast<void*>(external), arg0);
+        PrintF("Call to host function at %p args %08" PRIx64 " \n",
+               reinterpret_cast<void*>(external), arg0);
       }
       SimulatorRuntimeDirectApiCall target =
           reinterpret_cast<SimulatorRuntimeDirectApiCall>(external);
@@ -2142,8 +2152,9 @@
     } else if (
         redirection->type() == ExternalReference::PROFILING_API_CALL) {
       if (::v8::internal::FLAG_trace_sim) {
-        PrintF("Call to host function at %p args %08lx %08lx\n",
-            reinterpret_cast<void*>(external), arg0, arg1);
+        PrintF("Call to host function at %p args %08" PRIx64 "  %08" PRIx64
+               " \n",
+               reinterpret_cast<void*>(external), arg0, arg1);
       }
       SimulatorRuntimeProfilingApiCall target =
           reinterpret_cast<SimulatorRuntimeProfilingApiCall>(external);
@@ -2151,8 +2162,9 @@
     } else if (
         redirection->type() == ExternalReference::DIRECT_GETTER_CALL) {
       if (::v8::internal::FLAG_trace_sim) {
-        PrintF("Call to host function at %p args %08lx %08lx\n",
-            reinterpret_cast<void*>(external), arg0, arg1);
+        PrintF("Call to host function at %p args %08" PRIx64 "  %08" PRIx64
+               " \n",
+               reinterpret_cast<void*>(external), arg0, arg1);
       }
       SimulatorRuntimeDirectGetterCall target =
           reinterpret_cast<SimulatorRuntimeDirectGetterCall>(external);
@@ -2160,8 +2172,9 @@
     } else if (
         redirection->type() == ExternalReference::PROFILING_GETTER_CALL) {
       if (::v8::internal::FLAG_trace_sim) {
-        PrintF("Call to host function at %p args %08lx %08lx %08lx\n",
-            reinterpret_cast<void*>(external), arg0, arg1, arg2);
+        PrintF("Call to host function at %p args %08" PRIx64 "  %08" PRIx64
+               "  %08" PRIx64 " \n",
+               reinterpret_cast<void*>(external), arg0, arg1, arg2);
       }
       SimulatorRuntimeProfilingGetterCall target =
           reinterpret_cast<SimulatorRuntimeProfilingGetterCall>(external);
@@ -2195,14 +2208,9 @@
       if (::v8::internal::FLAG_trace_sim) {
         PrintF(
             "Call to host function at %p "
-            "args %08lx, %08lx, %08lx, %08lx, %08lx, %08lx\n",
-            FUNCTION_ADDR(target),
-            arg0,
-            arg1,
-            arg2,
-            arg3,
-            arg4,
-            arg5);
+            "args %08" PRIx64 " , %08" PRIx64 " , %08" PRIx64 " , %08" PRIx64
+            " , %08" PRIx64 " , %08" PRIx64 " \n",
+            FUNCTION_ADDR(target), arg0, arg1, arg2, arg3, arg4, arg5);
       }
       // int64_t result = target(arg0, arg1, arg2, arg3, arg4, arg5);
       // set_register(v0, static_cast<int32_t>(result));
@@ -2212,7 +2220,8 @@
       set_register(v1, (int64_t)(result.y));
     }
      if (::v8::internal::FLAG_trace_sim) {
-      PrintF("Returned %08lx : %08lx\n", get_register(v1), get_register(v0));
+       PrintF("Returned %08" PRIx64 "  : %08" PRIx64 " \n", get_register(v1),
+              get_register(v0));
     }
     set_register(ra, saved_ra);
     set_pc(get_register(ra));
@@ -2241,7 +2250,8 @@
 void Simulator::PrintWatchpoint(uint64_t code) {
   MipsDebugger dbg(this);
   ++break_count_;
-  PrintF("\n---- break %ld marker: %3d  (instr count: %8ld) ----------"
+  PrintF("\n---- break %" PRId64 "  marker: %3d  (instr count: %8" PRId64
+         " ) ----------"
          "----------------------------------",
          code, break_count_, icount_);
   dbg.PrintAllRegs();  // Print registers and continue running.
@@ -2291,8 +2301,10 @@
 void Simulator::IncreaseStopCounter(uint64_t code) {
   DCHECK(code <= kMaxStopCode);
   if ((watched_stops_[code].count & ~(1 << 31)) == 0x7fffffff) {
-    PrintF("Stop counter for code %ld has overflowed.\n"
-           "Enabling this code and reseting the counter to 0.\n", code);
+    PrintF("Stop counter for code %" PRId64
+           "  has overflowed.\n"
+           "Enabling this code and reseting the counter to 0.\n",
+           code);
     watched_stops_[code].count = 0;
     EnableStop(code);
   } else {
@@ -2315,11 +2327,11 @@
   // Don't print the state of unused breakpoints.
   if (count != 0) {
     if (watched_stops_[code].desc) {
-      PrintF("stop %ld - 0x%lx: \t%s, \tcounter = %i, \t%s\n",
+      PrintF("stop %" PRId64 "  - 0x%" PRIx64 " : \t%s, \tcounter = %i, \t%s\n",
              code, code, state, count, watched_stops_[code].desc);
     } else {
-      PrintF("stop %ld - 0x%lx: \t%s, \tcounter = %i\n",
-             code, code, state, count);
+      PrintF("stop %" PRId64 "  - 0x%" PRIx64 " : \t%s, \tcounter = %i\n", code,
+             code, state, count);
     }
   }
 }
@@ -3420,21 +3432,50 @@
         // bits instruction. RS field is always equal to 0.
         // Sign-extend the 32-bit result.
         alu_out = static_cast<int32_t>(static_cast<uint32_t>(rt_u()) >> sa());
-      } else {
+      } else if (rs_reg() == 1) {
         // Logical right-rotate of a word by a fixed number of bits. This
         // is special case of SRL instruction, added in MIPS32 Release 2.
         // RS field is equal to 00001.
         alu_out = static_cast<int32_t>(
             base::bits::RotateRight32(static_cast<const uint32_t>(rt_u()),
                                       static_cast<const uint32_t>(sa())));
+      } else {
+        UNREACHABLE();
       }
       SetResult(rd_reg(), alu_out);
       break;
     case DSRL:
-      SetResult(rd_reg(), rt_u() >> sa());
+      if (rs_reg() == 0) {
+        // Regular logical right shift of a word by a fixed number of
+        // bits instruction. RS field is always equal to 0.
+        // Sign-extend the 64-bit result.
+        alu_out = static_cast<int64_t>(rt_u() >> sa());
+      } else if (rs_reg() == 1) {
+        // Logical right-rotate of a word by a fixed number of bits. This
+        // is special case of SRL instruction, added in MIPS32 Release 2.
+        // RS field is equal to 00001.
+        alu_out = static_cast<int64_t>(base::bits::RotateRight64(rt_u(), sa()));
+      } else {
+        UNREACHABLE();
+      }
+      SetResult(rd_reg(), alu_out);
       break;
     case DSRL32:
-      SetResult(rd_reg(), rt_u() >> sa() >> 32);
+      if (rs_reg() == 0) {
+        // Regular logical right shift of a word by a fixed number of
+        // bits instruction. RS field is always equal to 0.
+        // Sign-extend the 64-bit result.
+        alu_out = static_cast<int64_t>(rt_u() >> sa() >> 32);
+      } else if (rs_reg() == 1) {
+        // Logical right-rotate of a word by a fixed number of bits. This
+        // is special case of SRL instruction, added in MIPS32 Release 2.
+        // RS field is equal to 00001.
+        alu_out =
+            static_cast<int64_t>(base::bits::RotateRight64(rt_u(), sa() + 32));
+      } else {
+        UNREACHABLE();
+      }
+      SetResult(rd_reg(), alu_out);
       break;
     case SRA:
       SetResult(rd_reg(), (int32_t)rt() >> sa());
@@ -3470,12 +3511,13 @@
       if (sa() == 0) {
         // Regular logical right-shift of a word by a variable number of
         // bits instruction. SA field is always equal to 0.
-        alu_out = rt_u() >> rs();
+        alu_out = static_cast<int64_t>(rt_u() >> rs());
       } else {
         // Logical right-rotate of a word by a variable number of bits.
         // This is special case od SRLV instruction, added in MIPS32
         // Release 2. SA field is equal to 00001.
-        alu_out = base::bits::RotateRight64(rt_u(), rs_u());
+        alu_out =
+            static_cast<int64_t>(base::bits::RotateRight64(rt_u(), rs_u()));
       }
       SetResult(rd_reg(), alu_out);
       break;
@@ -3777,6 +3819,9 @@
     case TNE:
       do_interrupt = rs() != rt();
       break;
+    case SYNC:
+      // TODO(palfia): Ignore sync instruction for now.
+      break;
     // Conditional moves.
     case MOVN:
       if (rt()) {
@@ -4119,6 +4164,8 @@
   int64_t addr = 0x0;
   // Alignment for 32-bit integers used in LWL, LWR, etc.
   const int kInt32AlignmentMask = sizeof(uint32_t) - 1;
+  // Alignment for 64-bit integers used in LDL, LDR, etc.
+  const int kInt64AlignmentMask = sizeof(uint64_t) - 1;
 
   // Branch instructions common part.
   auto BranchAndLinkHelper = [this, instr, &next_pc,
@@ -4366,6 +4413,7 @@
       break;
     // ------------- Arithmetic instructions.
     case ADDIU: {
+      DCHECK(is_int32(rs));
       int32_t alu32_out = static_cast<int32_t>(rs + se_imm16);
       // Sign-extend result of 32bit operation into 64bit register.
       SetResult(rt_reg, static_cast<int64_t>(alu32_out));
@@ -4420,10 +4468,10 @@
       uint8_t byte_shift = kInt32AlignmentMask - al_offset;
       uint32_t mask = (1 << byte_shift * 8) - 1;
       addr = rs + se_imm16 - al_offset;
-      alu_out = ReadW(addr, instr);
-      alu_out <<= byte_shift * 8;
-      alu_out |= rt & mask;
-      set_register(rt_reg, alu_out);
+      int32_t val = ReadW(addr, instr);
+      val <<= byte_shift * 8;
+      val |= rt & mask;
+      set_register(rt_reg, static_cast<int64_t>(val));
       break;
     }
     case LW:
@@ -4453,6 +4501,30 @@
       set_register(rt_reg, alu_out);
       break;
     }
+    case LDL: {
+      // al_offset is offset of the effective address within an aligned word.
+      uint8_t al_offset = (rs + se_imm16) & kInt64AlignmentMask;
+      uint8_t byte_shift = kInt64AlignmentMask - al_offset;
+      uint64_t mask = (1UL << byte_shift * 8) - 1;
+      addr = rs + se_imm16 - al_offset;
+      alu_out = Read2W(addr, instr);
+      alu_out <<= byte_shift * 8;
+      alu_out |= rt & mask;
+      set_register(rt_reg, alu_out);
+      break;
+    }
+    case LDR: {
+      // al_offset is offset of the effective address within an aligned word.
+      uint8_t al_offset = (rs + se_imm16) & kInt64AlignmentMask;
+      uint8_t byte_shift = kInt64AlignmentMask - al_offset;
+      uint64_t mask = al_offset ? (~0UL << (byte_shift + 1) * 8) : 0UL;
+      addr = rs + se_imm16 - al_offset;
+      alu_out = Read2W(addr, instr);
+      alu_out = alu_out >> al_offset * 8;
+      alu_out |= rt & mask;
+      set_register(rt_reg, alu_out);
+      break;
+    }
     case SB:
       WriteB(rs + se_imm16, static_cast<int8_t>(rt));
       break;
@@ -4484,6 +4556,25 @@
       WriteW(addr, static_cast<int32_t>(mem_value), instr);
       break;
     }
+    case SDL: {
+      uint8_t al_offset = (rs + se_imm16) & kInt64AlignmentMask;
+      uint8_t byte_shift = kInt64AlignmentMask - al_offset;
+      uint64_t mask = byte_shift ? (~0UL << (al_offset + 1) * 8) : 0;
+      addr = rs + se_imm16 - al_offset;
+      uint64_t mem_value = Read2W(addr, instr) & mask;
+      mem_value |= rt >> byte_shift * 8;
+      Write2W(addr, mem_value, instr);
+      break;
+    }
+    case SDR: {
+      uint8_t al_offset = (rs + se_imm16) & kInt64AlignmentMask;
+      uint64_t mask = (1UL << al_offset * 8) - 1;
+      addr = rs + se_imm16 - al_offset;
+      uint64_t mem_value = Read2W(addr, instr);
+      mem_value = (rt << al_offset * 8) | (mem_value & mask);
+      Write2W(addr, mem_value, instr);
+      break;
+    }
     case LWC1:
       set_fpu_register(ft_reg, kFPUInvalidResult);  // Trash upper 32 bits.
       set_fpu_register_word(ft_reg, ReadW(rs + se_imm16, instr));
@@ -4642,8 +4733,9 @@
   }
 
   if (::v8::internal::FLAG_trace_sim) {
-    PrintF("  0x%08lx  %-44s   %s\n", reinterpret_cast<intptr_t>(instr),
-        buffer.start(), trace_buf_.start());
+    PrintF("  0x%08" PRIxPTR "   %-44s   %s\n",
+           reinterpret_cast<intptr_t>(instr), buffer.start(),
+           trace_buf_.start());
   }
 
   if (!pc_modified_) {
diff --git a/src/objects-body-descriptors-inl.h b/src/objects-body-descriptors-inl.h
index bfc1895..ee2e01e 100644
--- a/src/objects-body-descriptors-inl.h
+++ b/src/objects-body-descriptors-inl.h
@@ -472,6 +472,7 @@
     case JS_REGEXP_TYPE:
     case JS_GLOBAL_PROXY_TYPE:
     case JS_GLOBAL_OBJECT_TYPE:
+    case JS_API_OBJECT_TYPE:
     case JS_SPECIAL_API_OBJECT_TYPE:
     case JS_MESSAGE_OBJECT_TYPE:
     case JS_BOUND_FUNCTION_TYPE:
diff --git a/src/objects-debug.cc b/src/objects-debug.cc
index b023b03..a8728fc 100644
--- a/src/objects-debug.cc
+++ b/src/objects-debug.cc
@@ -99,6 +99,7 @@
       Oddball::cast(this)->OddballVerify();
       break;
     case JS_OBJECT_TYPE:
+    case JS_API_OBJECT_TYPE:
     case JS_SPECIAL_API_OBJECT_TYPE:
     case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
     case JS_PROMISE_TYPE:
@@ -209,7 +210,7 @@
 void Symbol::SymbolVerify() {
   CHECK(IsSymbol());
   CHECK(HasHashCode());
-  CHECK(GetHeap()->hidden_properties_symbol() == this || Hash() > 0u);
+  CHECK(Hash() > 0u);
   CHECK(name()->IsUndefined() || name()->IsString());
 }
 
@@ -369,21 +370,6 @@
 }
 
 
-void CodeCache::CodeCacheVerify() {
-  VerifyHeapPointer(default_cache());
-  VerifyHeapPointer(normal_type_cache());
-  CHECK(default_cache()->IsFixedArray());
-  CHECK(normal_type_cache()->IsUndefined()
-         || normal_type_cache()->IsCodeCacheHashTable());
-}
-
-
-void PolymorphicCodeCache::PolymorphicCodeCacheVerify() {
-  VerifyHeapPointer(cache());
-  CHECK(cache()->IsUndefined() || cache()->IsPolymorphicCodeCacheHashTable());
-}
-
-
 void TypeFeedbackInfo::TypeFeedbackInfoVerify() {
   VerifyObjectField(kStorage1Offset);
   VerifyObjectField(kStorage2Offset);
@@ -623,7 +609,7 @@
     CHECK(number->IsSmi());
     int value = Smi::cast(number)->value();
     // Hidden oddballs have negative smis.
-    const int kLeastHiddenOddballNumber = -6;
+    const int kLeastHiddenOddballNumber = -7;
     CHECK_LE(value, 1);
     CHECK(value >= kLeastHiddenOddballNumber);
   }
@@ -648,6 +634,8 @@
     CHECK(this == heap->exception());
   } else if (map() == heap->optimized_out_map()) {
     CHECK(this == heap->optimized_out());
+  } else if (map() == heap->stale_register_map()) {
+    CHECK(this == heap->stale_register());
   } else {
     UNREACHABLE();
   }
@@ -921,6 +909,7 @@
   VerifyPointer(expected_receiver_type());
   VerifyPointer(getter());
   VerifyPointer(setter());
+  VerifyPointer(js_getter());
   VerifyPointer(data());
 }
 
diff --git a/src/objects-inl.h b/src/objects-inl.h
index f4d7fb9..a64d9ff 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -18,6 +18,7 @@
 #include "src/conversions-inl.h"
 #include "src/factory.h"
 #include "src/field-index-inl.h"
+#include "src/field-type.h"
 #include "src/handles-inl.h"
 #include "src/heap/heap-inl.h"
 #include "src/heap/heap.h"
@@ -874,10 +875,6 @@
 
 bool HeapObject::IsCodeCacheHashTable() const { return IsHashTable(); }
 
-bool HeapObject::IsPolymorphicCodeCacheHashTable() const {
-  return IsHashTable();
-}
-
 bool HeapObject::IsMapCache() const { return IsHashTable(); }
 
 bool HeapObject::IsObjectHashTable() const { return IsHashTable(); }
@@ -1150,6 +1147,12 @@
       object, HeapObject::RawField(object, offset), value); \
   heap->RecordWrite(object, offset, value);
 
+#define FIXED_ARRAY_ELEMENTS_WRITE_BARRIER(heap, array, start, length) \
+  do {                                                                 \
+    heap->RecordFixedArrayElements(array, start, length);              \
+    heap->incremental_marking()->IterateBlackObject(array);            \
+  } while (false)
+
 #define CONDITIONAL_WRITE_BARRIER(heap, object, offset, value, mode) \
   if (mode != SKIP_WRITE_BARRIER) {                                  \
     if (mode == UPDATE_WRITE_BARRIER) {                              \
@@ -1260,8 +1263,7 @@
   return reinterpret_cast<Map*>(value_);
 }
 
-
-bool MapWord::IsForwardingAddress() {
+bool MapWord::IsForwardingAddress() const {
   return HAS_SMI_TAG(reinterpret_cast<Object*>(value_));
 }
 
@@ -1784,7 +1786,7 @@
                                         Object** objects,
                                         uint32_t count,
                                         EnsureElementsMode mode) {
-  ElementsKind current_kind = object->map()->elements_kind();
+  ElementsKind current_kind = object->GetElementsKind();
   ElementsKind target_kind = current_kind;
   {
     DisallowHeapAllocation no_allocation;
@@ -1908,6 +1910,13 @@
       constructor->shared()->get_api_func_data()->indexed_property_handler());
 }
 
+double Oddball::to_number_raw() const {
+  return READ_DOUBLE_FIELD(this, kToNumberRawOffset);
+}
+
+void Oddball::set_to_number_raw(double value) {
+  WRITE_DOUBLE_FIELD(this, kToNumberRawOffset, value);
+}
 
 ACCESSORS(Oddball, to_string, String, kToStringOffset)
 ACCESSORS(Oddball, to_number, Object, kToNumberOffset)
@@ -2004,6 +2013,7 @@
   // field operations considerably on average.
   if (type == JS_OBJECT_TYPE) return JSObject::kHeaderSize;
   switch (type) {
+    case JS_API_OBJECT_TYPE:
     case JS_SPECIAL_API_OBJECT_TYPE:
       return JSObject::kHeaderSize;
     case JS_GENERATOR_OBJECT_TYPE:
@@ -2793,6 +2803,25 @@
   return NULL;
 }
 
+// static
+Handle<Map> Map::ReconfigureProperty(Handle<Map> map, int modify_index,
+                                     PropertyKind new_kind,
+                                     PropertyAttributes new_attributes,
+                                     Representation new_representation,
+                                     Handle<FieldType> new_field_type,
+                                     StoreMode store_mode) {
+  return Reconfigure(map, map->elements_kind(), modify_index, new_kind,
+                     new_attributes, new_representation, new_field_type,
+                     store_mode);
+}
+
+// static
+Handle<Map> Map::ReconfigureElementsKind(Handle<Map> map,
+                                         ElementsKind new_elements_kind) {
+  return Reconfigure(map, new_elements_kind, -1, kData, NONE,
+                     Representation::None(), FieldType::None(map->GetIsolate()),
+                     ALLOW_IN_DESCRIPTOR);
+}
 
 Object** DescriptorArray::GetKeySlot(int descriptor_number) {
   DCHECK(descriptor_number < number_of_descriptors());
@@ -3037,13 +3066,14 @@
   uint32_t entry = FirstProbe(hash, capacity);
   uint32_t count = 1;
   // EnsureCapacity will guarantee the hash table is never full.
+  Object* undefined = isolate->heap()->undefined_value();
+  Object* the_hole = isolate->heap()->the_hole_value();
   while (true) {
     Object* element = KeyAt(entry);
     // Empty entry. Uses raw unchecked accessors because it is called by the
     // string table during bootstrapping.
-    if (element == isolate->heap()->root(Heap::kUndefinedValueRootIndex)) break;
-    if (element != isolate->heap()->root(Heap::kTheHoleValueRootIndex) &&
-        Shape::IsMatch(key, element)) return entry;
+    if (element == undefined) break;
+    if (element != the_hole && Shape::IsMatch(key, element)) return entry;
     entry = NextProbe(entry, count++, capacity);
   }
   return kNotFound;
@@ -3149,7 +3179,6 @@
 CAST_ACCESSOR(Oddball)
 CAST_ACCESSOR(OrderedHashMap)
 CAST_ACCESSOR(OrderedHashSet)
-CAST_ACCESSOR(PolymorphicCodeCacheHashTable)
 CAST_ACCESSOR(PropertyCell)
 CAST_ACCESSOR(ScopeInfo)
 CAST_ACCESSOR(SeededNumberDictionary)
@@ -3896,7 +3925,6 @@
 
 int ByteArray::Size() { return RoundUp(length() + kHeaderSize, kPointerSize); }
 
-
 byte ByteArray::get(int index) {
   DCHECK(index >= 0 && index < this->length());
   return READ_BYTE_FIELD(this, kHeaderSize + index * kCharSize);
@@ -3908,12 +3936,29 @@
   WRITE_BYTE_FIELD(this, kHeaderSize + index * kCharSize, value);
 }
 
+void ByteArray::copy_in(int index, const byte* buffer, int length) {
+  DCHECK(index >= 0 && length >= 0 && index + length >= index &&
+         index + length <= this->length());
+  byte* dst_addr = FIELD_ADDR(this, kHeaderSize + index * kCharSize);
+  memcpy(dst_addr, buffer, length);
+}
+
+void ByteArray::copy_out(int index, byte* buffer, int length) {
+  DCHECK(index >= 0 && length >= 0 && index + length >= index &&
+         index + length <= this->length());
+  const byte* src_addr = FIELD_ADDR(this, kHeaderSize + index * kCharSize);
+  memcpy(buffer, src_addr, length);
+}
 
 int ByteArray::get_int(int index) {
-  DCHECK(index >= 0 && (index * kIntSize) < this->length());
+  DCHECK(index >= 0 && index < this->length() / kIntSize);
   return READ_INT_FIELD(this, kHeaderSize + index * kIntSize);
 }
 
+void ByteArray::set_int(int index, int value) {
+  DCHECK(index >= 0 && index < this->length() / kIntSize);
+  WRITE_INT_FIELD(this, kHeaderSize + index * kIntSize, value);
+}
 
 ByteArray* ByteArray::FromDataStartAddress(Address address) {
   DCHECK_TAG_ALIGNED(address);
@@ -4441,11 +4486,6 @@
 }
 
 
-void Map::set_is_observed() { set_bit_field(bit_field() | (1 << kIsObserved)); }
-
-bool Map::is_observed() { return ((1 << kIsObserved) & bit_field()) != 0; }
-
-
 void Map::set_has_named_interceptor() {
   set_bit_field(bit_field() | (1 << kHasNamedInterceptor));
 }
@@ -4624,7 +4664,9 @@
 
 
 bool Map::has_code_cache() {
-  return code_cache() != GetIsolate()->heap()->empty_fixed_array();
+  // Code caches are always fixed arrays. The empty fixed array is used as a
+  // sentinel for an absent code cache.
+  return FixedArray::cast(code_cache())->length() != 0;
 }
 
 
@@ -4789,10 +4831,6 @@
 }
 
 
-Code::StubType Code::type() {
-  return ExtractTypeFromFlags(flags());
-}
-
 // For initialization.
 void Code::set_raw_kind_specific_flags1(int value) {
   WRITE_INT_FIELD(this, kKindSpecificFlags1Offset, value);
@@ -5031,18 +5069,8 @@
   }
 }
 
-
-bool Code::is_keyed_stub() {
-  return is_keyed_load_stub() || is_keyed_store_stub();
-}
-
-
 bool Code::is_debug_stub() { return ic_state() == DEBUG_STUB; }
 bool Code::is_handler() { return kind() == HANDLER; }
-bool Code::is_load_stub() { return kind() == LOAD_IC; }
-bool Code::is_keyed_load_stub() { return kind() == KEYED_LOAD_IC; }
-bool Code::is_store_stub() { return kind() == STORE_IC; }
-bool Code::is_keyed_store_stub() { return kind() == KEYED_STORE_IC; }
 bool Code::is_call_stub() { return kind() == CALL_IC; }
 bool Code::is_binary_op_stub() { return kind() == BINARY_OP_IC; }
 bool Code::is_compare_ic_stub() { return kind() == COMPARE_IC; }
@@ -5070,11 +5098,10 @@
 }
 
 Code::Flags Code::ComputeFlags(Kind kind, InlineCacheState ic_state,
-                               ExtraICState extra_ic_state, StubType type,
+                               ExtraICState extra_ic_state,
                                CacheHolderFlag holder) {
   // Compute the bit mask.
   unsigned int bits = KindField::encode(kind) | ICStateField::encode(ic_state) |
-                      TypeField::encode(type) |
                       ExtraICStateField::encode(extra_ic_state) |
                       CacheHolderField::encode(holder);
   return static_cast<Flags>(bits);
@@ -5082,15 +5109,13 @@
 
 Code::Flags Code::ComputeMonomorphicFlags(Kind kind,
                                           ExtraICState extra_ic_state,
-                                          CacheHolderFlag holder,
-                                          StubType type) {
-  return ComputeFlags(kind, MONOMORPHIC, extra_ic_state, type, holder);
+                                          CacheHolderFlag holder) {
+  return ComputeFlags(kind, MONOMORPHIC, extra_ic_state, holder);
 }
 
-
-Code::Flags Code::ComputeHandlerFlags(Kind handler_kind, StubType type,
+Code::Flags Code::ComputeHandlerFlags(Kind handler_kind,
                                       CacheHolderFlag holder) {
-  return ComputeFlags(Code::HANDLER, MONOMORPHIC, handler_kind, type, holder);
+  return ComputeFlags(Code::HANDLER, MONOMORPHIC, handler_kind, holder);
 }
 
 
@@ -5109,23 +5134,12 @@
 }
 
 
-Code::StubType Code::ExtractTypeFromFlags(Flags flags) {
-  return TypeField::decode(flags);
-}
-
 CacheHolderFlag Code::ExtractCacheHolderFromFlags(Flags flags) {
   return CacheHolderField::decode(flags);
 }
 
-
-Code::Flags Code::RemoveTypeFromFlags(Flags flags) {
-  int bits = flags & ~TypeField::kMask;
-  return static_cast<Flags>(bits);
-}
-
-
-Code::Flags Code::RemoveTypeAndHolderFromFlags(Flags flags) {
-  int bits = flags & ~TypeField::kMask & ~CacheHolderField::kMask;
+Code::Flags Code::RemoveHolderFromFlags(Flags flags) {
+  int bits = flags & ~CacheHolderField::kMask;
   return static_cast<Flags>(bits);
 }
 
@@ -5425,8 +5439,6 @@
 }
 
 
-ACCESSORS(JSBoundFunction, length, Object, kLengthOffset)
-ACCESSORS(JSBoundFunction, name, Object, kNameOffset)
 ACCESSORS(JSBoundFunction, bound_target_function, JSReceiver,
           kBoundTargetFunctionOffset)
 ACCESSORS(JSBoundFunction, bound_this, Object, kBoundThisOffset)
@@ -5449,6 +5461,7 @@
 
 ACCESSORS(AccessorInfo, getter, Object, kGetterOffset)
 ACCESSORS(AccessorInfo, setter, Object, kSetterOffset)
+ACCESSORS(AccessorInfo, js_getter, Object, kJsGetterOffset)
 ACCESSORS(AccessorInfo, data, Object, kDataOffset)
 
 ACCESSORS(Box, value, Object, kValueOffset)
@@ -5534,8 +5547,7 @@
 SMI_ACCESSORS(Script, type, kTypeOffset)
 ACCESSORS(Script, line_ends, Object, kLineEndsOffset)
 ACCESSORS(Script, eval_from_shared, Object, kEvalFromSharedOffset)
-SMI_ACCESSORS(Script, eval_from_instructions_offset,
-              kEvalFrominstructionsOffsetOffset)
+SMI_ACCESSORS(Script, eval_from_position, kEvalFromPositionOffset)
 ACCESSORS(Script, shared_function_infos, Object, kSharedFunctionInfosOffset)
 SMI_ACCESSORS(Script, flags, kFlagsOffset)
 ACCESSORS(Script, source_url, Object, kSourceUrlOffset)
@@ -5778,7 +5790,6 @@
   set_compiler_hints(hints);
 }
 
-
 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, needs_home_object,
                kNeedsHomeObject)
 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, native, kNative)
@@ -5794,6 +5805,7 @@
 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, dont_flush, kDontFlush)
 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_arrow, kIsArrow)
 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_generator, kIsGenerator)
+BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_async, kIsAsyncFunction)
 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_concise_method,
                kIsConciseMethod)
 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_getter_function,
@@ -5803,10 +5815,9 @@
 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_default_constructor,
                kIsDefaultConstructor)
 
-ACCESSORS(CodeCache, default_cache, FixedArray, kDefaultCacheOffset)
-ACCESSORS(CodeCache, normal_type_cache, Object, kNormalTypeCacheOffset)
-
-ACCESSORS(PolymorphicCodeCache, cache, Object, kCacheOffset)
+inline bool SharedFunctionInfo::is_resumable() const {
+  return is_generator() || is_async();
+}
 
 bool Script::HasValidSource() {
   Object* src = this->source();
@@ -5890,6 +5901,7 @@
   Builtins* builtins = GetIsolate()->builtins();
   DCHECK(code() != builtins->builtin(Builtins::kCompileOptimizedConcurrent));
   DCHECK(code() != builtins->builtin(Builtins::kCompileOptimized));
+  DCHECK(code() != builtins->builtin(Builtins::kCompileBaseline));
   return code() != builtins->builtin(Builtins::kCompileLazy);
 }
 
@@ -5937,7 +5949,6 @@
   return function_data()->IsBytecodeArray();
 }
 
-
 BytecodeArray* SharedFunctionInfo::bytecode_array() {
   DCHECK(HasBytecodeArray());
   return BytecodeArray::cast(function_data());
@@ -6085,6 +6096,10 @@
   return code()->kind() == Code::OPTIMIZED_FUNCTION;
 }
 
+bool JSFunction::IsMarkedForBaseline() {
+  return code() ==
+         GetIsolate()->builtins()->builtin(Builtins::kCompileBaseline);
+}
 
 bool JSFunction::IsMarkedForOptimization() {
   return code() == GetIsolate()->builtins()->builtin(
@@ -6250,6 +6265,7 @@
 bool JSFunction::is_compiled() {
   Builtins* builtins = GetIsolate()->builtins();
   return code() != builtins->builtin(Builtins::kCompileLazy) &&
+         code() != builtins->builtin(Builtins::kCompileBaseline) &&
          code() != builtins->builtin(Builtins::kCompileOptimized) &&
          code() != builtins->builtin(Builtins::kCompileOptimizedConcurrent);
 }
@@ -6306,13 +6322,14 @@
 ACCESSORS(JSGeneratorObject, context, Context, kContextOffset)
 ACCESSORS(JSGeneratorObject, receiver, Object, kReceiverOffset)
 ACCESSORS(JSGeneratorObject, input, Object, kInputOffset)
+SMI_ACCESSORS(JSGeneratorObject, resume_mode, kResumeModeOffset)
 SMI_ACCESSORS(JSGeneratorObject, continuation, kContinuationOffset)
 ACCESSORS(JSGeneratorObject, operand_stack, FixedArray, kOperandStackOffset)
 
 bool JSGeneratorObject::is_suspended() {
-  DCHECK_LT(kGeneratorExecuting, kGeneratorClosed);
-  DCHECK_EQ(kGeneratorClosed, 0);
-  return continuation() > 0;
+  DCHECK_LT(kGeneratorExecuting, 0);
+  DCHECK_LT(kGeneratorClosed, 0);
+  return continuation() >= 0;
 }
 
 bool JSGeneratorObject::is_closed() {
@@ -7120,7 +7137,7 @@
                                        Handle<Name> name) {
   if (object->IsJSObject()) {  // Shortcut
     LookupIterator it = LookupIterator::PropertyOrElement(
-        object->GetIsolate(), object, name, object, LookupIterator::HIDDEN);
+        object->GetIsolate(), object, name, object, LookupIterator::OWN);
     return HasProperty(&it);
   }
 
@@ -7130,6 +7147,19 @@
   return Just(attributes.FromJust() != ABSENT);
 }
 
+Maybe<bool> JSReceiver::HasOwnProperty(Handle<JSReceiver> object,
+                                       uint32_t index) {
+  if (object->IsJSObject()) {  // Shortcut
+    LookupIterator it(object->GetIsolate(), object, index, object,
+                      LookupIterator::OWN);
+    return HasProperty(&it);
+  }
+
+  Maybe<PropertyAttributes> attributes =
+      JSReceiver::GetOwnPropertyAttributes(object, index);
+  MAYBE_RETURN(attributes, Nothing<bool>());
+  return Just(attributes.FromJust() != ABSENT);
+}
 
 Maybe<PropertyAttributes> JSReceiver::GetPropertyAttributes(
     Handle<JSReceiver> object, Handle<Name> name) {
@@ -7142,10 +7172,16 @@
 Maybe<PropertyAttributes> JSReceiver::GetOwnPropertyAttributes(
     Handle<JSReceiver> object, Handle<Name> name) {
   LookupIterator it = LookupIterator::PropertyOrElement(
-      name->GetIsolate(), object, name, object, LookupIterator::HIDDEN);
+      name->GetIsolate(), object, name, object, LookupIterator::OWN);
   return GetPropertyAttributes(&it);
 }
 
+Maybe<PropertyAttributes> JSReceiver::GetOwnPropertyAttributes(
+    Handle<JSReceiver> object, uint32_t index) {
+  LookupIterator it(object->GetIsolate(), object, index, object,
+                    LookupIterator::OWN);
+  return GetPropertyAttributes(&it);
+}
 
 Maybe<bool> JSReceiver::HasElement(Handle<JSReceiver> object, uint32_t index) {
   LookupIterator it(object->GetIsolate(), object, index, object);
@@ -7164,7 +7200,7 @@
 Maybe<PropertyAttributes> JSReceiver::GetOwnElementAttributes(
     Handle<JSReceiver> object, uint32_t index) {
   Isolate* isolate = object->GetIsolate();
-  LookupIterator it(isolate, object, index, object, LookupIterator::HIDDEN);
+  LookupIterator it(isolate, object, index, object, LookupIterator::OWN);
   return GetPropertyAttributes(&it);
 }
 
@@ -7535,7 +7571,6 @@
   // Please note this function is used during marking:
   //  - MarkCompactCollector::MarkUnmarkedObject
   //  - IncrementalMarking::Step
-  DCHECK(!heap->InNewSpace(heap->empty_fixed_array()));
   WRITE_FIELD(this, kCodeCacheOffset, heap->empty_fixed_array());
 }
 
diff --git a/src/objects-printer.cc b/src/objects-printer.cc
index 58092a4..551beb2 100644
--- a/src/objects-printer.cc
+++ b/src/objects-printer.cc
@@ -33,7 +33,13 @@
 
 
 void HeapObject::PrintHeader(std::ostream& os, const char* id) {  // NOLINT
-  os << reinterpret_cast<void*>(this) << ": [" << id << "]";
+  os << reinterpret_cast<void*>(this) << ": [";
+  if (id != nullptr) {
+    os << id;
+  } else {
+    os << map()->instance_type();
+  }
+  os << "]";
 }
 
 
@@ -95,13 +101,16 @@
       os << "filler";
       break;
     case JS_OBJECT_TYPE:  // fall through
+    case JS_API_OBJECT_TYPE:
     case JS_SPECIAL_API_OBJECT_TYPE:
     case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
-    case JS_ARRAY_TYPE:
     case JS_GENERATOR_OBJECT_TYPE:
     case JS_PROMISE_TYPE:
       JSObject::cast(this)->JSObjectPrint(os);
       break;
+    case JS_ARRAY_TYPE:
+      JSArray::cast(this)->JSArrayPrint(os);
+      break;
     case JS_REGEXP_TYPE:
       JSRegExp::cast(this)->JSRegExpPrint(os);
       break;
@@ -396,16 +405,20 @@
   obj->PrintHeader(os, id);
   // Don't call GetElementsKind, its validation code can cause the printer to
   // fail when debugging.
-  os << "\n - map = " << reinterpret_cast<void*>(obj->map()) << " ["
+  os << "\n - map = " << reinterpret_cast<void*>(obj->map()) << " [";
+  if (obj->HasFastProperties()) {
+    os << "FastProperties";
+  } else {
+    os << "DictionaryProperties";
+  }
+  PrototypeIterator iter(obj->GetIsolate(), obj);
+  os << "]\n - prototype = " << reinterpret_cast<void*>(iter.GetCurrent());
+  os << "\n - elements = " << Brief(obj->elements()) << " ["
      << ElementsKindToString(obj->map()->elements_kind());
   if (obj->elements()->map() == obj->GetHeap()->fixed_cow_array_map()) {
     os << " (COW)";
   }
-  PrototypeIterator iter(obj->GetIsolate(), obj);
-  os << "]\n - prototype = " << reinterpret_cast<void*>(iter.GetCurrent());
-  if (obj->elements()->length() > 0) {
-    os << "\n - elements = " << Brief(obj->elements());
-  }
+  os << "]";
 }
 
 
@@ -413,14 +426,19 @@
                               bool print_elements = true) {
   os << "\n {";
   obj->PrintProperties(os);
-  obj->PrintTransitions(os);
   if (print_elements) obj->PrintElements(os);
   os << "\n }\n";
 }
 
 
 void JSObject::JSObjectPrint(std::ostream& os) {  // NOLINT
-  JSObjectPrintHeader(os, this, "JSObject");
+  JSObjectPrintHeader(os, this, nullptr);
+  JSObjectPrintBody(os, this);
+}
+
+void JSArray::JSArrayPrint(std::ostream& os) {  // NOLINT
+  JSObjectPrintHeader(os, this, "JSArray");
+  os << "\n - length = " << Brief(this->length());
   JSObjectPrintBody(os, this);
 }
 
@@ -478,7 +496,6 @@
   if (is_constructor()) os << "\n - constructor";
   if (is_access_check_needed()) os << "\n - access_check_needed";
   if (!is_extensible()) os << "\n - non-extensible";
-  if (is_observed()) os << "\n - observed";
   if (is_prototype_map()) {
     os << "\n - prototype_map";
     os << "\n - prototype info: " << Brief(prototype_info());
@@ -506,20 +523,6 @@
 }
 
 
-void CodeCache::CodeCachePrint(std::ostream& os) {  // NOLINT
-  HeapObject::PrintHeader(os, "CodeCache");
-  os << "\n - default_cache: " << Brief(default_cache());
-  os << "\n - normal_type_cache: " << Brief(normal_type_cache());
-}
-
-
-void PolymorphicCodeCache::PolymorphicCodeCachePrint(
-    std::ostream& os) {  // NOLINT
-  HeapObject::PrintHeader(os, "PolymorphicCodeCache");
-  os << "\n - cache: " << Brief(cache());
-}
-
-
 void TypeFeedbackInfo::TypeFeedbackInfoPrint(std::ostream& os) {  // NOLINT
   HeapObject::PrintHeader(os, "TypeFeedbackInfo");
   os << "\n - ic_total_count: " << ic_total_count()
@@ -988,6 +991,7 @@
   os << "\n - flag: " << flag();
   os << "\n - getter: " << Brief(getter());
   os << "\n - setter: " << Brief(setter());
+  os << "\n - js_getter: " << Brief(js_getter());
   os << "\n - data: " << Brief(data());
   os << "\n";
 }
@@ -1140,8 +1144,7 @@
   os << "\n - compilation type: " << compilation_type();
   os << "\n - line ends: " << Brief(line_ends());
   os << "\n - eval from shared: " << Brief(eval_from_shared());
-  os << "\n - eval from instructions offset: "
-     << eval_from_instructions_offset();
+  os << "\n - eval from position: " << eval_from_position();
   os << "\n - shared function infos: " << Brief(shared_function_infos());
   os << "\n";
 }
@@ -1293,7 +1296,7 @@
   for (int i = 0; i < num_transitions; i++) {
     Name* key = GetKey(transitions, i);
     Map* target = GetTarget(transitions, i);
-    os << "\n   ";
+    os << "\n     ";
 #ifdef OBJECT_PRINT
     key->NamePrint(os);
 #else
@@ -1312,8 +1315,6 @@
          << ")";
     } else if (key == heap->strict_function_transition_symbol()) {
       os << " (transition to strict function)";
-    } else if (key == heap->observed_symbol()) {
-      os << " (transition to Object.observe)";
     } else {
       PropertyDetails details = GetTargetDetails(key, target);
       os << "(transition to ";
diff --git a/src/objects.cc b/src/objects.cc
index 1a82c3c..addf97a 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -12,9 +12,9 @@
 
 #include "src/accessors.h"
 #include "src/allocation-site-scopes.h"
-#include "src/api.h"
 #include "src/api-arguments.h"
 #include "src/api-natives.h"
+#include "src/api.h"
 #include "src/base/bits.h"
 #include "src/base/utils/random-number-generator.h"
 #include "src/bootstrapper.h"
@@ -22,6 +22,8 @@
 #include "src/codegen.h"
 #include "src/compilation-dependencies.h"
 #include "src/compiler.h"
+#include "src/counters-inl.h"
+#include "src/counters.h"
 #include "src/date.h"
 #include "src/debug/debug.h"
 #include "src/deoptimizer.h"
@@ -30,6 +32,7 @@
 #include "src/field-index-inl.h"
 #include "src/field-index.h"
 #include "src/field-type.h"
+#include "src/frames-inl.h"
 #include "src/full-codegen/full-codegen.h"
 #include "src/ic/ic.h"
 #include "src/identity-map.h"
@@ -122,7 +125,7 @@
   if (object->IsJSReceiver()) return Handle<JSReceiver>::cast(object);
   if (*object == isolate->heap()->null_value() ||
       *object == isolate->heap()->undefined_value()) {
-    return handle(isolate->global_proxy(), isolate);
+    return isolate->global_proxy();
   }
   return Object::ToObject(isolate, object);
 }
@@ -568,6 +571,88 @@
                                               NumberToInt32(*rhs));
 }
 
+// static
+MaybeHandle<Object> Object::OrdinaryHasInstance(Isolate* isolate,
+                                                Handle<Object> callable,
+                                                Handle<Object> object) {
+  // The {callable} must have a [[Call]] internal method.
+  if (!callable->IsCallable()) return isolate->factory()->false_value();
+
+  // Check if {callable} is a bound function, and if so retrieve its
+  // [[BoundTargetFunction]] and use that instead of {callable}.
+  if (callable->IsJSBoundFunction()) {
+    Handle<Object> bound_callable(
+        Handle<JSBoundFunction>::cast(callable)->bound_target_function(),
+        isolate);
+    return Object::InstanceOf(isolate, object, bound_callable);
+  }
+
+  // If {object} is not a receiver, return false.
+  if (!object->IsJSReceiver()) return isolate->factory()->false_value();
+
+  // Get the "prototype" of {callable}; raise an error if it's not a receiver.
+  Handle<Object> prototype;
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate, prototype,
+      Object::GetProperty(callable, isolate->factory()->prototype_string()),
+      Object);
+  if (!prototype->IsJSReceiver()) {
+    THROW_NEW_ERROR(
+        isolate,
+        NewTypeError(MessageTemplate::kInstanceofNonobjectProto, prototype),
+        Object);
+  }
+
+  // Return whether or not {prototype} is in the prototype chain of {object}.
+  Maybe<bool> result = JSReceiver::HasInPrototypeChain(
+      isolate, Handle<JSReceiver>::cast(object), prototype);
+  if (result.IsNothing()) return MaybeHandle<Object>();
+  return isolate->factory()->ToBoolean(result.FromJust());
+}
+
+// static
+MaybeHandle<Object> Object::InstanceOf(Isolate* isolate, Handle<Object> object,
+                                       Handle<Object> callable) {
+  if (FLAG_harmony_instanceof) {
+    // The {callable} must be a receiver.
+    if (!callable->IsJSReceiver()) {
+      THROW_NEW_ERROR(
+          isolate, NewTypeError(MessageTemplate::kNonObjectInInstanceOfCheck),
+          Object);
+    }
+
+    // Lookup the @@hasInstance method on {callable}.
+    Handle<Object> inst_of_handler;
+    ASSIGN_RETURN_ON_EXCEPTION(
+        isolate, inst_of_handler,
+        JSReceiver::GetMethod(Handle<JSReceiver>::cast(callable),
+                              isolate->factory()->has_instance_symbol()),
+        Object);
+    if (!inst_of_handler->IsUndefined()) {
+      // Call the {inst_of_handler} on the {callable}.
+      Handle<Object> result;
+      ASSIGN_RETURN_ON_EXCEPTION(
+          isolate, result,
+          Execution::Call(isolate, inst_of_handler, callable, 1, &object),
+          Object);
+      return isolate->factory()->ToBoolean(result->BooleanValue());
+    }
+  }
+
+  // The {callable} must have a [[Call]] internal method.
+  if (!callable->IsCallable()) {
+    THROW_NEW_ERROR(
+        isolate, NewTypeError(MessageTemplate::kNonCallableInInstanceOfCheck),
+        Object);
+  }
+
+  // Fall back to OrdinaryHasInstance with {callable} and {object}.
+  Handle<Object> result;
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate, result,
+      JSReceiver::OrdinaryHasInstance(isolate, callable, object), Object);
+  return result;
+}
 
 Maybe<bool> Object::IsArray(Handle<Object> object) {
   if (object->IsJSArray()) return Just(true);
@@ -594,7 +679,7 @@
   auto isolate = js_object->GetIsolate();
   // TODO(dcarney): this should just be read from the symbol registry so as not
   // to be context dependent.
-  auto key = isolate->factory()->promise_status_symbol();
+  auto key = isolate->factory()->promise_state_symbol();
   // Shouldn't be possible to throw here.
   return JSObject::HasRealNamedProperty(js_object, key).FromJust();
 }
@@ -762,17 +847,6 @@
 }
 
 
-#define STACK_CHECK(result_value)                        \
-  do {                                                   \
-    StackLimitCheck stack_check(isolate);                \
-    if (stack_check.HasOverflowed()) {                   \
-      isolate->Throw(*isolate->factory()->NewRangeError( \
-          MessageTemplate::kStackOverflow));             \
-      return result_value;                               \
-    }                                                    \
-  } while (false)
-
-
 // static
 MaybeHandle<Object> JSProxy::GetProperty(Isolate* isolate,
                                          Handle<JSProxy> proxy,
@@ -788,7 +862,7 @@
   }
 
   DCHECK(!name->IsPrivate());
-  STACK_CHECK(MaybeHandle<Object>());
+  STACK_CHECK(isolate, MaybeHandle<Object>());
   Handle<Name> trap_name = isolate->factory()->get_string();
   // 1. Assert: IsPropertyKey(P) is true.
   // 2. Let handler be the value of the [[ProxyHandler]] internal slot of O.
@@ -1001,7 +1075,7 @@
   Isolate* isolate = proxy->GetIsolate();
   Handle<String> trap_name = isolate->factory()->getPrototypeOf_string();
 
-  STACK_CHECK(MaybeHandle<Object>());
+  STACK_CHECK(isolate, MaybeHandle<Object>());
 
   // 1. Let handler be the value of the [[ProxyHandler]] internal slot.
   // 2. If handler is null, throw a TypeError exception.
@@ -1117,6 +1191,20 @@
   return ReadAbsentProperty(isolate, receiver, it->GetName());
 }
 
+// static
+Address AccessorInfo::redirect(Isolate* isolate, Address address,
+                               AccessorComponent component) {
+  ApiFunction fun(address);
+  DCHECK_EQ(ACCESSOR_GETTER, component);
+  ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL;
+  return ExternalReference(&fun, type, isolate).address();
+}
+
+Address AccessorInfo::redirected_getter() const {
+  Address accessor = v8::ToCData<Address>(getter());
+  if (accessor == nullptr) return nullptr;
+  return redirect(GetIsolate(), accessor, ACCESSOR_GETTER);
+}
 
 bool AccessorInfo::IsCompatibleReceiverMap(Isolate* isolate,
                                            Handle<AccessorInfo> info,
@@ -1383,6 +1471,7 @@
   }
 }
 
+// static
 Maybe<bool> JSReceiver::HasInPrototypeChain(Isolate* isolate,
                                             Handle<JSReceiver> object,
                                             Handle<Object> proto) {
@@ -1396,7 +1485,6 @@
   }
 }
 
-
 Map* Object::GetRootMap(Isolate* isolate) {
   DisallowHeapAllocation no_alloc;
   if (IsSmi()) {
@@ -1555,7 +1643,6 @@
 
 MaybeHandle<Object> Object::ArraySpeciesConstructor(
     Isolate* isolate, Handle<Object> original_array) {
-  Handle<Context> native_context = isolate->native_context();
   Handle<Object> default_species = isolate->array_function();
   if (!FLAG_harmony_species) {
     return default_species;
@@ -1580,7 +1667,7 @@
           isolate, constructor_context,
           JSReceiver::GetFunctionRealm(Handle<JSReceiver>::cast(constructor)),
           Object);
-      if (*constructor_context != *native_context &&
+      if (*constructor_context != *isolate->native_context() &&
           *constructor == constructor_context->array_function()) {
         constructor = isolate->factory()->undefined_value();
       }
@@ -1905,15 +1992,7 @@
     }
     case JS_BOUND_FUNCTION_TYPE: {
       JSBoundFunction* bound_function = JSBoundFunction::cast(this);
-      Object* name = bound_function->name();
       accumulator->Add("<JS BoundFunction");
-      if (name->IsString()) {
-        String* str = String::cast(name);
-        if (str->length() > 0) {
-          accumulator->Add(" ");
-          accumulator->Put(str);
-        }
-      }
       accumulator->Add(
           " (BoundTargetFunction %p)>",
           reinterpret_cast<void*>(bound_function->bound_target_function()));
@@ -1946,6 +2025,18 @@
       if (!printed) {
         accumulator->Add("<JS Function");
       }
+      if (FLAG_trace_file_names) {
+        Object* source_name =
+            Script::cast(function->shared()->script())->name();
+        if (source_name->IsString()) {
+          String* str = String::cast(source_name);
+          if (str->length() > 0) {
+            accumulator->Add(" <");
+            accumulator->Put(str);
+            accumulator->Add(">");
+          }
+        }
+      }
       accumulator->Add(" (SharedFunctionInfo %p)",
                        reinterpret_cast<void*>(function->shared()));
       accumulator->Put('>');
@@ -2227,7 +2318,9 @@
       } else if (IsFalse()) {
         os << "<false>";
       } else {
-        os << "<Odd Oddball>";
+        os << "<Odd Oddball: ";
+        os << Oddball::cast(this)->to_string()->ToCString().get();
+        os << ">";
       }
       break;
     }
@@ -2644,24 +2737,6 @@
 }
 
 
-MaybeHandle<Object> JSObject::EnqueueChangeRecord(Handle<JSObject> object,
-                                                  const char* type_str,
-                                                  Handle<Name> name,
-                                                  Handle<Object> old_value) {
-  DCHECK(!object->IsJSGlobalProxy());
-  DCHECK(!object->IsJSGlobalObject());
-  Isolate* isolate = object->GetIsolate();
-  HandleScope scope(isolate);
-  Handle<String> type = isolate->factory()->InternalizeUtf8String(type_str);
-  Handle<Object> args[] = { type, object, name, old_value };
-  int argc = name.is_null() ? 2 : old_value->IsTheHole() ? 3 : 4;
-
-  return Execution::Call(isolate,
-                         Handle<JSFunction>(isolate->observers_notify_change()),
-                         isolate->factory()->undefined_value(), argc, args);
-}
-
-
 const char* Representation::Mnemonic() const {
   switch (kind_) {
     case kNone: return "v";
@@ -2677,6 +2752,16 @@
   }
 }
 
+bool Map::InstancesNeedRewriting(Map* target) {
+  int target_number_of_fields = target->NumberOfFields();
+  int target_inobject = target->GetInObjectProperties();
+  int target_unused = target->unused_property_fields();
+  int old_number_of_fields;
+
+  return InstancesNeedRewriting(target, target_number_of_fields,
+                                target_inobject, target_unused,
+                                &old_number_of_fields);
+}
 
 bool Map::InstancesNeedRewriting(Map* target, int target_number_of_fields,
                                  int target_inobject, int target_unused,
@@ -3137,10 +3222,10 @@
   return result;
 }
 
-
 Handle<Map> Map::CopyGeneralizeAllRepresentations(
-    Handle<Map> map, int modify_index, StoreMode store_mode, PropertyKind kind,
-    PropertyAttributes attributes, const char* reason) {
+    Handle<Map> map, ElementsKind elements_kind, int modify_index,
+    StoreMode store_mode, PropertyKind kind, PropertyAttributes attributes,
+    const char* reason) {
   Isolate* isolate = map->GetIsolate();
   Handle<DescriptorArray> old_descriptors(map->instance_descriptors(), isolate);
   int number_of_own_descriptors = map->NumberOfOwnDescriptors();
@@ -3196,6 +3281,7 @@
           MaybeHandle<Object>());
     }
   }
+  new_map->set_elements_kind(elements_kind);
   return new_map;
 }
 
@@ -3448,9 +3534,9 @@
   }
 }
 
-
-// Reconfigures property at |modify_index| with |new_kind|, |new_attributes|,
-// |store_mode| and/or |new_representation|/|new_field_type|.
+// Reconfigures elements kind to |new_elements_kind| and/or property at
+// |modify_index| with |new_kind|, |new_attributes|, |store_mode| and/or
+// |new_representation|/|new_field_type|.
 // If |modify_index| is negative then no properties are reconfigured but the
 // map is migrated to the up-to-date non-deprecated state.
 //
@@ -3460,6 +3546,7 @@
 // any potential new (partial) version of the type in the transition tree.
 // To do this, on each rewrite:
 // - Search the root of the transition tree using FindRootMap.
+// - Find/create a |root_map| with requested |new_elements_kind|.
 // - Find |target_map|, the newest matching version of this map using the
 //   virtually "enhanced" |old_map|'s descriptor array (i.e. whose entry at
 //   |modify_index| is considered to be of |new_kind| and having
@@ -3475,12 +3562,13 @@
 //   Return it.
 // - Otherwise, invalidate the outdated transition target from |target_map|, and
 //   replace its transition tree with a new branch for the updated descriptors.
-Handle<Map> Map::ReconfigureProperty(Handle<Map> old_map, int modify_index,
-                                     PropertyKind new_kind,
-                                     PropertyAttributes new_attributes,
-                                     Representation new_representation,
-                                     Handle<FieldType> new_field_type,
-                                     StoreMode store_mode) {
+Handle<Map> Map::Reconfigure(Handle<Map> old_map,
+                             ElementsKind new_elements_kind, int modify_index,
+                             PropertyKind new_kind,
+                             PropertyAttributes new_attributes,
+                             Representation new_representation,
+                             Handle<FieldType> new_field_type,
+                             StoreMode store_mode) {
   DCHECK_NE(kAccessor, new_kind);  // TODO(ishell): not supported yet.
   DCHECK(store_mode != FORCE_FIELD || modify_index >= 0);
   Isolate* isolate = old_map->GetIsolate();
@@ -3495,7 +3583,8 @@
   // uninitialized value for representation None can be overwritten by both
   // smi and tagged values. Doubles, however, would require a box allocation.
   if (modify_index >= 0 && !new_representation.IsNone() &&
-      !new_representation.IsDouble()) {
+      !new_representation.IsDouble() &&
+      old_map->elements_kind() == new_elements_kind) {
     PropertyDetails old_details = old_descriptors->GetDetails(modify_index);
     Representation old_representation = old_details.representation();
 
@@ -3528,38 +3617,39 @@
   // Check the state of the root map.
   Handle<Map> root_map(old_map->FindRootMap(), isolate);
   if (!old_map->EquivalentToForTransition(*root_map)) {
-    return CopyGeneralizeAllRepresentations(old_map, modify_index, store_mode,
-                                            new_kind, new_attributes,
-                                            "GenAll_NotEquivalent");
+    return CopyGeneralizeAllRepresentations(
+        old_map, new_elements_kind, modify_index, store_mode, new_kind,
+        new_attributes, "GenAll_NotEquivalent");
   }
 
   ElementsKind from_kind = root_map->elements_kind();
-  ElementsKind to_kind = old_map->elements_kind();
+  ElementsKind to_kind = new_elements_kind;
   // TODO(ishell): Add a test for SLOW_SLOPPY_ARGUMENTS_ELEMENTS.
   if (from_kind != to_kind && to_kind != DICTIONARY_ELEMENTS &&
+      to_kind != SLOW_STRING_WRAPPER_ELEMENTS &&
       to_kind != SLOW_SLOPPY_ARGUMENTS_ELEMENTS &&
       !(IsTransitionableFastElementsKind(from_kind) &&
         IsMoreGeneralElementsKindTransition(from_kind, to_kind))) {
-    return CopyGeneralizeAllRepresentations(old_map, modify_index, store_mode,
-                                            new_kind, new_attributes,
-                                            "GenAll_InvalidElementsTransition");
+    return CopyGeneralizeAllRepresentations(
+        old_map, to_kind, modify_index, store_mode, new_kind, new_attributes,
+        "GenAll_InvalidElementsTransition");
   }
   int root_nof = root_map->NumberOfOwnDescriptors();
   if (modify_index >= 0 && modify_index < root_nof) {
     PropertyDetails old_details = old_descriptors->GetDetails(modify_index);
     if (old_details.kind() != new_kind ||
         old_details.attributes() != new_attributes) {
-      return CopyGeneralizeAllRepresentations(old_map, modify_index, store_mode,
-                                              new_kind, new_attributes,
-                                              "GenAll_RootModification1");
+      return CopyGeneralizeAllRepresentations(
+          old_map, to_kind, modify_index, store_mode, new_kind, new_attributes,
+          "GenAll_RootModification1");
     }
     if ((old_details.type() != DATA && store_mode == FORCE_FIELD) ||
         (old_details.type() == DATA &&
          (!new_field_type->NowIs(old_descriptors->GetFieldType(modify_index)) ||
           !new_representation.fits_into(old_details.representation())))) {
-      return CopyGeneralizeAllRepresentations(old_map, modify_index, store_mode,
-                                              new_kind, new_attributes,
-                                              "GenAll_RootModification2");
+      return CopyGeneralizeAllRepresentations(
+          old_map, to_kind, modify_index, store_mode, new_kind, new_attributes,
+          "GenAll_RootModification2");
     }
   }
 
@@ -3613,9 +3703,9 @@
     if (next_kind == kAccessor &&
         !EqualImmutableValues(old_descriptors->GetValue(i),
                               tmp_descriptors->GetValue(i))) {
-      return CopyGeneralizeAllRepresentations(old_map, modify_index, store_mode,
-                                              new_kind, new_attributes,
-                                              "GenAll_Incompatible");
+      return CopyGeneralizeAllRepresentations(
+          old_map, to_kind, modify_index, store_mode, new_kind, new_attributes,
+          "GenAll_Incompatible");
     }
     if (next_location == kField && tmp_details.location() == kDescriptor) break;
 
@@ -3708,9 +3798,9 @@
     if (next_kind == kAccessor &&
         !EqualImmutableValues(old_descriptors->GetValue(i),
                               tmp_descriptors->GetValue(i))) {
-      return CopyGeneralizeAllRepresentations(old_map, modify_index, store_mode,
-                                              new_kind, new_attributes,
-                                              "GenAll_Incompatible");
+      return CopyGeneralizeAllRepresentations(
+          old_map, to_kind, modify_index, store_mode, new_kind, new_attributes,
+          "GenAll_Incompatible");
     }
     DCHECK(!tmp_map->is_deprecated());
     target_map = tmp_map;
@@ -3941,9 +4031,9 @@
   // could be inserted regardless of whether transitions array is full or not.
   if (maybe_transition == NULL &&
       !TransitionArray::CanHaveMoreTransitions(split_map)) {
-    return CopyGeneralizeAllRepresentations(old_map, modify_index, store_mode,
-                                            new_kind, new_attributes,
-                                            "GenAll_CantHaveMoreTransitions");
+    return CopyGeneralizeAllRepresentations(
+        old_map, to_kind, modify_index, store_mode, new_kind, new_attributes,
+        "GenAll_CantHaveMoreTransitions");
   }
 
   old_map->NotifyLeafMapLayoutChange();
@@ -4024,18 +4114,27 @@
     if (root_map == NULL) return MaybeHandle<Map>();
     // From here on, use the map with correct elements kind as root map.
   }
-  int root_nof = root_map->NumberOfOwnDescriptors();
+  Map* new_map = root_map->TryReplayPropertyTransitions(*old_map);
+  if (new_map == nullptr) return MaybeHandle<Map>();
+  return handle(new_map);
+}
+
+Map* Map::TryReplayPropertyTransitions(Map* old_map) {
+  DisallowHeapAllocation no_allocation;
+  DisallowDeoptimization no_deoptimization(GetIsolate());
+
+  int root_nof = NumberOfOwnDescriptors();
 
   int old_nof = old_map->NumberOfOwnDescriptors();
   DescriptorArray* old_descriptors = old_map->instance_descriptors();
 
-  Map* new_map = root_map;
+  Map* new_map = this;
   for (int i = root_nof; i < old_nof; ++i) {
     PropertyDetails old_details = old_descriptors->GetDetails(i);
     Map* transition = TransitionArray::SearchTransition(
         new_map, old_details.kind(), old_descriptors->GetKey(i),
         old_details.attributes());
-    if (transition == NULL) return MaybeHandle<Map>();
+    if (transition == NULL) return nullptr;
     new_map = transition;
     DescriptorArray* new_descriptors = new_map->instance_descriptors();
 
@@ -4043,7 +4142,7 @@
     DCHECK_EQ(old_details.kind(), new_details.kind());
     DCHECK_EQ(old_details.attributes(), new_details.attributes());
     if (!old_details.representation().fits_into(new_details.representation())) {
-      return MaybeHandle<Map>();
+      return nullptr;
     }
     switch (new_details.type()) {
       case DATA: {
@@ -4051,20 +4150,20 @@
         // Cleared field types need special treatment. They represent lost
         // knowledge, so we must first generalize the new_type to "Any".
         if (FieldTypeIsCleared(new_details.representation(), new_type)) {
-          return MaybeHandle<Map>();
+          return nullptr;
         }
         PropertyType old_property_type = old_details.type();
         if (old_property_type == DATA) {
           FieldType* old_type = old_descriptors->GetFieldType(i);
           if (FieldTypeIsCleared(old_details.representation(), old_type) ||
               !old_type->NowIs(new_type)) {
-            return MaybeHandle<Map>();
+            return nullptr;
           }
         } else {
           DCHECK(old_property_type == DATA_CONSTANT);
           Object* old_value = old_descriptors->GetValue(i);
           if (!new_type->NowContains(old_value)) {
-            return MaybeHandle<Map>();
+            return nullptr;
           }
         }
         break;
@@ -4082,14 +4181,14 @@
         Object* old_value = old_descriptors->GetValue(i);
         Object* new_value = new_descriptors->GetValue(i);
         if (old_details.location() == kField || old_value != new_value) {
-          return MaybeHandle<Map>();
+          return nullptr;
         }
         break;
       }
     }
   }
-  if (new_map->NumberOfOwnDescriptors() != old_nof) return MaybeHandle<Map>();
-  return handle(new_map);
+  if (new_map->NumberOfOwnDescriptors() != old_nof) return nullptr;
+  return new_map;
 }
 
 
@@ -4166,6 +4265,7 @@
                                         LanguageMode language_mode,
                                         StoreFromKeyed store_mode,
                                         bool* found) {
+  it->UpdateProtector();
   DCHECK(it->IsFound());
   ShouldThrow should_throw =
       is_sloppy(language_mode) ? DONT_THROW : THROW_ON_ERROR;
@@ -4190,23 +4290,38 @@
         return JSProxy::SetProperty(it->GetHolder<JSProxy>(), it->GetName(),
                                     value, it->GetReceiver(), language_mode);
 
-      case LookupIterator::INTERCEPTOR:
+      case LookupIterator::INTERCEPTOR: {
+        Handle<Map> store_target_map =
+            handle(it->GetStoreTarget()->map(), it->isolate());
         if (it->HolderIsReceiverOrHiddenPrototype()) {
           Maybe<bool> result =
               JSObject::SetPropertyWithInterceptor(it, should_throw, value);
           if (result.IsNothing() || result.FromJust()) return result;
+          // Interceptor modified the store target but failed to set the
+          // property.
+          Utils::ApiCheck(*store_target_map == it->GetStoreTarget()->map(),
+                          it->IsElement() ? "v8::IndexedPropertySetterCallback"
+                                          : "v8::NamedPropertySetterCallback",
+                          "Interceptor silently changed store target.");
         } else {
           Maybe<PropertyAttributes> maybe_attributes =
               JSObject::GetPropertyAttributesWithInterceptor(it);
           if (!maybe_attributes.IsJust()) return Nothing<bool>();
-          if (maybe_attributes.FromJust() == ABSENT) break;
           if ((maybe_attributes.FromJust() & READ_ONLY) != 0) {
             return WriteToReadOnlyProperty(it, value, should_throw);
           }
+          // Interceptor modified the store target but failed to set the
+          // property.
+          Utils::ApiCheck(*store_target_map == it->GetStoreTarget()->map(),
+                          it->IsElement() ? "v8::IndexedPropertySetterCallback"
+                                          : "v8::NamedPropertySetterCallback",
+                          "Interceptor silently changed store target.");
+          if (maybe_attributes.FromJust() == ABSENT) break;
           *found = false;
           return Nothing<bool>();
         }
         break;
+      }
 
       case LookupIterator::ACCESSOR: {
         if (it->IsReadOnly()) {
@@ -4248,7 +4363,6 @@
 Maybe<bool> Object::SetProperty(LookupIterator* it, Handle<Object> value,
                                 LanguageMode language_mode,
                                 StoreFromKeyed store_mode) {
-  it->UpdateProtector();
   if (it->IsFound()) {
     bool found = true;
     Maybe<bool> result =
@@ -4276,7 +4390,6 @@
                                      StoreFromKeyed store_mode) {
   Isolate* isolate = it->isolate();
 
-  it->UpdateProtector();
   if (it->IsFound()) {
     bool found = true;
     Maybe<bool> result =
@@ -4284,6 +4397,8 @@
     if (found) return result;
   }
 
+  it->UpdateProtector();
+
   // The property either doesn't exist on the holder or exists there as a data
   // property.
 
@@ -4295,7 +4410,7 @@
   }
   Handle<JSReceiver> receiver = Handle<JSReceiver>::cast(it->GetReceiver());
 
-  LookupIterator::Configuration c = LookupIterator::HIDDEN;
+  LookupIterator::Configuration c = LookupIterator::OWN;
   LookupIterator own_lookup =
       it->IsElement() ? LookupIterator(isolate, receiver, it->index(), c)
                       : LookupIterator(receiver, it->name(), c);
@@ -4419,14 +4534,6 @@
   // Store on the holder which may be hidden behind the receiver.
   DCHECK(it->HolderIsReceiverOrHiddenPrototype());
 
-  // Old value for the observation change record.
-  // Fetch before transforming the object since the encoding may become
-  // incompatible with what's cached in |it|.
-  bool is_observed = receiver->map()->is_observed() &&
-                     (it->IsElement() || !it->name()->IsPrivate());
-  MaybeHandle<Object> maybe_old;
-  if (is_observed) maybe_old = it->GetDataValue();
-
   Handle<Object> to_assign = value;
   // Convert the incoming value to a number for storing into typed arrays.
   if (it->IsElement() && receiver->HasFixedTypedArrayElements()) {
@@ -4449,15 +4556,6 @@
   // Write the property value.
   it->WriteDataValue(to_assign);
 
-  // Send the change record if there are observers.
-  if (is_observed && !value->SameValue(*maybe_old.ToHandleChecked())) {
-    RETURN_ON_EXCEPTION_VALUE(
-        it->isolate(),
-        JSObject::EnqueueChangeRecord(receiver, "update", it->GetName(),
-                                      maybe_old.ToHandleChecked()),
-        Nothing<bool>());
-  }
-
 #if VERIFY_HEAP
   if (FLAG_verify_heap) {
     receiver->JSObjectVerify();
@@ -4467,47 +4565,6 @@
 }
 
 
-MUST_USE_RESULT static MaybeHandle<Object> BeginPerformSplice(
-    Handle<JSArray> object) {
-  Isolate* isolate = object->GetIsolate();
-  HandleScope scope(isolate);
-  Handle<Object> args[] = {object};
-
-  return Execution::Call(
-      isolate, Handle<JSFunction>(isolate->observers_begin_perform_splice()),
-      isolate->factory()->undefined_value(), arraysize(args), args);
-}
-
-
-MUST_USE_RESULT static MaybeHandle<Object> EndPerformSplice(
-    Handle<JSArray> object) {
-  Isolate* isolate = object->GetIsolate();
-  HandleScope scope(isolate);
-  Handle<Object> args[] = {object};
-
-  return Execution::Call(
-      isolate, Handle<JSFunction>(isolate->observers_end_perform_splice()),
-      isolate->factory()->undefined_value(), arraysize(args), args);
-}
-
-
-MUST_USE_RESULT static MaybeHandle<Object> EnqueueSpliceRecord(
-    Handle<JSArray> object, uint32_t index, Handle<JSArray> deleted,
-    uint32_t add_count) {
-  Isolate* isolate = object->GetIsolate();
-  HandleScope scope(isolate);
-  Handle<Object> index_object = isolate->factory()->NewNumberFromUint(index);
-  Handle<Object> add_count_object =
-      isolate->factory()->NewNumberFromUint(add_count);
-
-  Handle<Object> args[] = {object, index_object, deleted, add_count_object};
-
-  return Execution::Call(
-      isolate, Handle<JSFunction>(isolate->observers_enqueue_splice()),
-      isolate->factory()->undefined_value(), arraysize(args), args);
-}
-
-
 Maybe<bool> Object::AddDataProperty(LookupIterator* it, Handle<Object> value,
                                     PropertyAttributes attributes,
                                     ShouldThrow should_throw,
@@ -4562,6 +4619,7 @@
     JSObject::ValidateElements(receiver);
     return result;
   } else {
+    it->UpdateProtector();
     // Migrate to the most up-to-date map that will be able to store |value|
     // under it->name() with |attributes|.
     it->PrepareTransitionToDataProperty(receiver, value, attributes,
@@ -4578,13 +4636,6 @@
       it->WriteDataValue(value);
     }
 
-    // Send the change record if there are observers.
-    if (receiver->map()->is_observed() && !it->name()->IsPrivate()) {
-      RETURN_ON_EXCEPTION_VALUE(isolate, JSObject::EnqueueChangeRecord(
-                                             receiver, "add", it->name(),
-                                             it->factory()->the_hole_value()),
-                                Nothing<bool>());
-    }
 #if VERIFY_HEAP
     if (FLAG_verify_heap) {
       receiver->JSObjectVerify();
@@ -4745,17 +4796,30 @@
   return false;
 }
 
+Map* Map::FindElementsKindTransitionedMap(MapHandleList* candidates) {
+  DisallowHeapAllocation no_allocation;
+  DisallowDeoptimization no_deoptimization(GetIsolate());
 
-Handle<Map> Map::FindTransitionedMap(Handle<Map> map,
-                                     MapHandleList* candidates) {
-  ElementsKind kind = map->elements_kind();
+  ElementsKind kind = elements_kind();
   bool packed = IsFastPackedElementsKind(kind);
 
   Map* transition = nullptr;
   if (IsTransitionableFastElementsKind(kind)) {
-    for (Map* current = map->ElementsTransitionMap();
-         current != nullptr && current->has_fast_elements();
-         current = current->ElementsTransitionMap()) {
+    // Check the state of the root map.
+    Map* root_map = FindRootMap();
+    if (!EquivalentToForTransition(root_map)) return nullptr;
+    root_map = root_map->LookupElementsTransitionMap(kind);
+    DCHECK_NOT_NULL(root_map);
+    // Starting from the next existing elements kind transition try to
+    // replay the property transitions that does not involve instance rewriting
+    // (ElementsTransitionAndStoreStub does not support that).
+    for (root_map = root_map->ElementsTransitionMap();
+         root_map != nullptr && root_map->has_fast_elements();
+         root_map = root_map->ElementsTransitionMap()) {
+      Map* current = root_map->TryReplayPropertyTransitions(this);
+      if (current == nullptr) continue;
+      if (InstancesNeedRewriting(current)) continue;
+
       if (ContainsMap(candidates, current) &&
           (packed || !IsFastPackedElementsKind(current->elements_kind()))) {
         transition = current;
@@ -4763,11 +4827,14 @@
       }
     }
   }
-  return transition == nullptr ? Handle<Map>() : handle(transition);
+  return transition;
 }
 
 
 static Map* FindClosestElementsTransition(Map* map, ElementsKind to_kind) {
+  // Ensure we are requested to search elements kind transition "near the root".
+  DCHECK_EQ(map->FindRootMap()->NumberOfOwnDescriptors(),
+            map->NumberOfOwnDescriptors());
   Map* current_map = map;
 
   ElementsKind kind = map->elements_kind();
@@ -4896,7 +4963,7 @@
     return Map::CopyAsElementsKind(map, to_kind, OMIT_TRANSITION);
   }
 
-  return Map::AsElementsKind(map, to_kind);
+  return Map::ReconfigureElementsKind(map, to_kind);
 }
 
 
@@ -4929,7 +4996,7 @@
 Maybe<bool> JSProxy::HasProperty(Isolate* isolate, Handle<JSProxy> proxy,
                                  Handle<Name> name) {
   DCHECK(!name->IsPrivate());
-  STACK_CHECK(Nothing<bool>());
+  STACK_CHECK(isolate, Nothing<bool>());
   // 1. (Assert)
   // 2. Let handler be the value of the [[ProxyHandler]] internal slot of O.
   Handle<Object> handler(proxy->handler(), isolate);
@@ -4998,7 +5065,7 @@
                                  LanguageMode language_mode) {
   DCHECK(!name->IsPrivate());
   Isolate* isolate = proxy->GetIsolate();
-  STACK_CHECK(Nothing<bool>());
+  STACK_CHECK(isolate, Nothing<bool>());
   Factory* factory = isolate->factory();
   Handle<String> trap_name = factory->set_string();
   ShouldThrow should_throw =
@@ -5069,7 +5136,7 @@
   ShouldThrow should_throw =
       is_sloppy(language_mode) ? DONT_THROW : THROW_ON_ERROR;
   Isolate* isolate = proxy->GetIsolate();
-  STACK_CHECK(Nothing<bool>());
+  STACK_CHECK(isolate, Nothing<bool>());
   Factory* factory = isolate->factory();
   Handle<String> trap_name = factory->deleteProperty_string();
 
@@ -5160,6 +5227,44 @@
       handle(function->bound_target_function()));
 }
 
+// static
+MaybeHandle<String> JSBoundFunction::GetName(Isolate* isolate,
+                                             Handle<JSBoundFunction> function) {
+  Handle<String> prefix = isolate->factory()->bound__string();
+  if (!function->bound_target_function()->IsJSFunction()) return prefix;
+  Handle<JSFunction> target(JSFunction::cast(function->bound_target_function()),
+                            isolate);
+  Handle<Object> target_name = JSFunction::GetName(isolate, target);
+  if (!target_name->IsString()) return prefix;
+  Factory* factory = isolate->factory();
+  return factory->NewConsString(prefix, Handle<String>::cast(target_name));
+}
+
+// static
+Handle<Object> JSFunction::GetName(Isolate* isolate,
+                                   Handle<JSFunction> function) {
+  if (function->shared()->name_should_print_as_anonymous()) {
+    return isolate->factory()->anonymous_string();
+  }
+  return handle(function->shared()->name(), isolate);
+}
+
+// static
+MaybeHandle<Smi> JSFunction::GetLength(Isolate* isolate,
+                                       Handle<JSFunction> function) {
+  int length = 0;
+  if (function->shared()->is_compiled()) {
+    length = function->shared()->length();
+  } else {
+    // If the function isn't compiled yet, the length is not computed
+    // correctly yet. Compile it now and return the right length.
+    if (Compiler::Compile(function, Compiler::KEEP_EXCEPTION)) {
+      length = function->shared()->length();
+    }
+    if (isolate->has_pending_exception()) return MaybeHandle<Smi>();
+  }
+  return handle(Smi::FromInt(length), isolate);
+}
 
 // static
 Handle<Context> JSFunction::GetFunctionRealm(Handle<JSFunction> function) {
@@ -5220,7 +5325,7 @@
     } else {
       TransitionElementsKind(object, to_kind);
     }
-    map = Map::AsElementsKind(map, to_kind);
+    map = Map::ReconfigureElementsKind(map, to_kind);
   }
   JSObject::MigrateToMap(object, map);
 }
@@ -5302,8 +5407,6 @@
     ShouldThrow should_throw, AccessorInfoHandling handling) {
   it->UpdateProtector();
   Handle<JSObject> object = Handle<JSObject>::cast(it->GetReceiver());
-  bool is_observed = object->map()->is_observed() &&
-                     (it->IsElement() || !it->name()->IsPrivate());
 
   for (; it->IsFound(); it->Next()) {
     switch (it->state()) {
@@ -5363,14 +5466,6 @@
           it->ReconfigureDataProperty(value, attributes);
         }
 
-        if (is_observed) {
-          RETURN_ON_EXCEPTION_VALUE(
-              it->isolate(),
-              EnqueueChangeRecord(object, "reconfigure", it->GetName(),
-                                  it->factory()->the_hole_value()),
-              Nothing<bool>());
-        }
-
         return Just(true);
       }
       case LookupIterator::INTEGER_INDEXED_EXOTIC:
@@ -5391,20 +5486,8 @@
         }
 
         // Reconfigure the data property if the attributes mismatch.
-        Handle<Object> old_value = it->factory()->the_hole_value();
-        if (is_observed) old_value = it->GetDataValue();
-
         it->ReconfigureDataProperty(value, attributes);
 
-        if (is_observed) {
-          if (old_value->SameValue(*value)) {
-            old_value = it->factory()->the_hole_value();
-          }
-          RETURN_ON_EXCEPTION_VALUE(
-              it->isolate(), EnqueueChangeRecord(object, "reconfigure",
-                                                 it->GetName(), old_value),
-              Nothing<bool>());
-        }
         return Just(true);
       }
     }
@@ -5893,162 +5976,6 @@
 }
 
 
-Object* JSObject::GetHiddenProperty(Handle<Name> key) {
-  DisallowHeapAllocation no_gc;
-  DCHECK(key->IsUniqueName());
-  if (IsJSGlobalProxy()) {
-    // For a proxy, use the prototype as target object.
-    PrototypeIterator iter(GetIsolate(), this);
-    // If the proxy is detached, return undefined.
-    if (iter.IsAtEnd()) return GetHeap()->the_hole_value();
-    DCHECK(iter.GetCurrent()->IsJSGlobalObject());
-    return iter.GetCurrent<JSObject>()->GetHiddenProperty(key);
-  }
-  DCHECK(!IsJSGlobalProxy());
-  Object* inline_value = GetHiddenPropertiesHashTable();
-
-  if (inline_value->IsUndefined()) return GetHeap()->the_hole_value();
-
-  ObjectHashTable* hashtable = ObjectHashTable::cast(inline_value);
-  Object* entry = hashtable->Lookup(key);
-  return entry;
-}
-
-
-Handle<Object> JSObject::SetHiddenProperty(Handle<JSObject> object,
-                                           Handle<Name> key,
-                                           Handle<Object> value) {
-  Isolate* isolate = object->GetIsolate();
-
-  DCHECK(key->IsUniqueName());
-  if (object->IsJSGlobalProxy()) {
-    // For a proxy, use the prototype as target object.
-    PrototypeIterator iter(isolate, object);
-    // If the proxy is detached, return undefined.
-    if (iter.IsAtEnd()) return isolate->factory()->undefined_value();
-    DCHECK(PrototypeIterator::GetCurrent(iter)->IsJSGlobalObject());
-    return SetHiddenProperty(PrototypeIterator::GetCurrent<JSObject>(iter), key,
-                             value);
-  }
-  DCHECK(!object->IsJSGlobalProxy());
-
-  Handle<Object> inline_value(object->GetHiddenPropertiesHashTable(), isolate);
-
-  Handle<ObjectHashTable> hashtable =
-      GetOrCreateHiddenPropertiesHashtable(object);
-
-  // If it was found, check if the key is already in the dictionary.
-  Handle<ObjectHashTable> new_table = ObjectHashTable::Put(hashtable, key,
-                                                           value);
-  if (*new_table != *hashtable) {
-    // If adding the key expanded the dictionary (i.e., Add returned a new
-    // dictionary), store it back to the object.
-    SetHiddenPropertiesHashTable(object, new_table);
-  }
-
-  // Return this to mark success.
-  return object;
-}
-
-
-void JSObject::DeleteHiddenProperty(Handle<JSObject> object, Handle<Name> key) {
-  Isolate* isolate = object->GetIsolate();
-  DCHECK(key->IsUniqueName());
-
-  if (object->IsJSGlobalProxy()) {
-    PrototypeIterator iter(isolate, object);
-    if (iter.IsAtEnd()) return;
-    DCHECK(PrototypeIterator::GetCurrent(iter)->IsJSGlobalObject());
-    return DeleteHiddenProperty(PrototypeIterator::GetCurrent<JSObject>(iter),
-                                key);
-  }
-
-  Object* inline_value = object->GetHiddenPropertiesHashTable();
-
-  if (inline_value->IsUndefined()) return;
-
-  Handle<ObjectHashTable> hashtable(ObjectHashTable::cast(inline_value));
-  bool was_present = false;
-  ObjectHashTable::Remove(hashtable, key, &was_present);
-}
-
-
-bool JSObject::HasHiddenProperties(Handle<JSObject> object) {
-  Isolate* isolate = object->GetIsolate();
-  Handle<Symbol> hidden = isolate->factory()->hidden_properties_symbol();
-  LookupIterator it(object, hidden, object);
-  Maybe<PropertyAttributes> maybe = GetPropertyAttributes(&it);
-  // Cannot get an exception since the hidden_properties_symbol isn't exposed to
-  // JS.
-  DCHECK(maybe.IsJust());
-  return maybe.FromJust() != ABSENT;
-}
-
-
-Object* JSObject::GetHiddenPropertiesHashTable() {
-  DCHECK(!IsJSGlobalProxy());
-  if (HasFastProperties()) {
-    // If the object has fast properties, check whether the first slot
-    // in the descriptor array matches the hidden string. Since the
-    // hidden strings hash code is zero (and no other name has hash
-    // code zero) it will always occupy the first entry if present.
-    DescriptorArray* descriptors = this->map()->instance_descriptors();
-    if (descriptors->number_of_descriptors() > 0) {
-      int sorted_index = descriptors->GetSortedKeyIndex(0);
-      if (descriptors->GetKey(sorted_index) ==
-              GetHeap()->hidden_properties_symbol() &&
-          sorted_index < map()->NumberOfOwnDescriptors()) {
-        DCHECK(descriptors->GetType(sorted_index) == DATA);
-        DCHECK(descriptors->GetDetails(sorted_index).representation().
-               IsCompatibleForLoad(Representation::Tagged()));
-        FieldIndex index = FieldIndex::ForDescriptor(this->map(),
-                                                     sorted_index);
-        return this->RawFastPropertyAt(index);
-      } else {
-        return GetHeap()->undefined_value();
-      }
-    } else {
-      return GetHeap()->undefined_value();
-    }
-  } else {
-    Isolate* isolate = GetIsolate();
-    Handle<Symbol> hidden = isolate->factory()->hidden_properties_symbol();
-    Handle<JSObject> receiver(this, isolate);
-    LookupIterator it(receiver, hidden, receiver);
-    // Access check is always skipped for the hidden string anyways.
-    return *GetDataProperty(&it);
-  }
-}
-
-Handle<ObjectHashTable> JSObject::GetOrCreateHiddenPropertiesHashtable(
-    Handle<JSObject> object) {
-  Isolate* isolate = object->GetIsolate();
-
-  static const int kInitialCapacity = 4;
-  Handle<Object> inline_value(object->GetHiddenPropertiesHashTable(), isolate);
-  if (inline_value->IsHashTable()) {
-    return Handle<ObjectHashTable>::cast(inline_value);
-  }
-
-  Handle<ObjectHashTable> hashtable = ObjectHashTable::New(
-      isolate, kInitialCapacity, USE_CUSTOM_MINIMUM_CAPACITY);
-
-  DCHECK(inline_value->IsUndefined());
-  SetHiddenPropertiesHashTable(object, hashtable);
-  return hashtable;
-}
-
-
-Handle<Object> JSObject::SetHiddenPropertiesHashTable(Handle<JSObject> object,
-                                                      Handle<Object> value) {
-  DCHECK(!object->IsJSGlobalProxy());
-  Isolate* isolate = object->GetIsolate();
-  Handle<Symbol> name = isolate->factory()->hidden_properties_symbol();
-  SetOwnPropertyIgnoreAttributes(object, name, value, DONT_ENUM).Assert();
-  return object;
-}
-
-
 Maybe<bool> JSObject::DeletePropertyWithInterceptor(LookupIterator* it,
                                                     ShouldThrow should_throw) {
   Isolate* isolate = it->isolate();
@@ -6145,11 +6072,6 @@
   }
   Handle<JSObject> receiver = Handle<JSObject>::cast(it->GetReceiver());
 
-  bool is_observed = receiver->map()->is_observed() &&
-                     (it->IsElement() || !it->name()->IsPrivate());
-
-  Handle<Object> old_value = it->factory()->the_hole_value();
-
   for (; it->IsFound(); it->Next()) {
     switch (it->state()) {
       case LookupIterator::JSPROXY:
@@ -6177,10 +6099,6 @@
       case LookupIterator::INTEGER_INDEXED_EXOTIC:
         return Just(true);
       case LookupIterator::DATA:
-        if (is_observed) {
-          old_value = it->GetDataValue();
-        }
-      // Fall through.
       case LookupIterator::ACCESSOR: {
         if (!it->IsConfigurable()) {
           // Fail if the property is not configurable.
@@ -6195,13 +6113,6 @@
 
         it->Delete();
 
-        if (is_observed) {
-          RETURN_ON_EXCEPTION_VALUE(
-              isolate, JSObject::EnqueueChangeRecord(receiver, "delete",
-                                                     it->GetName(), old_value),
-              Nothing<bool>());
-        }
-
         return Just(true);
       }
     }
@@ -6214,7 +6125,7 @@
 Maybe<bool> JSReceiver::DeleteElement(Handle<JSReceiver> object, uint32_t index,
                                       LanguageMode language_mode) {
   LookupIterator it(object->GetIsolate(), object, index, object,
-                    LookupIterator::HIDDEN);
+                    LookupIterator::OWN);
   return DeleteProperty(&it, language_mode);
 }
 
@@ -6222,7 +6133,7 @@
 Maybe<bool> JSReceiver::DeleteProperty(Handle<JSReceiver> object,
                                        Handle<Name> name,
                                        LanguageMode language_mode) {
-  LookupIterator it(object, name, object, LookupIterator::HIDDEN);
+  LookupIterator it(object, name, object, LookupIterator::OWN);
   return DeleteProperty(&it, language_mode);
 }
 
@@ -6231,13 +6142,15 @@
                                                 Handle<Name> name,
                                                 LanguageMode language_mode) {
   LookupIterator it = LookupIterator::PropertyOrElement(
-      name->GetIsolate(), object, name, object, LookupIterator::HIDDEN);
+      name->GetIsolate(), object, name, object, LookupIterator::OWN);
   return DeleteProperty(&it, language_mode);
 }
 
 
 // ES6 7.1.14
-MaybeHandle<Object> ToPropertyKey(Isolate* isolate, Handle<Object> value) {
+// static
+MaybeHandle<Object> Object::ToPropertyKey(Isolate* isolate,
+                                          Handle<Object> value) {
   // 1. Let key be ToPrimitive(argument, hint String).
   MaybeHandle<Object> maybe_key =
       Object::ToPrimitive(value, ToPrimitiveHint::kString);
@@ -6330,7 +6243,7 @@
     // 7b. ReturnIfAbrupt(propDesc).
     bool success = false;
     LookupIterator it = LookupIterator::PropertyOrElement(
-        isolate, props, next_key, &success, LookupIterator::HIDDEN);
+        isolate, props, next_key, &success, LookupIterator::OWN);
     DCHECK(success);
     Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
     if (!maybe.IsJust()) return MaybeHandle<Object>();
@@ -6405,7 +6318,7 @@
   bool success = false;
   DCHECK(key->IsName() || key->IsNumber());  // |key| is a PropertyKey...
   LookupIterator it = LookupIterator::PropertyOrElement(
-      isolate, object, key, &success, LookupIterator::HIDDEN);
+      isolate, object, key, &success, LookupIterator::OWN);
   DCHECK(success);  // ...so creating a LookupIterator can't fail.
 
   // Deal with access checks first.
@@ -6950,10 +6863,7 @@
     // (Not needed.)
   }
   // Most of steps 16 through 19 is implemented by JSArray::SetLength.
-  if (JSArray::ObservableSetLength(a, new_len).is_null()) {
-    DCHECK(isolate->has_pending_exception());
-    return Nothing<bool>();
-  }
+  JSArray::SetLength(a, new_len);
   // Steps 19d-ii, 20.
   if (!new_writable) {
     PropertyDescriptor readonly;
@@ -6985,7 +6895,7 @@
                                        Handle<Object> key,
                                        PropertyDescriptor* desc,
                                        ShouldThrow should_throw) {
-  STACK_CHECK(Nothing<bool>());
+  STACK_CHECK(isolate, Nothing<bool>());
   if (key->IsSymbol() && Handle<Symbol>::cast(key)->IsPrivate()) {
     return SetPrivateProperty(isolate, proxy, Handle<Symbol>::cast(key), desc,
                               should_throw);
@@ -7135,7 +7045,7 @@
   bool success = false;
   DCHECK(key->IsName() || key->IsNumber());  // |key| is a PropertyKey...
   LookupIterator it = LookupIterator::PropertyOrElement(
-      isolate, object, key, &success, LookupIterator::HIDDEN);
+      isolate, object, key, &success, LookupIterator::OWN);
   DCHECK(success);  // ...so creating a LookupIterator can't fail.
   return GetOwnPropertyDescriptor(&it, desc);
 }
@@ -7206,7 +7116,7 @@
                                               Handle<Name> name,
                                               PropertyDescriptor* desc) {
   DCHECK(!name->IsPrivate());
-  STACK_CHECK(Nothing<bool>());
+  STACK_CHECK(isolate, Nothing<bool>());
 
   Handle<String> trap_name =
       isolate->factory()->getOwnPropertyDescriptor_string();
@@ -7460,8 +7370,7 @@
 
   if (receiver->IsJSObject()) {
     Handle<JSObject> object = Handle<JSObject>::cast(receiver);
-    if (!object->HasSloppyArgumentsElements() &&
-        !object->map()->is_observed()) {  // Fast path.
+    if (!object->HasSloppyArgumentsElements()) {  // Fast path.
       if (level == SEALED) {
         return JSObject::PreventExtensionsWithTransition<SEALED>(object,
                                                                  should_throw);
@@ -7565,7 +7474,7 @@
 Maybe<bool> JSProxy::PreventExtensions(Handle<JSProxy> proxy,
                                        ShouldThrow should_throw) {
   Isolate* isolate = proxy->GetIsolate();
-  STACK_CHECK(Nothing<bool>());
+  STACK_CHECK(isolate, Nothing<bool>());
   Factory* factory = isolate->factory();
   Handle<String> trap_name = factory->preventExtensions_string();
 
@@ -7612,7 +7521,7 @@
                                         ShouldThrow should_throw) {
   Isolate* isolate = object->GetIsolate();
 
-  if (!object->HasSloppyArgumentsElements() && !object->map()->is_observed()) {
+  if (!object->HasSloppyArgumentsElements()) {
     return PreventExtensionsWithTransition<NONE>(object, should_throw);
   }
 
@@ -7653,13 +7562,6 @@
   JSObject::MigrateToMap(object, new_map);
   DCHECK(!object->map()->is_extensible());
 
-  if (object->map()->is_observed()) {
-    RETURN_ON_EXCEPTION_VALUE(
-        isolate,
-        EnqueueChangeRecord(object, "preventExtensions", Handle<Name>(),
-                            isolate->factory()->the_hole_value()),
-        Nothing<bool>());
-  }
   return Just(true);
 }
 
@@ -7674,7 +7576,7 @@
 
 Maybe<bool> JSProxy::IsExtensible(Handle<JSProxy> proxy) {
   Isolate* isolate = proxy->GetIsolate();
-  STACK_CHECK(Nothing<bool>());
+  STACK_CHECK(isolate, Nothing<bool>());
   Factory* factory = isolate->factory();
   Handle<String> trap_name = factory->isExtensible_string();
 
@@ -7760,7 +7662,6 @@
 
   // Sealing/freezing sloppy arguments should be handled elsewhere.
   DCHECK(!object->HasSloppyArgumentsElements());
-  DCHECK(!object->map()->is_observed());
 
   Isolate* isolate = object->GetIsolate();
   if (object->IsAccessCheckNeeded() &&
@@ -7879,28 +7780,6 @@
 }
 
 
-void JSObject::SetObserved(Handle<JSObject> object) {
-  DCHECK(!object->IsJSGlobalProxy());
-  DCHECK(!object->IsJSGlobalObject());
-  Isolate* isolate = object->GetIsolate();
-  Handle<Map> new_map;
-  Handle<Map> old_map(object->map(), isolate);
-  DCHECK(!old_map->is_observed());
-  Map* transition = TransitionArray::SearchSpecial(
-      *old_map, isolate->heap()->observed_symbol());
-  if (transition != NULL) {
-    new_map = handle(transition, isolate);
-    DCHECK(new_map->is_observed());
-  } else if (TransitionArray::CanHaveMoreTransitions(old_map)) {
-    new_map = Map::CopyForObserved(old_map);
-  } else {
-    new_map = Map::Copy(old_map, "SlowObserved");
-    new_map->set_is_observed();
-  }
-  JSObject::MigrateToMap(object, new_map);
-}
-
-
 Handle<Object> JSObject::FastPropertyAt(Handle<JSObject> object,
                                         Representation representation,
                                         FieldIndex index) {
@@ -8031,7 +7910,7 @@
           ONLY_WRITABLE | ONLY_ENUMERABLE | ONLY_CONFIGURABLE);
       KeyAccumulator accumulator(isolate, OWN_ONLY, filter);
       accumulator.NextPrototype();
-      copy->CollectOwnPropertyNames(&accumulator, filter);
+      accumulator.CollectOwnPropertyNames(copy);
       Handle<FixedArray> names = accumulator.GetKeys();
       for (int i = 0; i < names->length(); i++) {
         DCHECK(names->get(i)->IsName());
@@ -8295,28 +8174,6 @@
   return true;
 }
 
-// Tests for the fast common case for property enumeration:
-// - This object and all prototypes has an enum cache (which means that
-//   it is no proxy, has no interceptors and needs no access checks).
-// - This object has no elements.
-// - No prototype has enumerable properties/elements.
-bool JSReceiver::IsSimpleEnum() {
-  for (PrototypeIterator iter(GetIsolate(), this,
-                              PrototypeIterator::START_AT_RECEIVER);
-       !iter.IsAtEnd(); iter.Advance()) {
-    if (!iter.GetCurrent()->IsJSObject()) return false;
-    JSObject* current = iter.GetCurrent<JSObject>();
-    int enum_length = current->map()->EnumLength();
-    if (enum_length == kInvalidEnumCacheSentinel) return false;
-    if (current->IsAccessCheckNeeded()) return false;
-    DCHECK(!current->HasNamedInterceptor());
-    DCHECK(!current->HasIndexedInterceptor());
-    if (current->HasEnumerableElements()) return false;
-    if (current != this && enum_length != 0) return false;
-  }
-  return true;
-}
-
 
 int Map::NumberOfDescribedProperties(DescriptorFlag which,
                                      PropertyFilter filter) {
@@ -8350,23 +8207,6 @@
 }
 
 
-static bool ContainsOnlyValidKeys(Handle<FixedArray> array) {
-  int len = array->length();
-  for (int i = 0; i < len; i++) {
-    Object* e = array->get(i);
-    if (!(e->IsName() || e->IsNumber())) return false;
-  }
-  return true;
-}
-
-
-static Handle<FixedArray> ReduceFixedArrayTo(
-    Handle<FixedArray> array, int length) {
-  DCHECK_LE(length, array->length());
-  if (array->length() == length) return array;
-  return array->GetIsolate()->factory()->CopyFixedArrayUpTo(array, length);
-}
-
 bool Map::OnlyHasSimpleProperties() {
   // Wrapped string elements aren't explicitly stored in the elements backing
   // store, but are loaded indirectly from the underlying string.
@@ -8375,419 +8215,13 @@
          !has_hidden_prototype() && !is_dictionary_map();
 }
 
-// static
-Handle<FixedArray> JSObject::GetFastEnumPropertyKeys(Isolate* isolate,
-                                                     Handle<JSObject> object) {
-  Handle<Map> map(object->map());
-  bool cache_enum_length = map->OnlyHasSimpleProperties();
-
-  Handle<DescriptorArray> descs =
-      Handle<DescriptorArray>(map->instance_descriptors(), isolate);
-  int own_property_count = map->EnumLength();
-  // If the enum length of the given map is set to kInvalidEnumCache, this
-  // means that the map itself has never used the present enum cache. The
-  // first step to using the cache is to set the enum length of the map by
-  // counting the number of own descriptors that are ENUMERABLE_STRINGS.
-  if (own_property_count == kInvalidEnumCacheSentinel) {
-    own_property_count =
-        map->NumberOfDescribedProperties(OWN_DESCRIPTORS, ENUMERABLE_STRINGS);
-  } else {
-    DCHECK(
-        own_property_count ==
-        map->NumberOfDescribedProperties(OWN_DESCRIPTORS, ENUMERABLE_STRINGS));
-  }
-
-  if (descs->HasEnumCache()) {
-    Handle<FixedArray> keys(descs->GetEnumCache(), isolate);
-    // In case the number of properties required in the enum are actually
-    // present, we can reuse the enum cache. Otherwise, this means that the
-    // enum cache was generated for a previous (smaller) version of the
-    // Descriptor Array. In that case we regenerate the enum cache.
-    if (own_property_count <= keys->length()) {
-      isolate->counters()->enum_cache_hits()->Increment();
-      if (cache_enum_length) map->SetEnumLength(own_property_count);
-      return ReduceFixedArrayTo(keys, own_property_count);
-    }
-  }
-
-  if (descs->IsEmpty()) {
-    isolate->counters()->enum_cache_hits()->Increment();
-    if (cache_enum_length) map->SetEnumLength(0);
-    return isolate->factory()->empty_fixed_array();
-  }
-
-  isolate->counters()->enum_cache_misses()->Increment();
-
-  Handle<FixedArray> storage =
-      isolate->factory()->NewFixedArray(own_property_count);
-  Handle<FixedArray> indices =
-      isolate->factory()->NewFixedArray(own_property_count);
-
-  int size = map->NumberOfOwnDescriptors();
-  int index = 0;
-
-  for (int i = 0; i < size; i++) {
-    PropertyDetails details = descs->GetDetails(i);
-    if (details.IsDontEnum()) continue;
-    Object* key = descs->GetKey(i);
-    if (key->IsSymbol()) continue;
-    storage->set(index, key);
-    if (!indices.is_null()) {
-      if (details.type() != DATA) {
-        indices = Handle<FixedArray>();
-      } else {
-        FieldIndex field_index = FieldIndex::ForDescriptor(*map, i);
-        int load_by_field_index = field_index.GetLoadByFieldIndex();
-        indices->set(index, Smi::FromInt(load_by_field_index));
-      }
-    }
-    index++;
-  }
-  DCHECK(index == storage->length());
-
-  DescriptorArray::SetEnumCache(descs, isolate, storage, indices);
-  if (cache_enum_length) {
-    map->SetEnumLength(own_property_count);
-  }
-  return storage;
-}
-
-
-Handle<FixedArray> JSObject::GetEnumPropertyKeys(Handle<JSObject> object) {
-  Isolate* isolate = object->GetIsolate();
-  if (object->HasFastProperties()) {
-    return GetFastEnumPropertyKeys(isolate, object);
-  } else if (object->IsJSGlobalObject()) {
-    Handle<GlobalDictionary> dictionary(object->global_dictionary());
-    int length = dictionary->NumberOfEnumElements();
-    if (length == 0) {
-      return isolate->factory()->empty_fixed_array();
-    }
-    Handle<FixedArray> storage = isolate->factory()->NewFixedArray(length);
-    dictionary->CopyEnumKeysTo(*storage);
-    return storage;
-  } else {
-    Handle<NameDictionary> dictionary(object->property_dictionary());
-    int length = dictionary->NumberOfEnumElements();
-    if (length == 0) {
-      return isolate->factory()->empty_fixed_array();
-    }
-    Handle<FixedArray> storage = isolate->factory()->NewFixedArray(length);
-    dictionary->CopyEnumKeysTo(*storage);
-    return storage;
-  }
-}
-
-
-enum IndexedOrNamed { kIndexed, kNamed };
-
-
-// Returns |true| on success, |nothing| on exception.
-template <class Callback, IndexedOrNamed type>
-static Maybe<bool> GetKeysFromInterceptor(Isolate* isolate,
-                                          Handle<JSReceiver> receiver,
-                                          Handle<JSObject> object,
-                                          PropertyFilter filter,
-                                          KeyAccumulator* accumulator) {
-  if (type == kIndexed) {
-    if (!object->HasIndexedInterceptor()) return Just(true);
-  } else {
-    if (!object->HasNamedInterceptor()) return Just(true);
-  }
-  Handle<InterceptorInfo> interceptor(type == kIndexed
-                                          ? object->GetIndexedInterceptor()
-                                          : object->GetNamedInterceptor(),
-                                      isolate);
-  if ((filter & ONLY_ALL_CAN_READ) && !interceptor->all_can_read()) {
-    return Just(true);
-  }
-  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
-                                 *object, Object::DONT_THROW);
-  Handle<JSObject> result;
-  if (!interceptor->enumerator()->IsUndefined()) {
-    Callback enum_fun = v8::ToCData<Callback>(interceptor->enumerator());
-    const char* log_tag = type == kIndexed ? "interceptor-indexed-enum"
-                                           : "interceptor-named-enum";
-    LOG(isolate, ApiObjectAccess(log_tag, *object));
-    result = args.Call(enum_fun);
-  }
-  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<bool>());
-  if (result.is_null()) return Just(true);
-  DCHECK(result->IsJSArray() || result->HasSloppyArgumentsElements());
-  // The accumulator takes care of string/symbol filtering.
-  if (type == kIndexed) {
-    accumulator->AddElementKeysFromInterceptor(result);
-  } else {
-    accumulator->AddKeys(result, DO_NOT_CONVERT);
-  }
-  return Just(true);
-}
-
-
-// Returns |true| on success, |false| if prototype walking should be stopped,
-// |nothing| if an exception was thrown.
-static Maybe<bool> GetKeysFromJSObject(Isolate* isolate,
-                                       Handle<JSReceiver> receiver,
-                                       Handle<JSObject> object,
-                                       PropertyFilter* filter,
-                                       KeyCollectionType type,
-                                       KeyAccumulator* accumulator) {
-  accumulator->NextPrototype();
-  // Check access rights if required.
-  if (object->IsAccessCheckNeeded() &&
-      !isolate->MayAccess(handle(isolate->context()), object)) {
-    // The cross-origin spec says that [[Enumerate]] shall return an empty
-    // iterator when it doesn't have access...
-    if (type == INCLUDE_PROTOS) {
-      return Just(false);
-    }
-    // ...whereas [[OwnPropertyKeys]] shall return whitelisted properties.
-    DCHECK_EQ(OWN_ONLY, type);
-    *filter = static_cast<PropertyFilter>(*filter | ONLY_ALL_CAN_READ);
-  }
-
-  JSObject::CollectOwnElementKeys(object, accumulator, *filter);
-
-  // Add the element keys from the interceptor.
-  Maybe<bool> success =
-      GetKeysFromInterceptor<v8::IndexedPropertyEnumeratorCallback, kIndexed>(
-          isolate, receiver, object, *filter, accumulator);
-  MAYBE_RETURN(success, Nothing<bool>());
-
-  if (*filter == ENUMERABLE_STRINGS) {
-    Handle<FixedArray> enum_keys = JSObject::GetEnumPropertyKeys(object);
-    accumulator->AddKeys(enum_keys, DO_NOT_CONVERT);
-  } else {
-    object->CollectOwnPropertyNames(accumulator, *filter);
-  }
-
-  // Add the property keys from the interceptor.
-  success = GetKeysFromInterceptor<v8::GenericNamedPropertyEnumeratorCallback,
-                                   kNamed>(isolate, receiver, object, *filter,
-                                           accumulator);
-  MAYBE_RETURN(success, Nothing<bool>());
-  return Just(true);
-}
-
-
-// Helper function for JSReceiver::GetKeys() below. Can be called recursively.
-// Returns |true| or |nothing|.
-static Maybe<bool> GetKeys_Internal(Isolate* isolate,
-                                    Handle<JSReceiver> receiver,
-                                    Handle<JSReceiver> object,
-                                    KeyCollectionType type,
-                                    PropertyFilter filter,
-                                    KeyAccumulator* accumulator) {
-  // Proxies have no hidden prototype and we should not trigger the
-  // [[GetPrototypeOf]] trap on the last iteration when using
-  // AdvanceFollowingProxies.
-  if (type == OWN_ONLY && object->IsJSProxy()) {
-    MAYBE_RETURN(JSProxy::OwnPropertyKeys(isolate, receiver,
-                                          Handle<JSProxy>::cast(object), filter,
-                                          accumulator),
-                 Nothing<bool>());
-    return Just(true);
-  }
-
-  PrototypeIterator::WhereToEnd end = type == OWN_ONLY
-                                          ? PrototypeIterator::END_AT_NON_HIDDEN
-                                          : PrototypeIterator::END_AT_NULL;
-  for (PrototypeIterator iter(isolate, object,
-                              PrototypeIterator::START_AT_RECEIVER, end);
-       !iter.IsAtEnd();) {
-    Handle<JSReceiver> current =
-        PrototypeIterator::GetCurrent<JSReceiver>(iter);
-    Maybe<bool> result = Just(false);  // Dummy initialization.
-    if (current->IsJSProxy()) {
-      result = JSProxy::OwnPropertyKeys(isolate, receiver,
-                                        Handle<JSProxy>::cast(current), filter,
-                                        accumulator);
-    } else {
-      DCHECK(current->IsJSObject());
-      result = GetKeysFromJSObject(isolate, receiver,
-                                   Handle<JSObject>::cast(current), &filter,
-                                   type, accumulator);
-    }
-    MAYBE_RETURN(result, Nothing<bool>());
-    if (!result.FromJust()) break;  // |false| means "stop iterating".
-    // Iterate through proxies but ignore access checks for the ALL_CAN_READ
-    // case on API objects for OWN_ONLY keys handlede in GgetKeysFromJSObject.
-    if (!iter.AdvanceFollowingProxiesIgnoringAccessChecks()) {
-      return Nothing<bool>();
-    }
-  }
-  return Just(true);
-}
-
-
-// ES6 9.5.12
-// Returns |true| on success, |nothing| in case of exception.
-// static
-Maybe<bool> JSProxy::OwnPropertyKeys(Isolate* isolate,
-                                     Handle<JSReceiver> receiver,
-                                     Handle<JSProxy> proxy,
-                                     PropertyFilter filter,
-                                     KeyAccumulator* accumulator) {
-  STACK_CHECK(Nothing<bool>());
-  // 1. Let handler be the value of the [[ProxyHandler]] internal slot of O.
-  Handle<Object> handler(proxy->handler(), isolate);
-  // 2. If handler is null, throw a TypeError exception.
-  // 3. Assert: Type(handler) is Object.
-  if (proxy->IsRevoked()) {
-    isolate->Throw(*isolate->factory()->NewTypeError(
-        MessageTemplate::kProxyRevoked, isolate->factory()->ownKeys_string()));
-    return Nothing<bool>();
-  }
-  // 4. Let target be the value of the [[ProxyTarget]] internal slot of O.
-  Handle<JSReceiver> target(proxy->target(), isolate);
-  // 5. Let trap be ? GetMethod(handler, "ownKeys").
-  Handle<Object> trap;
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-      isolate, trap, Object::GetMethod(Handle<JSReceiver>::cast(handler),
-                                       isolate->factory()->ownKeys_string()),
-      Nothing<bool>());
-  // 6. If trap is undefined, then
-  if (trap->IsUndefined()) {
-    // 6a. Return target.[[OwnPropertyKeys]]().
-    return GetKeys_Internal(isolate, receiver, target, OWN_ONLY, filter,
-                            accumulator);
-  }
-  // 7. Let trapResultArray be Call(trap, handler, «target»).
-  Handle<Object> trap_result_array;
-  Handle<Object> args[] = {target};
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-      isolate, trap_result_array,
-      Execution::Call(isolate, trap, handler, arraysize(args), args),
-      Nothing<bool>());
-  // 8. Let trapResult be ? CreateListFromArrayLike(trapResultArray,
-  //    «String, Symbol»).
-  Handle<FixedArray> trap_result;
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-      isolate, trap_result,
-      Object::CreateListFromArrayLike(isolate, trap_result_array,
-                                      ElementTypes::kStringAndSymbol),
-      Nothing<bool>());
-  // 9. Let extensibleTarget be ? IsExtensible(target).
-  Maybe<bool> maybe_extensible = JSReceiver::IsExtensible(target);
-  MAYBE_RETURN(maybe_extensible, Nothing<bool>());
-  bool extensible_target = maybe_extensible.FromJust();
-  // 10. Let targetKeys be ? target.[[OwnPropertyKeys]]().
-  Handle<FixedArray> target_keys;
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, target_keys,
-                                   JSReceiver::OwnPropertyKeys(target),
-                                   Nothing<bool>());
-  // 11. (Assert)
-  // 12. Let targetConfigurableKeys be an empty List.
-  // To save memory, we're re-using target_keys and will modify it in-place.
-  Handle<FixedArray> target_configurable_keys = target_keys;
-  // 13. Let targetNonconfigurableKeys be an empty List.
-  Handle<FixedArray> target_nonconfigurable_keys =
-      isolate->factory()->NewFixedArray(target_keys->length());
-  int nonconfigurable_keys_length = 0;
-  // 14. Repeat, for each element key of targetKeys:
-  for (int i = 0; i < target_keys->length(); ++i) {
-    // 14a. Let desc be ? target.[[GetOwnProperty]](key).
-    PropertyDescriptor desc;
-    Maybe<bool> found = JSReceiver::GetOwnPropertyDescriptor(
-        isolate, target, handle(target_keys->get(i), isolate), &desc);
-    MAYBE_RETURN(found, Nothing<bool>());
-    // 14b. If desc is not undefined and desc.[[Configurable]] is false, then
-    if (found.FromJust() && !desc.configurable()) {
-      // 14b i. Append key as an element of targetNonconfigurableKeys.
-      target_nonconfigurable_keys->set(nonconfigurable_keys_length,
-                                       target_keys->get(i));
-      nonconfigurable_keys_length++;
-      // The key was moved, null it out in the original list.
-      target_keys->set(i, Smi::FromInt(0));
-    } else {
-      // 14c. Else,
-      // 14c i. Append key as an element of targetConfigurableKeys.
-      // (No-op, just keep it in |target_keys|.)
-    }
-  }
-  accumulator->NextPrototype();  // Prepare for accumulating keys.
-  // 15. If extensibleTarget is true and targetNonconfigurableKeys is empty,
-  //     then:
-  if (extensible_target && nonconfigurable_keys_length == 0) {
-    // 15a. Return trapResult.
-    return accumulator->AddKeysFromProxy(proxy, trap_result);
-  }
-  // 16. Let uncheckedResultKeys be a new List which is a copy of trapResult.
-  Zone set_zone(isolate->allocator());
-  const int kPresent = 1;
-  const int kGone = 0;
-  IdentityMap<int> unchecked_result_keys(isolate->heap(), &set_zone);
-  int unchecked_result_keys_size = 0;
-  for (int i = 0; i < trap_result->length(); ++i) {
-    DCHECK(trap_result->get(i)->IsUniqueName());
-    Object* key = trap_result->get(i);
-    int* entry = unchecked_result_keys.Get(key);
-    if (*entry != kPresent) {
-      *entry = kPresent;
-      unchecked_result_keys_size++;
-    }
-  }
-  // 17. Repeat, for each key that is an element of targetNonconfigurableKeys:
-  for (int i = 0; i < nonconfigurable_keys_length; ++i) {
-    Object* key = target_nonconfigurable_keys->get(i);
-    // 17a. If key is not an element of uncheckedResultKeys, throw a
-    //      TypeError exception.
-    int* found = unchecked_result_keys.Find(key);
-    if (found == nullptr || *found == kGone) {
-      isolate->Throw(*isolate->factory()->NewTypeError(
-          MessageTemplate::kProxyOwnKeysMissing, handle(key, isolate)));
-      return Nothing<bool>();
-    }
-    // 17b. Remove key from uncheckedResultKeys.
-    *found = kGone;
-    unchecked_result_keys_size--;
-  }
-  // 18. If extensibleTarget is true, return trapResult.
-  if (extensible_target) {
-    return accumulator->AddKeysFromProxy(proxy, trap_result);
-  }
-  // 19. Repeat, for each key that is an element of targetConfigurableKeys:
-  for (int i = 0; i < target_configurable_keys->length(); ++i) {
-    Object* key = target_configurable_keys->get(i);
-    if (key->IsSmi()) continue;  // Zapped entry, was nonconfigurable.
-    // 19a. If key is not an element of uncheckedResultKeys, throw a
-    //      TypeError exception.
-    int* found = unchecked_result_keys.Find(key);
-    if (found == nullptr || *found == kGone) {
-      isolate->Throw(*isolate->factory()->NewTypeError(
-          MessageTemplate::kProxyOwnKeysMissing, handle(key, isolate)));
-      return Nothing<bool>();
-    }
-    // 19b. Remove key from uncheckedResultKeys.
-    *found = kGone;
-    unchecked_result_keys_size--;
-  }
-  // 20. If uncheckedResultKeys is not empty, throw a TypeError exception.
-  if (unchecked_result_keys_size != 0) {
-    DCHECK_GT(unchecked_result_keys_size, 0);
-    isolate->Throw(*isolate->factory()->NewTypeError(
-        MessageTemplate::kProxyOwnKeysNonExtensible));
-    return Nothing<bool>();
-  }
-  // 21. Return trapResult.
-  return accumulator->AddKeysFromProxy(proxy, trap_result);
-}
-
 MaybeHandle<FixedArray> JSReceiver::GetKeys(Handle<JSReceiver> object,
                                             KeyCollectionType type,
                                             PropertyFilter filter,
                                             GetKeysConversion keys_conversion,
                                             bool filter_proxy_keys) {
-  USE(ContainsOnlyValidKeys);
-  Isolate* isolate = object->GetIsolate();
-  KeyAccumulator accumulator(isolate, type, filter);
-  accumulator.set_filter_proxy_keys(filter_proxy_keys);
-  MAYBE_RETURN(
-      GetKeys_Internal(isolate, object, object, type, filter, &accumulator),
-      MaybeHandle<FixedArray>());
-  Handle<FixedArray> keys = accumulator.GetKeys(keys_conversion);
-  DCHECK(ContainsOnlyValidKeys(keys));
-  return keys;
+  return KeyAccumulator::GetKeys(object, type, filter, keys_conversion,
+                                 filter_proxy_keys);
 }
 
 MUST_USE_RESULT Maybe<bool> FastGetOwnValuesOrEntries(
@@ -8881,11 +8315,9 @@
   PropertyFilter key_filter =
       static_cast<PropertyFilter>(filter & ~ONLY_ENUMERABLE);
   KeyAccumulator accumulator(isolate, OWN_ONLY, key_filter);
-  MAYBE_RETURN(GetKeys_Internal(isolate, object, object, OWN_ONLY, key_filter,
-                                &accumulator),
+  MAYBE_RETURN(accumulator.CollectKeys(object, object),
                MaybeHandle<FixedArray>());
   Handle<FixedArray> keys = accumulator.GetKeys(CONVERT_TO_STRING);
-  DCHECK(ContainsOnlyValidKeys(keys));
 
   values_or_entries = isolate->factory()->NewFixedArray(keys->length());
   int length = 0;
@@ -8970,7 +8402,7 @@
   Isolate* isolate = object->GetIsolate();
 
   LookupIterator it = LookupIterator::PropertyOrElement(
-      isolate, object, name, LookupIterator::HIDDEN_SKIP_INTERCEPTOR);
+      isolate, object, name, LookupIterator::OWN_SKIP_INTERCEPTOR);
   return DefineAccessor(&it, getter, setter, attributes);
 }
 
@@ -8998,40 +8430,11 @@
     return it->factory()->undefined_value();
   }
 
-  Handle<Object> old_value = isolate->factory()->the_hole_value();
-  bool is_observed = object->map()->is_observed() &&
-                     (it->IsElement() || !it->name()->IsPrivate());
-  bool preexists = false;
-  if (is_observed) {
-    CHECK(GetPropertyAttributes(it).IsJust());
-    preexists = it->IsFound();
-    if (preexists && (it->state() == LookupIterator::DATA ||
-                      it->GetAccessors()->IsAccessorInfo())) {
-      old_value = Object::GetProperty(it).ToHandleChecked();
-    }
-  }
-
   DCHECK(getter->IsCallable() || getter->IsUndefined() || getter->IsNull() ||
          getter->IsFunctionTemplateInfo());
   DCHECK(setter->IsCallable() || setter->IsUndefined() || setter->IsNull() ||
          getter->IsFunctionTemplateInfo());
-  // At least one of the accessors needs to be a new value.
-  DCHECK(!getter->IsNull() || !setter->IsNull());
-  if (!getter->IsNull()) {
-    it->TransitionToAccessorProperty(ACCESSOR_GETTER, getter, attributes);
-  }
-  if (!setter->IsNull()) {
-    it->TransitionToAccessorProperty(ACCESSOR_SETTER, setter, attributes);
-  }
-
-  if (is_observed) {
-    // Make sure the top context isn't changed.
-    AssertNoContextChange ncc(isolate);
-    const char* type = preexists ? "reconfigure" : "add";
-    RETURN_ON_EXCEPTION(
-        isolate, EnqueueChangeRecord(object, type, it->GetName(), old_value),
-        Object);
-  }
+  it->TransitionToAccessorProperty(getter, setter, attributes);
 
   return isolate->factory()->undefined_value();
 }
@@ -9043,7 +8446,7 @@
   Handle<Name> name(Name::cast(info->name()), isolate);
 
   LookupIterator it = LookupIterator::PropertyOrElement(
-      isolate, object, name, LookupIterator::HIDDEN_SKIP_INTERCEPTOR);
+      isolate, object, name, LookupIterator::OWN_SKIP_INTERCEPTOR);
 
   // Duplicate ACCESS_CHECK outside of GetPropertyAttributes for the case that
   // the FailedAccessCheckCallbackFunction doesn't throw an exception.
@@ -9077,53 +8480,6 @@
   return object;
 }
 
-
-MaybeHandle<Object> JSObject::GetAccessor(Handle<JSObject> object,
-                                          Handle<Name> name,
-                                          AccessorComponent component) {
-  Isolate* isolate = object->GetIsolate();
-
-  // Make sure that the top context does not change when doing callbacks or
-  // interceptor calls.
-  AssertNoContextChange ncc(isolate);
-
-  LookupIterator it = LookupIterator::PropertyOrElement(
-      isolate, object, name, LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
-
-  for (; it.IsFound(); it.Next()) {
-    switch (it.state()) {
-      case LookupIterator::INTERCEPTOR:
-      case LookupIterator::NOT_FOUND:
-      case LookupIterator::TRANSITION:
-        UNREACHABLE();
-
-      case LookupIterator::ACCESS_CHECK:
-        if (it.HasAccess()) continue;
-        isolate->ReportFailedAccessCheck(it.GetHolder<JSObject>());
-        RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
-        return isolate->factory()->undefined_value();
-
-      case LookupIterator::JSPROXY:
-        return isolate->factory()->undefined_value();
-
-      case LookupIterator::INTEGER_INDEXED_EXOTIC:
-        return isolate->factory()->undefined_value();
-      case LookupIterator::DATA:
-        continue;
-      case LookupIterator::ACCESSOR: {
-        Handle<Object> maybe_pair = it.GetAccessors();
-        if (maybe_pair->IsAccessorPair()) {
-          return AccessorPair::GetComponent(
-              Handle<AccessorPair>::cast(maybe_pair), component);
-        }
-      }
-    }
-  }
-
-  return isolate->factory()->undefined_value();
-}
-
-
 Object* JSObject::SlowReverseLookup(Object* value) {
   if (HasFastProperties()) {
     int number_of_own_descriptors = map()->NumberOfOwnDescriptors();
@@ -9562,6 +8918,10 @@
                                     TransitionFlag flag) {
   Map* maybe_elements_transition_map = NULL;
   if (flag == INSERT_TRANSITION) {
+    // Ensure we are requested to add elements kind transition "near the root".
+    DCHECK_EQ(map->FindRootMap()->NumberOfOwnDescriptors(),
+              map->NumberOfOwnDescriptors());
+
     maybe_elements_transition_map = map->ElementsTransitionMap();
     DCHECK(maybe_elements_transition_map == NULL ||
            (maybe_elements_transition_map->elements_kind() ==
@@ -9641,30 +9001,6 @@
 }
 
 
-Handle<Map> Map::CopyForObserved(Handle<Map> map) {
-  DCHECK(!map->is_observed());
-
-  Isolate* isolate = map->GetIsolate();
-
-  bool insert_transition =
-      TransitionArray::CanHaveMoreTransitions(map) && !map->is_prototype_map();
-
-  if (insert_transition) {
-    Handle<Map> new_map = CopyForTransition(map, "CopyForObserved");
-    new_map->set_is_observed();
-
-    Handle<Name> name = isolate->factory()->observed_symbol();
-    ConnectTransition(map, new_map, name, SPECIAL_TRANSITION);
-    return new_map;
-  }
-
-  // Create a new free-floating map only if we are not allowed to store it.
-  Handle<Map> new_map = Map::Copy(map, "CopyForObserved");
-  new_map->set_is_observed();
-  return new_map;
-}
-
-
 Handle<Map> Map::CopyForTransition(Handle<Map> map, const char* reason) {
   DCHECK(!map->is_prototype_map());
   Handle<Map> new_map = CopyDropDescriptors(map);
@@ -9825,6 +9161,11 @@
                                           Handle<Object> value,
                                           PropertyAttributes attributes,
                                           StoreFromKeyed store_mode) {
+  RuntimeCallTimerScope stats_scope(
+      *map, map->is_prototype_map()
+                ? &RuntimeCallStats::PrototypeMap_TransitionToDataProperty
+                : &RuntimeCallStats::Map_TransitionToDataProperty);
+
   DCHECK(name->IsUniqueName());
   DCHECK(!map->is_dictionary_map());
 
@@ -9885,7 +9226,7 @@
     // There is no benefit from reconstructing transition tree for maps without
     // back pointers.
     return CopyGeneralizeAllRepresentations(
-        map, descriptor, FORCE_FIELD, kind, attributes,
+        map, map->elements_kind(), descriptor, FORCE_FIELD, kind, attributes,
         "GenAll_AttributesMismatchProtoMap");
   }
 
@@ -9900,13 +9241,20 @@
   return new_map;
 }
 
-Handle<Map> Map::TransitionToAccessorProperty(Handle<Map> map,
+Handle<Map> Map::TransitionToAccessorProperty(Isolate* isolate, Handle<Map> map,
                                               Handle<Name> name, int descriptor,
-                                              AccessorComponent component,
-                                              Handle<Object> accessor,
+                                              Handle<Object> getter,
+                                              Handle<Object> setter,
                                               PropertyAttributes attributes) {
+  RuntimeCallTimerScope stats_scope(
+      isolate,
+      map->is_prototype_map()
+          ? &RuntimeCallStats::PrototypeMap_TransitionToAccessorProperty
+          : &RuntimeCallStats::Map_TransitionToAccessorProperty);
+
+  // At least one of the accessors needs to be a new value.
+  DCHECK(!getter->IsNull() || !setter->IsNull());
   DCHECK(name->IsUniqueName());
-  Isolate* isolate = name->GetIsolate();
 
   // Dictionary maps can always have additional data properties.
   if (map->is_dictionary_map()) return map;
@@ -9935,7 +9283,7 @@
     }
 
     Handle<AccessorPair> pair = Handle<AccessorPair>::cast(maybe_pair);
-    if (pair->get(component) != *accessor) {
+    if (!pair->Equals(*getter, *setter)) {
       return Map::Normalize(map, mode, "TransitionToDifferentAccessor");
     }
 
@@ -9962,10 +9310,19 @@
       return Map::Normalize(map, mode, "AccessorsOverwritingNonPair");
     }
 
-    Object* current = Handle<AccessorPair>::cast(maybe_pair)->get(component);
-    if (current == *accessor) return map;
+    Handle<AccessorPair> current_pair = Handle<AccessorPair>::cast(maybe_pair);
+    if (current_pair->Equals(*getter, *setter)) return map;
 
-    if (!current->IsTheHole()) {
+    bool overwriting_accessor = false;
+    if (!getter->IsNull() && !current_pair->get(ACCESSOR_GETTER)->IsNull() &&
+        current_pair->get(ACCESSOR_GETTER) != *getter) {
+      overwriting_accessor = true;
+    }
+    if (!setter->IsNull() && !current_pair->get(ACCESSOR_SETTER)->IsNull() &&
+        current_pair->get(ACCESSOR_SETTER) != *setter) {
+      overwriting_accessor = true;
+    }
+    if (overwriting_accessor) {
       return Map::Normalize(map, mode, "AccessorsOverwritingAccessors");
     }
 
@@ -9977,7 +9334,8 @@
     pair = isolate->factory()->NewAccessorPair();
   }
 
-  pair->set(component, *accessor);
+  pair->SetComponents(*getter, *setter);
+
   TransitionFlag flag = INSERT_TRANSITION;
   AccessorConstantDescriptor new_desc(name, pair, attributes);
   return Map::CopyInsertDescriptor(map, &new_desc, flag);
@@ -10128,215 +9486,22 @@
   Isolate* isolate = map->GetIsolate();
   HandleScope scope(isolate);
   // Allocate the code cache if not present.
-  if (map->code_cache()->IsFixedArray()) {
-    Handle<Object> result = isolate->factory()->NewCodeCache();
+  if (!map->has_code_cache()) {
+    Handle<Object> result =
+        CodeCacheHashTable::New(isolate, CodeCacheHashTable::kInitialSize);
     map->set_code_cache(*result);
   }
 
   // Update the code cache.
-  Handle<CodeCache> code_cache(CodeCache::cast(map->code_cache()), isolate);
-  CodeCache::Update(code_cache, name, code);
-}
-
-
-Object* Map::FindInCodeCache(Name* name, Code::Flags flags) {
-  // Do a lookup if a code cache exists.
-  if (!code_cache()->IsFixedArray()) {
-    return CodeCache::cast(code_cache())->Lookup(name, flags);
-  } else {
-    return GetHeap()->undefined_value();
-  }
-}
-
-
-int Map::IndexInCodeCache(Object* name, Code* code) {
-  // Get the internal index if a code cache exists.
-  if (!code_cache()->IsFixedArray()) {
-    return CodeCache::cast(code_cache())->GetIndex(name, code);
-  }
-  return -1;
-}
-
-
-void Map::RemoveFromCodeCache(Name* name, Code* code, int index) {
-  // No GC is supposed to happen between a call to IndexInCodeCache and
-  // RemoveFromCodeCache so the code cache must be there.
-  DCHECK(!code_cache()->IsFixedArray());
-  CodeCache::cast(code_cache())->RemoveByIndex(name, code, index);
-}
-
-
-void CodeCache::Update(
-    Handle<CodeCache> code_cache, Handle<Name> name, Handle<Code> code) {
-  // The number of monomorphic stubs for normal load/store/call IC's can grow to
-  // a large number and therefore they need to go into a hash table. They are
-  // used to load global properties from cells.
-  if (code->type() == Code::NORMAL) {
-    // Make sure that a hash table is allocated for the normal load code cache.
-    if (code_cache->normal_type_cache()->IsUndefined()) {
-      Handle<Object> result =
-          CodeCacheHashTable::New(code_cache->GetIsolate(),
-                                  CodeCacheHashTable::kInitialSize);
-      code_cache->set_normal_type_cache(*result);
-    }
-    UpdateNormalTypeCache(code_cache, name, code);
-  } else {
-    DCHECK(code_cache->default_cache()->IsFixedArray());
-    UpdateDefaultCache(code_cache, name, code);
-  }
-}
-
-
-void CodeCache::UpdateDefaultCache(
-    Handle<CodeCache> code_cache, Handle<Name> name, Handle<Code> code) {
-  Isolate* isolate = code_cache->GetIsolate();
-  // When updating the default code cache we disregard the type encoded in the
-  // flags. This allows call constant stubs to overwrite call field
-  // stubs, etc.
-  Code::Flags flags = Code::RemoveTypeFromFlags(code->flags());
-
-  // First check whether we can update existing code cache without
-  // extending it.
-  Handle<FixedArray> cache = handle(code_cache->default_cache());
-  int length = cache->length();
-  {
-    DisallowHeapAllocation no_alloc;
-    int deleted_index = -1;
-    Object* null = isolate->heap()->null_value();
-    Object* undefined = isolate->heap()->undefined_value();
-    DCHECK(name->IsUniqueName());
-    for (int i = 0; i < length; i += kCodeCacheEntrySize) {
-      Object* key = cache->get(i);
-      if (key == null) {
-        if (deleted_index < 0) deleted_index = i;
-        continue;
-      }
-      if (key == undefined) {
-        if (deleted_index >= 0) i = deleted_index;
-        cache->set(i + kCodeCacheEntryNameOffset, *name);
-        cache->set(i + kCodeCacheEntryCodeOffset, *code);
-        return;
-      }
-      DCHECK(key->IsUniqueName());
-      if (*name == key) {
-        Code::Flags found =
-            Code::cast(cache->get(i + kCodeCacheEntryCodeOffset))->flags();
-        if (Code::RemoveTypeFromFlags(found) == flags) {
-          cache->set(i + kCodeCacheEntryCodeOffset, *code);
-          return;
-        }
-      }
-    }
-
-    // Reached the end of the code cache.  If there were deleted
-    // elements, reuse the space for the first of them.
-    if (deleted_index >= 0) {
-      cache->set(deleted_index + kCodeCacheEntryNameOffset, *name);
-      cache->set(deleted_index + kCodeCacheEntryCodeOffset, *code);
-      return;
-    }
-  }
-
-  // Extend the code cache with some new entries (at least one). Must be a
-  // multiple of the entry size.
-  int new_length = length + (length >> 1) + kCodeCacheEntrySize;
-  new_length = new_length - new_length % kCodeCacheEntrySize;
-  DCHECK((new_length % kCodeCacheEntrySize) == 0);
-  cache = isolate->factory()->CopyFixedArrayAndGrow(cache, new_length - length);
-
-  // Add the (name, code) pair to the new cache.
-  cache->set(length + kCodeCacheEntryNameOffset, *name);
-  cache->set(length + kCodeCacheEntryCodeOffset, *code);
-  code_cache->set_default_cache(*cache);
-}
-
-
-void CodeCache::UpdateNormalTypeCache(
-    Handle<CodeCache> code_cache, Handle<Name> name, Handle<Code> code) {
-  // Adding a new entry can cause a new cache to be allocated.
-  Handle<CodeCacheHashTable> cache(
-      CodeCacheHashTable::cast(code_cache->normal_type_cache()));
+  Handle<CodeCacheHashTable> cache(CodeCacheHashTable::cast(map->code_cache()),
+                                   isolate);
   Handle<Object> new_cache = CodeCacheHashTable::Put(cache, name, code);
-  code_cache->set_normal_type_cache(*new_cache);
+  map->set_code_cache(*new_cache);
 }
 
-
-Object* CodeCache::Lookup(Name* name, Code::Flags flags) {
-  Object* result = LookupDefaultCache(name, Code::RemoveTypeFromFlags(flags));
-  if (result->IsCode()) {
-    if (Code::cast(result)->flags() == flags) return result;
-    return GetHeap()->undefined_value();
-  }
-  return LookupNormalTypeCache(name, flags);
-}
-
-
-Object* CodeCache::LookupDefaultCache(Name* name, Code::Flags flags) {
-  FixedArray* cache = default_cache();
-  Heap* heap = GetHeap();
-  Object* null = heap->null_value();
-  Object* undefined = heap->undefined_value();
-  int length = cache->length();
-  DCHECK(name->IsUniqueName());
-  for (int i = 0; i < length; i += kCodeCacheEntrySize) {
-    Object* key = cache->get(i + kCodeCacheEntryNameOffset);
-    // Skip deleted elements.
-    if (key == null) continue;
-    if (key == undefined) return key;
-    DCHECK(key->IsUniqueName());
-    if (name == key) {
-      Code* code = Code::cast(cache->get(i + kCodeCacheEntryCodeOffset));
-      if (Code::RemoveTypeFromFlags(code->flags()) == flags) {
-        return code;
-      }
-    }
-  }
-  return GetHeap()->undefined_value();
-}
-
-
-Object* CodeCache::LookupNormalTypeCache(Name* name, Code::Flags flags) {
-  if (!normal_type_cache()->IsUndefined()) {
-    CodeCacheHashTable* cache = CodeCacheHashTable::cast(normal_type_cache());
-    return cache->Lookup(name, flags);
-  } else {
-    return GetHeap()->undefined_value();
-  }
-}
-
-
-int CodeCache::GetIndex(Object* name, Code* code) {
-  if (code->type() == Code::NORMAL) {
-    if (normal_type_cache()->IsUndefined()) return -1;
-    CodeCacheHashTable* cache = CodeCacheHashTable::cast(normal_type_cache());
-    return cache->GetIndex(Name::cast(name), code->flags());
-  }
-
-  FixedArray* array = default_cache();
-  int len = array->length();
-  for (int i = 0; i < len; i += kCodeCacheEntrySize) {
-    if (array->get(i + kCodeCacheEntryCodeOffset) == code) return i + 1;
-  }
-  return -1;
-}
-
-
-void CodeCache::RemoveByIndex(Object* name, Code* code, int index) {
-  if (code->type() == Code::NORMAL) {
-    DCHECK(!normal_type_cache()->IsUndefined());
-    CodeCacheHashTable* cache = CodeCacheHashTable::cast(normal_type_cache());
-    DCHECK(cache->GetIndex(Name::cast(name), code->flags()) == index);
-    cache->RemoveByIndex(index);
-  } else {
-    FixedArray* array = default_cache();
-    DCHECK(array->length() >= index && array->get(index)->IsCode());
-    // Use null instead of undefined for deleted elements to distinguish
-    // deleted elements from unused elements.  This distinction is used
-    // when looking up in the cache and when updating the cache.
-    DCHECK_EQ(1, kCodeCacheEntryCodeOffset - kCodeCacheEntryNameOffset);
-    array->set_null(index - 1);  // Name.
-    array->set_null(index);  // Code.
-  }
+Code* Map::LookupInCodeCache(Name* name, Code::Flags flags) {
+  if (!has_code_cache()) return nullptr;
+  return CodeCacheHashTable::cast(code_cache())->Lookup(name, flags);
 }
 
 
@@ -10347,20 +9512,23 @@
 class CodeCacheHashTableKey : public HashTableKey {
  public:
   CodeCacheHashTableKey(Handle<Name> name, Code::Flags flags)
-      : name_(name), flags_(flags), code_() { }
+      : name_(name), flags_(flags), code_() {
+    DCHECK(name_->IsUniqueName());
+  }
 
   CodeCacheHashTableKey(Handle<Name> name, Handle<Code> code)
-      : name_(name), flags_(code->flags()), code_(code) { }
+      : name_(name), flags_(code->flags()), code_(code) {
+    DCHECK(name_->IsUniqueName());
+  }
 
   bool IsMatch(Object* other) override {
-    if (!other->IsFixedArray()) return false;
+    DCHECK(other->IsFixedArray());
     FixedArray* pair = FixedArray::cast(other);
     Name* name = Name::cast(pair->get(0));
     Code::Flags flags = Code::cast(pair->get(1))->flags();
-    if (flags != flags_) {
-      return false;
-    }
-    return name_->Equals(name);
+    if (flags != flags_) return false;
+    DCHECK(name->IsUniqueName());
+    return *name_ == name;
   }
 
   static uint32_t NameFlagsHashHelper(Name* name, Code::Flags flags) {
@@ -10392,15 +9560,6 @@
 };
 
 
-Object* CodeCacheHashTable::Lookup(Name* name, Code::Flags flags) {
-  DisallowHeapAllocation no_alloc;
-  CodeCacheHashTableKey key(handle(name), flags);
-  int entry = FindEntry(&key);
-  if (entry == kNotFound) return GetHeap()->undefined_value();
-  return get(EntryToIndex(entry) + 1);
-}
-
-
 Handle<CodeCacheHashTable> CodeCacheHashTable::Put(
     Handle<CodeCacheHashTable> cache, Handle<Name> name, Handle<Code> code) {
   CodeCacheHashTableKey key(name, code);
@@ -10411,179 +9570,18 @@
   Handle<Object> k = key.AsHandle(cache->GetIsolate());
 
   new_cache->set(EntryToIndex(entry), *k);
-  new_cache->set(EntryToIndex(entry) + 1, *code);
   new_cache->ElementAdded();
   return new_cache;
 }
 
-
-int CodeCacheHashTable::GetIndex(Name* name, Code::Flags flags) {
+Code* CodeCacheHashTable::Lookup(Name* name, Code::Flags flags) {
   DisallowHeapAllocation no_alloc;
   CodeCacheHashTableKey key(handle(name), flags);
   int entry = FindEntry(&key);
-  return (entry == kNotFound) ? -1 : entry;
+  if (entry == kNotFound) return nullptr;
+  return Code::cast(FixedArray::cast(get(EntryToIndex(entry)))->get(1));
 }
 
-
-void CodeCacheHashTable::RemoveByIndex(int index) {
-  DCHECK(index >= 0);
-  Heap* heap = GetHeap();
-  set(EntryToIndex(index), heap->the_hole_value());
-  set(EntryToIndex(index) + 1, heap->the_hole_value());
-  ElementRemoved();
-}
-
-
-void PolymorphicCodeCache::Update(Handle<PolymorphicCodeCache> code_cache,
-                                  MapHandleList* maps,
-                                  Code::Flags flags,
-                                  Handle<Code> code) {
-  Isolate* isolate = code_cache->GetIsolate();
-  if (code_cache->cache()->IsUndefined()) {
-    Handle<PolymorphicCodeCacheHashTable> result =
-        PolymorphicCodeCacheHashTable::New(
-            isolate,
-            PolymorphicCodeCacheHashTable::kInitialSize);
-    code_cache->set_cache(*result);
-  } else {
-    // This entry shouldn't be contained in the cache yet.
-    DCHECK(PolymorphicCodeCacheHashTable::cast(code_cache->cache())
-               ->Lookup(maps, flags)->IsUndefined());
-  }
-  Handle<PolymorphicCodeCacheHashTable> hash_table =
-      handle(PolymorphicCodeCacheHashTable::cast(code_cache->cache()));
-  Handle<PolymorphicCodeCacheHashTable> new_cache =
-      PolymorphicCodeCacheHashTable::Put(hash_table, maps, flags, code);
-  code_cache->set_cache(*new_cache);
-}
-
-
-Handle<Object> PolymorphicCodeCache::Lookup(MapHandleList* maps,
-                                            Code::Flags flags) {
-  if (!cache()->IsUndefined()) {
-    PolymorphicCodeCacheHashTable* hash_table =
-        PolymorphicCodeCacheHashTable::cast(cache());
-    return Handle<Object>(hash_table->Lookup(maps, flags), GetIsolate());
-  } else {
-    return GetIsolate()->factory()->undefined_value();
-  }
-}
-
-
-// Despite their name, object of this class are not stored in the actual
-// hash table; instead they're temporarily used for lookups. It is therefore
-// safe to have a weak (non-owning) pointer to a MapList as a member field.
-class PolymorphicCodeCacheHashTableKey : public HashTableKey {
- public:
-  // Callers must ensure that |maps| outlives the newly constructed object.
-  PolymorphicCodeCacheHashTableKey(MapHandleList* maps, int code_flags)
-      : maps_(maps),
-        code_flags_(code_flags) {}
-
-  bool IsMatch(Object* other) override {
-    MapHandleList other_maps(kDefaultListAllocationSize);
-    int other_flags;
-    FromObject(other, &other_flags, &other_maps);
-    if (code_flags_ != other_flags) return false;
-    if (maps_->length() != other_maps.length()) return false;
-    // Compare just the hashes first because it's faster.
-    int this_hash = MapsHashHelper(maps_, code_flags_);
-    int other_hash = MapsHashHelper(&other_maps, other_flags);
-    if (this_hash != other_hash) return false;
-
-    // Full comparison: for each map in maps_, look for an equivalent map in
-    // other_maps. This implementation is slow, but probably good enough for
-    // now because the lists are short (<= 4 elements currently).
-    for (int i = 0; i < maps_->length(); ++i) {
-      bool match_found = false;
-      for (int j = 0; j < other_maps.length(); ++j) {
-        if (*(maps_->at(i)) == *(other_maps.at(j))) {
-          match_found = true;
-          break;
-        }
-      }
-      if (!match_found) return false;
-    }
-    return true;
-  }
-
-  static uint32_t MapsHashHelper(MapHandleList* maps, int code_flags) {
-    uint32_t hash = code_flags;
-    for (int i = 0; i < maps->length(); ++i) {
-      hash ^= maps->at(i)->Hash();
-    }
-    return hash;
-  }
-
-  uint32_t Hash() override { return MapsHashHelper(maps_, code_flags_); }
-
-  uint32_t HashForObject(Object* obj) override {
-    MapHandleList other_maps(kDefaultListAllocationSize);
-    int other_flags;
-    FromObject(obj, &other_flags, &other_maps);
-    return MapsHashHelper(&other_maps, other_flags);
-  }
-
-  MUST_USE_RESULT Handle<Object> AsHandle(Isolate* isolate) override {
-    // The maps in |maps_| must be copied to a newly allocated FixedArray,
-    // both because the referenced MapList is short-lived, and because C++
-    // objects can't be stored in the heap anyway.
-    Handle<FixedArray> list =
-        isolate->factory()->NewUninitializedFixedArray(maps_->length() + 1);
-    list->set(0, Smi::FromInt(code_flags_));
-    for (int i = 0; i < maps_->length(); ++i) {
-      list->set(i + 1, *maps_->at(i));
-    }
-    return list;
-  }
-
- private:
-  static MapHandleList* FromObject(Object* obj,
-                                   int* code_flags,
-                                   MapHandleList* maps) {
-    FixedArray* list = FixedArray::cast(obj);
-    maps->Rewind(0);
-    *code_flags = Smi::cast(list->get(0))->value();
-    for (int i = 1; i < list->length(); ++i) {
-      maps->Add(Handle<Map>(Map::cast(list->get(i))));
-    }
-    return maps;
-  }
-
-  MapHandleList* maps_;  // weak.
-  int code_flags_;
-  static const int kDefaultListAllocationSize = kMaxKeyedPolymorphism + 1;
-};
-
-
-Object* PolymorphicCodeCacheHashTable::Lookup(MapHandleList* maps,
-                                              int code_kind) {
-  DisallowHeapAllocation no_alloc;
-  PolymorphicCodeCacheHashTableKey key(maps, code_kind);
-  int entry = FindEntry(&key);
-  if (entry == kNotFound) return GetHeap()->undefined_value();
-  return get(EntryToIndex(entry) + 1);
-}
-
-
-Handle<PolymorphicCodeCacheHashTable> PolymorphicCodeCacheHashTable::Put(
-      Handle<PolymorphicCodeCacheHashTable> hash_table,
-      MapHandleList* maps,
-      int code_kind,
-      Handle<Code> code) {
-  PolymorphicCodeCacheHashTableKey key(maps, code_kind);
-  Handle<PolymorphicCodeCacheHashTable> cache =
-      EnsureCapacity(hash_table, 1, &key);
-  int entry = cache->FindInsertionEntry(key.Hash());
-
-  Handle<Object> obj = key.AsHandle(hash_table->GetIsolate());
-  cache->set(EntryToIndex(entry), *obj);
-  cache->set(EntryToIndex(entry) + 1, *code);
-  cache->ElementAdded();
-  return cache;
-}
-
-
 void FixedArray::Shrink(int new_length) {
   DCHECK(0 <= new_length && new_length <= length());
   if (new_length < length()) {
@@ -10939,7 +9937,7 @@
         .ToHandleChecked();
   }
   Isolate* isolate = accessor_pair->GetIsolate();
-  if (accessor->IsTheHole()) {
+  if (accessor->IsNull()) {
     return isolate->factory()->undefined_value();
   }
   return handle(accessor, isolate);
@@ -11268,25 +10266,6 @@
 }
 
 
-base::SmartArrayPointer<uc16> String::ToWideCString(
-    RobustnessFlag robust_flag) {
-  if (robust_flag == ROBUST_STRING_TRAVERSAL && !LooksValid()) {
-    return base::SmartArrayPointer<uc16>();
-  }
-  StringCharacterStream stream(this);
-
-  uc16* result = NewArray<uc16>(length() + 1);
-
-  int i = 0;
-  while (stream.HasMore()) {
-    uint16_t character = stream.GetNext();
-    result[i++] = character;
-  }
-  result[i] = 0;
-  return base::SmartArrayPointer<uc16>(result);
-}
-
-
 const uc16* SeqTwoByteString::SeqTwoByteStringGetData(unsigned start) {
   return reinterpret_cast<uc16*>(
       reinterpret_cast<char*>(this) - kHeapObjectTag + kHeaderSize) + start;
@@ -12332,15 +11311,18 @@
   return false;
 }
 
+void JSFunction::MarkForBaseline() {
+  Isolate* isolate = GetIsolate();
+  set_code_no_write_barrier(
+      isolate->builtins()->builtin(Builtins::kCompileBaseline));
+  // No write barrier required, since the builtin is part of the root set.
+}
 
 void JSFunction::MarkForOptimization() {
   Isolate* isolate = GetIsolate();
-  // Do not optimize if function contains break points.
-  if (shared()->HasDebugInfo()) return;
   DCHECK(!IsOptimized());
   DCHECK(shared()->allows_lazy_compilation() ||
          !shared()->optimization_disabled());
-  DCHECK(!shared()->HasDebugInfo());
   set_code_no_write_barrier(
       isolate->builtins()->builtin(Builtins::kCompileOptimized));
   // No write barrier required, since the builtin is part of the root set.
@@ -12839,6 +11821,8 @@
 // static
 void Map::SetPrototype(Handle<Map> map, Handle<Object> prototype,
                        PrototypeOptimizationMode proto_mode) {
+  RuntimeCallTimerScope stats_scope(*map, &RuntimeCallStats::Map_SetPrototype);
+
   bool is_hidden = false;
   if (prototype->IsJSObject()) {
     Handle<JSObject> prototype_jsobj = Handle<JSObject>::cast(prototype);
@@ -12964,8 +11948,13 @@
     new_map->SetConstructor(*value);
     new_map->set_non_instance_prototype(true);
     Isolate* isolate = new_map->GetIsolate();
+
     construct_prototype = handle(
-        function->context()->native_context()->initial_object_prototype(),
+        IsGeneratorFunction(function->shared()->kind())
+            ? function->context()
+                  ->native_context()
+                  ->initial_generator_prototype()
+            : function->context()->native_context()->initial_object_prototype(),
         isolate);
   } else {
     function->map()->set_non_instance_prototype(false);
@@ -13020,50 +12009,52 @@
 
 bool CanSubclassHaveInobjectProperties(InstanceType instance_type) {
   switch (instance_type) {
-    case JS_OBJECT_TYPE:
-    case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
-    case JS_GENERATOR_OBJECT_TYPE:
-    case JS_MODULE_TYPE:
-    case JS_VALUE_TYPE:
-    case JS_DATE_TYPE:
-    case JS_ARRAY_TYPE:
-    case JS_MESSAGE_OBJECT_TYPE:
+    case JS_API_OBJECT_TYPE:
     case JS_ARRAY_BUFFER_TYPE:
-    case JS_TYPED_ARRAY_TYPE:
+    case JS_ARRAY_TYPE:
+    case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
     case JS_DATA_VIEW_TYPE:
-    case JS_SET_TYPE:
-    case JS_MAP_TYPE:
-    case JS_SET_ITERATOR_TYPE:
+    case JS_DATE_TYPE:
+    case JS_FUNCTION_TYPE:
+    case JS_GENERATOR_OBJECT_TYPE:
     case JS_MAP_ITERATOR_TYPE:
-    case JS_WEAK_MAP_TYPE:
-    case JS_WEAK_SET_TYPE:
+    case JS_MAP_TYPE:
+    case JS_MESSAGE_OBJECT_TYPE:
+    case JS_MODULE_TYPE:
+    case JS_OBJECT_TYPE:
     case JS_PROMISE_TYPE:
     case JS_REGEXP_TYPE:
-    case JS_FUNCTION_TYPE:
+    case JS_SET_ITERATOR_TYPE:
+    case JS_SET_TYPE:
+    case JS_SPECIAL_API_OBJECT_TYPE:
+    case JS_TYPED_ARRAY_TYPE:
+    case JS_VALUE_TYPE:
+    case JS_WEAK_MAP_TYPE:
+    case JS_WEAK_SET_TYPE:
       return true;
 
-    case JS_BOUND_FUNCTION_TYPE:
-    case JS_PROXY_TYPE:
-    case JS_GLOBAL_PROXY_TYPE:
-    case JS_GLOBAL_OBJECT_TYPE:
+    case BYTECODE_ARRAY_TYPE:
+    case BYTE_ARRAY_TYPE:
+    case CELL_TYPE:
+    case CODE_TYPE:
+    case FILLER_TYPE:
     case FIXED_ARRAY_TYPE:
     case FIXED_DOUBLE_ARRAY_TYPE:
-    case ODDBALL_TYPE:
     case FOREIGN_TYPE:
-    case MAP_TYPE:
-    case CODE_TYPE:
-    case CELL_TYPE:
-    case PROPERTY_CELL_TYPE:
-    case WEAK_CELL_TYPE:
-    case SYMBOL_TYPE:
-    case BYTECODE_ARRAY_TYPE:
-    case HEAP_NUMBER_TYPE:
-    case MUTABLE_HEAP_NUMBER_TYPE:
-    case SIMD128_VALUE_TYPE:
-    case FILLER_TYPE:
-    case BYTE_ARRAY_TYPE:
     case FREE_SPACE_TYPE:
+    case HEAP_NUMBER_TYPE:
+    case JS_BOUND_FUNCTION_TYPE:
+    case JS_GLOBAL_OBJECT_TYPE:
+    case JS_GLOBAL_PROXY_TYPE:
+    case JS_PROXY_TYPE:
+    case MAP_TYPE:
+    case MUTABLE_HEAP_NUMBER_TYPE:
+    case ODDBALL_TYPE:
+    case PROPERTY_CELL_TYPE:
     case SHARED_FUNCTION_INFO_TYPE:
+    case SIMD128_VALUE_TYPE:
+    case SYMBOL_TYPE:
+    case WEAK_CELL_TYPE:
 
 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
   case FIXED_##TYPE##_ARRAY_TYPE:
@@ -13085,7 +12076,7 @@
 
 
 void JSFunction::EnsureHasInitialMap(Handle<JSFunction> function) {
-  DCHECK(function->IsConstructor() || function->shared()->is_generator());
+  DCHECK(function->IsConstructor() || function->shared()->is_resumable());
   if (function->has_initial_map()) return;
   Isolate* isolate = function->GetIsolate();
 
@@ -13096,7 +12087,7 @@
   // First create a new map with the size and number of in-object properties
   // suggested by the function.
   InstanceType instance_type;
-  if (function->shared()->is_generator()) {
+  if (function->shared()->is_resumable()) {
     instance_type = JS_GENERATOR_OBJECT_TYPE;
   } else {
     instance_type = JS_OBJECT_TYPE;
@@ -13296,18 +12287,6 @@
   return isolate->factory()->NewStringFromAsciiChecked(kNativeCodeSource);
 }
 
-// static
-MaybeHandle<String> JSBoundFunction::GetName(Isolate* isolate,
-                                             Handle<JSBoundFunction> function) {
-  Handle<String> prefix = isolate->factory()->bound__string();
-  if (!function->bound_target_function()->IsJSFunction()) return prefix;
-  Handle<JSFunction> target(JSFunction::cast(function->bound_target_function()),
-                            isolate);
-  Handle<Object> target_name = JSFunction::GetName(target);
-  if (!target_name->IsString()) return prefix;
-  Factory* factory = isolate->factory();
-  return factory->NewConsString(prefix, Handle<String>::cast(target_name));
-}
 
 // static
 Handle<String> JSFunction::ToString(Handle<JSFunction> function) {
@@ -13341,10 +12320,16 @@
   IncrementalStringBuilder builder(isolate);
   if (!shared_info->is_arrow()) {
     if (shared_info->is_concise_method()) {
-      if (shared_info->is_generator()) builder.AppendCharacter('*');
+      if (shared_info->is_generator()) {
+        builder.AppendCharacter('*');
+      } else if (shared_info->is_async()) {
+        builder.AppendCString("async ");
+      }
     } else {
       if (shared_info->is_generator()) {
         builder.AppendCString("function* ");
+      } else if (shared_info->is_async()) {
+        builder.AppendCString("async function ");
       } else {
         builder.AppendCString("function ");
       }
@@ -13366,6 +12351,7 @@
       isolate->factory()->InternalizeUtf8String(to_string);
   Handle<String> internalized_type_of =
       isolate->factory()->InternalizeUtf8String(type_of);
+  oddball->set_to_number_raw(to_number->Number());
   oddball->set_to_boolean(isolate->heap()->ToBoolean(to_boolean));
   oddball->set_to_number(*to_number);
   oddball->set_to_string(*internalized_to_string);
@@ -13373,6 +12359,45 @@
   oddball->set_kind(kind);
 }
 
+void Script::SetEvalOrigin(Handle<Script> script,
+                           Handle<SharedFunctionInfo> outer_info,
+                           int eval_position) {
+  if (eval_position == RelocInfo::kNoPosition) {
+    // If the position is missing, attempt to get the code offset from the
+    // current activation.  Do not translate the code offset into source
+    // position, but store it as negative value for lazy translation.
+    StackTraceFrameIterator it(script->GetIsolate());
+    if (!it.done() && it.is_javascript()) {
+      FrameSummary summary = FrameSummary::GetFirst(it.javascript_frame());
+      script->set_eval_from_shared(summary.function()->shared());
+      script->set_eval_from_position(-summary.code_offset());
+      return;
+    }
+    eval_position = 0;
+  }
+  script->set_eval_from_shared(*outer_info);
+  script->set_eval_from_position(eval_position);
+}
+
+int Script::GetEvalPosition() {
+  DisallowHeapAllocation no_gc;
+  DCHECK(compilation_type() == Script::COMPILATION_TYPE_EVAL);
+  int position = eval_from_position();
+  if (position < 0) {
+    // Due to laziness, the position may not have been translated from code
+    // offset yet, which would be encoded as negative integer. In that case,
+    // translate and set the position.
+    if (eval_from_shared()->IsUndefined()) {
+      position = 0;
+    } else {
+      SharedFunctionInfo* shared = SharedFunctionInfo::cast(eval_from_shared());
+      position = shared->abstract_code()->SourcePosition(-position);
+    }
+    DCHECK(position >= 0);
+    set_eval_from_position(position);
+  }
+  return position;
+}
 
 void Script::InitLineEnds(Handle<Script> script) {
   if (!script->line_ends()->IsUndefined()) return;
@@ -13515,7 +12540,8 @@
   SharedFunctionInfo* shared;
   while ((shared = iterator.Next<SharedFunctionInfo>())) {
     if (fun->function_token_position() == shared->function_token_position() &&
-        fun->start_position() == shared->start_position()) {
+        fun->start_position() == shared->start_position() &&
+        fun->end_position() == shared->end_position()) {
       return Handle<SharedFunctionInfo>(shared);
     }
   }
@@ -13813,6 +12839,32 @@
   }
 }
 
+namespace {
+
+// Sets the expected number of properties based on estimate from parser.
+void SetExpectedNofPropertiesFromEstimate(Handle<SharedFunctionInfo> shared,
+                                          FunctionLiteral* literal) {
+  int estimate = literal->expected_property_count();
+
+  // If no properties are added in the constructor, they are more likely
+  // to be added later.
+  if (estimate == 0) estimate = 2;
+
+  // TODO(yangguo): check whether those heuristics are still up-to-date.
+  // We do not shrink objects that go into a snapshot (yet), so we adjust
+  // the estimate conservatively.
+  if (shared->GetIsolate()->serializer_enabled()) {
+    estimate += 2;
+  } else {
+    // Inobject slack tracking will reclaim redundant inobject space later,
+    // so we can afford to adjust the estimate generously.
+    estimate += 8;
+  }
+
+  shared->set_expected_nof_properties(estimate);
+}
+
+}  // namespace
 
 void SharedFunctionInfo::InitFromFunctionLiteral(
     Handle<SharedFunctionInfo> shared_info, FunctionLiteral* lit) {
@@ -13838,6 +12890,7 @@
   }
   shared_info->set_dont_crankshaft(lit->flags() &
                                    AstProperties::kDontCrankshaft);
+  shared_info->set_never_compiled(true);
   shared_info->set_kind(lit->kind());
   if (!IsConstructable(lit->kind(), lit->language_mode())) {
     shared_info->set_construct_stub(
@@ -13845,6 +12898,7 @@
   }
   shared_info->set_needs_home_object(lit->scope()->NeedsHomeObject());
   shared_info->set_asm_function(lit->scope()->asm_function());
+  SetExpectedNofPropertiesFromEstimate(shared_info, lit);
 }
 
 
@@ -13880,8 +12934,15 @@
   set_ic_age(new_ic_age);
   if (code()->kind() == Code::FUNCTION) {
     code()->set_profiler_ticks(0);
-    if (optimization_disabled() &&
-        opt_count() >= FLAG_max_opt_count) {
+    if (optimization_disabled() && opt_count() >= FLAG_max_opt_count) {
+      // Re-enable optimizations if they were disabled due to opt_count limit.
+      set_optimization_disabled(false);
+    }
+    set_opt_count(0);
+    set_deopt_count(0);
+  } else if (code()->is_interpreter_entry_trampoline()) {
+    set_profiler_ticks(0);
+    if (optimization_disabled() && opt_count() >= FLAG_max_opt_count) {
       // Re-enable optimizations if they were disabled due to opt_count limit.
       set_optimization_disabled(false);
     }
@@ -13941,12 +13002,6 @@
                     : LiteralsArray::cast(literals_cell->value())};
     }
   }
-  if (FLAG_trace_opt && !OptimizedCodeMapIsCleared() &&
-      result.code == nullptr) {
-    PrintF("[didn't find optimized code in optimized code map for ");
-    ShortPrint();
-    PrintF("]\n");
-  }
   return result;
 }
 
@@ -14230,126 +13285,14 @@
 }
 
 
-void Code::FindAllMaps(MapHandleList* maps) {
-  DCHECK(is_inline_cache_stub());
-  DisallowHeapAllocation no_allocation;
-  int mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
-  for (RelocIterator it(this, mask); !it.done(); it.next()) {
-    RelocInfo* info = it.rinfo();
-    Object* object = info->target_object();
-    if (object->IsWeakCell()) object = WeakCell::cast(object)->value();
-    if (object->IsMap()) maps->Add(handle(Map::cast(object)));
-  }
-}
-
-
-Code* Code::FindFirstHandler() {
-  DCHECK(is_inline_cache_stub());
-  DisallowHeapAllocation no_allocation;
-  int mask = RelocInfo::ModeMask(RelocInfo::CODE_TARGET) |
-             RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
-  bool skip_next_handler = false;
-  for (RelocIterator it(this, mask); !it.done(); it.next()) {
-    RelocInfo* info = it.rinfo();
-    if (info->rmode() == RelocInfo::EMBEDDED_OBJECT) {
-      Object* obj = info->target_object();
-      skip_next_handler |= obj->IsWeakCell() && WeakCell::cast(obj)->cleared();
-    } else {
-      Code* code = Code::GetCodeFromTargetAddress(info->target_address());
-      if (code->kind() == Code::HANDLER) {
-        if (!skip_next_handler) return code;
-        skip_next_handler = false;
-      }
-    }
-  }
-  return NULL;
-}
-
-
-bool Code::FindHandlers(CodeHandleList* code_list, int length) {
-  DCHECK(is_inline_cache_stub());
-  DisallowHeapAllocation no_allocation;
-  int mask = RelocInfo::ModeMask(RelocInfo::CODE_TARGET) |
-             RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
-  bool skip_next_handler = false;
-  int i = 0;
-  for (RelocIterator it(this, mask); !it.done(); it.next()) {
-    if (i == length) return true;
-    RelocInfo* info = it.rinfo();
-    if (info->rmode() == RelocInfo::EMBEDDED_OBJECT) {
-      Object* obj = info->target_object();
-      skip_next_handler |= obj->IsWeakCell() && WeakCell::cast(obj)->cleared();
-    } else {
-      Code* code = Code::GetCodeFromTargetAddress(info->target_address());
-      // IC stubs with handlers never contain non-handler code objects before
-      // handler targets.
-      if (code->kind() != Code::HANDLER) break;
-      if (!skip_next_handler) {
-        code_list->Add(Handle<Code>(code));
-        i++;
-      }
-      skip_next_handler = false;
-    }
-  }
-  return i == length;
-}
-
-
-MaybeHandle<Code> Code::FindHandlerForMap(Map* map) {
-  DCHECK(is_inline_cache_stub());
-  int mask = RelocInfo::ModeMask(RelocInfo::CODE_TARGET) |
-             RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
-  bool return_next = false;
-  for (RelocIterator it(this, mask); !it.done(); it.next()) {
-    RelocInfo* info = it.rinfo();
-    if (info->rmode() == RelocInfo::EMBEDDED_OBJECT) {
-      Object* object = info->target_object();
-      if (object->IsWeakCell()) object = WeakCell::cast(object)->value();
-      if (object == map) return_next = true;
-    } else if (return_next) {
-      Code* code = Code::GetCodeFromTargetAddress(info->target_address());
-      DCHECK(code->kind() == Code::HANDLER);
-      return handle(code);
-    }
-  }
-  return MaybeHandle<Code>();
-}
-
-
-Name* Code::FindFirstName() {
-  DCHECK(is_inline_cache_stub());
-  DisallowHeapAllocation no_allocation;
-  int mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT);
-  for (RelocIterator it(this, mask); !it.done(); it.next()) {
-    RelocInfo* info = it.rinfo();
-    Object* object = info->target_object();
-    if (object->IsName()) return Name::cast(object);
-  }
-  return NULL;
-}
-
-
 void Code::ClearInlineCaches() {
-  ClearInlineCaches(NULL);
-}
-
-
-void Code::ClearInlineCaches(Code::Kind kind) {
-  ClearInlineCaches(&kind);
-}
-
-
-void Code::ClearInlineCaches(Code::Kind* kind) {
   int mask = RelocInfo::ModeMask(RelocInfo::CODE_TARGET) |
              RelocInfo::ModeMask(RelocInfo::CODE_TARGET_WITH_ID);
   for (RelocIterator it(this, mask); !it.done(); it.next()) {
     RelocInfo* info = it.rinfo();
     Code* target(Code::GetCodeFromTargetAddress(info->target_address()));
     if (target->is_inline_cache_stub()) {
-      if (kind == NULL || *kind == target->kind()) {
-        IC::Clear(this->GetIsolate(), info->pc(),
-                  info->host()->constant_pool());
-      }
+      IC::Clear(this->GetIsolate(), info->pc(), info->host()->constant_pool());
     }
   }
 }
@@ -14841,8 +13784,9 @@
     int pc_and_state = this->PcAndState(i)->value();
     os << std::setw(6) << this->AstId(i).ToInt() << "  " << std::setw(8)
        << FullCodeGenerator::PcField::decode(pc_and_state) << "  "
-       << FullCodeGenerator::State2String(
-              FullCodeGenerator::StateField::decode(pc_and_state)) << "\n";
+       << Deoptimizer::BailoutStateToString(
+              FullCodeGenerator::BailoutStateField::decode(pc_and_state))
+       << "\n";
   }
 }
 
@@ -14881,8 +13825,8 @@
     case UNINITIALIZED: return "UNINITIALIZED";
     case PREMONOMORPHIC: return "PREMONOMORPHIC";
     case MONOMORPHIC: return "MONOMORPHIC";
-    case PROTOTYPE_FAILURE:
-      return "PROTOTYPE_FAILURE";
+    case RECOMPUTE_HANDLER:
+      return "RECOMPUTE_HANDLER";
     case POLYMORPHIC: return "POLYMORPHIC";
     case MEGAMORPHIC: return "MEGAMORPHIC";
     case GENERIC: return "GENERIC";
@@ -14893,16 +13837,6 @@
 }
 
 
-const char* Code::StubType2String(StubType type) {
-  switch (type) {
-    case NORMAL: return "NORMAL";
-    case FAST: return "FAST";
-  }
-  UNREACHABLE();  // keep the compiler happy
-  return NULL;
-}
-
-
 void Code::PrintExtraICState(std::ostream& os,  // NOLINT
                              Kind kind, ExtraICState extra) {
   os << "extra_ic_state = ";
@@ -14924,9 +13858,6 @@
   if (is_inline_cache_stub()) {
     os << "ic_state = " << ICState2String(ic_state()) << "\n";
     PrintExtraICState(os, kind(), extra_ic_state());
-    if (ic_state() == MONOMORPHIC) {
-      os << "type = " << StubType2String(type()) << "\n";
-    }
     if (is_compare_ic_stub()) {
       DCHECK(CodeStub::GetMajorKey(this) == CodeStub::CompareIC);
       CompareICStub stub(stub_key(), GetIsolate());
@@ -15103,7 +14034,6 @@
 void BytecodeArray::Disassemble(std::ostream& os) {
   os << "Parameter count " << parameter_count() << "\n";
   os << "Frame size " << frame_size() << "\n";
-  Vector<char> buf = Vector<char>::New(50);
 
   const uint8_t* base_address = GetFirstBytecodeAddress();
   interpreter::SourcePositionTableIterator source_positions(
@@ -15120,12 +14050,13 @@
       os << "         ";
     }
     const uint8_t* current_address = base_address + iterator.current_offset();
-    SNPrintF(buf, "%p", current_address);
-    os << buf.start() << " : ";
+    os << reinterpret_cast<const void*>(current_address) << " @ "
+       << std::setw(4) << iterator.current_offset() << " : ";
     interpreter::Bytecodes::Decode(os, current_address, parameter_count());
     if (interpreter::Bytecodes::IsJump(iterator.current_bytecode())) {
-      SNPrintF(buf, " (%p)", base_address + iterator.GetJumpTargetOffset());
-      os << buf.start();
+      const void* jump_target = base_address + iterator.GetJumpTargetOffset();
+      os << " (" << jump_target << " @ " << iterator.GetJumpTargetOffset()
+         << ")";
     }
     os << std::endl;
     iterator.Advance();
@@ -15158,29 +14089,6 @@
       array, length, capacity, INITIALIZE_ARRAY_ELEMENTS_WITH_HOLE);
 }
 
-
-// Returns false if the passed-in index is marked non-configurable, which will
-// cause the truncation operation to halt, and thus no further old values need
-// be collected.
-static bool GetOldValue(Isolate* isolate,
-                        Handle<JSObject> object,
-                        uint32_t index,
-                        List<Handle<Object> >* old_values,
-                        List<uint32_t>* indices) {
-  LookupIterator it(isolate, object, index, object, LookupIterator::HIDDEN);
-  CHECK(JSReceiver::GetPropertyAttributes(&it).IsJust());
-  DCHECK(it.IsFound());
-  if (!it.IsConfigurable()) return false;
-  Handle<Object> value =
-      it.state() == LookupIterator::ACCESSOR
-          ? Handle<Object>::cast(isolate->factory()->the_hole_value())
-          : JSReceiver::GetDataProperty(&it);
-  old_values->Add(value);
-  indices->Add(index);
-  return true;
-}
-
-
 void JSArray::SetLength(Handle<JSArray> array, uint32_t new_length) {
   // We should never end in here with a pixel or external array.
   DCHECK(array->AllowsSetLength());
@@ -15191,91 +14099,6 @@
 }
 
 
-MaybeHandle<Object> JSArray::ObservableSetLength(Handle<JSArray> array,
-                                                 uint32_t new_length) {
-  if (!array->map()->is_observed()) {
-    SetLength(array, new_length);
-    return array;
-  }
-
-  Isolate* isolate = array->GetIsolate();
-  List<uint32_t> indices;
-  List<Handle<Object> > old_values;
-  Handle<Object> old_length_handle(array->length(), isolate);
-  uint32_t old_length = 0;
-  CHECK(old_length_handle->ToArrayLength(&old_length));
-
-  int num_elements = array->NumberOfOwnElements(ALL_PROPERTIES);
-  if (num_elements > 0) {
-    if (old_length == static_cast<uint32_t>(num_elements)) {
-      // Simple case for arrays without holes.
-      for (uint32_t i = old_length - 1; i + 1 > new_length; --i) {
-        if (!GetOldValue(isolate, array, i, &old_values, &indices)) break;
-      }
-    } else {
-      // For sparse arrays, only iterate over existing elements.
-      // TODO(rafaelw): For fast, sparse arrays, we can avoid iterating over
-      // the to-be-removed indices twice.
-      Handle<FixedArray> keys = isolate->factory()->NewFixedArray(num_elements);
-      array->GetOwnElementKeys(*keys, ALL_PROPERTIES);
-      while (num_elements-- > 0) {
-        uint32_t index = NumberToUint32(keys->get(num_elements));
-        if (index < new_length) break;
-        if (!GetOldValue(isolate, array, index, &old_values, &indices)) break;
-      }
-    }
-  }
-
-  SetLength(array, new_length);
-
-  CHECK(array->length()->ToArrayLength(&new_length));
-  if (old_length == new_length) return array;
-
-  RETURN_ON_EXCEPTION(isolate, BeginPerformSplice(array), Object);
-
-  for (int i = 0; i < indices.length(); ++i) {
-    // For deletions where the property was an accessor, old_values[i]
-    // will be the hole, which instructs EnqueueChangeRecord to elide
-    // the "oldValue" property.
-    RETURN_ON_EXCEPTION(
-        isolate,
-        JSObject::EnqueueChangeRecord(
-            array, "delete", isolate->factory()->Uint32ToString(indices[i]),
-            old_values[i]),
-        Object);
-  }
-
-  RETURN_ON_EXCEPTION(isolate,
-                      JSObject::EnqueueChangeRecord(
-                          array, "update", isolate->factory()->length_string(),
-                          old_length_handle),
-                      Object);
-
-  RETURN_ON_EXCEPTION(isolate, EndPerformSplice(array), Object);
-
-  uint32_t index = Min(old_length, new_length);
-  uint32_t add_count = new_length > old_length ? new_length - old_length : 0;
-  uint32_t delete_count = new_length < old_length ? old_length - new_length : 0;
-  Handle<JSArray> deleted = isolate->factory()->NewJSArray(0);
-  if (delete_count > 0) {
-    for (int i = indices.length() - 1; i >= 0; i--) {
-      // Skip deletions where the property was an accessor, leaving holes
-      // in the array of old values.
-      if (old_values[i]->IsTheHole()) continue;
-      JSObject::AddDataElement(deleted, indices[i] - index, old_values[i], NONE)
-          .Assert();
-    }
-
-    JSArray::SetLength(deleted, delete_count);
-  }
-
-  RETURN_ON_EXCEPTION(
-      isolate, EnqueueSpliceRecord(array, index, deleted, add_count), Object);
-
-  return array;
-}
-
-
 // static
 void Map::AddDependentCode(Handle<Map> map,
                            DependentCode::DependencyGroup group,
@@ -15603,7 +14426,7 @@
                                   bool from_javascript,
                                   ShouldThrow should_throw) {
   Isolate* isolate = proxy->GetIsolate();
-  STACK_CHECK(Nothing<bool>());
+  STACK_CHECK(isolate, Nothing<bool>());
   Handle<Name> trap_name = isolate->factory()->setPrototypeOf_string();
   // 1. Assert: Either Type(V) is Object or Type(V) is Null.
   DCHECK(value->IsJSReceiver() || value->IsNull());
@@ -15674,46 +14497,10 @@
                                    ShouldThrow should_throw) {
   Isolate* isolate = object->GetIsolate();
 
-  const bool observed = from_javascript && object->map()->is_observed();
-  Handle<Object> old_value;
-  if (observed) {
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, old_value,
-                                     JSReceiver::GetPrototype(isolate, object),
-                                     Nothing<bool>());
-  }
-
-  Maybe<bool> result =
-      SetPrototypeUnobserved(object, value, from_javascript, should_throw);
-  MAYBE_RETURN(result, Nothing<bool>());
-
-  if (result.FromJust() && observed) {
-    Handle<Object> new_value;
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, new_value,
-                                     JSReceiver::GetPrototype(isolate, object),
-                                     Nothing<bool>());
-    if (!new_value->SameValue(*old_value)) {
-      RETURN_ON_EXCEPTION_VALUE(
-          isolate, JSObject::EnqueueChangeRecord(
-                       object, "setPrototype",
-                       isolate->factory()->proto_string(), old_value),
-          Nothing<bool>());
-    }
-  }
-
-  return result;
-}
-
-
-Maybe<bool> JSObject::SetPrototypeUnobserved(Handle<JSObject> object,
-                                             Handle<Object> value,
-                                             bool from_javascript,
-                                             ShouldThrow should_throw) {
 #ifdef DEBUG
   int size = object->Size();
 #endif
 
-  Isolate* isolate = object->GetIsolate();
-
   if (from_javascript) {
     if (object->IsAccessCheckNeeded() &&
         !isolate->MayAccess(handle(isolate->context()), object)) {
@@ -15949,12 +14736,8 @@
   uint32_t old_length = 0;
   uint32_t new_capacity = 0;
 
-  Handle<Object> old_length_handle;
   if (object->IsJSArray()) {
     CHECK(JSArray::cast(*object)->length()->ToArrayLength(&old_length));
-    if (object->map()->is_observed()) {
-      old_length_handle = handle(JSArray::cast(*object)->length(), isolate);
-    }
   }
 
   ElementsKind kind = object->GetElementsKind();
@@ -15998,38 +14781,6 @@
     JSArray::cast(*object)->set_length(*new_length_handle);
   }
 
-  if (!old_length_handle.is_null() && new_length != old_length) {
-    // |old_length_handle| is kept null above unless the object is observed.
-    DCHECK(object->map()->is_observed());
-    Handle<JSArray> array = Handle<JSArray>::cast(object);
-    Handle<String> name = isolate->factory()->Uint32ToString(index);
-
-    RETURN_ON_EXCEPTION_VALUE(isolate, BeginPerformSplice(array),
-                              Nothing<bool>());
-    RETURN_ON_EXCEPTION_VALUE(
-        isolate, EnqueueChangeRecord(array, "add", name,
-                                     isolate->factory()->the_hole_value()),
-        Nothing<bool>());
-    RETURN_ON_EXCEPTION_VALUE(
-        isolate, EnqueueChangeRecord(array, "update",
-                                     isolate->factory()->length_string(),
-                                     old_length_handle),
-        Nothing<bool>());
-    RETURN_ON_EXCEPTION_VALUE(isolate, EndPerformSplice(array),
-                              Nothing<bool>());
-    Handle<JSArray> deleted = isolate->factory()->NewJSArray(0);
-    RETURN_ON_EXCEPTION_VALUE(isolate,
-                              EnqueueSpliceRecord(array, old_length, deleted,
-                                                  new_length - old_length),
-                              Nothing<bool>());
-  } else if (object->map()->is_observed()) {
-    Handle<String> name = isolate->factory()->Uint32ToString(index);
-    RETURN_ON_EXCEPTION_VALUE(
-        isolate, EnqueueChangeRecord(object, "add", name,
-                                     isolate->factory()->the_hole_value()),
-        Nothing<bool>());
-  }
-
   return Just(true);
 }
 
@@ -16520,188 +15271,25 @@
   }
 }
 
-void JSObject::CollectOwnPropertyNames(KeyAccumulator* keys,
-                                       PropertyFilter filter) {
-  if (HasFastProperties()) {
-    int real_size = map()->NumberOfOwnDescriptors();
-    Handle<DescriptorArray> descs(map()->instance_descriptors());
-    for (int i = 0; i < real_size; i++) {
-      PropertyDetails details = descs->GetDetails(i);
-      if ((details.attributes() & filter) != 0) continue;
-      if (filter & ONLY_ALL_CAN_READ) {
-        if (details.kind() != kAccessor) continue;
-        Object* accessors = descs->GetValue(i);
-        if (!accessors->IsAccessorInfo()) continue;
-        if (!AccessorInfo::cast(accessors)->all_can_read()) continue;
-      }
-      Name* key = descs->GetKey(i);
-      if (key->FilterKey(filter)) continue;
-      keys->AddKey(key, DO_NOT_CONVERT);
-    }
-  } else if (IsJSGlobalObject()) {
-    GlobalDictionary::CollectKeysTo(handle(global_dictionary()), keys, filter);
-  } else {
-    NameDictionary::CollectKeysTo(handle(property_dictionary()), keys, filter);
-  }
-}
-
-
-int JSObject::NumberOfOwnElements(PropertyFilter filter) {
-  // Fast case for objects with no elements.
-  if (!IsJSValue() && HasFastElements()) {
-    uint32_t length =
-        IsJSArray()
-            ? static_cast<uint32_t>(
-                  Smi::cast(JSArray::cast(this)->length())->value())
-            : static_cast<uint32_t>(FixedArrayBase::cast(elements())->length());
-    if (length == 0) return 0;
-  }
-  // Compute the number of enumerable elements.
-  return GetOwnElementKeys(NULL, filter);
-}
-
-void JSObject::CollectOwnElementKeys(Handle<JSObject> object,
-                                     KeyAccumulator* keys,
-                                     PropertyFilter filter) {
-  if (filter & SKIP_STRINGS) return;
-  ElementsAccessor* accessor = object->GetElementsAccessor();
-  accessor->CollectElementIndices(object, keys, kMaxUInt32, filter, 0);
-}
-
-
-int JSObject::GetOwnElementKeys(FixedArray* storage, PropertyFilter filter) {
-  int counter = 0;
-
-  // If this is a String wrapper, add the string indices first,
-  // as they're guaranteed to precede the elements in numerical order
-  // and ascending order is required by ECMA-262, 6th, 9.1.12.
-  if (IsJSValue()) {
-    Object* val = JSValue::cast(this)->value();
-    if (val->IsString()) {
-      String* str = String::cast(val);
-      if (storage) {
-        for (int i = 0; i < str->length(); i++) {
-          storage->set(counter + i, Smi::FromInt(i));
-        }
-      }
-      counter += str->length();
+bool JSObject::WasConstructedFromApiFunction() {
+  auto instance_type = map()->instance_type();
+  bool is_api_object = instance_type == JS_API_OBJECT_TYPE ||
+                       instance_type == JS_SPECIAL_API_OBJECT_TYPE;
+#ifdef ENABLE_SLOW_DCHECKS
+  if (FLAG_enable_slow_asserts) {
+    Object* maybe_constructor = map()->GetConstructor();
+    if (!maybe_constructor->IsJSFunction()) return false;
+    JSFunction* constructor = JSFunction::cast(maybe_constructor);
+    if (constructor->shared()->IsApiFunction()) {
+      DCHECK(is_api_object);
+    } else {
+      DCHECK(!is_api_object);
     }
   }
-
-  switch (GetElementsKind()) {
-    case FAST_SMI_ELEMENTS:
-    case FAST_ELEMENTS:
-    case FAST_HOLEY_SMI_ELEMENTS:
-    case FAST_HOLEY_ELEMENTS:
-    case FAST_STRING_WRAPPER_ELEMENTS: {
-      int length = IsJSArray() ?
-          Smi::cast(JSArray::cast(this)->length())->value() :
-          FixedArray::cast(elements())->length();
-      for (int i = 0; i < length; i++) {
-        if (!FixedArray::cast(elements())->get(i)->IsTheHole()) {
-          if (storage != NULL) {
-            storage->set(counter, Smi::FromInt(i));
-          }
-          counter++;
-        }
-      }
-      DCHECK(!storage || storage->length() >= counter);
-      break;
-    }
-    case FAST_DOUBLE_ELEMENTS:
-    case FAST_HOLEY_DOUBLE_ELEMENTS: {
-      int length = IsJSArray() ?
-          Smi::cast(JSArray::cast(this)->length())->value() :
-          FixedArrayBase::cast(elements())->length();
-      for (int i = 0; i < length; i++) {
-        if (!FixedDoubleArray::cast(elements())->is_the_hole(i)) {
-          if (storage != NULL) {
-            storage->set(counter, Smi::FromInt(i));
-          }
-          counter++;
-        }
-      }
-      DCHECK(!storage || storage->length() >= counter);
-      break;
-    }
-
-#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size)                      \
-    case TYPE##_ELEMENTS:                                                    \
-
-    TYPED_ARRAYS(TYPED_ARRAY_CASE)
-#undef TYPED_ARRAY_CASE
-    {
-      int length = FixedArrayBase::cast(elements())->length();
-      while (counter < length) {
-        if (storage != NULL) {
-          storage->set(counter, Smi::FromInt(counter));
-        }
-        counter++;
-      }
-      DCHECK(!storage || storage->length() >= counter);
-      break;
-    }
-
-    case DICTIONARY_ELEMENTS:
-    case SLOW_STRING_WRAPPER_ELEMENTS: {
-      if (storage != NULL) {
-        element_dictionary()->CopyKeysTo(storage, counter, filter,
-                                         SeededNumberDictionary::SORTED);
-      }
-      counter += element_dictionary()->NumberOfElementsFilterAttributes(filter);
-      break;
-    }
-    case FAST_SLOPPY_ARGUMENTS_ELEMENTS:
-    case SLOW_SLOPPY_ARGUMENTS_ELEMENTS: {
-      FixedArray* parameter_map = FixedArray::cast(elements());
-      int mapped_length = parameter_map->length() - 2;
-      FixedArray* arguments = FixedArray::cast(parameter_map->get(1));
-      if (arguments->IsDictionary()) {
-        // Copy the keys from arguments first, because Dictionary::CopyKeysTo
-        // will insert in storage starting at index 0.
-        SeededNumberDictionary* dictionary =
-            SeededNumberDictionary::cast(arguments);
-        if (storage != NULL) {
-          dictionary->CopyKeysTo(storage, counter, filter,
-                                 SeededNumberDictionary::UNSORTED);
-        }
-        counter += dictionary->NumberOfElementsFilterAttributes(filter);
-        for (int i = 0; i < mapped_length; ++i) {
-          if (!parameter_map->get(i + 2)->IsTheHole()) {
-            if (storage != NULL) storage->set(counter, Smi::FromInt(i));
-            ++counter;
-          }
-        }
-        if (storage != NULL) storage->SortPairs(storage, counter);
-
-      } else {
-        int backing_length = arguments->length();
-        int i = 0;
-        for (; i < mapped_length; ++i) {
-          if (!parameter_map->get(i + 2)->IsTheHole()) {
-            if (storage != NULL) storage->set(counter, Smi::FromInt(i));
-            ++counter;
-          } else if (i < backing_length && !arguments->get(i)->IsTheHole()) {
-            if (storage != NULL) storage->set(counter, Smi::FromInt(i));
-            ++counter;
-          }
-        }
-        for (; i < backing_length; ++i) {
-          if (storage != NULL) storage->set(counter, Smi::FromInt(i));
-          ++counter;
-        }
-      }
-      break;
-    }
-    case NO_ELEMENTS:
-      break;
-  }
-
-  DCHECK(!storage || storage->length() == counter);
-  return counter;
+#endif
+  return is_api_object;
 }
 
-
 MaybeHandle<String> Object::ObjectProtoToString(Isolate* isolate,
                                                 Handle<Object> object) {
   if (object->IsUndefined()) return isolate->factory()->undefined_to_string();
@@ -16900,22 +15488,6 @@
 
 
 // static
-MaybeHandle<JSRegExp> JSRegExp::New(Handle<String> pattern,
-                                    Handle<String> flags_string) {
-  Isolate* isolate = pattern->GetIsolate();
-  bool success = false;
-  Flags flags = RegExpFlagsFromString(flags_string, &success);
-  if (!success) {
-    THROW_NEW_ERROR(
-        isolate,
-        NewSyntaxError(MessageTemplate::kInvalidRegExpFlags, flags_string),
-        JSRegExp);
-  }
-  return New(pattern, flags);
-}
-
-
-// static
 Handle<JSRegExp> JSRegExp::Copy(Handle<JSRegExp> regexp) {
   Isolate* const isolate = regexp->GetIsolate();
   return Handle<JSRegExp>::cast(isolate->factory()->CopyJSObject(regexp));
@@ -17006,6 +15578,9 @@
   ASSIGN_RETURN_ON_EXCEPTION(isolate, escaped_source,
                              EscapeRegExpSource(isolate, source), JSRegExp);
 
+  RETURN_ON_EXCEPTION(isolate, RegExpImpl::Compile(regexp, source, flags),
+                      JSRegExp);
+
   regexp->set_source(*escaped_source);
   regexp->set_flags(Smi::FromInt(flags));
 
@@ -17026,9 +15601,6 @@
         .Check();
   }
 
-  RETURN_ON_EXCEPTION(isolate, RegExpImpl::Compile(regexp, source, flags),
-                      JSRegExp);
-
   return regexp;
 }
 
@@ -17238,10 +15810,13 @@
 
   // Rehash the elements.
   int capacity = this->Capacity();
+  Heap* heap = new_table->GetHeap();
+  Object* the_hole = heap->the_hole_value();
+  Object* undefined = heap->undefined_value();
   for (int i = 0; i < capacity; i++) {
     uint32_t from_index = EntryToIndex(i);
     Object* k = this->get(from_index);
-    if (IsKey(k)) {
+    if (k != the_hole && k != undefined) {
       uint32_t hash = this->HashForObject(key, k);
       uint32_t insertion_index =
           EntryToIndex(new_table->FindInsertionEntry(hash));
@@ -17415,9 +15990,12 @@
   uint32_t entry = FirstProbe(hash, capacity);
   uint32_t count = 1;
   // EnsureCapacity will guarantee the hash table is never full.
+  Heap* heap = GetHeap();
+  Object* the_hole = heap->the_hole_value();
+  Object* undefined = heap->undefined_value();
   while (true) {
     Object* element = KeyAt(entry);
-    if (element->IsUndefined() || element->IsTheHole()) break;
+    if (element == the_hole || element == undefined) break;
     entry = NextProbe(entry, count++, capacity);
   }
   return entry;
@@ -17564,6 +16142,30 @@
 template int NameDictionaryBase<NameDictionary, NameDictionaryShape>::FindEntry(
     Handle<Name>);
 
+template int Dictionary<GlobalDictionary, GlobalDictionaryShape, Handle<Name>>::
+    NumberOfElementsFilterAttributes(PropertyFilter filter);
+
+template int Dictionary<NameDictionary, NameDictionaryShape, Handle<Name>>::
+    NumberOfElementsFilterAttributes(PropertyFilter filter);
+
+template void Dictionary<GlobalDictionary, GlobalDictionaryShape,
+                         Handle<Name>>::CopyEnumKeysTo(FixedArray* storage);
+
+template void Dictionary<NameDictionary, NameDictionaryShape,
+                         Handle<Name>>::CopyEnumKeysTo(FixedArray* storage);
+
+template void
+Dictionary<GlobalDictionary, GlobalDictionaryShape, Handle<Name>>::
+    CollectKeysTo(Handle<Dictionary<GlobalDictionary, GlobalDictionaryShape,
+                                    Handle<Name>>>
+                      dictionary,
+                  KeyAccumulator* keys, PropertyFilter filter);
+
+template void
+Dictionary<NameDictionary, NameDictionaryShape, Handle<Name>>::CollectKeysTo(
+    Handle<Dictionary<NameDictionary, NameDictionaryShape, Handle<Name>>>
+        dictionary,
+    KeyAccumulator* keys, PropertyFilter filter);
 
 Handle<Object> JSObject::PrepareSlowElementsForSort(
     Handle<JSObject> object, uint32_t limit) {
@@ -17660,8 +16262,7 @@
 Handle<Object> JSObject::PrepareElementsForSort(Handle<JSObject> object,
                                                 uint32_t limit) {
   Isolate* isolate = object->GetIsolate();
-  if (object->HasSloppyArgumentsElements() ||
-      object->map()->is_observed()) {
+  if (object->HasSloppyArgumentsElements()) {
     return handle(Smi::FromInt(-1), isolate);
   }
 
@@ -17991,6 +16592,16 @@
     Handle<ConsString> cons = Handle<ConsString>::cast(string);
     cons->set_first(*result);
     cons->set_second(isolate->heap()->empty_string());
+  } else if (string->IsSlicedString()) {
+    STATIC_ASSERT(ConsString::kSize == SlicedString::kSize);
+    DisallowHeapAllocation no_gc;
+    bool one_byte = result->IsOneByteRepresentation();
+    Handle<Map> map = one_byte ? isolate->factory()->cons_one_byte_string_map()
+                               : isolate->factory()->cons_string_map();
+    string->set_map(*map);
+    Handle<ConsString> cons = Handle<ConsString>::cast(string);
+    cons->set_first(*result);
+    cons->set_second(isolate->heap()->empty_string());
   }
   return result;
 }
@@ -18097,23 +16708,11 @@
   Isolate* isolate = cache->GetIsolate();
   Handle<SharedFunctionInfo> shared(context->closure()->shared());
   StringSharedKey key(src, shared, language_mode, RelocInfo::kNoPosition);
-  {
-    Handle<Object> k = key.AsHandle(isolate);
-    DisallowHeapAllocation no_allocation_scope;
-    int entry = cache->FindEntry(&key);
-    if (entry != kNotFound) {
-      cache->set(EntryToIndex(entry), *k);
-      cache->set(EntryToIndex(entry) + 1, *value);
-      return cache;
-    }
-  }
-
+  Handle<Object> k = key.AsHandle(isolate);
   cache = EnsureCapacity(cache, 1, &key);
   int entry = cache->FindInsertionEntry(key.Hash());
-  Handle<Object> k =
-      isolate->factory()->NewNumber(static_cast<double>(key.Hash()));
   cache->set(EntryToIndex(entry), *k);
-  cache->set(EntryToIndex(entry) + 1, Smi::FromInt(kHashGenerations));
+  cache->set(EntryToIndex(entry) + 1, *value);
   cache->ElementAdded();
   return cache;
 }
@@ -18542,30 +17141,6 @@
   }
 }
 
-
-template <typename Derived, typename Shape, typename Key>
-int Dictionary<Derived, Shape, Key>::CopyKeysTo(
-    FixedArray* storage, int index, PropertyFilter filter,
-    typename Dictionary<Derived, Shape, Key>::SortMode sort_mode) {
-  DCHECK(storage->length() >= NumberOfElementsFilterAttributes(filter));
-  int start_index = index;
-  int capacity = this->Capacity();
-  for (int i = 0; i < capacity; i++) {
-    Object* k = this->KeyAt(i);
-    if (!this->IsKey(k) || k->FilterKey(filter)) continue;
-    if (this->IsDeleted(i)) continue;
-    PropertyDetails details = this->DetailsAt(i);
-    PropertyAttributes attr = details.attributes();
-    if ((attr & filter) != 0) continue;
-    storage->set(index++, k);
-  }
-  if (sort_mode == Dictionary::SORTED) {
-    storage->SortPairs(storage, index);
-  }
-  DCHECK(storage->length() >= index);
-  return index - start_index;
-}
-
 template <typename Derived, typename Shape, typename Key>
 void Dictionary<Derived, Shape, Key>::CollectKeysTo(
     Handle<Dictionary<Derived, Shape, Key> > dictionary, KeyAccumulator* keys,
@@ -18690,7 +17265,7 @@
     return table;
   }
 
-  // Rehash if more than 25% of the entries are deleted entries.
+  // Rehash if more than 33% of the entries are deleted entries.
   // TODO(jochen): Consider to shrink the fixed array in place.
   if ((table->NumberOfDeletedElements() << 1) > table->NumberOfElements()) {
     table->Rehash(isolate->factory()->undefined_value());
@@ -18907,21 +17482,23 @@
 template<class Derived, class Iterator, int entrysize>
 Handle<Derived> OrderedHashTable<Derived, Iterator, entrysize>::Rehash(
     Handle<Derived> table, int new_capacity) {
+  Isolate* isolate = table->GetIsolate();
+  Heap* heap = isolate->heap();
   DCHECK(!table->IsObsolete());
 
-  Handle<Derived> new_table =
-      Allocate(table->GetIsolate(),
-               new_capacity,
-               table->GetHeap()->InNewSpace(*table) ? NOT_TENURED : TENURED);
+  Handle<Derived> new_table = Allocate(
+      isolate, new_capacity, heap->InNewSpace(*table) ? NOT_TENURED : TENURED);
   int nof = table->NumberOfElements();
   int nod = table->NumberOfDeletedElements();
   int new_buckets = new_table->NumberOfBuckets();
   int new_entry = 0;
   int removed_holes_index = 0;
 
+  DisallowHeapAllocation no_gc;
+  Object* the_hole = heap->the_hole_value();
   for (int old_entry = 0; old_entry < (nof + nod); ++old_entry) {
     Object* key = table->KeyAt(old_entry);
-    if (key->IsTheHole()) {
+    if (key == the_hole) {
       table->SetRemovedIndexAt(removed_holes_index++, old_entry);
       continue;
     }
diff --git a/src/objects.h b/src/objects.h
index cbc9c04..15d2d72 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -309,7 +309,7 @@
 
 // We may store the unsigned bit field as signed Smi value and do not
 // use the sign bit.
-const int kStubMajorKeyBits = 7;
+const int kStubMajorKeyBits = 8;
 const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1;
 
 // All Maps have a field instance_type containing a InstanceType.
@@ -398,8 +398,6 @@
   V(ALLOCATION_MEMENTO_TYPE)                                    \
   V(ALLOCATION_SITE_TYPE)                                       \
   V(SCRIPT_TYPE)                                                \
-  V(CODE_CACHE_TYPE)                                            \
-  V(POLYMORPHIC_CODE_CACHE_TYPE)                                \
   V(TYPE_FEEDBACK_INFO_TYPE)                                    \
   V(ALIASED_ARGUMENTS_ENTRY_TYPE)                               \
   V(BOX_TYPE)                                                   \
@@ -422,6 +420,7 @@
   V(JS_MODULE_TYPE)                                             \
   V(JS_GLOBAL_OBJECT_TYPE)                                      \
   V(JS_GLOBAL_PROXY_TYPE)                                       \
+  V(JS_API_OBJECT_TYPE)                                         \
   V(JS_SPECIAL_API_OBJECT_TYPE)                                 \
   V(JS_ARRAY_TYPE)                                              \
   V(JS_ARRAY_BUFFER_TYPE)                                       \
@@ -514,8 +513,6 @@
   V(SCRIPT, Script, script)                                                  \
   V(ALLOCATION_SITE, AllocationSite, allocation_site)                        \
   V(ALLOCATION_MEMENTO, AllocationMemento, allocation_memento)               \
-  V(CODE_CACHE, CodeCache, code_cache)                                       \
-  V(POLYMORPHIC_CODE_CACHE, PolymorphicCodeCache, polymorphic_code_cache)    \
   V(TYPE_FEEDBACK_INFO, TypeFeedbackInfo, type_feedback_info)                \
   V(ALIASED_ARGUMENTS_ENTRY, AliasedArgumentsEntry, aliased_arguments_entry) \
   V(DEBUG_INFO, DebugInfo, debug_info)                                       \
@@ -685,8 +682,6 @@
   ALLOCATION_SITE_TYPE,
   ALLOCATION_MEMENTO_TYPE,
   SCRIPT_TYPE,
-  CODE_CACHE_TYPE,
-  POLYMORPHIC_CODE_CACHE_TYPE,
   TYPE_FEEDBACK_INFO_TYPE,
   ALIASED_ARGUMENTS_ENTRY_TYPE,
   BOX_TYPE,
@@ -708,11 +703,14 @@
   JS_PROXY_TYPE,          // FIRST_JS_RECEIVER_TYPE
   JS_GLOBAL_OBJECT_TYPE,  // FIRST_JS_OBJECT_TYPE
   JS_GLOBAL_PROXY_TYPE,
-  // Like JS_OBJECT_TYPE, but requires access checks and/or has interceptors.
+  // Like JS_API_OBJECT_TYPE, but requires access checks and/or has
+  // interceptors.
   JS_SPECIAL_API_OBJECT_TYPE,  // LAST_SPECIAL_RECEIVER_TYPE
   JS_VALUE_TYPE,               // LAST_CUSTOM_ELEMENTS_RECEIVER
   JS_MESSAGE_OBJECT_TYPE,
   JS_DATE_TYPE,
+  // Like JS_OBJECT_TYPE, but created from API function.
+  JS_API_OBJECT_TYPE,
   JS_OBJECT_TYPE,
   JS_CONTEXT_EXTENSION_OBJECT_TYPE,
   JS_GENERATOR_OBJECT_TYPE,
@@ -768,6 +766,7 @@
 };
 
 STATIC_ASSERT(JS_OBJECT_TYPE == Internals::kJSObjectType);
+STATIC_ASSERT(JS_API_OBJECT_TYPE == Internals::kJSApiObjectType);
 STATIC_ASSERT(FIRST_NONSTRING_TYPE == Internals::kFirstNonstringType);
 STATIC_ASSERT(ODDBALL_TYPE == Internals::kOddballType);
 STATIC_ASSERT(FOREIGN_TYPE == Internals::kForeignType);
@@ -981,7 +980,6 @@
   V(NormalizedMapCache)            \
   V(CompilationCacheTable)         \
   V(CodeCacheHashTable)            \
-  V(PolymorphicCodeCacheHashTable) \
   V(MapCache)                      \
   V(JSGlobalObject)                \
   V(JSGlobalProxy)                 \
@@ -1011,7 +1009,8 @@
   V(True)               \
   V(False)              \
   V(ArgumentsMarker)    \
-  V(OptimizedOut)
+  V(OptimizedOut)       \
+  V(StaleRegister)
 
 // The element types selection for CreateListFromArrayLike.
 enum class ElementTypes { kAll, kStringAndSymbol };
@@ -1162,6 +1161,10 @@
   MUST_USE_RESULT static MaybeHandle<String> ToString(Isolate* isolate,
                                                       Handle<Object> input);
 
+  // ES6 section 7.1.14 ToPropertyKey
+  MUST_USE_RESULT static MaybeHandle<Object> ToPropertyKey(
+      Isolate* isolate, Handle<Object> value);
+
   // ES6 section 7.1.15 ToLength
   MUST_USE_RESULT static MaybeHandle<Object> ToLength(Isolate* isolate,
                                                       Handle<Object> input);
@@ -1230,6 +1233,14 @@
                                                         Handle<Object> lhs,
                                                         Handle<Object> rhs);
 
+  // ES6 section 7.3.19 OrdinaryHasInstance (C, O).
+  MUST_USE_RESULT static MaybeHandle<Object> OrdinaryHasInstance(
+      Isolate* isolate, Handle<Object> callable, Handle<Object> object);
+
+  // ES6 section 12.10.4 Runtime Semantics: InstanceofOperator(O, C)
+  MUST_USE_RESULT static MaybeHandle<Object> InstanceOf(
+      Isolate* isolate, Handle<Object> object, Handle<Object> callable);
+
   MUST_USE_RESULT static MaybeHandle<Object> GetProperty(LookupIterator* it);
 
   // ES6 [[Set]] (when passed DONT_THROW)
@@ -1476,7 +1487,7 @@
   // True if this map word is a forwarding address for a scavenge
   // collection.  Only valid during a scavenge collection (specifically,
   // when all map words are heap object pointers, i.e. not during a full GC).
-  inline bool IsForwardingAddress();
+  inline bool IsForwardingAddress() const;
 
   // Create a map word from a forwarding address.
   static inline MapWord FromForwardingAddress(HeapObject* object);
@@ -1832,6 +1843,8 @@
 
   MUST_USE_RESULT static inline Maybe<bool> HasOwnProperty(
       Handle<JSReceiver> object, Handle<Name> name);
+  MUST_USE_RESULT static inline Maybe<bool> HasOwnProperty(
+      Handle<JSReceiver> object, uint32_t index);
 
   MUST_USE_RESULT static inline MaybeHandle<Object> GetProperty(
       Isolate* isolate, Handle<JSReceiver> receiver, const char* key);
@@ -1912,9 +1925,6 @@
 
   MUST_USE_RESULT static Maybe<bool> IsExtensible(Handle<JSReceiver> object);
 
-  // Tests for the fast common case for property enumeration.
-  bool IsSimpleEnum();
-
   // Returns the class name ([[Class]] property in the specification).
   String* class_name();
 
@@ -1932,6 +1942,8 @@
       Handle<JSReceiver> object, Handle<Name> name);
   MUST_USE_RESULT static inline Maybe<PropertyAttributes>
   GetOwnPropertyAttributes(Handle<JSReceiver> object, Handle<Name> name);
+  MUST_USE_RESULT static inline Maybe<PropertyAttributes>
+  GetOwnPropertyAttributes(Handle<JSReceiver> object, uint32_t index);
 
   MUST_USE_RESULT static inline Maybe<PropertyAttributes> GetElementAttributes(
       Handle<JSReceiver> object, uint32_t index);
@@ -2184,13 +2196,6 @@
   MUST_USE_RESULT static Maybe<PropertyAttributes>
       GetPropertyAttributesWithFailedAccessCheck(LookupIterator* it);
 
-  // Retrieves an AccessorPair property from the given object. Might return
-  // undefined if the property doesn't exist or is of a different kind.
-  MUST_USE_RESULT static MaybeHandle<Object> GetAccessor(
-      Handle<JSObject> object,
-      Handle<Name> name,
-      AccessorComponent component);
-
   // Defines an AccessorPair property on the given object.
   // TODO(mstarzinger): Rename to SetAccessor().
   static MaybeHandle<Object> DefineAccessor(Handle<JSObject> object,
@@ -2214,30 +2219,6 @@
   MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithInterceptor(
       LookupIterator* it, bool* done);
 
-  // Accessors for hidden properties object.
-  //
-  // Hidden properties are not own properties of the object itself.  Instead
-  // they are stored in an auxiliary structure kept as an own property with a
-  // special name Heap::hidden_properties_symbol(). But if the receiver is a
-  // JSGlobalProxy then the auxiliary object is a property of its prototype, and
-  // if it's a detached proxy, then you can't have hidden properties.
-
-  // Sets a hidden property on this object. Returns this object if successful,
-  // undefined if called on a detached proxy.
-  static Handle<Object> SetHiddenProperty(Handle<JSObject> object,
-                                          Handle<Name> key,
-                                          Handle<Object> value);
-  // Gets the value of a hidden property with the given key. Returns the hole
-  // if the property doesn't exist (or if called on a detached proxy),
-  // otherwise returns the value set for the key.
-  Object* GetHiddenProperty(Handle<Name> key);
-  // Deletes a hidden property. Deleting a non-existing property is
-  // considered successful.
-  static void DeleteHiddenProperty(Handle<JSObject> object,
-                                   Handle<Name> key);
-  // Returns true if the object has a property with the hidden string as name.
-  static bool HasHiddenProperties(Handle<JSObject> object);
-
   static void ValidateElements(Handle<JSObject> object);
 
   // Makes sure that this object can contain HeapObject as elements.
@@ -2299,27 +2280,7 @@
   inline Object* GetInternalField(int index);
   inline void SetInternalField(int index, Object* value);
   inline void SetInternalField(int index, Smi* value);
-
-  void CollectOwnPropertyNames(KeyAccumulator* keys,
-                               PropertyFilter filter = ALL_PROPERTIES);
-
-  // Returns the number of properties on this object filtering out properties
-  // with the specified attributes (ignoring interceptors).
-  // TODO(jkummerow): Deprecated, only used by Object.observe.
-  int NumberOfOwnElements(PropertyFilter filter);
-  // Returns the number of elements on this object filtering out elements
-  // with the specified attributes (ignoring interceptors).
-  // TODO(jkummerow): Deprecated, only used by Object.observe.
-  int GetOwnElementKeys(FixedArray* storage, PropertyFilter filter);
-
-  static void CollectOwnElementKeys(Handle<JSObject> object,
-                                    KeyAccumulator* keys,
-                                    PropertyFilter filter);
-
-  static Handle<FixedArray> GetEnumPropertyKeys(Handle<JSObject> object);
-
-  static Handle<FixedArray> GetFastEnumPropertyKeys(Isolate* isolate,
-                                                    Handle<JSObject> object);
+  bool WasConstructedFromApiFunction();
 
   // Returns a new map with all transitions dropped from the object's current
   // map and the ElementsKind set.
@@ -2400,9 +2361,6 @@
 
   static bool IsExtensible(Handle<JSObject> object);
 
-  // Called the first time an object is observed with ES7 Object.observe.
-  static void SetObserved(Handle<JSObject> object);
-
   // Copy object.
   enum DeepCopyHints { kNoHints = 0, kObjectIsShallow = 1 };
 
@@ -2503,11 +2461,6 @@
 
   typedef FlexibleBodyDescriptor<JSReceiver::kPropertiesOffset> BodyDescriptor;
 
-  // Enqueue change record for Object.observe. May cause GC.
-  MUST_USE_RESULT static MaybeHandle<Object> EnqueueChangeRecord(
-      Handle<JSObject> object, const char* type, Handle<Name> name,
-      Handle<Object> old_value);
-
   // Gets the number of currently used elements.
   int GetFastElementsUsage();
 
@@ -2538,21 +2491,6 @@
                                     ElementsKind kind,
                                     Object* object);
 
-  // Return the hash table backing store or the inline stored identity hash,
-  // whatever is found.
-  MUST_USE_RESULT Object* GetHiddenPropertiesHashTable();
-
-  // Return the hash table backing store for hidden properties.  If there is no
-  // backing store, allocate one.
-  static Handle<ObjectHashTable> GetOrCreateHiddenPropertiesHashtable(
-      Handle<JSObject> object);
-
-  // Set the hidden property backing store to either a hash table or
-  // the inline-stored identity hash.
-  static Handle<Object> SetHiddenPropertiesHashTable(
-      Handle<JSObject> object,
-      Handle<Object> value);
-
   static Handle<Object> GetIdentityHash(Isolate* isolate,
                                         Handle<JSObject> object);
 
@@ -2564,10 +2502,6 @@
   MUST_USE_RESULT static Maybe<bool> PreventExtensionsWithTransition(
       Handle<JSObject> object, ShouldThrow should_throw);
 
-  MUST_USE_RESULT static Maybe<bool> SetPrototypeUnobserved(
-      Handle<JSObject> object, Handle<Object> value, bool from_javascript,
-      ShouldThrow should_throw);
-
   DISALLOW_IMPLICIT_CONSTRUCTORS(JSObject);
 };
 
@@ -3101,6 +3035,11 @@
     return kFirstIndex + (descriptor_number * kDescriptorSize) + kDescriptorKey;
   }
 
+  static int ToValueIndex(int descriptor_number) {
+    return kFirstIndex + (descriptor_number * kDescriptorSize) +
+           kDescriptorValue;
+  }
+
  private:
   // An entry in a DescriptorArray, represented as an (array, index) pair.
   class Entry {
@@ -3116,12 +3055,6 @@
     int index_;
   };
 
-  static int ToValueIndex(int descriptor_number) {
-    return kFirstIndex +
-           (descriptor_number * kDescriptorSize) +
-           kDescriptorValue;
-  }
-
   // Transfer a complete descriptor from the src descriptor array to this
   // descriptor array.
   void CopyFrom(int index, DescriptorArray* src);
@@ -3507,22 +3440,15 @@
 
   // Returns the number of elements in the dictionary filtering out properties
   // with the specified attributes.
-  // TODO(jkummerow): Deprecated, only used by Object.observe.
   int NumberOfElementsFilterAttributes(PropertyFilter filter);
 
   // Returns the number of enumerable elements in the dictionary.
-  // TODO(jkummerow): Deprecated, only used by Object.observe.
   int NumberOfEnumElements() {
     return NumberOfElementsFilterAttributes(ENUMERABLE_STRINGS);
   }
 
   enum SortMode { UNSORTED, SORTED };
 
-  // Fill in details for properties into storage.
-  // Returns the number of properties added.
-  // TODO(jkummerow): Deprecated, only used by Object.observe.
-  int CopyKeysTo(FixedArray* storage, int index, PropertyFilter filter,
-                 SortMode sort_mode);
   // Collect the keys into the given KeyAccumulator, in ascending chronological
   // order of property creation.
   static void CollectKeysTo(Handle<Dictionary<Derived, Shape, Key> > dictionary,
@@ -3911,7 +3837,7 @@
   static Handle<Derived> Shrink(Handle<Derived> table);
 
   // Returns a new empty OrderedHashTable and records the clearing so that
-  // exisiting iterators can be updated.
+  // existing iterators can be updated.
   static Handle<Derived> Clear(Handle<Derived> table);
 
   // Returns a true if the OrderedHashTable contains the key
@@ -3925,6 +3851,8 @@
     return Smi::cast(get(kNumberOfDeletedElementsIndex))->value();
   }
 
+  // Returns the number of contiguous entries in the data table, starting at 0,
+  // that either are real entries or have been deleted.
   int UsedCapacity() { return NumberOfElements() + NumberOfDeletedElements(); }
 
   int NumberOfBuckets() {
@@ -3956,7 +3884,11 @@
     return Smi::cast(next_entry)->value();
   }
 
-  Object* KeyAt(int entry) { return get(EntryToIndex(entry)); }
+  // use KeyAt(i)->IsTheHole() to determine if this is a deleted entry.
+  Object* KeyAt(int entry) {
+    DCHECK_LT(entry, this->UsedCapacity());
+    return get(EntryToIndex(entry));
+  }
 
   bool IsObsolete() {
     return !get(kNextTableIndex)->IsSmi();
@@ -4017,6 +3949,7 @@
     set(kNumberOfDeletedElementsIndex, Smi::FromInt(num));
   }
 
+  // Returns the number elements that can fit into the allocated buffer.
   int Capacity() {
     return NumberOfBuckets() * kLoadFactor;
   }
@@ -4212,7 +4145,7 @@
 
   // Return true if this local was introduced by the compiler, and should not be
   // exposed to the user in a debugger.
-  bool LocalIsSynthetic(int var);
+  static bool VariableIsSynthetic(String* name);
 
   // Lookup support for serialized scope info. Returns the
   // the stack slot index for a given slot name if the slot is
@@ -4374,7 +4307,7 @@
   class HasSimpleParametersField
       : public BitField<bool, AsmFunctionField::kNext, 1> {};
   class FunctionKindField
-      : public BitField<FunctionKind, HasSimpleParametersField::kNext, 8> {};
+      : public BitField<FunctionKind, HasSimpleParametersField::kNext, 9> {};
 
   // BitFields representing the encoded information for context locals in the
   // ContextLocalInfoEntries part.
@@ -4426,8 +4359,13 @@
   inline byte get(int index);
   inline void set(int index, byte value);
 
+  // Copy in / copy out whole byte slices.
+  inline void copy_out(int index, byte* buffer, int length);
+  inline void copy_in(int index, const byte* buffer, int length);
+
   // Treat contents as an int array.
   inline int get_int(int index);
+  inline void set_int(int index, int value);
 
   static int SizeFor(int length) {
     return OBJECT_POINTER_ALIGN(kHeaderSize + length);
@@ -4949,18 +4887,11 @@
 
   static const char* Kind2String(Kind kind);
 
-  // Types of stubs.
-  enum StubType {
-    NORMAL,
-    FAST
-  };
-
   static const int kPrologueOffsetNotSet = -1;
 
 #ifdef ENABLE_DISASSEMBLER
   // Printing
   static const char* ICState2String(InlineCacheState state);
-  static const char* StubType2String(StubType type);
   static void PrintExtraICState(std::ostream& os,  // NOLINT
                                 Kind kind, ExtraICState extra);
   void Disassemble(const char* name, std::ostream& os);  // NOLINT
@@ -5030,21 +4961,14 @@
   inline InlineCacheState ic_state();  // Only valid for IC stubs.
   inline ExtraICState extra_ic_state();  // Only valid for IC stubs.
 
-  inline StubType type();  // Only valid for monomorphic IC stubs.
-
   // Testers for IC stub kinds.
   inline bool is_inline_cache_stub();
   inline bool is_debug_stub();
   inline bool is_handler();
-  inline bool is_load_stub();
-  inline bool is_keyed_load_stub();
-  inline bool is_store_stub();
-  inline bool is_keyed_store_stub();
   inline bool is_call_stub();
   inline bool is_binary_op_stub();
   inline bool is_compare_ic_stub();
   inline bool is_to_boolean_ic_stub();
-  inline bool is_keyed_stub();
   inline bool is_optimized_code();
   inline bool is_wasm_code();
   inline bool embeds_maps_weakly();
@@ -5151,20 +5075,6 @@
 
   // Find the first map in an IC stub.
   Map* FindFirstMap();
-  void FindAllMaps(MapHandleList* maps);
-
-  // Find the first handler in an IC stub.
-  Code* FindFirstHandler();
-
-  // Find |length| handlers and put them into |code_list|. Returns false if not
-  // enough handlers can be found.
-  bool FindHandlers(CodeHandleList* code_list, int length = -1);
-
-  // Find the handler for |map|.
-  MaybeHandle<Code> FindHandlerForMap(Map* map);
-
-  // Find the first name in an IC stub.
-  Name* FindFirstName();
 
   class FindAndReplacePattern;
   // For each (map-to-find, object-to-replace) pair in the pattern, this
@@ -5187,25 +5097,22 @@
   // Flags operations.
   static inline Flags ComputeFlags(
       Kind kind, InlineCacheState ic_state = UNINITIALIZED,
-      ExtraICState extra_ic_state = kNoExtraICState, StubType type = NORMAL,
+      ExtraICState extra_ic_state = kNoExtraICState,
       CacheHolderFlag holder = kCacheOnReceiver);
 
   static inline Flags ComputeMonomorphicFlags(
       Kind kind, ExtraICState extra_ic_state = kNoExtraICState,
-      CacheHolderFlag holder = kCacheOnReceiver, StubType type = NORMAL);
-
-  static inline Flags ComputeHandlerFlags(
-      Kind handler_kind, StubType type = NORMAL,
       CacheHolderFlag holder = kCacheOnReceiver);
 
+  static inline Flags ComputeHandlerFlags(
+      Kind handler_kind, CacheHolderFlag holder = kCacheOnReceiver);
+
   static inline InlineCacheState ExtractICStateFromFlags(Flags flags);
-  static inline StubType ExtractTypeFromFlags(Flags flags);
   static inline CacheHolderFlag ExtractCacheHolderFromFlags(Flags flags);
   static inline Kind ExtractKindFromFlags(Flags flags);
   static inline ExtraICState ExtractExtraICStateFromFlags(Flags flags);
 
-  static inline Flags RemoveTypeFromFlags(Flags flags);
-  static inline Flags RemoveTypeAndHolderFromFlags(Flags flags);
+  static inline Flags RemoveHolderFromFlags(Flags flags);
 
   // Convert a target address into a code object.
   static inline Code* GetCodeFromTargetAddress(Address address);
@@ -5261,7 +5168,6 @@
   DECLARE_VERIFIER(Code)
 
   void ClearInlineCaches();
-  void ClearInlineCaches(Kind kind);
 
   BailoutId TranslatePcOffsetToAstId(uint32_t pc_offset);
   uint32_t TranslateAstIdToPcOffset(BailoutId ast_id);
@@ -5370,12 +5276,11 @@
 
   // Flags layout.  BitField<type, shift, size>.
   class ICStateField : public BitField<InlineCacheState, 0, 3> {};
-  class TypeField : public BitField<StubType, 3, 1> {};
-  class CacheHolderField : public BitField<CacheHolderFlag, 4, 2> {};
-  class KindField : public BitField<Kind, 6, 5> {};
+  class CacheHolderField : public BitField<CacheHolderFlag, 3, 2> {};
+  class KindField : public BitField<Kind, 5, 5> {};
   class ExtraICStateField
-      : public BitField<ExtraICState, 11, PlatformSmiTagging::kSmiValueSize -
-                                              11 + 1> {};  // NOLINT
+      : public BitField<ExtraICState, 10, PlatformSmiTagging::kSmiValueSize -
+                                              10 + 1> {};  // NOLINT
 
   // KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION)
   static const int kStackSlotsFirstBit = 0;
@@ -5425,15 +5330,12 @@
   static const int kMaxArguments = (1 << kArgumentsBits) - 1;
 
   // This constant should be encodable in an ARM instruction.
-  static const int kFlagsNotUsedInLookup =
-      TypeField::kMask | CacheHolderField::kMask;
+  static const int kFlagsNotUsedInLookup = CacheHolderField::kMask;
 
  private:
   friend class RelocIterator;
   friend class Deoptimizer;  // For FindCodeAgeSequence.
 
-  void ClearInlineCaches(Kind* kind);
-
   // Code aging
   byte* FindCodeAgeSequence();
   static void GetCodeAgeAndParity(Code* code, Age* age,
@@ -5775,10 +5677,6 @@
   inline void set_is_undetectable();
   inline bool is_undetectable();
 
-  // Tells whether the instance has a call-as-function handler.
-  inline void set_is_observed();
-  inline bool is_observed();
-
   // Tells whether the instance has a [[Call]] internal method.
   // This property is implemented according to ES6, section 7.2.3.
   inline void set_is_callable();
@@ -5849,6 +5747,7 @@
   int NumberOfFields();
 
   // TODO(ishell): candidate with JSObject::MigrateToMap().
+  bool InstancesNeedRewriting(Map* target);
   bool InstancesNeedRewriting(Map* target, int target_number_of_fields,
                               int target_inobject, int target_unused,
                               int* old_number_of_fields);
@@ -5860,15 +5759,14 @@
   static void GeneralizeFieldType(Handle<Map> map, int modify_index,
                                   Representation new_representation,
                                   Handle<FieldType> new_field_type);
-  static Handle<Map> ReconfigureProperty(Handle<Map> map, int modify_index,
-                                         PropertyKind new_kind,
-                                         PropertyAttributes new_attributes,
-                                         Representation new_representation,
-                                         Handle<FieldType> new_field_type,
-                                         StoreMode store_mode);
-  static Handle<Map> CopyGeneralizeAllRepresentations(
-      Handle<Map> map, int modify_index, StoreMode store_mode,
-      PropertyKind kind, PropertyAttributes attributes, const char* reason);
+
+  static inline Handle<Map> ReconfigureProperty(
+      Handle<Map> map, int modify_index, PropertyKind new_kind,
+      PropertyAttributes new_attributes, Representation new_representation,
+      Handle<FieldType> new_field_type, StoreMode store_mode);
+
+  static inline Handle<Map> ReconfigureElementsKind(
+      Handle<Map> map, ElementsKind new_elements_kind);
 
   static Handle<Map> PrepareForDataProperty(Handle<Map> old_map,
                                             int descriptor_number,
@@ -6017,8 +5915,6 @@
                                     FunctionKind kind);
 
 
-  static Handle<Map> CopyForObserved(Handle<Map> map);
-
   static Handle<Map> CopyForPreventExtensions(Handle<Map> map,
                                               PropertyAttributes attrs_to_add,
                                               Handle<Symbol> transition_marker,
@@ -6037,8 +5933,8 @@
                                               PropertyAttributes attributes,
                                               StoreFromKeyed store_mode);
   static Handle<Map> TransitionToAccessorProperty(
-      Handle<Map> map, Handle<Name> name, int descriptor,
-      AccessorComponent component, Handle<Object> accessor,
+      Isolate* isolate, Handle<Map> map, Handle<Name> name, int descriptor,
+      Handle<Object> getter, Handle<Object> setter,
       PropertyAttributes attributes);
   static Handle<Map> ReconfigureExistingProperty(Handle<Map> map,
                                                  int descriptor,
@@ -6086,30 +5982,15 @@
 
   static void EnsureDescriptorSlack(Handle<Map> map, int slack);
 
-  // Returns the found code or undefined if absent.
-  Object* FindInCodeCache(Name* name, Code::Flags flags);
-
-  // Returns the non-negative index of the code object if it is in the
-  // cache and -1 otherwise.
-  int IndexInCodeCache(Object* name, Code* code);
-
-  // Removes a code object from the code cache at the given index.
-  void RemoveFromCodeCache(Name* name, Code* code, int index);
+  Code* LookupInCodeCache(Name* name, Code::Flags code);
 
   // Computes a hash value for this map, to be used in HashTables and such.
   int Hash();
 
-  // Returns the map that this map transitions to if its elements_kind
-  // is changed to |elements_kind|, or NULL if no such map is cached yet.
-  // |safe_to_add_transitions| is set to false if adding transitions is not
-  // allowed.
-  Map* LookupElementsTransitionMap(ElementsKind elements_kind);
-
   // Returns the transitioned map for this map with the most generic
-  // elements_kind that's found in |candidates|, or null handle if no match is
+  // elements_kind that's found in |candidates|, or |nullptr| if no match is
   // found at all.
-  static Handle<Map> FindTransitionedMap(Handle<Map> map,
-                                         MapHandleList* candidates);
+  Map* FindElementsKindTransitionedMap(MapHandleList* candidates);
 
   inline bool CanTransition();
 
@@ -6222,9 +6103,9 @@
   static const int kHasNamedInterceptor = 2;
   static const int kHasIndexedInterceptor = 3;
   static const int kIsUndetectable = 4;
-  static const int kIsObserved = 5;
-  static const int kIsAccessCheckNeeded = 6;
-  static const int kIsConstructor = 7;
+  static const int kIsAccessCheckNeeded = 5;
+  static const int kIsConstructor = 6;
+  // Bit 7 is free.
 
   // Bit positions for bit field 2
   static const int kIsExtensible = 0;
@@ -6268,6 +6149,17 @@
       Handle<LayoutDescriptor> full_layout_descriptor);
 
  private:
+  // Returns the map that this (root) map transitions to if its elements_kind
+  // is changed to |elements_kind|, or |nullptr| if no such map is cached yet.
+  Map* LookupElementsTransitionMap(ElementsKind elements_kind);
+
+  // Tries to replay property transitions starting from this (root) map using
+  // the descriptor array of the |map|. The |root_map| is expected to have
+  // proper elements kind and therefore elements kinds transitions are not
+  // taken by this function. Returns |nullptr| if matching transition map is
+  // not found.
+  Map* TryReplayPropertyTransitions(Map* map);
+
   static void ConnectTransition(Handle<Map> parent, Handle<Map> child,
                                 Handle<Name> name, SimpleTransitionFlag flag);
 
@@ -6304,6 +6196,19 @@
   static Handle<Map> CopyNormalized(Handle<Map> map,
                                     PropertyNormalizationMode mode);
 
+  static Handle<Map> Reconfigure(Handle<Map> map,
+                                 ElementsKind new_elements_kind,
+                                 int modify_index, PropertyKind new_kind,
+                                 PropertyAttributes new_attributes,
+                                 Representation new_representation,
+                                 Handle<FieldType> new_field_type,
+                                 StoreMode store_mode);
+
+  static Handle<Map> CopyGeneralizeAllRepresentations(
+      Handle<Map> map, ElementsKind elements_kind, int modify_index,
+      StoreMode store_mode, PropertyKind kind, PropertyAttributes attributes,
+      const char* reason);
+
   // Fires when the layout of an object with a leaf map changes.
   // This includes adding transitions to the leaf map or changing
   // the descriptor array.
@@ -6489,9 +6394,10 @@
   // function from which eval was called.
   DECL_ACCESSORS(eval_from_shared, Object)
 
-  // [eval_from_instructions_offset]: the instruction offset in the code for the
-  // function from which eval was called where eval was called.
-  DECL_INT_ACCESSORS(eval_from_instructions_offset)
+  // [eval_from_position]: the source position in the code for the function
+  // from which eval was called, as positive integer. Or the code offset in the
+  // code from which eval was called, as negative integer.
+  DECL_INT_ACCESSORS(eval_from_position)
 
   // [shared_function_infos]: weak fixed array containing all shared
   // function infos created from this script.
@@ -6543,6 +6449,13 @@
 
   static Handle<Object> GetNameOrSourceURL(Handle<Script> script);
 
+  // Set eval origin for stack trace formatting.
+  static void SetEvalOrigin(Handle<Script> script,
+                            Handle<SharedFunctionInfo> outer,
+                            int eval_position);
+  // Retrieve source position from where eval was called.
+  int GetEvalPosition();
+
   // Init line_ends array with source code positions of line ends.
   static void InitLineEnds(Handle<Script> script);
 
@@ -6578,10 +6491,10 @@
   static const int kLineEndsOffset = kTypeOffset + kPointerSize;
   static const int kIdOffset = kLineEndsOffset + kPointerSize;
   static const int kEvalFromSharedOffset = kIdOffset + kPointerSize;
-  static const int kEvalFrominstructionsOffsetOffset =
+  static const int kEvalFromPositionOffset =
       kEvalFromSharedOffset + kPointerSize;
   static const int kSharedFunctionInfosOffset =
-      kEvalFrominstructionsOffsetOffset + kPointerSize;
+      kEvalFromPositionOffset + kPointerSize;
   static const int kFlagsOffset = kSharedFunctionInfosOffset + kPointerSize;
   static const int kSourceUrlOffset = kFlagsOffset + kPointerSize;
   static const int kSourceMappingUrlOffset = kSourceUrlOffset + kPointerSize;
@@ -6656,9 +6569,6 @@
 
 enum BuiltinFunctionId {
   kArrayCode,
-  kGeneratorObjectNext,
-  kGeneratorObjectReturn,
-  kGeneratorObjectThrow,
 #define DECLARE_FUNCTION_ID(ignored1, ignore2, name)    \
   k##name,
   FUNCTIONS_WITH_ID_LIST(DECLARE_FUNCTION_ID)
@@ -6750,6 +6660,18 @@
 
   static const int kNotFound = -1;
 
+  // Helpers for assembly code that does a backwards walk of the optimized code
+  // map.
+  static const int kOffsetToPreviousContext =
+      FixedArray::kHeaderSize + kPointerSize * (kContextOffset - kEntryLength);
+  static const int kOffsetToPreviousCachedCode =
+      FixedArray::kHeaderSize +
+      kPointerSize * (kCachedCodeOffset - kEntryLength);
+  static const int kOffsetToPreviousLiterals =
+      FixedArray::kHeaderSize + kPointerSize * (kLiteralsOffset - kEntryLength);
+  static const int kOffsetToPreviousOsrAstId =
+      FixedArray::kHeaderSize + kPointerSize * (kOsrAstIdOffset - kEntryLength);
+
   // [scope_info]: Scope info.
   DECL_ACCESSORS(scope_info, ScopeInfo)
 
@@ -6960,6 +6882,13 @@
   // Indicates that this function is a generator.
   DECL_BOOLEAN_ACCESSORS(is_generator)
 
+  // Indicates that this function is an async function.
+  DECL_BOOLEAN_ACCESSORS(is_async)
+
+  // Indicates that this function can be suspended, either via YieldExpressions
+  // or AwaitExpressions.
+  inline bool is_resumable() const;
+
   // Indicates that this function is an arrow function.
   DECL_BOOLEAN_ACCESSORS(is_arrow)
 
@@ -7256,6 +7185,7 @@
     kIsGetterFunction,
     kIsSetterFunction,
     // byte 3
+    kIsAsyncFunction,
     kDeserialized,
     kIsDeclaration,
     kCompilerHintsCount,  // Pseudo entry
@@ -7278,7 +7208,7 @@
   ASSERT_FUNCTION_KIND_ORDER(kSetterFunction, kIsSetterFunction);
 #undef ASSERT_FUNCTION_KIND_ORDER
 
-  class FunctionKindBits : public BitField<FunctionKind, kIsArrow, 8> {};
+  class FunctionKindBits : public BitField<FunctionKind, kIsArrow, 9> {};
 
   class DeoptCountBits : public BitField<int, 0, 4> {};
   class OptReenableTriesBits : public BitField<int, 4, 18> {};
@@ -7307,6 +7237,8 @@
   static const int kStrictModeBit =
       kStrictModeFunction + kCompilerHintsSmiTagSize;
   static const int kNativeBit = kNative + kCompilerHintsSmiTagSize;
+  static const int kHasDuplicateParametersBit =
+      kHasDuplicateParameters + kCompilerHintsSmiTagSize;
 
   static const int kClassConstructorBits =
       FunctionKind::kClassConstructor
@@ -7317,6 +7249,8 @@
   // Allows to use byte-width instructions.
   static const int kStrictModeBitWithinByte = kStrictModeBit % kBitsPerByte;
   static const int kNativeBitWithinByte = kNativeBit % kBitsPerByte;
+  static const int kHasDuplicateParametersBitWithinByte =
+      kHasDuplicateParametersBit % kBitsPerByte;
 
   static const int kClassConstructorBitsWithinByte =
       FunctionKind::kClassConstructor << kCompilerHintsSmiTagSize;
@@ -7336,6 +7270,8 @@
   static const int kStrictModeByteOffset = BYTE_OFFSET(kStrictModeFunction);
   static const int kNativeByteOffset = BYTE_OFFSET(kNative);
   static const int kFunctionKindByteOffset = BYTE_OFFSET(kFunctionKind);
+  static const int kHasDuplicateParametersByteOffset =
+      BYTE_OFFSET(kHasDuplicateParameters);
 #undef BYTE_OFFSET
 
  private:
@@ -7375,6 +7311,10 @@
   // [input]: The most recent input value.
   DECL_ACCESSORS(input, Object)
 
+  // [resume_mode]: The most recent resume mode.
+  enum ResumeMode { kNext, kReturn, kThrow };
+  DECL_INT_ACCESSORS(resume_mode)
+
   // [continuation]: Offset into code of continuation.
   //
   // A positive offset indicates a suspended generator.  The special
@@ -7392,25 +7332,22 @@
   DECLARE_CAST(JSGeneratorObject)
 
   // Dispatched behavior.
-  DECLARE_PRINTER(JSGeneratorObject)
   DECLARE_VERIFIER(JSGeneratorObject)
 
   // Magic sentinel values for the continuation.
-  static const int kGeneratorExecuting = -1;
-  static const int kGeneratorClosed = 0;
+  static const int kGeneratorExecuting = -2;
+  static const int kGeneratorClosed = -1;
 
   // Layout description.
   static const int kFunctionOffset = JSObject::kHeaderSize;
   static const int kContextOffset = kFunctionOffset + kPointerSize;
   static const int kReceiverOffset = kContextOffset + kPointerSize;
   static const int kInputOffset = kReceiverOffset + kPointerSize;
-  static const int kContinuationOffset = kInputOffset + kPointerSize;
+  static const int kResumeModeOffset = kInputOffset + kPointerSize;
+  static const int kContinuationOffset = kResumeModeOffset + kPointerSize;
   static const int kOperandStackOffset = kContinuationOffset + kPointerSize;
   static const int kSize = kOperandStackOffset + kPointerSize;
 
-  // Resume mode, for use by runtime functions.
-  enum ResumeMode { NEXT, RETURN, THROW };
-
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(JSGeneratorObject);
 };
@@ -7444,12 +7381,6 @@
 // JSBoundFunction describes a bound function exotic object.
 class JSBoundFunction : public JSObject {
  public:
-  // [length]: The bound function "length" property.
-  DECL_ACCESSORS(length, Object)
-
-  // [name]: The bound function "name" property.
-  DECL_ACCESSORS(name, Object)
-
   // [bound_target_function]: The wrapped function object.
   DECL_ACCESSORS(bound_target_function, JSReceiver)
 
@@ -7461,6 +7392,8 @@
   // arguments to any call to the wrapped function.
   DECL_ACCESSORS(bound_arguments, FixedArray)
 
+  static MaybeHandle<String> GetName(Isolate* isolate,
+                                     Handle<JSBoundFunction> function);
   static MaybeHandle<Context> GetFunctionRealm(
       Handle<JSBoundFunction> function);
 
@@ -7474,20 +7407,11 @@
   // to ES6 section 19.2.3.5 Function.prototype.toString ( ).
   static Handle<String> ToString(Handle<JSBoundFunction> function);
 
-  static MaybeHandle<String> GetName(Isolate* isolate,
-                                     Handle<JSBoundFunction> function);
-
   // Layout description.
   static const int kBoundTargetFunctionOffset = JSObject::kHeaderSize;
   static const int kBoundThisOffset = kBoundTargetFunctionOffset + kPointerSize;
   static const int kBoundArgumentsOffset = kBoundThisOffset + kPointerSize;
-  static const int kLengthOffset = kBoundArgumentsOffset + kPointerSize;
-  static const int kNameOffset = kLengthOffset + kPointerSize;
-  static const int kSize = kNameOffset + kPointerSize;
-
-  // Indices of in-object properties.
-  static const int kLengthIndex = 0;
-  static const int kNameIndex = 1;
+  static const int kSize = kBoundArgumentsOffset + kPointerSize;
 
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(JSBoundFunction);
@@ -7510,6 +7434,9 @@
   inline JSObject* global_proxy();
   inline Context* native_context();
 
+  static Handle<Object> GetName(Isolate* isolate, Handle<JSFunction> function);
+  static MaybeHandle<Smi> GetLength(Isolate* isolate,
+                                    Handle<JSFunction> function);
   static Handle<Context> GetFunctionRealm(Handle<JSFunction> function);
 
   // [code]: The generated code object for this function.  Executed
@@ -7531,13 +7458,14 @@
   // Tells whether or not this function has been optimized.
   inline bool IsOptimized();
 
-  // Mark this function for lazy recompilation. The function will be
-  // recompiled the next time it is executed.
+  // Mark this function for lazy recompilation. The function will be recompiled
+  // the next time it is executed.
+  void MarkForBaseline();
   void MarkForOptimization();
   void AttemptConcurrentOptimization();
 
-  // Tells whether or not the function is already marked for lazy
-  // recompilation.
+  // Tells whether or not the function is already marked for lazy recompilation.
+  inline bool IsMarkedForBaseline();
   inline bool IsMarkedForOptimization();
   inline bool IsMarkedForConcurrentOptimization();
 
@@ -7965,7 +7893,6 @@
   DECL_ACCESSORS(source, Object)
 
   static MaybeHandle<JSRegExp> New(Handle<String> source, Flags flags);
-  static MaybeHandle<JSRegExp> New(Handle<String> source, Handle<String> flags);
   static Handle<JSRegExp> Copy(Handle<JSRegExp> regexp);
 
   static MaybeHandle<JSRegExp> Initialize(Handle<JSRegExp> regexp,
@@ -8140,57 +8067,6 @@
 };
 
 
-class CodeCache: public Struct {
- public:
-  DECL_ACCESSORS(default_cache, FixedArray)
-  DECL_ACCESSORS(normal_type_cache, Object)
-
-  // Add the code object to the cache.
-  static void Update(
-      Handle<CodeCache> cache, Handle<Name> name, Handle<Code> code);
-
-  // Lookup code object in the cache. Returns code object if found and undefined
-  // if not.
-  Object* Lookup(Name* name, Code::Flags flags);
-
-  // Get the internal index of a code object in the cache. Returns -1 if the
-  // code object is not in that cache. This index can be used to later call
-  // RemoveByIndex. The cache cannot be modified between a call to GetIndex and
-  // RemoveByIndex.
-  int GetIndex(Object* name, Code* code);
-
-  // Remove an object from the cache with the provided internal index.
-  void RemoveByIndex(Object* name, Code* code, int index);
-
-  DECLARE_CAST(CodeCache)
-
-  // Dispatched behavior.
-  DECLARE_PRINTER(CodeCache)
-  DECLARE_VERIFIER(CodeCache)
-
-  static const int kDefaultCacheOffset = HeapObject::kHeaderSize;
-  static const int kNormalTypeCacheOffset =
-      kDefaultCacheOffset + kPointerSize;
-  static const int kSize = kNormalTypeCacheOffset + kPointerSize;
-
- private:
-  static void UpdateDefaultCache(
-      Handle<CodeCache> code_cache, Handle<Name> name, Handle<Code> code);
-  static void UpdateNormalTypeCache(
-      Handle<CodeCache> code_cache, Handle<Name> name, Handle<Code> code);
-  Object* LookupDefaultCache(Name* name, Code::Flags flags);
-  Object* LookupNormalTypeCache(Name* name, Code::Flags flags);
-
-  // Code cache layout of the default cache. Elements are alternating name and
-  // code objects for non normal load/store/call IC's.
-  static const int kCodeCacheEntrySize = 2;
-  static const int kCodeCacheEntryNameOffset = 0;
-  static const int kCodeCacheEntryCodeOffset = 1;
-
-  DISALLOW_IMPLICIT_CONSTRUCTORS(CodeCache);
-};
-
-
 class CodeCacheHashTableShape : public BaseShape<HashTableKey*> {
  public:
   static inline bool IsMatch(HashTableKey* key, Object* value) {
@@ -8208,7 +8084,11 @@
   static inline Handle<Object> AsHandle(Isolate* isolate, HashTableKey* key);
 
   static const int kPrefixSize = 0;
-  static const int kEntrySize = 2;
+  // The both the key (name + flags) and value (code object) can be derived from
+  // the fixed array that stores both the name and code.
+  // TODO(verwaest): Don't allocate a fixed array but inline name and code.
+  // Rewrite IsMatch to get table + index as input rather than just the raw key.
+  static const int kEntrySize = 1;
 };
 
 
@@ -8216,73 +8096,23 @@
                                            CodeCacheHashTableShape,
                                            HashTableKey*> {
  public:
-  Object* Lookup(Name* name, Code::Flags flags);
   static Handle<CodeCacheHashTable> Put(
       Handle<CodeCacheHashTable> table,
       Handle<Name> name,
       Handle<Code> code);
 
-  int GetIndex(Name* name, Code::Flags flags);
-  void RemoveByIndex(int index);
+  Code* Lookup(Name* name, Code::Flags flags);
 
   DECLARE_CAST(CodeCacheHashTable)
 
   // Initial size of the fixed array backing the hash table.
-  static const int kInitialSize = 64;
+  static const int kInitialSize = 16;
 
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(CodeCacheHashTable);
 };
 
 
-class PolymorphicCodeCache: public Struct {
- public:
-  DECL_ACCESSORS(cache, Object)
-
-  static void Update(Handle<PolymorphicCodeCache> cache,
-                     MapHandleList* maps,
-                     Code::Flags flags,
-                     Handle<Code> code);
-
-
-  // Returns an undefined value if the entry is not found.
-  Handle<Object> Lookup(MapHandleList* maps, Code::Flags flags);
-
-  DECLARE_CAST(PolymorphicCodeCache)
-
-  // Dispatched behavior.
-  DECLARE_PRINTER(PolymorphicCodeCache)
-  DECLARE_VERIFIER(PolymorphicCodeCache)
-
-  static const int kCacheOffset = HeapObject::kHeaderSize;
-  static const int kSize = kCacheOffset + kPointerSize;
-
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(PolymorphicCodeCache);
-};
-
-
-class PolymorphicCodeCacheHashTable
-    : public HashTable<PolymorphicCodeCacheHashTable,
-                       CodeCacheHashTableShape,
-                       HashTableKey*> {
- public:
-  Object* Lookup(MapHandleList* maps, int code_kind);
-
-  static Handle<PolymorphicCodeCacheHashTable> Put(
-      Handle<PolymorphicCodeCacheHashTable> hash_table,
-      MapHandleList* maps,
-      int code_kind,
-      Handle<Code> code);
-
-  DECLARE_CAST(PolymorphicCodeCacheHashTable)
-
-  static const int kInitialSize = 64;
- private:
-  DISALLOW_IMPLICIT_CONSTRUCTORS(PolymorphicCodeCacheHashTable);
-};
-
-
 class TypeFeedbackInfo: public Struct {
  public:
   inline int ic_total_count();
@@ -8852,26 +8682,26 @@
   class FlatContent {
    public:
     // Returns true if the string is flat and this structure contains content.
-    bool IsFlat() { return state_ != NON_FLAT; }
+    bool IsFlat() const { return state_ != NON_FLAT; }
     // Returns true if the structure contains one-byte content.
-    bool IsOneByte() { return state_ == ONE_BYTE; }
+    bool IsOneByte() const { return state_ == ONE_BYTE; }
     // Returns true if the structure contains two-byte content.
-    bool IsTwoByte() { return state_ == TWO_BYTE; }
+    bool IsTwoByte() const { return state_ == TWO_BYTE; }
 
     // Return the one byte content of the string. Only use if IsOneByte()
     // returns true.
-    Vector<const uint8_t> ToOneByteVector() {
+    Vector<const uint8_t> ToOneByteVector() const {
       DCHECK_EQ(ONE_BYTE, state_);
       return Vector<const uint8_t>(onebyte_start, length_);
     }
     // Return the two-byte content of the string. Only use if IsTwoByte()
     // returns true.
-    Vector<const uc16> ToUC16Vector() {
+    Vector<const uc16> ToUC16Vector() const {
       DCHECK_EQ(TWO_BYTE, state_);
       return Vector<const uc16>(twobyte_start, length_);
     }
 
-    uc16 Get(int i) {
+    uc16 Get(int i) const {
       DCHECK(i < length_);
       DCHECK(state_ != NON_FLAT);
       if (state_ == ONE_BYTE) return onebyte_start[i];
@@ -9006,15 +8836,6 @@
       RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL,
       int* length_output = 0);
 
-  // Return a 16 bit Unicode representation of the string.
-  // The string should be nearly flat, otherwise the performance of
-  // of this method may be very bad.  Setting robustness_flag to
-  // ROBUST_STRING_TRAVERSAL invokes behaviour that is robust  This means it
-  // handles unexpected data without causing assert failures and it does not
-  // do any heap allocations.  This is useful when printing stack traces.
-  base::SmartArrayPointer<uc16> ToWideCString(
-      RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL);
-
   bool ComputeArrayIndex(uint32_t* index);
 
   // Externalization.
@@ -9589,6 +9410,10 @@
 // The Oddball describes objects null, undefined, true, and false.
 class Oddball: public HeapObject {
  public:
+  // [to_number_raw]: Cached raw to_number computed at startup.
+  inline double to_number_raw() const;
+  inline void set_to_number_raw(double value);
+
   // [to_string]: Cached to_string computed at startup.
   DECL_ACCESSORS(to_string, String)
 
@@ -9618,7 +9443,8 @@
                          bool to_boolean, const char* type_of, byte kind);
 
   // Layout description.
-  static const int kToStringOffset = HeapObject::kHeaderSize;
+  static const int kToNumberRawOffset = HeapObject::kHeaderSize;
+  static const int kToStringOffset = kToNumberRawOffset + kDoubleSize;
   static const int kToNumberOffset = kToStringOffset + kPointerSize;
   static const int kToBooleanOffset = kToNumberOffset + kPointerSize;
   static const int kTypeOfOffset = kToBooleanOffset + kPointerSize;
@@ -9636,10 +9462,12 @@
   static const byte kOther = 7;
   static const byte kException = 8;
   static const byte kOptimizedOut = 9;
+  static const byte kStaleRegister = 10;
 
   typedef FixedBodyDescriptor<kToStringOffset, kTypeOfOffset + kPointerSize,
                               kSize> BodyDescriptor;
 
+  STATIC_ASSERT(kToNumberRawOffset == HeapNumber::kValueOffset);
   STATIC_ASSERT(kKindOffset == Internals::kOddballKindOffset);
   STATIC_ASSERT(kNull == Internals::kNullOddballKind);
   STATIC_ASSERT(kUndefined == Internals::kUndefinedOddballKind);
@@ -10305,9 +10133,6 @@
   inline bool AllowsSetLength();
 
   static void SetLength(Handle<JSArray> array, uint32_t length);
-  // Same as above but will also queue splice records if |array| is observed.
-  static MaybeHandle<Object> ObservableSetLength(Handle<JSArray> array,
-                                                 uint32_t length);
 
   // Set the content of the array to the content of storage.
   static inline void SetContent(Handle<JSArray> array,
@@ -10396,10 +10221,18 @@
   DECL_ACCESSORS(name, Object)
   DECL_INT_ACCESSORS(flag)
   DECL_ACCESSORS(expected_receiver_type, Object)
+  // This directly points at a foreign C function to be used from the runtime.
   DECL_ACCESSORS(getter, Object)
   DECL_ACCESSORS(setter, Object)
+  // This either points at the same as above, or a trampoline in case we are
+  // running with the simulator. Use these entries from generated code.
+  DECL_ACCESSORS(js_getter, Object)
   DECL_ACCESSORS(data, Object)
 
+  static Address redirect(Isolate* isolate, Address address,
+                          AccessorComponent component);
+  Address redirected_getter() const;
+
   // Dispatched behavior.
   DECLARE_PRINTER(AccessorInfo)
 
@@ -10438,9 +10271,10 @@
   static const int kNameOffset = HeapObject::kHeaderSize;
   static const int kFlagOffset = kNameOffset + kPointerSize;
   static const int kExpectedReceiverTypeOffset = kFlagOffset + kPointerSize;
-  static const int kGetterOffset = kExpectedReceiverTypeOffset + kPointerSize;
-  static const int kSetterOffset = kGetterOffset + kPointerSize;
-  static const int kDataOffset = kSetterOffset + kPointerSize;
+  static const int kSetterOffset = kExpectedReceiverTypeOffset + kPointerSize;
+  static const int kGetterOffset = kSetterOffset + kPointerSize;
+  static const int kJsGetterOffset = kGetterOffset + kPointerSize;
+  static const int kDataOffset = kJsGetterOffset + kPointerSize;
   static const int kSize = kDataOffset + kPointerSize;
 
 
diff --git a/src/optimizing-compile-dispatcher.cc b/src/optimizing-compile-dispatcher.cc
index ed20224..7077339 100644
--- a/src/optimizing-compile-dispatcher.cc
+++ b/src/optimizing-compile-dispatcher.cc
@@ -15,15 +15,12 @@
 
 namespace {
 
-void DisposeOptimizedCompileJob(OptimizedCompileJob* job,
-                                bool restore_function_code) {
-  // The recompile job is allocated in the CompilationInfo's zone.
-  CompilationInfo* info = job->info();
+void DisposeCompilationJob(CompilationJob* job, bool restore_function_code) {
   if (restore_function_code) {
-    Handle<JSFunction> function = info->closure();
+    Handle<JSFunction> function = job->info()->closure();
     function->ReplaceCode(function->shared()->code());
   }
-  delete info;
+  delete job;
 }
 
 }  // namespace
@@ -85,35 +82,29 @@
   DeleteArray(input_queue_);
 }
 
-
-OptimizedCompileJob* OptimizingCompileDispatcher::NextInput(
-    bool check_if_flushing) {
+CompilationJob* OptimizingCompileDispatcher::NextInput(bool check_if_flushing) {
   base::LockGuard<base::Mutex> access_input_queue_(&input_queue_mutex_);
   if (input_queue_length_ == 0) return NULL;
-  OptimizedCompileJob* job = input_queue_[InputQueueIndex(0)];
+  CompilationJob* job = input_queue_[InputQueueIndex(0)];
   DCHECK_NOT_NULL(job);
   input_queue_shift_ = InputQueueIndex(1);
   input_queue_length_--;
   if (check_if_flushing) {
     if (static_cast<ModeFlag>(base::Acquire_Load(&mode_)) == FLUSH) {
-      if (!job->info()->is_osr()) {
-        AllowHandleDereference allow_handle_dereference;
-        DisposeOptimizedCompileJob(job, true);
-      }
+      AllowHandleDereference allow_handle_dereference;
+      DisposeCompilationJob(job, true);
       return NULL;
     }
   }
   return job;
 }
 
-
-void OptimizingCompileDispatcher::CompileNext(OptimizedCompileJob* job) {
+void OptimizingCompileDispatcher::CompileNext(CompilationJob* job) {
   if (!job) return;
 
   // The function may have already been optimized by OSR.  Simply continue.
-  OptimizedCompileJob::Status status = job->OptimizeGraph();
-  USE(status);  // Prevent an unused-variable error in release mode.
-  DCHECK(status != OptimizedCompileJob::FAILED);
+  CompilationJob::Status status = job->OptimizeGraph();
+  USE(status);  // Prevent an unused-variable error.
 
   // The function may have already been optimized by OSR.  Simply continue.
   // Use a mutex to make sure that functions marked for install
@@ -126,7 +117,7 @@
 
 void OptimizingCompileDispatcher::FlushOutputQueue(bool restore_function_code) {
   for (;;) {
-    OptimizedCompileJob* job = NULL;
+    CompilationJob* job = NULL;
     {
       base::LockGuard<base::Mutex> access_output_queue_(&output_queue_mutex_);
       if (output_queue_.empty()) return;
@@ -134,10 +125,7 @@
       output_queue_.pop();
     }
 
-    // OSR jobs are dealt with separately.
-    if (!job->info()->is_osr()) {
-      DisposeOptimizedCompileJob(job, restore_function_code);
-    }
+    DisposeCompilationJob(job, restore_function_code);
   }
 }
 
@@ -181,7 +169,7 @@
   HandleScope handle_scope(isolate_);
 
   for (;;) {
-    OptimizedCompileJob* job = NULL;
+    CompilationJob* job = NULL;
     {
       base::LockGuard<base::Mutex> access_output_queue_(&output_queue_mutex_);
       if (output_queue_.empty()) return;
@@ -196,16 +184,14 @@
         function->ShortPrint();
         PrintF(" as it has already been optimized.\n");
       }
-      DisposeOptimizedCompileJob(job, false);
+      DisposeCompilationJob(job, false);
     } else {
-      Compiler::FinalizeOptimizedCompileJob(job);
+      Compiler::FinalizeCompilationJob(job);
     }
   }
 }
 
-
-void OptimizingCompileDispatcher::QueueForOptimization(
-    OptimizedCompileJob* job) {
+void OptimizingCompileDispatcher::QueueForOptimization(CompilationJob* job) {
   DCHECK(IsQueueAvailable());
   {
     // Add job to the back of the input queue.
diff --git a/src/optimizing-compile-dispatcher.h b/src/optimizing-compile-dispatcher.h
index e14e8aa..2b20a53 100644
--- a/src/optimizing-compile-dispatcher.h
+++ b/src/optimizing-compile-dispatcher.h
@@ -17,8 +17,7 @@
 namespace v8 {
 namespace internal {
 
-class HOptimizedGraphBuilder;
-class OptimizedCompileJob;
+class CompilationJob;
 class SharedFunctionInfo;
 
 class OptimizingCompileDispatcher {
@@ -32,7 +31,7 @@
         ref_count_(0),
         recompilation_delay_(FLAG_concurrent_recompilation_delay) {
     base::NoBarrier_Store(&mode_, static_cast<base::AtomicWord>(COMPILE));
-    input_queue_ = NewArray<OptimizedCompileJob*>(input_queue_capacity_);
+    input_queue_ = NewArray<CompilationJob*>(input_queue_capacity_);
   }
 
   ~OptimizingCompileDispatcher();
@@ -40,7 +39,7 @@
   void Run();
   void Stop();
   void Flush();
-  void QueueForOptimization(OptimizedCompileJob* optimizing_compiler);
+  void QueueForOptimization(CompilationJob* job);
   void Unblock();
   void InstallOptimizedFunctions();
 
@@ -57,8 +56,8 @@
   enum ModeFlag { COMPILE, FLUSH };
 
   void FlushOutputQueue(bool restore_function_code);
-  void CompileNext(OptimizedCompileJob* job);
-  OptimizedCompileJob* NextInput(bool check_if_flushing = false);
+  void CompileNext(CompilationJob* job);
+  CompilationJob* NextInput(bool check_if_flushing = false);
 
   inline int InputQueueIndex(int i) {
     int result = (i + input_queue_shift_) % input_queue_capacity_;
@@ -70,14 +69,14 @@
   Isolate* isolate_;
 
   // Circular queue of incoming recompilation tasks (including OSR).
-  OptimizedCompileJob** input_queue_;
+  CompilationJob** input_queue_;
   int input_queue_capacity_;
   int input_queue_length_;
   int input_queue_shift_;
   base::Mutex input_queue_mutex_;
 
   // Queue of recompilation tasks ready to be installed (excluding OSR).
-  std::queue<OptimizedCompileJob*> output_queue_;
+  std::queue<CompilationJob*> output_queue_;
   // Used for job based recompilation which has multiple producers on
   // different threads.
   base::Mutex output_queue_mutex_;
diff --git a/src/parsing/expression-classifier.h b/src/parsing/expression-classifier.h
index 71fa3d3..3f70ed8 100644
--- a/src/parsing/expression-classifier.h
+++ b/src/parsing/expression-classifier.h
@@ -39,17 +39,23 @@
     ArrowFormalParametersProduction = 1 << 6,
     LetPatternProduction = 1 << 7,
     CoverInitializedNameProduction = 1 << 8,
+    TailCallExpressionProduction = 1 << 9,
+    AsyncArrowFormalParametersProduction = 1 << 10,
+    AsyncBindingPatternProduction = 1 << 11,
 
     ExpressionProductions =
-        (ExpressionProduction | FormalParameterInitializerProduction),
-    PatternProductions = (BindingPatternProduction |
-                          AssignmentPatternProduction | LetPatternProduction),
+        (ExpressionProduction | FormalParameterInitializerProduction |
+         TailCallExpressionProduction),
+    PatternProductions =
+        (BindingPatternProduction | AssignmentPatternProduction |
+         LetPatternProduction | AsyncBindingPatternProduction),
     FormalParametersProductions = (DistinctFormalParametersProduction |
                                    StrictModeFormalParametersProduction),
     StandardProductions = ExpressionProductions | PatternProductions,
     AllProductions =
         (StandardProductions | FormalParametersProductions |
-         ArrowFormalParametersProduction | CoverInitializedNameProduction)
+         ArrowFormalParametersProduction | CoverInitializedNameProduction |
+         AsyncArrowFormalParametersProduction | AsyncBindingPatternProduction)
   };
 
   enum FunctionProperties { NonSimpleParameter = 1 << 0 };
@@ -110,6 +116,14 @@
 
   bool is_valid_let_pattern() const { return is_valid(LetPatternProduction); }
 
+  bool is_valid_async_arrow_formal_parameters() const {
+    return is_valid(AsyncArrowFormalParametersProduction);
+  }
+
+  bool is_valid_async_binding_pattern() const {
+    return is_valid(AsyncBindingPatternProduction);
+  }
+
   const Error& expression_error() const { return expression_error_; }
 
   const Error& formal_parameter_initializer_error() const {
@@ -143,6 +157,20 @@
     return cover_initialized_name_error_;
   }
 
+  bool has_tail_call_expression() const {
+    return !is_valid(TailCallExpressionProduction);
+  }
+  const Error& tail_call_expression_error() const {
+    return tail_call_expression_error_;
+  }
+  const Error& async_arrow_formal_parameters_error() const {
+    return async_arrow_formal_parameters_error_;
+  }
+
+  const Error& async_binding_pattern_error() const {
+    return async_binding_pattern_error_;
+  }
+
   bool is_simple_parameter_list() const {
     return !(function_properties_ & NonSimpleParameter);
   }
@@ -219,6 +247,26 @@
     arrow_formal_parameters_error_.arg = arg;
   }
 
+  void RecordAsyncArrowFormalParametersError(const Scanner::Location& loc,
+                                             MessageTemplate::Template message,
+                                             const char* arg = nullptr) {
+    if (!is_valid_async_arrow_formal_parameters()) return;
+    invalid_productions_ |= AsyncArrowFormalParametersProduction;
+    async_arrow_formal_parameters_error_.location = loc;
+    async_arrow_formal_parameters_error_.message = message;
+    async_arrow_formal_parameters_error_.arg = arg;
+  }
+
+  void RecordAsyncBindingPatternError(const Scanner::Location& loc,
+                                      MessageTemplate::Template message,
+                                      const char* arg = nullptr) {
+    if (!is_valid_async_binding_pattern()) return;
+    invalid_productions_ |= AsyncBindingPatternProduction;
+    async_binding_pattern_error_.location = loc;
+    async_binding_pattern_error_.message = message;
+    async_binding_pattern_error_.arg = arg;
+  }
+
   void RecordDuplicateFormalParameterError(const Scanner::Location& loc) {
     if (!is_valid_formal_parameter_list_without_duplicates()) return;
     invalid_productions_ |= DistinctFormalParametersProduction;
@@ -260,6 +308,16 @@
     cover_initialized_name_error_.arg = arg;
   }
 
+  void RecordTailCallExpressionError(const Scanner::Location& loc,
+                                     MessageTemplate::Template message,
+                                     const char* arg = nullptr) {
+    if (has_tail_call_expression()) return;
+    invalid_productions_ |= TailCallExpressionProduction;
+    tail_call_expression_error_.location = loc;
+    tail_call_expression_error_.message = message;
+    tail_call_expression_error_.arg = arg;
+  }
+
   void ForgiveCoverInitializedNameError() {
     invalid_productions_ &= ~CoverInitializedNameProduction;
     cover_initialized_name_error_ = Error();
@@ -305,6 +363,13 @@
         let_pattern_error_ = inner->let_pattern_error_;
       if (errors & CoverInitializedNameProduction)
         cover_initialized_name_error_ = inner->cover_initialized_name_error_;
+      if (errors & TailCallExpressionProduction)
+        tail_call_expression_error_ = inner->tail_call_expression_error_;
+      if (errors & AsyncArrowFormalParametersProduction)
+        async_arrow_formal_parameters_error_ =
+            inner->async_arrow_formal_parameters_error_;
+      if (errors & AsyncBindingPatternProduction)
+        async_binding_pattern_error_ = inner->async_binding_pattern_error_;
     }
 
     // As an exception to the above, the result continues to be a valid arrow
@@ -340,6 +405,8 @@
   int non_pattern_begin_;
   unsigned invalid_productions_;
   unsigned function_properties_;
+  // TODO(ishell): consider using Zone[Hash]Map<TargetProduction, Error>
+  // here to consume less stack space during parsing.
   Error expression_error_;
   Error formal_parameter_initializer_error_;
   Error binding_pattern_error_;
@@ -349,6 +416,9 @@
   Error strict_mode_formal_parameter_error_;
   Error let_pattern_error_;
   Error cover_initialized_name_error_;
+  Error tail_call_expression_error_;
+  Error async_arrow_formal_parameters_error_;
+  Error async_binding_pattern_error_;
   DuplicateFinder* duplicate_finder_;
 };
 
diff --git a/src/parsing/parameter-initializer-rewriter.cc b/src/parsing/parameter-initializer-rewriter.cc
index 3e3587b..6362c63 100644
--- a/src/parsing/parameter-initializer-rewriter.cc
+++ b/src/parsing/parameter-initializer-rewriter.cc
@@ -4,6 +4,10 @@
 
 #include "src/parsing/parameter-initializer-rewriter.h"
 
+#include <algorithm>
+#include <utility>
+#include <vector>
+
 #include "src/ast/ast.h"
 #include "src/ast/ast-expression-visitor.h"
 #include "src/ast/scopes.h"
@@ -21,6 +25,7 @@
       : AstExpressionVisitor(stack_limit, initializer),
         old_scope_(old_scope),
         new_scope_(new_scope) {}
+  ~Rewriter();
 
  private:
   void VisitExpression(Expression* expr) override {}
@@ -29,10 +34,32 @@
   void VisitClassLiteral(ClassLiteral* expr) override;
   void VisitVariableProxy(VariableProxy* expr) override;
 
+  void VisitBlock(Block* stmt) override;
+  void VisitTryCatchStatement(TryCatchStatement* stmt) override;
+  void VisitWithStatement(WithStatement* stmt) override;
+
   Scope* old_scope_;
   Scope* new_scope_;
+  std::vector<std::pair<Variable*, int>> temps_;
 };
 
+struct LessThanSecond {
+  bool operator()(const std::pair<Variable*, int>& left,
+                  const std::pair<Variable*, int>& right) {
+    return left.second < right.second;
+  }
+};
+
+Rewriter::~Rewriter() {
+  if (!temps_.empty()) {
+    // Ensure that we add temporaries in the order they appeared in old_scope_.
+    std::sort(temps_.begin(), temps_.end(), LessThanSecond());
+    for (auto var_and_index : temps_) {
+      var_and_index.first->set_scope(new_scope_);
+      new_scope_->AddTemporary(var_and_index.first);
+    }
+  }
+}
 
 void Rewriter::VisitFunctionLiteral(FunctionLiteral* function_literal) {
   function_literal->scope()->ReplaceOuterScope(new_scope_);
@@ -63,9 +90,13 @@
   if (proxy->is_resolved()) {
     Variable* var = proxy->var();
     if (var->mode() != TEMPORARY) return;
-    if (old_scope_->RemoveTemporary(var)) {
-      var->set_scope(new_scope_);
-      new_scope_->AddTemporary(var);
+    // For rewriting inside the same ClosureScope (e.g., putting default
+    // parameter values in their own inner scope in certain cases), refrain
+    // from invalidly moving temporaries to a block scope.
+    if (var->scope()->ClosureScope() == new_scope_->ClosureScope()) return;
+    int index = old_scope_->RemoveTemporary(var);
+    if (index >= 0) {
+      temps_.push_back(std::make_pair(var, index));
     }
   } else if (old_scope_->RemoveUnresolved(proxy)) {
     new_scope_->AddUnresolved(proxy);
@@ -73,6 +104,26 @@
 }
 
 
+void Rewriter::VisitBlock(Block* stmt) {
+  if (stmt->scope() != nullptr)
+    stmt->scope()->ReplaceOuterScope(new_scope_);
+  else
+    VisitStatements(stmt->statements());
+}
+
+
+void Rewriter::VisitTryCatchStatement(TryCatchStatement* stmt) {
+  Visit(stmt->try_block());
+  stmt->scope()->ReplaceOuterScope(new_scope_);
+}
+
+
+void Rewriter::VisitWithStatement(WithStatement* stmt) {
+  Visit(stmt->expression());
+  stmt->scope()->ReplaceOuterScope(new_scope_);
+}
+
+
 }  // anonymous namespace
 
 
diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h
index dde6b1d..6086f7a 100644
--- a/src/parsing/parser-base.h
+++ b/src/parsing/parser-base.h
@@ -29,6 +29,86 @@
   kDisallowLabelledFunctionStatement,
 };
 
+enum class FunctionBody { Normal, SingleExpression };
+
+enum class ParseFunctionFlags {
+  kIsNormal = 0,
+  kIsGenerator = 1,
+  kIsAsync = 2,
+  kIsDefault = 4
+};
+
+static inline ParseFunctionFlags operator|(ParseFunctionFlags lhs,
+                                           ParseFunctionFlags rhs) {
+  typedef unsigned char T;
+  return static_cast<ParseFunctionFlags>(static_cast<T>(lhs) |
+                                         static_cast<T>(rhs));
+}
+
+static inline ParseFunctionFlags& operator|=(ParseFunctionFlags& lhs,
+                                             const ParseFunctionFlags& rhs) {
+  lhs = lhs | rhs;
+  return lhs;
+}
+
+static inline bool operator&(ParseFunctionFlags bitfield,
+                             ParseFunctionFlags mask) {
+  typedef unsigned char T;
+  return static_cast<T>(bitfield) & static_cast<T>(mask);
+}
+
+enum class MethodKind {
+  Normal = 0,
+  Static = 1 << 0,
+  Generator = 1 << 1,
+  StaticGenerator = Static | Generator,
+  Async = 1 << 2,
+  StaticAsync = Static | Async,
+
+  /* Any non-ordinary method kinds */
+  SpecialMask = Generator | Async
+};
+
+inline bool IsValidMethodKind(MethodKind kind) {
+  return kind == MethodKind::Normal || kind == MethodKind::Static ||
+         kind == MethodKind::Generator || kind == MethodKind::StaticGenerator ||
+         kind == MethodKind::Async || kind == MethodKind::StaticAsync;
+}
+
+static inline MethodKind operator|(MethodKind lhs, MethodKind rhs) {
+  typedef unsigned char T;
+  return static_cast<MethodKind>(static_cast<T>(lhs) | static_cast<T>(rhs));
+}
+
+static inline MethodKind& operator|=(MethodKind& lhs, const MethodKind& rhs) {
+  lhs = lhs | rhs;
+  DCHECK(IsValidMethodKind(lhs));
+  return lhs;
+}
+
+static inline bool operator&(MethodKind bitfield, MethodKind mask) {
+  typedef unsigned char T;
+  return static_cast<T>(bitfield) & static_cast<T>(mask);
+}
+
+inline bool IsNormalMethod(MethodKind kind) {
+  return kind == MethodKind::Normal;
+}
+
+inline bool IsSpecialMethod(MethodKind kind) {
+  return kind & MethodKind::SpecialMask;
+}
+
+inline bool IsStaticMethod(MethodKind kind) {
+  return kind & MethodKind::Static;
+}
+
+inline bool IsGeneratorMethod(MethodKind kind) {
+  return kind & MethodKind::Generator;
+}
+
+inline bool IsAsyncMethod(MethodKind kind) { return kind & MethodKind::Async; }
+
 struct FormalParametersBase {
   explicit FormalParametersBase(Scope* scope) : scope(scope) {}
   Scope* scope;
@@ -98,7 +178,6 @@
              v8::Extension* extension, AstValueFactory* ast_value_factory,
              ParserRecorder* log, typename Traits::Type::Parser this_object)
       : Traits(this_object),
-        parenthesized_function_(false),
         scope_(NULL),
         function_state_(NULL),
         extension_(extension),
@@ -106,6 +185,7 @@
         ast_value_factory_(ast_value_factory),
         log_(log),
         mode_(PARSE_EAGERLY),  // Lazy mode must be set explicitly.
+        parsing_module_(false),
         stack_limit_(stack_limit),
         zone_(zone),
         scanner_(scanner),
@@ -113,13 +193,12 @@
         allow_lazy_(false),
         allow_natives_(false),
         allow_tailcalls_(false),
-        allow_harmony_sloppy_(false),
-        allow_harmony_sloppy_function_(false),
-        allow_harmony_sloppy_let_(false),
         allow_harmony_restrictive_declarations_(false),
         allow_harmony_do_expressions_(false),
+        allow_harmony_for_in_(false),
         allow_harmony_function_name_(false),
-        allow_harmony_function_sent_(false) {}
+        allow_harmony_function_sent_(false),
+        allow_harmony_async_await_(false) {}
 
 #define ALLOW_ACCESSORS(name)                           \
   bool allow_##name() const { return allow_##name##_; } \
@@ -134,13 +213,12 @@
   ALLOW_ACCESSORS(lazy);
   ALLOW_ACCESSORS(natives);
   ALLOW_ACCESSORS(tailcalls);
-  ALLOW_ACCESSORS(harmony_sloppy);
-  ALLOW_ACCESSORS(harmony_sloppy_function);
-  ALLOW_ACCESSORS(harmony_sloppy_let);
   ALLOW_ACCESSORS(harmony_restrictive_declarations);
   ALLOW_ACCESSORS(harmony_do_expressions);
+  ALLOW_ACCESSORS(harmony_for_in);
   ALLOW_ACCESSORS(harmony_function_name);
   ALLOW_ACCESSORS(harmony_function_sent);
+  ALLOW_ACCESSORS(harmony_async_await);
   SCANNER_ACCESSORS(harmony_exponentiation_operator);
 
 #undef SCANNER_ACCESSORS
@@ -195,6 +273,64 @@
     Scope* scope;
   };
 
+  class TailCallExpressionList {
+   public:
+    explicit TailCallExpressionList(Zone* zone)
+        : zone_(zone), expressions_(0, zone), has_explicit_tail_calls_(false) {}
+
+    const ZoneList<ExpressionT>& expressions() const { return expressions_; }
+    const Scanner::Location& location() const { return loc_; }
+
+    bool has_explicit_tail_calls() const { return has_explicit_tail_calls_; }
+
+    void Swap(TailCallExpressionList& other) {
+      expressions_.Swap(&other.expressions_);
+      std::swap(loc_, other.loc_);
+      std::swap(has_explicit_tail_calls_, other.has_explicit_tail_calls_);
+    }
+
+    void AddImplicitTailCall(ExpressionT expr) {
+      expressions_.Add(expr, zone_);
+    }
+
+    void AddExplicitTailCall(ExpressionT expr, const Scanner::Location& loc) {
+      if (!has_explicit_tail_calls()) {
+        loc_ = loc;
+        has_explicit_tail_calls_ = true;
+      }
+      expressions_.Add(expr, zone_);
+    }
+
+    void Append(const TailCallExpressionList& other) {
+      if (!has_explicit_tail_calls()) {
+        loc_ = other.loc_;
+        has_explicit_tail_calls_ = other.has_explicit_tail_calls_;
+      }
+      expressions_.AddAll(other.expressions_, zone_);
+    }
+
+   private:
+    Zone* zone_;
+    ZoneList<ExpressionT> expressions_;
+    Scanner::Location loc_;
+    bool has_explicit_tail_calls_;
+  };
+
+  // Defines whether tail call expressions are allowed or not.
+  enum class ReturnExprContext {
+    // We are inside return statement which is allowed to contain tail call
+    // expressions. Tail call expressions are allowed.
+    kInsideValidReturnStatement,
+
+    // We are inside a block in which tail call expressions are allowed but
+    // not yet inside a return statement.
+    kInsideValidBlock,
+
+    // Tail call expressions are not allowed in the following blocks.
+    kInsideTryBlock,
+    kInsideForInOfBody,
+  };
+
   class FunctionState BASE_EMBEDDED {
    public:
     FunctionState(FunctionState** function_state_stack, Scope** scope_stack,
@@ -230,6 +366,8 @@
     }
 
     bool is_generator() const { return IsGeneratorFunction(kind_); }
+    bool is_async_function() const { return IsAsyncFunction(kind_); }
+    bool is_resumable() const { return is_generator() || is_async_function(); }
 
     FunctionKind kind() const { return kind_; }
     FunctionState* outer() const { return outer_function_state_; }
@@ -237,7 +375,7 @@
     void set_generator_object_variable(
         typename Traits::Type::GeneratorVariable* variable) {
       DCHECK(variable != NULL);
-      DCHECK(is_generator());
+      DCHECK(is_resumable());
       generator_object_variable_ = variable;
     }
     typename Traits::Type::GeneratorVariable* generator_object_variable()
@@ -252,26 +390,43 @@
       return destructuring_assignments_to_rewrite_;
     }
 
-    List<ExpressionT>& expressions_in_tail_position() {
-      return expressions_in_tail_position_;
+    TailCallExpressionList& tail_call_expressions() {
+      return tail_call_expressions_;
     }
-    void AddExpressionInTailPosition(ExpressionT expression) {
-      if (collect_expressions_in_tail_position_) {
-        expressions_in_tail_position_.Add(expression);
+    void AddImplicitTailCallExpression(ExpressionT expression) {
+      if (return_expr_context() ==
+          ReturnExprContext::kInsideValidReturnStatement) {
+        tail_call_expressions_.AddImplicitTailCall(expression);
+      }
+    }
+    void AddExplicitTailCallExpression(ExpressionT expression,
+                                       const Scanner::Location& loc) {
+      DCHECK(expression->IsCall());
+      if (return_expr_context() ==
+          ReturnExprContext::kInsideValidReturnStatement) {
+        tail_call_expressions_.AddExplicitTailCall(expression, loc);
       }
     }
 
-    bool collect_expressions_in_tail_position() const {
-      return collect_expressions_in_tail_position_;
+    ReturnExprContext return_expr_context() const {
+      return return_expr_context_;
     }
-    void set_collect_expressions_in_tail_position(bool collect) {
-      collect_expressions_in_tail_position_ = collect;
+    void set_return_expr_context(ReturnExprContext context) {
+      return_expr_context_ = context;
     }
 
     ZoneList<ExpressionT>* non_patterns_to_rewrite() {
       return &non_patterns_to_rewrite_;
     }
 
+    void next_function_is_parenthesized(bool parenthesized) {
+      next_function_is_parenthesized_ = parenthesized;
+    }
+
+    bool this_function_is_parenthesized() const {
+      return this_function_is_parenthesized_;
+    }
+
    private:
     void AddDestructuringAssignment(DestructuringAssignment pair) {
       destructuring_assignments_to_rewrite_.Add(pair);
@@ -312,17 +467,67 @@
     Scope* outer_scope_;
 
     List<DestructuringAssignment> destructuring_assignments_to_rewrite_;
-    List<ExpressionT> expressions_in_tail_position_;
-    bool collect_expressions_in_tail_position_;
+    TailCallExpressionList tail_call_expressions_;
+    ReturnExprContext return_expr_context_;
     ZoneList<ExpressionT> non_patterns_to_rewrite_;
 
     typename Traits::Type::Factory* factory_;
 
+    // If true, the next (and immediately following) function literal is
+    // preceded by a parenthesis.
+    bool next_function_is_parenthesized_;
+
+    // The value of the parents' next_function_is_parenthesized_, as it applies
+    // to this function. Filled in by constructor.
+    bool this_function_is_parenthesized_;
+
     friend class ParserTraits;
     friend class PreParserTraits;
     friend class Checkpoint;
   };
 
+  // This scope sets current ReturnExprContext to given value.
+  class ReturnExprScope {
+   public:
+    explicit ReturnExprScope(FunctionState* function_state,
+                             ReturnExprContext return_expr_context)
+        : function_state_(function_state),
+          sav_return_expr_context_(function_state->return_expr_context()) {
+      // Don't update context if we are requested to enable tail call
+      // expressions but current block does not allow them.
+      if (return_expr_context !=
+              ReturnExprContext::kInsideValidReturnStatement ||
+          sav_return_expr_context_ == ReturnExprContext::kInsideValidBlock) {
+        function_state->set_return_expr_context(return_expr_context);
+      }
+    }
+    ~ReturnExprScope() {
+      function_state_->set_return_expr_context(sav_return_expr_context_);
+    }
+
+   private:
+    FunctionState* function_state_;
+    ReturnExprContext sav_return_expr_context_;
+  };
+
+  // Collects all return expressions at tail call position in this scope
+  // to a separate list.
+  class CollectExpressionsInTailPositionToListScope {
+   public:
+    CollectExpressionsInTailPositionToListScope(FunctionState* function_state,
+                                                TailCallExpressionList* list)
+        : function_state_(function_state), list_(list) {
+      function_state->tail_call_expressions().Swap(*list_);
+    }
+    ~CollectExpressionsInTailPositionToListScope() {
+      function_state_->tail_call_expressions().Swap(*list_);
+    }
+
+   private:
+    FunctionState* function_state_;
+    TailCallExpressionList* list_;
+  };
+
   // Annoyingly, arrow functions first parse as comma expressions, then when we
   // see the => we have to go back and reinterpret the arguments as being formal
   // parameters.  To do so we need to reset some of the parser state back to
@@ -455,7 +660,8 @@
 
   bool peek_any_identifier() {
     Token::Value next = peek();
-    return next == Token::IDENTIFIER || next == Token::FUTURE_RESERVED_WORD ||
+    return next == Token::IDENTIFIER || next == Token::ENUM ||
+           next == Token::AWAIT || next == Token::ASYNC ||
            next == Token::FUTURE_STRICT_RESERVED_WORD || next == Token::LET ||
            next == Token::STATIC || next == Token::YIELD;
   }
@@ -512,6 +718,18 @@
       *ok = false;
     }
   }
+  // for now, this check just collects statistics.
+  void CheckDecimalLiteralWithLeadingZero(int* use_counts, int beg_pos,
+                                          int end_pos) {
+    Scanner::Location token_location =
+        scanner()->decimal_with_leading_zero_position();
+    if (token_location.IsValid() && beg_pos <= token_location.beg_pos &&
+        token_location.end_pos <= end_pos) {
+      scanner()->clear_decimal_with_leading_zero_position();
+      if (use_counts != nullptr)
+        ++use_counts[v8::Isolate::kDecimalWithLeadingZeroInStrictMode];
+    }
+  }
 
   inline void CheckStrictOctalLiteral(int beg_pos, int end_pos, bool* ok) {
     CheckOctalLiteral(beg_pos, end_pos, MessageTemplate::kStrictOctalLiteral,
@@ -563,14 +781,10 @@
 
   LanguageMode language_mode() { return scope_->language_mode(); }
   bool is_generator() const { return function_state_->is_generator(); }
-
-  bool allow_const() {
-    return is_strict(language_mode()) || allow_harmony_sloppy();
+  bool is_async_function() const {
+    return function_state_->is_async_function();
   }
-
-  bool allow_let() {
-    return is_strict(language_mode()) || allow_harmony_sloppy_let();
-  }
+  bool is_resumable() const { return function_state_->is_resumable(); }
 
   // Report syntax errors.
   void ReportMessage(MessageTemplate::Template message, const char* arg = NULL,
@@ -627,8 +841,16 @@
 
   void ValidateBindingPattern(const ExpressionClassifier* classifier,
                               bool* ok) {
-    if (!classifier->is_valid_binding_pattern()) {
-      ReportClassifierError(classifier->binding_pattern_error());
+    if (!classifier->is_valid_binding_pattern() ||
+        !classifier->is_valid_async_binding_pattern()) {
+      const Scanner::Location& a = classifier->binding_pattern_error().location;
+      const Scanner::Location& b =
+          classifier->async_binding_pattern_error().location;
+      if (a.beg_pos < 0 || (b.beg_pos >= 0 && a.beg_pos > b.beg_pos)) {
+        ReportClassifierError(classifier->async_binding_pattern_error());
+      } else {
+        ReportClassifierError(classifier->binding_pattern_error());
+      }
       *ok = false;
     }
   }
@@ -657,7 +879,8 @@
 
   void ValidateArrowFormalParameters(const ExpressionClassifier* classifier,
                                      ExpressionT expr,
-                                     bool parenthesized_formals, bool* ok) {
+                                     bool parenthesized_formals, bool is_async,
+                                     bool* ok) {
     if (classifier->is_valid_binding_pattern()) {
       // A simple arrow formal parameter: IDENTIFIER => BODY.
       if (!this->IsIdentifier(expr)) {
@@ -677,6 +900,12 @@
       ReportClassifierError(error);
       *ok = false;
     }
+    if (is_async && !classifier->is_valid_async_arrow_formal_parameters()) {
+      const typename ExpressionClassifier::Error& error =
+          classifier->async_arrow_formal_parameters_error();
+      ReportClassifierError(error);
+      *ok = false;
+    }
   }
 
   void ValidateLetPattern(const ExpressionClassifier* classifier, bool* ok) {
@@ -686,6 +915,15 @@
     }
   }
 
+  void CheckNoTailCallExpressions(const ExpressionClassifier* classifier,
+                                  bool* ok) {
+    if (FLAG_harmony_explicit_tailcalls &&
+        classifier->has_tail_call_expression()) {
+      ReportClassifierError(classifier->tail_call_expression_error());
+      *ok = false;
+    }
+  }
+
   void ExpressionUnexpectedToken(ExpressionClassifier* classifier) {
     MessageTemplate::Template message = MessageTemplate::kUnexpectedToken;
     const char* arg;
@@ -741,27 +979,40 @@
                                  ExpressionClassifier* classifier, bool* ok);
 
   ExpressionT ParsePrimaryExpression(ExpressionClassifier* classifier,
-                                     bool* ok);
+                                     bool* is_async, bool* ok);
+  ExpressionT ParsePrimaryExpression(ExpressionClassifier* classifier,
+                                     bool* ok) {
+    bool is_async;
+    return ParsePrimaryExpression(classifier, &is_async, ok);
+  }
   ExpressionT ParseExpression(bool accept_IN, bool* ok);
   ExpressionT ParseExpression(bool accept_IN, ExpressionClassifier* classifier,
                               bool* ok);
   ExpressionT ParseArrayLiteral(ExpressionClassifier* classifier, bool* ok);
   ExpressionT ParsePropertyName(IdentifierT* name, bool* is_get, bool* is_set,
-                                bool* is_computed_name,
+                                bool* is_await, bool* is_computed_name,
                                 ExpressionClassifier* classifier, bool* ok);
   ExpressionT ParseObjectLiteral(ExpressionClassifier* classifier, bool* ok);
   ObjectLiteralPropertyT ParsePropertyDefinition(
       ObjectLiteralCheckerBase* checker, bool in_class, bool has_extends,
-      bool is_static, bool* is_computed_name, bool* has_seen_constructor,
+      MethodKind kind, bool* is_computed_name, bool* has_seen_constructor,
       ExpressionClassifier* classifier, IdentifierT* name, bool* ok);
   typename Traits::Type::ExpressionList ParseArguments(
+      Scanner::Location* first_spread_pos, bool maybe_arrow,
+      ExpressionClassifier* classifier, bool* ok);
+  typename Traits::Type::ExpressionList ParseArguments(
       Scanner::Location* first_spread_pos, ExpressionClassifier* classifier,
-      bool* ok);
+      bool* ok) {
+    return ParseArguments(first_spread_pos, false, classifier, ok);
+  }
 
   ExpressionT ParseAssignmentExpression(bool accept_IN,
                                         ExpressionClassifier* classifier,
                                         bool* ok);
-  ExpressionT ParseYieldExpression(ExpressionClassifier* classifier, bool* ok);
+  ExpressionT ParseYieldExpression(bool accept_IN,
+                                   ExpressionClassifier* classifier, bool* ok);
+  ExpressionT ParseTailCallExpression(ExpressionClassifier* classifier,
+                                      bool* ok);
   ExpressionT ParseConditionalExpression(bool accept_IN,
                                          ExpressionClassifier* classifier,
                                          bool* ok);
@@ -773,12 +1024,15 @@
   ExpressionT ParseLeftHandSideExpression(ExpressionClassifier* classifier,
                                           bool* ok);
   ExpressionT ParseMemberWithNewPrefixesExpression(
-      ExpressionClassifier* classifier, bool* ok);
-  ExpressionT ParseMemberExpression(ExpressionClassifier* classifier, bool* ok);
+      ExpressionClassifier* classifier, bool* is_async, bool* ok);
+  ExpressionT ParseMemberExpression(ExpressionClassifier* classifier,
+                                    bool* is_async, bool* ok);
   ExpressionT ParseMemberExpressionContinuation(
-      ExpressionT expression, ExpressionClassifier* classifier, bool* ok);
+      ExpressionT expression, bool* is_async, ExpressionClassifier* classifier,
+      bool* ok);
   ExpressionT ParseArrowFunctionLiteral(bool accept_IN,
                                         const FormalParametersT& parameters,
+                                        bool is_async,
                                         const ExpressionClassifier& classifier,
                                         bool* ok);
   ExpressionT ParseTemplateLiteral(ExpressionT tag, int start,
@@ -850,7 +1104,7 @@
     explicit ObjectLiteralCheckerBase(ParserBase* parser) : parser_(parser) {}
 
     virtual void CheckProperty(Token::Value property, PropertyKind type,
-                               bool is_static, bool is_generator, bool* ok) = 0;
+                               MethodKind method_type, bool* ok) = 0;
 
     virtual ~ObjectLiteralCheckerBase() {}
 
@@ -868,8 +1122,8 @@
     explicit ObjectLiteralChecker(ParserBase* parser)
         : ObjectLiteralCheckerBase(parser), has_seen_proto_(false) {}
 
-    void CheckProperty(Token::Value property, PropertyKind type, bool is_static,
-                       bool is_generator, bool* ok) override;
+    void CheckProperty(Token::Value property, PropertyKind type,
+                       MethodKind method_type, bool* ok) override;
 
    private:
     bool IsProto() { return this->scanner()->LiteralMatches("__proto__", 9); }
@@ -883,8 +1137,8 @@
     explicit ClassLiteralChecker(ParserBase* parser)
         : ObjectLiteralCheckerBase(parser), has_seen_constructor_(false) {}
 
-    void CheckProperty(Token::Value property, PropertyKind type, bool is_static,
-                       bool is_generator, bool* ok) override;
+    void CheckProperty(Token::Value property, PropertyKind type,
+                       MethodKind method_type, bool* ok) override;
 
    private:
     bool IsConstructor() {
@@ -897,12 +1151,6 @@
     bool has_seen_constructor_;
   };
 
-  // If true, the next (and immediately following) function literal is
-  // preceded by a parenthesis.
-  // Heuristically that means that the function will be called immediately,
-  // so never lazily compile it.
-  bool parenthesized_function_;
-
   Scope* scope_;                   // Scope stack.
   FunctionState* function_state_;  // Function state stack.
   v8::Extension* extension_;
@@ -910,6 +1158,7 @@
   AstValueFactory* ast_value_factory_;  // Not owned.
   ParserRecorder* log_;
   Mode mode_;
+  bool parsing_module_;
   uintptr_t stack_limit_;
 
  private:
@@ -921,13 +1170,12 @@
   bool allow_lazy_;
   bool allow_natives_;
   bool allow_tailcalls_;
-  bool allow_harmony_sloppy_;
-  bool allow_harmony_sloppy_function_;
-  bool allow_harmony_sloppy_let_;
   bool allow_harmony_restrictive_declarations_;
   bool allow_harmony_do_expressions_;
+  bool allow_harmony_for_in_;
   bool allow_harmony_function_name_;
   bool allow_harmony_function_sent_;
+  bool allow_harmony_async_await_;
 };
 
 template <class Traits>
@@ -945,11 +1193,19 @@
       outer_function_state_(*function_state_stack),
       scope_stack_(scope_stack),
       outer_scope_(*scope_stack),
-      collect_expressions_in_tail_position_(true),
+      tail_call_expressions_(scope->zone()),
+      return_expr_context_(ReturnExprContext::kInsideValidBlock),
       non_patterns_to_rewrite_(0, scope->zone()),
-      factory_(factory) {
+      factory_(factory),
+      next_function_is_parenthesized_(false),
+      this_function_is_parenthesized_(false) {
   *scope_stack_ = scope;
   *function_state_stack = this;
+  if (outer_function_state_) {
+    this_function_is_parenthesized_ =
+        outer_function_state_->next_function_is_parenthesized_;
+    outer_function_state_->next_function_is_parenthesized_ = false;
+  }
 }
 
 
@@ -979,7 +1235,8 @@
     case Token::IDENTIFIER:
       *message = MessageTemplate::kUnexpectedTokenIdentifier;
       break;
-    case Token::FUTURE_RESERVED_WORD:
+    case Token::AWAIT:
+    case Token::ENUM:
       *message = MessageTemplate::kUnexpectedReserved;
       break;
     case Token::LET:
@@ -1054,7 +1311,8 @@
 ParserBase<Traits>::ParseAndClassifyIdentifier(ExpressionClassifier* classifier,
                                                bool* ok) {
   Token::Value next = Next();
-  if (next == Token::IDENTIFIER) {
+  if (next == Token::IDENTIFIER || next == Token::ASYNC ||
+      (next == Token::AWAIT && !parsing_module_)) {
     IdentifierT name = this->GetSymbol(scanner());
     // When this function is used to read a formal parameter, we don't always
     // know whether the function is going to be strict or sloppy.  Indeed for
@@ -1079,6 +1337,14 @@
             scanner()->location(), MessageTemplate::kStrictEvalArguments);
       }
     }
+    if (this->IsAwait(name)) {
+      if (is_async_function()) {
+        classifier->RecordPatternError(
+            scanner()->location(), MessageTemplate::kAwaitBindingIdentifier);
+      }
+      classifier->RecordAsyncArrowFormalParametersError(
+          scanner()->location(), MessageTemplate::kAwaitBindingIdentifier);
+    }
 
     if (classifier->duplicate_finder() != nullptr &&
         scanner()->FindSymbol(classifier->duplicate_finder(), 1) != 0) {
@@ -1118,7 +1384,8 @@
 ParserBase<Traits>::ParseIdentifierOrStrictReservedWord(
     bool is_generator, bool* is_strict_reserved, bool* ok) {
   Token::Value next = Next();
-  if (next == Token::IDENTIFIER) {
+  if (next == Token::IDENTIFIER || (next == Token::AWAIT && !parsing_module_) ||
+      next == Token::ASYNC) {
     *is_strict_reserved = false;
   } else if (next == Token::FUTURE_STRICT_RESERVED_WORD || next == Token::LET ||
              next == Token::STATIC || (next == Token::YIELD && !is_generator)) {
@@ -1134,13 +1401,13 @@
   return name;
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::IdentifierT
 ParserBase<Traits>::ParseIdentifierName(bool* ok) {
   Token::Value next = Next();
-  if (next != Token::IDENTIFIER && next != Token::FUTURE_RESERVED_WORD &&
-      next != Token::LET && next != Token::STATIC && next != Token::YIELD &&
+  if (next != Token::IDENTIFIER && next != Token::ASYNC &&
+      next != Token::ENUM && next != Token::AWAIT && next != Token::LET &&
+      next != Token::STATIC && next != Token::YIELD &&
       next != Token::FUTURE_STRICT_RESERVED_WORD &&
       next != Token::ESCAPED_KEYWORD &&
       next != Token::ESCAPED_STRICT_RESERVED_WORD && !Token::IsKeyword(next)) {
@@ -1195,11 +1462,10 @@
 #define DUMMY )  // to make indentation work
 #undef DUMMY
 
-
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT
 ParserBase<Traits>::ParsePrimaryExpression(ExpressionClassifier* classifier,
-                                           bool* ok) {
+                                           bool* is_async, bool* ok) {
   // PrimaryExpression ::
   //   'this'
   //   'null'
@@ -1215,6 +1481,7 @@
   //   '(' Expression ')'
   //   TemplateLiteral
   //   do Block
+  //   AsyncFunctionExpression
 
   int beg_pos = peek_position();
   switch (peek()) {
@@ -1234,10 +1501,21 @@
       BindingPatternUnexpectedToken(classifier);
       return this->ExpressionFromLiteral(Next(), beg_pos, scanner(), factory());
 
+    case Token::ASYNC:
+      if (allow_harmony_async_await() &&
+          !scanner()->HasAnyLineTerminatorAfterNext() &&
+          PeekAhead() == Token::FUNCTION) {
+        Consume(Token::ASYNC);
+        return this->ParseAsyncFunctionExpression(CHECK_OK);
+      }
+      // CoverCallExpressionAndAsyncArrowHead
+      *is_async = true;
+    /* falls through */
     case Token::IDENTIFIER:
     case Token::LET:
     case Token::STATIC:
     case Token::YIELD:
+    case Token::AWAIT:
     case Token::ESCAPED_STRICT_RESERVED_WORD:
     case Token::FUTURE_STRICT_RESERVED_WORD: {
       // Using eval or arguments in this context is OK even in strict mode.
@@ -1315,7 +1593,8 @@
       }
       // Heuristically try to detect immediately called functions before
       // seeing the call parentheses.
-      parenthesized_function_ = (peek() == Token::FUNCTION);
+      function_state_->next_function_is_parenthesized(peek() ==
+                                                      Token::FUNCTION);
       ExpressionT expr = this->ParseExpression(true, classifier, CHECK_OK);
       Expect(Token::RPAREN, CHECK_OK);
       return expr;
@@ -1324,11 +1603,6 @@
     case Token::CLASS: {
       BindingPatternUnexpectedToken(classifier);
       Consume(Token::CLASS);
-      if (!allow_harmony_sloppy() && is_sloppy(language_mode())) {
-        ReportMessage(MessageTemplate::kSloppyLexical);
-        *ok = false;
-        return this->EmptyExpression();
-      }
       int class_token_position = position();
       IdentifierT name = this->EmptyIdentifier();
       bool is_strict_reserved_name = false;
@@ -1382,7 +1656,6 @@
   return result;
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT ParserBase<Traits>::ParseExpression(
     bool accept_IN, ExpressionClassifier* classifier, bool* ok) {
@@ -1398,6 +1671,7 @@
   bool is_simple_parameter_list = this->IsIdentifier(result);
   bool seen_rest = false;
   while (peek() == Token::COMMA) {
+    CheckNoTailCallExpressions(classifier, CHECK_OK);
     if (seen_rest) {
       // At this point the production can't possibly be valid, but we don't know
       // which error to signal.
@@ -1461,6 +1735,7 @@
       int expr_pos = peek_position();
       ExpressionT argument =
           this->ParseAssignmentExpression(true, classifier, CHECK_OK);
+      CheckNoTailCallExpressions(classifier, CHECK_OK);
       elem = factory()->NewSpread(argument, start_pos, expr_pos);
 
       if (first_spread_index < 0) {
@@ -1484,6 +1759,7 @@
     } else {
       int beg_pos = peek_position();
       elem = this->ParseAssignmentExpression(true, classifier, CHECK_OK);
+      CheckNoTailCallExpressions(classifier, CHECK_OK);
       CheckDestructuringElement(elem, classifier, beg_pos,
                                 scanner()->location().end_pos);
     }
@@ -1506,11 +1782,10 @@
   return result;
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT ParserBase<Traits>::ParsePropertyName(
-    IdentifierT* name, bool* is_get, bool* is_set, bool* is_computed_name,
-    ExpressionClassifier* classifier, bool* ok) {
+    IdentifierT* name, bool* is_get, bool* is_set, bool* is_await,
+    bool* is_computed_name, ExpressionClassifier* classifier, bool* ok) {
   Token::Value token = peek();
   int pos = peek_position();
 
@@ -1555,6 +1830,9 @@
     default:
       *name = ParseIdentifierName(CHECK_OK);
       scanner()->IsGetOrSet(is_get, is_set);
+      if (this->IsAwait(*name)) {
+        *is_await = true;
+      }
       break;
   }
 
@@ -1564,38 +1842,50 @@
              : factory()->NewStringLiteral(*name, pos);
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::ObjectLiteralPropertyT
 ParserBase<Traits>::ParsePropertyDefinition(
     ObjectLiteralCheckerBase* checker, bool in_class, bool has_extends,
-    bool is_static, bool* is_computed_name, bool* has_seen_constructor,
+    MethodKind method_kind, bool* is_computed_name, bool* has_seen_constructor,
     ExpressionClassifier* classifier, IdentifierT* name, bool* ok) {
-  DCHECK(!in_class || is_static || has_seen_constructor != nullptr);
+  DCHECK(!in_class || IsStaticMethod(method_kind) ||
+         has_seen_constructor != nullptr);
   ExpressionT value = this->EmptyExpression();
   bool is_get = false;
   bool is_set = false;
+  bool is_await = false;
   bool is_generator = Check(Token::MUL);
+  bool is_async = false;
+  const bool is_static = IsStaticMethod(method_kind);
 
   Token::Value name_token = peek();
+
+  if (is_generator) {
+    method_kind |= MethodKind::Generator;
+  } else if (allow_harmony_async_await() && name_token == Token::ASYNC &&
+             !scanner()->HasAnyLineTerminatorAfterNext() &&
+             PeekAhead() != Token::LPAREN && PeekAhead()) {
+    is_async = true;
+  }
+
   int next_beg_pos = scanner()->peek_location().beg_pos;
   int next_end_pos = scanner()->peek_location().end_pos;
-  ExpressionT name_expression =
-      ParsePropertyName(name, &is_get, &is_set, is_computed_name, classifier,
-                        CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
+  ExpressionT name_expression = ParsePropertyName(
+      name, &is_get, &is_set, &is_await, is_computed_name, classifier,
+      CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
 
   if (fni_ != nullptr && !*is_computed_name) {
     this->PushLiteralName(fni_, *name);
   }
 
   if (!in_class && !is_generator) {
-    DCHECK(!is_static);
+    DCHECK(!IsStaticMethod(method_kind));
 
     if (peek() == Token::COLON) {
       // PropertyDefinition
       //    PropertyName ':' AssignmentExpression
       if (!*is_computed_name) {
-        checker->CheckProperty(name_token, kValueProperty, false, false,
+        checker->CheckProperty(name_token, kValueProperty, MethodKind::Normal,
                                CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
       }
       Consume(Token::COLON);
@@ -1605,12 +1895,12 @@
       CheckDestructuringElement(value, classifier, beg_pos,
                                 scanner()->location().end_pos);
 
-      return factory()->NewObjectLiteralProperty(name_expression, value, false,
-                                                 *is_computed_name);
+      return factory()->NewObjectLiteralProperty(name_expression, value,
+                                                 is_static, *is_computed_name);
     }
 
-    if (Token::IsIdentifier(name_token, language_mode(),
-                            this->is_generator()) &&
+    if (Token::IsIdentifier(name_token, language_mode(), this->is_generator(),
+                            parsing_module_) &&
         (peek() == Token::COMMA || peek() == Token::RBRACE ||
          peek() == Token::ASSIGN)) {
       // PropertyDefinition
@@ -1627,7 +1917,11 @@
         classifier->RecordLetPatternError(
             scanner()->location(), MessageTemplate::kLetInLexicalBinding);
       }
-
+      if (is_await && is_async_function()) {
+        classifier->RecordPatternError(
+            Scanner::Location(next_beg_pos, next_end_pos),
+            MessageTemplate::kAwaitBindingIdentifier);
+      }
       ExpressionT lhs = this->ExpressionFromIdentifier(
           *name, next_beg_pos, next_end_pos, scope_, factory());
       CheckDestructuringElement(lhs, classifier, next_beg_pos, next_end_pos);
@@ -1655,7 +1949,7 @@
       }
 
       return factory()->NewObjectLiteralProperty(
-          name_expression, value, ObjectLiteralProperty::COMPUTED, false,
+          name_expression, value, ObjectLiteralProperty::COMPUTED, is_static,
           false);
     }
   }
@@ -1665,20 +1959,32 @@
       Scanner::Location(next_beg_pos, scanner()->location().end_pos),
       MessageTemplate::kInvalidDestructuringTarget);
 
+  if (is_async && !IsSpecialMethod(method_kind)) {
+    DCHECK(!is_get);
+    DCHECK(!is_set);
+    bool dont_care;
+    name_expression = ParsePropertyName(
+        name, &dont_care, &dont_care, &dont_care, is_computed_name, classifier,
+        CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
+    method_kind |= MethodKind::Async;
+  }
+
   if (is_generator || peek() == Token::LPAREN) {
     // MethodDefinition
     //    PropertyName '(' StrictFormalParameters ')' '{' FunctionBody '}'
     //    '*' PropertyName '(' StrictFormalParameters ')' '{' FunctionBody '}'
     if (!*is_computed_name) {
-      checker->CheckProperty(name_token, kMethodProperty, is_static,
-                             is_generator,
+      checker->CheckProperty(name_token, kMethodProperty, method_kind,
                              CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
     }
 
-    FunctionKind kind = is_generator ? FunctionKind::kConciseGeneratorMethod
-                                     : FunctionKind::kConciseMethod;
+    FunctionKind kind = is_generator
+                            ? FunctionKind::kConciseGeneratorMethod
+                            : is_async ? FunctionKind::kAsyncConciseMethod
+                                       : FunctionKind::kConciseMethod;
 
-    if (in_class && !is_static && this->IsConstructor(*name)) {
+    if (in_class && !IsStaticMethod(method_kind) &&
+        this->IsConstructor(*name)) {
       *has_seen_constructor = true;
       kind = has_extends ? FunctionKind::kSubclassConstructor
                          : FunctionKind::kBaseConstructor;
@@ -1694,13 +2000,13 @@
                                                is_static, *is_computed_name);
   }
 
-  if (in_class && name_token == Token::STATIC && !is_static) {
+  if (in_class && name_token == Token::STATIC && IsNormalMethod(method_kind)) {
     // ClassElement (static)
     //    'static' MethodDefinition
     *name = this->EmptyIdentifier();
     ObjectLiteralPropertyT property = ParsePropertyDefinition(
-        checker, true, has_extends, true, is_computed_name, nullptr, classifier,
-        name, ok);
+        checker, true, has_extends, MethodKind::Static, is_computed_name,
+        nullptr, classifier, name, ok);
     Traits::RewriteNonPattern(classifier, ok);
     return property;
   }
@@ -1714,12 +2020,11 @@
     name_token = peek();
 
     name_expression = ParsePropertyName(
-        name, &dont_care, &dont_care, is_computed_name, classifier,
+        name, &dont_care, &dont_care, &dont_care, is_computed_name, classifier,
         CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
 
     if (!*is_computed_name) {
-      checker->CheckProperty(name_token, kAccessorProperty, is_static,
-                             is_generator,
+      checker->CheckProperty(name_token, kAccessorProperty, method_kind,
                              CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
     }
 
@@ -1769,13 +2074,12 @@
     FuncNameInferrer::State fni_state(fni_);
 
     const bool in_class = false;
-    const bool is_static = false;
     const bool has_extends = false;
     bool is_computed_name = false;
     IdentifierT name = this->EmptyIdentifier();
     ObjectLiteralPropertyT property = this->ParsePropertyDefinition(
-        &checker, in_class, has_extends, is_static, &is_computed_name, NULL,
-        classifier, &name, CHECK_OK);
+        &checker, in_class, has_extends, MethodKind::Normal, &is_computed_name,
+        NULL, classifier, &name, CHECK_OK);
 
     if (is_computed_name) {
       has_computed_names = true;
@@ -1809,11 +2113,10 @@
                                      pos);
 }
 
-
 template <class Traits>
 typename Traits::Type::ExpressionList ParserBase<Traits>::ParseArguments(
-    Scanner::Location* first_spread_arg_loc, ExpressionClassifier* classifier,
-    bool* ok) {
+    Scanner::Location* first_spread_arg_loc, bool maybe_arrow,
+    ExpressionClassifier* classifier, bool* ok) {
   // Arguments ::
   //   '(' (AssignmentExpression)*[','] ')'
 
@@ -1831,6 +2134,7 @@
 
     ExpressionT argument = this->ParseAssignmentExpression(
         true, classifier, CHECK_OK_CUSTOM(NullExpressionList));
+    CheckNoTailCallExpressions(classifier, CHECK_OK_CUSTOM(NullExpressionList));
     Traits::RewriteNonPattern(classifier, CHECK_OK_CUSTOM(NullExpressionList));
     if (is_spread) {
       if (!spread_arg.IsValid()) {
@@ -1868,7 +2172,7 @@
   }
   *first_spread_arg_loc = spread_arg;
 
-  if (spread_arg.IsValid()) {
+  if ((!maybe_arrow || peek() != Token::ARROW) && spread_arg.IsValid()) {
     // Unspread parameter sequences are translated into array literals in the
     // parser. Ensure that the number of materialized literals matches between
     // the parser and preparser
@@ -1893,25 +2197,38 @@
   int lhs_beg_pos = peek_position();
 
   if (peek() == Token::YIELD && is_generator()) {
-    return this->ParseYieldExpression(classifier, ok);
+    return this->ParseYieldExpression(accept_IN, classifier, ok);
   }
 
   FuncNameInferrer::State fni_state(fni_);
   ParserBase<Traits>::Checkpoint checkpoint(this);
   ExpressionClassifier arrow_formals_classifier(this,
                                                 classifier->duplicate_finder());
+
+  bool is_async = allow_harmony_async_await() && peek() == Token::ASYNC &&
+                  !scanner()->HasAnyLineTerminatorAfterNext();
+
   bool parenthesized_formals = peek() == Token::LPAREN;
-  if (!parenthesized_formals) {
+  if (!is_async && !parenthesized_formals) {
     ArrowFormalParametersUnexpectedToken(&arrow_formals_classifier);
   }
   ExpressionT expression = this->ParseConditionalExpression(
       accept_IN, &arrow_formals_classifier, CHECK_OK);
+
+  if (is_async && peek_any_identifier() && PeekAhead() == Token::ARROW) {
+    // async Identifier => AsyncConciseBody
+    IdentifierT name =
+        ParseAndClassifyIdentifier(&arrow_formals_classifier, CHECK_OK);
+    expression = this->ExpressionFromIdentifier(
+        name, position(), scanner()->location().end_pos, scope_, factory());
+  }
+
   if (peek() == Token::ARROW) {
     classifier->RecordPatternError(scanner()->peek_location(),
                                    MessageTemplate::kUnexpectedToken,
                                    Token::String(Token::ARROW));
     ValidateArrowFormalParameters(&arrow_formals_classifier, expression,
-                                  parenthesized_formals, CHECK_OK);
+                                  parenthesized_formals, is_async, CHECK_OK);
     // This reads strangely, but is correct: it checks whether any
     // sub-expression of the parameter list failed to be a valid formal
     // parameter initializer. Since YieldExpressions are banned anywhere
@@ -1919,9 +2236,11 @@
     // TODO(adamk): Rename "FormalParameterInitializerError" to refer to
     // "YieldExpression", which is its only use.
     ValidateFormalParameterInitializer(&arrow_formals_classifier, ok);
+
     Scanner::Location loc(lhs_beg_pos, scanner()->location().end_pos);
-    Scope* scope =
-        this->NewScope(scope_, FUNCTION_SCOPE, FunctionKind::kArrowFunction);
+    Scope* scope = this->NewScope(scope_, FUNCTION_SCOPE,
+                                  is_async ? FunctionKind::kAsyncArrowFunction
+                                           : FunctionKind::kArrowFunction);
     // Because the arrow's parameters were parsed in the outer scope, any
     // usage flags that might have been triggered there need to be copied
     // to the arrow scope.
@@ -1943,7 +2262,7 @@
           duplicate_loc);
     }
     expression = this->ParseArrowFunctionLiteral(
-        accept_IN, parameters, arrow_formals_classifier, CHECK_OK);
+        accept_IN, parameters, is_async, arrow_formals_classifier, CHECK_OK);
 
     if (fni_ != nullptr) fni_->Infer();
 
@@ -1960,8 +2279,10 @@
   classifier->Accumulate(
       &arrow_formals_classifier,
       ExpressionClassifier::StandardProductions |
-      ExpressionClassifier::FormalParametersProductions |
-      ExpressionClassifier::CoverInitializedNameProduction,
+          ExpressionClassifier::FormalParametersProductions |
+          ExpressionClassifier::CoverInitializedNameProduction |
+          ExpressionClassifier::AsyncArrowFormalParametersProduction |
+          ExpressionClassifier::AsyncBindingPatternProduction,
       false);
 
   if (!Token::IsAssignmentOp(peek())) {
@@ -1974,6 +2295,8 @@
   // Now pending non-pattern expressions must be discarded.
   arrow_formals_classifier.Discard();
 
+  CheckNoTailCallExpressions(classifier, CHECK_OK);
+
   if (IsValidPattern(expression) && peek() == Token::ASSIGN) {
     classifier->ForgiveCoverInitializedNameError();
     ValidateAssignmentPattern(classifier, CHECK_OK);
@@ -1998,10 +2321,13 @@
 
   ExpressionT right =
       this->ParseAssignmentExpression(accept_IN, &rhs_classifier, CHECK_OK);
+  CheckNoTailCallExpressions(&rhs_classifier, CHECK_OK);
   Traits::RewriteNonPattern(&rhs_classifier, CHECK_OK);
   classifier->Accumulate(
-      &rhs_classifier, ExpressionClassifier::ExpressionProductions |
-                       ExpressionClassifier::CoverInitializedNameProduction);
+      &rhs_classifier,
+      ExpressionClassifier::ExpressionProductions |
+          ExpressionClassifier::CoverInitializedNameProduction |
+          ExpressionClassifier::AsyncArrowFormalParametersProduction);
 
   // TODO(1231235): We try to estimate the set of properties set by
   // constructors. We define a new property whenever there is an
@@ -2047,7 +2373,8 @@
 
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT
-ParserBase<Traits>::ParseYieldExpression(ExpressionClassifier* classifier,
+ParserBase<Traits>::ParseYieldExpression(bool accept_IN,
+                                         ExpressionClassifier* classifier,
                                          bool* ok) {
   // YieldExpression ::
   //   'yield' ([no line terminator] '*'? AssignmentExpression)?
@@ -2078,7 +2405,7 @@
         if (!delegating) break;
         // Delegating yields require an RHS; fall through.
       default:
-        expression = ParseAssignmentExpression(false, classifier, CHECK_OK);
+        expression = ParseAssignmentExpression(accept_IN, classifier, CHECK_OK);
         Traits::RewriteNonPattern(classifier, CHECK_OK);
         break;
     }
@@ -2096,6 +2423,67 @@
   return yield;
 }
 
+template <class Traits>
+typename ParserBase<Traits>::ExpressionT
+ParserBase<Traits>::ParseTailCallExpression(ExpressionClassifier* classifier,
+                                            bool* ok) {
+  // TailCallExpression::
+  //   'continue' MemberExpression  Arguments
+  //   'continue' CallExpression  Arguments
+  //   'continue' MemberExpression  TemplateLiteral
+  //   'continue' CallExpression  TemplateLiteral
+  Expect(Token::CONTINUE, CHECK_OK);
+  int pos = position();
+  int sub_expression_pos = peek_position();
+  ExpressionT expression =
+      this->ParseLeftHandSideExpression(classifier, CHECK_OK);
+  CheckNoTailCallExpressions(classifier, CHECK_OK);
+
+  Scanner::Location loc(pos, scanner()->location().end_pos);
+  if (!expression->IsCall()) {
+    Scanner::Location sub_loc(sub_expression_pos, loc.end_pos);
+    ReportMessageAt(sub_loc, MessageTemplate::kUnexpectedInsideTailCall);
+    *ok = false;
+    return Traits::EmptyExpression();
+  }
+  if (Traits::IsDirectEvalCall(expression)) {
+    Scanner::Location sub_loc(sub_expression_pos, loc.end_pos);
+    ReportMessageAt(sub_loc, MessageTemplate::kUnexpectedTailCallOfEval);
+    *ok = false;
+    return Traits::EmptyExpression();
+  }
+  if (!is_strict(language_mode())) {
+    ReportMessageAt(loc, MessageTemplate::kUnexpectedSloppyTailCall);
+    *ok = false;
+    return Traits::EmptyExpression();
+  }
+  ReturnExprContext return_expr_context =
+      function_state_->return_expr_context();
+  if (return_expr_context != ReturnExprContext::kInsideValidReturnStatement) {
+    MessageTemplate::Template msg = MessageTemplate::kNone;
+    switch (return_expr_context) {
+      case ReturnExprContext::kInsideValidReturnStatement:
+        UNREACHABLE();
+        return Traits::EmptyExpression();
+      case ReturnExprContext::kInsideValidBlock:
+        msg = MessageTemplate::kUnexpectedTailCall;
+        break;
+      case ReturnExprContext::kInsideTryBlock:
+        msg = MessageTemplate::kUnexpectedTailCallInTryBlock;
+        break;
+      case ReturnExprContext::kInsideForInOfBody:
+        msg = MessageTemplate::kUnexpectedTailCallInForInOf;
+        break;
+    }
+    ReportMessageAt(loc, msg);
+    *ok = false;
+    return Traits::EmptyExpression();
+  }
+  classifier->RecordTailCallExpressionError(
+      loc, MessageTemplate::kUnexpectedTailCall);
+  function_state_->AddExplicitTailCallExpression(expression, loc);
+  return expression;
+}
 
 // Precedence = 3
 template <class Traits>
@@ -2112,6 +2500,7 @@
   ExpressionT expression =
       this->ParseBinaryExpression(4, accept_IN, classifier, CHECK_OK);
   if (peek() != Token::CONDITIONAL) return expression;
+  CheckNoTailCallExpressions(classifier, CHECK_OK);
   Traits::RewriteNonPattern(classifier, CHECK_OK);
   ArrowFormalParametersUnexpectedToken(classifier);
   BindingPatternUnexpectedToken(classifier);
@@ -2140,6 +2529,7 @@
   for (int prec1 = Precedence(peek(), accept_IN); prec1 >= prec; prec1--) {
     // prec1 >= 4
     while (Precedence(peek(), accept_IN) == prec1) {
+      CheckNoTailCallExpressions(classifier, CHECK_OK);
       Traits::RewriteNonPattern(classifier, CHECK_OK);
       BindingPatternUnexpectedToken(classifier);
       ArrowFormalParametersUnexpectedToken(classifier);
@@ -2150,6 +2540,9 @@
       const int next_prec = is_right_associative ? prec1 : prec1 + 1;
       ExpressionT y =
           ParseBinaryExpression(next_prec, accept_IN, classifier, CHECK_OK);
+      if (op != Token::OR && op != Token::AND) {
+        CheckNoTailCallExpressions(classifier, CHECK_OK);
+      }
       Traits::RewriteNonPattern(classifier, CHECK_OK);
 
       if (this->ShortcutNumericLiteralBinaryExpression(&x, y, op, pos,
@@ -2168,16 +2561,11 @@
           case Token::NE_STRICT: cmp = Token::EQ_STRICT; break;
           default: break;
         }
-        if (FLAG_harmony_instanceof && cmp == Token::INSTANCEOF) {
-          x = Traits::RewriteInstanceof(x, y, pos);
-        } else {
-          x = factory()->NewCompareOperation(cmp, x, y, pos);
-          if (cmp != op) {
-            // The comparison was negated - add a NOT.
-            x = factory()->NewUnaryOperation(Token::NOT, x, pos);
-          }
+        x = factory()->NewCompareOperation(cmp, x, y, pos);
+        if (cmp != op) {
+          // The comparison was negated - add a NOT.
+          x = factory()->NewUnaryOperation(Token::NOT, x, pos);
         }
-
       } else if (op == Token::EXP) {
         x = Traits::RewriteExponentiation(x, y, pos);
       } else {
@@ -2205,6 +2593,7 @@
   //   '-' UnaryExpression
   //   '~' UnaryExpression
   //   '!' UnaryExpression
+  //   [+Await] AwaitExpression[?Yield]
 
   Token::Value op = peek();
   if (Token::IsUnaryOp(op)) {
@@ -2214,6 +2603,7 @@
     op = Next();
     int pos = position();
     ExpressionT expression = ParseUnaryExpression(classifier, CHECK_OK);
+    CheckNoTailCallExpressions(classifier, CHECK_OK);
     Traits::RewriteNonPattern(classifier, CHECK_OK);
 
     if (op == Token::DELETE && is_strict(language_mode())) {
@@ -2239,6 +2629,7 @@
     op = Next();
     int beg_pos = peek_position();
     ExpressionT expression = this->ParseUnaryExpression(classifier, CHECK_OK);
+    CheckNoTailCallExpressions(classifier, CHECK_OK);
     expression = this->CheckAndRewriteReferenceExpression(
         expression, beg_pos, scanner()->location().end_pos,
         MessageTemplate::kInvalidLhsInPrefixOp, CHECK_OK);
@@ -2250,6 +2641,40 @@
                                         expression,
                                         position());
 
+  } else if (is_async_function() && peek() == Token::AWAIT) {
+    int beg_pos = peek_position();
+    switch (PeekAhead()) {
+      case Token::RPAREN:
+      case Token::RBRACK:
+      case Token::RBRACE:
+      case Token::ASSIGN:
+      case Token::COMMA: {
+        Next();
+        IdentifierT name = this->GetSymbol(scanner());
+
+        // Possibly async arrow formals --- record ExpressionError just in case.
+        ExpressionUnexpectedToken(classifier);
+        classifier->RecordAsyncBindingPatternError(
+            Scanner::Location(beg_pos, scanner()->location().end_pos),
+            MessageTemplate::kAwaitBindingIdentifier);
+        classifier->RecordAsyncArrowFormalParametersError(
+            Scanner::Location(beg_pos, scanner()->location().end_pos),
+            MessageTemplate::kAwaitBindingIdentifier);
+
+        return this->ExpressionFromIdentifier(
+            name, beg_pos, scanner()->location().end_pos, scope_, factory());
+      }
+      default:
+        break;
+    }
+    Consume(Token::AWAIT);
+
+    ExpressionT value = ParseUnaryExpression(classifier, CHECK_OK);
+
+    classifier->RecordFormalParameterInitializerError(
+        Scanner::Location(beg_pos, scanner()->location().end_pos),
+        MessageTemplate::kAwaitExpressionFormalParameter);
+    return Traits::RewriteAwaitExpression(value, beg_pos);
   } else {
     return this->ParsePostfixExpression(classifier, ok);
   }
@@ -2268,6 +2693,7 @@
       this->ParseLeftHandSideExpression(classifier, CHECK_OK);
   if (!scanner()->HasAnyLineTerminatorBeforeNext() &&
       Token::IsCountOp(peek())) {
+    CheckNoTailCallExpressions(classifier, CHECK_OK);
     BindingPatternUnexpectedToken(classifier);
     ArrowFormalParametersUnexpectedToken(classifier);
 
@@ -2287,7 +2713,6 @@
   return expression;
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT
 ParserBase<Traits>::ParseLeftHandSideExpression(
@@ -2295,12 +2720,18 @@
   // LeftHandSideExpression ::
   //   (NewExpression | MemberExpression) ...
 
-  ExpressionT result =
-      this->ParseMemberWithNewPrefixesExpression(classifier, CHECK_OK);
+  if (FLAG_harmony_explicit_tailcalls && peek() == Token::CONTINUE) {
+    return this->ParseTailCallExpression(classifier, ok);
+  }
+
+  bool is_async = false;
+  ExpressionT result = this->ParseMemberWithNewPrefixesExpression(
+      classifier, &is_async, CHECK_OK);
 
   while (true) {
     switch (peek()) {
       case Token::LBRACK: {
+        CheckNoTailCallExpressions(classifier, CHECK_OK);
         Traits::RewriteNonPattern(classifier, CHECK_OK);
         BindingPatternUnexpectedToken(classifier);
         ArrowFormalParametersUnexpectedToken(classifier);
@@ -2314,13 +2745,13 @@
       }
 
       case Token::LPAREN: {
+        CheckNoTailCallExpressions(classifier, CHECK_OK);
+        int pos;
         Traits::RewriteNonPattern(classifier, CHECK_OK);
         BindingPatternUnexpectedToken(classifier);
-        ArrowFormalParametersUnexpectedToken(classifier);
-
-        int pos;
         if (scanner()->current_token() == Token::IDENTIFIER ||
-            scanner()->current_token() == Token::SUPER) {
+            scanner()->current_token() == Token::SUPER ||
+            scanner()->current_token() == Token::ASYNC) {
           // For call of an identifier we want to report position of
           // the identifier as position of the call in the stack trace.
           pos = position();
@@ -2340,7 +2771,18 @@
         }
         Scanner::Location spread_pos;
         typename Traits::Type::ExpressionList args =
-            ParseArguments(&spread_pos, classifier, CHECK_OK);
+            ParseArguments(&spread_pos, is_async, classifier, CHECK_OK);
+
+        if (V8_UNLIKELY(is_async && peek() == Token::ARROW)) {
+          if (args->length()) {
+            // async ( Arguments ) => ...
+            return Traits::ExpressionListToExpression(args);
+          }
+          // async () => ...
+          return factory()->NewEmptyParentheses(pos);
+        }
+
+        ArrowFormalParametersUnexpectedToken(classifier);
 
         // Keep track of eval() calls since they disable all local variable
         // optimizations.
@@ -2372,6 +2814,7 @@
       }
 
       case Token::PERIOD: {
+        CheckNoTailCallExpressions(classifier, CHECK_OK);
         Traits::RewriteNonPattern(classifier, CHECK_OK);
         BindingPatternUnexpectedToken(classifier);
         ArrowFormalParametersUnexpectedToken(classifier);
@@ -2386,6 +2829,7 @@
 
       case Token::TEMPLATE_SPAN:
       case Token::TEMPLATE_TAIL: {
+        CheckNoTailCallExpressions(classifier, CHECK_OK);
         Traits::RewriteNonPattern(classifier, CHECK_OK);
         BindingPatternUnexpectedToken(classifier);
         ArrowFormalParametersUnexpectedToken(classifier);
@@ -2399,11 +2843,10 @@
   }
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT
 ParserBase<Traits>::ParseMemberWithNewPrefixesExpression(
-    ExpressionClassifier* classifier, bool* ok) {
+    ExpressionClassifier* classifier, bool* is_async, bool* ok) {
   // NewExpression ::
   //   ('new')+ MemberExpression
   //
@@ -2436,7 +2879,8 @@
     } else if (peek() == Token::PERIOD) {
       return ParseNewTargetExpression(CHECK_OK);
     } else {
-      result = this->ParseMemberWithNewPrefixesExpression(classifier, CHECK_OK);
+      result = this->ParseMemberWithNewPrefixesExpression(classifier, is_async,
+                                                          CHECK_OK);
     }
     Traits::RewriteNonPattern(classifier, CHECK_OK);
     if (peek() == Token::LPAREN) {
@@ -2452,8 +2896,8 @@
         result = factory()->NewCallNew(result, args, new_pos);
       }
       // The expression can still continue with . or [ after the arguments.
-      result =
-          this->ParseMemberExpressionContinuation(result, classifier, CHECK_OK);
+      result = this->ParseMemberExpressionContinuation(result, is_async,
+                                                       classifier, CHECK_OK);
       return result;
     }
     // NewExpression without arguments.
@@ -2461,14 +2905,13 @@
                                  new_pos);
   }
   // No 'new' or 'super' keyword.
-  return this->ParseMemberExpression(classifier, ok);
+  return this->ParseMemberExpression(classifier, is_async, ok);
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT
 ParserBase<Traits>::ParseMemberExpression(ExpressionClassifier* classifier,
-                                          bool* ok) {
+                                          bool* is_async, bool* ok) {
   // MemberExpression ::
   //   (PrimaryExpression | FunctionLiteral | ClassLiteral)
   //     ('[' Expression ']' | '.' Identifier | Arguments | TemplateLiteral)*
@@ -2525,10 +2968,11 @@
     const bool is_new = false;
     result = ParseSuperExpression(is_new, classifier, CHECK_OK);
   } else {
-    result = ParsePrimaryExpression(classifier, CHECK_OK);
+    result = ParsePrimaryExpression(classifier, is_async, CHECK_OK);
   }
 
-  result = ParseMemberExpressionContinuation(result, classifier, CHECK_OK);
+  result =
+      ParseMemberExpressionContinuation(result, is_async, classifier, CHECK_OK);
   return result;
 }
 
@@ -2595,16 +3039,17 @@
   return this->NewTargetExpression(scope_, factory(), pos);
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT
 ParserBase<Traits>::ParseMemberExpressionContinuation(
-    ExpressionT expression, ExpressionClassifier* classifier, bool* ok) {
+    ExpressionT expression, bool* is_async, ExpressionClassifier* classifier,
+    bool* ok) {
   // Parses this part of MemberExpression:
   // ('[' Expression ']' | '.' Identifier | TemplateLiteral)*
   while (true) {
     switch (peek()) {
       case Token::LBRACK: {
+        *is_async = false;
         Traits::RewriteNonPattern(classifier, CHECK_OK);
         BindingPatternUnexpectedToken(classifier);
         ArrowFormalParametersUnexpectedToken(classifier);
@@ -2621,6 +3066,7 @@
         break;
       }
       case Token::PERIOD: {
+        *is_async = false;
         Traits::RewriteNonPattern(classifier, CHECK_OK);
         BindingPatternUnexpectedToken(classifier);
         ArrowFormalParametersUnexpectedToken(classifier);
@@ -2637,6 +3083,7 @@
       }
       case Token::TEMPLATE_SPAN:
       case Token::TEMPLATE_TAIL: {
+        *is_async = false;
         Traits::RewriteNonPattern(classifier, CHECK_OK);
         BindingPatternUnexpectedToken(classifier);
         ArrowFormalParametersUnexpectedToken(classifier);
@@ -2790,28 +3237,32 @@
 template <class Traits>
 bool ParserBase<Traits>::IsNextLetKeyword() {
   DCHECK(peek() == Token::LET);
-  if (!allow_let()) {
-    return false;
-  }
   Token::Value next_next = PeekAhead();
   switch (next_next) {
     case Token::LBRACE:
     case Token::LBRACK:
     case Token::IDENTIFIER:
     case Token::STATIC:
-    case Token::LET:  // Yes, you can do let let = ... in sloppy mode
+    case Token::LET:  // `let let;` is disallowed by static semantics, but the
+                      // token must be first interpreted as a keyword in order
+                      // for those semantics to apply. This ensures that ASI is
+                      // not honored when a LineTerminator separates the
+                      // tokens.
     case Token::YIELD:
+    case Token::AWAIT:
+    case Token::ASYNC:
       return true;
+    case Token::FUTURE_STRICT_RESERVED_WORD:
+      return is_sloppy(language_mode());
     default:
       return false;
   }
 }
 
-
 template <class Traits>
 typename ParserBase<Traits>::ExpressionT
 ParserBase<Traits>::ParseArrowFunctionLiteral(
-    bool accept_IN, const FormalParametersT& formal_parameters,
+    bool accept_IN, const FormalParametersT& formal_parameters, bool is_async,
     const ExpressionClassifier& formals_classifier, bool* ok) {
   if (peek() == Token::ARROW && scanner_->HasAnyLineTerminatorBeforeNext()) {
     // ASI inserts `;` after arrow parameters if a line terminator is found.
@@ -2828,10 +3279,11 @@
   int expected_property_count = -1;
   Scanner::Location super_loc;
 
+  FunctionKind arrow_kind = is_async ? kAsyncArrowFunction : kArrowFunction;
   {
     typename Traits::Type::Factory function_factory(ast_value_factory());
     FunctionState function_state(&function_state_, &scope_,
-                                 formal_parameters.scope, kArrowFunction,
+                                 formal_parameters.scope, arrow_kind,
                                  &function_factory);
 
     function_state.SkipMaterializedLiterals(
@@ -2857,7 +3309,7 @@
       } else {
         body = this->ParseEagerFunctionBody(
             this->EmptyIdentifier(), RelocInfo::kNoPosition, formal_parameters,
-            kArrowFunction, FunctionLiteral::kAnonymousExpression, CHECK_OK);
+            arrow_kind, FunctionLiteral::kAnonymousExpression, CHECK_OK);
         materialized_literal_count =
             function_state.materialized_literal_count();
         expected_property_count = function_state.expected_property_count();
@@ -2865,20 +3317,31 @@
     } else {
       // Single-expression body
       int pos = position();
-      parenthesized_function_ = false;
       ExpressionClassifier classifier(this);
-      ExpressionT expression =
-          ParseAssignmentExpression(accept_IN, &classifier, CHECK_OK);
-      Traits::RewriteNonPattern(&classifier, CHECK_OK);
+      DCHECK(ReturnExprContext::kInsideValidBlock ==
+             function_state_->return_expr_context());
+      ReturnExprScope allow_tail_calls(
+          function_state_, ReturnExprContext::kInsideValidReturnStatement);
       body = this->NewStatementList(1, zone());
-      this->AddParameterInitializationBlock(formal_parameters, body, CHECK_OK);
-      body->Add(factory()->NewReturnStatement(expression, pos), zone());
+      this->AddParameterInitializationBlock(formal_parameters, body, is_async,
+                                            CHECK_OK);
+      if (is_async) {
+        this->ParseAsyncArrowSingleExpressionBody(body, accept_IN, &classifier,
+                                                  pos, CHECK_OK);
+        Traits::RewriteNonPattern(&classifier, CHECK_OK);
+      } else {
+        ExpressionT expression =
+            ParseAssignmentExpression(accept_IN, &classifier, CHECK_OK);
+        Traits::RewriteNonPattern(&classifier, CHECK_OK);
+        body->Add(factory()->NewReturnStatement(expression, pos), zone());
+        if (allow_tailcalls() && !is_sloppy(language_mode())) {
+          // ES6 14.6.1 Static Semantics: IsInTailPosition
+          this->MarkTailPosition(expression);
+        }
+      }
       materialized_literal_count = function_state.materialized_literal_count();
       expected_property_count = function_state.expected_property_count();
-      // ES6 14.6.1 Static Semantics: IsInTailPosition
-      if (allow_tailcalls() && !is_sloppy(language_mode())) {
-        this->MarkTailPosition(expression);
-      }
+      this->MarkCollectedTailCallExpressions();
     }
     super_loc = function_state.super_location();
 
@@ -2897,9 +3360,7 @@
       CheckStrictOctalLiteral(formal_parameters.scope->start_position(),
                               scanner()->location().end_pos, CHECK_OK);
     }
-    if (is_strict(language_mode()) || allow_harmony_sloppy()) {
-      this->CheckConflictingVarDeclarations(formal_parameters.scope, CHECK_OK);
-    }
+    this->CheckConflictingVarDeclarations(formal_parameters.scope, CHECK_OK);
 
     Traits::RewriteDestructuringAssignments();
   }
@@ -2909,7 +3370,7 @@
       materialized_literal_count, expected_property_count, num_parameters,
       FunctionLiteral::kNoDuplicateParameters,
       FunctionLiteral::kAnonymousExpression,
-      FunctionLiteral::kShouldLazyCompile, FunctionKind::kArrowFunction,
+      FunctionLiteral::kShouldLazyCompile, arrow_kind,
       formal_parameters.scope->start_position());
 
   function_literal->set_function_token_position(
@@ -2979,6 +3440,7 @@
 
     int expr_pos = peek_position();
     ExpressionT expression = this->ParseExpression(true, classifier, CHECK_OK);
+    CheckNoTailCallExpressions(classifier, CHECK_OK);
     Traits::RewriteNonPattern(classifier, CHECK_OK);
     Traits::AddTemplateExpression(&ts, expression);
 
@@ -3077,13 +3539,12 @@
 #undef CHECK_OK
 #undef CHECK_OK_CUSTOM
 
-
 template <typename Traits>
 void ParserBase<Traits>::ObjectLiteralChecker::CheckProperty(
-    Token::Value property, PropertyKind type, bool is_static, bool is_generator,
+    Token::Value property, PropertyKind type, MethodKind method_type,
     bool* ok) {
-  DCHECK(!is_static);
-  DCHECK(!is_generator || type == kMethodProperty);
+  DCHECK(!IsStaticMethod(method_type));
+  DCHECK(!IsSpecialMethod(method_type) || type == kMethodProperty);
 
   if (property == Token::SMI || property == Token::NUMBER) return;
 
@@ -3098,26 +3559,28 @@
   }
 }
 
-
 template <typename Traits>
 void ParserBase<Traits>::ClassLiteralChecker::CheckProperty(
-    Token::Value property, PropertyKind type, bool is_static, bool is_generator,
+    Token::Value property, PropertyKind type, MethodKind method_type,
     bool* ok) {
   DCHECK(type == kMethodProperty || type == kAccessorProperty);
 
   if (property == Token::SMI || property == Token::NUMBER) return;
 
-  if (is_static) {
+  if (IsStaticMethod(method_type)) {
     if (IsPrototype()) {
       this->parser()->ReportMessage(MessageTemplate::kStaticPrototype);
       *ok = false;
       return;
     }
   } else if (IsConstructor()) {
-    if (is_generator || type == kAccessorProperty) {
+    const bool is_generator = IsGeneratorMethod(method_type);
+    const bool is_async = IsAsyncMethod(method_type);
+    if (is_generator || is_async || type == kAccessorProperty) {
       MessageTemplate::Template msg =
           is_generator ? MessageTemplate::kConstructorIsGenerator
-                       : MessageTemplate::kConstructorIsAccessor;
+                       : is_async ? MessageTemplate::kConstructorIsAsync
+                                  : MessageTemplate::kConstructorIsAccessor;
       this->parser()->ReportMessage(msg);
       *ok = false;
       return;
diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc
index fa2893b..822c49e 100644
--- a/src/parsing/parser.cc
+++ b/src/parsing/parser.cc
@@ -39,7 +39,6 @@
   }
 }
 
-
 ParseInfo::ParseInfo(Zone* zone)
     : zone_(zone),
       flags_(0),
@@ -51,15 +50,14 @@
       unicode_cache_(nullptr),
       stack_limit_(0),
       hash_seed_(0),
+      isolate_(nullptr),
       cached_data_(nullptr),
       ast_value_factory_(nullptr),
       literal_(nullptr),
       scope_(nullptr) {}
 
-
 ParseInfo::ParseInfo(Zone* zone, Handle<JSFunction> function)
     : ParseInfo(zone, Handle<SharedFunctionInfo>(function->shared())) {
-  set_closure(function);
   set_context(Handle<Context>(function->context()));
 }
 
@@ -332,6 +330,10 @@
   return identifier == parser_->ast_value_factory()->undefined_string();
 }
 
+bool ParserTraits::IsAwait(const AstRawString* identifier) const {
+  return identifier == parser_->ast_value_factory()->await_string();
+}
+
 bool ParserTraits::IsPrototype(const AstRawString* identifier) const {
   return identifier == parser_->ast_value_factory()->prototype_string();
 }
@@ -604,8 +606,7 @@
 const AstRawString* ParserTraits::GetNumberAsSymbol(Scanner* scanner) {
   double double_value = parser_->scanner()->DoubleValue();
   char array[100];
-  const char* string =
-      DoubleToCString(double_value, Vector<char>(array, arraysize(array)));
+  const char* string = DoubleToCString(double_value, ArrayVector(array));
   return parser_->ast_value_factory()->GetOneByteString(string);
 }
 
@@ -768,6 +769,10 @@
   expression->MarkTail();
 }
 
+void ParserTraits::MarkCollectedTailCallExpressions() {
+  parser_->MarkCollectedTailCallExpressions();
+}
+
 Parser::Parser(ParseInfo* info)
     : ParserBase<ParserTraits>(info->zone(), &scanner_, info->stack_limit(),
                                info->extension(), info->ast_value_factory(),
@@ -789,16 +794,15 @@
   set_allow_natives(FLAG_allow_natives_syntax || info->is_native());
   set_allow_tailcalls(FLAG_harmony_tailcalls && !info->is_native() &&
                       info->isolate()->is_tail_call_elimination_enabled());
-  set_allow_harmony_sloppy(FLAG_harmony_sloppy);
-  set_allow_harmony_sloppy_function(FLAG_harmony_sloppy_function);
-  set_allow_harmony_sloppy_let(FLAG_harmony_sloppy_let);
   set_allow_harmony_do_expressions(FLAG_harmony_do_expressions);
+  set_allow_harmony_for_in(FLAG_harmony_for_in);
   set_allow_harmony_function_name(FLAG_harmony_function_name);
   set_allow_harmony_function_sent(FLAG_harmony_function_sent);
   set_allow_harmony_restrictive_declarations(
       FLAG_harmony_restrictive_declarations);
   set_allow_harmony_exponentiation_operator(
       FLAG_harmony_exponentiation_operator);
+  set_allow_harmony_async_await(FLAG_harmony_async_await);
   for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount;
        ++feature) {
     use_counts_[feature] = 0;
@@ -821,6 +825,7 @@
   DCHECK(parsing_on_main_thread_);
 
   HistogramTimerScope timer_scope(isolate->counters()->parse(), true);
+  RuntimeCallTimerScope runtime_timer(isolate, &RuntimeCallStats::Parse);
   TRACE_EVENT0("v8", "V8.Parse");
   Handle<String> source(String::cast(info->script()->source()));
   isolate->counters()->total_parse_size()->Increment(source->length());
@@ -925,15 +930,16 @@
     FunctionState function_state(&function_state_, &scope_, scope,
                                  kNormalFunction, &function_factory);
 
-    // Don't count the mode in the use counters--give the program a chance
-    // to enable script/module-wide strict mode below.
-    scope_->SetLanguageMode(info->language_mode());
     ZoneList<Statement*>* body = new(zone()) ZoneList<Statement*>(16, zone());
     bool ok = true;
     int beg_pos = scanner()->location().beg_pos;
-    if (info->is_module()) {
+    parsing_module_ = info->is_module();
+    if (parsing_module_) {
       ParseModuleItemList(body, &ok);
     } else {
+      // Don't count the mode in the use counters--give the program a chance
+      // to enable script-wide strict mode below.
+      scope_->SetLanguageMode(info->language_mode());
       ParseStatementList(body, Token::EOS, &ok);
     }
 
@@ -943,8 +949,10 @@
 
     if (ok && is_strict(language_mode())) {
       CheckStrictOctalLiteral(beg_pos, scanner()->location().end_pos, &ok);
+      CheckDecimalLiteralWithLeadingZero(use_counts_, beg_pos,
+                                         scanner()->location().end_pos);
     }
-    if (ok && is_sloppy(language_mode()) && allow_harmony_sloppy_function()) {
+    if (ok && is_sloppy(language_mode())) {
       // TODO(littledan): Function bindings on the global object that modify
       // pre-existing bindings should be made writable, enumerable and
       // nonconfigurable if possible, whereas this code will leave attributes
@@ -984,6 +992,7 @@
   // It's OK to use the Isolate & counters here, since this function is only
   // called in the main thread.
   DCHECK(parsing_on_main_thread_);
+  RuntimeCallTimerScope runtime_timer(isolate, &RuntimeCallStats::ParseLazy);
   HistogramTimerScope timer_scope(isolate->counters()->parse_lazy());
   TRACE_EVENT0("v8", "V8.ParseLazy");
   Handle<String> source(String::cast(info->script()->source()));
@@ -1054,12 +1063,12 @@
     // Parse the function literal.
     Scope* scope = NewScope(scope_, SCRIPT_SCOPE);
     info->set_script_scope(scope);
-    if (!info->closure().is_null()) {
+    if (!info->context().is_null()) {
       // Ok to use Isolate here, since lazy function parsing is only done in the
       // main thread.
       DCHECK(parsing_on_main_thread_);
-      scope = Scope::DeserializeScopeChain(isolate, zone(),
-                                           info->closure()->context(), scope);
+      scope = Scope::DeserializeScopeChain(isolate, zone(), *info->context(),
+                                           scope);
     }
     original_scope_ = scope;
     AstNodeFactory function_factory(ast_value_factory());
@@ -1073,6 +1082,13 @@
     bool ok = true;
 
     if (shared_info->is_arrow()) {
+      bool is_async = allow_harmony_async_await() && shared_info->is_async();
+      if (is_async) {
+        DCHECK(!scanner()->HasAnyLineTerminatorAfterNext());
+        Consume(Token::ASYNC);
+        DCHECK(peek_any_identifier() || peek() == Token::LPAREN);
+      }
+
       // TODO(adamk): We should construct this scope from the ScopeInfo.
       Scope* scope =
           NewScope(scope_, FUNCTION_SCOPE, FunctionKind::kArrowFunction);
@@ -1113,8 +1129,8 @@
         checkpoint.Restore(&formals.materialized_literals_count);
         // Pass `accept_IN=true` to ParseArrowFunctionLiteral --- This should
         // not be observable, or else the preparser would have failed.
-        Expression* expression =
-            ParseArrowFunctionLiteral(true, formals, formals_classifier, &ok);
+        Expression* expression = ParseArrowFunctionLiteral(
+            true, formals, is_async, formals_classifier, &ok);
         if (ok) {
           // Scanning must end at the same position that was recorded
           // previously. If not, parsing has been interrupted due to a stack
@@ -1253,18 +1269,15 @@
   // StatementListItem:
   //    Statement
   //    Declaration
-
-  switch (peek()) {
+  const Token::Value peeked = peek();
+  switch (peeked) {
     case Token::FUNCTION:
-      return ParseFunctionDeclaration(NULL, ok);
+      return ParseHoistableDeclaration(NULL, ok);
     case Token::CLASS:
       Consume(Token::CLASS);
       return ParseClassDeclaration(NULL, ok);
     case Token::CONST:
-      if (allow_const()) {
-        return ParseVariableStatement(kStatementListItem, NULL, ok);
-      }
-      break;
+      return ParseVariableStatement(kStatementListItem, NULL, ok);
     case Token::VAR:
       return ParseVariableStatement(kStatementListItem, NULL, ok);
     case Token::LET:
@@ -1272,6 +1285,13 @@
         return ParseVariableStatement(kStatementListItem, NULL, ok);
       }
       break;
+    case Token::ASYNC:
+      if (allow_harmony_async_await() && PeekAhead() == Token::FUNCTION &&
+          !scanner()->HasAnyLineTerminatorAfterNext()) {
+        Consume(Token::ASYNC);
+        return ParseAsyncFunctionDeclaration(NULL, ok);
+      }
+    /* falls through */
     default:
       break;
   }
@@ -1306,7 +1326,6 @@
   //    ModuleItem*
 
   DCHECK(scope_->is_module_scope());
-  RaiseLanguageMode(STRICT);
 
   while (peek() != Token::EOS) {
     Statement* stat = ParseModuleItem(CHECK_OK);
@@ -1367,7 +1386,7 @@
     // Keep track of the first reserved word encountered in case our
     // caller needs to report an error.
     if (!reserved_loc->IsValid() &&
-        !Token::IsIdentifier(name_tok, STRICT, false)) {
+        !Token::IsIdentifier(name_tok, STRICT, false, parsing_module_)) {
       *reserved_loc = scanner()->location();
     }
     const AstRawString* local_name = ParseIdentifierName(CHECK_OK);
@@ -1418,7 +1437,8 @@
     if (CheckContextualKeyword(CStrVector("as"))) {
       local_name = ParseIdentifierName(CHECK_OK);
     }
-    if (!Token::IsIdentifier(scanner()->current_token(), STRICT, false)) {
+    if (!Token::IsIdentifier(scanner()->current_token(), STRICT, false,
+                             parsing_module_)) {
       *ok = false;
       ReportMessage(MessageTemplate::kUnexpectedReserved);
       return NULL;
@@ -1427,7 +1447,7 @@
       ReportMessage(MessageTemplate::kStrictEvalArguments);
       return NULL;
     }
-    VariableProxy* proxy = NewUnresolved(local_name, IMPORT);
+    VariableProxy* proxy = NewUnresolved(local_name, CONST);
     ImportDeclaration* declaration =
         factory()->NewImportDeclaration(proxy, import_name, NULL, scope_, pos);
     Declare(declaration, DeclarationDescriptor::NORMAL, true, CHECK_OK);
@@ -1475,7 +1495,7 @@
   if (tok != Token::MUL && tok != Token::LBRACE) {
     const AstRawString* local_name =
         ParseIdentifier(kDontAllowRestrictedIdentifiers, CHECK_OK);
-    VariableProxy* proxy = NewUnresolved(local_name, IMPORT);
+    VariableProxy* proxy = NewUnresolved(local_name, CONST);
     import_default_declaration = factory()->NewImportDeclaration(
         proxy, ast_value_factory()->default_string(), NULL, scope_, pos);
     Declare(import_default_declaration, DeclarationDescriptor::NORMAL, true,
@@ -1561,7 +1581,10 @@
             pos, FunctionLiteral::kDeclaration, language_mode(), CHECK_OK);
         result = factory()->NewEmptyStatement(RelocInfo::kNoPosition);
       } else {
-        result = ParseFunctionDeclaration(pos, is_generator, &names, CHECK_OK);
+        result = ParseHoistableDeclaration(
+            pos, is_generator ? ParseFunctionFlags::kIsGenerator
+                              : ParseFunctionFlags::kIsNormal,
+            &names, CHECK_OK);
       }
       break;
     }
@@ -1580,6 +1603,30 @@
       }
       break;
 
+    case Token::ASYNC:
+      if (allow_harmony_async_await() && PeekAhead() == Token::FUNCTION &&
+          !scanner()->HasAnyLineTerminatorAfterNext()) {
+        Consume(Token::ASYNC);
+        Consume(Token::FUNCTION);
+        int pos = position();
+        if (peek() == Token::LPAREN) {
+          // AsyncFunctionDeclaration[+Default] ::
+          //   async [no LineTerminator here] function ( FormalParameters ) {
+          //      AsyncFunctionBody
+          //   }
+          default_export = ParseFunctionLiteral(
+              default_string, Scanner::Location::invalid(),
+              kSkipFunctionNameCheck, FunctionKind::kAsyncFunction, pos,
+              FunctionLiteral::kDeclaration, language_mode(), CHECK_OK);
+          result = factory()->NewEmptyStatement(RelocInfo::kNoPosition);
+        } else {
+          result = ParseHoistableDeclaration(pos, ParseFunctionFlags::kIsAsync,
+                                             &names, CHECK_OK);
+        }
+        break;
+      }
+    /* falls through */
+
     default: {
       int pos = peek_position();
       ExpressionClassifier classifier(this);
@@ -1690,7 +1737,7 @@
     }
 
     case Token::FUNCTION:
-      result = ParseFunctionDeclaration(&names, CHECK_OK);
+      result = ParseHoistableDeclaration(&names, CHECK_OK);
       break;
 
     case Token::CLASS:
@@ -1704,6 +1751,14 @@
       result = ParseVariableStatement(kStatementListItem, &names, CHECK_OK);
       break;
 
+    case Token::ASYNC:
+      if (allow_harmony_async_await()) {
+        Consume(Token::ASYNC);
+        result = ParseAsyncFunctionDeclaration(&names, CHECK_OK);
+        break;
+      }
+    /* falls through */
+
     default:
       *ok = false;
       ReportUnexpectedToken(scanner()->current_token());
@@ -1881,6 +1936,7 @@
   DCHECK(proxy->raw_name() != NULL);
   const AstRawString* name = proxy->raw_name();
   VariableMode mode = declaration->mode();
+  DCHECK(IsDeclaredVariableMode(mode) && mode != CONST_LEGACY);
   bool is_function_declaration = declaration->IsFunctionDeclaration();
   if (scope == nullptr) scope = scope_;
   Scope* declaration_scope =
@@ -1912,11 +1968,8 @@
       }
       var = declaration_scope->DeclareLocal(
           name, mode, declaration->initialization(), kind, kNotAssigned);
-    } else if ((IsLexicalVariableMode(mode) ||
-                IsLexicalVariableMode(var->mode())) &&
-               // Lexical bindings may appear for some parameters in sloppy
-               // mode even with --harmony-sloppy off.
-               (is_strict(language_mode()) || allow_harmony_sloppy())) {
+    } else if (IsLexicalVariableMode(mode) ||
+               IsLexicalVariableMode(var->mode())) {
       // Allow duplicate function decls for web compat, see bug 4693.
       if (is_sloppy(language_mode()) && is_function_declaration &&
           var->is_function()) {
@@ -1986,14 +2039,6 @@
   // RuntimeHidden_DeclareLookupSlot calls.
   declaration_scope->AddDeclaration(declaration);
 
-  if (mode == CONST_LEGACY && declaration_scope->is_script_scope()) {
-    // For global const variables we bind the proxy to a variable.
-    DCHECK(resolve);  // should be set by all callers
-    Variable::Kind kind = Variable::NORMAL;
-    var = new (zone()) Variable(declaration_scope, name, mode, kind,
-                                kNeedsInitialization, kNotAssigned);
-  }
-
   // If requested and we have a local variable, bind the proxy to the variable
   // at parse-time. This is used for functions (and consts) declared inside
   // statements: the corresponding function (or const) variable must be in the
@@ -2069,17 +2114,33 @@
 }
 
 
-Statement* Parser::ParseFunctionDeclaration(
+Statement* Parser::ParseHoistableDeclaration(
     ZoneList<const AstRawString*>* names, bool* ok) {
   Expect(Token::FUNCTION, CHECK_OK);
   int pos = position();
-  bool is_generator = Check(Token::MUL);
-  return ParseFunctionDeclaration(pos, is_generator, names, ok);
+  ParseFunctionFlags flags = ParseFunctionFlags::kIsNormal;
+  if (Check(Token::MUL)) {
+    flags |= ParseFunctionFlags::kIsGenerator;
+  }
+  return ParseHoistableDeclaration(pos, flags, names, ok);
 }
 
+Statement* Parser::ParseAsyncFunctionDeclaration(
+    ZoneList<const AstRawString*>* names, bool* ok) {
+  DCHECK_EQ(scanner()->current_token(), Token::ASYNC);
+  int pos = position();
+  if (scanner()->HasAnyLineTerminatorBeforeNext()) {
+    *ok = false;
+    ReportUnexpectedToken(scanner()->current_token());
+    return nullptr;
+  }
+  Expect(Token::FUNCTION, CHECK_OK);
+  ParseFunctionFlags flags = ParseFunctionFlags::kIsAsync;
+  return ParseHoistableDeclaration(pos, flags, names, ok);
+}
 
-Statement* Parser::ParseFunctionDeclaration(
-    int pos, bool is_generator, ZoneList<const AstRawString*>* names,
+Statement* Parser::ParseHoistableDeclaration(
+    int pos, ParseFunctionFlags flags, ZoneList<const AstRawString*>* names,
     bool* ok) {
   // FunctionDeclaration ::
   //   'function' Identifier '(' FormalParameters ')' '{' FunctionBody '}'
@@ -2087,10 +2148,21 @@
   //   'function' '*' Identifier '(' FormalParameters ')' '{' FunctionBody '}'
   //
   // 'function' and '*' (if present) have been consumed by the caller.
+  const bool is_generator = flags & ParseFunctionFlags::kIsGenerator;
+  const bool is_async = flags & ParseFunctionFlags::kIsAsync;
+  DCHECK(!is_generator || !is_async);
+
   bool is_strict_reserved = false;
   const AstRawString* name = ParseIdentifierOrStrictReservedWord(
       &is_strict_reserved, CHECK_OK);
 
+  if (V8_UNLIKELY(is_async_function() && this->IsAwait(name))) {
+    ReportMessageAt(scanner()->location(),
+                    MessageTemplate::kAwaitBindingIdentifier);
+    *ok = false;
+    return nullptr;
+  }
+
   FuncNameInferrer::State fni_state(fni_);
   if (fni_ != NULL) fni_->PushEnclosingName(name);
   FunctionLiteral* fun = ParseFunctionLiteral(
@@ -2098,7 +2170,8 @@
       is_strict_reserved ? kFunctionNameIsStrictReserved
                          : kFunctionNameValidityUnknown,
       is_generator ? FunctionKind::kGeneratorFunction
-                   : FunctionKind::kNormalFunction,
+                   : is_async ? FunctionKind::kAsyncFunction
+                              : FunctionKind::kNormalFunction,
       pos, FunctionLiteral::kDeclaration, language_mode(), CHECK_OK);
 
   // Even if we're not at the top-level of the global or a function
@@ -2107,18 +2180,15 @@
   // In ES6, a function behaves as a lexical binding, except in
   // a script scope, or the initial scope of eval or another function.
   VariableMode mode =
-      (is_strict(language_mode()) || allow_harmony_sloppy_function()) &&
-      !scope_->is_declaration_scope()
-          ? LET
-          : VAR;
+      (!scope_->is_declaration_scope() || scope_->is_module_scope()) ? LET
+                                                                     : VAR;
   VariableProxy* proxy = NewUnresolved(name, mode);
   Declaration* declaration =
       factory()->NewFunctionDeclaration(proxy, mode, fun, scope_, pos);
   Declare(declaration, DeclarationDescriptor::NORMAL, true, CHECK_OK);
   if (names) names->Add(name, zone());
   EmptyStatement* empty = factory()->NewEmptyStatement(RelocInfo::kNoPosition);
-  if (is_sloppy(language_mode()) && allow_harmony_sloppy_function() &&
-      !scope_->is_declaration_scope()) {
+  if (is_sloppy(language_mode()) && !scope_->is_declaration_scope()) {
     SloppyBlockFunctionStatement* delegate =
         factory()->NewSloppyBlockFunctionStatement(empty, scope_);
     scope_->DeclarationScope()->sloppy_block_function_map()->Declare(name,
@@ -2146,12 +2216,6 @@
   //
   // so rewrite it as such.
 
-  if (!allow_harmony_sloppy() && is_sloppy(language_mode())) {
-    ReportMessage(MessageTemplate::kSloppyLexical);
-    *ok = false;
-    return NULL;
-  }
-
   int pos = position();
   bool is_strict_reserved = false;
   const AstRawString* name =
@@ -2282,12 +2346,11 @@
 
   if (peek() == Token::VAR) {
     Consume(Token::VAR);
-  } else if (peek() == Token::CONST && allow_const()) {
+  } else if (peek() == Token::CONST) {
     Consume(Token::CONST);
-    DCHECK(is_strict(language_mode()) || allow_harmony_sloppy());
     DCHECK(var_context != kStatement);
     parsing_result->descriptor.mode = CONST;
-  } else if (peek() == Token::LET && allow_let()) {
+  } else if (peek() == Token::LET) {
     Consume(Token::LET);
     DCHECK(var_context != kStatement);
     parsing_result->descriptor.mode = LET;
@@ -2370,9 +2433,8 @@
           return nullptr;
         }
 
-        // 'let x' and (legacy) 'const x' initialize 'x' to undefined.
-        if (parsing_result->descriptor.mode == LET ||
-            parsing_result->descriptor.mode == CONST_LEGACY) {
+        // 'let x' initializes 'x' to undefined.
+        if (parsing_result->descriptor.mode == LET) {
           value = GetLiteralUndefined(position());
         }
       }
@@ -2419,6 +2481,23 @@
   return false;
 }
 
+Statement* Parser::ParseFunctionDeclaration(bool* ok) {
+  Consume(Token::FUNCTION);
+  int pos = position();
+  ParseFunctionFlags flags = ParseFunctionFlags::kIsNormal;
+  if (Check(Token::MUL)) {
+    flags |= ParseFunctionFlags::kIsGenerator;
+    if (allow_harmony_restrictive_declarations()) {
+      ParserTraits::ReportMessageAt(scanner()->location(),
+                                    MessageTemplate::kGeneratorInLegacyContext);
+      *ok = false;
+      return nullptr;
+    }
+  }
+
+  return ParseHoistableDeclaration(pos, flags, nullptr, CHECK_OK);
+}
+
 Statement* Parser::ParseExpressionOrLabelledStatement(
     ZoneList<const AstRawString*>* labels,
     AllowLabelledFunctionStatement allow_function, bool* ok) {
@@ -2475,7 +2554,7 @@
     // ES#sec-labelled-function-declarations Labelled Function Declarations
     if (peek() == Token::FUNCTION && is_sloppy(language_mode())) {
       if (allow_function == kAllowLabelledFunctionStatement) {
-        return ParseFunctionDeclaration(labels, ok);
+        return ParseFunctionDeclaration(ok);
       } else {
         return ParseScopedStatement(labels, true, ok);
       }
@@ -2496,15 +2575,6 @@
   }
 
   // Parsed expression statement, followed by semicolon.
-  // Detect attempts at 'let' declarations in sloppy mode.
-  if (!allow_harmony_sloppy_let() && peek() == Token::IDENTIFIER &&
-      expr->AsVariableProxy() != NULL &&
-      expr->AsVariableProxy()->raw_name() ==
-          ast_value_factory()->let_string()) {
-    ReportMessage(MessageTemplate::kSloppyLexical, NULL);
-    *ok = false;
-    return NULL;
-  }
   ExpectSemicolon(CHECK_OK);
   return factory()->NewExpressionStatement(expr, pos);
 }
@@ -2624,9 +2694,13 @@
     }
   } else {
     int pos = peek_position();
-    return_value = ParseExpression(true, CHECK_OK);
 
     if (IsSubclassConstructor(function_state_->kind())) {
+      // Because of the return code rewriting that happens in case of a subclass
+      // constructor we don't want to accept tail calls, therefore we don't set
+      // ReturnExprScope to kInsideValidReturnStatement here.
+      return_value = ParseExpression(true, CHECK_OK);
+
       // For subclass constructors we need to return this in case of undefined
       // return a Smi (transformed into an exception in the ConstructStub)
       // for a non object.
@@ -2665,17 +2739,23 @@
       return_value = factory()->NewConditional(
           is_undefined, ThisExpression(scope_, factory(), pos),
           is_object_conditional, pos);
-    }
+    } else {
+      ReturnExprScope maybe_allow_tail_calls(
+          function_state_, ReturnExprContext::kInsideValidReturnStatement);
+      return_value = ParseExpression(true, CHECK_OK);
 
-    // ES6 14.6.1 Static Semantics: IsInTailPosition
-    if (allow_tailcalls() && !is_sloppy(language_mode())) {
-      function_state_->AddExpressionInTailPosition(return_value);
+      if (allow_tailcalls() && !is_sloppy(language_mode())) {
+        // ES6 14.6.1 Static Semantics: IsInTailPosition
+        function_state_->AddImplicitTailCallExpression(return_value);
+      }
     }
   }
   ExpectSemicolon(CHECK_OK);
 
   if (is_generator()) {
     return_value = BuildIteratorResult(return_value, true);
+  } else if (is_async_function()) {
+    return_value = BuildPromiseResolve(return_value, return_value->position());
   }
 
   result = factory()->NewReturnStatement(return_value, loc.beg_pos);
@@ -2849,40 +2929,6 @@
       factory()->NewThrow(exception, pos), pos);
 }
 
-class Parser::DontCollectExpressionsInTailPositionScope {
- public:
-  DontCollectExpressionsInTailPositionScope(
-      Parser::FunctionState* function_state)
-      : function_state_(function_state),
-        old_value_(function_state->collect_expressions_in_tail_position()) {
-    function_state->set_collect_expressions_in_tail_position(false);
-  }
-  ~DontCollectExpressionsInTailPositionScope() {
-    function_state_->set_collect_expressions_in_tail_position(old_value_);
-  }
-
- private:
-  Parser::FunctionState* function_state_;
-  bool old_value_;
-};
-
-// Collects all return expressions at tail call position in this scope
-// to a separate list.
-class Parser::CollectExpressionsInTailPositionToListScope {
- public:
-  CollectExpressionsInTailPositionToListScope(
-      Parser::FunctionState* function_state, List<Expression*>* list)
-      : function_state_(function_state), list_(list) {
-    function_state->expressions_in_tail_position().Swap(list_);
-  }
-  ~CollectExpressionsInTailPositionToListScope() {
-    function_state_->expressions_in_tail_position().Swap(list_);
-  }
-
- private:
-  Parser::FunctionState* function_state_;
-  List<Expression*>* list_;
-};
 
 TryStatement* Parser::ParseTryStatement(bool* ok) {
   // TryStatement ::
@@ -2901,7 +2947,8 @@
 
   Block* try_block;
   {
-    DontCollectExpressionsInTailPositionScope no_tail_calls(function_state_);
+    ReturnExprScope no_tail_calls(function_state_,
+                                  ReturnExprContext::kInsideTryBlock);
     try_block = ParseBlock(NULL, CHECK_OK);
   }
 
@@ -2915,7 +2962,7 @@
   Scope* catch_scope = NULL;
   Variable* catch_variable = NULL;
   Block* catch_block = NULL;
-  List<Expression*> expressions_in_tail_position_in_catch_block;
+  TailCallExpressionList tail_call_expressions_in_catch_block(zone());
   if (tok == Token::CATCH) {
     Consume(Token::CATCH);
 
@@ -2942,8 +2989,8 @@
 
     {
       CollectExpressionsInTailPositionToListScope
-          collect_expressions_in_tail_position_scope(
-              function_state_, &expressions_in_tail_position_in_catch_block);
+          collect_tail_call_expressions_scope(
+              function_state_, &tail_call_expressions_in_catch_block);
       BlockState block_state(&scope_, catch_scope);
 
       // TODO(adamk): Make a version of ParseBlock that takes a scope and
@@ -2967,8 +3014,11 @@
           descriptor.declaration_pos = pattern->position();
           descriptor.initialization_pos = pattern->position();
 
+          // Initializer position for variables declared by the pattern.
+          const int initializer_position = position();
+
           DeclarationParsingResult::Declaration decl(
-              pattern, pattern->position(),
+              pattern, initializer_position,
               factory()->NewVariableProxy(catch_variable));
 
           Block* init_block =
@@ -3023,14 +3073,23 @@
   if (catch_block != NULL) {
     // For a try-catch construct append return expressions from the catch block
     // to the list of return expressions.
-    function_state_->expressions_in_tail_position().AddAll(
-        expressions_in_tail_position_in_catch_block);
+    function_state_->tail_call_expressions().Append(
+        tail_call_expressions_in_catch_block);
 
     DCHECK(finally_block == NULL);
     DCHECK(catch_scope != NULL && catch_variable != NULL);
     result = factory()->NewTryCatchStatement(try_block, catch_scope,
                                              catch_variable, catch_block, pos);
   } else {
+    if (FLAG_harmony_explicit_tailcalls &&
+        tail_call_expressions_in_catch_block.has_explicit_tail_calls()) {
+      // TODO(ishell): update chapter number.
+      // ES8 XX.YY.ZZ
+      ReportMessageAt(tail_call_expressions_in_catch_block.location(),
+                      MessageTemplate::kUnexpectedTailCallInCatchBlock);
+      *ok = false;
+      return NULL;
+    }
     DCHECK(finally_block != NULL);
     result = factory()->NewTryFinallyStatement(try_block, finally_block, pos);
   }
@@ -3125,11 +3184,10 @@
 
 void Parser::InitializeForEachStatement(ForEachStatement* stmt,
                                         Expression* each, Expression* subject,
-                                        Statement* body) {
+                                        Statement* body, int each_keyword_pos) {
   ForOfStatement* for_of = stmt->AsForOfStatement();
   if (for_of != NULL) {
-    InitializeForOfStatement(for_of, each, subject, body,
-                             RelocInfo::kNoPosition);
+    InitializeForOfStatement(for_of, each, subject, body, each_keyword_pos);
   } else {
     if (each->IsArrayLiteral() || each->IsObjectLiteral()) {
       Variable* temp =
@@ -3148,13 +3206,13 @@
       body = block;
       each = factory()->NewVariableProxy(temp);
     }
-    stmt->Initialize(each, subject, body);
+    stmt->AsForInStatement()->Initialize(each, subject, body);
   }
 }
 
 void Parser::InitializeForOfStatement(ForOfStatement* for_of, Expression* each,
                                       Expression* iterable, Statement* body,
-                                      int iterable_pos) {
+                                      int next_result_pos) {
   Variable* iterator =
       scope_->NewTemporary(ast_value_factory()->dot_iterator_string());
   Variable* result =
@@ -3165,14 +3223,7 @@
   Expression* result_done;
   Expression* assign_each;
 
-  // Hackily disambiguate o from o.next and o [Symbol.iterator]().
-  // TODO(verwaest): Come up with a better solution.
-  int get_iterator_pos = iterable_pos != RelocInfo::kNoPosition
-                             ? iterable_pos
-                             : iterable->position() - 2;
-  int next_result_pos = iterable_pos != RelocInfo::kNoPosition
-                            ? iterable_pos
-                            : iterable->position() - 1;
+  int get_iterator_pos = iterable->position();
 
   // iterator = iterable[Symbol.iterator]()
   assign_iterator = factory()->NewAssignment(
@@ -3212,8 +3263,8 @@
     }
   }
 
-  for_of->Initialize(each, iterable, body, iterator, assign_iterator,
-                     next_result, result_done, assign_each);
+  for_of->Initialize(body, iterator, assign_iterator, next_result, result_done,
+                     assign_each);
 }
 
 Statement* Parser::DesugarLexicalBindingsInForStatement(
@@ -3476,9 +3527,10 @@
     // Make a block around the statement for a lexical binding
     // is introduced by a FunctionDeclaration.
     Scope* body_scope = NewScope(scope_, BLOCK_SCOPE);
+    body_scope->set_start_position(scanner()->location().beg_pos);
     BlockState block_state(&scope_, body_scope);
     Block* block = factory()->NewBlock(NULL, 1, false, RelocInfo::kNoPosition);
-    Statement* body = ParseFunctionDeclaration(NULL, CHECK_OK);
+    Statement* body = ParseFunctionDeclaration(CHECK_OK);
     block->statements()->Add(body, zone());
     body_scope->set_end_position(scanner()->location().end_pos);
     body_scope = body_scope->FinalizeBlockScope();
@@ -3500,10 +3552,10 @@
   Expect(Token::FOR, CHECK_OK);
   Expect(Token::LPAREN, CHECK_OK);
   for_scope->set_start_position(scanner()->location().beg_pos);
-  bool is_let_identifier_expression = false;
+  for_scope->set_is_hidden();
   DeclarationParsingResult parsing_result;
   if (peek() != Token::SEMICOLON) {
-    if (peek() == Token::VAR || (peek() == Token::CONST && allow_const()) ||
+    if (peek() == Token::VAR || peek() == Token::CONST ||
         (peek() == Token::LET && IsNextLetKeyword())) {
       ParseVariableDeclarations(kForStatement, &parsing_result, nullptr,
                                 CHECK_OK);
@@ -3527,7 +3579,12 @@
         if (parsing_result.first_initializer_loc.IsValid() &&
             (is_strict(language_mode()) || mode == ForEachStatement::ITERATE ||
              IsLexicalVariableMode(parsing_result.descriptor.mode) ||
-             !decl.pattern->IsVariableProxy())) {
+             !decl.pattern->IsVariableProxy() || allow_harmony_for_in())) {
+          // Only increment the use count if we would have let this through
+          // without the flag.
+          if (allow_harmony_for_in()) {
+            ++use_counts_[v8::Isolate::kForInInitializer];
+          }
           ParserTraits::ReportMessageAt(
               parsing_result.first_initializer_loc,
               MessageTemplate::kForInOfLoopInitializer,
@@ -3541,6 +3598,7 @@
         // special case for legacy for (var/const x =.... in)
         if (!IsLexicalVariableMode(parsing_result.descriptor.mode) &&
             decl.pattern->IsVariableProxy() && decl.initializer != nullptr) {
+          DCHECK(!allow_harmony_for_in());
           ++use_counts_[v8::Isolate::kForInInitializer];
           const AstRawString* name =
               decl.pattern->AsVariableProxy()->raw_name();
@@ -3579,6 +3637,8 @@
             factory()->NewForEachStatement(mode, labels, stmt_pos);
         Target target(&this->target_stack_, loop);
 
+        int each_keyword_position = scanner()->location().beg_pos;
+
         Expression* enumerable;
         if (mode == ForEachStatement::ITERATE) {
           ExpressionClassifier classifier(this);
@@ -3597,8 +3657,8 @@
             factory()->NewBlock(NULL, 3, false, RelocInfo::kNoPosition);
 
         {
-          DontCollectExpressionsInTailPositionScope no_tail_calls(
-              function_state_);
+          ReturnExprScope no_tail_calls(function_state_,
+                                        ReturnExprContext::kInsideForInOfBody);
           BlockState block_state(&scope_, body_scope);
 
           Statement* body = ParseScopedStatement(NULL, true, CHECK_OK);
@@ -3622,7 +3682,8 @@
           body_block->statements()->Add(body, zone());
           VariableProxy* temp_proxy =
               factory()->NewVariableProxy(temp, each_beg_pos, each_end_pos);
-          InitializeForEachStatement(loop, temp_proxy, enumerable, body_block);
+          InitializeForEachStatement(loop, temp_proxy, enumerable, body_block,
+                                     each_keyword_position);
         }
         body_scope->set_end_position(scanner()->location().end_pos);
         body_scope = body_scope->FinalizeBlockScope();
@@ -3678,10 +3739,6 @@
       Expression* expression = ParseExpression(false, &classifier, CHECK_OK);
       int lhs_end_pos = scanner()->location().end_pos;
       ForEachStatement::VisitMode mode = ForEachStatement::ENUMERATE;
-      is_let_identifier_expression =
-          expression->IsVariableProxy() &&
-          expression->AsVariableProxy()->raw_name() ==
-              ast_value_factory()->let_string();
 
       bool is_for_each = CheckInOrOf(&mode, ok);
       if (!*ok) return nullptr;
@@ -3705,6 +3762,8 @@
             factory()->NewForEachStatement(mode, labels, stmt_pos);
         Target target(&this->target_stack_, loop);
 
+        int each_keyword_position = scanner()->location().beg_pos;
+
         Expression* enumerable;
         if (mode == ForEachStatement::ITERATE) {
           ExpressionClassifier classifier(this);
@@ -3719,7 +3778,8 @@
         // For legacy compat reasons, give for loops similar treatment to
         // if statements in allowing a function declaration for a body
         Statement* body = ParseScopedStatement(NULL, true, CHECK_OK);
-        InitializeForEachStatement(loop, expression, enumerable, body);
+        InitializeForEachStatement(loop, expression, enumerable, body,
+                                   each_keyword_position);
 
         Statement* final_loop = loop->IsForOfStatement()
             ? FinalizeForOfStatement(
@@ -3742,13 +3802,6 @@
   Target target(&this->target_stack_, loop);
 
   // Parsed initializer at this point.
-  // Detect attempts at 'let' declarations in sloppy mode.
-  if (!allow_harmony_sloppy_let() && peek() == Token::IDENTIFIER &&
-      is_sloppy(language_mode()) && is_let_identifier_expression) {
-    ReportMessage(MessageTemplate::kSloppyLexical, NULL);
-    *ok = false;
-    return NULL;
-  }
   Expect(Token::SEMICOLON, CHECK_OK);
 
   Expression* cond = NULL;
@@ -3882,16 +3935,9 @@
   return Handle<FixedArray>(FixedArray::cast(value->get(kElementsSlot)));
 }
 
-
 void ParserTraits::ParseArrowFunctionFormalParameters(
-    ParserFormalParameters* parameters, Expression* expr,
-    const Scanner::Location& params_loc, bool* ok) {
-  if (parameters->Arity() >= Code::kMaxArguments) {
-    ReportMessageAt(params_loc, MessageTemplate::kMalformedArrowFunParamList);
-    *ok = false;
-    return;
-  }
-
+    ParserFormalParameters* parameters, Expression* expr, int end_pos,
+    bool* ok) {
   // ArrowFunctionFormals ::
   //    Binary(Token::COMMA, NonTailArrowFunctionFormals, Tail)
   //    Tail
@@ -3912,7 +3958,8 @@
     DCHECK_EQ(binop->op(), Token::COMMA);
     Expression* left = binop->left();
     Expression* right = binop->right();
-    ParseArrowFunctionFormalParameters(parameters, left, params_loc, ok);
+    int comma_pos = binop->position();
+    ParseArrowFunctionFormalParameters(parameters, left, comma_pos, ok);
     if (!*ok) return;
     // LHS of comma expression should be unparenthesized.
     expr = right;
@@ -3949,13 +3996,66 @@
                                      parser_->scope_, parameters->scope);
   }
 
-  // TODO(adamk): params_loc.end_pos is not the correct initializer position,
-  // but it should be conservative enough to trigger hole checks for variables
-  // referenced in the initializer (if any).
-  AddFormalParameter(parameters, expr, initializer, params_loc.end_pos,
-                     is_rest);
+  AddFormalParameter(parameters, expr, initializer, end_pos, is_rest);
 }
 
+void ParserTraits::ParseAsyncArrowSingleExpressionBody(
+    ZoneList<Statement*>* body, bool accept_IN,
+    Type::ExpressionClassifier* classifier, int pos, bool* ok) {
+  parser_->DesugarAsyncFunctionBody(
+      parser_->ast_value_factory()->empty_string(), parser_->scope_, body,
+      classifier, kAsyncArrowFunction, FunctionBody::SingleExpression,
+      accept_IN, pos, ok);
+}
+
+void Parser::DesugarAsyncFunctionBody(const AstRawString* function_name,
+                                      Scope* scope, ZoneList<Statement*>* body,
+                                      ExpressionClassifier* classifier,
+                                      FunctionKind kind, FunctionBody body_type,
+                                      bool accept_IN, int pos, bool* ok) {
+  // function async_function() {
+  //   try {
+  //     .generator_object = %CreateGeneratorObject();
+  //     ... function body ...
+  //   } catch (e) {
+  //     return Promise.reject(e);
+  //   }
+  // }
+  scope->ForceContextAllocation();
+  Variable* temp =
+      scope_->NewTemporary(ast_value_factory()->dot_generator_object_string());
+  function_state_->set_generator_object_variable(temp);
+
+  Expression* init_generator_variable = factory()->NewAssignment(
+      Token::INIT, factory()->NewVariableProxy(temp),
+      BuildCreateJSGeneratorObject(pos, kind), RelocInfo::kNoPosition);
+  body->Add(factory()->NewExpressionStatement(init_generator_variable,
+                                              RelocInfo::kNoPosition),
+            zone());
+
+  Block* try_block = factory()->NewBlock(NULL, 8, true, RelocInfo::kNoPosition);
+
+  ZoneList<Statement*>* inner_body = try_block->statements();
+
+  Expression* return_value = nullptr;
+  if (body_type == FunctionBody::Normal) {
+    ParseStatementList(inner_body, Token::RBRACE, ok);
+    if (!*ok) return;
+    return_value = factory()->NewUndefinedLiteral(RelocInfo::kNoPosition);
+  } else {
+    return_value = ParseAssignmentExpression(accept_IN, classifier, ok);
+    if (!*ok) return;
+    ParserTraits::RewriteNonPattern(classifier, ok);
+    if (!*ok) return;
+  }
+
+  return_value = BuildPromiseResolve(return_value, return_value->position());
+  inner_body->Add(
+      factory()->NewReturnStatement(return_value, return_value->position()),
+      zone());
+  body->Add(BuildRejectPromiseOnException(try_block), zone());
+  scope->set_end_position(scanner()->location().end_pos);
+}
 
 DoExpression* Parser::ParseDoExpression(bool* ok) {
   // AssignmentExpression ::
@@ -3982,9 +4082,15 @@
     Scanner::Location* duplicate_loc, bool* ok) {
   if (expr->IsEmptyParentheses()) return;
 
-  ParseArrowFunctionFormalParameters(parameters, expr, params_loc, ok);
+  ParseArrowFunctionFormalParameters(parameters, expr, params_loc.end_pos, ok);
   if (!*ok) return;
 
+  if (parameters->Arity() > Code::kMaxArguments) {
+    ReportMessageAt(params_loc, MessageTemplate::kMalformedArrowFunParamList);
+    *ok = false;
+    return;
+  }
+
   Type::ExpressionClassifier classifier(parser_);
   if (!parameters->is_simple) {
     classifier.RecordNonSimpleParameter();
@@ -4044,53 +4150,17 @@
     function_name = ast_value_factory()->empty_string();
   }
 
-  // Function declarations are function scoped in normal mode, so they are
-  // hoisted. In harmony block scoping mode they are block scoped, so they
-  // are not hoisted.
-  //
-  // One tricky case are function declarations in a local sloppy-mode eval:
-  // their declaration is hoisted, but they still see the local scope. E.g.,
-  //
-  // function() {
-  //   var x = 0
-  //   try { throw 1 } catch (x) { eval("function g() { return x }") }
-  //   return g()
-  // }
-  //
-  // needs to return 1. To distinguish such cases, we need to detect
-  // (1) whether a function stems from a sloppy eval, and
-  // (2) whether it actually hoists across the eval.
-  // Unfortunately, we do not represent sloppy eval scopes, so we do not have
-  // either information available directly, especially not when lazily compiling
-  // a function like 'g'. We hence rely on the following invariants:
-  // - (1) is the case iff the innermost scope of the deserialized scope chain
-  //   under which we compile is _not_ a declaration scope. This holds because
-  //   in all normal cases, function declarations are fully hoisted to a
-  //   declaration scope and compiled relative to that.
-  // - (2) is the case iff the current declaration scope is still the original
-  //   one relative to the deserialized scope chain. Otherwise we must be
-  //   compiling a function in an inner declaration scope in the eval, e.g. a
-  //   nested function, and hoisting works normally relative to that.
-  Scope* declaration_scope = scope_->DeclarationScope();
-  Scope* original_declaration_scope = original_scope_->DeclarationScope();
-  Scope* scope = function_type == FunctionLiteral::kDeclaration &&
-                         is_sloppy(language_mode) &&
-                         !allow_harmony_sloppy_function() &&
-                         (original_scope_ == original_declaration_scope ||
-                          declaration_scope != original_declaration_scope)
-                     ? NewScope(declaration_scope, FUNCTION_SCOPE, kind)
-                     : NewScope(scope_, FUNCTION_SCOPE, kind);
+  Scope* scope = NewScope(scope_, FUNCTION_SCOPE, kind);
   SetLanguageMode(scope, language_mode);
   ZoneList<Statement*>* body = NULL;
   int arity = -1;
   int materialized_literal_count = -1;
   int expected_property_count = -1;
   DuplicateFinder duplicate_finder(scanner()->unicode_cache());
-  FunctionLiteral::EagerCompileHint eager_compile_hint =
-      parenthesized_function_ ? FunctionLiteral::kShouldEagerCompile
-                              : FunctionLiteral::kShouldLazyCompile;
   bool should_be_used_once_hint = false;
   bool has_duplicate_parameters;
+  FunctionLiteral::EagerCompileHint eager_compile_hint;
+
   // Parse function.
   {
     AstNodeFactory function_factory(ast_value_factory());
@@ -4099,6 +4169,10 @@
     scope_->SetScopeName(function_name);
     ExpressionClassifier formals_classifier(this, &duplicate_finder);
 
+    eager_compile_hint = function_state_->this_function_is_parenthesized()
+                             ? FunctionLiteral::kShouldEagerCompile
+                             : FunctionLiteral::kShouldLazyCompile;
+
     if (is_generator) {
       // For generators, allocating variables in contexts is currently a win
       // because it minimizes the work needed to suspend and resume an
@@ -4126,7 +4200,6 @@
     CheckArityRestrictions(arity, kind, formals.has_rest, start_position,
                            formals_end_position, CHECK_OK);
     Expect(Token::LBRACE, CHECK_OK);
-
     // Don't include the rest parameter into the function's formal parameter
     // count (esp. the SharedFunctionInfo::internal_formal_parameter_count,
     // which says whether we need to create an arguments adaptor frame).
@@ -4167,8 +4240,7 @@
     // logic where only top-level functions will be parsed lazily.
     bool is_lazily_parsed = mode() == PARSE_LAZILY &&
                             scope_->AllowsLazyParsing() &&
-                            !parenthesized_function_;
-    parenthesized_function_ = false;  // The bit was set for this function only.
+                            !function_state_->this_function_is_parenthesized();
 
     // Eager or lazy parse?
     // If is_lazily_parsed, we'll parse lazy. If we can set a bookmark, we'll
@@ -4211,10 +4283,13 @@
       //   FunctionExpression; even without enclosing parentheses it might be
       //   immediately invoked.
       // - The function literal shouldn't be hinted to eagerly compile.
+      // - For asm.js functions the body needs to be available when module
+      //   validation is active, because we examine the entire module at once.
       bool use_temp_zone =
           FLAG_lazy && !allow_natives() && extension_ == NULL && allow_lazy() &&
           function_type == FunctionLiteral::kDeclaration &&
-          eager_compile_hint != FunctionLiteral::kShouldEagerCompile;
+          eager_compile_hint != FunctionLiteral::kShouldEagerCompile &&
+          !(FLAG_validate_asm && scope->asm_function());
       // Open a new BodyScope, which sets our AstNodeFactory to allocate in the
       // new temporary zone if the preconditions are satisfied, and ensures that
       // the previous zone is always restored after parsing the body.
@@ -4253,8 +4328,10 @@
     if (is_strict(language_mode)) {
       CheckStrictOctalLiteral(scope->start_position(), scope->end_position(),
                               CHECK_OK);
+      CheckDecimalLiteralWithLeadingZero(use_counts_, scope->start_position(),
+                                         scope->end_position());
     }
-    if (is_sloppy(language_mode) && allow_harmony_sloppy_function()) {
+    if (is_sloppy(language_mode)) {
       InsertSloppyBlockFunctionVarBindings(scope, CHECK_OK);
     }
     CheckConflictingVarDeclarations(scope, CHECK_OK);
@@ -4283,6 +4360,36 @@
   return function_literal;
 }
 
+Expression* Parser::ParseAsyncFunctionExpression(bool* ok) {
+  // AsyncFunctionDeclaration ::
+  //   async [no LineTerminator here] function ( FormalParameters[Await] )
+  //       { AsyncFunctionBody }
+  //
+  //   async [no LineTerminator here] function BindingIdentifier[Await]
+  //       ( FormalParameters[Await] ) { AsyncFunctionBody }
+  DCHECK_EQ(scanner()->current_token(), Token::ASYNC);
+  int pos = position();
+  Expect(Token::FUNCTION, CHECK_OK);
+  bool is_strict_reserved = false;
+  const AstRawString* name = nullptr;
+  FunctionLiteral::FunctionType type = FunctionLiteral::kAnonymousExpression;
+
+  if (peek_any_identifier()) {
+    type = FunctionLiteral::kNamedExpression;
+    name = ParseIdentifierOrStrictReservedWord(&is_strict_reserved, CHECK_OK);
+    if (this->IsAwait(name)) {
+      ReportMessageAt(scanner()->location(),
+                      MessageTemplate::kAwaitBindingIdentifier);
+      *ok = false;
+      return nullptr;
+    }
+  }
+  return ParseFunctionLiteral(name, scanner()->location(),
+                              is_strict_reserved ? kFunctionNameIsStrictReserved
+                                                 : kFunctionNameValidityUnknown,
+                              FunctionKind::kAsyncFunction, pos, type,
+                              language_mode(), CHECK_OK);
+}
 
 void Parser::SkipLazyFunctionBody(int* materialized_literal_count,
                                   int* expected_property_count, bool* ok,
@@ -4473,12 +4580,18 @@
     if (!parameter.is_simple() && scope_->calls_sloppy_eval()) {
       param_scope = NewScope(scope_, BLOCK_SCOPE);
       param_scope->set_is_declaration_scope();
-      param_scope->set_start_position(parameter.pattern->position());
-      param_scope->set_end_position(RelocInfo::kNoPosition);
+      param_scope->set_start_position(descriptor.initialization_pos);
+      param_scope->set_end_position(parameter.initializer_end_position);
       param_scope->RecordEvalCall();
       param_block = factory()->NewBlock(NULL, 8, true, RelocInfo::kNoPosition);
       param_block->set_scope(param_scope);
       descriptor.hoist_scope = scope_;
+      // Pass the appropriate scope in so that PatternRewriter can appropriately
+      // rewrite inner initializers of the pattern to param_scope
+      descriptor.scope = param_scope;
+      // Rewrite the outer initializer to point to param_scope
+      RewriteParameterInitializerScope(stack_limit(), initial_value, scope_,
+                                       param_scope);
     }
 
     {
@@ -4500,6 +4613,57 @@
   return init_block;
 }
 
+Block* Parser::BuildRejectPromiseOnException(Block* block) {
+  // try { <block> } catch (error) { return Promise.reject(error); }
+  Block* try_block = block;
+  Scope* catch_scope = NewScope(scope_, CATCH_SCOPE);
+  catch_scope->set_is_hidden();
+  Variable* catch_variable =
+      catch_scope->DeclareLocal(ast_value_factory()->dot_catch_string(), VAR,
+                                kCreatedInitialized, Variable::NORMAL);
+  Block* catch_block =
+      factory()->NewBlock(nullptr, 1, true, RelocInfo::kNoPosition);
+
+  Expression* promise_reject = BuildPromiseReject(
+      factory()->NewVariableProxy(catch_variable), RelocInfo::kNoPosition);
+
+  ReturnStatement* return_promise_reject =
+      factory()->NewReturnStatement(promise_reject, RelocInfo::kNoPosition);
+  catch_block->statements()->Add(return_promise_reject, zone());
+  TryStatement* try_catch_statement =
+      factory()->NewTryCatchStatement(try_block, catch_scope, catch_variable,
+                                      catch_block, RelocInfo::kNoPosition);
+
+  block = factory()->NewBlock(nullptr, 1, true, RelocInfo::kNoPosition);
+  block->statements()->Add(try_catch_statement, zone());
+  return block;
+}
+
+Expression* Parser::BuildCreateJSGeneratorObject(int pos, FunctionKind kind) {
+  DCHECK_NOT_NULL(function_state_->generator_object_variable());
+  ZoneList<Expression*>* args = new (zone()) ZoneList<Expression*>(2, zone());
+  args->Add(factory()->NewThisFunction(pos), zone());
+  args->Add(IsArrowFunction(kind)
+                ? GetLiteralUndefined(pos)
+                : ThisExpression(scope_, factory(), RelocInfo::kNoPosition),
+            zone());
+  return factory()->NewCallRuntime(Runtime::kCreateJSGeneratorObject, args,
+                                   pos);
+}
+
+Expression* Parser::BuildPromiseResolve(Expression* value, int pos) {
+  ZoneList<Expression*>* args = new (zone()) ZoneList<Expression*>(1, zone());
+  args->Add(value, zone());
+  return factory()->NewCallRuntime(Context::PROMISE_CREATE_RESOLVED_INDEX, args,
+                                   pos);
+}
+
+Expression* Parser::BuildPromiseReject(Expression* value, int pos) {
+  ZoneList<Expression*>* args = new (zone()) ZoneList<Expression*>(1, zone());
+  args->Add(value, zone());
+  return factory()->NewCallRuntime(Context::PROMISE_CREATE_REJECTED_INDEX, args,
+                                   pos);
+}
 
 ZoneList<Statement*>* Parser::ParseEagerFunctionBody(
     const AstRawString* function_name, int pos,
@@ -4553,10 +4717,7 @@
           factory()->NewBlock(nullptr, 3, false, RelocInfo::kNoPosition);
 
       {
-        ZoneList<Expression*>* arguments =
-            new (zone()) ZoneList<Expression*>(0, zone());
-        CallRuntime* allocation = factory()->NewCallRuntime(
-            Runtime::kCreateJSGeneratorObject, arguments, pos);
+        Expression* allocation = BuildCreateJSGeneratorObject(pos, kind);
         VariableProxy* init_proxy = factory()->NewVariableProxy(
             function_state_->generator_object_variable());
         Assignment* assignment = factory()->NewAssignment(
@@ -4592,6 +4753,10 @@
       body->Add(factory()->NewTryFinallyStatement(try_block, finally_block,
                                                   RelocInfo::kNoPosition),
                 zone());
+    } else if (IsAsyncFunction(kind)) {
+      const bool accept_IN = true;
+      DesugarAsyncFunctionBody(function_name, inner_scope, body, nullptr, kind,
+                               FunctionBody::Normal, accept_IN, pos, CHECK_OK);
     } else {
       ParseStatementList(body, Token::RBRACE, CHECK_OK);
     }
@@ -4613,6 +4778,11 @@
     DCHECK_EQ(body, inner_block->statements());
     SetLanguageMode(scope_, inner_scope->language_mode());
     Block* init_block = BuildParameterInitializationBlock(parameters, CHECK_OK);
+
+    if (IsAsyncFunction(kind)) {
+      init_block = BuildRejectPromiseOnException(init_block);
+    }
+
     DCHECK_NOT_NULL(init_block);
 
     inner_scope->set_end_position(scanner()->location().end_pos);
@@ -4650,13 +4820,7 @@
                     RelocInfo::kNoPosition));
   }
 
-  // ES6 14.6.1 Static Semantics: IsInTailPosition
-  // Mark collected return expressions that are in tail call position.
-  const List<Expression*>& expressions_in_tail_position =
-      function_state_->expressions_in_tail_position();
-  for (int i = 0; i < expressions_in_tail_position.length(); ++i) {
-    MarkTailPosition(expressions_in_tail_position[i]);
-  }
+  MarkCollectedTailCallExpressions();
   return result;
 }
 
@@ -4678,19 +4842,18 @@
     reusable_preparser_->set_allow_lazy(true);
 #define SET_ALLOW(name) reusable_preparser_->set_allow_##name(allow_##name());
     SET_ALLOW(natives);
-    SET_ALLOW(harmony_sloppy);
-    SET_ALLOW(harmony_sloppy_function);
-    SET_ALLOW(harmony_sloppy_let);
     SET_ALLOW(harmony_do_expressions);
+    SET_ALLOW(harmony_for_in);
     SET_ALLOW(harmony_function_name);
     SET_ALLOW(harmony_function_sent);
     SET_ALLOW(harmony_exponentiation_operator);
     SET_ALLOW(harmony_restrictive_declarations);
+    SET_ALLOW(harmony_async_await);
 #undef SET_ALLOW
   }
   PreParser::PreParseResult result = reusable_preparser_->PreParseLazyFunction(
       language_mode(), function_state_->kind(), scope_->has_simple_parameters(),
-      logger, bookmark);
+      parsing_module_, logger, bookmark, use_counts_);
   if (pre_parse_timer_ != NULL) {
     pre_parse_timer_->Stop();
   }
@@ -4733,6 +4896,7 @@
     block_scope->set_start_position(scanner()->location().end_pos);
     ExpressionClassifier extends_classifier(this);
     extends = ParseLeftHandSideExpression(&extends_classifier, CHECK_OK);
+    CheckNoTailCallExpressions(&extends_classifier, CHECK_OK);
     RewriteNonPattern(&extends_classifier, CHECK_OK);
     if (classifier != nullptr) {
       classifier->Accumulate(&extends_classifier,
@@ -4755,13 +4919,12 @@
     if (Check(Token::SEMICOLON)) continue;
     FuncNameInferrer::State fni_state(fni_);
     const bool in_class = true;
-    const bool is_static = false;
     bool is_computed_name = false;  // Classes do not care about computed
                                     // property names here.
     ExpressionClassifier property_classifier(this);
     const AstRawString* property_name = nullptr;
     ObjectLiteral::Property* property = ParsePropertyDefinition(
-        &checker, in_class, has_extends, is_static, &is_computed_name,
+        &checker, in_class, has_extends, MethodKind::Normal, &is_computed_name,
         &has_seen_constructor, &property_classifier, &property_name, CHECK_OK);
     RewriteNonPattern(&property_classifier, CHECK_OK);
     if (classifier != nullptr) {
@@ -5379,6 +5542,29 @@
   SetLanguageMode(scope_, old > mode ? old : mode);
 }
 
+void Parser::MarkCollectedTailCallExpressions() {
+  const ZoneList<Expression*>& tail_call_expressions =
+      function_state_->tail_call_expressions().expressions();
+  for (int i = 0; i < tail_call_expressions.length(); ++i) {
+    Expression* expression = tail_call_expressions[i];
+    // If only FLAG_harmony_explicit_tailcalls is enabled then expression
+    // must be a Call expression.
+    DCHECK(FLAG_harmony_tailcalls || !FLAG_harmony_explicit_tailcalls ||
+           expression->IsCall());
+    MarkTailPosition(expression);
+  }
+}
+
+Expression* ParserTraits::ExpressionListToExpression(
+    ZoneList<Expression*>* args) {
+  AstNodeFactory* factory = parser_->factory();
+  Expression* expr = args->at(0);
+  for (int i = 1; i < args->length(); ++i) {
+    expr = factory->NewBinaryOperation(Token::COMMA, expr, args->at(i),
+                                       expr->position());
+  }
+  return expr;
+}
 
 void ParserTraits::RewriteDestructuringAssignments() {
   parser_->RewriteDestructuringAssignments();
@@ -5400,6 +5586,30 @@
   parser_->RewriteNonPattern(classifier, ok);
 }
 
+Expression* ParserTraits::RewriteAwaitExpression(Expression* value, int pos) {
+  // yield %AsyncFunctionAwait(.generator_object, <operand>)
+  Variable* generator_object_variable =
+      parser_->function_state_->generator_object_variable();
+
+  // If generator_object_variable is null,
+  if (!generator_object_variable) return value;
+
+  Expression* generator_object =
+      parser_->factory()->NewVariableProxy(generator_object_variable);
+
+  ZoneList<Expression*>* async_function_await_args =
+      new (zone()) ZoneList<Expression*>(2, zone());
+  async_function_await_args->Add(generator_object, zone());
+  async_function_await_args->Add(value, zone());
+  Expression* async_function_await = parser_->factory()->NewCallRuntime(
+      Context::ASYNC_FUNCTION_AWAIT_INDEX, async_function_await_args,
+      RelocInfo::kNoPosition);
+
+  generator_object =
+      parser_->factory()->NewVariableProxy(generator_object_variable);
+  return parser_->factory()->NewYield(generator_object, async_function_await,
+                                      pos);
+}
 
 Zone* ParserTraits::zone() const {
   return parser_->function_state_->scope()->zone();
@@ -5606,7 +5816,7 @@
           ForEachStatement::ITERATE, nullptr, RelocInfo::kNoPosition);
       InitializeForOfStatement(loop->AsForOfStatement(),
                                factory()->NewVariableProxy(each), subject,
-                               append_body, spread->expression_position());
+                               append_body);
       do_block->statements()->Add(loop, zone());
     }
   }
@@ -5749,15 +5959,19 @@
 //       }
 //     }
 //
-//     output.value;
+//     if (mode === kReturn) {
+//       return {value: output.value, done: true};
+//     }
+//     output.value
 //   }
 //
 // IteratorClose(iterator) expands to the following:
 //
 //   let iteratorReturn = iterator.return;
-//   if (IS_NULL_OR_UNDEFINED(iteratorReturn)) return;
-//   let output = %_Call(iteratorReturn, iterator);
-//   if (!IS_RECEIVER(output)) %ThrowIterResultNotAnObject(output);
+//   if (!IS_NULL_OR_UNDEFINED(iteratorReturn)) {
+//     let output = %_Call(iteratorReturn, iterator);
+//     if (!IS_RECEIVER(output)) %ThrowIterResultNotAnObject(output);
+//   }
 //
 // IteratorClose(iterator, input, output) expands to the following:
 //
@@ -5766,7 +5980,6 @@
 //   output = %_Call(iteratorReturn, iterator, input);
 //   if (!IS_RECEIVER(output)) %ThrowIterResultNotAnObject(output);
 
-
 Expression* ParserTraits::RewriteYieldStar(
     Expression* generator, Expression* iterable, int pos) {
 
@@ -5798,7 +6011,7 @@
   Statement* initialize_mode;
   {
     Expression* mode_proxy = factory->NewVariableProxy(var_mode);
-    Expression* knext = factory->NewSmiLiteral(JSGeneratorObject::NEXT, nopos);
+    Expression* knext = factory->NewSmiLiteral(JSGeneratorObject::kNext, nopos);
     Expression* assignment =
         factory->NewAssignment(Token::ASSIGN, mode_proxy, knext, nopos);
     initialize_mode = factory->NewExpressionStatement(assignment, nopos);
@@ -5929,9 +6142,9 @@
     Statement* throw_call = factory->NewExpressionStatement(call, nopos);
 
     Block* then = factory->NewBlock(nullptr, 4+1, false, nopos);
-    Variable* var_tmp = scope->NewTemporary(avfactory->empty_string());
-    BuildIteratorClose(then->statements(), var_iterator, Nothing<Variable*>(),
-                       var_tmp);
+    parser_->BuildIteratorCloseForCompletion(
+        then->statements(), var_iterator,
+        factory->NewSmiLiteral(Parser::kNormalCompletion, nopos));
     then->statements()->Add(throw_call, zone);
     check_throw = factory->NewIfStatement(
         condition, then, factory->NewEmptyStatement(nopos), nopos);
@@ -5996,7 +6209,7 @@
   {
     Expression* mode_proxy = factory->NewVariableProxy(var_mode);
     Expression* kreturn =
-        factory->NewSmiLiteral(JSGeneratorObject::RETURN, nopos);
+        factory->NewSmiLiteral(JSGeneratorObject::kReturn, nopos);
     Expression* assignment =
         factory->NewAssignment(Token::ASSIGN, mode_proxy, kreturn, nopos);
     set_mode_return = factory->NewExpressionStatement(assignment, nopos);
@@ -6015,7 +6228,7 @@
   Statement* set_mode_next;
   {
     Expression* mode_proxy = factory->NewVariableProxy(var_mode);
-    Expression* knext = factory->NewSmiLiteral(JSGeneratorObject::NEXT, nopos);
+    Expression* knext = factory->NewSmiLiteral(JSGeneratorObject::kNext, nopos);
     Expression* assignment =
         factory->NewAssignment(Token::ASSIGN, mode_proxy, knext, nopos);
     set_mode_next = factory->NewExpressionStatement(assignment, nopos);
@@ -6027,7 +6240,7 @@
   {
     Expression* mode_proxy = factory->NewVariableProxy(var_mode);
     Expression* kthrow =
-        factory->NewSmiLiteral(JSGeneratorObject::THROW, nopos);
+        factory->NewSmiLiteral(JSGeneratorObject::kThrow, nopos);
     Expression* assignment =
         factory->NewAssignment(Token::ASSIGN, mode_proxy, kthrow, nopos);
     set_mode_throw = factory->NewExpressionStatement(assignment, nopos);
@@ -6045,7 +6258,30 @@
   }
 
 
-  // output.value;
+  // if (mode === kReturn) {
+  //   return {value: output.value, done: true};
+  // }
+  Statement* maybe_return_value;
+  {
+    Expression* mode_proxy = factory->NewVariableProxy(var_mode);
+    Expression* kreturn =
+        factory->NewSmiLiteral(JSGeneratorObject::kReturn, nopos);
+    Expression* condition = factory->NewCompareOperation(
+        Token::EQ_STRICT, mode_proxy, kreturn, nopos);
+
+    Expression* output_proxy = factory->NewVariableProxy(var_output);
+    Expression* literal =
+        factory->NewStringLiteral(avfactory->value_string(), nopos);
+    Expression* property = factory->NewProperty(output_proxy, literal, nopos);
+    Statement* return_value =
+        factory->NewReturnStatement(BuildIteratorResult(property, true), nopos);
+
+    maybe_return_value = factory->NewIfStatement(
+        condition, return_value, factory->NewEmptyStatement(nopos), nopos);
+  }
+
+
+  // output.value
   Statement* get_value;
   {
     Expression* output_proxy = factory->NewVariableProxy(var_output);
@@ -6070,6 +6306,7 @@
     catch_block->statements()->Add(set_mode_throw, zone);
 
     Scope* catch_scope = NewScope(scope, CATCH_SCOPE);
+    catch_scope->set_is_hidden();
     const AstRawString* name = avfactory->dot_catch_string();
     Variable* catch_variable =
         catch_scope->DeclareLocal(name, VAR, kCreatedInitialized,
@@ -6104,7 +6341,7 @@
     case_next->Add(factory->NewBreakStatement(switch_mode, nopos), zone);
 
     auto case_return = new (zone) ZoneList<Statement*>(5, zone);
-    BuildIteratorClose(case_return, var_iterator, Just(var_input), var_output);
+    BuildIteratorClose(case_return, var_iterator, var_input, var_output);
     case_return->Add(factory->NewBreakStatement(switch_mode, nopos), zone);
 
     auto case_throw = new (zone) ZoneList<Statement*>(5, zone);
@@ -6115,11 +6352,11 @@
     case_throw->Add(factory->NewBreakStatement(switch_mode, nopos), zone);
 
     auto cases = new (zone) ZoneList<CaseClause*>(3, zone);
-    Expression* knext = factory->NewSmiLiteral(JSGeneratorObject::NEXT, nopos);
+    Expression* knext = factory->NewSmiLiteral(JSGeneratorObject::kNext, nopos);
     Expression* kreturn =
-        factory->NewSmiLiteral(JSGeneratorObject::RETURN, nopos);
+        factory->NewSmiLiteral(JSGeneratorObject::kReturn, nopos);
     Expression* kthrow =
-        factory->NewSmiLiteral(JSGeneratorObject::THROW, nopos);
+        factory->NewSmiLiteral(JSGeneratorObject::kThrow, nopos);
     cases->Add(factory->NewCaseClause(knext, case_next, nopos), zone);
     cases->Add(factory->NewCaseClause(kreturn, case_return, nopos), zone);
     cases->Add(factory->NewCaseClause(kthrow, case_throw, nopos), zone);
@@ -6147,13 +6384,14 @@
     // The rewriter needs to process the get_value statement only, hence we
     // put the preceding statements into an init block.
 
-    Block* do_block_ = factory->NewBlock(nullptr, 6, true, nopos);
+    Block* do_block_ = factory->NewBlock(nullptr, 7, true, nopos);
     do_block_->statements()->Add(initialize_input, zone);
     do_block_->statements()->Add(initialize_mode, zone);
     do_block_->statements()->Add(initialize_output, zone);
     do_block_->statements()->Add(get_iterator, zone);
     do_block_->statements()->Add(validate_iterator, zone);
     do_block_->statements()->Add(loop, zone);
+    do_block_->statements()->Add(maybe_return_value, zone);
 
     Block* do_block = factory->NewBlock(nullptr, 2, false, nopos);
     do_block->statements()->Add(do_block_, zone);
@@ -6167,180 +6405,6 @@
   return yield_star;
 }
 
-// Desugaring of (lhs) instanceof (rhs)
-// ====================================
-//
-// We desugar instanceof into a load of property @@hasInstance on the rhs.
-// We end up with roughly the following code (O, C):
-//
-//   do {
-//     let O = lhs;
-//     let C = rhs;
-//     if (!IS_RECEIVER(C)) throw MakeTypeError(kNonObjectInInstanceOfCheck);
-//     let handler_result = C[Symbol.hasInstance];
-//     if (handler_result === undefined) {
-//       if (!IS_CALLABLE(C)) {
-//         throw MakeTypeError(kCalledNonCallableInstanceOf);
-//       }
-//       handler_result = %_GetOrdinaryHasInstance()
-//       handler_result = %_Call(handler_result, C, O);
-//     } else {
-//       handler_result = !!(%_Call(handler_result, C, O));
-//     }
-//     handler_result;
-//   }
-//
-Expression* ParserTraits::RewriteInstanceof(Expression* lhs, Expression* rhs,
-                                            int pos) {
-  const int nopos = RelocInfo::kNoPosition;
-
-  auto factory = parser_->factory();
-  auto avfactory = parser_->ast_value_factory();
-  auto scope = parser_->scope_;
-  auto zone = parser_->zone();
-
-  // let O = lhs;
-  Variable* var_O = scope->NewTemporary(avfactory->empty_string());
-  Statement* get_O;
-  {
-    Expression* O_proxy = factory->NewVariableProxy(var_O);
-    Expression* assignment =
-        factory->NewAssignment(Token::ASSIGN, O_proxy, lhs, nopos);
-    get_O = factory->NewExpressionStatement(assignment, nopos);
-  }
-
-  // let C = lhs;
-  Variable* var_C = scope->NewTemporary(avfactory->empty_string());
-  Statement* get_C;
-  {
-    Expression* C_proxy = factory->NewVariableProxy(var_C);
-    Expression* assignment =
-        factory->NewAssignment(Token::ASSIGN, C_proxy, rhs, nopos);
-    get_C = factory->NewExpressionStatement(assignment, nopos);
-  }
-
-  // if (!IS_RECEIVER(C)) throw MakeTypeError(kNonObjectInInstanceOfCheck);
-  Statement* validate_C;
-  {
-    auto args = new (zone) ZoneList<Expression*>(1, zone);
-    args->Add(factory->NewVariableProxy(var_C), zone);
-    Expression* is_receiver_call =
-        factory->NewCallRuntime(Runtime::kInlineIsJSReceiver, args, nopos);
-    Expression* call =
-        NewThrowTypeError(MessageTemplate::kNonObjectInInstanceOfCheck,
-                          avfactory->empty_string(), pos);
-    Statement* throw_call = factory->NewExpressionStatement(call, pos);
-
-    validate_C =
-        factory->NewIfStatement(is_receiver_call,
-                                factory->NewEmptyStatement(nopos),
-                                throw_call,
-                                nopos);
-  }
-
-  // let handler_result = C[Symbol.hasInstance];
-  Variable* var_handler_result = scope->NewTemporary(avfactory->empty_string());
-  Statement* initialize_handler;
-  {
-    Expression* hasInstance_symbol_literal =
-        factory->NewSymbolLiteral("hasInstance_symbol", RelocInfo::kNoPosition);
-    Expression* prop = factory->NewProperty(factory->NewVariableProxy(var_C),
-                                            hasInstance_symbol_literal, pos);
-    Expression* handler_proxy = factory->NewVariableProxy(var_handler_result);
-    Expression* assignment =
-        factory->NewAssignment(Token::ASSIGN, handler_proxy, prop, nopos);
-    initialize_handler = factory->NewExpressionStatement(assignment, nopos);
-  }
-
-  // if (handler_result === undefined) {
-  //   if (!IS_CALLABLE(C)) {
-  //     throw MakeTypeError(kCalledNonCallableInstanceOf);
-  //   }
-  //   handler_result = %_GetOrdinaryHasInstance()
-  //   handler_result = %_Call(handler_result, C, O);
-  // } else {
-  //   handler_result = !!%_Call(handler_result, C, O);
-  // }
-  Statement* call_handler;
-  {
-    Expression* condition = factory->NewCompareOperation(
-        Token::EQ_STRICT, factory->NewVariableProxy(var_handler_result),
-        factory->NewUndefinedLiteral(nopos), nopos);
-
-    Block* then_side = factory->NewBlock(nullptr, 3, false, nopos);
-    {
-      Expression* throw_expr =
-          NewThrowTypeError(MessageTemplate::kCalledNonCallableInstanceOf,
-                            avfactory->empty_string(), pos);
-      Statement* validate_C = CheckCallable(var_C, throw_expr, pos);
-
-      ZoneList<Expression*>* empty_args =
-          new (zone) ZoneList<Expression*>(0, zone);
-      Expression* ordinary_has_instance = factory->NewCallRuntime(
-          Runtime::kInlineGetOrdinaryHasInstance, empty_args, pos);
-      Expression* handler_proxy = factory->NewVariableProxy(var_handler_result);
-      Expression* assignment_handler = factory->NewAssignment(
-          Token::ASSIGN, handler_proxy, ordinary_has_instance, nopos);
-      Statement* assignment_get_handler =
-          factory->NewExpressionStatement(assignment_handler, nopos);
-
-      ZoneList<Expression*>* args = new (zone) ZoneList<Expression*>(3, zone);
-      args->Add(factory->NewVariableProxy(var_handler_result), zone);
-      args->Add(factory->NewVariableProxy(var_C), zone);
-      args->Add(factory->NewVariableProxy(var_O), zone);
-      Expression* call =
-          factory->NewCallRuntime(Runtime::kInlineCall, args, pos);
-      Expression* result_proxy = factory->NewVariableProxy(var_handler_result);
-      Expression* assignment =
-          factory->NewAssignment(Token::ASSIGN, result_proxy, call, nopos);
-      Statement* assignment_return =
-          factory->NewExpressionStatement(assignment, nopos);
-
-      then_side->statements()->Add(validate_C, zone);
-      then_side->statements()->Add(assignment_get_handler, zone);
-      then_side->statements()->Add(assignment_return, zone);
-    }
-
-    Statement* else_side;
-    {
-      auto args = new (zone) ZoneList<Expression*>(3, zone);
-      args->Add(factory->NewVariableProxy(var_handler_result), zone);
-      args->Add(factory->NewVariableProxy(var_C), zone);
-      args->Add(factory->NewVariableProxy(var_O), zone);
-      Expression* call =
-          factory->NewCallRuntime(Runtime::kInlineCall, args, nopos);
-      Expression* inner_not =
-          factory->NewUnaryOperation(Token::NOT, call, nopos);
-      Expression* outer_not =
-          factory->NewUnaryOperation(Token::NOT, inner_not, nopos);
-      Expression* result_proxy = factory->NewVariableProxy(var_handler_result);
-      Expression* assignment =
-          factory->NewAssignment(Token::ASSIGN, result_proxy, outer_not, nopos);
-
-      else_side = factory->NewExpressionStatement(assignment, nopos);
-    }
-    call_handler =
-        factory->NewIfStatement(condition, then_side, else_side, nopos);
-  }
-
-  // do { ... }
-  DoExpression* instanceof;
-  {
-    Block* block = factory->NewBlock(nullptr, 5, true, nopos);
-    block->statements()->Add(get_O, zone);
-    block->statements()->Add(get_C, zone);
-    block->statements()->Add(validate_C, zone);
-    block->statements()->Add(initialize_handler, zone);
-    block->statements()->Add(call_handler, zone);
-
-    // Here is the desugared instanceof.
-    instanceof = factory->NewDoExpression(block, var_handler_result, nopos);
-    Rewriter::Rewrite(parser_, instanceof, avfactory);
-  }
-
-  return instanceof;
-}
-
 Statement* ParserTraits::CheckCallable(Variable* var, Expression* error,
                                        int pos) {
   auto factory = parser_->factory();
@@ -6364,22 +6428,19 @@
 }
 
 void ParserTraits::BuildIteratorClose(ZoneList<Statement*>* statements,
-                                      Variable* iterator,
-                                      Maybe<Variable*> input,
+                                      Variable* iterator, Variable* input,
                                       Variable* var_output) {
   //
   // This function adds four statements to [statements], corresponding to the
   // following code:
   //
   //   let iteratorReturn = iterator.return;
-  //   if (IS_NULL_OR_UNDEFINED(iteratorReturn) return |input|;
-  //   output = %_Call(iteratorReturn, iterator|, input|);
+  //   if (IS_NULL_OR_UNDEFINED(iteratorReturn) {
+  //     return {value: input, done: true};
+  //   }
+  //   output = %_Call(iteratorReturn, iterator, input);
   //   if (!IS_RECEIVER(output)) %ThrowIterResultNotAnObject(output);
   //
-  // Here, |...| denotes optional parts, depending on the presence of the
-  // input variable.  The reason for allowing input is that BuildIteratorClose
-  // can then be reused to handle the return case in yield*.
-  //
 
   const int nopos = RelocInfo::kNoPosition;
   auto factory = parser_->factory();
@@ -6401,33 +6462,31 @@
     get_return = factory->NewExpressionStatement(assignment, nopos);
   }
 
-  // if (IS_NULL_OR_UNDEFINED(iteratorReturn) return |input|;
+  // if (IS_NULL_OR_UNDEFINED(iteratorReturn) {
+  //   return {value: input, done: true};
+  // }
   Statement* check_return;
   {
     Expression* condition = factory->NewCompareOperation(
         Token::EQ, factory->NewVariableProxy(var_return),
         factory->NewNullLiteral(nopos), nopos);
 
-    Expression* value = input.IsJust()
-                            ? static_cast<Expression*>(
-                                  factory->NewVariableProxy(input.FromJust()))
-                            : factory->NewUndefinedLiteral(nopos);
+    Expression* value = factory->NewVariableProxy(input);
 
-    Statement* return_input = factory->NewReturnStatement(value, nopos);
+    Statement* return_input =
+        factory->NewReturnStatement(BuildIteratorResult(value, true), nopos);
 
     check_return = factory->NewIfStatement(
         condition, return_input, factory->NewEmptyStatement(nopos), nopos);
   }
 
-  // output = %_Call(iteratorReturn, iterator, |input|);
+  // output = %_Call(iteratorReturn, iterator, input);
   Statement* call_return;
   {
     auto args = new (zone) ZoneList<Expression*>(3, zone);
     args->Add(factory->NewVariableProxy(var_return), zone);
     args->Add(factory->NewVariableProxy(iterator), zone);
-    if (input.IsJust()) {
-      args->Add(factory->NewVariableProxy(input.FromJust()), zone);
-    }
+    args->Add(factory->NewVariableProxy(input), zone);
 
     Expression* call =
         factory->NewCallRuntime(Runtime::kInlineCall, args, nopos);
@@ -6529,8 +6588,8 @@
   Block* maybe_close;
   {
     Block* block = factory->NewBlock(nullptr, 2, true, nopos);
-    parser_->BuildIteratorCloseForCompletion(block->statements(), iter,
-                                             completion);
+    Expression* proxy = factory->NewVariableProxy(completion);
+    parser_->BuildIteratorCloseForCompletion(block->statements(), iter, proxy);
     DCHECK(block->statements()->length() == 2);
 
     maybe_close = factory->NewBlock(nullptr, 1, true, nopos);
@@ -6551,6 +6610,7 @@
     Variable* catch_variable =
         catch_scope->DeclareLocal(avfactory->dot_catch_string(), VAR,
                                   kCreatedInitialized, Variable::NORMAL);
+    catch_scope->set_is_hidden();
 
     Statement* rethrow;
     // We use %ReThrow rather than the ordinary throw because we want to
@@ -6588,7 +6648,7 @@
 
 void ParserTraits::BuildIteratorCloseForCompletion(
     ZoneList<Statement*>* statements, Variable* iterator,
-    Variable* completion) {
+    Expression* completion) {
   //
   // This function adds two statements to [statements], corresponding to the
   // following code:
@@ -6662,6 +6722,7 @@
     Variable* catch_variable = catch_scope->DeclareLocal(
         avfactory->dot_catch_string(), VAR, kCreatedInitialized,
         Variable::NORMAL);
+    catch_scope->set_is_hidden();
 
     try_call_return = factory->NewTryCatchStatement(
         try_block, catch_scope, catch_variable, catch_block, nopos);
@@ -6722,7 +6783,7 @@
   Statement* call_return_carefully;
   {
     Expression* condition = factory->NewCompareOperation(
-        Token::EQ_STRICT, factory->NewVariableProxy(completion),
+        Token::EQ_STRICT, completion,
         factory->NewSmiLiteral(Parser::kThrowCompletion, nopos), nopos);
 
     Block* then_block = factory->NewBlock(nullptr, 2, false, nopos);
diff --git a/src/parsing/parser.h b/src/parsing/parser.h
index c82682e..174b983 100644
--- a/src/parsing/parser.h
+++ b/src/parsing/parser.h
@@ -125,7 +125,6 @@
   // TODO(titzer): these should not be part of ParseInfo.
   //--------------------------------------------------------------------------
   Isolate* isolate() { return isolate_; }
-  Handle<JSFunction> closure() { return closure_; }
   Handle<SharedFunctionInfo> shared_info() { return shared_; }
   Handle<Script> script() { return script_; }
   Handle<Context> context() { return context_; }
@@ -145,7 +144,6 @@
   }
 
   void ReopenHandlesInNewHandleScope() {
-    closure_ = Handle<JSFunction>(*closure_);
     shared_ = Handle<SharedFunctionInfo>(*shared_);
     script_ = Handle<Script>(*script_);
     context_ = Handle<Context>(*context_);
@@ -186,7 +184,6 @@
 
   // TODO(titzer): Move handles and isolate out of ParseInfo.
   Isolate* isolate_;
-  Handle<JSFunction> closure_;
   Handle<SharedFunctionInfo> shared_;
   Handle<Script> script_;
   Handle<Context> context_;
@@ -202,8 +199,6 @@
   void SetFlag(Flag f) { flags_ |= f; }
   void SetFlag(Flag f, bool v) { flags_ = v ? flags_ | f : flags_ & ~f; }
   bool GetFlag(Flag f) const { return (flags_ & f) != 0; }
-
-  void set_closure(Handle<JSFunction> closure) { closure_ = closure; }
 };
 
 class FunctionEntry BASE_EMBEDDED {
@@ -360,6 +355,7 @@
   bool IsArguments(const AstRawString* identifier) const;
   bool IsEvalOrArguments(const AstRawString* identifier) const;
   bool IsUndefined(const AstRawString* identifier) const;
+  bool IsAwait(const AstRawString* identifier) const;
   V8_INLINE bool IsFutureStrictReserved(const AstRawString* identifier) const;
 
   // Returns true if the expression is of type "this.foo".
@@ -376,6 +372,12 @@
     return expression->AsVariableProxy()->raw_name();
   }
 
+  bool IsDirectEvalCall(Expression* expression) {
+    if (!expression->IsCall()) return false;
+    expression = expression->AsCall()->expression();
+    return IsIdentifier(expression) && IsEval(AsIdentifier(expression));
+  }
+
   static bool IsBoilerplateProperty(ObjectLiteral::Property* property) {
     return ObjectLiteral::IsBoilerplateProperty(property);
   }
@@ -533,7 +535,11 @@
 
   V8_INLINE void AddParameterInitializationBlock(
       const ParserFormalParameters& parameters,
-      ZoneList<v8::internal::Statement*>* body, bool* ok);
+      ZoneList<v8::internal::Statement*>* body, bool is_async, bool* ok);
+
+  void ParseAsyncArrowSingleExpressionBody(
+      ZoneList<Statement*>* body, bool accept_IN,
+      Type::ExpressionClassifier* classifier, int pos, bool* ok);
 
   V8_INLINE Scope* NewScope(Scope* parent_scope, ScopeType scope_type,
                             FunctionKind kind = kNormalFunction);
@@ -546,14 +552,15 @@
       Scope* scope, const ParserFormalParameters::Parameter& parameter,
       Type::ExpressionClassifier* classifier);
   void ParseArrowFunctionFormalParameters(ParserFormalParameters* parameters,
-                                          Expression* params,
-                                          const Scanner::Location& params_loc,
+                                          Expression* params, int end_pos,
                                           bool* ok);
   void ParseArrowFunctionFormalParameterList(
       ParserFormalParameters* parameters, Expression* params,
       const Scanner::Location& params_loc,
       Scanner::Location* duplicate_loc, bool* ok);
 
+  V8_INLINE Expression* ParseAsyncFunctionExpression(bool* ok);
+
   V8_INLINE DoExpression* ParseDoExpression(bool* ok);
 
   void ReindexLiterals(const ParserFormalParameters& parameters);
@@ -579,6 +586,7 @@
                                   bool name_is_strict_reserved, int pos,
                                   bool* ok);
 
+  V8_INLINE void MarkCollectedTailCallExpressions();
   V8_INLINE void MarkTailPosition(Expression* expression);
 
   V8_INLINE void CheckConflictingVarDeclarations(v8::internal::Scope* scope,
@@ -636,6 +644,8 @@
                                       ZoneList<v8::internal::Expression*>* args,
                                       int pos);
 
+  Expression* ExpressionListToExpression(ZoneList<Expression*>* args);
+
   // Rewrite all DestructuringAssignments in the current FunctionState.
   V8_INLINE void RewriteDestructuringAssignments();
 
@@ -644,6 +654,8 @@
   V8_INLINE Expression* RewriteAssignExponentiation(Expression* left,
                                                     Expression* right, int pos);
 
+  V8_INLINE Expression* RewriteAwaitExpression(Expression* value, int pos);
+
   V8_INLINE void QueueDestructuringAssignmentForRewriting(
       Expression* assignment);
   V8_INLINE void QueueNonPatternForRewriting(Expression* expr);
@@ -665,16 +677,14 @@
   Expression* RewriteYieldStar(
       Expression* generator, Expression* expression, int pos);
 
-  Expression* RewriteInstanceof(Expression* lhs, Expression* rhs, int pos);
-
  private:
   Parser* parser_;
 
   void BuildIteratorClose(ZoneList<Statement*>* statements, Variable* iterator,
-                          Maybe<Variable*> input, Variable* output);
-  void BuildIteratorCloseForCompletion(
-      ZoneList<Statement*>* statements, Variable* iterator,
-      Variable* body_threw);
+                          Variable* input, Variable* output);
+  void BuildIteratorCloseForCompletion(ZoneList<Statement*>* statements,
+                                       Variable* iterator,
+                                       Expression* completion);
   Statement* CheckCallable(Variable* var, Expression* error, int pos);
 };
 
@@ -768,8 +778,15 @@
                                bool* ok);
   Statement* ParseStatementAsUnlabelled(ZoneList<const AstRawString*>* labels,
                                    bool* ok);
-  Statement* ParseFunctionDeclaration(ZoneList<const AstRawString*>* names,
+  Statement* ParseFunctionDeclaration(bool* ok);
+  Statement* ParseHoistableDeclaration(ZoneList<const AstRawString*>* names,
                                       bool* ok);
+  Statement* ParseHoistableDeclaration(int pos, ParseFunctionFlags flags,
+                                       ZoneList<const AstRawString*>* names,
+                                       bool* ok);
+  Statement* ParseAsyncFunctionDeclaration(ZoneList<const AstRawString*>* names,
+                                           bool* ok);
+  Expression* ParseAsyncFunctionExpression(bool* ok);
   Statement* ParseFunctionDeclaration(int pos, bool is_generator,
                                       ZoneList<const AstRawString*>* names,
                                       bool* ok);
@@ -838,8 +855,6 @@
                                                       Assignment* assignment,
                                                       Scope* scope);
 
-    void set_initializer_position(int pos) { initializer_position_ = pos; }
-
    private:
     PatternRewriter() {}
 
@@ -880,6 +895,8 @@
     PatternContext SetAssignmentContextIfNeeded(Expression* node);
     PatternContext SetInitializerContextIfNeeded(Expression* node);
 
+    void RewriteParameterScopes(Expression* expr);
+
     Variable* CreateTempVar(Expression* value = nullptr);
 
     AstNodeFactory* factory() const { return parser_->factory(); }
@@ -927,8 +944,6 @@
   Statement* ParseForStatement(ZoneList<const AstRawString*>* labels, bool* ok);
   Statement* ParseThrowStatement(bool* ok);
   Expression* MakeCatchContext(Handle<String> id, VariableProxy* value);
-  class DontCollectExpressionsInTailPositionScope;
-  class CollectExpressionsInTailPositionToListScope;
   TryStatement* ParseTryStatement(bool* ok);
   DebuggerStatement* ParseDebuggerStatement(bool* ok);
   // Parse a SubStatement in strict mode, or with an extra block scope in
@@ -948,15 +963,22 @@
 
   // Initialize the components of a for-in / for-of statement.
   void InitializeForEachStatement(ForEachStatement* stmt, Expression* each,
-                                  Expression* subject, Statement* body);
+                                  Expression* subject, Statement* body,
+                                  int each_keyword_pos);
   void InitializeForOfStatement(ForOfStatement* stmt, Expression* each,
                                 Expression* iterable, Statement* body,
-                                int iterable_pos);
+                                int next_result_pos = RelocInfo::kNoPosition);
   Statement* DesugarLexicalBindingsInForStatement(
       Scope* inner_scope, VariableMode mode,
       ZoneList<const AstRawString*>* names, ForStatement* loop, Statement* init,
       Expression* cond, Statement* next, Statement* body, bool* ok);
 
+  void DesugarAsyncFunctionBody(const AstRawString* function_name, Scope* scope,
+                                ZoneList<Statement*>* body,
+                                Type::ExpressionClassifier* classifier,
+                                FunctionKind kind, FunctionBody type,
+                                bool accept_IN, int pos, bool* ok);
+
   void RewriteDoExpression(Expression* expr, bool* ok);
 
   FunctionLiteral* ParseFunctionLiteral(
@@ -1027,6 +1049,7 @@
 
   Block* BuildParameterInitializationBlock(
       const ParserFormalParameters& parameters, bool* ok);
+  Block* BuildRejectPromiseOnException(Block* block);
 
   // Consumes the ending }.
   ZoneList<Statement*>* ParseEagerFunctionBody(
@@ -1054,6 +1077,8 @@
   void SetLanguageMode(Scope* scope, LanguageMode mode);
   void RaiseLanguageMode(LanguageMode mode);
 
+  V8_INLINE void MarkCollectedTailCallExpressions();
+
   V8_INLINE void RewriteDestructuringAssignments();
 
   V8_INLINE Expression* RewriteExponentiation(Expression* left,
@@ -1069,6 +1094,10 @@
   friend class InitializerRewriter;
   void RewriteParameterInitializer(Expression* expr, Scope* scope);
 
+  Expression* BuildCreateJSGeneratorObject(int pos, FunctionKind kind);
+  Expression* BuildPromiseResolve(Expression* value, int pos);
+  Expression* BuildPromiseReject(Expression* value, int pos);
+
   Scanner scanner_;
   PreParser* reusable_preparser_;
   Scope* original_scope_;  // for ES5 function declarations in sloppy eval
@@ -1238,20 +1267,27 @@
   }
 }
 
-
 void ParserTraits::AddParameterInitializationBlock(
     const ParserFormalParameters& parameters,
-    ZoneList<v8::internal::Statement*>* body, bool* ok) {
+    ZoneList<v8::internal::Statement*>* body, bool is_async, bool* ok) {
   if (!parameters.is_simple) {
     auto* init_block =
         parser_->BuildParameterInitializationBlock(parameters, ok);
     if (!*ok) return;
+
+    if (is_async) {
+      init_block = parser_->BuildRejectPromiseOnException(init_block);
+    }
+
     if (init_block != nullptr) {
       body->Add(init_block, parser_->zone());
     }
   }
 }
 
+Expression* ParserTraits::ParseAsyncFunctionExpression(bool* ok) {
+  return parser_->ParseAsyncFunctionExpression(ok);
+}
 
 DoExpression* ParserTraits::ParseDoExpression(bool* ok) {
   return parser_->ParseDoExpression(ok);
diff --git a/src/parsing/pattern-rewriter.cc b/src/parsing/pattern-rewriter.cc
index e699255..3dcff98 100644
--- a/src/parsing/pattern-rewriter.cc
+++ b/src/parsing/pattern-rewriter.cc
@@ -272,15 +272,9 @@
           factory()->NewExpressionStatement(initialize, initialize->position()),
           zone());
     }
-  } else if (value != nullptr && (descriptor_->mode == CONST_LEGACY ||
-                                  IsLexicalVariableMode(descriptor_->mode))) {
-    // Constant initializations always assign to the declared constant which
-    // is always at the function scope level. This is only relevant for
-    // dynamically looked-up variables and constants (the
-    // start context for constant lookups is always the function context,
-    // while it is the top context for var declared variables). Sigh...
-    // For 'let' and 'const' declared variables in harmony mode the
-    // initialization also always assigns to the declared variable.
+  } else if (value != nullptr && IsLexicalVariableMode(descriptor_->mode)) {
+    // For 'let' and 'const' declared variables the initialization always
+    // assigns to the declared variable.
     DCHECK_NOT_NULL(proxy);
     DCHECK_NOT_NULL(proxy->var());
     DCHECK_NOT_NULL(value);
@@ -387,6 +381,37 @@
   return set_context(old_context);
 }
 
+// Two cases for scope rewriting the scope of default parameters:
+// - Eagerly parsed arrow functions are initially parsed as having
+//   expressions in the enclosing scope, but when the arrow is encountered,
+//   need to be in the scope of the function.
+// - When an extra declaration scope needs to be inserted to account for
+//   a sloppy eval in a default parameter or function body, the expressions
+//   needs to be in that new inner scope which was added after initial
+//   parsing.
+// Each of these cases can be handled by rewriting the contents of the
+// expression to the current scope. The source scope is typically the outer
+// scope when one case occurs; when both cases occur, both scopes need to
+// be included as the outer scope. (Both rewritings still need to be done
+// to account for lazily parsed arrow functions which hit the second case.)
+// TODO(littledan): Remove the outer_scope parameter of
+//                  RewriteParameterInitializerScope
+void Parser::PatternRewriter::RewriteParameterScopes(Expression* expr) {
+  if (!IsBindingContext()) return;
+  if (descriptor_->declaration_kind != DeclarationDescriptor::PARAMETER) return;
+  if (!scope()->is_arrow_scope() && !scope()->is_block_scope()) return;
+
+  // Either this scope is an arrow scope or a declaration block scope.
+  DCHECK(scope()->is_declaration_scope());
+
+  if (scope()->outer_scope()->is_arrow_scope() && scope()->is_block_scope()) {
+    RewriteParameterInitializerScope(parser_->stack_limit(), expr,
+                                     scope()->outer_scope()->outer_scope(),
+                                     scope());
+  }
+  RewriteParameterInitializerScope(parser_->stack_limit(), expr,
+                                   scope()->outer_scope(), scope());
+}
 
 void Parser::PatternRewriter::VisitObjectLiteral(ObjectLiteral* pattern,
                                                  Variable** temp_var) {
@@ -396,6 +421,11 @@
 
   for (ObjectLiteralProperty* property : *pattern->properties()) {
     PatternContext context = SetInitializerContextIfNeeded(property->value());
+
+    // Computed property names contain expressions which might require
+    // scope rewriting.
+    if (!property->key()->IsLiteral()) RewriteParameterScopes(property->key());
+
     RecurseIntoSubpattern(
         property->value(),
         factory()->NewProperty(factory()->NewVariableProxy(temp),
@@ -552,11 +582,11 @@
 
     // let array = [];
     // while (!done) {
+    //   done = true;  // If .next, .done or .value throws, don't close.
     //   result = IteratorNext(iterator);
-    //   if (result.done) {
-    //     done = true;
-    //   } else {
+    //   if (!result.done) {
     //     %AppendElement(array, result.value);
+    //     done = false;
     //   }
     // }
 
@@ -571,12 +601,6 @@
           node->literal_index(), RelocInfo::kNoPosition));
     }
 
-    // result = IteratorNext(iterator);
-    Statement* get_next = factory()->NewExpressionStatement(
-        parser_->BuildIteratorNextResult(factory()->NewVariableProxy(iterator),
-                                         result, nopos),
-        nopos);
-
     // done = true;
     Statement* set_done = factory()->NewExpressionStatement(
         factory()->NewAssignment(
@@ -584,6 +608,12 @@
             factory()->NewBooleanLiteral(true, nopos), nopos),
         nopos);
 
+    // result = IteratorNext(iterator);
+    Statement* get_next = factory()->NewExpressionStatement(
+        parser_->BuildIteratorNextResult(factory()->NewVariableProxy(iterator),
+                                         result, nopos),
+        nopos);
+
     // %AppendElement(array, result.value);
     Statement* append_element;
     {
@@ -600,29 +630,44 @@
           nopos);
     }
 
-    // if (result.done) { #set_done } else { #append_element }
-    Statement* set_done_or_append;
+    // done = false;
+    Statement* unset_done = factory()->NewExpressionStatement(
+        factory()->NewAssignment(
+            Token::ASSIGN, factory()->NewVariableProxy(done),
+            factory()->NewBooleanLiteral(false, nopos), nopos),
+        nopos);
+
+    // if (!result.done) { #append_element; #unset_done }
+    Statement* maybe_append_and_unset_done;
     {
       Expression* result_done =
           factory()->NewProperty(factory()->NewVariableProxy(result),
                                  factory()->NewStringLiteral(
                                      ast_value_factory()->done_string(), nopos),
                                  nopos);
-      set_done_or_append = factory()->NewIfStatement(result_done, set_done,
-                                                     append_element, nopos);
+
+      Block* then = factory()->NewBlock(nullptr, 2, true, nopos);
+      then->statements()->Add(append_element, zone());
+      then->statements()->Add(unset_done, zone());
+
+      maybe_append_and_unset_done = factory()->NewIfStatement(
+          factory()->NewUnaryOperation(Token::NOT, result_done, nopos), then,
+          factory()->NewEmptyStatement(nopos), nopos);
     }
 
     // while (!done) {
+    //   #set_done;
     //   #get_next;
-    //   #set_done_or_append;
+    //   #maybe_append_and_unset_done;
     // }
     WhileStatement* loop = factory()->NewWhileStatement(nullptr, nopos);
     {
       Expression* condition = factory()->NewUnaryOperation(
           Token::NOT, factory()->NewVariableProxy(done), nopos);
-      Block* body = factory()->NewBlock(nullptr, 2, true, nopos);
+      Block* body = factory()->NewBlock(nullptr, 3, true, nopos);
+      body->statements()->Add(set_done, zone());
       body->statements()->Add(get_next, zone());
-      body->statements()->Add(set_done_or_append, zone());
+      body->statements()->Add(maybe_append_and_unset_done, zone());
       loop->Initialize(condition, body);
     }
 
@@ -668,12 +713,8 @@
                                       RelocInfo::kNoPosition);
   }
 
-  if (IsBindingContext() &&
-      descriptor_->declaration_kind == DeclarationDescriptor::PARAMETER &&
-      scope()->is_arrow_scope()) {
-    RewriteParameterInitializerScope(parser_->stack_limit(), initializer,
-                                     scope()->outer_scope(), scope());
-  }
+  // Initializer may have been parsed in the wrong scope.
+  RewriteParameterScopes(initializer);
 
   PatternContext old_context = SetAssignmentContextIfNeeded(initializer);
   RecurseIntoSubpattern(node->target(), value);
diff --git a/src/parsing/preparser.cc b/src/parsing/preparser.cc
index da1c35b..0a091c6 100644
--- a/src/parsing/preparser.cc
+++ b/src/parsing/preparser.cc
@@ -12,8 +12,8 @@
 #include "src/hashmap.h"
 #include "src/list.h"
 #include "src/parsing/parser-base.h"
-#include "src/parsing/preparse-data.h"
 #include "src/parsing/preparse-data-format.h"
+#include "src/parsing/preparse-data.h"
 #include "src/parsing/preparser.h"
 #include "src/unicode.h"
 #include "src/utils.h"
@@ -38,8 +38,10 @@
 
 
 PreParserIdentifier PreParserTraits::GetSymbol(Scanner* scanner) {
-  if (scanner->current_token() == Token::FUTURE_RESERVED_WORD) {
-    return PreParserIdentifier::FutureReserved();
+  if (scanner->current_token() == Token::ENUM) {
+    return PreParserIdentifier::Enum();
+  } else if (scanner->current_token() == Token::AWAIT) {
+    return PreParserIdentifier::Await();
   } else if (scanner->current_token() ==
              Token::FUTURE_STRICT_RESERVED_WORD) {
     return PreParserIdentifier::FutureStrictReserved();
@@ -49,6 +51,8 @@
     return PreParserIdentifier::Static();
   } else if (scanner->current_token() == Token::YIELD) {
     return PreParserIdentifier::Yield();
+  } else if (scanner->current_token() == Token::ASYNC) {
+    return PreParserIdentifier::Async();
   }
   if (scanner->UnescapedLiteralMatches("eval", 4)) {
     return PreParserIdentifier::Eval();
@@ -98,11 +102,13 @@
       function_token_position, type, language_mode, ok);
 }
 
-
 PreParser::PreParseResult PreParser::PreParseLazyFunction(
     LanguageMode language_mode, FunctionKind kind, bool has_simple_parameters,
-    ParserRecorder* log, Scanner::BookmarkScope* bookmark) {
+    bool parsing_module, ParserRecorder* log, Scanner::BookmarkScope* bookmark,
+    int* use_counts) {
+  parsing_module_ = parsing_module;
   log_ = log;
+  use_counts_ = use_counts;
   // Lazy functions always have trivial outer scopes (no with/catch scopes).
   Scope* top_scope = NewScope(scope_, SCRIPT_SCOPE);
   PreParserFactory top_factory(NULL);
@@ -118,6 +124,7 @@
   bool ok = true;
   int start_position = peek_position();
   ParseLazyFunctionLiteralBody(&ok, bookmark);
+  use_counts_ = nullptr;
   if (bookmark && bookmark->HasBeenReset()) {
     // Do nothing, as we've just aborted scanning this function.
   } else if (stack_overflow()) {
@@ -129,6 +136,7 @@
     if (is_strict(scope_->language_mode())) {
       int end_pos = scanner()->location().end_pos;
       CheckStrictOctalLiteral(start_position, end_pos, &ok);
+      CheckDecimalLiteralWithLeadingZero(use_counts, start_position, end_pos);
       if (!ok) return kPreParseSuccess;
     }
   }
@@ -178,19 +186,23 @@
 
   switch (peek()) {
     case Token::FUNCTION:
-      return ParseFunctionDeclaration(ok);
+      return ParseHoistableDeclaration(ok);
     case Token::CLASS:
       return ParseClassDeclaration(ok);
     case Token::CONST:
-      if (allow_const()) {
-        return ParseVariableStatement(kStatementListItem, ok);
-      }
-      break;
+      return ParseVariableStatement(kStatementListItem, ok);
     case Token::LET:
       if (IsNextLetKeyword()) {
         return ParseVariableStatement(kStatementListItem, ok);
       }
       break;
+    case Token::ASYNC:
+      if (allow_harmony_async_await() && PeekAhead() == Token::FUNCTION &&
+          !scanner()->HasAnyLineTerminatorAfterNext()) {
+        Consume(Token::ASYNC);
+        return ParseAsyncFunctionDeclaration(ok);
+      }
+    /* falls through */
     default:
       break;
   }
@@ -281,7 +293,9 @@
       (legacy && allow_harmony_restrictive_declarations())) {
     return ParseSubStatement(kDisallowLabelledFunctionStatement, ok);
   } else {
-    return ParseFunctionDeclaration(CHECK_OK);
+    Scope* body_scope = NewScope(scope_, BLOCK_SCOPE);
+    BlockState block_state(&scope_, body_scope);
+    return ParseFunctionDeclaration(ok);
   }
 }
 
@@ -377,37 +391,64 @@
   }
 }
 
+PreParser::Statement PreParser::ParseHoistableDeclaration(
+    int pos, ParseFunctionFlags flags, bool* ok) {
+  const bool is_generator = flags & ParseFunctionFlags::kIsGenerator;
+  const bool is_async = flags & ParseFunctionFlags::kIsAsync;
+  DCHECK(!is_generator || !is_async);
 
-PreParser::Statement PreParser::ParseFunctionDeclaration(bool* ok) {
-  // FunctionDeclaration ::
-  //   'function' Identifier '(' FormalParameterListopt ')' '{' FunctionBody '}'
-  // GeneratorDeclaration ::
-  //   'function' '*' Identifier '(' FormalParameterListopt ')'
-  //      '{' FunctionBody '}'
-  Expect(Token::FUNCTION, CHECK_OK);
-  int pos = position();
-  bool is_generator = Check(Token::MUL);
   bool is_strict_reserved = false;
   Identifier name = ParseIdentifierOrStrictReservedWord(
       &is_strict_reserved, CHECK_OK);
+
+  if (V8_UNLIKELY(is_async_function() && this->IsAwait(name))) {
+    ReportMessageAt(scanner()->location(),
+                    MessageTemplate::kAwaitBindingIdentifier);
+    *ok = false;
+    return Statement::Default();
+  }
+
   ParseFunctionLiteral(name, scanner()->location(),
                        is_strict_reserved ? kFunctionNameIsStrictReserved
                                           : kFunctionNameValidityUnknown,
                        is_generator ? FunctionKind::kGeneratorFunction
-                                    : FunctionKind::kNormalFunction,
+                                    : is_async ? FunctionKind::kAsyncFunction
+                                               : FunctionKind::kNormalFunction,
                        pos, FunctionLiteral::kDeclaration, language_mode(),
                        CHECK_OK);
   return Statement::FunctionDeclaration();
 }
 
+PreParser::Statement PreParser::ParseAsyncFunctionDeclaration(bool* ok) {
+  // AsyncFunctionDeclaration ::
+  //   async [no LineTerminator here] function BindingIdentifier[Await]
+  //       ( FormalParameters[Await] ) { AsyncFunctionBody }
+  DCHECK_EQ(scanner()->current_token(), Token::ASYNC);
+  int pos = position();
+  Expect(Token::FUNCTION, CHECK_OK);
+  ParseFunctionFlags flags = ParseFunctionFlags::kIsAsync;
+  return ParseHoistableDeclaration(pos, flags, ok);
+}
+
+PreParser::Statement PreParser::ParseHoistableDeclaration(bool* ok) {
+  // FunctionDeclaration ::
+  //   'function' Identifier '(' FormalParameterListopt ')' '{' FunctionBody '}'
+  // GeneratorDeclaration ::
+  //   'function' '*' Identifier '(' FormalParameterListopt ')'
+  //      '{' FunctionBody '}'
+
+  Expect(Token::FUNCTION, CHECK_OK);
+  int pos = position();
+  ParseFunctionFlags flags = ParseFunctionFlags::kIsNormal;
+  if (Check(Token::MUL)) {
+    flags |= ParseFunctionFlags::kIsGenerator;
+  }
+  return ParseHoistableDeclaration(pos, flags, ok);
+}
+
 
 PreParser::Statement PreParser::ParseClassDeclaration(bool* ok) {
   Expect(Token::CLASS, CHECK_OK);
-  if (!allow_harmony_sloppy() && is_sloppy(language_mode())) {
-    ReportMessage(MessageTemplate::kSloppyLexical);
-    *ok = false;
-    return Statement::Default();
-  }
 
   int pos = position();
   bool is_strict_reserved = false;
@@ -423,10 +464,14 @@
   // Block ::
   //   '{' StatementList '}'
 
+  Scope* block_scope = NewScope(scope_, BLOCK_SCOPE);
   Expect(Token::LBRACE, CHECK_OK);
   Statement final = Statement::Default();
-  while (peek() != Token::RBRACE) {
-    final = ParseStatementListItem(CHECK_OK);
+  {
+    BlockState block_state(&scope_, block_scope);
+    while (peek() != Token::RBRACE) {
+      final = ParseStatementListItem(CHECK_OK);
+    }
   }
   Expect(Token::RBRACE, ok);
   return final;
@@ -473,7 +518,7 @@
   bool is_pattern = false;
   if (peek() == Token::VAR) {
     Consume(Token::VAR);
-  } else if (peek() == Token::CONST && allow_const()) {
+  } else if (peek() == Token::CONST) {
     // TODO(ES6): The ES6 Draft Rev4 section 12.2.2 reads:
     //
     // ConstDeclaration : const ConstBinding (',' ConstBinding)* ';'
@@ -485,12 +530,10 @@
     // existing pages. Therefore we keep allowing const with the old
     // non-harmony semantics in sloppy mode.
     Consume(Token::CONST);
-    if (is_strict(language_mode()) || allow_harmony_sloppy()) {
-      DCHECK(var_context != kStatement);
-      require_initializer = true;
-      lexical = true;
-    }
-  } else if (peek() == Token::LET && allow_let()) {
+    DCHECK(var_context != kStatement);
+    require_initializer = true;
+    lexical = true;
+  } else if (peek() == Token::LET) {
     Consume(Token::LET);
     DCHECK(var_context != kStatement);
     lexical = true;
@@ -556,6 +599,22 @@
   return Statement::Default();
 }
 
+PreParser::Statement PreParser::ParseFunctionDeclaration(bool* ok) {
+  Consume(Token::FUNCTION);
+  int pos = position();
+  ParseFunctionFlags flags = ParseFunctionFlags::kIsNormal;
+  if (Check(Token::MUL)) {
+    flags |= ParseFunctionFlags::kIsGenerator;
+    if (allow_harmony_restrictive_declarations()) {
+      PreParserTraits::ReportMessageAt(
+          scanner()->location(), MessageTemplate::kGeneratorInLegacyContext);
+      *ok = false;
+      return Statement::Default();
+    }
+  }
+  return ParseHoistableDeclaration(pos, flags, ok);
+}
+
 PreParser::Statement PreParser::ParseExpressionOrLabelledStatement(
     AllowLabelledFunctionStatement allow_function, bool* ok) {
   // ExpressionStatement | LabelledStatement ::
@@ -586,7 +645,8 @@
   if (starts_with_identifier && expr.IsIdentifier() && peek() == Token::COLON) {
     // Expression is a single identifier, and not, e.g., a parenthesized
     // identifier.
-    DCHECK(!expr.AsIdentifier().IsFutureReserved());
+    DCHECK(!expr.AsIdentifier().IsEnum());
+    DCHECK(!parsing_module_ || !expr.AsIdentifier().IsAwait());
     DCHECK(is_sloppy(language_mode()) ||
            !IsFutureStrictReserved(expr.AsIdentifier()));
     Consume(Token::COLON);
@@ -606,14 +666,6 @@
     // accept "native function" in the preparser.
   }
   // Parsed expression statement.
-  // Detect attempts at 'let' declarations in sloppy mode.
-  if (!allow_harmony_sloppy_let() && peek() == Token::IDENTIFIER &&
-      is_sloppy(language_mode()) && expr.IsIdentifier() &&
-      expr.AsIdentifier().IsLet()) {
-    ReportMessage(MessageTemplate::kSloppyLexical, NULL);
-    *ok = false;
-    return Statement::Default();
-  }
   ExpectSemicolon(CHECK_OK);
   return Statement::ExpressionStatement(expr);
 }
@@ -696,6 +748,16 @@
       tok != Token::SEMICOLON &&
       tok != Token::RBRACE &&
       tok != Token::EOS) {
+    // Because of the return code rewriting that happens in case of a subclass
+    // constructor we don't want to accept tail calls, therefore we don't set
+    // ReturnExprScope to kInsideValidReturnStatement here.
+    ReturnExprContext return_expr_context =
+        IsSubclassConstructor(function_state_->kind())
+            ? function_state_->return_expr_context()
+            : ReturnExprContext::kInsideValidReturnStatement;
+
+    ReturnExprScope maybe_allow_tail_calls(function_state_,
+                                           return_expr_context);
     ParseExpression(true, CHECK_OK);
   }
   ExpectSemicolon(CHECK_OK);
@@ -732,23 +794,27 @@
   ParseExpression(true, CHECK_OK);
   Expect(Token::RPAREN, CHECK_OK);
 
-  Expect(Token::LBRACE, CHECK_OK);
-  Token::Value token = peek();
-  while (token != Token::RBRACE) {
-    if (token == Token::CASE) {
-      Expect(Token::CASE, CHECK_OK);
-      ParseExpression(true, CHECK_OK);
-    } else {
-      Expect(Token::DEFAULT, CHECK_OK);
-    }
-    Expect(Token::COLON, CHECK_OK);
-    token = peek();
-    Statement statement = Statement::Jump();
-    while (token != Token::CASE &&
-           token != Token::DEFAULT &&
-           token != Token::RBRACE) {
-      statement = ParseStatementListItem(CHECK_OK);
+  Scope* cases_scope = NewScope(scope_, BLOCK_SCOPE);
+  {
+    BlockState cases_block_state(&scope_, cases_scope);
+    Expect(Token::LBRACE, CHECK_OK);
+    Token::Value token = peek();
+    while (token != Token::RBRACE) {
+      if (token == Token::CASE) {
+        Expect(Token::CASE, CHECK_OK);
+        ParseExpression(true, CHECK_OK);
+      } else {
+        Expect(Token::DEFAULT, CHECK_OK);
+      }
+      Expect(Token::COLON, CHECK_OK);
       token = peek();
+      Statement statement = Statement::Jump();
+      while (token != Token::CASE &&
+             token != Token::DEFAULT &&
+             token != Token::RBRACE) {
+        statement = ParseStatementListItem(CHECK_OK);
+        token = peek();
+      }
     }
   }
   Expect(Token::RBRACE, ok);
@@ -788,12 +854,16 @@
   // ForStatement ::
   //   'for' '(' Expression? ';' Expression? ';' Expression? ')' Statement
 
+  // Create an in-between scope for let-bound iteration variables.
+  Scope* for_scope = NewScope(scope_, BLOCK_SCOPE);
+  bool has_lexical = false;
+
+  BlockState block_state(&scope_, for_scope);
   Expect(Token::FOR, CHECK_OK);
   Expect(Token::LPAREN, CHECK_OK);
-  bool is_let_identifier_expression = false;
   if (peek() != Token::SEMICOLON) {
     ForEachStatement::VisitMode mode;
-    if (peek() == Token::VAR || (peek() == Token::CONST && allow_const()) ||
+    if (peek() == Token::VAR || peek() == Token::CONST ||
         (peek() == Token::LET && IsNextLetKeyword())) {
       int decl_count;
       bool is_lexical;
@@ -803,6 +873,7 @@
       ParseVariableDeclarations(kForStatement, &decl_count, &is_lexical,
                                 &is_binding_pattern, &first_initializer_loc,
                                 &bindings_loc, CHECK_OK);
+      if (is_lexical) has_lexical = true;
       if (CheckInOrOf(&mode, ok)) {
         if (!*ok) return Statement::Default();
         if (decl_count != 1) {
@@ -814,7 +885,12 @@
         }
         if (first_initializer_loc.IsValid() &&
             (is_strict(language_mode()) || mode == ForEachStatement::ITERATE ||
-             is_lexical || is_binding_pattern)) {
+             is_lexical || is_binding_pattern || allow_harmony_for_in())) {
+          // Only increment the use count if we would have let this through
+          // without the flag.
+          if (use_counts_ != nullptr && allow_harmony_for_in()) {
+            ++use_counts_[v8::Isolate::kForInInitializer];
+          }
           PreParserTraits::ReportMessageAt(
               first_initializer_loc, MessageTemplate::kForInOfLoopInitializer,
               ForEachStatement::VisitModeString(mode));
@@ -831,7 +907,11 @@
         }
 
         Expect(Token::RPAREN, CHECK_OK);
-        ParseScopedStatement(true, CHECK_OK);
+        {
+          ReturnExprScope no_tail_calls(function_state_,
+                                        ReturnExprContext::kInsideForInOfBody);
+          ParseScopedStatement(true, CHECK_OK);
+        }
         return Statement::Default();
       }
     } else {
@@ -839,8 +919,6 @@
       ExpressionClassifier classifier(this);
       Expression lhs = ParseExpression(false, &classifier, CHECK_OK);
       int lhs_end_pos = scanner()->location().end_pos;
-      is_let_identifier_expression =
-          lhs.IsIdentifier() && lhs.AsIdentifier().IsLet();
       bool is_for_each = CheckInOrOf(&mode, ok);
       if (!*ok) return Statement::Default();
       bool is_destructuring = is_for_each &&
@@ -868,33 +946,39 @@
         }
 
         Expect(Token::RPAREN, CHECK_OK);
-        ParseScopedStatement(true, CHECK_OK);
+        Scope* body_scope = NewScope(scope_, BLOCK_SCOPE);
+        {
+          BlockState block_state(&scope_, body_scope);
+          ParseScopedStatement(true, CHECK_OK);
+        }
         return Statement::Default();
       }
     }
   }
 
   // Parsed initializer at this point.
-  // Detect attempts at 'let' declarations in sloppy mode.
-  if (!allow_harmony_sloppy_let() && peek() == Token::IDENTIFIER &&
-      is_sloppy(language_mode()) && is_let_identifier_expression) {
-    ReportMessage(MessageTemplate::kSloppyLexical, NULL);
-    *ok = false;
-    return Statement::Default();
-  }
   Expect(Token::SEMICOLON, CHECK_OK);
 
-  if (peek() != Token::SEMICOLON) {
-    ParseExpression(true, CHECK_OK);
-  }
-  Expect(Token::SEMICOLON, CHECK_OK);
+  // If there are let bindings, then condition and the next statement of the
+  // for loop must be parsed in a new scope.
+  Scope* inner_scope = scope_;
+  if (has_lexical) inner_scope = NewScope(for_scope, BLOCK_SCOPE);
 
-  if (peek() != Token::RPAREN) {
-    ParseExpression(true, CHECK_OK);
-  }
-  Expect(Token::RPAREN, CHECK_OK);
+  {
+    BlockState block_state(&scope_, inner_scope);
 
-  ParseScopedStatement(true, ok);
+    if (peek() != Token::SEMICOLON) {
+      ParseExpression(true, CHECK_OK);
+    }
+    Expect(Token::SEMICOLON, CHECK_OK);
+
+    if (peek() != Token::RPAREN) {
+      ParseExpression(true, CHECK_OK);
+    }
+    Expect(Token::RPAREN, CHECK_OK);
+
+    ParseScopedStatement(true, ok);
+  }
   return Statement::Default();
 }
 
@@ -929,7 +1013,11 @@
 
   Expect(Token::TRY, CHECK_OK);
 
-  ParseBlock(CHECK_OK);
+  {
+    ReturnExprScope no_tail_calls(function_state_,
+                                  ReturnExprContext::kInsideTryBlock);
+    ParseBlock(CHECK_OK);
+  }
 
   Token::Value tok = peek();
   if (tok != Token::CATCH && tok != Token::FINALLY) {
@@ -937,24 +1025,42 @@
     *ok = false;
     return Statement::Default();
   }
+  TailCallExpressionList tail_call_expressions_in_catch_block(zone());
+  bool catch_block_exists = false;
   if (tok == Token::CATCH) {
     Consume(Token::CATCH);
     Expect(Token::LPAREN, CHECK_OK);
+    Scope* catch_scope = NewScope(scope_, CATCH_SCOPE);
     ExpressionClassifier pattern_classifier(this);
     ParsePrimaryExpression(&pattern_classifier, CHECK_OK);
     ValidateBindingPattern(&pattern_classifier, CHECK_OK);
     Expect(Token::RPAREN, CHECK_OK);
     {
-      // TODO(adamk): Make this CATCH_SCOPE
-      Scope* with_scope = NewScope(scope_, WITH_SCOPE);
-      BlockState block_state(&scope_, with_scope);
-      ParseBlock(CHECK_OK);
+      CollectExpressionsInTailPositionToListScope
+          collect_tail_call_expressions_scope(
+              function_state_, &tail_call_expressions_in_catch_block);
+      BlockState block_state(&scope_, catch_scope);
+      Scope* block_scope = NewScope(scope_, BLOCK_SCOPE);
+      {
+        BlockState block_state(&scope_, block_scope);
+        ParseBlock(CHECK_OK);
+      }
     }
+    catch_block_exists = true;
     tok = peek();
   }
   if (tok == Token::FINALLY) {
     Consume(Token::FINALLY);
     ParseBlock(CHECK_OK);
+    if (FLAG_harmony_explicit_tailcalls && catch_block_exists &&
+        tail_call_expressions_in_catch_block.has_explicit_tail_calls()) {
+      // TODO(ishell): update chapter number.
+      // ES8 XX.YY.ZZ
+      ReportMessageAt(tail_call_expressions_in_catch_block.location(),
+                      MessageTemplate::kUnexpectedTailCallInCatchBlock);
+      *ok = false;
+      return Statement::Default();
+    }
   }
   return Statement::Default();
 }
@@ -1012,9 +1118,8 @@
 
   // See Parser::ParseFunctionLiteral for more information about lazy parsing
   // and lazy compilation.
-  bool is_lazily_parsed =
-      (outer_is_script_scope && allow_lazy() && !parenthesized_function_);
-  parenthesized_function_ = false;
+  bool is_lazily_parsed = (outer_is_script_scope && allow_lazy() &&
+                           !function_state_->this_function_is_parenthesized());
 
   Expect(Token::LBRACE, CHECK_OK);
   if (is_lazily_parsed) {
@@ -1039,11 +1144,44 @@
   if (is_strict(language_mode)) {
     int end_position = scanner()->location().end_pos;
     CheckStrictOctalLiteral(start_position, end_position, CHECK_OK);
+    CheckDecimalLiteralWithLeadingZero(use_counts_, start_position,
+                                       end_position);
   }
 
   return Expression::Default();
 }
 
+PreParser::Expression PreParser::ParseAsyncFunctionExpression(bool* ok) {
+  // AsyncFunctionDeclaration ::
+  //   async [no LineTerminator here] function ( FormalParameters[Await] )
+  //       { AsyncFunctionBody }
+  //
+  //   async [no LineTerminator here] function BindingIdentifier[Await]
+  //       ( FormalParameters[Await] ) { AsyncFunctionBody }
+  int pos = position();
+  Expect(Token::FUNCTION, CHECK_OK);
+  bool is_strict_reserved = false;
+  Identifier name;
+  FunctionLiteral::FunctionType type = FunctionLiteral::kAnonymousExpression;
+
+  if (peek_any_identifier()) {
+    type = FunctionLiteral::kNamedExpression;
+    name = ParseIdentifierOrStrictReservedWord(&is_strict_reserved, CHECK_OK);
+    if (this->IsAwait(name)) {
+      ReportMessageAt(scanner()->location(),
+                      MessageTemplate::kAwaitBindingIdentifier);
+      *ok = false;
+      return Expression::Default();
+    }
+  }
+
+  ParseFunctionLiteral(name, scanner()->location(),
+                       is_strict_reserved ? kFunctionNameIsStrictReserved
+                                          : kFunctionNameValidityUnknown,
+                       FunctionKind::kAsyncFunction, pos, type, language_mode(),
+                       CHECK_OK);
+  return Expression::Default();
+}
 
 void PreParser::ParseLazyFunctionLiteralBody(bool* ok,
                                              Scanner::BookmarkScope* bookmark) {
@@ -1090,6 +1228,7 @@
   if (has_extends) {
     ExpressionClassifier extends_classifier(this);
     ParseLeftHandSideExpression(&extends_classifier, CHECK_OK);
+    CheckNoTailCallExpressions(&extends_classifier, CHECK_OK);
     ValidateExpression(&extends_classifier, CHECK_OK);
     if (classifier != nullptr) {
       classifier->Accumulate(&extends_classifier,
@@ -1104,12 +1243,11 @@
   while (peek() != Token::RBRACE) {
     if (Check(Token::SEMICOLON)) continue;
     const bool in_class = true;
-    const bool is_static = false;
     bool is_computed_name = false;  // Classes do not care about computed
                                     // property names here.
     Identifier name;
     ExpressionClassifier property_classifier(this);
-    ParsePropertyDefinition(&checker, in_class, has_extends, is_static,
+    ParsePropertyDefinition(&checker, in_class, has_extends, MethodKind::Normal,
                             &is_computed_name, &has_seen_constructor,
                             &property_classifier, &name, CHECK_OK);
     ValidateExpression(&property_classifier, CHECK_OK);
@@ -1151,15 +1289,24 @@
   //     do '{' StatementList '}'
   Expect(Token::DO, CHECK_OK);
   Expect(Token::LBRACE, CHECK_OK);
-  Scope* block_scope = NewScope(scope_, BLOCK_SCOPE);
-  {
-    BlockState block_state(&scope_, block_scope);
-    while (peek() != Token::RBRACE) {
-      ParseStatementListItem(CHECK_OK);
-    }
-    Expect(Token::RBRACE, CHECK_OK);
-    return PreParserExpression::Default();
+  while (peek() != Token::RBRACE) {
+    ParseStatementListItem(CHECK_OK);
   }
+  Expect(Token::RBRACE, CHECK_OK);
+  return PreParserExpression::Default();
+}
+
+void PreParserTraits::ParseAsyncArrowSingleExpressionBody(
+    PreParserStatementList body, bool accept_IN,
+    Type::ExpressionClassifier* classifier, int pos, bool* ok) {
+  Scope* scope = pre_parser_->scope_;
+  scope->ForceContextAllocation();
+
+  PreParserExpression return_value =
+      pre_parser_->ParseAssignmentExpression(accept_IN, classifier, ok);
+  if (!*ok) return;
+
+  body->Add(PreParserStatement::ExpressionStatement(return_value), zone());
 }
 
 #undef CHECK_OK
diff --git a/src/parsing/preparser.h b/src/parsing/preparser.h
index f2f6951..16eeab4 100644
--- a/src/parsing/preparser.h
+++ b/src/parsing/preparser.h
@@ -55,6 +55,15 @@
   static PreParserIdentifier Constructor() {
     return PreParserIdentifier(kConstructorIdentifier);
   }
+  static PreParserIdentifier Enum() {
+    return PreParserIdentifier(kEnumIdentifier);
+  }
+  static PreParserIdentifier Await() {
+    return PreParserIdentifier(kAwaitIdentifier);
+  }
+  static PreParserIdentifier Async() {
+    return PreParserIdentifier(kAsyncIdentifier);
+  }
   bool IsEval() const { return type_ == kEvalIdentifier; }
   bool IsArguments() const { return type_ == kArgumentsIdentifier; }
   bool IsEvalOrArguments() const { return IsEval() || IsArguments(); }
@@ -64,7 +73,9 @@
   bool IsYield() const { return type_ == kYieldIdentifier; }
   bool IsPrototype() const { return type_ == kPrototypeIdentifier; }
   bool IsConstructor() const { return type_ == kConstructorIdentifier; }
-  bool IsFutureReserved() const { return type_ == kFutureReservedIdentifier; }
+  bool IsEnum() const { return type_ == kEnumIdentifier; }
+  bool IsAwait() const { return type_ == kAwaitIdentifier; }
+  bool IsAsync() const { return type_ == kAsyncIdentifier; }
   bool IsFutureStrictReserved() const {
     return type_ == kFutureStrictReservedIdentifier ||
            type_ == kLetIdentifier || type_ == kStaticIdentifier ||
@@ -91,7 +102,10 @@
     kArgumentsIdentifier,
     kUndefinedIdentifier,
     kPrototypeIdentifier,
-    kConstructorIdentifier
+    kConstructorIdentifier,
+    kEnumIdentifier,
+    kAwaitIdentifier,
+    kAsyncIdentifier
   };
 
   explicit PreParserIdentifier(Type type) : type_(type) {}
@@ -166,6 +180,12 @@
                                ExpressionTypeField::encode(kCallExpression));
   }
 
+  static PreParserExpression CallEval() {
+    return PreParserExpression(
+        TypeField::encode(kExpression) |
+        ExpressionTypeField::encode(kCallEvalExpression));
+  }
+
   static PreParserExpression SuperCallReference() {
     return PreParserExpression(
         TypeField::encode(kExpression) |
@@ -227,7 +247,13 @@
 
   bool IsCall() const {
     return TypeField::decode(code_) == kExpression &&
-           ExpressionTypeField::decode(code_) == kCallExpression;
+           (ExpressionTypeField::decode(code_) == kCallExpression ||
+            ExpressionTypeField::decode(code_) == kCallEvalExpression);
+  }
+
+  bool IsDirectEvalCall() const {
+    return TypeField::decode(code_) == kExpression &&
+           ExpressionTypeField::decode(code_) == kCallEvalExpression;
   }
 
   bool IsSuperCallReference() const {
@@ -285,6 +311,7 @@
     kThisPropertyExpression,
     kPropertyExpression,
     kCallExpression,
+    kCallEvalExpression,
     kSuperCallReference,
     kNoTemplateTagExpression,
     kAssignment
@@ -494,6 +521,9 @@
   PreParserExpression NewCall(PreParserExpression expression,
                               PreParserExpressionList arguments,
                               int pos) {
+    if (expression.IsIdentifier() && expression.AsIdentifier().IsEval()) {
+      return PreParserExpression::CallEval();
+    }
     return PreParserExpression::Call();
   }
   PreParserExpression NewCallNew(PreParserExpression expression,
@@ -597,6 +627,14 @@
     return identifier.IsArguments();
   }
 
+  static bool IsAwait(PreParserIdentifier identifier) {
+    return identifier.IsAwait();
+  }
+
+  static bool IsAsync(PreParserIdentifier identifier) {
+    return identifier.IsAsync();
+  }
+
   static bool IsEvalOrArguments(PreParserIdentifier identifier) {
     return identifier.IsEvalOrArguments();
   }
@@ -626,6 +664,14 @@
     return expression.AsIdentifier();
   }
 
+  static bool IsEvalIdentifier(PreParserExpression expression) {
+    return IsIdentifier(expression) && IsEval(AsIdentifier(expression));
+  }
+
+  static bool IsDirectEvalCall(PreParserExpression expression) {
+    return expression.IsDirectEvalCall();
+  }
+
   static bool IsFutureStrictReserved(PreParserIdentifier identifier) {
     return identifier.IsFutureStrictReserved();
   }
@@ -814,8 +860,8 @@
   }
 
   static void AddParameterInitializationBlock(
-      const PreParserFormalParameters& parameters,
-      PreParserStatementList list, bool* ok) {}
+      const PreParserFormalParameters& parameters, PreParserStatementList list,
+      bool is_async, bool* ok) {}
 
   V8_INLINE void SkipLazyFunctionBody(int* materialized_literal_count,
                                       int* expected_property_count, bool* ok) {
@@ -832,6 +878,12 @@
       PreParserExpression expression, const Scanner::Location& params_loc,
       Scanner::Location* duplicate_loc, bool* ok);
 
+  void ParseAsyncArrowSingleExpressionBody(
+      PreParserStatementList body, bool accept_IN,
+      Type::ExpressionClassifier* classifier, int pos, bool* ok);
+
+  V8_INLINE PreParserExpression ParseAsyncFunctionExpression(bool* ok);
+
   void ReindexLiterals(const PreParserFormalParameters& paramaters) {}
 
   struct TemplateLiteralState {};
@@ -888,6 +940,7 @@
                                         bool name_is_strict_reserved, int pos,
                                         bool* ok);
 
+  V8_INLINE void MarkCollectedTailCallExpressions() {}
   V8_INLINE void MarkTailPosition(PreParserExpression) {}
 
   PreParserExpressionList PrepareSpreadArguments(PreParserExpressionList list) {
@@ -903,6 +956,11 @@
                                            PreParserExpressionList args,
                                            int pos);
 
+  inline PreParserExpression ExpressionListToExpression(
+      PreParserExpressionList args) {
+    return PreParserExpression::Default();
+  }
+
   inline void RewriteDestructuringAssignments() {}
 
   inline PreParserExpression RewriteExponentiation(PreParserExpression left,
@@ -926,14 +984,14 @@
   inline void RewriteNonPattern(Type::ExpressionClassifier* classifier,
                                 bool* ok);
 
+  inline PreParserExpression RewriteAwaitExpression(PreParserExpression value,
+                                                    int pos);
+
   V8_INLINE Zone* zone() const;
   V8_INLINE ZoneList<PreParserExpression>* GetNonPatternList() const;
 
   inline PreParserExpression RewriteYieldStar(
       PreParserExpression generator, PreParserExpression expr, int pos);
-  inline PreParserExpression RewriteInstanceof(PreParserExpression lhs,
-                                               PreParserExpression rhs,
-                                               int pos);
 
  private:
   PreParser* pre_parser_;
@@ -966,19 +1024,30 @@
   PreParser(Zone* zone, Scanner* scanner, AstValueFactory* ast_value_factory,
             ParserRecorder* log, uintptr_t stack_limit)
       : ParserBase<PreParserTraits>(zone, scanner, stack_limit, NULL,
-                                    ast_value_factory, log, this) {}
+                                    ast_value_factory, log, this),
+        use_counts_(nullptr) {}
 
   // Pre-parse the program from the character stream; returns true on
   // success (even if parsing failed, the pre-parse data successfully
   // captured the syntax error), and false if a stack-overflow happened
   // during parsing.
-  PreParseResult PreParseProgram(int* materialized_literals = 0) {
+  PreParseResult PreParseProgram(int* materialized_literals = 0,
+                                 bool is_module = false) {
     Scope* scope = NewScope(scope_, SCRIPT_SCOPE);
+
+    // ModuleDeclarationInstantiation for Source Text Module Records creates a
+    // new Module Environment Record whose outer lexical environment record is
+    // the global scope.
+    if (is_module) {
+      scope = NewScope(scope, MODULE_SCOPE);
+    }
+
     PreParserFactory factory(NULL);
     FunctionState top_scope(&function_state_, &scope_, scope, kNormalFunction,
                             &factory);
     bool ok = true;
     int start_position = scanner()->peek_location().beg_pos;
+    parsing_module_ = is_module;
     ParseStatementList(Token::EOS, &ok);
     if (stack_overflow()) return kPreParseStackOverflow;
     if (!ok) {
@@ -986,6 +1055,8 @@
     } else if (is_strict(scope_->language_mode())) {
       CheckStrictOctalLiteral(start_position, scanner()->location().end_pos,
                               &ok);
+      CheckDecimalLiteralWithLeadingZero(use_counts_, start_position,
+                                         scanner()->location().end_pos);
     }
     if (materialized_literals) {
       *materialized_literals = function_state_->materialized_literal_count();
@@ -1001,9 +1072,12 @@
   // keyword and parameters, and have consumed the initial '{'.
   // At return, unless an error occurred, the scanner is positioned before the
   // the final '}'.
-  PreParseResult PreParseLazyFunction(
-      LanguageMode language_mode, FunctionKind kind, bool has_simple_parameters,
-      ParserRecorder* log, Scanner::BookmarkScope* bookmark = nullptr);
+  PreParseResult PreParseLazyFunction(LanguageMode language_mode,
+                                      FunctionKind kind,
+                                      bool has_simple_parameters,
+                                      bool parsing_module, ParserRecorder* log,
+                                      Scanner::BookmarkScope* bookmark,
+                                      int* use_counts);
 
  private:
   friend class PreParserTraits;
@@ -1027,7 +1101,12 @@
   Statement ParseSubStatement(AllowLabelledFunctionStatement allow_function,
                               bool* ok);
   Statement ParseScopedStatement(bool legacy, bool* ok);
+  Statement ParseHoistableDeclaration(bool* ok);
+  Statement ParseHoistableDeclaration(int pos, ParseFunctionFlags flags,
+                                      bool* ok);
   Statement ParseFunctionDeclaration(bool* ok);
+  Statement ParseAsyncFunctionDeclaration(bool* ok);
+  Expression ParseAsyncFunctionExpression(bool* ok);
   Statement ParseClassDeclaration(bool* ok);
   Statement ParseBlock(bool* ok);
   Statement ParseVariableStatement(VariableDeclarationContext var_context,
@@ -1077,6 +1156,8 @@
                                         Scanner::Location class_name_location,
                                         bool name_is_strict_reserved, int pos,
                                         bool* ok);
+
+  int* use_counts_;
 };
 
 
@@ -1114,6 +1195,9 @@
   // lists that are too long.
 }
 
+PreParserExpression PreParserTraits::ParseAsyncFunctionExpression(bool* ok) {
+  return pre_parser_->ParseAsyncFunctionExpression(ok);
+}
 
 PreParserExpression PreParserTraits::ParseDoExpression(bool* ok) {
   return pre_parser_->ParseDoExpression(ok);
@@ -1125,6 +1209,10 @@
   pre_parser_->ValidateExpression(classifier, ok);
 }
 
+PreParserExpression PreParserTraits::RewriteAwaitExpression(
+    PreParserExpression value, int pos) {
+  return value;
+}
 
 Zone* PreParserTraits::zone() const {
   return pre_parser_->function_state_->scope()->zone();
@@ -1141,20 +1229,20 @@
   return PreParserExpression::Default();
 }
 
-PreParserExpression PreParserTraits::RewriteInstanceof(PreParserExpression lhs,
-                                                       PreParserExpression rhs,
-                                                       int pos) {
-  return PreParserExpression::Default();
-}
-
 PreParserStatementList PreParser::ParseEagerFunctionBody(
     PreParserIdentifier function_name, int pos,
     const PreParserFormalParameters& parameters, FunctionKind kind,
     FunctionLiteral::FunctionType function_type, bool* ok) {
   ParsingModeScope parsing_mode(this, PARSE_EAGERLY);
 
-  ParseStatementList(Token::RBRACE, ok);
-  if (!*ok) return PreParserStatementList();
+  Scope* inner_scope = scope_;
+  if (!parameters.is_simple) inner_scope = NewScope(scope_, BLOCK_SCOPE);
+
+  {
+    BlockState block_state(&scope_, inner_scope);
+    ParseStatementList(Token::RBRACE, ok);
+    if (!*ok) return PreParserStatementList();
+  }
 
   Expect(Token::RBRACE, ok);
   return PreParserStatementList();
diff --git a/src/parsing/scanner-character-streams.h b/src/parsing/scanner-character-streams.h
index 603db93..7e065cf 100644
--- a/src/parsing/scanner-character-streams.h
+++ b/src/parsing/scanner-character-streams.h
@@ -158,8 +158,10 @@
 
   void PushBack(uc32 character) override {
     DCHECK(buffer_cursor_ > raw_data_);
-    buffer_cursor_--;
     pos_--;
+    if (character != kEndOfInput) {
+      buffer_cursor_--;
+    }
   }
 
   bool SetBookmark() override;
diff --git a/src/parsing/scanner.cc b/src/parsing/scanner.cc
index 698cb5e..6a9b32e 100644
--- a/src/parsing/scanner.cc
+++ b/src/parsing/scanner.cc
@@ -40,6 +40,7 @@
     : unicode_cache_(unicode_cache),
       bookmark_c0_(kNoBookmark),
       octal_pos_(Location::invalid()),
+      decimal_with_leading_zero_pos_(Location::invalid()),
       found_html_comment_(false),
       allow_harmony_exponentiation_operator_(false) {
   bookmark_current_.literal_chars = &bookmark_current_literal_;
@@ -249,6 +250,7 @@
   if (V8_UNLIKELY(next_next_.token != Token::UNINITIALIZED)) {
     next_ = next_next_;
     next_next_.token = Token::UNINITIALIZED;
+    has_line_terminator_before_next_ = has_line_terminator_after_next_;
     return current_.token;
   }
   has_line_terminator_before_next_ = false;
@@ -274,7 +276,12 @@
     return next_next_.token;
   }
   TokenDesc prev = current_;
+  bool has_line_terminator_before_next =
+      has_line_terminator_before_next_ || has_multiline_comment_before_next_;
   Next();
+  has_line_terminator_after_next_ =
+      has_line_terminator_before_next_ || has_multiline_comment_before_next_;
+  has_line_terminator_before_next_ = has_line_terminator_before_next;
   Token::Value ret = next_.token;
   next_next_ = next_;
   next_ = current_;
@@ -975,10 +982,18 @@
 Token::Value Scanner::ScanNumber(bool seen_period) {
   DCHECK(IsDecimalDigit(c0_));  // the first digit of the number or the fraction
 
-  enum { DECIMAL, HEX, OCTAL, IMPLICIT_OCTAL, BINARY } kind = DECIMAL;
+  enum {
+    DECIMAL,
+    DECIMAL_WITH_LEADING_ZERO,
+    HEX,
+    OCTAL,
+    IMPLICIT_OCTAL,
+    BINARY
+  } kind = DECIMAL;
 
   LiteralScope literal(this);
   bool at_start = !seen_period;
+  int start_pos = source_pos();  // For reporting octal positions.
   if (seen_period) {
     // we have already seen a decimal point of the float
     AddLiteralChar('.');
@@ -987,7 +1002,6 @@
   } else {
     // if the first character is '0' we must check for octals and hex
     if (c0_ == '0') {
-      int start_pos = source_pos();  // For reporting octal positions.
       AddLiteralCharAdvance();
 
       // either 0, 0exxx, 0Exxx, 0.xxx, a hex number, a binary number or
@@ -1029,7 +1043,7 @@
         while (true) {
           if (c0_ == '8' || c0_ == '9') {
             at_start = false;
-            kind = DECIMAL;
+            kind = DECIMAL_WITH_LEADING_ZERO;
             break;
           }
           if (c0_  < '0' || '7'  < c0_) {
@@ -1039,11 +1053,13 @@
           }
           AddLiteralCharAdvance();
         }
+      } else if (c0_ == '8' || c0_ == '9') {
+        kind = DECIMAL_WITH_LEADING_ZERO;
       }
     }
 
     // Parse decimal digits and allow trailing fractional part.
-    if (kind == DECIMAL) {
+    if (kind == DECIMAL || kind == DECIMAL_WITH_LEADING_ZERO) {
       if (at_start) {
         uint64_t value = 0;
         while (IsDecimalDigit(c0_)) {
@@ -1060,6 +1076,8 @@
           literal.Complete();
           HandleLeadSurrogate();
 
+          if (kind == DECIMAL_WITH_LEADING_ZERO)
+            decimal_with_leading_zero_pos_ = Location(start_pos, source_pos());
           return Token::SMI;
         }
         HandleLeadSurrogate();
@@ -1076,7 +1094,8 @@
   // scan exponent, if any
   if (c0_ == 'e' || c0_ == 'E') {
     DCHECK(kind != HEX);  // 'e'/'E' must be scanned as part of the hex number
-    if (kind != DECIMAL) return Token::ILLEGAL;
+    if (!(kind == DECIMAL || kind == DECIMAL_WITH_LEADING_ZERO))
+      return Token::ILLEGAL;
     // scan exponent
     AddLiteralCharAdvance();
     if (c0_ == '+' || c0_ == '-')
@@ -1098,6 +1117,8 @@
 
   literal.Complete();
 
+  if (kind == DECIMAL_WITH_LEADING_ZERO)
+    decimal_with_leading_zero_pos_ = Location(start_pos, source_pos());
   return Token::NUMBER;
 }
 
@@ -1135,6 +1156,9 @@
 // Keyword Matcher
 
 #define KEYWORDS(KEYWORD_GROUP, KEYWORD)                    \
+  KEYWORD_GROUP('a')                                        \
+  KEYWORD("async", Token::ASYNC)                            \
+  KEYWORD("await", Token::AWAIT)                            \
   KEYWORD_GROUP('b')                                        \
   KEYWORD("break", Token::BREAK)                            \
   KEYWORD_GROUP('c')                                        \
@@ -1150,7 +1174,7 @@
   KEYWORD("do", Token::DO)                                  \
   KEYWORD_GROUP('e')                                        \
   KEYWORD("else", Token::ELSE)                              \
-  KEYWORD("enum", Token::FUTURE_RESERVED_WORD)              \
+  KEYWORD("enum", Token::ENUM)                              \
   KEYWORD("export", Token::EXPORT)                          \
   KEYWORD("extends", Token::EXTENDS)                        \
   KEYWORD_GROUP('f')                                        \
@@ -1196,7 +1220,6 @@
   KEYWORD_GROUP('y')                                        \
   KEYWORD("yield", Token::YIELD)
 
-
 static Token::Value KeywordOrIdentifierToken(const uint8_t* input,
                                              int input_length, bool escaped) {
   DCHECK(input_length >= 1);
diff --git a/src/parsing/scanner.h b/src/parsing/scanner.h
index 22c504c..0acc7ab 100644
--- a/src/parsing/scanner.h
+++ b/src/parsing/scanner.h
@@ -225,8 +225,14 @@
     } else {
       is_one_byte_ = other->is_one_byte_;
       position_ = other->position_;
-      backing_store_.Dispose();
-      backing_store_ = other->backing_store_.Clone();
+      if (position_ < backing_store_.length()) {
+        std::copy(other->backing_store_.begin(),
+                  other->backing_store_.begin() + position_,
+                  backing_store_.begin());
+      } else {
+        backing_store_.Dispose();
+        backing_store_ = other->backing_store_.Clone();
+      }
     }
   }
 
@@ -419,6 +425,13 @@
   // Returns the location of the last seen octal literal.
   Location octal_position() const { return octal_pos_; }
   void clear_octal_position() { octal_pos_ = Location::invalid(); }
+  // Returns the location of the last seen decimal literal with a leading zero.
+  Location decimal_with_leading_zero_position() const {
+    return decimal_with_leading_zero_pos_;
+  }
+  void clear_decimal_with_leading_zero_position() {
+    decimal_with_leading_zero_pos_ = Location::invalid();
+  }
 
   // Returns the value of the last smi that was scanned.
   int smi_value() const { return current_.smi_value_; }
@@ -436,6 +449,12 @@
            has_multiline_comment_before_next_;
   }
 
+  bool HasAnyLineTerminatorAfterNext() {
+    Token::Value ensure_next_next = PeekAhead();
+    USE(ensure_next_next);
+    return has_line_terminator_after_next_;
+  }
+
   // Scans the input as a regular expression pattern, previous
   // character(s) must be /(=). Returns true if a pattern is scanned.
   bool ScanRegExpPattern(bool seen_equal);
@@ -582,7 +601,7 @@
   }
 
   void PushBack(uc32 ch) {
-    if (ch > static_cast<uc32>(unibrow::Utf16::kMaxNonSurrogateCharCode)) {
+    if (c0_ > static_cast<uc32>(unibrow::Utf16::kMaxNonSurrogateCharCode)) {
       source_->PushBack(unibrow::Utf16::TrailSurrogate(c0_));
       source_->PushBack(unibrow::Utf16::LeadSurrogate(c0_));
     } else {
@@ -766,9 +785,9 @@
   // Input stream. Must be initialized to an Utf16CharacterStream.
   Utf16CharacterStream* source_;
 
-
-  // Start position of the octal literal last scanned.
+  // Last-seen positions of potentially problematic tokens.
   Location octal_pos_;
+  Location decimal_with_leading_zero_pos_;
 
   // One Unicode character look-ahead; c0_ < 0 at the end of the input.
   uc32 c0_;
@@ -780,6 +799,7 @@
   // Whether there is a multi-line comment that contains a
   // line-terminator after the current token, and before the next.
   bool has_multiline_comment_before_next_;
+  bool has_line_terminator_after_next_;
 
   // Whether this scanner encountered an HTML comment.
   bool found_html_comment_;
diff --git a/src/parsing/token.h b/src/parsing/token.h
index fae9ea8..8b44cda 100644
--- a/src/parsing/token.h
+++ b/src/parsing/token.h
@@ -148,10 +148,13 @@
   T(IDENTIFIER, NULL, 0)                                             \
                                                                      \
   /* Future reserved words (ECMA-262, section 7.6.1.2). */           \
-  T(FUTURE_RESERVED_WORD, NULL, 0)                                   \
   T(FUTURE_STRICT_RESERVED_WORD, NULL, 0)                            \
+  K(ASYNC, "async", 0)                                               \
+  /* `await` is a reserved word in module code only */               \
+  K(AWAIT, "await", 0)                                               \
   K(CLASS, "class", 0)                                               \
   K(CONST, "const", 0)                                               \
+  K(ENUM, "enum", 0)                                                 \
   K(EXPORT, "export", 0)                                             \
   K(EXTENDS, "extends", 0)                                           \
   K(IMPORT, "import", 0)                                             \
@@ -173,7 +176,6 @@
   T(TEMPLATE_SPAN, NULL, 0)                                          \
   T(TEMPLATE_TAIL, NULL, 0)
 
-
 class Token {
  public:
   // All token values.
@@ -197,9 +199,10 @@
   }
 
   static bool IsIdentifier(Value tok, LanguageMode language_mode,
-                           bool is_generator) {
+                           bool is_generator, bool is_module) {
     switch (tok) {
       case IDENTIFIER:
+      case ASYNC:
         return true;
       case ESCAPED_STRICT_RESERVED_WORD:
       case FUTURE_STRICT_RESERVED_WORD:
@@ -208,6 +211,8 @@
         return is_sloppy(language_mode);
       case YIELD:
         return !is_generator && is_sloppy(language_mode);
+      case AWAIT:
+        return !is_module;
       default:
         return false;
     }
diff --git a/src/ppc/assembler-ppc-inl.h b/src/ppc/assembler-ppc-inl.h
index c495fee..59d3248 100644
--- a/src/ppc/assembler-ppc-inl.h
+++ b/src/ppc/assembler-ppc-inl.h
@@ -89,11 +89,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Assembler::target_address_at(pc_, host_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_) ||
          rmode_ == EMBEDDED_OBJECT || rmode_ == EXTERNAL_REFERENCE);
@@ -183,19 +178,6 @@
   return pc + (len + 2) * kInstrSize;
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Assembler::set_target_address_at(isolate_, pc_, host_, updated_reference,
-                                   icache_flush_mode);
-}
-
 Object* RelocInfo::target_object() {
   DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
   return reinterpret_cast<Object*>(Assembler::target_address_at(pc_, host_));
@@ -343,7 +325,7 @@
   }
 }
 
-
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/ppc/assembler-ppc.cc b/src/ppc/assembler-ppc.cc
index 507eec1..bf59955 100644
--- a/src/ppc/assembler-ppc.cc
+++ b/src/ppc/assembler-ppc.cc
@@ -155,6 +155,43 @@
   return false;
 }
 
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Assembler::target_address_at(pc_, host_);
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return static_cast<uint32_t>(
+     reinterpret_cast<intptr_t>(Assembler::target_address_at(pc_, host_)));
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_)) {
+    Address updated_memory_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_memory_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_memory_reference &&
+           updated_memory_reference < new_base + new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, updated_memory_reference, icache_flush_mode);
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, reinterpret_cast<Address>(updated_size_reference),
+        icache_flush_mode);
+  } else {
+    UNREACHABLE();
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Implementation of Operand and MemOperand
diff --git a/src/ppc/assembler-ppc.h b/src/ppc/assembler-ppc.h
index 3e8be7d..a9cf730 100644
--- a/src/ppc/assembler-ppc.h
+++ b/src/ppc/assembler-ppc.h
@@ -109,6 +109,8 @@
   V(d16) V(d17) V(d18) V(d19) V(d20) V(d21) V(d22) V(d23) \
   V(d24) V(d25) V(d26) V(d27) V(d28) V(d29) V(d30) V(d31)
 
+#define FLOAT_REGISTERS DOUBLE_REGISTERS
+
 #define ALLOCATABLE_DOUBLE_REGISTERS(V)                   \
   V(d1)  V(d2)  V(d3)  V(d4)  V(d5)  V(d6)  V(d7)         \
   V(d8)  V(d9)  V(d10) V(d11) V(d12) V(d15)               \
@@ -238,6 +240,11 @@
   int reg_code;
 };
 
+typedef DoubleRegister FloatRegister;
+
+// TODO(ppc) Define SIMD registers.
+typedef DoubleRegister Simd128Register;
+
 #define DECLARE_REGISTER(R) \
   const DoubleRegister R = {DoubleRegister::kCode_##R};
 DOUBLE_REGISTERS(DECLARE_REGISTER)
@@ -283,9 +290,6 @@
 const CRegister cr6 = {6};
 const CRegister cr7 = {7};
 
-// TODO(ppc) Define SIMD registers.
-typedef DoubleRegister Simd128Register;
-
 // -----------------------------------------------------------------------------
 // Machine instruction Operands
 
@@ -1210,7 +1214,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   // Writes a single byte or word of data in the code stream.  Used
   // for inline tables, e.g., jump-tables.
diff --git a/src/ppc/builtins-ppc.cc b/src/ppc/builtins-ppc.cc
index 884afed..a6263cd 100644
--- a/src/ppc/builtins-ppc.cc
+++ b/src/ppc/builtins-ppc.cc
@@ -605,15 +605,10 @@
     // r3: number of arguments
     // r4: constructor function
     // r6: new target
-    if (is_api_function) {
-      __ LoadP(cp, FieldMemOperand(r4, JSFunction::kContextOffset));
-      Handle<Code> code = masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ Call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(r3);
-      __ InvokeFunction(r4, r6, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+
+    ParameterCount actual(r3);
+    __ InvokeFunction(r4, r6, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -705,6 +700,150 @@
   Generate_JSConstructStubHelper(masm, false, false, true);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r3 : the value to pass to the generator
+  //  -- r4 : the JSGeneratorObject to resume
+  //  -- r5 : the resume mode (tagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(r4);
+
+  // Store input value into generator object.
+  __ StoreP(r3, FieldMemOperand(r4, JSGeneratorObject::kInputOffset), r0);
+  __ RecordWriteField(r4, JSGeneratorObject::kInputOffset, r3, r6,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ StoreP(r5, FieldMemOperand(r4, JSGeneratorObject::kResumeModeOffset), r0);
+
+  // Load suspended function and context.
+  __ LoadP(cp, FieldMemOperand(r4, JSGeneratorObject::kContextOffset));
+  __ LoadP(r7, FieldMemOperand(r4, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  __ mov(ip, Operand(step_in_enabled));
+  __ lbz(ip, MemOperand(ip));
+  __ cmpi(ip, Operand::Zero());
+  __ beq(&skip_flooding);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r4, r5, r7);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(r4, r5);
+    __ LoadP(r7, FieldMemOperand(r4, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Push receiver.
+  __ LoadP(ip, FieldMemOperand(r4, JSGeneratorObject::kReceiverOffset));
+  __ Push(ip);
+
+  // ----------- S t a t e -------------
+  //  -- r4    : the JSGeneratorObject to resume
+  //  -- r5    : the resume mode (tagged)
+  //  -- r7    : generator function
+  //  -- cp    : generator context
+  //  -- lr    : return address
+  //  -- sp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ LoadP(r6, FieldMemOperand(r7, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadWordArith(
+      r3, FieldMemOperand(r6, SharedFunctionInfo::kFormalParameterCountOffset));
+  {
+    Label loop, done_loop;
+    __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
+#if V8_TARGET_ARCH_PPC64
+    __ cmpi(r3, Operand::Zero());
+    __ beq(&done_loop);
+#else
+    __ SmiUntag(r3, SetRC);
+    __ beq(&done_loop, cr0);
+#endif
+    __ mtctr(r3);
+    __ bind(&loop);
+    __ push(ip);
+    __ bdnz(&loop);
+    __ bind(&done_loop);
+  }
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ LoadP(r6, FieldMemOperand(r6, SharedFunctionInfo::kFunctionDataOffset));
+  __ CompareObjectType(r6, r6, r6, BYTECODE_ARRAY_TYPE);
+  __ bne(&old_generator);
+
+  // New-style (ignition/turbofan) generator object
+  {
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ mr(r6, r4);
+    __ mr(r4, r7);
+    __ LoadP(ip, FieldMemOperand(r4, JSFunction::kCodeEntryOffset));
+    __ JumpToJSEntry(ip);
+  }
+
+  // Old-style (full-codegen) generator object
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ PushStandardFrame(r7);
+
+    // Restore the operand stack.
+    __ LoadP(r3, FieldMemOperand(r4, JSGeneratorObject::kOperandStackOffset));
+    __ LoadP(r6, FieldMemOperand(r3, FixedArray::kLengthOffset));
+    __ addi(r3, r3,
+            Operand(FixedArray::kHeaderSize - kHeapObjectTag - kPointerSize));
+    {
+      Label loop, done_loop;
+      __ SmiUntag(r6, SetRC);
+      __ beq(&done_loop, cr0);
+      __ mtctr(r6);
+      __ bind(&loop);
+      __ LoadPU(ip, MemOperand(r3, kPointerSize));
+      __ Push(ip);
+      __ bdnz(&loop);
+      __ bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ LoadRoot(ip, Heap::kEmptyFixedArrayRootIndex);
+    __ StoreP(ip, FieldMemOperand(r4, JSGeneratorObject::kOperandStackOffset),
+              r0);
+
+    // Resume the generator function at the continuation.
+    __ LoadP(r6, FieldMemOperand(r7, JSFunction::kSharedFunctionInfoOffset));
+    __ LoadP(r6, FieldMemOperand(r6, SharedFunctionInfo::kCodeOffset));
+    __ addi(r6, r6, Operand(Code::kHeaderSize - kHeapObjectTag));
+    {
+      ConstantPoolUnavailableScope constant_pool_unavailable(masm);
+      if (FLAG_enable_embedded_constant_pool) {
+        __ LoadConstantPoolPointerRegisterFromCodeTargetAddress(r6);
+      }
+      __ LoadP(r5, FieldMemOperand(r4, JSGeneratorObject::kContinuationOffset));
+      __ SmiUntag(r5);
+      __ add(r6, r6, r5);
+      __ LoadSmiLiteral(r5,
+                        Smi::FromInt(JSGeneratorObject::kGeneratorExecuting));
+      __ StoreP(r5, FieldMemOperand(r4, JSGeneratorObject::kContinuationOffset),
+                r0);
+      __ mr(r3, r4);  // Continuation expects generator object in r3.
+      __ Jump(r6);
+    }
+  }
+}
 
 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
   FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
@@ -847,14 +986,16 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
   FrameScope frame_scope(masm, StackFrame::MANUAL);
   __ PushStandardFrame(r4);
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into kInterpreterBytecodeRegister.
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ LoadP(r3, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
   Label array_done;
   Register debug_info = r5;
@@ -870,8 +1011,13 @@
            FieldMemOperand(debug_info, DebugInfo::kAbstractCodeIndex));
   __ bind(&array_done);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ CompareRoot(kInterpreterBytecodeArrayRegister,
+                 Heap::kUndefinedValueRootIndex);
+  __ beq(&bytecode_array_not_present);
+
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ TestIfSmi(kInterpreterBytecodeArrayRegister, r0);
     __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
     __ CompareObjectType(kInterpreterBytecodeArrayRegister, r3, no_reg,
@@ -879,8 +1025,12 @@
     __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
   }
 
-  // Push new.target, bytecode array and zero for bytecode array offset.
-  __ li(r3, Operand::Zero());
+  // Load initial bytecode offset.
+  __ mov(kInterpreterBytecodeOffsetRegister,
+         Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
+
+  // Push new.target, bytecode array and Smi tagged bytecode array offset.
+  __ SmiTag(r3, kInterpreterBytecodeOffsetRegister);
   __ Push(r6, kInterpreterBytecodeArrayRegister, r3);
 
   // Allocate the local and temporary register file on the stack.
@@ -911,18 +1061,8 @@
     __ bind(&no_args);
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load accumulator, register file, bytecode offset, dispatch table into
-  // registers.
+  // Load accumulator and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ addi(kInterpreterRegisterFileRegister, fp,
-          Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
-  __ mov(kInterpreterBytecodeOffsetRegister,
-         Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
   __ mov(kInterpreterDispatchTableRegister,
          Operand(ExternalReference::interpreter_dispatch_table_address(
              masm->isolate())));
@@ -932,33 +1072,33 @@
                          kInterpreterBytecodeOffsetRegister));
   __ ShiftLeftImm(ip, r4, Operand(kPointerSizeLog2));
   __ LoadPX(ip, MemOperand(kInterpreterDispatchTableRegister, ip));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ addi(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Call(ip);
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
-}
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
+  // The return value is in r3.
 
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
-
-  // The return value is in accumulator, which is already in r3.
+  // Get the arguments + reciever count.
+  __ LoadP(r5, MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ lwz(r5, FieldMemOperand(r5, BytecodeArray::kParameterSizeOffset));
 
   // Leave the frame (also dropping the register file).
   __ LeaveFrame(StackFrame::JAVA_SCRIPT);
 
-  // Drop receiver + arguments and return.
-  __ lwz(r0, FieldMemOperand(kInterpreterBytecodeArrayRegister,
-                             BytecodeArray::kParameterSizeOffset));
-  __ add(sp, sp, r0);
+  __ add(sp, sp, r5);
   __ blr();
+
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ bind(&bytecode_array_not_present);
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+  __ LoadP(r7, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadP(r7, FieldMemOperand(r7, SharedFunctionInfo::kCodeOffset));
+  __ addi(r7, r7, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ StoreP(r7, FieldMemOperand(r4, JSFunction::kCodeEntryOffset), r0);
+  __ RecordWriteCodeEntryField(r4, r7, r8);
+  __ JumpToJSEntry(r7);
 }
 
 
@@ -973,7 +1113,6 @@
   __ bdnz(&loop);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -997,7 +1136,6 @@
           RelocInfo::CODE_TARGET);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm) {
   // ----------- S t a t e -------------
@@ -1022,25 +1160,25 @@
   __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
 }
 
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ Move(r5, masm->isolate()->builtins()->InterpreterEntryTrampoline());
+  __ addi(r0, r5, Operand(interpreter_entry_return_pc_offset->value() +
+                          Code::kHeaderSize - kHeapObjectTag));
+  __ mtlr(r0);
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register and dispatch table register.
-  __ addi(kInterpreterRegisterFileRegister, fp,
-          Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+  // Initialize the dispatch table register.
   __ mov(kInterpreterDispatchTableRegister,
          Operand(ExternalReference::interpreter_dispatch_table_address(
              masm->isolate())));
 
-  // Get the context from the frame.
-  __ LoadP(kContextRegister,
-           MemOperand(kInterpreterRegisterFileRegister,
-                      InterpreterFrameConstants::kContextFromRegisterPointer));
-
   // Get the bytecode array pointer from the frame.
-  __ LoadP(
-      kInterpreterBytecodeArrayRegister,
-      MemOperand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+  __ LoadP(kInterpreterBytecodeArrayRegister,
+          MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -1053,9 +1191,7 @@
 
   // Get the target bytecode offset from the frame.
   __ LoadP(kInterpreterBytecodeOffsetRegister,
-           MemOperand(
-               kInterpreterRegisterFileRegister,
-               InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+          MemOperand(fp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiUntag(kInterpreterBytecodeOffsetRegister);
 
   // Dispatch to the target bytecode.
@@ -1063,65 +1199,157 @@
                          kInterpreterBytecodeOffsetRegister));
   __ ShiftLeftImm(ip, r4, Operand(kPointerSizeLog2));
   __ LoadPX(ip, MemOperand(kInterpreterDispatchTableRegister, ip));
-  __ addi(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Jump(ip);
 }
 
 
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ LoadSmiLiteral(r4, Smi::FromInt(static_cast<int>(type)));
-    __ Push(r4);
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register.
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ mov(r0,
-         Operand(masm->isolate()->builtins()->InterpreterEntryTrampoline()));
-  __ mtlr(r0);
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r3 : argument count (preserved for callee)
+  //  -- r6 : new target (preserved for callee)
+  //  -- r4 : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register closure = r4;
+  Register map = r9;
+  Register index = r5;
+  __ LoadP(map,
+           FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadP(map,
+           FieldMemOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ LoadP(index, FieldMemOperand(map, FixedArray::kLengthOffset));
+  __ CmpSmiLiteral(index, Smi::FromInt(2), r0);
+  __ blt(&gotta_call_runtime);
+
+  // Find literals.
+  // r10 : native context
+  // r5  : length / index
+  // r9  : optimized code map
+  // r6  : new target
+  // r4  : closure
+  Register native_context = r10;
+  __ LoadP(native_context, NativeContextMemOperand());
+
+  __ bind(&loop_top);
+  Register temp = r11;
+  Register array_pointer = r8;
+
+  // Does the native context match?
+  __ SmiToPtrArrayOffset(array_pointer, index);
+  __ add(array_pointer, map, array_pointer);
+  __ LoadP(temp, FieldMemOperand(array_pointer,
+                                 SharedFunctionInfo::kOffsetToPreviousContext));
+  __ LoadP(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ cmp(temp, native_context);
+  __ bne(&loop_bottom);
+  // OSR id set to none?
+  __ LoadP(temp,
+           FieldMemOperand(array_pointer,
+                           SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  const int bailout_id = BailoutId::None().ToInt();
+  __ CmpSmiLiteral(temp, Smi::FromInt(bailout_id), r0);
+  __ bne(&loop_bottom);
+  // Literals available?
+  __ LoadP(temp,
+           FieldMemOperand(array_pointer,
+                           SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ LoadP(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ StoreP(temp, FieldMemOperand(closure, JSFunction::kLiteralsOffset), r0);
+  __ RecordWriteField(closure, JSFunction::kLiteralsOffset, temp, r7,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+
+  // Code available?
+  Register entry = r7;
+  __ LoadP(entry,
+           FieldMemOperand(array_pointer,
+                           SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ LoadP(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  // Store code entry in the closure.
+  __ addi(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+
+  Label install_optimized_code_and_tailcall;
+  __ bind(&install_optimized_code_and_tailcall);
+  __ StoreP(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset), r0);
+  __ RecordWriteCodeEntryField(closure, entry, r8);
+
+  // Link the closure into the optimized function list.
+  // r7 : code entry
+  // r10: native context
+  // r4 : closure
+  __ LoadP(
+      r8, ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ StoreP(r8, FieldMemOperand(closure, JSFunction::kNextFunctionLinkOffset),
+            r0);
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, r8, temp,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ StoreP(
+      closure,
+      ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST), r0);
+  // Save closure before the write barrier.
+  __ mr(r8, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, r8, temp,
+                            kLRHasNotBeenSaved, kDontSaveFPRegs);
+  __ JumpToJSEntry(entry);
+
+  __ bind(&loop_bottom);
+  __ SubSmiLiteral(index, index, Smi::FromInt(SharedFunctionInfo::kEntryLength),
+                   r0);
+  __ CmpSmiLiteral(index, Smi::FromInt(1), r0);
+  __ bgt(&loop_top);
+
+  // We found neither literals nor code.
+  __ b(&gotta_call_runtime);
+
+  __ bind(&maybe_call_runtime);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ LoadP(entry,
+           FieldMemOperand(map, FixedArray::kHeaderSize +
+                                    SharedFunctionInfo::kSharedCodeIndex));
+  __ LoadP(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ addi(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ b(&install_optimized_code_and_tailcall);
+
+  __ bind(&try_shared);
+  // Is the full code valid?
+  __ LoadP(entry,
+           FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadP(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ lwz(r8, FieldMemOperand(entry, Code::kFlagsOffset));
+  __ DecodeField<Code::KindField>(r8);
+  __ cmpi(r8, Operand(Code::BUILTIN));
+  __ beq(&gotta_call_runtime);
+  // Yes, install the full code.
+  __ addi(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ StoreP(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset), r0);
+  __ RecordWriteCodeEntryField(closure, entry, r8);
+  __ JumpToJSEntry(entry);
+
+  __ bind(&gotta_call_runtime);
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
 
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
@@ -1267,14 +1495,19 @@
   __ SmiUntag(r9);
   // Switch on the state.
   Label with_tos_register, unknown_state;
-  __ cmpi(r9, Operand(FullCodeGenerator::NO_REGISTERS));
+  __ cmpi(
+      r9,
+      Operand(static_cast<intptr_t>(Deoptimizer::BailoutState::NO_REGISTERS)));
   __ bne(&with_tos_register);
   __ addi(sp, sp, Operand(1 * kPointerSize));  // Remove state.
   __ Ret();
 
   __ bind(&with_tos_register);
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), r3.code());
   __ LoadP(r3, MemOperand(sp, 1 * kPointerSize));
-  __ cmpi(r9, Operand(FullCodeGenerator::TOS_REG));
+  __ cmpi(
+      r9,
+      Operand(static_cast<intptr_t>(Deoptimizer::BailoutState::TOS_REGISTER)));
   __ bne(&unknown_state);
   __ addi(sp, sp, Operand(2 * kPointerSize));  // Remove state.
   __ Ret();
@@ -1497,28 +1730,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- r3    : argc
-  //  -- sp[0] : first argument (left-hand side)
-  //  -- sp[4] : receiver (right-hand side)
-  // -----------------------------------
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ LoadP(InstanceOfDescriptor::LeftRegister(),
-             MemOperand(fp, 2 * kPointerSize));  // Load left-hand side.
-    __ LoadP(InstanceOfDescriptor::RightRegister(),
-             MemOperand(fp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ Ret(2);
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- r3    : argc
@@ -2460,6 +2671,30 @@
           RelocInfo::CODE_TARGET);
 }
 
+// static
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r4 : requested object size (untagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ SmiTag(r4);
+  __ Push(r4);
+  __ LoadSmiLiteral(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
+}
+
+// static
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r4 : requested object size (untagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ SmiTag(r4);
+  __ LoadSmiLiteral(r5, Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ Push(r4, r5);
+  __ LoadSmiLiteral(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
+}
 
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
diff --git a/src/ppc/code-stubs-ppc.cc b/src/ppc/code-stubs-ppc.cc
index 0671f99..f0f74c3 100644
--- a/src/ppc/code-stubs-ppc.cc
+++ b/src/ppc/code-stubs-ppc.cc
@@ -54,12 +54,6 @@
 }
 
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -72,11 +66,6 @@
 }
 
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(r3, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -1383,126 +1372,6 @@
 }
 
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = r4;              // Object (lhs).
-  Register const function = r3;            // Function (rhs).
-  Register const object_map = r5;          // Map of {object}.
-  Register const function_map = r6;        // Map of {function}.
-  Register const function_prototype = r7;  // Prototype of {function}.
-  Register const scratch = r8;
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ LoadP(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ CompareRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ bne(&fast_case);
-  __ CompareRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-  __ bne(&fast_case);
-  __ LoadRoot(r3, Heap::kInstanceofCacheAnswerRootIndex);
-  __ Ret();
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ CompareObjectType(function, function_map, scratch, JS_FUNCTION_TYPE);
-  __ bne(&slow_case);
-  __ LoadRoot(r3, Heap::kFalseValueRootIndex);
-  __ Ret();
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ CompareObjectType(function, function_map, scratch, JS_FUNCTION_TYPE);
-  __ bne(&slow_case);
-
-  // Go to the runtime if the function is not a constructor.
-  __ lbz(scratch, FieldMemOperand(function_map, Map::kBitFieldOffset));
-  __ TestBit(scratch, Map::kIsConstructor, r0);
-  __ beq(&slow_case, cr0);
-
-  // Ensure that {function} has an instance prototype.
-  __ TestBit(scratch, Map::kHasNonInstancePrototype, r0);
-  __ bne(&slow_case, cr0);
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ LoadP(function_prototype,
-           FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  __ CompareObjectType(function_prototype, scratch, scratch, MAP_TYPE);
-  __ bne(&function_prototype_valid);
-  __ LoadP(function_prototype,
-           FieldMemOperand(function_prototype, Map::kPrototypeOffset));
-  __ bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Register const object_instance_type = function_map;
-  Register const map_bit_field = function_map;
-  Register const null = scratch;
-  Register const result = r3;
-
-  Label done, loop, fast_runtime_fallback;
-  __ LoadRoot(result, Heap::kTrueValueRootIndex);
-  __ LoadRoot(null, Heap::kNullValueRootIndex);
-  __ bind(&loop);
-
-  // Check if the object needs to be access checked.
-  __ lbz(map_bit_field, FieldMemOperand(object_map, Map::kBitFieldOffset));
-  __ TestBit(map_bit_field, Map::kIsAccessCheckNeeded, r0);
-  __ bne(&fast_runtime_fallback, cr0);
-  // Check if the current object is a Proxy.
-  __ CompareInstanceType(object_map, object_instance_type, JS_PROXY_TYPE);
-  __ beq(&fast_runtime_fallback);
-
-  __ LoadP(object, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ cmp(object, function_prototype);
-  __ beq(&done);
-  __ cmp(object, null);
-  __ LoadP(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ bne(&loop);
-  __ LoadRoot(result, Heap::kFalseValueRootIndex);
-  __ bind(&done);
-  __ StoreRoot(result, Heap::kInstanceofCacheAnswerRootIndex);
-  __ Ret();
-
-  // Found Proxy or access check needed: Call the runtime
-  __ bind(&fast_runtime_fallback);
-  __ Push(object, function_prototype);
-  // Invalidate the instanceof cache.
-  __ LoadSmiLiteral(scratch, Smi::FromInt(0));
-  __ StoreRoot(scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ Push(object, function);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
-
 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
   Label miss;
   Register receiver = LoadDescriptor::ReceiverRegister();
@@ -3960,8 +3829,8 @@
   __ bind(&not_array);
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ bne(&miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
                                                receiver, name, feedback,
                                                receiver_map, scratch1, r10);
@@ -4105,8 +3974,8 @@
   __ bind(&not_array);
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ bne(&miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(
       masm, Code::STORE_IC, code_flags, receiver, key, feedback, receiver_map,
       scratch1, scratch2);
@@ -4698,15 +4567,15 @@
   __ bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ StoreP(r5, MemOperand(r3, JSObject::kMapOffset));
+  __ StoreP(r5, FieldMemOperand(r3, JSObject::kMapOffset), r0);
   __ LoadRoot(r6, Heap::kEmptyFixedArrayRootIndex);
-  __ StoreP(r6, MemOperand(r3, JSObject::kPropertiesOffset));
-  __ StoreP(r6, MemOperand(r3, JSObject::kElementsOffset));
+  __ StoreP(r6, FieldMemOperand(r3, JSObject::kPropertiesOffset), r0);
+  __ StoreP(r6, FieldMemOperand(r3, JSObject::kElementsOffset), r0);
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
-  __ addi(r4, r3, Operand(JSObject::kHeaderSize));
+  __ addi(r4, r3, Operand(JSObject::kHeaderSize - kHeapObjectTag));
 
   // ----------- S t a t e -------------
-  //  -- r3 : result (untagged)
+  //  -- r3 : result (tagged)
   //  -- r4 : result fields (untagged)
   //  -- r8 : result end (untagged)
   //  -- r5 : initial map
@@ -4724,9 +4593,6 @@
   {
     // Initialize all in-object fields with undefined.
     __ InitializeFieldsWithFiller(r4, r8, r9);
-
-    // Add the object tag to make the JSObject real.
-    __ addi(r3, r3, Operand(kHeapObjectTag));
     __ Ret();
   }
   __ bind(&slack_tracking);
@@ -4746,9 +4612,6 @@
     __ LoadRoot(r9, Heap::kOnePointerFillerMapRootIndex);
     __ InitializeFieldsWithFiller(r4, r8, r9);
 
-    // Add the object tag to make the JSObject real.
-    __ addi(r3, r3, Operand(kHeapObjectTag));
-
     // Check if we can finalize the instance size.
     __ cmpi(r10, Operand(Map::kSlackTrackingCounterEnd));
     __ Ret(ne);
@@ -4774,10 +4637,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(r5);
   }
-  __ subi(r3, r3, Operand(kHeapObjectTag));
   __ lbz(r8, FieldMemOperand(r5, Map::kInstanceSizeOffset));
   __ ShiftLeftImm(r8, r8, Operand(kPointerSizeLog2));
   __ add(r8, r3, r8);
+  __ subi(r8, r8, Operand(kHeapObjectTag));
   __ b(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4795,20 +4658,20 @@
   // -----------------------------------
   __ AssertFunction(r4);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make r5 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ mr(r5, fp);
-    __ b(&loop_entry);
-    __ bind(&loop);
+  // Make r5 point to the JavaScript frame.
+  __ mr(r5, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ LoadP(r5, MemOperand(r5, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ LoadP(ip, MemOperand(r5, StandardFrameConstants::kFunctionOffset));
     __ cmp(ip, r4);
-    __ bne(&loop);
+    __ beq(&ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4842,7 +4705,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, r3, r4, r5, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, r3, r4, r5, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the rest parameter array in r0.
@@ -4885,7 +4748,7 @@
     Label allocate, done_allocate;
     __ mov(r4, Operand(JSArray::kSize + FixedArray::kHeaderSize));
     __ add(r4, r4, r9);
-    __ Allocate(r4, r6, r7, r8, &allocate, TAG_OBJECT);
+    __ Allocate(r4, r6, r7, r8, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in r6.
@@ -4939,6 +4802,23 @@
   // -----------------------------------
   __ AssertFunction(r4);
 
+  // Make r10 point to the JavaScript frame.
+  __ mr(r10, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ LoadP(r10, MemOperand(r10, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ LoadP(ip, MemOperand(r10, StandardFrameConstants::kFunctionOffset));
+    __ cmp(ip, r4);
+    __ beq(&ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
+  }
+
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
   __ LoadP(r5, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
   __ LoadWordArith(
@@ -4947,19 +4827,20 @@
   __ SmiTag(r5);
 #endif
   __ SmiToPtrArrayOffset(r6, r5);
-  __ add(r6, fp, r6);
+  __ add(r6, r10, r6);
   __ addi(r6, r6, Operand(StandardFrameConstants::kCallerSPOffset));
 
   // r4 : function
   // r5 : number of parameters (tagged)
   // r6 : parameters pointer
+  // r10 : JavaScript frame pointer
   // Registers used over whole function:
   // r8 : arguments count (tagged)
   // r9 : mapped parameter count (tagged)
 
   // Check if the calling frame is an arguments adaptor frame.
   Label adaptor_frame, try_allocate, runtime;
-  __ LoadP(r7, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
+  __ LoadP(r7, MemOperand(r10, StandardFrameConstants::kCallerFPOffset));
   __ LoadP(r3, MemOperand(r7, CommonFrameConstants::kContextOrFrameTypeOffset));
   __ CmpSmiLiteral(r3, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR), r0);
   __ beq(&adaptor_frame);
@@ -5022,7 +4903,7 @@
   __ addi(r11, r11, Operand(JSSloppyArgumentsObject::kSize));
 
   // Do the allocation of all three objects in one go.
-  __ Allocate(r11, r3, r11, r7, &runtime, TAG_OBJECT);
+  __ Allocate(r11, r3, r11, r7, &runtime, NO_ALLOCATION_FLAGS);
 
   // r3 = address of new object(s) (tagged)
   // r5 = argument count (smi-tagged)
@@ -5191,20 +5072,20 @@
   // -----------------------------------
   __ AssertFunction(r4);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make r5 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ mr(r5, fp);
-    __ b(&loop_entry);
-    __ bind(&loop);
+  // Make r5 point to the JavaScript frame.
+  __ mr(r5, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ LoadP(r5, MemOperand(r5, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ LoadP(ip, MemOperand(r5, StandardFrameConstants::kFunctionOffset));
     __ cmp(ip, r4);
-    __ bne(&loop);
+    __ b(&ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -5246,7 +5127,7 @@
   Label allocate, done_allocate;
   __ mov(r4, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
   __ add(r4, r4, r9);
-  __ Allocate(r4, r6, r7, r8, &allocate, TAG_OBJECT);
+  __ Allocate(r4, r6, r7, r8, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in r6.
@@ -5623,7 +5504,11 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
+
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
 
   // context save
   __ push(context);
@@ -5659,10 +5544,10 @@
   // it's not controlled by GC.
   // PPC LINUX ABI:
   //
-  // Create 5 extra slots on stack:
+  // Create 4 extra slots on stack:
   //    [0] space for DirectCEntryStub's LR save
-  //    [1-4] FunctionCallbackInfo
-  const int kApiStackSpace = 5;
+  //    [1-3] FunctionCallbackInfo
+  const int kApiStackSpace = 4;
   const int kFunctionCallbackInfoOffset =
       (kStackFrameExtraParamSlot + 1) * kPointerSize;
 
@@ -5681,9 +5566,6 @@
   // FunctionCallbackInfo::length_ = argc
   __ li(ip, Operand(argc()));
   __ stw(ip, MemOperand(r3, 2 * kPointerSize));
-  // FunctionCallbackInfo::is_construct_call_ = 0
-  __ li(ip, Operand::Zero());
-  __ stw(ip, MemOperand(r3, 2 * kPointerSize + kIntSize));
 
   ExternalReference thunk_ref =
       ExternalReference::invoke_function_callback(masm->isolate());
@@ -5700,9 +5582,9 @@
   }
   MemOperand return_value_operand(fp, return_value_offset * kPointerSize);
   int stack_space = 0;
-  MemOperand is_construct_call_operand =
-      MemOperand(sp, kFunctionCallbackInfoOffset + 2 * kPointerSize + kIntSize);
-  MemOperand* stack_space_operand = &is_construct_call_operand;
+  MemOperand length_operand =
+      MemOperand(sp, kFunctionCallbackInfoOffset + 2 * kPointerSize);
+  MemOperand* stack_space_operand = &length_operand;
   stack_space = argc() + FCA::kArgsLength + 1;
   stack_space_operand = NULL;
   CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, stack_space,
@@ -5712,18 +5594,39 @@
 
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- sp[0]                        : name
-  //  -- sp[4 .. (4 + kArgsLength*4)] : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- r5                           : api_function_address
-  // -----------------------------------
-
-  Register api_function_address = ApiGetterDescriptor::function_address();
   int arg0Slot = 0;
   int accessorInfoSlot = 0;
   int apiStackSpace = 0;
-  DCHECK(api_function_address.is(r5));
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
+
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
+  Register scratch = r7;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
+
+  Register api_function_address = r5;
+
+  __ push(receiver);
+  // Push data from AccessorInfo.
+  __ LoadP(scratch, FieldMemOperand(callback, AccessorInfo::kDataOffset));
+  __ push(scratch);
+  __ LoadRoot(scratch, Heap::kUndefinedValueRootIndex);
+  __ Push(scratch, scratch);
+  __ mov(scratch, Operand(ExternalReference::isolate_address(isolate())));
+  __ Push(scratch, holder);
+  __ Push(Smi::FromInt(0));  // should_throw_on_error -> false
+  __ LoadP(scratch, FieldMemOperand(callback, AccessorInfo::kNameOffset));
+  __ push(scratch);
 
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
@@ -5771,6 +5674,10 @@
   ExternalReference thunk_ref =
       ExternalReference::invoke_accessor_getter_callback(isolate());
 
+  __ LoadP(scratch, FieldMemOperand(callback, AccessorInfo::kJsGetterOffset));
+  __ LoadP(api_function_address,
+        FieldMemOperand(scratch, Foreign::kForeignAddressOffset));
+
   // +3 is to skip prolog, return address and name handle.
   MemOperand return_value_operand(
       fp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize);
@@ -5778,7 +5685,6 @@
                            kStackUnwindSpace, NULL, return_value_operand, NULL);
 }
 
-
 #undef __
 }  // namespace internal
 }  // namespace v8
diff --git a/src/ppc/codegen-ppc.cc b/src/ppc/codegen-ppc.cc
index 5642e91..2139d87 100644
--- a/src/ppc/codegen-ppc.cc
+++ b/src/ppc/codegen-ppc.cc
@@ -185,6 +185,7 @@
   __ SmiToDoubleArrayOffset(scratch3, length);
   __ addi(scratch3, scratch3, Operand(FixedDoubleArray::kHeaderSize));
   __ Allocate(scratch3, array, scratch4, scratch2, fail, DOUBLE_ALIGNMENT);
+  __ subi(array, array, Operand(kHeapObjectTag));
   // array: destination FixedDoubleArray, not tagged as heap object.
   // elements: source FixedArray.
 
@@ -313,12 +314,12 @@
   __ add(array_size, array_size, r0);
   __ Allocate(array_size, array, allocate_scratch, scratch, &gc_required,
               NO_ALLOCATION_FLAGS);
-  // array: destination FixedArray, not tagged as heap object
+  // array: destination FixedArray, tagged as heap object
   // Set destination FixedDoubleArray's length and map.
   __ LoadRoot(scratch, Heap::kFixedArrayMapRootIndex);
-  __ StoreP(length, MemOperand(array, FixedDoubleArray::kLengthOffset));
-  __ StoreP(scratch, MemOperand(array, HeapObject::kMapOffset));
-  __ addi(array, array, Operand(kHeapObjectTag));
+  __ StoreP(length, FieldMemOperand(array,
+            FixedDoubleArray::kLengthOffset), r0);
+  __ StoreP(scratch, FieldMemOperand(array, HeapObject::kMapOffset), r0);
 
   // Prepare for conversion loop.
   Register src_elements = elements;
diff --git a/src/ppc/interface-descriptors-ppc.cc b/src/ppc/interface-descriptors-ppc.cc
index 48b6cdc..6426316 100644
--- a/src/ppc/interface-descriptors-ppc.cc
+++ b/src/ppc/interface-descriptors-ppc.cc
@@ -46,16 +46,11 @@
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return r3; }
 
 
-const Register InstanceOfDescriptor::LeftRegister() { return r4; }
-const Register InstanceOfDescriptor::RightRegister() { return r3; }
-
-
 const Register StringCompareDescriptor::LeftRegister() { return r4; }
 const Register StringCompareDescriptor::RightRegister() { return r3; }
 
-
-const Register ApiGetterDescriptor::function_address() { return r5; }
-
+const Register ApiGetterDescriptor::HolderRegister() { return r3; }
+const Register ApiGetterDescriptor::CallbackRegister() { return r6; }
 
 const Register MathPowTaggedDescriptor::exponent() { return r5; }
 
@@ -68,6 +63,8 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return r3; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return r6; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return r3; }
+const Register HasPropertyDescriptor::KeyRegister() { return r6; }
 
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -244,13 +241,16 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {r3};
+  // register state
+  // r3 -- number of arguments
+  // r4 -- function
+  // r5 -- allocation site with elements kind
+  Register registers[] = {r4, r5, r3};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
@@ -314,6 +314,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {r4};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -374,9 +379,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister,
-      kInterpreterDispatchTableRegister};
+  kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+  kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -410,6 +414,16 @@
   };
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
+
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      r3,  // the value to pass to the generator
+      r4,  // the JSGeneratorObject to resume
+      r5   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/ppc/macro-assembler-ppc.cc b/src/ppc/macro-assembler-ppc.cc
index 42e5a13..0f5f3a7 100644
--- a/src/ppc/macro-assembler-ppc.cc
+++ b/src/ppc/macro-assembler-ppc.cc
@@ -1790,6 +1790,7 @@
                               Register scratch1, Register scratch2,
                               Label* gc_required, AllocationFlags flags) {
   DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1875,18 +1876,21 @@
     blt(gc_required);
     add(result_end, result, result_end);
   }
-  StoreP(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    addi(result, result, Operand(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    StoreP(result_end, MemOperand(top_address));
   }
+
+  // Tag object.
+  addi(result, result, Operand(kHeapObjectTag));
 }
 
 
 void MacroAssembler::Allocate(Register object_size, Register result,
                               Register result_end, Register scratch,
                               Label* gc_required, AllocationFlags flags) {
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1976,12 +1980,114 @@
     andi(r0, result_end, Operand(kObjectAlignmentMask));
     Check(eq, kUnalignedAllocationInNewSpace, cr0);
   }
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    StoreP(result_end, MemOperand(top_address));
+  }
+
+  // Tag object.
+  addi(result, result, Operand(kHeapObjectTag));
+}
+
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, Register scratch,
+                                  AllocationFlags flags) {
+  // |object_size| and |result_end| may overlap if the DOUBLE_ALIGNMENT flag
+  // is not specified. Other registers must not overlap.
+  DCHECK(!AreAliased(object_size, result, scratch, ip));
+  DCHECK(!AreAliased(result_end, result, scratch, ip));
+  DCHECK((flags & DOUBLE_ALIGNMENT) == 0 || !object_size.is(result_end));
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  Register top_address = scratch;
+  mov(top_address, Operand(allocation_top));
+  LoadP(result, MemOperand(top_address));
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    // Align the next allocation. Storing the filler map without checking top is
+    // safe in new-space because the limit of the heap is aligned there.
+#if V8_TARGET_ARCH_PPC64
+    STATIC_ASSERT(kPointerAlignment == kDoubleAlignment);
+#else
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    andi(result_end, result, Operand(kDoubleAlignmentMask));
+    Label aligned;
+    beq(&aligned);
+    mov(result_end, Operand(isolate()->factory()->one_pointer_filler_map()));
+    stw(result_end, MemOperand(result));
+    addi(result, result, Operand(kDoubleSize / 2));
+    bind(&aligned);
+#endif
+  }
+
+  // Calculate new top using result. Object size may be in words so a shift is
+  // required to get the number of bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    ShiftLeftImm(result_end, object_size, Operand(kPointerSizeLog2));
+    add(result_end, result, result_end);
+  } else {
+    add(result_end, result, object_size);
+  }
+
+  // Update allocation top. result temporarily holds the new top.
+  if (emit_debug_code()) {
+    andi(r0, result_end, Operand(kObjectAlignmentMask));
+    Check(eq, kUnalignedAllocationInNewSpace, cr0);
+  }
   StoreP(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    addi(result, result, Operand(kHeapObjectTag));
+  // Tag object.
+  addi(result, result, Operand(kHeapObjectTag));
+}
+
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register scratch1, Register scratch2,
+                                  AllocationFlags flags) {
+  DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK(!AreAliased(result, scratch1, scratch2, ip));
+
+  // Make object size into bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    object_size *= kPointerSize;
   }
+  DCHECK_EQ(0, object_size & kObjectAlignmentMask);
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  // Set up allocation top address register.
+  Register top_address = scratch1;
+  Register result_end = scratch2;
+  mov(top_address, Operand(allocation_top));
+  LoadP(result, MemOperand(top_address));
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    // Align the next allocation. Storing the filler map without checking top is
+    // safe in new-space because the limit of the heap is aligned there.
+#if V8_TARGET_ARCH_PPC64
+    STATIC_ASSERT(kPointerAlignment == kDoubleAlignment);
+#else
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    andi(result_end, result, Operand(kDoubleAlignmentMask));
+    Label aligned;
+    beq(&aligned);
+    mov(result_end, Operand(isolate()->factory()->one_pointer_filler_map()));
+    stw(result_end, MemOperand(result));
+    addi(result, result, Operand(kDoubleSize / 2));
+    bind(&aligned);
+#endif
+  }
+
+  // Calculate new top using result.
+  Add(result_end, result, object_size, r0);
+
+  // The top pointer is not updated for allocation folding dominators.
+  StoreP(result_end, MemOperand(top_address));
+
+  // Tag object.
+  addi(result, result, Operand(kHeapObjectTag));
 }
 
 
@@ -1999,7 +2105,8 @@
   and_(scratch1, scratch1, r0);
 
   // Allocate two-byte string in new space.
-  Allocate(scratch1, result, scratch2, scratch3, gc_required, TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result, length, Heap::kStringMapRootIndex, scratch1,
@@ -2021,7 +2128,8 @@
   and_(scratch1, scratch1, r0);
 
   // Allocate one-byte string in new space.
-  Allocate(scratch1, result, scratch2, scratch3, gc_required, TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result, length, Heap::kOneByteStringMapRootIndex,
@@ -2034,7 +2142,7 @@
                                                Register scratch2,
                                                Label* gc_required) {
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kConsStringMapRootIndex, scratch1,
                       scratch2);
@@ -2046,7 +2154,7 @@
                                                Register scratch2,
                                                Label* gc_required) {
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kConsOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -2059,7 +2167,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kSlicedStringMapRootIndex, scratch1,
                       scratch2);
@@ -2072,7 +2180,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kSlicedOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -2994,6 +3102,18 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    STATIC_ASSERT(kSmiTag == 0);
+    TestIfSmi(object, r0);
+    Check(ne, kOperandIsASmiAndNotAGeneratorObject, cr0);
+    push(object);
+    CompareObjectType(object, object, object, JS_GENERATOR_OBJECT_TYPE);
+    pop(object);
+    Check(eq, kOperandIsNotAGeneratorObject);
+  }
+}
+
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
     STATIC_ASSERT(kSmiTag == 0);
@@ -3087,12 +3207,11 @@
                                         Register scratch2,
                                         Register heap_number_map,
                                         Label* gc_required,
-                                        TaggingMode tagging_mode,
                                         MutableMode mode) {
   // Allocate an object in the heap for the heap number and tag it as a heap
   // object.
   Allocate(HeapNumber::kSize, result, scratch1, scratch2, gc_required,
-           tagging_mode == TAG_RESULT ? TAG_OBJECT : NO_ALLOCATION_FLAGS);
+           NO_ALLOCATION_FLAGS);
 
   Heap::RootListIndex map_index = mode == MUTABLE
                                       ? Heap::kMutableHeapNumberMapRootIndex
@@ -3100,12 +3219,8 @@
   AssertIsRoot(heap_number_map, map_index);
 
   // Store heap number map in the allocated object.
-  if (tagging_mode == TAG_RESULT) {
-    StoreP(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset),
-           r0);
-  } else {
-    StoreP(heap_number_map, MemOperand(result, HeapObject::kMapOffset));
-  }
+  StoreP(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset),
+        r0);
 }
 
 
@@ -3126,7 +3241,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch1, scratch2);
@@ -4202,11 +4318,7 @@
     /* cannot use d-form */
     DCHECK(!scratch.is(no_reg));
     mov(scratch, Operand(offset));
-#if V8_TARGET_ARCH_PPC64
-    ldx(dst, MemOperand(mem.ra(), scratch));
-#else
-    lwzx(dst, MemOperand(mem.ra(), scratch));
-#endif
+    LoadPX(dst, MemOperand(mem.ra(), scratch));
   } else {
 #if V8_TARGET_ARCH_PPC64
     int misaligned = (offset & 3);
@@ -4225,6 +4337,23 @@
   }
 }
 
+void MacroAssembler::LoadPU(Register dst, const MemOperand& mem,
+                            Register scratch) {
+  int offset = mem.offset();
+
+  if (!is_int16(offset)) {
+    /* cannot use d-form */
+    DCHECK(!scratch.is(no_reg));
+    mov(scratch, Operand(offset));
+    LoadPUX(dst, MemOperand(mem.ra(), scratch));
+  } else {
+#if V8_TARGET_ARCH_PPC64
+    ldu(dst, mem);
+#else
+    lwzu(dst, mem);
+#endif
+  }
+}
 
 // Store a "pointer" sized value to the memory location
 void MacroAssembler::StoreP(Register src, const MemOperand& mem,
@@ -4235,11 +4364,7 @@
     /* cannot use d-form */
     DCHECK(!scratch.is(no_reg));
     mov(scratch, Operand(offset));
-#if V8_TARGET_ARCH_PPC64
-    stdx(src, MemOperand(mem.ra(), scratch));
-#else
-    stwx(src, MemOperand(mem.ra(), scratch));
-#endif
+    StorePX(src, MemOperand(mem.ra(), scratch));
   } else {
 #if V8_TARGET_ARCH_PPC64
     int misaligned = (offset & 3);
@@ -4263,6 +4388,24 @@
   }
 }
 
+void MacroAssembler::StorePU(Register src, const MemOperand& mem,
+                             Register scratch) {
+  int offset = mem.offset();
+
+  if (!is_int16(offset)) {
+    /* cannot use d-form */
+    DCHECK(!scratch.is(no_reg));
+    mov(scratch, Operand(offset));
+    StorePUX(src, MemOperand(mem.ra(), scratch));
+  } else {
+#if V8_TARGET_ARCH_PPC64
+    stdu(src, mem);
+#else
+    stwu(src, mem);
+#endif
+  }
+}
+
 void MacroAssembler::LoadWordArith(Register dst, const MemOperand& mem,
                                    Register scratch) {
   int offset = mem.offset();
@@ -4457,6 +4600,44 @@
   }
 }
 
+void MacroAssembler::LoadDoubleU(DoubleRegister dst, const MemOperand& mem,
+                                Register scratch) {
+  Register base = mem.ra();
+  int offset = mem.offset();
+
+  if (!is_int16(offset)) {
+    mov(scratch, Operand(offset));
+    lfdux(dst, MemOperand(base, scratch));
+  } else {
+    lfdu(dst, mem);
+  }
+}
+
+void MacroAssembler::LoadSingle(DoubleRegister dst, const MemOperand& mem,
+                                Register scratch) {
+  Register base = mem.ra();
+  int offset = mem.offset();
+
+  if (!is_int16(offset)) {
+    mov(scratch, Operand(offset));
+    lfsx(dst, MemOperand(base, scratch));
+  } else {
+    lfs(dst, mem);
+  }
+}
+
+void MacroAssembler::LoadSingleU(DoubleRegister dst, const MemOperand& mem,
+                                Register scratch) {
+  Register base = mem.ra();
+  int offset = mem.offset();
+
+  if (!is_int16(offset)) {
+    mov(scratch, Operand(offset));
+    lfsux(dst, MemOperand(base, scratch));
+  } else {
+    lfsu(dst, mem);
+  }
+}
 
 void MacroAssembler::StoreDouble(DoubleRegister src, const MemOperand& mem,
                                  Register scratch) {
@@ -4471,13 +4652,52 @@
   }
 }
 
+void MacroAssembler::StoreDoubleU(DoubleRegister src, const MemOperand& mem,
+                                 Register scratch) {
+  Register base = mem.ra();
+  int offset = mem.offset();
+
+  if (!is_int16(offset)) {
+    mov(scratch, Operand(offset));
+    stfdux(src, MemOperand(base, scratch));
+  } else {
+    stfdu(src, mem);
+  }
+}
+
+void MacroAssembler::StoreSingle(DoubleRegister src, const MemOperand& mem,
+                                 Register scratch) {
+  Register base = mem.ra();
+  int offset = mem.offset();
+
+  if (!is_int16(offset)) {
+    mov(scratch, Operand(offset));
+    stfsx(src, MemOperand(base, scratch));
+  } else {
+    stfs(src, mem);
+  }
+}
+
+void MacroAssembler::StoreSingleU(DoubleRegister src, const MemOperand& mem,
+                                 Register scratch) {
+  Register base = mem.ra();
+  int offset = mem.offset();
+
+  if (!is_int16(offset)) {
+    mov(scratch, Operand(offset));
+    stfsux(src, MemOperand(base, scratch));
+  } else {
+    stfsu(src, mem);
+  }
+}
+
 void MacroAssembler::TestJSArrayForAllocationMemento(Register receiver_reg,
                                                      Register scratch_reg,
                                                      Register scratch2_reg,
                                                      Label* no_memento_found) {
   Label map_check;
   Label top_check;
-  ExternalReference new_space_allocation_top =
+  ExternalReference new_space_allocation_top_adr =
       ExternalReference::new_space_allocation_top_address(isolate());
   const int kMementoMapOffset = JSArray::kSize - kHeapObjectTag;
   const int kMementoEndOffset = kMementoMapOffset + AllocationMemento::kSize;
@@ -4494,7 +4714,9 @@
 
   // If the object is in new space, we need to check whether it is on the same
   // page as the current top.
-  Xor(r0, scratch_reg, Operand(new_space_allocation_top));
+  mov(ip, Operand(new_space_allocation_top_adr));
+  LoadP(ip, MemOperand(ip));
+  Xor(r0, scratch_reg, Operand(ip));
   and_(r0, r0, mask, SetRC);
   beq(&top_check, cr0);
   // The object is on a different page than allocation top. Bail out if the
@@ -4508,7 +4730,7 @@
   // If top is on the same page as the current object, we need to check whether
   // we are below top.
   bind(&top_check);
-  Cmpi(scratch_reg, Operand(new_space_allocation_top), r0);
+  cmp(scratch_reg, ip);
   bgt(no_memento_found);
   // Memento map check.
   bind(&map_check);
diff --git a/src/ppc/macro-assembler-ppc.h b/src/ppc/macro-assembler-ppc.h
index a529b62..0d5df2f 100644
--- a/src/ppc/macro-assembler-ppc.h
+++ b/src/ppc/macro-assembler-ppc.h
@@ -19,8 +19,8 @@
 const Register kReturnRegister2 = {Register::kCode_r5};
 const Register kJSFunctionRegister = {Register::kCode_r4};
 const Register kContextRegister = {Register::kCode_r30};
+const Register kAllocateSizeRegister = {Register::kCode_r4};
 const Register kInterpreterAccumulatorRegister = {Register::kCode_r3};
-const Register kInterpreterRegisterFileRegister = {Register::kCode_r14};
 const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_r15};
 const Register kInterpreterBytecodeArrayRegister = {Register::kCode_r16};
 const Register kInterpreterDispatchTableRegister = {Register::kCode_r17};
@@ -73,10 +73,8 @@
 
 // These exist to provide portability between 32 and 64bit
 #if V8_TARGET_ARCH_PPC64
-#define LoadPU ldu
 #define LoadPX ldx
 #define LoadPUX ldux
-#define StorePU stdu
 #define StorePX stdx
 #define StorePUX stdux
 #define ShiftLeftImm sldi
@@ -90,10 +88,8 @@
 #define Mul mulld
 #define Div divd
 #else
-#define LoadPU lwzu
 #define LoadPX lwzx
 #define LoadPUX lwzux
-#define StorePU stwu
 #define StorePX stwx
 #define StorePUX stwux
 #define ShiftLeftImm slwi
@@ -515,8 +511,25 @@
   void StoreRepresentation(Register src, const MemOperand& mem,
                            Representation r, Register scratch = no_reg);
 
-  void LoadDouble(DoubleRegister dst, const MemOperand& mem, Register scratch);
-  void StoreDouble(DoubleRegister src, const MemOperand& mem, Register scratch);
+  void LoadDouble(DoubleRegister dst, const MemOperand& mem,
+                  Register scratch = no_reg);
+  void LoadDoubleU(DoubleRegister dst, const MemOperand& mem,
+                  Register scratch = no_reg);
+
+  void LoadSingle(DoubleRegister dst, const MemOperand& mem,
+                  Register scratch = no_reg);
+  void LoadSingleU(DoubleRegister dst, const MemOperand& mem,
+                   Register scratch = no_reg);
+
+  void StoreDouble(DoubleRegister src, const MemOperand& mem,
+                   Register scratch = no_reg);
+  void StoreDoubleU(DoubleRegister src, const MemOperand& mem,
+                   Register scratch = no_reg);
+
+  void StoreSingle(DoubleRegister src, const MemOperand& mem,
+                   Register scratch = no_reg);
+  void StoreSingleU(DoubleRegister src, const MemOperand& mem,
+                    Register scratch = no_reg);
 
   // Move values between integer and floating point registers.
   void MovIntToDouble(DoubleRegister dst, Register src, Register scratch);
@@ -573,7 +586,9 @@
 
   // These exist to provide portability between 32 and 64bit
   void LoadP(Register dst, const MemOperand& mem, Register scratch = no_reg);
+  void LoadPU(Register dst, const MemOperand& mem, Register scratch = no_reg);
   void StoreP(Register src, const MemOperand& mem, Register scratch = no_reg);
+  void StorePU(Register src, const MemOperand& mem, Register scratch = no_reg);
 
   // ---------------------------------------------------------------------------
   // JavaScript invokes
@@ -696,6 +711,15 @@
   void Allocate(Register object_size, Register result, Register result_end,
                 Register scratch, Label* gc_required, AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(int object_size, Register result, Register scratch1,
+                    Register scratch2, AllocationFlags flags);
+
+  void FastAllocate(Register object_size, Register result, Register result_end,
+                    Register scratch, AllocationFlags flags);
+
   void AllocateTwoByteString(Register result, Register length,
                              Register scratch1, Register scratch2,
                              Register scratch3, Label* gc_required);
@@ -720,7 +744,6 @@
   // when control continues at the gc_required label.
   void AllocateHeapNumber(Register result, Register scratch1, Register scratch2,
                           Register heap_number_map, Label* gc_required,
-                          TaggingMode tagging_mode = TAG_RESULT,
                           MutableMode mode = IMMUTABLE);
   void AllocateHeapNumberWithValue(Register result, DoubleRegister value,
                                    Register scratch1, Register scratch2,
@@ -1380,6 +1403,10 @@
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
   void AssertReceiver(Register object);
 
diff --git a/src/profiler/allocation-tracker.cc b/src/profiler/allocation-tracker.cc
index 791cdf0..6acd191 100644
--- a/src/profiler/allocation-tracker.cc
+++ b/src/profiler/allocation-tracker.cc
@@ -149,8 +149,7 @@
 
 
 void AddressToTraceMap::Print() {
-  PrintF("[AddressToTraceMap (%" V8_SIZET_PREFIX V8PRIuPTR "): \n",
-         ranges_.size());
+  PrintF("[AddressToTraceMap (%" PRIuS "): \n", ranges_.size());
   for (RangeMap::iterator it = ranges_.begin(); it != ranges_.end(); ++it) {
     PrintF("[%p - %p] => %u\n", it->second.start, it->first,
         it->second.trace_node_id);
@@ -231,7 +230,7 @@
 
   Isolate* isolate = heap->isolate();
   int length = 0;
-  StackTraceFrameIterator it(isolate);
+  JavaScriptFrameIterator it(isolate);
   while (!it.done() && length < kMaxAllocationTraceLength) {
     JavaScriptFrame* frame = it.frame();
     SharedFunctionInfo* shared = frame->function()->shared();
@@ -307,9 +306,8 @@
       info_(info) {
   script_ = Handle<Script>::cast(
       script->GetIsolate()->global_handles()->Create(script));
-  GlobalHandles::MakeWeak(reinterpret_cast<Object**>(script_.location()),
-                          this,
-                          &HandleWeakScript);
+  GlobalHandles::MakeWeak(reinterpret_cast<Object**>(script_.location()), this,
+                          &HandleWeakScript, v8::WeakCallbackType::kParameter);
 }
 
 
@@ -327,9 +325,8 @@
   info_->column = Script::GetColumnNumber(script_, start_position_);
 }
 
-
 void AllocationTracker::UnresolvedLocation::HandleWeakScript(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
+    const v8::WeakCallbackInfo<void>& data) {
   UnresolvedLocation* loc =
       reinterpret_cast<UnresolvedLocation*>(data.GetParameter());
   GlobalHandles::Destroy(reinterpret_cast<Object**>(loc->script_.location()));
diff --git a/src/profiler/allocation-tracker.h b/src/profiler/allocation-tracker.h
index 03802a5..dbcf4a7 100644
--- a/src/profiler/allocation-tracker.h
+++ b/src/profiler/allocation-tracker.h
@@ -129,8 +129,7 @@
     void Resolve();
 
    private:
-    static void HandleWeakScript(
-        const v8::WeakCallbackData<v8::Value, void>& data);
+    static void HandleWeakScript(const v8::WeakCallbackInfo<void>& data);
 
     Handle<Script> script_;
     int start_position_;
diff --git a/src/profiler/cpu-profiler-inl.h b/src/profiler/cpu-profiler-inl.h
index 45e4ccf..d8c9c90 100644
--- a/src/profiler/cpu-profiler-inl.h
+++ b/src/profiler/cpu-profiler-inl.h
@@ -35,7 +35,7 @@
 
 void CodeDeoptEventRecord::UpdateCodeMap(CodeMap* code_map) {
   CodeEntry* entry = code_map->FindEntry(start);
-  if (entry != NULL) entry->set_deopt_info(deopt_reason, position, pc_offset);
+  if (entry != NULL) entry->set_deopt_info(deopt_reason, position, deopt_id);
 }
 
 
diff --git a/src/profiler/cpu-profiler.cc b/src/profiler/cpu-profiler.cc
index 47585b7..5e4a444 100644
--- a/src/profiler/cpu-profiler.cc
+++ b/src/profiler/cpu-profiler.cc
@@ -242,7 +242,7 @@
 void CpuProfiler::CodeCreateEvent(Logger::LogEventsAndTags tag,
                                   AbstractCode* code,
                                   SharedFunctionInfo* shared,
-                                  CompilationInfo* info, Name* script_name) {
+                                  Name* script_name) {
   CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
   CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
   rec->start = code->address();
@@ -253,9 +253,6 @@
       CpuProfileNode::kNoLineNumberInfo, CpuProfileNode::kNoColumnNumberInfo,
       NULL, code->instruction_start());
   RecordInliningInfo(rec->entry, code);
-  if (info) {
-    rec->entry->set_inlined_function_infos(info->inlined_function_infos());
-  }
   rec->entry->FillFunctionInfo(shared);
   rec->size = code->ExecutableSize();
   processor_->Enqueue(evt_rec);
@@ -263,8 +260,7 @@
 
 void CpuProfiler::CodeCreateEvent(Logger::LogEventsAndTags tag,
                                   AbstractCode* abstract_code,
-                                  SharedFunctionInfo* shared,
-                                  CompilationInfo* info, Name* script_name,
+                                  SharedFunctionInfo* shared, Name* script_name,
                                   int line, int column) {
   CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
   CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
@@ -310,9 +306,7 @@
       profiles_->GetName(InferScriptName(script_name, shared)), line, column,
       line_table, abstract_code->instruction_start());
   RecordInliningInfo(rec->entry, abstract_code);
-  if (info) {
-    rec->entry->set_inlined_function_infos(info->inlined_function_infos());
-  }
+  RecordDeoptInlinedFrames(rec->entry, abstract_code);
   rec->entry->FillFunctionInfo(shared);
   rec->size = abstract_code->ExecutableSize();
   processor_->Enqueue(evt_rec);
@@ -356,7 +350,7 @@
   rec->start = code->address();
   rec->deopt_reason = Deoptimizer::GetDeoptReason(info.deopt_reason);
   rec->position = info.position;
-  rec->pc_offset = pc - code->instruction_start();
+  rec->deopt_id = info.deopt_id;
   processor_->Enqueue(evt_rec);
   processor_->AddDeoptStack(isolate_, pc, fp_to_sp_delta);
 }
@@ -453,6 +447,54 @@
   }
 }
 
+void CpuProfiler::RecordDeoptInlinedFrames(CodeEntry* entry,
+                                           AbstractCode* abstract_code) {
+  if (abstract_code->kind() != AbstractCode::OPTIMIZED_FUNCTION) return;
+  Code* code = abstract_code->GetCode();
+  DeoptimizationInputData* deopt_input_data =
+      DeoptimizationInputData::cast(code->deoptimization_data());
+  int const mask = RelocInfo::ModeMask(RelocInfo::DEOPT_ID);
+  for (RelocIterator rit(code, mask); !rit.done(); rit.next()) {
+    RelocInfo* reloc_info = rit.rinfo();
+    DCHECK(RelocInfo::IsDeoptId(reloc_info->rmode()));
+    int deopt_id = static_cast<int>(reloc_info->data());
+    int translation_index =
+        deopt_input_data->TranslationIndex(deopt_id)->value();
+    TranslationIterator it(deopt_input_data->TranslationByteArray(),
+                           translation_index);
+    Translation::Opcode opcode = static_cast<Translation::Opcode>(it.Next());
+    DCHECK_EQ(Translation::BEGIN, opcode);
+    it.Skip(Translation::NumberOfOperandsFor(opcode));
+    std::vector<CodeEntry::DeoptInlinedFrame> inlined_frames;
+    while (it.HasNext() &&
+           Translation::BEGIN !=
+               (opcode = static_cast<Translation::Opcode>(it.Next()))) {
+      if (opcode != Translation::JS_FRAME &&
+          opcode != Translation::INTERPRETED_FRAME) {
+        it.Skip(Translation::NumberOfOperandsFor(opcode));
+        continue;
+      }
+      BailoutId ast_id = BailoutId(it.Next());
+      int shared_info_id = it.Next();
+      it.Next();  // Skip height
+      SharedFunctionInfo* shared = SharedFunctionInfo::cast(
+          deopt_input_data->LiteralArray()->get(shared_info_id));
+      int source_position = Deoptimizer::ComputeSourcePosition(shared, ast_id);
+      int script_id = v8::UnboundScript::kNoScriptId;
+      if (shared->script()->IsScript()) {
+        Script* script = Script::cast(shared->script());
+        script_id = script->id();
+      }
+      CodeEntry::DeoptInlinedFrame frame = {source_position, script_id};
+      inlined_frames.push_back(frame);
+    }
+    if (!inlined_frames.empty() && !entry->HasDeoptInlinedFramesFor(deopt_id)) {
+      entry->AddDeoptInlinedFrames(deopt_id, inlined_frames);
+      DCHECK(inlined_frames.empty());
+    }
+  }
+}
+
 CpuProfiler::CpuProfiler(Isolate* isolate)
     : isolate_(isolate),
       sampling_interval_(base::TimeDelta::FromMicroseconds(
diff --git a/src/profiler/cpu-profiler.h b/src/profiler/cpu-profiler.h
index a04ee3c..ed1e15f 100644
--- a/src/profiler/cpu-profiler.h
+++ b/src/profiler/cpu-profiler.h
@@ -6,13 +6,14 @@
 #define V8_PROFILER_CPU_PROFILER_H_
 
 #include "src/allocation.h"
-#include "src/atomic-utils.h"
+#include "src/base/atomic-utils.h"
 #include "src/base/atomicops.h"
 #include "src/base/platform/time.h"
 #include "src/compiler.h"
 #include "src/locked-queue.h"
 #include "src/profiler/circular-queue.h"
 #include "src/profiler/sampler.h"
+#include "src/profiler/tick-sample.h"
 
 namespace v8 {
 namespace internal {
@@ -20,7 +21,6 @@
 // Forward declarations.
 class CodeEntry;
 class CodeMap;
-class CompilationInfo;
 class CpuProfile;
 class CpuProfilesCollection;
 class ProfileGenerator;
@@ -81,7 +81,7 @@
   Address start;
   const char* deopt_reason;
   SourcePosition position;
-  size_t pc_offset;
+  int deopt_id;
 
   INLINE(void UpdateCodeMap(CodeMap* code_map));
 };
@@ -176,7 +176,7 @@
   SamplingCircularQueue<TickSampleEventRecord,
                         kTickSampleQueueLength> ticks_buffer_;
   LockedQueue<TickSampleEventRecord> ticks_from_vm_buffer_;
-  AtomicNumber<unsigned> last_code_event_id_;
+  base::AtomicNumber<unsigned> last_code_event_id_;
   unsigned last_processed_code_event_id_;
 };
 
@@ -226,11 +226,10 @@
   void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
                        Name* name) override;
   void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, CompilationInfo* info,
-                       Name* script_name) override;
+                       SharedFunctionInfo* shared, Name* script_name) override;
   void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, CompilationInfo* info,
-                       Name* script_name, int line, int column) override;
+                       SharedFunctionInfo* shared, Name* script_name, int line,
+                       int column) override;
   void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
                        int args_count) override;
   void CodeMovingGCEvent() override {}
@@ -259,6 +258,7 @@
   void ResetProfiles();
   void LogBuiltins();
   void RecordInliningInfo(CodeEntry* entry, AbstractCode* abstract_code);
+  void RecordDeoptInlinedFrames(CodeEntry* entry, AbstractCode* abstract_code);
   Name* InferScriptName(Name* name, SharedFunctionInfo* info);
 
   Isolate* isolate_;
diff --git a/src/profiler/heap-profiler.cc b/src/profiler/heap-profiler.cc
index 1305cae..e048fae 100644
--- a/src/profiler/heap-profiler.cc
+++ b/src/profiler/heap-profiler.cc
@@ -84,14 +84,14 @@
   return result;
 }
 
-
-bool HeapProfiler::StartSamplingHeapProfiler(uint64_t sample_interval,
-                                             int stack_depth) {
+bool HeapProfiler::StartSamplingHeapProfiler(
+    uint64_t sample_interval, int stack_depth,
+    v8::HeapProfiler::SamplingFlags flags) {
   if (sampling_heap_profiler_.get()) {
     return false;
   }
   sampling_heap_profiler_.Reset(new SamplingHeapProfiler(
-      heap(), names_.get(), sample_interval, stack_depth));
+      heap(), names_.get(), sample_interval, stack_depth, flags));
   return true;
 }
 
diff --git a/src/profiler/heap-profiler.h b/src/profiler/heap-profiler.h
index 32e143c..93cb57a 100644
--- a/src/profiler/heap-profiler.h
+++ b/src/profiler/heap-profiler.h
@@ -30,7 +30,8 @@
       v8::ActivityControl* control,
       v8::HeapProfiler::ObjectNameResolver* resolver);
 
-  bool StartSamplingHeapProfiler(uint64_t sample_interval, int stack_depth);
+  bool StartSamplingHeapProfiler(uint64_t sample_interval, int stack_depth,
+                                 v8::HeapProfiler::SamplingFlags);
   void StopSamplingHeapProfiler();
   bool is_sampling_allocations() { return !sampling_heap_profiler_.is_empty(); }
   AllocationProfile* GetAllocationProfile();
diff --git a/src/profiler/heap-snapshot-generator.cc b/src/profiler/heap-snapshot-generator.cc
index 748f307..e67acef 100644
--- a/src/profiler/heap-snapshot-generator.cc
+++ b/src/profiler/heap-snapshot-generator.cc
@@ -80,7 +80,7 @@
 void HeapEntry::Print(
     const char* prefix, const char* edge_name, int max_depth, int indent) {
   STATIC_ASSERT(sizeof(unsigned) == sizeof(id()));
-  base::OS::Print("%6" V8PRIuPTR " @%6u %*c %s%s: ", self_size(), id(), indent,
+  base::OS::Print("%6" PRIuS " @%6u %*c %s%s: ", self_size(), id(), indent,
                   ' ', prefix, edge_name);
   if (type() != kString) {
     base::OS::Print("%s %.40s\n", TypeAsString(), name_);
@@ -1058,8 +1058,6 @@
     ExtractAccessorInfoReferences(entry, AccessorInfo::cast(obj));
   } else if (obj->IsAccessorPair()) {
     ExtractAccessorPairReferences(entry, AccessorPair::cast(obj));
-  } else if (obj->IsCodeCache()) {
-    ExtractCodeCacheReferences(entry, CodeCache::cast(obj));
   } else if (obj->IsCode()) {
     ExtractCodeReferences(entry, Code::cast(obj));
   } else if (obj->IsBox()) {
@@ -1444,19 +1442,6 @@
 }
 
 
-void V8HeapExplorer::ExtractCodeCacheReferences(
-    int entry, CodeCache* code_cache) {
-  TagObject(code_cache->default_cache(), "(default code cache)");
-  SetInternalReference(code_cache, entry,
-                       "default_cache", code_cache->default_cache(),
-                       CodeCache::kDefaultCacheOffset);
-  TagObject(code_cache->normal_type_cache(), "(code type cache)");
-  SetInternalReference(code_cache, entry,
-                       "type_cache", code_cache->normal_type_cache(),
-                       CodeCache::kNormalTypeCacheOffset);
-}
-
-
 void V8HeapExplorer::TagBuiltinCodeObject(Code* code, const char* name) {
   TagObject(code, names_->GetFormatted("(%s builtin)", name));
 }
@@ -1598,14 +1583,8 @@
           int field_offset =
               field_index.is_inobject() ? field_index.offset() : -1;
 
-          if (k != heap_->hidden_properties_symbol()) {
-            SetDataOrAccessorPropertyReference(details.kind(), js_obj, entry, k,
-                                               value, NULL, field_offset);
-          } else {
-            TagObject(value, "(hidden properties)");
-            SetInternalReference(js_obj, entry, "hidden_properties", value,
-                                 field_offset);
-          }
+          SetDataOrAccessorPropertyReference(details.kind(), js_obj, entry, k,
+                                             value, NULL, field_offset);
           break;
         }
         case kDescriptor:
@@ -1625,11 +1604,6 @@
         DCHECK(dictionary->ValueAt(i)->IsPropertyCell());
         PropertyCell* cell = PropertyCell::cast(dictionary->ValueAt(i));
         Object* value = cell->value();
-        if (k == heap_->hidden_properties_symbol()) {
-          TagObject(value, "(hidden properties)");
-          SetInternalReference(js_obj, entry, "hidden_properties", value);
-          continue;
-        }
         PropertyDetails details = cell->property_details();
         SetDataOrAccessorPropertyReference(details.kind(), js_obj, entry,
                                            Name::cast(k), value);
@@ -1642,11 +1616,6 @@
       Object* k = dictionary->KeyAt(i);
       if (dictionary->IsKey(k)) {
         Object* value = dictionary->ValueAt(i);
-        if (k == heap_->hidden_properties_symbol()) {
-          TagObject(value, "(hidden properties)");
-          SetInternalReference(js_obj, entry, "hidden_properties", value);
-          continue;
-        }
         PropertyDetails details = dictionary->DetailsAt(i);
         SetDataOrAccessorPropertyReference(details.kind(), js_obj, entry,
                                            Name::cast(k), value);
@@ -2262,9 +2231,9 @@
   intptr_t elements = info->GetElementCount();
   intptr_t size = info->GetSizeInBytes();
   const char* name = elements != -1
-      ? names_->GetFormatted(
-            "%s / %" V8_PTR_PREFIX "d entries", info->GetLabel(), elements)
-      : names_->GetCopy(info->GetLabel());
+                         ? names_->GetFormatted("%s / %" V8PRIdPTR " entries",
+                                                info->GetLabel(), elements)
+                         : names_->GetCopy(info->GetLabel());
   return snapshot_->AddEntry(
       entries_type_,
       name,
diff --git a/src/profiler/heap-snapshot-generator.h b/src/profiler/heap-snapshot-generator.h
index 857f240..255f61d 100644
--- a/src/profiler/heap-snapshot-generator.h
+++ b/src/profiler/heap-snapshot-generator.h
@@ -382,7 +382,6 @@
   void ExtractScriptReferences(int entry, Script* script);
   void ExtractAccessorInfoReferences(int entry, AccessorInfo* accessor_info);
   void ExtractAccessorPairReferences(int entry, AccessorPair* accessors);
-  void ExtractCodeCacheReferences(int entry, CodeCache* code_cache);
   void ExtractCodeReferences(int entry, Code* code);
   void ExtractBoxReferences(int entry, Box* box);
   void ExtractCellReferences(int entry, Cell* cell);
diff --git a/src/profiler/profile-generator.cc b/src/profiler/profile-generator.cc
index abcd9e5..b07601f 100644
--- a/src/profiler/profile-generator.cc
+++ b/src/profiler/profile-generator.cc
@@ -5,11 +5,12 @@
 #include "src/profiler/profile-generator.h"
 
 #include "src/ast/scopeinfo.h"
+#include "src/base/adapters.h"
 #include "src/debug/debug.h"
 #include "src/deoptimizer.h"
 #include "src/global-handles.h"
 #include "src/profiler/profile-generator-inl.h"
-#include "src/profiler/sampler.h"
+#include "src/profiler/tick-sample.h"
 #include "src/splay-tree-inl.h"
 #include "src/unicode.h"
 
@@ -118,6 +119,19 @@
   return it != inline_locations_.end() ? &it->second : NULL;
 }
 
+void CodeEntry::AddDeoptInlinedFrames(
+    int deopt_id, std::vector<DeoptInlinedFrame>& inlined_frames) {
+  // It's better to use std::move to place the vector into the map,
+  // but it's not supported by the current stdlibc++ on MacOS.
+  deopt_inlined_frames_
+      .insert(std::make_pair(deopt_id, std::vector<DeoptInlinedFrame>()))
+      .first->second.swap(inlined_frames);
+}
+
+bool CodeEntry::HasDeoptInlinedFramesFor(int deopt_id) const {
+  return deopt_inlined_frames_.find(deopt_id) != deopt_inlined_frames_.end();
+}
+
 void CodeEntry::FillFunctionInfo(SharedFunctionInfo* shared) {
   if (!shared->script()->IsScript()) return;
   Script* script = Script::cast(shared->script());
@@ -131,30 +145,20 @@
 
   CpuProfileDeoptInfo info;
   info.deopt_reason = deopt_reason_;
-  if (inlined_function_infos_.empty()) {
+  DCHECK_NE(Deoptimizer::DeoptInfo::kNoDeoptId, deopt_id_);
+  if (deopt_inlined_frames_.find(deopt_id_) == deopt_inlined_frames_.end()) {
     info.stack.push_back(CpuProfileDeoptFrame(
         {script_id_, position_ + deopt_position_.position()}));
-    return info;
-  }
-  // Copy the only branch from the inlining tree where the deopt happened.
-  SourcePosition position = deopt_position_;
-  int inlining_id = InlinedFunctionInfo::kNoParentId;
-  for (size_t i = 0; i < inlined_function_infos_.size(); ++i) {
-    InlinedFunctionInfo& current_info = inlined_function_infos_.at(i);
-    if (std::binary_search(current_info.deopt_pc_offsets.begin(),
-                           current_info.deopt_pc_offsets.end(), pc_offset_)) {
-      inlining_id = static_cast<int>(i);
-      break;
+  } else {
+    size_t deopt_position = deopt_position_.raw();
+    // Copy stack of inlined frames where the deopt happened.
+    std::vector<DeoptInlinedFrame>& frames = deopt_inlined_frames_[deopt_id_];
+    for (DeoptInlinedFrame& inlined_frame : base::Reversed(frames)) {
+      info.stack.push_back(CpuProfileDeoptFrame(
+          {inlined_frame.script_id, deopt_position + inlined_frame.position}));
+      deopt_position = 0;  // Done with innermost frame.
     }
   }
-  while (inlining_id != InlinedFunctionInfo::kNoParentId) {
-    InlinedFunctionInfo& inlined_info = inlined_function_infos_.at(inlining_id);
-    info.stack.push_back(
-        CpuProfileDeoptFrame({inlined_info.script_id,
-                              inlined_info.start_position + position.raw()}));
-    position = inlined_info.inline_position;
-    inlining_id = inlined_info.parent_id;
-  }
   return info;
 }
 
@@ -229,12 +233,13 @@
   base::OS::Print("\n");
   for (size_t i = 0; i < deopt_infos_.size(); ++i) {
     CpuProfileDeoptInfo& info = deopt_infos_[i];
-    base::OS::Print(
-        "%*s;;; deopted at script_id: %d position: %d with reason '%s'.\n",
-        indent + 10, "", info.stack[0].script_id, info.stack[0].position,
-        info.deopt_reason);
+    base::OS::Print("%*s;;; deopted at script_id: %d position: %" PRIuS
+                    " with reason '%s'.\n",
+                    indent + 10, "", info.stack[0].script_id,
+                    info.stack[0].position, info.deopt_reason);
     for (size_t index = 1; index < info.stack.size(); ++index) {
-      base::OS::Print("%*s;;;     Inline point: script_id %d position: %d.\n",
+      base::OS::Print("%*s;;;     Inline point: script_id %d position: %" PRIuS
+                      ".\n",
                       indent + 10, "", info.stack[index].script_id,
                       info.stack[index].position);
     }
diff --git a/src/profiler/profile-generator.h b/src/profiler/profile-generator.h
index 194b490..5c017e1 100644
--- a/src/profiler/profile-generator.h
+++ b/src/profiler/profile-generator.h
@@ -47,6 +47,13 @@
                    Address instruction_start = NULL);
   ~CodeEntry();
 
+  // Container describing inlined frames at eager deopt points. Is eventually
+  // being translated into v8::CpuProfileDeoptFrame by the profiler.
+  struct DeoptInlinedFrame {
+    int position;
+    int script_id;
+  };
+
   const char* name_prefix() const { return name_prefix_; }
   bool has_name_prefix() const { return name_prefix_[0] != '\0'; }
   const char* name() const { return name_; }
@@ -64,11 +71,11 @@
   const char* bailout_reason() const { return bailout_reason_; }
 
   void set_deopt_info(const char* deopt_reason, SourcePosition position,
-                      size_t pc_offset) {
+                      int deopt_id) {
     DCHECK(deopt_position_.IsUnknown());
     deopt_reason_ = deopt_reason;
     deopt_position_ = position;
-    pc_offset_ = pc_offset;
+    deopt_id_ = deopt_id;
   }
   CpuProfileDeoptInfo GetDeoptInfo();
   const char* deopt_reason() const { return deopt_reason_; }
@@ -81,14 +88,6 @@
 
   void FillFunctionInfo(SharedFunctionInfo* shared);
 
-  void set_inlined_function_infos(
-      const std::vector<InlinedFunctionInfo>& infos) {
-    inlined_function_infos_ = infos;
-  }
-  const std::vector<InlinedFunctionInfo> inlined_function_infos() {
-    return inlined_function_infos_;
-  }
-
   void SetBuiltinId(Builtins::Name id);
   Builtins::Name builtin_id() const {
     return BuiltinIdField::decode(bit_field_);
@@ -102,6 +101,9 @@
   void AddInlineStack(int pc_offset, std::vector<CodeEntry*>& inline_stack);
   const std::vector<CodeEntry*>* GetInlineStack(int pc_offset) const;
 
+  void AddDeoptInlinedFrames(int deopt_id, std::vector<DeoptInlinedFrame>&);
+  bool HasDeoptInlinedFramesFor(int deopt_id) const;
+
   Address instruction_start() const { return instruction_start_; }
   Logger::LogEventsAndTags tag() const { return TagField::decode(bit_field_); }
 
@@ -125,13 +127,12 @@
   const char* bailout_reason_;
   const char* deopt_reason_;
   SourcePosition deopt_position_;
-  size_t pc_offset_;
+  int deopt_id_;
   JITLineInfoTable* line_info_;
   Address instruction_start_;
   // Should be an unordered_map, but it doesn't currently work on Win & MacOS.
   std::map<int, std::vector<CodeEntry*>> inline_locations_;
-
-  std::vector<InlinedFunctionInfo> inlined_function_infos_;
+  std::map<int, std::vector<DeoptInlinedFrame>> deopt_inlined_frames_;
 
   DISALLOW_COPY_AND_ASSIGN(CodeEntry);
 };
diff --git a/src/profiler/sampler.cc b/src/profiler/sampler.cc
index a340424..ae47dca 100644
--- a/src/profiler/sampler.cc
+++ b/src/profiler/sampler.cc
@@ -42,14 +42,12 @@
 
 #endif
 
+#include "src/base/atomic-utils.h"
 #include "src/base/platform/platform.h"
-#include "src/flags.h"
-#include "src/frames-inl.h"
-#include "src/log.h"
 #include "src/profiler/cpu-profiler-inl.h"
+#include "src/profiler/tick-sample.h"
 #include "src/simulator.h"
 #include "src/v8threads.h"
-#include "src/vm-state-inl.h"
 
 
 #if V8_OS_ANDROID && !defined(__BIONIC_HAVE_UCONTEXT_T)
@@ -174,68 +172,52 @@
 };
 
 
-bool IsSamePage(byte* ptr1, byte* ptr2) {
-  const uint32_t kPageSize = 4096;
-  uintptr_t mask = ~static_cast<uintptr_t>(kPageSize - 1);
-  return (reinterpret_cast<uintptr_t>(ptr1) & mask) ==
-         (reinterpret_cast<uintptr_t>(ptr2) & mask);
-}
+typedef List<Sampler*> SamplerList;
 
-
-// Check if the code at specified address could potentially be a
-// frame setup code.
-bool IsNoFrameRegion(Address address) {
-  struct Pattern {
-    int bytes_count;
-    byte bytes[8];
-    int offsets[4];
-  };
-  byte* pc = reinterpret_cast<byte*>(address);
-  static Pattern patterns[] = {
-#if V8_HOST_ARCH_IA32
-    // push %ebp
-    // mov %esp,%ebp
-    {3, {0x55, 0x89, 0xe5}, {0, 1, -1}},
-    // pop %ebp
-    // ret N
-    {2, {0x5d, 0xc2}, {0, 1, -1}},
-    // pop %ebp
-    // ret
-    {2, {0x5d, 0xc3}, {0, 1, -1}},
-#elif V8_HOST_ARCH_X64
-    // pushq %rbp
-    // movq %rsp,%rbp
-    {4, {0x55, 0x48, 0x89, 0xe5}, {0, 1, -1}},
-    // popq %rbp
-    // ret N
-    {2, {0x5d, 0xc2}, {0, 1, -1}},
-    // popq %rbp
-    // ret
-    {2, {0x5d, 0xc3}, {0, 1, -1}},
-#endif
-    {0, {}, {}}
-  };
-  for (Pattern* pattern = patterns; pattern->bytes_count; ++pattern) {
-    for (int* offset_ptr = pattern->offsets; *offset_ptr != -1; ++offset_ptr) {
-      int offset = *offset_ptr;
-      if (!offset || IsSamePage(pc, pc - offset)) {
-        MSAN_MEMORY_IS_INITIALIZED(pc - offset, pattern->bytes_count);
-        if (!memcmp(pc - offset, pattern->bytes, pattern->bytes_count))
-          return true;
-      } else {
-        // It is not safe to examine bytes on another page as it might not be
-        // allocated thus causing a SEGFAULT.
-        // Check the pattern part that's on the same page and
-        // pessimistically assume it could be the entire pattern match.
-        MSAN_MEMORY_IS_INITIALIZED(pc, pattern->bytes_count - offset);
-        if (!memcmp(pc, pattern->bytes + offset, pattern->bytes_count - offset))
-          return true;
-      }
-    }
+#if defined(USE_SIGNALS)
+class AtomicGuard {
+ public:
+  explicit AtomicGuard(base::AtomicValue<int>* atomic, bool is_block = true)
+      : atomic_(atomic),
+        is_success_(false) {
+    do {
+      // Use Acquire_Load to gain mutual exclusion.
+      USE(atomic_->Value());
+      is_success_ = atomic_->TrySetValue(0, 1);
+    } while (is_block && !is_success_);
   }
-  return false;
+
+  bool is_success() { return is_success_; }
+
+  ~AtomicGuard() {
+    if (is_success_) {
+      atomic_->SetValue(0);
+    }
+    atomic_ = NULL;
+  }
+
+ private:
+  base::AtomicValue<int>* atomic_;
+  bool is_success_;
+};
+
+
+// Returns key for hash map.
+void* ThreadKey(pthread_t thread_id) {
+  return reinterpret_cast<void*>(thread_id);
 }
 
+
+// Returns hash value for hash map.
+uint32_t ThreadHash(pthread_t thread_id) {
+#if V8_OS_MACOSX
+  return static_cast<uint32_t>(reinterpret_cast<intptr_t>(thread_id));
+#else
+  return static_cast<uint32_t>(thread_id);
+#endif
+}
+#endif  // USE_SIGNALS
+
 }  // namespace
 
 #if defined(USE_SIGNALS)
@@ -284,75 +266,6 @@
 #endif
 
 
-#if defined(USE_SIMULATOR)
-class SimulatorHelper {
- public:
-  inline bool Init(Isolate* isolate) {
-    simulator_ = isolate->thread_local_top()->simulator_;
-    // Check if there is active simulator.
-    return simulator_ != NULL;
-  }
-
-  inline void FillRegisters(v8::RegisterState* state) {
-#if V8_TARGET_ARCH_ARM
-    if (!simulator_->has_bad_pc()) {
-      state->pc = reinterpret_cast<Address>(simulator_->get_pc());
-    }
-    state->sp = reinterpret_cast<Address>(simulator_->get_register(
-        Simulator::sp));
-    state->fp = reinterpret_cast<Address>(simulator_->get_register(
-        Simulator::r11));
-#elif V8_TARGET_ARCH_ARM64
-    if (simulator_->sp() == 0 || simulator_->fp() == 0) {
-      // It's possible that the simulator is interrupted while it is updating
-      // the sp or fp register. ARM64 simulator does this in two steps:
-      // first setting it to zero and then setting it to a new value.
-      // Bailout if sp/fp doesn't contain the new value.
-      //
-      // FIXME: The above doesn't really solve the issue.
-      // If a 64-bit target is executed on a 32-bit host even the final
-      // write is non-atomic, so it might obtain a half of the result.
-      // Moreover as long as the register set code uses memcpy (as of now),
-      // it is not guaranteed to be atomic even when both host and target
-      // are of same bitness.
-      return;
-    }
-    state->pc = reinterpret_cast<Address>(simulator_->pc());
-    state->sp = reinterpret_cast<Address>(simulator_->sp());
-    state->fp = reinterpret_cast<Address>(simulator_->fp());
-#elif V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64
-    if (!simulator_->has_bad_pc()) {
-      state->pc = reinterpret_cast<Address>(simulator_->get_pc());
-    }
-    state->sp = reinterpret_cast<Address>(simulator_->get_register(
-        Simulator::sp));
-    state->fp = reinterpret_cast<Address>(simulator_->get_register(
-        Simulator::fp));
-#elif V8_TARGET_ARCH_PPC
-    if (!simulator_->has_bad_pc()) {
-      state->pc = reinterpret_cast<Address>(simulator_->get_pc());
-    }
-    state->sp =
-        reinterpret_cast<Address>(simulator_->get_register(Simulator::sp));
-    state->fp =
-        reinterpret_cast<Address>(simulator_->get_register(Simulator::fp));
-#elif V8_TARGET_ARCH_S390
-    if (!simulator_->has_bad_pc()) {
-      state->pc = reinterpret_cast<Address>(simulator_->get_pc());
-    }
-    state->sp =
-        reinterpret_cast<Address>(simulator_->get_register(Simulator::sp));
-    state->fp =
-        reinterpret_cast<Address>(simulator_->get_register(Simulator::fp));
-#endif
-  }
-
- private:
-  Simulator* simulator_;
-};
-#endif  // USE_SIMULATOR
-
-
 #if defined(USE_SIGNALS)
 
 class SignalHandler : public AllStatic {
@@ -374,6 +287,10 @@
     return signal_handler_installed_;
   }
 
+#if !V8_OS_NACL
+  static void CollectSample(void* context, Sampler* sampler);
+#endif
+
  private:
   static void Install() {
 #if !V8_OS_NACL
@@ -418,34 +335,25 @@
 
 // As Native Client does not support signal handling, profiling is disabled.
 #if !V8_OS_NACL
-void SignalHandler::HandleProfilerSignal(int signal, siginfo_t* info,
-                                         void* context) {
-  USE(info);
-  if (signal != SIGPROF) return;
-  Isolate* isolate = Isolate::UnsafeCurrent();
-  if (isolate == NULL || !isolate->IsInUse()) {
-    // We require a fully initialized and entered isolate.
+void SignalHandler::CollectSample(void* context, Sampler* sampler) {
+  if (sampler == NULL || (!sampler->IsProfiling() &&
+                          !sampler->IsRegistered())) {
     return;
   }
+  Isolate* isolate = sampler->isolate();
+
+  // We require a fully initialized and entered isolate.
+  if (isolate == NULL || !isolate->IsInUse()) return;
+
   if (v8::Locker::IsActive() &&
       !isolate->thread_manager()->IsLockedByCurrentThread()) {
     return;
   }
 
-  Sampler* sampler = isolate->logger()->sampler();
-  if (sampler == NULL) return;
-
   v8::RegisterState state;
 
 #if defined(USE_SIMULATOR)
-  SimulatorHelper helper;
-  if (!helper.Init(isolate)) return;
-  helper.FillRegisters(&state);
-  // It possible that the simulator is interrupted while it is updating
-  // the sp or fp register. ARM64 simulator does this in two steps:
-  // first setting it to zero and then setting it to the new value.
-  // Bailout if sp/fp doesn't contain the new value.
-  if (state.sp == 0 || state.fp == 0) return;
+  if (!SimulatorHelper::FillRegisters(isolate, &state)) return;
 #else
   // Extracting the sample from the context is extremely machine dependent.
   ucontext_t* ucontext = reinterpret_cast<ucontext_t*>(context);
@@ -582,7 +490,7 @@
 }
 #endif  // V8_OS_NACL
 
-#endif
+#endif  // USE_SIGNALS
 
 
 class SamplerThread : public base::Thread {
@@ -607,19 +515,46 @@
     }
 
     DCHECK(sampler->IsActive());
-    DCHECK(!instance_->active_samplers_.Contains(sampler));
     DCHECK(instance_->interval_ == sampler->interval());
+
+#if defined(USE_SIGNALS)
+    AddSampler(sampler);
+#else
+    DCHECK(!instance_->active_samplers_.Contains(sampler));
     instance_->active_samplers_.Add(sampler);
+#endif  // USE_SIGNALS
 
     if (need_to_start) instance_->StartSynchronously();
   }
 
-  static void RemoveActiveSampler(Sampler* sampler) {
+  static void RemoveSampler(Sampler* sampler) {
     SamplerThread* instance_to_remove = NULL;
     {
       base::LockGuard<base::Mutex> lock_guard(mutex_);
 
-      DCHECK(sampler->IsActive());
+      DCHECK(sampler->IsActive() || sampler->IsRegistered());
+#if defined(USE_SIGNALS)
+      {
+        AtomicGuard atomic_guard(&sampler_list_access_counter_);
+        // Remove sampler from map.
+        pthread_t thread_id = sampler->platform_data()->vm_tid();
+        void* thread_key = ThreadKey(thread_id);
+        uint32_t thread_hash = ThreadHash(thread_id);
+        HashMap::Entry* entry =
+            thread_id_to_samplers_.Get().Lookup(thread_key, thread_hash);
+        DCHECK(entry != NULL);
+        SamplerList* samplers = reinterpret_cast<SamplerList*>(entry->value);
+        samplers->RemoveElement(sampler);
+        if (samplers->is_empty()) {
+          thread_id_to_samplers_.Pointer()->Remove(thread_key, thread_hash);
+          delete samplers;
+        }
+        if (thread_id_to_samplers_.Get().occupancy() == 0) {
+          instance_to_remove = instance_;
+          instance_ = NULL;
+        }
+      }
+#else
       bool removed = instance_->active_samplers_.RemoveElement(sampler);
       DCHECK(removed);
       USE(removed);
@@ -630,6 +565,7 @@
         instance_to_remove = instance_;
         instance_ = NULL;
       }
+#endif  // USE_SIGNALS
     }
 
     if (!instance_to_remove) return;
@@ -637,11 +573,36 @@
     delete instance_to_remove;
   }
 
+  // Unlike AddActiveSampler, this method only adds a sampler,
+  // but won't start the sampler thread.
+  static void RegisterSampler(Sampler* sampler) {
+    base::LockGuard<base::Mutex> lock_guard(mutex_);
+#if defined(USE_SIGNALS)
+    AddSampler(sampler);
+#endif  // USE_SIGNALS
+  }
+
   // Implement Thread::Run().
   virtual void Run() {
     while (true) {
       {
         base::LockGuard<base::Mutex> lock_guard(mutex_);
+#if defined(USE_SIGNALS)
+        if (thread_id_to_samplers_.Get().occupancy() == 0) break;
+        if (SignalHandler::Installed()) {
+          for (HashMap::Entry *p = thread_id_to_samplers_.Get().Start();
+               p != NULL; p = thread_id_to_samplers_.Get().Next(p)) {
+#if V8_OS_AIX && V8_TARGET_ARCH_PPC64
+            // on AIX64, cannot cast (void *) to pthread_t which is
+            // of type unsigned int (4bytes)
+            pthread_t thread_id = reinterpret_cast<intptr_t>(p->key);
+#else
+            pthread_t thread_id = reinterpret_cast<pthread_t>(p->key);
+#endif
+            pthread_kill(thread_id, SIGPROF);
+          }
+        }
+#else
         if (active_samplers_.is_empty()) break;
         // When CPU profiling is enabled both JavaScript and C++ code is
         // profiled. We must not suspend.
@@ -650,6 +611,7 @@
           if (!sampler->IsProfiling()) continue;
           sampler->DoSample();
         }
+#endif  // USE_SIGNALS
       }
       base::OS::Sleep(base::TimeDelta::FromMilliseconds(interval_));
     }
@@ -661,7 +623,38 @@
   static SamplerThread* instance_;
 
   const int interval_;
-  List<Sampler*> active_samplers_;
+
+#if defined(USE_SIGNALS)
+  struct HashMapCreateTrait {
+    static void Construct(HashMap* allocated_ptr) {
+      new (allocated_ptr) HashMap(HashMap::PointersMatch);
+    }
+  };
+  friend class SignalHandler;
+  static base::LazyInstance<HashMap, HashMapCreateTrait>::type
+      thread_id_to_samplers_;
+  static base::AtomicValue<int> sampler_list_access_counter_;
+  static void AddSampler(Sampler* sampler) {
+    AtomicGuard atomic_guard(&sampler_list_access_counter_);
+    // Add sampler into map if needed.
+    pthread_t thread_id = sampler->platform_data()->vm_tid();
+    HashMap::Entry *entry =
+        thread_id_to_samplers_.Pointer()->LookupOrInsert(ThreadKey(thread_id),
+                                                         ThreadHash(thread_id));
+    if (entry->value == NULL) {
+      SamplerList* samplers = new SamplerList();
+      samplers->Add(sampler);
+      entry->value = samplers;
+    } else {
+      SamplerList* samplers = reinterpret_cast<SamplerList*>(entry->value);
+      if (!samplers->Contains(sampler)) {
+        samplers->Add(sampler);
+      }
+    }
+  }
+#else
+  SamplerList active_samplers_;
+#endif  // USE_SIGNALS
 
   DISALLOW_COPY_AND_ASSIGN(SamplerThread);
 };
@@ -669,103 +662,33 @@
 
 base::Mutex* SamplerThread::mutex_ = NULL;
 SamplerThread* SamplerThread::instance_ = NULL;
+#if defined(USE_SIGNALS)
+base::LazyInstance<HashMap, SamplerThread::HashMapCreateTrait>::type
+    SamplerThread::thread_id_to_samplers_ = LAZY_INSTANCE_INITIALIZER;
+base::AtomicValue<int> SamplerThread::sampler_list_access_counter_(0);
 
-
-//
-// StackTracer implementation
-//
-DISABLE_ASAN void TickSample::Init(Isolate* isolate,
-                                   const v8::RegisterState& regs,
-                                   RecordCEntryFrame record_c_entry_frame,
-                                   bool update_stats) {
-  timestamp = base::TimeTicks::HighResolutionNow();
-  pc = reinterpret_cast<Address>(regs.pc);
-  state = isolate->current_vm_state();
-  this->update_stats = update_stats;
-
-  // Avoid collecting traces while doing GC.
-  if (state == GC) return;
-
-  Address js_entry_sp = isolate->js_entry_sp();
-  if (js_entry_sp == 0) return;  // Not executing JS now.
-
-  if (pc && IsNoFrameRegion(pc)) {
-    // Can't collect stack. Mark the sample as spoiled.
-    timestamp = base::TimeTicks();
-    pc = 0;
+// As Native Client does not support signal handling, profiling is disabled.
+#if !V8_OS_NACL
+void SignalHandler::HandleProfilerSignal(int signal, siginfo_t* info,
+                                         void* context) {
+  USE(info);
+  if (signal != SIGPROF) return;
+  AtomicGuard atomic_guard(&SamplerThread::sampler_list_access_counter_, false);
+  if (!atomic_guard.is_success()) return;
+  pthread_t thread_id = pthread_self();
+  HashMap::Entry* entry =
+      SamplerThread::thread_id_to_samplers_.Pointer()->Lookup(
+          ThreadKey(thread_id), ThreadHash(thread_id));
+  if (entry == NULL)
     return;
-  }
-
-  ExternalCallbackScope* scope = isolate->external_callback_scope();
-  Address handler = Isolate::handler(isolate->thread_local_top());
-  // If there is a handler on top of the external callback scope then
-  // we have already entrered JavaScript again and the external callback
-  // is not the top function.
-  if (scope && scope->scope_address() < handler) {
-    external_callback_entry = *scope->callback_entrypoint_address();
-    has_external_callback = true;
-  } else {
-    // sp register may point at an arbitrary place in memory, make
-    // sure MSAN doesn't complain about it.
-    MSAN_MEMORY_IS_INITIALIZED(regs.sp, sizeof(Address));
-    // Sample potential return address value for frameless invocation of
-    // stubs (we'll figure out later, if this value makes sense).
-    tos = Memory::Address_at(reinterpret_cast<Address>(regs.sp));
-    has_external_callback = false;
-  }
-
-  SafeStackFrameIterator it(isolate, reinterpret_cast<Address>(regs.fp),
-                            reinterpret_cast<Address>(regs.sp), js_entry_sp);
-  top_frame_type = it.top_frame_type();
-
-  SampleInfo info;
-  GetStackSample(isolate, regs, record_c_entry_frame,
-                 reinterpret_cast<void**>(&stack[0]), kMaxFramesCount, &info);
-  frames_count = static_cast<unsigned>(info.frames_count);
-  if (!frames_count) {
-    // It is executing JS but failed to collect a stack trace.
-    // Mark the sample as spoiled.
-    timestamp = base::TimeTicks();
-    pc = 0;
+  SamplerList* samplers = reinterpret_cast<SamplerList*>(entry->value);
+  for (int i = 0; i < samplers->length(); ++i) {
+    Sampler* sampler = samplers->at(i);
+    CollectSample(context, sampler);
   }
 }
-
-
-void TickSample::GetStackSample(Isolate* isolate, const v8::RegisterState& regs,
-                                RecordCEntryFrame record_c_entry_frame,
-                                void** frames, size_t frames_limit,
-                                v8::SampleInfo* sample_info) {
-  sample_info->frames_count = 0;
-  sample_info->vm_state = isolate->current_vm_state();
-  if (sample_info->vm_state == GC) return;
-
-  Address js_entry_sp = isolate->js_entry_sp();
-  if (js_entry_sp == 0) return;  // Not executing JS now.
-
-  SafeStackFrameIterator it(isolate, reinterpret_cast<Address>(regs.fp),
-                            reinterpret_cast<Address>(regs.sp), js_entry_sp);
-  size_t i = 0;
-  if (record_c_entry_frame == kIncludeCEntryFrame && !it.done() &&
-      it.top_frame_type() == StackFrame::EXIT) {
-    frames[i++] = isolate->c_function();
-  }
-  while (!it.done() && i < frames_limit) {
-    if (it.frame()->is_interpreted()) {
-      // For interpreted frames use the bytecode array pointer as the pc.
-      InterpretedFrame* frame = static_cast<InterpretedFrame*>(it.frame());
-      // Since the sampler can interrupt execution at any point the
-      // bytecode_array might be garbage, so don't dereference it.
-      Address bytecode_array =
-          reinterpret_cast<Address>(frame->GetBytecodeArray()) - kHeapObjectTag;
-      frames[i++] = bytecode_array + BytecodeArray::kHeaderSize +
-                    frame->GetBytecodeOffset();
-    } else {
-      frames[i++] = it.frame()->pc();
-    }
-    it.Advance();
-  }
-  sample_info->frames_count = i;
-}
+#endif  // !V8_OS_NACL
+#endif  // USE_SIGNALs
 
 
 void Sampler::SetUp() {
@@ -789,6 +712,7 @@
       profiling_(false),
       has_processing_thread_(false),
       active_(false),
+      registered_(false),
       is_counting_samples_(false),
       js_sample_count_(0),
       external_sample_count_(0) {
@@ -797,6 +721,9 @@
 
 Sampler::~Sampler() {
   DCHECK(!IsActive());
+  if (IsRegistered()) {
+    SamplerThread::RemoveSampler(this);
+  }
   delete data_;
 }
 
@@ -809,8 +736,9 @@
 
 void Sampler::Stop() {
   DCHECK(IsActive());
-  SamplerThread::RemoveActiveSampler(this);
+  SamplerThread::RemoveSampler(this);
   SetActive(false);
+  SetRegistered(false);
 }
 
 
@@ -850,6 +778,10 @@
 
 void Sampler::DoSample() {
   if (!SignalHandler::Installed()) return;
+  if (!IsActive() && !IsRegistered()) {
+    SamplerThread::RegisterSampler(this);
+    SetRegistered(true);
+  }
   pthread_kill(platform_data()->vm_tid(), SIGPROF);
 }
 
@@ -859,11 +791,6 @@
   HANDLE profiled_thread = platform_data()->profiled_thread();
   if (profiled_thread == NULL) return;
 
-#if defined(USE_SIMULATOR)
-  SimulatorHelper helper;
-  if (!helper.Init(isolate())) return;
-#endif
-
   const DWORD kSuspendFailed = static_cast<DWORD>(-1);
   if (SuspendThread(profiled_thread) == kSuspendFailed) return;
 
@@ -874,7 +801,10 @@
   if (GetThreadContext(profiled_thread, &context) != 0) {
     v8::RegisterState state;
 #if defined(USE_SIMULATOR)
-    helper.FillRegisters(&state);
+    if (!SimulatorHelper::FillRegisters(isolate(), &state)) {
+      ResumeThread(profiled_thread);
+      return;
+    }
 #else
 #if V8_HOST_ARCH_X64
     state.pc = reinterpret_cast<Address>(context.Rip);
diff --git a/src/profiler/sampler.h b/src/profiler/sampler.h
index dcd1255..3d3a6e9 100644
--- a/src/profiler/sampler.h
+++ b/src/profiler/sampler.h
@@ -8,14 +8,13 @@
 #include "include/v8.h"
 
 #include "src/base/atomicops.h"
-#include "src/base/platform/time.h"
-#include "src/frames.h"
-#include "src/globals.h"
+#include "src/base/macros.h"
 
 namespace v8 {
 namespace internal {
 
 class Isolate;
+struct TickSample;
 
 // ----------------------------------------------------------------------------
 // Sampler
@@ -24,43 +23,6 @@
 // (if used for profiling) the program counter and stack pointer for
 // the thread that created it.
 
-// TickSample captures the information collected for each sample.
-struct TickSample {
-  // Internal profiling (with --prof + tools/$OS-tick-processor) wants to
-  // include the runtime function we're calling. Externally exposed tick
-  // samples don't care.
-  enum RecordCEntryFrame { kIncludeCEntryFrame, kSkipCEntryFrame };
-
-  TickSample()
-      : state(OTHER),
-        pc(NULL),
-        external_callback_entry(NULL),
-        frames_count(0),
-        has_external_callback(false),
-        update_stats(true),
-        top_frame_type(StackFrame::NONE) {}
-  void Init(Isolate* isolate, const v8::RegisterState& state,
-            RecordCEntryFrame record_c_entry_frame, bool update_stats);
-  static void GetStackSample(Isolate* isolate, const v8::RegisterState& state,
-                             RecordCEntryFrame record_c_entry_frame,
-                             void** frames, size_t frames_limit,
-                             v8::SampleInfo* sample_info);
-  StateTag state;  // The state of the VM.
-  Address pc;      // Instruction pointer.
-  union {
-    Address tos;   // Top stack value (*sp).
-    Address external_callback_entry;
-  };
-  static const unsigned kMaxFramesCountLog2 = 8;
-  static const unsigned kMaxFramesCount = (1 << kMaxFramesCountLog2) - 1;
-  Address stack[kMaxFramesCount];  // Call stack.
-  base::TimeTicks timestamp;
-  unsigned frames_count : kMaxFramesCountLog2;  // Number of captured frames.
-  bool has_external_callback : 1;
-  bool update_stats : 1;  // Whether the sample should update aggregated stats.
-  StackFrame::Type top_frame_type : 5;
-};
-
 class Sampler {
  public:
   // Initializes the Sampler support. Called once at VM startup.
@@ -92,6 +54,11 @@
   // Whether the sampler is running (that is, consumes resources).
   bool IsActive() const { return base::NoBarrier_Load(&active_); }
 
+  // CpuProfiler collects samples by calling DoSample directly
+  // without calling Start. To keep it working, we register the sampler
+  // with the CpuProfiler.
+  bool IsRegistered() const { return base::NoBarrier_Load(&registered_); }
+
   void DoSample();
   // If true next sample must be initiated on the profiler event processor
   // thread right after latest sample is processed.
@@ -119,11 +86,14 @@
  private:
   void SetActive(bool value) { base::NoBarrier_Store(&active_, value); }
 
+  void SetRegistered(bool value) { base::NoBarrier_Store(&registered_, value); }
+
   Isolate* isolate_;
   const int interval_;
   base::Atomic32 profiling_;
   base::Atomic32 has_processing_thread_;
   base::Atomic32 active_;
+  base::Atomic32 registered_;
   PlatformData* data_;  // Platform specific data.
   // Counts stack samples taken in various VM states.
   bool is_counting_samples_;
@@ -132,7 +102,6 @@
   DISALLOW_IMPLICIT_CONSTRUCTORS(Sampler);
 };
 
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/profiler/sampling-heap-profiler.cc b/src/profiler/sampling-heap-profiler.cc
index a32cae3..db9214d 100644
--- a/src/profiler/sampling-heap-profiler.cc
+++ b/src/profiler/sampling-heap-profiler.cc
@@ -47,8 +47,9 @@
   return {size, static_cast<unsigned int>(count * scale + 0.5)};
 }
 
-SamplingHeapProfiler::SamplingHeapProfiler(Heap* heap, StringsStorage* names,
-                                           uint64_t rate, int stack_depth)
+SamplingHeapProfiler::SamplingHeapProfiler(
+    Heap* heap, StringsStorage* names, uint64_t rate, int stack_depth,
+    v8::HeapProfiler::SamplingFlags flags)
     : isolate_(heap->isolate()),
       heap_(heap),
       new_space_observer_(new SamplingAllocationObserver(
@@ -58,14 +59,15 @@
           heap_, static_cast<intptr_t>(rate), rate, this,
           heap->isolate()->random_number_generator())),
       names_(names),
-      profile_root_("(root)", v8::UnboundScript::kNoScriptId, 0),
+      profile_root_(nullptr, "(root)", v8::UnboundScript::kNoScriptId, 0),
       samples_(),
       stack_depth_(stack_depth),
-      rate_(rate) {
+      rate_(rate),
+      flags_(flags) {
   CHECK_GT(rate_, 0);
   heap->new_space()->AddAllocationObserver(new_space_observer_.get());
   AllSpaces spaces(heap);
-  for (Space* space = spaces.next(); space != NULL; space = spaces.next()) {
+  for (Space* space = spaces.next(); space != nullptr; space = spaces.next()) {
     if (space != heap->new_space()) {
       space->AddAllocationObserver(other_spaces_observer_.get());
     }
@@ -76,7 +78,7 @@
 SamplingHeapProfiler::~SamplingHeapProfiler() {
   heap_->new_space()->RemoveAllocationObserver(new_space_observer_.get());
   AllSpaces spaces(heap_);
-  for (Space* space = spaces.next(); space != NULL; space = spaces.next()) {
+  for (Space* space = spaces.next(); space != nullptr; space = spaces.next()) {
     if (space != heap_->new_space()) {
       space->RemoveAllocationObserver(other_spaces_observer_.get());
     }
@@ -109,6 +111,7 @@
   Sample* sample = new Sample(size, node, loc, this);
   samples_.insert(sample);
   sample->global.SetWeak(sample, OnWeakCallback, WeakCallbackType::kParameter);
+  sample->global.MarkIndependent();
 }
 
 void SamplingHeapProfiler::OnWeakCallback(
@@ -117,22 +120,34 @@
   AllocationNode* node = sample->owner;
   DCHECK(node->allocations_[sample->size] > 0);
   node->allocations_[sample->size]--;
+  if (node->allocations_[sample->size] == 0) {
+    node->allocations_.erase(sample->size);
+    while (node->allocations_.empty() && node->children_.empty() &&
+           node->parent_ && !node->parent_->pinned_) {
+      AllocationNode* parent = node->parent_;
+      AllocationNode::FunctionId id = AllocationNode::function_id(
+          node->script_id_, node->script_position_, node->name_);
+      parent->children_.erase(id);
+      delete node;
+      node = parent;
+    }
+  }
   sample->profiler->samples_.erase(sample);
   delete sample;
 }
 
-SamplingHeapProfiler::AllocationNode* SamplingHeapProfiler::FindOrAddChildNode(
-    AllocationNode* parent, const char* name, int script_id,
-    int start_position) {
-  for (AllocationNode* child : parent->children_) {
-    if (child->script_id_ == script_id &&
-        child->script_position_ == start_position &&
-        strcmp(child->name_, name) == 0) {
-      return child;
-    }
+SamplingHeapProfiler::AllocationNode*
+SamplingHeapProfiler::AllocationNode::FindOrAddChildNode(const char* name,
+                                                         int script_id,
+                                                         int start_position) {
+  FunctionId id = function_id(script_id, start_position, name);
+  auto it = children_.find(id);
+  if (it != children_.end()) {
+    DCHECK(strcmp(it->second->name_, name) == 0);
+    return it->second;
   }
-  AllocationNode* child = new AllocationNode(name, script_id, start_position);
-  parent->children_.push_back(child);
+  auto child = new AllocationNode(this, name, script_id, start_position);
+  children_.insert(std::make_pair(id, child));
   return child;
 }
 
@@ -140,7 +155,7 @@
   AllocationNode* node = &profile_root_;
 
   std::vector<SharedFunctionInfo*> stack;
-  StackTraceFrameIterator it(isolate_);
+  JavaScriptFrameIterator it(isolate_);
   int frames_captured = 0;
   while (!it.done() && frames_captured < stack_depth_) {
     JavaScriptFrame* frame = it.frame();
@@ -173,7 +188,7 @@
         name = "(JS)";
         break;
     }
-    return FindOrAddChildNode(node, name, v8::UnboundScript::kNoScriptId, 0);
+    return node->FindOrAddChildNode(name, v8::UnboundScript::kNoScriptId, 0);
   }
 
   // We need to process the stack in reverse order as the top of the stack is
@@ -186,14 +201,17 @@
       Script* script = Script::cast(shared->script());
       script_id = script->id();
     }
-    node = FindOrAddChildNode(node, name, script_id, shared->start_position());
+    node = node->FindOrAddChildNode(name, script_id, shared->start_position());
   }
   return node;
 }
 
 v8::AllocationProfile::Node* SamplingHeapProfiler::TranslateAllocationNode(
     AllocationProfile* profile, SamplingHeapProfiler::AllocationNode* node,
-    const std::map<int, Script*>& scripts) {
+    const std::map<int, Handle<Script>>& scripts) {
+  // By pinning the node we make sure its children won't get disposed if
+  // a GC kicks in during the tree retrieval.
+  node->pinned_ = true;
   Local<v8::String> script_name =
       ToApiHandle<v8::String>(isolate_->factory()->InternalizeUtf8String(""));
   int line = v8::AllocationProfile::kNoLineNumberInfo;
@@ -203,22 +221,21 @@
   if (node->script_id_ != v8::UnboundScript::kNoScriptId &&
       scripts.find(node->script_id_) != scripts.end()) {
     // Cannot use std::map<T>::at because it is not available on android.
-    auto non_const_scripts = const_cast<std::map<int, Script*>&>(scripts);
-    Script* script = non_const_scripts[node->script_id_];
-    if (script) {
+    auto non_const_scripts =
+        const_cast<std::map<int, Handle<Script>>&>(scripts);
+    Handle<Script> script = non_const_scripts[node->script_id_];
+    if (!script.is_null()) {
       if (script->name()->IsName()) {
         Name* name = Name::cast(script->name());
         script_name = ToApiHandle<v8::String>(
             isolate_->factory()->InternalizeUtf8String(names_->GetName(name)));
       }
-      Handle<Script> script_handle(script);
-      line = 1 + Script::GetLineNumber(script_handle, node->script_position_);
-      column =
-          1 + Script::GetColumnNumber(script_handle, node->script_position_);
+      line = 1 + Script::GetLineNumber(script, node->script_position_);
+      column = 1 + Script::GetColumnNumber(script, node->script_position_);
     }
-    for (auto alloc : node->allocations_) {
-      allocations.push_back(ScaleSample(alloc.first, alloc.second));
-    }
+  }
+  for (auto alloc : node->allocations_) {
+    allocations.push_back(ScaleSample(alloc.first, alloc.second));
   }
 
   profile->nodes().push_back(v8::AllocationProfile::Node(
@@ -227,35 +244,34 @@
        script_name, node->script_id_, node->script_position_, line, column,
        std::vector<v8::AllocationProfile::Node*>(), allocations}));
   v8::AllocationProfile::Node* current = &profile->nodes().back();
-  size_t child_len = node->children_.size();
-  // The children vector may have nodes appended to it during translation
+  // The children map may have nodes inserted into it during translation
   // because the translation may allocate strings on the JS heap that have
-  // the potential to be sampled. We cache the length of the vector before
-  // iteration so that nodes appended to the vector during iteration are
-  // not processed.
-  for (size_t i = 0; i < child_len; i++) {
+  // the potential to be sampled. That's ok since map iterators are not
+  // invalidated upon std::map insertion.
+  for (auto it : node->children_) {
     current->children.push_back(
-        TranslateAllocationNode(profile, node->children_[i], scripts));
+        TranslateAllocationNode(profile, it.second, scripts));
   }
+  node->pinned_ = false;
   return current;
 }
 
 v8::AllocationProfile* SamplingHeapProfiler::GetAllocationProfile() {
+  if (flags_ & v8::HeapProfiler::kSamplingForceGC) {
+    isolate_->heap()->CollectAllGarbage(Heap::kNoGCFlags,
+                                        "SamplingHeapProfiler");
+  }
   // To resolve positions to line/column numbers, we will need to look up
   // scripts. Build a map to allow fast mapping from script id to script.
-  std::map<int, Script*> scripts;
+  std::map<int, Handle<Script>> scripts;
   {
     Script::Iterator iterator(isolate_);
-    Script* script;
-    while ((script = iterator.Next())) {
-      scripts[script->id()] = script;
+    while (Script* script = iterator.Next()) {
+      scripts[script->id()] = handle(script);
     }
   }
-
   auto profile = new v8::internal::AllocationProfile();
-
   TranslateAllocationNode(profile, &profile_root_, scripts);
-
   return profile;
 }
 
diff --git a/src/profiler/sampling-heap-profiler.h b/src/profiler/sampling-heap-profiler.h
index 0b538b0..4b7c366 100644
--- a/src/profiler/sampling-heap-profiler.h
+++ b/src/profiler/sampling-heap-profiler.h
@@ -41,7 +41,7 @@
 class SamplingHeapProfiler {
  public:
   SamplingHeapProfiler(Heap* heap, StringsStorage* names, uint64_t rate,
-                       int stack_depth);
+                       int stack_depth, v8::HeapProfiler::SamplingFlags flags);
   ~SamplingHeapProfiler();
 
   v8::AllocationProfile* GetAllocationProfile();
@@ -71,23 +71,47 @@
 
   class AllocationNode {
    public:
-    AllocationNode(const char* const name, int script_id,
-                   const int start_position)
-        : script_id_(script_id),
+    AllocationNode(AllocationNode* parent, const char* name, int script_id,
+                   int start_position)
+        : parent_(parent),
+          script_id_(script_id),
           script_position_(start_position),
-          name_(name) {}
+          name_(name),
+          pinned_(false) {}
     ~AllocationNode() {
       for (auto child : children_) {
-        delete child;
+        delete child.second;
       }
     }
 
    private:
+    typedef uint64_t FunctionId;
+    static FunctionId function_id(int script_id, int start_position,
+                                  const char* name) {
+      // script_id == kNoScriptId case:
+      //   Use function name pointer as an id. Names derived from VM state
+      //   must not collide with the builtin names. The least significant bit
+      //   of the id is set to 1.
+      if (script_id == v8::UnboundScript::kNoScriptId) {
+        return reinterpret_cast<intptr_t>(name) | 1;
+      }
+      // script_id != kNoScriptId case:
+      //   Use script_id, start_position pair to uniquelly identify the node.
+      //   The least significant bit of the id is set to 0.
+      DCHECK(static_cast<unsigned>(start_position) < (1u << 31));
+      return (static_cast<uint64_t>(script_id) << 32) + (start_position << 1);
+    }
+    AllocationNode* FindOrAddChildNode(const char* name, int script_id,
+                                       int start_position);
+    // TODO(alph): make use of unordered_map's here. Pay attention to
+    // iterator invalidation during TranslateAllocationNode.
     std::map<size_t, unsigned int> allocations_;
-    std::vector<AllocationNode*> children_;
+    std::map<FunctionId, AllocationNode*> children_;
+    AllocationNode* const parent_;
     const int script_id_;
     const int script_position_;
     const char* const name_;
+    bool pinned_;
 
     friend class SamplingHeapProfiler;
 
@@ -110,12 +134,10 @@
   // loaded scripts keyed by their script id.
   v8::AllocationProfile::Node* TranslateAllocationNode(
       AllocationProfile* profile, SamplingHeapProfiler::AllocationNode* node,
-      const std::map<int, Script*>& scripts);
+      const std::map<int, Handle<Script>>& scripts);
   v8::AllocationProfile::Allocation ScaleSample(size_t size,
                                                 unsigned int count);
   AllocationNode* AddStack();
-  AllocationNode* FindOrAddChildNode(AllocationNode* parent, const char* name,
-                                     int script_id, int start_position);
 
   Isolate* const isolate_;
   Heap* const heap_;
@@ -126,6 +148,7 @@
   std::set<Sample*> samples_;
   const int stack_depth_;
   const uint64_t rate_;
+  v8::HeapProfiler::SamplingFlags flags_;
 
   friend class SamplingAllocationObserver;
 };
diff --git a/src/profiler/strings-storage.h b/src/profiler/strings-storage.h
index 7164cae..0849d63 100644
--- a/src/profiler/strings-storage.h
+++ b/src/profiler/strings-storage.h
@@ -6,6 +6,7 @@
 #define V8_PROFILER_STRINGS_STORAGE_H_
 
 #include "src/allocation.h"
+#include "src/base/compiler-specific.h"
 #include "src/hashmap.h"
 
 namespace v8 {
@@ -19,7 +20,8 @@
   ~StringsStorage();
 
   const char* GetCopy(const char* src);
-  const char* GetFormatted(const char* format, ...);
+  PRINTF_FORMAT(2, 3) const char* GetFormatted(const char* format, ...);
+  PRINTF_FORMAT(2, 0)
   const char* GetVFormatted(const char* format, va_list args);
   const char* GetName(Name* name);
   const char* GetName(int index);
diff --git a/src/profiler/tick-sample.cc b/src/profiler/tick-sample.cc
new file mode 100644
index 0000000..3edd964
--- /dev/null
+++ b/src/profiler/tick-sample.cc
@@ -0,0 +1,233 @@
+// Copyright 2013 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/profiler/tick-sample.h"
+
+#include "src/frames-inl.h"
+#include "src/vm-state-inl.h"
+
+
+namespace v8 {
+namespace internal {
+
+namespace {
+
+bool IsSamePage(byte* ptr1, byte* ptr2) {
+  const uint32_t kPageSize = 4096;
+  uintptr_t mask = ~static_cast<uintptr_t>(kPageSize - 1);
+  return (reinterpret_cast<uintptr_t>(ptr1) & mask) ==
+         (reinterpret_cast<uintptr_t>(ptr2) & mask);
+}
+
+
+// Check if the code at specified address could potentially be a
+// frame setup code.
+bool IsNoFrameRegion(Address address) {
+  struct Pattern {
+    int bytes_count;
+    byte bytes[8];
+    int offsets[4];
+  };
+  byte* pc = reinterpret_cast<byte*>(address);
+  static Pattern patterns[] = {
+#if V8_HOST_ARCH_IA32
+    // push %ebp
+    // mov %esp,%ebp
+    {3, {0x55, 0x89, 0xe5}, {0, 1, -1}},
+    // pop %ebp
+    // ret N
+    {2, {0x5d, 0xc2}, {0, 1, -1}},
+    // pop %ebp
+    // ret
+    {2, {0x5d, 0xc3}, {0, 1, -1}},
+#elif V8_HOST_ARCH_X64
+    // pushq %rbp
+    // movq %rsp,%rbp
+    {4, {0x55, 0x48, 0x89, 0xe5}, {0, 1, -1}},
+    // popq %rbp
+    // ret N
+    {2, {0x5d, 0xc2}, {0, 1, -1}},
+    // popq %rbp
+    // ret
+    {2, {0x5d, 0xc3}, {0, 1, -1}},
+#endif
+    {0, {}, {}}
+  };
+  for (Pattern* pattern = patterns; pattern->bytes_count; ++pattern) {
+    for (int* offset_ptr = pattern->offsets; *offset_ptr != -1; ++offset_ptr) {
+      int offset = *offset_ptr;
+      if (!offset || IsSamePage(pc, pc - offset)) {
+        MSAN_MEMORY_IS_INITIALIZED(pc - offset, pattern->bytes_count);
+        if (!memcmp(pc - offset, pattern->bytes, pattern->bytes_count))
+          return true;
+      } else {
+        // It is not safe to examine bytes on another page as it might not be
+        // allocated thus causing a SEGFAULT.
+        // Check the pattern part that's on the same page and
+        // pessimistically assume it could be the entire pattern match.
+        MSAN_MEMORY_IS_INITIALIZED(pc, pattern->bytes_count - offset);
+        if (!memcmp(pc, pattern->bytes + offset, pattern->bytes_count - offset))
+          return true;
+      }
+    }
+  }
+  return false;
+}
+
+}  // namespace
+
+
+//
+// StackTracer implementation
+//
+DISABLE_ASAN void TickSample::Init(Isolate* isolate,
+                                   const v8::RegisterState& regs,
+                                   RecordCEntryFrame record_c_entry_frame,
+                                   bool update_stats) {
+  timestamp = base::TimeTicks::HighResolutionNow();
+  pc = reinterpret_cast<Address>(regs.pc);
+  state = isolate->current_vm_state();
+  this->update_stats = update_stats;
+
+  // Avoid collecting traces while doing GC.
+  if (state == GC) return;
+
+  Address js_entry_sp = isolate->js_entry_sp();
+  if (js_entry_sp == 0) return;  // Not executing JS now.
+
+  if (pc && IsNoFrameRegion(pc)) {
+    // Can't collect stack. Mark the sample as spoiled.
+    timestamp = base::TimeTicks();
+    pc = 0;
+    return;
+  }
+
+  ExternalCallbackScope* scope = isolate->external_callback_scope();
+  Address handler = Isolate::handler(isolate->thread_local_top());
+  // If there is a handler on top of the external callback scope then
+  // we have already entrered JavaScript again and the external callback
+  // is not the top function.
+  if (scope && scope->scope_address() < handler) {
+    external_callback_entry = *scope->callback_entrypoint_address();
+    has_external_callback = true;
+  } else {
+    // sp register may point at an arbitrary place in memory, make
+    // sure MSAN doesn't complain about it.
+    MSAN_MEMORY_IS_INITIALIZED(regs.sp, sizeof(Address));
+    // Sample potential return address value for frameless invocation of
+    // stubs (we'll figure out later, if this value makes sense).
+    tos = Memory::Address_at(reinterpret_cast<Address>(regs.sp));
+    has_external_callback = false;
+  }
+
+  SafeStackFrameIterator it(isolate, reinterpret_cast<Address>(regs.fp),
+                            reinterpret_cast<Address>(regs.sp), js_entry_sp);
+  top_frame_type = it.top_frame_type();
+
+  SampleInfo info;
+  GetStackSample(isolate, regs, record_c_entry_frame,
+                 reinterpret_cast<void**>(&stack[0]), kMaxFramesCount, &info);
+  frames_count = static_cast<unsigned>(info.frames_count);
+  if (!frames_count) {
+    // It is executing JS but failed to collect a stack trace.
+    // Mark the sample as spoiled.
+    timestamp = base::TimeTicks();
+    pc = 0;
+  }
+}
+
+
+void TickSample::GetStackSample(Isolate* isolate, const v8::RegisterState& regs,
+                                RecordCEntryFrame record_c_entry_frame,
+                                void** frames, size_t frames_limit,
+                                v8::SampleInfo* sample_info) {
+  sample_info->frames_count = 0;
+  sample_info->vm_state = isolate->current_vm_state();
+  if (sample_info->vm_state == GC) return;
+
+  Address js_entry_sp = isolate->js_entry_sp();
+  if (js_entry_sp == 0) return;  // Not executing JS now.
+
+  SafeStackFrameIterator it(isolate, reinterpret_cast<Address>(regs.fp),
+                            reinterpret_cast<Address>(regs.sp), js_entry_sp);
+  size_t i = 0;
+  if (record_c_entry_frame == kIncludeCEntryFrame && !it.done() &&
+      it.top_frame_type() == StackFrame::EXIT) {
+    frames[i++] = isolate->c_function();
+  }
+  while (!it.done() && i < frames_limit) {
+    if (it.frame()->is_interpreted()) {
+      // For interpreted frames use the bytecode array pointer as the pc.
+      InterpretedFrame* frame = static_cast<InterpretedFrame*>(it.frame());
+      // Since the sampler can interrupt execution at any point the
+      // bytecode_array might be garbage, so don't dereference it.
+      Address bytecode_array =
+          reinterpret_cast<Address>(frame->GetBytecodeArray()) - kHeapObjectTag;
+      frames[i++] = bytecode_array + BytecodeArray::kHeaderSize +
+                    frame->GetBytecodeOffset();
+    } else {
+      frames[i++] = it.frame()->pc();
+    }
+    it.Advance();
+  }
+  sample_info->frames_count = i;
+}
+
+
+#if defined(USE_SIMULATOR)
+bool SimulatorHelper::FillRegisters(Isolate* isolate,
+                                    v8::RegisterState* state) {
+  Simulator *simulator = isolate->thread_local_top()->simulator_;
+  // Check if there is active simulator.
+  if (simulator == NULL) return false;
+#if V8_TARGET_ARCH_ARM
+  if (!simulator->has_bad_pc()) {
+    state->pc = reinterpret_cast<Address>(simulator->get_pc());
+  }
+  state->sp = reinterpret_cast<Address>(simulator->get_register(Simulator::sp));
+  state->fp = reinterpret_cast<Address>(simulator->get_register(
+      Simulator::r11));
+#elif V8_TARGET_ARCH_ARM64
+  state->pc = reinterpret_cast<Address>(simulator->pc());
+  state->sp = reinterpret_cast<Address>(simulator->sp());
+  state->fp = reinterpret_cast<Address>(simulator->fp());
+#elif V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64
+  if (!simulator->has_bad_pc()) {
+    state->pc = reinterpret_cast<Address>(simulator->get_pc());
+  }
+  state->sp = reinterpret_cast<Address>(simulator->get_register(Simulator::sp));
+  state->fp = reinterpret_cast<Address>(simulator->get_register(Simulator::fp));
+#elif V8_TARGET_ARCH_PPC
+  if (!simulator->has_bad_pc()) {
+    state->pc = reinterpret_cast<Address>(simulator->get_pc());
+  }
+  state->sp = reinterpret_cast<Address>(simulator->get_register(Simulator::sp));
+  state->fp = reinterpret_cast<Address>(simulator->get_register(Simulator::fp));
+#elif V8_TARGET_ARCH_S390
+  if (!simulator->has_bad_pc()) {
+    state->pc = reinterpret_cast<Address>(simulator->get_pc());
+  }
+  state->sp = reinterpret_cast<Address>(simulator->get_register(Simulator::sp));
+  state->fp = reinterpret_cast<Address>(simulator->get_register(Simulator::fp));
+#endif
+  if (state->sp == 0 || state->fp == 0) {
+    // It possible that the simulator is interrupted while it is updating
+    // the sp or fp register. ARM64 simulator does this in two steps:
+    // first setting it to zero and then setting it to the new value.
+    // Bailout if sp/fp doesn't contain the new value.
+    //
+    // FIXME: The above doesn't really solve the issue.
+    // If a 64-bit target is executed on a 32-bit host even the final
+    // write is non-atomic, so it might obtain a half of the result.
+    // Moreover as long as the register set code uses memcpy (as of now),
+    // it is not guaranteed to be atomic even when both host and target
+    // are of same bitness.
+    return false;
+  }
+  return true;
+}
+#endif  // USE_SIMULATOR
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/profiler/tick-sample.h b/src/profiler/tick-sample.h
new file mode 100644
index 0000000..fa2cf21
--- /dev/null
+++ b/src/profiler/tick-sample.h
@@ -0,0 +1,76 @@
+// Copyright 2013 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_PROFILER_TICK_SAMPLE_H_
+#define V8_PROFILER_TICK_SAMPLE_H_
+
+#include "include/v8.h"
+
+#include "src/base/platform/time.h"
+#include "src/frames.h"
+#include "src/globals.h"
+
+namespace v8 {
+namespace internal {
+
+class Isolate;
+
+// ----------------------------------------------------------------------------
+// Sampler
+//
+// A sampler periodically samples the state of the VM and optionally
+// (if used for profiling) the program counter and stack pointer for
+// the thread that created it.
+
+// TickSample captures the information collected for each sample.
+struct TickSample {
+  // Internal profiling (with --prof + tools/$OS-tick-processor) wants to
+  // include the runtime function we're calling. Externally exposed tick
+  // samples don't care.
+  enum RecordCEntryFrame { kIncludeCEntryFrame, kSkipCEntryFrame };
+
+  TickSample()
+      : state(OTHER),
+        pc(NULL),
+        external_callback_entry(NULL),
+        frames_count(0),
+        has_external_callback(false),
+        update_stats(true),
+        top_frame_type(StackFrame::NONE) {}
+  void Init(Isolate* isolate, const v8::RegisterState& state,
+            RecordCEntryFrame record_c_entry_frame, bool update_stats);
+  static void GetStackSample(Isolate* isolate, const v8::RegisterState& state,
+                             RecordCEntryFrame record_c_entry_frame,
+                             void** frames, size_t frames_limit,
+                             v8::SampleInfo* sample_info);
+  StateTag state;  // The state of the VM.
+  Address pc;      // Instruction pointer.
+  union {
+    Address tos;   // Top stack value (*sp).
+    Address external_callback_entry;
+  };
+  static const unsigned kMaxFramesCountLog2 = 8;
+  static const unsigned kMaxFramesCount = (1 << kMaxFramesCountLog2) - 1;
+  Address stack[kMaxFramesCount];  // Call stack.
+  base::TimeTicks timestamp;
+  unsigned frames_count : kMaxFramesCountLog2;  // Number of captured frames.
+  bool has_external_callback : 1;
+  bool update_stats : 1;  // Whether the sample should update aggregated stats.
+  StackFrame::Type top_frame_type : 5;
+};
+
+
+#if defined(USE_SIMULATOR)
+class SimulatorHelper {
+ public:
+  // Returns true if register values were successfully retrieved
+  // from the simulator, otherwise returns false.
+  static bool FillRegisters(Isolate* isolate, v8::RegisterState* state);
+};
+#endif  // USE_SIMULATOR
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_PROFILER_TICK_SAMPLE_H_
diff --git a/src/property-details.h b/src/property-details.h
index fdf2c6c..8df7307 100644
--- a/src/property-details.h
+++ b/src/property-details.h
@@ -53,7 +53,18 @@
 STATIC_ASSERT(ONLY_CONFIGURABLE == static_cast<PropertyFilter>(DONT_DELETE));
 STATIC_ASSERT(((SKIP_STRINGS | SKIP_SYMBOLS | ONLY_ALL_CAN_READ) &
                ALL_ATTRIBUTES_MASK) == 0);
-
+STATIC_ASSERT(ALL_PROPERTIES ==
+              static_cast<PropertyFilter>(v8::PropertyFilter::ALL_PROPERTIES));
+STATIC_ASSERT(ONLY_WRITABLE ==
+              static_cast<PropertyFilter>(v8::PropertyFilter::ONLY_WRITABLE));
+STATIC_ASSERT(ONLY_ENUMERABLE ==
+              static_cast<PropertyFilter>(v8::PropertyFilter::ONLY_ENUMERABLE));
+STATIC_ASSERT(ONLY_CONFIGURABLE == static_cast<PropertyFilter>(
+                                       v8::PropertyFilter::ONLY_CONFIGURABLE));
+STATIC_ASSERT(SKIP_STRINGS ==
+              static_cast<PropertyFilter>(v8::PropertyFilter::SKIP_STRINGS));
+STATIC_ASSERT(SKIP_SYMBOLS ==
+              static_cast<PropertyFilter>(v8::PropertyFilter::SKIP_SYMBOLS));
 
 class Smi;
 class Type;
diff --git a/src/regexp/jsregexp.cc b/src/regexp/jsregexp.cc
index ddb4a16..6c50f4e 100644
--- a/src/regexp/jsregexp.cc
+++ b/src/regexp/jsregexp.cc
@@ -5159,8 +5159,10 @@
       ranges = negated;
     }
     if (ranges->length() == 0) {
-      // No matches possible.
-      return new (zone) EndNode(EndNode::BACKTRACK, zone);
+      ranges->Add(CharacterRange::Everything(), zone);
+      RegExpCharacterClass* fail =
+          new (zone) RegExpCharacterClass(ranges, true);
+      return new (zone) TextNode(fail, compiler->read_backward(), on_success);
     }
     if (standard_type() == '*') {
       return UnanchoredAdvance(compiler, on_success);
@@ -5879,6 +5881,7 @@
 void CharacterRange::AddCaseEquivalents(Isolate* isolate, Zone* zone,
                                         ZoneList<CharacterRange>* ranges,
                                         bool is_one_byte) {
+  CharacterRange::Canonicalize(ranges);
   int range_count = ranges->length();
   for (int i = 0; i < range_count; i++) {
     CharacterRange range = ranges->at(i);
@@ -6762,7 +6765,7 @@
   Heap* heap = pattern->GetHeap();
   bool too_much = pattern->length() > RegExpImpl::kRegExpTooLargeToOptimize;
   if (heap->total_regexp_code_generated() > RegExpImpl::kRegExpCompiledLimit &&
-      heap->isolate()->memory_allocator()->SizeExecutable() >
+      heap->memory_allocator()->SizeExecutable() >
           RegExpImpl::kRegExpExecutableMemoryLimit) {
     too_much = true;
   }
diff --git a/src/regexp/regexp-ast.h b/src/regexp/regexp-ast.h
index 0e718d3..39c9cee 100644
--- a/src/regexp/regexp-ast.h
+++ b/src/regexp/regexp-ast.h
@@ -296,7 +296,10 @@
   bool IsCharacterClass() override;
   bool IsTextElement() override { return true; }
   int min_match() override { return 1; }
-  int max_match() override { return 1; }
+  // The character class may match two code units for unicode regexps.
+  // TODO(yangguo): we should split this class for usage in TextElement, and
+  //                make max_match() dependent on the character class content.
+  int max_match() override { return 2; }
   void AppendToText(RegExpText* text, Zone* zone) override;
   CharacterSet character_set() { return set_; }
   // TODO(lrn): Remove need for complex version if is_standard that
diff --git a/src/regexp/regexp-macro-assembler.cc b/src/regexp/regexp-macro-assembler.cc
index 9bb5073..7fed26e 100644
--- a/src/regexp/regexp-macro-assembler.cc
+++ b/src/regexp/regexp-macro-assembler.cc
@@ -100,6 +100,15 @@
   Bind(&ok);
 }
 
+void RegExpMacroAssembler::CheckPosition(int cp_offset,
+                                         Label* on_outside_input) {
+  LoadCurrentCharacter(cp_offset, on_outside_input, true);
+}
+
+bool RegExpMacroAssembler::CheckSpecialCharacterClass(uc16 type,
+                                                      Label* on_no_match) {
+  return false;
+}
 
 #ifndef V8_INTERPRETED_REGEXP  // Avoid unused code, e.g., on ARM.
 
diff --git a/src/regexp/regexp-macro-assembler.h b/src/regexp/regexp-macro-assembler.h
index 2aa439e..76efdf9 100644
--- a/src/regexp/regexp-macro-assembler.h
+++ b/src/regexp/regexp-macro-assembler.h
@@ -113,12 +113,12 @@
 
   // Checks whether the given offset from the current position is before
   // the end of the string.  May overwrite the current character.
-  virtual void CheckPosition(int cp_offset, Label* on_outside_input) = 0;
+  virtual void CheckPosition(int cp_offset, Label* on_outside_input);
   // Check whether a standard/default character class matches the current
   // character. Returns false if the type of special character class does
   // not have custom support.
   // May clobber the current loaded character.
-  virtual bool CheckSpecialCharacterClass(uc16 type, Label* on_no_match) = 0;
+  virtual bool CheckSpecialCharacterClass(uc16 type, Label* on_no_match);
   virtual void Fail() = 0;
   virtual Handle<HeapObject> GetCode(Handle<String> source) = 0;
   virtual void GoTo(Label* label) = 0;
diff --git a/src/regexp/regexp-parser.cc b/src/regexp/regexp-parser.cc
index d433fc8..abb644a 100644
--- a/src/regexp/regexp-parser.cc
+++ b/src/regexp/regexp-parser.cc
@@ -130,6 +130,7 @@
 
 
 RegExpTree* RegExpParser::ReportError(Vector<const char> message) {
+  if (failed_) return NULL;  // Do not overwrite any existing error.
   failed_ = true;
   *error_ = isolate()->factory()->NewStringFromAscii(message).ToHandleChecked();
   // Zip to the end to make sure the no more input is read.
@@ -511,9 +512,8 @@
         break;
       case '{': {
         int dummy;
-        if (ParseIntervalQuantifier(&dummy, &dummy)) {
-          return ReportError(CStrVector("Nothing to repeat"));
-        }
+        bool parsed = ParseIntervalQuantifier(&dummy, &dummy CHECK_FAILED);
+        if (parsed) return ReportError(CStrVector("Nothing to repeat"));
         // fallthrough
       }
       case '}':
@@ -845,29 +845,46 @@
 }
 
 #ifdef V8_I18N_SUPPORT
-bool IsExactPropertyValueAlias(const char* property_name, UProperty property,
-                               int32_t property_value) {
-  const char* short_name =
-      u_getPropertyValueName(property, property_value, U_SHORT_PROPERTY_NAME);
+bool IsExactPropertyAlias(const char* property_name, UProperty property) {
+  const char* short_name = u_getPropertyName(property, U_SHORT_PROPERTY_NAME);
   if (short_name != NULL && strcmp(property_name, short_name) == 0) return true;
   for (int i = 0;; i++) {
-    const char* long_name = u_getPropertyValueName(
-        property, property_value,
-        static_cast<UPropertyNameChoice>(U_LONG_PROPERTY_NAME + i));
+    const char* long_name = u_getPropertyName(
+        property, static_cast<UPropertyNameChoice>(U_LONG_PROPERTY_NAME + i));
     if (long_name == NULL) break;
     if (strcmp(property_name, long_name) == 0) return true;
   }
   return false;
 }
 
-bool LookupPropertyClass(UProperty property, const char* property_name,
-                         ZoneList<CharacterRange>* result, Zone* zone) {
-  int32_t property_value = u_getPropertyValueEnum(property, property_name);
+bool IsExactPropertyValueAlias(const char* property_value_name,
+                               UProperty property, int32_t property_value) {
+  const char* short_name =
+      u_getPropertyValueName(property, property_value, U_SHORT_PROPERTY_NAME);
+  if (short_name != NULL && strcmp(property_value_name, short_name) == 0) {
+    return true;
+  }
+  for (int i = 0;; i++) {
+    const char* long_name = u_getPropertyValueName(
+        property, property_value,
+        static_cast<UPropertyNameChoice>(U_LONG_PROPERTY_NAME + i));
+    if (long_name == NULL) break;
+    if (strcmp(property_value_name, long_name) == 0) return true;
+  }
+  return false;
+}
+
+bool LookupPropertyValueName(UProperty property,
+                             const char* property_value_name,
+                             ZoneList<CharacterRange>* result, Zone* zone) {
+  int32_t property_value =
+      u_getPropertyValueEnum(property, property_value_name);
   if (property_value == UCHAR_INVALID_CODE) return false;
 
   // We require the property name to match exactly to one of the property value
   // aliases. However, u_getPropertyValueEnum uses loose matching.
-  if (!IsExactPropertyValueAlias(property_name, property, property_value)) {
+  if (!IsExactPropertyValueAlias(property_value_name, property,
+                                 property_value)) {
     return false;
   }
 
@@ -892,49 +909,75 @@
   uset_close(set);
   return success;
 }
-#endif  // V8_I18N_SUPPORT
 
 bool RegExpParser::ParsePropertyClass(ZoneList<CharacterRange>* result) {
-#ifdef V8_I18N_SUPPORT
-  List<char> property_name_list;
+  // Parse the property class as follows:
+  // - \pN with a single-character N is equivalent to \p{N}
+  // - In \p{name}, 'name' is interpreted
+  //   - either as a general category property value name.
+  //   - or as a binary property name.
+  // - In \p{name=value}, 'name' is interpreted as an enumerated property name,
+  //   and 'value' is interpreted as one of the available property value names.
+  // - Aliases in PropertyAlias.txt and PropertyValueAlias.txt can be used.
+  // - Loose matching is not applied.
+  List<char> first_part;
+  List<char> second_part;
   if (current() == '{') {
-    for (Advance(); current() != '}'; Advance()) {
+    // Parse \p{[PropertyName=]PropertyNameValue}
+    for (Advance(); current() != '}' && current() != '='; Advance()) {
       if (!has_next()) return false;
-      property_name_list.Add(static_cast<char>(current()));
+      first_part.Add(static_cast<char>(current()));
+    }
+    if (current() == '=') {
+      for (Advance(); current() != '}'; Advance()) {
+        if (!has_next()) return false;
+        second_part.Add(static_cast<char>(current()));
+      }
+      second_part.Add(0);  // null-terminate string.
     }
   } else if (current() != kEndMarker) {
-    property_name_list.Add(static_cast<char>(current()));
+    // Parse \pN, where N is a single-character property name value.
+    first_part.Add(static_cast<char>(current()));
   } else {
     return false;
   }
   Advance();
-  property_name_list.Add(0);  // null-terminate string.
+  first_part.Add(0);  // null-terminate string.
 
-  const char* property_name = property_name_list.ToConstVector().start();
-
-#define PROPERTY_NAME_LOOKUP(PROPERTY)                                  \
-  do {                                                                  \
-    if (LookupPropertyClass(PROPERTY, property_name, result, zone())) { \
-      return true;                                                      \
-    }                                                                   \
-  } while (false)
-
-  // General_Category (gc) found in PropertyValueAliases.txt
-  PROPERTY_NAME_LOOKUP(UCHAR_GENERAL_CATEGORY_MASK);
-  // Script (sc) found in Scripts.txt
-  PROPERTY_NAME_LOOKUP(UCHAR_SCRIPT);
-  // To disambiguate from script names, block names have an "In"-prefix.
-  if (property_name_list.length() > 3 && property_name[0] == 'I' &&
-      property_name[1] == 'n') {
-    // Block (blk) found in Blocks.txt
-    property_name += 2;
-    PROPERTY_NAME_LOOKUP(UCHAR_BLOCK);
+  if (second_part.is_empty()) {
+    // First attempt to interpret as general category property value name.
+    const char* name = first_part.ToConstVector().start();
+    if (LookupPropertyValueName(UCHAR_GENERAL_CATEGORY_MASK, name, result,
+                                zone())) {
+      return true;
+    }
+    // Then attempt to interpret as binary property name with value name 'Y'.
+    UProperty property = u_getPropertyEnum(name);
+    if (property < UCHAR_BINARY_START) return false;
+    if (property >= UCHAR_BINARY_LIMIT) return false;
+    if (!IsExactPropertyAlias(name, property)) return false;
+    return LookupPropertyValueName(property, "Y", result, zone());
+  } else {
+    // Both property name and value name are specified. Attempt to interpret
+    // the property name as enumerated property.
+    const char* property_name = first_part.ToConstVector().start();
+    const char* value_name = second_part.ToConstVector().start();
+    UProperty property = u_getPropertyEnum(property_name);
+    if (property < UCHAR_INT_START) return false;
+    if (property >= UCHAR_INT_LIMIT) return false;
+    if (!IsExactPropertyAlias(property_name, property)) return false;
+    return LookupPropertyValueName(property, value_name, result, zone());
   }
-#undef PROPERTY_NAME_LOOKUP
-#endif  // V8_I18N_SUPPORT
+}
+
+#else  // V8_I18N_SUPPORT
+
+bool RegExpParser::ParsePropertyClass(ZoneList<CharacterRange>* result) {
   return false;
 }
 
+#endif  // V8_I18N_SUPPORT
+
 bool RegExpParser::ParseUnlimitedLengthHexNumber(int max_value, uc32* value) {
   uc32 x = 0;
   int d = HexValue(current());
diff --git a/src/register-configuration.cc b/src/register-configuration.cc
index 2df825a..ab5c692 100644
--- a/src/register-configuration.cc
+++ b/src/register-configuration.cc
@@ -41,7 +41,7 @@
 
 STATIC_ASSERT(RegisterConfiguration::kMaxGeneralRegisters >=
               Register::kNumRegisters);
-STATIC_ASSERT(RegisterConfiguration::kMaxDoubleRegisters >=
+STATIC_ASSERT(RegisterConfiguration::kMaxFPRegisters >=
               DoubleRegister::kMaxNumRegisters);
 
 class ArchDefaultRegisterConfiguration : public RegisterConfiguration {
@@ -152,6 +152,8 @@
       allocatable_double_codes_(allocatable_double_codes),
       general_register_names_(general_register_names),
       double_register_names_(double_register_names) {
+  DCHECK(num_general_registers_ <= RegisterConfiguration::kMaxGeneralRegisters);
+  DCHECK(num_double_registers_ <= RegisterConfiguration::kMaxFPRegisters);
   for (int i = 0; i < num_allocatable_general_registers_; ++i) {
     allocatable_general_codes_mask_ |= (1 << allocatable_general_codes_[i]);
   }
diff --git a/src/register-configuration.h b/src/register-configuration.h
index 8ad1d78..c07106e 100644
--- a/src/register-configuration.h
+++ b/src/register-configuration.h
@@ -23,7 +23,7 @@
 
   // Architecture independent maxes.
   static const int kMaxGeneralRegisters = 32;
-  static const int kMaxDoubleRegisters = 32;
+  static const int kMaxFPRegisters = 32;
 
   static const RegisterConfiguration* ArchDefault(CompilerSelector compiler);
 
diff --git a/src/runtime-profiler.cc b/src/runtime-profiler.cc
index b76785d..1b571a7 100644
--- a/src/runtime-profiler.cc
+++ b/src/runtime-profiler.cc
@@ -20,6 +20,9 @@
 
 
 // Number of times a function has to be seen on the stack before it is
+// compiled for baseline.
+static const int kProfilerTicksBeforeBaseline = 2;
+// Number of times a function has to be seen on the stack before it is
 // optimized.
 static const int kProfilerTicksBeforeOptimization = 2;
 // If the function optimization was disabled due to high deoptimization count,
@@ -88,13 +91,13 @@
   }
 }
 
-
-void RuntimeProfiler::Optimize(JSFunction* function, const char* reason) {
+static void TraceRecompile(JSFunction* function, const char* reason,
+                           const char* type) {
   if (FLAG_trace_opt &&
       function->shared()->PassesFilter(FLAG_hydrogen_filter)) {
     PrintF("[marking ");
     function->ShortPrint();
-    PrintF(" for recompilation, reason: %s", reason);
+    PrintF(" for %s recompilation, reason: %s", type, reason);
     if (FLAG_type_info_threshold > 0) {
       int typeinfo, generic, total, type_percentage, generic_percentage;
       GetICCounts(function->shared(), &typeinfo, &generic, &total,
@@ -105,10 +108,27 @@
     }
     PrintF("]\n");
   }
+}
 
+void RuntimeProfiler::Optimize(JSFunction* function, const char* reason) {
+  TraceRecompile(function, reason, "optimized");
+
+  // TODO(4280): Fix this to check function is compiled to baseline once we
+  // have a standard way to check that. For now, if baseline code doesn't have
+  // a bytecode array.
+  DCHECK(!function->shared()->HasBytecodeArray());
   function->AttemptConcurrentOptimization();
 }
 
+void RuntimeProfiler::Baseline(JSFunction* function, const char* reason) {
+  TraceRecompile(function, reason, "baseline");
+
+  // TODO(4280): Fix this to check function is compiled for the interpreter
+  // once we have a standard way to check that. For now function will only
+  // have a bytecode array if compiled for the interpreter.
+  DCHECK(function->shared()->HasBytecodeArray());
+  function->MarkForBaseline();
+}
 
 void RuntimeProfiler::AttemptOnStackReplacement(JSFunction* function,
                                                 int loop_nesting_levels) {
@@ -235,8 +255,7 @@
   }
 }
 
-void RuntimeProfiler::MaybeOptimizeIgnition(JSFunction* function,
-                                            bool frame_optimized) {
+void RuntimeProfiler::MaybeOptimizeIgnition(JSFunction* function) {
   if (function->IsInOptimizationQueue()) return;
 
   SharedFunctionInfo* shared = function->shared();
@@ -247,48 +266,22 @@
   // TODO(rmcilroy): Consider whether we should optimize small functions when
   // they are first seen on the stack (e.g., kMaxSizeEarlyOpt).
 
-  if (!frame_optimized && (function->IsMarkedForOptimization() ||
-                           function->IsMarkedForConcurrentOptimization() ||
-                           function->IsOptimized())) {
+  if (function->IsMarkedForBaseline() || function->IsMarkedForOptimization() ||
+      function->IsMarkedForConcurrentOptimization() ||
+      function->IsOptimized()) {
     // TODO(rmcilroy): Support OSR in these cases.
-
     return;
   }
 
-  // Do not optimize non-optimizable functions.
-  if (shared->optimization_disabled()) {
-    if (shared->deopt_count() >= FLAG_max_opt_count) {
-      // If optimization was disabled due to many deoptimizations,
-      // then check if the function is hot and try to reenable optimization.
-      if (ticks >= kProfilerTicksBeforeReenablingOptimization) {
-        shared->set_profiler_ticks(0);
-        shared->TryReenableOptimization();
-      }
-    }
+  if (shared->optimization_disabled() &&
+      shared->disable_optimization_reason() == kOptimizationDisabledForTest) {
+    // Don't baseline functions which have been marked by NeverOptimizeFunction
+    // in a test.
     return;
   }
 
-  if (function->IsOptimized()) return;
-
-  if (ticks >= kProfilerTicksBeforeOptimization) {
-    int typeinfo, generic, total, type_percentage, generic_percentage;
-    GetICCounts(shared, &typeinfo, &generic, &total, &type_percentage,
-                &generic_percentage);
-    if (type_percentage >= FLAG_type_info_threshold &&
-        generic_percentage <= FLAG_generic_ic_threshold) {
-      // If this particular function hasn't had any ICs patched for enough
-      // ticks, optimize it now.
-      Optimize(function, "hot and stable");
-    } else if (ticks >= kTicksWhenNotEnoughTypeInfo) {
-      Optimize(function, "not much type info but very hot");
-    } else {
-      if (FLAG_trace_opt_verbose) {
-        PrintF("[not yet optimizing ");
-        function->PrintName();
-        PrintF(", not enough type info: %d/%d (%d%%)]\n", typeinfo, total,
-               type_percentage);
-      }
-    }
+  if (ticks >= kProfilerTicksBeforeBaseline) {
+    Baseline(function, "hot enough for baseline");
   }
 }
 
@@ -320,8 +313,9 @@
       }
     }
 
-    if (FLAG_ignition) {
-      MaybeOptimizeIgnition(function, frame->is_optimized());
+    if (frame->is_interpreted()) {
+      DCHECK(!frame->is_optimized());
+      MaybeOptimizeIgnition(function);
     } else {
       MaybeOptimizeFullCodegen(function, frame_count, frame->is_optimized());
     }
diff --git a/src/runtime-profiler.h b/src/runtime-profiler.h
index aa2f65e..499f0be 100644
--- a/src/runtime-profiler.h
+++ b/src/runtime-profiler.h
@@ -8,16 +8,10 @@
 #include "src/allocation.h"
 
 namespace v8 {
-
-namespace base {
-class Semaphore;
-}
-
 namespace internal {
 
 class Isolate;
 class JSFunction;
-class Object;
 
 class RuntimeProfiler {
  public:
@@ -32,8 +26,9 @@
  private:
   void MaybeOptimizeFullCodegen(JSFunction* function, int frame_count,
                                 bool frame_optimized);
-  void MaybeOptimizeIgnition(JSFunction* function, bool frame_optimized);
+  void MaybeOptimizeIgnition(JSFunction* function);
   void Optimize(JSFunction* function, const char* reason);
+  void Baseline(JSFunction* function, const char* reason);
 
   bool CodeSizeOKForOSR(Code* shared_code);
 
diff --git a/src/runtime/runtime-array.cc b/src/runtime/runtime-array.cc
index ab436c2..519df77 100644
--- a/src/runtime/runtime-array.cc
+++ b/src/runtime/runtime-array.cc
@@ -213,7 +213,7 @@
     }
     accumulator.NextPrototype();
     Handle<JSObject> current = PrototypeIterator::GetCurrent<JSObject>(iter);
-    JSObject::CollectOwnElementKeys(current, &accumulator, ALL_PROPERTIES);
+    accumulator.CollectOwnElementIndices(current);
   }
   // Erase any keys >= length.
   Handle<FixedArray> keys = accumulator.GetKeys(KEEP_NUMBERS);
@@ -455,6 +455,15 @@
   return isolate->heap()->false_value();
 }
 
+// ES6 22.1.2.2 Array.isArray
+RUNTIME_FUNCTION(Runtime_ArrayIsArray) {
+  HandleScope shs(isolate);
+  DCHECK(args.length() == 1);
+  CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
+  Maybe<bool> result = Object::IsArray(object);
+  MAYBE_RETURN(result, isolate->heap()->exception());
+  return isolate->heap()->ToBoolean(result.FromJust());
+}
 
 RUNTIME_FUNCTION(Runtime_IsArray) {
   SealHandleScope shs(isolate);
@@ -463,7 +472,6 @@
   return isolate->heap()->ToBoolean(obj->IsJSArray());
 }
 
-
 RUNTIME_FUNCTION(Runtime_HasCachedArrayIndex) {
   SealHandleScope shs(isolate);
   DCHECK(args.length() == 1);
diff --git a/src/runtime/runtime-atomics.cc b/src/runtime/runtime-atomics.cc
index 94d98d4..dd309f7 100644
--- a/src/runtime/runtime-atomics.cc
+++ b/src/runtime/runtime-atomics.cc
@@ -33,18 +33,6 @@
 }
 
 template <typename T>
-inline T LoadSeqCst(T* p) {
-  T result;
-  __atomic_load(p, &result, __ATOMIC_SEQ_CST);
-  return result;
-}
-
-template <typename T>
-inline void StoreSeqCst(T* p, T value) {
-  __atomic_store_n(p, value, __ATOMIC_SEQ_CST);
-}
-
-template <typename T>
 inline T AddSeqCst(T* p, T value) {
   return __atomic_fetch_add(p, value, __ATOMIC_SEQ_CST);
 }
@@ -116,11 +104,6 @@
     return InterlockedCompareExchange##suffix(reinterpret_cast<vctype*>(p), \
                                               bit_cast<vctype>(newval),     \
                                               bit_cast<vctype>(oldval));    \
-  }                                                                         \
-  inline type LoadSeqCst(type* p) { return *p; }                            \
-  inline void StoreSeqCst(type* p, type value) {                            \
-    InterlockedExchange##suffix(reinterpret_cast<vctype*>(p),               \
-                                bit_cast<vctype>(value));                   \
   }
 
 ATOMIC_OPS(int8_t, 8, char)
@@ -216,22 +199,6 @@
 
 
 template <typename T>
-inline Object* DoLoad(Isolate* isolate, void* buffer, size_t index) {
-  T result = LoadSeqCst(static_cast<T*>(buffer) + index);
-  return ToObject(isolate, result);
-}
-
-
-template <typename T>
-inline Object* DoStore(Isolate* isolate, void* buffer, size_t index,
-                       Handle<Object> obj) {
-  T value = FromObject<T>(obj);
-  StoreSeqCst(static_cast<T*>(buffer) + index, value);
-  return *obj;
-}
-
-
-template <typename T>
 inline Object* DoAdd(Isolate* isolate, void* buffer, size_t index,
                      Handle<Object> obj) {
   T value = FromObject<T>(obj);
@@ -307,15 +274,6 @@
 }
 
 
-inline Object* DoStoreUint8Clamped(Isolate* isolate, void* buffer, size_t index,
-                                   Handle<Object> obj) {
-  typedef int32_t convert_type;
-  uint8_t value = ClampToUint8(FromObject<convert_type>(obj));
-  StoreSeqCst(static_cast<uint8_t*>(buffer) + index, value);
-  return *obj;
-}
-
-
 #define DO_UINT8_CLAMPED_OP(name, op)                                        \
   inline Object* Do##name##Uint8Clamped(Isolate* isolate, void* buffer,      \
                                         size_t index, Handle<Object> obj) {  \
@@ -365,6 +323,29 @@
   V(Uint32, uint32, UINT32, uint32_t, 4) \
   V(Int32, int32, INT32, int32_t, 4)
 
+RUNTIME_FUNCTION(Runtime_ThrowNotIntegerSharedTypedArrayError) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(Object, value, 0);
+  THROW_NEW_ERROR_RETURN_FAILURE(
+      isolate,
+      NewTypeError(MessageTemplate::kNotIntegerSharedTypedArray, value));
+}
+
+RUNTIME_FUNCTION(Runtime_ThrowNotInt32SharedTypedArrayError) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(Object, value, 0);
+  THROW_NEW_ERROR_RETURN_FAILURE(
+      isolate, NewTypeError(MessageTemplate::kNotInt32SharedTypedArray, value));
+}
+
+RUNTIME_FUNCTION(Runtime_ThrowInvalidAtomicAccessIndexError) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(0, args.length());
+  THROW_NEW_ERROR_RETURN_FAILURE(
+      isolate, NewRangeError(MessageTemplate::kInvalidAtomicAccessIndex));
+}
 
 RUNTIME_FUNCTION(Runtime_AtomicsCompareExchange) {
   HandleScope scope(isolate);
@@ -400,69 +381,6 @@
 }
 
 
-RUNTIME_FUNCTION(Runtime_AtomicsLoad) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(JSTypedArray, sta, 0);
-  CONVERT_SIZE_ARG_CHECKED(index, 1);
-  RUNTIME_ASSERT(sta->GetBuffer()->is_shared());
-  RUNTIME_ASSERT(index < NumberToSize(isolate, sta->length()));
-
-  uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
-                    NumberToSize(isolate, sta->byte_offset());
-
-  switch (sta->type()) {
-#define TYPED_ARRAY_CASE(Type, typeName, TYPE, ctype, size) \
-  case kExternal##Type##Array:                              \
-    return DoLoad<ctype>(isolate, source, index);
-
-    INTEGER_TYPED_ARRAYS(TYPED_ARRAY_CASE)
-#undef TYPED_ARRAY_CASE
-
-    case kExternalUint8ClampedArray:
-      return DoLoad<uint8_t>(isolate, source, index);
-
-    default:
-      break;
-  }
-
-  UNREACHABLE();
-  return isolate->heap()->undefined_value();
-}
-
-
-RUNTIME_FUNCTION(Runtime_AtomicsStore) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 3);
-  CONVERT_ARG_HANDLE_CHECKED(JSTypedArray, sta, 0);
-  CONVERT_SIZE_ARG_CHECKED(index, 1);
-  CONVERT_NUMBER_ARG_HANDLE_CHECKED(value, 2);
-  RUNTIME_ASSERT(sta->GetBuffer()->is_shared());
-  RUNTIME_ASSERT(index < NumberToSize(isolate, sta->length()));
-
-  uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
-                    NumberToSize(isolate, sta->byte_offset());
-
-  switch (sta->type()) {
-#define TYPED_ARRAY_CASE(Type, typeName, TYPE, ctype, size) \
-  case kExternal##Type##Array:                              \
-    return DoStore<ctype>(isolate, source, index, value);
-
-    INTEGER_TYPED_ARRAYS(TYPED_ARRAY_CASE)
-#undef TYPED_ARRAY_CASE
-
-    case kExternalUint8ClampedArray:
-      return DoStoreUint8Clamped(isolate, source, index, value);
-
-    default:
-      break;
-  }
-
-  UNREACHABLE();
-  return isolate->heap()->undefined_value();
-}
-
-
 RUNTIME_FUNCTION(Runtime_AtomicsAdd) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 3);
diff --git a/src/runtime/runtime-classes.cc b/src/runtime/runtime-classes.cc
index 3f10225..a784d6d 100644
--- a/src/runtime/runtime-classes.cc
+++ b/src/runtime/runtime-classes.cc
@@ -194,14 +194,6 @@
 }
 
 
-RUNTIME_FUNCTION(Runtime_FinalizeClassDefinition) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, constructor, 0);
-  JSObject::MigrateSlowToFast(constructor, 0, "RuntimeToFastProperties");
-  return *constructor;
-}
-
 static MaybeHandle<Object> LoadFromSuper(Isolate* isolate,
                                          Handle<Object> receiver,
                                          Handle<JSObject> home_object,
diff --git a/src/runtime/runtime-collections.cc b/src/runtime/runtime-collections.cc
index 32340e5..65690df 100644
--- a/src/runtime/runtime-collections.cc
+++ b/src/runtime/runtime-collections.cc
@@ -368,14 +368,5 @@
   }
   return *isolate->factory()->NewJSArrayWithElements(values);
 }
-
-
-RUNTIME_FUNCTION(Runtime_ObservationWeakMapCreate) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 0);
-  Handle<JSWeakMap> weakmap = isolate->factory()->NewJSWeakMap();
-  JSWeakCollection::Initialize(weakmap, isolate);
-  return *weakmap;
-}
 }  // namespace internal
 }  // namespace v8
diff --git a/src/runtime/runtime-compiler.cc b/src/runtime/runtime-compiler.cc
index 89a6fa1..c8fc9e8 100644
--- a/src/runtime/runtime-compiler.cc
+++ b/src/runtime/runtime-compiler.cc
@@ -19,7 +19,7 @@
 
 RUNTIME_FUNCTION(Runtime_CompileLazy) {
   HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
+  DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
 
 #ifdef DEBUG
@@ -39,10 +39,22 @@
   return function->code();
 }
 
+RUNTIME_FUNCTION(Runtime_CompileBaseline) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
+  StackLimitCheck check(isolate);
+  if (check.JsHasOverflowed(1 * KB)) return isolate->StackOverflow();
+  if (!Compiler::CompileBaseline(function)) {
+    return isolate->heap()->exception();
+  }
+  DCHECK(function->is_compiled());
+  return function->code();
+}
 
 RUNTIME_FUNCTION(Runtime_CompileOptimized_Concurrent) {
   HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
+  DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
   StackLimitCheck check(isolate);
   if (check.JsHasOverflowed(1 * KB)) return isolate->StackOverflow();
@@ -56,7 +68,7 @@
 
 RUNTIME_FUNCTION(Runtime_CompileOptimized_NotConcurrent) {
   HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
+  DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
   StackLimitCheck check(isolate);
   if (check.JsHasOverflowed(1 * KB)) return isolate->StackOverflow();
@@ -305,11 +317,10 @@
   }
 }
 
-
 static Object* CompileGlobalEval(Isolate* isolate, Handle<String> source,
                                  Handle<SharedFunctionInfo> outer_info,
                                  LanguageMode language_mode,
-                                 int scope_position) {
+                                 int eval_scope_position, int eval_position) {
   Handle<Context> context = Handle<Context>(isolate->context());
   Handle<Context> native_context = Handle<Context>(context->native_context());
 
@@ -331,9 +342,9 @@
   static const ParseRestriction restriction = NO_PARSE_RESTRICTION;
   Handle<JSFunction> compiled;
   ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-      isolate, compiled,
-      Compiler::GetFunctionFromEval(source, outer_info, context, language_mode,
-                                    restriction, scope_position),
+      isolate, compiled, Compiler::GetFunctionFromEval(
+                             source, outer_info, context, language_mode,
+                             restriction, eval_scope_position, eval_position),
       isolate->heap()->exception());
   return *compiled;
 }
@@ -341,7 +352,7 @@
 
 RUNTIME_FUNCTION(Runtime_ResolvePossiblyDirectEval) {
   HandleScope scope(isolate);
-  DCHECK(args.length() == 5);
+  DCHECK(args.length() == 6);
 
   Handle<Object> callee = args.at<Object>(0);
 
@@ -362,7 +373,7 @@
   Handle<SharedFunctionInfo> outer_info(args.at<JSFunction>(2)->shared(),
                                         isolate);
   return CompileGlobalEval(isolate, args.at<String>(1), outer_info,
-                           language_mode, args.smi_at(4));
+                           language_mode, args.smi_at(4), args.smi_at(5));
 }
 }  // namespace internal
 }  // namespace v8
diff --git a/src/runtime/runtime-debug.cc b/src/runtime/runtime-debug.cc
index ad8375a..e3f3beb 100644
--- a/src/runtime/runtime-debug.cc
+++ b/src/runtime/runtime-debug.cc
@@ -42,6 +42,9 @@
   JavaScriptFrameIterator it(isolate);
   isolate->debug()->Break(it.frame());
 
+  // If live-edit has dropped frames, we are not going back to dispatch.
+  if (LiveEdit::SetAfterBreakTarget(isolate->debug())) return Smi::FromInt(0);
+
   // Return the handler from the original bytecode array.
   DCHECK(it.frame()->is_interpreted());
   InterpretedFrame* interpreted_frame =
@@ -244,7 +247,7 @@
     Handle<JSObject> promise = Handle<JSObject>::cast(object);
 
     Handle<Object> status_obj =
-        DebugGetProperty(promise, isolate->factory()->promise_status_symbol());
+        DebugGetProperty(promise, isolate->factory()->promise_state_symbol());
     RUNTIME_ASSERT_HANDLIFIED(status_obj->IsSmi(), JSArray);
     const char* status = "rejected";
     int status_val = Handle<Smi>::cast(status_obj)->value();
@@ -267,12 +270,31 @@
     result->set(1, *status_str);
 
     Handle<Object> value_obj =
-        DebugGetProperty(promise, isolate->factory()->promise_value_symbol());
+        DebugGetProperty(promise, isolate->factory()->promise_result_symbol());
     Handle<String> promise_value =
         factory->NewStringFromAsciiChecked("[[PromiseValue]]");
     result->set(2, *promise_value);
     result->set(3, *value_obj);
     return factory->NewJSArrayWithElements(result);
+  } else if (object->IsJSProxy()) {
+    Handle<JSProxy> js_proxy = Handle<JSProxy>::cast(object);
+    Handle<FixedArray> result = factory->NewFixedArray(3 * 2);
+
+    Handle<String> handler_str =
+        factory->NewStringFromAsciiChecked("[[Handler]]");
+    result->set(0, *handler_str);
+    result->set(1, js_proxy->handler());
+
+    Handle<String> target_str =
+        factory->NewStringFromAsciiChecked("[[Target]]");
+    result->set(2, *target_str);
+    result->set(3, js_proxy->target());
+
+    Handle<String> is_revoked_str =
+        factory->NewStringFromAsciiChecked("[[IsRevoked]]");
+    result->set(4, *is_revoked_str);
+    result->set(5, isolate->heap()->ToBoolean(js_proxy->IsRevoked()));
+    return factory->NewJSArrayWithElements(result);
   } else if (object->IsJSValue()) {
     Handle<JSValue> js_value = Handle<JSValue>::cast(object);
 
@@ -339,7 +361,7 @@
     return *isolate->factory()->NewJSArrayWithElements(details);
   }
 
-  LookupIterator it(obj, name, LookupIterator::HIDDEN);
+  LookupIterator it(obj, name, LookupIterator::OWN);
   bool has_caught = false;
   Handle<Object> value = DebugGetProperty(&it, &has_caught);
   if (!it.IsFound()) return isolate->heap()->undefined_value();
@@ -410,50 +432,6 @@
 }
 
 
-// Return the property insertion index calculated from the property details.
-// args[0]: smi with property details.
-RUNTIME_FUNCTION(Runtime_DebugPropertyIndexFromDetails) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_PROPERTY_DETAILS_CHECKED(details, 0);
-  // TODO(verwaest): Works only for dictionary mode holders.
-  return Smi::FromInt(details.dictionary_index());
-}
-
-
-// Return property value from named interceptor.
-// args[0]: object
-// args[1]: property name
-RUNTIME_FUNCTION(Runtime_DebugNamedInterceptorPropertyValue) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0);
-  RUNTIME_ASSERT(obj->HasNamedInterceptor());
-  CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
-
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     JSObject::GetProperty(obj, name));
-  return *result;
-}
-
-
-// Return element value from indexed interceptor.
-// args[0]: object
-// args[1]: index
-RUNTIME_FUNCTION(Runtime_DebugIndexedInterceptorElementValue) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0);
-  RUNTIME_ASSERT(obj->HasIndexedInterceptor());
-  CONVERT_NUMBER_CHECKED(uint32_t, index, Uint32, args[1]);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, JSReceiver::GetElement(isolate, obj, index));
-  return *result;
-}
-
-
 RUNTIME_FUNCTION(Runtime_CheckExecutionState) {
   SealHandleScope shs(isolate);
   DCHECK(args.length() == 1);
@@ -571,7 +549,9 @@
   for (int slot = 0; slot < scope_info->LocalCount(); ++slot) {
     // Hide compiler-introduced temporary variables, whether on the stack or on
     // the context.
-    if (scope_info->LocalIsSynthetic(slot)) local_count--;
+    if (ScopeInfo::VariableIsSynthetic(scope_info->LocalName(slot))) {
+      local_count--;
+    }
   }
 
   Handle<FixedArray> locals =
@@ -582,7 +562,7 @@
   int i = 0;
   for (; i < scope_info->StackLocalCount(); ++i) {
     // Use the value from the stack.
-    if (scope_info->LocalIsSynthetic(i)) continue;
+    if (ScopeInfo::VariableIsSynthetic(scope_info->LocalName(i))) continue;
     locals->set(local * 2, scope_info->LocalName(i));
     Handle<Object> value = frame_inspector.GetExpression(i);
     // TODO(yangguo): We convert optimized out values to {undefined} when they
@@ -596,8 +576,8 @@
     Handle<Context> context(
         Handle<Context>::cast(frame_inspector.GetContext())->closure_context());
     for (; i < scope_info->LocalCount(); ++i) {
-      if (scope_info->LocalIsSynthetic(i)) continue;
       Handle<String> name(scope_info->LocalName(i));
+      if (ScopeInfo::VariableIsSynthetic(*name)) continue;
       VariableMode mode;
       InitializationFlag init_flag;
       MaybeAssignedFlag maybe_assigned_flag;
@@ -958,78 +938,6 @@
 }
 
 
-RUNTIME_FUNCTION(Runtime_GetThreadCount) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
-  RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
-
-  // Count all archived V8 threads.
-  int n = 0;
-  for (ThreadState* thread = isolate->thread_manager()->FirstThreadStateInUse();
-       thread != NULL; thread = thread->Next()) {
-    n++;
-  }
-
-  // Total number of threads is current thread and archived threads.
-  return Smi::FromInt(n + 1);
-}
-
-
-static const int kThreadDetailsCurrentThreadIndex = 0;
-static const int kThreadDetailsThreadIdIndex = 1;
-static const int kThreadDetailsSize = 2;
-
-// Return an array with thread details
-// args[0]: number: break id
-// args[1]: number: thread index
-//
-// The array returned contains the following information:
-// 0: Is current thread?
-// 1: Thread id
-RUNTIME_FUNCTION(Runtime_GetThreadDetails) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_NUMBER_CHECKED(int, break_id, Int32, args[0]);
-  RUNTIME_ASSERT(isolate->debug()->CheckExecutionState(break_id));
-
-  CONVERT_NUMBER_CHECKED(int, index, Int32, args[1]);
-
-  // Allocate array for result.
-  Handle<FixedArray> details =
-      isolate->factory()->NewFixedArray(kThreadDetailsSize);
-
-  // Thread index 0 is current thread.
-  if (index == 0) {
-    // Fill the details.
-    details->set(kThreadDetailsCurrentThreadIndex,
-                 isolate->heap()->true_value());
-    details->set(kThreadDetailsThreadIdIndex,
-                 Smi::FromInt(ThreadId::Current().ToInteger()));
-  } else {
-    // Find the thread with the requested index.
-    int n = 1;
-    ThreadState* thread = isolate->thread_manager()->FirstThreadStateInUse();
-    while (index != n && thread != NULL) {
-      thread = thread->Next();
-      n++;
-    }
-    if (thread == NULL) {
-      return isolate->heap()->undefined_value();
-    }
-
-    // Fill the details.
-    details->set(kThreadDetailsCurrentThreadIndex,
-                 isolate->heap()->false_value());
-    details->set(kThreadDetailsThreadIdIndex,
-                 Smi::FromInt(thread->id().ToInteger()));
-  }
-
-  // Convert to JS array and return.
-  return *isolate->factory()->NewJSArrayWithElements(details);
-}
-
-
 // Sets the disable break state
 // args[0]: disable break state
 RUNTIME_FUNCTION(Runtime_SetBreakPointsActive) {
@@ -1292,10 +1200,7 @@
   }
 
   // Return result as a JS array.
-  Handle<JSObject> result =
-      isolate->factory()->NewJSObject(isolate->array_function());
-  JSArray::SetContent(Handle<JSArray>::cast(result), instances);
-  return *result;
+  return *isolate->factory()->NewJSArrayWithElements(instances);
 }
 
 static bool HasInPrototypeChainIgnoringProxies(Isolate* isolate,
@@ -1454,11 +1359,14 @@
 
   CONVERT_ARG_HANDLE_CHECKED(JSReceiver, function, 0);
 
+  Handle<Object> name;
   if (function->IsJSBoundFunction()) {
-    return Handle<JSBoundFunction>::cast(function)->name();
+    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+        isolate, name, JSBoundFunction::GetName(
+                           isolate, Handle<JSBoundFunction>::cast(function)));
+  } else {
+    name = JSFunction::GetDebugName(Handle<JSFunction>::cast(function));
   }
-  Handle<Object> name =
-      JSFunction::GetDebugName(Handle<JSFunction>::cast(function));
   return *name;
 }
 
@@ -1598,18 +1506,9 @@
 // built-in function such as Array.forEach to enable stepping into the callback,
 // if we are indeed stepping and the callback is subject to debugging.
 RUNTIME_FUNCTION(Runtime_DebugPrepareStepInIfStepping) {
-  DCHECK(args.length() == 1);
   HandleScope scope(isolate);
-  CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
-  RUNTIME_ASSERT(object->IsJSFunction() || object->IsJSGeneratorObject());
-  Handle<JSFunction> fun;
-  if (object->IsJSFunction()) {
-    fun = Handle<JSFunction>::cast(object);
-  } else {
-    fun = Handle<JSFunction>(
-        Handle<JSGeneratorObject>::cast(object)->function(), isolate);
-  }
-
+  DCHECK_EQ(1, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(JSFunction, fun, 0);
   isolate->debug()->PrepareStepIn(fun);
   return isolate->heap()->undefined_value();
 }
diff --git a/src/runtime/runtime-function.cc b/src/runtime/runtime-function.cc
index 011f9ff..56cf3b6 100644
--- a/src/runtime/runtime-function.cc
+++ b/src/runtime/runtime-function.cc
@@ -11,6 +11,7 @@
 #include "src/isolate-inl.h"
 #include "src/messages.h"
 #include "src/profiler/cpu-profiler.h"
+#include "src/wasm/wasm-module.h"
 
 namespace v8 {
 namespace internal {
@@ -20,16 +21,15 @@
   DCHECK(args.length() == 1);
 
   CONVERT_ARG_HANDLE_CHECKED(JSReceiver, function, 0);
-  if (function->IsJSBoundFunction()) {
   Handle<Object> result;
+  if (function->IsJSBoundFunction()) {
     ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
         isolate, result, JSBoundFunction::GetName(
                              isolate, Handle<JSBoundFunction>::cast(function)));
-    return *result;
   } else {
-    RUNTIME_ASSERT(function->IsJSFunction());
-    return Handle<JSFunction>::cast(function)->shared()->name();
+    result = JSFunction::GetName(isolate, Handle<JSFunction>::cast(function));
   }
+  return *result;
 }
 
 
@@ -289,10 +289,7 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, receiver, 0);
-  if (receiver->IsNull() || receiver->IsUndefined()) {
-    return isolate->global_proxy();
-  }
-  return *Object::ToObject(isolate, receiver).ToHandleChecked();
+  return *Object::ConvertReceiver(isolate, receiver).ToHandleChecked();
 }
 
 
@@ -314,5 +311,15 @@
              : *JSFunction::ToString(Handle<JSFunction>::cast(function));
 }
 
+RUNTIME_FUNCTION(Runtime_WasmGetFunctionName) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(2, args.length());
+
+  CONVERT_ARG_HANDLE_CHECKED(JSObject, wasm, 0);
+  CONVERT_SMI_ARG_CHECKED(func_index, 1);
+
+  return *wasm::GetWasmFunctionName(wasm, func_index);
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/src/runtime/runtime-generator.cc b/src/runtime/runtime-generator.cc
index 181b5f9..7ff7fc8 100644
--- a/src/runtime/runtime-generator.cc
+++ b/src/runtime/runtime-generator.cc
@@ -14,22 +14,27 @@
 
 RUNTIME_FUNCTION(Runtime_CreateJSGeneratorObject) {
   HandleScope scope(isolate);
-  DCHECK(args.length() == 0);
+  DCHECK(args.length() == 2);
+  CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
+  CONVERT_ARG_HANDLE_CHECKED(Object, receiver, 1);
+  RUNTIME_ASSERT(function->shared()->is_resumable());
 
-  JavaScriptFrameIterator it(isolate);
-  JavaScriptFrame* frame = it.frame();
-  Handle<JSFunction> function(frame->function());
-  RUNTIME_ASSERT(function->shared()->is_generator());
+  Handle<FixedArray> operand_stack;
+  if (FLAG_ignition && FLAG_ignition_generators) {
+    int size = function->shared()->bytecode_array()->register_count();
+    operand_stack = isolate->factory()->NewFixedArray(size);
+  } else {
+    DCHECK(!function->shared()->HasBytecodeArray());
+    operand_stack = handle(isolate->heap()->empty_fixed_array());
+  }
 
-  Handle<JSGeneratorObject> generator;
-  DCHECK(!frame->IsConstructor());
-  generator = isolate->factory()->NewJSGeneratorObject(function);
+  Handle<JSGeneratorObject> generator =
+      isolate->factory()->NewJSGeneratorObject(function);
   generator->set_function(*function);
-  generator->set_context(Context::cast(frame->context()));
-  generator->set_receiver(frame->receiver());
-  generator->set_continuation(0);
-  generator->set_operand_stack(isolate->heap()->empty_fixed_array());
-
+  generator->set_context(isolate->context());
+  generator->set_receiver(*receiver);
+  generator->set_operand_stack(*operand_stack);
+  generator->set_continuation(JSGeneratorObject::kGeneratorExecuting);
   return *generator;
 }
 
@@ -41,7 +46,7 @@
 
   JavaScriptFrameIterator stack_iterator(isolate);
   JavaScriptFrame* frame = stack_iterator.frame();
-  RUNTIME_ASSERT(frame->function()->shared()->is_generator());
+  RUNTIME_ASSERT(frame->function()->shared()->is_resumable());
   DCHECK_EQ(frame->function(), generator_object->function());
   DCHECK(frame->function()->shared()->is_compiled());
   DCHECK(!frame->function()->IsOptimized());
@@ -73,62 +78,6 @@
 }
 
 
-// Note that this function is the slow path for resuming generators.  It is only
-// called if the suspended activation had operands on the stack, stack handlers
-// needing rewinding, or if the resume should throw an exception.  The fast path
-// is handled directly in FullCodeGenerator::EmitGeneratorResume(), which is
-// inlined into GeneratorNext, GeneratorReturn, and GeneratorThrow.
-// EmitGeneratorResume is called in any case, as it needs to reconstruct the
-// stack frame and make space for arguments and operands.
-RUNTIME_FUNCTION(Runtime_ResumeJSGeneratorObject) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 3);
-  CONVERT_ARG_CHECKED(JSGeneratorObject, generator_object, 0);
-  CONVERT_ARG_CHECKED(Object, value, 1);
-  CONVERT_SMI_ARG_CHECKED(resume_mode_int, 2);
-  JavaScriptFrameIterator stack_iterator(isolate);
-  JavaScriptFrame* frame = stack_iterator.frame();
-
-  DCHECK_EQ(frame->function(), generator_object->function());
-  DCHECK(frame->function()->shared()->is_compiled());
-  DCHECK(!frame->function()->IsOptimized());
-
-  STATIC_ASSERT(JSGeneratorObject::kGeneratorExecuting < 0);
-  STATIC_ASSERT(JSGeneratorObject::kGeneratorClosed == 0);
-
-  Code* code = generator_object->function()->shared()->code();
-  int offset = generator_object->continuation();
-  DCHECK_GT(offset, 0);
-  frame->set_pc(code->instruction_start() + offset);
-  if (FLAG_enable_embedded_constant_pool) {
-    frame->set_constant_pool(code->constant_pool());
-  }
-  generator_object->set_continuation(JSGeneratorObject::kGeneratorExecuting);
-
-  FixedArray* operand_stack = generator_object->operand_stack();
-  int operands_count = operand_stack->length();
-  if (operands_count != 0) {
-    frame->RestoreOperandStack(operand_stack);
-    generator_object->set_operand_stack(isolate->heap()->empty_fixed_array());
-  }
-
-  JSGeneratorObject::ResumeMode resume_mode =
-      static_cast<JSGeneratorObject::ResumeMode>(resume_mode_int);
-  switch (resume_mode) {
-    // Note: this looks like NEXT and RETURN are the same but RETURN receives
-    // special treatment in the generator code (to which we return here).
-    case JSGeneratorObject::NEXT:
-    case JSGeneratorObject::RETURN:
-      return value;
-    case JSGeneratorObject::THROW:
-      return isolate->Throw(value);
-  }
-
-  UNREACHABLE();
-  return isolate->ThrowIllegalOperation();
-}
-
-
 RUNTIME_FUNCTION(Runtime_GeneratorClose) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -170,7 +119,26 @@
 }
 
 
-// Returns generator continuation as a PC offset, or the magic -1 or 0 values.
+// Returns resume mode of generator activation.
+RUNTIME_FUNCTION(Runtime_GeneratorGetResumeMode) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 1);
+  CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
+
+  return Smi::FromInt(generator->resume_mode());
+}
+
+
+RUNTIME_FUNCTION(Runtime_GeneratorSetContext) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 1);
+  CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
+
+  generator->set_context(isolate->context());
+  return isolate->heap()->undefined_value();
+}
+
+
 RUNTIME_FUNCTION(Runtime_GeneratorGetContinuation) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -180,6 +148,45 @@
 }
 
 
+RUNTIME_FUNCTION(Runtime_GeneratorSetContinuation) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 2);
+  CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
+  CONVERT_SMI_ARG_CHECKED(continuation, 1);
+
+  generator->set_continuation(continuation);
+  return isolate->heap()->undefined_value();
+}
+
+
+RUNTIME_FUNCTION(Runtime_GeneratorLoadRegister) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 2);
+  CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
+  CONVERT_SMI_ARG_CHECKED(index, 1);
+
+  DCHECK(FLAG_ignition && FLAG_ignition_generators);
+  DCHECK(generator->function()->shared()->HasBytecodeArray());
+
+  return generator->operand_stack()->get(index);
+}
+
+
+RUNTIME_FUNCTION(Runtime_GeneratorStoreRegister) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 3);
+  CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
+  CONVERT_SMI_ARG_CHECKED(index, 1);
+  CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
+
+  DCHECK(FLAG_ignition && FLAG_ignition_generators);
+  DCHECK(generator->function()->shared()->HasBytecodeArray());
+
+  generator->operand_stack()->set(index, *value);
+  return isolate->heap()->undefined_value();
+}
+
+
 RUNTIME_FUNCTION(Runtime_GeneratorGetSourcePosition) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -195,23 +202,5 @@
   return isolate->heap()->undefined_value();
 }
 
-// Optimization for builtins calling any of the following three functions is
-// disabled in js/generator.js and compiler.cc, hence they are unreachable.
-
-RUNTIME_FUNCTION(Runtime_GeneratorNext) {
-  UNREACHABLE();
-  return nullptr;
-}
-
-RUNTIME_FUNCTION(Runtime_GeneratorReturn) {
-  UNREACHABLE();
-  return nullptr;
-}
-
-RUNTIME_FUNCTION(Runtime_GeneratorThrow) {
-  UNREACHABLE();
-  return nullptr;
-}
-
 }  // namespace internal
 }  // namespace v8
diff --git a/src/runtime/runtime-i18n.cc b/src/runtime/runtime-i18n.cc
index 27f970b..14974e8 100644
--- a/src/runtime/runtime-i18n.cc
+++ b/src/runtime/runtime-i18n.cc
@@ -24,21 +24,42 @@
 #include "unicode/dtfmtsym.h"
 #include "unicode/dtptngen.h"
 #include "unicode/locid.h"
+#include "unicode/normalizer2.h"
 #include "unicode/numfmt.h"
 #include "unicode/numsys.h"
 #include "unicode/rbbi.h"
 #include "unicode/smpdtfmt.h"
 #include "unicode/timezone.h"
+#include "unicode/translit.h"
 #include "unicode/uchar.h"
 #include "unicode/ucol.h"
 #include "unicode/ucurr.h"
 #include "unicode/uloc.h"
+#include "unicode/unistr.h"
 #include "unicode/unum.h"
 #include "unicode/uversion.h"
 
 
 namespace v8 {
 namespace internal {
+namespace {
+
+const UChar* GetUCharBufferFromFlat(const String::FlatContent& flat,
+                                    base::SmartArrayPointer<uc16>* dest,
+                                    int32_t length) {
+  DCHECK(flat.IsFlat());
+  if (flat.IsOneByte()) {
+    if (dest->is_empty()) {
+      dest->Reset(NewArray<uc16>(length));
+      CopyChars(dest->get(), flat.ToOneByteVector().start(), length);
+    }
+    return reinterpret_cast<const UChar*>(dest->get());
+  } else {
+    return reinterpret_cast<const UChar*>(flat.ToUC16Vector().start());
+  }
+}
+
+}  // namespace
 
 RUNTIME_FUNCTION(Runtime_CanonicalizeLanguageTag) {
   HandleScope scope(isolate);
@@ -336,9 +357,9 @@
 
   // Make object handle weak so we can delete the data format once GC kicks in.
   Handle<Object> wrapper = isolate->global_handles()->Create(*local_object);
-  GlobalHandles::MakeWeak(wrapper.location(),
-                          reinterpret_cast<void*>(wrapper.location()),
-                          DateFormat::DeleteDateFormat);
+  GlobalHandles::MakeWeak(wrapper.location(), wrapper.location(),
+                          DateFormat::DeleteDateFormat,
+                          WeakCallbackType::kInternalFields);
   return *local_object;
 }
 
@@ -430,9 +451,9 @@
   JSObject::AddProperty(local_object, key, value, NONE);
 
   Handle<Object> wrapper = isolate->global_handles()->Create(*local_object);
-  GlobalHandles::MakeWeak(wrapper.location(),
-                          reinterpret_cast<void*>(wrapper.location()),
-                          NumberFormat::DeleteNumberFormat);
+  GlobalHandles::MakeWeak(wrapper.location(), wrapper.location(),
+                          NumberFormat::DeleteNumberFormat,
+                          WeakCallbackType::kInternalFields);
   return *local_object;
 }
 
@@ -536,9 +557,9 @@
   JSObject::AddProperty(local_object, key, value, NONE);
 
   Handle<Object> wrapper = isolate->global_handles()->Create(*local_object);
-  GlobalHandles::MakeWeak(wrapper.location(),
-                          reinterpret_cast<void*>(wrapper.location()),
-                          Collator::DeleteCollator);
+  GlobalHandles::MakeWeak(wrapper.location(), wrapper.location(),
+                          Collator::DeleteCollator,
+                          WeakCallbackType::kInternalFields);
   return *local_object;
 }
 
@@ -555,14 +576,20 @@
   icu::Collator* collator = Collator::UnpackCollator(isolate, collator_holder);
   if (!collator) return isolate->ThrowIllegalOperation();
 
-  v8::String::Value string_value1(v8::Utils::ToLocal(string1));
-  v8::String::Value string_value2(v8::Utils::ToLocal(string2));
-  const UChar* u_string1 = reinterpret_cast<const UChar*>(*string_value1);
-  const UChar* u_string2 = reinterpret_cast<const UChar*>(*string_value2);
+  string1 = String::Flatten(string1);
+  string2 = String::Flatten(string2);
+  DisallowHeapAllocation no_gc;
+  int32_t length1 = string1->length();
+  int32_t length2 = string2->length();
+  String::FlatContent flat1 = string1->GetFlatContent();
+  String::FlatContent flat2 = string2->GetFlatContent();
+  base::SmartArrayPointer<uc16> sap1;
+  base::SmartArrayPointer<uc16> sap2;
+  const UChar* string_val1 = GetUCharBufferFromFlat(flat1, &sap1, length1);
+  const UChar* string_val2 = GetUCharBufferFromFlat(flat2, &sap2, length2);
   UErrorCode status = U_ZERO_ERROR;
   UCollationResult result =
-      collator->compare(u_string1, string_value1.length(), u_string2,
-                        string_value2.length(), status);
+      collator->compare(string_val1, length1, string_val2, length2, status);
   if (U_FAILURE(status)) return isolate->ThrowIllegalOperation();
 
   return *isolate->factory()->NewNumberFromInt(result);
@@ -571,25 +598,51 @@
 
 RUNTIME_FUNCTION(Runtime_StringNormalize) {
   HandleScope scope(isolate);
-  static const UNormalizationMode normalizationForms[] = {
-      UNORM_NFC, UNORM_NFD, UNORM_NFKC, UNORM_NFKD};
+  static const struct {
+    const char* name;
+    UNormalization2Mode mode;
+  } normalizationForms[] = {
+      {"nfc", UNORM2_COMPOSE},
+      {"nfc", UNORM2_DECOMPOSE},
+      {"nfkc", UNORM2_COMPOSE},
+      {"nfkc", UNORM2_DECOMPOSE},
+  };
 
   DCHECK(args.length() == 2);
 
-  CONVERT_ARG_HANDLE_CHECKED(String, stringValue, 0);
+  CONVERT_ARG_HANDLE_CHECKED(String, s, 0);
   CONVERT_NUMBER_CHECKED(int, form_id, Int32, args[1]);
   RUNTIME_ASSERT(form_id >= 0 &&
                  static_cast<size_t>(form_id) < arraysize(normalizationForms));
 
-  v8::String::Value string_value(v8::Utils::ToLocal(stringValue));
-  const UChar* u_value = reinterpret_cast<const UChar*>(*string_value);
-
-  // TODO(mnita): check Normalizer2 (not available in ICU 46)
-  UErrorCode status = U_ZERO_ERROR;
-  icu::UnicodeString input(false, u_value, string_value.length());
+  int length = s->length();
+  s = String::Flatten(s);
   icu::UnicodeString result;
-  icu::Normalizer::normalize(input, normalizationForms[form_id], 0, result,
-                             status);
+  base::SmartArrayPointer<uc16> sap;
+  UErrorCode status = U_ZERO_ERROR;
+  {
+    DisallowHeapAllocation no_gc;
+    String::FlatContent flat = s->GetFlatContent();
+    const UChar* src = GetUCharBufferFromFlat(flat, &sap, length);
+    icu::UnicodeString input(false, src, length);
+    // Getting a singleton. Should not free it.
+    const icu::Normalizer2* normalizer =
+        icu::Normalizer2::getInstance(nullptr, normalizationForms[form_id].name,
+                                      normalizationForms[form_id].mode, status);
+    DCHECK(U_SUCCESS(status));
+    RUNTIME_ASSERT(normalizer != nullptr);
+    int32_t normalized_prefix_length =
+        normalizer->spanQuickCheckYes(input, status);
+    // Quick return if the input is already normalized.
+    if (length == normalized_prefix_length) return *s;
+    icu::UnicodeString unnormalized =
+        input.tempSubString(normalized_prefix_length);
+    // Read-only alias of the normalized prefix.
+    result.setTo(false, input.getBuffer(), normalized_prefix_length);
+    // copy-on-write; normalize the suffix and append to |result|.
+    normalizer->normalizeSecondAndAppend(result, unnormalized, status);
+  }
+
   if (U_FAILURE(status)) {
     return isolate->heap()->undefined_value();
   }
@@ -640,9 +693,9 @@
   // Make object handle weak so we can delete the break iterator once GC kicks
   // in.
   Handle<Object> wrapper = isolate->global_handles()->Create(*local_object);
-  GlobalHandles::MakeWeak(wrapper.location(),
-                          reinterpret_cast<void*>(wrapper.location()),
-                          BreakIterator::DeleteBreakIterator);
+  GlobalHandles::MakeWeak(wrapper.location(), wrapper.location(),
+                          BreakIterator::DeleteBreakIterator,
+                          WeakCallbackType::kInternalFields);
   return *local_object;
 }
 
@@ -663,9 +716,13 @@
       break_iterator_holder->GetInternalField(1));
   delete u_text;
 
-  v8::String::Value text_value(v8::Utils::ToLocal(text));
-  u_text = new icu::UnicodeString(reinterpret_cast<const UChar*>(*text_value),
-                                  text_value.length());
+  int length = text->length();
+  text = String::Flatten(text);
+  DisallowHeapAllocation no_gc;
+  String::FlatContent flat = text->GetFlatContent();
+  base::SmartArrayPointer<uc16> sap;
+  const UChar* text_value = GetUCharBufferFromFlat(flat, &sap, length);
+  u_text = new icu::UnicodeString(text_value, length);
   break_iterator_holder->SetInternalField(1, reinterpret_cast<Smi*>(u_text));
 
   break_iterator->setText(*u_text);
@@ -749,6 +806,345 @@
     return *isolate->factory()->NewStringFromStaticChars("unknown");
   }
 }
+
+namespace {
+void ConvertCaseWithTransliterator(icu::UnicodeString* input,
+                                   const char* transliterator_id) {
+  UErrorCode status = U_ZERO_ERROR;
+  base::SmartPointer<icu::Transliterator> translit(
+      icu::Transliterator::createInstance(
+          icu::UnicodeString(transliterator_id, -1, US_INV), UTRANS_FORWARD,
+          status));
+  if (U_FAILURE(status)) return;
+  translit->transliterate(*input);
+}
+
+MUST_USE_RESULT Object* LocaleConvertCase(Handle<String> s, Isolate* isolate,
+                                          bool is_to_upper, const char* lang) {
+  int32_t src_length = s->length();
+
+  // Greek uppercasing has to be done via transliteration.
+  // TODO(jshin): Drop this special-casing once ICU's regular case conversion
+  // API supports Greek uppercasing. See
+  // http://bugs.icu-project.org/trac/ticket/10582 .
+  // In the meantime, if there's no Greek character in |s|, call this
+  // function again with the root locale (lang="").
+  // ICU's C API for transliteration is nasty and we just use C++ API.
+  if (V8_UNLIKELY(is_to_upper && lang[0] == 'e' && lang[1] == 'l')) {
+    icu::UnicodeString converted;
+    base::SmartArrayPointer<uc16> sap;
+    {
+      DisallowHeapAllocation no_gc;
+      String::FlatContent flat = s->GetFlatContent();
+      const UChar* src = GetUCharBufferFromFlat(flat, &sap, src_length);
+      // Starts with the source string (read-only alias with copy-on-write
+      // semantics) and will be modified to contain the converted result.
+      // Using read-only alias at first saves one copy operation if
+      // transliteration does not change the input, which is rather rare.
+      // Moreover, transliteration takes rather long so that saving one copy
+      // helps only a little bit.
+      converted.setTo(false, src, src_length);
+      ConvertCaseWithTransliterator(&converted, "el-Upper");
+      // If no change is made, just return |s|.
+      if (converted.getBuffer() == src) return *s;
+    }
+    Handle<String> result;
+    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+        isolate, result,
+        isolate->factory()->NewStringFromTwoByte(Vector<const uint16_t>(
+            reinterpret_cast<const uint16_t*>(converted.getBuffer()),
+            converted.length())));
+    return *result;
+  }
+
+  auto case_converter = is_to_upper ? u_strToUpper : u_strToLower;
+
+  int32_t dest_length = src_length;
+  UErrorCode status;
+  Handle<SeqTwoByteString> result;
+  base::SmartArrayPointer<uc16> sap;
+
+  // This is not a real loop. It'll be executed only once (no overflow) or
+  // twice (overflow).
+  for (int i = 0; i < 2; ++i) {
+    result =
+        isolate->factory()->NewRawTwoByteString(dest_length).ToHandleChecked();
+    DisallowHeapAllocation no_gc;
+    String::FlatContent flat = s->GetFlatContent();
+    const UChar* src = GetUCharBufferFromFlat(flat, &sap, src_length);
+    status = U_ZERO_ERROR;
+    dest_length = case_converter(reinterpret_cast<UChar*>(result->GetChars()),
+                                 dest_length, src, src_length, lang, &status);
+    if (status != U_BUFFER_OVERFLOW_ERROR) break;
+  }
+
+  // In most cases, the output will fill the destination buffer completely
+  // leading to an unterminated string (U_STRING_NOT_TERMINATED_WARNING).
+  // Only in rare cases, it'll be shorter than the destination buffer and
+  // |result| has to be truncated.
+  DCHECK(U_SUCCESS(status));
+  if (V8_LIKELY(status == U_STRING_NOT_TERMINATED_WARNING)) {
+    DCHECK(dest_length == result->length());
+    return *result;
+  }
+  if (U_SUCCESS(status)) {
+    DCHECK(dest_length < result->length());
+    return *Handle<SeqTwoByteString>::cast(
+        SeqString::Truncate(result, dest_length));
+  }
+  return *s;
+}
+
+inline bool IsASCIIUpper(uint16_t ch) { return ch >= 'A' && ch <= 'Z'; }
+
+const uint8_t kToLower[256] = {
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
+    0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+    0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23,
+    0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+    0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
+    0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+    0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73,
+    0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B,
+    0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+    0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83,
+    0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
+    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B,
+    0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
+    0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3,
+    0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
+    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB,
+    0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xD7,
+    0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3,
+    0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB,
+    0xFC, 0xFD, 0xFE, 0xFF,
+};
+
+inline uint16_t ToLatin1Lower(uint16_t ch) {
+  return static_cast<uint16_t>(kToLower[ch]);
+}
+
+inline uint16_t ToASCIIUpper(uint16_t ch) {
+  return ch & ~((ch >= 'a' && ch <= 'z') << 5);
+}
+
+// Does not work for U+00DF (sharp-s), U+00B5 (micron), U+00FF.
+inline uint16_t ToLatin1Upper(uint16_t ch) {
+  DCHECK(ch != 0xDF && ch != 0xB5 && ch != 0xFF);
+  return ch &
+         ~(((ch >= 'a' && ch <= 'z') || (((ch & 0xE0) == 0xE0) && ch != 0xE7))
+           << 5);
+}
+
+template <typename Char>
+bool ToUpperFastASCII(const Vector<const Char>& src,
+                      Handle<SeqOneByteString> result) {
+  // Do a faster loop for the case where all the characters are ASCII.
+  uint16_t ored = 0;
+  int32_t index = 0;
+  for (auto it = src.begin(); it != src.end(); ++it) {
+    uint16_t ch = static_cast<uint16_t>(*it);
+    ored |= ch;
+    result->SeqOneByteStringSet(index++, ToASCIIUpper(ch));
+  }
+  return !(ored & ~0x7F);
+}
+
+const uint16_t sharp_s = 0xDF;
+
+template <typename Char>
+bool ToUpperOneByte(const Vector<const Char>& src,
+                    Handle<SeqOneByteString> result, int* sharp_s_count) {
+  // Still pretty-fast path for the input with non-ASCII Latin-1 characters.
+
+  // There are two special cases.
+  //  1. U+00B5 and U+00FF are mapped to a character beyond U+00FF.
+  //  2. Lower case sharp-S converts to "SS" (two characters)
+  *sharp_s_count = 0;
+  int32_t index = 0;
+  for (auto it = src.begin(); it != src.end(); ++it) {
+    uint16_t ch = static_cast<uint16_t>(*it);
+    if (V8_UNLIKELY(ch == sharp_s)) {
+      ++(*sharp_s_count);
+      continue;
+    }
+    if (V8_UNLIKELY(ch == 0xB5 || ch == 0xFF)) {
+      // Since this upper-cased character does not fit in an 8-bit string, we
+      // need to take the 16-bit path.
+      return false;
+    }
+    result->SeqOneByteStringSet(index++, ToLatin1Upper(ch));
+  }
+
+  return true;
+}
+
+template <typename Char>
+void ToUpperWithSharpS(const Vector<const Char>& src,
+                       Handle<SeqOneByteString> result) {
+  int32_t dest_index = 0;
+  for (auto it = src.begin(); it != src.end(); ++it) {
+    uint16_t ch = static_cast<uint16_t>(*it);
+    if (ch == sharp_s) {
+      result->SeqOneByteStringSet(dest_index++, 'S');
+      result->SeqOneByteStringSet(dest_index++, 'S');
+    } else {
+      result->SeqOneByteStringSet(dest_index++, ToLatin1Upper(ch));
+    }
+  }
+}
+
+}  // namespace
+
+RUNTIME_FUNCTION(Runtime_StringToLowerCaseI18N) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(args.length(), 1);
+  CONVERT_ARG_HANDLE_CHECKED(String, s, 0);
+
+  int length = s->length();
+  s = String::Flatten(s);
+  // First scan the string for uppercase and non-ASCII characters:
+  if (s->HasOnlyOneByteChars()) {
+    unsigned first_index_to_lower = length;
+    for (int index = 0; index < length; ++index) {
+      // Blink specializes this path for one-byte strings, so it
+      // does not need to do a generic get, but can do the equivalent
+      // of SeqOneByteStringGet.
+      uint16_t ch = s->Get(index);
+      if (V8_UNLIKELY(IsASCIIUpper(ch) || ch & ~0x7F)) {
+        first_index_to_lower = index;
+        break;
+      }
+    }
+
+    // Nothing to do if the string is all ASCII with no uppercase.
+    if (first_index_to_lower == length) return *s;
+
+    // We depend here on the invariant that the length of a Latin1
+    // string is invariant under ToLowerCase, and the result always
+    // fits in the Latin1 range in the *root locale*. It does not hold
+    // for ToUpperCase even in the root locale.
+    Handle<SeqOneByteString> result;
+    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+        isolate, result, isolate->factory()->NewRawOneByteString(length));
+
+    DisallowHeapAllocation no_gc;
+    String::FlatContent flat = s->GetFlatContent();
+    if (flat.IsOneByte()) {
+      const uint8_t* src = flat.ToOneByteVector().start();
+      CopyChars(result->GetChars(), src, first_index_to_lower);
+      for (int index = first_index_to_lower; index < length; ++index) {
+        uint16_t ch = static_cast<uint16_t>(src[index]);
+        result->SeqOneByteStringSet(index, ToLatin1Lower(ch));
+      }
+    } else {
+      const uint16_t* src = flat.ToUC16Vector().start();
+      CopyChars(result->GetChars(), src, first_index_to_lower);
+      for (int index = first_index_to_lower; index < length; ++index) {
+        uint16_t ch = src[index];
+        result->SeqOneByteStringSet(index, ToLatin1Lower(ch));
+      }
+    }
+
+    return *result;
+  }
+
+  // Blink had an additional case here for ASCII 2-byte strings, but
+  // that is subsumed by the above code (assuming there isn't a false
+  // negative for HasOnlyOneByteChars).
+
+  // Do a slower implementation for cases that include non-ASCII characters.
+  return LocaleConvertCase(s, isolate, false, "");
+}
+
+RUNTIME_FUNCTION(Runtime_StringToUpperCaseI18N) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(args.length(), 1);
+  CONVERT_ARG_HANDLE_CHECKED(String, s, 0);
+
+  // This function could be optimized for no-op cases the way lowercase
+  // counterpart is, but in empirical testing, few actual calls to upper()
+  // are no-ops. So, it wouldn't be worth the extra time for pre-scanning.
+
+  int32_t length = s->length();
+  s = String::Flatten(s);
+
+  if (s->HasOnlyOneByteChars()) {
+    Handle<SeqOneByteString> result;
+    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+        isolate, result, isolate->factory()->NewRawOneByteString(length));
+
+    int sharp_s_count;
+    bool is_result_single_byte;
+    {
+      DisallowHeapAllocation no_gc;
+      String::FlatContent flat = s->GetFlatContent();
+      // If it was ok to slow down ASCII-only input slightly, ToUpperFastASCII
+      // could be removed  because ToUpperOneByte is pretty fast now (it
+      // does not call ICU API any more.).
+      if (flat.IsOneByte()) {
+        Vector<const uint8_t> src = flat.ToOneByteVector();
+        if (ToUpperFastASCII(src, result)) return *result;
+        is_result_single_byte = ToUpperOneByte(src, result, &sharp_s_count);
+      } else {
+        DCHECK(flat.IsTwoByte());
+        Vector<const uint16_t> src = flat.ToUC16Vector();
+        if (ToUpperFastASCII(src, result)) return *result;
+        is_result_single_byte = ToUpperOneByte(src, result, &sharp_s_count);
+      }
+    }
+
+    // Go to the full Unicode path if there are characters whose uppercase
+    // is beyond the Latin-1 range (cannot be represented in OneByteString).
+    if (V8_UNLIKELY(!is_result_single_byte)) {
+      return LocaleConvertCase(s, isolate, true, "");
+    }
+
+    if (sharp_s_count == 0) return *result;
+
+    // We have sharp_s_count sharp-s characters, but the result is still
+    // in the Latin-1 range.
+    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+        isolate, result,
+        isolate->factory()->NewRawOneByteString(length + sharp_s_count));
+    DisallowHeapAllocation no_gc;
+    String::FlatContent flat = s->GetFlatContent();
+    if (flat.IsOneByte()) {
+      ToUpperWithSharpS(flat.ToOneByteVector(), result);
+    } else {
+      ToUpperWithSharpS(flat.ToUC16Vector(), result);
+    }
+
+    return *result;
+  }
+
+  return LocaleConvertCase(s, isolate, true, "");
+}
+
+RUNTIME_FUNCTION(Runtime_StringLocaleConvertCase) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(args.length(), 3);
+  CONVERT_ARG_HANDLE_CHECKED(String, s, 0);
+  CONVERT_BOOLEAN_ARG_CHECKED(is_upper, 1);
+  CONVERT_ARG_HANDLE_CHECKED(SeqOneByteString, lang, 2);
+
+  // All the languages requiring special handling ("az", "el", "lt", "tr")
+  // have a 2-letter language code.
+  DCHECK(lang->length() == 2);
+  uint8_t lang_str[3];
+  memcpy(lang_str, lang->GetChars(), 2);
+  lang_str[2] = 0;
+  s = String::Flatten(s);
+  // TODO(jshin): Consider adding a fast path for ASCII or Latin-1. The fastpath
+  // in the root locale needs to be adjusted for az, lt and tr because even case
+  // mapping of ASCII range characters are different in those locales.
+  // Greek (el) does not require any adjustment, though.
+  return LocaleConvertCase(s, isolate, is_upper,
+                           reinterpret_cast<const char*>(lang_str));
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/runtime/runtime-internal.cc b/src/runtime/runtime-internal.cc
index d871fc7..f805fdb 100644
--- a/src/runtime/runtime-internal.cc
+++ b/src/runtime/runtime-internal.cc
@@ -96,6 +96,59 @@
   return isolate->StackOverflow();
 }
 
+RUNTIME_FUNCTION(Runtime_ThrowWasmError) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(2, args.length());
+  CONVERT_SMI_ARG_CHECKED(message_id, 0);
+  CONVERT_SMI_ARG_CHECKED(byte_offset, 1);
+  Handle<Object> error_obj = isolate->factory()->NewError(
+      static_cast<MessageTemplate::Template>(message_id));
+
+  // For wasm traps, the byte offset (a.k.a source position) can not be
+  // determined from relocation info, since the explicit checks for traps
+  // converge in one singe block which calls this runtime function.
+  // We hence pass the byte offset explicitely, and patch it into the top-most
+  // frame (a wasm frame) on the collected stack trace.
+  // TODO(wasm): This implementation is temporary, see bug #5007:
+  // https://bugs.chromium.org/p/v8/issues/detail?id=5007
+  Handle<JSObject> error = Handle<JSObject>::cast(error_obj);
+  Handle<Object> stack_trace_obj = JSReceiver::GetDataProperty(
+      error, isolate->factory()->stack_trace_symbol());
+  // Patch the stack trace (array of <receiver, function, code, position>).
+  if (stack_trace_obj->IsJSArray()) {
+    Handle<FixedArray> stack_elements(
+        FixedArray::cast(JSArray::cast(*stack_trace_obj)->elements()));
+    DCHECK_EQ(1, stack_elements->length() % 4);
+    DCHECK(Code::cast(stack_elements->get(3))->kind() == Code::WASM_FUNCTION);
+    DCHECK(stack_elements->get(4)->IsSmi() &&
+           Smi::cast(stack_elements->get(4))->value() >= 0);
+    stack_elements->set(4, Smi::FromInt(-1 - byte_offset));
+  }
+  Handle<Object> detailed_stack_trace_obj = JSReceiver::GetDataProperty(
+      error, isolate->factory()->detailed_stack_trace_symbol());
+  // Patch the detailed stack trace (array of JSObjects with various
+  // properties).
+  if (detailed_stack_trace_obj->IsJSArray()) {
+    Handle<FixedArray> stack_elements(
+        FixedArray::cast(JSArray::cast(*detailed_stack_trace_obj)->elements()));
+    DCHECK_GE(stack_elements->length(), 1);
+    Handle<JSObject> top_frame(JSObject::cast(stack_elements->get(0)));
+    Handle<String> wasm_offset_key =
+        isolate->factory()->InternalizeOneByteString(
+            STATIC_CHAR_VECTOR("column"));
+    LookupIterator it(top_frame, wasm_offset_key, top_frame,
+                      LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
+    if (it.IsFound()) {
+      DCHECK(JSReceiver::GetDataProperty(&it)->IsSmi());
+      Maybe<bool> data_set = JSReceiver::SetDataProperty(
+          &it, handle(Smi::FromInt(byte_offset), isolate));
+      DCHECK(data_set.IsJust() && data_set.FromJust() == true);
+      USE(data_set);
+    }
+  }
+
+  return isolate->Throw(*error_obj);
+}
 
 RUNTIME_FUNCTION(Runtime_UnwindAndFindExceptionHandler) {
   SealHandleScope shs(isolate);
@@ -160,6 +213,15 @@
       isolate, NewTypeError(MessageTemplate::kIllegalInvocation));
 }
 
+RUNTIME_FUNCTION(Runtime_ThrowIncompatibleMethodReceiver) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(2, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(Object, arg0, 0);
+  CONVERT_ARG_HANDLE_CHECKED(Object, arg1, 1);
+  THROW_NEW_ERROR_RETURN_FAILURE(
+      isolate,
+      NewTypeError(MessageTemplate::kIncompatibleMethodReceiver, arg0, arg1));
+}
 
 RUNTIME_FUNCTION(Runtime_ThrowIteratorResultNotAnObject) {
   HandleScope scope(isolate);
@@ -170,6 +232,12 @@
       NewTypeError(MessageTemplate::kIteratorResultNotAnObject, value));
 }
 
+RUNTIME_FUNCTION(Runtime_ThrowGeneratorRunning) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(0, args.length());
+  THROW_NEW_ERROR_RETURN_FAILURE(
+      isolate, NewTypeError(MessageTemplate::kGeneratorRunning));
+}
 
 RUNTIME_FUNCTION(Runtime_ThrowApplyNonFunction) {
   HandleScope scope(isolate);
@@ -309,15 +377,15 @@
   return *result;
 }
 
-#define CALLSITE_GET(NAME, RETURN)                          \
-  RUNTIME_FUNCTION(Runtime_CallSite##NAME##RT) {            \
-    HandleScope scope(isolate);                             \
-    DCHECK(args.length() == 1);                             \
-    CONVERT_ARG_HANDLE_CHECKED(JSObject, call_site_obj, 0); \
-    Handle<String> result;                                  \
-    CallSite call_site(isolate, call_site_obj);             \
-    RUNTIME_ASSERT(call_site.IsValid());                    \
-    return RETURN(call_site.NAME(), isolate);               \
+#define CALLSITE_GET(NAME, RETURN)                                  \
+  RUNTIME_FUNCTION(Runtime_CallSite##NAME##RT) {                    \
+    HandleScope scope(isolate);                                     \
+    DCHECK(args.length() == 1);                                     \
+    CONVERT_ARG_HANDLE_CHECKED(JSObject, call_site_obj, 0);         \
+    Handle<String> result;                                          \
+    CallSite call_site(isolate, call_site_obj);                     \
+    RUNTIME_ASSERT(call_site.IsJavaScript() || call_site.IsWasm()); \
+    return RETURN(call_site.NAME(), isolate);                       \
   }
 
 static inline Object* ReturnDereferencedHandle(Handle<Object> obj,
@@ -416,6 +484,13 @@
       isolate, NewTypeError(MessageTemplate::kCalledNonCallable, callsite));
 }
 
+RUNTIME_FUNCTION(Runtime_ThrowCalledOnNullOrUndefined) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
+  THROW_NEW_ERROR_RETURN_FAILURE(
+      isolate, NewTypeError(MessageTemplate::kCalledOnNullOrUndefined, name));
+}
 
 RUNTIME_FUNCTION(Runtime_ThrowConstructedNonConstructable) {
   HandleScope scope(isolate);
@@ -456,21 +531,75 @@
   return isolate->heap()->undefined_value();
 }
 
-RUNTIME_FUNCTION(Runtime_GetOrdinaryHasInstance) {
-  HandleScope scope(isolate);
-  DCHECK_EQ(0, args.length());
-
-  return isolate->native_context()->ordinary_has_instance();
-}
-
 RUNTIME_FUNCTION(Runtime_GetAndResetRuntimeCallStats) {
   HandleScope scope(isolate);
-  DCHECK_EQ(0, args.length());
-  std::stringstream stats_stream;
-  isolate->counters()->runtime_call_stats()->Print(stats_stream);
-  Handle<String> result =
-      isolate->factory()->NewStringFromAsciiChecked(stats_stream.str().c_str());
-  isolate->counters()->runtime_call_stats()->Reset();
+  if (args.length() == 0) {
+    // Without arguments, the result is returned as a string.
+    DCHECK_EQ(0, args.length());
+    std::stringstream stats_stream;
+    isolate->counters()->runtime_call_stats()->Print(stats_stream);
+    Handle<String> result = isolate->factory()->NewStringFromAsciiChecked(
+        stats_stream.str().c_str());
+    isolate->counters()->runtime_call_stats()->Reset();
+    return *result;
+  } else {
+    DCHECK_LE(args.length(), 2);
+    std::FILE* f;
+    if (args[0]->IsString()) {
+      // With a string argument, the results are appended to that file.
+      CONVERT_ARG_HANDLE_CHECKED(String, arg0, 0);
+      String::FlatContent flat = arg0->GetFlatContent();
+      const char* filename =
+          reinterpret_cast<const char*>(&(flat.ToOneByteVector()[0]));
+      f = std::fopen(filename, "a");
+      DCHECK_NOT_NULL(f);
+    } else {
+      // With an integer argument, the results are written to stdout/stderr.
+      CONVERT_SMI_ARG_CHECKED(fd, 0);
+      DCHECK(fd == 1 || fd == 2);
+      f = fd == 1 ? stdout : stderr;
+    }
+    // The second argument (if any) is a message header to be printed.
+    if (args.length() >= 2) {
+      CONVERT_ARG_HANDLE_CHECKED(String, arg1, 1);
+      arg1->PrintOn(f);
+      std::fputc('\n', f);
+      std::fflush(f);
+    }
+    OFStream stats_stream(f);
+    isolate->counters()->runtime_call_stats()->Print(stats_stream);
+    isolate->counters()->runtime_call_stats()->Reset();
+    if (args[0]->IsString())
+      std::fclose(f);
+    else
+      std::fflush(f);
+    return isolate->heap()->undefined_value();
+  }
+}
+
+RUNTIME_FUNCTION(Runtime_EnqueueMicrotask) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 1);
+  CONVERT_ARG_HANDLE_CHECKED(JSFunction, microtask, 0);
+  isolate->EnqueueMicrotask(microtask);
+  return isolate->heap()->undefined_value();
+}
+
+RUNTIME_FUNCTION(Runtime_RunMicrotasks) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 0);
+  isolate->RunMicrotasks();
+  return isolate->heap()->undefined_value();
+}
+
+RUNTIME_FUNCTION(Runtime_OrdinaryHasInstance) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(2, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(Object, callable, 0);
+  CONVERT_ARG_HANDLE_CHECKED(Object, object, 1);
+  Handle<Object> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result, Object::OrdinaryHasInstance(isolate, callable, object));
   return *result;
 }
 
diff --git a/src/runtime/runtime-interpreter.cc b/src/runtime/runtime-interpreter.cc
index 22ae911..f870d23 100644
--- a/src/runtime/runtime-interpreter.cc
+++ b/src/runtime/runtime-interpreter.cc
@@ -64,14 +64,11 @@
     os << " ]" << std::endl;
   }
 
-  // Find the location of the register file.
+  // Print the registers.
   JavaScriptFrameIterator frame_iterator(
       bytecode_iterator.bytecode_array()->GetIsolate());
-  JavaScriptFrame* frame = frame_iterator.frame();
-  Address register_file =
-      frame->fp() + InterpreterFrameConstants::kRegisterFilePointerFromFp;
-
-  // Print the registers.
+  InterpretedFrame* frame =
+      reinterpret_cast<InterpretedFrame*>(frame_iterator.frame());
   int operand_count = interpreter::Bytecodes::NumberOfOperands(bytecode);
   for (int operand_index = 0; operand_index < operand_count; operand_index++) {
     interpreter::OperandType operand_type =
@@ -86,8 +83,7 @@
       int range = bytecode_iterator.GetRegisterOperandRange(operand_index);
       for (int reg_index = first_reg.index();
            reg_index < first_reg.index() + range; reg_index++) {
-        Address reg_location = register_file - reg_index * kPointerSize;
-        Object* reg_object = Memory::Object_at(reg_location);
+        Object* reg_object = frame->ReadInterpreterRegister(reg_index);
         os << "      [ " << std::setw(kRegFieldWidth)
            << interpreter::Register(reg_index).ToString(
                   bytecode_iterator.bytecode_array()->parameter_count())
@@ -117,10 +113,10 @@
   AdvanceToOffsetForTracing(bytecode_iterator, offset);
   if (offset == bytecode_iterator.current_offset()) {
     // Print bytecode.
-    const uint8_t* bytecode_address =
-        reinterpret_cast<const uint8_t*>(*bytecode_array) + bytecode_offset;
-    os << " -> " << static_cast<const void*>(bytecode_address)
-       << " (" << bytecode_offset << ") : ";
+    const uint8_t* base_address = bytecode_array->GetFirstBytecodeAddress();
+    const uint8_t* bytecode_address = base_address + offset;
+    os << " -> " << static_cast<const void*>(bytecode_address) << " @ "
+       << std::setw(4) << offset << " : ";
     interpreter::Bytecodes::Decode(os, bytecode_address,
                                    bytecode_array->parameter_count());
     os << std::endl;
diff --git a/src/runtime/runtime-json.cc b/src/runtime/runtime-json.cc
index 07232d5..72fc758 100644
--- a/src/runtime/runtime-json.cc
+++ b/src/runtime/runtime-json.cc
@@ -8,7 +8,6 @@
 #include "src/char-predicates-inl.h"
 #include "src/isolate-inl.h"
 #include "src/json-parser.h"
-#include "src/json-stringifier.h"
 #include "src/objects-inl.h"
 
 namespace v8 {
@@ -20,23 +19,20 @@
   DCHECK(args.length() == 1);
   Handle<Object> result;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, BasicJsonStringifier::StringifyString(isolate, string));
+      isolate, result, Runtime::BasicJsonStringifyString(isolate, string));
   return *result;
 }
 
-
 RUNTIME_FUNCTION(Runtime_BasicJSONStringify) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
-  BasicJsonStringifier stringifier(isolate);
   Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     stringifier.Stringify(object));
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result, Runtime::BasicJsonStringify(isolate, object));
   return *result;
 }
 
-
 RUNTIME_FUNCTION(Runtime_ParseJson) {
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
diff --git a/src/runtime/runtime-literals.cc b/src/runtime/runtime-literals.cc
index f14a7cf..34feeba 100644
--- a/src/runtime/runtime-literals.cc
+++ b/src/runtime/runtime-literals.cc
@@ -109,7 +109,7 @@
   return boilerplate;
 }
 
-MaybeHandle<Object> Runtime::CreateArrayLiteralBoilerplate(
+static MaybeHandle<Object> CreateArrayLiteralBoilerplate(
     Isolate* isolate, Handle<LiteralsArray> literals,
     Handle<FixedArray> elements) {
   // Create the JSArray.
@@ -191,8 +191,7 @@
     case CompileTimeValue::OBJECT_LITERAL_SLOW_ELEMENTS:
       return CreateObjectLiteralBoilerplate(isolate, literals, elements, false);
     case CompileTimeValue::ARRAY_LITERAL:
-      return Runtime::CreateArrayLiteralBoilerplate(isolate, literals,
-                                                    elements);
+      return CreateArrayLiteralBoilerplate(isolate, literals, elements);
     default:
       UNREACHABLE();
       return MaybeHandle<Object>();
@@ -280,7 +279,7 @@
     Handle<Object> boilerplate;
     ASSIGN_RETURN_ON_EXCEPTION(
         isolate, boilerplate,
-        Runtime::CreateArrayLiteralBoilerplate(isolate, literals, elements),
+        CreateArrayLiteralBoilerplate(isolate, literals, elements),
         AllocationSite);
 
     AllocationSiteCreationContext creation_context(isolate);
diff --git a/src/runtime/runtime-object.cc b/src/runtime/runtime-object.cc
index 5bdb085..8c9c230 100644
--- a/src/runtime/runtime-object.cc
+++ b/src/runtime/runtime-object.cc
@@ -8,6 +8,7 @@
 #include "src/bootstrapper.h"
 #include "src/debug/debug.h"
 #include "src/isolate-inl.h"
+#include "src/json-stringifier.h"
 #include "src/messages.h"
 #include "src/property-descriptor.h"
 #include "src/runtime/runtime.h"
@@ -119,7 +120,7 @@
                                           LanguageMode language_mode) {
   bool success = false;
   LookupIterator it = LookupIterator::PropertyOrElement(
-      isolate, receiver, key, &success, LookupIterator::HIDDEN);
+      isolate, receiver, key, &success, LookupIterator::OWN);
   if (!success) return Nothing<bool>();
 
   return JSReceiver::DeleteProperty(&it, language_mode);
@@ -168,7 +169,7 @@
     }
 
     // Slow case.
-    LookupIterator::Configuration c = LookupIterator::HIDDEN;
+    LookupIterator::Configuration c = LookupIterator::OWN;
     LookupIterator it = key_is_array_index
                             ? LookupIterator(isolate, js_obj, index, js_obj, c)
                             : LookupIterator(js_obj, key, js_obj, c);
@@ -225,6 +226,15 @@
   return value;
 }
 
+MaybeHandle<Object> Runtime::BasicJsonStringify(Isolate* isolate,
+                                                Handle<Object> object) {
+  return BasicJsonStringifier(isolate).Stringify(object);
+}
+
+MaybeHandle<Object> Runtime::BasicJsonStringifyString(Isolate* isolate,
+                                                      Handle<String> string) {
+  return BasicJsonStringifier::StringifyString(isolate, string);
+}
 
 RUNTIME_FUNCTION(Runtime_GetPrototype) {
   HandleScope scope(isolate);
@@ -260,85 +270,6 @@
   return *obj;
 }
 
-
-// Enumerator used as indices into the array returned from GetOwnProperty
-enum PropertyDescriptorIndices {
-  IS_ACCESSOR_INDEX,
-  VALUE_INDEX,
-  GETTER_INDEX,
-  SETTER_INDEX,
-  WRITABLE_INDEX,
-  ENUMERABLE_INDEX,
-  CONFIGURABLE_INDEX,
-  DESCRIPTOR_SIZE
-};
-
-
-MUST_USE_RESULT static MaybeHandle<Object> GetOwnProperty(Isolate* isolate,
-                                                          Handle<JSObject> obj,
-                                                          Handle<Name> name) {
-  Heap* heap = isolate->heap();
-  Factory* factory = isolate->factory();
-
-  // Get attributes.
-  LookupIterator it = LookupIterator::PropertyOrElement(isolate, obj, name, obj,
-                                                        LookupIterator::HIDDEN);
-  Maybe<PropertyAttributes> maybe = JSObject::GetPropertyAttributes(&it);
-
-  if (!maybe.IsJust()) return MaybeHandle<Object>();
-  PropertyAttributes attrs = maybe.FromJust();
-  if (attrs == ABSENT) return factory->undefined_value();
-
-  DCHECK(!isolate->has_pending_exception());
-  Handle<FixedArray> elms = factory->NewFixedArray(DESCRIPTOR_SIZE);
-  elms->set(ENUMERABLE_INDEX, heap->ToBoolean((attrs & DONT_ENUM) == 0));
-  elms->set(CONFIGURABLE_INDEX, heap->ToBoolean((attrs & DONT_DELETE) == 0));
-
-  bool is_accessor_pair = it.state() == LookupIterator::ACCESSOR &&
-                          it.GetAccessors()->IsAccessorPair();
-  elms->set(IS_ACCESSOR_INDEX, heap->ToBoolean(is_accessor_pair));
-
-  if (is_accessor_pair) {
-    Handle<AccessorPair> accessors =
-        Handle<AccessorPair>::cast(it.GetAccessors());
-    Handle<Object> getter =
-        AccessorPair::GetComponent(accessors, ACCESSOR_GETTER);
-    Handle<Object> setter =
-        AccessorPair::GetComponent(accessors, ACCESSOR_SETTER);
-    elms->set(GETTER_INDEX, *getter);
-    elms->set(SETTER_INDEX, *setter);
-  } else {
-    Handle<Object> value;
-    ASSIGN_RETURN_ON_EXCEPTION(isolate, value, Object::GetProperty(&it),
-                               Object);
-    elms->set(WRITABLE_INDEX, heap->ToBoolean((attrs & READ_ONLY) == 0));
-    elms->set(VALUE_INDEX, *value);
-  }
-
-  return factory->NewJSArrayWithElements(elms);
-}
-
-
-// Returns an array with the property description:
-//  if args[1] is not a property on args[0]
-//          returns undefined
-//  if args[1] is a data property on args[0]
-//         [false, value, Writeable, Enumerable, Configurable]
-//  if args[1] is an accessor on args[0]
-//         [true, GetFunction, SetFunction, Enumerable, Configurable]
-// TODO(jkummerow): Deprecated. Remove all callers and delete.
-RUNTIME_FUNCTION(Runtime_GetOwnProperty_Legacy) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     GetOwnProperty(isolate, obj, name));
-  return *result;
-}
-
-
 RUNTIME_FUNCTION(Runtime_OptimizeObjectForAddingMultipleProperties) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 2);
@@ -369,7 +300,7 @@
   Handle<Name> name(scope_info->ContextSlotName(slot), isolate);
   Handle<JSGlobalObject> global_object(script_context->global_object(),
                                        isolate);
-  LookupIterator it(global_object, name, global_object, LookupIterator::HIDDEN);
+  LookupIterator it(global_object, name, global_object, LookupIterator::OWN);
 
   // Switch to fast mode only if there is a data property and it's not on
   // a hidden prototype.
@@ -404,7 +335,7 @@
   Handle<Name> name(scope_info->ContextSlotName(slot), isolate);
   Handle<JSGlobalObject> global_object(script_context->global_object(),
                                        isolate);
-  LookupIterator it(global_object, name, global_object, LookupIterator::HIDDEN);
+  LookupIterator it(global_object, name, global_object, LookupIterator::OWN);
 
   // Switch to fast mode only if there is a data property and it's not on
   // a hidden prototype.
@@ -726,30 +657,6 @@
 }
 
 
-RUNTIME_FUNCTION(Runtime_GlobalProxy) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_CHECKED(JSFunction, function, 0);
-  return function->context()->global_proxy();
-}
-
-
-RUNTIME_FUNCTION(Runtime_LookupAccessor) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 3);
-  CONVERT_ARG_HANDLE_CHECKED(JSReceiver, receiver, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
-  CONVERT_SMI_ARG_CHECKED(flag, 2);
-  AccessorComponent component = flag == 0 ? ACCESSOR_GETTER : ACCESSOR_SETTER;
-  if (!receiver->IsJSObject()) return isolate->heap()->undefined_value();
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      JSObject::GetAccessor(Handle<JSObject>::cast(receiver), name, component));
-  return *result;
-}
-
-
 RUNTIME_FUNCTION(Runtime_LoadMutableDouble) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 2);
@@ -823,34 +730,6 @@
 }
 
 
-// Implements part of 8.12.9 DefineOwnProperty.
-// There are 3 cases that lead here:
-// Step 4a - define a new data property.
-// Steps 9b & 12 - replace an existing accessor property with a data property.
-// Step 12 - update an existing data property with a data or generic
-//           descriptor.
-RUNTIME_FUNCTION(Runtime_DefineDataPropertyUnchecked) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 4);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
-  CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
-  CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 3);
-
-  LookupIterator it = LookupIterator::PropertyOrElement(
-      isolate, object, name, object, LookupIterator::OWN);
-  if (it.state() == LookupIterator::ACCESS_CHECK && !it.HasAccess()) {
-    return isolate->heap()->undefined_value();
-  }
-
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, JSObject::DefineOwnPropertyIgnoreAttributes(
-                           &it, value, attrs, JSObject::DONT_FORCE_FIELD));
-
-  return *result;
-}
-
 RUNTIME_FUNCTION(Runtime_DefineDataPropertyInLiteral) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 5);
@@ -1104,97 +983,6 @@
   return isolate->heap()->exception();
 }
 
-
-RUNTIME_FUNCTION(Runtime_InstanceOf) {
-  // TODO(4447): Remove this function when ES6 instanceof ships for good.
-  DCHECK(!FLAG_harmony_instanceof);
-
-  // ECMA-262, section 11.8.6, page 54.
-  HandleScope shs(isolate);
-  DCHECK_EQ(2, args.length());
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Object, callable, 1);
-  // {callable} must have a [[Call]] internal method.
-  if (!callable->IsCallable()) {
-    THROW_NEW_ERROR_RETURN_FAILURE(
-        isolate,
-        NewTypeError(MessageTemplate::kInstanceofFunctionExpected, callable));
-  }
-  // If {object} is not a receiver, return false.
-  if (!object->IsJSReceiver()) {
-    return isolate->heap()->false_value();
-  }
-  // Check if {callable} is bound, if so, get [[BoundTargetFunction]] from it
-  // and use that instead of {callable}.
-  while (callable->IsJSBoundFunction()) {
-    callable =
-        handle(Handle<JSBoundFunction>::cast(callable)->bound_target_function(),
-               isolate);
-  }
-  DCHECK(callable->IsCallable());
-  // Get the "prototype" of {callable}; raise an error if it's not a receiver.
-  Handle<Object> prototype;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, prototype,
-      JSReceiver::GetProperty(Handle<JSReceiver>::cast(callable),
-                              isolate->factory()->prototype_string()));
-  if (!prototype->IsJSReceiver()) {
-    THROW_NEW_ERROR_RETURN_FAILURE(
-        isolate,
-        NewTypeError(MessageTemplate::kInstanceofNonobjectProto, prototype));
-  }
-  // Return whether or not {prototype} is in the prototype chain of {object}.
-  Handle<JSReceiver> receiver = Handle<JSReceiver>::cast(object);
-  Maybe<bool> result =
-      JSReceiver::HasInPrototypeChain(isolate, receiver, prototype);
-  MAYBE_RETURN(result, isolate->heap()->exception());
-  return isolate->heap()->ToBoolean(result.FromJust());
-}
-
-RUNTIME_FUNCTION(Runtime_OrdinaryHasInstance) {
-  // ES6 section 19.2.3.6 Function.prototype[@@hasInstance](V)
-  HandleScope shs(isolate);
-  DCHECK_EQ(2, args.length());
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Object, callable, 1);
-  // {callable} must have a [[Call]] internal method.
-  if (!callable->IsCallable()) {
-    return isolate->heap()->false_value();
-  }
-  // If {object} is not a receiver, return false.
-  if (!object->IsJSReceiver()) {
-    return isolate->heap()->false_value();
-  }
-  // Check if {callable} is bound, if so, get [[BoundTargetFunction]] from it
-  // and use that instead of {callable}.
-  while (callable->IsJSBoundFunction()) {
-    callable =
-        handle(Handle<JSBoundFunction>::cast(callable)->bound_target_function(),
-               isolate);
-  }
-  DCHECK(callable->IsCallable());
-  // Get the "prototype" of {callable}; raise an error if it's not a receiver.
-  Handle<Object> prototype;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, prototype,
-      JSReceiver::GetProperty(Handle<JSReceiver>::cast(callable),
-                              isolate->factory()->prototype_string()));
-  if (!prototype->IsJSReceiver()) {
-    THROW_NEW_ERROR_RETURN_FAILURE(
-        isolate,
-        NewTypeError(MessageTemplate::kInstanceofNonobjectProto, prototype));
-  }
-  // Return whether or not {prototype} is in the prototype chain of {object}.
-  Handle<JSReceiver> receiver = Handle<JSReceiver>::cast(object);
-  Maybe<bool> result =
-      JSReceiver::HasInPrototypeChain(isolate, receiver, prototype);
-  MAYBE_RETURN(result, isolate->heap()->exception());
-  return isolate->heap()->ToBoolean(result.FromJust());
-}
-
-
 RUNTIME_FUNCTION(Runtime_HasInPrototypeChain) {
   HandleScope scope(isolate);
   DCHECK_EQ(2, args.length());
@@ -1229,24 +1017,20 @@
 }
 
 
-RUNTIME_FUNCTION(Runtime_ObjectDefineProperty) {
+RUNTIME_FUNCTION(Runtime_CreateDataProperty) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 3);
-  CONVERT_ARG_HANDLE_CHECKED(Object, o, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Object, name, 1);
-  CONVERT_ARG_HANDLE_CHECKED(Object, attributes, 2);
-  return JSReceiver::DefineProperty(isolate, o, name, attributes);
-}
-
-
-RUNTIME_FUNCTION(Runtime_ObjectDefineProperties) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(Object, o, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Object, properties, 1);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, o, JSReceiver::DefineProperties(isolate, o, properties));
-  return *o;
+  CONVERT_ARG_HANDLE_CHECKED(JSReceiver, o, 0);
+  CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
+  CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
+  bool success;
+  LookupIterator it = LookupIterator::PropertyOrElement(
+      isolate, o, key, &success, LookupIterator::OWN);
+  if (!success) return isolate->heap()->exception();
+  MAYBE_RETURN(
+      JSReceiver::CreateDataProperty(&it, value, Object::THROW_ON_ERROR),
+      isolate->heap()->exception());
+  return *value;
 }
 
 }  // namespace internal
diff --git a/src/runtime/runtime-observe.cc b/src/runtime/runtime-observe.cc
deleted file mode 100644
index 0407b8a..0000000
--- a/src/runtime/runtime-observe.cc
+++ /dev/null
@@ -1,160 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "src/runtime/runtime-utils.h"
-
-#include "src/arguments.h"
-#include "src/debug/debug.h"
-#include "src/isolate-inl.h"
-
-namespace v8 {
-namespace internal {
-
-RUNTIME_FUNCTION(Runtime_IsObserved) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 1);
-
-  if (!args[0]->IsJSReceiver()) return isolate->heap()->false_value();
-  CONVERT_ARG_CHECKED(JSReceiver, obj, 0);
-  DCHECK(!obj->IsJSGlobalProxy() || !obj->map()->is_observed());
-  return isolate->heap()->ToBoolean(obj->map()->is_observed());
-}
-
-
-RUNTIME_FUNCTION(Runtime_SetIsObserved) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0);
-  RUNTIME_ASSERT(!obj->IsJSGlobalProxy());
-  if (obj->IsJSProxy()) return isolate->heap()->undefined_value();
-  RUNTIME_ASSERT(!obj->map()->is_observed());
-
-  DCHECK(obj->IsJSObject());
-  JSObject::SetObserved(Handle<JSObject>::cast(obj));
-  return isolate->heap()->undefined_value();
-}
-
-
-RUNTIME_FUNCTION(Runtime_EnqueueMicrotask) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(JSFunction, microtask, 0);
-  isolate->EnqueueMicrotask(microtask);
-  return isolate->heap()->undefined_value();
-}
-
-
-RUNTIME_FUNCTION(Runtime_RunMicrotasks) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 0);
-  isolate->RunMicrotasks();
-  return isolate->heap()->undefined_value();
-}
-
-
-RUNTIME_FUNCTION(Runtime_DeliverObservationChangeRecords) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(JSReceiver, callback, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Object, argument, 1);
-  v8::TryCatch catcher(reinterpret_cast<v8::Isolate*>(isolate));
-  // We should send a message on uncaught exception thrown during
-  // Object.observe delivery while not interrupting further delivery, thus
-  // we make a call inside a verbose TryCatch.
-  catcher.SetVerbose(true);
-  Handle<Object> argv[] = {argument};
-
-  // If we are in step-in mode, flood the handler.
-  isolate->debug()->EnableStepIn();
-
-  USE(Execution::Call(isolate, callback, isolate->factory()->undefined_value(),
-                      arraysize(argv), argv));
-  if (isolate->has_pending_exception()) {
-    isolate->ReportPendingMessages();
-    isolate->clear_pending_exception();
-    isolate->set_external_caught_exception(false);
-  }
-  return isolate->heap()->undefined_value();
-}
-
-
-RUNTIME_FUNCTION(Runtime_GetObservationState) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 0);
-  isolate->CountUsage(v8::Isolate::kObjectObserve);
-  return isolate->heap()->observation_state();
-}
-
-
-static bool ContextsHaveSameOrigin(Handle<Context> context1,
-                                   Handle<Context> context2) {
-  return context1->security_token() == context2->security_token();
-}
-
-
-RUNTIME_FUNCTION(Runtime_ObserverObjectAndRecordHaveSameOrigin) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 3);
-  CONVERT_ARG_HANDLE_CHECKED(JSReceiver, observer, 0);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 1);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, record, 2);
-
-  while (observer->IsJSBoundFunction()) {
-    observer = handle(
-        Handle<JSBoundFunction>::cast(observer)->bound_target_function());
-  }
-  if (!observer->IsJSFunction()) return isolate->heap()->false_value();
-
-  Handle<Context> observer_context(
-      Handle<JSFunction>::cast(observer)->context()->native_context());
-  Handle<Context> object_context(object->GetCreationContext());
-  Handle<Context> record_context(record->GetCreationContext());
-
-  return isolate->heap()->ToBoolean(
-      ContextsHaveSameOrigin(object_context, observer_context) &&
-      ContextsHaveSameOrigin(object_context, record_context));
-}
-
-
-RUNTIME_FUNCTION(Runtime_ObjectWasCreatedInCurrentOrigin) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
-
-  Handle<Context> creation_context(object->GetCreationContext(), isolate);
-  return isolate->heap()->ToBoolean(
-      ContextsHaveSameOrigin(creation_context, isolate->native_context()));
-}
-
-
-RUNTIME_FUNCTION(Runtime_GetObjectContextObjectObserve) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
-
-  Handle<Context> context(object->GetCreationContext(), isolate);
-  return context->native_object_observe();
-}
-
-
-RUNTIME_FUNCTION(Runtime_GetObjectContextObjectGetNotifier) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
-
-  Handle<Context> context(object->GetCreationContext(), isolate);
-  return context->native_object_get_notifier();
-}
-
-
-RUNTIME_FUNCTION(Runtime_GetObjectContextNotifierPerformChange) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(JSObject, object_info, 0);
-
-  Handle<Context> context(object_info->GetCreationContext(), isolate);
-  return context->native_object_notifier_perform_change();
-}
-}  // namespace internal
-}  // namespace v8
diff --git a/src/runtime/runtime-operators.cc b/src/runtime/runtime-operators.cc
index e55ab7c..78dd16f 100644
--- a/src/runtime/runtime-operators.cc
+++ b/src/runtime/runtime-operators.cc
@@ -216,5 +216,16 @@
   return isolate->heap()->ToBoolean(result.FromJust());
 }
 
+RUNTIME_FUNCTION(Runtime_InstanceOf) {
+  HandleScope shs(isolate);
+  DCHECK_EQ(2, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
+  CONVERT_ARG_HANDLE_CHECKED(Object, callable, 1);
+  Handle<Object> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result, Object::InstanceOf(isolate, object, callable));
+  return *result;
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/src/runtime/runtime-scopes.cc b/src/runtime/runtime-scopes.cc
index de0d66a..68df582 100644
--- a/src/runtime/runtime-scopes.cc
+++ b/src/runtime/runtime-scopes.cc
@@ -44,8 +44,7 @@
   }
 
   // Do the lookup own properties only, see ES5 erratum.
-  LookupIterator it(global, name, global,
-                    LookupIterator::HIDDEN_SKIP_INTERCEPTOR);
+  LookupIterator it(global, name, global, LookupIterator::OWN_SKIP_INTERCEPTOR);
   Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
   if (!maybe.IsJust()) return isolate->heap()->exception();
 
@@ -182,8 +181,7 @@
   Handle<JSGlobalObject> global = isolate->global_object();
 
   // Lookup the property as own on the global object.
-  LookupIterator it(global, name, global,
-                    LookupIterator::HIDDEN_SKIP_INTERCEPTOR);
+  LookupIterator it(global, name, global, LookupIterator::OWN_SKIP_INTERCEPTOR);
   Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
   DCHECK(maybe.IsJust());
   PropertyAttributes old_attributes = maybe.FromJust();
@@ -237,10 +235,7 @@
     // Check for a conflict with a lexically scoped variable
     context_arg->Lookup(name, LEXICAL_TEST, &index, &attributes,
                         &binding_flags);
-    if (attributes != ABSENT &&
-        (binding_flags == MUTABLE_CHECK_INITIALIZED ||
-         binding_flags == IMMUTABLE_CHECK_INITIALIZED ||
-         binding_flags == IMMUTABLE_CHECK_INITIALIZED_HARMONY)) {
+    if (attributes != ABSENT && binding_flags == BINDING_CHECK_INITIALIZED) {
       return ThrowRedeclarationError(isolate, name);
     }
     attr = static_cast<PropertyAttributes>(attr & ~EVAL_DECLARED);
@@ -339,86 +334,6 @@
 }
 
 
-RUNTIME_FUNCTION(Runtime_InitializeLegacyConstLookupSlot) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 3);
-
-  CONVERT_ARG_HANDLE_CHECKED(Object, value, 0);
-  DCHECK(!value->IsTheHole());
-  // Initializations are always done in a function or native context.
-  CONVERT_ARG_HANDLE_CHECKED(Context, context_arg, 1);
-  Handle<Context> context(context_arg->declaration_context());
-  CONVERT_ARG_HANDLE_CHECKED(String, name, 2);
-
-  int index;
-  PropertyAttributes attributes;
-  ContextLookupFlags flags = DONT_FOLLOW_CHAINS;
-  BindingFlags binding_flags;
-  Handle<Object> holder =
-      context->Lookup(name, flags, &index, &attributes, &binding_flags);
-  if (holder.is_null()) {
-    // In case of JSProxy, an exception might have been thrown.
-    if (isolate->has_pending_exception()) return isolate->heap()->exception();
-  }
-
-  if (index != Context::kNotFound) {
-    DCHECK(holder->IsContext());
-    // Property was found in a context.  Perform the assignment if the constant
-    // was uninitialized.
-    Handle<Context> context = Handle<Context>::cast(holder);
-    DCHECK((attributes & READ_ONLY) != 0);
-    if (context->get(index)->IsTheHole()) context->set(index, *value);
-    return *value;
-  }
-
-  PropertyAttributes attr =
-      static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY);
-
-  // Strict mode handling not needed (legacy const is disallowed in strict
-  // mode).
-
-  // The declared const was configurable, and may have been deleted in the
-  // meanwhile. If so, re-introduce the variable in the context extension.
-  if (attributes == ABSENT) {
-    Handle<Context> declaration_context(context_arg->declaration_context());
-    if (declaration_context->IsScriptContext()) {
-      holder = handle(declaration_context->global_object(), isolate);
-    } else {
-      holder = handle(declaration_context->extension_object(), isolate);
-      DCHECK(!holder.is_null());
-    }
-    CHECK(holder->IsJSObject());
-  } else {
-    // For JSContextExtensionObjects, the initializer can be run multiple times
-    // if in a for loop: for (var i = 0; i < 2; i++) { const x = i; }. Only the
-    // first assignment should go through. For JSGlobalObjects, additionally any
-    // code can run in between that modifies the declared property.
-    DCHECK(holder->IsJSGlobalObject() || holder->IsJSContextExtensionObject());
-
-    LookupIterator it(holder, name, Handle<JSReceiver>::cast(holder),
-                      LookupIterator::HIDDEN_SKIP_INTERCEPTOR);
-    Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
-    if (!maybe.IsJust()) return isolate->heap()->exception();
-    PropertyAttributes old_attributes = maybe.FromJust();
-
-    // Ignore if we can't reconfigure the value.
-    if ((old_attributes & DONT_DELETE) != 0) {
-      if ((old_attributes & READ_ONLY) != 0 ||
-          it.state() == LookupIterator::ACCESSOR) {
-        return *value;
-      }
-      attr = static_cast<PropertyAttributes>(old_attributes | READ_ONLY);
-    }
-  }
-
-  RETURN_FAILURE_ON_EXCEPTION(
-      isolate, JSObject::SetOwnPropertyIgnoreAttributes(
-                   Handle<JSObject>::cast(holder), name, value, attr));
-
-  return *value;
-}
-
-
 namespace {
 
 // Find the arguments of the JavaScript function invocation that called
@@ -648,7 +563,7 @@
   {
     DisallowHeapAllocation no_gc;
     FixedArray* elements = FixedArray::cast(result->elements());
-    WriteBarrierMode mode = result->GetWriteBarrierMode(no_gc);
+    WriteBarrierMode mode = elements->GetWriteBarrierMode(no_gc);
     for (int i = 0; i < num_elements; i++) {
       elements->set(i, *arguments[i + start_index], mode);
     }
@@ -663,12 +578,6 @@
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, callee, 0);
   Object** parameters = reinterpret_cast<Object**>(args[1]);
   CONVERT_SMI_ARG_CHECKED(argument_count, 2);
-#ifdef DEBUG
-  // This runtime function does not materialize the correct arguments when the
-  // caller has been inlined, better make sure we are not hitting that case.
-  JavaScriptFrameIterator it(isolate);
-  DCHECK(!it.frame()->HasInlinedFrames());
-#endif  // DEBUG
   ParameterArguments argument_getter(parameters);
   return *NewSloppyArguments(isolate, callee, argument_getter, argument_count);
 }
@@ -711,7 +620,7 @@
 
     if (IsLexicalVariableMode(mode)) {
       LookupIterator it(global_object, name, global_object,
-                        LookupIterator::HIDDEN_SKIP_INTERCEPTOR);
+                        LookupIterator::OWN_SKIP_INTERCEPTOR);
       Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
       if (!maybe.IsJust()) return isolate->heap()->exception();
       if ((maybe.FromJust() & DONT_DELETE) != 0) {
@@ -875,8 +784,7 @@
         case VAR:
         case LET:
         case CONST:
-        case CONST_LEGACY:
-        case IMPORT: {
+        case CONST_LEGACY: {
           PropertyAttributes attr =
               IsImmutableVariableMode(mode) ? FROZEN : SEALED;
           Handle<AccessorInfo> info =
@@ -961,23 +869,14 @@
     Handle<Object> value = handle(Context::cast(*holder)->get(index), isolate);
     // Check for uninitialized bindings.
     switch (flags) {
-      case MUTABLE_CHECK_INITIALIZED:
-      case IMMUTABLE_CHECK_INITIALIZED_HARMONY:
+      case BINDING_CHECK_INITIALIZED:
         if (value->IsTheHole()) {
           THROW_NEW_ERROR(isolate,
                           NewReferenceError(MessageTemplate::kNotDefined, name),
                           Object);
         }
       // FALLTHROUGH
-      case IMMUTABLE_CHECK_INITIALIZED:
-        if (value->IsTheHole()) {
-          DCHECK(attributes & READ_ONLY);
-          value = isolate->factory()->undefined_value();
-        }
-      // FALLTHROUGH
-      case MUTABLE_IS_INITIALIZED:
-      case IMMUTABLE_IS_INITIALIZED:
-      case IMMUTABLE_IS_INITIALIZED_HARMONY:
+      case BINDING_IS_INITIALIZED:
         DCHECK(!value->IsTheHole());
         if (receiver_return) *receiver_return = receiver;
         return value;
@@ -1075,8 +974,7 @@
 
   // The property was found in a context slot.
   if (index != Context::kNotFound) {
-    if ((flags == MUTABLE_CHECK_INITIALIZED ||
-         flags == IMMUTABLE_CHECK_INITIALIZED_HARMONY) &&
+    if (flags == BINDING_CHECK_INITIALIZED &&
         Handle<Context>::cast(holder)->is_the_hole(index)) {
       THROW_NEW_ERROR(isolate,
                       NewReferenceError(MessageTemplate::kNotDefined, name),
diff --git a/src/runtime/runtime-strings.cc b/src/runtime/runtime-strings.cc
index 6786fa9..0f19bf3 100644
--- a/src/runtime/runtime-strings.cc
+++ b/src/runtime/runtime-strings.cc
@@ -5,10 +5,7 @@
 #include "src/runtime/runtime-utils.h"
 
 #include "src/arguments.h"
-#include "src/conversions-inl.h"
-#include "src/isolate-inl.h"
 #include "src/regexp/jsregexp-inl.h"
-#include "src/regexp/jsregexp.h"
 #include "src/string-builder.h"
 #include "src/string-search.h"
 
@@ -1080,7 +1077,7 @@
 
 RUNTIME_FUNCTION(Runtime_StringToLowerCase) {
   HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
+  DCHECK_EQ(args.length(), 1);
   CONVERT_ARG_HANDLE_CHECKED(String, s, 0);
   return ConvertCase(s, isolate, isolate->runtime_state()->to_lower_mapping());
 }
@@ -1088,7 +1085,7 @@
 
 RUNTIME_FUNCTION(Runtime_StringToUpperCase) {
   HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
+  DCHECK_EQ(args.length(), 1);
   CONVERT_ARG_HANDLE_CHECKED(String, s, 0);
   return ConvertCase(s, isolate, isolate->runtime_state()->to_upper_mapping());
 }
@@ -1154,6 +1151,7 @@
   return *result;
 }
 
+
 RUNTIME_FUNCTION(Runtime_StringLessThan) {
   HandleScope handle_scope(isolate);
   DCHECK_EQ(2, args.length());
@@ -1273,6 +1271,13 @@
   return __RT_impl_Runtime_StringCharFromCode(Arguments(1, &code), isolate);
 }
 
+RUNTIME_FUNCTION(Runtime_ExternalStringGetChar) {
+  SealHandleScope shs(isolate);
+  DCHECK_EQ(2, args.length());
+  CONVERT_ARG_CHECKED(ExternalString, string, 0);
+  CONVERT_INT32_ARG_CHECKED(index, 1);
+  return Smi::FromInt(string->Get(index));
+}
 
 RUNTIME_FUNCTION(Runtime_OneByteSeqStringGetChar) {
   SealHandleScope shs(isolate);
diff --git a/src/runtime/runtime-test.cc b/src/runtime/runtime-test.cc
index a0f0566..cc15d0e 100644
--- a/src/runtime/runtime-test.cc
+++ b/src/runtime/runtime-test.cc
@@ -8,6 +8,7 @@
 #include "src/deoptimizer.h"
 #include "src/frames-inl.h"
 #include "src/full-codegen/full-codegen.h"
+#include "src/isolate-inl.h"
 #include "src/snapshot/natives.h"
 
 namespace v8 {
@@ -16,7 +17,16 @@
 RUNTIME_FUNCTION(Runtime_DeoptimizeFunction) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
+
+  // This function is used by fuzzers to get coverage in compiler.
+  // Ignore calls on non-function objects to avoid runtime errors.
+  CONVERT_ARG_HANDLE_CHECKED(Object, function_object, 0);
+  // If it is not a JSFunction, just return.
+  if (!function_object->IsJSFunction()) {
+    return isolate->heap()->undefined_value();
+  }
+  Handle<JSFunction> function = Handle<JSFunction>::cast(function_object);
+
   if (!function->IsOptimized()) return isolate->heap()->undefined_value();
 
   // TODO(turbofan): Deoptimization is not supported yet.
@@ -84,7 +94,16 @@
 RUNTIME_FUNCTION(Runtime_OptimizeFunctionOnNextCall) {
   HandleScope scope(isolate);
   RUNTIME_ASSERT(args.length() == 1 || args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
+
+  // This function is used by fuzzers to get coverage for optimizations
+  // in compiler. Ignore calls on non-function objects to avoid runtime errors.
+  CONVERT_ARG_HANDLE_CHECKED(Object, function_object, 0);
+  // If it is not a JSFunction, just return.
+  if (!function_object->IsJSFunction()) {
+    return isolate->heap()->undefined_value();
+  }
+  Handle<JSFunction> function = Handle<JSFunction>::cast(function_object);
+
   // The following assertion was lifted from the DCHECK inside
   // JSFunction::MarkForOptimization().
   RUNTIME_ASSERT(function->shared()->allows_lazy_compilation() ||
@@ -135,6 +154,12 @@
   RUNTIME_ASSERT(function->shared()->allows_lazy_compilation() ||
                  !function->shared()->optimization_disabled());
 
+  // If function is interpreted, just return. OSR is not supported.
+  // TODO(4764): Remove this check when OSR is enabled in the interpreter.
+  if (function->shared()->HasBytecodeArray()) {
+    return isolate->heap()->undefined_value();
+  }
+
   // If the function is already optimized, just return.
   if (function->IsOptimized()) return isolate->heap()->undefined_value();
 
@@ -153,7 +178,8 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_CHECKED(JSFunction, function, 0);
-  function->shared()->set_disable_optimization_reason(kOptimizationDisabled);
+  function->shared()->set_disable_optimization_reason(
+      kOptimizationDisabledForTest);
   function->shared()->set_optimization_disabled(true);
   return isolate->heap()->undefined_value();
 }
@@ -457,6 +483,31 @@
   return isolate->heap()->undefined_value();
 }
 
+RUNTIME_FUNCTION(Runtime_GetExceptionDetails) {
+  HandleScope shs(isolate);
+  DCHECK(args.length() == 1);
+  CONVERT_ARG_HANDLE_CHECKED(JSObject, exception_obj, 0);
+
+  Factory* factory = isolate->factory();
+  Handle<JSMessageObject> message_obj =
+      isolate->CreateMessage(exception_obj, nullptr);
+
+  Handle<JSObject> message = factory->NewJSObject(isolate->object_function());
+
+  Handle<String> key;
+  Handle<Object> value;
+
+  key = factory->NewStringFromAsciiChecked("start_pos");
+  value = handle(Smi::FromInt(message_obj->start_position()), isolate);
+  JSObject::SetProperty(message, key, value, STRICT).Assert();
+
+  key = factory->NewStringFromAsciiChecked("end_pos");
+  value = handle(Smi::FromInt(message_obj->end_position()), isolate);
+  JSObject::SetProperty(message, key, value, STRICT).Assert();
+
+  return *message;
+}
+
 RUNTIME_FUNCTION(Runtime_HaveSameMap) {
   SealHandleScope shs(isolate);
   DCHECK(args.length() == 2);
diff --git a/src/runtime/runtime-typedarray.cc b/src/runtime/runtime-typedarray.cc
index bf0ee9f..14b1207 100644
--- a/src/runtime/runtime-typedarray.cc
+++ b/src/runtime/runtime-typedarray.cc
@@ -28,6 +28,14 @@
   CONVERT_ARG_HANDLE_CHECKED(JSArrayBuffer, target, 1);
   CONVERT_NUMBER_ARG_HANDLE_CHECKED(first, 2);
   CONVERT_NUMBER_ARG_HANDLE_CHECKED(new_length, 3);
+
+  if (source->was_neutered() || target->was_neutered()) {
+    THROW_NEW_ERROR_RETURN_FAILURE(
+        isolate, NewTypeError(MessageTemplate::kDetachedOperation,
+                              isolate->factory()->NewStringFromAsciiChecked(
+                                  "ArrayBuffer.prototype.slice")));
+  }
+
   RUNTIME_ASSERT(!source.is_identical_to(target));
   size_t start = 0, target_length = 0;
   RUNTIME_ASSERT(TryNumberToSize(isolate, *first, &start));
@@ -397,7 +405,8 @@
   Handle<JSTypedArray> obj(JSTypedArray::cast(args[0]));
   return isolate->heap()->ToBoolean(obj->GetBuffer()->is_shared() &&
                                     obj->type() != kExternalFloat32Array &&
-                                    obj->type() != kExternalFloat64Array);
+                                    obj->type() != kExternalFloat64Array &&
+                                    obj->type() != kExternalUint8ClampedArray);
 }
 
 
diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
index dc1678b..2c80280 100644
--- a/src/runtime/runtime.h
+++ b/src/runtime/runtime.h
@@ -47,25 +47,26 @@
   F(GrowArrayElements, 2, 1)         \
   F(HasComplexElements, 1, 1)        \
   F(IsArray, 1, 1)                   \
+  F(ArrayIsArray, 1, 1)              \
   F(HasCachedArrayIndex, 1, 1)       \
   F(GetCachedArrayIndex, 1, 1)       \
   F(FixedArrayGet, 2, 1)             \
   F(FixedArraySet, 3, 1)             \
   F(ArraySpeciesConstructor, 1, 1)
 
-#define FOR_EACH_INTRINSIC_ATOMICS(F) \
-  F(AtomicsCompareExchange, 4, 1)     \
-  F(AtomicsLoad, 2, 1)                \
-  F(AtomicsStore, 3, 1)               \
-  F(AtomicsAdd, 3, 1)                 \
-  F(AtomicsSub, 3, 1)                 \
-  F(AtomicsAnd, 3, 1)                 \
-  F(AtomicsOr, 3, 1)                  \
-  F(AtomicsXor, 3, 1)                 \
-  F(AtomicsExchange, 3, 1)            \
+#define FOR_EACH_INTRINSIC_ATOMICS(F)           \
+  F(ThrowNotIntegerSharedTypedArrayError, 1, 1) \
+  F(ThrowNotInt32SharedTypedArrayError, 1, 1)   \
+  F(ThrowInvalidAtomicAccessIndexError, 0, 1)   \
+  F(AtomicsCompareExchange, 4, 1)               \
+  F(AtomicsAdd, 3, 1)                           \
+  F(AtomicsSub, 3, 1)                           \
+  F(AtomicsAnd, 3, 1)                           \
+  F(AtomicsOr, 3, 1)                            \
+  F(AtomicsXor, 3, 1)                           \
+  F(AtomicsExchange, 3, 1)                      \
   F(AtomicsIsLockFree, 1, 1)
 
-
 #define FOR_EACH_INTRINSIC_FUTEX(F)  \
   F(AtomicsFutexWait, 4, 1)          \
   F(AtomicsFutexWake, 3, 1)          \
@@ -81,7 +82,6 @@
   F(ThrowIfStaticPrototype, 1, 1)           \
   F(HomeObjectSymbol, 0, 1)                 \
   F(DefineClass, 4, 1)                      \
-  F(FinalizeClassDefinition, 2, 1)          \
   F(LoadFromSuper, 3, 1)                    \
   F(LoadKeyedFromSuper, 3, 1)               \
   F(StoreToSuper_Strict, 4, 1)              \
@@ -117,20 +117,18 @@
   F(WeakCollectionHas, 3, 1)              \
   F(WeakCollectionDelete, 3, 1)           \
   F(WeakCollectionSet, 4, 1)              \
-  F(GetWeakSetValues, 2, 1)               \
-  F(ObservationWeakMapCreate, 0, 1)
-
+  F(GetWeakSetValues, 2, 1)
 
 #define FOR_EACH_INTRINSIC_COMPILER(F)    \
   F(CompileLazy, 1, 1)                    \
+  F(CompileBaseline, 1, 1)                \
   F(CompileOptimized_Concurrent, 1, 1)    \
   F(CompileOptimized_NotConcurrent, 1, 1) \
   F(NotifyStubFailure, 0, 1)              \
   F(NotifyDeoptimized, 1, 1)              \
   F(CompileForOnStackReplacement, 1, 1)   \
   F(TryInstallOptimizedCode, 1, 1)        \
-  F(ResolvePossiblyDirectEval, 5, 1)
-
+  F(ResolvePossiblyDirectEval, 6, 1)
 
 #define FOR_EACH_INTRINSIC_DATE(F) \
   F(IsDate, 1, 1)                  \
@@ -148,9 +146,6 @@
   F(DebugGetProperty, 2, 1)                    \
   F(DebugPropertyTypeFromDetails, 1, 1)        \
   F(DebugPropertyAttributesFromDetails, 1, 1)  \
-  F(DebugPropertyIndexFromDetails, 1, 1)       \
-  F(DebugNamedInterceptorPropertyValue, 2, 1)  \
-  F(DebugIndexedInterceptorElementValue, 2, 1) \
   F(CheckExecutionState, 1, 1)                 \
   F(GetFrameCount, 1, 1)                       \
   F(GetFrameDetails, 2, 1)                     \
@@ -161,8 +156,6 @@
   F(GetFunctionScopeDetails, 2, 1)             \
   F(SetScopeVariableValue, 6, 1)               \
   F(DebugPrintScopes, 0, 1)                    \
-  F(GetThreadCount, 1, 1)                      \
-  F(GetThreadDetails, 2, 1)                    \
   F(SetBreakPointsActive, 1, 1)                \
   F(GetBreakLocations, 2, 1)                   \
   F(SetFunctionBreakPoint, 3, 1)               \
@@ -231,19 +224,19 @@
   F(FunctionToString, 1, 1)
 
 #define FOR_EACH_INTRINSIC_GENERATOR(F) \
-  F(CreateJSGeneratorObject, 0, 1)      \
+  F(CreateJSGeneratorObject, 2, 1)      \
   F(SuspendJSGeneratorObject, 1, 1)     \
-  F(ResumeJSGeneratorObject, 3, 1)      \
   F(GeneratorClose, 1, 1)               \
   F(GeneratorGetFunction, 1, 1)         \
   F(GeneratorGetReceiver, 1, 1)         \
   F(GeneratorGetInput, 1, 1)            \
+  F(GeneratorSetContext, 1, 1)          \
   F(GeneratorGetContinuation, 1, 1)     \
+  F(GeneratorSetContinuation, 2, 1)     \
   F(GeneratorGetSourcePosition, 1, 1)   \
-  F(GeneratorNext, 2, 1)                \
-  F(GeneratorReturn, 2, 1)              \
-  F(GeneratorThrow, 2, 1)
-
+  F(GeneratorGetResumeMode, 1, 1)       \
+  F(GeneratorLoadRegister, 2, 1)        \
+  F(GeneratorStoreRegister, 3, 1)
 
 #ifdef V8_I18N_SUPPORT
 #define FOR_EACH_INTRINSIC_I18N(F)           \
@@ -269,7 +262,10 @@
   F(BreakIteratorFirst, 1, 1)                \
   F(BreakIteratorNext, 1, 1)                 \
   F(BreakIteratorCurrent, 1, 1)              \
-  F(BreakIteratorBreakType, 1, 1)
+  F(BreakIteratorBreakType, 1, 1)            \
+  F(StringToLowerCaseI18N, 1, 1)             \
+  F(StringToUpperCaseI18N, 1, 1)             \
+  F(StringLocaleConvertCase, 3, 1)
 #else
 #define FOR_EACH_INTRINSIC_I18N(F)
 #endif
@@ -289,8 +285,11 @@
   F(NewSyntaxError, 2, 1)                           \
   F(NewReferenceError, 2, 1)                        \
   F(ThrowIllegalInvocation, 0, 1)                   \
+  F(ThrowIncompatibleMethodReceiver, 2, 1)          \
   F(ThrowIteratorResultNotAnObject, 1, 1)           \
+  F(ThrowGeneratorRunning, 0, 1)                    \
   F(ThrowStackOverflow, 0, 1)                       \
+  F(ThrowWasmError, 2, 1)                           \
   F(PromiseRejectEvent, 3, 1)                       \
   F(PromiseRevokeReject, 1, 1)                      \
   F(StackGuard, 0, 1)                               \
@@ -315,10 +314,14 @@
   F(ThrowConstructedNonConstructable, 1, 1)         \
   F(ThrowDerivedConstructorReturnedNonObject, 0, 1) \
   F(ThrowCalledNonCallable, 1, 1)                   \
+  F(ThrowCalledOnNullOrUndefined, 1, 1)             \
   F(CreateListFromArrayLike, 1, 1)                  \
   F(IncrementUseCounter, 1, 1)                      \
-  F(GetOrdinaryHasInstance, 0, 1)                   \
-  F(GetAndResetRuntimeCallStats, 0, 1)
+  F(GetAndResetRuntimeCallStats, -1 /* <= 2 */, 1)  \
+  F(EnqueueMicrotask, 1, 1)                         \
+  F(RunMicrotasks, 0, 1)                            \
+  F(WasmGetFunctionName, 2, 1)                      \
+  F(OrdinaryHasInstance, 2, 1)
 
 #define FOR_EACH_INTRINSIC_JSON(F) \
   F(QuoteJSONString, 1, 1)         \
@@ -385,7 +388,6 @@
   F(ObjectHasOwnProperty, 2, 1)                      \
   F(InternalSetPrototype, 2, 1)                      \
   F(SetPrototype, 2, 1)                              \
-  F(GetOwnProperty_Legacy, 2, 1)                     \
   F(OptimizeObjectForAddingMultipleProperties, 2, 1) \
   F(GetProperty, 2, 1)                               \
   F(KeyedGetProperty, 2, 1)                          \
@@ -406,13 +408,10 @@
   F(AllocateHeapNumber, 0, 1)                        \
   F(NewObject, 2, 1)                                 \
   F(FinalizeInstanceSize, 1, 1)                      \
-  F(GlobalProxy, 1, 1)                               \
-  F(LookupAccessor, 3, 1)                            \
   F(LoadMutableDouble, 2, 1)                         \
   F(TryMigrateInstance, 1, 1)                        \
   F(IsJSGlobalProxy, 1, 1)                           \
   F(DefineAccessorPropertyUnchecked, 5, 1)           \
-  F(DefineDataPropertyUnchecked, 4, 1)               \
   F(DefineDataPropertyInLiteral, 5, 1)               \
   F(GetDataProperty, 2, 1)                           \
   F(HasFastPackedElements, 1, 1)                     \
@@ -433,26 +432,10 @@
   F(SameValue, 2, 1)                                 \
   F(SameValueZero, 2, 1)                             \
   F(Compare, 3, 1)                                   \
-  F(InstanceOf, 2, 1)                                \
-  F(OrdinaryHasInstance, 2, 1)                       \
   F(HasInPrototypeChain, 2, 1)                       \
   F(CreateIterResultObject, 2, 1)                    \
   F(IsAccessCheckNeeded, 1, 1)                       \
-  F(ObjectDefineProperties, 2, 1)                    \
-  F(ObjectDefineProperty, 3, 1)
-
-#define FOR_EACH_INTRINSIC_OBSERVE(F)            \
-  F(IsObserved, 1, 1)                            \
-  F(SetIsObserved, 1, 1)                         \
-  F(EnqueueMicrotask, 1, 1)                      \
-  F(RunMicrotasks, 0, 1)                         \
-  F(DeliverObservationChangeRecords, 2, 1)       \
-  F(GetObservationState, 0, 1)                   \
-  F(ObserverObjectAndRecordHaveSameOrigin, 3, 1) \
-  F(ObjectWasCreatedInCurrentOrigin, 1, 1)       \
-  F(GetObjectContextObjectObserve, 1, 1)         \
-  F(GetObjectContextObjectGetNotifier, 1, 1)     \
-  F(GetObjectContextNotifierPerformChange, 1, 1)
+  F(CreateDataProperty, 3, 1)
 
 #define FOR_EACH_INTRINSIC_OPERATORS(F) \
   F(Multiply, 2, 1)                     \
@@ -473,7 +456,8 @@
   F(LessThan, 2, 1)                     \
   F(GreaterThan, 2, 1)                  \
   F(LessThanOrEqual, 2, 1)              \
-  F(GreaterThanOrEqual, 2, 1)
+  F(GreaterThanOrEqual, 2, 1)           \
+  F(InstanceOf, 2, 1)
 
 #define FOR_EACH_INTRINSIC_PROXY(F)     \
   F(IsJSProxy, 1, 1)                    \
@@ -501,7 +485,6 @@
   F(InitializeVarGlobal, 3, 1)             \
   F(InitializeConstGlobal, 2, 1)           \
   F(DeclareLookupSlot, 3, 1)               \
-  F(InitializeLegacyConstLookupSlot, 3, 1) \
   F(NewSloppyArguments_Generic, 1, 1)      \
   F(NewStrictArguments, 1, 1)              \
   F(NewRestParameter, 1, 1)                \
@@ -861,6 +844,7 @@
   F(FlattenString, 1, 1)                  \
   F(StringCharFromCode, 1, 1)             \
   F(StringCharAt, 2, 1)                   \
+  F(ExternalStringGetChar, 2, 1)          \
   F(OneByteSeqStringGetChar, 2, 1)        \
   F(OneByteSeqStringSetChar, 3, 1)        \
   F(TwoByteSeqStringGetChar, 2, 1)        \
@@ -892,6 +876,7 @@
   F(SetAllocationTimeout, -1 /* 2 || 3 */, 1) \
   F(DebugPrint, 1, 1)                         \
   F(DebugTrace, 0, 1)                         \
+  F(GetExceptionDetails, 1, 1)                \
   F(GlobalPrint, 1, 1)                        \
   F(SystemBreak, 0, 1)                        \
   F(SetFlags, 1, 1)                           \
@@ -1019,7 +1004,6 @@
   FOR_EACH_INTRINSIC_MATHS(F)               \
   FOR_EACH_INTRINSIC_NUMBERS(F)             \
   FOR_EACH_INTRINSIC_OBJECT(F)              \
-  FOR_EACH_INTRINSIC_OBSERVE(F)             \
   FOR_EACH_INTRINSIC_OPERATORS(F)           \
   FOR_EACH_INTRINSIC_PROXY(F)               \
   FOR_EACH_INTRINSIC_REGEXP(F)              \
@@ -1110,6 +1094,12 @@
   MUST_USE_RESULT static MaybeHandle<Object> GetObjectProperty(
       Isolate* isolate, Handle<Object> object, Handle<Object> key);
 
+  MUST_USE_RESULT static MaybeHandle<Object> BasicJsonStringify(
+      Isolate* isolate, Handle<Object> object);
+
+  MUST_USE_RESULT static MaybeHandle<Object> BasicJsonStringifyString(
+      Isolate* isolate, Handle<String> string);
+
   enum TypedArrayId {
     // arrayIds below should be synchronized with typedarray.js natives.
     ARRAY_ID_UINT8 = 1,
@@ -1129,11 +1119,6 @@
                                    ElementsKind* fixed_elements_kind,
                                    size_t* element_size);
 
-  // Used in runtime.cc and hydrogen's VisitArrayLiteral.
-  MUST_USE_RESULT static MaybeHandle<Object> CreateArrayLiteralBoilerplate(
-      Isolate* isolate, Handle<LiteralsArray> literals,
-      Handle<FixedArray> elements);
-
   static MaybeHandle<JSArray> GetInternalProperties(Isolate* isolate,
                                                     Handle<Object>);
 };
diff --git a/src/s390/assembler-s390-inl.h b/src/s390/assembler-s390-inl.h
index 400d543..b5ace13 100644
--- a/src/s390/assembler-s390-inl.h
+++ b/src/s390/assembler-s390-inl.h
@@ -93,11 +93,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Assembler::target_address_at(pc_, host_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_) ||
          rmode_ == EMBEDDED_OBJECT || rmode_ == EXTERNAL_REFERENCE);
@@ -156,19 +151,6 @@
   return code_targets_[index];
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Assembler::set_target_address_at(isolate_, pc_, host_, updated_reference,
-                                   icache_flush_mode);
-}
-
 Object* RelocInfo::target_object() {
   DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
   return reinterpret_cast<Object*>(Assembler::target_address_at(pc_, host_));
@@ -312,6 +294,7 @@
   }
 }
 
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/s390/assembler-s390.cc b/src/s390/assembler-s390.cc
index 35ba431..9aa2aab 100644
--- a/src/s390/assembler-s390.cc
+++ b/src/s390/assembler-s390.cc
@@ -217,6 +217,44 @@
 
 bool RelocInfo::IsInConstantPool() { return false; }
 
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Assembler::target_address_at(pc_, host_);
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return static_cast<uint32_t>(
+      reinterpret_cast<intptr_t>(Assembler::target_address_at(pc_, host_)));
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_)) {
+    Address updated_memory_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_memory_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_memory_reference &&
+           updated_memory_reference < new_base + new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, updated_memory_reference, icache_flush_mode);
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Assembler::set_target_address_at(
+        isolate_, pc_, host_, reinterpret_cast<Address>(updated_size_reference),
+        icache_flush_mode);
+  } else {
+    UNREACHABLE();
+  }
+}
+
 // -----------------------------------------------------------------------------
 // Implementation of Operand and MemOperand
 // See assembler-s390-inl.h for inlined constructors
diff --git a/src/s390/assembler-s390.h b/src/s390/assembler-s390.h
index 0b9fa38..28cdbb6 100644
--- a/src/s390/assembler-s390.h
+++ b/src/s390/assembler-s390.h
@@ -90,6 +90,8 @@
   V(d0)  V(d1)  V(d2)  V(d3)  V(d4)  V(d5)  V(d6)  V(d7)  \
   V(d8)  V(d9)  V(d10) V(d11) V(d12) V(d13) V(d14) V(d15)
 
+#define FLOAT_REGISTERS DOUBLE_REGISTERS
+
 #define ALLOCATABLE_DOUBLE_REGISTERS(V)                   \
   V(d1)  V(d2)  V(d3)  V(d4)  V(d5)  V(d6)  V(d7)         \
   V(d8)  V(d9)  V(d10) V(d11) V(d12) V(d15) V(d0)
@@ -221,7 +223,10 @@
   int reg_code;
 };
 
-typedef DoubleRegister DoubleRegister;
+typedef DoubleRegister FloatRegister;
+
+// TODO(john.yan) Define SIMD registers.
+typedef DoubleRegister Simd128Register;
 
 #define DECLARE_REGISTER(R) \
   const DoubleRegister R = {DoubleRegister::kCode_##R};
@@ -265,9 +270,6 @@
 const CRegister cr6 = {6};
 const CRegister cr7 = {7};
 
-// TODO(john.yan) Define SIMD registers.
-typedef DoubleRegister Simd128Register;
-
 // -----------------------------------------------------------------------------
 // Machine instruction Operands
 
@@ -1241,7 +1243,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   // Writes a single byte or word of data in the code stream.  Used
   // for inline tables, e.g., jump-tables.
diff --git a/src/s390/builtins-s390.cc b/src/s390/builtins-s390.cc
index 12b52c1..8c2283f 100644
--- a/src/s390/builtins-s390.cc
+++ b/src/s390/builtins-s390.cc
@@ -596,15 +596,10 @@
     // r2: number of arguments
     // r3: constructor function
     // r5: new target
-    if (is_api_function) {
-      __ LoadP(cp, FieldMemOperand(r3, JSFunction::kContextOffset));
-      Handle<Code> code = masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ Call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(r2);
-      __ InvokeFunction(r3, r5, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+
+    ParameterCount actual(r2);
+    __ InvokeFunction(r3, r5, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -693,6 +688,150 @@
   Generate_JSConstructStubHelper(masm, false, false, true);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r2 : the value to pass to the generator
+  //  -- r3 : the JSGeneratorObject to resume
+  //  -- r4 : the resume mode (tagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(r3);
+
+  // Store input value into generator object.
+  __ StoreP(r2, FieldMemOperand(r3, JSGeneratorObject::kInputOffset), r0);
+  __ RecordWriteField(r3, JSGeneratorObject::kInputOffset, r2, r5,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ StoreP(r4, FieldMemOperand(r3, JSGeneratorObject::kResumeModeOffset));
+
+  // Load suspended function and context.
+  __ LoadP(cp, FieldMemOperand(r3, JSGeneratorObject::kContextOffset));
+  __ LoadP(r6, FieldMemOperand(r3, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  __ mov(ip, Operand(step_in_enabled));
+  __ LoadlB(ip, MemOperand(ip));
+  __ CmpP(ip, Operand::Zero());
+  __ beq(&skip_flooding);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r3, r4, r6);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(r3, r4);
+    __ LoadP(r6, FieldMemOperand(r3, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Push receiver.
+  __ LoadP(ip, FieldMemOperand(r3, JSGeneratorObject::kReceiverOffset));
+  __ Push(ip);
+
+  // ----------- S t a t e -------------
+  //  -- r3    : the JSGeneratorObject to resume
+  //  -- r4    : the resume mode (tagged)
+  //  -- r6    : generator function
+  //  -- cp    : generator context
+  //  -- lr    : return address
+  //  -- sp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ LoadP(r5, FieldMemOperand(r6, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadW(
+      r2, FieldMemOperand(r5, SharedFunctionInfo::kFormalParameterCountOffset));
+  {
+    Label loop, done_loop;
+    __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
+#if V8_TARGET_ARCH_S390X
+    __ CmpP(r2, Operand::Zero());
+    __ beq(&done_loop);
+#else
+    __ SmiUntag(r2);
+    __ LoadAndTestP(r2, r2);
+    __ beq(&done_loop);
+#endif
+    __ LoadRR(r1, r2);
+    __ bind(&loop);
+    __ push(ip);
+    __ BranchOnCount(r1, &loop);
+    __ bind(&done_loop);
+  }
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ LoadP(r5, FieldMemOperand(r5, SharedFunctionInfo::kFunctionDataOffset));
+  __ CompareObjectType(r5, r5, r5, BYTECODE_ARRAY_TYPE);
+  __ bne(&old_generator, Label::kNear);
+
+  // New-style (ignition/turbofan) generator object
+  {
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ LoadRR(r5, r3);
+    __ LoadRR(r3, r6);
+    __ LoadP(ip, FieldMemOperand(r3, JSFunction::kCodeEntryOffset));
+    __ JumpToJSEntry(ip);
+  }
+  // Old-style (full-codegen) generator object
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ PushStandardFrame(r6);
+
+    // Restore the operand stack.
+    __ LoadP(r2, FieldMemOperand(r3, JSGeneratorObject::kOperandStackOffset));
+    __ LoadP(r5, FieldMemOperand(r2, FixedArray::kLengthOffset));
+    __ AddP(r2, r2,
+            Operand(FixedArray::kHeaderSize - kHeapObjectTag - kPointerSize));
+    {
+      Label loop, done_loop;
+      __ SmiUntag(r5);
+      __ LoadAndTestP(r5, r5);
+      __ beq(&done_loop);
+      __ LoadRR(r1, r5);
+      __ bind(&loop);
+      __ LoadP(ip, MemOperand(r2, kPointerSize));
+      __ la(r2, MemOperand(r2, kPointerSize));
+      __ Push(ip);
+      __ BranchOnCount(r1, &loop);
+      __ bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ LoadRoot(ip, Heap::kEmptyFixedArrayRootIndex);
+    __ StoreP(ip, FieldMemOperand(r3, JSGeneratorObject::kOperandStackOffset),
+              r0);
+
+    // Resume the generator function at the continuation.
+    __ LoadP(r5, FieldMemOperand(r6, JSFunction::kSharedFunctionInfoOffset));
+    __ LoadP(r5, FieldMemOperand(r5, SharedFunctionInfo::kCodeOffset));
+    __ AddP(r5, r5, Operand(Code::kHeaderSize - kHeapObjectTag));
+    {
+      ConstantPoolUnavailableScope constant_pool_unavailable(masm);
+      __ LoadP(r4, FieldMemOperand(r3, JSGeneratorObject::kContinuationOffset));
+      __ SmiUntag(r4);
+      __ AddP(r5, r5, r4);
+      __ LoadSmiLiteral(r4,
+                        Smi::FromInt(JSGeneratorObject::kGeneratorExecuting));
+      __ StoreP(r4, FieldMemOperand(r3, JSGeneratorObject::kContinuationOffset),
+                r0);
+      __ LoadRR(r2, r3);  // Continuation expects generator object in r2.
+      __ Jump(r5);
+    }
+  }
+}
+
 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
   FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
   __ push(r3);
@@ -835,14 +974,16 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
   FrameScope frame_scope(masm, StackFrame::MANUAL);
   __ PushStandardFrame(r3);
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into kInterpreterBytecodeRegister.
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ LoadP(r2, FieldMemOperand(r3, JSFunction::kSharedFunctionInfoOffset));
   Label array_done;
   Register debug_info = r4;
@@ -858,8 +999,13 @@
            FieldMemOperand(debug_info, DebugInfo::kAbstractCodeIndex));
   __ bind(&array_done);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ CompareRoot(kInterpreterBytecodeArrayRegister,
+                 Heap::kUndefinedValueRootIndex);
+  __ beq(&bytecode_array_not_present);
+
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ TestIfSmi(kInterpreterBytecodeArrayRegister);
     __ Assert(ne, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
     __ CompareObjectType(kInterpreterBytecodeArrayRegister, r2, no_reg,
@@ -867,9 +1013,13 @@
     __ Assert(eq, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
   }
 
-  // Push new.target, bytecode array and zero for bytecode array offset.
-  __ LoadImmP(r2, Operand::Zero());
-  __ Push(r5, kInterpreterBytecodeArrayRegister, r2);
+  // Load the initial bytecode offset.
+  __ mov(kInterpreterBytecodeOffsetRegister,
+         Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
+
+  // Push new.target, bytecode array and Smi tagged bytecode array offset.
+  __ SmiTag(r4, kInterpreterBytecodeOffsetRegister);
+  __ Push(r5, kInterpreterBytecodeArrayRegister, r4);
 
   // Allocate the local and temporary register file on the stack.
   {
@@ -901,18 +1051,8 @@
     __ bind(&no_args);
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load accumulator, register file, bytecode offset, dispatch table into
-  // registers.
+  // Load accumulator and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ AddP(kInterpreterRegisterFileRegister, fp,
-          Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
-  __ mov(kInterpreterBytecodeOffsetRegister,
-         Operand(BytecodeArray::kHeaderSize - kHeapObjectTag));
   __ mov(kInterpreterDispatchTableRegister,
          Operand(ExternalReference::interpreter_dispatch_table_address(
              masm->isolate())));
@@ -922,32 +1062,33 @@
                            kInterpreterBytecodeOffsetRegister));
   __ ShiftLeftP(ip, r3, Operand(kPointerSizeLog2));
   __ LoadP(ip, MemOperand(kInterpreterDispatchTableRegister, ip));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ AddP(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Call(ip);
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
-}
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
+  // The return value is in r2.
 
-  // The return value is in accumulator, which is already in r2.
+  // Get the arguments + reciever count.
+  __ LoadP(r4, MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ LoadlW(r4, FieldMemOperand(r4, BytecodeArray::kParameterSizeOffset));
 
   // Leave the frame (also dropping the register file).
   __ LeaveFrame(StackFrame::JAVA_SCRIPT);
 
-  // Drop receiver + arguments and return.
-  __ LoadlW(r0, FieldMemOperand(kInterpreterBytecodeArrayRegister,
-                                BytecodeArray::kParameterSizeOffset));
-  __ AddP(sp, sp, r0);
+  __ lay(sp, MemOperand(sp, r4));
   __ Ret();
+
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ bind(&bytecode_array_not_present);
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+  __ LoadP(r6, FieldMemOperand(r3, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadP(r6, FieldMemOperand(r6, SharedFunctionInfo::kCodeOffset));
+  __ AddP(r6, r6, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ StoreP(r6, FieldMemOperand(r3, JSFunction::kCodeEntryOffset), r0);
+  __ RecordWriteCodeEntryField(r3, r6, r7);
+  __ JumpToJSEntry(r6);
 }
 
 static void Generate_InterpreterPushArgs(MacroAssembler* masm, Register index,
@@ -1010,24 +1151,24 @@
   __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
 }
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register and dispatch table register.
-  __ AddP(kInterpreterRegisterFileRegister, fp,
-          Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ Move(r4, masm->isolate()->builtins()->InterpreterEntryTrampoline());
+  __ AddP(r14, r4, Operand(interpreter_entry_return_pc_offset->value() +
+                           Code::kHeaderSize - kHeapObjectTag));
+
+  // Initialize the dispatch table register.
   __ mov(kInterpreterDispatchTableRegister,
          Operand(ExternalReference::interpreter_dispatch_table_address(
              masm->isolate())));
 
-  // Get the context from the frame.
-  __ LoadP(kContextRegister,
-           MemOperand(kInterpreterRegisterFileRegister,
-                      InterpreterFrameConstants::kContextFromRegisterPointer));
-
   // Get the bytecode array pointer from the frame.
-  __ LoadP(
-      kInterpreterBytecodeArrayRegister,
-      MemOperand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+  __ LoadP(kInterpreterBytecodeArrayRegister,
+           MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -1040,9 +1181,7 @@
 
   // Get the target bytecode offset from the frame.
   __ LoadP(kInterpreterBytecodeOffsetRegister,
-           MemOperand(
-               kInterpreterRegisterFileRegister,
-               InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+           MemOperand(fp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiUntag(kInterpreterBytecodeOffsetRegister);
 
   // Dispatch to the target bytecode.
@@ -1050,59 +1189,157 @@
                            kInterpreterBytecodeOffsetRegister));
   __ ShiftLeftP(ip, r3, Operand(kPointerSizeLog2));
   __ LoadP(ip, MemOperand(kInterpreterDispatchTableRegister, ip));
-  __ AddP(ip, ip, Operand(Code::kHeaderSize - kHeapObjectTag));
   __ Jump(ip);
 }
 
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ LoadSmiLiteral(r3, Smi::FromInt(static_cast<int>(type)));
-    __ Push(r3);
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register.
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ mov(r14,
-         Operand(masm->isolate()->builtins()->InterpreterEntryTrampoline()));
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r2 : argument count (preserved for callee)
+  //  -- r5 : new target (preserved for callee)
+  //  -- r3 : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register closure = r3;
+  Register map = r8;
+  Register index = r4;
+  __ LoadP(map,
+           FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadP(map,
+           FieldMemOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ LoadP(index, FieldMemOperand(map, FixedArray::kLengthOffset));
+  __ CmpSmiLiteral(index, Smi::FromInt(2), r0);
+  __ blt(&gotta_call_runtime);
+
+  // Find literals.
+  // r9 : native context
+  // r4  : length / index
+  // r8  : optimized code map
+  // r5  : new target
+  // r3  : closure
+  Register native_context = r9;
+  __ LoadP(native_context, NativeContextMemOperand());
+
+  __ bind(&loop_top);
+  Register temp = r1;
+  Register array_pointer = r7;
+
+  // Does the native context match?
+  __ SmiToPtrArrayOffset(array_pointer, index);
+  __ AddP(array_pointer, map, array_pointer);
+  __ LoadP(temp, FieldMemOperand(array_pointer,
+                                 SharedFunctionInfo::kOffsetToPreviousContext));
+  __ LoadP(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ CmpP(temp, native_context);
+  __ bne(&loop_bottom, Label::kNear);
+  // OSR id set to none?
+  __ LoadP(temp,
+           FieldMemOperand(array_pointer,
+                           SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  const int bailout_id = BailoutId::None().ToInt();
+  __ CmpSmiLiteral(temp, Smi::FromInt(bailout_id), r0);
+  __ bne(&loop_bottom, Label::kNear);
+  // Literals available?
+  __ LoadP(temp,
+           FieldMemOperand(array_pointer,
+                           SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ LoadP(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ StoreP(temp, FieldMemOperand(closure, JSFunction::kLiteralsOffset), r0);
+  __ RecordWriteField(closure, JSFunction::kLiteralsOffset, temp, r6,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+
+  // Code available?
+  Register entry = r6;
+  __ LoadP(entry,
+           FieldMemOperand(array_pointer,
+                           SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ LoadP(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  // Store code entry in the closure.
+  __ AddP(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+
+  Label install_optimized_code_and_tailcall;
+  __ bind(&install_optimized_code_and_tailcall);
+  __ StoreP(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset), r0);
+  __ RecordWriteCodeEntryField(closure, entry, r7);
+
+  // Link the closure into the optimized function list.
+  // r6 : code entry
+  // r9: native context
+  // r3 : closure
+  __ LoadP(
+      r7, ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ StoreP(r7, FieldMemOperand(closure, JSFunction::kNextFunctionLinkOffset),
+            r0);
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, r7, temp,
+                      kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
+                      OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ StoreP(
+      closure,
+      ContextMemOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST), r0);
+  // Save closure before the write barrier.
+  __ LoadRR(r7, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, r7, temp,
+                            kLRHasNotBeenSaved, kDontSaveFPRegs);
+  __ JumpToJSEntry(entry);
+
+  __ bind(&loop_bottom);
+  __ SubSmiLiteral(index, index, Smi::FromInt(SharedFunctionInfo::kEntryLength),
+                   r0);
+  __ CmpSmiLiteral(index, Smi::FromInt(1), r0);
+  __ bgt(&loop_top);
+
+  // We found neither literals nor code.
+  __ b(&gotta_call_runtime);
+
+  __ bind(&maybe_call_runtime);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ LoadP(entry,
+           FieldMemOperand(map, FixedArray::kHeaderSize +
+                                    SharedFunctionInfo::kSharedCodeIndex));
+  __ LoadP(entry, FieldMemOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ AddP(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ b(&install_optimized_code_and_tailcall);
+
+  __ bind(&try_shared);
+  // Is the full code valid?
+  __ LoadP(entry,
+           FieldMemOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadP(entry, FieldMemOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ LoadlW(r7, FieldMemOperand(entry, Code::kFlagsOffset));
+  __ DecodeField<Code::KindField>(r7);
+  __ CmpP(r7, Operand(Code::BUILTIN));
+  __ beq(&gotta_call_runtime);
+  // Yes, install the full code.
+  __ AddP(entry, entry, Operand(Code::kHeaderSize - kHeapObjectTag));
+  __ StoreP(entry, FieldMemOperand(closure, JSFunction::kCodeEntryOffset), r0);
+  __ RecordWriteCodeEntryField(closure, entry, r7);
+  __ JumpToJSEntry(entry);
+
+  __ bind(&gotta_call_runtime);
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
+
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
                                  Runtime::kCompileOptimized_NotConcurrent);
@@ -1242,14 +1479,19 @@
   __ SmiUntag(r8);
   // Switch on the state.
   Label with_tos_register, unknown_state;
-  __ CmpP(r8, Operand(FullCodeGenerator::NO_REGISTERS));
+  __ CmpP(
+      r8,
+      Operand(static_cast<intptr_t>(Deoptimizer::BailoutState::NO_REGISTERS)));
   __ bne(&with_tos_register);
   __ la(sp, MemOperand(sp, 1 * kPointerSize));  // Remove state.
   __ Ret();
 
   __ bind(&with_tos_register);
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), r2.code());
   __ LoadP(r2, MemOperand(sp, 1 * kPointerSize));
-  __ CmpP(r8, Operand(FullCodeGenerator::TOS_REG));
+  __ CmpP(
+      r8,
+      Operand(static_cast<intptr_t>(Deoptimizer::BailoutState::TOS_REGISTER)));
   __ bne(&unknown_state);
   __ la(sp, MemOperand(sp, 2 * kPointerSize));  // Remove state.
   __ Ret();
@@ -1457,28 +1699,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- r2    : argc
-  //  -- sp[0] : first argument (left-hand side)
-  //  -- sp[4] : receiver (right-hand side)
-  // -----------------------------------
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ LoadP(InstanceOfDescriptor::LeftRegister(),
-             MemOperand(fp, 2 * kPointerSize));  // Load left-hand side.
-    __ LoadP(InstanceOfDescriptor::RightRegister(),
-             MemOperand(fp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ Ret(2);
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- r2    : argc
@@ -2416,6 +2636,31 @@
           RelocInfo::CODE_TARGET);
 }
 
+// static
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r3 : requested object size (untagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ SmiTag(r3);
+  __ Push(r3);
+  __ LoadSmiLiteral(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
+}
+
+// static
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- r3 : requested object size (untagged)
+  //  -- lr : return address
+  // -----------------------------------
+  __ SmiTag(r3);
+  __ LoadSmiLiteral(r4, Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ Push(r3, r4);
+  __ LoadSmiLiteral(cp, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
+}
+
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- r2 : actual number of arguments
diff --git a/src/s390/code-stubs-s390.cc b/src/s390/code-stubs-s390.cc
index 1c7d27b..e1e2003 100644
--- a/src/s390/code-stubs-s390.cc
+++ b/src/s390/code-stubs-s390.cc
@@ -51,11 +51,6 @@
   }
 }
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -66,11 +61,6 @@
   InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
 }
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(r2, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -1377,125 +1367,6 @@
   __ b(r14);
 }
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = r3;              // Object (lhs).
-  Register const function = r2;            // Function (rhs).
-  Register const object_map = r4;          // Map of {object}.
-  Register const function_map = r5;        // Map of {function}.
-  Register const function_prototype = r6;  // Prototype of {function}.
-  Register const scratch = r7;
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ LoadP(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ CompareRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ bne(&fast_case);
-  __ CompareRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-  __ bne(&fast_case);
-  __ LoadRoot(r2, Heap::kInstanceofCacheAnswerRootIndex);
-  __ Ret();
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ CompareObjectType(function, function_map, scratch, JS_FUNCTION_TYPE);
-  __ bne(&slow_case);
-  __ LoadRoot(r2, Heap::kFalseValueRootIndex);
-  __ Ret();
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ CompareObjectType(function, function_map, scratch, JS_FUNCTION_TYPE);
-  __ bne(&slow_case);
-
-  // Go to the runtime if the function is not a constructor.
-  __ LoadlB(scratch, FieldMemOperand(function_map, Map::kBitFieldOffset));
-  __ TestBit(scratch, Map::kIsConstructor, r0);
-  __ beq(&slow_case);
-
-  // Ensure that {function} has an instance prototype.
-  __ TestBit(scratch, Map::kHasNonInstancePrototype, r0);
-  __ bne(&slow_case);
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ LoadP(function_prototype,
-           FieldMemOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  __ CompareObjectType(function_prototype, scratch, scratch, MAP_TYPE);
-  __ bne(&function_prototype_valid);
-  __ LoadP(function_prototype,
-           FieldMemOperand(function_prototype, Map::kPrototypeOffset));
-  __ bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Register const object_instance_type = function_map;
-  Register const map_bit_field = function_map;
-  Register const null = scratch;
-  Register const result = r2;
-
-  Label done, loop, fast_runtime_fallback;
-  __ LoadRoot(result, Heap::kTrueValueRootIndex);
-  __ LoadRoot(null, Heap::kNullValueRootIndex);
-  __ bind(&loop);
-
-  // Check if the object needs to be access checked.
-  __ LoadlB(map_bit_field, FieldMemOperand(object_map, Map::kBitFieldOffset));
-  __ TestBit(map_bit_field, Map::kIsAccessCheckNeeded, r0);
-  __ bne(&fast_runtime_fallback);
-  // Check if the current object is a Proxy.
-  __ CompareInstanceType(object_map, object_instance_type, JS_PROXY_TYPE);
-  __ beq(&fast_runtime_fallback);
-
-  __ LoadP(object, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ CmpP(object, function_prototype);
-  __ beq(&done);
-  __ CmpP(object, null);
-  __ LoadP(object_map, FieldMemOperand(object, HeapObject::kMapOffset));
-  __ bne(&loop);
-  __ LoadRoot(result, Heap::kFalseValueRootIndex);
-  __ bind(&done);
-  __ StoreRoot(result, Heap::kInstanceofCacheAnswerRootIndex);
-  __ Ret();
-
-  // Found Proxy or access check needed: Call the runtime
-  __ bind(&fast_runtime_fallback);
-  __ Push(object, function_prototype);
-  // Invalidate the instanceof cache.
-  __ LoadSmiLiteral(scratch, Smi::FromInt(0));
-  __ StoreRoot(scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ Push(object, function);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
 void FunctionPrototypeStub::Generate(MacroAssembler* masm) {
   Label miss;
   Register receiver = LoadDescriptor::ReceiverRegister();
@@ -3898,8 +3769,8 @@
   __ bind(&not_array);
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ bne(&miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
                                                receiver, name, feedback,
                                                receiver_map, scratch1, r9);
@@ -4033,8 +3904,8 @@
   __ bind(&not_array);
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ bne(&miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(
       masm, Code::STORE_IC, code_flags, receiver, key, feedback, receiver_map,
       scratch1, scratch2);
@@ -4625,15 +4496,15 @@
   __ bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ StoreP(r4, MemOperand(r2, JSObject::kMapOffset));
+  __ StoreP(r4, FieldMemOperand(r2, JSObject::kMapOffset));
   __ LoadRoot(r5, Heap::kEmptyFixedArrayRootIndex);
-  __ StoreP(r5, MemOperand(r2, JSObject::kPropertiesOffset));
-  __ StoreP(r5, MemOperand(r2, JSObject::kElementsOffset));
+  __ StoreP(r5, FieldMemOperand(r2, JSObject::kPropertiesOffset));
+  __ StoreP(r5, FieldMemOperand(r2, JSObject::kElementsOffset));
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
-  __ AddP(r3, r2, Operand(JSObject::kHeaderSize));
+  __ AddP(r3, r2, Operand(JSObject::kHeaderSize - kHeapObjectTag));
 
   // ----------- S t a t e -------------
-  //  -- r2 : result (untagged)
+  //  -- r2 : result (tagged)
   //  -- r3 : result fields (untagged)
   //  -- r7 : result end (untagged)
   //  -- r4 : initial map
@@ -4653,8 +4524,6 @@
     // Initialize all in-object fields with undefined.
     __ InitializeFieldsWithFiller(r3, r7, r8);
 
-    // Add the object tag to make the JSObject real.
-    __ AddP(r2, r2, Operand(kHeapObjectTag));
     __ Ret();
   }
   __ bind(&slack_tracking);
@@ -4674,9 +4543,6 @@
     __ LoadRoot(r8, Heap::kOnePointerFillerMapRootIndex);
     __ InitializeFieldsWithFiller(r3, r7, r8);
 
-    // Add the object tag to make the JSObject real.
-    __ AddP(r2, r2, Operand(kHeapObjectTag));
-
     // Check if we can finalize the instance size.
     __ CmpP(r9, Operand(Map::kSlackTrackingCounterEnd));
     __ Ret(ne);
@@ -4702,10 +4568,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(r4);
   }
-  __ SubP(r2, r2, Operand(kHeapObjectTag));
   __ LoadlB(r7, FieldMemOperand(r4, Map::kInstanceSizeOffset));
   __ ShiftLeftP(r7, r7, Operand(kPointerSizeLog2));
   __ AddP(r7, r2, r7);
+  __ SubP(r7, r7, Operand(kHeapObjectTag));
   __ b(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4723,20 +4589,20 @@
   // -----------------------------------
   __ AssertFunction(r3);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make r4 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ LoadRR(r4, fp);
-    __ b(&loop_entry);
-    __ bind(&loop);
+  // Make r4 point to the JavaScript frame.
+  __ LoadRR(r4, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ LoadP(r4, MemOperand(r4, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ LoadP(ip, MemOperand(r4, StandardFrameConstants::kFunctionOffset));
     __ CmpP(ip, r3);
-    __ bne(&loop);
+    __ b(&ok, Label::kNear);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4770,7 +4636,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, r2, r3, r4, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, r2, r3, r4, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the rest parameter array in r0.
@@ -4813,7 +4679,7 @@
     Label allocate, done_allocate;
     __ mov(r3, Operand(JSArray::kSize + FixedArray::kHeaderSize));
     __ AddP(r3, r3, r8);
-    __ Allocate(r3, r5, r6, r7, &allocate, TAG_OBJECT);
+    __ Allocate(r3, r5, r6, r7, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in r5.
@@ -4870,6 +4736,22 @@
   // -----------------------------------
   __ AssertFunction(r3);
 
+  // Make r9 point to the JavaScript frame.
+  __ LoadRR(r9, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ LoadP(r9, MemOperand(r9, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ LoadP(ip, MemOperand(r9, StandardFrameConstants::kFunctionOffset));
+    __ CmpP(ip, r3);
+    __ beq(&ok, Label::kNear);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
+  }
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
   __ LoadP(r4, FieldMemOperand(r3, JSFunction::kSharedFunctionInfoOffset));
   __ LoadW(
@@ -4878,19 +4760,20 @@
   __ SmiTag(r4);
 #endif
   __ SmiToPtrArrayOffset(r5, r4);
-  __ AddP(r5, fp, r5);
+  __ AddP(r5, r9, r5);
   __ AddP(r5, r5, Operand(StandardFrameConstants::kCallerSPOffset));
 
   // r3 : function
   // r4 : number of parameters (tagged)
   // r5 : parameters pointer
+  // r9 : JavaScript frame pointer
   // Registers used over whole function:
   // r7 : arguments count (tagged)
   // r8 : mapped parameter count (tagged)
 
   // Check if the calling frame is an arguments adaptor frame.
   Label adaptor_frame, try_allocate, runtime;
-  __ LoadP(r6, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
+  __ LoadP(r6, MemOperand(r9, StandardFrameConstants::kCallerFPOffset));
   __ LoadP(r2, MemOperand(r6, CommonFrameConstants::kContextOrFrameTypeOffset));
   __ CmpSmiLiteral(r2, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR), r0);
   __ beq(&adaptor_frame);
@@ -4943,7 +4826,7 @@
   __ AddP(r1, r1, Operand(JSSloppyArgumentsObject::kSize));
 
   // Do the allocation of all three objects in one go.
-  __ Allocate(r1, r2, r1, r6, &runtime, TAG_OBJECT);
+  __ Allocate(r1, r2, r1, r6, &runtime, NO_ALLOCATION_FLAGS);
 
   // r2 = address of new object(s) (tagged)
   // r4 = argument count (smi-tagged)
@@ -5107,20 +4990,20 @@
   // -----------------------------------
   __ AssertFunction(r3);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make r4 point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ LoadRR(r4, fp);
-    __ b(&loop_entry);
-    __ bind(&loop);
+  // Make r4 point to the JavaScript frame.
+  __ LoadRR(r4, fp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ LoadP(r4, MemOperand(r4, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ LoadP(ip, MemOperand(r4, StandardFrameConstants::kFunctionOffset));
     __ CmpP(ip, r3);
-    __ bne(&loop);
+    __ beq(&ok, Label::kNear);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -5161,7 +5044,7 @@
   Label allocate, done_allocate;
   __ mov(r3, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
   __ AddP(r3, r3, r8);
-  __ Allocate(r3, r5, r6, r7, &allocate, TAG_OBJECT);
+  __ Allocate(r3, r5, r6, r7, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in r5.
@@ -5533,7 +5416,11 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
+
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
 
   // context save
   __ push(context);
@@ -5569,10 +5456,10 @@
   // it's not controlled by GC.
   // S390 LINUX ABI:
   //
-  // Create 5 extra slots on stack:
+  // Create 4 extra slots on stack:
   //    [0] space for DirectCEntryStub's LR save
-  //    [1-4] FunctionCallbackInfo
-  const int kApiStackSpace = 5;
+  //    [1-3] FunctionCallbackInfo
+  const int kApiStackSpace = 4;
   const int kFunctionCallbackInfoOffset =
       (kStackFrameExtraParamSlot + 1) * kPointerSize;
 
@@ -5591,9 +5478,6 @@
   // FunctionCallbackInfo::length_ = argc
   __ LoadImmP(ip, Operand(argc()));
   __ StoreW(ip, MemOperand(r2, 2 * kPointerSize));
-  // FunctionCallbackInfo::is_construct_call_ = 0
-  __ LoadImmP(ip, Operand::Zero());
-  __ StoreW(ip, MemOperand(r2, 2 * kPointerSize + kIntSize));
 
   ExternalReference thunk_ref =
       ExternalReference::invoke_function_callback(masm->isolate());
@@ -5610,9 +5494,9 @@
   }
   MemOperand return_value_operand(fp, return_value_offset * kPointerSize);
   int stack_space = 0;
-  MemOperand is_construct_call_operand =
-      MemOperand(sp, kFunctionCallbackInfoOffset + 2 * kPointerSize + kIntSize);
-  MemOperand* stack_space_operand = &is_construct_call_operand;
+  MemOperand length_operand =
+      MemOperand(sp, kFunctionCallbackInfoOffset + 2 * kPointerSize);
+  MemOperand* stack_space_operand = &length_operand;
   stack_space = argc() + FCA::kArgsLength + 1;
   stack_space_operand = NULL;
   CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, stack_space,
@@ -5621,18 +5505,39 @@
 }
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- sp[0]                        : name
-  //  -- sp[4 .. (4 + kArgsLength*4)] : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- r4                           : api_function_address
-  // -----------------------------------
-
-  Register api_function_address = ApiGetterDescriptor::function_address();
   int arg0Slot = 0;
   int accessorInfoSlot = 0;
   int apiStackSpace = 0;
-  DCHECK(api_function_address.is(r4));
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
+
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
+  Register scratch = r6;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
+
+  Register api_function_address = r4;
+
+  __ push(receiver);
+  // Push data from AccessorInfo.
+  __ LoadP(scratch, FieldMemOperand(callback, AccessorInfo::kDataOffset));
+  __ push(scratch);
+  __ LoadRoot(scratch, Heap::kUndefinedValueRootIndex);
+  __ Push(scratch, scratch);
+  __ mov(scratch, Operand(ExternalReference::isolate_address(isolate())));
+  __ Push(scratch, holder);
+  __ Push(Smi::FromInt(0));  // should_throw_on_error -> false
+  __ LoadP(scratch, FieldMemOperand(callback, AccessorInfo::kNameOffset));
+  __ push(scratch);
 
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
@@ -5680,6 +5585,10 @@
   ExternalReference thunk_ref =
       ExternalReference::invoke_accessor_getter_callback(isolate());
 
+  __ LoadP(scratch, FieldMemOperand(callback, AccessorInfo::kJsGetterOffset));
+  __ LoadP(api_function_address,
+           FieldMemOperand(scratch, Foreign::kForeignAddressOffset));
+
   // +3 is to skip prolog, return address and name handle.
   MemOperand return_value_operand(
       fp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize);
diff --git a/src/s390/codegen-s390.cc b/src/s390/codegen-s390.cc
index 6636a7c..fe94c94 100644
--- a/src/s390/codegen-s390.cc
+++ b/src/s390/codegen-s390.cc
@@ -172,7 +172,7 @@
   __ SmiToDoubleArrayOffset(r14, length);
   __ AddP(r14, Operand(FixedDoubleArray::kHeaderSize));
   __ Allocate(r14, array, r9, scratch2, &gc_required, DOUBLE_ALIGNMENT);
-
+  __ SubP(array, array, Operand(kHeapObjectTag));
   // Set destination FixedDoubleArray's length and map.
   __ LoadRoot(scratch2, Heap::kFixedDoubleArrayMapRootIndex);
   __ StoreP(length, MemOperand(array, FixedDoubleArray::kLengthOffset));
@@ -302,12 +302,12 @@
   __ AddP(array_size, r0);
   __ Allocate(array_size, array, allocate_scratch, scratch, &gc_required,
               NO_ALLOCATION_FLAGS);
-  // array: destination FixedArray, not tagged as heap object
+  // array: destination FixedArray, tagged as heap object
   // Set destination FixedDoubleArray's length and map.
   __ LoadRoot(scratch, Heap::kFixedArrayMapRootIndex);
-  __ StoreP(length, MemOperand(array, FixedDoubleArray::kLengthOffset));
-  __ StoreP(scratch, MemOperand(array, HeapObject::kMapOffset));
-  __ AddP(array, Operand(kHeapObjectTag));
+  __ StoreP(length, FieldMemOperand(array, FixedDoubleArray::kLengthOffset),
+            r0);
+  __ StoreP(scratch, FieldMemOperand(array, HeapObject::kMapOffset), r0);
 
   // Prepare for conversion loop.
   Register src_elements = elements;
diff --git a/src/s390/constants-s390.cc b/src/s390/constants-s390.cc
index a958082..da53613 100644
--- a/src/s390/constants-s390.cc
+++ b/src/s390/constants-s390.cc
@@ -9,6 +9,267 @@
 namespace v8 {
 namespace internal {
 
+Instruction::OpcodeFormatType Instruction::OpcodeFormatTable[] = {
+    // Based on Figure B-3 in z/Architecture Principles of
+    // Operation.
+    TWO_BYTE_OPCODE,           // 0x00
+    TWO_BYTE_OPCODE,           // 0x01
+    TWO_BYTE_DISJOINT_OPCODE,  // 0x02
+    TWO_BYTE_DISJOINT_OPCODE,  // 0x03
+    ONE_BYTE_OPCODE,           // 0x04
+    ONE_BYTE_OPCODE,           // 0x05
+    ONE_BYTE_OPCODE,           // 0x06
+    ONE_BYTE_OPCODE,           // 0x07
+    ONE_BYTE_OPCODE,           // 0x08
+    ONE_BYTE_OPCODE,           // 0x09
+    ONE_BYTE_OPCODE,           // 0x0a
+    ONE_BYTE_OPCODE,           // 0x0b
+    ONE_BYTE_OPCODE,           // 0x0c
+    ONE_BYTE_OPCODE,           // 0x0d
+    ONE_BYTE_OPCODE,           // 0x0e
+    ONE_BYTE_OPCODE,           // 0x0f
+    ONE_BYTE_OPCODE,           // 0x10
+    ONE_BYTE_OPCODE,           // 0x11
+    ONE_BYTE_OPCODE,           // 0x12
+    ONE_BYTE_OPCODE,           // 0x13
+    ONE_BYTE_OPCODE,           // 0x14
+    ONE_BYTE_OPCODE,           // 0x15
+    ONE_BYTE_OPCODE,           // 0x16
+    ONE_BYTE_OPCODE,           // 0x17
+    ONE_BYTE_OPCODE,           // 0x18
+    ONE_BYTE_OPCODE,           // 0x19
+    ONE_BYTE_OPCODE,           // 0x1a
+    ONE_BYTE_OPCODE,           // 0x1b
+    ONE_BYTE_OPCODE,           // 0x1c
+    ONE_BYTE_OPCODE,           // 0x1d
+    ONE_BYTE_OPCODE,           // 0x1e
+    ONE_BYTE_OPCODE,           // 0x1f
+    ONE_BYTE_OPCODE,           // 0x20
+    ONE_BYTE_OPCODE,           // 0x21
+    ONE_BYTE_OPCODE,           // 0x22
+    ONE_BYTE_OPCODE,           // 0x23
+    ONE_BYTE_OPCODE,           // 0x24
+    ONE_BYTE_OPCODE,           // 0x25
+    ONE_BYTE_OPCODE,           // 0x26
+    ONE_BYTE_OPCODE,           // 0x27
+    ONE_BYTE_OPCODE,           // 0x28
+    ONE_BYTE_OPCODE,           // 0x29
+    ONE_BYTE_OPCODE,           // 0x2a
+    ONE_BYTE_OPCODE,           // 0x2b
+    ONE_BYTE_OPCODE,           // 0x2c
+    ONE_BYTE_OPCODE,           // 0x2d
+    ONE_BYTE_OPCODE,           // 0x2e
+    ONE_BYTE_OPCODE,           // 0x2f
+    ONE_BYTE_OPCODE,           // 0x30
+    ONE_BYTE_OPCODE,           // 0x31
+    ONE_BYTE_OPCODE,           // 0x32
+    ONE_BYTE_OPCODE,           // 0x33
+    ONE_BYTE_OPCODE,           // 0x34
+    ONE_BYTE_OPCODE,           // 0x35
+    ONE_BYTE_OPCODE,           // 0x36
+    ONE_BYTE_OPCODE,           // 0x37
+    ONE_BYTE_OPCODE,           // 0x38
+    ONE_BYTE_OPCODE,           // 0x39
+    ONE_BYTE_OPCODE,           // 0x3a
+    ONE_BYTE_OPCODE,           // 0x3b
+    ONE_BYTE_OPCODE,           // 0x3c
+    ONE_BYTE_OPCODE,           // 0x3d
+    ONE_BYTE_OPCODE,           // 0x3e
+    ONE_BYTE_OPCODE,           // 0x3f
+    ONE_BYTE_OPCODE,           // 0x40
+    ONE_BYTE_OPCODE,           // 0x41
+    ONE_BYTE_OPCODE,           // 0x42
+    ONE_BYTE_OPCODE,           // 0x43
+    ONE_BYTE_OPCODE,           // 0x44
+    ONE_BYTE_OPCODE,           // 0x45
+    ONE_BYTE_OPCODE,           // 0x46
+    ONE_BYTE_OPCODE,           // 0x47
+    ONE_BYTE_OPCODE,           // 0x48
+    ONE_BYTE_OPCODE,           // 0x49
+    ONE_BYTE_OPCODE,           // 0x4a
+    ONE_BYTE_OPCODE,           // 0x4b
+    ONE_BYTE_OPCODE,           // 0x4c
+    ONE_BYTE_OPCODE,           // 0x4d
+    ONE_BYTE_OPCODE,           // 0x4e
+    ONE_BYTE_OPCODE,           // 0x4f
+    ONE_BYTE_OPCODE,           // 0x50
+    ONE_BYTE_OPCODE,           // 0x51
+    ONE_BYTE_OPCODE,           // 0x52
+    ONE_BYTE_OPCODE,           // 0x53
+    ONE_BYTE_OPCODE,           // 0x54
+    ONE_BYTE_OPCODE,           // 0x55
+    ONE_BYTE_OPCODE,           // 0x56
+    ONE_BYTE_OPCODE,           // 0x57
+    ONE_BYTE_OPCODE,           // 0x58
+    ONE_BYTE_OPCODE,           // 0x59
+    ONE_BYTE_OPCODE,           // 0x5a
+    ONE_BYTE_OPCODE,           // 0x5b
+    ONE_BYTE_OPCODE,           // 0x5c
+    ONE_BYTE_OPCODE,           // 0x5d
+    ONE_BYTE_OPCODE,           // 0x5e
+    ONE_BYTE_OPCODE,           // 0x5f
+    ONE_BYTE_OPCODE,           // 0x60
+    ONE_BYTE_OPCODE,           // 0x61
+    ONE_BYTE_OPCODE,           // 0x62
+    ONE_BYTE_OPCODE,           // 0x63
+    ONE_BYTE_OPCODE,           // 0x64
+    ONE_BYTE_OPCODE,           // 0x65
+    ONE_BYTE_OPCODE,           // 0x66
+    ONE_BYTE_OPCODE,           // 0x67
+    ONE_BYTE_OPCODE,           // 0x68
+    ONE_BYTE_OPCODE,           // 0x69
+    ONE_BYTE_OPCODE,           // 0x6a
+    ONE_BYTE_OPCODE,           // 0x6b
+    ONE_BYTE_OPCODE,           // 0x6c
+    ONE_BYTE_OPCODE,           // 0x6d
+    ONE_BYTE_OPCODE,           // 0x6e
+    ONE_BYTE_OPCODE,           // 0x6f
+    ONE_BYTE_OPCODE,           // 0x70
+    ONE_BYTE_OPCODE,           // 0x71
+    ONE_BYTE_OPCODE,           // 0x72
+    ONE_BYTE_OPCODE,           // 0x73
+    ONE_BYTE_OPCODE,           // 0x74
+    ONE_BYTE_OPCODE,           // 0x75
+    ONE_BYTE_OPCODE,           // 0x76
+    ONE_BYTE_OPCODE,           // 0x77
+    ONE_BYTE_OPCODE,           // 0x78
+    ONE_BYTE_OPCODE,           // 0x79
+    ONE_BYTE_OPCODE,           // 0x7a
+    ONE_BYTE_OPCODE,           // 0x7b
+    ONE_BYTE_OPCODE,           // 0x7c
+    ONE_BYTE_OPCODE,           // 0x7d
+    ONE_BYTE_OPCODE,           // 0x7e
+    ONE_BYTE_OPCODE,           // 0x7f
+    ONE_BYTE_OPCODE,           // 0x80
+    ONE_BYTE_OPCODE,           // 0x81
+    ONE_BYTE_OPCODE,           // 0x82
+    ONE_BYTE_OPCODE,           // 0x83
+    ONE_BYTE_OPCODE,           // 0x84
+    ONE_BYTE_OPCODE,           // 0x85
+    ONE_BYTE_OPCODE,           // 0x86
+    ONE_BYTE_OPCODE,           // 0x87
+    ONE_BYTE_OPCODE,           // 0x88
+    ONE_BYTE_OPCODE,           // 0x89
+    ONE_BYTE_OPCODE,           // 0x8a
+    ONE_BYTE_OPCODE,           // 0x8b
+    ONE_BYTE_OPCODE,           // 0x8c
+    ONE_BYTE_OPCODE,           // 0x8d
+    ONE_BYTE_OPCODE,           // 0x8e
+    ONE_BYTE_OPCODE,           // 0x8f
+    ONE_BYTE_OPCODE,           // 0x90
+    ONE_BYTE_OPCODE,           // 0x91
+    ONE_BYTE_OPCODE,           // 0x92
+    ONE_BYTE_OPCODE,           // 0x93
+    ONE_BYTE_OPCODE,           // 0x94
+    ONE_BYTE_OPCODE,           // 0x95
+    ONE_BYTE_OPCODE,           // 0x96
+    ONE_BYTE_OPCODE,           // 0x97
+    ONE_BYTE_OPCODE,           // 0x98
+    ONE_BYTE_OPCODE,           // 0x99
+    ONE_BYTE_OPCODE,           // 0x9a
+    ONE_BYTE_OPCODE,           // 0x9b
+    TWO_BYTE_DISJOINT_OPCODE,  // 0x9c
+    TWO_BYTE_DISJOINT_OPCODE,  // 0x9d
+    TWO_BYTE_DISJOINT_OPCODE,  // 0x9e
+    TWO_BYTE_DISJOINT_OPCODE,  // 0x9f
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xa0
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xa1
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xa2
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xa3
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xa4
+    THREE_NIBBLE_OPCODE,       // 0xa5
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xa6
+    THREE_NIBBLE_OPCODE,       // 0xa7
+    ONE_BYTE_OPCODE,           // 0xa8
+    ONE_BYTE_OPCODE,           // 0xa9
+    ONE_BYTE_OPCODE,           // 0xaa
+    ONE_BYTE_OPCODE,           // 0xab
+    ONE_BYTE_OPCODE,           // 0xac
+    ONE_BYTE_OPCODE,           // 0xad
+    ONE_BYTE_OPCODE,           // 0xae
+    ONE_BYTE_OPCODE,           // 0xaf
+    ONE_BYTE_OPCODE,           // 0xb0
+    ONE_BYTE_OPCODE,           // 0xb1
+    TWO_BYTE_OPCODE,           // 0xb2
+    TWO_BYTE_OPCODE,           // 0xb3
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xb4
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xb5
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xb6
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xb7
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xb8
+    TWO_BYTE_OPCODE,           // 0xb9
+    ONE_BYTE_OPCODE,           // 0xba
+    ONE_BYTE_OPCODE,           // 0xbb
+    ONE_BYTE_OPCODE,           // 0xbc
+    ONE_BYTE_OPCODE,           // 0xbd
+    ONE_BYTE_OPCODE,           // 0xbe
+    ONE_BYTE_OPCODE,           // 0xbf
+    THREE_NIBBLE_OPCODE,       // 0xc0
+    THREE_NIBBLE_OPCODE,       // 0xc1
+    THREE_NIBBLE_OPCODE,       // 0xc2
+    THREE_NIBBLE_OPCODE,       // 0xc3
+    THREE_NIBBLE_OPCODE,       // 0xc4
+    THREE_NIBBLE_OPCODE,       // 0xc5
+    THREE_NIBBLE_OPCODE,       // 0xc6
+    ONE_BYTE_OPCODE,           // 0xc7
+    THREE_NIBBLE_OPCODE,       // 0xc8
+    THREE_NIBBLE_OPCODE,       // 0xc9
+    THREE_NIBBLE_OPCODE,       // 0xca
+    THREE_NIBBLE_OPCODE,       // 0xcb
+    THREE_NIBBLE_OPCODE,       // 0xcc
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xcd
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xce
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xcf
+    ONE_BYTE_OPCODE,           // 0xd0
+    ONE_BYTE_OPCODE,           // 0xd1
+    ONE_BYTE_OPCODE,           // 0xd2
+    ONE_BYTE_OPCODE,           // 0xd3
+    ONE_BYTE_OPCODE,           // 0xd4
+    ONE_BYTE_OPCODE,           // 0xd5
+    ONE_BYTE_OPCODE,           // 0xd6
+    ONE_BYTE_OPCODE,           // 0xd7
+    ONE_BYTE_OPCODE,           // 0xd8
+    ONE_BYTE_OPCODE,           // 0xd9
+    ONE_BYTE_OPCODE,           // 0xda
+    ONE_BYTE_OPCODE,           // 0xdb
+    ONE_BYTE_OPCODE,           // 0xdc
+    ONE_BYTE_OPCODE,           // 0xdd
+    ONE_BYTE_OPCODE,           // 0xde
+    ONE_BYTE_OPCODE,           // 0xdf
+    ONE_BYTE_OPCODE,           // 0xe0
+    ONE_BYTE_OPCODE,           // 0xe1
+    ONE_BYTE_OPCODE,           // 0xe2
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xe3
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xe4
+    TWO_BYTE_OPCODE,           // 0xe5
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xe6
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xe7
+    ONE_BYTE_OPCODE,           // 0xe8
+    ONE_BYTE_OPCODE,           // 0xe9
+    ONE_BYTE_OPCODE,           // 0xea
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xeb
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xec
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xed
+    ONE_BYTE_OPCODE,           // 0xee
+    ONE_BYTE_OPCODE,           // 0xef
+    ONE_BYTE_OPCODE,           // 0xf0
+    ONE_BYTE_OPCODE,           // 0xf1
+    ONE_BYTE_OPCODE,           // 0xf2
+    ONE_BYTE_OPCODE,           // 0xf3
+    ONE_BYTE_OPCODE,           // 0xf4
+    ONE_BYTE_OPCODE,           // 0xf5
+    ONE_BYTE_OPCODE,           // 0xf6
+    ONE_BYTE_OPCODE,           // 0xf7
+    ONE_BYTE_OPCODE,           // 0xf8
+    ONE_BYTE_OPCODE,           // 0xf9
+    ONE_BYTE_OPCODE,           // 0xfa
+    ONE_BYTE_OPCODE,           // 0xfb
+    ONE_BYTE_OPCODE,           // 0xfc
+    ONE_BYTE_OPCODE,           // 0xfd
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xfe
+    TWO_BYTE_DISJOINT_OPCODE,  // 0xff
+};
+
 // These register names are defined in a way to match the native disassembler
 // formatting. See for example the command "objdump -d <binary file>".
 const char* Registers::names_[kNumRegisters] = {
diff --git a/src/s390/constants-s390.h b/src/s390/constants-s390.h
index c313c92..9dfb32c 100644
--- a/src/s390/constants-s390.h
+++ b/src/s390/constants-s390.h
@@ -1080,6 +1080,7 @@
     THREE_NIBBLE_OPCODE        // Three Nibbles - Bits 0 to 7, 12 to 15
   };
 
+  static OpcodeFormatType OpcodeFormatTable[256];
 // Helper macro to define static accessors.
 // We use the cast to char* trick to bypass the strict anti-aliasing rules.
 #define DECLARE_STATIC_TYPED_ACCESSOR(return_type, Name) \
@@ -1254,37 +1255,7 @@
   // Get Instruction Format Type
   static OpcodeFormatType getOpcodeFormatType(const byte* instr) {
     const byte firstByte = *instr;
-    // Based on Figure B-3 in z/Architecture Principles of
-    // Operation.
-
-    // 1-byte opcodes
-    //   I, RR, RS, RSI, RX, SS Formats
-    if ((0x04 <= firstByte && 0x9B >= firstByte) ||
-        (0xA8 <= firstByte && 0xB1 >= firstByte) ||
-        (0xBA <= firstByte && 0xBF >= firstByte) || (0xC5 == firstByte) ||
-        (0xC7 == firstByte) || (0xD0 <= firstByte && 0xE2 >= firstByte) ||
-        (0xE8 <= firstByte && 0xEA >= firstByte) ||
-        (0xEE <= firstByte && 0xFD >= firstByte)) {
-      return ONE_BYTE_OPCODE;
-    }
-
-    // 2-byte opcodes
-    //   E, IE, RRD, RRE, RRF, SIL, S, SSE Formats
-    if ((0x00 == firstByte) ||  // Software breakpoint 0x0001
-        (0x01 == firstByte) || (0xB2 == firstByte) || (0xB3 == firstByte) ||
-        (0xB9 == firstByte) || (0xE5 == firstByte)) {
-      return TWO_BYTE_OPCODE;
-    }
-
-    // 3-nibble opcodes
-    //   RI, RIL, SSF Formats
-    if ((0xA5 == firstByte) || (0xA7 == firstByte) ||
-        (0xC0 <= firstByte && 0xCC >= firstByte)) {  // C5,C7 handled above
-      return THREE_NIBBLE_OPCODE;
-    }
-    // Remaining ones are all TWO_BYTE_DISJOINT OPCODES.
-    DCHECK(InstructionLength(instr) == 6);
-    return TWO_BYTE_DISJOINT_OPCODE;
+    return OpcodeFormatTable[firstByte];
   }
 
   // Extract the full opcode from the instruction.
@@ -1304,11 +1275,10 @@
       case TWO_BYTE_DISJOINT_OPCODE:
         // Two Bytes - Bits 0 to 7, 40 to 47
         return static_cast<Opcode>((*instr << 8) | (*(instr + 5) & 0xFF));
-      case THREE_NIBBLE_OPCODE:
+      default:
+        // case THREE_NIBBLE_OPCODE:
         // Three Nibbles - Bits 0 to 7, 12 to 15
         return static_cast<Opcode>((*instr << 4) | (*(instr + 1) & 0xF));
-      default:
-        break;
     }
 
     UNREACHABLE();
diff --git a/src/s390/interface-descriptors-s390.cc b/src/s390/interface-descriptors-s390.cc
index 63afca8..aae1949 100644
--- a/src/s390/interface-descriptors-s390.cc
+++ b/src/s390/interface-descriptors-s390.cc
@@ -36,13 +36,11 @@
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return r4; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return r2; }
 
-const Register InstanceOfDescriptor::LeftRegister() { return r3; }
-const Register InstanceOfDescriptor::RightRegister() { return r2; }
-
 const Register StringCompareDescriptor::LeftRegister() { return r3; }
 const Register StringCompareDescriptor::RightRegister() { return r2; }
 
-const Register ApiGetterDescriptor::function_address() { return r4; }
+const Register ApiGetterDescriptor::HolderRegister() { return r2; }
+const Register ApiGetterDescriptor::CallbackRegister() { return r5; }
 
 const Register MathPowTaggedDescriptor::exponent() { return r4; }
 
@@ -53,6 +51,9 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return r2; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return r5; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return r2; }
+const Register HasPropertyDescriptor::KeyRegister() { return r5; }
+
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {r4};
@@ -211,12 +212,17 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {r2};
+  // register state
+  // r2 -- number of arguments
+  // r3 -- function
+  // r4 -- allocation site with elements kind
+  Register registers[] = {r3, r4, r2};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
@@ -275,6 +281,12 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {r4};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {r3, r2};
@@ -330,9 +342,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister,
-      kInterpreterDispatchTableRegister};
+      kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+      kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -367,6 +378,16 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      r2,  // the value to pass to the generator
+      r3,  // the JSGeneratorObject to resume
+      r4   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc
index 21058f4..9257e64 100644
--- a/src/s390/macro-assembler-s390.cc
+++ b/src/s390/macro-assembler-s390.cc
@@ -480,8 +480,8 @@
   // Save caller-saved registers.  js_function and code_entry are in the
   // caller-saved register list.
   DCHECK(kJSCallerSaved & js_function.bit());
-  DCHECK(kJSCallerSaved & code_entry.bit());
-  MultiPush(kJSCallerSaved | r14.bit());
+  // DCHECK(kJSCallerSaved & code_entry.bit());
+  MultiPush(kJSCallerSaved | code_entry.bit() | r14.bit());
 
   int argument_count = 3;
   PrepareCallCFunction(argument_count, code_entry);
@@ -499,7 +499,7 @@
   }
 
   // Restore caller-saved registers (including js_function and code_entry).
-  MultiPop(kJSCallerSaved | r14.bit());
+  MultiPop(kJSCallerSaved | code_entry.bit() | r14.bit());
 
   bind(&done);
 }
@@ -1706,6 +1706,7 @@
                               Register scratch1, Register scratch2,
                               Label* gc_required, AllocationFlags flags) {
   DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1767,7 +1768,7 @@
     STATIC_ASSERT(kPointerAlignment * 2 == kDoubleAlignment);
     AndP(result_end, result, Operand(kDoubleAlignmentMask));
     Label aligned;
-    beq(&aligned);
+    beq(&aligned, Label::kNear);
     if ((flags & PRETENURE) != 0) {
       CmpLogicalP(result, alloc_limit);
       bge(gc_required);
@@ -1792,17 +1793,20 @@
     blt(gc_required);
     AddP(result_end, result, result_end);
   }
-  StoreP(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    AddP(result, result, Operand(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    StoreP(result_end, MemOperand(top_address));
   }
+
+  // Tag object.
+  AddP(result, result, Operand(kHeapObjectTag));
 }
 
 void MacroAssembler::Allocate(Register object_size, Register result,
                               Register result_end, Register scratch,
                               Label* gc_required, AllocationFlags flags) {
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1860,7 +1864,7 @@
     STATIC_ASSERT(kPointerAlignment * 2 == kDoubleAlignment);
     AndP(result_end, result, Operand(kDoubleAlignmentMask));
     Label aligned;
-    beq(&aligned);
+    beq(&aligned, Label::kNear);
     if ((flags & PRETENURE) != 0) {
       CmpLogicalP(result, alloc_limit);
       bge(gc_required);
@@ -1892,12 +1896,114 @@
     AndP(r0, result_end, Operand(kObjectAlignmentMask));
     Check(eq, kUnalignedAllocationInNewSpace, cr0);
   }
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    StoreP(result_end, MemOperand(top_address));
+  }
+
+  // Tag object.
+  AddP(result, result, Operand(kHeapObjectTag));
+}
+
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, Register scratch,
+                                  AllocationFlags flags) {
+  // |object_size| and |result_end| may overlap if the DOUBLE_ALIGNMENT flag
+  // is not specified. Other registers must not overlap.
+  DCHECK(!AreAliased(object_size, result, scratch, ip));
+  DCHECK(!AreAliased(result_end, result, scratch, ip));
+  DCHECK((flags & DOUBLE_ALIGNMENT) == 0 || !object_size.is(result_end));
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  Register top_address = scratch;
+  mov(top_address, Operand(allocation_top));
+  LoadP(result, MemOperand(top_address));
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+// Align the next allocation. Storing the filler map without checking top is
+// safe in new-space because the limit of the heap is aligned there.
+#if V8_TARGET_ARCH_S390X
+    STATIC_ASSERT(kPointerAlignment == kDoubleAlignment);
+#else
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    AndP(result_end, result, Operand(kDoubleAlignmentMask));
+    Label aligned;
+    beq(&aligned, Label::kNear);
+    mov(result_end, Operand(isolate()->factory()->one_pointer_filler_map()));
+    StoreW(result_end, MemOperand(result));
+    AddP(result, result, Operand(kDoubleSize / 2));
+    bind(&aligned);
+#endif
+  }
+
+  // Calculate new top using result. Object size may be in words so a shift is
+  // required to get the number of bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    ShiftLeftP(result_end, object_size, Operand(kPointerSizeLog2));
+    AddP(result_end, result, result_end);
+  } else {
+    AddP(result_end, result, object_size);
+  }
+
+  // Update allocation top. result temporarily holds the new top.
+  if (emit_debug_code()) {
+    AndP(r0, result_end, Operand(kObjectAlignmentMask));
+    Check(eq, kUnalignedAllocationInNewSpace, cr0);
+  }
   StoreP(result_end, MemOperand(top_address));
 
-  // Tag object if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    AddP(result, result, Operand(kHeapObjectTag));
+  // Tag object.
+  AddP(result, result, Operand(kHeapObjectTag));
+}
+
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register scratch1, Register scratch2,
+                                  AllocationFlags flags) {
+  DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK(!AreAliased(result, scratch1, scratch2, ip));
+
+  // Make object size into bytes.
+  if ((flags & SIZE_IN_WORDS) != 0) {
+    object_size *= kPointerSize;
   }
+  DCHECK_EQ(0, object_size & kObjectAlignmentMask);
+
+  ExternalReference allocation_top =
+      AllocationUtils::GetAllocationTopReference(isolate(), flags);
+
+  // Set up allocation top address register.
+  Register top_address = scratch1;
+  Register result_end = scratch2;
+  mov(top_address, Operand(allocation_top));
+  LoadP(result, MemOperand(top_address));
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+// Align the next allocation. Storing the filler map without checking top is
+// safe in new-space because the limit of the heap is aligned there.
+#if V8_TARGET_ARCH_S390X
+    STATIC_ASSERT(kPointerAlignment == kDoubleAlignment);
+#else
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    AndP(result_end, result, Operand(kDoubleAlignmentMask));
+    Label aligned;
+    beq(&aligned, Label::kNear);
+    mov(result_end, Operand(isolate()->factory()->one_pointer_filler_map()));
+    StoreW(result_end, MemOperand(result));
+    AddP(result, result, Operand(kDoubleSize / 2));
+    bind(&aligned);
+#endif
+  }
+
+  // Calculate new top using result.
+  AddP(result_end, result, Operand(object_size));
+
+  // The top pointer is not updated for allocation folding dominators.
+  StoreP(result_end, MemOperand(top_address));
+
+  // Tag object.
+  AddP(result, result, Operand(kHeapObjectTag));
 }
 
 void MacroAssembler::AllocateTwoByteString(Register result, Register length,
@@ -1914,7 +2020,8 @@
   AndP(scratch1, Operand(~kObjectAlignmentMask));
 
   // Allocate two-byte string in new space.
-  Allocate(scratch1, result, scratch2, scratch3, gc_required, TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result, length, Heap::kStringMapRootIndex, scratch1,
@@ -1934,7 +2041,8 @@
   AndP(scratch1, Operand(~kObjectAlignmentMask));
 
   // Allocate one-byte string in new space.
-  Allocate(scratch1, result, scratch2, scratch3, gc_required, TAG_OBJECT);
+  Allocate(scratch1, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   InitializeNewString(result, length, Heap::kOneByteStringMapRootIndex,
@@ -1946,7 +2054,7 @@
                                                Register scratch2,
                                                Label* gc_required) {
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kConsStringMapRootIndex, scratch1,
                       scratch2);
@@ -1957,7 +2065,7 @@
                                                Register scratch2,
                                                Label* gc_required) {
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kConsOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -1969,7 +2077,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kSlicedStringMapRootIndex, scratch1,
                       scratch2);
@@ -1981,7 +2089,7 @@
                                                  Register scratch2,
                                                  Label* gc_required) {
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   InitializeNewString(result, length, Heap::kSlicedOneByteStringMapRootIndex,
                       scratch1, scratch2);
@@ -2847,6 +2955,18 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    STATIC_ASSERT(kSmiTag == 0);
+    TestIfSmi(object);
+    Check(ne, kOperandIsASmiAndNotAGeneratorObject, cr0);
+    push(object);
+    CompareObjectType(object, object, object, JS_GENERATOR_OBJECT_TYPE);
+    pop(object);
+    Check(eq, kOperandIsNotAGeneratorObject);
+  }
+}
+
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
     STATIC_ASSERT(kSmiTag == 0);
@@ -2935,12 +3055,11 @@
                                         Register scratch2,
                                         Register heap_number_map,
                                         Label* gc_required,
-                                        TaggingMode tagging_mode,
                                         MutableMode mode) {
   // Allocate an object in the heap for the heap number and tag it as a heap
   // object.
   Allocate(HeapNumber::kSize, result, scratch1, scratch2, gc_required,
-           tagging_mode == TAG_RESULT ? TAG_OBJECT : NO_ALLOCATION_FLAGS);
+           NO_ALLOCATION_FLAGS);
 
   Heap::RootListIndex map_index = mode == MUTABLE
                                       ? Heap::kMutableHeapNumberMapRootIndex
@@ -2948,11 +3067,7 @@
   AssertIsRoot(heap_number_map, map_index);
 
   // Store heap number map in the allocated object.
-  if (tagging_mode == TAG_RESULT) {
     StoreP(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset));
-  } else {
-    StoreP(heap_number_map, MemOperand(result, HeapObject::kMapOffset));
-  }
 }
 
 void MacroAssembler::AllocateHeapNumberWithValue(
@@ -2971,7 +3086,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch1, scratch2);
@@ -3539,7 +3655,7 @@
                                                      Label* no_memento_found) {
   Label map_check;
   Label top_check;
-  ExternalReference new_space_allocation_top =
+  ExternalReference new_space_allocation_top_adr =
       ExternalReference::new_space_allocation_top_address(isolate());
   const int kMementoMapOffset = JSArray::kSize - kHeapObjectTag;
   const int kMementoEndOffset = kMementoMapOffset + AllocationMemento::kSize;
@@ -3550,11 +3666,13 @@
   JumpIfNotInNewSpace(receiver_reg, scratch_reg, no_memento_found);
 
   DCHECK((~Page::kPageAlignmentMask & 0xffff) == 0);
-  AddP(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
 
   // If the object is in new space, we need to check whether it is on the same
   // page as the current top.
-  XorP(r0, scratch_reg, Operand(new_space_allocation_top));
+  AddP(scratch_reg, receiver_reg, Operand(kMementoEndOffset));
+  mov(ip, Operand(new_space_allocation_top_adr));
+  LoadP(ip, MemOperand(ip));
+  XorP(r0, scratch_reg, ip);
   AndP(r0, r0, Operand(~Page::kPageAlignmentMask));
   beq(&top_check, Label::kNear);
   // The object is on a different page than allocation top. Bail out if the
@@ -3568,7 +3686,7 @@
   // If top is on the same page as the current object, we need to check whether
   // we are below top.
   bind(&top_check);
-  CmpP(scratch_reg, Operand(new_space_allocation_top));
+  CmpP(scratch_reg, ip);
   bgt(no_memento_found);
   // Memento map check.
   bind(&map_check);
@@ -4961,6 +5079,14 @@
 #endif
 }
 
+void MacroAssembler::LoadB(Register dst, Register src) {
+#if V8_TARGET_ARCH_S390X
+  lgbr(dst, src);
+#else
+  lbr(dst, src);
+#endif
+}
+
 void MacroAssembler::LoadlB(Register dst, const MemOperand& mem) {
 #if V8_TARGET_ARCH_S390X
   llgc(dst, mem);
@@ -5300,7 +5426,7 @@
   ar(dst, r0);
   ShiftRight(r0, dst, Operand(8));
   ar(dst, r0);
-  lbr(dst, dst);
+  LoadB(dst, dst);
 }
 
 #ifdef V8_TARGET_ARCH_S390X
@@ -5315,7 +5441,7 @@
   AddP(dst, r0);
   ShiftRightP(r0, dst, Operand(8));
   AddP(dst, r0);
-  lbr(dst, dst);
+  LoadB(dst, dst);
 }
 #endif
 
diff --git a/src/s390/macro-assembler-s390.h b/src/s390/macro-assembler-s390.h
index 77fcccb..19f0f7c 100644
--- a/src/s390/macro-assembler-s390.h
+++ b/src/s390/macro-assembler-s390.h
@@ -19,10 +19,10 @@
 const Register kReturnRegister2 = {Register::kCode_r4};
 const Register kJSFunctionRegister = {Register::kCode_r3};
 const Register kContextRegister = {Register::kCode_r13};
+const Register kAllocateSizeRegister = {Register::kCode_r3};
 const Register kInterpreterAccumulatorRegister = {Register::kCode_r2};
-const Register kInterpreterRegisterFileRegister = {Register::kCode_r4};
-const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_r5};
-const Register kInterpreterBytecodeArrayRegister = {Register::kCode_r6};
+const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_r6};
+const Register kInterpreterBytecodeArrayRegister = {Register::kCode_r7};
 const Register kInterpreterDispatchTableRegister = {Register::kCode_r8};
 const Register kJavaScriptCallArgCountRegister = {Register::kCode_r2};
 const Register kJavaScriptCallNewTargetRegister = {Register::kCode_r5};
@@ -334,6 +334,7 @@
   void LoadlW(Register dst, const MemOperand& opnd, Register scratch = no_reg);
   void LoadlW(Register dst, Register src);
   void LoadB(Register dst, const MemOperand& opnd);
+  void LoadB(Register dst, Register src);
   void LoadlB(Register dst, const MemOperand& opnd);
 
   // Load And Test
@@ -411,6 +412,12 @@
 
   void mov(Register dst, const Operand& src);
 
+  void CleanUInt32(Register x) {
+#ifdef V8_TARGET_ARCH_S390X
+    llgfr(x, x);
+#endif
+  }
+
   // ---------------------------------------------------------------------------
   // GC Support
 
@@ -958,6 +965,15 @@
   void Allocate(Register object_size, Register result, Register result_end,
                 Register scratch, Label* gc_required, AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(int object_size, Register result, Register scratch1,
+                    Register scratch2, AllocationFlags flags);
+
+  void FastAllocate(Register object_size, Register result, Register result_end,
+                    Register scratch, AllocationFlags flags);
+
   void AllocateTwoByteString(Register result, Register length,
                              Register scratch1, Register scratch2,
                              Register scratch3, Label* gc_required);
@@ -982,7 +998,6 @@
   // when control continues at the gc_required label.
   void AllocateHeapNumber(Register result, Register scratch1, Register scratch2,
                           Register heap_number_map, Label* gc_required,
-                          TaggingMode tagging_mode = TAG_RESULT,
                           MutableMode mode = IMMUTABLE);
   void AllocateHeapNumberWithValue(Register result, DoubleRegister value,
                                    Register scratch1, Register scratch2,
@@ -1659,6 +1674,10 @@
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
   void AssertReceiver(Register object);
 
diff --git a/src/s390/simulator-s390.cc b/src/s390/simulator-s390.cc
index 06e52a7..e819556 100644
--- a/src/s390/simulator-s390.cc
+++ b/src/s390/simulator-s390.cc
@@ -10,6 +10,7 @@
 
 #include "src/assembler.h"
 #include "src/base/bits.h"
+#include "src/base/once.h"
 #include "src/codegen.h"
 #include "src/disasm.h"
 #include "src/runtime/runtime-utils.h"
@@ -274,18 +275,40 @@
               reinterpret_cast<Instruction*>(sim_->get_pc()));
         }
 
-        if (argc == 2 && last_pc != sim_->get_pc() && GetValue(arg1, &value)) {
-          for (int i = 1; (!sim_->has_bad_pc()) && i < value; i++) {
-            disasm::NameConverter converter;
-            disasm::Disassembler dasm(converter);
-            // use a reasonably large buffer
-            v8::internal::EmbeddedVector<char, 256> buffer;
-            dasm.InstructionDecode(buffer,
-                                   reinterpret_cast<byte*>(sim_->get_pc()));
-            PrintF("  0x%08" V8PRIxPTR "  %s\n", sim_->get_pc(),
-                   buffer.start());
-            sim_->ExecuteInstruction(
-                reinterpret_cast<Instruction*>(sim_->get_pc()));
+        if (argc == 2 && last_pc != sim_->get_pc()) {
+          disasm::NameConverter converter;
+          disasm::Disassembler dasm(converter);
+          // use a reasonably large buffer
+          v8::internal::EmbeddedVector<char, 256> buffer;
+
+          if (GetValue(arg1, &value)) {
+            // Interpret a numeric argument as the number of instructions to
+            // step past.
+            for (int i = 1; (!sim_->has_bad_pc()) &&  i < value; i++) {
+              dasm.InstructionDecode(buffer,
+                                    reinterpret_cast<byte*>(sim_->get_pc()));
+              PrintF("  0x%08" V8PRIxPTR "  %s\n", sim_->get_pc(),
+                    buffer.start());
+              sim_->ExecuteInstruction(
+                      reinterpret_cast<Instruction*>(sim_->get_pc()));
+            }
+          } else {
+            // Otherwise treat it as the mnemonic of the opcode to stop at.
+            char mnemonic[256];
+            while (!sim_->has_bad_pc()) {
+              dasm.InstructionDecode(buffer,
+                                    reinterpret_cast<byte*>(sim_->get_pc()));
+              char* mnemonicStart = buffer.start();
+              while (*mnemonicStart != 0 && *mnemonicStart != ' ')
+                mnemonicStart++;
+              SScanF(mnemonicStart, "%s", mnemonic);
+              if (!strcmp(arg1, mnemonic)) break;
+
+              PrintF("  0x%08" V8PRIxPTR "  %s\n", sim_->get_pc(),
+                    buffer.start());
+              sim_->ExecuteInstruction(
+                      reinterpret_cast<Instruction*>(sim_->get_pc()));
+            }
           }
         }
       } else if ((strcmp(cmd, "c") == 0) || (strcmp(cmd, "cont") == 0)) {
@@ -574,6 +597,8 @@
         } else {
           PrintF("Wrong usage. Use help command for more information.\n");
         }
+      } else if (strcmp(cmd, "icount") == 0) {
+        PrintF("%05" PRId64 "\n", sim_->icount_);
       } else if ((strcmp(cmd, "t") == 0) || strcmp(cmd, "trace") == 0) {
         ::v8::internal::FLAG_trace_sim = !::v8::internal::FLAG_trace_sim;
         PrintF("Trace of executed instructions is %s\n",
@@ -748,8 +773,743 @@
   isolate->set_simulator_initialized(true);
   ::v8::internal::ExternalReference::set_redirector(isolate,
                                                     &RedirectExternalReference);
+  static base::OnceType once = V8_ONCE_INIT;
+  base::CallOnce(&once, &Simulator::EvalTableInit);
 }
 
+Simulator::EvaluateFuncType Simulator::EvalTable[] = {NULL};
+
+void Simulator::EvalTableInit() {
+  for (int i = 0; i < MAX_NUM_OPCODES; i++) {
+    EvalTable[i] = &Simulator::Evaluate_Unknown;
+  }
+
+  EvalTable[BKPT] = &Simulator::Evaluate_BKPT;
+  EvalTable[SPM] = &Simulator::Evaluate_SPM;
+  EvalTable[BALR] = &Simulator::Evaluate_BALR;
+  EvalTable[BCTR] = &Simulator::Evaluate_BCTR;
+  EvalTable[BCR] = &Simulator::Evaluate_BCR;
+  EvalTable[SVC] = &Simulator::Evaluate_SVC;
+  EvalTable[BSM] = &Simulator::Evaluate_BSM;
+  EvalTable[BASSM] = &Simulator::Evaluate_BASSM;
+  EvalTable[BASR] = &Simulator::Evaluate_BASR;
+  EvalTable[MVCL] = &Simulator::Evaluate_MVCL;
+  EvalTable[CLCL] = &Simulator::Evaluate_CLCL;
+  EvalTable[LPR] = &Simulator::Evaluate_LPR;
+  EvalTable[LNR] = &Simulator::Evaluate_LNR;
+  EvalTable[LTR] = &Simulator::Evaluate_LTR;
+  EvalTable[LCR] = &Simulator::Evaluate_LCR;
+  EvalTable[NR] = &Simulator::Evaluate_NR;
+  EvalTable[CLR] = &Simulator::Evaluate_CLR;
+  EvalTable[OR] = &Simulator::Evaluate_OR;
+  EvalTable[XR] = &Simulator::Evaluate_XR;
+  EvalTable[LR] = &Simulator::Evaluate_LR;
+  EvalTable[CR] = &Simulator::Evaluate_CR;
+  EvalTable[AR] = &Simulator::Evaluate_AR;
+  EvalTable[SR] = &Simulator::Evaluate_SR;
+  EvalTable[MR] = &Simulator::Evaluate_MR;
+  EvalTable[DR] = &Simulator::Evaluate_DR;
+  EvalTable[ALR] = &Simulator::Evaluate_ALR;
+  EvalTable[SLR] = &Simulator::Evaluate_SLR;
+  EvalTable[LDR] = &Simulator::Evaluate_LDR;
+  EvalTable[CDR] = &Simulator::Evaluate_CDR;
+  EvalTable[LER] = &Simulator::Evaluate_LER;
+  EvalTable[STH] = &Simulator::Evaluate_STH;
+  EvalTable[LA] = &Simulator::Evaluate_LA;
+  EvalTable[STC] = &Simulator::Evaluate_STC;
+  EvalTable[IC_z] = &Simulator::Evaluate_IC_z;
+  EvalTable[EX] = &Simulator::Evaluate_EX;
+  EvalTable[BAL] = &Simulator::Evaluate_BAL;
+  EvalTable[BCT] = &Simulator::Evaluate_BCT;
+  EvalTable[BC] = &Simulator::Evaluate_BC;
+  EvalTable[LH] = &Simulator::Evaluate_LH;
+  EvalTable[CH] = &Simulator::Evaluate_CH;
+  EvalTable[AH] = &Simulator::Evaluate_AH;
+  EvalTable[SH] = &Simulator::Evaluate_SH;
+  EvalTable[MH] = &Simulator::Evaluate_MH;
+  EvalTable[BAS] = &Simulator::Evaluate_BAS;
+  EvalTable[CVD] = &Simulator::Evaluate_CVD;
+  EvalTable[CVB] = &Simulator::Evaluate_CVB;
+  EvalTable[ST] = &Simulator::Evaluate_ST;
+  EvalTable[LAE] = &Simulator::Evaluate_LAE;
+  EvalTable[N] = &Simulator::Evaluate_N;
+  EvalTable[CL] = &Simulator::Evaluate_CL;
+  EvalTable[O] = &Simulator::Evaluate_O;
+  EvalTable[X] = &Simulator::Evaluate_X;
+  EvalTable[L] = &Simulator::Evaluate_L;
+  EvalTable[C] = &Simulator::Evaluate_C;
+  EvalTable[A] = &Simulator::Evaluate_A;
+  EvalTable[S] = &Simulator::Evaluate_S;
+  EvalTable[M] = &Simulator::Evaluate_M;
+  EvalTable[D] = &Simulator::Evaluate_D;
+  EvalTable[AL] = &Simulator::Evaluate_AL;
+  EvalTable[SL] = &Simulator::Evaluate_SL;
+  EvalTable[STD] = &Simulator::Evaluate_STD;
+  EvalTable[LD] = &Simulator::Evaluate_LD;
+  EvalTable[CD] = &Simulator::Evaluate_CD;
+  EvalTable[STE] = &Simulator::Evaluate_STE;
+  EvalTable[MS] = &Simulator::Evaluate_MS;
+  EvalTable[LE] = &Simulator::Evaluate_LE;
+  EvalTable[BRXH] = &Simulator::Evaluate_BRXH;
+  EvalTable[BRXLE] = &Simulator::Evaluate_BRXLE;
+  EvalTable[BXH] = &Simulator::Evaluate_BXH;
+  EvalTable[BXLE] = &Simulator::Evaluate_BXLE;
+  EvalTable[SRL] = &Simulator::Evaluate_SRL;
+  EvalTable[SLL] = &Simulator::Evaluate_SLL;
+  EvalTable[SRA] = &Simulator::Evaluate_SRA;
+  EvalTable[SLA] = &Simulator::Evaluate_SLA;
+  EvalTable[SRDL] = &Simulator::Evaluate_SRDL;
+  EvalTable[SLDL] = &Simulator::Evaluate_SLDL;
+  EvalTable[SRDA] = &Simulator::Evaluate_SRDA;
+  EvalTable[SLDA] = &Simulator::Evaluate_SLDA;
+  EvalTable[STM] = &Simulator::Evaluate_STM;
+  EvalTable[TM] = &Simulator::Evaluate_TM;
+  EvalTable[MVI] = &Simulator::Evaluate_MVI;
+  EvalTable[TS] = &Simulator::Evaluate_TS;
+  EvalTable[NI] = &Simulator::Evaluate_NI;
+  EvalTable[CLI] = &Simulator::Evaluate_CLI;
+  EvalTable[OI] = &Simulator::Evaluate_OI;
+  EvalTable[XI] = &Simulator::Evaluate_XI;
+  EvalTable[LM] = &Simulator::Evaluate_LM;
+  EvalTable[MVCLE] = &Simulator::Evaluate_MVCLE;
+  EvalTable[CLCLE] = &Simulator::Evaluate_CLCLE;
+  EvalTable[MC] = &Simulator::Evaluate_MC;
+  EvalTable[CDS] = &Simulator::Evaluate_CDS;
+  EvalTable[STCM] = &Simulator::Evaluate_STCM;
+  EvalTable[ICM] = &Simulator::Evaluate_ICM;
+  EvalTable[BPRP] = &Simulator::Evaluate_BPRP;
+  EvalTable[BPP] = &Simulator::Evaluate_BPP;
+  EvalTable[TRTR] = &Simulator::Evaluate_TRTR;
+  EvalTable[MVN] = &Simulator::Evaluate_MVN;
+  EvalTable[MVC] = &Simulator::Evaluate_MVC;
+  EvalTable[MVZ] = &Simulator::Evaluate_MVZ;
+  EvalTable[NC] = &Simulator::Evaluate_NC;
+  EvalTable[CLC] = &Simulator::Evaluate_CLC;
+  EvalTable[OC] = &Simulator::Evaluate_OC;
+  EvalTable[XC] = &Simulator::Evaluate_XC;
+  EvalTable[MVCP] = &Simulator::Evaluate_MVCP;
+  EvalTable[TR] = &Simulator::Evaluate_TR;
+  EvalTable[TRT] = &Simulator::Evaluate_TRT;
+  EvalTable[ED] = &Simulator::Evaluate_ED;
+  EvalTable[EDMK] = &Simulator::Evaluate_EDMK;
+  EvalTable[PKU] = &Simulator::Evaluate_PKU;
+  EvalTable[UNPKU] = &Simulator::Evaluate_UNPKU;
+  EvalTable[MVCIN] = &Simulator::Evaluate_MVCIN;
+  EvalTable[PKA] = &Simulator::Evaluate_PKA;
+  EvalTable[UNPKA] = &Simulator::Evaluate_UNPKA;
+  EvalTable[PLO] = &Simulator::Evaluate_PLO;
+  EvalTable[LMD] = &Simulator::Evaluate_LMD;
+  EvalTable[SRP] = &Simulator::Evaluate_SRP;
+  EvalTable[MVO] = &Simulator::Evaluate_MVO;
+  EvalTable[PACK] = &Simulator::Evaluate_PACK;
+  EvalTable[UNPK] = &Simulator::Evaluate_UNPK;
+  EvalTable[ZAP] = &Simulator::Evaluate_ZAP;
+  EvalTable[AP] = &Simulator::Evaluate_AP;
+  EvalTable[SP] = &Simulator::Evaluate_SP;
+  EvalTable[MP] = &Simulator::Evaluate_MP;
+  EvalTable[DP] = &Simulator::Evaluate_DP;
+  EvalTable[UPT] = &Simulator::Evaluate_UPT;
+  EvalTable[PFPO] = &Simulator::Evaluate_PFPO;
+  EvalTable[IIHH] = &Simulator::Evaluate_IIHH;
+  EvalTable[IIHL] = &Simulator::Evaluate_IIHL;
+  EvalTable[IILH] = &Simulator::Evaluate_IILH;
+  EvalTable[IILL] = &Simulator::Evaluate_IILL;
+  EvalTable[NIHH] = &Simulator::Evaluate_NIHH;
+  EvalTable[NIHL] = &Simulator::Evaluate_NIHL;
+  EvalTable[NILH] = &Simulator::Evaluate_NILH;
+  EvalTable[NILL] = &Simulator::Evaluate_NILL;
+  EvalTable[OIHH] = &Simulator::Evaluate_OIHH;
+  EvalTable[OIHL] = &Simulator::Evaluate_OIHL;
+  EvalTable[OILH] = &Simulator::Evaluate_OILH;
+  EvalTable[OILL] = &Simulator::Evaluate_OILL;
+  EvalTable[LLIHH] = &Simulator::Evaluate_LLIHH;
+  EvalTable[LLIHL] = &Simulator::Evaluate_LLIHL;
+  EvalTable[LLILH] = &Simulator::Evaluate_LLILH;
+  EvalTable[LLILL] = &Simulator::Evaluate_LLILL;
+  EvalTable[TMLH] = &Simulator::Evaluate_TMLH;
+  EvalTable[TMLL] = &Simulator::Evaluate_TMLL;
+  EvalTable[TMHH] = &Simulator::Evaluate_TMHH;
+  EvalTable[TMHL] = &Simulator::Evaluate_TMHL;
+  EvalTable[BRC] = &Simulator::Evaluate_BRC;
+  EvalTable[BRAS] = &Simulator::Evaluate_BRAS;
+  EvalTable[BRCT] = &Simulator::Evaluate_BRCT;
+  EvalTable[BRCTG] = &Simulator::Evaluate_BRCTG;
+  EvalTable[LHI] = &Simulator::Evaluate_LHI;
+  EvalTable[LGHI] = &Simulator::Evaluate_LGHI;
+  EvalTable[AHI] = &Simulator::Evaluate_AHI;
+  EvalTable[AGHI] = &Simulator::Evaluate_AGHI;
+  EvalTable[MHI] = &Simulator::Evaluate_MHI;
+  EvalTable[MGHI] = &Simulator::Evaluate_MGHI;
+  EvalTable[CHI] = &Simulator::Evaluate_CHI;
+  EvalTable[CGHI] = &Simulator::Evaluate_CGHI;
+  EvalTable[LARL] = &Simulator::Evaluate_LARL;
+  EvalTable[LGFI] = &Simulator::Evaluate_LGFI;
+  EvalTable[BRCL] = &Simulator::Evaluate_BRCL;
+  EvalTable[BRASL] = &Simulator::Evaluate_BRASL;
+  EvalTable[XIHF] = &Simulator::Evaluate_XIHF;
+  EvalTable[XILF] = &Simulator::Evaluate_XILF;
+  EvalTable[IIHF] = &Simulator::Evaluate_IIHF;
+  EvalTable[IILF] = &Simulator::Evaluate_IILF;
+  EvalTable[NIHF] = &Simulator::Evaluate_NIHF;
+  EvalTable[NILF] = &Simulator::Evaluate_NILF;
+  EvalTable[OIHF] = &Simulator::Evaluate_OIHF;
+  EvalTable[OILF] = &Simulator::Evaluate_OILF;
+  EvalTable[LLIHF] = &Simulator::Evaluate_LLIHF;
+  EvalTable[LLILF] = &Simulator::Evaluate_LLILF;
+  EvalTable[MSGFI] = &Simulator::Evaluate_MSGFI;
+  EvalTable[MSFI] = &Simulator::Evaluate_MSFI;
+  EvalTable[SLGFI] = &Simulator::Evaluate_SLGFI;
+  EvalTable[SLFI] = &Simulator::Evaluate_SLFI;
+  EvalTable[AGFI] = &Simulator::Evaluate_AGFI;
+  EvalTable[AFI] = &Simulator::Evaluate_AFI;
+  EvalTable[ALGFI] = &Simulator::Evaluate_ALGFI;
+  EvalTable[ALFI] = &Simulator::Evaluate_ALFI;
+  EvalTable[CGFI] = &Simulator::Evaluate_CGFI;
+  EvalTable[CFI] = &Simulator::Evaluate_CFI;
+  EvalTable[CLGFI] = &Simulator::Evaluate_CLGFI;
+  EvalTable[CLFI] = &Simulator::Evaluate_CLFI;
+  EvalTable[LLHRL] = &Simulator::Evaluate_LLHRL;
+  EvalTable[LGHRL] = &Simulator::Evaluate_LGHRL;
+  EvalTable[LHRL] = &Simulator::Evaluate_LHRL;
+  EvalTable[LLGHRL] = &Simulator::Evaluate_LLGHRL;
+  EvalTable[STHRL] = &Simulator::Evaluate_STHRL;
+  EvalTable[LGRL] = &Simulator::Evaluate_LGRL;
+  EvalTable[STGRL] = &Simulator::Evaluate_STGRL;
+  EvalTable[LGFRL] = &Simulator::Evaluate_LGFRL;
+  EvalTable[LRL] = &Simulator::Evaluate_LRL;
+  EvalTable[LLGFRL] = &Simulator::Evaluate_LLGFRL;
+  EvalTable[STRL] = &Simulator::Evaluate_STRL;
+  EvalTable[EXRL] = &Simulator::Evaluate_EXRL;
+  EvalTable[PFDRL] = &Simulator::Evaluate_PFDRL;
+  EvalTable[CGHRL] = &Simulator::Evaluate_CGHRL;
+  EvalTable[CHRL] = &Simulator::Evaluate_CHRL;
+  EvalTable[CGRL] = &Simulator::Evaluate_CGRL;
+  EvalTable[CGFRL] = &Simulator::Evaluate_CGFRL;
+  EvalTable[ECTG] = &Simulator::Evaluate_ECTG;
+  EvalTable[CSST] = &Simulator::Evaluate_CSST;
+  EvalTable[LPD] = &Simulator::Evaluate_LPD;
+  EvalTable[LPDG] = &Simulator::Evaluate_LPDG;
+  EvalTable[BRCTH] = &Simulator::Evaluate_BRCTH;
+  EvalTable[AIH] = &Simulator::Evaluate_AIH;
+  EvalTable[ALSIH] = &Simulator::Evaluate_ALSIH;
+  EvalTable[ALSIHN] = &Simulator::Evaluate_ALSIHN;
+  EvalTable[CIH] = &Simulator::Evaluate_CIH;
+  EvalTable[STCK] = &Simulator::Evaluate_STCK;
+  EvalTable[CFC] = &Simulator::Evaluate_CFC;
+  EvalTable[IPM] = &Simulator::Evaluate_IPM;
+  EvalTable[HSCH] = &Simulator::Evaluate_HSCH;
+  EvalTable[MSCH] = &Simulator::Evaluate_MSCH;
+  EvalTable[SSCH] = &Simulator::Evaluate_SSCH;
+  EvalTable[STSCH] = &Simulator::Evaluate_STSCH;
+  EvalTable[TSCH] = &Simulator::Evaluate_TSCH;
+  EvalTable[TPI] = &Simulator::Evaluate_TPI;
+  EvalTable[SAL] = &Simulator::Evaluate_SAL;
+  EvalTable[RSCH] = &Simulator::Evaluate_RSCH;
+  EvalTable[STCRW] = &Simulator::Evaluate_STCRW;
+  EvalTable[STCPS] = &Simulator::Evaluate_STCPS;
+  EvalTable[RCHP] = &Simulator::Evaluate_RCHP;
+  EvalTable[SCHM] = &Simulator::Evaluate_SCHM;
+  EvalTable[CKSM] = &Simulator::Evaluate_CKSM;
+  EvalTable[SAR] = &Simulator::Evaluate_SAR;
+  EvalTable[EAR] = &Simulator::Evaluate_EAR;
+  EvalTable[MSR] = &Simulator::Evaluate_MSR;
+  EvalTable[MVST] = &Simulator::Evaluate_MVST;
+  EvalTable[CUSE] = &Simulator::Evaluate_CUSE;
+  EvalTable[SRST] = &Simulator::Evaluate_SRST;
+  EvalTable[XSCH] = &Simulator::Evaluate_XSCH;
+  EvalTable[STCKE] = &Simulator::Evaluate_STCKE;
+  EvalTable[STCKF] = &Simulator::Evaluate_STCKF;
+  EvalTable[SRNM] = &Simulator::Evaluate_SRNM;
+  EvalTable[STFPC] = &Simulator::Evaluate_STFPC;
+  EvalTable[LFPC] = &Simulator::Evaluate_LFPC;
+  EvalTable[TRE] = &Simulator::Evaluate_TRE;
+  EvalTable[CUUTF] = &Simulator::Evaluate_CUUTF;
+  EvalTable[CUTFU] = &Simulator::Evaluate_CUTFU;
+  EvalTable[STFLE] = &Simulator::Evaluate_STFLE;
+  EvalTable[SRNMB] = &Simulator::Evaluate_SRNMB;
+  EvalTable[SRNMT] = &Simulator::Evaluate_SRNMT;
+  EvalTable[LFAS] = &Simulator::Evaluate_LFAS;
+  EvalTable[PPA] = &Simulator::Evaluate_PPA;
+  EvalTable[ETND] = &Simulator::Evaluate_ETND;
+  EvalTable[TEND] = &Simulator::Evaluate_TEND;
+  EvalTable[NIAI] = &Simulator::Evaluate_NIAI;
+  EvalTable[TABORT] = &Simulator::Evaluate_TABORT;
+  EvalTable[TRAP4] = &Simulator::Evaluate_TRAP4;
+  EvalTable[LPEBR] = &Simulator::Evaluate_LPEBR;
+  EvalTable[LNEBR] = &Simulator::Evaluate_LNEBR;
+  EvalTable[LTEBR] = &Simulator::Evaluate_LTEBR;
+  EvalTable[LCEBR] = &Simulator::Evaluate_LCEBR;
+  EvalTable[LDEBR] = &Simulator::Evaluate_LDEBR;
+  EvalTable[LXDBR] = &Simulator::Evaluate_LXDBR;
+  EvalTable[LXEBR] = &Simulator::Evaluate_LXEBR;
+  EvalTable[MXDBR] = &Simulator::Evaluate_MXDBR;
+  EvalTable[KEBR] = &Simulator::Evaluate_KEBR;
+  EvalTable[CEBR] = &Simulator::Evaluate_CEBR;
+  EvalTable[AEBR] = &Simulator::Evaluate_AEBR;
+  EvalTable[SEBR] = &Simulator::Evaluate_SEBR;
+  EvalTable[MDEBR] = &Simulator::Evaluate_MDEBR;
+  EvalTable[DEBR] = &Simulator::Evaluate_DEBR;
+  EvalTable[MAEBR] = &Simulator::Evaluate_MAEBR;
+  EvalTable[MSEBR] = &Simulator::Evaluate_MSEBR;
+  EvalTable[LPDBR] = &Simulator::Evaluate_LPDBR;
+  EvalTable[LNDBR] = &Simulator::Evaluate_LNDBR;
+  EvalTable[LTDBR] = &Simulator::Evaluate_LTDBR;
+  EvalTable[LCDBR] = &Simulator::Evaluate_LCDBR;
+  EvalTable[SQEBR] = &Simulator::Evaluate_SQEBR;
+  EvalTable[SQDBR] = &Simulator::Evaluate_SQDBR;
+  EvalTable[SQXBR] = &Simulator::Evaluate_SQXBR;
+  EvalTable[MEEBR] = &Simulator::Evaluate_MEEBR;
+  EvalTable[KDBR] = &Simulator::Evaluate_KDBR;
+  EvalTable[CDBR] = &Simulator::Evaluate_CDBR;
+  EvalTable[ADBR] = &Simulator::Evaluate_ADBR;
+  EvalTable[SDBR] = &Simulator::Evaluate_SDBR;
+  EvalTable[MDBR] = &Simulator::Evaluate_MDBR;
+  EvalTable[DDBR] = &Simulator::Evaluate_DDBR;
+  EvalTable[MADBR] = &Simulator::Evaluate_MADBR;
+  EvalTable[MSDBR] = &Simulator::Evaluate_MSDBR;
+  EvalTable[LPXBR] = &Simulator::Evaluate_LPXBR;
+  EvalTable[LNXBR] = &Simulator::Evaluate_LNXBR;
+  EvalTable[LTXBR] = &Simulator::Evaluate_LTXBR;
+  EvalTable[LCXBR] = &Simulator::Evaluate_LCXBR;
+  EvalTable[LEDBRA] = &Simulator::Evaluate_LEDBRA;
+  EvalTable[LDXBRA] = &Simulator::Evaluate_LDXBRA;
+  EvalTable[LEXBRA] = &Simulator::Evaluate_LEXBRA;
+  EvalTable[FIXBRA] = &Simulator::Evaluate_FIXBRA;
+  EvalTable[KXBR] = &Simulator::Evaluate_KXBR;
+  EvalTable[CXBR] = &Simulator::Evaluate_CXBR;
+  EvalTable[AXBR] = &Simulator::Evaluate_AXBR;
+  EvalTable[SXBR] = &Simulator::Evaluate_SXBR;
+  EvalTable[MXBR] = &Simulator::Evaluate_MXBR;
+  EvalTable[DXBR] = &Simulator::Evaluate_DXBR;
+  EvalTable[TBEDR] = &Simulator::Evaluate_TBEDR;
+  EvalTable[TBDR] = &Simulator::Evaluate_TBDR;
+  EvalTable[DIEBR] = &Simulator::Evaluate_DIEBR;
+  EvalTable[FIEBRA] = &Simulator::Evaluate_FIEBRA;
+  EvalTable[THDER] = &Simulator::Evaluate_THDER;
+  EvalTable[THDR] = &Simulator::Evaluate_THDR;
+  EvalTable[DIDBR] = &Simulator::Evaluate_DIDBR;
+  EvalTable[FIDBRA] = &Simulator::Evaluate_FIDBRA;
+  EvalTable[LXR] = &Simulator::Evaluate_LXR;
+  EvalTable[LPDFR] = &Simulator::Evaluate_LPDFR;
+  EvalTable[LNDFR] = &Simulator::Evaluate_LNDFR;
+  EvalTable[LCDFR] = &Simulator::Evaluate_LCDFR;
+  EvalTable[LZER] = &Simulator::Evaluate_LZER;
+  EvalTable[LZDR] = &Simulator::Evaluate_LZDR;
+  EvalTable[LZXR] = &Simulator::Evaluate_LZXR;
+  EvalTable[SFPC] = &Simulator::Evaluate_SFPC;
+  EvalTable[SFASR] = &Simulator::Evaluate_SFASR;
+  EvalTable[EFPC] = &Simulator::Evaluate_EFPC;
+  EvalTable[CELFBR] = &Simulator::Evaluate_CELFBR;
+  EvalTable[CDLFBR] = &Simulator::Evaluate_CDLFBR;
+  EvalTable[CXLFBR] = &Simulator::Evaluate_CXLFBR;
+  EvalTable[CEFBRA] = &Simulator::Evaluate_CEFBRA;
+  EvalTable[CDFBRA] = &Simulator::Evaluate_CDFBRA;
+  EvalTable[CXFBRA] = &Simulator::Evaluate_CXFBRA;
+  EvalTable[CFEBRA] = &Simulator::Evaluate_CFEBRA;
+  EvalTable[CFDBRA] = &Simulator::Evaluate_CFDBRA;
+  EvalTable[CFXBRA] = &Simulator::Evaluate_CFXBRA;
+  EvalTable[CLFEBR] = &Simulator::Evaluate_CLFEBR;
+  EvalTable[CLFDBR] = &Simulator::Evaluate_CLFDBR;
+  EvalTable[CLFXBR] = &Simulator::Evaluate_CLFXBR;
+  EvalTable[CELGBR] = &Simulator::Evaluate_CELGBR;
+  EvalTable[CDLGBR] = &Simulator::Evaluate_CDLGBR;
+  EvalTable[CXLGBR] = &Simulator::Evaluate_CXLGBR;
+  EvalTable[CEGBRA] = &Simulator::Evaluate_CEGBRA;
+  EvalTable[CDGBRA] = &Simulator::Evaluate_CDGBRA;
+  EvalTable[CXGBRA] = &Simulator::Evaluate_CXGBRA;
+  EvalTable[CGEBRA] = &Simulator::Evaluate_CGEBRA;
+  EvalTable[CGDBRA] = &Simulator::Evaluate_CGDBRA;
+  EvalTable[CGXBRA] = &Simulator::Evaluate_CGXBRA;
+  EvalTable[CLGEBR] = &Simulator::Evaluate_CLGEBR;
+  EvalTable[CLGDBR] = &Simulator::Evaluate_CLGDBR;
+  EvalTable[CFER] = &Simulator::Evaluate_CFER;
+  EvalTable[CFDR] = &Simulator::Evaluate_CFDR;
+  EvalTable[CFXR] = &Simulator::Evaluate_CFXR;
+  EvalTable[LDGR] = &Simulator::Evaluate_LDGR;
+  EvalTable[CGER] = &Simulator::Evaluate_CGER;
+  EvalTable[CGDR] = &Simulator::Evaluate_CGDR;
+  EvalTable[CGXR] = &Simulator::Evaluate_CGXR;
+  EvalTable[LGDR] = &Simulator::Evaluate_LGDR;
+  EvalTable[MDTR] = &Simulator::Evaluate_MDTR;
+  EvalTable[MDTRA] = &Simulator::Evaluate_MDTRA;
+  EvalTable[DDTRA] = &Simulator::Evaluate_DDTRA;
+  EvalTable[ADTRA] = &Simulator::Evaluate_ADTRA;
+  EvalTable[SDTRA] = &Simulator::Evaluate_SDTRA;
+  EvalTable[LDETR] = &Simulator::Evaluate_LDETR;
+  EvalTable[LEDTR] = &Simulator::Evaluate_LEDTR;
+  EvalTable[LTDTR] = &Simulator::Evaluate_LTDTR;
+  EvalTable[FIDTR] = &Simulator::Evaluate_FIDTR;
+  EvalTable[MXTRA] = &Simulator::Evaluate_MXTRA;
+  EvalTable[DXTRA] = &Simulator::Evaluate_DXTRA;
+  EvalTable[AXTRA] = &Simulator::Evaluate_AXTRA;
+  EvalTable[SXTRA] = &Simulator::Evaluate_SXTRA;
+  EvalTable[LXDTR] = &Simulator::Evaluate_LXDTR;
+  EvalTable[LDXTR] = &Simulator::Evaluate_LDXTR;
+  EvalTable[LTXTR] = &Simulator::Evaluate_LTXTR;
+  EvalTable[FIXTR] = &Simulator::Evaluate_FIXTR;
+  EvalTable[KDTR] = &Simulator::Evaluate_KDTR;
+  EvalTable[CGDTRA] = &Simulator::Evaluate_CGDTRA;
+  EvalTable[CUDTR] = &Simulator::Evaluate_CUDTR;
+  EvalTable[CDTR] = &Simulator::Evaluate_CDTR;
+  EvalTable[EEDTR] = &Simulator::Evaluate_EEDTR;
+  EvalTable[ESDTR] = &Simulator::Evaluate_ESDTR;
+  EvalTable[KXTR] = &Simulator::Evaluate_KXTR;
+  EvalTable[CGXTRA] = &Simulator::Evaluate_CGXTRA;
+  EvalTable[CUXTR] = &Simulator::Evaluate_CUXTR;
+  EvalTable[CSXTR] = &Simulator::Evaluate_CSXTR;
+  EvalTable[CXTR] = &Simulator::Evaluate_CXTR;
+  EvalTable[EEXTR] = &Simulator::Evaluate_EEXTR;
+  EvalTable[ESXTR] = &Simulator::Evaluate_ESXTR;
+  EvalTable[CDGTRA] = &Simulator::Evaluate_CDGTRA;
+  EvalTable[CDUTR] = &Simulator::Evaluate_CDUTR;
+  EvalTable[CDSTR] = &Simulator::Evaluate_CDSTR;
+  EvalTable[CEDTR] = &Simulator::Evaluate_CEDTR;
+  EvalTable[QADTR] = &Simulator::Evaluate_QADTR;
+  EvalTable[IEDTR] = &Simulator::Evaluate_IEDTR;
+  EvalTable[RRDTR] = &Simulator::Evaluate_RRDTR;
+  EvalTable[CXGTRA] = &Simulator::Evaluate_CXGTRA;
+  EvalTable[CXUTR] = &Simulator::Evaluate_CXUTR;
+  EvalTable[CXSTR] = &Simulator::Evaluate_CXSTR;
+  EvalTable[CEXTR] = &Simulator::Evaluate_CEXTR;
+  EvalTable[QAXTR] = &Simulator::Evaluate_QAXTR;
+  EvalTable[IEXTR] = &Simulator::Evaluate_IEXTR;
+  EvalTable[RRXTR] = &Simulator::Evaluate_RRXTR;
+  EvalTable[LPGR] = &Simulator::Evaluate_LPGR;
+  EvalTable[LNGR] = &Simulator::Evaluate_LNGR;
+  EvalTable[LTGR] = &Simulator::Evaluate_LTGR;
+  EvalTable[LCGR] = &Simulator::Evaluate_LCGR;
+  EvalTable[LGR] = &Simulator::Evaluate_LGR;
+  EvalTable[LGBR] = &Simulator::Evaluate_LGBR;
+  EvalTable[LGHR] = &Simulator::Evaluate_LGHR;
+  EvalTable[AGR] = &Simulator::Evaluate_AGR;
+  EvalTable[SGR] = &Simulator::Evaluate_SGR;
+  EvalTable[ALGR] = &Simulator::Evaluate_ALGR;
+  EvalTable[SLGR] = &Simulator::Evaluate_SLGR;
+  EvalTable[MSGR] = &Simulator::Evaluate_MSGR;
+  EvalTable[DSGR] = &Simulator::Evaluate_DSGR;
+  EvalTable[LRVGR] = &Simulator::Evaluate_LRVGR;
+  EvalTable[LPGFR] = &Simulator::Evaluate_LPGFR;
+  EvalTable[LNGFR] = &Simulator::Evaluate_LNGFR;
+  EvalTable[LTGFR] = &Simulator::Evaluate_LTGFR;
+  EvalTable[LCGFR] = &Simulator::Evaluate_LCGFR;
+  EvalTable[LGFR] = &Simulator::Evaluate_LGFR;
+  EvalTable[LLGFR] = &Simulator::Evaluate_LLGFR;
+  EvalTable[LLGTR] = &Simulator::Evaluate_LLGTR;
+  EvalTable[AGFR] = &Simulator::Evaluate_AGFR;
+  EvalTable[SGFR] = &Simulator::Evaluate_SGFR;
+  EvalTable[ALGFR] = &Simulator::Evaluate_ALGFR;
+  EvalTable[SLGFR] = &Simulator::Evaluate_SLGFR;
+  EvalTable[MSGFR] = &Simulator::Evaluate_MSGFR;
+  EvalTable[DSGFR] = &Simulator::Evaluate_DSGFR;
+  EvalTable[KMAC] = &Simulator::Evaluate_KMAC;
+  EvalTable[LRVR] = &Simulator::Evaluate_LRVR;
+  EvalTable[CGR] = &Simulator::Evaluate_CGR;
+  EvalTable[CLGR] = &Simulator::Evaluate_CLGR;
+  EvalTable[LBR] = &Simulator::Evaluate_LBR;
+  EvalTable[LHR] = &Simulator::Evaluate_LHR;
+  EvalTable[KMF] = &Simulator::Evaluate_KMF;
+  EvalTable[KMO] = &Simulator::Evaluate_KMO;
+  EvalTable[PCC] = &Simulator::Evaluate_PCC;
+  EvalTable[KMCTR] = &Simulator::Evaluate_KMCTR;
+  EvalTable[KM] = &Simulator::Evaluate_KM;
+  EvalTable[KMC] = &Simulator::Evaluate_KMC;
+  EvalTable[CGFR] = &Simulator::Evaluate_CGFR;
+  EvalTable[KIMD] = &Simulator::Evaluate_KIMD;
+  EvalTable[KLMD] = &Simulator::Evaluate_KLMD;
+  EvalTable[CFDTR] = &Simulator::Evaluate_CFDTR;
+  EvalTable[CLGDTR] = &Simulator::Evaluate_CLGDTR;
+  EvalTable[CLFDTR] = &Simulator::Evaluate_CLFDTR;
+  EvalTable[BCTGR] = &Simulator::Evaluate_BCTGR;
+  EvalTable[CFXTR] = &Simulator::Evaluate_CFXTR;
+  EvalTable[CLFXTR] = &Simulator::Evaluate_CLFXTR;
+  EvalTable[CDFTR] = &Simulator::Evaluate_CDFTR;
+  EvalTable[CDLGTR] = &Simulator::Evaluate_CDLGTR;
+  EvalTable[CDLFTR] = &Simulator::Evaluate_CDLFTR;
+  EvalTable[CXFTR] = &Simulator::Evaluate_CXFTR;
+  EvalTable[CXLGTR] = &Simulator::Evaluate_CXLGTR;
+  EvalTable[CXLFTR] = &Simulator::Evaluate_CXLFTR;
+  EvalTable[CGRT] = &Simulator::Evaluate_CGRT;
+  EvalTable[NGR] = &Simulator::Evaluate_NGR;
+  EvalTable[OGR] = &Simulator::Evaluate_OGR;
+  EvalTable[XGR] = &Simulator::Evaluate_XGR;
+  EvalTable[FLOGR] = &Simulator::Evaluate_FLOGR;
+  EvalTable[LLGCR] = &Simulator::Evaluate_LLGCR;
+  EvalTable[LLGHR] = &Simulator::Evaluate_LLGHR;
+  EvalTable[MLGR] = &Simulator::Evaluate_MLGR;
+  EvalTable[DLGR] = &Simulator::Evaluate_DLGR;
+  EvalTable[ALCGR] = &Simulator::Evaluate_ALCGR;
+  EvalTable[SLBGR] = &Simulator::Evaluate_SLBGR;
+  EvalTable[EPSW] = &Simulator::Evaluate_EPSW;
+  EvalTable[TRTT] = &Simulator::Evaluate_TRTT;
+  EvalTable[TRTO] = &Simulator::Evaluate_TRTO;
+  EvalTable[TROT] = &Simulator::Evaluate_TROT;
+  EvalTable[TROO] = &Simulator::Evaluate_TROO;
+  EvalTable[LLCR] = &Simulator::Evaluate_LLCR;
+  EvalTable[LLHR] = &Simulator::Evaluate_LLHR;
+  EvalTable[MLR] = &Simulator::Evaluate_MLR;
+  EvalTable[DLR] = &Simulator::Evaluate_DLR;
+  EvalTable[ALCR] = &Simulator::Evaluate_ALCR;
+  EvalTable[SLBR] = &Simulator::Evaluate_SLBR;
+  EvalTable[CU14] = &Simulator::Evaluate_CU14;
+  EvalTable[CU24] = &Simulator::Evaluate_CU24;
+  EvalTable[CU41] = &Simulator::Evaluate_CU41;
+  EvalTable[CU42] = &Simulator::Evaluate_CU42;
+  EvalTable[TRTRE] = &Simulator::Evaluate_TRTRE;
+  EvalTable[SRSTU] = &Simulator::Evaluate_SRSTU;
+  EvalTable[TRTE] = &Simulator::Evaluate_TRTE;
+  EvalTable[AHHHR] = &Simulator::Evaluate_AHHHR;
+  EvalTable[SHHHR] = &Simulator::Evaluate_SHHHR;
+  EvalTable[ALHHHR] = &Simulator::Evaluate_ALHHHR;
+  EvalTable[SLHHHR] = &Simulator::Evaluate_SLHHHR;
+  EvalTable[CHHR] = &Simulator::Evaluate_CHHR;
+  EvalTable[AHHLR] = &Simulator::Evaluate_AHHLR;
+  EvalTable[SHHLR] = &Simulator::Evaluate_SHHLR;
+  EvalTable[ALHHLR] = &Simulator::Evaluate_ALHHLR;
+  EvalTable[SLHHLR] = &Simulator::Evaluate_SLHHLR;
+  EvalTable[CHLR] = &Simulator::Evaluate_CHLR;
+  EvalTable[POPCNT_Z] = &Simulator::Evaluate_POPCNT_Z;
+  EvalTable[LOCGR] = &Simulator::Evaluate_LOCGR;
+  EvalTable[NGRK] = &Simulator::Evaluate_NGRK;
+  EvalTable[OGRK] = &Simulator::Evaluate_OGRK;
+  EvalTable[XGRK] = &Simulator::Evaluate_XGRK;
+  EvalTable[AGRK] = &Simulator::Evaluate_AGRK;
+  EvalTable[SGRK] = &Simulator::Evaluate_SGRK;
+  EvalTable[ALGRK] = &Simulator::Evaluate_ALGRK;
+  EvalTable[SLGRK] = &Simulator::Evaluate_SLGRK;
+  EvalTable[LOCR] = &Simulator::Evaluate_LOCR;
+  EvalTable[NRK] = &Simulator::Evaluate_NRK;
+  EvalTable[ORK] = &Simulator::Evaluate_ORK;
+  EvalTable[XRK] = &Simulator::Evaluate_XRK;
+  EvalTable[ARK] = &Simulator::Evaluate_ARK;
+  EvalTable[SRK] = &Simulator::Evaluate_SRK;
+  EvalTable[ALRK] = &Simulator::Evaluate_ALRK;
+  EvalTable[SLRK] = &Simulator::Evaluate_SLRK;
+  EvalTable[LTG] = &Simulator::Evaluate_LTG;
+  EvalTable[LG] = &Simulator::Evaluate_LG;
+  EvalTable[CVBY] = &Simulator::Evaluate_CVBY;
+  EvalTable[AG] = &Simulator::Evaluate_AG;
+  EvalTable[SG] = &Simulator::Evaluate_SG;
+  EvalTable[ALG] = &Simulator::Evaluate_ALG;
+  EvalTable[SLG] = &Simulator::Evaluate_SLG;
+  EvalTable[MSG] = &Simulator::Evaluate_MSG;
+  EvalTable[DSG] = &Simulator::Evaluate_DSG;
+  EvalTable[CVBG] = &Simulator::Evaluate_CVBG;
+  EvalTable[LRVG] = &Simulator::Evaluate_LRVG;
+  EvalTable[LT] = &Simulator::Evaluate_LT;
+  EvalTable[LGF] = &Simulator::Evaluate_LGF;
+  EvalTable[LGH] = &Simulator::Evaluate_LGH;
+  EvalTable[LLGF] = &Simulator::Evaluate_LLGF;
+  EvalTable[LLGT] = &Simulator::Evaluate_LLGT;
+  EvalTable[AGF] = &Simulator::Evaluate_AGF;
+  EvalTable[SGF] = &Simulator::Evaluate_SGF;
+  EvalTable[ALGF] = &Simulator::Evaluate_ALGF;
+  EvalTable[SLGF] = &Simulator::Evaluate_SLGF;
+  EvalTable[MSGF] = &Simulator::Evaluate_MSGF;
+  EvalTable[DSGF] = &Simulator::Evaluate_DSGF;
+  EvalTable[LRV] = &Simulator::Evaluate_LRV;
+  EvalTable[LRVH] = &Simulator::Evaluate_LRVH;
+  EvalTable[CG] = &Simulator::Evaluate_CG;
+  EvalTable[CLG] = &Simulator::Evaluate_CLG;
+  EvalTable[STG] = &Simulator::Evaluate_STG;
+  EvalTable[NTSTG] = &Simulator::Evaluate_NTSTG;
+  EvalTable[CVDY] = &Simulator::Evaluate_CVDY;
+  EvalTable[CVDG] = &Simulator::Evaluate_CVDG;
+  EvalTable[STRVG] = &Simulator::Evaluate_STRVG;
+  EvalTable[CGF] = &Simulator::Evaluate_CGF;
+  EvalTable[CLGF] = &Simulator::Evaluate_CLGF;
+  EvalTable[LTGF] = &Simulator::Evaluate_LTGF;
+  EvalTable[CGH] = &Simulator::Evaluate_CGH;
+  EvalTable[PFD] = &Simulator::Evaluate_PFD;
+  EvalTable[STRV] = &Simulator::Evaluate_STRV;
+  EvalTable[STRVH] = &Simulator::Evaluate_STRVH;
+  EvalTable[BCTG] = &Simulator::Evaluate_BCTG;
+  EvalTable[STY] = &Simulator::Evaluate_STY;
+  EvalTable[MSY] = &Simulator::Evaluate_MSY;
+  EvalTable[NY] = &Simulator::Evaluate_NY;
+  EvalTable[CLY] = &Simulator::Evaluate_CLY;
+  EvalTable[OY] = &Simulator::Evaluate_OY;
+  EvalTable[XY] = &Simulator::Evaluate_XY;
+  EvalTable[LY] = &Simulator::Evaluate_LY;
+  EvalTable[CY] = &Simulator::Evaluate_CY;
+  EvalTable[AY] = &Simulator::Evaluate_AY;
+  EvalTable[SY] = &Simulator::Evaluate_SY;
+  EvalTable[MFY] = &Simulator::Evaluate_MFY;
+  EvalTable[ALY] = &Simulator::Evaluate_ALY;
+  EvalTable[SLY] = &Simulator::Evaluate_SLY;
+  EvalTable[STHY] = &Simulator::Evaluate_STHY;
+  EvalTable[LAY] = &Simulator::Evaluate_LAY;
+  EvalTable[STCY] = &Simulator::Evaluate_STCY;
+  EvalTable[ICY] = &Simulator::Evaluate_ICY;
+  EvalTable[LAEY] = &Simulator::Evaluate_LAEY;
+  EvalTable[LB] = &Simulator::Evaluate_LB;
+  EvalTable[LGB] = &Simulator::Evaluate_LGB;
+  EvalTable[LHY] = &Simulator::Evaluate_LHY;
+  EvalTable[CHY] = &Simulator::Evaluate_CHY;
+  EvalTable[AHY] = &Simulator::Evaluate_AHY;
+  EvalTable[SHY] = &Simulator::Evaluate_SHY;
+  EvalTable[MHY] = &Simulator::Evaluate_MHY;
+  EvalTable[NG] = &Simulator::Evaluate_NG;
+  EvalTable[OG] = &Simulator::Evaluate_OG;
+  EvalTable[XG] = &Simulator::Evaluate_XG;
+  EvalTable[LGAT] = &Simulator::Evaluate_LGAT;
+  EvalTable[MLG] = &Simulator::Evaluate_MLG;
+  EvalTable[DLG] = &Simulator::Evaluate_DLG;
+  EvalTable[ALCG] = &Simulator::Evaluate_ALCG;
+  EvalTable[SLBG] = &Simulator::Evaluate_SLBG;
+  EvalTable[STPQ] = &Simulator::Evaluate_STPQ;
+  EvalTable[LPQ] = &Simulator::Evaluate_LPQ;
+  EvalTable[LLGC] = &Simulator::Evaluate_LLGC;
+  EvalTable[LLGH] = &Simulator::Evaluate_LLGH;
+  EvalTable[LLC] = &Simulator::Evaluate_LLC;
+  EvalTable[LLH] = &Simulator::Evaluate_LLH;
+  EvalTable[ML] = &Simulator::Evaluate_ML;
+  EvalTable[DL] = &Simulator::Evaluate_DL;
+  EvalTable[ALC] = &Simulator::Evaluate_ALC;
+  EvalTable[SLB] = &Simulator::Evaluate_SLB;
+  EvalTable[LLGTAT] = &Simulator::Evaluate_LLGTAT;
+  EvalTable[LLGFAT] = &Simulator::Evaluate_LLGFAT;
+  EvalTable[LAT] = &Simulator::Evaluate_LAT;
+  EvalTable[LBH] = &Simulator::Evaluate_LBH;
+  EvalTable[LLCH] = &Simulator::Evaluate_LLCH;
+  EvalTable[STCH] = &Simulator::Evaluate_STCH;
+  EvalTable[LHH] = &Simulator::Evaluate_LHH;
+  EvalTable[LLHH] = &Simulator::Evaluate_LLHH;
+  EvalTable[STHH] = &Simulator::Evaluate_STHH;
+  EvalTable[LFHAT] = &Simulator::Evaluate_LFHAT;
+  EvalTable[LFH] = &Simulator::Evaluate_LFH;
+  EvalTable[STFH] = &Simulator::Evaluate_STFH;
+  EvalTable[CHF] = &Simulator::Evaluate_CHF;
+  EvalTable[MVCDK] = &Simulator::Evaluate_MVCDK;
+  EvalTable[MVHHI] = &Simulator::Evaluate_MVHHI;
+  EvalTable[MVGHI] = &Simulator::Evaluate_MVGHI;
+  EvalTable[MVHI] = &Simulator::Evaluate_MVHI;
+  EvalTable[CHHSI] = &Simulator::Evaluate_CHHSI;
+  EvalTable[CGHSI] = &Simulator::Evaluate_CGHSI;
+  EvalTable[CHSI] = &Simulator::Evaluate_CHSI;
+  EvalTable[CLFHSI] = &Simulator::Evaluate_CLFHSI;
+  EvalTable[TBEGIN] = &Simulator::Evaluate_TBEGIN;
+  EvalTable[TBEGINC] = &Simulator::Evaluate_TBEGINC;
+  EvalTable[LMG] = &Simulator::Evaluate_LMG;
+  EvalTable[SRAG] = &Simulator::Evaluate_SRAG;
+  EvalTable[SLAG] = &Simulator::Evaluate_SLAG;
+  EvalTable[SRLG] = &Simulator::Evaluate_SRLG;
+  EvalTable[SLLG] = &Simulator::Evaluate_SLLG;
+  EvalTable[CSY] = &Simulator::Evaluate_CSY;
+  EvalTable[RLLG] = &Simulator::Evaluate_RLLG;
+  EvalTable[RLL] = &Simulator::Evaluate_RLL;
+  EvalTable[STMG] = &Simulator::Evaluate_STMG;
+  EvalTable[STMH] = &Simulator::Evaluate_STMH;
+  EvalTable[STCMH] = &Simulator::Evaluate_STCMH;
+  EvalTable[STCMY] = &Simulator::Evaluate_STCMY;
+  EvalTable[CDSY] = &Simulator::Evaluate_CDSY;
+  EvalTable[CDSG] = &Simulator::Evaluate_CDSG;
+  EvalTable[BXHG] = &Simulator::Evaluate_BXHG;
+  EvalTable[BXLEG] = &Simulator::Evaluate_BXLEG;
+  EvalTable[ECAG] = &Simulator::Evaluate_ECAG;
+  EvalTable[TMY] = &Simulator::Evaluate_TMY;
+  EvalTable[MVIY] = &Simulator::Evaluate_MVIY;
+  EvalTable[NIY] = &Simulator::Evaluate_NIY;
+  EvalTable[CLIY] = &Simulator::Evaluate_CLIY;
+  EvalTable[OIY] = &Simulator::Evaluate_OIY;
+  EvalTable[XIY] = &Simulator::Evaluate_XIY;
+  EvalTable[ASI] = &Simulator::Evaluate_ASI;
+  EvalTable[ALSI] = &Simulator::Evaluate_ALSI;
+  EvalTable[AGSI] = &Simulator::Evaluate_AGSI;
+  EvalTable[ALGSI] = &Simulator::Evaluate_ALGSI;
+  EvalTable[ICMH] = &Simulator::Evaluate_ICMH;
+  EvalTable[ICMY] = &Simulator::Evaluate_ICMY;
+  EvalTable[MVCLU] = &Simulator::Evaluate_MVCLU;
+  EvalTable[CLCLU] = &Simulator::Evaluate_CLCLU;
+  EvalTable[STMY] = &Simulator::Evaluate_STMY;
+  EvalTable[LMH] = &Simulator::Evaluate_LMH;
+  EvalTable[LMY] = &Simulator::Evaluate_LMY;
+  EvalTable[TP] = &Simulator::Evaluate_TP;
+  EvalTable[SRAK] = &Simulator::Evaluate_SRAK;
+  EvalTable[SLAK] = &Simulator::Evaluate_SLAK;
+  EvalTable[SRLK] = &Simulator::Evaluate_SRLK;
+  EvalTable[SLLK] = &Simulator::Evaluate_SLLK;
+  EvalTable[LOCG] = &Simulator::Evaluate_LOCG;
+  EvalTable[STOCG] = &Simulator::Evaluate_STOCG;
+  EvalTable[LANG] = &Simulator::Evaluate_LANG;
+  EvalTable[LAOG] = &Simulator::Evaluate_LAOG;
+  EvalTable[LAXG] = &Simulator::Evaluate_LAXG;
+  EvalTable[LAAG] = &Simulator::Evaluate_LAAG;
+  EvalTable[LAALG] = &Simulator::Evaluate_LAALG;
+  EvalTable[LOC] = &Simulator::Evaluate_LOC;
+  EvalTable[STOC] = &Simulator::Evaluate_STOC;
+  EvalTable[LAN] = &Simulator::Evaluate_LAN;
+  EvalTable[LAO] = &Simulator::Evaluate_LAO;
+  EvalTable[LAX] = &Simulator::Evaluate_LAX;
+  EvalTable[LAA] = &Simulator::Evaluate_LAA;
+  EvalTable[LAAL] = &Simulator::Evaluate_LAAL;
+  EvalTable[BRXHG] = &Simulator::Evaluate_BRXHG;
+  EvalTable[BRXLG] = &Simulator::Evaluate_BRXLG;
+  EvalTable[RISBLG] = &Simulator::Evaluate_RISBLG;
+  EvalTable[RNSBG] = &Simulator::Evaluate_RNSBG;
+  EvalTable[RISBG] = &Simulator::Evaluate_RISBG;
+  EvalTable[ROSBG] = &Simulator::Evaluate_ROSBG;
+  EvalTable[RXSBG] = &Simulator::Evaluate_RXSBG;
+  EvalTable[RISBGN] = &Simulator::Evaluate_RISBGN;
+  EvalTable[RISBHG] = &Simulator::Evaluate_RISBHG;
+  EvalTable[CGRJ] = &Simulator::Evaluate_CGRJ;
+  EvalTable[CGIT] = &Simulator::Evaluate_CGIT;
+  EvalTable[CIT] = &Simulator::Evaluate_CIT;
+  EvalTable[CLFIT] = &Simulator::Evaluate_CLFIT;
+  EvalTable[CGIJ] = &Simulator::Evaluate_CGIJ;
+  EvalTable[CIJ] = &Simulator::Evaluate_CIJ;
+  EvalTable[AHIK] = &Simulator::Evaluate_AHIK;
+  EvalTable[AGHIK] = &Simulator::Evaluate_AGHIK;
+  EvalTable[ALHSIK] = &Simulator::Evaluate_ALHSIK;
+  EvalTable[ALGHSIK] = &Simulator::Evaluate_ALGHSIK;
+  EvalTable[CGRB] = &Simulator::Evaluate_CGRB;
+  EvalTable[CGIB] = &Simulator::Evaluate_CGIB;
+  EvalTable[CIB] = &Simulator::Evaluate_CIB;
+  EvalTable[LDEB] = &Simulator::Evaluate_LDEB;
+  EvalTable[LXDB] = &Simulator::Evaluate_LXDB;
+  EvalTable[LXEB] = &Simulator::Evaluate_LXEB;
+  EvalTable[MXDB] = &Simulator::Evaluate_MXDB;
+  EvalTable[KEB] = &Simulator::Evaluate_KEB;
+  EvalTable[CEB] = &Simulator::Evaluate_CEB;
+  EvalTable[AEB] = &Simulator::Evaluate_AEB;
+  EvalTable[SEB] = &Simulator::Evaluate_SEB;
+  EvalTable[MDEB] = &Simulator::Evaluate_MDEB;
+  EvalTable[DEB] = &Simulator::Evaluate_DEB;
+  EvalTable[MAEB] = &Simulator::Evaluate_MAEB;
+  EvalTable[MSEB] = &Simulator::Evaluate_MSEB;
+  EvalTable[TCEB] = &Simulator::Evaluate_TCEB;
+  EvalTable[TCDB] = &Simulator::Evaluate_TCDB;
+  EvalTable[TCXB] = &Simulator::Evaluate_TCXB;
+  EvalTable[SQEB] = &Simulator::Evaluate_SQEB;
+  EvalTable[SQDB] = &Simulator::Evaluate_SQDB;
+  EvalTable[MEEB] = &Simulator::Evaluate_MEEB;
+  EvalTable[KDB] = &Simulator::Evaluate_KDB;
+  EvalTable[CDB] = &Simulator::Evaluate_CDB;
+  EvalTable[ADB] = &Simulator::Evaluate_ADB;
+  EvalTable[SDB] = &Simulator::Evaluate_SDB;
+  EvalTable[MDB] = &Simulator::Evaluate_MDB;
+  EvalTable[DDB] = &Simulator::Evaluate_DDB;
+  EvalTable[MADB] = &Simulator::Evaluate_MADB;
+  EvalTable[MSDB] = &Simulator::Evaluate_MSDB;
+  EvalTable[SLDT] = &Simulator::Evaluate_SLDT;
+  EvalTable[SRDT] = &Simulator::Evaluate_SRDT;
+  EvalTable[SLXT] = &Simulator::Evaluate_SLXT;
+  EvalTable[SRXT] = &Simulator::Evaluate_SRXT;
+  EvalTable[TDCET] = &Simulator::Evaluate_TDCET;
+  EvalTable[TDGET] = &Simulator::Evaluate_TDGET;
+  EvalTable[TDCDT] = &Simulator::Evaluate_TDCDT;
+  EvalTable[TDGDT] = &Simulator::Evaluate_TDGDT;
+  EvalTable[TDCXT] = &Simulator::Evaluate_TDCXT;
+  EvalTable[TDGXT] = &Simulator::Evaluate_TDGXT;
+  EvalTable[LEY] = &Simulator::Evaluate_LEY;
+  EvalTable[LDY] = &Simulator::Evaluate_LDY;
+  EvalTable[STEY] = &Simulator::Evaluate_STEY;
+  EvalTable[STDY] = &Simulator::Evaluate_STDY;
+  EvalTable[CZDT] = &Simulator::Evaluate_CZDT;
+  EvalTable[CZXT] = &Simulator::Evaluate_CZXT;
+  EvalTable[CDZT] = &Simulator::Evaluate_CDZT;
+  EvalTable[CXZT] = &Simulator::Evaluate_CXZT;
+}  // NOLINT
+
 Simulator::Simulator(Isolate* isolate) : isolate_(isolate) {
   i_cache_ = isolate_->simulator_i_cache();
   if (i_cache_ == NULL) {
@@ -2587,6 +3347,7 @@
         SetS390OverflowCode(isOF);
         set_register(r1, r2_val - r3_val);
       }
+      break;
     }
     case AGHI:
     case MGHI: {
@@ -2987,17 +3748,19 @@
       RREInstruction* rrinst = reinterpret_cast<RREInstruction*>(instr);
       int r1 = rrinst->R1Value();
       int r2 = rrinst->R2Value();
-#ifdef V8_TARGET_ARCH_S390X
+      if (op == LGBR) {
       int64_t r2_val = get_low_register<int64_t>(r2);
       r2_val <<= 56;
       r2_val >>= 56;
       set_register(r1, r2_val);
-#else
+      } else if (op == LBR) {
       int32_t r2_val = get_low_register<int32_t>(r2);
       r2_val <<= 24;
       r2_val >>= 24;
       set_low_register(r1, r2_val);
-#endif
+      } else {
+        UNREACHABLE();
+      }
       break;
     }
     case LGHR:
@@ -3005,17 +3768,19 @@
       RREInstruction* rrinst = reinterpret_cast<RREInstruction*>(instr);
       int r1 = rrinst->R1Value();
       int r2 = rrinst->R2Value();
-#ifdef V8_TARGET_ARCH_S390X
+      if (op == LGHR) {
       int64_t r2_val = get_low_register<int64_t>(r2);
       r2_val <<= 48;
       r2_val >>= 48;
       set_register(r1, r2_val);
-#else
+      } else if (op == LHR) {
       int32_t r2_val = get_low_register<int32_t>(r2);
       r2_val <<= 16;
       r2_val >>= 16;
       set_low_register(r1, r2_val);
-#endif
+      } else {
+        UNREACHABLE();
+      }
       break;
     }
     case ALCR: {
@@ -4802,47 +5567,56 @@
   return result;
 }
 
-// Executes the current instruction.
-void Simulator::ExecuteInstruction(Instruction* instr, bool auto_incr_pc) {
-  if (v8::internal::FLAG_check_icache) {
-    CheckICache(isolate_->simulator_i_cache(), instr);
-  }
-  pc_modified_ = false;
-  if (::v8::internal::FLAG_trace_sim) {
-    disasm::NameConverter converter;
-    disasm::Disassembler dasm(converter);
-    // use a reasonably large buffer
-    v8::internal::EmbeddedVector<char, 256> buffer;
-    dasm.InstructionDecode(buffer, reinterpret_cast<byte*>(instr));
-#ifdef V8_TARGET_ARCH_S390X
-    PrintF("%05ld  %08" V8PRIxPTR "  %s\n", icount_,
-           reinterpret_cast<intptr_t>(instr), buffer.start());
-#else
-    PrintF("%05lld  %08" V8PRIxPTR "  %s\n", icount_,
-           reinterpret_cast<intptr_t>(instr), buffer.start());
-#endif
-    // Flush stdout to prevent incomplete file output during abnormal exits
-    // This is caused by the output being buffered before being written to file
-    fflush(stdout);
-  }
-
-  // Try to simulate as S390 Instruction first.
-  bool processed = true;
-
+int Simulator::DecodeInstructionOriginal(Instruction* instr) {
   int instrLength = instr->InstructionLength();
+  bool processed = true;
   if (instrLength == 2)
     processed = DecodeTwoByte(instr);
   else if (instrLength == 4)
     processed = DecodeFourByte(instr);
   else if (instrLength == 6)
     processed = DecodeSixByte(instr);
+  return instrLength;
+}
 
-  if (processed) {
-    if (!pc_modified_ && auto_incr_pc) {
-      set_pc(reinterpret_cast<intptr_t>(instr) + instrLength);
-    }
-    return;
+int Simulator::DecodeInstruction(Instruction* instr) {
+  Opcode op = instr->S390OpcodeValue();
+  DCHECK(EvalTable[op] != NULL);
+  return (this->*EvalTable[op])(instr);
+}
+
+// Executes the current instruction.
+void Simulator::ExecuteInstruction(Instruction* instr, bool auto_incr_pc) {
+  icount_++;
+
+  if (v8::internal::FLAG_check_icache) {
+    CheckICache(isolate_->simulator_i_cache(), instr);
   }
+
+  pc_modified_ = false;
+
+  if (::v8::internal::FLAG_trace_sim) {
+    disasm::NameConverter converter;
+    disasm::Disassembler dasm(converter);
+    // use a reasonably large buffer
+    v8::internal::EmbeddedVector<char, 256> buffer;
+    dasm.InstructionDecode(buffer, reinterpret_cast<byte*>(instr));
+    PrintF("%05" PRId64 "  %08" V8PRIxPTR "  %s\n", icount_,
+           reinterpret_cast<intptr_t>(instr), buffer.start());
+
+    // Flush stdout to prevent incomplete file output during abnormal exits
+    // This is caused by the output being buffered before being written to file
+    fflush(stdout);
+  }
+
+  // Try to simulate as S390 Instruction first.
+  int length = DecodeInstruction(instr);
+
+  if (!pc_modified_ && auto_incr_pc) {
+    DCHECK(length == instr->InstructionLength());
+    set_pc(reinterpret_cast<intptr_t>(instr) + length);
+  }
+  return;
 }
 
 void Simulator::DebugStart() {
@@ -4860,7 +5634,6 @@
     // should be stopping at a particular executed instruction.
     while (program_counter != end_sim_pc) {
       Instruction* instr = reinterpret_cast<Instruction*>(program_counter);
-      icount_++;
       ExecuteInstruction(instr);
       program_counter = get_pc();
     }
@@ -4869,7 +5642,6 @@
     // we reach the particular instuction count.
     while (program_counter != end_sim_pc) {
       Instruction* instr = reinterpret_cast<Instruction*>(program_counter);
-      icount_++;
       if (icount_ == ::v8::internal::FLAG_stop_sim_at) {
         S390Debugger dbg(this);
         dbg.Debug();
@@ -5121,6 +5893,2946 @@
   return address;
 }
 
+#define EVALUATE(name) \
+  int Simulator::Evaluate_##name(Instruction* instr)
+
+#define DCHECK_OPCODE(op) DCHECK(instr->S390OpcodeValue() == op)
+
+#define AS(type) reinterpret_cast<type*>(instr)
+
+#define DECODE_RIL_A_INSTRUCTION(r1, i2)               \
+  int r1 = AS(RILInstruction)->R1Value();              \
+  uint32_t i2 = AS(RILInstruction)->I2UnsignedValue(); \
+  int length = 6;
+
+#define DECODE_RIL_B_INSTRUCTION(r1, i2)      \
+  int r1 = AS(RILInstruction)->R1Value();     \
+  int32_t i2 = AS(RILInstruction)->I2Value(); \
+  int length = 6;
+
+#define DECODE_RIL_C_INSTRUCTION(m1, ri2)                               \
+  Condition m1 = static_cast<Condition>(AS(RILInstruction)->R1Value()); \
+  uint64_t ri2 = AS(RILInstruction)->I2Value();                         \
+  int length = 6;
+
+#define DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2) \
+  int r1 = AS(RXYInstruction)->R1Value();        \
+  int x2 = AS(RXYInstruction)->X2Value();        \
+  int b2 = AS(RXYInstruction)->B2Value();        \
+  int d2 = AS(RXYInstruction)->D2Value();        \
+  int length = 6;
+
+#define DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val) \
+  int x2 = AS(RXInstruction)->X2Value();            \
+  int b2 = AS(RXInstruction)->B2Value();            \
+  int r1 = AS(RXInstruction)->R1Value();            \
+  intptr_t d2_val = AS(RXInstruction)->D2Value();   \
+  int length = 4;
+
+#define DECODE_RS_A_INSTRUCTION(r1, r3, b2, d2) \
+  int r3 = AS(RSInstruction)->R3Value();        \
+  int b2 = AS(RSInstruction)->B2Value();        \
+  int r1 = AS(RSInstruction)->R1Value();        \
+  intptr_t d2 = AS(RSInstruction)->D2Value();   \
+  int length = 4;
+
+#define DECODE_RS_A_INSTRUCTION_NO_R3(r1, b2, d2) \
+  int b2 = AS(RSInstruction)->B2Value();          \
+  int r1 = AS(RSInstruction)->R1Value();          \
+  int d2 = AS(RSInstruction)->D2Value();          \
+  int length = 4;
+
+#define DECODE_SI_INSTRUCTION_I_UINT8(b1, d1_val, imm_val) \
+  int b1 = AS(SIInstruction)->B1Value();                   \
+  intptr_t d1_val = AS(SIInstruction)->D1Value();          \
+  uint8_t imm_val = AS(SIInstruction)->I2Value();          \
+  int length = 4;
+
+#define DECODE_RRE_INSTRUCTION(r1, r2)    \
+  int r1 = AS(RREInstruction)->R1Value(); \
+  int r2 = AS(RREInstruction)->R2Value(); \
+  int length = 4;
+
+#define DECODE_RR_INSTRUCTION(r1, r2)    \
+  int r1 = AS(RRInstruction)->R1Value(); \
+  int r2 = AS(RRInstruction)->R2Value(); \
+  int length = 2;
+
+#define DECODE_RIE_D_INSTRUCTION(r1, r2, i2)  \
+  int r1 = AS(RIEInstruction)->R1Value();     \
+  int r2 = AS(RIEInstruction)->R2Value();     \
+  int32_t i2 = AS(RIEInstruction)->I6Value(); \
+  int length = 6;
+
+#define DECODE_RIE_F_INSTRUCTION(r1, r2, i3, i4, i5) \
+  int r1 = AS(RIEInstruction)->R1Value();            \
+  int r2 = AS(RIEInstruction)->R2Value();            \
+  uint32_t i3 = AS(RIEInstruction)->I3Value();       \
+  uint32_t i4 = AS(RIEInstruction)->I4Value();       \
+  uint32_t i5 = AS(RIEInstruction)->I5Value();       \
+  int length = 6;
+
+#define DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2) \
+  int r1 = AS(RSYInstruction)->R1Value();        \
+  int r3 = AS(RSYInstruction)->R3Value();        \
+  int b2 = AS(RSYInstruction)->B2Value();        \
+  intptr_t d2 = AS(RSYInstruction)->D2Value();   \
+  int length = 6;
+
+#define DECODE_RI_A_INSTRUCTION(instr, r1, i2) \
+  int32_t r1 = AS(RIInstruction)->R1Value();   \
+  int16_t i2 = AS(RIInstruction)->I2Value();   \
+  int length = 4;
+
+#define DECODE_RI_B_INSTRUCTION(instr, r1, i2) \
+  int32_t r1 = AS(RILInstruction)->R1Value();  \
+  int16_t i2 = AS(RILInstruction)->I2Value();  \
+  int length = 4;
+
+#define DECODE_RI_C_INSTRUCTION(instr, m1, i2)                         \
+  Condition m1 = static_cast<Condition>(AS(RIInstruction)->R1Value()); \
+  int16_t i2 = AS(RIInstruction)->I2Value();                           \
+  int length = 4;
+
+#define GET_ADDRESS(index_reg, base_reg, offset)       \
+  (((index_reg) == 0) ? 0 : get_register(index_reg)) + \
+      (((base_reg) == 0) ? 0 : get_register(base_reg)) + offset
+
+int Simulator::Evaluate_Unknown(Instruction* instr) {
+  UNREACHABLE();
+  return 0;
+}
+
+EVALUATE(CLR) {
+  DCHECK_OPCODE(CLR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  uint32_t r1_val = get_low_register<uint32_t>(r1);
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  SetS390ConditionCode<uint32_t>(r1_val, r2_val);
+  return length;
+}
+
+EVALUATE(LR) {
+  DCHECK_OPCODE(LR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  set_low_register(r1, get_low_register<int32_t>(r2));
+  return length;
+}
+
+EVALUATE(AR) {
+  DCHECK_OPCODE(AR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  bool isOF = CheckOverflowForIntAdd(r1_val, r2_val, int32_t);
+  r1_val += r2_val;
+  SetS390ConditionCode<int32_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, r1_val);
+  return length;
+}
+
+EVALUATE(L) {
+  DCHECK_OPCODE(L);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int32_t mem_val = ReadW(addr, instr);
+  set_low_register(r1, mem_val);
+  return length;
+}
+
+EVALUATE(BRC) {
+  DCHECK_OPCODE(BRC);
+  DECODE_RI_C_INSTRUCTION(instr, m1, i2);
+
+  if (TestConditionCode(m1)) {
+    intptr_t offset = 2 * i2;
+    set_pc(get_pc() + offset);
+  }
+  return length;
+}
+
+EVALUATE(AHI) {
+  DCHECK_OPCODE(AHI);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  bool isOF = CheckOverflowForIntAdd(r1_val, i2, int32_t);
+  r1_val += i2;
+  set_low_register(r1, r1_val);
+  SetS390ConditionCode<int32_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(AGHI) {
+  DCHECK_OPCODE(AGHI);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i2);
+  int64_t r1_val = get_register(r1);
+  bool isOF = false;
+  isOF = CheckOverflowForIntAdd(r1_val, i2, int64_t);
+  r1_val += i2;
+  set_register(r1, r1_val);
+  SetS390ConditionCode<int64_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(BRCL) {
+  DCHECK_OPCODE(BRCL);
+  DECODE_RIL_C_INSTRUCTION(m1, ri2);
+
+  if (TestConditionCode(m1)) {
+    intptr_t offset = 2 * ri2;
+    set_pc(get_pc() + offset);
+  }
+  return length;
+}
+
+EVALUATE(IIHF) {
+  DCHECK_OPCODE(IIHF);
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  set_high_register(r1, imm);
+  return length;
+}
+
+EVALUATE(IILF) {
+  DCHECK_OPCODE(IILF);
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  set_low_register(r1, imm);
+  return length;
+}
+
+EVALUATE(LGR) {
+  DCHECK_OPCODE(LGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  set_register(r1, get_register(r2));
+  return length;
+}
+
+EVALUATE(LG) {
+  DCHECK_OPCODE(LG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  intptr_t addr = GET_ADDRESS(x2, b2, d2);
+  int64_t mem_val = ReadDW(addr);
+  set_register(r1, mem_val);
+  return length;
+}
+
+EVALUATE(AGR) {
+  DCHECK_OPCODE(AGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = get_register(r2);
+  bool isOF = CheckOverflowForIntAdd(r1_val, r2_val, int64_t);
+  r1_val += r2_val;
+  set_register(r1, r1_val);
+  SetS390ConditionCode<int64_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(LGFR) {
+  DCHECK_OPCODE(LGFR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int64_t result = static_cast<int64_t>(r2_val);
+  set_register(r1, result);
+
+  return length;
+}
+
+EVALUATE(LBR) {
+  DCHECK_OPCODE(LBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  r2_val <<= 24;
+  r2_val >>= 24;
+  set_low_register(r1, r2_val);
+  return length;
+}
+
+EVALUATE(LGBR) {
+  DCHECK_OPCODE(LGBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_low_register<int64_t>(r2);
+  r2_val <<= 56;
+  r2_val >>= 56;
+  set_register(r1, r2_val);
+  return length;
+}
+
+EVALUATE(LHR) {
+  DCHECK_OPCODE(LHR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  r2_val <<= 16;
+  r2_val >>= 16;
+  set_low_register(r1, r2_val);
+  return length;
+}
+
+EVALUATE(LGHR) {
+  DCHECK_OPCODE(LGHR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_low_register<int64_t>(r2);
+  r2_val <<= 48;
+  r2_val >>= 48;
+  set_register(r1, r2_val);
+  return length;
+}
+
+EVALUATE(LGF) {
+  DCHECK_OPCODE(LGF);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  intptr_t addr = GET_ADDRESS(x2, b2, d2);
+  int64_t mem_val = static_cast<int64_t>(ReadW(addr, instr));
+  set_register(r1, mem_val);
+  return length;
+}
+
+EVALUATE(ST) {
+  DCHECK_OPCODE(ST);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  WriteW(addr, r1_val, instr);
+  return length;
+}
+
+EVALUATE(STG) {
+  DCHECK_OPCODE(STG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  intptr_t addr = GET_ADDRESS(x2, b2, d2);
+  uint64_t value = get_register(r1);
+  WriteDW(addr, value);
+  return length;
+}
+
+EVALUATE(STY) {
+  DCHECK_OPCODE(STY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  intptr_t addr = GET_ADDRESS(x2, b2, d2);
+  uint32_t value = get_low_register<uint32_t>(r1);
+  WriteW(addr, value, instr);
+  return length;
+}
+
+EVALUATE(LY) {
+  DCHECK_OPCODE(LY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  intptr_t addr = GET_ADDRESS(x2, b2, d2);
+  uint32_t mem_val = ReadWU(addr, instr);
+  set_low_register(r1, mem_val);
+  return length;
+}
+
+EVALUATE(LLGC) {
+  DCHECK_OPCODE(LLGC);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  uint8_t mem_val = ReadBU(GET_ADDRESS(x2, b2, d2));
+  set_register(r1, static_cast<uint64_t>(mem_val));
+  return length;
+}
+
+EVALUATE(LLC) {
+  DCHECK_OPCODE(LLC);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  uint8_t mem_val = ReadBU(GET_ADDRESS(x2, b2, d2));
+  set_low_register(r1, static_cast<uint32_t>(mem_val));
+  return length;
+}
+
+EVALUATE(RLL) {
+  DCHECK_OPCODE(RLL);
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // only takes rightmost 6 bits
+  int shiftBits = GET_ADDRESS(0, b2, d2) & 0x3F;
+  // unsigned
+  uint32_t r3_val = get_low_register<uint32_t>(r3);
+  uint32_t alu_out = 0;
+  uint32_t rotateBits = r3_val >> (32 - shiftBits);
+  alu_out = (r3_val << shiftBits) | (rotateBits);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(RISBG) {
+  DCHECK_OPCODE(RISBG);
+  DECODE_RIE_F_INSTRUCTION(r1, r2, i3, i4, i5);
+  // Starting Bit Position is Bits 2-7 of I3 field
+  uint32_t start_bit = i3 & 0x3F;
+  // Ending Bit Position is Bits 2-7 of I4 field
+  uint32_t end_bit = i4 & 0x3F;
+  // Shift Amount is Bits 2-7 of I5 field
+  uint32_t shift_amount = i5 & 0x3F;
+  // Zero out Remaining (unslected) bits if Bit 0 of I4 is 1.
+  bool zero_remaining = (0 != (i4 & 0x80));
+
+  uint64_t src_val = get_register(r2);
+
+  // Rotate Left by Shift Amount first
+  uint64_t rotated_val =
+      (src_val << shift_amount) | (src_val >> (64 - shift_amount));
+  int32_t width = end_bit - start_bit + 1;
+
+  uint64_t selection_mask = 0;
+  if (width < 64) {
+    selection_mask = (static_cast<uint64_t>(1) << width) - 1;
+  } else {
+    selection_mask = static_cast<uint64_t>(static_cast<int64_t>(-1));
+  }
+  selection_mask = selection_mask << (63 - end_bit);
+
+  uint64_t selected_val = rotated_val & selection_mask;
+
+  if (!zero_remaining) {
+    // Merged the unselected bits from the original value
+    selected_val = (src_val & ~selection_mask) | selected_val;
+  }
+
+  // Condition code is set by treating result as 64-bit signed int
+  SetS390ConditionCode<int64_t>(selected_val, 0);
+  set_register(r1, selected_val);
+  return length;
+}
+
+EVALUATE(AHIK) {
+  DCHECK_OPCODE(AHIK);
+  DECODE_RIE_D_INSTRUCTION(r1, r2, i2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int32_t imm = static_cast<int32_t>(i2);
+  bool isOF = CheckOverflowForIntAdd(r2_val, imm, int32_t);
+  set_low_register(r1, r2_val + imm);
+  SetS390ConditionCode<int32_t>(r2_val + imm, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(AGHIK) {
+  // 64-bit Add
+  DCHECK_OPCODE(AGHIK);
+  DECODE_RIE_D_INSTRUCTION(r1, r2, i2);
+  int64_t r2_val = get_register(r2);
+  int64_t imm = static_cast<int64_t>(i2);
+  bool isOF = CheckOverflowForIntAdd(r2_val, imm, int64_t);
+  set_register(r1, r2_val + imm);
+  SetS390ConditionCode<int64_t>(r2_val + imm, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(BKPT) {
+  DCHECK_OPCODE(BKPT);
+  set_pc(get_pc() + 2);
+  S390Debugger dbg(this);
+  dbg.Debug();
+  int length = 2;
+  return length;
+}
+
+EVALUATE(SPM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BALR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BCTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BCR) {
+  DCHECK_OPCODE(BCR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  if (TestConditionCode(Condition(r1))) {
+    intptr_t r2_val = get_register(r2);
+#if (!V8_TARGET_ARCH_S390X && V8_HOST_ARCH_S390)
+    // On 31-bit, the top most bit may be 0 or 1, but is ignored by the
+    // hardware.  Cleanse the top bit before jumping to it, unless it's one
+    // of the special PCs
+    if (r2_val != bad_lr && r2_val != end_sim_pc) r2_val &= 0x7FFFFFFF;
+#endif
+    set_pc(r2_val);
+  }
+
+  return length;
+}
+
+EVALUATE(SVC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BSM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BASSM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BASR) {
+  DCHECK_OPCODE(BASR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  intptr_t link_addr = get_pc() + 2;
+  // If R2 is zero, the BASR does not branch.
+  int64_t r2_val = (r2 == 0) ? link_addr : get_register(r2);
+#if (!V8_TARGET_ARCH_S390X && V8_HOST_ARCH_S390)
+  // On 31-bit, the top most bit may be 0 or 1, which can cause issues
+  // for stackwalker.  The top bit should either be cleanse before being
+  // pushed onto the stack, or during stack walking when dereferenced.
+  // For simulator, we'll take the worst case scenario and always tag
+  // the high bit, to flush out more problems.
+  link_addr |= 0x80000000;
+#endif
+  set_register(r1, link_addr);
+  set_pc(r2_val);
+  return length;
+}
+
+EVALUATE(MVCL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLCL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LNR) {
+  DCHECK_OPCODE(LNR);
+  // Load Negative (32)
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  r2_val = (r2_val >= 0) ? -r2_val : r2_val;  // If pos, then negate it.
+  set_low_register(r1, r2_val);
+  condition_reg_ = (r2_val == 0) ? CC_EQ : CC_LT;  // CC0 - result is zero
+  // CC1 - result is negative
+  return length;
+}
+
+EVALUATE(LTR) {
+  DCHECK_OPCODE(LTR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  SetS390ConditionCode<int32_t>(r2_val, 0);
+  set_low_register(r1, r2_val);
+  return length;
+}
+
+EVALUATE(LCR) {
+  DCHECK_OPCODE(LCR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int32_t original_r2_val = r2_val;
+  r2_val = ~r2_val;
+  r2_val = r2_val + 1;
+  set_low_register(r1, r2_val);
+  SetS390ConditionCode<int32_t>(r2_val, 0);
+  // Checks for overflow where r2_val = -2147483648.
+  // Cannot do int comparison due to GCC 4.8 bug on x86.
+  // Detect INT_MIN alternatively, as it is the only value where both
+  // original and result are negative due to overflow.
+  if (r2_val < 0 && original_r2_val < 0) {
+    SetS390OverflowCode(true);
+  }
+  return length;
+}
+
+EVALUATE(NR) {
+  DCHECK_OPCODE(NR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  r1_val &= r2_val;
+  SetS390BitWiseConditionCode<uint32_t>(r1_val);
+  set_low_register(r1, r1_val);
+  return length;
+}
+
+EVALUATE(OR) {
+  DCHECK_OPCODE(OR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  r1_val |= r2_val;
+  SetS390BitWiseConditionCode<uint32_t>(r1_val);
+  set_low_register(r1, r1_val);
+  return length;
+}
+
+EVALUATE(XR) {
+  DCHECK_OPCODE(XR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  r1_val ^= r2_val;
+  SetS390BitWiseConditionCode<uint32_t>(r1_val);
+  set_low_register(r1, r1_val);
+  return length;
+}
+
+EVALUATE(CR) {
+  DCHECK_OPCODE(CR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  SetS390ConditionCode<int32_t>(r1_val, r2_val);
+  return length;
+}
+
+EVALUATE(SR) {
+  DCHECK_OPCODE(SR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  bool isOF = false;
+  isOF = CheckOverflowForIntSub(r1_val, r2_val, int32_t);
+  r1_val -= r2_val;
+  SetS390ConditionCode<int32_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, r1_val);
+  return length;
+}
+
+EVALUATE(MR) {
+  DCHECK_OPCODE(MR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  DCHECK(r1 % 2 == 0);
+  r1_val = get_low_register<int32_t>(r1 + 1);
+  int64_t product = static_cast<int64_t>(r1_val) * static_cast<int64_t>(r2_val);
+  int32_t high_bits = product >> 32;
+  r1_val = high_bits;
+  int32_t low_bits = product & 0x00000000FFFFFFFF;
+  set_low_register(r1, high_bits);
+  set_low_register(r1 + 1, low_bits);
+  set_low_register(r1, r1_val);
+  return length;
+}
+
+EVALUATE(DR) {
+  DCHECK_OPCODE(DR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  // reg-reg pair should be even-odd pair, assert r1 is an even register
+  DCHECK(r1 % 2 == 0);
+  // leftmost 32 bits of the dividend are in r1
+  // rightmost 32 bits of the dividend are in r1+1
+  // get the signed value from r1
+  int64_t dividend = static_cast<int64_t>(r1_val) << 32;
+  // get unsigned value from r1+1
+  // avoid addition with sign-extended r1+1 value
+  dividend += get_low_register<uint32_t>(r1 + 1);
+  int32_t remainder = dividend % r2_val;
+  int32_t quotient = dividend / r2_val;
+  r1_val = remainder;
+  set_low_register(r1, remainder);
+  set_low_register(r1 + 1, quotient);
+  set_low_register(r1, r1_val);
+  return length;
+}
+
+EVALUATE(ALR) {
+  DCHECK_OPCODE(ALR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  uint32_t r1_val = get_low_register<uint32_t>(r1);
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  uint32_t alu_out = 0;
+  bool isOF = false;
+  alu_out = r1_val + r2_val;
+  isOF = CheckOverflowForUIntAdd(r1_val, r2_val);
+  set_low_register(r1, alu_out);
+  SetS390ConditionCodeCarry<uint32_t>(alu_out, isOF);
+  return length;
+}
+
+EVALUATE(SLR) {
+  DCHECK_OPCODE(SLR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  uint32_t r1_val = get_low_register<uint32_t>(r1);
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  uint32_t alu_out = 0;
+  bool isOF = false;
+  alu_out = r1_val - r2_val;
+  isOF = CheckOverflowForUIntSub(r1_val, r2_val);
+  set_low_register(r1, alu_out);
+  SetS390ConditionCodeCarry<uint32_t>(alu_out, isOF);
+  return length;
+}
+
+EVALUATE(LDR) {
+  DCHECK_OPCODE(LDR);
+  DECODE_RR_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_d_register(r2);
+  set_d_register(r1, r2_val);
+  return length;
+}
+
+EVALUATE(CDR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LER) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STH) {
+  DCHECK_OPCODE(STH);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int16_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t mem_addr = b2_val + x2_val + d2_val;
+  WriteH(mem_addr, r1_val, instr);
+
+  return length;
+}
+
+EVALUATE(LA) {
+  DCHECK_OPCODE(LA);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  set_register(r1, addr);
+  return length;
+}
+
+EVALUATE(STC) {
+  DCHECK_OPCODE(STC);
+  // Store Character/Byte
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  uint8_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t mem_addr = b2_val + x2_val + d2_val;
+  WriteB(mem_addr, r1_val);
+  return length;
+}
+
+EVALUATE(IC_z) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(EX) {
+  DCHECK_OPCODE(EX);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+
+  SixByteInstr the_instr = Instruction::InstructionBits(
+      reinterpret_cast<const byte*>(b2_val + x2_val + d2_val));
+  int inst_length = Instruction::InstructionLength(
+      reinterpret_cast<const byte*>(b2_val + x2_val + d2_val));
+
+  char new_instr_buf[8];
+  char* addr = reinterpret_cast<char*>(&new_instr_buf[0]);
+  the_instr |= static_cast<SixByteInstr>(r1_val & 0xff)
+               << (8 * inst_length - 16);
+  Instruction::SetInstructionBits<SixByteInstr>(
+      reinterpret_cast<byte*>(addr), static_cast<SixByteInstr>(the_instr));
+  ExecuteInstruction(reinterpret_cast<Instruction*>(addr), false);
+  return length;
+}
+
+EVALUATE(BAL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BCT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LH) {
+  DCHECK_OPCODE(LH);
+  // Load Halfword
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t mem_addr = x2_val + b2_val + d2_val;
+
+  int32_t result = static_cast<int32_t>(ReadH(mem_addr, instr));
+  set_low_register(r1, result);
+  return length;
+}
+
+EVALUATE(CH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AH) {
+  DCHECK_OPCODE(AH);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int32_t mem_val = static_cast<int32_t>(ReadH(addr, instr));
+  int32_t alu_out = 0;
+  bool isOF = false;
+  isOF = CheckOverflowForIntAdd(r1_val, mem_val, int32_t);
+  alu_out = r1_val + mem_val;
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+
+  return length;
+}
+
+EVALUATE(SH) {
+  DCHECK_OPCODE(SH);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int32_t mem_val = static_cast<int32_t>(ReadH(addr, instr));
+  int32_t alu_out = 0;
+  bool isOF = false;
+  isOF = CheckOverflowForIntSub(r1_val, mem_val, int32_t);
+  alu_out = r1_val - mem_val;
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+
+  return length;
+}
+
+EVALUATE(MH) {
+  DCHECK_OPCODE(MH);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int32_t mem_val = static_cast<int32_t>(ReadH(addr, instr));
+  int32_t alu_out = 0;
+  alu_out = r1_val * mem_val;
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(BAS) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CVD) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CVB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(N) {
+  DCHECK_OPCODE(N);
+  // 32-bit Reg-Mem instructions
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2_val, instr);
+  int32_t alu_out = 0;
+  alu_out = r1_val & mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(CL) {
+  DCHECK_OPCODE(CL);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int32_t mem_val = ReadW(addr, instr);
+  SetS390ConditionCode<uint32_t>(r1_val, mem_val);
+  return length;
+}
+
+EVALUATE(O) {
+  DCHECK_OPCODE(O);
+  // 32-bit Reg-Mem instructions
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2_val, instr);
+  int32_t alu_out = 0;
+  alu_out = r1_val | mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(X) {
+  DCHECK_OPCODE(X);
+  // 32-bit Reg-Mem instructions
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2_val, instr);
+  int32_t alu_out = 0;
+  alu_out = r1_val ^ mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(C) {
+  DCHECK_OPCODE(C);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int32_t mem_val = ReadW(addr, instr);
+  SetS390ConditionCode<int32_t>(r1_val, mem_val);
+  return length;
+}
+
+EVALUATE(A) {
+  DCHECK_OPCODE(A);
+  // 32-bit Reg-Mem instructions
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2_val, instr);
+  int32_t alu_out = 0;
+  bool isOF = false;
+  isOF = CheckOverflowForIntAdd(r1_val, mem_val, int32_t);
+  alu_out = r1_val + mem_val;
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(S) {
+  DCHECK_OPCODE(S);
+  // 32-bit Reg-Mem instructions
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2_val, instr);
+  int32_t alu_out = 0;
+  bool isOF = false;
+  isOF = CheckOverflowForIntSub(r1_val, mem_val, int32_t);
+  alu_out = r1_val - mem_val;
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(M) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(D) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STD) {
+  DCHECK_OPCODE(STD);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int64_t frs_val = get_d_register(r1);
+  WriteDW(addr, frs_val);
+  return length;
+}
+
+EVALUATE(LD) {
+  DCHECK_OPCODE(LD);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int64_t dbl_val = *reinterpret_cast<int64_t*>(addr);
+  set_d_register(r1, dbl_val);
+  return length;
+}
+
+EVALUATE(CD) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STE) {
+  DCHECK_OPCODE(STE);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  int64_t frs_val = get_d_register(r1) >> 32;
+  WriteW(addr, static_cast<int32_t>(frs_val), instr);
+  return length;
+}
+
+EVALUATE(MS) {
+  DCHECK_OPCODE(MS);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2_val, instr);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  set_low_register(r1, r1_val * mem_val);
+  return length;
+}
+
+EVALUATE(LE) {
+  DCHECK_OPCODE(LE);
+  DECODE_RX_A_INSTRUCTION(x2, b2, r1, d2_val);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t addr = b2_val + x2_val + d2_val;
+  float float_val = *reinterpret_cast<float*>(addr);
+  set_d_register_from_float32(r1, float_val);
+  return length;
+}
+
+EVALUATE(BRXH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BRXLE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BXH) {
+  DCHECK_OPCODE(BXH);
+  DECODE_RS_A_INSTRUCTION(r1, r3, b2, d2);
+
+  // r1_val is the first operand, r3_val is the increment
+  int32_t r1_val = r1 == 0 ? 0 : get_register(r1);
+  int32_t r3_val = r2 == 0 ? 0 : get_register(r3);
+  intptr_t b2_val = b2 == 0 ? 0 : get_register(b2);
+  intptr_t branch_address = b2_val + d2;
+  // increment r1_val
+  r1_val += r3_val;
+
+  // if the increment is even, then it designates a pair of registers
+  // and the contents of the even and odd registers of the pair are used as
+  // the increment and compare value respectively. If the increment is odd,
+  // the increment itself is used as both the increment and compare value
+  int32_t compare_val = r3 % 2 == 0 ? get_register(r3 + 1) : r3_val;
+  if (r1_val > compare_val) {
+    // branch to address if r1_val is greater than compare value
+    set_pc(branch_address);
+  }
+
+  // update contents of register in r1 with the new incremented value
+  set_register(r1, r1_val);
+
+  return length;
+}
+
+EVALUATE(BXLE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRL) {
+  DCHECK_OPCODE(SRL);
+  DECODE_RS_A_INSTRUCTION_NO_R3(r1, b2, d2);
+  // only takes rightmost 6bits
+  int64_t b2_val = b2 == 0 ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  uint32_t r1_val = get_low_register<uint32_t>(r1);
+  uint32_t alu_out = 0;
+  alu_out = r1_val >> shiftBits;
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(SLL) {
+  DCHECK_OPCODE(SLL);
+  DECODE_RS_A_INSTRUCTION_NO_R3(r1, b2, d2)
+  // only takes rightmost 6bits
+  int64_t b2_val = b2 == 0 ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  uint32_t r1_val = get_low_register<uint32_t>(r1);
+  uint32_t alu_out = 0;
+  alu_out = r1_val << shiftBits;
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(SRA) {
+  DCHECK_OPCODE(SRA);
+  DECODE_RS_A_INSTRUCTION_NO_R3(r1, b2, d2);
+  // only takes rightmost 6bits
+  int64_t b2_val = b2 == 0 ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t alu_out = 0;
+  bool isOF = false;
+  alu_out = r1_val >> shiftBits;
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(SLA) {
+  DCHECK_OPCODE(SLA);
+  DECODE_RS_A_INSTRUCTION_NO_R3(r1, b2, d2);
+  // only takes rightmost 6bits
+  int64_t b2_val = b2 == 0 ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t alu_out = 0;
+  bool isOF = false;
+  isOF = CheckOverflowForShiftLeft(r1_val, shiftBits);
+  alu_out = r1_val << shiftBits;
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(SRDL) {
+  DCHECK_OPCODE(SRDL);
+  DECODE_RS_A_INSTRUCTION_NO_R3(r1, b2, d2);
+  DCHECK(r1 % 2 == 0);  // must be a reg pair
+  // only takes rightmost 6bits
+  int64_t b2_val = b2 == 0 ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  uint64_t opnd1 = static_cast<uint64_t>(get_low_register<uint32_t>(r1)) << 32;
+  uint64_t opnd2 = static_cast<uint64_t>(get_low_register<uint32_t>(r1 + 1));
+  uint64_t r1_val = opnd1 | opnd2;
+  uint64_t alu_out = r1_val >> shiftBits;
+  set_low_register(r1, alu_out >> 32);
+  set_low_register(r1 + 1, alu_out & 0x00000000FFFFFFFF);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  return length;
+}
+
+EVALUATE(SLDL) {
+  DCHECK_OPCODE(SLDL);
+  DECODE_RS_A_INSTRUCTION_NO_R3(r1, b2, d2);
+  // only takes rightmost 6bits
+  int64_t b2_val = b2 == 0 ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+
+  DCHECK(r1 % 2 == 0);
+  uint32_t r1_val = get_low_register<uint32_t>(r1);
+  uint32_t r1_next_val = get_low_register<uint32_t>(r1 + 1);
+  uint64_t alu_out = (static_cast<uint64_t>(r1_val) << 32) |
+                     (static_cast<uint64_t>(r1_next_val));
+  alu_out <<= shiftBits;
+  set_low_register(r1 + 1, static_cast<uint32_t>(alu_out));
+  set_low_register(r1, static_cast<uint32_t>(alu_out >> 32));
+  return length;
+}
+
+EVALUATE(SRDA) {
+  DCHECK_OPCODE(SRDA);
+  DECODE_RS_A_INSTRUCTION_NO_R3(r1, b2, d2);
+  DCHECK(r1 % 2 == 0);  // must be a reg pair
+  // only takes rightmost 6bits
+  int64_t b2_val = b2 == 0 ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  int64_t opnd1 = static_cast<int64_t>(get_low_register<int32_t>(r1)) << 32;
+  int64_t opnd2 = static_cast<uint64_t>(get_low_register<uint32_t>(r1 + 1));
+  int64_t r1_val = opnd1 + opnd2;
+  int64_t alu_out = r1_val >> shiftBits;
+  set_low_register(r1, alu_out >> 32);
+  set_low_register(r1 + 1, alu_out & 0x00000000FFFFFFFF);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  return length;
+}
+
+EVALUATE(SLDA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STM) {
+  DCHECK_OPCODE(STM);
+  DECODE_RS_A_INSTRUCTION(r1, r3, rb, d2);
+  // Store Multiple 32-bits.
+  int offset = d2;
+  // Regs roll around if r3 is less than r1.
+  // Artifically increase r3 by 16 so we can calculate
+  // the number of regs stored properly.
+  if (r3 < r1) r3 += 16;
+
+  int32_t rb_val = (rb == 0) ? 0 : get_low_register<int32_t>(rb);
+
+  // Store each register in ascending order.
+  for (int i = 0; i <= r3 - r1; i++) {
+    int32_t value = get_low_register<int32_t>((r1 + i) % 16);
+    WriteW(rb_val + offset + 4 * i, value, instr);
+  }
+  return length;
+}
+
+EVALUATE(TM) {
+  DCHECK_OPCODE(TM);
+  // Test Under Mask (Mem - Imm) (8)
+  DECODE_SI_INSTRUCTION_I_UINT8(b1, d1_val, imm_val)
+  int64_t b1_val = (b1 == 0) ? 0 : get_register(b1);
+  intptr_t addr = b1_val + d1_val;
+  uint8_t mem_val = ReadB(addr);
+  uint8_t selected_bits = mem_val & imm_val;
+  // CC0: Selected bits are zero
+  // CC1: Selected bits mixed zeros and ones
+  // CC3: Selected bits all ones
+  if (0 == selected_bits) {
+    condition_reg_ = CC_EQ;  // CC0
+  } else if (selected_bits == imm_val) {
+    condition_reg_ = 0x1;  // CC3
+  } else {
+    condition_reg_ = 0x4;  // CC1
+  }
+  return length;
+}
+
+EVALUATE(MVI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TS) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLI) {
+  DCHECK_OPCODE(CLI);
+  // Compare Immediate (Mem - Imm) (8)
+  DECODE_SI_INSTRUCTION_I_UINT8(b1, d1_val, imm_val)
+  int64_t b1_val = (b1 == 0) ? 0 : get_register(b1);
+  intptr_t addr = b1_val + d1_val;
+  uint8_t mem_val = ReadB(addr);
+  SetS390ConditionCode<uint8_t>(mem_val, imm_val);
+  return length;
+}
+
+EVALUATE(OI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LM) {
+  DCHECK_OPCODE(LM);
+  DECODE_RS_A_INSTRUCTION(r1, r3, rb, d2);
+  // Store Multiple 32-bits.
+  int offset = d2;
+  // Regs roll around if r3 is less than r1.
+  // Artifically increase r3 by 16 so we can calculate
+  // the number of regs stored properly.
+  if (r3 < r1) r3 += 16;
+
+  int32_t rb_val = (rb == 0) ? 0 : get_low_register<int32_t>(rb);
+
+  // Store each register in ascending order.
+  for (int i = 0; i <= r3 - r1; i++) {
+    int32_t value = ReadW(rb_val + offset + 4 * i, instr);
+    set_low_register((r1 + i) % 16, value);
+  }
+  return length;
+}
+
+EVALUATE(MVCLE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLCLE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDS) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ICM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BPRP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BPP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TRTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVN) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVC) {
+  DCHECK_OPCODE(MVC);
+  // Move Character
+  SSInstruction* ssInstr = reinterpret_cast<SSInstruction*>(instr);
+  int b1 = ssInstr->B1Value();
+  intptr_t d1 = ssInstr->D1Value();
+  int b2 = ssInstr->B2Value();
+  intptr_t d2 = ssInstr->D2Value();
+  int length = ssInstr->Length();
+  int64_t b1_val = (b1 == 0) ? 0 : get_register(b1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t src_addr = b2_val + d2;
+  intptr_t dst_addr = b1_val + d1;
+  // remember that the length is the actual length - 1
+  for (int i = 0; i < length + 1; ++i) {
+    WriteB(dst_addr++, ReadB(src_addr++));
+  }
+  length = 6;
+  return length;
+}
+
+EVALUATE(MVZ) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(OC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVCP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TRT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ED) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(EDMK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PKU) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(UNPKU) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVCIN) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PKA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(UNPKA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PLO) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LMD) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVO) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PACK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(UNPK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ZAP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(UPT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PFPO) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(IIHH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(IIHL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(IILH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(IILL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NIHH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NIHL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NILH) {
+  DCHECK_OPCODE(NILH);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  // CC is set based on the 16 bits that are AND'd
+  SetS390BitWiseConditionCode<uint16_t>((r1_val >> 16) & i);
+  i = (i << 16) | 0x0000FFFF;
+  set_low_register(r1, r1_val & i);
+  return length;
+}
+
+EVALUATE(NILL) {
+  DCHECK_OPCODE(NILL);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  // CC is set based on the 16 bits that are AND'd
+  SetS390BitWiseConditionCode<uint16_t>(r1_val & i);
+  i |= 0xFFFF0000;
+  set_low_register(r1, r1_val & i);
+  return length;
+}
+
+EVALUATE(OIHH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(OIHL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(OILH) {
+  DCHECK_OPCODE(OILH);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  // CC is set based on the 16 bits that are AND'd
+  SetS390BitWiseConditionCode<uint16_t>((r1_val >> 16) | i);
+  i = i << 16;
+  set_low_register(r1, r1_val | i);
+  return length;
+}
+
+EVALUATE(OILL) {
+  DCHECK_OPCODE(OILL);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  // CC is set based on the 16 bits that are AND'd
+  SetS390BitWiseConditionCode<uint16_t>(r1_val | i);
+  set_low_register(r1, r1_val | i);
+  return length;
+}
+
+EVALUATE(LLIHH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLIHL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLILH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLILL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TMLH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TMLL) {
+  DCHECK_OPCODE(TMLL);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i2);
+  int mask = i2 & 0x0000FFFF;
+  if (mask == 0) {
+    condition_reg_ = 0x0;
+    return length;
+  }
+  uint32_t r1_val = get_low_register<uint32_t>(r1);
+  r1_val = r1_val & 0x0000FFFF;  // uses only the last 16bits
+
+  // Test if all selected bits are Zero
+  bool allSelectedBitsAreZeros = true;
+  for (int i = 0; i < 15; i++) {
+    if (mask & (1 << i)) {
+      if (r1_val & (1 << i)) {
+        allSelectedBitsAreZeros = false;
+        break;
+      }
+    }
+  }
+  if (allSelectedBitsAreZeros) {
+    condition_reg_ = 0x8;
+    return length;  // Done!
+  }
+
+  // Test if all selected bits are one
+  bool allSelectedBitsAreOnes = true;
+  for (int i = 0; i < 15; i++) {
+    if (mask & (1 << i)) {
+      if (!(r1_val & (1 << i))) {
+        allSelectedBitsAreOnes = false;
+        break;
+      }
+    }
+  }
+  if (allSelectedBitsAreOnes) {
+    condition_reg_ = 0x1;
+    return length;  // Done!
+  }
+
+  // Now we know selected bits mixed zeros and ones
+  // Test if the leftmost bit is zero or one
+  for (int i = 14; i >= 0; i--) {
+    if (mask & (1 << i)) {
+      if (r1_val & (1 << i)) {
+        // leftmost bit is one
+        condition_reg_ = 0x2;
+      } else {
+        // leftmost bit is zero
+        condition_reg_ = 0x4;
+      }
+      return length;  // Done!
+    }
+  }
+  return length;
+}
+
+EVALUATE(TMHH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TMHL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BRAS) {
+  DCHECK_OPCODE(BRAS);
+  // Branch Relative and Save
+  DECODE_RI_B_INSTRUCTION(instr, r1, d2)
+  intptr_t pc = get_pc();
+  // Set PC of next instruction to register
+  set_register(r1, pc + sizeof(FourByteInstr));
+  // Update PC to branch target
+  set_pc(pc + d2 * 2);
+  return length;
+}
+
+EVALUATE(BRCT) {
+  DCHECK_OPCODE(BRCT);
+  // Branch On Count (32/64).
+  DECODE_RI_A_INSTRUCTION(instr, r1, i2);
+  int64_t value = get_low_register<int32_t>(r1);
+  set_low_register(r1, --value);
+  // Branch if value != 0
+  if (value != 0) {
+    intptr_t offset = i2 * 2;
+    set_pc(get_pc() + offset);
+  }
+  return length;
+}
+
+EVALUATE(BRCTG) {
+  DCHECK_OPCODE(BRCTG);
+  // Branch On Count (32/64).
+  DECODE_RI_A_INSTRUCTION(instr, r1, i2);
+  int64_t value = get_register(r1);
+  set_register(r1, --value);
+  // Branch if value != 0
+  if (value != 0) {
+    intptr_t offset = i2 * 2;
+    set_pc(get_pc() + offset);
+  }
+  return length;
+}
+
+EVALUATE(LHI) {
+  DCHECK_OPCODE(LHI);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i);
+  set_low_register(r1, i);
+  return length;
+}
+
+EVALUATE(LGHI) {
+  DCHECK_OPCODE(LGHI);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i2);
+  int64_t i = static_cast<int64_t>(i2);
+  set_register(r1, i);
+  return length;
+}
+
+EVALUATE(MHI) {
+  DCHECK_OPCODE(MHI);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  bool isOF = false;
+  isOF = CheckOverflowForMul(r1_val, i);
+  r1_val *= i;
+  set_low_register(r1, r1_val);
+  SetS390ConditionCode<int32_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(MGHI) {
+  DCHECK_OPCODE(MGHI);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i2);
+  int64_t i = static_cast<int64_t>(i2);
+  int64_t r1_val = get_register(r1);
+  bool isOF = false;
+  isOF = CheckOverflowForMul(r1_val, i);
+  r1_val *= i;
+  set_register(r1, r1_val);
+  SetS390ConditionCode<int32_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(CHI) {
+  DCHECK_OPCODE(CHI);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  SetS390ConditionCode<int32_t>(r1_val, i);
+  return length;
+}
+
+EVALUATE(CGHI) {
+  DCHECK_OPCODE(CGHI);
+  DECODE_RI_A_INSTRUCTION(instr, r1, i2);
+  int64_t i = static_cast<int64_t>(i2);
+  int64_t r1_val = get_register(r1);
+  SetS390ConditionCode<int64_t>(r1_val, i);
+  return length;
+}
+
+EVALUATE(LARL) {
+  DCHECK_OPCODE(LARL);
+  DECODE_RIL_B_INSTRUCTION(r1, i2);
+  intptr_t offset = i2 * 2;
+  set_register(r1, get_pc() + offset);
+  return length;
+}
+
+EVALUATE(LGFI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BRASL) {
+  DCHECK_OPCODE(BRASL);
+  // Branch and Save Relative Long
+  DECODE_RIL_B_INSTRUCTION(r1, i2);
+  intptr_t d2 = i2;
+  intptr_t pc = get_pc();
+  set_register(r1, pc + 6);  // save next instruction to register
+  set_pc(pc + d2 * 2);       // update register
+  return length;
+}
+
+EVALUATE(XIHF) {
+  DCHECK_OPCODE(XIHF);
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  uint32_t alu_out = 0;
+  alu_out = get_high_register<uint32_t>(r1);
+  alu_out = alu_out ^ imm;
+  set_high_register(r1, alu_out);
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  return length;
+}
+
+EVALUATE(XILF) {
+  DCHECK_OPCODE(XILF);
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  uint32_t alu_out = 0;
+  alu_out = get_low_register<uint32_t>(r1);
+  alu_out = alu_out ^ imm;
+  set_low_register(r1, alu_out);
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  return length;
+}
+
+EVALUATE(NIHF) {
+  DCHECK_OPCODE(NIHF);
+  // Bitwise Op on upper 32-bits
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  uint32_t alu_out = get_high_register<uint32_t>(r1);
+  alu_out &= imm;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_high_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(NILF) {
+  DCHECK_OPCODE(NILF);
+  // Bitwise Op on lower 32-bits
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  uint32_t alu_out = get_low_register<uint32_t>(r1);
+  alu_out &= imm;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(OIHF) {
+  DCHECK_OPCODE(OIHF);
+  // Bitwise Op on upper 32-bits
+  DECODE_RIL_B_INSTRUCTION(r1, imm);
+  uint32_t alu_out = get_high_register<uint32_t>(r1);
+  alu_out |= imm;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_high_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(OILF) {
+  DCHECK_OPCODE(OILF);
+  // Bitwise Op on lower 32-bits
+  DECODE_RIL_B_INSTRUCTION(r1, imm);
+  uint32_t alu_out = get_low_register<uint32_t>(r1);
+  alu_out |= imm;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(LLIHF) {
+  DCHECK_OPCODE(LLIHF);
+  // Load Logical Immediate into high word
+  DECODE_RIL_A_INSTRUCTION(r1, i2);
+  uint64_t imm = static_cast<uint64_t>(i2);
+  set_register(r1, imm << 32);
+  return length;
+}
+
+EVALUATE(LLILF) {
+  DCHECK_OPCODE(LLILF);
+  // Load Logical into lower 32-bits (zero extend upper 32-bits)
+  DECODE_RIL_A_INSTRUCTION(r1, i2);
+  uint64_t imm = static_cast<uint64_t>(i2);
+  set_register(r1, imm);
+  return length;
+}
+
+EVALUATE(MSGFI) {
+  DCHECK_OPCODE(MSGFI);
+  DECODE_RIL_B_INSTRUCTION(r1, i2);
+  int64_t alu_out = get_register(r1);
+  alu_out = alu_out * i2;
+  set_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(MSFI) {
+  DCHECK_OPCODE(MSFI);
+  DECODE_RIL_B_INSTRUCTION(r1, i2);
+  int32_t alu_out = get_low_register<int32_t>(r1);
+  alu_out = alu_out * i2;
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(SLGFI) {
+  DCHECK_OPCODE(SLGFI);
+#ifndef V8_TARGET_ARCH_S390X
+  // should only be called on 64bit
+  DCHECK(false);
+#endif
+  DECODE_RIL_A_INSTRUCTION(r1, i2);
+  uint64_t r1_val = (uint64_t)(get_register(r1));
+  uint64_t alu_out;
+  alu_out = r1_val - i2;
+  set_register(r1, (intptr_t)alu_out);
+  SetS390ConditionCode<uint64_t>(alu_out, 0);
+  return length;
+}
+
+EVALUATE(SLFI) {
+  DCHECK_OPCODE(SLFI);
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  uint32_t alu_out = get_low_register<uint32_t>(r1);
+  alu_out -= imm;
+  SetS390ConditionCode<uint32_t>(alu_out, 0);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(AGFI) {
+  DCHECK_OPCODE(AGFI);
+  // Clobbering Add Word Immediate
+  DECODE_RIL_B_INSTRUCTION(r1, i2_val);
+  bool isOF = false;
+  // 64-bit Add (Register + 32-bit Imm)
+  int64_t r1_val = get_register(r1);
+  int64_t i2 = static_cast<int64_t>(i2_val);
+  isOF = CheckOverflowForIntAdd(r1_val, i2, int64_t);
+  int64_t alu_out = r1_val + i2;
+  set_register(r1, alu_out);
+  SetS390ConditionCode<int64_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(AFI) {
+  DCHECK_OPCODE(AFI);
+  // Clobbering Add Word Immediate
+  DECODE_RIL_B_INSTRUCTION(r1, i2);
+  bool isOF = false;
+  // 32-bit Add (Register + 32-bit Immediate)
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  isOF = CheckOverflowForIntAdd(r1_val, i2, int32_t);
+  int32_t alu_out = r1_val + i2;
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
+
+EVALUATE(ALGFI) {
+  DCHECK_OPCODE(ALGFI);
+#ifndef V8_TARGET_ARCH_S390X
+  // should only be called on 64bit
+  DCHECK(false);
+#endif
+  DECODE_RIL_A_INSTRUCTION(r1, i2);
+  uint64_t r1_val = (uint64_t)(get_register(r1));
+  uint64_t alu_out;
+  alu_out = r1_val + i2;
+  set_register(r1, (intptr_t)alu_out);
+  SetS390ConditionCode<uint64_t>(alu_out, 0);
+
+  return length;
+}
+
+EVALUATE(ALFI) {
+  DCHECK_OPCODE(ALFI);
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  uint32_t alu_out = get_low_register<uint32_t>(r1);
+  alu_out += imm;
+  SetS390ConditionCode<uint32_t>(alu_out, 0);
+  set_low_register(r1, alu_out);
+  return length;
+}
+
+EVALUATE(CGFI) {
+  DCHECK_OPCODE(CGFI);
+  // Compare with Immediate (64)
+  DECODE_RIL_B_INSTRUCTION(r1, i2);
+  int64_t imm = static_cast<int64_t>(i2);
+  SetS390ConditionCode<int64_t>(get_register(r1), imm);
+  return length;
+}
+
+EVALUATE(CFI) {
+  DCHECK_OPCODE(CFI);
+  // Compare with Immediate (32)
+  DECODE_RIL_B_INSTRUCTION(r1, imm);
+  SetS390ConditionCode<int32_t>(get_low_register<int32_t>(r1), imm);
+  return length;
+}
+
+EVALUATE(CLGFI) {
+  DCHECK_OPCODE(CLGFI);
+  // Compare Logical with Immediate (64)
+  DECODE_RIL_A_INSTRUCTION(r1, i2);
+  uint64_t imm = static_cast<uint64_t>(i2);
+  SetS390ConditionCode<uint64_t>(get_register(r1), imm);
+  return length;
+}
+
+EVALUATE(CLFI) {
+  DCHECK_OPCODE(CLFI);
+  // Compare Logical with Immediate (32)
+  DECODE_RIL_A_INSTRUCTION(r1, imm);
+  SetS390ConditionCode<uint32_t>(get_low_register<uint32_t>(r1), imm);
+  return length;
+}
+
+EVALUATE(LLHRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LGHRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LHRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGHRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STHRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LGRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STGRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LGFRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGFRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(EXRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PFDRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGHRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CHRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGFRL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ECTG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CSST) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPD) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPDG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BRCTH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AIH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALSIH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALSIHN) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CIH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(IPM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(HSCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SSCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STSCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TSCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TPI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SAL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RSCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCRW) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCPS) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RCHP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SCHM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CKSM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SAR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(EAR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSR) {
+  DCHECK_OPCODE(MSR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  set_low_register(r1, r1_val * r2_val);
+  return length;
+}
+
+EVALUATE(MVST) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CUSE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRST) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XSCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCKE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCKF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRNM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STFPC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LFPC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TRE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CUUTF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CUTFU) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STFLE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRNMB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRNMT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LFAS) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PPA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ETND) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TEND) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NIAI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TABORT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TRAP4) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPEBR) {
+  DCHECK_OPCODE(LPEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  float fr1_val = get_float32_from_d_register(r1);
+  float fr2_val = get_float32_from_d_register(r2);
+  fr1_val = std::fabs(fr2_val);
+  set_d_register_from_float32(r1, fr1_val);
+  if (fr2_val != fr2_val) {  // input is NaN
+    condition_reg_ = CC_OF;
+  } else if (fr2_val == 0) {
+    condition_reg_ = CC_EQ;
+  } else {
+    condition_reg_ = CC_GT;
+  }
+
+  return length;
+}
+
+EVALUATE(LNEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTEBR) {
+  DCHECK_OPCODE(LTEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_d_register(r2);
+  float fr2_val = get_float32_from_d_register(r2);
+  SetS390ConditionCode<float>(fr2_val, 0.0);
+  set_d_register(r1, r2_val);
+  return length;
+}
+
+EVALUATE(LCEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LDEBR) {
+  DCHECK_OPCODE(LDEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  float fp_val = get_float32_from_d_register(r2);
+  double db_val = static_cast<double>(fp_val);
+  set_d_register_from_double(r1, db_val);
+  return length;
+}
+
+EVALUATE(LXDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LXEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MXDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CEBR) {
+  DCHECK_OPCODE(CEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  float fr1_val = get_float32_from_d_register(r1);
+  float fr2_val = get_float32_from_d_register(r2);
+  if (isNaN(fr1_val) || isNaN(fr2_val)) {
+    condition_reg_ = CC_OF;
+  } else {
+    SetS390ConditionCode<float>(fr1_val, fr2_val);
+  }
+
+  return length;
+}
+
+EVALUATE(AEBR) {
+  DCHECK_OPCODE(AEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  float fr1_val = get_float32_from_d_register(r1);
+  float fr2_val = get_float32_from_d_register(r2);
+  fr1_val += fr2_val;
+  set_d_register_from_float32(r1, fr1_val);
+  SetS390ConditionCode<float>(fr1_val, 0);
+
+  return length;
+}
+
+EVALUATE(SEBR) {
+  DCHECK_OPCODE(SEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  float fr1_val = get_float32_from_d_register(r1);
+  float fr2_val = get_float32_from_d_register(r2);
+  fr1_val -= fr2_val;
+  set_d_register_from_float32(r1, fr1_val);
+  SetS390ConditionCode<float>(fr1_val, 0);
+
+  return length;
+}
+
+EVALUATE(MDEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DEBR) {
+  DCHECK_OPCODE(DEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  float fr1_val = get_float32_from_d_register(r1);
+  float fr2_val = get_float32_from_d_register(r2);
+  fr1_val /= fr2_val;
+  set_d_register_from_float32(r1, fr1_val);
+  SetS390ConditionCode<float>(fr1_val, 0);
+
+  return length;
+}
+
+EVALUATE(MAEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPDBR) {
+  DCHECK_OPCODE(LPDBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  double r1_val = get_double_from_d_register(r1);
+  double r2_val = get_double_from_d_register(r2);
+  r1_val = std::fabs(r2_val);
+  set_d_register_from_double(r1, r1_val);
+  if (r2_val != r2_val) {  // input is NaN
+    condition_reg_ = CC_OF;
+  } else if (r2_val == 0) {
+    condition_reg_ = CC_EQ;
+  } else {
+    condition_reg_ = CC_GT;
+  }
+  return length;
+}
+
+EVALUATE(LNDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTDBR) {
+  DCHECK_OPCODE(LTDBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_d_register(r2);
+  SetS390ConditionCode<double>(bit_cast<double, int64_t>(r2_val), 0.0);
+  set_d_register(r1, r2_val);
+  return length;
+}
+
+EVALUATE(LCDBR) {
+  DCHECK_OPCODE(LCDBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  double r1_val = get_double_from_d_register(r1);
+  double r2_val = get_double_from_d_register(r2);
+  r1_val = -r2_val;
+  set_d_register_from_double(r1, r1_val);
+  if (r2_val != r2_val) {  // input is NaN
+    condition_reg_ = CC_OF;
+  } else if (r2_val == 0) {
+    condition_reg_ = CC_EQ;
+  } else if (r2_val < 0) {
+    condition_reg_ = CC_LT;
+  } else if (r2_val > 0) {
+    condition_reg_ = CC_GT;
+  }
+  return length;
+}
+
+EVALUATE(SQEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SQDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SQXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MEEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ADBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MADBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LNXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LCXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LEDBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LDXBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LEXBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(FIXBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TBEDR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TBDR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DIEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(FIEBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(THDER) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(THDR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DIDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(FIDBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LXR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPDFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LNDFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LCDFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LZER) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LZDR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LZXR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SFPC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SFASR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(EFPC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CELFBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDLFBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXLFBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CEFBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDFBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXFBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFEBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFDBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFXBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLFEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLFDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLFXBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CELGBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDLGBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXLGBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CEGBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDGBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXGBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGEBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGDBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGXBRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLGEBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLGDBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFER) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFDR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFXR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LDGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGER) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGDR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGXR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LGDR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MDTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DDTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ADTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SDTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LDETR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LEDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(FIDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MXTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DXTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AXTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SXTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LXDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LDXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(FIXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGDTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CUDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(EEDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ESDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGXTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CUXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CSXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(EEXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ESXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDGTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDUTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDSTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CEDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(QADTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(IEDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RRDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXGTRA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXUTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXSTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CEXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(QAXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(IEXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RRXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LNGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LCGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DSGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LRVGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LNGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LCGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DSGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KMAC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LRVR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KMF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KMO) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PCC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KMCTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KM) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KMC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGFR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KIMD) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KLMD) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLGDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLFDTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BCTGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CFXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLFXTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDFTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDLGTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDLFTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXFTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXLGTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXLFTR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGRT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(OGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(FLOGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGCR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGHR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MLGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DLGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALCGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLBGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(EPSW) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TRTT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TRTO) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TROT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TROO) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLCR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLHR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MLR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DLR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALCR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLBR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CU14) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CU24) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CU41) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CU42) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TRTRE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRSTU) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TRTE) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AHHHR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SHHHR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALHHHR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLHHHR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CHHR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AHHLR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SHHLR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALHHLR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLHHLR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CHLR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(POPCNT_Z) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LOCGR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NGRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(OGRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XGRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AGRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SGRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALGRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLGRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LOCR) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ORK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ARK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLRK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CVBY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DSG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CVBG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LRVG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LGH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DSGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LRV) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LRVH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NTSTG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CVDY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CVDG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STRVG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LTGF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(PFD) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STRV) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STRVH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BCTG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(OY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MFY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STHY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ICY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAEY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LGB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LHY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CHY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AHY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SHY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MHY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(OG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LGAT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALCG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLBG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STPQ) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LPQ) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ML) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGTAT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLGFAT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LBH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LHH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LLHH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STHH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LFHAT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LFH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STFH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CHF) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVCDK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVHHI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVGHI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVHI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CHHSI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGHSI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CHSI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLFHSI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TBEGIN) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TBEGINC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LMG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRAG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLAG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CSY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RLLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STMG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STMH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCMH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STCMY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDSY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDSG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BXHG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BXLEG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ECAG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TMY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVIY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(NIY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLIY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(OIY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(XIY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ASI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALSI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AGSI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALGSI) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ICMH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ICMY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MVCLU) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLCLU) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STMY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LMH) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LMY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TP) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRAK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLAK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRLK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLLK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LOCG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STOCG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LANG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAOG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAXG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAAG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAALG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LOC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STOC) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAN) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAO) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAX) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAA) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LAAL) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BRXHG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(BRXLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RISBLG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RNSBG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ROSBG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RXSBG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RISBGN) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(RISBHG) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGRJ) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGIT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CIT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CLFIT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGIJ) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CIJ) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALHSIK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ALGHSIK) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGRB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CGIB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CIB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LDEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LXDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LXEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MXDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(AEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MDEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MAEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TCEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TCDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TCXB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SQEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SQDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MEEB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(KDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(ADB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(DDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MADB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(MSDB) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLDT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRDT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SLXT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(SRXT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TDCET) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TDGET) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TDCDT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TDGDT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TDCXT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(TDGXT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LEY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(LDY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STEY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(STDY) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CZDT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CZXT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CDZT) { return DecodeInstructionOriginal(instr); }
+
+EVALUATE(CXZT) { return DecodeInstructionOriginal(instr); }
+
+#undef EVALUATE
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/s390/simulator-s390.h b/src/s390/simulator-s390.h
index ae3dd58..6e82c9a 100644
--- a/src/s390/simulator-s390.h
+++ b/src/s390/simulator-s390.h
@@ -507,6 +507,742 @@
   };
   StopCountAndDesc watched_stops_[kNumOfWatchedStops];
   void DebugStart();
+
+  int DecodeInstructionOriginal(Instruction* instr);
+  int DecodeInstruction(Instruction* instr);
+  int Evaluate_Unknown(Instruction* instr);
+#define MAX_NUM_OPCODES (1 << 16)
+  typedef int (Simulator::*EvaluateFuncType)(Instruction*);
+
+  static EvaluateFuncType EvalTable[MAX_NUM_OPCODES];
+  static void EvalTableInit();
+
+#define EVALUATE(name) int Evaluate_##name(Instruction* instr)
+  EVALUATE(BKPT);
+  EVALUATE(SPM);
+  EVALUATE(BALR);
+  EVALUATE(BCTR);
+  EVALUATE(BCR);
+  EVALUATE(SVC);
+  EVALUATE(BSM);
+  EVALUATE(BASSM);
+  EVALUATE(BASR);
+  EVALUATE(MVCL);
+  EVALUATE(CLCL);
+  EVALUATE(LPR);
+  EVALUATE(LNR);
+  EVALUATE(LTR);
+  EVALUATE(LCR);
+  EVALUATE(NR);
+  EVALUATE(CLR);
+  EVALUATE(OR);
+  EVALUATE(XR);
+  EVALUATE(LR);
+  EVALUATE(CR);
+  EVALUATE(AR);
+  EVALUATE(SR);
+  EVALUATE(MR);
+  EVALUATE(DR);
+  EVALUATE(ALR);
+  EVALUATE(SLR);
+  EVALUATE(LDR);
+  EVALUATE(CDR);
+  EVALUATE(LER);
+  EVALUATE(STH);
+  EVALUATE(LA);
+  EVALUATE(STC);
+  EVALUATE(IC_z);
+  EVALUATE(EX);
+  EVALUATE(BAL);
+  EVALUATE(BCT);
+  EVALUATE(BC);
+  EVALUATE(LH);
+  EVALUATE(CH);
+  EVALUATE(AH);
+  EVALUATE(SH);
+  EVALUATE(MH);
+  EVALUATE(BAS);
+  EVALUATE(CVD);
+  EVALUATE(CVB);
+  EVALUATE(ST);
+  EVALUATE(LAE);
+  EVALUATE(N);
+  EVALUATE(CL);
+  EVALUATE(O);
+  EVALUATE(X);
+  EVALUATE(L);
+  EVALUATE(C);
+  EVALUATE(A);
+  EVALUATE(S);
+  EVALUATE(M);
+  EVALUATE(D);
+  EVALUATE(AL);
+  EVALUATE(SL);
+  EVALUATE(STD);
+  EVALUATE(LD);
+  EVALUATE(CD);
+  EVALUATE(STE);
+  EVALUATE(MS);
+  EVALUATE(LE);
+  EVALUATE(BRXH);
+  EVALUATE(BRXLE);
+  EVALUATE(BXH);
+  EVALUATE(BXLE);
+  EVALUATE(SRL);
+  EVALUATE(SLL);
+  EVALUATE(SRA);
+  EVALUATE(SLA);
+  EVALUATE(SRDL);
+  EVALUATE(SLDL);
+  EVALUATE(SRDA);
+  EVALUATE(SLDA);
+  EVALUATE(STM);
+  EVALUATE(TM);
+  EVALUATE(MVI);
+  EVALUATE(TS);
+  EVALUATE(NI);
+  EVALUATE(CLI);
+  EVALUATE(OI);
+  EVALUATE(XI);
+  EVALUATE(LM);
+  EVALUATE(MVCLE);
+  EVALUATE(CLCLE);
+  EVALUATE(MC);
+  EVALUATE(CDS);
+  EVALUATE(STCM);
+  EVALUATE(ICM);
+  EVALUATE(BPRP);
+  EVALUATE(BPP);
+  EVALUATE(TRTR);
+  EVALUATE(MVN);
+  EVALUATE(MVC);
+  EVALUATE(MVZ);
+  EVALUATE(NC);
+  EVALUATE(CLC);
+  EVALUATE(OC);
+  EVALUATE(XC);
+  EVALUATE(MVCP);
+  EVALUATE(TR);
+  EVALUATE(TRT);
+  EVALUATE(ED);
+  EVALUATE(EDMK);
+  EVALUATE(PKU);
+  EVALUATE(UNPKU);
+  EVALUATE(MVCIN);
+  EVALUATE(PKA);
+  EVALUATE(UNPKA);
+  EVALUATE(PLO);
+  EVALUATE(LMD);
+  EVALUATE(SRP);
+  EVALUATE(MVO);
+  EVALUATE(PACK);
+  EVALUATE(UNPK);
+  EVALUATE(ZAP);
+  EVALUATE(AP);
+  EVALUATE(SP);
+  EVALUATE(MP);
+  EVALUATE(DP);
+  EVALUATE(UPT);
+  EVALUATE(PFPO);
+  EVALUATE(IIHH);
+  EVALUATE(IIHL);
+  EVALUATE(IILH);
+  EVALUATE(IILL);
+  EVALUATE(NIHH);
+  EVALUATE(NIHL);
+  EVALUATE(NILH);
+  EVALUATE(NILL);
+  EVALUATE(OIHH);
+  EVALUATE(OIHL);
+  EVALUATE(OILH);
+  EVALUATE(OILL);
+  EVALUATE(LLIHH);
+  EVALUATE(LLIHL);
+  EVALUATE(LLILH);
+  EVALUATE(LLILL);
+  EVALUATE(TMLH);
+  EVALUATE(TMLL);
+  EVALUATE(TMHH);
+  EVALUATE(TMHL);
+  EVALUATE(BRC);
+  EVALUATE(BRAS);
+  EVALUATE(BRCT);
+  EVALUATE(BRCTG);
+  EVALUATE(LHI);
+  EVALUATE(LGHI);
+  EVALUATE(AHI);
+  EVALUATE(AGHI);
+  EVALUATE(MHI);
+  EVALUATE(MGHI);
+  EVALUATE(CHI);
+  EVALUATE(CGHI);
+  EVALUATE(LARL);
+  EVALUATE(LGFI);
+  EVALUATE(BRCL);
+  EVALUATE(BRASL);
+  EVALUATE(XIHF);
+  EVALUATE(XILF);
+  EVALUATE(IIHF);
+  EVALUATE(IILF);
+  EVALUATE(NIHF);
+  EVALUATE(NILF);
+  EVALUATE(OIHF);
+  EVALUATE(OILF);
+  EVALUATE(LLIHF);
+  EVALUATE(LLILF);
+  EVALUATE(MSGFI);
+  EVALUATE(MSFI);
+  EVALUATE(SLGFI);
+  EVALUATE(SLFI);
+  EVALUATE(AGFI);
+  EVALUATE(AFI);
+  EVALUATE(ALGFI);
+  EVALUATE(ALFI);
+  EVALUATE(CGFI);
+  EVALUATE(CFI);
+  EVALUATE(CLGFI);
+  EVALUATE(CLFI);
+  EVALUATE(LLHRL);
+  EVALUATE(LGHRL);
+  EVALUATE(LHRL);
+  EVALUATE(LLGHRL);
+  EVALUATE(STHRL);
+  EVALUATE(LGRL);
+  EVALUATE(STGRL);
+  EVALUATE(LGFRL);
+  EVALUATE(LRL);
+  EVALUATE(LLGFRL);
+  EVALUATE(STRL);
+  EVALUATE(EXRL);
+  EVALUATE(PFDRL);
+  EVALUATE(CGHRL);
+  EVALUATE(CHRL);
+  EVALUATE(CGRL);
+  EVALUATE(CGFRL);
+  EVALUATE(ECTG);
+  EVALUATE(CSST);
+  EVALUATE(LPD);
+  EVALUATE(LPDG);
+  EVALUATE(BRCTH);
+  EVALUATE(AIH);
+  EVALUATE(ALSIH);
+  EVALUATE(ALSIHN);
+  EVALUATE(CIH);
+  EVALUATE(STCK);
+  EVALUATE(CFC);
+  EVALUATE(IPM);
+  EVALUATE(HSCH);
+  EVALUATE(MSCH);
+  EVALUATE(SSCH);
+  EVALUATE(STSCH);
+  EVALUATE(TSCH);
+  EVALUATE(TPI);
+  EVALUATE(SAL);
+  EVALUATE(RSCH);
+  EVALUATE(STCRW);
+  EVALUATE(STCPS);
+  EVALUATE(RCHP);
+  EVALUATE(SCHM);
+  EVALUATE(CKSM);
+  EVALUATE(SAR);
+  EVALUATE(EAR);
+  EVALUATE(MSR);
+  EVALUATE(MVST);
+  EVALUATE(CUSE);
+  EVALUATE(SRST);
+  EVALUATE(XSCH);
+  EVALUATE(STCKE);
+  EVALUATE(STCKF);
+  EVALUATE(SRNM);
+  EVALUATE(STFPC);
+  EVALUATE(LFPC);
+  EVALUATE(TRE);
+  EVALUATE(CUUTF);
+  EVALUATE(CUTFU);
+  EVALUATE(STFLE);
+  EVALUATE(SRNMB);
+  EVALUATE(SRNMT);
+  EVALUATE(LFAS);
+  EVALUATE(PPA);
+  EVALUATE(ETND);
+  EVALUATE(TEND);
+  EVALUATE(NIAI);
+  EVALUATE(TABORT);
+  EVALUATE(TRAP4);
+  EVALUATE(LPEBR);
+  EVALUATE(LNEBR);
+  EVALUATE(LTEBR);
+  EVALUATE(LCEBR);
+  EVALUATE(LDEBR);
+  EVALUATE(LXDBR);
+  EVALUATE(LXEBR);
+  EVALUATE(MXDBR);
+  EVALUATE(KEBR);
+  EVALUATE(CEBR);
+  EVALUATE(AEBR);
+  EVALUATE(SEBR);
+  EVALUATE(MDEBR);
+  EVALUATE(DEBR);
+  EVALUATE(MAEBR);
+  EVALUATE(MSEBR);
+  EVALUATE(LPDBR);
+  EVALUATE(LNDBR);
+  EVALUATE(LTDBR);
+  EVALUATE(LCDBR);
+  EVALUATE(SQEBR);
+  EVALUATE(SQDBR);
+  EVALUATE(SQXBR);
+  EVALUATE(MEEBR);
+  EVALUATE(KDBR);
+  EVALUATE(CDBR);
+  EVALUATE(ADBR);
+  EVALUATE(SDBR);
+  EVALUATE(MDBR);
+  EVALUATE(DDBR);
+  EVALUATE(MADBR);
+  EVALUATE(MSDBR);
+  EVALUATE(LPXBR);
+  EVALUATE(LNXBR);
+  EVALUATE(LTXBR);
+  EVALUATE(LCXBR);
+  EVALUATE(LEDBRA);
+  EVALUATE(LDXBRA);
+  EVALUATE(LEXBRA);
+  EVALUATE(FIXBRA);
+  EVALUATE(KXBR);
+  EVALUATE(CXBR);
+  EVALUATE(AXBR);
+  EVALUATE(SXBR);
+  EVALUATE(MXBR);
+  EVALUATE(DXBR);
+  EVALUATE(TBEDR);
+  EVALUATE(TBDR);
+  EVALUATE(DIEBR);
+  EVALUATE(FIEBRA);
+  EVALUATE(THDER);
+  EVALUATE(THDR);
+  EVALUATE(DIDBR);
+  EVALUATE(FIDBRA);
+  EVALUATE(LXR);
+  EVALUATE(LPDFR);
+  EVALUATE(LNDFR);
+  EVALUATE(LCDFR);
+  EVALUATE(LZER);
+  EVALUATE(LZDR);
+  EVALUATE(LZXR);
+  EVALUATE(SFPC);
+  EVALUATE(SFASR);
+  EVALUATE(EFPC);
+  EVALUATE(CELFBR);
+  EVALUATE(CDLFBR);
+  EVALUATE(CXLFBR);
+  EVALUATE(CEFBRA);
+  EVALUATE(CDFBRA);
+  EVALUATE(CXFBRA);
+  EVALUATE(CFEBRA);
+  EVALUATE(CFDBRA);
+  EVALUATE(CFXBRA);
+  EVALUATE(CLFEBR);
+  EVALUATE(CLFDBR);
+  EVALUATE(CLFXBR);
+  EVALUATE(CELGBR);
+  EVALUATE(CDLGBR);
+  EVALUATE(CXLGBR);
+  EVALUATE(CEGBRA);
+  EVALUATE(CDGBRA);
+  EVALUATE(CXGBRA);
+  EVALUATE(CGEBRA);
+  EVALUATE(CGDBRA);
+  EVALUATE(CGXBRA);
+  EVALUATE(CLGEBR);
+  EVALUATE(CLGDBR);
+  EVALUATE(CFER);
+  EVALUATE(CFDR);
+  EVALUATE(CFXR);
+  EVALUATE(LDGR);
+  EVALUATE(CGER);
+  EVALUATE(CGDR);
+  EVALUATE(CGXR);
+  EVALUATE(LGDR);
+  EVALUATE(MDTR);
+  EVALUATE(MDTRA);
+  EVALUATE(DDTRA);
+  EVALUATE(ADTRA);
+  EVALUATE(SDTRA);
+  EVALUATE(LDETR);
+  EVALUATE(LEDTR);
+  EVALUATE(LTDTR);
+  EVALUATE(FIDTR);
+  EVALUATE(MXTRA);
+  EVALUATE(DXTRA);
+  EVALUATE(AXTRA);
+  EVALUATE(SXTRA);
+  EVALUATE(LXDTR);
+  EVALUATE(LDXTR);
+  EVALUATE(LTXTR);
+  EVALUATE(FIXTR);
+  EVALUATE(KDTR);
+  EVALUATE(CGDTRA);
+  EVALUATE(CUDTR);
+  EVALUATE(CDTR);
+  EVALUATE(EEDTR);
+  EVALUATE(ESDTR);
+  EVALUATE(KXTR);
+  EVALUATE(CGXTRA);
+  EVALUATE(CUXTR);
+  EVALUATE(CSXTR);
+  EVALUATE(CXTR);
+  EVALUATE(EEXTR);
+  EVALUATE(ESXTR);
+  EVALUATE(CDGTRA);
+  EVALUATE(CDUTR);
+  EVALUATE(CDSTR);
+  EVALUATE(CEDTR);
+  EVALUATE(QADTR);
+  EVALUATE(IEDTR);
+  EVALUATE(RRDTR);
+  EVALUATE(CXGTRA);
+  EVALUATE(CXUTR);
+  EVALUATE(CXSTR);
+  EVALUATE(CEXTR);
+  EVALUATE(QAXTR);
+  EVALUATE(IEXTR);
+  EVALUATE(RRXTR);
+  EVALUATE(LPGR);
+  EVALUATE(LNGR);
+  EVALUATE(LTGR);
+  EVALUATE(LCGR);
+  EVALUATE(LGR);
+  EVALUATE(LGBR);
+  EVALUATE(LGHR);
+  EVALUATE(AGR);
+  EVALUATE(SGR);
+  EVALUATE(ALGR);
+  EVALUATE(SLGR);
+  EVALUATE(MSGR);
+  EVALUATE(DSGR);
+  EVALUATE(LRVGR);
+  EVALUATE(LPGFR);
+  EVALUATE(LNGFR);
+  EVALUATE(LTGFR);
+  EVALUATE(LCGFR);
+  EVALUATE(LGFR);
+  EVALUATE(LLGFR);
+  EVALUATE(LLGTR);
+  EVALUATE(AGFR);
+  EVALUATE(SGFR);
+  EVALUATE(ALGFR);
+  EVALUATE(SLGFR);
+  EVALUATE(MSGFR);
+  EVALUATE(DSGFR);
+  EVALUATE(KMAC);
+  EVALUATE(LRVR);
+  EVALUATE(CGR);
+  EVALUATE(CLGR);
+  EVALUATE(LBR);
+  EVALUATE(LHR);
+  EVALUATE(KMF);
+  EVALUATE(KMO);
+  EVALUATE(PCC);
+  EVALUATE(KMCTR);
+  EVALUATE(KM);
+  EVALUATE(KMC);
+  EVALUATE(CGFR);
+  EVALUATE(KIMD);
+  EVALUATE(KLMD);
+  EVALUATE(CFDTR);
+  EVALUATE(CLGDTR);
+  EVALUATE(CLFDTR);
+  EVALUATE(BCTGR);
+  EVALUATE(CFXTR);
+  EVALUATE(CLFXTR);
+  EVALUATE(CDFTR);
+  EVALUATE(CDLGTR);
+  EVALUATE(CDLFTR);
+  EVALUATE(CXFTR);
+  EVALUATE(CXLGTR);
+  EVALUATE(CXLFTR);
+  EVALUATE(CGRT);
+  EVALUATE(NGR);
+  EVALUATE(OGR);
+  EVALUATE(XGR);
+  EVALUATE(FLOGR);
+  EVALUATE(LLGCR);
+  EVALUATE(LLGHR);
+  EVALUATE(MLGR);
+  EVALUATE(DLGR);
+  EVALUATE(ALCGR);
+  EVALUATE(SLBGR);
+  EVALUATE(EPSW);
+  EVALUATE(TRTT);
+  EVALUATE(TRTO);
+  EVALUATE(TROT);
+  EVALUATE(TROO);
+  EVALUATE(LLCR);
+  EVALUATE(LLHR);
+  EVALUATE(MLR);
+  EVALUATE(DLR);
+  EVALUATE(ALCR);
+  EVALUATE(SLBR);
+  EVALUATE(CU14);
+  EVALUATE(CU24);
+  EVALUATE(CU41);
+  EVALUATE(CU42);
+  EVALUATE(TRTRE);
+  EVALUATE(SRSTU);
+  EVALUATE(TRTE);
+  EVALUATE(AHHHR);
+  EVALUATE(SHHHR);
+  EVALUATE(ALHHHR);
+  EVALUATE(SLHHHR);
+  EVALUATE(CHHR);
+  EVALUATE(AHHLR);
+  EVALUATE(SHHLR);
+  EVALUATE(ALHHLR);
+  EVALUATE(SLHHLR);
+  EVALUATE(CHLR);
+  EVALUATE(POPCNT_Z);
+  EVALUATE(LOCGR);
+  EVALUATE(NGRK);
+  EVALUATE(OGRK);
+  EVALUATE(XGRK);
+  EVALUATE(AGRK);
+  EVALUATE(SGRK);
+  EVALUATE(ALGRK);
+  EVALUATE(SLGRK);
+  EVALUATE(LOCR);
+  EVALUATE(NRK);
+  EVALUATE(ORK);
+  EVALUATE(XRK);
+  EVALUATE(ARK);
+  EVALUATE(SRK);
+  EVALUATE(ALRK);
+  EVALUATE(SLRK);
+  EVALUATE(LTG);
+  EVALUATE(LG);
+  EVALUATE(CVBY);
+  EVALUATE(AG);
+  EVALUATE(SG);
+  EVALUATE(ALG);
+  EVALUATE(SLG);
+  EVALUATE(MSG);
+  EVALUATE(DSG);
+  EVALUATE(CVBG);
+  EVALUATE(LRVG);
+  EVALUATE(LT);
+  EVALUATE(LGF);
+  EVALUATE(LGH);
+  EVALUATE(LLGF);
+  EVALUATE(LLGT);
+  EVALUATE(AGF);
+  EVALUATE(SGF);
+  EVALUATE(ALGF);
+  EVALUATE(SLGF);
+  EVALUATE(MSGF);
+  EVALUATE(DSGF);
+  EVALUATE(LRV);
+  EVALUATE(LRVH);
+  EVALUATE(CG);
+  EVALUATE(CLG);
+  EVALUATE(STG);
+  EVALUATE(NTSTG);
+  EVALUATE(CVDY);
+  EVALUATE(CVDG);
+  EVALUATE(STRVG);
+  EVALUATE(CGF);
+  EVALUATE(CLGF);
+  EVALUATE(LTGF);
+  EVALUATE(CGH);
+  EVALUATE(PFD);
+  EVALUATE(STRV);
+  EVALUATE(STRVH);
+  EVALUATE(BCTG);
+  EVALUATE(STY);
+  EVALUATE(MSY);
+  EVALUATE(NY);
+  EVALUATE(CLY);
+  EVALUATE(OY);
+  EVALUATE(XY);
+  EVALUATE(LY);
+  EVALUATE(CY);
+  EVALUATE(AY);
+  EVALUATE(SY);
+  EVALUATE(MFY);
+  EVALUATE(ALY);
+  EVALUATE(SLY);
+  EVALUATE(STHY);
+  EVALUATE(LAY);
+  EVALUATE(STCY);
+  EVALUATE(ICY);
+  EVALUATE(LAEY);
+  EVALUATE(LB);
+  EVALUATE(LGB);
+  EVALUATE(LHY);
+  EVALUATE(CHY);
+  EVALUATE(AHY);
+  EVALUATE(SHY);
+  EVALUATE(MHY);
+  EVALUATE(NG);
+  EVALUATE(OG);
+  EVALUATE(XG);
+  EVALUATE(LGAT);
+  EVALUATE(MLG);
+  EVALUATE(DLG);
+  EVALUATE(ALCG);
+  EVALUATE(SLBG);
+  EVALUATE(STPQ);
+  EVALUATE(LPQ);
+  EVALUATE(LLGC);
+  EVALUATE(LLGH);
+  EVALUATE(LLC);
+  EVALUATE(LLH);
+  EVALUATE(ML);
+  EVALUATE(DL);
+  EVALUATE(ALC);
+  EVALUATE(SLB);
+  EVALUATE(LLGTAT);
+  EVALUATE(LLGFAT);
+  EVALUATE(LAT);
+  EVALUATE(LBH);
+  EVALUATE(LLCH);
+  EVALUATE(STCH);
+  EVALUATE(LHH);
+  EVALUATE(LLHH);
+  EVALUATE(STHH);
+  EVALUATE(LFHAT);
+  EVALUATE(LFH);
+  EVALUATE(STFH);
+  EVALUATE(CHF);
+  EVALUATE(MVCDK);
+  EVALUATE(MVHHI);
+  EVALUATE(MVGHI);
+  EVALUATE(MVHI);
+  EVALUATE(CHHSI);
+  EVALUATE(CGHSI);
+  EVALUATE(CHSI);
+  EVALUATE(CLFHSI);
+  EVALUATE(TBEGIN);
+  EVALUATE(TBEGINC);
+  EVALUATE(LMG);
+  EVALUATE(SRAG);
+  EVALUATE(SLAG);
+  EVALUATE(SRLG);
+  EVALUATE(SLLG);
+  EVALUATE(CSY);
+  EVALUATE(RLLG);
+  EVALUATE(RLL);
+  EVALUATE(STMG);
+  EVALUATE(STMH);
+  EVALUATE(STCMH);
+  EVALUATE(STCMY);
+  EVALUATE(CDSY);
+  EVALUATE(CDSG);
+  EVALUATE(BXHG);
+  EVALUATE(BXLEG);
+  EVALUATE(ECAG);
+  EVALUATE(TMY);
+  EVALUATE(MVIY);
+  EVALUATE(NIY);
+  EVALUATE(CLIY);
+  EVALUATE(OIY);
+  EVALUATE(XIY);
+  EVALUATE(ASI);
+  EVALUATE(ALSI);
+  EVALUATE(AGSI);
+  EVALUATE(ALGSI);
+  EVALUATE(ICMH);
+  EVALUATE(ICMY);
+  EVALUATE(MVCLU);
+  EVALUATE(CLCLU);
+  EVALUATE(STMY);
+  EVALUATE(LMH);
+  EVALUATE(LMY);
+  EVALUATE(TP);
+  EVALUATE(SRAK);
+  EVALUATE(SLAK);
+  EVALUATE(SRLK);
+  EVALUATE(SLLK);
+  EVALUATE(LOCG);
+  EVALUATE(STOCG);
+  EVALUATE(LANG);
+  EVALUATE(LAOG);
+  EVALUATE(LAXG);
+  EVALUATE(LAAG);
+  EVALUATE(LAALG);
+  EVALUATE(LOC);
+  EVALUATE(STOC);
+  EVALUATE(LAN);
+  EVALUATE(LAO);
+  EVALUATE(LAX);
+  EVALUATE(LAA);
+  EVALUATE(LAAL);
+  EVALUATE(BRXHG);
+  EVALUATE(BRXLG);
+  EVALUATE(RISBLG);
+  EVALUATE(RNSBG);
+  EVALUATE(RISBG);
+  EVALUATE(ROSBG);
+  EVALUATE(RXSBG);
+  EVALUATE(RISBGN);
+  EVALUATE(RISBHG);
+  EVALUATE(CGRJ);
+  EVALUATE(CGIT);
+  EVALUATE(CIT);
+  EVALUATE(CLFIT);
+  EVALUATE(CGIJ);
+  EVALUATE(CIJ);
+  EVALUATE(AHIK);
+  EVALUATE(AGHIK);
+  EVALUATE(ALHSIK);
+  EVALUATE(ALGHSIK);
+  EVALUATE(CGRB);
+  EVALUATE(CGIB);
+  EVALUATE(CIB);
+  EVALUATE(LDEB);
+  EVALUATE(LXDB);
+  EVALUATE(LXEB);
+  EVALUATE(MXDB);
+  EVALUATE(KEB);
+  EVALUATE(CEB);
+  EVALUATE(AEB);
+  EVALUATE(SEB);
+  EVALUATE(MDEB);
+  EVALUATE(DEB);
+  EVALUATE(MAEB);
+  EVALUATE(MSEB);
+  EVALUATE(TCEB);
+  EVALUATE(TCDB);
+  EVALUATE(TCXB);
+  EVALUATE(SQEB);
+  EVALUATE(SQDB);
+  EVALUATE(MEEB);
+  EVALUATE(KDB);
+  EVALUATE(CDB);
+  EVALUATE(ADB);
+  EVALUATE(SDB);
+  EVALUATE(MDB);
+  EVALUATE(DDB);
+  EVALUATE(MADB);
+  EVALUATE(MSDB);
+  EVALUATE(SLDT);
+  EVALUATE(SRDT);
+  EVALUATE(SLXT);
+  EVALUATE(SRXT);
+  EVALUATE(TDCET);
+  EVALUATE(TDGET);
+  EVALUATE(TDCDT);
+  EVALUATE(TDGDT);
+  EVALUATE(TDCXT);
+  EVALUATE(TDGXT);
+  EVALUATE(LEY);
+  EVALUATE(LDY);
+  EVALUATE(STEY);
+  EVALUATE(STDY);
+  EVALUATE(CZDT);
+  EVALUATE(CZXT);
+  EVALUATE(CDZT);
+  EVALUATE(CXZT);
+#undef EVALUATE
 };
 
 // When running with the simulator transition into simulated execution at this
diff --git a/src/snapshot/code-serializer.cc b/src/snapshot/code-serializer.cc
index 84a08c1..1a2e077 100644
--- a/src/snapshot/code-serializer.cc
+++ b/src/snapshot/code-serializer.cc
@@ -73,12 +73,10 @@
                          where_to_point);
         return;
       case Code::STUB:
-        SerializeCodeStub(code_object->stub_key(), how_to_code, where_to_point);
-        return;
 #define IC_KIND_CASE(KIND) case Code::KIND:
         IC_KIND_LIST(IC_KIND_CASE)
 #undef IC_KIND_CASE
-        SerializeIC(code_object, how_to_code, where_to_point);
+        SerializeCodeStub(code_object, how_to_code, where_to_point);
         return;
       case Code::FUNCTION:
         DCHECK(code_object->has_reloc_info_for_serialization());
@@ -130,71 +128,23 @@
   sink_->PutInt(builtin_index, "builtin_index");
 }
 
-void CodeSerializer::SerializeCodeStub(uint32_t stub_key, HowToCode how_to_code,
+void CodeSerializer::SerializeCodeStub(Code* code_stub, HowToCode how_to_code,
                                        WhereToPoint where_to_point) {
-  DCHECK((how_to_code == kPlain && where_to_point == kStartOfObject) ||
-         (how_to_code == kPlain && where_to_point == kInnerPointer) ||
-         (how_to_code == kFromCode && where_to_point == kInnerPointer));
+  // We only arrive here if we have not encountered this code stub before.
+  DCHECK(!reference_map()->Lookup(code_stub).is_valid());
+  uint32_t stub_key = code_stub->stub_key();
   DCHECK(CodeStub::MajorKeyFromKey(stub_key) != CodeStub::NoCache);
   DCHECK(!CodeStub::GetCode(isolate(), stub_key).is_null());
-
-  int index = AddCodeStubKey(stub_key) + kCodeStubsBaseIndex;
-
-  if (FLAG_trace_serializer) {
-    PrintF(" Encoding code stub %s as %d\n",
-           CodeStub::MajorName(CodeStub::MajorKeyFromKey(stub_key)), index);
-  }
-
-  sink_->Put(kAttachedReference + how_to_code + where_to_point, "CodeStub");
-  sink_->PutInt(index, "CodeStub key");
-}
-
-void CodeSerializer::SerializeIC(Code* ic, HowToCode how_to_code,
-                                 WhereToPoint where_to_point) {
-  // The IC may be implemented as a stub.
-  uint32_t stub_key = ic->stub_key();
-  if (stub_key != CodeStub::NoCacheKey()) {
-    if (FLAG_trace_serializer) {
-      PrintF(" %s is a code stub\n", Code::Kind2String(ic->kind()));
-    }
-    SerializeCodeStub(stub_key, how_to_code, where_to_point);
-    return;
-  }
-  // The IC may be implemented as builtin. Only real builtins have an
-  // actual builtin_index value attached (otherwise it's just garbage).
-  // Compare to make sure we are really dealing with a builtin.
-  int builtin_index = ic->builtin_index();
-  if (builtin_index < Builtins::builtin_count) {
-    Builtins::Name name = static_cast<Builtins::Name>(builtin_index);
-    Code* builtin = isolate()->builtins()->builtin(name);
-    if (builtin == ic) {
-      if (FLAG_trace_serializer) {
-        PrintF(" %s is a builtin\n", Code::Kind2String(ic->kind()));
-      }
-      DCHECK(ic->kind() == Code::KEYED_LOAD_IC ||
-             ic->kind() == Code::KEYED_STORE_IC);
-      SerializeBuiltin(builtin_index, how_to_code, where_to_point);
-      return;
-    }
-  }
-  // The IC may also just be a piece of code kept in the non_monomorphic_cache.
-  // In that case, just serialize as a normal code object.
-  if (FLAG_trace_serializer) {
-    PrintF(" %s has no special handling\n", Code::Kind2String(ic->kind()));
-  }
-  DCHECK(ic->kind() == Code::LOAD_IC || ic->kind() == Code::STORE_IC);
-  SerializeGeneric(ic, how_to_code, where_to_point);
-}
-
-int CodeSerializer::AddCodeStubKey(uint32_t stub_key) {
-  // TODO(yangguo) Maybe we need a hash table for a faster lookup than O(n^2).
-  int index = 0;
-  while (index < stub_keys_.length()) {
-    if (stub_keys_[index] == stub_key) return index;
-    index++;
-  }
   stub_keys_.Add(stub_key);
-  return index;
+
+  SerializerReference reference =
+      reference_map()->AddAttachedReference(code_stub);
+  if (FLAG_trace_serializer) {
+    PrintF(" Encoding code stub %s as attached reference %d\n",
+           CodeStub::MajorName(CodeStub::MajorKeyFromKey(stub_key)),
+           reference.attached_reference_index());
+  }
+  PutAttachedReference(reference, how_to_code, where_to_point);
 }
 
 MaybeHandle<SharedFunctionInfo> CodeSerializer::Deserialize(
@@ -212,18 +162,13 @@
     return MaybeHandle<SharedFunctionInfo>();
   }
 
-  // Prepare and register list of attached objects.
-  Vector<const uint32_t> code_stub_keys = scd->CodeStubKeys();
-  Vector<Handle<Object> > attached_objects = Vector<Handle<Object> >::New(
-      code_stub_keys.length() + kCodeStubsBaseIndex);
-  attached_objects[kSourceObjectIndex] = source;
-  for (int i = 0; i < code_stub_keys.length(); i++) {
-    attached_objects[i + kCodeStubsBaseIndex] =
-        CodeStub::GetCode(isolate, code_stub_keys[i]).ToHandleChecked();
-  }
-
   Deserializer deserializer(scd.get());
-  deserializer.SetAttachedObjects(attached_objects);
+  deserializer.AddAttachedObject(source);
+  Vector<const uint32_t> code_stub_keys = scd->CodeStubKeys();
+  for (int i = 0; i < code_stub_keys.length(); i++) {
+    deserializer.AddAttachedObject(
+        CodeStub::GetCode(isolate, code_stub_keys[i]).ToHandleChecked());
+  }
 
   // Deserialize.
   Handle<SharedFunctionInfo> result;
@@ -247,8 +192,8 @@
       Script* script = Script::cast(result->script());
       if (script->name()->IsString()) name = String::cast(script->name());
     }
-    isolate->logger()->CodeCreateEvent(
-        Logger::SCRIPT_TAG, result->abstract_code(), *result, NULL, name);
+    isolate->logger()->CodeCreateEvent(Logger::SCRIPT_TAG,
+                                       result->abstract_code(), *result, name);
   }
   return scope.CloseAndEscape(result);
 }
diff --git a/src/snapshot/code-serializer.h b/src/snapshot/code-serializer.h
index b217fff..8ed4cf6 100644
--- a/src/snapshot/code-serializer.h
+++ b/src/snapshot/code-serializer.h
@@ -20,11 +20,6 @@
   MUST_USE_RESULT static MaybeHandle<SharedFunctionInfo> Deserialize(
       Isolate* isolate, ScriptData* cached_data, Handle<String> source);
 
-  static const int kSourceObjectIndex = 0;
-  STATIC_ASSERT(kSourceObjectReference == kSourceObjectIndex);
-
-  static const int kCodeStubsBaseIndex = 1;
-
   String* source() const {
     DCHECK(!AllowHeapAllocation::IsAllowed());
     return source_;
@@ -35,7 +30,7 @@
  private:
   CodeSerializer(Isolate* isolate, SnapshotByteSink* sink, String* source)
       : Serializer(isolate, sink), source_(source) {
-    back_reference_map_.AddSourceString(source);
+    reference_map_.AddAttachedReference(source);
   }
 
   ~CodeSerializer() override { OutputStatistics("CodeSerializer"); }
@@ -45,13 +40,10 @@
 
   void SerializeBuiltin(int builtin_index, HowToCode how_to_code,
                         WhereToPoint where_to_point);
-  void SerializeIC(Code* ic, HowToCode how_to_code,
-                   WhereToPoint where_to_point);
-  void SerializeCodeStub(uint32_t stub_key, HowToCode how_to_code,
+  void SerializeCodeStub(Code* code_stub, HowToCode how_to_code,
                          WhereToPoint where_to_point);
   void SerializeGeneric(HeapObject* heap_object, HowToCode how_to_code,
                         WhereToPoint where_to_point);
-  int AddCodeStubKey(uint32_t stub_key);
 
   DisallowHeapAllocation no_gc_;
   String* source_;
diff --git a/src/snapshot/deserializer.cc b/src/snapshot/deserializer.cc
index 0a21fef..88820ae 100644
--- a/src/snapshot/deserializer.cc
+++ b/src/snapshot/deserializer.cc
@@ -119,9 +119,7 @@
     return MaybeHandle<Object>();
   }
 
-  Vector<Handle<Object> > attached_objects = Vector<Handle<Object> >::New(1);
-  attached_objects[kGlobalProxyReference] = global_proxy;
-  SetAttachedObjects(attached_objects);
+  AddAttachedObject(global_proxy);
 
   DisallowHeapAllocation no_gc;
   // Keep track of the code space start and end pointers in case new
@@ -167,7 +165,6 @@
 Deserializer::~Deserializer() {
   // TODO(svenpanne) Re-enable this assertion when v8 initialization is fixed.
   // DCHECK(source_.AtEOF());
-  attached_objects_.Dispose();
 }
 
 // This is called on the roots.  It is the driver of the deserialization
@@ -315,7 +312,8 @@
 
 HeapObject* Deserializer::GetBackReferencedObject(int space) {
   HeapObject* obj;
-  BackReference back_reference(source_.GetInt());
+  SerializerReference back_reference =
+      SerializerReference::FromBitfield(source_.GetInt());
   if (space == LO_SPACE) {
     CHECK(back_reference.chunk_index() == 0);
     uint32_t index = back_reference.large_object_index();
@@ -496,7 +494,6 @@
         new_object = reinterpret_cast<Object*>(address);                       \
       } else if (where == kAttachedReference) {                                \
         int index = source_.GetInt();                                          \
-        DCHECK(deserializing_user_code() || index == kGlobalProxyReference);   \
         new_object = *attached_objects_[index];                                \
         emit_write_barrier = isolate->heap()->InNewSpace(new_object);          \
       } else {                                                                 \
diff --git a/src/snapshot/deserializer.h b/src/snapshot/deserializer.h
index 58c481c..08b3444 100644
--- a/src/snapshot/deserializer.h
+++ b/src/snapshot/deserializer.h
@@ -53,10 +53,10 @@
   // Deserialize a shared function info. Fail gracefully.
   MaybeHandle<SharedFunctionInfo> DeserializeCode(Isolate* isolate);
 
-  // Pass a vector of externally-provided objects referenced by the snapshot.
-  // The ownership to its backing store is handed over as well.
-  void SetAttachedObjects(Vector<Handle<Object> > attached_objects) {
-    attached_objects_ = attached_objects;
+  // Add an object to back an attached reference. The order to add objects must
+  // mirror the order they are added in the serializer.
+  void AddAttachedObject(Handle<HeapObject> attached_object) {
+    attached_objects_.Add(attached_object);
   }
 
  private:
@@ -117,7 +117,7 @@
   Isolate* isolate_;
 
   // Objects from the attached object descriptions in the serialized user code.
-  Vector<Handle<Object> > attached_objects_;
+  List<Handle<HeapObject> > attached_objects_;
 
   SnapshotByteSource source_;
   uint32_t magic_number_;
diff --git a/src/snapshot/partial-serializer.cc b/src/snapshot/partial-serializer.cc
index 0f1f133..34defb4 100644
--- a/src/snapshot/partial-serializer.cc
+++ b/src/snapshot/partial-serializer.cc
@@ -14,7 +14,6 @@
                                      SnapshotByteSink* sink)
     : Serializer(isolate, sink),
       startup_serializer_(startup_snapshot_serializer),
-      global_object_(NULL),
       next_partial_cache_index_(0) {
   InitializeCodeAddressMap();
 }
@@ -26,8 +25,7 @@
 void PartialSerializer::Serialize(Object** o) {
   if ((*o)->IsContext()) {
     Context* context = Context::cast(*o);
-    global_object_ = context->global_object();
-    back_reference_map()->AddGlobalProxy(context->global_proxy());
+    reference_map()->AddAttachedReference(context->global_proxy());
     // The bootstrap snapshot has a code-stub context. When serializing the
     // partial snapshot, it is chained into the weak context list on the isolate
     // and it's next context pointer may point to the code-stub context.  Clear
@@ -74,7 +72,7 @@
   // Pointers from the partial snapshot to the objects in the startup snapshot
   // should go through the root array or through the partial snapshot cache.
   // If this is not the case you may have to add something to the root array.
-  DCHECK(!startup_serializer_->back_reference_map()->Lookup(obj).is_valid());
+  DCHECK(!startup_serializer_->reference_map()->Lookup(obj).is_valid());
   // All the internalized strings that the partial snapshot needs should be
   // either in the root table or in the partial snapshot cache.
   DCHECK(!obj->IsInternalizedString());
diff --git a/src/snapshot/partial-serializer.h b/src/snapshot/partial-serializer.h
index 0bf61dd..ddaba5f 100644
--- a/src/snapshot/partial-serializer.h
+++ b/src/snapshot/partial-serializer.h
@@ -50,7 +50,6 @@
   bool ShouldBeInThePartialSnapshotCache(HeapObject* o);
 
   Serializer* startup_serializer_;
-  Object* global_object_;
   PartialCacheIndexMap partial_cache_index_map_;
   int next_partial_cache_index_;
   DISALLOW_COPY_AND_ASSIGN(PartialSerializer);
diff --git a/src/snapshot/serializer-common.cc b/src/snapshot/serializer-common.cc
index eeb7eb7..4afaa20 100644
--- a/src/snapshot/serializer-common.cc
+++ b/src/snapshot/serializer-common.cc
@@ -20,7 +20,10 @@
     Address addr = table->address(i);
     if (addr == ExternalReferenceTable::NotAvailable()) continue;
     // We expect no duplicate external references entries in the table.
-    DCHECK_NULL(map_->Lookup(addr, Hash(addr)));
+    // AccessorRefTable getter may have duplicates, indicated by an empty string
+    // as name.
+    DCHECK(table->name(i)[0] == '\0' ||
+           map_->Lookup(addr, Hash(addr)) == nullptr);
     map_->LookupOrInsert(addr, Hash(addr))->value = reinterpret_cast<void*>(i);
   }
   isolate->set_external_reference_map(map_);
diff --git a/src/snapshot/serializer-common.h b/src/snapshot/serializer-common.h
index 645a9af..1ce5ced 100644
--- a/src/snapshot/serializer-common.h
+++ b/src/snapshot/serializer-common.h
@@ -40,11 +40,13 @@
   }
 
   void Add(HeapObject* object) {
+    DCHECK(!AllowHeapAllocation::IsAllowed());
     circular_queue_[index_] = object;
     index_ = (index_ + 1) & kSizeMask;
   }
 
   HeapObject* Get(int index) {
+    DCHECK(!AllowHeapAllocation::IsAllowed());
     DCHECK_NOT_NULL(circular_queue_[index]);
     return circular_queue_[index];
   }
@@ -52,6 +54,7 @@
   static const int kNotFound = -1;
 
   int Find(HeapObject* object) {
+    DCHECK(!AllowHeapAllocation::IsAllowed());
     for (int i = 0; i < kSize; i++) {
       if (circular_queue_[i] == object) return i;
     }
@@ -211,12 +214,6 @@
   // Sentinel after a new object to indicate that double alignment is needed.
   static const int kDoubleAlignmentSentinel = 0;
 
-  // Used as index for the attached reference representing the source object.
-  static const int kSourceObjectReference = 0;
-
-  // Used as index for the attached reference representing the global proxy.
-  static const int kGlobalProxyReference = 0;
-
   // ---------- member variable ----------
   HotObjectsList hot_objects_;
 };
diff --git a/src/snapshot/serializer.cc b/src/snapshot/serializer.cc
index 4169338..f6f2200 100644
--- a/src/snapshot/serializer.cc
+++ b/src/snapshot/serializer.cc
@@ -71,15 +71,15 @@
   for (int space = 0; space < kNumberOfPreallocatedSpaces; space++) {
     size_t s = pending_chunk_[space];
     for (uint32_t chunk_size : completed_chunks_[space]) s += chunk_size;
-    PrintF("%16" V8_SIZET_PREFIX V8_PTR_PREFIX "d", s);
+    PrintF("%16" PRIuS, s);
   }
   PrintF("%16d\n", large_objects_total_size_);
 #ifdef OBJECT_PRINT
   PrintF("  Instance types (count and bytes):\n");
-#define PRINT_INSTANCE_TYPE(Name)                                         \
-  if (instance_type_count_[Name]) {                                       \
-    PrintF("%10d %10" V8_SIZET_PREFIX V8_PTR_PREFIX "d  %s\n",            \
-           instance_type_count_[Name], instance_type_size_[Name], #Name); \
+#define PRINT_INSTANCE_TYPE(Name)                                 \
+  if (instance_type_count_[Name]) {                               \
+    PrintF("%10d %10" PRIuS "  %s\n", instance_type_count_[Name], \
+           instance_type_size_[Name], #Name);                     \
   }
   INSTANCE_TYPE_LIST(PRINT_INSTANCE_TYPE)
 #undef PRINT_INSTANCE_TYPE
@@ -124,10 +124,9 @@
 }
 
 #ifdef DEBUG
-bool Serializer::BackReferenceIsAlreadyAllocated(BackReference reference) {
-  DCHECK(reference.is_valid());
-  DCHECK(!reference.is_source());
-  DCHECK(!reference.is_global_proxy());
+bool Serializer::BackReferenceIsAlreadyAllocated(
+    SerializerReference reference) {
+  DCHECK(reference.is_back_reference());
   AllocationSpace space = reference.space();
   int chunk_index = reference.chunk_index();
   if (space == LO_SPACE) {
@@ -163,25 +162,21 @@
       return true;
     }
   }
-  BackReference back_reference = back_reference_map_.Lookup(obj);
-  if (back_reference.is_valid()) {
+  SerializerReference reference = reference_map_.Lookup(obj);
+  if (reference.is_valid()) {
     // Encode the location of an already deserialized object in order to write
     // its location into a later object.  We can encode the location as an
     // offset fromthe start of the deserialized objects or as an offset
     // backwards from thecurrent allocation pointer.
-    if (back_reference.is_source()) {
+    if (reference.is_attached_reference()) {
       FlushSkip(skip);
-      if (FLAG_trace_serializer) PrintF(" Encoding source object\n");
-      DCHECK(how_to_code == kPlain && where_to_point == kStartOfObject);
-      sink_->Put(kAttachedReference + kPlain + kStartOfObject, "Source");
-      sink_->PutInt(kSourceObjectReference, "kSourceObjectReference");
-    } else if (back_reference.is_global_proxy()) {
-      FlushSkip(skip);
-      if (FLAG_trace_serializer) PrintF(" Encoding global proxy\n");
-      DCHECK(how_to_code == kPlain && where_to_point == kStartOfObject);
-      sink_->Put(kAttachedReference + kPlain + kStartOfObject, "Global Proxy");
-      sink_->PutInt(kGlobalProxyReference, "kGlobalProxyReference");
+      if (FLAG_trace_serializer) {
+        PrintF(" Encoding attached reference %d\n",
+               reference.attached_reference_index());
+      }
+      PutAttachedReference(reference, how_to_code, where_to_point);
     } else {
+      DCHECK(reference.is_back_reference());
       if (FLAG_trace_serializer) {
         PrintF(" Encoding back reference to: ");
         obj->ShortPrint();
@@ -189,7 +184,7 @@
       }
 
       PutAlignmentPrefix(obj);
-      AllocationSpace space = back_reference.space();
+      AllocationSpace space = reference.space();
       if (skip == 0) {
         sink_->Put(kBackref + how_to_code + where_to_point + space, "BackRef");
       } else {
@@ -197,7 +192,7 @@
                    "BackRefWithSkip");
         sink_->PutInt(skip, "BackRefSkipDistance");
       }
-      PutBackReference(obj, back_reference);
+      PutBackReference(obj, reference);
     }
     return true;
   }
@@ -236,12 +231,24 @@
   for (int i = 0; i < kPointerSize; i++) sink_->Put(bytes[i], "Byte");
 }
 
-void Serializer::PutBackReference(HeapObject* object, BackReference reference) {
+void Serializer::PutBackReference(HeapObject* object,
+                                  SerializerReference reference) {
   DCHECK(BackReferenceIsAlreadyAllocated(reference));
-  sink_->PutInt(reference.reference(), "BackRefValue");
+  sink_->PutInt(reference.back_reference(), "BackRefValue");
   hot_objects_.Add(object);
 }
 
+void Serializer::PutAttachedReference(SerializerReference reference,
+                                      HowToCode how_to_code,
+                                      WhereToPoint where_to_point) {
+  DCHECK(reference.is_attached_reference());
+  DCHECK((how_to_code == kPlain && where_to_point == kStartOfObject) ||
+         (how_to_code == kPlain && where_to_point == kInnerPointer) ||
+         (how_to_code == kFromCode && where_to_point == kInnerPointer));
+  sink_->Put(kAttachedReference + how_to_code + where_to_point, "AttachedRef");
+  sink_->PutInt(reference.attached_reference_index(), "AttachedRefIndex");
+}
+
 int Serializer::PutAlignmentPrefix(HeapObject* object) {
   AllocationAlignment alignment = object->RequiredAlignment();
   if (alignment != kWordAligned) {
@@ -253,14 +260,14 @@
   return 0;
 }
 
-BackReference Serializer::AllocateLargeObject(int size) {
+SerializerReference Serializer::AllocateLargeObject(int size) {
   // Large objects are allocated one-by-one when deserializing. We do not
   // have to keep track of multiple chunks.
   large_objects_total_size_ += size;
-  return BackReference::LargeObjectReference(seen_large_objects_index_++);
+  return SerializerReference::LargeObjectReference(seen_large_objects_index_++);
 }
 
-BackReference Serializer::Allocate(AllocationSpace space, int size) {
+SerializerReference Serializer::Allocate(AllocationSpace space, int size) {
   DCHECK(space >= 0 && space < kNumberOfPreallocatedSpaces);
   DCHECK(size > 0 && size <= static_cast<int>(max_chunk_size(space)));
   uint32_t new_chunk_size = pending_chunk_[space] + size;
@@ -270,14 +277,13 @@
     sink_->Put(kNextChunk, "NextChunk");
     sink_->Put(space, "NextChunkSpace");
     completed_chunks_[space].Add(pending_chunk_[space]);
-    DCHECK_LE(completed_chunks_[space].length(), BackReference::kMaxChunkIndex);
     pending_chunk_[space] = 0;
     new_chunk_size = size;
   }
   uint32_t offset = pending_chunk_[space];
   pending_chunk_[space] = new_chunk_size;
-  return BackReference::Reference(space, completed_chunks_[space].length(),
-                                  offset);
+  return SerializerReference::BackReference(
+      space, completed_chunks_[space].length(), offset);
 }
 
 void Serializer::Pad() {
@@ -320,7 +326,7 @@
         CodeNameEvent(object_->address(), sink_->Position(), code_name));
   }
 
-  BackReference back_reference;
+  SerializerReference back_reference;
   if (space == LO_SPACE) {
     sink_->Put(kNewObject + reference_representation_ + space,
                "NewLargeObject");
@@ -345,7 +351,7 @@
 #endif  // OBJECT_PRINT
 
   // Mark this object as already serialized.
-  serializer_->back_reference_map()->Add(object_, back_reference);
+  serializer_->reference_map()->Add(object_, back_reference);
 
   // Serialize the map (first word of the object).
   serializer_->SerializeObject(map, kPlain, kStartOfObject, 0);
@@ -513,15 +519,17 @@
 
   int size = object_->Size();
   Map* map = object_->map();
-  BackReference reference = serializer_->back_reference_map()->Lookup(object_);
+  SerializerReference back_reference =
+      serializer_->reference_map()->Lookup(object_);
+  DCHECK(back_reference.is_back_reference());
 
   // Serialize the rest of the object.
   CHECK_EQ(0, bytes_processed_so_far_);
   bytes_processed_so_far_ = kPointerSize;
 
   serializer_->PutAlignmentPrefix(object_);
-  sink_->Put(kNewObject + reference.space(), "deferred object");
-  serializer_->PutBackReference(object_, reference);
+  sink_->Put(kNewObject + back_reference.space(), "deferred object");
+  serializer_->PutBackReference(object_, back_reference);
   sink_->PutInt(size >> kPointerSizeLog2, "deferred object size");
 
   UnlinkWeakNextScope unlink_weak_next(object_);
diff --git a/src/snapshot/serializer.h b/src/snapshot/serializer.h
index eccbaab..f99cd72 100644
--- a/src/snapshot/serializer.h
+++ b/src/snapshot/serializer.h
@@ -128,7 +128,7 @@
 
   Isolate* isolate() const { return isolate_; }
 
-  BackReferenceMap* back_reference_map() { return &back_reference_map_; }
+  SerializerReferenceMap* reference_map() { return &reference_map_; }
   RootIndexMap* root_index_map() { return &root_index_map_; }
 
 #ifdef OBJECT_PRINT
@@ -162,7 +162,10 @@
 
   void PutSmi(Smi* smi);
 
-  void PutBackReference(HeapObject* object, BackReference reference);
+  void PutBackReference(HeapObject* object, SerializerReference reference);
+
+  void PutAttachedReference(SerializerReference reference,
+                            HowToCode how_to_code, WhereToPoint where_to_point);
 
   // Emit alignment prefix if necessary, return required padding space in bytes.
   int PutAlignmentPrefix(HeapObject* object);
@@ -178,11 +181,11 @@
     }
   }
 
-  bool BackReferenceIsAlreadyAllocated(BackReference back_reference);
+  bool BackReferenceIsAlreadyAllocated(SerializerReference back_reference);
 
   // This will return the space for an object.
-  BackReference AllocateLargeObject(int size);
-  BackReference Allocate(AllocationSpace space, int size);
+  SerializerReference AllocateLargeObject(int size);
+  SerializerReference Allocate(AllocationSpace space, int size);
   int EncodeExternalReference(Address addr) {
     return external_reference_encoder_.Encode(addr);
   }
@@ -207,7 +210,7 @@
   SnapshotByteSink* sink() const { return sink_; }
 
   void QueueDeferredObject(HeapObject* obj) {
-    DCHECK(back_reference_map_.Lookup(obj).is_valid());
+    DCHECK(reference_map_.Lookup(obj).is_back_reference());
     deferred_objects_.Add(obj);
   }
 
@@ -218,7 +221,7 @@
   SnapshotByteSink* sink_;
   ExternalReferenceEncoder external_reference_encoder_;
 
-  BackReferenceMap back_reference_map_;
+  SerializerReferenceMap reference_map_;
   RootIndexMap root_index_map_;
 
   int recursion_depth_;
diff --git a/src/snapshot/snapshot-common.cc b/src/snapshot/snapshot-common.cc
index eb3bdb5..a951b0d 100644
--- a/src/snapshot/snapshot-common.cc
+++ b/src/snapshot/snapshot-common.cc
@@ -142,8 +142,9 @@
                  Page::kObjectStartOffset;
       // Add a small allowance to the code space for small scripts.
       if (space == CODE_SPACE) required += 32 * KB;
-    } else {
-      // We expect the vanilla snapshot to only require on page per space.
+    } else if (!FLAG_debug_code) {
+      // We expect the vanilla snapshot to only require one page per space,
+      // unless we are emitting debug code.
       DCHECK(!is_default_snapshot);
     }
 
diff --git a/src/snapshot/startup-serializer.cc b/src/snapshot/startup-serializer.cc
index fab01f5..c3f9b3e 100644
--- a/src/snapshot/startup-serializer.cc
+++ b/src/snapshot/startup-serializer.cc
@@ -73,8 +73,8 @@
     // Make sure that the immortal immovable root has been included in the first
     // chunk of its reserved space , so that it is deserialized onto the first
     // page of its space and stays immortal immovable.
-    BackReference ref = back_reference_map_.Lookup(obj);
-    CHECK(ref.is_valid() && ref.chunk_index() == 0);
+    SerializerReference ref = reference_map_.Lookup(obj);
+    CHECK(ref.is_back_reference() && ref.chunk_index() == 0);
   }
 }
 
diff --git a/src/startup-data-util.cc b/src/startup-data-util.cc
index e20ec21..4e0ad97 100644
--- a/src/startup-data-util.cc
+++ b/src/startup-data-util.cc
@@ -9,7 +9,6 @@
 
 #include "src/base/logging.h"
 #include "src/base/platform/platform.h"
-#include "src/flags.h"
 #include "src/utils.h"
 
 
@@ -108,9 +107,7 @@
   char* natives;
   char* snapshot;
   LoadFromFiles(RelativePath(&natives, directory_path, "natives_blob.bin"),
-                RelativePath(&snapshot, directory_path,
-                             FLAG_ignition ? "snapshot_blob_ignition.bin"
-                                           : "snapshot_blob.bin"));
+                RelativePath(&snapshot, directory_path, "snapshot_blob.bin"));
   free(natives);
   free(snapshot);
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
diff --git a/src/third_party/vtune/v8vtune.gyp b/src/third_party/vtune/v8vtune.gyp
index 6adf365..aaf521f 100644
--- a/src/third_party/vtune/v8vtune.gyp
+++ b/src/third_party/vtune/v8vtune.gyp
@@ -29,13 +29,13 @@
   'variables': {
     'v8_code': 1,
   },
-  'includes': ['../../../build/toolchain.gypi', '../../../build/features.gypi'],
+  'includes': ['../../../gypfiles/toolchain.gypi', '../../../gypfiles/features.gypi'],
   'targets': [
     {
       'target_name': 'v8_vtune',
       'type': 'static_library',
       'dependencies': [
-        '../../../tools/gyp/v8.gyp:v8',
+        '../../v8.gyp:v8',
       ],
       'sources': [
         'ittnotify_config.h',
diff --git a/src/third_party/vtune/vtune-jit.cc b/src/third_party/vtune/vtune-jit.cc
index 30f6196..0bd1954 100644
--- a/src/third_party/vtune/vtune-jit.cc
+++ b/src/third_party/vtune/vtune-jit.cc
@@ -55,26 +55,12 @@
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
+
+#include <stdlib.h>
 #include <string.h>
 
-#ifdef WIN32
-#include <hash_map>
-using namespace std;
-#else
-// To avoid GCC 4.4 compilation warning about hash_map being deprecated.
-#define OLD_DEPRECATED __DEPRECATED
-#undef __DEPRECATED
-#if defined (ANDROID)
-#include <hash_map>
-using namespace std;
-#else
-#include <ext/hash_map>
-using namespace __gnu_cxx;
-#endif
-#define __DEPRECATED OLD_DEPRECATED
-#endif
-
 #include <list>
+#include <unordered_map>
 
 #include "v8-vtune.h"
 #include "vtune-jit.h"
@@ -126,11 +112,8 @@
   }
 };
 
-#ifdef WIN32
-typedef hash_map<void*, void*> JitInfoMap;
-#else
-typedef hash_map<void*, void*, HashForCodeObject, SameCodeObjects> JitInfoMap;
-#endif
+typedef std::unordered_map<void*, void*, HashForCodeObject, SameCodeObjects>
+    JitInfoMap;
 
 static JitInfoMap* GetEntries() {
   static JitInfoMap* entries;
diff --git a/src/transitions-inl.h b/src/transitions-inl.h
index ea02d61..828a673 100644
--- a/src/transitions-inl.h
+++ b/src/transitions-inl.h
@@ -113,8 +113,7 @@
   return name == heap->nonextensible_symbol() ||
          name == heap->sealed_symbol() || name == heap->frozen_symbol() ||
          name == heap->elements_transition_symbol() ||
-         name == heap->strict_function_transition_symbol() ||
-         name == heap->observed_symbol();
+         name == heap->strict_function_transition_symbol();
 }
 #endif
 
diff --git a/src/type-info.cc b/src/type-info.cc
index 9087576..87b727e 100644
--- a/src/type-info.cc
+++ b/src/type-info.cc
@@ -295,7 +295,7 @@
     *key_type = ELEMENT;
   } else {
     KeyedLoadICNexus nexus(feedback_vector_, slot);
-    CollectReceiverTypes<FeedbackNexus>(&nexus, receiver_types);
+    CollectReceiverTypes(&nexus, receiver_types);
     *is_string = HasOnlyStringMaps(receiver_types);
     *key_type = nexus.GetKeyType();
   }
@@ -332,21 +332,20 @@
                                               Code::Flags flags,
                                               SmallMapList* types) {
   StoreICNexus nexus(feedback_vector_, slot);
-  CollectReceiverTypes<FeedbackNexus>(&nexus, name, flags, types);
+  CollectReceiverTypes(&nexus, name, flags, types);
 }
 
-
-template <class T>
-void TypeFeedbackOracle::CollectReceiverTypes(T* obj, Handle<Name> name,
+void TypeFeedbackOracle::CollectReceiverTypes(FeedbackNexus* nexus,
+                                              Handle<Name> name,
                                               Code::Flags flags,
                                               SmallMapList* types) {
   if (FLAG_collect_megamorphic_maps_from_stub_cache &&
-      obj->ic_state() == MEGAMORPHIC) {
+      nexus->ic_state() == MEGAMORPHIC) {
     types->Reserve(4, zone());
     isolate()->stub_cache()->CollectMatchingMaps(
         types, name, flags, native_context_, zone());
   } else {
-    CollectReceiverTypes<T>(obj, types);
+    CollectReceiverTypes(nexus, types);
   }
 }
 
@@ -356,23 +355,22 @@
   FeedbackVectorSlotKind kind = feedback_vector_->GetKind(slot);
   if (kind == FeedbackVectorSlotKind::STORE_IC) {
     StoreICNexus nexus(feedback_vector_, slot);
-    CollectReceiverTypes<FeedbackNexus>(&nexus, types);
+    CollectReceiverTypes(&nexus, types);
   } else {
     DCHECK_EQ(FeedbackVectorSlotKind::KEYED_STORE_IC, kind);
     KeyedStoreICNexus nexus(feedback_vector_, slot);
-    CollectReceiverTypes<FeedbackNexus>(&nexus, types);
+    CollectReceiverTypes(&nexus, types);
   }
 }
 
-
-template <class T>
-void TypeFeedbackOracle::CollectReceiverTypes(T* obj, SmallMapList* types) {
+void TypeFeedbackOracle::CollectReceiverTypes(FeedbackNexus* nexus,
+                                              SmallMapList* types) {
   MapHandleList maps;
-  if (obj->ic_state() == MONOMORPHIC) {
-    Map* map = obj->FindFirstMap();
+  if (nexus->ic_state() == MONOMORPHIC) {
+    Map* map = nexus->FindFirstMap();
     if (map != NULL) maps.Add(handle(map));
-  } else if (obj->ic_state() == POLYMORPHIC) {
-    obj->FindAllMaps(&maps);
+  } else if (nexus->ic_state() == POLYMORPHIC) {
+    nexus->FindAllMaps(&maps);
   } else {
     return;
   }
diff --git a/src/type-info.h b/src/type-info.h
index c4b0928..3c734be 100644
--- a/src/type-info.h
+++ b/src/type-info.h
@@ -17,7 +17,7 @@
 
 // Forward declarations.
 class SmallMapList;
-
+class FeedbackNexus;
 
 class TypeFeedbackOracle: public ZoneObject {
  public:
@@ -56,8 +56,7 @@
                           SmallMapList* receiver_types);
 
   void CollectReceiverTypes(FeedbackVectorSlot slot, SmallMapList* types);
-  template <class T>
-  void CollectReceiverTypes(T* obj, SmallMapList* types);
+  void CollectReceiverTypes(FeedbackNexus* nexus, SmallMapList* types);
 
   static bool IsRelevantFeedback(Map* map, Context* native_context) {
     Object* constructor = map->GetConstructor();
@@ -98,9 +97,8 @@
  private:
   void CollectReceiverTypes(FeedbackVectorSlot slot, Handle<Name> name,
                             Code::Flags flags, SmallMapList* types);
-  template <class T>
-  void CollectReceiverTypes(T* obj, Handle<Name> name, Code::Flags flags,
-                            SmallMapList* types);
+  void CollectReceiverTypes(FeedbackNexus* nexus, Handle<Name> name,
+                            Code::Flags flags, SmallMapList* types);
 
   // Returns true if there is at least one string map and if
   // all maps are string maps.
diff --git a/src/types.cc b/src/types.cc
index 49c9418..c222861 100644
--- a/src/types.cc
+++ b/src/types.cc
@@ -192,7 +192,8 @@
              map == heap->no_interceptor_result_sentinel_map() ||
              map == heap->termination_exception_map() ||
              map == heap->arguments_marker_map() ||
-             map == heap->optimized_out_map());
+             map == heap->optimized_out_map() ||
+             map == heap->stale_register_map());
       return kInternal & kTaggedPointer;
     }
     case HEAP_NUMBER_TYPE:
@@ -202,6 +203,7 @@
     case JS_OBJECT_TYPE:
     case JS_GLOBAL_OBJECT_TYPE:
     case JS_GLOBAL_PROXY_TYPE:
+    case JS_API_OBJECT_TYPE:
     case JS_SPECIAL_API_OBJECT_TYPE:
       if (map->is_undetectable()) return kOtherUndetectable;
       return kOtherObject;
@@ -266,8 +268,6 @@
     case SIGNATURE_INFO_TYPE:
     case TYPE_SWITCH_INFO_TYPE:
     case ALLOCATION_MEMENTO_TYPE:
-    case CODE_CACHE_TYPE:
-    case POLYMORPHIC_CODE_CACHE_TYPE:
     case TYPE_FEEDBACK_INFO_TYPE:
     case ALIASED_ARGUMENTS_ENTRY_TYPE:
     case BOX_TYPE:
diff --git a/src/typing-asm.cc b/src/typing-asm.cc
index 7482c4f..e541539 100644
--- a/src/typing-asm.cc
+++ b/src/typing-asm.cc
@@ -44,7 +44,7 @@
       root_(root),
       valid_(true),
       allow_simd_(false),
-      property_info_(NULL),
+      property_info_(nullptr),
       intish_(0),
       stdlib_types_(zone),
       stdlib_heap_types_(zone),
@@ -62,7 +62,8 @@
       in_function_(false),
       building_function_tables_(false),
       visiting_exports_(false),
-      cache_(TypeCache::Get()) {
+      cache_(TypeCache::Get()),
+      bounds_(zone) {
   InitializeAstVisitor(isolate);
   InitializeStdlib();
 }
@@ -79,16 +80,16 @@
   if (!scope->is_function_scope()) FAIL(fun, "not at function scope");
 
   ExpressionStatement* use_asm = fun->body()->first()->AsExpressionStatement();
-  if (use_asm == NULL) FAIL(fun, "missing \"use asm\"");
+  if (use_asm == nullptr) FAIL(fun, "missing \"use asm\"");
   Literal* use_asm_literal = use_asm->expression()->AsLiteral();
-  if (use_asm_literal == NULL) FAIL(fun, "missing \"use asm\"");
+  if (use_asm_literal == nullptr) FAIL(fun, "missing \"use asm\"");
   if (!use_asm_literal->raw_value()->AsString()->IsOneByteEqualTo("use asm"))
     FAIL(fun, "missing \"use asm\"");
 
   // Module parameters.
   for (int i = 0; i < scope->num_parameters(); ++i) {
     Variable* param = scope->parameter(i);
-    DCHECK(GetType(param) == NULL);
+    DCHECK(GetType(param) == nullptr);
     SetType(param, Type::None());
   }
 
@@ -96,7 +97,7 @@
 
   // Set all globals to type Any.
   VariableDeclaration* decl = scope->function();
-  if (decl != NULL) SetType(decl->proxy()->var(), Type::None());
+  if (decl != nullptr) SetType(decl->proxy()->var(), Type::None());
   RECURSE(VisitDeclarations(scope->declarations()));
 
   // Validate global variables.
@@ -105,15 +106,15 @@
   // Validate function annotations.
   for (int i = 0; i < decls->length(); ++i) {
     FunctionDeclaration* decl = decls->at(i)->AsFunctionDeclaration();
-    if (decl != NULL) {
+    if (decl != nullptr) {
       RECURSE(VisitFunctionAnnotation(decl->fun()));
       Variable* var = decl->proxy()->var();
-      if (property_info_ != NULL) {
+      if (property_info_ != nullptr) {
         SetVariableInfo(var, property_info_);
-        property_info_ = NULL;
+        property_info_ = nullptr;
       }
       SetType(var, computed_type_);
-      DCHECK(GetType(var) != NULL);
+      DCHECK(GetType(var) != nullptr);
     }
   }
 
@@ -125,7 +126,7 @@
   // Validate function bodies.
   for (int i = 0; i < decls->length(); ++i) {
     FunctionDeclaration* decl = decls->at(i)->AsFunctionDeclaration();
-    if (decl != NULL) {
+    if (decl != nullptr) {
       RECURSE(VisitWithExpectation(decl->fun(), Type::Any(), "UNREACHABLE"));
       if (!computed_type_->IsFunction()) {
         FAIL(decl->fun(), "function literal expected to be a function");
@@ -147,13 +148,13 @@
 void AsmTyper::VisitVariableDeclaration(VariableDeclaration* decl) {
   Variable* var = decl->proxy()->var();
   if (var->location() != VariableLocation::PARAMETER) {
-    if (GetType(var) == NULL) {
+    if (GetType(var) == nullptr) {
       SetType(var, Type::Any());
     } else {
       DCHECK(!GetType(var)->IsFunction());
     }
   }
-  DCHECK(GetType(var) != NULL);
+  DCHECK(GetType(var) != nullptr);
   intish_ = 0;
 }
 
@@ -175,14 +176,14 @@
   Type* result_type = Type::Undefined();
   if (body->length() > 0) {
     ReturnStatement* stmt = body->last()->AsReturnStatement();
-    if (stmt != NULL) {
+    if (stmt != nullptr) {
       Literal* literal = stmt->expression()->AsLiteral();
       Type* old_expected = expected_type_;
       expected_type_ = Type::Any();
       if (literal) {
         RECURSE(VisitLiteral(literal, true));
       } else {
-        RECURSE(VisitExpressionAnnotation(stmt->expression(), NULL, true));
+        RECURSE(VisitExpressionAnnotation(stmt->expression(), nullptr, true));
       }
       expected_type_ = old_expected;
       result_type = computed_type_;
@@ -197,18 +198,18 @@
     good = false;
     if (i >= body->length()) break;
     ExpressionStatement* stmt = body->at(i)->AsExpressionStatement();
-    if (stmt == NULL) break;
+    if (stmt == nullptr) break;
     Assignment* expr = stmt->expression()->AsAssignment();
-    if (expr == NULL || expr->is_compound()) break;
+    if (expr == nullptr || expr->is_compound()) break;
     VariableProxy* proxy = expr->target()->AsVariableProxy();
-    if (proxy == NULL) break;
+    if (proxy == nullptr) break;
     Variable* var = proxy->var();
     if (var->location() != VariableLocation::PARAMETER || var->index() != i)
       break;
     RECURSE(VisitExpressionAnnotation(expr->value(), var, false));
-    if (property_info_ != NULL) {
+    if (property_info_ != nullptr) {
       SetVariableInfo(var, property_info_);
-      property_info_ = NULL;
+      property_info_ = nullptr;
     }
     SetType(var, computed_type_);
     type->AsFunction()->InitParameter(i, computed_type_);
@@ -224,10 +225,10 @@
                                          bool is_return) {
   // Normal +x or x|0 annotations.
   BinaryOperation* bin = expr->AsBinaryOperation();
-  if (bin != NULL) {
-    if (var != NULL) {
+  if (bin != nullptr) {
+    if (var != nullptr) {
       VariableProxy* proxy = bin->left()->AsVariableProxy();
-      if (proxy == NULL) {
+      if (proxy == nullptr) {
         FAIL(bin->left(), "expected variable for type annotation");
       }
       if (proxy->var() != var) {
@@ -235,7 +236,7 @@
       }
     }
     Literal* right = bin->right()->AsLiteral();
-    if (right != NULL) {
+    if (right != nullptr) {
       switch (bin->op()) {
         case Token::MUL:  // We encode +x as x*1.0
           if (right->raw_value()->ContainsDot() &&
@@ -269,10 +270,10 @@
   }
 
   Call* call = expr->AsCall();
-  if (call != NULL) {
+  if (call != nullptr) {
     VariableProxy* proxy = call->expression()->AsVariableProxy();
-    if (proxy != NULL) {
-      VariableInfo* info = GetVariableInfo(proxy->var(), false);
+    if (proxy != nullptr) {
+      VariableInfo* info = GetVariableInfo(proxy->var());
       if (!info ||
           (!info->is_check_function && !info->is_constructor_function)) {
         if (allow_simd_) {
@@ -448,14 +449,14 @@
   if (!in_function_) {
     FAIL(stmt, "for statement inside module body");
   }
-  if (stmt->init() != NULL) {
+  if (stmt->init() != nullptr) {
     RECURSE(Visit(stmt->init()));
   }
-  if (stmt->cond() != NULL) {
+  if (stmt->cond() != nullptr) {
     RECURSE(VisitWithExpectation(stmt->cond(), cache_.kAsmSigned,
                                  "for condition expected to be integer"));
   }
-  if (stmt->next() != NULL) {
+  if (stmt->next() != nullptr) {
     RECURSE(Visit(stmt->next()));
   }
   RECURSE(Visit(stmt->body()));
@@ -494,11 +495,11 @@
   Scope* scope = expr->scope();
   DCHECK(scope->is_function_scope());
 
-  if (!expr->bounds().upper->IsFunction()) {
+  if (!bounds_.get(expr).upper->IsFunction()) {
     FAIL(expr, "invalid function literal");
   }
 
-  Type* type = expr->bounds().upper;
+  Type* type = bounds_.get(expr).upper;
   Type* save_return_type = return_type_;
   return_type_ = type->AsFunction()->Result();
   in_function_ = true;
@@ -556,40 +557,31 @@
 
 
 void AsmTyper::VisitVariableProxy(VariableProxy* expr) {
-  VisitVariableProxy(expr, false);
-}
-
-void AsmTyper::VisitVariableProxy(VariableProxy* expr, bool assignment) {
   Variable* var = expr->var();
-  VariableInfo* info = GetVariableInfo(var, false);
-  if (!assignment && !in_function_ && !building_function_tables_ &&
-      !visiting_exports_) {
+  VariableInfo* info = GetVariableInfo(var);
+  if (!in_function_ && !building_function_tables_ && !visiting_exports_) {
     if (var->location() != VariableLocation::PARAMETER || var->index() >= 3) {
       FAIL(expr, "illegal variable reference in module body");
     }
   }
-  if (info == NULL || info->type == NULL) {
+  if (info == nullptr || info->type == nullptr) {
     if (var->mode() == TEMPORARY) {
       SetType(var, Type::Any());
-      info = GetVariableInfo(var, false);
+      info = GetVariableInfo(var);
     } else {
       FAIL(expr, "unbound variable");
     }
   }
-  if (property_info_ != NULL) {
+  if (property_info_ != nullptr) {
     SetVariableInfo(var, property_info_);
-    property_info_ = NULL;
+    property_info_ = nullptr;
   }
   Type* type = Type::Intersect(info->type, expected_type_, zone());
-  if (type->Is(cache_.kAsmInt)) {
-    type = cache_.kAsmInt;
-  }
-  info->type = type;
+  if (type->Is(cache_.kAsmInt)) type = cache_.kAsmInt;
   intish_ = 0;
   IntersectResult(expr, type);
 }
 
-
 void AsmTyper::VisitLiteral(Literal* expr, bool is_return) {
   intish_ = 0;
   Handle<Object> value = expr->value();
@@ -683,13 +675,35 @@
   RECURSE(VisitWithExpectation(
       expr->value(), type, "assignment value expected to match surrounding"));
   Type* target_type = StorageType(computed_type_);
+
   if (expr->target()->IsVariableProxy()) {
+    // Assignment to a local or context variable.
+    VariableProxy* proxy = expr->target()->AsVariableProxy();
     if (intish_ != 0) {
       FAIL(expr, "intish or floatish assignment");
     }
     expected_type_ = target_type;
-    VisitVariableProxy(expr->target()->AsVariableProxy(), true);
+    Variable* var = proxy->var();
+    VariableInfo* info = GetVariableInfo(var);
+    if (info == nullptr || info->type == nullptr) {
+      if (var->mode() == TEMPORARY) {
+        SetType(var, Type::Any());
+        info = GetVariableInfo(var);
+      } else {
+        FAIL(proxy, "unbound variable");
+      }
+    }
+    if (property_info_ != nullptr) {
+      SetVariableInfo(var, property_info_);
+      property_info_ = nullptr;
+    }
+    Type* type = Type::Intersect(info->type, expected_type_, zone());
+    if (type->Is(cache_.kAsmInt)) type = cache_.kAsmInt;
+    info->type = type;
+    intish_ = 0;
+    IntersectResult(proxy, type);
   } else if (expr->target()->IsProperty()) {
+    // Assignment to a property: should be a heap assignment {H[x] = y}.
     int32_t value_intish = intish_;
     Property* property = expr->target()->AsProperty();
     RECURSE(VisitWithExpectation(property->obj(), Type::Any(),
@@ -745,13 +759,13 @@
     }
     // TODO(bradnelson): Fix the parser and then un-comment this part
     // BinaryOperation* bin = expr->key()->AsBinaryOperation();
-    // if (bin == NULL || bin->op() != Token::BIT_AND) {
+    // if (bin == nullptr || bin->op() != Token::BIT_AND) {
     //   FAIL(expr->key(), "expected & in call");
     // }
     // RECURSE(VisitWithExpectation(bin->left(), cache_.kAsmSigned,
     //                              "array index expected to be integer"));
     // Literal* right = bin->right()->AsLiteral();
-    // if (right == NULL || right->raw_value()->ContainsDot()) {
+    // if (right == nullptr || right->raw_value()->ContainsDot()) {
     //   FAIL(right, "call mask must be integer");
     // }
     // RECURSE(VisitWithExpectation(bin->right(), cache_.kAsmSigned,
@@ -774,13 +788,13 @@
         RECURSE(Visit(expr->key()));
       } else {
         BinaryOperation* bin = expr->key()->AsBinaryOperation();
-        if (bin == NULL || bin->op() != Token::SAR) {
+        if (bin == nullptr || bin->op() != Token::SAR) {
           FAIL(expr->key(), "expected >> in heap access");
         }
         RECURSE(VisitWithExpectation(bin->left(), cache_.kAsmSigned,
                                      "array index expected to be integer"));
         Literal* right = bin->right()->AsLiteral();
-        if (right == NULL || right->raw_value()->ContainsDot()) {
+        if (right == nullptr || right->raw_value()->ContainsDot()) {
           FAIL(bin->right(), "heap access shift must be integer");
         }
         RECURSE(VisitWithExpectation(bin->right(), cache_.kAsmSigned,
@@ -790,7 +804,7 @@
           FAIL(right, "heap access shift must match element size");
         }
       }
-      expr->key()->set_bounds(Bounds(cache_.kAsmSigned));
+      bounds_.set(expr->key(), Bounds(cache_.kAsmSigned));
     }
     Type* result_type;
     if (type->Is(cache_.kAsmIntArrayElement)) {
@@ -830,18 +844,18 @@
 
 bool AsmTyper::IsStdlibObject(Expression* expr) {
   VariableProxy* proxy = expr->AsVariableProxy();
-  if (proxy == NULL) {
+  if (proxy == nullptr) {
     return false;
   }
   Variable* var = proxy->var();
-  VariableInfo* info = GetVariableInfo(var, false);
+  VariableInfo* info = GetVariableInfo(var);
   if (info) {
     if (info->standard_member == kStdlib) return true;
   }
   if (var->location() != VariableLocation::PARAMETER || var->index() != 0) {
     return false;
   }
-  info = GetVariableInfo(var, true);
+  info = MakeVariableInfo(var);
   info->type = Type::Object();
   info->standard_member = kStdlib;
   return true;
@@ -851,13 +865,13 @@
 Expression* AsmTyper::GetReceiverOfPropertyAccess(Expression* expr,
                                                   const char* name) {
   Property* property = expr->AsProperty();
-  if (property == NULL) {
-    return NULL;
+  if (property == nullptr) {
+    return nullptr;
   }
   Literal* key = property->key()->AsLiteral();
-  if (key == NULL || !key->IsPropertyName() ||
+  if (key == nullptr || !key->IsPropertyName() ||
       !key->AsPropertyName()->IsUtf8EqualTo(CStrVector(name))) {
-    return NULL;
+    return nullptr;
   }
   return property->obj();
 }
@@ -904,7 +918,7 @@
     return;
   }
 
-  property_info_ = NULL;
+  property_info_ = nullptr;
 
   // Only recurse at this point so that we avoid needing
   // stdlib.Math to have a real type.
@@ -913,12 +927,12 @@
 
   // For heap view or function table access.
   if (computed_type_->IsArray()) {
-    VisitHeapAccess(expr, false, NULL);
+    VisitHeapAccess(expr, false, nullptr);
     return;
   }
 
   VariableProxy* proxy = expr->obj()->AsVariableProxy();
-  if (proxy != NULL) {
+  if (proxy != nullptr) {
     Variable* var = proxy->var();
     if (var->location() == VariableLocation::PARAMETER && var->index() == 1) {
       // foreign.x - Function represent as () -> Any
@@ -941,7 +955,7 @@
   }
   // Handle polymorphic stdlib functions specially.
   Expression* arg0 = args->at(0);
-  Type* arg0_type = arg0->bounds().upper;
+  Type* arg0_type = bounds_.get(arg0).upper;
   switch (standard_member) {
     case kMathFround: {
       if (!arg0_type->Is(cache_.kAsmFloat) &&
@@ -970,8 +984,8 @@
         FAIL(arg0, "illegal function argument type");
       }
       if (args->length() > 1) {
-        Type* other = Type::Intersect(args->at(0)->bounds().upper,
-                                      args->at(1)->bounds().upper, zone());
+        Type* other = Type::Intersect(bounds_.get(args->at(0)).upper,
+                                      bounds_.get(args->at(1)).upper, zone());
         if (!other->Is(cache_.kAsmFloat) && !other->Is(cache_.kAsmDouble) &&
             !other->Is(cache_.kAsmSigned)) {
           FAIL(arg0, "function arguments types don't match");
@@ -992,10 +1006,10 @@
   if (proxy) {
     standard_member = VariableAsStandardMember(proxy->var());
   }
-  if (!in_function_ && (proxy == NULL || standard_member != kMathFround)) {
+  if (!in_function_ && (proxy == nullptr || standard_member != kMathFround)) {
     FAIL(expr, "calls forbidden outside function bodies");
   }
-  if (proxy == NULL && !expr->expression()->IsProperty()) {
+  if (proxy == nullptr && !expr->expression()->IsProperty()) {
     FAIL(expr, "calls must be to bound variables or function tables");
   }
   if (computed_type_->IsFunction()) {
@@ -1018,8 +1032,8 @@
         }
       }
       intish_ = 0;
-      expr->expression()->set_bounds(
-          Bounds(Type::Function(Type::Any(), zone())));
+      bounds_.set(expr->expression(),
+                  Bounds(Type::Function(Type::Any(), zone())));
       IntersectResult(expr, expected_type);
     } else {
       if (fun_type->Arity() != args->length()) {
@@ -1071,7 +1085,7 @@
 
 
 void AsmTyper::VisitCallRuntime(CallRuntime* expr) {
-  // Allow runtime calls for now.
+  FAIL(expr, "runtime call not allowed");
 }
 
 
@@ -1185,11 +1199,12 @@
       RECURSE(VisitIntegerBitwiseOperator(expr, Type::Any(), cache_.kAsmIntQ,
                                           cache_.kAsmSigned, true));
       if (expr->left()->IsCall() && expr->op() == Token::BIT_OR &&
-          Type::Number()->Is(expr->left()->bounds().upper)) {
+          Type::Number()->Is(bounds_.get(expr->left()).upper)) {
         // Force the return types of foreign functions.
-        expr->left()->set_bounds(Bounds(cache_.kAsmSigned));
+        bounds_.set(expr->left(), Bounds(cache_.kAsmSigned));
       }
-      if (in_function_ && !expr->left()->bounds().upper->Is(cache_.kAsmIntQ)) {
+      if (in_function_ &&
+          !bounds_.get(expr->left()).upper->Is(cache_.kAsmIntQ)) {
         FAIL(expr->left(), "intish required");
       }
       return;
@@ -1199,7 +1214,7 @@
       Literal* left = expr->left()->AsLiteral();
       if (left && left->value()->IsBoolean()) {
         if (left->ToBooleanIsTrue()) {
-          left->set_bounds(Bounds(cache_.kSingletonOne));
+          bounds_.set(left, Bounds(cache_.kSingletonOne));
           RECURSE(VisitWithExpectation(expr->right(), cache_.kAsmIntQ,
                                        "not operator expects an integer"));
           IntersectResult(expr, cache_.kAsmSigned);
@@ -1286,13 +1301,13 @@
                  expr->right()->AsLiteral()->raw_value()->AsNumber() == 1.0) {
         // For unary +, expressed as x * 1.0
         if (expr->left()->IsCall() &&
-            Type::Number()->Is(expr->left()->bounds().upper)) {
+            Type::Number()->Is(bounds_.get(expr->left()).upper)) {
           // Force the return types of foreign functions.
-          expr->left()->set_bounds(Bounds(cache_.kAsmDouble));
-          left_type = expr->left()->bounds().upper;
+          bounds_.set(expr->left(), Bounds(cache_.kAsmDouble));
+          left_type = bounds_.get(expr->left()).upper;
         }
         if (!(expr->left()->IsProperty() &&
-              Type::Number()->Is(expr->left()->bounds().upper))) {
+              Type::Number()->Is(bounds_.get(expr->left()).upper))) {
           if (!left_type->Is(cache_.kAsmSigned) &&
               !left_type->Is(cache_.kAsmUnsigned) &&
               !left_type->Is(cache_.kAsmFixnum) &&
@@ -1310,7 +1325,7 @@
                  !expr->right()->AsLiteral()->raw_value()->ContainsDot() &&
                  expr->right()->AsLiteral()->raw_value()->AsNumber() == -1.0) {
         // For unary -, expressed as x * -1
-        expr->right()->set_bounds(Bounds(cache_.kAsmDouble));
+        bounds_.set(expr->right(), Bounds(cache_.kAsmDouble));
         IntersectResult(expr, cache_.kAsmDouble);
         return;
       } else if (type->Is(cache_.kAsmFloat) && expr->op() != Token::MOD) {
@@ -1502,11 +1517,12 @@
 
 void AsmTyper::VisitLibraryAccess(ObjectTypeMap* map, Property* expr) {
   Literal* key = expr->key()->AsLiteral();
-  if (key == NULL || !key->IsPropertyName())
+  if (key == nullptr || !key->IsPropertyName())
     FAIL(expr, "invalid key used on stdlib member");
   Handle<String> name = key->AsPropertyName();
   VariableInfo* info = LibType(map, name);
-  if (info == NULL || info->type == NULL) FAIL(expr, "unknown stdlib function");
+  if (info == nullptr || info->type == nullptr)
+    FAIL(expr, "unknown stdlib function");
   SetResult(expr, info->type);
   property_info_ = info;
 }
@@ -1517,55 +1533,47 @@
   base::SmartArrayPointer<char> aname = name->ToCString();
   ObjectTypeMap::iterator i = map->find(std::string(aname.get()));
   if (i == map->end()) {
-    return NULL;
+    return nullptr;
   }
   return i->second;
 }
 
 
 void AsmTyper::SetType(Variable* variable, Type* type) {
-  VariableInfo* info = GetVariableInfo(variable, true);
+  VariableInfo* info = MakeVariableInfo(variable);
   info->type = type;
 }
 
 
 Type* AsmTyper::GetType(Variable* variable) {
-  VariableInfo* info = GetVariableInfo(variable, false);
-  if (!info) return NULL;
+  VariableInfo* info = GetVariableInfo(variable);
+  if (!info) return nullptr;
   return info->type;
 }
 
+AsmTyper::VariableInfo* AsmTyper::GetVariableInfo(Variable* variable) {
+  ZoneHashMap* map =
+      in_function_ ? &local_variable_type_ : &global_variable_type_;
+  ZoneHashMap::Entry* entry =
+      map->Lookup(variable, ComputePointerHash(variable));
+  if (!entry && in_function_) {
+    entry =
+        global_variable_type_.Lookup(variable, ComputePointerHash(variable));
+  }
+  return entry ? reinterpret_cast<VariableInfo*>(entry->value) : nullptr;
+}
 
-AsmTyper::VariableInfo* AsmTyper::GetVariableInfo(Variable* variable,
-                                                  bool setting) {
-  ZoneHashMap::Entry* entry;
-  ZoneHashMap* map;
-  if (in_function_) {
-    map = &local_variable_type_;
-  } else {
-    map = &global_variable_type_;
-  }
-  if (setting) {
-    entry = map->LookupOrInsert(variable, ComputePointerHash(variable),
-                                ZoneAllocationPolicy(zone()));
-  } else {
-    entry = map->Lookup(variable, ComputePointerHash(variable));
-    if (!entry && in_function_) {
-      entry =
-          global_variable_type_.Lookup(variable, ComputePointerHash(variable));
-    }
-  }
-  if (!entry) return NULL;
-  if (!entry->value) {
-    if (!setting) return NULL;
-    entry->value = new (zone()) VariableInfo;
-  }
+AsmTyper::VariableInfo* AsmTyper::MakeVariableInfo(Variable* variable) {
+  ZoneHashMap* map =
+      in_function_ ? &local_variable_type_ : &global_variable_type_;
+  ZoneHashMap::Entry* entry = map->LookupOrInsert(
+      variable, ComputePointerHash(variable), ZoneAllocationPolicy(zone()));
+  if (!entry->value) entry->value = new (zone()) VariableInfo;
   return reinterpret_cast<VariableInfo*>(entry->value);
 }
 
-
 void AsmTyper::SetVariableInfo(Variable* variable, const VariableInfo* info) {
-  VariableInfo* dest = GetVariableInfo(variable, true);
+  VariableInfo* dest = MakeVariableInfo(variable);
   dest->type = info->type;
   dest->is_check_function = info->is_check_function;
   dest->is_constructor_function = info->is_constructor_function;
@@ -1575,7 +1583,7 @@
 
 AsmTyper::StandardMember AsmTyper::VariableAsStandardMember(
     Variable* variable) {
-  VariableInfo* info = GetVariableInfo(variable, false);
+  VariableInfo* info = GetVariableInfo(variable);
   if (!info) return kNone;
   return info->standard_member;
 }
@@ -1583,14 +1591,14 @@
 
 void AsmTyper::SetResult(Expression* expr, Type* type) {
   computed_type_ = type;
-  expr->set_bounds(Bounds(computed_type_));
+  bounds_.set(expr, Bounds(computed_type_));
 }
 
 
 void AsmTyper::IntersectResult(Expression* expr, Type* type) {
   computed_type_ = type;
   Type* bounded_type = Type::Intersect(computed_type_, expected_type_, zone());
-  expr->set_bounds(Bounds(bounded_type));
+  bounds_.set(expr, Bounds(bounded_type));
 }
 
 
diff --git a/src/typing-asm.h b/src/typing-asm.h
index c7984b2..09eacaa 100644
--- a/src/typing-asm.h
+++ b/src/typing-asm.h
@@ -6,6 +6,7 @@
 #define V8_TYPING_ASM_H_
 
 #include "src/allocation.h"
+#include "src/ast/ast-type-bounds.h"
 #include "src/ast/ast.h"
 #include "src/effects.h"
 #include "src/type-info.h"
@@ -24,6 +25,7 @@
   bool Validate();
   void set_allow_simd(bool simd) { allow_simd_ = simd; }
   const char* error_message() { return error_message_; }
+  const AstTypeBounds* bounds() { return &bounds_; }
 
   enum StandardMember {
     kNone = 0,
@@ -117,6 +119,8 @@
 
   TypeCache const& cache_;
 
+  AstTypeBounds bounds_;
+
   static const int kErrorMessageLimit = 100;
   char error_message_[kErrorMessageLimit];
 
@@ -151,7 +155,8 @@
 
   void SetType(Variable* variable, Type* type);
   Type* GetType(Variable* variable);
-  VariableInfo* GetVariableInfo(Variable* variable, bool setting);
+  VariableInfo* GetVariableInfo(Variable* variable);
+  VariableInfo* MakeVariableInfo(Variable* variable);
   void SetVariableInfo(Variable* variable, const VariableInfo* info);
 
   VariableInfo* LibType(ObjectTypeMap* map, Handle<String> name);
@@ -165,8 +170,6 @@
 
   void VisitLiteral(Literal* expr, bool is_return);
 
-  void VisitVariableProxy(VariableProxy* expr, bool assignment);
-
   void VisitIntegerBitwiseOperator(BinaryOperation* expr, Type* left_expected,
                                    Type* right_expected, Type* result_type,
                                    bool conversion);
diff --git a/src/typing-reset.cc b/src/typing-reset.cc
deleted file mode 100644
index c22f7a9..0000000
--- a/src/typing-reset.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "src/v8.h"
-
-#include "src/typing-reset.h"
-
-#include "src/ast/ast.h"
-#include "src/ast/scopes.h"
-#include "src/codegen.h"
-
-namespace v8 {
-namespace internal {
-
-
-TypingReseter::TypingReseter(Isolate* isolate, FunctionLiteral* root)
-    : AstExpressionVisitor(isolate, root) {}
-
-
-void TypingReseter::VisitExpression(Expression* expression) {
-  expression->set_bounds(Bounds::Unbounded());
-}
-}  // namespace internal
-}  // namespace v8
diff --git a/src/typing-reset.h b/src/typing-reset.h
deleted file mode 100644
index 3e1969d..0000000
--- a/src/typing-reset.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_TYPING_RESET_H_
-#define V8_TYPING_RESET_H_
-
-#include "src/ast/ast-expression-visitor.h"
-
-namespace v8 {
-namespace internal {
-
-// A Visitor over a CompilationInfo's AST that resets
-// typing bounds back to their default.
-
-class TypingReseter : public AstExpressionVisitor {
- public:
-  TypingReseter(Isolate* isolate, FunctionLiteral* root);
-
- protected:
-  void VisitExpression(Expression* expression) override;
-};
-}  // namespace internal
-}  // namespace v8
-
-#endif  // V8_TYPING_RESET_H_
diff --git a/src/unicode-inl.h b/src/unicode-inl.h
index b22e482..ebebfaa 100644
--- a/src/unicode-inl.h
+++ b/src/unicode-inl.h
@@ -137,6 +137,12 @@
   }
 }
 
+bool Utf8::IsValidCharacter(uchar c) {
+  return c < 0xD800u || (c >= 0xE000u && c < 0xFDD0u) ||
+         (c > 0xFDEFu && c <= 0x10FFFFu && (c & 0xFFFEu) != 0xFFFEu &&
+          c != kBadChar);
+}
+
 }  // namespace unibrow
 
 #endif  // V8_UNICODE_INL_H_
diff --git a/src/unicode.cc b/src/unicode.cc
index de5e360..db98be8 100644
--- a/src/unicode.cc
+++ b/src/unicode.cc
@@ -305,6 +305,20 @@
          0x03C82080;
 }
 
+bool Utf8::Validate(const byte* bytes, size_t length) {
+  size_t cursor = 0;
+
+  // Performance optimization: Skip over single-byte values first.
+  while (cursor < length && bytes[cursor] <= kMaxOneByteChar) {
+    ++cursor;
+  }
+
+  while (cursor < length) {
+    uchar c = ValueOf(bytes + cursor, length - cursor, &cursor);
+    if (!IsValidCharacter(c)) return false;
+  }
+  return true;
+}
 
 // Uppercase:            point.category == 'Lu'
 
diff --git a/src/unicode.h b/src/unicode.h
index 7471a63..35717bc 100644
--- a/src/unicode.h
+++ b/src/unicode.h
@@ -155,6 +155,11 @@
   // UTF-8.
   static const unsigned kMax16BitCodeUnitSize  = 3;
   static inline uchar ValueOf(const byte* str, size_t length, size_t* cursor);
+
+  // Excludes non-characters from the set of valid code points.
+  static inline bool IsValidCharacter(uchar c);
+
+  static bool Validate(const byte* str, size_t length);
 };
 
 struct Uppercase {
diff --git a/src/uri.cc b/src/uri.cc
new file mode 100644
index 0000000..c459be5
--- /dev/null
+++ b/src/uri.cc
@@ -0,0 +1,135 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/uri.h"
+
+#include "src/char-predicates-inl.h"
+#include "src/handles.h"
+#include "src/isolate-inl.h"
+#include "src/list.h"
+
+namespace v8 {
+namespace internal {
+
+namespace {  // anonymous namespace for EncodeURI helper functions
+bool IsUnescapePredicateInUriComponent(uc16 c) {
+  if (IsAlphaNumeric(c)) {
+    return true;
+  }
+
+  switch (c) {
+    case '!':
+    case '\'':
+    case '(':
+    case ')':
+    case '*':
+    case '-':
+    case '.':
+    case '_':
+    case '~':
+      return true;
+    default:
+      return false;
+  }
+}
+
+bool IsUriSeparator(uc16 c) {
+  switch (c) {
+    case '#':
+    case ':':
+    case ';':
+    case '/':
+    case '?':
+    case '$':
+    case '&':
+    case '+':
+    case ',':
+    case '@':
+    case '=':
+      return true;
+    default:
+      return false;
+  }
+}
+
+void AddHexEncodedToBuffer(uint8_t octet, List<uint8_t>* buffer) {
+  buffer->Add('%');
+  buffer->Add(HexCharOfValue(octet >> 4));
+  buffer->Add(HexCharOfValue(octet & 0x0F));
+}
+
+void EncodeSingle(uc16 c, List<uint8_t>* buffer) {
+  uint8_t x = (c >> 12) & 0xF;
+  uint8_t y = (c >> 6) & 63;
+  uint8_t z = c & 63;
+  if (c <= 0x007F) {
+    AddHexEncodedToBuffer(c, buffer);
+  } else if (c <= 0x07FF) {
+    AddHexEncodedToBuffer(y + 192, buffer);
+    AddHexEncodedToBuffer(z + 128, buffer);
+  } else {
+    AddHexEncodedToBuffer(x + 224, buffer);
+    AddHexEncodedToBuffer(y + 128, buffer);
+    AddHexEncodedToBuffer(z + 128, buffer);
+  }
+}
+
+void EncodePair(uc16 cc1, uc16 cc2, List<uint8_t>* buffer) {
+  uint8_t u = ((cc1 >> 6) & 0xF) + 1;
+  uint8_t w = (cc1 >> 2) & 0xF;
+  uint8_t x = cc1 & 3;
+  uint8_t y = (cc2 >> 6) & 0xF;
+  uint8_t z = cc2 & 63;
+  AddHexEncodedToBuffer((u >> 2) + 240, buffer);
+  AddHexEncodedToBuffer((((u & 3) << 4) | w) + 128, buffer);
+  AddHexEncodedToBuffer(((x << 4) | y) + 128, buffer);
+  AddHexEncodedToBuffer(z + 128, buffer);
+}
+
+}  // anonymous namespace
+
+Object* Uri::Encode(Isolate* isolate, Handle<String> uri, bool is_uri) {
+  uri = String::Flatten(uri);
+  int uri_length = uri->length();
+  List<uint8_t> buffer(uri_length);
+
+  {
+    DisallowHeapAllocation no_gc;
+    String::FlatContent uri_content = uri->GetFlatContent();
+
+    for (int k = 0; k < uri_length; k++) {
+      uc16 cc1 = uri_content.Get(k);
+      if (unibrow::Utf16::IsLeadSurrogate(cc1)) {
+        k++;
+        if (k < uri_length) {
+          uc16 cc2 = uri->Get(k);
+          if (unibrow::Utf16::IsTrailSurrogate(cc2)) {
+            EncodePair(cc1, cc2, &buffer);
+            continue;
+          }
+        }
+      } else if (!unibrow::Utf16::IsTrailSurrogate(cc1)) {
+        if (IsUnescapePredicateInUriComponent(cc1) ||
+            (is_uri && IsUriSeparator(cc1))) {
+          buffer.Add(cc1);
+        } else {
+          EncodeSingle(cc1, &buffer);
+        }
+        continue;
+      }
+
+      AllowHeapAllocation allocate_error_and_return;
+      THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewURIError());
+    }
+  }
+
+  Handle<String> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result,
+      isolate->factory()->NewStringFromOneByte(buffer.ToConstVector()));
+  return *result;
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/uri.h b/src/uri.h
new file mode 100644
index 0000000..e41e8a2
--- /dev/null
+++ b/src/uri.h
@@ -0,0 +1,38 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_URI_H_
+#define V8_URI_H_
+
+#include "src/allocation.h"
+#include "src/objects.h"
+
+namespace v8 {
+namespace internal {
+
+class Uri : public AllStatic {
+ public:
+  static Object* EncodeUri(Isolate* isolate, Handle<String> uri) {
+    return Encode(isolate, uri, true);
+  }
+
+  static Object* EncodeUriComponent(Isolate* isolate,
+                                    Handle<String> component) {
+    return Encode(isolate, component, false);
+  }
+
+  // DecodeUri
+  // DecodeUriComponent
+  // escape
+  // unescape
+
+ private:
+  static Object* Encode(Isolate* isolate, Handle<String> uri, bool is_uri);
+  // decode
+};
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_URI_H_
diff --git a/src/utils.h b/src/utils.h
index 44865ed..9a60141 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -13,6 +13,7 @@
 #include "include/v8.h"
 #include "src/allocation.h"
 #include "src/base/bits.h"
+#include "src/base/compiler-specific.h"
 #include "src/base/logging.h"
 #include "src/base/macros.h"
 #include "src/base/platform/platform.h"
@@ -36,6 +37,11 @@
   return -1;
 }
 
+inline char HexCharOfValue(int value) {
+  DCHECK(0 <= value && value <= 16);
+  if (value < 10) return value + '0';
+  return value - 10 + 'A';
+}
 
 inline int BoolToInt(bool b) { return b ? 1 : 0; }
 
@@ -932,42 +938,21 @@
 // ----------------------------------------------------------------------------
 // I/O support.
 
-#if __GNUC__ >= 4
-// On gcc we can ask the compiler to check the types of %d-style format
-// specifiers and their associated arguments.  TODO(erikcorry) fix this
-// so it works on MacOSX.
-#if defined(__MACH__) && defined(__APPLE__)
-#define PRINTF_CHECKING
-#define FPRINTF_CHECKING
-#define PRINTF_METHOD_CHECKING
-#define FPRINTF_METHOD_CHECKING
-#else  // MacOsX.
-#define PRINTF_CHECKING __attribute__ ((format (printf, 1, 2)))
-#define FPRINTF_CHECKING __attribute__ ((format (printf, 2, 3)))
-#define PRINTF_METHOD_CHECKING __attribute__ ((format (printf, 2, 3)))
-#define FPRINTF_METHOD_CHECKING __attribute__ ((format (printf, 3, 4)))
-#endif
-#else
-#define PRINTF_CHECKING
-#define FPRINTF_CHECKING
-#define PRINTF_METHOD_CHECKING
-#define FPRINTF_METHOD_CHECKING
-#endif
-
 // Our version of printf().
-void PRINTF_CHECKING PrintF(const char* format, ...);
-void FPRINTF_CHECKING PrintF(FILE* out, const char* format, ...);
+void PRINTF_FORMAT(1, 2) PrintF(const char* format, ...);
+void PRINTF_FORMAT(2, 3) PrintF(FILE* out, const char* format, ...);
 
 // Prepends the current process ID to the output.
-void PRINTF_CHECKING PrintPID(const char* format, ...);
+void PRINTF_FORMAT(1, 2) PrintPID(const char* format, ...);
 
 // Prepends the current process ID and given isolate pointer to the output.
-void PrintIsolate(void* isolate, const char* format, ...);
+void PRINTF_FORMAT(2, 3) PrintIsolate(void* isolate, const char* format, ...);
 
 // Safe formatting print. Ensures that str is always null-terminated.
 // Returns the number of chars written, or -1 if output was truncated.
-int FPRINTF_CHECKING SNPrintF(Vector<char> str, const char* format, ...);
-int VSNPrintF(Vector<char> str, const char* format, va_list args);
+int PRINTF_FORMAT(2, 3) SNPrintF(Vector<char> str, const char* format, ...);
+int PRINTF_FORMAT(2, 0)
+    VSNPrintF(Vector<char> str, const char* format, va_list args);
 
 void StrNCpy(Vector<char> dest, const char* src, size_t n);
 
@@ -1470,10 +1455,11 @@
   StringBuilder(char* buffer, int size) : SimpleStringBuilder(buffer, size) { }
 
   // Add formatted contents to the builder just like printf().
-  void AddFormatted(const char* format, ...);
+  void PRINTF_FORMAT(2, 3) AddFormatted(const char* format, ...);
 
   // Add formatted contents like printf based on a va_list.
-  void AddFormattedList(const char* format, va_list list);
+  void PRINTF_FORMAT(2, 0) AddFormattedList(const char* format, va_list list);
+
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(StringBuilder);
 };
diff --git a/src/v8.gyp b/src/v8.gyp
new file mode 100644
index 0000000..ef0c562
--- /dev/null
+++ b/src/v8.gyp
@@ -0,0 +1,2251 @@
+# Copyright 2012 the V8 project authors. All rights reserved.
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+#       copyright notice, this list of conditions and the following
+#       disclaimer in the documentation and/or other materials provided
+#       with the distribution.
+#     * Neither the name of Google Inc. nor the names of its
+#       contributors may be used to endorse or promote products derived
+#       from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+{
+  'variables': {
+    'icu_use_data_file_flag%': 0,
+    'v8_code': 1,
+    'v8_random_seed%': 314159265,
+    'v8_vector_stores%': 0,
+    'embed_script%': "",
+    'warmup_script%': "",
+    'v8_extra_library_files%': [],
+    'v8_experimental_extra_library_files%': [],
+    'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
+  },
+  'includes': ['../gypfiles/toolchain.gypi', '../gypfiles/features.gypi'],
+  'targets': [
+    {
+      'target_name': 'v8',
+      'dependencies_traverse': 1,
+      'dependencies': ['v8_maybe_snapshot'],
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+        }, {
+          'toolsets': ['target'],
+        }],
+        ['component=="shared_library"', {
+          'type': '<(component)',
+          'sources': [
+            # Note: on non-Windows we still build this file so that gyp
+            # has some sources to link into the component.
+            'v8dll-main.cc',
+          ],
+          'include_dirs': [
+            '..',
+          ],
+          'defines': [
+            'V8_SHARED',
+            'BUILDING_V8_SHARED',
+          ],
+          'direct_dependent_settings': {
+            'defines': [
+              'V8_SHARED',
+              'USING_V8_SHARED',
+            ],
+          },
+          'target_conditions': [
+            ['OS=="android" and _toolset=="target"', {
+              'libraries': [
+                '-llog',
+              ],
+              'include_dirs': [
+                'src/common/android/include',
+              ],
+            }],
+          ],
+          'conditions': [
+            ['OS=="mac"', {
+              'xcode_settings': {
+                'OTHER_LDFLAGS': ['-dynamiclib', '-all_load']
+              },
+            }],
+            ['soname_version!=""', {
+              'product_extension': 'so.<(soname_version)',
+            }],
+          ],
+        },
+        {
+          'type': 'none',
+        }],
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include',
+        ],
+      },
+    },
+    {
+      # This rule delegates to either v8_snapshot, v8_nosnapshot, or
+      # v8_external_snapshot, depending on the current variables.
+      # The intention is to make the 'calling' rules a bit simpler.
+      'target_name': 'v8_maybe_snapshot',
+      'type': 'none',
+      'conditions': [
+        ['v8_use_snapshot!="true"', {
+          # The dependency on v8_base should come from a transitive
+          # dependency however the Android toolchain requires libv8_base.a
+          # to appear before libv8_snapshot.a so it's listed explicitly.
+          'dependencies': ['v8_base', 'v8_nosnapshot'],
+        }],
+        ['v8_use_snapshot=="true" and v8_use_external_startup_data==0', {
+          # The dependency on v8_base should come from a transitive
+          # dependency however the Android toolchain requires libv8_base.a
+          # to appear before libv8_snapshot.a so it's listed explicitly.
+          'dependencies': ['v8_base', 'v8_snapshot'],
+        }],
+        ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==0', {
+          'dependencies': ['v8_base', 'v8_external_snapshot'],
+          'inputs': [ '<(PRODUCT_DIR)/snapshot_blob.bin', ],
+        }],
+        ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==1', {
+          'dependencies': ['v8_base', 'v8_external_snapshot'],
+          'target_conditions': [
+            ['_toolset=="host"', {
+              'inputs': [
+                '<(PRODUCT_DIR)/snapshot_blob_host.bin',
+              ],
+            }, {
+              'inputs': [
+                '<(PRODUCT_DIR)/snapshot_blob.bin',
+              ],
+            }],
+          ],
+        }],
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+        }, {
+          'toolsets': ['target'],
+        }],
+      ]
+    },
+    {
+      'target_name': 'v8_snapshot',
+      'type': 'static_library',
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+          'dependencies': [
+            'mksnapshot#host',
+            'js2c#host',
+          ],
+        }, {
+          'toolsets': ['target'],
+          'dependencies': [
+            'mksnapshot',
+            'js2c',
+          ],
+        }],
+        ['component=="shared_library"', {
+          'defines': [
+            'V8_SHARED',
+            'BUILDING_V8_SHARED',
+          ],
+          'direct_dependent_settings': {
+            'defines': [
+              'V8_SHARED',
+              'USING_V8_SHARED',
+            ],
+          },
+        }],
+      ],
+      'dependencies': [
+        'v8_base',
+      ],
+      'include_dirs+': [
+        '..',
+      ],
+      'sources': [
+        '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
+        '<(INTERMEDIATE_DIR)/snapshot.cc',
+      ],
+      'actions': [
+        {
+          'action_name': 'run_mksnapshot',
+          'inputs': [
+            '<(mksnapshot_exec)',
+          ],
+          'conditions': [
+            ['embed_script!=""', {
+              'inputs': [
+                '<(embed_script)',
+              ],
+            }],
+            ['warmup_script!=""', {
+              'inputs': [
+                '<(warmup_script)',
+              ],
+            }],
+          ],
+          'outputs': [
+            '<(INTERMEDIATE_DIR)/snapshot.cc',
+          ],
+          'variables': {
+            'mksnapshot_flags': [],
+            'conditions': [
+              ['v8_random_seed!=0', {
+                'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
+              }],
+              ['v8_vector_stores!=0', {
+                'mksnapshot_flags': ['--vector-stores'],
+              }],
+            ],
+          },
+          'action': [
+            '<(mksnapshot_exec)',
+            '<@(mksnapshot_flags)',
+            '--startup_src', '<@(INTERMEDIATE_DIR)/snapshot.cc',
+            '<(embed_script)',
+            '<(warmup_script)',
+          ],
+        },
+      ],
+    },
+    {
+      'target_name': 'v8_nosnapshot',
+      'type': 'static_library',
+      'dependencies': [
+        'v8_base',
+      ],
+      'include_dirs+': [
+        '..',
+      ],
+      'sources': [
+        '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
+        '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
+        'snapshot/snapshot-empty.cc',
+      ],
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+          'dependencies': ['js2c#host'],
+        }, {
+          'toolsets': ['target'],
+          'dependencies': ['js2c'],
+        }],
+        ['component=="shared_library"', {
+          'defines': [
+            'BUILDING_V8_SHARED',
+            'V8_SHARED',
+          ],
+        }],
+      ]
+    },
+    {
+      'target_name': 'v8_external_snapshot',
+      'type': 'static_library',
+      'conditions': [
+        [ 'v8_use_external_startup_data==1', {
+          'conditions': [
+            ['want_separate_host_toolset==1', {
+              'toolsets': ['host', 'target'],
+              'dependencies': [
+                'mksnapshot#host',
+                'js2c#host',
+                'natives_blob',
+            ]}, {
+              'toolsets': ['target'],
+              'dependencies': [
+                'mksnapshot',
+                'js2c',
+                'natives_blob',
+              ],
+            }],
+            ['component=="shared_library"', {
+              'defines': [
+                'V8_SHARED',
+                'BUILDING_V8_SHARED',
+              ],
+              'direct_dependent_settings': {
+                'defines': [
+                  'V8_SHARED',
+                  'USING_V8_SHARED',
+                ],
+              },
+            }],
+          ],
+          'dependencies': [
+            'v8_base',
+          ],
+          'include_dirs+': [
+            '..',
+          ],
+          'sources': [
+            'snapshot/natives-external.cc',
+            'snapshot/snapshot-external.cc',
+          ],
+          'actions': [
+            {
+              'action_name': 'run_mksnapshot (external)',
+              'inputs': [
+                '<(mksnapshot_exec)',
+              ],
+              'variables': {
+                'mksnapshot_flags': [],
+                'conditions': [
+                  ['v8_random_seed!=0', {
+                    'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
+                  }],
+                  ['v8_vector_stores!=0', {
+                    'mksnapshot_flags': ['--vector-stores'],
+                  }],
+                ],
+              },
+              'conditions': [
+                ['embed_script!=""', {
+                  'inputs': [
+                    '<(embed_script)',
+                  ],
+                }],
+                ['warmup_script!=""', {
+                  'inputs': [
+                    '<(warmup_script)',
+                  ],
+                }],
+                ['want_separate_host_toolset==1', {
+                  'target_conditions': [
+                    ['_toolset=="host"', {
+                      'outputs': [
+                        '<(PRODUCT_DIR)/snapshot_blob_host.bin',
+                      ],
+                      'action': [
+                        '<(mksnapshot_exec)',
+                        '<@(mksnapshot_flags)',
+                        '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_host.bin',
+                        '<(embed_script)',
+                        '<(warmup_script)',
+                      ],
+                    }, {
+                      'outputs': [
+                        '<(PRODUCT_DIR)/snapshot_blob.bin',
+                      ],
+                      'action': [
+                        '<(mksnapshot_exec)',
+                        '<@(mksnapshot_flags)',
+                        '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin',
+                        '<(embed_script)',
+                        '<(warmup_script)',
+                      ],
+                    }],
+                  ],
+                }, {
+                  'outputs': [
+                    '<(PRODUCT_DIR)/snapshot_blob.bin',
+                  ],
+                  'action': [
+                    '<(mksnapshot_exec)',
+                    '<@(mksnapshot_flags)',
+                    '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin',
+                    '<(embed_script)',
+                    '<(warmup_script)',
+                  ],
+                }],
+              ],
+            },
+          ],
+        }],
+      ],
+    },
+    {
+      'target_name': 'v8_base',
+      'type': 'static_library',
+      'dependencies': [
+        'v8_libbase',
+      ],
+      'variables': {
+        'optimize': 'max',
+      },
+      'include_dirs+': [
+        '..',
+        # To be able to find base/trace_event/common/trace_event_common.h
+        '../..',
+      ],
+      'sources': [  ### gcmole(all) ###
+        '../include/v8-debug.h',
+        '../include/v8-experimental.h',
+        '../include/v8-platform.h',
+        '../include/v8-profiler.h',
+        '../include/v8-testing.h',
+        '../include/v8-util.h',
+        '../include/v8-version.h',
+        '../include/v8.h',
+        '../include/v8config.h',
+        'accessors.cc',
+        'accessors.h',
+        'address-map.cc',
+        'address-map.h',
+        'allocation.cc',
+        'allocation.h',
+        'allocation-site-scopes.cc',
+        'allocation-site-scopes.h',
+        'api-experimental.cc',
+        'api-experimental.h',
+        'api.cc',
+        'api.h',
+        'api-arguments.cc',
+        'api-arguments.h',
+        'api-natives.cc',
+        'api-natives.h',
+        'arguments.cc',
+        'arguments.h',
+        'assembler.cc',
+        'assembler.h',
+        'assert-scope.h',
+        'assert-scope.cc',
+        'ast/ast-expression-rewriter.cc',
+        'ast/ast-expression-rewriter.h',
+        'ast/ast-expression-visitor.cc',
+        'ast/ast-expression-visitor.h',
+        'ast/ast-literal-reindexer.cc',
+        'ast/ast-literal-reindexer.h',
+        'ast/ast-numbering.cc',
+        'ast/ast-numbering.h',
+        'ast/ast-type-bounds.h',
+        'ast/ast-value-factory.cc',
+        'ast/ast-value-factory.h',
+        'ast/ast.cc',
+        'ast/ast.h',
+        'ast/modules.cc',
+        'ast/modules.h',
+        'ast/prettyprinter.cc',
+        'ast/prettyprinter.h',
+        'ast/scopeinfo.cc',
+        'ast/scopeinfo.h',
+        'ast/scopes.cc',
+        'ast/scopes.h',
+        'ast/variables.cc',
+        'ast/variables.h',
+        'background-parsing-task.cc',
+        'background-parsing-task.h',
+        'bailout-reason.cc',
+        'bailout-reason.h',
+        'basic-block-profiler.cc',
+        'basic-block-profiler.h',
+        'bignum-dtoa.cc',
+        'bignum-dtoa.h',
+        'bignum.cc',
+        'bignum.h',
+        'bit-vector.cc',
+        'bit-vector.h',
+        'bootstrapper.cc',
+        'bootstrapper.h',
+        'builtins.cc',
+        'builtins.h',
+        'cached-powers.cc',
+        'cached-powers.h',
+        'cancelable-task.cc',
+        'cancelable-task.h',
+        'char-predicates.cc',
+        'char-predicates-inl.h',
+        'char-predicates.h',
+        'checks.h',
+        'code-factory.cc',
+        'code-factory.h',
+        'code-stub-assembler.cc',
+        'code-stub-assembler.h',
+        'code-stubs.cc',
+        'code-stubs.h',
+        'code-stubs-hydrogen.cc',
+        'codegen.cc',
+        'codegen.h',
+        'collector.h',
+        'compilation-cache.cc',
+        'compilation-cache.h',
+        'compilation-dependencies.cc',
+        'compilation-dependencies.h',
+        'compilation-statistics.cc',
+        'compilation-statistics.h',
+        'compiler/access-builder.cc',
+        'compiler/access-builder.h',
+        'compiler/access-info.cc',
+        'compiler/access-info.h',
+        'compiler/all-nodes.cc',
+        'compiler/all-nodes.h',
+        'compiler/ast-graph-builder.cc',
+        'compiler/ast-graph-builder.h',
+        'compiler/ast-loop-assignment-analyzer.cc',
+        'compiler/ast-loop-assignment-analyzer.h',
+        'compiler/basic-block-instrumentor.cc',
+        'compiler/basic-block-instrumentor.h',
+        'compiler/branch-elimination.cc',
+        'compiler/branch-elimination.h',
+        'compiler/bytecode-branch-analysis.cc',
+        'compiler/bytecode-branch-analysis.h',
+        'compiler/bytecode-graph-builder.cc',
+        'compiler/bytecode-graph-builder.h',
+        'compiler/c-linkage.cc',
+        'compiler/coalesced-live-ranges.cc',
+        'compiler/coalesced-live-ranges.h',
+        'compiler/code-generator-impl.h',
+        'compiler/code-generator.cc',
+        'compiler/code-generator.h',
+        'compiler/code-assembler.cc',
+        'compiler/code-assembler.h',
+        'compiler/common-node-cache.cc',
+        'compiler/common-node-cache.h',
+        'compiler/common-operator-reducer.cc',
+        'compiler/common-operator-reducer.h',
+        'compiler/common-operator.cc',
+        'compiler/common-operator.h',
+        'compiler/control-builders.cc',
+        'compiler/control-builders.h',
+        'compiler/control-equivalence.cc',
+        'compiler/control-equivalence.h',
+        'compiler/control-flow-optimizer.cc',
+        'compiler/control-flow-optimizer.h',
+        'compiler/dead-code-elimination.cc',
+        'compiler/dead-code-elimination.h',
+        'compiler/diamond.h',
+        'compiler/effect-control-linearizer.cc',
+        'compiler/effect-control-linearizer.h',
+        'compiler/escape-analysis.cc',
+        'compiler/escape-analysis.h',
+        "compiler/escape-analysis-reducer.cc",
+        "compiler/escape-analysis-reducer.h",
+        'compiler/frame.cc',
+        'compiler/frame.h',
+        'compiler/frame-elider.cc',
+        'compiler/frame-elider.h',
+        "compiler/frame-states.cc",
+        "compiler/frame-states.h",
+        'compiler/gap-resolver.cc',
+        'compiler/gap-resolver.h',
+        'compiler/graph-reducer.cc',
+        'compiler/graph-reducer.h',
+        'compiler/graph-replay.cc',
+        'compiler/graph-replay.h',
+        'compiler/graph-trimmer.cc',
+        'compiler/graph-trimmer.h',
+        'compiler/graph-visualizer.cc',
+        'compiler/graph-visualizer.h',
+        'compiler/graph.cc',
+        'compiler/graph.h',
+        'compiler/greedy-allocator.cc',
+        'compiler/greedy-allocator.h',
+        'compiler/instruction-codes.h',
+        'compiler/instruction-selector-impl.h',
+        'compiler/instruction-selector.cc',
+        'compiler/instruction-selector.h',
+        'compiler/instruction-scheduler.cc',
+        'compiler/instruction-scheduler.h',
+        'compiler/instruction.cc',
+        'compiler/instruction.h',
+        'compiler/int64-lowering.cc',
+        'compiler/int64-lowering.h',
+        'compiler/js-builtin-reducer.cc',
+        'compiler/js-builtin-reducer.h',
+        'compiler/js-call-reducer.cc',
+        'compiler/js-call-reducer.h',
+        'compiler/js-context-specialization.cc',
+        'compiler/js-context-specialization.h',
+        'compiler/js-create-lowering.cc',
+        'compiler/js-create-lowering.h',
+        'compiler/js-frame-specialization.cc',
+        'compiler/js-frame-specialization.h',
+        'compiler/js-generic-lowering.cc',
+        'compiler/js-generic-lowering.h',
+        'compiler/js-global-object-specialization.cc',
+        'compiler/js-global-object-specialization.h',
+        'compiler/js-graph.cc',
+        'compiler/js-graph.h',
+        'compiler/js-inlining.cc',
+        'compiler/js-inlining.h',
+        'compiler/js-inlining-heuristic.cc',
+        'compiler/js-inlining-heuristic.h',
+        'compiler/js-intrinsic-lowering.cc',
+        'compiler/js-intrinsic-lowering.h',
+        'compiler/js-native-context-specialization.cc',
+        'compiler/js-native-context-specialization.h',
+        'compiler/js-operator.cc',
+        'compiler/js-operator.h',
+        'compiler/js-typed-lowering.cc',
+        'compiler/js-typed-lowering.h',
+        'compiler/jump-threading.cc',
+        'compiler/jump-threading.h',
+        'compiler/linkage.cc',
+        'compiler/linkage.h',
+        'compiler/liveness-analyzer.cc',
+        'compiler/liveness-analyzer.h',
+        'compiler/live-range-separator.cc',
+        'compiler/live-range-separator.h',
+        'compiler/load-elimination.cc',
+        'compiler/load-elimination.h',
+        'compiler/loop-analysis.cc',
+        'compiler/loop-analysis.h',
+        'compiler/loop-peeling.cc',
+        'compiler/loop-peeling.h',
+        'compiler/machine-operator-reducer.cc',
+        'compiler/machine-operator-reducer.h',
+        'compiler/machine-operator.cc',
+        'compiler/machine-operator.h',
+        'compiler/memory-optimizer.cc',
+        'compiler/memory-optimizer.h',
+        'compiler/move-optimizer.cc',
+        'compiler/move-optimizer.h',
+        'compiler/node-aux-data.h',
+        'compiler/node-cache.cc',
+        'compiler/node-cache.h',
+        'compiler/node-marker.cc',
+        'compiler/node-marker.h',
+        'compiler/node-matchers.cc',
+        'compiler/node-matchers.h',
+        'compiler/node-properties.cc',
+        'compiler/node-properties.h',
+        'compiler/node.cc',
+        'compiler/node.h',
+        'compiler/opcodes.cc',
+        'compiler/opcodes.h',
+        'compiler/operator-properties.cc',
+        'compiler/operator-properties.h',
+        'compiler/operator.cc',
+        'compiler/operator.h',
+        'compiler/osr.cc',
+        'compiler/osr.h',
+        'compiler/pipeline.cc',
+        'compiler/pipeline.h',
+        'compiler/pipeline-statistics.cc',
+        'compiler/pipeline-statistics.h',
+        'compiler/raw-machine-assembler.cc',
+        'compiler/raw-machine-assembler.h',
+        'compiler/register-allocator.cc',
+        'compiler/register-allocator.h',
+        'compiler/register-allocator-verifier.cc',
+        'compiler/register-allocator-verifier.h',
+        'compiler/representation-change.cc',
+        'compiler/representation-change.h',
+        'compiler/schedule.cc',
+        'compiler/schedule.h',
+        'compiler/scheduler.cc',
+        'compiler/scheduler.h',
+        'compiler/select-lowering.cc',
+        'compiler/select-lowering.h',
+        'compiler/simplified-lowering.cc',
+        'compiler/simplified-lowering.h',
+        'compiler/simplified-operator-reducer.cc',
+        'compiler/simplified-operator-reducer.h',
+        'compiler/simplified-operator.cc',
+        'compiler/simplified-operator.h',
+        'compiler/source-position.cc',
+        'compiler/source-position.h',
+        'compiler/state-values-utils.cc',
+        'compiler/state-values-utils.h',
+        'compiler/tail-call-optimization.cc',
+        'compiler/tail-call-optimization.h',
+        'compiler/type-hint-analyzer.cc',
+        'compiler/type-hint-analyzer.h',
+        'compiler/type-hints.cc',
+        'compiler/type-hints.h',
+        'compiler/typer.cc',
+        'compiler/typer.h',
+        'compiler/value-numbering-reducer.cc',
+        'compiler/value-numbering-reducer.h',
+        'compiler/verifier.cc',
+        'compiler/verifier.h',
+        'compiler/wasm-compiler.cc',
+        'compiler/wasm-compiler.h',
+        'compiler/wasm-linkage.cc',
+        'compiler/zone-pool.cc',
+        'compiler/zone-pool.h',
+        'compiler.cc',
+        'compiler.h',
+        'context-measure.cc',
+        'context-measure.h',
+        'contexts-inl.h',
+        'contexts.cc',
+        'contexts.h',
+        'conversions-inl.h',
+        'conversions.cc',
+        'conversions.h',
+        'counters-inl.h',
+        'counters.cc',
+        'counters.h',
+        'crankshaft/compilation-phase.cc',
+        'crankshaft/compilation-phase.h',
+        'crankshaft/hydrogen-alias-analysis.h',
+        'crankshaft/hydrogen-bce.cc',
+        'crankshaft/hydrogen-bce.h',
+        'crankshaft/hydrogen-canonicalize.cc',
+        'crankshaft/hydrogen-canonicalize.h',
+        'crankshaft/hydrogen-check-elimination.cc',
+        'crankshaft/hydrogen-check-elimination.h',
+        'crankshaft/hydrogen-dce.cc',
+        'crankshaft/hydrogen-dce.h',
+        'crankshaft/hydrogen-dehoist.cc',
+        'crankshaft/hydrogen-dehoist.h',
+        'crankshaft/hydrogen-environment-liveness.cc',
+        'crankshaft/hydrogen-environment-liveness.h',
+        'crankshaft/hydrogen-escape-analysis.cc',
+        'crankshaft/hydrogen-escape-analysis.h',
+        'crankshaft/hydrogen-flow-engine.h',
+        'crankshaft/hydrogen-gvn.cc',
+        'crankshaft/hydrogen-gvn.h',
+        'crankshaft/hydrogen-infer-representation.cc',
+        'crankshaft/hydrogen-infer-representation.h',
+        'crankshaft/hydrogen-infer-types.cc',
+        'crankshaft/hydrogen-infer-types.h',
+        'crankshaft/hydrogen-instructions.cc',
+        'crankshaft/hydrogen-instructions.h',
+        'crankshaft/hydrogen-load-elimination.cc',
+        'crankshaft/hydrogen-load-elimination.h',
+        'crankshaft/hydrogen-mark-deoptimize.cc',
+        'crankshaft/hydrogen-mark-deoptimize.h',
+        'crankshaft/hydrogen-mark-unreachable.cc',
+        'crankshaft/hydrogen-mark-unreachable.h',
+        'crankshaft/hydrogen-osr.cc',
+        'crankshaft/hydrogen-osr.h',
+        'crankshaft/hydrogen-range-analysis.cc',
+        'crankshaft/hydrogen-range-analysis.h',
+        'crankshaft/hydrogen-redundant-phi.cc',
+        'crankshaft/hydrogen-redundant-phi.h',
+        'crankshaft/hydrogen-removable-simulates.cc',
+        'crankshaft/hydrogen-removable-simulates.h',
+        'crankshaft/hydrogen-representation-changes.cc',
+        'crankshaft/hydrogen-representation-changes.h',
+        'crankshaft/hydrogen-sce.cc',
+        'crankshaft/hydrogen-sce.h',
+        'crankshaft/hydrogen-store-elimination.cc',
+        'crankshaft/hydrogen-store-elimination.h',
+        'crankshaft/hydrogen-types.cc',
+        'crankshaft/hydrogen-types.h',
+        'crankshaft/hydrogen-uint32-analysis.cc',
+        'crankshaft/hydrogen-uint32-analysis.h',
+        'crankshaft/hydrogen.cc',
+        'crankshaft/hydrogen.h',
+        'crankshaft/lithium-allocator-inl.h',
+        'crankshaft/lithium-allocator.cc',
+        'crankshaft/lithium-allocator.h',
+        'crankshaft/lithium-codegen.cc',
+        'crankshaft/lithium-codegen.h',
+        'crankshaft/lithium.cc',
+        'crankshaft/lithium.h',
+        'crankshaft/lithium-inl.h',
+        'crankshaft/typing.cc',
+        'crankshaft/typing.h',
+        'crankshaft/unique.h',
+        'date.cc',
+        'date.h',
+        'dateparser-inl.h',
+        'dateparser.cc',
+        'dateparser.h',
+        'debug/debug-evaluate.cc',
+        'debug/debug-evaluate.h',
+        'debug/debug-frames.cc',
+        'debug/debug-frames.h',
+        'debug/debug-scopes.cc',
+        'debug/debug-scopes.h',
+        'debug/debug.cc',
+        'debug/debug.h',
+        'debug/liveedit.cc',
+        'debug/liveedit.h',
+        'deoptimizer.cc',
+        'deoptimizer.h',
+        'disasm.h',
+        'disassembler.cc',
+        'disassembler.h',
+        'diy-fp.cc',
+        'diy-fp.h',
+        'double.h',
+        'dtoa.cc',
+        'dtoa.h',
+        'effects.h',
+        'elements-kind.cc',
+        'elements-kind.h',
+        'elements.cc',
+        'elements.h',
+        'execution.cc',
+        'execution.h',
+        'extensions/externalize-string-extension.cc',
+        'extensions/externalize-string-extension.h',
+        'extensions/free-buffer-extension.cc',
+        'extensions/free-buffer-extension.h',
+        'extensions/gc-extension.cc',
+        'extensions/gc-extension.h',
+        'extensions/ignition-statistics-extension.cc',
+        'extensions/ignition-statistics-extension.h',
+        'extensions/statistics-extension.cc',
+        'extensions/statistics-extension.h',
+        'extensions/trigger-failure-extension.cc',
+        'extensions/trigger-failure-extension.h',
+        'external-reference-table.cc',
+        'external-reference-table.h',
+        'factory.cc',
+        'factory.h',
+        'fast-accessor-assembler.cc',
+        'fast-accessor-assembler.h',
+        'fast-dtoa.cc',
+        'fast-dtoa.h',
+        'field-index.h',
+        'field-index-inl.h',
+        'field-type.cc',
+        'field-type.h',
+        'fixed-dtoa.cc',
+        'fixed-dtoa.h',
+        'flag-definitions.h',
+        'flags.cc',
+        'flags.h',
+        'frames-inl.h',
+        'frames.cc',
+        'frames.h',
+        'full-codegen/full-codegen.cc',
+        'full-codegen/full-codegen.h',
+        'futex-emulation.cc',
+        'futex-emulation.h',
+        'gdb-jit.cc',
+        'gdb-jit.h',
+        'global-handles.cc',
+        'global-handles.h',
+        'globals.h',
+        'handles-inl.h',
+        'handles.cc',
+        'handles.h',
+        'hashmap.h',
+        'heap-symbols.h',
+        'heap/array-buffer-tracker.cc',
+        'heap/array-buffer-tracker.h',
+        'heap/memory-reducer.cc',
+        'heap/memory-reducer.h',
+        'heap/gc-idle-time-handler.cc',
+        'heap/gc-idle-time-handler.h',
+        'heap/gc-tracer.cc',
+        'heap/gc-tracer.h',
+        'heap/heap-inl.h',
+        'heap/heap.cc',
+        'heap/heap.h',
+        'heap/incremental-marking-inl.h',
+        'heap/incremental-marking-job.cc',
+        'heap/incremental-marking-job.h',
+        'heap/incremental-marking.cc',
+        'heap/incremental-marking.h',
+        'heap/mark-compact-inl.h',
+        'heap/mark-compact.cc',
+        'heap/mark-compact.h',
+        'heap/object-stats.cc',
+        'heap/object-stats.h',
+        'heap/objects-visiting-inl.h',
+        'heap/objects-visiting.cc',
+        'heap/objects-visiting.h',
+        'heap/page-parallel-job.h',
+        'heap/remembered-set.cc',
+        'heap/remembered-set.h',
+        'heap/scavenge-job.h',
+        'heap/scavenge-job.cc',
+        'heap/scavenger-inl.h',
+        'heap/scavenger.cc',
+        'heap/scavenger.h',
+        'heap/slot-set.h',
+        'heap/spaces-inl.h',
+        'heap/spaces.cc',
+        'heap/spaces.h',
+        'heap/store-buffer.cc',
+        'heap/store-buffer.h',
+        'i18n.cc',
+        'i18n.h',
+        'icu_util.cc',
+        'icu_util.h',
+        'ic/access-compiler.cc',
+        'ic/access-compiler.h',
+        'ic/call-optimization.cc',
+        'ic/call-optimization.h',
+        'ic/handler-compiler.cc',
+        'ic/handler-compiler.h',
+        'ic/ic-inl.h',
+        'ic/ic-state.cc',
+        'ic/ic-state.h',
+        'ic/ic.cc',
+        'ic/ic.h',
+        'ic/ic-compiler.cc',
+        'ic/ic-compiler.h',
+        'identity-map.cc',
+        'identity-map.h',
+        'interface-descriptors.cc',
+        'interface-descriptors.h',
+        'interpreter/bytecodes.cc',
+        'interpreter/bytecodes.h',
+        'interpreter/bytecode-array-builder.cc',
+        'interpreter/bytecode-array-builder.h',
+        'interpreter/bytecode-array-iterator.cc',
+        'interpreter/bytecode-array-iterator.h',
+        'interpreter/bytecode-array-writer.cc',
+        'interpreter/bytecode-array-writer.h',
+        'interpreter/bytecode-peephole-optimizer.cc',
+        'interpreter/bytecode-peephole-optimizer.h',
+        'interpreter/bytecode-pipeline.cc',
+        'interpreter/bytecode-pipeline.h',
+        'interpreter/bytecode-register-allocator.cc',
+        'interpreter/bytecode-register-allocator.h',
+        'interpreter/bytecode-generator.cc',
+        'interpreter/bytecode-generator.h',
+        'interpreter/bytecode-traits.h',
+        'interpreter/constant-array-builder.cc',
+        'interpreter/constant-array-builder.h',
+        'interpreter/control-flow-builders.cc',
+        'interpreter/control-flow-builders.h',
+        'interpreter/handler-table-builder.cc',
+        'interpreter/handler-table-builder.h',
+        'interpreter/interpreter.cc',
+        'interpreter/interpreter.h',
+        'interpreter/interpreter-assembler.cc',
+        'interpreter/interpreter-assembler.h',
+        'interpreter/interpreter-intrinsics.cc',
+        'interpreter/interpreter-intrinsics.h',
+        'interpreter/source-position-table.cc',
+        'interpreter/source-position-table.h',
+        'isolate-inl.h',
+        'isolate.cc',
+        'isolate.h',
+        'json-parser.h',
+        'json-stringifier.h',
+        'keys.h',
+        'keys.cc',
+        'layout-descriptor-inl.h',
+        'layout-descriptor.cc',
+        'layout-descriptor.h',
+        'list-inl.h',
+        'list.h',
+        'locked-queue-inl.h',
+        'locked-queue.h',
+        'log-inl.h',
+        'log-utils.cc',
+        'log-utils.h',
+        'log.cc',
+        'log.h',
+        'lookup.cc',
+        'lookup.h',
+        'macro-assembler.h',
+        'machine-type.cc',
+        'machine-type.h',
+        'messages.cc',
+        'messages.h',
+        'msan.h',
+        'objects-body-descriptors-inl.h',
+        'objects-body-descriptors.h',
+        'objects-debug.cc',
+        'objects-inl.h',
+        'objects-printer.cc',
+        'objects.cc',
+        'objects.h',
+        'optimizing-compile-dispatcher.cc',
+        'optimizing-compile-dispatcher.h',
+        'ostreams.cc',
+        'ostreams.h',
+        'parsing/expression-classifier.h',
+        'parsing/func-name-inferrer.cc',
+        'parsing/func-name-inferrer.h',
+        'parsing/parameter-initializer-rewriter.cc',
+        'parsing/parameter-initializer-rewriter.h',
+        'parsing/parser-base.h',
+        'parsing/parser.cc',
+        'parsing/parser.h',
+        'parsing/pattern-rewriter.cc',
+        'parsing/preparse-data-format.h',
+        'parsing/preparse-data.cc',
+        'parsing/preparse-data.h',
+        'parsing/preparser.cc',
+        'parsing/preparser.h',
+        'parsing/rewriter.cc',
+        'parsing/rewriter.h',
+        'parsing/scanner-character-streams.cc',
+        'parsing/scanner-character-streams.h',
+        'parsing/scanner.cc',
+        'parsing/scanner.h',
+        'parsing/token.cc',
+        'parsing/token.h',
+        'pending-compilation-error-handler.cc',
+        'pending-compilation-error-handler.h',
+        'perf-jit.cc',
+        'perf-jit.h',
+        'profiler/allocation-tracker.cc',
+        'profiler/allocation-tracker.h',
+        'profiler/circular-queue-inl.h',
+        'profiler/circular-queue.h',
+        'profiler/cpu-profiler-inl.h',
+        'profiler/cpu-profiler.cc',
+        'profiler/cpu-profiler.h',
+        'profiler/heap-profiler.cc',
+        'profiler/heap-profiler.h',
+        'profiler/heap-snapshot-generator-inl.h',
+        'profiler/heap-snapshot-generator.cc',
+        'profiler/heap-snapshot-generator.h',
+        'profiler/profile-generator-inl.h',
+        'profiler/profile-generator.cc',
+        'profiler/profile-generator.h',
+        'profiler/sampler.cc',
+        'profiler/sampler.h',
+        'profiler/sampling-heap-profiler.cc',
+        'profiler/sampling-heap-profiler.h',
+        'profiler/strings-storage.cc',
+        'profiler/strings-storage.h',
+        'profiler/tick-sample.cc',
+        'profiler/tick-sample.h',
+        'profiler/unbound-queue-inl.h',
+        'profiler/unbound-queue.h',
+        'property-descriptor.cc',
+        'property-descriptor.h',
+        'property-details.h',
+        'property.cc',
+        'property.h',
+        'prototype.h',
+        'regexp/bytecodes-irregexp.h',
+        'regexp/interpreter-irregexp.cc',
+        'regexp/interpreter-irregexp.h',
+        'regexp/jsregexp-inl.h',
+        'regexp/jsregexp.cc',
+        'regexp/jsregexp.h',
+        'regexp/regexp-ast.cc',
+        'regexp/regexp-ast.h',
+        'regexp/regexp-macro-assembler-irregexp-inl.h',
+        'regexp/regexp-macro-assembler-irregexp.cc',
+        'regexp/regexp-macro-assembler-irregexp.h',
+        'regexp/regexp-macro-assembler-tracer.cc',
+        'regexp/regexp-macro-assembler-tracer.h',
+        'regexp/regexp-macro-assembler.cc',
+        'regexp/regexp-macro-assembler.h',
+        'regexp/regexp-parser.cc',
+        'regexp/regexp-parser.h',
+        'regexp/regexp-stack.cc',
+        'regexp/regexp-stack.h',
+        'register-configuration.cc',
+        'register-configuration.h',
+        'runtime-profiler.cc',
+        'runtime-profiler.h',
+        'runtime/runtime-array.cc',
+        'runtime/runtime-atomics.cc',
+        'runtime/runtime-classes.cc',
+        'runtime/runtime-collections.cc',
+        'runtime/runtime-compiler.cc',
+        'runtime/runtime-date.cc',
+        'runtime/runtime-debug.cc',
+        'runtime/runtime-forin.cc',
+        'runtime/runtime-function.cc',
+        'runtime/runtime-futex.cc',
+        'runtime/runtime-generator.cc',
+        'runtime/runtime-i18n.cc',
+        'runtime/runtime-internal.cc',
+        'runtime/runtime-interpreter.cc',
+        'runtime/runtime-json.cc',
+        'runtime/runtime-literals.cc',
+        'runtime/runtime-liveedit.cc',
+        'runtime/runtime-maths.cc',
+        'runtime/runtime-numbers.cc',
+        'runtime/runtime-object.cc',
+        'runtime/runtime-operators.cc',
+        'runtime/runtime-proxy.cc',
+        'runtime/runtime-regexp.cc',
+        'runtime/runtime-scopes.cc',
+        'runtime/runtime-simd.cc',
+        'runtime/runtime-strings.cc',
+        'runtime/runtime-symbol.cc',
+        'runtime/runtime-test.cc',
+        'runtime/runtime-typedarray.cc',
+        'runtime/runtime-uri.cc',
+        'runtime/runtime-utils.h',
+        'runtime/runtime.cc',
+        'runtime/runtime.h',
+        'safepoint-table.cc',
+        'safepoint-table.h',
+        'signature.h',
+        'simulator.h',
+        'small-pointer-list.h',
+        'snapshot/code-serializer.cc',
+        'snapshot/code-serializer.h',
+        'snapshot/deserializer.cc',
+        'snapshot/deserializer.h',
+        'snapshot/natives.h',
+        'snapshot/natives-common.cc',
+        'snapshot/partial-serializer.cc',
+        'snapshot/partial-serializer.h',
+        'snapshot/serializer.cc',
+        'snapshot/serializer.h',
+        'snapshot/serializer-common.cc',
+        'snapshot/serializer-common.h',
+        'snapshot/snapshot.h',
+        'snapshot/snapshot-common.cc',
+        'snapshot/snapshot-source-sink.cc',
+        'snapshot/snapshot-source-sink.h',
+        'snapshot/startup-serializer.cc',
+        'snapshot/startup-serializer.h',
+        'source-position.h',
+        'splay-tree.h',
+        'splay-tree-inl.h',
+        'startup-data-util.cc',
+        'startup-data-util.h',
+        'string-builder.cc',
+        'string-builder.h',
+        'string-search.h',
+        'string-stream.cc',
+        'string-stream.h',
+        'strtod.cc',
+        'strtod.h',
+        'ic/stub-cache.cc',
+        'ic/stub-cache.h',
+        'tracing/trace-event.cc',
+        'tracing/trace-event.h',
+        'transitions-inl.h',
+        'transitions.cc',
+        'transitions.h',
+        'type-cache.cc',
+        'type-cache.h',
+        'type-feedback-vector-inl.h',
+        'type-feedback-vector.cc',
+        'type-feedback-vector.h',
+        'type-info.cc',
+        'type-info.h',
+        'types.cc',
+        'types.h',
+        'typing-asm.cc',
+        'typing-asm.h',
+        'unicode-inl.h',
+        'unicode.cc',
+        'unicode.h',
+        'unicode-cache-inl.h',
+        'unicode-cache.h',
+        'unicode-decoder.cc',
+        'unicode-decoder.h',
+        'uri.cc',
+        'uri.h',
+        'utils-inl.h',
+        'utils.cc',
+        'utils.h',
+        'v8.cc',
+        'v8.h',
+        'v8memory.h',
+        'v8threads.cc',
+        'v8threads.h',
+        'vector.h',
+        'version.cc',
+        'version.h',
+        'vm-state-inl.h',
+        'vm-state.h',
+        'wasm/asm-wasm-builder.cc',
+        'wasm/asm-wasm-builder.h',
+        'wasm/ast-decoder.cc',
+        'wasm/ast-decoder.h',
+        'wasm/decoder.h',
+        'wasm/encoder.cc',
+        'wasm/encoder.h',
+        'wasm/leb-helper.h',
+        'wasm/module-decoder.cc',
+        'wasm/module-decoder.h',
+        'wasm/switch-logic.h',
+        'wasm/switch-logic.cc',
+        'wasm/wasm-external-refs.cc',
+        'wasm/wasm-external-refs.h',
+        'wasm/wasm-function-name-table.cc',
+        'wasm/wasm-function-name-table.h',
+        'wasm/wasm-js.cc',
+        'wasm/wasm-js.h',
+        'wasm/wasm-macro-gen.h',
+        'wasm/wasm-module.cc',
+        'wasm/wasm-module.h',
+        'wasm/wasm-opcodes.cc',
+        'wasm/wasm-opcodes.h',
+        'wasm/wasm-result.cc',
+        'wasm/wasm-result.h',
+        'zone.cc',
+        'zone.h',
+        'zone-allocator.h',
+        'zone-containers.h',
+        'third_party/fdlibm/fdlibm.cc',
+        'third_party/fdlibm/fdlibm.h',
+      ],
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+        }, {
+          'toolsets': ['target'],
+        }],
+        ['v8_target_arch=="arm"', {
+          'sources': [  ### gcmole(arch:arm) ###
+            'arm/assembler-arm-inl.h',
+            'arm/assembler-arm.cc',
+            'arm/assembler-arm.h',
+            'arm/builtins-arm.cc',
+            'arm/code-stubs-arm.cc',
+            'arm/code-stubs-arm.h',
+            'arm/codegen-arm.cc',
+            'arm/codegen-arm.h',
+            'arm/constants-arm.h',
+            'arm/constants-arm.cc',
+            'arm/cpu-arm.cc',
+            'arm/deoptimizer-arm.cc',
+            'arm/disasm-arm.cc',
+            'arm/frames-arm.cc',
+            'arm/frames-arm.h',
+            'arm/interface-descriptors-arm.cc',
+            'arm/interface-descriptors-arm.h',
+            'arm/macro-assembler-arm.cc',
+            'arm/macro-assembler-arm.h',
+            'arm/simulator-arm.cc',
+            'arm/simulator-arm.h',
+            'compiler/arm/code-generator-arm.cc',
+            'compiler/arm/instruction-codes-arm.h',
+            'compiler/arm/instruction-scheduler-arm.cc',
+            'compiler/arm/instruction-selector-arm.cc',
+            'crankshaft/arm/lithium-arm.cc',
+            'crankshaft/arm/lithium-arm.h',
+            'crankshaft/arm/lithium-codegen-arm.cc',
+            'crankshaft/arm/lithium-codegen-arm.h',
+            'crankshaft/arm/lithium-gap-resolver-arm.cc',
+            'crankshaft/arm/lithium-gap-resolver-arm.h',
+            'debug/arm/debug-arm.cc',
+            'full-codegen/arm/full-codegen-arm.cc',
+            'ic/arm/access-compiler-arm.cc',
+            'ic/arm/handler-compiler-arm.cc',
+            'ic/arm/ic-arm.cc',
+            'ic/arm/ic-compiler-arm.cc',
+            'ic/arm/stub-cache-arm.cc',
+            'regexp/arm/regexp-macro-assembler-arm.cc',
+            'regexp/arm/regexp-macro-assembler-arm.h',
+          ],
+        }],
+        ['v8_target_arch=="arm64"', {
+          'sources': [  ### gcmole(arch:arm64) ###
+            'arm64/assembler-arm64.cc',
+            'arm64/assembler-arm64.h',
+            'arm64/assembler-arm64-inl.h',
+            'arm64/builtins-arm64.cc',
+            'arm64/codegen-arm64.cc',
+            'arm64/codegen-arm64.h',
+            'arm64/code-stubs-arm64.cc',
+            'arm64/code-stubs-arm64.h',
+            'arm64/constants-arm64.h',
+            'arm64/cpu-arm64.cc',
+            'arm64/decoder-arm64.cc',
+            'arm64/decoder-arm64.h',
+            'arm64/decoder-arm64-inl.h',
+            'arm64/deoptimizer-arm64.cc',
+            'arm64/disasm-arm64.cc',
+            'arm64/disasm-arm64.h',
+            'arm64/frames-arm64.cc',
+            'arm64/frames-arm64.h',
+            'arm64/instructions-arm64.cc',
+            'arm64/instructions-arm64.h',
+            'arm64/instrument-arm64.cc',
+            'arm64/instrument-arm64.h',
+            'arm64/interface-descriptors-arm64.cc',
+            'arm64/interface-descriptors-arm64.h',
+            'arm64/macro-assembler-arm64.cc',
+            'arm64/macro-assembler-arm64.h',
+            'arm64/macro-assembler-arm64-inl.h',
+            'arm64/simulator-arm64.cc',
+            'arm64/simulator-arm64.h',
+            'arm64/utils-arm64.cc',
+            'arm64/utils-arm64.h',
+            'compiler/arm64/code-generator-arm64.cc',
+            'compiler/arm64/instruction-codes-arm64.h',
+            'compiler/arm64/instruction-scheduler-arm64.cc',
+            'compiler/arm64/instruction-selector-arm64.cc',
+            'crankshaft/arm64/delayed-masm-arm64.cc',
+            'crankshaft/arm64/delayed-masm-arm64.h',
+            'crankshaft/arm64/delayed-masm-arm64-inl.h',
+            'crankshaft/arm64/lithium-arm64.cc',
+            'crankshaft/arm64/lithium-arm64.h',
+            'crankshaft/arm64/lithium-codegen-arm64.cc',
+            'crankshaft/arm64/lithium-codegen-arm64.h',
+            'crankshaft/arm64/lithium-gap-resolver-arm64.cc',
+            'crankshaft/arm64/lithium-gap-resolver-arm64.h',
+            'debug/arm64/debug-arm64.cc',
+            'full-codegen/arm64/full-codegen-arm64.cc',
+            'ic/arm64/access-compiler-arm64.cc',
+            'ic/arm64/handler-compiler-arm64.cc',
+            'ic/arm64/ic-arm64.cc',
+            'ic/arm64/ic-compiler-arm64.cc',
+            'ic/arm64/stub-cache-arm64.cc',
+            'regexp/arm64/regexp-macro-assembler-arm64.cc',
+            'regexp/arm64/regexp-macro-assembler-arm64.h',
+          ],
+        }],
+        ['v8_target_arch=="ia32"', {
+          'sources': [  ### gcmole(arch:ia32) ###
+            'ia32/assembler-ia32-inl.h',
+            'ia32/assembler-ia32.cc',
+            'ia32/assembler-ia32.h',
+            'ia32/builtins-ia32.cc',
+            'ia32/code-stubs-ia32.cc',
+            'ia32/code-stubs-ia32.h',
+            'ia32/codegen-ia32.cc',
+            'ia32/codegen-ia32.h',
+            'ia32/cpu-ia32.cc',
+            'ia32/deoptimizer-ia32.cc',
+            'ia32/disasm-ia32.cc',
+            'ia32/frames-ia32.cc',
+            'ia32/frames-ia32.h',
+            'ia32/interface-descriptors-ia32.cc',
+            'ia32/macro-assembler-ia32.cc',
+            'ia32/macro-assembler-ia32.h',
+            'compiler/ia32/code-generator-ia32.cc',
+            'compiler/ia32/instruction-codes-ia32.h',
+            'compiler/ia32/instruction-scheduler-ia32.cc',
+            'compiler/ia32/instruction-selector-ia32.cc',
+            'crankshaft/ia32/lithium-codegen-ia32.cc',
+            'crankshaft/ia32/lithium-codegen-ia32.h',
+            'crankshaft/ia32/lithium-gap-resolver-ia32.cc',
+            'crankshaft/ia32/lithium-gap-resolver-ia32.h',
+            'crankshaft/ia32/lithium-ia32.cc',
+            'crankshaft/ia32/lithium-ia32.h',
+            'debug/ia32/debug-ia32.cc',
+            'full-codegen/ia32/full-codegen-ia32.cc',
+            'ic/ia32/access-compiler-ia32.cc',
+            'ic/ia32/handler-compiler-ia32.cc',
+            'ic/ia32/ic-ia32.cc',
+            'ic/ia32/ic-compiler-ia32.cc',
+            'ic/ia32/stub-cache-ia32.cc',
+            'regexp/ia32/regexp-macro-assembler-ia32.cc',
+            'regexp/ia32/regexp-macro-assembler-ia32.h',
+          ],
+        }],
+        ['v8_target_arch=="x87"', {
+          'sources': [  ### gcmole(arch:x87) ###
+            'x87/assembler-x87-inl.h',
+            'x87/assembler-x87.cc',
+            'x87/assembler-x87.h',
+            'x87/builtins-x87.cc',
+            'x87/code-stubs-x87.cc',
+            'x87/code-stubs-x87.h',
+            'x87/codegen-x87.cc',
+            'x87/codegen-x87.h',
+            'x87/cpu-x87.cc',
+            'x87/deoptimizer-x87.cc',
+            'x87/disasm-x87.cc',
+            'x87/frames-x87.cc',
+            'x87/frames-x87.h',
+            'x87/interface-descriptors-x87.cc',
+            'x87/macro-assembler-x87.cc',
+            'x87/macro-assembler-x87.h',
+            'compiler/x87/code-generator-x87.cc',
+            'compiler/x87/instruction-codes-x87.h',
+            'compiler/x87/instruction-scheduler-x87.cc',
+            'compiler/x87/instruction-selector-x87.cc',
+            'crankshaft/x87/lithium-codegen-x87.cc',
+            'crankshaft/x87/lithium-codegen-x87.h',
+            'crankshaft/x87/lithium-gap-resolver-x87.cc',
+            'crankshaft/x87/lithium-gap-resolver-x87.h',
+            'crankshaft/x87/lithium-x87.cc',
+            'crankshaft/x87/lithium-x87.h',
+            'debug/x87/debug-x87.cc',
+            'full-codegen/x87/full-codegen-x87.cc',
+            'ic/x87/access-compiler-x87.cc',
+            'ic/x87/handler-compiler-x87.cc',
+            'ic/x87/ic-x87.cc',
+            'ic/x87/ic-compiler-x87.cc',
+            'ic/x87/stub-cache-x87.cc',
+            'regexp/x87/regexp-macro-assembler-x87.cc',
+            'regexp/x87/regexp-macro-assembler-x87.h',
+          ],
+        }],
+        ['v8_target_arch=="mips" or v8_target_arch=="mipsel"', {
+          'sources': [  ### gcmole(arch:mipsel) ###
+            'mips/assembler-mips.cc',
+            'mips/assembler-mips.h',
+            'mips/assembler-mips-inl.h',
+            'mips/builtins-mips.cc',
+            'mips/codegen-mips.cc',
+            'mips/codegen-mips.h',
+            'mips/code-stubs-mips.cc',
+            'mips/code-stubs-mips.h',
+            'mips/constants-mips.cc',
+            'mips/constants-mips.h',
+            'mips/cpu-mips.cc',
+            'mips/deoptimizer-mips.cc',
+            'mips/disasm-mips.cc',
+            'mips/frames-mips.cc',
+            'mips/frames-mips.h',
+            'mips/interface-descriptors-mips.cc',
+            'mips/macro-assembler-mips.cc',
+            'mips/macro-assembler-mips.h',
+            'mips/simulator-mips.cc',
+            'mips/simulator-mips.h',
+            'compiler/mips/code-generator-mips.cc',
+            'compiler/mips/instruction-codes-mips.h',
+            'compiler/mips/instruction-scheduler-mips.cc',
+            'compiler/mips/instruction-selector-mips.cc',
+            'crankshaft/mips/lithium-codegen-mips.cc',
+            'crankshaft/mips/lithium-codegen-mips.h',
+            'crankshaft/mips/lithium-gap-resolver-mips.cc',
+            'crankshaft/mips/lithium-gap-resolver-mips.h',
+            'crankshaft/mips/lithium-mips.cc',
+            'crankshaft/mips/lithium-mips.h',
+            'full-codegen/mips/full-codegen-mips.cc',
+            'debug/mips/debug-mips.cc',
+            'ic/mips/access-compiler-mips.cc',
+            'ic/mips/handler-compiler-mips.cc',
+            'ic/mips/ic-mips.cc',
+            'ic/mips/ic-compiler-mips.cc',
+            'ic/mips/stub-cache-mips.cc',
+            'regexp/mips/regexp-macro-assembler-mips.cc',
+            'regexp/mips/regexp-macro-assembler-mips.h',
+          ],
+        }],
+        ['v8_target_arch=="mips64" or v8_target_arch=="mips64el"', {
+          'sources': [  ### gcmole(arch:mips64el) ###
+            'mips64/assembler-mips64.cc',
+            'mips64/assembler-mips64.h',
+            'mips64/assembler-mips64-inl.h',
+            'mips64/builtins-mips64.cc',
+            'mips64/codegen-mips64.cc',
+            'mips64/codegen-mips64.h',
+            'mips64/code-stubs-mips64.cc',
+            'mips64/code-stubs-mips64.h',
+            'mips64/constants-mips64.cc',
+            'mips64/constants-mips64.h',
+            'mips64/cpu-mips64.cc',
+            'mips64/deoptimizer-mips64.cc',
+            'mips64/disasm-mips64.cc',
+            'mips64/frames-mips64.cc',
+            'mips64/frames-mips64.h',
+            'mips64/interface-descriptors-mips64.cc',
+            'mips64/macro-assembler-mips64.cc',
+            'mips64/macro-assembler-mips64.h',
+            'mips64/simulator-mips64.cc',
+            'mips64/simulator-mips64.h',
+            'compiler/mips64/code-generator-mips64.cc',
+            'compiler/mips64/instruction-codes-mips64.h',
+            'compiler/mips64/instruction-scheduler-mips64.cc',
+            'compiler/mips64/instruction-selector-mips64.cc',
+            'crankshaft/mips64/lithium-codegen-mips64.cc',
+            'crankshaft/mips64/lithium-codegen-mips64.h',
+            'crankshaft/mips64/lithium-gap-resolver-mips64.cc',
+            'crankshaft/mips64/lithium-gap-resolver-mips64.h',
+            'crankshaft/mips64/lithium-mips64.cc',
+            'crankshaft/mips64/lithium-mips64.h',
+            'debug/mips64/debug-mips64.cc',
+            'full-codegen/mips64/full-codegen-mips64.cc',
+            'ic/mips64/access-compiler-mips64.cc',
+            'ic/mips64/handler-compiler-mips64.cc',
+            'ic/mips64/ic-mips64.cc',
+            'ic/mips64/ic-compiler-mips64.cc',
+            'ic/mips64/stub-cache-mips64.cc',
+            'regexp/mips64/regexp-macro-assembler-mips64.cc',
+            'regexp/mips64/regexp-macro-assembler-mips64.h',
+          ],
+        }],
+        ['v8_target_arch=="x64" or v8_target_arch=="x32"', {
+          'sources': [  ### gcmole(arch:x64) ###
+            'crankshaft/x64/lithium-codegen-x64.cc',
+            'crankshaft/x64/lithium-codegen-x64.h',
+            'crankshaft/x64/lithium-gap-resolver-x64.cc',
+            'crankshaft/x64/lithium-gap-resolver-x64.h',
+            'crankshaft/x64/lithium-x64.cc',
+            'crankshaft/x64/lithium-x64.h',
+            'x64/assembler-x64-inl.h',
+            'x64/assembler-x64.cc',
+            'x64/assembler-x64.h',
+            'x64/builtins-x64.cc',
+            'x64/code-stubs-x64.cc',
+            'x64/code-stubs-x64.h',
+            'x64/codegen-x64.cc',
+            'x64/codegen-x64.h',
+            'x64/cpu-x64.cc',
+            'x64/deoptimizer-x64.cc',
+            'x64/disasm-x64.cc',
+            'x64/frames-x64.cc',
+            'x64/frames-x64.h',
+            'x64/interface-descriptors-x64.cc',
+            'x64/macro-assembler-x64.cc',
+            'x64/macro-assembler-x64.h',
+            'debug/x64/debug-x64.cc',
+            'full-codegen/x64/full-codegen-x64.cc',
+            'ic/x64/access-compiler-x64.cc',
+            'ic/x64/handler-compiler-x64.cc',
+            'ic/x64/ic-x64.cc',
+            'ic/x64/ic-compiler-x64.cc',
+            'ic/x64/stub-cache-x64.cc',
+            'regexp/x64/regexp-macro-assembler-x64.cc',
+            'regexp/x64/regexp-macro-assembler-x64.h',
+          ],
+        }],
+        ['v8_target_arch=="x64"', {
+          'sources': [
+            'compiler/x64/code-generator-x64.cc',
+            'compiler/x64/instruction-codes-x64.h',
+            'compiler/x64/instruction-scheduler-x64.cc',
+            'compiler/x64/instruction-selector-x64.cc',
+          ],
+        }],
+        ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', {
+          'sources': [  ### gcmole(arch:ppc) ###
+            'compiler/ppc/code-generator-ppc.cc',
+            'compiler/ppc/instruction-codes-ppc.h',
+            'compiler/ppc/instruction-scheduler-ppc.cc',
+            'compiler/ppc/instruction-selector-ppc.cc',
+            'crankshaft/ppc/lithium-ppc.cc',
+            'crankshaft/ppc/lithium-ppc.h',
+            'crankshaft/ppc/lithium-codegen-ppc.cc',
+            'crankshaft/ppc/lithium-codegen-ppc.h',
+            'crankshaft/ppc/lithium-gap-resolver-ppc.cc',
+            'crankshaft/ppc/lithium-gap-resolver-ppc.h',
+            'debug/ppc/debug-ppc.cc',
+            'full-codegen/ppc/full-codegen-ppc.cc',
+            'ic/ppc/access-compiler-ppc.cc',
+            'ic/ppc/handler-compiler-ppc.cc',
+            'ic/ppc/ic-ppc.cc',
+            'ic/ppc/ic-compiler-ppc.cc',
+            'ic/ppc/stub-cache-ppc.cc',
+            'ppc/assembler-ppc-inl.h',
+            'ppc/assembler-ppc.cc',
+            'ppc/assembler-ppc.h',
+            'ppc/builtins-ppc.cc',
+            'ppc/code-stubs-ppc.cc',
+            'ppc/code-stubs-ppc.h',
+            'ppc/codegen-ppc.cc',
+            'ppc/codegen-ppc.h',
+            'ppc/constants-ppc.h',
+            'ppc/constants-ppc.cc',
+            'ppc/cpu-ppc.cc',
+            'ppc/deoptimizer-ppc.cc',
+            'ppc/disasm-ppc.cc',
+            'ppc/frames-ppc.cc',
+            'ppc/frames-ppc.h',
+            'ppc/interface-descriptors-ppc.cc',
+            'ppc/macro-assembler-ppc.cc',
+            'ppc/macro-assembler-ppc.h',
+            'ppc/simulator-ppc.cc',
+            'ppc/simulator-ppc.h',
+            'regexp/ppc/regexp-macro-assembler-ppc.cc',
+            'regexp/ppc/regexp-macro-assembler-ppc.h',
+          ],
+        }],
+        ['v8_target_arch=="s390" or v8_target_arch=="s390x"', {
+          'sources': [  ### gcmole(arch:s390) ###
+            'compiler/s390/code-generator-s390.cc',
+            'compiler/s390/instruction-codes-s390.h',
+            'compiler/s390/instruction-scheduler-s390.cc',
+            'compiler/s390/instruction-selector-s390.cc',
+            'crankshaft/s390/lithium-codegen-s390.cc',
+            'crankshaft/s390/lithium-codegen-s390.h',
+            'crankshaft/s390/lithium-gap-resolver-s390.cc',
+            'crankshaft/s390/lithium-gap-resolver-s390.h',
+            'crankshaft/s390/lithium-s390.cc',
+            'crankshaft/s390/lithium-s390.h',
+            'debug/s390/debug-s390.cc',
+            'full-codegen/s390/full-codegen-s390.cc',
+            'ic/s390/access-compiler-s390.cc',
+            'ic/s390/handler-compiler-s390.cc',
+            'ic/s390/ic-compiler-s390.cc',
+            'ic/s390/ic-s390.cc',
+            'ic/s390/stub-cache-s390.cc',
+            'regexp/s390/regexp-macro-assembler-s390.cc',
+            'regexp/s390/regexp-macro-assembler-s390.h',
+            's390/assembler-s390.cc',
+            's390/assembler-s390.h',
+            's390/assembler-s390-inl.h',
+            's390/builtins-s390.cc',
+            's390/codegen-s390.cc',
+            's390/codegen-s390.h',
+            's390/code-stubs-s390.cc',
+            's390/code-stubs-s390.h',
+            's390/constants-s390.cc',
+            's390/constants-s390.h',
+            's390/cpu-s390.cc',
+            's390/deoptimizer-s390.cc',
+            's390/disasm-s390.cc',
+            's390/frames-s390.cc',
+            's390/frames-s390.h',
+            's390/interface-descriptors-s390.cc',
+            's390/macro-assembler-s390.cc',
+            's390/macro-assembler-s390.h',
+            's390/simulator-s390.cc',
+            's390/simulator-s390.h',
+          ],
+        }],
+        ['OS=="win"', {
+          'variables': {
+            'gyp_generators': '<!(echo $GYP_GENERATORS)',
+          },
+          'msvs_disabled_warnings': [4351, 4355, 4800],
+          # When building Official, the .lib is too large and exceeds the 2G
+          # limit. This breaks it into multiple pieces to avoid the limit.
+          # See http://crbug.com/485155.
+          'msvs_shard': 4,
+        }],
+        ['component=="shared_library"', {
+          'defines': [
+            'BUILDING_V8_SHARED',
+            'V8_SHARED',
+          ],
+        }],
+        ['v8_postmortem_support=="true"', {
+          'sources': [
+            '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
+          ]
+        }],
+        ['v8_enable_i18n_support==1', {
+          'dependencies': [
+            '<(icu_gyp_path):icui18n',
+            '<(icu_gyp_path):icuuc',
+          ],
+          'conditions': [
+            ['icu_use_data_file_flag==1', {
+              'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE'],
+            }, { # else icu_use_data_file_flag !=1
+              'conditions': [
+                ['OS=="win"', {
+                  'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED'],
+                }, {
+                  'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC'],
+                }],
+              ],
+            }],
+          ],
+        }, {  # v8_enable_i18n_support==0
+          'sources!': [
+            'i18n.cc',
+            'i18n.h',
+          ],
+        }],
+        ['OS=="win" and v8_enable_i18n_support==1', {
+          'dependencies': [
+            '<(icu_gyp_path):icudata',
+          ],
+        }],
+      ],
+    },
+    {
+      'target_name': 'v8_libbase',
+      'type': 'static_library',
+      'variables': {
+        'optimize': 'max',
+      },
+      'include_dirs+': [
+        '..',
+      ],
+      'sources': [
+        'base/accounting-allocator.cc',
+        'base/accounting-allocator.h',
+        'base/adapters.h',
+        'base/atomic-utils.h',
+        'base/atomicops.h',
+        'base/atomicops_internals_arm64_gcc.h',
+        'base/atomicops_internals_arm_gcc.h',
+        'base/atomicops_internals_atomicword_compat.h',
+        'base/atomicops_internals_mac.h',
+        'base/atomicops_internals_mips_gcc.h',
+        'base/atomicops_internals_mips64_gcc.h',
+        'base/atomicops_internals_portable.h',
+        'base/atomicops_internals_ppc_gcc.h',
+        'base/atomicops_internals_s390_gcc.h',
+        'base/atomicops_internals_tsan.h',
+        'base/atomicops_internals_x86_gcc.cc',
+        'base/atomicops_internals_x86_gcc.h',
+        'base/atomicops_internals_x86_msvc.h',
+        'base/bits.cc',
+        'base/bits.h',
+        'base/build_config.h',
+        'base/compiler-specific.h',
+        'base/cpu.cc',
+        'base/cpu.h',
+        'base/division-by-constant.cc',
+        'base/division-by-constant.h',
+        'base/flags.h',
+        'base/format-macros.h',
+        'base/functional.cc',
+        'base/functional.h',
+        'base/iterator.h',
+        'base/lazy-instance.h',
+        'base/logging.cc',
+        'base/logging.h',
+        'base/macros.h',
+        'base/once.cc',
+        'base/once.h',
+        'base/platform/elapsed-timer.h',
+        'base/platform/time.cc',
+        'base/platform/time.h',
+        'base/platform/condition-variable.cc',
+        'base/platform/condition-variable.h',
+        'base/platform/mutex.cc',
+        'base/platform/mutex.h',
+        'base/platform/platform.h',
+        'base/platform/semaphore.cc',
+        'base/platform/semaphore.h',
+        'base/safe_conversions.h',
+        'base/safe_conversions_impl.h',
+        'base/safe_math.h',
+        'base/safe_math_impl.h',
+        'base/smart-pointers.h',
+        'base/sys-info.cc',
+        'base/sys-info.h',
+        'base/utils/random-number-generator.cc',
+        'base/utils/random-number-generator.h',
+      ],
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+        }, {
+          'toolsets': ['target'],
+        }],
+        ['OS=="linux"', {
+            'conditions': [
+              ['nacl_target_arch=="none"', {
+                'link_settings': {
+                  'libraries': [
+                    '-ldl',
+                    '-lrt'
+                  ],
+                },
+              }, {
+                'defines': [
+                  'V8_LIBRT_NOT_AVAILABLE=1',
+                ],
+              }],
+            ],
+            'sources': [
+              'base/platform/platform-linux.cc',
+              'base/platform/platform-posix.cc'
+            ],
+          }
+        ],
+        ['OS=="android"', {
+            'sources': [
+              'base/platform/platform-posix.cc'
+            ],
+            'link_settings': {
+              'target_conditions': [
+                ['_toolset=="host" and host_os!="mac"', {
+                  # Only include libdl and librt on host builds because they
+                  # are included by default on Android target builds, and we
+                  # don't want to re-include them here since this will change
+                  # library order and break (see crbug.com/469973).
+                  # These libraries do not exist on Mac hosted builds.
+                  'libraries': [
+                    '-ldl',
+                    '-lrt'
+                  ]
+                }]
+              ]
+            },
+            'conditions': [
+              ['host_os=="mac"', {
+                'target_conditions': [
+                  ['_toolset=="host"', {
+                    'sources': [
+                      'base/platform/platform-macos.cc'
+                    ]
+                  }, {
+                    'sources': [
+                      'base/platform/platform-linux.cc'
+                    ]
+                  }],
+                ],
+              }, {
+                'sources': [
+                  'base/platform/platform-linux.cc'
+                ]
+              }],
+            ],
+          },
+        ],
+        ['OS=="qnx"', {
+            'link_settings': {
+              'target_conditions': [
+                ['_toolset=="host" and host_os=="linux"', {
+                  'libraries': [
+                    '-lrt'
+                  ],
+                }],
+                ['_toolset=="target"', {
+                  'libraries': [
+                    '-lbacktrace'
+                  ],
+                }],
+              ],
+            },
+            'sources': [
+              'base/platform/platform-posix.cc',
+              'base/qnx-math.h',
+            ],
+            'target_conditions': [
+              ['_toolset=="host" and host_os=="linux"', {
+                'sources': [
+                  'base/platform/platform-linux.cc'
+                ],
+              }],
+              ['_toolset=="host" and host_os=="mac"', {
+                'sources': [
+                  'base/platform/platform-macos.cc'
+                ],
+              }],
+              ['_toolset=="target"', {
+                'sources': [
+                  'base/platform/platform-qnx.cc'
+                ],
+              }],
+            ],
+          },
+        ],
+        ['OS=="freebsd"', {
+            'link_settings': {
+              'libraries': [
+                '-L/usr/local/lib -lexecinfo',
+            ]},
+            'sources': [
+              'base/platform/platform-freebsd.cc',
+              'base/platform/platform-posix.cc'
+            ],
+          }
+        ],
+        ['OS=="openbsd"', {
+            'link_settings': {
+              'libraries': [
+                '-L/usr/local/lib -lexecinfo',
+            ]},
+            'sources': [
+              'base/platform/platform-openbsd.cc',
+              'base/platform/platform-posix.cc'
+            ],
+          }
+        ],
+        ['OS=="netbsd"', {
+            'link_settings': {
+              'libraries': [
+                '-L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lexecinfo',
+            ]},
+            'sources': [
+              'base/platform/platform-openbsd.cc',
+              'base/platform/platform-posix.cc'
+            ],
+          }
+        ],
+        ['OS=="aix"', {
+          'sources': [
+            'base/platform/platform-aix.cc',
+            'base/platform/platform-posix.cc'
+          ]},
+        ],
+        ['OS=="solaris"', {
+            'link_settings': {
+              'libraries': [
+                '-lnsl -lrt',
+            ]},
+            'sources': [
+              'base/platform/platform-solaris.cc',
+              'base/platform/platform-posix.cc'
+            ],
+          }
+        ],
+        ['OS=="mac"', {
+          'sources': [
+            'base/platform/platform-macos.cc',
+            'base/platform/platform-posix.cc'
+          ]},
+        ],
+        ['OS=="win"', {
+          'defines': [
+            '_CRT_RAND_S'  # for rand_s()
+          ],
+          'variables': {
+            'gyp_generators': '<!(echo $GYP_GENERATORS)',
+          },
+          'conditions': [
+            ['gyp_generators=="make"', {
+              'variables': {
+                'build_env': '<!(uname -o)',
+              },
+              'conditions': [
+                ['build_env=="Cygwin"', {
+                  'sources': [
+                    'base/platform/platform-cygwin.cc',
+                    'base/platform/platform-posix.cc'
+                  ],
+                }, {
+                  'sources': [
+                    'base/platform/platform-win32.cc',
+                    'base/win32-headers.h',
+                  ],
+                }],
+              ],
+              'link_settings':  {
+                'libraries': [ '-lwinmm', '-lws2_32' ],
+              },
+            }, {
+              'sources': [
+                'base/platform/platform-win32.cc',
+                'base/win32-headers.h',
+              ],
+              'msvs_disabled_warnings': [4351, 4355, 4800],
+              'link_settings':  {
+                'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ],
+              },
+            }],
+          ],
+        }],
+      ],
+    },
+    {
+      'target_name': 'v8_libplatform',
+      'type': 'static_library',
+      'variables': {
+        'optimize': 'max',
+      },
+      'dependencies': [
+        'v8_libbase',
+      ],
+      'include_dirs+': [
+        '..',
+        '../include',
+      ],
+      'sources': [
+        '../include/libplatform/libplatform.h',
+        'libplatform/default-platform.cc',
+        'libplatform/default-platform.h',
+        'libplatform/task-queue.cc',
+        'libplatform/task-queue.h',
+        'libplatform/worker-thread.cc',
+        'libplatform/worker-thread.h',
+      ],
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+        }, {
+          'toolsets': ['target'],
+        }],
+      ],
+      'direct_dependent_settings': {
+        'include_dirs': [
+          '../include',
+        ],
+      },
+    },
+    {
+      'target_name': 'natives_blob',
+      'type': 'none',
+      'conditions': [
+        [ 'v8_use_external_startup_data==1', {
+          'conditions': [
+            ['want_separate_host_toolset==1', {
+              'dependencies': ['js2c#host'],
+            }, {
+              'dependencies': ['js2c'],
+            }],
+          ],
+          'actions': [{
+            'action_name': 'concatenate_natives_blob',
+            'inputs': [
+              '../tools/concatenate-files.py',
+              '<(SHARED_INTERMEDIATE_DIR)/libraries.bin',
+              '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental.bin',
+              '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin',
+              '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental-extras.bin',
+            ],
+            'conditions': [
+              ['want_separate_host_toolset==1', {
+                'target_conditions': [
+                  ['_toolset=="host"', {
+                    'outputs': [
+                      '<(PRODUCT_DIR)/natives_blob_host.bin',
+                    ],
+                    'action': [
+                      'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin'
+                    ],
+                  }, {
+                    'outputs': [
+                      '<(PRODUCT_DIR)/natives_blob.bin',
+                    ],
+                    'action': [
+                      'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
+                    ],
+                  }],
+                ],
+              }, {
+                'outputs': [
+                  '<(PRODUCT_DIR)/natives_blob.bin',
+                ],
+                'action': [
+                  'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
+                ],
+              }],
+            ],
+          }],
+        }],
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+        }, {
+          'toolsets': ['target'],
+        }],
+      ]
+    },
+    {
+      'target_name': 'js2c',
+      'type': 'none',
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host'],
+        }, {
+          'toolsets': ['target'],
+        }],
+      ],
+      'variables': {
+        'library_files': [
+          'js/macros.py',
+          'messages.h',
+          'js/prologue.js',
+          'js/runtime.js',
+          'js/v8natives.js',
+          'js/symbol.js',
+          'js/array.js',
+          'js/string.js',
+          'js/uri.js',
+          'js/math.js',
+          'third_party/fdlibm/fdlibm.js',
+          'js/regexp.js',
+          'js/arraybuffer.js',
+          'js/typedarray.js',
+          'js/iterator-prototype.js',
+          'js/collection.js',
+          'js/weak-collection.js',
+          'js/collection-iterator.js',
+          'js/promise.js',
+          'js/messages.js',
+          'js/json.js',
+          'js/array-iterator.js',
+          'js/string-iterator.js',
+          'js/templates.js',
+          'js/spread.js',
+          'js/proxy.js',
+          'debug/mirrors.js',
+          'debug/debug.js',
+          'debug/liveedit.js',
+        ],
+        'experimental_library_files': [
+          'js/macros.py',
+          'messages.h',
+          'js/harmony-atomics.js',
+          'js/harmony-regexp-exec.js',
+          'js/harmony-sharedarraybuffer.js',
+          'js/harmony-simd.js',
+          'js/harmony-species.js',
+          'js/harmony-unicode-regexps.js',
+          'js/harmony-string-padding.js',
+          'js/promise-extra.js',
+          'js/harmony-async-await.js'
+        ],
+        'libraries_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries.bin',
+        'libraries_experimental_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental.bin',
+        'libraries_extras_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin',
+        'libraries_experimental_extras_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental-extras.bin',
+        'conditions': [
+          ['v8_enable_i18n_support==1', {
+            'library_files': ['js/i18n.js'],
+            'experimental_library_files': [
+              'js/icu-case-mapping.js',
+              'js/intl-extra.js',
+             ],
+          }],
+        ],
+      },
+      'actions': [
+        {
+          'action_name': 'js2c',
+          'inputs': [
+            '../tools/js2c.py',
+            '<@(library_files)',
+          ],
+          'outputs': ['<(SHARED_INTERMEDIATE_DIR)/libraries.cc'],
+          'action': [
+            'python',
+            '../tools/js2c.py',
+            '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
+            'CORE',
+            '<@(library_files)',
+          ],
+        },
+        {
+          'action_name': 'js2c_bin',
+          'inputs': [
+            '../tools/js2c.py',
+            '<@(library_files)',
+          ],
+          'outputs': ['<@(libraries_bin_file)'],
+          'action': [
+            'python',
+            '../tools/js2c.py',
+            '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
+            'CORE',
+            '<@(library_files)',
+            '--startup_blob', '<@(libraries_bin_file)',
+            '--nojs',
+          ],
+        },
+        {
+          'action_name': 'js2c_experimental',
+          'inputs': [
+            '../tools/js2c.py',
+            '<@(experimental_library_files)',
+          ],
+          'outputs': ['<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc'],
+          'action': [
+            'python',
+            '../tools/js2c.py',
+            '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
+            'EXPERIMENTAL',
+            '<@(experimental_library_files)',
+          ],
+        },
+        {
+          'action_name': 'js2c_experimental_bin',
+          'inputs': [
+            '../tools/js2c.py',
+            '<@(experimental_library_files)',
+          ],
+          'outputs': ['<@(libraries_experimental_bin_file)'],
+          'action': [
+            'python',
+            '../tools/js2c.py',
+            '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
+            'EXPERIMENTAL',
+            '<@(experimental_library_files)',
+            '--startup_blob', '<@(libraries_experimental_bin_file)',
+            '--nojs',
+          ],
+        },
+        {
+          'action_name': 'js2c_extras',
+          'inputs': [
+            '../tools/js2c.py',
+            '<@(v8_extra_library_files)',
+          ],
+          'outputs': ['<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc'],
+          'action': [
+            'python',
+            '../tools/js2c.py',
+            '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
+            'EXTRAS',
+            '<@(v8_extra_library_files)',
+          ],
+        },
+        {
+          'action_name': 'js2c_extras_bin',
+          'inputs': [
+            '../tools/js2c.py',
+            '<@(v8_extra_library_files)',
+          ],
+          'outputs': ['<@(libraries_extras_bin_file)'],
+          'action': [
+            'python',
+            '../tools/js2c.py',
+            '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
+            'EXTRAS',
+            '<@(v8_extra_library_files)',
+            '--startup_blob', '<@(libraries_extras_bin_file)',
+            '--nojs',
+          ],
+        },
+        {
+          'action_name': 'js2c_experimental_extras',
+          'inputs': [
+            '../tools/js2c.py',
+            '<@(v8_experimental_extra_library_files)',
+          ],
+          'outputs': [
+            '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
+          ],
+          'action': [
+            'python',
+            '../tools/js2c.py',
+            '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
+            'EXPERIMENTAL_EXTRAS',
+            '<@(v8_experimental_extra_library_files)',
+          ],
+        },
+        {
+          'action_name': 'js2c_experimental_extras_bin',
+          'inputs': [
+            '../tools/js2c.py',
+            '<@(v8_experimental_extra_library_files)',
+          ],
+          'outputs': ['<@(libraries_experimental_extras_bin_file)'],
+          'action': [
+            'python',
+            '../tools/js2c.py',
+            '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
+            'EXPERIMENTAL_EXTRAS',
+            '<@(v8_experimental_extra_library_files)',
+            '--startup_blob', '<@(libraries_experimental_extras_bin_file)',
+            '--nojs',
+          ],
+        },
+      ],
+    },
+    {
+      'target_name': 'postmortem-metadata',
+      'type': 'none',
+      'variables': {
+        'heapobject_files': [
+            'objects.h',
+            'objects-inl.h',
+        ],
+      },
+      'actions': [
+          {
+            'action_name': 'gen-postmortem-metadata',
+            'inputs': [
+              '../tools/gen-postmortem-metadata.py',
+              '<@(heapobject_files)',
+            ],
+            'outputs': [
+              '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
+            ],
+            'action': [
+              'python',
+              '../tools/gen-postmortem-metadata.py',
+              '<@(_outputs)',
+              '<@(heapobject_files)'
+            ]
+          }
+        ]
+    },
+    {
+      'target_name': 'mksnapshot',
+      'type': 'executable',
+      'dependencies': ['v8_base', 'v8_nosnapshot', 'v8_libplatform'],
+      'include_dirs+': [
+        '..',
+      ],
+      'sources': [
+        'snapshot/mksnapshot.cc',
+      ],
+      'conditions': [
+        ['v8_enable_i18n_support==1', {
+          'dependencies': [
+            '<(icu_gyp_path):icui18n',
+            '<(icu_gyp_path):icuuc',
+          ]
+        }],
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host'],
+        }, {
+          'toolsets': ['target'],
+        }],
+      ],
+    },
+  ],
+}
diff --git a/src/v8.h b/src/v8.h
index 6016ef1..a1b18b2 100644
--- a/src/v8.h
+++ b/src/v8.h
@@ -21,7 +21,7 @@
   // Report process out of memory. Implementation found in api.cc.
   // This function will not return, but will terminate the execution.
   static void FatalProcessOutOfMemory(const char* location,
-                                      bool take_snapshot = false);
+                                      bool is_heap_oom = false);
 
   static void InitializePlatform(v8::Platform* platform);
   static void ShutdownPlatform();
diff --git a/src/vector.h b/src/vector.h
index e4637c9..d120dfc 100644
--- a/src/vector.h
+++ b/src/vector.h
@@ -24,6 +24,9 @@
     DCHECK(length == 0 || (length > 0 && data != NULL));
   }
 
+  template <int N>
+  explicit Vector(T (&arr)[N]) : start_(arr), length_(N) {}
+
   static Vector<T> New(int length) {
     return Vector<T>(NewArray<T>(length), length);
   }
@@ -201,6 +204,10 @@
   return Vector<char>(data, (length < max) ? length : max);
 }
 
+template <typename T, int N>
+inline Vector<T> ArrayVector(T (&arr)[N]) {
+  return Vector<T>(arr);
+}
 
 }  // namespace internal
 }  // namespace v8
diff --git a/src/vm-state-inl.h b/src/vm-state-inl.h
index c8bd4e8..35b69a1 100644
--- a/src/vm-state-inl.h
+++ b/src/vm-state-inl.h
@@ -63,19 +63,11 @@
   scope_address_ = Simulator::current(isolate)->get_sp();
 #endif
   isolate_->set_external_callback_scope(this);
-  if (FLAG_runtime_call_stats) {
-    RuntimeCallStats* stats = isolate->counters()->runtime_call_stats();
-    timer_.Initialize(&stats->ExternalCallback, stats->current_timer());
-    stats->Enter(&timer_);
-  }
   TRACE_EVENT_BEGIN0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"),
                      "V8.ExternalCallback");
 }
 
 ExternalCallbackScope::~ExternalCallbackScope() {
-  if (FLAG_runtime_call_stats) {
-    isolate_->counters()->runtime_call_stats()->Leave(&timer_);
-  }
   isolate_->set_external_callback_scope(previous_scope_);
   TRACE_EVENT_END0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"),
                    "V8.ExternalCallback");
diff --git a/src/vm-state.h b/src/vm-state.h
index 3f8d381..29cbf39 100644
--- a/src/vm-state.h
+++ b/src/vm-state.h
@@ -49,7 +49,6 @@
   Isolate* isolate_;
   Address callback_;
   ExternalCallbackScope* previous_scope_;
-  RuntimeCallTimer timer_;
 #ifdef USE_SIMULATOR
   Address scope_address_;
 #endif
diff --git a/src/wasm/asm-wasm-builder.cc b/src/wasm/asm-wasm-builder.cc
index d16d3a8..325058c 100644
--- a/src/wasm/asm-wasm-builder.cc
+++ b/src/wasm/asm-wasm-builder.cc
@@ -11,6 +11,7 @@
 #include <math.h>
 
 #include "src/wasm/asm-wasm-builder.h"
+#include "src/wasm/switch-logic.h"
 #include "src/wasm/wasm-macro-gen.h"
 #include "src/wasm/wasm-opcodes.h"
 
@@ -30,6 +31,7 @@
     if (HasStackOverflow()) return; \
   } while (false)
 
+enum AsmScope { kModuleScope, kInitScope, kFuncScope, kExportScope };
 
 class AsmWasmBuilderImpl : public AstVisitor {
  public:
@@ -43,9 +45,7 @@
         global_variables_(HashMap::PointersMatch,
                           ZoneHashMap::kDefaultHashMapCapacity,
                           ZoneAllocationPolicy(zone)),
-        in_function_(false),
-        is_set_op_(false),
-        marking_exported(false),
+        scope_(kModuleScope),
         builder_(new (zone) WasmModuleBuilder(zone)),
         current_function_builder_(nullptr),
         literal_(literal),
@@ -55,20 +55,21 @@
         typer_(typer),
         cache_(TypeCache::Get()),
         breakable_blocks_(zone),
-        block_size_(0),
         init_function_index_(0),
         next_table_index_(0),
         function_tables_(HashMap::PointersMatch,
                          ZoneHashMap::kDefaultHashMapCapacity,
                          ZoneAllocationPolicy(zone)),
-        imported_function_table_(this) {
+        imported_function_table_(this),
+        bounds_(typer->bounds()) {
     InitializeAstVisitor(isolate);
   }
 
   void InitializeInitFunction() {
     init_function_index_ = builder_->AddFunction();
+    FunctionSig::Builder b(zone(), 0, 0);
     current_function_builder_ = builder_->FunctionAt(init_function_index_);
-    current_function_builder_->ReturnType(kAstStmt);
+    current_function_builder_->SetSignature(b.Build());
     builder_->MarkStartFunction(init_function_index_);
     current_function_builder_ = nullptr;
   }
@@ -81,13 +82,13 @@
   void VisitVariableDeclaration(VariableDeclaration* decl) {}
 
   void VisitFunctionDeclaration(FunctionDeclaration* decl) {
-    DCHECK(!in_function_);
+    DCHECK_EQ(kModuleScope, scope_);
     DCHECK_NULL(current_function_builder_);
-    uint16_t index = LookupOrInsertFunction(decl->proxy()->var());
+    uint32_t index = LookupOrInsertFunction(decl->proxy()->var());
     current_function_builder_ = builder_->FunctionAt(index);
-    in_function_ = true;
+    scope_ = kFuncScope;
     RECURSE(Visit(decl->fun()));
-    in_function_ = false;
+    scope_ = kModuleScope;
     current_function_builder_ = nullptr;
     local_variables_.Clear();
   }
@@ -99,6 +100,10 @@
   void VisitStatements(ZoneList<Statement*>* stmts) {
     for (int i = 0; i < stmts->length(); ++i) {
       Statement* stmt = stmts->at(i);
+      ExpressionStatement* e = stmt->AsExpressionStatement();
+      if (e != nullptr && e->expression()->IsUndefinedLiteral()) {
+        continue;
+      }
       RECURSE(Visit(stmt));
       if (stmt->IsJump()) break;
     }
@@ -115,12 +120,10 @@
         }
       }
     }
-    if (in_function_) {
+    if (scope_ == kFuncScope) {
       BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprBlock,
-                           false,
-                           static_cast<byte>(stmt->statements()->length()));
+                           false);
       RECURSE(VisitStatements(stmt->statements()));
-      DCHECK(block_size_ >= 0);
     } else {
       RECURSE(VisitStatements(stmt->statements()));
     }
@@ -128,25 +131,17 @@
 
   class BlockVisitor {
    private:
-    int prev_block_size_;
-    uint32_t index_;
     AsmWasmBuilderImpl* builder_;
 
    public:
     BlockVisitor(AsmWasmBuilderImpl* builder, BreakableStatement* stmt,
-                 WasmOpcode opcode, bool is_loop, int initial_block_size)
+                 WasmOpcode opcode, bool is_loop)
         : builder_(builder) {
       builder_->breakable_blocks_.push_back(std::make_pair(stmt, is_loop));
       builder_->current_function_builder_->Emit(opcode);
-      index_ =
-          builder_->current_function_builder_->EmitEditableVarIntImmediate();
-      prev_block_size_ = builder_->block_size_;
-      builder_->block_size_ = initial_block_size;
     }
     ~BlockVisitor() {
-      builder_->current_function_builder_->EditVarIntImmediate(
-          index_, builder_->block_size_);
-      builder_->block_size_ = prev_block_size_;
+      builder_->current_function_builder_->Emit(kExprEnd);
       builder_->breakable_blocks_.pop_back();
     }
   };
@@ -160,25 +155,24 @@
   void VisitEmptyParentheses(EmptyParentheses* paren) { UNREACHABLE(); }
 
   void VisitIfStatement(IfStatement* stmt) {
-    DCHECK(in_function_);
-    if (stmt->HasElseStatement()) {
-      current_function_builder_->Emit(kExprIfElse);
-    } else {
-      current_function_builder_->Emit(kExprIf);
-    }
+    DCHECK_EQ(kFuncScope, scope_);
     RECURSE(Visit(stmt->condition()));
+    current_function_builder_->Emit(kExprIf);
+    // WASM ifs come with implement blocks for both arms.
+    breakable_blocks_.push_back(std::make_pair(nullptr, false));
     if (stmt->HasThenStatement()) {
       RECURSE(Visit(stmt->then_statement()));
-    } else {
-      current_function_builder_->Emit(kExprNop);
     }
     if (stmt->HasElseStatement()) {
+      current_function_builder_->Emit(kExprElse);
       RECURSE(Visit(stmt->else_statement()));
     }
+    current_function_builder_->Emit(kExprEnd);
+    breakable_blocks_.pop_back();
   }
 
   void VisitContinueStatement(ContinueStatement* stmt) {
-    DCHECK(in_function_);
+    DCHECK_EQ(kFuncScope, scope_);
     DCHECK_NOT_NULL(stmt->target());
     int i = static_cast<int>(breakable_blocks_.size()) - 1;
     int block_distance = 0;
@@ -194,12 +188,12 @@
       }
     }
     DCHECK(i >= 0);
-    current_function_builder_->EmitWithVarInt(kExprBr, block_distance);
-    current_function_builder_->Emit(kExprNop);
+    current_function_builder_->EmitWithU8(kExprBr, ARITY_0);
+    current_function_builder_->EmitVarInt(block_distance);
   }
 
   void VisitBreakStatement(BreakStatement* stmt) {
-    DCHECK(in_function_);
+    DCHECK_EQ(kFuncScope, scope_);
     DCHECK_NOT_NULL(stmt->target());
     int i = static_cast<int>(breakable_blocks_.size()) - 1;
     int block_distance = 0;
@@ -217,123 +211,191 @@
       }
     }
     DCHECK(i >= 0);
-    current_function_builder_->EmitWithVarInt(kExprBr, block_distance);
-    current_function_builder_->Emit(kExprNop);
+    current_function_builder_->EmitWithU8(kExprBr, ARITY_0);
+    current_function_builder_->EmitVarInt(block_distance);
   }
 
   void VisitReturnStatement(ReturnStatement* stmt) {
-    if (in_function_) {
-      current_function_builder_->Emit(kExprReturn);
+    if (scope_ == kModuleScope) {
+      scope_ = kExportScope;
+      RECURSE(Visit(stmt->expression()));
+      scope_ = kModuleScope;
+    } else if (scope_ == kFuncScope) {
+      RECURSE(Visit(stmt->expression()));
+      uint8_t arity =
+          TypeOf(stmt->expression()) == kAstStmt ? ARITY_0 : ARITY_1;
+      current_function_builder_->EmitWithU8(kExprReturn, arity);
     } else {
-      marking_exported = true;
-    }
-    RECURSE(Visit(stmt->expression()));
-    if (!in_function_) {
-      marking_exported = false;
+      UNREACHABLE();
     }
   }
 
   void VisitWithStatement(WithStatement* stmt) { UNREACHABLE(); }
 
-  void SetLocalTo(uint16_t index, int value) {
-    current_function_builder_->Emit(kExprSetLocal);
-    AddLeb128(index, true);
-    // TODO(bradnelson): variable size
-    byte code[] = {WASM_I32V(value)};
-    current_function_builder_->EmitCode(code, sizeof(code));
-    block_size_++;
-  }
+  void HandleCase(CaseNode* node,
+                  const ZoneMap<int, unsigned int>& case_to_block,
+                  VariableProxy* tag, int default_block, int if_depth) {
+    int prev_if_depth = if_depth;
+    if (node->left != nullptr) {
+      VisitVariableProxy(tag);
+      current_function_builder_->EmitI32Const(node->begin);
+      current_function_builder_->Emit(kExprI32LtS);
+      current_function_builder_->Emit(kExprIf);
+      if_depth++;
+      breakable_blocks_.push_back(std::make_pair(nullptr, false));
+      HandleCase(node->left, case_to_block, tag, default_block, if_depth);
+      current_function_builder_->Emit(kExprElse);
+    }
+    if (node->right != nullptr) {
+      VisitVariableProxy(tag);
+      current_function_builder_->EmitI32Const(node->end);
+      current_function_builder_->Emit(kExprI32GtS);
+      current_function_builder_->Emit(kExprIf);
+      if_depth++;
+      breakable_blocks_.push_back(std::make_pair(nullptr, false));
+      HandleCase(node->right, case_to_block, tag, default_block, if_depth);
+      current_function_builder_->Emit(kExprElse);
+    }
+    if (node->begin == node->end) {
+      VisitVariableProxy(tag);
+      current_function_builder_->EmitI32Const(node->begin);
+      current_function_builder_->Emit(kExprI32Eq);
+      current_function_builder_->Emit(kExprIf);
+      DCHECK(case_to_block.find(node->begin) != case_to_block.end());
+      current_function_builder_->EmitWithU8(kExprBr, ARITY_0);
+      current_function_builder_->EmitVarInt(1 + if_depth +
+                                            case_to_block.at(node->begin));
+      current_function_builder_->Emit(kExprEnd);
+    } else {
+      if (node->begin != 0) {
+        VisitVariableProxy(tag);
+        current_function_builder_->EmitI32Const(node->begin);
+        current_function_builder_->Emit(kExprI32Sub);
+      } else {
+        VisitVariableProxy(tag);
+      }
+      current_function_builder_->EmitWithU8(kExprBrTable, ARITY_0);
+      current_function_builder_->EmitVarInt(node->end - node->begin + 1);
+      for (int v = node->begin; v <= node->end; v++) {
+        if (case_to_block.find(v) != case_to_block.end()) {
+          byte break_code[] = {BR_TARGET(if_depth + case_to_block.at(v))};
+          current_function_builder_->EmitCode(break_code, sizeof(break_code));
+        } else {
+          byte break_code[] = {BR_TARGET(if_depth + default_block)};
+          current_function_builder_->EmitCode(break_code, sizeof(break_code));
+        }
+        if (v == kMaxInt) {
+          break;
+        }
+      }
+      byte break_code[] = {BR_TARGET(if_depth + default_block)};
+      current_function_builder_->EmitCode(break_code, sizeof(break_code));
+    }
 
-  void CompileCase(CaseClause* clause, uint16_t fall_through,
-                   VariableProxy* tag) {
-    Literal* label = clause->label()->AsLiteral();
-    DCHECK_NOT_NULL(label);
-    block_size_++;
-    current_function_builder_->Emit(kExprIf);
-    current_function_builder_->Emit(kExprI32Ior);
-    current_function_builder_->Emit(kExprI32Eq);
-    VisitVariableProxy(tag);
-    VisitLiteral(label);
-    current_function_builder_->Emit(kExprGetLocal);
-    AddLeb128(fall_through, true);
-    BlockVisitor visitor(this, nullptr, kExprBlock, false, 0);
-    SetLocalTo(fall_through, 1);
-    ZoneList<Statement*>* stmts = clause->statements();
-    block_size_ += stmts->length();
-    RECURSE(VisitStatements(stmts));
+    while (if_depth-- != prev_if_depth) {
+      breakable_blocks_.pop_back();
+      current_function_builder_->Emit(kExprEnd);
+    }
   }
 
   void VisitSwitchStatement(SwitchStatement* stmt) {
     VariableProxy* tag = stmt->tag()->AsVariableProxy();
     DCHECK_NOT_NULL(tag);
-    BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprBlock, false,
-                         0);
-    uint16_t fall_through = current_function_builder_->AddLocal(kAstI32);
-    SetLocalTo(fall_through, 0);
-
     ZoneList<CaseClause*>* clauses = stmt->cases();
-    for (int i = 0; i < clauses->length(); ++i) {
+    int case_count = clauses->length();
+    if (case_count == 0) {
+      return;
+    }
+    BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprBlock, false);
+    ZoneVector<BlockVisitor*> blocks(zone_);
+    ZoneVector<int32_t> cases(zone_);
+    ZoneMap<int, unsigned int> case_to_block(zone_);
+    bool has_default = false;
+    for (int i = case_count - 1; i >= 0; i--) {
       CaseClause* clause = clauses->at(i);
+      blocks.push_back(new BlockVisitor(this, nullptr, kExprBlock, false));
       if (!clause->is_default()) {
-        CompileCase(clause, fall_through, tag);
+        Literal* label = clause->label()->AsLiteral();
+        Handle<Object> value = label->value();
+        DCHECK(value->IsNumber() &&
+               bounds_->get(label).upper->Is(cache_.kAsmSigned));
+        int32_t label_value;
+        if (!value->ToInt32(&label_value)) {
+          UNREACHABLE();
+        }
+        case_to_block[label_value] = i;
+        cases.push_back(label_value);
       } else {
-        ZoneList<Statement*>* stmts = clause->statements();
-        block_size_ += stmts->length();
-        RECURSE(VisitStatements(stmts));
+        DCHECK_EQ(i, case_count - 1);
+        has_default = true;
       }
     }
+    if (!has_default || case_count > 1) {
+      int default_block = has_default ? case_count - 1 : case_count;
+      BlockVisitor switch_logic_block(this, nullptr, kExprBlock, false);
+      CaseNode* root = OrderCases(&cases, zone_);
+      HandleCase(root, case_to_block, tag, default_block, 0);
+      if (root->left != nullptr || root->right != nullptr ||
+          root->begin == root->end) {
+        current_function_builder_->EmitWithU8(kExprBr, ARITY_0);
+        current_function_builder_->EmitVarInt(default_block);
+      }
+    }
+    for (int i = 0; i < case_count; i++) {
+      CaseClause* clause = clauses->at(i);
+      RECURSE(VisitStatements(clause->statements()));
+      BlockVisitor* v = blocks.at(case_count - i - 1);
+      blocks.pop_back();
+      delete v;
+    }
   }
 
   void VisitCaseClause(CaseClause* clause) { UNREACHABLE(); }
 
   void VisitDoWhileStatement(DoWhileStatement* stmt) {
-    DCHECK(in_function_);
-    BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true,
-                         2);
+    DCHECK_EQ(kFuncScope, scope_);
+    BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true);
     RECURSE(Visit(stmt->body()));
-    current_function_builder_->Emit(kExprIf);
     RECURSE(Visit(stmt->cond()));
-    current_function_builder_->EmitWithVarInt(kExprBr, 0);
-    current_function_builder_->Emit(kExprNop);
+    current_function_builder_->Emit(kExprIf);
+    current_function_builder_->EmitWithU8U8(kExprBr, ARITY_0, 1);
+    current_function_builder_->Emit(kExprEnd);
   }
 
   void VisitWhileStatement(WhileStatement* stmt) {
-    DCHECK(in_function_);
-    BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true,
-                         1);
-    current_function_builder_->Emit(kExprIf);
+    DCHECK_EQ(kFuncScope, scope_);
+    BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true);
     RECURSE(Visit(stmt->cond()));
-    current_function_builder_->EmitWithVarInt(kExprBr, 0);
+    breakable_blocks_.push_back(std::make_pair(nullptr, false));
+    current_function_builder_->Emit(kExprIf);
     RECURSE(Visit(stmt->body()));
+    current_function_builder_->EmitWithU8U8(kExprBr, ARITY_0, 1);
+    current_function_builder_->Emit(kExprEnd);
+    breakable_blocks_.pop_back();
   }
 
   void VisitForStatement(ForStatement* stmt) {
-    DCHECK(in_function_);
+    DCHECK_EQ(kFuncScope, scope_);
     if (stmt->init() != nullptr) {
-      block_size_++;
       RECURSE(Visit(stmt->init()));
     }
-    BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true,
-                         0);
+    BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true);
     if (stmt->cond() != nullptr) {
-      block_size_++;
-      current_function_builder_->Emit(kExprIf);
-      current_function_builder_->Emit(kExprI32Eqz);
       RECURSE(Visit(stmt->cond()));
-      current_function_builder_->EmitWithVarInt(kExprBr, 1);
+      current_function_builder_->Emit(kExprI32Eqz);
+      current_function_builder_->Emit(kExprIf);
       current_function_builder_->Emit(kExprNop);
+      current_function_builder_->EmitWithU8U8(kExprBr, ARITY_0, 2);
+      current_function_builder_->Emit(kExprEnd);
     }
     if (stmt->body() != nullptr) {
-      block_size_++;
       RECURSE(Visit(stmt->body()));
     }
     if (stmt->next() != nullptr) {
-      block_size_++;
       RECURSE(Visit(stmt->next()));
     }
-    block_size_++;
-    current_function_builder_->EmitWithVarInt(kExprBr, 0);
     current_function_builder_->Emit(kExprNop);
+    current_function_builder_->EmitWithU8U8(kExprBr, ARITY_0, 0);
   }
 
   void VisitForInStatement(ForInStatement* stmt) { UNREACHABLE(); }
@@ -348,16 +410,21 @@
 
   void VisitFunctionLiteral(FunctionLiteral* expr) {
     Scope* scope = expr->scope();
-    if (in_function_) {
-      if (expr->bounds().lower->IsFunction()) {
-        FunctionType* func_type = expr->bounds().lower->AsFunction();
+    if (scope_ == kFuncScope) {
+      if (bounds_->get(expr).lower->IsFunction()) {
+        // Build the signature for the function.
+        FunctionType* func_type = bounds_->get(expr).lower->AsFunction();
         LocalType return_type = TypeFrom(func_type->Result());
-        current_function_builder_->ReturnType(return_type);
+        FunctionSig::Builder b(zone(), return_type == kAstStmt ? 0 : 1,
+                               func_type->Arity());
+        if (return_type != kAstStmt) b.AddReturn(return_type);
         for (int i = 0; i < expr->parameter_count(); i++) {
           LocalType type = TypeFrom(func_type->Parameter(i));
           DCHECK_NE(kAstStmt, type);
-          LookupOrInsertLocal(scope->parameter(i), type);
+          b.AddParam(type);
+          InsertParameter(scope->parameter(i), type, i);
         }
+        current_function_builder_->SetSignature(b.Build());
       } else {
         UNREACHABLE();
       }
@@ -371,11 +438,16 @@
   }
 
   void VisitConditional(Conditional* expr) {
-    DCHECK(in_function_);
-    current_function_builder_->Emit(kExprIfElse);
+    DCHECK_EQ(kFuncScope, scope_);
     RECURSE(Visit(expr->condition()));
+    // WASM ifs come with implicit blocks for both arms.
+    breakable_blocks_.push_back(std::make_pair(nullptr, false));
+    current_function_builder_->Emit(kExprIf);
     RECURSE(Visit(expr->then_expression()));
+    current_function_builder_->Emit(kExprElse);
     RECURSE(Visit(expr->else_expression()));
+    current_function_builder_->Emit(kExprEnd);
+    breakable_blocks_.pop_back();
   }
 
   bool VisitStdlibConstant(Variable* var) {
@@ -431,41 +503,29 @@
   }
 
   void VisitVariableProxy(VariableProxy* expr) {
-    if (in_function_) {
+    if (scope_ == kFuncScope || scope_ == kInitScope) {
       Variable* var = expr->var();
-      if (is_set_op_) {
-        if (var->IsContextSlot()) {
-          current_function_builder_->Emit(kExprStoreGlobal);
-        } else {
-          current_function_builder_->Emit(kExprSetLocal);
-        }
-        is_set_op_ = false;
-      } else {
-        if (VisitStdlibConstant(var)) {
-          return;
-        }
-        if (var->IsContextSlot()) {
-          current_function_builder_->Emit(kExprLoadGlobal);
-        } else {
-          current_function_builder_->Emit(kExprGetLocal);
-        }
+      if (VisitStdlibConstant(var)) {
+        return;
       }
       LocalType var_type = TypeOf(expr);
       DCHECK_NE(kAstStmt, var_type);
       if (var->IsContextSlot()) {
-        AddLeb128(LookupOrInsertGlobal(var, var_type), false);
+        current_function_builder_->EmitWithVarInt(
+            kExprLoadGlobal, LookupOrInsertGlobal(var, var_type));
       } else {
-        AddLeb128(LookupOrInsertLocal(var, var_type), true);
+        current_function_builder_->EmitGetLocal(
+            LookupOrInsertLocal(var, var_type));
       }
     }
   }
 
   void VisitLiteral(Literal* expr) {
     Handle<Object> value = expr->value();
-    if (!in_function_ || !value->IsNumber()) {
+    if (!value->IsNumber() || (scope_ != kFuncScope && scope_ != kInitScope)) {
       return;
     }
-    Type* type = expr->bounds().upper;
+    Type* type = bounds_->get(expr).upper;
     if (type->Is(cache_.kAsmSigned)) {
       int32_t i = 0;
       if (!value->ToInt32(&i)) {
@@ -496,7 +556,7 @@
     ZoneList<ObjectLiteralProperty*>* props = expr->properties();
     for (int i = 0; i < props->length(); ++i) {
       ObjectLiteralProperty* prop = props->at(i);
-      DCHECK(marking_exported);
+      DCHECK_EQ(kExportScope, scope_);
       VariableProxy* expr = prop->value()->AsVariableProxy();
       DCHECK_NOT_NULL(expr);
       Variable* var = expr->var();
@@ -505,10 +565,11 @@
       DCHECK(name->IsPropertyName());
       const AstRawString* raw_name = name->AsRawPropertyName();
       if (var->is_function()) {
-        uint16_t index = LookupOrInsertFunction(var);
+        uint32_t index = LookupOrInsertFunction(var);
         builder_->FunctionAt(index)->Exported(1);
-        builder_->FunctionAt(index)
-            ->SetName(raw_name->raw_data(), raw_name->length());
+        builder_->FunctionAt(index)->SetName(
+            reinterpret_cast<const char*>(raw_name->raw_data()),
+            raw_name->length());
       }
     }
   }
@@ -517,17 +578,17 @@
 
   void LoadInitFunction() {
     current_function_builder_ = builder_->FunctionAt(init_function_index_);
-    in_function_ = true;
+    scope_ = kInitScope;
   }
 
   void UnLoadInitFunction() {
-    in_function_ = false;
+    scope_ = kModuleScope;
     current_function_builder_ = nullptr;
   }
 
   void AddFunctionTable(VariableProxy* table, ArrayLiteral* funcs) {
     FunctionType* func_type =
-        funcs->bounds().lower->AsArray()->Element()->AsFunction();
+        bounds_->get(funcs).lower->AsArray()->Element()->AsFunction();
     LocalType return_type = TypeFrom(func_type->Result());
     FunctionSig::Builder sig(zone(), return_type == kAstStmt ? 0 : 1,
                              func_type->Arity());
@@ -537,7 +598,7 @@
     for (int i = 0; i < func_type->Arity(); i++) {
       sig.AddParam(TypeFrom(func_type->Parameter(i)));
     }
-    uint16_t signature_index = builder_->AddSignature(sig.Build());
+    uint32_t signature_index = builder_->AddSignature(sig.Build());
     InsertFunctionTable(table->var(), next_table_index_, signature_index);
     next_table_index_ += funcs->values()->length();
     for (int i = 0; i < funcs->values()->length(); i++) {
@@ -549,11 +610,11 @@
 
   struct FunctionTableIndices : public ZoneObject {
     uint32_t start_index;
-    uint16_t signature_index;
+    uint32_t signature_index;
   };
 
   void InsertFunctionTable(Variable* v, uint32_t start_index,
-                           uint16_t signature_index) {
+                           uint32_t signature_index) {
     FunctionTableIndices* container = new (zone()) FunctionTableIndices();
     container->start_index = start_index;
     container->signature_index = signature_index;
@@ -573,12 +634,11 @@
    private:
     class ImportedFunctionIndices : public ZoneObject {
      public:
-      const unsigned char* name_;
+      const char* name_;
       int name_length_;
       WasmModuleBuilder::SignatureMap signature_to_index_;
 
-      ImportedFunctionIndices(const unsigned char* name, int name_length,
-                              Zone* zone)
+      ImportedFunctionIndices(const char* name, int name_length, Zone* zone)
           : name_(name), name_length_(name_length), signature_to_index_(zone) {}
     };
     ZoneHashMap table_;
@@ -590,7 +650,7 @@
                  ZoneAllocationPolicy(builder->zone())),
           builder_(builder) {}
 
-    void AddImport(Variable* v, const unsigned char* name, int name_length) {
+    void AddImport(Variable* v, const char* name, int name_length) {
       ImportedFunctionIndices* indices = new (builder_->zone())
           ImportedFunctionIndices(name, name_length, builder_->zone());
       ZoneHashMap::Entry* entry = table_.LookupOrInsert(
@@ -598,7 +658,7 @@
       entry->value = indices;
     }
 
-    uint16_t GetFunctionIndex(Variable* v, FunctionSig* sig) {
+    uint32_t GetFunctionIndex(Variable* v, FunctionSig* sig) {
       ZoneHashMap::Entry* entry = table_.Lookup(v, ComputePointerHash(v));
       DCHECK_NOT_NULL(entry);
       ImportedFunctionIndices* indices =
@@ -608,60 +668,137 @@
       if (pos != indices->signature_to_index_.end()) {
         return pos->second;
       } else {
-        uint16_t index = builder_->builder_->AddFunction();
+        uint32_t index = builder_->builder_->AddImport(
+            indices->name_, indices->name_length_, sig);
         indices->signature_to_index_[sig] = index;
-        WasmFunctionBuilder* function = builder_->builder_->FunctionAt(index);
-        function->External(1);
-        function->SetName(indices->name_, indices->name_length_);
-        if (sig->return_count() > 0) {
-          function->ReturnType(sig->GetReturn());
-        }
-        for (size_t i = 0; i < sig->parameter_count(); i++) {
-          function->AddParam(sig->GetParam(i));
-        }
         return index;
       }
     }
   };
 
-  void VisitAssignment(Assignment* expr) {
-    bool in_init = false;
-    if (!in_function_) {
-      BinaryOperation* binop = expr->value()->AsBinaryOperation();
-      if (binop != nullptr) {
+  void EmitAssignmentLhs(Expression* target, MachineType* mtype) {
+    // Match the left hand side of the assignment.
+    VariableProxy* target_var = target->AsVariableProxy();
+    if (target_var != nullptr) {
+      // Left hand side is a local or a global variable, no code on LHS.
+      return;
+    }
+
+    Property* target_prop = target->AsProperty();
+    if (target_prop != nullptr) {
+      // Left hand side is a property access, i.e. the asm.js heap.
+      VisitPropertyAndEmitIndex(target_prop, mtype);
+      return;
+    }
+
+    if (target_var == nullptr && target_prop == nullptr) {
+      UNREACHABLE();  // invalid assignment.
+    }
+  }
+
+  void EmitAssignmentRhs(Expression* target, Expression* value, bool* is_nop) {
+    BinaryOperation* binop = value->AsBinaryOperation();
+    if (binop != nullptr) {
+      if (scope_ == kInitScope) {
+        // Handle foreign variables in the initialization scope.
         Property* prop = binop->left()->AsProperty();
-        DCHECK_NOT_NULL(prop);
-        LoadInitFunction();
-        is_set_op_ = true;
-        RECURSE(Visit(expr->target()));
-        DCHECK(!is_set_op_);
         if (binop->op() == Token::MUL) {
           DCHECK(binop->right()->IsLiteral());
           DCHECK_EQ(1.0, binop->right()->AsLiteral()->raw_value()->AsNumber());
           DCHECK(binop->right()->AsLiteral()->raw_value()->ContainsDot());
           VisitForeignVariable(true, prop);
+          return;
         } else if (binop->op() == Token::BIT_OR) {
           DCHECK(binop->right()->IsLiteral());
           DCHECK_EQ(0.0, binop->right()->AsLiteral()->raw_value()->AsNumber());
           DCHECK(!binop->right()->AsLiteral()->raw_value()->ContainsDot());
           VisitForeignVariable(false, prop);
+          return;
         } else {
           UNREACHABLE();
         }
-        UnLoadInitFunction();
-        return;
       }
+      if (MatchBinaryOperation(binop) == kAsIs) {
+        VariableProxy* target_var = target->AsVariableProxy();
+        VariableProxy* effective_value_var = GetLeft(binop)->AsVariableProxy();
+        if (target_var != nullptr && effective_value_var != nullptr &&
+            target_var->var() == effective_value_var->var()) {
+          *is_nop = true;
+          return;
+        }
+      }
+    }
+    RECURSE(Visit(value));
+  }
+
+  void EmitAssignment(Assignment* expr, MachineType type) {
+    // Match the left hand side of the assignment.
+    VariableProxy* target_var = expr->target()->AsVariableProxy();
+    if (target_var != nullptr) {
+      // Left hand side is a local or a global variable.
+      Variable* var = target_var->var();
+      LocalType var_type = TypeOf(expr);
+      DCHECK_NE(kAstStmt, var_type);
+      if (var->IsContextSlot()) {
+        current_function_builder_->EmitWithVarInt(
+            kExprStoreGlobal, LookupOrInsertGlobal(var, var_type));
+      } else {
+        current_function_builder_->EmitSetLocal(
+            LookupOrInsertLocal(var, var_type));
+      }
+    }
+
+    Property* target_prop = expr->target()->AsProperty();
+    if (target_prop != nullptr) {
+      // Left hand side is a property access, i.e. the asm.js heap.
+      if (TypeOf(expr->value()) == kAstF64 && expr->target()->IsProperty() &&
+          bounds_->get(expr->target()->AsProperty()->obj())
+              .lower->Is(cache_.kFloat32Array)) {
+        current_function_builder_->Emit(kExprF32ConvertF64);
+      }
+      WasmOpcode opcode;
+      if (type == MachineType::Int8()) {
+        opcode = kExprI32AsmjsStoreMem8;
+      } else if (type == MachineType::Uint8()) {
+        opcode = kExprI32AsmjsStoreMem8;
+      } else if (type == MachineType::Int16()) {
+        opcode = kExprI32AsmjsStoreMem16;
+      } else if (type == MachineType::Uint16()) {
+        opcode = kExprI32AsmjsStoreMem16;
+      } else if (type == MachineType::Int32()) {
+        opcode = kExprI32AsmjsStoreMem;
+      } else if (type == MachineType::Uint32()) {
+        opcode = kExprI32AsmjsStoreMem;
+      } else if (type == MachineType::Float32()) {
+        opcode = kExprF32AsmjsStoreMem;
+      } else if (type == MachineType::Float64()) {
+        opcode = kExprF64AsmjsStoreMem;
+      } else {
+        UNREACHABLE();
+      }
+      current_function_builder_->Emit(opcode);
+    }
+
+    if (target_var == nullptr && target_prop == nullptr) {
+      UNREACHABLE();  // invalid assignment.
+    }
+  }
+
+  void VisitAssignment(Assignment* expr) {
+    bool as_init = false;
+    if (scope_ == kModuleScope) {
       Property* prop = expr->value()->AsProperty();
       if (prop != nullptr) {
         VariableProxy* vp = prop->obj()->AsVariableProxy();
         if (vp != nullptr && vp->var()->IsParameter() &&
             vp->var()->index() == 1) {
           VariableProxy* target = expr->target()->AsVariableProxy();
-          if (target->bounds().lower->Is(Type::Function())) {
+          if (bounds_->get(target).lower->Is(Type::Function())) {
             const AstRawString* name =
                 prop->key()->AsLiteral()->AsRawPropertyName();
-            imported_function_table_.AddImport(target->var(), name->raw_data(),
-                                               name->length());
+            imported_function_table_.AddImport(
+                target->var(), reinterpret_cast<const char*>(name->raw_data()),
+                name->length());
           }
         }
         // Property values in module scope don't emit code, so return.
@@ -669,7 +806,7 @@
       }
       ArrayLiteral* funcs = expr->value()->AsArrayLiteral();
       if (funcs != nullptr &&
-          funcs->bounds().lower->AsArray()->Element()->IsFunction()) {
+          bounds_->get(funcs).lower->AsArray()->Element()->IsFunction()) {
         VariableProxy* target = expr->target()->AsVariableProxy();
         DCHECK_NOT_NULL(target);
         AddFunctionTable(target, funcs);
@@ -680,32 +817,18 @@
         // No init code to emit for CallNew nodes.
         return;
       }
-      in_init = true;
-      LoadInitFunction();
+      as_init = true;
     }
-    BinaryOperation* value_op = expr->value()->AsBinaryOperation();
-    if (value_op != nullptr && MatchBinaryOperation(value_op) == kAsIs) {
-      VariableProxy* target_var = expr->target()->AsVariableProxy();
-      VariableProxy* effective_value_var = GetLeft(value_op)->AsVariableProxy();
-      if (target_var != nullptr && effective_value_var != nullptr &&
-          target_var->var() == effective_value_var->var()) {
-        block_size_--;
-        return;
-      }
+
+    if (as_init) LoadInitFunction();
+    MachineType mtype;
+    bool is_nop = false;
+    EmitAssignmentLhs(expr->target(), &mtype);
+    EmitAssignmentRhs(expr->target(), expr->value(), &is_nop);
+    if (!is_nop) {
+      EmitAssignment(expr, mtype);
     }
-    is_set_op_ = true;
-    RECURSE(Visit(expr->target()));
-    DCHECK(!is_set_op_);
-    // Assignment to heapf32 from float64 converts.
-    if (TypeOf(expr->value()) == kAstF64 && expr->target()->IsProperty() &&
-        expr->target()->AsProperty()->obj()->bounds().lower->Is(
-            cache_.kFloat32Array)) {
-      current_function_builder_->Emit(kExprF32ConvertF64);
-    }
-    RECURSE(Visit(expr->value()));
-    if (in_init) {
-      UnLoadInitFunction();
-    }
+    if (as_init) UnLoadInitFunction();
   }
 
   void VisitYield(Yield* expr) { UNREACHABLE(); }
@@ -744,9 +867,7 @@
             Handle<Object> nvalue = maybe_nvalue.ToHandleChecked();
             if (nvalue->IsNumber()) {
               int32_t val = static_cast<int32_t>(nvalue->Number());
-              // TODO(bradnelson): variable size
-              byte code[] = {WASM_I32V(val)};
-              current_function_builder_->EmitCode(code, sizeof(code));
+              current_function_builder_->EmitI32Const(val);
               return;
             }
           }
@@ -762,46 +883,41 @@
     }
   }
 
-  void VisitProperty(Property* expr) {
+  void VisitPropertyAndEmitIndex(Property* expr, MachineType* mtype) {
     Expression* obj = expr->obj();
-    DCHECK_EQ(obj->bounds().lower, obj->bounds().upper);
-    Type* type = obj->bounds().lower;
-    MachineType mtype;
+    DCHECK_EQ(bounds_->get(obj).lower, bounds_->get(obj).upper);
+    Type* type = bounds_->get(obj).lower;
     int size;
     if (type->Is(cache_.kUint8Array)) {
-      mtype = MachineType::Uint8();
+      *mtype = MachineType::Uint8();
       size = 1;
     } else if (type->Is(cache_.kInt8Array)) {
-      mtype = MachineType::Int8();
+      *mtype = MachineType::Int8();
       size = 1;
     } else if (type->Is(cache_.kUint16Array)) {
-      mtype = MachineType::Uint16();
+      *mtype = MachineType::Uint16();
       size = 2;
     } else if (type->Is(cache_.kInt16Array)) {
-      mtype = MachineType::Int16();
+      *mtype = MachineType::Int16();
       size = 2;
     } else if (type->Is(cache_.kUint32Array)) {
-      mtype = MachineType::Uint32();
+      *mtype = MachineType::Uint32();
       size = 4;
     } else if (type->Is(cache_.kInt32Array)) {
-      mtype = MachineType::Int32();
+      *mtype = MachineType::Int32();
       size = 4;
     } else if (type->Is(cache_.kUint32Array)) {
-      mtype = MachineType::Uint32();
+      *mtype = MachineType::Uint32();
       size = 4;
     } else if (type->Is(cache_.kFloat32Array)) {
-      mtype = MachineType::Float32();
+      *mtype = MachineType::Float32();
       size = 4;
     } else if (type->Is(cache_.kFloat64Array)) {
-      mtype = MachineType::Float64();
+      *mtype = MachineType::Float64();
       size = 8;
     } else {
       UNREACHABLE();
     }
-    // TODO(titzer): use special asm-compatibility opcodes?
-    current_function_builder_->EmitWithU8U8(
-        WasmOpcodes::LoadStoreOpcodeOf(mtype, is_set_op_), 0, 0);
-    is_set_op_ = false;
     if (size == 1) {
       // Allow more general expression in byte arrays than the spec
       // strictly permits.
@@ -809,87 +925,123 @@
       // places that strictly should be HEAP8[HEAP32[..]>>0].
       RECURSE(Visit(expr->key()));
       return;
-    } else {
-      Literal* value = expr->key()->AsLiteral();
-      if (value) {
-        DCHECK(value->raw_value()->IsNumber());
-        DCHECK_EQ(kAstI32, TypeOf(value));
-        int val = static_cast<int>(value->raw_value()->AsNumber());
-        // TODO(bradnelson): variable size
-        byte code[] = {WASM_I32V(val * size)};
-        current_function_builder_->EmitCode(code, sizeof(code));
-        return;
-      }
-      BinaryOperation* binop = expr->key()->AsBinaryOperation();
-      if (binop) {
-        DCHECK_EQ(Token::SAR, binop->op());
-        DCHECK(binop->right()->AsLiteral()->raw_value()->IsNumber());
-        DCHECK(kAstI32 == TypeOf(binop->right()->AsLiteral()));
-        DCHECK_EQ(size,
-                  1 << static_cast<int>(
-                      binop->right()->AsLiteral()->raw_value()->AsNumber()));
-        // Mask bottom bits to match asm.js behavior.
-        current_function_builder_->Emit(kExprI32And);
-        byte code[] = {WASM_I8(~(size - 1))};
-        current_function_builder_->EmitCode(code, sizeof(code));
-        RECURSE(Visit(binop->left()));
-        return;
-      }
+    }
+
+    Literal* value = expr->key()->AsLiteral();
+    if (value) {
+      DCHECK(value->raw_value()->IsNumber());
+      DCHECK_EQ(kAstI32, TypeOf(value));
+      int32_t val = static_cast<int32_t>(value->raw_value()->AsNumber());
+      // TODO(titzer): handle overflow here.
+      current_function_builder_->EmitI32Const(val * size);
+      return;
+    }
+    BinaryOperation* binop = expr->key()->AsBinaryOperation();
+    if (binop) {
+      DCHECK_EQ(Token::SAR, binop->op());
+      DCHECK(binop->right()->AsLiteral()->raw_value()->IsNumber());
+      DCHECK(kAstI32 == TypeOf(binop->right()->AsLiteral()));
+      DCHECK_EQ(size,
+                1 << static_cast<int>(
+                    binop->right()->AsLiteral()->raw_value()->AsNumber()));
+      // Mask bottom bits to match asm.js behavior.
+      byte mask = static_cast<byte>(~(size - 1));
+      RECURSE(Visit(binop->left()));
+      current_function_builder_->EmitWithU8(kExprI8Const, mask);
+      current_function_builder_->Emit(kExprI32And);
+      return;
     }
     UNREACHABLE();
   }
 
+  void VisitProperty(Property* expr) {
+    MachineType type;
+    VisitPropertyAndEmitIndex(expr, &type);
+    WasmOpcode opcode;
+    if (type == MachineType::Int8()) {
+      opcode = kExprI32AsmjsLoadMem8S;
+    } else if (type == MachineType::Uint8()) {
+      opcode = kExprI32AsmjsLoadMem8U;
+    } else if (type == MachineType::Int16()) {
+      opcode = kExprI32AsmjsLoadMem16S;
+    } else if (type == MachineType::Uint16()) {
+      opcode = kExprI32AsmjsLoadMem16U;
+    } else if (type == MachineType::Int32()) {
+      opcode = kExprI32AsmjsLoadMem;
+    } else if (type == MachineType::Uint32()) {
+      opcode = kExprI32AsmjsLoadMem;
+    } else if (type == MachineType::Float32()) {
+      opcode = kExprF32AsmjsLoadMem;
+    } else if (type == MachineType::Float64()) {
+      opcode = kExprF64AsmjsLoadMem;
+    } else {
+      UNREACHABLE();
+    }
+
+    current_function_builder_->Emit(opcode);
+  }
+
   bool VisitStdlibFunction(Call* call, VariableProxy* expr) {
     Variable* var = expr->var();
     AsmTyper::StandardMember standard_object =
         typer_->VariableAsStandardMember(var);
     ZoneList<Expression*>* args = call->arguments();
     LocalType call_type = TypeOf(call);
+
     switch (standard_object) {
       case AsmTyper::kNone: {
         return false;
       }
       case AsmTyper::kMathAcos: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Acos);
         break;
       }
       case AsmTyper::kMathAsin: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Asin);
         break;
       }
       case AsmTyper::kMathAtan: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Atan);
         break;
       }
       case AsmTyper::kMathCos: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Cos);
         break;
       }
       case AsmTyper::kMathSin: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Sin);
         break;
       }
       case AsmTyper::kMathTan: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Tan);
         break;
       }
       case AsmTyper::kMathExp: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Exp);
         break;
       }
       case AsmTyper::kMathLog: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Log);
         break;
       }
       case AsmTyper::kMathCeil: {
+        VisitCallArgs(call);
         if (call_type == kAstF32) {
           current_function_builder_->Emit(kExprF32Ceil);
         } else if (call_type == kAstF64) {
@@ -900,6 +1052,7 @@
         break;
       }
       case AsmTyper::kMathFloor: {
+        VisitCallArgs(call);
         if (call_type == kAstF32) {
           current_function_builder_->Emit(kExprF32Floor);
         } else if (call_type == kAstF64) {
@@ -910,6 +1063,7 @@
         break;
       }
       case AsmTyper::kMathSqrt: {
+        VisitCallArgs(call);
         if (call_type == kAstF32) {
           current_function_builder_->Emit(kExprF32Sqrt);
         } else if (call_type == kAstF64) {
@@ -920,19 +1074,33 @@
         break;
       }
       case AsmTyper::kMathAbs: {
-        // TODO(bradnelson): Should this be cast to float?
         if (call_type == kAstI32) {
-          current_function_builder_->Emit(kExprIfElse);
-          current_function_builder_->Emit(kExprI32LtS);
-          Visit(args->at(0));
+          uint32_t tmp = current_function_builder_->AddLocal(kAstI32);
+
+          // if set_local(tmp, x) < 0
+          Visit(call->arguments()->at(0));
+          current_function_builder_->EmitSetLocal(tmp);
           byte code[] = {WASM_I8(0)};
           current_function_builder_->EmitCode(code, sizeof(code));
-          current_function_builder_->Emit(kExprI32Sub);
+          current_function_builder_->Emit(kExprI32LtS);
+          current_function_builder_->Emit(kExprIf);
+
+          // then (0 - tmp)
           current_function_builder_->EmitCode(code, sizeof(code));
-          Visit(args->at(0));
+          current_function_builder_->EmitGetLocal(tmp);
+          current_function_builder_->Emit(kExprI32Sub);
+
+          // else tmp
+          current_function_builder_->Emit(kExprElse);
+          current_function_builder_->EmitGetLocal(tmp);
+          // end
+          current_function_builder_->Emit(kExprEnd);
+
         } else if (call_type == kAstF32) {
+          VisitCallArgs(call);
           current_function_builder_->Emit(kExprF32Abs);
         } else if (call_type == kAstF64) {
+          VisitCallArgs(call);
           current_function_builder_->Emit(kExprF64Abs);
         } else {
           UNREACHABLE();
@@ -942,13 +1110,32 @@
       case AsmTyper::kMathMin: {
         // TODO(bradnelson): Change wasm to match Math.min in asm.js mode.
         if (call_type == kAstI32) {
-          current_function_builder_->Emit(kExprIfElse);
+          uint32_t tmp_x = current_function_builder_->AddLocal(kAstI32);
+          uint32_t tmp_y = current_function_builder_->AddLocal(kAstI32);
+
+          // if set_local(tmp_x, x) < set_local(tmp_y, y)
+          Visit(call->arguments()->at(0));
+          current_function_builder_->EmitSetLocal(tmp_x);
+
+          Visit(call->arguments()->at(1));
+          current_function_builder_->EmitSetLocal(tmp_y);
+
           current_function_builder_->Emit(kExprI32LeS);
-          Visit(args->at(0));
-          Visit(args->at(1));
+          current_function_builder_->Emit(kExprIf);
+
+          // then tmp_x
+          current_function_builder_->EmitGetLocal(tmp_x);
+
+          // else tmp_y
+          current_function_builder_->Emit(kExprElse);
+          current_function_builder_->EmitGetLocal(tmp_y);
+          current_function_builder_->Emit(kExprEnd);
+
         } else if (call_type == kAstF32) {
+          VisitCallArgs(call);
           current_function_builder_->Emit(kExprF32Min);
         } else if (call_type == kAstF64) {
+          VisitCallArgs(call);
           current_function_builder_->Emit(kExprF64Min);
         } else {
           UNREACHABLE();
@@ -958,13 +1145,33 @@
       case AsmTyper::kMathMax: {
         // TODO(bradnelson): Change wasm to match Math.max in asm.js mode.
         if (call_type == kAstI32) {
-          current_function_builder_->Emit(kExprIfElse);
-          current_function_builder_->Emit(kExprI32GtS);
-          Visit(args->at(0));
-          Visit(args->at(1));
+          uint32_t tmp_x = current_function_builder_->AddLocal(kAstI32);
+          uint32_t tmp_y = current_function_builder_->AddLocal(kAstI32);
+
+          // if set_local(tmp_x, x) < set_local(tmp_y, y)
+          Visit(call->arguments()->at(0));
+
+          current_function_builder_->EmitSetLocal(tmp_x);
+
+          Visit(call->arguments()->at(1));
+          current_function_builder_->EmitSetLocal(tmp_y);
+
+          current_function_builder_->Emit(kExprI32LeS);
+          current_function_builder_->Emit(kExprIf);
+
+          // then tmp_y
+          current_function_builder_->EmitGetLocal(tmp_y);
+
+          // else tmp_x
+          current_function_builder_->Emit(kExprElse);
+          current_function_builder_->EmitGetLocal(tmp_x);
+          current_function_builder_->Emit(kExprEnd);
+
         } else if (call_type == kAstF32) {
+          VisitCallArgs(call);
           current_function_builder_->Emit(kExprF32Max);
         } else if (call_type == kAstF64) {
+          VisitCallArgs(call);
           current_function_builder_->Emit(kExprF64Max);
         } else {
           UNREACHABLE();
@@ -972,16 +1179,19 @@
         break;
       }
       case AsmTyper::kMathAtan2: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Atan2);
         break;
       }
       case AsmTyper::kMathPow: {
+        VisitCallArgs(call);
         DCHECK_EQ(kAstF64, call_type);
         current_function_builder_->Emit(kExprF64Pow);
         break;
       }
       case AsmTyper::kMathImul: {
+        VisitCallArgs(call);
         current_function_builder_->Emit(kExprI32Mul);
         break;
       }
@@ -989,6 +1199,7 @@
         DCHECK(args->length() == 1);
         Literal* literal = args->at(0)->AsLiteral();
         if (literal != nullptr) {
+          // constant fold Math.fround(#const);
           if (literal->raw_value()->IsNumber()) {
             float val = static_cast<float>(literal->raw_value()->AsNumber());
             byte code[] = {WASM_F32(val)};
@@ -996,6 +1207,7 @@
             return true;
           }
         }
+        VisitCallArgs(call);
         switch (TypeIndexOf(args->at(0))) {
           case kInt32:
           case kFixnum:
@@ -1019,7 +1231,6 @@
         break;
       }
     }
-    VisitCallArgs(call);
     return true;
   }
 
@@ -1035,17 +1246,17 @@
     Call::CallType call_type = expr->GetCallType(isolate_);
     switch (call_type) {
       case Call::OTHER_CALL: {
-        DCHECK(in_function_);
+        DCHECK_EQ(kFuncScope, scope_);
         VariableProxy* proxy = expr->expression()->AsVariableProxy();
         if (proxy != nullptr) {
           if (VisitStdlibFunction(expr, proxy)) {
             return;
           }
         }
-        uint16_t index;
+        uint32_t index;
         VariableProxy* vp = expr->expression()->AsVariableProxy();
         if (vp != nullptr &&
-            Type::Any()->Is(vp->bounds().lower->AsFunction()->Result())) {
+            Type::Any()->Is(bounds_->get(vp).lower->AsFunction()->Result())) {
           LocalType return_type = TypeOf(expr);
           ZoneList<Expression*>* args = expr->arguments();
           FunctionSig::Builder sig(zone(), return_type == kAstStmt ? 0 : 1,
@@ -1058,35 +1269,38 @@
           }
           index =
               imported_function_table_.GetFunctionIndex(vp->var(), sig.Build());
+          VisitCallArgs(expr);
+          current_function_builder_->Emit(kExprCallImport);
+          current_function_builder_->EmitVarInt(expr->arguments()->length());
+          current_function_builder_->EmitVarInt(index);
         } else {
           index = LookupOrInsertFunction(vp->var());
+          VisitCallArgs(expr);
+          current_function_builder_->Emit(kExprCallFunction);
+          current_function_builder_->EmitVarInt(expr->arguments()->length());
+          current_function_builder_->EmitVarInt(index);
         }
-        current_function_builder_->Emit(kExprCallFunction);
-        std::vector<uint8_t> index_arr = UnsignedLEB128From(index);
-        current_function_builder_->EmitCode(
-            &index_arr[0], static_cast<uint32_t>(index_arr.size()));
         break;
       }
       case Call::KEYED_PROPERTY_CALL: {
-        DCHECK(in_function_);
+        DCHECK_EQ(kFuncScope, scope_);
         Property* p = expr->expression()->AsProperty();
         DCHECK_NOT_NULL(p);
         VariableProxy* var = p->obj()->AsVariableProxy();
         DCHECK_NOT_NULL(var);
         FunctionTableIndices* indices = LookupFunctionTable(var->var());
-        current_function_builder_->EmitWithVarInt(kExprCallIndirect,
-                                                  indices->signature_index);
-        current_function_builder_->Emit(kExprI32Add);
-        // TODO(bradnelson): variable size
-        byte code[] = {WASM_I32V(indices->start_index)};
-        current_function_builder_->EmitCode(code, sizeof(code));
         RECURSE(Visit(p->key()));
+        current_function_builder_->EmitI32Const(indices->start_index);
+        current_function_builder_->Emit(kExprI32Add);
+        VisitCallArgs(expr);
+        current_function_builder_->Emit(kExprCallIndirect);
+        current_function_builder_->EmitVarInt(expr->arguments()->length());
+        current_function_builder_->EmitVarInt(indices->signature_index);
         break;
       }
       default:
         UNREACHABLE();
     }
-    VisitCallArgs(expr);
   }
 
   void VisitCallNew(CallNew* expr) { UNREACHABLE(); }
@@ -1094,6 +1308,7 @@
   void VisitCallRuntime(CallRuntime* expr) { UNREACHABLE(); }
 
   void VisitUnaryOperation(UnaryOperation* expr) {
+    RECURSE(Visit(expr->expression()));
     switch (expr->op()) {
       case Token::NOT: {
         DCHECK_EQ(kAstI32, TypeOf(expr->expression()));
@@ -1103,7 +1318,6 @@
       default:
         UNREACHABLE();
     }
-    RECURSE(Visit(expr->expression()));
   }
 
   void VisitCountOperation(CountOperation* expr) { UNREACHABLE(); }
@@ -1207,9 +1421,6 @@
 #ifdef Mul
 #undef Mul
 #endif
-#ifdef Div
-#undef Div
-#endif
 
 #define NON_SIGNED_BINOP(op)      \
   static WasmOpcode opcodes[] = { \
@@ -1249,6 +1460,7 @@
   void VisitBinaryOperation(BinaryOperation* expr) {
     ConvertOperation convertOperation = MatchBinaryOperation(expr);
     if (convertOperation == kToDouble) {
+      RECURSE(Visit(expr->left()));
       TypeIndex type = TypeIndexOf(expr->left());
       if (type == kInt32 || type == kFixnum) {
         current_function_builder_->Emit(kExprF64SConvertI32);
@@ -1259,37 +1471,53 @@
       } else {
         UNREACHABLE();
       }
-      RECURSE(Visit(expr->left()));
     } else if (convertOperation == kToInt) {
+      RECURSE(Visit(GetLeft(expr)));
       TypeIndex type = TypeIndexOf(GetLeft(expr));
       if (type == kFloat32) {
-        current_function_builder_->Emit(kExprI32SConvertF32);
+        current_function_builder_->Emit(kExprI32AsmjsSConvertF32);
       } else if (type == kFloat64) {
-        current_function_builder_->Emit(kExprI32SConvertF64);
+        current_function_builder_->Emit(kExprI32AsmjsSConvertF64);
       } else {
         UNREACHABLE();
       }
-      RECURSE(Visit(GetLeft(expr)));
     } else if (convertOperation == kAsIs) {
       RECURSE(Visit(GetLeft(expr)));
     } else {
+      if (expr->op() == Token::COMMA) {
+        current_function_builder_->Emit(kExprBlock);
+      }
+
+      RECURSE(Visit(expr->left()));
+      RECURSE(Visit(expr->right()));
+
+      if (expr->op() == Token::COMMA) {
+        current_function_builder_->Emit(kExprEnd);
+      }
+
       switch (expr->op()) {
         BINOP_CASE(Token::ADD, Add, NON_SIGNED_BINOP, true);
         BINOP_CASE(Token::SUB, Sub, NON_SIGNED_BINOP, true);
         BINOP_CASE(Token::MUL, Mul, NON_SIGNED_BINOP, true);
-        BINOP_CASE(Token::DIV, Div, SIGNED_BINOP, false);
         BINOP_CASE(Token::BIT_OR, Ior, NON_SIGNED_INT_BINOP, true);
         BINOP_CASE(Token::BIT_AND, And, NON_SIGNED_INT_BINOP, true);
         BINOP_CASE(Token::BIT_XOR, Xor, NON_SIGNED_INT_BINOP, true);
         BINOP_CASE(Token::SHL, Shl, NON_SIGNED_INT_BINOP, true);
         BINOP_CASE(Token::SAR, ShrS, NON_SIGNED_INT_BINOP, true);
         BINOP_CASE(Token::SHR, ShrU, NON_SIGNED_INT_BINOP, true);
+        case Token::DIV: {
+          static WasmOpcode opcodes[] = {kExprI32AsmjsDivS, kExprI32AsmjsDivU,
+                                         kExprF32Div, kExprF64Div};
+          int type = TypeIndexOf(expr->left(), expr->right(), false);
+          current_function_builder_->Emit(opcodes[type]);
+          break;
+        }
         case Token::MOD: {
           TypeIndex type = TypeIndexOf(expr->left(), expr->right(), false);
           if (type == kInt32) {
-            current_function_builder_->Emit(kExprI32RemS);
+            current_function_builder_->Emit(kExprI32AsmjsRemS);
           } else if (type == kUint32) {
-            current_function_builder_->Emit(kExprI32RemU);
+            current_function_builder_->Emit(kExprI32AsmjsRemU);
           } else if (type == kFloat64) {
             current_function_builder_->Emit(kExprF64Mod);
             return;
@@ -1299,31 +1527,17 @@
           break;
         }
         case Token::COMMA: {
-          current_function_builder_->EmitWithVarInt(kExprBlock, 2);
           break;
         }
         default:
           UNREACHABLE();
       }
-      RECURSE(Visit(expr->left()));
-      RECURSE(Visit(expr->right()));
-    }
-  }
-
-  void AddLeb128(uint32_t index, bool is_local) {
-    std::vector<uint8_t> index_vec = UnsignedLEB128From(index);
-    if (is_local) {
-      uint32_t pos_of_index[1] = {0};
-      current_function_builder_->EmitCode(
-          &index_vec[0], static_cast<uint32_t>(index_vec.size()), pos_of_index,
-          1);
-    } else {
-      current_function_builder_->EmitCode(
-          &index_vec[0], static_cast<uint32_t>(index_vec.size()));
     }
   }
 
   void VisitCompareOperation(CompareOperation* expr) {
+    RECURSE(Visit(expr->left()));
+    RECURSE(Visit(expr->right()));
     switch (expr->op()) {
       BINOP_CASE(Token::EQ, Eq, NON_SIGNED_BINOP, false);
       BINOP_CASE(Token::LT, Lt, SIGNED_BINOP, false);
@@ -1333,8 +1547,6 @@
       default:
         UNREACHABLE();
     }
-    RECURSE(Visit(expr->left()));
-    RECURSE(Visit(expr->right()));
   }
 
 #undef BINOP_CASE
@@ -1369,8 +1581,8 @@
   }
 
   TypeIndex TypeIndexOf(Expression* expr) {
-    DCHECK_EQ(expr->bounds().lower, expr->bounds().upper);
-    Type* type = expr->bounds().lower;
+    DCHECK_EQ(bounds_->get(expr).lower, bounds_->get(expr).upper);
+    Type* type = bounds_->get(expr).lower;
     if (type->Is(cache_.kAsmFixnum)) {
       return kFixnum;
     } else if (type->Is(cache_.kAsmSigned)) {
@@ -1422,20 +1634,17 @@
   void VisitRewritableExpression(RewritableExpression* expr) { UNREACHABLE(); }
 
   struct IndexContainer : public ZoneObject {
-    uint16_t index;
+    uint32_t index;
   };
 
-  uint16_t LookupOrInsertLocal(Variable* v, LocalType type) {
+  uint32_t LookupOrInsertLocal(Variable* v, LocalType type) {
     DCHECK_NOT_NULL(current_function_builder_);
     ZoneHashMap::Entry* entry =
         local_variables_.Lookup(v, ComputePointerHash(v));
     if (entry == nullptr) {
-      uint16_t index;
-      if (v->IsParameter()) {
-        index = current_function_builder_->AddParam(type);
-      } else {
-        index = current_function_builder_->AddLocal(type);
-      }
+      uint32_t index;
+      DCHECK(!v->IsParameter());
+      index = current_function_builder_->AddLocal(type);
       IndexContainer* container = new (zone()) IndexContainer();
       container->index = index;
       entry = local_variables_.LookupOrInsert(v, ComputePointerHash(v),
@@ -1445,11 +1654,24 @@
     return (reinterpret_cast<IndexContainer*>(entry->value))->index;
   }
 
-  uint16_t LookupOrInsertGlobal(Variable* v, LocalType type) {
+  void InsertParameter(Variable* v, LocalType type, uint32_t index) {
+    DCHECK(v->IsParameter());
+    DCHECK_NOT_NULL(current_function_builder_);
+    ZoneHashMap::Entry* entry =
+        local_variables_.Lookup(v, ComputePointerHash(v));
+    DCHECK_NULL(entry);
+    IndexContainer* container = new (zone()) IndexContainer();
+    container->index = index;
+    entry = local_variables_.LookupOrInsert(v, ComputePointerHash(v),
+                                            ZoneAllocationPolicy(zone()));
+    entry->value = container;
+  }
+
+  uint32_t LookupOrInsertGlobal(Variable* v, LocalType type) {
     ZoneHashMap::Entry* entry =
         global_variables_.Lookup(v, ComputePointerHash(v));
     if (entry == nullptr) {
-      uint16_t index =
+      uint32_t index =
           builder_->AddGlobal(WasmOpcodes::MachineTypeFor(type), 0);
       IndexContainer* container = new (zone()) IndexContainer();
       container->index = index;
@@ -1460,11 +1682,11 @@
     return (reinterpret_cast<IndexContainer*>(entry->value))->index;
   }
 
-  uint16_t LookupOrInsertFunction(Variable* v) {
+  uint32_t LookupOrInsertFunction(Variable* v) {
     DCHECK_NOT_NULL(builder_);
     ZoneHashMap::Entry* entry = functions_.Lookup(v, ComputePointerHash(v));
     if (entry == nullptr) {
-      uint16_t index = builder_->AddFunction();
+      uint32_t index = builder_->AddFunction();
       IndexContainer* container = new (zone()) IndexContainer();
       container->index = index;
       entry = functions_.LookupOrInsert(v, ComputePointerHash(v),
@@ -1475,8 +1697,8 @@
   }
 
   LocalType TypeOf(Expression* expr) {
-    DCHECK_EQ(expr->bounds().lower, expr->bounds().upper);
-    return TypeFrom(expr->bounds().lower);
+    DCHECK_EQ(bounds_->get(expr).lower, bounds_->get(expr).upper);
+    return TypeFrom(bounds_->get(expr).lower);
   }
 
   LocalType TypeFrom(Type* type) {
@@ -1496,9 +1718,7 @@
   ZoneHashMap local_variables_;
   ZoneHashMap functions_;
   ZoneHashMap global_variables_;
-  bool in_function_;
-  bool is_set_op_;
-  bool marking_exported;
+  AsmScope scope_;
   WasmModuleBuilder* builder_;
   WasmFunctionBuilder* current_function_builder_;
   FunctionLiteral* literal_;
@@ -1508,11 +1728,11 @@
   AsmTyper* typer_;
   TypeCache const& cache_;
   ZoneVector<std::pair<BreakableStatement*, bool>> breakable_blocks_;
-  int block_size_;
-  uint16_t init_function_index_;
+  uint32_t init_function_index_;
   uint32_t next_table_index_;
   ZoneHashMap function_tables_;
   ImportedFunctionTable imported_function_table_;
+  const AstTypeBounds* bounds_;
 
   DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
 
diff --git a/src/wasm/ast-decoder.cc b/src/wasm/ast-decoder.cc
index e2f6a04..b8a86c3 100644
--- a/src/wasm/ast-decoder.cc
+++ b/src/wasm/ast-decoder.cc
@@ -42,17 +42,6 @@
   WasmOpcode opcode() const { return static_cast<WasmOpcode>(*pc); }
 };
 
-// A production represents an incomplete decoded tree in the LR decoder.
-struct Production {
-  Tree* tree;  // the root of the syntax tree.
-  int index;   // the current index into the children of the tree.
-
-  WasmOpcode opcode() const { return static_cast<WasmOpcode>(*pc()); }
-  const byte* pc() const { return tree->pc; }
-  bool done() const { return index >= static_cast<int>(tree->count); }
-  Tree* last() const { return index > 0 ? tree->children[index - 1] : nullptr; }
-};
-
 // An SsaEnv environment carries the current local variable renaming
 // as well as the current effect and control dependency in the TF graph.
 // It maintains a control state that tracks whether the environment
@@ -72,19 +61,30 @@
     control = nullptr;
     effect = nullptr;
   }
+  void SetNotMerged() {
+    if (state == kMerged) state = kReached;
+  }
 };
 
-// An entry in the stack of blocks during decoding.
-struct Block {
-  SsaEnv* ssa_env;  // SSA renaming environment.
-  int stack_depth;  // production stack depth.
+// An entry on the value stack.
+struct Value {
+  const byte* pc;
+  TFNode* node;
+  LocalType type;
 };
 
-// An entry in the stack of ifs during decoding.
-struct IfEnv {
-  SsaEnv* false_env;
-  SsaEnv* merge_env;
-  SsaEnv** case_envs;
+// An entry on the control stack (i.e. if, block, loop).
+struct Control {
+  const byte* pc;
+  int stack_depth;    // stack height at the beginning of the construct.
+  SsaEnv* end_env;    // end environment for the construct.
+  SsaEnv* false_env;  // false environment (only for if).
+  TFNode* node;       // result node for the construct.
+  LocalType type;     // result type for the construct.
+  bool is_loop;       // true if this is the inner label of a loop.
+
+  bool is_if() { return *pc == kExprIf; }
+  bool is_block() { return *pc == kExprBlock; }
 };
 
 // Macros that build nodes only if there is a graph and the current SSA
@@ -157,30 +157,50 @@
     return false;
   }
 
-  inline bool Validate(const byte* pc, FunctionIndexOperand& operand) {
+  inline bool Validate(const byte* pc, CallFunctionOperand& operand) {
     ModuleEnv* m = module_;
     if (m && m->module && operand.index < m->module->functions.size()) {
       operand.sig = m->module->functions[operand.index].sig;
+      uint32_t expected = static_cast<uint32_t>(operand.sig->parameter_count());
+      if (operand.arity != expected) {
+        error(pc, pc + 1,
+              "arity mismatch in direct function call (expected %u, got %u)",
+              expected, operand.arity);
+        return false;
+      }
       return true;
     }
     error(pc, pc + 1, "invalid function index");
     return false;
   }
 
-  inline bool Validate(const byte* pc, SignatureIndexOperand& operand) {
+  inline bool Validate(const byte* pc, CallIndirectOperand& operand) {
     ModuleEnv* m = module_;
     if (m && m->module && operand.index < m->module->signatures.size()) {
       operand.sig = m->module->signatures[operand.index];
+      uint32_t expected = static_cast<uint32_t>(operand.sig->parameter_count());
+      if (operand.arity != expected) {
+        error(pc, pc + 1,
+              "arity mismatch in indirect function call (expected %u, got %u)",
+              expected, operand.arity);
+        return false;
+      }
       return true;
     }
     error(pc, pc + 1, "invalid signature index");
     return false;
   }
 
-  inline bool Validate(const byte* pc, ImportIndexOperand& operand) {
+  inline bool Validate(const byte* pc, CallImportOperand& operand) {
     ModuleEnv* m = module_;
     if (m && m->module && operand.index < m->module->import_table.size()) {
       operand.sig = m->module->import_table[operand.index].sig;
+      uint32_t expected = static_cast<uint32_t>(operand.sig->parameter_count());
+      if (operand.arity != expected) {
+        error(pc, pc + 1, "arity mismatch in import call (expected %u, got %u)",
+              expected, operand.arity);
+        return false;
+      }
       return true;
     }
     error(pc, pc + 1, "invalid signature index");
@@ -188,9 +208,13 @@
   }
 
   inline bool Validate(const byte* pc, BreakDepthOperand& operand,
-                       ZoneVector<Block>& blocks) {
-    if (operand.depth < blocks.size()) {
-      operand.target = &blocks[blocks.size() - operand.depth - 1];
+                       ZoneVector<Control>& control) {
+    if (operand.arity > 1) {
+      error(pc, pc + 1, "invalid arity for br or br_if");
+      return false;
+    }
+    if (operand.depth < control.size()) {
+      operand.target = &control[control.size() - operand.depth - 1];
       return true;
     }
     error(pc, pc + 1, "invalid break depth");
@@ -199,6 +223,10 @@
 
   bool Validate(const byte* pc, BranchTableOperand& operand,
                 size_t block_depth) {
+    if (operand.arity > 1) {
+      error(pc, pc + 1, "invalid arity for break");
+      return false;
+    }
     // Verify table.
     for (uint32_t i = 0; i < operand.table_count + 1; i++) {
       uint32_t target = operand.read_entry(this, i);
@@ -229,46 +257,49 @@
       case kExprLoadGlobal:
       case kExprNop:
       case kExprUnreachable:
+      case kExprEnd:
+      case kExprBlock:
+      case kExprLoop:
         return 0;
 
-      case kExprBr:
       case kExprStoreGlobal:
       case kExprSetLocal:
+      case kExprElse:
         return 1;
 
+      case kExprBr: {
+        BreakDepthOperand operand(this, pc);
+        return operand.arity;
+      }
+      case kExprBrIf: {
+        BreakDepthOperand operand(this, pc);
+        return 1 + operand.arity;
+      }
+      case kExprBrTable: {
+        BranchTableOperand operand(this, pc);
+        return 1 + operand.arity;
+      }
+
       case kExprIf:
-      case kExprBrIf:
-        return 2;
-      case kExprIfElse:
+        return 1;
       case kExprSelect:
         return 3;
 
-      case kExprBlock:
-      case kExprLoop: {
-        BlockCountOperand operand(this, pc);
-        return operand.count;
-      }
-
       case kExprCallFunction: {
-        FunctionIndexOperand operand(this, pc);
-        return static_cast<int>(
-            module_->GetFunctionSignature(operand.index)->parameter_count());
+        CallFunctionOperand operand(this, pc);
+        return operand.arity;
       }
       case kExprCallIndirect: {
-        SignatureIndexOperand operand(this, pc);
-        return 1 + static_cast<int>(
-                       module_->GetSignature(operand.index)->parameter_count());
+        CallIndirectOperand operand(this, pc);
+        return 1 + operand.arity;
       }
       case kExprCallImport: {
-        ImportIndexOperand operand(this, pc);
-        return static_cast<int>(
-            module_->GetImportSignature(operand.index)->parameter_count());
+        CallImportOperand operand(this, pc);
+        return operand.arity;
       }
       case kExprReturn: {
-        return static_cast<int>(sig_->return_count());
-      }
-      case kExprBrTable: {
-        return 1;
+        ReturnArityOperand operand(this, pc);
+        return operand.arity;
       }
 
 #define DECLARE_OPCODE_CASE(name, opcode, sig) \
@@ -281,7 +312,6 @@
         FOREACH_SIMPLE_OPCODE(DECLARE_OPCODE_CASE)
         FOREACH_ASMJS_COMPAT_OPCODE(DECLARE_OPCODE_CASE)
 #undef DECLARE_OPCODE_CASE
-      case kExprDeclLocals:
       default:
         UNREACHABLE();
         return 0;
@@ -298,11 +328,6 @@
         MemoryAccessOperand operand(this, pc);
         return 1 + operand.length;
       }
-      case kExprBlock:
-      case kExprLoop: {
-        BlockCountOperand operand(this, pc);
-        return 1 + operand.length;
-      }
       case kExprBr:
       case kExprBrIf: {
         BreakDepthOperand operand(this, pc);
@@ -315,15 +340,15 @@
       }
 
       case kExprCallFunction: {
-        FunctionIndexOperand operand(this, pc);
+        CallFunctionOperand operand(this, pc);
         return 1 + operand.length;
       }
       case kExprCallIndirect: {
-        SignatureIndexOperand operand(this, pc);
+        CallIndirectOperand operand(this, pc);
         return 1 + operand.length;
       }
       case kExprCallImport: {
-        ImportIndexOperand operand(this, pc);
+        CallImportOperand operand(this, pc);
         return 1 + operand.length;
       }
 
@@ -350,6 +375,10 @@
         return 5;
       case kExprF64Const:
         return 9;
+      case kExprReturn: {
+        ReturnArityOperand operand(this, pc);
+        return 1 + operand.length;
+      }
 
       default:
         return 1;
@@ -357,7 +386,6 @@
   }
 };
 
-
 // A shift-reduce-parser strategy for decoding Wasm code that uses an explicit
 // shift-reduce strategy with multiple internal stacks.
 class SR_WasmDecoder : public WasmDecoder {
@@ -368,55 +396,62 @@
         builder_(builder),
         base_(body.base),
         local_type_vec_(zone),
-        trees_(zone),
         stack_(zone),
-        blocks_(zone),
-        ifs_(zone) {
+        control_(zone) {
     local_types_ = &local_type_vec_;
   }
 
-  TreeResult Decode() {
+  bool Decode() {
+    base::ElapsedTimer decode_timer;
+    if (FLAG_trace_wasm_decode_time) {
+      decode_timer.Start();
+    }
+    stack_.clear();
+    control_.clear();
+
     if (end_ < pc_) {
       error(pc_, "function body end < start");
-      return result_;
+      return false;
     }
 
     DecodeLocalDecls();
     InitSsaEnv();
     DecodeFunctionBody();
 
-    Tree* tree = nullptr;
-    if (ok()) {
-      if (ssa_env_->go()) {
-        if (stack_.size() > 0) {
-          error(stack_.back().pc(), end_, "fell off end of code");
-        }
-        AddImplicitReturnAtEnd();
-      }
-      if (trees_.size() == 0) {
-        if (sig_->return_count() > 0) {
-          error(start_, "no trees created");
-        }
-      } else {
-        tree = trees_[0];
-      }
+    if (failed()) return TraceFailed();
+
+    if (!control_.empty()) {
+      error(pc_, control_.back().pc, "unterminated control structure");
+      return TraceFailed();
     }
 
-    if (ok()) {
-      TRACE("wasm-decode ok\n");
+    if (ssa_env_->go()) {
+      TRACE("  @%-6d #xx:%-20s|", startrel(pc_), "ImplicitReturn");
+      DoReturn();
+      if (failed()) return TraceFailed();
+      TRACE("\n");
+    }
+
+    if (FLAG_trace_wasm_decode_time) {
+      double ms = decode_timer.Elapsed().InMillisecondsF();
+      PrintF("wasm-decode ok (%0.3f ms)\n\n", ms);
     } else {
-      TRACE("wasm-error module+%-6d func+%d: %s\n\n", baserel(error_pc_),
-            startrel(error_pc_), error_msg_.get());
+      TRACE("wasm-decode ok\n\n");
     }
 
-    return toResult(tree);
+    return true;
+  }
+
+  bool TraceFailed() {
+    TRACE("wasm-error module+%-6d func+%d: %s\n\n", baserel(error_pc_),
+          startrel(error_pc_), error_msg_.get());
+    return false;
   }
 
   bool DecodeLocalDecls(AstLocalDecls& decls) {
     DecodeLocalDecls();
     if (failed()) return false;
     decls.decls_encoded_size = pc_offset();
-    decls.total_local_count = 0;
     decls.local_types.reserve(local_type_vec_.size());
     for (size_t pos = 0; pos < local_type_vec_.size();) {
       uint32_t count = 0;
@@ -425,9 +460,9 @@
         pos++;
         count++;
       }
-      decls.total_local_count += count;
       decls.local_types.push_back(std::pair<LocalType, uint32_t>(type, count));
     }
+    decls.total_local_count = static_cast<uint32_t>(local_type_vec_.size());
     return true;
   }
 
@@ -448,15 +483,12 @@
   Zone* zone_;
   TFBuilder* builder_;
   const byte* base_;
-  TreeResult result_;
 
   SsaEnv* ssa_env_;
 
-  ZoneVector<LocalType> local_type_vec_;
-  ZoneVector<Tree*> trees_;
-  ZoneVector<Production> stack_;
-  ZoneVector<Block> blocks_;
-  ZoneVector<IfEnv> ifs_;
+  ZoneVector<LocalType> local_type_vec_;  // types of local variables.
+  ZoneVector<Value> stack_;               // stack of values.
+  ZoneVector<Control> control_;           // stack of blocks, loops, and ifs.
 
   inline bool build() { return builder_ && ssa_env_->go(); }
 
@@ -508,53 +540,6 @@
     }
   }
 
-  void Leaf(LocalType type, TFNode* node = nullptr) {
-    size_t size = sizeof(Tree);
-    Tree* tree = reinterpret_cast<Tree*>(zone_->New(size));
-    tree->type = type;
-    tree->count = 0;
-    tree->pc = pc_;
-    tree->node = node;
-    tree->children[0] = nullptr;
-    Reduce(tree);
-  }
-
-  void Shift(LocalType type, uint32_t count) {
-    size_t size =
-        sizeof(Tree) + (count == 0 ? 0 : ((count - 1) * sizeof(Tree*)));
-    Tree* tree = reinterpret_cast<Tree*>(zone_->New(size));
-    tree->type = type;
-    tree->count = count;
-    tree->pc = pc_;
-    tree->node = nullptr;
-    for (uint32_t i = 0; i < count; i++) tree->children[i] = nullptr;
-    if (count == 0) {
-      Production p = {tree, 0};
-      Reduce(&p);
-      Reduce(tree);
-    } else {
-      stack_.push_back({tree, 0});
-    }
-  }
-
-  void Reduce(Tree* tree) {
-    while (true) {
-      if (stack_.size() == 0) {
-        trees_.push_back(tree);
-        break;
-      }
-      Production* p = &stack_.back();
-      p->tree->children[p->index++] = tree;
-      Reduce(p);
-      if (p->done()) {
-        tree = p->tree;
-        stack_.pop_back();
-      } else {
-        break;
-      }
-    }
-  }
-
   char* indentation() {
     static const int kMaxIndent = 64;
     static char bytes[kMaxIndent + 1];
@@ -605,11 +590,11 @@
     total_locals_ = local_type_vec_.size();
   }
 
-  // Decodes the body of a function, producing reduced trees into {result}.
+  // Decodes the body of a function.
   void DecodeFunctionBody() {
-    TRACE("wasm-decode %p...%p (%d bytes) %s\n",
+    TRACE("wasm-decode %p...%p (module+%d, %d bytes) %s\n",
           reinterpret_cast<const void*>(start_),
-          reinterpret_cast<const void*>(limit_),
+          reinterpret_cast<const void*>(limit_), baserel(pc_),
           static_cast<int>(limit_ - start_), builder_ ? "graph building" : "");
 
     if (pc_ >= limit_) return;  // Nothing to do.
@@ -617,49 +602,45 @@
     while (true) {  // decoding loop.
       int len = 1;
       WasmOpcode opcode = static_cast<WasmOpcode>(*pc_);
-      TRACE("wasm-decode module+%-6d %s func+%d: 0x%02x %s\n", baserel(pc_),
-            indentation(), startrel(pc_), opcode,
-            WasmOpcodes::OpcodeName(opcode));
+      TRACE("  @%-6d #%02x:%-20s|", startrel(pc_), opcode,
+            WasmOpcodes::ShortOpcodeName(opcode));
 
       FunctionSig* sig = WasmOpcodes::Signature(opcode);
       if (sig) {
-        // A simple expression with a fixed signature.
-        Shift(sig->GetReturn(), static_cast<uint32_t>(sig->parameter_count()));
-        pc_ += len;
-        if (pc_ >= limit_) {
-          // End of code reached or exceeded.
-          if (pc_ > limit_ && ok()) {
-            error("Beyond end of code");
+        // Fast case of a simple operator.
+        TFNode* node;
+        switch (sig->parameter_count()) {
+          case 1: {
+            Value val = Pop(0, sig->GetParam(0));
+            node = BUILD(Unop, opcode, val.node, position());
+            break;
           }
-          return;
+          case 2: {
+            Value rval = Pop(1, sig->GetParam(1));
+            Value lval = Pop(0, sig->GetParam(0));
+            node = BUILD(Binop, opcode, lval.node, rval.node, position());
+            break;
+          }
+          default:
+            UNREACHABLE();
+            node = nullptr;
+            break;
         }
-        continue;  // back to decoding loop.
-      }
-
-      switch (opcode) {
-        case kExprNop:
-          Leaf(kAstStmt);
-          break;
-        case kExprBlock: {
-          BlockCountOperand operand(this, pc_);
-          if (operand.count < 1) {
-            Leaf(kAstStmt);
-          } else {
-            Shift(kAstEnd, operand.count);
+        Push(GetReturnType(sig), node);
+      } else {
+        // Complex bytecode.
+        switch (opcode) {
+          case kExprNop:
+            Push(kAstStmt, nullptr);
+            break;
+          case kExprBlock: {
             // The break environment is the outer environment.
             SsaEnv* break_env = ssa_env_;
             PushBlock(break_env);
             SetEnv("block:start", Steal(break_env));
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprLoop: {
-          BlockCountOperand operand(this, pc_);
-          if (operand.count < 1) {
-            Leaf(kAstStmt);
-          } else {
-            Shift(kAstEnd, operand.count);
+          case kExprLoop: {
             // The break environment is the outer environment.
             SsaEnv* break_env = ssa_env_;
             PushBlock(break_env);
@@ -667,268 +648,535 @@
             // The continue environment is the inner environment.
             PrepareForLoop(pc_, cont_env);
             SetEnv("loop:start", Split(cont_env));
-            if (ssa_env_->go()) ssa_env_->state = SsaEnv::kReached;
-            PushBlock(cont_env);
-            blocks_.back().stack_depth = -1;  // no production for inner block.
+            ssa_env_->SetNotMerged();
+            PushLoop(cont_env);
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprIf:
-          Shift(kAstStmt, 2);
-          break;
-        case kExprIfElse:
-          Shift(kAstEnd, 3);  // Result type is typeof(x) in {c ? x : y}.
-          break;
-        case kExprSelect:
-          Shift(kAstStmt, 3);  // Result type is typeof(x) in {c ? x : y}.
-          break;
-        case kExprBr: {
-          BreakDepthOperand operand(this, pc_);
-          if (Validate(pc_, operand, blocks_)) {
-            Shift(kAstEnd, 1);
+          case kExprIf: {
+            // Condition on top of stack. Split environments for branches.
+            Value cond = Pop(0, kAstI32);
+            TFNode* if_true = nullptr;
+            TFNode* if_false = nullptr;
+            BUILD(Branch, cond.node, &if_true, &if_false);
+            SsaEnv* end_env = ssa_env_;
+            SsaEnv* false_env = Split(ssa_env_);
+            false_env->control = if_false;
+            SsaEnv* true_env = Steal(ssa_env_);
+            true_env->control = if_true;
+            PushIf(end_env, false_env);
+            SetEnv("if:true", true_env);
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprBrIf: {
-          BreakDepthOperand operand(this, pc_);
-          if (Validate(pc_, operand, blocks_)) {
-            Shift(kAstStmt, 2);
+          case kExprElse: {
+            if (control_.empty()) {
+              error(pc_, "else does not match any if");
+              break;
+            }
+            Control* c = &control_.back();
+            if (!c->is_if()) {
+              error(pc_, c->pc, "else does not match an if");
+              break;
+            }
+            if (c->false_env == nullptr) {
+              error(pc_, c->pc, "else already present for if");
+              break;
+            }
+            Value val = PopUpTo(c->stack_depth);
+            MergeInto(c->end_env, &c->node, &c->type, val);
+            // Switch to environment for false branch.
+            SetEnv("if_else:false", c->false_env);
+            c->false_env = nullptr;  // record that an else is already seen
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprBrTable: {
-          BranchTableOperand operand(this, pc_);
-          if (Validate(pc_, operand, blocks_.size())) {
-            Shift(kAstEnd, 1);
+          case kExprEnd: {
+            if (control_.empty()) {
+              error(pc_, "end does not match any if or block");
+              break;
+            }
+            const char* name = "block:end";
+            Control* c = &control_.back();
+            if (c->is_loop) {
+              // Loops always push control in pairs.
+              control_.pop_back();
+              c = &control_.back();
+              name = "loop:end";
+            }
+            Value val = PopUpTo(c->stack_depth);
+            if (c->is_if()) {
+              if (c->false_env != nullptr) {
+                // End the true branch of a one-armed if.
+                Goto(c->false_env, c->end_env);
+                val = {val.pc, nullptr, kAstStmt};
+                name = "if:merge";
+              } else {
+                // End the false branch of a two-armed if.
+                name = "if_else:merge";
+              }
+            }
+            if (ssa_env_->go()) {
+              MergeInto(c->end_env, &c->node, &c->type, val);
+            }
+            SetEnv(name, c->end_env);
+            stack_.resize(c->stack_depth);
+            Push(c->type, c->node);
+            control_.pop_back();
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprReturn: {
-          int count = static_cast<int>(sig_->return_count());
-          if (count == 0) {
-            BUILD(Return, 0, builder_->Buffer(0));
-            ssa_env_->Kill();
-            Leaf(kAstEnd);
-          } else {
-            Shift(kAstEnd, count);
+          case kExprSelect: {
+            Value cond = Pop(2, kAstI32);
+            Value fval = Pop();
+            Value tval = Pop();
+            if (tval.type == kAstStmt || tval.type != fval.type) {
+              if (tval.type != kAstEnd && fval.type != kAstEnd) {
+                error(pc_, "type mismatch in select");
+                break;
+              }
+            }
+            if (build()) {
+              DCHECK(tval.type != kAstEnd);
+              DCHECK(fval.type != kAstEnd);
+              DCHECK(cond.type != kAstEnd);
+              TFNode* controls[2];
+              builder_->Branch(cond.node, &controls[0], &controls[1]);
+              TFNode* merge = builder_->Merge(2, controls);
+              TFNode* vals[2] = {tval.node, fval.node};
+              TFNode* phi = builder_->Phi(tval.type, 2, vals, merge);
+              Push(tval.type, phi);
+              ssa_env_->control = merge;
+            } else {
+              Push(tval.type, nullptr);
+            }
+            break;
           }
-          break;
-        }
-        case kExprUnreachable: {
-          BUILD0(Unreachable);
-          ssa_env_->Kill(SsaEnv::kControlEnd);
-          Leaf(kAstEnd, nullptr);
-          break;
-        }
-        case kExprI8Const: {
-          ImmI8Operand operand(this, pc_);
-          Leaf(kAstI32, BUILD(Int32Constant, operand.value));
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprI32Const: {
-          ImmI32Operand operand(this, pc_);
-          Leaf(kAstI32, BUILD(Int32Constant, operand.value));
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprI64Const: {
-          ImmI64Operand operand(this, pc_);
-          Leaf(kAstI64, BUILD(Int64Constant, operand.value));
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprF32Const: {
-          ImmF32Operand operand(this, pc_);
-          Leaf(kAstF32, BUILD(Float32Constant, operand.value));
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprF64Const: {
-          ImmF64Operand operand(this, pc_);
-          Leaf(kAstF64, BUILD(Float64Constant, operand.value));
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprGetLocal: {
-          LocalIndexOperand operand(this, pc_);
-          if (Validate(pc_, operand)) {
-            TFNode* val = build() ? ssa_env_->locals[operand.index] : nullptr;
-            Leaf(operand.type, val);
+          case kExprBr: {
+            BreakDepthOperand operand(this, pc_);
+            Value val = {pc_, nullptr, kAstStmt};
+            if (operand.arity) val = Pop();
+            if (Validate(pc_, operand, control_)) {
+              BreakTo(operand.target, val);
+            }
+            len = 1 + operand.length;
+            Push(kAstEnd, nullptr);
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprSetLocal: {
-          LocalIndexOperand operand(this, pc_);
-          if (Validate(pc_, operand)) {
-            Shift(operand.type, 1);
+          case kExprBrIf: {
+            BreakDepthOperand operand(this, pc_);
+            Value cond = Pop(operand.arity, kAstI32);
+            Value val = {pc_, nullptr, kAstStmt};
+            if (operand.arity == 1) val = Pop();
+            if (Validate(pc_, operand, control_)) {
+              SsaEnv* fenv = ssa_env_;
+              SsaEnv* tenv = Split(fenv);
+              fenv->SetNotMerged();
+              BUILD(Branch, cond.node, &tenv->control, &fenv->control);
+              ssa_env_ = tenv;
+              BreakTo(operand.target, val);
+              ssa_env_ = fenv;
+            }
+            len = 1 + operand.length;
+            Push(kAstStmt, nullptr);
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprLoadGlobal: {
-          GlobalIndexOperand operand(this, pc_);
-          if (Validate(pc_, operand)) {
-            Leaf(operand.type, BUILD(LoadGlobal, operand.index));
+          case kExprBrTable: {
+            BranchTableOperand operand(this, pc_);
+            if (Validate(pc_, operand, control_.size())) {
+              Value key = Pop(operand.arity, kAstI32);
+              Value val = {pc_, nullptr, kAstStmt};
+              if (operand.arity == 1) val = Pop();
+              if (failed()) break;
+
+              SsaEnv* break_env = ssa_env_;
+              if (operand.table_count > 0) {
+                // Build branches to the various blocks based on the table.
+                TFNode* sw = BUILD(Switch, operand.table_count + 1, key.node);
+
+                SsaEnv* copy = Steal(break_env);
+                ssa_env_ = copy;
+                for (uint32_t i = 0; i < operand.table_count + 1; i++) {
+                  uint16_t target = operand.read_entry(this, i);
+                  ssa_env_ = Split(copy);
+                  ssa_env_->control = (i == operand.table_count)
+                                          ? BUILD(IfDefault, sw)
+                                          : BUILD(IfValue, i, sw);
+                  int depth = target;
+                  Control* c = &control_[control_.size() - depth - 1];
+                  MergeInto(c->end_env, &c->node, &c->type, val);
+                }
+              } else {
+                // Only a default target. Do the equivalent of br.
+                uint16_t target = operand.read_entry(this, 0);
+                int depth = target;
+                Control* c = &control_[control_.size() - depth - 1];
+                MergeInto(c->end_env, &c->node, &c->type, val);
+              }
+              // br_table ends the control flow like br.
+              ssa_env_ = break_env;
+              Push(kAstStmt, nullptr);
+            }
+            len = 1 + operand.length;
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprStoreGlobal: {
-          GlobalIndexOperand operand(this, pc_);
-          if (Validate(pc_, operand)) {
-            Shift(operand.type, 1);
+          case kExprReturn: {
+            ReturnArityOperand operand(this, pc_);
+            if (operand.arity != sig_->return_count()) {
+              error(pc_, pc_ + 1, "arity mismatch in return");
+            }
+            DoReturn();
+            len = 1 + operand.length;
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprI32LoadMem8S:
-        case kExprI32LoadMem8U:
-        case kExprI32LoadMem16S:
-        case kExprI32LoadMem16U:
-        case kExprI32LoadMem:
-          len = DecodeLoadMem(pc_, kAstI32);
-          break;
-        case kExprI64LoadMem8S:
-        case kExprI64LoadMem8U:
-        case kExprI64LoadMem16S:
-        case kExprI64LoadMem16U:
-        case kExprI64LoadMem32S:
-        case kExprI64LoadMem32U:
-        case kExprI64LoadMem:
-          len = DecodeLoadMem(pc_, kAstI64);
-          break;
-        case kExprF32LoadMem:
-          len = DecodeLoadMem(pc_, kAstF32);
-          break;
-        case kExprF64LoadMem:
-          len = DecodeLoadMem(pc_, kAstF64);
-          break;
-        case kExprI32StoreMem8:
-        case kExprI32StoreMem16:
-        case kExprI32StoreMem:
-          len = DecodeStoreMem(pc_, kAstI32);
-          break;
-        case kExprI64StoreMem8:
-        case kExprI64StoreMem16:
-        case kExprI64StoreMem32:
-        case kExprI64StoreMem:
-          len = DecodeStoreMem(pc_, kAstI64);
-          break;
-        case kExprF32StoreMem:
-          len = DecodeStoreMem(pc_, kAstF32);
-          break;
-        case kExprF64StoreMem:
-          len = DecodeStoreMem(pc_, kAstF64);
-          break;
-        case kExprMemorySize:
-          Leaf(kAstI32, BUILD(MemSize, 0));
-          break;
-        case kExprGrowMemory:
-          Shift(kAstI32, 1);
-          break;
-        case kExprCallFunction: {
-          FunctionIndexOperand operand(this, pc_);
-          if (Validate(pc_, operand)) {
-            LocalType type = operand.sig->return_count() == 0
-                                 ? kAstStmt
-                                 : operand.sig->GetReturn();
-            Shift(type, static_cast<int>(operand.sig->parameter_count()));
+          case kExprUnreachable: {
+            Push(kAstEnd, BUILD(Unreachable, position()));
+            ssa_env_->Kill(SsaEnv::kControlEnd);
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprCallIndirect: {
-          SignatureIndexOperand operand(this, pc_);
-          if (Validate(pc_, operand)) {
-            LocalType type = operand.sig->return_count() == 0
-                                 ? kAstStmt
-                                 : operand.sig->GetReturn();
-            Shift(type, static_cast<int>(1 + operand.sig->parameter_count()));
+          case kExprI8Const: {
+            ImmI8Operand operand(this, pc_);
+            Push(kAstI32, BUILD(Int32Constant, operand.value));
+            len = 1 + operand.length;
+            break;
           }
-          len = 1 + operand.length;
-          break;
-        }
-        case kExprCallImport: {
-          ImportIndexOperand operand(this, pc_);
-          if (Validate(pc_, operand)) {
-            LocalType type = operand.sig->return_count() == 0
-                                 ? kAstStmt
-                                 : operand.sig->GetReturn();
-            Shift(type, static_cast<int>(operand.sig->parameter_count()));
+          case kExprI32Const: {
+            ImmI32Operand operand(this, pc_);
+            Push(kAstI32, BUILD(Int32Constant, operand.value));
+            len = 1 + operand.length;
+            break;
           }
-          len = 1 + operand.length;
-          break;
+          case kExprI64Const: {
+            ImmI64Operand operand(this, pc_);
+            Push(kAstI64, BUILD(Int64Constant, operand.value));
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprF32Const: {
+            ImmF32Operand operand(this, pc_);
+            Push(kAstF32, BUILD(Float32Constant, operand.value));
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprF64Const: {
+            ImmF64Operand operand(this, pc_);
+            Push(kAstF64, BUILD(Float64Constant, operand.value));
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprGetLocal: {
+            LocalIndexOperand operand(this, pc_);
+            if (Validate(pc_, operand)) {
+              if (build()) {
+                Push(operand.type, ssa_env_->locals[operand.index]);
+              } else {
+                Push(operand.type, nullptr);
+              }
+            }
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprSetLocal: {
+            LocalIndexOperand operand(this, pc_);
+            if (Validate(pc_, operand)) {
+              Value val = Pop(0, local_type_vec_[operand.index]);
+              if (ssa_env_->locals) ssa_env_->locals[operand.index] = val.node;
+              Push(val.type, val.node);
+            }
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprLoadGlobal: {
+            GlobalIndexOperand operand(this, pc_);
+            if (Validate(pc_, operand)) {
+              Push(operand.type, BUILD(LoadGlobal, operand.index));
+            }
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprStoreGlobal: {
+            GlobalIndexOperand operand(this, pc_);
+            if (Validate(pc_, operand)) {
+              Value val = Pop(0, operand.type);
+              BUILD(StoreGlobal, operand.index, val.node);
+              Push(val.type, val.node);
+            }
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprI32LoadMem8S:
+            len = DecodeLoadMem(kAstI32, MachineType::Int8());
+            break;
+          case kExprI32LoadMem8U:
+            len = DecodeLoadMem(kAstI32, MachineType::Uint8());
+            break;
+          case kExprI32LoadMem16S:
+            len = DecodeLoadMem(kAstI32, MachineType::Int16());
+            break;
+          case kExprI32LoadMem16U:
+            len = DecodeLoadMem(kAstI32, MachineType::Uint16());
+            break;
+          case kExprI32LoadMem:
+            len = DecodeLoadMem(kAstI32, MachineType::Int32());
+            break;
+
+          case kExprI64LoadMem8S:
+            len = DecodeLoadMem(kAstI64, MachineType::Int8());
+            break;
+          case kExprI64LoadMem8U:
+            len = DecodeLoadMem(kAstI64, MachineType::Uint8());
+            break;
+          case kExprI64LoadMem16S:
+            len = DecodeLoadMem(kAstI64, MachineType::Int16());
+            break;
+          case kExprI64LoadMem16U:
+            len = DecodeLoadMem(kAstI64, MachineType::Uint16());
+            break;
+          case kExprI64LoadMem32S:
+            len = DecodeLoadMem(kAstI64, MachineType::Int32());
+            break;
+          case kExprI64LoadMem32U:
+            len = DecodeLoadMem(kAstI64, MachineType::Uint32());
+            break;
+          case kExprI64LoadMem:
+            len = DecodeLoadMem(kAstI64, MachineType::Int64());
+            break;
+          case kExprF32LoadMem:
+            len = DecodeLoadMem(kAstF32, MachineType::Float32());
+            break;
+          case kExprF64LoadMem:
+            len = DecodeLoadMem(kAstF64, MachineType::Float64());
+            break;
+          case kExprI32StoreMem8:
+            len = DecodeStoreMem(kAstI32, MachineType::Int8());
+            break;
+          case kExprI32StoreMem16:
+            len = DecodeStoreMem(kAstI32, MachineType::Int16());
+            break;
+          case kExprI32StoreMem:
+            len = DecodeStoreMem(kAstI32, MachineType::Int32());
+            break;
+          case kExprI64StoreMem8:
+            len = DecodeStoreMem(kAstI64, MachineType::Int8());
+            break;
+          case kExprI64StoreMem16:
+            len = DecodeStoreMem(kAstI64, MachineType::Int16());
+            break;
+          case kExprI64StoreMem32:
+            len = DecodeStoreMem(kAstI64, MachineType::Int32());
+            break;
+          case kExprI64StoreMem:
+            len = DecodeStoreMem(kAstI64, MachineType::Int64());
+            break;
+          case kExprF32StoreMem:
+            len = DecodeStoreMem(kAstF32, MachineType::Float32());
+            break;
+          case kExprF64StoreMem:
+            len = DecodeStoreMem(kAstF64, MachineType::Float64());
+            break;
+
+          case kExprMemorySize:
+            Push(kAstI32, BUILD(MemSize, 0));
+            break;
+          case kExprGrowMemory: {
+            Value val = Pop(0, kAstI32);
+            USE(val);  // TODO(titzer): build node for grow memory
+            Push(kAstI32, BUILD(Int32Constant, 0));
+            break;
+          }
+          case kExprCallFunction: {
+            CallFunctionOperand operand(this, pc_);
+            if (Validate(pc_, operand)) {
+              TFNode** buffer = PopArgs(operand.sig);
+              TFNode* call =
+                  BUILD(CallDirect, operand.index, buffer, position());
+              Push(GetReturnType(operand.sig), call);
+            }
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprCallIndirect: {
+            CallIndirectOperand operand(this, pc_);
+            if (Validate(pc_, operand)) {
+              TFNode** buffer = PopArgs(operand.sig);
+              Value index = Pop(0, kAstI32);
+              if (buffer) buffer[0] = index.node;
+              TFNode* call =
+                  BUILD(CallIndirect, operand.index, buffer, position());
+              Push(GetReturnType(operand.sig), call);
+            }
+            len = 1 + operand.length;
+            break;
+          }
+          case kExprCallImport: {
+            CallImportOperand operand(this, pc_);
+            if (Validate(pc_, operand)) {
+              TFNode** buffer = PopArgs(operand.sig);
+              TFNode* call =
+                  BUILD(CallImport, operand.index, buffer, position());
+              Push(GetReturnType(operand.sig), call);
+            }
+            len = 1 + operand.length;
+            break;
+          }
+          default:
+            error("Invalid opcode");
+            return;
         }
-        case kExprDeclLocals:
-        default:
-          error("Invalid opcode");
-          return;
+      }  // end complex bytecode
+
+#if DEBUG
+      if (FLAG_trace_wasm_decoder) {
+        for (size_t i = 0; i < stack_.size(); i++) {
+          Value& val = stack_[i];
+          WasmOpcode opcode = static_cast<WasmOpcode>(*val.pc);
+          PrintF(" %c@%d:%s", WasmOpcodes::ShortNameOf(val.type),
+                 static_cast<int>(val.pc - start_),
+                 WasmOpcodes::ShortOpcodeName(opcode));
+          switch (opcode) {
+            case kExprI32Const: {
+              ImmI32Operand operand(this, val.pc);
+              PrintF("[%d]", operand.value);
+              break;
+            }
+            case kExprGetLocal: {
+              LocalIndexOperand operand(this, val.pc);
+              PrintF("[%u]", operand.index);
+              break;
+            }
+            case kExprSetLocal: {
+              LocalIndexOperand operand(this, val.pc);
+              PrintF("[%u]", operand.index);
+              break;
+            }
+            default:
+              break;
+          }
+        }
+        PrintF("\n");
       }
+#endif
       pc_ += len;
       if (pc_ >= limit_) {
         // End of code reached or exceeded.
-        if (pc_ > limit_ && ok()) {
-          error("Beyond end of code");
-        }
+        if (pc_ > limit_ && ok()) error("Beyond end of code");
         return;
       }
+    }  // end decode loop
+  }    // end DecodeFunctionBody()
+
+  TFNode** PopArgs(FunctionSig* sig) {
+    if (build()) {
+      int count = static_cast<int>(sig->parameter_count());
+      TFNode** buffer = builder_->Buffer(count + 1);
+      buffer[0] = nullptr;  // reserved for code object or function index.
+      for (int i = count - 1; i >= 0; i--) {
+        buffer[i + 1] = Pop(i, sig->GetParam(i)).node;
+      }
+      return buffer;
+    } else {
+      int count = static_cast<int>(sig->parameter_count());
+      for (int i = count - 1; i >= 0; i--) {
+        Pop(i, sig->GetParam(i));
+      }
+      return nullptr;
     }
   }
 
-  void PushBlock(SsaEnv* ssa_env) {
-    blocks_.push_back({ssa_env, static_cast<int>(stack_.size() - 1)});
+  LocalType GetReturnType(FunctionSig* sig) {
+    return sig->return_count() == 0 ? kAstStmt : sig->GetReturn();
   }
 
-  int DecodeLoadMem(const byte* pc, LocalType type) {
-    MemoryAccessOperand operand(this, pc);
-    Shift(type, 1);
+  void PushBlock(SsaEnv* end_env) {
+    int stack_depth = static_cast<int>(stack_.size());
+    control_.push_back(
+        {pc_, stack_depth, end_env, nullptr, nullptr, kAstEnd, false});
+  }
+
+  void PushLoop(SsaEnv* end_env) {
+    int stack_depth = static_cast<int>(stack_.size());
+    control_.push_back(
+        {pc_, stack_depth, end_env, nullptr, nullptr, kAstEnd, true});
+  }
+
+  void PushIf(SsaEnv* end_env, SsaEnv* false_env) {
+    int stack_depth = static_cast<int>(stack_.size());
+    control_.push_back(
+        {pc_, stack_depth, end_env, false_env, nullptr, kAstStmt, false});
+  }
+
+  int DecodeLoadMem(LocalType type, MachineType mem_type) {
+    MemoryAccessOperand operand(this, pc_);
+    Value index = Pop(0, kAstI32);
+    TFNode* node =
+        BUILD(LoadMem, type, mem_type, index.node, operand.offset, position());
+    Push(type, node);
     return 1 + operand.length;
   }
 
-  int DecodeStoreMem(const byte* pc, LocalType type) {
-    MemoryAccessOperand operand(this, pc);
-    Shift(type, 2);
+  int DecodeStoreMem(LocalType type, MachineType mem_type) {
+    MemoryAccessOperand operand(this, pc_);
+    Value val = Pop(1, type);
+    Value index = Pop(0, kAstI32);
+    BUILD(StoreMem, mem_type, index.node, operand.offset, val.node, position());
+    Push(type, val.node);
     return 1 + operand.length;
   }
 
-  void AddImplicitReturnAtEnd() {
-    int retcount = static_cast<int>(sig_->return_count());
-    if (retcount == 0) {
-      BUILD0(ReturnVoid);
-      return;
+  void DoReturn() {
+    int count = static_cast<int>(sig_->return_count());
+    TFNode** buffer = nullptr;
+    if (build()) buffer = builder_->Buffer(count);
+
+    // Pop return values off the stack in reverse order.
+    for (int i = count - 1; i >= 0; i--) {
+      Value val = Pop(i, sig_->GetReturn(i));
+      if (buffer) buffer[i] = val.node;
     }
 
-    if (static_cast<int>(trees_.size()) < retcount) {
-      error(limit_, nullptr,
-            "ImplicitReturn expects %d arguments, only %d remain", retcount,
-            static_cast<int>(trees_.size()));
-      return;
-    }
+    Push(kAstEnd, BUILD(Return, count, buffer));
+    ssa_env_->Kill(SsaEnv::kControlEnd);
+  }
 
-    TRACE("wasm-decode implicit return of %d args\n", retcount);
+  void Push(LocalType type, TFNode* node) {
+    stack_.push_back({pc_, node, type});
+  }
 
-    TFNode** buffer = BUILD(Buffer, retcount);
-    for (int index = 0; index < retcount; index++) {
-      Tree* tree = trees_[trees_.size() - 1 - index];
-      if (buffer) buffer[index] = tree->node;
-      LocalType expected = sig_->GetReturn(index);
-      if (tree->type != expected) {
-        error(limit_, tree->pc,
-              "ImplicitReturn[%d] expected type %s, found %s of type %s", index,
-              WasmOpcodes::TypeName(expected),
-              WasmOpcodes::OpcodeName(tree->opcode()),
-              WasmOpcodes::TypeName(tree->type));
-        return;
+  const char* SafeOpcodeNameAt(const byte* pc) {
+    if (pc >= end_) return "<end>";
+    return WasmOpcodes::ShortOpcodeName(static_cast<WasmOpcode>(*pc));
+  }
+
+  Value Pop(int index, LocalType expected) {
+    Value val = Pop();
+    if (val.type != expected) {
+      if (val.type != kAstEnd) {
+        error(pc_, val.pc, "%s[%d] expected type %s, found %s of type %s",
+              SafeOpcodeNameAt(pc_), index, WasmOpcodes::TypeName(expected),
+              SafeOpcodeNameAt(val.pc), WasmOpcodes::TypeName(val.type));
       }
     }
+    return val;
+  }
 
-    BUILD(Return, retcount, buffer);
+  Value Pop() {
+    size_t limit = control_.empty() ? 0 : control_.back().stack_depth;
+    if (stack_.size() <= limit) {
+      Value val = {pc_, nullptr, kAstStmt};
+      error(pc_, pc_, "%s found empty stack", SafeOpcodeNameAt(pc_));
+      return val;
+    }
+    Value val = stack_.back();
+    stack_.pop_back();
+    return val;
+  }
+
+  Value PopUpTo(int stack_depth) {
+    if (stack_depth == stack_.size()) {
+      Value val = {pc_, nullptr, kAstStmt};
+      return val;
+    } else {
+      DCHECK_LE(stack_depth, static_cast<int>(stack_.size()));
+      Value val = Pop();
+      stack_.resize(stack_depth);
+      return val;
+    }
   }
 
   int baserel(const byte* ptr) {
@@ -937,437 +1185,65 @@
 
   int startrel(const byte* ptr) { return static_cast<int>(ptr - start_); }
 
-  void Reduce(Production* p) {
-    WasmOpcode opcode = p->opcode();
-    TRACE("-----reduce module+%-6d %s func+%d: 0x%02x %s\n", baserel(p->pc()),
-          indentation(), startrel(p->pc()), opcode,
-          WasmOpcodes::OpcodeName(opcode));
-    FunctionSig* sig = WasmOpcodes::Signature(opcode);
-    if (sig) {
-      // A simple expression with a fixed signature.
-      TypeCheckLast(p, sig->GetParam(p->index - 1));
-      if (p->done() && build()) {
-        if (sig->parameter_count() == 2) {
-          p->tree->node = builder_->Binop(opcode, p->tree->children[0]->node,
-                                          p->tree->children[1]->node);
-        } else if (sig->parameter_count() == 1) {
-          p->tree->node = builder_->Unop(opcode, p->tree->children[0]->node);
-        } else {
-          UNREACHABLE();
-        }
-      }
-      return;
-    }
-
-    switch (opcode) {
-      case kExprBlock: {
-        if (p->done()) {
-          Block* last = &blocks_.back();
-          DCHECK_EQ(stack_.size() - 1, last->stack_depth);
-          // fallthrough with the last expression.
-          ReduceBreakToExprBlock(p, last);
-          SetEnv("block:end", last->ssa_env);
-          blocks_.pop_back();
-        }
-        break;
-      }
-      case kExprLoop: {
-        if (p->done()) {
-          // Pop the continue environment.
-          blocks_.pop_back();
-          // Get the break environment.
-          Block* last = &blocks_.back();
-          DCHECK_EQ(stack_.size() - 1, last->stack_depth);
-          // fallthrough with the last expression.
-          ReduceBreakToExprBlock(p, last);
-          SetEnv("loop:end", last->ssa_env);
-          blocks_.pop_back();
-        }
-        break;
-      }
-      case kExprIf: {
-        if (p->index == 1) {
-          // Condition done. Split environment for true branch.
-          TypeCheckLast(p, kAstI32);
-          SsaEnv* false_env = ssa_env_;
-          SsaEnv* true_env = Split(ssa_env_);
-          ifs_.push_back({nullptr, false_env, nullptr});
-          BUILD(Branch, p->last()->node, &true_env->control,
-                &false_env->control);
-          SetEnv("if:true", true_env);
-        } else if (p->index == 2) {
-          // True block done. Merge true and false environments.
-          IfEnv* env = &ifs_.back();
-          SsaEnv* merge = env->merge_env;
-          if (merge->go()) {
-            merge->state = SsaEnv::kReached;
-            Goto(ssa_env_, merge);
-          }
-          SetEnv("if:merge", merge);
-          ifs_.pop_back();
-        }
-        break;
-      }
-      case kExprIfElse: {
-        if (p->index == 1) {
-          // Condition done. Split environment for true and false branches.
-          TypeCheckLast(p, kAstI32);
-          SsaEnv* merge_env = ssa_env_;
-          TFNode* if_true = nullptr;
-          TFNode* if_false = nullptr;
-          BUILD(Branch, p->last()->node, &if_true, &if_false);
-          SsaEnv* false_env = Split(ssa_env_);
-          SsaEnv* true_env = Steal(ssa_env_);
-          false_env->control = if_false;
-          true_env->control = if_true;
-          ifs_.push_back({false_env, merge_env, nullptr});
-          SetEnv("if_else:true", true_env);
-        } else if (p->index == 2) {
-          // True expr done.
-          IfEnv* env = &ifs_.back();
-          MergeIntoProduction(p, env->merge_env, p->last());
-          // Switch to environment for false branch.
-          SsaEnv* false_env = ifs_.back().false_env;
-          SetEnv("if_else:false", false_env);
-        } else if (p->index == 3) {
-          // False expr done.
-          IfEnv* env = &ifs_.back();
-          MergeIntoProduction(p, env->merge_env, p->last());
-          SetEnv("if_else:merge", env->merge_env);
-          ifs_.pop_back();
-        }
-        break;
-      }
-      case kExprSelect: {
-        if (p->index == 1) {
-          // True expression done.
-          p->tree->type = p->last()->type;
-          if (p->tree->type == kAstStmt) {
-            error(p->pc(), p->tree->children[1]->pc,
-                  "select operand should be expression");
-          }
-        } else if (p->index == 2) {
-          // False expression done.
-          TypeCheckLast(p, p->tree->type);
-        } else {
-          // Condition done.
-          DCHECK(p->done());
-          TypeCheckLast(p, kAstI32);
-          if (build()) {
-            TFNode* controls[2];
-            builder_->Branch(p->tree->children[2]->node, &controls[0],
-                             &controls[1]);
-            TFNode* merge = builder_->Merge(2, controls);
-            TFNode* vals[2] = {p->tree->children[0]->node,
-                               p->tree->children[1]->node};
-            TFNode* phi = builder_->Phi(p->tree->type, 2, vals, merge);
-            p->tree->node = phi;
-            ssa_env_->control = merge;
-          }
-        }
-        break;
-      }
-      case kExprBr: {
-        BreakDepthOperand operand(this, p->pc());
-        CHECK(Validate(p->pc(), operand, blocks_));
-        ReduceBreakToExprBlock(p, operand.target);
-        break;
-      }
-      case kExprBrIf: {
-        if (p->done()) {
-          TypeCheckLast(p, kAstI32);
-          BreakDepthOperand operand(this, p->pc());
-          CHECK(Validate(p->pc(), operand, blocks_));
-          SsaEnv* fenv = ssa_env_;
-          SsaEnv* tenv = Split(fenv);
-          BUILD(Branch, p->tree->children[1]->node, &tenv->control,
-                &fenv->control);
-          ssa_env_ = tenv;
-          ReduceBreakToExprBlock(p, operand.target, p->tree->children[0]);
-          ssa_env_ = fenv;
-        }
-        break;
-      }
-      case kExprBrTable: {
-        if (p->index == 1) {
-          // Switch key finished.
-          TypeCheckLast(p, kAstI32);
-          if (failed()) break;
-
-          BranchTableOperand operand(this, p->pc());
-          DCHECK(Validate(p->pc(), operand, blocks_.size()));
-
-          // Build a switch only if it has more than just a default target.
-          bool build_switch = operand.table_count > 0;
-          TFNode* sw = nullptr;
-          if (build_switch) {
-            sw = BUILD(Switch, operand.table_count + 1, p->last()->node);
-          }
-
-          // Process the targets of the break table.
-          SsaEnv* prev = ssa_env_;
-          SsaEnv* copy = Steal(prev);
-          for (uint32_t i = 0; i < operand.table_count + 1; i++) {
-            uint32_t target = operand.read_entry(this, i);
-            SsaEnv* env = copy;
-            if (build_switch) {
-              ssa_env_ = env = Split(env);
-              env->control = i == operand.table_count ? BUILD(IfDefault, sw)
-                                                      : BUILD(IfValue, i, sw);
-            }
-            SsaEnv* tenv = blocks_[blocks_.size() - target - 1].ssa_env;
-            Goto(env, tenv);
-          }
-          ssa_env_ = prev;
-        }
-        break;
-      }
-      case kExprReturn: {
-        TypeCheckLast(p, sig_->GetReturn(p->index - 1));
-        if (p->done()) {
-          if (build()) {
-            int count = p->tree->count;
-            TFNode** buffer = builder_->Buffer(count);
-            for (int i = 0; i < count; i++) {
-              buffer[i] = p->tree->children[i]->node;
-            }
-            BUILD(Return, count, buffer);
-          }
-          ssa_env_->Kill(SsaEnv::kControlEnd);
-        }
-        break;
-      }
-      case kExprSetLocal: {
-        LocalIndexOperand operand(this, p->pc());
-        CHECK(Validate(p->pc(), operand));
-        Tree* val = p->last();
-        if (operand.type == val->type) {
-          if (build()) ssa_env_->locals[operand.index] = val->node;
-          p->tree->node = val->node;
-        } else {
-          error(p->pc(), val->pc, "Typecheck failed in SetLocal");
-        }
-        break;
-      }
-      case kExprStoreGlobal: {
-        GlobalIndexOperand operand(this, p->pc());
-        CHECK(Validate(p->pc(), operand));
-        Tree* val = p->last();
-        if (operand.type == val->type) {
-          BUILD(StoreGlobal, operand.index, val->node);
-          p->tree->node = val->node;
-        } else {
-          error(p->pc(), val->pc, "Typecheck failed in StoreGlobal");
-        }
-        break;
-      }
-
-      case kExprI32LoadMem8S:
-        return ReduceLoadMem(p, kAstI32, MachineType::Int8());
-      case kExprI32LoadMem8U:
-        return ReduceLoadMem(p, kAstI32, MachineType::Uint8());
-      case kExprI32LoadMem16S:
-        return ReduceLoadMem(p, kAstI32, MachineType::Int16());
-      case kExprI32LoadMem16U:
-        return ReduceLoadMem(p, kAstI32, MachineType::Uint16());
-      case kExprI32LoadMem:
-        return ReduceLoadMem(p, kAstI32, MachineType::Int32());
-
-      case kExprI64LoadMem8S:
-        return ReduceLoadMem(p, kAstI64, MachineType::Int8());
-      case kExprI64LoadMem8U:
-        return ReduceLoadMem(p, kAstI64, MachineType::Uint8());
-      case kExprI64LoadMem16S:
-        return ReduceLoadMem(p, kAstI64, MachineType::Int16());
-      case kExprI64LoadMem16U:
-        return ReduceLoadMem(p, kAstI64, MachineType::Uint16());
-      case kExprI64LoadMem32S:
-        return ReduceLoadMem(p, kAstI64, MachineType::Int32());
-      case kExprI64LoadMem32U:
-        return ReduceLoadMem(p, kAstI64, MachineType::Uint32());
-      case kExprI64LoadMem:
-        return ReduceLoadMem(p, kAstI64, MachineType::Int64());
-
-      case kExprF32LoadMem:
-        return ReduceLoadMem(p, kAstF32, MachineType::Float32());
-
-      case kExprF64LoadMem:
-        return ReduceLoadMem(p, kAstF64, MachineType::Float64());
-
-      case kExprI32StoreMem8:
-        return ReduceStoreMem(p, kAstI32, MachineType::Int8());
-      case kExprI32StoreMem16:
-        return ReduceStoreMem(p, kAstI32, MachineType::Int16());
-      case kExprI32StoreMem:
-        return ReduceStoreMem(p, kAstI32, MachineType::Int32());
-
-      case kExprI64StoreMem8:
-        return ReduceStoreMem(p, kAstI64, MachineType::Int8());
-      case kExprI64StoreMem16:
-        return ReduceStoreMem(p, kAstI64, MachineType::Int16());
-      case kExprI64StoreMem32:
-        return ReduceStoreMem(p, kAstI64, MachineType::Int32());
-      case kExprI64StoreMem:
-        return ReduceStoreMem(p, kAstI64, MachineType::Int64());
-
-      case kExprF32StoreMem:
-        return ReduceStoreMem(p, kAstF32, MachineType::Float32());
-
-      case kExprF64StoreMem:
-        return ReduceStoreMem(p, kAstF64, MachineType::Float64());
-
-      case kExprGrowMemory:
-        TypeCheckLast(p, kAstI32);
-        // TODO(titzer): build node for GrowMemory
-        p->tree->node = BUILD(Int32Constant, 0);
-        return;
-
-      case kExprCallFunction: {
-        FunctionIndexOperand operand(this, p->pc());
-        CHECK(Validate(p->pc(), operand));
-        if (p->index > 0) {
-          TypeCheckLast(p, operand.sig->GetParam(p->index - 1));
-        }
-        if (p->done() && build()) {
-          uint32_t count = p->tree->count + 1;
-          TFNode** buffer = builder_->Buffer(count);
-          buffer[0] = nullptr;  // reserved for code object.
-          for (uint32_t i = 1; i < count; i++) {
-            buffer[i] = p->tree->children[i - 1]->node;
-          }
-          p->tree->node = builder_->CallDirect(operand.index, buffer);
-        }
-        break;
-      }
-      case kExprCallIndirect: {
-        SignatureIndexOperand operand(this, p->pc());
-        CHECK(Validate(p->pc(), operand));
-        if (p->index == 1) {
-          TypeCheckLast(p, kAstI32);
-        } else {
-          TypeCheckLast(p, operand.sig->GetParam(p->index - 2));
-        }
-        if (p->done() && build()) {
-          uint32_t count = p->tree->count;
-          TFNode** buffer = builder_->Buffer(count);
-          for (uint32_t i = 0; i < count; i++) {
-            buffer[i] = p->tree->children[i]->node;
-          }
-          p->tree->node = builder_->CallIndirect(operand.index, buffer);
-        }
-        break;
-      }
-      case kExprCallImport: {
-        ImportIndexOperand operand(this, p->pc());
-        CHECK(Validate(p->pc(), operand));
-        if (p->index > 0) {
-          TypeCheckLast(p, operand.sig->GetParam(p->index - 1));
-        }
-        if (p->done() && build()) {
-          uint32_t count = p->tree->count + 1;
-          TFNode** buffer = builder_->Buffer(count);
-          buffer[0] = nullptr;  // reserved for code object.
-          for (uint32_t i = 1; i < count; i++) {
-            buffer[i] = p->tree->children[i - 1]->node;
-          }
-          p->tree->node = builder_->CallImport(operand.index, buffer);
-        }
-        break;
-      }
-      default:
-        break;
-    }
-  }
-
-  void ReduceBreakToExprBlock(Production* p, Block* block) {
-    ReduceBreakToExprBlock(p, block, p->tree->count > 0 ? p->last() : nullptr);
-  }
-
-  void ReduceBreakToExprBlock(Production* p, Block* block, Tree* val) {
-    if (block->stack_depth < 0) {
+  void BreakTo(Control* block, Value& val) {
+    if (block->is_loop) {
       // This is the inner loop block, which does not have a value.
-      Goto(ssa_env_, block->ssa_env);
+      Goto(ssa_env_, block->end_env);
     } else {
       // Merge the value into the production for the block.
-      Production* bp = &stack_[block->stack_depth];
-      MergeIntoProduction(bp, block->ssa_env, val);
+      MergeInto(block->end_env, &block->node, &block->type, val);
     }
   }
 
-  void MergeIntoProduction(Production* p, SsaEnv* target, Tree* expr) {
+  void MergeInto(SsaEnv* target, TFNode** node, LocalType* type, Value& val) {
     if (!ssa_env_->go()) return;
+    DCHECK_NE(kAstEnd, val.type);
 
     bool first = target->state == SsaEnv::kUnreachable;
     Goto(ssa_env_, target);
-    if (expr == nullptr || expr->type == kAstEnd) return;
 
     if (first) {
       // first merge to this environment; set the type and the node.
-      p->tree->type = expr->type;
-      p->tree->node = expr->node;
-    } else {
+      *type = val.type;
+      *node = val.node;
+    } else if (val.type == *type && val.type != kAstStmt) {
       // merge with the existing value for this block.
-      LocalType type = p->tree->type;
-      if (expr->type != type) {
-        type = kAstStmt;
-        p->tree->type = kAstStmt;
-        p->tree->node = nullptr;
-      } else if (type != kAstStmt) {
-        p->tree->node = CreateOrMergeIntoPhi(type, target->control,
-                                             p->tree->node, expr->node);
-      }
-    }
-  }
-
-  void ReduceLoadMem(Production* p, LocalType type, MachineType mem_type) {
-    DCHECK_EQ(1, p->index);
-    TypeCheckLast(p, kAstI32);  // index
-    if (build()) {
-      MemoryAccessOperand operand(this, p->pc());
-      p->tree->node =
-          builder_->LoadMem(type, mem_type, p->last()->node, operand.offset);
-    }
-  }
-
-  void ReduceStoreMem(Production* p, LocalType type, MachineType mem_type) {
-    if (p->index == 1) {
-      TypeCheckLast(p, kAstI32);  // index
+      *node = CreateOrMergeIntoPhi(*type, target->control, *node, val.node);
     } else {
-      DCHECK_EQ(2, p->index);
-      TypeCheckLast(p, type);
-      if (build()) {
-        MemoryAccessOperand operand(this, p->pc());
-        TFNode* val = p->tree->children[1]->node;
-        builder_->StoreMem(mem_type, p->tree->children[0]->node, operand.offset,
-                           val);
-        p->tree->node = val;
-      }
-    }
-  }
-
-  void TypeCheckLast(Production* p, LocalType expected) {
-    LocalType result = p->last()->type;
-    if (result == expected) return;
-    if (result == kAstEnd) return;
-    if (expected != kAstStmt) {
-      error(p->pc(), p->last()->pc,
-            "%s[%d] expected type %s, found %s of type %s",
-            WasmOpcodes::OpcodeName(p->opcode()), p->index - 1,
-            WasmOpcodes::TypeName(expected),
-            WasmOpcodes::OpcodeName(p->last()->opcode()),
-            WasmOpcodes::TypeName(p->last()->type));
+      // types don't match, or block is already a stmt.
+      *type = kAstStmt;
+      *node = nullptr;
     }
   }
 
   void SetEnv(const char* reason, SsaEnv* env) {
 #if DEBUG
-    TRACE("  env = %p, block depth = %d, reason = %s", static_cast<void*>(env),
-          static_cast<int>(blocks_.size()), reason);
-    if (FLAG_trace_wasm_decoder && env && env->control) {
-      TRACE(", control = ");
-      compiler::WasmGraphBuilder::PrintDebugName(env->control);
+    if (FLAG_trace_wasm_decoder) {
+      char state = 'X';
+      if (env) {
+        switch (env->state) {
+          case SsaEnv::kReached:
+            state = 'R';
+            break;
+          case SsaEnv::kUnreachable:
+            state = 'U';
+            break;
+          case SsaEnv::kMerged:
+            state = 'M';
+            break;
+          case SsaEnv::kControlEnd:
+            state = 'E';
+            break;
+        }
+      }
+      PrintF("  env = %p, state = %c, reason = %s", static_cast<void*>(env),
+             state, reason);
+      if (env && env->control) {
+        PrintF(", control = ");
+        compiler::WasmGraphBuilder::PrintDebugName(env->control);
+      }
+      PrintF("\n");
     }
-    TRACE("\n");
 #endif
     ssa_env_ = env;
     if (builder_) {
@@ -1417,7 +1293,7 @@
         builder_->AppendToMerge(merge, from->control);
         // Merge effects.
         if (builder_->IsPhiWithMerge(to->effect, merge)) {
-          builder_->AppendToPhi(merge, to->effect, from->effect);
+          builder_->AppendToPhi(to->effect, from->effect);
         } else if (to->effect != from->effect) {
           uint32_t count = builder_->InputCount(merge);
           TFNode** effects = builder_->Buffer(count);
@@ -1432,7 +1308,7 @@
           TFNode* tnode = to->locals[i];
           TFNode* fnode = from->locals[i];
           if (builder_->IsPhiWithMerge(tnode, merge)) {
-            builder_->AppendToPhi(merge, tnode, fnode);
+            builder_->AppendToPhi(tnode, fnode);
           } else if (tnode != fnode) {
             uint32_t count = builder_->InputCount(merge);
             TFNode** vals = builder_->Buffer(count);
@@ -1455,7 +1331,7 @@
   TFNode* CreateOrMergeIntoPhi(LocalType type, TFNode* merge, TFNode* tnode,
                                TFNode* fnode) {
     if (builder_->IsPhiWithMerge(tnode, merge)) {
-      builder_->AppendToPhi(merge, tnode, fnode);
+      builder_->AppendToPhi(tnode, fnode);
     } else if (tnode != fnode) {
       uint32_t count = builder_->InputCount(merge);
       TFNode** vals = builder_->Buffer(count);
@@ -1501,8 +1377,6 @@
     size_t size = sizeof(TFNode*) * EnvironmentCount();
     result->control = from->control;
     result->effect = from->effect;
-    result->state = from->state == SsaEnv::kUnreachable ? SsaEnv::kUnreachable
-                                                        : SsaEnv::kReached;
 
     if (from->go()) {
       result->state = SsaEnv::kReached;
@@ -1549,89 +1423,54 @@
   virtual void onFirstError() {
     limit_ = start_;     // Terminate decoding loop.
     builder_ = nullptr;  // Don't build any more nodes.
-#if DEBUG
-    PrintStackForDebugging();
-#endif
+    TRACE(" !%s\n", error_msg_.get());
   }
-
-#if DEBUG
-  void PrintStackForDebugging() { PrintProduction(0); }
-
-  void PrintProduction(size_t depth) {
-    if (depth >= stack_.size()) return;
-    Production* p = &stack_[depth];
-    for (size_t d = 0; d < depth; d++) PrintF("  ");
-
-    PrintF("@%d %s [%d]\n", static_cast<int>(p->tree->pc - start_),
-           WasmOpcodes::OpcodeName(p->opcode()), p->tree->count);
-    for (int i = 0; i < p->index; i++) {
-      Tree* child = p->tree->children[i];
-      for (size_t d = 0; d <= depth; d++) PrintF("  ");
-      PrintF("@%d %s [%d]", static_cast<int>(child->pc - start_),
-             WasmOpcodes::OpcodeName(child->opcode()), child->count);
-      if (child->node) {
-        PrintF(" => TF");
-        compiler::WasmGraphBuilder::PrintDebugName(child->node);
-      }
-      PrintF("\n");
-    }
-    PrintProduction(depth + 1);
-  }
-#endif
-
   BitVector* AnalyzeLoopAssignment(const byte* pc) {
     if (pc >= limit_) return nullptr;
     if (*pc != kExprLoop) return nullptr;
 
     BitVector* assigned =
-        new (zone_) BitVector(static_cast<int>(total_locals_), zone_);
-    // Keep a stack to model the nesting of expressions.
-    std::vector<int> arity_stack;
-    arity_stack.push_back(OpcodeArity(pc));
-    pc += OpcodeLength(pc);
-
+        new (zone_) BitVector(static_cast<int>(local_type_vec_.size()), zone_);
+    int depth = 0;
     // Iteratively process all AST nodes nested inside the loop.
     while (pc < limit_) {
       WasmOpcode opcode = static_cast<WasmOpcode>(*pc);
-      int arity = 0;
       int length = 1;
-      int assigned_index = -1;
-      if (opcode == kExprSetLocal) {
-        LocalIndexOperand operand(this, pc);
-        if (assigned->length() > 0 &&
-            static_cast<int>(operand.index) < assigned->length()) {
-          // Unverified code might have an out-of-bounds index.
-          // Ignore out-of-bounds indices, as the main verification will fail.
-          assigned->Add(operand.index);
-          assigned_index = operand.index;
+      switch (opcode) {
+        case kExprLoop:
+        case kExprIf:
+        case kExprBlock:
+          depth++;
+          DCHECK_EQ(1, OpcodeLength(pc));
+          break;
+        case kExprSetLocal: {
+          LocalIndexOperand operand(this, pc);
+          if (assigned->length() > 0 &&
+              static_cast<int>(operand.index) < assigned->length()) {
+            // Unverified code might have an out-of-bounds index.
+            assigned->Add(operand.index);
+          }
+          length = 1 + operand.length;
+          break;
         }
-        arity = 1;
-        length = 1 + operand.length;
-      } else {
-        arity = OpcodeArity(pc);
-        length = OpcodeLength(pc);
+        case kExprEnd:
+          depth--;
+          break;
+        default:
+          length = OpcodeLength(pc);
+          break;
       }
-
-      TRACE("loop-assign module+%-6d %s func+%d: 0x%02x %s", baserel(pc),
-            indentation(), startrel(pc), opcode,
-            WasmOpcodes::OpcodeName(opcode));
-
-      if (assigned_index >= 0) {
-        TRACE(" (assigned local #%d)\n", assigned_index);
-      } else {
-        TRACE("\n");
-      }
-
+      if (depth <= 0) break;
       pc += length;
-      arity_stack.push_back(arity);
-      while (arity_stack.back() == 0) {
-        arity_stack.pop_back();
-        if (arity_stack.empty()) return assigned;  // reached end of loop
-        arity_stack.back()--;
-      }
     }
     return assigned;
   }
+
+  inline wasm::WasmCodePosition position() {
+    int offset = static_cast<int>(pc_ - start_);
+    DCHECK_EQ(pc_ - start_, offset);  // overflows cannot happen
+    return offset;
+  }
 };
 
 bool DecodeLocalDecls(AstLocalDecls& decls, const byte* start,
@@ -1647,19 +1486,18 @@
                           FunctionBody& body) {
   Zone zone(allocator);
   SR_WasmDecoder decoder(&zone, nullptr, body);
-  TreeResult result = decoder.Decode();
-  return result;
+  decoder.Decode();
+  return decoder.toResult<Tree*>(nullptr);
 }
 
 TreeResult BuildTFGraph(base::AccountingAllocator* allocator,
                         TFBuilder* builder, FunctionBody& body) {
   Zone zone(allocator);
   SR_WasmDecoder decoder(&zone, builder, body);
-  TreeResult result = decoder.Decode();
-  return result;
+  decoder.Decode();
+  return decoder.toResult<Tree*>(nullptr);
 }
 
-
 std::ostream& operator<<(std::ostream& os, const Tree& tree) {
   if (tree.pc == nullptr) {
     os << "null";
@@ -1675,28 +1513,22 @@
   return os;
 }
 
-
-ReadUnsignedLEB128ErrorCode ReadUnsignedLEB128Operand(const byte* pc,
-                                                      const byte* limit,
-                                                      int* length,
-                                                      uint32_t* result) {
-  Decoder decoder(pc, limit);
-  *result = decoder.checked_read_u32v(pc, 0, length);
-  if (decoder.ok()) return kNoError;
-  return (limit - pc) > 1 ? kInvalidLEB128 : kMissingLEB128;
-}
-
 int OpcodeLength(const byte* pc, const byte* end) {
   WasmDecoder decoder(nullptr, nullptr, pc, end);
   return decoder.OpcodeLength(pc);
 }
 
-int OpcodeArity(ModuleEnv* module, FunctionSig* sig, const byte* pc,
-                const byte* end) {
-  WasmDecoder decoder(module, sig, pc, end);
+int OpcodeArity(const byte* pc, const byte* end) {
+  WasmDecoder decoder(nullptr, nullptr, pc, end);
   return decoder.OpcodeArity(pc);
 }
 
+void PrintAstForDebugging(const byte* start, const byte* end) {
+  FunctionBody body = {nullptr, nullptr, start, start, end};
+  base::AccountingAllocator allocator;
+  PrintAst(&allocator, body);
+}
+
 void PrintAst(base::AccountingAllocator* allocator, FunctionBody& body) {
   Zone zone(allocator);
   SR_WasmDecoder decoder(&zone, nullptr, body);
@@ -1713,7 +1545,7 @@
   decoder.DecodeLocalDecls(decls);
   const byte* pc = decoder.pc();
   if (body.start != decoder.pc()) {
-    printf("// locals:");
+    os << "// locals: ";
     for (auto p : decls.local_types) {
       LocalType type = p.first;
       uint32_t count = p.second;
@@ -1724,64 +1556,90 @@
     for (const byte* locals = body.start; locals < pc; locals++) {
       printf(" 0x%02x,", *locals);
     }
-    printf("\n");
+    os << std::endl;
   }
 
-  printf("// body: \n");
-  std::vector<int> arity_stack;
+  os << "// body: \n";
+  int control_depth = 0;
   while (pc < body.end) {
-    int arity = decoder.OpcodeArity(pc);
     size_t length = decoder.OpcodeLength(pc);
 
-    for (auto arity : arity_stack) {
-      printf("  ");
-      USE(arity);
-    }
-
     WasmOpcode opcode = static_cast<WasmOpcode>(*pc);
+    if (opcode == kExprElse) control_depth--;
+
+    for (int i = 0; i < control_depth && i < 32; i++) printf("  ");
     printf("k%s,", WasmOpcodes::OpcodeName(opcode));
 
     for (size_t i = 1; i < length; i++) {
       printf(" 0x%02x,", pc[i]);
     }
 
-    if (body.module) {
-      switch (opcode) {
-        case kExprCallIndirect: {
-          SignatureIndexOperand operand(&decoder, pc);
-          if (decoder.Validate(pc, operand)) {
-            os << " // sig #" << operand.index << ": " << *operand.sig;
-          }
-          break;
-        }
-        case kExprCallImport: {
-          ImportIndexOperand operand(&decoder, pc);
-          if (decoder.Validate(pc, operand)) {
-            os << " // import #" << operand.index << ": " << *operand.sig;
-          }
-          break;
-        }
-        case kExprCallFunction: {
-          FunctionIndexOperand operand(&decoder, pc);
-          if (decoder.Validate(pc, operand)) {
-            os << " // function #" << operand.index << ": " << *operand.sig;
-          }
-          break;
-        }
-        default:
-          break;
+    switch (opcode) {
+      case kExprIf:
+      case kExprElse:
+      case kExprLoop:
+      case kExprBlock:
+        os << "   // @" << static_cast<int>(pc - body.start);
+        control_depth++;
+        break;
+      case kExprEnd:
+        os << "   // @" << static_cast<int>(pc - body.start);
+        control_depth--;
+        break;
+      case kExprBr: {
+        BreakDepthOperand operand(&decoder, pc);
+        os << "   // arity=" << operand.arity << " depth=" << operand.depth;
+        break;
       }
-    }
+      case kExprBrIf: {
+        BreakDepthOperand operand(&decoder, pc);
+        os << "   // arity=" << operand.arity << " depth" << operand.depth;
+        break;
+      }
+      case kExprBrTable: {
+        BranchTableOperand operand(&decoder, pc);
+        os << "   // arity=" << operand.arity
+           << " entries=" << operand.table_count;
+        break;
+      }
+      case kExprCallIndirect: {
+        CallIndirectOperand operand(&decoder, pc);
+        if (decoder.Validate(pc, operand)) {
+          os << "   // sig #" << operand.index << ": " << *operand.sig;
+        } else {
+          os << " // arity=" << operand.arity << " sig #" << operand.index;
+        }
+        break;
+      }
+      case kExprCallImport: {
+        CallImportOperand operand(&decoder, pc);
+        if (decoder.Validate(pc, operand)) {
+          os << "   // import #" << operand.index << ": " << *operand.sig;
+        } else {
+          os << " // arity=" << operand.arity << " import #" << operand.index;
+        }
+        break;
+      }
+      case kExprCallFunction: {
+        CallFunctionOperand operand(&decoder, pc);
+        if (decoder.Validate(pc, operand)) {
+          os << "   // function #" << operand.index << ": " << *operand.sig;
+        } else {
+          os << " // arity=" << operand.arity << " function #" << operand.index;
+        }
+        break;
+      }
+      case kExprReturn: {
+        ReturnArityOperand operand(&decoder, pc);
+        os << "   // arity=" << operand.arity;
+        break;
+      }
+      default:
+        break;
+      }
 
     pc += length;
-    printf("\n");
-
-    arity_stack.push_back(arity);
-    while (arity_stack.back() == 0) {
-      arity_stack.pop_back();
-      if (arity_stack.empty()) break;
-      arity_stack.back()--;
-    }
+    os << std::endl;
   }
 }
 
diff --git a/src/wasm/ast-decoder.h b/src/wasm/ast-decoder.h
index 5376e7b..9e96053 100644
--- a/src/wasm/ast-decoder.h
+++ b/src/wasm/ast-decoder.h
@@ -89,66 +89,81 @@
   }
 };
 
-struct Block;
+struct Control;
 struct BreakDepthOperand {
+  uint32_t arity;
   uint32_t depth;
-  Block* target;
+  Control* target;
   int length;
   inline BreakDepthOperand(Decoder* decoder, const byte* pc) {
-    depth = decoder->checked_read_u32v(pc, 1, &length, "break depth");
+    int len1 = 0;
+    int len2 = 0;
+    arity = decoder->checked_read_u32v(pc, 1, &len1, "argument count");
+    depth = decoder->checked_read_u32v(pc, 1 + len1, &len2, "break depth");
+    length = len1 + len2;
     target = nullptr;
   }
 };
 
-struct BlockCountOperand {
-  uint32_t count;
-  int length;
-  inline BlockCountOperand(Decoder* decoder, const byte* pc) {
-    count = decoder->checked_read_u32v(pc, 1, &length, "block count");
-  }
-};
-
-struct SignatureIndexOperand {
+struct CallIndirectOperand {
+  uint32_t arity;
   uint32_t index;
   FunctionSig* sig;
   int length;
-  inline SignatureIndexOperand(Decoder* decoder, const byte* pc) {
-    index = decoder->checked_read_u32v(pc, 1, &length, "signature index");
+  inline CallIndirectOperand(Decoder* decoder, const byte* pc) {
+    int len1 = 0;
+    int len2 = 0;
+    arity = decoder->checked_read_u32v(pc, 1, &len1, "argument count");
+    index = decoder->checked_read_u32v(pc, 1 + len1, &len2, "signature index");
+    length = len1 + len2;
     sig = nullptr;
   }
 };
 
-struct FunctionIndexOperand {
+struct CallFunctionOperand {
+  uint32_t arity;
   uint32_t index;
   FunctionSig* sig;
   int length;
-  inline FunctionIndexOperand(Decoder* decoder, const byte* pc) {
-    index = decoder->checked_read_u32v(pc, 1, &length, "function index");
+  inline CallFunctionOperand(Decoder* decoder, const byte* pc) {
+    int len1 = 0;
+    int len2 = 0;
+    arity = decoder->checked_read_u32v(pc, 1, &len1, "argument count");
+    index = decoder->checked_read_u32v(pc, 1 + len1, &len2, "function index");
+    length = len1 + len2;
     sig = nullptr;
   }
 };
 
-struct ImportIndexOperand {
+struct CallImportOperand {
+  uint32_t arity;
   uint32_t index;
   FunctionSig* sig;
   int length;
-  inline ImportIndexOperand(Decoder* decoder, const byte* pc) {
-    index = decoder->checked_read_u32v(pc, 1, &length, "import index");
+  inline CallImportOperand(Decoder* decoder, const byte* pc) {
+    int len1 = 0;
+    int len2 = 0;
+    arity = decoder->checked_read_u32v(pc, 1, &len1, "argument count");
+    index = decoder->checked_read_u32v(pc, 1 + len1, &len2, "import index");
+    length = len1 + len2;
     sig = nullptr;
   }
 };
 
 struct BranchTableOperand {
+  uint32_t arity;
   uint32_t table_count;
   const byte* table;
   int length;
   inline BranchTableOperand(Decoder* decoder, const byte* pc) {
-    int varint_length;
+    int len1 = 0;
+    int len2 = 0;
+    arity = decoder->checked_read_u32v(pc, 1, &len1, "argument count");
     table_count =
-        decoder->checked_read_u32v(pc, 1, &varint_length, "expected #entries");
-    length = varint_length + (table_count + 1) * sizeof(uint32_t);
+        decoder->checked_read_u32v(pc, 1 + len1, &len2, "table count");
+    length = len1 + len2 + (table_count + 1) * sizeof(uint32_t);
 
-    uint32_t table_start = 1 + varint_length;
+    uint32_t table_start = 1 + len1 + len2;
     if (decoder->check(pc, table_start, (table_count + 1) * sizeof(uint32_t),
                        "expected <table entries>")) {
       table = pc + table_start;
@@ -177,6 +192,15 @@
   }
 };
 
+struct ReturnArityOperand {
+  uint32_t arity;
+  int length;
+
+  inline ReturnArityOperand(Decoder* decoder, const byte* pc) {
+    arity = decoder->checked_read_u32v(pc, 1, &length, "return count");
+  }
+};
+
 typedef compiler::WasmGraphBuilder TFBuilder;
 struct ModuleEnv;  // forward declaration of module interface.
 
@@ -200,6 +224,9 @@
                         TFBuilder* builder, FunctionBody& body);
 void PrintAst(base::AccountingAllocator* allocator, FunctionBody& body);
 
+// A simplified form of AST printing, e.g. from a debugger.
+void PrintAstForDebugging(const byte* start, const byte* end);
+
 inline TreeResult VerifyWasmCode(base::AccountingAllocator* allocator,
                                  ModuleEnv* module, FunctionSig* sig,
                                  const byte* start, const byte* end) {
@@ -215,11 +242,6 @@
   return BuildTFGraph(allocator, builder, body);
 }
 
-enum ReadUnsignedLEB128ErrorCode { kNoError, kInvalidLEB128, kMissingLEB128 };
-
-ReadUnsignedLEB128ErrorCode ReadUnsignedLEB128Operand(const byte*, const byte*,
-                                                      int*, uint32_t*);
-
 struct AstLocalDecls {
   // The size of the encoded declarations.
   uint32_t decls_encoded_size;  // size of encoded declarations
@@ -243,8 +265,8 @@
 int OpcodeLength(const byte* pc, const byte* end);
 
 // Computes the arity (number of sub-nodes) of the opcode at the given address.
-int OpcodeArity(ModuleEnv* module, FunctionSig* sig, const byte* pc,
-                const byte* end);
+int OpcodeArity(const byte* pc, const byte* end);
+
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/src/wasm/decoder.h b/src/wasm/decoder.h
index f9de2e1..685f5d0 100644
--- a/src/wasm/decoder.h
+++ b/src/wasm/decoder.h
@@ -5,9 +5,11 @@
 #ifndef V8_WASM_DECODER_H_
 #define V8_WASM_DECODER_H_
 
+#include "src/base/compiler-specific.h"
 #include "src/base/smart-pointers.h"
 #include "src/flags.h"
 #include "src/signature.h"
+#include "src/utils.h"
 #include "src/wasm/wasm-result.h"
 #include "src/zone-containers.h"
 
@@ -47,7 +49,7 @@
   inline bool check(const byte* base, int offset, int length, const char* msg) {
     DCHECK_GE(base, start_);
     if ((base + offset + length) > limit_) {
-      error(base, base + offset, msg);
+      error(base, base + offset, "%s", msg);
       return false;
     }
     return true;
@@ -258,12 +260,13 @@
     }
   }
 
-  void error(const char* msg) { error(pc_, nullptr, msg); }
+  void error(const char* msg) { error(pc_, nullptr, "%s", msg); }
 
-  void error(const byte* pc, const char* msg) { error(pc, nullptr, msg); }
+  void error(const byte* pc, const char* msg) { error(pc, nullptr, "%s", msg); }
 
   // Sets internal error state.
-  void error(const byte* pc, const byte* pt, const char* format, ...) {
+  void PRINTF_FORMAT(4, 5)
+      error(const byte* pc, const byte* pt, const char* format, ...) {
     if (ok()) {
 #if DEBUG
       if (FLAG_wasm_break_on_decoder_error) {
@@ -392,7 +395,7 @@
         return 0;
       }
       if ((b & 0x80) != 0) {
-        error(base, ptr, msg);
+        error(base, ptr, "%s", msg);
         return 0;
       }
     }
diff --git a/src/wasm/encoder.cc b/src/wasm/encoder.cc
index 92e6b11..39a2f5a 100644
--- a/src/wasm/encoder.cc
+++ b/src/wasm/encoder.cc
@@ -10,6 +10,7 @@
 
 #include "src/wasm/ast-decoder.h"
 #include "src/wasm/encoder.h"
+#include "src/wasm/leb-helper.h"
 #include "src/wasm/wasm-macro-gen.h"
 #include "src/wasm/wasm-module.h"
 #include "src/wasm/wasm-opcodes.h"
@@ -38,55 +39,34 @@
   *b += 1;
 }
 
-
 void EmitUint16(byte** b, uint16_t x) {
   WriteUnalignedUInt16(*b, x);
   *b += 2;
 }
 
-
 void EmitUint32(byte** b, uint32_t x) {
   WriteUnalignedUInt32(*b, x);
   *b += 4;
 }
 
+void EmitVarInt(byte** b, size_t val) {
+  LEBHelper::write_u32v(b, static_cast<uint32_t>(val));
+}
+
 // Sections all start with a size, but it's unknown at the start.
 // We generate a large varint which we then fixup later when the size is known.
 //
 // TODO(jfb) Not strictly necessary since sizes are calculated ahead of time.
-const size_t padded_varint = 5;
-
-void EmitVarInt(byte** b, size_t val) {
-  while (true) {
-    size_t next = val >> 7;
-    byte out = static_cast<byte>(val & 0x7f);
-    if (next) {
-      *((*b)++) = 0x80 | out;
-      val = next;
-    } else {
-      *((*b)++) = out;
-      break;
-    }
-  }
-}
-
-size_t SizeOfVarInt(size_t value) {
-  size_t size = 0;
-  do {
-    size++;
-    value = value >> 7;
-  } while (value > 0);
-  return size;
-}
+const size_t kPaddedVarintSize = 5;
 
 void FixupSection(byte* start, byte* end) {
-  // Same as EmitVarInt, but fixed-width with zeroes in the MSBs.
-  size_t val = end - start - padded_varint;
+  // Same as LEBHelper::write_u32v, but fixed-width with zeroes in the MSBs.
+  size_t val = end - start - kPaddedVarintSize;
   TRACE("  fixup %u\n", (unsigned)val);
-  for (size_t pos = 0; pos != padded_varint; ++pos) {
+  for (size_t pos = 0; pos != kPaddedVarintSize; ++pos) {
     size_t next = val >> 7;
     byte out = static_cast<byte>(val & 0x7f);
-    if (pos != padded_varint - 1) {
+    if (pos != kPaddedVarintSize - 1) {
       *(start++) = 0x80 | out;
       val = next;
     } else {
@@ -98,77 +78,63 @@
 
 // Returns the start of the section, where the section VarInt size is.
 byte* EmitSection(WasmSection::Code code, byte** b) {
-  byte* start = *b;
+  // Emit the section name.
   const char* name = WasmSection::getName(code);
-  size_t length = WasmSection::getNameLength(code);
   TRACE("emit section: %s\n", name);
-  for (size_t padding = 0; padding != padded_varint; ++padding) {
-    EmitUint8(b, 0xff);  // Will get fixed up later.
-  }
+  size_t length = WasmSection::getNameLength(code);
   EmitVarInt(b, length);  // Section name string size.
   for (size_t i = 0; i != length; ++i) EmitUint8(b, name[i]);
+
+  // Emit a placeholder for the length.
+  byte* start = *b;
+  for (size_t padding = 0; padding != kPaddedVarintSize; ++padding) {
+    EmitUint8(b, 0xff);  // Will get fixed up later.
+  }
+
   return start;
 }
 }  // namespace
 
-struct WasmFunctionBuilder::Type {
-  bool param_;
-  LocalType type_;
-};
-
-
 WasmFunctionBuilder::WasmFunctionBuilder(Zone* zone)
-    : return_type_(kAstI32),
-      locals_(zone),
-      exported_(0),
-      external_(0),
-      body_(zone),
-      local_indices_(zone),
-      name_(zone) {}
+    : locals_(zone), exported_(0), body_(zone), name_(zone) {}
 
-
-uint16_t WasmFunctionBuilder::AddParam(LocalType type) {
-  return AddVar(type, true);
+void WasmFunctionBuilder::EmitVarInt(uint32_t val) {
+  byte buffer[8];
+  byte* ptr = buffer;
+  LEBHelper::write_u32v(&ptr, val);
+  for (byte* p = buffer; p < ptr; p++) {
+    body_.push_back(*p);
+  }
 }
 
-
-uint16_t WasmFunctionBuilder::AddLocal(LocalType type) {
-  return AddVar(type, false);
+void WasmFunctionBuilder::SetSignature(FunctionSig* sig) {
+  DCHECK(!locals_.has_sig());
+  locals_.set_sig(sig);
 }
 
-
-uint16_t WasmFunctionBuilder::AddVar(LocalType type, bool param) {
-  locals_.push_back({param, type});
-  return static_cast<uint16_t>(locals_.size() - 1);
+uint32_t WasmFunctionBuilder::AddLocal(LocalType type) {
+  DCHECK(locals_.has_sig());
+  return locals_.AddLocals(1, type);
 }
 
+void WasmFunctionBuilder::EmitGetLocal(uint32_t local_index) {
+  EmitWithVarInt(kExprGetLocal, local_index);
+}
 
-void WasmFunctionBuilder::ReturnType(LocalType type) { return_type_ = type; }
-
+void WasmFunctionBuilder::EmitSetLocal(uint32_t local_index) {
+  EmitWithVarInt(kExprSetLocal, local_index);
+}
 
 void WasmFunctionBuilder::EmitCode(const byte* code, uint32_t code_size) {
-  EmitCode(code, code_size, nullptr, 0);
-}
-
-
-void WasmFunctionBuilder::EmitCode(const byte* code, uint32_t code_size,
-                                   const uint32_t* local_indices,
-                                   uint32_t indices_size) {
-  size_t size = body_.size();
   for (size_t i = 0; i < code_size; i++) {
     body_.push_back(code[i]);
   }
-  for (size_t i = 0; i < indices_size; i++) {
-    local_indices_.push_back(local_indices[i] + static_cast<uint32_t>(size));
-  }
 }
 
-
 void WasmFunctionBuilder::Emit(WasmOpcode opcode) {
   body_.push_back(static_cast<byte>(opcode));
 }
 
-
 void WasmFunctionBuilder::EmitWithU8(WasmOpcode opcode, const byte immediate) {
   body_.push_back(static_cast<byte>(opcode));
   body_.push_back(immediate);
@@ -184,47 +150,22 @@
 void WasmFunctionBuilder::EmitWithVarInt(WasmOpcode opcode,
                                          uint32_t immediate) {
   body_.push_back(static_cast<byte>(opcode));
-  size_t immediate_size = SizeOfVarInt(immediate);
-  body_.insert(body_.end(), immediate_size, 0);
-  byte* p = &body_[body_.size() - immediate_size];
-  EmitVarInt(&p, immediate);
+  EmitVarInt(immediate);
 }
 
-uint32_t WasmFunctionBuilder::EmitEditableVarIntImmediate() {
-  // Guess that the immediate will be 1 byte. If it is more, we'll have to
-  // shift everything down.
-  body_.push_back(0);
-  return static_cast<uint32_t>(body_.size()) - 1;
-}
-
-void WasmFunctionBuilder::EditVarIntImmediate(uint32_t offset,
-                                              const uint32_t immediate) {
-  uint32_t immediate_size = static_cast<uint32_t>(SizeOfVarInt(immediate));
-  // In EmitEditableVarIntImmediate, we guessed that we'd only need one byte.
-  // If we need more, shift everything down to make room for the larger
-  // immediate.
-  if (immediate_size > 1) {
-    uint32_t diff = immediate_size - 1;
-    body_.insert(body_.begin() + offset, diff, 0);
-
-    for (size_t i = 0; i < local_indices_.size(); ++i) {
-      if (local_indices_[i] >= offset) {
-        local_indices_[i] += diff;
-      }
-    }
+void WasmFunctionBuilder::EmitI32Const(int32_t value) {
+  // TODO(titzer): variable-length signed and unsigned i32 constants.
+  if (-128 <= value && value <= 127) {
+    EmitWithU8(kExprI8Const, static_cast<byte>(value));
+  } else {
+    byte code[] = {WASM_I32V_5(value)};
+    EmitCode(code, sizeof(code));
   }
-  DCHECK(offset + immediate_size <= body_.size());
-  byte* p = &body_[offset];
-  EmitVarInt(&p, immediate);
 }
 
-
 void WasmFunctionBuilder::Exported(uint8_t flag) { exported_ = flag; }
 
-
-void WasmFunctionBuilder::External(uint8_t flag) { external_ = flag; }
-
-void WasmFunctionBuilder::SetName(const unsigned char* name, int name_length) {
+void WasmFunctionBuilder::SetName(const char* name, int name_length) {
   name_.clear();
   if (name_length > 0) {
     for (int i = 0; i < name_length; i++) {
@@ -233,139 +174,43 @@
   }
 }
 
-
 WasmFunctionEncoder* WasmFunctionBuilder::Build(Zone* zone,
                                                 WasmModuleBuilder* mb) const {
   WasmFunctionEncoder* e =
-      new (zone) WasmFunctionEncoder(zone, return_type_, exported_, external_);
-  uint16_t* var_index = zone->NewArray<uint16_t>(locals_.size());
-  IndexVars(e, var_index);
-  if (body_.size() > 0) {
-    // TODO(titzer): iterate over local indexes, not the bytes.
-    const byte* start = &body_[0];
-    const byte* end = start + body_.size();
-    size_t local_index = 0;
-    for (size_t i = 0; i < body_.size();) {
-      if (local_index < local_indices_.size() &&
-          i == local_indices_[local_index]) {
-        int length = 0;
-        uint32_t index;
-        ReadUnsignedLEB128Operand(start + i, end, &length, &index);
-        uint16_t new_index = var_index[index];
-        const std::vector<uint8_t>& index_vec = UnsignedLEB128From(new_index);
-        for (size_t j = 0; j < index_vec.size(); j++) {
-          e->body_.push_back(index_vec.at(j));
-        }
-        i += length;
-        local_index++;
-      } else {
-        e->body_.push_back(*(start + i));
-        i++;
-      }
-    }
-  }
-  FunctionSig::Builder sig(zone, return_type_ == kAstStmt ? 0 : 1,
-                           e->params_.size());
-  if (return_type_ != kAstStmt) {
-    sig.AddReturn(static_cast<LocalType>(return_type_));
-  }
-  for (size_t i = 0; i < e->params_.size(); i++) {
-    sig.AddParam(static_cast<LocalType>(e->params_[i]));
-  }
-  e->signature_index_ = mb->AddSignature(sig.Build());
+      new (zone) WasmFunctionEncoder(zone, locals_, exported_);
+  // TODO(titzer): lame memcpy here.
+  e->body_.insert(e->body_.begin(), body_.begin(), body_.end());
+  e->signature_index_ = mb->AddSignature(locals_.get_sig());
   e->name_.insert(e->name_.begin(), name_.begin(), name_.end());
   return e;
 }
 
-
-void WasmFunctionBuilder::IndexVars(WasmFunctionEncoder* e,
-                                    uint16_t* var_index) const {
-  uint16_t param = 0;
-  uint16_t i32 = 0;
-  uint16_t i64 = 0;
-  uint16_t f32 = 0;
-  uint16_t f64 = 0;
-  for (size_t i = 0; i < locals_.size(); i++) {
-    if (locals_.at(i).param_) {
-      param++;
-    } else if (locals_.at(i).type_ == kAstI32) {
-      i32++;
-    } else if (locals_.at(i).type_ == kAstI64) {
-      i64++;
-    } else if (locals_.at(i).type_ == kAstF32) {
-      f32++;
-    } else if (locals_.at(i).type_ == kAstF64) {
-      f64++;
-    }
-  }
-  e->local_i32_count_ = i32;
-  e->local_i64_count_ = i64;
-  e->local_f32_count_ = f32;
-  e->local_f64_count_ = f64;
-  f64 = param + i32 + i64 + f32;
-  f32 = param + i32 + i64;
-  i64 = param + i32;
-  i32 = param;
-  param = 0;
-  for (size_t i = 0; i < locals_.size(); i++) {
-    if (locals_.at(i).param_) {
-      e->params_.push_back(locals_.at(i).type_);
-      var_index[i] = param++;
-    } else if (locals_.at(i).type_ == kAstI32) {
-      var_index[i] = i32++;
-    } else if (locals_.at(i).type_ == kAstI64) {
-      var_index[i] = i64++;
-    } else if (locals_.at(i).type_ == kAstF32) {
-      var_index[i] = f32++;
-    } else if (locals_.at(i).type_ == kAstF64) {
-      var_index[i] = f64++;
-    }
-  }
-}
-
-
-WasmFunctionEncoder::WasmFunctionEncoder(Zone* zone, LocalType return_type,
-                                         bool exported, bool external)
-    : params_(zone),
-      exported_(exported),
-      external_(external),
-      body_(zone),
-      name_(zone) {}
-
+WasmFunctionEncoder::WasmFunctionEncoder(Zone* zone, LocalDeclEncoder locals,
+                                         bool exported)
+    : locals_(locals), exported_(exported), body_(zone), name_(zone) {}
 
 uint32_t WasmFunctionEncoder::HeaderSize() const {
   uint32_t size = 3;
-  if (!external_) size += 2;
+  size += 2;
   if (HasName()) {
     uint32_t name_size = NameSize();
-    size += static_cast<uint32_t>(SizeOfVarInt(name_size)) + name_size;
+    size +=
+        static_cast<uint32_t>(LEBHelper::sizeof_u32v(name_size)) + name_size;
   }
   return size;
 }
 
-
 uint32_t WasmFunctionEncoder::BodySize(void) const {
-  // TODO(titzer): embed a LocalDeclEncoder in the WasmFunctionEncoder
-  LocalDeclEncoder local_decl;
-  local_decl.AddLocals(local_i32_count_, kAstI32);
-  local_decl.AddLocals(local_i64_count_, kAstI64);
-  local_decl.AddLocals(local_f32_count_, kAstF32);
-  local_decl.AddLocals(local_f64_count_, kAstF64);
-
-  return external_ ? 0
-                   : static_cast<uint32_t>(body_.size() + local_decl.Size());
+  return static_cast<uint32_t>(body_.size() + locals_.Size());
 }
 
-
 uint32_t WasmFunctionEncoder::NameSize() const {
   return HasName() ? static_cast<uint32_t>(name_.size()) : 0;
 }
 
-
 void WasmFunctionEncoder::Serialize(byte* buffer, byte** header,
                                     byte** body) const {
   uint8_t decl_bits = (exported_ ? kDeclFunctionExport : 0) |
-                      (external_ ? kDeclFunctionImport : 0) |
                       (HasName() ? kDeclFunctionName : 0);
 
   EmitUint8(header, decl_bits);
@@ -378,25 +223,14 @@
     }
   }
 
-
-  if (!external_) {
-    // TODO(titzer): embed a LocalDeclEncoder in the WasmFunctionEncoder
-    LocalDeclEncoder local_decl;
-    local_decl.AddLocals(local_i32_count_, kAstI32);
-    local_decl.AddLocals(local_i64_count_, kAstI64);
-    local_decl.AddLocals(local_f32_count_, kAstF32);
-    local_decl.AddLocals(local_f64_count_, kAstF64);
-
-    EmitUint16(header, static_cast<uint16_t>(body_.size() + local_decl.Size()));
-    (*header) += local_decl.Emit(*header);
-    if (body_.size() > 0) {
-      std::memcpy(*header, &body_[0], body_.size());
-      (*header) += body_.size();
-    }
+  EmitUint16(header, static_cast<uint16_t>(body_.size() + locals_.Size()));
+  (*header) += locals_.Emit(*header);
+  if (body_.size() > 0) {
+    std::memcpy(*header, &body_[0], body_.size());
+    (*header) += body_.size();
   }
 }
 
-
 WasmDataSegmentEncoder::WasmDataSegmentEncoder(Zone* zone, const byte* data,
                                                uint32_t size, uint32_t dest)
     : data_(zone), dest_(dest) {
@@ -405,18 +239,15 @@
   }
 }
 
-
 uint32_t WasmDataSegmentEncoder::HeaderSize() const {
   static const int kDataSegmentSize = 13;
   return kDataSegmentSize;
 }
 
-
 uint32_t WasmDataSegmentEncoder::BodySize() const {
   return static_cast<uint32_t>(data_.size());
 }
 
-
 void WasmDataSegmentEncoder::Serialize(byte* buffer, byte** header,
                                        byte** body) const {
   EmitVarInt(header, dest_);
@@ -429,6 +260,7 @@
 WasmModuleBuilder::WasmModuleBuilder(Zone* zone)
     : zone_(zone),
       signatures_(zone),
+      imports_(zone),
       functions_(zone),
       data_segments_(zone),
       indirect_functions_(zone),
@@ -436,12 +268,11 @@
       signature_map_(zone),
       start_function_index_(-1) {}
 
-uint16_t WasmModuleBuilder::AddFunction() {
+uint32_t WasmModuleBuilder::AddFunction() {
   functions_.push_back(new (zone_) WasmFunctionBuilder(zone_));
-  return static_cast<uint16_t>(functions_.size() - 1);
+  return static_cast<uint32_t>(functions_.size() - 1);
 }
 
-
 WasmFunctionBuilder* WasmModuleBuilder::FunctionAt(size_t index) {
   if (functions_.size() > index) {
     return functions_.at(index);
@@ -450,12 +281,10 @@
   }
 }
 
-
 void WasmModuleBuilder::AddDataSegment(WasmDataSegmentEncoder* data) {
   data_segments_.push_back(data);
 }
 
-
 bool WasmModuleBuilder::CompareFunctionSigs::operator()(FunctionSig* a,
                                                         FunctionSig* b) const {
   if (a->return_count() < b->return_count()) return true;
@@ -473,30 +302,37 @@
   return false;
 }
 
-
-uint16_t WasmModuleBuilder::AddSignature(FunctionSig* sig) {
+uint32_t WasmModuleBuilder::AddSignature(FunctionSig* sig) {
   SignatureMap::iterator pos = signature_map_.find(sig);
   if (pos != signature_map_.end()) {
     return pos->second;
   } else {
-    uint16_t index = static_cast<uint16_t>(signatures_.size());
+    uint32_t index = static_cast<uint32_t>(signatures_.size());
     signature_map_[sig] = index;
     signatures_.push_back(sig);
     return index;
   }
 }
 
-
-void WasmModuleBuilder::AddIndirectFunction(uint16_t index) {
+void WasmModuleBuilder::AddIndirectFunction(uint32_t index) {
   indirect_functions_.push_back(index);
 }
 
-void WasmModuleBuilder::MarkStartFunction(uint16_t index) {
+uint32_t WasmModuleBuilder::AddImport(const char* name, int name_length,
+                                      FunctionSig* sig) {
+  imports_.push_back({AddSignature(sig), name, name_length});
+  return static_cast<uint32_t>(imports_.size() - 1);
+}
+
+void WasmModuleBuilder::MarkStartFunction(uint32_t index) {
   start_function_index_ = index;
 }
 
 WasmModuleWriter* WasmModuleBuilder::Build(Zone* zone) {
   WasmModuleWriter* writer = new (zone) WasmModuleWriter(zone);
+  for (auto import : imports_) {
+    writer->imports_.push_back(import);
+  }
   for (auto function : functions_) {
     writer->functions_.push_back(function->Build(zone, this));
   }
@@ -516,15 +352,14 @@
   return writer;
 }
 
-
 uint32_t WasmModuleBuilder::AddGlobal(MachineType type, bool exported) {
   globals_.push_back(std::make_pair(type, exported));
   return static_cast<uint32_t>(globals_.size() - 1);
 }
 
-
 WasmModuleWriter::WasmModuleWriter(Zone* zone)
-    : functions_(zone),
+    : imports_(zone),
+      functions_(zone),
       data_segments_(zone),
       signatures_(zone),
       indirect_functions_(zone),
@@ -542,10 +377,11 @@
   }
 
   void AddSection(WasmSection::Code code, size_t other_size) {
-    Add(padded_varint + SizeOfVarInt(WasmSection::getNameLength(code)) +
+    Add(kPaddedVarintSize +
+            LEBHelper::sizeof_u32v(WasmSection::getNameLength(code)) +
             WasmSection::getNameLength(code),
         0);
-    if (other_size) Add(SizeOfVarInt(other_size), 0);
+    if (other_size) Add(LEBHelper::sizeof_u32v(other_size), 0);
   }
 };
 
@@ -554,11 +390,6 @@
 
   sizes.Add(2 * sizeof(uint32_t), 0);  // header
 
-  sizes.AddSection(WasmSection::Code::Memory, 0);
-  sizes.Add(kDeclMemorySize, 0);
-  TRACE("Size after memory: %u, %u\n", (unsigned)sizes.header_size,
-        (unsigned)sizes.body_size);
-
   if (globals_.size() > 0) {
     sizes.AddSection(WasmSection::Code::Globals, globals_.size());
     /* These globals never have names, so are always 3 bytes. */
@@ -570,15 +401,18 @@
   if (signatures_.size() > 0) {
     sizes.AddSection(WasmSection::Code::Signatures, signatures_.size());
     for (auto sig : signatures_) {
-      sizes.Add(
-          1 + SizeOfVarInt(sig->parameter_count()) + sig->parameter_count(), 0);
+      sizes.Add(1 + LEBHelper::sizeof_u32v(sig->parameter_count()) +
+                    sig->parameter_count() +
+                    LEBHelper::sizeof_u32v(sig->return_count()) +
+                    sig->return_count(),
+                0);
     }
     TRACE("Size after signatures: %u, %u\n", (unsigned)sizes.header_size,
           (unsigned)sizes.body_size);
   }
 
   if (functions_.size() > 0) {
-    sizes.AddSection(WasmSection::Code::Functions, functions_.size());
+    sizes.AddSection(WasmSection::Code::OldFunctions, functions_.size());
     for (auto function : functions_) {
       sizes.Add(function->HeaderSize() + function->BodySize(),
                 function->NameSize());
@@ -587,9 +421,36 @@
           (unsigned)sizes.body_size);
   }
 
+  if (imports_.size() > 0) {
+    sizes.AddSection(WasmSection::Code::ImportTable, imports_.size());
+    for (auto import : imports_) {
+      sizes.Add(LEBHelper::sizeof_u32v(import.sig_index), 0);
+      sizes.Add(LEBHelper::sizeof_u32v(import.name_length), 0);
+      sizes.Add(import.name_length, 0);
+      sizes.Add(1, 0);
+    }
+    TRACE("Size after imports: %u, %u\n", (unsigned)sizes.header_size,
+          (unsigned)sizes.body_size);
+  }
+
+  if (indirect_functions_.size() > 0) {
+    sizes.AddSection(WasmSection::Code::FunctionTable,
+                     indirect_functions_.size());
+    for (auto function_index : indirect_functions_) {
+      sizes.Add(LEBHelper::sizeof_u32v(function_index), 0);
+    }
+    TRACE("Size after indirect functions: %u, %u\n",
+          (unsigned)sizes.header_size, (unsigned)sizes.body_size);
+  }
+
+  sizes.AddSection(WasmSection::Code::Memory, 0);
+  sizes.Add(kDeclMemorySize, 0);
+  TRACE("Size after memory: %u, %u\n", (unsigned)sizes.header_size,
+        (unsigned)sizes.body_size);
+
   if (start_function_index_ >= 0) {
     sizes.AddSection(WasmSection::Code::StartFunction, 0);
-    sizes.Add(SizeOfVarInt(start_function_index_), 0);
+    sizes.Add(LEBHelper::sizeof_u32v(start_function_index_), 0);
     TRACE("Size after start: %u, %u\n", (unsigned)sizes.header_size,
           (unsigned)sizes.body_size);
   }
@@ -603,16 +464,6 @@
           (unsigned)sizes.body_size);
   }
 
-  if (indirect_functions_.size() > 0) {
-    sizes.AddSection(WasmSection::Code::FunctionTable,
-                     indirect_functions_.size());
-    for (auto function_index : indirect_functions_) {
-      sizes.Add(SizeOfVarInt(function_index), 0);
-    }
-    TRACE("Size after indirect functions: %u, %u\n",
-          (unsigned)sizes.header_size, (unsigned)sizes.body_size);
-  }
-
   if (sizes.body_size > 0) {
     sizes.AddSection(WasmSection::Code::End, 0);
     TRACE("Size after end: %u, %u\n", (unsigned)sizes.header_size,
@@ -629,16 +480,6 @@
   EmitUint32(&header, kWasmMagic);
   EmitUint32(&header, kWasmVersion);
 
-  // -- emit memory declaration ------------------------------------------------
-  {
-    byte* section = EmitSection(WasmSection::Code::Memory, &header);
-    EmitVarInt(&header, 16);  // min memory size
-    EmitVarInt(&header, 16);  // max memory size
-    EmitUint8(&header, 0);    // memory export
-    static_assert(kDeclMemorySize == 3, "memory size must match emit above");
-    FixupSection(section, header);
-  }
-
   // -- emit globals -----------------------------------------------------------
   if (globals_.size() > 0) {
     byte* section = EmitSection(WasmSection::Code::Globals, &header);
@@ -658,22 +499,36 @@
     EmitVarInt(&header, signatures_.size());
 
     for (FunctionSig* sig : signatures_) {
+      EmitUint8(&header, kWasmFunctionTypeForm);
       EmitVarInt(&header, sig->parameter_count());
-      if (sig->return_count() > 0) {
-        EmitUint8(&header, WasmOpcodes::LocalTypeCodeFor(sig->GetReturn()));
-      } else {
-        EmitUint8(&header, kLocalVoid);
-      }
       for (size_t j = 0; j < sig->parameter_count(); j++) {
         EmitUint8(&header, WasmOpcodes::LocalTypeCodeFor(sig->GetParam(j)));
       }
+      EmitVarInt(&header, sig->return_count());
+      for (size_t j = 0; j < sig->return_count(); j++) {
+        EmitUint8(&header, WasmOpcodes::LocalTypeCodeFor(sig->GetReturn(j)));
+      }
+    }
+    FixupSection(section, header);
+  }
+
+  // -- emit imports -----------------------------------------------------------
+  if (imports_.size() > 0) {
+    byte* section = EmitSection(WasmSection::Code::ImportTable, &header);
+    EmitVarInt(&header, imports_.size());
+    for (auto import : imports_) {
+      EmitVarInt(&header, import.sig_index);
+      EmitVarInt(&header, import.name_length);
+      std::memcpy(header, import.name, import.name_length);
+      header += import.name_length;
+      EmitVarInt(&header, 0);
     }
     FixupSection(section, header);
   }
 
   // -- emit functions ---------------------------------------------------------
   if (functions_.size() > 0) {
-    byte* section = EmitSection(WasmSection::Code::Functions, &header);
+    byte* section = EmitSection(WasmSection::Code::OldFunctions, &header);
     EmitVarInt(&header, functions_.size());
 
     for (auto func : functions_) {
@@ -682,6 +537,27 @@
     FixupSection(section, header);
   }
 
+  // -- emit function table ----------------------------------------------------
+  if (indirect_functions_.size() > 0) {
+    byte* section = EmitSection(WasmSection::Code::FunctionTable, &header);
+    EmitVarInt(&header, indirect_functions_.size());
+
+    for (auto index : indirect_functions_) {
+      EmitVarInt(&header, index);
+    }
+    FixupSection(section, header);
+  }
+
+  // -- emit memory declaration ------------------------------------------------
+  {
+    byte* section = EmitSection(WasmSection::Code::Memory, &header);
+    EmitVarInt(&header, 16);  // min memory size
+    EmitVarInt(&header, 16);  // max memory size
+    EmitUint8(&header, 0);    // memory export
+    static_assert(kDeclMemorySize == 3, "memory size must match emit above");
+    FixupSection(section, header);
+  }
+
   // -- emit start function index ----------------------------------------------
   if (start_function_index_ >= 0) {
     byte* section = EmitSection(WasmSection::Code::StartFunction, &header);
@@ -700,17 +576,6 @@
     FixupSection(section, header);
   }
 
-  // -- emit function table ----------------------------------------------------
-  if (indirect_functions_.size() > 0) {
-    byte* section = EmitSection(WasmSection::Code::FunctionTable, &header);
-    EmitVarInt(&header, indirect_functions_.size());
-
-    for (auto index : indirect_functions_) {
-      EmitVarInt(&header, index);
-    }
-    FixupSection(section, header);
-  }
-
   if (sizes.body_size > 0) {
     byte* section = EmitSection(WasmSection::Code::End, &header);
     FixupSection(section, header);
@@ -718,22 +583,6 @@
 
   return new (zone) WasmModuleIndex(buffer, buffer + sizes.total());
 }
-
-
-std::vector<uint8_t> UnsignedLEB128From(uint32_t result) {
-  std::vector<uint8_t> output;
-  uint8_t next = 0;
-  int shift = 0;
-  do {
-    next = static_cast<uint8_t>(result >> shift);
-    if (((result >> shift) & 0xFFFFFF80) != 0) {
-      next = next | 0x80;
-    }
-    output.push_back(next);
-    shift += 7;
-  } while ((next & 0x80) != 0);
-  return output;
-}
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/src/wasm/encoder.h b/src/wasm/encoder.h
index 49a7bf7..0f2118d 100644
--- a/src/wasm/encoder.h
+++ b/src/wasm/encoder.h
@@ -10,6 +10,7 @@
 
 #include "src/base/smart-pointers.h"
 
+#include "src/wasm/wasm-macro-gen.h"
 #include "src/wasm/wasm-module.h"
 #include "src/wasm/wasm-opcodes.h"
 #include "src/wasm/wasm-result.h"
@@ -28,55 +29,42 @@
   void Serialize(byte* buffer, byte** header, byte** body) const;
 
  private:
-  WasmFunctionEncoder(Zone* zone, LocalType return_type, bool exported,
-                      bool external);
+  WasmFunctionEncoder(Zone* zone, LocalDeclEncoder locals, bool exported);
   friend class WasmFunctionBuilder;
-  uint16_t signature_index_;
-  ZoneVector<LocalType> params_;
-  uint16_t local_i32_count_;
-  uint16_t local_i64_count_;
-  uint16_t local_f32_count_;
-  uint16_t local_f64_count_;
+  uint32_t signature_index_;
+  LocalDeclEncoder locals_;
   bool exported_;
-  bool external_;
   ZoneVector<uint8_t> body_;
   ZoneVector<char> name_;
 
-  bool HasName() const { return (exported_ || external_) && name_.size() > 0; }
+  bool HasName() const { return exported_ && name_.size() > 0; }
 };
 
 class WasmFunctionBuilder : public ZoneObject {
  public:
-  uint16_t AddParam(LocalType type);
-  uint16_t AddLocal(LocalType type);
-  void ReturnType(LocalType type);
+  void SetSignature(FunctionSig* sig);
+  uint32_t AddLocal(LocalType type);
+  void EmitVarInt(uint32_t val);
   void EmitCode(const byte* code, uint32_t code_size);
-  void EmitCode(const byte* code, uint32_t code_size,
-                const uint32_t* local_indices, uint32_t indices_size);
   void Emit(WasmOpcode opcode);
+  void EmitGetLocal(uint32_t index);
+  void EmitSetLocal(uint32_t index);
+  void EmitI32Const(int32_t val);
   void EmitWithU8(WasmOpcode opcode, const byte immediate);
   void EmitWithU8U8(WasmOpcode opcode, const byte imm1, const byte imm2);
   void EmitWithVarInt(WasmOpcode opcode, uint32_t immediate);
-  uint32_t EmitEditableVarIntImmediate();
-  void EditVarIntImmediate(uint32_t offset, const uint32_t immediate);
   void Exported(uint8_t flag);
-  void External(uint8_t flag);
-  void SetName(const unsigned char* name, int name_length);
+  void SetName(const char* name, int name_length);
   WasmFunctionEncoder* Build(Zone* zone, WasmModuleBuilder* mb) const;
 
  private:
   explicit WasmFunctionBuilder(Zone* zone);
   friend class WasmModuleBuilder;
-  LocalType return_type_;
-  struct Type;
-  ZoneVector<Type> locals_;
+  LocalDeclEncoder locals_;
   uint8_t exported_;
-  uint8_t external_;
   ZoneVector<uint8_t> body_;
-  ZoneVector<uint32_t> local_indices_;
   ZoneVector<char> name_;
-  uint16_t AddVar(LocalType type, bool param);
-  void IndexVars(WasmFunctionEncoder* e, uint16_t* var_index) const;
+  void IndexVars(WasmFunctionEncoder* e, uint32_t* var_index) const;
 };
 
 class WasmDataSegmentEncoder : public ZoneObject {
@@ -105,6 +93,12 @@
   const byte* end_;
 };
 
+struct WasmFunctionImport {
+  uint32_t sig_index;
+  const char* name;
+  int name_length;
+};
+
 class WasmModuleWriter : public ZoneObject {
  public:
   WasmModuleIndex* WriteTo(Zone* zone) const;
@@ -112,10 +106,11 @@
  private:
   friend class WasmModuleBuilder;
   explicit WasmModuleWriter(Zone* zone);
+  ZoneVector<WasmFunctionImport> imports_;
   ZoneVector<WasmFunctionEncoder*> functions_;
   ZoneVector<WasmDataSegmentEncoder*> data_segments_;
   ZoneVector<FunctionSig*> signatures_;
-  ZoneVector<uint16_t> indirect_functions_;
+  ZoneVector<uint32_t> indirect_functions_;
   ZoneVector<std::pair<MachineType, bool>> globals_;
   int start_function_index_;
 };
@@ -123,32 +118,33 @@
 class WasmModuleBuilder : public ZoneObject {
  public:
   explicit WasmModuleBuilder(Zone* zone);
-  uint16_t AddFunction();
+  uint32_t AddFunction();
   uint32_t AddGlobal(MachineType type, bool exported);
   WasmFunctionBuilder* FunctionAt(size_t index);
   void AddDataSegment(WasmDataSegmentEncoder* data);
-  uint16_t AddSignature(FunctionSig* sig);
-  void AddIndirectFunction(uint16_t index);
-  void MarkStartFunction(uint16_t index);
+  uint32_t AddSignature(FunctionSig* sig);
+  void AddIndirectFunction(uint32_t index);
+  void MarkStartFunction(uint32_t index);
+  uint32_t AddImport(const char* name, int name_length, FunctionSig* sig);
   WasmModuleWriter* Build(Zone* zone);
 
   struct CompareFunctionSigs {
     bool operator()(FunctionSig* a, FunctionSig* b) const;
   };
-  typedef ZoneMap<FunctionSig*, uint16_t, CompareFunctionSigs> SignatureMap;
+  typedef ZoneMap<FunctionSig*, uint32_t, CompareFunctionSigs> SignatureMap;
 
  private:
   Zone* zone_;
   ZoneVector<FunctionSig*> signatures_;
+  ZoneVector<WasmFunctionImport> imports_;
   ZoneVector<WasmFunctionBuilder*> functions_;
   ZoneVector<WasmDataSegmentEncoder*> data_segments_;
-  ZoneVector<uint16_t> indirect_functions_;
+  ZoneVector<uint32_t> indirect_functions_;
   ZoneVector<std::pair<MachineType, bool>> globals_;
   SignatureMap signature_map_;
   int start_function_index_;
 };
 
-std::vector<uint8_t> UnsignedLEB128From(uint32_t result);
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/src/wasm/leb-helper.h b/src/wasm/leb-helper.h
new file mode 100644
index 0000000..7ba244d
--- /dev/null
+++ b/src/wasm/leb-helper.h
@@ -0,0 +1,131 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_WASM_LEB_HELPER_H_
+#define V8_WASM_LEB_HELPER_H_
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+class LEBHelper {
+ public:
+  // Write a 32-bit unsigned LEB to {dest}, updating {dest} to point after
+  // the last uint8_t written. No safety checks.
+  static void write_u32v(uint8_t** dest, uint32_t val) {
+    while (val >= 0x80) {
+      *((*dest)++) = static_cast<uint8_t>(0x80 | (val & 0x7F));
+      val >>= 7;
+    }
+    *((*dest)++) = static_cast<uint8_t>(val & 0x7F);
+  }
+
+  // Write a 32-bit signed LEB to {dest}, updating {dest} to point after
+  // the last uint8_t written. No safety checks.
+  static void write_i32v(uint8_t** dest, int32_t val) {
+    if (val >= 0) {
+      while (val >= 0x40) {  // prevent sign extension.
+        *((*dest)++) = static_cast<uint8_t>(0x80 | (val & 0x7F));
+        val >>= 7;
+      }
+      *((*dest)++) = static_cast<uint8_t>(val & 0xFF);
+    } else {
+      while ((val >> 6) != -1) {
+        *((*dest)++) = static_cast<uint8_t>(0x80 | (val & 0x7F));
+        val >>= 7;
+      }
+      *((*dest)++) = static_cast<uint8_t>(val & 0x7F);
+    }
+  }
+
+  // Write a 64-bit unsigned LEB to {dest}, updating {dest} to point after
+  // the last uint8_t written. No safety checks.
+  static void write_u64v(uint8_t** dest, uint64_t val) {
+    while (val >= 0x80) {
+      *((*dest)++) = static_cast<uint8_t>(0x80 | (val & 0x7F));
+      val >>= 7;
+    }
+    *((*dest)++) = static_cast<uint8_t>(val & 0x7F);
+  }
+
+  // Write a 64-bit signed LEB to {dest}, updating {dest} to point after
+  // the last uint8_t written. No safety checks.
+  static void write_i64v(uint8_t** dest, int64_t val) {
+    if (val >= 0) {
+      while (val >= 0x40) {  // prevent sign extension.
+        *((*dest)++) = static_cast<uint8_t>(0x80 | (val & 0x7F));
+        val >>= 7;
+      }
+      *((*dest)++) = static_cast<uint8_t>(val & 0xFF);
+    } else {
+      while ((val >> 6) != -1) {
+        *((*dest)++) = static_cast<uint8_t>(0x80 | (val & 0x7F));
+        val >>= 7;
+      }
+      *((*dest)++) = static_cast<uint8_t>(val & 0x7F);
+    }
+  }
+
+  // TODO(titzer): move core logic for decoding LEBs from decoder.h to here.
+
+  // Compute the size of {val} if emitted as an LEB32.
+  static inline size_t sizeof_u32v(size_t val) {
+    size_t size = 0;
+    do {
+      size++;
+      val = val >> 7;
+    } while (val > 0);
+    return size;
+  }
+
+  // Compute the size of {val} if emitted as an LEB32.
+  static inline size_t sizeof_i32v(int32_t val) {
+    size_t size = 1;
+    if (val >= 0) {
+      while (val >= 0x40) {  // prevent sign extension.
+        size++;
+        val >>= 7;
+      }
+    } else {
+      while ((val >> 6) != -1) {
+        size++;
+        val >>= 7;
+      }
+    }
+    return size;
+  }
+
+  // Compute the size of {val} if emitted as an unsigned LEB64.
+  static inline size_t sizeof_u64v(uint64_t val) {
+    size_t size = 0;
+    do {
+      size++;
+      val = val >> 7;
+    } while (val > 0);
+    return size;
+  }
+
+  // Compute the size of {val} if emitted as a signed LEB64.
+  static inline size_t sizeof_i64v(int64_t val) {
+    size_t size = 1;
+    if (val >= 0) {
+      while (val >= 0x40) {  // prevent sign extension.
+        size++;
+        val >>= 7;
+      }
+    } else {
+      while ((val >> 6) != -1) {
+        size++;
+        val >>= 7;
+      }
+    }
+    return size;
+  }
+};
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_WASM_LEB_HELPER_H_
diff --git a/src/wasm/module-decoder.cc b/src/wasm/module-decoder.cc
index 3e85a1b..f7d26a5 100644
--- a/src/wasm/module-decoder.cc
+++ b/src/wasm/module-decoder.cc
@@ -25,7 +25,6 @@
 #define TRACE(...)
 #endif
 
-
 // The main logic for decoding the bytes of a module.
 class ModuleDecoder : public Decoder {
  public:
@@ -79,9 +78,8 @@
     module->mem_external = false;
     module->origin = origin_;
 
-    bool sections[(size_t)WasmSection::Code::Max] = {false};
-
     const byte* pos = pc_;
+    int current_order = 0;
     uint32_t magic_word = consume_u32("wasm magic");
 #define BYTES(x) (x & 0xff), (x >> 8) & 0xff, (x >> 16) & 0xff, (x >> 24) & 0xff
     if (magic_word != kWasmMagic) {
@@ -109,45 +107,45 @@
       TRACE("DecodeSection\n");
       pos = pc_;
 
-      int length;
-      uint32_t section_length = consume_u32v(&length, "section size");
-
-      int section_string_leb_length = 0;
-      uint32_t section_string_length = 0;
-      WasmSection::Code section = consume_section_name(
-          &section_string_leb_length, &section_string_length);
-      uint32_t string_and_leb_length =
-          section_string_leb_length + section_string_length;
-      if (string_and_leb_length > section_length) {
-        error(pos, pos,
-              "section string of size %u longer than total section bytes %u",
-              string_and_leb_length, section_length);
+      // Read the section name.
+      int string_leb_length = 0;
+      uint32_t string_length =
+          consume_u32v(&string_leb_length, "section name length");
+      const byte* section_name_start = pc_;
+      consume_bytes(string_length);
+      if (failed()) {
+        TRACE("Section name of length %u couldn't be read\n", string_length);
         break;
       }
 
-      if (section == WasmSection::Code::Max) {
-        // Skip unknown section.
-        uint32_t skip = section_length - string_and_leb_length;
-        TRACE("skipping %u bytes from unknown section\n", skip);
-        consume_bytes(skip);
-        continue;
-      }
+      WasmSection::Code section =
+          WasmSection::lookup(section_name_start, string_length);
 
-      // Each section should appear at most once.
-      CheckForPreviousSection(sections, section, false);
-      sections[(size_t)section] = true;
+      // Read and check the section size.
+      int section_leb_length = 0;
+      uint32_t section_length =
+          consume_u32v(&section_leb_length, "section length");
+      if (!checkAvailable(section_length)) {
+        // The section would extend beyond the end of the module.
+        break;
+      }
+      const byte* section_start = pc_;
+      const byte* expected_section_end = pc_ + section_length;
+
+      current_order = CheckSectionOrder(current_order, section);
 
       switch (section) {
         case WasmSection::Code::End:
           // Terminate section decoding.
           limit_ = pc_;
           break;
-        case WasmSection::Code::Memory:
+        case WasmSection::Code::Memory: {
           int length;
           module->min_mem_pages = consume_u32v(&length, "min memory");
           module->max_mem_pages = consume_u32v(&length, "max memory");
           module->mem_export = consume_u8("export memory") != 0;
           break;
+        }
         case WasmSection::Code::Signatures: {
           int length;
           uint32_t signatures_count = consume_u32v(&length, "signatures count");
@@ -157,30 +155,30 @@
             if (failed()) break;
             TRACE("DecodeSignature[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
-            FunctionSig* s = consume_sig();  // read function sig.
+            FunctionSig* s = consume_sig();
             module->signatures.push_back(s);
           }
           break;
         }
         case WasmSection::Code::FunctionSignatures: {
-          // Functions require a signature table first.
-          CheckForPreviousSection(sections, WasmSection::Code::Signatures,
-                                  true);
           int length;
           uint32_t functions_count = consume_u32v(&length, "functions count");
           module->functions.reserve(SafeReserve(functions_count));
           for (uint32_t i = 0; i < functions_count; i++) {
-            module->functions.push_back(
-                {nullptr, i, 0, 0, 0, 0, 0, 0, false, false});
+            module->functions.push_back({nullptr,  // sig
+                                         i,        // func_index
+                                         0,        // sig_index
+                                         0,        // name_offset
+                                         0,        // name_length
+                                         0,        // code_start_offset
+                                         0,        // code_end_offset
+                                         false});  // exported
             WasmFunction* function = &module->functions.back();
             function->sig_index = consume_sig_index(module, &function->sig);
           }
           break;
         }
         case WasmSection::Code::FunctionBodies: {
-          // Function bodies should follow signatures.
-          CheckForPreviousSection(sections,
-                                  WasmSection::Code::FunctionSignatures, true);
           int length;
           const byte* pos = pc_;
           uint32_t functions_count = consume_u32v(&length, "functions count");
@@ -206,10 +204,7 @@
           }
           break;
         }
-        case WasmSection::Code::Functions: {
-          // Functions require a signature table first.
-          CheckForPreviousSection(sections, WasmSection::Code::Signatures,
-                                  true);
+        case WasmSection::Code::OldFunctions: {
           int length;
           uint32_t functions_count = consume_u32v(&length, "functions count");
           module->functions.reserve(SafeReserve(functions_count));
@@ -224,8 +219,14 @@
             TRACE("DecodeFunction[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
 
-            module->functions.push_back(
-                {nullptr, i, 0, 0, 0, 0, 0, 0, false, false});
+            module->functions.push_back({nullptr,  // sig
+                                         i,        // func_index
+                                         0,        // sig_index
+                                         0,        // name_offset
+                                         0,        // name_length
+                                         0,        // code_start_offset
+                                         0,        // code_end_offset
+                                         false});  // exported
             WasmFunction* function = &module->functions.back();
             DecodeFunctionInModule(module, function, false);
           }
@@ -233,19 +234,15 @@
             for (uint32_t i = 0; i < functions_count; i++) {
               if (failed()) break;
               WasmFunction* function = &module->functions[i];
-              if (!function->external) {
-                VerifyFunctionBody(i, &menv, function);
-                if (result_.failed())
-                  error(result_.error_pc, result_.error_msg.get());
+              VerifyFunctionBody(i, &menv, function);
+              if (result_.failed()) {
+                error(result_.error_pc, result_.error_msg.get());
               }
             }
           }
           break;
         }
         case WasmSection::Code::Names: {
-          // Names correspond to functions.
-          CheckForPreviousSection(sections,
-                                  WasmSection::Code::FunctionSignatures, true);
           int length;
           const byte* pos = pc_;
           uint32_t functions_count = consume_u32v(&length, "functions count");
@@ -259,13 +256,13 @@
           for (uint32_t i = 0; i < functions_count; i++) {
             WasmFunction* function = &module->functions[i];
             function->name_offset =
-                consume_string(&function->name_length, "function name");
+                consume_string(&function->name_length, false);
 
             uint32_t local_names_count =
                 consume_u32v(&length, "local names count");
             for (uint32_t j = 0; j < local_names_count; j++) {
               uint32_t unused = 0;
-              uint32_t offset = consume_string(&unused, "local name");
+              uint32_t offset = consume_string(&unused, false);
               USE(unused);
               USE(offset);
             }
@@ -297,7 +294,10 @@
             if (failed()) break;
             TRACE("DecodeDataSegment[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
-            module->data_segments.push_back({0, 0, 0});
+            module->data_segments.push_back({0,        // dest_addr
+                                             0,        // source_offset
+                                             0,        // source_size
+                                             false});  // init
             WasmDataSegment* segment = &module->data_segments.back();
             DecodeDataSegmentInModule(module, segment);
           }
@@ -341,9 +341,6 @@
           break;
         }
         case WasmSection::Code::ImportTable: {
-          // Declares an import table.
-          CheckForPreviousSection(sections, WasmSection::Code::Signatures,
-                                  true);
           int length;
           uint32_t import_table_count =
               consume_u32v(&length, "import table count");
@@ -354,18 +351,23 @@
             TRACE("DecodeImportTable[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
 
-            module->import_table.push_back({nullptr, 0, 0});
+            module->import_table.push_back({nullptr,  // sig
+                                            0,        // sig_index
+                                            0,        // module_name_offset
+                                            0,        // module_name_length
+                                            0,        // function_name_offset
+                                            0});      // function_name_length
             WasmImport* import = &module->import_table.back();
 
             import->sig_index = consume_sig_index(module, &import->sig);
             const byte* pos = pc_;
-            import->module_name_offset = consume_string(
-                &import->module_name_length, "import module name");
+            import->module_name_offset =
+                consume_string(&import->module_name_length, true);
             if (import->module_name_length == 0) {
               error(pos, "import module name cannot be NULL");
             }
-            import->function_name_offset = consume_string(
-                &import->function_name_length, "import function name");
+            import->function_name_offset =
+                consume_string(&import->function_name_length, true);
           }
           break;
         }
@@ -382,17 +384,37 @@
             TRACE("DecodeExportTable[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
 
-            module->export_table.push_back({0, 0});
+            module->export_table.push_back({0,    // func_index
+                                            0,    // name_offset
+                                            0});  // name_length
             WasmExport* exp = &module->export_table.back();
 
             WasmFunction* func;
             exp->func_index = consume_func_index(module, &func);
-            exp->name_offset = consume_string(&exp->name_length, "export name");
+            exp->name_offset = consume_string(&exp->name_length, true);
           }
           break;
         }
         case WasmSection::Code::Max:
-          UNREACHABLE();  // Already skipped unknown sections.
+          // Skip unknown sections.
+          TRACE("Unknown section: '");
+          for (uint32_t i = 0; i != string_length; ++i) {
+            TRACE("%c", *(section_name_start + i));
+          }
+          TRACE("'\n");
+          consume_bytes(section_length);
+          break;
+      }
+
+      if (pc_ != expected_section_end) {
+        const char* diff = pc_ < expected_section_end ? "shorter" : "longer";
+        size_t expected_length = static_cast<size_t>(section_length);
+        size_t actual_length = static_cast<size_t>(pc_ - section_start);
+        error(pc_, pc_,
+              "section \"%s\" %s (%zu bytes) than specified (%zu bytes)",
+              WasmSection::getName(section), diff, actual_length,
+              expected_length);
+        break;
       }
     }
 
@@ -417,17 +439,18 @@
     }
   }
 
-  void CheckForPreviousSection(bool* sections, WasmSection::Code section,
-                               bool present) {
-    if (section >= WasmSection::Code::Max) return;
-    if (sections[(size_t)section] == present) return;
-    if (present) {
-      error(pc_ - 1, nullptr, "required %s section missing",
-            WasmSection::getName(section));
-    } else {
-      error(pc_ - 1, nullptr, "%s section already present",
+  int CheckSectionOrder(int current_order, WasmSection::Code section) {
+    int next_order = WasmSection::getOrder(section);
+    if (next_order == 0) return current_order;
+    if (next_order == current_order) {
+      error(pc_, pc_, "section \"%s\" already defined",
             WasmSection::getName(section));
     }
+    if (next_order < current_order) {
+      error(pc_, pc_, "section \"%s\" out of order",
+            WasmSection::getName(section));
+    }
+    return next_order;
   }
 
   // Decodes a single anonymous function starting at {start_}.
@@ -440,7 +463,6 @@
     function->code_start_offset = off(pc_);   // ---- code start
     function->code_end_offset = off(limit_);  // ---- code end
     function->exported = false;               // ---- exported
-    function->external = false;               // ---- external
 
     if (ok()) VerifyFunctionBody(0, module_env, function);
 
@@ -466,7 +488,9 @@
 
   // Decodes a single global entry inside a module starting at {pc_}.
   void DecodeGlobalInModule(WasmGlobal* global) {
-    global->name_offset = consume_string(&global->name_length, "global name");
+    global->name_offset = consume_string(&global->name_length, false);
+    DCHECK(unibrow::Utf8::Validate(start_ + global->name_offset,
+                                   global->name_length));
     global->type = mem_type();
     global->offset = 0;
     global->exported = consume_u8("exported") != 0;
@@ -487,32 +511,15 @@
       function->sig = module->signatures[function->sig_index];
     }
 
-    TRACE("  +%d  <function attributes:%s%s%s%s%s>\n",
-          static_cast<int>(pc_ - start_),
+    TRACE("  +%d  <function attributes:%s%s>\n", static_cast<int>(pc_ - start_),
           decl_bits & kDeclFunctionName ? " name" : "",
-          decl_bits & kDeclFunctionImport ? " imported" : "",
-          decl_bits & kDeclFunctionLocals ? " locals" : "",
-          decl_bits & kDeclFunctionExport ? " exported" : "",
-          (decl_bits & kDeclFunctionImport) == 0 ? " body" : "");
-
-    if (decl_bits & kDeclFunctionName) {
-      function->name_offset =
-          consume_string(&function->name_length, "function name");
-    }
+          decl_bits & kDeclFunctionExport ? " exported" : "");
 
     function->exported = decl_bits & kDeclFunctionExport;
 
-    // Imported functions have no locals or body.
-    if (decl_bits & kDeclFunctionImport) {
-      function->external = true;
-      return;
-    }
-
-    if (decl_bits & kDeclFunctionLocals) {
-      function->local_i32_count = consume_u16("i32 count");
-      function->local_i64_count = consume_u16("i64 count");
-      function->local_f32_count = consume_u16("f32 count");
-      function->local_f64_count = consume_u16("f64 count");
+    if (decl_bits & kDeclFunctionName) {
+      function->name_offset =
+          consume_string(&function->name_length, function->exported);
     }
 
     uint16_t size = consume_u16("body size");
@@ -566,11 +573,10 @@
   // Verifies the body (code) of a given function.
   void VerifyFunctionBody(uint32_t func_num, ModuleEnv* menv,
                           WasmFunction* function) {
-    if (FLAG_trace_wasm_decode_time) {
+    if (FLAG_trace_wasm_decoder || FLAG_trace_wasm_decode_time) {
       OFStream os(stdout);
       os << "Verifying WASM function " << WasmFunctionName(function, menv)
          << std::endl;
-      os << std::endl;
     }
     FunctionBody body = {menv, function->sig, start_,
                          start_ + function->code_start_offset,
@@ -606,11 +612,14 @@
 
   // Reads a length-prefixed string, checking that it is within bounds. Returns
   // the offset of the string, and the length as an out parameter.
-  uint32_t consume_string(uint32_t* length, const char* name = nullptr) {
+  uint32_t consume_string(uint32_t* length, bool validate_utf8) {
     int varint_length;
     *length = consume_u32v(&varint_length, "string length");
     uint32_t offset = pc_offset();
     TRACE("  +%u  %-20s: (%u bytes)\n", offset, "string", *length);
+    if (validate_utf8 && !unibrow::Utf8::Validate(pc_, *length)) {
+      error(pc_, "no valid UTF-8 string");
+    }
     consume_bytes(*length);
     return offset;
   }
@@ -643,30 +652,6 @@
     return func_index;
   }
 
-  // Reads a section name.
-  WasmSection::Code consume_section_name(int* string_leb_length,
-                                         uint32_t* string_length) {
-    *string_length = consume_u32v(string_leb_length, "name length");
-    const byte* start = pc_;
-    consume_bytes(*string_length);
-    if (failed()) {
-      TRACE("Section name of length %u couldn't be read\n", *string_length);
-      return WasmSection::Code::Max;
-    }
-    // TODO(jfb) Linear search, it may be better to do a common-prefix search.
-    for (WasmSection::Code i = WasmSection::begin(); i != WasmSection::end();
-         i = WasmSection::next(i)) {
-      if (WasmSection::getNameLength(i) == *string_length &&
-          0 == memcmp(WasmSection::getName(i), start, *string_length)) {
-        return i;
-      }
-    }
-    TRACE("Unknown section: '");
-    for (uint32_t i = 0; i != *string_length; ++i) TRACE("%c", *(start + i));
-    TRACE("'\n");
-    return WasmSection::Code::Max;
-  }
-
   // Reads a single 8-bit integer, interpreting it as a local type.
   LocalType consume_local_type() {
     byte val = consume_u8("local type");
@@ -719,24 +704,51 @@
     }
   }
 
-  // Parses an inline function signature.
+  // Parses a type entry, which is currently limited to functions only.
   FunctionSig* consume_sig() {
+    const byte* pos = pc_;
+    byte form = consume_u8("type form");
+    if (form != kWasmFunctionTypeForm) {
+      error(pos, pos, "expected function type form (0x%02x), got: 0x%02x",
+            kWasmFunctionTypeForm, form);
+      return nullptr;
+    }
     int length;
-    byte count = consume_u32v(&length, "param count");
-    LocalType ret = consume_local_type();
-    FunctionSig::Builder builder(module_zone, ret == kAstStmt ? 0 : 1, count);
-    if (ret != kAstStmt) builder.AddReturn(ret);
-
-    for (int i = 0; i < count; i++) {
+    // parse parameter types
+    uint32_t param_count = consume_u32v(&length, "param count");
+    std::vector<LocalType> params;
+    for (uint32_t i = 0; i < param_count; i++) {
       LocalType param = consume_local_type();
       if (param == kAstStmt) error(pc_ - 1, "invalid void parameter type");
-      builder.AddParam(param);
+      params.push_back(param);
     }
-    return builder.Build();
+
+    // parse return types
+    const byte* pt = pc_;
+    uint32_t return_count = consume_u32v(&length, "return count");
+    if (return_count > kMaxReturnCount) {
+      error(pt, pt, "return count of %u exceeds maximum of %u", return_count,
+            kMaxReturnCount);
+      return nullptr;
+    }
+    std::vector<LocalType> returns;
+    for (uint32_t i = 0; i < return_count; i++) {
+      LocalType ret = consume_local_type();
+      if (ret == kAstStmt) error(pc_ - 1, "invalid void return type");
+      returns.push_back(ret);
+    }
+
+    // FunctionSig stores the return types first.
+    LocalType* buffer =
+        module_zone->NewArray<LocalType>(param_count + return_count);
+    uint32_t b = 0;
+    for (uint32_t i = 0; i < return_count; i++) buffer[b++] = returns[i];
+    for (uint32_t i = 0; i < param_count; i++) buffer[b++] = params[i];
+
+    return new (module_zone) FunctionSig(return_count, param_count, buffer);
   }
 };
 
-
 // Helpers for nice error messages.
 class ModuleError : public ModuleResult {
  public:
@@ -750,7 +762,6 @@
   }
 };
 
-
 // Helpers for nice error messages.
 class FunctionError : public FunctionResult {
  public:
@@ -767,30 +778,42 @@
 ModuleResult DecodeWasmModule(Isolate* isolate, Zone* zone,
                               const byte* module_start, const byte* module_end,
                               bool verify_functions, ModuleOrigin origin) {
+  size_t decode_memory_start = zone->allocation_size();
+  HistogramTimerScope wasm_decode_module_time_scope(
+      isolate->counters()->wasm_decode_module_time());
   size_t size = module_end - module_start;
   if (module_start > module_end) return ModuleError("start > end");
   if (size >= kMaxModuleSize) return ModuleError("size > maximum module size");
+  // TODO(bradnelson): Improve histogram handling of size_t.
+  isolate->counters()->wasm_module_size_bytes()->AddSample(
+      static_cast<int>(size));
   WasmModule* module = new WasmModule();
   ModuleDecoder decoder(zone, module_start, module_end, origin);
-  return decoder.DecodeModule(module, verify_functions);
+  ModuleResult result = decoder.DecodeModule(module, verify_functions);
+  // TODO(bradnelson): Improve histogram handling of size_t.
+  isolate->counters()->wasm_decode_module_peak_memory_bytes()->AddSample(
+      static_cast<int>(zone->allocation_size() - decode_memory_start));
+  return result;
 }
 
-
 FunctionSig* DecodeWasmSignatureForTesting(Zone* zone, const byte* start,
                                            const byte* end) {
   ModuleDecoder decoder(zone, start, end, kWasmOrigin);
   return decoder.DecodeFunctionSignature(start);
 }
 
-
 FunctionResult DecodeWasmFunction(Isolate* isolate, Zone* zone,
                                   ModuleEnv* module_env,
                                   const byte* function_start,
                                   const byte* function_end) {
+  HistogramTimerScope wasm_decode_function_time_scope(
+      isolate->counters()->wasm_decode_function_time());
   size_t size = function_end - function_start;
   if (function_start > function_end) return FunctionError("start > end");
   if (size > kMaxFunctionSize)
     return FunctionError("size > maximum function size");
+  isolate->counters()->wasm_function_size_bytes()->AddSample(
+      static_cast<int>(size));
   WasmFunction* function = new WasmFunction();
   ModuleDecoder decoder(zone, function_start, function_end, kWasmOrigin);
   return decoder.DecodeSingleFunction(module_env, function);
diff --git a/src/wasm/switch-logic.cc b/src/wasm/switch-logic.cc
new file mode 100644
index 0000000..f8e3f0d
--- /dev/null
+++ b/src/wasm/switch-logic.cc
@@ -0,0 +1,63 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/wasm/switch-logic.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+namespace {
+CaseNode* CreateBst(ZoneVector<CaseNode*>* nodes, size_t begin, size_t end) {
+  if (end < begin) {
+    return nullptr;
+  } else if (end == begin) {
+    return nodes->at(begin);
+  } else {
+    size_t root_index = (begin + end) / 2;
+    CaseNode* root = nodes->at(root_index);
+    if (root_index != 0) {
+      root->left = CreateBst(nodes, begin, root_index - 1);
+    }
+    root->right = CreateBst(nodes, root_index + 1, end);
+    return root;
+  }
+}
+}  // namespace
+
+CaseNode* OrderCases(ZoneVector<int>* cases, Zone* zone) {
+  const int max_distance = 2;
+  const int min_size = 4;
+  if (cases->empty()) {
+    return nullptr;
+  }
+  std::sort(cases->begin(), cases->end());
+  ZoneVector<size_t> table_breaks(zone);
+  for (size_t i = 1; i < cases->size(); i++) {
+    if (cases->at(i) - cases->at(i - 1) > max_distance) {
+      table_breaks.push_back(i);
+    }
+  }
+  table_breaks.push_back(cases->size());
+  ZoneVector<CaseNode*> nodes(zone);
+  size_t curr_pos = 0;
+  for (size_t i = 0; i < table_breaks.size(); i++) {
+    size_t break_pos = table_breaks[i];
+    if (break_pos - curr_pos >= min_size) {
+      int begin = cases->at(curr_pos);
+      int end = cases->at(break_pos - 1);
+      nodes.push_back(new (zone) CaseNode(begin, end));
+      curr_pos = break_pos;
+    } else {
+      for (; curr_pos < break_pos; curr_pos++) {
+        nodes.push_back(new (zone)
+                            CaseNode(cases->at(curr_pos), cases->at(curr_pos)));
+      }
+    }
+  }
+  return CreateBst(&nodes, 0, nodes.size() - 1);
+}
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/src/wasm/switch-logic.h b/src/wasm/switch-logic.h
new file mode 100644
index 0000000..8cef08b
--- /dev/null
+++ b/src/wasm/switch-logic.h
@@ -0,0 +1,31 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_WASM_SWITCH_LOGIC_H
+#define V8_WASM_SWITCH_LOGIC_H
+
+#include "src/zone-containers.h"
+#include "src/zone.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+struct CaseNode : public ZoneObject {
+  const int begin;
+  const int end;
+  CaseNode* left;
+  CaseNode* right;
+  CaseNode(int begin, int end) : begin(begin), end(end) {
+    left = nullptr;
+    right = nullptr;
+  }
+};
+
+CaseNode* OrderCases(ZoneVector<int>* cases, Zone* zone);
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
+
+#endif
diff --git a/src/wasm/wasm-external-refs.cc b/src/wasm/wasm-external-refs.cc
new file mode 100644
index 0000000..e155f3c
--- /dev/null
+++ b/src/wasm/wasm-external-refs.cc
@@ -0,0 +1,199 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <math.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <limits>
+
+#include "include/v8config.h"
+
+#include "src/base/bits.h"
+#include "src/wasm/wasm-external-refs.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+void f32_trunc_wrapper(float* param) { *param = truncf(*param); }
+
+void f32_floor_wrapper(float* param) { *param = floorf(*param); }
+
+void f32_ceil_wrapper(float* param) { *param = ceilf(*param); }
+
+void f32_nearest_int_wrapper(float* param) { *param = nearbyintf(*param); }
+
+void f64_trunc_wrapper(double* param) { *param = trunc(*param); }
+
+void f64_floor_wrapper(double* param) { *param = floor(*param); }
+
+void f64_ceil_wrapper(double* param) { *param = ceil(*param); }
+
+void f64_nearest_int_wrapper(double* param) { *param = nearbyint(*param); }
+
+void int64_to_float32_wrapper(int64_t* input, float* output) {
+  *output = static_cast<float>(*input);
+}
+
+void uint64_to_float32_wrapper(uint64_t* input, float* output) {
+#if V8_CC_MSVC
+  // With MSVC we use static_cast<float>(uint32_t) instead of
+  // static_cast<float>(uint64_t) to achieve round-to-nearest-ties-even
+  // semantics. The idea is to calculate
+  // static_cast<float>(high_word) * 2^32 + static_cast<float>(low_word). To
+  // achieve proper rounding in all cases we have to adjust the high_word
+  // with a "rounding bit" sometimes. The rounding bit is stored in the LSB of
+  // the high_word if the low_word may affect the rounding of the high_word.
+  uint32_t low_word = static_cast<uint32_t>(*input & 0xffffffff);
+  uint32_t high_word = static_cast<uint32_t>(*input >> 32);
+
+  float shift = static_cast<float>(1ull << 32);
+  // If the MSB of the high_word is set, then we make space for a rounding bit.
+  if (high_word < 0x80000000) {
+    high_word <<= 1;
+    shift = static_cast<float>(1ull << 31);
+  }
+
+  if ((high_word & 0xfe000000) && low_word) {
+    // Set the rounding bit.
+    high_word |= 1;
+  }
+
+  float result = static_cast<float>(high_word);
+  result *= shift;
+  result += static_cast<float>(low_word);
+  *output = result;
+
+#else
+  *output = static_cast<float>(*input);
+#endif
+}
+
+void int64_to_float64_wrapper(int64_t* input, double* output) {
+  *output = static_cast<double>(*input);
+}
+
+void uint64_to_float64_wrapper(uint64_t* input, double* output) {
+#if V8_CC_MSVC
+  // With MSVC we use static_cast<double>(uint32_t) instead of
+  // static_cast<double>(uint64_t) to achieve round-to-nearest-ties-even
+  // semantics. The idea is to calculate
+  // static_cast<double>(high_word) * 2^32 + static_cast<double>(low_word).
+  uint32_t low_word = static_cast<uint32_t>(*input & 0xffffffff);
+  uint32_t high_word = static_cast<uint32_t>(*input >> 32);
+
+  double shift = static_cast<double>(1ull << 32);
+
+  double result = static_cast<double>(high_word);
+  result *= shift;
+  result += static_cast<double>(low_word);
+  *output = result;
+
+#else
+  *output = static_cast<double>(*input);
+#endif
+}
+
+int32_t float32_to_int64_wrapper(float* input, int64_t* output) {
+  // We use "<" here to check the upper bound because of rounding problems: With
+  // "<=" some inputs would be considered within int64 range which are actually
+  // not within int64 range.
+  if (*input >= static_cast<float>(std::numeric_limits<int64_t>::min()) &&
+      *input < static_cast<float>(std::numeric_limits<int64_t>::max())) {
+    *output = static_cast<int64_t>(*input);
+    return 1;
+  }
+  return 0;
+}
+
+int32_t float32_to_uint64_wrapper(float* input, uint64_t* output) {
+  // We use "<" here to check the upper bound because of rounding problems: With
+  // "<=" some inputs would be considered within uint64 range which are actually
+  // not within uint64 range.
+  if (*input > -1.0 &&
+      *input < static_cast<float>(std::numeric_limits<uint64_t>::max())) {
+    *output = static_cast<uint64_t>(*input);
+    return 1;
+  }
+  return 0;
+}
+
+int32_t float64_to_int64_wrapper(double* input, int64_t* output) {
+  // We use "<" here to check the upper bound because of rounding problems: With
+  // "<=" some inputs would be considered within int64 range which are actually
+  // not within int64 range.
+  if (*input >= static_cast<double>(std::numeric_limits<int64_t>::min()) &&
+      *input < static_cast<double>(std::numeric_limits<int64_t>::max())) {
+    *output = static_cast<int64_t>(*input);
+    return 1;
+  }
+  return 0;
+}
+
+int32_t float64_to_uint64_wrapper(double* input, uint64_t* output) {
+  // We use "<" here to check the upper bound because of rounding problems: With
+  // "<=" some inputs would be considered within uint64 range which are actually
+  // not within uint64 range.
+  if (*input > -1.0 &&
+      *input < static_cast<double>(std::numeric_limits<uint64_t>::max())) {
+    *output = static_cast<uint64_t>(*input);
+    return 1;
+  }
+  return 0;
+}
+
+int32_t int64_div_wrapper(int64_t* dst, int64_t* src) {
+  if (*src == 0) {
+    return 0;
+  }
+  if (*src == -1 && *dst == std::numeric_limits<int64_t>::min()) {
+    return -1;
+  }
+  *dst /= *src;
+  return 1;
+}
+
+int32_t int64_mod_wrapper(int64_t* dst, int64_t* src) {
+  if (*src == 0) {
+    return 0;
+  }
+  *dst %= *src;
+  return 1;
+}
+
+int32_t uint64_div_wrapper(uint64_t* dst, uint64_t* src) {
+  if (*src == 0) {
+    return 0;
+  }
+  *dst /= *src;
+  return 1;
+}
+
+int32_t uint64_mod_wrapper(uint64_t* dst, uint64_t* src) {
+  if (*src == 0) {
+    return 0;
+  }
+  *dst %= *src;
+  return 1;
+}
+
+uint32_t word32_ctz_wrapper(uint32_t* input) {
+  return static_cast<uint32_t>(base::bits::CountTrailingZeros32(*input));
+}
+
+uint32_t word64_ctz_wrapper(uint64_t* input) {
+  return static_cast<uint32_t>(base::bits::CountTrailingZeros64(*input));
+}
+
+uint32_t word32_popcnt_wrapper(uint32_t* input) {
+  return static_cast<uint32_t>(base::bits::CountPopulation(*input));
+}
+
+uint32_t word64_popcnt_wrapper(uint64_t* input) {
+  return static_cast<uint32_t>(base::bits::CountPopulation(*input));
+}
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/src/wasm/wasm-external-refs.h b/src/wasm/wasm-external-refs.h
index 4aa452b..ac938d6 100644
--- a/src/wasm/wasm-external-refs.h
+++ b/src/wasm/wasm-external-refs.h
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <stdint.h>
+
 #ifndef WASM_EXTERNAL_REFS_H
 #define WASM_EXTERNAL_REFS_H
 
@@ -9,173 +11,54 @@
 namespace internal {
 namespace wasm {
 
-static void f32_trunc_wrapper(float* param) { *param = truncf(*param); }
+void f32_trunc_wrapper(float* param);
 
-static void f32_floor_wrapper(float* param) { *param = floorf(*param); }
+void f32_floor_wrapper(float* param);
 
-static void f32_ceil_wrapper(float* param) { *param = ceilf(*param); }
+void f32_ceil_wrapper(float* param);
 
-static void f32_nearest_int_wrapper(float* param) {
-  *param = nearbyintf(*param);
-}
+void f32_nearest_int_wrapper(float* param);
 
-static void f64_trunc_wrapper(double* param) { *param = trunc(*param); }
+void f64_trunc_wrapper(double* param);
 
-static void f64_floor_wrapper(double* param) { *param = floor(*param); }
+void f64_floor_wrapper(double* param);
 
-static void f64_ceil_wrapper(double* param) { *param = ceil(*param); }
+void f64_ceil_wrapper(double* param);
 
-static void f64_nearest_int_wrapper(double* param) {
-  *param = nearbyint(*param);
-}
+void f64_nearest_int_wrapper(double* param);
 
-static void int64_to_float32_wrapper(int64_t* input, float* output) {
-  *output = static_cast<float>(*input);
-}
+void int64_to_float32_wrapper(int64_t* input, float* output);
 
-static void uint64_to_float32_wrapper(uint64_t* input, float* output) {
-#if V8_CC_MSVC
-  // With MSVC we use static_cast<float>(uint32_t) instead of
-  // static_cast<float>(uint64_t) to achieve round-to-nearest-ties-even
-  // semantics. The idea is to calculate
-  // static_cast<float>(high_word) * 2^32 + static_cast<float>(low_word). To
-  // achieve proper rounding in all cases we have to adjust the high_word
-  // with a "rounding bit" sometimes. The rounding bit is stored in the LSB of
-  // the high_word if the low_word may affect the rounding of the high_word.
-  uint32_t low_word = static_cast<uint32_t>(*input & 0xffffffff);
-  uint32_t high_word = static_cast<uint32_t>(*input >> 32);
+void uint64_to_float32_wrapper(uint64_t* input, float* output);
 
-  float shift = static_cast<float>(1ull << 32);
-  // If the MSB of the high_word is set, then we make space for a rounding bit.
-  if (high_word < 0x80000000) {
-    high_word <<= 1;
-    shift = static_cast<float>(1ull << 31);
-  }
+void int64_to_float64_wrapper(int64_t* input, double* output);
 
-  if ((high_word & 0xfe000000) && low_word) {
-    // Set the rounding bit.
-    high_word |= 1;
-  }
+void uint64_to_float64_wrapper(uint64_t* input, double* output);
 
-  float result = static_cast<float>(high_word);
-  result *= shift;
-  result += static_cast<float>(low_word);
-  *output = result;
+int32_t float32_to_int64_wrapper(float* input, int64_t* output);
 
-#else
-  *output = static_cast<float>(*input);
-#endif
-}
+int32_t float32_to_uint64_wrapper(float* input, uint64_t* output);
 
-static void int64_to_float64_wrapper(int64_t* input, double* output) {
-  *output = static_cast<double>(*input);
-}
+int32_t float64_to_int64_wrapper(double* input, int64_t* output);
 
-static void uint64_to_float64_wrapper(uint64_t* input, double* output) {
-#if V8_CC_MSVC
-  // With MSVC we use static_cast<double>(uint32_t) instead of
-  // static_cast<double>(uint64_t) to achieve round-to-nearest-ties-even
-  // semantics. The idea is to calculate
-  // static_cast<double>(high_word) * 2^32 + static_cast<double>(low_word).
-  uint32_t low_word = static_cast<uint32_t>(*input & 0xffffffff);
-  uint32_t high_word = static_cast<uint32_t>(*input >> 32);
+int32_t float64_to_uint64_wrapper(double* input, uint64_t* output);
 
-  double shift = static_cast<double>(1ull << 32);
+int32_t int64_div_wrapper(int64_t* dst, int64_t* src);
 
-  double result = static_cast<double>(high_word);
-  result *= shift;
-  result += static_cast<double>(low_word);
-  *output = result;
+int32_t int64_mod_wrapper(int64_t* dst, int64_t* src);
 
-#else
-  *output = static_cast<double>(*input);
-#endif
-}
+int32_t uint64_div_wrapper(uint64_t* dst, uint64_t* src);
 
-static int32_t float32_to_int64_wrapper(float* input, int64_t* output) {
-  // We use "<" here to check the upper bound because of rounding problems: With
-  // "<=" some inputs would be considered within int64 range which are actually
-  // not within int64 range.
-  if (*input >= static_cast<float>(std::numeric_limits<int64_t>::min()) &&
-      *input < static_cast<float>(std::numeric_limits<int64_t>::max())) {
-    *output = static_cast<int64_t>(*input);
-    return 1;
-  }
-  return 0;
-}
+int32_t uint64_mod_wrapper(uint64_t* dst, uint64_t* src);
 
-static int32_t float32_to_uint64_wrapper(float* input, uint64_t* output) {
-  // We use "<" here to check the upper bound because of rounding problems: With
-  // "<=" some inputs would be considered within uint64 range which are actually
-  // not within uint64 range.
-  if (*input > -1.0 &&
-      *input < static_cast<float>(std::numeric_limits<uint64_t>::max())) {
-    *output = static_cast<uint64_t>(*input);
-    return 1;
-  }
-  return 0;
-}
+uint32_t word32_ctz_wrapper(uint32_t* input);
 
-static int32_t float64_to_int64_wrapper(double* input, int64_t* output) {
-  // We use "<" here to check the upper bound because of rounding problems: With
-  // "<=" some inputs would be considered within int64 range which are actually
-  // not within int64 range.
-  if (*input >= static_cast<double>(std::numeric_limits<int64_t>::min()) &&
-      *input < static_cast<double>(std::numeric_limits<int64_t>::max())) {
-    *output = static_cast<int64_t>(*input);
-    return 1;
-  }
-  return 0;
-}
+uint32_t word64_ctz_wrapper(uint64_t* input);
 
-static int32_t float64_to_uint64_wrapper(double* input, uint64_t* output) {
-  // We use "<" here to check the upper bound because of rounding problems: With
-  // "<=" some inputs would be considered within uint64 range which are actually
-  // not within uint64 range.
-  if (*input > -1.0 &&
-      *input < static_cast<double>(std::numeric_limits<uint64_t>::max())) {
-    *output = static_cast<uint64_t>(*input);
-    return 1;
-  }
-  return 0;
-}
+uint32_t word32_popcnt_wrapper(uint32_t* input);
 
-static int32_t int64_div_wrapper(int64_t* dst, int64_t* src) {
-  if (*src == 0) {
-    return 0;
-  }
-  if (*src == -1 && *dst == std::numeric_limits<int64_t>::min()) {
-    return -1;
-  }
-  *dst /= *src;
-  return 1;
-}
-
-static int32_t int64_mod_wrapper(int64_t* dst, int64_t* src) {
-  if (*src == 0) {
-    return 0;
-  }
-  *dst %= *src;
-  return 1;
-}
-
-static int32_t uint64_div_wrapper(uint64_t* dst, uint64_t* src) {
-  if (*src == 0) {
-    return 0;
-  }
-  *dst /= *src;
-  return 1;
-}
-
-static int32_t uint64_mod_wrapper(uint64_t* dst, uint64_t* src) {
-  if (*src == 0) {
-    return 0;
-  }
-  *dst %= *src;
-  return 1;
-}
+uint32_t word64_popcnt_wrapper(uint64_t* input);
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
-
 #endif
diff --git a/src/wasm/wasm-function-name-table.cc b/src/wasm/wasm-function-name-table.cc
new file mode 100644
index 0000000..f082704
--- /dev/null
+++ b/src/wasm/wasm-function-name-table.cc
@@ -0,0 +1,74 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/wasm/wasm-function-name-table.h"
+
+#include "src/wasm/wasm-module.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+// Build an array with all function names. If there are N functions in the
+// module, then the first (kIntSize * (N+1)) bytes are integer entries.
+// The first integer entry encodes the number of functions in the module.
+// The entries 1 to N contain offsets into the second part of this array.
+// After these N+1 integer entries, the second part begins, which holds a
+// concatenation of all function names.
+//
+// Returns undefined if the array length would not fit in an integer value
+Handle<Object> BuildFunctionNamesTable(Isolate* isolate, WasmModule* module) {
+  uint64_t func_names_length = 0;
+  for (auto& func : module->functions) func_names_length += func.name_length;
+  int num_funcs_int = static_cast<int>(module->functions.size());
+  int current_offset = (num_funcs_int + 1) * kIntSize;
+  uint64_t total_array_length = current_offset + func_names_length;
+  int total_array_length_int = static_cast<int>(total_array_length);
+  // Check for overflow. Just skip function names if it happens.
+  if (total_array_length_int != total_array_length || num_funcs_int < 0 ||
+      num_funcs_int != module->functions.size())
+    return isolate->factory()->undefined_value();
+  Handle<ByteArray> func_names_array =
+      isolate->factory()->NewByteArray(total_array_length_int, TENURED);
+  if (func_names_array.is_null()) return isolate->factory()->undefined_value();
+  func_names_array->set_int(0, num_funcs_int);
+  int func_index = 0;
+  for (WasmFunction& fun : module->functions) {
+    WasmName name = module->GetNameOrNull(&fun);
+    func_names_array->copy_in(current_offset,
+                              reinterpret_cast<const byte*>(name.start()),
+                              name.length());
+    func_names_array->set_int(func_index + 1, current_offset);
+    current_offset += name.length();
+    ++func_index;
+  }
+  return func_names_array;
+}
+
+Handle<Object> GetWasmFunctionNameFromTable(Handle<ByteArray> func_names_array,
+                                            uint32_t func_index) {
+  uint32_t num_funcs = static_cast<uint32_t>(func_names_array->get_int(0));
+  DCHECK(static_cast<int>(num_funcs) >= 0);
+  auto undefined = [&func_names_array]() -> Handle<Object> {
+    return func_names_array->GetIsolate()->factory()->undefined_value();
+  };
+  if (func_index >= num_funcs) return undefined();
+  int offset = func_names_array->get_int(func_index + 1);
+  int next_offset = func_index == num_funcs - 1
+                        ? func_names_array->length()
+                        : func_names_array->get_int(func_index + 2);
+  ScopedVector<byte> buffer(next_offset - offset);
+  func_names_array->copy_out(offset, buffer.start(), next_offset - offset);
+  if (!unibrow::Utf8::Validate(buffer.start(), buffer.length())) {
+    return undefined();
+  }
+  MaybeHandle<Object> maybe_name =
+      func_names_array->GetIsolate()->factory()->NewStringFromUtf8(
+          Vector<const char>::cast(buffer));
+  return maybe_name.is_null() ? undefined() : maybe_name.ToHandleChecked();
+}
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/src/wasm/wasm-function-name-table.h b/src/wasm/wasm-function-name-table.h
new file mode 100644
index 0000000..1a71372
--- /dev/null
+++ b/src/wasm/wasm-function-name-table.h
@@ -0,0 +1,30 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_WASM_FUNCTION_NAME_TABLE_H_
+#define V8_WASM_FUNCTION_NAME_TABLE_H_
+
+#include "src/handles.h"
+#include "src/objects.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+// Forward declarations for some WASM data structures.
+struct WasmModule;
+
+// Encode all function names of the WasmModule into one ByteArray.
+Handle<Object> BuildFunctionNamesTable(Isolate* isolate, WasmModule* module);
+
+// Extract the function name for the given func_index from the wasm module.
+// Returns undefined if the function index is invalid.
+Handle<Object> GetWasmFunctionNameFromTable(Handle<ByteArray> wasm_names_table,
+                                            uint32_t func_index);
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_WASM_FUNCTION_NAME_TABLE_H_
diff --git a/src/wasm/wasm-js.cc b/src/wasm/wasm-js.cc
index 83009d7..8a4b2ff 100644
--- a/src/wasm/wasm-js.cc
+++ b/src/wasm/wasm-js.cc
@@ -34,7 +34,6 @@
   size_t size() { return static_cast<size_t>(end - start); }
 };
 
-
 RawBuffer GetRawBufferArgument(
     ErrorThrower& thrower, const v8::FunctionCallbackInfo<v8::Value>& args) {
   if (args.Length() < 1) {
@@ -77,7 +76,6 @@
   return {start, end};
 }
 
-
 void VerifyModule(const v8::FunctionCallbackInfo<v8::Value>& args) {
   HandleScope scope(args.GetIsolate());
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
@@ -98,7 +96,6 @@
   if (result.val) delete result.val;
 }
 
-
 void VerifyFunction(const v8::FunctionCallbackInfo<v8::Value>& args) {
   HandleScope scope(args.GetIsolate());
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
@@ -134,6 +131,11 @@
     return nullptr;
   }
 
+  if (info->scope()->declarations()->length() == 0) {
+    thrower->Error("Asm.js validation failed: no declarations in scope");
+    return nullptr;
+  }
+
   info->set_literal(
       info->scope()->declarations()->at(0)->AsFunctionDeclaration()->fun());
 
@@ -180,10 +182,10 @@
     thrower->Failed("", result);
   } else {
     // Success. Instantiate the module and return the object.
-    i::Handle<i::JSObject> ffi = i::Handle<i::JSObject>::null();
+    i::Handle<i::JSReceiver> ffi = i::Handle<i::JSObject>::null();
     if (args.Length() > 1 && args[1]->IsObject()) {
       Local<Object> obj = Local<Object>::Cast(args[1]);
-      ffi = i::Handle<i::JSObject>::cast(v8::Utils::OpenHandle(*obj));
+      ffi = i::Handle<i::JSReceiver>::cast(v8::Utils::OpenHandle(*obj));
     }
 
     i::MaybeHandle<i::JSObject> object =
@@ -197,7 +199,6 @@
   if (result.val) delete result.val;
 }
 
-
 void InstantiateModuleFromAsm(const v8::FunctionCallbackInfo<v8::Value>& args) {
   HandleScope scope(args.GetIsolate());
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
@@ -229,7 +230,6 @@
                           internal::wasm::kAsmJsOrigin);
 }
 
-
 void InstantiateModule(const v8::FunctionCallbackInfo<v8::Value>& args) {
   HandleScope scope(args.GetIsolate());
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
@@ -243,7 +243,6 @@
 }
 }  // namespace
 
-
 // TODO(titzer): we use the API to create the function template because the
 // internal guts are too ugly to replicate here.
 static i::Handle<i::FunctionTemplateInfo> NewTemplate(i::Isolate* i_isolate,
@@ -253,13 +252,11 @@
   return v8::Utils::OpenHandle(*local);
 }
 
-
 namespace internal {
 static Handle<String> v8_str(Isolate* isolate, const char* str) {
   return isolate->factory()->NewStringFromAsciiChecked(str);
 }
 
-
 static void InstallFunc(Isolate* isolate, Handle<JSObject> object,
                         const char* str, FunctionCallback func) {
   Handle<String> name = v8_str(isolate, str);
@@ -271,7 +268,6 @@
   JSObject::AddProperty(object, name, function, attributes);
 }
 
-
 void WasmJs::Install(Isolate* isolate, Handle<JSGlobalObject> global) {
   // Setup wasm function map.
   Handle<Context> context(global->native_context(), isolate);
@@ -294,8 +290,16 @@
   InstallFunc(isolate, wasm_object, "instantiateModule", InstantiateModule);
   InstallFunc(isolate, wasm_object, "instantiateModuleFromAsm",
               InstantiateModuleFromAsm);
-}
 
+  {
+    // Add the Wasm.experimentalVersion property.
+    Handle<String> name = v8_str(isolate, "experimentalVersion");
+    PropertyAttributes attributes =
+        static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY);
+    Handle<Smi> value = Handle<Smi>(Smi::FromInt(wasm::kWasmVersion), isolate);
+    JSObject::AddProperty(wasm_object, name, value, attributes);
+  }
+}
 
 void WasmJs::InstallWasmFunctionMap(Isolate* isolate, Handle<Context> context) {
   if (!context->get(Context::WASM_FUNCTION_MAP_INDEX)->IsMap()) {
diff --git a/src/wasm/wasm-macro-gen.h b/src/wasm/wasm-macro-gen.h
index d9199e8..83ac86a 100644
--- a/src/wasm/wasm-macro-gen.h
+++ b/src/wasm/wasm-macro-gen.h
@@ -7,6 +7,8 @@
 
 #include "src/wasm/wasm-opcodes.h"
 
+#include "src/zone-containers.h"
+
 #define U32_LE(v)                                    \
   static_cast<byte>(v), static_cast<byte>((v) >> 8), \
       static_cast<byte>((v) >> 16), static_cast<byte>((v) >> 24)
@@ -58,27 +60,38 @@
 //------------------------------------------------------------------------------
 #define WASM_NOP kExprNop
 
-#define WASM_BLOCK(count, ...) kExprBlock, static_cast<byte>(count), __VA_ARGS__
-#define WASM_INFINITE_LOOP kExprLoop, 1, kExprBr, 0, kExprNop
-#define WASM_LOOP(count, ...) kExprLoop, static_cast<byte>(count), __VA_ARGS__
-#define WASM_IF(cond, tstmt) kExprIf, cond, tstmt
-#define WASM_IF_ELSE(cond, tstmt, fstmt) kExprIfElse, cond, tstmt, fstmt
-#define WASM_SELECT(cond, tval, fval) kExprSelect, cond, tval, fval
-#define WASM_BR(depth) kExprBr, static_cast<byte>(depth), kExprNop
+#define ARITY_0 0
+#define ARITY_1 1
+#define DEPTH_0 0
+#define DEPTH_1 1
+
+#define WASM_BLOCK(count, ...) kExprBlock, __VA_ARGS__, kExprEnd
+#define WASM_INFINITE_LOOP kExprLoop, kExprBr, ARITY_0, DEPTH_0, kExprEnd
+#define WASM_LOOP(count, ...) kExprLoop, __VA_ARGS__, kExprEnd
+#define WASM_IF(cond, tstmt) cond, kExprIf, tstmt, kExprEnd
+#define WASM_IF_ELSE(cond, tstmt, fstmt) \
+  cond, kExprIf, tstmt, kExprElse, fstmt, kExprEnd
+#define WASM_SELECT(tval, fval, cond) tval, fval, cond, kExprSelect
+#define WASM_BR(depth) kExprBr, ARITY_0, static_cast<byte>(depth)
 #define WASM_BR_IF(depth, cond) \
-  kExprBrIf, static_cast<byte>(depth), kExprNop, cond
-#define WASM_BRV(depth, val) kExprBr, static_cast<byte>(depth), val
+  cond, kExprBrIf, ARITY_0, static_cast<byte>(depth)
+#define WASM_BRV(depth, val) val, kExprBr, ARITY_1, static_cast<byte>(depth)
 #define WASM_BRV_IF(depth, val, cond) \
-  kExprBrIf, static_cast<byte>(depth), val, cond
-#define WASM_BREAK(depth) kExprBr, static_cast<byte>(depth + 1), kExprNop
-#define WASM_CONTINUE(depth) kExprBr, static_cast<byte>(depth), kExprNop
-#define WASM_BREAKV(depth, val) kExprBr, static_cast<byte>(depth + 1), val
-#define WASM_RETURN0 kExprReturn
-#define WASM_RETURN(...) kExprReturn, __VA_ARGS__
+  val, cond, kExprBrIf, ARITY_1, static_cast<byte>(depth)
+#define WASM_BREAK(depth) kExprBr, ARITY_0, static_cast<byte>(depth + 1)
+#define WASM_CONTINUE(depth) kExprBr, ARITY_0, static_cast<byte>(depth)
+#define WASM_BREAKV(depth, val) \
+  val, kExprBr, ARITY_1, static_cast<byte>(depth + 1)
+#define WASM_RETURN0 kExprReturn, ARITY_0
+#define WASM_RETURN1(val) val, kExprReturn, ARITY_1
+#define WASM_RETURNN(count, ...) __VA_ARGS__, kExprReturn, count
 #define WASM_UNREACHABLE kExprUnreachable
 
 #define WASM_BR_TABLE(key, count, ...) \
-  kExprBrTable, U32V_1(count), __VA_ARGS__, key
+  key, kExprBrTable, ARITY_0, U32V_1(count), __VA_ARGS__
+
+#define WASM_BR_TABLEV(val, key, count, ...) \
+  val, key, kExprBrTable, ARITY_1, U32V_1(count), __VA_ARGS__
 
 #define WASM_CASE(x) static_cast<byte>(x), static_cast<byte>(x >> 8)
 #define WASM_CASE_BR(x) static_cast<byte>(x), static_cast<byte>(0x80 | (x) >> 8)
@@ -119,8 +132,12 @@
 
 // A helper for encoding local declarations prepended to the body of a
 // function.
+// TODO(titzer): move this to an appropriate header.
 class LocalDeclEncoder {
  public:
+  explicit LocalDeclEncoder(Zone* zone, FunctionSig* s = nullptr)
+      : sig(s), local_decls(zone), total(0) {}
+
   // Prepend local declarations by creating a new buffer and copying data
   // over. The new buffer must be delete[]'d by the caller.
   void Prepend(const byte** start, const byte** end) const {
@@ -146,19 +163,16 @@
 
   // Add locals declarations to this helper. Return the index of the newly added
   // local(s), with an optional adjustment for the parameters.
-  uint32_t AddLocals(uint32_t count, LocalType type,
-                     FunctionSig* sig = nullptr) {
-    if (count == 0) {
-      return static_cast<uint32_t>((sig ? sig->parameter_count() : 0) +
-                                   local_decls.size());
-    }
-    size_t pos = local_decls.size();
+  uint32_t AddLocals(uint32_t count, LocalType type) {
+    uint32_t result =
+        static_cast<uint32_t>(total + (sig ? sig->parameter_count() : 0));
+    total += count;
     if (local_decls.size() > 0 && local_decls.back().second == type) {
       count += local_decls.back().first;
       local_decls.pop_back();
     }
     local_decls.push_back(std::pair<uint32_t, LocalType>(count, type));
-    return static_cast<uint32_t>(pos + (sig ? sig->parameter_count() : 0));
+    return result;
   }
 
   size_t Size() const {
@@ -167,8 +181,14 @@
     return size;
   }
 
+  bool has_sig() const { return sig != nullptr; }
+  FunctionSig* get_sig() const { return sig; }
+  void set_sig(FunctionSig* s) { sig = s; }
+
  private:
-  std::vector<std::pair<uint32_t, LocalType>> local_decls;
+  FunctionSig* sig;
+  ZoneVector<std::pair<uint32_t, LocalType>> local_decls;
+  size_t total;
 
   size_t SizeofUint32v(uint32_t val) const {
     size_t size = 1;
@@ -322,193 +342,251 @@
       static_cast<byte>(bit_cast<uint64_t>(val) >> 48),      \
       static_cast<byte>(bit_cast<uint64_t>(val) >> 56)
 #define WASM_GET_LOCAL(index) kExprGetLocal, static_cast<byte>(index)
-#define WASM_SET_LOCAL(index, val) kExprSetLocal, static_cast<byte>(index), val
+#define WASM_SET_LOCAL(index, val) val, kExprSetLocal, static_cast<byte>(index)
 #define WASM_LOAD_GLOBAL(index) kExprLoadGlobal, static_cast<byte>(index)
 #define WASM_STORE_GLOBAL(index, val) \
-  kExprStoreGlobal, static_cast<byte>(index), val
-#define WASM_LOAD_MEM(type, index)                                      \
-  static_cast<byte>(                                                    \
-      v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, false)), \
-      ZERO_ALIGNMENT, ZERO_OFFSET, index
-#define WASM_STORE_MEM(type, index, val)                               \
-  static_cast<byte>(                                                   \
-      v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, true)), \
-      ZERO_ALIGNMENT, ZERO_OFFSET, index, val
-#define WASM_LOAD_MEM_OFFSET(type, offset, index)                       \
-  static_cast<byte>(                                                    \
-      v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, false)), \
-      ZERO_ALIGNMENT, U32V_1(offset), index
-#define WASM_STORE_MEM_OFFSET(type, offset, index, val)                \
-  static_cast<byte>(                                                   \
-      v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, true)), \
-      ZERO_ALIGNMENT, U32V_1(offset), index, val
-#define WASM_CALL_FUNCTION(index, ...) \
-  kExprCallFunction, static_cast<byte>(index), __VA_ARGS__
-#define WASM_CALL_IMPORT(index, ...) \
-  kExprCallImport, static_cast<byte>(index), __VA_ARGS__
-#define WASM_CALL_INDIRECT(index, func, ...) \
-  kExprCallIndirect, static_cast<byte>(index), func, __VA_ARGS__
-#define WASM_CALL_FUNCTION0(index) kExprCallFunction, static_cast<byte>(index)
-#define WASM_CALL_IMPORT0(index) kExprCallImport, static_cast<byte>(index)
+  val, kExprStoreGlobal, static_cast<byte>(index)
+#define WASM_LOAD_MEM(type, index)                                             \
+  index, static_cast<byte>(                                                    \
+             v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, false)), \
+      ZERO_ALIGNMENT, ZERO_OFFSET
+#define WASM_STORE_MEM(type, index, val)                                   \
+  index, val,                                                              \
+      static_cast<byte>(                                                   \
+          v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, true)), \
+      ZERO_ALIGNMENT, ZERO_OFFSET
+#define WASM_LOAD_MEM_OFFSET(type, offset, index)                              \
+  index, static_cast<byte>(                                                    \
+             v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, false)), \
+      ZERO_ALIGNMENT, static_cast<byte>(offset)
+#define WASM_STORE_MEM_OFFSET(type, offset, index, val)                    \
+  index, val,                                                              \
+      static_cast<byte>(                                                   \
+          v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, true)), \
+      ZERO_ALIGNMENT, static_cast<byte>(offset)
+
+#define WASM_CALL_FUNCTION0(index) \
+  kExprCallFunction, 0, static_cast<byte>(index)
+#define WASM_CALL_FUNCTION1(index, a) \
+  a, kExprCallFunction, 1, static_cast<byte>(index)
+#define WASM_CALL_FUNCTION2(index, a, b) \
+  a, b, kExprCallFunction, 2, static_cast<byte>(index)
+#define WASM_CALL_FUNCTION3(index, a, b, c) \
+  a, b, c, kExprCallFunction, 3, static_cast<byte>(index)
+#define WASM_CALL_FUNCTION4(index, a, b, c, d) \
+  a, b, c, d, kExprCallFunction, 4, static_cast<byte>(index)
+#define WASM_CALL_FUNCTION5(index, a, b, c, d, e) \
+  kExprCallFunction, 5, static_cast<byte>(index)
+#define WASM_CALL_FUNCTIONN(arity, index, ...) \
+  __VA_ARGS__, kExprCallFunction, arity, static_cast<byte>(index)
+
+#define WASM_CALL_IMPORT0(index) kExprCallImport, 0, static_cast<byte>(index)
+#define WASM_CALL_IMPORT1(index, a) \
+  a, kExprCallImport, 1, static_cast<byte>(index)
+#define WASM_CALL_IMPORT2(index, a, b) \
+  a, b, kExprCallImport, 2, static_cast<byte>(index)
+#define WASM_CALL_IMPORT3(index, a, b, c) \
+  a, b, c, kExprCallImport, 3, static_cast<byte>(index)
+#define WASM_CALL_IMPORT4(index, a, b, c, d) \
+  a, b, c, d, kExprCallImport, 4, static_cast<byte>(index)
+#define WASM_CALL_IMPORT5(index, a, b, c, d, e) \
+  a, b, c, d, e, kExprCallImport, 5, static_cast<byte>(index)
+#define WASM_CALL_IMPORTN(arity, index, ...) \
+  __VA_ARGS__, kExprCallImport, U32V_1(arity), static_cast<byte>(index),
+
 #define WASM_CALL_INDIRECT0(index, func) \
-  kExprCallIndirect, static_cast<byte>(index), func
-#define WASM_NOT(x) kExprI32Eqz, x
+  func, kExprCallIndirect, 0, static_cast<byte>(index)
+#define WASM_CALL_INDIRECT1(index, func, a) \
+  func, a, kExprCallIndirect, 1, static_cast<byte>(index)
+#define WASM_CALL_INDIRECT2(index, func, a, b) \
+  func, a, b, kExprCallIndirect, 2, static_cast<byte>(index)
+#define WASM_CALL_INDIRECT3(index, func, a, b, c) \
+  func, a, b, c, kExprCallIndirect, 3, static_cast<byte>(index)
+#define WASM_CALL_INDIRECT4(index, func, a, b, c, d) \
+  func, a, b, c, d, kExprCallIndirect, 4, static_cast<byte>(index)
+#define WASM_CALL_INDIRECT5(index, func, a, b, c, d, e) \
+  func, a, b, c, d, e, kExprCallIndirect, 5, static_cast<byte>(index)
+#define WASM_CALL_INDIRECTN(arity, index, func, ...) \
+  func, __VA_ARGS__, kExprCallIndirect, U32V_1(arity), static_cast<byte>(index)
+
+#define WASM_NOT(x) x, kExprI32Eqz
+#define WASM_SEQ(...) __VA_ARGS__
 
 //------------------------------------------------------------------------------
 // Constructs that are composed of multiple bytecodes.
 //------------------------------------------------------------------------------
-#define WASM_WHILE(x, y) kExprLoop, 1, kExprIf, x, kExprBr, 0, y
-#define WASM_INC_LOCAL(index)                                          \
-  kExprSetLocal, static_cast<byte>(index), kExprI32Add, kExprGetLocal, \
-      static_cast<byte>(index), kExprI8Const, 1
-#define WASM_INC_LOCAL_BY(index, count)                                \
-  kExprSetLocal, static_cast<byte>(index), kExprI32Add, kExprGetLocal, \
-      static_cast<byte>(index), kExprI8Const, static_cast<int8_t>(count)
-
-#define WASM_UNOP(opcode, x) static_cast<byte>(opcode), x
-#define WASM_BINOP(opcode, x, y) static_cast<byte>(opcode), x, y
+#define WASM_WHILE(x, y) \
+  kExprLoop, x, kExprIf, y, kExprBr, ARITY_1, DEPTH_1, kExprEnd, kExprEnd
+#define WASM_INC_LOCAL(index)                                            \
+  kExprGetLocal, static_cast<byte>(index), kExprI8Const, 1, kExprI32Add, \
+      kExprSetLocal, static_cast<byte>(index)
+#define WASM_INC_LOCAL_BY(index, count)                     \
+  kExprGetLocal, static_cast<byte>(index), kExprI8Const,    \
+      static_cast<byte>(count), kExprI32Add, kExprSetLocal, \
+      static_cast<byte>(index)
+#define WASM_UNOP(opcode, x) x, static_cast<byte>(opcode)
+#define WASM_BINOP(opcode, x, y) x, y, static_cast<byte>(opcode)
 
 //------------------------------------------------------------------------------
 // Int32 operations
 //------------------------------------------------------------------------------
-#define WASM_I32_ADD(x, y) kExprI32Add, x, y
-#define WASM_I32_SUB(x, y) kExprI32Sub, x, y
-#define WASM_I32_MUL(x, y) kExprI32Mul, x, y
-#define WASM_I32_DIVS(x, y) kExprI32DivS, x, y
-#define WASM_I32_DIVU(x, y) kExprI32DivU, x, y
-#define WASM_I32_REMS(x, y) kExprI32RemS, x, y
-#define WASM_I32_REMU(x, y) kExprI32RemU, x, y
-#define WASM_I32_AND(x, y) kExprI32And, x, y
-#define WASM_I32_IOR(x, y) kExprI32Ior, x, y
-#define WASM_I32_XOR(x, y) kExprI32Xor, x, y
-#define WASM_I32_SHL(x, y) kExprI32Shl, x, y
-#define WASM_I32_SHR(x, y) kExprI32ShrU, x, y
-#define WASM_I32_SAR(x, y) kExprI32ShrS, x, y
-#define WASM_I32_ROR(x, y) kExprI32Ror, x, y
-#define WASM_I32_ROL(x, y) kExprI32Rol, x, y
-#define WASM_I32_EQ(x, y) kExprI32Eq, x, y
-#define WASM_I32_NE(x, y) kExprI32Ne, x, y
-#define WASM_I32_LTS(x, y) kExprI32LtS, x, y
-#define WASM_I32_LES(x, y) kExprI32LeS, x, y
-#define WASM_I32_LTU(x, y) kExprI32LtU, x, y
-#define WASM_I32_LEU(x, y) kExprI32LeU, x, y
-#define WASM_I32_GTS(x, y) kExprI32GtS, x, y
-#define WASM_I32_GES(x, y) kExprI32GeS, x, y
-#define WASM_I32_GTU(x, y) kExprI32GtU, x, y
-#define WASM_I32_GEU(x, y) kExprI32GeU, x, y
-#define WASM_I32_CLZ(x) kExprI32Clz, x
-#define WASM_I32_CTZ(x) kExprI32Ctz, x
-#define WASM_I32_POPCNT(x) kExprI32Popcnt, x
-#define WASM_I32_EQZ(x) kExprI32Eqz, x
+#define WASM_I32_ADD(x, y) x, y, kExprI32Add
+#define WASM_I32_SUB(x, y) x, y, kExprI32Sub
+#define WASM_I32_MUL(x, y) x, y, kExprI32Mul
+#define WASM_I32_DIVS(x, y) x, y, kExprI32DivS
+#define WASM_I32_DIVU(x, y) x, y, kExprI32DivU
+#define WASM_I32_REMS(x, y) x, y, kExprI32RemS
+#define WASM_I32_REMU(x, y) x, y, kExprI32RemU
+#define WASM_I32_AND(x, y) x, y, kExprI32And
+#define WASM_I32_IOR(x, y) x, y, kExprI32Ior
+#define WASM_I32_XOR(x, y) x, y, kExprI32Xor
+#define WASM_I32_SHL(x, y) x, y, kExprI32Shl
+#define WASM_I32_SHR(x, y) x, y, kExprI32ShrU
+#define WASM_I32_SAR(x, y) x, y, kExprI32ShrS
+#define WASM_I32_ROR(x, y) x, y, kExprI32Ror
+#define WASM_I32_ROL(x, y) x, y, kExprI32Rol
+#define WASM_I32_EQ(x, y) x, y, kExprI32Eq
+#define WASM_I32_NE(x, y) x, y, kExprI32Ne
+#define WASM_I32_LTS(x, y) x, y, kExprI32LtS
+#define WASM_I32_LES(x, y) x, y, kExprI32LeS
+#define WASM_I32_LTU(x, y) x, y, kExprI32LtU
+#define WASM_I32_LEU(x, y) x, y, kExprI32LeU
+#define WASM_I32_GTS(x, y) x, y, kExprI32GtS
+#define WASM_I32_GES(x, y) x, y, kExprI32GeS
+#define WASM_I32_GTU(x, y) x, y, kExprI32GtU
+#define WASM_I32_GEU(x, y) x, y, kExprI32GeU
+#define WASM_I32_CLZ(x) x, kExprI32Clz
+#define WASM_I32_CTZ(x) x, kExprI32Ctz
+#define WASM_I32_POPCNT(x) x, kExprI32Popcnt
+#define WASM_I32_EQZ(x) x, kExprI32Eqz
 
 //------------------------------------------------------------------------------
 // Int64 operations
 //------------------------------------------------------------------------------
-#define WASM_I64_ADD(x, y) kExprI64Add, x, y
-#define WASM_I64_SUB(x, y) kExprI64Sub, x, y
-#define WASM_I64_MUL(x, y) kExprI64Mul, x, y
-#define WASM_I64_DIVS(x, y) kExprI64DivS, x, y
-#define WASM_I64_DIVU(x, y) kExprI64DivU, x, y
-#define WASM_I64_REMS(x, y) kExprI64RemS, x, y
-#define WASM_I64_REMU(x, y) kExprI64RemU, x, y
-#define WASM_I64_AND(x, y) kExprI64And, x, y
-#define WASM_I64_IOR(x, y) kExprI64Ior, x, y
-#define WASM_I64_XOR(x, y) kExprI64Xor, x, y
-#define WASM_I64_SHL(x, y) kExprI64Shl, x, y
-#define WASM_I64_SHR(x, y) kExprI64ShrU, x, y
-#define WASM_I64_SAR(x, y) kExprI64ShrS, x, y
-#define WASM_I64_ROR(x, y) kExprI64Ror, x, y
-#define WASM_I64_ROL(x, y) kExprI64Rol, x, y
-#define WASM_I64_EQ(x, y) kExprI64Eq, x, y
-#define WASM_I64_NE(x, y) kExprI64Ne, x, y
-#define WASM_I64_LTS(x, y) kExprI64LtS, x, y
-#define WASM_I64_LES(x, y) kExprI64LeS, x, y
-#define WASM_I64_LTU(x, y) kExprI64LtU, x, y
-#define WASM_I64_LEU(x, y) kExprI64LeU, x, y
-#define WASM_I64_GTS(x, y) kExprI64GtS, x, y
-#define WASM_I64_GES(x, y) kExprI64GeS, x, y
-#define WASM_I64_GTU(x, y) kExprI64GtU, x, y
-#define WASM_I64_GEU(x, y) kExprI64GeU, x, y
-#define WASM_I64_CLZ(x) kExprI64Clz, x
-#define WASM_I64_CTZ(x) kExprI64Ctz, x
-#define WASM_I64_POPCNT(x) kExprI64Popcnt, x
-#define WASM_I64_EQZ(x) kExprI64Eqz, x
+#define WASM_I64_ADD(x, y) x, y, kExprI64Add
+#define WASM_I64_SUB(x, y) x, y, kExprI64Sub
+#define WASM_I64_MUL(x, y) x, y, kExprI64Mul
+#define WASM_I64_DIVS(x, y) x, y, kExprI64DivS
+#define WASM_I64_DIVU(x, y) x, y, kExprI64DivU
+#define WASM_I64_REMS(x, y) x, y, kExprI64RemS
+#define WASM_I64_REMU(x, y) x, y, kExprI64RemU
+#define WASM_I64_AND(x, y) x, y, kExprI64And
+#define WASM_I64_IOR(x, y) x, y, kExprI64Ior
+#define WASM_I64_XOR(x, y) x, y, kExprI64Xor
+#define WASM_I64_SHL(x, y) x, y, kExprI64Shl
+#define WASM_I64_SHR(x, y) x, y, kExprI64ShrU
+#define WASM_I64_SAR(x, y) x, y, kExprI64ShrS
+#define WASM_I64_ROR(x, y) x, y, kExprI64Ror
+#define WASM_I64_ROL(x, y) x, y, kExprI64Rol
+#define WASM_I64_EQ(x, y) x, y, kExprI64Eq
+#define WASM_I64_NE(x, y) x, y, kExprI64Ne
+#define WASM_I64_LTS(x, y) x, y, kExprI64LtS
+#define WASM_I64_LES(x, y) x, y, kExprI64LeS
+#define WASM_I64_LTU(x, y) x, y, kExprI64LtU
+#define WASM_I64_LEU(x, y) x, y, kExprI64LeU
+#define WASM_I64_GTS(x, y) x, y, kExprI64GtS
+#define WASM_I64_GES(x, y) x, y, kExprI64GeS
+#define WASM_I64_GTU(x, y) x, y, kExprI64GtU
+#define WASM_I64_GEU(x, y) x, y, kExprI64GeU
+#define WASM_I64_CLZ(x) x, kExprI64Clz
+#define WASM_I64_CTZ(x) x, kExprI64Ctz
+#define WASM_I64_POPCNT(x) x, kExprI64Popcnt
+#define WASM_I64_EQZ(x) x, kExprI64Eqz
 
 //------------------------------------------------------------------------------
 // Float32 operations
 //------------------------------------------------------------------------------
-#define WASM_F32_ADD(x, y) kExprF32Add, x, y
-#define WASM_F32_SUB(x, y) kExprF32Sub, x, y
-#define WASM_F32_MUL(x, y) kExprF32Mul, x, y
-#define WASM_F32_DIV(x, y) kExprF32Div, x, y
-#define WASM_F32_MIN(x, y) kExprF32Min, x, y
-#define WASM_F32_MAX(x, y) kExprF32Max, x, y
-#define WASM_F32_ABS(x) kExprF32Abs, x
-#define WASM_F32_NEG(x) kExprF32Neg, x
-#define WASM_F32_COPYSIGN(x, y) kExprF32CopySign, x, y
-#define WASM_F32_CEIL(x) kExprF32Ceil, x
-#define WASM_F32_FLOOR(x) kExprF32Floor, x
-#define WASM_F32_TRUNC(x) kExprF32Trunc, x
-#define WASM_F32_NEARESTINT(x) kExprF32NearestInt, x
-#define WASM_F32_SQRT(x) kExprF32Sqrt, x
-#define WASM_F32_EQ(x, y) kExprF32Eq, x, y
-#define WASM_F32_NE(x, y) kExprF32Ne, x, y
-#define WASM_F32_LT(x, y) kExprF32Lt, x, y
-#define WASM_F32_LE(x, y) kExprF32Le, x, y
-#define WASM_F32_GT(x, y) kExprF32Gt, x, y
-#define WASM_F32_GE(x, y) kExprF32Ge, x, y
+#define WASM_F32_ADD(x, y) x, y, kExprF32Add
+#define WASM_F32_SUB(x, y) x, y, kExprF32Sub
+#define WASM_F32_MUL(x, y) x, y, kExprF32Mul
+#define WASM_F32_DIV(x, y) x, y, kExprF32Div
+#define WASM_F32_MIN(x, y) x, y, kExprF32Min
+#define WASM_F32_MAX(x, y) x, y, kExprF32Max
+#define WASM_F32_ABS(x) x, kExprF32Abs
+#define WASM_F32_NEG(x) x, kExprF32Neg
+#define WASM_F32_COPYSIGN(x, y) x, y, kExprF32CopySign
+#define WASM_F32_CEIL(x) x, kExprF32Ceil
+#define WASM_F32_FLOOR(x) x, kExprF32Floor
+#define WASM_F32_TRUNC(x) x, kExprF32Trunc
+#define WASM_F32_NEARESTINT(x) x, kExprF32NearestInt
+#define WASM_F32_SQRT(x) x, kExprF32Sqrt
+#define WASM_F32_EQ(x, y) x, y, kExprF32Eq
+#define WASM_F32_NE(x, y) x, y, kExprF32Ne
+#define WASM_F32_LT(x, y) x, y, kExprF32Lt
+#define WASM_F32_LE(x, y) x, y, kExprF32Le
+#define WASM_F32_GT(x, y) x, y, kExprF32Gt
+#define WASM_F32_GE(x, y) x, y, kExprF32Ge
 
 //------------------------------------------------------------------------------
 // Float64 operations
 //------------------------------------------------------------------------------
-#define WASM_F64_ADD(x, y) kExprF64Add, x, y
-#define WASM_F64_SUB(x, y) kExprF64Sub, x, y
-#define WASM_F64_MUL(x, y) kExprF64Mul, x, y
-#define WASM_F64_DIV(x, y) kExprF64Div, x, y
-#define WASM_F64_MIN(x, y) kExprF64Min, x, y
-#define WASM_F64_MAX(x, y) kExprF64Max, x, y
-#define WASM_F64_ABS(x) kExprF64Abs, x
-#define WASM_F64_NEG(x) kExprF64Neg, x
-#define WASM_F64_COPYSIGN(x, y) kExprF64CopySign, x, y
-#define WASM_F64_CEIL(x) kExprF64Ceil, x
-#define WASM_F64_FLOOR(x) kExprF64Floor, x
-#define WASM_F64_TRUNC(x) kExprF64Trunc, x
-#define WASM_F64_NEARESTINT(x) kExprF64NearestInt, x
-#define WASM_F64_SQRT(x) kExprF64Sqrt, x
-#define WASM_F64_EQ(x, y) kExprF64Eq, x, y
-#define WASM_F64_NE(x, y) kExprF64Ne, x, y
-#define WASM_F64_LT(x, y) kExprF64Lt, x, y
-#define WASM_F64_LE(x, y) kExprF64Le, x, y
-#define WASM_F64_GT(x, y) kExprF64Gt, x, y
-#define WASM_F64_GE(x, y) kExprF64Ge, x, y
+#define WASM_F64_ADD(x, y) x, y, kExprF64Add
+#define WASM_F64_SUB(x, y) x, y, kExprF64Sub
+#define WASM_F64_MUL(x, y) x, y, kExprF64Mul
+#define WASM_F64_DIV(x, y) x, y, kExprF64Div
+#define WASM_F64_MIN(x, y) x, y, kExprF64Min
+#define WASM_F64_MAX(x, y) x, y, kExprF64Max
+#define WASM_F64_ABS(x) x, kExprF64Abs
+#define WASM_F64_NEG(x) x, kExprF64Neg
+#define WASM_F64_COPYSIGN(x, y) x, y, kExprF64CopySign
+#define WASM_F64_CEIL(x) x, kExprF64Ceil
+#define WASM_F64_FLOOR(x) x, kExprF64Floor
+#define WASM_F64_TRUNC(x) x, kExprF64Trunc
+#define WASM_F64_NEARESTINT(x) x, kExprF64NearestInt
+#define WASM_F64_SQRT(x) x, kExprF64Sqrt
+#define WASM_F64_EQ(x, y) x, y, kExprF64Eq
+#define WASM_F64_NE(x, y) x, y, kExprF64Ne
+#define WASM_F64_LT(x, y) x, y, kExprF64Lt
+#define WASM_F64_LE(x, y) x, y, kExprF64Le
+#define WASM_F64_GT(x, y) x, y, kExprF64Gt
+#define WASM_F64_GE(x, y) x, y, kExprF64Ge
 
 //------------------------------------------------------------------------------
 // Type conversions.
 //------------------------------------------------------------------------------
-#define WASM_I32_SCONVERT_F32(x) kExprI32SConvertF32, x
-#define WASM_I32_SCONVERT_F64(x) kExprI32SConvertF64, x
-#define WASM_I32_UCONVERT_F32(x) kExprI32UConvertF32, x
-#define WASM_I32_UCONVERT_F64(x) kExprI32UConvertF64, x
-#define WASM_I32_CONVERT_I64(x) kExprI32ConvertI64, x
-#define WASM_I64_SCONVERT_F32(x) kExprI64SConvertF32, x
-#define WASM_I64_SCONVERT_F64(x) kExprI64SConvertF64, x
-#define WASM_I64_UCONVERT_F32(x) kExprI64UConvertF32, x
-#define WASM_I64_UCONVERT_F64(x) kExprI64UConvertF64, x
-#define WASM_I64_SCONVERT_I32(x) kExprI64SConvertI32, x
-#define WASM_I64_UCONVERT_I32(x) kExprI64UConvertI32, x
-#define WASM_F32_SCONVERT_I32(x) kExprF32SConvertI32, x
-#define WASM_F32_UCONVERT_I32(x) kExprF32UConvertI32, x
-#define WASM_F32_SCONVERT_I64(x) kExprF32SConvertI64, x
-#define WASM_F32_UCONVERT_I64(x) kExprF32UConvertI64, x
-#define WASM_F32_CONVERT_F64(x) kExprF32ConvertF64, x
-#define WASM_F32_REINTERPRET_I32(x) kExprF32ReinterpretI32, x
-#define WASM_F64_SCONVERT_I32(x) kExprF64SConvertI32, x
-#define WASM_F64_UCONVERT_I32(x) kExprF64UConvertI32, x
-#define WASM_F64_SCONVERT_I64(x) kExprF64SConvertI64, x
-#define WASM_F64_UCONVERT_I64(x) kExprF64UConvertI64, x
-#define WASM_F64_CONVERT_F32(x) kExprF64ConvertF32, x
-#define WASM_F64_REINTERPRET_I64(x) kExprF64ReinterpretI64, x
-#define WASM_I32_REINTERPRET_F32(x) kExprI32ReinterpretF32, x
-#define WASM_I64_REINTERPRET_F64(x) kExprI64ReinterpretF64, x
+#define WASM_I32_SCONVERT_F32(x) x, kExprI32SConvertF32
+#define WASM_I32_SCONVERT_F64(x) x, kExprI32SConvertF64
+#define WASM_I32_UCONVERT_F32(x) x, kExprI32UConvertF32
+#define WASM_I32_UCONVERT_F64(x) x, kExprI32UConvertF64
+#define WASM_I32_CONVERT_I64(x) x, kExprI32ConvertI64
+#define WASM_I64_SCONVERT_F32(x) x, kExprI64SConvertF32
+#define WASM_I64_SCONVERT_F64(x) x, kExprI64SConvertF64
+#define WASM_I64_UCONVERT_F32(x) x, kExprI64UConvertF32
+#define WASM_I64_UCONVERT_F64(x) x, kExprI64UConvertF64
+#define WASM_I64_SCONVERT_I32(x) x, kExprI64SConvertI32
+#define WASM_I64_UCONVERT_I32(x) x, kExprI64UConvertI32
+#define WASM_F32_SCONVERT_I32(x) x, kExprF32SConvertI32
+#define WASM_F32_UCONVERT_I32(x) x, kExprF32UConvertI32
+#define WASM_F32_SCONVERT_I64(x) x, kExprF32SConvertI64
+#define WASM_F32_UCONVERT_I64(x) x, kExprF32UConvertI64
+#define WASM_F32_CONVERT_F64(x) x, kExprF32ConvertF64
+#define WASM_F32_REINTERPRET_I32(x) x, kExprF32ReinterpretI32
+#define WASM_F64_SCONVERT_I32(x) x, kExprF64SConvertI32
+#define WASM_F64_UCONVERT_I32(x) x, kExprF64UConvertI32
+#define WASM_F64_SCONVERT_I64(x) x, kExprF64SConvertI64
+#define WASM_F64_UCONVERT_I64(x) x, kExprF64UConvertI64
+#define WASM_F64_CONVERT_F32(x) x, kExprF64ConvertF32
+#define WASM_F64_REINTERPRET_I64(x) x, kExprF64ReinterpretI64
+#define WASM_I32_REINTERPRET_F32(x) x, kExprI32ReinterpretF32
+#define WASM_I64_REINTERPRET_F64(x) x, kExprI64ReinterpretF64
+
+#define SIG_ENTRY_v_v kWasmFunctionTypeForm, 0, 0
+#define SIZEOF_SIG_ENTRY_v_v 3
+
+#define SIG_ENTRY_v_x(a) kWasmFunctionTypeForm, 1, a, 0
+#define SIG_ENTRY_v_xx(a, b) kWasmFunctionTypeForm, 2, a, b, 0
+#define SIG_ENTRY_v_xxx(a, b, c) kWasmFunctionTypeForm, 3, a, b, c, 0
+#define SIZEOF_SIG_ENTRY_v_x 4
+#define SIZEOF_SIG_ENTRY_v_xx 5
+#define SIZEOF_SIG_ENTRY_v_xxx 6
+
+#define SIG_ENTRY_x(r) kWasmFunctionTypeForm, 0, 1, r
+#define SIG_ENTRY_x_x(r, a) kWasmFunctionTypeForm, 1, a, 1, r
+#define SIG_ENTRY_x_xx(r, a, b) kWasmFunctionTypeForm, 2, a, b, 1, r
+#define SIG_ENTRY_x_xxx(r, a, b, c) kWasmFunctionTypeForm, 3, a, b, c, 1, r
+#define SIZEOF_SIG_ENTRY_x 4
+#define SIZEOF_SIG_ENTRY_x_x 5
+#define SIZEOF_SIG_ENTRY_x_xx 6
+#define SIZEOF_SIG_ENTRY_x_xxx 7
 
 #endif  // V8_WASM_MACRO_GEN_H_
diff --git a/src/wasm/wasm-module.cc b/src/wasm/wasm-module.cc
index a1c2a7a..c9a4279 100644
--- a/src/wasm/wasm-module.cc
+++ b/src/wasm/wasm-module.cc
@@ -2,14 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "src/base/atomic-utils.h"
 #include "src/macro-assembler.h"
 #include "src/objects.h"
+#include "src/property-descriptor.h"
 #include "src/v8.h"
 
 #include "src/simulator.h"
 
 #include "src/wasm/ast-decoder.h"
 #include "src/wasm/module-decoder.h"
+#include "src/wasm/wasm-function-name-table.h"
 #include "src/wasm/wasm-module.h"
 #include "src/wasm/wasm-result.h"
 
@@ -20,19 +23,28 @@
 namespace wasm {
 
 static const char* wasmSections[] = {
-#define F(enumerator, string) string,
+#define F(enumerator, order, string) string,
     FOR_EACH_WASM_SECTION_TYPE(F)
 #undef F
+        "<unknown>"  // entry for "Max"
 };
 
 static uint8_t wasmSectionsLengths[]{
-#define F(enumerator, string) sizeof(string) - 1,
+#define F(enumerator, order, string) sizeof(string) - 1,
     FOR_EACH_WASM_SECTION_TYPE(F)
 #undef F
+        9  // entry for "Max"
+};
+
+static uint8_t wasmSectionsOrders[]{
+#define F(enumerator, order, string) order,
+    FOR_EACH_WASM_SECTION_TYPE(F)
+#undef F
+        0  // entry for "Max"
 };
 
 static_assert(sizeof(wasmSections) / sizeof(wasmSections[0]) ==
-                  (size_t)WasmSection::Code::Max,
+                  (size_t)WasmSection::Code::Max + 1,
               "expected enum WasmSection::Code to be monotonic from 0");
 
 WasmSection::Code WasmSection::begin() { return (WasmSection::Code)0; }
@@ -49,6 +61,20 @@
   return wasmSectionsLengths[(size_t)code];
 }
 
+int WasmSection::getOrder(WasmSection::Code code) {
+  return wasmSectionsOrders[(size_t)code];
+}
+
+WasmSection::Code WasmSection::lookup(const byte* string, uint32_t length) {
+  // TODO(jfb) Linear search, it may be better to do a common-prefix search.
+  for (Code i = begin(); i != end(); i = next(i)) {
+    if (getNameLength(i) == length && 0 == memcmp(getName(i), string, length)) {
+      return i;
+    }
+  }
+  return Code::Max;
+}
+
 std::ostream& operator<<(std::ostream& os, const WasmModule& module) {
   os << "WASM module with ";
   os << (module.min_mem_pages * module.kPageSize) << " min mem";
@@ -59,16 +85,9 @@
   return os;
 }
 
-
 std::ostream& operator<<(std::ostream& os, const WasmFunction& function) {
   os << "WASM function with signature " << *function.sig;
 
-  os << " locals: ";
-  if (function.local_i32_count) os << function.local_i32_count << " i32s ";
-  if (function.local_i64_count) os << function.local_i64_count << " i64s ";
-  if (function.local_f32_count) os << function.local_f32_count << " f32s ";
-  if (function.local_f64_count) os << function.local_f64_count << " f64s ";
-
   os << " code bytes: "
      << (function.code_end_offset - function.code_start_offset);
   return os;
@@ -80,7 +99,7 @@
     if (pair.module_) {
       WasmName name = pair.module_->GetName(pair.function_->name_offset,
                                             pair.function_->name_length);
-      os.write(name.name, name.length);
+      os.write(name.start(), name.length());
     } else {
       os << "+" << pair.function_->func_index;
     }
@@ -105,11 +124,11 @@
       // Create a placeholder code object and encode the corresponding index in
       // the {constant_pool_offset} field of the code object.
       // TODO(titzer): placeholder code objects are somewhat dangerous.
-      Handle<Code> self(nullptr, isolate_);
       byte buffer[] = {0, 0, 0, 0, 0, 0, 0, 0};  // fake instructions.
       CodeDesc desc = {buffer, 8, 8, 0, 0, nullptr};
       Handle<Code> code = isolate_->factory()->NewCode(
-          desc, Code::KindField::encode(Code::WASM_FUNCTION), self);
+          desc, Code::KindField::encode(Code::WASM_FUNCTION),
+          Handle<Object>::null());
       code->set_constant_pool_offset(index + kPlaceholderMarker);
       placeholder_code_[index] = code;
       function_code_[index] = code;
@@ -177,11 +196,12 @@
 
 namespace {
 // Internal constants for the layout of the module object.
-const int kWasmModuleInternalFieldCount = 4;
+const int kWasmModuleInternalFieldCount = 5;
 const int kWasmModuleFunctionTable = 0;
 const int kWasmModuleCodeTable = 1;
 const int kWasmMemArrayBuffer = 2;
 const int kWasmGlobalsArrayBuffer = 3;
+const int kWasmFunctionNamesArray = 4;
 
 size_t AllocateGlobalsOffsets(std::vector<WasmGlobal>& globals) {
   uint32_t offset = 0;
@@ -195,7 +215,6 @@
   return offset;
 }
 
-
 void LoadDataSegments(WasmModule* module, byte* mem_addr, size_t mem_size) {
   for (const WasmDataSegment& segment : module->data_segments) {
     if (!segment.init) continue;
@@ -209,7 +228,6 @@
   }
 }
 
-
 Handle<FixedArray> BuildFunctionTable(Isolate* isolate, WasmModule* module) {
   if (module->function_table.size() == 0) {
     return Handle<FixedArray>::null();
@@ -314,20 +332,20 @@
                                               const char* error, uint32_t index,
                                               wasm::WasmName module_name,
                                               wasm::WasmName function_name) {
-  if (function_name.name) {
+  if (function_name.start()) {
     thrower.Error("Import #%d module=\"%.*s\" function=\"%.*s\" error: %s",
-                  index, module_name.length, module_name.name,
-                  function_name.length, function_name.name, error);
+                  index, module_name.length(), module_name.start(),
+                  function_name.length(), function_name.start(), error);
   } else {
     thrower.Error("Import #%d module=\"%.*s\" error: %s", index,
-                  module_name.length, module_name.name, error);
+                  module_name.length(), module_name.start(), error);
   }
   thrower.Error("Import ");
   return MaybeHandle<JSFunction>();
 }
 
 static MaybeHandle<JSFunction> LookupFunction(
-    ErrorThrower& thrower, Factory* factory, Handle<JSObject> ffi,
+    ErrorThrower& thrower, Factory* factory, Handle<JSReceiver> ffi,
     uint32_t index, wasm::WasmName module_name, wasm::WasmName function_name) {
   if (ffi.is_null()) {
     return ReportFFIError(thrower, "FFI is not an object", index, module_name,
@@ -335,8 +353,7 @@
   }
 
   // Look up the module first.
-  Handle<String> name = factory->InternalizeUtf8String(
-      Vector<const char>(module_name.name, module_name.length));
+  Handle<String> name = factory->InternalizeUtf8String(module_name);
   MaybeHandle<Object> result = Object::GetProperty(ffi, name);
   if (result.is_null()) {
     return ReportFFIError(thrower, "module not found", index, module_name,
@@ -351,10 +368,9 @@
   }
 
   Handle<Object> function;
-  if (function_name.name) {
+  if (function_name.start()) {
     // Look up the function in the module.
-    Handle<String> name = factory->InternalizeUtf8String(
-        Vector<const char>(function_name.name, function_name.length));
+    Handle<String> name = factory->InternalizeUtf8String(function_name);
     MaybeHandle<Object> result = Object::GetProperty(module, name);
     if (result.is_null()) {
       return ReportFFIError(thrower, "function not found", index, module_name,
@@ -374,18 +390,253 @@
   return Handle<JSFunction>::cast(function);
 }
 
+namespace {
+// Fetches the compilation unit of a wasm function and executes its parallel
+// phase.
+bool FetchAndExecuteCompilationUnit(
+    Isolate* isolate,
+    std::vector<compiler::WasmCompilationUnit*>* compilation_units,
+    std::queue<compiler::WasmCompilationUnit*>* executed_units,
+    base::Mutex* result_mutex, base::AtomicNumber<size_t>* next_unit) {
+  DisallowHeapAllocation no_allocation;
+  DisallowHandleAllocation no_handles;
+  DisallowHandleDereference no_deref;
+  DisallowCodeDependencyChange no_dependency_change;
+
+  // - 1 because AtomicIntrement returns the value after the atomic increment.
+  size_t index = next_unit->Increment(1) - 1;
+  if (index >= compilation_units->size()) {
+    return false;
+  }
+
+  compiler::WasmCompilationUnit* unit = compilation_units->at(index);
+  if (unit != nullptr) {
+    compiler::ExecuteCompilation(unit);
+    {
+      base::LockGuard<base::Mutex> guard(result_mutex);
+      executed_units->push(unit);
+    }
+  }
+  return true;
+}
+
+class WasmCompilationTask : public CancelableTask {
+ public:
+  WasmCompilationTask(
+      Isolate* isolate,
+      std::vector<compiler::WasmCompilationUnit*>* compilation_units,
+      std::queue<compiler::WasmCompilationUnit*>* executed_units,
+      base::Semaphore* on_finished, base::Mutex* result_mutex,
+      base::AtomicNumber<size_t>* next_unit)
+      : CancelableTask(isolate),
+        isolate_(isolate),
+        compilation_units_(compilation_units),
+        executed_units_(executed_units),
+        on_finished_(on_finished),
+        result_mutex_(result_mutex),
+        next_unit_(next_unit) {}
+
+  void RunInternal() override {
+    while (FetchAndExecuteCompilationUnit(isolate_, compilation_units_,
+                                          executed_units_, result_mutex_,
+                                          next_unit_)) {
+    }
+    on_finished_->Signal();
+  }
+
+  Isolate* isolate_;
+  std::vector<compiler::WasmCompilationUnit*>* compilation_units_;
+  std::queue<compiler::WasmCompilationUnit*>* executed_units_;
+  base::Semaphore* on_finished_;
+  base::Mutex* result_mutex_;
+  base::AtomicNumber<size_t>* next_unit_;
+};
+
+void record_code_size(uint32_t& total_code_size, Code* code) {
+  if (FLAG_print_wasm_code_size) {
+    total_code_size += code->body_size() + code->relocation_info()->length();
+  }
+}
+
+bool CompileWrappersToImportedFunctions(Isolate* isolate, WasmModule* module,
+                                        const Handle<JSReceiver> ffi,
+                                        WasmModuleInstance* instance,
+                                        ErrorThrower* thrower, Factory* factory,
+                                        ModuleEnv* module_env,
+                                        uint32_t& total_code_size) {
+  uint32_t index = 0;
+  if (module->import_table.size() > 0) {
+    instance->import_code.reserve(module->import_table.size());
+    for (const WasmImport& import : module->import_table) {
+      WasmName module_name = module->GetNameOrNull(import.module_name_offset,
+                                                   import.module_name_length);
+      WasmName function_name = module->GetNameOrNull(
+          import.function_name_offset, import.function_name_length);
+      MaybeHandle<JSFunction> function = LookupFunction(
+          *thrower, factory, ffi, index, module_name, function_name);
+      if (function.is_null()) return false;
+
+      Handle<Code> code = compiler::CompileWasmToJSWrapper(
+          isolate, module_env, function.ToHandleChecked(), import.sig,
+          module_name, function_name);
+      instance->import_code.push_back(code);
+      record_code_size(total_code_size, *code);
+      index++;
+    }
+  }
+  return true;
+}
+
+void InitializeParallelCompilation(
+    Isolate* isolate, std::vector<WasmFunction>& functions,
+    std::vector<compiler::WasmCompilationUnit*>& compilation_units,
+    ModuleEnv& module_env, ErrorThrower& thrower) {
+  // Create a placeholder code object for all functions.
+  // TODO(ahaas): Maybe we could skip this for external functions.
+  for (uint32_t i = 0; i < functions.size(); i++) {
+    module_env.linker->GetFunctionCode(i);
+  }
+
+  for (uint32_t i = FLAG_skip_compiling_wasm_funcs; i < functions.size(); i++) {
+    compilation_units[i] = compiler::CreateWasmCompilationUnit(
+        &thrower, isolate, &module_env, &functions[i], i);
+  }
+}
+
+uint32_t* StartCompilationTasks(
+    Isolate* isolate,
+    std::vector<compiler::WasmCompilationUnit*>& compilation_units,
+    std::queue<compiler::WasmCompilationUnit*>& executed_units,
+    const base::SmartPointer<base::Semaphore>& pending_tasks,
+    base::Mutex& result_mutex, base::AtomicNumber<size_t>& next_unit) {
+  const size_t num_tasks =
+      Min(static_cast<size_t>(FLAG_wasm_num_compilation_tasks),
+          V8::GetCurrentPlatform()->NumberOfAvailableBackgroundThreads());
+  uint32_t* task_ids = new uint32_t[num_tasks];
+  for (size_t i = 0; i < num_tasks; i++) {
+    WasmCompilationTask* task =
+        new WasmCompilationTask(isolate, &compilation_units, &executed_units,
+                                pending_tasks.get(), &result_mutex, &next_unit);
+    task_ids[i] = task->id();
+    V8::GetCurrentPlatform()->CallOnBackgroundThread(
+        task, v8::Platform::kShortRunningTask);
+  }
+  return task_ids;
+}
+
+void WaitForCompilationTasks(
+    Isolate* isolate, uint32_t* task_ids,
+    const base::SmartPointer<base::Semaphore>& pending_tasks) {
+  const size_t num_tasks =
+      Min(static_cast<size_t>(FLAG_wasm_num_compilation_tasks),
+          V8::GetCurrentPlatform()->NumberOfAvailableBackgroundThreads());
+  for (size_t i = 0; i < num_tasks; i++) {
+    // If the task has not started yet, then we abort it. Otherwise we wait for
+    // it to finish.
+    if (!isolate->cancelable_task_manager()->TryAbort(task_ids[i])) {
+      pending_tasks->Wait();
+    }
+  }
+}
+
+void FinishCompilationUnits(
+    WasmModule* module,
+    std::queue<compiler::WasmCompilationUnit*>& executed_units,
+    std::vector<Handle<Code>>& results, base::Mutex& result_mutex) {
+  while (true) {
+    compiler::WasmCompilationUnit* unit = nullptr;
+    {
+      base::LockGuard<base::Mutex> guard(&result_mutex);
+      if (executed_units.empty()) {
+        break;
+      }
+      unit = executed_units.front();
+      executed_units.pop();
+    }
+    int j = compiler::GetIndexOfWasmCompilationUnit(unit);
+    results[j] = compiler::FinishCompilation(unit);
+  }
+}
+
+bool FinishCompilation(Isolate* isolate, WasmModule* module,
+                       const Handle<JSReceiver> ffi,
+                       const std::vector<Handle<Code>>& results,
+                       const WasmModuleInstance& instance,
+                       const Handle<FixedArray>& code_table,
+                       ErrorThrower& thrower, Factory* factory,
+                       ModuleEnv& module_env, uint32_t& total_code_size,
+                       PropertyDescriptor& desc) {
+  for (uint32_t i = FLAG_skip_compiling_wasm_funcs;
+       i < module->functions.size(); i++) {
+    const WasmFunction& func = module->functions[i];
+    if (thrower.error()) break;
+
+    DCHECK_EQ(i, func.func_index);
+    WasmName str = module->GetName(func.name_offset, func.name_length);
+    Handle<Code> code = Handle<Code>::null();
+    Handle<JSFunction> function = Handle<JSFunction>::null();
+    Handle<String> function_name = Handle<String>::null();
+    if (FLAG_wasm_num_compilation_tasks != 0) {
+      code = results[i];
+    } else {
+      // Compile the function.
+      code =
+          compiler::CompileWasmFunction(&thrower, isolate, &module_env, &func);
+    }
+    if (code.is_null()) {
+      thrower.Error("Compilation of #%d:%.*s failed.", i, str.length(),
+                    str.start());
+      return false;
+    }
+    if (func.exported) {
+      function_name = factory->InternalizeUtf8String(str);
+      function = compiler::CompileJSToWasmWrapper(
+          isolate, &module_env, function_name, code, instance.js_object, i);
+      record_code_size(total_code_size, function->code());
+    }
+    if (!code.is_null()) {
+      // Install the code into the linker table.
+      module_env.linker->Finish(i, code);
+      code_table->set(i, *code);
+      record_code_size(total_code_size, *code);
+    }
+    if (func.exported) {
+      // Exported functions are installed as read-only properties on the
+      // module.
+      desc.set_value(function);
+      Maybe<bool> status = JSReceiver::DefineOwnProperty(
+          isolate, instance.js_object, function_name, &desc,
+          Object::THROW_ON_ERROR);
+      if (!status.IsJust())
+        thrower.Error("export of %.*s failed.", str.length(), str.start());
+    }
+  }
+  return true;
+}
+}  // namespace
+
 // Instantiates a wasm module as a JSObject.
 //  * allocates a backing store of {mem_size} bytes.
 //  * installs a named property "memory" for that buffer if exported
 //  * installs named properties on the object for exported functions
 //  * compiles wasm code to machine code
 MaybeHandle<JSObject> WasmModule::Instantiate(Isolate* isolate,
-                                              Handle<JSObject> ffi,
+                                              Handle<JSReceiver> ffi,
                                               Handle<JSArrayBuffer> memory) {
+  HistogramTimerScope wasm_instantiate_module_time_scope(
+      isolate->counters()->wasm_instantiate_module_time());
   this->shared_isolate = isolate;  // TODO(titzer): have a real shared isolate.
   ErrorThrower thrower(isolate, "WasmModule::Instantiate()");
   Factory* factory = isolate->factory();
 
+  PropertyDescriptor desc;
+  desc.set_writable(false);
+
+  // If FLAG_print_wasm_code_size is set, this aggregates the sum of all code
+  // objects created for this module.
+  // TODO(titzer): switch this to TRACE_EVENT
+  uint32_t total_code_size = 0;
+
   //-------------------------------------------------------------------------
   // Allocate the instance and its JS counterpart.
   //-------------------------------------------------------------------------
@@ -402,6 +653,10 @@
   //-------------------------------------------------------------------------
   // Allocate and initialize the linear memory.
   //-------------------------------------------------------------------------
+  isolate->counters()->wasm_min_mem_pages_count()->AddSample(
+      instance.module->min_mem_pages);
+  isolate->counters()->wasm_max_mem_pages_count()->AddSample(
+      instance.module->max_mem_pages);
   if (memory.is_null()) {
     if (!AllocateMemory(&thrower, isolate, &instance)) {
       return MaybeHandle<JSObject>();
@@ -424,10 +679,9 @@
                                          *instance.globals_buffer);
   }
 
-  //-------------------------------------------------------------------------
-  // Compile wrappers to imported functions.
-  //-------------------------------------------------------------------------
-  uint32_t index = 0;
+  HistogramTimerScope wasm_compile_module_time_scope(
+      isolate->counters()->wasm_compile_module_time());
+
   instance.function_table = BuildFunctionTable(isolate, this);
   WasmLinker linker(isolate, functions.size());
   ModuleEnv module_env;
@@ -436,113 +690,147 @@
   module_env.linker = &linker;
   module_env.origin = origin;
 
-  if (import_table.size() > 0) {
-    instance.import_code.reserve(import_table.size());
-    for (const WasmImport& import : import_table) {
-      WasmName module_name =
-          GetNameOrNull(import.module_name_offset, import.module_name_length);
-      WasmName function_name = GetNameOrNull(import.function_name_offset,
-                                             import.function_name_length);
-      MaybeHandle<JSFunction> function = LookupFunction(
-          thrower, factory, ffi, index, module_name, function_name);
-      if (function.is_null()) return MaybeHandle<JSObject>();
-      Handle<Code> code = compiler::CompileWasmToJSWrapper(
-          isolate, &module_env, function.ToHandleChecked(), import.sig,
-          module_name, function_name);
-      instance.import_code.push_back(code);
-      index++;
-    }
+  //-------------------------------------------------------------------------
+  // Compile wrappers to imported functions.
+  //-------------------------------------------------------------------------
+  if (!CompileWrappersToImportedFunctions(isolate, this, ffi, &instance,
+                                          &thrower, factory, &module_env,
+                                          total_code_size)) {
+    return MaybeHandle<JSObject>();
   }
-
   //-------------------------------------------------------------------------
   // Compile all functions in the module.
   //-------------------------------------------------------------------------
+  {
+    isolate->counters()->wasm_functions_per_module()->AddSample(
+        static_cast<int>(functions.size()));
 
-  // First pass: compile each function and initialize the code table.
-  index = FLAG_skip_compiling_wasm_funcs;
-  while (index < functions.size()) {
-    const WasmFunction& func = functions[index];
-    if (thrower.error()) break;
-    DCHECK_EQ(index, func.func_index);
+    // Data structures for the parallel compilation.
+    std::vector<compiler::WasmCompilationUnit*> compilation_units(
+        functions.size());
+    std::queue<compiler::WasmCompilationUnit*> executed_units;
+    std::vector<Handle<Code>> results(functions.size());
 
-    WasmName str = GetName(func.name_offset, func.name_length);
-    WasmName str_null = {nullptr, 0};
-    Handle<String> name = factory->InternalizeUtf8String(
-        Vector<const char>(str.name, str.length));
-    Handle<Code> code = Handle<Code>::null();
-    Handle<JSFunction> function = Handle<JSFunction>::null();
-    if (func.external) {
-      // Lookup external function in FFI object.
-      MaybeHandle<JSFunction> function =
-          LookupFunction(thrower, factory, ffi, index, str, str_null);
-      if (function.is_null()) return MaybeHandle<JSObject>();
-      code = compiler::CompileWasmToJSWrapper(isolate, &module_env,
-                                              function.ToHandleChecked(),
-                                              func.sig, str, str_null);
-    } else {
-      // Compile the function.
-      code = compiler::CompileWasmFunction(thrower, isolate, &module_env, func);
-      if (code.is_null()) {
-        thrower.Error("Compilation of #%d:%.*s failed.", index, str.length,
-                      str.name);
-        return MaybeHandle<JSObject>();
+    if (FLAG_wasm_num_compilation_tasks != 0) {
+      //-----------------------------------------------------------------------
+      // For parallel compilation:
+      // 1) The main thread allocates a compilation unit for each wasm function
+      //    and stores them in the vector {compilation_units}.
+      // 2) The main thread spawns {WasmCompilationTask} instances which run on
+      //    the background threads.
+      // 3.a) The background threads and the main thread pick one compilation
+      //      unit at a time and execute the parallel phase of the compilation
+      //      unit. After finishing the execution of the parallel phase, the
+      //      result is enqueued in {executed_units}.
+      // 3.b) If {executed_units} contains a compilation unit, the main thread
+      //      dequeues it and finishes the compilation.
+      // 4) After the parallel phase of all compilation units has started, the
+      //    main thread waits for all {WasmCompilationTask} instances to finish.
+      // 5) The main thread finishes the compilation.
+
+      // Turn on the {CanonicalHandleScope} so that the background threads can
+      // use the node cache.
+      CanonicalHandleScope canonical(isolate);
+
+      // 1) The main thread allocates a compilation unit for each wasm function
+      //    and stores them in the vector {compilation_units}.
+      InitializeParallelCompilation(isolate, functions, compilation_units,
+                                    module_env, thrower);
+
+      // Objects for the synchronization with the background threads.
+      base::SmartPointer<base::Semaphore> pending_tasks(new base::Semaphore(0));
+      base::Mutex result_mutex;
+      base::AtomicNumber<size_t> next_unit(
+          static_cast<size_t>(FLAG_skip_compiling_wasm_funcs));
+
+      // 2) The main thread spawns {WasmCompilationTask} instances which run on
+      //    the background threads.
+      base::SmartArrayPointer<uint32_t> task_ids(
+          StartCompilationTasks(isolate, compilation_units, executed_units,
+                                pending_tasks, result_mutex, next_unit));
+
+      // 3.a) The background threads and the main thread pick one compilation
+      //      unit at a time and execute the parallel phase of the compilation
+      //      unit. After finishing the execution of the parallel phase, the
+      //      result is enqueued in {executed_units}.
+      while (FetchAndExecuteCompilationUnit(isolate, &compilation_units,
+                                            &executed_units, &result_mutex,
+                                            &next_unit)) {
+        // 3.b) If {executed_units} contains a compilation unit, the main thread
+        //      dequeues it and finishes the compilation unit. Compilation units
+        //      are finished concurrently to the background threads to save
+        //      memory.
+        FinishCompilationUnits(this, executed_units, results, result_mutex);
       }
-      if (func.exported) {
-        function = compiler::CompileJSToWasmWrapper(
-            isolate, &module_env, name, code, instance.js_object, index);
-      }
+      // 4) After the parallel phase of all compilation units has started, the
+      //    main thread waits for all {WasmCompilationTask} instances to finish.
+      WaitForCompilationTasks(isolate, task_ids.get(), pending_tasks);
+      // Finish the compilation of the remaining compilation units.
+      FinishCompilationUnits(this, executed_units, results, result_mutex);
     }
-    if (!code.is_null()) {
-      // Install the code into the linker table.
-      linker.Finish(index, code);
-      code_table->set(index, *code);
-    }
-    if (func.exported) {
-      // Exported functions are installed as read-only properties on the module.
-      JSObject::AddProperty(instance.js_object, name, function, READ_ONLY);
-    }
-    index++;
-  }
-
-  // Second pass: patch all direct call sites.
-  linker.Link(instance.function_table, this->function_table);
-  instance.js_object->SetInternalField(kWasmModuleFunctionTable,
-                                       Smi::FromInt(0));
-
-  //-------------------------------------------------------------------------
-  // Create and populate the exports object.
-  //-------------------------------------------------------------------------
-  if (export_table.size() > 0 || mem_export) {
-    index = 0;
-    // Create the "exports" object.
-    Handle<JSFunction> object_function = Handle<JSFunction>(
-        isolate->native_context()->object_function(), isolate);
-    Handle<JSObject> exports_object =
-        factory->NewJSObject(object_function, TENURED);
-    Handle<String> exports_name = factory->InternalizeUtf8String("exports");
-    JSObject::AddProperty(instance.js_object, exports_name, exports_object,
-                          READ_ONLY);
-
-    // Compile wrappers and add them to the exports object.
-    for (const WasmExport& exp : export_table) {
-      if (thrower.error()) break;
-      WasmName str = GetName(exp.name_offset, exp.name_length);
-      Handle<String> name = factory->InternalizeUtf8String(
-          Vector<const char>(str.name, str.length));
-      Handle<Code> code = linker.GetFunctionCode(exp.func_index);
-      Handle<JSFunction> function = compiler::CompileJSToWasmWrapper(
-          isolate, &module_env, name, code, instance.js_object, exp.func_index);
-      JSObject::AddProperty(exports_object, name, function, READ_ONLY);
+    // 5) The main thread finishes the compilation.
+    if (!FinishCompilation(isolate, this, ffi, results, instance, code_table,
+                           thrower, factory, module_env, total_code_size,
+                           desc)) {
+      return MaybeHandle<JSObject>();
     }
 
-    if (mem_export) {
-      // Export the memory as a named property.
-      Handle<String> name = factory->InternalizeUtf8String("memory");
-      JSObject::AddProperty(exports_object, name, instance.mem_buffer,
+    // Patch all direct call sites.
+    linker.Link(instance.function_table, this->function_table);
+    instance.js_object->SetInternalField(kWasmModuleFunctionTable,
+                                         Smi::FromInt(0));
+
+    //-------------------------------------------------------------------------
+    // Create and populate the exports object.
+    //-------------------------------------------------------------------------
+    if (export_table.size() > 0 || mem_export) {
+      // Create the "exports" object.
+      Handle<JSFunction> object_function = Handle<JSFunction>(
+          isolate->native_context()->object_function(), isolate);
+      Handle<JSObject> exports_object =
+          factory->NewJSObject(object_function, TENURED);
+      Handle<String> exports_name = factory->InternalizeUtf8String("exports");
+      JSObject::AddProperty(instance.js_object, exports_name, exports_object,
                             READ_ONLY);
+
+      // Compile wrappers and add them to the exports object.
+      for (const WasmExport& exp : export_table) {
+        if (thrower.error()) break;
+        WasmName str = GetName(exp.name_offset, exp.name_length);
+        Handle<String> name = factory->InternalizeUtf8String(str);
+        Handle<Code> code = linker.GetFunctionCode(exp.func_index);
+        Handle<JSFunction> function = compiler::CompileJSToWasmWrapper(
+            isolate, &module_env, name, code, instance.js_object,
+            exp.func_index);
+        record_code_size(total_code_size, function->code());
+        desc.set_value(function);
+        Maybe<bool> status = JSReceiver::DefineOwnProperty(
+            isolate, exports_object, name, &desc, Object::THROW_ON_ERROR);
+        if (!status.IsJust())
+          thrower.Error("export of %.*s failed.", str.length(), str.start());
+      }
+
+      if (mem_export) {
+        // Export the memory as a named property.
+        Handle<String> name = factory->InternalizeUtf8String("memory");
+        JSObject::AddProperty(exports_object, name, instance.mem_buffer,
+                              READ_ONLY);
+      }
     }
   }
 
+  //-------------------------------------------------------------------------
+  // Attach an array with function names and an array with offsets into that
+  // first array.
+  //-------------------------------------------------------------------------
+  {
+    Handle<Object> arr = BuildFunctionNamesTable(isolate, module_env.module);
+    instance.js_object->SetInternalField(kWasmFunctionNamesArray, *arr);
+  }
+
+  if (FLAG_print_wasm_code_size)
+    printf("Total generated wasm code: %u bytes\n", total_code_size);
+
   // Run the start function if one was specified.
   if (this->start_function_index >= 0) {
     HandleScope scope(isolate);
@@ -564,7 +852,6 @@
   return instance.js_object;
 }
 
-
 Handle<Code> ModuleEnv::GetFunctionCode(uint32_t index) {
   DCHECK(IsValidFunction(index));
   if (linker) return linker->GetFunctionCode(index);
@@ -585,7 +872,6 @@
   return GetWasmCallDescriptor(zone, function->sig);
 }
 
-
 int32_t CompileAndRunWasmModule(Isolate* isolate, const byte* module_start,
                                 const byte* module_end, bool asm_js) {
   HandleScope scope(isolate);
@@ -611,7 +897,6 @@
   return retval;
 }
 
-
 int32_t CompileAndRunWasmModule(Isolate* isolate, WasmModule* module) {
   ErrorThrower thrower(isolate, "CompileAndRunWasmModule");
   WasmModuleInstance instance(module);
@@ -644,19 +929,17 @@
   int main_index = 0;
   for (const WasmFunction& func : module->functions) {
     DCHECK_EQ(index, func.func_index);
-    if (!func.external) {
-      // Compile the function and install it in the code table.
-      Handle<Code> code =
-          compiler::CompileWasmFunction(thrower, isolate, &module_env, func);
-      if (!code.is_null()) {
-        if (func.exported) {
-          main_code = code;
-          main_index = index;
-        }
-        linker.Finish(index, code);
+    // Compile the function and install it in the code table.
+    Handle<Code> code =
+        compiler::CompileWasmFunction(&thrower, isolate, &module_env, &func);
+    if (!code.is_null()) {
+      if (func.exported) {
+        main_code = code;
+        main_index = index;
       }
-      if (thrower.error()) return -1;
+      linker.Finish(index, code);
     }
+    if (thrower.error()) return -1;
     index++;
   }
 
@@ -693,6 +976,16 @@
   thrower.Error("WASM.compileRun() failed: Return value should be number");
   return -1;
 }
+
+Handle<Object> GetWasmFunctionName(Handle<JSObject> wasm, uint32_t func_index) {
+  Handle<Object> func_names_arr_obj = handle(
+      wasm->GetInternalField(kWasmFunctionNamesArray), wasm->GetIsolate());
+  if (func_names_arr_obj->IsUndefined())
+    return func_names_arr_obj;  // Return undefined.
+  return GetWasmFunctionNameFromTable(
+      Handle<ByteArray>::cast(func_names_arr_obj), func_index);
+}
+
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/src/wasm/wasm-module.h b/src/wasm/wasm-module.h
index 4e5aa78..2ac0425 100644
--- a/src/wasm/wasm-module.h
+++ b/src/wasm/wasm-module.h
@@ -16,6 +16,7 @@
 
 namespace compiler {
 class CallDescriptor;
+class WasmCompilationUnit;
 }
 
 namespace wasm {
@@ -23,69 +24,63 @@
 const size_t kMaxFunctionSize = 128 * 1024;
 const size_t kMaxStringSize = 256;
 const uint32_t kWasmMagic = 0x6d736100;
-const uint32_t kWasmVersion = 0x0a;
+const uint32_t kWasmVersion = 0x0b;
+const uint8_t kWasmFunctionTypeForm = 0x40;
 
 // WebAssembly sections are named as strings in the binary format, but
 // internally V8 uses an enum to handle them.
 //
 // Entries have the form F(enumerator, string).
-#define FOR_EACH_WASM_SECTION_TYPE(F)          \
-  F(Memory, "memory")                          \
-  F(Signatures, "signatures")                  \
-  F(Functions, "functions")                    \
-  F(Globals, "globals")                        \
-  F(DataSegments, "data_segments")             \
-  F(FunctionTable, "function_table")           \
-  F(End, "end")                                \
-  F(StartFunction, "start_function")           \
-  F(ImportTable, "import_table")               \
-  F(ExportTable, "export_table")               \
-  F(FunctionSignatures, "function_signatures") \
-  F(FunctionBodies, "function_bodies")         \
-  F(Names, "names")
+#define FOR_EACH_WASM_SECTION_TYPE(F)  \
+  F(Signatures, 1, "type")             \
+  F(ImportTable, 2, "import")          \
+  F(FunctionSignatures, 3, "function") \
+  F(FunctionTable, 4, "table")         \
+  F(Memory, 5, "memory")               \
+  F(ExportTable, 6, "export")          \
+  F(StartFunction, 7, "start")         \
+  F(FunctionBodies, 8, "code")         \
+  F(DataSegments, 9, "data")           \
+  F(Names, 10, "name")                 \
+  F(OldFunctions, 0, "old_function")   \
+  F(Globals, 0, "global")              \
+  F(End, 0, "end")
 
 // Contants for the above section types: {LEB128 length, characters...}.
 #define WASM_SECTION_MEMORY 6, 'm', 'e', 'm', 'o', 'r', 'y'
-#define WASM_SECTION_SIGNATURES \
-  10, 's', 'i', 'g', 'n', 'a', 't', 'u', 'r', 'e', 's'
-#define WASM_SECTION_FUNCTIONS 9, 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', 's'
-#define WASM_SECTION_GLOBALS 7, 'g', 'l', 'o', 'b', 'a', 'l', 's'
-#define WASM_SECTION_DATA_SEGMENTS \
-  13, 'd', 'a', 't', 'a', '_', 's', 'e', 'g', 'm', 'e', 'n', 't', 's'
-#define WASM_SECTION_FUNCTION_TABLE \
-  14, 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '_', 't', 'a', 'b', 'l', 'e'
+#define WASM_SECTION_SIGNATURES 4, 't', 'y', 'p', 'e'
+#define WASM_SECTION_OLD_FUNCTIONS \
+  12, 'o', 'l', 'd', '_', 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n'
+#define WASM_SECTION_GLOBALS 6, 'g', 'l', 'o', 'b', 'a', 'l'
+#define WASM_SECTION_DATA_SEGMENTS 4, 'd', 'a', 't', 'a'
+#define WASM_SECTION_FUNCTION_TABLE 5, 't', 'a', 'b', 'l', 'e'
 #define WASM_SECTION_END 3, 'e', 'n', 'd'
-#define WASM_SECTION_START_FUNCTION \
-  14, 's', 't', 'a', 'r', 't', '_', 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n'
-#define WASM_SECTION_IMPORT_TABLE \
-  12, 'i', 'm', 'p', 'o', 'r', 't', '_', 't', 'a', 'b', 'l', 'e'
-#define WASM_SECTION_EXPORT_TABLE \
-  12, 'e', 'x', 'p', 'o', 'r', 't', '_', 't', 'a', 'b', 'l', 'e'
-#define WASM_SECTION_FUNCTION_SIGNATURES                                    \
-  19, 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '_', 's', 'i', 'g', 'n', 'a', \
-      't', 'u', 'r', 'e', 's'
-#define WASM_SECTION_FUNCTION_BODIES \
-  15, 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '_', 'b', 'o', 'd', 'i', 'e', 's'
-#define WASM_SECTION_NAMES 5, 'n', 'a', 'm', 'e', 's'
+#define WASM_SECTION_START_FUNCTION 5, 's', 't', 'a', 'r', 't'
+#define WASM_SECTION_IMPORT_TABLE 6, 'i', 'm', 'p', 'o', 'r', 't'
+#define WASM_SECTION_EXPORT_TABLE 6, 'e', 'x', 'p', 'o', 'r', 't'
+#define WASM_SECTION_FUNCTION_SIGNATURES \
+  8, 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n'
+#define WASM_SECTION_FUNCTION_BODIES 4, 'c', 'o', 'd', 'e'
+#define WASM_SECTION_NAMES 4, 'n', 'a', 'm', 'e'
 
 // Constants for the above section headers' size (LEB128 + characters).
 #define WASM_SECTION_MEMORY_SIZE ((size_t)7)
-#define WASM_SECTION_SIGNATURES_SIZE ((size_t)11)
-#define WASM_SECTION_FUNCTIONS_SIZE ((size_t)10)
-#define WASM_SECTION_GLOBALS_SIZE ((size_t)8)
-#define WASM_SECTION_DATA_SEGMENTS_SIZE ((size_t)14)
-#define WASM_SECTION_FUNCTION_TABLE_SIZE ((size_t)15)
+#define WASM_SECTION_SIGNATURES_SIZE ((size_t)5)
+#define WASM_SECTION_OLD_FUNCTIONS_SIZE ((size_t)13)
+#define WASM_SECTION_GLOBALS_SIZE ((size_t)7)
+#define WASM_SECTION_DATA_SEGMENTS_SIZE ((size_t)5)
+#define WASM_SECTION_FUNCTION_TABLE_SIZE ((size_t)6)
 #define WASM_SECTION_END_SIZE ((size_t)4)
-#define WASM_SECTION_START_FUNCTION_SIZE ((size_t)15)
-#define WASM_SECTION_IMPORT_TABLE_SIZE ((size_t)13)
-#define WASM_SECTION_EXPORT_TABLE_SIZE ((size_t)13)
-#define WASM_SECTION_FUNCTION_SIGNATURES_SIZE ((size_t)20)
-#define WASM_SECTION_FUNCTION_BODIES_SIZE ((size_t)16)
-#define WASM_SECTION_NAMES_SIZE ((size_t)6)
+#define WASM_SECTION_START_FUNCTION_SIZE ((size_t)6)
+#define WASM_SECTION_IMPORT_TABLE_SIZE ((size_t)7)
+#define WASM_SECTION_EXPORT_TABLE_SIZE ((size_t)7)
+#define WASM_SECTION_FUNCTION_SIGNATURES_SIZE ((size_t)9)
+#define WASM_SECTION_FUNCTION_BODIES_SIZE ((size_t)5)
+#define WASM_SECTION_NAMES_SIZE ((size_t)5)
 
 struct WasmSection {
   enum class Code : uint32_t {
-#define F(enumerator, string) enumerator,
+#define F(enumerator, order, string) enumerator,
     FOR_EACH_WASM_SECTION_TYPE(F)
 #undef F
         Max
@@ -94,13 +89,13 @@
   static WasmSection::Code end();
   static WasmSection::Code next(WasmSection::Code code);
   static const char* getName(Code code);
+  static int getOrder(Code code);
   static size_t getNameLength(Code code);
+  static WasmSection::Code lookup(const byte* string, uint32_t length);
 };
 
 enum WasmFunctionDeclBit {
   kDeclFunctionName = 0x01,
-  kDeclFunctionImport = 0x02,
-  kDeclFunctionLocals = 0x04,
   kDeclFunctionExport = 0x08
 };
 
@@ -108,6 +103,8 @@
 static const size_t kDeclMemorySize = 3;
 static const size_t kDeclDataSegmentSize = 13;
 
+static const uint32_t kMaxReturnCount = 1;
+
 // Static representation of a WASM function.
 struct WasmFunction {
   FunctionSig* sig;      // signature of the function.
@@ -117,12 +114,7 @@
   uint32_t name_length;  // length in bytes of the name.
   uint32_t code_start_offset;    // offset in the module bytes of code start.
   uint32_t code_end_offset;      // offset in the module bytes of code end.
-  uint16_t local_i32_count;      // number of i32 local variables.
-  uint16_t local_i64_count;      // number of i64 local variables.
-  uint16_t local_f32_count;      // number of f32 local variables.
-  uint16_t local_f64_count;      // number of f64 local variables.
   bool exported;                 // true if this function is exported.
-  bool external;  // true if this function is externally supplied.
 };
 
 // Static representation of an imported WASM function.
@@ -191,24 +183,38 @@
   WasmName GetName(uint32_t offset, uint32_t length) const {
     if (length == 0) return {"<?>", 3};  // no name.
     CHECK(BoundsCheck(offset, offset + length));
-    return {reinterpret_cast<const char*>(module_start + offset), length};
+    DCHECK_GE(static_cast<int>(length), 0);
+    return {reinterpret_cast<const char*>(module_start + offset),
+            static_cast<int>(length)};
+  }
+
+  // Get a string stored in the module bytes representing a function name.
+  WasmName GetName(WasmFunction* function) const {
+    return GetName(function->name_offset, function->name_length);
   }
 
   // Get a string stored in the module bytes representing a name.
   WasmName GetNameOrNull(uint32_t offset, uint32_t length) const {
     if (length == 0) return {NULL, 0};  // no name.
     CHECK(BoundsCheck(offset, offset + length));
-    return {reinterpret_cast<const char*>(module_start + offset), length};
+    DCHECK_GE(static_cast<int>(length), 0);
+    return {reinterpret_cast<const char*>(module_start + offset),
+            static_cast<int>(length)};
+  }
+
+  // Get a string stored in the module bytes representing a function name.
+  WasmName GetNameOrNull(WasmFunction* function) const {
+    return GetNameOrNull(function->name_offset, function->name_length);
   }
 
   // Checks the given offset range is contained within the module bytes.
   bool BoundsCheck(uint32_t start, uint32_t end) const {
     size_t size = module_end - module_start;
-    return start < size && end < size;
+    return start <= size && end <= size;
   }
 
   // Creates a new instantiation of the module in the given isolate.
-  MaybeHandle<JSObject> Instantiate(Isolate* isolate, Handle<JSObject> ffi,
+  MaybeHandle<JSObject> Instantiate(Isolate* isolate, Handle<JSReceiver> ffi,
                                     Handle<JSArrayBuffer> memory);
 };
 
@@ -318,6 +324,11 @@
 // given decoded module.
 int32_t CompileAndRunWasmModule(Isolate* isolate, WasmModule* module);
 
+// Extract a function name from the given wasm object.
+// Returns undefined if the function is unnamed or the function index is
+// invalid.
+Handle<Object> GetWasmFunctionName(Handle<JSObject> wasm, uint32_t func_index);
+
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/src/wasm/wasm-opcodes.cc b/src/wasm/wasm-opcodes.cc
index 736c4d9..a08fa8d 100644
--- a/src/wasm/wasm-opcodes.cc
+++ b/src/wasm/wasm-opcodes.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "src/wasm/wasm-opcodes.h"
+#include "src/messages.h"
 #include "src/signature.h"
 
 namespace v8 {
@@ -24,6 +25,18 @@
   return "Unknown";
 }
 
+const char* WasmOpcodes::ShortOpcodeName(WasmOpcode opcode) {
+  switch (opcode) {
+#define DECLARE_NAME_CASE(name, opcode, sig) \
+  case kExpr##name:                          \
+    return #name;
+    FOREACH_OPCODE(DECLARE_NAME_CASE)
+#undef DECLARE_NAME_CASE
+    default:
+      break;
+  }
+  return "Unknown";
+}
 
 std::ostream& operator<<(std::ostream& os, const FunctionSig& sig) {
   if (sig.return_count() == 0) os << "v";
@@ -38,13 +51,10 @@
   return os;
 }
 
-
 #define DECLARE_SIG_ENUM(name, ...) kSigEnum_##name,
 
-
 enum WasmOpcodeSig { FOREACH_SIGNATURE(DECLARE_SIG_ENUM) };
 
-
 // TODO(titzer): not static-initializer safe. Wrap in LazyInstance.
 #define DECLARE_SIG(name, ...)                      \
   static LocalType kTypes_##name[] = {__VA_ARGS__}; \
@@ -60,7 +70,6 @@
 
 static byte kSimpleExprSigTable[256];
 
-
 // Initialize the signature table.
 static void InitSigTable() {
 #define SET_SIG_TABLE(name, opcode, sig) \
@@ -70,15 +79,24 @@
 #undef SET_SIG_TABLE
 }
 
+class SigTable {
+ public:
+  SigTable() {
+    // TODO(ahaas): Move {InitSigTable} into the class.
+    InitSigTable();
+  }
+  FunctionSig* Signature(WasmOpcode opcode) const {
+    return const_cast<FunctionSig*>(
+        kSimpleExprSigs[kSimpleExprSigTable[static_cast<byte>(opcode)]]);
+  }
+};
+
+static base::LazyInstance<SigTable>::type sig_table = LAZY_INSTANCE_INITIALIZER;
 
 FunctionSig* WasmOpcodes::Signature(WasmOpcode opcode) {
-  // TODO(titzer): use LazyInstance to make this thread safe.
-  if (kSimpleExprSigTable[kExprI32Add] == 0) InitSigTable();
-  return const_cast<FunctionSig*>(
-      kSimpleExprSigs[kSimpleExprSigTable[static_cast<byte>(opcode)]]);
+  return sig_table.Get().Signature(opcode);
 }
 
-
 // TODO(titzer): pull WASM_64 up to a common header.
 #if !V8_TARGET_ARCH_32_BIT || V8_TARGET_ARCH_X64
 #define WASM_64 1
@@ -86,64 +104,20 @@
 #define WASM_64 0
 #endif
 
-
-bool WasmOpcodes::IsSupported(WasmOpcode opcode) {
-#if !WASM_64
-  switch (opcode) {
-    // Opcodes not supported on 32-bit platforms.
-    case kExprI64Add:
-    case kExprI64Sub:
-    case kExprI64Mul:
-    case kExprI64DivS:
-    case kExprI64DivU:
-    case kExprI64RemS:
-    case kExprI64RemU:
-    case kExprI64And:
-    case kExprI64Ior:
-    case kExprI64Xor:
-    case kExprI64Shl:
-    case kExprI64ShrU:
-    case kExprI64ShrS:
-    case kExprI64Ror:
-    case kExprI64Rol:
-    case kExprI64Eq:
-    case kExprI64Ne:
-    case kExprI64LtS:
-    case kExprI64LeS:
-    case kExprI64LtU:
-    case kExprI64LeU:
-    case kExprI64GtS:
-    case kExprI64GeS:
-    case kExprI64GtU:
-    case kExprI64GeU:
-
-    case kExprI32ConvertI64:
-    case kExprI64SConvertI32:
-    case kExprI64UConvertI32:
-
-    case kExprF64ReinterpretI64:
-    case kExprI64ReinterpretF64:
-
-    case kExprI64Clz:
-    case kExprI64Ctz:
-    case kExprI64Popcnt:
-
-    case kExprF32SConvertI64:
-    case kExprF32UConvertI64:
-    case kExprF64SConvertI64:
-    case kExprF64UConvertI64:
-    case kExprI64SConvertF32:
-    case kExprI64SConvertF64:
-    case kExprI64UConvertF32:
-    case kExprI64UConvertF64:
-
-      return false;
+int WasmOpcodes::TrapReasonToMessageId(TrapReason reason) {
+  switch (reason) {
+#define TRAPREASON_TO_MESSAGE(name) \
+  case k##name:                     \
+    return MessageTemplate::kWasm##name;
+    FOREACH_WASM_TRAPREASON(TRAPREASON_TO_MESSAGE)
+#undef TRAPREASON_TO_MESSAGE
     default:
-      return true;
+      return MessageTemplate::kNone;
   }
-#else
-  return true;
-#endif
+}
+
+const char* WasmOpcodes::TrapReasonMessage(TrapReason reason) {
+  return MessageTemplate::TemplateString(TrapReasonToMessageId(reason));
 }
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/wasm/wasm-opcodes.h b/src/wasm/wasm-opcodes.h
index 52f85aa..764c503 100644
--- a/src/wasm/wasm-opcodes.h
+++ b/src/wasm/wasm-opcodes.h
@@ -49,12 +49,10 @@
 typedef Signature<LocalType> FunctionSig;
 std::ostream& operator<<(std::ostream& os, const FunctionSig& function);
 
-struct WasmName {
-  const char* name;
-  uint32_t length;
-};
+typedef Vector<const char> WasmName;
 
-// TODO(titzer): Renumber all the opcodes to fill in holes.
+typedef int WasmCodePosition;
+const WasmCodePosition kNoCodePosition = -1;
 
 // Control expressions and blocks.
 #define FOREACH_CONTROL_OPCODE(V) \
@@ -62,29 +60,29 @@
   V(Block, 0x01, _)               \
   V(Loop, 0x02, _)                \
   V(If, 0x03, _)                  \
-  V(IfElse, 0x04, _)              \
+  V(Else, 0x04, _)                \
   V(Select, 0x05, _)              \
   V(Br, 0x06, _)                  \
   V(BrIf, 0x07, _)                \
   V(BrTable, 0x08, _)             \
-  V(Return, 0x14, _)              \
-  V(Unreachable, 0x15, _)
+  V(Return, 0x09, _)              \
+  V(Unreachable, 0x0a, _)         \
+  V(End, 0x0F, _)
 
 // Constants, locals, globals, and calls.
 #define FOREACH_MISC_OPCODE(V) \
-  V(I8Const, 0x09, _)          \
-  V(I32Const, 0x0a, _)         \
-  V(I64Const, 0x0b, _)         \
-  V(F64Const, 0x0c, _)         \
-  V(F32Const, 0x0d, _)         \
-  V(GetLocal, 0x0e, _)         \
-  V(SetLocal, 0x0f, _)         \
-  V(LoadGlobal, 0x10, _)       \
-  V(StoreGlobal, 0x11, _)      \
-  V(CallFunction, 0x12, _)     \
-  V(CallIndirect, 0x13, _)     \
-  V(CallImport, 0x1F, _)       \
-  V(DeclLocals, 0x1E, _)
+  V(I32Const, 0x10, _)         \
+  V(I64Const, 0x11, _)         \
+  V(F64Const, 0x12, _)         \
+  V(F32Const, 0x13, _)         \
+  V(GetLocal, 0x14, _)         \
+  V(SetLocal, 0x15, _)         \
+  V(CallFunction, 0x16, _)     \
+  V(CallIndirect, 0x17, _)     \
+  V(CallImport, 0x18, _)       \
+  V(I8Const, 0xcb, _)          \
+  V(LoadGlobal, 0xcc, _)       \
+  V(StoreGlobal, 0xcd, _)
 
 // Load memory expressions.
 #define FOREACH_LOAD_MEM_OPCODE(V) \
@@ -258,29 +256,27 @@
   V(F64Log, 0xc7, d_d)                 \
   V(F64Atan2, 0xc8, d_dd)              \
   V(F64Pow, 0xc9, d_dd)                \
-  V(F64Mod, 0xca, d_dd)
-
-// TODO(titzer): sketch of asm-js compatibility bytecodes
-/* V(I32AsmjsDivS, 0xd0, i_ii)          \ */
-/* V(I32AsmjsDivU, 0xd1, i_ii)          \ */
-/* V(I32AsmjsRemS, 0xd2, i_ii)          \ */
-/* V(I32AsmjsRemU, 0xd3, i_ii)          \ */
-/* V(I32AsmjsLoad8S, 0xd4, i_i)         \ */
-/* V(I32AsmjsLoad8U, 0xd5, i_i)         \ */
-/* V(I32AsmjsLoad16S, 0xd6, i_i)        \ */
-/* V(I32AsmjsLoad16U, 0xd7, i_i)        \ */
-/* V(I32AsmjsLoad, 0xd8, i_i)           \ */
-/* V(F32AsmjsLoad, 0xd9, f_i)           \ */
-/* V(F64AsmjsLoad, 0xda, d_i)           \ */
-/* V(I32AsmjsStore8, 0xdb, i_i)         \ */
-/* V(I32AsmjsStore16, 0xdc, i_i)        \ */
-/* V(I32AsmjsStore, 0xdd, i_ii)         \ */
-/* V(F32AsmjsStore, 0xde, i_if)         \ */
-/* V(F64AsmjsStore, 0xdf, i_id)         \ */
-/* V(I32SAsmjsConvertF32, 0xe0, i_f)    \ */
-/* V(I32UAsmjsConvertF32, 0xe1, i_f)    \ */
-/* V(I32SAsmjsConvertF64, 0xe2, i_d)    \ */
-/* V(I32SAsmjsConvertF64, 0xe3, i_d) */
+  V(F64Mod, 0xca, d_dd)                \
+  V(I32AsmjsDivS, 0xd0, i_ii)          \
+  V(I32AsmjsDivU, 0xd1, i_ii)          \
+  V(I32AsmjsRemS, 0xd2, i_ii)          \
+  V(I32AsmjsRemU, 0xd3, i_ii)          \
+  V(I32AsmjsLoadMem8S, 0xd4, i_i)      \
+  V(I32AsmjsLoadMem8U, 0xd5, i_i)      \
+  V(I32AsmjsLoadMem16S, 0xd6, i_i)     \
+  V(I32AsmjsLoadMem16U, 0xd7, i_i)     \
+  V(I32AsmjsLoadMem, 0xd8, i_i)        \
+  V(F32AsmjsLoadMem, 0xd9, f_i)        \
+  V(F64AsmjsLoadMem, 0xda, d_i)        \
+  V(I32AsmjsStoreMem8, 0xdb, i_ii)     \
+  V(I32AsmjsStoreMem16, 0xdc, i_ii)    \
+  V(I32AsmjsStoreMem, 0xdd, i_ii)      \
+  V(F32AsmjsStoreMem, 0xde, f_if)      \
+  V(F64AsmjsStoreMem, 0xdf, d_id)      \
+  V(I32AsmjsSConvertF32, 0xe0, i_f)    \
+  V(I32AsmjsUConvertF32, 0xe1, i_f)    \
+  V(I32AsmjsSConvertF64, 0xe2, i_d)    \
+  V(I32AsmjsUConvertF64, 0xe3, i_d)
 
 // All opcodes.
 #define FOREACH_OPCODE(V)     \
@@ -330,25 +326,33 @@
 };
 
 // The reason for a trap.
+#define FOREACH_WASM_TRAPREASON(V) \
+  V(TrapUnreachable)          \
+  V(TrapMemOutOfBounds)       \
+  V(TrapDivByZero)            \
+  V(TrapDivUnrepresentable)   \
+  V(TrapRemByZero)            \
+  V(TrapFloatUnrepresentable) \
+  V(TrapFuncInvalid)          \
+  V(TrapFuncSigMismatch)
+
 enum TrapReason {
-  kTrapUnreachable,
-  kTrapMemOutOfBounds,
-  kTrapDivByZero,
-  kTrapDivUnrepresentable,
-  kTrapRemByZero,
-  kTrapFloatUnrepresentable,
-  kTrapFuncInvalid,
-  kTrapFuncSigMismatch,
+#define DECLARE_ENUM(name) k##name,
+  FOREACH_WASM_TRAPREASON(DECLARE_ENUM)
   kTrapCount
+#undef DECLARE_ENUM
 };
 
 // A collection of opcode-related static methods.
 class WasmOpcodes {
  public:
-  static bool IsSupported(WasmOpcode opcode);
   static const char* OpcodeName(WasmOpcode opcode);
+  static const char* ShortOpcodeName(WasmOpcode opcode);
   static FunctionSig* Signature(WasmOpcode opcode);
 
+  static int TrapReasonToMessageId(TrapReason reason);
+  static const char* TrapReasonMessage(TrapReason reason);
+
   static byte MemSize(MachineType type) {
     return 1 << ElementSizeLog2Of(type.representation());
   }
@@ -508,29 +512,6 @@
         return "<unknown>";
     }
   }
-
-  static const char* TrapReasonName(TrapReason reason) {
-    switch (reason) {
-      case kTrapUnreachable:
-        return "unreachable";
-      case kTrapMemOutOfBounds:
-        return "memory access out of bounds";
-      case kTrapDivByZero:
-        return "divide by zero";
-      case kTrapDivUnrepresentable:
-        return "divide result unrepresentable";
-      case kTrapRemByZero:
-        return "remainder by zero";
-      case kTrapFloatUnrepresentable:
-        return "integer result unrepresentable";
-      case kTrapFuncInvalid:
-        return "invalid function";
-      case kTrapFuncSigMismatch:
-        return "function signature mismatch";
-      default:
-        return "<?>";
-    }
-  }
 };
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/wasm/wasm-result.cc b/src/wasm/wasm-result.cc
index 4fd17ee..3de5812 100644
--- a/src/wasm/wasm-result.cc
+++ b/src/wasm/wasm-result.cc
@@ -28,7 +28,6 @@
   return os;
 }
 
-
 void ErrorThrower::Error(const char* format, ...) {
   if (error_) return;  // only report the first error.
   error_ = true;
diff --git a/src/wasm/wasm-result.h b/src/wasm/wasm-result.h
index 59ab29e..b650c33 100644
--- a/src/wasm/wasm-result.h
+++ b/src/wasm/wasm-result.h
@@ -5,6 +5,7 @@
 #ifndef V8_WASM_RESULT_H_
 #define V8_WASM_RESULT_H_
 
+#include "src/base/compiler-specific.h"
 #include "src/base/smart-pointers.h"
 
 #include "src/globals.h"
@@ -93,13 +94,13 @@
   ErrorThrower(Isolate* isolate, const char* context)
       : isolate_(isolate), context_(context), error_(false) {}
 
-  void Error(const char* fmt, ...);
+  PRINTF_FORMAT(2, 3) void Error(const char* fmt, ...);
 
   template <typename T>
   void Failed(const char* error, Result<T>& result) {
     std::ostringstream str;
     str << error << result;
-    return Error(str.str().c_str());
+    return Error("%s", str.str().c_str());
   }
 
   bool error() const { return error_; }
diff --git a/src/x64/assembler-x64-inl.h b/src/x64/assembler-x64-inl.h
index f32f407..0af8f93 100644
--- a/src/x64/assembler-x64-inl.h
+++ b/src/x64/assembler-x64-inl.h
@@ -78,7 +78,8 @@
 void Assembler::emit_runtime_entry(Address entry, RelocInfo::Mode rmode) {
   DCHECK(RelocInfo::IsRuntimeEntry(rmode));
   RecordRelocInfo(rmode);
-  emitl(static_cast<uint32_t>(entry - isolate()->code_range()->start()));
+  emitl(static_cast<uint32_t>(
+      entry - isolate()->heap()->memory_allocator()->code_range()->start()));
 }
 
 
@@ -299,7 +300,8 @@
 
 
 Address Assembler::runtime_entry_at(Address pc) {
-  return Memory::int32_at(pc) + isolate()->code_range()->start();
+  return Memory::int32_at(pc) +
+         isolate()->heap()->memory_allocator()->code_range()->start();
 }
 
 // -----------------------------------------------------------------------------
@@ -326,11 +328,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Memory::Address_at(pc_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)
                               || rmode_ == EMBEDDED_OBJECT
@@ -368,21 +365,6 @@
   }
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Memory::Address_at(pc_) = updated_reference;
-  if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
-    Assembler::FlushICache(isolate_, pc_, sizeof(int64_t));
-  }
-}
-
 Object* RelocInfo::target_object() {
   DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
   return Memory::Object_at(pc_);
@@ -538,7 +520,7 @@
   }
 }
 
-
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
index 214b786..5f8fb68 100644
--- a/src/x64/assembler-x64.cc
+++ b/src/x64/assembler-x64.cc
@@ -114,6 +114,45 @@
       CpuFeatures::IsSupported(POPCNT), CpuFeatures::IsSupported(ATOM));
 }
 
+// -----------------------------------------------------------------------------
+// Implementation of RelocInfo
+
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Memory::Address_at(pc_);
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return Memory::uint32_at(pc_);
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_)) {
+    Address updated_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_reference &&
+           updated_reference < new_base + new_size);
+    Memory::Address_at(pc_) = updated_reference;
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Memory::uint32_at(pc_) = updated_size_reference;
+  } else {
+    UNREACHABLE();
+  }
+  if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
+    Assembler::FlushICache(isolate_, pc_, sizeof(int64_t));
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Implementation of Operand
@@ -563,14 +602,17 @@
   if (is_int8(src.value_)) {
     emit(0x83);
     emit_modrm(subcode, dst);
+    if (!RelocInfo::IsNone(src.rmode_)) {
+      RecordRelocInfo(src.rmode_);
+    }
     emit(src.value_);
   } else if (dst.is(rax)) {
     emit(0x05 | (subcode << 3));
-    emitl(src.value_);
+    emit(src);
   } else {
     emit(0x81);
     emit_modrm(subcode, dst);
-    emitl(src.value_);
+    emit(src);
   }
 }
 
@@ -583,11 +625,14 @@
   if (is_int8(src.value_)) {
     emit(0x83);
     emit_operand(subcode, dst);
+    if (!RelocInfo::IsNone(src.rmode_)) {
+      RecordRelocInfo(src.rmode_);
+    }
     emit(src.value_);
   } else {
     emit(0x81);
     emit_operand(subcode, dst);
-    emitl(src.value_);
+    emit(src);
   }
 }
 
@@ -1484,7 +1529,6 @@
   movq(dst, static_cast<int64_t>(value), rmode);
 }
 
-
 // Loads the ip-relative location of the src label into the target location
 // (as a 32-bit offset sign extended to 64-bit).
 void Assembler::movl(const Operand& dst, Label* src) {
@@ -1909,6 +1953,25 @@
   emit_modrm(src, dst);
 }
 
+void Assembler::xchgb(Register reg, const Operand& op) {
+  EnsureSpace ensure_space(this);
+  if (!reg.is_byte_register()) {
+    // Register is not one of al, bl, cl, dl.  Its encoding needs REX.
+    emit_rex_32(reg, op);
+  } else {
+    emit_optional_rex_32(reg, op);
+  }
+  emit(0x86);
+  emit_operand(reg, op);
+}
+
+void Assembler::xchgw(Register reg, const Operand& op) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(reg, op);
+  emit(0x87);
+  emit_operand(reg, op);
+}
 
 void Assembler::emit_xchg(Register dst, Register src, int size) {
   EnsureSpace ensure_space(this);
@@ -2032,14 +2095,14 @@
   emit(0x66);
   if (reg.is(rax)) {
     emit(0xA9);
-    emit(mask.value_);
+    emitw(mask.value_);
   } else {
     if (reg.low_bits() == 4) {
       emit_rex_32(reg);
     }
     emit(0xF7);
     emit_modrm(0x0, reg);
-    emit(mask.value_);
+    emitw(mask.value_);
   }
 }
 
@@ -2050,7 +2113,7 @@
   emit_optional_rex_32(rax, op);
   emit(0xF7);
   emit_operand(rax, op);
-  emit(mask.value_);
+  emitw(mask.value_);
 }
 
 void Assembler::testw(const Operand& op, Register reg) {
diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h
index e48f358..77a1a57 100644
--- a/src/x64/assembler-x64.h
+++ b/src/x64/assembler-x64.h
@@ -183,6 +183,8 @@
   V(xmm14)                  \
   V(xmm15)
 
+#define FLOAT_REGISTERS DOUBLE_REGISTERS
+
 #define ALLOCATABLE_DOUBLE_REGISTERS(V) \
   V(xmm1)                               \
   V(xmm2)                               \
@@ -200,8 +202,7 @@
   V(xmm14)                              \
   V(xmm15)
 
-
-struct DoubleRegister {
+struct XMMRegister {
   enum Code {
 #define REGISTER_CODE(R) kCode_##R,
     DOUBLE_REGISTERS(REGISTER_CODE)
@@ -212,15 +213,15 @@
 
   static const int kMaxNumRegisters = Code::kAfterLast;
 
-  static DoubleRegister from_code(int code) {
-    DoubleRegister result = {code};
+  static XMMRegister from_code(int code) {
+    XMMRegister result = {code};
     return result;
   }
 
   const char* ToString();
   bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
-  bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
+  bool is(XMMRegister reg) const { return reg_code == reg.reg_code; }
   int code() const {
     DCHECK(is_valid());
     return reg_code;
@@ -238,6 +239,11 @@
   int reg_code;
 };
 
+typedef XMMRegister FloatRegister;
+
+typedef XMMRegister DoubleRegister;
+
+typedef XMMRegister Simd128Register;
 
 #define DECLARE_REGISTER(R) \
   const DoubleRegister R = {DoubleRegister::kCode_##R};
@@ -245,11 +251,6 @@
 #undef DECLARE_REGISTER
 const DoubleRegister no_double_reg = {DoubleRegister::kCode_no_reg};
 
-
-typedef DoubleRegister XMMRegister;
-
-typedef DoubleRegister Simd128Register;
-
 enum Condition {
   // any value < 0 is considered no_condition
   no_condition  = -1,
@@ -334,6 +335,8 @@
 class Immediate BASE_EMBEDDED {
  public:
   explicit Immediate(int32_t value) : value_(value) {}
+  explicit Immediate(int32_t value, RelocInfo::Mode rmode)
+      : value_(value), rmode_(rmode) {}
   explicit Immediate(Smi* value) {
     DCHECK(SmiValuesAre31Bits());  // Only available for 31-bit SMI.
     value_ = static_cast<int32_t>(reinterpret_cast<intptr_t>(value));
@@ -341,6 +344,7 @@
 
  private:
   int32_t value_;
+  RelocInfo::Mode rmode_ = RelocInfo::NONE32;
 
   friend class Assembler;
 };
@@ -784,6 +788,9 @@
   void decb(Register dst);
   void decb(const Operand& dst);
 
+  void xchgb(Register reg, const Operand& op);
+  void xchgw(Register reg, const Operand& op);
+
   // Sign-extends rax into rdx:rax.
   void cqo();
   // Sign-extends eax into edx:eax.
@@ -1689,7 +1696,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   void PatchConstantPoolAccessInstruction(int pc_offset, int offset,
                                           ConstantPoolEntry::Access access,
@@ -1755,7 +1762,12 @@
                                RelocInfo::Mode rmode,
                                TypeFeedbackId ast_id = TypeFeedbackId::None());
   inline void emit_runtime_entry(Address entry, RelocInfo::Mode rmode);
-  void emit(Immediate x) { emitl(x.value_); }
+  void emit(Immediate x) {
+    if (!RelocInfo::IsNone(x.rmode_)) {
+      RecordRelocInfo(x.rmode_);
+    }
+    emitl(x.value_);
+  }
 
   // Emits a REX prefix that encodes a 64-bit operand size and
   // the top bit of both register codes.
diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc
index 3163783..419ee0f 100644
--- a/src/x64/builtins-x64.cc
+++ b/src/x64/builtins-x64.cc
@@ -185,16 +185,9 @@
     __ j(greater_equal, &loop);
 
     // Call the function.
-    if (is_api_function) {
-      __ movp(rsi, FieldOperand(rdi, JSFunction::kContextOffset));
-      Handle<Code> code =
-          masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ Call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(rax);
-      __ InvokeFunction(rdi, rdx, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+    ParameterCount actual(rax);
+    __ InvokeFunction(rdi, rdx, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -464,6 +457,146 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- rax    : the value to pass to the generator
+  //  -- rbx    : the JSGeneratorObject to resume
+  //  -- rdx    : the resume mode (tagged)
+  //  -- rsp[0] : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(rbx);
+
+  // Store input value into generator object.
+  __ movp(FieldOperand(rbx, JSGeneratorObject::kInputOffset), rax);
+  __ RecordWriteField(rbx, JSGeneratorObject::kInputOffset, rax, rcx,
+                      kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ movp(FieldOperand(rbx, JSGeneratorObject::kResumeModeOffset), rdx);
+
+  // Load suspended function and context.
+  __ movp(rsi, FieldOperand(rbx, JSGeneratorObject::kContextOffset));
+  __ movp(rdi, FieldOperand(rbx, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  Operand step_in_enabled_operand = masm->ExternalOperand(step_in_enabled);
+  __ cmpb(step_in_enabled_operand, Immediate(0));
+  __ j(equal, &skip_flooding);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(rbx);
+    __ Push(rdx);
+    __ Push(rdi);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(rdx);
+    __ Pop(rbx);
+    __ movp(rdi, FieldOperand(rbx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Pop return address.
+  __ PopReturnAddressTo(rax);
+
+  // Push receiver.
+  __ Push(FieldOperand(rbx, JSGeneratorObject::kReceiverOffset));
+
+  // ----------- S t a t e -------------
+  //  -- rax    : return address
+  //  -- rbx    : the JSGeneratorObject to resume
+  //  -- rdx    : the resume mode (tagged)
+  //  -- rdi    : generator function
+  //  -- rsi    : generator context
+  //  -- rsp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ movp(rcx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadSharedFunctionInfoSpecialField(
+      rcx, rcx, SharedFunctionInfo::kFormalParameterCountOffset);
+  {
+    Label done_loop, loop;
+    __ bind(&loop);
+    __ subl(rcx, Immediate(1));
+    __ j(carry, &done_loop, Label::kNear);
+    __ PushRoot(Heap::kTheHoleValueRootIndex);
+    __ jmp(&loop);
+    __ bind(&done_loop);
+  }
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ movp(rcx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
+  __ movp(rcx, FieldOperand(rcx, SharedFunctionInfo::kFunctionDataOffset));
+  __ CmpObjectType(rcx, BYTECODE_ARRAY_TYPE, rcx);
+  __ j(not_equal, &old_generator);
+
+  // New-style (ignition/turbofan) generator object.
+  {
+    __ PushReturnAddressFrom(rax);
+    __ movp(rax, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
+    __ LoadSharedFunctionInfoSpecialField(
+        rax, rax, SharedFunctionInfo::kFormalParameterCountOffset);
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ movp(rdx, rbx);
+    __ jmp(FieldOperand(rdi, JSFunction::kCodeEntryOffset));
+  }
+
+  // Old-style (full-codegen) generator object.
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ PushReturnAddressFrom(rax);  // Return address.
+    __ Push(rbp);                   // Caller's frame pointer.
+    __ Move(rbp, rsp);
+    __ Push(rsi);  // Callee's context.
+    __ Push(rdi);  // Callee's JS Function.
+
+    // Restore the operand stack.
+    __ movp(rsi, FieldOperand(rbx, JSGeneratorObject::kOperandStackOffset));
+    __ SmiToInteger32(rax, FieldOperand(rsi, FixedArray::kLengthOffset));
+    {
+      Label done_loop, loop;
+      __ Set(rcx, 0);
+      __ bind(&loop);
+      __ cmpl(rcx, rax);
+      __ j(equal, &done_loop, Label::kNear);
+      __ Push(
+          FieldOperand(rsi, rcx, times_pointer_size, FixedArray::kHeaderSize));
+      __ addl(rcx, Immediate(1));
+      __ jmp(&loop);
+      __ bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ LoadRoot(FieldOperand(rbx, JSGeneratorObject::kOperandStackOffset),
+                Heap::kEmptyFixedArrayRootIndex);
+
+    // Restore context.
+    __ movp(rsi, FieldOperand(rbx, JSGeneratorObject::kContextOffset));
+
+    // Resume the generator function at the continuation.
+    __ movp(rdx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
+    __ movp(rdx, FieldOperand(rdx, SharedFunctionInfo::kCodeOffset));
+    __ SmiToInteger64(
+        rcx, FieldOperand(rbx, JSGeneratorObject::kContinuationOffset));
+    __ leap(rdx, FieldOperand(rdx, rcx, times_1, Code::kHeaderSize));
+    __ Move(FieldOperand(rbx, JSGeneratorObject::kContinuationOffset),
+            Smi::FromInt(JSGeneratorObject::kGeneratorExecuting));
+    __ movp(rax, rbx);  // Continuation expects generator object in rax.
+    __ jmp(rdx);
+  }
+}
 
 // Generate code for entering a JS function with the interpreter.
 // On entry to the function the receiver and arguments have been pushed on the
@@ -480,6 +613,8 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
@@ -490,10 +625,9 @@
   __ Push(rdi);  // Callee's JS function.
   __ Push(rdx);  // Callee's new target.
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into edi (InterpreterBytecodeRegister).
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ movp(rax, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
-
   Label load_debug_bytecode_array, bytecode_array_loaded;
   DCHECK_EQ(Smi::FromInt(0), DebugInfo::uninitialized());
   __ cmpp(FieldOperand(rax, SharedFunctionInfo::kDebugInfoOffset),
@@ -503,18 +637,26 @@
           FieldOperand(rax, SharedFunctionInfo::kFunctionDataOffset));
   __ bind(&bytecode_array_loaded);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ CompareRoot(kInterpreterBytecodeArrayRegister,
+                 Heap::kUndefinedValueRootIndex);
+  __ j(equal, &bytecode_array_not_present);
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ AssertNotSmi(kInterpreterBytecodeArrayRegister);
     __ CmpObjectType(kInterpreterBytecodeArrayRegister, BYTECODE_ARRAY_TYPE,
                      rax);
     __ Assert(equal, kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry);
   }
 
-  // Push bytecode array.
+  // Load initial bytecode offset.
+  __ movp(kInterpreterBytecodeOffsetRegister,
+          Immediate(BytecodeArray::kHeaderSize - kHeapObjectTag));
+
+  // Push bytecode array and Smi tagged bytecode offset.
   __ Push(kInterpreterBytecodeArrayRegister);
-  // Push zero for bytecode array offset.
-  __ Push(Immediate(0));
+  __ Integer32ToSmi(rcx, kInterpreterBytecodeOffsetRegister);
+  __ Push(rcx);
 
   // Allocate the local and temporary register file on the stack.
   {
@@ -545,19 +687,8 @@
     __ j(greater_equal, &loop_header, Label::kNear);
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load accumulator, register file, bytecode offset, dispatch table into
-  // registers.
+  // Load accumulator and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ movp(kInterpreterRegisterFileRegister, rbp);
-  __ addp(kInterpreterRegisterFileRegister,
-          Immediate(InterpreterFrameConstants::kRegisterFilePointerFromFp));
-  __ movp(kInterpreterBytecodeOffsetRegister,
-          Immediate(BytecodeArray::kHeaderSize - kHeapObjectTag));
   __ Move(
       kInterpreterDispatchTableRegister,
       ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
@@ -567,13 +698,23 @@
                           kInterpreterBytecodeOffsetRegister, times_1, 0));
   __ movp(rbx, Operand(kInterpreterDispatchTableRegister, rbx,
                        times_pointer_size, 0));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ addp(rbx, Immediate(Code::kHeaderSize - kHeapObjectTag));
   __ call(rbx);
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
+  // The return value is in rax.
+
+  // Get the arguments + reciever count.
+  __ movp(rbx, Operand(rbp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ movl(rbx, FieldOperand(rbx, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ leave();
+
+  // Drop receiver + arguments and return.
+  __ PopReturnAddressTo(rcx);
+  __ addp(rsp, rbx);
+  __ PushReturnAddressFrom(rcx);
+  __ ret(0);
 
   // Load debug copy of the bytecode array.
   __ bind(&load_debug_bytecode_array);
@@ -582,31 +723,20 @@
   __ movp(kInterpreterBytecodeArrayRegister,
           FieldOperand(debug_info, DebugInfo::kAbstractCodeIndex));
   __ jmp(&bytecode_array_loaded);
+
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ bind(&bytecode_array_not_present);
+  __ leave();  // Leave the frame so we can tail call.
+  __ movp(rcx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
+  __ movp(rcx, FieldOperand(rcx, SharedFunctionInfo::kCodeOffset));
+  __ leap(rcx, FieldOperand(rcx, Code::kHeaderSize));
+  __ movp(FieldOperand(rdi, JSFunction::kCodeEntryOffset), rcx);
+  __ RecordWriteCodeEntryField(rdi, rcx, r15);
+  __ jmp(rcx);
 }
 
-
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
-
-  // The return value is in accumulator, which is already in rax.
-
-  // Leave the frame (also dropping the register file).
-  __ leave();
-
-  // Drop receiver + arguments and return.
-  __ movl(rbx, FieldOperand(kInterpreterBytecodeArrayRegister,
-                            BytecodeArray::kParameterSizeOffset));
-  __ PopReturnAddressTo(rcx);
-  __ addp(rsp, rbx);
-  __ PushReturnAddressFrom(rcx);
-  __ ret(0);
-}
-
-
 static void Generate_InterpreterPushArgs(MacroAssembler* masm,
                                          bool push_receiver) {
   // ----------- S t a t e -------------
@@ -637,7 +767,6 @@
   __ j(greater, &loop_header, Label::kNear);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -661,7 +790,6 @@
           RelocInfo::CODE_TARGET);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndConstruct(MacroAssembler* masm) {
   // ----------- S t a t e -------------
@@ -689,26 +817,25 @@
   __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
 }
 
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ Move(rbx, masm->isolate()->builtins()->InterpreterEntryTrampoline());
+  __ addp(rbx, Immediate(interpreter_entry_return_pc_offset->value() +
+                         Code::kHeaderSize - kHeapObjectTag));
+  __ Push(rbx);
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register and dispatch table register.
-  __ movp(kInterpreterRegisterFileRegister, rbp);
-  __ addp(kInterpreterRegisterFileRegister,
-          Immediate(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+  // Initialize dispatch table register.
   __ Move(
       kInterpreterDispatchTableRegister,
       ExternalReference::interpreter_dispatch_table_address(masm->isolate()));
 
-  // Get the context from the frame.
-  __ movp(kContextRegister,
-          Operand(kInterpreterRegisterFileRegister,
-                  InterpreterFrameConstants::kContextFromRegisterPointer));
-
   // Get the bytecode array pointer from the frame.
-  __ movp(
-      kInterpreterBytecodeArrayRegister,
-      Operand(kInterpreterRegisterFileRegister,
-              InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+  __ movp(kInterpreterBytecodeArrayRegister,
+          Operand(rbp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -719,10 +846,8 @@
   }
 
   // Get the target bytecode offset from the frame.
-  __ movp(
-      kInterpreterBytecodeOffsetRegister,
-      Operand(kInterpreterRegisterFileRegister,
-              InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+  __ movp(kInterpreterBytecodeOffsetRegister,
+          Operand(rbp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiToInteger32(kInterpreterBytecodeOffsetRegister,
                     kInterpreterBytecodeOffsetRegister);
 
@@ -731,66 +856,144 @@
                           kInterpreterBytecodeOffsetRegister, times_1, 0));
   __ movp(rbx, Operand(kInterpreterDispatchTableRegister, rbx,
                        times_pointer_size, 0));
-  __ addp(rbx, Immediate(Code::kHeaderSize - kHeapObjectTag));
   __ jmp(rbx);
 }
 
-
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ Push(Smi::FromInt(static_cast<int>(type)));
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register and push PC at top
-  // of stack (to simulate initial call to bytecode handler in interpreter entry
-  // trampoline).
-  __ Pop(rbx);
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-  __ Push(rbx);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ Push(masm->isolate()->builtins()->InterpreterEntryTrampoline());
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- rax : argument count (preserved for callee)
+  //  -- rdx : new target (preserved for callee)
+  //  -- rdi : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register closure = rdi;
+  Register map = r8;
+  Register index = r9;
+  __ movp(map, FieldOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ movp(map, FieldOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ SmiToInteger32(index, FieldOperand(map, FixedArray::kLengthOffset));
+  __ cmpl(index, Immediate(2));
+  __ j(less, &gotta_call_runtime);
+
+  // Find literals.
+  // r14 : native context
+  // r9  : length / index
+  // r8  : optimized code map
+  // rdx : new target
+  // rdi : closure
+  Register native_context = r14;
+  __ movp(native_context, NativeContextOperand());
+
+  __ bind(&loop_top);
+  // Native context match?
+  Register temp = r11;
+  __ movp(temp, FieldOperand(map, index, times_pointer_size,
+                             SharedFunctionInfo::kOffsetToPreviousContext));
+  __ movp(temp, FieldOperand(temp, WeakCell::kValueOffset));
+  __ cmpp(temp, native_context);
+  __ j(not_equal, &loop_bottom);
+  // OSR id set to none?
+  __ movp(temp, FieldOperand(map, index, times_pointer_size,
+                             SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  __ SmiToInteger32(temp, temp);
+  const int bailout_id = BailoutId::None().ToInt();
+  __ cmpl(temp, Immediate(bailout_id));
+  __ j(not_equal, &loop_bottom);
+  // Literals available?
+  __ movp(temp, FieldOperand(map, index, times_pointer_size,
+                             SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ movp(temp, FieldOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ movp(FieldOperand(closure, JSFunction::kLiteralsOffset), temp);
+  __ movp(r15, index);
+  __ RecordWriteField(closure, JSFunction::kLiteralsOffset, temp, r15,
+                      kDontSaveFPRegs, EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
+
+  // Code available?
+  Register entry = rcx;
+  __ movp(entry, FieldOperand(map, index, times_pointer_size,
+                              SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ movp(entry, FieldOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  __ leap(entry, FieldOperand(entry, Code::kHeaderSize));
+
+  Label install_optimized_code_and_tailcall;
+  __ bind(&install_optimized_code_and_tailcall);
+  __ movp(FieldOperand(closure, JSFunction::kCodeEntryOffset), entry);
+  __ RecordWriteCodeEntryField(closure, entry, r15);
+
+  // Link the closure into the optimized function list.
+  // rcx : code entry (entry)
+  // r14 : native context
+  // rdx : new target
+  // rdi : closure
+  __ movp(rbx,
+          ContextOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ movp(FieldOperand(closure, JSFunction::kNextFunctionLinkOffset), rbx);
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, rbx, r15,
+                      kDontSaveFPRegs, EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ movp(ContextOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST),
+          closure);
+  // Save closure before the write barrier.
+  __ movp(rbx, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, closure, r15,
+                            kDontSaveFPRegs);
+  __ movp(closure, rbx);
+  __ jmp(entry);
+
+  __ bind(&loop_bottom);
+  __ subl(index, Immediate(SharedFunctionInfo::kEntryLength));
+  __ cmpl(index, Immediate(1));
+  __ j(greater, &loop_top);
+
+  // We found neither literals nor code.
+  __ jmp(&gotta_call_runtime);
+
+  __ bind(&maybe_call_runtime);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ movp(entry, FieldOperand(map, FixedArray::kHeaderSize +
+                                       SharedFunctionInfo::kSharedCodeIndex));
+  __ movp(entry, FieldOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ leap(entry, FieldOperand(entry, Code::kHeaderSize));
+  __ jmp(&install_optimized_code_and_tailcall);
+
+  __ bind(&try_shared);
+  // Is the full code valid?
+  __ movp(entry, FieldOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ movp(entry, FieldOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ movl(rbx, FieldOperand(entry, Code::kFlagsOffset));
+  __ andl(rbx, Immediate(Code::KindField::kMask));
+  __ shrl(rbx, Immediate(Code::KindField::kShift));
+  __ cmpl(rbx, Immediate(Code::BUILTIN));
+  __ j(equal, &gotta_call_runtime);
+  // Yes, install the full code.
+  __ leap(entry, FieldOperand(entry, Code::kHeaderSize));
+  __ movp(FieldOperand(closure, JSFunction::kCodeEntryOffset), entry);
+  __ RecordWriteCodeEntryField(closure, entry, r15);
+  __ jmp(entry);
+
+  __ bind(&gotta_call_runtime);
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
 
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
@@ -929,13 +1132,16 @@
 
   // Switch on the state.
   Label not_no_registers, not_tos_rax;
-  __ cmpp(kScratchRegister, Immediate(FullCodeGenerator::NO_REGISTERS));
+  __ cmpp(kScratchRegister,
+          Immediate(static_cast<int>(Deoptimizer::BailoutState::NO_REGISTERS)));
   __ j(not_equal, &not_no_registers, Label::kNear);
   __ ret(1 * kPointerSize);  // Remove state.
 
   __ bind(&not_no_registers);
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), rax.code());
   __ movp(rax, Operand(rsp, kPCOnStackSize + kPointerSize));
-  __ cmpp(kScratchRegister, Immediate(FullCodeGenerator::TOS_REG));
+  __ cmpp(kScratchRegister,
+          Immediate(static_cast<int>(Deoptimizer::BailoutState::TOS_REGISTER)));
   __ j(not_equal, &not_tos_rax, Label::kNear);
   __ ret(2 * kPointerSize);  // Remove state, rax.
 
@@ -1010,29 +1216,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- rax     : argc
-  //  -- rsp[0]  : return address
-  //  -- rsp[8]  : first argument (left-hand side)
-  //  -- rsp[16] : receiver (right-hand side)
-  // -----------------------------------
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ movp(InstanceOfDescriptor::LeftRegister(),
-            Operand(rbp, 2 * kPointerSize));  // Load left-hand side.
-    __ movp(InstanceOfDescriptor::RightRegister(),
-            Operand(rbp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ ret(2 * kPointerSize);
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- rax     : argc
@@ -1789,6 +1972,34 @@
   __ PushReturnAddressFrom(rcx);
 }
 
+// static
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- rdx    : requested object size (untagged)
+  //  -- rsp[0] : return address
+  // -----------------------------------
+  __ Integer32ToSmi(rdx, rdx);
+  __ PopReturnAddressTo(rcx);
+  __ Push(rdx);
+  __ PushReturnAddressFrom(rcx);
+  __ Move(rsi, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
+}
+
+// static
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- rdx    : requested object size (untagged)
+  //  -- rsp[0] : return address
+  // -----------------------------------
+  __ Integer32ToSmi(rdx, rdx);
+  __ PopReturnAddressTo(rcx);
+  __ Push(rdx);
+  __ Push(Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ PushReturnAddressFrom(rcx);
+  __ Move(rsi, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
+}
 
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc
index e737801..602d3a0 100644
--- a/src/x64/code-stubs-x64.cc
+++ b/src/x64/code-stubs-x64.cc
@@ -53,12 +53,6 @@
 }
 
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -71,11 +65,6 @@
 }
 
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(rax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -2013,125 +2002,6 @@
 }
 
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = rdx;              // Object (lhs).
-  Register const function = rax;            // Function (rhs).
-  Register const object_map = rcx;          // Map of {object}.
-  Register const function_map = r8;         // Map of {function}.
-  Register const function_prototype = rdi;  // Prototype of {function}.
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi, Label::kNear);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ movp(object_map, FieldOperand(object, HeapObject::kMapOffset));
-  __ CompareRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ j(not_equal, &fast_case, Label::kNear);
-  __ CompareRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-  __ j(not_equal, &fast_case, Label::kNear);
-  __ LoadRoot(rax, Heap::kInstanceofCacheAnswerRootIndex);
-  __ ret(0);
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ CmpObjectType(function, JS_FUNCTION_TYPE, function_map);
-  __ j(not_equal, &slow_case);
-  __ LoadRoot(rax, Heap::kFalseValueRootIndex);
-  __ ret(0);
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ CmpObjectType(function, JS_FUNCTION_TYPE, function_map);
-  __ j(not_equal, &slow_case);
-
-  // Go to the runtime if the function is not a constructor.
-  __ testb(FieldOperand(function_map, Map::kBitFieldOffset),
-           Immediate(1 << Map::kIsConstructor));
-  __ j(zero, &slow_case);
-
-  // Ensure that {function} has an instance prototype.
-  __ testb(FieldOperand(function_map, Map::kBitFieldOffset),
-           Immediate(1 << Map::kHasNonInstancePrototype));
-  __ j(not_zero, &slow_case);
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ movp(function_prototype,
-          FieldOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  Register const function_prototype_map = kScratchRegister;
-  __ CmpObjectType(function_prototype, MAP_TYPE, function_prototype_map);
-  __ j(not_equal, &function_prototype_valid, Label::kNear);
-  __ movp(function_prototype,
-          FieldOperand(function_prototype, Map::kPrototypeOffset));
-  __ bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Label done, loop, fast_runtime_fallback;
-  __ LoadRoot(rax, Heap::kTrueValueRootIndex);
-  __ bind(&loop);
-
-  __ testb(FieldOperand(object_map, Map::kBitFieldOffset),
-           Immediate(1 << Map::kIsAccessCheckNeeded));
-  __ j(not_zero, &fast_runtime_fallback, Label::kNear);
-  __ CmpInstanceType(object_map, JS_PROXY_TYPE);
-  __ j(equal, &fast_runtime_fallback, Label::kNear);
-
-  __ movp(object, FieldOperand(object_map, Map::kPrototypeOffset));
-  __ cmpp(object, function_prototype);
-  __ j(equal, &done, Label::kNear);
-  __ CompareRoot(object, Heap::kNullValueRootIndex);
-  __ movp(object_map, FieldOperand(object, HeapObject::kMapOffset));
-  __ j(not_equal, &loop);
-  __ LoadRoot(rax, Heap::kFalseValueRootIndex);
-  __ bind(&done);
-  __ StoreRoot(rax, Heap::kInstanceofCacheAnswerRootIndex);
-  __ ret(0);
-
-  // Found Proxy or access check needed: Call the runtime.
-  __ bind(&fast_runtime_fallback);
-  __ PopReturnAddressTo(kScratchRegister);
-  __ Push(object);
-  __ Push(function_prototype);
-  __ PushReturnAddressFrom(kScratchRegister);
-  // Invalidate the instanceof cache.
-  __ Move(rax, Smi::FromInt(0));
-  __ StoreRoot(rax, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ PopReturnAddressTo(kScratchRegister);
-  __ Push(object);
-  __ Push(function);
-  __ PushReturnAddressFrom(kScratchRegister);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
-
 // -------------------------------------------------------------------------
 // StringCharCodeAtGenerator
 
@@ -3735,8 +3605,8 @@
   __ bind(&not_array);
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ j(not_equal, &miss);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(
       masm, Code::LOAD_IC, code_flags, receiver, name, feedback, no_reg);
 
@@ -3877,8 +3747,8 @@
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ j(not_equal, &miss);
 
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, code_flags,
                                                receiver, key, feedback, no_reg);
 
@@ -4449,15 +4319,15 @@
   __ bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ movp(Operand(rax, JSObject::kMapOffset), rcx);
+  __ movp(FieldOperand(rax, JSObject::kMapOffset), rcx);
   __ LoadRoot(rbx, Heap::kEmptyFixedArrayRootIndex);
-  __ movp(Operand(rax, JSObject::kPropertiesOffset), rbx);
-  __ movp(Operand(rax, JSObject::kElementsOffset), rbx);
+  __ movp(FieldOperand(rax, JSObject::kPropertiesOffset), rbx);
+  __ movp(FieldOperand(rax, JSObject::kElementsOffset), rbx);
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
-  __ leap(rbx, Operand(rax, JSObject::kHeaderSize));
+  __ leap(rbx, FieldOperand(rax, JSObject::kHeaderSize));
 
   // ----------- S t a t e -------------
-  //  -- rax    : result (untagged)
+  //  -- rax    : result (tagged)
   //  -- rbx    : result fields (untagged)
   //  -- rdi    : result end (untagged)
   //  -- rcx    : initial map
@@ -4475,10 +4345,6 @@
   {
     // Initialize all in-object fields with undefined.
     __ InitializeFieldsWithFiller(rbx, rdi, r11);
-
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ incp(rax);
     __ Ret();
   }
   __ bind(&slack_tracking);
@@ -4498,10 +4364,6 @@
     __ LoadRoot(r11, Heap::kOnePointerFillerMapRootIndex);
     __ InitializeFieldsWithFiller(rdx, rdi, r11);
 
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ incp(rax);
-
     // Check if we can finalize the instance size.
     Label finalize;
     STATIC_ASSERT(Map::kSlackTrackingCounterEnd == 1);
@@ -4532,10 +4394,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(rcx);
   }
-  STATIC_ASSERT(kHeapObjectTag == 1);
-  __ decp(rax);
   __ movzxbl(rbx, FieldOperand(rcx, Map::kInstanceSizeOffset));
   __ leap(rdi, Operand(rax, rbx, times_pointer_size, 0));
+  STATIC_ASSERT(kHeapObjectTag == 1);
+  __ decp(rdi);  // Remove the tag from the end address.
   __ jmp(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4557,19 +4419,19 @@
   // -----------------------------------
   __ AssertFunction(rdi);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make rdx point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ movp(rdx, rbp);
-    __ jmp(&loop_entry, Label::kNear);
-    __ bind(&loop);
+  // Make rdx point to the JavaScript frame.
+  __ movp(rdx, rbp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ movp(rdx, Operand(rdx, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ cmpp(rdi, Operand(rdx, StandardFrameConstants::kFunctionOffset));
-    __ j(not_equal, &loop);
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4601,7 +4463,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, rax, rdx, rcx, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, rax, rdx, rcx, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the rest parameter array in rax.
@@ -4642,7 +4504,7 @@
     Label allocate, done_allocate;
     __ leal(rcx, Operand(rax, times_pointer_size,
                          JSArray::kSize + FixedArray::kHeaderSize));
-    __ Allocate(rcx, rdx, rdi, no_reg, &allocate, TAG_OBJECT);
+    __ Allocate(rcx, rdx, rdi, no_reg, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Compute the arguments.length in rdi.
@@ -4709,11 +4571,26 @@
   // -----------------------------------
   __ AssertFunction(rdi);
 
+  // Make r9 point to the JavaScript frame.
+  __ movp(r9, rbp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ movp(r9, Operand(r9, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ cmpp(rdi, Operand(r9, StandardFrameConstants::kFunctionOffset));
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
+  }
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
   __ movp(rcx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
   __ LoadSharedFunctionInfoSpecialField(
       rcx, rcx, SharedFunctionInfo::kFormalParameterCountOffset);
-  __ leap(rdx, Operand(rbp, rcx, times_pointer_size,
+  __ leap(rdx, Operand(r9, rcx, times_pointer_size,
                        StandardFrameConstants::kCallerSPOffset));
   __ Integer32ToSmi(rcx, rcx);
 
@@ -4721,6 +4598,7 @@
   // rdx : parameters pointer
   // rdi : function
   // rsp[0] : return address
+  // r9  : JavaScript frame pointer.
   // Registers used over the whole function:
   //  rbx: the mapped parameter count (untagged)
   //  rax: the allocated object (tagged).
@@ -4731,7 +4609,7 @@
 
   // Check if the calling frame is an arguments adaptor frame.
   Label adaptor_frame, try_allocate, runtime;
-  __ movp(rax, Operand(rbp, StandardFrameConstants::kCallerFPOffset));
+  __ movp(rax, Operand(r9, StandardFrameConstants::kCallerFPOffset));
   __ movp(r8, Operand(rax, CommonFrameConstants::kContextOrFrameTypeOffset));
   __ Cmp(r8, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
   __ j(equal, &adaptor_frame);
@@ -4774,7 +4652,7 @@
   __ addp(r8, Immediate(JSSloppyArgumentsObject::kSize));
 
   // Do the allocation of all three objects in one go.
-  __ Allocate(r8, rax, r9, no_reg, &runtime, TAG_OBJECT);
+  __ Allocate(r8, rax, r9, no_reg, &runtime, NO_ALLOCATION_FLAGS);
 
   // rax = address of new object(s) (tagged)
   // r11 = argument count (untagged)
@@ -4927,19 +4805,19 @@
   // -----------------------------------
   __ AssertFunction(rdi);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make rdx point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ movp(rdx, rbp);
-    __ jmp(&loop_entry, Label::kNear);
-    __ bind(&loop);
+  // Make rdx point to the JavaScript frame.
+  __ movp(rdx, rbp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ movp(rdx, Operand(rdx, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ cmpp(rdi, Operand(rdx, StandardFrameConstants::kFunctionOffset));
-    __ j(not_equal, &loop);
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -4978,7 +4856,7 @@
   Label allocate, done_allocate;
   __ leal(rcx, Operand(rax, times_pointer_size, JSStrictArgumentsObject::kSize +
                                                     FixedArray::kHeaderSize));
-  __ Allocate(rcx, rdx, rdi, no_reg, &allocate, TAG_OBJECT);
+  __ Allocate(rcx, rdx, rdi, no_reg, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Compute the arguments.length in rdi.
@@ -5404,10 +5282,14 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
 
   __ PopReturnAddressTo(return_address);
 
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
+
   // context save
   __ Push(context);
 
@@ -5441,7 +5323,7 @@
 
   // Allocate the v8::Arguments structure in the arguments' space since
   // it's not controlled by GC.
-  const int kApiStackSpace = 4;
+  const int kApiStackSpace = 3;
 
   PrepareCallApiFunction(masm, kApiStackSpace);
 
@@ -5453,8 +5335,6 @@
   __ movp(StackSpaceOperand(1), scratch);
   // FunctionCallbackInfo::length_.
   __ Set(StackSpaceOperand(2), argc);
-  // FunctionCallbackInfo::is_construct_call_.
-  __ Set(StackSpaceOperand(3), 0);
 
 #if defined(__MINGW64__) || defined(_WIN64)
   Register arguments_arg = rcx;
@@ -5479,11 +5359,11 @@
                                        ARGUMENTS_DONT_CONTAIN_RECEIVER);
   Operand context_restore_operand = args_from_rbp.GetArgumentOperand(
       FCA::kArgsLength - FCA::kContextSaveIndex);
-  Operand is_construct_call_operand = StackSpaceOperand(3);
+  Operand length_operand = StackSpaceOperand(2);
   Operand return_value_operand = args_from_rbp.GetArgumentOperand(
       this->is_store() ? 0 : FCA::kArgsLength - FCA::kReturnValueOffset);
   int stack_space = 0;
-  Operand* stack_space_operand = &is_construct_call_operand;
+  Operand* stack_space_operand = &length_operand;
   stack_space = argc + FCA::kArgsLength + 1;
   stack_space_operand = nullptr;
   CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, callback_arg,
@@ -5493,14 +5373,6 @@
 
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- rsp[0]                          : return address
-  //  -- rsp[8]                          : name
-  //  -- rsp[16 .. (16 + kArgsLength*8)] : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- r8                              : api_function_address
-  // -----------------------------------
-
 #if defined(__MINGW64__) || defined(_WIN64)
   Register getter_arg = r8;
   Register accessor_info_arg = rdx;
@@ -5510,9 +5382,36 @@
   Register accessor_info_arg = rsi;
   Register name_arg = rdi;
 #endif
-  Register api_function_address = ApiGetterDescriptor::function_address();
-  DCHECK(api_function_address.is(r8));
+  Register api_function_address = r8;
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
   Register scratch = rax;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
+
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
+
+  // Insert additional parameters into the stack frame above return address.
+  __ PopReturnAddressTo(scratch);
+  __ Push(receiver);
+  __ Push(FieldOperand(callback, AccessorInfo::kDataOffset));
+  __ LoadRoot(kScratchRegister, Heap::kUndefinedValueRootIndex);
+  __ Push(kScratchRegister);  // return value
+  __ Push(kScratchRegister);  // return value default
+  __ PushAddress(ExternalReference::isolate_address(isolate()));
+  __ Push(holder);
+  __ Push(Smi::FromInt(0));  // should_throw_on_error -> false
+  __ Push(FieldOperand(callback, AccessorInfo::kNameOffset));
+  __ PushReturnAddressFrom(scratch);
 
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
@@ -5539,8 +5438,11 @@
 
   // It's okay if api_function_address == getter_arg
   // but not accessor_info_arg or name_arg
-  DCHECK(!api_function_address.is(accessor_info_arg) &&
-         !api_function_address.is(name_arg));
+  DCHECK(!api_function_address.is(accessor_info_arg));
+  DCHECK(!api_function_address.is(name_arg));
+  __ movp(scratch, FieldOperand(callback, AccessorInfo::kJsGetterOffset));
+  __ movp(api_function_address,
+          FieldOperand(scratch, Foreign::kForeignAddressOffset));
 
   // +3 is to skip prolog, return address and name handle.
   Operand return_value_operand(
@@ -5550,7 +5452,6 @@
                            NULL);
 }
 
-
 #undef __
 
 }  // namespace internal
diff --git a/src/x64/codegen-x64.cc b/src/x64/codegen-x64.cc
index 33e987e..114cbdc 100644
--- a/src/x64/codegen-x64.cc
+++ b/src/x64/codegen-x64.cc
@@ -204,7 +204,7 @@
   // Allocate new backing store.
   __ bind(&new_backing_store);
   __ leap(rdi, Operand(r9, times_8, FixedArray::kHeaderSize));
-  __ Allocate(rdi, r14, r11, r15, fail, TAG_OBJECT);
+  __ Allocate(rdi, r14, r11, r15, fail, NO_ALLOCATION_FLAGS);
   // Set backing store's map
   __ LoadRoot(rdi, Heap::kFixedDoubleArrayMapRootIndex);
   __ movp(FieldOperand(r14, HeapObject::kMapOffset), rdi);
@@ -296,7 +296,7 @@
   // r8 : source FixedDoubleArray
   // r9 : number of elements
   __ leap(rdi, Operand(r9, times_pointer_size, FixedArray::kHeaderSize));
-  __ Allocate(rdi, r11, r14, r15, &gc_required, TAG_OBJECT);
+  __ Allocate(rdi, r11, r14, r15, &gc_required, NO_ALLOCATION_FLAGS);
   // r11: destination FixedArray
   __ LoadRoot(rdi, Heap::kFixedArrayMapRootIndex);
   __ movp(FieldOperand(r11, HeapObject::kMapOffset), rdi);
diff --git a/src/x64/disasm-x64.cc b/src/x64/disasm-x64.cc
index a9532dc..7126b89 100644
--- a/src/x64/disasm-x64.cc
+++ b/src/x64/disasm-x64.cc
@@ -8,6 +8,7 @@
 
 #if V8_TARGET_ARCH_X64
 
+#include "src/base/compiler-specific.h"
 #include "src/base/lazy-instance.h"
 #include "src/disasm.h"
 
@@ -359,7 +360,7 @@
   bool vex_128() {
     DCHECK(vex_byte0_ == VEX3_PREFIX || vex_byte0_ == VEX2_PREFIX);
     byte checked = vex_byte0_ == VEX3_PREFIX ? vex_byte2_ : vex_byte1_;
-    return (checked & 4) != 1;
+    return (checked & 4) == 0;
   }
 
   bool vex_none() {
@@ -479,7 +480,7 @@
   int MemoryFPUInstruction(int escape_opcode, int regop, byte* modrm_start);
   int RegisterFPUInstruction(int escape_opcode, byte modrm_byte);
   int AVXInstruction(byte* data);
-  void AppendToBuffer(const char* format, ...);
+  PRINTF_FORMAT(2, 3) void AppendToBuffer(const char* format, ...);
 
   void UnimplementedInstruction() {
     if (abort_on_unimplemented_) {
@@ -618,7 +619,7 @@
       value = 0;  // Initialize variables on all paths to satisfy the compiler.
       count = 0;
   }
-  AppendToBuffer("%" V8_PTR_PREFIX "x", value);
+  AppendToBuffer("%" PRIx64, value);
   return count;
 }
 
@@ -1999,7 +2000,7 @@
           if (rex_w()) AppendToBuffer("REX.W ");
           AppendToBuffer("%s%c", idesc.mnem, operand_size_code());
         } else {
-          AppendToBuffer("%s", idesc.mnem, operand_size_code());
+          AppendToBuffer("%s%c", idesc.mnem, operand_size_code());
         }
         data++;
         break;
@@ -2141,9 +2142,11 @@
           default:
             mnem = "???";
         }
-        AppendToBuffer(((regop <= 1) ? "%s%c " : "%s "),
-                       mnem,
-                       operand_size_code());
+        if (regop <= 1) {
+          AppendToBuffer("%s%c ", mnem, operand_size_code());
+        } else {
+          AppendToBuffer("%s ", mnem);
+        }
         data += PrintRightOperand(data);
       }
         break;
@@ -2334,9 +2337,7 @@
           default:
             UNREACHABLE();
         }
-        AppendToBuffer("test%c rax,0x%" V8_PTR_PREFIX "x",
-                       operand_size_code(),
-                       value);
+        AppendToBuffer("test%c rax,0x%" PRIx64, operand_size_code(), value);
         break;
       }
       case 0xD1:  // fall through
diff --git a/src/x64/interface-descriptors-x64.cc b/src/x64/interface-descriptors-x64.cc
index b10b522..e1e7f9c 100644
--- a/src/x64/interface-descriptors-x64.cc
+++ b/src/x64/interface-descriptors-x64.cc
@@ -46,16 +46,11 @@
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return rax; }
 
 
-const Register InstanceOfDescriptor::LeftRegister() { return rdx; }
-const Register InstanceOfDescriptor::RightRegister() { return rax; }
-
-
 const Register StringCompareDescriptor::LeftRegister() { return rdx; }
 const Register StringCompareDescriptor::RightRegister() { return rax; }
 
-
-const Register ApiGetterDescriptor::function_address() { return r8; }
-
+const Register ApiGetterDescriptor::HolderRegister() { return rcx; }
+const Register ApiGetterDescriptor::CallbackRegister() { return rbx; }
 
 const Register MathPowTaggedDescriptor::exponent() { return rdx; }
 
@@ -68,6 +63,8 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return rax; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return rbx; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return rax; }
+const Register HasPropertyDescriptor::KeyRegister() { return rbx; }
 
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -243,13 +240,16 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {rax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  // register state
+  // rax -- number of arguments
+  // rdi -- function
+  // rbx -- allocation site with elements kind
+  Register registers[] = {rdi, rbx, rax};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
@@ -313,6 +313,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {rax};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -373,9 +378,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister,
-      kInterpreterDispatchTableRegister};
+      kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+      kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -410,6 +414,16 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      rax,  // the value to pass to the generator
+      rbx,  // the JSGeneratorObject to resume
+      rdx   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc
index 566091d..2efb529 100644
--- a/src/x64/macro-assembler-x64.cc
+++ b/src/x64/macro-assembler-x64.cc
@@ -489,7 +489,7 @@
   // easier.
   DCHECK(js_function.is(rdi));
   DCHECK(code_entry.is(rcx));
-  DCHECK(scratch.is(rax));
+  DCHECK(scratch.is(r15));
 
   // Since a code entry (value) is always in old space, we don't need to update
   // remembered set. If incremental marking is off, there is nothing for us to
@@ -537,13 +537,13 @@
     DCHECK(arg_reg_2.is(rdx) && arg_reg_3.is(r8));
 
     movp(arg_reg_1, js_function);  // rcx gets rdi.
-    movp(arg_reg_2, dst);          // rdx gets rax.
+    movp(arg_reg_2, dst);          // rdx gets r15.
   } else {
     // AMD64 calling convention.
     DCHECK(arg_reg_1.is(rdi) && arg_reg_2.is(rsi) && arg_reg_3.is(rdx));
 
     // rdi is already loaded with js_function.
-    movp(arg_reg_2, dst);  // rsi gets rax.
+    movp(arg_reg_2, dst);  // rsi gets r15.
   }
   Move(arg_reg_3, ExternalReference::isolate_address(isolate()));
 
@@ -1116,15 +1116,6 @@
   }
 }
 
-void MacroAssembler::Set(Register dst, int64_t x, RelocInfo::Mode rmode) {
-  if (rmode == RelocInfo::WASM_MEMORY_REFERENCE) {
-    DCHECK(x != 0);
-    movq(dst, x, rmode);
-  } else {
-    DCHECK(RelocInfo::IsNone(rmode));
-  }
-}
-
 void MacroAssembler::Set(const Operand& dst, intptr_t x) {
   if (kPointerSize == kInt64Size) {
     if (is_int32(x)) {
@@ -3970,6 +3961,16 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    testb(object, Immediate(kSmiTagMask));
+    Check(not_equal, kOperandIsASmiAndNotAGeneratorObject);
+    Push(object);
+    CmpObjectType(object, JS_GENERATOR_OBJECT_TYPE, object);
+    Pop(object);
+    Check(equal, kOperandIsNotAGeneratorObject);
+  }
+}
 
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
@@ -4829,7 +4830,7 @@
     Label aligned;
     testl(result, Immediate(kDoubleAlignmentMask));
     j(zero, &aligned, Label::kNear);
-    if ((flags & PRETENURE) != 0) {
+    if (((flags & ALLOCATION_FOLDED) == 0) && ((flags & PRETENURE) != 0)) {
       ExternalReference allocation_limit =
           AllocationUtils::GetAllocationLimitReference(isolate(), flags);
       cmpp(result, ExternalOperand(allocation_limit));
@@ -4872,6 +4873,7 @@
                               AllocationFlags flags) {
   DCHECK((flags & (RESULT_CONTAINS_TOP | SIZE_IN_WORDS)) == 0);
   DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -4905,23 +4907,19 @@
     movp(top_reg, result);
   }
   addp(top_reg, Immediate(object_size));
-  j(carry, gc_required);
   Operand limit_operand = ExternalOperand(allocation_limit);
   cmpp(top_reg, limit_operand);
   j(above, gc_required);
 
-  // Update allocation top.
-  UpdateAllocationTopHelper(top_reg, scratch, flags);
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    UpdateAllocationTopHelper(top_reg, scratch, flags);
+  }
 
-  bool tag_result = (flags & TAG_OBJECT) != 0;
   if (top_reg.is(result)) {
-    if (tag_result) {
-      subp(result, Immediate(object_size - kHeapObjectTag));
-    } else {
-      subp(result, Immediate(object_size));
-    }
-  } else if (tag_result) {
-    // Tag the result if requested.
+    subp(result, Immediate(object_size - kHeapObjectTag));
+  } else {
+    // Tag the result.
     DCHECK(kHeapObjectTag == 1);
     incp(result);
   }
@@ -4937,6 +4935,8 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK((flags & SIZE_IN_WORDS) == 0);
+  DCHECK((flags & ALLOCATION_FOLDING_DOMINATOR) == 0);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   leap(result_end, Operand(element_count, element_size, header_size));
   Allocate(result_end, result, result_end, scratch, gc_required, flags);
 }
@@ -4949,6 +4949,7 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK((flags & SIZE_IN_WORDS) == 0);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -4971,34 +4972,66 @@
     MakeSureDoubleAlignedHelper(result, scratch, gc_required, flags);
   }
 
-  // Calculate new top and bail out if new space is exhausted.
   ExternalReference allocation_limit =
       AllocationUtils::GetAllocationLimitReference(isolate(), flags);
   if (!object_size.is(result_end)) {
     movp(result_end, object_size);
   }
   addp(result_end, result);
-  j(carry, gc_required);
   Operand limit_operand = ExternalOperand(allocation_limit);
   cmpp(result_end, limit_operand);
   j(above, gc_required);
 
-  // Update allocation top.
-  UpdateAllocationTopHelper(result_end, scratch, flags);
-
-  // Tag the result if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    addp(result, Immediate(kHeapObjectTag));
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    UpdateAllocationTopHelper(result_end, scratch, flags);
   }
+
+  // Tag the result.
+  addp(result, Immediate(kHeapObjectTag));
 }
 
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register result_end, AllocationFlags flags) {
+  DCHECK(!result.is(result_end));
+  // Load address of new object into result.
+  LoadAllocationTopHelper(result, no_reg, flags);
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    MakeSureDoubleAlignedHelper(result, no_reg, NULL, flags);
+  }
+
+  leap(result_end, Operand(result, object_size));
+
+  UpdateAllocationTopHelper(result_end, no_reg, flags);
+
+  addp(result, Immediate(kHeapObjectTag));
+}
+
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, AllocationFlags flags) {
+  DCHECK(!result.is(result_end));
+  // Load address of new object into result.
+  LoadAllocationTopHelper(result, no_reg, flags);
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    MakeSureDoubleAlignedHelper(result, no_reg, NULL, flags);
+  }
+
+  leap(result_end, Operand(result, object_size, times_1, 0));
+
+  UpdateAllocationTopHelper(result_end, no_reg, flags);
+
+  addp(result, Immediate(kHeapObjectTag));
+}
 
 void MacroAssembler::AllocateHeapNumber(Register result,
                                         Register scratch,
                                         Label* gc_required,
                                         MutableMode mode) {
   // Allocate heap number in new space.
-  Allocate(HeapNumber::kSize, result, scratch, no_reg, gc_required, TAG_OBJECT);
+  Allocate(HeapNumber::kSize, result, scratch, no_reg, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   Heap::RootListIndex map_index = mode == MUTABLE
       ? Heap::kMutableHeapNumberMapRootIndex
@@ -5030,14 +5063,8 @@
   }
 
   // Allocate two byte string in new space.
-  Allocate(SeqTwoByteString::kHeaderSize,
-           times_1,
-           scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(SeqTwoByteString::kHeaderSize, times_1, scratch1, result, scratch2,
+           scratch3, gc_required, NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   LoadRoot(kScratchRegister, Heap::kStringMapRootIndex);
@@ -5066,14 +5093,8 @@
   }
 
   // Allocate one-byte string in new space.
-  Allocate(SeqOneByteString::kHeaderSize,
-           times_1,
-           scratch1,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(SeqOneByteString::kHeaderSize, times_1, scratch1, result, scratch2,
+           scratch3, gc_required, NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   LoadRoot(kScratchRegister, Heap::kOneByteStringMapRootIndex);
@@ -5091,7 +5112,7 @@
                                         Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   LoadRoot(kScratchRegister, Heap::kConsStringMapRootIndex);
@@ -5103,12 +5124,8 @@
                                                Register scratch1,
                                                Register scratch2,
                                                Label* gc_required) {
-  Allocate(ConsString::kSize,
-           result,
-           scratch1,
-           scratch2,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   LoadRoot(kScratchRegister, Heap::kConsOneByteStringMapRootIndex);
@@ -5122,7 +5139,7 @@
                                           Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   LoadRoot(kScratchRegister, Heap::kSlicedStringMapRootIndex);
@@ -5136,7 +5153,7 @@
                                                  Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   LoadRoot(kScratchRegister, Heap::kSlicedOneByteStringMapRootIndex);
@@ -5152,7 +5169,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch, no_reg, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch, no_reg, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch);
diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h
index af3dd03..013d0f1 100644
--- a/src/x64/macro-assembler-x64.h
+++ b/src/x64/macro-assembler-x64.h
@@ -21,8 +21,8 @@
 const Register kReturnRegister2 = {Register::kCode_r8};
 const Register kJSFunctionRegister = {Register::kCode_rdi};
 const Register kContextRegister = {Register::kCode_rsi};
+const Register kAllocateSizeRegister = {Register::kCode_rdx};
 const Register kInterpreterAccumulatorRegister = {Register::kCode_rax};
-const Register kInterpreterRegisterFileRegister = {Register::kCode_r11};
 const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_r12};
 const Register kInterpreterBytecodeArrayRegister = {Register::kCode_r14};
 const Register kInterpreterDispatchTableRegister = {Register::kCode_r15};
@@ -818,7 +818,6 @@
 
   // Load a register with a long value as efficiently as possible.
   void Set(Register dst, int64_t x);
-  void Set(Register dst, int64_t x, RelocInfo::Mode rmode);
   void Set(const Operand& dst, intptr_t x);
 
   void Cvtss2sd(XMMRegister dst, XMMRegister src);
@@ -1224,6 +1223,10 @@
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
   void AssertReceiver(Register object);
 
@@ -1304,6 +1307,15 @@
                 Label* gc_required,
                 AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(int object_size, Register result, Register result_end,
+                    AllocationFlags flags);
+
+  void FastAllocate(Register object_size, Register result, Register result_end,
+                    AllocationFlags flags);
+
   // Allocate a heap number in new space with undefined value. Returns
   // tagged pointer in result register, or jumps to gc_required if new
   // space is full.
diff --git a/src/x87/assembler-x87-inl.h b/src/x87/assembler-x87-inl.h
index 802c80f..ba2a864 100644
--- a/src/x87/assembler-x87-inl.h
+++ b/src/x87/assembler-x87-inl.h
@@ -81,11 +81,6 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
-Address RelocInfo::wasm_memory_reference() {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  return Memory::Address_at(pc_);
-}
-
 Address RelocInfo::target_address_address() {
   DCHECK(IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)
                               || rmode_ == EMBEDDED_OBJECT
@@ -120,21 +115,6 @@
   }
 }
 
-void RelocInfo::update_wasm_memory_reference(
-    Address old_base, Address new_base, size_t old_size, size_t new_size,
-    ICacheFlushMode icache_flush_mode) {
-  DCHECK(IsWasmMemoryReference(rmode_));
-  DCHECK(old_base <= wasm_memory_reference() &&
-         wasm_memory_reference() < old_base + old_size);
-  Address updated_reference = new_base + (wasm_memory_reference() - old_base);
-  DCHECK(new_base <= updated_reference &&
-         updated_reference < new_base + new_size);
-  Memory::Address_at(pc_) = updated_reference;
-  if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
-    Assembler::FlushICache(isolate_, pc_, sizeof(int32_t));
-  }
-}
-
 Object* RelocInfo::target_object() {
   DCHECK(IsCodeTarget(rmode_) || rmode_ == EMBEDDED_OBJECT);
   return Memory::Object_at(pc_);
@@ -284,7 +264,7 @@
   }
 }
 
-
+template <typename ObjectVisitor>
 void RelocInfo::Visit(Isolate* isolate, ObjectVisitor* visitor) {
   RelocInfo::Mode mode = rmode();
   if (mode == RelocInfo::EMBEDDED_OBJECT) {
diff --git a/src/x87/assembler-x87.cc b/src/x87/assembler-x87.cc
index e74d770..5cc783c 100644
--- a/src/x87/assembler-x87.cc
+++ b/src/x87/assembler-x87.cc
@@ -101,6 +101,42 @@
   return false;
 }
 
+Address RelocInfo::wasm_memory_reference() {
+  DCHECK(IsWasmMemoryReference(rmode_));
+  return Memory::Address_at(pc_);
+}
+
+uint32_t RelocInfo::wasm_memory_size_reference() {
+  DCHECK(IsWasmMemorySizeReference(rmode_));
+  return Memory::uint32_at(pc_);
+}
+
+void RelocInfo::update_wasm_memory_reference(
+    Address old_base, Address new_base, uint32_t old_size, uint32_t new_size,
+    ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmMemoryReference(rmode_) || IsWasmMemorySizeReference(rmode_));
+  if (IsWasmMemoryReference(rmode_)) {
+    Address updated_reference;
+    DCHECK(old_base <= wasm_memory_reference() &&
+           wasm_memory_reference() < old_base + old_size);
+    updated_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_base <= updated_reference &&
+           updated_reference < new_base + new_size);
+    Memory::Address_at(pc_) = updated_reference;
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    Memory::uint32_at(pc_) = updated_size_reference;
+  } else {
+    UNREACHABLE();
+  }
+  if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
+    Assembler::FlushICache(isolate_, pc_, sizeof(int32_t));
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Implementation of Operand
@@ -552,6 +588,18 @@
   emit_operand(dst, src);
 }
 
+void Assembler::xchg_b(Register reg, const Operand& op) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x86);
+  emit_operand(reg, op);
+}
+
+void Assembler::xchg_w(Register reg, const Operand& op) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x66);
+  EMIT(0x87);
+  emit_operand(reg, op);
+}
 
 void Assembler::adc(Register dst, int32_t imm32) {
   EnsureSpace ensure_space(this);
diff --git a/src/x87/assembler-x87.h b/src/x87/assembler-x87.h
index 96eced9..eaf28e9 100644
--- a/src/x87/assembler-x87.h
+++ b/src/x87/assembler-x87.h
@@ -74,6 +74,8 @@
   V(stX_6)                  \
   V(stX_7)
 
+#define FLOAT_REGISTERS DOUBLE_REGISTERS
+
 #define ALLOCATABLE_DOUBLE_REGISTERS(V) \
   V(stX_0)                              \
   V(stX_1)                              \
@@ -145,8 +147,7 @@
 #undef DECLARE_REGISTER
 const Register no_reg = {Register::kCode_no_reg};
 
-
-struct DoubleRegister {
+struct X87Register {
   enum Code {
 #define REGISTER_CODE(R) kCode_##R,
     DOUBLE_REGISTERS(REGISTER_CODE)
@@ -158,8 +159,8 @@
   static const int kMaxNumRegisters = Code::kAfterLast;
   static const int kMaxNumAllocatableRegisters = 6;
 
-  static DoubleRegister from_code(int code) {
-    DoubleRegister result = {code};
+  static X87Register from_code(int code) {
+    X87Register result = {code};
     return result;
   }
 
@@ -171,24 +172,26 @@
     return reg_code;
   }
 
-  bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
+  bool is(X87Register reg) const { return reg_code == reg.reg_code; }
 
   const char* ToString();
 
   int reg_code;
 };
 
+typedef X87Register FloatRegister;
+
+typedef X87Register DoubleRegister;
+
+// TODO(x87) Define SIMD registers.
+typedef X87Register Simd128Register;
+
 #define DECLARE_REGISTER(R) \
   const DoubleRegister R = {DoubleRegister::kCode_##R};
 DOUBLE_REGISTERS(DECLARE_REGISTER)
 #undef DECLARE_REGISTER
 const DoubleRegister no_double_reg = {DoubleRegister::kCode_no_reg};
 
-typedef DoubleRegister X87Register;
-
-// TODO(x87) Define SIMD registers.
-typedef DoubleRegister Simd128Register;
-
 enum Condition {
   // any value < 0 is considered no_condition
   no_condition  = -1,
@@ -648,6 +651,8 @@
   // Exchange
   void xchg(Register dst, Register src);
   void xchg(Register dst, const Operand& src);
+  void xchg_b(Register reg, const Operand& op);
+  void xchg_w(Register reg, const Operand& op);
 
   // Arithmetics
   void adc(Register dst, int32_t imm32);
@@ -958,7 +963,7 @@
 
   // Record a deoptimization reason that can be used by a log or cpu profiler.
   // Use --trace-deopt to enable.
-  void RecordDeoptReason(const int reason, int raw_position);
+  void RecordDeoptReason(const int reason, int raw_position, int id);
 
   // Writes a single byte or word of data in the code stream.  Used for
   // inline tables, e.g., jump-tables.
diff --git a/src/x87/builtins-x87.cc b/src/x87/builtins-x87.cc
index 9e13172..7018802 100644
--- a/src/x87/builtins-x87.cc
+++ b/src/x87/builtins-x87.cc
@@ -186,16 +186,9 @@
     __ j(greater_equal, &loop);
 
     // Call the function.
-    if (is_api_function) {
-      __ mov(esi, FieldOperand(edi, JSFunction::kContextOffset));
-      Handle<Code> code =
-          masm->isolate()->builtins()->HandleApiCallConstruct();
-      __ call(code, RelocInfo::CODE_TARGET);
-    } else {
-      ParameterCount actual(eax);
-      __ InvokeFunction(edi, edx, actual, CALL_FUNCTION,
-                        CheckDebugStepCallWrapper());
-    }
+    ParameterCount actual(eax);
+    __ InvokeFunction(edi, edx, actual, CALL_FUNCTION,
+                      CheckDebugStepCallWrapper());
 
     // Store offset of return address for deoptimizer.
     if (create_implicit_receiver && !is_api_function) {
@@ -392,6 +385,141 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+// static
+void Builtins::Generate_ResumeGeneratorTrampoline(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- eax    : the value to pass to the generator
+  //  -- ebx    : the JSGeneratorObject to resume
+  //  -- edx    : the resume mode (tagged)
+  //  -- esp[0] : return address
+  // -----------------------------------
+  __ AssertGeneratorObject(ebx);
+
+  // Store input value into generator object.
+  __ mov(FieldOperand(ebx, JSGeneratorObject::kInputOffset), eax);
+  __ RecordWriteField(ebx, JSGeneratorObject::kInputOffset, eax, ecx,
+                      kDontSaveFPRegs);
+
+  // Store resume mode into generator object.
+  __ mov(FieldOperand(ebx, JSGeneratorObject::kResumeModeOffset), edx);
+
+  // Load suspended function and context.
+  __ mov(esi, FieldOperand(ebx, JSGeneratorObject::kContextOffset));
+  __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
+
+  // Flood function if we are stepping.
+  Label skip_flooding;
+  ExternalReference step_in_enabled =
+      ExternalReference::debug_step_in_enabled_address(masm->isolate());
+  __ cmpb(Operand::StaticVariable(step_in_enabled), Immediate(0));
+  __ j(equal, &skip_flooding);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(ebx);
+    __ Push(edx);
+    __ Push(edi);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(edx);
+    __ Pop(ebx);
+    __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ bind(&skip_flooding);
+
+  // Pop return address.
+  __ PopReturnAddressTo(eax);
+
+  // Push receiver.
+  __ Push(FieldOperand(ebx, JSGeneratorObject::kReceiverOffset));
+
+  // ----------- S t a t e -------------
+  //  -- eax    : return address
+  //  -- ebx    : the JSGeneratorObject to resume
+  //  -- edx    : the resume mode (tagged)
+  //  -- edi    : generator function
+  //  -- esi    : generator context
+  //  -- esp[0] : generator receiver
+  // -----------------------------------
+
+  // Push holes for arguments to generator function. Since the parser forced
+  // context allocation for any variables in generators, the actual argument
+  // values have already been copied into the context and these dummy values
+  // will never be used.
+  __ mov(ecx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(ecx,
+         FieldOperand(ecx, SharedFunctionInfo::kFormalParameterCountOffset));
+  {
+    Label done_loop, loop;
+    __ bind(&loop);
+    __ sub(ecx, Immediate(Smi::FromInt(1)));
+    __ j(carry, &done_loop, Label::kNear);
+    __ PushRoot(Heap::kTheHoleValueRootIndex);
+    __ jmp(&loop);
+    __ bind(&done_loop);
+  }
+
+  // Dispatch on the kind of generator object.
+  Label old_generator;
+  __ mov(ecx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(ecx, FieldOperand(ecx, SharedFunctionInfo::kFunctionDataOffset));
+  __ CmpObjectType(ecx, BYTECODE_ARRAY_TYPE, ecx);
+  __ j(not_equal, &old_generator);
+
+  // New-style (ignition/turbofan) generator object
+  {
+    __ PushReturnAddressFrom(eax);
+    __ mov(eax, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+    __ mov(eax,
+           FieldOperand(ecx, SharedFunctionInfo::kFormalParameterCountOffset));
+    // We abuse new.target both to indicate that this is a resume call and to
+    // pass in the generator object.  In ordinary calls, new.target is always
+    // undefined because generator functions are non-constructable.
+    __ mov(edx, ebx);
+    __ jmp(FieldOperand(edi, JSFunction::kCodeEntryOffset));
+  }
+
+  // Old-style (full-codegen) generator object
+  __ bind(&old_generator);
+  {
+    // Enter a new JavaScript frame, and initialize its slots as they were when
+    // the generator was suspended.
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ PushReturnAddressFrom(eax);  // Return address.
+    __ Push(ebp);                   // Caller's frame pointer.
+    __ Move(ebp, esp);
+    __ Push(esi);  // Callee's context.
+    __ Push(edi);  // Callee's JS Function.
+
+    // Restore the operand stack.
+    __ mov(eax, FieldOperand(ebx, JSGeneratorObject::kOperandStackOffset));
+    {
+      Label done_loop, loop;
+      __ Move(ecx, Smi::FromInt(0));
+      __ bind(&loop);
+      __ cmp(ecx, FieldOperand(eax, FixedArray::kLengthOffset));
+      __ j(equal, &done_loop, Label::kNear);
+      __ Push(FieldOperand(eax, ecx, times_half_pointer_size,
+                           FixedArray::kHeaderSize));
+      __ add(ecx, Immediate(Smi::FromInt(1)));
+      __ jmp(&loop);
+      __ bind(&done_loop);
+    }
+
+    // Reset operand stack so we don't leak.
+    __ mov(FieldOperand(ebx, JSGeneratorObject::kOperandStackOffset),
+           Immediate(masm->isolate()->factory()->empty_fixed_array()));
+
+    // Resume the generator function at the continuation.
+    __ mov(edx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+    __ mov(edx, FieldOperand(edx, SharedFunctionInfo::kCodeOffset));
+    __ mov(ecx, FieldOperand(ebx, JSGeneratorObject::kContinuationOffset));
+    __ SmiUntag(ecx);
+    __ lea(edx, FieldOperand(edx, ecx, times_1, Code::kHeaderSize));
+    __ mov(FieldOperand(ebx, JSGeneratorObject::kContinuationOffset),
+           Immediate(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting)));
+    __ mov(eax, ebx);  // Continuation expects generator object in eax.
+    __ jmp(edx);
+  }
+}
 
 // Generate code for entering a JS function with the interpreter.
 // On entry to the function the receiver and arguments have been pushed on the
@@ -408,6 +536,8 @@
 // The function builds an interpreter frame.  See InterpreterFrameConstants in
 // frames.h for its layout.
 void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) {
+  ProfileEntryHookStub::MaybeCallEntryHook(masm);
+
   // Open a frame scope to indicate that there is a frame on the stack.  The
   // MANUAL indicates that the scope shouldn't actually generate code to set up
   // the frame (that is done below).
@@ -418,10 +548,9 @@
   __ push(edi);  // Callee's JS function.
   __ push(edx);  // Callee's new target.
 
-  // Get the bytecode array from the function object and load the pointer to the
-  // first entry into edi (InterpreterBytecodeRegister).
+  // Get the bytecode array from the function object (or from the DebugInfo if
+  // it is present) and load it into kInterpreterBytecodeArrayRegister.
   __ mov(eax, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
-
   Label load_debug_bytecode_array, bytecode_array_loaded;
   __ cmp(FieldOperand(eax, SharedFunctionInfo::kDebugInfoOffset),
          Immediate(DebugInfo::uninitialized()));
@@ -430,8 +559,12 @@
          FieldOperand(eax, SharedFunctionInfo::kFunctionDataOffset));
   __ bind(&bytecode_array_loaded);
 
+  // Check function data field is actually a BytecodeArray object.
+  Label bytecode_array_not_present;
+  __ CompareRoot(kInterpreterBytecodeArrayRegister,
+                 Heap::kUndefinedValueRootIndex);
+  __ j(equal, &bytecode_array_not_present);
   if (FLAG_debug_code) {
-    // Check function data field is actually a BytecodeArray object.
     __ AssertNotSmi(kInterpreterBytecodeArrayRegister);
     __ CmpObjectType(kInterpreterBytecodeArrayRegister, BYTECODE_ARRAY_TYPE,
                      eax);
@@ -440,8 +573,8 @@
 
   // Push bytecode array.
   __ push(kInterpreterBytecodeArrayRegister);
-  // Push zero for bytecode array offset.
-  __ push(Immediate(0));
+  // Push Smi tagged initial bytecode array offset.
+  __ push(Immediate(Smi::FromInt(BytecodeArray::kHeaderSize - kHeapObjectTag)));
 
   // Allocate the local and temporary register file on the stack.
   {
@@ -474,41 +607,36 @@
     __ j(greater_equal, &loop_header);
   }
 
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's prologue:
-  //  - Call ProfileEntryHookStub when isolate has a function_entry_hook.
-  //  - Code aging of the BytecodeArray object.
-
-  // Load accumulator, register file, bytecode offset, dispatch table into
-  // registers.
+  // Load accumulator, bytecode offset and dispatch table into registers.
   __ LoadRoot(kInterpreterAccumulatorRegister, Heap::kUndefinedValueRootIndex);
-  __ mov(kInterpreterRegisterFileRegister, ebp);
-  __ add(kInterpreterRegisterFileRegister,
-         Immediate(InterpreterFrameConstants::kRegisterFilePointerFromFp));
   __ mov(kInterpreterBytecodeOffsetRegister,
          Immediate(BytecodeArray::kHeaderSize - kHeapObjectTag));
-  __ mov(ebx, Immediate(ExternalReference::interpreter_dispatch_table_address(
-                  masm->isolate())));
-
-  // Push dispatch table as a stack located parameter to the bytecode handler.
-  DCHECK_EQ(-1, kInterpreterDispatchTableSpillSlot);
-  __ push(ebx);
+  __ mov(kInterpreterDispatchTableRegister,
+         Immediate(ExternalReference::interpreter_dispatch_table_address(
+             masm->isolate())));
 
   // Dispatch to the first bytecode handler for the function.
-  __ movzx_b(eax, Operand(kInterpreterBytecodeArrayRegister,
+  __ movzx_b(ebx, Operand(kInterpreterBytecodeArrayRegister,
                           kInterpreterBytecodeOffsetRegister, times_1, 0));
-  __ mov(ebx, Operand(ebx, eax, times_pointer_size, 0));
-  // Restore undefined_value in accumulator (eax)
-  // TODO(rmcilroy): Remove this once we move the dispatch table back into a
-  // register.
-  __ mov(eax, Immediate(masm->isolate()->factory()->undefined_value()));
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ add(ebx, Immediate(Code::kHeaderSize - kHeapObjectTag));
+  __ mov(ebx, Operand(kInterpreterDispatchTableRegister, ebx,
+                      times_pointer_size, 0));
   __ call(ebx);
+  masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
-  // Even though the first bytecode handler was called, we will never return.
-  __ Abort(kUnexpectedReturnFromBytecodeHandler);
+  // The return value is in eax.
+
+  // Get the arguments + reciever count.
+  __ mov(ebx, Operand(ebp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ mov(ebx, FieldOperand(ebx, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ leave();
+
+  // Drop receiver + arguments and return.
+  __ pop(ecx);
+  __ add(esp, ebx);
+  __ push(ecx);
+  __ ret(0);
 
   // Load debug copy of the bytecode array.
   __ bind(&load_debug_bytecode_array);
@@ -517,31 +645,23 @@
   __ mov(kInterpreterBytecodeArrayRegister,
          FieldOperand(debug_info, DebugInfo::kAbstractCodeIndex));
   __ jmp(&bytecode_array_loaded);
+
+  // If the bytecode array is no longer present, then the underlying function
+  // has been switched to a different kind of code and we heal the closure by
+  // switching the code entry field over to the new code object as well.
+  __ bind(&bytecode_array_not_present);
+  __ pop(edx);  // Callee's new target.
+  __ pop(edi);  // Callee's JS function.
+  __ pop(esi);  // Callee's context.
+  __ leave();   // Leave the frame so we can tail call.
+  __ mov(ecx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(ecx, FieldOperand(ecx, SharedFunctionInfo::kCodeOffset));
+  __ lea(ecx, FieldOperand(ecx, Code::kHeaderSize));
+  __ mov(FieldOperand(edi, JSFunction::kCodeEntryOffset), ecx);
+  __ RecordWriteCodeEntryField(edi, ecx, ebx);
+  __ jmp(ecx);
 }
 
-
-void Builtins::Generate_InterpreterExitTrampoline(MacroAssembler* masm) {
-  // TODO(rmcilroy): List of things not currently dealt with here but done in
-  // fullcodegen's EmitReturnSequence.
-  //  - Supporting FLAG_trace for Runtime::TraceExit.
-  //  - Support profiler (specifically decrementing profiling_counter
-  //    appropriately and calling out to HandleInterrupts if necessary).
-
-  // The return value is in accumulator, which is already in rax.
-
-  // Leave the frame (also dropping the register file).
-  __ leave();
-
-  // Drop receiver + arguments and return.
-  __ mov(ebx, FieldOperand(kInterpreterBytecodeArrayRegister,
-                           BytecodeArray::kParameterSizeOffset));
-  __ pop(ecx);
-  __ add(esp, ebx);
-  __ push(ecx);
-  __ ret(0);
-}
-
-
 static void Generate_InterpreterPushArgs(MacroAssembler* masm,
                                          Register array_limit) {
   // ----------- S t a t e -------------
@@ -559,7 +679,6 @@
   __ j(greater, &loop_header, Label::kNear);
 }
 
-
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -628,17 +747,26 @@
   __ Jump(masm->isolate()->builtins()->Construct(), RelocInfo::CODE_TARGET);
 }
 
+void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
+  // Set the return address to the correct point in the interpreter entry
+  // trampoline.
+  Smi* interpreter_entry_return_pc_offset(
+      masm->isolate()->heap()->interpreter_entry_return_pc_offset());
+  DCHECK_NE(interpreter_entry_return_pc_offset, Smi::FromInt(0));
+  __ LoadHeapObject(ebx,
+                    masm->isolate()->builtins()->InterpreterEntryTrampoline());
+  __ add(ebx, Immediate(interpreter_entry_return_pc_offset->value() +
+                        Code::kHeaderSize - kHeapObjectTag));
+  __ push(ebx);
 
-static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) {
-  // Initialize register file register.
-  __ mov(kInterpreterRegisterFileRegister, ebp);
-  __ add(kInterpreterRegisterFileRegister,
-         Immediate(InterpreterFrameConstants::kRegisterFilePointerFromFp));
+  // Initialize the dispatch table register.
+  __ mov(kInterpreterDispatchTableRegister,
+         Immediate(ExternalReference::interpreter_dispatch_table_address(
+             masm->isolate())));
 
   // Get the bytecode array pointer from the frame.
   __ mov(kInterpreterBytecodeArrayRegister,
-         Operand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer));
+         Operand(ebp, InterpreterFrameConstants::kBytecodeArrayFromFp));
 
   if (FLAG_debug_code) {
     // Check function data field is actually a BytecodeArray object.
@@ -649,92 +777,173 @@
   }
 
   // Get the target bytecode offset from the frame.
-  __ mov(
-      kInterpreterBytecodeOffsetRegister,
-      Operand(kInterpreterRegisterFileRegister,
-              InterpreterFrameConstants::kBytecodeOffsetFromRegisterPointer));
+  __ mov(kInterpreterBytecodeOffsetRegister,
+         Operand(ebp, InterpreterFrameConstants::kBytecodeOffsetFromFp));
   __ SmiUntag(kInterpreterBytecodeOffsetRegister);
 
-  // Push dispatch table as a stack located parameter to the bytecode handler.
-  __ mov(ebx, Immediate(ExternalReference::interpreter_dispatch_table_address(
-                  masm->isolate())));
-  DCHECK_EQ(-1, kInterpreterDispatchTableSpillSlot);
-  __ Pop(esi);
-  __ Push(ebx);
-  __ Push(esi);
-
   // Dispatch to the target bytecode.
-  __ movzx_b(esi, Operand(kInterpreterBytecodeArrayRegister,
+  __ movzx_b(ebx, Operand(kInterpreterBytecodeArrayRegister,
                           kInterpreterBytecodeOffsetRegister, times_1, 0));
-  __ mov(ebx, Operand(ebx, esi, times_pointer_size, 0));
-
-  // Get the context from the frame.
-  __ mov(kContextRegister,
-         Operand(kInterpreterRegisterFileRegister,
-                 InterpreterFrameConstants::kContextFromRegisterPointer));
-
-  // TODO(rmcilroy): Make dispatch table point to code entrys to avoid untagging
-  // and header removal.
-  __ add(ebx, Immediate(Code::kHeaderSize - kHeapObjectTag));
+  __ mov(ebx, Operand(kInterpreterDispatchTableRegister, ebx,
+                      times_pointer_size, 0));
   __ jmp(ebx);
 }
 
-
-static void Generate_InterpreterNotifyDeoptimizedHelper(
-    MacroAssembler* masm, Deoptimizer::BailoutType type) {
-  // Enter an internal frame.
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-
-    // Pass the deoptimization type to the runtime system.
-    __ Push(Smi::FromInt(static_cast<int>(type)));
-    __ CallRuntime(Runtime::kNotifyDeoptimized);
-    // Tear down internal frame.
-  }
-
-  // Drop state (we don't use these for interpreter deopts) and and pop the
-  // accumulator value into the accumulator register and push PC at top
-  // of stack (to simulate initial call to bytecode handler in interpreter entry
-  // trampoline).
-  __ Pop(ebx);
-  __ Drop(1);
-  __ Pop(kInterpreterAccumulatorRegister);
-  __ Push(ebx);
-
-  // Enter the bytecode dispatch.
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
-void Builtins::Generate_InterpreterNotifyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::EAGER);
-}
-
-
-void Builtins::Generate_InterpreterNotifySoftDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::SOFT);
-}
-
-
-void Builtins::Generate_InterpreterNotifyLazyDeoptimized(MacroAssembler* masm) {
-  Generate_InterpreterNotifyDeoptimizedHelper(masm, Deoptimizer::LAZY);
-}
-
-void Builtins::Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm) {
-  // Set the address of the interpreter entry trampoline as a return address.
-  // This simulates the initial call to bytecode handlers in interpreter entry
-  // trampoline. The return will never actually be taken, but our stack walker
-  // uses this address to determine whether a frame is interpreted.
-  __ Push(masm->isolate()->builtins()->InterpreterEntryTrampoline());
-
-  Generate_EnterBytecodeDispatch(masm);
-}
-
-
 void Builtins::Generate_CompileLazy(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- eax : argument count (preserved for callee)
+  //  -- edx : new target (preserved for callee)
+  //  -- edi : target function (preserved for callee)
+  // -----------------------------------
+  // First lookup code, maybe we don't need to compile!
+  Label gotta_call_runtime, gotta_call_runtime_no_stack;
+  Label maybe_call_runtime;
+  Label try_shared;
+  Label loop_top, loop_bottom;
+
+  Register closure = edi;
+  Register new_target = edx;
+  Register argument_count = eax;
+
+  __ push(argument_count);
+  __ push(new_target);
+  __ push(closure);
+
+  Register map = argument_count;
+  Register index = ebx;
+  __ mov(map, FieldOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(map, FieldOperand(map, SharedFunctionInfo::kOptimizedCodeMapOffset));
+  __ mov(index, FieldOperand(map, FixedArray::kLengthOffset));
+  __ cmp(index, Immediate(Smi::FromInt(2)));
+  __ j(less, &gotta_call_runtime);
+
+  // Find literals.
+  // edx : native context
+  // ebx : length / index
+  // eax : optimized code map
+  // stack[0] : new target
+  // stack[4] : closure
+  Register native_context = edx;
+  __ mov(native_context, NativeContextOperand());
+
+  __ bind(&loop_top);
+  Register temp = edi;
+
+  // Does the native context match?
+  __ mov(temp, FieldOperand(map, index, times_half_pointer_size,
+                            SharedFunctionInfo::kOffsetToPreviousContext));
+  __ mov(temp, FieldOperand(temp, WeakCell::kValueOffset));
+  __ cmp(temp, native_context);
+  __ j(not_equal, &loop_bottom);
+  // OSR id set to none?
+  __ mov(temp, FieldOperand(map, index, times_half_pointer_size,
+                            SharedFunctionInfo::kOffsetToPreviousOsrAstId));
+  const int bailout_id = BailoutId::None().ToInt();
+  __ cmp(temp, Immediate(Smi::FromInt(bailout_id)));
+  __ j(not_equal, &loop_bottom);
+  // Literals available?
+  __ mov(temp, FieldOperand(map, index, times_half_pointer_size,
+                            SharedFunctionInfo::kOffsetToPreviousLiterals));
+  __ mov(temp, FieldOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp, &gotta_call_runtime);
+
+  // Save the literals in the closure.
+  __ mov(ecx, Operand(esp, 0));
+  __ mov(FieldOperand(ecx, JSFunction::kLiteralsOffset), temp);
+  __ push(index);
+  __ RecordWriteField(ecx, JSFunction::kLiteralsOffset, temp, index,
+                      kDontSaveFPRegs, EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
+  __ pop(index);
+
+  // Code available?
+  Register entry = ecx;
+  __ mov(entry, FieldOperand(map, index, times_half_pointer_size,
+                             SharedFunctionInfo::kOffsetToPreviousCachedCode));
+  __ mov(entry, FieldOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &maybe_call_runtime);
+
+  // Found literals and code. Get them into the closure and return.
+  __ pop(closure);
+  // Store code entry in the closure.
+  __ lea(entry, FieldOperand(entry, Code::kHeaderSize));
+
+  Label install_optimized_code_and_tailcall;
+  __ bind(&install_optimized_code_and_tailcall);
+  __ mov(FieldOperand(closure, JSFunction::kCodeEntryOffset), entry);
+  __ RecordWriteCodeEntryField(closure, entry, eax);
+
+  // Link the closure into the optimized function list.
+  // ecx : code entry
+  // edx : native context
+  // edi : closure
+  __ mov(ebx,
+         ContextOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST));
+  __ mov(FieldOperand(closure, JSFunction::kNextFunctionLinkOffset), ebx);
+  __ RecordWriteField(closure, JSFunction::kNextFunctionLinkOffset, ebx, eax,
+                      kDontSaveFPRegs, EMIT_REMEMBERED_SET, OMIT_SMI_CHECK);
+  const int function_list_offset =
+      Context::SlotOffset(Context::OPTIMIZED_FUNCTIONS_LIST);
+  __ mov(ContextOperand(native_context, Context::OPTIMIZED_FUNCTIONS_LIST),
+         closure);
+  // Save closure before the write barrier.
+  __ mov(ebx, closure);
+  __ RecordWriteContextSlot(native_context, function_list_offset, closure, eax,
+                            kDontSaveFPRegs);
+  __ mov(closure, ebx);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ jmp(entry);
+
+  __ bind(&loop_bottom);
+  __ sub(index, Immediate(Smi::FromInt(SharedFunctionInfo::kEntryLength)));
+  __ cmp(index, Immediate(Smi::FromInt(1)));
+  __ j(greater, &loop_top);
+
+  // We found neither literals nor code.
+  __ jmp(&gotta_call_runtime);
+
+  __ bind(&maybe_call_runtime);
+  __ pop(closure);
+
+  // Last possibility. Check the context free optimized code map entry.
+  __ mov(entry, FieldOperand(map, FixedArray::kHeaderSize +
+                                      SharedFunctionInfo::kSharedCodeIndex));
+  __ mov(entry, FieldOperand(entry, WeakCell::kValueOffset));
+  __ JumpIfSmi(entry, &try_shared);
+
+  // Store code entry in the closure.
+  __ lea(entry, FieldOperand(entry, Code::kHeaderSize));
+  __ jmp(&install_optimized_code_and_tailcall);
+
+  __ bind(&try_shared);
+  __ pop(new_target);
+  __ pop(argument_count);
+  // Is the full code valid?
+  __ mov(entry, FieldOperand(closure, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(entry, FieldOperand(entry, SharedFunctionInfo::kCodeOffset));
+  __ mov(ebx, FieldOperand(entry, Code::kFlagsOffset));
+  __ and_(ebx, Code::KindField::kMask);
+  __ shr(ebx, Code::KindField::kShift);
+  __ cmp(ebx, Immediate(Code::BUILTIN));
+  __ j(equal, &gotta_call_runtime_no_stack);
+  // Yes, install the full code.
+  __ lea(entry, FieldOperand(entry, Code::kHeaderSize));
+  __ mov(FieldOperand(closure, JSFunction::kCodeEntryOffset), entry);
+  __ RecordWriteCodeEntryField(closure, entry, ebx);
+  __ jmp(entry);
+
+  __ bind(&gotta_call_runtime);
+  __ pop(closure);
+  __ pop(new_target);
+  __ pop(argument_count);
+  __ bind(&gotta_call_runtime_no_stack);
+
   GenerateTailCallToReturnedCode(masm, Runtime::kCompileLazy);
 }
 
+void Builtins::Generate_CompileBaseline(MacroAssembler* masm) {
+  GenerateTailCallToReturnedCode(masm, Runtime::kCompileBaseline);
+}
 
 void Builtins::Generate_CompileOptimized(MacroAssembler* masm) {
   GenerateTailCallToReturnedCode(masm,
@@ -876,13 +1085,14 @@
 
   // Switch on the state.
   Label not_no_registers, not_tos_eax;
-  __ cmp(ecx, FullCodeGenerator::NO_REGISTERS);
+  __ cmp(ecx, static_cast<int>(Deoptimizer::BailoutState::NO_REGISTERS));
   __ j(not_equal, &not_no_registers, Label::kNear);
   __ ret(1 * kPointerSize);  // Remove state.
 
   __ bind(&not_no_registers);
+  DCHECK_EQ(kInterpreterAccumulatorRegister.code(), eax.code());
   __ mov(eax, Operand(esp, 2 * kPointerSize));
-  __ cmp(ecx, FullCodeGenerator::TOS_REG);
+  __ cmp(ecx, static_cast<int>(Deoptimizer::BailoutState::TOS_REGISTER));
   __ j(not_equal, &not_tos_eax, Label::kNear);
   __ ret(2 * kPointerSize);  // Remove state, eax.
 
@@ -958,29 +1168,6 @@
 }
 
 // static
-void Builtins::Generate_FunctionHasInstance(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- eax    : argc
-  //  -- esp[0] : return address
-  //  -- esp[4] : first argument (left-hand side)
-  //  -- esp[8] : receiver (right-hand side)
-  // -----------------------------------
-
-  {
-    FrameScope scope(masm, StackFrame::INTERNAL);
-    __ mov(InstanceOfDescriptor::LeftRegister(),
-           Operand(ebp, 2 * kPointerSize));  // Load left-hand side.
-    __ mov(InstanceOfDescriptor::RightRegister(),
-           Operand(ebp, 3 * kPointerSize));  // Load right-hand side.
-    InstanceOfStub stub(masm->isolate(), true);
-    __ CallStub(&stub);
-  }
-
-  // Pop the argument and the receiver.
-  __ ret(2 * kPointerSize);
-}
-
-// static
 void Builtins::Generate_FunctionPrototypeApply(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- eax     : argc
@@ -2385,6 +2572,34 @@
           RelocInfo::CODE_TARGET);
 }
 
+// static
+void Builtins::Generate_AllocateInNewSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- edx    : requested object size (untagged)
+  //  -- esp[0] : return address
+  // -----------------------------------
+  __ SmiTag(edx);
+  __ PopReturnAddressTo(ecx);
+  __ Push(edx);
+  __ PushReturnAddressFrom(ecx);
+  __ Move(esi, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInNewSpace);
+}
+
+// static
+void Builtins::Generate_AllocateInOldSpace(MacroAssembler* masm) {
+  // ----------- S t a t e -------------
+  //  -- edx    : requested object size (untagged)
+  //  -- esp[0] : return address
+  // -----------------------------------
+  __ SmiTag(edx);
+  __ PopReturnAddressTo(ecx);
+  __ Push(edx);
+  __ Push(Smi::FromInt(AllocateTargetSpace::encode(OLD_SPACE)));
+  __ PushReturnAddressFrom(ecx);
+  __ Move(esi, Smi::FromInt(0));
+  __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
+}
 
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
diff --git a/src/x87/code-stubs-x87.cc b/src/x87/code-stubs-x87.cc
index 71adfd3..fdb97ee 100644
--- a/src/x87/code-stubs-x87.cc
+++ b/src/x87/code-stubs-x87.cc
@@ -62,12 +62,6 @@
 }
 
 
-void ArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
-
 void ArraySingleArgumentConstructorStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
   InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
@@ -80,11 +74,6 @@
 }
 
 
-void InternalArrayNoArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 0);
-}
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(eax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
@@ -1781,129 +1770,6 @@
 }
 
 
-void InstanceOfStub::Generate(MacroAssembler* masm) {
-  Register const object = edx;                       // Object (lhs).
-  Register const function = eax;                     // Function (rhs).
-  Register const object_map = ecx;                   // Map of {object}.
-  Register const function_map = ebx;                 // Map of {function}.
-  Register const function_prototype = function_map;  // Prototype of {function}.
-  Register const scratch = edi;
-
-  DCHECK(object.is(InstanceOfDescriptor::LeftRegister()));
-  DCHECK(function.is(InstanceOfDescriptor::RightRegister()));
-
-  // Check if {object} is a smi.
-  Label object_is_smi;
-  __ JumpIfSmi(object, &object_is_smi, Label::kNear);
-
-  // Lookup the {function} and the {object} map in the global instanceof cache.
-  // Note: This is safe because we clear the global instanceof cache whenever
-  // we change the prototype of any object.
-  Label fast_case, slow_case;
-  __ mov(object_map, FieldOperand(object, HeapObject::kMapOffset));
-  __ CompareRoot(function, scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ j(not_equal, &fast_case, Label::kNear);
-  __ CompareRoot(object_map, scratch, Heap::kInstanceofCacheMapRootIndex);
-  __ j(not_equal, &fast_case, Label::kNear);
-  __ LoadRoot(eax, Heap::kInstanceofCacheAnswerRootIndex);
-  __ ret(0);
-
-  // If {object} is a smi we can safely return false if {function} is a JS
-  // function, otherwise we have to miss to the runtime and throw an exception.
-  __ bind(&object_is_smi);
-  __ JumpIfSmi(function, &slow_case);
-  __ CmpObjectType(function, JS_FUNCTION_TYPE, function_map);
-  __ j(not_equal, &slow_case);
-  __ LoadRoot(eax, Heap::kFalseValueRootIndex);
-  __ ret(0);
-
-  // Fast-case: The {function} must be a valid JSFunction.
-  __ bind(&fast_case);
-  __ JumpIfSmi(function, &slow_case);
-  __ CmpObjectType(function, JS_FUNCTION_TYPE, function_map);
-  __ j(not_equal, &slow_case);
-
-  // Go to the runtime if the function is not a constructor.
-  __ test_b(FieldOperand(function_map, Map::kBitFieldOffset),
-            Immediate(1 << Map::kIsConstructor));
-  __ j(zero, &slow_case);
-
-  // Ensure that {function} has an instance prototype.
-  __ test_b(FieldOperand(function_map, Map::kBitFieldOffset),
-            Immediate(1 << Map::kHasNonInstancePrototype));
-  __ j(not_zero, &slow_case);
-
-  // Get the "prototype" (or initial map) of the {function}.
-  __ mov(function_prototype,
-         FieldOperand(function, JSFunction::kPrototypeOrInitialMapOffset));
-  __ AssertNotSmi(function_prototype);
-
-  // Resolve the prototype if the {function} has an initial map.  Afterwards the
-  // {function_prototype} will be either the JSReceiver prototype object or the
-  // hole value, which means that no instances of the {function} were created so
-  // far and hence we should return false.
-  Label function_prototype_valid;
-  Register const function_prototype_map = scratch;
-  __ CmpObjectType(function_prototype, MAP_TYPE, function_prototype_map);
-  __ j(not_equal, &function_prototype_valid, Label::kNear);
-  __ mov(function_prototype,
-         FieldOperand(function_prototype, Map::kPrototypeOffset));
-  __ bind(&function_prototype_valid);
-  __ AssertNotSmi(function_prototype);
-
-  // Update the global instanceof cache with the current {object} map and
-  // {function}.  The cached answer will be set when it is known below.
-  __ StoreRoot(function, scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ StoreRoot(object_map, scratch, Heap::kInstanceofCacheMapRootIndex);
-
-  // Loop through the prototype chain looking for the {function} prototype.
-  // Assume true, and change to false if not found.
-  Label done, loop, fast_runtime_fallback;
-  __ mov(eax, isolate()->factory()->true_value());
-  __ bind(&loop);
-
-  // Check if the object needs to be access checked.
-  __ test_b(FieldOperand(object_map, Map::kBitFieldOffset),
-            Immediate(1 << Map::kIsAccessCheckNeeded));
-  __ j(not_zero, &fast_runtime_fallback, Label::kNear);
-  // Check if the current object is a Proxy.
-  __ CmpInstanceType(object_map, JS_PROXY_TYPE);
-  __ j(equal, &fast_runtime_fallback, Label::kNear);
-
-  __ mov(object, FieldOperand(object_map, Map::kPrototypeOffset));
-  __ cmp(object, function_prototype);
-  __ j(equal, &done, Label::kNear);
-  __ mov(object_map, FieldOperand(object, HeapObject::kMapOffset));
-  __ cmp(object, isolate()->factory()->null_value());
-  __ j(not_equal, &loop);
-  __ mov(eax, isolate()->factory()->false_value());
-
-  __ bind(&done);
-  __ StoreRoot(eax, scratch, Heap::kInstanceofCacheAnswerRootIndex);
-  __ ret(0);
-
-  // Found Proxy or access check needed: Call the runtime.
-  __ bind(&fast_runtime_fallback);
-  __ PopReturnAddressTo(scratch);
-  __ Push(object);
-  __ Push(function_prototype);
-  __ PushReturnAddressFrom(scratch);
-  // Invalidate the instanceof cache.
-  __ Move(eax, Immediate(Smi::FromInt(0)));
-  __ StoreRoot(eax, scratch, Heap::kInstanceofCacheFunctionRootIndex);
-  __ TailCallRuntime(Runtime::kHasInPrototypeChain);
-
-  // Slow-case: Call the %InstanceOf runtime function.
-  __ bind(&slow_case);
-  __ PopReturnAddressTo(scratch);
-  __ Push(object);
-  __ Push(function);
-  __ PushReturnAddressFrom(scratch);
-  __ TailCallRuntime(is_es6_instanceof() ? Runtime::kOrdinaryHasInstance
-                                         : Runtime::kInstanceOf);
-}
-
-
 // -------------------------------------------------------------------------
 // StringCharCodeAtGenerator
 
@@ -3534,8 +3400,8 @@
   __ j(not_equal, &miss);
   __ push(slot);
   __ push(vector);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::LOAD_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::LOAD_IC, code_flags,
                                                receiver, name, vector, scratch);
   __ pop(vector);
@@ -3795,8 +3661,8 @@
   __ pop(value);
   __ push(slot);
   __ push(vector);
-  Code::Flags code_flags = Code::RemoveTypeAndHolderFromFlags(
-      Code::ComputeHandlerFlags(Code::STORE_IC));
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
   masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, code_flags,
                                                receiver, key, slot, no_reg);
   __ pop(vector);
@@ -4386,16 +4252,16 @@
   __ bind(&done_allocate);
 
   // Initialize the JSObject fields.
-  __ mov(Operand(eax, JSObject::kMapOffset), ecx);
-  __ mov(Operand(eax, JSObject::kPropertiesOffset),
+  __ mov(FieldOperand(eax, JSObject::kMapOffset), ecx);
+  __ mov(FieldOperand(eax, JSObject::kPropertiesOffset),
          masm->isolate()->factory()->empty_fixed_array());
-  __ mov(Operand(eax, JSObject::kElementsOffset),
+  __ mov(FieldOperand(eax, JSObject::kElementsOffset),
          masm->isolate()->factory()->empty_fixed_array());
   STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
-  __ lea(ebx, Operand(eax, JSObject::kHeaderSize));
+  __ lea(ebx, FieldOperand(eax, JSObject::kHeaderSize));
 
   // ----------- S t a t e -------------
-  //  -- eax    : result (untagged)
+  //  -- eax    : result (tagged)
   //  -- ebx    : result fields (untagged)
   //  -- edi    : result end (untagged)
   //  -- ecx    : initial map
@@ -4413,10 +4279,6 @@
     // Initialize all in-object fields with undefined.
     __ LoadRoot(edx, Heap::kUndefinedValueRootIndex);
     __ InitializeFieldsWithFiller(ebx, edi, edx);
-
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ inc(eax);
     __ Ret();
   }
   __ bind(&slack_tracking);
@@ -4439,10 +4301,6 @@
     __ LoadRoot(edi, Heap::kOnePointerFillerMapRootIndex);
     __ InitializeFieldsWithFiller(ebx, edx, edi);
 
-    // Add the object tag to make the JSObject real.
-    STATIC_ASSERT(kHeapObjectTag == 1);
-    __ inc(eax);
-
     // Check if we can finalize the instance size.
     Label finalize;
     STATIC_ASSERT(Map::kSlackTrackingCounterEnd == 1);
@@ -4473,10 +4331,10 @@
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(ecx);
   }
-  STATIC_ASSERT(kHeapObjectTag == 1);
-  __ dec(eax);
   __ movzx_b(ebx, FieldOperand(ecx, Map::kInstanceSizeOffset));
   __ lea(edi, Operand(eax, ebx, times_pointer_size, 0));
+  STATIC_ASSERT(kHeapObjectTag == 1);
+  __ dec(edi);
   __ jmp(&done_allocate);
 
   // Fall back to %NewObject.
@@ -4497,19 +4355,19 @@
   // -----------------------------------
   __ AssertFunction(edi);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make edx point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ mov(edx, ebp);
-    __ jmp(&loop_entry, Label::kNear);
-    __ bind(&loop);
+  // Make edx point to the JavaScript frame.
+  __ mov(edx, ebp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ mov(edx, Operand(edx, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ cmp(edi, Operand(edx, StandardFrameConstants::kFunctionOffset));
-    __ j(not_equal, &loop);
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewRestArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have rest parameters (only possible if we have an
@@ -4539,7 +4397,7 @@
 
     // Allocate an empty rest parameter array.
     Label allocate, done_allocate;
-    __ Allocate(JSArray::kSize, eax, edx, ecx, &allocate, TAG_OBJECT);
+    __ Allocate(JSArray::kSize, eax, edx, ecx, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the rest parameter array in rax.
@@ -4581,7 +4439,7 @@
     Label allocate, done_allocate;
     __ lea(ecx, Operand(eax, times_half_pointer_size,
                         JSArray::kSize + FixedArray::kHeaderSize));
-    __ Allocate(ecx, edx, edi, no_reg, &allocate, TAG_OBJECT);
+    __ Allocate(ecx, edx, edi, no_reg, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in edx.
@@ -4643,35 +4501,50 @@
   // -----------------------------------
   __ AssertFunction(edi);
 
+  // Make ecx point to the JavaScript frame.
+  __ mov(ecx, ebp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
+    __ mov(ecx, Operand(ecx, StandardFrameConstants::kCallerFPOffset));
+  }
+  if (FLAG_debug_code) {
+    Label ok;
+    __ cmp(edi, Operand(ecx, StandardFrameConstants::kFunctionOffset));
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewSloppyArgumentsStub);
+    __ bind(&ok);
+  }
+
   // TODO(bmeurer): Cleanup to match the FastNewStrictArgumentsStub.
-  __ mov(ecx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
-  __ mov(ecx,
-         FieldOperand(ecx, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ lea(edx, Operand(ebp, ecx, times_half_pointer_size,
+  __ mov(ebx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
+  __ mov(ebx,
+         FieldOperand(ebx, SharedFunctionInfo::kFormalParameterCountOffset));
+  __ lea(edx, Operand(ecx, ebx, times_half_pointer_size,
                       StandardFrameConstants::kCallerSPOffset));
 
-  // ecx : number of parameters (tagged)
+  // ebx : number of parameters (tagged)
   // edx : parameters pointer
   // edi : function
+  // ecx : JavaScript frame pointer.
   // esp[0] : return address
 
   // Check if the calling frame is an arguments adaptor frame.
   Label adaptor_frame, try_allocate, runtime;
-  __ mov(ebx, Operand(ebp, StandardFrameConstants::kCallerFPOffset));
-  __ mov(eax, Operand(ebx, CommonFrameConstants::kContextOrFrameTypeOffset));
+  __ mov(eax, Operand(ecx, StandardFrameConstants::kCallerFPOffset));
+  __ mov(eax, Operand(eax, CommonFrameConstants::kContextOrFrameTypeOffset));
   __ cmp(eax, Immediate(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
   __ j(equal, &adaptor_frame, Label::kNear);
 
   // No adaptor, parameter count = argument count.
-  __ mov(ebx, ecx);
-  __ push(ecx);
+  __ mov(ecx, ebx);
+  __ push(ebx);
   __ jmp(&try_allocate, Label::kNear);
 
   // We have an adaptor frame. Patch the parameters pointer.
   __ bind(&adaptor_frame);
-  __ mov(ebx, ecx);
-  __ push(ecx);
-  __ mov(edx, Operand(ebp, StandardFrameConstants::kCallerFPOffset));
+  __ push(ebx);
+  __ mov(edx, Operand(ecx, StandardFrameConstants::kCallerFPOffset));
   __ mov(ecx, Operand(edx, ArgumentsAdaptorFrameConstants::kLengthOffset));
   __ lea(edx,
          Operand(edx, ecx, times_2, StandardFrameConstants::kCallerSPOffset));
@@ -4705,7 +4578,7 @@
   __ add(ebx, Immediate(JSSloppyArgumentsObject::kSize));
 
   // Do the allocation of all three objects in one go.
-  __ Allocate(ebx, eax, edi, no_reg, &runtime, TAG_OBJECT);
+  __ Allocate(ebx, eax, edi, no_reg, &runtime, NO_ALLOCATION_FLAGS);
 
   // eax = address of new object(s) (tagged)
   // ecx = argument count (smi-tagged)
@@ -4883,19 +4756,19 @@
   // -----------------------------------
   __ AssertFunction(edi);
 
-  // For Ignition we need to skip all possible handler/stub frames until
-  // we reach the JavaScript frame for the function (similar to what the
-  // runtime fallback implementation does). So make edx point to that
-  // JavaScript frame.
-  {
-    Label loop, loop_entry;
-    __ mov(edx, ebp);
-    __ jmp(&loop_entry, Label::kNear);
-    __ bind(&loop);
+  // Make edx point to the JavaScript frame.
+  __ mov(edx, ebp);
+  if (skip_stub_frame()) {
+    // For Ignition we need to skip the handler/stub frame to reach the
+    // JavaScript frame for the function.
     __ mov(edx, Operand(edx, StandardFrameConstants::kCallerFPOffset));
-    __ bind(&loop_entry);
+  }
+  if (FLAG_debug_code) {
+    Label ok;
     __ cmp(edi, Operand(edx, StandardFrameConstants::kFunctionOffset));
-    __ j(not_equal, &loop);
+    __ j(equal, &ok);
+    __ Abort(kInvalidFrameForFastNewStrictArgumentsStub);
+    __ bind(&ok);
   }
 
   // Check if we have an arguments adaptor frame below the function frame.
@@ -4934,7 +4807,7 @@
   __ lea(ecx,
          Operand(eax, times_half_pointer_size,
                  JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
-  __ Allocate(ecx, edx, edi, no_reg, &allocate, TAG_OBJECT);
+  __ Allocate(ecx, edx, edi, no_reg, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in edx.
@@ -5354,9 +5227,14 @@
   STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2);
   STATIC_ASSERT(FCA::kIsolateIndex == 1);
   STATIC_ASSERT(FCA::kHolderIndex == 0);
-  STATIC_ASSERT(FCA::kArgsLength == 7);
+  STATIC_ASSERT(FCA::kNewTargetIndex == 7);
+  STATIC_ASSERT(FCA::kArgsLength == 8);
 
   __ pop(return_address);
+
+  // new target
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
+
   // context save.
   __ push(context);
 
@@ -5401,7 +5279,7 @@
 
   // Allocate the v8::Arguments structure in the arguments' space since
   // it's not controlled by GC.
-  const int kApiStackSpace = 4;
+  const int kApiStackSpace = 3;
 
   PrepareCallApiFunction(masm, kApiArgc + kApiStackSpace);
 
@@ -5412,8 +5290,6 @@
   __ mov(ApiParameterOperand(3), scratch);
   // FunctionCallbackInfo::length_.
   __ Move(ApiParameterOperand(4), Immediate(argc()));
-  // FunctionCallbackInfo::is_construct_call_.
-  __ Move(ApiParameterOperand(5), Immediate(0));
 
   // v8::InvocationCallback's argument.
   __ lea(scratch, ApiParameterOperand(2));
@@ -5433,8 +5309,8 @@
   }
   Operand return_value_operand(ebp, return_value_offset * kPointerSize);
   int stack_space = 0;
-  Operand is_construct_call_operand = ApiParameterOperand(5);
-  Operand* stack_space_operand = &is_construct_call_operand;
+  Operand length_operand = ApiParameterOperand(4);
+  Operand* stack_space_operand = &length_operand;
   stack_space = argc() + FCA::kArgsLength + 1;
   stack_space_operand = nullptr;
   CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
@@ -5445,14 +5321,34 @@
 
 
 void CallApiGetterStub::Generate(MacroAssembler* masm) {
-  // ----------- S t a t e -------------
-  //  -- esp[0]                        : return address
-  //  -- esp[4]                        : name
-  //  -- esp[8 .. (8 + kArgsLength*4)] : v8::PropertyCallbackInfo::args_
-  //  -- ...
-  //  -- edx                           : api_function_address
-  // -----------------------------------
-  DCHECK(edx.is(ApiGetterDescriptor::function_address()));
+  // Build v8::PropertyCallbackInfo::args_ array on the stack and push property
+  // name below the exit frame to make GC aware of them.
+  STATIC_ASSERT(PropertyCallbackArguments::kShouldThrowOnErrorIndex == 0);
+  STATIC_ASSERT(PropertyCallbackArguments::kHolderIndex == 1);
+  STATIC_ASSERT(PropertyCallbackArguments::kIsolateIndex == 2);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueDefaultValueIndex == 3);
+  STATIC_ASSERT(PropertyCallbackArguments::kReturnValueOffset == 4);
+  STATIC_ASSERT(PropertyCallbackArguments::kDataIndex == 5);
+  STATIC_ASSERT(PropertyCallbackArguments::kThisIndex == 6);
+  STATIC_ASSERT(PropertyCallbackArguments::kArgsLength == 7);
+
+  Register receiver = ApiGetterDescriptor::ReceiverRegister();
+  Register holder = ApiGetterDescriptor::HolderRegister();
+  Register callback = ApiGetterDescriptor::CallbackRegister();
+  Register scratch = ebx;
+  DCHECK(!AreAliased(receiver, holder, callback, scratch));
+
+  __ pop(scratch);  // Pop return address to extend the frame.
+  __ push(receiver);
+  __ push(FieldOperand(callback, AccessorInfo::kDataOffset));
+  __ PushRoot(Heap::kUndefinedValueRootIndex);  // ReturnValue
+  // ReturnValue default value
+  __ PushRoot(Heap::kUndefinedValueRootIndex);
+  __ push(Immediate(ExternalReference::isolate_address(isolate())));
+  __ push(holder);
+  __ push(Immediate(Smi::FromInt(0)));  // should_throw_on_error -> false
+  __ push(FieldOperand(callback, AccessorInfo::kNameOffset));
+  __ push(scratch);  // Restore return address.
 
   // v8::PropertyCallbackInfo::args_ array and name handle.
   const int kStackUnwindSpace = PropertyCallbackArguments::kArgsLength + 1;
@@ -5462,9 +5358,6 @@
   // active) in non-GCed stack space.
   const int kApiArgc = 3 + 1;
 
-  Register api_function_address = edx;
-  Register scratch = ebx;
-
   // Load address of v8::PropertyAccessorInfo::args_ array.
   __ lea(scratch, Operand(esp, 2 * kPointerSize));
 
@@ -5474,25 +5367,30 @@
   Operand info_object = ApiParameterOperand(3);
   __ mov(info_object, scratch);
 
+  // Name as handle.
   __ sub(scratch, Immediate(kPointerSize));
-  __ mov(ApiParameterOperand(0), scratch);  // name.
+  __ mov(ApiParameterOperand(0), scratch);
+  // Arguments pointer.
   __ lea(scratch, info_object);
-  __ mov(ApiParameterOperand(1), scratch);  // arguments pointer.
+  __ mov(ApiParameterOperand(1), scratch);
   // Reserve space for optional callback address parameter.
   Operand thunk_last_arg = ApiParameterOperand(2);
 
   ExternalReference thunk_ref =
       ExternalReference::invoke_accessor_getter_callback(isolate());
 
+  __ mov(scratch, FieldOperand(callback, AccessorInfo::kJsGetterOffset));
+  Register function_address = edx;
+  __ mov(function_address,
+         FieldOperand(scratch, Foreign::kForeignAddressOffset));
   // +3 is to skip prolog, return address and name handle.
   Operand return_value_operand(
       ebp, (PropertyCallbackArguments::kReturnValueOffset + 3) * kPointerSize);
-  CallApiFunctionAndReturn(masm, api_function_address, thunk_ref,
-                           thunk_last_arg, kStackUnwindSpace, nullptr,
-                           return_value_operand, NULL);
+  CallApiFunctionAndReturn(masm, function_address, thunk_ref, thunk_last_arg,
+                           kStackUnwindSpace, nullptr, return_value_operand,
+                           NULL);
 }
 
-
 #undef __
 
 }  // namespace internal
diff --git a/src/x87/codegen-x87.cc b/src/x87/codegen-x87.cc
index 776edeb..8112d11 100644
--- a/src/x87/codegen-x87.cc
+++ b/src/x87/codegen-x87.cc
@@ -275,8 +275,7 @@
   // Allocate new FixedDoubleArray.
   // edx: receiver
   // edi: length of source FixedArray (smi-tagged)
-  AllocationFlags flags =
-      static_cast<AllocationFlags>(TAG_OBJECT | DOUBLE_ALIGNMENT);
+  AllocationFlags flags = static_cast<AllocationFlags>(DOUBLE_ALIGNMENT);
   __ Allocate(FixedDoubleArray::kHeaderSize, times_8, edi,
               REGISTER_VALUE_IS_SMI, eax, ebx, no_reg, &gc_required, flags);
 
@@ -391,7 +390,7 @@
   // Allocate new FixedArray.
   // ebx: length of source FixedDoubleArray (smi-tagged)
   __ lea(edi, Operand(ebx, times_2, FixedArray::kHeaderSize));
-  __ Allocate(edi, eax, esi, no_reg, &gc_required, TAG_OBJECT);
+  __ Allocate(edi, eax, esi, no_reg, &gc_required, NO_ALLOCATION_FLAGS);
 
   // eax: destination FixedArray
   // ebx: number of elements
diff --git a/src/x87/disasm-x87.cc b/src/x87/disasm-x87.cc
index 91ce227..2a90df9 100644
--- a/src/x87/disasm-x87.cc
+++ b/src/x87/disasm-x87.cc
@@ -8,6 +8,7 @@
 
 #if V8_TARGET_ARCH_X87
 
+#include "src/base/compiler-specific.h"
 #include "src/disasm.h"
 
 namespace disasm {
@@ -29,18 +30,19 @@
 };
 
 static const ByteMnemonic two_operands_instr[] = {
-    {0x01, "add", OPER_REG_OP_ORDER},   {0x03, "add", REG_OPER_OP_ORDER},
-    {0x09, "or", OPER_REG_OP_ORDER},    {0x0B, "or", REG_OPER_OP_ORDER},
-    {0x13, "adc", REG_OPER_OP_ORDER},   {0x1B, "sbb", REG_OPER_OP_ORDER},
-    {0x21, "and", OPER_REG_OP_ORDER},   {0x23, "and", REG_OPER_OP_ORDER},
-    {0x29, "sub", OPER_REG_OP_ORDER},   {0x2A, "subb", REG_OPER_OP_ORDER},
-    {0x2B, "sub", REG_OPER_OP_ORDER},   {0x31, "xor", OPER_REG_OP_ORDER},
-    {0x33, "xor", REG_OPER_OP_ORDER},   {0x38, "cmpb", OPER_REG_OP_ORDER},
-    {0x39, "cmp", OPER_REG_OP_ORDER},   {0x3A, "cmpb", REG_OPER_OP_ORDER},
-    {0x3B, "cmp", REG_OPER_OP_ORDER},   {0x84, "test_b", REG_OPER_OP_ORDER},
-    {0x85, "test", REG_OPER_OP_ORDER},  {0x87, "xchg", REG_OPER_OP_ORDER},
-    {0x8A, "mov_b", REG_OPER_OP_ORDER}, {0x8B, "mov", REG_OPER_OP_ORDER},
-    {0x8D, "lea", REG_OPER_OP_ORDER},   {-1, "", UNSET_OP_ORDER}};
+    {0x01, "add", OPER_REG_OP_ORDER},  {0x03, "add", REG_OPER_OP_ORDER},
+    {0x09, "or", OPER_REG_OP_ORDER},   {0x0B, "or", REG_OPER_OP_ORDER},
+    {0x13, "adc", REG_OPER_OP_ORDER},  {0x1B, "sbb", REG_OPER_OP_ORDER},
+    {0x21, "and", OPER_REG_OP_ORDER},  {0x23, "and", REG_OPER_OP_ORDER},
+    {0x29, "sub", OPER_REG_OP_ORDER},  {0x2A, "subb", REG_OPER_OP_ORDER},
+    {0x2B, "sub", REG_OPER_OP_ORDER},  {0x31, "xor", OPER_REG_OP_ORDER},
+    {0x33, "xor", REG_OPER_OP_ORDER},  {0x38, "cmpb", OPER_REG_OP_ORDER},
+    {0x39, "cmp", OPER_REG_OP_ORDER},  {0x3A, "cmpb", REG_OPER_OP_ORDER},
+    {0x3B, "cmp", REG_OPER_OP_ORDER},  {0x84, "test_b", REG_OPER_OP_ORDER},
+    {0x85, "test", REG_OPER_OP_ORDER}, {0x86, "xchg_b", REG_OPER_OP_ORDER},
+    {0x87, "xchg", REG_OPER_OP_ORDER}, {0x8A, "mov_b", REG_OPER_OP_ORDER},
+    {0x8B, "mov", REG_OPER_OP_ORDER},  {0x8D, "lea", REG_OPER_OP_ORDER},
+    {-1, "", UNSET_OP_ORDER}};
 
 static const ByteMnemonic zero_operands_instr[] = {
   {0xC3, "ret", UNSET_OP_ORDER},
@@ -325,8 +327,7 @@
   int FPUInstruction(byte* data);
   int MemoryFPUInstruction(int escape_opcode, int regop, byte* modrm_start);
   int RegisterFPUInstruction(int escape_opcode, byte modrm_byte);
-  void AppendToBuffer(const char* format, ...);
-
+  PRINTF_FORMAT(2, 3) void AppendToBuffer(const char* format, ...);
 
   void UnimplementedInstruction() {
     if (abort_on_unimplemented_) {
@@ -948,7 +949,7 @@
   const InstructionDesc& idesc = instruction_table_->Get(*data);
   switch (idesc.type) {
     case ZERO_OPERANDS_INSTR:
-      AppendToBuffer(idesc.mnem);
+      AppendToBuffer("%s", idesc.mnem);
       data++;
       break;
 
@@ -1267,6 +1268,13 @@
         } else if (*data == 0x8B) {
           data++;
           data += PrintOperands("mov_w", REG_OPER_OP_ORDER, data);
+        } else if (*data == 0x87) {
+          data++;
+          int mod, regop, rm;
+          get_modrm(*data, &mod, &regop, &rm);
+          AppendToBuffer("xchg_w ");
+          data += PrintRightOperand(data);
+          AppendToBuffer(",%s", NameOfCPURegister(regop));
         } else if (*data == 0x89) {
           data++;
           int mod, regop, rm;
diff --git a/src/x87/interface-descriptors-x87.cc b/src/x87/interface-descriptors-x87.cc
index e41d42c..260d871 100644
--- a/src/x87/interface-descriptors-x87.cc
+++ b/src/x87/interface-descriptors-x87.cc
@@ -51,16 +51,11 @@
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return eax; }
 
 
-const Register InstanceOfDescriptor::LeftRegister() { return edx; }
-const Register InstanceOfDescriptor::RightRegister() { return eax; }
-
-
 const Register StringCompareDescriptor::LeftRegister() { return edx; }
 const Register StringCompareDescriptor::RightRegister() { return eax; }
 
-
-const Register ApiGetterDescriptor::function_address() { return edx; }
-
+const Register ApiGetterDescriptor::HolderRegister() { return ecx; }
+const Register ApiGetterDescriptor::CallbackRegister() { return eax; }
 
 const Register MathPowTaggedDescriptor::exponent() { return eax; }
 
@@ -73,6 +68,8 @@
 const Register GrowArrayElementsDescriptor::ObjectRegister() { return eax; }
 const Register GrowArrayElementsDescriptor::KeyRegister() { return ebx; }
 
+const Register HasPropertyDescriptor::ObjectRegister() { return eax; }
+const Register HasPropertyDescriptor::KeyRegister() { return ebx; }
 
 void FastNewClosureDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -250,13 +247,16 @@
 SIMD128_TYPES(SIMD128_ALLOC_DESC)
 #undef SIMD128_ALLOC_DESC
 
-void AllocateInNewSpaceDescriptor::InitializePlatformSpecific(
+void ArrayNoArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  Register registers[] = {eax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  // register state
+  // eax -- number of arguments
+  // edi -- function
+  // ebx -- allocation site with elements kind
+  Register registers[] = {edi, ebx, eax};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
 void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
@@ -320,6 +320,11 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
+void CountOpDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {eax};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StringAddDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -380,8 +385,8 @@
 void InterpreterDispatchDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {
-      kInterpreterAccumulatorRegister, kInterpreterRegisterFileRegister,
-      kInterpreterBytecodeOffsetRegister, kInterpreterBytecodeArrayRegister};
+      kInterpreterAccumulatorRegister, kInterpreterBytecodeOffsetRegister,
+      kInterpreterBytecodeArrayRegister, kInterpreterDispatchTableRegister};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
@@ -416,6 +421,16 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+void ResumeGeneratorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {
+      eax,  // the value to pass to the generator
+      ebx,  // the JSGeneratorObject to resume
+      edx   // the resume mode (tagged)
+  };
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/x87/macro-assembler-x87.cc b/src/x87/macro-assembler-x87.cc
index b46167d..3cee0ea 100644
--- a/src/x87/macro-assembler-x87.cc
+++ b/src/x87/macro-assembler-x87.cc
@@ -973,6 +973,17 @@
   }
 }
 
+void MacroAssembler::AssertGeneratorObject(Register object) {
+  if (emit_debug_code()) {
+    test(object, Immediate(kSmiTagMask));
+    Check(not_equal, kOperandIsASmiAndNotAGeneratorObject);
+    Push(object);
+    CmpObjectType(object, JS_GENERATOR_OBJECT_TYPE, object);
+    Pop(object);
+    Check(equal, kOperandIsNotAGeneratorObject);
+  }
+}
+
 void MacroAssembler::AssertReceiver(Register object) {
   if (emit_debug_code()) {
     test(object, Immediate(kSmiTagMask));
@@ -1458,6 +1469,7 @@
                               AllocationFlags flags) {
   DCHECK((flags & (RESULT_CONTAINS_TOP | SIZE_IN_WORDS)) == 0);
   DCHECK(object_size <= Page::kMaxRegularHeapObjectSize);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1499,26 +1511,23 @@
 
   // Calculate new top and bail out if space is exhausted.
   Register top_reg = result_end.is_valid() ? result_end : result;
+
   if (!top_reg.is(result)) {
     mov(top_reg, result);
   }
   add(top_reg, Immediate(object_size));
-  j(carry, gc_required);
   cmp(top_reg, Operand::StaticVariable(allocation_limit));
   j(above, gc_required);
 
-  // Update allocation top.
-  UpdateAllocationTopHelper(top_reg, scratch, flags);
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    UpdateAllocationTopHelper(top_reg, scratch, flags);
+  }
 
-  // Tag result if requested.
-  bool tag_result = (flags & TAG_OBJECT) != 0;
   if (top_reg.is(result)) {
-    if (tag_result) {
-      sub(result, Immediate(object_size - kHeapObjectTag));
-    } else {
-      sub(result, Immediate(object_size));
-    }
-  } else if (tag_result) {
+    sub(result, Immediate(object_size - kHeapObjectTag));
+  } else {
+    // Tag the result.
     DCHECK(kHeapObjectTag == 1);
     inc(result);
   }
@@ -1535,6 +1544,8 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK((flags & SIZE_IN_WORDS) == 0);
+  DCHECK((flags & ALLOCATION_FOLDING_DOMINATOR) == 0);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1592,16 +1603,14 @@
   cmp(result_end, Operand::StaticVariable(allocation_limit));
   j(above, gc_required);
 
-  if ((flags & TAG_OBJECT) != 0) {
-    DCHECK(kHeapObjectTag == 1);
-    inc(result);
-  }
+  // Tag result.
+  DCHECK(kHeapObjectTag == 1);
+  inc(result);
 
   // Update allocation top.
   UpdateAllocationTopHelper(result_end, scratch, flags);
 }
 
-
 void MacroAssembler::Allocate(Register object_size,
                               Register result,
                               Register result_end,
@@ -1609,6 +1618,7 @@
                               Label* gc_required,
                               AllocationFlags flags) {
   DCHECK((flags & (RESULT_CONTAINS_TOP | SIZE_IN_WORDS)) == 0);
+  DCHECK((flags & ALLOCATION_FOLDED) == 0);
   if (!FLAG_inline_new) {
     if (emit_debug_code()) {
       // Trash the registers to simulate an allocation failure.
@@ -1652,20 +1662,66 @@
     mov(result_end, object_size);
   }
   add(result_end, result);
-  j(carry, gc_required);
   cmp(result_end, Operand::StaticVariable(allocation_limit));
   j(above, gc_required);
 
-  // Tag result if requested.
-  if ((flags & TAG_OBJECT) != 0) {
-    DCHECK(kHeapObjectTag == 1);
-    inc(result);
-  }
+  // Tag result.
+  DCHECK(kHeapObjectTag == 1);
+  inc(result);
 
-  // Update allocation top.
-  UpdateAllocationTopHelper(result_end, scratch, flags);
+  if ((flags & ALLOCATION_FOLDING_DOMINATOR) == 0) {
+    // The top pointer is not updated for allocation folding dominators.
+    UpdateAllocationTopHelper(result_end, scratch, flags);
+  }
 }
 
+void MacroAssembler::FastAllocate(int object_size, Register result,
+                                  Register result_end, AllocationFlags flags) {
+  DCHECK(!result.is(result_end));
+  // Load address of new object into result.
+  LoadAllocationTopHelper(result, no_reg, flags);
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    Label aligned;
+    test(result, Immediate(kDoubleAlignmentMask));
+    j(zero, &aligned, Label::kNear);
+    mov(Operand(result, 0),
+        Immediate(isolate()->factory()->one_pointer_filler_map()));
+    add(result, Immediate(kDoubleSize / 2));
+    bind(&aligned);
+  }
+
+  lea(result_end, Operand(result, object_size));
+  UpdateAllocationTopHelper(result_end, no_reg, flags);
+
+  DCHECK(kHeapObjectTag == 1);
+  inc(result);
+}
+
+void MacroAssembler::FastAllocate(Register object_size, Register result,
+                                  Register result_end, AllocationFlags flags) {
+  DCHECK(!result.is(result_end));
+  // Load address of new object into result.
+  LoadAllocationTopHelper(result, no_reg, flags);
+
+  if ((flags & DOUBLE_ALIGNMENT) != 0) {
+    DCHECK(kPointerAlignment * 2 == kDoubleAlignment);
+    Label aligned;
+    test(result, Immediate(kDoubleAlignmentMask));
+    j(zero, &aligned, Label::kNear);
+    mov(Operand(result, 0),
+        Immediate(isolate()->factory()->one_pointer_filler_map()));
+    add(result, Immediate(kDoubleSize / 2));
+    bind(&aligned);
+  }
+
+  lea(result_end, Operand(result, object_size, times_1, 0));
+  UpdateAllocationTopHelper(result_end, no_reg, flags);
+
+  DCHECK(kHeapObjectTag == 1);
+  inc(result);
+}
 
 void MacroAssembler::AllocateHeapNumber(Register result,
                                         Register scratch1,
@@ -1674,7 +1730,7 @@
                                         MutableMode mode) {
   // Allocate heap number in new space.
   Allocate(HeapNumber::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   Handle<Map> map = mode == MUTABLE
       ? isolate()->factory()->mutable_heap_number_map()
@@ -1700,15 +1756,9 @@
   and_(scratch1, Immediate(~kObjectAlignmentMask));
 
   // Allocate two byte string in new space.
-  Allocate(SeqTwoByteString::kHeaderSize,
-           times_1,
-           scratch1,
-           REGISTER_VALUE_IS_INT32,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(SeqTwoByteString::kHeaderSize, times_1, scratch1,
+           REGISTER_VALUE_IS_INT32, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1734,15 +1784,9 @@
   and_(scratch1, Immediate(~kObjectAlignmentMask));
 
   // Allocate one-byte string in new space.
-  Allocate(SeqOneByteString::kHeaderSize,
-           times_1,
-           scratch1,
-           REGISTER_VALUE_IS_INT32,
-           result,
-           scratch2,
-           scratch3,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(SeqOneByteString::kHeaderSize, times_1, scratch1,
+           REGISTER_VALUE_IS_INT32, result, scratch2, scratch3, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1762,7 +1806,7 @@
 
   // Allocate one-byte string in new space.
   Allocate(SeqOneByteString::SizeFor(length), result, scratch1, scratch2,
-           gc_required, TAG_OBJECT);
+           gc_required, NO_ALLOCATION_FLAGS);
 
   // Set the map, length and hash field.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1780,7 +1824,7 @@
                                         Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1792,12 +1836,8 @@
                                                Register scratch1,
                                                Register scratch2,
                                                Label* gc_required) {
-  Allocate(ConsString::kSize,
-           result,
-           scratch1,
-           scratch2,
-           gc_required,
-           TAG_OBJECT);
+  Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1811,7 +1851,7 @@
                                           Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1825,7 +1865,7 @@
                                                  Label* gc_required) {
   // Allocate heap number in new space.
   Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
-           TAG_OBJECT);
+           NO_ALLOCATION_FLAGS);
 
   // Set the map. The other fields are left uninitialized.
   mov(FieldOperand(result, HeapObject::kMapOffset),
@@ -1841,7 +1881,8 @@
   DCHECK(!result.is(value));
 
   // Allocate JSValue in new space.
-  Allocate(JSValue::kSize, result, scratch, no_reg, gc_required, TAG_OBJECT);
+  Allocate(JSValue::kSize, result, scratch, no_reg, gc_required,
+           NO_ALLOCATION_FLAGS);
 
   // Initialize the JSValue.
   LoadGlobalFunctionInitialMap(constructor, scratch);
diff --git a/src/x87/macro-assembler-x87.h b/src/x87/macro-assembler-x87.h
index 5571413..42b7eb1 100644
--- a/src/x87/macro-assembler-x87.h
+++ b/src/x87/macro-assembler-x87.h
@@ -19,10 +19,11 @@
 const Register kReturnRegister2 = {Register::kCode_edi};
 const Register kJSFunctionRegister = {Register::kCode_edi};
 const Register kContextRegister = {Register::kCode_esi};
+const Register kAllocateSizeRegister = {Register::kCode_edx};
 const Register kInterpreterAccumulatorRegister = {Register::kCode_eax};
-const Register kInterpreterRegisterFileRegister = {Register::kCode_edx};
 const Register kInterpreterBytecodeOffsetRegister = {Register::kCode_ecx};
 const Register kInterpreterBytecodeArrayRegister = {Register::kCode_edi};
+const Register kInterpreterDispatchTableRegister = {Register::kCode_esi};
 const Register kJavaScriptCallArgCountRegister = {Register::kCode_eax};
 const Register kJavaScriptCallNewTargetRegister = {Register::kCode_edx};
 const Register kRuntimeCallFunctionRegister = {Register::kCode_ebx};
@@ -499,6 +500,23 @@
     j(not_zero, not_smi_label, distance);
   }
 
+  // Jump if the value cannot be represented by a smi.
+  inline void JumpIfNotValidSmiValue(Register value, Register scratch,
+                                     Label* on_invalid,
+                                     Label::Distance distance = Label::kFar) {
+    mov(scratch, value);
+    add(scratch, Immediate(0x40000000U));
+    j(sign, on_invalid, distance);
+  }
+
+  // Jump if the unsigned integer value cannot be represented by a smi.
+  inline void JumpIfUIntNotValidSmiValue(
+      Register value, Label* on_invalid,
+      Label::Distance distance = Label::kFar) {
+    cmp(value, Immediate(0x40000000U));
+    j(above_equal, on_invalid, distance);
+  }
+
   void LoadInstanceDescriptors(Register map, Register descriptors);
   void EnumLength(Register dst, Register map);
   void NumberOfOwnDescriptors(Register dst, Register map);
@@ -552,6 +570,10 @@
   // enabled via --debug-code.
   void AssertBoundFunction(Register object);
 
+  // Abort execution if argument is not a JSGeneratorObject,
+  // enabled via --debug-code.
+  void AssertGeneratorObject(Register object);
+
   // Abort execution if argument is not a JSReceiver, enabled via --debug-code.
   void AssertReceiver(Register object);
 
@@ -607,6 +629,14 @@
   void Allocate(Register object_size, Register result, Register result_end,
                 Register scratch, Label* gc_required, AllocationFlags flags);
 
+  // FastAllocate is right now only used for folded allocations. It just
+  // increments the top pointer without checking against limit. This can only
+  // be done if it was proved earlier that the allocation will succeed.
+  void FastAllocate(int object_size, Register result, Register result_end,
+                    AllocationFlags flags);
+  void FastAllocate(Register object_size, Register result, Register result_end,
+                    AllocationFlags flags);
+
   // Allocate a heap number in new space with undefined value. The
   // register scratch2 can be passed as no_reg; the others must be
   // valid registers. Returns tagged pointer in result register, or
diff --git a/test/benchmarks/benchmarks.gyp b/test/benchmarks/benchmarks.gyp
index 3884b09..0822ee4 100644
--- a/test/benchmarks/benchmarks.gyp
+++ b/test/benchmarks/benchmarks.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'benchmarks.isolate',
diff --git a/test/bot_default.gyp b/test/bot_default.gyp
index 9b39f58..0467918 100644
--- a/test/bot_default.gyp
+++ b/test/bot_default.gyp
@@ -20,8 +20,8 @@
             'webkit/webkit.gyp:webkit_run',
           ],
           'includes': [
-            '../build/features.gypi',
-            '../build/isolate.gypi',
+            '../gypfiles/features.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'bot_default.isolate',
diff --git a/test/cctest/cctest.gyp b/test/cctest/cctest.gyp
index 2e00e88..e33ee81 100644
--- a/test/cctest/cctest.gyp
+++ b/test/cctest/cctest.gyp
@@ -30,14 +30,14 @@
     'v8_code': 1,
     'generated_file': '<(SHARED_INTERMEDIATE_DIR)/resources.cc',
   },
-  'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'],
+  'includes': ['../../gypfiles/toolchain.gypi', '../../gypfiles/features.gypi'],
   'targets': [
     {
       'target_name': 'cctest',
       'type': 'executable',
       'dependencies': [
         'resources',
-        '../../tools/gyp/v8.gyp:v8_libplatform',
+        '../../src/v8.gyp:v8_libplatform',
       ],
       'include_dirs': [
         '../..',
@@ -51,7 +51,6 @@
         'compiler/graph-builder-tester.h',
         'compiler/test-basic-block-profiler.cc',
         'compiler/test-branch-combine.cc',
-        'compiler/test-changes-lowering.cc',
         'compiler/test-code-stub-assembler.cc',
         'compiler/test-gap-resolver.cc',
         'compiler/test-graph-visualizer.cc',
@@ -68,7 +67,6 @@
         'compiler/test-node.cc',
         'compiler/test-operator.cc',
         'compiler/test-osr.cc',
-        'compiler/test-pipeline.cc',
         'compiler/test-representation-change.cc',
         'compiler/test-run-bytecode-graph-builder.cc',
         'compiler/test-run-calls-to-external-references.cc',
@@ -80,11 +78,13 @@
         'compiler/test-run-jsexceptions.cc',
         'compiler/test-run-jsobjects.cc',
         'compiler/test-run-jsops.cc',
+        'compiler/test-run-load-store.cc',
         'compiler/test-run-machops.cc',
         'compiler/test-run-native-calls.cc',
         'compiler/test-run-stackcheck.cc',
         'compiler/test-run-stubs.cc',
         'compiler/test-run-variables.cc',
+        'compiler/test-run-wasm-machops.cc',
         'compiler/test-simplified-lowering.cc',
         'cctest.cc',
         'expression-type-collector.cc',
@@ -155,9 +155,7 @@
         'test-liveedit.cc',
         'test-lockers.cc',
         'test-log.cc',
-        'test-microtask-delivery.cc',
         'test-mementos.cc',
-        'test-object-observe.cc',
         'test-parsing.cc',
         'test-platform.cc',
         'test-profile-generator.cc',
@@ -178,7 +176,6 @@
         'test-transitions.cc',
         'test-typedarrays.cc',
         'test-types.cc',
-        'test-typing-reset.cc',
         'test-unbound-queue.cc',
         'test-unboxed-doubles.cc',
         'test-unique.cc',
@@ -190,9 +187,13 @@
         'trace-extension.cc',
         'wasm/test-run-wasm.cc',
         'wasm/test-run-wasm-64.cc',
+        'wasm/test-run-wasm-asmjs.cc',
         'wasm/test-run-wasm-js.cc',
         'wasm/test-run-wasm-module.cc',
         'wasm/test-signatures.h',
+        'wasm/test-wasm-function-name-table.cc',
+        'wasm/test-wasm-stack.cc',
+        'wasm/test-wasm-trap-position.cc',
         'wasm/wasm-run-utils.h',
       ],
       'conditions': [
@@ -269,6 +270,15 @@
             'test-disasm-ppc.cc'
           ],
         }],
+        ['v8_target_arch=="mips"', {
+          'sources': [  ### gcmole(arch:mips) ###
+            'test-assembler-mips.cc',
+            'test-code-stubs.cc',
+            'test-code-stubs-mips.cc',
+            'test-disasm-mips.cc',
+            'test-macro-assembler-mips.cc'
+          ],
+        }],
         ['v8_target_arch=="mipsel"', {
           'sources': [  ### gcmole(arch:mipsel) ###
             'test-assembler-mips.cc',
@@ -278,8 +288,17 @@
             'test-macro-assembler-mips.cc'
           ],
         }],
+        ['v8_target_arch=="mips64"', {
+          'sources': [  ### gcmole(arch:mips64) ###
+            'test-assembler-mips64.cc',
+            'test-code-stubs.cc',
+            'test-code-stubs-mips64.cc',
+            'test-disasm-mips64.cc',
+            'test-macro-assembler-mips64.cc'
+          ],
+        }],
         ['v8_target_arch=="mips64el"', {
-          'sources': [
+          'sources': [  ### gcmole(arch:mips64el) ###
             'test-assembler-mips64.cc',
             'test-code-stubs.cc',
             'test-code-stubs-mips64.cc',
@@ -327,9 +346,9 @@
         ['component=="shared_library"', {
           # cctest can't be built against a shared library, so we need to
           # depend on the underlying static target in that case.
-          'dependencies': ['../../tools/gyp/v8.gyp:v8_maybe_snapshot'],
+          'dependencies': ['../../src/v8.gyp:v8_maybe_snapshot'],
         }, {
-          'dependencies': ['../../tools/gyp/v8.gyp:v8'],
+          'dependencies': ['../../src/v8.gyp:v8'],
         }],
       ],
     },
@@ -372,14 +391,14 @@
       'target_name': 'generate-bytecode-expectations',
       'type': 'executable',
       'dependencies': [
-        '../../tools/gyp/v8.gyp:v8_libplatform',
+        '../../src/v8.gyp:v8_libplatform',
       ],
       'conditions': [
         ['component=="shared_library"', {
           # Same as cctest, we need to depend on the underlying static target.
-          'dependencies': ['../../tools/gyp/v8.gyp:v8_maybe_snapshot'],
+          'dependencies': ['../../src/v8.gyp:v8_maybe_snapshot'],
         }, {
-          'dependencies': ['../../tools/gyp/v8.gyp:v8'],
+          'dependencies': ['../../src/v8.gyp:v8'],
         }],
       ],
       'include_dirs+': [
@@ -402,7 +421,7 @@
             'cctest',
           ],
           'includes': [
-            '../../build/isolate.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'cctest_exe.isolate',
@@ -415,7 +434,7 @@
             'cctest_exe_run',
           ],
           'includes': [
-            '../../build/isolate.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'cctest.isolate',
diff --git a/test/cctest/cctest.status b/test/cctest/cctest.status
index c992ab6..e1da00d 100644
--- a/test/cctest/cctest.status
+++ b/test/cctest/cctest.status
@@ -132,6 +132,52 @@
   'test-debug/CallFunctionInDebugger': [PASS, ['mode == debug', SLOW]],
   'test-strings/StringOOM*': [PASS, ['mode == debug', SKIP]],
   'test-serialize/CustomSnapshotDataBlobImmortalImmovableRoots': [PASS, ['mode == debug', SKIP]],
+
+  ############################################################################
+  # Ignition
+
+  # TODO(rmcilroy,4680): Related to lack of code flushing. Check failed: !function->shared()->is_compiled() || function->IsOptimized().
+  'test-heap/TestCodeFlushingPreAged': [PASS, NO_IGNITION],
+  'test-heap/TestCodeFlushingIncrementalScavenge': [PASS, NO_IGNITION],
+  'test-heap/TestCodeFlushing': [PASS, NO_IGNITION],
+  'test-heap/TestCodeFlushingIncremental': [PASS, NO_IGNITION],
+  'test-heap/TestCodeFlushingIncrementalAbort': [PASS, ['mode == debug or dcheck_always_on == True', NO_IGNITION]],
+
+  # TODO(rmcilroy,4680): Fails to find the correct function name for the
+  # anonymous function. Fails without ignition but with --no-lazy also, so seems
+  # to be an issue when eagerly parsing.
+  'test-func-name-inference/ReturnAnonymousFunction': [PASS, NO_IGNITION],
+
+  # TODO(mythria,4780): Related to type feedback support for calls.
+  'test-feedback-vector/VectorCallICStates': [PASS, NO_IGNITION],
+  'test-compiler/FeedbackVectorPreservedAcrossRecompiles': [PASS, NO_IGNITION],
+  'test-heap/WeakFunctionInConstructor': [PASS, NO_IGNITION],
+  'test-heap/IncrementalMarkingClearsMonomorphicConstructor': [PASS, NO_IGNITION],
+  'test-heap/IncrementalMarkingPreservesMonomorphicConstructor': [PASS, NO_IGNITION],
+  'test-heap/IncrementalMarkingPreservesMonomorphicCallIC': [PASS, NO_IGNITION],
+  'test-heap/CellsInOptimizedCodeAreWeak': [PASS, NO_IGNITION],
+
+  # TODO(mythria,4680): Lack of code-ageing in interpreter.
+  'test-heap/Regress169209': [PASS, NO_IGNITION],
+
+  # TODO(mythria,4680): Lack of code-ageing and/or lack of compilation cache
+  # in interpreter.
+  'test-heap/CompilationCacheCachingBehavior': [PASS, NO_IGNITION],
+
+  # TODO(mstarzinger,4680): Fails due to the turbo-asm pipeline only being taken
+  # in compiler.cc GetLazyCode for uncompiled code, and no similar path for eager
+  # code.
+  'test-api/TurboAsmDisablesNeuter': [PASS, NO_IGNITION],
+
+  # TODO(mvstanton,4900): CHECK(!g_function->is_compiled());
+  'test-heap/TestUseOfIncrementalBarrierOnCompileLazy': [PASS, NO_IGNITION],
+
+  # BUG(rmcilroy,4680): Function is optimized without type feedback and so immediately deopts again, causing check failure in the test.
+  'test-heap/ResetSharedFunctionInfoCountersDuringIncrementalMarking': [PASS, NO_IGNITION],
+  'test-heap/ResetSharedFunctionInfoCountersDuringMarkSweep': [PASS, NO_IGNITION],
+
+  # BUG(4751). Flaky with ignition and tsan.
+  'test-cpu-profiler/JsNativeJsSample': [PASS, ['tsan', NO_IGNITION]],
 }],  # ALWAYS
 
 ##############################################################################
@@ -256,15 +302,14 @@
   'test-run-wasm-module/Run_WasmModule_Return114': [SKIP],
   'test-run-wasm-module/Run_WasmModule_CheckMemoryIsZero': [SKIP],
   'test-run-wasm-module/Run_WasmModule_Global': [SKIP],
-  'test-run-wasm/Run_Wasm_Int32LoadInt16_signext': [SKIP],
-  'test-run-wasm/Run_Wasm_Int32LoadInt16_zeroext': [SKIP],
-  'test-run-wasm/Run_WasmMixedGlobals': [SKIP],
-  'test-run-wasm-64/Run_WasmI64*': [SKIP],
-  'test-run-wasm-64/Run_Wasm_I64*': [SKIP],
-  'test-run-wasm-64/Run_Wasm_LoadStoreI64_sx': [SKIP],
+  'test-run-wasm/RunWasmCompiled_Int32LoadInt16_signext': [SKIP],
+  'test-run-wasm/RunWasmCompiled_Int32LoadInt16_zeroext': [SKIP],
+  'test-run-wasm/RunWasmCompiled_MixedGlobals': [SKIP],
+  'test-run-wasm-64/RunWasmCompiled_I64*': [SKIP],
+  'test-run-wasm-64/RunWasmCompiled_LoadStoreI64_sx': [SKIP],
   'test-run-wasm-64/Run_TestI64WasmRunner': [SKIP],
-  'test-run-wasm-64/Run_WasmCall_Int64Sub': [SKIP],
-  'test-run-wasm-64/Run_Wasm_MemI64_Sum': [SKIP],
+  'test-run-wasm-64/RunWasmCompiled_Call_Int64Sub': [SKIP],
+  'test-run-wasm-64/RunWasmCompiled_MemI64_Sum': [SKIP],
 }],  # 'byteorder == big'
 
 ##############################################################################
@@ -488,12 +533,8 @@
 }],  # 'arch == ppc64 and simulator_run == True'
 
 ##############################################################################
-['ignition == True', {
-
-  # TODO(rmcilroy,4680): The function_data field should be a BytecodeArray on interpreter entry
-  'test-api/SetFunctionEntryHook': [FAIL],
-
-  # TODO(rmcilroy,4680): Check failed: !function->shared()->is_compiled() || function->IsOptimized().
+['ignition or ignition_turbofan', {
+  # TODO(rmcilroy,4680): Related to lack of code flushing. Check failed: !function->shared()->is_compiled() || function->IsOptimized().
   'test-heap/TestCodeFlushingPreAged': [FAIL],
   'test-heap/TestCodeFlushingIncrementalScavenge': [FAIL],
   'test-heap/TestCodeFlushing': [FAIL],
@@ -530,6 +571,9 @@
   # code.
   'test-api/TurboAsmDisablesNeuter': [FAIL],
 
+  # TODO(mvstanton,4900): CHECK(!g_function->is_compiled());
+  'test-heap/TestUseOfIncrementalBarrierOnCompileLazy': [FAIL],
+
   # TODO(rmcilroy,4837): We don't set a LoadContextSlot for a function as
   # immutable in the BytecodeGraphBuilder, therefore no inlining happens.
   'test-run-inlining/InlineLoopGuardedTwice': [FAIL],
@@ -555,6 +599,9 @@
   'test-run-inlining/InlineBuiltin': [FAIL],
   'test-run-inlining/InlineTwiceDependent': [FAIL],
   'test-run-inlining/SimpleInliningContextDeopt': [FAIL],
-}],  # ignition == True
+
+  # BUG(4751). Flaky with ignition and tsan.
+  'test-cpu-profiler/JsNativeJsSample': [PASS, ['tsan', SKIP]],
+}],  # ignition or ignition_turbofan
 
 ]
diff --git a/test/cctest/compiler/call-tester.h b/test/cctest/compiler/call-tester.h
index c75bde1..77d2ce1 100644
--- a/test/cctest/compiler/call-tester.h
+++ b/test/cctest/compiler/call-tester.h
@@ -106,12 +106,14 @@
   static int64_t Cast(int32_t r) { return static_cast<int64_t>(r); }
 };
 
+#if !V8_TARGET_ARCH_PPC64
 template <>
 struct ParameterTraits<uint32_t> {
   static int64_t Cast(uint32_t r) {
     return static_cast<int64_t>(static_cast<int32_t>(r));
   }
 };
+#endif
 
 #endif  // !V8_TARGET_ARCH_64_BIT
 
diff --git a/test/cctest/compiler/codegen-tester.h b/test/cctest/compiler/codegen-tester.h
index 5d670bf..dbb9a72 100644
--- a/test/cctest/compiler/codegen-tester.h
+++ b/test/cctest/compiler/codegen-tester.h
@@ -65,7 +65,7 @@
       Schedule* schedule = this->Export();
       CallDescriptor* call_descriptor = this->call_descriptor();
       Graph* graph = this->graph();
-      CompilationInfo info("testing", main_isolate(), main_zone());
+      CompilationInfo info(ArrayVector("testing"), main_isolate(), main_zone());
       code_ = Pipeline::GenerateCodeForTesting(&info, call_descriptor, graph,
                                                schedule);
     }
diff --git a/test/cctest/compiler/function-tester.h b/test/cctest/compiler/function-tester.h
index 631bdde..555e049 100644
--- a/test/cctest/compiler/function-tester.h
+++ b/test/cctest/compiler/function-tester.h
@@ -31,7 +31,7 @@
     Compile(function);
     const uint32_t supported_flags =
         CompilationInfo::kFunctionContextSpecializing |
-        CompilationInfo::kInliningEnabled | CompilationInfo::kTypingEnabled;
+        CompilationInfo::kInliningEnabled;
     CHECK_EQ(0u, flags_ & ~supported_flags);
   }
 
@@ -177,7 +177,7 @@
   Handle<JSFunction> Compile(Handle<JSFunction> function) {
     Zone zone(function->GetIsolate()->allocator());
     ParseInfo parse_info(&zone, function);
-    CompilationInfo info(&parse_info);
+    CompilationInfo info(&parse_info, function);
     info.MarkAsDeoptimizationEnabled();
 
     CHECK(Parser::ParseStatic(info.parse_info()));
@@ -188,14 +188,14 @@
     if (flags_ & CompilationInfo::kInliningEnabled) {
       info.MarkAsInliningEnabled();
     }
-    if (flags_ & CompilationInfo::kTypingEnabled) {
-      info.MarkAsTypingEnabled();
+    if (FLAG_turbo_from_bytecode && function->shared()->HasBytecodeArray()) {
+      info.MarkAsOptimizeFromBytecode();
+    } else {
+      CHECK(Compiler::Analyze(info.parse_info()));
+      CHECK(Compiler::EnsureDeoptimizationSupport(&info));
     }
-    CHECK(Compiler::Analyze(info.parse_info()));
-    CHECK(Compiler::EnsureDeoptimizationSupport(&info));
 
-    Pipeline pipeline(&info);
-    Handle<Code> code = pipeline.GenerateCode();
+    Handle<Code> code = Pipeline::GenerateCodeForTesting(&info);
     CHECK(!code.is_null());
     info.dependencies()->Commit(code);
     info.context()->native_context()->AddOptimizedCode(*code);
@@ -226,12 +226,10 @@
   Handle<JSFunction> CompileGraph(Graph* graph) {
     Zone zone(function->GetIsolate()->allocator());
     ParseInfo parse_info(&zone, function);
-    CompilationInfo info(&parse_info);
+    CompilationInfo info(&parse_info, function);
 
     CHECK(Parser::ParseStatic(info.parse_info()));
     info.SetOptimizing();
-    CHECK(Compiler::Analyze(info.parse_info()));
-    CHECK(Compiler::EnsureDeoptimizationSupport(&info));
 
     Handle<Code> code = Pipeline::GenerateCodeForTesting(&info, graph);
     CHECK(!code.is_null());
diff --git a/test/cctest/compiler/graph-builder-tester.h b/test/cctest/compiler/graph-builder-tester.h
index de2713a..e4cccda 100644
--- a/test/cctest/compiler/graph-builder-tester.h
+++ b/test/cctest/compiler/graph-builder-tester.h
@@ -168,11 +168,11 @@
   Node* ChangeFloat64ToTagged(Node* a) {
     return NewNode(simplified()->ChangeFloat64ToTagged(), a);
   }
-  Node* ChangeBoolToBit(Node* a) {
-    return NewNode(simplified()->ChangeBoolToBit(), a);
+  Node* ChangeTaggedToBit(Node* a) {
+    return NewNode(simplified()->ChangeTaggedToBit(), a);
   }
-  Node* ChangeBitToBool(Node* a) {
-    return NewNode(simplified()->ChangeBitToBool(), a);
+  Node* ChangeBitToTagged(Node* a) {
+    return NewNode(simplified()->ChangeBitToTagged(), a);
   }
 
   Node* LoadField(const FieldAccess& access, Node* object) {
@@ -277,7 +277,7 @@
       Zone* zone = graph()->zone();
       CallDescriptor* desc =
           Linkage::GetSimplifiedCDescriptor(zone, this->csig_);
-      CompilationInfo info("testing", main_isolate(), main_zone());
+      CompilationInfo info(ArrayVector("testing"), main_isolate(), main_zone());
       code_ = Pipeline::GenerateCodeForTesting(&info, desc, graph());
 #ifdef ENABLE_DISASSEMBLER
       if (!code_.is_null() && FLAG_print_opt_code) {
diff --git a/test/cctest/compiler/test-branch-combine.cc b/test/cctest/compiler/test-branch-combine.cc
index c3b4308..c5c4166 100644
--- a/test/cctest/compiler/test-branch-combine.cc
+++ b/test/cctest/compiler/test-branch-combine.cc
@@ -457,6 +457,27 @@
   }
 }
 
+TEST(BranchCombineEffectLevel) {
+  // Test that the load doesn't get folded into the branch, as there's a store
+  // between them. See http://crbug.com/611976.
+  int32_t input = 0;
+
+  RawMachineAssemblerTester<int32_t> m;
+  Node* a = m.LoadFromPointer(&input, MachineType::Int32());
+  Node* compare = m.Word32And(a, m.Int32Constant(1));
+  Node* equal = m.Word32Equal(compare, m.Int32Constant(0));
+  m.StoreToPointer(&input, MachineRepresentation::kWord32, m.Int32Constant(1));
+
+  RawMachineLabel blocka, blockb;
+  m.Branch(equal, &blocka, &blockb);
+  m.Bind(&blocka);
+  m.Return(m.Int32Constant(42));
+  m.Bind(&blockb);
+  m.Return(m.Int32Constant(0));
+
+  CHECK_EQ(42, m.Call());
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/test/cctest/compiler/test-changes-lowering.cc b/test/cctest/compiler/test-changes-lowering.cc
deleted file mode 100644
index ddeabe4..0000000
--- a/test/cctest/compiler/test-changes-lowering.cc
+++ /dev/null
@@ -1,290 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <limits>
-
-#include "src/ast/scopes.h"
-#include "src/compiler/change-lowering.h"
-#include "src/compiler/control-builders.h"
-#include "src/compiler/js-graph.h"
-#include "src/compiler/node-properties.h"
-#include "src/compiler/pipeline.h"
-#include "src/compiler/select-lowering.h"
-#include "src/compiler/simplified-lowering.h"
-#include "src/compiler/typer.h"
-#include "src/compiler/verifier.h"
-#include "src/execution.h"
-#include "src/globals.h"
-#include "src/parsing/parser.h"
-#include "src/parsing/rewriter.h"
-#include "test/cctest/cctest.h"
-#include "test/cctest/compiler/codegen-tester.h"
-#include "test/cctest/compiler/function-tester.h"
-#include "test/cctest/compiler/graph-builder-tester.h"
-#include "test/cctest/compiler/value-helper.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-template <typename ReturnType>
-class ChangesLoweringTester : public GraphBuilderTester<ReturnType> {
- public:
-  explicit ChangesLoweringTester(MachineType p0 = MachineType::None())
-      : GraphBuilderTester<ReturnType>(p0),
-        javascript(this->zone()),
-        jsgraph(this->isolate(), this->graph(), this->common(), &javascript,
-                nullptr, this->machine()),
-        function(Handle<JSFunction>::null()) {}
-
-  JSOperatorBuilder javascript;
-  JSGraph jsgraph;
-  Handle<JSFunction> function;
-
-  Node* start() { return this->graph()->start(); }
-
-  template <typename T>
-  T* CallWithPotentialGC() {
-    // TODO(titzer): we wrap the code in a JSFunction here to reuse the
-    // JSEntryStub; that could be done with a special prologue or other stub.
-    if (function.is_null()) {
-      function = FunctionTester::ForMachineGraph(this->graph());
-    }
-    Handle<Object>* args = NULL;
-    MaybeHandle<Object> result =
-        Execution::Call(this->isolate(), function, factory()->undefined_value(),
-                        0, args, false);
-    return T::cast(*result.ToHandleChecked());
-  }
-
-  void StoreFloat64(Node* node, double* ptr) {
-    Node* ptr_node = this->PointerConstant(ptr);
-    this->Store(MachineType::Float64(), ptr_node, node);
-  }
-
-  Node* LoadInt32(int32_t* ptr) {
-    Node* ptr_node = this->PointerConstant(ptr);
-    return this->Load(MachineType::Int32(), ptr_node);
-  }
-
-  Node* LoadUint32(uint32_t* ptr) {
-    Node* ptr_node = this->PointerConstant(ptr);
-    return this->Load(MachineType::Uint32(), ptr_node);
-  }
-
-  Node* LoadFloat64(double* ptr) {
-    Node* ptr_node = this->PointerConstant(ptr);
-    return this->Load(MachineType::Float64(), ptr_node);
-  }
-
-  void CheckNumber(double expected, Object* number) {
-    CHECK(this->isolate()->factory()->NewNumber(expected)->SameValue(number));
-  }
-
-  void BuildAndLower(const Operator* op) {
-    // We build a graph by hand here, because the raw machine assembler
-    // does not add the correct control and effect nodes.
-    Node* p0 = this->Parameter(0);
-    Node* change = this->graph()->NewNode(op, p0);
-    Node* ret = this->graph()->NewNode(this->common()->Return(), change,
-                                       this->start(), this->start());
-    Node* end = this->graph()->NewNode(this->common()->End(1), ret);
-    this->graph()->SetEnd(end);
-    LowerChange(change);
-  }
-
-  void BuildStoreAndLower(const Operator* op, const Operator* store_op,
-                          void* location) {
-    // We build a graph by hand here, because the raw machine assembler
-    // does not add the correct control and effect nodes.
-    Node* p0 = this->Parameter(0);
-    Node* change = this->graph()->NewNode(op, p0);
-    Node* store = this->graph()->NewNode(
-        store_op, this->PointerConstant(location), this->Int32Constant(0),
-        change, this->start(), this->start());
-    Node* ret = this->graph()->NewNode(
-        this->common()->Return(), this->Int32Constant(0), store, this->start());
-    Node* end = this->graph()->NewNode(this->common()->End(1), ret);
-    this->graph()->SetEnd(end);
-    LowerChange(change);
-  }
-
-  void BuildLoadAndLower(const Operator* op, const Operator* load_op,
-                         void* location) {
-    // We build a graph by hand here, because the raw machine assembler
-    // does not add the correct control and effect nodes.
-    Node* load = this->graph()->NewNode(
-        load_op, this->PointerConstant(location), this->Int32Constant(0),
-        this->start(), this->start());
-    Node* change = this->graph()->NewNode(op, load);
-    Node* ret = this->graph()->NewNode(this->common()->Return(), change,
-                                       this->start(), this->start());
-    Node* end = this->graph()->NewNode(this->common()->End(1), ret);
-    this->graph()->SetEnd(end);
-    LowerChange(change);
-  }
-
-  void LowerChange(Node* change) {
-    // Run the graph reducer with changes lowering on a single node.
-    Typer typer(this->isolate(), this->graph());
-    typer.Run();
-    ChangeLowering change_lowering(&jsgraph);
-    SelectLowering select_lowering(this->graph(), this->common());
-    GraphReducer reducer(this->zone(), this->graph());
-    reducer.AddReducer(&change_lowering);
-    reducer.AddReducer(&select_lowering);
-    reducer.ReduceNode(change);
-    Verifier::Run(this->graph(), Verifier::UNTYPED);
-  }
-
-  Factory* factory() { return this->isolate()->factory(); }
-  Heap* heap() { return this->isolate()->heap(); }
-};
-
-
-TEST(RunChangeTaggedToInt32) {
-  // Build and lower a graph by hand.
-  ChangesLoweringTester<int32_t> t(MachineType::AnyTagged());
-  t.BuildAndLower(t.simplified()->ChangeTaggedToInt32());
-
-    FOR_INT32_INPUTS(i) {
-      int32_t input = *i;
-
-      if (Smi::IsValid(input)) {
-        int32_t result = t.Call(Smi::FromInt(input));
-        CHECK_EQ(input, result);
-      }
-
-      {
-        Handle<Object> number = t.factory()->NewNumber(input);
-        int32_t result = t.Call(*number);
-        CHECK_EQ(input, result);
-      }
-
-      {
-        Handle<HeapNumber> number = t.factory()->NewHeapNumber(input);
-        int32_t result = t.Call(*number);
-        CHECK_EQ(input, result);
-      }
-  }
-}
-
-
-TEST(RunChangeTaggedToUint32) {
-  // Build and lower a graph by hand.
-  ChangesLoweringTester<uint32_t> t(MachineType::AnyTagged());
-  t.BuildAndLower(t.simplified()->ChangeTaggedToUint32());
-
-    FOR_UINT32_INPUTS(i) {
-      uint32_t input = *i;
-
-      if (Smi::IsValid(input)) {
-        uint32_t result = t.Call(Smi::FromInt(input));
-        CHECK_EQ(static_cast<int32_t>(input), static_cast<int32_t>(result));
-      }
-
-      {
-        Handle<Object> number = t.factory()->NewNumber(input);
-        uint32_t result = t.Call(*number);
-        CHECK_EQ(static_cast<int32_t>(input), static_cast<int32_t>(result));
-      }
-
-      {
-        Handle<HeapNumber> number = t.factory()->NewHeapNumber(input);
-        uint32_t result = t.Call(*number);
-        CHECK_EQ(static_cast<int32_t>(input), static_cast<int32_t>(result));
-      }
-    }
-}
-
-
-TEST(RunChangeTaggedToFloat64) {
-  ChangesLoweringTester<int32_t> t(MachineType::AnyTagged());
-  double result;
-
-  t.BuildStoreAndLower(t.simplified()->ChangeTaggedToFloat64(),
-                       t.machine()->Store(StoreRepresentation(
-                           MachineRepresentation::kFloat64, kNoWriteBarrier)),
-                       &result);
-
-  {
-    FOR_INT32_INPUTS(i) {
-      int32_t input = *i;
-
-      if (Smi::IsValid(input)) {
-        t.Call(Smi::FromInt(input));
-        CHECK_EQ(input, static_cast<int32_t>(result));
-      }
-
-      {
-        Handle<Object> number = t.factory()->NewNumber(input);
-        t.Call(*number);
-        CHECK_EQ(input, static_cast<int32_t>(result));
-      }
-
-      {
-        Handle<HeapNumber> number = t.factory()->NewHeapNumber(input);
-        t.Call(*number);
-        CHECK_EQ(input, static_cast<int32_t>(result));
-      }
-    }
-  }
-
-  {
-    FOR_FLOAT64_INPUTS(i) {
-      double input = *i;
-      {
-        Handle<Object> number = t.factory()->NewNumber(input);
-        t.Call(*number);
-        CHECK_DOUBLE_EQ(input, result);
-      }
-
-      {
-        Handle<HeapNumber> number = t.factory()->NewHeapNumber(input);
-        t.Call(*number);
-        CHECK_DOUBLE_EQ(input, result);
-      }
-    }
-  }
-}
-
-
-TEST(RunChangeBoolToBit) {
-  ChangesLoweringTester<int32_t> t(MachineType::AnyTagged());
-  t.BuildAndLower(t.simplified()->ChangeBoolToBit());
-
-  {
-    Object* true_obj = t.heap()->true_value();
-    int32_t result = t.Call(true_obj);
-    CHECK_EQ(1, result);
-  }
-
-  {
-    Object* false_obj = t.heap()->false_value();
-    int32_t result = t.Call(false_obj);
-    CHECK_EQ(0, result);
-  }
-}
-
-
-TEST(RunChangeBitToBool) {
-  ChangesLoweringTester<Object*> t(MachineType::Int32());
-  t.BuildAndLower(t.simplified()->ChangeBitToBool());
-
-  {
-    Object* result = t.Call(1);
-    Object* true_obj = t.heap()->true_value();
-    CHECK_EQ(true_obj, result);
-  }
-
-  {
-    Object* result = t.Call(0);
-    Object* false_obj = t.heap()->false_value();
-    CHECK_EQ(false_obj, result);
-  }
-}
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
diff --git a/test/cctest/compiler/test-code-stub-assembler.cc b/test/cctest/compiler/test-code-stub-assembler.cc
index ff02cc9..37ba9e9 100644
--- a/test/cctest/compiler/test-code-stub-assembler.cc
+++ b/test/cctest/compiler/test-code-stub-assembler.cc
@@ -246,8 +246,9 @@
   CodeStubAssemblerTester m(isolate, descriptor);
   Handle<FixedArray> array = isolate->factory()->NewFixedArray(5);
   array->set(4, Smi::FromInt(733));
-  m.Return(m.LoadFixedArrayElementSmiIndex(m.HeapConstant(array),
-                                           m.SmiTag(m.Int32Constant(4))));
+  m.Return(m.LoadFixedArrayElement(m.HeapConstant(array),
+                                   m.SmiTag(m.Int32Constant(4)), 0,
+                                   CodeStubAssembler::SMI_PARAMETERS));
   Handle<Code> code = m.GenerateCode();
   FunctionTester ft(descriptor, code);
   MaybeHandle<Object> result = ft.Call();
@@ -361,6 +362,33 @@
   USE(m.GenerateCode());
 }
 
+TEST(TestToConstant) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeStubAssemblerTester m(isolate, descriptor);
+  int32_t value32;
+  int64_t value64;
+  Node* a = m.Int32Constant(5);
+  CHECK(m.ToInt32Constant(a, value32));
+  CHECK(m.ToInt64Constant(a, value64));
+
+  a = m.Int64Constant(static_cast<int64_t>(1) << 32);
+  CHECK(!m.ToInt32Constant(a, value32));
+  CHECK(m.ToInt64Constant(a, value64));
+
+  a = m.Int64Constant(13);
+  CHECK(m.ToInt32Constant(a, value32));
+  CHECK(m.ToInt64Constant(a, value64));
+
+  a = m.UndefinedConstant();
+  CHECK(!m.ToInt32Constant(a, value32));
+  CHECK(!m.ToInt64Constant(a, value64));
+
+  a = m.UndefinedConstant();
+  CHECK(!m.ToInt32Constant(a, value32));
+  CHECK(!m.ToInt64Constant(a, value64));
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/test/cctest/compiler/test-gap-resolver.cc b/test/cctest/compiler/test-gap-resolver.cc
index 7f85088..9781aeb 100644
--- a/test/cctest/compiler/test-gap-resolver.cc
+++ b/test/cctest/compiler/test-gap-resolver.cc
@@ -81,7 +81,7 @@
     if (!is_constant) {
       if (op.IsRegister()) {
         index = LocationOperand::cast(op).GetRegister().code();
-      } else if (op.IsDoubleRegister()) {
+      } else if (op.IsFPRegister()) {
         index = LocationOperand::cast(op).GetDoubleRegister().code();
       } else {
         index = LocationOperand::cast(op).index();
diff --git a/test/cctest/compiler/test-linkage.cc b/test/cctest/compiler/test-linkage.cc
index 0cbdb4c..dc83f4d 100644
--- a/test/cctest/compiler/test-linkage.cc
+++ b/test/cctest/compiler/test-linkage.cc
@@ -43,7 +43,7 @@
   HandleAndZoneScope handles;
   Handle<JSFunction> function = Compile("a + b");
   ParseInfo parse_info(handles.main_zone(), function);
-  CompilationInfo info(&parse_info);
+  CompilationInfo info(&parse_info, function);
   CallDescriptor* descriptor = Linkage::ComputeIncoming(info.zone(), &info);
   CHECK(descriptor);
 }
@@ -59,7 +59,7 @@
         Handle<JSFunction>::cast(v8::Utils::OpenHandle(
             *v8::Local<v8::Function>::Cast(CompileRun(sources[i]))));
     ParseInfo parse_info(handles.main_zone(), function);
-    CompilationInfo info(&parse_info);
+    CompilationInfo info(&parse_info, function);
     CallDescriptor* descriptor = Linkage::ComputeIncoming(info.zone(), &info);
     CHECK(descriptor);
 
@@ -75,7 +75,7 @@
   HandleAndZoneScope handles;
   Handle<JSFunction> function = Compile("a + c");
   ParseInfo parse_info(handles.main_zone(), function);
-  CompilationInfo info(&parse_info);
+  CompilationInfo info(&parse_info, function);
 
   for (int i = 0; i < 32; i++) {
     CallDescriptor* descriptor = Linkage::GetJSCallDescriptor(
@@ -98,7 +98,8 @@
   Isolate* isolate = CcTest::InitIsolateOnce();
   Zone zone(isolate->allocator());
   ToNumberStub stub(isolate);
-  CompilationInfo info("test", isolate, &zone, Code::ComputeFlags(Code::STUB));
+  CompilationInfo info(ArrayVector("test"), isolate, &zone,
+                       Code::ComputeFlags(Code::STUB));
   CallInterfaceDescriptor interface_descriptor =
       stub.GetCallInterfaceDescriptor();
   CallDescriptor* descriptor = Linkage::GetStubCallDescriptor(
diff --git a/test/cctest/compiler/test-loop-assignment-analysis.cc b/test/cctest/compiler/test-loop-assignment-analysis.cc
index 69f5e15..eafd0ec 100644
--- a/test/cctest/compiler/test-loop-assignment-analysis.cc
+++ b/test/cctest/compiler/test-loop-assignment-analysis.cc
@@ -31,7 +31,7 @@
   void CheckLoopAssignedCount(int expected, const char* var_name) {
     // TODO(titzer): don't scope analyze every single time.
     ParseInfo parse_info(main_zone(), function);
-    CompilationInfo info(&parse_info);
+    CompilationInfo info(&parse_info, function);
 
     CHECK(Parser::ParseStatic(&parse_info));
     CHECK(Rewriter::Rewrite(&parse_info));
diff --git a/test/cctest/compiler/test-multiple-return.cc b/test/cctest/compiler/test-multiple-return.cc
index 2108ab1..53bae5e 100644
--- a/test/cctest/compiler/test-multiple-return.cc
+++ b/test/cctest/compiler/test-multiple-return.cc
@@ -85,7 +85,8 @@
   Node* mul = m.Int32Mul(p0, p1);
   m.Return(add, sub, mul);
 
-  CompilationInfo info("testing", handles.main_isolate(), handles.main_zone());
+  CompilationInfo info(ArrayVector("testing"), handles.main_isolate(),
+                       handles.main_zone());
   Handle<Code> code =
       Pipeline::GenerateCodeForTesting(&info, desc, m.graph(), m.Export());
 #ifdef ENABLE_DISASSEMBLER
diff --git a/test/cctest/compiler/test-pipeline.cc b/test/cctest/compiler/test-pipeline.cc
deleted file mode 100644
index 35e3427..0000000
--- a/test/cctest/compiler/test-pipeline.cc
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "src/compiler.h"
-#include "src/compiler/pipeline.h"
-#include "src/handles.h"
-#include "src/parsing/parser.h"
-#include "test/cctest/cctest.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-static void RunPipeline(Zone* zone, const char* source) {
-  Handle<JSFunction> function = Handle<JSFunction>::cast(v8::Utils::OpenHandle(
-      *v8::Local<v8::Function>::Cast(CompileRun(source))));
-  ParseInfo parse_info(zone, function);
-  CHECK(Compiler::ParseAndAnalyze(&parse_info));
-  CompilationInfo info(&parse_info);
-  info.SetOptimizing();
-
-  Pipeline pipeline(&info);
-  Handle<Code> code = pipeline.GenerateCode();
-  CHECK(!code.is_null());
-}
-
-
-TEST(PipelineTyped) {
-  HandleAndZoneScope handles;
-  FLAG_turbo_types = true;
-  RunPipeline(handles.main_zone(), "(function(a,b) { return a + b; })");
-}
-
-
-TEST(PipelineGeneric) {
-  HandleAndZoneScope handles;
-  FLAG_turbo_types = false;
-  RunPipeline(handles.main_zone(), "(function(a,b) { return a + b; })");
-}
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
diff --git a/test/cctest/compiler/test-representation-change.cc b/test/cctest/compiler/test-representation-change.cc
index 7e75bf8..76aa390 100644
--- a/test/cctest/compiler/test-representation-change.cc
+++ b/test/cctest/compiler/test-representation-change.cc
@@ -439,24 +439,45 @@
 
 
 TEST(SingleChanges) {
-  CheckChange(IrOpcode::kChangeBoolToBit, MachineRepresentation::kTagged,
+  CheckChange(IrOpcode::kChangeTaggedToBit, MachineRepresentation::kTagged,
               Type::None(), MachineRepresentation::kBit);
-  CheckChange(IrOpcode::kChangeBitToBool, MachineRepresentation::kBit,
+  CheckChange(IrOpcode::kChangeBitToTagged, MachineRepresentation::kBit,
               Type::None(), MachineRepresentation::kTagged);
 
+  CheckChange(IrOpcode::kChangeInt31ToTaggedSigned,
+              MachineRepresentation::kWord32, Type::Signed31(),
+              MachineRepresentation::kTagged);
   CheckChange(IrOpcode::kChangeInt32ToTagged, MachineRepresentation::kWord32,
               Type::Signed32(), MachineRepresentation::kTagged);
   CheckChange(IrOpcode::kChangeUint32ToTagged, MachineRepresentation::kWord32,
               Type::Unsigned32(), MachineRepresentation::kTagged);
   CheckChange(IrOpcode::kChangeFloat64ToTagged, MachineRepresentation::kFloat64,
-              Type::None(), MachineRepresentation::kTagged);
+              Type::Number(), MachineRepresentation::kTagged);
+  CheckTwoChanges(IrOpcode::kChangeFloat64ToInt32,
+                  IrOpcode::kChangeInt31ToTaggedSigned,
+                  MachineRepresentation::kFloat64, Type::Signed31(),
+                  MachineRepresentation::kTagged);
+  CheckTwoChanges(IrOpcode::kChangeFloat64ToInt32,
+                  IrOpcode::kChangeInt32ToTagged,
+                  MachineRepresentation::kFloat64, Type::Signed32(),
+                  MachineRepresentation::kTagged);
+  CheckTwoChanges(IrOpcode::kChangeFloat64ToUint32,
+                  IrOpcode::kChangeUint32ToTagged,
+                  MachineRepresentation::kFloat64, Type::Unsigned32(),
+                  MachineRepresentation::kTagged);
 
   CheckChange(IrOpcode::kChangeTaggedToInt32, MachineRepresentation::kTagged,
               Type::Signed32(), MachineRepresentation::kWord32);
   CheckChange(IrOpcode::kChangeTaggedToUint32, MachineRepresentation::kTagged,
               Type::Unsigned32(), MachineRepresentation::kWord32);
   CheckChange(IrOpcode::kChangeTaggedToFloat64, MachineRepresentation::kTagged,
-              Type::None(), MachineRepresentation::kFloat64);
+              Type::Number(), MachineRepresentation::kFloat64);
+  CheckChange(IrOpcode::kChangeTaggedToFloat64, MachineRepresentation::kTagged,
+              Type::NumberOrUndefined(), MachineRepresentation::kFloat64);
+  CheckTwoChanges(IrOpcode::kChangeTaggedSignedToInt32,
+                  IrOpcode::kChangeInt32ToFloat64,
+                  MachineRepresentation::kTagged, Type::TaggedSigned(),
+                  MachineRepresentation::kFloat64);
 
   // Int32,Uint32 <-> Float64 are actually machine conversions.
   CheckChange(IrOpcode::kChangeInt32ToFloat64, MachineRepresentation::kWord32,
@@ -513,7 +534,7 @@
               Type::None(), MachineRepresentation::kFloat64);
   CheckChange(IrOpcode::kChangeFloat64ToInt32, MachineRepresentation::kFloat64,
               Type::Signed32(), MachineRepresentation::kWord32);
-  CheckChange(IrOpcode::kTruncateFloat64ToInt32,
+  CheckChange(IrOpcode::kTruncateFloat64ToWord32,
               MachineRepresentation::kFloat64, Type::Number(),
               MachineRepresentation::kWord32);
 
@@ -522,7 +543,7 @@
                   MachineRepresentation::kWord32, Type::None(),
                   MachineRepresentation::kFloat32);
   CheckTwoChanges(IrOpcode::kChangeFloat32ToFloat64,
-                  IrOpcode::kTruncateFloat64ToInt32,
+                  IrOpcode::kTruncateFloat64ToWord32,
                   MachineRepresentation::kFloat32, Type::Number(),
                   MachineRepresentation::kWord32);
 }
diff --git a/test/cctest/compiler/test-run-bytecode-graph-builder.cc b/test/cctest/compiler/test-run-bytecode-graph-builder.cc
index c32f923..024747f 100644
--- a/test/cctest/compiler/test-run-bytecode-graph-builder.cc
+++ b/test/cctest/compiler/test-run-bytecode-graph-builder.cc
@@ -125,11 +125,11 @@
     // having to instantiate a ParseInfo first. Fix this!
     ParseInfo parse_info(zone_, function);
 
-    CompilationInfo compilation_info(&parse_info);
+    CompilationInfo compilation_info(&parse_info, function);
     compilation_info.SetOptimizing();
     compilation_info.MarkAsDeoptimizationEnabled();
-    compiler::Pipeline pipeline(&compilation_info);
-    Handle<Code> code = pipeline.GenerateCode();
+    compilation_info.MarkAsOptimizeFromBytecode();
+    Handle<Code> code = Pipeline::GenerateCodeForTesting(&compilation_info);
     function->ReplaceCode(*code);
 
     return function;
diff --git a/test/cctest/compiler/test-run-calls-to-external-references.cc b/test/cctest/compiler/test-run-calls-to-external-references.cc
index 3b79cd8..430e238 100644
--- a/test/cctest/compiler/test-run-calls-to-external-references.cc
+++ b/test/cctest/compiler/test-run-calls-to-external-references.cc
@@ -2,6 +2,7 @@
 // source code is governed by a BSD-style license that can be found in the
 // LICENSE file.
 
+#include "src/wasm/wasm-external-refs.h"
 #include "test/cctest/cctest.h"
 #include "test/cctest/compiler/codegen-tester.h"
 #include "test/cctest/compiler/value-helper.h"
@@ -10,521 +11,234 @@
 namespace internal {
 namespace compiler {
 
-template <typename T>
-void TestExternalReferenceRoundingFunction(
-    BufferedRawMachineAssemblerTester<int32_t>* m, ExternalReference ref,
-    T (*comparison)(T)) {
-  T parameter;
+template <typename P>
+void TestExternalReference(BufferedRawMachineAssemblerTester<int32_t>* m,
+                           ExternalReference ref, void (*comparison)(P*),
+                           P param) {
+  P comparison_param = param;
 
   Node* function = m->ExternalConstant(ref);
   m->CallCFunction1(MachineType::Pointer(), MachineType::Pointer(), function,
-                    m->PointerConstant(&parameter));
+                    m->PointerConstant(&param));
   m->Return(m->Int32Constant(4356));
-  FOR_FLOAT64_INPUTS(i) {
-    parameter = *i;
-    m->Call();
-    CHECK_DOUBLE_EQ(comparison(*i), parameter);
-  }
+
+  m->Call();
+  comparison(&comparison_param);
+
+  CHECK_EQ(comparison_param, param);
+}
+
+template <typename P1, typename P2>
+void TestExternalReference(BufferedRawMachineAssemblerTester<int32_t>* m,
+                           ExternalReference ref, void (*comparison)(P1*, P2*),
+                           P1 param1, P2 param2) {
+  P1 comparison_param1 = param1;
+  P2 comparison_param2 = param2;
+
+  Node* function = m->ExternalConstant(ref);
+  m->CallCFunction2(MachineType::Pointer(), MachineType::Pointer(),
+                    MachineType::Pointer(), function,
+                    m->PointerConstant(&param1), m->PointerConstant(&param2));
+  m->Return(m->Int32Constant(4356));
+
+  m->Call();
+  comparison(&comparison_param1, &comparison_param2);
+
+  CHECK_EQ(comparison_param1, param1);
+  CHECK_EQ(comparison_param2, param2);
+}
+
+template <typename R, typename P>
+void TestExternalReference(BufferedRawMachineAssemblerTester<R>* m,
+                           ExternalReference ref, R (*comparison)(P*),
+                           P param) {
+  P comparison_param = param;
+
+  Node* function = m->ExternalConstant(ref);
+  m->Return(m->CallCFunction1(MachineType::Pointer(), MachineType::Pointer(),
+                              function, m->PointerConstant(&param)));
+
+  CHECK_EQ(comparison(&comparison_param), m->Call());
+
+  CHECK_EQ(comparison_param, param);
+}
+
+template <typename R, typename P1, typename P2>
+void TestExternalReference(BufferedRawMachineAssemblerTester<R>* m,
+                           ExternalReference ref, R (*comparison)(P1*, P2*),
+                           P1 param1, P2 param2) {
+  P1 comparison_param1 = param1;
+  P2 comparison_param2 = param2;
+
+  Node* function = m->ExternalConstant(ref);
+  m->Return(m->CallCFunction2(
+      MachineType::Pointer(), MachineType::Pointer(), MachineType::Pointer(),
+      function, m->PointerConstant(&param1), m->PointerConstant(&param2)));
+
+  CHECK_EQ(comparison(&comparison_param1, &comparison_param2), m->Call());
+
+  CHECK_EQ(comparison_param1, param1);
+  CHECK_EQ(comparison_param2, param2);
 }
 
 TEST(RunCallF32Trunc) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_f32_trunc(m.isolate());
-  TestExternalReferenceRoundingFunction<float>(&m, ref, truncf);
+  TestExternalReference(&m, ref, wasm::f32_trunc_wrapper, 1.25f);
 }
 
 TEST(RunCallF32Floor) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_f32_floor(m.isolate());
-  TestExternalReferenceRoundingFunction<float>(&m, ref, floorf);
+  TestExternalReference(&m, ref, wasm::f32_floor_wrapper, 1.25f);
 }
 
 TEST(RunCallF32Ceil) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_f32_ceil(m.isolate());
-  TestExternalReferenceRoundingFunction<float>(&m, ref, ceilf);
+  TestExternalReference(&m, ref, wasm::f32_ceil_wrapper, 1.25f);
 }
 
 TEST(RunCallF32RoundTiesEven) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_f32_nearest_int(m.isolate());
-  TestExternalReferenceRoundingFunction<float>(&m, ref, nearbyintf);
+  TestExternalReference(&m, ref, wasm::f32_nearest_int_wrapper, 1.25f);
 }
 
 TEST(RunCallF64Trunc) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_f64_trunc(m.isolate());
-  TestExternalReferenceRoundingFunction<double>(&m, ref, trunc);
+  TestExternalReference(&m, ref, wasm::f64_trunc_wrapper, 1.25);
 }
 
 TEST(RunCallF64Floor) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_f64_floor(m.isolate());
-  TestExternalReferenceRoundingFunction<double>(&m, ref, floor);
+  TestExternalReference(&m, ref, wasm::f64_floor_wrapper, 1.25);
 }
 
 TEST(RunCallF64Ceil) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_f64_ceil(m.isolate());
-  TestExternalReferenceRoundingFunction<double>(&m, ref, ceil);
+  TestExternalReference(&m, ref, wasm::f64_ceil_wrapper, 1.25);
 }
 
 TEST(RunCallF64RoundTiesEven) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_f64_nearest_int(m.isolate());
-  TestExternalReferenceRoundingFunction<double>(&m, ref, nearbyint);
+  TestExternalReference(&m, ref, wasm::f64_nearest_int_wrapper, 1.25);
 }
 
 TEST(RunCallInt64ToFloat32) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_int64_to_float32(m.isolate());
-
-  int64_t input;
-  float output;
-
-  Node* function = m.ExternalConstant(ref);
-  m.CallCFunction2(MachineType::Pointer(), MachineType::Pointer(),
-                   MachineType::Pointer(), function, m.PointerConstant(&input),
-                   m.PointerConstant(&output));
-  m.Return(m.Int32Constant(4356));
-  FOR_INT64_INPUTS(i) {
-    input = *i;
-    m.Call();
-    CHECK_FLOAT_EQ(static_cast<float>(*i), output);
-  }
+  TestExternalReference(&m, ref, wasm::int64_to_float32_wrapper, int64_t(-2124),
+                        1.25f);
 }
 
 TEST(RunCallUint64ToFloat32) {
-  struct {
-    uint64_t input;
-    uint32_t expected;
-  } values[] = {{0x0, 0x0},
-                {0x1, 0x3f800000},
-                {0xffffffff, 0x4f800000},
-                {0x1b09788b, 0x4dd84bc4},
-                {0x4c5fce8, 0x4c98bf9d},
-                {0xcc0de5bf, 0x4f4c0de6},
-                {0x2, 0x40000000},
-                {0x3, 0x40400000},
-                {0x4, 0x40800000},
-                {0x5, 0x40a00000},
-                {0x8, 0x41000000},
-                {0x9, 0x41100000},
-                {0xffffffffffffffff, 0x5f800000},
-                {0xfffffffffffffffe, 0x5f800000},
-                {0xfffffffffffffffd, 0x5f800000},
-                {0x0, 0x0},
-                {0x100000000, 0x4f800000},
-                {0xffffffff00000000, 0x5f800000},
-                {0x1b09788b00000000, 0x5dd84bc4},
-                {0x4c5fce800000000, 0x5c98bf9d},
-                {0xcc0de5bf00000000, 0x5f4c0de6},
-                {0x200000000, 0x50000000},
-                {0x300000000, 0x50400000},
-                {0x400000000, 0x50800000},
-                {0x500000000, 0x50a00000},
-                {0x800000000, 0x51000000},
-                {0x900000000, 0x51100000},
-                {0x273a798e187937a3, 0x5e1ce9e6},
-                {0xece3af835495a16b, 0x5f6ce3b0},
-                {0xb668ecc11223344, 0x5d3668ed},
-                {0x9e, 0x431e0000},
-                {0x43, 0x42860000},
-                {0xaf73, 0x472f7300},
-                {0x116b, 0x458b5800},
-                {0x658ecc, 0x4acb1d98},
-                {0x2b3b4c, 0x4a2ced30},
-                {0x88776655, 0x4f087766},
-                {0x70000000, 0x4ee00000},
-                {0x7200000, 0x4ce40000},
-                {0x7fffffff, 0x4f000000},
-                {0x56123761, 0x4eac246f},
-                {0x7fffff00, 0x4efffffe},
-                {0x761c4761eeeeeeee, 0x5eec388f},
-                {0x80000000eeeeeeee, 0x5f000000},
-                {0x88888888dddddddd, 0x5f088889},
-                {0xa0000000dddddddd, 0x5f200000},
-                {0xddddddddaaaaaaaa, 0x5f5dddde},
-                {0xe0000000aaaaaaaa, 0x5f600000},
-                {0xeeeeeeeeeeeeeeee, 0x5f6eeeef},
-                {0xfffffffdeeeeeeee, 0x5f800000},
-                {0xf0000000dddddddd, 0x5f700000},
-                {0x7fffffdddddddd, 0x5b000000},
-                {0x3fffffaaaaaaaa, 0x5a7fffff},
-                {0x1fffffaaaaaaaa, 0x59fffffd},
-                {0xfffff, 0x497ffff0},
-                {0x7ffff, 0x48ffffe0},
-                {0x3ffff, 0x487fffc0},
-                {0x1ffff, 0x47ffff80},
-                {0xffff, 0x477fff00},
-                {0x7fff, 0x46fffe00},
-                {0x3fff, 0x467ffc00},
-                {0x1fff, 0x45fff800},
-                {0xfff, 0x457ff000},
-                {0x7ff, 0x44ffe000},
-                {0x3ff, 0x447fc000},
-                {0x1ff, 0x43ff8000},
-                {0x3fffffffffff, 0x56800000},
-                {0x1fffffffffff, 0x56000000},
-                {0xfffffffffff, 0x55800000},
-                {0x7ffffffffff, 0x55000000},
-                {0x3ffffffffff, 0x54800000},
-                {0x1ffffffffff, 0x54000000},
-                {0x8000008000000000, 0x5f000000},
-                {0x8000008000000001, 0x5f000001},
-                {0x8000008000000002, 0x5f000001},
-                {0x8000008000000004, 0x5f000001},
-                {0x8000008000000008, 0x5f000001},
-                {0x8000008000000010, 0x5f000001},
-                {0x8000008000000020, 0x5f000001},
-                {0x8000009000000000, 0x5f000001},
-                {0x800000a000000000, 0x5f000001},
-                {0x8000008000100000, 0x5f000001},
-                {0x8000000000000400, 0x5f000000},
-                {0x8000000000000401, 0x5f000000}};
-
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref =
       ExternalReference::wasm_uint64_to_float32(m.isolate());
-
-  uint64_t input;
-  float output;
-
-  Node* function = m.ExternalConstant(ref);
-  m.CallCFunction2(MachineType::Pointer(), MachineType::Pointer(),
-                   MachineType::Pointer(), function, m.PointerConstant(&input),
-                   m.PointerConstant(&output));
-  m.Return(m.Int32Constant(4356));
-
-  for (size_t i = 0; i < arraysize(values); i++) {
-    input = values[i].input;
-    m.Call();
-    CHECK_EQ(values[i].expected, bit_cast<uint32_t>(output));
-  }
+  TestExternalReference(&m, ref, wasm::uint64_to_float32_wrapper,
+                        uint64_t(2124), 1.25f);
 }
 
 TEST(RunCallInt64ToFloat64) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_int64_to_float64(m.isolate());
-
-  int64_t input;
-  double output;
-
-  Node* function = m.ExternalConstant(ref);
-  m.CallCFunction2(MachineType::Pointer(), MachineType::Pointer(),
-                   MachineType::Pointer(), function, m.PointerConstant(&input),
-                   m.PointerConstant(&output));
-  m.Return(m.Int32Constant(4356));
-  FOR_INT64_INPUTS(i) {
-    input = *i;
-    m.Call();
-    CHECK_DOUBLE_EQ(static_cast<double>(*i), output);
-  }
+  TestExternalReference(&m, ref, wasm::int64_to_float64_wrapper, int64_t(2124),
+                        1.25);
 }
 
 TEST(RunCallUint64ToFloat64) {
-  struct {
-    uint64_t input;
-    uint64_t expected;
-  } values[] = {{0x0, 0x0},
-                {0x1, 0x3ff0000000000000},
-                {0xffffffff, 0x41efffffffe00000},
-                {0x1b09788b, 0x41bb09788b000000},
-                {0x4c5fce8, 0x419317f3a0000000},
-                {0xcc0de5bf, 0x41e981bcb7e00000},
-                {0x2, 0x4000000000000000},
-                {0x3, 0x4008000000000000},
-                {0x4, 0x4010000000000000},
-                {0x5, 0x4014000000000000},
-                {0x8, 0x4020000000000000},
-                {0x9, 0x4022000000000000},
-                {0xffffffffffffffff, 0x43f0000000000000},
-                {0xfffffffffffffffe, 0x43f0000000000000},
-                {0xfffffffffffffffd, 0x43f0000000000000},
-                {0x100000000, 0x41f0000000000000},
-                {0xffffffff00000000, 0x43efffffffe00000},
-                {0x1b09788b00000000, 0x43bb09788b000000},
-                {0x4c5fce800000000, 0x439317f3a0000000},
-                {0xcc0de5bf00000000, 0x43e981bcb7e00000},
-                {0x200000000, 0x4200000000000000},
-                {0x300000000, 0x4208000000000000},
-                {0x400000000, 0x4210000000000000},
-                {0x500000000, 0x4214000000000000},
-                {0x800000000, 0x4220000000000000},
-                {0x900000000, 0x4222000000000000},
-                {0x273a798e187937a3, 0x43c39d3cc70c3c9c},
-                {0xece3af835495a16b, 0x43ed9c75f06a92b4},
-                {0xb668ecc11223344, 0x43a6cd1d98224467},
-                {0x9e, 0x4063c00000000000},
-                {0x43, 0x4050c00000000000},
-                {0xaf73, 0x40e5ee6000000000},
-                {0x116b, 0x40b16b0000000000},
-                {0x658ecc, 0x415963b300000000},
-                {0x2b3b4c, 0x41459da600000000},
-                {0x88776655, 0x41e10eeccaa00000},
-                {0x70000000, 0x41dc000000000000},
-                {0x7200000, 0x419c800000000000},
-                {0x7fffffff, 0x41dfffffffc00000},
-                {0x56123761, 0x41d5848dd8400000},
-                {0x7fffff00, 0x41dfffffc0000000},
-                {0x761c4761eeeeeeee, 0x43dd8711d87bbbbc},
-                {0x80000000eeeeeeee, 0x43e00000001dddde},
-                {0x88888888dddddddd, 0x43e11111111bbbbc},
-                {0xa0000000dddddddd, 0x43e40000001bbbbc},
-                {0xddddddddaaaaaaaa, 0x43ebbbbbbbb55555},
-                {0xe0000000aaaaaaaa, 0x43ec000000155555},
-                {0xeeeeeeeeeeeeeeee, 0x43edddddddddddde},
-                {0xfffffffdeeeeeeee, 0x43efffffffbdddde},
-                {0xf0000000dddddddd, 0x43ee0000001bbbbc},
-                {0x7fffffdddddddd, 0x435ffffff7777777},
-                {0x3fffffaaaaaaaa, 0x434fffffd5555555},
-                {0x1fffffaaaaaaaa, 0x433fffffaaaaaaaa},
-                {0xfffff, 0x412ffffe00000000},
-                {0x7ffff, 0x411ffffc00000000},
-                {0x3ffff, 0x410ffff800000000},
-                {0x1ffff, 0x40fffff000000000},
-                {0xffff, 0x40efffe000000000},
-                {0x7fff, 0x40dfffc000000000},
-                {0x3fff, 0x40cfff8000000000},
-                {0x1fff, 0x40bfff0000000000},
-                {0xfff, 0x40affe0000000000},
-                {0x7ff, 0x409ffc0000000000},
-                {0x3ff, 0x408ff80000000000},
-                {0x1ff, 0x407ff00000000000},
-                {0x3fffffffffff, 0x42cfffffffffff80},
-                {0x1fffffffffff, 0x42bfffffffffff00},
-                {0xfffffffffff, 0x42affffffffffe00},
-                {0x7ffffffffff, 0x429ffffffffffc00},
-                {0x3ffffffffff, 0x428ffffffffff800},
-                {0x1ffffffffff, 0x427ffffffffff000},
-                {0x8000008000000000, 0x43e0000010000000},
-                {0x8000008000000001, 0x43e0000010000000},
-                {0x8000000000000400, 0x43e0000000000000},
-                {0x8000000000000401, 0x43e0000000000001},
-                {0x8000000000000402, 0x43e0000000000001},
-                {0x8000000000000404, 0x43e0000000000001},
-                {0x8000000000000408, 0x43e0000000000001},
-                {0x8000000000000410, 0x43e0000000000001},
-                {0x8000000000000420, 0x43e0000000000001},
-                {0x8000000000000440, 0x43e0000000000001},
-                {0x8000000000000480, 0x43e0000000000001},
-                {0x8000000000000500, 0x43e0000000000001},
-                {0x8000000000000600, 0x43e0000000000001}};
-
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref =
       ExternalReference::wasm_uint64_to_float64(m.isolate());
-
-  uint64_t input;
-  double output;
-
-  Node* function = m.ExternalConstant(ref);
-  m.CallCFunction2(MachineType::Pointer(), MachineType::Pointer(),
-                   MachineType::Pointer(), function, m.PointerConstant(&input),
-                   m.PointerConstant(&output));
-  m.Return(m.Int32Constant(4356));
-
-  for (size_t i = 0; i < arraysize(values); i++) {
-    input = values[i].input;
-    m.Call();
-    CHECK_EQ(values[i].expected, bit_cast<uint64_t>(output));
-  }
+  TestExternalReference(&m, ref, wasm::uint64_to_float64_wrapper,
+                        uint64_t(2124), 1.25);
 }
 
 TEST(RunCallFloat32ToInt64) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_float32_to_int64(m.isolate());
-
-  float input;
-  int64_t output;
-
-  Node* function = m.ExternalConstant(ref);
-  m.Return(m.CallCFunction2(
-      MachineType::Int32(), MachineType::Pointer(), MachineType::Pointer(),
-      function, m.PointerConstant(&input), m.PointerConstant(&output)));
-  FOR_FLOAT32_INPUTS(i) {
-    input = *i;
-    if (*i >= static_cast<float>(std::numeric_limits<int64_t>::min()) &&
-        *i < static_cast<float>(std::numeric_limits<int64_t>::max())) {
-      CHECK_EQ(1, m.Call());
-      CHECK_EQ(static_cast<int64_t>(*i), output);
-    } else {
-      CHECK_EQ(0, m.Call());
-    }
-  }
+  TestExternalReference(&m, ref, wasm::float32_to_int64_wrapper, 1.25f,
+                        int64_t(2124));
 }
 
 TEST(RunCallFloat32ToUint64) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref =
       ExternalReference::wasm_float32_to_uint64(m.isolate());
-
-  float input;
-  uint64_t output;
-
-  Node* function = m.ExternalConstant(ref);
-  m.Return(m.CallCFunction2(
-      MachineType::Int32(), MachineType::Pointer(), MachineType::Pointer(),
-      function, m.PointerConstant(&input), m.PointerConstant(&output)));
-  FOR_FLOAT32_INPUTS(i) {
-    input = *i;
-    if (*i > -1.0 &&
-        *i < static_cast<float>(std::numeric_limits<uint64_t>::max())) {
-      CHECK_EQ(1, m.Call());
-      CHECK_EQ(static_cast<uint64_t>(*i), output);
-    } else {
-      CHECK_EQ(0, m.Call());
-    }
-  }
+  TestExternalReference(&m, ref, wasm::float32_to_uint64_wrapper, 1.25f,
+                        uint64_t(2124));
 }
 
 TEST(RunCallFloat64ToInt64) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_float64_to_int64(m.isolate());
-
-  double input;
-  int64_t output;
-
-  Node* function = m.ExternalConstant(ref);
-  m.Return(m.CallCFunction2(
-      MachineType::Int32(), MachineType::Pointer(), MachineType::Pointer(),
-      function, m.PointerConstant(&input), m.PointerConstant(&output)));
-  FOR_FLOAT64_INPUTS(i) {
-    input = *i;
-    if (*i >= static_cast<double>(std::numeric_limits<int64_t>::min()) &&
-        *i < static_cast<double>(std::numeric_limits<int64_t>::max())) {
-      CHECK_EQ(1, m.Call());
-      CHECK_EQ(static_cast<int64_t>(*i), output);
-    } else {
-      CHECK_EQ(0, m.Call());
-    }
-  }
+  TestExternalReference(&m, ref, wasm::float64_to_int64_wrapper, 1.25,
+                        int64_t(2124));
 }
 
 TEST(RunCallFloat64ToUint64) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref =
       ExternalReference::wasm_float64_to_uint64(m.isolate());
-
-  double input;
-  uint64_t output;
-
-  Node* function = m.ExternalConstant(ref);
-  m.Return(m.CallCFunction2(
-      MachineType::Int32(), MachineType::Pointer(), MachineType::Pointer(),
-      function, m.PointerConstant(&input), m.PointerConstant(&output)));
-  FOR_FLOAT64_INPUTS(i) {
-    input = *i;
-    if (*i > -1.0 &&
-        *i < static_cast<double>(std::numeric_limits<uint64_t>::max())) {
-      CHECK_EQ(1, m.Call());
-      CHECK_EQ(static_cast<uint64_t>(*i), output);
-    } else {
-      CHECK_EQ(0, m.Call());
-    }
-  }
+  TestExternalReference(&m, ref, wasm::float64_to_uint64_wrapper, 1.25,
+                        uint64_t(2124));
 }
 
 TEST(RunCallInt64Div) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_int64_div(m.isolate());
-
-  int64_t dst;
-  int64_t src;
-
-  Node* function = m.ExternalConstant(ref);
-  m.Return(m.CallCFunction2(MachineType::Int32(), MachineType::Pointer(),
-                            MachineType::Pointer(), function,
-                            m.PointerConstant(&dst), m.PointerConstant(&src)));
-  FOR_INT64_INPUTS(i) {
-    FOR_INT64_INPUTS(j) {
-      dst = *i;
-      src = *j;
-      if (src == 0) {
-        CHECK_EQ(0, m.Call());
-      } else if (src == -1 && dst == std::numeric_limits<int64_t>::min()) {
-        CHECK_EQ(-1, m.Call());
-      } else {
-        CHECK_EQ(1, m.Call());
-        CHECK_EQ(*i / *j, dst);
-      }
-    }
-  }
+  TestExternalReference(&m, ref, wasm::int64_div_wrapper, int64_t(1774),
+                        int64_t(21));
 }
 
 TEST(RunCallInt64Mod) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_int64_mod(m.isolate());
-
-  int64_t dst;
-  int64_t src;
-
-  Node* function = m.ExternalConstant(ref);
-  m.Return(m.CallCFunction2(MachineType::Int32(), MachineType::Pointer(),
-                            MachineType::Pointer(), function,
-                            m.PointerConstant(&dst), m.PointerConstant(&src)));
-  FOR_INT64_INPUTS(i) {
-    FOR_INT64_INPUTS(j) {
-      dst = *i;
-      src = *j;
-      if (src == 0) {
-        CHECK_EQ(0, m.Call());
-      } else {
-        CHECK_EQ(1, m.Call());
-        CHECK_EQ(*i % *j, dst);
-      }
-    }
-  }
+  TestExternalReference(&m, ref, wasm::int64_mod_wrapper, int64_t(1774),
+                        int64_t(21));
 }
 
 TEST(RunCallUint64Div) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_uint64_div(m.isolate());
-
-  uint64_t dst;
-  uint64_t src;
-
-  Node* function = m.ExternalConstant(ref);
-  m.Return(m.CallCFunction2(MachineType::Int32(), MachineType::Pointer(),
-                            MachineType::Pointer(), function,
-                            m.PointerConstant(&dst), m.PointerConstant(&src)));
-  FOR_UINT64_INPUTS(i) {
-    FOR_UINT64_INPUTS(j) {
-      dst = *i;
-      src = *j;
-      if (src == 0) {
-        CHECK_EQ(0, m.Call());
-      } else {
-        CHECK_EQ(1, m.Call());
-        CHECK_EQ(*i / *j, dst);
-      }
-    }
-  }
+  TestExternalReference(&m, ref, wasm::uint64_div_wrapper, uint64_t(1774),
+                        uint64_t(21));
 }
 
 TEST(RunCallUint64Mod) {
   BufferedRawMachineAssemblerTester<int32_t> m;
   ExternalReference ref = ExternalReference::wasm_uint64_mod(m.isolate());
+  TestExternalReference(&m, ref, wasm::uint64_mod_wrapper, uint64_t(1774),
+                        uint64_t(21));
+}
 
-  uint64_t dst;
-  uint64_t src;
+TEST(RunCallWord32Ctz) {
+  BufferedRawMachineAssemblerTester<uint32_t> m;
+  ExternalReference ref = ExternalReference::wasm_word32_ctz(m.isolate());
+  TestExternalReference(&m, ref, wasm::word32_ctz_wrapper, uint32_t(1774));
+}
 
-  Node* function = m.ExternalConstant(ref);
-  m.Return(m.CallCFunction2(MachineType::Int32(), MachineType::Pointer(),
-                            MachineType::Pointer(), function,
-                            m.PointerConstant(&dst), m.PointerConstant(&src)));
-  FOR_UINT64_INPUTS(i) {
-    FOR_UINT64_INPUTS(j) {
-      dst = *i;
-      src = *j;
-      if (src == 0) {
-        CHECK_EQ(0, m.Call());
-      } else {
-        CHECK_EQ(1, m.Call());
-        CHECK_EQ(*i % *j, dst);
-      }
-    }
-  }
+TEST(RunCallWord64Ctz) {
+  BufferedRawMachineAssemblerTester<uint32_t> m;
+  ExternalReference ref = ExternalReference::wasm_word64_ctz(m.isolate());
+  TestExternalReference(&m, ref, wasm::word64_ctz_wrapper, uint64_t(1774));
+}
+
+TEST(RunCallWord32Popcnt) {
+  BufferedRawMachineAssemblerTester<uint32_t> m;
+  ExternalReference ref = ExternalReference::wasm_word32_popcnt(m.isolate());
+  TestExternalReference(&m, ref, wasm::word32_popcnt_wrapper, uint32_t(1774));
+}
+
+TEST(RunCallWord64Popcnt) {
+  BufferedRawMachineAssemblerTester<uint32_t> m;
+  ExternalReference ref = ExternalReference::wasm_word64_popcnt(m.isolate());
+  TestExternalReference(&m, ref, wasm::word64_popcnt_wrapper, uint64_t(1774));
 }
 }  // namespace compiler
 }  // namespace internal
diff --git a/test/cctest/compiler/test-run-inlining.cc b/test/cctest/compiler/test-run-inlining.cc
index 234060c..e689bf7 100644
--- a/test/cctest/compiler/test-run-inlining.cc
+++ b/test/cctest/compiler/test-run-inlining.cc
@@ -16,9 +16,9 @@
 void AssertInlineCount(const v8::FunctionCallbackInfo<v8::Value>& args) {
   StackTraceFrameIterator it(CcTest::i_isolate());
   int frames_seen = 0;
-  JavaScriptFrame* topmost = it.frame();
+  JavaScriptFrame* topmost = it.javascript_frame();
   while (!it.done()) {
-    JavaScriptFrame* frame = it.frame();
+    JavaScriptFrame* frame = it.javascript_frame();
     List<JSFunction*> functions(2);
     frame->GetFunctions(&functions);
     PrintF("%d %s, inline count: %d\n", frames_seen,
@@ -47,14 +47,11 @@
             .FromJust());
 }
 
-
 const uint32_t kRestrictedInliningFlags =
-    CompilationInfo::kFunctionContextSpecializing |
-    CompilationInfo::kTypingEnabled;
+    CompilationInfo::kFunctionContextSpecializing;
 
 const uint32_t kInlineFlags = CompilationInfo::kInliningEnabled |
-                              CompilationInfo::kFunctionContextSpecializing |
-                              CompilationInfo::kTypingEnabled;
+                              CompilationInfo::kFunctionContextSpecializing;
 
 }  // namespace
 
diff --git a/test/cctest/compiler/test-run-jsops.cc b/test/cctest/compiler/test-run-jsops.cc
index b68fc1c..78e1257 100644
--- a/test/cctest/compiler/test-run-jsops.cc
+++ b/test/cctest/compiler/test-run-jsops.cc
@@ -512,7 +512,6 @@
 
 
 TEST(ClassLiteral) {
-  FLAG_harmony_sloppy = true;
   const char* src =
       "(function(a,b) {"
       "  class C {"
diff --git a/test/cctest/compiler/test-run-load-store.cc b/test/cctest/compiler/test-run-load-store.cc
new file mode 100644
index 0000000..6484d30
--- /dev/null
+++ b/test/cctest/compiler/test-run-load-store.cc
@@ -0,0 +1,919 @@
+// Copyright 2016 the V8 project authors. All rights reserved. Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#include <cmath>
+#include <functional>
+#include <limits>
+
+#include "src/base/bits.h"
+#include "src/base/utils/random-number-generator.h"
+#include "src/codegen.h"
+#include "test/cctest/cctest.h"
+#include "test/cctest/compiler/codegen-tester.h"
+#include "test/cctest/compiler/graph-builder-tester.h"
+#include "test/cctest/compiler/value-helper.h"
+
+using namespace v8::base;
+
+namespace {
+template <typename Type>
+void CheckOobValue(Type val) {
+  UNREACHABLE();
+}
+
+template <>
+void CheckOobValue(int32_t val) {
+  CHECK_EQ(0, val);
+}
+
+template <>
+void CheckOobValue(int64_t val) {
+  CHECK_EQ(0, val);
+}
+
+template <>
+void CheckOobValue(float val) {
+  CHECK(std::isnan(val));
+}
+
+template <>
+void CheckOobValue(double val) {
+  CHECK(std::isnan(val));
+}
+}  // namespace
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+// This is a America!
+#define A_BILLION 1000000000ULL
+#define A_GIG (1024ULL * 1024ULL * 1024ULL)
+
+TEST(RunLoadInt32) {
+  RawMachineAssemblerTester<int32_t> m;
+
+  int32_t p1 = 0;  // loads directly from this location.
+  m.Return(m.LoadFromPointer(&p1, MachineType::Int32()));
+
+  FOR_INT32_INPUTS(i) {
+    p1 = *i;
+    CHECK_EQ(p1, m.Call());
+  }
+}
+
+TEST(RunLoadInt32Offset) {
+  int32_t p1 = 0;  // loads directly from this location.
+
+  int32_t offsets[] = {-2000000, -100, -101, 1,          3,
+                       7,        120,  2000, 2000000000, 0xff};
+
+  for (size_t i = 0; i < arraysize(offsets); i++) {
+    RawMachineAssemblerTester<int32_t> m;
+    int32_t offset = offsets[i];
+    byte* pointer = reinterpret_cast<byte*>(&p1) - offset;
+    // generate load [#base + #index]
+    m.Return(m.LoadFromPointer(pointer, MachineType::Int32(), offset));
+
+    FOR_INT32_INPUTS(j) {
+      p1 = *j;
+      CHECK_EQ(p1, m.Call());
+    }
+  }
+}
+
+TEST(RunLoadStoreFloat32Offset) {
+  float p1 = 0.0f;  // loads directly from this location.
+  float p2 = 0.0f;  // and stores directly into this location.
+
+  FOR_INT32_INPUTS(i) {
+    int32_t magic = 0x2342aabb + *i * 3;
+    RawMachineAssemblerTester<int32_t> m;
+    int32_t offset = *i;
+    byte* from = reinterpret_cast<byte*>(&p1) - offset;
+    byte* to = reinterpret_cast<byte*>(&p2) - offset;
+    // generate load [#base + #index]
+    Node* load = m.Load(MachineType::Float32(), m.PointerConstant(from),
+                        m.IntPtrConstant(offset));
+    m.Store(MachineRepresentation::kFloat32, m.PointerConstant(to),
+            m.IntPtrConstant(offset), load, kNoWriteBarrier);
+    m.Return(m.Int32Constant(magic));
+
+    FOR_FLOAT32_INPUTS(j) {
+      p1 = *j;
+      p2 = *j - 5;
+      CHECK_EQ(magic, m.Call());
+      CheckDoubleEq(p1, p2);
+    }
+  }
+}
+
+TEST(RunLoadStoreFloat64Offset) {
+  double p1 = 0;  // loads directly from this location.
+  double p2 = 0;  // and stores directly into this location.
+
+  FOR_INT32_INPUTS(i) {
+    int32_t magic = 0x2342aabb + *i * 3;
+    RawMachineAssemblerTester<int32_t> m;
+    int32_t offset = *i;
+    byte* from = reinterpret_cast<byte*>(&p1) - offset;
+    byte* to = reinterpret_cast<byte*>(&p2) - offset;
+    // generate load [#base + #index]
+    Node* load = m.Load(MachineType::Float64(), m.PointerConstant(from),
+                        m.IntPtrConstant(offset));
+    m.Store(MachineRepresentation::kFloat64, m.PointerConstant(to),
+            m.IntPtrConstant(offset), load, kNoWriteBarrier);
+    m.Return(m.Int32Constant(magic));
+
+    FOR_FLOAT64_INPUTS(j) {
+      p1 = *j;
+      p2 = *j - 5;
+      CHECK_EQ(magic, m.Call());
+      CheckDoubleEq(p1, p2);
+    }
+  }
+}
+
+namespace {
+template <typename Type>
+void RunLoadImmIndex(MachineType rep) {
+  const int kNumElems = 3;
+  Type buffer[kNumElems];
+
+  // initialize the buffer with some raw data.
+  byte* raw = reinterpret_cast<byte*>(buffer);
+  for (size_t i = 0; i < sizeof(buffer); i++) {
+    raw[i] = static_cast<byte>((i + sizeof(buffer)) ^ 0xAA);
+  }
+
+  // Test with various large and small offsets.
+  for (int offset = -1; offset <= 200000; offset *= -5) {
+    for (int i = 0; i < kNumElems; i++) {
+      BufferedRawMachineAssemblerTester<Type> m;
+      Node* base = m.PointerConstant(buffer - offset);
+      Node* index = m.Int32Constant((offset + i) * sizeof(buffer[0]));
+      m.Return(m.Load(rep, base, index));
+
+      volatile Type expected = buffer[i];
+      volatile Type actual = m.Call();
+      CHECK_EQ(expected, actual);
+    }
+  }
+}
+
+template <typename CType>
+void RunLoadStore(MachineType rep) {
+  const int kNumElems = 4;
+  CType buffer[kNumElems];
+
+  for (int32_t x = 0; x < kNumElems; x++) {
+    int32_t y = kNumElems - x - 1;
+    // initialize the buffer with raw data.
+    byte* raw = reinterpret_cast<byte*>(buffer);
+    for (size_t i = 0; i < sizeof(buffer); i++) {
+      raw[i] = static_cast<byte>((i + sizeof(buffer)) ^ 0xAA);
+    }
+
+    RawMachineAssemblerTester<int32_t> m;
+    int32_t OK = 0x29000 + x;
+    Node* base = m.PointerConstant(buffer);
+    Node* index0 = m.IntPtrConstant(x * sizeof(buffer[0]));
+    Node* load = m.Load(rep, base, index0);
+    Node* index1 = m.IntPtrConstant(y * sizeof(buffer[0]));
+    m.Store(rep.representation(), base, index1, load, kNoWriteBarrier);
+    m.Return(m.Int32Constant(OK));
+
+    CHECK(buffer[x] != buffer[y]);
+    CHECK_EQ(OK, m.Call());
+    CHECK(buffer[x] == buffer[y]);
+  }
+}
+}  // namespace
+
+TEST(RunLoadImmIndex) {
+  RunLoadImmIndex<int8_t>(MachineType::Int8());
+  RunLoadImmIndex<uint8_t>(MachineType::Uint8());
+  RunLoadImmIndex<int16_t>(MachineType::Int16());
+  RunLoadImmIndex<uint16_t>(MachineType::Uint16());
+  RunLoadImmIndex<int32_t>(MachineType::Int32());
+  RunLoadImmIndex<uint32_t>(MachineType::Uint32());
+  RunLoadImmIndex<int32_t*>(MachineType::AnyTagged());
+  RunLoadImmIndex<float>(MachineType::Float32());
+  RunLoadImmIndex<double>(MachineType::Float64());
+#if V8_TARGET_ARCH_64_BIT
+  RunLoadImmIndex<int64_t>(MachineType::Int64());
+#endif
+  // TODO(titzer): test various indexing modes.
+}
+
+TEST(RunLoadStore) {
+  RunLoadStore<int8_t>(MachineType::Int8());
+  RunLoadStore<uint8_t>(MachineType::Uint8());
+  RunLoadStore<int16_t>(MachineType::Int16());
+  RunLoadStore<uint16_t>(MachineType::Uint16());
+  RunLoadStore<int32_t>(MachineType::Int32());
+  RunLoadStore<uint32_t>(MachineType::Uint32());
+  RunLoadStore<void*>(MachineType::AnyTagged());
+  RunLoadStore<float>(MachineType::Float32());
+  RunLoadStore<double>(MachineType::Float64());
+#if V8_TARGET_ARCH_64_BIT
+  RunLoadStore<int64_t>(MachineType::Int64());
+#endif
+}
+
+#if V8_TARGET_LITTLE_ENDIAN
+#define LSB(addr, bytes) addr
+#elif V8_TARGET_BIG_ENDIAN
+#define LSB(addr, bytes) reinterpret_cast<byte*>(addr + 1) - bytes
+#else
+#error "Unknown Architecture"
+#endif
+
+TEST(RunLoadStoreSignExtend32) {
+  int32_t buffer[4];
+  RawMachineAssemblerTester<int32_t> m;
+  Node* load8 = m.LoadFromPointer(LSB(&buffer[0], 1), MachineType::Int8());
+  Node* load16 = m.LoadFromPointer(LSB(&buffer[0], 2), MachineType::Int16());
+  Node* load32 = m.LoadFromPointer(&buffer[0], MachineType::Int32());
+  m.StoreToPointer(&buffer[1], MachineRepresentation::kWord32, load8);
+  m.StoreToPointer(&buffer[2], MachineRepresentation::kWord32, load16);
+  m.StoreToPointer(&buffer[3], MachineRepresentation::kWord32, load32);
+  m.Return(load8);
+
+  FOR_INT32_INPUTS(i) {
+    buffer[0] = *i;
+
+    CHECK_EQ(static_cast<int8_t>(*i & 0xff), m.Call());
+    CHECK_EQ(static_cast<int8_t>(*i & 0xff), buffer[1]);
+    CHECK_EQ(static_cast<int16_t>(*i & 0xffff), buffer[2]);
+    CHECK_EQ(*i, buffer[3]);
+  }
+}
+
+TEST(RunLoadStoreZeroExtend32) {
+  uint32_t buffer[4];
+  RawMachineAssemblerTester<uint32_t> m;
+  Node* load8 = m.LoadFromPointer(LSB(&buffer[0], 1), MachineType::Uint8());
+  Node* load16 = m.LoadFromPointer(LSB(&buffer[0], 2), MachineType::Uint16());
+  Node* load32 = m.LoadFromPointer(&buffer[0], MachineType::Uint32());
+  m.StoreToPointer(&buffer[1], MachineRepresentation::kWord32, load8);
+  m.StoreToPointer(&buffer[2], MachineRepresentation::kWord32, load16);
+  m.StoreToPointer(&buffer[3], MachineRepresentation::kWord32, load32);
+  m.Return(load8);
+
+  FOR_UINT32_INPUTS(i) {
+    buffer[0] = *i;
+
+    CHECK_EQ((*i & 0xff), m.Call());
+    CHECK_EQ((*i & 0xff), buffer[1]);
+    CHECK_EQ((*i & 0xffff), buffer[2]);
+    CHECK_EQ(*i, buffer[3]);
+  }
+}
+
+#if V8_TARGET_ARCH_64_BIT
+TEST(RunCheckedLoadInt64) {
+  int64_t buffer[] = {0x66bbccddeeff0011LL, 0x1122334455667788LL};
+  RawMachineAssemblerTester<int64_t> m(MachineType::Int32());
+  Node* base = m.PointerConstant(buffer);
+  Node* index = m.Parameter(0);
+  Node* length = m.Int32Constant(16);
+  Node* load = m.AddNode(m.machine()->CheckedLoad(MachineType::Int64()), base,
+                         index, length);
+  m.Return(load);
+
+  CHECK_EQ(buffer[0], m.Call(0));
+  CHECK_EQ(buffer[1], m.Call(8));
+  CheckOobValue(m.Call(16));
+}
+
+TEST(RunLoadStoreSignExtend64) {
+  if (true) return;  // TODO(titzer): sign extension of loads to 64-bit.
+  int64_t buffer[5];
+  RawMachineAssemblerTester<int64_t> m;
+  Node* load8 = m.LoadFromPointer(LSB(&buffer[0], 1), MachineType::Int8());
+  Node* load16 = m.LoadFromPointer(LSB(&buffer[0], 2), MachineType::Int16());
+  Node* load32 = m.LoadFromPointer(LSB(&buffer[0], 4), MachineType::Int32());
+  Node* load64 = m.LoadFromPointer(&buffer[0], MachineType::Int64());
+  m.StoreToPointer(&buffer[1], MachineRepresentation::kWord64, load8);
+  m.StoreToPointer(&buffer[2], MachineRepresentation::kWord64, load16);
+  m.StoreToPointer(&buffer[3], MachineRepresentation::kWord64, load32);
+  m.StoreToPointer(&buffer[4], MachineRepresentation::kWord64, load64);
+  m.Return(load8);
+
+  FOR_INT64_INPUTS(i) {
+    buffer[0] = *i;
+
+    CHECK_EQ(static_cast<int8_t>(*i & 0xff), m.Call());
+    CHECK_EQ(static_cast<int8_t>(*i & 0xff), buffer[1]);
+    CHECK_EQ(static_cast<int16_t>(*i & 0xffff), buffer[2]);
+    CHECK_EQ(static_cast<int32_t>(*i & 0xffffffff), buffer[3]);
+    CHECK_EQ(*i, buffer[4]);
+  }
+}
+
+TEST(RunLoadStoreZeroExtend64) {
+  if (kPointerSize < 8) return;
+  uint64_t buffer[5];
+  RawMachineAssemblerTester<int64_t> m;
+  Node* load8 = m.LoadFromPointer(LSB(&buffer[0], 1), MachineType::Uint8());
+  Node* load16 = m.LoadFromPointer(LSB(&buffer[0], 2), MachineType::Uint16());
+  Node* load32 = m.LoadFromPointer(LSB(&buffer[0], 4), MachineType::Uint32());
+  Node* load64 = m.LoadFromPointer(&buffer[0], MachineType::Uint64());
+  m.StoreToPointer(&buffer[1], MachineRepresentation::kWord64, load8);
+  m.StoreToPointer(&buffer[2], MachineRepresentation::kWord64, load16);
+  m.StoreToPointer(&buffer[3], MachineRepresentation::kWord64, load32);
+  m.StoreToPointer(&buffer[4], MachineRepresentation::kWord64, load64);
+  m.Return(load8);
+
+  FOR_UINT64_INPUTS(i) {
+    buffer[0] = *i;
+
+    CHECK_EQ((*i & 0xff), m.Call());
+    CHECK_EQ((*i & 0xff), buffer[1]);
+    CHECK_EQ((*i & 0xffff), buffer[2]);
+    CHECK_EQ((*i & 0xffffffff), buffer[3]);
+    CHECK_EQ(*i, buffer[4]);
+  }
+}
+
+TEST(RunCheckedStoreInt64) {
+  const int64_t write = 0x5566778899aabbLL;
+  const int64_t before = 0x33bbccddeeff0011LL;
+  int64_t buffer[] = {before, before};
+  RawMachineAssemblerTester<int32_t> m(MachineType::Int32());
+  Node* base = m.PointerConstant(buffer);
+  Node* index = m.Parameter(0);
+  Node* length = m.Int32Constant(16);
+  Node* value = m.Int64Constant(write);
+  Node* store =
+      m.AddNode(m.machine()->CheckedStore(MachineRepresentation::kWord64), base,
+                index, length, value);
+  USE(store);
+  m.Return(m.Int32Constant(11));
+
+  CHECK_EQ(11, m.Call(16));
+  CHECK_EQ(before, buffer[0]);
+  CHECK_EQ(before, buffer[1]);
+
+  CHECK_EQ(11, m.Call(0));
+  CHECK_EQ(write, buffer[0]);
+  CHECK_EQ(before, buffer[1]);
+
+  CHECK_EQ(11, m.Call(8));
+  CHECK_EQ(write, buffer[0]);
+  CHECK_EQ(write, buffer[1]);
+}
+#endif
+
+namespace {
+template <typename IntType>
+void LoadStoreTruncation(MachineType kRepresentation) {
+  IntType input;
+
+  RawMachineAssemblerTester<int32_t> m;
+  Node* a = m.LoadFromPointer(&input, kRepresentation);
+  Node* ap1 = m.Int32Add(a, m.Int32Constant(1));
+  m.StoreToPointer(&input, kRepresentation.representation(), ap1);
+  m.Return(ap1);
+
+  const IntType max = std::numeric_limits<IntType>::max();
+  const IntType min = std::numeric_limits<IntType>::min();
+
+  // Test upper bound.
+  input = max;
+  CHECK_EQ(max + 1, m.Call());
+  CHECK_EQ(min, input);
+
+  // Test lower bound.
+  input = min;
+  CHECK_EQ(static_cast<IntType>(max + 2), m.Call());
+  CHECK_EQ(min + 1, input);
+
+  // Test all one byte values that are not one byte bounds.
+  for (int i = -127; i < 127; i++) {
+    input = i;
+    int expected = i >= 0 ? i + 1 : max + (i - min) + 2;
+    CHECK_EQ(static_cast<IntType>(expected), m.Call());
+    CHECK_EQ(static_cast<IntType>(i + 1), input);
+  }
+}
+}  // namespace
+
+TEST(RunLoadStoreTruncation) {
+  LoadStoreTruncation<int8_t>(MachineType::Int8());
+  LoadStoreTruncation<int16_t>(MachineType::Int16());
+}
+
+void TestRunOobCheckedLoad(bool length_is_immediate) {
+  USE(CheckOobValue<int32_t>);
+  USE(CheckOobValue<int64_t>);
+  USE(CheckOobValue<float>);
+  USE(CheckOobValue<double>);
+
+  RawMachineAssemblerTester<int32_t> m(MachineType::Int32(),
+                                       MachineType::Int32());
+  MachineOperatorBuilder machine(m.zone());
+  const int32_t kNumElems = 27;
+  const int32_t kLength = kNumElems * 4;
+
+  int32_t buffer[kNumElems];
+  Node* base = m.PointerConstant(buffer);
+  Node* offset = m.Parameter(0);
+  Node* len = length_is_immediate ? m.Int32Constant(kLength) : m.Parameter(1);
+  Node* node =
+      m.AddNode(machine.CheckedLoad(MachineType::Int32()), base, offset, len);
+  m.Return(node);
+
+  {
+    // randomize memory.
+    v8::base::RandomNumberGenerator rng;
+    rng.SetSeed(100);
+    rng.NextBytes(&buffer[0], sizeof(buffer));
+  }
+
+  // in-bounds accesses.
+  for (int32_t i = 0; i < kNumElems; i++) {
+    int32_t offset = static_cast<int32_t>(i * sizeof(int32_t));
+    int32_t expected = buffer[i];
+    CHECK_EQ(expected, m.Call(offset, kLength));
+  }
+
+  // slightly out-of-bounds accesses.
+  for (int32_t i = kLength; i < kNumElems + 30; i++) {
+    int32_t offset = static_cast<int32_t>(i * sizeof(int32_t));
+    CheckOobValue(m.Call(offset, kLength));
+  }
+
+  // way out-of-bounds accesses.
+  for (int32_t offset = -2000000000; offset <= 2000000000;
+       offset += 100000000) {
+    if (offset == 0) continue;
+    CheckOobValue(m.Call(offset, kLength));
+  }
+}
+
+TEST(RunOobCheckedLoad) { TestRunOobCheckedLoad(false); }
+
+TEST(RunOobCheckedLoadImm) { TestRunOobCheckedLoad(true); }
+
+void TestRunOobCheckedStore(bool length_is_immediate) {
+  RawMachineAssemblerTester<int32_t> m(MachineType::Int32(),
+                                       MachineType::Int32());
+  MachineOperatorBuilder machine(m.zone());
+  const int32_t kNumElems = 29;
+  const int32_t kValue = -78227234;
+  const int32_t kLength = kNumElems * 4;
+
+  int32_t buffer[kNumElems + kNumElems];
+  Node* base = m.PointerConstant(buffer);
+  Node* offset = m.Parameter(0);
+  Node* len = length_is_immediate ? m.Int32Constant(kLength) : m.Parameter(1);
+  Node* val = m.Int32Constant(kValue);
+  m.AddNode(machine.CheckedStore(MachineRepresentation::kWord32), base, offset,
+            len, val);
+  m.Return(val);
+
+  // in-bounds accesses.
+  for (int32_t i = 0; i < kNumElems; i++) {
+    memset(buffer, 0, sizeof(buffer));
+    int32_t offset = static_cast<int32_t>(i * sizeof(int32_t));
+    CHECK_EQ(kValue, m.Call(offset, kLength));
+    for (int32_t j = 0; j < kNumElems + kNumElems; j++) {
+      if (i == j) {
+        CHECK_EQ(kValue, buffer[j]);
+      } else {
+        CHECK_EQ(0, buffer[j]);
+      }
+    }
+  }
+
+  memset(buffer, 0, sizeof(buffer));
+
+  // slightly out-of-bounds accesses.
+  for (int32_t i = kLength; i < kNumElems + 30; i++) {
+    int32_t offset = static_cast<int32_t>(i * sizeof(int32_t));
+    CHECK_EQ(kValue, m.Call(offset, kLength));
+    for (int32_t j = 0; j < kNumElems + kNumElems; j++) {
+      CHECK_EQ(0, buffer[j]);
+    }
+  }
+
+  // way out-of-bounds accesses.
+  for (int32_t offset = -2000000000; offset <= 2000000000;
+       offset += 100000000) {
+    if (offset == 0) continue;
+    CHECK_EQ(kValue, m.Call(offset, kLength));
+    for (int32_t j = 0; j < kNumElems + kNumElems; j++) {
+      CHECK_EQ(0, buffer[j]);
+    }
+  }
+}
+
+TEST(RunOobCheckedStore) { TestRunOobCheckedStore(false); }
+
+TEST(RunOobCheckedStoreImm) { TestRunOobCheckedStore(true); }
+
+// TODO(titzer): CheckedLoad/CheckedStore don't support 64-bit offsets.
+#define ALLOW_64_BIT_OFFSETS 0
+
+#if V8_TARGET_ARCH_64_BIT && ALLOW_64_BIT_OFFSETS
+
+void TestRunOobCheckedLoad64(uint32_t pseudo_base, bool length_is_immediate) {
+  RawMachineAssemblerTester<int32_t> m(MachineType::Uint64(),
+                                       MachineType::Uint64());
+  MachineOperatorBuilder machine(m.zone());
+  const uint32_t kNumElems = 25;
+  const uint32_t kLength = kNumElems * 4;
+  int32_t real_buffer[kNumElems];
+
+  // Simulate the end of a large buffer.
+  int32_t* buffer = real_buffer - (pseudo_base / 4);
+  uint64_t length = kLength + pseudo_base;
+
+  Node* base = m.PointerConstant(buffer);
+  Node* offset = m.Parameter(0);
+  Node* len = length_is_immediate ? m.Int64Constant(length) : m.Parameter(1);
+  Node* node =
+      m.AddNode(machine.CheckedLoad(MachineType::Int32()), base, offset, len);
+  m.Return(node);
+
+  {
+    // randomize memory.
+    v8::base::RandomNumberGenerator rng;
+    rng.SetSeed(100);
+    rng.NextBytes(&real_buffer[0], sizeof(real_buffer));
+  }
+
+  // in-bounds accesses.
+  for (uint32_t i = 0; i < kNumElems; i++) {
+    uint64_t offset = pseudo_base + i * 4;
+    int32_t expected = real_buffer[i];
+    CHECK_EQ(expected, m.Call(offset, length));
+  }
+
+  // in-bounds accesses w.r.t lower 32-bits, but upper bits set.
+  for (uint64_t i = 0x100000000ULL; i != 0; i <<= 1) {
+    uint64_t offset = pseudo_base + i;
+    CheckOobValue(m.Call(offset, length));
+  }
+
+  // slightly out-of-bounds accesses.
+  for (uint32_t i = kLength; i < kNumElems + 30; i++) {
+    uint64_t offset = pseudo_base + i * 4;
+    CheckOobValue(0, m.Call(offset, length));
+  }
+
+  // way out-of-bounds accesses.
+  for (uint64_t offset = length; offset < 100 * A_BILLION; offset += A_GIG) {
+    if (offset < length) continue;
+    CheckOobValue(0, m.Call(offset, length));
+  }
+}
+
+TEST(RunOobCheckedLoad64_0) {
+  TestRunOobCheckedLoad64(0, false);
+  TestRunOobCheckedLoad64(0, true);
+}
+
+TEST(RunOobCheckedLoad64_1) {
+  TestRunOobCheckedLoad64(1 * A_BILLION, false);
+  TestRunOobCheckedLoad64(1 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoad64_2) {
+  TestRunOobCheckedLoad64(2 * A_BILLION, false);
+  TestRunOobCheckedLoad64(2 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoad64_3) {
+  TestRunOobCheckedLoad64(3 * A_BILLION, false);
+  TestRunOobCheckedLoad64(3 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoad64_4) {
+  TestRunOobCheckedLoad64(4 * A_BILLION, false);
+  TestRunOobCheckedLoad64(4 * A_BILLION, true);
+}
+
+void TestRunOobCheckedStore64(uint32_t pseudo_base, bool length_is_immediate) {
+  RawMachineAssemblerTester<int32_t> m(MachineType::Uint64(),
+                                       MachineType::Uint64());
+  MachineOperatorBuilder machine(m.zone());
+  const uint32_t kNumElems = 21;
+  const uint32_t kLength = kNumElems * 4;
+  const uint32_t kValue = 897234987;
+  int32_t real_buffer[kNumElems + kNumElems];
+
+  // Simulate the end of a large buffer.
+  int32_t* buffer = real_buffer - (pseudo_base / 4);
+  uint64_t length = kLength + pseudo_base;
+
+  Node* base = m.PointerConstant(buffer);
+  Node* offset = m.Parameter(0);
+  Node* len = length_is_immediate ? m.Int64Constant(length) : m.Parameter(1);
+  Node* val = m.Int32Constant(kValue);
+  m.AddNode(machine.CheckedStore(MachineRepresentation::kWord32), base, offset,
+            len, val);
+  m.Return(val);
+
+  // in-bounds accesses.
+  for (uint32_t i = 0; i < kNumElems; i++) {
+    memset(real_buffer, 0, sizeof(real_buffer));
+    uint64_t offset = pseudo_base + i * 4;
+    CHECK_EQ(kValue, m.Call(offset, length));
+    for (uint32_t j = 0; j < kNumElems + kNumElems; j++) {
+      if (i == j) {
+        CHECK_EQ(kValue, real_buffer[j]);
+      } else {
+        CHECK_EQ(0, real_buffer[j]);
+      }
+    }
+  }
+
+  memset(real_buffer, 0, sizeof(real_buffer));
+
+  // in-bounds accesses w.r.t lower 32-bits, but upper bits set.
+  for (uint64_t i = 0x100000000ULL; i != 0; i <<= 1) {
+    uint64_t offset = pseudo_base + i;
+    CHECK_EQ(kValue, m.Call(offset, length));
+    for (int32_t j = 0; j < kNumElems + kNumElems; j++) {
+      CHECK_EQ(0, real_buffer[j]);
+    }
+  }
+
+  // slightly out-of-bounds accesses.
+  for (uint32_t i = kLength; i < kNumElems + 30; i++) {
+    uint64_t offset = pseudo_base + i * 4;
+    CHECK_EQ(kValue, m.Call(offset, length));
+    for (int32_t j = 0; j < kNumElems + kNumElems; j++) {
+      CHECK_EQ(0, real_buffer[j]);
+    }
+  }
+
+  // way out-of-bounds accesses.
+  for (uint64_t offset = length; offset < 100 * A_BILLION; offset += A_GIG) {
+    if (offset < length) continue;
+    CHECK_EQ(kValue, m.Call(offset, length));
+    for (int32_t j = 0; j < kNumElems + kNumElems; j++) {
+      CHECK_EQ(0, real_buffer[j]);
+    }
+  }
+}
+
+TEST(RunOobCheckedStore64_0) {
+  TestRunOobCheckedStore64(0, false);
+  TestRunOobCheckedStore64(0, true);
+}
+
+TEST(RunOobCheckedStore64_1) {
+  TestRunOobCheckedStore64(1 * A_BILLION, false);
+  TestRunOobCheckedStore64(1 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedStore64_2) {
+  TestRunOobCheckedStore64(2 * A_BILLION, false);
+  TestRunOobCheckedStore64(2 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedStore64_3) {
+  TestRunOobCheckedStore64(3 * A_BILLION, false);
+  TestRunOobCheckedStore64(3 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedStore64_4) {
+  TestRunOobCheckedStore64(4 * A_BILLION, false);
+  TestRunOobCheckedStore64(4 * A_BILLION, true);
+}
+
+#endif
+
+void TestRunOobCheckedLoad_pseudo(uint64_t x, bool length_is_immediate) {
+  RawMachineAssemblerTester<int32_t> m(MachineType::Uint32(),
+                                       MachineType::Uint32());
+
+  uint32_t pseudo_base = static_cast<uint32_t>(x);
+  MachineOperatorBuilder machine(m.zone());
+  const uint32_t kNumElems = 29;
+  const uint32_t kLength = pseudo_base + kNumElems * 4;
+
+  int32_t buffer[kNumElems];
+  Node* base = m.PointerConstant(reinterpret_cast<byte*>(buffer) - pseudo_base);
+  Node* offset = m.Parameter(0);
+  Node* len = length_is_immediate ? m.Int32Constant(kLength) : m.Parameter(1);
+  Node* node =
+      m.AddNode(machine.CheckedLoad(MachineType::Int32()), base, offset, len);
+  m.Return(node);
+
+  {
+    // randomize memory.
+    v8::base::RandomNumberGenerator rng;
+    rng.SetSeed(100);
+    rng.NextBytes(&buffer[0], sizeof(buffer));
+  }
+
+  // in-bounds accesses.
+  for (uint32_t i = 0; i < kNumElems; i++) {
+    uint32_t offset = static_cast<uint32_t>(i * sizeof(int32_t));
+    uint32_t expected = buffer[i];
+    CHECK_EQ(expected, m.Call(offset + pseudo_base, kLength));
+  }
+
+  // slightly out-of-bounds accesses.
+  for (int32_t i = kNumElems; i < kNumElems + 30; i++) {
+    uint32_t offset = static_cast<uint32_t>(i * sizeof(int32_t));
+    CheckOobValue(m.Call(offset + pseudo_base, kLength));
+  }
+
+  // way out-of-bounds accesses.
+  for (uint64_t i = pseudo_base + sizeof(buffer); i < 0xFFFFFFFF;
+       i += A_BILLION) {
+    uint32_t offset = static_cast<uint32_t>(i);
+    CheckOobValue(m.Call(offset, kLength));
+  }
+}
+
+TEST(RunOobCheckedLoad_pseudo0) {
+  TestRunOobCheckedLoad_pseudo(0, false);
+  TestRunOobCheckedLoad_pseudo(0, true);
+}
+
+TEST(RunOobCheckedLoad_pseudo1) {
+  TestRunOobCheckedLoad_pseudo(100000, false);
+  TestRunOobCheckedLoad_pseudo(100000, true);
+}
+
+TEST(RunOobCheckedLoad_pseudo2) {
+  TestRunOobCheckedLoad_pseudo(A_BILLION, false);
+  TestRunOobCheckedLoad_pseudo(A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoad_pseudo3) {
+  TestRunOobCheckedLoad_pseudo(A_GIG, false);
+  TestRunOobCheckedLoad_pseudo(A_GIG, true);
+}
+
+TEST(RunOobCheckedLoad_pseudo4) {
+  TestRunOobCheckedLoad_pseudo(2 * A_BILLION, false);
+  TestRunOobCheckedLoad_pseudo(2 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoad_pseudo5) {
+  TestRunOobCheckedLoad_pseudo(2 * A_GIG, false);
+  TestRunOobCheckedLoad_pseudo(2 * A_GIG, true);
+}
+
+TEST(RunOobCheckedLoad_pseudo6) {
+  TestRunOobCheckedLoad_pseudo(3 * A_BILLION, false);
+  TestRunOobCheckedLoad_pseudo(3 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoad_pseudo7) {
+  TestRunOobCheckedLoad_pseudo(3 * A_GIG, false);
+  TestRunOobCheckedLoad_pseudo(3 * A_GIG, true);
+}
+
+TEST(RunOobCheckedLoad_pseudo8) {
+  TestRunOobCheckedLoad_pseudo(4 * A_BILLION, false);
+  TestRunOobCheckedLoad_pseudo(4 * A_BILLION, true);
+}
+
+template <typename MemType>
+void TestRunOobCheckedLoadT_pseudo(uint64_t x, bool length_is_immediate) {
+  const int32_t kReturn = 11999;
+  const uint32_t kNumElems = 29;
+  MemType buffer[kNumElems];
+  uint32_t pseudo_base = static_cast<uint32_t>(x);
+  const uint32_t kLength = static_cast<uint32_t>(pseudo_base + sizeof(buffer));
+
+  MemType result;
+
+  RawMachineAssemblerTester<int32_t> m(MachineType::Uint32(),
+                                       MachineType::Uint32());
+  MachineOperatorBuilder machine(m.zone());
+  Node* base = m.PointerConstant(reinterpret_cast<byte*>(buffer) - pseudo_base);
+  Node* offset = m.Parameter(0);
+  Node* len = length_is_immediate ? m.Int32Constant(kLength) : m.Parameter(1);
+  Node* node = m.AddNode(machine.CheckedLoad(MachineTypeForC<MemType>()), base,
+                         offset, len);
+  Node* store = m.StoreToPointer(
+      &result, MachineTypeForC<MemType>().representation(), node);
+  USE(store);
+  m.Return(m.Int32Constant(kReturn));
+
+  {
+    // randomize memory.
+    v8::base::RandomNumberGenerator rng;
+    rng.SetSeed(103);
+    rng.NextBytes(&buffer[0], sizeof(buffer));
+  }
+
+  // in-bounds accesses.
+  for (uint32_t i = 0; i < kNumElems; i++) {
+    uint32_t offset = static_cast<uint32_t>(i * sizeof(MemType));
+    MemType expected = buffer[i];
+    CHECK_EQ(kReturn, m.Call(offset + pseudo_base, kLength));
+    CHECK_EQ(expected, result);
+  }
+
+  // slightly out-of-bounds accesses.
+  for (int32_t i = kNumElems; i < kNumElems + 30; i++) {
+    uint32_t offset = static_cast<uint32_t>(i * sizeof(MemType));
+    CHECK_EQ(kReturn, m.Call(offset + pseudo_base, kLength));
+    CheckOobValue(result);
+  }
+
+  // way out-of-bounds accesses.
+  for (uint64_t i = pseudo_base + sizeof(buffer); i < 0xFFFFFFFF;
+       i += A_BILLION) {
+    uint32_t offset = static_cast<uint32_t>(i);
+    CHECK_EQ(kReturn, m.Call(offset, kLength));
+    CheckOobValue(result);
+  }
+}
+
+TEST(RunOobCheckedLoadT_pseudo0) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(0, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(0, true);
+  TestRunOobCheckedLoadT_pseudo<float>(0, false);
+  TestRunOobCheckedLoadT_pseudo<float>(0, true);
+  TestRunOobCheckedLoadT_pseudo<double>(0, false);
+  TestRunOobCheckedLoadT_pseudo<double>(0, true);
+}
+
+TEST(RunOobCheckedLoadT_pseudo1) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(100000, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(100000, true);
+  TestRunOobCheckedLoadT_pseudo<float>(100000, false);
+  TestRunOobCheckedLoadT_pseudo<float>(100000, true);
+  TestRunOobCheckedLoadT_pseudo<double>(100000, false);
+  TestRunOobCheckedLoadT_pseudo<double>(100000, true);
+}
+
+TEST(RunOobCheckedLoadT_pseudo2) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(A_BILLION, true);
+  TestRunOobCheckedLoadT_pseudo<float>(A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<float>(A_BILLION, true);
+  TestRunOobCheckedLoadT_pseudo<double>(A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<double>(A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoadT_pseudo3) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(A_GIG, true);
+  TestRunOobCheckedLoadT_pseudo<float>(A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<float>(A_GIG, true);
+  TestRunOobCheckedLoadT_pseudo<double>(A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<double>(A_GIG, true);
+}
+
+TEST(RunOobCheckedLoadT_pseudo4) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(2 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(2 * A_BILLION, true);
+  TestRunOobCheckedLoadT_pseudo<float>(2 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<float>(2 * A_BILLION, true);
+  TestRunOobCheckedLoadT_pseudo<double>(2 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<double>(2 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoadT_pseudo5) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(2 * A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(2 * A_GIG, true);
+  TestRunOobCheckedLoadT_pseudo<float>(2 * A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<float>(2 * A_GIG, true);
+  TestRunOobCheckedLoadT_pseudo<double>(2 * A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<double>(2 * A_GIG, true);
+}
+
+TEST(RunOobCheckedLoadT_pseudo6) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(3 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(3 * A_BILLION, true);
+  TestRunOobCheckedLoadT_pseudo<float>(3 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<float>(3 * A_BILLION, true);
+  TestRunOobCheckedLoadT_pseudo<double>(3 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<double>(3 * A_BILLION, true);
+}
+
+TEST(RunOobCheckedLoadT_pseudo7) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(3 * A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(3 * A_GIG, true);
+  TestRunOobCheckedLoadT_pseudo<float>(3 * A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<float>(3 * A_GIG, true);
+  TestRunOobCheckedLoadT_pseudo<double>(3 * A_GIG, false);
+  TestRunOobCheckedLoadT_pseudo<double>(3 * A_GIG, true);
+}
+
+TEST(RunOobCheckedLoadT_pseudo8) {
+  TestRunOobCheckedLoadT_pseudo<int32_t>(4 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<int32_t>(4 * A_BILLION, true);
+  TestRunOobCheckedLoadT_pseudo<float>(4 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<float>(4 * A_BILLION, true);
+  TestRunOobCheckedLoadT_pseudo<double>(4 * A_BILLION, false);
+  TestRunOobCheckedLoadT_pseudo<double>(4 * A_BILLION, true);
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/compiler/test-run-machops.cc b/test/cctest/compiler/test-run-machops.cc
index 2bfe124..6d681bc 100644
--- a/test/cctest/compiler/test-run-machops.cc
+++ b/test/cctest/compiler/test-run-machops.cc
@@ -28,6 +28,39 @@
   CHECK_EQ(1, m.Call());
 }
 
+static int RunInt32AddShift(bool is_left, int32_t add_left, int32_t add_right,
+                            int32_t shift_left, int32_t shit_right) {
+  RawMachineAssemblerTester<int32_t> m;
+  Node* shift =
+      m.Word32Shl(m.Int32Constant(shift_left), m.Int32Constant(shit_right));
+  Node* add = m.Int32Add(m.Int32Constant(add_left), m.Int32Constant(add_right));
+  Node* lsa = is_left ? m.Int32Add(shift, add) : m.Int32Add(add, shift);
+  m.Return(lsa);
+  return m.Call();
+}
+
+TEST(RunInt32AddShift) {
+  struct Test_case {
+    int32_t add_left, add_right, shift_left, shit_right, expected;
+  };
+
+  Test_case tc[] = {
+      {20, 22, 4, 2, 58},
+      {20, 22, 4, 1, 50},
+      {20, 22, 1, 6, 106},
+      {INT_MAX - 2, 1, 1, 1, INT_MIN},  // INT_MAX - 2 + 1 + (1 << 1), overflow.
+  };
+  const size_t tc_size = sizeof(tc) / sizeof(Test_case);
+
+  for (size_t i = 0; i < tc_size; ++i) {
+    CHECK_EQ(tc[i].expected,
+             RunInt32AddShift(false, tc[i].add_left, tc[i].add_right,
+                              tc[i].shift_left, tc[i].shit_right));
+    CHECK_EQ(tc[i].expected,
+             RunInt32AddShift(true, tc[i].add_left, tc[i].add_right,
+                              tc[i].shift_left, tc[i].shit_right));
+  }
+}
 
 TEST(RunWord32ReverseBits) {
   BufferedRawMachineAssemblerTester<uint32_t> m(MachineType::Uint32());
@@ -636,6 +669,38 @@
   }
 }
 
+static int64_t RunInt64AddShift(bool is_left, int64_t add_left,
+                                int64_t add_right, int64_t shift_left,
+                                int64_t shit_right) {
+  RawMachineAssemblerTester<int64_t> m;
+  Node* shift = m.Word64Shl(m.Int64Constant(4), m.Int64Constant(2));
+  Node* add = m.Int64Add(m.Int64Constant(20), m.Int64Constant(22));
+  Node* dlsa = is_left ? m.Int64Add(shift, add) : m.Int64Add(add, shift);
+  m.Return(dlsa);
+  return m.Call();
+}
+
+TEST(RunInt64AddShift) {
+  struct Test_case {
+    int64_t add_left, add_right, shift_left, shit_right, expected;
+  };
+
+  Test_case tc[] = {
+      {20, 22, 4, 2, 58},
+      {20, 22, 4, 1, 50},
+      {20, 22, 1, 6, 106},
+      {INT64_MAX - 2, 1, 1, 1,
+       INT64_MIN},  // INT64_MAX - 2 + 1 + (1 << 1), overflow.
+  };
+  const size_t tc_size = sizeof(tc) / sizeof(Test_case);
+
+  for (size_t i = 0; i < tc_size; ++i) {
+    CHECK_EQ(58, RunInt64AddShift(false, tc[i].add_left, tc[i].add_right,
+                                  tc[i].shift_left, tc[i].shit_right));
+    CHECK_EQ(58, RunInt64AddShift(true, tc[i].add_left, tc[i].add_right,
+                                  tc[i].shift_left, tc[i].shit_right));
+  }
+}
 
 // TODO(titzer): add tests that run 64-bit integer operations.
 #endif  // V8_TARGET_ARCH_64_BIT
@@ -1142,94 +1207,6 @@
 }
 
 
-TEST(RunLoadInt32) {
-  RawMachineAssemblerTester<int32_t> m;
-
-  int32_t p1 = 0;  // loads directly from this location.
-  m.Return(m.LoadFromPointer(&p1, MachineType::Int32()));
-
-  FOR_INT32_INPUTS(i) {
-    p1 = *i;
-    CHECK_EQ(p1, m.Call());
-  }
-}
-
-
-TEST(RunLoadInt32Offset) {
-  int32_t p1 = 0;  // loads directly from this location.
-
-  int32_t offsets[] = {-2000000, -100, -101, 1,          3,
-                       7,        120,  2000, 2000000000, 0xff};
-
-  for (size_t i = 0; i < arraysize(offsets); i++) {
-    RawMachineAssemblerTester<int32_t> m;
-    int32_t offset = offsets[i];
-    byte* pointer = reinterpret_cast<byte*>(&p1) - offset;
-    // generate load [#base + #index]
-    m.Return(m.LoadFromPointer(pointer, MachineType::Int32(), offset));
-
-    FOR_INT32_INPUTS(j) {
-      p1 = *j;
-      CHECK_EQ(p1, m.Call());
-    }
-  }
-}
-
-
-TEST(RunLoadStoreFloat32Offset) {
-  float p1 = 0.0f;  // loads directly from this location.
-  float p2 = 0.0f;  // and stores directly into this location.
-
-  FOR_INT32_INPUTS(i) {
-    int32_t magic = 0x2342aabb + *i * 3;
-    RawMachineAssemblerTester<int32_t> m;
-    int32_t offset = *i;
-    byte* from = reinterpret_cast<byte*>(&p1) - offset;
-    byte* to = reinterpret_cast<byte*>(&p2) - offset;
-    // generate load [#base + #index]
-    Node* load = m.Load(MachineType::Float32(), m.PointerConstant(from),
-                        m.IntPtrConstant(offset));
-    m.Store(MachineRepresentation::kFloat32, m.PointerConstant(to),
-            m.IntPtrConstant(offset), load, kNoWriteBarrier);
-    m.Return(m.Int32Constant(magic));
-
-    FOR_FLOAT32_INPUTS(j) {
-      p1 = *j;
-      p2 = *j - 5;
-      CHECK_EQ(magic, m.Call());
-      CHECK_DOUBLE_EQ(p1, p2);
-    }
-  }
-}
-
-
-TEST(RunLoadStoreFloat64Offset) {
-  double p1 = 0;  // loads directly from this location.
-  double p2 = 0;  // and stores directly into this location.
-
-  FOR_INT32_INPUTS(i) {
-    int32_t magic = 0x2342aabb + *i * 3;
-    RawMachineAssemblerTester<int32_t> m;
-    int32_t offset = *i;
-    byte* from = reinterpret_cast<byte*>(&p1) - offset;
-    byte* to = reinterpret_cast<byte*>(&p2) - offset;
-    // generate load [#base + #index]
-    Node* load = m.Load(MachineType::Float64(), m.PointerConstant(from),
-                        m.IntPtrConstant(offset));
-    m.Store(MachineRepresentation::kFloat64, m.PointerConstant(to),
-            m.IntPtrConstant(offset), load, kNoWriteBarrier);
-    m.Return(m.Int32Constant(magic));
-
-    FOR_FLOAT64_INPUTS(j) {
-      p1 = *j;
-      p2 = *j - 5;
-      CHECK_EQ(magic, m.Call());
-      CHECK_DOUBLE_EQ(p1, p2);
-    }
-  }
-}
-
-
 TEST(RunInt32AddP) {
   RawMachineAssemblerTester<int32_t> m;
   Int32BinopTester bt(&m);
@@ -1709,7 +1686,6 @@
   }
 }
 
-
 TEST(RunInt32SubImm) {
   {
     FOR_UINT32_INPUTS(i) {
@@ -1733,6 +1709,11 @@
   }
 }
 
+TEST(RunInt32SubImm2) {
+  BufferedRawMachineAssemblerTester<int32_t> r;
+  r.Return(r.Int32Sub(r.Int32Constant(-1), r.Int32Constant(0)));
+  CHECK_EQ(-1, r.Call());
+}
 
 TEST(RunInt32SubAndWord32SarP) {
   {
@@ -3566,92 +3547,6 @@
 }
 
 
-template <typename Type>
-static void RunLoadImmIndex(MachineType rep) {
-  const int kNumElems = 3;
-  Type buffer[kNumElems];
-
-  // initialize the buffer with some raw data.
-  byte* raw = reinterpret_cast<byte*>(buffer);
-  for (size_t i = 0; i < sizeof(buffer); i++) {
-    raw[i] = static_cast<byte>((i + sizeof(buffer)) ^ 0xAA);
-  }
-
-  // Test with various large and small offsets.
-  for (int offset = -1; offset <= 200000; offset *= -5) {
-    for (int i = 0; i < kNumElems; i++) {
-      BufferedRawMachineAssemblerTester<Type> m;
-      Node* base = m.PointerConstant(buffer - offset);
-      Node* index = m.Int32Constant((offset + i) * sizeof(buffer[0]));
-      m.Return(m.Load(rep, base, index));
-
-      volatile Type expected = buffer[i];
-      volatile Type actual = m.Call();
-      CHECK_EQ(expected, actual);
-    }
-  }
-}
-
-
-TEST(RunLoadImmIndex) {
-  RunLoadImmIndex<int8_t>(MachineType::Int8());
-  RunLoadImmIndex<uint8_t>(MachineType::Uint8());
-  RunLoadImmIndex<int16_t>(MachineType::Int16());
-  RunLoadImmIndex<uint16_t>(MachineType::Uint16());
-  RunLoadImmIndex<int32_t>(MachineType::Int32());
-  RunLoadImmIndex<uint32_t>(MachineType::Uint32());
-  RunLoadImmIndex<int32_t*>(MachineType::AnyTagged());
-  RunLoadImmIndex<float>(MachineType::Float32());
-  RunLoadImmIndex<double>(MachineType::Float64());
-  if (kPointerSize == 8) {
-    RunLoadImmIndex<int64_t>(MachineType::Int64());
-  }
-  // TODO(titzer): test various indexing modes.
-}
-
-
-template <typename CType>
-static void RunLoadStore(MachineType rep) {
-  const int kNumElems = 4;
-  CType buffer[kNumElems];
-
-  for (int32_t x = 0; x < kNumElems; x++) {
-    int32_t y = kNumElems - x - 1;
-    // initialize the buffer with raw data.
-    byte* raw = reinterpret_cast<byte*>(buffer);
-    for (size_t i = 0; i < sizeof(buffer); i++) {
-      raw[i] = static_cast<byte>((i + sizeof(buffer)) ^ 0xAA);
-    }
-
-    RawMachineAssemblerTester<int32_t> m;
-    int32_t OK = 0x29000 + x;
-    Node* base = m.PointerConstant(buffer);
-    Node* index0 = m.IntPtrConstant(x * sizeof(buffer[0]));
-    Node* load = m.Load(rep, base, index0);
-    Node* index1 = m.IntPtrConstant(y * sizeof(buffer[0]));
-    m.Store(rep.representation(), base, index1, load, kNoWriteBarrier);
-    m.Return(m.Int32Constant(OK));
-
-    CHECK(buffer[x] != buffer[y]);
-    CHECK_EQ(OK, m.Call());
-    CHECK(buffer[x] == buffer[y]);
-  }
-}
-
-
-TEST(RunLoadStore) {
-  RunLoadStore<int8_t>(MachineType::Int8());
-  RunLoadStore<uint8_t>(MachineType::Uint8());
-  RunLoadStore<int16_t>(MachineType::Int16());
-  RunLoadStore<uint16_t>(MachineType::Uint16());
-  RunLoadStore<int32_t>(MachineType::Int32());
-  RunLoadStore<uint32_t>(MachineType::Uint32());
-  RunLoadStore<void*>(MachineType::AnyTagged());
-  RunLoadStore<float>(MachineType::Float32());
-  RunLoadStore<double>(MachineType::Float64());
-}
-
-
 TEST(RunFloat32Add) {
   BufferedRawMachineAssemblerTester<float> m(MachineType::Float32(),
                                              MachineType::Float32());
@@ -4124,7 +4019,7 @@
   m.Return(m.TruncateFloat32ToUint32(m.Parameter(0)));
   {
     FOR_UINT32_INPUTS(i) {
-      float input = static_cast<float>(*i);
+      volatile float input = static_cast<float>(*i);
       // This condition on 'input' is required because
       // static_cast<float>(std::numeric_limits<uint32_t>::max()) results in a
       // value outside uint32 range.
@@ -4201,7 +4096,7 @@
   return (static_cast<uint64_t>(high) << 32) | static_cast<uint64_t>(low);
 }
 
-#if V8_TARGET_ARCH_32_BIT && !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_X87
+#if V8_TARGET_ARCH_32_BIT && !V8_TARGET_ARCH_X87
 TEST(RunInt32PairAdd) {
   BufferedRawMachineAssemblerTester<int32_t> m(
       MachineType::Uint32(), MachineType::Uint32(), MachineType::Uint32(),
@@ -4449,6 +4344,56 @@
   TestWord32PairShlWithSharedInput(1, 1);
 }
 
+TEST(RunWord32PairShr) {
+  BufferedRawMachineAssemblerTester<int32_t> m(
+      MachineType::Uint32(), MachineType::Uint32(), MachineType::Uint32());
+
+  uint32_t high;
+  uint32_t low;
+
+  Node* PairAdd =
+      m.Word32PairShr(m.Parameter(0), m.Parameter(1), m.Parameter(2));
+
+  m.StoreToPointer(&low, MachineRepresentation::kWord32,
+                   m.Projection(0, PairAdd));
+  m.StoreToPointer(&high, MachineRepresentation::kWord32,
+                   m.Projection(1, PairAdd));
+  m.Return(m.Int32Constant(74));
+
+  FOR_UINT64_INPUTS(i) {
+    for (uint32_t j = 0; j < 64; j++) {
+      m.Call(static_cast<uint32_t>(*i & 0xffffffff),
+             static_cast<uint32_t>(*i >> 32), j);
+      CHECK_EQ(*i >> j, ToInt64(low, high));
+    }
+  }
+}
+
+TEST(RunWord32PairSar) {
+  BufferedRawMachineAssemblerTester<int32_t> m(
+      MachineType::Uint32(), MachineType::Uint32(), MachineType::Uint32());
+
+  uint32_t high;
+  uint32_t low;
+
+  Node* PairAdd =
+      m.Word32PairSar(m.Parameter(0), m.Parameter(1), m.Parameter(2));
+
+  m.StoreToPointer(&low, MachineRepresentation::kWord32,
+                   m.Projection(0, PairAdd));
+  m.StoreToPointer(&high, MachineRepresentation::kWord32,
+                   m.Projection(1, PairAdd));
+  m.Return(m.Int32Constant(74));
+
+  FOR_INT64_INPUTS(i) {
+    for (uint32_t j = 0; j < 64; j++) {
+      m.Call(static_cast<uint32_t>(*i & 0xffffffff),
+             static_cast<uint32_t>(*i >> 32), j);
+      CHECK_EQ(*i >> j, ToInt64(low, high));
+    }
+  }
+}
+
 #endif
 
 TEST(RunDeadChangeFloat64ToInt32) {
@@ -4968,45 +4913,6 @@
 }
 
 
-template <typename IntType>
-static void LoadStoreTruncation(MachineType kRepresentation) {
-  IntType input;
-
-  RawMachineAssemblerTester<int32_t> m;
-  Node* a = m.LoadFromPointer(&input, kRepresentation);
-  Node* ap1 = m.Int32Add(a, m.Int32Constant(1));
-  m.StoreToPointer(&input, kRepresentation.representation(), ap1);
-  m.Return(ap1);
-
-  const IntType max = std::numeric_limits<IntType>::max();
-  const IntType min = std::numeric_limits<IntType>::min();
-
-  // Test upper bound.
-  input = max;
-  CHECK_EQ(max + 1, m.Call());
-  CHECK_EQ(min, input);
-
-  // Test lower bound.
-  input = min;
-  CHECK_EQ(static_cast<IntType>(max + 2), m.Call());
-  CHECK_EQ(min + 1, input);
-
-  // Test all one byte values that are not one byte bounds.
-  for (int i = -127; i < 127; i++) {
-    input = i;
-    int expected = i >= 0 ? i + 1 : max + (i - min) + 2;
-    CHECK_EQ(static_cast<IntType>(expected), m.Call());
-    CHECK_EQ(static_cast<IntType>(i + 1), input);
-  }
-}
-
-
-TEST(RunLoadStoreTruncation) {
-  LoadStoreTruncation<int8_t>(MachineType::Int8());
-  LoadStoreTruncation<int16_t>(MachineType::Int16());
-}
-
-
 static void IntPtrCompare(intptr_t left, intptr_t right) {
   for (int test = 0; test < 7; test++) {
     RawMachineAssemblerTester<bool> m(MachineType::Pointer(),
@@ -5417,8 +5323,7 @@
   }
 }
 
-
-TEST(RunTruncateFloat64ToInt32P) {
+TEST(RunTruncateFloat64ToWord32P) {
   struct {
     double from;
     double raw;
@@ -5479,8 +5384,7 @@
                  {-1.7976931348623157e+308, 0}};
   double input = -1.0;
   RawMachineAssemblerTester<int32_t> m;
-  m.Return(m.TruncateFloat64ToInt32(
-      TruncationMode::kJavaScript,
+  m.Return(m.TruncateFloat64ToWord32(
       m.LoadFromPointer(&input, MachineType::Float64())));
   for (size_t i = 0; i < arraysize(kValues); ++i) {
     input = kValues[i].from;
@@ -5489,6 +5393,12 @@
   }
 }
 
+TEST(RunTruncateFloat64ToWord32SignExtension) {
+  BufferedRawMachineAssemblerTester<int32_t> r;
+  r.Return(r.Int32Sub(r.TruncateFloat64ToWord32(r.Float64Constant(-1.0)),
+                      r.Int32Constant(0)));
+  CHECK_EQ(-1, r.Call());
+}
 
 TEST(RunChangeFloat32ToFloat64) {
   BufferedRawMachineAssemblerTester<double> m(MachineType::Float32());
@@ -5854,50 +5764,6 @@
 
 #if V8_TARGET_ARCH_64_BIT
 // TODO(titzer): run int64 tests on all platforms when supported.
-TEST(RunCheckedLoadInt64) {
-  int64_t buffer[] = {0x66bbccddeeff0011LL, 0x1122334455667788LL};
-  RawMachineAssemblerTester<int64_t> m(MachineType::Int32());
-  Node* base = m.PointerConstant(buffer);
-  Node* index = m.Parameter(0);
-  Node* length = m.Int32Constant(16);
-  Node* load = m.AddNode(m.machine()->CheckedLoad(MachineType::Int64()), base,
-                         index, length);
-  m.Return(load);
-
-  CHECK_EQ(buffer[0], m.Call(0));
-  CHECK_EQ(buffer[1], m.Call(8));
-  CHECK_EQ(0, m.Call(16));
-}
-
-
-TEST(RunCheckedStoreInt64) {
-  const int64_t write = 0x5566778899aabbLL;
-  const int64_t before = 0x33bbccddeeff0011LL;
-  int64_t buffer[] = {before, before};
-  RawMachineAssemblerTester<int32_t> m(MachineType::Int32());
-  Node* base = m.PointerConstant(buffer);
-  Node* index = m.Parameter(0);
-  Node* length = m.Int32Constant(16);
-  Node* value = m.Int64Constant(write);
-  Node* store =
-      m.AddNode(m.machine()->CheckedStore(MachineRepresentation::kWord64), base,
-                index, length, value);
-  USE(store);
-  m.Return(m.Int32Constant(11));
-
-  CHECK_EQ(11, m.Call(16));
-  CHECK_EQ(before, buffer[0]);
-  CHECK_EQ(before, buffer[1]);
-
-  CHECK_EQ(11, m.Call(0));
-  CHECK_EQ(write, buffer[0]);
-  CHECK_EQ(before, buffer[1]);
-
-  CHECK_EQ(11, m.Call(8));
-  CHECK_EQ(write, buffer[0]);
-  CHECK_EQ(write, buffer[1]);
-}
-
 
 TEST(RunBitcastInt64ToFloat64) {
   int64_t input = 1;
diff --git a/test/cctest/compiler/test-run-native-calls.cc b/test/cctest/compiler/test-run-native-calls.cc
index bfdcc0e..a63cc8a 100644
--- a/test/cctest/compiler/test-run-native-calls.cc
+++ b/test/cctest/compiler/test-run-native-calls.cc
@@ -255,7 +255,7 @@
 Handle<Code> CompileGraph(const char* name, CallDescriptor* desc, Graph* graph,
                           Schedule* schedule = nullptr) {
   Isolate* isolate = CcTest::InitIsolateOnce();
-  CompilationInfo info("testing", isolate, graph->zone());
+  CompilationInfo info(ArrayVector("testing"), isolate, graph->zone());
   Handle<Code> code =
       Pipeline::GenerateCodeForTesting(&info, desc, graph, schedule);
   CHECK(!code.is_null());
diff --git a/test/cctest/compiler/test-run-stubs.cc b/test/cctest/compiler/test-run-stubs.cc
index c745219..feb25c9 100644
--- a/test/cctest/compiler/test-run-stubs.cc
+++ b/test/cctest/compiler/test-run-stubs.cc
@@ -27,7 +27,7 @@
   // Create code and an accompanying descriptor.
   StringLengthStub stub(isolate);
   Handle<Code> code = stub.GenerateCode();
-  CompilationInfo info("test", isolate, zone,
+  CompilationInfo info(ArrayVector("test"), isolate, zone,
                        Code::ComputeFlags(Code::HANDLER));
   CallInterfaceDescriptor interface_descriptor =
       stub.GetCallInterfaceDescriptor();
diff --git a/test/cctest/compiler/test-run-wasm-machops.cc b/test/cctest/compiler/test-run-wasm-machops.cc
new file mode 100644
index 0000000..0b23669
--- /dev/null
+++ b/test/cctest/compiler/test-run-wasm-machops.cc
@@ -0,0 +1,170 @@
+// Copyright 2016 the V8 project authors. All rights reserved. Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#include <cmath>
+#include <functional>
+#include <limits>
+
+#include "src/base/bits.h"
+#include "src/base/utils/random-number-generator.h"
+#include "src/codegen.h"
+#include "test/cctest/cctest.h"
+#include "test/cctest/compiler/codegen-tester.h"
+#include "test/cctest/compiler/graph-builder-tester.h"
+#include "test/cctest/compiler/value-helper.h"
+
+using namespace v8::internal;
+using namespace v8::internal::compiler;
+
+static void UpdateMemoryReferences(Handle<Code> code, Address old_base,
+                                   Address new_base, uint32_t old_size,
+                                   uint32_t new_size) {
+  Isolate* isolate = CcTest::i_isolate();
+  bool modified = false;
+  int mode_mask = RelocInfo::ModeMask(RelocInfo::WASM_MEMORY_REFERENCE) |
+                  RelocInfo::ModeMask(RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+  for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
+    RelocInfo::Mode mode = it.rinfo()->rmode();
+    if (RelocInfo::IsWasmMemoryReference(mode) ||
+        RelocInfo::IsWasmMemorySizeReference(mode)) {
+      // Patch addresses with change in memory start address
+      it.rinfo()->update_wasm_memory_reference(old_base, new_base, old_size,
+                                               new_size);
+      modified = true;
+    }
+  }
+  if (modified) {
+    Assembler::FlushICache(isolate, code->instruction_start(),
+                           code->instruction_size());
+  }
+}
+
+template <typename CType>
+static void RunLoadStoreRelocation(MachineType rep) {
+  const int kNumElems = 2;
+  CType buffer[kNumElems];
+  CType new_buffer[kNumElems];
+  byte* raw = reinterpret_cast<byte*>(buffer);
+  byte* new_raw = reinterpret_cast<byte*>(new_buffer);
+  for (size_t i = 0; i < sizeof(buffer); i++) {
+    raw[i] = static_cast<byte>((i + sizeof(CType)) ^ 0xAA);
+    new_raw[i] = static_cast<byte>((i + sizeof(CType)) ^ 0xAA);
+  }
+  int32_t OK = 0x29000;
+  RawMachineAssemblerTester<uint32_t> m;
+  Node* base = m.RelocatableIntPtrConstant(reinterpret_cast<intptr_t>(raw),
+                                           RelocInfo::WASM_MEMORY_REFERENCE);
+  Node* base1 = m.RelocatableIntPtrConstant(
+      reinterpret_cast<intptr_t>(raw + sizeof(CType)),
+      RelocInfo::WASM_MEMORY_REFERENCE);
+  Node* index = m.Int32Constant(0);
+  Node* load = m.Load(rep, base, index);
+  m.Store(rep.representation(), base1, index, load, kNoWriteBarrier);
+  m.Return(m.Int32Constant(OK));
+  CHECK(buffer[0] != buffer[1]);
+  CHECK_EQ(OK, m.Call());
+  CHECK(buffer[0] == buffer[1]);
+  m.GenerateCode();
+  Handle<Code> code = m.GetCode();
+  UpdateMemoryReferences(code, raw, new_raw, sizeof(buffer),
+                         sizeof(new_buffer));
+  CHECK(new_buffer[0] != new_buffer[1]);
+  CHECK_EQ(OK, m.Call());
+  CHECK(new_buffer[0] == new_buffer[1]);
+}
+
+TEST(RunLoadStoreRelocation) {
+  RunLoadStoreRelocation<int8_t>(MachineType::Int8());
+  RunLoadStoreRelocation<uint8_t>(MachineType::Uint8());
+  RunLoadStoreRelocation<int16_t>(MachineType::Int16());
+  RunLoadStoreRelocation<uint16_t>(MachineType::Uint16());
+  RunLoadStoreRelocation<int32_t>(MachineType::Int32());
+  RunLoadStoreRelocation<uint32_t>(MachineType::Uint32());
+  RunLoadStoreRelocation<void*>(MachineType::AnyTagged());
+  RunLoadStoreRelocation<float>(MachineType::Float32());
+  RunLoadStoreRelocation<double>(MachineType::Float64());
+}
+
+template <typename CType>
+static void RunLoadStoreRelocationOffset(MachineType rep) {
+  RawMachineAssemblerTester<int32_t> r(MachineType::Int32());
+  const int kNumElems = 4;
+  CType buffer[kNumElems];
+  CType new_buffer[kNumElems + 1];
+
+  for (int32_t x = 0; x < kNumElems; x++) {
+    int32_t y = kNumElems - x - 1;
+    // initialize the buffer with raw data.
+    byte* raw = reinterpret_cast<byte*>(buffer);
+    for (size_t i = 0; i < sizeof(buffer); i++) {
+      raw[i] = static_cast<byte>((i + sizeof(buffer)) ^ 0xAA);
+    }
+
+    RawMachineAssemblerTester<int32_t> m;
+    int32_t OK = 0x29000 + x;
+    Node* base = m.RelocatableIntPtrConstant(reinterpret_cast<intptr_t>(buffer),
+                                             RelocInfo::WASM_MEMORY_REFERENCE);
+    Node* index0 = m.IntPtrConstant(x * sizeof(buffer[0]));
+    Node* load = m.Load(rep, base, index0);
+    Node* index1 = m.IntPtrConstant(y * sizeof(buffer[0]));
+    m.Store(rep.representation(), base, index1, load, kNoWriteBarrier);
+    m.Return(m.Int32Constant(OK));
+
+    CHECK(buffer[x] != buffer[y]);
+    CHECK_EQ(OK, m.Call());
+    CHECK(buffer[x] == buffer[y]);
+    m.GenerateCode();
+
+    // Initialize new buffer and set old_buffer to 0
+    byte* new_raw = reinterpret_cast<byte*>(new_buffer);
+    for (size_t i = 0; i < sizeof(buffer); i++) {
+      raw[i] = 0;
+      new_raw[i] = static_cast<byte>((i + sizeof(buffer)) ^ 0xAA);
+    }
+
+    // Perform relocation on generated code
+    Handle<Code> code = m.GetCode();
+    UpdateMemoryReferences(code, raw, new_raw, sizeof(buffer),
+                           sizeof(new_buffer));
+
+    CHECK(new_buffer[x] != new_buffer[y]);
+    CHECK_EQ(OK, m.Call());
+    CHECK(new_buffer[x] == new_buffer[y]);
+  }
+}
+
+TEST(RunLoadStoreRelocationOffset) {
+  RunLoadStoreRelocationOffset<int8_t>(MachineType::Int8());
+  RunLoadStoreRelocationOffset<uint8_t>(MachineType::Uint8());
+  RunLoadStoreRelocationOffset<int16_t>(MachineType::Int16());
+  RunLoadStoreRelocationOffset<uint16_t>(MachineType::Uint16());
+  RunLoadStoreRelocationOffset<int32_t>(MachineType::Int32());
+  RunLoadStoreRelocationOffset<uint32_t>(MachineType::Uint32());
+  RunLoadStoreRelocationOffset<void*>(MachineType::AnyTagged());
+  RunLoadStoreRelocationOffset<float>(MachineType::Float32());
+  RunLoadStoreRelocationOffset<double>(MachineType::Float64());
+}
+
+TEST(Uint32LessThanRelocation) {
+  RawMachineAssemblerTester<uint32_t> m;
+  RawMachineLabel within_bounds, out_of_bounds;
+  Node* index = m.Int32Constant(0x200);
+  Node* limit =
+      m.RelocatableInt32Constant(0x200, RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+  Node* cond = m.AddNode(m.machine()->Uint32LessThan(), index, limit);
+  m.Branch(cond, &within_bounds, &out_of_bounds);
+  m.Bind(&within_bounds);
+  m.Return(m.Int32Constant(0xaced));
+  m.Bind(&out_of_bounds);
+  m.Return(m.Int32Constant(0xdeadbeef));
+  // Check that index is out of bounds with current size
+  CHECK_EQ(0xdeadbeef, m.Call());
+  m.GenerateCode();
+
+  Handle<Code> code = m.GetCode();
+  UpdateMemoryReferences(code, reinterpret_cast<Address>(1234),
+                         reinterpret_cast<Address>(1234), 0x200, 0x400);
+  // Check that after limit is increased, index is within bounds.
+  CHECK_EQ(0xaced, m.Call());
+}
diff --git a/test/cctest/compiler/test-simplified-lowering.cc b/test/cctest/compiler/test-simplified-lowering.cc
index b5e9929..4efb149 100644
--- a/test/cctest/compiler/test-simplified-lowering.cc
+++ b/test/cctest/compiler/test-simplified-lowering.cc
@@ -6,13 +6,14 @@
 
 #include "src/ast/scopes.h"
 #include "src/compiler/access-builder.h"
-#include "src/compiler/change-lowering.h"
 #include "src/compiler/control-builders.h"
-#include "src/compiler/graph-reducer.h"
+#include "src/compiler/effect-control-linearizer.h"
 #include "src/compiler/graph-visualizer.h"
+#include "src/compiler/memory-optimizer.h"
 #include "src/compiler/node-properties.h"
 #include "src/compiler/pipeline.h"
 #include "src/compiler/representation-change.h"
+#include "src/compiler/scheduler.h"
 #include "src/compiler/simplified-lowering.h"
 #include "src/compiler/source-position.h"
 #include "src/compiler/typer.h"
@@ -60,11 +61,13 @@
     typer.Run();
     lowering.LowerAllNodes();
 
-    ChangeLowering lowering(&jsgraph);
-    GraphReducer reducer(this->zone(), this->graph());
-    reducer.AddReducer(&lowering);
-    reducer.ReduceGraph();
-    Verifier::Run(this->graph());
+    Schedule* schedule = Scheduler::ComputeSchedule(this->zone(), this->graph(),
+                                                    Scheduler::kNoFlags);
+    EffectControlLinearizer linearizer(&jsgraph, schedule, this->zone());
+    linearizer.Run();
+
+    MemoryOptimizer memory_optimizer(&jsgraph, this->zone());
+    memory_optimizer.Optimize();
   }
 
   void CheckNumberCall(double expected, double input) {
@@ -99,13 +102,15 @@
   double input;
   int32_t result;
   SimplifiedLoweringTester<Object*> t;
-  FieldAccess load = {kUntaggedBase, 0, Handle<Name>(), Type::Number(),
-                      MachineType::Float64()};
+  FieldAccess load = {kUntaggedBase,          0,
+                      Handle<Name>(),         Type::Number(),
+                      MachineType::Float64(), kNoWriteBarrier};
   Node* loaded = t.LoadField(load, t.PointerConstant(&input));
   NodeProperties::SetType(loaded, Type::Number());
   Node* convert = t.NumberToInt32(loaded);
-  FieldAccess store = {kUntaggedBase, 0, Handle<Name>(), Type::Signed32(),
-                       MachineType::Int32()};
+  FieldAccess store = {kUntaggedBase,        0,
+                       Handle<Name>(),       Type::Signed32(),
+                       MachineType::Int32(), kNoWriteBarrier};
   t.StoreField(store, t.PointerConstant(&result), convert);
   t.Return(t.jsgraph.TrueConstant());
   t.LowerAllNodesAndLowerChanges();
@@ -126,13 +131,15 @@
   double input;
   uint32_t result;
   SimplifiedLoweringTester<Object*> t;
-  FieldAccess load = {kUntaggedBase, 0, Handle<Name>(), Type::Number(),
-                      MachineType::Float64()};
+  FieldAccess load = {kUntaggedBase,          0,
+                      Handle<Name>(),         Type::Number(),
+                      MachineType::Float64(), kNoWriteBarrier};
   Node* loaded = t.LoadField(load, t.PointerConstant(&input));
   NodeProperties::SetType(loaded, Type::Number());
   Node* convert = t.NumberToUint32(loaded);
-  FieldAccess store = {kUntaggedBase, 0, Handle<Name>(), Type::Unsigned32(),
-                       MachineType::Uint32()};
+  FieldAccess store = {kUntaggedBase,         0,
+                       Handle<Name>(),        Type::Unsigned32(),
+                       MachineType::Uint32(), kNoWriteBarrier};
   t.StoreField(store, t.PointerConstant(&result), convert);
   t.Return(t.jsgraph.TrueConstant());
   t.LowerAllNodesAndLowerChanges();
@@ -291,8 +298,12 @@
 
   for (size_t i = 0; i < arraysize(smis); i++) {
     int offset = static_cast<int>(i * sizeof(Smi*));
-    FieldAccess access = {kUntaggedBase, offset, Handle<Name>(),
-                          Type::Integral32(), MachineType::AnyTagged()};
+    FieldAccess access = {kUntaggedBase,
+                          offset,
+                          Handle<Name>(),
+                          Type::Integral32(),
+                          MachineType::AnyTagged(),
+                          kNoWriteBarrier};
 
     SimplifiedLoweringTester<Object*> t;
     Node* load = t.LoadField(access, t.PointerConstant(smis));
@@ -313,8 +324,12 @@
 
   for (size_t i = 0; i < arraysize(smis); i++) {
     int offset = static_cast<int>(i * sizeof(Smi*));
-    FieldAccess access = {kUntaggedBase, offset, Handle<Name>(),
-                          Type::Integral32(), MachineType::AnyTagged()};
+    FieldAccess access = {kUntaggedBase,
+                          offset,
+                          Handle<Name>(),
+                          Type::Integral32(),
+                          MachineType::AnyTagged(),
+                          kNoWriteBarrier};
 
     SimplifiedLoweringTester<Object*> t(MachineType::AnyTagged());
     Node* p0 = t.Parameter(0);
@@ -340,7 +355,7 @@
     for (size_t j = 0; (i + j) < arraysize(smis); j++) {  // for element index
       int offset = static_cast<int>(i * sizeof(Smi*));
       ElementAccess access = {kUntaggedBase, offset, Type::Integral32(),
-                              MachineType::AnyTagged()};
+                              MachineType::AnyTagged(), kNoWriteBarrier};
 
       SimplifiedLoweringTester<Object*> t;
       Node* load = t.LoadElement(access, t.PointerConstant(smis),
@@ -366,7 +381,7 @@
     for (size_t j = 0; (i + j) < arraysize(smis); j++) {  // for element index
       int offset = static_cast<int>(i * sizeof(Smi*));
       ElementAccess access = {kUntaggedBase, offset, Type::Integral32(),
-                              MachineType::AnyTagged()};
+                              MachineType::AnyTagged(), kNoWriteBarrier};
 
       SimplifiedLoweringTester<Object*> t(MachineType::AnyTagged());
       Node* p0 = t.Parameter(0);
@@ -518,7 +533,7 @@
   ElementAccess GetElementAccess() {
     ElementAccess access = {tagged ? kTaggedBase : kUntaggedBase,
                             tagged ? FixedArrayBase::kHeaderSize : 0,
-                            Type::Any(), rep};
+                            Type::Any(), rep, kFullWriteBarrier};
     return access;
   }
 
@@ -526,7 +541,10 @@
     int offset = field * sizeof(E);
     FieldAccess access = {tagged ? kTaggedBase : kUntaggedBase,
                           offset + (tagged ? FixedArrayBase::kHeaderSize : 0),
-                          Handle<Name>(), Type::Any(), rep};
+                          Handle<Name>(),
+                          Type::Any(),
+                          rep,
+                          kFullWriteBarrier};
     return access;
   }
 
@@ -726,11 +744,13 @@
     SourcePositionTable table(jsgraph.graph());
     SimplifiedLowering(&jsgraph, jsgraph.zone(), &table).LowerAllNodes();
 
-    ChangeLowering lowering(&jsgraph);
-    GraphReducer reducer(this->zone(), this->graph());
-    reducer.AddReducer(&lowering);
-    reducer.ReduceGraph();
-    Verifier::Run(this->graph());
+    Schedule* schedule = Scheduler::ComputeSchedule(this->zone(), this->graph(),
+                                                    Scheduler::kNoFlags);
+    EffectControlLinearizer linearizer(&jsgraph, schedule, this->zone());
+    linearizer.Run();
+
+    MemoryOptimizer memory_optimizer(&jsgraph, this->zone());
+    memory_optimizer.Optimize();
   }
 
   // Inserts the node as the return value of the graph.
@@ -831,7 +851,7 @@
   Node* use = t.Use(inv, MachineType::AnyTagged());
   t.Return(use);
   t.Lower();
-  CHECK_EQ(IrOpcode::kChangeBitToBool, use->InputAt(0)->opcode());
+  CHECK_EQ(IrOpcode::kChangeBitToTagged, use->InputAt(0)->opcode());
   Node* cmp = use->InputAt(0)->InputAt(0);
   CHECK_EQ(t.machine()->Word32Equal()->opcode(), cmp->opcode());
   CHECK(b == cmp->InputAt(0) || b == cmp->InputAt(1));
@@ -863,7 +883,7 @@
   Node* use = t.Use(inv, MachineType::AnyTagged());
   t.Return(use);
   t.Lower();
-  CHECK_EQ(IrOpcode::kChangeBitToBool, use->InputAt(0)->opcode());
+  CHECK_EQ(IrOpcode::kChangeBitToTagged, use->InputAt(0)->opcode());
   Node* cmp = use->InputAt(0)->InputAt(0);
   CHECK_EQ(t.machine()->WordEqual()->opcode(), cmp->opcode());
   CHECK(b == cmp->InputAt(0) || b == cmp->InputAt(1));
@@ -908,7 +928,7 @@
   t.Return(use);
   t.Lower();
   CHECK_EQ(b, use->InputAt(0)->InputAt(0));
-  CHECK_EQ(IrOpcode::kChangeUint32ToTagged, use->InputAt(0)->opcode());
+  CHECK_EQ(IrOpcode::kChangeInt31ToTaggedSigned, use->InputAt(0)->opcode());
 }
 
 
@@ -921,7 +941,7 @@
   t.Return(use);
   t.Lower();
   CHECK_EQ(cnv, use->InputAt(0)->InputAt(0));
-  CHECK_EQ(IrOpcode::kChangeUint32ToTagged, use->InputAt(0)->opcode());
+  CHECK_EQ(IrOpcode::kChangeInt31ToTaggedSigned, use->InputAt(0)->opcode());
   CHECK_EQ(t.machine()->WordEqual()->opcode(), cnv->opcode());
   CHECK(b == cnv->InputAt(0) || b == cnv->InputAt(1));
   Node* c = t.jsgraph.TrueConstant();
@@ -1046,8 +1066,7 @@
   CheckChangeOf(IrOpcode::kChangeTaggedToInt32, t.p0, use->InputAt(0));
 }
 
-
-TEST(LowerNumberToInt32_to_TruncateFloat64ToInt32) {
+TEST(LowerNumberToInt32_to_TruncateFloat64ToWord32) {
   // NumberToInt32(x: kRepFloat64) used as MachineType::Int32()
   TestingGraph t(Type::Number());
   Node* p0 = t.ExampleWithOutput(MachineType::Float64());
@@ -1055,22 +1074,17 @@
   Node* use = t.Use(trunc, MachineType::Int32());
   t.Return(use);
   t.Lower();
-  CheckChangeOf(IrOpcode::kTruncateFloat64ToInt32, p0, use->InputAt(0));
+  CheckChangeOf(IrOpcode::kTruncateFloat64ToWord32, p0, use->InputAt(0));
 }
 
-
-TEST(LowerNumberToInt32_to_TruncateFloat64ToInt32_with_change) {
+TEST(LowerNumberToInt32_to_TruncateTaggedToWord32) {
   // NumberToInt32(x: kTypeNumber | kRepTagged) used as MachineType::Int32()
   TestingGraph t(Type::Number());
   Node* trunc = t.graph()->NewNode(t.simplified()->NumberToInt32(), t.p0);
   Node* use = t.Use(trunc, MachineType::Int32());
   t.Return(use);
   t.Lower();
-  Node* node = use->InputAt(0);
-  CHECK_EQ(IrOpcode::kTruncateFloat64ToInt32, node->opcode());
-  Node* of = node->InputAt(0);
-  CHECK_EQ(IrOpcode::kChangeTaggedToFloat64, of->opcode());
-  CHECK_EQ(t.p0, of->InputAt(0));
+  CheckChangeOf(IrOpcode::kTruncateTaggedToWord32, t.p0, use->InputAt(0));
 }
 
 
@@ -1084,8 +1098,7 @@
   CheckChangeOf(IrOpcode::kChangeTaggedToUint32, t.p0, use->InputAt(0));
 }
 
-
-TEST(LowerNumberToUint32_to_TruncateFloat64ToInt32) {
+TEST(LowerNumberToUint32_to_TruncateFloat64ToWord32) {
   // NumberToUint32(x: kRepFloat64) used as MachineType::Uint32()
   TestingGraph t(Type::Number());
   Node* p0 = t.ExampleWithOutput(MachineType::Float64());
@@ -1095,26 +1108,20 @@
   Node* use = t.Use(trunc, MachineType::Uint32());
   t.Return(use);
   t.Lower();
-  CheckChangeOf(IrOpcode::kTruncateFloat64ToInt32, p0, use->InputAt(0));
+  CheckChangeOf(IrOpcode::kTruncateFloat64ToWord32, p0, use->InputAt(0));
 }
 
-
-TEST(LowerNumberToUint32_to_TruncateFloat64ToInt32_with_change) {
+TEST(LowerNumberToUint32_to_TruncateTaggedToWord32) {
   // NumberToInt32(x: kTypeNumber | kRepTagged) used as MachineType::Uint32()
   TestingGraph t(Type::Number());
   Node* trunc = t.graph()->NewNode(t.simplified()->NumberToUint32(), t.p0);
   Node* use = t.Use(trunc, MachineType::Uint32());
   t.Return(use);
   t.Lower();
-  Node* node = use->InputAt(0);
-  CHECK_EQ(IrOpcode::kTruncateFloat64ToInt32, node->opcode());
-  Node* of = node->InputAt(0);
-  CHECK_EQ(IrOpcode::kChangeTaggedToFloat64, of->opcode());
-  CHECK_EQ(t.p0, of->InputAt(0));
+  CheckChangeOf(IrOpcode::kTruncateTaggedToWord32, t.p0, use->InputAt(0));
 }
 
-
-TEST(LowerNumberToUint32_to_TruncateFloat64ToInt32_uint32) {
+TEST(LowerNumberToUint32_to_TruncateFloat64ToWord32_uint32) {
   // NumberToUint32(x: kRepFloat64) used as kRepWord32
   TestingGraph t(Type::Unsigned32());
   Node* input = t.ExampleWithOutput(MachineType::Float64());
@@ -1122,7 +1129,7 @@
   Node* use = t.Use(trunc, MachineType::RepWord32());
   t.Return(use);
   t.Lower();
-  CheckChangeOf(IrOpcode::kTruncateFloat64ToInt32, input, use->InputAt(0));
+  CheckChangeOf(IrOpcode::kTruncateFloat64ToWord32, input, use->InputAt(0));
 }
 
 
@@ -1150,7 +1157,7 @@
                        MachineType::Int32(), Type::Signed32());
   CheckChangeInsertion(IrOpcode::kChangeFloat64ToUint32, MachineType::Float64(),
                        MachineType::Uint32(), Type::Unsigned32());
-  CheckChangeInsertion(IrOpcode::kTruncateFloat64ToInt32,
+  CheckChangeInsertion(IrOpcode::kTruncateFloat64ToWord32,
                        MachineType::Float64(), MachineType::Uint32(),
                        Type::Integral32());
   CheckChangeInsertion(IrOpcode::kChangeTaggedToInt32, MachineType::AnyTagged(),
@@ -1222,7 +1229,7 @@
 
   for (size_t i = 0; i < arraysize(ops); i++) {
     CheckChangesAroundBinop(&t, ops[i], IrOpcode::kChangeTaggedToInt32,
-                            IrOpcode::kChangeBitToBool);
+                            IrOpcode::kChangeBitToTagged);
   }
 }
 
@@ -1235,7 +1242,7 @@
 
   for (size_t i = 0; i < arraysize(ops); i++) {
     CheckChangesAroundBinop(&t, ops[i], IrOpcode::kChangeTaggedToUint32,
-                            IrOpcode::kChangeBitToBool);
+                            IrOpcode::kChangeBitToTagged);
   }
 }
 
@@ -1265,7 +1272,7 @@
 
   for (size_t i = 0; i < arraysize(ops); i++) {
     CheckChangesAroundBinop(&t, ops[i], IrOpcode::kChangeTaggedToFloat64,
-                            IrOpcode::kChangeBitToBool);
+                            IrOpcode::kChangeBitToTagged);
   }
 }
 
@@ -1311,11 +1318,11 @@
 
 
 TEST(LowerLoadField_to_load) {
-  TestingGraph t(Type::Any(), Type::Signed32());
-
   for (size_t i = 0; i < arraysize(kMachineReps); i++) {
-    FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                          Handle<Name>::null(), Type::Any(), kMachineReps[i]};
+    TestingGraph t(Type::Any(), Type::Signed32());
+    FieldAccess access = {kTaggedBase,          FixedArrayBase::kHeaderSize,
+                          Handle<Name>::null(), Type::Any(),
+                          kMachineReps[i],      kNoWriteBarrier};
 
     Node* load = t.graph()->NewNode(t.simplified()->LoadField(access), t.p0,
                                     t.start, t.start);
@@ -1337,9 +1344,9 @@
     TestingGraph t(Type::Any(), Type::Signed32());
 
     for (size_t i = 0; i < arraysize(kMachineReps); i++) {
-      FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                            Handle<Name>::null(), Type::Any(), kMachineReps[i]};
-
+      FieldAccess access = {kTaggedBase,          FixedArrayBase::kHeaderSize,
+                            Handle<Name>::null(), Type::Any(),
+                            kMachineReps[i],      kNoWriteBarrier};
 
       Node* val = t.ExampleWithOutput(kMachineReps[i]);
       Node* store = t.graph()->NewNode(t.simplified()->StoreField(access), t.p0,
@@ -1352,7 +1359,7 @@
 
       StoreRepresentation rep = StoreRepresentationOf(store->op());
       if (kMachineReps[i].representation() == MachineRepresentation::kTagged) {
-        CHECK_EQ(kFullWriteBarrier, rep.write_barrier_kind());
+        CHECK_EQ(kNoWriteBarrier, rep.write_barrier_kind());
       }
       CHECK_EQ(kMachineReps[i].representation(), rep.representation());
     }
@@ -1362,9 +1369,9 @@
     Zone* z = scope.main_zone();
     TestingGraph t(Type::Any(), Type::Intersect(Type::SignedSmall(),
                                                 Type::TaggedSigned(), z));
-    FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                          Handle<Name>::null(), Type::Any(),
-                          MachineType::AnyTagged()};
+    FieldAccess access = {
+        kTaggedBase, FixedArrayBase::kHeaderSize, Handle<Name>::null(),
+        Type::Any(), MachineType::AnyTagged(),    kNoWriteBarrier};
     Node* store = t.graph()->NewNode(t.simplified()->StoreField(access), t.p0,
                                      t.p1, t.start, t.start);
     t.Effect(store);
@@ -1378,11 +1385,10 @@
 
 
 TEST(LowerLoadElement_to_load) {
-  TestingGraph t(Type::Any(), Type::Signed32());
-
   for (size_t i = 0; i < arraysize(kMachineReps); i++) {
+    TestingGraph t(Type::Any(), Type::Signed32());
     ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                            Type::Any(), kMachineReps[i]};
+                            Type::Any(), kMachineReps[i], kNoWriteBarrier};
 
     Node* load = t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0,
                                     t.p1, t.start, t.start);
@@ -1401,11 +1407,11 @@
 
 TEST(LowerStoreElement_to_store) {
   {
-    TestingGraph t(Type::Any(), Type::Signed32());
-
     for (size_t i = 0; i < arraysize(kMachineReps); i++) {
+      TestingGraph t(Type::Any(), Type::Signed32());
+
       ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                              Type::Any(), kMachineReps[i]};
+                              Type::Any(), kMachineReps[i], kNoWriteBarrier};
 
       Node* val = t.ExampleWithOutput(kMachineReps[i]);
       Node* store = t.graph()->NewNode(t.simplified()->StoreElement(access),
@@ -1418,7 +1424,7 @@
 
       StoreRepresentation rep = StoreRepresentationOf(store->op());
       if (kMachineReps[i].representation() == MachineRepresentation::kTagged) {
-        CHECK_EQ(kFullWriteBarrier, rep.write_barrier_kind());
+        CHECK_EQ(kNoWriteBarrier, rep.write_barrier_kind());
       }
       CHECK_EQ(kMachineReps[i].representation(), rep.representation());
     }
@@ -1430,7 +1436,8 @@
         Type::Any(), Type::Signed32(),
         Type::Intersect(Type::SignedSmall(), Type::TaggedSigned(), z));
     ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                            Type::Any(), MachineType::AnyTagged()};
+                            Type::Any(), MachineType::AnyTagged(),
+                            kNoWriteBarrier};
     Node* store = t.graph()->NewNode(t.simplified()->StoreElement(access), t.p0,
                                      t.p1, t.p2, t.start, t.start);
     t.Effect(store);
@@ -1448,7 +1455,7 @@
   //   Load(obj, Int32Add(Int32Mul(ChangeTaggedToInt32(index), #k), #k))
   TestingGraph t(Type::Any(), Type::Signed32());
   ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize, Type::Any(),
-                          MachineType::AnyTagged()};
+                          MachineType::AnyTagged(), kNoWriteBarrier};
 
   Node* load = t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0,
                                   t.p1, t.start, t.start);
@@ -1465,7 +1472,7 @@
   //   Store(obj, Int32Add(Int32Mul(ChangeTaggedToInt32(index), #k), #k), val)
   TestingGraph t(Type::Any(), Type::Signed32());
   ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize, Type::Any(),
-                          MachineType::AnyTagged()};
+                          MachineType::AnyTagged(), kFullWriteBarrier};
 
   Node* store =
       t.graph()->NewNode(t.simplified()->StoreElement(access), t.p0, t.p1,
@@ -1482,7 +1489,7 @@
   // TODO(titzer): test all load/store representation change insertions.
   TestingGraph t(Type::Any(), Type::Signed32(), Type::Any());
   ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize, Type::Any(),
-                          MachineType::Float64()};
+                          MachineType::Float64(), kNoWriteBarrier};
 
   Node* load = t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0,
                                   t.p1, t.start, t.start);
@@ -1497,9 +1504,9 @@
 TEST(InsertChangeForLoadField) {
   // TODO(titzer): test all load/store representation change insertions.
   TestingGraph t(Type::Any(), Type::Signed32());
-  FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                        Handle<Name>::null(), Type::Any(),
-                        MachineType::Float64()};
+  FieldAccess access = {
+      kTaggedBase, FixedArrayBase::kHeaderSize, Handle<Name>::null(),
+      Type::Any(), MachineType::Float64(),      kNoWriteBarrier};
 
   Node* load = t.graph()->NewNode(t.simplified()->LoadField(access), t.p0,
                                   t.start, t.start);
@@ -1515,7 +1522,7 @@
   // TODO(titzer): test all load/store representation change insertions.
   TestingGraph t(Type::Any(), Type::Signed32());
   ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize, Type::Any(),
-                          MachineType::Float64()};
+                          MachineType::Float64(), kFullWriteBarrier};
 
   Node* store =
       t.graph()->NewNode(t.simplified()->StoreElement(access), t.p0,
@@ -1532,9 +1539,9 @@
 TEST(InsertChangeForStoreField) {
   // TODO(titzer): test all load/store representation change insertions.
   TestingGraph t(Type::Any(), Type::Signed32());
-  FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                        Handle<Name>::null(), Type::Any(),
-                        MachineType::Float64()};
+  FieldAccess access = {
+      kTaggedBase, FixedArrayBase::kHeaderSize, Handle<Name>::null(),
+      Type::Any(), MachineType::Float64(),      kNoWriteBarrier};
 
   Node* store = t.graph()->NewNode(t.simplified()->StoreField(access), t.p0,
                                    t.p1, t.start, t.start);
@@ -1554,8 +1561,9 @@
   Type* kTypes[] = {Type::Signed32(), Type::Unsigned32(), Type::Number()};
 
   for (size_t i = 0; i < arraysize(kMachineTypes); i++) {
-    FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                          Handle<Name>::null(), kTypes[i], kMachineTypes[i]};
+    FieldAccess access = {kTaggedBase,          FixedArrayBase::kHeaderSize,
+                          Handle<Name>::null(), kTypes[i],
+                          kMachineTypes[i],     kFullWriteBarrier};
 
     Node* load0 = t.graph()->NewNode(t.simplified()->LoadField(access), t.p0,
                                      t.start, t.start);
diff --git a/test/cctest/expression-type-collector.cc b/test/cctest/expression-type-collector.cc
index c5218b3..f1289a7 100644
--- a/test/cctest/expression-type-collector.cc
+++ b/test/cctest/expression-type-collector.cc
@@ -6,6 +6,7 @@
 
 #include "test/cctest/expression-type-collector.h"
 
+#include "src/ast/ast-type-bounds.h"
 #include "src/ast/ast.h"
 #include "src/ast/scopes.h"
 #include "src/codegen.h"
@@ -27,12 +28,10 @@
 
 }  // namespace
 
-
 ExpressionTypeCollector::ExpressionTypeCollector(
-    Isolate* isolate, FunctionLiteral* root,
+    Isolate* isolate, FunctionLiteral* root, const AstTypeBounds* bounds,
     ZoneVector<ExpressionTypeEntry>* dst)
-    : AstExpressionVisitor(isolate, root), result_(dst) {}
-
+    : AstExpressionVisitor(isolate, root), bounds_(bounds), result_(dst) {}
 
 void ExpressionTypeCollector::Run() {
   result_->clear();
@@ -47,7 +46,7 @@
   if (proxy) {
     e.name = proxy->raw_name();
   }
-  e.bounds = expression->bounds();
+  e.bounds = bounds_->get(expression);
   AstNode::NodeType type = expression->node_type();
   e.kind = "unknown";
   for (size_t i = 0; i < arraysize(NodeTypeNameList); ++i) {
diff --git a/test/cctest/expression-type-collector.h b/test/cctest/expression-type-collector.h
index 37bb9a3..a52cfda 100644
--- a/test/cctest/expression-type-collector.h
+++ b/test/cctest/expression-type-collector.h
@@ -10,6 +10,8 @@
 namespace v8 {
 namespace internal {
 
+class AstTypeBounds;
+
 // A Visitor over an AST that collects a human readable string summarizing
 // structure and types. Used for testing of the typing information attached
 // to the expression nodes of an AST.
@@ -24,6 +26,7 @@
 class ExpressionTypeCollector : public AstExpressionVisitor {
  public:
   ExpressionTypeCollector(Isolate* isolate, FunctionLiteral* root,
+                          const AstTypeBounds* bounds,
                           ZoneVector<ExpressionTypeEntry>* dst);
   void Run();
 
@@ -31,6 +34,7 @@
   void VisitExpression(Expression* expression);
 
  private:
+  const AstTypeBounds* bounds_;
   ZoneVector<ExpressionTypeEntry>* result_;
 };
 }  // namespace internal
diff --git a/test/cctest/heap/test-compaction.cc b/test/cctest/heap/test-compaction.cc
index 0feee5f..b787780 100644
--- a/test/cctest/heap/test-compaction.cc
+++ b/test/cctest/heap/test-compaction.cc
@@ -50,6 +50,7 @@
 
       heap->set_force_oom(true);
       heap->CollectAllGarbage();
+      heap->mark_compact_collector()->EnsureSweepingCompleted();
 
       // Check that all handles still point to the same page, i.e., compaction
       // has been aborted on the page.
@@ -108,6 +109,7 @@
 
         heap->set_force_oom(true);
         heap->CollectAllGarbage();
+        heap->mark_compact_collector()->EnsureSweepingCompleted();
 
         bool migration_aborted = false;
         for (Handle<FixedArray> object : compaction_page_handles) {
@@ -190,6 +192,7 @@
 
       heap->set_force_oom(true);
       heap->CollectAllGarbage();
+      heap->mark_compact_collector()->EnsureSweepingCompleted();
 
       // The following check makes sure that we compacted "some" objects, while
       // leaving others in place.
@@ -283,6 +286,7 @@
 
       heap->set_force_oom(true);
       heap->CollectAllGarbage();
+      heap->mark_compact_collector()->EnsureSweepingCompleted();
 
       // The following check makes sure that we compacted "some" objects, while
       // leaving others in place.
diff --git a/test/cctest/heap/test-heap.cc b/test/cctest/heap/test-heap.cc
index 424e987..ef4b217 100644
--- a/test/cctest/heap/test-heap.cc
+++ b/test/cctest/heap/test-heap.cc
@@ -31,6 +31,7 @@
 #include "src/compilation-cache.h"
 #include "src/context-measure.h"
 #include "src/deoptimizer.h"
+#include "src/elements.h"
 #include "src/execution.h"
 #include "src/factory.h"
 #include "src/field-type.h"
@@ -577,7 +578,7 @@
 static bool WeakPointerCleared = false;
 
 static void TestWeakGlobalHandleCallback(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
+    const v8::WeakCallbackInfo<void>& data) {
   std::pair<v8::Persistent<v8::Value>*, int>* p =
       reinterpret_cast<std::pair<v8::Persistent<v8::Value>*, int>*>(
           data.GetParameter());
@@ -610,9 +611,9 @@
   }
 
   std::pair<Handle<Object>*, int> handle_and_id(&h2, 1234);
-  GlobalHandles::MakeWeak(h2.location(),
-                          reinterpret_cast<void*>(&handle_and_id),
-                          &TestWeakGlobalHandleCallback);
+  GlobalHandles::MakeWeak(
+      h2.location(), reinterpret_cast<void*>(&handle_and_id),
+      &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter);
 
   // Scavenge treats weak pointers as normal roots.
   heap->CollectGarbage(NEW_SPACE);
@@ -657,9 +658,9 @@
   CHECK(!heap->InNewSpace(*h1) && !heap->InNewSpace(*h2));
 
   std::pair<Handle<Object>*, int> handle_and_id(&h2, 1234);
-  GlobalHandles::MakeWeak(h2.location(),
-                          reinterpret_cast<void*>(&handle_and_id),
-                          &TestWeakGlobalHandleCallback);
+  GlobalHandles::MakeWeak(
+      h2.location(), reinterpret_cast<void*>(&handle_and_id),
+      &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter);
   CHECK(!GlobalHandles::IsNearDeath(h1.location()));
   CHECK(!GlobalHandles::IsNearDeath(h2.location()));
 
@@ -695,9 +696,9 @@
   }
 
   std::pair<Handle<Object>*, int> handle_and_id(&h, 1234);
-  GlobalHandles::MakeWeak(h.location(),
-                          reinterpret_cast<void*>(&handle_and_id),
-                          &TestWeakGlobalHandleCallback);
+  GlobalHandles::MakeWeak(h.location(), reinterpret_cast<void*>(&handle_and_id),
+                          &TestWeakGlobalHandleCallback,
+                          v8::WeakCallbackType::kParameter);
 
   // Scanvenge does not recognize weak reference.
   heap->CollectGarbage(NEW_SPACE);
@@ -1546,10 +1547,7 @@
   Handle<Object> g_value =
       Object::GetProperty(isolate->global_object(), g_name).ToHandleChecked();
   Handle<JSFunction> g_function = Handle<JSFunction>::cast(g_value);
-  // TODO(mvstanton): change to check that g is *not* compiled when optimized
-  // cache
-  // map lookup moves to the compile lazy builtin.
-  CHECK(g_function->is_compiled());
+  CHECK(!g_function->is_compiled());
 
   SimulateIncrementalMarking(heap);
   CompileRun("%OptimizeFunctionOnNextCall(f); f();");
@@ -1590,25 +1588,11 @@
     CompileRun(raw_source);
   }
 
-  // On first compilation, only a hash is inserted in the code cache. We can't
-  // find that value.
+  // The script should be in the cache now.
   MaybeHandle<SharedFunctionInfo> info = compilation_cache->LookupScript(
       source, Handle<Object>(), 0, 0,
       v8::ScriptOriginOptions(false, true, false), native_context,
       language_mode);
-  CHECK(info.is_null());
-
-  {
-    v8::HandleScope scope(CcTest::isolate());
-    CompileRun(raw_source);
-  }
-
-  // On second compilation, the hash is replaced by a real cache entry mapping
-  // the source to the shared function info containing the code.
-  info = compilation_cache->LookupScript(
-      source, Handle<Object>(), 0, 0,
-      v8::ScriptOriginOptions(false, true, false), native_context,
-      language_mode);
   CHECK(!info.is_null());
 
   // Check that the code cache entry survives at least on GC.
@@ -1640,36 +1624,6 @@
       v8::ScriptOriginOptions(false, true, false), native_context,
       language_mode);
   CHECK(info.is_null());
-
-  {
-    v8::HandleScope scope(CcTest::isolate());
-    CompileRun(raw_source);
-  }
-
-  // On first compilation, only a hash is inserted in the code cache. We can't
-  // find that value.
-  info = compilation_cache->LookupScript(
-      source, Handle<Object>(), 0, 0,
-      v8::ScriptOriginOptions(false, true, false), native_context,
-      language_mode);
-  CHECK(info.is_null());
-
-  for (int i = 0; i < CompilationCacheTable::kHashGenerations; i++) {
-    compilation_cache->MarkCompactPrologue();
-  }
-
-  {
-    v8::HandleScope scope(CcTest::isolate());
-    CompileRun(raw_source);
-  }
-
-  // If we aged the cache before caching the script, ensure that we didn't cache
-  // on next compilation.
-  info = compilation_cache->LookupScript(
-      source, Handle<Object>(), 0, 0,
-      v8::ScriptOriginOptions(false, true, false), native_context,
-      language_mode);
-  CHECK(info.is_null());
 }
 
 
@@ -1692,7 +1646,7 @@
   Object* object = CcTest::heap()->native_contexts_list();
   while (!object->IsUndefined()) {
     count++;
-    object = Context::cast(object)->get(Context::NEXT_CONTEXT_LINK);
+    object = Context::cast(object)->next_context_link();
   }
   return count;
 }
@@ -1830,8 +1784,7 @@
     count++;
     if (count == n) heap->CollectAllGarbage();
     object =
-        Handle<Object>(Context::cast(*object)->get(Context::NEXT_CONTEXT_LINK),
-                       isolate);
+        Handle<Object>(Context::cast(*object)->next_context_link(), isolate);
   }
   return count;
 }
@@ -2296,16 +2249,20 @@
   // on the heap.
   if (size_of_objects_1 > size_of_objects_2) {
     intptr_t delta = size_of_objects_1 - size_of_objects_2;
-    PrintF("Heap::SizeOfObjects: %" V8_PTR_PREFIX "d, "
-           "Iterator: %" V8_PTR_PREFIX "d, "
-           "delta: %" V8_PTR_PREFIX "d\n",
+    PrintF("Heap::SizeOfObjects: %" V8PRIdPTR
+           ", "
+           "Iterator: %" V8PRIdPTR
+           ", "
+           "delta: %" V8PRIdPTR "\n",
            size_of_objects_1, size_of_objects_2, delta);
     CHECK_GT(size_of_objects_1 / 20, delta);
   } else {
     intptr_t delta = size_of_objects_2 - size_of_objects_1;
-    PrintF("Heap::SizeOfObjects: %" V8_PTR_PREFIX "d, "
-           "Iterator: %" V8_PTR_PREFIX "d, "
-           "delta: %" V8_PTR_PREFIX "d\n",
+    PrintF("Heap::SizeOfObjects: %" V8PRIdPTR
+           ", "
+           "Iterator: %" V8PRIdPTR
+           ", "
+           "delta: %" V8PRIdPTR "\n",
            size_of_objects_1, size_of_objects_2, delta);
     CHECK_GT(size_of_objects_2 / 20, delta);
   }
@@ -2657,6 +2614,14 @@
   CcTest::heap()->CollectGarbage(OLD_SPACE);
 }
 
+namespace {
+
+int GetProfilerTicks(SharedFunctionInfo* shared) {
+  return FLAG_ignition ? shared->profiler_ticks()
+                       : shared->code()->profiler_ticks();
+}
+
+}  // namespace
 
 TEST(ResetSharedFunctionInfoCountersDuringIncrementalMarking) {
   i::FLAG_stress_compaction = false;
@@ -2687,16 +2652,18 @@
           CcTest::global()->Get(ctx, v8_str("f")).ToLocalChecked())));
   CHECK(f->IsOptimized());
 
-  IncrementalMarking* marking = CcTest::heap()->incremental_marking();
-  marking->Stop();
+  // Make sure incremental marking it not running.
+  CcTest::heap()->incremental_marking()->Stop();
+
   CcTest::heap()->StartIncrementalMarking();
   // The following calls will increment CcTest::heap()->global_ic_age().
   CcTest::isolate()->ContextDisposedNotification();
   SimulateIncrementalMarking(CcTest::heap());
   CcTest::heap()->CollectAllGarbage();
+
   CHECK_EQ(CcTest::heap()->global_ic_age(), f->shared()->ic_age());
   CHECK_EQ(0, f->shared()->opt_count());
-  CHECK_EQ(0, f->shared()->code()->profiler_ticks());
+  CHECK_EQ(0, GetProfilerTicks(f->shared()));
 }
 
 
@@ -2727,9 +2694,9 @@
   i::Handle<JSFunction> f = i::Handle<JSFunction>::cast(
       v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
           CcTest::global()->Get(ctx, v8_str("f")).ToLocalChecked())));
-
   CHECK(f->IsOptimized());
 
+  // Make sure incremental marking it not running.
   CcTest::heap()->incremental_marking()->Stop();
 
   // The following two calls will increment CcTest::heap()->global_ic_age().
@@ -2738,7 +2705,7 @@
 
   CHECK_EQ(CcTest::heap()->global_ic_age(), f->shared()->ic_age());
   CHECK_EQ(0, f->shared()->opt_count());
-  CHECK_EQ(0, f->shared()->code()->profiler_ticks());
+  CHECK_EQ(0, GetProfilerTicks(f->shared()));
 }
 
 
@@ -3557,6 +3524,8 @@
   // Concurrent sweeping adds non determinism, depending on when memory is
   // available for further reuse.
   i::FLAG_concurrent_sweeping = false;
+  // Fast evacuation of pages may result in a different page count in old space.
+  i::FLAG_page_promotion = false;
   CcTest::InitializeVM();
   Isolate* isolate = CcTest::i_isolate();
   Factory* factory = isolate->factory();
@@ -5547,19 +5516,21 @@
   isolate->Enter();
   {
     i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
+    Heap* heap = i_isolate->heap();
     HandleScope handle_scope(i_isolate);
-    PagedSpace* old_space = i_isolate->heap()->old_space();
+    PagedSpace* old_space = heap->old_space();
     const int kMaxObjects = 10000;
     const int kFixedArrayLen = 512;
     Handle<FixedArray> objects[kMaxObjects];
-    for (int i = 0; (i < kMaxObjects) && old_space->CanExpand(Page::kPageSize);
+    for (int i = 0; (i < kMaxObjects) &&
+                    heap->CanExpandOldGeneration(old_space->AreaSize());
          i++) {
       objects[i] = i_isolate->factory()->NewFixedArray(kFixedArrayLen, TENURED);
       Page::FromAddress(objects[i]->address())
           ->SetFlag(MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
     }
     SimulateFullSpace(old_space);
-    i_isolate->heap()->CollectGarbage(OLD_SPACE);
+    heap->CollectGarbage(OLD_SPACE);
     // If we get this far, we've successfully aborted compaction. Any further
     // allocations might trigger OOM.
   }
@@ -6304,6 +6275,28 @@
       "check(g1, g2);");
 }
 
+TEST(RemoveCodeFromSharedFunctionInfoButNotFromClosure) {
+  CcTest::InitializeVM();
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope scope(isolate);
+  v8::Local<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate);
+  global->Set(isolate, "check", v8::FunctionTemplate::New(
+                                    isolate, CheckEqualSharedFunctionInfos));
+  global->Set(isolate, "remove",
+              v8::FunctionTemplate::New(isolate, RemoveCodeAndGC));
+  v8::Local<v8::Context> context = v8::Context::New(isolate, NULL, global);
+  v8::Context::Scope cscope(context);
+  CompileRun(
+      "function f() { return function g() {}; }"
+      "var g1 = f();"
+      "var g2 = f();"
+      "check(g1, g2);"
+      "g1();"
+      "g2();"
+      "remove(g1);"
+      "g2();"
+      "check(g1, g2);");
+}
 
 TEST(OldGenerationAllocationThroughput) {
   CcTest::InitializeVM();
@@ -6604,6 +6597,151 @@
   heap->CollectGarbage(OLD_SPACE);
 }
 
+UNINITIALIZED_TEST(PagePromotion) {
+  FLAG_page_promotion = true;
+  FLAG_page_promotion_threshold = 0;  // %
+  i::FLAG_min_semi_space_size = 8 * (Page::kPageSize / MB);
+  // We cannot optimize for size as we require a new space with more than one
+  // page.
+  i::FLAG_optimize_for_size = false;
+  // Set max_semi_space_size because it could've been initialized by an
+  // implication of optimize_for_size.
+  i::FLAG_max_semi_space_size = i::FLAG_min_semi_space_size;
+  v8::Isolate::CreateParams create_params;
+  create_params.array_buffer_allocator = CcTest::array_buffer_allocator();
+  v8::Isolate* isolate = v8::Isolate::New(create_params);
+  i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
+  {
+    v8::Isolate::Scope isolate_scope(isolate);
+    v8::HandleScope handle_scope(isolate);
+    v8::Context::New(isolate)->Enter();
+    Heap* heap = i_isolate->heap();
+    std::vector<Handle<FixedArray>> handles;
+    SimulateFullSpace(heap->new_space(), &handles);
+    heap->CollectGarbage(NEW_SPACE);
+    CHECK_GT(handles.size(), 0u);
+    // First object in handle should be on the first page.
+    Handle<FixedArray> first_object = handles.front();
+    Page* first_page = Page::FromAddress(first_object->address());
+    // The age mark should not be on the first page.
+    CHECK(!first_page->ContainsLimit(heap->new_space()->age_mark()));
+    // To perform a sanity check on live bytes we need to mark the heap.
+    SimulateIncrementalMarking(heap, true);
+    // Sanity check that the page meets the requirements for promotion.
+    const int threshold_bytes =
+        FLAG_page_promotion_threshold * Page::kAllocatableMemory / 100;
+    CHECK_GE(first_page->LiveBytes(), threshold_bytes);
+
+    // Actual checks: The page is in new space first, but is moved to old space
+    // during a full GC.
+    CHECK(heap->new_space()->ContainsSlow(first_page->address()));
+    CHECK(!heap->old_space()->ContainsSlow(first_page->address()));
+    heap->CollectGarbage(OLD_SPACE);
+    CHECK(!heap->new_space()->ContainsSlow(first_page->address()));
+    CHECK(heap->old_space()->ContainsSlow(first_page->address()));
+  }
+}
+
+TEST(Regress598319) {
+  // This test ensures that no white objects can cross the progress bar of large
+  // objects during incremental marking. It checks this by using Shift() during
+  // incremental marking.
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  Heap* heap = CcTest::heap();
+  Isolate* isolate = heap->isolate();
+
+  const int kNumberOfObjects = Page::kMaxRegularHeapObjectSize / kPointerSize;
+
+  struct Arr {
+    Arr(Isolate* isolate, int number_of_objects) {
+      root = isolate->factory()->NewFixedArray(1, TENURED);
+      {
+        // Temporary scope to avoid getting any other objects into the root set.
+        v8::HandleScope scope(CcTest::isolate());
+        Handle<FixedArray> tmp =
+            isolate->factory()->NewFixedArray(number_of_objects);
+        root->set(0, *tmp);
+        for (int i = 0; i < get()->length(); i++) {
+          tmp = isolate->factory()->NewFixedArray(100, TENURED);
+          get()->set(i, *tmp);
+        }
+      }
+    }
+
+    FixedArray* get() { return FixedArray::cast(root->get(0)); }
+
+    Handle<FixedArray> root;
+  } arr(isolate, kNumberOfObjects);
+
+  CHECK_EQ(arr.get()->length(), kNumberOfObjects);
+  CHECK(heap->lo_space()->Contains(arr.get()));
+  LargePage* page = heap->lo_space()->FindPage(arr.get()->address());
+  CHECK_NOT_NULL(page);
+
+  // GC to cleanup state
+  heap->CollectGarbage(OLD_SPACE);
+  MarkCompactCollector* collector = heap->mark_compact_collector();
+  if (collector->sweeping_in_progress()) {
+    collector->EnsureSweepingCompleted();
+  }
+
+  CHECK(heap->lo_space()->Contains(arr.get()));
+  CHECK(Marking::IsWhite(Marking::MarkBitFrom(arr.get())));
+  for (int i = 0; i < arr.get()->length(); i++) {
+    CHECK(Marking::IsWhite(
+        Marking::MarkBitFrom(HeapObject::cast(arr.get()->get(i)))));
+  }
+
+  // Start incremental marking.
+  IncrementalMarking* marking = heap->incremental_marking();
+  CHECK(marking->IsMarking() || marking->IsStopped());
+  if (marking->IsStopped()) {
+    heap->StartIncrementalMarking();
+  }
+  CHECK(marking->IsMarking());
+
+  // Check that we have not marked the interesting array during root scanning.
+  for (int i = 0; i < arr.get()->length(); i++) {
+    CHECK(Marking::IsWhite(
+        Marking::MarkBitFrom(HeapObject::cast(arr.get()->get(i)))));
+  }
+
+  // Now we search for a state where we are in incremental marking and have
+  // only partially marked the large object.
+  while (!marking->IsComplete()) {
+    marking->Step(i::KB, i::IncrementalMarking::NO_GC_VIA_STACK_GUARD);
+    if (page->IsFlagSet(Page::HAS_PROGRESS_BAR) && page->progress_bar() > 0) {
+      CHECK_NE(page->progress_bar(), arr.get()->Size());
+      {
+        // Shift by 1, effectively moving one white object across the progress
+        // bar, meaning that we will miss marking it.
+        v8::HandleScope scope(CcTest::isolate());
+        Handle<JSArray> js_array = isolate->factory()->NewJSArrayWithElements(
+            Handle<FixedArray>(arr.get()));
+        js_array->GetElementsAccessor()->Shift(js_array);
+      }
+      break;
+    }
+  }
+
+  // Finish marking with bigger steps to speed up test.
+  while (!marking->IsComplete()) {
+    marking->Step(10 * i::MB, i::IncrementalMarking::NO_GC_VIA_STACK_GUARD);
+    if (marking->IsReadyToOverApproximateWeakClosure()) {
+      marking->FinalizeIncrementally();
+    }
+  }
+  CHECK(marking->IsComplete());
+
+  // All objects need to be black after marking. If a white object crossed the
+  // progress bar, we would fail here.
+  for (int i = 0; i < arr.get()->length(); i++) {
+    CHECK(Marking::IsBlack(
+        Marking::MarkBitFrom(HeapObject::cast(arr.get()->get(i)))));
+  }
+}
+
 TEST(Regress609761) {
   CcTest::InitializeVM();
   v8::HandleScope scope(CcTest::isolate());
diff --git a/test/cctest/heap/test-mark-compact.cc b/test/cctest/heap/test-mark-compact.cc
index cfcf149..2115f1c 100644
--- a/test/cctest/heap/test-mark-compact.cc
+++ b/test/cctest/heap/test-mark-compact.cc
@@ -236,8 +236,7 @@
 
 
 static int NumberOfWeakCalls = 0;
-static void WeakPointerCallback(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
+static void WeakPointerCallback(const v8::WeakCallbackInfo<void>& data) {
   std::pair<v8::Persistent<v8::Value>*, int>* p =
       reinterpret_cast<std::pair<v8::Persistent<v8::Value>*, int>*>(
           data.GetParameter());
@@ -262,17 +261,17 @@
   Handle<Object> g1c1 =
       global_handles->Create(heap->AllocateFixedArray(1).ToObjectChecked());
   std::pair<Handle<Object>*, int> g1s1_and_id(&g1s1, 1234);
-  GlobalHandles::MakeWeak(g1s1.location(),
-                          reinterpret_cast<void*>(&g1s1_and_id),
-                          &WeakPointerCallback);
+  GlobalHandles::MakeWeak(
+      g1s1.location(), reinterpret_cast<void*>(&g1s1_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
   std::pair<Handle<Object>*, int> g1s2_and_id(&g1s2, 1234);
-  GlobalHandles::MakeWeak(g1s2.location(),
-                          reinterpret_cast<void*>(&g1s2_and_id),
-                          &WeakPointerCallback);
+  GlobalHandles::MakeWeak(
+      g1s2.location(), reinterpret_cast<void*>(&g1s2_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
   std::pair<Handle<Object>*, int> g1c1_and_id(&g1c1, 1234);
-  GlobalHandles::MakeWeak(g1c1.location(),
-                          reinterpret_cast<void*>(&g1c1_and_id),
-                          &WeakPointerCallback);
+  GlobalHandles::MakeWeak(
+      g1c1.location(), reinterpret_cast<void*>(&g1c1_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
 
   Handle<Object> g2s1 =
       global_handles->Create(heap->AllocateFixedArray(1).ToObjectChecked());
@@ -281,17 +280,17 @@
   Handle<Object> g2c1 =
     global_handles->Create(heap->AllocateFixedArray(1).ToObjectChecked());
   std::pair<Handle<Object>*, int> g2s1_and_id(&g2s1, 1234);
-  GlobalHandles::MakeWeak(g2s1.location(),
-                          reinterpret_cast<void*>(&g2s1_and_id),
-                          &WeakPointerCallback);
+  GlobalHandles::MakeWeak(
+      g2s1.location(), reinterpret_cast<void*>(&g2s1_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
   std::pair<Handle<Object>*, int> g2s2_and_id(&g2s2, 1234);
-  GlobalHandles::MakeWeak(g2s2.location(),
-                          reinterpret_cast<void*>(&g2s2_and_id),
-                          &WeakPointerCallback);
+  GlobalHandles::MakeWeak(
+      g2s2.location(), reinterpret_cast<void*>(&g2s2_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
   std::pair<Handle<Object>*, int> g2c1_and_id(&g2c1, 1234);
-  GlobalHandles::MakeWeak(g2c1.location(),
-                          reinterpret_cast<void*>(&g2c1_and_id),
-                          &WeakPointerCallback);
+  GlobalHandles::MakeWeak(
+      g2c1.location(), reinterpret_cast<void*>(&g2c1_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
 
   Handle<Object> root = global_handles->Create(*g1s1);  // make a root.
 
@@ -317,9 +316,9 @@
 
   // Weaken the root.
   std::pair<Handle<Object>*, int> root_and_id(&root, 1234);
-  GlobalHandles::MakeWeak(root.location(),
-                          reinterpret_cast<void*>(&root_and_id),
-                          &WeakPointerCallback);
+  GlobalHandles::MakeWeak(
+      root.location(), reinterpret_cast<void*>(&root_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
   // But make children strong roots---all the objects (except for children)
   // should be collectable now.
   global_handles->ClearWeakness(g1c1.location());
@@ -343,12 +342,12 @@
   CHECK_EQ(5, NumberOfWeakCalls);
 
   // And now make children weak again and collect them.
-  GlobalHandles::MakeWeak(g1c1.location(),
-                          reinterpret_cast<void*>(&g1c1_and_id),
-                          &WeakPointerCallback);
-  GlobalHandles::MakeWeak(g2c1.location(),
-                          reinterpret_cast<void*>(&g2c1_and_id),
-                          &WeakPointerCallback);
+  GlobalHandles::MakeWeak(
+      g1c1.location(), reinterpret_cast<void*>(&g1c1_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
+  GlobalHandles::MakeWeak(
+      g2c1.location(), reinterpret_cast<void*>(&g2c1_and_id),
+      &WeakPointerCallback, v8::WeakCallbackType::kParameter);
 
   heap->CollectGarbage(OLD_SPACE);
   CHECK_EQ(7, NumberOfWeakCalls);
diff --git a/test/cctest/heap/test-spaces.cc b/test/cctest/heap/test-spaces.cc
index a7cf161..da364c5 100644
--- a/test/cctest/heap/test-spaces.cc
+++ b/test/cctest/heap/test-spaces.cc
@@ -107,13 +107,12 @@
 class TestMemoryAllocatorScope {
  public:
   TestMemoryAllocatorScope(Isolate* isolate, MemoryAllocator* allocator)
-      : isolate_(isolate),
-        old_allocator_(isolate->memory_allocator_) {
-    isolate->memory_allocator_ = allocator;
+      : isolate_(isolate), old_allocator_(isolate->heap()->memory_allocator()) {
+    isolate->heap()->memory_allocator_ = allocator;
   }
 
   ~TestMemoryAllocatorScope() {
-    isolate_->memory_allocator_ = old_allocator_;
+    isolate_->heap()->memory_allocator_ = old_allocator_;
   }
 
  private:
@@ -129,12 +128,12 @@
  public:
   TestCodeRangeScope(Isolate* isolate, CodeRange* code_range)
       : isolate_(isolate),
-        old_code_range_(isolate->code_range_) {
-    isolate->code_range_ = code_range;
+        old_code_range_(isolate->heap()->memory_allocator()->code_range()) {
+    isolate->heap()->memory_allocator()->code_range_ = code_range;
   }
 
   ~TestCodeRangeScope() {
-    isolate_->code_range_ = old_code_range_;
+    isolate_->heap()->memory_allocator()->code_range_ = old_code_range_;
   }
 
  private:
@@ -153,50 +152,49 @@
                               size_t second_commit_area_size,
                               Executability executable) {
   MemoryAllocator* memory_allocator = new MemoryAllocator(isolate);
-  CHECK(memory_allocator->SetUp(heap->MaxReserved(),
-                                heap->MaxExecutableSize()));
-  TestMemoryAllocatorScope test_allocator_scope(isolate, memory_allocator);
-  TestCodeRangeScope test_code_range_scope(isolate, code_range);
+  CHECK(memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize(),
+                                0));
+  {
+    TestMemoryAllocatorScope test_allocator_scope(isolate, memory_allocator);
+    TestCodeRangeScope test_code_range_scope(isolate, code_range);
 
-  size_t header_size = (executable == EXECUTABLE)
-                       ? MemoryAllocator::CodePageGuardStartOffset()
-                       : MemoryChunk::kObjectStartOffset;
-  size_t guard_size = (executable == EXECUTABLE)
-                       ? MemoryAllocator::CodePageGuardSize()
-                       : 0;
+    size_t header_size = (executable == EXECUTABLE)
+                             ? MemoryAllocator::CodePageGuardStartOffset()
+                             : MemoryChunk::kObjectStartOffset;
+    size_t guard_size =
+        (executable == EXECUTABLE) ? MemoryAllocator::CodePageGuardSize() : 0;
 
-  MemoryChunk* memory_chunk = memory_allocator->AllocateChunk(reserve_area_size,
-                                                              commit_area_size,
-                                                              executable,
-                                                              NULL);
-  size_t alignment = code_range != NULL && code_range->valid()
-                         ? MemoryChunk::kAlignment
-                         : base::OS::CommitPageSize();
-  size_t reserved_size =
-      ((executable == EXECUTABLE))
-          ? RoundUp(header_size + guard_size + reserve_area_size + guard_size,
-                    alignment)
-          : RoundUp(header_size + reserve_area_size,
-                    base::OS::CommitPageSize());
-  CHECK(memory_chunk->size() == reserved_size);
-  CHECK(memory_chunk->area_start() < memory_chunk->address() +
-                                     memory_chunk->size());
-  CHECK(memory_chunk->area_end() <= memory_chunk->address() +
-                                    memory_chunk->size());
-  CHECK(static_cast<size_t>(memory_chunk->area_size()) == commit_area_size);
+    MemoryChunk* memory_chunk = memory_allocator->AllocateChunk(
+        reserve_area_size, commit_area_size, executable, NULL);
+    size_t alignment = code_range != NULL && code_range->valid()
+                           ? MemoryChunk::kAlignment
+                           : base::OS::CommitPageSize();
+    size_t reserved_size =
+        ((executable == EXECUTABLE))
+            ? RoundUp(header_size + guard_size + reserve_area_size + guard_size,
+                      alignment)
+            : RoundUp(header_size + reserve_area_size,
+                      base::OS::CommitPageSize());
+    CHECK(memory_chunk->size() == reserved_size);
+    CHECK(memory_chunk->area_start() <
+          memory_chunk->address() + memory_chunk->size());
+    CHECK(memory_chunk->area_end() <=
+          memory_chunk->address() + memory_chunk->size());
+    CHECK(static_cast<size_t>(memory_chunk->area_size()) == commit_area_size);
 
-  Address area_start = memory_chunk->area_start();
+    Address area_start = memory_chunk->area_start();
 
-  memory_chunk->CommitArea(second_commit_area_size);
-  CHECK(area_start == memory_chunk->area_start());
-  CHECK(memory_chunk->area_start() < memory_chunk->address() +
-                                     memory_chunk->size());
-  CHECK(memory_chunk->area_end() <= memory_chunk->address() +
-                                    memory_chunk->size());
-  CHECK(static_cast<size_t>(memory_chunk->area_size()) ==
-      second_commit_area_size);
+    memory_chunk->CommitArea(second_commit_area_size);
+    CHECK(area_start == memory_chunk->area_start());
+    CHECK(memory_chunk->area_start() <
+          memory_chunk->address() + memory_chunk->size());
+    CHECK(memory_chunk->area_end() <=
+          memory_chunk->address() + memory_chunk->size());
+    CHECK(static_cast<size_t>(memory_chunk->area_size()) ==
+          second_commit_area_size);
 
-  memory_allocator->Free(memory_chunk);
+    memory_allocator->Free<MemoryAllocator::kFull>(memory_chunk);
+  }
   memory_allocator->TearDown();
   delete memory_allocator;
 }
@@ -207,8 +205,8 @@
   Heap* heap = isolate->heap();
   const int pageSize = Page::kPageSize;
   MemoryAllocator* memory_allocator = new MemoryAllocator(isolate);
-  CHECK(
-      memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize()));
+  CHECK(memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize(),
+                                0));
   TestMemoryAllocatorScope test_allocator_scope(isolate, memory_allocator);
   CodeRange* code_range = new CodeRange(isolate);
   const size_t code_range_size = 4 * pageSize;
@@ -310,19 +308,19 @@
 
   MemoryAllocator* memory_allocator = new MemoryAllocator(isolate);
   CHECK(memory_allocator != nullptr);
-  CHECK(memory_allocator->SetUp(heap->MaxReserved(),
-                                heap->MaxExecutableSize()));
+  CHECK(memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize(),
+                                0));
   TestMemoryAllocatorScope test_scope(isolate, memory_allocator);
 
   {
     int total_pages = 0;
     OldSpace faked_space(heap, OLD_SPACE, NOT_EXECUTABLE);
-    Page* first_page = memory_allocator->AllocatePage<Page>(
+    Page* first_page = memory_allocator->AllocatePage(
         faked_space.AreaSize(), static_cast<PagedSpace*>(&faked_space),
         NOT_EXECUTABLE);
 
     first_page->InsertAfter(faked_space.anchor()->prev_page());
-    CHECK(first_page->is_valid());
+    CHECK(Page::IsValid(first_page));
     CHECK(first_page->next_page() == faked_space.anchor());
     total_pages++;
 
@@ -331,10 +329,10 @@
     }
 
     // Again, we should get n or n - 1 pages.
-    Page* other = memory_allocator->AllocatePage<Page>(
+    Page* other = memory_allocator->AllocatePage(
         faked_space.AreaSize(), static_cast<PagedSpace*>(&faked_space),
         NOT_EXECUTABLE);
-    CHECK(other->is_valid());
+    CHECK(Page::IsValid(other));
     total_pages++;
     other->InsertAfter(first_page);
     int page_count = 0;
@@ -345,7 +343,7 @@
     CHECK(total_pages == page_count);
 
     Page* second_page = first_page->next_page();
-    CHECK(second_page->is_valid());
+    CHECK(Page::IsValid(second_page));
 
     // OldSpace's destructor will tear down the space and free up all pages.
   }
@@ -358,8 +356,8 @@
   Isolate* isolate = CcTest::i_isolate();
   Heap* heap = isolate->heap();
   MemoryAllocator* memory_allocator = new MemoryAllocator(isolate);
-  CHECK(memory_allocator->SetUp(heap->MaxReserved(),
-                                heap->MaxExecutableSize()));
+  CHECK(memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize(),
+                                0));
   TestMemoryAllocatorScope test_scope(isolate, memory_allocator);
 
   NewSpace new_space(heap);
@@ -385,8 +383,8 @@
   Isolate* isolate = CcTest::i_isolate();
   Heap* heap = isolate->heap();
   MemoryAllocator* memory_allocator = new MemoryAllocator(isolate);
-  CHECK(memory_allocator->SetUp(heap->MaxReserved(),
-                                heap->MaxExecutableSize()));
+  CHECK(memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize(),
+                                0));
   TestMemoryAllocatorScope test_scope(isolate, memory_allocator);
 
   OldSpace* s = new OldSpace(heap, OLD_SPACE, NOT_EXECUTABLE);
@@ -409,8 +407,8 @@
   Heap* heap = isolate->heap();
   MemoryAllocator* memory_allocator = new MemoryAllocator(isolate);
   CHECK(memory_allocator != nullptr);
-  CHECK(
-      memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize()));
+  CHECK(memory_allocator->SetUp(heap->MaxReserved(), heap->MaxExecutableSize(),
+                                0));
   TestMemoryAllocatorScope test_scope(isolate, memory_allocator);
 
   CompactionSpace* compaction_space =
diff --git a/test/cctest/heap/utils-inl.h b/test/cctest/heap/utils-inl.h
index 56033c1..0e943b4 100644
--- a/test/cctest/heap/utils-inl.h
+++ b/test/cctest/heap/utils-inl.h
@@ -63,37 +63,48 @@
 
 
 // Helper function that simulates a full new-space in the heap.
-static inline bool FillUpOnePage(v8::internal::NewSpace* space) {
+static inline bool FillUpOnePage(
+    v8::internal::NewSpace* space,
+    std::vector<Handle<FixedArray>>* out_handles = nullptr) {
   space->DisableInlineAllocationSteps();
   int space_remaining = static_cast<int>(*space->allocation_limit_address() -
                                          *space->allocation_top_address());
   if (space_remaining == 0) return false;
-  CreatePadding(space->heap(), space_remaining, i::NOT_TENURED);
+  std::vector<Handle<FixedArray>> handles =
+      CreatePadding(space->heap(), space_remaining, i::NOT_TENURED);
+  if (out_handles != nullptr)
+    out_handles->insert(out_handles->end(), handles.begin(), handles.end());
   return true;
 }
 
 
 // Helper function that simulates a fill new-space in the heap.
-static inline void AllocateAllButNBytes(v8::internal::NewSpace* space,
-                                        int extra_bytes) {
+static inline void AllocateAllButNBytes(
+    v8::internal::NewSpace* space, int extra_bytes,
+    std::vector<Handle<FixedArray>>* out_handles = nullptr) {
   space->DisableInlineAllocationSteps();
   int space_remaining = static_cast<int>(*space->allocation_limit_address() -
                                          *space->allocation_top_address());
   CHECK(space_remaining >= extra_bytes);
   int new_linear_size = space_remaining - extra_bytes;
   if (new_linear_size == 0) return;
-  CreatePadding(space->heap(), new_linear_size, i::NOT_TENURED);
+  std::vector<Handle<FixedArray>> handles =
+      CreatePadding(space->heap(), new_linear_size, i::NOT_TENURED);
+  if (out_handles != nullptr)
+    out_handles->insert(out_handles->end(), handles.begin(), handles.end());
 }
 
-
-static inline void FillCurrentPage(v8::internal::NewSpace* space) {
-  AllocateAllButNBytes(space, 0);
+static inline void FillCurrentPage(
+    v8::internal::NewSpace* space,
+    std::vector<Handle<FixedArray>>* out_handles = nullptr) {
+  AllocateAllButNBytes(space, 0, out_handles);
 }
 
-
-static inline void SimulateFullSpace(v8::internal::NewSpace* space) {
-  FillCurrentPage(space);
-  while (FillUpOnePage(space)) {
+static inline void SimulateFullSpace(
+    v8::internal::NewSpace* space,
+    std::vector<Handle<FixedArray>>* out_handles = nullptr) {
+  FillCurrentPage(space, out_handles);
+  while (FillUpOnePage(space, out_handles) || space->AddFreshPage()) {
   }
 }
 
diff --git a/test/cctest/interpreter/bytecode-expectations-printer.cc b/test/cctest/interpreter/bytecode-expectations-printer.cc
index bf43b95..b0f6236 100644
--- a/test/cctest/interpreter/bytecode-expectations-printer.cc
+++ b/test/cctest/interpreter/bytecode-expectations-printer.cc
@@ -4,6 +4,7 @@
 
 #include "test/cctest/interpreter/bytecode-expectations-printer.h"
 
+#include <iomanip>
 #include <iostream>
 #include <vector>
 
@@ -19,6 +20,7 @@
 #include "src/interpreter/bytecode-generator.h"
 #include "src/interpreter/bytecodes.h"
 #include "src/interpreter/interpreter.h"
+#include "src/interpreter/source-position-table.h"
 
 namespace v8 {
 namespace internal {
@@ -27,6 +29,7 @@
 // static
 const char* const BytecodeExpectationsPrinter::kDefaultTopFunctionName =
     "__genbckexp_wrapper__";
+const char* const BytecodeExpectationsPrinter::kIndent = "  ";
 
 v8::Local<v8::String> BytecodeExpectationsPrinter::V8StringFromUTF8(
     const char* data) const {
@@ -102,11 +105,11 @@
 }  // namespace
 
 void BytecodeExpectationsPrinter::PrintBytecodeOperand(
-    std::ostream& stream, const BytecodeArrayIterator& bytecode_iter,
+    std::ostream& stream, const BytecodeArrayIterator& bytecode_iterator,
     const Bytecode& bytecode, int op_index, int parameter_count) const {
   OperandType op_type = Bytecodes::GetOperandType(bytecode, op_index);
   OperandSize op_size = Bytecodes::GetOperandSize(
-      bytecode, op_index, bytecode_iter.current_operand_scale());
+      bytecode, op_index, bytecode_iterator.current_operand_scale());
 
   const char* size_tag;
   switch (op_size) {
@@ -125,7 +128,7 @@
   }
 
   if (Bytecodes::IsRegisterOperandType(op_type)) {
-    Register register_value = bytecode_iter.GetRegisterOperand(op_index);
+    Register register_value = bytecode_iterator.GetRegisterOperand(op_index);
     stream << 'R';
     if (op_size != OperandSize::kByte) stream << size_tag;
     if (register_value.is_new_target()) {
@@ -149,19 +152,19 @@
 
     switch (op_type) {
       case OperandType::kFlag8:
-        stream << bytecode_iter.GetFlagOperand(op_index);
+        stream << bytecode_iterator.GetFlagOperand(op_index);
         break;
       case OperandType::kIdx:
-        stream << bytecode_iter.GetIndexOperand(op_index);
+        stream << bytecode_iterator.GetIndexOperand(op_index);
         break;
       case OperandType::kImm:
-        stream << bytecode_iter.GetImmediateOperand(op_index);
+        stream << bytecode_iterator.GetImmediateOperand(op_index);
         break;
       case OperandType::kRegCount:
-        stream << bytecode_iter.GetRegisterCountOperand(op_index);
+        stream << bytecode_iterator.GetRegisterCountOperand(op_index);
         break;
       case OperandType::kRuntimeId: {
-        uint32_t operand = bytecode_iter.GetRuntimeIdOperand(op_index);
+        uint32_t operand = bytecode_iterator.GetRuntimeIdOperand(op_index);
         stream << "Runtime::k"
                << i::Runtime::FunctionForId(IndexToFunctionId(operand))->name;
         break;
@@ -175,10 +178,10 @@
 }
 
 void BytecodeExpectationsPrinter::PrintBytecode(
-    std::ostream& stream, const BytecodeArrayIterator& bytecode_iter,
+    std::ostream& stream, const BytecodeArrayIterator& bytecode_iterator,
     int parameter_count) const {
-  Bytecode bytecode = bytecode_iter.current_bytecode();
-  OperandScale operand_scale = bytecode_iter.current_operand_scale();
+  Bytecode bytecode = bytecode_iterator.current_bytecode();
+  OperandScale operand_scale = bytecode_iterator.current_operand_scale();
   if (Bytecodes::OperandScaleRequiresPrefixBytecode(operand_scale)) {
     Bytecode prefix = Bytecodes::OperandScaleToPrefixBytecode(operand_scale);
     stream << "B(" << Bytecodes::ToString(prefix) << "), ";
@@ -187,11 +190,30 @@
   int operands_count = Bytecodes::NumberOfOperands(bytecode);
   for (int op_index = 0; op_index < operands_count; ++op_index) {
     stream << ", ";
-    PrintBytecodeOperand(stream, bytecode_iter, bytecode, op_index,
+    PrintBytecodeOperand(stream, bytecode_iterator, bytecode, op_index,
                          parameter_count);
   }
 }
 
+void BytecodeExpectationsPrinter::PrintSourcePosition(
+    std::ostream& stream, SourcePositionTableIterator& source_iterator,
+    int bytecode_offset) const {
+  static const size_t kPositionWidth = 4;
+  if (!source_iterator.done() &&
+      source_iterator.bytecode_offset() == bytecode_offset) {
+    stream << "/* " << std::setw(kPositionWidth)
+           << source_iterator.source_position();
+    if (source_iterator.is_statement()) {
+      stream << " S> */ ";
+    } else {
+      stream << " E> */ ";
+    }
+    source_iterator.Advance();
+  } else {
+    stream << "   " << std::setw(kPositionWidth) << ' ' << "       ";
+  }
+}
+
 void BytecodeExpectationsPrinter::PrintV8String(std::ostream& stream,
                                                 i::String* string) const {
   stream << '"';
@@ -246,10 +268,15 @@
     std::ostream& stream, i::Handle<i::BytecodeArray> bytecode_array) const {
   stream << "bytecode array length: " << bytecode_array->length()
          << "\nbytecodes: [\n";
-  BytecodeArrayIterator bytecode_iter(bytecode_array);
-  for (; !bytecode_iter.done(); bytecode_iter.Advance()) {
-    stream << "  ";
-    PrintBytecode(stream, bytecode_iter, bytecode_array->parameter_count());
+
+  SourcePositionTableIterator source_iterator(
+      bytecode_array->source_position_table());
+  BytecodeArrayIterator bytecode_iterator(bytecode_array);
+  for (; !bytecode_iterator.done(); bytecode_iterator.Advance()) {
+    stream << kIndent;
+    PrintSourcePosition(stream, source_iterator,
+                        bytecode_iterator.current_offset());
+    PrintBytecode(stream, bytecode_iterator, bytecode_array->parameter_count());
     stream << ",\n";
   }
   stream << "]\n";
@@ -261,7 +288,7 @@
   int num_constants = constant_pool->length();
   if (num_constants > 0) {
     for (int i = 0; i < num_constants; ++i) {
-      stream << "  ";
+      stream << kIndent;
       PrintConstant(stream, i::FixedArray::get(constant_pool, i, i_isolate()));
       stream << ",\n";
     }
@@ -275,7 +302,7 @@
   std::stringstream body_stream(body);
   std::string body_line;
   while (std::getline(body_stream, body_line)) {
-    stream << "  ";
+    stream << kIndent;
     PrintEscapedString(stream, body_line);
     stream << '\n';
   }
diff --git a/test/cctest/interpreter/bytecode-expectations-printer.h b/test/cctest/interpreter/bytecode-expectations-printer.h
index 0fcead5..32b8ff4 100644
--- a/test/cctest/interpreter/bytecode-expectations-printer.h
+++ b/test/cctest/interpreter/bytecode-expectations-printer.h
@@ -20,6 +20,7 @@
 namespace interpreter {
 
 class BytecodeArrayIterator;
+class SourcePositionTableIterator;
 
 class BytecodeExpectationsPrinter final {
  public:
@@ -65,12 +66,15 @@
   void PrintEscapedString(std::ostream& stream,  // NOLINT
                           const std::string& string) const;
   void PrintBytecodeOperand(std::ostream& stream,  // NOLINT
-                            const BytecodeArrayIterator& bytecode_iter,
+                            const BytecodeArrayIterator& bytecode_iterator,
                             const Bytecode& bytecode, int op_index,
                             int parameter_count) const;
   void PrintBytecode(std::ostream& stream,  // NOLINT
-                     const BytecodeArrayIterator& bytecode_iter,
+                     const BytecodeArrayIterator& bytecode_iterator,
                      int parameter_count) const;
+  void PrintSourcePosition(std::ostream& stream,  // NOLINT
+                           SourcePositionTableIterator& source_iterator,
+                           int bytecode_offset) const;
   void PrintV8String(std::ostream& stream,  // NOLINT
                      i::String* string) const;
   void PrintConstant(std::ostream& stream,  // NOLINT
@@ -111,6 +115,7 @@
   std::string test_function_name_;
 
   static const char* const kDefaultTopFunctionName;
+  static const char* const kIndent;
 };
 
 }  // namespace interpreter
diff --git a/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden b/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
index 4c9753f..5dcb46b 100644
--- a/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 6
 bytecodes: [
-  B(StackCheck),
-  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
+  /*   51 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -33,24 +33,24 @@
 parameter count: 1
 bytecode array length: 39
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  B(Star), R(2),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(KeyedStoreICSloppy), R(2), R(1), U8(1),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(3),
-  B(LdaSmi), U8(1),
-  B(Add), R(3),
-  B(KeyedStoreICSloppy), R(2), R(1), U8(1),
-  B(Ldar), R(2),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
+                B(Star), R(2),
+                B(LdaZero),
+                B(Star), R(1),
+  /*   54 E> */ B(Ldar), R(0),
+                B(KeyedStoreICSloppy), R(2), R(1), U8(1),
+                B(LdaSmi), U8(1),
+                B(Star), R(1),
+  /*   57 E> */ B(Ldar), R(0),
+                B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(Add), R(3),
+                B(KeyedStoreICSloppy), R(2), R(1), U8(1),
+                B(Ldar), R(2),
+  /*   66 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -66,9 +66,9 @@
 parameter count: 1
 bytecode array length: 6
 bytecodes: [
-  B(StackCheck),
-  B(CreateArrayLiteral), U8(0), U8(2), U8(2),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateArrayLiteral), U8(0), U8(2), U8(2),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -84,36 +84,36 @@
 parameter count: 1
 bytecode array length: 69
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(CreateArrayLiteral), U8(0), U8(2), U8(2),
-  B(Star), R(2),
-  B(LdaZero),
-  B(Star), R(1),
-  B(CreateArrayLiteral), U8(1), U8(0), U8(3),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(3),
-  B(Ldar), R(0),
-  B(KeyedStoreICSloppy), R(4), R(3), U8(1),
-  B(Ldar), R(4),
-  B(KeyedStoreICSloppy), R(2), R(1), U8(5),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(CreateArrayLiteral), U8(2), U8(1), U8(3),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(3),
-  B(Ldar), R(0),
-  B(Star), R(5),
-  B(LdaSmi), U8(2),
-  B(Add), R(5),
-  B(KeyedStoreICSloppy), R(4), R(3), U8(3),
-  B(Ldar), R(4),
-  B(KeyedStoreICSloppy), R(2), R(1), U8(5),
-  B(Ldar), R(2),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(CreateArrayLiteral), U8(0), U8(2), U8(2),
+                B(Star), R(2),
+                B(LdaZero),
+                B(Star), R(1),
+                B(CreateArrayLiteral), U8(1), U8(0), U8(3),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(3),
+  /*   56 E> */ B(Ldar), R(0),
+                B(KeyedStoreICSloppy), R(4), R(3), U8(1),
+                B(Ldar), R(4),
+                B(KeyedStoreICSloppy), R(2), R(1), U8(5),
+                B(LdaSmi), U8(1),
+                B(Star), R(1),
+                B(CreateArrayLiteral), U8(2), U8(1), U8(3),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(3),
+  /*   66 E> */ B(Ldar), R(0),
+                B(Star), R(5),
+                B(LdaSmi), U8(2),
+                B(Add), R(5),
+                B(KeyedStoreICSloppy), R(4), R(3), U8(3),
+                B(Ldar), R(4),
+                B(KeyedStoreICSloppy), R(2), R(1), U8(5),
+                B(Ldar), R(2),
+  /*   77 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden b/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden
index 2077b79..a852ad4 100644
--- a/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden
@@ -272,521 +272,521 @@
 parameter count: 1
 bytecode array length: 1033
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(Wide), B(CreateArrayLiteral), U16(256), U16(0), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   41 S> */ B(LdaConstant), U8(0),
+  /*   43 E> */ B(Star), R(0),
+  /*   51 S> */ B(LdaConstant), U8(1),
+  /*   53 E> */ B(Star), R(0),
+  /*   61 S> */ B(LdaConstant), U8(2),
+  /*   63 E> */ B(Star), R(0),
+  /*   71 S> */ B(LdaConstant), U8(3),
+  /*   73 E> */ B(Star), R(0),
+  /*   81 S> */ B(LdaConstant), U8(4),
+  /*   83 E> */ B(Star), R(0),
+  /*   91 S> */ B(LdaConstant), U8(5),
+  /*   93 E> */ B(Star), R(0),
+  /*  101 S> */ B(LdaConstant), U8(6),
+  /*  103 E> */ B(Star), R(0),
+  /*  111 S> */ B(LdaConstant), U8(7),
+  /*  113 E> */ B(Star), R(0),
+  /*  121 S> */ B(LdaConstant), U8(8),
+  /*  123 E> */ B(Star), R(0),
+  /*  131 S> */ B(LdaConstant), U8(9),
+  /*  133 E> */ B(Star), R(0),
+  /*  141 S> */ B(LdaConstant), U8(10),
+  /*  143 E> */ B(Star), R(0),
+  /*  151 S> */ B(LdaConstant), U8(11),
+  /*  153 E> */ B(Star), R(0),
+  /*  161 S> */ B(LdaConstant), U8(12),
+  /*  163 E> */ B(Star), R(0),
+  /*  171 S> */ B(LdaConstant), U8(13),
+  /*  173 E> */ B(Star), R(0),
+  /*  181 S> */ B(LdaConstant), U8(14),
+  /*  183 E> */ B(Star), R(0),
+  /*  191 S> */ B(LdaConstant), U8(15),
+  /*  193 E> */ B(Star), R(0),
+  /*  201 S> */ B(LdaConstant), U8(16),
+  /*  203 E> */ B(Star), R(0),
+  /*  211 S> */ B(LdaConstant), U8(17),
+  /*  213 E> */ B(Star), R(0),
+  /*  221 S> */ B(LdaConstant), U8(18),
+  /*  223 E> */ B(Star), R(0),
+  /*  231 S> */ B(LdaConstant), U8(19),
+  /*  233 E> */ B(Star), R(0),
+  /*  241 S> */ B(LdaConstant), U8(20),
+  /*  243 E> */ B(Star), R(0),
+  /*  251 S> */ B(LdaConstant), U8(21),
+  /*  253 E> */ B(Star), R(0),
+  /*  261 S> */ B(LdaConstant), U8(22),
+  /*  263 E> */ B(Star), R(0),
+  /*  271 S> */ B(LdaConstant), U8(23),
+  /*  273 E> */ B(Star), R(0),
+  /*  281 S> */ B(LdaConstant), U8(24),
+  /*  283 E> */ B(Star), R(0),
+  /*  291 S> */ B(LdaConstant), U8(25),
+  /*  293 E> */ B(Star), R(0),
+  /*  301 S> */ B(LdaConstant), U8(26),
+  /*  303 E> */ B(Star), R(0),
+  /*  311 S> */ B(LdaConstant), U8(27),
+  /*  313 E> */ B(Star), R(0),
+  /*  321 S> */ B(LdaConstant), U8(28),
+  /*  323 E> */ B(Star), R(0),
+  /*  331 S> */ B(LdaConstant), U8(29),
+  /*  333 E> */ B(Star), R(0),
+  /*  341 S> */ B(LdaConstant), U8(30),
+  /*  343 E> */ B(Star), R(0),
+  /*  351 S> */ B(LdaConstant), U8(31),
+  /*  353 E> */ B(Star), R(0),
+  /*  361 S> */ B(LdaConstant), U8(32),
+  /*  363 E> */ B(Star), R(0),
+  /*  371 S> */ B(LdaConstant), U8(33),
+  /*  373 E> */ B(Star), R(0),
+  /*  381 S> */ B(LdaConstant), U8(34),
+  /*  383 E> */ B(Star), R(0),
+  /*  391 S> */ B(LdaConstant), U8(35),
+  /*  393 E> */ B(Star), R(0),
+  /*  401 S> */ B(LdaConstant), U8(36),
+  /*  403 E> */ B(Star), R(0),
+  /*  411 S> */ B(LdaConstant), U8(37),
+  /*  413 E> */ B(Star), R(0),
+  /*  421 S> */ B(LdaConstant), U8(38),
+  /*  423 E> */ B(Star), R(0),
+  /*  431 S> */ B(LdaConstant), U8(39),
+  /*  433 E> */ B(Star), R(0),
+  /*  441 S> */ B(LdaConstant), U8(40),
+  /*  443 E> */ B(Star), R(0),
+  /*  451 S> */ B(LdaConstant), U8(41),
+  /*  453 E> */ B(Star), R(0),
+  /*  461 S> */ B(LdaConstant), U8(42),
+  /*  463 E> */ B(Star), R(0),
+  /*  471 S> */ B(LdaConstant), U8(43),
+  /*  473 E> */ B(Star), R(0),
+  /*  481 S> */ B(LdaConstant), U8(44),
+  /*  483 E> */ B(Star), R(0),
+  /*  491 S> */ B(LdaConstant), U8(45),
+  /*  493 E> */ B(Star), R(0),
+  /*  501 S> */ B(LdaConstant), U8(46),
+  /*  503 E> */ B(Star), R(0),
+  /*  511 S> */ B(LdaConstant), U8(47),
+  /*  513 E> */ B(Star), R(0),
+  /*  521 S> */ B(LdaConstant), U8(48),
+  /*  523 E> */ B(Star), R(0),
+  /*  531 S> */ B(LdaConstant), U8(49),
+  /*  533 E> */ B(Star), R(0),
+  /*  541 S> */ B(LdaConstant), U8(50),
+  /*  543 E> */ B(Star), R(0),
+  /*  551 S> */ B(LdaConstant), U8(51),
+  /*  553 E> */ B(Star), R(0),
+  /*  561 S> */ B(LdaConstant), U8(52),
+  /*  563 E> */ B(Star), R(0),
+  /*  571 S> */ B(LdaConstant), U8(53),
+  /*  573 E> */ B(Star), R(0),
+  /*  581 S> */ B(LdaConstant), U8(54),
+  /*  583 E> */ B(Star), R(0),
+  /*  591 S> */ B(LdaConstant), U8(55),
+  /*  593 E> */ B(Star), R(0),
+  /*  601 S> */ B(LdaConstant), U8(56),
+  /*  603 E> */ B(Star), R(0),
+  /*  611 S> */ B(LdaConstant), U8(57),
+  /*  613 E> */ B(Star), R(0),
+  /*  621 S> */ B(LdaConstant), U8(58),
+  /*  623 E> */ B(Star), R(0),
+  /*  631 S> */ B(LdaConstant), U8(59),
+  /*  633 E> */ B(Star), R(0),
+  /*  641 S> */ B(LdaConstant), U8(60),
+  /*  643 E> */ B(Star), R(0),
+  /*  651 S> */ B(LdaConstant), U8(61),
+  /*  653 E> */ B(Star), R(0),
+  /*  661 S> */ B(LdaConstant), U8(62),
+  /*  663 E> */ B(Star), R(0),
+  /*  671 S> */ B(LdaConstant), U8(63),
+  /*  673 E> */ B(Star), R(0),
+  /*  681 S> */ B(LdaConstant), U8(64),
+  /*  683 E> */ B(Star), R(0),
+  /*  691 S> */ B(LdaConstant), U8(65),
+  /*  693 E> */ B(Star), R(0),
+  /*  701 S> */ B(LdaConstant), U8(66),
+  /*  703 E> */ B(Star), R(0),
+  /*  711 S> */ B(LdaConstant), U8(67),
+  /*  713 E> */ B(Star), R(0),
+  /*  721 S> */ B(LdaConstant), U8(68),
+  /*  723 E> */ B(Star), R(0),
+  /*  731 S> */ B(LdaConstant), U8(69),
+  /*  733 E> */ B(Star), R(0),
+  /*  741 S> */ B(LdaConstant), U8(70),
+  /*  743 E> */ B(Star), R(0),
+  /*  751 S> */ B(LdaConstant), U8(71),
+  /*  753 E> */ B(Star), R(0),
+  /*  761 S> */ B(LdaConstant), U8(72),
+  /*  763 E> */ B(Star), R(0),
+  /*  771 S> */ B(LdaConstant), U8(73),
+  /*  773 E> */ B(Star), R(0),
+  /*  781 S> */ B(LdaConstant), U8(74),
+  /*  783 E> */ B(Star), R(0),
+  /*  791 S> */ B(LdaConstant), U8(75),
+  /*  793 E> */ B(Star), R(0),
+  /*  801 S> */ B(LdaConstant), U8(76),
+  /*  803 E> */ B(Star), R(0),
+  /*  811 S> */ B(LdaConstant), U8(77),
+  /*  813 E> */ B(Star), R(0),
+  /*  821 S> */ B(LdaConstant), U8(78),
+  /*  823 E> */ B(Star), R(0),
+  /*  831 S> */ B(LdaConstant), U8(79),
+  /*  833 E> */ B(Star), R(0),
+  /*  841 S> */ B(LdaConstant), U8(80),
+  /*  843 E> */ B(Star), R(0),
+  /*  851 S> */ B(LdaConstant), U8(81),
+  /*  853 E> */ B(Star), R(0),
+  /*  861 S> */ B(LdaConstant), U8(82),
+  /*  863 E> */ B(Star), R(0),
+  /*  871 S> */ B(LdaConstant), U8(83),
+  /*  873 E> */ B(Star), R(0),
+  /*  881 S> */ B(LdaConstant), U8(84),
+  /*  883 E> */ B(Star), R(0),
+  /*  891 S> */ B(LdaConstant), U8(85),
+  /*  893 E> */ B(Star), R(0),
+  /*  901 S> */ B(LdaConstant), U8(86),
+  /*  903 E> */ B(Star), R(0),
+  /*  911 S> */ B(LdaConstant), U8(87),
+  /*  913 E> */ B(Star), R(0),
+  /*  921 S> */ B(LdaConstant), U8(88),
+  /*  923 E> */ B(Star), R(0),
+  /*  931 S> */ B(LdaConstant), U8(89),
+  /*  933 E> */ B(Star), R(0),
+  /*  941 S> */ B(LdaConstant), U8(90),
+  /*  943 E> */ B(Star), R(0),
+  /*  951 S> */ B(LdaConstant), U8(91),
+  /*  953 E> */ B(Star), R(0),
+  /*  961 S> */ B(LdaConstant), U8(92),
+  /*  963 E> */ B(Star), R(0),
+  /*  971 S> */ B(LdaConstant), U8(93),
+  /*  973 E> */ B(Star), R(0),
+  /*  981 S> */ B(LdaConstant), U8(94),
+  /*  983 E> */ B(Star), R(0),
+  /*  991 S> */ B(LdaConstant), U8(95),
+  /*  993 E> */ B(Star), R(0),
+  /* 1001 S> */ B(LdaConstant), U8(96),
+  /* 1003 E> */ B(Star), R(0),
+  /* 1011 S> */ B(LdaConstant), U8(97),
+  /* 1013 E> */ B(Star), R(0),
+  /* 1021 S> */ B(LdaConstant), U8(98),
+  /* 1023 E> */ B(Star), R(0),
+  /* 1031 S> */ B(LdaConstant), U8(99),
+  /* 1033 E> */ B(Star), R(0),
+  /* 1041 S> */ B(LdaConstant), U8(100),
+  /* 1043 E> */ B(Star), R(0),
+  /* 1051 S> */ B(LdaConstant), U8(101),
+  /* 1053 E> */ B(Star), R(0),
+  /* 1061 S> */ B(LdaConstant), U8(102),
+  /* 1063 E> */ B(Star), R(0),
+  /* 1071 S> */ B(LdaConstant), U8(103),
+  /* 1073 E> */ B(Star), R(0),
+  /* 1081 S> */ B(LdaConstant), U8(104),
+  /* 1083 E> */ B(Star), R(0),
+  /* 1091 S> */ B(LdaConstant), U8(105),
+  /* 1093 E> */ B(Star), R(0),
+  /* 1101 S> */ B(LdaConstant), U8(106),
+  /* 1103 E> */ B(Star), R(0),
+  /* 1111 S> */ B(LdaConstant), U8(107),
+  /* 1113 E> */ B(Star), R(0),
+  /* 1121 S> */ B(LdaConstant), U8(108),
+  /* 1123 E> */ B(Star), R(0),
+  /* 1131 S> */ B(LdaConstant), U8(109),
+  /* 1133 E> */ B(Star), R(0),
+  /* 1141 S> */ B(LdaConstant), U8(110),
+  /* 1143 E> */ B(Star), R(0),
+  /* 1151 S> */ B(LdaConstant), U8(111),
+  /* 1153 E> */ B(Star), R(0),
+  /* 1161 S> */ B(LdaConstant), U8(112),
+  /* 1163 E> */ B(Star), R(0),
+  /* 1171 S> */ B(LdaConstant), U8(113),
+  /* 1173 E> */ B(Star), R(0),
+  /* 1181 S> */ B(LdaConstant), U8(114),
+  /* 1183 E> */ B(Star), R(0),
+  /* 1191 S> */ B(LdaConstant), U8(115),
+  /* 1193 E> */ B(Star), R(0),
+  /* 1201 S> */ B(LdaConstant), U8(116),
+  /* 1203 E> */ B(Star), R(0),
+  /* 1211 S> */ B(LdaConstant), U8(117),
+  /* 1213 E> */ B(Star), R(0),
+  /* 1221 S> */ B(LdaConstant), U8(118),
+  /* 1223 E> */ B(Star), R(0),
+  /* 1231 S> */ B(LdaConstant), U8(119),
+  /* 1233 E> */ B(Star), R(0),
+  /* 1241 S> */ B(LdaConstant), U8(120),
+  /* 1243 E> */ B(Star), R(0),
+  /* 1251 S> */ B(LdaConstant), U8(121),
+  /* 1253 E> */ B(Star), R(0),
+  /* 1261 S> */ B(LdaConstant), U8(122),
+  /* 1263 E> */ B(Star), R(0),
+  /* 1271 S> */ B(LdaConstant), U8(123),
+  /* 1273 E> */ B(Star), R(0),
+  /* 1281 S> */ B(LdaConstant), U8(124),
+  /* 1283 E> */ B(Star), R(0),
+  /* 1291 S> */ B(LdaConstant), U8(125),
+  /* 1293 E> */ B(Star), R(0),
+  /* 1301 S> */ B(LdaConstant), U8(126),
+  /* 1303 E> */ B(Star), R(0),
+  /* 1311 S> */ B(LdaConstant), U8(127),
+  /* 1313 E> */ B(Star), R(0),
+  /* 1321 S> */ B(LdaConstant), U8(128),
+  /* 1323 E> */ B(Star), R(0),
+  /* 1331 S> */ B(LdaConstant), U8(129),
+  /* 1333 E> */ B(Star), R(0),
+  /* 1341 S> */ B(LdaConstant), U8(130),
+  /* 1343 E> */ B(Star), R(0),
+  /* 1351 S> */ B(LdaConstant), U8(131),
+  /* 1353 E> */ B(Star), R(0),
+  /* 1361 S> */ B(LdaConstant), U8(132),
+  /* 1363 E> */ B(Star), R(0),
+  /* 1371 S> */ B(LdaConstant), U8(133),
+  /* 1373 E> */ B(Star), R(0),
+  /* 1381 S> */ B(LdaConstant), U8(134),
+  /* 1383 E> */ B(Star), R(0),
+  /* 1391 S> */ B(LdaConstant), U8(135),
+  /* 1393 E> */ B(Star), R(0),
+  /* 1401 S> */ B(LdaConstant), U8(136),
+  /* 1403 E> */ B(Star), R(0),
+  /* 1411 S> */ B(LdaConstant), U8(137),
+  /* 1413 E> */ B(Star), R(0),
+  /* 1421 S> */ B(LdaConstant), U8(138),
+  /* 1423 E> */ B(Star), R(0),
+  /* 1431 S> */ B(LdaConstant), U8(139),
+  /* 1433 E> */ B(Star), R(0),
+  /* 1441 S> */ B(LdaConstant), U8(140),
+  /* 1443 E> */ B(Star), R(0),
+  /* 1451 S> */ B(LdaConstant), U8(141),
+  /* 1453 E> */ B(Star), R(0),
+  /* 1461 S> */ B(LdaConstant), U8(142),
+  /* 1463 E> */ B(Star), R(0),
+  /* 1471 S> */ B(LdaConstant), U8(143),
+  /* 1473 E> */ B(Star), R(0),
+  /* 1481 S> */ B(LdaConstant), U8(144),
+  /* 1483 E> */ B(Star), R(0),
+  /* 1491 S> */ B(LdaConstant), U8(145),
+  /* 1493 E> */ B(Star), R(0),
+  /* 1501 S> */ B(LdaConstant), U8(146),
+  /* 1503 E> */ B(Star), R(0),
+  /* 1511 S> */ B(LdaConstant), U8(147),
+  /* 1513 E> */ B(Star), R(0),
+  /* 1521 S> */ B(LdaConstant), U8(148),
+  /* 1523 E> */ B(Star), R(0),
+  /* 1531 S> */ B(LdaConstant), U8(149),
+  /* 1533 E> */ B(Star), R(0),
+  /* 1541 S> */ B(LdaConstant), U8(150),
+  /* 1543 E> */ B(Star), R(0),
+  /* 1551 S> */ B(LdaConstant), U8(151),
+  /* 1553 E> */ B(Star), R(0),
+  /* 1561 S> */ B(LdaConstant), U8(152),
+  /* 1563 E> */ B(Star), R(0),
+  /* 1571 S> */ B(LdaConstant), U8(153),
+  /* 1573 E> */ B(Star), R(0),
+  /* 1581 S> */ B(LdaConstant), U8(154),
+  /* 1583 E> */ B(Star), R(0),
+  /* 1591 S> */ B(LdaConstant), U8(155),
+  /* 1593 E> */ B(Star), R(0),
+  /* 1601 S> */ B(LdaConstant), U8(156),
+  /* 1603 E> */ B(Star), R(0),
+  /* 1611 S> */ B(LdaConstant), U8(157),
+  /* 1613 E> */ B(Star), R(0),
+  /* 1621 S> */ B(LdaConstant), U8(158),
+  /* 1623 E> */ B(Star), R(0),
+  /* 1631 S> */ B(LdaConstant), U8(159),
+  /* 1633 E> */ B(Star), R(0),
+  /* 1641 S> */ B(LdaConstant), U8(160),
+  /* 1643 E> */ B(Star), R(0),
+  /* 1651 S> */ B(LdaConstant), U8(161),
+  /* 1653 E> */ B(Star), R(0),
+  /* 1661 S> */ B(LdaConstant), U8(162),
+  /* 1663 E> */ B(Star), R(0),
+  /* 1671 S> */ B(LdaConstant), U8(163),
+  /* 1673 E> */ B(Star), R(0),
+  /* 1681 S> */ B(LdaConstant), U8(164),
+  /* 1683 E> */ B(Star), R(0),
+  /* 1691 S> */ B(LdaConstant), U8(165),
+  /* 1693 E> */ B(Star), R(0),
+  /* 1701 S> */ B(LdaConstant), U8(166),
+  /* 1703 E> */ B(Star), R(0),
+  /* 1711 S> */ B(LdaConstant), U8(167),
+  /* 1713 E> */ B(Star), R(0),
+  /* 1721 S> */ B(LdaConstant), U8(168),
+  /* 1723 E> */ B(Star), R(0),
+  /* 1731 S> */ B(LdaConstant), U8(169),
+  /* 1733 E> */ B(Star), R(0),
+  /* 1741 S> */ B(LdaConstant), U8(170),
+  /* 1743 E> */ B(Star), R(0),
+  /* 1751 S> */ B(LdaConstant), U8(171),
+  /* 1753 E> */ B(Star), R(0),
+  /* 1761 S> */ B(LdaConstant), U8(172),
+  /* 1763 E> */ B(Star), R(0),
+  /* 1771 S> */ B(LdaConstant), U8(173),
+  /* 1773 E> */ B(Star), R(0),
+  /* 1781 S> */ B(LdaConstant), U8(174),
+  /* 1783 E> */ B(Star), R(0),
+  /* 1791 S> */ B(LdaConstant), U8(175),
+  /* 1793 E> */ B(Star), R(0),
+  /* 1801 S> */ B(LdaConstant), U8(176),
+  /* 1803 E> */ B(Star), R(0),
+  /* 1811 S> */ B(LdaConstant), U8(177),
+  /* 1813 E> */ B(Star), R(0),
+  /* 1821 S> */ B(LdaConstant), U8(178),
+  /* 1823 E> */ B(Star), R(0),
+  /* 1831 S> */ B(LdaConstant), U8(179),
+  /* 1833 E> */ B(Star), R(0),
+  /* 1841 S> */ B(LdaConstant), U8(180),
+  /* 1843 E> */ B(Star), R(0),
+  /* 1851 S> */ B(LdaConstant), U8(181),
+  /* 1853 E> */ B(Star), R(0),
+  /* 1861 S> */ B(LdaConstant), U8(182),
+  /* 1863 E> */ B(Star), R(0),
+  /* 1871 S> */ B(LdaConstant), U8(183),
+  /* 1873 E> */ B(Star), R(0),
+  /* 1881 S> */ B(LdaConstant), U8(184),
+  /* 1883 E> */ B(Star), R(0),
+  /* 1891 S> */ B(LdaConstant), U8(185),
+  /* 1893 E> */ B(Star), R(0),
+  /* 1901 S> */ B(LdaConstant), U8(186),
+  /* 1903 E> */ B(Star), R(0),
+  /* 1911 S> */ B(LdaConstant), U8(187),
+  /* 1913 E> */ B(Star), R(0),
+  /* 1921 S> */ B(LdaConstant), U8(188),
+  /* 1923 E> */ B(Star), R(0),
+  /* 1931 S> */ B(LdaConstant), U8(189),
+  /* 1933 E> */ B(Star), R(0),
+  /* 1941 S> */ B(LdaConstant), U8(190),
+  /* 1943 E> */ B(Star), R(0),
+  /* 1951 S> */ B(LdaConstant), U8(191),
+  /* 1953 E> */ B(Star), R(0),
+  /* 1961 S> */ B(LdaConstant), U8(192),
+  /* 1963 E> */ B(Star), R(0),
+  /* 1971 S> */ B(LdaConstant), U8(193),
+  /* 1973 E> */ B(Star), R(0),
+  /* 1981 S> */ B(LdaConstant), U8(194),
+  /* 1983 E> */ B(Star), R(0),
+  /* 1991 S> */ B(LdaConstant), U8(195),
+  /* 1993 E> */ B(Star), R(0),
+  /* 2001 S> */ B(LdaConstant), U8(196),
+  /* 2003 E> */ B(Star), R(0),
+  /* 2011 S> */ B(LdaConstant), U8(197),
+  /* 2013 E> */ B(Star), R(0),
+  /* 2021 S> */ B(LdaConstant), U8(198),
+  /* 2023 E> */ B(Star), R(0),
+  /* 2031 S> */ B(LdaConstant), U8(199),
+  /* 2033 E> */ B(Star), R(0),
+  /* 2041 S> */ B(LdaConstant), U8(200),
+  /* 2043 E> */ B(Star), R(0),
+  /* 2051 S> */ B(LdaConstant), U8(201),
+  /* 2053 E> */ B(Star), R(0),
+  /* 2061 S> */ B(LdaConstant), U8(202),
+  /* 2063 E> */ B(Star), R(0),
+  /* 2071 S> */ B(LdaConstant), U8(203),
+  /* 2073 E> */ B(Star), R(0),
+  /* 2081 S> */ B(LdaConstant), U8(204),
+  /* 2083 E> */ B(Star), R(0),
+  /* 2091 S> */ B(LdaConstant), U8(205),
+  /* 2093 E> */ B(Star), R(0),
+  /* 2101 S> */ B(LdaConstant), U8(206),
+  /* 2103 E> */ B(Star), R(0),
+  /* 2111 S> */ B(LdaConstant), U8(207),
+  /* 2113 E> */ B(Star), R(0),
+  /* 2121 S> */ B(LdaConstant), U8(208),
+  /* 2123 E> */ B(Star), R(0),
+  /* 2131 S> */ B(LdaConstant), U8(209),
+  /* 2133 E> */ B(Star), R(0),
+  /* 2141 S> */ B(LdaConstant), U8(210),
+  /* 2143 E> */ B(Star), R(0),
+  /* 2151 S> */ B(LdaConstant), U8(211),
+  /* 2153 E> */ B(Star), R(0),
+  /* 2161 S> */ B(LdaConstant), U8(212),
+  /* 2163 E> */ B(Star), R(0),
+  /* 2171 S> */ B(LdaConstant), U8(213),
+  /* 2173 E> */ B(Star), R(0),
+  /* 2181 S> */ B(LdaConstant), U8(214),
+  /* 2183 E> */ B(Star), R(0),
+  /* 2191 S> */ B(LdaConstant), U8(215),
+  /* 2193 E> */ B(Star), R(0),
+  /* 2201 S> */ B(LdaConstant), U8(216),
+  /* 2203 E> */ B(Star), R(0),
+  /* 2211 S> */ B(LdaConstant), U8(217),
+  /* 2213 E> */ B(Star), R(0),
+  /* 2221 S> */ B(LdaConstant), U8(218),
+  /* 2223 E> */ B(Star), R(0),
+  /* 2231 S> */ B(LdaConstant), U8(219),
+  /* 2233 E> */ B(Star), R(0),
+  /* 2241 S> */ B(LdaConstant), U8(220),
+  /* 2243 E> */ B(Star), R(0),
+  /* 2251 S> */ B(LdaConstant), U8(221),
+  /* 2253 E> */ B(Star), R(0),
+  /* 2261 S> */ B(LdaConstant), U8(222),
+  /* 2263 E> */ B(Star), R(0),
+  /* 2271 S> */ B(LdaConstant), U8(223),
+  /* 2273 E> */ B(Star), R(0),
+  /* 2281 S> */ B(LdaConstant), U8(224),
+  /* 2283 E> */ B(Star), R(0),
+  /* 2291 S> */ B(LdaConstant), U8(225),
+  /* 2293 E> */ B(Star), R(0),
+  /* 2301 S> */ B(LdaConstant), U8(226),
+  /* 2303 E> */ B(Star), R(0),
+  /* 2311 S> */ B(LdaConstant), U8(227),
+  /* 2313 E> */ B(Star), R(0),
+  /* 2321 S> */ B(LdaConstant), U8(228),
+  /* 2323 E> */ B(Star), R(0),
+  /* 2331 S> */ B(LdaConstant), U8(229),
+  /* 2333 E> */ B(Star), R(0),
+  /* 2341 S> */ B(LdaConstant), U8(230),
+  /* 2343 E> */ B(Star), R(0),
+  /* 2351 S> */ B(LdaConstant), U8(231),
+  /* 2353 E> */ B(Star), R(0),
+  /* 2361 S> */ B(LdaConstant), U8(232),
+  /* 2363 E> */ B(Star), R(0),
+  /* 2371 S> */ B(LdaConstant), U8(233),
+  /* 2373 E> */ B(Star), R(0),
+  /* 2381 S> */ B(LdaConstant), U8(234),
+  /* 2383 E> */ B(Star), R(0),
+  /* 2391 S> */ B(LdaConstant), U8(235),
+  /* 2393 E> */ B(Star), R(0),
+  /* 2401 S> */ B(LdaConstant), U8(236),
+  /* 2403 E> */ B(Star), R(0),
+  /* 2411 S> */ B(LdaConstant), U8(237),
+  /* 2413 E> */ B(Star), R(0),
+  /* 2421 S> */ B(LdaConstant), U8(238),
+  /* 2423 E> */ B(Star), R(0),
+  /* 2431 S> */ B(LdaConstant), U8(239),
+  /* 2433 E> */ B(Star), R(0),
+  /* 2441 S> */ B(LdaConstant), U8(240),
+  /* 2443 E> */ B(Star), R(0),
+  /* 2451 S> */ B(LdaConstant), U8(241),
+  /* 2453 E> */ B(Star), R(0),
+  /* 2461 S> */ B(LdaConstant), U8(242),
+  /* 2463 E> */ B(Star), R(0),
+  /* 2471 S> */ B(LdaConstant), U8(243),
+  /* 2473 E> */ B(Star), R(0),
+  /* 2481 S> */ B(LdaConstant), U8(244),
+  /* 2483 E> */ B(Star), R(0),
+  /* 2491 S> */ B(LdaConstant), U8(245),
+  /* 2493 E> */ B(Star), R(0),
+  /* 2501 S> */ B(LdaConstant), U8(246),
+  /* 2503 E> */ B(Star), R(0),
+  /* 2511 S> */ B(LdaConstant), U8(247),
+  /* 2513 E> */ B(Star), R(0),
+  /* 2521 S> */ B(LdaConstant), U8(248),
+  /* 2523 E> */ B(Star), R(0),
+  /* 2531 S> */ B(LdaConstant), U8(249),
+  /* 2533 E> */ B(Star), R(0),
+  /* 2541 S> */ B(LdaConstant), U8(250),
+  /* 2543 E> */ B(Star), R(0),
+  /* 2551 S> */ B(LdaConstant), U8(251),
+  /* 2553 E> */ B(Star), R(0),
+  /* 2561 S> */ B(LdaConstant), U8(252),
+  /* 2563 E> */ B(Star), R(0),
+  /* 2571 S> */ B(LdaConstant), U8(253),
+  /* 2573 E> */ B(Star), R(0),
+  /* 2581 S> */ B(LdaConstant), U8(254),
+  /* 2583 E> */ B(Star), R(0),
+  /* 2591 S> */ B(LdaConstant), U8(255),
+  /* 2593 E> */ B(Star), R(0),
+  /* 2601 S> */ B(Wide), B(CreateArrayLiteral), U16(256), U16(0), U8(3),
+  /* 2619 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::HEAP_NUMBER_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden b/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden
index f569bab..c80469b 100644
--- a/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden
+++ b/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden
@@ -16,20 +16,20 @@
 parameter count: 1
 bytecode array length: 25
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(0),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(LdaSmi), U8(4),
-  B(Star), R(0),
-  B(LdaSmi), U8(5),
-  B(Star), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   49 S> */ B(LdaSmi), U8(1),
+  /*   49 E> */ B(Star), R(1),
+  /*   52 S> */ B(LdaSmi), U8(2),
+  /*   62 E> */ B(Star), R(0),
+                B(LdaSmi), U8(3),
+  /*   69 E> */ B(Star), R(1),
+                B(LdaSmi), U8(4),
+  /*   76 E> */ B(Star), R(0),
+                B(LdaSmi), U8(5),
+  /*   83 E> */ B(Star), R(1),
+  /*   89 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -46,13 +46,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(55),
-  B(Star), R(0),
-  B(LdaSmi), U8(100),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(55),
+  /*   42 E> */ B(Star), R(0),
+  /*   57 S> */ B(LdaSmi), U8(100),
+  /*   57 E> */ B(Star), R(0),
+  /*   57 E> */ B(Star), R(1),
+  /*   75 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -69,19 +69,19 @@
 parameter count: 1
 bytecode array length: 24
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(55),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(100),
-  B(Star), R(0),
-  B(Add), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(101),
-  B(Star), R(0),
-  B(Add), R(2),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(55),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(Star), R(1),
+                B(LdaSmi), U8(100),
+  /*   57 E> */ B(Star), R(0),
+                B(Add), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(101),
+  /*   69 E> */ B(Star), R(0),
+                B(Add), R(2),
+  /*   48 E> */ B(Star), R(0),
+  /*   87 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -99,24 +99,24 @@
 parameter count: 1
 bytecode array length: 32
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(55),
-  B(Star), R(0),
-  B(LdaSmi), U8(56),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Sub), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(57),
-  B(Star), R(0),
-  B(Add), R(2),
-  B(Star), R(0),
-  B(ToNumber),
-  B(Star), R(1),
-  B(Inc),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(55),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(56),
+  /*   53 E> */ B(Star), R(0),
+                B(Star), R(1),
+  /*   61 E> */ B(Ldar), R(0),
+                B(Sub), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(57),
+  /*   68 E> */ B(Star), R(0),
+                B(Add), R(2),
+  /*   48 E> */ B(Star), R(0),
+  /*   75 S> */ B(ToNumber),
+                B(Star), R(1),
+                B(Inc),
+  /*   76 E> */ B(Star), R(0),
+  /*   90 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -133,23 +133,23 @@
 parameter count: 1
 bytecode array length: 32
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(55),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Add), R(2),
-  B(Star), R(3),
-  B(LdaSmi), U8(2),
-  B(Star), R(0),
-  B(Add), R(3),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(Star), R(0),
-  B(Add), R(2),
-  B(Star), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(55),
+  /*   42 E> */ B(Star), R(0),
+  /*   76 S> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*   61 E> */ B(Star), R(0),
+                B(Add), R(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(2),
+  /*   71 E> */ B(Star), R(0),
+                B(Add), R(3),
+                B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /*   81 E> */ B(Star), R(0),
+                B(Add), R(2),
+  /*   76 E> */ B(Star), R(1),
+  /*   97 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -166,23 +166,23 @@
 parameter count: 1
 bytecode array length: 32
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(55),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Add), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(2),
-  B(Star), R(0),
-  B(Add), R(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Star), R(0),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(55),
+  /*   42 E> */ B(Star), R(0),
+  /*   76 S> */ B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   61 E> */ B(Star), R(0),
+                B(Add), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(2),
+  /*   71 E> */ B(Star), R(0),
+                B(Add), R(2),
+                B(Star), R(1),
+                B(LdaSmi), U8(3),
+  /*   81 E> */ B(Star), R(0),
+                B(Add), R(1),
+  /*   76 E> */ B(Star), R(0),
+  /*   97 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -198,42 +198,42 @@
 parameter count: 1
 bytecode array length: 70
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(LdaSmi), U8(20),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Add), R(2),
-  B(Star), R(3),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(Star), R(4),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(Mul), R(4),
-  B(Add), R(3),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(Add), R(2),
-  B(Star), R(3),
-  B(LdaSmi), U8(4),
-  B(Star), R(0),
-  B(Add), R(3),
-  B(Star), R(2),
-  B(LdaSmi), U8(5),
-  B(Star), R(1),
-  B(Add), R(2),
-  B(Star), R(3),
-  B(Ldar), R(1),
-  B(Add), R(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   50 S> */ B(LdaSmi), U8(20),
+  /*   50 E> */ B(Star), R(1),
+  /*   54 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*   68 E> */ B(Star), R(0),
+                B(Add), R(2),
+                B(Star), R(3),
+  /*   76 E> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+                B(Star), R(4),
+                B(LdaSmi), U8(2),
+  /*   88 E> */ B(Star), R(1),
+                B(Mul), R(4),
+                B(Add), R(3),
+                B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /*   98 E> */ B(Star), R(1),
+                B(Add), R(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(4),
+  /*  108 E> */ B(Star), R(0),
+                B(Add), R(3),
+                B(Star), R(2),
+                B(LdaSmi), U8(5),
+  /*  118 E> */ B(Star), R(1),
+                B(Add), R(2),
+                B(Star), R(3),
+  /*  125 E> */ B(Ldar), R(1),
+                B(Add), R(3),
+  /*  128 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -247,30 +247,29 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 38
+bytecode array length: 37
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(17),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Add), R(1),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(ToNumber),
-  B(Star), R(1),
-  B(Inc),
-  B(Star), R(0),
-  B(Ldar), R(1),
-  B(Add), R(2),
-  B(Star), R(3),
-  B(Ldar), R(0),
-  B(ToNumber),
-  B(Inc),
-  B(Star), R(0),
-  B(Add), R(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(17),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(1),
+                B(Star), R(1),
+  /*   57 E> */ B(Ldar), R(0),
+                B(Add), R(1),
+                B(Star), R(2),
+                B(Ldar), R(0),
+                B(ToNumber),
+                B(Star), R(1),
+                B(Inc),
+  /*   63 E> */ B(Star), R(0),
+                B(Ldar), R(1),
+                B(Add), R(2),
+                B(Star), R(3),
+                B(Ldar), R(0),
+                B(Inc),
+  /*   72 E> */ B(Star), R(0),
+                B(Add), R(3),
+  /*   76 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/BasicBlockToBoolean.golden b/test/cctest/interpreter/bytecode_expectations/BasicBlockToBoolean.golden
index ee98e5a..6aa50ef 100644
--- a/test/cctest/interpreter/bytecode_expectations/BasicBlockToBoolean.golden
+++ b/test/cctest/interpreter/bytecode_expectations/BasicBlockToBoolean.golden
@@ -15,19 +15,19 @@
 parameter count: 1
 bytecode array length: 21
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(JumpIfToBooleanTrue), U8(9),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(TestLessThan), R(1),
-  B(JumpIfToBooleanFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanTrue), U8(9),
+  /*   54 E> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaZero),
+  /*   56 E> */ B(TestLessThan), R(1),
+                B(JumpIfToBooleanFalse), U8(5),
+  /*   63 S> */ B(LdaSmi), U8(1),
+  /*   75 S> */ B(Return),
+                B(LdaUndefined),
+  /*   75 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -42,19 +42,19 @@
 parameter count: 1
 bytecode array length: 21
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(JumpIfToBooleanFalse), U8(9),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(TestLessThan), R(1),
-  B(JumpIfToBooleanFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanFalse), U8(9),
+  /*   54 E> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaZero),
+  /*   56 E> */ B(TestLessThan), R(1),
+                B(JumpIfToBooleanFalse), U8(5),
+  /*   63 S> */ B(LdaSmi), U8(1),
+  /*   75 S> */ B(Return),
+                B(LdaUndefined),
+  /*   75 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -69,21 +69,21 @@
 parameter count: 1
 bytecode array length: 26
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(JumpIfToBooleanTrue), U8(9),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(TestLessThan), R(1),
-  B(JumpIfToBooleanFalse), U8(6),
-  B(LdaSmi), U8(2),
-  B(Jump), U8(4),
-  B(LdaSmi), U8(3),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanTrue), U8(9),
+  /*   55 E> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaZero),
+  /*   57 E> */ B(TestLessThan), R(1),
+                B(JumpIfToBooleanFalse), U8(6),
+                B(LdaSmi), U8(2),
+                B(Jump), U8(4),
+                B(LdaSmi), U8(3),
+  /*   47 E> */ B(Star), R(0),
+                B(LdaUndefined),
+  /*   71 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden b/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden
index 05ee657..7936736 100644
--- a/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden
+++ b/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden
@@ -17,10 +17,10 @@
 parameter count: 1
 bytecode array length: 5
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   98 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -39,10 +39,10 @@
 parameter count: 1
 bytecode array length: 5
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   87 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -65,41 +65,41 @@
 parameter count: 1
 bytecode array length: 66
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(10),
-  B(TestLessThan), R(2),
-  B(JumpIfFalse), U8(47),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(12),
-  B(Mul), R(2),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(-39),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(4),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(4),
-  B(Jump), U8(-53),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(1),
+  /*   53 E> */ B(Star), R(1),
+  /*   65 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(10),
+  /*   65 E> */ B(TestLessThan), R(2),
+                B(JumpIfFalse), U8(47),
+  /*   56 E> */ B(StackCheck),
+  /*   75 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(12),
+                B(Mul), R(2),
+  /*   77 E> */ B(Star), R(1),
+  /*   89 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+  /*   91 E> */ B(Star), R(0),
+  /*  102 S> */ B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /*  108 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*  114 S> */ B(Jump), U8(14),
+  /*  126 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(4),
+  /*  132 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*  138 S> */ B(Jump), U8(4),
+                B(Jump), U8(-53),
+  /*  147 S> */ B(Ldar), R(1),
+  /*  157 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -123,48 +123,48 @@
 parameter count: 1
 bytecode array length: 79
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(TestLessThan), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(-10),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(50),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(4),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(38),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(10),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(-46),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(5),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(14),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(-70),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 E> */ B(StackCheck),
+  /*   62 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaZero),
+  /*   68 E> */ B(TestLessThan), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   73 S> */ B(Jump), U8(60),
+  /*   85 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(3),
+  /*   91 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   97 S> */ B(Jump), U8(50),
+  /*  106 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(4),
+  /*  112 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*  118 S> */ B(Jump), U8(38),
+  /*  127 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(10),
+  /*  133 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*  140 S> */ B(Jump), U8(24),
+  /*  152 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(5),
+  /*  158 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*  164 S> */ B(Jump), U8(14),
+  /*  173 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*  175 E> */ B(Star), R(0),
+                B(Jump), U8(-70),
+  /*  186 S> */ B(Ldar), R(0),
+  /*  196 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -188,37 +188,37 @@
 parameter count: 1
 bytecode array length: 57
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(TestLessThan), R(1),
-  B(JumpIfFalse), U8(27),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(14),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(-33),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(4),
-  B(Jump), U8(-48),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 E> */ B(StackCheck),
+  /*   71 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(3),
+  /*   71 E> */ B(TestLessThan), R(1),
+                B(JumpIfFalse), U8(27),
+  /*   62 E> */ B(StackCheck),
+  /*   82 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   88 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   94 S> */ B(Jump), U8(14),
+  /*  105 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*  107 E> */ B(Star), R(0),
+                B(Jump), U8(-33),
+  /*  122 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*  124 E> */ B(Star), R(0),
+  /*  135 S> */ B(Jump), U8(4),
+                B(Jump), U8(-48),
+  /*  144 S> */ B(Ldar), R(0),
+  /*  154 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -239,27 +239,27 @@
 parameter count: 1
 bytecode array length: 39
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfToBooleanFalse), U8(25),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(12),
-  B(Mul), R(2),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Sub), R(2),
-  B(Star), R(0),
-  B(Jump), U8(-25),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   54 S> */ B(LdaSmi), U8(1),
+  /*   54 E> */ B(Star), R(1),
+  /*   64 S> */ B(Ldar), R(0),
+                B(JumpIfToBooleanFalse), U8(25),
+  /*   57 E> */ B(StackCheck),
+  /*   71 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(12),
+                B(Mul), R(2),
+  /*   73 E> */ B(Star), R(1),
+  /*   85 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Sub), R(2),
+  /*   87 E> */ B(Star), R(0),
+                B(Jump), U8(-25),
+  /*   98 S> */ B(Ldar), R(1),
+  /*  108 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -281,41 +281,41 @@
 parameter count: 1
 bytecode array length: 66
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(10),
-  B(Mul), R(2),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(5),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(34),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(6),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(12),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(Star), R(0),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(10),
-  B(TestLessThan), R(2),
-  B(JumpIfTrue), U8(-53),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(1),
+  /*   53 E> */ B(Star), R(1),
+  /*   56 E> */ B(StackCheck),
+  /*   63 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(10),
+                B(Mul), R(2),
+  /*   65 E> */ B(Star), R(1),
+  /*   77 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(5),
+  /*   83 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*   89 S> */ B(Jump), U8(34),
+  /*   98 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(6),
+  /*  104 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*  110 S> */ B(Jump), U8(12),
+  /*  122 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+  /*  124 E> */ B(Star), R(0),
+  /*  144 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(10),
+  /*  144 E> */ B(TestLessThan), R(2),
+                B(JumpIfTrue), U8(-53),
+  /*  151 S> */ B(Ldar), R(1),
+  /*  161 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -336,26 +336,26 @@
 parameter count: 1
 bytecode array length: 37
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(12),
-  B(Mul), R(2),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Sub), R(2),
-  B(Star), R(0),
-  B(Ldar), R(0),
-  B(JumpIfToBooleanTrue), U8(-23),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   54 S> */ B(LdaSmi), U8(1),
+  /*   54 E> */ B(Star), R(1),
+  /*   57 E> */ B(StackCheck),
+  /*   64 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(12),
+                B(Mul), R(2),
+  /*   66 E> */ B(Star), R(1),
+  /*   78 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Sub), R(2),
+  /*   80 E> */ B(Star), R(0),
+  /*   98 S> */ B(Ldar), R(0),
+                B(JumpIfToBooleanTrue), U8(-23),
+  /*  102 S> */ B(Ldar), R(1),
+  /*  112 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -377,35 +377,35 @@
 parameter count: 1
 bytecode array length: 54
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(10),
-  B(Mul), R(2),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(5),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(22),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(6),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(2),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(1),
+  /*   53 E> */ B(Star), R(1),
+  /*   56 E> */ B(StackCheck),
+  /*   63 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(10),
+                B(Mul), R(2),
+  /*   65 E> */ B(Star), R(1),
+  /*   77 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(5),
+  /*   83 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*   89 S> */ B(Jump), U8(22),
+  /*   98 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+  /*  100 E> */ B(Star), R(0),
+  /*  111 S> */ B(Star), R(2),
+                B(LdaSmi), U8(6),
+  /*  117 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*  123 S> */ B(Jump), U8(2),
+  /*  150 S> */ B(Ldar), R(1),
+  /*  160 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -427,36 +427,36 @@
 parameter count: 1
 bytecode array length: 56
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(10),
-  B(Mul), R(2),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(5),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(24),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(6),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(-41),
-  B(Jump), U8(-43),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(1),
+  /*   53 E> */ B(Star), R(1),
+  /*   56 E> */ B(StackCheck),
+  /*   63 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(10),
+                B(Mul), R(2),
+  /*   65 E> */ B(Star), R(1),
+  /*   77 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(5),
+  /*   83 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*   89 S> */ B(Jump), U8(24),
+  /*   98 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+  /*  100 E> */ B(Star), R(0),
+  /*  111 S> */ B(Star), R(2),
+                B(LdaSmi), U8(6),
+  /*  117 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*  123 S> */ B(Jump), U8(2),
+                B(Jump), U8(-43),
+  /*  149 S> */ B(Ldar), R(1),
+  /*  159 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -476,30 +476,30 @@
 parameter count: 1
 bytecode array length: 43
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(26),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(-23),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(-35),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 E> */ B(StackCheck),
+  /*   58 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   64 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   70 S> */ B(Jump), U8(26),
+  /*   79 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   85 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   91 S> */ B(Jump), U8(12),
+  /*  103 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*  105 E> */ B(Star), R(0),
+                B(Jump), U8(-35),
+                B(LdaUndefined),
+  /*  116 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -518,30 +518,30 @@
 parameter count: 1
 bytecode array length: 43
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(26),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(-23),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(-35),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   47 S> */ B(LdaZero),
+  /*   47 E> */ B(Star), R(0),
+  /*   34 E> */ B(StackCheck),
+  /*   56 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   62 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   68 S> */ B(Jump), U8(26),
+  /*   77 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   83 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   89 S> */ B(Jump), U8(12),
+  /*  101 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*  103 E> */ B(Star), R(0),
+                B(Jump), U8(-35),
+                B(LdaUndefined),
+  /*  114 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -560,30 +560,30 @@
 parameter count: 1
 bytecode array length: 43
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(26),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(2),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(-35),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 E> */ B(StackCheck),
+  /*   68 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   74 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   80 S> */ B(Jump), U8(26),
+  /*   89 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   95 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*  101 S> */ B(Jump), U8(2),
+  /*   55 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*   55 E> */ B(Star), R(0),
+                B(Jump), U8(-35),
+                B(LdaUndefined),
+  /*  113 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -601,30 +601,30 @@
 parameter count: 1
 bytecode array length: 43
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(26),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(2),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(-35),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   47 S> */ B(LdaZero),
+  /*   47 E> */ B(Star), R(0),
+  /*   34 E> */ B(StackCheck),
+  /*   66 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   72 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   78 S> */ B(Jump), U8(26),
+  /*   87 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   93 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   99 S> */ B(Jump), U8(2),
+  /*   53 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*   53 E> */ B(Star), R(0),
+                B(Jump), U8(-35),
+                B(LdaUndefined),
+  /*  111 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -643,31 +643,31 @@
 parameter count: 1
 bytecode array length: 44
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(100),
-  B(TestLessThan), R(2),
-  B(JumpIfFalse), U8(27),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(Star), R(0),
-  B(Jump), U8(2),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(Star), R(1),
-  B(Jump), U8(-33),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   58 S> */ B(LdaZero),
+  /*   58 E> */ B(Star), R(1),
+  /*   63 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(100),
+  /*   63 E> */ B(TestLessThan), R(2),
+                B(JumpIfFalse), U8(27),
+  /*   45 E> */ B(StackCheck),
+  /*   85 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+  /*   87 E> */ B(Star), R(0),
+  /*   98 S> */ B(Jump), U8(2),
+  /*   72 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+  /*   72 E> */ B(Star), R(1),
+                B(Jump), U8(-33),
+                B(LdaUndefined),
+  /*  110 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -684,28 +684,27 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 35
+bytecode array length: 34
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(LdaSmi), U8(10),
-  B(Star), R(1),
-  B(Ldar), R(1),
-  B(JumpIfToBooleanFalse), U8(21),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(12),
-  B(Mul), R(2),
-  B(Star), R(0),
-  B(Ldar), R(1),
-  B(ToNumber),
-  B(Dec),
-  B(Star), R(1),
-  B(Jump), U8(-21),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   58 S> */ B(LdaSmi), U8(10),
+  /*   58 E> */ B(Star), R(1),
+  /*   62 S> */ B(Ldar), R(1),
+                B(JumpIfToBooleanFalse), U8(20),
+  /*   45 E> */ B(StackCheck),
+  /*   74 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(12),
+                B(Mul), R(2),
+  /*   76 E> */ B(Star), R(0),
+  /*   67 S> */ B(Ldar), R(1),
+                B(Dec),
+  /*   67 E> */ B(Star), R(1),
+                B(Jump), U8(-20),
+  /*   88 S> */ B(Ldar), R(0),
+  /*   98 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -724,13 +723,13 @@
 parameter count: 1
 bytecode array length: 10
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   58 S> */ B(LdaZero),
+  /*   58 E> */ B(Star), R(1),
+  /*   91 S> */ B(Ldar), R(0),
+  /*  101 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -748,31 +747,30 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 39
+bytecode array length: 38
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(20),
-  B(TestEqual), R(2),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(10),
-  B(Ldar), R(1),
-  B(ToNumber),
-  B(Inc),
-  B(Star), R(1),
-  B(Jump), U8(-27),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   58 S> */ B(LdaZero),
+  /*   58 E> */ B(Star), R(1),
+  /*   45 E> */ B(StackCheck),
+  /*   76 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+  /*   78 E> */ B(Star), R(0),
+  /*   89 S> */ B(Star), R(2),
+                B(LdaSmi), U8(20),
+  /*   95 E> */ B(TestEqual), R(2),
+                B(JumpIfFalse), U8(4),
+  /*  102 S> */ B(Jump), U8(9),
+  /*   69 S> */ B(Ldar), R(1),
+                B(Inc),
+  /*   69 E> */ B(Star), R(1),
+                B(Jump), U8(-26),
+  /*  112 S> */ B(Ldar), R(0),
+  /*  122 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -795,59 +793,59 @@
 parameter count: 1
 bytecode array length: 120
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(1),
-  B(JumpIfToBooleanFalse), U8(112),
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(4),
-  B(Ldar), R(closure),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kPushBlockContext), R(4), U8(2),
-  B(PushContext), R(3),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(1), U8(0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
-  B(Star), R(2),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(3),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
-  B(JumpIfToBooleanFalse), U8(8),
-  B(PopContext), R(3),
-  B(PopContext), R(3),
-  B(Jump), U8(-69),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(3),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
-  B(ToNumber),
-  B(Star), R(4),
-  B(Inc),
-  B(Star), R(5),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(3),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1),
-  B(Ldar), R(5),
-  B(StaContextSlot), R(context), U8(4),
-  B(PopContext), R(3),
-  B(Jump), U8(-112),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(1),
+  /*   52 S> */ B(Ldar), R(1),
+                B(JumpIfToBooleanFalse), U8(112),
+  /*   45 E> */ B(StackCheck),
+                B(LdaConstant), U8(0),
+                B(Star), R(4),
+                B(Ldar), R(closure),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kPushBlockContext), R(4), U8(2),
+                B(PushContext), R(3),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(1), U8(0),
+                B(Star), R(0),
+  /*   73 S> */ B(LdaSmi), U8(1),
+  /*   73 E> */ B(StaContextSlot), R(context), U8(4),
+                B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+                B(Star), R(2),
+  /*  106 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(3),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+                B(JumpIfToBooleanFalse), U8(8),
+  /*  113 S> */ B(PopContext), R(3),
+                B(PopContext), R(3),
+                B(Jump), U8(43),
+  /*  126 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(3),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+                B(ToNumber),
+                B(Star), R(4),
+                B(Inc),
+  /*  127 E> */ B(Star), R(5),
+                B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(3),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1),
+                B(Ldar), R(5),
+                B(StaContextSlot), R(context), U8(4),
+                B(PopContext), R(3),
+                B(Jump), U8(-112),
+                B(LdaUndefined),
+  /*  137 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden b/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden
index 162297d..8573a1a 100644
--- a/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden
+++ b/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden
@@ -21,16 +21,16 @@
 parameter count: 1
 bytecode array length: 17
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(2),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   56 S> */ B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*   58 E> */ B(Star), R(0),
+  /*   69 S> */ B(Jump), U8(2),
+  /*   97 S> */ B(Ldar), R(0),
+  /*  107 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -52,52 +52,49 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 75
+bytecode array length: 72
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(1),
-  B(Star), R(3),
-  B(LdaSmi), U8(10),
-  B(TestLessThan), R(3),
-  B(JumpIfFalse), U8(57),
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(2),
-  B(Ldar), R(2),
-  B(Star), R(3),
-  B(LdaSmi), U8(3),
-  B(TestLessThan), R(3),
-  B(JumpIfFalse), U8(35),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(ToNumber),
-  B(Inc),
-  B(Star), R(0),
-  B(Ldar), R(1),
-  B(Star), R(3),
-  B(Ldar), R(2),
-  B(Add), R(3),
-  B(Star), R(4),
-  B(LdaSmi), U8(12),
-  B(TestEqual), R(4),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(18),
-  B(Ldar), R(2),
-  B(ToNumber),
-  B(Inc),
-  B(Star), R(2),
-  B(Jump), U8(-41),
-  B(Ldar), R(1),
-  B(ToNumber),
-  B(Inc),
-  B(Star), R(1),
-  B(Jump), U8(-63),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   44 S> */ B(LdaZero),
+  /*   44 E> */ B(Star), R(0),
+  /*   71 S> */ B(LdaZero),
+  /*   71 E> */ B(Star), R(1),
+  /*   76 S> */ B(Ldar), R(1),
+                B(Star), R(3),
+                B(LdaSmi), U8(10),
+  /*   76 E> */ B(TestLessThan), R(3),
+                B(JumpIfFalse), U8(54),
+  /*   58 E> */ B(StackCheck),
+  /*  106 S> */ B(LdaZero),
+  /*  106 E> */ B(Star), R(2),
+  /*  111 S> */ B(Ldar), R(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(3),
+  /*  111 E> */ B(TestLessThan), R(3),
+                B(JumpIfFalse), U8(33),
+  /*   93 E> */ B(StackCheck),
+  /*  129 S> */ B(Ldar), R(0),
+                B(Inc),
+  /*  131 E> */ B(Star), R(0),
+  /*  142 S> */ B(Ldar), R(1),
+                B(Star), R(3),
+  /*  150 E> */ B(Ldar), R(2),
+                B(Add), R(3),
+                B(Star), R(4),
+                B(LdaSmi), U8(12),
+  /*  152 E> */ B(TestEqual), R(4),
+                B(JumpIfFalse), U8(4),
+  /*  161 S> */ B(Jump), U8(16),
+  /*  118 S> */ B(Ldar), R(2),
+                B(Inc),
+  /*  118 E> */ B(Star), R(2),
+                B(Jump), U8(-39),
+  /*   84 S> */ B(Ldar), R(1),
+                B(Inc),
+  /*   84 E> */ B(Star), R(1),
+                B(Jump), U8(-60),
+  /*  188 S> */ B(Ldar), R(0),
+  /*  200 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -116,29 +113,29 @@
 parameter count: 1
 bytecode array length: 51
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(3),
-  B(Ldar), R(closure),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kPushBlockContext), R(3), U8(2),
-  B(PushContext), R(2),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(1), U8(0),
-  B(Star), R(0),
-  B(LdaSmi), U8(10),
-  B(StaContextSlot), R(context), U8(4),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(Star), R(1),
-  B(Jump), U8(2),
-  B(PopContext), R(2),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(LdaConstant), U8(0),
+                B(Star), R(3),
+                B(Ldar), R(closure),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kPushBlockContext), R(3), U8(2),
+                B(PushContext), R(2),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(1), U8(0),
+                B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(10),
+  /*   53 E> */ B(StaContextSlot), R(context), U8(4),
+                B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Star), R(1),
+  /*   88 S> */ B(Jump), U8(2),
+                B(PopContext), R(2),
+                B(LdaUndefined),
+  /*  103 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -165,60 +162,60 @@
 parameter count: 1
 bytecode array length: 131
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(2),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaConstant), U8(0),
-  B(Star), R(4),
-  B(Ldar), R(closure),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kPushBlockContext), R(4), U8(2),
-  B(PushContext), R(3),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(1), U8(0),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(StaContextSlot), R(context), U8(4),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
-  B(Star), R(1),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(3),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
-  B(JumpIfToBooleanFalse), U8(6),
-  B(PopContext), R(3),
-  B(Jump), U8(27),
-  B(LdaSmi), U8(3),
-  B(Star), R(4),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(3),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1),
-  B(Ldar), R(4),
-  B(StaContextSlot), R(context), U8(4),
-  B(PopContext), R(3),
-  B(LdaSmi), U8(4),
-  B(Star), R(4),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(4),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1),
-  B(Ldar), R(4),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(2),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+                B(LdaConstant), U8(0),
+                B(Star), R(4),
+                B(Ldar), R(closure),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kPushBlockContext), R(4), U8(2),
+                B(PushContext), R(3),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(1), U8(0),
+                B(Star), R(0),
+  /*   76 S> */ B(LdaSmi), U8(2),
+  /*   76 E> */ B(StaContextSlot), R(context), U8(4),
+                B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+                B(Star), R(1),
+  /*  118 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(3),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+                B(JumpIfToBooleanFalse), U8(6),
+  /*  125 S> */ B(PopContext), R(3),
+                B(Jump), U8(27),
+  /*  142 S> */ B(LdaSmi), U8(3),
+  /*  144 E> */ B(Star), R(4),
+                B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(3),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1),
+                B(Ldar), R(4),
+                B(StaContextSlot), R(context), U8(4),
+                B(PopContext), R(3),
+  /*  155 S> */ B(LdaSmi), U8(4),
+  /*  157 E> */ B(Star), R(4),
+                B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(4),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1),
+                B(Ldar), R(4),
+                B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+  /*  162 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden b/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden
index 04bc3a9..0d8624b 100644
--- a/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden
@@ -18,13 +18,13 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(1),
-  B(LdaGlobal), U8(0), U8(3),
-  B(Star), R(0),
-  B(Call), R(0), R(1), U8(1), U8(1),
-  B(Return),
+  /*   27 E> */ B(StackCheck),
+  /*   32 S> */ B(LdaUndefined),
+                B(Star), R(1),
+                B(LdaGlobal), U8(0), U8(3),
+                B(Star), R(0),
+  /*   39 E> */ B(Call), R(0), R(1), U8(1), U8(1),
+  /*   44 S> */ B(Return),
 ]
 constant pool: [
   "t",
@@ -42,19 +42,19 @@
 parameter count: 1
 bytecode array length: 27
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(1),
-  B(LdaGlobal), U8(0), U8(3),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(2),
-  B(Star), R(3),
-  B(LdaSmi), U8(3),
-  B(Star), R(4),
-  B(Call), R(0), R(1), U8(4), U8(1),
-  B(Return),
+  /*   34 E> */ B(StackCheck),
+  /*   39 S> */ B(LdaUndefined),
+                B(Star), R(1),
+                B(LdaGlobal), U8(0), U8(3),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(3),
+                B(Star), R(4),
+  /*   46 E> */ B(Call), R(0), R(1), U8(4), U8(1),
+  /*   58 S> */ B(Return),
 ]
 constant pool: [
   "t",
diff --git a/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden b/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden
index 30b69d3..0ab5fcb 100644
--- a/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden
@@ -11,41 +11,43 @@
 snippet: "
   g = function(){}; eval(''); return g();
 "
-frame size: 9
+frame size: 10
 parameter count: 1
-bytecode array length: 85
+bytecode array length: 89
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(Ldar), R(this),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateMappedArguments),
-  B(StaContextSlot), R(context), U8(5),
-  B(Ldar), R(new_target),
-  B(StaContextSlot), R(context), U8(6),
-  B(StackCheck),
-  B(CreateClosure), U8(0), U8(0),
-  B(StaLookupSlotSloppy), U8(1),
-  B(LdaConstant), U8(2),
-  B(Star), R(3),
-  B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
-  B(LdaConstant), U8(3),
-  B(Star), R(3),
-  B(Mov), R(1), R(4),
-  B(Mov), R(3), R(5),
-  B(Mov), R(closure), R(6),
-  B(LdaZero),
-  B(Star), R(7),
-  B(LdaSmi), U8(30),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(5),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(2), U8(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
-  B(Call), R(1), R(2), U8(1), U8(3),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateMappedArguments),
+                B(StaContextSlot), R(context), U8(5),
+                B(Ldar), R(new_target),
+                B(StaContextSlot), R(context), U8(6),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   36 E> */ B(StaLookupSlotSloppy), U8(1),
+  /*   52 S> */ B(LdaConstant), U8(2),
+                B(Star), R(3),
+                B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
+                B(LdaConstant), U8(3),
+                B(Star), R(3),
+                B(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
+                B(LdaZero),
+                B(Star), R(7),
+                B(LdaSmi), U8(30),
+                B(Star), R(8),
+                B(LdaSmi), U8(52),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
+                B(Star), R(1),
+  /*   52 E> */ B(Call), R(1), R(2), U8(2), U8(0),
+  /*   62 S> */ B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
+  /*   69 E> */ B(Call), R(1), R(2), U8(1), U8(3),
+  /*   74 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/CallNew.golden b/test/cctest/interpreter/bytecode_expectations/CallNew.golden
index 4952c73..79dd5c1 100644
--- a/test/cctest/interpreter/bytecode_expectations/CallNew.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CallNew.golden
@@ -18,11 +18,11 @@
 parameter count: 1
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(2),
-  B(Star), R(0),
-  B(New), R(0), R(0), U8(0),
-  B(Return),
+  /*   45 E> */ B(StackCheck),
+  /*   50 S> */ B(LdaGlobal), U8(0), U8(2),
+                B(Star), R(0),
+  /*   57 E> */ B(New), R(0), R(0), U8(0),
+  /*   68 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -40,14 +40,14 @@
 parameter count: 1
 bytecode array length: 17
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(2),
-  B(Star), R(0),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(New), R(0), R(1), U8(1),
-  B(Return),
+  /*   58 E> */ B(StackCheck),
+  /*   63 S> */ B(LdaGlobal), U8(0), U8(2),
+                B(Star), R(0),
+                B(LdaSmi), U8(3),
+                B(Star), R(1),
+  /*   70 E> */ B(Ldar), R(0),
+                B(New), R(0), R(1), U8(1),
+  /*   82 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -70,18 +70,18 @@
 parameter count: 1
 bytecode array length: 25
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(2),
-  B(Star), R(0),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(LdaSmi), U8(4),
-  B(Star), R(2),
-  B(LdaSmi), U8(5),
-  B(Star), R(3),
-  B(Ldar), R(0),
-  B(New), R(0), R(1), U8(3),
-  B(Return),
+  /*  100 E> */ B(StackCheck),
+  /*  105 S> */ B(LdaGlobal), U8(0), U8(2),
+                B(Star), R(0),
+                B(LdaSmi), U8(3),
+                B(Star), R(1),
+                B(LdaSmi), U8(4),
+                B(Star), R(2),
+                B(LdaSmi), U8(5),
+                B(Star), R(3),
+  /*  112 E> */ B(Ldar), R(0),
+                B(New), R(0), R(1), U8(3),
+  /*  130 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden b/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
index ec10e67..69edecc 100644
--- a/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
@@ -17,10 +17,10 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(CallRuntime), U16(Runtime::kTheHole), R(0), U8(0),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(CallRuntime), U16(Runtime::kTheHole), R(0), U8(0),
+                B(LdaUndefined),
+  /*   26 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -36,11 +36,11 @@
 parameter count: 2
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(CallRuntime), U16(Runtime::kIsArray), R(0), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(CallRuntime), U16(Runtime::kIsArray), R(0), U8(1),
+  /*   35 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -56,13 +56,13 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kAdd), R(0), U8(2),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(LdaSmi), U8(1),
+                B(Star), R(0),
+                B(LdaSmi), U8(2),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kAdd), R(0), U8(2),
+  /*   33 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -78,13 +78,13 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(0),
-  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  B(Star), R(1),
-  B(CallJSRuntime), U8(115), R(0), U8(2),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(LdaUndefined),
+                B(Star), R(0),
+                B(CreateArrayLiteral), U8(0), U8(0), U8(3),
+                B(Star), R(1),
+                B(CallJSRuntime), U8(122), R(0), U8(2),
+  /*   44 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden b/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden
index 6869c5b..abe5b29 100644
--- a/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden
@@ -26,30 +26,30 @@
 parameter count: 1
 bytecode array length: 57
 bytecodes: [
-  B(Ldar), R(closure),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(this),
-  B(Star), R(3),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1),
-  B(Star), R(6),
-  B(LdaConstant), U8(1),
-  B(KeyedLoadIC), R(6), U8(3),
-  B(Star), R(4),
-  B(LdaConstant), U8(2),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kLoadFromSuper), R(3), U8(3),
-  B(Mov), R(3), R(2),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(1), U8(1),
-  B(Star), R(3),
-  B(LdaSmi), U8(1),
-  B(Add), R(3),
-  B(Return),
+                B(Ldar), R(closure),
+                B(Star), R(0),
+  /*   99 E> */ B(StackCheck),
+  /*  104 S> */ B(Ldar), R(this),
+                B(Star), R(3),
+  /*  111 E> */ B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1),
+                B(Star), R(6),
+  /*  111 E> */ B(LdaConstant), U8(1),
+                B(KeyedLoadIC), R(6), U8(3),
+                B(Star), R(4),
+                B(LdaConstant), U8(2),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kLoadFromSuper), R(3), U8(3),
+                B(Mov), R(3), R(2),
+                B(Star), R(1),
+  /*  117 E> */ B(Call), R(1), R(2), U8(1), U8(1),
+                B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(Add), R(3),
+  /*  131 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -78,40 +78,40 @@
 parameter count: 1
 bytecode array length: 80
 bytecodes: [
-  B(Ldar), R(closure),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(this),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1),
-  B(Star), R(5),
-  B(LdaConstant), U8(1),
-  B(KeyedLoadIC), R(5), U8(1),
-  B(Star), R(2),
-  B(LdaConstant), U8(2),
-  B(Star), R(3),
-  B(LdaSmi), U8(2),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kStoreToSuper_Strict), R(1), U8(4),
-  B(Ldar), R(this),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
-  B(Star), R(4),
-  B(LdaConstant), U8(1),
-  B(KeyedLoadIC), R(4), U8(3),
-  B(Star), R(2),
-  B(LdaConstant), U8(2),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kLoadFromSuper), R(1), U8(3),
-  B(Return),
+                B(Ldar), R(closure),
+                B(Star), R(0),
+  /*  125 E> */ B(StackCheck),
+  /*  130 S> */ B(Ldar), R(this),
+                B(Star), R(1),
+  /*  130 E> */ B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1),
+                B(Star), R(5),
+  /*  130 E> */ B(LdaConstant), U8(1),
+                B(KeyedLoadIC), R(5), U8(1),
+                B(Star), R(2),
+                B(LdaConstant), U8(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(2),
+  /*  138 E> */ B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kStoreToSuper_Strict), R(1), U8(4),
+  /*  143 S> */ B(Ldar), R(this),
+                B(Star), R(1),
+  /*  150 E> */ B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+                B(Star), R(4),
+  /*  150 E> */ B(LdaConstant), U8(1),
+                B(KeyedLoadIC), R(4), U8(3),
+                B(Star), R(2),
+                B(LdaConstant), U8(2),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kLoadFromSuper), R(1), U8(3),
+  /*  159 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -138,49 +138,49 @@
 parameter count: 1
 bytecode array length: 106
 bytecodes: [
-  B(Ldar), R(closure),
-  B(Star), R(1),
-  B(Ldar), R(new_target),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(2), U8(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(3),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(1),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
-  B(New), R(2), R(3), U8(1),
-  B(Star), R(2),
-  B(Ldar), R(this),
-  B(JumpIfNotHole), U8(4),
-  B(Jump), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(Ldar), R(2),
-  B(Star), R(this),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(2),
-  B(StoreICStrict), R(2), U8(3), U8(4),
-  B(Ldar), R(this),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(Return),
+                B(Ldar), R(closure),
+                B(Star), R(1),
+                B(Ldar), R(new_target),
+                B(Star), R(0),
+  /*  113 E> */ B(StackCheck),
+  /*  118 S> */ B(Ldar), R(1),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(2), U8(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Star), R(3),
+  /*  118 E> */ B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(1),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+  /*  118 E> */ B(New), R(2), R(3), U8(1),
+  /*  118 E> */ B(Star), R(2),
+                B(Ldar), R(this),
+                B(JumpIfNotHole), U8(4),
+                B(Jump), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Ldar), R(2),
+                B(Star), R(this),
+  /*  128 S> */ B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(2),
+  /*  136 E> */ B(StoreICStrict), R(2), U8(3), U8(4),
+                B(Ldar), R(this),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+  /*  141 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -208,47 +208,47 @@
 parameter count: 1
 bytecode array length: 102
 bytecodes: [
-  B(Ldar), R(closure),
-  B(Star), R(1),
-  B(Ldar), R(new_target),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(2), U8(1),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(New), R(2), R(0), U8(0),
-  B(Star), R(2),
-  B(Ldar), R(this),
-  B(JumpIfNotHole), U8(4),
-  B(Jump), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(Ldar), R(2),
-  B(Star), R(this),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(2),
-  B(StoreICStrict), R(2), U8(3), U8(4),
-  B(Ldar), R(this),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(Return),
+                B(Ldar), R(closure),
+                B(Star), R(1),
+                B(Ldar), R(new_target),
+                B(Star), R(0),
+  /*  112 E> */ B(StackCheck),
+  /*  117 S> */ B(Ldar), R(1),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(2), U8(1),
+                B(Star), R(2),
+  /*  117 E> */ B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+  /*  117 E> */ B(New), R(2), R(0), U8(0),
+  /*  117 E> */ B(Star), R(2),
+                B(Ldar), R(this),
+                B(JumpIfNotHole), U8(4),
+                B(Jump), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Ldar), R(2),
+                B(Star), R(this),
+  /*  126 S> */ B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(2),
+  /*  134 E> */ B(StoreICStrict), R(2), U8(3), U8(4),
+                B(Ldar), R(this),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+  /*  139 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden b/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
index db42c50..6947a27 100644
--- a/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
@@ -18,38 +18,38 @@
 parameter count: 1
 bytecode array length: 73
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(1),
-  B(StackCheck),
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(LdaTheHole),
-  B(Star), R(2),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(3),
-  B(LdaSmi), U8(34),
-  B(Star), R(4),
-  B(Wide), B(LdaSmi), U16(148),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4),
-  B(Star), R(2),
-  B(LoadIC), R(2), U8(1), U8(1),
-  B(Star), R(3),
-  B(Mov), R(3), R(4),
-  B(LdaConstant), U8(2),
-  B(Star), R(5),
-  B(CreateClosure), U8(3), U8(0),
-  B(Star), R(6),
-  B(LdaSmi), U8(2),
-  B(Star), R(7),
-  B(LdaZero),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(4), U8(5),
-  B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(2), U8(2),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(1),
+  /*   30 E> */ B(StackCheck),
+                B(LdaTheHole),
+                B(Star), R(0),
+                B(LdaTheHole),
+                B(Star), R(2),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(3),
+                B(LdaSmi), U8(34),
+                B(Star), R(4),
+                B(Wide), B(LdaSmi), U16(148),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4),
+                B(Star), R(2),
+                B(LoadIC), R(2), U8(1), U8(1),
+                B(Star), R(3),
+                B(Mov), R(3), R(4),
+                B(LdaConstant), U8(2),
+                B(Star), R(5),
+                B(CreateClosure), U8(3), U8(0),
+                B(Star), R(6),
+                B(LdaSmi), U8(2),
+                B(Star), R(7),
+                B(LdaZero),
+                B(Star), R(8),
+                B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(4), U8(5),
+                B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
+                B(Star), R(0),
+  /*   34 E> */ B(Star), R(1),
+                B(LdaUndefined),
+  /*  149 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -71,38 +71,38 @@
 parameter count: 1
 bytecode array length: 73
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(1),
-  B(StackCheck),
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(LdaTheHole),
-  B(Star), R(2),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(3),
-  B(LdaSmi), U8(34),
-  B(Star), R(4),
-  B(Wide), B(LdaSmi), U16(148),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4),
-  B(Star), R(2),
-  B(LoadIC), R(2), U8(1), U8(1),
-  B(Star), R(3),
-  B(Mov), R(3), R(4),
-  B(LdaConstant), U8(2),
-  B(Star), R(5),
-  B(CreateClosure), U8(3), U8(0),
-  B(Star), R(6),
-  B(LdaSmi), U8(2),
-  B(Star), R(7),
-  B(LdaZero),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(4), U8(5),
-  B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(2), U8(2),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(1),
+  /*   30 E> */ B(StackCheck),
+                B(LdaTheHole),
+                B(Star), R(0),
+                B(LdaTheHole),
+                B(Star), R(2),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(3),
+                B(LdaSmi), U8(34),
+                B(Star), R(4),
+                B(Wide), B(LdaSmi), U16(148),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4),
+                B(Star), R(2),
+                B(LoadIC), R(2), U8(1), U8(1),
+                B(Star), R(3),
+                B(Mov), R(3), R(4),
+                B(LdaConstant), U8(2),
+                B(Star), R(5),
+                B(CreateClosure), U8(3), U8(0),
+                B(Star), R(6),
+                B(LdaSmi), U8(2),
+                B(Star), R(7),
+                B(LdaZero),
+                B(Star), R(8),
+                B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(4), U8(5),
+                B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
+                B(Star), R(0),
+  /*   34 E> */ B(Star), R(1),
+                B(LdaUndefined),
+  /*  149 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -126,58 +126,58 @@
 parameter count: 1
 bytecode array length: 127
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(2),
-  B(LdaTheHole),
-  B(Star), R(1),
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaConstant), U8(1),
-  B(StaContextSlot), R(context), U8(5),
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(LdaTheHole),
-  B(Star), R(3),
-  B(CreateClosure), U8(2), U8(0),
-  B(Star), R(4),
-  B(LdaSmi), U8(62),
-  B(Star), R(5),
-  B(Wide), B(LdaSmi), U16(128),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
-  B(Star), R(3),
-  B(LoadIC), R(3), U8(3), U8(1),
-  B(Star), R(4),
-  B(Mov), R(4), R(5),
-  B(LdaContextSlot), R(context), U8(4),
-  B(ToName),
-  B(Star), R(6),
-  B(CreateClosure), U8(4), U8(0),
-  B(Star), R(7),
-  B(LdaSmi), U8(2),
-  B(Star), R(8),
-  B(LdaSmi), U8(1),
-  B(Star), R(9),
-  B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(5), U8(5),
-  B(Mov), R(3), R(5),
-  B(LdaContextSlot), R(context), U8(5),
-  B(ToName),
-  B(Star), R(6),
-  B(LdaConstant), U8(3),
-  B(TestEqualStrict), R(6),
-  B(JumpIfFalse), U8(7),
-  B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
-  B(CreateClosure), U8(5), U8(0),
-  B(Star), R(7),
-  B(LdaSmi), U8(1),
-  B(Star), R(9),
-  B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(5), U8(5),
-  B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(3), U8(2),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(2),
+                B(LdaTheHole),
+                B(Star), R(1),
+  /*   30 E> */ B(StackCheck),
+  /*   43 S> */ B(LdaConstant), U8(0),
+  /*   43 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   57 S> */ B(LdaConstant), U8(1),
+  /*   57 E> */ B(StaContextSlot), R(context), U8(5),
+                B(LdaTheHole),
+                B(Star), R(0),
+                B(LdaTheHole),
+                B(Star), R(3),
+                B(CreateClosure), U8(2), U8(0),
+                B(Star), R(4),
+                B(LdaSmi), U8(62),
+                B(Star), R(5),
+                B(Wide), B(LdaSmi), U16(128),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
+                B(Star), R(3),
+                B(LoadIC), R(3), U8(3), U8(1),
+                B(Star), R(4),
+                B(Mov), R(4), R(5),
+  /*   75 E> */ B(LdaContextSlot), R(context), U8(4),
+                B(ToName),
+                B(Star), R(6),
+                B(CreateClosure), U8(4), U8(0),
+                B(Star), R(7),
+                B(LdaSmi), U8(2),
+                B(Star), R(8),
+                B(LdaSmi), U8(1),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(5), U8(5),
+                B(Mov), R(3), R(5),
+  /*  106 E> */ B(LdaContextSlot), R(context), U8(5),
+                B(ToName),
+                B(Star), R(6),
+                B(LdaConstant), U8(3),
+                B(TestEqualStrict), R(6),
+                B(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
+                B(CreateClosure), U8(5), U8(0),
+                B(Star), R(7),
+                B(LdaSmi), U8(1),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(5), U8(5),
+                B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
+                B(Star), R(0),
+  /*   62 E> */ B(Star), R(1),
+                B(LdaUndefined),
+  /*  129 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -196,41 +196,41 @@
   class C { constructor() { count++; }}
   return new C();
 "
-frame size: 10
+frame size: 7
 parameter count: 1
 bytecode array length: 74
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(2),
-  B(LdaTheHole),
-  B(Star), R(1),
-  B(StackCheck),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(LdaTheHole),
-  B(Star), R(3),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(4),
-  B(LdaSmi), U8(49),
-  B(Star), R(5),
-  B(LdaSmi), U8(86),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
-  B(Star), R(3),
-  B(LoadIC), R(3), U8(1), U8(1),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(3), U8(2),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(2),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
-  B(Star), R(3),
-  B(New), R(3), R(0), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(2),
+                B(LdaTheHole),
+                B(Star), R(1),
+  /*   30 E> */ B(StackCheck),
+  /*   46 S> */ B(LdaZero),
+  /*   46 E> */ B(StaContextSlot), R(context), U8(4),
+                B(LdaTheHole),
+                B(Star), R(0),
+                B(LdaTheHole),
+                B(Star), R(3),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(4),
+                B(LdaSmi), U8(49),
+                B(Star), R(5),
+                B(LdaSmi), U8(86),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
+                B(Star), R(3),
+                B(LoadIC), R(3), U8(1), U8(1),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
+                B(Star), R(0),
+  /*   49 E> */ B(Star), R(1),
+  /*   87 S> */ B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(2),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1),
+                B(Star), R(3),
+  /*   94 E> */ B(New), R(3), R(0), U8(0),
+  /*  103 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden b/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden
index ccabedc..374a203 100644
--- a/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden
@@ -15,15 +15,15 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+                B(Add), R(1),
+  /*   47 E> */ B(Star), R(0),
+                B(LdaUndefined),
+  /*   53 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -38,15 +38,15 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Div), R(1),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+                B(Div), R(1),
+  /*   47 E> */ B(Star), R(0),
+                B(LdaUndefined),
+  /*   53 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -61,18 +61,18 @@
 parameter count: 1
 bytecode array length: 27
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(1), U8(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(2),
-  B(Mul), R(2),
-  B(StoreICSloppy), R(1), U8(1), U8(3),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   54 S> */ B(Star), R(1),
+                B(LoadIC), R(1), U8(1), U8(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(2),
+                B(Mul), R(2),
+  /*   61 E> */ B(StoreICSloppy), R(1), U8(1), U8(3),
+                B(LdaUndefined),
+  /*   67 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -89,20 +89,20 @@
 parameter count: 1
 bytecode array length: 30
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Star), R(2),
-  B(KeyedLoadIC), R(1), U8(1),
-  B(Star), R(3),
-  B(LdaSmi), U8(2),
-  B(BitwiseXor), R(3),
-  B(KeyedStoreICSloppy), R(1), R(2), U8(3),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   52 S> */ B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Star), R(2),
+                B(KeyedLoadIC), R(1), U8(1),
+                B(Star), R(3),
+                B(LdaSmi), U8(2),
+                B(BitwiseXor), R(3),
+  /*   57 E> */ B(KeyedStoreICSloppy), R(1), R(2), U8(3),
+                B(LdaUndefined),
+  /*   63 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -118,19 +118,19 @@
 parameter count: 1
 bytecode array length: 30
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Star), R(1),
-  B(LdaSmi), U8(24),
-  B(BitwiseOr), R(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   45 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   75 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(1),
+                B(LdaSmi), U8(24),
+                B(BitwiseOr), R(1),
+  /*   77 E> */ B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+  /*   84 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/Conditional.golden b/test/cctest/interpreter/bytecode_expectations/Conditional.golden
index 17327a5..e051d45 100644
--- a/test/cctest/interpreter/bytecode_expectations/Conditional.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Conditional.golden
@@ -15,13 +15,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(JumpIfToBooleanFalse), U8(6),
-  B(LdaSmi), U8(2),
-  B(Jump), U8(4),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(1),
+                B(JumpIfToBooleanFalse), U8(6),
+                B(LdaSmi), U8(2),
+                B(Jump), U8(4),
+                B(LdaSmi), U8(3),
+  /*   52 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -36,17 +36,17 @@
 parameter count: 1
 bytecode array length: 20
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(JumpIfToBooleanFalse), U8(14),
-  B(LdaSmi), U8(2),
-  B(JumpIfToBooleanFalse), U8(6),
-  B(LdaSmi), U8(3),
-  B(Jump), U8(4),
-  B(LdaSmi), U8(4),
-  B(Jump), U8(4),
-  B(LdaSmi), U8(5),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(1),
+                B(JumpIfToBooleanFalse), U8(14),
+                B(LdaSmi), U8(2),
+                B(JumpIfToBooleanFalse), U8(6),
+                B(LdaSmi), U8(3),
+                B(Jump), U8(4),
+                B(LdaSmi), U8(4),
+                B(Jump), U8(4),
+                B(LdaSmi), U8(5),
+  /*   60 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden b/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden
index d3fb484..505d3e8 100644
--- a/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden
@@ -15,13 +15,13 @@
 parameter count: 1
 bytecode array length: 10
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   44 S> */ B(LdaSmi), U8(10),
+  /*   44 E> */ B(Star), R(0),
+                B(LdaUndefined),
+  /*   48 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -36,16 +36,16 @@
 parameter count: 1
 bytecode array length: 20
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   44 S> */ B(LdaSmi), U8(10),
+  /*   44 E> */ B(Star), R(0),
+  /*   48 S> */ B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
+  /*   58 S> */ B(Return),
 ]
 constant pool: [
   "x",
@@ -61,21 +61,21 @@
 parameter count: 1
 bytecode array length: 32
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(20),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
-  B(Ldar), R(1),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   48 S> */ B(LdaSmi), U8(20),
+  /*   48 E> */ B(Star), R(1),
+                B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+                B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
+                B(Ldar), R(1),
+                B(Star), R(0),
+  /*   48 E> */ B(LdaUndefined),
+  /*   55 S> */ B(Return),
 ]
 constant pool: [
   "x",
@@ -91,23 +91,23 @@
 parameter count: 1
 bytecode array length: 36
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(LdaSmi), U8(20),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
-  B(Ldar), R(1),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   44 S> */ B(LdaSmi), U8(10),
+  /*   44 E> */ B(Star), R(0),
+  /*   48 S> */ B(LdaSmi), U8(20),
+  /*   50 E> */ B(Star), R(1),
+                B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+                B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
+                B(Ldar), R(1),
+                B(Star), R(0),
+                B(LdaUndefined),
+  /*   56 S> */ B(Return),
 ]
 constant pool: [
   "x",
diff --git a/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden b/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden
index 3b445c1..6087101 100644
--- a/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden
@@ -15,17 +15,17 @@
 parameter count: 1
 bytecode array length: 24
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   44 S> */ B(LdaSmi), U8(10),
+  /*   44 E> */ B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+  /*   74 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -41,21 +41,21 @@
 parameter count: 1
 bytecode array length: 37
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(1),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   44 S> */ B(LdaSmi), U8(10),
+  /*   44 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   74 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(1),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+  /*   84 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -72,26 +72,26 @@
 parameter count: 1
 bytecode array length: 50
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(20),
-  B(Star), R(2),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
-  B(Ldar), R(2),
-  B(StaContextSlot), R(context), U8(4),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   47 S> */ B(LdaSmi), U8(20),
+  /*   47 E> */ B(Star), R(2),
+                B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
+                B(Ldar), R(2),
+                B(StaContextSlot), R(context), U8(4),
+  /*   47 E> */ B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+  /*   80 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -108,27 +108,27 @@
 parameter count: 1
 bytecode array length: 52
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaSmi), U8(20),
-  B(Star), R(2),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
-  B(Ldar), R(2),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   44 S> */ B(LdaSmi), U8(10),
+  /*   44 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   48 S> */ B(LdaSmi), U8(20),
+  /*   50 E> */ B(Star), R(2),
+                B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
+                B(Ldar), R(2),
+                B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+  /*   82 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden b/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden
index fb74600..72b731e 100644
--- a/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden
@@ -17,13 +17,13 @@
 parameter count: 2
 bytecode array length: 17
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(Ldar), R(arg0),
-  B(StaContextSlot), R(context), U8(4),
-  B(StackCheck),
-  B(CreateClosure), U8(0), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(arg0),
+                B(StaContextSlot), R(context), U8(4),
+  /*   10 E> */ B(StackCheck),
+  /*   19 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   52 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -40,15 +40,15 @@
 parameter count: 2
 bytecode array length: 22
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(Ldar), R(arg0),
-  B(StaContextSlot), R(context), U8(4),
-  B(StackCheck),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(Ldar), R(arg0),
+                B(StaContextSlot), R(context), U8(4),
+  /*   10 E> */ B(StackCheck),
+  /*   27 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   27 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaContextSlot), R(context), U8(4),
+  /*   66 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -65,15 +65,15 @@
 parameter count: 5
 bytecode array length: 22
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(Ldar), R(arg0),
-  B(StaContextSlot), R(context), U8(5),
-  B(Ldar), R(arg2),
-  B(StaContextSlot), R(context), U8(4),
-  B(StackCheck),
-  B(CreateClosure), U8(0), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(arg0),
+                B(StaContextSlot), R(context), U8(5),
+                B(Ldar), R(arg2),
+                B(StaContextSlot), R(context), U8(4),
+  /*   10 E> */ B(StackCheck),
+  /*   29 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   61 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -90,13 +90,13 @@
 parameter count: 1
 bytecode array length: 17
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(StackCheck),
-  B(Ldar), R(this),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+  /*   10 E> */ B(StackCheck),
+  /*   26 S> */ B(Ldar), R(this),
+  /*   26 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   32 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   65 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden b/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden
index b86e22b..ac5c042 100644
--- a/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden
@@ -15,11 +15,11 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(StackCheck),
-  B(CreateClosure), U8(0), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   41 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   71 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -35,13 +35,13 @@
 parameter count: 1
 bytecode array length: 17
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   45 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   75 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -57,15 +57,15 @@
 parameter count: 1
 bytecode array length: 22
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaSmi), U8(2),
-  B(StaContextSlot), R(context), U8(5),
-  B(CreateClosure), U8(0), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   53 S> */ B(LdaSmi), U8(2),
+  /*   53 E> */ B(StaContextSlot), R(context), U8(5),
+  /*   56 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   92 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -81,16 +81,16 @@
 parameter count: 1
 bytecode array length: 25
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(2),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(1), U8(1),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   41 S> */ B(LdaUndefined),
+                B(Star), R(2),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(1),
+  /*   64 E> */ B(Call), R(1), R(2), U8(1), U8(1),
+  /*   68 S> */ B(LdaContextSlot), R(context), U8(4),
+  /*   78 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -108,26 +108,26 @@
 parameter count: 1
 bytecode array length: 47
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaConstant), U8(0),
-  B(Star), R(2),
-  B(Ldar), R(closure),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kPushBlockContext), R(2), U8(2),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaSmi), U8(2),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(1), U8(0),
-  B(PopContext), R(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+  /*   30 E> */ B(StackCheck),
+  /*   56 S> */ B(LdaSmi), U8(1),
+  /*   56 E> */ B(StaContextSlot), R(context), U8(4),
+                B(LdaConstant), U8(0),
+                B(Star), R(2),
+                B(Ldar), R(closure),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kPushBlockContext), R(2), U8(2),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+  /*   69 S> */ B(LdaSmi), U8(2),
+  /*   69 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   72 S> */ B(CreateClosure), U8(1), U8(0),
+                B(PopContext), R(0),
+  /*  104 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -396,522 +396,522 @@
 parameter count: 1
 bytecode array length: 1046
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(Ldar), R(this),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateUnmappedArguments),
-  B(StaContextSlot), R(context), U8(5),
-  B(Ldar), R(new_target),
-  B(StaContextSlot), R(context), U8(6),
-  B(StackCheck),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(7),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(8),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(9),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(10),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(11),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(12),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(13),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(14),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(15),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(16),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(17),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(18),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(19),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(20),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(21),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(22),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(23),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(24),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(25),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(26),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(27),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(28),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(29),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(30),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(31),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(32),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(33),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(34),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(35),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(36),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(37),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(38),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(39),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(40),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(41),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(42),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(43),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(44),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(45),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(46),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(47),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(48),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(49),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(50),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(51),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(52),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(53),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(54),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(55),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(56),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(57),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(58),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(59),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(60),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(61),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(62),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(63),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(64),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(65),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(66),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(67),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(68),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(69),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(70),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(71),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(72),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(73),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(74),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(75),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(76),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(77),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(78),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(79),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(80),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(81),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(82),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(83),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(84),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(85),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(86),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(87),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(88),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(89),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(90),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(91),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(92),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(93),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(94),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(95),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(96),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(97),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(98),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(99),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(100),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(101),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(102),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(103),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(104),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(105),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(106),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(107),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(108),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(109),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(110),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(111),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(112),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(113),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(114),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(115),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(116),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(117),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(118),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(119),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(120),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(121),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(122),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(123),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(124),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(125),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(126),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(127),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(128),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(129),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(130),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(131),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(132),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(133),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(134),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(135),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(136),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(137),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(138),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(139),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(140),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(141),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(142),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(143),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(144),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(145),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(146),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(147),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(148),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(149),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(150),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(151),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(152),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(153),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(154),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(155),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(156),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(157),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(158),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(159),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(160),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(161),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(162),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(163),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(164),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(165),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(166),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(167),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(168),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(169),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(170),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(171),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(172),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(173),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(174),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(175),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(176),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(177),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(178),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(179),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(180),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(181),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(182),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(183),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(184),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(185),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(186),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(187),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(188),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(189),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(190),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(191),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(192),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(193),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(194),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(195),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(196),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(197),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(198),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(199),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(200),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(201),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(202),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(203),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(204),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(205),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(206),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(207),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(208),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(209),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(210),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(211),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(212),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(213),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(214),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(215),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(216),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(217),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(218),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(219),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(220),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(221),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(222),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(223),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(224),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(225),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(226),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(227),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(228),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(229),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(230),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(231),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(232),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(233),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(234),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(235),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(236),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(237),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(238),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(239),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(240),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(241),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(242),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(243),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(244),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(245),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(246),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(247),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(248),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(249),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(250),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(251),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(252),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(253),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(254),
-  B(LdaZero),
-  B(StaContextSlot), R(context), U8(255),
-  B(LdaUndefined),
-  B(Star), R(2),
-  B(LdaGlobal), U8(0), U8(1),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(1), U8(0),
-  B(LdaSmi), U8(100),
-  B(Wide), B(StaContextSlot), R16(context), U16(256),
-  B(Wide), B(LdaContextSlot), R16(context), U16(256),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateUnmappedArguments),
+                B(StaContextSlot), R(context), U8(5),
+                B(Ldar), R(new_target),
+                B(StaContextSlot), R(context), U8(6),
+  /*   30 E> */ B(StackCheck),
+  /*   57 S> */ B(LdaZero),
+  /*   57 E> */ B(StaContextSlot), R(context), U8(7),
+  /*   69 S> */ B(LdaZero),
+  /*   69 E> */ B(StaContextSlot), R(context), U8(8),
+  /*   81 S> */ B(LdaZero),
+  /*   81 E> */ B(StaContextSlot), R(context), U8(9),
+  /*   93 S> */ B(LdaZero),
+  /*   93 E> */ B(StaContextSlot), R(context), U8(10),
+  /*  105 S> */ B(LdaZero),
+  /*  105 E> */ B(StaContextSlot), R(context), U8(11),
+  /*  117 S> */ B(LdaZero),
+  /*  117 E> */ B(StaContextSlot), R(context), U8(12),
+  /*  129 S> */ B(LdaZero),
+  /*  129 E> */ B(StaContextSlot), R(context), U8(13),
+  /*  141 S> */ B(LdaZero),
+  /*  141 E> */ B(StaContextSlot), R(context), U8(14),
+  /*  153 S> */ B(LdaZero),
+  /*  153 E> */ B(StaContextSlot), R(context), U8(15),
+  /*  165 S> */ B(LdaZero),
+  /*  165 E> */ B(StaContextSlot), R(context), U8(16),
+  /*  178 S> */ B(LdaZero),
+  /*  178 E> */ B(StaContextSlot), R(context), U8(17),
+  /*  191 S> */ B(LdaZero),
+  /*  191 E> */ B(StaContextSlot), R(context), U8(18),
+  /*  204 S> */ B(LdaZero),
+  /*  204 E> */ B(StaContextSlot), R(context), U8(19),
+  /*  217 S> */ B(LdaZero),
+  /*  217 E> */ B(StaContextSlot), R(context), U8(20),
+  /*  230 S> */ B(LdaZero),
+  /*  230 E> */ B(StaContextSlot), R(context), U8(21),
+  /*  243 S> */ B(LdaZero),
+  /*  243 E> */ B(StaContextSlot), R(context), U8(22),
+  /*  256 S> */ B(LdaZero),
+  /*  256 E> */ B(StaContextSlot), R(context), U8(23),
+  /*  269 S> */ B(LdaZero),
+  /*  269 E> */ B(StaContextSlot), R(context), U8(24),
+  /*  282 S> */ B(LdaZero),
+  /*  282 E> */ B(StaContextSlot), R(context), U8(25),
+  /*  295 S> */ B(LdaZero),
+  /*  295 E> */ B(StaContextSlot), R(context), U8(26),
+  /*  308 S> */ B(LdaZero),
+  /*  308 E> */ B(StaContextSlot), R(context), U8(27),
+  /*  321 S> */ B(LdaZero),
+  /*  321 E> */ B(StaContextSlot), R(context), U8(28),
+  /*  334 S> */ B(LdaZero),
+  /*  334 E> */ B(StaContextSlot), R(context), U8(29),
+  /*  347 S> */ B(LdaZero),
+  /*  347 E> */ B(StaContextSlot), R(context), U8(30),
+  /*  360 S> */ B(LdaZero),
+  /*  360 E> */ B(StaContextSlot), R(context), U8(31),
+  /*  373 S> */ B(LdaZero),
+  /*  373 E> */ B(StaContextSlot), R(context), U8(32),
+  /*  386 S> */ B(LdaZero),
+  /*  386 E> */ B(StaContextSlot), R(context), U8(33),
+  /*  399 S> */ B(LdaZero),
+  /*  399 E> */ B(StaContextSlot), R(context), U8(34),
+  /*  412 S> */ B(LdaZero),
+  /*  412 E> */ B(StaContextSlot), R(context), U8(35),
+  /*  425 S> */ B(LdaZero),
+  /*  425 E> */ B(StaContextSlot), R(context), U8(36),
+  /*  438 S> */ B(LdaZero),
+  /*  438 E> */ B(StaContextSlot), R(context), U8(37),
+  /*  451 S> */ B(LdaZero),
+  /*  451 E> */ B(StaContextSlot), R(context), U8(38),
+  /*  464 S> */ B(LdaZero),
+  /*  464 E> */ B(StaContextSlot), R(context), U8(39),
+  /*  477 S> */ B(LdaZero),
+  /*  477 E> */ B(StaContextSlot), R(context), U8(40),
+  /*  490 S> */ B(LdaZero),
+  /*  490 E> */ B(StaContextSlot), R(context), U8(41),
+  /*  503 S> */ B(LdaZero),
+  /*  503 E> */ B(StaContextSlot), R(context), U8(42),
+  /*  516 S> */ B(LdaZero),
+  /*  516 E> */ B(StaContextSlot), R(context), U8(43),
+  /*  529 S> */ B(LdaZero),
+  /*  529 E> */ B(StaContextSlot), R(context), U8(44),
+  /*  542 S> */ B(LdaZero),
+  /*  542 E> */ B(StaContextSlot), R(context), U8(45),
+  /*  555 S> */ B(LdaZero),
+  /*  555 E> */ B(StaContextSlot), R(context), U8(46),
+  /*  568 S> */ B(LdaZero),
+  /*  568 E> */ B(StaContextSlot), R(context), U8(47),
+  /*  581 S> */ B(LdaZero),
+  /*  581 E> */ B(StaContextSlot), R(context), U8(48),
+  /*  594 S> */ B(LdaZero),
+  /*  594 E> */ B(StaContextSlot), R(context), U8(49),
+  /*  607 S> */ B(LdaZero),
+  /*  607 E> */ B(StaContextSlot), R(context), U8(50),
+  /*  620 S> */ B(LdaZero),
+  /*  620 E> */ B(StaContextSlot), R(context), U8(51),
+  /*  633 S> */ B(LdaZero),
+  /*  633 E> */ B(StaContextSlot), R(context), U8(52),
+  /*  646 S> */ B(LdaZero),
+  /*  646 E> */ B(StaContextSlot), R(context), U8(53),
+  /*  659 S> */ B(LdaZero),
+  /*  659 E> */ B(StaContextSlot), R(context), U8(54),
+  /*  672 S> */ B(LdaZero),
+  /*  672 E> */ B(StaContextSlot), R(context), U8(55),
+  /*  685 S> */ B(LdaZero),
+  /*  685 E> */ B(StaContextSlot), R(context), U8(56),
+  /*  698 S> */ B(LdaZero),
+  /*  698 E> */ B(StaContextSlot), R(context), U8(57),
+  /*  711 S> */ B(LdaZero),
+  /*  711 E> */ B(StaContextSlot), R(context), U8(58),
+  /*  724 S> */ B(LdaZero),
+  /*  724 E> */ B(StaContextSlot), R(context), U8(59),
+  /*  737 S> */ B(LdaZero),
+  /*  737 E> */ B(StaContextSlot), R(context), U8(60),
+  /*  750 S> */ B(LdaZero),
+  /*  750 E> */ B(StaContextSlot), R(context), U8(61),
+  /*  763 S> */ B(LdaZero),
+  /*  763 E> */ B(StaContextSlot), R(context), U8(62),
+  /*  776 S> */ B(LdaZero),
+  /*  776 E> */ B(StaContextSlot), R(context), U8(63),
+  /*  789 S> */ B(LdaZero),
+  /*  789 E> */ B(StaContextSlot), R(context), U8(64),
+  /*  802 S> */ B(LdaZero),
+  /*  802 E> */ B(StaContextSlot), R(context), U8(65),
+  /*  815 S> */ B(LdaZero),
+  /*  815 E> */ B(StaContextSlot), R(context), U8(66),
+  /*  828 S> */ B(LdaZero),
+  /*  828 E> */ B(StaContextSlot), R(context), U8(67),
+  /*  841 S> */ B(LdaZero),
+  /*  841 E> */ B(StaContextSlot), R(context), U8(68),
+  /*  854 S> */ B(LdaZero),
+  /*  854 E> */ B(StaContextSlot), R(context), U8(69),
+  /*  867 S> */ B(LdaZero),
+  /*  867 E> */ B(StaContextSlot), R(context), U8(70),
+  /*  880 S> */ B(LdaZero),
+  /*  880 E> */ B(StaContextSlot), R(context), U8(71),
+  /*  893 S> */ B(LdaZero),
+  /*  893 E> */ B(StaContextSlot), R(context), U8(72),
+  /*  906 S> */ B(LdaZero),
+  /*  906 E> */ B(StaContextSlot), R(context), U8(73),
+  /*  919 S> */ B(LdaZero),
+  /*  919 E> */ B(StaContextSlot), R(context), U8(74),
+  /*  932 S> */ B(LdaZero),
+  /*  932 E> */ B(StaContextSlot), R(context), U8(75),
+  /*  945 S> */ B(LdaZero),
+  /*  945 E> */ B(StaContextSlot), R(context), U8(76),
+  /*  958 S> */ B(LdaZero),
+  /*  958 E> */ B(StaContextSlot), R(context), U8(77),
+  /*  971 S> */ B(LdaZero),
+  /*  971 E> */ B(StaContextSlot), R(context), U8(78),
+  /*  984 S> */ B(LdaZero),
+  /*  984 E> */ B(StaContextSlot), R(context), U8(79),
+  /*  997 S> */ B(LdaZero),
+  /*  997 E> */ B(StaContextSlot), R(context), U8(80),
+  /* 1010 S> */ B(LdaZero),
+  /* 1010 E> */ B(StaContextSlot), R(context), U8(81),
+  /* 1023 S> */ B(LdaZero),
+  /* 1023 E> */ B(StaContextSlot), R(context), U8(82),
+  /* 1036 S> */ B(LdaZero),
+  /* 1036 E> */ B(StaContextSlot), R(context), U8(83),
+  /* 1049 S> */ B(LdaZero),
+  /* 1049 E> */ B(StaContextSlot), R(context), U8(84),
+  /* 1062 S> */ B(LdaZero),
+  /* 1062 E> */ B(StaContextSlot), R(context), U8(85),
+  /* 1075 S> */ B(LdaZero),
+  /* 1075 E> */ B(StaContextSlot), R(context), U8(86),
+  /* 1088 S> */ B(LdaZero),
+  /* 1088 E> */ B(StaContextSlot), R(context), U8(87),
+  /* 1101 S> */ B(LdaZero),
+  /* 1101 E> */ B(StaContextSlot), R(context), U8(88),
+  /* 1114 S> */ B(LdaZero),
+  /* 1114 E> */ B(StaContextSlot), R(context), U8(89),
+  /* 1127 S> */ B(LdaZero),
+  /* 1127 E> */ B(StaContextSlot), R(context), U8(90),
+  /* 1140 S> */ B(LdaZero),
+  /* 1140 E> */ B(StaContextSlot), R(context), U8(91),
+  /* 1153 S> */ B(LdaZero),
+  /* 1153 E> */ B(StaContextSlot), R(context), U8(92),
+  /* 1166 S> */ B(LdaZero),
+  /* 1166 E> */ B(StaContextSlot), R(context), U8(93),
+  /* 1179 S> */ B(LdaZero),
+  /* 1179 E> */ B(StaContextSlot), R(context), U8(94),
+  /* 1192 S> */ B(LdaZero),
+  /* 1192 E> */ B(StaContextSlot), R(context), U8(95),
+  /* 1205 S> */ B(LdaZero),
+  /* 1205 E> */ B(StaContextSlot), R(context), U8(96),
+  /* 1218 S> */ B(LdaZero),
+  /* 1218 E> */ B(StaContextSlot), R(context), U8(97),
+  /* 1231 S> */ B(LdaZero),
+  /* 1231 E> */ B(StaContextSlot), R(context), U8(98),
+  /* 1244 S> */ B(LdaZero),
+  /* 1244 E> */ B(StaContextSlot), R(context), U8(99),
+  /* 1257 S> */ B(LdaZero),
+  /* 1257 E> */ B(StaContextSlot), R(context), U8(100),
+  /* 1270 S> */ B(LdaZero),
+  /* 1270 E> */ B(StaContextSlot), R(context), U8(101),
+  /* 1283 S> */ B(LdaZero),
+  /* 1283 E> */ B(StaContextSlot), R(context), U8(102),
+  /* 1296 S> */ B(LdaZero),
+  /* 1296 E> */ B(StaContextSlot), R(context), U8(103),
+  /* 1309 S> */ B(LdaZero),
+  /* 1309 E> */ B(StaContextSlot), R(context), U8(104),
+  /* 1322 S> */ B(LdaZero),
+  /* 1322 E> */ B(StaContextSlot), R(context), U8(105),
+  /* 1335 S> */ B(LdaZero),
+  /* 1335 E> */ B(StaContextSlot), R(context), U8(106),
+  /* 1349 S> */ B(LdaZero),
+  /* 1349 E> */ B(StaContextSlot), R(context), U8(107),
+  /* 1363 S> */ B(LdaZero),
+  /* 1363 E> */ B(StaContextSlot), R(context), U8(108),
+  /* 1377 S> */ B(LdaZero),
+  /* 1377 E> */ B(StaContextSlot), R(context), U8(109),
+  /* 1391 S> */ B(LdaZero),
+  /* 1391 E> */ B(StaContextSlot), R(context), U8(110),
+  /* 1405 S> */ B(LdaZero),
+  /* 1405 E> */ B(StaContextSlot), R(context), U8(111),
+  /* 1419 S> */ B(LdaZero),
+  /* 1419 E> */ B(StaContextSlot), R(context), U8(112),
+  /* 1433 S> */ B(LdaZero),
+  /* 1433 E> */ B(StaContextSlot), R(context), U8(113),
+  /* 1447 S> */ B(LdaZero),
+  /* 1447 E> */ B(StaContextSlot), R(context), U8(114),
+  /* 1461 S> */ B(LdaZero),
+  /* 1461 E> */ B(StaContextSlot), R(context), U8(115),
+  /* 1475 S> */ B(LdaZero),
+  /* 1475 E> */ B(StaContextSlot), R(context), U8(116),
+  /* 1489 S> */ B(LdaZero),
+  /* 1489 E> */ B(StaContextSlot), R(context), U8(117),
+  /* 1503 S> */ B(LdaZero),
+  /* 1503 E> */ B(StaContextSlot), R(context), U8(118),
+  /* 1517 S> */ B(LdaZero),
+  /* 1517 E> */ B(StaContextSlot), R(context), U8(119),
+  /* 1531 S> */ B(LdaZero),
+  /* 1531 E> */ B(StaContextSlot), R(context), U8(120),
+  /* 1545 S> */ B(LdaZero),
+  /* 1545 E> */ B(StaContextSlot), R(context), U8(121),
+  /* 1559 S> */ B(LdaZero),
+  /* 1559 E> */ B(StaContextSlot), R(context), U8(122),
+  /* 1573 S> */ B(LdaZero),
+  /* 1573 E> */ B(StaContextSlot), R(context), U8(123),
+  /* 1587 S> */ B(LdaZero),
+  /* 1587 E> */ B(StaContextSlot), R(context), U8(124),
+  /* 1601 S> */ B(LdaZero),
+  /* 1601 E> */ B(StaContextSlot), R(context), U8(125),
+  /* 1615 S> */ B(LdaZero),
+  /* 1615 E> */ B(StaContextSlot), R(context), U8(126),
+  /* 1629 S> */ B(LdaZero),
+  /* 1629 E> */ B(StaContextSlot), R(context), U8(127),
+  /* 1643 S> */ B(LdaZero),
+  /* 1643 E> */ B(StaContextSlot), R(context), U8(128),
+  /* 1657 S> */ B(LdaZero),
+  /* 1657 E> */ B(StaContextSlot), R(context), U8(129),
+  /* 1671 S> */ B(LdaZero),
+  /* 1671 E> */ B(StaContextSlot), R(context), U8(130),
+  /* 1685 S> */ B(LdaZero),
+  /* 1685 E> */ B(StaContextSlot), R(context), U8(131),
+  /* 1699 S> */ B(LdaZero),
+  /* 1699 E> */ B(StaContextSlot), R(context), U8(132),
+  /* 1713 S> */ B(LdaZero),
+  /* 1713 E> */ B(StaContextSlot), R(context), U8(133),
+  /* 1727 S> */ B(LdaZero),
+  /* 1727 E> */ B(StaContextSlot), R(context), U8(134),
+  /* 1741 S> */ B(LdaZero),
+  /* 1741 E> */ B(StaContextSlot), R(context), U8(135),
+  /* 1755 S> */ B(LdaZero),
+  /* 1755 E> */ B(StaContextSlot), R(context), U8(136),
+  /* 1769 S> */ B(LdaZero),
+  /* 1769 E> */ B(StaContextSlot), R(context), U8(137),
+  /* 1783 S> */ B(LdaZero),
+  /* 1783 E> */ B(StaContextSlot), R(context), U8(138),
+  /* 1797 S> */ B(LdaZero),
+  /* 1797 E> */ B(StaContextSlot), R(context), U8(139),
+  /* 1811 S> */ B(LdaZero),
+  /* 1811 E> */ B(StaContextSlot), R(context), U8(140),
+  /* 1825 S> */ B(LdaZero),
+  /* 1825 E> */ B(StaContextSlot), R(context), U8(141),
+  /* 1839 S> */ B(LdaZero),
+  /* 1839 E> */ B(StaContextSlot), R(context), U8(142),
+  /* 1853 S> */ B(LdaZero),
+  /* 1853 E> */ B(StaContextSlot), R(context), U8(143),
+  /* 1867 S> */ B(LdaZero),
+  /* 1867 E> */ B(StaContextSlot), R(context), U8(144),
+  /* 1881 S> */ B(LdaZero),
+  /* 1881 E> */ B(StaContextSlot), R(context), U8(145),
+  /* 1895 S> */ B(LdaZero),
+  /* 1895 E> */ B(StaContextSlot), R(context), U8(146),
+  /* 1909 S> */ B(LdaZero),
+  /* 1909 E> */ B(StaContextSlot), R(context), U8(147),
+  /* 1923 S> */ B(LdaZero),
+  /* 1923 E> */ B(StaContextSlot), R(context), U8(148),
+  /* 1937 S> */ B(LdaZero),
+  /* 1937 E> */ B(StaContextSlot), R(context), U8(149),
+  /* 1951 S> */ B(LdaZero),
+  /* 1951 E> */ B(StaContextSlot), R(context), U8(150),
+  /* 1965 S> */ B(LdaZero),
+  /* 1965 E> */ B(StaContextSlot), R(context), U8(151),
+  /* 1979 S> */ B(LdaZero),
+  /* 1979 E> */ B(StaContextSlot), R(context), U8(152),
+  /* 1993 S> */ B(LdaZero),
+  /* 1993 E> */ B(StaContextSlot), R(context), U8(153),
+  /* 2007 S> */ B(LdaZero),
+  /* 2007 E> */ B(StaContextSlot), R(context), U8(154),
+  /* 2021 S> */ B(LdaZero),
+  /* 2021 E> */ B(StaContextSlot), R(context), U8(155),
+  /* 2035 S> */ B(LdaZero),
+  /* 2035 E> */ B(StaContextSlot), R(context), U8(156),
+  /* 2049 S> */ B(LdaZero),
+  /* 2049 E> */ B(StaContextSlot), R(context), U8(157),
+  /* 2063 S> */ B(LdaZero),
+  /* 2063 E> */ B(StaContextSlot), R(context), U8(158),
+  /* 2077 S> */ B(LdaZero),
+  /* 2077 E> */ B(StaContextSlot), R(context), U8(159),
+  /* 2091 S> */ B(LdaZero),
+  /* 2091 E> */ B(StaContextSlot), R(context), U8(160),
+  /* 2105 S> */ B(LdaZero),
+  /* 2105 E> */ B(StaContextSlot), R(context), U8(161),
+  /* 2119 S> */ B(LdaZero),
+  /* 2119 E> */ B(StaContextSlot), R(context), U8(162),
+  /* 2133 S> */ B(LdaZero),
+  /* 2133 E> */ B(StaContextSlot), R(context), U8(163),
+  /* 2147 S> */ B(LdaZero),
+  /* 2147 E> */ B(StaContextSlot), R(context), U8(164),
+  /* 2161 S> */ B(LdaZero),
+  /* 2161 E> */ B(StaContextSlot), R(context), U8(165),
+  /* 2175 S> */ B(LdaZero),
+  /* 2175 E> */ B(StaContextSlot), R(context), U8(166),
+  /* 2189 S> */ B(LdaZero),
+  /* 2189 E> */ B(StaContextSlot), R(context), U8(167),
+  /* 2203 S> */ B(LdaZero),
+  /* 2203 E> */ B(StaContextSlot), R(context), U8(168),
+  /* 2217 S> */ B(LdaZero),
+  /* 2217 E> */ B(StaContextSlot), R(context), U8(169),
+  /* 2231 S> */ B(LdaZero),
+  /* 2231 E> */ B(StaContextSlot), R(context), U8(170),
+  /* 2245 S> */ B(LdaZero),
+  /* 2245 E> */ B(StaContextSlot), R(context), U8(171),
+  /* 2259 S> */ B(LdaZero),
+  /* 2259 E> */ B(StaContextSlot), R(context), U8(172),
+  /* 2273 S> */ B(LdaZero),
+  /* 2273 E> */ B(StaContextSlot), R(context), U8(173),
+  /* 2287 S> */ B(LdaZero),
+  /* 2287 E> */ B(StaContextSlot), R(context), U8(174),
+  /* 2301 S> */ B(LdaZero),
+  /* 2301 E> */ B(StaContextSlot), R(context), U8(175),
+  /* 2315 S> */ B(LdaZero),
+  /* 2315 E> */ B(StaContextSlot), R(context), U8(176),
+  /* 2329 S> */ B(LdaZero),
+  /* 2329 E> */ B(StaContextSlot), R(context), U8(177),
+  /* 2343 S> */ B(LdaZero),
+  /* 2343 E> */ B(StaContextSlot), R(context), U8(178),
+  /* 2357 S> */ B(LdaZero),
+  /* 2357 E> */ B(StaContextSlot), R(context), U8(179),
+  /* 2371 S> */ B(LdaZero),
+  /* 2371 E> */ B(StaContextSlot), R(context), U8(180),
+  /* 2385 S> */ B(LdaZero),
+  /* 2385 E> */ B(StaContextSlot), R(context), U8(181),
+  /* 2399 S> */ B(LdaZero),
+  /* 2399 E> */ B(StaContextSlot), R(context), U8(182),
+  /* 2413 S> */ B(LdaZero),
+  /* 2413 E> */ B(StaContextSlot), R(context), U8(183),
+  /* 2427 S> */ B(LdaZero),
+  /* 2427 E> */ B(StaContextSlot), R(context), U8(184),
+  /* 2441 S> */ B(LdaZero),
+  /* 2441 E> */ B(StaContextSlot), R(context), U8(185),
+  /* 2455 S> */ B(LdaZero),
+  /* 2455 E> */ B(StaContextSlot), R(context), U8(186),
+  /* 2469 S> */ B(LdaZero),
+  /* 2469 E> */ B(StaContextSlot), R(context), U8(187),
+  /* 2483 S> */ B(LdaZero),
+  /* 2483 E> */ B(StaContextSlot), R(context), U8(188),
+  /* 2497 S> */ B(LdaZero),
+  /* 2497 E> */ B(StaContextSlot), R(context), U8(189),
+  /* 2511 S> */ B(LdaZero),
+  /* 2511 E> */ B(StaContextSlot), R(context), U8(190),
+  /* 2525 S> */ B(LdaZero),
+  /* 2525 E> */ B(StaContextSlot), R(context), U8(191),
+  /* 2539 S> */ B(LdaZero),
+  /* 2539 E> */ B(StaContextSlot), R(context), U8(192),
+  /* 2553 S> */ B(LdaZero),
+  /* 2553 E> */ B(StaContextSlot), R(context), U8(193),
+  /* 2567 S> */ B(LdaZero),
+  /* 2567 E> */ B(StaContextSlot), R(context), U8(194),
+  /* 2581 S> */ B(LdaZero),
+  /* 2581 E> */ B(StaContextSlot), R(context), U8(195),
+  /* 2595 S> */ B(LdaZero),
+  /* 2595 E> */ B(StaContextSlot), R(context), U8(196),
+  /* 2609 S> */ B(LdaZero),
+  /* 2609 E> */ B(StaContextSlot), R(context), U8(197),
+  /* 2623 S> */ B(LdaZero),
+  /* 2623 E> */ B(StaContextSlot), R(context), U8(198),
+  /* 2637 S> */ B(LdaZero),
+  /* 2637 E> */ B(StaContextSlot), R(context), U8(199),
+  /* 2651 S> */ B(LdaZero),
+  /* 2651 E> */ B(StaContextSlot), R(context), U8(200),
+  /* 2665 S> */ B(LdaZero),
+  /* 2665 E> */ B(StaContextSlot), R(context), U8(201),
+  /* 2679 S> */ B(LdaZero),
+  /* 2679 E> */ B(StaContextSlot), R(context), U8(202),
+  /* 2693 S> */ B(LdaZero),
+  /* 2693 E> */ B(StaContextSlot), R(context), U8(203),
+  /* 2707 S> */ B(LdaZero),
+  /* 2707 E> */ B(StaContextSlot), R(context), U8(204),
+  /* 2721 S> */ B(LdaZero),
+  /* 2721 E> */ B(StaContextSlot), R(context), U8(205),
+  /* 2735 S> */ B(LdaZero),
+  /* 2735 E> */ B(StaContextSlot), R(context), U8(206),
+  /* 2749 S> */ B(LdaZero),
+  /* 2749 E> */ B(StaContextSlot), R(context), U8(207),
+  /* 2763 S> */ B(LdaZero),
+  /* 2763 E> */ B(StaContextSlot), R(context), U8(208),
+  /* 2777 S> */ B(LdaZero),
+  /* 2777 E> */ B(StaContextSlot), R(context), U8(209),
+  /* 2791 S> */ B(LdaZero),
+  /* 2791 E> */ B(StaContextSlot), R(context), U8(210),
+  /* 2805 S> */ B(LdaZero),
+  /* 2805 E> */ B(StaContextSlot), R(context), U8(211),
+  /* 2819 S> */ B(LdaZero),
+  /* 2819 E> */ B(StaContextSlot), R(context), U8(212),
+  /* 2833 S> */ B(LdaZero),
+  /* 2833 E> */ B(StaContextSlot), R(context), U8(213),
+  /* 2847 S> */ B(LdaZero),
+  /* 2847 E> */ B(StaContextSlot), R(context), U8(214),
+  /* 2861 S> */ B(LdaZero),
+  /* 2861 E> */ B(StaContextSlot), R(context), U8(215),
+  /* 2875 S> */ B(LdaZero),
+  /* 2875 E> */ B(StaContextSlot), R(context), U8(216),
+  /* 2889 S> */ B(LdaZero),
+  /* 2889 E> */ B(StaContextSlot), R(context), U8(217),
+  /* 2903 S> */ B(LdaZero),
+  /* 2903 E> */ B(StaContextSlot), R(context), U8(218),
+  /* 2917 S> */ B(LdaZero),
+  /* 2917 E> */ B(StaContextSlot), R(context), U8(219),
+  /* 2931 S> */ B(LdaZero),
+  /* 2931 E> */ B(StaContextSlot), R(context), U8(220),
+  /* 2945 S> */ B(LdaZero),
+  /* 2945 E> */ B(StaContextSlot), R(context), U8(221),
+  /* 2959 S> */ B(LdaZero),
+  /* 2959 E> */ B(StaContextSlot), R(context), U8(222),
+  /* 2973 S> */ B(LdaZero),
+  /* 2973 E> */ B(StaContextSlot), R(context), U8(223),
+  /* 2987 S> */ B(LdaZero),
+  /* 2987 E> */ B(StaContextSlot), R(context), U8(224),
+  /* 3001 S> */ B(LdaZero),
+  /* 3001 E> */ B(StaContextSlot), R(context), U8(225),
+  /* 3015 S> */ B(LdaZero),
+  /* 3015 E> */ B(StaContextSlot), R(context), U8(226),
+  /* 3029 S> */ B(LdaZero),
+  /* 3029 E> */ B(StaContextSlot), R(context), U8(227),
+  /* 3043 S> */ B(LdaZero),
+  /* 3043 E> */ B(StaContextSlot), R(context), U8(228),
+  /* 3057 S> */ B(LdaZero),
+  /* 3057 E> */ B(StaContextSlot), R(context), U8(229),
+  /* 3071 S> */ B(LdaZero),
+  /* 3071 E> */ B(StaContextSlot), R(context), U8(230),
+  /* 3085 S> */ B(LdaZero),
+  /* 3085 E> */ B(StaContextSlot), R(context), U8(231),
+  /* 3099 S> */ B(LdaZero),
+  /* 3099 E> */ B(StaContextSlot), R(context), U8(232),
+  /* 3113 S> */ B(LdaZero),
+  /* 3113 E> */ B(StaContextSlot), R(context), U8(233),
+  /* 3127 S> */ B(LdaZero),
+  /* 3127 E> */ B(StaContextSlot), R(context), U8(234),
+  /* 3141 S> */ B(LdaZero),
+  /* 3141 E> */ B(StaContextSlot), R(context), U8(235),
+  /* 3155 S> */ B(LdaZero),
+  /* 3155 E> */ B(StaContextSlot), R(context), U8(236),
+  /* 3169 S> */ B(LdaZero),
+  /* 3169 E> */ B(StaContextSlot), R(context), U8(237),
+  /* 3183 S> */ B(LdaZero),
+  /* 3183 E> */ B(StaContextSlot), R(context), U8(238),
+  /* 3197 S> */ B(LdaZero),
+  /* 3197 E> */ B(StaContextSlot), R(context), U8(239),
+  /* 3211 S> */ B(LdaZero),
+  /* 3211 E> */ B(StaContextSlot), R(context), U8(240),
+  /* 3225 S> */ B(LdaZero),
+  /* 3225 E> */ B(StaContextSlot), R(context), U8(241),
+  /* 3239 S> */ B(LdaZero),
+  /* 3239 E> */ B(StaContextSlot), R(context), U8(242),
+  /* 3253 S> */ B(LdaZero),
+  /* 3253 E> */ B(StaContextSlot), R(context), U8(243),
+  /* 3267 S> */ B(LdaZero),
+  /* 3267 E> */ B(StaContextSlot), R(context), U8(244),
+  /* 3281 S> */ B(LdaZero),
+  /* 3281 E> */ B(StaContextSlot), R(context), U8(245),
+  /* 3295 S> */ B(LdaZero),
+  /* 3295 E> */ B(StaContextSlot), R(context), U8(246),
+  /* 3309 S> */ B(LdaZero),
+  /* 3309 E> */ B(StaContextSlot), R(context), U8(247),
+  /* 3323 S> */ B(LdaZero),
+  /* 3323 E> */ B(StaContextSlot), R(context), U8(248),
+  /* 3337 S> */ B(LdaZero),
+  /* 3337 E> */ B(StaContextSlot), R(context), U8(249),
+  /* 3351 S> */ B(LdaZero),
+  /* 3351 E> */ B(StaContextSlot), R(context), U8(250),
+  /* 3365 S> */ B(LdaZero),
+  /* 3365 E> */ B(StaContextSlot), R(context), U8(251),
+  /* 3379 S> */ B(LdaZero),
+  /* 3379 E> */ B(StaContextSlot), R(context), U8(252),
+  /* 3393 S> */ B(LdaZero),
+  /* 3393 E> */ B(StaContextSlot), R(context), U8(253),
+  /* 3407 S> */ B(LdaZero),
+  /* 3407 E> */ B(StaContextSlot), R(context), U8(254),
+  /* 3421 S> */ B(LdaZero),
+  /* 3421 E> */ B(StaContextSlot), R(context), U8(255),
+  /* 3424 S> */ B(LdaUndefined),
+                B(Star), R(2),
+  /* 3424 E> */ B(LdaGlobal), U8(0), U8(1),
+                B(Star), R(1),
+  /* 3424 E> */ B(Call), R(1), R(2), U8(1), U8(0),
+  /* 3440 S> */ B(LdaSmi), U8(100),
+  /* 3440 E> */ B(Wide), B(StaContextSlot), R16(context), U16(256),
+  /* 3445 S> */ B(Wide), B(LdaContextSlot), R16(context), U16(256),
+  /* 3454 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/CountOperators.golden b/test/cctest/interpreter/bytecode_expectations/CountOperators.golden
index 8857789..db9dcf3 100644
--- a/test/cctest/interpreter/bytecode_expectations/CountOperators.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CountOperators.golden
@@ -13,15 +13,14 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 10
+bytecode array length: 9
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(ToNumber),
-  B(Inc),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Inc),
+  /*   54 E> */ B(Star), R(0),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -36,15 +35,15 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(ToNumber),
-  B(Star), R(1),
-  B(Inc),
-  B(Star), R(0),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(ToNumber),
+                B(Star), R(1),
+                B(Inc),
+  /*   53 E> */ B(Star), R(0),
+                B(Ldar), R(1),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -57,15 +56,14 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 10
+bytecode array length: 9
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(ToNumber),
-  B(Dec),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Dec),
+  /*   54 E> */ B(Star), R(0),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -80,15 +78,15 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(ToNumber),
-  B(Star), R(1),
-  B(Dec),
-  B(Star), R(0),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(ToNumber),
+                B(Star), R(1),
+                B(Dec),
+  /*   53 E> */ B(Star), R(0),
+                B(Ldar), R(1),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -103,18 +101,18 @@
 parameter count: 1
 bytecode array length: 26
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(1), U8(1),
-  B(ToNumber),
-  B(Star), R(2),
-  B(Inc),
-  B(StoreICSloppy), R(1), U8(1), U8(3),
-  B(Ldar), R(2),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   54 S> */ B(Star), R(1),
+                B(LoadIC), R(1), U8(1), U8(1),
+                B(ToNumber),
+                B(Star), R(2),
+                B(Inc),
+  /*   66 E> */ B(StoreICSloppy), R(1), U8(1), U8(3),
+                B(Ldar), R(2),
+  /*   70 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -129,18 +127,17 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 22
+bytecode array length: 21
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(1), U8(1),
-  B(ToNumber),
-  B(Dec),
-  B(StoreICSloppy), R(1), U8(1), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   54 S> */ B(Star), R(1),
+                B(LoadIC), R(1), U8(1), U8(1),
+                B(Dec),
+  /*   65 E> */ B(StoreICSloppy), R(1), U8(1), U8(3),
+  /*   70 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -157,22 +154,22 @@
 parameter count: 1
 bytecode array length: 33
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(1), U8(0), U8(5),
-  B(Star), R(2),
-  B(Star), R(1),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(Star), R(3),
-  B(KeyedLoadIC), R(2), U8(1),
-  B(ToNumber),
-  B(Star), R(4),
-  B(Dec),
-  B(KeyedStoreICSloppy), R(2), R(3), U8(3),
-  B(Ldar), R(4),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   45 S> */ B(LdaConstant), U8(0),
+  /*   45 E> */ B(Star), R(0),
+  /*   60 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(1),
+                B(Star), R(2),
+  /*   60 E> */ B(Star), R(1),
+  /*   72 S> */ B(Star), R(2),
+  /*   81 E> */ B(Ldar), R(0),
+                B(Star), R(3),
+                B(KeyedLoadIC), R(2), U8(1),
+                B(ToNumber),
+                B(Star), R(4),
+                B(Dec),
+  /*   86 E> */ B(KeyedStoreICSloppy), R(2), R(3), U8(3),
+                B(Ldar), R(4),
+  /*   90 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -187,22 +184,21 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 29
+bytecode array length: 28
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(1), U8(0), U8(5),
-  B(Star), R(2),
-  B(Star), R(1),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(Star), R(3),
-  B(KeyedLoadIC), R(2), U8(1),
-  B(ToNumber),
-  B(Inc),
-  B(KeyedStoreICSloppy), R(2), R(3), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   45 S> */ B(LdaConstant), U8(0),
+  /*   45 E> */ B(Star), R(0),
+  /*   60 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(1),
+                B(Star), R(2),
+  /*   60 E> */ B(Star), R(1),
+  /*   72 S> */ B(Star), R(2),
+  /*   83 E> */ B(Ldar), R(0),
+                B(Star), R(3),
+                B(KeyedLoadIC), R(2), U8(1),
+                B(Inc),
+  /*   87 E> */ B(KeyedStoreICSloppy), R(2), R(3), U8(3),
+  /*   90 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -217,20 +213,19 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 27
+bytecode array length: 26
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(LdaContextSlot), R(context), U8(4),
-  B(ToNumber),
-  B(Inc),
-  B(StaContextSlot), R(context), U8(4),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   53 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   53 E> */ B(Star), R(0),
+  /*   78 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(Inc),
+  /*   87 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   90 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -246,20 +241,20 @@
 parameter count: 1
 bytecode array length: 31
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(LdaContextSlot), R(context), U8(4),
-  B(ToNumber),
-  B(Star), R(2),
-  B(Dec),
-  B(StaContextSlot), R(context), U8(4),
-  B(Ldar), R(2),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   53 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   53 E> */ B(Star), R(0),
+  /*   78 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(ToNumber),
+                B(Star), R(2),
+                B(Dec),
+  /*   86 E> */ B(StaContextSlot), R(context), U8(4),
+                B(Ldar), R(2),
+  /*   90 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -275,20 +270,20 @@
 parameter count: 1
 bytecode array length: 28
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  B(Star), R(1),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(ToNumber),
-  B(Star), R(3),
-  B(Inc),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(KeyedStoreICSloppy), R(2), R(3), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   44 S> */ B(LdaSmi), U8(1),
+  /*   44 E> */ B(Star), R(0),
+  /*   55 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
+  /*   55 E> */ B(Star), R(1),
+  /*   63 S> */ B(Star), R(2),
+                B(Ldar), R(0),
+                B(ToNumber),
+                B(Star), R(3),
+                B(Inc),
+  /*   75 E> */ B(Star), R(0),
+                B(LdaSmi), U8(2),
+  /*   79 E> */ B(KeyedStoreICSloppy), R(2), R(3), U8(1),
+  /*   84 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden b/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden
index ab60ba4..6788a7c 100644
--- a/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden
@@ -17,11 +17,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(CreateMappedArguments),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Return),
+                B(CreateMappedArguments),
+                B(Star), R(0),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(Ldar), R(0),
+  /*   33 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -37,14 +37,14 @@
 parameter count: 1
 bytecode array length: 13
 bytecodes: [
-  B(CreateMappedArguments),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(KeyedLoadIC), R(1), U8(1),
-  B(Return),
+                B(CreateMappedArguments),
+                B(Star), R(0),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+  /*   31 E> */ B(LdaZero),
+                B(KeyedLoadIC), R(1), U8(1),
+  /*   36 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -60,11 +60,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(CreateUnmappedArguments),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Return),
+                B(CreateUnmappedArguments),
+                B(Star), R(0),
+  /*   10 E> */ B(StackCheck),
+  /*   29 S> */ B(Ldar), R(0),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -80,18 +80,18 @@
 parameter count: 2
 bytecode array length: 25
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(Ldar), R(arg0),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateMappedArguments),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaZero),
-  B(KeyedLoadIC), R(2), U8(1),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(Ldar), R(arg0),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateMappedArguments),
+                B(Star), R(0),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+  /*   32 E> */ B(LdaZero),
+                B(KeyedLoadIC), R(2), U8(1),
+  /*   37 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -107,19 +107,19 @@
 parameter count: 4
 bytecode array length: 29
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(Ldar), R(arg0),
-  B(StaContextSlot), R(context), U8(6),
-  B(Ldar), R(arg1),
-  B(StaContextSlot), R(context), U8(5),
-  B(Ldar), R(arg2),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateMappedArguments),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(Ldar), R(arg0),
+                B(StaContextSlot), R(context), U8(6),
+                B(Ldar), R(arg1),
+                B(StaContextSlot), R(context), U8(5),
+                B(Ldar), R(arg2),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateMappedArguments),
+                B(Star), R(0),
+  /*   10 E> */ B(StackCheck),
+  /*   22 S> */ B(Ldar), R(0),
+  /*   40 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -135,11 +135,11 @@
 parameter count: 4
 bytecode array length: 7
 bytecodes: [
-  B(CreateUnmappedArguments),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Return),
+                B(CreateUnmappedArguments),
+                B(Star), R(0),
+  /*   10 E> */ B(StackCheck),
+  /*   36 S> */ B(Ldar), R(0),
+  /*   54 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden b/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden
index e43a8cd..341ad9c 100644
--- a/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden
@@ -17,11 +17,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(CreateRestParameter),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Return),
+                B(CreateRestParameter),
+                B(Star), R(0),
+  /*   10 E> */ B(StackCheck),
+  /*   26 S> */ B(Ldar), R(0),
+  /*   43 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -37,15 +37,15 @@
 parameter count: 2
 bytecode array length: 14
 bytecodes: [
-  B(CreateRestParameter),
-  B(Star), R(0),
-  B(LdaTheHole),
-  B(Star), R(1),
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Return),
+                B(CreateRestParameter),
+                B(Star), R(0),
+                B(LdaTheHole),
+                B(Star), R(1),
+  /*   10 E> */ B(StackCheck),
+                B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   29 S> */ B(Ldar), R(0),
+  /*   46 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -61,18 +61,18 @@
 parameter count: 2
 bytecode array length: 20
 bytecodes: [
-  B(CreateRestParameter),
-  B(Star), R(0),
-  B(LdaTheHole),
-  B(Star), R(1),
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaZero),
-  B(KeyedLoadIC), R(2), U8(1),
-  B(Return),
+                B(CreateRestParameter),
+                B(Star), R(0),
+                B(LdaTheHole),
+                B(Star), R(1),
+  /*   10 E> */ B(StackCheck),
+                B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   29 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+  /*   44 E> */ B(LdaZero),
+                B(KeyedLoadIC), R(2), U8(1),
+  /*   49 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -88,26 +88,26 @@
 parameter count: 2
 bytecode array length: 35
 bytecodes: [
-  B(CreateUnmappedArguments),
-  B(Star), R(0),
-  B(CreateRestParameter),
-  B(Star), R(1),
-  B(LdaTheHole),
-  B(Star), R(2),
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(2),
-  B(Ldar), R(1),
-  B(Star), R(3),
-  B(LdaZero),
-  B(KeyedLoadIC), R(3), U8(1),
-  B(Star), R(4),
-  B(Ldar), R(0),
-  B(Star), R(3),
-  B(LdaZero),
-  B(KeyedLoadIC), R(3), U8(3),
-  B(Add), R(4),
-  B(Return),
+                B(CreateUnmappedArguments),
+                B(Star), R(0),
+                B(CreateRestParameter),
+                B(Star), R(1),
+                B(LdaTheHole),
+                B(Star), R(2),
+  /*   10 E> */ B(StackCheck),
+                B(Ldar), R(arg0),
+                B(Star), R(2),
+  /*   29 S> */ B(Ldar), R(1),
+                B(Star), R(3),
+  /*   44 E> */ B(LdaZero),
+                B(KeyedLoadIC), R(3), U8(1),
+                B(Star), R(4),
+  /*   50 E> */ B(Ldar), R(0),
+                B(Star), R(3),
+  /*   59 E> */ B(LdaZero),
+                B(KeyedLoadIC), R(3), U8(3),
+                B(Add), R(4),
+  /*   64 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden b/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden
index 0c7c176..29f101a 100644
--- a/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden
+++ b/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaUndefined),
+  /*   58 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -32,11 +32,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   66 S> */ B(LdaSmi), U8(1),
+  /*   66 E> */ B(Star), R(0),
+                B(LdaUndefined),
+  /*   69 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -51,9 +51,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   46 S> */ B(LdaSmi), U8(1),
+  /*   78 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -68,14 +68,14 @@
 parameter count: 1
 bytecode array length: 13
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(JumpIfToBooleanFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(LdaSmi), U8(2),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanFalse), U8(5),
+  /*   54 S> */ B(LdaSmi), U8(1),
+  /*   77 S> */ B(Return),
+  /*   67 S> */ B(LdaSmi), U8(2),
+  /*   77 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden b/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden
index bedbe31..a1505f0 100644
--- a/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden
@@ -16,21 +16,21 @@
 parameter count: 1
 bytecode array length: 31
 bytecodes: [
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
-  B(StackCheck),
-  B(LdaConstant), U8(1),
-  B(Star), R(1),
-  B(LdaZero),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kInitializeVarGlobal), R(1), U8(3),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaConstant), U8(0),
+                B(Star), R(1),
+                B(LdaZero),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
+  /*    0 E> */ B(StackCheck),
+  /*    8 S> */ B(LdaConstant), U8(1),
+                B(Star), R(1),
+                B(LdaZero),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kInitializeVarGlobal), R(1), U8(3),
+                B(LdaUndefined),
+  /*   10 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -47,14 +47,14 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kDeclareGlobals), R(0), U8(2),
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaConstant), U8(0),
+                B(Star), R(0),
+                B(LdaZero),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(0), U8(2),
+  /*    0 E> */ B(StackCheck),
+                B(LdaUndefined),
+  /*   15 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -71,23 +71,23 @@
 parameter count: 1
 bytecode array length: 37
 bytecodes: [
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
-  B(StackCheck),
-  B(LdaConstant), U8(1),
-  B(Star), R(1),
-  B(LdaZero),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kInitializeVarGlobal), R(1), U8(3),
-  B(LdaSmi), U8(2),
-  B(StaGlobalSloppy), U8(1), U8(3),
-  B(Star), R(0),
-  B(Return),
+                B(LdaConstant), U8(0),
+                B(Star), R(1),
+                B(LdaZero),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
+  /*    0 E> */ B(StackCheck),
+  /*    8 S> */ B(LdaConstant), U8(1),
+                B(Star), R(1),
+                B(LdaZero),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kInitializeVarGlobal), R(1), U8(3),
+  /*   11 S> */ B(LdaSmi), U8(2),
+  /*   12 E> */ B(StaGlobalSloppy), U8(1), U8(3),
+                B(Star), R(0),
+  /*   15 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -105,19 +105,19 @@
 parameter count: 1
 bytecode array length: 29
 bytecodes: [
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(2),
-  B(LdaGlobal), U8(1), U8(1),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(1), U8(3),
-  B(Star), R(0),
-  B(Return),
+                B(LdaConstant), U8(0),
+                B(Star), R(1),
+                B(LdaZero),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
+  /*    0 E> */ B(StackCheck),
+  /*   16 S> */ B(LdaUndefined),
+                B(Star), R(2),
+                B(LdaGlobal), U8(1), U8(1),
+                B(Star), R(1),
+  /*   16 E> */ B(Call), R(1), R(2), U8(1), U8(3),
+                B(Star), R(0),
+  /*   20 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/Delete.golden b/test/cctest/interpreter/bytecode_expectations/Delete.golden
index 369c158..2a355ab 100644
--- a/test/cctest/interpreter/bytecode_expectations/Delete.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Delete.golden
@@ -15,14 +15,14 @@
 parameter count: 1
 bytecode array length: 16
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaConstant), U8(1),
-  B(DeletePropertySloppy), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   56 S> */ B(Star), R(1),
+                B(LdaConstant), U8(1),
+                B(DeletePropertySloppy), R(1),
+  /*   75 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -39,14 +39,14 @@
 parameter count: 1
 bytecode array length: 16
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaConstant), U8(1),
-  B(DeletePropertyStrict), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   56 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   56 E> */ B(Star), R(0),
+  /*   70 S> */ B(Star), R(1),
+                B(LdaConstant), U8(1),
+                B(DeletePropertyStrict), R(1),
+  /*   89 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -63,14 +63,14 @@
 parameter count: 1
 bytecode array length: 16
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(DeletePropertySloppy), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   56 S> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+                B(DeletePropertySloppy), R(1),
+  /*   76 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -86,11 +86,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(LdaFalse),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(LdaFalse),
+  /*   63 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -108,18 +108,18 @@
 parameter count: 1
 bytecode array length: 30
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(1), U8(0),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(DeletePropertyStrict), R(1),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   56 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   56 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   64 S> */ B(CreateClosure), U8(1), U8(0),
+  /*   93 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(DeletePropertyStrict), R(1),
+  /*  113 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -136,9 +136,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaTrue),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaTrue),
+  /*   56 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/DeleteLookupSlotInEval.golden b/test/cctest/interpreter/bytecode_expectations/DeleteLookupSlotInEval.golden
index b36f421..dcc7213 100644
--- a/test/cctest/interpreter/bytecode_expectations/DeleteLookupSlotInEval.golden
+++ b/test/cctest/interpreter/bytecode_expectations/DeleteLookupSlotInEval.golden
@@ -23,12 +23,12 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(CallRuntime), U16(Runtime::kDeleteLookupSlot), R(0), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(LdaConstant), U8(0),
+                B(Star), R(0),
+                B(CallRuntime), U16(Runtime::kDeleteLookupSlot), R(0), U8(1),
+                B(LdaUndefined),
+  /*   25 S> */ B(Return),
 ]
 constant pool: [
   "x",
@@ -51,9 +51,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaFalse),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(LdaFalse),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -75,11 +75,11 @@
 parameter count: 1
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(CallRuntime), U16(Runtime::kDeleteLookupSlot), R(0), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(LdaConstant), U8(0),
+                B(Star), R(0),
+                B(CallRuntime), U16(Runtime::kDeleteLookupSlot), R(0), U8(1),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
   "z",
diff --git a/test/cctest/interpreter/bytecode_expectations/DoDebugger.golden b/test/cctest/interpreter/bytecode_expectations/DoDebugger.golden
index ca26065..ac0b2ee 100644
--- a/test/cctest/interpreter/bytecode_expectations/DoDebugger.golden
+++ b/test/cctest/interpreter/bytecode_expectations/DoDebugger.golden
@@ -15,10 +15,10 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(Debugger),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(Debugger),
+                B(LdaUndefined),
+  /*   44 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/DoExpression.golden b/test/cctest/interpreter/bytecode_expectations/DoExpression.golden
index b46fa57..68f264f 100644
--- a/test/cctest/interpreter/bytecode_expectations/DoExpression.golden
+++ b/test/cctest/interpreter/bytecode_expectations/DoExpression.golden
@@ -16,10 +16,10 @@
 parameter count: 1
 bytecode array length: 6
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(Ldar), R(0),
+  /*   42 E> */ B(Star), R(1),
+  /*   60 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -34,13 +34,13 @@
 parameter count: 1
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(100),
-  B(Star), R(1),
-  B(LdaUndefined),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   55 S> */ B(LdaSmi), U8(100),
+  /*   55 E> */ B(Star), R(1),
+  /*   42 S> */ B(LdaUndefined),
+                B(Star), R(0),
+  /*   42 E> */ B(Star), R(2),
+  /*   73 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -53,24 +53,23 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 26
+bytecode array length: 25
 bytecodes: [
-  B(StackCheck),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(1),
-  B(ToNumber),
-  B(Inc),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Jump), U8(12),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(20),
-  B(Star), R(1),
-  B(Jump), U8(-21),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 E> */ B(StackCheck),
+  /*   56 S> */ B(LdaSmi), U8(10),
+  /*   56 E> */ B(Star), R(1),
+  /*   69 S> */ B(Inc),
+  /*   71 E> */ B(Star), R(1),
+                B(Star), R(0),
+  /*   74 S> */ B(Jump), U8(12),
+  /*   64 E> */ B(Ldar), R(0),
+  /*   62 E> */ B(Star), R(1),
+  /*   84 S> */ B(LdaSmi), U8(20),
+  /*   86 E> */ B(Star), R(1),
+                B(Jump), U8(-20),
+                B(LdaUndefined),
+  /*   94 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/Eval.golden b/test/cctest/interpreter/bytecode_expectations/Eval.golden
index e3e48bc..7c3915c 100644
--- a/test/cctest/interpreter/bytecode_expectations/Eval.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Eval.golden
@@ -11,35 +11,37 @@
 snippet: "
   return eval('1;');
 "
-frame size: 9
+frame size: 10
 parameter count: 1
-bytecode array length: 65
+bytecode array length: 69
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(Ldar), R(this),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateMappedArguments),
-  B(StaContextSlot), R(context), U8(5),
-  B(Ldar), R(new_target),
-  B(StaContextSlot), R(context), U8(6),
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(3),
-  B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(Mov), R(1), R(4),
-  B(Mov), R(3), R(5),
-  B(Mov), R(closure), R(6),
-  B(LdaZero),
-  B(Star), R(7),
-  B(LdaSmi), U8(30),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(5),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(2), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateMappedArguments),
+                B(StaContextSlot), R(context), U8(5),
+                B(Ldar), R(new_target),
+                B(StaContextSlot), R(context), U8(6),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaConstant), U8(0),
+                B(Star), R(3),
+                B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
+                B(LdaZero),
+                B(Star), R(7),
+                B(LdaSmi), U8(30),
+                B(Star), R(8),
+                B(LdaSmi), U8(41),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
+                B(Star), R(1),
+  /*   41 E> */ B(Call), R(1), R(2), U8(2), U8(0),
+  /*   53 S> */ B(Return),
 ]
 constant pool: [
   "eval",
diff --git a/test/cctest/interpreter/bytecode_expectations/ForIn.golden b/test/cctest/interpreter/bytecode_expectations/ForIn.golden
index 9f0c64a..2b61b64 100644
--- a/test/cctest/interpreter/bytecode_expectations/ForIn.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ForIn.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(LdaUndefined),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -32,9 +32,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(LdaUndefined),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -49,9 +49,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(LdaUndefined),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -67,30 +67,30 @@
 parameter count: 1
 bytecode array length: 45
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(JumpIfUndefined), U8(38),
-  B(JumpIfNull), U8(36),
-  B(ToObject),
-  B(Star), R(3),
-  B(ForInPrepare), R(4),
-  B(LdaZero),
-  B(Star), R(7),
-  B(ForInDone), R(7), R(6),
-  B(JumpIfTrue), U8(23),
-  B(ForInNext), R(3), R(7), R(4), U8(1),
-  B(JumpIfUndefined), U8(10),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(Return),
-  B(ForInStep), R(7),
-  B(Star), R(7),
-  B(Jump), U8(-24),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(1),
+  /*   68 S> */ B(JumpIfUndefined), U8(38),
+                B(JumpIfNull), U8(36),
+                B(ToObject),
+                B(Star), R(3),
+                B(ForInPrepare), R(4),
+                B(LdaZero),
+                B(Star), R(7),
+  /*   63 S> */ B(ForInDone), R(7), R(6),
+                B(JumpIfTrue), U8(23),
+                B(ForInNext), R(3), R(7), R(4), U8(1),
+                B(JumpIfUndefined), U8(10),
+                B(Star), R(0),
+  /*   54 E> */ B(StackCheck),
+                B(Ldar), R(0),
+                B(Star), R(2),
+  /*   85 S> */ B(Return),
+                B(ForInStep), R(7),
+                B(Star), R(7),
+                B(Jump), U8(-24),
+                B(LdaUndefined),
+  /*   85 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -107,35 +107,35 @@
 parameter count: 1
 bytecode array length: 57
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(1),
-  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  B(JumpIfUndefined), U8(47),
-  B(JumpIfNull), U8(45),
-  B(ToObject),
-  B(Star), R(3),
-  B(ForInPrepare), R(4),
-  B(LdaZero),
-  B(Star), R(7),
-  B(ForInDone), R(7), R(6),
-  B(JumpIfTrue), U8(32),
-  B(ForInNext), R(3), R(7), R(4), U8(1),
-  B(JumpIfUndefined), U8(19),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(Ldar), R(1),
-  B(Star), R(8),
-  B(Ldar), R(2),
-  B(Add), R(8),
-  B(Star), R(1),
-  B(ForInStep), R(7),
-  B(Star), R(7),
-  B(Jump), U8(-33),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(1),
+  /*   59 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
+                B(JumpIfUndefined), U8(47),
+                B(JumpIfNull), U8(45),
+                B(ToObject),
+                B(Star), R(3),
+                B(ForInPrepare), R(4),
+                B(LdaZero),
+                B(Star), R(7),
+  /*   54 S> */ B(ForInDone), R(7), R(6),
+                B(JumpIfTrue), U8(32),
+                B(ForInNext), R(3), R(7), R(4), U8(1),
+                B(JumpIfUndefined), U8(19),
+                B(Star), R(0),
+  /*   45 E> */ B(StackCheck),
+                B(Ldar), R(0),
+                B(Star), R(2),
+  /*   70 S> */ B(Ldar), R(1),
+                B(Star), R(8),
+  /*   75 E> */ B(Ldar), R(2),
+                B(Add), R(8),
+  /*   72 E> */ B(Star), R(1),
+                B(ForInStep), R(7),
+                B(Star), R(7),
+                B(Jump), U8(-33),
+                B(LdaUndefined),
+  /*   80 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -155,49 +155,49 @@
 parameter count: 1
 bytecode array length: 94
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(CreateArrayLiteral), U8(1), U8(1), U8(3),
-  B(JumpIfUndefined), U8(79),
-  B(JumpIfNull), U8(77),
-  B(ToObject),
-  B(Star), R(1),
-  B(ForInPrepare), R(2),
-  B(LdaZero),
-  B(Star), R(5),
-  B(ForInDone), R(5), R(4),
-  B(JumpIfTrue), U8(64),
-  B(ForInNext), R(1), R(5), R(2), U8(9),
-  B(JumpIfUndefined), U8(51),
-  B(Star), R(6),
-  B(Ldar), R(0),
-  B(Star), R(7),
-  B(Ldar), R(6),
-  B(StoreICSloppy), R(7), U8(2), U8(7),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(6),
-  B(LoadIC), R(6), U8(2), U8(3),
-  B(Star), R(7),
-  B(LdaSmi), U8(10),
-  B(TestEqual), R(7),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(20),
-  B(Ldar), R(0),
-  B(Star), R(6),
-  B(LoadIC), R(6), U8(2), U8(5),
-  B(Star), R(7),
-  B(LdaSmi), U8(20),
-  B(TestEqual), R(7),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(8),
-  B(ForInStep), R(5),
-  B(Star), R(5),
-  B(Jump), U8(-65),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3),
+                B(JumpIfUndefined), U8(79),
+                B(JumpIfNull), U8(77),
+                B(ToObject),
+                B(Star), R(1),
+                B(ForInPrepare), R(2),
+                B(LdaZero),
+                B(Star), R(5),
+  /*   68 S> */ B(ForInDone), R(5), R(4),
+                B(JumpIfTrue), U8(64),
+                B(ForInNext), R(1), R(5), R(2), U8(9),
+                B(JumpIfUndefined), U8(51),
+                B(Star), R(6),
+  /*   67 E> */ B(Ldar), R(0),
+                B(Star), R(7),
+                B(Ldar), R(6),
+                B(StoreICSloppy), R(7), U8(2), U8(7),
+  /*   62 E> */ B(StackCheck),
+  /*   95 S> */ B(Ldar), R(0),
+                B(Star), R(6),
+  /*  100 E> */ B(LoadIC), R(6), U8(2), U8(3),
+                B(Star), R(7),
+                B(LdaSmi), U8(10),
+  /*  106 E> */ B(TestEqual), R(7),
+                B(JumpIfFalse), U8(4),
+  /*  113 S> */ B(Jump), U8(20),
+  /*  125 S> */ B(Ldar), R(0),
+                B(Star), R(6),
+  /*  130 E> */ B(LoadIC), R(6), U8(2), U8(5),
+                B(Star), R(7),
+                B(LdaSmi), U8(20),
+  /*  136 E> */ B(TestEqual), R(7),
+                B(JumpIfFalse), U8(4),
+  /*  143 S> */ B(Jump), U8(8),
+                B(ForInStep), R(5),
+                B(Star), R(5),
+                B(Jump), U8(-65),
+                B(LdaUndefined),
+  /*  152 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -216,39 +216,39 @@
 parameter count: 1
 bytecode array length: 69
 bytecodes: [
-  B(StackCheck),
-  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  B(Star), R(0),
-  B(CreateArrayLiteral), U8(1), U8(1), U8(3),
-  B(JumpIfUndefined), U8(56),
-  B(JumpIfNull), U8(54),
-  B(ToObject),
-  B(Star), R(1),
-  B(ForInPrepare), R(2),
-  B(LdaZero),
-  B(Star), R(5),
-  B(ForInDone), R(5), R(4),
-  B(JumpIfTrue), U8(41),
-  B(ForInNext), R(1), R(5), R(2), U8(7),
-  B(JumpIfUndefined), U8(28),
-  B(Star), R(6),
-  B(Ldar), R(0),
-  B(Star), R(7),
-  B(LdaZero),
-  B(Star), R(8),
-  B(Ldar), R(6),
-  B(KeyedStoreICSloppy), R(7), R(8), U8(5),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(6),
-  B(LdaSmi), U8(3),
-  B(KeyedLoadIC), R(6), U8(3),
-  B(Return),
-  B(ForInStep), R(5),
-  B(Star), R(5),
-  B(Jump), U8(-42),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
+  /*   42 E> */ B(Star), R(0),
+  /*   72 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3),
+                B(JumpIfUndefined), U8(56),
+                B(JumpIfNull), U8(54),
+                B(ToObject),
+                B(Star), R(1),
+                B(ForInPrepare), R(2),
+                B(LdaZero),
+                B(Star), R(5),
+  /*   65 S> */ B(ForInDone), R(5), R(4),
+                B(JumpIfTrue), U8(41),
+                B(ForInNext), R(1), R(5), R(2), U8(7),
+                B(JumpIfUndefined), U8(28),
+                B(Star), R(6),
+  /*   64 E> */ B(Ldar), R(0),
+                B(Star), R(7),
+                B(LdaZero),
+                B(Star), R(8),
+                B(Ldar), R(6),
+                B(KeyedStoreICSloppy), R(7), R(8), U8(5),
+  /*   59 E> */ B(StackCheck),
+  /*   83 S> */ B(Ldar), R(0),
+                B(Star), R(6),
+  /*   91 E> */ B(LdaSmi), U8(3),
+                B(KeyedLoadIC), R(6), U8(3),
+  /*   98 S> */ B(Return),
+                B(ForInStep), R(5),
+                B(Star), R(5),
+                B(Jump), U8(-42),
+                B(LdaUndefined),
+  /*   98 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/ForOf.golden b/test/cctest/interpreter/bytecode_expectations/ForOf.golden
index 9b10f41..6fb1c4b 100644
--- a/test/cctest/interpreter/bytecode_expectations/ForOf.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ForOf.golden
@@ -15,157 +15,157 @@
 parameter count: 1
 bytecode array length: 347
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(3),
-  B(Mov), R(context), R(11),
-  B(Mov), R(context), R(12),
-  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  B(Star), R(14),
-  B(LdaConstant), U8(1),
-  B(KeyedLoadIC), R(14), U8(3),
-  B(Star), R(13),
-  B(Call), R(13), R(14), U8(1), U8(1),
-  B(Star), R(1),
-  B(Ldar), R(1),
-  B(Star), R(15),
-  B(LoadIC), R(15), U8(2), U8(7),
-  B(Star), R(14),
-  B(Call), R(14), R(15), U8(1), U8(5),
-  B(Star), R(2),
-  B(Star), R(13),
-  B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
-  B(LogicalNot),
-  B(JumpIfFalse), U8(11),
-  B(Ldar), R(2),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
-  B(Ldar), R(2),
-  B(Star), R(13),
-  B(LoadIC), R(13), U8(3), U8(9),
-  B(JumpIfToBooleanTrue), U8(28),
-  B(LdaSmi), U8(2),
-  B(Star), R(3),
-  B(Ldar), R(2),
-  B(Star), R(13),
-  B(LoadIC), R(13), U8(4), U8(11),
-  B(Star), R(0),
-  B(Ldar), R(4),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(7),
-  B(LdaZero),
-  B(Star), R(3),
-  B(Jump), U8(-70),
-  B(Jump), U8(47),
-  B(Star), R(14),
-  B(LdaConstant), U8(5),
-  B(Star), R(13),
-  B(Ldar), R(closure),
-  B(Star), R(15),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
-  B(Star), R(12),
-  B(PushContext), R(8),
-  B(Ldar), R(3),
-  B(Star), R(13),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(13),
-  B(JumpIfFalse), U8(6),
-  B(LdaSmi), U8(1),
-  B(Star), R(3),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
-  B(PopContext), R(8),
-  B(LdaSmi), U8(-1),
-  B(Star), R(9),
-  B(Jump), U8(7),
-  B(Star), R(10),
-  B(LdaZero),
-  B(Star), R(9),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Star), R(11),
-  B(Ldar), R(3),
-  B(Star), R(12),
-  B(LdaZero),
-  B(TestEqualStrict), R(12),
-  B(JumpIfTrue), U8(9),
-  B(Ldar), R(1),
-  B(Star), R(12),
-  B(LdaUndefined),
-  B(TestEqualStrict), R(12),
-  B(LogicalNot),
-  B(JumpIfFalseConstant), U8(9),
-  B(Ldar), R(1),
-  B(Star), R(12),
-  B(LoadIC), R(12), U8(6), U8(13),
-  B(Star), R(5),
-  B(Star), R(12),
-  B(LdaNull),
-  B(TestEqual), R(12),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(124),
-  B(Ldar), R(3),
-  B(Star), R(12),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(12),
-  B(JumpIfFalse), U8(79),
-  B(Ldar), R(5),
-  B(TypeOf),
-  B(Star), R(12),
-  B(LdaConstant), U8(7),
-  B(TestEqualStrict), R(12),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(18),
-  B(Wide), B(LdaSmi), U16(139),
-  B(Star), R(12),
-  B(LdaConstant), U8(8),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
-  B(Throw),
-  B(Mov), R(context), R(12),
-  B(Ldar), R(5),
-  B(Star), R(13),
-  B(Ldar), R(1),
-  B(Star), R(14),
-  B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
-  B(Jump), U8(30),
-  B(Star), R(14),
-  B(LdaConstant), U8(5),
-  B(Star), R(13),
-  B(Ldar), R(closure),
-  B(Star), R(15),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
-  B(Star), R(12),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(12),
-  B(PushContext), R(8),
-  B(PopContext), R(8),
-  B(Jump), U8(37),
-  B(Ldar), R(5),
-  B(Star), R(12),
-  B(Ldar), R(1),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
-  B(Star), R(6),
-  B(Star), R(12),
-  B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
-  B(JumpIfToBooleanFalse), U8(4),
-  B(Jump), U8(11),
-  B(Ldar), R(6),
-  B(Star), R(12),
-  B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
-  B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
-  B(LdaZero),
-  B(TestEqualStrict), R(9),
-  B(JumpIfTrue), U8(4),
-  B(Jump), U8(5),
-  B(Ldar), R(10),
-  B(ReThrow),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(LdaUndefined),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(3),
+                B(Mov), R(context), R(11),
+                B(Mov), R(context), R(12),
+  /*   48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
+                B(Star), R(14),
+  /*   48 E> */ B(LdaConstant), U8(1),
+                B(KeyedLoadIC), R(14), U8(3),
+                B(Star), R(13),
+  /*   48 E> */ B(Call), R(13), R(14), U8(1), U8(1),
+  /*   48 E> */ B(Star), R(1),
+  /*   45 S> */ B(Ldar), R(1),
+                B(Star), R(15),
+                B(LoadIC), R(15), U8(2), U8(7),
+                B(Star), R(14),
+  /*   45 E> */ B(Call), R(14), R(15), U8(1), U8(5),
+  /*   45 E> */ B(Star), R(2),
+                B(Star), R(13),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalse), U8(11),
+                B(Ldar), R(2),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
+                B(Ldar), R(2),
+                B(Star), R(13),
+                B(LoadIC), R(13), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(28),
+                B(LdaSmi), U8(2),
+                B(Star), R(3),
+                B(Ldar), R(2),
+                B(Star), R(13),
+                B(LoadIC), R(13), U8(4), U8(11),
+                B(Star), R(0),
+                B(Ldar), R(4),
+  /*   34 E> */ B(StackCheck),
+                B(Ldar), R(0),
+                B(Star), R(7),
+                B(LdaZero),
+                B(Star), R(3),
+                B(Jump), U8(-70),
+                B(Jump), U8(47),
+                B(Star), R(14),
+                B(LdaConstant), U8(5),
+                B(Star), R(13),
+                B(Ldar), R(closure),
+                B(Star), R(15),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
+                B(Star), R(12),
+                B(PushContext), R(8),
+                B(Ldar), R(3),
+                B(Star), R(13),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(13),
+                B(JumpIfFalse), U8(6),
+                B(LdaSmi), U8(1),
+                B(Star), R(3),
+                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
+                B(PopContext), R(8),
+                B(LdaSmi), U8(-1),
+                B(Star), R(9),
+                B(Jump), U8(7),
+                B(Star), R(10),
+                B(LdaZero),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(11),
+                B(Ldar), R(3),
+                B(Star), R(12),
+                B(LdaZero),
+                B(TestEqualStrict), R(12),
+                B(JumpIfTrue), U8(9),
+                B(Ldar), R(1),
+                B(Star), R(12),
+                B(LdaUndefined),
+                B(TestEqualStrict), R(12),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalseConstant), U8(9),
+                B(Ldar), R(1),
+                B(Star), R(12),
+                B(LoadIC), R(12), U8(6), U8(13),
+                B(Star), R(5),
+                B(Star), R(12),
+                B(LdaNull),
+                B(TestEqual), R(12),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(124),
+                B(Ldar), R(3),
+                B(Star), R(12),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(12),
+                B(JumpIfFalse), U8(79),
+                B(Ldar), R(5),
+                B(TypeOf),
+                B(Star), R(12),
+                B(LdaConstant), U8(7),
+                B(TestEqualStrict), R(12),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(18),
+                B(Wide), B(LdaSmi), U16(129),
+                B(Star), R(12),
+                B(LdaConstant), U8(8),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
+                B(Throw),
+                B(Mov), R(context), R(12),
+                B(Ldar), R(5),
+                B(Star), R(13),
+                B(Ldar), R(1),
+                B(Star), R(14),
+                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
+                B(Jump), U8(30),
+                B(Star), R(14),
+                B(LdaConstant), U8(5),
+                B(Star), R(13),
+                B(Ldar), R(closure),
+                B(Star), R(15),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(12),
+                B(PushContext), R(8),
+                B(PopContext), R(8),
+                B(Jump), U8(37),
+                B(Ldar), R(5),
+                B(Star), R(12),
+                B(Ldar), R(1),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
+                B(Star), R(6),
+                B(Star), R(12),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
+                B(JumpIfToBooleanFalse), U8(4),
+                B(Jump), U8(11),
+                B(Ldar), R(6),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(9),
+                B(JumpIfTrue), U8(4),
+                B(Jump), U8(5),
+                B(Ldar), R(10),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -194,166 +194,166 @@
 parameter count: 1
 bytecode array length: 363
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(7),
-  B(LdaUndefined),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(3),
-  B(Mov), R(context), R(12),
-  B(Mov), R(context), R(13),
-  B(Ldar), R(7),
-  B(Star), R(15),
-  B(LdaConstant), U8(1),
-  B(KeyedLoadIC), R(15), U8(3),
-  B(Star), R(14),
-  B(Call), R(14), R(15), U8(1), U8(1),
-  B(Star), R(1),
-  B(Ldar), R(1),
-  B(Star), R(16),
-  B(LoadIC), R(16), U8(2), U8(7),
-  B(Star), R(15),
-  B(Call), R(15), R(16), U8(1), U8(5),
-  B(Star), R(2),
-  B(Star), R(14),
-  B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(14), U8(1),
-  B(LogicalNot),
-  B(JumpIfFalse), U8(11),
-  B(Ldar), R(2),
-  B(Star), R(14),
-  B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
-  B(Ldar), R(2),
-  B(Star), R(14),
-  B(LoadIC), R(14), U8(3), U8(9),
-  B(JumpIfToBooleanTrue), U8(32),
-  B(LdaSmi), U8(2),
-  B(Star), R(3),
-  B(Ldar), R(2),
-  B(Star), R(14),
-  B(LoadIC), R(14), U8(4), U8(11),
-  B(Star), R(0),
-  B(Ldar), R(4),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(8),
-  B(Star), R(11),
-  B(LdaZero),
-  B(Star), R(10),
-  B(Jump), U8(63),
-  B(Jump), U8(-74),
-  B(Jump), U8(47),
-  B(Star), R(15),
-  B(LdaConstant), U8(5),
-  B(Star), R(14),
-  B(Ldar), R(closure),
-  B(Star), R(16),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
-  B(Star), R(13),
-  B(PushContext), R(9),
-  B(Ldar), R(3),
-  B(Star), R(14),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(14),
-  B(JumpIfFalse), U8(6),
-  B(LdaSmi), U8(1),
-  B(Star), R(3),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Star), R(14),
-  B(CallRuntime), U16(Runtime::kReThrow), R(14), U8(1),
-  B(PopContext), R(9),
-  B(LdaSmi), U8(-1),
-  B(Star), R(10),
-  B(Jump), U8(8),
-  B(Star), R(11),
-  B(LdaSmi), U8(1),
-  B(Star), R(10),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Star), R(12),
-  B(Ldar), R(3),
-  B(Star), R(13),
-  B(LdaZero),
-  B(TestEqualStrict), R(13),
-  B(JumpIfTrue), U8(9),
-  B(Ldar), R(1),
-  B(Star), R(13),
-  B(LdaUndefined),
-  B(TestEqualStrict), R(13),
-  B(LogicalNot),
-  B(JumpIfFalseConstant), U8(9),
-  B(Ldar), R(1),
-  B(Star), R(13),
-  B(LoadIC), R(13), U8(6), U8(13),
-  B(Star), R(5),
-  B(Star), R(13),
-  B(LdaNull),
-  B(TestEqual), R(13),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(124),
-  B(Ldar), R(3),
-  B(Star), R(13),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(13),
-  B(JumpIfFalse), U8(79),
-  B(Ldar), R(5),
-  B(TypeOf),
-  B(Star), R(13),
-  B(LdaConstant), U8(7),
-  B(TestEqualStrict), R(13),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(18),
-  B(Wide), B(LdaSmi), U16(139),
-  B(Star), R(13),
-  B(LdaConstant), U8(8),
-  B(Star), R(14),
-  B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
-  B(Throw),
-  B(Mov), R(context), R(13),
-  B(Ldar), R(5),
-  B(Star), R(14),
-  B(Ldar), R(1),
-  B(Star), R(15),
-  B(CallRuntime), U16(Runtime::k_Call), R(14), U8(2),
-  B(Jump), U8(30),
-  B(Star), R(15),
-  B(LdaConstant), U8(5),
-  B(Star), R(14),
-  B(Ldar), R(closure),
-  B(Star), R(16),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(13),
-  B(PushContext), R(9),
-  B(PopContext), R(9),
-  B(Jump), U8(37),
-  B(Ldar), R(5),
-  B(Star), R(13),
-  B(Ldar), R(1),
-  B(Star), R(14),
-  B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
-  B(Star), R(6),
-  B(Star), R(13),
-  B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
-  B(JumpIfToBooleanFalse), U8(4),
-  B(Jump), U8(11),
-  B(Ldar), R(6),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
-  B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(12), U8(1),
-  B(LdaZero),
-  B(TestEqualStrict), R(10),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(10),
-  B(JumpIfTrue), U8(7),
-  B(Jump), U8(8),
-  B(Ldar), R(11),
-  B(Return),
-  B(Ldar), R(11),
-  B(ReThrow),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(7),
+                B(LdaUndefined),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(3),
+                B(Mov), R(context), R(12),
+                B(Mov), R(context), R(13),
+  /*   68 S> */ B(Ldar), R(7),
+                B(Star), R(15),
+  /*   68 E> */ B(LdaConstant), U8(1),
+                B(KeyedLoadIC), R(15), U8(3),
+                B(Star), R(14),
+  /*   68 E> */ B(Call), R(14), R(15), U8(1), U8(1),
+  /*   68 E> */ B(Star), R(1),
+  /*   65 S> */ B(Ldar), R(1),
+                B(Star), R(16),
+                B(LoadIC), R(16), U8(2), U8(7),
+                B(Star), R(15),
+  /*   65 E> */ B(Call), R(15), R(16), U8(1), U8(5),
+  /*   65 E> */ B(Star), R(2),
+                B(Star), R(14),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(14), U8(1),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalse), U8(11),
+                B(Ldar), R(2),
+                B(Star), R(14),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
+                B(Ldar), R(2),
+                B(Star), R(14),
+                B(LoadIC), R(14), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(32),
+                B(LdaSmi), U8(2),
+                B(Star), R(3),
+                B(Ldar), R(2),
+                B(Star), R(14),
+                B(LoadIC), R(14), U8(4), U8(11),
+                B(Star), R(0),
+                B(Ldar), R(4),
+  /*   54 E> */ B(StackCheck),
+                B(Ldar), R(0),
+                B(Star), R(8),
+  /*   73 S> */ B(Star), R(11),
+                B(LdaZero),
+                B(Star), R(10),
+                B(Jump), U8(63),
+                B(Jump), U8(-74),
+                B(Jump), U8(47),
+                B(Star), R(15),
+                B(LdaConstant), U8(5),
+                B(Star), R(14),
+                B(Ldar), R(closure),
+                B(Star), R(16),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
+                B(Star), R(13),
+                B(PushContext), R(9),
+                B(Ldar), R(3),
+                B(Star), R(14),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(14),
+                B(JumpIfFalse), U8(6),
+                B(LdaSmi), U8(1),
+                B(Star), R(3),
+                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(14),
+                B(CallRuntime), U16(Runtime::kReThrow), R(14), U8(1),
+                B(PopContext), R(9),
+                B(LdaSmi), U8(-1),
+                B(Star), R(10),
+                B(Jump), U8(8),
+                B(Star), R(11),
+                B(LdaSmi), U8(1),
+                B(Star), R(10),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(12),
+                B(Ldar), R(3),
+                B(Star), R(13),
+                B(LdaZero),
+                B(TestEqualStrict), R(13),
+                B(JumpIfTrue), U8(9),
+                B(Ldar), R(1),
+                B(Star), R(13),
+                B(LdaUndefined),
+                B(TestEqualStrict), R(13),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalseConstant), U8(9),
+                B(Ldar), R(1),
+                B(Star), R(13),
+                B(LoadIC), R(13), U8(6), U8(13),
+                B(Star), R(5),
+                B(Star), R(13),
+                B(LdaNull),
+                B(TestEqual), R(13),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(124),
+                B(Ldar), R(3),
+                B(Star), R(13),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(13),
+                B(JumpIfFalse), U8(79),
+                B(Ldar), R(5),
+                B(TypeOf),
+                B(Star), R(13),
+                B(LdaConstant), U8(7),
+                B(TestEqualStrict), R(13),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(18),
+                B(Wide), B(LdaSmi), U16(129),
+                B(Star), R(13),
+                B(LdaConstant), U8(8),
+                B(Star), R(14),
+                B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
+                B(Throw),
+                B(Mov), R(context), R(13),
+                B(Ldar), R(5),
+                B(Star), R(14),
+                B(Ldar), R(1),
+                B(Star), R(15),
+                B(CallRuntime), U16(Runtime::k_Call), R(14), U8(2),
+                B(Jump), U8(30),
+                B(Star), R(15),
+                B(LdaConstant), U8(5),
+                B(Star), R(14),
+                B(Ldar), R(closure),
+                B(Star), R(16),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(13),
+                B(PushContext), R(9),
+                B(PopContext), R(9),
+                B(Jump), U8(37),
+                B(Ldar), R(5),
+                B(Star), R(13),
+                B(Ldar), R(1),
+                B(Star), R(14),
+                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
+                B(Star), R(6),
+                B(Star), R(13),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
+                B(JumpIfToBooleanFalse), U8(4),
+                B(Jump), U8(11),
+                B(Ldar), R(6),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(12), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(10),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(10),
+                B(JumpIfTrue), U8(7),
+                B(Jump), U8(8),
+                B(Ldar), R(11),
+  /*   85 S> */ B(Return),
+                B(Ldar), R(11),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*   85 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -384,168 +384,168 @@
 parameter count: 1
 bytecode array length: 369
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(3),
-  B(Mov), R(context), R(11),
-  B(Mov), R(context), R(12),
-  B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  B(Star), R(14),
-  B(LdaConstant), U8(1),
-  B(KeyedLoadIC), R(14), U8(3),
-  B(Star), R(13),
-  B(Call), R(13), R(14), U8(1), U8(1),
-  B(Star), R(1),
-  B(Ldar), R(1),
-  B(Star), R(15),
-  B(LoadIC), R(15), U8(2), U8(7),
-  B(Star), R(14),
-  B(Call), R(14), R(15), U8(1), U8(5),
-  B(Star), R(2),
-  B(Star), R(13),
-  B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
-  B(LogicalNot),
-  B(JumpIfFalse), U8(11),
-  B(Ldar), R(2),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
-  B(Ldar), R(2),
-  B(Star), R(13),
-  B(LoadIC), R(13), U8(3), U8(9),
-  B(JumpIfToBooleanTrue), U8(50),
-  B(LdaSmi), U8(2),
-  B(Star), R(3),
-  B(Ldar), R(2),
-  B(Star), R(13),
-  B(LoadIC), R(13), U8(4), U8(11),
-  B(Star), R(0),
-  B(Ldar), R(4),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(7),
-  B(Star), R(13),
-  B(LdaSmi), U8(10),
-  B(TestEqual), R(13),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(-75),
-  B(Ldar), R(7),
-  B(Star), R(13),
-  B(LdaSmi), U8(20),
-  B(TestEqual), R(13),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(7),
-  B(LdaZero),
-  B(Star), R(3),
-  B(Jump), U8(-92),
-  B(Jump), U8(47),
-  B(Star), R(14),
-  B(LdaConstant), U8(5),
-  B(Star), R(13),
-  B(Ldar), R(closure),
-  B(Star), R(15),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
-  B(Star), R(12),
-  B(PushContext), R(8),
-  B(Ldar), R(3),
-  B(Star), R(13),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(13),
-  B(JumpIfFalse), U8(6),
-  B(LdaSmi), U8(1),
-  B(Star), R(3),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
-  B(PopContext), R(8),
-  B(LdaSmi), U8(-1),
-  B(Star), R(9),
-  B(Jump), U8(7),
-  B(Star), R(10),
-  B(LdaZero),
-  B(Star), R(9),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Star), R(11),
-  B(Ldar), R(3),
-  B(Star), R(12),
-  B(LdaZero),
-  B(TestEqualStrict), R(12),
-  B(JumpIfTrue), U8(9),
-  B(Ldar), R(1),
-  B(Star), R(12),
-  B(LdaUndefined),
-  B(TestEqualStrict), R(12),
-  B(LogicalNot),
-  B(JumpIfFalseConstant), U8(9),
-  B(Ldar), R(1),
-  B(Star), R(12),
-  B(LoadIC), R(12), U8(6), U8(13),
-  B(Star), R(5),
-  B(Star), R(12),
-  B(LdaNull),
-  B(TestEqual), R(12),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(124),
-  B(Ldar), R(3),
-  B(Star), R(12),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(12),
-  B(JumpIfFalse), U8(79),
-  B(Ldar), R(5),
-  B(TypeOf),
-  B(Star), R(12),
-  B(LdaConstant), U8(7),
-  B(TestEqualStrict), R(12),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(18),
-  B(Wide), B(LdaSmi), U16(139),
-  B(Star), R(12),
-  B(LdaConstant), U8(8),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
-  B(Throw),
-  B(Mov), R(context), R(12),
-  B(Ldar), R(5),
-  B(Star), R(13),
-  B(Ldar), R(1),
-  B(Star), R(14),
-  B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
-  B(Jump), U8(30),
-  B(Star), R(14),
-  B(LdaConstant), U8(5),
-  B(Star), R(13),
-  B(Ldar), R(closure),
-  B(Star), R(15),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
-  B(Star), R(12),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(12),
-  B(PushContext), R(8),
-  B(PopContext), R(8),
-  B(Jump), U8(37),
-  B(Ldar), R(5),
-  B(Star), R(12),
-  B(Ldar), R(1),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
-  B(Star), R(6),
-  B(Star), R(12),
-  B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
-  B(JumpIfToBooleanFalse), U8(4),
-  B(Jump), U8(11),
-  B(Ldar), R(6),
-  B(Star), R(12),
-  B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
-  B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
-  B(LdaZero),
-  B(TestEqualStrict), R(9),
-  B(JumpIfTrue), U8(4),
-  B(Jump), U8(5),
-  B(Ldar), R(10),
-  B(ReThrow),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(LdaUndefined),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(3),
+                B(Mov), R(context), R(11),
+                B(Mov), R(context), R(12),
+  /*   48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
+                B(Star), R(14),
+  /*   48 E> */ B(LdaConstant), U8(1),
+                B(KeyedLoadIC), R(14), U8(3),
+                B(Star), R(13),
+  /*   48 E> */ B(Call), R(13), R(14), U8(1), U8(1),
+  /*   48 E> */ B(Star), R(1),
+  /*   45 S> */ B(Ldar), R(1),
+                B(Star), R(15),
+                B(LoadIC), R(15), U8(2), U8(7),
+                B(Star), R(14),
+  /*   45 E> */ B(Call), R(14), R(15), U8(1), U8(5),
+  /*   45 E> */ B(Star), R(2),
+                B(Star), R(13),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(13), U8(1),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalse), U8(11),
+                B(Ldar), R(2),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
+                B(Ldar), R(2),
+                B(Star), R(13),
+                B(LoadIC), R(13), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(50),
+                B(LdaSmi), U8(2),
+                B(Star), R(3),
+                B(Ldar), R(2),
+                B(Star), R(13),
+                B(LoadIC), R(13), U8(4), U8(11),
+                B(Star), R(0),
+                B(Ldar), R(4),
+  /*   34 E> */ B(StackCheck),
+                B(Ldar), R(0),
+                B(Star), R(7),
+  /*   66 S> */ B(Star), R(13),
+                B(LdaSmi), U8(10),
+  /*   72 E> */ B(TestEqual), R(13),
+                B(JumpIfFalse), U8(4),
+  /*   79 S> */ B(Jump), U8(17),
+  /*   91 S> */ B(Ldar), R(7),
+                B(Star), R(13),
+                B(LdaSmi), U8(20),
+  /*   97 E> */ B(TestEqual), R(13),
+                B(JumpIfFalse), U8(4),
+  /*  104 S> */ B(Jump), U8(7),
+                B(LdaZero),
+                B(Star), R(3),
+                B(Jump), U8(-92),
+                B(Jump), U8(47),
+                B(Star), R(14),
+                B(LdaConstant), U8(5),
+                B(Star), R(13),
+                B(Ldar), R(closure),
+                B(Star), R(15),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
+                B(Star), R(12),
+                B(PushContext), R(8),
+                B(Ldar), R(3),
+                B(Star), R(13),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(13),
+                B(JumpIfFalse), U8(6),
+                B(LdaSmi), U8(1),
+                B(Star), R(3),
+                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
+                B(PopContext), R(8),
+                B(LdaSmi), U8(-1),
+                B(Star), R(9),
+                B(Jump), U8(7),
+                B(Star), R(10),
+                B(LdaZero),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(11),
+                B(Ldar), R(3),
+                B(Star), R(12),
+                B(LdaZero),
+                B(TestEqualStrict), R(12),
+                B(JumpIfTrue), U8(9),
+                B(Ldar), R(1),
+                B(Star), R(12),
+                B(LdaUndefined),
+                B(TestEqualStrict), R(12),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalseConstant), U8(9),
+                B(Ldar), R(1),
+                B(Star), R(12),
+                B(LoadIC), R(12), U8(6), U8(13),
+                B(Star), R(5),
+                B(Star), R(12),
+                B(LdaNull),
+                B(TestEqual), R(12),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(124),
+                B(Ldar), R(3),
+                B(Star), R(12),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(12),
+                B(JumpIfFalse), U8(79),
+                B(Ldar), R(5),
+                B(TypeOf),
+                B(Star), R(12),
+                B(LdaConstant), U8(7),
+                B(TestEqualStrict), R(12),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(18),
+                B(Wide), B(LdaSmi), U16(129),
+                B(Star), R(12),
+                B(LdaConstant), U8(8),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
+                B(Throw),
+                B(Mov), R(context), R(12),
+                B(Ldar), R(5),
+                B(Star), R(13),
+                B(Ldar), R(1),
+                B(Star), R(14),
+                B(CallRuntime), U16(Runtime::k_Call), R(13), U8(2),
+                B(Jump), U8(30),
+                B(Star), R(14),
+                B(LdaConstant), U8(5),
+                B(Star), R(13),
+                B(Ldar), R(closure),
+                B(Star), R(15),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(12),
+                B(PushContext), R(8),
+                B(PopContext), R(8),
+                B(Jump), U8(37),
+                B(Ldar), R(5),
+                B(Star), R(12),
+                B(Ldar), R(1),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
+                B(Star), R(6),
+                B(Star), R(12),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
+                B(JumpIfToBooleanFalse), U8(4),
+                B(Jump), U8(11),
+                B(Ldar), R(6),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(9),
+                B(JumpIfTrue), U8(4),
+                B(Jump), U8(5),
+                B(Ldar), R(10),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*  113 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -574,170 +574,170 @@
 parameter count: 1
 bytecode array length: 379
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(8),
-  B(Star), R(6),
-  B(LdaUndefined),
-  B(Star), R(3),
-  B(LdaZero),
-  B(Star), R(2),
-  B(Mov), R(context), R(10),
-  B(Mov), R(context), R(11),
-  B(CreateArrayLiteral), U8(1), U8(1), U8(3),
-  B(Star), R(13),
-  B(LdaConstant), U8(2),
-  B(KeyedLoadIC), R(13), U8(3),
-  B(Star), R(12),
-  B(Call), R(12), R(13), U8(1), U8(1),
-  B(Star), R(0),
-  B(Ldar), R(0),
-  B(Star), R(14),
-  B(LoadIC), R(14), U8(3), U8(7),
-  B(Star), R(13),
-  B(Call), R(13), R(14), U8(1), U8(5),
-  B(Star), R(1),
-  B(Star), R(12),
-  B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
-  B(LogicalNot),
-  B(JumpIfFalse), U8(11),
-  B(Ldar), R(1),
-  B(Star), R(12),
-  B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
-  B(Ldar), R(1),
-  B(Star), R(12),
-  B(LoadIC), R(12), U8(4), U8(9),
-  B(JumpIfToBooleanTrue), U8(42),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(Ldar), R(6),
-  B(Star), R(12),
-  B(Ldar), R(1),
-  B(Star), R(13),
-  B(LoadIC), R(13), U8(5), U8(11),
-  B(StoreICSloppy), R(12), U8(6), U8(13),
-  B(Ldar), R(3),
-  B(StackCheck),
-  B(Ldar), R(6),
-  B(Star), R(12),
-  B(LoadIC), R(12), U8(6), U8(15),
-  B(Star), R(9),
-  B(LdaZero),
-  B(Star), R(8),
-  B(Jump), U8(63),
-  B(Jump), U8(-84),
-  B(Jump), U8(47),
-  B(Star), R(13),
-  B(LdaConstant), U8(7),
-  B(Star), R(12),
-  B(Ldar), R(closure),
-  B(Star), R(14),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
-  B(Star), R(11),
-  B(PushContext), R(7),
-  B(Ldar), R(2),
-  B(Star), R(12),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(12),
-  B(JumpIfFalse), U8(6),
-  B(LdaSmi), U8(1),
-  B(Star), R(2),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Star), R(12),
-  B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
-  B(PopContext), R(7),
-  B(LdaSmi), U8(-1),
-  B(Star), R(8),
-  B(Jump), U8(8),
-  B(Star), R(9),
-  B(LdaSmi), U8(1),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Star), R(10),
-  B(Ldar), R(2),
-  B(Star), R(11),
-  B(LdaZero),
-  B(TestEqualStrict), R(11),
-  B(JumpIfTrue), U8(9),
-  B(Ldar), R(0),
-  B(Star), R(11),
-  B(LdaUndefined),
-  B(TestEqualStrict), R(11),
-  B(LogicalNot),
-  B(JumpIfFalseConstant), U8(11),
-  B(Ldar), R(0),
-  B(Star), R(11),
-  B(LoadIC), R(11), U8(8), U8(17),
-  B(Star), R(4),
-  B(Star), R(11),
-  B(LdaNull),
-  B(TestEqual), R(11),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(124),
-  B(Ldar), R(2),
-  B(Star), R(11),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(11),
-  B(JumpIfFalse), U8(79),
-  B(Ldar), R(4),
-  B(TypeOf),
-  B(Star), R(11),
-  B(LdaConstant), U8(9),
-  B(TestEqualStrict), R(11),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(18),
-  B(Wide), B(LdaSmi), U16(139),
-  B(Star), R(11),
-  B(LdaConstant), U8(10),
-  B(Star), R(12),
-  B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
-  B(Throw),
-  B(Mov), R(context), R(11),
-  B(Ldar), R(4),
-  B(Star), R(12),
-  B(Ldar), R(0),
-  B(Star), R(13),
-  B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
-  B(Jump), U8(30),
-  B(Star), R(13),
-  B(LdaConstant), U8(7),
-  B(Star), R(12),
-  B(Ldar), R(closure),
-  B(Star), R(14),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
-  B(Star), R(11),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(11),
-  B(PushContext), R(7),
-  B(PopContext), R(7),
-  B(Jump), U8(37),
-  B(Ldar), R(4),
-  B(Star), R(11),
-  B(Ldar), R(0),
-  B(Star), R(12),
-  B(CallRuntime), U16(Runtime::k_Call), R(11), U8(2),
-  B(Star), R(5),
-  B(Star), R(11),
-  B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(11), U8(1),
-  B(JumpIfToBooleanFalse), U8(4),
-  B(Jump), U8(11),
-  B(Ldar), R(5),
-  B(Star), R(11),
-  B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
-  B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(10), U8(1),
-  B(LdaZero),
-  B(TestEqualStrict), R(8),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(8),
-  B(JumpIfTrue), U8(7),
-  B(Jump), U8(8),
-  B(Ldar), R(9),
-  B(Return),
-  B(Ldar), R(9),
-  B(ReThrow),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(8),
+  /*   42 E> */ B(Star), R(6),
+                B(LdaUndefined),
+                B(Star), R(3),
+                B(LdaZero),
+                B(Star), R(2),
+                B(Mov), R(context), R(10),
+                B(Mov), R(context), R(11),
+  /*   77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3),
+                B(Star), R(13),
+  /*   77 E> */ B(LdaConstant), U8(2),
+                B(KeyedLoadIC), R(13), U8(3),
+                B(Star), R(12),
+  /*   77 E> */ B(Call), R(12), R(13), U8(1), U8(1),
+  /*   77 E> */ B(Star), R(0),
+  /*   74 S> */ B(Ldar), R(0),
+                B(Star), R(14),
+                B(LoadIC), R(14), U8(3), U8(7),
+                B(Star), R(13),
+  /*   74 E> */ B(Call), R(13), R(14), U8(1), U8(5),
+  /*   74 E> */ B(Star), R(1),
+                B(Star), R(12),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(12), U8(1),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalse), U8(11),
+                B(Ldar), R(1),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
+                B(Ldar), R(1),
+                B(Star), R(12),
+                B(LoadIC), R(12), U8(4), U8(9),
+                B(JumpIfToBooleanTrue), U8(42),
+                B(LdaSmi), U8(2),
+                B(Star), R(2),
+  /*   67 E> */ B(Ldar), R(6),
+                B(Star), R(12),
+                B(Ldar), R(1),
+                B(Star), R(13),
+                B(LoadIC), R(13), U8(5), U8(11),
+                B(StoreICSloppy), R(12), U8(6), U8(13),
+                B(Ldar), R(3),
+  /*   62 E> */ B(StackCheck),
+  /*   88 S> */ B(Ldar), R(6),
+                B(Star), R(12),
+  /*   96 E> */ B(LoadIC), R(12), U8(6), U8(15),
+                B(Star), R(9),
+                B(LdaZero),
+                B(Star), R(8),
+                B(Jump), U8(63),
+                B(Jump), U8(-84),
+                B(Jump), U8(47),
+                B(Star), R(13),
+                B(LdaConstant), U8(7),
+                B(Star), R(12),
+                B(Ldar), R(closure),
+                B(Star), R(14),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
+                B(Star), R(11),
+                B(PushContext), R(7),
+                B(Ldar), R(2),
+                B(Star), R(12),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(12),
+                B(JumpIfFalse), U8(6),
+                B(LdaSmi), U8(1),
+                B(Star), R(2),
+                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
+                B(PopContext), R(7),
+                B(LdaSmi), U8(-1),
+                B(Star), R(8),
+                B(Jump), U8(8),
+                B(Star), R(9),
+                B(LdaSmi), U8(1),
+                B(Star), R(8),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(10),
+                B(Ldar), R(2),
+                B(Star), R(11),
+                B(LdaZero),
+                B(TestEqualStrict), R(11),
+                B(JumpIfTrue), U8(9),
+                B(Ldar), R(0),
+                B(Star), R(11),
+                B(LdaUndefined),
+                B(TestEqualStrict), R(11),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalseConstant), U8(11),
+                B(Ldar), R(0),
+                B(Star), R(11),
+                B(LoadIC), R(11), U8(8), U8(17),
+                B(Star), R(4),
+                B(Star), R(11),
+                B(LdaNull),
+                B(TestEqual), R(11),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(124),
+                B(Ldar), R(2),
+                B(Star), R(11),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(11),
+                B(JumpIfFalse), U8(79),
+                B(Ldar), R(4),
+                B(TypeOf),
+                B(Star), R(11),
+                B(LdaConstant), U8(9),
+                B(TestEqualStrict), R(11),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(18),
+                B(Wide), B(LdaSmi), U16(129),
+                B(Star), R(11),
+                B(LdaConstant), U8(10),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
+                B(Throw),
+                B(Mov), R(context), R(11),
+                B(Ldar), R(4),
+                B(Star), R(12),
+                B(Ldar), R(0),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::k_Call), R(12), U8(2),
+                B(Jump), U8(30),
+                B(Star), R(13),
+                B(LdaConstant), U8(7),
+                B(Star), R(12),
+                B(Ldar), R(closure),
+                B(Star), R(14),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
+                B(Star), R(11),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(11),
+                B(PushContext), R(7),
+                B(PopContext), R(7),
+                B(Jump), U8(37),
+                B(Ldar), R(4),
+                B(Star), R(11),
+                B(Ldar), R(0),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::k_Call), R(11), U8(2),
+                B(Star), R(5),
+                B(Star), R(11),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(11), U8(1),
+                B(JumpIfToBooleanFalse), U8(4),
+                B(Jump), U8(11),
+                B(Ldar), R(5),
+                B(Star), R(11),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(10), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(8),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(8),
+                B(JumpIfTrue), U8(7),
+                B(Jump), U8(8),
+                B(Ldar), R(9),
+  /*  105 S> */ B(Return),
+                B(Ldar), R(9),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*  105 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden b/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden
index fe7176c..f6b863f 100644
--- a/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 5
 bytecodes: [
-  B(StackCheck),
-  B(CreateClosure), U8(0), U8(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateClosure), U8(0), U8(0),
+  /*   55 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -33,13 +33,13 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(1),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(Call), R(0), R(1), U8(1), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaUndefined),
+                B(Star), R(1),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   56 E> */ B(Call), R(0), R(1), U8(1), U8(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -55,15 +55,15 @@
 parameter count: 1
 bytecode array length: 19
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Star), R(1),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(2),
-  B(Call), R(0), R(1), U8(2), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaUndefined),
+                B(Star), R(1),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+                B(Star), R(2),
+  /*   67 E> */ B(Call), R(0), R(1), U8(2), U8(1),
+  /*   71 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/Generators.golden b/test/cctest/interpreter/bytecode_expectations/Generators.golden
new file mode 100644
index 0000000..46a6b4a
--- /dev/null
+++ b/test/cctest/interpreter/bytecode_expectations/Generators.golden
@@ -0,0 +1,646 @@
+#
+# Autogenerated by generate-bytecode-expectations.
+#
+
+---
+pool type: mixed
+execute: yes
+wrap: no
+test function name: f
+ignition generators: yes
+
+---
+snippet: "
+  function* f() { }
+"
+frame size: 11
+parameter count: 1
+bytecode array length: 203
+bytecodes: [
+                B(Ldar), R(new_target),
+                B(JumpIfUndefined), U8(20),
+                B(ResumeGenerator), R(new_target),
+                B(Star), R(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(1),
+                B(JumpIfTrue), U8(57),
+                B(LdaSmi), U8(76),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+  /*   11 E> */ B(StackCheck),
+                B(Mov), R(context), R(4),
+                B(Ldar), R(closure),
+                B(Star), R(5),
+                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
+                B(StaContextSlot), R(context), U8(5),
+                B(Star), R(5),
+                B(LdaContextSlot), R(context), U8(5),
+                B(Star), R(6),
+                B(LdaZero),
+                B(SuspendGenerator), R(6),
+                B(Ldar), R(5),
+  /*   16 S> */ B(Return),
+                B(LdaSmi), U8(-2),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kGeneratorGetInput), R(6), U8(1),
+                B(Star), R(7),
+                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(6), U8(1),
+                B(Star), R(8),
+                B(LdaZero),
+                B(TestEqualStrict), R(8),
+                B(JumpIfTrue), U8(31),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(8),
+                B(JumpIfTrue), U8(22),
+                B(Jump), U8(2),
+                B(Mov), R(7), R(9),
+                B(LdaTrue),
+                B(Star), R(10),
+                B(CallRuntime), U16(Runtime::kCreateIterResultObject), R(9), U8(2),
+                B(Star), R(3),
+                B(LdaZero),
+                B(Star), R(2),
+                B(Jump), U8(36),
+                B(Ldar), R(7),
+                B(Throw),
+                B(LdaUndefined),
+                B(Star), R(5),
+                B(LdaTrue),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(Star), R(2),
+                B(Jump), U8(14),
+                B(LdaSmi), U8(-1),
+                B(Star), R(2),
+                B(Jump), U8(8),
+                B(Star), R(3),
+                B(LdaSmi), U8(2),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(4),
+                B(LdaContextSlot), R(context), U8(5),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kGeneratorClose), R(5), U8(1),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(16),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(13),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(Jump), U8(11),
+                B(Ldar), R(3),
+  /*   16 S> */ B(Return),
+                B(Ldar), R(3),
+  /*   16 S> */ B(Return),
+                B(Ldar), R(3),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*   16 S> */ B(Return),
+]
+constant pool: [
+]
+handlers: [
+  [38, 139, 145],
+]
+
+---
+snippet: "
+  function* f() { yield 42 }
+"
+frame size: 11
+parameter count: 1
+bytecode array length: 297
+bytecodes: [
+                B(Ldar), R(new_target),
+                B(JumpIfUndefined), U8(26),
+                B(ResumeGenerator), R(new_target),
+                B(Star), R(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(1),
+                B(JumpIfTrue), U8(63),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(1),
+                B(JumpIfTrueConstant), U8(0),
+                B(LdaSmi), U8(76),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+  /*   11 E> */ B(StackCheck),
+                B(Mov), R(context), R(4),
+                B(Ldar), R(closure),
+                B(Star), R(5),
+                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
+                B(StaContextSlot), R(context), U8(5),
+                B(Star), R(5),
+                B(LdaContextSlot), R(context), U8(5),
+                B(Star), R(6),
+                B(LdaZero),
+                B(SuspendGenerator), R(6),
+                B(Ldar), R(5),
+  /*   25 S> */ B(Return),
+                B(LdaSmi), U8(-2),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kGeneratorGetInput), R(6), U8(1),
+                B(Star), R(7),
+                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(6), U8(1),
+                B(Star), R(8),
+                B(LdaZero),
+                B(TestEqualStrict), R(8),
+                B(JumpIfTrue), U8(31),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(8),
+                B(JumpIfTrue), U8(22),
+                B(Jump), U8(2),
+                B(Mov), R(7), R(9),
+                B(LdaTrue),
+                B(Star), R(10),
+                B(CallRuntime), U16(Runtime::kCreateIterResultObject), R(9), U8(2),
+                B(Star), R(3),
+                B(LdaZero),
+                B(Star), R(2),
+                B(Jump), U8(115),
+                B(Ldar), R(7),
+                B(Throw),
+  /*   16 S> */ B(LdaSmi), U8(42),
+                B(Star), R(5),
+                B(LdaFalse),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
+                B(Star), R(7),
+                B(LdaContextSlot), R(context), U8(5),
+                B(Star), R(5),
+                B(LdaSmi), U8(1),
+                B(SuspendGenerator), R(5),
+                B(Ldar), R(7),
+  /*   25 S> */ B(Return),
+                B(LdaSmi), U8(-2),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kGeneratorGetInput), R(5), U8(1),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(5), U8(1),
+                B(Star), R(8),
+                B(LdaZero),
+                B(TestEqualStrict), R(8),
+                B(JumpIfTrue), U8(32),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(8),
+                B(JumpIfTrue), U8(23),
+                B(Jump), U8(2),
+                B(Mov), R(6), R(9),
+                B(LdaTrue),
+                B(Star), R(10),
+                B(CallRuntime), U16(Runtime::kCreateIterResultObject), R(9), U8(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(Star), R(2),
+                B(Jump), U8(36),
+                B(Ldar), R(6),
+                B(Throw),
+                B(LdaUndefined),
+                B(Star), R(5),
+                B(LdaTrue),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(2),
+                B(Star), R(2),
+                B(Jump), U8(14),
+                B(LdaSmi), U8(-1),
+                B(Star), R(2),
+                B(Jump), U8(8),
+                B(Star), R(3),
+                B(LdaSmi), U8(3),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(4),
+                B(LdaContextSlot), R(context), U8(5),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kGeneratorClose), R(5), U8(1),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(22),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(19),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(16),
+                B(LdaSmi), U8(3),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(13),
+                B(Jump), U8(14),
+                B(Ldar), R(3),
+  /*   25 S> */ B(Return),
+                B(Ldar), R(3),
+  /*   25 S> */ B(Return),
+                B(Ldar), R(3),
+  /*   25 S> */ B(Return),
+                B(Ldar), R(3),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*   25 S> */ B(Return),
+]
+constant pool: [
+  kInstanceTypeDontCare,
+]
+handlers: [
+  [44, 224, 230],
+]
+
+---
+snippet: "
+  function* f() { for (let x of [42]) yield x }
+"
+frame size: 17
+parameter count: 1
+bytecode array length: 808
+bytecodes: [
+                B(Ldar), R(new_target),
+                B(JumpIfUndefined), U8(26),
+                B(ResumeGenerator), R(new_target),
+                B(Star), R(3),
+                B(LdaZero),
+                B(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(63),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(3),
+                B(JumpIfTrueConstant), U8(3),
+                B(LdaSmi), U8(76),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+  /*   11 E> */ B(StackCheck),
+                B(Mov), R(context), R(6),
+                B(Ldar), R(closure),
+                B(Star), R(7),
+                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(8),
+                B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(7), U8(2),
+                B(StaContextSlot), R(context), U8(5),
+                B(Star), R(7),
+                B(LdaContextSlot), R(context), U8(5),
+                B(Star), R(8),
+                B(LdaZero),
+                B(SuspendGenerator), R(8),
+                B(Ldar), R(7),
+  /*   44 S> */ B(Return),
+                B(LdaSmi), U8(-2),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kGeneratorGetInput), R(8), U8(1),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(8), U8(1),
+                B(Star), R(10),
+                B(LdaZero),
+                B(TestEqualStrict), R(10),
+                B(JumpIfTrue), U8(31),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(10),
+                B(JumpIfTrue), U8(22),
+                B(Jump), U8(2),
+                B(Mov), R(9), R(11),
+                B(LdaTrue),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kCreateIterResultObject), R(11), U8(2),
+                B(Star), R(5),
+                B(LdaZero),
+                B(Star), R(4),
+                B(JumpConstant), U8(17),
+                B(Ldar), R(9),
+                B(Throw),
+                B(LdaConstant), U8(0),
+                B(Star), R(7),
+                B(Ldar), R(closure),
+                B(Star), R(8),
+                B(CallRuntime), U16(Runtime::kPushBlockContext), R(7), U8(2),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+                B(StaContextSlot), R(1), U8(10),
+                B(LdaZero),
+                B(StaContextSlot), R(1), U8(9),
+                B(Mov), R(context), R(9),
+                B(Mov), R(context), R(10),
+  /*   30 S> */ B(CreateArrayLiteral), U8(1), U8(0), U8(3),
+                B(Star), R(12),
+  /*   30 E> */ B(LdaConstant), U8(2),
+                B(KeyedLoadIC), R(12), U8(3),
+                B(Star), R(11),
+  /*   30 E> */ B(Call), R(11), R(12), U8(1), U8(1),
+  /*   30 E> */ B(StaContextSlot), R(1), U8(7),
+                B(LdaSmi), U8(-2),
+                B(TestEqual), R(3),
+                B(JumpIfTrue), U8(17),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(3),
+                B(JumpIfTrueConstant), U8(9),
+                B(LdaSmi), U8(76),
+                B(Star), R(11),
+                B(CallRuntime), U16(Runtime::kAbort), R(11), U8(1),
+  /*   27 S> */ B(LdaContextSlot), R(1), U8(7),
+                B(Star), R(13),
+                B(LoadIC), R(13), U8(4), U8(7),
+                B(Star), R(12),
+  /*   27 E> */ B(Call), R(12), R(13), U8(1), U8(5),
+  /*   27 E> */ B(StaContextSlot), R(1), U8(8),
+                B(Star), R(11),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(11), U8(1),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalse), U8(12),
+                B(LdaContextSlot), R(1), U8(8),
+                B(Star), R(11),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
+                B(LdaContextSlot), R(1), U8(8),
+                B(Star), R(11),
+                B(LoadIC), R(11), U8(5), U8(9),
+                B(JumpIfToBooleanTrueConstant), U8(10),
+                B(LdaSmi), U8(2),
+                B(StaContextSlot), R(1), U8(9),
+                B(LdaContextSlot), R(1), U8(8),
+                B(Star), R(11),
+                B(LoadIC), R(11), U8(6), U8(11),
+                B(StaContextSlot), R(1), U8(6),
+                B(LdaContextSlot), R(1), U8(10),
+  /*   16 E> */ B(StackCheck),
+                B(LdaConstant), U8(7),
+                B(Star), R(11),
+                B(Ldar), R(closure),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kPushBlockContext), R(11), U8(2),
+                B(PushContext), R(2),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(LdaContextSlot), R(1), U8(6),
+                B(StaContextSlot), R(context), U8(4),
+  /*   36 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(8),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(12), U8(1),
+                B(Star), R(11),
+                B(LdaFalse),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(11), U8(2),
+                B(Star), R(13),
+                B(LdaContextSlot), R(1), U8(5),
+                B(Star), R(11),
+                B(LdaSmi), U8(1),
+                B(SuspendGenerator), R(11),
+                B(Ldar), R(13),
+  /*   44 S> */ B(Return),
+                B(LdaSmi), U8(-2),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kGeneratorGetInput), R(11), U8(1),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(11), U8(1),
+                B(Star), R(14),
+                B(LdaZero),
+                B(TestEqualStrict), R(14),
+                B(JumpIfTrue), U8(45),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(14),
+                B(JumpIfTrue), U8(36),
+                B(Jump), U8(2),
+                B(Mov), R(12), R(15),
+                B(LdaTrue),
+                B(Star), R(16),
+                B(CallRuntime), U16(Runtime::kCreateIterResultObject), R(15), U8(2),
+                B(PopContext), R(2),
+                B(PopContext), R(2),
+                B(PopContext), R(2),
+                B(PopContext), R(2),
+                B(PopContext), R(2),
+                B(PopContext), R(2),
+                B(PopContext), R(2),
+                B(Star), R(8),
+                B(LdaZero),
+                B(Star), R(7),
+                B(Jump), U8(78),
+                B(Ldar), R(12),
+                B(Throw),
+                B(Ldar), R(12),
+                B(PopContext), R(2),
+                B(LdaZero),
+                B(StaContextSlot), R(1), U8(9),
+                B(Wide), B(Jump), U16(-230),
+                B(Jump), U8(49),
+                B(Star), R(12),
+                B(LdaConstant), U8(11),
+                B(Star), R(11),
+                B(Ldar), R(closure),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(11), U8(3),
+                B(Star), R(10),
+                B(PushContext), R(2),
+                B(LdaContextSlot), R(1), U8(9),
+                B(Star), R(11),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(11),
+                B(JumpIfFalse), U8(7),
+                B(LdaSmi), U8(1),
+                B(StaContextSlot), R(1), U8(9),
+                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(11),
+                B(CallRuntime), U16(Runtime::kReThrow), R(11), U8(1),
+                B(PopContext), R(2),
+                B(LdaSmi), U8(-1),
+                B(Star), R(7),
+                B(Jump), U8(8),
+                B(Star), R(8),
+                B(LdaSmi), U8(1),
+                B(Star), R(7),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(9),
+                B(LdaContextSlot), R(1), U8(9),
+                B(Star), R(10),
+                B(LdaZero),
+                B(TestEqualStrict), R(10),
+                B(JumpIfTrue), U8(10),
+                B(LdaContextSlot), R(1), U8(7),
+                B(Star), R(10),
+                B(LdaUndefined),
+                B(TestEqualStrict), R(10),
+                B(ToBooleanLogicalNot),
+                B(JumpIfFalseConstant), U8(16),
+                B(LdaContextSlot), R(1), U8(7),
+                B(Star), R(10),
+                B(LoadIC), R(10), U8(12), U8(13),
+                B(StaContextSlot), R(1), U8(11),
+                B(LdaContextSlot), R(1), U8(11),
+                B(Star), R(10),
+                B(LdaNull),
+                B(TestEqual), R(10),
+                B(JumpIfFalse), U8(4),
+                B(JumpConstant), U8(15),
+                B(LdaContextSlot), R(1), U8(9),
+                B(Star), R(10),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(10),
+                B(JumpIfFalse), U8(82),
+                B(LdaContextSlot), R(1), U8(11),
+                B(TypeOf),
+                B(Star), R(10),
+                B(LdaConstant), U8(13),
+                B(TestEqualStrict), R(10),
+                B(JumpIfFalse), U8(4),
+                B(Jump), U8(18),
+                B(Wide), B(LdaSmi), U16(129),
+                B(Star), R(10),
+                B(LdaConstant), U8(14),
+                B(Star), R(11),
+                B(CallRuntime), U16(Runtime::kNewTypeError), R(10), U8(2),
+                B(Throw),
+                B(Mov), R(context), R(10),
+                B(LdaContextSlot), R(1), U8(11),
+                B(Star), R(11),
+                B(LdaContextSlot), R(1), U8(7),
+                B(Star), R(12),
+                B(CallRuntime), U16(Runtime::k_Call), R(11), U8(2),
+                B(Jump), U8(30),
+                B(Star), R(12),
+                B(LdaConstant), U8(11),
+                B(Star), R(11),
+                B(Ldar), R(closure),
+                B(Star), R(13),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(11), U8(3),
+                B(Star), R(10),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(10),
+                B(PushContext), R(2),
+                B(PopContext), R(2),
+                B(Jump), U8(44),
+                B(LdaContextSlot), R(1), U8(11),
+                B(Star), R(10),
+                B(LdaContextSlot), R(1), U8(7),
+                B(Star), R(11),
+                B(CallRuntime), U16(Runtime::k_Call), R(10), U8(2),
+                B(StaContextSlot), R(1), U8(12),
+                B(LdaContextSlot), R(1), U8(12),
+                B(Star), R(10),
+                B(InvokeIntrinsic), U16(Runtime::k_IsJSReceiver), R(10), U8(1),
+                B(JumpIfToBooleanFalse), U8(4),
+                B(Jump), U8(12),
+                B(LdaContextSlot), R(1), U8(12),
+                B(Star), R(10),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(9), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(7),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(7),
+                B(JumpIfTrue), U8(18),
+                B(Jump), U8(30),
+                B(Ldar), R(8),
+                B(PopContext), R(1),
+                B(PopContext), R(1),
+                B(Star), R(5),
+                B(LdaSmi), U8(1),
+                B(Star), R(4),
+                B(Jump), U8(49),
+                B(Ldar), R(8),
+                B(PopContext), R(1),
+                B(PopContext), R(1),
+                B(Star), R(5),
+                B(LdaSmi), U8(2),
+                B(Star), R(4),
+                B(Jump), U8(35),
+                B(PopContext), R(1),
+                B(LdaUndefined),
+                B(Star), R(7),
+                B(LdaTrue),
+                B(Star), R(8),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2),
+                B(Star), R(5),
+                B(LdaSmi), U8(3),
+                B(Star), R(4),
+                B(Jump), U8(14),
+                B(LdaSmi), U8(-1),
+                B(Star), R(4),
+                B(Jump), U8(8),
+                B(Star), R(5),
+                B(LdaSmi), U8(4),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(6),
+                B(LdaContextSlot), R(context), U8(5),
+                B(Star), R(7),
+                B(CallRuntime), U16(Runtime::kGeneratorClose), R(7), U8(1),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(6), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(4),
+                B(JumpIfTrue), U8(28),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(4),
+                B(JumpIfTrue), U8(25),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(4),
+                B(JumpIfTrue), U8(22),
+                B(LdaSmi), U8(3),
+                B(TestEqualStrict), R(4),
+                B(JumpIfTrue), U8(19),
+                B(LdaSmi), U8(4),
+                B(TestEqualStrict), R(4),
+                B(JumpIfTrue), U8(16),
+                B(Jump), U8(17),
+                B(Ldar), R(5),
+  /*   44 S> */ B(Return),
+                B(Ldar), R(5),
+  /*   44 S> */ B(Return),
+                B(Ldar), R(5),
+                B(ReThrow),
+                B(Ldar), R(5),
+  /*   44 S> */ B(Return),
+                B(Ldar), R(5),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*   44 S> */ B(Return),
+]
+constant pool: [
+  InstanceType::FIXED_ARRAY_TYPE,
+  InstanceType::FIXED_ARRAY_TYPE,
+  InstanceType::SYMBOL_TYPE,
+  kInstanceTypeDontCare,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+  InstanceType::FIXED_ARRAY_TYPE,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+  kInstanceTypeDontCare,
+  kInstanceTypeDontCare,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+  kInstanceTypeDontCare,
+  kInstanceTypeDontCare,
+  kInstanceTypeDontCare,
+]
+handlers: [
+  [44, 726, 732],
+  [156, 462, 468],
+  [159, 413, 415],
+  [570, 585, 587],
+]
+
diff --git a/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden b/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden
index 42a2c5b..89d31ee 100644
--- a/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden
@@ -18,13 +18,13 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(BitwiseAnd), R(0),
-  B(StaGlobalSloppy), U8(0), U8(3),
-  B(Return),
+  /*   26 E> */ B(StackCheck),
+  /*   31 S> */ B(LdaGlobal), U8(0), U8(1),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+                B(BitwiseAnd), R(0),
+  /*   45 E> */ B(StaGlobalSloppy), U8(0), U8(3),
+  /*   51 S> */ B(Return),
 ]
 constant pool: [
   "global",
@@ -42,13 +42,13 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(Add), R(0),
-  B(StaGlobalSloppy), U8(0), U8(3),
-  B(Return),
+  /*   27 E> */ B(StackCheck),
+  /*   32 S> */ B(LdaGlobal), U8(0), U8(1),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+                B(Add), R(0),
+  /*   51 E> */ B(StaGlobalSloppy), U8(0), U8(3),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
   "unallocated",
diff --git a/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden b/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden
index 7d64503..df64018 100644
--- a/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden
+++ b/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden
@@ -16,14 +16,13 @@
 "
 frame size: 0
 parameter count: 1
-bytecode array length: 10
+bytecode array length: 9
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(ToNumber),
-  B(Inc),
-  B(StaGlobalSloppy), U8(0), U8(3),
-  B(Return),
+  /*   26 E> */ B(StackCheck),
+  /*   31 S> */ B(LdaGlobal), U8(0), U8(1),
+                B(Inc),
+  /*   40 E> */ B(StaGlobalSloppy), U8(0), U8(3),
+  /*   48 S> */ B(Return),
 ]
 constant pool: [
   "global",
@@ -41,14 +40,14 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(ToNumber),
-  B(Star), R(0),
-  B(Dec),
-  B(StaGlobalSloppy), U8(0), U8(3),
-  B(Ldar), R(0),
-  B(Return),
+  /*   26 E> */ B(StackCheck),
+  /*   31 S> */ B(LdaGlobal), U8(0), U8(1),
+                B(ToNumber),
+                B(Star), R(0),
+                B(Dec),
+  /*   44 E> */ B(StaGlobalSloppy), U8(0), U8(3),
+                B(Ldar), R(0),
+  /*   48 S> */ B(Return),
 ]
 constant pool: [
   "global",
@@ -64,14 +63,13 @@
 "
 frame size: 0
 parameter count: 1
-bytecode array length: 10
+bytecode array length: 9
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(ToNumber),
-  B(Dec),
-  B(StaGlobalStrict), U8(0), U8(3),
-  B(Return),
+  /*   27 E> */ B(StackCheck),
+  /*   46 S> */ B(LdaGlobal), U8(0), U8(1),
+                B(Dec),
+  /*   55 E> */ B(StaGlobalStrict), U8(0), U8(3),
+  /*   68 S> */ B(Return),
 ]
 constant pool: [
   "unallocated",
@@ -89,14 +87,14 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(ToNumber),
-  B(Star), R(0),
-  B(Inc),
-  B(StaGlobalSloppy), U8(0), U8(3),
-  B(Ldar), R(0),
-  B(Return),
+  /*   27 E> */ B(StackCheck),
+  /*   32 S> */ B(LdaGlobal), U8(0), U8(1),
+                B(ToNumber),
+                B(Star), R(0),
+                B(Inc),
+  /*   50 E> */ B(StaGlobalSloppy), U8(0), U8(3),
+                B(Ldar), R(0),
+  /*   54 S> */ B(Return),
 ]
 constant pool: [
   "unallocated",
diff --git a/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden b/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden
index ffed12e..fc86582 100644
--- a/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden
+++ b/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden
@@ -20,12 +20,12 @@
 parameter count: 1
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(DeletePropertySloppy), R(0),
-  B(Return),
+  /*   32 E> */ B(StackCheck),
+  /*   39 S> */ B(LdaGlobal), U8(0), U8(1),
+                B(Star), R(0),
+                B(LdaConstant), U8(1),
+                B(DeletePropertySloppy), R(0),
+  /*   58 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -47,12 +47,12 @@
 parameter count: 1
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(DeletePropertyStrict), R(0),
-  B(Return),
+  /*   28 E> */ B(StackCheck),
+  /*   51 S> */ B(LdaGlobal), U8(0), U8(1),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+                B(DeletePropertyStrict), R(0),
+  /*   71 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -72,14 +72,14 @@
 parameter count: 1
 bytecode array length: 16
 bytecodes: [
-  B(StackCheck),
-  B(LdaContextSlot), R(context), U8(3),
-  B(Star), R(0),
-  B(LdaContextSlot), R(0), U8(2),
-  B(Star), R(1),
-  B(LdaConstant), U8(0),
-  B(DeletePropertySloppy), R(1),
-  B(Return),
+  /*   32 E> */ B(StackCheck),
+  /*   39 S> */ B(LdaContextSlot), R(context), U8(3),
+                B(Star), R(0),
+                B(LdaContextSlot), R(0), U8(2),
+                B(Star), R(1),
+                B(LdaConstant), U8(0),
+                B(DeletePropertySloppy), R(1),
+  /*   56 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -99,14 +99,14 @@
 parameter count: 1
 bytecode array length: 16
 bytecodes: [
-  B(StackCheck),
-  B(LdaContextSlot), R(context), U8(3),
-  B(Star), R(0),
-  B(LdaContextSlot), R(0), U8(2),
-  B(Star), R(1),
-  B(LdaConstant), U8(0),
-  B(DeletePropertySloppy), R(1),
-  B(Return),
+  /*   18 E> */ B(StackCheck),
+  /*   25 S> */ B(LdaContextSlot), R(context), U8(3),
+                B(Star), R(0),
+                B(LdaContextSlot), R(0), U8(2),
+                B(Star), R(1),
+                B(LdaConstant), U8(0),
+                B(DeletePropertySloppy), R(1),
+  /*   42 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden b/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden
index 2ff2485..bcc4b67 100644
--- a/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden
+++ b/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaConstant), U8(0),
+  /*   46 S> */ B(Return),
 ]
 constant pool: [
   1.2,
@@ -33,11 +33,11 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   47 S> */ B(LdaConstant), U8(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
   1.2,
@@ -54,11 +54,11 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   48 S> */ B(LdaConstant), U8(1),
+  /*   61 S> */ B(Return),
 ]
 constant pool: [
   3.14,
@@ -331,523 +331,523 @@
 parameter count: 1
 bytecode array length: 1033
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(256),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   41 S> */ B(LdaConstant), U8(0),
+  /*   43 E> */ B(Star), R(0),
+  /*   52 S> */ B(LdaConstant), U8(1),
+  /*   54 E> */ B(Star), R(0),
+  /*   63 S> */ B(LdaConstant), U8(2),
+  /*   65 E> */ B(Star), R(0),
+  /*   74 S> */ B(LdaConstant), U8(3),
+  /*   76 E> */ B(Star), R(0),
+  /*   85 S> */ B(LdaConstant), U8(4),
+  /*   87 E> */ B(Star), R(0),
+  /*   96 S> */ B(LdaConstant), U8(5),
+  /*   98 E> */ B(Star), R(0),
+  /*  107 S> */ B(LdaConstant), U8(6),
+  /*  109 E> */ B(Star), R(0),
+  /*  118 S> */ B(LdaConstant), U8(7),
+  /*  120 E> */ B(Star), R(0),
+  /*  129 S> */ B(LdaConstant), U8(8),
+  /*  131 E> */ B(Star), R(0),
+  /*  140 S> */ B(LdaConstant), U8(9),
+  /*  142 E> */ B(Star), R(0),
+  /*  151 S> */ B(LdaConstant), U8(10),
+  /*  153 E> */ B(Star), R(0),
+  /*  162 S> */ B(LdaConstant), U8(11),
+  /*  164 E> */ B(Star), R(0),
+  /*  173 S> */ B(LdaConstant), U8(12),
+  /*  175 E> */ B(Star), R(0),
+  /*  184 S> */ B(LdaConstant), U8(13),
+  /*  186 E> */ B(Star), R(0),
+  /*  195 S> */ B(LdaConstant), U8(14),
+  /*  197 E> */ B(Star), R(0),
+  /*  206 S> */ B(LdaConstant), U8(15),
+  /*  208 E> */ B(Star), R(0),
+  /*  217 S> */ B(LdaConstant), U8(16),
+  /*  219 E> */ B(Star), R(0),
+  /*  228 S> */ B(LdaConstant), U8(17),
+  /*  230 E> */ B(Star), R(0),
+  /*  239 S> */ B(LdaConstant), U8(18),
+  /*  241 E> */ B(Star), R(0),
+  /*  250 S> */ B(LdaConstant), U8(19),
+  /*  252 E> */ B(Star), R(0),
+  /*  261 S> */ B(LdaConstant), U8(20),
+  /*  263 E> */ B(Star), R(0),
+  /*  272 S> */ B(LdaConstant), U8(21),
+  /*  274 E> */ B(Star), R(0),
+  /*  283 S> */ B(LdaConstant), U8(22),
+  /*  285 E> */ B(Star), R(0),
+  /*  294 S> */ B(LdaConstant), U8(23),
+  /*  296 E> */ B(Star), R(0),
+  /*  305 S> */ B(LdaConstant), U8(24),
+  /*  307 E> */ B(Star), R(0),
+  /*  316 S> */ B(LdaConstant), U8(25),
+  /*  318 E> */ B(Star), R(0),
+  /*  327 S> */ B(LdaConstant), U8(26),
+  /*  329 E> */ B(Star), R(0),
+  /*  338 S> */ B(LdaConstant), U8(27),
+  /*  340 E> */ B(Star), R(0),
+  /*  349 S> */ B(LdaConstant), U8(28),
+  /*  351 E> */ B(Star), R(0),
+  /*  360 S> */ B(LdaConstant), U8(29),
+  /*  362 E> */ B(Star), R(0),
+  /*  371 S> */ B(LdaConstant), U8(30),
+  /*  373 E> */ B(Star), R(0),
+  /*  382 S> */ B(LdaConstant), U8(31),
+  /*  384 E> */ B(Star), R(0),
+  /*  393 S> */ B(LdaConstant), U8(32),
+  /*  395 E> */ B(Star), R(0),
+  /*  404 S> */ B(LdaConstant), U8(33),
+  /*  406 E> */ B(Star), R(0),
+  /*  415 S> */ B(LdaConstant), U8(34),
+  /*  417 E> */ B(Star), R(0),
+  /*  426 S> */ B(LdaConstant), U8(35),
+  /*  428 E> */ B(Star), R(0),
+  /*  437 S> */ B(LdaConstant), U8(36),
+  /*  439 E> */ B(Star), R(0),
+  /*  448 S> */ B(LdaConstant), U8(37),
+  /*  450 E> */ B(Star), R(0),
+  /*  459 S> */ B(LdaConstant), U8(38),
+  /*  461 E> */ B(Star), R(0),
+  /*  470 S> */ B(LdaConstant), U8(39),
+  /*  472 E> */ B(Star), R(0),
+  /*  481 S> */ B(LdaConstant), U8(40),
+  /*  483 E> */ B(Star), R(0),
+  /*  492 S> */ B(LdaConstant), U8(41),
+  /*  494 E> */ B(Star), R(0),
+  /*  503 S> */ B(LdaConstant), U8(42),
+  /*  505 E> */ B(Star), R(0),
+  /*  514 S> */ B(LdaConstant), U8(43),
+  /*  516 E> */ B(Star), R(0),
+  /*  525 S> */ B(LdaConstant), U8(44),
+  /*  527 E> */ B(Star), R(0),
+  /*  536 S> */ B(LdaConstant), U8(45),
+  /*  538 E> */ B(Star), R(0),
+  /*  547 S> */ B(LdaConstant), U8(46),
+  /*  549 E> */ B(Star), R(0),
+  /*  558 S> */ B(LdaConstant), U8(47),
+  /*  560 E> */ B(Star), R(0),
+  /*  569 S> */ B(LdaConstant), U8(48),
+  /*  571 E> */ B(Star), R(0),
+  /*  580 S> */ B(LdaConstant), U8(49),
+  /*  582 E> */ B(Star), R(0),
+  /*  591 S> */ B(LdaConstant), U8(50),
+  /*  593 E> */ B(Star), R(0),
+  /*  602 S> */ B(LdaConstant), U8(51),
+  /*  604 E> */ B(Star), R(0),
+  /*  613 S> */ B(LdaConstant), U8(52),
+  /*  615 E> */ B(Star), R(0),
+  /*  624 S> */ B(LdaConstant), U8(53),
+  /*  626 E> */ B(Star), R(0),
+  /*  635 S> */ B(LdaConstant), U8(54),
+  /*  637 E> */ B(Star), R(0),
+  /*  646 S> */ B(LdaConstant), U8(55),
+  /*  648 E> */ B(Star), R(0),
+  /*  657 S> */ B(LdaConstant), U8(56),
+  /*  659 E> */ B(Star), R(0),
+  /*  668 S> */ B(LdaConstant), U8(57),
+  /*  670 E> */ B(Star), R(0),
+  /*  679 S> */ B(LdaConstant), U8(58),
+  /*  681 E> */ B(Star), R(0),
+  /*  690 S> */ B(LdaConstant), U8(59),
+  /*  692 E> */ B(Star), R(0),
+  /*  701 S> */ B(LdaConstant), U8(60),
+  /*  703 E> */ B(Star), R(0),
+  /*  712 S> */ B(LdaConstant), U8(61),
+  /*  714 E> */ B(Star), R(0),
+  /*  723 S> */ B(LdaConstant), U8(62),
+  /*  725 E> */ B(Star), R(0),
+  /*  734 S> */ B(LdaConstant), U8(63),
+  /*  736 E> */ B(Star), R(0),
+  /*  745 S> */ B(LdaConstant), U8(64),
+  /*  747 E> */ B(Star), R(0),
+  /*  756 S> */ B(LdaConstant), U8(65),
+  /*  758 E> */ B(Star), R(0),
+  /*  767 S> */ B(LdaConstant), U8(66),
+  /*  769 E> */ B(Star), R(0),
+  /*  778 S> */ B(LdaConstant), U8(67),
+  /*  780 E> */ B(Star), R(0),
+  /*  789 S> */ B(LdaConstant), U8(68),
+  /*  791 E> */ B(Star), R(0),
+  /*  800 S> */ B(LdaConstant), U8(69),
+  /*  802 E> */ B(Star), R(0),
+  /*  811 S> */ B(LdaConstant), U8(70),
+  /*  813 E> */ B(Star), R(0),
+  /*  822 S> */ B(LdaConstant), U8(71),
+  /*  824 E> */ B(Star), R(0),
+  /*  833 S> */ B(LdaConstant), U8(72),
+  /*  835 E> */ B(Star), R(0),
+  /*  844 S> */ B(LdaConstant), U8(73),
+  /*  846 E> */ B(Star), R(0),
+  /*  855 S> */ B(LdaConstant), U8(74),
+  /*  857 E> */ B(Star), R(0),
+  /*  866 S> */ B(LdaConstant), U8(75),
+  /*  868 E> */ B(Star), R(0),
+  /*  877 S> */ B(LdaConstant), U8(76),
+  /*  879 E> */ B(Star), R(0),
+  /*  888 S> */ B(LdaConstant), U8(77),
+  /*  890 E> */ B(Star), R(0),
+  /*  899 S> */ B(LdaConstant), U8(78),
+  /*  901 E> */ B(Star), R(0),
+  /*  910 S> */ B(LdaConstant), U8(79),
+  /*  912 E> */ B(Star), R(0),
+  /*  921 S> */ B(LdaConstant), U8(80),
+  /*  923 E> */ B(Star), R(0),
+  /*  932 S> */ B(LdaConstant), U8(81),
+  /*  934 E> */ B(Star), R(0),
+  /*  943 S> */ B(LdaConstant), U8(82),
+  /*  945 E> */ B(Star), R(0),
+  /*  954 S> */ B(LdaConstant), U8(83),
+  /*  956 E> */ B(Star), R(0),
+  /*  965 S> */ B(LdaConstant), U8(84),
+  /*  967 E> */ B(Star), R(0),
+  /*  976 S> */ B(LdaConstant), U8(85),
+  /*  978 E> */ B(Star), R(0),
+  /*  987 S> */ B(LdaConstant), U8(86),
+  /*  989 E> */ B(Star), R(0),
+  /*  998 S> */ B(LdaConstant), U8(87),
+  /* 1000 E> */ B(Star), R(0),
+  /* 1009 S> */ B(LdaConstant), U8(88),
+  /* 1011 E> */ B(Star), R(0),
+  /* 1020 S> */ B(LdaConstant), U8(89),
+  /* 1022 E> */ B(Star), R(0),
+  /* 1031 S> */ B(LdaConstant), U8(90),
+  /* 1033 E> */ B(Star), R(0),
+  /* 1042 S> */ B(LdaConstant), U8(91),
+  /* 1044 E> */ B(Star), R(0),
+  /* 1053 S> */ B(LdaConstant), U8(92),
+  /* 1055 E> */ B(Star), R(0),
+  /* 1064 S> */ B(LdaConstant), U8(93),
+  /* 1066 E> */ B(Star), R(0),
+  /* 1075 S> */ B(LdaConstant), U8(94),
+  /* 1077 E> */ B(Star), R(0),
+  /* 1086 S> */ B(LdaConstant), U8(95),
+  /* 1088 E> */ B(Star), R(0),
+  /* 1097 S> */ B(LdaConstant), U8(96),
+  /* 1099 E> */ B(Star), R(0),
+  /* 1108 S> */ B(LdaConstant), U8(97),
+  /* 1110 E> */ B(Star), R(0),
+  /* 1119 S> */ B(LdaConstant), U8(98),
+  /* 1121 E> */ B(Star), R(0),
+  /* 1130 S> */ B(LdaConstant), U8(99),
+  /* 1132 E> */ B(Star), R(0),
+  /* 1141 S> */ B(LdaConstant), U8(100),
+  /* 1143 E> */ B(Star), R(0),
+  /* 1152 S> */ B(LdaConstant), U8(101),
+  /* 1154 E> */ B(Star), R(0),
+  /* 1163 S> */ B(LdaConstant), U8(102),
+  /* 1165 E> */ B(Star), R(0),
+  /* 1174 S> */ B(LdaConstant), U8(103),
+  /* 1176 E> */ B(Star), R(0),
+  /* 1185 S> */ B(LdaConstant), U8(104),
+  /* 1187 E> */ B(Star), R(0),
+  /* 1196 S> */ B(LdaConstant), U8(105),
+  /* 1198 E> */ B(Star), R(0),
+  /* 1207 S> */ B(LdaConstant), U8(106),
+  /* 1209 E> */ B(Star), R(0),
+  /* 1218 S> */ B(LdaConstant), U8(107),
+  /* 1220 E> */ B(Star), R(0),
+  /* 1229 S> */ B(LdaConstant), U8(108),
+  /* 1231 E> */ B(Star), R(0),
+  /* 1240 S> */ B(LdaConstant), U8(109),
+  /* 1242 E> */ B(Star), R(0),
+  /* 1251 S> */ B(LdaConstant), U8(110),
+  /* 1253 E> */ B(Star), R(0),
+  /* 1262 S> */ B(LdaConstant), U8(111),
+  /* 1264 E> */ B(Star), R(0),
+  /* 1273 S> */ B(LdaConstant), U8(112),
+  /* 1275 E> */ B(Star), R(0),
+  /* 1284 S> */ B(LdaConstant), U8(113),
+  /* 1286 E> */ B(Star), R(0),
+  /* 1295 S> */ B(LdaConstant), U8(114),
+  /* 1297 E> */ B(Star), R(0),
+  /* 1306 S> */ B(LdaConstant), U8(115),
+  /* 1308 E> */ B(Star), R(0),
+  /* 1317 S> */ B(LdaConstant), U8(116),
+  /* 1319 E> */ B(Star), R(0),
+  /* 1328 S> */ B(LdaConstant), U8(117),
+  /* 1330 E> */ B(Star), R(0),
+  /* 1339 S> */ B(LdaConstant), U8(118),
+  /* 1341 E> */ B(Star), R(0),
+  /* 1350 S> */ B(LdaConstant), U8(119),
+  /* 1352 E> */ B(Star), R(0),
+  /* 1361 S> */ B(LdaConstant), U8(120),
+  /* 1363 E> */ B(Star), R(0),
+  /* 1372 S> */ B(LdaConstant), U8(121),
+  /* 1374 E> */ B(Star), R(0),
+  /* 1383 S> */ B(LdaConstant), U8(122),
+  /* 1385 E> */ B(Star), R(0),
+  /* 1394 S> */ B(LdaConstant), U8(123),
+  /* 1396 E> */ B(Star), R(0),
+  /* 1405 S> */ B(LdaConstant), U8(124),
+  /* 1407 E> */ B(Star), R(0),
+  /* 1416 S> */ B(LdaConstant), U8(125),
+  /* 1418 E> */ B(Star), R(0),
+  /* 1427 S> */ B(LdaConstant), U8(126),
+  /* 1429 E> */ B(Star), R(0),
+  /* 1438 S> */ B(LdaConstant), U8(127),
+  /* 1440 E> */ B(Star), R(0),
+  /* 1449 S> */ B(LdaConstant), U8(128),
+  /* 1451 E> */ B(Star), R(0),
+  /* 1460 S> */ B(LdaConstant), U8(129),
+  /* 1462 E> */ B(Star), R(0),
+  /* 1471 S> */ B(LdaConstant), U8(130),
+  /* 1473 E> */ B(Star), R(0),
+  /* 1482 S> */ B(LdaConstant), U8(131),
+  /* 1484 E> */ B(Star), R(0),
+  /* 1493 S> */ B(LdaConstant), U8(132),
+  /* 1495 E> */ B(Star), R(0),
+  /* 1504 S> */ B(LdaConstant), U8(133),
+  /* 1506 E> */ B(Star), R(0),
+  /* 1515 S> */ B(LdaConstant), U8(134),
+  /* 1517 E> */ B(Star), R(0),
+  /* 1526 S> */ B(LdaConstant), U8(135),
+  /* 1528 E> */ B(Star), R(0),
+  /* 1537 S> */ B(LdaConstant), U8(136),
+  /* 1539 E> */ B(Star), R(0),
+  /* 1548 S> */ B(LdaConstant), U8(137),
+  /* 1550 E> */ B(Star), R(0),
+  /* 1559 S> */ B(LdaConstant), U8(138),
+  /* 1561 E> */ B(Star), R(0),
+  /* 1570 S> */ B(LdaConstant), U8(139),
+  /* 1572 E> */ B(Star), R(0),
+  /* 1581 S> */ B(LdaConstant), U8(140),
+  /* 1583 E> */ B(Star), R(0),
+  /* 1592 S> */ B(LdaConstant), U8(141),
+  /* 1594 E> */ B(Star), R(0),
+  /* 1603 S> */ B(LdaConstant), U8(142),
+  /* 1605 E> */ B(Star), R(0),
+  /* 1614 S> */ B(LdaConstant), U8(143),
+  /* 1616 E> */ B(Star), R(0),
+  /* 1625 S> */ B(LdaConstant), U8(144),
+  /* 1627 E> */ B(Star), R(0),
+  /* 1636 S> */ B(LdaConstant), U8(145),
+  /* 1638 E> */ B(Star), R(0),
+  /* 1647 S> */ B(LdaConstant), U8(146),
+  /* 1649 E> */ B(Star), R(0),
+  /* 1658 S> */ B(LdaConstant), U8(147),
+  /* 1660 E> */ B(Star), R(0),
+  /* 1669 S> */ B(LdaConstant), U8(148),
+  /* 1671 E> */ B(Star), R(0),
+  /* 1680 S> */ B(LdaConstant), U8(149),
+  /* 1682 E> */ B(Star), R(0),
+  /* 1691 S> */ B(LdaConstant), U8(150),
+  /* 1693 E> */ B(Star), R(0),
+  /* 1702 S> */ B(LdaConstant), U8(151),
+  /* 1704 E> */ B(Star), R(0),
+  /* 1713 S> */ B(LdaConstant), U8(152),
+  /* 1715 E> */ B(Star), R(0),
+  /* 1724 S> */ B(LdaConstant), U8(153),
+  /* 1726 E> */ B(Star), R(0),
+  /* 1735 S> */ B(LdaConstant), U8(154),
+  /* 1737 E> */ B(Star), R(0),
+  /* 1746 S> */ B(LdaConstant), U8(155),
+  /* 1748 E> */ B(Star), R(0),
+  /* 1757 S> */ B(LdaConstant), U8(156),
+  /* 1759 E> */ B(Star), R(0),
+  /* 1768 S> */ B(LdaConstant), U8(157),
+  /* 1770 E> */ B(Star), R(0),
+  /* 1779 S> */ B(LdaConstant), U8(158),
+  /* 1781 E> */ B(Star), R(0),
+  /* 1790 S> */ B(LdaConstant), U8(159),
+  /* 1792 E> */ B(Star), R(0),
+  /* 1801 S> */ B(LdaConstant), U8(160),
+  /* 1803 E> */ B(Star), R(0),
+  /* 1812 S> */ B(LdaConstant), U8(161),
+  /* 1814 E> */ B(Star), R(0),
+  /* 1823 S> */ B(LdaConstant), U8(162),
+  /* 1825 E> */ B(Star), R(0),
+  /* 1834 S> */ B(LdaConstant), U8(163),
+  /* 1836 E> */ B(Star), R(0),
+  /* 1845 S> */ B(LdaConstant), U8(164),
+  /* 1847 E> */ B(Star), R(0),
+  /* 1856 S> */ B(LdaConstant), U8(165),
+  /* 1858 E> */ B(Star), R(0),
+  /* 1867 S> */ B(LdaConstant), U8(166),
+  /* 1869 E> */ B(Star), R(0),
+  /* 1878 S> */ B(LdaConstant), U8(167),
+  /* 1880 E> */ B(Star), R(0),
+  /* 1889 S> */ B(LdaConstant), U8(168),
+  /* 1891 E> */ B(Star), R(0),
+  /* 1900 S> */ B(LdaConstant), U8(169),
+  /* 1902 E> */ B(Star), R(0),
+  /* 1911 S> */ B(LdaConstant), U8(170),
+  /* 1913 E> */ B(Star), R(0),
+  /* 1922 S> */ B(LdaConstant), U8(171),
+  /* 1924 E> */ B(Star), R(0),
+  /* 1933 S> */ B(LdaConstant), U8(172),
+  /* 1935 E> */ B(Star), R(0),
+  /* 1944 S> */ B(LdaConstant), U8(173),
+  /* 1946 E> */ B(Star), R(0),
+  /* 1955 S> */ B(LdaConstant), U8(174),
+  /* 1957 E> */ B(Star), R(0),
+  /* 1966 S> */ B(LdaConstant), U8(175),
+  /* 1968 E> */ B(Star), R(0),
+  /* 1977 S> */ B(LdaConstant), U8(176),
+  /* 1979 E> */ B(Star), R(0),
+  /* 1988 S> */ B(LdaConstant), U8(177),
+  /* 1990 E> */ B(Star), R(0),
+  /* 1999 S> */ B(LdaConstant), U8(178),
+  /* 2001 E> */ B(Star), R(0),
+  /* 2010 S> */ B(LdaConstant), U8(179),
+  /* 2012 E> */ B(Star), R(0),
+  /* 2021 S> */ B(LdaConstant), U8(180),
+  /* 2023 E> */ B(Star), R(0),
+  /* 2032 S> */ B(LdaConstant), U8(181),
+  /* 2034 E> */ B(Star), R(0),
+  /* 2043 S> */ B(LdaConstant), U8(182),
+  /* 2045 E> */ B(Star), R(0),
+  /* 2054 S> */ B(LdaConstant), U8(183),
+  /* 2056 E> */ B(Star), R(0),
+  /* 2065 S> */ B(LdaConstant), U8(184),
+  /* 2067 E> */ B(Star), R(0),
+  /* 2076 S> */ B(LdaConstant), U8(185),
+  /* 2078 E> */ B(Star), R(0),
+  /* 2087 S> */ B(LdaConstant), U8(186),
+  /* 2089 E> */ B(Star), R(0),
+  /* 2098 S> */ B(LdaConstant), U8(187),
+  /* 2100 E> */ B(Star), R(0),
+  /* 2109 S> */ B(LdaConstant), U8(188),
+  /* 2111 E> */ B(Star), R(0),
+  /* 2120 S> */ B(LdaConstant), U8(189),
+  /* 2122 E> */ B(Star), R(0),
+  /* 2131 S> */ B(LdaConstant), U8(190),
+  /* 2133 E> */ B(Star), R(0),
+  /* 2142 S> */ B(LdaConstant), U8(191),
+  /* 2144 E> */ B(Star), R(0),
+  /* 2153 S> */ B(LdaConstant), U8(192),
+  /* 2155 E> */ B(Star), R(0),
+  /* 2164 S> */ B(LdaConstant), U8(193),
+  /* 2166 E> */ B(Star), R(0),
+  /* 2175 S> */ B(LdaConstant), U8(194),
+  /* 2177 E> */ B(Star), R(0),
+  /* 2186 S> */ B(LdaConstant), U8(195),
+  /* 2188 E> */ B(Star), R(0),
+  /* 2197 S> */ B(LdaConstant), U8(196),
+  /* 2199 E> */ B(Star), R(0),
+  /* 2208 S> */ B(LdaConstant), U8(197),
+  /* 2210 E> */ B(Star), R(0),
+  /* 2219 S> */ B(LdaConstant), U8(198),
+  /* 2221 E> */ B(Star), R(0),
+  /* 2230 S> */ B(LdaConstant), U8(199),
+  /* 2232 E> */ B(Star), R(0),
+  /* 2241 S> */ B(LdaConstant), U8(200),
+  /* 2243 E> */ B(Star), R(0),
+  /* 2252 S> */ B(LdaConstant), U8(201),
+  /* 2254 E> */ B(Star), R(0),
+  /* 2263 S> */ B(LdaConstant), U8(202),
+  /* 2265 E> */ B(Star), R(0),
+  /* 2274 S> */ B(LdaConstant), U8(203),
+  /* 2276 E> */ B(Star), R(0),
+  /* 2285 S> */ B(LdaConstant), U8(204),
+  /* 2287 E> */ B(Star), R(0),
+  /* 2296 S> */ B(LdaConstant), U8(205),
+  /* 2298 E> */ B(Star), R(0),
+  /* 2307 S> */ B(LdaConstant), U8(206),
+  /* 2309 E> */ B(Star), R(0),
+  /* 2318 S> */ B(LdaConstant), U8(207),
+  /* 2320 E> */ B(Star), R(0),
+  /* 2329 S> */ B(LdaConstant), U8(208),
+  /* 2331 E> */ B(Star), R(0),
+  /* 2340 S> */ B(LdaConstant), U8(209),
+  /* 2342 E> */ B(Star), R(0),
+  /* 2351 S> */ B(LdaConstant), U8(210),
+  /* 2353 E> */ B(Star), R(0),
+  /* 2362 S> */ B(LdaConstant), U8(211),
+  /* 2364 E> */ B(Star), R(0),
+  /* 2373 S> */ B(LdaConstant), U8(212),
+  /* 2375 E> */ B(Star), R(0),
+  /* 2384 S> */ B(LdaConstant), U8(213),
+  /* 2386 E> */ B(Star), R(0),
+  /* 2395 S> */ B(LdaConstant), U8(214),
+  /* 2397 E> */ B(Star), R(0),
+  /* 2406 S> */ B(LdaConstant), U8(215),
+  /* 2408 E> */ B(Star), R(0),
+  /* 2417 S> */ B(LdaConstant), U8(216),
+  /* 2419 E> */ B(Star), R(0),
+  /* 2428 S> */ B(LdaConstant), U8(217),
+  /* 2430 E> */ B(Star), R(0),
+  /* 2439 S> */ B(LdaConstant), U8(218),
+  /* 2441 E> */ B(Star), R(0),
+  /* 2450 S> */ B(LdaConstant), U8(219),
+  /* 2452 E> */ B(Star), R(0),
+  /* 2461 S> */ B(LdaConstant), U8(220),
+  /* 2463 E> */ B(Star), R(0),
+  /* 2472 S> */ B(LdaConstant), U8(221),
+  /* 2474 E> */ B(Star), R(0),
+  /* 2483 S> */ B(LdaConstant), U8(222),
+  /* 2485 E> */ B(Star), R(0),
+  /* 2494 S> */ B(LdaConstant), U8(223),
+  /* 2496 E> */ B(Star), R(0),
+  /* 2505 S> */ B(LdaConstant), U8(224),
+  /* 2507 E> */ B(Star), R(0),
+  /* 2516 S> */ B(LdaConstant), U8(225),
+  /* 2518 E> */ B(Star), R(0),
+  /* 2527 S> */ B(LdaConstant), U8(226),
+  /* 2529 E> */ B(Star), R(0),
+  /* 2538 S> */ B(LdaConstant), U8(227),
+  /* 2540 E> */ B(Star), R(0),
+  /* 2549 S> */ B(LdaConstant), U8(228),
+  /* 2551 E> */ B(Star), R(0),
+  /* 2560 S> */ B(LdaConstant), U8(229),
+  /* 2562 E> */ B(Star), R(0),
+  /* 2571 S> */ B(LdaConstant), U8(230),
+  /* 2573 E> */ B(Star), R(0),
+  /* 2582 S> */ B(LdaConstant), U8(231),
+  /* 2584 E> */ B(Star), R(0),
+  /* 2593 S> */ B(LdaConstant), U8(232),
+  /* 2595 E> */ B(Star), R(0),
+  /* 2604 S> */ B(LdaConstant), U8(233),
+  /* 2606 E> */ B(Star), R(0),
+  /* 2615 S> */ B(LdaConstant), U8(234),
+  /* 2617 E> */ B(Star), R(0),
+  /* 2626 S> */ B(LdaConstant), U8(235),
+  /* 2628 E> */ B(Star), R(0),
+  /* 2637 S> */ B(LdaConstant), U8(236),
+  /* 2639 E> */ B(Star), R(0),
+  /* 2648 S> */ B(LdaConstant), U8(237),
+  /* 2650 E> */ B(Star), R(0),
+  /* 2659 S> */ B(LdaConstant), U8(238),
+  /* 2661 E> */ B(Star), R(0),
+  /* 2670 S> */ B(LdaConstant), U8(239),
+  /* 2672 E> */ B(Star), R(0),
+  /* 2681 S> */ B(LdaConstant), U8(240),
+  /* 2683 E> */ B(Star), R(0),
+  /* 2692 S> */ B(LdaConstant), U8(241),
+  /* 2694 E> */ B(Star), R(0),
+  /* 2703 S> */ B(LdaConstant), U8(242),
+  /* 2705 E> */ B(Star), R(0),
+  /* 2714 S> */ B(LdaConstant), U8(243),
+  /* 2716 E> */ B(Star), R(0),
+  /* 2725 S> */ B(LdaConstant), U8(244),
+  /* 2727 E> */ B(Star), R(0),
+  /* 2736 S> */ B(LdaConstant), U8(245),
+  /* 2738 E> */ B(Star), R(0),
+  /* 2747 S> */ B(LdaConstant), U8(246),
+  /* 2749 E> */ B(Star), R(0),
+  /* 2758 S> */ B(LdaConstant), U8(247),
+  /* 2760 E> */ B(Star), R(0),
+  /* 2769 S> */ B(LdaConstant), U8(248),
+  /* 2771 E> */ B(Star), R(0),
+  /* 2780 S> */ B(LdaConstant), U8(249),
+  /* 2782 E> */ B(Star), R(0),
+  /* 2791 S> */ B(LdaConstant), U8(250),
+  /* 2793 E> */ B(Star), R(0),
+  /* 2802 S> */ B(LdaConstant), U8(251),
+  /* 2804 E> */ B(Star), R(0),
+  /* 2813 S> */ B(LdaConstant), U8(252),
+  /* 2815 E> */ B(Star), R(0),
+  /* 2824 S> */ B(LdaConstant), U8(253),
+  /* 2826 E> */ B(Star), R(0),
+  /* 2835 S> */ B(LdaConstant), U8(254),
+  /* 2837 E> */ B(Star), R(0),
+  /* 2846 S> */ B(LdaConstant), U8(255),
+  /* 2848 E> */ B(Star), R(0),
+  /* 2857 S> */ B(Wide), B(LdaConstant), U16(256),
+  /* 2859 E> */ B(Star), R(0),
+                B(LdaUndefined),
+  /* 2867 S> */ B(Return),
 ]
 constant pool: [
   1.414,
diff --git a/test/cctest/interpreter/bytecode_expectations/IfConditions.golden b/test/cctest/interpreter/bytecode_expectations/IfConditions.golden
index f450f3f..2d66970 100644
--- a/test/cctest/interpreter/bytecode_expectations/IfConditions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/IfConditions.golden
@@ -3,7 +3,7 @@
 #
 
 ---
-pool type: number
+pool type: mixed
 execute: yes
 wrap: no
 test function name: f
@@ -23,9 +23,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(-1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   55 S> */ B(LdaSmi), U8(-1),
+  /*   70 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -47,9 +47,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   36 S> */ B(LdaSmi), U8(1),
+  /*   76 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -71,9 +71,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(-1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   59 S> */ B(LdaSmi), U8(-1),
+  /*   74 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -93,9 +93,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   17 S> */ B(LdaUndefined),
+  /*   48 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -118,20 +118,20 @@
 parameter count: 1
 bytecode array length: 24
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(JumpIfToBooleanFalse), U8(14),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(5),
-  B(LdaSmi), U8(2),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   25 S> */ B(LdaSmi), U8(1),
+  /*   25 E> */ B(Star), R(0),
+  /*   30 S> */ B(JumpIfToBooleanFalse), U8(14),
+  /*   43 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Add), R(1),
+  /*   45 E> */ B(Star), R(0),
+                B(Jump), U8(5),
+  /*   66 S> */ B(LdaSmi), U8(2),
+  /*   80 S> */ B(Return),
+                B(LdaUndefined),
+  /*   80 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -153,18 +153,18 @@
 parameter count: 2
 bytecode array length: 22
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaZero),
-  B(TestLessThanOrEqual), R(0),
-  B(JumpIfFalse), U8(7),
-  B(Wide), B(LdaSmi), U16(200),
-  B(Return),
-  B(Wide), B(LdaSmi), U16(-200),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   18 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaZero),
+  /*   24 E> */ B(TestLessThanOrEqual), R(0),
+                B(JumpIfFalse), U8(7),
+  /*   36 S> */ B(Wide), B(LdaSmi), U16(200),
+  /*   80 S> */ B(Return),
+  /*   63 S> */ B(Wide), B(LdaSmi), U16(-200),
+  /*   80 S> */ B(Return),
+                B(LdaUndefined),
+  /*   80 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -179,16 +179,16 @@
 parameter count: 3
 bytecode array length: 18
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestIn), R(0),
-  B(JumpIfFalse), U8(7),
-  B(Wide), B(LdaSmi), U16(200),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   19 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   28 E> */ B(Ldar), R(arg1),
+  /*   25 E> */ B(TestIn), R(0),
+                B(JumpIfFalse), U8(7),
+  /*   33 S> */ B(Wide), B(LdaSmi), U16(200),
+  /*   47 S> */ B(Return),
+                B(LdaUndefined),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -268,155 +268,155 @@
 parameter count: 2
 bytecode array length: 287
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaConstant), U8(0),
-  B(TestEqualStrict), R(2),
-  B(JumpIfFalseConstant), U8(1),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Wide), B(LdaSmi), U16(200),
-  B(Return),
-  B(Wide), B(LdaSmi), U16(-200),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   24 S> */ B(LdaZero),
+  /*   24 E> */ B(Star), R(0),
+  /*   35 S> */ B(LdaZero),
+  /*   35 E> */ B(Star), R(1),
+  /*   38 S> */ B(Ldar), R(0),
+                B(Star), R(2),
+                B(LdaConstant), U8(0),
+  /*   44 E> */ B(TestEqualStrict), R(2),
+                B(JumpIfFalseConstant), U8(1),
+  /*   58 S> */ B(Ldar), R(0),
+  /*   60 E> */ B(Star), R(1),
+  /*   65 S> */ B(Star), R(0),
+  /*   74 S> */ B(Star), R(1),
+  /*   81 S> */ B(Star), R(0),
+  /*   90 S> */ B(Star), R(1),
+  /*   97 S> */ B(Star), R(0),
+  /*  106 S> */ B(Star), R(1),
+  /*  113 S> */ B(Star), R(0),
+  /*  122 S> */ B(Star), R(1),
+  /*  129 S> */ B(Star), R(0),
+  /*  138 S> */ B(Star), R(1),
+  /*  145 S> */ B(Star), R(0),
+  /*  154 S> */ B(Star), R(1),
+  /*  161 S> */ B(Star), R(0),
+  /*  170 S> */ B(Star), R(1),
+  /*  177 S> */ B(Star), R(0),
+  /*  186 S> */ B(Star), R(1),
+  /*  193 S> */ B(Star), R(0),
+  /*  202 S> */ B(Star), R(1),
+  /*  209 S> */ B(Star), R(0),
+  /*  218 S> */ B(Star), R(1),
+  /*  225 S> */ B(Star), R(0),
+  /*  234 S> */ B(Star), R(1),
+  /*  241 S> */ B(Star), R(0),
+  /*  250 S> */ B(Star), R(1),
+  /*  257 S> */ B(Star), R(0),
+  /*  266 S> */ B(Star), R(1),
+  /*  273 S> */ B(Star), R(0),
+  /*  282 S> */ B(Star), R(1),
+  /*  289 S> */ B(Star), R(0),
+  /*  298 S> */ B(Star), R(1),
+  /*  305 S> */ B(Star), R(0),
+  /*  314 S> */ B(Star), R(1),
+  /*  321 S> */ B(Star), R(0),
+  /*  330 S> */ B(Star), R(1),
+  /*  337 S> */ B(Star), R(0),
+  /*  346 S> */ B(Star), R(1),
+  /*  353 S> */ B(Star), R(0),
+  /*  362 S> */ B(Star), R(1),
+  /*  369 S> */ B(Star), R(0),
+  /*  378 S> */ B(Star), R(1),
+  /*  385 S> */ B(Star), R(0),
+  /*  394 S> */ B(Star), R(1),
+  /*  401 S> */ B(Star), R(0),
+  /*  410 S> */ B(Star), R(1),
+  /*  417 S> */ B(Star), R(0),
+  /*  426 S> */ B(Star), R(1),
+  /*  433 S> */ B(Star), R(0),
+  /*  442 S> */ B(Star), R(1),
+  /*  449 S> */ B(Star), R(0),
+  /*  458 S> */ B(Star), R(1),
+  /*  465 S> */ B(Star), R(0),
+  /*  474 S> */ B(Star), R(1),
+  /*  481 S> */ B(Star), R(0),
+  /*  490 S> */ B(Star), R(1),
+  /*  497 S> */ B(Star), R(0),
+  /*  506 S> */ B(Star), R(1),
+  /*  513 S> */ B(Star), R(0),
+  /*  522 S> */ B(Star), R(1),
+  /*  529 S> */ B(Star), R(0),
+  /*  538 S> */ B(Star), R(1),
+  /*  545 S> */ B(Star), R(0),
+  /*  554 S> */ B(Star), R(1),
+  /*  561 S> */ B(Star), R(0),
+  /*  570 S> */ B(Star), R(1),
+  /*  577 S> */ B(Star), R(0),
+  /*  586 S> */ B(Star), R(1),
+  /*  593 S> */ B(Star), R(0),
+  /*  602 S> */ B(Star), R(1),
+  /*  609 S> */ B(Star), R(0),
+  /*  618 S> */ B(Star), R(1),
+  /*  625 S> */ B(Star), R(0),
+  /*  634 S> */ B(Star), R(1),
+  /*  641 S> */ B(Star), R(0),
+  /*  650 S> */ B(Star), R(1),
+  /*  657 S> */ B(Star), R(0),
+  /*  666 S> */ B(Star), R(1),
+  /*  673 S> */ B(Star), R(0),
+  /*  682 S> */ B(Star), R(1),
+  /*  689 S> */ B(Star), R(0),
+  /*  698 S> */ B(Star), R(1),
+  /*  705 S> */ B(Star), R(0),
+  /*  714 S> */ B(Star), R(1),
+  /*  721 S> */ B(Star), R(0),
+  /*  730 S> */ B(Star), R(1),
+  /*  737 S> */ B(Star), R(0),
+  /*  746 S> */ B(Star), R(1),
+  /*  753 S> */ B(Star), R(0),
+  /*  762 S> */ B(Star), R(1),
+  /*  769 S> */ B(Star), R(0),
+  /*  778 S> */ B(Star), R(1),
+  /*  785 S> */ B(Star), R(0),
+  /*  794 S> */ B(Star), R(1),
+  /*  801 S> */ B(Star), R(0),
+  /*  810 S> */ B(Star), R(1),
+  /*  817 S> */ B(Star), R(0),
+  /*  826 S> */ B(Star), R(1),
+  /*  833 S> */ B(Star), R(0),
+  /*  842 S> */ B(Star), R(1),
+  /*  849 S> */ B(Star), R(0),
+  /*  858 S> */ B(Star), R(1),
+  /*  865 S> */ B(Star), R(0),
+  /*  874 S> */ B(Star), R(1),
+  /*  881 S> */ B(Star), R(0),
+  /*  890 S> */ B(Star), R(1),
+  /*  897 S> */ B(Star), R(0),
+  /*  906 S> */ B(Star), R(1),
+  /*  913 S> */ B(Star), R(0),
+  /*  922 S> */ B(Star), R(1),
+  /*  929 S> */ B(Star), R(0),
+  /*  938 S> */ B(Star), R(1),
+  /*  945 S> */ B(Star), R(0),
+  /*  954 S> */ B(Star), R(1),
+  /*  961 S> */ B(Star), R(0),
+  /*  970 S> */ B(Star), R(1),
+  /*  977 S> */ B(Star), R(0),
+  /*  986 S> */ B(Star), R(1),
+  /*  993 S> */ B(Star), R(0),
+  /* 1002 S> */ B(Star), R(1),
+  /* 1009 S> */ B(Star), R(0),
+  /* 1018 S> */ B(Star), R(1),
+  /* 1025 S> */ B(Star), R(0),
+  /* 1034 S> */ B(Star), R(1),
+  /* 1041 S> */ B(Star), R(0),
+  /* 1050 S> */ B(Star), R(1),
+  /* 1057 S> */ B(Star), R(0),
+  /* 1066 S> */ B(Star), R(1),
+  /* 1073 S> */ B(Star), R(0),
+  /* 1081 S> */ B(Wide), B(LdaSmi), U16(200),
+  /* 1117 S> */ B(Return),
+  /* 1102 S> */ B(Wide), B(LdaSmi), U16(-200),
+  /* 1117 S> */ B(Return),
+                B(LdaUndefined),
+  /* 1117 S> */ B(Return),
 ]
 constant pool: [
-  0.01,
-  265,
+  InstanceType::HEAP_NUMBER_TYPE,
+  kInstanceTypeDontCare,
 ]
 handlers: [
 ]
@@ -498,151 +498,151 @@
 parameter count: 1
 bytecode array length: 281
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfToBooleanFalseConstant), U8(0),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Wide), B(LdaSmi), U16(200),
-  B(Return),
-  B(Wide), B(LdaSmi), U16(-200),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   25 S> */ B(LdaZero),
+  /*   25 E> */ B(Star), R(0),
+  /*   36 S> */ B(LdaZero),
+  /*   36 E> */ B(Star), R(1),
+  /*   41 S> */ B(Ldar), R(0),
+                B(JumpIfToBooleanFalseConstant), U8(0),
+  /*   52 S> */ B(Ldar), R(0),
+  /*   54 E> */ B(Star), R(1),
+  /*   59 S> */ B(Star), R(0),
+  /*   68 S> */ B(Star), R(1),
+  /*   75 S> */ B(Star), R(0),
+  /*   84 S> */ B(Star), R(1),
+  /*   91 S> */ B(Star), R(0),
+  /*  100 S> */ B(Star), R(1),
+  /*  107 S> */ B(Star), R(0),
+  /*  116 S> */ B(Star), R(1),
+  /*  123 S> */ B(Star), R(0),
+  /*  132 S> */ B(Star), R(1),
+  /*  139 S> */ B(Star), R(0),
+  /*  148 S> */ B(Star), R(1),
+  /*  155 S> */ B(Star), R(0),
+  /*  164 S> */ B(Star), R(1),
+  /*  171 S> */ B(Star), R(0),
+  /*  180 S> */ B(Star), R(1),
+  /*  187 S> */ B(Star), R(0),
+  /*  196 S> */ B(Star), R(1),
+  /*  203 S> */ B(Star), R(0),
+  /*  212 S> */ B(Star), R(1),
+  /*  219 S> */ B(Star), R(0),
+  /*  228 S> */ B(Star), R(1),
+  /*  235 S> */ B(Star), R(0),
+  /*  244 S> */ B(Star), R(1),
+  /*  251 S> */ B(Star), R(0),
+  /*  260 S> */ B(Star), R(1),
+  /*  267 S> */ B(Star), R(0),
+  /*  276 S> */ B(Star), R(1),
+  /*  283 S> */ B(Star), R(0),
+  /*  292 S> */ B(Star), R(1),
+  /*  299 S> */ B(Star), R(0),
+  /*  308 S> */ B(Star), R(1),
+  /*  315 S> */ B(Star), R(0),
+  /*  324 S> */ B(Star), R(1),
+  /*  331 S> */ B(Star), R(0),
+  /*  340 S> */ B(Star), R(1),
+  /*  347 S> */ B(Star), R(0),
+  /*  356 S> */ B(Star), R(1),
+  /*  363 S> */ B(Star), R(0),
+  /*  372 S> */ B(Star), R(1),
+  /*  379 S> */ B(Star), R(0),
+  /*  388 S> */ B(Star), R(1),
+  /*  395 S> */ B(Star), R(0),
+  /*  404 S> */ B(Star), R(1),
+  /*  411 S> */ B(Star), R(0),
+  /*  420 S> */ B(Star), R(1),
+  /*  427 S> */ B(Star), R(0),
+  /*  436 S> */ B(Star), R(1),
+  /*  443 S> */ B(Star), R(0),
+  /*  452 S> */ B(Star), R(1),
+  /*  459 S> */ B(Star), R(0),
+  /*  468 S> */ B(Star), R(1),
+  /*  475 S> */ B(Star), R(0),
+  /*  484 S> */ B(Star), R(1),
+  /*  491 S> */ B(Star), R(0),
+  /*  500 S> */ B(Star), R(1),
+  /*  507 S> */ B(Star), R(0),
+  /*  516 S> */ B(Star), R(1),
+  /*  523 S> */ B(Star), R(0),
+  /*  532 S> */ B(Star), R(1),
+  /*  539 S> */ B(Star), R(0),
+  /*  548 S> */ B(Star), R(1),
+  /*  555 S> */ B(Star), R(0),
+  /*  564 S> */ B(Star), R(1),
+  /*  571 S> */ B(Star), R(0),
+  /*  580 S> */ B(Star), R(1),
+  /*  587 S> */ B(Star), R(0),
+  /*  596 S> */ B(Star), R(1),
+  /*  603 S> */ B(Star), R(0),
+  /*  612 S> */ B(Star), R(1),
+  /*  619 S> */ B(Star), R(0),
+  /*  628 S> */ B(Star), R(1),
+  /*  635 S> */ B(Star), R(0),
+  /*  644 S> */ B(Star), R(1),
+  /*  651 S> */ B(Star), R(0),
+  /*  660 S> */ B(Star), R(1),
+  /*  667 S> */ B(Star), R(0),
+  /*  676 S> */ B(Star), R(1),
+  /*  683 S> */ B(Star), R(0),
+  /*  692 S> */ B(Star), R(1),
+  /*  699 S> */ B(Star), R(0),
+  /*  708 S> */ B(Star), R(1),
+  /*  715 S> */ B(Star), R(0),
+  /*  724 S> */ B(Star), R(1),
+  /*  731 S> */ B(Star), R(0),
+  /*  740 S> */ B(Star), R(1),
+  /*  747 S> */ B(Star), R(0),
+  /*  756 S> */ B(Star), R(1),
+  /*  763 S> */ B(Star), R(0),
+  /*  772 S> */ B(Star), R(1),
+  /*  779 S> */ B(Star), R(0),
+  /*  788 S> */ B(Star), R(1),
+  /*  795 S> */ B(Star), R(0),
+  /*  804 S> */ B(Star), R(1),
+  /*  811 S> */ B(Star), R(0),
+  /*  820 S> */ B(Star), R(1),
+  /*  827 S> */ B(Star), R(0),
+  /*  836 S> */ B(Star), R(1),
+  /*  843 S> */ B(Star), R(0),
+  /*  852 S> */ B(Star), R(1),
+  /*  859 S> */ B(Star), R(0),
+  /*  868 S> */ B(Star), R(1),
+  /*  875 S> */ B(Star), R(0),
+  /*  884 S> */ B(Star), R(1),
+  /*  891 S> */ B(Star), R(0),
+  /*  900 S> */ B(Star), R(1),
+  /*  907 S> */ B(Star), R(0),
+  /*  916 S> */ B(Star), R(1),
+  /*  923 S> */ B(Star), R(0),
+  /*  932 S> */ B(Star), R(1),
+  /*  939 S> */ B(Star), R(0),
+  /*  948 S> */ B(Star), R(1),
+  /*  955 S> */ B(Star), R(0),
+  /*  964 S> */ B(Star), R(1),
+  /*  971 S> */ B(Star), R(0),
+  /*  980 S> */ B(Star), R(1),
+  /*  987 S> */ B(Star), R(0),
+  /*  996 S> */ B(Star), R(1),
+  /* 1003 S> */ B(Star), R(0),
+  /* 1012 S> */ B(Star), R(1),
+  /* 1019 S> */ B(Star), R(0),
+  /* 1028 S> */ B(Star), R(1),
+  /* 1035 S> */ B(Star), R(0),
+  /* 1044 S> */ B(Star), R(1),
+  /* 1051 S> */ B(Star), R(0),
+  /* 1060 S> */ B(Star), R(1),
+  /* 1067 S> */ B(Star), R(0),
+  /* 1076 S> */ B(Wide), B(LdaSmi), U16(200),
+  /* 1112 S> */ B(Return),
+  /* 1097 S> */ B(Wide), B(LdaSmi), U16(-200),
+  /* 1112 S> */ B(Return),
+                B(LdaUndefined),
+  /* 1112 S> */ B(Return),
 ]
 constant pool: [
-  265,
+  kInstanceTypeDontCare,
 ]
 handlers: [
 ]
@@ -666,65 +666,65 @@
 parameter count: 3
 bytecode array length: 107
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestEqual), R(0),
-  B(JumpIfFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestEqualStrict), R(0),
-  B(JumpIfFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestLessThan), R(0),
-  B(JumpIfFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestGreaterThan), R(0),
-  B(JumpIfFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestLessThanOrEqual), R(0),
-  B(JumpIfFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestGreaterThanOrEqual), R(0),
-  B(JumpIfFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestIn), R(0),
-  B(JumpIfFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(TestInstanceOf), R(0),
-  B(JumpIfFalse), U8(5),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(LdaZero),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   21 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   30 E> */ B(Ldar), R(arg1),
+  /*   27 E> */ B(TestEqual), R(0),
+                B(JumpIfFalse), U8(5),
+  /*   35 S> */ B(LdaSmi), U8(1),
+  /*  262 S> */ B(Return),
+  /*   49 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   59 E> */ B(Ldar), R(arg1),
+  /*   55 E> */ B(TestEqualStrict), R(0),
+                B(JumpIfFalse), U8(5),
+  /*   64 S> */ B(LdaSmi), U8(1),
+  /*  262 S> */ B(Return),
+  /*   78 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   86 E> */ B(Ldar), R(arg1),
+  /*   84 E> */ B(TestLessThan), R(0),
+                B(JumpIfFalse), U8(5),
+  /*   91 S> */ B(LdaSmi), U8(1),
+  /*  262 S> */ B(Return),
+  /*  105 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  113 E> */ B(Ldar), R(arg1),
+  /*  111 E> */ B(TestGreaterThan), R(0),
+                B(JumpIfFalse), U8(5),
+  /*  118 S> */ B(LdaSmi), U8(1),
+  /*  262 S> */ B(Return),
+  /*  132 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  141 E> */ B(Ldar), R(arg1),
+  /*  138 E> */ B(TestLessThanOrEqual), R(0),
+                B(JumpIfFalse), U8(5),
+  /*  146 S> */ B(LdaSmi), U8(1),
+  /*  262 S> */ B(Return),
+  /*  160 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  169 E> */ B(Ldar), R(arg1),
+  /*  166 E> */ B(TestGreaterThanOrEqual), R(0),
+                B(JumpIfFalse), U8(5),
+  /*  174 S> */ B(LdaSmi), U8(1),
+  /*  262 S> */ B(Return),
+  /*  188 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  197 E> */ B(Ldar), R(arg1),
+  /*  194 E> */ B(TestIn), R(0),
+                B(JumpIfFalse), U8(5),
+  /*  202 S> */ B(LdaSmi), U8(1),
+  /*  262 S> */ B(Return),
+  /*  216 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  233 E> */ B(Ldar), R(arg1),
+  /*  222 E> */ B(TestInstanceOf), R(0),
+                B(JumpIfFalse), U8(5),
+  /*  238 S> */ B(LdaSmi), U8(1),
+  /*  262 S> */ B(Return),
+  /*  252 S> */ B(LdaZero),
+  /*  262 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -747,16 +747,16 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(JumpIfToBooleanFalse), U8(5),
-  B(LdaSmi), U8(20),
-  B(Return),
-  B(LdaSmi), U8(-20),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   25 S> */ B(LdaZero),
+  /*   25 E> */ B(Star), R(0),
+  /*   30 S> */ B(JumpIfToBooleanFalse), U8(5),
+  /*   43 S> */ B(LdaSmi), U8(20),
+  /*   85 S> */ B(Return),
+  /*   69 S> */ B(LdaSmi), U8(-20),
+  /*   85 S> */ B(Return),
+                B(LdaUndefined),
+  /*   85 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden b/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden
index 1c37c12..f82e5f8 100644
--- a/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden
+++ b/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(ExtraWide), B(LdaSmi), U32(12345678),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(ExtraWide), B(LdaSmi), U32(12345678),
+  /*   51 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -32,11 +32,11 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(Wide), B(LdaSmi), U16(1234),
-  B(Star), R(0),
-  B(Wide), B(LdaSmi), U16(5678),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(Wide), B(LdaSmi), U16(1234),
+  /*   42 E> */ B(Star), R(0),
+  /*   48 S> */ B(Wide), B(LdaSmi), U16(5678),
+  /*   61 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -51,11 +51,11 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(Wide), B(LdaSmi), U16(1234),
-  B(Star), R(0),
-  B(Wide), B(LdaSmi), U16(1234),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(Wide), B(LdaSmi), U16(1234),
+  /*   42 E> */ B(Star), R(0),
+  /*   48 S> */ B(Wide), B(LdaSmi), U16(1234),
+  /*   61 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden b/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden
index 3f0b49d..84810b1 100644
--- a/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden
+++ b/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden
@@ -331,659 +331,659 @@
 parameter count: 1
 bytecode array length: 1422
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(256),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(257),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(258),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(259),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(260),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(261),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(262),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(263),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(264),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(265),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(266),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(267),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(268),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(269),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(270),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(271),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(272),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(273),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(274),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(275),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(276),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(277),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(278),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(279),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(280),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(281),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(282),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(283),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(284),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(285),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(286),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(287),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(288),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(289),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(290),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(291),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(292),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(293),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(294),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(295),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(296),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(297),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(298),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(299),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(300),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(301),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(302),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(303),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(304),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(305),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(306),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(307),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(308),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(309),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(310),
-  B(Star), R(0),
-  B(Wide), B(LdaConstant), U16(311),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(TestLessThan), R(2),
-  B(Wide), B(JumpIfFalse), U16(46),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(TestEqual), R(2),
-  B(Wide), B(JumpIfFalse), U16(7),
-  B(Wide), B(Jump), U16(19),
-  B(Ldar), R(1),
-  B(Star), R(2),
-  B(LdaSmi), U8(2),
-  B(TestEqual), R(2),
-  B(Wide), B(JumpIfFalse), U16(7),
-  B(Wide), B(Jump), U16(13),
-  B(Ldar), R(1),
-  B(ToNumber),
-  B(Star), R(2),
-  B(Inc),
-  B(Star), R(1),
-  B(Jump), U8(-53),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   55 S> */ B(LdaConstant), U8(1),
+  /*   55 E> */ B(Star), R(0),
+  /*   68 S> */ B(LdaConstant), U8(2),
+  /*   68 E> */ B(Star), R(0),
+  /*   81 S> */ B(LdaConstant), U8(3),
+  /*   81 E> */ B(Star), R(0),
+  /*   94 S> */ B(LdaConstant), U8(4),
+  /*   94 E> */ B(Star), R(0),
+  /*  107 S> */ B(LdaConstant), U8(5),
+  /*  107 E> */ B(Star), R(0),
+  /*  120 S> */ B(LdaConstant), U8(6),
+  /*  120 E> */ B(Star), R(0),
+  /*  133 S> */ B(LdaConstant), U8(7),
+  /*  133 E> */ B(Star), R(0),
+  /*  146 S> */ B(LdaConstant), U8(8),
+  /*  146 E> */ B(Star), R(0),
+  /*  159 S> */ B(LdaConstant), U8(9),
+  /*  159 E> */ B(Star), R(0),
+  /*  172 S> */ B(LdaConstant), U8(10),
+  /*  172 E> */ B(Star), R(0),
+  /*  185 S> */ B(LdaConstant), U8(11),
+  /*  185 E> */ B(Star), R(0),
+  /*  198 S> */ B(LdaConstant), U8(12),
+  /*  198 E> */ B(Star), R(0),
+  /*  211 S> */ B(LdaConstant), U8(13),
+  /*  211 E> */ B(Star), R(0),
+  /*  224 S> */ B(LdaConstant), U8(14),
+  /*  224 E> */ B(Star), R(0),
+  /*  237 S> */ B(LdaConstant), U8(15),
+  /*  237 E> */ B(Star), R(0),
+  /*  250 S> */ B(LdaConstant), U8(16),
+  /*  250 E> */ B(Star), R(0),
+  /*  263 S> */ B(LdaConstant), U8(17),
+  /*  263 E> */ B(Star), R(0),
+  /*  276 S> */ B(LdaConstant), U8(18),
+  /*  276 E> */ B(Star), R(0),
+  /*  289 S> */ B(LdaConstant), U8(19),
+  /*  289 E> */ B(Star), R(0),
+  /*  302 S> */ B(LdaConstant), U8(20),
+  /*  302 E> */ B(Star), R(0),
+  /*  315 S> */ B(LdaConstant), U8(21),
+  /*  315 E> */ B(Star), R(0),
+  /*  328 S> */ B(LdaConstant), U8(22),
+  /*  328 E> */ B(Star), R(0),
+  /*  341 S> */ B(LdaConstant), U8(23),
+  /*  341 E> */ B(Star), R(0),
+  /*  354 S> */ B(LdaConstant), U8(24),
+  /*  354 E> */ B(Star), R(0),
+  /*  367 S> */ B(LdaConstant), U8(25),
+  /*  367 E> */ B(Star), R(0),
+  /*  380 S> */ B(LdaConstant), U8(26),
+  /*  380 E> */ B(Star), R(0),
+  /*  393 S> */ B(LdaConstant), U8(27),
+  /*  393 E> */ B(Star), R(0),
+  /*  406 S> */ B(LdaConstant), U8(28),
+  /*  406 E> */ B(Star), R(0),
+  /*  419 S> */ B(LdaConstant), U8(29),
+  /*  419 E> */ B(Star), R(0),
+  /*  432 S> */ B(LdaConstant), U8(30),
+  /*  432 E> */ B(Star), R(0),
+  /*  445 S> */ B(LdaConstant), U8(31),
+  /*  445 E> */ B(Star), R(0),
+  /*  458 S> */ B(LdaConstant), U8(32),
+  /*  458 E> */ B(Star), R(0),
+  /*  471 S> */ B(LdaConstant), U8(33),
+  /*  471 E> */ B(Star), R(0),
+  /*  484 S> */ B(LdaConstant), U8(34),
+  /*  484 E> */ B(Star), R(0),
+  /*  497 S> */ B(LdaConstant), U8(35),
+  /*  497 E> */ B(Star), R(0),
+  /*  510 S> */ B(LdaConstant), U8(36),
+  /*  510 E> */ B(Star), R(0),
+  /*  523 S> */ B(LdaConstant), U8(37),
+  /*  523 E> */ B(Star), R(0),
+  /*  536 S> */ B(LdaConstant), U8(38),
+  /*  536 E> */ B(Star), R(0),
+  /*  549 S> */ B(LdaConstant), U8(39),
+  /*  549 E> */ B(Star), R(0),
+  /*  562 S> */ B(LdaConstant), U8(40),
+  /*  562 E> */ B(Star), R(0),
+  /*  575 S> */ B(LdaConstant), U8(41),
+  /*  575 E> */ B(Star), R(0),
+  /*  588 S> */ B(LdaConstant), U8(42),
+  /*  588 E> */ B(Star), R(0),
+  /*  601 S> */ B(LdaConstant), U8(43),
+  /*  601 E> */ B(Star), R(0),
+  /*  614 S> */ B(LdaConstant), U8(44),
+  /*  614 E> */ B(Star), R(0),
+  /*  627 S> */ B(LdaConstant), U8(45),
+  /*  627 E> */ B(Star), R(0),
+  /*  640 S> */ B(LdaConstant), U8(46),
+  /*  640 E> */ B(Star), R(0),
+  /*  653 S> */ B(LdaConstant), U8(47),
+  /*  653 E> */ B(Star), R(0),
+  /*  666 S> */ B(LdaConstant), U8(48),
+  /*  666 E> */ B(Star), R(0),
+  /*  679 S> */ B(LdaConstant), U8(49),
+  /*  679 E> */ B(Star), R(0),
+  /*  692 S> */ B(LdaConstant), U8(50),
+  /*  692 E> */ B(Star), R(0),
+  /*  705 S> */ B(LdaConstant), U8(51),
+  /*  705 E> */ B(Star), R(0),
+  /*  718 S> */ B(LdaConstant), U8(52),
+  /*  718 E> */ B(Star), R(0),
+  /*  731 S> */ B(LdaConstant), U8(53),
+  /*  731 E> */ B(Star), R(0),
+  /*  744 S> */ B(LdaConstant), U8(54),
+  /*  744 E> */ B(Star), R(0),
+  /*  757 S> */ B(LdaConstant), U8(55),
+  /*  757 E> */ B(Star), R(0),
+  /*  770 S> */ B(LdaConstant), U8(56),
+  /*  770 E> */ B(Star), R(0),
+  /*  783 S> */ B(LdaConstant), U8(57),
+  /*  783 E> */ B(Star), R(0),
+  /*  796 S> */ B(LdaConstant), U8(58),
+  /*  796 E> */ B(Star), R(0),
+  /*  809 S> */ B(LdaConstant), U8(59),
+  /*  809 E> */ B(Star), R(0),
+  /*  822 S> */ B(LdaConstant), U8(60),
+  /*  822 E> */ B(Star), R(0),
+  /*  835 S> */ B(LdaConstant), U8(61),
+  /*  835 E> */ B(Star), R(0),
+  /*  848 S> */ B(LdaConstant), U8(62),
+  /*  848 E> */ B(Star), R(0),
+  /*  861 S> */ B(LdaConstant), U8(63),
+  /*  861 E> */ B(Star), R(0),
+  /*  874 S> */ B(LdaConstant), U8(64),
+  /*  874 E> */ B(Star), R(0),
+  /*  887 S> */ B(LdaConstant), U8(65),
+  /*  887 E> */ B(Star), R(0),
+  /*  900 S> */ B(LdaConstant), U8(66),
+  /*  900 E> */ B(Star), R(0),
+  /*  913 S> */ B(LdaConstant), U8(67),
+  /*  913 E> */ B(Star), R(0),
+  /*  926 S> */ B(LdaConstant), U8(68),
+  /*  926 E> */ B(Star), R(0),
+  /*  939 S> */ B(LdaConstant), U8(69),
+  /*  939 E> */ B(Star), R(0),
+  /*  952 S> */ B(LdaConstant), U8(70),
+  /*  952 E> */ B(Star), R(0),
+  /*  965 S> */ B(LdaConstant), U8(71),
+  /*  965 E> */ B(Star), R(0),
+  /*  978 S> */ B(LdaConstant), U8(72),
+  /*  978 E> */ B(Star), R(0),
+  /*  991 S> */ B(LdaConstant), U8(73),
+  /*  991 E> */ B(Star), R(0),
+  /* 1004 S> */ B(LdaConstant), U8(74),
+  /* 1004 E> */ B(Star), R(0),
+  /* 1017 S> */ B(LdaConstant), U8(75),
+  /* 1017 E> */ B(Star), R(0),
+  /* 1030 S> */ B(LdaConstant), U8(76),
+  /* 1030 E> */ B(Star), R(0),
+  /* 1043 S> */ B(LdaConstant), U8(77),
+  /* 1043 E> */ B(Star), R(0),
+  /* 1056 S> */ B(LdaConstant), U8(78),
+  /* 1056 E> */ B(Star), R(0),
+  /* 1069 S> */ B(LdaConstant), U8(79),
+  /* 1069 E> */ B(Star), R(0),
+  /* 1082 S> */ B(LdaConstant), U8(80),
+  /* 1082 E> */ B(Star), R(0),
+  /* 1095 S> */ B(LdaConstant), U8(81),
+  /* 1095 E> */ B(Star), R(0),
+  /* 1108 S> */ B(LdaConstant), U8(82),
+  /* 1108 E> */ B(Star), R(0),
+  /* 1121 S> */ B(LdaConstant), U8(83),
+  /* 1121 E> */ B(Star), R(0),
+  /* 1134 S> */ B(LdaConstant), U8(84),
+  /* 1134 E> */ B(Star), R(0),
+  /* 1147 S> */ B(LdaConstant), U8(85),
+  /* 1147 E> */ B(Star), R(0),
+  /* 1160 S> */ B(LdaConstant), U8(86),
+  /* 1160 E> */ B(Star), R(0),
+  /* 1173 S> */ B(LdaConstant), U8(87),
+  /* 1173 E> */ B(Star), R(0),
+  /* 1186 S> */ B(LdaConstant), U8(88),
+  /* 1186 E> */ B(Star), R(0),
+  /* 1199 S> */ B(LdaConstant), U8(89),
+  /* 1199 E> */ B(Star), R(0),
+  /* 1212 S> */ B(LdaConstant), U8(90),
+  /* 1212 E> */ B(Star), R(0),
+  /* 1225 S> */ B(LdaConstant), U8(91),
+  /* 1225 E> */ B(Star), R(0),
+  /* 1238 S> */ B(LdaConstant), U8(92),
+  /* 1238 E> */ B(Star), R(0),
+  /* 1251 S> */ B(LdaConstant), U8(93),
+  /* 1251 E> */ B(Star), R(0),
+  /* 1264 S> */ B(LdaConstant), U8(94),
+  /* 1264 E> */ B(Star), R(0),
+  /* 1277 S> */ B(LdaConstant), U8(95),
+  /* 1277 E> */ B(Star), R(0),
+  /* 1290 S> */ B(LdaConstant), U8(96),
+  /* 1290 E> */ B(Star), R(0),
+  /* 1303 S> */ B(LdaConstant), U8(97),
+  /* 1303 E> */ B(Star), R(0),
+  /* 1316 S> */ B(LdaConstant), U8(98),
+  /* 1316 E> */ B(Star), R(0),
+  /* 1329 S> */ B(LdaConstant), U8(99),
+  /* 1329 E> */ B(Star), R(0),
+  /* 1342 S> */ B(LdaConstant), U8(100),
+  /* 1342 E> */ B(Star), R(0),
+  /* 1355 S> */ B(LdaConstant), U8(101),
+  /* 1355 E> */ B(Star), R(0),
+  /* 1368 S> */ B(LdaConstant), U8(102),
+  /* 1368 E> */ B(Star), R(0),
+  /* 1381 S> */ B(LdaConstant), U8(103),
+  /* 1381 E> */ B(Star), R(0),
+  /* 1394 S> */ B(LdaConstant), U8(104),
+  /* 1394 E> */ B(Star), R(0),
+  /* 1407 S> */ B(LdaConstant), U8(105),
+  /* 1407 E> */ B(Star), R(0),
+  /* 1420 S> */ B(LdaConstant), U8(106),
+  /* 1420 E> */ B(Star), R(0),
+  /* 1433 S> */ B(LdaConstant), U8(107),
+  /* 1433 E> */ B(Star), R(0),
+  /* 1446 S> */ B(LdaConstant), U8(108),
+  /* 1446 E> */ B(Star), R(0),
+  /* 1459 S> */ B(LdaConstant), U8(109),
+  /* 1459 E> */ B(Star), R(0),
+  /* 1472 S> */ B(LdaConstant), U8(110),
+  /* 1472 E> */ B(Star), R(0),
+  /* 1485 S> */ B(LdaConstant), U8(111),
+  /* 1485 E> */ B(Star), R(0),
+  /* 1498 S> */ B(LdaConstant), U8(112),
+  /* 1498 E> */ B(Star), R(0),
+  /* 1511 S> */ B(LdaConstant), U8(113),
+  /* 1511 E> */ B(Star), R(0),
+  /* 1524 S> */ B(LdaConstant), U8(114),
+  /* 1524 E> */ B(Star), R(0),
+  /* 1537 S> */ B(LdaConstant), U8(115),
+  /* 1537 E> */ B(Star), R(0),
+  /* 1550 S> */ B(LdaConstant), U8(116),
+  /* 1550 E> */ B(Star), R(0),
+  /* 1563 S> */ B(LdaConstant), U8(117),
+  /* 1563 E> */ B(Star), R(0),
+  /* 1576 S> */ B(LdaConstant), U8(118),
+  /* 1576 E> */ B(Star), R(0),
+  /* 1589 S> */ B(LdaConstant), U8(119),
+  /* 1589 E> */ B(Star), R(0),
+  /* 1602 S> */ B(LdaConstant), U8(120),
+  /* 1602 E> */ B(Star), R(0),
+  /* 1615 S> */ B(LdaConstant), U8(121),
+  /* 1615 E> */ B(Star), R(0),
+  /* 1628 S> */ B(LdaConstant), U8(122),
+  /* 1628 E> */ B(Star), R(0),
+  /* 1641 S> */ B(LdaConstant), U8(123),
+  /* 1641 E> */ B(Star), R(0),
+  /* 1654 S> */ B(LdaConstant), U8(124),
+  /* 1654 E> */ B(Star), R(0),
+  /* 1667 S> */ B(LdaConstant), U8(125),
+  /* 1667 E> */ B(Star), R(0),
+  /* 1680 S> */ B(LdaConstant), U8(126),
+  /* 1680 E> */ B(Star), R(0),
+  /* 1693 S> */ B(LdaConstant), U8(127),
+  /* 1693 E> */ B(Star), R(0),
+  /* 1706 S> */ B(LdaConstant), U8(128),
+  /* 1706 E> */ B(Star), R(0),
+  /* 1719 S> */ B(LdaConstant), U8(129),
+  /* 1719 E> */ B(Star), R(0),
+  /* 1732 S> */ B(LdaConstant), U8(130),
+  /* 1732 E> */ B(Star), R(0),
+  /* 1745 S> */ B(LdaConstant), U8(131),
+  /* 1745 E> */ B(Star), R(0),
+  /* 1758 S> */ B(LdaConstant), U8(132),
+  /* 1758 E> */ B(Star), R(0),
+  /* 1771 S> */ B(LdaConstant), U8(133),
+  /* 1771 E> */ B(Star), R(0),
+  /* 1784 S> */ B(LdaConstant), U8(134),
+  /* 1784 E> */ B(Star), R(0),
+  /* 1797 S> */ B(LdaConstant), U8(135),
+  /* 1797 E> */ B(Star), R(0),
+  /* 1810 S> */ B(LdaConstant), U8(136),
+  /* 1810 E> */ B(Star), R(0),
+  /* 1823 S> */ B(LdaConstant), U8(137),
+  /* 1823 E> */ B(Star), R(0),
+  /* 1836 S> */ B(LdaConstant), U8(138),
+  /* 1836 E> */ B(Star), R(0),
+  /* 1849 S> */ B(LdaConstant), U8(139),
+  /* 1849 E> */ B(Star), R(0),
+  /* 1862 S> */ B(LdaConstant), U8(140),
+  /* 1862 E> */ B(Star), R(0),
+  /* 1875 S> */ B(LdaConstant), U8(141),
+  /* 1875 E> */ B(Star), R(0),
+  /* 1888 S> */ B(LdaConstant), U8(142),
+  /* 1888 E> */ B(Star), R(0),
+  /* 1901 S> */ B(LdaConstant), U8(143),
+  /* 1901 E> */ B(Star), R(0),
+  /* 1914 S> */ B(LdaConstant), U8(144),
+  /* 1914 E> */ B(Star), R(0),
+  /* 1927 S> */ B(LdaConstant), U8(145),
+  /* 1927 E> */ B(Star), R(0),
+  /* 1940 S> */ B(LdaConstant), U8(146),
+  /* 1940 E> */ B(Star), R(0),
+  /* 1953 S> */ B(LdaConstant), U8(147),
+  /* 1953 E> */ B(Star), R(0),
+  /* 1966 S> */ B(LdaConstant), U8(148),
+  /* 1966 E> */ B(Star), R(0),
+  /* 1979 S> */ B(LdaConstant), U8(149),
+  /* 1979 E> */ B(Star), R(0),
+  /* 1992 S> */ B(LdaConstant), U8(150),
+  /* 1992 E> */ B(Star), R(0),
+  /* 2005 S> */ B(LdaConstant), U8(151),
+  /* 2005 E> */ B(Star), R(0),
+  /* 2018 S> */ B(LdaConstant), U8(152),
+  /* 2018 E> */ B(Star), R(0),
+  /* 2031 S> */ B(LdaConstant), U8(153),
+  /* 2031 E> */ B(Star), R(0),
+  /* 2044 S> */ B(LdaConstant), U8(154),
+  /* 2044 E> */ B(Star), R(0),
+  /* 2057 S> */ B(LdaConstant), U8(155),
+  /* 2057 E> */ B(Star), R(0),
+  /* 2070 S> */ B(LdaConstant), U8(156),
+  /* 2070 E> */ B(Star), R(0),
+  /* 2083 S> */ B(LdaConstant), U8(157),
+  /* 2083 E> */ B(Star), R(0),
+  /* 2096 S> */ B(LdaConstant), U8(158),
+  /* 2096 E> */ B(Star), R(0),
+  /* 2109 S> */ B(LdaConstant), U8(159),
+  /* 2109 E> */ B(Star), R(0),
+  /* 2122 S> */ B(LdaConstant), U8(160),
+  /* 2122 E> */ B(Star), R(0),
+  /* 2135 S> */ B(LdaConstant), U8(161),
+  /* 2135 E> */ B(Star), R(0),
+  /* 2148 S> */ B(LdaConstant), U8(162),
+  /* 2148 E> */ B(Star), R(0),
+  /* 2161 S> */ B(LdaConstant), U8(163),
+  /* 2161 E> */ B(Star), R(0),
+  /* 2174 S> */ B(LdaConstant), U8(164),
+  /* 2174 E> */ B(Star), R(0),
+  /* 2187 S> */ B(LdaConstant), U8(165),
+  /* 2187 E> */ B(Star), R(0),
+  /* 2200 S> */ B(LdaConstant), U8(166),
+  /* 2200 E> */ B(Star), R(0),
+  /* 2213 S> */ B(LdaConstant), U8(167),
+  /* 2213 E> */ B(Star), R(0),
+  /* 2226 S> */ B(LdaConstant), U8(168),
+  /* 2226 E> */ B(Star), R(0),
+  /* 2239 S> */ B(LdaConstant), U8(169),
+  /* 2239 E> */ B(Star), R(0),
+  /* 2252 S> */ B(LdaConstant), U8(170),
+  /* 2252 E> */ B(Star), R(0),
+  /* 2265 S> */ B(LdaConstant), U8(171),
+  /* 2265 E> */ B(Star), R(0),
+  /* 2278 S> */ B(LdaConstant), U8(172),
+  /* 2278 E> */ B(Star), R(0),
+  /* 2291 S> */ B(LdaConstant), U8(173),
+  /* 2291 E> */ B(Star), R(0),
+  /* 2304 S> */ B(LdaConstant), U8(174),
+  /* 2304 E> */ B(Star), R(0),
+  /* 2317 S> */ B(LdaConstant), U8(175),
+  /* 2317 E> */ B(Star), R(0),
+  /* 2330 S> */ B(LdaConstant), U8(176),
+  /* 2330 E> */ B(Star), R(0),
+  /* 2343 S> */ B(LdaConstant), U8(177),
+  /* 2343 E> */ B(Star), R(0),
+  /* 2356 S> */ B(LdaConstant), U8(178),
+  /* 2356 E> */ B(Star), R(0),
+  /* 2369 S> */ B(LdaConstant), U8(179),
+  /* 2369 E> */ B(Star), R(0),
+  /* 2382 S> */ B(LdaConstant), U8(180),
+  /* 2382 E> */ B(Star), R(0),
+  /* 2395 S> */ B(LdaConstant), U8(181),
+  /* 2395 E> */ B(Star), R(0),
+  /* 2408 S> */ B(LdaConstant), U8(182),
+  /* 2408 E> */ B(Star), R(0),
+  /* 2421 S> */ B(LdaConstant), U8(183),
+  /* 2421 E> */ B(Star), R(0),
+  /* 2434 S> */ B(LdaConstant), U8(184),
+  /* 2434 E> */ B(Star), R(0),
+  /* 2447 S> */ B(LdaConstant), U8(185),
+  /* 2447 E> */ B(Star), R(0),
+  /* 2460 S> */ B(LdaConstant), U8(186),
+  /* 2460 E> */ B(Star), R(0),
+  /* 2473 S> */ B(LdaConstant), U8(187),
+  /* 2473 E> */ B(Star), R(0),
+  /* 2486 S> */ B(LdaConstant), U8(188),
+  /* 2486 E> */ B(Star), R(0),
+  /* 2499 S> */ B(LdaConstant), U8(189),
+  /* 2499 E> */ B(Star), R(0),
+  /* 2512 S> */ B(LdaConstant), U8(190),
+  /* 2512 E> */ B(Star), R(0),
+  /* 2525 S> */ B(LdaConstant), U8(191),
+  /* 2525 E> */ B(Star), R(0),
+  /* 2538 S> */ B(LdaConstant), U8(192),
+  /* 2538 E> */ B(Star), R(0),
+  /* 2551 S> */ B(LdaConstant), U8(193),
+  /* 2551 E> */ B(Star), R(0),
+  /* 2564 S> */ B(LdaConstant), U8(194),
+  /* 2564 E> */ B(Star), R(0),
+  /* 2577 S> */ B(LdaConstant), U8(195),
+  /* 2577 E> */ B(Star), R(0),
+  /* 2590 S> */ B(LdaConstant), U8(196),
+  /* 2590 E> */ B(Star), R(0),
+  /* 2603 S> */ B(LdaConstant), U8(197),
+  /* 2603 E> */ B(Star), R(0),
+  /* 2616 S> */ B(LdaConstant), U8(198),
+  /* 2616 E> */ B(Star), R(0),
+  /* 2629 S> */ B(LdaConstant), U8(199),
+  /* 2629 E> */ B(Star), R(0),
+  /* 2642 S> */ B(LdaConstant), U8(200),
+  /* 2642 E> */ B(Star), R(0),
+  /* 2655 S> */ B(LdaConstant), U8(201),
+  /* 2655 E> */ B(Star), R(0),
+  /* 2668 S> */ B(LdaConstant), U8(202),
+  /* 2668 E> */ B(Star), R(0),
+  /* 2681 S> */ B(LdaConstant), U8(203),
+  /* 2681 E> */ B(Star), R(0),
+  /* 2694 S> */ B(LdaConstant), U8(204),
+  /* 2694 E> */ B(Star), R(0),
+  /* 2707 S> */ B(LdaConstant), U8(205),
+  /* 2707 E> */ B(Star), R(0),
+  /* 2720 S> */ B(LdaConstant), U8(206),
+  /* 2720 E> */ B(Star), R(0),
+  /* 2733 S> */ B(LdaConstant), U8(207),
+  /* 2733 E> */ B(Star), R(0),
+  /* 2746 S> */ B(LdaConstant), U8(208),
+  /* 2746 E> */ B(Star), R(0),
+  /* 2759 S> */ B(LdaConstant), U8(209),
+  /* 2759 E> */ B(Star), R(0),
+  /* 2772 S> */ B(LdaConstant), U8(210),
+  /* 2772 E> */ B(Star), R(0),
+  /* 2785 S> */ B(LdaConstant), U8(211),
+  /* 2785 E> */ B(Star), R(0),
+  /* 2798 S> */ B(LdaConstant), U8(212),
+  /* 2798 E> */ B(Star), R(0),
+  /* 2811 S> */ B(LdaConstant), U8(213),
+  /* 2811 E> */ B(Star), R(0),
+  /* 2824 S> */ B(LdaConstant), U8(214),
+  /* 2824 E> */ B(Star), R(0),
+  /* 2837 S> */ B(LdaConstant), U8(215),
+  /* 2837 E> */ B(Star), R(0),
+  /* 2850 S> */ B(LdaConstant), U8(216),
+  /* 2850 E> */ B(Star), R(0),
+  /* 2863 S> */ B(LdaConstant), U8(217),
+  /* 2863 E> */ B(Star), R(0),
+  /* 2876 S> */ B(LdaConstant), U8(218),
+  /* 2876 E> */ B(Star), R(0),
+  /* 2889 S> */ B(LdaConstant), U8(219),
+  /* 2889 E> */ B(Star), R(0),
+  /* 2902 S> */ B(LdaConstant), U8(220),
+  /* 2902 E> */ B(Star), R(0),
+  /* 2915 S> */ B(LdaConstant), U8(221),
+  /* 2915 E> */ B(Star), R(0),
+  /* 2928 S> */ B(LdaConstant), U8(222),
+  /* 2928 E> */ B(Star), R(0),
+  /* 2941 S> */ B(LdaConstant), U8(223),
+  /* 2941 E> */ B(Star), R(0),
+  /* 2954 S> */ B(LdaConstant), U8(224),
+  /* 2954 E> */ B(Star), R(0),
+  /* 2967 S> */ B(LdaConstant), U8(225),
+  /* 2967 E> */ B(Star), R(0),
+  /* 2980 S> */ B(LdaConstant), U8(226),
+  /* 2980 E> */ B(Star), R(0),
+  /* 2993 S> */ B(LdaConstant), U8(227),
+  /* 2993 E> */ B(Star), R(0),
+  /* 3006 S> */ B(LdaConstant), U8(228),
+  /* 3006 E> */ B(Star), R(0),
+  /* 3019 S> */ B(LdaConstant), U8(229),
+  /* 3019 E> */ B(Star), R(0),
+  /* 3032 S> */ B(LdaConstant), U8(230),
+  /* 3032 E> */ B(Star), R(0),
+  /* 3045 S> */ B(LdaConstant), U8(231),
+  /* 3045 E> */ B(Star), R(0),
+  /* 3058 S> */ B(LdaConstant), U8(232),
+  /* 3058 E> */ B(Star), R(0),
+  /* 3071 S> */ B(LdaConstant), U8(233),
+  /* 3071 E> */ B(Star), R(0),
+  /* 3084 S> */ B(LdaConstant), U8(234),
+  /* 3084 E> */ B(Star), R(0),
+  /* 3097 S> */ B(LdaConstant), U8(235),
+  /* 3097 E> */ B(Star), R(0),
+  /* 3110 S> */ B(LdaConstant), U8(236),
+  /* 3110 E> */ B(Star), R(0),
+  /* 3123 S> */ B(LdaConstant), U8(237),
+  /* 3123 E> */ B(Star), R(0),
+  /* 3136 S> */ B(LdaConstant), U8(238),
+  /* 3136 E> */ B(Star), R(0),
+  /* 3149 S> */ B(LdaConstant), U8(239),
+  /* 3149 E> */ B(Star), R(0),
+  /* 3162 S> */ B(LdaConstant), U8(240),
+  /* 3162 E> */ B(Star), R(0),
+  /* 3175 S> */ B(LdaConstant), U8(241),
+  /* 3175 E> */ B(Star), R(0),
+  /* 3188 S> */ B(LdaConstant), U8(242),
+  /* 3188 E> */ B(Star), R(0),
+  /* 3201 S> */ B(LdaConstant), U8(243),
+  /* 3201 E> */ B(Star), R(0),
+  /* 3214 S> */ B(LdaConstant), U8(244),
+  /* 3214 E> */ B(Star), R(0),
+  /* 3227 S> */ B(LdaConstant), U8(245),
+  /* 3227 E> */ B(Star), R(0),
+  /* 3240 S> */ B(LdaConstant), U8(246),
+  /* 3240 E> */ B(Star), R(0),
+  /* 3253 S> */ B(LdaConstant), U8(247),
+  /* 3253 E> */ B(Star), R(0),
+  /* 3266 S> */ B(LdaConstant), U8(248),
+  /* 3266 E> */ B(Star), R(0),
+  /* 3279 S> */ B(LdaConstant), U8(249),
+  /* 3279 E> */ B(Star), R(0),
+  /* 3292 S> */ B(LdaConstant), U8(250),
+  /* 3292 E> */ B(Star), R(0),
+  /* 3305 S> */ B(LdaConstant), U8(251),
+  /* 3305 E> */ B(Star), R(0),
+  /* 3318 S> */ B(LdaConstant), U8(252),
+  /* 3318 E> */ B(Star), R(0),
+  /* 3331 S> */ B(LdaConstant), U8(253),
+  /* 3331 E> */ B(Star), R(0),
+  /* 3344 S> */ B(LdaConstant), U8(254),
+  /* 3344 E> */ B(Star), R(0),
+  /* 3357 S> */ B(LdaConstant), U8(255),
+  /* 3357 E> */ B(Star), R(0),
+  /* 3370 S> */ B(Wide), B(LdaConstant), U16(256),
+  /* 3370 E> */ B(Star), R(0),
+  /* 3383 S> */ B(Wide), B(LdaConstant), U16(257),
+  /* 3383 E> */ B(Star), R(0),
+  /* 3396 S> */ B(Wide), B(LdaConstant), U16(258),
+  /* 3396 E> */ B(Star), R(0),
+  /* 3409 S> */ B(Wide), B(LdaConstant), U16(259),
+  /* 3409 E> */ B(Star), R(0),
+  /* 3422 S> */ B(Wide), B(LdaConstant), U16(260),
+  /* 3422 E> */ B(Star), R(0),
+  /* 3435 S> */ B(Wide), B(LdaConstant), U16(261),
+  /* 3435 E> */ B(Star), R(0),
+  /* 3448 S> */ B(Wide), B(LdaConstant), U16(262),
+  /* 3448 E> */ B(Star), R(0),
+  /* 3461 S> */ B(Wide), B(LdaConstant), U16(263),
+  /* 3461 E> */ B(Star), R(0),
+  /* 3474 S> */ B(Wide), B(LdaConstant), U16(264),
+  /* 3474 E> */ B(Star), R(0),
+  /* 3487 S> */ B(Wide), B(LdaConstant), U16(265),
+  /* 3487 E> */ B(Star), R(0),
+  /* 3500 S> */ B(Wide), B(LdaConstant), U16(266),
+  /* 3500 E> */ B(Star), R(0),
+  /* 3513 S> */ B(Wide), B(LdaConstant), U16(267),
+  /* 3513 E> */ B(Star), R(0),
+  /* 3526 S> */ B(Wide), B(LdaConstant), U16(268),
+  /* 3526 E> */ B(Star), R(0),
+  /* 3539 S> */ B(Wide), B(LdaConstant), U16(269),
+  /* 3539 E> */ B(Star), R(0),
+  /* 3552 S> */ B(Wide), B(LdaConstant), U16(270),
+  /* 3552 E> */ B(Star), R(0),
+  /* 3565 S> */ B(Wide), B(LdaConstant), U16(271),
+  /* 3565 E> */ B(Star), R(0),
+  /* 3578 S> */ B(Wide), B(LdaConstant), U16(272),
+  /* 3578 E> */ B(Star), R(0),
+  /* 3591 S> */ B(Wide), B(LdaConstant), U16(273),
+  /* 3591 E> */ B(Star), R(0),
+  /* 3604 S> */ B(Wide), B(LdaConstant), U16(274),
+  /* 3604 E> */ B(Star), R(0),
+  /* 3617 S> */ B(Wide), B(LdaConstant), U16(275),
+  /* 3617 E> */ B(Star), R(0),
+  /* 3630 S> */ B(Wide), B(LdaConstant), U16(276),
+  /* 3630 E> */ B(Star), R(0),
+  /* 3643 S> */ B(Wide), B(LdaConstant), U16(277),
+  /* 3643 E> */ B(Star), R(0),
+  /* 3656 S> */ B(Wide), B(LdaConstant), U16(278),
+  /* 3656 E> */ B(Star), R(0),
+  /* 3669 S> */ B(Wide), B(LdaConstant), U16(279),
+  /* 3669 E> */ B(Star), R(0),
+  /* 3682 S> */ B(Wide), B(LdaConstant), U16(280),
+  /* 3682 E> */ B(Star), R(0),
+  /* 3695 S> */ B(Wide), B(LdaConstant), U16(281),
+  /* 3695 E> */ B(Star), R(0),
+  /* 3708 S> */ B(Wide), B(LdaConstant), U16(282),
+  /* 3708 E> */ B(Star), R(0),
+  /* 3721 S> */ B(Wide), B(LdaConstant), U16(283),
+  /* 3721 E> */ B(Star), R(0),
+  /* 3734 S> */ B(Wide), B(LdaConstant), U16(284),
+  /* 3734 E> */ B(Star), R(0),
+  /* 3747 S> */ B(Wide), B(LdaConstant), U16(285),
+  /* 3747 E> */ B(Star), R(0),
+  /* 3760 S> */ B(Wide), B(LdaConstant), U16(286),
+  /* 3760 E> */ B(Star), R(0),
+  /* 3773 S> */ B(Wide), B(LdaConstant), U16(287),
+  /* 3773 E> */ B(Star), R(0),
+  /* 3786 S> */ B(Wide), B(LdaConstant), U16(288),
+  /* 3786 E> */ B(Star), R(0),
+  /* 3799 S> */ B(Wide), B(LdaConstant), U16(289),
+  /* 3799 E> */ B(Star), R(0),
+  /* 3812 S> */ B(Wide), B(LdaConstant), U16(290),
+  /* 3812 E> */ B(Star), R(0),
+  /* 3825 S> */ B(Wide), B(LdaConstant), U16(291),
+  /* 3825 E> */ B(Star), R(0),
+  /* 3838 S> */ B(Wide), B(LdaConstant), U16(292),
+  /* 3838 E> */ B(Star), R(0),
+  /* 3851 S> */ B(Wide), B(LdaConstant), U16(293),
+  /* 3851 E> */ B(Star), R(0),
+  /* 3864 S> */ B(Wide), B(LdaConstant), U16(294),
+  /* 3864 E> */ B(Star), R(0),
+  /* 3877 S> */ B(Wide), B(LdaConstant), U16(295),
+  /* 3877 E> */ B(Star), R(0),
+  /* 3890 S> */ B(Wide), B(LdaConstant), U16(296),
+  /* 3890 E> */ B(Star), R(0),
+  /* 3903 S> */ B(Wide), B(LdaConstant), U16(297),
+  /* 3903 E> */ B(Star), R(0),
+  /* 3916 S> */ B(Wide), B(LdaConstant), U16(298),
+  /* 3916 E> */ B(Star), R(0),
+  /* 3929 S> */ B(Wide), B(LdaConstant), U16(299),
+  /* 3929 E> */ B(Star), R(0),
+  /* 3942 S> */ B(Wide), B(LdaConstant), U16(300),
+  /* 3942 E> */ B(Star), R(0),
+  /* 3955 S> */ B(Wide), B(LdaConstant), U16(301),
+  /* 3955 E> */ B(Star), R(0),
+  /* 3968 S> */ B(Wide), B(LdaConstant), U16(302),
+  /* 3968 E> */ B(Star), R(0),
+  /* 3981 S> */ B(Wide), B(LdaConstant), U16(303),
+  /* 3981 E> */ B(Star), R(0),
+  /* 3994 S> */ B(Wide), B(LdaConstant), U16(304),
+  /* 3994 E> */ B(Star), R(0),
+  /* 4007 S> */ B(Wide), B(LdaConstant), U16(305),
+  /* 4007 E> */ B(Star), R(0),
+  /* 4020 S> */ B(Wide), B(LdaConstant), U16(306),
+  /* 4020 E> */ B(Star), R(0),
+  /* 4033 S> */ B(Wide), B(LdaConstant), U16(307),
+  /* 4033 E> */ B(Star), R(0),
+  /* 4046 S> */ B(Wide), B(LdaConstant), U16(308),
+  /* 4046 E> */ B(Star), R(0),
+  /* 4059 S> */ B(Wide), B(LdaConstant), U16(309),
+  /* 4059 E> */ B(Star), R(0),
+  /* 4072 S> */ B(Wide), B(LdaConstant), U16(310),
+  /* 4072 E> */ B(Star), R(0),
+  /* 4085 S> */ B(Wide), B(LdaConstant), U16(311),
+  /* 4085 E> */ B(Star), R(0),
+  /* 4103 S> */ B(LdaZero),
+  /* 4103 E> */ B(Star), R(1),
+  /* 4108 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /* 4108 E> */ B(TestLessThan), R(2),
+                B(Wide), B(JumpIfFalse), U16(46),
+  /* 4090 E> */ B(StackCheck),
+  /* 4122 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /* 4128 E> */ B(TestEqual), R(2),
+                B(Wide), B(JumpIfFalse), U16(7),
+  /* 4134 S> */ B(Wide), B(Jump), U16(19),
+  /* 4146 S> */ B(Ldar), R(1),
+                B(Star), R(2),
+                B(LdaSmi), U8(2),
+  /* 4152 E> */ B(TestEqual), R(2),
+                B(Wide), B(JumpIfFalse), U16(7),
+  /* 4158 S> */ B(Wide), B(Jump), U16(13),
+  /* 4114 S> */ B(Ldar), R(1),
+                B(ToNumber),
+                B(Star), R(2),
+                B(Inc),
+  /* 4114 E> */ B(Star), R(1),
+                B(Jump), U8(-53),
+  /* 4167 S> */ B(LdaSmi), U8(3),
+  /* 4177 S> */ B(Return),
 ]
 constant pool: [
   0.1,
diff --git a/test/cctest/interpreter/bytecode_expectations/LetVariable.golden b/test/cctest/interpreter/bytecode_expectations/LetVariable.golden
index 5ceda85..3ac793a 100644
--- a/test/cctest/interpreter/bytecode_expectations/LetVariable.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LetVariable.golden
@@ -15,13 +15,13 @@
 parameter count: 1
 bytecode array length: 10
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+                B(LdaUndefined),
+  /*   46 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -36,16 +36,16 @@
 parameter count: 1
 bytecode array length: 20
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
+  /*   56 S> */ B(Return),
 ]
 constant pool: [
   "x",
@@ -61,20 +61,20 @@
 parameter count: 1
 bytecode array length: 27
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(20),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(Ldar), R(1),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   45 S> */ B(LdaSmi), U8(20),
+  /*   45 E> */ B(Star), R(1),
+                B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+                B(Ldar), R(1),
+                B(Star), R(0),
+  /*   45 E> */ B(LdaUndefined),
+  /*   52 S> */ B(Return),
 ]
 constant pool: [
   "x",
@@ -90,22 +90,22 @@
 parameter count: 1
 bytecode array length: 31
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(LdaSmi), U8(20),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(Ldar), R(1),
-  B(Star), R(0),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaTheHole),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(20),
+  /*   48 E> */ B(Star), R(1),
+                B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+                B(Ldar), R(1),
+                B(Star), R(0),
+                B(LdaUndefined),
+  /*   54 S> */ B(Return),
 ]
 constant pool: [
   "x",
diff --git a/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden b/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden
index 4fc5c4f..591fe88 100644
--- a/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden
@@ -15,17 +15,17 @@
 parameter count: 1
 bytecode array length: 24
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+  /*   72 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -41,21 +41,21 @@
 parameter count: 1
 bytecode array length: 37
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(1),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   72 S> */ B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(1),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+  /*   82 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -72,25 +72,25 @@
 parameter count: 1
 bytecode array length: 45
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(20),
-  B(Star), R(2),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(Ldar), R(2),
-  B(StaContextSlot), R(context), U8(4),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   45 S> */ B(LdaSmi), U8(20),
+  /*   45 E> */ B(Star), R(2),
+                B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Ldar), R(2),
+                B(StaContextSlot), R(context), U8(4),
+  /*   45 E> */ B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+  /*   78 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
@@ -107,26 +107,26 @@
 parameter count: 1
 bytecode array length: 47
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(1),
-  B(LdaTheHole),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateClosure), U8(0), U8(0),
-  B(Star), R(0),
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaSmi), U8(20),
-  B(Star), R(2),
-  B(LdaContextSlot), R(context), U8(4),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
-  B(Ldar), R(2),
-  B(StaContextSlot), R(context), U8(4),
-  B(LdaUndefined),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(LdaTheHole),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   46 S> */ B(LdaSmi), U8(20),
+  /*   48 E> */ B(Star), R(2),
+                B(LdaContextSlot), R(context), U8(4),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Ldar), R(2),
+                B(StaContextSlot), R(context), U8(4),
+                B(LdaUndefined),
+  /*   80 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::SHARED_FUNCTION_INFO_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden b/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden
index 0a96cae..7fb831b 100644
--- a/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden
@@ -18,9 +18,9 @@
 parameter count: 1
 bytecode array length: 5
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(Return),
+  /*   21 E> */ B(StackCheck),
+  /*   26 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   36 S> */ B(Return),
 ]
 constant pool: [
   "a",
@@ -38,9 +38,9 @@
 parameter count: 1
 bytecode array length: 5
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(Return),
+  /*   27 E> */ B(StackCheck),
+  /*   32 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   42 S> */ B(Return),
 ]
 constant pool: [
   "t",
@@ -58,9 +58,9 @@
 parameter count: 1
 bytecode array length: 5
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobal), U8(0), U8(1),
-  B(Return),
+  /*   17 E> */ B(StackCheck),
+  /*   22 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
   "a",
@@ -208,393 +208,393 @@
 parameter count: 2
 bytecode array length: 1032
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(1),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(3),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(5),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(7),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(9),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(11),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(13),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(15),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(17),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(19),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(21),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(23),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(25),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(27),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(29),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(31),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(33),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(35),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(37),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(39),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(41),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(43),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(45),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(47),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(49),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(51),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(53),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(55),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(57),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(59),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(61),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(63),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(65),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(67),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(69),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(71),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(73),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(75),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(77),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(79),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(81),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(83),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(85),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(87),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(89),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(91),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(93),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(95),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(97),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(99),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(101),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(103),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(105),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(107),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(109),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(111),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(113),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(115),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(117),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(119),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(121),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(123),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(125),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(127),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(129),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(131),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(133),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(135),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(137),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(139),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(141),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(143),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(145),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(147),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(149),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(151),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(153),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(155),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(157),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(159),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(161),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(163),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(165),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(167),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(169),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(171),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(173),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(175),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(177),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(179),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(181),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(183),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(185),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(187),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(189),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(191),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(193),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(195),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(197),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(199),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(201),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(203),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(205),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(207),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(209),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(211),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(213),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(215),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(217),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(219),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(221),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(223),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(225),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(227),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(229),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(231),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(233),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(235),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(237),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(239),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(241),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(243),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(245),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(247),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(249),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(251),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(253),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(255),
-  B(Wide), B(LdaGlobal), U16(1), U16(257),
-  B(Return),
+  /*   17 E> */ B(StackCheck),
+  /*   25 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   26 E> */ B(LoadIC), R(0), U8(0), U8(1),
+  /*   35 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   36 E> */ B(LoadIC), R(0), U8(0), U8(3),
+  /*   45 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   46 E> */ B(LoadIC), R(0), U8(0), U8(5),
+  /*   55 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   56 E> */ B(LoadIC), R(0), U8(0), U8(7),
+  /*   65 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   66 E> */ B(LoadIC), R(0), U8(0), U8(9),
+  /*   75 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   76 E> */ B(LoadIC), R(0), U8(0), U8(11),
+  /*   85 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   86 E> */ B(LoadIC), R(0), U8(0), U8(13),
+  /*   95 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   96 E> */ B(LoadIC), R(0), U8(0), U8(15),
+  /*  105 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  106 E> */ B(LoadIC), R(0), U8(0), U8(17),
+  /*  115 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  116 E> */ B(LoadIC), R(0), U8(0), U8(19),
+  /*  125 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  126 E> */ B(LoadIC), R(0), U8(0), U8(21),
+  /*  135 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  136 E> */ B(LoadIC), R(0), U8(0), U8(23),
+  /*  145 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  146 E> */ B(LoadIC), R(0), U8(0), U8(25),
+  /*  155 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  156 E> */ B(LoadIC), R(0), U8(0), U8(27),
+  /*  165 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  166 E> */ B(LoadIC), R(0), U8(0), U8(29),
+  /*  175 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  176 E> */ B(LoadIC), R(0), U8(0), U8(31),
+  /*  185 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  186 E> */ B(LoadIC), R(0), U8(0), U8(33),
+  /*  195 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  196 E> */ B(LoadIC), R(0), U8(0), U8(35),
+  /*  205 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  206 E> */ B(LoadIC), R(0), U8(0), U8(37),
+  /*  215 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  216 E> */ B(LoadIC), R(0), U8(0), U8(39),
+  /*  225 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  226 E> */ B(LoadIC), R(0), U8(0), U8(41),
+  /*  235 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  236 E> */ B(LoadIC), R(0), U8(0), U8(43),
+  /*  245 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  246 E> */ B(LoadIC), R(0), U8(0), U8(45),
+  /*  255 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  256 E> */ B(LoadIC), R(0), U8(0), U8(47),
+  /*  265 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  266 E> */ B(LoadIC), R(0), U8(0), U8(49),
+  /*  275 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  276 E> */ B(LoadIC), R(0), U8(0), U8(51),
+  /*  285 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  286 E> */ B(LoadIC), R(0), U8(0), U8(53),
+  /*  295 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  296 E> */ B(LoadIC), R(0), U8(0), U8(55),
+  /*  305 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  306 E> */ B(LoadIC), R(0), U8(0), U8(57),
+  /*  315 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  316 E> */ B(LoadIC), R(0), U8(0), U8(59),
+  /*  325 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  326 E> */ B(LoadIC), R(0), U8(0), U8(61),
+  /*  335 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  336 E> */ B(LoadIC), R(0), U8(0), U8(63),
+  /*  345 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  346 E> */ B(LoadIC), R(0), U8(0), U8(65),
+  /*  355 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  356 E> */ B(LoadIC), R(0), U8(0), U8(67),
+  /*  365 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  366 E> */ B(LoadIC), R(0), U8(0), U8(69),
+  /*  375 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  376 E> */ B(LoadIC), R(0), U8(0), U8(71),
+  /*  385 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  386 E> */ B(LoadIC), R(0), U8(0), U8(73),
+  /*  395 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  396 E> */ B(LoadIC), R(0), U8(0), U8(75),
+  /*  405 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  406 E> */ B(LoadIC), R(0), U8(0), U8(77),
+  /*  415 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  416 E> */ B(LoadIC), R(0), U8(0), U8(79),
+  /*  425 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  426 E> */ B(LoadIC), R(0), U8(0), U8(81),
+  /*  435 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  436 E> */ B(LoadIC), R(0), U8(0), U8(83),
+  /*  445 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  446 E> */ B(LoadIC), R(0), U8(0), U8(85),
+  /*  455 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  456 E> */ B(LoadIC), R(0), U8(0), U8(87),
+  /*  465 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  466 E> */ B(LoadIC), R(0), U8(0), U8(89),
+  /*  475 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  476 E> */ B(LoadIC), R(0), U8(0), U8(91),
+  /*  485 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  486 E> */ B(LoadIC), R(0), U8(0), U8(93),
+  /*  495 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  496 E> */ B(LoadIC), R(0), U8(0), U8(95),
+  /*  505 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  506 E> */ B(LoadIC), R(0), U8(0), U8(97),
+  /*  515 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  516 E> */ B(LoadIC), R(0), U8(0), U8(99),
+  /*  525 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  526 E> */ B(LoadIC), R(0), U8(0), U8(101),
+  /*  535 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  536 E> */ B(LoadIC), R(0), U8(0), U8(103),
+  /*  545 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  546 E> */ B(LoadIC), R(0), U8(0), U8(105),
+  /*  555 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  556 E> */ B(LoadIC), R(0), U8(0), U8(107),
+  /*  565 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  566 E> */ B(LoadIC), R(0), U8(0), U8(109),
+  /*  575 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  576 E> */ B(LoadIC), R(0), U8(0), U8(111),
+  /*  585 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  586 E> */ B(LoadIC), R(0), U8(0), U8(113),
+  /*  595 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  596 E> */ B(LoadIC), R(0), U8(0), U8(115),
+  /*  605 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  606 E> */ B(LoadIC), R(0), U8(0), U8(117),
+  /*  615 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  616 E> */ B(LoadIC), R(0), U8(0), U8(119),
+  /*  625 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  626 E> */ B(LoadIC), R(0), U8(0), U8(121),
+  /*  635 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  636 E> */ B(LoadIC), R(0), U8(0), U8(123),
+  /*  645 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  646 E> */ B(LoadIC), R(0), U8(0), U8(125),
+  /*  655 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  656 E> */ B(LoadIC), R(0), U8(0), U8(127),
+  /*  665 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  666 E> */ B(LoadIC), R(0), U8(0), U8(129),
+  /*  675 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  676 E> */ B(LoadIC), R(0), U8(0), U8(131),
+  /*  685 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  686 E> */ B(LoadIC), R(0), U8(0), U8(133),
+  /*  695 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  696 E> */ B(LoadIC), R(0), U8(0), U8(135),
+  /*  705 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  706 E> */ B(LoadIC), R(0), U8(0), U8(137),
+  /*  715 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  716 E> */ B(LoadIC), R(0), U8(0), U8(139),
+  /*  725 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  726 E> */ B(LoadIC), R(0), U8(0), U8(141),
+  /*  735 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  736 E> */ B(LoadIC), R(0), U8(0), U8(143),
+  /*  745 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  746 E> */ B(LoadIC), R(0), U8(0), U8(145),
+  /*  755 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  756 E> */ B(LoadIC), R(0), U8(0), U8(147),
+  /*  765 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  766 E> */ B(LoadIC), R(0), U8(0), U8(149),
+  /*  775 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  776 E> */ B(LoadIC), R(0), U8(0), U8(151),
+  /*  785 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  786 E> */ B(LoadIC), R(0), U8(0), U8(153),
+  /*  795 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  796 E> */ B(LoadIC), R(0), U8(0), U8(155),
+  /*  805 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  806 E> */ B(LoadIC), R(0), U8(0), U8(157),
+  /*  815 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  816 E> */ B(LoadIC), R(0), U8(0), U8(159),
+  /*  825 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  826 E> */ B(LoadIC), R(0), U8(0), U8(161),
+  /*  835 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  836 E> */ B(LoadIC), R(0), U8(0), U8(163),
+  /*  845 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  846 E> */ B(LoadIC), R(0), U8(0), U8(165),
+  /*  855 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  856 E> */ B(LoadIC), R(0), U8(0), U8(167),
+  /*  865 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  866 E> */ B(LoadIC), R(0), U8(0), U8(169),
+  /*  875 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  876 E> */ B(LoadIC), R(0), U8(0), U8(171),
+  /*  885 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  886 E> */ B(LoadIC), R(0), U8(0), U8(173),
+  /*  895 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  896 E> */ B(LoadIC), R(0), U8(0), U8(175),
+  /*  905 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  906 E> */ B(LoadIC), R(0), U8(0), U8(177),
+  /*  915 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  916 E> */ B(LoadIC), R(0), U8(0), U8(179),
+  /*  925 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  926 E> */ B(LoadIC), R(0), U8(0), U8(181),
+  /*  935 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  936 E> */ B(LoadIC), R(0), U8(0), U8(183),
+  /*  945 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  946 E> */ B(LoadIC), R(0), U8(0), U8(185),
+  /*  955 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  956 E> */ B(LoadIC), R(0), U8(0), U8(187),
+  /*  965 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  966 E> */ B(LoadIC), R(0), U8(0), U8(189),
+  /*  975 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  976 E> */ B(LoadIC), R(0), U8(0), U8(191),
+  /*  985 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  986 E> */ B(LoadIC), R(0), U8(0), U8(193),
+  /*  995 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  996 E> */ B(LoadIC), R(0), U8(0), U8(195),
+  /* 1005 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1006 E> */ B(LoadIC), R(0), U8(0), U8(197),
+  /* 1015 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1016 E> */ B(LoadIC), R(0), U8(0), U8(199),
+  /* 1025 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1026 E> */ B(LoadIC), R(0), U8(0), U8(201),
+  /* 1035 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1036 E> */ B(LoadIC), R(0), U8(0), U8(203),
+  /* 1045 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1046 E> */ B(LoadIC), R(0), U8(0), U8(205),
+  /* 1055 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1056 E> */ B(LoadIC), R(0), U8(0), U8(207),
+  /* 1065 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1066 E> */ B(LoadIC), R(0), U8(0), U8(209),
+  /* 1075 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1076 E> */ B(LoadIC), R(0), U8(0), U8(211),
+  /* 1085 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1086 E> */ B(LoadIC), R(0), U8(0), U8(213),
+  /* 1095 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1096 E> */ B(LoadIC), R(0), U8(0), U8(215),
+  /* 1105 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1106 E> */ B(LoadIC), R(0), U8(0), U8(217),
+  /* 1115 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1116 E> */ B(LoadIC), R(0), U8(0), U8(219),
+  /* 1125 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1126 E> */ B(LoadIC), R(0), U8(0), U8(221),
+  /* 1135 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1136 E> */ B(LoadIC), R(0), U8(0), U8(223),
+  /* 1145 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1146 E> */ B(LoadIC), R(0), U8(0), U8(225),
+  /* 1155 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1156 E> */ B(LoadIC), R(0), U8(0), U8(227),
+  /* 1165 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1166 E> */ B(LoadIC), R(0), U8(0), U8(229),
+  /* 1175 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1176 E> */ B(LoadIC), R(0), U8(0), U8(231),
+  /* 1185 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1186 E> */ B(LoadIC), R(0), U8(0), U8(233),
+  /* 1195 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1196 E> */ B(LoadIC), R(0), U8(0), U8(235),
+  /* 1205 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1206 E> */ B(LoadIC), R(0), U8(0), U8(237),
+  /* 1215 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1216 E> */ B(LoadIC), R(0), U8(0), U8(239),
+  /* 1225 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1226 E> */ B(LoadIC), R(0), U8(0), U8(241),
+  /* 1235 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1236 E> */ B(LoadIC), R(0), U8(0), U8(243),
+  /* 1245 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1246 E> */ B(LoadIC), R(0), U8(0), U8(245),
+  /* 1255 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1256 E> */ B(LoadIC), R(0), U8(0), U8(247),
+  /* 1265 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1266 E> */ B(LoadIC), R(0), U8(0), U8(249),
+  /* 1275 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1276 E> */ B(LoadIC), R(0), U8(0), U8(251),
+  /* 1285 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1286 E> */ B(LoadIC), R(0), U8(0), U8(253),
+  /* 1295 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1296 E> */ B(LoadIC), R(0), U8(0), U8(255),
+  /* 1305 S> */ B(Wide), B(LdaGlobal), U16(1), U16(257),
+  /* 1315 S> */ B(Return),
 ]
 constant pool: [
   "name",
diff --git a/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden b/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden
index cddb9a1..fed8367 100644
--- a/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden
@@ -15,12 +15,12 @@
 parameter count: 1
 bytecode array length: 9
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(JumpIfToBooleanTrue), U8(4),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanTrue), U8(4),
+                B(LdaSmi), U8(3),
+  /*   60 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -35,15 +35,15 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(TestEqual), R(1),
-  B(JumpIfTrue), U8(4),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   55 E> */ B(TestEqual), R(1),
+                B(JumpIfTrue), U8(4),
+                B(LdaSmi), U8(3),
+  /*   67 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -58,12 +58,12 @@
 parameter count: 1
 bytecode array length: 9
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(JumpIfToBooleanFalse), U8(4),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanFalse), U8(4),
+                B(LdaSmi), U8(3),
+  /*   60 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -78,15 +78,15 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(TestEqual), R(1),
-  B(JumpIfFalse), U8(4),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaZero),
+  /*   55 E> */ B(TestEqual), R(1),
+                B(JumpIfFalse), U8(4),
+                B(LdaSmi), U8(3),
+  /*   67 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -101,12 +101,12 @@
 parameter count: 1
 bytecode array length: 9
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(JumpIfToBooleanTrue), U8(4),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanTrue), U8(4),
+                B(LdaSmi), U8(3),
+  /*   68 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -119,25 +119,21 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 32
+bytecode array length: 24
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(2),
-  B(Star), R(0),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(LdaSmi), U8(4),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(JumpIfToBooleanTrue), U8(16),
-  B(Ldar), R(0),
-  B(Ldar), R(1),
-  B(Ldar), R(0),
-  B(Ldar), R(1),
-  B(LdaSmi), U8(5),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(2),
+  /*   42 E> */ B(Star), R(0),
+  /*   49 S> */ B(LdaSmi), U8(3),
+  /*   49 E> */ B(Star), R(1),
+  /*   56 S> */ B(LdaSmi), U8(4),
+  /*   56 E> */ B(Star), R(2),
+  /*   59 S> */ B(Ldar), R(0),
+                B(JumpIfToBooleanTrue), U8(8),
+  /*   81 E> */ B(LdaSmi), U8(5),
+  /*   86 E> */ B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /*   95 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -184,145 +180,145 @@
 parameter count: 1
 bytecode array length: 276
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(JumpIfToBooleanTrueConstant), U8(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(2),
+  /*   53 E> */ B(Star), R(1),
+  /*   60 S> */ B(LdaSmi), U8(3),
+  /*   60 E> */ B(Star), R(2),
+  /*   63 S> */ B(Ldar), R(0),
+                B(JumpIfToBooleanTrueConstant), U8(0),
+                B(LdaSmi), U8(1),
+  /*   81 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   88 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*   98 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  105 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  115 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  122 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  132 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  139 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  149 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  156 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  166 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  173 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  183 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  190 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  200 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  207 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  217 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  224 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  234 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  241 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  251 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  258 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  268 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  275 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  285 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  292 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  302 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  309 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  319 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  326 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  336 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  343 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  353 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  360 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  370 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  377 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  387 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  394 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  404 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  411 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  421 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  428 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  438 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  445 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  455 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  462 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  472 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  479 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  489 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  496 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  506 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  513 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  523 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  530 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  540 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  547 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  557 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  564 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  574 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  581 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  591 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  598 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  608 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  615 E> */ B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /*  624 S> */ B(Return),
 ]
 constant pool: [
   260,
@@ -370,145 +366,145 @@
 parameter count: 1
 bytecode array length: 275
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(JumpIfToBooleanFalseConstant), U8(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(2),
+  /*   53 E> */ B(Star), R(1),
+  /*   60 S> */ B(LdaSmi), U8(3),
+  /*   60 E> */ B(Star), R(2),
+  /*   63 S> */ B(Ldar), R(0),
+                B(JumpIfToBooleanFalseConstant), U8(0),
+                B(LdaSmi), U8(1),
+  /*   81 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   88 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*   98 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  105 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  115 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  122 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  132 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  139 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  149 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  156 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  166 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  173 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  183 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  190 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  200 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  207 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  217 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  224 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  234 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  241 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  251 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  258 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  268 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  275 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  285 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  292 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  302 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  309 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  319 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  326 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  336 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  343 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  353 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  360 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  370 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  377 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  387 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  394 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  404 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  411 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  421 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  428 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  438 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  445 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  455 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  462 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  472 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  479 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  489 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  496 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  506 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  513 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  523 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  530 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  540 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  547 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  557 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  564 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  574 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  581 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  591 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  598 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  608 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  615 E> */ B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /*  624 S> */ B(Return),
 ]
 constant pool: [
   260,
@@ -556,148 +552,148 @@
 parameter count: 1
 bytecode array length: 282
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(Star), R(3),
-  B(LdaSmi), U8(3),
-  B(TestGreaterThan), R(3),
-  B(JumpIfTrueConstant), U8(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(2),
+  /*   53 E> */ B(Star), R(1),
+  /*   60 S> */ B(LdaSmi), U8(3),
+  /*   60 E> */ B(Star), R(2),
+  /*   63 S> */ B(Ldar), R(0),
+                B(Star), R(3),
+                B(LdaSmi), U8(3),
+  /*   73 E> */ B(TestGreaterThan), R(3),
+                B(JumpIfTrueConstant), U8(0),
+                B(LdaSmi), U8(1),
+  /*   87 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   94 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  104 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  111 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  121 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  128 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  138 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  145 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  155 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  162 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  172 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  179 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  189 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  196 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  206 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  213 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  223 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  230 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  240 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  247 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  257 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  264 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  274 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  281 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  291 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  298 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  308 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  315 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  325 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  332 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  342 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  349 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  359 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  366 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  376 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  383 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  393 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  400 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  410 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  417 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  427 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  434 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  444 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  451 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  461 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  468 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  478 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  485 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  495 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  502 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  512 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  519 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  529 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  536 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  546 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  553 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  563 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  570 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  580 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  587 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  597 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  604 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  614 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  621 E> */ B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /*  630 S> */ B(Return),
 ]
 constant pool: [
   260,
@@ -745,148 +741,148 @@
 parameter count: 1
 bytecode array length: 281
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(Star), R(3),
-  B(LdaSmi), U8(5),
-  B(TestLessThan), R(3),
-  B(JumpIfFalseConstant), U8(0),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   53 S> */ B(LdaSmi), U8(2),
+  /*   53 E> */ B(Star), R(1),
+  /*   60 S> */ B(LdaSmi), U8(3),
+  /*   60 E> */ B(Star), R(2),
+  /*   63 S> */ B(Ldar), R(0),
+                B(Star), R(3),
+                B(LdaSmi), U8(5),
+  /*   73 E> */ B(TestLessThan), R(3),
+                B(JumpIfFalseConstant), U8(0),
+                B(LdaSmi), U8(1),
+  /*   87 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*   94 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  104 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  111 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  121 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  128 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  138 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  145 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  155 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  162 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  172 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  179 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  189 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  196 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  206 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  213 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  223 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  230 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  240 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  247 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  257 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  264 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  274 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  281 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  291 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  298 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  308 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  315 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  325 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  332 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  342 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  349 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  359 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  366 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  376 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  383 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  393 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  400 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  410 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  417 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  427 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  434 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  444 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  451 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  461 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  468 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  478 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  485 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  495 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  502 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  512 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  519 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  529 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  536 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  546 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  553 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  563 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  570 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  580 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  587 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  597 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  604 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+  /*  614 E> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /*  621 E> */ B(Star), R(2),
+                B(LdaSmi), U8(3),
+  /*  630 S> */ B(Return),
 ]
 constant pool: [
   260,
@@ -902,9 +898,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaZero),
+  /*   49 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -919,9 +915,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(1),
+  /*   49 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -936,15 +932,15 @@
 parameter count: 1
 bytecode array length: 15
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(JumpIfToBooleanFalse), U8(4),
-  B(LdaSmi), U8(3),
-  B(JumpIfToBooleanTrue), U8(3),
-  B(LdaZero),
-  B(LdaSmi), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanFalse), U8(4),
+                B(LdaSmi), U8(3),
+                B(JumpIfToBooleanTrue), U8(3),
+                B(LdaZero),
+                B(LdaSmi), U8(1),
+  /*   68 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden b/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden
index acec42f..99a78be 100644
--- a/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden
@@ -11,36 +11,38 @@
 snippet: "
   eval('var x = 10;'); return x;
 "
-frame size: 9
+frame size: 10
 parameter count: 1
-bytecode array length: 67
+bytecode array length: 71
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(Ldar), R(this),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateMappedArguments),
-  B(StaContextSlot), R(context), U8(5),
-  B(Ldar), R(new_target),
-  B(StaContextSlot), R(context), U8(6),
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(3),
-  B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(Mov), R(1), R(4),
-  B(Mov), R(3), R(5),
-  B(Mov), R(closure), R(6),
-  B(LdaZero),
-  B(Star), R(7),
-  B(LdaSmi), U8(30),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(5),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(2), U8(0),
-  B(LdaLookupSlot), U8(2),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateMappedArguments),
+                B(StaContextSlot), R(context), U8(5),
+                B(Ldar), R(new_target),
+                B(StaContextSlot), R(context), U8(6),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaConstant), U8(0),
+                B(Star), R(3),
+                B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
+                B(LdaZero),
+                B(Star), R(7),
+                B(LdaSmi), U8(30),
+                B(Star), R(8),
+                B(LdaSmi), U8(34),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
+                B(Star), R(1),
+  /*   34 E> */ B(Call), R(1), R(2), U8(2), U8(0),
+  /*   55 S> */ B(LdaLookupSlot), U8(2),
+  /*   65 S> */ B(Return),
 ]
 constant pool: [
   "eval",
@@ -54,37 +56,39 @@
 snippet: "
   eval('var x = 10;'); return typeof x;
 "
-frame size: 9
+frame size: 10
 parameter count: 1
-bytecode array length: 68
+bytecode array length: 72
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(Ldar), R(this),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateMappedArguments),
-  B(StaContextSlot), R(context), U8(5),
-  B(Ldar), R(new_target),
-  B(StaContextSlot), R(context), U8(6),
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(3),
-  B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(Mov), R(1), R(4),
-  B(Mov), R(3), R(5),
-  B(Mov), R(closure), R(6),
-  B(LdaZero),
-  B(Star), R(7),
-  B(LdaSmi), U8(30),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(5),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(2), U8(0),
-  B(LdaLookupSlotInsideTypeof), U8(2),
-  B(TypeOf),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateMappedArguments),
+                B(StaContextSlot), R(context), U8(5),
+                B(Ldar), R(new_target),
+                B(StaContextSlot), R(context), U8(6),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaConstant), U8(0),
+                B(Star), R(3),
+                B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
+                B(LdaZero),
+                B(Star), R(7),
+                B(LdaSmi), U8(30),
+                B(Star), R(8),
+                B(LdaSmi), U8(34),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
+                B(Star), R(1),
+  /*   34 E> */ B(Call), R(1), R(2), U8(2), U8(0),
+  /*   55 S> */ B(LdaLookupSlotInsideTypeof), U8(2),
+                B(TypeOf),
+  /*   72 S> */ B(Return),
 ]
 constant pool: [
   "eval",
@@ -98,37 +102,39 @@
 snippet: "
   x = 20; return eval('');
 "
-frame size: 9
+frame size: 10
 parameter count: 1
-bytecode array length: 69
+bytecode array length: 73
 bytecodes: [
-  B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
-  B(PushContext), R(0),
-  B(Ldar), R(this),
-  B(StaContextSlot), R(context), U8(4),
-  B(CreateMappedArguments),
-  B(StaContextSlot), R(context), U8(5),
-  B(Ldar), R(new_target),
-  B(StaContextSlot), R(context), U8(6),
-  B(StackCheck),
-  B(LdaSmi), U8(20),
-  B(StaLookupSlotSloppy), U8(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
-  B(LdaConstant), U8(2),
-  B(Star), R(3),
-  B(Mov), R(1), R(4),
-  B(Mov), R(3), R(5),
-  B(Mov), R(closure), R(6),
-  B(LdaZero),
-  B(Star), R(7),
-  B(LdaSmi), U8(30),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(5),
-  B(Star), R(1),
-  B(Call), R(1), R(2), U8(2), U8(0),
-  B(Return),
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(0),
+                B(Ldar), R(this),
+                B(StaContextSlot), R(context), U8(4),
+                B(CreateMappedArguments),
+                B(StaContextSlot), R(context), U8(5),
+                B(Ldar), R(new_target),
+                B(StaContextSlot), R(context), U8(6),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(20),
+  /*   36 E> */ B(StaLookupSlotSloppy), U8(0),
+  /*   42 S> */ B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(CallRuntimeForPair), U16(Runtime::kLoadLookupSlotForCall), R(3), U8(1), R(1),
+                B(LdaConstant), U8(2),
+                B(Star), R(3),
+                B(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
+                B(LdaZero),
+                B(Star), R(7),
+                B(LdaSmi), U8(30),
+                B(Star), R(8),
+                B(LdaSmi), U8(49),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
+                B(Star), R(1),
+  /*   49 E> */ B(Call), R(1), R(2), U8(2), U8(0),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
   "x",
diff --git a/test/cctest/interpreter/bytecode_expectations/LookupSlotInEval.golden b/test/cctest/interpreter/bytecode_expectations/LookupSlotInEval.golden
index 26e11e3..4147631 100644
--- a/test/cctest/interpreter/bytecode_expectations/LookupSlotInEval.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LookupSlotInEval.golden
@@ -21,9 +21,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaLookupSlot), U8(0),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(LdaLookupSlot), U8(0),
+  /*   25 S> */ B(Return),
 ]
 constant pool: [
   "x",
@@ -44,11 +44,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(StaLookupSlotSloppy), U8(0),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(LdaSmi), U8(10),
+  /*   17 E> */ B(StaLookupSlotSloppy), U8(0),
+                B(LdaUndefined),
+  /*   23 S> */ B(Return),
 ]
 constant pool: [
   "x",
@@ -69,11 +69,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(StaLookupSlotStrict), U8(0),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   29 S> */ B(LdaSmi), U8(10),
+  /*   31 E> */ B(StaLookupSlotStrict), U8(0),
+                B(LdaUndefined),
+  /*   37 S> */ B(Return),
 ]
 constant pool: [
   "x",
@@ -94,10 +94,10 @@
 parameter count: 1
 bytecode array length: 5
 bytecodes: [
-  B(StackCheck),
-  B(LdaLookupSlotInsideTypeof), U8(0),
-  B(TypeOf),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(LdaLookupSlotInsideTypeof), U8(0),
+                B(TypeOf),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
   "x",
diff --git a/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden b/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden
index 2fdc3e9..2d493bc 100644
--- a/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden
@@ -281,521 +281,521 @@
 parameter count: 1
 bytecode array length: 1030
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(Wide), B(LdaLookupSlot), U16(256),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   22 S> */ B(LdaConstant), U8(0),
+  /*   22 E> */ B(Star), R(0),
+  /*   34 S> */ B(LdaConstant), U8(1),
+  /*   34 E> */ B(Star), R(0),
+  /*   46 S> */ B(LdaConstant), U8(2),
+  /*   46 E> */ B(Star), R(0),
+  /*   58 S> */ B(LdaConstant), U8(3),
+  /*   58 E> */ B(Star), R(0),
+  /*   70 S> */ B(LdaConstant), U8(4),
+  /*   70 E> */ B(Star), R(0),
+  /*   82 S> */ B(LdaConstant), U8(5),
+  /*   82 E> */ B(Star), R(0),
+  /*   94 S> */ B(LdaConstant), U8(6),
+  /*   94 E> */ B(Star), R(0),
+  /*  106 S> */ B(LdaConstant), U8(7),
+  /*  106 E> */ B(Star), R(0),
+  /*  118 S> */ B(LdaConstant), U8(8),
+  /*  118 E> */ B(Star), R(0),
+  /*  130 S> */ B(LdaConstant), U8(9),
+  /*  130 E> */ B(Star), R(0),
+  /*  142 S> */ B(LdaConstant), U8(10),
+  /*  142 E> */ B(Star), R(0),
+  /*  154 S> */ B(LdaConstant), U8(11),
+  /*  154 E> */ B(Star), R(0),
+  /*  166 S> */ B(LdaConstant), U8(12),
+  /*  166 E> */ B(Star), R(0),
+  /*  178 S> */ B(LdaConstant), U8(13),
+  /*  178 E> */ B(Star), R(0),
+  /*  190 S> */ B(LdaConstant), U8(14),
+  /*  190 E> */ B(Star), R(0),
+  /*  202 S> */ B(LdaConstant), U8(15),
+  /*  202 E> */ B(Star), R(0),
+  /*  214 S> */ B(LdaConstant), U8(16),
+  /*  214 E> */ B(Star), R(0),
+  /*  226 S> */ B(LdaConstant), U8(17),
+  /*  226 E> */ B(Star), R(0),
+  /*  238 S> */ B(LdaConstant), U8(18),
+  /*  238 E> */ B(Star), R(0),
+  /*  250 S> */ B(LdaConstant), U8(19),
+  /*  250 E> */ B(Star), R(0),
+  /*  262 S> */ B(LdaConstant), U8(20),
+  /*  262 E> */ B(Star), R(0),
+  /*  274 S> */ B(LdaConstant), U8(21),
+  /*  274 E> */ B(Star), R(0),
+  /*  286 S> */ B(LdaConstant), U8(22),
+  /*  286 E> */ B(Star), R(0),
+  /*  298 S> */ B(LdaConstant), U8(23),
+  /*  298 E> */ B(Star), R(0),
+  /*  310 S> */ B(LdaConstant), U8(24),
+  /*  310 E> */ B(Star), R(0),
+  /*  322 S> */ B(LdaConstant), U8(25),
+  /*  322 E> */ B(Star), R(0),
+  /*  334 S> */ B(LdaConstant), U8(26),
+  /*  334 E> */ B(Star), R(0),
+  /*  346 S> */ B(LdaConstant), U8(27),
+  /*  346 E> */ B(Star), R(0),
+  /*  358 S> */ B(LdaConstant), U8(28),
+  /*  358 E> */ B(Star), R(0),
+  /*  370 S> */ B(LdaConstant), U8(29),
+  /*  370 E> */ B(Star), R(0),
+  /*  382 S> */ B(LdaConstant), U8(30),
+  /*  382 E> */ B(Star), R(0),
+  /*  394 S> */ B(LdaConstant), U8(31),
+  /*  394 E> */ B(Star), R(0),
+  /*  406 S> */ B(LdaConstant), U8(32),
+  /*  406 E> */ B(Star), R(0),
+  /*  418 S> */ B(LdaConstant), U8(33),
+  /*  418 E> */ B(Star), R(0),
+  /*  430 S> */ B(LdaConstant), U8(34),
+  /*  430 E> */ B(Star), R(0),
+  /*  442 S> */ B(LdaConstant), U8(35),
+  /*  442 E> */ B(Star), R(0),
+  /*  454 S> */ B(LdaConstant), U8(36),
+  /*  454 E> */ B(Star), R(0),
+  /*  466 S> */ B(LdaConstant), U8(37),
+  /*  466 E> */ B(Star), R(0),
+  /*  478 S> */ B(LdaConstant), U8(38),
+  /*  478 E> */ B(Star), R(0),
+  /*  490 S> */ B(LdaConstant), U8(39),
+  /*  490 E> */ B(Star), R(0),
+  /*  502 S> */ B(LdaConstant), U8(40),
+  /*  502 E> */ B(Star), R(0),
+  /*  514 S> */ B(LdaConstant), U8(41),
+  /*  514 E> */ B(Star), R(0),
+  /*  526 S> */ B(LdaConstant), U8(42),
+  /*  526 E> */ B(Star), R(0),
+  /*  538 S> */ B(LdaConstant), U8(43),
+  /*  538 E> */ B(Star), R(0),
+  /*  550 S> */ B(LdaConstant), U8(44),
+  /*  550 E> */ B(Star), R(0),
+  /*  562 S> */ B(LdaConstant), U8(45),
+  /*  562 E> */ B(Star), R(0),
+  /*  574 S> */ B(LdaConstant), U8(46),
+  /*  574 E> */ B(Star), R(0),
+  /*  586 S> */ B(LdaConstant), U8(47),
+  /*  586 E> */ B(Star), R(0),
+  /*  598 S> */ B(LdaConstant), U8(48),
+  /*  598 E> */ B(Star), R(0),
+  /*  610 S> */ B(LdaConstant), U8(49),
+  /*  610 E> */ B(Star), R(0),
+  /*  622 S> */ B(LdaConstant), U8(50),
+  /*  622 E> */ B(Star), R(0),
+  /*  634 S> */ B(LdaConstant), U8(51),
+  /*  634 E> */ B(Star), R(0),
+  /*  646 S> */ B(LdaConstant), U8(52),
+  /*  646 E> */ B(Star), R(0),
+  /*  658 S> */ B(LdaConstant), U8(53),
+  /*  658 E> */ B(Star), R(0),
+  /*  670 S> */ B(LdaConstant), U8(54),
+  /*  670 E> */ B(Star), R(0),
+  /*  682 S> */ B(LdaConstant), U8(55),
+  /*  682 E> */ B(Star), R(0),
+  /*  694 S> */ B(LdaConstant), U8(56),
+  /*  694 E> */ B(Star), R(0),
+  /*  706 S> */ B(LdaConstant), U8(57),
+  /*  706 E> */ B(Star), R(0),
+  /*  718 S> */ B(LdaConstant), U8(58),
+  /*  718 E> */ B(Star), R(0),
+  /*  730 S> */ B(LdaConstant), U8(59),
+  /*  730 E> */ B(Star), R(0),
+  /*  742 S> */ B(LdaConstant), U8(60),
+  /*  742 E> */ B(Star), R(0),
+  /*  754 S> */ B(LdaConstant), U8(61),
+  /*  754 E> */ B(Star), R(0),
+  /*  766 S> */ B(LdaConstant), U8(62),
+  /*  766 E> */ B(Star), R(0),
+  /*  778 S> */ B(LdaConstant), U8(63),
+  /*  778 E> */ B(Star), R(0),
+  /*  790 S> */ B(LdaConstant), U8(64),
+  /*  790 E> */ B(Star), R(0),
+  /*  802 S> */ B(LdaConstant), U8(65),
+  /*  802 E> */ B(Star), R(0),
+  /*  814 S> */ B(LdaConstant), U8(66),
+  /*  814 E> */ B(Star), R(0),
+  /*  826 S> */ B(LdaConstant), U8(67),
+  /*  826 E> */ B(Star), R(0),
+  /*  838 S> */ B(LdaConstant), U8(68),
+  /*  838 E> */ B(Star), R(0),
+  /*  850 S> */ B(LdaConstant), U8(69),
+  /*  850 E> */ B(Star), R(0),
+  /*  862 S> */ B(LdaConstant), U8(70),
+  /*  862 E> */ B(Star), R(0),
+  /*  874 S> */ B(LdaConstant), U8(71),
+  /*  874 E> */ B(Star), R(0),
+  /*  886 S> */ B(LdaConstant), U8(72),
+  /*  886 E> */ B(Star), R(0),
+  /*  898 S> */ B(LdaConstant), U8(73),
+  /*  898 E> */ B(Star), R(0),
+  /*  910 S> */ B(LdaConstant), U8(74),
+  /*  910 E> */ B(Star), R(0),
+  /*  922 S> */ B(LdaConstant), U8(75),
+  /*  922 E> */ B(Star), R(0),
+  /*  934 S> */ B(LdaConstant), U8(76),
+  /*  934 E> */ B(Star), R(0),
+  /*  946 S> */ B(LdaConstant), U8(77),
+  /*  946 E> */ B(Star), R(0),
+  /*  958 S> */ B(LdaConstant), U8(78),
+  /*  958 E> */ B(Star), R(0),
+  /*  970 S> */ B(LdaConstant), U8(79),
+  /*  970 E> */ B(Star), R(0),
+  /*  982 S> */ B(LdaConstant), U8(80),
+  /*  982 E> */ B(Star), R(0),
+  /*  994 S> */ B(LdaConstant), U8(81),
+  /*  994 E> */ B(Star), R(0),
+  /* 1006 S> */ B(LdaConstant), U8(82),
+  /* 1006 E> */ B(Star), R(0),
+  /* 1018 S> */ B(LdaConstant), U8(83),
+  /* 1018 E> */ B(Star), R(0),
+  /* 1030 S> */ B(LdaConstant), U8(84),
+  /* 1030 E> */ B(Star), R(0),
+  /* 1042 S> */ B(LdaConstant), U8(85),
+  /* 1042 E> */ B(Star), R(0),
+  /* 1054 S> */ B(LdaConstant), U8(86),
+  /* 1054 E> */ B(Star), R(0),
+  /* 1066 S> */ B(LdaConstant), U8(87),
+  /* 1066 E> */ B(Star), R(0),
+  /* 1078 S> */ B(LdaConstant), U8(88),
+  /* 1078 E> */ B(Star), R(0),
+  /* 1090 S> */ B(LdaConstant), U8(89),
+  /* 1090 E> */ B(Star), R(0),
+  /* 1102 S> */ B(LdaConstant), U8(90),
+  /* 1102 E> */ B(Star), R(0),
+  /* 1114 S> */ B(LdaConstant), U8(91),
+  /* 1114 E> */ B(Star), R(0),
+  /* 1126 S> */ B(LdaConstant), U8(92),
+  /* 1126 E> */ B(Star), R(0),
+  /* 1138 S> */ B(LdaConstant), U8(93),
+  /* 1138 E> */ B(Star), R(0),
+  /* 1150 S> */ B(LdaConstant), U8(94),
+  /* 1150 E> */ B(Star), R(0),
+  /* 1162 S> */ B(LdaConstant), U8(95),
+  /* 1162 E> */ B(Star), R(0),
+  /* 1174 S> */ B(LdaConstant), U8(96),
+  /* 1174 E> */ B(Star), R(0),
+  /* 1186 S> */ B(LdaConstant), U8(97),
+  /* 1186 E> */ B(Star), R(0),
+  /* 1198 S> */ B(LdaConstant), U8(98),
+  /* 1198 E> */ B(Star), R(0),
+  /* 1210 S> */ B(LdaConstant), U8(99),
+  /* 1210 E> */ B(Star), R(0),
+  /* 1222 S> */ B(LdaConstant), U8(100),
+  /* 1222 E> */ B(Star), R(0),
+  /* 1234 S> */ B(LdaConstant), U8(101),
+  /* 1234 E> */ B(Star), R(0),
+  /* 1246 S> */ B(LdaConstant), U8(102),
+  /* 1246 E> */ B(Star), R(0),
+  /* 1258 S> */ B(LdaConstant), U8(103),
+  /* 1258 E> */ B(Star), R(0),
+  /* 1270 S> */ B(LdaConstant), U8(104),
+  /* 1270 E> */ B(Star), R(0),
+  /* 1282 S> */ B(LdaConstant), U8(105),
+  /* 1282 E> */ B(Star), R(0),
+  /* 1294 S> */ B(LdaConstant), U8(106),
+  /* 1294 E> */ B(Star), R(0),
+  /* 1306 S> */ B(LdaConstant), U8(107),
+  /* 1306 E> */ B(Star), R(0),
+  /* 1318 S> */ B(LdaConstant), U8(108),
+  /* 1318 E> */ B(Star), R(0),
+  /* 1330 S> */ B(LdaConstant), U8(109),
+  /* 1330 E> */ B(Star), R(0),
+  /* 1342 S> */ B(LdaConstant), U8(110),
+  /* 1342 E> */ B(Star), R(0),
+  /* 1354 S> */ B(LdaConstant), U8(111),
+  /* 1354 E> */ B(Star), R(0),
+  /* 1366 S> */ B(LdaConstant), U8(112),
+  /* 1366 E> */ B(Star), R(0),
+  /* 1378 S> */ B(LdaConstant), U8(113),
+  /* 1378 E> */ B(Star), R(0),
+  /* 1390 S> */ B(LdaConstant), U8(114),
+  /* 1390 E> */ B(Star), R(0),
+  /* 1402 S> */ B(LdaConstant), U8(115),
+  /* 1402 E> */ B(Star), R(0),
+  /* 1414 S> */ B(LdaConstant), U8(116),
+  /* 1414 E> */ B(Star), R(0),
+  /* 1426 S> */ B(LdaConstant), U8(117),
+  /* 1426 E> */ B(Star), R(0),
+  /* 1438 S> */ B(LdaConstant), U8(118),
+  /* 1438 E> */ B(Star), R(0),
+  /* 1450 S> */ B(LdaConstant), U8(119),
+  /* 1450 E> */ B(Star), R(0),
+  /* 1462 S> */ B(LdaConstant), U8(120),
+  /* 1462 E> */ B(Star), R(0),
+  /* 1474 S> */ B(LdaConstant), U8(121),
+  /* 1474 E> */ B(Star), R(0),
+  /* 1486 S> */ B(LdaConstant), U8(122),
+  /* 1486 E> */ B(Star), R(0),
+  /* 1498 S> */ B(LdaConstant), U8(123),
+  /* 1498 E> */ B(Star), R(0),
+  /* 1510 S> */ B(LdaConstant), U8(124),
+  /* 1510 E> */ B(Star), R(0),
+  /* 1522 S> */ B(LdaConstant), U8(125),
+  /* 1522 E> */ B(Star), R(0),
+  /* 1534 S> */ B(LdaConstant), U8(126),
+  /* 1534 E> */ B(Star), R(0),
+  /* 1546 S> */ B(LdaConstant), U8(127),
+  /* 1546 E> */ B(Star), R(0),
+  /* 1558 S> */ B(LdaConstant), U8(128),
+  /* 1558 E> */ B(Star), R(0),
+  /* 1570 S> */ B(LdaConstant), U8(129),
+  /* 1570 E> */ B(Star), R(0),
+  /* 1582 S> */ B(LdaConstant), U8(130),
+  /* 1582 E> */ B(Star), R(0),
+  /* 1594 S> */ B(LdaConstant), U8(131),
+  /* 1594 E> */ B(Star), R(0),
+  /* 1606 S> */ B(LdaConstant), U8(132),
+  /* 1606 E> */ B(Star), R(0),
+  /* 1618 S> */ B(LdaConstant), U8(133),
+  /* 1618 E> */ B(Star), R(0),
+  /* 1630 S> */ B(LdaConstant), U8(134),
+  /* 1630 E> */ B(Star), R(0),
+  /* 1642 S> */ B(LdaConstant), U8(135),
+  /* 1642 E> */ B(Star), R(0),
+  /* 1654 S> */ B(LdaConstant), U8(136),
+  /* 1654 E> */ B(Star), R(0),
+  /* 1666 S> */ B(LdaConstant), U8(137),
+  /* 1666 E> */ B(Star), R(0),
+  /* 1678 S> */ B(LdaConstant), U8(138),
+  /* 1678 E> */ B(Star), R(0),
+  /* 1690 S> */ B(LdaConstant), U8(139),
+  /* 1690 E> */ B(Star), R(0),
+  /* 1702 S> */ B(LdaConstant), U8(140),
+  /* 1702 E> */ B(Star), R(0),
+  /* 1714 S> */ B(LdaConstant), U8(141),
+  /* 1714 E> */ B(Star), R(0),
+  /* 1726 S> */ B(LdaConstant), U8(142),
+  /* 1726 E> */ B(Star), R(0),
+  /* 1738 S> */ B(LdaConstant), U8(143),
+  /* 1738 E> */ B(Star), R(0),
+  /* 1750 S> */ B(LdaConstant), U8(144),
+  /* 1750 E> */ B(Star), R(0),
+  /* 1762 S> */ B(LdaConstant), U8(145),
+  /* 1762 E> */ B(Star), R(0),
+  /* 1774 S> */ B(LdaConstant), U8(146),
+  /* 1774 E> */ B(Star), R(0),
+  /* 1786 S> */ B(LdaConstant), U8(147),
+  /* 1786 E> */ B(Star), R(0),
+  /* 1798 S> */ B(LdaConstant), U8(148),
+  /* 1798 E> */ B(Star), R(0),
+  /* 1810 S> */ B(LdaConstant), U8(149),
+  /* 1810 E> */ B(Star), R(0),
+  /* 1822 S> */ B(LdaConstant), U8(150),
+  /* 1822 E> */ B(Star), R(0),
+  /* 1834 S> */ B(LdaConstant), U8(151),
+  /* 1834 E> */ B(Star), R(0),
+  /* 1846 S> */ B(LdaConstant), U8(152),
+  /* 1846 E> */ B(Star), R(0),
+  /* 1858 S> */ B(LdaConstant), U8(153),
+  /* 1858 E> */ B(Star), R(0),
+  /* 1870 S> */ B(LdaConstant), U8(154),
+  /* 1870 E> */ B(Star), R(0),
+  /* 1882 S> */ B(LdaConstant), U8(155),
+  /* 1882 E> */ B(Star), R(0),
+  /* 1894 S> */ B(LdaConstant), U8(156),
+  /* 1894 E> */ B(Star), R(0),
+  /* 1906 S> */ B(LdaConstant), U8(157),
+  /* 1906 E> */ B(Star), R(0),
+  /* 1918 S> */ B(LdaConstant), U8(158),
+  /* 1918 E> */ B(Star), R(0),
+  /* 1930 S> */ B(LdaConstant), U8(159),
+  /* 1930 E> */ B(Star), R(0),
+  /* 1942 S> */ B(LdaConstant), U8(160),
+  /* 1942 E> */ B(Star), R(0),
+  /* 1954 S> */ B(LdaConstant), U8(161),
+  /* 1954 E> */ B(Star), R(0),
+  /* 1966 S> */ B(LdaConstant), U8(162),
+  /* 1966 E> */ B(Star), R(0),
+  /* 1978 S> */ B(LdaConstant), U8(163),
+  /* 1978 E> */ B(Star), R(0),
+  /* 1990 S> */ B(LdaConstant), U8(164),
+  /* 1990 E> */ B(Star), R(0),
+  /* 2002 S> */ B(LdaConstant), U8(165),
+  /* 2002 E> */ B(Star), R(0),
+  /* 2014 S> */ B(LdaConstant), U8(166),
+  /* 2014 E> */ B(Star), R(0),
+  /* 2026 S> */ B(LdaConstant), U8(167),
+  /* 2026 E> */ B(Star), R(0),
+  /* 2038 S> */ B(LdaConstant), U8(168),
+  /* 2038 E> */ B(Star), R(0),
+  /* 2050 S> */ B(LdaConstant), U8(169),
+  /* 2050 E> */ B(Star), R(0),
+  /* 2062 S> */ B(LdaConstant), U8(170),
+  /* 2062 E> */ B(Star), R(0),
+  /* 2074 S> */ B(LdaConstant), U8(171),
+  /* 2074 E> */ B(Star), R(0),
+  /* 2086 S> */ B(LdaConstant), U8(172),
+  /* 2086 E> */ B(Star), R(0),
+  /* 2098 S> */ B(LdaConstant), U8(173),
+  /* 2098 E> */ B(Star), R(0),
+  /* 2110 S> */ B(LdaConstant), U8(174),
+  /* 2110 E> */ B(Star), R(0),
+  /* 2122 S> */ B(LdaConstant), U8(175),
+  /* 2122 E> */ B(Star), R(0),
+  /* 2134 S> */ B(LdaConstant), U8(176),
+  /* 2134 E> */ B(Star), R(0),
+  /* 2146 S> */ B(LdaConstant), U8(177),
+  /* 2146 E> */ B(Star), R(0),
+  /* 2158 S> */ B(LdaConstant), U8(178),
+  /* 2158 E> */ B(Star), R(0),
+  /* 2170 S> */ B(LdaConstant), U8(179),
+  /* 2170 E> */ B(Star), R(0),
+  /* 2182 S> */ B(LdaConstant), U8(180),
+  /* 2182 E> */ B(Star), R(0),
+  /* 2194 S> */ B(LdaConstant), U8(181),
+  /* 2194 E> */ B(Star), R(0),
+  /* 2206 S> */ B(LdaConstant), U8(182),
+  /* 2206 E> */ B(Star), R(0),
+  /* 2218 S> */ B(LdaConstant), U8(183),
+  /* 2218 E> */ B(Star), R(0),
+  /* 2230 S> */ B(LdaConstant), U8(184),
+  /* 2230 E> */ B(Star), R(0),
+  /* 2242 S> */ B(LdaConstant), U8(185),
+  /* 2242 E> */ B(Star), R(0),
+  /* 2254 S> */ B(LdaConstant), U8(186),
+  /* 2254 E> */ B(Star), R(0),
+  /* 2266 S> */ B(LdaConstant), U8(187),
+  /* 2266 E> */ B(Star), R(0),
+  /* 2278 S> */ B(LdaConstant), U8(188),
+  /* 2278 E> */ B(Star), R(0),
+  /* 2290 S> */ B(LdaConstant), U8(189),
+  /* 2290 E> */ B(Star), R(0),
+  /* 2302 S> */ B(LdaConstant), U8(190),
+  /* 2302 E> */ B(Star), R(0),
+  /* 2314 S> */ B(LdaConstant), U8(191),
+  /* 2314 E> */ B(Star), R(0),
+  /* 2326 S> */ B(LdaConstant), U8(192),
+  /* 2326 E> */ B(Star), R(0),
+  /* 2338 S> */ B(LdaConstant), U8(193),
+  /* 2338 E> */ B(Star), R(0),
+  /* 2350 S> */ B(LdaConstant), U8(194),
+  /* 2350 E> */ B(Star), R(0),
+  /* 2362 S> */ B(LdaConstant), U8(195),
+  /* 2362 E> */ B(Star), R(0),
+  /* 2374 S> */ B(LdaConstant), U8(196),
+  /* 2374 E> */ B(Star), R(0),
+  /* 2386 S> */ B(LdaConstant), U8(197),
+  /* 2386 E> */ B(Star), R(0),
+  /* 2398 S> */ B(LdaConstant), U8(198),
+  /* 2398 E> */ B(Star), R(0),
+  /* 2410 S> */ B(LdaConstant), U8(199),
+  /* 2410 E> */ B(Star), R(0),
+  /* 2422 S> */ B(LdaConstant), U8(200),
+  /* 2422 E> */ B(Star), R(0),
+  /* 2434 S> */ B(LdaConstant), U8(201),
+  /* 2434 E> */ B(Star), R(0),
+  /* 2446 S> */ B(LdaConstant), U8(202),
+  /* 2446 E> */ B(Star), R(0),
+  /* 2458 S> */ B(LdaConstant), U8(203),
+  /* 2458 E> */ B(Star), R(0),
+  /* 2470 S> */ B(LdaConstant), U8(204),
+  /* 2470 E> */ B(Star), R(0),
+  /* 2482 S> */ B(LdaConstant), U8(205),
+  /* 2482 E> */ B(Star), R(0),
+  /* 2494 S> */ B(LdaConstant), U8(206),
+  /* 2494 E> */ B(Star), R(0),
+  /* 2506 S> */ B(LdaConstant), U8(207),
+  /* 2506 E> */ B(Star), R(0),
+  /* 2518 S> */ B(LdaConstant), U8(208),
+  /* 2518 E> */ B(Star), R(0),
+  /* 2530 S> */ B(LdaConstant), U8(209),
+  /* 2530 E> */ B(Star), R(0),
+  /* 2542 S> */ B(LdaConstant), U8(210),
+  /* 2542 E> */ B(Star), R(0),
+  /* 2554 S> */ B(LdaConstant), U8(211),
+  /* 2554 E> */ B(Star), R(0),
+  /* 2566 S> */ B(LdaConstant), U8(212),
+  /* 2566 E> */ B(Star), R(0),
+  /* 2578 S> */ B(LdaConstant), U8(213),
+  /* 2578 E> */ B(Star), R(0),
+  /* 2590 S> */ B(LdaConstant), U8(214),
+  /* 2590 E> */ B(Star), R(0),
+  /* 2602 S> */ B(LdaConstant), U8(215),
+  /* 2602 E> */ B(Star), R(0),
+  /* 2614 S> */ B(LdaConstant), U8(216),
+  /* 2614 E> */ B(Star), R(0),
+  /* 2626 S> */ B(LdaConstant), U8(217),
+  /* 2626 E> */ B(Star), R(0),
+  /* 2638 S> */ B(LdaConstant), U8(218),
+  /* 2638 E> */ B(Star), R(0),
+  /* 2650 S> */ B(LdaConstant), U8(219),
+  /* 2650 E> */ B(Star), R(0),
+  /* 2662 S> */ B(LdaConstant), U8(220),
+  /* 2662 E> */ B(Star), R(0),
+  /* 2674 S> */ B(LdaConstant), U8(221),
+  /* 2674 E> */ B(Star), R(0),
+  /* 2686 S> */ B(LdaConstant), U8(222),
+  /* 2686 E> */ B(Star), R(0),
+  /* 2698 S> */ B(LdaConstant), U8(223),
+  /* 2698 E> */ B(Star), R(0),
+  /* 2710 S> */ B(LdaConstant), U8(224),
+  /* 2710 E> */ B(Star), R(0),
+  /* 2722 S> */ B(LdaConstant), U8(225),
+  /* 2722 E> */ B(Star), R(0),
+  /* 2734 S> */ B(LdaConstant), U8(226),
+  /* 2734 E> */ B(Star), R(0),
+  /* 2746 S> */ B(LdaConstant), U8(227),
+  /* 2746 E> */ B(Star), R(0),
+  /* 2758 S> */ B(LdaConstant), U8(228),
+  /* 2758 E> */ B(Star), R(0),
+  /* 2770 S> */ B(LdaConstant), U8(229),
+  /* 2770 E> */ B(Star), R(0),
+  /* 2782 S> */ B(LdaConstant), U8(230),
+  /* 2782 E> */ B(Star), R(0),
+  /* 2794 S> */ B(LdaConstant), U8(231),
+  /* 2794 E> */ B(Star), R(0),
+  /* 2806 S> */ B(LdaConstant), U8(232),
+  /* 2806 E> */ B(Star), R(0),
+  /* 2818 S> */ B(LdaConstant), U8(233),
+  /* 2818 E> */ B(Star), R(0),
+  /* 2830 S> */ B(LdaConstant), U8(234),
+  /* 2830 E> */ B(Star), R(0),
+  /* 2842 S> */ B(LdaConstant), U8(235),
+  /* 2842 E> */ B(Star), R(0),
+  /* 2854 S> */ B(LdaConstant), U8(236),
+  /* 2854 E> */ B(Star), R(0),
+  /* 2866 S> */ B(LdaConstant), U8(237),
+  /* 2866 E> */ B(Star), R(0),
+  /* 2878 S> */ B(LdaConstant), U8(238),
+  /* 2878 E> */ B(Star), R(0),
+  /* 2890 S> */ B(LdaConstant), U8(239),
+  /* 2890 E> */ B(Star), R(0),
+  /* 2902 S> */ B(LdaConstant), U8(240),
+  /* 2902 E> */ B(Star), R(0),
+  /* 2914 S> */ B(LdaConstant), U8(241),
+  /* 2914 E> */ B(Star), R(0),
+  /* 2926 S> */ B(LdaConstant), U8(242),
+  /* 2926 E> */ B(Star), R(0),
+  /* 2938 S> */ B(LdaConstant), U8(243),
+  /* 2938 E> */ B(Star), R(0),
+  /* 2950 S> */ B(LdaConstant), U8(244),
+  /* 2950 E> */ B(Star), R(0),
+  /* 2962 S> */ B(LdaConstant), U8(245),
+  /* 2962 E> */ B(Star), R(0),
+  /* 2974 S> */ B(LdaConstant), U8(246),
+  /* 2974 E> */ B(Star), R(0),
+  /* 2986 S> */ B(LdaConstant), U8(247),
+  /* 2986 E> */ B(Star), R(0),
+  /* 2998 S> */ B(LdaConstant), U8(248),
+  /* 2998 E> */ B(Star), R(0),
+  /* 3010 S> */ B(LdaConstant), U8(249),
+  /* 3010 E> */ B(Star), R(0),
+  /* 3022 S> */ B(LdaConstant), U8(250),
+  /* 3022 E> */ B(Star), R(0),
+  /* 3034 S> */ B(LdaConstant), U8(251),
+  /* 3034 E> */ B(Star), R(0),
+  /* 3046 S> */ B(LdaConstant), U8(252),
+  /* 3046 E> */ B(Star), R(0),
+  /* 3058 S> */ B(LdaConstant), U8(253),
+  /* 3058 E> */ B(Star), R(0),
+  /* 3070 S> */ B(LdaConstant), U8(254),
+  /* 3070 E> */ B(Star), R(0),
+  /* 3082 S> */ B(LdaConstant), U8(255),
+  /* 3082 E> */ B(Star), R(0),
+  /* 3086 S> */ B(Wide), B(LdaLookupSlot), U16(256),
+  /* 3095 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::HEAP_NUMBER_TYPE,
@@ -1332,522 +1332,522 @@
 parameter count: 1
 bytecode array length: 1031
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(Wide), B(LdaLookupSlotInsideTypeof), U16(256),
-  B(TypeOf),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   22 S> */ B(LdaConstant), U8(0),
+  /*   22 E> */ B(Star), R(0),
+  /*   34 S> */ B(LdaConstant), U8(1),
+  /*   34 E> */ B(Star), R(0),
+  /*   46 S> */ B(LdaConstant), U8(2),
+  /*   46 E> */ B(Star), R(0),
+  /*   58 S> */ B(LdaConstant), U8(3),
+  /*   58 E> */ B(Star), R(0),
+  /*   70 S> */ B(LdaConstant), U8(4),
+  /*   70 E> */ B(Star), R(0),
+  /*   82 S> */ B(LdaConstant), U8(5),
+  /*   82 E> */ B(Star), R(0),
+  /*   94 S> */ B(LdaConstant), U8(6),
+  /*   94 E> */ B(Star), R(0),
+  /*  106 S> */ B(LdaConstant), U8(7),
+  /*  106 E> */ B(Star), R(0),
+  /*  118 S> */ B(LdaConstant), U8(8),
+  /*  118 E> */ B(Star), R(0),
+  /*  130 S> */ B(LdaConstant), U8(9),
+  /*  130 E> */ B(Star), R(0),
+  /*  142 S> */ B(LdaConstant), U8(10),
+  /*  142 E> */ B(Star), R(0),
+  /*  154 S> */ B(LdaConstant), U8(11),
+  /*  154 E> */ B(Star), R(0),
+  /*  166 S> */ B(LdaConstant), U8(12),
+  /*  166 E> */ B(Star), R(0),
+  /*  178 S> */ B(LdaConstant), U8(13),
+  /*  178 E> */ B(Star), R(0),
+  /*  190 S> */ B(LdaConstant), U8(14),
+  /*  190 E> */ B(Star), R(0),
+  /*  202 S> */ B(LdaConstant), U8(15),
+  /*  202 E> */ B(Star), R(0),
+  /*  214 S> */ B(LdaConstant), U8(16),
+  /*  214 E> */ B(Star), R(0),
+  /*  226 S> */ B(LdaConstant), U8(17),
+  /*  226 E> */ B(Star), R(0),
+  /*  238 S> */ B(LdaConstant), U8(18),
+  /*  238 E> */ B(Star), R(0),
+  /*  250 S> */ B(LdaConstant), U8(19),
+  /*  250 E> */ B(Star), R(0),
+  /*  262 S> */ B(LdaConstant), U8(20),
+  /*  262 E> */ B(Star), R(0),
+  /*  274 S> */ B(LdaConstant), U8(21),
+  /*  274 E> */ B(Star), R(0),
+  /*  286 S> */ B(LdaConstant), U8(22),
+  /*  286 E> */ B(Star), R(0),
+  /*  298 S> */ B(LdaConstant), U8(23),
+  /*  298 E> */ B(Star), R(0),
+  /*  310 S> */ B(LdaConstant), U8(24),
+  /*  310 E> */ B(Star), R(0),
+  /*  322 S> */ B(LdaConstant), U8(25),
+  /*  322 E> */ B(Star), R(0),
+  /*  334 S> */ B(LdaConstant), U8(26),
+  /*  334 E> */ B(Star), R(0),
+  /*  346 S> */ B(LdaConstant), U8(27),
+  /*  346 E> */ B(Star), R(0),
+  /*  358 S> */ B(LdaConstant), U8(28),
+  /*  358 E> */ B(Star), R(0),
+  /*  370 S> */ B(LdaConstant), U8(29),
+  /*  370 E> */ B(Star), R(0),
+  /*  382 S> */ B(LdaConstant), U8(30),
+  /*  382 E> */ B(Star), R(0),
+  /*  394 S> */ B(LdaConstant), U8(31),
+  /*  394 E> */ B(Star), R(0),
+  /*  406 S> */ B(LdaConstant), U8(32),
+  /*  406 E> */ B(Star), R(0),
+  /*  418 S> */ B(LdaConstant), U8(33),
+  /*  418 E> */ B(Star), R(0),
+  /*  430 S> */ B(LdaConstant), U8(34),
+  /*  430 E> */ B(Star), R(0),
+  /*  442 S> */ B(LdaConstant), U8(35),
+  /*  442 E> */ B(Star), R(0),
+  /*  454 S> */ B(LdaConstant), U8(36),
+  /*  454 E> */ B(Star), R(0),
+  /*  466 S> */ B(LdaConstant), U8(37),
+  /*  466 E> */ B(Star), R(0),
+  /*  478 S> */ B(LdaConstant), U8(38),
+  /*  478 E> */ B(Star), R(0),
+  /*  490 S> */ B(LdaConstant), U8(39),
+  /*  490 E> */ B(Star), R(0),
+  /*  502 S> */ B(LdaConstant), U8(40),
+  /*  502 E> */ B(Star), R(0),
+  /*  514 S> */ B(LdaConstant), U8(41),
+  /*  514 E> */ B(Star), R(0),
+  /*  526 S> */ B(LdaConstant), U8(42),
+  /*  526 E> */ B(Star), R(0),
+  /*  538 S> */ B(LdaConstant), U8(43),
+  /*  538 E> */ B(Star), R(0),
+  /*  550 S> */ B(LdaConstant), U8(44),
+  /*  550 E> */ B(Star), R(0),
+  /*  562 S> */ B(LdaConstant), U8(45),
+  /*  562 E> */ B(Star), R(0),
+  /*  574 S> */ B(LdaConstant), U8(46),
+  /*  574 E> */ B(Star), R(0),
+  /*  586 S> */ B(LdaConstant), U8(47),
+  /*  586 E> */ B(Star), R(0),
+  /*  598 S> */ B(LdaConstant), U8(48),
+  /*  598 E> */ B(Star), R(0),
+  /*  610 S> */ B(LdaConstant), U8(49),
+  /*  610 E> */ B(Star), R(0),
+  /*  622 S> */ B(LdaConstant), U8(50),
+  /*  622 E> */ B(Star), R(0),
+  /*  634 S> */ B(LdaConstant), U8(51),
+  /*  634 E> */ B(Star), R(0),
+  /*  646 S> */ B(LdaConstant), U8(52),
+  /*  646 E> */ B(Star), R(0),
+  /*  658 S> */ B(LdaConstant), U8(53),
+  /*  658 E> */ B(Star), R(0),
+  /*  670 S> */ B(LdaConstant), U8(54),
+  /*  670 E> */ B(Star), R(0),
+  /*  682 S> */ B(LdaConstant), U8(55),
+  /*  682 E> */ B(Star), R(0),
+  /*  694 S> */ B(LdaConstant), U8(56),
+  /*  694 E> */ B(Star), R(0),
+  /*  706 S> */ B(LdaConstant), U8(57),
+  /*  706 E> */ B(Star), R(0),
+  /*  718 S> */ B(LdaConstant), U8(58),
+  /*  718 E> */ B(Star), R(0),
+  /*  730 S> */ B(LdaConstant), U8(59),
+  /*  730 E> */ B(Star), R(0),
+  /*  742 S> */ B(LdaConstant), U8(60),
+  /*  742 E> */ B(Star), R(0),
+  /*  754 S> */ B(LdaConstant), U8(61),
+  /*  754 E> */ B(Star), R(0),
+  /*  766 S> */ B(LdaConstant), U8(62),
+  /*  766 E> */ B(Star), R(0),
+  /*  778 S> */ B(LdaConstant), U8(63),
+  /*  778 E> */ B(Star), R(0),
+  /*  790 S> */ B(LdaConstant), U8(64),
+  /*  790 E> */ B(Star), R(0),
+  /*  802 S> */ B(LdaConstant), U8(65),
+  /*  802 E> */ B(Star), R(0),
+  /*  814 S> */ B(LdaConstant), U8(66),
+  /*  814 E> */ B(Star), R(0),
+  /*  826 S> */ B(LdaConstant), U8(67),
+  /*  826 E> */ B(Star), R(0),
+  /*  838 S> */ B(LdaConstant), U8(68),
+  /*  838 E> */ B(Star), R(0),
+  /*  850 S> */ B(LdaConstant), U8(69),
+  /*  850 E> */ B(Star), R(0),
+  /*  862 S> */ B(LdaConstant), U8(70),
+  /*  862 E> */ B(Star), R(0),
+  /*  874 S> */ B(LdaConstant), U8(71),
+  /*  874 E> */ B(Star), R(0),
+  /*  886 S> */ B(LdaConstant), U8(72),
+  /*  886 E> */ B(Star), R(0),
+  /*  898 S> */ B(LdaConstant), U8(73),
+  /*  898 E> */ B(Star), R(0),
+  /*  910 S> */ B(LdaConstant), U8(74),
+  /*  910 E> */ B(Star), R(0),
+  /*  922 S> */ B(LdaConstant), U8(75),
+  /*  922 E> */ B(Star), R(0),
+  /*  934 S> */ B(LdaConstant), U8(76),
+  /*  934 E> */ B(Star), R(0),
+  /*  946 S> */ B(LdaConstant), U8(77),
+  /*  946 E> */ B(Star), R(0),
+  /*  958 S> */ B(LdaConstant), U8(78),
+  /*  958 E> */ B(Star), R(0),
+  /*  970 S> */ B(LdaConstant), U8(79),
+  /*  970 E> */ B(Star), R(0),
+  /*  982 S> */ B(LdaConstant), U8(80),
+  /*  982 E> */ B(Star), R(0),
+  /*  994 S> */ B(LdaConstant), U8(81),
+  /*  994 E> */ B(Star), R(0),
+  /* 1006 S> */ B(LdaConstant), U8(82),
+  /* 1006 E> */ B(Star), R(0),
+  /* 1018 S> */ B(LdaConstant), U8(83),
+  /* 1018 E> */ B(Star), R(0),
+  /* 1030 S> */ B(LdaConstant), U8(84),
+  /* 1030 E> */ B(Star), R(0),
+  /* 1042 S> */ B(LdaConstant), U8(85),
+  /* 1042 E> */ B(Star), R(0),
+  /* 1054 S> */ B(LdaConstant), U8(86),
+  /* 1054 E> */ B(Star), R(0),
+  /* 1066 S> */ B(LdaConstant), U8(87),
+  /* 1066 E> */ B(Star), R(0),
+  /* 1078 S> */ B(LdaConstant), U8(88),
+  /* 1078 E> */ B(Star), R(0),
+  /* 1090 S> */ B(LdaConstant), U8(89),
+  /* 1090 E> */ B(Star), R(0),
+  /* 1102 S> */ B(LdaConstant), U8(90),
+  /* 1102 E> */ B(Star), R(0),
+  /* 1114 S> */ B(LdaConstant), U8(91),
+  /* 1114 E> */ B(Star), R(0),
+  /* 1126 S> */ B(LdaConstant), U8(92),
+  /* 1126 E> */ B(Star), R(0),
+  /* 1138 S> */ B(LdaConstant), U8(93),
+  /* 1138 E> */ B(Star), R(0),
+  /* 1150 S> */ B(LdaConstant), U8(94),
+  /* 1150 E> */ B(Star), R(0),
+  /* 1162 S> */ B(LdaConstant), U8(95),
+  /* 1162 E> */ B(Star), R(0),
+  /* 1174 S> */ B(LdaConstant), U8(96),
+  /* 1174 E> */ B(Star), R(0),
+  /* 1186 S> */ B(LdaConstant), U8(97),
+  /* 1186 E> */ B(Star), R(0),
+  /* 1198 S> */ B(LdaConstant), U8(98),
+  /* 1198 E> */ B(Star), R(0),
+  /* 1210 S> */ B(LdaConstant), U8(99),
+  /* 1210 E> */ B(Star), R(0),
+  /* 1222 S> */ B(LdaConstant), U8(100),
+  /* 1222 E> */ B(Star), R(0),
+  /* 1234 S> */ B(LdaConstant), U8(101),
+  /* 1234 E> */ B(Star), R(0),
+  /* 1246 S> */ B(LdaConstant), U8(102),
+  /* 1246 E> */ B(Star), R(0),
+  /* 1258 S> */ B(LdaConstant), U8(103),
+  /* 1258 E> */ B(Star), R(0),
+  /* 1270 S> */ B(LdaConstant), U8(104),
+  /* 1270 E> */ B(Star), R(0),
+  /* 1282 S> */ B(LdaConstant), U8(105),
+  /* 1282 E> */ B(Star), R(0),
+  /* 1294 S> */ B(LdaConstant), U8(106),
+  /* 1294 E> */ B(Star), R(0),
+  /* 1306 S> */ B(LdaConstant), U8(107),
+  /* 1306 E> */ B(Star), R(0),
+  /* 1318 S> */ B(LdaConstant), U8(108),
+  /* 1318 E> */ B(Star), R(0),
+  /* 1330 S> */ B(LdaConstant), U8(109),
+  /* 1330 E> */ B(Star), R(0),
+  /* 1342 S> */ B(LdaConstant), U8(110),
+  /* 1342 E> */ B(Star), R(0),
+  /* 1354 S> */ B(LdaConstant), U8(111),
+  /* 1354 E> */ B(Star), R(0),
+  /* 1366 S> */ B(LdaConstant), U8(112),
+  /* 1366 E> */ B(Star), R(0),
+  /* 1378 S> */ B(LdaConstant), U8(113),
+  /* 1378 E> */ B(Star), R(0),
+  /* 1390 S> */ B(LdaConstant), U8(114),
+  /* 1390 E> */ B(Star), R(0),
+  /* 1402 S> */ B(LdaConstant), U8(115),
+  /* 1402 E> */ B(Star), R(0),
+  /* 1414 S> */ B(LdaConstant), U8(116),
+  /* 1414 E> */ B(Star), R(0),
+  /* 1426 S> */ B(LdaConstant), U8(117),
+  /* 1426 E> */ B(Star), R(0),
+  /* 1438 S> */ B(LdaConstant), U8(118),
+  /* 1438 E> */ B(Star), R(0),
+  /* 1450 S> */ B(LdaConstant), U8(119),
+  /* 1450 E> */ B(Star), R(0),
+  /* 1462 S> */ B(LdaConstant), U8(120),
+  /* 1462 E> */ B(Star), R(0),
+  /* 1474 S> */ B(LdaConstant), U8(121),
+  /* 1474 E> */ B(Star), R(0),
+  /* 1486 S> */ B(LdaConstant), U8(122),
+  /* 1486 E> */ B(Star), R(0),
+  /* 1498 S> */ B(LdaConstant), U8(123),
+  /* 1498 E> */ B(Star), R(0),
+  /* 1510 S> */ B(LdaConstant), U8(124),
+  /* 1510 E> */ B(Star), R(0),
+  /* 1522 S> */ B(LdaConstant), U8(125),
+  /* 1522 E> */ B(Star), R(0),
+  /* 1534 S> */ B(LdaConstant), U8(126),
+  /* 1534 E> */ B(Star), R(0),
+  /* 1546 S> */ B(LdaConstant), U8(127),
+  /* 1546 E> */ B(Star), R(0),
+  /* 1558 S> */ B(LdaConstant), U8(128),
+  /* 1558 E> */ B(Star), R(0),
+  /* 1570 S> */ B(LdaConstant), U8(129),
+  /* 1570 E> */ B(Star), R(0),
+  /* 1582 S> */ B(LdaConstant), U8(130),
+  /* 1582 E> */ B(Star), R(0),
+  /* 1594 S> */ B(LdaConstant), U8(131),
+  /* 1594 E> */ B(Star), R(0),
+  /* 1606 S> */ B(LdaConstant), U8(132),
+  /* 1606 E> */ B(Star), R(0),
+  /* 1618 S> */ B(LdaConstant), U8(133),
+  /* 1618 E> */ B(Star), R(0),
+  /* 1630 S> */ B(LdaConstant), U8(134),
+  /* 1630 E> */ B(Star), R(0),
+  /* 1642 S> */ B(LdaConstant), U8(135),
+  /* 1642 E> */ B(Star), R(0),
+  /* 1654 S> */ B(LdaConstant), U8(136),
+  /* 1654 E> */ B(Star), R(0),
+  /* 1666 S> */ B(LdaConstant), U8(137),
+  /* 1666 E> */ B(Star), R(0),
+  /* 1678 S> */ B(LdaConstant), U8(138),
+  /* 1678 E> */ B(Star), R(0),
+  /* 1690 S> */ B(LdaConstant), U8(139),
+  /* 1690 E> */ B(Star), R(0),
+  /* 1702 S> */ B(LdaConstant), U8(140),
+  /* 1702 E> */ B(Star), R(0),
+  /* 1714 S> */ B(LdaConstant), U8(141),
+  /* 1714 E> */ B(Star), R(0),
+  /* 1726 S> */ B(LdaConstant), U8(142),
+  /* 1726 E> */ B(Star), R(0),
+  /* 1738 S> */ B(LdaConstant), U8(143),
+  /* 1738 E> */ B(Star), R(0),
+  /* 1750 S> */ B(LdaConstant), U8(144),
+  /* 1750 E> */ B(Star), R(0),
+  /* 1762 S> */ B(LdaConstant), U8(145),
+  /* 1762 E> */ B(Star), R(0),
+  /* 1774 S> */ B(LdaConstant), U8(146),
+  /* 1774 E> */ B(Star), R(0),
+  /* 1786 S> */ B(LdaConstant), U8(147),
+  /* 1786 E> */ B(Star), R(0),
+  /* 1798 S> */ B(LdaConstant), U8(148),
+  /* 1798 E> */ B(Star), R(0),
+  /* 1810 S> */ B(LdaConstant), U8(149),
+  /* 1810 E> */ B(Star), R(0),
+  /* 1822 S> */ B(LdaConstant), U8(150),
+  /* 1822 E> */ B(Star), R(0),
+  /* 1834 S> */ B(LdaConstant), U8(151),
+  /* 1834 E> */ B(Star), R(0),
+  /* 1846 S> */ B(LdaConstant), U8(152),
+  /* 1846 E> */ B(Star), R(0),
+  /* 1858 S> */ B(LdaConstant), U8(153),
+  /* 1858 E> */ B(Star), R(0),
+  /* 1870 S> */ B(LdaConstant), U8(154),
+  /* 1870 E> */ B(Star), R(0),
+  /* 1882 S> */ B(LdaConstant), U8(155),
+  /* 1882 E> */ B(Star), R(0),
+  /* 1894 S> */ B(LdaConstant), U8(156),
+  /* 1894 E> */ B(Star), R(0),
+  /* 1906 S> */ B(LdaConstant), U8(157),
+  /* 1906 E> */ B(Star), R(0),
+  /* 1918 S> */ B(LdaConstant), U8(158),
+  /* 1918 E> */ B(Star), R(0),
+  /* 1930 S> */ B(LdaConstant), U8(159),
+  /* 1930 E> */ B(Star), R(0),
+  /* 1942 S> */ B(LdaConstant), U8(160),
+  /* 1942 E> */ B(Star), R(0),
+  /* 1954 S> */ B(LdaConstant), U8(161),
+  /* 1954 E> */ B(Star), R(0),
+  /* 1966 S> */ B(LdaConstant), U8(162),
+  /* 1966 E> */ B(Star), R(0),
+  /* 1978 S> */ B(LdaConstant), U8(163),
+  /* 1978 E> */ B(Star), R(0),
+  /* 1990 S> */ B(LdaConstant), U8(164),
+  /* 1990 E> */ B(Star), R(0),
+  /* 2002 S> */ B(LdaConstant), U8(165),
+  /* 2002 E> */ B(Star), R(0),
+  /* 2014 S> */ B(LdaConstant), U8(166),
+  /* 2014 E> */ B(Star), R(0),
+  /* 2026 S> */ B(LdaConstant), U8(167),
+  /* 2026 E> */ B(Star), R(0),
+  /* 2038 S> */ B(LdaConstant), U8(168),
+  /* 2038 E> */ B(Star), R(0),
+  /* 2050 S> */ B(LdaConstant), U8(169),
+  /* 2050 E> */ B(Star), R(0),
+  /* 2062 S> */ B(LdaConstant), U8(170),
+  /* 2062 E> */ B(Star), R(0),
+  /* 2074 S> */ B(LdaConstant), U8(171),
+  /* 2074 E> */ B(Star), R(0),
+  /* 2086 S> */ B(LdaConstant), U8(172),
+  /* 2086 E> */ B(Star), R(0),
+  /* 2098 S> */ B(LdaConstant), U8(173),
+  /* 2098 E> */ B(Star), R(0),
+  /* 2110 S> */ B(LdaConstant), U8(174),
+  /* 2110 E> */ B(Star), R(0),
+  /* 2122 S> */ B(LdaConstant), U8(175),
+  /* 2122 E> */ B(Star), R(0),
+  /* 2134 S> */ B(LdaConstant), U8(176),
+  /* 2134 E> */ B(Star), R(0),
+  /* 2146 S> */ B(LdaConstant), U8(177),
+  /* 2146 E> */ B(Star), R(0),
+  /* 2158 S> */ B(LdaConstant), U8(178),
+  /* 2158 E> */ B(Star), R(0),
+  /* 2170 S> */ B(LdaConstant), U8(179),
+  /* 2170 E> */ B(Star), R(0),
+  /* 2182 S> */ B(LdaConstant), U8(180),
+  /* 2182 E> */ B(Star), R(0),
+  /* 2194 S> */ B(LdaConstant), U8(181),
+  /* 2194 E> */ B(Star), R(0),
+  /* 2206 S> */ B(LdaConstant), U8(182),
+  /* 2206 E> */ B(Star), R(0),
+  /* 2218 S> */ B(LdaConstant), U8(183),
+  /* 2218 E> */ B(Star), R(0),
+  /* 2230 S> */ B(LdaConstant), U8(184),
+  /* 2230 E> */ B(Star), R(0),
+  /* 2242 S> */ B(LdaConstant), U8(185),
+  /* 2242 E> */ B(Star), R(0),
+  /* 2254 S> */ B(LdaConstant), U8(186),
+  /* 2254 E> */ B(Star), R(0),
+  /* 2266 S> */ B(LdaConstant), U8(187),
+  /* 2266 E> */ B(Star), R(0),
+  /* 2278 S> */ B(LdaConstant), U8(188),
+  /* 2278 E> */ B(Star), R(0),
+  /* 2290 S> */ B(LdaConstant), U8(189),
+  /* 2290 E> */ B(Star), R(0),
+  /* 2302 S> */ B(LdaConstant), U8(190),
+  /* 2302 E> */ B(Star), R(0),
+  /* 2314 S> */ B(LdaConstant), U8(191),
+  /* 2314 E> */ B(Star), R(0),
+  /* 2326 S> */ B(LdaConstant), U8(192),
+  /* 2326 E> */ B(Star), R(0),
+  /* 2338 S> */ B(LdaConstant), U8(193),
+  /* 2338 E> */ B(Star), R(0),
+  /* 2350 S> */ B(LdaConstant), U8(194),
+  /* 2350 E> */ B(Star), R(0),
+  /* 2362 S> */ B(LdaConstant), U8(195),
+  /* 2362 E> */ B(Star), R(0),
+  /* 2374 S> */ B(LdaConstant), U8(196),
+  /* 2374 E> */ B(Star), R(0),
+  /* 2386 S> */ B(LdaConstant), U8(197),
+  /* 2386 E> */ B(Star), R(0),
+  /* 2398 S> */ B(LdaConstant), U8(198),
+  /* 2398 E> */ B(Star), R(0),
+  /* 2410 S> */ B(LdaConstant), U8(199),
+  /* 2410 E> */ B(Star), R(0),
+  /* 2422 S> */ B(LdaConstant), U8(200),
+  /* 2422 E> */ B(Star), R(0),
+  /* 2434 S> */ B(LdaConstant), U8(201),
+  /* 2434 E> */ B(Star), R(0),
+  /* 2446 S> */ B(LdaConstant), U8(202),
+  /* 2446 E> */ B(Star), R(0),
+  /* 2458 S> */ B(LdaConstant), U8(203),
+  /* 2458 E> */ B(Star), R(0),
+  /* 2470 S> */ B(LdaConstant), U8(204),
+  /* 2470 E> */ B(Star), R(0),
+  /* 2482 S> */ B(LdaConstant), U8(205),
+  /* 2482 E> */ B(Star), R(0),
+  /* 2494 S> */ B(LdaConstant), U8(206),
+  /* 2494 E> */ B(Star), R(0),
+  /* 2506 S> */ B(LdaConstant), U8(207),
+  /* 2506 E> */ B(Star), R(0),
+  /* 2518 S> */ B(LdaConstant), U8(208),
+  /* 2518 E> */ B(Star), R(0),
+  /* 2530 S> */ B(LdaConstant), U8(209),
+  /* 2530 E> */ B(Star), R(0),
+  /* 2542 S> */ B(LdaConstant), U8(210),
+  /* 2542 E> */ B(Star), R(0),
+  /* 2554 S> */ B(LdaConstant), U8(211),
+  /* 2554 E> */ B(Star), R(0),
+  /* 2566 S> */ B(LdaConstant), U8(212),
+  /* 2566 E> */ B(Star), R(0),
+  /* 2578 S> */ B(LdaConstant), U8(213),
+  /* 2578 E> */ B(Star), R(0),
+  /* 2590 S> */ B(LdaConstant), U8(214),
+  /* 2590 E> */ B(Star), R(0),
+  /* 2602 S> */ B(LdaConstant), U8(215),
+  /* 2602 E> */ B(Star), R(0),
+  /* 2614 S> */ B(LdaConstant), U8(216),
+  /* 2614 E> */ B(Star), R(0),
+  /* 2626 S> */ B(LdaConstant), U8(217),
+  /* 2626 E> */ B(Star), R(0),
+  /* 2638 S> */ B(LdaConstant), U8(218),
+  /* 2638 E> */ B(Star), R(0),
+  /* 2650 S> */ B(LdaConstant), U8(219),
+  /* 2650 E> */ B(Star), R(0),
+  /* 2662 S> */ B(LdaConstant), U8(220),
+  /* 2662 E> */ B(Star), R(0),
+  /* 2674 S> */ B(LdaConstant), U8(221),
+  /* 2674 E> */ B(Star), R(0),
+  /* 2686 S> */ B(LdaConstant), U8(222),
+  /* 2686 E> */ B(Star), R(0),
+  /* 2698 S> */ B(LdaConstant), U8(223),
+  /* 2698 E> */ B(Star), R(0),
+  /* 2710 S> */ B(LdaConstant), U8(224),
+  /* 2710 E> */ B(Star), R(0),
+  /* 2722 S> */ B(LdaConstant), U8(225),
+  /* 2722 E> */ B(Star), R(0),
+  /* 2734 S> */ B(LdaConstant), U8(226),
+  /* 2734 E> */ B(Star), R(0),
+  /* 2746 S> */ B(LdaConstant), U8(227),
+  /* 2746 E> */ B(Star), R(0),
+  /* 2758 S> */ B(LdaConstant), U8(228),
+  /* 2758 E> */ B(Star), R(0),
+  /* 2770 S> */ B(LdaConstant), U8(229),
+  /* 2770 E> */ B(Star), R(0),
+  /* 2782 S> */ B(LdaConstant), U8(230),
+  /* 2782 E> */ B(Star), R(0),
+  /* 2794 S> */ B(LdaConstant), U8(231),
+  /* 2794 E> */ B(Star), R(0),
+  /* 2806 S> */ B(LdaConstant), U8(232),
+  /* 2806 E> */ B(Star), R(0),
+  /* 2818 S> */ B(LdaConstant), U8(233),
+  /* 2818 E> */ B(Star), R(0),
+  /* 2830 S> */ B(LdaConstant), U8(234),
+  /* 2830 E> */ B(Star), R(0),
+  /* 2842 S> */ B(LdaConstant), U8(235),
+  /* 2842 E> */ B(Star), R(0),
+  /* 2854 S> */ B(LdaConstant), U8(236),
+  /* 2854 E> */ B(Star), R(0),
+  /* 2866 S> */ B(LdaConstant), U8(237),
+  /* 2866 E> */ B(Star), R(0),
+  /* 2878 S> */ B(LdaConstant), U8(238),
+  /* 2878 E> */ B(Star), R(0),
+  /* 2890 S> */ B(LdaConstant), U8(239),
+  /* 2890 E> */ B(Star), R(0),
+  /* 2902 S> */ B(LdaConstant), U8(240),
+  /* 2902 E> */ B(Star), R(0),
+  /* 2914 S> */ B(LdaConstant), U8(241),
+  /* 2914 E> */ B(Star), R(0),
+  /* 2926 S> */ B(LdaConstant), U8(242),
+  /* 2926 E> */ B(Star), R(0),
+  /* 2938 S> */ B(LdaConstant), U8(243),
+  /* 2938 E> */ B(Star), R(0),
+  /* 2950 S> */ B(LdaConstant), U8(244),
+  /* 2950 E> */ B(Star), R(0),
+  /* 2962 S> */ B(LdaConstant), U8(245),
+  /* 2962 E> */ B(Star), R(0),
+  /* 2974 S> */ B(LdaConstant), U8(246),
+  /* 2974 E> */ B(Star), R(0),
+  /* 2986 S> */ B(LdaConstant), U8(247),
+  /* 2986 E> */ B(Star), R(0),
+  /* 2998 S> */ B(LdaConstant), U8(248),
+  /* 2998 E> */ B(Star), R(0),
+  /* 3010 S> */ B(LdaConstant), U8(249),
+  /* 3010 E> */ B(Star), R(0),
+  /* 3022 S> */ B(LdaConstant), U8(250),
+  /* 3022 E> */ B(Star), R(0),
+  /* 3034 S> */ B(LdaConstant), U8(251),
+  /* 3034 E> */ B(Star), R(0),
+  /* 3046 S> */ B(LdaConstant), U8(252),
+  /* 3046 E> */ B(Star), R(0),
+  /* 3058 S> */ B(LdaConstant), U8(253),
+  /* 3058 E> */ B(Star), R(0),
+  /* 3070 S> */ B(LdaConstant), U8(254),
+  /* 3070 E> */ B(Star), R(0),
+  /* 3082 S> */ B(LdaConstant), U8(255),
+  /* 3082 E> */ B(Star), R(0),
+  /* 3086 S> */ B(Wide), B(LdaLookupSlotInsideTypeof), U16(256),
+                B(TypeOf),
+  /* 3102 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::HEAP_NUMBER_TYPE,
@@ -2384,523 +2384,523 @@
 parameter count: 1
 bytecode array length: 1033
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(LdaSmi), U8(10),
-  B(Wide), B(StaLookupSlotSloppy), U16(256),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   22 S> */ B(LdaConstant), U8(0),
+  /*   22 E> */ B(Star), R(0),
+  /*   34 S> */ B(LdaConstant), U8(1),
+  /*   34 E> */ B(Star), R(0),
+  /*   46 S> */ B(LdaConstant), U8(2),
+  /*   46 E> */ B(Star), R(0),
+  /*   58 S> */ B(LdaConstant), U8(3),
+  /*   58 E> */ B(Star), R(0),
+  /*   70 S> */ B(LdaConstant), U8(4),
+  /*   70 E> */ B(Star), R(0),
+  /*   82 S> */ B(LdaConstant), U8(5),
+  /*   82 E> */ B(Star), R(0),
+  /*   94 S> */ B(LdaConstant), U8(6),
+  /*   94 E> */ B(Star), R(0),
+  /*  106 S> */ B(LdaConstant), U8(7),
+  /*  106 E> */ B(Star), R(0),
+  /*  118 S> */ B(LdaConstant), U8(8),
+  /*  118 E> */ B(Star), R(0),
+  /*  130 S> */ B(LdaConstant), U8(9),
+  /*  130 E> */ B(Star), R(0),
+  /*  142 S> */ B(LdaConstant), U8(10),
+  /*  142 E> */ B(Star), R(0),
+  /*  154 S> */ B(LdaConstant), U8(11),
+  /*  154 E> */ B(Star), R(0),
+  /*  166 S> */ B(LdaConstant), U8(12),
+  /*  166 E> */ B(Star), R(0),
+  /*  178 S> */ B(LdaConstant), U8(13),
+  /*  178 E> */ B(Star), R(0),
+  /*  190 S> */ B(LdaConstant), U8(14),
+  /*  190 E> */ B(Star), R(0),
+  /*  202 S> */ B(LdaConstant), U8(15),
+  /*  202 E> */ B(Star), R(0),
+  /*  214 S> */ B(LdaConstant), U8(16),
+  /*  214 E> */ B(Star), R(0),
+  /*  226 S> */ B(LdaConstant), U8(17),
+  /*  226 E> */ B(Star), R(0),
+  /*  238 S> */ B(LdaConstant), U8(18),
+  /*  238 E> */ B(Star), R(0),
+  /*  250 S> */ B(LdaConstant), U8(19),
+  /*  250 E> */ B(Star), R(0),
+  /*  262 S> */ B(LdaConstant), U8(20),
+  /*  262 E> */ B(Star), R(0),
+  /*  274 S> */ B(LdaConstant), U8(21),
+  /*  274 E> */ B(Star), R(0),
+  /*  286 S> */ B(LdaConstant), U8(22),
+  /*  286 E> */ B(Star), R(0),
+  /*  298 S> */ B(LdaConstant), U8(23),
+  /*  298 E> */ B(Star), R(0),
+  /*  310 S> */ B(LdaConstant), U8(24),
+  /*  310 E> */ B(Star), R(0),
+  /*  322 S> */ B(LdaConstant), U8(25),
+  /*  322 E> */ B(Star), R(0),
+  /*  334 S> */ B(LdaConstant), U8(26),
+  /*  334 E> */ B(Star), R(0),
+  /*  346 S> */ B(LdaConstant), U8(27),
+  /*  346 E> */ B(Star), R(0),
+  /*  358 S> */ B(LdaConstant), U8(28),
+  /*  358 E> */ B(Star), R(0),
+  /*  370 S> */ B(LdaConstant), U8(29),
+  /*  370 E> */ B(Star), R(0),
+  /*  382 S> */ B(LdaConstant), U8(30),
+  /*  382 E> */ B(Star), R(0),
+  /*  394 S> */ B(LdaConstant), U8(31),
+  /*  394 E> */ B(Star), R(0),
+  /*  406 S> */ B(LdaConstant), U8(32),
+  /*  406 E> */ B(Star), R(0),
+  /*  418 S> */ B(LdaConstant), U8(33),
+  /*  418 E> */ B(Star), R(0),
+  /*  430 S> */ B(LdaConstant), U8(34),
+  /*  430 E> */ B(Star), R(0),
+  /*  442 S> */ B(LdaConstant), U8(35),
+  /*  442 E> */ B(Star), R(0),
+  /*  454 S> */ B(LdaConstant), U8(36),
+  /*  454 E> */ B(Star), R(0),
+  /*  466 S> */ B(LdaConstant), U8(37),
+  /*  466 E> */ B(Star), R(0),
+  /*  478 S> */ B(LdaConstant), U8(38),
+  /*  478 E> */ B(Star), R(0),
+  /*  490 S> */ B(LdaConstant), U8(39),
+  /*  490 E> */ B(Star), R(0),
+  /*  502 S> */ B(LdaConstant), U8(40),
+  /*  502 E> */ B(Star), R(0),
+  /*  514 S> */ B(LdaConstant), U8(41),
+  /*  514 E> */ B(Star), R(0),
+  /*  526 S> */ B(LdaConstant), U8(42),
+  /*  526 E> */ B(Star), R(0),
+  /*  538 S> */ B(LdaConstant), U8(43),
+  /*  538 E> */ B(Star), R(0),
+  /*  550 S> */ B(LdaConstant), U8(44),
+  /*  550 E> */ B(Star), R(0),
+  /*  562 S> */ B(LdaConstant), U8(45),
+  /*  562 E> */ B(Star), R(0),
+  /*  574 S> */ B(LdaConstant), U8(46),
+  /*  574 E> */ B(Star), R(0),
+  /*  586 S> */ B(LdaConstant), U8(47),
+  /*  586 E> */ B(Star), R(0),
+  /*  598 S> */ B(LdaConstant), U8(48),
+  /*  598 E> */ B(Star), R(0),
+  /*  610 S> */ B(LdaConstant), U8(49),
+  /*  610 E> */ B(Star), R(0),
+  /*  622 S> */ B(LdaConstant), U8(50),
+  /*  622 E> */ B(Star), R(0),
+  /*  634 S> */ B(LdaConstant), U8(51),
+  /*  634 E> */ B(Star), R(0),
+  /*  646 S> */ B(LdaConstant), U8(52),
+  /*  646 E> */ B(Star), R(0),
+  /*  658 S> */ B(LdaConstant), U8(53),
+  /*  658 E> */ B(Star), R(0),
+  /*  670 S> */ B(LdaConstant), U8(54),
+  /*  670 E> */ B(Star), R(0),
+  /*  682 S> */ B(LdaConstant), U8(55),
+  /*  682 E> */ B(Star), R(0),
+  /*  694 S> */ B(LdaConstant), U8(56),
+  /*  694 E> */ B(Star), R(0),
+  /*  706 S> */ B(LdaConstant), U8(57),
+  /*  706 E> */ B(Star), R(0),
+  /*  718 S> */ B(LdaConstant), U8(58),
+  /*  718 E> */ B(Star), R(0),
+  /*  730 S> */ B(LdaConstant), U8(59),
+  /*  730 E> */ B(Star), R(0),
+  /*  742 S> */ B(LdaConstant), U8(60),
+  /*  742 E> */ B(Star), R(0),
+  /*  754 S> */ B(LdaConstant), U8(61),
+  /*  754 E> */ B(Star), R(0),
+  /*  766 S> */ B(LdaConstant), U8(62),
+  /*  766 E> */ B(Star), R(0),
+  /*  778 S> */ B(LdaConstant), U8(63),
+  /*  778 E> */ B(Star), R(0),
+  /*  790 S> */ B(LdaConstant), U8(64),
+  /*  790 E> */ B(Star), R(0),
+  /*  802 S> */ B(LdaConstant), U8(65),
+  /*  802 E> */ B(Star), R(0),
+  /*  814 S> */ B(LdaConstant), U8(66),
+  /*  814 E> */ B(Star), R(0),
+  /*  826 S> */ B(LdaConstant), U8(67),
+  /*  826 E> */ B(Star), R(0),
+  /*  838 S> */ B(LdaConstant), U8(68),
+  /*  838 E> */ B(Star), R(0),
+  /*  850 S> */ B(LdaConstant), U8(69),
+  /*  850 E> */ B(Star), R(0),
+  /*  862 S> */ B(LdaConstant), U8(70),
+  /*  862 E> */ B(Star), R(0),
+  /*  874 S> */ B(LdaConstant), U8(71),
+  /*  874 E> */ B(Star), R(0),
+  /*  886 S> */ B(LdaConstant), U8(72),
+  /*  886 E> */ B(Star), R(0),
+  /*  898 S> */ B(LdaConstant), U8(73),
+  /*  898 E> */ B(Star), R(0),
+  /*  910 S> */ B(LdaConstant), U8(74),
+  /*  910 E> */ B(Star), R(0),
+  /*  922 S> */ B(LdaConstant), U8(75),
+  /*  922 E> */ B(Star), R(0),
+  /*  934 S> */ B(LdaConstant), U8(76),
+  /*  934 E> */ B(Star), R(0),
+  /*  946 S> */ B(LdaConstant), U8(77),
+  /*  946 E> */ B(Star), R(0),
+  /*  958 S> */ B(LdaConstant), U8(78),
+  /*  958 E> */ B(Star), R(0),
+  /*  970 S> */ B(LdaConstant), U8(79),
+  /*  970 E> */ B(Star), R(0),
+  /*  982 S> */ B(LdaConstant), U8(80),
+  /*  982 E> */ B(Star), R(0),
+  /*  994 S> */ B(LdaConstant), U8(81),
+  /*  994 E> */ B(Star), R(0),
+  /* 1006 S> */ B(LdaConstant), U8(82),
+  /* 1006 E> */ B(Star), R(0),
+  /* 1018 S> */ B(LdaConstant), U8(83),
+  /* 1018 E> */ B(Star), R(0),
+  /* 1030 S> */ B(LdaConstant), U8(84),
+  /* 1030 E> */ B(Star), R(0),
+  /* 1042 S> */ B(LdaConstant), U8(85),
+  /* 1042 E> */ B(Star), R(0),
+  /* 1054 S> */ B(LdaConstant), U8(86),
+  /* 1054 E> */ B(Star), R(0),
+  /* 1066 S> */ B(LdaConstant), U8(87),
+  /* 1066 E> */ B(Star), R(0),
+  /* 1078 S> */ B(LdaConstant), U8(88),
+  /* 1078 E> */ B(Star), R(0),
+  /* 1090 S> */ B(LdaConstant), U8(89),
+  /* 1090 E> */ B(Star), R(0),
+  /* 1102 S> */ B(LdaConstant), U8(90),
+  /* 1102 E> */ B(Star), R(0),
+  /* 1114 S> */ B(LdaConstant), U8(91),
+  /* 1114 E> */ B(Star), R(0),
+  /* 1126 S> */ B(LdaConstant), U8(92),
+  /* 1126 E> */ B(Star), R(0),
+  /* 1138 S> */ B(LdaConstant), U8(93),
+  /* 1138 E> */ B(Star), R(0),
+  /* 1150 S> */ B(LdaConstant), U8(94),
+  /* 1150 E> */ B(Star), R(0),
+  /* 1162 S> */ B(LdaConstant), U8(95),
+  /* 1162 E> */ B(Star), R(0),
+  /* 1174 S> */ B(LdaConstant), U8(96),
+  /* 1174 E> */ B(Star), R(0),
+  /* 1186 S> */ B(LdaConstant), U8(97),
+  /* 1186 E> */ B(Star), R(0),
+  /* 1198 S> */ B(LdaConstant), U8(98),
+  /* 1198 E> */ B(Star), R(0),
+  /* 1210 S> */ B(LdaConstant), U8(99),
+  /* 1210 E> */ B(Star), R(0),
+  /* 1222 S> */ B(LdaConstant), U8(100),
+  /* 1222 E> */ B(Star), R(0),
+  /* 1234 S> */ B(LdaConstant), U8(101),
+  /* 1234 E> */ B(Star), R(0),
+  /* 1246 S> */ B(LdaConstant), U8(102),
+  /* 1246 E> */ B(Star), R(0),
+  /* 1258 S> */ B(LdaConstant), U8(103),
+  /* 1258 E> */ B(Star), R(0),
+  /* 1270 S> */ B(LdaConstant), U8(104),
+  /* 1270 E> */ B(Star), R(0),
+  /* 1282 S> */ B(LdaConstant), U8(105),
+  /* 1282 E> */ B(Star), R(0),
+  /* 1294 S> */ B(LdaConstant), U8(106),
+  /* 1294 E> */ B(Star), R(0),
+  /* 1306 S> */ B(LdaConstant), U8(107),
+  /* 1306 E> */ B(Star), R(0),
+  /* 1318 S> */ B(LdaConstant), U8(108),
+  /* 1318 E> */ B(Star), R(0),
+  /* 1330 S> */ B(LdaConstant), U8(109),
+  /* 1330 E> */ B(Star), R(0),
+  /* 1342 S> */ B(LdaConstant), U8(110),
+  /* 1342 E> */ B(Star), R(0),
+  /* 1354 S> */ B(LdaConstant), U8(111),
+  /* 1354 E> */ B(Star), R(0),
+  /* 1366 S> */ B(LdaConstant), U8(112),
+  /* 1366 E> */ B(Star), R(0),
+  /* 1378 S> */ B(LdaConstant), U8(113),
+  /* 1378 E> */ B(Star), R(0),
+  /* 1390 S> */ B(LdaConstant), U8(114),
+  /* 1390 E> */ B(Star), R(0),
+  /* 1402 S> */ B(LdaConstant), U8(115),
+  /* 1402 E> */ B(Star), R(0),
+  /* 1414 S> */ B(LdaConstant), U8(116),
+  /* 1414 E> */ B(Star), R(0),
+  /* 1426 S> */ B(LdaConstant), U8(117),
+  /* 1426 E> */ B(Star), R(0),
+  /* 1438 S> */ B(LdaConstant), U8(118),
+  /* 1438 E> */ B(Star), R(0),
+  /* 1450 S> */ B(LdaConstant), U8(119),
+  /* 1450 E> */ B(Star), R(0),
+  /* 1462 S> */ B(LdaConstant), U8(120),
+  /* 1462 E> */ B(Star), R(0),
+  /* 1474 S> */ B(LdaConstant), U8(121),
+  /* 1474 E> */ B(Star), R(0),
+  /* 1486 S> */ B(LdaConstant), U8(122),
+  /* 1486 E> */ B(Star), R(0),
+  /* 1498 S> */ B(LdaConstant), U8(123),
+  /* 1498 E> */ B(Star), R(0),
+  /* 1510 S> */ B(LdaConstant), U8(124),
+  /* 1510 E> */ B(Star), R(0),
+  /* 1522 S> */ B(LdaConstant), U8(125),
+  /* 1522 E> */ B(Star), R(0),
+  /* 1534 S> */ B(LdaConstant), U8(126),
+  /* 1534 E> */ B(Star), R(0),
+  /* 1546 S> */ B(LdaConstant), U8(127),
+  /* 1546 E> */ B(Star), R(0),
+  /* 1558 S> */ B(LdaConstant), U8(128),
+  /* 1558 E> */ B(Star), R(0),
+  /* 1570 S> */ B(LdaConstant), U8(129),
+  /* 1570 E> */ B(Star), R(0),
+  /* 1582 S> */ B(LdaConstant), U8(130),
+  /* 1582 E> */ B(Star), R(0),
+  /* 1594 S> */ B(LdaConstant), U8(131),
+  /* 1594 E> */ B(Star), R(0),
+  /* 1606 S> */ B(LdaConstant), U8(132),
+  /* 1606 E> */ B(Star), R(0),
+  /* 1618 S> */ B(LdaConstant), U8(133),
+  /* 1618 E> */ B(Star), R(0),
+  /* 1630 S> */ B(LdaConstant), U8(134),
+  /* 1630 E> */ B(Star), R(0),
+  /* 1642 S> */ B(LdaConstant), U8(135),
+  /* 1642 E> */ B(Star), R(0),
+  /* 1654 S> */ B(LdaConstant), U8(136),
+  /* 1654 E> */ B(Star), R(0),
+  /* 1666 S> */ B(LdaConstant), U8(137),
+  /* 1666 E> */ B(Star), R(0),
+  /* 1678 S> */ B(LdaConstant), U8(138),
+  /* 1678 E> */ B(Star), R(0),
+  /* 1690 S> */ B(LdaConstant), U8(139),
+  /* 1690 E> */ B(Star), R(0),
+  /* 1702 S> */ B(LdaConstant), U8(140),
+  /* 1702 E> */ B(Star), R(0),
+  /* 1714 S> */ B(LdaConstant), U8(141),
+  /* 1714 E> */ B(Star), R(0),
+  /* 1726 S> */ B(LdaConstant), U8(142),
+  /* 1726 E> */ B(Star), R(0),
+  /* 1738 S> */ B(LdaConstant), U8(143),
+  /* 1738 E> */ B(Star), R(0),
+  /* 1750 S> */ B(LdaConstant), U8(144),
+  /* 1750 E> */ B(Star), R(0),
+  /* 1762 S> */ B(LdaConstant), U8(145),
+  /* 1762 E> */ B(Star), R(0),
+  /* 1774 S> */ B(LdaConstant), U8(146),
+  /* 1774 E> */ B(Star), R(0),
+  /* 1786 S> */ B(LdaConstant), U8(147),
+  /* 1786 E> */ B(Star), R(0),
+  /* 1798 S> */ B(LdaConstant), U8(148),
+  /* 1798 E> */ B(Star), R(0),
+  /* 1810 S> */ B(LdaConstant), U8(149),
+  /* 1810 E> */ B(Star), R(0),
+  /* 1822 S> */ B(LdaConstant), U8(150),
+  /* 1822 E> */ B(Star), R(0),
+  /* 1834 S> */ B(LdaConstant), U8(151),
+  /* 1834 E> */ B(Star), R(0),
+  /* 1846 S> */ B(LdaConstant), U8(152),
+  /* 1846 E> */ B(Star), R(0),
+  /* 1858 S> */ B(LdaConstant), U8(153),
+  /* 1858 E> */ B(Star), R(0),
+  /* 1870 S> */ B(LdaConstant), U8(154),
+  /* 1870 E> */ B(Star), R(0),
+  /* 1882 S> */ B(LdaConstant), U8(155),
+  /* 1882 E> */ B(Star), R(0),
+  /* 1894 S> */ B(LdaConstant), U8(156),
+  /* 1894 E> */ B(Star), R(0),
+  /* 1906 S> */ B(LdaConstant), U8(157),
+  /* 1906 E> */ B(Star), R(0),
+  /* 1918 S> */ B(LdaConstant), U8(158),
+  /* 1918 E> */ B(Star), R(0),
+  /* 1930 S> */ B(LdaConstant), U8(159),
+  /* 1930 E> */ B(Star), R(0),
+  /* 1942 S> */ B(LdaConstant), U8(160),
+  /* 1942 E> */ B(Star), R(0),
+  /* 1954 S> */ B(LdaConstant), U8(161),
+  /* 1954 E> */ B(Star), R(0),
+  /* 1966 S> */ B(LdaConstant), U8(162),
+  /* 1966 E> */ B(Star), R(0),
+  /* 1978 S> */ B(LdaConstant), U8(163),
+  /* 1978 E> */ B(Star), R(0),
+  /* 1990 S> */ B(LdaConstant), U8(164),
+  /* 1990 E> */ B(Star), R(0),
+  /* 2002 S> */ B(LdaConstant), U8(165),
+  /* 2002 E> */ B(Star), R(0),
+  /* 2014 S> */ B(LdaConstant), U8(166),
+  /* 2014 E> */ B(Star), R(0),
+  /* 2026 S> */ B(LdaConstant), U8(167),
+  /* 2026 E> */ B(Star), R(0),
+  /* 2038 S> */ B(LdaConstant), U8(168),
+  /* 2038 E> */ B(Star), R(0),
+  /* 2050 S> */ B(LdaConstant), U8(169),
+  /* 2050 E> */ B(Star), R(0),
+  /* 2062 S> */ B(LdaConstant), U8(170),
+  /* 2062 E> */ B(Star), R(0),
+  /* 2074 S> */ B(LdaConstant), U8(171),
+  /* 2074 E> */ B(Star), R(0),
+  /* 2086 S> */ B(LdaConstant), U8(172),
+  /* 2086 E> */ B(Star), R(0),
+  /* 2098 S> */ B(LdaConstant), U8(173),
+  /* 2098 E> */ B(Star), R(0),
+  /* 2110 S> */ B(LdaConstant), U8(174),
+  /* 2110 E> */ B(Star), R(0),
+  /* 2122 S> */ B(LdaConstant), U8(175),
+  /* 2122 E> */ B(Star), R(0),
+  /* 2134 S> */ B(LdaConstant), U8(176),
+  /* 2134 E> */ B(Star), R(0),
+  /* 2146 S> */ B(LdaConstant), U8(177),
+  /* 2146 E> */ B(Star), R(0),
+  /* 2158 S> */ B(LdaConstant), U8(178),
+  /* 2158 E> */ B(Star), R(0),
+  /* 2170 S> */ B(LdaConstant), U8(179),
+  /* 2170 E> */ B(Star), R(0),
+  /* 2182 S> */ B(LdaConstant), U8(180),
+  /* 2182 E> */ B(Star), R(0),
+  /* 2194 S> */ B(LdaConstant), U8(181),
+  /* 2194 E> */ B(Star), R(0),
+  /* 2206 S> */ B(LdaConstant), U8(182),
+  /* 2206 E> */ B(Star), R(0),
+  /* 2218 S> */ B(LdaConstant), U8(183),
+  /* 2218 E> */ B(Star), R(0),
+  /* 2230 S> */ B(LdaConstant), U8(184),
+  /* 2230 E> */ B(Star), R(0),
+  /* 2242 S> */ B(LdaConstant), U8(185),
+  /* 2242 E> */ B(Star), R(0),
+  /* 2254 S> */ B(LdaConstant), U8(186),
+  /* 2254 E> */ B(Star), R(0),
+  /* 2266 S> */ B(LdaConstant), U8(187),
+  /* 2266 E> */ B(Star), R(0),
+  /* 2278 S> */ B(LdaConstant), U8(188),
+  /* 2278 E> */ B(Star), R(0),
+  /* 2290 S> */ B(LdaConstant), U8(189),
+  /* 2290 E> */ B(Star), R(0),
+  /* 2302 S> */ B(LdaConstant), U8(190),
+  /* 2302 E> */ B(Star), R(0),
+  /* 2314 S> */ B(LdaConstant), U8(191),
+  /* 2314 E> */ B(Star), R(0),
+  /* 2326 S> */ B(LdaConstant), U8(192),
+  /* 2326 E> */ B(Star), R(0),
+  /* 2338 S> */ B(LdaConstant), U8(193),
+  /* 2338 E> */ B(Star), R(0),
+  /* 2350 S> */ B(LdaConstant), U8(194),
+  /* 2350 E> */ B(Star), R(0),
+  /* 2362 S> */ B(LdaConstant), U8(195),
+  /* 2362 E> */ B(Star), R(0),
+  /* 2374 S> */ B(LdaConstant), U8(196),
+  /* 2374 E> */ B(Star), R(0),
+  /* 2386 S> */ B(LdaConstant), U8(197),
+  /* 2386 E> */ B(Star), R(0),
+  /* 2398 S> */ B(LdaConstant), U8(198),
+  /* 2398 E> */ B(Star), R(0),
+  /* 2410 S> */ B(LdaConstant), U8(199),
+  /* 2410 E> */ B(Star), R(0),
+  /* 2422 S> */ B(LdaConstant), U8(200),
+  /* 2422 E> */ B(Star), R(0),
+  /* 2434 S> */ B(LdaConstant), U8(201),
+  /* 2434 E> */ B(Star), R(0),
+  /* 2446 S> */ B(LdaConstant), U8(202),
+  /* 2446 E> */ B(Star), R(0),
+  /* 2458 S> */ B(LdaConstant), U8(203),
+  /* 2458 E> */ B(Star), R(0),
+  /* 2470 S> */ B(LdaConstant), U8(204),
+  /* 2470 E> */ B(Star), R(0),
+  /* 2482 S> */ B(LdaConstant), U8(205),
+  /* 2482 E> */ B(Star), R(0),
+  /* 2494 S> */ B(LdaConstant), U8(206),
+  /* 2494 E> */ B(Star), R(0),
+  /* 2506 S> */ B(LdaConstant), U8(207),
+  /* 2506 E> */ B(Star), R(0),
+  /* 2518 S> */ B(LdaConstant), U8(208),
+  /* 2518 E> */ B(Star), R(0),
+  /* 2530 S> */ B(LdaConstant), U8(209),
+  /* 2530 E> */ B(Star), R(0),
+  /* 2542 S> */ B(LdaConstant), U8(210),
+  /* 2542 E> */ B(Star), R(0),
+  /* 2554 S> */ B(LdaConstant), U8(211),
+  /* 2554 E> */ B(Star), R(0),
+  /* 2566 S> */ B(LdaConstant), U8(212),
+  /* 2566 E> */ B(Star), R(0),
+  /* 2578 S> */ B(LdaConstant), U8(213),
+  /* 2578 E> */ B(Star), R(0),
+  /* 2590 S> */ B(LdaConstant), U8(214),
+  /* 2590 E> */ B(Star), R(0),
+  /* 2602 S> */ B(LdaConstant), U8(215),
+  /* 2602 E> */ B(Star), R(0),
+  /* 2614 S> */ B(LdaConstant), U8(216),
+  /* 2614 E> */ B(Star), R(0),
+  /* 2626 S> */ B(LdaConstant), U8(217),
+  /* 2626 E> */ B(Star), R(0),
+  /* 2638 S> */ B(LdaConstant), U8(218),
+  /* 2638 E> */ B(Star), R(0),
+  /* 2650 S> */ B(LdaConstant), U8(219),
+  /* 2650 E> */ B(Star), R(0),
+  /* 2662 S> */ B(LdaConstant), U8(220),
+  /* 2662 E> */ B(Star), R(0),
+  /* 2674 S> */ B(LdaConstant), U8(221),
+  /* 2674 E> */ B(Star), R(0),
+  /* 2686 S> */ B(LdaConstant), U8(222),
+  /* 2686 E> */ B(Star), R(0),
+  /* 2698 S> */ B(LdaConstant), U8(223),
+  /* 2698 E> */ B(Star), R(0),
+  /* 2710 S> */ B(LdaConstant), U8(224),
+  /* 2710 E> */ B(Star), R(0),
+  /* 2722 S> */ B(LdaConstant), U8(225),
+  /* 2722 E> */ B(Star), R(0),
+  /* 2734 S> */ B(LdaConstant), U8(226),
+  /* 2734 E> */ B(Star), R(0),
+  /* 2746 S> */ B(LdaConstant), U8(227),
+  /* 2746 E> */ B(Star), R(0),
+  /* 2758 S> */ B(LdaConstant), U8(228),
+  /* 2758 E> */ B(Star), R(0),
+  /* 2770 S> */ B(LdaConstant), U8(229),
+  /* 2770 E> */ B(Star), R(0),
+  /* 2782 S> */ B(LdaConstant), U8(230),
+  /* 2782 E> */ B(Star), R(0),
+  /* 2794 S> */ B(LdaConstant), U8(231),
+  /* 2794 E> */ B(Star), R(0),
+  /* 2806 S> */ B(LdaConstant), U8(232),
+  /* 2806 E> */ B(Star), R(0),
+  /* 2818 S> */ B(LdaConstant), U8(233),
+  /* 2818 E> */ B(Star), R(0),
+  /* 2830 S> */ B(LdaConstant), U8(234),
+  /* 2830 E> */ B(Star), R(0),
+  /* 2842 S> */ B(LdaConstant), U8(235),
+  /* 2842 E> */ B(Star), R(0),
+  /* 2854 S> */ B(LdaConstant), U8(236),
+  /* 2854 E> */ B(Star), R(0),
+  /* 2866 S> */ B(LdaConstant), U8(237),
+  /* 2866 E> */ B(Star), R(0),
+  /* 2878 S> */ B(LdaConstant), U8(238),
+  /* 2878 E> */ B(Star), R(0),
+  /* 2890 S> */ B(LdaConstant), U8(239),
+  /* 2890 E> */ B(Star), R(0),
+  /* 2902 S> */ B(LdaConstant), U8(240),
+  /* 2902 E> */ B(Star), R(0),
+  /* 2914 S> */ B(LdaConstant), U8(241),
+  /* 2914 E> */ B(Star), R(0),
+  /* 2926 S> */ B(LdaConstant), U8(242),
+  /* 2926 E> */ B(Star), R(0),
+  /* 2938 S> */ B(LdaConstant), U8(243),
+  /* 2938 E> */ B(Star), R(0),
+  /* 2950 S> */ B(LdaConstant), U8(244),
+  /* 2950 E> */ B(Star), R(0),
+  /* 2962 S> */ B(LdaConstant), U8(245),
+  /* 2962 E> */ B(Star), R(0),
+  /* 2974 S> */ B(LdaConstant), U8(246),
+  /* 2974 E> */ B(Star), R(0),
+  /* 2986 S> */ B(LdaConstant), U8(247),
+  /* 2986 E> */ B(Star), R(0),
+  /* 2998 S> */ B(LdaConstant), U8(248),
+  /* 2998 E> */ B(Star), R(0),
+  /* 3010 S> */ B(LdaConstant), U8(249),
+  /* 3010 E> */ B(Star), R(0),
+  /* 3022 S> */ B(LdaConstant), U8(250),
+  /* 3022 E> */ B(Star), R(0),
+  /* 3034 S> */ B(LdaConstant), U8(251),
+  /* 3034 E> */ B(Star), R(0),
+  /* 3046 S> */ B(LdaConstant), U8(252),
+  /* 3046 E> */ B(Star), R(0),
+  /* 3058 S> */ B(LdaConstant), U8(253),
+  /* 3058 E> */ B(Star), R(0),
+  /* 3070 S> */ B(LdaConstant), U8(254),
+  /* 3070 E> */ B(Star), R(0),
+  /* 3082 S> */ B(LdaConstant), U8(255),
+  /* 3082 E> */ B(Star), R(0),
+  /* 3086 S> */ B(LdaSmi), U8(10),
+  /* 3088 E> */ B(Wide), B(StaLookupSlotSloppy), U16(256),
+                B(LdaUndefined),
+  /* 3093 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::HEAP_NUMBER_TYPE,
@@ -3438,523 +3438,523 @@
 parameter count: 1
 bytecode array length: 1033
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(LdaSmi), U8(10),
-  B(Wide), B(StaLookupSlotStrict), U16(256),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   35 S> */ B(LdaConstant), U8(0),
+  /*   35 E> */ B(Star), R(0),
+  /*   47 S> */ B(LdaConstant), U8(1),
+  /*   47 E> */ B(Star), R(0),
+  /*   59 S> */ B(LdaConstant), U8(2),
+  /*   59 E> */ B(Star), R(0),
+  /*   71 S> */ B(LdaConstant), U8(3),
+  /*   71 E> */ B(Star), R(0),
+  /*   83 S> */ B(LdaConstant), U8(4),
+  /*   83 E> */ B(Star), R(0),
+  /*   95 S> */ B(LdaConstant), U8(5),
+  /*   95 E> */ B(Star), R(0),
+  /*  107 S> */ B(LdaConstant), U8(6),
+  /*  107 E> */ B(Star), R(0),
+  /*  119 S> */ B(LdaConstant), U8(7),
+  /*  119 E> */ B(Star), R(0),
+  /*  131 S> */ B(LdaConstant), U8(8),
+  /*  131 E> */ B(Star), R(0),
+  /*  143 S> */ B(LdaConstant), U8(9),
+  /*  143 E> */ B(Star), R(0),
+  /*  155 S> */ B(LdaConstant), U8(10),
+  /*  155 E> */ B(Star), R(0),
+  /*  167 S> */ B(LdaConstant), U8(11),
+  /*  167 E> */ B(Star), R(0),
+  /*  179 S> */ B(LdaConstant), U8(12),
+  /*  179 E> */ B(Star), R(0),
+  /*  191 S> */ B(LdaConstant), U8(13),
+  /*  191 E> */ B(Star), R(0),
+  /*  203 S> */ B(LdaConstant), U8(14),
+  /*  203 E> */ B(Star), R(0),
+  /*  215 S> */ B(LdaConstant), U8(15),
+  /*  215 E> */ B(Star), R(0),
+  /*  227 S> */ B(LdaConstant), U8(16),
+  /*  227 E> */ B(Star), R(0),
+  /*  239 S> */ B(LdaConstant), U8(17),
+  /*  239 E> */ B(Star), R(0),
+  /*  251 S> */ B(LdaConstant), U8(18),
+  /*  251 E> */ B(Star), R(0),
+  /*  263 S> */ B(LdaConstant), U8(19),
+  /*  263 E> */ B(Star), R(0),
+  /*  275 S> */ B(LdaConstant), U8(20),
+  /*  275 E> */ B(Star), R(0),
+  /*  287 S> */ B(LdaConstant), U8(21),
+  /*  287 E> */ B(Star), R(0),
+  /*  299 S> */ B(LdaConstant), U8(22),
+  /*  299 E> */ B(Star), R(0),
+  /*  311 S> */ B(LdaConstant), U8(23),
+  /*  311 E> */ B(Star), R(0),
+  /*  323 S> */ B(LdaConstant), U8(24),
+  /*  323 E> */ B(Star), R(0),
+  /*  335 S> */ B(LdaConstant), U8(25),
+  /*  335 E> */ B(Star), R(0),
+  /*  347 S> */ B(LdaConstant), U8(26),
+  /*  347 E> */ B(Star), R(0),
+  /*  359 S> */ B(LdaConstant), U8(27),
+  /*  359 E> */ B(Star), R(0),
+  /*  371 S> */ B(LdaConstant), U8(28),
+  /*  371 E> */ B(Star), R(0),
+  /*  383 S> */ B(LdaConstant), U8(29),
+  /*  383 E> */ B(Star), R(0),
+  /*  395 S> */ B(LdaConstant), U8(30),
+  /*  395 E> */ B(Star), R(0),
+  /*  407 S> */ B(LdaConstant), U8(31),
+  /*  407 E> */ B(Star), R(0),
+  /*  419 S> */ B(LdaConstant), U8(32),
+  /*  419 E> */ B(Star), R(0),
+  /*  431 S> */ B(LdaConstant), U8(33),
+  /*  431 E> */ B(Star), R(0),
+  /*  443 S> */ B(LdaConstant), U8(34),
+  /*  443 E> */ B(Star), R(0),
+  /*  455 S> */ B(LdaConstant), U8(35),
+  /*  455 E> */ B(Star), R(0),
+  /*  467 S> */ B(LdaConstant), U8(36),
+  /*  467 E> */ B(Star), R(0),
+  /*  479 S> */ B(LdaConstant), U8(37),
+  /*  479 E> */ B(Star), R(0),
+  /*  491 S> */ B(LdaConstant), U8(38),
+  /*  491 E> */ B(Star), R(0),
+  /*  503 S> */ B(LdaConstant), U8(39),
+  /*  503 E> */ B(Star), R(0),
+  /*  515 S> */ B(LdaConstant), U8(40),
+  /*  515 E> */ B(Star), R(0),
+  /*  527 S> */ B(LdaConstant), U8(41),
+  /*  527 E> */ B(Star), R(0),
+  /*  539 S> */ B(LdaConstant), U8(42),
+  /*  539 E> */ B(Star), R(0),
+  /*  551 S> */ B(LdaConstant), U8(43),
+  /*  551 E> */ B(Star), R(0),
+  /*  563 S> */ B(LdaConstant), U8(44),
+  /*  563 E> */ B(Star), R(0),
+  /*  575 S> */ B(LdaConstant), U8(45),
+  /*  575 E> */ B(Star), R(0),
+  /*  587 S> */ B(LdaConstant), U8(46),
+  /*  587 E> */ B(Star), R(0),
+  /*  599 S> */ B(LdaConstant), U8(47),
+  /*  599 E> */ B(Star), R(0),
+  /*  611 S> */ B(LdaConstant), U8(48),
+  /*  611 E> */ B(Star), R(0),
+  /*  623 S> */ B(LdaConstant), U8(49),
+  /*  623 E> */ B(Star), R(0),
+  /*  635 S> */ B(LdaConstant), U8(50),
+  /*  635 E> */ B(Star), R(0),
+  /*  647 S> */ B(LdaConstant), U8(51),
+  /*  647 E> */ B(Star), R(0),
+  /*  659 S> */ B(LdaConstant), U8(52),
+  /*  659 E> */ B(Star), R(0),
+  /*  671 S> */ B(LdaConstant), U8(53),
+  /*  671 E> */ B(Star), R(0),
+  /*  683 S> */ B(LdaConstant), U8(54),
+  /*  683 E> */ B(Star), R(0),
+  /*  695 S> */ B(LdaConstant), U8(55),
+  /*  695 E> */ B(Star), R(0),
+  /*  707 S> */ B(LdaConstant), U8(56),
+  /*  707 E> */ B(Star), R(0),
+  /*  719 S> */ B(LdaConstant), U8(57),
+  /*  719 E> */ B(Star), R(0),
+  /*  731 S> */ B(LdaConstant), U8(58),
+  /*  731 E> */ B(Star), R(0),
+  /*  743 S> */ B(LdaConstant), U8(59),
+  /*  743 E> */ B(Star), R(0),
+  /*  755 S> */ B(LdaConstant), U8(60),
+  /*  755 E> */ B(Star), R(0),
+  /*  767 S> */ B(LdaConstant), U8(61),
+  /*  767 E> */ B(Star), R(0),
+  /*  779 S> */ B(LdaConstant), U8(62),
+  /*  779 E> */ B(Star), R(0),
+  /*  791 S> */ B(LdaConstant), U8(63),
+  /*  791 E> */ B(Star), R(0),
+  /*  803 S> */ B(LdaConstant), U8(64),
+  /*  803 E> */ B(Star), R(0),
+  /*  815 S> */ B(LdaConstant), U8(65),
+  /*  815 E> */ B(Star), R(0),
+  /*  827 S> */ B(LdaConstant), U8(66),
+  /*  827 E> */ B(Star), R(0),
+  /*  839 S> */ B(LdaConstant), U8(67),
+  /*  839 E> */ B(Star), R(0),
+  /*  851 S> */ B(LdaConstant), U8(68),
+  /*  851 E> */ B(Star), R(0),
+  /*  863 S> */ B(LdaConstant), U8(69),
+  /*  863 E> */ B(Star), R(0),
+  /*  875 S> */ B(LdaConstant), U8(70),
+  /*  875 E> */ B(Star), R(0),
+  /*  887 S> */ B(LdaConstant), U8(71),
+  /*  887 E> */ B(Star), R(0),
+  /*  899 S> */ B(LdaConstant), U8(72),
+  /*  899 E> */ B(Star), R(0),
+  /*  911 S> */ B(LdaConstant), U8(73),
+  /*  911 E> */ B(Star), R(0),
+  /*  923 S> */ B(LdaConstant), U8(74),
+  /*  923 E> */ B(Star), R(0),
+  /*  935 S> */ B(LdaConstant), U8(75),
+  /*  935 E> */ B(Star), R(0),
+  /*  947 S> */ B(LdaConstant), U8(76),
+  /*  947 E> */ B(Star), R(0),
+  /*  959 S> */ B(LdaConstant), U8(77),
+  /*  959 E> */ B(Star), R(0),
+  /*  971 S> */ B(LdaConstant), U8(78),
+  /*  971 E> */ B(Star), R(0),
+  /*  983 S> */ B(LdaConstant), U8(79),
+  /*  983 E> */ B(Star), R(0),
+  /*  995 S> */ B(LdaConstant), U8(80),
+  /*  995 E> */ B(Star), R(0),
+  /* 1007 S> */ B(LdaConstant), U8(81),
+  /* 1007 E> */ B(Star), R(0),
+  /* 1019 S> */ B(LdaConstant), U8(82),
+  /* 1019 E> */ B(Star), R(0),
+  /* 1031 S> */ B(LdaConstant), U8(83),
+  /* 1031 E> */ B(Star), R(0),
+  /* 1043 S> */ B(LdaConstant), U8(84),
+  /* 1043 E> */ B(Star), R(0),
+  /* 1055 S> */ B(LdaConstant), U8(85),
+  /* 1055 E> */ B(Star), R(0),
+  /* 1067 S> */ B(LdaConstant), U8(86),
+  /* 1067 E> */ B(Star), R(0),
+  /* 1079 S> */ B(LdaConstant), U8(87),
+  /* 1079 E> */ B(Star), R(0),
+  /* 1091 S> */ B(LdaConstant), U8(88),
+  /* 1091 E> */ B(Star), R(0),
+  /* 1103 S> */ B(LdaConstant), U8(89),
+  /* 1103 E> */ B(Star), R(0),
+  /* 1115 S> */ B(LdaConstant), U8(90),
+  /* 1115 E> */ B(Star), R(0),
+  /* 1127 S> */ B(LdaConstant), U8(91),
+  /* 1127 E> */ B(Star), R(0),
+  /* 1139 S> */ B(LdaConstant), U8(92),
+  /* 1139 E> */ B(Star), R(0),
+  /* 1151 S> */ B(LdaConstant), U8(93),
+  /* 1151 E> */ B(Star), R(0),
+  /* 1163 S> */ B(LdaConstant), U8(94),
+  /* 1163 E> */ B(Star), R(0),
+  /* 1175 S> */ B(LdaConstant), U8(95),
+  /* 1175 E> */ B(Star), R(0),
+  /* 1187 S> */ B(LdaConstant), U8(96),
+  /* 1187 E> */ B(Star), R(0),
+  /* 1199 S> */ B(LdaConstant), U8(97),
+  /* 1199 E> */ B(Star), R(0),
+  /* 1211 S> */ B(LdaConstant), U8(98),
+  /* 1211 E> */ B(Star), R(0),
+  /* 1223 S> */ B(LdaConstant), U8(99),
+  /* 1223 E> */ B(Star), R(0),
+  /* 1235 S> */ B(LdaConstant), U8(100),
+  /* 1235 E> */ B(Star), R(0),
+  /* 1247 S> */ B(LdaConstant), U8(101),
+  /* 1247 E> */ B(Star), R(0),
+  /* 1259 S> */ B(LdaConstant), U8(102),
+  /* 1259 E> */ B(Star), R(0),
+  /* 1271 S> */ B(LdaConstant), U8(103),
+  /* 1271 E> */ B(Star), R(0),
+  /* 1283 S> */ B(LdaConstant), U8(104),
+  /* 1283 E> */ B(Star), R(0),
+  /* 1295 S> */ B(LdaConstant), U8(105),
+  /* 1295 E> */ B(Star), R(0),
+  /* 1307 S> */ B(LdaConstant), U8(106),
+  /* 1307 E> */ B(Star), R(0),
+  /* 1319 S> */ B(LdaConstant), U8(107),
+  /* 1319 E> */ B(Star), R(0),
+  /* 1331 S> */ B(LdaConstant), U8(108),
+  /* 1331 E> */ B(Star), R(0),
+  /* 1343 S> */ B(LdaConstant), U8(109),
+  /* 1343 E> */ B(Star), R(0),
+  /* 1355 S> */ B(LdaConstant), U8(110),
+  /* 1355 E> */ B(Star), R(0),
+  /* 1367 S> */ B(LdaConstant), U8(111),
+  /* 1367 E> */ B(Star), R(0),
+  /* 1379 S> */ B(LdaConstant), U8(112),
+  /* 1379 E> */ B(Star), R(0),
+  /* 1391 S> */ B(LdaConstant), U8(113),
+  /* 1391 E> */ B(Star), R(0),
+  /* 1403 S> */ B(LdaConstant), U8(114),
+  /* 1403 E> */ B(Star), R(0),
+  /* 1415 S> */ B(LdaConstant), U8(115),
+  /* 1415 E> */ B(Star), R(0),
+  /* 1427 S> */ B(LdaConstant), U8(116),
+  /* 1427 E> */ B(Star), R(0),
+  /* 1439 S> */ B(LdaConstant), U8(117),
+  /* 1439 E> */ B(Star), R(0),
+  /* 1451 S> */ B(LdaConstant), U8(118),
+  /* 1451 E> */ B(Star), R(0),
+  /* 1463 S> */ B(LdaConstant), U8(119),
+  /* 1463 E> */ B(Star), R(0),
+  /* 1475 S> */ B(LdaConstant), U8(120),
+  /* 1475 E> */ B(Star), R(0),
+  /* 1487 S> */ B(LdaConstant), U8(121),
+  /* 1487 E> */ B(Star), R(0),
+  /* 1499 S> */ B(LdaConstant), U8(122),
+  /* 1499 E> */ B(Star), R(0),
+  /* 1511 S> */ B(LdaConstant), U8(123),
+  /* 1511 E> */ B(Star), R(0),
+  /* 1523 S> */ B(LdaConstant), U8(124),
+  /* 1523 E> */ B(Star), R(0),
+  /* 1535 S> */ B(LdaConstant), U8(125),
+  /* 1535 E> */ B(Star), R(0),
+  /* 1547 S> */ B(LdaConstant), U8(126),
+  /* 1547 E> */ B(Star), R(0),
+  /* 1559 S> */ B(LdaConstant), U8(127),
+  /* 1559 E> */ B(Star), R(0),
+  /* 1571 S> */ B(LdaConstant), U8(128),
+  /* 1571 E> */ B(Star), R(0),
+  /* 1583 S> */ B(LdaConstant), U8(129),
+  /* 1583 E> */ B(Star), R(0),
+  /* 1595 S> */ B(LdaConstant), U8(130),
+  /* 1595 E> */ B(Star), R(0),
+  /* 1607 S> */ B(LdaConstant), U8(131),
+  /* 1607 E> */ B(Star), R(0),
+  /* 1619 S> */ B(LdaConstant), U8(132),
+  /* 1619 E> */ B(Star), R(0),
+  /* 1631 S> */ B(LdaConstant), U8(133),
+  /* 1631 E> */ B(Star), R(0),
+  /* 1643 S> */ B(LdaConstant), U8(134),
+  /* 1643 E> */ B(Star), R(0),
+  /* 1655 S> */ B(LdaConstant), U8(135),
+  /* 1655 E> */ B(Star), R(0),
+  /* 1667 S> */ B(LdaConstant), U8(136),
+  /* 1667 E> */ B(Star), R(0),
+  /* 1679 S> */ B(LdaConstant), U8(137),
+  /* 1679 E> */ B(Star), R(0),
+  /* 1691 S> */ B(LdaConstant), U8(138),
+  /* 1691 E> */ B(Star), R(0),
+  /* 1703 S> */ B(LdaConstant), U8(139),
+  /* 1703 E> */ B(Star), R(0),
+  /* 1715 S> */ B(LdaConstant), U8(140),
+  /* 1715 E> */ B(Star), R(0),
+  /* 1727 S> */ B(LdaConstant), U8(141),
+  /* 1727 E> */ B(Star), R(0),
+  /* 1739 S> */ B(LdaConstant), U8(142),
+  /* 1739 E> */ B(Star), R(0),
+  /* 1751 S> */ B(LdaConstant), U8(143),
+  /* 1751 E> */ B(Star), R(0),
+  /* 1763 S> */ B(LdaConstant), U8(144),
+  /* 1763 E> */ B(Star), R(0),
+  /* 1775 S> */ B(LdaConstant), U8(145),
+  /* 1775 E> */ B(Star), R(0),
+  /* 1787 S> */ B(LdaConstant), U8(146),
+  /* 1787 E> */ B(Star), R(0),
+  /* 1799 S> */ B(LdaConstant), U8(147),
+  /* 1799 E> */ B(Star), R(0),
+  /* 1811 S> */ B(LdaConstant), U8(148),
+  /* 1811 E> */ B(Star), R(0),
+  /* 1823 S> */ B(LdaConstant), U8(149),
+  /* 1823 E> */ B(Star), R(0),
+  /* 1835 S> */ B(LdaConstant), U8(150),
+  /* 1835 E> */ B(Star), R(0),
+  /* 1847 S> */ B(LdaConstant), U8(151),
+  /* 1847 E> */ B(Star), R(0),
+  /* 1859 S> */ B(LdaConstant), U8(152),
+  /* 1859 E> */ B(Star), R(0),
+  /* 1871 S> */ B(LdaConstant), U8(153),
+  /* 1871 E> */ B(Star), R(0),
+  /* 1883 S> */ B(LdaConstant), U8(154),
+  /* 1883 E> */ B(Star), R(0),
+  /* 1895 S> */ B(LdaConstant), U8(155),
+  /* 1895 E> */ B(Star), R(0),
+  /* 1907 S> */ B(LdaConstant), U8(156),
+  /* 1907 E> */ B(Star), R(0),
+  /* 1919 S> */ B(LdaConstant), U8(157),
+  /* 1919 E> */ B(Star), R(0),
+  /* 1931 S> */ B(LdaConstant), U8(158),
+  /* 1931 E> */ B(Star), R(0),
+  /* 1943 S> */ B(LdaConstant), U8(159),
+  /* 1943 E> */ B(Star), R(0),
+  /* 1955 S> */ B(LdaConstant), U8(160),
+  /* 1955 E> */ B(Star), R(0),
+  /* 1967 S> */ B(LdaConstant), U8(161),
+  /* 1967 E> */ B(Star), R(0),
+  /* 1979 S> */ B(LdaConstant), U8(162),
+  /* 1979 E> */ B(Star), R(0),
+  /* 1991 S> */ B(LdaConstant), U8(163),
+  /* 1991 E> */ B(Star), R(0),
+  /* 2003 S> */ B(LdaConstant), U8(164),
+  /* 2003 E> */ B(Star), R(0),
+  /* 2015 S> */ B(LdaConstant), U8(165),
+  /* 2015 E> */ B(Star), R(0),
+  /* 2027 S> */ B(LdaConstant), U8(166),
+  /* 2027 E> */ B(Star), R(0),
+  /* 2039 S> */ B(LdaConstant), U8(167),
+  /* 2039 E> */ B(Star), R(0),
+  /* 2051 S> */ B(LdaConstant), U8(168),
+  /* 2051 E> */ B(Star), R(0),
+  /* 2063 S> */ B(LdaConstant), U8(169),
+  /* 2063 E> */ B(Star), R(0),
+  /* 2075 S> */ B(LdaConstant), U8(170),
+  /* 2075 E> */ B(Star), R(0),
+  /* 2087 S> */ B(LdaConstant), U8(171),
+  /* 2087 E> */ B(Star), R(0),
+  /* 2099 S> */ B(LdaConstant), U8(172),
+  /* 2099 E> */ B(Star), R(0),
+  /* 2111 S> */ B(LdaConstant), U8(173),
+  /* 2111 E> */ B(Star), R(0),
+  /* 2123 S> */ B(LdaConstant), U8(174),
+  /* 2123 E> */ B(Star), R(0),
+  /* 2135 S> */ B(LdaConstant), U8(175),
+  /* 2135 E> */ B(Star), R(0),
+  /* 2147 S> */ B(LdaConstant), U8(176),
+  /* 2147 E> */ B(Star), R(0),
+  /* 2159 S> */ B(LdaConstant), U8(177),
+  /* 2159 E> */ B(Star), R(0),
+  /* 2171 S> */ B(LdaConstant), U8(178),
+  /* 2171 E> */ B(Star), R(0),
+  /* 2183 S> */ B(LdaConstant), U8(179),
+  /* 2183 E> */ B(Star), R(0),
+  /* 2195 S> */ B(LdaConstant), U8(180),
+  /* 2195 E> */ B(Star), R(0),
+  /* 2207 S> */ B(LdaConstant), U8(181),
+  /* 2207 E> */ B(Star), R(0),
+  /* 2219 S> */ B(LdaConstant), U8(182),
+  /* 2219 E> */ B(Star), R(0),
+  /* 2231 S> */ B(LdaConstant), U8(183),
+  /* 2231 E> */ B(Star), R(0),
+  /* 2243 S> */ B(LdaConstant), U8(184),
+  /* 2243 E> */ B(Star), R(0),
+  /* 2255 S> */ B(LdaConstant), U8(185),
+  /* 2255 E> */ B(Star), R(0),
+  /* 2267 S> */ B(LdaConstant), U8(186),
+  /* 2267 E> */ B(Star), R(0),
+  /* 2279 S> */ B(LdaConstant), U8(187),
+  /* 2279 E> */ B(Star), R(0),
+  /* 2291 S> */ B(LdaConstant), U8(188),
+  /* 2291 E> */ B(Star), R(0),
+  /* 2303 S> */ B(LdaConstant), U8(189),
+  /* 2303 E> */ B(Star), R(0),
+  /* 2315 S> */ B(LdaConstant), U8(190),
+  /* 2315 E> */ B(Star), R(0),
+  /* 2327 S> */ B(LdaConstant), U8(191),
+  /* 2327 E> */ B(Star), R(0),
+  /* 2339 S> */ B(LdaConstant), U8(192),
+  /* 2339 E> */ B(Star), R(0),
+  /* 2351 S> */ B(LdaConstant), U8(193),
+  /* 2351 E> */ B(Star), R(0),
+  /* 2363 S> */ B(LdaConstant), U8(194),
+  /* 2363 E> */ B(Star), R(0),
+  /* 2375 S> */ B(LdaConstant), U8(195),
+  /* 2375 E> */ B(Star), R(0),
+  /* 2387 S> */ B(LdaConstant), U8(196),
+  /* 2387 E> */ B(Star), R(0),
+  /* 2399 S> */ B(LdaConstant), U8(197),
+  /* 2399 E> */ B(Star), R(0),
+  /* 2411 S> */ B(LdaConstant), U8(198),
+  /* 2411 E> */ B(Star), R(0),
+  /* 2423 S> */ B(LdaConstant), U8(199),
+  /* 2423 E> */ B(Star), R(0),
+  /* 2435 S> */ B(LdaConstant), U8(200),
+  /* 2435 E> */ B(Star), R(0),
+  /* 2447 S> */ B(LdaConstant), U8(201),
+  /* 2447 E> */ B(Star), R(0),
+  /* 2459 S> */ B(LdaConstant), U8(202),
+  /* 2459 E> */ B(Star), R(0),
+  /* 2471 S> */ B(LdaConstant), U8(203),
+  /* 2471 E> */ B(Star), R(0),
+  /* 2483 S> */ B(LdaConstant), U8(204),
+  /* 2483 E> */ B(Star), R(0),
+  /* 2495 S> */ B(LdaConstant), U8(205),
+  /* 2495 E> */ B(Star), R(0),
+  /* 2507 S> */ B(LdaConstant), U8(206),
+  /* 2507 E> */ B(Star), R(0),
+  /* 2519 S> */ B(LdaConstant), U8(207),
+  /* 2519 E> */ B(Star), R(0),
+  /* 2531 S> */ B(LdaConstant), U8(208),
+  /* 2531 E> */ B(Star), R(0),
+  /* 2543 S> */ B(LdaConstant), U8(209),
+  /* 2543 E> */ B(Star), R(0),
+  /* 2555 S> */ B(LdaConstant), U8(210),
+  /* 2555 E> */ B(Star), R(0),
+  /* 2567 S> */ B(LdaConstant), U8(211),
+  /* 2567 E> */ B(Star), R(0),
+  /* 2579 S> */ B(LdaConstant), U8(212),
+  /* 2579 E> */ B(Star), R(0),
+  /* 2591 S> */ B(LdaConstant), U8(213),
+  /* 2591 E> */ B(Star), R(0),
+  /* 2603 S> */ B(LdaConstant), U8(214),
+  /* 2603 E> */ B(Star), R(0),
+  /* 2615 S> */ B(LdaConstant), U8(215),
+  /* 2615 E> */ B(Star), R(0),
+  /* 2627 S> */ B(LdaConstant), U8(216),
+  /* 2627 E> */ B(Star), R(0),
+  /* 2639 S> */ B(LdaConstant), U8(217),
+  /* 2639 E> */ B(Star), R(0),
+  /* 2651 S> */ B(LdaConstant), U8(218),
+  /* 2651 E> */ B(Star), R(0),
+  /* 2663 S> */ B(LdaConstant), U8(219),
+  /* 2663 E> */ B(Star), R(0),
+  /* 2675 S> */ B(LdaConstant), U8(220),
+  /* 2675 E> */ B(Star), R(0),
+  /* 2687 S> */ B(LdaConstant), U8(221),
+  /* 2687 E> */ B(Star), R(0),
+  /* 2699 S> */ B(LdaConstant), U8(222),
+  /* 2699 E> */ B(Star), R(0),
+  /* 2711 S> */ B(LdaConstant), U8(223),
+  /* 2711 E> */ B(Star), R(0),
+  /* 2723 S> */ B(LdaConstant), U8(224),
+  /* 2723 E> */ B(Star), R(0),
+  /* 2735 S> */ B(LdaConstant), U8(225),
+  /* 2735 E> */ B(Star), R(0),
+  /* 2747 S> */ B(LdaConstant), U8(226),
+  /* 2747 E> */ B(Star), R(0),
+  /* 2759 S> */ B(LdaConstant), U8(227),
+  /* 2759 E> */ B(Star), R(0),
+  /* 2771 S> */ B(LdaConstant), U8(228),
+  /* 2771 E> */ B(Star), R(0),
+  /* 2783 S> */ B(LdaConstant), U8(229),
+  /* 2783 E> */ B(Star), R(0),
+  /* 2795 S> */ B(LdaConstant), U8(230),
+  /* 2795 E> */ B(Star), R(0),
+  /* 2807 S> */ B(LdaConstant), U8(231),
+  /* 2807 E> */ B(Star), R(0),
+  /* 2819 S> */ B(LdaConstant), U8(232),
+  /* 2819 E> */ B(Star), R(0),
+  /* 2831 S> */ B(LdaConstant), U8(233),
+  /* 2831 E> */ B(Star), R(0),
+  /* 2843 S> */ B(LdaConstant), U8(234),
+  /* 2843 E> */ B(Star), R(0),
+  /* 2855 S> */ B(LdaConstant), U8(235),
+  /* 2855 E> */ B(Star), R(0),
+  /* 2867 S> */ B(LdaConstant), U8(236),
+  /* 2867 E> */ B(Star), R(0),
+  /* 2879 S> */ B(LdaConstant), U8(237),
+  /* 2879 E> */ B(Star), R(0),
+  /* 2891 S> */ B(LdaConstant), U8(238),
+  /* 2891 E> */ B(Star), R(0),
+  /* 2903 S> */ B(LdaConstant), U8(239),
+  /* 2903 E> */ B(Star), R(0),
+  /* 2915 S> */ B(LdaConstant), U8(240),
+  /* 2915 E> */ B(Star), R(0),
+  /* 2927 S> */ B(LdaConstant), U8(241),
+  /* 2927 E> */ B(Star), R(0),
+  /* 2939 S> */ B(LdaConstant), U8(242),
+  /* 2939 E> */ B(Star), R(0),
+  /* 2951 S> */ B(LdaConstant), U8(243),
+  /* 2951 E> */ B(Star), R(0),
+  /* 2963 S> */ B(LdaConstant), U8(244),
+  /* 2963 E> */ B(Star), R(0),
+  /* 2975 S> */ B(LdaConstant), U8(245),
+  /* 2975 E> */ B(Star), R(0),
+  /* 2987 S> */ B(LdaConstant), U8(246),
+  /* 2987 E> */ B(Star), R(0),
+  /* 2999 S> */ B(LdaConstant), U8(247),
+  /* 2999 E> */ B(Star), R(0),
+  /* 3011 S> */ B(LdaConstant), U8(248),
+  /* 3011 E> */ B(Star), R(0),
+  /* 3023 S> */ B(LdaConstant), U8(249),
+  /* 3023 E> */ B(Star), R(0),
+  /* 3035 S> */ B(LdaConstant), U8(250),
+  /* 3035 E> */ B(Star), R(0),
+  /* 3047 S> */ B(LdaConstant), U8(251),
+  /* 3047 E> */ B(Star), R(0),
+  /* 3059 S> */ B(LdaConstant), U8(252),
+  /* 3059 E> */ B(Star), R(0),
+  /* 3071 S> */ B(LdaConstant), U8(253),
+  /* 3071 E> */ B(Star), R(0),
+  /* 3083 S> */ B(LdaConstant), U8(254),
+  /* 3083 E> */ B(Star), R(0),
+  /* 3095 S> */ B(LdaConstant), U8(255),
+  /* 3095 E> */ B(Star), R(0),
+  /* 3099 S> */ B(LdaSmi), U8(10),
+  /* 3101 E> */ B(Wide), B(StaLookupSlotStrict), U16(256),
+                B(LdaUndefined),
+  /* 3106 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::HEAP_NUMBER_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/NewTarget.golden b/test/cctest/interpreter/bytecode_expectations/NewTarget.golden
index da2d35e..08d2a13 100644
--- a/test/cctest/interpreter/bytecode_expectations/NewTarget.golden
+++ b/test/cctest/interpreter/bytecode_expectations/NewTarget.golden
@@ -15,15 +15,15 @@
 parameter count: 1
 bytecode array length: 19
 bytecodes: [
-  B(Ldar), R(new_target),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
-  B(Return),
+                B(Ldar), R(new_target),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
+  /*   53 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -39,16 +39,16 @@
 parameter count: 1
 bytecode array length: 20
 bytecodes: [
-  B(Ldar), R(new_target),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(11),
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
-  B(LdaUndefined),
-  B(Return),
+                B(Ldar), R(new_target),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(Ldar), R(0),
+                B(JumpIfNotHole), U8(11),
+                B(LdaConstant), U8(0),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(1), U8(1),
+                B(LdaUndefined),
+  /*   46 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden b/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden
index 063ebbf..831218d 100644
--- a/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden
@@ -15,10 +15,10 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(7),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(35),
+                B(Star), R(0),
+  /*   46 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -34,10 +34,10 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(0),
+  /*   71 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -53,15 +53,15 @@
 parameter count: 1
 bytecode array length: 20
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(StoreICSloppy), R(1), U8(1), U8(1),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   75 E> */ B(Ldar), R(0),
+                B(StoreICSloppy), R(1), U8(1), U8(1),
+                B(Ldar), R(1),
+  /*   80 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -78,18 +78,18 @@
 parameter count: 1
 bytecode array length: 26
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(Add), R(2),
-  B(StoreICSloppy), R(1), U8(1), U8(1),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+  /*   59 E> */ B(Ldar), R(0),
+  /*   67 E> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(Add), R(2),
+                B(StoreICSloppy), R(1), U8(1), U8(1),
+                B(Ldar), R(1),
+  /*   76 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -106,13 +106,13 @@
 parameter count: 1
 bytecode array length: 17
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(0),
-  B(CreateClosure), U8(1), U8(0),
-  B(StoreICSloppy), R(0), U8(2), U8(1),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(0),
+                B(CreateClosure), U8(1), U8(0),
+                B(StoreICSloppy), R(0), U8(2), U8(1),
+                B(Ldar), R(0),
+  /*   67 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -130,13 +130,13 @@
 parameter count: 1
 bytecode array length: 17
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(0),
-  B(CreateClosure), U8(1), U8(0),
-  B(StoreICSloppy), R(0), U8(2), U8(1),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(0),
+                B(CreateClosure), U8(1), U8(0),
+                B(StoreICSloppy), R(0), U8(2), U8(1),
+                B(Ldar), R(0),
+  /*   68 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -154,21 +154,21 @@
 parameter count: 1
 bytecode array length: 33
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(0),
-  B(Mov), R(0), R(1),
-  B(LdaConstant), U8(1),
-  B(Star), R(2),
-  B(CreateClosure), U8(2), U8(0),
-  B(Star), R(3),
-  B(LdaNull),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(0),
+                B(Mov), R(0), R(1),
+                B(LdaConstant), U8(1),
+                B(Star), R(2),
+                B(CreateClosure), U8(2), U8(0),
+                B(Star), R(3),
+                B(LdaNull),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
+                B(Ldar), R(0),
+  /*   68 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -186,21 +186,21 @@
 parameter count: 1
 bytecode array length: 35
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(0),
-  B(Mov), R(0), R(1),
-  B(LdaConstant), U8(1),
-  B(Star), R(2),
-  B(CreateClosure), U8(2), U8(0),
-  B(Star), R(3),
-  B(CreateClosure), U8(3), U8(0),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(0),
+                B(Mov), R(0), R(1),
+                B(LdaConstant), U8(1),
+                B(Star), R(2),
+                B(CreateClosure), U8(2), U8(0),
+                B(Star), R(3),
+                B(CreateClosure), U8(3), U8(0),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
+                B(Ldar), R(0),
+  /*  102 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -219,21 +219,21 @@
 parameter count: 1
 bytecode array length: 33
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(0),
-  B(Mov), R(0), R(1),
-  B(LdaConstant), U8(1),
-  B(Star), R(2),
-  B(LdaNull),
-  B(Star), R(3),
-  B(CreateClosure), U8(2), U8(0),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(0),
+                B(Mov), R(0), R(1),
+                B(LdaConstant), U8(1),
+                B(Star), R(2),
+                B(LdaNull),
+                B(Star), R(3),
+                B(CreateClosure), U8(2), U8(0),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
+                B(Ldar), R(0),
+  /*   74 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -251,21 +251,21 @@
 parameter count: 1
 bytecode array length: 33
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(Mov), R(1), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(3),
-  B(Ldar), R(0),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+                B(Mov), R(1), R(2),
+                B(LdaSmi), U8(1),
+                B(Star), R(3),
+  /*   57 E> */ B(Ldar), R(0),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
+                B(Ldar), R(1),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -281,15 +281,15 @@
 parameter count: 1
 bytecode array length: 21
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(7),
-  B(Star), R(0),
-  B(Mov), R(0), R(1),
-  B(LdaNull),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(1), U8(2),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(35),
+                B(Star), R(0),
+                B(Mov), R(0), R(1),
+                B(LdaNull),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(1), U8(2),
+                B(Ldar), R(0),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
@@ -305,24 +305,24 @@
 parameter count: 1
 bytecode array length: 37
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(1), U8(0), U8(7),
-  B(Star), R(1),
-  B(Mov), R(1), R(2),
-  B(Ldar), R(0),
-  B(ToName),
-  B(Star), R(3),
-  B(LdaSmi), U8(1),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(LdaZero),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(35),
+                B(Star), R(1),
+                B(Mov), R(1), R(2),
+  /*   60 E> */ B(Ldar), R(0),
+                B(ToName),
+                B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(LdaZero),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
+                B(Ldar), R(1),
+  /*   69 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -339,26 +339,26 @@
 parameter count: 1
 bytecode array length: 43
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(1), U8(0), U8(5),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(StoreICSloppy), R(1), U8(2), U8(1),
-  B(Mov), R(1), R(2),
-  B(Ldar), R(0),
-  B(ToName),
-  B(Star), R(3),
-  B(LdaSmi), U8(1),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(LdaZero),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(1),
+                B(Star), R(1),
+  /*   64 E> */ B(Ldar), R(0),
+                B(StoreICSloppy), R(1), U8(2), U8(1),
+                B(Mov), R(1), R(2),
+  /*   68 E> */ B(Ldar), R(0),
+                B(ToName),
+                B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(LdaZero),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
+                B(Ldar), R(1),
+  /*   77 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -376,29 +376,29 @@
 parameter count: 1
 bytecode array length: 53
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(1), U8(1), U8(7),
-  B(Star), R(1),
-  B(Mov), R(1), R(2),
-  B(Ldar), R(0),
-  B(ToName),
-  B(Star), R(3),
-  B(LdaSmi), U8(1),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(LdaZero),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
-  B(Mov), R(1), R(2),
-  B(CreateObjectLiteral), U8(1), U8(0), U8(7),
-  B(Star), R(4),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(2), U8(2),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   50 S> */ B(CreateObjectLiteral), U8(1), U8(1), U8(35),
+                B(Star), R(1),
+                B(Mov), R(1), R(2),
+  /*   60 E> */ B(Ldar), R(0),
+                B(ToName),
+                B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(LdaZero),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
+                B(Mov), R(1), R(2),
+                B(CreateObjectLiteral), U8(1), U8(0), U8(35),
+                B(Star), R(4),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(2), U8(2),
+                B(Ldar), R(1),
+  /*   84 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
@@ -415,40 +415,40 @@
 parameter count: 1
 bytecode array length: 77
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(CreateObjectLiteral), U8(1), U8(0), U8(7),
-  B(Star), R(1),
-  B(Mov), R(1), R(2),
-  B(Ldar), R(0),
-  B(ToName),
-  B(Star), R(3),
-  B(LdaConstant), U8(2),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(LdaZero),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
-  B(Mov), R(1), R(2),
-  B(LdaConstant), U8(3),
-  B(Star), R(3),
-  B(CreateClosure), U8(4), U8(0),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kDefineGetterPropertyUnchecked), R(2), U8(4),
-  B(Mov), R(1), R(2),
-  B(LdaConstant), U8(3),
-  B(Star), R(3),
-  B(CreateClosure), U8(5), U8(0),
-  B(Star), R(4),
-  B(LdaZero),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kDefineSetterPropertyUnchecked), R(2), U8(4),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(35),
+                B(Star), R(1),
+                B(Mov), R(1), R(2),
+  /*   60 E> */ B(Ldar), R(0),
+                B(ToName),
+                B(Star), R(3),
+                B(LdaConstant), U8(2),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(LdaZero),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
+                B(Mov), R(1), R(2),
+                B(LdaConstant), U8(3),
+                B(Star), R(3),
+                B(CreateClosure), U8(4), U8(0),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kDefineGetterPropertyUnchecked), R(2), U8(4),
+                B(Mov), R(1), R(2),
+                B(LdaConstant), U8(3),
+                B(Star), R(3),
+                B(CreateClosure), U8(5), U8(0),
+                B(Star), R(4),
+                B(LdaZero),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kDefineSetterPropertyUnchecked), R(2), U8(4),
+                B(Ldar), R(1),
+  /*   99 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden b/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden
index 83c6fe9..9f92943 100644
--- a/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden
@@ -272,522 +272,522 @@
 parameter count: 1
 bytecode array length: 1035
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(Wide), B(CreateObjectLiteral), U16(256), U16(0), U8(5),
-  B(Star), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   41 S> */ B(LdaConstant), U8(0),
+  /*   43 E> */ B(Star), R(0),
+  /*   51 S> */ B(LdaConstant), U8(1),
+  /*   53 E> */ B(Star), R(0),
+  /*   61 S> */ B(LdaConstant), U8(2),
+  /*   63 E> */ B(Star), R(0),
+  /*   71 S> */ B(LdaConstant), U8(3),
+  /*   73 E> */ B(Star), R(0),
+  /*   81 S> */ B(LdaConstant), U8(4),
+  /*   83 E> */ B(Star), R(0),
+  /*   91 S> */ B(LdaConstant), U8(5),
+  /*   93 E> */ B(Star), R(0),
+  /*  101 S> */ B(LdaConstant), U8(6),
+  /*  103 E> */ B(Star), R(0),
+  /*  111 S> */ B(LdaConstant), U8(7),
+  /*  113 E> */ B(Star), R(0),
+  /*  121 S> */ B(LdaConstant), U8(8),
+  /*  123 E> */ B(Star), R(0),
+  /*  131 S> */ B(LdaConstant), U8(9),
+  /*  133 E> */ B(Star), R(0),
+  /*  141 S> */ B(LdaConstant), U8(10),
+  /*  143 E> */ B(Star), R(0),
+  /*  151 S> */ B(LdaConstant), U8(11),
+  /*  153 E> */ B(Star), R(0),
+  /*  161 S> */ B(LdaConstant), U8(12),
+  /*  163 E> */ B(Star), R(0),
+  /*  171 S> */ B(LdaConstant), U8(13),
+  /*  173 E> */ B(Star), R(0),
+  /*  181 S> */ B(LdaConstant), U8(14),
+  /*  183 E> */ B(Star), R(0),
+  /*  191 S> */ B(LdaConstant), U8(15),
+  /*  193 E> */ B(Star), R(0),
+  /*  201 S> */ B(LdaConstant), U8(16),
+  /*  203 E> */ B(Star), R(0),
+  /*  211 S> */ B(LdaConstant), U8(17),
+  /*  213 E> */ B(Star), R(0),
+  /*  221 S> */ B(LdaConstant), U8(18),
+  /*  223 E> */ B(Star), R(0),
+  /*  231 S> */ B(LdaConstant), U8(19),
+  /*  233 E> */ B(Star), R(0),
+  /*  241 S> */ B(LdaConstant), U8(20),
+  /*  243 E> */ B(Star), R(0),
+  /*  251 S> */ B(LdaConstant), U8(21),
+  /*  253 E> */ B(Star), R(0),
+  /*  261 S> */ B(LdaConstant), U8(22),
+  /*  263 E> */ B(Star), R(0),
+  /*  271 S> */ B(LdaConstant), U8(23),
+  /*  273 E> */ B(Star), R(0),
+  /*  281 S> */ B(LdaConstant), U8(24),
+  /*  283 E> */ B(Star), R(0),
+  /*  291 S> */ B(LdaConstant), U8(25),
+  /*  293 E> */ B(Star), R(0),
+  /*  301 S> */ B(LdaConstant), U8(26),
+  /*  303 E> */ B(Star), R(0),
+  /*  311 S> */ B(LdaConstant), U8(27),
+  /*  313 E> */ B(Star), R(0),
+  /*  321 S> */ B(LdaConstant), U8(28),
+  /*  323 E> */ B(Star), R(0),
+  /*  331 S> */ B(LdaConstant), U8(29),
+  /*  333 E> */ B(Star), R(0),
+  /*  341 S> */ B(LdaConstant), U8(30),
+  /*  343 E> */ B(Star), R(0),
+  /*  351 S> */ B(LdaConstant), U8(31),
+  /*  353 E> */ B(Star), R(0),
+  /*  361 S> */ B(LdaConstant), U8(32),
+  /*  363 E> */ B(Star), R(0),
+  /*  371 S> */ B(LdaConstant), U8(33),
+  /*  373 E> */ B(Star), R(0),
+  /*  381 S> */ B(LdaConstant), U8(34),
+  /*  383 E> */ B(Star), R(0),
+  /*  391 S> */ B(LdaConstant), U8(35),
+  /*  393 E> */ B(Star), R(0),
+  /*  401 S> */ B(LdaConstant), U8(36),
+  /*  403 E> */ B(Star), R(0),
+  /*  411 S> */ B(LdaConstant), U8(37),
+  /*  413 E> */ B(Star), R(0),
+  /*  421 S> */ B(LdaConstant), U8(38),
+  /*  423 E> */ B(Star), R(0),
+  /*  431 S> */ B(LdaConstant), U8(39),
+  /*  433 E> */ B(Star), R(0),
+  /*  441 S> */ B(LdaConstant), U8(40),
+  /*  443 E> */ B(Star), R(0),
+  /*  451 S> */ B(LdaConstant), U8(41),
+  /*  453 E> */ B(Star), R(0),
+  /*  461 S> */ B(LdaConstant), U8(42),
+  /*  463 E> */ B(Star), R(0),
+  /*  471 S> */ B(LdaConstant), U8(43),
+  /*  473 E> */ B(Star), R(0),
+  /*  481 S> */ B(LdaConstant), U8(44),
+  /*  483 E> */ B(Star), R(0),
+  /*  491 S> */ B(LdaConstant), U8(45),
+  /*  493 E> */ B(Star), R(0),
+  /*  501 S> */ B(LdaConstant), U8(46),
+  /*  503 E> */ B(Star), R(0),
+  /*  511 S> */ B(LdaConstant), U8(47),
+  /*  513 E> */ B(Star), R(0),
+  /*  521 S> */ B(LdaConstant), U8(48),
+  /*  523 E> */ B(Star), R(0),
+  /*  531 S> */ B(LdaConstant), U8(49),
+  /*  533 E> */ B(Star), R(0),
+  /*  541 S> */ B(LdaConstant), U8(50),
+  /*  543 E> */ B(Star), R(0),
+  /*  551 S> */ B(LdaConstant), U8(51),
+  /*  553 E> */ B(Star), R(0),
+  /*  561 S> */ B(LdaConstant), U8(52),
+  /*  563 E> */ B(Star), R(0),
+  /*  571 S> */ B(LdaConstant), U8(53),
+  /*  573 E> */ B(Star), R(0),
+  /*  581 S> */ B(LdaConstant), U8(54),
+  /*  583 E> */ B(Star), R(0),
+  /*  591 S> */ B(LdaConstant), U8(55),
+  /*  593 E> */ B(Star), R(0),
+  /*  601 S> */ B(LdaConstant), U8(56),
+  /*  603 E> */ B(Star), R(0),
+  /*  611 S> */ B(LdaConstant), U8(57),
+  /*  613 E> */ B(Star), R(0),
+  /*  621 S> */ B(LdaConstant), U8(58),
+  /*  623 E> */ B(Star), R(0),
+  /*  631 S> */ B(LdaConstant), U8(59),
+  /*  633 E> */ B(Star), R(0),
+  /*  641 S> */ B(LdaConstant), U8(60),
+  /*  643 E> */ B(Star), R(0),
+  /*  651 S> */ B(LdaConstant), U8(61),
+  /*  653 E> */ B(Star), R(0),
+  /*  661 S> */ B(LdaConstant), U8(62),
+  /*  663 E> */ B(Star), R(0),
+  /*  671 S> */ B(LdaConstant), U8(63),
+  /*  673 E> */ B(Star), R(0),
+  /*  681 S> */ B(LdaConstant), U8(64),
+  /*  683 E> */ B(Star), R(0),
+  /*  691 S> */ B(LdaConstant), U8(65),
+  /*  693 E> */ B(Star), R(0),
+  /*  701 S> */ B(LdaConstant), U8(66),
+  /*  703 E> */ B(Star), R(0),
+  /*  711 S> */ B(LdaConstant), U8(67),
+  /*  713 E> */ B(Star), R(0),
+  /*  721 S> */ B(LdaConstant), U8(68),
+  /*  723 E> */ B(Star), R(0),
+  /*  731 S> */ B(LdaConstant), U8(69),
+  /*  733 E> */ B(Star), R(0),
+  /*  741 S> */ B(LdaConstant), U8(70),
+  /*  743 E> */ B(Star), R(0),
+  /*  751 S> */ B(LdaConstant), U8(71),
+  /*  753 E> */ B(Star), R(0),
+  /*  761 S> */ B(LdaConstant), U8(72),
+  /*  763 E> */ B(Star), R(0),
+  /*  771 S> */ B(LdaConstant), U8(73),
+  /*  773 E> */ B(Star), R(0),
+  /*  781 S> */ B(LdaConstant), U8(74),
+  /*  783 E> */ B(Star), R(0),
+  /*  791 S> */ B(LdaConstant), U8(75),
+  /*  793 E> */ B(Star), R(0),
+  /*  801 S> */ B(LdaConstant), U8(76),
+  /*  803 E> */ B(Star), R(0),
+  /*  811 S> */ B(LdaConstant), U8(77),
+  /*  813 E> */ B(Star), R(0),
+  /*  821 S> */ B(LdaConstant), U8(78),
+  /*  823 E> */ B(Star), R(0),
+  /*  831 S> */ B(LdaConstant), U8(79),
+  /*  833 E> */ B(Star), R(0),
+  /*  841 S> */ B(LdaConstant), U8(80),
+  /*  843 E> */ B(Star), R(0),
+  /*  851 S> */ B(LdaConstant), U8(81),
+  /*  853 E> */ B(Star), R(0),
+  /*  861 S> */ B(LdaConstant), U8(82),
+  /*  863 E> */ B(Star), R(0),
+  /*  871 S> */ B(LdaConstant), U8(83),
+  /*  873 E> */ B(Star), R(0),
+  /*  881 S> */ B(LdaConstant), U8(84),
+  /*  883 E> */ B(Star), R(0),
+  /*  891 S> */ B(LdaConstant), U8(85),
+  /*  893 E> */ B(Star), R(0),
+  /*  901 S> */ B(LdaConstant), U8(86),
+  /*  903 E> */ B(Star), R(0),
+  /*  911 S> */ B(LdaConstant), U8(87),
+  /*  913 E> */ B(Star), R(0),
+  /*  921 S> */ B(LdaConstant), U8(88),
+  /*  923 E> */ B(Star), R(0),
+  /*  931 S> */ B(LdaConstant), U8(89),
+  /*  933 E> */ B(Star), R(0),
+  /*  941 S> */ B(LdaConstant), U8(90),
+  /*  943 E> */ B(Star), R(0),
+  /*  951 S> */ B(LdaConstant), U8(91),
+  /*  953 E> */ B(Star), R(0),
+  /*  961 S> */ B(LdaConstant), U8(92),
+  /*  963 E> */ B(Star), R(0),
+  /*  971 S> */ B(LdaConstant), U8(93),
+  /*  973 E> */ B(Star), R(0),
+  /*  981 S> */ B(LdaConstant), U8(94),
+  /*  983 E> */ B(Star), R(0),
+  /*  991 S> */ B(LdaConstant), U8(95),
+  /*  993 E> */ B(Star), R(0),
+  /* 1001 S> */ B(LdaConstant), U8(96),
+  /* 1003 E> */ B(Star), R(0),
+  /* 1011 S> */ B(LdaConstant), U8(97),
+  /* 1013 E> */ B(Star), R(0),
+  /* 1021 S> */ B(LdaConstant), U8(98),
+  /* 1023 E> */ B(Star), R(0),
+  /* 1031 S> */ B(LdaConstant), U8(99),
+  /* 1033 E> */ B(Star), R(0),
+  /* 1041 S> */ B(LdaConstant), U8(100),
+  /* 1043 E> */ B(Star), R(0),
+  /* 1051 S> */ B(LdaConstant), U8(101),
+  /* 1053 E> */ B(Star), R(0),
+  /* 1061 S> */ B(LdaConstant), U8(102),
+  /* 1063 E> */ B(Star), R(0),
+  /* 1071 S> */ B(LdaConstant), U8(103),
+  /* 1073 E> */ B(Star), R(0),
+  /* 1081 S> */ B(LdaConstant), U8(104),
+  /* 1083 E> */ B(Star), R(0),
+  /* 1091 S> */ B(LdaConstant), U8(105),
+  /* 1093 E> */ B(Star), R(0),
+  /* 1101 S> */ B(LdaConstant), U8(106),
+  /* 1103 E> */ B(Star), R(0),
+  /* 1111 S> */ B(LdaConstant), U8(107),
+  /* 1113 E> */ B(Star), R(0),
+  /* 1121 S> */ B(LdaConstant), U8(108),
+  /* 1123 E> */ B(Star), R(0),
+  /* 1131 S> */ B(LdaConstant), U8(109),
+  /* 1133 E> */ B(Star), R(0),
+  /* 1141 S> */ B(LdaConstant), U8(110),
+  /* 1143 E> */ B(Star), R(0),
+  /* 1151 S> */ B(LdaConstant), U8(111),
+  /* 1153 E> */ B(Star), R(0),
+  /* 1161 S> */ B(LdaConstant), U8(112),
+  /* 1163 E> */ B(Star), R(0),
+  /* 1171 S> */ B(LdaConstant), U8(113),
+  /* 1173 E> */ B(Star), R(0),
+  /* 1181 S> */ B(LdaConstant), U8(114),
+  /* 1183 E> */ B(Star), R(0),
+  /* 1191 S> */ B(LdaConstant), U8(115),
+  /* 1193 E> */ B(Star), R(0),
+  /* 1201 S> */ B(LdaConstant), U8(116),
+  /* 1203 E> */ B(Star), R(0),
+  /* 1211 S> */ B(LdaConstant), U8(117),
+  /* 1213 E> */ B(Star), R(0),
+  /* 1221 S> */ B(LdaConstant), U8(118),
+  /* 1223 E> */ B(Star), R(0),
+  /* 1231 S> */ B(LdaConstant), U8(119),
+  /* 1233 E> */ B(Star), R(0),
+  /* 1241 S> */ B(LdaConstant), U8(120),
+  /* 1243 E> */ B(Star), R(0),
+  /* 1251 S> */ B(LdaConstant), U8(121),
+  /* 1253 E> */ B(Star), R(0),
+  /* 1261 S> */ B(LdaConstant), U8(122),
+  /* 1263 E> */ B(Star), R(0),
+  /* 1271 S> */ B(LdaConstant), U8(123),
+  /* 1273 E> */ B(Star), R(0),
+  /* 1281 S> */ B(LdaConstant), U8(124),
+  /* 1283 E> */ B(Star), R(0),
+  /* 1291 S> */ B(LdaConstant), U8(125),
+  /* 1293 E> */ B(Star), R(0),
+  /* 1301 S> */ B(LdaConstant), U8(126),
+  /* 1303 E> */ B(Star), R(0),
+  /* 1311 S> */ B(LdaConstant), U8(127),
+  /* 1313 E> */ B(Star), R(0),
+  /* 1321 S> */ B(LdaConstant), U8(128),
+  /* 1323 E> */ B(Star), R(0),
+  /* 1331 S> */ B(LdaConstant), U8(129),
+  /* 1333 E> */ B(Star), R(0),
+  /* 1341 S> */ B(LdaConstant), U8(130),
+  /* 1343 E> */ B(Star), R(0),
+  /* 1351 S> */ B(LdaConstant), U8(131),
+  /* 1353 E> */ B(Star), R(0),
+  /* 1361 S> */ B(LdaConstant), U8(132),
+  /* 1363 E> */ B(Star), R(0),
+  /* 1371 S> */ B(LdaConstant), U8(133),
+  /* 1373 E> */ B(Star), R(0),
+  /* 1381 S> */ B(LdaConstant), U8(134),
+  /* 1383 E> */ B(Star), R(0),
+  /* 1391 S> */ B(LdaConstant), U8(135),
+  /* 1393 E> */ B(Star), R(0),
+  /* 1401 S> */ B(LdaConstant), U8(136),
+  /* 1403 E> */ B(Star), R(0),
+  /* 1411 S> */ B(LdaConstant), U8(137),
+  /* 1413 E> */ B(Star), R(0),
+  /* 1421 S> */ B(LdaConstant), U8(138),
+  /* 1423 E> */ B(Star), R(0),
+  /* 1431 S> */ B(LdaConstant), U8(139),
+  /* 1433 E> */ B(Star), R(0),
+  /* 1441 S> */ B(LdaConstant), U8(140),
+  /* 1443 E> */ B(Star), R(0),
+  /* 1451 S> */ B(LdaConstant), U8(141),
+  /* 1453 E> */ B(Star), R(0),
+  /* 1461 S> */ B(LdaConstant), U8(142),
+  /* 1463 E> */ B(Star), R(0),
+  /* 1471 S> */ B(LdaConstant), U8(143),
+  /* 1473 E> */ B(Star), R(0),
+  /* 1481 S> */ B(LdaConstant), U8(144),
+  /* 1483 E> */ B(Star), R(0),
+  /* 1491 S> */ B(LdaConstant), U8(145),
+  /* 1493 E> */ B(Star), R(0),
+  /* 1501 S> */ B(LdaConstant), U8(146),
+  /* 1503 E> */ B(Star), R(0),
+  /* 1511 S> */ B(LdaConstant), U8(147),
+  /* 1513 E> */ B(Star), R(0),
+  /* 1521 S> */ B(LdaConstant), U8(148),
+  /* 1523 E> */ B(Star), R(0),
+  /* 1531 S> */ B(LdaConstant), U8(149),
+  /* 1533 E> */ B(Star), R(0),
+  /* 1541 S> */ B(LdaConstant), U8(150),
+  /* 1543 E> */ B(Star), R(0),
+  /* 1551 S> */ B(LdaConstant), U8(151),
+  /* 1553 E> */ B(Star), R(0),
+  /* 1561 S> */ B(LdaConstant), U8(152),
+  /* 1563 E> */ B(Star), R(0),
+  /* 1571 S> */ B(LdaConstant), U8(153),
+  /* 1573 E> */ B(Star), R(0),
+  /* 1581 S> */ B(LdaConstant), U8(154),
+  /* 1583 E> */ B(Star), R(0),
+  /* 1591 S> */ B(LdaConstant), U8(155),
+  /* 1593 E> */ B(Star), R(0),
+  /* 1601 S> */ B(LdaConstant), U8(156),
+  /* 1603 E> */ B(Star), R(0),
+  /* 1611 S> */ B(LdaConstant), U8(157),
+  /* 1613 E> */ B(Star), R(0),
+  /* 1621 S> */ B(LdaConstant), U8(158),
+  /* 1623 E> */ B(Star), R(0),
+  /* 1631 S> */ B(LdaConstant), U8(159),
+  /* 1633 E> */ B(Star), R(0),
+  /* 1641 S> */ B(LdaConstant), U8(160),
+  /* 1643 E> */ B(Star), R(0),
+  /* 1651 S> */ B(LdaConstant), U8(161),
+  /* 1653 E> */ B(Star), R(0),
+  /* 1661 S> */ B(LdaConstant), U8(162),
+  /* 1663 E> */ B(Star), R(0),
+  /* 1671 S> */ B(LdaConstant), U8(163),
+  /* 1673 E> */ B(Star), R(0),
+  /* 1681 S> */ B(LdaConstant), U8(164),
+  /* 1683 E> */ B(Star), R(0),
+  /* 1691 S> */ B(LdaConstant), U8(165),
+  /* 1693 E> */ B(Star), R(0),
+  /* 1701 S> */ B(LdaConstant), U8(166),
+  /* 1703 E> */ B(Star), R(0),
+  /* 1711 S> */ B(LdaConstant), U8(167),
+  /* 1713 E> */ B(Star), R(0),
+  /* 1721 S> */ B(LdaConstant), U8(168),
+  /* 1723 E> */ B(Star), R(0),
+  /* 1731 S> */ B(LdaConstant), U8(169),
+  /* 1733 E> */ B(Star), R(0),
+  /* 1741 S> */ B(LdaConstant), U8(170),
+  /* 1743 E> */ B(Star), R(0),
+  /* 1751 S> */ B(LdaConstant), U8(171),
+  /* 1753 E> */ B(Star), R(0),
+  /* 1761 S> */ B(LdaConstant), U8(172),
+  /* 1763 E> */ B(Star), R(0),
+  /* 1771 S> */ B(LdaConstant), U8(173),
+  /* 1773 E> */ B(Star), R(0),
+  /* 1781 S> */ B(LdaConstant), U8(174),
+  /* 1783 E> */ B(Star), R(0),
+  /* 1791 S> */ B(LdaConstant), U8(175),
+  /* 1793 E> */ B(Star), R(0),
+  /* 1801 S> */ B(LdaConstant), U8(176),
+  /* 1803 E> */ B(Star), R(0),
+  /* 1811 S> */ B(LdaConstant), U8(177),
+  /* 1813 E> */ B(Star), R(0),
+  /* 1821 S> */ B(LdaConstant), U8(178),
+  /* 1823 E> */ B(Star), R(0),
+  /* 1831 S> */ B(LdaConstant), U8(179),
+  /* 1833 E> */ B(Star), R(0),
+  /* 1841 S> */ B(LdaConstant), U8(180),
+  /* 1843 E> */ B(Star), R(0),
+  /* 1851 S> */ B(LdaConstant), U8(181),
+  /* 1853 E> */ B(Star), R(0),
+  /* 1861 S> */ B(LdaConstant), U8(182),
+  /* 1863 E> */ B(Star), R(0),
+  /* 1871 S> */ B(LdaConstant), U8(183),
+  /* 1873 E> */ B(Star), R(0),
+  /* 1881 S> */ B(LdaConstant), U8(184),
+  /* 1883 E> */ B(Star), R(0),
+  /* 1891 S> */ B(LdaConstant), U8(185),
+  /* 1893 E> */ B(Star), R(0),
+  /* 1901 S> */ B(LdaConstant), U8(186),
+  /* 1903 E> */ B(Star), R(0),
+  /* 1911 S> */ B(LdaConstant), U8(187),
+  /* 1913 E> */ B(Star), R(0),
+  /* 1921 S> */ B(LdaConstant), U8(188),
+  /* 1923 E> */ B(Star), R(0),
+  /* 1931 S> */ B(LdaConstant), U8(189),
+  /* 1933 E> */ B(Star), R(0),
+  /* 1941 S> */ B(LdaConstant), U8(190),
+  /* 1943 E> */ B(Star), R(0),
+  /* 1951 S> */ B(LdaConstant), U8(191),
+  /* 1953 E> */ B(Star), R(0),
+  /* 1961 S> */ B(LdaConstant), U8(192),
+  /* 1963 E> */ B(Star), R(0),
+  /* 1971 S> */ B(LdaConstant), U8(193),
+  /* 1973 E> */ B(Star), R(0),
+  /* 1981 S> */ B(LdaConstant), U8(194),
+  /* 1983 E> */ B(Star), R(0),
+  /* 1991 S> */ B(LdaConstant), U8(195),
+  /* 1993 E> */ B(Star), R(0),
+  /* 2001 S> */ B(LdaConstant), U8(196),
+  /* 2003 E> */ B(Star), R(0),
+  /* 2011 S> */ B(LdaConstant), U8(197),
+  /* 2013 E> */ B(Star), R(0),
+  /* 2021 S> */ B(LdaConstant), U8(198),
+  /* 2023 E> */ B(Star), R(0),
+  /* 2031 S> */ B(LdaConstant), U8(199),
+  /* 2033 E> */ B(Star), R(0),
+  /* 2041 S> */ B(LdaConstant), U8(200),
+  /* 2043 E> */ B(Star), R(0),
+  /* 2051 S> */ B(LdaConstant), U8(201),
+  /* 2053 E> */ B(Star), R(0),
+  /* 2061 S> */ B(LdaConstant), U8(202),
+  /* 2063 E> */ B(Star), R(0),
+  /* 2071 S> */ B(LdaConstant), U8(203),
+  /* 2073 E> */ B(Star), R(0),
+  /* 2081 S> */ B(LdaConstant), U8(204),
+  /* 2083 E> */ B(Star), R(0),
+  /* 2091 S> */ B(LdaConstant), U8(205),
+  /* 2093 E> */ B(Star), R(0),
+  /* 2101 S> */ B(LdaConstant), U8(206),
+  /* 2103 E> */ B(Star), R(0),
+  /* 2111 S> */ B(LdaConstant), U8(207),
+  /* 2113 E> */ B(Star), R(0),
+  /* 2121 S> */ B(LdaConstant), U8(208),
+  /* 2123 E> */ B(Star), R(0),
+  /* 2131 S> */ B(LdaConstant), U8(209),
+  /* 2133 E> */ B(Star), R(0),
+  /* 2141 S> */ B(LdaConstant), U8(210),
+  /* 2143 E> */ B(Star), R(0),
+  /* 2151 S> */ B(LdaConstant), U8(211),
+  /* 2153 E> */ B(Star), R(0),
+  /* 2161 S> */ B(LdaConstant), U8(212),
+  /* 2163 E> */ B(Star), R(0),
+  /* 2171 S> */ B(LdaConstant), U8(213),
+  /* 2173 E> */ B(Star), R(0),
+  /* 2181 S> */ B(LdaConstant), U8(214),
+  /* 2183 E> */ B(Star), R(0),
+  /* 2191 S> */ B(LdaConstant), U8(215),
+  /* 2193 E> */ B(Star), R(0),
+  /* 2201 S> */ B(LdaConstant), U8(216),
+  /* 2203 E> */ B(Star), R(0),
+  /* 2211 S> */ B(LdaConstant), U8(217),
+  /* 2213 E> */ B(Star), R(0),
+  /* 2221 S> */ B(LdaConstant), U8(218),
+  /* 2223 E> */ B(Star), R(0),
+  /* 2231 S> */ B(LdaConstant), U8(219),
+  /* 2233 E> */ B(Star), R(0),
+  /* 2241 S> */ B(LdaConstant), U8(220),
+  /* 2243 E> */ B(Star), R(0),
+  /* 2251 S> */ B(LdaConstant), U8(221),
+  /* 2253 E> */ B(Star), R(0),
+  /* 2261 S> */ B(LdaConstant), U8(222),
+  /* 2263 E> */ B(Star), R(0),
+  /* 2271 S> */ B(LdaConstant), U8(223),
+  /* 2273 E> */ B(Star), R(0),
+  /* 2281 S> */ B(LdaConstant), U8(224),
+  /* 2283 E> */ B(Star), R(0),
+  /* 2291 S> */ B(LdaConstant), U8(225),
+  /* 2293 E> */ B(Star), R(0),
+  /* 2301 S> */ B(LdaConstant), U8(226),
+  /* 2303 E> */ B(Star), R(0),
+  /* 2311 S> */ B(LdaConstant), U8(227),
+  /* 2313 E> */ B(Star), R(0),
+  /* 2321 S> */ B(LdaConstant), U8(228),
+  /* 2323 E> */ B(Star), R(0),
+  /* 2331 S> */ B(LdaConstant), U8(229),
+  /* 2333 E> */ B(Star), R(0),
+  /* 2341 S> */ B(LdaConstant), U8(230),
+  /* 2343 E> */ B(Star), R(0),
+  /* 2351 S> */ B(LdaConstant), U8(231),
+  /* 2353 E> */ B(Star), R(0),
+  /* 2361 S> */ B(LdaConstant), U8(232),
+  /* 2363 E> */ B(Star), R(0),
+  /* 2371 S> */ B(LdaConstant), U8(233),
+  /* 2373 E> */ B(Star), R(0),
+  /* 2381 S> */ B(LdaConstant), U8(234),
+  /* 2383 E> */ B(Star), R(0),
+  /* 2391 S> */ B(LdaConstant), U8(235),
+  /* 2393 E> */ B(Star), R(0),
+  /* 2401 S> */ B(LdaConstant), U8(236),
+  /* 2403 E> */ B(Star), R(0),
+  /* 2411 S> */ B(LdaConstant), U8(237),
+  /* 2413 E> */ B(Star), R(0),
+  /* 2421 S> */ B(LdaConstant), U8(238),
+  /* 2423 E> */ B(Star), R(0),
+  /* 2431 S> */ B(LdaConstant), U8(239),
+  /* 2433 E> */ B(Star), R(0),
+  /* 2441 S> */ B(LdaConstant), U8(240),
+  /* 2443 E> */ B(Star), R(0),
+  /* 2451 S> */ B(LdaConstant), U8(241),
+  /* 2453 E> */ B(Star), R(0),
+  /* 2461 S> */ B(LdaConstant), U8(242),
+  /* 2463 E> */ B(Star), R(0),
+  /* 2471 S> */ B(LdaConstant), U8(243),
+  /* 2473 E> */ B(Star), R(0),
+  /* 2481 S> */ B(LdaConstant), U8(244),
+  /* 2483 E> */ B(Star), R(0),
+  /* 2491 S> */ B(LdaConstant), U8(245),
+  /* 2493 E> */ B(Star), R(0),
+  /* 2501 S> */ B(LdaConstant), U8(246),
+  /* 2503 E> */ B(Star), R(0),
+  /* 2511 S> */ B(LdaConstant), U8(247),
+  /* 2513 E> */ B(Star), R(0),
+  /* 2521 S> */ B(LdaConstant), U8(248),
+  /* 2523 E> */ B(Star), R(0),
+  /* 2531 S> */ B(LdaConstant), U8(249),
+  /* 2533 E> */ B(Star), R(0),
+  /* 2541 S> */ B(LdaConstant), U8(250),
+  /* 2543 E> */ B(Star), R(0),
+  /* 2551 S> */ B(LdaConstant), U8(251),
+  /* 2553 E> */ B(Star), R(0),
+  /* 2561 S> */ B(LdaConstant), U8(252),
+  /* 2563 E> */ B(Star), R(0),
+  /* 2571 S> */ B(LdaConstant), U8(253),
+  /* 2573 E> */ B(Star), R(0),
+  /* 2581 S> */ B(LdaConstant), U8(254),
+  /* 2583 E> */ B(Star), R(0),
+  /* 2591 S> */ B(LdaConstant), U8(255),
+  /* 2593 E> */ B(Star), R(0),
+  /* 2601 S> */ B(Wide), B(CreateObjectLiteral), U16(256), U16(0), U8(1),
+                B(Star), R(1),
+  /* 2638 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::HEAP_NUMBER_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden b/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden
index 378a5b7..af6e942 100644
--- a/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden
+++ b/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden
@@ -24,16 +24,16 @@
 parameter count: 1
 bytecode array length: 21
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(context),
-  B(Star), R(0),
-  B(LdaContextSlot), R(0), U8(1),
-  B(Star), R(0),
-  B(LdaContextSlot), R(0), U8(4),
-  B(Star), R(1),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Mul), R(1),
-  B(Return),
+  /*   97 E> */ B(StackCheck),
+  /*  102 S> */ B(Ldar), R(context),
+                B(Star), R(0),
+                B(LdaContextSlot), R(0), U8(1),
+                B(Star), R(0),
+                B(LdaContextSlot), R(0), U8(4),
+                B(Star), R(1),
+  /*  120 E> */ B(LdaContextSlot), R(context), U8(4),
+                B(Mul), R(1),
+  /*  130 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -56,17 +56,17 @@
 parameter count: 1
 bytecode array length: 22
 bytecodes: [
-  B(StackCheck),
-  B(LdaContextSlot), R(context), U8(4),
-  B(Star), R(0),
-  B(Ldar), R(context),
-  B(Star), R(1),
-  B(LdaContextSlot), R(1), U8(1),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(StaContextSlot), R(1), U8(4),
-  B(LdaUndefined),
-  B(Return),
+  /*   97 E> */ B(StackCheck),
+  /*  102 S> */ B(LdaContextSlot), R(context), U8(4),
+  /*  111 E> */ B(Star), R(0),
+                B(Ldar), R(context),
+                B(Star), R(1),
+                B(LdaContextSlot), R(1), U8(1),
+                B(Star), R(1),
+                B(Ldar), R(0),
+                B(StaContextSlot), R(1), U8(4),
+                B(LdaUndefined),
+  /*  123 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/Parameters.golden b/test/cctest/interpreter/bytecode_expectations/Parameters.golden
index e124788..f26c066 100644
--- a/test/cctest/interpreter/bytecode_expectations/Parameters.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Parameters.golden
@@ -17,9 +17,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(this),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   15 S> */ B(Ldar), R(this),
+  /*   28 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -35,9 +35,9 @@
 parameter count: 2
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   19 S> */ B(Ldar), R(arg0),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -53,9 +53,9 @@
 parameter count: 2
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(this),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   19 S> */ B(Ldar), R(this),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -71,9 +71,9 @@
 parameter count: 8
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg3),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   55 S> */ B(Ldar), R(arg3),
+  /*   68 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -89,9 +89,9 @@
 parameter count: 8
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(this),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   55 S> */ B(Ldar), R(this),
+  /*   68 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -107,11 +107,11 @@
 parameter count: 2
 bytecode array length: 7
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(arg0),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   19 S> */ B(LdaSmi), U8(1),
+  /*   24 E> */ B(Star), R(arg0),
+                B(LdaUndefined),
+  /*   29 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -127,11 +127,11 @@
 parameter count: 5
 bytecode array length: 7
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(arg1),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   37 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(arg1),
+                B(LdaUndefined),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden b/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden
index 08b20dd..b9fd679 100644
--- a/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden
@@ -15,10 +15,10 @@
 parameter count: 1
 bytecode array length: 5
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   55 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -33,13 +33,13 @@
 parameter count: 1
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Add), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(Add), R(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -54,13 +54,13 @@
 parameter count: 1
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Sub), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(Sub), R(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -75,13 +75,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(4),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Mul), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(4),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(Mul), R(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -96,13 +96,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(4),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Div), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(4),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(Div), R(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -117,13 +117,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(4),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Mod), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(4),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(Mod), R(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -138,13 +138,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(BitwiseOr), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+                B(BitwiseOr), R(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -159,13 +159,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(BitwiseXor), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+                B(BitwiseXor), R(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -180,13 +180,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(BitwiseAnd), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(1),
+                B(LdaSmi), U8(2),
+                B(BitwiseAnd), R(1),
+  /*   59 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -201,13 +201,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(ShiftLeft), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(ShiftLeft), R(1),
+  /*   61 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -222,13 +222,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(ShiftRight), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(ShiftRight), R(1),
+  /*   61 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -243,13 +243,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(10),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(ShiftRightLogical), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(10),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(ShiftRightLogical), R(1),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -264,11 +264,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaSmi), U8(3),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(3),
+  /*   60 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/PrimitiveReturnStatements.golden b/test/cctest/interpreter/bytecode_expectations/PrimitiveReturnStatements.golden
index 0a23f2b..a707451 100644
--- a/test/cctest/interpreter/bytecode_expectations/PrimitiveReturnStatements.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PrimitiveReturnStatements.golden
@@ -14,9 +14,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(LdaUndefined),
+  /*   34 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -31,9 +31,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaUndefined),
+  /*   42 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -48,9 +48,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaNull),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaNull),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -65,9 +65,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaTrue),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaTrue),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -82,9 +82,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaFalse),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaFalse),
+  /*   48 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -99,9 +99,9 @@
 parameter count: 1
 bytecode array length: 3
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaZero),
+  /*   44 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -116,9 +116,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(1),
+  /*   45 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -133,9 +133,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(-1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(-1),
+  /*   45 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -150,9 +150,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(127),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(127),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -167,9 +167,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(-128),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(-128),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden b/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden
index d6108f1..df4c277 100644
--- a/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden
@@ -17,13 +17,13 @@
 parameter count: 2
 bytecode array length: 17
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(3),
-  B(Star), R(0),
-  B(Call), R(0), R(1), U8(1), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   24 E> */ B(LoadIC), R(1), U8(0), U8(3),
+                B(Star), R(0),
+  /*   25 E> */ B(Call), R(0), R(1), U8(1), U8(1),
+  /*   33 S> */ B(Return),
 ]
 constant pool: [
   "func",
@@ -40,17 +40,17 @@
 parameter count: 4
 bytecode array length: 25
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(3),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(2),
-  B(Ldar), R(arg2),
-  B(Star), R(3),
-  B(Call), R(0), R(1), U8(3), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   22 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   30 E> */ B(LoadIC), R(1), U8(0), U8(3),
+                B(Star), R(0),
+  /*   36 E> */ B(Ldar), R(arg1),
+                B(Star), R(2),
+  /*   39 E> */ B(Ldar), R(arg2),
+                B(Star), R(3),
+  /*   31 E> */ B(Call), R(0), R(1), U8(3), U8(1),
+  /*   43 S> */ B(Return),
 ]
 constant pool: [
   "func",
@@ -67,20 +67,20 @@
 parameter count: 3
 bytecode array length: 31
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(3),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(3),
-  B(Ldar), R(arg1),
-  B(Add), R(3),
-  B(Star), R(2),
-  B(Ldar), R(arg1),
-  B(Star), R(3),
-  B(Call), R(0), R(1), U8(3), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   19 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   27 E> */ B(LoadIC), R(1), U8(0), U8(3),
+                B(Star), R(0),
+  /*   33 E> */ B(Ldar), R(arg1),
+                B(Star), R(3),
+  /*   37 E> */ B(Ldar), R(arg1),
+                B(Add), R(3),
+                B(Star), R(2),
+  /*   40 E> */ B(Ldar), R(arg1),
+                B(Star), R(3),
+  /*   28 E> */ B(Call), R(0), R(1), U8(3), U8(1),
+  /*   44 S> */ B(Return),
 ]
 constant pool: [
   "func",
@@ -226,397 +226,397 @@
 parameter count: 2
 bytecode array length: 1050
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(1),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(3),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(5),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(7),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(9),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(11),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(13),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(15),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(17),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(19),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(21),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(23),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(25),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(27),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(29),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(31),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(33),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(35),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(37),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(39),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(41),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(43),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(45),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(47),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(49),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(51),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(53),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(55),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(57),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(59),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(61),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(63),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(65),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(67),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(69),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(71),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(73),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(75),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(77),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(79),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(81),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(83),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(85),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(87),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(89),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(91),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(93),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(95),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(97),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(99),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(101),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(103),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(105),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(107),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(109),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(111),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(113),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(115),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(117),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(119),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(121),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(123),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(125),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(127),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(129),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(131),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(133),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(135),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(137),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(139),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(141),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(143),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(145),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(147),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(149),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(151),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(153),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(155),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(157),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(159),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(161),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(163),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(165),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(167),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(169),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(171),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(173),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(175),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(177),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(179),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(181),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(183),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(185),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(187),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(189),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(191),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(193),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(195),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(197),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(199),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(201),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(203),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(205),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(207),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(209),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(211),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(213),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(215),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(217),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(219),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(221),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(223),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(225),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(227),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(229),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(231),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(233),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(235),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(237),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(239),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(241),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(243),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(245),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(247),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(249),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(251),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(253),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(255),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Wide), B(LoadIC), R16(1), U16(0), U16(259),
-  B(Star), R(0),
-  B(Wide), B(Call), R16(0), R16(1), U16(1), U16(257),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   17 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   18 E> */ B(LoadIC), R(0), U8(0), U8(1),
+  /*   26 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   27 E> */ B(LoadIC), R(0), U8(0), U8(3),
+  /*   35 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   36 E> */ B(LoadIC), R(0), U8(0), U8(5),
+  /*   44 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   45 E> */ B(LoadIC), R(0), U8(0), U8(7),
+  /*   53 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   54 E> */ B(LoadIC), R(0), U8(0), U8(9),
+  /*   62 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   63 E> */ B(LoadIC), R(0), U8(0), U8(11),
+  /*   71 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   72 E> */ B(LoadIC), R(0), U8(0), U8(13),
+  /*   80 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   81 E> */ B(LoadIC), R(0), U8(0), U8(15),
+  /*   89 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   90 E> */ B(LoadIC), R(0), U8(0), U8(17),
+  /*   98 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   99 E> */ B(LoadIC), R(0), U8(0), U8(19),
+  /*  107 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  108 E> */ B(LoadIC), R(0), U8(0), U8(21),
+  /*  116 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  117 E> */ B(LoadIC), R(0), U8(0), U8(23),
+  /*  125 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  126 E> */ B(LoadIC), R(0), U8(0), U8(25),
+  /*  134 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  135 E> */ B(LoadIC), R(0), U8(0), U8(27),
+  /*  143 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  144 E> */ B(LoadIC), R(0), U8(0), U8(29),
+  /*  152 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  153 E> */ B(LoadIC), R(0), U8(0), U8(31),
+  /*  161 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  162 E> */ B(LoadIC), R(0), U8(0), U8(33),
+  /*  170 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  171 E> */ B(LoadIC), R(0), U8(0), U8(35),
+  /*  179 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  180 E> */ B(LoadIC), R(0), U8(0), U8(37),
+  /*  188 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  189 E> */ B(LoadIC), R(0), U8(0), U8(39),
+  /*  197 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  198 E> */ B(LoadIC), R(0), U8(0), U8(41),
+  /*  206 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  207 E> */ B(LoadIC), R(0), U8(0), U8(43),
+  /*  215 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  216 E> */ B(LoadIC), R(0), U8(0), U8(45),
+  /*  224 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  225 E> */ B(LoadIC), R(0), U8(0), U8(47),
+  /*  233 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  234 E> */ B(LoadIC), R(0), U8(0), U8(49),
+  /*  242 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  243 E> */ B(LoadIC), R(0), U8(0), U8(51),
+  /*  251 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  252 E> */ B(LoadIC), R(0), U8(0), U8(53),
+  /*  260 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  261 E> */ B(LoadIC), R(0), U8(0), U8(55),
+  /*  269 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  270 E> */ B(LoadIC), R(0), U8(0), U8(57),
+  /*  278 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  279 E> */ B(LoadIC), R(0), U8(0), U8(59),
+  /*  287 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  288 E> */ B(LoadIC), R(0), U8(0), U8(61),
+  /*  296 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  297 E> */ B(LoadIC), R(0), U8(0), U8(63),
+  /*  305 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  306 E> */ B(LoadIC), R(0), U8(0), U8(65),
+  /*  314 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  315 E> */ B(LoadIC), R(0), U8(0), U8(67),
+  /*  323 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  324 E> */ B(LoadIC), R(0), U8(0), U8(69),
+  /*  332 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  333 E> */ B(LoadIC), R(0), U8(0), U8(71),
+  /*  341 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  342 E> */ B(LoadIC), R(0), U8(0), U8(73),
+  /*  350 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  351 E> */ B(LoadIC), R(0), U8(0), U8(75),
+  /*  359 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  360 E> */ B(LoadIC), R(0), U8(0), U8(77),
+  /*  368 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  369 E> */ B(LoadIC), R(0), U8(0), U8(79),
+  /*  377 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  378 E> */ B(LoadIC), R(0), U8(0), U8(81),
+  /*  386 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  387 E> */ B(LoadIC), R(0), U8(0), U8(83),
+  /*  395 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  396 E> */ B(LoadIC), R(0), U8(0), U8(85),
+  /*  404 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  405 E> */ B(LoadIC), R(0), U8(0), U8(87),
+  /*  413 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  414 E> */ B(LoadIC), R(0), U8(0), U8(89),
+  /*  422 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  423 E> */ B(LoadIC), R(0), U8(0), U8(91),
+  /*  431 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  432 E> */ B(LoadIC), R(0), U8(0), U8(93),
+  /*  440 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  441 E> */ B(LoadIC), R(0), U8(0), U8(95),
+  /*  449 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  450 E> */ B(LoadIC), R(0), U8(0), U8(97),
+  /*  458 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  459 E> */ B(LoadIC), R(0), U8(0), U8(99),
+  /*  467 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  468 E> */ B(LoadIC), R(0), U8(0), U8(101),
+  /*  476 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  477 E> */ B(LoadIC), R(0), U8(0), U8(103),
+  /*  485 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  486 E> */ B(LoadIC), R(0), U8(0), U8(105),
+  /*  494 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  495 E> */ B(LoadIC), R(0), U8(0), U8(107),
+  /*  503 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  504 E> */ B(LoadIC), R(0), U8(0), U8(109),
+  /*  512 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  513 E> */ B(LoadIC), R(0), U8(0), U8(111),
+  /*  521 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  522 E> */ B(LoadIC), R(0), U8(0), U8(113),
+  /*  530 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  531 E> */ B(LoadIC), R(0), U8(0), U8(115),
+  /*  539 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  540 E> */ B(LoadIC), R(0), U8(0), U8(117),
+  /*  548 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  549 E> */ B(LoadIC), R(0), U8(0), U8(119),
+  /*  557 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  558 E> */ B(LoadIC), R(0), U8(0), U8(121),
+  /*  566 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  567 E> */ B(LoadIC), R(0), U8(0), U8(123),
+  /*  575 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  576 E> */ B(LoadIC), R(0), U8(0), U8(125),
+  /*  584 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  585 E> */ B(LoadIC), R(0), U8(0), U8(127),
+  /*  593 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  594 E> */ B(LoadIC), R(0), U8(0), U8(129),
+  /*  602 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  603 E> */ B(LoadIC), R(0), U8(0), U8(131),
+  /*  611 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  612 E> */ B(LoadIC), R(0), U8(0), U8(133),
+  /*  620 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  621 E> */ B(LoadIC), R(0), U8(0), U8(135),
+  /*  629 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  630 E> */ B(LoadIC), R(0), U8(0), U8(137),
+  /*  638 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  639 E> */ B(LoadIC), R(0), U8(0), U8(139),
+  /*  647 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  648 E> */ B(LoadIC), R(0), U8(0), U8(141),
+  /*  656 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  657 E> */ B(LoadIC), R(0), U8(0), U8(143),
+  /*  665 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  666 E> */ B(LoadIC), R(0), U8(0), U8(145),
+  /*  674 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  675 E> */ B(LoadIC), R(0), U8(0), U8(147),
+  /*  683 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  684 E> */ B(LoadIC), R(0), U8(0), U8(149),
+  /*  692 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  693 E> */ B(LoadIC), R(0), U8(0), U8(151),
+  /*  701 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  702 E> */ B(LoadIC), R(0), U8(0), U8(153),
+  /*  710 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  711 E> */ B(LoadIC), R(0), U8(0), U8(155),
+  /*  719 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  720 E> */ B(LoadIC), R(0), U8(0), U8(157),
+  /*  728 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  729 E> */ B(LoadIC), R(0), U8(0), U8(159),
+  /*  737 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  738 E> */ B(LoadIC), R(0), U8(0), U8(161),
+  /*  746 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  747 E> */ B(LoadIC), R(0), U8(0), U8(163),
+  /*  755 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  756 E> */ B(LoadIC), R(0), U8(0), U8(165),
+  /*  764 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  765 E> */ B(LoadIC), R(0), U8(0), U8(167),
+  /*  773 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  774 E> */ B(LoadIC), R(0), U8(0), U8(169),
+  /*  782 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  783 E> */ B(LoadIC), R(0), U8(0), U8(171),
+  /*  791 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  792 E> */ B(LoadIC), R(0), U8(0), U8(173),
+  /*  800 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  801 E> */ B(LoadIC), R(0), U8(0), U8(175),
+  /*  809 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  810 E> */ B(LoadIC), R(0), U8(0), U8(177),
+  /*  818 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  819 E> */ B(LoadIC), R(0), U8(0), U8(179),
+  /*  827 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  828 E> */ B(LoadIC), R(0), U8(0), U8(181),
+  /*  836 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  837 E> */ B(LoadIC), R(0), U8(0), U8(183),
+  /*  845 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  846 E> */ B(LoadIC), R(0), U8(0), U8(185),
+  /*  854 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  855 E> */ B(LoadIC), R(0), U8(0), U8(187),
+  /*  863 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  864 E> */ B(LoadIC), R(0), U8(0), U8(189),
+  /*  872 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  873 E> */ B(LoadIC), R(0), U8(0), U8(191),
+  /*  881 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  882 E> */ B(LoadIC), R(0), U8(0), U8(193),
+  /*  890 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  891 E> */ B(LoadIC), R(0), U8(0), U8(195),
+  /*  899 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  900 E> */ B(LoadIC), R(0), U8(0), U8(197),
+  /*  908 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  909 E> */ B(LoadIC), R(0), U8(0), U8(199),
+  /*  917 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  918 E> */ B(LoadIC), R(0), U8(0), U8(201),
+  /*  926 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  927 E> */ B(LoadIC), R(0), U8(0), U8(203),
+  /*  935 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  936 E> */ B(LoadIC), R(0), U8(0), U8(205),
+  /*  944 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  945 E> */ B(LoadIC), R(0), U8(0), U8(207),
+  /*  953 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  954 E> */ B(LoadIC), R(0), U8(0), U8(209),
+  /*  962 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  963 E> */ B(LoadIC), R(0), U8(0), U8(211),
+  /*  971 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  972 E> */ B(LoadIC), R(0), U8(0), U8(213),
+  /*  980 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  981 E> */ B(LoadIC), R(0), U8(0), U8(215),
+  /*  989 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  990 E> */ B(LoadIC), R(0), U8(0), U8(217),
+  /*  998 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  999 E> */ B(LoadIC), R(0), U8(0), U8(219),
+  /* 1007 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1008 E> */ B(LoadIC), R(0), U8(0), U8(221),
+  /* 1016 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1017 E> */ B(LoadIC), R(0), U8(0), U8(223),
+  /* 1025 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1026 E> */ B(LoadIC), R(0), U8(0), U8(225),
+  /* 1034 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1035 E> */ B(LoadIC), R(0), U8(0), U8(227),
+  /* 1043 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1044 E> */ B(LoadIC), R(0), U8(0), U8(229),
+  /* 1052 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1053 E> */ B(LoadIC), R(0), U8(0), U8(231),
+  /* 1061 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1062 E> */ B(LoadIC), R(0), U8(0), U8(233),
+  /* 1070 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1071 E> */ B(LoadIC), R(0), U8(0), U8(235),
+  /* 1079 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1080 E> */ B(LoadIC), R(0), U8(0), U8(237),
+  /* 1088 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1089 E> */ B(LoadIC), R(0), U8(0), U8(239),
+  /* 1097 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1098 E> */ B(LoadIC), R(0), U8(0), U8(241),
+  /* 1106 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1107 E> */ B(LoadIC), R(0), U8(0), U8(243),
+  /* 1115 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1116 E> */ B(LoadIC), R(0), U8(0), U8(245),
+  /* 1124 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1125 E> */ B(LoadIC), R(0), U8(0), U8(247),
+  /* 1133 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1134 E> */ B(LoadIC), R(0), U8(0), U8(249),
+  /* 1142 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1143 E> */ B(LoadIC), R(0), U8(0), U8(251),
+  /* 1151 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1152 E> */ B(LoadIC), R(0), U8(0), U8(253),
+  /* 1160 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1161 E> */ B(LoadIC), R(0), U8(0), U8(255),
+  /* 1169 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1177 E> */ B(Wide), B(LoadIC), R16(1), U16(0), U16(259),
+                B(Star), R(0),
+  /* 1178 E> */ B(Wide), B(Call), R16(0), R16(1), U16(1), U16(257),
+  /* 1186 S> */ B(Return),
 ]
 constant pool: [
   "func",
diff --git a/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden b/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden
index 7d5a58e..76741cb 100644
--- a/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden
@@ -17,11 +17,11 @@
 parameter count: 2
 bytecode array length: 10
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   24 E> */ B(LoadIC), R(0), U8(0), U8(1),
+  /*   31 S> */ B(Return),
 ]
 constant pool: [
   "name",
@@ -38,11 +38,11 @@
 parameter count: 2
 bytecode array length: 10
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   24 E> */ B(LoadIC), R(0), U8(0), U8(1),
+  /*   33 S> */ B(Return),
 ]
 constant pool: [
   "key",
@@ -59,12 +59,12 @@
 parameter count: 2
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(100),
-  B(KeyedLoadIC), R(0), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   24 E> */ B(LdaSmi), U8(100),
+                B(KeyedLoadIC), R(0), U8(1),
+  /*   31 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -80,12 +80,12 @@
 parameter count: 3
 bytecode array length: 11
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(0), U8(1),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   19 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   27 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(0), U8(1),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -101,16 +101,16 @@
 parameter count: 2
 bytecode array length: 21
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(1),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LdaSmi), U8(-124),
-  B(KeyedLoadIC), R(1), U8(3),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   25 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   25 E> */ B(LoadIC), R(1), U8(0), U8(1),
+  /*   25 E> */ B(Star), R(0),
+  /*   32 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   40 E> */ B(LdaSmi), U8(-124),
+                B(KeyedLoadIC), R(1), U8(3),
+  /*   48 S> */ B(Return),
 ]
 constant pool: [
   "name",
@@ -258,523 +258,523 @@
 parameter count: 2
 bytecode array length: 1294
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(1),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(3),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(5),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(7),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(9),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(11),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(13),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(15),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(17),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(19),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(21),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(23),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(25),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(27),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(29),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(31),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(33),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(35),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(37),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(39),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(41),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(43),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(45),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(47),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(49),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(51),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(53),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(55),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(57),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(59),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(61),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(63),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(65),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(67),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(69),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(71),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(73),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(75),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(77),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(79),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(81),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(83),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(85),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(87),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(89),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(91),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(93),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(95),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(97),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(99),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(101),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(103),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(105),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(107),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(109),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(111),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(113),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(115),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(117),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(119),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(121),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(123),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(125),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(127),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(129),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(131),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(133),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(135),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(137),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(139),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(141),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(143),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(145),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(147),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(149),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(151),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(153),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(155),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(157),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(159),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(161),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(163),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(165),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(167),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(169),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(171),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(173),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(175),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(177),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(179),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(181),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(183),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(185),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(187),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(189),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(191),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(193),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(195),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(197),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(199),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(201),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(203),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(205),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(207),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(209),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(211),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(213),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(215),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(217),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(219),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(221),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(223),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(225),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(227),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(229),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(231),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(233),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(235),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(237),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(239),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(241),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(243),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(245),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(247),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(249),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(251),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(253),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(0), U8(255),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Wide), B(LoadIC), R16(1), U16(0), U16(257),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   27 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   32 E> */ B(LoadIC), R(1), U8(0), U8(1),
+  /*   29 E> */ B(Star), R(0),
+  /*   41 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   46 E> */ B(LoadIC), R(1), U8(0), U8(3),
+  /*   43 E> */ B(Star), R(0),
+  /*   55 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   60 E> */ B(LoadIC), R(1), U8(0), U8(5),
+  /*   57 E> */ B(Star), R(0),
+  /*   69 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   74 E> */ B(LoadIC), R(1), U8(0), U8(7),
+  /*   71 E> */ B(Star), R(0),
+  /*   83 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   88 E> */ B(LoadIC), R(1), U8(0), U8(9),
+  /*   85 E> */ B(Star), R(0),
+  /*   97 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  102 E> */ B(LoadIC), R(1), U8(0), U8(11),
+  /*   99 E> */ B(Star), R(0),
+  /*  111 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  116 E> */ B(LoadIC), R(1), U8(0), U8(13),
+  /*  113 E> */ B(Star), R(0),
+  /*  125 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  130 E> */ B(LoadIC), R(1), U8(0), U8(15),
+  /*  127 E> */ B(Star), R(0),
+  /*  139 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  144 E> */ B(LoadIC), R(1), U8(0), U8(17),
+  /*  141 E> */ B(Star), R(0),
+  /*  153 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  158 E> */ B(LoadIC), R(1), U8(0), U8(19),
+  /*  155 E> */ B(Star), R(0),
+  /*  167 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  172 E> */ B(LoadIC), R(1), U8(0), U8(21),
+  /*  169 E> */ B(Star), R(0),
+  /*  181 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  186 E> */ B(LoadIC), R(1), U8(0), U8(23),
+  /*  183 E> */ B(Star), R(0),
+  /*  195 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  200 E> */ B(LoadIC), R(1), U8(0), U8(25),
+  /*  197 E> */ B(Star), R(0),
+  /*  209 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  214 E> */ B(LoadIC), R(1), U8(0), U8(27),
+  /*  211 E> */ B(Star), R(0),
+  /*  223 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  228 E> */ B(LoadIC), R(1), U8(0), U8(29),
+  /*  225 E> */ B(Star), R(0),
+  /*  237 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  242 E> */ B(LoadIC), R(1), U8(0), U8(31),
+  /*  239 E> */ B(Star), R(0),
+  /*  251 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  256 E> */ B(LoadIC), R(1), U8(0), U8(33),
+  /*  253 E> */ B(Star), R(0),
+  /*  265 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  270 E> */ B(LoadIC), R(1), U8(0), U8(35),
+  /*  267 E> */ B(Star), R(0),
+  /*  279 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  284 E> */ B(LoadIC), R(1), U8(0), U8(37),
+  /*  281 E> */ B(Star), R(0),
+  /*  293 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  298 E> */ B(LoadIC), R(1), U8(0), U8(39),
+  /*  295 E> */ B(Star), R(0),
+  /*  307 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  312 E> */ B(LoadIC), R(1), U8(0), U8(41),
+  /*  309 E> */ B(Star), R(0),
+  /*  321 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  326 E> */ B(LoadIC), R(1), U8(0), U8(43),
+  /*  323 E> */ B(Star), R(0),
+  /*  335 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  340 E> */ B(LoadIC), R(1), U8(0), U8(45),
+  /*  337 E> */ B(Star), R(0),
+  /*  349 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  354 E> */ B(LoadIC), R(1), U8(0), U8(47),
+  /*  351 E> */ B(Star), R(0),
+  /*  363 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  368 E> */ B(LoadIC), R(1), U8(0), U8(49),
+  /*  365 E> */ B(Star), R(0),
+  /*  377 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  382 E> */ B(LoadIC), R(1), U8(0), U8(51),
+  /*  379 E> */ B(Star), R(0),
+  /*  391 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  396 E> */ B(LoadIC), R(1), U8(0), U8(53),
+  /*  393 E> */ B(Star), R(0),
+  /*  405 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  410 E> */ B(LoadIC), R(1), U8(0), U8(55),
+  /*  407 E> */ B(Star), R(0),
+  /*  419 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  424 E> */ B(LoadIC), R(1), U8(0), U8(57),
+  /*  421 E> */ B(Star), R(0),
+  /*  433 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  438 E> */ B(LoadIC), R(1), U8(0), U8(59),
+  /*  435 E> */ B(Star), R(0),
+  /*  447 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  452 E> */ B(LoadIC), R(1), U8(0), U8(61),
+  /*  449 E> */ B(Star), R(0),
+  /*  461 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  466 E> */ B(LoadIC), R(1), U8(0), U8(63),
+  /*  463 E> */ B(Star), R(0),
+  /*  475 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  480 E> */ B(LoadIC), R(1), U8(0), U8(65),
+  /*  477 E> */ B(Star), R(0),
+  /*  489 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  494 E> */ B(LoadIC), R(1), U8(0), U8(67),
+  /*  491 E> */ B(Star), R(0),
+  /*  503 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  508 E> */ B(LoadIC), R(1), U8(0), U8(69),
+  /*  505 E> */ B(Star), R(0),
+  /*  517 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  522 E> */ B(LoadIC), R(1), U8(0), U8(71),
+  /*  519 E> */ B(Star), R(0),
+  /*  531 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  536 E> */ B(LoadIC), R(1), U8(0), U8(73),
+  /*  533 E> */ B(Star), R(0),
+  /*  545 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  550 E> */ B(LoadIC), R(1), U8(0), U8(75),
+  /*  547 E> */ B(Star), R(0),
+  /*  559 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  564 E> */ B(LoadIC), R(1), U8(0), U8(77),
+  /*  561 E> */ B(Star), R(0),
+  /*  573 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  578 E> */ B(LoadIC), R(1), U8(0), U8(79),
+  /*  575 E> */ B(Star), R(0),
+  /*  587 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  592 E> */ B(LoadIC), R(1), U8(0), U8(81),
+  /*  589 E> */ B(Star), R(0),
+  /*  601 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  606 E> */ B(LoadIC), R(1), U8(0), U8(83),
+  /*  603 E> */ B(Star), R(0),
+  /*  615 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  620 E> */ B(LoadIC), R(1), U8(0), U8(85),
+  /*  617 E> */ B(Star), R(0),
+  /*  629 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  634 E> */ B(LoadIC), R(1), U8(0), U8(87),
+  /*  631 E> */ B(Star), R(0),
+  /*  643 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  648 E> */ B(LoadIC), R(1), U8(0), U8(89),
+  /*  645 E> */ B(Star), R(0),
+  /*  657 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  662 E> */ B(LoadIC), R(1), U8(0), U8(91),
+  /*  659 E> */ B(Star), R(0),
+  /*  671 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  676 E> */ B(LoadIC), R(1), U8(0), U8(93),
+  /*  673 E> */ B(Star), R(0),
+  /*  685 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  690 E> */ B(LoadIC), R(1), U8(0), U8(95),
+  /*  687 E> */ B(Star), R(0),
+  /*  699 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  704 E> */ B(LoadIC), R(1), U8(0), U8(97),
+  /*  701 E> */ B(Star), R(0),
+  /*  713 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  718 E> */ B(LoadIC), R(1), U8(0), U8(99),
+  /*  715 E> */ B(Star), R(0),
+  /*  727 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  732 E> */ B(LoadIC), R(1), U8(0), U8(101),
+  /*  729 E> */ B(Star), R(0),
+  /*  741 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  746 E> */ B(LoadIC), R(1), U8(0), U8(103),
+  /*  743 E> */ B(Star), R(0),
+  /*  755 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  760 E> */ B(LoadIC), R(1), U8(0), U8(105),
+  /*  757 E> */ B(Star), R(0),
+  /*  769 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  774 E> */ B(LoadIC), R(1), U8(0), U8(107),
+  /*  771 E> */ B(Star), R(0),
+  /*  783 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  788 E> */ B(LoadIC), R(1), U8(0), U8(109),
+  /*  785 E> */ B(Star), R(0),
+  /*  797 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  802 E> */ B(LoadIC), R(1), U8(0), U8(111),
+  /*  799 E> */ B(Star), R(0),
+  /*  811 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  816 E> */ B(LoadIC), R(1), U8(0), U8(113),
+  /*  813 E> */ B(Star), R(0),
+  /*  825 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  830 E> */ B(LoadIC), R(1), U8(0), U8(115),
+  /*  827 E> */ B(Star), R(0),
+  /*  839 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  844 E> */ B(LoadIC), R(1), U8(0), U8(117),
+  /*  841 E> */ B(Star), R(0),
+  /*  853 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  858 E> */ B(LoadIC), R(1), U8(0), U8(119),
+  /*  855 E> */ B(Star), R(0),
+  /*  867 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  872 E> */ B(LoadIC), R(1), U8(0), U8(121),
+  /*  869 E> */ B(Star), R(0),
+  /*  881 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  886 E> */ B(LoadIC), R(1), U8(0), U8(123),
+  /*  883 E> */ B(Star), R(0),
+  /*  895 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  900 E> */ B(LoadIC), R(1), U8(0), U8(125),
+  /*  897 E> */ B(Star), R(0),
+  /*  909 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  914 E> */ B(LoadIC), R(1), U8(0), U8(127),
+  /*  911 E> */ B(Star), R(0),
+  /*  923 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  928 E> */ B(LoadIC), R(1), U8(0), U8(129),
+  /*  925 E> */ B(Star), R(0),
+  /*  937 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  942 E> */ B(LoadIC), R(1), U8(0), U8(131),
+  /*  939 E> */ B(Star), R(0),
+  /*  951 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  956 E> */ B(LoadIC), R(1), U8(0), U8(133),
+  /*  953 E> */ B(Star), R(0),
+  /*  965 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  970 E> */ B(LoadIC), R(1), U8(0), U8(135),
+  /*  967 E> */ B(Star), R(0),
+  /*  979 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  984 E> */ B(LoadIC), R(1), U8(0), U8(137),
+  /*  981 E> */ B(Star), R(0),
+  /*  993 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  998 E> */ B(LoadIC), R(1), U8(0), U8(139),
+  /*  995 E> */ B(Star), R(0),
+  /* 1007 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1012 E> */ B(LoadIC), R(1), U8(0), U8(141),
+  /* 1009 E> */ B(Star), R(0),
+  /* 1021 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1026 E> */ B(LoadIC), R(1), U8(0), U8(143),
+  /* 1023 E> */ B(Star), R(0),
+  /* 1035 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1040 E> */ B(LoadIC), R(1), U8(0), U8(145),
+  /* 1037 E> */ B(Star), R(0),
+  /* 1049 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1054 E> */ B(LoadIC), R(1), U8(0), U8(147),
+  /* 1051 E> */ B(Star), R(0),
+  /* 1063 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1068 E> */ B(LoadIC), R(1), U8(0), U8(149),
+  /* 1065 E> */ B(Star), R(0),
+  /* 1077 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1082 E> */ B(LoadIC), R(1), U8(0), U8(151),
+  /* 1079 E> */ B(Star), R(0),
+  /* 1091 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1096 E> */ B(LoadIC), R(1), U8(0), U8(153),
+  /* 1093 E> */ B(Star), R(0),
+  /* 1105 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1110 E> */ B(LoadIC), R(1), U8(0), U8(155),
+  /* 1107 E> */ B(Star), R(0),
+  /* 1119 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1124 E> */ B(LoadIC), R(1), U8(0), U8(157),
+  /* 1121 E> */ B(Star), R(0),
+  /* 1133 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1138 E> */ B(LoadIC), R(1), U8(0), U8(159),
+  /* 1135 E> */ B(Star), R(0),
+  /* 1147 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1152 E> */ B(LoadIC), R(1), U8(0), U8(161),
+  /* 1149 E> */ B(Star), R(0),
+  /* 1161 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1166 E> */ B(LoadIC), R(1), U8(0), U8(163),
+  /* 1163 E> */ B(Star), R(0),
+  /* 1175 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1180 E> */ B(LoadIC), R(1), U8(0), U8(165),
+  /* 1177 E> */ B(Star), R(0),
+  /* 1189 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1194 E> */ B(LoadIC), R(1), U8(0), U8(167),
+  /* 1191 E> */ B(Star), R(0),
+  /* 1203 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1208 E> */ B(LoadIC), R(1), U8(0), U8(169),
+  /* 1205 E> */ B(Star), R(0),
+  /* 1217 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1222 E> */ B(LoadIC), R(1), U8(0), U8(171),
+  /* 1219 E> */ B(Star), R(0),
+  /* 1231 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1236 E> */ B(LoadIC), R(1), U8(0), U8(173),
+  /* 1233 E> */ B(Star), R(0),
+  /* 1245 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1250 E> */ B(LoadIC), R(1), U8(0), U8(175),
+  /* 1247 E> */ B(Star), R(0),
+  /* 1259 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1264 E> */ B(LoadIC), R(1), U8(0), U8(177),
+  /* 1261 E> */ B(Star), R(0),
+  /* 1273 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1278 E> */ B(LoadIC), R(1), U8(0), U8(179),
+  /* 1275 E> */ B(Star), R(0),
+  /* 1287 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1292 E> */ B(LoadIC), R(1), U8(0), U8(181),
+  /* 1289 E> */ B(Star), R(0),
+  /* 1301 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1306 E> */ B(LoadIC), R(1), U8(0), U8(183),
+  /* 1303 E> */ B(Star), R(0),
+  /* 1315 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1320 E> */ B(LoadIC), R(1), U8(0), U8(185),
+  /* 1317 E> */ B(Star), R(0),
+  /* 1329 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1334 E> */ B(LoadIC), R(1), U8(0), U8(187),
+  /* 1331 E> */ B(Star), R(0),
+  /* 1343 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1348 E> */ B(LoadIC), R(1), U8(0), U8(189),
+  /* 1345 E> */ B(Star), R(0),
+  /* 1357 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1362 E> */ B(LoadIC), R(1), U8(0), U8(191),
+  /* 1359 E> */ B(Star), R(0),
+  /* 1371 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1376 E> */ B(LoadIC), R(1), U8(0), U8(193),
+  /* 1373 E> */ B(Star), R(0),
+  /* 1385 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1390 E> */ B(LoadIC), R(1), U8(0), U8(195),
+  /* 1387 E> */ B(Star), R(0),
+  /* 1399 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1404 E> */ B(LoadIC), R(1), U8(0), U8(197),
+  /* 1401 E> */ B(Star), R(0),
+  /* 1413 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1418 E> */ B(LoadIC), R(1), U8(0), U8(199),
+  /* 1415 E> */ B(Star), R(0),
+  /* 1427 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1432 E> */ B(LoadIC), R(1), U8(0), U8(201),
+  /* 1429 E> */ B(Star), R(0),
+  /* 1441 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1446 E> */ B(LoadIC), R(1), U8(0), U8(203),
+  /* 1443 E> */ B(Star), R(0),
+  /* 1455 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1460 E> */ B(LoadIC), R(1), U8(0), U8(205),
+  /* 1457 E> */ B(Star), R(0),
+  /* 1469 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1474 E> */ B(LoadIC), R(1), U8(0), U8(207),
+  /* 1471 E> */ B(Star), R(0),
+  /* 1483 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1488 E> */ B(LoadIC), R(1), U8(0), U8(209),
+  /* 1485 E> */ B(Star), R(0),
+  /* 1497 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1502 E> */ B(LoadIC), R(1), U8(0), U8(211),
+  /* 1499 E> */ B(Star), R(0),
+  /* 1511 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1516 E> */ B(LoadIC), R(1), U8(0), U8(213),
+  /* 1513 E> */ B(Star), R(0),
+  /* 1525 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1530 E> */ B(LoadIC), R(1), U8(0), U8(215),
+  /* 1527 E> */ B(Star), R(0),
+  /* 1539 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1544 E> */ B(LoadIC), R(1), U8(0), U8(217),
+  /* 1541 E> */ B(Star), R(0),
+  /* 1553 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1558 E> */ B(LoadIC), R(1), U8(0), U8(219),
+  /* 1555 E> */ B(Star), R(0),
+  /* 1567 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1572 E> */ B(LoadIC), R(1), U8(0), U8(221),
+  /* 1569 E> */ B(Star), R(0),
+  /* 1581 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1586 E> */ B(LoadIC), R(1), U8(0), U8(223),
+  /* 1583 E> */ B(Star), R(0),
+  /* 1595 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1600 E> */ B(LoadIC), R(1), U8(0), U8(225),
+  /* 1597 E> */ B(Star), R(0),
+  /* 1609 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1614 E> */ B(LoadIC), R(1), U8(0), U8(227),
+  /* 1611 E> */ B(Star), R(0),
+  /* 1623 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1628 E> */ B(LoadIC), R(1), U8(0), U8(229),
+  /* 1625 E> */ B(Star), R(0),
+  /* 1637 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1642 E> */ B(LoadIC), R(1), U8(0), U8(231),
+  /* 1639 E> */ B(Star), R(0),
+  /* 1651 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1656 E> */ B(LoadIC), R(1), U8(0), U8(233),
+  /* 1653 E> */ B(Star), R(0),
+  /* 1665 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1670 E> */ B(LoadIC), R(1), U8(0), U8(235),
+  /* 1667 E> */ B(Star), R(0),
+  /* 1679 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1684 E> */ B(LoadIC), R(1), U8(0), U8(237),
+  /* 1681 E> */ B(Star), R(0),
+  /* 1693 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1698 E> */ B(LoadIC), R(1), U8(0), U8(239),
+  /* 1695 E> */ B(Star), R(0),
+  /* 1707 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1712 E> */ B(LoadIC), R(1), U8(0), U8(241),
+  /* 1709 E> */ B(Star), R(0),
+  /* 1721 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1726 E> */ B(LoadIC), R(1), U8(0), U8(243),
+  /* 1723 E> */ B(Star), R(0),
+  /* 1735 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1740 E> */ B(LoadIC), R(1), U8(0), U8(245),
+  /* 1737 E> */ B(Star), R(0),
+  /* 1749 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1754 E> */ B(LoadIC), R(1), U8(0), U8(247),
+  /* 1751 E> */ B(Star), R(0),
+  /* 1763 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1768 E> */ B(LoadIC), R(1), U8(0), U8(249),
+  /* 1765 E> */ B(Star), R(0),
+  /* 1777 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1782 E> */ B(LoadIC), R(1), U8(0), U8(251),
+  /* 1779 E> */ B(Star), R(0),
+  /* 1791 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1796 E> */ B(LoadIC), R(1), U8(0), U8(253),
+  /* 1793 E> */ B(Star), R(0),
+  /* 1805 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1810 E> */ B(LoadIC), R(1), U8(0), U8(255),
+  /* 1807 E> */ B(Star), R(0),
+  /* 1819 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1827 E> */ B(Wide), B(LoadIC), R16(1), U16(0), U16(257),
+  /* 1834 S> */ B(Return),
 ]
 constant pool: [
   "name",
@@ -922,652 +922,652 @@
 parameter count: 3
 bytecode array length: 1422
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(1),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(3),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(5),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(7),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(9),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(11),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(13),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(15),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(17),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(19),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(21),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(23),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(25),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(27),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(29),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(31),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(33),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(35),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(37),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(39),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(41),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(43),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(45),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(47),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(49),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(51),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(53),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(55),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(57),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(59),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(61),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(63),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(65),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(67),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(69),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(71),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(73),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(75),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(77),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(79),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(81),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(83),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(85),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(87),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(89),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(91),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(93),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(95),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(97),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(99),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(101),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(103),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(105),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(107),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(109),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(111),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(113),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(115),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(117),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(119),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(121),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(123),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(125),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(127),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(129),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(131),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(133),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(135),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(137),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(139),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(141),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(143),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(145),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(147),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(149),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(151),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(153),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(155),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(157),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(159),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(161),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(163),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(165),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(167),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(169),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(171),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(173),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(175),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(177),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(179),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(181),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(183),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(185),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(187),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(189),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(191),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(193),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(195),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(197),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(199),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(201),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(203),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(205),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(207),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(209),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(211),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(213),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(215),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(217),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(219),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(221),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(223),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(225),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(227),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(229),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(231),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(233),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(235),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(237),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(239),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(241),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(243),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(245),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(247),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(249),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(251),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(253),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(KeyedLoadIC), R(1), U8(255),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(Ldar), R(arg1),
-  B(Wide), B(KeyedLoadIC), R16(1), U16(257),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   30 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   35 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(1),
+  /*   32 E> */ B(Star), R(0),
+  /*   42 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   47 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(3),
+  /*   44 E> */ B(Star), R(0),
+  /*   54 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   59 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(5),
+  /*   56 E> */ B(Star), R(0),
+  /*   66 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   71 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(7),
+  /*   68 E> */ B(Star), R(0),
+  /*   78 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   83 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(9),
+  /*   80 E> */ B(Star), R(0),
+  /*   90 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   95 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(11),
+  /*   92 E> */ B(Star), R(0),
+  /*  102 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  107 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(13),
+  /*  104 E> */ B(Star), R(0),
+  /*  114 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  119 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(15),
+  /*  116 E> */ B(Star), R(0),
+  /*  126 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  131 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(17),
+  /*  128 E> */ B(Star), R(0),
+  /*  138 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  143 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(19),
+  /*  140 E> */ B(Star), R(0),
+  /*  150 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  155 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(21),
+  /*  152 E> */ B(Star), R(0),
+  /*  162 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  167 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(23),
+  /*  164 E> */ B(Star), R(0),
+  /*  174 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  179 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(25),
+  /*  176 E> */ B(Star), R(0),
+  /*  186 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  191 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(27),
+  /*  188 E> */ B(Star), R(0),
+  /*  198 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  203 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(29),
+  /*  200 E> */ B(Star), R(0),
+  /*  210 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  215 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(31),
+  /*  212 E> */ B(Star), R(0),
+  /*  222 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  227 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(33),
+  /*  224 E> */ B(Star), R(0),
+  /*  234 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  239 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(35),
+  /*  236 E> */ B(Star), R(0),
+  /*  246 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  251 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(37),
+  /*  248 E> */ B(Star), R(0),
+  /*  258 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  263 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(39),
+  /*  260 E> */ B(Star), R(0),
+  /*  270 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  275 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(41),
+  /*  272 E> */ B(Star), R(0),
+  /*  282 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  287 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(43),
+  /*  284 E> */ B(Star), R(0),
+  /*  294 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  299 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(45),
+  /*  296 E> */ B(Star), R(0),
+  /*  306 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  311 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(47),
+  /*  308 E> */ B(Star), R(0),
+  /*  318 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  323 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(49),
+  /*  320 E> */ B(Star), R(0),
+  /*  330 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  335 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(51),
+  /*  332 E> */ B(Star), R(0),
+  /*  342 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  347 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(53),
+  /*  344 E> */ B(Star), R(0),
+  /*  354 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  359 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(55),
+  /*  356 E> */ B(Star), R(0),
+  /*  366 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  371 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(57),
+  /*  368 E> */ B(Star), R(0),
+  /*  378 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  383 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(59),
+  /*  380 E> */ B(Star), R(0),
+  /*  390 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  395 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(61),
+  /*  392 E> */ B(Star), R(0),
+  /*  402 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  407 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(63),
+  /*  404 E> */ B(Star), R(0),
+  /*  414 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  419 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(65),
+  /*  416 E> */ B(Star), R(0),
+  /*  426 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  431 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(67),
+  /*  428 E> */ B(Star), R(0),
+  /*  438 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  443 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(69),
+  /*  440 E> */ B(Star), R(0),
+  /*  450 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  455 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(71),
+  /*  452 E> */ B(Star), R(0),
+  /*  462 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  467 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(73),
+  /*  464 E> */ B(Star), R(0),
+  /*  474 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  479 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(75),
+  /*  476 E> */ B(Star), R(0),
+  /*  486 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  491 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(77),
+  /*  488 E> */ B(Star), R(0),
+  /*  498 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  503 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(79),
+  /*  500 E> */ B(Star), R(0),
+  /*  510 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  515 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(81),
+  /*  512 E> */ B(Star), R(0),
+  /*  522 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  527 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(83),
+  /*  524 E> */ B(Star), R(0),
+  /*  534 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  539 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(85),
+  /*  536 E> */ B(Star), R(0),
+  /*  546 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  551 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(87),
+  /*  548 E> */ B(Star), R(0),
+  /*  558 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  563 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(89),
+  /*  560 E> */ B(Star), R(0),
+  /*  570 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  575 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(91),
+  /*  572 E> */ B(Star), R(0),
+  /*  582 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  587 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(93),
+  /*  584 E> */ B(Star), R(0),
+  /*  594 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  599 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(95),
+  /*  596 E> */ B(Star), R(0),
+  /*  606 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  611 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(97),
+  /*  608 E> */ B(Star), R(0),
+  /*  618 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  623 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(99),
+  /*  620 E> */ B(Star), R(0),
+  /*  630 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  635 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(101),
+  /*  632 E> */ B(Star), R(0),
+  /*  642 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  647 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(103),
+  /*  644 E> */ B(Star), R(0),
+  /*  654 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  659 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(105),
+  /*  656 E> */ B(Star), R(0),
+  /*  666 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  671 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(107),
+  /*  668 E> */ B(Star), R(0),
+  /*  678 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  683 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(109),
+  /*  680 E> */ B(Star), R(0),
+  /*  690 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  695 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(111),
+  /*  692 E> */ B(Star), R(0),
+  /*  702 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  707 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(113),
+  /*  704 E> */ B(Star), R(0),
+  /*  714 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  719 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(115),
+  /*  716 E> */ B(Star), R(0),
+  /*  726 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  731 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(117),
+  /*  728 E> */ B(Star), R(0),
+  /*  738 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  743 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(119),
+  /*  740 E> */ B(Star), R(0),
+  /*  750 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  755 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(121),
+  /*  752 E> */ B(Star), R(0),
+  /*  762 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  767 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(123),
+  /*  764 E> */ B(Star), R(0),
+  /*  774 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  779 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(125),
+  /*  776 E> */ B(Star), R(0),
+  /*  786 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  791 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(127),
+  /*  788 E> */ B(Star), R(0),
+  /*  798 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  803 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(129),
+  /*  800 E> */ B(Star), R(0),
+  /*  810 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  815 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(131),
+  /*  812 E> */ B(Star), R(0),
+  /*  822 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  827 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(133),
+  /*  824 E> */ B(Star), R(0),
+  /*  834 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  839 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(135),
+  /*  836 E> */ B(Star), R(0),
+  /*  846 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  851 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(137),
+  /*  848 E> */ B(Star), R(0),
+  /*  858 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  863 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(139),
+  /*  860 E> */ B(Star), R(0),
+  /*  870 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  875 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(141),
+  /*  872 E> */ B(Star), R(0),
+  /*  882 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  887 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(143),
+  /*  884 E> */ B(Star), R(0),
+  /*  894 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  899 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(145),
+  /*  896 E> */ B(Star), R(0),
+  /*  906 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  911 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(147),
+  /*  908 E> */ B(Star), R(0),
+  /*  918 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  923 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(149),
+  /*  920 E> */ B(Star), R(0),
+  /*  930 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  935 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(151),
+  /*  932 E> */ B(Star), R(0),
+  /*  942 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  947 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(153),
+  /*  944 E> */ B(Star), R(0),
+  /*  954 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  959 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(155),
+  /*  956 E> */ B(Star), R(0),
+  /*  966 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  971 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(157),
+  /*  968 E> */ B(Star), R(0),
+  /*  978 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  983 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(159),
+  /*  980 E> */ B(Star), R(0),
+  /*  990 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*  995 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(161),
+  /*  992 E> */ B(Star), R(0),
+  /* 1002 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1007 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(163),
+  /* 1004 E> */ B(Star), R(0),
+  /* 1014 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1019 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(165),
+  /* 1016 E> */ B(Star), R(0),
+  /* 1026 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1031 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(167),
+  /* 1028 E> */ B(Star), R(0),
+  /* 1038 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1043 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(169),
+  /* 1040 E> */ B(Star), R(0),
+  /* 1050 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1055 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(171),
+  /* 1052 E> */ B(Star), R(0),
+  /* 1062 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1067 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(173),
+  /* 1064 E> */ B(Star), R(0),
+  /* 1074 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1079 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(175),
+  /* 1076 E> */ B(Star), R(0),
+  /* 1086 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1091 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(177),
+  /* 1088 E> */ B(Star), R(0),
+  /* 1098 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1103 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(179),
+  /* 1100 E> */ B(Star), R(0),
+  /* 1110 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1115 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(181),
+  /* 1112 E> */ B(Star), R(0),
+  /* 1122 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1127 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(183),
+  /* 1124 E> */ B(Star), R(0),
+  /* 1134 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1139 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(185),
+  /* 1136 E> */ B(Star), R(0),
+  /* 1146 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1151 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(187),
+  /* 1148 E> */ B(Star), R(0),
+  /* 1158 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1163 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(189),
+  /* 1160 E> */ B(Star), R(0),
+  /* 1170 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1175 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(191),
+  /* 1172 E> */ B(Star), R(0),
+  /* 1182 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1187 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(193),
+  /* 1184 E> */ B(Star), R(0),
+  /* 1194 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1199 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(195),
+  /* 1196 E> */ B(Star), R(0),
+  /* 1206 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1211 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(197),
+  /* 1208 E> */ B(Star), R(0),
+  /* 1218 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1223 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(199),
+  /* 1220 E> */ B(Star), R(0),
+  /* 1230 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1235 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(201),
+  /* 1232 E> */ B(Star), R(0),
+  /* 1242 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1247 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(203),
+  /* 1244 E> */ B(Star), R(0),
+  /* 1254 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1259 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(205),
+  /* 1256 E> */ B(Star), R(0),
+  /* 1266 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1271 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(207),
+  /* 1268 E> */ B(Star), R(0),
+  /* 1278 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1283 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(209),
+  /* 1280 E> */ B(Star), R(0),
+  /* 1290 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1295 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(211),
+  /* 1292 E> */ B(Star), R(0),
+  /* 1302 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1307 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(213),
+  /* 1304 E> */ B(Star), R(0),
+  /* 1314 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1319 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(215),
+  /* 1316 E> */ B(Star), R(0),
+  /* 1326 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1331 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(217),
+  /* 1328 E> */ B(Star), R(0),
+  /* 1338 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1343 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(219),
+  /* 1340 E> */ B(Star), R(0),
+  /* 1350 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1355 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(221),
+  /* 1352 E> */ B(Star), R(0),
+  /* 1362 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1367 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(223),
+  /* 1364 E> */ B(Star), R(0),
+  /* 1374 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1379 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(225),
+  /* 1376 E> */ B(Star), R(0),
+  /* 1386 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1391 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(227),
+  /* 1388 E> */ B(Star), R(0),
+  /* 1398 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1403 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(229),
+  /* 1400 E> */ B(Star), R(0),
+  /* 1410 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1415 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(231),
+  /* 1412 E> */ B(Star), R(0),
+  /* 1422 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1427 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(233),
+  /* 1424 E> */ B(Star), R(0),
+  /* 1434 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1439 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(235),
+  /* 1436 E> */ B(Star), R(0),
+  /* 1446 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1451 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(237),
+  /* 1448 E> */ B(Star), R(0),
+  /* 1458 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1463 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(239),
+  /* 1460 E> */ B(Star), R(0),
+  /* 1470 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1475 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(241),
+  /* 1472 E> */ B(Star), R(0),
+  /* 1482 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1487 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(243),
+  /* 1484 E> */ B(Star), R(0),
+  /* 1494 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1499 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(245),
+  /* 1496 E> */ B(Star), R(0),
+  /* 1506 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1511 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(247),
+  /* 1508 E> */ B(Star), R(0),
+  /* 1518 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1523 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(249),
+  /* 1520 E> */ B(Star), R(0),
+  /* 1530 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1535 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(251),
+  /* 1532 E> */ B(Star), R(0),
+  /* 1542 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1547 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(253),
+  /* 1544 E> */ B(Star), R(0),
+  /* 1554 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1559 E> */ B(Ldar), R(arg1),
+                B(KeyedLoadIC), R(1), U8(255),
+  /* 1556 E> */ B(Star), R(0),
+  /* 1566 S> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /* 1574 E> */ B(Ldar), R(arg1),
+                B(Wide), B(KeyedLoadIC), R16(1), U16(257),
+  /* 1579 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/PropertyStores.golden b/test/cctest/interpreter/bytecode_expectations/PropertyStores.golden
index 9e67a90..340aa43 100644
--- a/test/cctest/interpreter/bytecode_expectations/PropertyStores.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PropertyStores.golden
@@ -17,13 +17,13 @@
 parameter count: 2
 bytecode array length: 13
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaConstant), U8(0),
-  B(StoreICSloppy), R(0), U8(1), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaConstant), U8(0),
+  /*   23 E> */ B(StoreICSloppy), R(0), U8(1), U8(1),
+                B(LdaUndefined),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
   "val",
@@ -41,13 +41,13 @@
 parameter count: 2
 bytecode array length: 13
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaConstant), U8(0),
-  B(StoreICSloppy), R(0), U8(1), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaConstant), U8(0),
+  /*   25 E> */ B(StoreICSloppy), R(0), U8(1), U8(1),
+                B(LdaUndefined),
+  /*   34 S> */ B(Return),
 ]
 constant pool: [
   "val",
@@ -65,15 +65,15 @@
 parameter count: 2
 bytecode array length: 17
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(100),
-  B(Star), R(1),
-  B(LdaConstant), U8(0),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(100),
+                B(Star), R(1),
+                B(LdaConstant), U8(0),
+  /*   23 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(1),
+                B(LdaUndefined),
+  /*   32 S> */ B(Return),
 ]
 constant pool: [
   "val",
@@ -90,15 +90,15 @@
 parameter count: 3
 bytecode array length: 17
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaConstant), U8(0),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   19 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   21 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaConstant), U8(0),
+  /*   24 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(1),
+                B(LdaUndefined),
+  /*   33 S> */ B(Return),
 ]
 constant pool: [
   "val",
@@ -115,16 +115,16 @@
 parameter count: 2
 bytecode array length: 20
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg0),
-  B(Star), R(1),
-  B(LdaSmi), U8(-124),
-  B(KeyedLoadIC), R(1), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(3),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   16 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   25 E> */ B(Ldar), R(arg0),
+                B(Star), R(1),
+  /*   26 E> */ B(LdaSmi), U8(-124),
+                B(KeyedLoadIC), R(1), U8(1),
+  /*   23 E> */ B(StoreICSloppy), R(0), U8(0), U8(3),
+                B(LdaUndefined),
+  /*   34 S> */ B(Return),
 ]
 constant pool: [
   "name",
@@ -141,13 +141,13 @@
 parameter count: 2
 bytecode array length: 13
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaConstant), U8(0),
-  B(StoreICStrict), R(0), U8(1), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   30 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaConstant), U8(0),
+  /*   37 E> */ B(StoreICStrict), R(0), U8(1), U8(1),
+                B(LdaUndefined),
+  /*   46 S> */ B(Return),
 ]
 constant pool: [
   "val",
@@ -165,15 +165,15 @@
 parameter count: 3
 bytecode array length: 17
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaConstant), U8(0),
-  B(KeyedStoreICStrict), R(0), R(1), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   33 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   35 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaConstant), U8(0),
+  /*   38 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(1),
+                B(LdaUndefined),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
   "val",
@@ -320,525 +320,525 @@
 parameter count: 2
 bytecode array length: 1297
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(1),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(3),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(5),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(7),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(9),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(11),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(13),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(15),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(17),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(19),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(21),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(23),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(25),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(27),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(29),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(31),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(33),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(35),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(37),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(39),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(41),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(43),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(45),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(47),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(49),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(51),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(53),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(55),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(57),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(59),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(61),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(63),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(65),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(67),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(69),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(71),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(73),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(75),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(77),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(79),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(81),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(83),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(85),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(87),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(89),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(91),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(93),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(95),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(97),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(99),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(101),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(103),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(105),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(107),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(109),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(111),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(113),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(115),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(117),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(119),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(121),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(123),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(125),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(127),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(129),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(131),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(133),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(135),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(137),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(139),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(141),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(143),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(145),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(147),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(149),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(151),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(153),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(155),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(157),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(159),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(161),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(163),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(165),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(167),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(169),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(171),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(173),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(175),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(177),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(179),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(181),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(183),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(185),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(187),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(189),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(191),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(193),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(195),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(197),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(199),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(201),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(203),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(205),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(207),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(209),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(211),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(213),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(215),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(217),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(219),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(221),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(223),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(225),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(227),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(229),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(231),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(233),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(235),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(237),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(239),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(241),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(243),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(245),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(247),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(249),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(251),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(253),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICSloppy), R(0), U8(0), U8(255),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(Wide), B(StoreICSloppy), R16(0), U16(0), U16(257),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   18 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   25 E> */ B(StoreICSloppy), R(0), U8(0), U8(1),
+  /*   32 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   39 E> */ B(StoreICSloppy), R(0), U8(0), U8(3),
+  /*   46 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   53 E> */ B(StoreICSloppy), R(0), U8(0), U8(5),
+  /*   60 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   67 E> */ B(StoreICSloppy), R(0), U8(0), U8(7),
+  /*   74 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   81 E> */ B(StoreICSloppy), R(0), U8(0), U8(9),
+  /*   88 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   95 E> */ B(StoreICSloppy), R(0), U8(0), U8(11),
+  /*  102 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  109 E> */ B(StoreICSloppy), R(0), U8(0), U8(13),
+  /*  116 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  123 E> */ B(StoreICSloppy), R(0), U8(0), U8(15),
+  /*  130 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  137 E> */ B(StoreICSloppy), R(0), U8(0), U8(17),
+  /*  144 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  151 E> */ B(StoreICSloppy), R(0), U8(0), U8(19),
+  /*  158 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  165 E> */ B(StoreICSloppy), R(0), U8(0), U8(21),
+  /*  172 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  179 E> */ B(StoreICSloppy), R(0), U8(0), U8(23),
+  /*  186 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  193 E> */ B(StoreICSloppy), R(0), U8(0), U8(25),
+  /*  200 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  207 E> */ B(StoreICSloppy), R(0), U8(0), U8(27),
+  /*  214 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  221 E> */ B(StoreICSloppy), R(0), U8(0), U8(29),
+  /*  228 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  235 E> */ B(StoreICSloppy), R(0), U8(0), U8(31),
+  /*  242 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  249 E> */ B(StoreICSloppy), R(0), U8(0), U8(33),
+  /*  256 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  263 E> */ B(StoreICSloppy), R(0), U8(0), U8(35),
+  /*  270 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  277 E> */ B(StoreICSloppy), R(0), U8(0), U8(37),
+  /*  284 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  291 E> */ B(StoreICSloppy), R(0), U8(0), U8(39),
+  /*  298 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  305 E> */ B(StoreICSloppy), R(0), U8(0), U8(41),
+  /*  312 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  319 E> */ B(StoreICSloppy), R(0), U8(0), U8(43),
+  /*  326 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  333 E> */ B(StoreICSloppy), R(0), U8(0), U8(45),
+  /*  340 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  347 E> */ B(StoreICSloppy), R(0), U8(0), U8(47),
+  /*  354 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  361 E> */ B(StoreICSloppy), R(0), U8(0), U8(49),
+  /*  368 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  375 E> */ B(StoreICSloppy), R(0), U8(0), U8(51),
+  /*  382 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  389 E> */ B(StoreICSloppy), R(0), U8(0), U8(53),
+  /*  396 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  403 E> */ B(StoreICSloppy), R(0), U8(0), U8(55),
+  /*  410 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  417 E> */ B(StoreICSloppy), R(0), U8(0), U8(57),
+  /*  424 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  431 E> */ B(StoreICSloppy), R(0), U8(0), U8(59),
+  /*  438 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  445 E> */ B(StoreICSloppy), R(0), U8(0), U8(61),
+  /*  452 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  459 E> */ B(StoreICSloppy), R(0), U8(0), U8(63),
+  /*  466 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  473 E> */ B(StoreICSloppy), R(0), U8(0), U8(65),
+  /*  480 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  487 E> */ B(StoreICSloppy), R(0), U8(0), U8(67),
+  /*  494 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  501 E> */ B(StoreICSloppy), R(0), U8(0), U8(69),
+  /*  508 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  515 E> */ B(StoreICSloppy), R(0), U8(0), U8(71),
+  /*  522 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  529 E> */ B(StoreICSloppy), R(0), U8(0), U8(73),
+  /*  536 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  543 E> */ B(StoreICSloppy), R(0), U8(0), U8(75),
+  /*  550 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  557 E> */ B(StoreICSloppy), R(0), U8(0), U8(77),
+  /*  564 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  571 E> */ B(StoreICSloppy), R(0), U8(0), U8(79),
+  /*  578 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  585 E> */ B(StoreICSloppy), R(0), U8(0), U8(81),
+  /*  592 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  599 E> */ B(StoreICSloppy), R(0), U8(0), U8(83),
+  /*  606 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  613 E> */ B(StoreICSloppy), R(0), U8(0), U8(85),
+  /*  620 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  627 E> */ B(StoreICSloppy), R(0), U8(0), U8(87),
+  /*  634 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  641 E> */ B(StoreICSloppy), R(0), U8(0), U8(89),
+  /*  648 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  655 E> */ B(StoreICSloppy), R(0), U8(0), U8(91),
+  /*  662 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  669 E> */ B(StoreICSloppy), R(0), U8(0), U8(93),
+  /*  676 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  683 E> */ B(StoreICSloppy), R(0), U8(0), U8(95),
+  /*  690 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  697 E> */ B(StoreICSloppy), R(0), U8(0), U8(97),
+  /*  704 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  711 E> */ B(StoreICSloppy), R(0), U8(0), U8(99),
+  /*  718 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  725 E> */ B(StoreICSloppy), R(0), U8(0), U8(101),
+  /*  732 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  739 E> */ B(StoreICSloppy), R(0), U8(0), U8(103),
+  /*  746 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  753 E> */ B(StoreICSloppy), R(0), U8(0), U8(105),
+  /*  760 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  767 E> */ B(StoreICSloppy), R(0), U8(0), U8(107),
+  /*  774 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  781 E> */ B(StoreICSloppy), R(0), U8(0), U8(109),
+  /*  788 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  795 E> */ B(StoreICSloppy), R(0), U8(0), U8(111),
+  /*  802 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  809 E> */ B(StoreICSloppy), R(0), U8(0), U8(113),
+  /*  816 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  823 E> */ B(StoreICSloppy), R(0), U8(0), U8(115),
+  /*  830 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  837 E> */ B(StoreICSloppy), R(0), U8(0), U8(117),
+  /*  844 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  851 E> */ B(StoreICSloppy), R(0), U8(0), U8(119),
+  /*  858 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  865 E> */ B(StoreICSloppy), R(0), U8(0), U8(121),
+  /*  872 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  879 E> */ B(StoreICSloppy), R(0), U8(0), U8(123),
+  /*  886 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  893 E> */ B(StoreICSloppy), R(0), U8(0), U8(125),
+  /*  900 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  907 E> */ B(StoreICSloppy), R(0), U8(0), U8(127),
+  /*  914 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  921 E> */ B(StoreICSloppy), R(0), U8(0), U8(129),
+  /*  928 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  935 E> */ B(StoreICSloppy), R(0), U8(0), U8(131),
+  /*  942 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  949 E> */ B(StoreICSloppy), R(0), U8(0), U8(133),
+  /*  956 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  963 E> */ B(StoreICSloppy), R(0), U8(0), U8(135),
+  /*  970 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  977 E> */ B(StoreICSloppy), R(0), U8(0), U8(137),
+  /*  984 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  991 E> */ B(StoreICSloppy), R(0), U8(0), U8(139),
+  /*  998 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1005 E> */ B(StoreICSloppy), R(0), U8(0), U8(141),
+  /* 1012 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1019 E> */ B(StoreICSloppy), R(0), U8(0), U8(143),
+  /* 1026 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1033 E> */ B(StoreICSloppy), R(0), U8(0), U8(145),
+  /* 1040 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1047 E> */ B(StoreICSloppy), R(0), U8(0), U8(147),
+  /* 1054 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1061 E> */ B(StoreICSloppy), R(0), U8(0), U8(149),
+  /* 1068 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1075 E> */ B(StoreICSloppy), R(0), U8(0), U8(151),
+  /* 1082 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1089 E> */ B(StoreICSloppy), R(0), U8(0), U8(153),
+  /* 1096 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1103 E> */ B(StoreICSloppy), R(0), U8(0), U8(155),
+  /* 1110 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1117 E> */ B(StoreICSloppy), R(0), U8(0), U8(157),
+  /* 1124 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1131 E> */ B(StoreICSloppy), R(0), U8(0), U8(159),
+  /* 1138 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1145 E> */ B(StoreICSloppy), R(0), U8(0), U8(161),
+  /* 1152 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1159 E> */ B(StoreICSloppy), R(0), U8(0), U8(163),
+  /* 1166 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1173 E> */ B(StoreICSloppy), R(0), U8(0), U8(165),
+  /* 1180 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1187 E> */ B(StoreICSloppy), R(0), U8(0), U8(167),
+  /* 1194 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1201 E> */ B(StoreICSloppy), R(0), U8(0), U8(169),
+  /* 1208 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1215 E> */ B(StoreICSloppy), R(0), U8(0), U8(171),
+  /* 1222 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1229 E> */ B(StoreICSloppy), R(0), U8(0), U8(173),
+  /* 1236 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1243 E> */ B(StoreICSloppy), R(0), U8(0), U8(175),
+  /* 1250 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1257 E> */ B(StoreICSloppy), R(0), U8(0), U8(177),
+  /* 1264 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1271 E> */ B(StoreICSloppy), R(0), U8(0), U8(179),
+  /* 1278 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1285 E> */ B(StoreICSloppy), R(0), U8(0), U8(181),
+  /* 1292 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1299 E> */ B(StoreICSloppy), R(0), U8(0), U8(183),
+  /* 1306 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1313 E> */ B(StoreICSloppy), R(0), U8(0), U8(185),
+  /* 1320 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1327 E> */ B(StoreICSloppy), R(0), U8(0), U8(187),
+  /* 1334 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1341 E> */ B(StoreICSloppy), R(0), U8(0), U8(189),
+  /* 1348 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1355 E> */ B(StoreICSloppy), R(0), U8(0), U8(191),
+  /* 1362 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1369 E> */ B(StoreICSloppy), R(0), U8(0), U8(193),
+  /* 1376 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1383 E> */ B(StoreICSloppy), R(0), U8(0), U8(195),
+  /* 1390 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1397 E> */ B(StoreICSloppy), R(0), U8(0), U8(197),
+  /* 1404 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1411 E> */ B(StoreICSloppy), R(0), U8(0), U8(199),
+  /* 1418 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1425 E> */ B(StoreICSloppy), R(0), U8(0), U8(201),
+  /* 1432 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1439 E> */ B(StoreICSloppy), R(0), U8(0), U8(203),
+  /* 1446 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1453 E> */ B(StoreICSloppy), R(0), U8(0), U8(205),
+  /* 1460 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1467 E> */ B(StoreICSloppy), R(0), U8(0), U8(207),
+  /* 1474 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1481 E> */ B(StoreICSloppy), R(0), U8(0), U8(209),
+  /* 1488 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1495 E> */ B(StoreICSloppy), R(0), U8(0), U8(211),
+  /* 1502 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1509 E> */ B(StoreICSloppy), R(0), U8(0), U8(213),
+  /* 1516 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1523 E> */ B(StoreICSloppy), R(0), U8(0), U8(215),
+  /* 1530 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1537 E> */ B(StoreICSloppy), R(0), U8(0), U8(217),
+  /* 1544 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1551 E> */ B(StoreICSloppy), R(0), U8(0), U8(219),
+  /* 1558 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1565 E> */ B(StoreICSloppy), R(0), U8(0), U8(221),
+  /* 1572 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1579 E> */ B(StoreICSloppy), R(0), U8(0), U8(223),
+  /* 1586 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1593 E> */ B(StoreICSloppy), R(0), U8(0), U8(225),
+  /* 1600 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1607 E> */ B(StoreICSloppy), R(0), U8(0), U8(227),
+  /* 1614 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1621 E> */ B(StoreICSloppy), R(0), U8(0), U8(229),
+  /* 1628 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1635 E> */ B(StoreICSloppy), R(0), U8(0), U8(231),
+  /* 1642 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1649 E> */ B(StoreICSloppy), R(0), U8(0), U8(233),
+  /* 1656 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1663 E> */ B(StoreICSloppy), R(0), U8(0), U8(235),
+  /* 1670 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1677 E> */ B(StoreICSloppy), R(0), U8(0), U8(237),
+  /* 1684 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1691 E> */ B(StoreICSloppy), R(0), U8(0), U8(239),
+  /* 1698 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1705 E> */ B(StoreICSloppy), R(0), U8(0), U8(241),
+  /* 1712 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1719 E> */ B(StoreICSloppy), R(0), U8(0), U8(243),
+  /* 1726 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1733 E> */ B(StoreICSloppy), R(0), U8(0), U8(245),
+  /* 1740 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1747 E> */ B(StoreICSloppy), R(0), U8(0), U8(247),
+  /* 1754 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1761 E> */ B(StoreICSloppy), R(0), U8(0), U8(249),
+  /* 1768 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1775 E> */ B(StoreICSloppy), R(0), U8(0), U8(251),
+  /* 1782 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1789 E> */ B(StoreICSloppy), R(0), U8(0), U8(253),
+  /* 1796 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1803 E> */ B(StoreICSloppy), R(0), U8(0), U8(255),
+  /* 1810 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(2),
+  /* 1817 E> */ B(Wide), B(StoreICSloppy), R16(0), U16(0), U16(257),
+                B(LdaUndefined),
+  /* 1822 S> */ B(Return),
 ]
 constant pool: [
   "name",
@@ -986,525 +986,525 @@
 parameter count: 2
 bytecode array length: 1297
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(1),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(3),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(5),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(7),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(9),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(11),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(13),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(15),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(17),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(19),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(21),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(23),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(25),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(27),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(29),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(31),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(33),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(35),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(37),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(39),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(41),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(43),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(45),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(47),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(49),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(51),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(53),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(55),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(57),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(59),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(61),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(63),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(65),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(67),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(69),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(71),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(73),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(75),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(77),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(79),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(81),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(83),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(85),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(87),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(89),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(91),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(93),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(95),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(97),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(99),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(101),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(103),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(105),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(107),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(109),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(111),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(113),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(115),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(117),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(119),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(121),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(123),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(125),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(127),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(129),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(131),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(133),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(135),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(137),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(139),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(141),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(143),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(145),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(147),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(149),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(151),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(153),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(155),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(157),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(159),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(161),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(163),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(165),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(167),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(169),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(171),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(173),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(175),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(177),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(179),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(181),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(183),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(185),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(187),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(189),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(191),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(193),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(195),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(197),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(199),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(201),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(203),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(205),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(207),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(209),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(211),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(213),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(215),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(217),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(219),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(221),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(223),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(225),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(227),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(229),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(231),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(233),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(235),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(237),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(239),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(241),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(243),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(245),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(247),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(249),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(251),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(253),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(1),
-  B(StoreICStrict), R(0), U8(0), U8(255),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LdaSmi), U8(2),
-  B(Wide), B(StoreICStrict), R16(0), U16(0), U16(257),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   33 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   40 E> */ B(StoreICStrict), R(0), U8(0), U8(1),
+  /*   47 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   54 E> */ B(StoreICStrict), R(0), U8(0), U8(3),
+  /*   61 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   68 E> */ B(StoreICStrict), R(0), U8(0), U8(5),
+  /*   75 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   82 E> */ B(StoreICStrict), R(0), U8(0), U8(7),
+  /*   89 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*   96 E> */ B(StoreICStrict), R(0), U8(0), U8(9),
+  /*  103 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  110 E> */ B(StoreICStrict), R(0), U8(0), U8(11),
+  /*  117 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  124 E> */ B(StoreICStrict), R(0), U8(0), U8(13),
+  /*  131 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  138 E> */ B(StoreICStrict), R(0), U8(0), U8(15),
+  /*  145 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  152 E> */ B(StoreICStrict), R(0), U8(0), U8(17),
+  /*  159 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  166 E> */ B(StoreICStrict), R(0), U8(0), U8(19),
+  /*  173 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  180 E> */ B(StoreICStrict), R(0), U8(0), U8(21),
+  /*  187 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  194 E> */ B(StoreICStrict), R(0), U8(0), U8(23),
+  /*  201 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  208 E> */ B(StoreICStrict), R(0), U8(0), U8(25),
+  /*  215 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  222 E> */ B(StoreICStrict), R(0), U8(0), U8(27),
+  /*  229 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  236 E> */ B(StoreICStrict), R(0), U8(0), U8(29),
+  /*  243 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  250 E> */ B(StoreICStrict), R(0), U8(0), U8(31),
+  /*  257 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  264 E> */ B(StoreICStrict), R(0), U8(0), U8(33),
+  /*  271 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  278 E> */ B(StoreICStrict), R(0), U8(0), U8(35),
+  /*  285 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  292 E> */ B(StoreICStrict), R(0), U8(0), U8(37),
+  /*  299 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  306 E> */ B(StoreICStrict), R(0), U8(0), U8(39),
+  /*  313 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  320 E> */ B(StoreICStrict), R(0), U8(0), U8(41),
+  /*  327 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  334 E> */ B(StoreICStrict), R(0), U8(0), U8(43),
+  /*  341 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  348 E> */ B(StoreICStrict), R(0), U8(0), U8(45),
+  /*  355 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  362 E> */ B(StoreICStrict), R(0), U8(0), U8(47),
+  /*  369 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  376 E> */ B(StoreICStrict), R(0), U8(0), U8(49),
+  /*  383 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  390 E> */ B(StoreICStrict), R(0), U8(0), U8(51),
+  /*  397 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  404 E> */ B(StoreICStrict), R(0), U8(0), U8(53),
+  /*  411 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  418 E> */ B(StoreICStrict), R(0), U8(0), U8(55),
+  /*  425 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  432 E> */ B(StoreICStrict), R(0), U8(0), U8(57),
+  /*  439 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  446 E> */ B(StoreICStrict), R(0), U8(0), U8(59),
+  /*  453 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  460 E> */ B(StoreICStrict), R(0), U8(0), U8(61),
+  /*  467 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  474 E> */ B(StoreICStrict), R(0), U8(0), U8(63),
+  /*  481 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  488 E> */ B(StoreICStrict), R(0), U8(0), U8(65),
+  /*  495 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  502 E> */ B(StoreICStrict), R(0), U8(0), U8(67),
+  /*  509 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  516 E> */ B(StoreICStrict), R(0), U8(0), U8(69),
+  /*  523 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  530 E> */ B(StoreICStrict), R(0), U8(0), U8(71),
+  /*  537 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  544 E> */ B(StoreICStrict), R(0), U8(0), U8(73),
+  /*  551 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  558 E> */ B(StoreICStrict), R(0), U8(0), U8(75),
+  /*  565 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  572 E> */ B(StoreICStrict), R(0), U8(0), U8(77),
+  /*  579 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  586 E> */ B(StoreICStrict), R(0), U8(0), U8(79),
+  /*  593 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  600 E> */ B(StoreICStrict), R(0), U8(0), U8(81),
+  /*  607 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  614 E> */ B(StoreICStrict), R(0), U8(0), U8(83),
+  /*  621 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  628 E> */ B(StoreICStrict), R(0), U8(0), U8(85),
+  /*  635 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  642 E> */ B(StoreICStrict), R(0), U8(0), U8(87),
+  /*  649 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  656 E> */ B(StoreICStrict), R(0), U8(0), U8(89),
+  /*  663 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  670 E> */ B(StoreICStrict), R(0), U8(0), U8(91),
+  /*  677 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  684 E> */ B(StoreICStrict), R(0), U8(0), U8(93),
+  /*  691 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  698 E> */ B(StoreICStrict), R(0), U8(0), U8(95),
+  /*  705 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  712 E> */ B(StoreICStrict), R(0), U8(0), U8(97),
+  /*  719 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  726 E> */ B(StoreICStrict), R(0), U8(0), U8(99),
+  /*  733 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  740 E> */ B(StoreICStrict), R(0), U8(0), U8(101),
+  /*  747 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  754 E> */ B(StoreICStrict), R(0), U8(0), U8(103),
+  /*  761 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  768 E> */ B(StoreICStrict), R(0), U8(0), U8(105),
+  /*  775 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  782 E> */ B(StoreICStrict), R(0), U8(0), U8(107),
+  /*  789 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  796 E> */ B(StoreICStrict), R(0), U8(0), U8(109),
+  /*  803 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  810 E> */ B(StoreICStrict), R(0), U8(0), U8(111),
+  /*  817 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  824 E> */ B(StoreICStrict), R(0), U8(0), U8(113),
+  /*  831 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  838 E> */ B(StoreICStrict), R(0), U8(0), U8(115),
+  /*  845 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  852 E> */ B(StoreICStrict), R(0), U8(0), U8(117),
+  /*  859 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  866 E> */ B(StoreICStrict), R(0), U8(0), U8(119),
+  /*  873 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  880 E> */ B(StoreICStrict), R(0), U8(0), U8(121),
+  /*  887 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  894 E> */ B(StoreICStrict), R(0), U8(0), U8(123),
+  /*  901 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  908 E> */ B(StoreICStrict), R(0), U8(0), U8(125),
+  /*  915 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  922 E> */ B(StoreICStrict), R(0), U8(0), U8(127),
+  /*  929 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  936 E> */ B(StoreICStrict), R(0), U8(0), U8(129),
+  /*  943 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  950 E> */ B(StoreICStrict), R(0), U8(0), U8(131),
+  /*  957 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  964 E> */ B(StoreICStrict), R(0), U8(0), U8(133),
+  /*  971 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  978 E> */ B(StoreICStrict), R(0), U8(0), U8(135),
+  /*  985 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /*  992 E> */ B(StoreICStrict), R(0), U8(0), U8(137),
+  /*  999 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1006 E> */ B(StoreICStrict), R(0), U8(0), U8(139),
+  /* 1013 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1020 E> */ B(StoreICStrict), R(0), U8(0), U8(141),
+  /* 1027 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1034 E> */ B(StoreICStrict), R(0), U8(0), U8(143),
+  /* 1041 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1048 E> */ B(StoreICStrict), R(0), U8(0), U8(145),
+  /* 1055 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1062 E> */ B(StoreICStrict), R(0), U8(0), U8(147),
+  /* 1069 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1076 E> */ B(StoreICStrict), R(0), U8(0), U8(149),
+  /* 1083 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1090 E> */ B(StoreICStrict), R(0), U8(0), U8(151),
+  /* 1097 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1104 E> */ B(StoreICStrict), R(0), U8(0), U8(153),
+  /* 1111 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1118 E> */ B(StoreICStrict), R(0), U8(0), U8(155),
+  /* 1125 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1132 E> */ B(StoreICStrict), R(0), U8(0), U8(157),
+  /* 1139 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1146 E> */ B(StoreICStrict), R(0), U8(0), U8(159),
+  /* 1153 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1160 E> */ B(StoreICStrict), R(0), U8(0), U8(161),
+  /* 1167 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1174 E> */ B(StoreICStrict), R(0), U8(0), U8(163),
+  /* 1181 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1188 E> */ B(StoreICStrict), R(0), U8(0), U8(165),
+  /* 1195 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1202 E> */ B(StoreICStrict), R(0), U8(0), U8(167),
+  /* 1209 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1216 E> */ B(StoreICStrict), R(0), U8(0), U8(169),
+  /* 1223 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1230 E> */ B(StoreICStrict), R(0), U8(0), U8(171),
+  /* 1237 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1244 E> */ B(StoreICStrict), R(0), U8(0), U8(173),
+  /* 1251 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1258 E> */ B(StoreICStrict), R(0), U8(0), U8(175),
+  /* 1265 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1272 E> */ B(StoreICStrict), R(0), U8(0), U8(177),
+  /* 1279 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1286 E> */ B(StoreICStrict), R(0), U8(0), U8(179),
+  /* 1293 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1300 E> */ B(StoreICStrict), R(0), U8(0), U8(181),
+  /* 1307 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1314 E> */ B(StoreICStrict), R(0), U8(0), U8(183),
+  /* 1321 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1328 E> */ B(StoreICStrict), R(0), U8(0), U8(185),
+  /* 1335 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1342 E> */ B(StoreICStrict), R(0), U8(0), U8(187),
+  /* 1349 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1356 E> */ B(StoreICStrict), R(0), U8(0), U8(189),
+  /* 1363 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1370 E> */ B(StoreICStrict), R(0), U8(0), U8(191),
+  /* 1377 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1384 E> */ B(StoreICStrict), R(0), U8(0), U8(193),
+  /* 1391 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1398 E> */ B(StoreICStrict), R(0), U8(0), U8(195),
+  /* 1405 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1412 E> */ B(StoreICStrict), R(0), U8(0), U8(197),
+  /* 1419 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1426 E> */ B(StoreICStrict), R(0), U8(0), U8(199),
+  /* 1433 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1440 E> */ B(StoreICStrict), R(0), U8(0), U8(201),
+  /* 1447 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1454 E> */ B(StoreICStrict), R(0), U8(0), U8(203),
+  /* 1461 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1468 E> */ B(StoreICStrict), R(0), U8(0), U8(205),
+  /* 1475 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1482 E> */ B(StoreICStrict), R(0), U8(0), U8(207),
+  /* 1489 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1496 E> */ B(StoreICStrict), R(0), U8(0), U8(209),
+  /* 1503 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1510 E> */ B(StoreICStrict), R(0), U8(0), U8(211),
+  /* 1517 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1524 E> */ B(StoreICStrict), R(0), U8(0), U8(213),
+  /* 1531 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1538 E> */ B(StoreICStrict), R(0), U8(0), U8(215),
+  /* 1545 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1552 E> */ B(StoreICStrict), R(0), U8(0), U8(217),
+  /* 1559 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1566 E> */ B(StoreICStrict), R(0), U8(0), U8(219),
+  /* 1573 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1580 E> */ B(StoreICStrict), R(0), U8(0), U8(221),
+  /* 1587 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1594 E> */ B(StoreICStrict), R(0), U8(0), U8(223),
+  /* 1601 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1608 E> */ B(StoreICStrict), R(0), U8(0), U8(225),
+  /* 1615 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1622 E> */ B(StoreICStrict), R(0), U8(0), U8(227),
+  /* 1629 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1636 E> */ B(StoreICStrict), R(0), U8(0), U8(229),
+  /* 1643 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1650 E> */ B(StoreICStrict), R(0), U8(0), U8(231),
+  /* 1657 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1664 E> */ B(StoreICStrict), R(0), U8(0), U8(233),
+  /* 1671 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1678 E> */ B(StoreICStrict), R(0), U8(0), U8(235),
+  /* 1685 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1692 E> */ B(StoreICStrict), R(0), U8(0), U8(237),
+  /* 1699 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1706 E> */ B(StoreICStrict), R(0), U8(0), U8(239),
+  /* 1713 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1720 E> */ B(StoreICStrict), R(0), U8(0), U8(241),
+  /* 1727 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1734 E> */ B(StoreICStrict), R(0), U8(0), U8(243),
+  /* 1741 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1748 E> */ B(StoreICStrict), R(0), U8(0), U8(245),
+  /* 1755 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1762 E> */ B(StoreICStrict), R(0), U8(0), U8(247),
+  /* 1769 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1776 E> */ B(StoreICStrict), R(0), U8(0), U8(249),
+  /* 1783 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1790 E> */ B(StoreICStrict), R(0), U8(0), U8(251),
+  /* 1797 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1804 E> */ B(StoreICStrict), R(0), U8(0), U8(253),
+  /* 1811 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(1),
+  /* 1818 E> */ B(StoreICStrict), R(0), U8(0), U8(255),
+  /* 1825 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+                B(LdaSmi), U8(2),
+  /* 1832 E> */ B(Wide), B(StoreICStrict), R16(0), U16(0), U16(257),
+                B(LdaUndefined),
+  /* 1837 S> */ B(Return),
 ]
 constant pool: [
   "name",
@@ -1651,783 +1651,783 @@
 parameter count: 3
 bytecode array length: 1813
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(1),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(3),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(5),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(7),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(9),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(11),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(13),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(15),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(17),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(19),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(21),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(23),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(25),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(27),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(29),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(31),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(33),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(35),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(37),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(39),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(41),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(43),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(45),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(47),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(49),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(51),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(53),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(55),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(57),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(59),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(61),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(63),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(65),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(67),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(69),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(71),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(73),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(75),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(77),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(79),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(81),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(83),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(85),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(87),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(89),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(91),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(93),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(95),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(97),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(99),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(101),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(103),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(105),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(107),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(109),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(111),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(113),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(115),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(117),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(119),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(121),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(123),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(125),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(127),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(129),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(131),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(133),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(135),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(137),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(139),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(141),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(143),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(145),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(147),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(149),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(151),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(153),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(155),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(157),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(159),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(161),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(163),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(165),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(167),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(169),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(171),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(173),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(175),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(177),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(179),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(181),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(183),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(185),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(187),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(189),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(191),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(193),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(195),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(197),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(199),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(201),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(203),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(205),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(207),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(209),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(211),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(213),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(215),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(217),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(219),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(221),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(223),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(225),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(227),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(229),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(231),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(233),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(235),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(237),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(239),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(241),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(243),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(245),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(247),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(249),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(251),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(253),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICSloppy), R(0), R(1), U8(255),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Wide), B(KeyedStoreICSloppy), R16(0), R16(1), U16(257),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   21 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   23 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   26 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(1),
+  /*   33 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   35 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   38 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(3),
+  /*   45 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   47 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   50 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(5),
+  /*   57 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   59 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   62 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(7),
+  /*   69 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   71 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   74 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(9),
+  /*   81 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   83 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   86 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(11),
+  /*   93 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   95 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   98 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(13),
+  /*  105 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  107 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  110 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(15),
+  /*  117 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  119 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  122 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(17),
+  /*  129 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  131 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  134 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(19),
+  /*  141 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  143 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  146 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(21),
+  /*  153 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  155 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  158 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(23),
+  /*  165 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  167 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  170 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(25),
+  /*  177 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  179 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  182 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(27),
+  /*  189 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  191 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  194 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(29),
+  /*  201 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  203 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  206 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(31),
+  /*  213 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  215 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  218 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(33),
+  /*  225 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  227 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  230 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(35),
+  /*  237 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  239 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  242 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(37),
+  /*  249 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  251 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  254 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(39),
+  /*  261 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  263 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  266 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(41),
+  /*  273 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  275 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  278 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(43),
+  /*  285 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  287 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  290 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(45),
+  /*  297 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  299 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  302 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(47),
+  /*  309 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  311 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  314 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(49),
+  /*  321 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  323 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  326 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(51),
+  /*  333 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  335 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  338 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(53),
+  /*  345 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  347 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  350 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(55),
+  /*  357 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  359 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  362 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(57),
+  /*  369 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  371 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  374 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(59),
+  /*  381 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  383 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  386 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(61),
+  /*  393 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  395 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  398 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(63),
+  /*  405 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  407 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  410 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(65),
+  /*  417 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  419 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  422 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(67),
+  /*  429 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  431 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  434 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(69),
+  /*  441 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  443 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  446 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(71),
+  /*  453 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  455 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  458 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(73),
+  /*  465 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  467 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  470 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(75),
+  /*  477 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  479 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  482 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(77),
+  /*  489 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  491 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  494 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(79),
+  /*  501 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  503 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  506 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(81),
+  /*  513 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  515 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  518 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(83),
+  /*  525 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  527 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  530 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(85),
+  /*  537 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  539 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  542 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(87),
+  /*  549 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  551 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  554 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(89),
+  /*  561 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  563 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  566 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(91),
+  /*  573 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  575 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  578 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(93),
+  /*  585 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  587 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  590 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(95),
+  /*  597 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  599 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  602 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(97),
+  /*  609 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  611 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  614 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(99),
+  /*  621 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  623 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  626 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(101),
+  /*  633 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  635 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  638 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(103),
+  /*  645 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  647 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  650 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(105),
+  /*  657 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  659 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  662 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(107),
+  /*  669 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  671 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  674 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(109),
+  /*  681 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  683 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  686 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(111),
+  /*  693 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  695 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  698 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(113),
+  /*  705 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  707 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  710 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(115),
+  /*  717 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  719 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  722 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(117),
+  /*  729 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  731 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  734 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(119),
+  /*  741 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  743 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  746 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(121),
+  /*  753 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  755 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  758 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(123),
+  /*  765 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  767 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  770 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(125),
+  /*  777 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  779 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  782 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(127),
+  /*  789 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  791 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  794 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(129),
+  /*  801 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  803 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  806 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(131),
+  /*  813 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  815 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  818 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(133),
+  /*  825 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  827 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  830 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(135),
+  /*  837 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  839 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  842 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(137),
+  /*  849 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  851 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  854 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(139),
+  /*  861 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  863 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  866 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(141),
+  /*  873 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  875 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  878 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(143),
+  /*  885 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  887 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  890 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(145),
+  /*  897 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  899 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  902 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(147),
+  /*  909 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  911 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  914 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(149),
+  /*  921 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  923 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  926 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(151),
+  /*  933 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  935 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  938 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(153),
+  /*  945 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  947 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  950 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(155),
+  /*  957 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  959 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  962 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(157),
+  /*  969 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  971 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  974 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(159),
+  /*  981 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  983 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  986 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(161),
+  /*  993 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  995 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  998 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(163),
+  /* 1005 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1007 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1010 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(165),
+  /* 1017 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1019 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1022 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(167),
+  /* 1029 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1031 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1034 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(169),
+  /* 1041 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1043 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1046 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(171),
+  /* 1053 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1055 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1058 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(173),
+  /* 1065 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1067 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1070 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(175),
+  /* 1077 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1079 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1082 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(177),
+  /* 1089 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1091 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1094 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(179),
+  /* 1101 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1103 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1106 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(181),
+  /* 1113 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1115 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1118 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(183),
+  /* 1125 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1127 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1130 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(185),
+  /* 1137 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1139 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1142 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(187),
+  /* 1149 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1151 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1154 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(189),
+  /* 1161 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1163 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1166 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(191),
+  /* 1173 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1175 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1178 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(193),
+  /* 1185 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1187 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1190 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(195),
+  /* 1197 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1199 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1202 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(197),
+  /* 1209 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1211 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1214 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(199),
+  /* 1221 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1223 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1226 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(201),
+  /* 1233 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1235 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1238 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(203),
+  /* 1245 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1247 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1250 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(205),
+  /* 1257 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1259 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1262 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(207),
+  /* 1269 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1271 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1274 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(209),
+  /* 1281 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1283 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1286 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(211),
+  /* 1293 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1295 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1298 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(213),
+  /* 1305 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1307 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1310 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(215),
+  /* 1317 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1319 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1322 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(217),
+  /* 1329 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1331 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1334 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(219),
+  /* 1341 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1343 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1346 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(221),
+  /* 1353 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1355 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1358 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(223),
+  /* 1365 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1367 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1370 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(225),
+  /* 1377 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1379 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1382 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(227),
+  /* 1389 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1391 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1394 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(229),
+  /* 1401 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1403 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1406 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(231),
+  /* 1413 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1415 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1418 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(233),
+  /* 1425 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1427 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1430 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(235),
+  /* 1437 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1439 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1442 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(237),
+  /* 1449 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1451 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1454 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(239),
+  /* 1461 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1463 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1466 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(241),
+  /* 1473 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1475 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1478 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(243),
+  /* 1485 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1487 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1490 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(245),
+  /* 1497 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1499 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1502 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(247),
+  /* 1509 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1511 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1514 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(249),
+  /* 1521 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1523 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1526 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(251),
+  /* 1533 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1535 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1538 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(253),
+  /* 1545 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1547 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1550 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(255),
+  /* 1557 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1559 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /* 1562 E> */ B(Wide), B(KeyedStoreICSloppy), R16(0), R16(1), U16(257),
+                B(LdaUndefined),
+  /* 1567 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -2574,783 +2574,783 @@
 parameter count: 3
 bytecode array length: 1813
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(1),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(3),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(5),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(7),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(9),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(11),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(13),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(15),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(17),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(19),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(21),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(23),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(25),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(27),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(29),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(31),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(33),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(35),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(37),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(39),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(41),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(43),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(45),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(47),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(49),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(51),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(53),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(55),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(57),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(59),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(61),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(63),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(65),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(67),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(69),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(71),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(73),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(75),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(77),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(79),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(81),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(83),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(85),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(87),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(89),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(91),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(93),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(95),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(97),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(99),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(101),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(103),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(105),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(107),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(109),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(111),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(113),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(115),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(117),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(119),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(121),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(123),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(125),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(127),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(129),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(131),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(133),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(135),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(137),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(139),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(141),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(143),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(145),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(147),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(149),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(151),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(153),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(155),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(157),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(159),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(161),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(163),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(165),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(167),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(169),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(171),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(173),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(175),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(177),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(179),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(181),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(183),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(185),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(187),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(189),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(191),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(193),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(195),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(197),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(199),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(201),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(203),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(205),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(207),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(209),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(211),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(213),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(215),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(217),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(219),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(221),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(223),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(225),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(227),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(229),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(231),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(233),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(235),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(237),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(239),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(241),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(243),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(245),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(247),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(249),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(251),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(253),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(KeyedStoreICStrict), R(0), R(1), U8(255),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(Ldar), R(arg1),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Wide), B(KeyedStoreICStrict), R16(0), R16(1), U16(257),
-  B(LdaUndefined),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   37 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   39 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   42 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(1),
+  /*   49 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   51 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   54 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(3),
+  /*   61 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   63 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   66 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(5),
+  /*   73 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   75 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   78 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(7),
+  /*   85 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   87 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*   90 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(9),
+  /*   97 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   99 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  102 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(11),
+  /*  109 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  111 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  114 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(13),
+  /*  121 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  123 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  126 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(15),
+  /*  133 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  135 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  138 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(17),
+  /*  145 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  147 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  150 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(19),
+  /*  157 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  159 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  162 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(21),
+  /*  169 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  171 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  174 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(23),
+  /*  181 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  183 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  186 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(25),
+  /*  193 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  195 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  198 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(27),
+  /*  205 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  207 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  210 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(29),
+  /*  217 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  219 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  222 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(31),
+  /*  229 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  231 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  234 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(33),
+  /*  241 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  243 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  246 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(35),
+  /*  253 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  255 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  258 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(37),
+  /*  265 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  267 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  270 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(39),
+  /*  277 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  279 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  282 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(41),
+  /*  289 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  291 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  294 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(43),
+  /*  301 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  303 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  306 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(45),
+  /*  313 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  315 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  318 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(47),
+  /*  325 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  327 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  330 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(49),
+  /*  337 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  339 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  342 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(51),
+  /*  349 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  351 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  354 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(53),
+  /*  361 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  363 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  366 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(55),
+  /*  373 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  375 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  378 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(57),
+  /*  385 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  387 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  390 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(59),
+  /*  397 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  399 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  402 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(61),
+  /*  409 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  411 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  414 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(63),
+  /*  421 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  423 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  426 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(65),
+  /*  433 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  435 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  438 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(67),
+  /*  445 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  447 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  450 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(69),
+  /*  457 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  459 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  462 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(71),
+  /*  469 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  471 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  474 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(73),
+  /*  481 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  483 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  486 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(75),
+  /*  493 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  495 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  498 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(77),
+  /*  505 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  507 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  510 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(79),
+  /*  517 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  519 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  522 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(81),
+  /*  529 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  531 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  534 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(83),
+  /*  541 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  543 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  546 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(85),
+  /*  553 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  555 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  558 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(87),
+  /*  565 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  567 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  570 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(89),
+  /*  577 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  579 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  582 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(91),
+  /*  589 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  591 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  594 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(93),
+  /*  601 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  603 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  606 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(95),
+  /*  613 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  615 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  618 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(97),
+  /*  625 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  627 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  630 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(99),
+  /*  637 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  639 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  642 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(101),
+  /*  649 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  651 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  654 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(103),
+  /*  661 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  663 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  666 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(105),
+  /*  673 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  675 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  678 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(107),
+  /*  685 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  687 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  690 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(109),
+  /*  697 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  699 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  702 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(111),
+  /*  709 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  711 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  714 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(113),
+  /*  721 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  723 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  726 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(115),
+  /*  733 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  735 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  738 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(117),
+  /*  745 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  747 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  750 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(119),
+  /*  757 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  759 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  762 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(121),
+  /*  769 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  771 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  774 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(123),
+  /*  781 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  783 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  786 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(125),
+  /*  793 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  795 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  798 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(127),
+  /*  805 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  807 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  810 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(129),
+  /*  817 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  819 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  822 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(131),
+  /*  829 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  831 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  834 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(133),
+  /*  841 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  843 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  846 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(135),
+  /*  853 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  855 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  858 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(137),
+  /*  865 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  867 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  870 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(139),
+  /*  877 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  879 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  882 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(141),
+  /*  889 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  891 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  894 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(143),
+  /*  901 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  903 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  906 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(145),
+  /*  913 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  915 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  918 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(147),
+  /*  925 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  927 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  930 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(149),
+  /*  937 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  939 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  942 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(151),
+  /*  949 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  951 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  954 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(153),
+  /*  961 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  963 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  966 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(155),
+  /*  973 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  975 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  978 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(157),
+  /*  985 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  987 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /*  990 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(159),
+  /*  997 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  999 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1002 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(161),
+  /* 1009 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1011 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1014 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(163),
+  /* 1021 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1023 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1026 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(165),
+  /* 1033 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1035 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1038 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(167),
+  /* 1045 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1047 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1050 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(169),
+  /* 1057 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1059 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1062 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(171),
+  /* 1069 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1071 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1074 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(173),
+  /* 1081 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1083 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1086 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(175),
+  /* 1093 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1095 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1098 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(177),
+  /* 1105 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1107 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1110 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(179),
+  /* 1117 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1119 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1122 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(181),
+  /* 1129 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1131 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1134 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(183),
+  /* 1141 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1143 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1146 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(185),
+  /* 1153 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1155 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1158 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(187),
+  /* 1165 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1167 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1170 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(189),
+  /* 1177 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1179 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1182 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(191),
+  /* 1189 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1191 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1194 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(193),
+  /* 1201 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1203 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1206 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(195),
+  /* 1213 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1215 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1218 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(197),
+  /* 1225 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1227 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1230 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(199),
+  /* 1237 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1239 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1242 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(201),
+  /* 1249 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1251 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1254 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(203),
+  /* 1261 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1263 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1266 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(205),
+  /* 1273 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1275 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1278 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(207),
+  /* 1285 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1287 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1290 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(209),
+  /* 1297 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1299 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1302 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(211),
+  /* 1309 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1311 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1314 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(213),
+  /* 1321 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1323 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1326 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(215),
+  /* 1333 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1335 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1338 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(217),
+  /* 1345 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1347 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1350 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(219),
+  /* 1357 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1359 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1362 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(221),
+  /* 1369 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1371 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1374 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(223),
+  /* 1381 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1383 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1386 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(225),
+  /* 1393 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1395 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1398 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(227),
+  /* 1405 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1407 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1410 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(229),
+  /* 1417 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1419 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1422 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(231),
+  /* 1429 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1431 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1434 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(233),
+  /* 1441 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1443 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1446 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(235),
+  /* 1453 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1455 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1458 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(237),
+  /* 1465 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1467 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1470 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(239),
+  /* 1477 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1479 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1482 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(241),
+  /* 1489 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1491 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1494 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(243),
+  /* 1501 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1503 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1506 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(245),
+  /* 1513 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1515 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1518 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(247),
+  /* 1525 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1527 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1530 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(249),
+  /* 1537 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1539 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1542 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(251),
+  /* 1549 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1551 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1554 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(253),
+  /* 1561 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1563 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(1),
+  /* 1566 E> */ B(KeyedStoreICStrict), R(0), R(1), U8(255),
+  /* 1573 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1575 E> */ B(Ldar), R(arg1),
+                B(Star), R(1),
+                B(LdaSmi), U8(2),
+  /* 1578 E> */ B(Wide), B(KeyedStoreICStrict), R16(0), R16(1), U16(257),
+                B(LdaUndefined),
+  /* 1583 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden b/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden
index adffb75..01ae49c 100644
--- a/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 6
 bytecodes: [
-  B(StackCheck),
-  B(CreateRegExpLiteral), U8(0), U8(0), U8(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateRegExpLiteral), U8(0), U8(0), U8(0),
+  /*   49 S> */ B(Return),
 ]
 constant pool: [
   "ab+d",
@@ -33,9 +33,9 @@
 parameter count: 1
 bytecode array length: 6
 bytecodes: [
-  B(StackCheck),
-  B(CreateRegExpLiteral), U8(0), U8(0), U8(2),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateRegExpLiteral), U8(0), U8(0), U8(2),
+  /*   58 S> */ B(Return),
 ]
 constant pool: [
   "(\x5cw+)\x5cs(\x5cw+)",
@@ -51,15 +51,15 @@
 parameter count: 1
 bytecode array length: 23
 bytecodes: [
-  B(StackCheck),
-  B(CreateRegExpLiteral), U8(0), U8(0), U8(0),
-  B(Star), R(1),
-  B(LoadIC), R(1), U8(1), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(2),
-  B(Call), R(0), R(1), U8(2), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateRegExpLiteral), U8(0), U8(0), U8(0),
+                B(Star), R(1),
+  /*   47 E> */ B(LoadIC), R(1), U8(1), U8(3),
+                B(Star), R(0),
+                B(LdaConstant), U8(2),
+                B(Star), R(2),
+  /*   48 E> */ B(Call), R(0), R(1), U8(2), U8(1),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
   "ab+d",
diff --git a/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden b/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden
index d6fb160..a8345a6 100644
--- a/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden
+++ b/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden
@@ -272,521 +272,521 @@
 parameter count: 1
 bytecode array length: 1033
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Star), R(0),
-  B(LdaConstant), U8(2),
-  B(Star), R(0),
-  B(LdaConstant), U8(3),
-  B(Star), R(0),
-  B(LdaConstant), U8(4),
-  B(Star), R(0),
-  B(LdaConstant), U8(5),
-  B(Star), R(0),
-  B(LdaConstant), U8(6),
-  B(Star), R(0),
-  B(LdaConstant), U8(7),
-  B(Star), R(0),
-  B(LdaConstant), U8(8),
-  B(Star), R(0),
-  B(LdaConstant), U8(9),
-  B(Star), R(0),
-  B(LdaConstant), U8(10),
-  B(Star), R(0),
-  B(LdaConstant), U8(11),
-  B(Star), R(0),
-  B(LdaConstant), U8(12),
-  B(Star), R(0),
-  B(LdaConstant), U8(13),
-  B(Star), R(0),
-  B(LdaConstant), U8(14),
-  B(Star), R(0),
-  B(LdaConstant), U8(15),
-  B(Star), R(0),
-  B(LdaConstant), U8(16),
-  B(Star), R(0),
-  B(LdaConstant), U8(17),
-  B(Star), R(0),
-  B(LdaConstant), U8(18),
-  B(Star), R(0),
-  B(LdaConstant), U8(19),
-  B(Star), R(0),
-  B(LdaConstant), U8(20),
-  B(Star), R(0),
-  B(LdaConstant), U8(21),
-  B(Star), R(0),
-  B(LdaConstant), U8(22),
-  B(Star), R(0),
-  B(LdaConstant), U8(23),
-  B(Star), R(0),
-  B(LdaConstant), U8(24),
-  B(Star), R(0),
-  B(LdaConstant), U8(25),
-  B(Star), R(0),
-  B(LdaConstant), U8(26),
-  B(Star), R(0),
-  B(LdaConstant), U8(27),
-  B(Star), R(0),
-  B(LdaConstant), U8(28),
-  B(Star), R(0),
-  B(LdaConstant), U8(29),
-  B(Star), R(0),
-  B(LdaConstant), U8(30),
-  B(Star), R(0),
-  B(LdaConstant), U8(31),
-  B(Star), R(0),
-  B(LdaConstant), U8(32),
-  B(Star), R(0),
-  B(LdaConstant), U8(33),
-  B(Star), R(0),
-  B(LdaConstant), U8(34),
-  B(Star), R(0),
-  B(LdaConstant), U8(35),
-  B(Star), R(0),
-  B(LdaConstant), U8(36),
-  B(Star), R(0),
-  B(LdaConstant), U8(37),
-  B(Star), R(0),
-  B(LdaConstant), U8(38),
-  B(Star), R(0),
-  B(LdaConstant), U8(39),
-  B(Star), R(0),
-  B(LdaConstant), U8(40),
-  B(Star), R(0),
-  B(LdaConstant), U8(41),
-  B(Star), R(0),
-  B(LdaConstant), U8(42),
-  B(Star), R(0),
-  B(LdaConstant), U8(43),
-  B(Star), R(0),
-  B(LdaConstant), U8(44),
-  B(Star), R(0),
-  B(LdaConstant), U8(45),
-  B(Star), R(0),
-  B(LdaConstant), U8(46),
-  B(Star), R(0),
-  B(LdaConstant), U8(47),
-  B(Star), R(0),
-  B(LdaConstant), U8(48),
-  B(Star), R(0),
-  B(LdaConstant), U8(49),
-  B(Star), R(0),
-  B(LdaConstant), U8(50),
-  B(Star), R(0),
-  B(LdaConstant), U8(51),
-  B(Star), R(0),
-  B(LdaConstant), U8(52),
-  B(Star), R(0),
-  B(LdaConstant), U8(53),
-  B(Star), R(0),
-  B(LdaConstant), U8(54),
-  B(Star), R(0),
-  B(LdaConstant), U8(55),
-  B(Star), R(0),
-  B(LdaConstant), U8(56),
-  B(Star), R(0),
-  B(LdaConstant), U8(57),
-  B(Star), R(0),
-  B(LdaConstant), U8(58),
-  B(Star), R(0),
-  B(LdaConstant), U8(59),
-  B(Star), R(0),
-  B(LdaConstant), U8(60),
-  B(Star), R(0),
-  B(LdaConstant), U8(61),
-  B(Star), R(0),
-  B(LdaConstant), U8(62),
-  B(Star), R(0),
-  B(LdaConstant), U8(63),
-  B(Star), R(0),
-  B(LdaConstant), U8(64),
-  B(Star), R(0),
-  B(LdaConstant), U8(65),
-  B(Star), R(0),
-  B(LdaConstant), U8(66),
-  B(Star), R(0),
-  B(LdaConstant), U8(67),
-  B(Star), R(0),
-  B(LdaConstant), U8(68),
-  B(Star), R(0),
-  B(LdaConstant), U8(69),
-  B(Star), R(0),
-  B(LdaConstant), U8(70),
-  B(Star), R(0),
-  B(LdaConstant), U8(71),
-  B(Star), R(0),
-  B(LdaConstant), U8(72),
-  B(Star), R(0),
-  B(LdaConstant), U8(73),
-  B(Star), R(0),
-  B(LdaConstant), U8(74),
-  B(Star), R(0),
-  B(LdaConstant), U8(75),
-  B(Star), R(0),
-  B(LdaConstant), U8(76),
-  B(Star), R(0),
-  B(LdaConstant), U8(77),
-  B(Star), R(0),
-  B(LdaConstant), U8(78),
-  B(Star), R(0),
-  B(LdaConstant), U8(79),
-  B(Star), R(0),
-  B(LdaConstant), U8(80),
-  B(Star), R(0),
-  B(LdaConstant), U8(81),
-  B(Star), R(0),
-  B(LdaConstant), U8(82),
-  B(Star), R(0),
-  B(LdaConstant), U8(83),
-  B(Star), R(0),
-  B(LdaConstant), U8(84),
-  B(Star), R(0),
-  B(LdaConstant), U8(85),
-  B(Star), R(0),
-  B(LdaConstant), U8(86),
-  B(Star), R(0),
-  B(LdaConstant), U8(87),
-  B(Star), R(0),
-  B(LdaConstant), U8(88),
-  B(Star), R(0),
-  B(LdaConstant), U8(89),
-  B(Star), R(0),
-  B(LdaConstant), U8(90),
-  B(Star), R(0),
-  B(LdaConstant), U8(91),
-  B(Star), R(0),
-  B(LdaConstant), U8(92),
-  B(Star), R(0),
-  B(LdaConstant), U8(93),
-  B(Star), R(0),
-  B(LdaConstant), U8(94),
-  B(Star), R(0),
-  B(LdaConstant), U8(95),
-  B(Star), R(0),
-  B(LdaConstant), U8(96),
-  B(Star), R(0),
-  B(LdaConstant), U8(97),
-  B(Star), R(0),
-  B(LdaConstant), U8(98),
-  B(Star), R(0),
-  B(LdaConstant), U8(99),
-  B(Star), R(0),
-  B(LdaConstant), U8(100),
-  B(Star), R(0),
-  B(LdaConstant), U8(101),
-  B(Star), R(0),
-  B(LdaConstant), U8(102),
-  B(Star), R(0),
-  B(LdaConstant), U8(103),
-  B(Star), R(0),
-  B(LdaConstant), U8(104),
-  B(Star), R(0),
-  B(LdaConstant), U8(105),
-  B(Star), R(0),
-  B(LdaConstant), U8(106),
-  B(Star), R(0),
-  B(LdaConstant), U8(107),
-  B(Star), R(0),
-  B(LdaConstant), U8(108),
-  B(Star), R(0),
-  B(LdaConstant), U8(109),
-  B(Star), R(0),
-  B(LdaConstant), U8(110),
-  B(Star), R(0),
-  B(LdaConstant), U8(111),
-  B(Star), R(0),
-  B(LdaConstant), U8(112),
-  B(Star), R(0),
-  B(LdaConstant), U8(113),
-  B(Star), R(0),
-  B(LdaConstant), U8(114),
-  B(Star), R(0),
-  B(LdaConstant), U8(115),
-  B(Star), R(0),
-  B(LdaConstant), U8(116),
-  B(Star), R(0),
-  B(LdaConstant), U8(117),
-  B(Star), R(0),
-  B(LdaConstant), U8(118),
-  B(Star), R(0),
-  B(LdaConstant), U8(119),
-  B(Star), R(0),
-  B(LdaConstant), U8(120),
-  B(Star), R(0),
-  B(LdaConstant), U8(121),
-  B(Star), R(0),
-  B(LdaConstant), U8(122),
-  B(Star), R(0),
-  B(LdaConstant), U8(123),
-  B(Star), R(0),
-  B(LdaConstant), U8(124),
-  B(Star), R(0),
-  B(LdaConstant), U8(125),
-  B(Star), R(0),
-  B(LdaConstant), U8(126),
-  B(Star), R(0),
-  B(LdaConstant), U8(127),
-  B(Star), R(0),
-  B(LdaConstant), U8(128),
-  B(Star), R(0),
-  B(LdaConstant), U8(129),
-  B(Star), R(0),
-  B(LdaConstant), U8(130),
-  B(Star), R(0),
-  B(LdaConstant), U8(131),
-  B(Star), R(0),
-  B(LdaConstant), U8(132),
-  B(Star), R(0),
-  B(LdaConstant), U8(133),
-  B(Star), R(0),
-  B(LdaConstant), U8(134),
-  B(Star), R(0),
-  B(LdaConstant), U8(135),
-  B(Star), R(0),
-  B(LdaConstant), U8(136),
-  B(Star), R(0),
-  B(LdaConstant), U8(137),
-  B(Star), R(0),
-  B(LdaConstant), U8(138),
-  B(Star), R(0),
-  B(LdaConstant), U8(139),
-  B(Star), R(0),
-  B(LdaConstant), U8(140),
-  B(Star), R(0),
-  B(LdaConstant), U8(141),
-  B(Star), R(0),
-  B(LdaConstant), U8(142),
-  B(Star), R(0),
-  B(LdaConstant), U8(143),
-  B(Star), R(0),
-  B(LdaConstant), U8(144),
-  B(Star), R(0),
-  B(LdaConstant), U8(145),
-  B(Star), R(0),
-  B(LdaConstant), U8(146),
-  B(Star), R(0),
-  B(LdaConstant), U8(147),
-  B(Star), R(0),
-  B(LdaConstant), U8(148),
-  B(Star), R(0),
-  B(LdaConstant), U8(149),
-  B(Star), R(0),
-  B(LdaConstant), U8(150),
-  B(Star), R(0),
-  B(LdaConstant), U8(151),
-  B(Star), R(0),
-  B(LdaConstant), U8(152),
-  B(Star), R(0),
-  B(LdaConstant), U8(153),
-  B(Star), R(0),
-  B(LdaConstant), U8(154),
-  B(Star), R(0),
-  B(LdaConstant), U8(155),
-  B(Star), R(0),
-  B(LdaConstant), U8(156),
-  B(Star), R(0),
-  B(LdaConstant), U8(157),
-  B(Star), R(0),
-  B(LdaConstant), U8(158),
-  B(Star), R(0),
-  B(LdaConstant), U8(159),
-  B(Star), R(0),
-  B(LdaConstant), U8(160),
-  B(Star), R(0),
-  B(LdaConstant), U8(161),
-  B(Star), R(0),
-  B(LdaConstant), U8(162),
-  B(Star), R(0),
-  B(LdaConstant), U8(163),
-  B(Star), R(0),
-  B(LdaConstant), U8(164),
-  B(Star), R(0),
-  B(LdaConstant), U8(165),
-  B(Star), R(0),
-  B(LdaConstant), U8(166),
-  B(Star), R(0),
-  B(LdaConstant), U8(167),
-  B(Star), R(0),
-  B(LdaConstant), U8(168),
-  B(Star), R(0),
-  B(LdaConstant), U8(169),
-  B(Star), R(0),
-  B(LdaConstant), U8(170),
-  B(Star), R(0),
-  B(LdaConstant), U8(171),
-  B(Star), R(0),
-  B(LdaConstant), U8(172),
-  B(Star), R(0),
-  B(LdaConstant), U8(173),
-  B(Star), R(0),
-  B(LdaConstant), U8(174),
-  B(Star), R(0),
-  B(LdaConstant), U8(175),
-  B(Star), R(0),
-  B(LdaConstant), U8(176),
-  B(Star), R(0),
-  B(LdaConstant), U8(177),
-  B(Star), R(0),
-  B(LdaConstant), U8(178),
-  B(Star), R(0),
-  B(LdaConstant), U8(179),
-  B(Star), R(0),
-  B(LdaConstant), U8(180),
-  B(Star), R(0),
-  B(LdaConstant), U8(181),
-  B(Star), R(0),
-  B(LdaConstant), U8(182),
-  B(Star), R(0),
-  B(LdaConstant), U8(183),
-  B(Star), R(0),
-  B(LdaConstant), U8(184),
-  B(Star), R(0),
-  B(LdaConstant), U8(185),
-  B(Star), R(0),
-  B(LdaConstant), U8(186),
-  B(Star), R(0),
-  B(LdaConstant), U8(187),
-  B(Star), R(0),
-  B(LdaConstant), U8(188),
-  B(Star), R(0),
-  B(LdaConstant), U8(189),
-  B(Star), R(0),
-  B(LdaConstant), U8(190),
-  B(Star), R(0),
-  B(LdaConstant), U8(191),
-  B(Star), R(0),
-  B(LdaConstant), U8(192),
-  B(Star), R(0),
-  B(LdaConstant), U8(193),
-  B(Star), R(0),
-  B(LdaConstant), U8(194),
-  B(Star), R(0),
-  B(LdaConstant), U8(195),
-  B(Star), R(0),
-  B(LdaConstant), U8(196),
-  B(Star), R(0),
-  B(LdaConstant), U8(197),
-  B(Star), R(0),
-  B(LdaConstant), U8(198),
-  B(Star), R(0),
-  B(LdaConstant), U8(199),
-  B(Star), R(0),
-  B(LdaConstant), U8(200),
-  B(Star), R(0),
-  B(LdaConstant), U8(201),
-  B(Star), R(0),
-  B(LdaConstant), U8(202),
-  B(Star), R(0),
-  B(LdaConstant), U8(203),
-  B(Star), R(0),
-  B(LdaConstant), U8(204),
-  B(Star), R(0),
-  B(LdaConstant), U8(205),
-  B(Star), R(0),
-  B(LdaConstant), U8(206),
-  B(Star), R(0),
-  B(LdaConstant), U8(207),
-  B(Star), R(0),
-  B(LdaConstant), U8(208),
-  B(Star), R(0),
-  B(LdaConstant), U8(209),
-  B(Star), R(0),
-  B(LdaConstant), U8(210),
-  B(Star), R(0),
-  B(LdaConstant), U8(211),
-  B(Star), R(0),
-  B(LdaConstant), U8(212),
-  B(Star), R(0),
-  B(LdaConstant), U8(213),
-  B(Star), R(0),
-  B(LdaConstant), U8(214),
-  B(Star), R(0),
-  B(LdaConstant), U8(215),
-  B(Star), R(0),
-  B(LdaConstant), U8(216),
-  B(Star), R(0),
-  B(LdaConstant), U8(217),
-  B(Star), R(0),
-  B(LdaConstant), U8(218),
-  B(Star), R(0),
-  B(LdaConstant), U8(219),
-  B(Star), R(0),
-  B(LdaConstant), U8(220),
-  B(Star), R(0),
-  B(LdaConstant), U8(221),
-  B(Star), R(0),
-  B(LdaConstant), U8(222),
-  B(Star), R(0),
-  B(LdaConstant), U8(223),
-  B(Star), R(0),
-  B(LdaConstant), U8(224),
-  B(Star), R(0),
-  B(LdaConstant), U8(225),
-  B(Star), R(0),
-  B(LdaConstant), U8(226),
-  B(Star), R(0),
-  B(LdaConstant), U8(227),
-  B(Star), R(0),
-  B(LdaConstant), U8(228),
-  B(Star), R(0),
-  B(LdaConstant), U8(229),
-  B(Star), R(0),
-  B(LdaConstant), U8(230),
-  B(Star), R(0),
-  B(LdaConstant), U8(231),
-  B(Star), R(0),
-  B(LdaConstant), U8(232),
-  B(Star), R(0),
-  B(LdaConstant), U8(233),
-  B(Star), R(0),
-  B(LdaConstant), U8(234),
-  B(Star), R(0),
-  B(LdaConstant), U8(235),
-  B(Star), R(0),
-  B(LdaConstant), U8(236),
-  B(Star), R(0),
-  B(LdaConstant), U8(237),
-  B(Star), R(0),
-  B(LdaConstant), U8(238),
-  B(Star), R(0),
-  B(LdaConstant), U8(239),
-  B(Star), R(0),
-  B(LdaConstant), U8(240),
-  B(Star), R(0),
-  B(LdaConstant), U8(241),
-  B(Star), R(0),
-  B(LdaConstant), U8(242),
-  B(Star), R(0),
-  B(LdaConstant), U8(243),
-  B(Star), R(0),
-  B(LdaConstant), U8(244),
-  B(Star), R(0),
-  B(LdaConstant), U8(245),
-  B(Star), R(0),
-  B(LdaConstant), U8(246),
-  B(Star), R(0),
-  B(LdaConstant), U8(247),
-  B(Star), R(0),
-  B(LdaConstant), U8(248),
-  B(Star), R(0),
-  B(LdaConstant), U8(249),
-  B(Star), R(0),
-  B(LdaConstant), U8(250),
-  B(Star), R(0),
-  B(LdaConstant), U8(251),
-  B(Star), R(0),
-  B(LdaConstant), U8(252),
-  B(Star), R(0),
-  B(LdaConstant), U8(253),
-  B(Star), R(0),
-  B(LdaConstant), U8(254),
-  B(Star), R(0),
-  B(LdaConstant), U8(255),
-  B(Star), R(0),
-  B(Wide), B(CreateRegExpLiteral), U16(256), U16(0), U8(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   41 S> */ B(LdaConstant), U8(0),
+  /*   43 E> */ B(Star), R(0),
+  /*   51 S> */ B(LdaConstant), U8(1),
+  /*   53 E> */ B(Star), R(0),
+  /*   61 S> */ B(LdaConstant), U8(2),
+  /*   63 E> */ B(Star), R(0),
+  /*   71 S> */ B(LdaConstant), U8(3),
+  /*   73 E> */ B(Star), R(0),
+  /*   81 S> */ B(LdaConstant), U8(4),
+  /*   83 E> */ B(Star), R(0),
+  /*   91 S> */ B(LdaConstant), U8(5),
+  /*   93 E> */ B(Star), R(0),
+  /*  101 S> */ B(LdaConstant), U8(6),
+  /*  103 E> */ B(Star), R(0),
+  /*  111 S> */ B(LdaConstant), U8(7),
+  /*  113 E> */ B(Star), R(0),
+  /*  121 S> */ B(LdaConstant), U8(8),
+  /*  123 E> */ B(Star), R(0),
+  /*  131 S> */ B(LdaConstant), U8(9),
+  /*  133 E> */ B(Star), R(0),
+  /*  141 S> */ B(LdaConstant), U8(10),
+  /*  143 E> */ B(Star), R(0),
+  /*  151 S> */ B(LdaConstant), U8(11),
+  /*  153 E> */ B(Star), R(0),
+  /*  161 S> */ B(LdaConstant), U8(12),
+  /*  163 E> */ B(Star), R(0),
+  /*  171 S> */ B(LdaConstant), U8(13),
+  /*  173 E> */ B(Star), R(0),
+  /*  181 S> */ B(LdaConstant), U8(14),
+  /*  183 E> */ B(Star), R(0),
+  /*  191 S> */ B(LdaConstant), U8(15),
+  /*  193 E> */ B(Star), R(0),
+  /*  201 S> */ B(LdaConstant), U8(16),
+  /*  203 E> */ B(Star), R(0),
+  /*  211 S> */ B(LdaConstant), U8(17),
+  /*  213 E> */ B(Star), R(0),
+  /*  221 S> */ B(LdaConstant), U8(18),
+  /*  223 E> */ B(Star), R(0),
+  /*  231 S> */ B(LdaConstant), U8(19),
+  /*  233 E> */ B(Star), R(0),
+  /*  241 S> */ B(LdaConstant), U8(20),
+  /*  243 E> */ B(Star), R(0),
+  /*  251 S> */ B(LdaConstant), U8(21),
+  /*  253 E> */ B(Star), R(0),
+  /*  261 S> */ B(LdaConstant), U8(22),
+  /*  263 E> */ B(Star), R(0),
+  /*  271 S> */ B(LdaConstant), U8(23),
+  /*  273 E> */ B(Star), R(0),
+  /*  281 S> */ B(LdaConstant), U8(24),
+  /*  283 E> */ B(Star), R(0),
+  /*  291 S> */ B(LdaConstant), U8(25),
+  /*  293 E> */ B(Star), R(0),
+  /*  301 S> */ B(LdaConstant), U8(26),
+  /*  303 E> */ B(Star), R(0),
+  /*  311 S> */ B(LdaConstant), U8(27),
+  /*  313 E> */ B(Star), R(0),
+  /*  321 S> */ B(LdaConstant), U8(28),
+  /*  323 E> */ B(Star), R(0),
+  /*  331 S> */ B(LdaConstant), U8(29),
+  /*  333 E> */ B(Star), R(0),
+  /*  341 S> */ B(LdaConstant), U8(30),
+  /*  343 E> */ B(Star), R(0),
+  /*  351 S> */ B(LdaConstant), U8(31),
+  /*  353 E> */ B(Star), R(0),
+  /*  361 S> */ B(LdaConstant), U8(32),
+  /*  363 E> */ B(Star), R(0),
+  /*  371 S> */ B(LdaConstant), U8(33),
+  /*  373 E> */ B(Star), R(0),
+  /*  381 S> */ B(LdaConstant), U8(34),
+  /*  383 E> */ B(Star), R(0),
+  /*  391 S> */ B(LdaConstant), U8(35),
+  /*  393 E> */ B(Star), R(0),
+  /*  401 S> */ B(LdaConstant), U8(36),
+  /*  403 E> */ B(Star), R(0),
+  /*  411 S> */ B(LdaConstant), U8(37),
+  /*  413 E> */ B(Star), R(0),
+  /*  421 S> */ B(LdaConstant), U8(38),
+  /*  423 E> */ B(Star), R(0),
+  /*  431 S> */ B(LdaConstant), U8(39),
+  /*  433 E> */ B(Star), R(0),
+  /*  441 S> */ B(LdaConstant), U8(40),
+  /*  443 E> */ B(Star), R(0),
+  /*  451 S> */ B(LdaConstant), U8(41),
+  /*  453 E> */ B(Star), R(0),
+  /*  461 S> */ B(LdaConstant), U8(42),
+  /*  463 E> */ B(Star), R(0),
+  /*  471 S> */ B(LdaConstant), U8(43),
+  /*  473 E> */ B(Star), R(0),
+  /*  481 S> */ B(LdaConstant), U8(44),
+  /*  483 E> */ B(Star), R(0),
+  /*  491 S> */ B(LdaConstant), U8(45),
+  /*  493 E> */ B(Star), R(0),
+  /*  501 S> */ B(LdaConstant), U8(46),
+  /*  503 E> */ B(Star), R(0),
+  /*  511 S> */ B(LdaConstant), U8(47),
+  /*  513 E> */ B(Star), R(0),
+  /*  521 S> */ B(LdaConstant), U8(48),
+  /*  523 E> */ B(Star), R(0),
+  /*  531 S> */ B(LdaConstant), U8(49),
+  /*  533 E> */ B(Star), R(0),
+  /*  541 S> */ B(LdaConstant), U8(50),
+  /*  543 E> */ B(Star), R(0),
+  /*  551 S> */ B(LdaConstant), U8(51),
+  /*  553 E> */ B(Star), R(0),
+  /*  561 S> */ B(LdaConstant), U8(52),
+  /*  563 E> */ B(Star), R(0),
+  /*  571 S> */ B(LdaConstant), U8(53),
+  /*  573 E> */ B(Star), R(0),
+  /*  581 S> */ B(LdaConstant), U8(54),
+  /*  583 E> */ B(Star), R(0),
+  /*  591 S> */ B(LdaConstant), U8(55),
+  /*  593 E> */ B(Star), R(0),
+  /*  601 S> */ B(LdaConstant), U8(56),
+  /*  603 E> */ B(Star), R(0),
+  /*  611 S> */ B(LdaConstant), U8(57),
+  /*  613 E> */ B(Star), R(0),
+  /*  621 S> */ B(LdaConstant), U8(58),
+  /*  623 E> */ B(Star), R(0),
+  /*  631 S> */ B(LdaConstant), U8(59),
+  /*  633 E> */ B(Star), R(0),
+  /*  641 S> */ B(LdaConstant), U8(60),
+  /*  643 E> */ B(Star), R(0),
+  /*  651 S> */ B(LdaConstant), U8(61),
+  /*  653 E> */ B(Star), R(0),
+  /*  661 S> */ B(LdaConstant), U8(62),
+  /*  663 E> */ B(Star), R(0),
+  /*  671 S> */ B(LdaConstant), U8(63),
+  /*  673 E> */ B(Star), R(0),
+  /*  681 S> */ B(LdaConstant), U8(64),
+  /*  683 E> */ B(Star), R(0),
+  /*  691 S> */ B(LdaConstant), U8(65),
+  /*  693 E> */ B(Star), R(0),
+  /*  701 S> */ B(LdaConstant), U8(66),
+  /*  703 E> */ B(Star), R(0),
+  /*  711 S> */ B(LdaConstant), U8(67),
+  /*  713 E> */ B(Star), R(0),
+  /*  721 S> */ B(LdaConstant), U8(68),
+  /*  723 E> */ B(Star), R(0),
+  /*  731 S> */ B(LdaConstant), U8(69),
+  /*  733 E> */ B(Star), R(0),
+  /*  741 S> */ B(LdaConstant), U8(70),
+  /*  743 E> */ B(Star), R(0),
+  /*  751 S> */ B(LdaConstant), U8(71),
+  /*  753 E> */ B(Star), R(0),
+  /*  761 S> */ B(LdaConstant), U8(72),
+  /*  763 E> */ B(Star), R(0),
+  /*  771 S> */ B(LdaConstant), U8(73),
+  /*  773 E> */ B(Star), R(0),
+  /*  781 S> */ B(LdaConstant), U8(74),
+  /*  783 E> */ B(Star), R(0),
+  /*  791 S> */ B(LdaConstant), U8(75),
+  /*  793 E> */ B(Star), R(0),
+  /*  801 S> */ B(LdaConstant), U8(76),
+  /*  803 E> */ B(Star), R(0),
+  /*  811 S> */ B(LdaConstant), U8(77),
+  /*  813 E> */ B(Star), R(0),
+  /*  821 S> */ B(LdaConstant), U8(78),
+  /*  823 E> */ B(Star), R(0),
+  /*  831 S> */ B(LdaConstant), U8(79),
+  /*  833 E> */ B(Star), R(0),
+  /*  841 S> */ B(LdaConstant), U8(80),
+  /*  843 E> */ B(Star), R(0),
+  /*  851 S> */ B(LdaConstant), U8(81),
+  /*  853 E> */ B(Star), R(0),
+  /*  861 S> */ B(LdaConstant), U8(82),
+  /*  863 E> */ B(Star), R(0),
+  /*  871 S> */ B(LdaConstant), U8(83),
+  /*  873 E> */ B(Star), R(0),
+  /*  881 S> */ B(LdaConstant), U8(84),
+  /*  883 E> */ B(Star), R(0),
+  /*  891 S> */ B(LdaConstant), U8(85),
+  /*  893 E> */ B(Star), R(0),
+  /*  901 S> */ B(LdaConstant), U8(86),
+  /*  903 E> */ B(Star), R(0),
+  /*  911 S> */ B(LdaConstant), U8(87),
+  /*  913 E> */ B(Star), R(0),
+  /*  921 S> */ B(LdaConstant), U8(88),
+  /*  923 E> */ B(Star), R(0),
+  /*  931 S> */ B(LdaConstant), U8(89),
+  /*  933 E> */ B(Star), R(0),
+  /*  941 S> */ B(LdaConstant), U8(90),
+  /*  943 E> */ B(Star), R(0),
+  /*  951 S> */ B(LdaConstant), U8(91),
+  /*  953 E> */ B(Star), R(0),
+  /*  961 S> */ B(LdaConstant), U8(92),
+  /*  963 E> */ B(Star), R(0),
+  /*  971 S> */ B(LdaConstant), U8(93),
+  /*  973 E> */ B(Star), R(0),
+  /*  981 S> */ B(LdaConstant), U8(94),
+  /*  983 E> */ B(Star), R(0),
+  /*  991 S> */ B(LdaConstant), U8(95),
+  /*  993 E> */ B(Star), R(0),
+  /* 1001 S> */ B(LdaConstant), U8(96),
+  /* 1003 E> */ B(Star), R(0),
+  /* 1011 S> */ B(LdaConstant), U8(97),
+  /* 1013 E> */ B(Star), R(0),
+  /* 1021 S> */ B(LdaConstant), U8(98),
+  /* 1023 E> */ B(Star), R(0),
+  /* 1031 S> */ B(LdaConstant), U8(99),
+  /* 1033 E> */ B(Star), R(0),
+  /* 1041 S> */ B(LdaConstant), U8(100),
+  /* 1043 E> */ B(Star), R(0),
+  /* 1051 S> */ B(LdaConstant), U8(101),
+  /* 1053 E> */ B(Star), R(0),
+  /* 1061 S> */ B(LdaConstant), U8(102),
+  /* 1063 E> */ B(Star), R(0),
+  /* 1071 S> */ B(LdaConstant), U8(103),
+  /* 1073 E> */ B(Star), R(0),
+  /* 1081 S> */ B(LdaConstant), U8(104),
+  /* 1083 E> */ B(Star), R(0),
+  /* 1091 S> */ B(LdaConstant), U8(105),
+  /* 1093 E> */ B(Star), R(0),
+  /* 1101 S> */ B(LdaConstant), U8(106),
+  /* 1103 E> */ B(Star), R(0),
+  /* 1111 S> */ B(LdaConstant), U8(107),
+  /* 1113 E> */ B(Star), R(0),
+  /* 1121 S> */ B(LdaConstant), U8(108),
+  /* 1123 E> */ B(Star), R(0),
+  /* 1131 S> */ B(LdaConstant), U8(109),
+  /* 1133 E> */ B(Star), R(0),
+  /* 1141 S> */ B(LdaConstant), U8(110),
+  /* 1143 E> */ B(Star), R(0),
+  /* 1151 S> */ B(LdaConstant), U8(111),
+  /* 1153 E> */ B(Star), R(0),
+  /* 1161 S> */ B(LdaConstant), U8(112),
+  /* 1163 E> */ B(Star), R(0),
+  /* 1171 S> */ B(LdaConstant), U8(113),
+  /* 1173 E> */ B(Star), R(0),
+  /* 1181 S> */ B(LdaConstant), U8(114),
+  /* 1183 E> */ B(Star), R(0),
+  /* 1191 S> */ B(LdaConstant), U8(115),
+  /* 1193 E> */ B(Star), R(0),
+  /* 1201 S> */ B(LdaConstant), U8(116),
+  /* 1203 E> */ B(Star), R(0),
+  /* 1211 S> */ B(LdaConstant), U8(117),
+  /* 1213 E> */ B(Star), R(0),
+  /* 1221 S> */ B(LdaConstant), U8(118),
+  /* 1223 E> */ B(Star), R(0),
+  /* 1231 S> */ B(LdaConstant), U8(119),
+  /* 1233 E> */ B(Star), R(0),
+  /* 1241 S> */ B(LdaConstant), U8(120),
+  /* 1243 E> */ B(Star), R(0),
+  /* 1251 S> */ B(LdaConstant), U8(121),
+  /* 1253 E> */ B(Star), R(0),
+  /* 1261 S> */ B(LdaConstant), U8(122),
+  /* 1263 E> */ B(Star), R(0),
+  /* 1271 S> */ B(LdaConstant), U8(123),
+  /* 1273 E> */ B(Star), R(0),
+  /* 1281 S> */ B(LdaConstant), U8(124),
+  /* 1283 E> */ B(Star), R(0),
+  /* 1291 S> */ B(LdaConstant), U8(125),
+  /* 1293 E> */ B(Star), R(0),
+  /* 1301 S> */ B(LdaConstant), U8(126),
+  /* 1303 E> */ B(Star), R(0),
+  /* 1311 S> */ B(LdaConstant), U8(127),
+  /* 1313 E> */ B(Star), R(0),
+  /* 1321 S> */ B(LdaConstant), U8(128),
+  /* 1323 E> */ B(Star), R(0),
+  /* 1331 S> */ B(LdaConstant), U8(129),
+  /* 1333 E> */ B(Star), R(0),
+  /* 1341 S> */ B(LdaConstant), U8(130),
+  /* 1343 E> */ B(Star), R(0),
+  /* 1351 S> */ B(LdaConstant), U8(131),
+  /* 1353 E> */ B(Star), R(0),
+  /* 1361 S> */ B(LdaConstant), U8(132),
+  /* 1363 E> */ B(Star), R(0),
+  /* 1371 S> */ B(LdaConstant), U8(133),
+  /* 1373 E> */ B(Star), R(0),
+  /* 1381 S> */ B(LdaConstant), U8(134),
+  /* 1383 E> */ B(Star), R(0),
+  /* 1391 S> */ B(LdaConstant), U8(135),
+  /* 1393 E> */ B(Star), R(0),
+  /* 1401 S> */ B(LdaConstant), U8(136),
+  /* 1403 E> */ B(Star), R(0),
+  /* 1411 S> */ B(LdaConstant), U8(137),
+  /* 1413 E> */ B(Star), R(0),
+  /* 1421 S> */ B(LdaConstant), U8(138),
+  /* 1423 E> */ B(Star), R(0),
+  /* 1431 S> */ B(LdaConstant), U8(139),
+  /* 1433 E> */ B(Star), R(0),
+  /* 1441 S> */ B(LdaConstant), U8(140),
+  /* 1443 E> */ B(Star), R(0),
+  /* 1451 S> */ B(LdaConstant), U8(141),
+  /* 1453 E> */ B(Star), R(0),
+  /* 1461 S> */ B(LdaConstant), U8(142),
+  /* 1463 E> */ B(Star), R(0),
+  /* 1471 S> */ B(LdaConstant), U8(143),
+  /* 1473 E> */ B(Star), R(0),
+  /* 1481 S> */ B(LdaConstant), U8(144),
+  /* 1483 E> */ B(Star), R(0),
+  /* 1491 S> */ B(LdaConstant), U8(145),
+  /* 1493 E> */ B(Star), R(0),
+  /* 1501 S> */ B(LdaConstant), U8(146),
+  /* 1503 E> */ B(Star), R(0),
+  /* 1511 S> */ B(LdaConstant), U8(147),
+  /* 1513 E> */ B(Star), R(0),
+  /* 1521 S> */ B(LdaConstant), U8(148),
+  /* 1523 E> */ B(Star), R(0),
+  /* 1531 S> */ B(LdaConstant), U8(149),
+  /* 1533 E> */ B(Star), R(0),
+  /* 1541 S> */ B(LdaConstant), U8(150),
+  /* 1543 E> */ B(Star), R(0),
+  /* 1551 S> */ B(LdaConstant), U8(151),
+  /* 1553 E> */ B(Star), R(0),
+  /* 1561 S> */ B(LdaConstant), U8(152),
+  /* 1563 E> */ B(Star), R(0),
+  /* 1571 S> */ B(LdaConstant), U8(153),
+  /* 1573 E> */ B(Star), R(0),
+  /* 1581 S> */ B(LdaConstant), U8(154),
+  /* 1583 E> */ B(Star), R(0),
+  /* 1591 S> */ B(LdaConstant), U8(155),
+  /* 1593 E> */ B(Star), R(0),
+  /* 1601 S> */ B(LdaConstant), U8(156),
+  /* 1603 E> */ B(Star), R(0),
+  /* 1611 S> */ B(LdaConstant), U8(157),
+  /* 1613 E> */ B(Star), R(0),
+  /* 1621 S> */ B(LdaConstant), U8(158),
+  /* 1623 E> */ B(Star), R(0),
+  /* 1631 S> */ B(LdaConstant), U8(159),
+  /* 1633 E> */ B(Star), R(0),
+  /* 1641 S> */ B(LdaConstant), U8(160),
+  /* 1643 E> */ B(Star), R(0),
+  /* 1651 S> */ B(LdaConstant), U8(161),
+  /* 1653 E> */ B(Star), R(0),
+  /* 1661 S> */ B(LdaConstant), U8(162),
+  /* 1663 E> */ B(Star), R(0),
+  /* 1671 S> */ B(LdaConstant), U8(163),
+  /* 1673 E> */ B(Star), R(0),
+  /* 1681 S> */ B(LdaConstant), U8(164),
+  /* 1683 E> */ B(Star), R(0),
+  /* 1691 S> */ B(LdaConstant), U8(165),
+  /* 1693 E> */ B(Star), R(0),
+  /* 1701 S> */ B(LdaConstant), U8(166),
+  /* 1703 E> */ B(Star), R(0),
+  /* 1711 S> */ B(LdaConstant), U8(167),
+  /* 1713 E> */ B(Star), R(0),
+  /* 1721 S> */ B(LdaConstant), U8(168),
+  /* 1723 E> */ B(Star), R(0),
+  /* 1731 S> */ B(LdaConstant), U8(169),
+  /* 1733 E> */ B(Star), R(0),
+  /* 1741 S> */ B(LdaConstant), U8(170),
+  /* 1743 E> */ B(Star), R(0),
+  /* 1751 S> */ B(LdaConstant), U8(171),
+  /* 1753 E> */ B(Star), R(0),
+  /* 1761 S> */ B(LdaConstant), U8(172),
+  /* 1763 E> */ B(Star), R(0),
+  /* 1771 S> */ B(LdaConstant), U8(173),
+  /* 1773 E> */ B(Star), R(0),
+  /* 1781 S> */ B(LdaConstant), U8(174),
+  /* 1783 E> */ B(Star), R(0),
+  /* 1791 S> */ B(LdaConstant), U8(175),
+  /* 1793 E> */ B(Star), R(0),
+  /* 1801 S> */ B(LdaConstant), U8(176),
+  /* 1803 E> */ B(Star), R(0),
+  /* 1811 S> */ B(LdaConstant), U8(177),
+  /* 1813 E> */ B(Star), R(0),
+  /* 1821 S> */ B(LdaConstant), U8(178),
+  /* 1823 E> */ B(Star), R(0),
+  /* 1831 S> */ B(LdaConstant), U8(179),
+  /* 1833 E> */ B(Star), R(0),
+  /* 1841 S> */ B(LdaConstant), U8(180),
+  /* 1843 E> */ B(Star), R(0),
+  /* 1851 S> */ B(LdaConstant), U8(181),
+  /* 1853 E> */ B(Star), R(0),
+  /* 1861 S> */ B(LdaConstant), U8(182),
+  /* 1863 E> */ B(Star), R(0),
+  /* 1871 S> */ B(LdaConstant), U8(183),
+  /* 1873 E> */ B(Star), R(0),
+  /* 1881 S> */ B(LdaConstant), U8(184),
+  /* 1883 E> */ B(Star), R(0),
+  /* 1891 S> */ B(LdaConstant), U8(185),
+  /* 1893 E> */ B(Star), R(0),
+  /* 1901 S> */ B(LdaConstant), U8(186),
+  /* 1903 E> */ B(Star), R(0),
+  /* 1911 S> */ B(LdaConstant), U8(187),
+  /* 1913 E> */ B(Star), R(0),
+  /* 1921 S> */ B(LdaConstant), U8(188),
+  /* 1923 E> */ B(Star), R(0),
+  /* 1931 S> */ B(LdaConstant), U8(189),
+  /* 1933 E> */ B(Star), R(0),
+  /* 1941 S> */ B(LdaConstant), U8(190),
+  /* 1943 E> */ B(Star), R(0),
+  /* 1951 S> */ B(LdaConstant), U8(191),
+  /* 1953 E> */ B(Star), R(0),
+  /* 1961 S> */ B(LdaConstant), U8(192),
+  /* 1963 E> */ B(Star), R(0),
+  /* 1971 S> */ B(LdaConstant), U8(193),
+  /* 1973 E> */ B(Star), R(0),
+  /* 1981 S> */ B(LdaConstant), U8(194),
+  /* 1983 E> */ B(Star), R(0),
+  /* 1991 S> */ B(LdaConstant), U8(195),
+  /* 1993 E> */ B(Star), R(0),
+  /* 2001 S> */ B(LdaConstant), U8(196),
+  /* 2003 E> */ B(Star), R(0),
+  /* 2011 S> */ B(LdaConstant), U8(197),
+  /* 2013 E> */ B(Star), R(0),
+  /* 2021 S> */ B(LdaConstant), U8(198),
+  /* 2023 E> */ B(Star), R(0),
+  /* 2031 S> */ B(LdaConstant), U8(199),
+  /* 2033 E> */ B(Star), R(0),
+  /* 2041 S> */ B(LdaConstant), U8(200),
+  /* 2043 E> */ B(Star), R(0),
+  /* 2051 S> */ B(LdaConstant), U8(201),
+  /* 2053 E> */ B(Star), R(0),
+  /* 2061 S> */ B(LdaConstant), U8(202),
+  /* 2063 E> */ B(Star), R(0),
+  /* 2071 S> */ B(LdaConstant), U8(203),
+  /* 2073 E> */ B(Star), R(0),
+  /* 2081 S> */ B(LdaConstant), U8(204),
+  /* 2083 E> */ B(Star), R(0),
+  /* 2091 S> */ B(LdaConstant), U8(205),
+  /* 2093 E> */ B(Star), R(0),
+  /* 2101 S> */ B(LdaConstant), U8(206),
+  /* 2103 E> */ B(Star), R(0),
+  /* 2111 S> */ B(LdaConstant), U8(207),
+  /* 2113 E> */ B(Star), R(0),
+  /* 2121 S> */ B(LdaConstant), U8(208),
+  /* 2123 E> */ B(Star), R(0),
+  /* 2131 S> */ B(LdaConstant), U8(209),
+  /* 2133 E> */ B(Star), R(0),
+  /* 2141 S> */ B(LdaConstant), U8(210),
+  /* 2143 E> */ B(Star), R(0),
+  /* 2151 S> */ B(LdaConstant), U8(211),
+  /* 2153 E> */ B(Star), R(0),
+  /* 2161 S> */ B(LdaConstant), U8(212),
+  /* 2163 E> */ B(Star), R(0),
+  /* 2171 S> */ B(LdaConstant), U8(213),
+  /* 2173 E> */ B(Star), R(0),
+  /* 2181 S> */ B(LdaConstant), U8(214),
+  /* 2183 E> */ B(Star), R(0),
+  /* 2191 S> */ B(LdaConstant), U8(215),
+  /* 2193 E> */ B(Star), R(0),
+  /* 2201 S> */ B(LdaConstant), U8(216),
+  /* 2203 E> */ B(Star), R(0),
+  /* 2211 S> */ B(LdaConstant), U8(217),
+  /* 2213 E> */ B(Star), R(0),
+  /* 2221 S> */ B(LdaConstant), U8(218),
+  /* 2223 E> */ B(Star), R(0),
+  /* 2231 S> */ B(LdaConstant), U8(219),
+  /* 2233 E> */ B(Star), R(0),
+  /* 2241 S> */ B(LdaConstant), U8(220),
+  /* 2243 E> */ B(Star), R(0),
+  /* 2251 S> */ B(LdaConstant), U8(221),
+  /* 2253 E> */ B(Star), R(0),
+  /* 2261 S> */ B(LdaConstant), U8(222),
+  /* 2263 E> */ B(Star), R(0),
+  /* 2271 S> */ B(LdaConstant), U8(223),
+  /* 2273 E> */ B(Star), R(0),
+  /* 2281 S> */ B(LdaConstant), U8(224),
+  /* 2283 E> */ B(Star), R(0),
+  /* 2291 S> */ B(LdaConstant), U8(225),
+  /* 2293 E> */ B(Star), R(0),
+  /* 2301 S> */ B(LdaConstant), U8(226),
+  /* 2303 E> */ B(Star), R(0),
+  /* 2311 S> */ B(LdaConstant), U8(227),
+  /* 2313 E> */ B(Star), R(0),
+  /* 2321 S> */ B(LdaConstant), U8(228),
+  /* 2323 E> */ B(Star), R(0),
+  /* 2331 S> */ B(LdaConstant), U8(229),
+  /* 2333 E> */ B(Star), R(0),
+  /* 2341 S> */ B(LdaConstant), U8(230),
+  /* 2343 E> */ B(Star), R(0),
+  /* 2351 S> */ B(LdaConstant), U8(231),
+  /* 2353 E> */ B(Star), R(0),
+  /* 2361 S> */ B(LdaConstant), U8(232),
+  /* 2363 E> */ B(Star), R(0),
+  /* 2371 S> */ B(LdaConstant), U8(233),
+  /* 2373 E> */ B(Star), R(0),
+  /* 2381 S> */ B(LdaConstant), U8(234),
+  /* 2383 E> */ B(Star), R(0),
+  /* 2391 S> */ B(LdaConstant), U8(235),
+  /* 2393 E> */ B(Star), R(0),
+  /* 2401 S> */ B(LdaConstant), U8(236),
+  /* 2403 E> */ B(Star), R(0),
+  /* 2411 S> */ B(LdaConstant), U8(237),
+  /* 2413 E> */ B(Star), R(0),
+  /* 2421 S> */ B(LdaConstant), U8(238),
+  /* 2423 E> */ B(Star), R(0),
+  /* 2431 S> */ B(LdaConstant), U8(239),
+  /* 2433 E> */ B(Star), R(0),
+  /* 2441 S> */ B(LdaConstant), U8(240),
+  /* 2443 E> */ B(Star), R(0),
+  /* 2451 S> */ B(LdaConstant), U8(241),
+  /* 2453 E> */ B(Star), R(0),
+  /* 2461 S> */ B(LdaConstant), U8(242),
+  /* 2463 E> */ B(Star), R(0),
+  /* 2471 S> */ B(LdaConstant), U8(243),
+  /* 2473 E> */ B(Star), R(0),
+  /* 2481 S> */ B(LdaConstant), U8(244),
+  /* 2483 E> */ B(Star), R(0),
+  /* 2491 S> */ B(LdaConstant), U8(245),
+  /* 2493 E> */ B(Star), R(0),
+  /* 2501 S> */ B(LdaConstant), U8(246),
+  /* 2503 E> */ B(Star), R(0),
+  /* 2511 S> */ B(LdaConstant), U8(247),
+  /* 2513 E> */ B(Star), R(0),
+  /* 2521 S> */ B(LdaConstant), U8(248),
+  /* 2523 E> */ B(Star), R(0),
+  /* 2531 S> */ B(LdaConstant), U8(249),
+  /* 2533 E> */ B(Star), R(0),
+  /* 2541 S> */ B(LdaConstant), U8(250),
+  /* 2543 E> */ B(Star), R(0),
+  /* 2551 S> */ B(LdaConstant), U8(251),
+  /* 2553 E> */ B(Star), R(0),
+  /* 2561 S> */ B(LdaConstant), U8(252),
+  /* 2563 E> */ B(Star), R(0),
+  /* 2571 S> */ B(LdaConstant), U8(253),
+  /* 2573 E> */ B(Star), R(0),
+  /* 2581 S> */ B(LdaConstant), U8(254),
+  /* 2583 E> */ B(Star), R(0),
+  /* 2591 S> */ B(LdaConstant), U8(255),
+  /* 2593 E> */ B(Star), R(0),
+  /* 2601 S> */ B(Wide), B(CreateRegExpLiteral), U16(256), U16(0), U8(0),
+  /* 2616 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::HEAP_NUMBER_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden b/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden
index e9283cd..b5ebec1 100644
--- a/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden
+++ b/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden
@@ -20,23 +20,23 @@
 parameter count: 1
 bytecode array length: 31
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(10),
-  B(TestGreaterThan), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(4),
-  B(Jump), U8(-21),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   45 S> */ B(LdaSmi), U8(1),
+  /*   45 E> */ B(Star), R(0),
+  /*   48 E> */ B(StackCheck),
+  /*   64 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+  /*   78 E> */ B(Ldar), R(0),
+                B(Add), R(1),
+  /*   69 E> */ B(Star), R(0),
+  /*   86 S> */ B(Star), R(1),
+                B(LdaSmi), U8(10),
+  /*   95 E> */ B(TestGreaterThan), R(1),
+                B(JumpIfFalse), U8(4),
+  /*  101 S> */ B(Jump), U8(4),
+                B(Jump), U8(-21),
+  /*  110 S> */ B(Ldar), R(0),
+  /*  123 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -56,22 +56,22 @@
 parameter count: 1
 bytecode array length: 29
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(10),
-  B(TestGreaterThan), R(1),
-  B(JumpIfFalse), U8(4),
-  B(Jump), U8(2),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   45 S> */ B(LdaSmi), U8(1),
+  /*   45 E> */ B(Star), R(0),
+  /*   48 E> */ B(StackCheck),
+  /*   55 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+  /*   69 E> */ B(Ldar), R(0),
+                B(Add), R(1),
+  /*   60 E> */ B(Star), R(0),
+  /*   77 S> */ B(Star), R(1),
+                B(LdaSmi), U8(10),
+  /*   86 E> */ B(TestGreaterThan), R(1),
+                B(JumpIfFalse), U8(4),
+  /*   92 S> */ B(Jump), U8(2),
+  /*  118 S> */ B(Ldar), R(0),
+  /*  131 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -88,14 +88,14 @@
 parameter count: 1
 bytecode array length: 14
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   45 S> */ B(LdaSmi), U8(1),
+  /*   45 E> */ B(Star), R(0),
+  /*   50 S> */ B(Star), R(1),
+  /*   64 E> */ B(Ldar), R(0),
+                B(Add), R(1),
+  /*   55 E> */ B(Star), R(0),
+  /*   85 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden b/test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden
index 151c334..bddfe77 100644
--- a/test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden
+++ b/test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden
@@ -18,11 +18,11 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(2),
-  B(StaGlobalSloppy), U8(0), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   21 E> */ B(StackCheck),
+  /*   26 S> */ B(LdaSmi), U8(2),
+  /*   28 E> */ B(StaGlobalSloppy), U8(0), U8(1),
+                B(LdaUndefined),
+  /*   33 S> */ B(Return),
 ]
 constant pool: [
   "a",
@@ -39,11 +39,11 @@
 parameter count: 2
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(StaGlobalSloppy), U8(0), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   26 E> */ B(StackCheck),
+  /*   32 S> */ B(Ldar), R(arg0),
+  /*   34 E> */ B(StaGlobalSloppy), U8(0), U8(1),
+                B(LdaUndefined),
+  /*   39 S> */ B(Return),
 ]
 constant pool: [
   "a",
@@ -61,11 +61,11 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(2),
-  B(StaGlobalStrict), U8(0), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   35 E> */ B(StackCheck),
+  /*   40 S> */ B(LdaSmi), U8(2),
+  /*   42 E> */ B(StaGlobalStrict), U8(0), U8(1),
+                B(LdaUndefined),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
   "a",
@@ -83,11 +83,11 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(2),
-  B(StaGlobalSloppy), U8(0), U8(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   17 E> */ B(StackCheck),
+  /*   22 S> */ B(LdaSmi), U8(2),
+  /*   24 E> */ B(StaGlobalSloppy), U8(0), U8(1),
+                B(LdaUndefined),
+  /*   29 S> */ B(Return),
 ]
 constant pool: [
   "a",
@@ -235,395 +235,395 @@
 parameter count: 2
 bytecode array length: 1035
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(1),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(3),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(5),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(7),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(9),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(11),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(13),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(15),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(17),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(19),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(21),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(23),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(25),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(27),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(29),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(31),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(33),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(35),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(37),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(39),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(41),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(43),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(45),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(47),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(49),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(51),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(53),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(55),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(57),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(59),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(61),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(63),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(65),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(67),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(69),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(71),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(73),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(75),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(77),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(79),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(81),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(83),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(85),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(87),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(89),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(91),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(93),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(95),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(97),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(99),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(101),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(103),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(105),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(107),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(109),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(111),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(113),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(115),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(117),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(119),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(121),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(123),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(125),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(127),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(129),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(131),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(133),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(135),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(137),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(139),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(141),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(143),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(145),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(147),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(149),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(151),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(153),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(155),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(157),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(159),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(161),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(163),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(165),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(167),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(169),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(171),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(173),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(175),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(177),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(179),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(181),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(183),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(185),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(187),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(189),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(191),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(193),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(195),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(197),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(199),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(201),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(203),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(205),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(207),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(209),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(211),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(213),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(215),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(217),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(219),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(221),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(223),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(225),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(227),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(229),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(231),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(233),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(235),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(237),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(239),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(241),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(243),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(245),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(247),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(249),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(251),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(253),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(255),
-  B(LdaSmi), U8(2),
-  B(Wide), B(StaGlobalSloppy), U16(1), U16(257),
-  B(LdaUndefined),
-  B(Return),
+  /*   17 E> */ B(StackCheck),
+  /*   25 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   26 E> */ B(LoadIC), R(0), U8(0), U8(1),
+  /*   35 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   36 E> */ B(LoadIC), R(0), U8(0), U8(3),
+  /*   45 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   46 E> */ B(LoadIC), R(0), U8(0), U8(5),
+  /*   55 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   56 E> */ B(LoadIC), R(0), U8(0), U8(7),
+  /*   65 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   66 E> */ B(LoadIC), R(0), U8(0), U8(9),
+  /*   75 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   76 E> */ B(LoadIC), R(0), U8(0), U8(11),
+  /*   85 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   86 E> */ B(LoadIC), R(0), U8(0), U8(13),
+  /*   95 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   96 E> */ B(LoadIC), R(0), U8(0), U8(15),
+  /*  105 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  106 E> */ B(LoadIC), R(0), U8(0), U8(17),
+  /*  115 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  116 E> */ B(LoadIC), R(0), U8(0), U8(19),
+  /*  125 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  126 E> */ B(LoadIC), R(0), U8(0), U8(21),
+  /*  135 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  136 E> */ B(LoadIC), R(0), U8(0), U8(23),
+  /*  145 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  146 E> */ B(LoadIC), R(0), U8(0), U8(25),
+  /*  155 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  156 E> */ B(LoadIC), R(0), U8(0), U8(27),
+  /*  165 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  166 E> */ B(LoadIC), R(0), U8(0), U8(29),
+  /*  175 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  176 E> */ B(LoadIC), R(0), U8(0), U8(31),
+  /*  185 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  186 E> */ B(LoadIC), R(0), U8(0), U8(33),
+  /*  195 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  196 E> */ B(LoadIC), R(0), U8(0), U8(35),
+  /*  205 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  206 E> */ B(LoadIC), R(0), U8(0), U8(37),
+  /*  215 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  216 E> */ B(LoadIC), R(0), U8(0), U8(39),
+  /*  225 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  226 E> */ B(LoadIC), R(0), U8(0), U8(41),
+  /*  235 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  236 E> */ B(LoadIC), R(0), U8(0), U8(43),
+  /*  245 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  246 E> */ B(LoadIC), R(0), U8(0), U8(45),
+  /*  255 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  256 E> */ B(LoadIC), R(0), U8(0), U8(47),
+  /*  265 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  266 E> */ B(LoadIC), R(0), U8(0), U8(49),
+  /*  275 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  276 E> */ B(LoadIC), R(0), U8(0), U8(51),
+  /*  285 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  286 E> */ B(LoadIC), R(0), U8(0), U8(53),
+  /*  295 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  296 E> */ B(LoadIC), R(0), U8(0), U8(55),
+  /*  305 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  306 E> */ B(LoadIC), R(0), U8(0), U8(57),
+  /*  315 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  316 E> */ B(LoadIC), R(0), U8(0), U8(59),
+  /*  325 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  326 E> */ B(LoadIC), R(0), U8(0), U8(61),
+  /*  335 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  336 E> */ B(LoadIC), R(0), U8(0), U8(63),
+  /*  345 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  346 E> */ B(LoadIC), R(0), U8(0), U8(65),
+  /*  355 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  356 E> */ B(LoadIC), R(0), U8(0), U8(67),
+  /*  365 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  366 E> */ B(LoadIC), R(0), U8(0), U8(69),
+  /*  375 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  376 E> */ B(LoadIC), R(0), U8(0), U8(71),
+  /*  385 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  386 E> */ B(LoadIC), R(0), U8(0), U8(73),
+  /*  395 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  396 E> */ B(LoadIC), R(0), U8(0), U8(75),
+  /*  405 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  406 E> */ B(LoadIC), R(0), U8(0), U8(77),
+  /*  415 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  416 E> */ B(LoadIC), R(0), U8(0), U8(79),
+  /*  425 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  426 E> */ B(LoadIC), R(0), U8(0), U8(81),
+  /*  435 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  436 E> */ B(LoadIC), R(0), U8(0), U8(83),
+  /*  445 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  446 E> */ B(LoadIC), R(0), U8(0), U8(85),
+  /*  455 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  456 E> */ B(LoadIC), R(0), U8(0), U8(87),
+  /*  465 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  466 E> */ B(LoadIC), R(0), U8(0), U8(89),
+  /*  475 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  476 E> */ B(LoadIC), R(0), U8(0), U8(91),
+  /*  485 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  486 E> */ B(LoadIC), R(0), U8(0), U8(93),
+  /*  495 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  496 E> */ B(LoadIC), R(0), U8(0), U8(95),
+  /*  505 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  506 E> */ B(LoadIC), R(0), U8(0), U8(97),
+  /*  515 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  516 E> */ B(LoadIC), R(0), U8(0), U8(99),
+  /*  525 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  526 E> */ B(LoadIC), R(0), U8(0), U8(101),
+  /*  535 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  536 E> */ B(LoadIC), R(0), U8(0), U8(103),
+  /*  545 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  546 E> */ B(LoadIC), R(0), U8(0), U8(105),
+  /*  555 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  556 E> */ B(LoadIC), R(0), U8(0), U8(107),
+  /*  565 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  566 E> */ B(LoadIC), R(0), U8(0), U8(109),
+  /*  575 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  576 E> */ B(LoadIC), R(0), U8(0), U8(111),
+  /*  585 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  586 E> */ B(LoadIC), R(0), U8(0), U8(113),
+  /*  595 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  596 E> */ B(LoadIC), R(0), U8(0), U8(115),
+  /*  605 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  606 E> */ B(LoadIC), R(0), U8(0), U8(117),
+  /*  615 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  616 E> */ B(LoadIC), R(0), U8(0), U8(119),
+  /*  625 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  626 E> */ B(LoadIC), R(0), U8(0), U8(121),
+  /*  635 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  636 E> */ B(LoadIC), R(0), U8(0), U8(123),
+  /*  645 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  646 E> */ B(LoadIC), R(0), U8(0), U8(125),
+  /*  655 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  656 E> */ B(LoadIC), R(0), U8(0), U8(127),
+  /*  665 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  666 E> */ B(LoadIC), R(0), U8(0), U8(129),
+  /*  675 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  676 E> */ B(LoadIC), R(0), U8(0), U8(131),
+  /*  685 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  686 E> */ B(LoadIC), R(0), U8(0), U8(133),
+  /*  695 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  696 E> */ B(LoadIC), R(0), U8(0), U8(135),
+  /*  705 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  706 E> */ B(LoadIC), R(0), U8(0), U8(137),
+  /*  715 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  716 E> */ B(LoadIC), R(0), U8(0), U8(139),
+  /*  725 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  726 E> */ B(LoadIC), R(0), U8(0), U8(141),
+  /*  735 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  736 E> */ B(LoadIC), R(0), U8(0), U8(143),
+  /*  745 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  746 E> */ B(LoadIC), R(0), U8(0), U8(145),
+  /*  755 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  756 E> */ B(LoadIC), R(0), U8(0), U8(147),
+  /*  765 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  766 E> */ B(LoadIC), R(0), U8(0), U8(149),
+  /*  775 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  776 E> */ B(LoadIC), R(0), U8(0), U8(151),
+  /*  785 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  786 E> */ B(LoadIC), R(0), U8(0), U8(153),
+  /*  795 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  796 E> */ B(LoadIC), R(0), U8(0), U8(155),
+  /*  805 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  806 E> */ B(LoadIC), R(0), U8(0), U8(157),
+  /*  815 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  816 E> */ B(LoadIC), R(0), U8(0), U8(159),
+  /*  825 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  826 E> */ B(LoadIC), R(0), U8(0), U8(161),
+  /*  835 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  836 E> */ B(LoadIC), R(0), U8(0), U8(163),
+  /*  845 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  846 E> */ B(LoadIC), R(0), U8(0), U8(165),
+  /*  855 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  856 E> */ B(LoadIC), R(0), U8(0), U8(167),
+  /*  865 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  866 E> */ B(LoadIC), R(0), U8(0), U8(169),
+  /*  875 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  876 E> */ B(LoadIC), R(0), U8(0), U8(171),
+  /*  885 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  886 E> */ B(LoadIC), R(0), U8(0), U8(173),
+  /*  895 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  896 E> */ B(LoadIC), R(0), U8(0), U8(175),
+  /*  905 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  906 E> */ B(LoadIC), R(0), U8(0), U8(177),
+  /*  915 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  916 E> */ B(LoadIC), R(0), U8(0), U8(179),
+  /*  925 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  926 E> */ B(LoadIC), R(0), U8(0), U8(181),
+  /*  935 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  936 E> */ B(LoadIC), R(0), U8(0), U8(183),
+  /*  945 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  946 E> */ B(LoadIC), R(0), U8(0), U8(185),
+  /*  955 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  956 E> */ B(LoadIC), R(0), U8(0), U8(187),
+  /*  965 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  966 E> */ B(LoadIC), R(0), U8(0), U8(189),
+  /*  975 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  976 E> */ B(LoadIC), R(0), U8(0), U8(191),
+  /*  985 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  986 E> */ B(LoadIC), R(0), U8(0), U8(193),
+  /*  995 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  996 E> */ B(LoadIC), R(0), U8(0), U8(195),
+  /* 1005 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1006 E> */ B(LoadIC), R(0), U8(0), U8(197),
+  /* 1015 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1016 E> */ B(LoadIC), R(0), U8(0), U8(199),
+  /* 1025 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1026 E> */ B(LoadIC), R(0), U8(0), U8(201),
+  /* 1035 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1036 E> */ B(LoadIC), R(0), U8(0), U8(203),
+  /* 1045 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1046 E> */ B(LoadIC), R(0), U8(0), U8(205),
+  /* 1055 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1056 E> */ B(LoadIC), R(0), U8(0), U8(207),
+  /* 1065 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1066 E> */ B(LoadIC), R(0), U8(0), U8(209),
+  /* 1075 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1076 E> */ B(LoadIC), R(0), U8(0), U8(211),
+  /* 1085 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1086 E> */ B(LoadIC), R(0), U8(0), U8(213),
+  /* 1095 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1096 E> */ B(LoadIC), R(0), U8(0), U8(215),
+  /* 1105 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1106 E> */ B(LoadIC), R(0), U8(0), U8(217),
+  /* 1115 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1116 E> */ B(LoadIC), R(0), U8(0), U8(219),
+  /* 1125 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1126 E> */ B(LoadIC), R(0), U8(0), U8(221),
+  /* 1135 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1136 E> */ B(LoadIC), R(0), U8(0), U8(223),
+  /* 1145 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1146 E> */ B(LoadIC), R(0), U8(0), U8(225),
+  /* 1155 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1156 E> */ B(LoadIC), R(0), U8(0), U8(227),
+  /* 1165 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1166 E> */ B(LoadIC), R(0), U8(0), U8(229),
+  /* 1175 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1176 E> */ B(LoadIC), R(0), U8(0), U8(231),
+  /* 1185 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1186 E> */ B(LoadIC), R(0), U8(0), U8(233),
+  /* 1195 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1196 E> */ B(LoadIC), R(0), U8(0), U8(235),
+  /* 1205 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1206 E> */ B(LoadIC), R(0), U8(0), U8(237),
+  /* 1215 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1216 E> */ B(LoadIC), R(0), U8(0), U8(239),
+  /* 1225 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1226 E> */ B(LoadIC), R(0), U8(0), U8(241),
+  /* 1235 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1236 E> */ B(LoadIC), R(0), U8(0), U8(243),
+  /* 1245 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1246 E> */ B(LoadIC), R(0), U8(0), U8(245),
+  /* 1255 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1256 E> */ B(LoadIC), R(0), U8(0), U8(247),
+  /* 1265 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1266 E> */ B(LoadIC), R(0), U8(0), U8(249),
+  /* 1275 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1276 E> */ B(LoadIC), R(0), U8(0), U8(251),
+  /* 1285 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1286 E> */ B(LoadIC), R(0), U8(0), U8(253),
+  /* 1295 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1296 E> */ B(LoadIC), R(0), U8(0), U8(255),
+  /* 1305 S> */ B(LdaSmi), U8(2),
+  /* 1307 E> */ B(Wide), B(StaGlobalSloppy), U16(1), U16(257),
+                B(LdaUndefined),
+  /* 1312 S> */ B(Return),
 ]
 constant pool: [
   "name",
@@ -773,395 +773,395 @@
 parameter count: 2
 bytecode array length: 1035
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(1),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(3),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(5),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(7),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(9),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(11),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(13),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(15),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(17),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(19),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(21),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(23),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(25),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(27),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(29),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(31),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(33),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(35),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(37),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(39),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(41),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(43),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(45),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(47),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(49),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(51),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(53),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(55),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(57),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(59),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(61),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(63),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(65),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(67),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(69),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(71),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(73),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(75),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(77),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(79),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(81),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(83),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(85),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(87),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(89),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(91),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(93),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(95),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(97),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(99),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(101),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(103),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(105),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(107),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(109),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(111),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(113),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(115),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(117),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(119),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(121),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(123),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(125),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(127),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(129),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(131),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(133),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(135),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(137),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(139),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(141),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(143),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(145),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(147),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(149),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(151),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(153),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(155),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(157),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(159),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(161),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(163),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(165),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(167),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(169),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(171),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(173),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(175),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(177),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(179),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(181),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(183),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(185),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(187),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(189),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(191),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(193),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(195),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(197),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(199),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(201),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(203),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(205),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(207),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(209),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(211),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(213),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(215),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(217),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(219),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(221),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(223),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(225),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(227),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(229),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(231),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(233),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(235),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(237),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(239),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(241),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(243),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(245),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(247),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(249),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(251),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(253),
-  B(Ldar), R(arg0),
-  B(Star), R(0),
-  B(LoadIC), R(0), U8(0), U8(255),
-  B(LdaSmi), U8(2),
-  B(Wide), B(StaGlobalStrict), U16(1), U16(257),
-  B(LdaUndefined),
-  B(Return),
+  /*   17 E> */ B(StackCheck),
+  /*   41 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   42 E> */ B(LoadIC), R(0), U8(0), U8(1),
+  /*   51 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   52 E> */ B(LoadIC), R(0), U8(0), U8(3),
+  /*   61 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   62 E> */ B(LoadIC), R(0), U8(0), U8(5),
+  /*   71 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   72 E> */ B(LoadIC), R(0), U8(0), U8(7),
+  /*   81 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   82 E> */ B(LoadIC), R(0), U8(0), U8(9),
+  /*   91 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*   92 E> */ B(LoadIC), R(0), U8(0), U8(11),
+  /*  101 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  102 E> */ B(LoadIC), R(0), U8(0), U8(13),
+  /*  111 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  112 E> */ B(LoadIC), R(0), U8(0), U8(15),
+  /*  121 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  122 E> */ B(LoadIC), R(0), U8(0), U8(17),
+  /*  131 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  132 E> */ B(LoadIC), R(0), U8(0), U8(19),
+  /*  141 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  142 E> */ B(LoadIC), R(0), U8(0), U8(21),
+  /*  151 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  152 E> */ B(LoadIC), R(0), U8(0), U8(23),
+  /*  161 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  162 E> */ B(LoadIC), R(0), U8(0), U8(25),
+  /*  171 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  172 E> */ B(LoadIC), R(0), U8(0), U8(27),
+  /*  181 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  182 E> */ B(LoadIC), R(0), U8(0), U8(29),
+  /*  191 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  192 E> */ B(LoadIC), R(0), U8(0), U8(31),
+  /*  201 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  202 E> */ B(LoadIC), R(0), U8(0), U8(33),
+  /*  211 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  212 E> */ B(LoadIC), R(0), U8(0), U8(35),
+  /*  221 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  222 E> */ B(LoadIC), R(0), U8(0), U8(37),
+  /*  231 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  232 E> */ B(LoadIC), R(0), U8(0), U8(39),
+  /*  241 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  242 E> */ B(LoadIC), R(0), U8(0), U8(41),
+  /*  251 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  252 E> */ B(LoadIC), R(0), U8(0), U8(43),
+  /*  261 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  262 E> */ B(LoadIC), R(0), U8(0), U8(45),
+  /*  271 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  272 E> */ B(LoadIC), R(0), U8(0), U8(47),
+  /*  281 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  282 E> */ B(LoadIC), R(0), U8(0), U8(49),
+  /*  291 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  292 E> */ B(LoadIC), R(0), U8(0), U8(51),
+  /*  301 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  302 E> */ B(LoadIC), R(0), U8(0), U8(53),
+  /*  311 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  312 E> */ B(LoadIC), R(0), U8(0), U8(55),
+  /*  321 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  322 E> */ B(LoadIC), R(0), U8(0), U8(57),
+  /*  331 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  332 E> */ B(LoadIC), R(0), U8(0), U8(59),
+  /*  341 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  342 E> */ B(LoadIC), R(0), U8(0), U8(61),
+  /*  351 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  352 E> */ B(LoadIC), R(0), U8(0), U8(63),
+  /*  361 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  362 E> */ B(LoadIC), R(0), U8(0), U8(65),
+  /*  371 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  372 E> */ B(LoadIC), R(0), U8(0), U8(67),
+  /*  381 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  382 E> */ B(LoadIC), R(0), U8(0), U8(69),
+  /*  391 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  392 E> */ B(LoadIC), R(0), U8(0), U8(71),
+  /*  401 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  402 E> */ B(LoadIC), R(0), U8(0), U8(73),
+  /*  411 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  412 E> */ B(LoadIC), R(0), U8(0), U8(75),
+  /*  421 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  422 E> */ B(LoadIC), R(0), U8(0), U8(77),
+  /*  431 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  432 E> */ B(LoadIC), R(0), U8(0), U8(79),
+  /*  441 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  442 E> */ B(LoadIC), R(0), U8(0), U8(81),
+  /*  451 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  452 E> */ B(LoadIC), R(0), U8(0), U8(83),
+  /*  461 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  462 E> */ B(LoadIC), R(0), U8(0), U8(85),
+  /*  471 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  472 E> */ B(LoadIC), R(0), U8(0), U8(87),
+  /*  481 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  482 E> */ B(LoadIC), R(0), U8(0), U8(89),
+  /*  491 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  492 E> */ B(LoadIC), R(0), U8(0), U8(91),
+  /*  501 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  502 E> */ B(LoadIC), R(0), U8(0), U8(93),
+  /*  511 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  512 E> */ B(LoadIC), R(0), U8(0), U8(95),
+  /*  521 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  522 E> */ B(LoadIC), R(0), U8(0), U8(97),
+  /*  531 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  532 E> */ B(LoadIC), R(0), U8(0), U8(99),
+  /*  541 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  542 E> */ B(LoadIC), R(0), U8(0), U8(101),
+  /*  551 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  552 E> */ B(LoadIC), R(0), U8(0), U8(103),
+  /*  561 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  562 E> */ B(LoadIC), R(0), U8(0), U8(105),
+  /*  571 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  572 E> */ B(LoadIC), R(0), U8(0), U8(107),
+  /*  581 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  582 E> */ B(LoadIC), R(0), U8(0), U8(109),
+  /*  591 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  592 E> */ B(LoadIC), R(0), U8(0), U8(111),
+  /*  601 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  602 E> */ B(LoadIC), R(0), U8(0), U8(113),
+  /*  611 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  612 E> */ B(LoadIC), R(0), U8(0), U8(115),
+  /*  621 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  622 E> */ B(LoadIC), R(0), U8(0), U8(117),
+  /*  631 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  632 E> */ B(LoadIC), R(0), U8(0), U8(119),
+  /*  641 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  642 E> */ B(LoadIC), R(0), U8(0), U8(121),
+  /*  651 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  652 E> */ B(LoadIC), R(0), U8(0), U8(123),
+  /*  661 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  662 E> */ B(LoadIC), R(0), U8(0), U8(125),
+  /*  671 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  672 E> */ B(LoadIC), R(0), U8(0), U8(127),
+  /*  681 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  682 E> */ B(LoadIC), R(0), U8(0), U8(129),
+  /*  691 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  692 E> */ B(LoadIC), R(0), U8(0), U8(131),
+  /*  701 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  702 E> */ B(LoadIC), R(0), U8(0), U8(133),
+  /*  711 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  712 E> */ B(LoadIC), R(0), U8(0), U8(135),
+  /*  721 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  722 E> */ B(LoadIC), R(0), U8(0), U8(137),
+  /*  731 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  732 E> */ B(LoadIC), R(0), U8(0), U8(139),
+  /*  741 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  742 E> */ B(LoadIC), R(0), U8(0), U8(141),
+  /*  751 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  752 E> */ B(LoadIC), R(0), U8(0), U8(143),
+  /*  761 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  762 E> */ B(LoadIC), R(0), U8(0), U8(145),
+  /*  771 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  772 E> */ B(LoadIC), R(0), U8(0), U8(147),
+  /*  781 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  782 E> */ B(LoadIC), R(0), U8(0), U8(149),
+  /*  791 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  792 E> */ B(LoadIC), R(0), U8(0), U8(151),
+  /*  801 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  802 E> */ B(LoadIC), R(0), U8(0), U8(153),
+  /*  811 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  812 E> */ B(LoadIC), R(0), U8(0), U8(155),
+  /*  821 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  822 E> */ B(LoadIC), R(0), U8(0), U8(157),
+  /*  831 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  832 E> */ B(LoadIC), R(0), U8(0), U8(159),
+  /*  841 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  842 E> */ B(LoadIC), R(0), U8(0), U8(161),
+  /*  851 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  852 E> */ B(LoadIC), R(0), U8(0), U8(163),
+  /*  861 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  862 E> */ B(LoadIC), R(0), U8(0), U8(165),
+  /*  871 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  872 E> */ B(LoadIC), R(0), U8(0), U8(167),
+  /*  881 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  882 E> */ B(LoadIC), R(0), U8(0), U8(169),
+  /*  891 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  892 E> */ B(LoadIC), R(0), U8(0), U8(171),
+  /*  901 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  902 E> */ B(LoadIC), R(0), U8(0), U8(173),
+  /*  911 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  912 E> */ B(LoadIC), R(0), U8(0), U8(175),
+  /*  921 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  922 E> */ B(LoadIC), R(0), U8(0), U8(177),
+  /*  931 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  932 E> */ B(LoadIC), R(0), U8(0), U8(179),
+  /*  941 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  942 E> */ B(LoadIC), R(0), U8(0), U8(181),
+  /*  951 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  952 E> */ B(LoadIC), R(0), U8(0), U8(183),
+  /*  961 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  962 E> */ B(LoadIC), R(0), U8(0), U8(185),
+  /*  971 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  972 E> */ B(LoadIC), R(0), U8(0), U8(187),
+  /*  981 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  982 E> */ B(LoadIC), R(0), U8(0), U8(189),
+  /*  991 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /*  992 E> */ B(LoadIC), R(0), U8(0), U8(191),
+  /* 1001 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1002 E> */ B(LoadIC), R(0), U8(0), U8(193),
+  /* 1011 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1012 E> */ B(LoadIC), R(0), U8(0), U8(195),
+  /* 1021 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1022 E> */ B(LoadIC), R(0), U8(0), U8(197),
+  /* 1031 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1032 E> */ B(LoadIC), R(0), U8(0), U8(199),
+  /* 1041 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1042 E> */ B(LoadIC), R(0), U8(0), U8(201),
+  /* 1051 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1052 E> */ B(LoadIC), R(0), U8(0), U8(203),
+  /* 1061 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1062 E> */ B(LoadIC), R(0), U8(0), U8(205),
+  /* 1071 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1072 E> */ B(LoadIC), R(0), U8(0), U8(207),
+  /* 1081 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1082 E> */ B(LoadIC), R(0), U8(0), U8(209),
+  /* 1091 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1092 E> */ B(LoadIC), R(0), U8(0), U8(211),
+  /* 1101 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1102 E> */ B(LoadIC), R(0), U8(0), U8(213),
+  /* 1111 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1112 E> */ B(LoadIC), R(0), U8(0), U8(215),
+  /* 1121 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1122 E> */ B(LoadIC), R(0), U8(0), U8(217),
+  /* 1131 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1132 E> */ B(LoadIC), R(0), U8(0), U8(219),
+  /* 1141 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1142 E> */ B(LoadIC), R(0), U8(0), U8(221),
+  /* 1151 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1152 E> */ B(LoadIC), R(0), U8(0), U8(223),
+  /* 1161 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1162 E> */ B(LoadIC), R(0), U8(0), U8(225),
+  /* 1171 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1172 E> */ B(LoadIC), R(0), U8(0), U8(227),
+  /* 1181 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1182 E> */ B(LoadIC), R(0), U8(0), U8(229),
+  /* 1191 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1192 E> */ B(LoadIC), R(0), U8(0), U8(231),
+  /* 1201 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1202 E> */ B(LoadIC), R(0), U8(0), U8(233),
+  /* 1211 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1212 E> */ B(LoadIC), R(0), U8(0), U8(235),
+  /* 1221 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1222 E> */ B(LoadIC), R(0), U8(0), U8(237),
+  /* 1231 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1232 E> */ B(LoadIC), R(0), U8(0), U8(239),
+  /* 1241 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1242 E> */ B(LoadIC), R(0), U8(0), U8(241),
+  /* 1251 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1252 E> */ B(LoadIC), R(0), U8(0), U8(243),
+  /* 1261 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1262 E> */ B(LoadIC), R(0), U8(0), U8(245),
+  /* 1271 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1272 E> */ B(LoadIC), R(0), U8(0), U8(247),
+  /* 1281 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1282 E> */ B(LoadIC), R(0), U8(0), U8(249),
+  /* 1291 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1292 E> */ B(LoadIC), R(0), U8(0), U8(251),
+  /* 1301 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1302 E> */ B(LoadIC), R(0), U8(0), U8(253),
+  /* 1311 S> */ B(Ldar), R(arg0),
+                B(Star), R(0),
+  /* 1312 E> */ B(LoadIC), R(0), U8(0), U8(255),
+  /* 1321 S> */ B(LdaSmi), U8(2),
+  /* 1323 E> */ B(Wide), B(StaGlobalStrict), U16(1), U16(257),
+                B(LdaUndefined),
+  /* 1328 S> */ B(Return),
 ]
 constant pool: [
   "name",
diff --git a/test/cctest/interpreter/bytecode_expectations/StringConstants.golden b/test/cctest/interpreter/bytecode_expectations/StringConstants.golden
index 9cf212c..a35df08 100644
--- a/test/cctest/interpreter/bytecode_expectations/StringConstants.golden
+++ b/test/cctest/interpreter/bytecode_expectations/StringConstants.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaConstant), U8(0),
+  /*   61 S> */ B(Return),
 ]
 constant pool: [
   "This is a string",
@@ -33,11 +33,11 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   58 S> */ B(LdaConstant), U8(1),
+  /*   82 S> */ B(Return),
 ]
 constant pool: [
   "First string",
@@ -54,11 +54,11 @@
 parameter count: 1
 bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Star), R(0),
-  B(LdaConstant), U8(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaConstant), U8(0),
+  /*   42 E> */ B(Star), R(0),
+  /*   57 S> */ B(LdaConstant), U8(0),
+  /*   79 S> */ B(Return),
 ]
 constant pool: [
   "Same string",
diff --git a/test/cctest/interpreter/bytecode_expectations/Switch.golden b/test/cctest/interpreter/bytecode_expectations/Switch.golden
index c908959..c252140 100644
--- a/test/cctest/interpreter/bytecode_expectations/Switch.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Switch.golden
@@ -19,24 +19,24 @@
 parameter count: 1
 bytecode array length: 31
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(7),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(2),
-  B(Return),
-  B(LdaSmi), U8(3),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(1),
+  /*   52 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(7),
+                B(Jump), U8(8),
+  /*   66 S> */ B(LdaSmi), U8(2),
+  /*   97 S> */ B(Return),
+  /*   85 S> */ B(LdaSmi), U8(3),
+  /*   97 S> */ B(Return),
+                B(LdaUndefined),
+  /*   97 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -55,26 +55,26 @@
 parameter count: 1
 bytecode array length: 37
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(10),
-  B(Jump), U8(14),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(Jump), U8(2),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(1),
+  /*   52 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(Jump), U8(14),
+  /*   66 S> */ B(LdaSmi), U8(2),
+  /*   68 E> */ B(Star), R(1),
+  /*   73 S> */ B(Jump), U8(8),
+  /*   89 S> */ B(LdaSmi), U8(3),
+  /*   91 E> */ B(Star), R(1),
+  /*   96 S> */ B(Jump), U8(2),
+                B(LdaUndefined),
+  /*  105 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -93,25 +93,25 @@
 parameter count: 1
 bytecode array length: 35
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(8),
-  B(Jump), U8(12),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(Jump), U8(2),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(1),
+  /*   52 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(8),
+                B(Jump), U8(12),
+  /*   66 S> */ B(LdaSmi), U8(2),
+  /*   68 E> */ B(Star), R(1),
+  /*   98 S> */ B(LdaSmi), U8(3),
+  /*  100 E> */ B(Star), R(1),
+  /*  105 S> */ B(Jump), U8(2),
+                B(LdaUndefined),
+  /*  114 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -131,25 +131,25 @@
 parameter count: 1
 bytecode array length: 35
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(3),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(6),
-  B(Jump), U8(6),
-  B(Jump), U8(10),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Jump), U8(2),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(1),
+  /*   52 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(2),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(3),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(6),
+                B(Jump), U8(6),
+  /*   66 S> */ B(Jump), U8(10),
+  /*   82 S> */ B(Jump), U8(8),
+  /*   99 S> */ B(LdaSmi), U8(1),
+  /*  101 E> */ B(Star), R(1),
+  /*  106 S> */ B(Jump), U8(2),
+                B(LdaUndefined),
+  /*  115 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -169,30 +169,30 @@
 parameter count: 1
 bytecode array length: 44
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(TypeOf),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(3),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(10),
-  B(Jump), U8(14),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Jump), U8(14),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(Jump), U8(2),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(1),
+                B(TypeOf),
+  /*   52 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(2),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(3),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(Jump), U8(14),
+  /*   74 S> */ B(LdaSmi), U8(1),
+  /*   76 E> */ B(Star), R(1),
+  /*   81 S> */ B(Jump), U8(14),
+  /*   97 S> */ B(LdaSmi), U8(2),
+  /*   99 E> */ B(Star), R(1),
+  /*  104 S> */ B(Jump), U8(8),
+  /*  121 S> */ B(LdaSmi), U8(3),
+  /*  123 E> */ B(Star), R(1),
+  /*  128 S> */ B(Jump), U8(2),
+                B(LdaUndefined),
+  /*  137 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -211,24 +211,24 @@
 parameter count: 1
 bytecode array length: 32
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(Ldar), R(1),
-  B(TypeOf),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(4),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(Jump), U8(2),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(1),
+  /*   52 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(2),
+                B(Ldar), R(1),
+                B(TypeOf),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(4),
+                B(Jump), U8(8),
+  /*   74 S> */ B(LdaSmi), U8(1),
+  /*   76 E> */ B(Star), R(1),
+  /*   81 S> */ B(Jump), U8(8),
+  /*   98 S> */ B(LdaSmi), U8(2),
+  /*  100 E> */ B(Star), R(1),
+  /*  105 S> */ B(Jump), U8(2),
+                B(LdaUndefined),
+  /*  114 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -314,152 +314,152 @@
 parameter count: 1
 bytecode array length: 289
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(1),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrueConstant), U8(0),
-  B(JumpConstant), U8(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(1),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(3),
-  B(Star), R(1),
-  B(Jump), U8(2),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(1),
+  /*   52 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(2),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrueConstant), U8(0),
+                B(JumpConstant), U8(1),
+  /*   68 S> */ B(LdaSmi), U8(2),
+  /*   70 E> */ B(Star), R(1),
+  /*   77 S> */ B(LdaSmi), U8(2),
+  /*   79 E> */ B(Star), R(1),
+  /*   86 S> */ B(LdaSmi), U8(2),
+  /*   88 E> */ B(Star), R(1),
+  /*   95 S> */ B(LdaSmi), U8(2),
+  /*   97 E> */ B(Star), R(1),
+  /*  104 S> */ B(LdaSmi), U8(2),
+  /*  106 E> */ B(Star), R(1),
+  /*  113 S> */ B(LdaSmi), U8(2),
+  /*  115 E> */ B(Star), R(1),
+  /*  122 S> */ B(LdaSmi), U8(2),
+  /*  124 E> */ B(Star), R(1),
+  /*  131 S> */ B(LdaSmi), U8(2),
+  /*  133 E> */ B(Star), R(1),
+  /*  140 S> */ B(LdaSmi), U8(2),
+  /*  142 E> */ B(Star), R(1),
+  /*  149 S> */ B(LdaSmi), U8(2),
+  /*  151 E> */ B(Star), R(1),
+  /*  158 S> */ B(LdaSmi), U8(2),
+  /*  160 E> */ B(Star), R(1),
+  /*  167 S> */ B(LdaSmi), U8(2),
+  /*  169 E> */ B(Star), R(1),
+  /*  176 S> */ B(LdaSmi), U8(2),
+  /*  178 E> */ B(Star), R(1),
+  /*  185 S> */ B(LdaSmi), U8(2),
+  /*  187 E> */ B(Star), R(1),
+  /*  194 S> */ B(LdaSmi), U8(2),
+  /*  196 E> */ B(Star), R(1),
+  /*  203 S> */ B(LdaSmi), U8(2),
+  /*  205 E> */ B(Star), R(1),
+  /*  212 S> */ B(LdaSmi), U8(2),
+  /*  214 E> */ B(Star), R(1),
+  /*  221 S> */ B(LdaSmi), U8(2),
+  /*  223 E> */ B(Star), R(1),
+  /*  230 S> */ B(LdaSmi), U8(2),
+  /*  232 E> */ B(Star), R(1),
+  /*  239 S> */ B(LdaSmi), U8(2),
+  /*  241 E> */ B(Star), R(1),
+  /*  248 S> */ B(LdaSmi), U8(2),
+  /*  250 E> */ B(Star), R(1),
+  /*  257 S> */ B(LdaSmi), U8(2),
+  /*  259 E> */ B(Star), R(1),
+  /*  266 S> */ B(LdaSmi), U8(2),
+  /*  268 E> */ B(Star), R(1),
+  /*  275 S> */ B(LdaSmi), U8(2),
+  /*  277 E> */ B(Star), R(1),
+  /*  284 S> */ B(LdaSmi), U8(2),
+  /*  286 E> */ B(Star), R(1),
+  /*  293 S> */ B(LdaSmi), U8(2),
+  /*  295 E> */ B(Star), R(1),
+  /*  302 S> */ B(LdaSmi), U8(2),
+  /*  304 E> */ B(Star), R(1),
+  /*  311 S> */ B(LdaSmi), U8(2),
+  /*  313 E> */ B(Star), R(1),
+  /*  320 S> */ B(LdaSmi), U8(2),
+  /*  322 E> */ B(Star), R(1),
+  /*  329 S> */ B(LdaSmi), U8(2),
+  /*  331 E> */ B(Star), R(1),
+  /*  338 S> */ B(LdaSmi), U8(2),
+  /*  340 E> */ B(Star), R(1),
+  /*  347 S> */ B(LdaSmi), U8(2),
+  /*  349 E> */ B(Star), R(1),
+  /*  356 S> */ B(LdaSmi), U8(2),
+  /*  358 E> */ B(Star), R(1),
+  /*  365 S> */ B(LdaSmi), U8(2),
+  /*  367 E> */ B(Star), R(1),
+  /*  374 S> */ B(LdaSmi), U8(2),
+  /*  376 E> */ B(Star), R(1),
+  /*  383 S> */ B(LdaSmi), U8(2),
+  /*  385 E> */ B(Star), R(1),
+  /*  392 S> */ B(LdaSmi), U8(2),
+  /*  394 E> */ B(Star), R(1),
+  /*  401 S> */ B(LdaSmi), U8(2),
+  /*  403 E> */ B(Star), R(1),
+  /*  410 S> */ B(LdaSmi), U8(2),
+  /*  412 E> */ B(Star), R(1),
+  /*  419 S> */ B(LdaSmi), U8(2),
+  /*  421 E> */ B(Star), R(1),
+  /*  428 S> */ B(LdaSmi), U8(2),
+  /*  430 E> */ B(Star), R(1),
+  /*  437 S> */ B(LdaSmi), U8(2),
+  /*  439 E> */ B(Star), R(1),
+  /*  446 S> */ B(LdaSmi), U8(2),
+  /*  448 E> */ B(Star), R(1),
+  /*  455 S> */ B(LdaSmi), U8(2),
+  /*  457 E> */ B(Star), R(1),
+  /*  464 S> */ B(LdaSmi), U8(2),
+  /*  466 E> */ B(Star), R(1),
+  /*  473 S> */ B(LdaSmi), U8(2),
+  /*  475 E> */ B(Star), R(1),
+  /*  482 S> */ B(LdaSmi), U8(2),
+  /*  484 E> */ B(Star), R(1),
+  /*  491 S> */ B(LdaSmi), U8(2),
+  /*  493 E> */ B(Star), R(1),
+  /*  500 S> */ B(LdaSmi), U8(2),
+  /*  502 E> */ B(Star), R(1),
+  /*  509 S> */ B(LdaSmi), U8(2),
+  /*  511 E> */ B(Star), R(1),
+  /*  518 S> */ B(LdaSmi), U8(2),
+  /*  520 E> */ B(Star), R(1),
+  /*  527 S> */ B(LdaSmi), U8(2),
+  /*  529 E> */ B(Star), R(1),
+  /*  536 S> */ B(LdaSmi), U8(2),
+  /*  538 E> */ B(Star), R(1),
+  /*  545 S> */ B(LdaSmi), U8(2),
+  /*  547 E> */ B(Star), R(1),
+  /*  554 S> */ B(LdaSmi), U8(2),
+  /*  556 E> */ B(Star), R(1),
+  /*  563 S> */ B(LdaSmi), U8(2),
+  /*  565 E> */ B(Star), R(1),
+  /*  572 S> */ B(LdaSmi), U8(2),
+  /*  574 E> */ B(Star), R(1),
+  /*  581 S> */ B(LdaSmi), U8(2),
+  /*  583 E> */ B(Star), R(1),
+  /*  590 S> */ B(LdaSmi), U8(2),
+  /*  592 E> */ B(Star), R(1),
+  /*  599 S> */ B(LdaSmi), U8(2),
+  /*  601 E> */ B(Star), R(1),
+  /*  608 S> */ B(LdaSmi), U8(2),
+  /*  610 E> */ B(Star), R(1),
+  /*  617 S> */ B(LdaSmi), U8(2),
+  /*  619 E> */ B(Star), R(1),
+  /*  626 S> */ B(LdaSmi), U8(2),
+  /*  628 E> */ B(Star), R(1),
+  /*  635 S> */ B(LdaSmi), U8(2),
+  /*  637 E> */ B(Star), R(1),
+  /*  644 S> */ B(Jump), U8(8),
+  /*  662 S> */ B(LdaSmi), U8(3),
+  /*  664 E> */ B(Star), R(1),
+  /*  671 S> */ B(Jump), U8(2),
+                B(LdaUndefined),
+  /*  680 S> */ B(Return),
 ]
 constant pool: [
   262,
@@ -484,38 +484,38 @@
 parameter count: 1
 bytecode array length: 61
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(2),
-  B(Star), R(0),
-  B(Star), R(3),
-  B(LdaSmi), U8(1),
-  B(TestEqualStrict), R(3),
-  B(JumpIfTrue), U8(10),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(3),
-  B(JumpIfTrue), U8(36),
-  B(Jump), U8(38),
-  B(Ldar), R(2),
-  B(Star), R(4),
-  B(LdaSmi), U8(1),
-  B(Add), R(4),
-  B(Star), R(1),
-  B(Star), R(4),
-  B(LdaSmi), U8(2),
-  B(TestEqualStrict), R(4),
-  B(JumpIfTrue), U8(4),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(1),
-  B(Star), R(2),
-  B(Jump), U8(8),
-  B(LdaSmi), U8(2),
-  B(Star), R(2),
-  B(Jump), U8(2),
-  B(LdaSmi), U8(3),
-  B(Star), R(2),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(2),
+  /*   52 E> */ B(Star), R(0),
+  /*   45 S> */ B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(10),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(36),
+                B(Jump), U8(38),
+  /*   77 E> */ B(Ldar), R(2),
+                B(Star), R(4),
+                B(LdaSmi), U8(1),
+                B(Add), R(4),
+  /*   79 E> */ B(Star), R(1),
+  /*   70 S> */ B(Star), R(4),
+                B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(4),
+                B(JumpIfTrue), U8(4),
+                B(Jump), U8(8),
+  /*  101 S> */ B(LdaSmi), U8(1),
+  /*  103 E> */ B(Star), R(2),
+  /*  108 S> */ B(Jump), U8(8),
+  /*  131 S> */ B(LdaSmi), U8(2),
+  /*  133 E> */ B(Star), R(2),
+  /*  138 S> */ B(Jump), U8(2),
+  /*  176 S> */ B(LdaSmi), U8(3),
+  /*  178 E> */ B(Star), R(2),
+                B(LdaUndefined),
+  /*  185 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden b/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden
index da84a49..5d7328b 100644
--- a/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden
@@ -14,21 +14,15 @@
   f = function f() {};
   f();
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 19
+bytecode array length: 7
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(closure),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(5),
-  B(Mov), R(1), R(0),
-  B(Ldar), R(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   21 E> */ B(StackCheck),
+                B(Ldar), R(closure),
+                B(Star), R(0),
+                B(LdaUndefined),
+  /*   25 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -41,23 +35,14 @@
   f = function f() { return f; };
   f();
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 23
+bytecode array length: 6
 bytecodes: [
-  B(LdaTheHole),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(closure),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(5),
-  B(Mov), R(1), R(0),
-  B(Ldar), R(1),
-  B(Ldar), R(0),
-  B(JumpIfNotHole), U8(3),
-  B(LdaUndefined),
-  B(Return),
+  /*   21 E> */ B(StackCheck),
+                B(Ldar), R(closure),
+                B(Star), R(0),
+  /*   36 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/Throw.golden b/test/cctest/interpreter/bytecode_expectations/Throw.golden
index 99e17fc..7c671ac 100644
--- a/test/cctest/interpreter/bytecode_expectations/Throw.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Throw.golden
@@ -15,9 +15,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Throw),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(1),
+  /*   34 E> */ B(Throw),
 ]
 constant pool: [
 ]
@@ -32,9 +32,9 @@
 parameter count: 1
 bytecode array length: 4
 bytecodes: [
-  B(StackCheck),
-  B(LdaConstant), U8(0),
-  B(Throw),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaConstant), U8(0),
+  /*   34 E> */ B(Throw),
 ]
 constant pool: [
   "Error",
@@ -50,14 +50,14 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(JumpIfToBooleanFalse), U8(5),
-  B(LdaConstant), U8(0),
-  B(Throw),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanFalse), U8(5),
+  /*   54 S> */ B(LdaConstant), U8(0),
+  /*   54 E> */ B(Throw),
+                B(LdaUndefined),
+  /*   72 S> */ B(Return),
 ]
 constant pool: [
   "Error",
diff --git a/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden b/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden
index 23d3609..e1d0ec3 100644
--- a/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden
@@ -16,25 +16,25 @@
 parameter count: 1
 bytecode array length: 44
 bytecodes: [
-  B(LdaConstant), U8(0),
-  B(Star), R(1),
-  B(LdaZero),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
-  B(StackCheck),
-  B(LdaConstant), U8(1),
-  B(Star), R(1),
-  B(LdaZero),
-  B(Star), R(2),
-  B(CreateObjectLiteral), U8(2), U8(0), U8(5),
-  B(Star), R(4),
-  B(CreateClosure), U8(3), U8(0),
-  B(StoreICSloppy), R(4), U8(4), U8(3),
-  B(Ldar), R(4),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kInitializeVarGlobal), R(1), U8(3),
-  B(LdaUndefined),
-  B(Return),
+                B(LdaConstant), U8(0),
+                B(Star), R(1),
+                B(LdaZero),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2),
+  /*    0 E> */ B(StackCheck),
+  /*    8 S> */ B(LdaConstant), U8(1),
+                B(Star), R(1),
+                B(LdaZero),
+                B(Star), R(2),
+                B(CreateObjectLiteral), U8(2), U8(0), U8(1),
+                B(Star), R(4),
+                B(CreateClosure), U8(3), U8(0),
+                B(StoreICSloppy), R(4), U8(4), U8(3),
+                B(Ldar), R(4),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kInitializeVarGlobal), R(1), U8(3),
+                B(LdaUndefined),
+  /*   33 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/bytecode_expectations/TryCatch.golden b/test/cctest/interpreter/bytecode_expectations/TryCatch.golden
index 20abd3e..b57baf8 100644
--- a/test/cctest/interpreter/bytecode_expectations/TryCatch.golden
+++ b/test/cctest/interpreter/bytecode_expectations/TryCatch.golden
@@ -15,25 +15,25 @@
 parameter count: 1
 bytecode array length: 40
 bytecodes: [
-  B(StackCheck),
-  B(Mov), R(context), R(1),
-  B(LdaSmi), U8(1),
-  B(Return),
-  B(Star), R(3),
-  B(LdaConstant), U8(0),
-  B(Star), R(2),
-  B(Ldar), R(closure),
-  B(Star), R(4),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(2), U8(3),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(1),
-  B(PushContext), R(0),
-  B(LdaSmi), U8(2),
-  B(PopContext), R(0),
-  B(Return),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(Mov), R(context), R(1),
+  /*   40 S> */ B(LdaSmi), U8(1),
+  /*   75 S> */ B(Return),
+                B(Star), R(3),
+                B(LdaConstant), U8(0),
+                B(Star), R(2),
+                B(Ldar), R(closure),
+                B(Star), R(4),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(2), U8(3),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(1),
+                B(PushContext), R(0),
+  /*   63 S> */ B(LdaSmi), U8(2),
+                B(PopContext), R(0),
+  /*   75 S> */ B(Return),
+                B(LdaUndefined),
+  /*   75 S> */ B(Return),
 ]
 constant pool: [
   "e",
@@ -52,41 +52,41 @@
 parameter count: 1
 bytecode array length: 81
 bytecodes: [
-  B(StackCheck),
-  B(Mov), R(context), R(2),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Jump), U8(30),
-  B(Star), R(4),
-  B(LdaConstant), U8(0),
-  B(Star), R(3),
-  B(Ldar), R(closure),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(3), U8(3),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(2),
-  B(PushContext), R(1),
-  B(PopContext), R(1),
-  B(Mov), R(context), R(2),
-  B(LdaSmi), U8(2),
-  B(Star), R(0),
-  B(Jump), U8(34),
-  B(Star), R(4),
-  B(LdaConstant), U8(1),
-  B(Star), R(3),
-  B(Ldar), R(closure),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(3), U8(3),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(2),
-  B(PushContext), R(1),
-  B(LdaSmi), U8(3),
-  B(Star), R(0),
-  B(PopContext), R(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(Mov), R(context), R(2),
+  /*   47 S> */ B(LdaSmi), U8(1),
+  /*   49 E> */ B(Star), R(0),
+                B(Jump), U8(30),
+                B(Star), R(4),
+                B(LdaConstant), U8(0),
+                B(Star), R(3),
+                B(Ldar), R(closure),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(3), U8(3),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(2),
+                B(PushContext), R(1),
+                B(PopContext), R(1),
+                B(Mov), R(context), R(2),
+  /*   75 S> */ B(LdaSmi), U8(2),
+  /*   77 E> */ B(Star), R(0),
+                B(Jump), U8(34),
+                B(Star), R(4),
+                B(LdaConstant), U8(1),
+                B(Star), R(3),
+                B(Ldar), R(closure),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(3), U8(3),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(2),
+                B(PushContext), R(1),
+  /*   95 S> */ B(LdaSmi), U8(3),
+  /*   97 E> */ B(Star), R(0),
+                B(PopContext), R(1),
+                B(LdaUndefined),
+  /*  103 S> */ B(Return),
 ]
 constant pool: [
   "e1",
diff --git a/test/cctest/interpreter/bytecode_expectations/TryFinally.golden b/test/cctest/interpreter/bytecode_expectations/TryFinally.golden
index e14a709..bd29e1a 100644
--- a/test/cctest/interpreter/bytecode_expectations/TryFinally.golden
+++ b/test/cctest/interpreter/bytecode_expectations/TryFinally.golden
@@ -16,31 +16,31 @@
 parameter count: 1
 bytecode array length: 51
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Mov), R(context), R(3),
-  B(LdaSmi), U8(2),
-  B(Star), R(0),
-  B(LdaSmi), U8(-1),
-  B(Star), R(1),
-  B(Jump), U8(7),
-  B(Star), R(2),
-  B(LdaZero),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Star), R(3),
-  B(LdaSmi), U8(3),
-  B(Star), R(0),
-  B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(3), U8(1),
-  B(LdaZero),
-  B(TestEqualStrict), R(1),
-  B(JumpIfTrue), U8(4),
-  B(Jump), U8(5),
-  B(Ldar), R(2),
-  B(ReThrow),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+                B(Mov), R(context), R(3),
+  /*   51 S> */ B(LdaSmi), U8(2),
+  /*   53 E> */ B(Star), R(0),
+                B(LdaSmi), U8(-1),
+                B(Star), R(1),
+                B(Jump), U8(7),
+                B(Star), R(2),
+                B(LdaZero),
+                B(Star), R(1),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(3),
+  /*   70 S> */ B(LdaSmi), U8(3),
+  /*   72 E> */ B(Star), R(0),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(3), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(1),
+                B(JumpIfTrue), U8(4),
+                B(Jump), U8(5),
+                B(Ldar), R(2),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*   79 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -57,46 +57,46 @@
 parameter count: 1
 bytecode array length: 88
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Mov), R(context), R(4),
-  B(Mov), R(context), R(5),
-  B(LdaSmi), U8(2),
-  B(Star), R(0),
-  B(Jump), U8(34),
-  B(Star), R(7),
-  B(LdaConstant), U8(0),
-  B(Star), R(6),
-  B(Ldar), R(closure),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(6), U8(3),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(5),
-  B(PushContext), R(1),
-  B(LdaSmi), U8(20),
-  B(Star), R(0),
-  B(PopContext), R(1),
-  B(LdaSmi), U8(-1),
-  B(Star), R(2),
-  B(Jump), U8(7),
-  B(Star), R(3),
-  B(LdaZero),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Star), R(4),
-  B(LdaSmi), U8(3),
-  B(Star), R(0),
-  B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
-  B(LdaZero),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(4),
-  B(Jump), U8(5),
-  B(Ldar), R(3),
-  B(ReThrow),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(Star), R(0),
+                B(Mov), R(context), R(4),
+                B(Mov), R(context), R(5),
+  /*   51 S> */ B(LdaSmi), U8(2),
+  /*   53 E> */ B(Star), R(0),
+                B(Jump), U8(34),
+                B(Star), R(7),
+                B(LdaConstant), U8(0),
+                B(Star), R(6),
+                B(Ldar), R(closure),
+                B(Star), R(8),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(6), U8(3),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(5),
+                B(PushContext), R(1),
+  /*   71 S> */ B(LdaSmi), U8(20),
+  /*   73 E> */ B(Star), R(0),
+                B(PopContext), R(1),
+                B(LdaSmi), U8(-1),
+                B(Star), R(2),
+                B(Jump), U8(7),
+                B(Star), R(3),
+                B(LdaZero),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(4),
+  /*   90 S> */ B(LdaSmi), U8(3),
+  /*   92 E> */ B(Star), R(0),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(4),
+                B(Jump), U8(5),
+                B(Ldar), R(3),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*   99 S> */ B(Return),
 ]
 constant pool: [
   "e",
@@ -116,59 +116,59 @@
 parameter count: 1
 bytecode array length: 121
 bytecodes: [
-  B(StackCheck),
-  B(Mov), R(context), R(4),
-  B(Mov), R(context), R(5),
-  B(Mov), R(context), R(6),
-  B(LdaSmi), U8(1),
-  B(Star), R(0),
-  B(Jump), U8(34),
-  B(Star), R(8),
-  B(LdaConstant), U8(0),
-  B(Star), R(7),
-  B(Ldar), R(closure),
-  B(Star), R(9),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(7), U8(3),
-  B(Star), R(6),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(6),
-  B(PushContext), R(1),
-  B(LdaSmi), U8(2),
-  B(Star), R(0),
-  B(PopContext), R(1),
-  B(Jump), U8(34),
-  B(Star), R(7),
-  B(LdaConstant), U8(0),
-  B(Star), R(6),
-  B(Ldar), R(closure),
-  B(Star), R(8),
-  B(CallRuntime), U16(Runtime::kPushCatchContext), R(6), U8(3),
-  B(Star), R(5),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Ldar), R(5),
-  B(PushContext), R(1),
-  B(LdaSmi), U8(20),
-  B(Star), R(0),
-  B(PopContext), R(1),
-  B(LdaSmi), U8(-1),
-  B(Star), R(2),
-  B(Jump), U8(7),
-  B(Star), R(3),
-  B(LdaZero),
-  B(Star), R(2),
-  B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
-  B(Star), R(4),
-  B(LdaSmi), U8(3),
-  B(Star), R(0),
-  B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
-  B(LdaZero),
-  B(TestEqualStrict), R(2),
-  B(JumpIfTrue), U8(4),
-  B(Jump), U8(5),
-  B(Ldar), R(3),
-  B(ReThrow),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+                B(Mov), R(context), R(4),
+                B(Mov), R(context), R(5),
+                B(Mov), R(context), R(6),
+  /*   55 S> */ B(LdaSmi), U8(1),
+  /*   57 E> */ B(Star), R(0),
+                B(Jump), U8(34),
+                B(Star), R(8),
+                B(LdaConstant), U8(0),
+                B(Star), R(7),
+                B(Ldar), R(closure),
+                B(Star), R(9),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(7), U8(3),
+                B(Star), R(6),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(6),
+                B(PushContext), R(1),
+  /*   74 S> */ B(LdaSmi), U8(2),
+  /*   76 E> */ B(Star), R(0),
+                B(PopContext), R(1),
+                B(Jump), U8(34),
+                B(Star), R(7),
+                B(LdaConstant), U8(0),
+                B(Star), R(6),
+                B(Ldar), R(closure),
+                B(Star), R(8),
+                B(CallRuntime), U16(Runtime::kPushCatchContext), R(6), U8(3),
+                B(Star), R(5),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Ldar), R(5),
+                B(PushContext), R(1),
+  /*   95 S> */ B(LdaSmi), U8(20),
+  /*   97 E> */ B(Star), R(0),
+                B(PopContext), R(1),
+                B(LdaSmi), U8(-1),
+                B(Star), R(2),
+                B(Jump), U8(7),
+                B(Star), R(3),
+                B(LdaZero),
+                B(Star), R(2),
+                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+                B(Star), R(4),
+  /*  114 S> */ B(LdaSmi), U8(3),
+  /*  116 E> */ B(Star), R(0),
+                B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
+                B(LdaZero),
+                B(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(4),
+                B(Jump), U8(5),
+                B(Ldar), R(3),
+                B(ReThrow),
+                B(LdaUndefined),
+  /*  123 S> */ B(Return),
 ]
 constant pool: [
   "e",
diff --git a/test/cctest/interpreter/bytecode_expectations/Typeof.golden b/test/cctest/interpreter/bytecode_expectations/Typeof.golden
index e5db7a7..b0e80dd 100644
--- a/test/cctest/interpreter/bytecode_expectations/Typeof.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Typeof.golden
@@ -20,11 +20,11 @@
 parameter count: 1
 bytecode array length: 7
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(13),
-  B(Star), R(0),
-  B(TypeOf),
-  B(Return),
+  /*   10 E> */ B(StackCheck),
+  /*   24 S> */ B(LdaSmi), U8(13),
+  /*   24 E> */ B(Star), R(0),
+  /*   29 S> */ B(TypeOf),
+  /*   47 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -43,10 +43,10 @@
 parameter count: 1
 bytecode array length: 6
 bytecodes: [
-  B(StackCheck),
-  B(LdaGlobalInsideTypeof), U8(0), U8(1),
-  B(TypeOf),
-  B(Return),
+  /*   22 E> */ B(StackCheck),
+  /*   28 S> */ B(LdaGlobalInsideTypeof), U8(0), U8(1),
+                B(TypeOf),
+  /*   46 S> */ B(Return),
 ]
 constant pool: [
   "x",
diff --git a/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden b/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden
index 0a3ca76..f253be9 100644
--- a/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden
+++ b/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden
@@ -19,24 +19,24 @@
 parameter count: 1
 bytecode array length: 31
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(10),
-  B(TestEqual), R(1),
-  B(LogicalNot),
-  B(JumpIfFalse), U8(15),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(10),
-  B(Add), R(1),
-  B(Star), R(0),
-  B(Jump), U8(-22),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaZero),
+  /*   42 E> */ B(Star), R(0),
+  /*   54 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(10),
+  /*   54 E> */ B(TestEqual), R(1),
+                B(LogicalNot),
+                B(JumpIfFalse), U8(15),
+  /*   45 E> */ B(StackCheck),
+  /*   65 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaSmi), U8(10),
+                B(Add), R(1),
+  /*   67 E> */ B(Star), R(0),
+                B(Jump), U8(-22),
+  /*   79 S> */ B(Ldar), R(0),
+  /*   89 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -55,20 +55,20 @@
 parameter count: 1
 bytecode array length: 22
 bytecodes: [
-  B(StackCheck),
-  B(LdaFalse),
-  B(Star), R(0),
-  B(StackCheck),
-  B(Ldar), R(0),
-  B(LogicalNot),
-  B(Star), R(0),
-  B(Ldar), R(0),
-  B(Star), R(1),
-  B(LdaFalse),
-  B(TestEqual), R(1),
-  B(JumpIfTrue), U8(-13),
-  B(Ldar), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaFalse),
+  /*   42 E> */ B(Star), R(0),
+  /*   49 E> */ B(StackCheck),
+  /*   56 S> */ B(Ldar), R(0),
+                B(ToBooleanLogicalNot),
+  /*   58 E> */ B(Star), R(0),
+  /*   74 S> */ B(Ldar), R(0),
+                B(Star), R(1),
+                B(LdaFalse),
+  /*   74 E> */ B(TestEqual), R(1),
+                B(JumpIfTrue), U8(-13),
+  /*   85 S> */ B(Ldar), R(0),
+  /*   95 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -84,14 +84,14 @@
 parameter count: 1
 bytecode array length: 13
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(101),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(3),
-  B(Mul), R(1),
-  B(LdaUndefined),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(101),
+  /*   42 E> */ B(Star), R(0),
+  /*   47 S> */ B(Star), R(1),
+                B(LdaSmi), U8(3),
+                B(Mul), R(1),
+                B(LdaUndefined),
+  /*   67 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -108,18 +108,18 @@
 parameter count: 1
 bytecode array length: 23
 bytecodes: [
-  B(StackCheck),
-  B(Wide), B(LdaSmi), U16(1234),
-  B(Star), R(0),
-  B(Star), R(2),
-  B(Ldar), R(0),
-  B(Mul), R(2),
-  B(Star), R(3),
-  B(LdaSmi), U8(1),
-  B(Sub), R(3),
-  B(LdaUndefined),
-  B(Star), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(Wide), B(LdaSmi), U16(1234),
+  /*   42 E> */ B(Star), R(0),
+  /*   56 S> */ B(Star), R(2),
+  /*   66 E> */ B(Ldar), R(0),
+                B(Mul), R(2),
+                B(Star), R(3),
+                B(LdaSmi), U8(1),
+                B(Sub), R(3),
+                B(LdaUndefined),
+  /*   56 E> */ B(Star), R(1),
+  /*   84 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -135,13 +135,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(13),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(-1),
-  B(BitwiseXor), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(13),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(Star), R(1),
+                B(LdaSmi), U8(-1),
+                B(BitwiseXor), R(1),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -157,13 +157,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(13),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(1),
-  B(Mul), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(13),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(Star), R(1),
+                B(LdaSmi), U8(1),
+                B(Mul), R(1),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -179,13 +179,13 @@
 parameter count: 1
 bytecode array length: 12
 bytecodes: [
-  B(StackCheck),
-  B(LdaSmi), U8(13),
-  B(Star), R(0),
-  B(Star), R(1),
-  B(LdaSmi), U8(-1),
-  B(Mul), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   42 S> */ B(LdaSmi), U8(13),
+  /*   42 E> */ B(Star), R(0),
+  /*   46 S> */ B(Star), R(1),
+                B(LdaSmi), U8(-1),
+                B(Mul), R(1),
+  /*   57 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden b/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden
index 9300775..2c23cce 100644
--- a/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden
+++ b/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden
@@ -171,12 +171,12 @@
 "
 frame size: 157
 parameter count: 1
-bytecode array length: 6
+bytecode array length: 8
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(127),
-  B(Star), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /* 1494 S> */ B(Wide), B(Ldar), R16(127),
+  /* 1497 E> */ B(Star), R(0),
+  /* 1516 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -347,12 +347,12 @@
 "
 frame size: 157
 parameter count: 1
-bytecode array length: 6
+bytecode array length: 10
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(126),
-  B(Star), R(127),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /* 1494 S> */ B(Wide), B(Ldar), R16(126),
+  /* 1499 E> */ B(Wide), B(Star), R16(127),
+  /* 1520 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -523,18 +523,18 @@
 "
 frame size: 158
 parameter count: 1
-bytecode array length: 23
+bytecode array length: 25
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(2),
-  B(Wide), B(Star), R16(157),
-  B(LdaSmi), U8(3),
-  B(Wide), B(TestGreaterThan), R16(157),
-  B(JumpIfFalse), U8(7),
-  B(Wide), B(Ldar), R16(129),
-  B(Return),
-  B(Ldar), R(128),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /* 1494 S> */ B(Ldar), R(2),
+                B(Wide), B(Star), R16(157),
+                B(LdaSmi), U8(3),
+  /* 1501 E> */ B(Wide), B(TestGreaterThan), R16(157),
+                B(JumpIfFalse), U8(7),
+  /* 1508 S> */ B(Wide), B(Ldar), R16(129),
+  /* 1536 S> */ B(Return),
+  /* 1523 S> */ B(Wide), B(Ldar), R16(128),
+  /* 1536 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -709,25 +709,25 @@
 parameter count: 1
 bytecode array length: 48
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(Wide), B(Ldar), R16(129),
-  B(Wide), B(Star), R16(157),
-  B(LdaSmi), U8(3),
-  B(Wide), B(TestEqual), R16(157),
-  B(JumpIfFalse), U8(8),
-  B(Ldar), R(0),
-  B(Wide), B(Star), R16(129),
-  B(Ldar), R(2),
-  B(Wide), B(Star), R16(157),
-  B(LdaSmi), U8(3),
-  B(Wide), B(TestGreaterThan), R16(157),
-  B(JumpIfFalse), U8(5),
-  B(Ldar), R(0),
-  B(Return),
-  B(Wide), B(Ldar), R16(129),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /* 1503 S> */ B(LdaZero),
+  /* 1503 E> */ B(Star), R(0),
+  /* 1506 S> */ B(Wide), B(Ldar), R16(129),
+                B(Wide), B(Star), R16(157),
+                B(LdaSmi), U8(3),
+  /* 1515 E> */ B(Wide), B(TestEqual), R16(157),
+                B(JumpIfFalse), U8(8),
+  /* 1534 S> */ B(Ldar), R(0),
+  /* 1534 E> */ B(Wide), B(Star), R16(129),
+  /* 1540 S> */ B(Ldar), R(2),
+                B(Wide), B(Star), R16(157),
+                B(LdaSmi), U8(3),
+  /* 1547 E> */ B(Wide), B(TestGreaterThan), R16(157),
+                B(JumpIfFalse), U8(5),
+  /* 1554 S> */ B(Ldar), R(0),
+  /* 1580 S> */ B(Return),
+  /* 1567 S> */ B(Wide), B(Ldar), R16(129),
+  /* 1580 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -899,34 +899,34 @@
 "
 frame size: 158
 parameter count: 1
-bytecode array length: 54
+bytecode array length: 66
 bytecodes: [
-  B(StackCheck),
-  B(LdaZero),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(LdaZero),
-  B(Star), R(128),
-  B(Ldar), R(128),
-  B(Wide), B(Star), R16(157),
-  B(LdaSmi), U8(64),
-  B(Wide), B(TestLessThan), R16(157),
-  B(JumpIfFalse), U8(29),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Wide), B(Star), R16(157),
-  B(Ldar), R(128),
-  B(Wide), B(Add), R16(157),
-  B(Star), R(1),
-  B(Ldar), R(128),
-  B(ToNumber),
-  B(Wide), B(Star), R16(157),
-  B(Inc),
-  B(Star), R(128),
-  B(Jump), U8(-39),
-  B(Ldar), R(128),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /* 1503 S> */ B(LdaZero),
+  /* 1503 E> */ B(Star), R(0),
+  /* 1515 S> */ B(LdaZero),
+  /* 1515 E> */ B(Star), R(1),
+  /* 1523 S> */ B(LdaZero),
+  /* 1528 E> */ B(Wide), B(Star), R16(128),
+  /* 1538 S> */ B(Wide), B(Ldar), R16(128),
+                B(Wide), B(Star), R16(157),
+                B(LdaSmi), U8(64),
+  /* 1538 E> */ B(Wide), B(TestLessThan), R16(157),
+                B(JumpIfFalse), U8(35),
+  /* 1518 E> */ B(StackCheck),
+  /* 1555 S> */ B(Ldar), R(1),
+                B(Wide), B(Star), R16(157),
+  /* 1561 E> */ B(Wide), B(Ldar), R16(128),
+                B(Wide), B(Add), R16(157),
+  /* 1558 E> */ B(Star), R(1),
+  /* 1548 S> */ B(Wide), B(Ldar), R16(128),
+                B(ToNumber),
+                B(Wide), B(Star), R16(157),
+                B(Inc),
+  /* 1548 E> */ B(Wide), B(Star), R16(128),
+                B(Jump), U8(-47),
+  /* 1567 S> */ B(Wide), B(Ldar), R16(128),
+  /* 1580 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -1098,37 +1098,37 @@
 "
 frame size: 163
 parameter count: 1
-bytecode array length: 80
+bytecode array length: 84
 bytecodes: [
-  B(StackCheck),
-  B(Wide), B(LdaSmi), U16(1234),
-  B(Star), R(0),
-  B(LdaZero),
-  B(Star), R(1),
-  B(Ldar), R(0),
-  B(JumpIfUndefined), U8(65),
-  B(JumpIfNull), U8(63),
-  B(ToObject),
-  B(Wide), B(Star), R16(157),
-  B(Wide), B(ForInPrepare), R16(158),
-  B(LdaZero),
-  B(Wide), B(Star), R16(161),
-  B(Wide), B(ForInDone), R16(161), R16(160),
-  B(JumpIfTrue), U8(41),
-  B(Wide), B(ForInNext), R16(157), R16(161), R16(158), U16(1),
-  B(JumpIfUndefined), U8(19),
-  B(Star), R(128),
-  B(StackCheck),
-  B(Ldar), R(1),
-  B(Wide), B(Star), R16(162),
-  B(Ldar), R(128),
-  B(Wide), B(Add), R16(162),
-  B(Star), R(1),
-  B(Wide), B(ForInStep), R16(161),
-  B(Wide), B(Star), R16(161),
-  B(Jump), U8(-45),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /* 1503 S> */ B(Wide), B(LdaSmi), U16(1234),
+  /* 1503 E> */ B(Star), R(0),
+  /* 1518 S> */ B(LdaZero),
+  /* 1518 E> */ B(Star), R(1),
+  /* 1534 S> */ B(Ldar), R(0),
+                B(JumpIfUndefined), U8(69),
+                B(JumpIfNull), U8(67),
+                B(ToObject),
+                B(Wide), B(Star), R16(157),
+                B(Wide), B(ForInPrepare), R16(158),
+                B(LdaZero),
+                B(Wide), B(Star), R16(161),
+  /* 1526 S> */ B(Wide), B(ForInDone), R16(161), R16(160),
+                B(JumpIfTrue), U8(45),
+                B(Wide), B(ForInNext), R16(157), R16(161), R16(158), U16(1),
+                B(JumpIfUndefined), U8(23),
+                B(Wide), B(Star), R16(128),
+  /* 1521 E> */ B(StackCheck),
+  /* 1541 S> */ B(Ldar), R(1),
+                B(Wide), B(Star), R16(162),
+  /* 1547 E> */ B(Wide), B(Ldar), R16(128),
+                B(Wide), B(Add), R16(162),
+  /* 1544 E> */ B(Star), R(1),
+                B(Wide), B(ForInStep), R16(161),
+                B(Wide), B(Star), R16(161),
+                B(Jump), U8(-49),
+  /* 1553 S> */ B(Ldar), R(1),
+  /* 1564 S> */ B(Return),
 ]
 constant pool: [
 ]
@@ -1303,22 +1303,22 @@
 parameter count: 1
 bytecode array length: 55
 bytecodes: [
-  B(StackCheck),
-  B(Ldar), R(64),
-  B(Wide), B(Star), R16(157),
-  B(Ldar), R(63),
-  B(Wide), B(Star), R16(158),
-  B(Wide), B(CallRuntime), U16(Runtime::kAdd), R16(157), U16(2),
-  B(Star), R(0),
-  B(Ldar), R(27),
-  B(Wide), B(Star), R16(157),
-  B(Wide), B(Ldar), R16(143),
-  B(Wide), B(Star), R16(158),
-  B(Wide), B(CallRuntime), U16(Runtime::kAdd), R16(157), U16(2),
-  B(Star), R(1),
-  B(CallRuntime), U16(Runtime::kTheHole), R(0), U8(0),
-  B(Ldar), R(1),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /* 1494 S> */ B(Ldar), R(64),
+                B(Wide), B(Star), R16(157),
+  /* 1509 E> */ B(Ldar), R(63),
+                B(Wide), B(Star), R16(158),
+                B(Wide), B(CallRuntime), U16(Runtime::kAdd), R16(157), U16(2),
+  /* 1497 E> */ B(Star), R(0),
+  /* 1515 S> */ B(Ldar), R(27),
+                B(Wide), B(Star), R16(157),
+  /* 1530 E> */ B(Wide), B(Ldar), R16(143),
+                B(Wide), B(Star), R16(158),
+                B(Wide), B(CallRuntime), U16(Runtime::kAdd), R16(157), U16(2),
+  /* 1518 E> */ B(Star), R(1),
+  /* 1537 S> */ B(CallRuntime), U16(Runtime::kTheHole), R(0), U8(0),
+  /* 1549 S> */ B(Ldar), R(1),
+  /* 1560 S> */ B(Return),
 ]
 constant pool: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/WithStatement.golden b/test/cctest/interpreter/bytecode_expectations/WithStatement.golden
index 350a0a5..e1b7eda 100644
--- a/test/cctest/interpreter/bytecode_expectations/WithStatement.golden
+++ b/test/cctest/interpreter/bytecode_expectations/WithStatement.golden
@@ -15,18 +15,18 @@
 parameter count: 1
 bytecode array length: 26
 bytecodes: [
-  B(StackCheck),
-  B(CreateObjectLiteral), U8(0), U8(0), U8(5),
-  B(Star), R(1),
-  B(ToObject),
-  B(Star), R(2),
-  B(Ldar), R(closure),
-  B(Star), R(3),
-  B(CallRuntime), U16(Runtime::kPushWithContext), R(2), U8(2),
-  B(PushContext), R(0),
-  B(LdaLookupSlot), U8(1),
-  B(PopContext), R(0),
-  B(Return),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
+                B(Star), R(1),
+                B(ToObject),
+                B(Star), R(2),
+                B(Ldar), R(closure),
+                B(Star), R(3),
+                B(CallRuntime), U16(Runtime::kPushWithContext), R(2), U8(2),
+                B(PushContext), R(0),
+  /*   50 S> */ B(LdaLookupSlot), U8(1),
+                B(PopContext), R(0),
+  /*   62 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::FIXED_ARRAY_TYPE,
diff --git a/test/cctest/interpreter/generate-bytecode-expectations.cc b/test/cctest/interpreter/generate-bytecode-expectations.cc
index 92ba9ba..f3dfd06 100644
--- a/test/cctest/interpreter/generate-bytecode-expectations.cc
+++ b/test/cctest/interpreter/generate-bytecode-expectations.cc
@@ -44,6 +44,7 @@
         execute_(true),
         top_level_(false),
         do_expressions_(false),
+        ignition_generators_(false),
         verbose_(false),
         const_pool_type_(
             BytecodeExpectationsPrinter::ConstantPoolType::kMixed) {}
@@ -64,6 +65,7 @@
   bool execute() const { return execute_; }
   bool top_level() const { return top_level_; }
   bool do_expressions() const { return do_expressions_; }
+  bool ignition_generators() const { return ignition_generators_; }
   bool verbose() const { return verbose_; }
   bool suppress_runtime_errors() const { return rebaseline_ && !verbose_; }
   BytecodeExpectationsPrinter::ConstantPoolType const_pool_type() const {
@@ -83,6 +85,7 @@
   bool execute_;
   bool top_level_;
   bool do_expressions_;
+  bool ignition_generators_;
   bool verbose_;
   BytecodeExpectationsPrinter::ConstantPoolType const_pool_type_;
   std::vector<std::string> input_filenames_;
@@ -212,6 +215,8 @@
       options.top_level_ = true;
     } else if (strcmp(argv[i], "--do-expressions") == 0) {
       options.do_expressions_ = true;
+    } else if (strcmp(argv[i], "--ignition-generators") == 0) {
+      options.ignition_generators_ = true;
     } else if (strcmp(argv[i], "--verbose") == 0) {
       options.verbose_ = true;
     } else if (strncmp(argv[i], "--output=", 9) == 0) {
@@ -316,6 +321,8 @@
       top_level_ = ParseBoolean(line.c_str() + 11);
     } else if (line.compare(0, 16, "do expressions: ") == 0) {
       do_expressions_ = ParseBoolean(line.c_str() + 16);
+    } else if (line.compare(0, 21, "ignition generators: ") == 0) {
+      ignition_generators_ = ParseBoolean(line.c_str() + 21);
     } else if (line == "---") {
       break;
     } else if (line.empty()) {
@@ -340,6 +347,7 @@
 
   if (top_level_) stream << "\ntop level: yes";
   if (do_expressions_) stream << "\ndo expressions: yes";
+  if (ignition_generators_) stream << "\nignition generators: yes";
 
   stream << "\n\n";
 }
@@ -445,6 +453,7 @@
   }
 
   if (options.do_expressions()) i::FLAG_harmony_do_expressions = true;
+  if (options.ignition_generators()) i::FLAG_ignition_generators = true;
 
   stream << "#\n# Autogenerated by generate-bytecode-expectations.\n#\n\n";
   options.PrintHeader(stream);
@@ -497,6 +506,7 @@
          "Specify the name of the test function.\n"
          "  --top-level   Process top level code, not the top-level function.\n"
          "  --do-expressions  Enable harmony_do_expressions flag.\n"
+         "  --ignition-generators  Enable ignition_generators flag.\n"
          "  --output=file.name\n"
          "      Specify the output file. If not specified, output goes to "
          "stdout.\n"
diff --git a/test/cctest/interpreter/test-bytecode-generator.cc b/test/cctest/interpreter/test-bytecode-generator.cc
index 2519f25..3d0fe6f 100644
--- a/test/cctest/interpreter/test-bytecode-generator.cc
+++ b/test/cctest/interpreter/test-bytecode-generator.cc
@@ -113,6 +113,44 @@
   return actual_stream.str();
 }
 
+bool CompareTexts(const std::string& generated, const std::string& expected) {
+  std::istringstream generated_stream(generated);
+  std::istringstream expected_stream(expected);
+  std::string generated_line;
+  std::string expected_line;
+  // Line number does not include golden file header.
+  int line_number = 0;
+
+  do {
+    std::getline(generated_stream, generated_line);
+    std::getline(expected_stream, expected_line);
+
+    if (!generated_stream.good() && !expected_stream.good()) {
+      return true;
+    }
+
+    if (!generated_stream.good()) {
+      std::cerr << "Expected has extra lines after line " << line_number
+                << "\n";
+      std::cerr << "  Expected: '" << expected_line << "'\n";
+      return false;
+    } else if (!expected_stream.good()) {
+      std::cerr << "Generated has extra lines after line " << line_number
+                << "\n";
+      std::cerr << "  Generated: '" << generated_line << "'\n";
+      return false;
+    }
+
+    if (generated_line != expected_line) {
+      std::cerr << "Inputs differ at line " << line_number << "\n";
+      std::cerr << "  Generated: '" << generated_line << "'\n";
+      std::cerr << "  Expected:  '" << expected_line << "'\n";
+      return false;
+    }
+    line_number++;
+  } while (true);
+}
+
 using ConstantPoolType = BytecodeExpectationsPrinter::ConstantPoolType;
 
 TEST(PrimitiveReturnStatements) {
@@ -122,27 +160,27 @@
   const char* snippets[] = {
       "",
 
-      "return;",
+      "return;\n",
 
-      "return null;",
+      "return null;\n",
 
-      "return true;",
+      "return true;\n",
 
-      "return false;",
+      "return false;\n",
 
-      "return 0;",
+      "return 0;\n",
 
-      "return +1;",
+      "return +1;\n",
 
-      "return -1;",
+      "return -1;\n",
 
-      "return +127;",
+      "return +127;\n",
 
-      "return -128;",
+      "return -128;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("PrimitiveReturnStatements.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("PrimitiveReturnStatements.golden")));
 }
 
 TEST(PrimitiveExpressions) {
@@ -150,35 +188,35 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kNumber);
   const char* snippets[] = {
-      "var x = 0; return x;",
+      "var x = 0; return x;\n",
 
-      "var x = 0; return x + 3;",
+      "var x = 0; return x + 3;\n",
 
-      "var x = 0; return x - 3;",
+      "var x = 0; return x - 3;\n",
 
-      "var x = 4; return x * 3;",
+      "var x = 4; return x * 3;\n",
 
-      "var x = 4; return x / 3;",
+      "var x = 4; return x / 3;\n",
 
-      "var x = 4; return x % 3;",
+      "var x = 4; return x % 3;\n",
 
-      "var x = 1; return x | 2;",
+      "var x = 1; return x | 2;\n",
 
-      "var x = 1; return x ^ 2;",
+      "var x = 1; return x ^ 2;\n",
 
-      "var x = 1; return x & 2;",
+      "var x = 1; return x & 2;\n",
 
-      "var x = 10; return x << 3;",
+      "var x = 10; return x << 3;\n",
 
-      "var x = 10; return x >> 3;",
+      "var x = 10; return x >> 3;\n",
 
-      "var x = 10; return x >>> 3;",
+      "var x = 10; return x >>> 3;\n",
 
-      "var x = 0; return (x, 3);",
+      "var x = 0; return (x, 3);\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("PrimitiveExpressions.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("PrimitiveExpressions.golden")));
 }
 
 TEST(LogicalExpressions) {
@@ -186,43 +224,43 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kNumber);
   const char* snippets[] = {
-      "var x = 0; return x || 3;",
+      "var x = 0; return x || 3;\n",
 
-      "var x = 0; return (x == 1) || 3;",
+      "var x = 0; return (x == 1) || 3;\n",
 
-      "var x = 0; return x && 3;",
+      "var x = 0; return x && 3;\n",
 
-      "var x = 0; return (x == 0) && 3;",
+      "var x = 0; return (x == 0) && 3;\n",
 
-      "var x = 0; return x || (1, 2, 3);",
+      "var x = 0; return x || (1, 2, 3);\n",
 
-      "var a = 2, b = 3, c = 4; return a || (a, b, a, b, c = 5, 3);",
+      "var a = 2, b = 3, c = 4; return a || (a, b, a, b, c = 5, 3);\n",
 
       "var x = 1; var a = 2, b = 3; return x || ("  //
       REPEAT_32("\n  a = 1, b = 2, ")               //
-      "3);",
+      "3);\n",
 
       "var x = 0; var a = 2, b = 3; return x && ("  //
       REPEAT_32("\n  a = 1, b = 2, ")               //
-      "3);",
+      "3);\n",
 
       "var x = 1; var a = 2, b = 3; return (x > 3) || ("  //
       REPEAT_32("\n  a = 1, b = 2, ")                     //
-      "3);",
+      "3);\n",
 
       "var x = 0; var a = 2, b = 3; return (x < 5) && ("  //
       REPEAT_32("\n  a = 1, b = 2, ")                     //
-      "3);",
+      "3);\n",
 
-      "return 0 && 3;",
+      "return 0 && 3;\n",
 
-      "return 1 || 3;",
+      "return 1 || 3;\n",
 
-      "var x = 1; return x && 3 || 0, 1;",
+      "var x = 1; return x && 3 || 0, 1;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("LogicalExpressions.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("LogicalExpressions.golden")));
 }
 
 TEST(Parameters) {
@@ -248,8 +286,8 @@
       "function f(arg1, arg2, arg3, arg4) { arg2 = 1; }",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets, "", "\nf();"),
-           LoadGolden("Parameters.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets, "", "\nf();"),
+                     LoadGolden("Parameters.golden")));
 }
 
 TEST(IntegerConstants) {
@@ -257,15 +295,15 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kNumber);
   const char* snippets[] = {
-      "return 12345678;",
+      "return 12345678;\n",
 
-      "var a = 1234; return 5678;",
+      "var a = 1234; return 5678;\n",
 
-      "var a = 1234; return 1234;",
+      "var a = 1234; return 1234;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("IntegerConstants.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("IntegerConstants.golden")));
 }
 
 TEST(HeapNumberConstants) {
@@ -273,19 +311,19 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kNumber);
   const char* snippets[] = {
-      "return 1.2;",
+      "return 1.2;\n",
 
-      "var a = 1.2; return 2.6;",
+      "var a = 1.2; return 2.6;\n",
 
-      "var a = 3.14; return 3.14;",
+      "var a = 3.14; return 3.14;\n",
 
       "var a;"                    //
       REPEAT_256("\na = 1.414;")  //
-      " a = 3.14;",
+      " a = 3.14;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("HeapNumberConstants.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("HeapNumberConstants.golden")));
 }
 
 TEST(StringConstants) {
@@ -293,15 +331,15 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kString);
   const char* snippets[] = {
-      "return \"This is a string\";",
+      "return \"This is a string\";\n",
 
-      "var a = \"First string\"; return \"Second string\";",
+      "var a = \"First string\"; return \"Second string\";\n",
 
-      "var a = \"Same string\"; return \"Same string\";",
+      "var a = \"Same string\"; return \"Same string\";\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("StringConstants.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("StringConstants.golden")));
 }
 
 TEST(PropertyLoads) {
@@ -313,16 +351,16 @@
 
   const char* snippets[] = {
     "function f(a) { return a.name; }\n"
-    "f({name : \"test\"});",
+    "f({name : \"test\"});\n",
 
     "function f(a) { return a[\"key\"]; }\n"
-    "f({key : \"test\"});",
+    "f({key : \"test\"});\n",
 
     "function f(a) { return a[100]; }\n"
-    "f({100 : \"test\"});",
+    "f({100 : \"test\"});\n",
 
     "function f(a, b) { return a[b]; }\n"
-    "f({arg : \"test\"}, \"arg\");",
+    "f({arg : \"test\"}, \"arg\");\n",
 
     "function f(a) { var b = a.name; return a[-124]; }\n"
     "f({\"-124\" : \"test\", name : 123 })",
@@ -344,7 +382,8 @@
     "f({name : \"test\"}, \"name\")\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("PropertyLoads.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("PropertyLoads.golden")));
 }
 
 TEST(PropertyStores) {
@@ -407,7 +446,8 @@
     "f({name : \"test\"})\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("PropertyStores.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("PropertyStores.golden")));
 }
 
 #define FUNC_ARG "new (function Obj() { this.func = function() { return; }})()"
@@ -436,7 +476,8 @@
       "f(" FUNC_ARG ")",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("PropertyCall.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("PropertyCall.golden")));
 }
 
 TEST(LoadGlobal) {
@@ -465,10 +506,11 @@
     REPEAT_127("  b.name;\n")
     "  return a;\n"
     "}\n"
-    "f({name: 1});",
+    "f({name: 1});\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("LoadGlobal.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("LoadGlobal.golden")));
 }
 
 TEST(StoreGlobal) {
@@ -481,18 +523,18 @@
   const char* snippets[] = {
     "var a = 1;\n"
     "function f() { a = 2; }\n"
-    "f();",
+    "f();\n",
 
     "var a = \"test\"; function f(b) { a = b; }\n"
-    "f(\"global\");",
+    "f(\"global\");\n",
 
     "'use strict'; var a = 1;\n"
     "function f() { a = 2; }\n"
-    "f();",
+    "f();\n",
 
     "a = 1;\n"
     "function f() { a = 2; }\n"
-    "f();",
+    "f();\n",
 
     "a = 1;\n"
     "function f(b) {\n"
@@ -500,7 +542,7 @@
     REPEAT_127("  b.name;\n")
     "  a = 2;\n"
     "}\n"
-    "f({name: 1});",
+    "f({name: 1});\n",
 
     "a = 1;\n"
     "function f(b) {\n"
@@ -509,10 +551,11 @@
     REPEAT_127("  b.name;\n")
     "  a = 2;\n"
     "}\n"
-    "f({name: 1});",
+    "f({name: 1});\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("StoreGlobal.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("StoreGlobal.golden")));
 }
 
 TEST(CallGlobal) {
@@ -525,14 +568,15 @@
   const char* snippets[] = {
       "function t() { }\n"
       "function f() { return t(); }\n"
-      "f();",
+      "f();\n",
 
       "function t(a, b, c) { }\n"
       "function f() { return t(1, 2, 3); }\n"
-      "f();",
+      "f();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("CallGlobal.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("CallGlobal.golden")));
 }
 
 TEST(CallRuntime) {
@@ -544,30 +588,26 @@
 
   const char* snippets[] = {
       "function f() { %TheHole() }\n"
-      "f();",
+      "f();\n",
 
       "function f(a) { return %IsArray(a) }\n"
-      "f(undefined);",
+      "f(undefined);\n",
 
       "function f() { return %Add(1, 2) }\n"
-      "f();",
+      "f();\n",
 
       "function f() { return %spread_iterable([1]) }\n"
-      "f();",
+      "f();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("CallRuntime.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("CallRuntime.golden")));
 }
 
 TEST(IfConditions) {
-  if (FLAG_harmony_instanceof) {
-    // TODO(mvstanton): when ES6 instanceof ships, regenerate the bytecode
-    // expectations and remove this flag check.
-    return;
-  }
   InitializedIgnitionHandleScope scope;
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
-                                      ConstantPoolType::kNumber);
+                                      ConstantPoolType::kMixed);
   printer.set_wrap(false);
   printer.set_test_function_name("f");
 
@@ -579,7 +619,7 @@
     "    return -1;\n"
     "  }\n"
     "};\n"
-    "f();",
+    "f();\n",
 
     "function f() {\n"
     "  if ('lucky') {\n"
@@ -588,7 +628,7 @@
     "    return -1;\n"
     "  }\n"
     "};\n"
-    "f();",
+    "f();\n",
 
     "function f() {\n"
     "  if (false) {\n"
@@ -597,14 +637,14 @@
     "    return -1;\n"
     "  }\n"
     "};\n"
-    "f();",
+    "f();\n",
 
     "function f() {\n"
     "  if (false) {\n"
     "    return 1;\n"
     "  }\n"
     "};\n"
-    "f();",
+    "f();\n",
 
     "function f() {\n"
     "  var a = 1;\n"
@@ -614,7 +654,7 @@
     "    return 2;\n"
     "  }\n"
     "};\n"
-    "f();",
+    "f();\n",
 
     "function f(a) {\n"
     "  if (a <= 0) {\n"
@@ -623,14 +663,14 @@
     "    return -200;\n"
     "  }\n"
     "};\n"
-    "f(99);",
+    "f(99);\n",
 
     "function f(a, b) { if (a in b) { return 200; } }"
-    "f('prop', { prop: 'yes'});",
+    "f('prop', { prop: 'yes'});\n",
 
     "function f(z) { var a = 0; var b = 0; if (a === 0.01) {\n"
     REPEAT_64("  b = a; a = b;\n")
-    " return 200; } else { return -200; } } f(0.001);",
+    " return 200; } else { return -200; } } f(0.001);\n",
 
     "function f() {\n"
     "  var a = 0; var b = 0;\n"
@@ -638,7 +678,7 @@
     REPEAT_64("  b = a; a = b;\n")
     "  return 200; } else { return -200; }\n"
     "};\n"
-    "f();",
+    "f();\n",
 
     "function f(a, b) {\n"
     "  if (a == b) { return 1; }\n"
@@ -651,7 +691,7 @@
     "  if (a instanceof b) { return 1; }\n"
     "  return 0;\n"
     "}\n"
-    "f(1, 1);",
+    "f(1, 1);\n",
 
     "function f() {\n"
     "  var a = 0;\n"
@@ -661,10 +701,11 @@
     "    return -20;\n"
     "  }\n"
     "};\n"
-    "f();",
+    "f();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("IfConditions.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("IfConditions.golden")));
 }
 
 TEST(DeclareGlobals) {
@@ -677,18 +718,19 @@
   printer.set_top_level(true);
 
   const char* snippets[] = {
-      "var a = 1;",
+      "var a = 1;\n",
 
-      "function f() {}",
+      "function f() {}\n",
 
       "var a = 1;\n"
-      "a=2;",
+      "a=2;\n",
 
       "function f() {}\n"
-      "f();",
+      "f();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("DeclareGlobals.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("DeclareGlobals.golden")));
 }
 
 TEST(BreakableBlocks) {
@@ -703,7 +745,7 @@
       "  break label;\n"
       "  x = x + 1;\n"
       "}\n"
-      "return x;",
+      "return x;\n",
 
       "var sum = 0;\n"
       "outer: {\n"
@@ -714,7 +756,7 @@
       "    }\n"
       "  }\n"
       "}\n"
-      "return sum;",
+      "return sum;\n",
 
       "outer: {\n"
       "  let y = 10;\n"
@@ -731,11 +773,11 @@
       "    y = 3;\n"
       "  }\n"
       "}\n"
-      "x = 4;",
+      "x = 4;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("BreakableBlocks.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("BreakableBlocks.golden")));
 }
 
 TEST(BasicLoops) {
@@ -745,13 +787,13 @@
   const char* snippets[] = {
       "var x = 0;\n"
       "while (false) { x = 99; break; continue; }\n"
-      "return x;",
+      "return x;\n",
 
       "var x = 0;\n"
       "while (false) {\n"
       "  x = x + 1;\n"
       "};\n"
-      "return x;",
+      "return x;\n",
 
       "var x = 0;\n"
       "var y = 1;\n"
@@ -761,7 +803,7 @@
       "  if (x == 3) continue;\n"
       "  if (x == 4) break;\n"
       "}\n"
-      "return y;",
+      "return y;\n",
 
       "var i = 0;\n"
       "while (true) {\n"
@@ -772,7 +814,7 @@
       "  if (i == 5) break;\n"
       "  i = i + 1;\n"
       "}\n"
-      "return i;",
+      "return i;\n",
 
       "var i = 0;\n"
       "while (true) {\n"
@@ -783,7 +825,7 @@
       "  i = i + 1;\n"
       "  break;\n"
       "}\n"
-      "return i;",
+      "return i;\n",
 
       "var x = 10;\n"
       "var y = 1;\n"
@@ -791,7 +833,7 @@
       "  y = y * 12;\n"
       "  x = x - 1;\n"
       "}\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 0; var y = 1;\n"
       "do {\n"
@@ -800,7 +842,7 @@
       "  if (x == 6) continue;\n"
       "  x = x + 1;\n"
       "} while (x < 10);\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 10;\n"
       "var y = 1;\n"
@@ -808,7 +850,7 @@
       "  y = y * 12;\n"
       "  x = x - 1;\n"
       "} while (x);\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 0; var y = 1;\n"
       "do {\n"
@@ -817,7 +859,7 @@
       "  x = x + 1;\n"
       "  if (x == 6) continue;\n"
       "} while (false);\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 0; var y = 1;\n"
       "do {\n"
@@ -826,56 +868,56 @@
       "  x = x + 1;\n"
       "  if (x == 6) continue;\n"
       "} while (true);\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 0;\n"
       "for (;;) {\n"
       "  if (x == 1) break;\n"
       "  if (x == 2) continue;\n"
       "  x = x + 1;\n"
-      "}",
+      "}\n",
 
       "for (var x = 0;;) {\n"
       "  if (x == 1) break;\n"
       "  if (x == 2) continue;\n"
       "  x = x + 1;\n"
-      "}",
+      "}\n",
 
       "var x = 0;\n"
       "for (;; x = x + 1) {\n"
       "  if (x == 1) break;\n"
       "  if (x == 2) continue;\n"
-      "}",
+      "}\n",
 
       "for (var x = 0;; x = x + 1) {\n"
       "  if (x == 1) break;\n"
       "  if (x == 2) continue;\n"
-      "}",
+      "}\n",
 
       "var u = 0;\n"
       "for (var i = 0; i < 100; i = i + 1) {\n"
       "  u = u + 1;\n"
       "  continue;\n"
-      "}",
+      "}\n",
 
       "var y = 1;\n"
       "for (var x = 10; x; --x) {\n"
       "  y = y * 12;\n"
       "}\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 0;\n"
       "for (var i = 0; false; i++) {\n"
       "  x = x + 1;\n"
       "};\n"
-      "return x;",
+      "return x;\n",
 
       "var x = 0;\n"
       "for (var i = 0; true; ++i) {\n"
       "  x = x + 1;\n"
       "  if (x == 20) break;\n"
       "};\n"
-      "return x;",
+      "return x;\n",
 
       "var a = 0;\n"
       "while (a) {\n"
@@ -885,10 +927,11 @@
       "   if (z) continue;\n"
       "   z++;\n"
       "  }\n"
-      "}",
+      "}\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("BasicLoops.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("BasicLoops.golden")));
 }
 
 TEST(JumpsRequiringConstantWideOperands) {
@@ -904,11 +947,11 @@
     "  if (i == 1) continue;\n"
     "  if (i == 2) break;\n"
     "}\n"
-    "return 3;",
+    "return 3;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("JumpsRequiringConstantWideOperands.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("JumpsRequiringConstantWideOperands.golden")));
 }
 
 TEST(UnaryOperators) {
@@ -920,32 +963,33 @@
       "while (x != 10) {\n"
       "  x = x + 10;\n"
       "}\n"
-      "return x;",
+      "return x;\n",
 
       "var x = false;\n"
       "do {\n"
       "  x = !x;\n"
       "} while(x == false);\n"
-      "return x;",
+      "return x;\n",
 
       "var x = 101;\n"
-      "return void(x * 3);",
+      "return void(x * 3);\n",
 
       "var x = 1234;\n"
       "var y = void (x * x - 1);\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 13;\n"
-      "return ~x;",
+      "return ~x;\n",
 
       "var x = 13;\n"
-      "return +x;",
+      "return +x;\n",
 
       "var x = 13;\n"
-      "return -x;",
+      "return -x;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("UnaryOperators.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("UnaryOperators.golden")));
 }
 
 TEST(Typeof) {
@@ -967,8 +1011,8 @@
       "};",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets, "", "\nf();"),
-           LoadGolden("Typeof.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets, "", "\nf();"),
+                     LoadGolden("Typeof.golden")));
 }
 
 TEST(Delete) {
@@ -977,23 +1021,24 @@
                                       ConstantPoolType::kMixed);
 
   const char* snippets[] = {
-      "var a = {x:13, y:14}; return delete a.x;",
+      "var a = {x:13, y:14}; return delete a.x;\n",
 
-      "'use strict'; var a = {x:13, y:14}; return delete a.x;",
+      "'use strict'; var a = {x:13, y:14}; return delete a.x;\n",
 
-      "var a = {1:13, 2:14}; return delete a[2];",
+      "var a = {1:13, 2:14}; return delete a[2];\n",
 
-      "var a = 10; return delete a;",
+      "var a = 10; return delete a;\n",
 
       "'use strict';\n"
       "var a = {1:10};\n"
       "(function f1() {return a;});\n"
-      "return delete a[1];",
+      "return delete a[1];\n",
 
-      "return delete 'test';",
+      "return delete 'test';\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("Delete.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("Delete.golden")));
 }
 
 TEST(GlobalDelete) {
@@ -1008,29 +1053,30 @@
       "function f() {\n"
       "  return delete a.x;\n"
       "};\n"
-      "f();",
+      "f();\n",
 
       "a = {1:13, 2:14};\n"
       "function f() {\n"
       "  'use strict';\n"
       "  return delete a[1];\n"
       "};\n"
-      "f();",
+      "f();\n",
 
       "var a = {x:13, y:14};\n"
       "function f() {\n"
       "  return delete a;\n"
       "};\n"
-      "f();",
+      "f();\n",
 
       "b = 30;\n"
       "function f() {\n"
       "  return delete b;\n"
       "};\n"
-      "f();",
+      "f();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("GlobalDelete.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("GlobalDelete.golden")));
 }
 
 TEST(FunctionLiterals) {
@@ -1039,15 +1085,15 @@
                                       ConstantPoolType::kMixed);
 
   const char* snippets[] = {
-      "return function(){ }",
+      "return function(){ }\n",
 
-      "return (function(){ })()",
+      "return (function(){ })()\n",
 
-      "return (function(x){ return x; })(1)",
+      "return (function(x){ return x; })(1)\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("FunctionLiterals.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("FunctionLiterals.golden")));
 }
 
 TEST(RegExpLiterals) {
@@ -1056,14 +1102,15 @@
                                       ConstantPoolType::kString);
 
   const char* snippets[] = {
-      "return /ab+d/;",
+      "return /ab+d/;\n",
 
-      "return /(\\w+)\\s(\\w+)/i;",
+      "return /(\\w+)\\s(\\w+)/i;\n",
 
-      "return /ab+d/.exec('abdd');",
+      "return /ab+d/.exec('abdd');\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("RegExpLiterals.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("RegExpLiterals.golden")));
 }
 
 TEST(RegExpLiteralsWide) {
@@ -1074,11 +1121,11 @@
   const char* snippets[] = {
       "var a;"                   //
       REPEAT_256("\na = 1.23;")  //
-      "\nreturn /ab+d/;",
+      "\nreturn /ab+d/;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("RegExpLiteralsWide.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("RegExpLiteralsWide.golden")));
 }
 
 TEST(ArrayLiterals) {
@@ -1087,16 +1134,17 @@
                                       ConstantPoolType::kMixed);
 
   const char* snippets[] = {
-      "return [ 1, 2 ];",
+      "return [ 1, 2 ];\n",
 
-      "var a = 1; return [ a, a + 1 ];",
+      "var a = 1; return [ a, a + 1 ];\n",
 
-      "return [ [ 1, 2 ], [ 3 ] ];",
+      "return [ [ 1, 2 ], [ 3 ] ];\n",
 
-      "var a = 1; return [ [ a, 2 ], [ a + 2 ] ];",
+      "var a = 1; return [ [ a, 2 ], [ a + 2 ] ];\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("ArrayLiterals.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ArrayLiterals.golden")));
 }
 
 TEST(ArrayLiteralsWide) {
@@ -1107,11 +1155,11 @@
   const char* snippets[] = {
       "var a;"                   //
       REPEAT_256("\na = 1.23;")  //
-      "\nreturn [ 1 , 2 ];",
+      "\nreturn [ 1 , 2 ];\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("ArrayLiteralsWide.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ArrayLiteralsWide.golden")));
 }
 
 TEST(ObjectLiterals) {
@@ -1120,38 +1168,39 @@
                                       ConstantPoolType::kMixed);
 
   const char* snippets[] = {
-      "return { };",
+      "return { };\n",
 
-      "return { name: 'string', val: 9.2 };",
+      "return { name: 'string', val: 9.2 };\n",
 
-      "var a = 1; return { name: 'string', val: a };",
+      "var a = 1; return { name: 'string', val: a };\n",
 
-      "var a = 1; return { val: a, val: a + 1 };",
+      "var a = 1; return { val: a, val: a + 1 };\n",
 
-      "return { func: function() { } };",
+      "return { func: function() { } };\n",
 
-      "return { func(a) { return a; } };",
+      "return { func(a) { return a; } };\n",
 
-      "return { get a() { return 2; } };",
+      "return { get a() { return 2; } };\n",
 
-      "return { get a() { return this.x; }, set a(val) { this.x = val } };",
+      "return { get a() { return this.x; }, set a(val) { this.x = val } };\n",
 
-      "return { set b(val) { this.y = val } };",
+      "return { set b(val) { this.y = val } };\n",
 
-      "var a = 1; return { 1: a };",
+      "var a = 1; return { 1: a };\n",
 
-      "return { __proto__: null };",
+      "return { __proto__: null };\n",
 
-      "var a = 'test'; return { [a]: 1 };",
+      "var a = 'test'; return { [a]: 1 };\n",
 
-      "var a = 'test'; return { val: a, [a]: 1 };",
+      "var a = 'test'; return { val: a, [a]: 1 };\n",
 
-      "var a = 'test'; return { [a]: 1, __proto__: {} };",
+      "var a = 'test'; return { [a]: 1, __proto__: {} };\n",
 
-      "var n = 'name'; return { [n]: 'val', get a() { }, set a(b) {} };",
+      "var n = 'name'; return { [n]: 'val', get a() { }, set a(b) {} };\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("ObjectLiterals.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ObjectLiterals.golden")));
 }
 
 TEST(ObjectLiteralsWide) {
@@ -1161,11 +1210,11 @@
   const char* snippets[] = {
       "var a;"                   //
       REPEAT_256("\na = 1.23;")  //
-      "\nreturn { name: 'string', val: 9.2 };",
+      "\nreturn { name: 'string', val: 9.2 };\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("ObjectLiteralsWide.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ObjectLiteralsWide.golden")));
 }
 
 TEST(TopLevelObjectLiterals) {
@@ -1178,11 +1227,11 @@
   printer.set_top_level(true);
 
   const char* snippets[] = {
-      "var a = { func: function() { } };",
+      "var a = { func: function() { } };\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("TopLevelObjectLiterals.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("TopLevelObjectLiterals.golden")));
 }
 
 TEST(TryCatch) {
@@ -1191,14 +1240,15 @@
                                       ConstantPoolType::kString);
 
   const char* snippets[] = {
-      "try { return 1; } catch(e) { return 2; }",
+      "try { return 1; } catch(e) { return 2; }\n",
 
       "var a;\n"
       "try { a = 1 } catch(e1) {};\n"
-      "try { a = 2 } catch(e2) { a = 3 }",
+      "try { a = 2 } catch(e2) { a = 3 }\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("TryCatch.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("TryCatch.golden")));
 }
 
 TEST(TryFinally) {
@@ -1207,17 +1257,18 @@
                                       ConstantPoolType::kString);
   const char* snippets[] = {
       "var a = 1;\n"
-      "try { a = 2; } finally { a = 3; }",
+      "try { a = 2; } finally { a = 3; }\n",
 
       "var a = 1;\n"
-      "try { a = 2; } catch(e) { a = 20 } finally { a = 3; }",
+      "try { a = 2; } catch(e) { a = 20 } finally { a = 3; }\n",
 
       "var a; try {\n"
       "  try { a = 1 } catch(e) { a = 2 }\n"
-      "} catch(e) { a = 20 } finally { a = 3; }",
+      "} catch(e) { a = 20 } finally { a = 3; }\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("TryFinally.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("TryFinally.golden")));
 }
 
 TEST(Throw) {
@@ -1225,14 +1276,15 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kString);
   const char* snippets[] = {
-      "throw 1;",
+      "throw 1;\n",
 
-      "throw 'Error';",
+      "throw 'Error';\n",
 
-      "var a = 1; if (a) { throw 'Error'; };",
+      "var a = 1; if (a) { throw 'Error'; };\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("Throw.golden"));
+  CHECK(
+      CompareTexts(BuildActual(printer, snippets), LoadGolden("Throw.golden")));
 }
 
 TEST(CallNew) {
@@ -1245,11 +1297,11 @@
   const char* snippets[] = {
       "function bar() { this.value = 0; }\n"
       "function f() { return new bar(); }\n"
-      "f();",
+      "f();\n",
 
       "function bar(x) { this.value = 18; this.x = x;}\n"
       "function f() { return new bar(3); }\n"
-      "f();",
+      "f();\n",
 
       "function bar(w, x, y, z) {\n"
       "  this.value = 18;\n"
@@ -1258,10 +1310,11 @@
       "  this.z = z;\n"
       "}\n"
       "function f() { return new bar(3, 4, 5); }\n"
-      "f();",
+      "f();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("CallNew.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("CallNew.golden")));
 }
 
 TEST(ContextVariables) {
@@ -1274,27 +1327,27 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-    "var a; return function() { a = 1; };",
+    "var a; return function() { a = 1; };\n",
 
-    "var a = 1; return function() { a = 2; };",
+    "var a = 1; return function() { a = 2; };\n",
 
-    "var a = 1; var b = 2; return function() { a = 2; b = 3 };",
+    "var a = 1; var b = 2; return function() { a = 2; b = 3 };\n",
 
-    "var a; (function() { a = 2; })(); return a;",
+    "var a; (function() { a = 2; })(); return a;\n",
 
     "'use strict';\n"
     "let a = 1;\n"
-    "{ let b = 2; return function() { a + b; }; }",
+    "{ let b = 2; return function() { a + b; }; }\n",
 
     "'use strict';\n"
     REPEAT_249_UNIQUE_VARS()
     "eval();\n"
     "var b = 100;\n"
-    "return b",
+    "return b\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("ContextVariables.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ContextVariables.golden")));
 }
 
 TEST(ContextParameters) {
@@ -1314,8 +1367,8 @@
       "function f() { var self = this; return function() { self = 2; }; }",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets, "", "\nf();"),
-           LoadGolden("ContextParameters.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets, "", "\nf();"),
+                     LoadGolden("ContextParameters.golden")));
 }
 
 TEST(OuterContextVariables) {
@@ -1345,8 +1398,8 @@
       "var f = new Outer().getInnerFunc();",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets, "", "\nf();"),
-           LoadGolden("OuterContextVariables.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets, "", "\nf();"),
+                     LoadGolden("OuterContextVariables.golden")));
 }
 
 TEST(CountOperators) {
@@ -1354,30 +1407,31 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-      "var a = 1; return ++a;",
+      "var a = 1; return ++a;\n",
 
-      "var a = 1; return a++;",
+      "var a = 1; return a++;\n",
 
-      "var a = 1; return --a;",
+      "var a = 1; return --a;\n",
 
-      "var a = 1; return a--;",
+      "var a = 1; return a--;\n",
 
-      "var a = { val: 1 }; return a.val++;",
+      "var a = { val: 1 }; return a.val++;\n",
 
-      "var a = { val: 1 }; return --a.val;",
+      "var a = { val: 1 }; return --a.val;\n",
 
-      "var name = 'var'; var a = { val: 1 }; return a[name]--;",
+      "var name = 'var'; var a = { val: 1 }; return a[name]--;\n",
 
-      "var name = 'var'; var a = { val: 1 }; return ++a[name];",
+      "var name = 'var'; var a = { val: 1 }; return ++a[name];\n",
 
-      "var a = 1; var b = function() { return a }; return ++a;",
+      "var a = 1; var b = function() { return a }; return ++a;\n",
 
-      "var a = 1; var b = function() { return a }; return a--;",
+      "var a = 1; var b = function() { return a }; return a--;\n",
 
-      "var idx = 1; var a = [1, 2]; return a[idx++] = 2;",
+      "var idx = 1; var a = [1, 2]; return a[idx++] = 2;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("CountOperators.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("CountOperators.golden")));
 }
 
 TEST(GlobalCountOperators) {
@@ -1390,23 +1444,23 @@
   const char* snippets[] = {
       "var global = 1;\n"
       "function f() { return ++global; }\n"
-      "f();",
+      "f();\n",
 
       "var global = 1;\n"
       "function f() { return global--; }\n"
-      "f();",
+      "f();\n",
 
       "unallocated = 1;\n"
       "function f() { 'use strict'; return --unallocated; }\n"
-      "f();",
+      "f();\n",
 
       "unallocated = 1;\n"
       "function f() { return unallocated++; }\n"
-      "f();",
+      "f();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("GlobalCountOperators.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("GlobalCountOperators.golden")));
 }
 
 TEST(CompoundExpressions) {
@@ -1414,19 +1468,19 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-      "var a = 1; a += 2;",
+      "var a = 1; a += 2;\n",
 
-      "var a = 1; a /= 2;",
+      "var a = 1; a /= 2;\n",
 
-      "var a = { val: 2 }; a.name *= 2;",
+      "var a = { val: 2 }; a.name *= 2;\n",
 
-      "var a = { 1: 2 }; a[1] ^= 2;",
+      "var a = { 1: 2 }; a[1] ^= 2;\n",
 
-      "var a = 1; (function f() { return a; }); a |= 24;",
+      "var a = 1; (function f() { return a; }); a |= 24;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("CompoundExpressions.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("CompoundExpressions.golden")));
 }
 
 TEST(GlobalCompoundExpressions) {
@@ -1439,15 +1493,15 @@
   const char* snippets[] = {
       "var global = 1;\n"
       "function f() { return global &= 1; }\n"
-      "f();",
+      "f();\n",
 
       "unallocated = 1;\n"
       "function f() { return unallocated += 1; }\n"
-      "f();",
+      "f();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("GlobalCompoundExpressions.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("GlobalCompoundExpressions.golden")));
 }
 
 TEST(CreateArguments) {
@@ -1471,8 +1525,8 @@
       "function f(a, b, c) { 'use strict'; return arguments; }",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets, "", "\nf();"),
-           LoadGolden("CreateArguments.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets, "", "\nf();"),
+                     LoadGolden("CreateArguments.golden")));
 }
 
 TEST(CreateRestParameter) {
@@ -1492,8 +1546,8 @@
       "function f(a, ...restArgs) { return restArgs[0] + arguments[0]; }",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets, "", "\nf();"),
-           LoadGolden("CreateRestParameter.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets, "", "\nf();"),
+                     LoadGolden("CreateRestParameter.golden")));
 }
 
 TEST(ForIn) {
@@ -1501,29 +1555,30 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-      "for (var p in null) {}",
+      "for (var p in null) {}\n",
 
-      "for (var p in undefined) {}",
+      "for (var p in undefined) {}\n",
 
-      "for (var p in undefined) {}",
+      "for (var p in undefined) {}\n",
 
       "var x = 'potatoes';\n"
-      "for (var p in x) { return p; }",
+      "for (var p in x) { return p; }\n",
 
       "var x = 0;\n"
-      "for (var p in [1,2,3]) { x += p; }",
+      "for (var p in [1,2,3]) { x += p; }\n",
 
       "var x = { 'a': 1, 'b': 2 };\n"
       "for (x['a'] in [10, 20, 30]) {\n"
       "  if (x['a'] == 10) continue;\n"
       "  if (x['a'] == 20) break;\n"
-      "}",
+      "}\n",
 
       "var x = [ 10, 11, 12 ] ;\n"
-      "for (x[0] in [1,2,3]) { return x[3]; }",
+      "for (x[0] in [1,2,3]) { return x[3]; }\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("ForIn.golden"));
+  CHECK(
+      CompareTexts(BuildActual(printer, snippets), LoadGolden("ForIn.golden")));
 }
 
 TEST(ForOf) {
@@ -1531,21 +1586,22 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-      "for (var p of [0, 1, 2]) {}",
+      "for (var p of [0, 1, 2]) {}\n",
 
       "var x = 'potatoes';\n"
-      "for (var p of x) { return p; }",
+      "for (var p of x) { return p; }\n",
 
       "for (var x of [10, 20, 30]) {\n"
       "  if (x == 10) continue;\n"
       "  if (x == 20) break;\n"
-      "}",
+      "}\n",
 
       "var x = { 'a': 1, 'b': 2 };\n"
-      "for (x['a'] of [1,2,3]) { return x['a']; }",
+      "for (x['a'] of [1,2,3]) { return x['a']; }\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("ForOf.golden"));
+  CHECK(
+      CompareTexts(BuildActual(printer, snippets), LoadGolden("ForOf.golden")));
 }
 
 TEST(Conditional) {
@@ -1553,12 +1609,13 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kNumber);
   const char* snippets[] = {
-      "return 1 ? 2 : 3;",
+      "return 1 ? 2 : 3;\n",
 
-      "return 1 ? 2 ? 3 : 4 : 5;",
+      "return 1 ? 2 ? 3 : 4 : 5;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("Conditional.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("Conditional.golden")));
 }
 
 TEST(Switch) {
@@ -1570,39 +1627,39 @@
     "switch(a) {\n"
     " case 1: return 2;\n"
     " case 2: return 3;\n"
-    "}",
+    "}\n",
 
     "var a = 1;\n"
     "switch(a) {\n"
     " case 1: a = 2; break;\n"
     " case 2: a = 3; break;\n"
-    "}",
+    "}\n",
 
     "var a = 1;\n"
     "switch(a) {\n"
     " case 1: a = 2; // fall-through\n"
     " case 2: a = 3; break;\n"
-    "}",
+    "}\n",
 
     "var a = 1;\n"
     "switch(a) {\n"
     " case 2: break;\n"
     " case 3: break;\n"
     " default: a = 1; break;\n"
-    "}",
+    "}\n",
 
     "var a = 1;\n"
     "switch(typeof(a)) {\n"
     " case 2: a = 1; break;\n"
     " case 3: a = 2; break;\n"
     " default: a = 3; break;\n"
-    "}",
+    "}\n",
 
     "var a = 1;\n"
     "switch(a) {\n"
     " case typeof(a): a = 1; break;\n"
     " default: a = 2; break;\n"
-    "}",
+    "}\n",
 
     "var a = 1;\n"
     "switch(a) {\n"
@@ -1612,7 +1669,7 @@
     " case 2:\n"
     "  a = 3;\n"
     "  break;\n"
-    "}",
+    "}\n",
 
     "var a = 1;\n"
     "switch(a) {\n"
@@ -1622,10 +1679,11 @@
     "      default : a = 2; break;\n"
     "   }  // fall-through\n"
     " case 2: a = 3;\n"
-    "}",
+    "}\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("Switch.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("Switch.golden")));
 }
 
 TEST(BasicBlockToBoolean) {
@@ -1633,15 +1691,15 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kNumber);
   const char* snippets[] = {
-      "var a = 1; if (a || a < 0) { return 1; }",
+      "var a = 1; if (a || a < 0) { return 1; }\n",
 
-      "var a = 1; if (a && a < 0) { return 1; }",
+      "var a = 1; if (a && a < 0) { return 1; }\n",
 
-      "var a = 1; a = (a || a < 0) ? 2 : 3;",
+      "var a = 1; a = (a || a < 0) ? 2 : 3;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("BasicBlockToBoolean.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("BasicBlockToBoolean.golden")));
 }
 
 TEST(DeadCodeRemoval) {
@@ -1649,17 +1707,17 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kNumber);
   const char* snippets[] = {
-      "return; var a = 1; a();",
+      "return; var a = 1; a();\n",
 
-      "if (false) { return; }; var a = 1;",
+      "if (false) { return; }; var a = 1;\n",
 
-      "if (true) { return 1; } else { return 2; };",
+      "if (true) { return 1; } else { return 2; };\n",
 
-      "var a = 1; if (a) { return 1; }; return 2;",
+      "var a = 1; if (a) { return 1; }; return 2;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("DeadCodeRemoval.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("DeadCodeRemoval.golden")));
 }
 
 TEST(ThisFunction) {
@@ -1677,8 +1735,8 @@
       "f = function f() { return f; };",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets, "", "\nf();"),
-           LoadGolden("ThisFunction.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets, "", "\nf();"),
+                     LoadGolden("ThisFunction.golden")));
 }
 
 TEST(NewTarget) {
@@ -1687,12 +1745,13 @@
                                       ConstantPoolType::kMixed);
 
   const char* snippets[] = {
-      "return new.target;",
+      "return new.target;\n",
 
-      "new.target;",
+      "new.target;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("NewTarget.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("NewTarget.golden")));
 }
 
 TEST(RemoveRedundantLdar) {
@@ -1705,22 +1764,22 @@
       "  ld_a = ld_a + ld_a;\n"  // in a different basicblock.
       "  if (ld_a > 10) break;\n"
       "}\n"
-      "return ld_a;",
+      "return ld_a;\n",
 
       "var ld_a = 1;\n"
       "do {\n"
       "  ld_a = ld_a + ld_a;\n"
       "  if (ld_a > 10) continue;\n"
       "} while(false);\n"
-      "return ld_a;",
+      "return ld_a;\n",
 
       "var ld_a = 1;\n"
       "  ld_a = ld_a + ld_a;\n"
-      "  return ld_a;",
+      "  return ld_a;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("RemoveRedundantLdar.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("RemoveRedundantLdar.golden")));
 }
 
 TEST(AssignmentsInBinaryExpression) {
@@ -1729,28 +1788,28 @@
                                       ConstantPoolType::kString);
   const char* snippets[] = {
       "var x = 0, y = 1;\n"
-      "return (x = 2, y = 3, x = 4, y = 5);",
+      "return (x = 2, y = 3, x = 4, y = 5);\n",
 
       "var x = 55;\n"
       "var y = (x = 100);\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 55;\n"
       "x = x + (x = 100) + (x = 101);\n"
-      "return x;",
+      "return x;\n",
 
       "var x = 55;\n"
       "x = (x = 56) - x + (x = 57);\n"
       "x++;\n"
-      "return x;",
+      "return x;\n",
 
       "var x = 55;\n"
       "var y = x + (x = 1) + (x = 2) + (x = 3);\n"
-      "return y;",
+      "return y;\n",
 
       "var x = 55;\n"
       "var x = x + (x = 1) + (x = 2) + (x = 3);\n"
-      "return x;",
+      "return x;\n",
 
       "var x = 10, y = 20;\n"
       "return x + (x = 1) + (x + 1) * (y = 2) + (y = 3) + (x = 4) + (y = 5) + "
@@ -1760,8 +1819,8 @@
       "return 1 + x + (x++) + (++x);\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("AssignmentsInBinaryExpression.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("AssignmentsInBinaryExpression.golden")));
 }
 
 TEST(Eval) {
@@ -1769,10 +1828,11 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kString);
   const char* snippets[] = {
-      "return eval('1;');",
+      "return eval('1;');\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("Eval.golden"));
+  CHECK(
+      CompareTexts(BuildActual(printer, snippets), LoadGolden("Eval.golden")));
 }
 
 TEST(LookupSlot) {
@@ -1781,14 +1841,15 @@
                                       ConstantPoolType::kString);
 
   const char* snippets[] = {
-      "eval('var x = 10;'); return x;",
+      "eval('var x = 10;'); return x;\n",
 
-      "eval('var x = 10;'); return typeof x;",
+      "eval('var x = 10;'); return typeof x;\n",
 
-      "x = 20; return eval('');",
+      "x = 20; return eval('');\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("LookupSlot.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("LookupSlot.golden")));
 }
 
 TEST(CallLookupSlot) {
@@ -1796,10 +1857,11 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-      "g = function(){}; eval(''); return g();",
+      "g = function(){}; eval(''); return g();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("CallLookupSlot.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("CallLookupSlot.golden")));
 }
 
 // TODO(mythria): tests for variable/function declaration in lookup slots.
@@ -1831,7 +1893,7 @@
                                    "}\n"
                                    "f1();");
 
-  CHECK_EQ(actual, LoadGolden("LookupSlotInEval.golden"));
+  CHECK(CompareTexts(actual, LoadGolden("LookupSlotInEval.golden")));
 }
 
 TEST(LookupSlotWideInEval) {
@@ -1867,7 +1929,7 @@
                                    "}\n"
                                    "f1();");
 
-  CHECK_EQ(actual, LoadGolden("LookupSlotWideInEval.golden"));
+  CHECK(CompareTexts(actual, LoadGolden("LookupSlotWideInEval.golden")));
 }
 
 TEST(DeleteLookupSlotInEval) {
@@ -1897,7 +1959,7 @@
                                    "}\n"
                                    "f1();");
 
-  CHECK_EQ(actual, LoadGolden("DeleteLookupSlotInEval.golden"));
+  CHECK(CompareTexts(actual, LoadGolden("DeleteLookupSlotInEval.golden")));
 }
 
 TEST(WideRegisters) {
@@ -1913,41 +1975,41 @@
                                       ConstantPoolType::kNumber);
   const char* snippets[] = {
       "x0 = x127;\n"
-      "return x0;",
+      "return x0;\n",
 
       "x127 = x126;\n"
-      "return x127;",
+      "return x127;\n",
 
       "if (x2 > 3) { return x129; }\n"
-      "return x128;",
+      "return x128;\n",
 
       "var x0 = 0;\n"
       "if (x129 == 3) { var x129 = x0; }\n"
       "if (x2 > 3) { return x0; }\n"
-      "return x129;",
+      "return x129;\n",
 
       "var x0 = 0;\n"
       "var x1 = 0;\n"
       "for (x128 = 0; x128 < 64; x128++) {"
       "  x1 += x128;"
       "}"
-      "return x128;",
+      "return x128;\n",
 
       "var x0 = 1234;\n"
       "var x1 = 0;\n"
       "for (x128 in x0) {"
       "  x1 += x128;"
       "}"
-      "return x1;",
+      "return x1;\n",
 
       "x0 = %Add(x64, x63);\n"
       "x1 = %Add(x27, x143);\n"
       "%TheHole();\n"
-      "return x1;",
+      "return x1;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets, prologue.c_str()),
-           LoadGolden("WideRegisters.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets, prologue.c_str()),
+                     LoadGolden("WideRegisters.golden")));
 }
 
 TEST(ConstVariable) {
@@ -1955,16 +2017,17 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kString);
   const char* snippets[] = {
-      "const x = 10;",
+      "const x = 10;\n",
 
-      "const x = 10; return x;",
+      "const x = 10; return x;\n",
 
-      "const x = ( x = 20);",
+      "const x = ( x = 20);\n",
 
-      "const x = 10; x = 20;",
+      "const x = 10; x = 20;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("ConstVariable.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ConstVariable.golden")));
 }
 
 TEST(LetVariable) {
@@ -1972,16 +2035,17 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kString);
   const char* snippets[] = {
-      "let x = 10;",
+      "let x = 10;\n",
 
-      "let x = 10; return x;",
+      "let x = 10; return x;\n",
 
-      "let x = (x = 20);",
+      "let x = (x = 20);\n",
 
-      "let x = 10; x = 20;",
+      "let x = 10; x = 20;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("LetVariable.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("LetVariable.golden")));
 }
 
 TEST(ConstVariableContextSlot) {
@@ -1991,17 +2055,17 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-      "const x = 10; function f1() {return x;}",
+      "const x = 10; function f1() {return x;}\n",
 
-      "const x = 10; function f1() {return x;} return x;",
+      "const x = 10; function f1() {return x;} return x;\n",
 
-      "const x = (x = 20); function f1() {return x;}",
+      "const x = (x = 20); function f1() {return x;}\n",
 
-      "const x = 10; x = 20; function f1() {return x;}",
+      "const x = 10; x = 20; function f1() {return x;}\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("ConstVariableContextSlot.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ConstVariableContextSlot.golden")));
 }
 
 TEST(LetVariableContextSlot) {
@@ -2009,17 +2073,17 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-      "let x = 10; function f1() {return x;}",
+      "let x = 10; function f1() {return x;}\n",
 
-      "let x = 10; function f1() {return x;} return x;",
+      "let x = 10; function f1() {return x;} return x;\n",
 
-      "let x = (x = 20); function f1() {return x;}",
+      "let x = (x = 20); function f1() {return x;}\n",
 
-      "let x = 10; x = 20; function f1() {return x;}",
+      "let x = 10; x = 20; function f1() {return x;}\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("LetVariableContextSlot.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("LetVariableContextSlot.golden")));
 }
 
 TEST(DoExpression) {
@@ -2030,14 +2094,15 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kString);
   const char* snippets[] = {
-      "var a = do { }; return a;",
+      "var a = do { }; return a;\n",
 
-      "var a = do { var x = 100; }; return a;",
+      "var a = do { var x = 100; }; return a;\n",
 
-      "while(true) { var a = 10; a = do { ++a; break; }; a = 20; }",
+      "while(true) { var a = 10; a = do { ++a; break; }; a = 20; }\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("DoExpression.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("DoExpression.golden")));
 
   FLAG_harmony_do_expressions = old_flag;
 }
@@ -2047,10 +2112,11 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kMixed);
   const char* snippets[] = {
-      "with ({x:42}) { return x; }",
+      "with ({x:42}) { return x; }\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("WithStatement.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("WithStatement.golden")));
 }
 
 TEST(DoDebugger) {
@@ -2058,10 +2124,11 @@
   BytecodeExpectationsPrinter printer(CcTest::isolate(),
                                       ConstantPoolType::kString);
   const char* snippets[] = {
-      "debugger;",
+      "debugger;\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets), LoadGolden("DoDebugger.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("DoDebugger.golden")));
 }
 
 TEST(ClassDeclarations) {
@@ -2072,27 +2139,27 @@
       "class Person {\n"
       "  constructor(name) { this.name = name; }\n"
       "  speak() { console.log(this.name + ' is speaking.'); }\n"
-      "}",
+      "}\n",
 
       "class person {\n"
       "  constructor(name) { this.name = name; }\n"
       "  speak() { console.log(this.name + ' is speaking.'); }\n"
-      "}",
+      "}\n",
 
       "var n0 = 'a';\n"
       "var n1 = 'b';\n"
       "class N {\n"
       "  [n0]() { return n0; }\n"
       "  static [n1]() { return n1; }\n"
-      "}",
+      "}\n",
 
       "var count = 0;\n"
       "class C { constructor() { count++; }}\n"
       "return new C();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("ClassDeclarations.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ClassDeclarations.golden")));
 }
 
 TEST(ClassAndSuperClass) {
@@ -2150,8 +2217,32 @@
       "})();\n",
   };
 
-  CHECK_EQ(BuildActual(printer, snippets),
-           LoadGolden("ClassAndSuperClass.golden"));
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("ClassAndSuperClass.golden")));
+}
+
+TEST(Generators) {
+  bool old_flag = FLAG_ignition_generators;
+  FLAG_ignition_generators = true;
+
+  InitializedIgnitionHandleScope scope;
+  BytecodeExpectationsPrinter printer(CcTest::isolate(),
+                                      ConstantPoolType::kMixed);
+  printer.set_wrap(false);
+  printer.set_test_function_name("f");
+
+  const char* snippets[] = {
+      "function* f() { }\n",
+
+      "function* f() { yield 42 }\n",
+
+      "function* f() { for (let x of [42]) yield x }\n",
+  };
+
+  CHECK(CompareTexts(BuildActual(printer, snippets),
+                     LoadGolden("Generators.golden")));
+
+  FLAG_ignition_generators = old_flag;
 }
 
 }  // namespace interpreter
diff --git a/test/cctest/interpreter/test-interpreter.cc b/test/cctest/interpreter/test-interpreter.cc
index c8dc776..acc93c5 100644
--- a/test/cctest/interpreter/test-interpreter.cc
+++ b/test/cctest/interpreter/test-interpreter.cc
@@ -1383,11 +1383,6 @@
 
 TEST(InterpreterInstanceOf) {
   HandleAndZoneScope handles;
-  // TODO(4447): The new ES6 'instanceof' operator is fully desugared in the
-  // parser and the Token::INSTANCEOF is not needed anymore. This test only
-  // makes sense with --no-harmony-instanceof and can be removed once we
-  // deprecate the ability to switch to old skool ES5 'instanceof' for good.
-  FLAG_harmony_instanceof = false;
   i::Factory* factory = handles.main_isolate()->factory();
   Handle<i::String> name = factory->NewStringFromAsciiChecked("cons");
   Handle<i::JSFunction> func = factory->NewFunction(name);
@@ -2259,6 +2254,8 @@
       std::make_pair("function f(a, b, c, d) {"
                      "  'use strict'; c = b; return arguments[2]; }",
                      2),
+      // Check arguments for duplicate parameters in sloppy mode.
+      std::make_pair("function f(a, a, b) { return arguments[1]; }", 1),
       // check rest parameters
       std::make_pair("function f(...restArray) { return restArray[0]; }", 0),
       std::make_pair("function f(a, ...restArray) { return restArray[0]; }", 1),
@@ -4139,6 +4136,37 @@
   }
 }
 
+TEST(InterpreterGenerators) {
+  bool old_flag = FLAG_ignition_generators;
+  FLAG_ignition_generators = true;
+
+  HandleAndZoneScope handles;
+  i::Isolate* isolate = handles.main_isolate();
+  i::Factory* factory = isolate->factory();
+
+  std::pair<const char*, Handle<Object>> tests[] = {
+      {"function* f() { }; return f().next().value",
+       factory->undefined_value()},
+      {"function* f() { yield 42 }; return f().next().value",
+       factory->NewNumberFromInt(42)},
+      {"function* f() { for (let x of [42]) yield x}; return f().next().value",
+       factory->NewNumberFromInt(42)},
+  };
+
+  for (size_t i = 0; i < arraysize(tests); i++) {
+    std::string source(
+        InterpreterTester::SourceForBody(tests[i].first));
+    InterpreterTester tester(handles.main_isolate(), source.c_str());
+    auto callable = tester.GetCallable<>();
+
+    Handle<i::Object> return_value = callable().ToHandleChecked();
+    CHECK(return_value->SameValue(*tests[i].second));
+  }
+
+  FLAG_ignition_generators = old_flag;
+}
+
+
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/test/cctest/test-accessors.cc b/test/cctest/test-accessors.cc
index 67803ee..9667afb 100644
--- a/test/cctest/test-accessors.cc
+++ b/test/cctest/test-accessors.cc
@@ -775,19 +775,18 @@
   }
 }
 
-static void check_receiver(Local<String> name,
-                           const v8::PropertyCallbackInfo<v8::Value>& info) {
+static void CheckReceiver(Local<String> name,
+                          const v8::PropertyCallbackInfo<v8::Value>& info) {
   CHECK(info.This()->IsObject());
 }
 
 TEST(Regress609134) {
-  v8::internal::FLAG_allow_natives_syntax = true;
   LocalContext env;
   v8::Isolate* isolate = env->GetIsolate();
   v8::HandleScope scope(isolate);
   auto fun_templ = v8::FunctionTemplate::New(isolate);
   fun_templ->InstanceTemplate()->SetNativeDataProperty(v8_str("foo"),
-                                                       check_receiver);
+                                                       CheckReceiver);
 
   CHECK(env->Global()
             ->Set(env.local(), v8_str("Fun"),
@@ -797,5 +796,6 @@
   CompileRun(
       "var f = new Fun();"
       "Number.prototype.__proto__ = f;"
-      "[42][0].foo");
+      "var a = 42;"
+      "for (var i = 0; i<3; i++) { a.foo; }");
 }
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
index 220b0cd..da72ecd 100644
--- a/test/cctest/test-api.cc
+++ b/test/cctest/test-api.cc
@@ -2142,6 +2142,95 @@
       Constructor_GetFunction_New);
 }
 
+THREADED_TEST(TestObjectTemplateClassInheritance) {
+  LocalContext env;
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope scope(isolate);
+
+  Local<v8::FunctionTemplate> fun_A = v8::FunctionTemplate::New(isolate);
+  fun_A->SetClassName(v8_str("A"));
+
+  Local<ObjectTemplate> templ_A = fun_A->InstanceTemplate();
+  templ_A->SetNativeDataProperty(v8_str("nirk"), GetNirk);
+  templ_A->SetNativeDataProperty(v8_str("rino"), GetRino);
+
+  Local<v8::FunctionTemplate> fun_B = v8::FunctionTemplate::New(isolate);
+  v8::Local<v8::String> class_name = v8_str("B");
+  fun_B->SetClassName(class_name);
+  fun_B->Inherit(fun_A);
+
+  v8::Local<v8::String> subclass_name = v8_str("C");
+  v8::Local<v8::Object> b_proto;
+  v8::Local<v8::Object> c_proto;
+  // Perform several iterations to make sure the cache doesn't break
+  // subclassing.
+  for (int i = 0; i < 3; i++) {
+    Local<v8::Function> function_B =
+        fun_B->GetFunction(env.local()).ToLocalChecked();
+    if (i == 0) {
+      CHECK(env->Global()->Set(env.local(), class_name, function_B).FromJust());
+      CompileRun("class C extends B {}");
+      b_proto =
+          CompileRun("B.prototype")->ToObject(env.local()).ToLocalChecked();
+      c_proto =
+          CompileRun("C.prototype")->ToObject(env.local()).ToLocalChecked();
+      CHECK(b_proto->Equals(env.local(), c_proto->GetPrototype()).FromJust());
+    }
+    Local<v8::Object> instance =
+        CompileRun("new C()")->ToObject(env.local()).ToLocalChecked();
+    CHECK(c_proto->Equals(env.local(), instance->GetPrototype()).FromJust());
+
+    CHECK(subclass_name->StrictEquals(instance->GetConstructorName()));
+    CHECK(env->Global()->Set(env.local(), v8_str("o"), instance).FromJust());
+
+    CHECK_EQ(900, CompileRun("o.nirk")->IntegerValue(env.local()).FromJust());
+    CHECK_EQ(560, CompileRun("o.rino")->IntegerValue(env.local()).FromJust());
+  }
+}
+
+static void NamedPropertyGetterWhichReturns42(
+    Local<Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) {
+  info.GetReturnValue().Set(v8_num(42));
+}
+
+THREADED_TEST(TestObjectTemplateReflectConstruct) {
+  LocalContext env;
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope scope(isolate);
+
+  Local<v8::FunctionTemplate> fun_B = v8::FunctionTemplate::New(isolate);
+  fun_B->InstanceTemplate()->SetHandler(
+      v8::NamedPropertyHandlerConfiguration(NamedPropertyGetterWhichReturns42));
+  v8::Local<v8::String> class_name = v8_str("B");
+  fun_B->SetClassName(class_name);
+
+  v8::Local<v8::String> subclass_name = v8_str("C");
+  v8::Local<v8::Object> b_proto;
+  v8::Local<v8::Object> c_proto;
+  // Perform several iterations to make sure the cache doesn't break
+  // subclassing.
+  for (int i = 0; i < 3; i++) {
+    Local<v8::Function> function_B =
+        fun_B->GetFunction(env.local()).ToLocalChecked();
+    if (i == 0) {
+      CHECK(env->Global()->Set(env.local(), class_name, function_B).FromJust());
+      CompileRun("function C() {}");
+      c_proto =
+          CompileRun("C.prototype")->ToObject(env.local()).ToLocalChecked();
+    }
+    Local<v8::Object> instance = CompileRun("Reflect.construct(B, [], C)")
+                                     ->ToObject(env.local())
+                                     .ToLocalChecked();
+    CHECK(c_proto->Equals(env.local(), instance->GetPrototype()).FromJust());
+
+    CHECK(subclass_name->StrictEquals(instance->GetConstructorName()));
+    CHECK(env->Global()->Set(env.local(), v8_str("o"), instance).FromJust());
+
+    CHECK_EQ(42, CompileRun("o.nirk")->IntegerValue(env.local()).FromJust());
+    CHECK_EQ(42, CompileRun("o.rino")->IntegerValue(env.local()).FromJust());
+  }
+}
+
 static void GetFlabby(const v8::FunctionCallbackInfo<v8::Value>& args) {
   ApiTestFuzzer::Fuzz();
   args.GetReturnValue().Set(v8_num(17.2));
@@ -4687,126 +4776,6 @@
 }
 
 
-// TODO(mstarzinger): This should be a THREADED_TEST but causes failures
-// on the buildbots, so was made non-threaded for the time being.
-TEST(ApiObjectGroupsCycleForScavenger) {
-  i::FLAG_stress_compaction = false;
-  i::FLAG_gc_global = false;
-  LocalContext env;
-  v8::Isolate* iso = env->GetIsolate();
-  HandleScope scope(iso);
-
-  WeakCallCounter counter(1234);
-
-  WeakCallCounterAndPersistent<Value> g1s1(&counter);
-  WeakCallCounterAndPersistent<Value> g1s2(&counter);
-  WeakCallCounterAndPersistent<Value> g2s1(&counter);
-  WeakCallCounterAndPersistent<Value> g2s2(&counter);
-  WeakCallCounterAndPersistent<Value> g3s1(&counter);
-  WeakCallCounterAndPersistent<Value> g3s2(&counter);
-
-  {
-    HandleScope scope(iso);
-    g1s1.handle.Reset(iso, Object::New(iso));
-    g1s2.handle.Reset(iso, Object::New(iso));
-    g1s1.handle.SetWeak(&g1s1, &WeakPointerCallback,
-                        v8::WeakCallbackType::kParameter);
-    g1s2.handle.SetWeak(&g1s2, &WeakPointerCallback,
-                        v8::WeakCallbackType::kParameter);
-
-    g2s1.handle.Reset(iso, Object::New(iso));
-    g2s2.handle.Reset(iso, Object::New(iso));
-    g2s1.handle.SetWeak(&g2s1, &WeakPointerCallback,
-                        v8::WeakCallbackType::kParameter);
-    g2s2.handle.SetWeak(&g2s2, &WeakPointerCallback,
-                        v8::WeakCallbackType::kParameter);
-
-    g3s1.handle.Reset(iso, Object::New(iso));
-    g3s2.handle.Reset(iso, Object::New(iso));
-    g3s1.handle.SetWeak(&g3s1, &WeakPointerCallback,
-                        v8::WeakCallbackType::kParameter);
-    g3s2.handle.SetWeak(&g3s2, &WeakPointerCallback,
-                        v8::WeakCallbackType::kParameter);
-  }
-
-  // Make a root.
-  WeakCallCounterAndPersistent<Value> root(&counter);
-  root.handle.Reset(iso, g1s1.handle);
-  root.handle.MarkPartiallyDependent();
-
-  // Connect groups.  We're building the following cycle:
-  // G1: { g1s1, g2s1 }, g1s1 implicitly references g2s1, ditto for other
-  // groups.
-  {
-    HandleScope handle_scope(iso);
-    g1s1.handle.MarkPartiallyDependent();
-    g1s2.handle.MarkPartiallyDependent();
-    g2s1.handle.MarkPartiallyDependent();
-    g2s2.handle.MarkPartiallyDependent();
-    g3s1.handle.MarkPartiallyDependent();
-    g3s2.handle.MarkPartiallyDependent();
-    iso->SetObjectGroupId(g1s1.handle, UniqueId(1));
-    iso->SetObjectGroupId(g1s2.handle, UniqueId(1));
-    Local<Object>::New(iso, g1s1.handle.As<Object>())
-        ->Set(env.local(), v8_str("x"), Local<Value>::New(iso, g2s1.handle))
-        .FromJust();
-    iso->SetObjectGroupId(g2s1.handle, UniqueId(2));
-    iso->SetObjectGroupId(g2s2.handle, UniqueId(2));
-    Local<Object>::New(iso, g2s1.handle.As<Object>())
-        ->Set(env.local(), v8_str("x"), Local<Value>::New(iso, g3s1.handle))
-        .FromJust();
-    iso->SetObjectGroupId(g3s1.handle, UniqueId(3));
-    iso->SetObjectGroupId(g3s2.handle, UniqueId(3));
-    Local<Object>::New(iso, g3s1.handle.As<Object>())
-        ->Set(env.local(), v8_str("x"), Local<Value>::New(iso, g1s1.handle))
-        .FromJust();
-  }
-
-  v8::internal::Heap* heap =
-      reinterpret_cast<v8::internal::Isolate*>(iso)->heap();
-  heap->CollectAllGarbage();
-
-  // All objects should be alive.
-  CHECK_EQ(0, counter.NumberOfWeakCalls());
-
-  // Weaken the root.
-  root.handle.SetWeak(&root, &WeakPointerCallback,
-                      v8::WeakCallbackType::kParameter);
-  root.handle.MarkPartiallyDependent();
-
-  // Groups are deleted, rebuild groups.
-  {
-    HandleScope handle_scope(iso);
-    g1s1.handle.MarkPartiallyDependent();
-    g1s2.handle.MarkPartiallyDependent();
-    g2s1.handle.MarkPartiallyDependent();
-    g2s2.handle.MarkPartiallyDependent();
-    g3s1.handle.MarkPartiallyDependent();
-    g3s2.handle.MarkPartiallyDependent();
-    iso->SetObjectGroupId(g1s1.handle, UniqueId(1));
-    iso->SetObjectGroupId(g1s2.handle, UniqueId(1));
-    Local<Object>::New(iso, g1s1.handle.As<Object>())
-        ->Set(env.local(), v8_str("x"), Local<Value>::New(iso, g2s1.handle))
-        .FromJust();
-    iso->SetObjectGroupId(g2s1.handle, UniqueId(2));
-    iso->SetObjectGroupId(g2s2.handle, UniqueId(2));
-    Local<Object>::New(iso, g2s1.handle.As<Object>())
-        ->Set(env.local(), v8_str("x"), Local<Value>::New(iso, g3s1.handle))
-        .FromJust();
-    iso->SetObjectGroupId(g3s1.handle, UniqueId(3));
-    iso->SetObjectGroupId(g3s2.handle, UniqueId(3));
-    Local<Object>::New(iso, g3s1.handle.As<Object>())
-        ->Set(env.local(), v8_str("x"), Local<Value>::New(iso, g1s1.handle))
-        .FromJust();
-  }
-
-  heap->CollectAllGarbage();
-
-  // All objects should be gone. 7 global handles in total.
-  CHECK_EQ(7, counter.NumberOfWeakCalls());
-}
-
-
 THREADED_TEST(ScriptException) {
   LocalContext env;
   v8::HandleScope scope(env->GetIsolate());
@@ -6511,6 +6480,46 @@
   CHECK(!v8::False(isolate)->SameValue(v8::Undefined(isolate)));
 }
 
+THREADED_TEST(TypeOf) {
+  LocalContext context;
+  v8::Isolate* isolate = context->GetIsolate();
+  v8::HandleScope scope(context->GetIsolate());
+
+  Local<v8::FunctionTemplate> t1 = v8::FunctionTemplate::New(isolate);
+  Local<v8::Function> fun = t1->GetFunction(context.local()).ToLocalChecked();
+
+  CHECK(v8::Undefined(isolate)
+            ->TypeOf(isolate)
+            ->Equals(context.local(), v8_str("undefined"))
+            .FromJust());
+  CHECK(v8::Null(isolate)
+            ->TypeOf(isolate)
+            ->Equals(context.local(), v8_str("object"))
+            .FromJust());
+  CHECK(v8_str("str")
+            ->TypeOf(isolate)
+            ->Equals(context.local(), v8_str("string"))
+            .FromJust());
+  CHECK(v8_num(0.0)
+            ->TypeOf(isolate)
+            ->Equals(context.local(), v8_str("number"))
+            .FromJust());
+  CHECK(v8_num(1)
+            ->TypeOf(isolate)
+            ->Equals(context.local(), v8_str("number"))
+            .FromJust());
+  CHECK(v8::Object::New(isolate)
+            ->TypeOf(isolate)
+            ->Equals(context.local(), v8_str("object"))
+            .FromJust());
+  CHECK(v8::Boolean::New(isolate, true)
+            ->TypeOf(isolate)
+            ->Equals(context.local(), v8_str("boolean"))
+            .FromJust());
+  CHECK(fun->TypeOf(isolate)
+            ->Equals(context.local(), v8_str("function"))
+            .FromJust());
+}
 
 THREADED_TEST(MultiRun) {
   LocalContext context;
@@ -9046,33 +9055,6 @@
 }
 
 
-TEST(ApiUncaughtExceptionInObjectObserve) {
-  v8::internal::FLAG_harmony_object_observe = true;
-  v8::internal::FLAG_stack_size = 150;
-  report_count = 0;
-  LocalContext env;
-  v8::Isolate* isolate = env->GetIsolate();
-  v8::HandleScope scope(isolate);
-  isolate->AddMessageListener(ApiUncaughtExceptionTestListener);
-  CompileRun(
-      "var obj = {};"
-      "var observe_count = 0;"
-      "function observer1() { ++observe_count; };"
-      "function observer2() { ++observe_count; };"
-      "function observer_throws() { throw new Error(); };"
-      "function stack_overflow() { return (function f(x) { f(x+1); })(0); };"
-      "Object.observe(obj, observer_throws.bind());"
-      "Object.observe(obj, observer1);"
-      "Object.observe(obj, stack_overflow);"
-      "Object.observe(obj, observer2);"
-      "Object.observe(obj, observer_throws.bind());"
-      "obj.foo = 'bar';");
-  CHECK_EQ(3, report_count);
-  ExpectInt32("observe_count", 2);
-  isolate->RemoveMessageListeners(ApiUncaughtExceptionTestListener);
-}
-
-
 static const char* script_resource_name = "ExceptionInNativeScript.js";
 static void ExceptionInNativeScriptTestListener(v8::Local<v8::Message> message,
                                                 v8::Local<Value>) {
@@ -10541,6 +10523,69 @@
   }
 }
 
+THREADED_TEST(ObjectGetOwnPropertyNames) {
+  LocalContext context;
+  v8::Isolate* isolate = context->GetIsolate();
+  v8::HandleScope handle_scope(isolate);
+
+  v8::Local<v8::Object> value =
+      v8::Local<v8::Object>::Cast(v8::StringObject::New(v8_str("test")));
+  v8::Local<v8::Array> properties;
+
+  CHECK(value
+            ->GetOwnPropertyNames(context.local(),
+                                  static_cast<v8::PropertyFilter>(
+                                      v8::PropertyFilter::ALL_PROPERTIES |
+                                      v8::PropertyFilter::SKIP_SYMBOLS))
+            .ToLocal(&properties));
+  CHECK_EQ(5, properties->Length());
+  v8::Local<v8::Value> property;
+  CHECK(properties->Get(context.local(), 4).ToLocal(&property) &&
+        property->IsString());
+  CHECK(property.As<v8::String>()
+            ->Equals(context.local(), v8_str("length"))
+            .FromMaybe(false));
+  for (int i = 0; i < 4; ++i) {
+    v8::Local<v8::Value> property;
+    CHECK(properties->Get(context.local(), i).ToLocal(&property) &&
+          property->IsInt32());
+    CHECK_EQ(property.As<v8::Int32>()->Value(), i);
+  }
+
+  CHECK(value->GetOwnPropertyNames(context.local(), v8::ONLY_ENUMERABLE)
+            .ToLocal(&properties));
+  CHECK_EQ(4, properties->Length());
+  for (int i = 0; i < 4; ++i) {
+    v8::Local<v8::Value> property;
+    CHECK(properties->Get(context.local(), i).ToLocal(&property) &&
+          property->IsInt32());
+    CHECK_EQ(property.As<v8::Int32>()->Value(), i);
+  }
+
+  value = value->GetPrototype().As<v8::Object>();
+  CHECK(value
+            ->GetOwnPropertyNames(context.local(),
+                                  static_cast<v8::PropertyFilter>(
+                                      v8::PropertyFilter::ALL_PROPERTIES |
+                                      v8::PropertyFilter::SKIP_SYMBOLS))
+            .ToLocal(&properties));
+  bool concat_found = false;
+  bool starts_with_found = false;
+  for (uint32_t i = 0; i < properties->Length(); ++i) {
+    v8::Local<v8::Value> property;
+    CHECK(properties->Get(context.local(), i).ToLocal(&property));
+    if (!property->IsString()) continue;
+    if (!concat_found)
+      concat_found = property.As<v8::String>()
+                         ->Equals(context.local(), v8_str("concat"))
+                         .FromMaybe(false);
+    if (!starts_with_found)
+      starts_with_found = property.As<v8::String>()
+                              ->Equals(context.local(), v8_str("startsWith"))
+                              .FromMaybe(false);
+  }
+  CHECK(concat_found && starts_with_found);
+}
 
 THREADED_TEST(CallKnownGlobalReceiver) {
   v8::Isolate* isolate = CcTest::isolate();
@@ -11185,6 +11230,7 @@
   Local<v8::FunctionTemplate> t1 = v8::FunctionTemplate::New(isolate);
   t1->RemovePrototype();
   Local<v8::Function> fun = t1->GetFunction(context.local()).ToLocalChecked();
+  CHECK(!fun->IsConstructor());
   CHECK(context->Global()->Set(context.local(), v8_str("fun"), fun).FromJust());
   CHECK(!CompileRun("'prototype' in fun")
              ->BooleanValue(context.local())
@@ -13261,6 +13307,43 @@
   CHECK(value->BooleanValue(context.local()).FromJust());
 }
 
+static void NewTargetHandler(const v8::FunctionCallbackInfo<v8::Value>& args) {
+  ApiTestFuzzer::Fuzz();
+  args.GetReturnValue().Set(args.NewTarget());
+}
+
+THREADED_TEST(NewTargetHandler) {
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope scope(isolate);
+
+  // Function template with call handler.
+  Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(isolate);
+  templ->SetCallHandler(NewTargetHandler);
+
+  LocalContext context;
+
+  Local<Function> function =
+      templ->GetFunction(context.local()).ToLocalChecked();
+  CHECK(context->Global()
+            ->Set(context.local(), v8_str("f"), function)
+            .FromJust());
+  Local<Value> value = CompileRun("f()");
+  CHECK(value->IsUndefined());
+  value = CompileRun("new f()");
+  CHECK(value->IsFunction());
+  CHECK(value == function);
+  Local<Value> subclass = CompileRun("var g = class extends f { }; g");
+  CHECK(subclass->IsFunction());
+  value = CompileRun("new g()");
+  CHECK(value->IsFunction());
+  CHECK(value == subclass);
+  value = CompileRun("Reflect.construct(f, [], Array)");
+  CHECK(value->IsFunction());
+  CHECK(value ==
+        context->Global()
+            ->Get(context.local(), v8_str("Array"))
+            .ToLocalChecked());
+}
 
 THREADED_TEST(ObjectProtoToString) {
   v8::Isolate* isolate = CcTest::isolate();
@@ -14416,7 +14499,6 @@
   return invocations;
 }
 
-
 void SetFunctionEntryHookTest::RunLoopInNewEnv(v8::Isolate* isolate) {
   v8::HandleScope outer(isolate);
   v8::Local<Context> env = Context::New(isolate);
@@ -14474,10 +14556,19 @@
 
     RunLoopInNewEnv(isolate);
 
-    // Check the exepected invocation counts.
-    CHECK_EQ(2, CountInvocations(NULL, "bar"));
-    CHECK_EQ(200, CountInvocations("bar", "foo"));
-    CHECK_EQ(200, CountInvocations(NULL, "foo"));
+    // Check the expected invocation counts.
+    if (!i::FLAG_ignition) {
+      CHECK_EQ(2, CountInvocations(NULL, "bar"));
+      CHECK_EQ(200, CountInvocations("bar", "foo"));
+      CHECK_EQ(200, CountInvocations(NULL, "foo"));
+    } else {
+      // For ignition we don't see the actual functions being called, instead
+      // we see the IterpreterEntryTrampoline at least 102 times
+      // (100 unoptimized calls to foo, and 2 calls to bar).
+      CHECK_LE(102, CountInvocations(NULL, "InterpreterEntryTrampoline"));
+      // We should also see the calls to the optimized function foo.
+      CHECK_EQ(100, CountInvocations(NULL, "foo"));
+    }
 
     // Verify that we have an entry hook on some specific stubs.
     CHECK_NE(0, CountInvocations(NULL, "CEntryStub"));
@@ -18728,12 +18819,6 @@
 }
 
 
-static void NamedPropertyGetterWhichReturns42(
-    Local<Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) {
-  info.GetReturnValue().Set(v8_num(42));
-}
-
-
 static void NamedPropertySetterWhichSetsYOnThisTo23(
     Local<Name> name, Local<Value> value,
     const v8::PropertyCallbackInfo<v8::Value>& info) {
@@ -20313,6 +20398,7 @@
         HasOwnPropertyNamedPropertyGetter));
     Local<Object> instance = templ->NewInstance(env.local()).ToLocalChecked();
     CHECK(!instance->HasOwnProperty(env.local(), v8_str("42")).FromJust());
+    CHECK(!instance->HasOwnProperty(env.local(), 42).FromJust());
     CHECK(instance->HasOwnProperty(env.local(), v8_str("foo")).FromJust());
     CHECK(!instance->HasOwnProperty(env.local(), v8_str("bar")).FromJust());
   }
@@ -20322,7 +20408,9 @@
         HasOwnPropertyIndexedPropertyGetter));
     Local<Object> instance = templ->NewInstance(env.local()).ToLocalChecked();
     CHECK(instance->HasOwnProperty(env.local(), v8_str("42")).FromJust());
+    CHECK(instance->HasOwnProperty(env.local(), 42).FromJust());
     CHECK(!instance->HasOwnProperty(env.local(), v8_str("43")).FromJust());
+    CHECK(!instance->HasOwnProperty(env.local(), 43).FromJust());
     CHECK(!instance->HasOwnProperty(env.local(), v8_str("foo")).FromJust());
   }
   { // Check named query interceptors.
@@ -20339,7 +20427,9 @@
         0, 0, HasOwnPropertyIndexedPropertyQuery));
     Local<Object> instance = templ->NewInstance(env.local()).ToLocalChecked();
     CHECK(instance->HasOwnProperty(env.local(), v8_str("42")).FromJust());
+    CHECK(instance->HasOwnProperty(env.local(), 42).FromJust());
     CHECK(!instance->HasOwnProperty(env.local(), v8_str("41")).FromJust());
+    CHECK(!instance->HasOwnProperty(env.local(), 41).FromJust());
   }
   { // Check callbacks.
     Local<ObjectTemplate> templ = ObjectTemplate::New(isolate);
@@ -20917,6 +21007,7 @@
 
 
 static void MicrotaskOne(const v8::FunctionCallbackInfo<Value>& info) {
+  CHECK(v8::MicrotasksScope::IsRunningMicrotasks(info.GetIsolate()));
   v8::HandleScope scope(info.GetIsolate());
   v8::MicrotasksScope microtasks(info.GetIsolate(),
                                  v8::MicrotasksScope::kDoNotRunMicrotasks);
@@ -20925,6 +21016,7 @@
 
 
 static void MicrotaskTwo(const v8::FunctionCallbackInfo<Value>& info) {
+  CHECK(v8::MicrotasksScope::IsRunningMicrotasks(info.GetIsolate()));
   v8::HandleScope scope(info.GetIsolate());
   v8::MicrotasksScope microtasks(info.GetIsolate(),
                                  v8::MicrotasksScope::kDoNotRunMicrotasks);
@@ -20943,6 +21035,7 @@
 TEST(EnqueueMicrotask) {
   LocalContext env;
   v8::HandleScope scope(env->GetIsolate());
+  CHECK(!v8::MicrotasksScope::IsRunningMicrotasks(env->GetIsolate()));
   CompileRun(
       "var ext1Calls = 0;"
       "var ext2Calls = 0;");
@@ -21283,40 +21376,6 @@
 }
 
 
-static void DebugEventInObserver(const v8::Debug::EventDetails& event_details) {
-  v8::DebugEvent event = event_details.GetEvent();
-  if (event != v8::Break) return;
-  Local<Object> exec_state = event_details.GetExecutionState();
-  Local<Context> context = CcTest::isolate()->GetCurrentContext();
-  Local<Value> break_id =
-      exec_state->Get(context, v8_str("break_id")).ToLocalChecked();
-  CompileRun("function f(id) { new FrameDetails(id, 0); }");
-  Local<Function> fun = Local<Function>::Cast(
-      CcTest::global()->Get(context, v8_str("f")).ToLocalChecked());
-  fun->Call(context, CcTest::global(), 1, &break_id).ToLocalChecked();
-}
-
-
-TEST(Regress385349) {
-  i::FLAG_harmony_object_observe = true;
-  i::FLAG_allow_natives_syntax = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  HandleScope handle_scope(isolate);
-  isolate->SetMicrotasksPolicy(v8::MicrotasksPolicy::kExplicit);
-  Local<Context> context = Context::New(isolate);
-  v8::Debug::SetDebugEventListener(isolate, DebugEventInObserver);
-  {
-    Context::Scope context_scope(context);
-    CompileRun("var obj = {};"
-               "Object.observe(obj, function(changes) { debugger; });"
-               "obj.a = 0;");
-  }
-  isolate->RunMicrotasks();
-  isolate->SetMicrotasksPolicy(v8::MicrotasksPolicy::kAuto);
-  v8::Debug::SetDebugEventListener(isolate, nullptr);
-}
-
-
 #ifdef ENABLE_DISASSEMBLER
 static int probes_counter = 0;
 static int misses_counter = 0;
@@ -21960,29 +22019,39 @@
   CHECK(function->IsFunction());
 }
 
-
 THREADED_TEST(JSONParseObject) {
   LocalContext context;
   HandleScope scope(context->GetIsolate());
   Local<Value> obj =
-      v8::JSON::Parse(context->GetIsolate(), v8_str("{\"x\":42}"))
-          .ToLocalChecked();
+      v8::JSON::Parse(context.local(), v8_str("{\"x\":42}")).ToLocalChecked();
   Local<Object> global = context->Global();
   global->Set(context.local(), v8_str("obj"), obj).FromJust();
   ExpectString("JSON.stringify(obj)", "{\"x\":42}");
 }
 
-
 THREADED_TEST(JSONParseNumber) {
   LocalContext context;
   HandleScope scope(context->GetIsolate());
   Local<Value> obj =
-      v8::JSON::Parse(context->GetIsolate(), v8_str("42")).ToLocalChecked();
+      v8::JSON::Parse(context.local(), v8_str("42")).ToLocalChecked();
   Local<Object> global = context->Global();
   global->Set(context.local(), v8_str("obj"), obj).FromJust();
   ExpectString("JSON.stringify(obj)", "42");
 }
 
+THREADED_TEST(JSONStringifyObject) {
+  LocalContext context;
+  HandleScope scope(context->GetIsolate());
+  Local<Value> value =
+      v8::JSON::Parse(context.local(), v8_str("{\"x\":42}")).ToLocalChecked();
+  Local<Object> obj = value->ToObject(context.local()).ToLocalChecked();
+  Local<Object> global = context->Global();
+  global->Set(context.local(), v8_str("obj"), obj).FromJust();
+  Local<String> json =
+      v8::JSON::Stringify(context.local(), obj).ToLocalChecked();
+  v8::String::Utf8Value utf8(json);
+  ExpectString("JSON.stringify(obj)", *utf8);
+}
 
 #if V8_OS_POSIX && !V8_OS_NACL
 class ThreadInterruptTest {
@@ -24077,8 +24146,7 @@
       script->Run(context).ToLocalChecked()->Int32Value(context).FromJust());
 }
 
-
-TEST(InvalidCacheData) {
+TEST(InvalidParserCacheData) {
   v8::V8::Initialize();
   v8::HandleScope scope(CcTest::isolate());
   LocalContext context;
@@ -24086,6 +24154,12 @@
     // Cached parser data is not consumed while parsing eagerly.
     TestInvalidCacheData(v8::ScriptCompiler::kConsumeParserCache);
   }
+}
+
+TEST(InvalidCodeCacheData) {
+  v8::V8::Initialize();
+  v8::HandleScope scope(CcTest::isolate());
+  LocalContext context;
   TestInvalidCacheData(v8::ScriptCompiler::kConsumeCodeCache);
 }
 
@@ -24168,6 +24242,7 @@
 
 
 TEST(TurboAsmDisablesNeuter) {
+  i::FLAG_allow_natives_syntax = true;
   v8::V8::Initialize();
   v8::HandleScope scope(CcTest::isolate());
   LocalContext context;
@@ -24180,10 +24255,11 @@
       "  return { load: load };"
       "}"
       "var buffer = new ArrayBuffer(4);"
-      "Module(this, {}, buffer).load();"
+      "var module = Module(this, {}, buffer);"
+      "%OptimizeFunctionOnNextCall(module.load);"
+      "module.load();"
       "buffer";
 
-  i::FLAG_turbo_osr = false;  // TODO(titzer): test requires eager TF.
   v8::Local<v8::ArrayBuffer> result = CompileRun(load).As<v8::ArrayBuffer>();
   CHECK_EQ(should_be_neuterable, result->IsNeuterable());
 
@@ -24195,10 +24271,11 @@
       "  return { store: store };"
       "}"
       "var buffer = new ArrayBuffer(4);"
-      "Module(this, {}, buffer).store();"
+      "var module = Module(this, {}, buffer);"
+      "%OptimizeFunctionOnNextCall(module.store);"
+      "module.store();"
       "buffer";
 
-  i::FLAG_turbo_osr = false;  // TODO(titzer): test requires eager TF.
   result = CompileRun(store).As<v8::ArrayBuffer>();
   CHECK_EQ(should_be_neuterable, result->IsNeuterable());
 }
@@ -24629,6 +24706,60 @@
   CHECK_EQ(0U, set->Size());
 }
 
+TEST(SetDeleteThenAsArray) {
+  // https://bugs.chromium.org/p/v8/issues/detail?id=4946
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope handle_scope(isolate);
+  LocalContext env;
+
+  // make a Set
+  v8::Local<v8::Value> val = CompileRun("new Set([1, 2, 3])");
+  v8::Local<v8::Set> set = v8::Local<v8::Set>::Cast(val);
+  CHECK_EQ(3U, set->Size());
+
+  // delete the "middle" element (using AsArray to
+  // determine which element is the "middle" element)
+  v8::Local<v8::Array> array1 = set->AsArray();
+  CHECK_EQ(3U, array1->Length());
+  CHECK(set->Delete(env.local(), array1->Get(env.local(), 1).ToLocalChecked())
+            .FromJust());
+
+  // make sure there are no undefined values when we convert to an array again.
+  v8::Local<v8::Array> array2 = set->AsArray();
+  uint32_t length = array2->Length();
+  CHECK_EQ(2U, length);
+  for (uint32_t i = 0; i < length; i++) {
+    CHECK(!array2->Get(env.local(), i).ToLocalChecked()->IsUndefined());
+  }
+}
+
+TEST(MapDeleteThenAsArray) {
+  // https://bugs.chromium.org/p/v8/issues/detail?id=4946
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope handle_scope(isolate);
+  LocalContext env;
+
+  // make a Map
+  v8::Local<v8::Value> val = CompileRun("new Map([[1, 2], [3, 4], [5, 6]])");
+  v8::Local<v8::Map> map = v8::Local<v8::Map>::Cast(val);
+  CHECK_EQ(3U, map->Size());
+
+  // delete the "middle" element (using AsArray to
+  // determine which element is the "middle" element)
+  v8::Local<v8::Array> array1 = map->AsArray();
+  CHECK_EQ(6U, array1->Length());
+  // Map::AsArray returns a flat array, so the second key is at index 2.
+  v8::Local<v8::Value> key = array1->Get(env.local(), 2).ToLocalChecked();
+  CHECK(map->Delete(env.local(), key).FromJust());
+
+  // make sure there are no undefined values when we convert to an array again.
+  v8::Local<v8::Array> array2 = map->AsArray();
+  uint32_t length = array2->Length();
+  CHECK_EQ(4U, length);
+  for (uint32_t i = 0; i < length; i++) {
+    CHECK(!array2->Get(env.local(), i).ToLocalChecked()->IsUndefined());
+  }
+}
 
 TEST(CompatibleReceiverCheckOnCachedICHandler) {
   v8::Isolate* isolate = CcTest::isolate();
diff --git a/test/cctest/test-asm-validator.cc b/test/cctest/test-asm-validator.cc
index d5b5179..a07eecf 100644
--- a/test/cctest/test-asm-validator.cc
+++ b/test/cctest/test-asm-validator.cc
@@ -61,7 +61,6 @@
 
   i::ParseInfo info(zone, script);
   i::Parser parser(&info);
-  parser.set_allow_harmony_sloppy(true);
   info.set_global();
   info.set_lazy(false);
   info.set_allow_lazy_parsing(false);
@@ -73,7 +72,7 @@
       info.scope()->declarations()->at(0)->AsFunctionDeclaration()->fun();
   AsmTyper typer(isolate, zone, *script, root);
   if (typer.Validate()) {
-    ExpressionTypeCollector(isolate, root, types).Run();
+    ExpressionTypeCollector(isolate, root, typer.bounds(), types).Run();
     return "";
   } else {
     return typer.error_message();
@@ -1801,14 +1800,10 @@
 
 
 TEST(InstanceOf) {
-  const char* errorMsg = FLAG_harmony_instanceof
-                             ? "asm: line 0: do-expression encountered\n"
-                             : "asm: line 1: illegal comparison operator\n";
-
   CHECK_FUNC_ERROR(
       "function bar() { return (0 instanceof 0)|0; }\n"
       "function foo() { bar(); }",
-      errorMsg);
+      "asm: line 1: illegal comparison operator\n");
 }
 
 
diff --git a/test/cctest/test-assembler-arm.cc b/test/cctest/test-assembler-arm.cc
index 3763f06..cf404b0 100644
--- a/test/cctest/test-assembler-arm.cc
+++ b/test/cctest/test-assembler-arm.cc
@@ -412,29 +412,26 @@
 
   Assembler assm(isolate, NULL, 0);
 
-  if (CpuFeatures::IsSupported(ARMv7)) {
-    CpuFeatureScope scope(&assm, ARMv7);
-    __ usat(r1, 8, Operand(r0));           // Sat 0xFFFF to 0-255 = 0xFF.
-    __ usat(r2, 12, Operand(r0, ASR, 9));  // Sat (0xFFFF>>9) to 0-4095 = 0x7F.
-    __ usat(r3, 1, Operand(r0, LSL, 16));  // Sat (0xFFFF<<16) to 0-1 = 0x0.
-    __ add(r0, r1, Operand(r2));
-    __ add(r0, r0, Operand(r3));
-    __ mov(pc, Operand(lr));
+  __ usat(r1, 8, Operand(r0));           // Sat 0xFFFF to 0-255 = 0xFF.
+  __ usat(r2, 12, Operand(r0, ASR, 9));  // Sat (0xFFFF>>9) to 0-4095 = 0x7F.
+  __ usat(r3, 1, Operand(r0, LSL, 16));  // Sat (0xFFFF<<16) to 0-1 = 0x0.
+  __ add(r0, r1, Operand(r2));
+  __ add(r0, r0, Operand(r3));
+  __ mov(pc, Operand(lr));
 
-    CodeDesc desc;
-    assm.GetCode(&desc);
-    Handle<Code> code = isolate->factory()->NewCode(
-        desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
 #ifdef DEBUG
-    OFStream os(stdout);
-    code->Print(os);
+  OFStream os(stdout);
+  code->Print(os);
 #endif
-    F1 f = FUNCTION_CAST<F1>(code->entry());
-    int res = reinterpret_cast<int>(
-        CALL_GENERATED_CODE(isolate, f, 0xFFFF, 0, 0, 0, 0));
-    ::printf("f() = %d\n", res);
-    CHECK_EQ(382, res);
-  }
+  F1 f = FUNCTION_CAST<F1>(code->entry());
+  int res = reinterpret_cast<int>(
+      CALL_GENERATED_CODE(isolate, f, 0xFFFF, 0, 0, 0, 0));
+  ::printf("f() = %d\n", res);
+  CHECK_EQ(382, res);
 }
 
 
@@ -2231,6 +2228,158 @@
   }
 }
 
+TEST(ARMv8_vsel) {
+  // Test the vsel floating point instructions.
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+
+  Assembler assm(isolate, NULL, 0);
+
+  // Used to indicate whether a condition passed or failed.
+  static constexpr float kResultPass = 1.0f;
+  static constexpr float kResultFail = -kResultPass;
+
+  struct ResultsF32 {
+    float vseleq_;
+    float vselge_;
+    float vselgt_;
+    float vselvs_;
+
+    // The following conditions aren't architecturally supported, but the
+    // assembler implements them by swapping the inputs.
+    float vselne_;
+    float vsellt_;
+    float vselle_;
+    float vselvc_;
+  };
+
+  struct ResultsF64 {
+    double vseleq_;
+    double vselge_;
+    double vselgt_;
+    double vselvs_;
+
+    // The following conditions aren't architecturally supported, but the
+    // assembler implements them by swapping the inputs.
+    double vselne_;
+    double vsellt_;
+    double vselle_;
+    double vselvc_;
+  };
+
+  if (CpuFeatures::IsSupported(ARMv8)) {
+    CpuFeatureScope scope(&assm, ARMv8);
+
+    // Create a helper function:
+    //  void TestVsel(uint32_t nzcv,
+    //                ResultsF32* results_f32,
+    //                ResultsF64* results_f64);
+    __ msr(CPSR_f, Operand(r0));
+
+    __ vmov(s1, kResultPass);
+    __ vmov(s2, kResultFail);
+
+    __ vsel(eq, s0, s1, s2);
+    __ vstr(s0, r1, offsetof(ResultsF32, vseleq_));
+    __ vsel(ge, s0, s1, s2);
+    __ vstr(s0, r1, offsetof(ResultsF32, vselge_));
+    __ vsel(gt, s0, s1, s2);
+    __ vstr(s0, r1, offsetof(ResultsF32, vselgt_));
+    __ vsel(vs, s0, s1, s2);
+    __ vstr(s0, r1, offsetof(ResultsF32, vselvs_));
+
+    __ vsel(ne, s0, s1, s2);
+    __ vstr(s0, r1, offsetof(ResultsF32, vselne_));
+    __ vsel(lt, s0, s1, s2);
+    __ vstr(s0, r1, offsetof(ResultsF32, vsellt_));
+    __ vsel(le, s0, s1, s2);
+    __ vstr(s0, r1, offsetof(ResultsF32, vselle_));
+    __ vsel(vc, s0, s1, s2);
+    __ vstr(s0, r1, offsetof(ResultsF32, vselvc_));
+
+    __ vmov(d1, kResultPass);
+    __ vmov(d2, kResultFail);
+
+    __ vsel(eq, d0, d1, d2);
+    __ vstr(d0, r2, offsetof(ResultsF64, vseleq_));
+    __ vsel(ge, d0, d1, d2);
+    __ vstr(d0, r2, offsetof(ResultsF64, vselge_));
+    __ vsel(gt, d0, d1, d2);
+    __ vstr(d0, r2, offsetof(ResultsF64, vselgt_));
+    __ vsel(vs, d0, d1, d2);
+    __ vstr(d0, r2, offsetof(ResultsF64, vselvs_));
+
+    __ vsel(ne, d0, d1, d2);
+    __ vstr(d0, r2, offsetof(ResultsF64, vselne_));
+    __ vsel(lt, d0, d1, d2);
+    __ vstr(d0, r2, offsetof(ResultsF64, vsellt_));
+    __ vsel(le, d0, d1, d2);
+    __ vstr(d0, r2, offsetof(ResultsF64, vselle_));
+    __ vsel(vc, d0, d1, d2);
+    __ vstr(d0, r2, offsetof(ResultsF64, vselvc_));
+
+    __ bx(lr);
+
+    CodeDesc desc;
+    assm.GetCode(&desc);
+    Handle<Code> code = isolate->factory()->NewCode(
+        desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+#ifdef DEBUG
+    OFStream os(stdout);
+    code->Print(os);
+#endif
+    F5 f = FUNCTION_CAST<F5>(code->entry());
+    Object* dummy = nullptr;
+    USE(dummy);
+
+    STATIC_ASSERT(kResultPass == -kResultFail);
+#define CHECK_VSEL(n, z, c, v, vseleq, vselge, vselgt, vselvs)                \
+  do {                                                                        \
+    ResultsF32 results_f32;                                                   \
+    ResultsF64 results_f64;                                                   \
+    uint32_t nzcv = (n << 31) | (z << 30) | (c << 29) | (v << 28);            \
+    dummy = CALL_GENERATED_CODE(isolate, f, nzcv, &results_f32, &results_f64, \
+                                0, 0);                                        \
+    CHECK_EQ(vseleq, results_f32.vseleq_);                                    \
+    CHECK_EQ(vselge, results_f32.vselge_);                                    \
+    CHECK_EQ(vselgt, results_f32.vselgt_);                                    \
+    CHECK_EQ(vselvs, results_f32.vselvs_);                                    \
+    CHECK_EQ(-vseleq, results_f32.vselne_);                                   \
+    CHECK_EQ(-vselge, results_f32.vsellt_);                                   \
+    CHECK_EQ(-vselgt, results_f32.vselle_);                                   \
+    CHECK_EQ(-vselvs, results_f32.vselvc_);                                   \
+    CHECK_EQ(vseleq, results_f64.vseleq_);                                    \
+    CHECK_EQ(vselge, results_f64.vselge_);                                    \
+    CHECK_EQ(vselgt, results_f64.vselgt_);                                    \
+    CHECK_EQ(vselvs, results_f64.vselvs_);                                    \
+    CHECK_EQ(-vseleq, results_f64.vselne_);                                   \
+    CHECK_EQ(-vselge, results_f64.vsellt_);                                   \
+    CHECK_EQ(-vselgt, results_f64.vselle_);                                   \
+    CHECK_EQ(-vselvs, results_f64.vselvc_);                                   \
+  } while (0);
+
+    //         N  Z  C  V  vseleq       vselge       vselgt       vselvs
+    CHECK_VSEL(0, 0, 0, 0, kResultFail, kResultPass, kResultPass, kResultFail);
+    CHECK_VSEL(0, 0, 0, 1, kResultFail, kResultFail, kResultFail, kResultPass);
+    CHECK_VSEL(0, 0, 1, 0, kResultFail, kResultPass, kResultPass, kResultFail);
+    CHECK_VSEL(0, 0, 1, 1, kResultFail, kResultFail, kResultFail, kResultPass);
+    CHECK_VSEL(0, 1, 0, 0, kResultPass, kResultPass, kResultFail, kResultFail);
+    CHECK_VSEL(0, 1, 0, 1, kResultPass, kResultFail, kResultFail, kResultPass);
+    CHECK_VSEL(0, 1, 1, 0, kResultPass, kResultPass, kResultFail, kResultFail);
+    CHECK_VSEL(0, 1, 1, 1, kResultPass, kResultFail, kResultFail, kResultPass);
+    CHECK_VSEL(1, 0, 0, 0, kResultFail, kResultFail, kResultFail, kResultFail);
+    CHECK_VSEL(1, 0, 0, 1, kResultFail, kResultPass, kResultPass, kResultPass);
+    CHECK_VSEL(1, 0, 1, 0, kResultFail, kResultFail, kResultFail, kResultFail);
+    CHECK_VSEL(1, 0, 1, 1, kResultFail, kResultPass, kResultPass, kResultPass);
+    CHECK_VSEL(1, 1, 0, 0, kResultPass, kResultFail, kResultFail, kResultFail);
+    CHECK_VSEL(1, 1, 0, 1, kResultPass, kResultPass, kResultFail, kResultPass);
+    CHECK_VSEL(1, 1, 1, 0, kResultPass, kResultFail, kResultFail, kResultFail);
+    CHECK_VSEL(1, 1, 1, 1, kResultPass, kResultPass, kResultFail, kResultPass);
+
+#undef CHECK_VSEL
+  }
+}
 
 TEST(regress4292_b) {
   CcTest::InitializeVM();
diff --git a/test/cctest/test-assembler-ia32.cc b/test/cctest/test-assembler-ia32.cc
index 12733c2..e4cac56 100644
--- a/test/cctest/test-assembler-ia32.cc
+++ b/test/cctest/test-assembler-ia32.cc
@@ -1497,4 +1497,45 @@
   }
 }
 
+TEST(Regress621926) {
+  // Bug description:
+  // The opcodes for cmpw r/m16, r16 and cmpw r16, r/m16 were swapped.
+  // This was causing non-commutative comparisons to produce the wrong result.
+  CcTest::InitializeVM();
+  Isolate* isolate = reinterpret_cast<Isolate*>(CcTest::isolate());
+  HandleScope scope(isolate);
+  Assembler assm(isolate, nullptr, 0);
+
+  uint16_t a = 42;
+
+  Label fail;
+  __ push(ebx);
+  __ mov(ebx, Immediate(reinterpret_cast<intptr_t>(&a)));
+  __ mov(eax, Immediate(41));
+  __ cmpw(eax, Operand(ebx, 0));
+  __ j(above_equal, &fail);
+  __ cmpw(Operand(ebx, 0), eax);
+  __ j(below_equal, &fail);
+  __ mov(eax, 1);
+  __ pop(ebx);
+  __ ret(0);
+  __ bind(&fail);
+  __ mov(eax, 0);
+  __ pop(ebx);
+  __ ret(0);
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+
+#ifdef OBJECT_PRINT
+  OFStream os(stdout);
+  code->Print(os);
+#endif
+
+  F0 f = FUNCTION_CAST<F0>(code->entry());
+  CHECK_EQ(f(), 1);
+}
+
 #undef __
diff --git a/test/cctest/test-assembler-mips.cc b/test/cctest/test-assembler-mips.cc
index b8a0426..e73b40e 100644
--- a/test/cctest/test-assembler-mips.cc
+++ b/test/cctest/test-assembler-mips.cc
@@ -2048,7 +2048,7 @@
                         v8::internal::CodeObjectRequired::kYes);
 
     typedef struct test_float {
-      int64_t rt;
+      int32_t rt;
       double a;
       double b;
       double bold;
@@ -3191,6 +3191,8 @@
   __ jr(ra);
   __ nop();
 
+  CHECK_EQ(assm.UnboundLabelsCount(), 0);
+
   CodeDesc desc;
   assm.GetCode(&desc);
   Handle<Code> code = isolate->factory()->NewCode(
diff --git a/test/cctest/test-assembler-mips64.cc b/test/cctest/test-assembler-mips64.cc
index dd6ed6b..9529dab 100644
--- a/test/cctest/test-assembler-mips64.cc
+++ b/test/cctest/test-assembler-mips64.cc
@@ -1385,16 +1385,22 @@
   Isolate* isolate = CcTest::i_isolate();
   HandleScope scope(isolate);
 
-  typedef struct {
+  struct T {
     int64_t r1;
     int64_t r2;
     int64_t r3;
     int64_t r4;
     int64_t r5;
     int64_t r6;
+    int64_t r7;
+    int64_t r8;
+    int64_t r9;
+    int64_t r10;
+    int64_t r11;
+    int64_t r12;
     uint32_t ui;
     int32_t si;
-  } T;
+  };
   T t;
 
   Assembler assm(isolate, NULL, 0);
@@ -1423,26 +1429,25 @@
 
   // lh with positive data.
   __ lh(a5, MemOperand(a0, offsetof(T, ui)));
-  __ sw(a5, MemOperand(a0, offsetof(T, r2)));
+  __ sw(a5, MemOperand(a0, offsetof(T, r7)));
 
   // lh with negative data.
   __ lh(a6, MemOperand(a0, offsetof(T, si)));
-  __ sw(a6, MemOperand(a0, offsetof(T, r3)));
+  __ sw(a6, MemOperand(a0, offsetof(T, r8)));
 
   // lhu with negative data.
   __ lhu(a7, MemOperand(a0, offsetof(T, si)));
-  __ sw(a7, MemOperand(a0, offsetof(T, r4)));
+  __ sw(a7, MemOperand(a0, offsetof(T, r9)));
 
   // lb with negative data.
   __ lb(t0, MemOperand(a0, offsetof(T, si)));
-  __ sw(t0, MemOperand(a0, offsetof(T, r5)));
+  __ sw(t0, MemOperand(a0, offsetof(T, r10)));
 
-  // // sh writes only 1/2 of word.
-  __ lui(t1, 0x3333);
-  __ ori(t1, t1, 0x3333);
-  __ sw(t1, MemOperand(a0, offsetof(T, r6)));
-  __ lhu(t1, MemOperand(a0, offsetof(T, si)));
-  __ sh(t1, MemOperand(a0, offsetof(T, r6)));
+  // sh writes only 1/2 of word.
+  __ lw(a4, MemOperand(a0, offsetof(T, ui)));
+  __ sh(a4, MemOperand(a0, offsetof(T, r11)));
+  __ lw(a4, MemOperand(a0, offsetof(T, si)));
+  __ sh(a4, MemOperand(a0, offsetof(T, r12)));
 
   __ jr(ra);
   __ nop();
@@ -1454,26 +1459,75 @@
   F3 f = FUNCTION_CAST<F3>(code->entry());
   t.ui = 0x44332211;
   t.si = 0x99aabbcc;
-  t.r1 = 0x1111111111111111;
-  t.r2 = 0x2222222222222222;
-  t.r3 = 0x3333333333333333;
-  t.r4 = 0x4444444444444444;
+  t.r1 = 0x5555555555555555;
+  t.r2 = 0x5555555555555555;
+  t.r3 = 0x5555555555555555;
+  t.r4 = 0x5555555555555555;
   t.r5 = 0x5555555555555555;
-  t.r6 = 0x6666666666666666;
+  t.r6 = 0x5555555555555555;
+  t.r7 = 0x5555555555555555;
+  t.r8 = 0x5555555555555555;
+  t.r9 = 0x5555555555555555;
+  t.r10 = 0x5555555555555555;
+  t.r11 = 0x5555555555555555;
+  t.r12 = 0x5555555555555555;
+
   Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0);
   USE(dummy);
 
-  // Unsigned data, 32 & 64.
-  CHECK_EQ(static_cast<int64_t>(0x1111111144332211L), t.r1);
-  CHECK_EQ(static_cast<int64_t>(0x0000000000002211L), t.r2);
+  if (kArchEndian == kLittle) {
+    // Unsigned data, 32 & 64
+    CHECK_EQ(static_cast<int64_t>(0x5555555544332211L), t.r1);  // lw, sw.
+    CHECK_EQ(static_cast<int64_t>(0x0000000044332211L), t.r2);  // sd.
 
-  // Signed data, 32 & 64.
-  CHECK_EQ(static_cast<int64_t>(0x33333333ffffbbccL), t.r3);
-  CHECK_EQ(static_cast<int64_t>(0xffffffff0000bbccL), t.r4);
+    // Signed data, 32 & 64.
+    CHECK_EQ(static_cast<int64_t>(0x5555555599aabbccL), t.r3);  // lw, sw.
+    CHECK_EQ(static_cast<int64_t>(0xffffffff99aabbccL), t.r4);  // sd.
 
-  // Signed data, 32 & 64.
-  CHECK_EQ(static_cast<int64_t>(0x55555555ffffffccL), t.r5);
-  CHECK_EQ(static_cast<int64_t>(0x000000003333bbccL), t.r6);
+    // Signed data, 32 & 64.
+    CHECK_EQ(static_cast<int64_t>(0x5555555599aabbccL), t.r5);  // lwu, sw.
+    CHECK_EQ(static_cast<int64_t>(0x0000000099aabbccL), t.r6);  // sd.
+
+    // lh with unsigned and signed data.
+    CHECK_EQ(static_cast<int64_t>(0x5555555500002211L), t.r7);  // lh, sw.
+    CHECK_EQ(static_cast<int64_t>(0x55555555ffffbbccL), t.r8);  // lh, sw.
+
+    // lhu with signed data.
+    CHECK_EQ(static_cast<int64_t>(0x555555550000bbccL), t.r9);  // lhu, sw.
+
+    // lb with signed data.
+    CHECK_EQ(static_cast<int64_t>(0x55555555ffffffccL), t.r10);  // lb, sw.
+
+    // sh with unsigned and signed data.
+    CHECK_EQ(static_cast<int64_t>(0x5555555555552211L), t.r11);  // lw, sh.
+    CHECK_EQ(static_cast<int64_t>(0x555555555555bbccL), t.r12);  // lw, sh.
+  } else {
+    // Unsigned data, 32 & 64
+    CHECK_EQ(static_cast<int64_t>(0x4433221155555555L), t.r1);  // lw, sw.
+    CHECK_EQ(static_cast<int64_t>(0x0000000044332211L), t.r2);  // sd.
+
+    // Signed data, 32 & 64.
+    CHECK_EQ(static_cast<int64_t>(0x99aabbcc55555555L), t.r3);  // lw, sw.
+    CHECK_EQ(static_cast<int64_t>(0xffffffff99aabbccL), t.r4);  // sd.
+
+    // Signed data, 32 & 64.
+    CHECK_EQ(static_cast<int64_t>(0x99aabbcc55555555L), t.r5);  // lwu, sw.
+    CHECK_EQ(static_cast<int64_t>(0x0000000099aabbccL), t.r6);  // sd.
+
+    // lh with unsigned and signed data.
+    CHECK_EQ(static_cast<int64_t>(0x0000443355555555L), t.r7);  // lh, sw.
+    CHECK_EQ(static_cast<int64_t>(0xffff99aa55555555L), t.r8);  // lh, sw.
+
+    // lhu with signed data.
+    CHECK_EQ(static_cast<int64_t>(0x000099aa55555555L), t.r9);  // lhu, sw.
+
+    // lb with signed data.
+    CHECK_EQ(static_cast<int64_t>(0xffffff9955555555L), t.r10);  // lb, sw.
+
+    // sh with unsigned and signed data.
+    CHECK_EQ(static_cast<int64_t>(0x2211555555555555L), t.r11);  // lw, sh.
+    CHECK_EQ(static_cast<int64_t>(0xbbcc555555555555L), t.r12);  // lw, sh.
+  }
 }
 
 
@@ -2162,7 +2216,7 @@
 
     __ ldc1(f2, MemOperand(a0, offsetof(TestFloat, a)) );
     __ lwc1(f6, MemOperand(a0, offsetof(TestFloat, c)) );
-    __ lw(t0, MemOperand(a0, offsetof(TestFloat, rt)) );
+    __ ld(t0, MemOperand(a0, offsetof(TestFloat, rt)));
     __ Move(f12, 0.0);
     __ Move(f10, 0.0);
     __ Move(f16, 0.0);
@@ -3261,6 +3315,8 @@
   __ jr(ra);
   __ nop();
 
+  CHECK_EQ(assm.UnboundLabelsCount(), 0);
+
   CodeDesc desc;
   assm.GetCode(&desc);
   Handle<Code> code = isolate->factory()->NewCode(
@@ -5559,15 +5615,22 @@
       uint64_t  expected_res;
     };
 
-    struct TestCaseLdpc tc[] = {
-      // offset,         expected_res
-      { -131072,         0x250ffffe250fffff },
-      {      -4,         0x250c0006250c0007 },
-      {      -1,         0x250c0000250c0001 },
-      {       0,         0x03001025ef180000 },
-      {       1,         0x2508000125080000 },
-      {       4,         0x2508000725080006 },
-      {  131071,         0x250bfffd250bfffc },
+    auto doubleword = [](uint32_t word2, uint32_t word1) {
+      if (kArchEndian == kLittle)
+        return (static_cast<uint64_t>(word2) << 32) + word1;
+      else
+        return (static_cast<uint64_t>(word1) << 32) + word2;
+    };
+
+    TestCaseLdpc tc[] = {
+        // offset,  expected_res
+        {-131072, doubleword(0x250ffffe, 0x250fffff)},
+        {-4, doubleword(0x250c0006, 0x250c0007)},
+        {-1, doubleword(0x250c0000, 0x250c0001)},
+        {0, doubleword(0x03001025, 0xef180000)},
+        {1, doubleword(0x25080001, 0x25080000)},
+        {4, doubleword(0x25080007, 0x25080006)},
+        {131071, doubleword(0x250bfffd, 0x250bfffc)},
     };
 
     size_t nr_test_cases = sizeof(tc) / sizeof(TestCaseLdpc);
diff --git a/test/cctest/test-assembler-x64.cc b/test/cctest/test-assembler-x64.cc
index 66199fb..e18ae71 100644
--- a/test/cctest/test-assembler-x64.cc
+++ b/test/cctest/test-assembler-x64.cc
@@ -328,6 +328,32 @@
   CHECK_EQ(1u, result);
 }
 
+TEST(AssemblerX64TestwOperations) {
+  typedef uint16_t (*F)(uint16_t * x);
+  CcTest::InitializeVM();
+  // Allocate an executable page of memory.
+  size_t actual_size;
+  byte* buffer = static_cast<byte*>(v8::base::OS::Allocate(
+      Assembler::kMinimalBufferSize, &actual_size, true));
+  CHECK(buffer);
+  Assembler assm(CcTest::i_isolate(), buffer, static_cast<int>(actual_size));
+
+  // Set rax with the ZF flag of the testl instruction.
+  Label done;
+  __ movq(rax, Immediate(1));
+  __ testw(Operand(arg1, 0), Immediate(0xf0f0));
+  __ j(not_zero, &done, Label::kNear);
+  __ movq(rax, Immediate(0));
+  __ bind(&done);
+  __ ret(0);
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  // Call the function from C++.
+  uint16_t operand = 0x8000;
+  uint16_t result = FUNCTION_CAST<F>(buffer)(&operand);
+  CHECK_EQ(1u, result);
+}
 
 TEST(AssemblerX64XorlOperations) {
   CcTest::InitializeVM();
diff --git a/test/cctest/test-ast-expression-visitor.cc b/test/cctest/test-ast-expression-visitor.cc
index bda1fba..5df8253 100644
--- a/test/cctest/test-ast-expression-visitor.cc
+++ b/test/cctest/test-ast-expression-visitor.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include <stdlib.h>
+#include <map>
 
 #include "src/v8.h"
 
@@ -19,39 +20,25 @@
 
 namespace {
 
-static void CollectTypes(HandleAndZoneScope* handles, const char* source,
-                         ZoneVector<ExpressionTypeEntry>* dst) {
-  i::Isolate* isolate = CcTest::i_isolate();
-  i::Factory* factory = isolate->factory();
+class NodeTypeCounter : public AstExpressionVisitor {
+ public:
+  typedef std::map<AstNode::NodeType, int> Counters;
 
-  i::Handle<i::String> source_code =
-      factory->NewStringFromUtf8(i::CStrVector(source)).ToHandleChecked();
+  NodeTypeCounter(Isolate* isolate, Expression* expr, Counters* counts)
+      : AstExpressionVisitor(isolate, expr), counts_(counts) {}
 
-  i::Handle<i::Script> script = factory->NewScript(source_code);
+ protected:
+  void VisitExpression(Expression* expr) override {
+    (*counts_)[expr->node_type()]++;
+  }
 
-  i::ParseInfo info(handles->main_zone(), script);
-  i::Parser parser(&info);
-  parser.set_allow_harmony_sloppy(true);
-  info.set_global();
-  info.set_lazy(false);
-  info.set_allow_lazy_parsing(false);
-  info.set_toplevel(true);
-
-  CHECK(i::Compiler::ParseAndAnalyze(&info));
-
-  ExpressionTypeCollector(
-      isolate,
-      info.scope()->declarations()->at(0)->AsFunctionDeclaration()->fun(), dst)
-      .Run();
-}
+ private:
+  Counters* counts_;
+};
 
 }  // namespace
 
-
-TEST(VisitExpressions) {
-  v8::V8::Initialize();
-  HandleAndZoneScope handles;
-  ZoneVector<ExpressionTypeEntry> types(handles.main_zone());
+TEST(VisitExpression) {
   const char test_function[] =
       "function GeometricMean(stdlib, foreign, buffer) {\n"
       "  \"use asm\";\n"
@@ -85,339 +72,31 @@
       "  return { geometricMean: geometricMean };\n"
       "}\n";
 
-  CollectTypes(&handles, test_function, &types);
-  CHECK_TYPES_BEGIN {
-    // function logSum
-    CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {
-      CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(start, Bounds::Unbounded());
-          CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-            CHECK_VAR(start, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-        }
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(end, Bounds::Unbounded());
-          CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-            CHECK_VAR(end, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-        }
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(sum, Bounds::Unbounded());
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-        }
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(p, Bounds::Unbounded());
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-        }
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(q, Bounds::Unbounded());
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-        }
-        // for (p = start << 3, q = end << 3;
-        CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-          CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-            CHECK_VAR(p, Bounds::Unbounded());
-            CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-              CHECK_VAR(start, Bounds::Unbounded());
-              CHECK_EXPR(Literal, Bounds::Unbounded());
-            }
-          }
-          CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-            CHECK_VAR(q, Bounds::Unbounded());
-            CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-              CHECK_VAR(end, Bounds::Unbounded());
-              CHECK_EXPR(Literal, Bounds::Unbounded());
-            }
-          }
-        }
-        // (p|0) < (q|0);
-        CHECK_EXPR(CompareOperation, Bounds::Unbounded()) {
-          CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-            CHECK_VAR(p, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-          CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-            CHECK_VAR(q, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-        }
-        // p = (p + 8)|0) {\n"
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(p, Bounds::Unbounded());
-          CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-            CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-              CHECK_VAR(p, Bounds::Unbounded());
-              CHECK_EXPR(Literal, Bounds::Unbounded());
-            }
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-        }
-        // sum = sum + +log(values[p>>3]);
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(sum, Bounds::Unbounded());
-          CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-            CHECK_VAR(sum, Bounds::Unbounded());
-            CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-              CHECK_EXPR(Call, Bounds::Unbounded()) {
-                CHECK_VAR(log, Bounds::Unbounded());
-                CHECK_EXPR(Property, Bounds::Unbounded()) {
-                  CHECK_VAR(values, Bounds::Unbounded());
-                  CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-                    CHECK_VAR(p, Bounds::Unbounded());
-                    CHECK_EXPR(Literal, Bounds::Unbounded());
-                  }
-                }
-              }
-              CHECK_EXPR(Literal, Bounds::Unbounded());
-            }
-          }
-        }
-        // return +sum;
-        CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-          CHECK_VAR(sum, Bounds::Unbounded());
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-        }
-      }
-      // function geometricMean
-      CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(start, Bounds::Unbounded());
-          CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-            CHECK_VAR(start, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-        }
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(end, Bounds::Unbounded());
-          CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-            CHECK_VAR(end, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-        }
-        // return +exp(+logSum(start, end) / +((end - start)|0));
-        CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-          CHECK_EXPR(Call, Bounds::Unbounded()) {
-            CHECK_VAR(exp, Bounds::Unbounded());
-            CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-              CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-                CHECK_EXPR(Call, Bounds::Unbounded()) {
-                  CHECK_VAR(logSum, Bounds::Unbounded());
-                  CHECK_VAR(start, Bounds::Unbounded());
-                  CHECK_VAR(end, Bounds::Unbounded());
-                }
-                CHECK_EXPR(Literal, Bounds::Unbounded());
-              }
-              CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-                CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-                  CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-                    CHECK_VAR(end, Bounds::Unbounded());
-                    CHECK_VAR(start, Bounds::Unbounded());
-                  }
-                  CHECK_EXPR(Literal, Bounds::Unbounded());
-                }
-                CHECK_EXPR(Literal, Bounds::Unbounded());
-              }
-            }
-          }
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-        }
-      }
-      // "use asm";
-      CHECK_EXPR(Literal, Bounds::Unbounded());
-      // var exp = stdlib.Math.exp;
-      CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-        CHECK_VAR(exp, Bounds::Unbounded());
-        CHECK_EXPR(Property, Bounds::Unbounded()) {
-          CHECK_EXPR(Property, Bounds::Unbounded()) {
-            CHECK_VAR(stdlib, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-        }
-      }
-      // var log = stdlib.Math.log;
-      CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-        CHECK_VAR(log, Bounds::Unbounded());
-        CHECK_EXPR(Property, Bounds::Unbounded()) {
-          CHECK_EXPR(Property, Bounds::Unbounded()) {
-            CHECK_VAR(stdlib, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-        }
-      }
-      // var values = new stdlib.Float64Array(buffer);
-      CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-        CHECK_VAR(values, Bounds::Unbounded());
-        CHECK_EXPR(CallNew, Bounds::Unbounded()) {
-          CHECK_EXPR(Property, Bounds::Unbounded()) {
-            CHECK_VAR(stdlib, Bounds::Unbounded());
-            CHECK_EXPR(Literal, Bounds::Unbounded());
-          }
-          CHECK_VAR(buffer, Bounds::Unbounded());
-        }
-      }
-      // return { geometricMean: geometricMean };
-      CHECK_EXPR(ObjectLiteral, Bounds::Unbounded()) {
-        CHECK_VAR(geometricMean, Bounds::Unbounded());
-      }
-    }
-  }
-  CHECK_TYPES_END
-}
-
-
-TEST(VisitConditional) {
+  // Parse + compile test_function, and extract the AST node for it.
   v8::V8::Initialize();
   HandleAndZoneScope handles;
-  ZoneVector<ExpressionTypeEntry> types(handles.main_zone());
-  // Check that traversing the ternary operator works.
-  const char test_function[] =
-      "function foo() {\n"
-      "  var a, b, c;\n"
-      "  var x = a ? b : c;\n"
-      "}\n";
-  CollectTypes(&handles, test_function, &types);
-  CHECK_TYPES_BEGIN {
-    CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {
-      CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-        CHECK_VAR(x, Bounds::Unbounded());
-        CHECK_EXPR(Conditional, Bounds::Unbounded()) {
-          CHECK_VAR(a, Bounds::Unbounded());
-          CHECK_VAR(b, Bounds::Unbounded());
-          CHECK_VAR(c, Bounds::Unbounded());
-        }
-      }
-    }
-  }
-  CHECK_TYPES_END
-}
+  i::Isolate* isolate = CcTest::i_isolate();
+  i::Handle<i::String> source_code =
+      isolate->factory()
+          ->NewStringFromUtf8(i::CStrVector(test_function))
+          .ToHandleChecked();
+  i::Handle<i::Script> script = isolate->factory()->NewScript(source_code);
+  i::ParseInfo info(handles.main_zone(), script);
+  i::Parser parser(&info);
+  info.set_global();
+  info.set_lazy(false);
+  info.set_allow_lazy_parsing(false);
+  info.set_toplevel(true);
+  CHECK(i::Compiler::ParseAndAnalyze(&info));
+  Expression* test_function_expr =
+      info.scope()->declarations()->at(0)->AsFunctionDeclaration()->fun();
 
-
-TEST(VisitEmptyForStatment) {
-  v8::V8::Initialize();
-  HandleAndZoneScope handles;
-  ZoneVector<ExpressionTypeEntry> types(handles.main_zone());
-  // Check that traversing an empty for statement works.
-  const char test_function[] =
-      "function foo() {\n"
-      "  for (;;) {}\n"
-      "}\n";
-  CollectTypes(&handles, test_function, &types);
-  CHECK_TYPES_BEGIN {
-    CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {}
-  }
-  CHECK_TYPES_END
-}
-
-
-TEST(VisitSwitchStatment) {
-  v8::V8::Initialize();
-  HandleAndZoneScope handles;
-  ZoneVector<ExpressionTypeEntry> types(handles.main_zone());
-  // Check that traversing a switch with a default works.
-  const char test_function[] =
-      "function foo() {\n"
-      "  switch (0) { case 1: break; default: break; }\n"
-      "}\n";
-  CollectTypes(&handles, test_function, &types);
-  CHECK_TYPES_BEGIN {
-    CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {
-      CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-        CHECK_VAR(.switch_tag, Bounds::Unbounded());
-        CHECK_EXPR(Literal, Bounds::Unbounded());
-      }
-      CHECK_EXPR(Literal, Bounds::Unbounded());
-      CHECK_VAR(.switch_tag, Bounds::Unbounded());
-      CHECK_EXPR(Literal, Bounds::Unbounded());
-    }
-  }
-  CHECK_TYPES_END
-}
-
-
-TEST(VisitThrow) {
-  v8::V8::Initialize();
-  HandleAndZoneScope handles;
-  ZoneVector<ExpressionTypeEntry> types(handles.main_zone());
-  const char test_function[] =
-      "function foo() {\n"
-      "  throw 123;\n"
-      "}\n";
-  CollectTypes(&handles, test_function, &types);
-  CHECK_TYPES_BEGIN {
-    CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {
-      CHECK_EXPR(Throw, Bounds::Unbounded()) {
-        CHECK_EXPR(Literal, Bounds::Unbounded());
-      }
-    }
-  }
-  CHECK_TYPES_END
-}
-
-
-TEST(VisitYield) {
-  v8::V8::Initialize();
-  HandleAndZoneScope handles;
-  ZoneVector<ExpressionTypeEntry> types(handles.main_zone());
-  const char test_function[] =
-      "function* foo() {\n"
-      "  yield 123;\n"
-      "}\n";
-  CollectTypes(&handles, test_function, &types);
-  CHECK_TYPES_BEGIN {
-    CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {
-      // Implicit initial yield
-      CHECK_EXPR(Yield, Bounds::Unbounded()) {
-        CHECK_VAR(.generator_object, Bounds::Unbounded());
-        CHECK_EXPR(Assignment, Bounds::Unbounded()) {
-          CHECK_VAR(.generator_object, Bounds::Unbounded());
-          CHECK_EXPR(CallRuntime, Bounds::Unbounded());
-        }
-      }
-      // Explicit yield (argument wrapped with CreateIterResultObject)
-      CHECK_EXPR(Yield, Bounds::Unbounded()) {
-        CHECK_VAR(.generator_object, Bounds::Unbounded());
-        CHECK_EXPR(CallRuntime, Bounds::Unbounded()) {
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-          CHECK_EXPR(Literal, Bounds::Unbounded());
-        }
-      }
-      // Argument to implicit final return
-      CHECK_EXPR(CallRuntime, Bounds::Unbounded()) {  // CreateIterResultObject
-        CHECK_EXPR(Literal, Bounds::Unbounded());
-        CHECK_EXPR(Literal, Bounds::Unbounded());
-      }
-      // Implicit finally clause
-      CHECK_EXPR(CallRuntime, Bounds::Unbounded()) {
-        CHECK_VAR(.generator_object, Bounds::Unbounded());
-      }
-    }
-  }
-  CHECK_TYPES_END
-}
-
-
-TEST(VisitSkipping) {
-  v8::V8::Initialize();
-  HandleAndZoneScope handles;
-  ZoneVector<ExpressionTypeEntry> types(handles.main_zone());
-  const char test_function[] =
-      "function foo(x) {\n"
-      "  return (x + x) + 1;\n"
-      "}\n";
-  CollectTypes(&handles, test_function, &types);
-  CHECK_TYPES_BEGIN {
-    CHECK_EXPR(FunctionLiteral, Bounds::Unbounded()) {
-      CHECK_EXPR(BinaryOperation, Bounds::Unbounded()) {
-        // Skip x + x
-        CHECK_SKIP();
-        CHECK_EXPR(Literal, Bounds::Unbounded());
-      }
-    }
-  }
-  CHECK_TYPES_END
+  // Run NodeTypeCounter and sanity check counts for 3 expression types,
+  // and for overall # of types found.
+  NodeTypeCounter::Counters counts;
+  NodeTypeCounter(isolate, test_function_expr, &counts).Run();
+  CHECK_EQ(21, counts[AstNode::kBinaryOperation]);
+  CHECK_EQ(26, counts[AstNode::kLiteral]);
+  CHECK_EQ(3, counts[AstNode::kFunctionLiteral]);
+  CHECK_EQ(10, counts.size());
 }
diff --git a/test/cctest/test-compiler.cc b/test/cctest/test-compiler.cc
index 32d720e..18f0009 100644
--- a/test/cctest/test-compiler.cc
+++ b/test/cctest/test-compiler.cc
@@ -364,9 +364,7 @@
   CHECK(!f->shared()->feedback_vector()->is_empty());
 }
 
-
-// Test that optimized code for different closures is actually shared
-// immediately by the FastNewClosureStub when run in the same context.
+// Test that optimized code for different closures is actually shared.
 TEST(OptimizedCodeSharing1) {
   FLAG_stress_compaction = false;
   FLAG_allow_natives_syntax = true;
@@ -385,8 +383,8 @@
         "%DebugPrint(closure0());"
         "%OptimizeFunctionOnNextCall(closure0);"
         "%DebugPrint(closure0());"
-        "var closure1 = MakeClosure();"
-        "var closure2 = MakeClosure();");
+        "var closure1 = MakeClosure(); closure1();"
+        "var closure2 = MakeClosure(); closure2();");
     Handle<JSFunction> fun1 = Handle<JSFunction>::cast(
         v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
             env->Global()
@@ -403,9 +401,7 @@
   }
 }
 
-
-// Test that optimized code for different closures is actually shared
-// immediately by the FastNewClosureStub when run different contexts.
+// Test that optimized code for different closures is actually shared.
 TEST(OptimizedCodeSharing2) {
   if (FLAG_stress_compaction) return;
   FLAG_allow_natives_syntax = true;
@@ -456,8 +452,8 @@
         "%DebugPrint(closure0());"
         "%OptimizeFunctionOnNextCall(closure0);"
         "%DebugPrint(closure0());"
-        "var closure1 = MakeClosure();"
-        "var closure2 = MakeClosure();");
+        "var closure1 = MakeClosure(); closure1();"
+        "var closure2 = MakeClosure(); closure2();");
     Handle<JSFunction> fun1 = Handle<JSFunction>::cast(
         v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
             env->Global()
@@ -475,9 +471,7 @@
   }
 }
 
-
-// Test that optimized code for different closures is actually shared
-// immediately by the FastNewClosureStub without context-dependent entries.
+// Test that optimized code for different closures is actually shared.
 TEST(OptimizedCodeSharing3) {
   if (FLAG_stress_compaction) return;
   FLAG_allow_natives_syntax = true;
@@ -531,8 +525,8 @@
         "%DebugPrint(closure0());"
         "%OptimizeFunctionOnNextCall(closure0);"
         "%DebugPrint(closure0());"
-        "var closure1 = MakeClosure();"
-        "var closure2 = MakeClosure();");
+        "var closure1 = MakeClosure(); closure1();"
+        "var closure2 = MakeClosure(); closure2();");
     Handle<JSFunction> fun1 = Handle<JSFunction>::cast(
         v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
             env->Global()
diff --git a/test/cctest/test-cpu-profiler.cc b/test/cctest/test-cpu-profiler.cc
index 24c84c3..e4eceec 100644
--- a/test/cctest/test-cpu-profiler.cc
+++ b/test/cctest/test-cpu-profiler.cc
@@ -461,8 +461,7 @@
   const v8::CpuProfileNode* result = FindChild(context, node, name);
   if (!result) {
     char buffer[100];
-    i::SNPrintF(Vector<char>(buffer, arraysize(buffer)),
-                "Failed to GetChild: %s", name);
+    i::SNPrintF(i::ArrayVector(buffer), "Failed to GetChild: %s", name);
     FATAL(buffer);
   }
   return result;
@@ -1034,8 +1033,8 @@
   i::Handle<i::String> str = factory->NewStringFromAsciiChecked(func_name);
   int line = 1;
   int column = 1;
-  profiler.CodeCreateEvent(i::Logger::FUNCTION_TAG, code, func->shared(), NULL,
-                           *str, line, column);
+  profiler.CodeCreateEvent(i::Logger::FUNCTION_TAG, code, func->shared(), *str,
+                           line, column);
 
   // Enqueue a tick event to enable code events processing.
   EnqueueTickSampleEvent(processor.get(), code_address);
diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc
index ab27f39..440c6f1 100644
--- a/test/cctest/test-debug.cc
+++ b/test/cctest/test-debug.cc
@@ -7834,8 +7834,8 @@
   CompileRun("var p = new Promise(function(res, rej) { fun(); res(); });");
   CompileRun(
       "var r;"
-      "p.chain(function() { r = 'resolved'; },"
-      "        function() { r = 'rejected'; });");
+      "p.then(function() { r = 'resolved'; },"
+      "       function() { r = 'rejected'; });");
   CHECK(CompileRun("r")->Equals(context, v8_str("resolved")).FromJust());
 }
 
@@ -7874,45 +7874,14 @@
   CompileRun("var p = new Promise(function(res, rej) { fun(); res(); });");
   CompileRun(
       "var r;"
-      "p.chain(function() { r = 'resolved'; },"
-      "        function(e) { r = 'rejected' + e; });");
+      "p.then(function() { r = 'resolved'; },"
+      "       function(e) { r = 'rejected' + e; });");
   CHECK(
       CompileRun("r")->Equals(context, v8_str("rejectedrejection")).FromJust());
   CHECK_EQ(1, exception_event_counter);
 }
 
 
-TEST(DebugBreakOnExceptionInObserveCallback) {
-  i::FLAG_harmony_object_observe = true;
-  DebugLocalContext env;
-  v8::Isolate* isolate = env->GetIsolate();
-  v8::HandleScope scope(isolate);
-  v8::Debug::SetDebugEventListener(isolate, &DebugEventCountException);
-  v8::Local<v8::Context> context = env.context();
-  // Break on uncaught exception
-  ChangeBreakOnException(false, true);
-  exception_event_counter = 0;
-
-  v8::Local<v8::FunctionTemplate> fun =
-      v8::FunctionTemplate::New(isolate, ThrowCallback);
-  CHECK(env->Global()
-            ->Set(context, v8_str("fun"),
-                  fun->GetFunction(context).ToLocalChecked())
-            .FromJust());
-
-  CompileRun(
-      "var obj = {};"
-      "var callbackRan = false;"
-      "Object.observe(obj, function() {"
-      "   callbackRan = true;"
-      "   throw Error('foo');"
-      "});"
-      "obj.prop = 1");
-  CHECK(CompileRun("callbackRan")->BooleanValue(context).FromJust());
-  CHECK_EQ(1, exception_event_counter);
-}
-
-
 static void DebugHarmonyScopingListener(
     const v8::Debug::EventDetails& event_details) {
   v8::DebugEvent event = event_details.GetEvent();
@@ -8185,3 +8154,36 @@
   ExpectString("JSON.stringify(log)",
                "[\"a4\",\"b2\",\"c4\",\"e0\",\"e0\",\"e0\",\"e0\",\"f0\"]");
 }
+
+size_t current_action = 0;
+StepAction actions[] = {StepNext, StepNext};
+static void DebugStepOverFunctionWithCaughtExceptionListener(
+    const v8::Debug::EventDetails& event_details) {
+  v8::DebugEvent event = event_details.GetEvent();
+  if (event != v8::Break) return;
+  ++break_point_hit_count;
+  if (current_action >= 2) return;
+  PrepareStep(actions[current_action]);
+}
+
+TEST(DebugStepOverFunctionWithCaughtException) {
+  i::FLAG_allow_natives_syntax = true;
+
+  DebugLocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  v8::HandleScope scope(isolate);
+  v8::Debug::SetDebugEventListener(
+      isolate, DebugStepOverFunctionWithCaughtExceptionListener);
+
+  break_point_hit_count = 0;
+  CompileRun(
+      "function foo() {\n"
+      "  try { throw new Error(); } catch (e) {}\n"
+      "}\n"
+      "debugger;\n"
+      "foo();\n"
+      "foo();\n");
+
+  v8::Debug::SetDebugEventListener(env->GetIsolate(), nullptr);
+  CHECK_EQ(break_point_hit_count, 4);
+}
diff --git a/test/cctest/test-disasm-arm.cc b/test/cctest/test-disasm-arm.cc
index 7eea8a1..40745f9 100644
--- a/test/cctest/test-disasm-arm.cc
+++ b/test/cctest/test-disasm-arm.cc
@@ -399,15 +399,6 @@
     COMPARE(bfi(r1, r0, 31, 1),
             "e7df1f90       bfi r1, r0, #31, #1");
 
-    COMPARE(usat(r0, 1, Operand(r1)),
-            "e6e10011       usat r0, #1, r1");
-    COMPARE(usat(r2, 7, Operand(lr)),
-            "e6e7201e       usat r2, #7, lr");
-    COMPARE(usat(r3, 31, Operand(r4, LSL, 31)),
-            "e6ff3f94       usat r3, #31, r4, lsl #31");
-    COMPARE(usat(r8, 0, Operand(r5, ASR, 17)),
-            "e6e088d5       usat r8, #0, r5, asr #17");
-
     COMPARE(pkhbt(r3, r4, Operand(r5, LSL, 17)),
             "e6843895       pkhbt r3, r4, r5, lsl #17");
     COMPARE(pkhtb(r3, r4, Operand(r5, ASR, 17)),
@@ -443,6 +434,15 @@
     COMPARE(rbit(r10, ip), "e6ffaf3c       rbit r10, ip");
   }
 
+  COMPARE(usat(r0, 1, Operand(r1)),
+          "e6e10011       usat r0, #1, r1");
+  COMPARE(usat(r2, 7, Operand(lr)),
+          "e6e7201e       usat r2, #7, lr");
+  COMPARE(usat(r3, 31, Operand(r4, LSL, 31)),
+          "e6ff3f94       usat r3, #31, r4, lsl #31");
+  COMPARE(usat(r8, 0, Operand(r5, ASR, 17)),
+          "e6e088d5       usat r8, #0, r5, asr #17");
+
   COMPARE(smmla(r0, r1, r2, r3), "e7503211       smmla r0, r1, r2, r3");
   COMPARE(smmla(r10, r9, r8, r7), "e75a7819       smmla r10, r9, r8, r7");
 
@@ -860,6 +860,51 @@
 }
 
 
+TEST(ARMv8_vselX_disasm) {
+  SET_UP();
+
+  if (CpuFeatures::IsSupported(ARMv8)) {
+    // Native instructions.
+    COMPARE(vsel(eq, d0, d1, d2),
+            "fe010b02       vseleq.f64 d0, d1, d2");
+    COMPARE(vsel(eq, s0, s1, s2),
+            "fe000a81       vseleq.f32 s0, s1, s2");
+    COMPARE(vsel(ge, d0, d1, d2),
+            "fe210b02       vselge.f64 d0, d1, d2");
+    COMPARE(vsel(ge, s0, s1, s2),
+            "fe200a81       vselge.f32 s0, s1, s2");
+    COMPARE(vsel(gt, d0, d1, d2),
+            "fe310b02       vselgt.f64 d0, d1, d2");
+    COMPARE(vsel(gt, s0, s1, s2),
+            "fe300a81       vselgt.f32 s0, s1, s2");
+    COMPARE(vsel(vs, d0, d1, d2),
+            "fe110b02       vselvs.f64 d0, d1, d2");
+    COMPARE(vsel(vs, s0, s1, s2),
+            "fe100a81       vselvs.f32 s0, s1, s2");
+
+    // Inverted conditions (and swapped inputs).
+    COMPARE(vsel(ne, d0, d1, d2),
+            "fe020b01       vseleq.f64 d0, d2, d1");
+    COMPARE(vsel(ne, s0, s1, s2),
+            "fe010a20       vseleq.f32 s0, s2, s1");
+    COMPARE(vsel(lt, d0, d1, d2),
+            "fe220b01       vselge.f64 d0, d2, d1");
+    COMPARE(vsel(lt, s0, s1, s2),
+            "fe210a20       vselge.f32 s0, s2, s1");
+    COMPARE(vsel(le, d0, d1, d2),
+            "fe320b01       vselgt.f64 d0, d2, d1");
+    COMPARE(vsel(le, s0, s1, s2),
+            "fe310a20       vselgt.f32 s0, s2, s1");
+    COMPARE(vsel(vc, d0, d1, d2),
+            "fe120b01       vselvs.f64 d0, d2, d1");
+    COMPARE(vsel(vc, s0, s1, s2),
+            "fe110a20       vselvs.f32 s0, s2, s1");
+  }
+
+  VERIFY_RUN();
+}
+
+
 TEST(Neon) {
   SET_UP();
 
diff --git a/test/cctest/test-disasm-ia32.cc b/test/cctest/test-disasm-ia32.cc
index f96eb00..3ecd7b3 100644
--- a/test/cctest/test-disasm-ia32.cc
+++ b/test/cctest/test-disasm-ia32.cc
@@ -29,11 +29,11 @@
 
 #include "src/v8.h"
 
+#include "src/code-factory.h"
 #include "src/debug/debug.h"
 #include "src/disasm.h"
 #include "src/disassembler.h"
 #include "src/ia32/frames-ia32.h"
-#include "src/ic/ic.h"
 #include "src/macro-assembler.h"
 #include "test/cctest/cctest.h"
 
@@ -290,7 +290,7 @@
   __ bind(&L2);
   __ call(Operand(ebx, ecx, times_4, 10000));
   __ nop();
-  Handle<Code> ic(LoadIC::initialize_stub(isolate, NOT_INSIDE_TYPEOF));
+  Handle<Code> ic(CodeFactory::LoadIC(isolate, NOT_INSIDE_TYPEOF).code());
   __ call(ic, RelocInfo::CODE_TARGET);
   __ nop();
   __ call(FUNCTION_ADDR(DummyStaticFunction), RelocInfo::RUNTIME_ENTRY);
diff --git a/test/cctest/test-disasm-mips64.cc b/test/cctest/test-disasm-mips64.cc
index 8a1e0e7..d8f5681 100644
--- a/test/cctest/test-disasm-mips64.cc
+++ b/test/cctest/test-disasm-mips64.cc
@@ -530,41 +530,28 @@
   COMPARE(dsrav(v0, v1, fp),
           "03c31017       dsrav   v0, v1, fp");
 
-  if (kArchVariant == kMips64r2) {
-    COMPARE(rotr(a0, a1, 0),
-            "00252002       rotr    a0, a1, 0");
-    COMPARE(rotr(s0, s1, 8),
-            "00318202       rotr    s0, s1, 8");
-    COMPARE(rotr(a6, a7, 24),
-            "002b5602       rotr    a6, a7, 24");
-    COMPARE(rotr(v0, v1, 31),
-            "002317c2       rotr    v0, v1, 31");
-    COMPARE(drotr(a0, a1, 0),
-            "0025203a       drotr   a0, a1, 0");
-    COMPARE(drotr(s0, s1, 8),
-            "0031823a       drotr   s0, s1, 8");
-    COMPARE(drotr(a6, a7, 24),
-            "002b563a       drotr   a6, a7, 24");
-    COMPARE(drotr(v0, v1, 31),
-            "002317fa       drotr   v0, v1, 31");
+  COMPARE(rotr(a0, a1, 0), "00252002       rotr    a0, a1, 0");
+  COMPARE(rotr(s0, s1, 8), "00318202       rotr    s0, s1, 8");
+  COMPARE(rotr(a6, a7, 24), "002b5602       rotr    a6, a7, 24");
+  COMPARE(rotr(v0, v1, 31), "002317c2       rotr    v0, v1, 31");
+  COMPARE(drotr(a0, a1, 0), "0025203a       drotr   a0, a1, 0");
+  COMPARE(drotr(s0, s1, 8), "0031823a       drotr   s0, s1, 8");
+  COMPARE(drotr(a6, a7, 24), "002b563a       drotr   a6, a7, 24");
+  COMPARE(drotr(v0, v1, 31), "002317fa       drotr   v0, v1, 31");
 
-    COMPARE(rotrv(a0, a1, a2),
-            "00c52046       rotrv   a0, a1, a2");
-    COMPARE(rotrv(s0, s1, s2),
-            "02518046       rotrv   s0, s1, s2");
-    COMPARE(rotrv(a6, a7, t0),
-            "018b5046       rotrv   a6, a7, t0");
-    COMPARE(rotrv(v0, v1, fp),
-            "03c31046       rotrv   v0, v1, fp");
-    COMPARE(drotrv(a0, a1, a2),
-            "00c52056       drotrv  a0, a1, a2");
-    COMPARE(drotrv(s0, s1, s2),
-            "02518056       drotrv  s0, s1, s2");
-    COMPARE(drotrv(a6, a7, t0),
-            "018b5056       drotrv  a6, a7, t0");
-    COMPARE(drotrv(v0, v1, fp),
-            "03c31056       drotrv  v0, v1, fp");
-  }
+  COMPARE(drotr32(a0, a1, 0), "0025203e       drotr32 a0, a1, 0");
+  COMPARE(drotr32(s0, s1, 8), "0031823e       drotr32 s0, s1, 8");
+  COMPARE(drotr32(a6, a7, 24), "002b563e       drotr32 a6, a7, 24");
+  COMPARE(drotr32(v0, v1, 31), "002317fe       drotr32 v0, v1, 31");
+
+  COMPARE(rotrv(a0, a1, a2), "00c52046       rotrv   a0, a1, a2");
+  COMPARE(rotrv(s0, s1, s2), "02518046       rotrv   s0, s1, s2");
+  COMPARE(rotrv(a6, a7, t0), "018b5046       rotrv   a6, a7, t0");
+  COMPARE(rotrv(v0, v1, fp), "03c31046       rotrv   v0, v1, fp");
+  COMPARE(drotrv(a0, a1, a2), "00c52056       drotrv  a0, a1, a2");
+  COMPARE(drotrv(s0, s1, s2), "02518056       drotrv  s0, s1, s2");
+  COMPARE(drotrv(a6, a7, t0), "018b5056       drotrv  a6, a7, t0");
+  COMPARE(drotrv(v0, v1, fp), "03c31056       drotrv  v0, v1, fp");
 
   COMPARE(break_(0),
           "0000000d       break, code: 0x00000 (0)");
diff --git a/test/cctest/test-disasm-x64.cc b/test/cctest/test-disasm-x64.cc
index 3722c1f..b855626 100644
--- a/test/cctest/test-disasm-x64.cc
+++ b/test/cctest/test-disasm-x64.cc
@@ -29,10 +29,10 @@
 
 #include "src/v8.h"
 
+#include "src/code-factory.h"
 #include "src/debug/debug.h"
 #include "src/disasm.h"
 #include "src/disassembler.h"
-#include "src/ic/ic.h"
 #include "src/macro-assembler.h"
 #include "test/cctest/cctest.h"
 
@@ -282,7 +282,7 @@
   // TODO(mstarzinger): The following is protected.
   // __ call(Operand(rbx, rcx, times_4, 10000));
   __ nop();
-  Handle<Code> ic(LoadIC::initialize_stub(isolate, NOT_INSIDE_TYPEOF));
+  Handle<Code> ic(CodeFactory::LoadIC(isolate, NOT_INSIDE_TYPEOF).code());
   __ call(ic, RelocInfo::CODE_TARGET);
   __ nop();
   __ nop();
diff --git a/test/cctest/test-disasm-x87.cc b/test/cctest/test-disasm-x87.cc
index 697a9d3..9a4c6d4 100644
--- a/test/cctest/test-disasm-x87.cc
+++ b/test/cctest/test-disasm-x87.cc
@@ -29,10 +29,10 @@
 
 #include "src/v8.h"
 
+#include "src/code-factory.h"
 #include "src/debug/debug.h"
 #include "src/disasm.h"
 #include "src/disassembler.h"
-#include "src/ic/ic.h"
 #include "src/macro-assembler.h"
 #include "src/x87/frames-x87.h"
 #include "test/cctest/cctest.h"
@@ -290,7 +290,7 @@
   __ bind(&L2);
   __ call(Operand(ebx, ecx, times_4, 10000));
   __ nop();
-  Handle<Code> ic(LoadIC::initialize_stub(isolate, NOT_INSIDE_TYPEOF));
+  Handle<Code> ic(CodeFactory::LoadIC(isolate, NOT_INSIDE_TYPEOF).code());
   __ call(ic, RelocInfo::CODE_TARGET);
   __ nop();
   __ call(FUNCTION_ADDR(DummyStaticFunction), RelocInfo::RUNTIME_ENTRY);
diff --git a/test/cctest/test-field-type-tracking.cc b/test/cctest/test-field-type-tracking.cc
index 7b262db..9709f87 100644
--- a/test/cctest/test-field-type-tracking.cc
+++ b/test/cctest/test-field-type-tracking.cc
@@ -86,6 +86,7 @@
 class Expectations {
   static const int MAX_PROPERTIES = 10;
   Isolate* isolate_;
+  ElementsKind elements_kind_;
   PropertyType types_[MAX_PROPERTIES];
   PropertyAttributes attributes_[MAX_PROPERTIES];
   Representation representations_[MAX_PROPERTIES];
@@ -97,8 +98,15 @@
   int number_of_properties_;
 
  public:
+  explicit Expectations(Isolate* isolate, ElementsKind elements_kind)
+      : isolate_(isolate),
+        elements_kind_(elements_kind),
+        number_of_properties_(0) {}
+
   explicit Expectations(Isolate* isolate)
-      : isolate_(isolate), number_of_properties_(0) {}
+      : Expectations(
+            isolate,
+            isolate->object_function()->initial_map()->elements_kind()) {}
 
   void Init(int index, PropertyType type, PropertyAttributes attributes,
             Representation representation, Handle<Object> value) {
@@ -143,6 +151,10 @@
     os << "\n";
   }
 
+  void SetElementsKind(ElementsKind elements_kind) {
+    elements_kind_ = elements_kind;
+  }
+
   Handle<FieldType> GetFieldType(int index) {
     CHECK(index < MAX_PROPERTIES);
     CHECK(types_[index] == DATA || types_[index] == ACCESSOR);
@@ -252,6 +264,7 @@
   }
 
   bool Check(Map* map, int expected_nof) const {
+    CHECK_EQ(elements_kind_, map->elements_kind());
     CHECK(number_of_properties_ <= MAX_PROPERTIES);
     CHECK_EQ(expected_nof, map->NumberOfOwnDescriptors());
     CHECK(!map->is_dictionary_map());
@@ -279,6 +292,13 @@
   // given |map|.
   //
 
+  Handle<Map> AsElementsKind(Handle<Map> map, ElementsKind elements_kind) {
+    elements_kind_ = elements_kind;
+    map = Map::AsElementsKind(map, elements_kind);
+    CHECK_EQ(elements_kind_, map->elements_kind());
+    return map;
+  }
+
   Handle<Map> AddDataField(Handle<Map> map, PropertyAttributes attributes,
                            Representation representation,
                            Handle<FieldType> heap_type) {
@@ -401,15 +421,8 @@
 
     int descriptor =
         map->instance_descriptors()->SearchWithCache(isolate, *name, *map);
-    map = Map::TransitionToAccessorProperty(
-        map, name, descriptor, ACCESSOR_GETTER, getter, attributes);
-    CHECK(!map->is_deprecated());
-    CHECK(!map->is_dictionary_map());
-
-    descriptor =
-        map->instance_descriptors()->SearchWithCache(isolate, *name, *map);
-    map = Map::TransitionToAccessorProperty(
-        map, name, descriptor, ACCESSOR_SETTER, setter, attributes);
+    map = Map::TransitionToAccessorProperty(isolate, map, name, descriptor,
+                                            getter, setter, attributes);
     CHECK(!map->is_deprecated());
     CHECK(!map->is_dictionary_map());
     return map;
@@ -589,7 +602,7 @@
 
   // Create new maps by generalizing representation of propX field.
   Handle<Map> field_owner(map->FindFieldOwner(property_index), isolate);
-  CompilationInfo info("testing", isolate, &zone);
+  CompilationInfo info(ArrayVector("testing"), isolate, &zone);
   CHECK(!info.dependencies()->HasAborted());
 
   info.dependencies()->AssumeFieldType(field_owner);
@@ -968,7 +981,7 @@
 
   Zone zone(isolate->allocator());
   Handle<Map> field_owner(map->FindFieldOwner(kSplitProp), isolate);
-  CompilationInfo info("testing", isolate, &zone);
+  CompilationInfo info(ArrayVector("testing"), isolate, &zone);
   CHECK(!info.dependencies()->HasAborted());
   info.dependencies()->AssumeFieldType(field_owner);
 
@@ -1053,7 +1066,7 @@
 
   Zone zone(isolate->allocator());
   Handle<Map> field_owner(map->FindFieldOwner(kSplitProp), isolate);
-  CompilationInfo info("testing", isolate, &zone);
+  CompilationInfo info(ArrayVector("testing"), isolate, &zone);
   CHECK(!info.dependencies()->HasAborted());
   info.dependencies()->AssumeFieldType(field_owner);
 
@@ -1529,6 +1542,271 @@
 
 
 ////////////////////////////////////////////////////////////////////////////////
+// A set of tests for elements kind reconfiguration case.
+//
+
+// This test ensures that representation/field type generalization is correctly
+// propagated from one branch of transition tree (|map2) to another (|map|).
+//
+//   + - p0 - p1 - p2A - p3 - p4: |map|
+//   |
+//  ek
+//   |
+//  {} - p0 - p1 - p2B - p3 - p4: |map2|
+//
+// where "p2A" and "p2B" differ only in the representation/field type.
+//
+static void TestReconfigureElementsKind_GeneralizeRepresentation(
+    Representation from_representation, Handle<FieldType> from_type,
+    Representation to_representation, Handle<FieldType> to_type,
+    Representation expected_representation, Handle<FieldType> expected_type) {
+  Isolate* isolate = CcTest::i_isolate();
+
+  Expectations expectations(isolate, FAST_SMI_ELEMENTS);
+
+  // Create a map, add required properties to it and initialize expectations.
+  Handle<Map> initial_map = Map::Create(isolate, 0);
+  initial_map->set_elements_kind(FAST_SMI_ELEMENTS);
+
+  Handle<Map> map = initial_map;
+  map = expectations.AsElementsKind(map, FAST_ELEMENTS);
+  for (int i = 0; i < kPropCount; i++) {
+    map = expectations.AddDataField(map, NONE, from_representation, from_type);
+  }
+  CHECK(!map->is_deprecated());
+  CHECK(map->is_stable());
+  CHECK(expectations.Check(*map));
+
+  // Create another branch in transition tree (property at index |kDiffProp|
+  // has different representatio/field type), initialize expectations.
+  const int kDiffProp = kPropCount / 2;
+  Expectations expectations2(isolate, FAST_SMI_ELEMENTS);
+
+  Handle<Map> map2 = initial_map;
+  for (int i = 0; i < kPropCount; i++) {
+    if (i == kDiffProp) {
+      map2 = expectations2.AddDataField(map2, NONE, to_representation, to_type);
+    } else {
+      map2 = expectations2.AddDataField(map2, NONE, from_representation,
+                                        from_type);
+    }
+  }
+  CHECK(!map2->is_deprecated());
+  CHECK(map2->is_stable());
+  CHECK(expectations2.Check(*map2));
+
+  Zone zone(isolate->allocator());
+  Handle<Map> field_owner(map->FindFieldOwner(kDiffProp), isolate);
+  CompilationInfo info(ArrayVector("testing"), isolate, &zone);
+  CHECK(!info.dependencies()->HasAborted());
+  info.dependencies()->AssumeFieldType(field_owner);
+
+  // Reconfigure elements kinds of |map2|, which should generalize
+  // representations in |map|.
+  Handle<Map> new_map = Map::ReconfigureElementsKind(map2, FAST_ELEMENTS);
+
+  // |map2| should be left unchanged but marked unstable.
+  CHECK(!map2->is_stable());
+  CHECK(!map2->is_deprecated());
+  CHECK_NE(*map2, *new_map);
+  CHECK(expectations2.Check(*map2));
+
+  // |map| should be deprecated and |new_map| should match new expectations.
+  expectations.SetDataField(kDiffProp, expected_representation, expected_type);
+
+  CHECK(map->is_deprecated());
+  CHECK(!info.dependencies()->HasAborted());
+  info.dependencies()->Rollback();  // Properly cleanup compilation info.
+  CHECK_NE(*map, *new_map);
+
+  CHECK(!new_map->is_deprecated());
+  CHECK(expectations.Check(*new_map));
+
+  // Update deprecated |map|, it should become |new_map|.
+  Handle<Map> updated_map = Map::Update(map);
+  CHECK_EQ(*new_map, *updated_map);
+
+  // Ensure Map::FindElementsKindTransitionedMap() is able to find the
+  // transitioned map.
+  {
+    MapHandleList map_list;
+    map_list.Add(updated_map);
+    Map* transitioned_map = map2->FindElementsKindTransitionedMap(&map_list);
+    CHECK_EQ(*updated_map, transitioned_map);
+  }
+}
+
+// This test ensures that trivial representation/field type generalization
+// (from HeapObject to HeapObject) is correctly propagated from one branch of
+// transition tree (|map2|) to another (|map|).
+//
+//   + - p0 - p1 - p2A - p3 - p4: |map|
+//   |
+//  ek
+//   |
+//  {} - p0 - p1 - p2B - p3 - p4: |map2|
+//
+// where "p2A" and "p2B" differ only in the representation/field type.
+//
+static void TestReconfigureElementsKind_GeneralizeRepresentationTrivial(
+    Representation from_representation, Handle<FieldType> from_type,
+    Representation to_representation, Handle<FieldType> to_type,
+    Representation expected_representation, Handle<FieldType> expected_type,
+    bool expected_field_type_dependency = true) {
+  Isolate* isolate = CcTest::i_isolate();
+
+  Expectations expectations(isolate, FAST_SMI_ELEMENTS);
+
+  // Create a map, add required properties to it and initialize expectations.
+  Handle<Map> initial_map = Map::Create(isolate, 0);
+  initial_map->set_elements_kind(FAST_SMI_ELEMENTS);
+
+  Handle<Map> map = initial_map;
+  map = expectations.AsElementsKind(map, FAST_ELEMENTS);
+  for (int i = 0; i < kPropCount; i++) {
+    map = expectations.AddDataField(map, NONE, from_representation, from_type);
+  }
+  CHECK(!map->is_deprecated());
+  CHECK(map->is_stable());
+  CHECK(expectations.Check(*map));
+
+  // Create another branch in transition tree (property at index |kDiffProp|
+  // has different attributes), initialize expectations.
+  const int kDiffProp = kPropCount / 2;
+  Expectations expectations2(isolate, FAST_SMI_ELEMENTS);
+
+  Handle<Map> map2 = initial_map;
+  for (int i = 0; i < kPropCount; i++) {
+    if (i == kDiffProp) {
+      map2 = expectations2.AddDataField(map2, NONE, to_representation, to_type);
+    } else {
+      map2 = expectations2.AddDataField(map2, NONE, from_representation,
+                                        from_type);
+    }
+  }
+  CHECK(!map2->is_deprecated());
+  CHECK(map2->is_stable());
+  CHECK(expectations2.Check(*map2));
+
+  Zone zone(isolate->allocator());
+  Handle<Map> field_owner(map->FindFieldOwner(kDiffProp), isolate);
+  CompilationInfo info(ArrayVector("testing"), isolate, &zone);
+  CHECK(!info.dependencies()->HasAborted());
+  info.dependencies()->AssumeFieldType(field_owner);
+
+  // Reconfigure elements kinds of |map2|, which should generalize
+  // representations in |map|.
+  Handle<Map> new_map = Map::ReconfigureElementsKind(map2, FAST_ELEMENTS);
+
+  // |map2| should be left unchanged but marked unstable.
+  CHECK(!map2->is_stable());
+  CHECK(!map2->is_deprecated());
+  CHECK_NE(*map2, *new_map);
+  CHECK(expectations2.Check(*map2));
+
+  // In trivial case |map| should be returned as a result of the elements
+  // kind reconfiguration, respective field types should be generalized and
+  // respective code dependencies should be invalidated. |map| should be NOT
+  // deprecated and it should match new expectations.
+  expectations.SetDataField(kDiffProp, expected_representation, expected_type);
+  CHECK(!map->is_deprecated());
+  CHECK_EQ(*map, *new_map);
+  CHECK_EQ(expected_field_type_dependency, info.dependencies()->HasAborted());
+  info.dependencies()->Rollback();  // Properly cleanup compilation info.
+
+  CHECK(!new_map->is_deprecated());
+  CHECK(expectations.Check(*new_map));
+
+  Handle<Map> updated_map = Map::Update(map);
+  CHECK_EQ(*new_map, *updated_map);
+
+  // Ensure Map::FindElementsKindTransitionedMap() is able to find the
+  // transitioned map.
+  {
+    MapHandleList map_list;
+    map_list.Add(updated_map);
+    Map* transitioned_map = map2->FindElementsKindTransitionedMap(&map_list);
+    CHECK_EQ(*updated_map, transitioned_map);
+  }
+}
+
+TEST(ReconfigureElementsKind_GeneralizeRepresentationSmiToDouble) {
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  Isolate* isolate = CcTest::i_isolate();
+  Handle<FieldType> any_type = FieldType::Any(isolate);
+
+  TestReconfigureElementsKind_GeneralizeRepresentation(
+      Representation::Smi(), any_type, Representation::Double(), any_type,
+      Representation::Double(), any_type);
+}
+
+TEST(ReconfigureElementsKind_GeneralizeRepresentationSmiToTagged) {
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  Isolate* isolate = CcTest::i_isolate();
+  Handle<FieldType> any_type = FieldType::Any(isolate);
+  Handle<FieldType> value_type =
+      FieldType::Class(Map::Create(isolate, 0), isolate);
+
+  TestReconfigureElementsKind_GeneralizeRepresentation(
+      Representation::Smi(), any_type, Representation::HeapObject(), value_type,
+      Representation::Tagged(), any_type);
+}
+
+TEST(ReconfigureElementsKind_GeneralizeRepresentationDoubleToTagged) {
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  Isolate* isolate = CcTest::i_isolate();
+  Handle<FieldType> any_type = FieldType::Any(isolate);
+  Handle<FieldType> value_type =
+      FieldType::Class(Map::Create(isolate, 0), isolate);
+
+  TestReconfigureElementsKind_GeneralizeRepresentation(
+      Representation::Double(), any_type, Representation::HeapObject(),
+      value_type, Representation::Tagged(), any_type);
+}
+
+TEST(ReconfigureElementsKind_GeneralizeRepresentationHeapObjToHeapObj) {
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  Isolate* isolate = CcTest::i_isolate();
+  Handle<FieldType> any_type = FieldType::Any(isolate);
+
+  Handle<FieldType> current_type =
+      FieldType::Class(Map::Create(isolate, 0), isolate);
+
+  Handle<FieldType> new_type =
+      FieldType::Class(Map::Create(isolate, 0), isolate);
+
+  Handle<FieldType> expected_type = any_type;
+
+  TestReconfigureElementsKind_GeneralizeRepresentationTrivial(
+      Representation::HeapObject(), current_type, Representation::HeapObject(),
+      new_type, Representation::HeapObject(), expected_type);
+  current_type = expected_type;
+
+  new_type = FieldType::Class(Map::Create(isolate, 0), isolate);
+
+  TestReconfigureElementsKind_GeneralizeRepresentationTrivial(
+      Representation::HeapObject(), any_type, Representation::HeapObject(),
+      new_type, Representation::HeapObject(), any_type, false);
+}
+
+TEST(ReconfigureElementsKind_GeneralizeRepresentationHeapObjectToTagged) {
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  Isolate* isolate = CcTest::i_isolate();
+  Handle<FieldType> any_type = FieldType::Any(isolate);
+  Handle<FieldType> value_type =
+      FieldType::Class(Map::Create(isolate, 0), isolate);
+
+  TestReconfigureElementsKind_GeneralizeRepresentation(
+      Representation::HeapObject(), value_type, Representation::Smi(), any_type,
+      Representation::Tagged(), any_type);
+}
+
+////////////////////////////////////////////////////////////////////////////////
 // A set of tests checking split map deprecation.
 //
 
@@ -1644,15 +1922,16 @@
   CHECK(map->is_stable());
   CHECK(expectations.Check(*map));
 
+  Expectations expectations2 = expectations;
+
   // Apply some special transition to |map|.
   CHECK(map->owns_descriptors());
-  Handle<Map> map2 = config.Transition(map);
+  Handle<Map> map2 = config.Transition(map, expectations2);
 
   // |map| should still match expectations.
   CHECK(!map->is_deprecated());
   CHECK(expectations.Check(*map));
 
-  Expectations expectations2 = expectations;
   if (config.generalizes_representations()) {
     for (int i = 0; i < kPropCount; i++) {
       expectations2.GeneralizeRepresentation(i);
@@ -1724,13 +2003,15 @@
       FieldType::Class(Map::Create(isolate, 0), isolate);
 
   struct TestConfig {
-    Handle<Map> Transition(Handle<Map> map) {
-      return Map::CopyAsElementsKind(map, DICTIONARY_ELEMENTS,
-                                     INSERT_TRANSITION);
+    Handle<Map> Transition(Handle<Map> map, Expectations& expectations) {
+      Handle<Symbol> frozen_symbol(map->GetHeap()->frozen_symbol());
+      expectations.SetElementsKind(DICTIONARY_ELEMENTS);
+      return Map::CopyForPreventExtensions(map, NONE, frozen_symbol,
+                                           "CopyForPreventExtensions");
     }
     // TODO(ishell): remove once IS_PROTO_TRANS_ISSUE_FIXED is removed.
     bool generalizes_representations() const { return false; }
-    bool is_non_equevalent_transition() const { return false; }
+    bool is_non_equevalent_transition() const { return true; }
   };
   TestConfig config;
   TestGeneralizeRepresentationWithSpecialTransition(
@@ -1748,7 +2029,7 @@
       FieldType::Class(Map::Create(isolate, 0), isolate);
 
   struct TestConfig {
-    Handle<Map> Transition(Handle<Map> map) {
+    Handle<Map> Transition(Handle<Map> map, Expectations& expectations) {
       Isolate* isolate = CcTest::i_isolate();
       Handle<FieldType> any_type = FieldType::Any(isolate);
 
@@ -1760,65 +2041,10 @@
           .ToHandleChecked();
       CHECK(!map->owns_descriptors());
 
-      return Map::CopyAsElementsKind(map, DICTIONARY_ELEMENTS,
-                                     INSERT_TRANSITION);
-    }
-    // TODO(ishell): remove once IS_PROTO_TRANS_ISSUE_FIXED is removed.
-    bool generalizes_representations() const { return false; }
-    bool is_non_equevalent_transition() const { return false; }
-  };
-  TestConfig config;
-  TestGeneralizeRepresentationWithSpecialTransition(
-      config, Representation::Smi(), any_type, Representation::HeapObject(),
-      value_type, Representation::Tagged(), any_type);
-}
-
-
-TEST(ForObservedTransitionFromMapOwningDescriptor) {
-  CcTest::InitializeVM();
-  v8::HandleScope scope(CcTest::isolate());
-  Isolate* isolate = CcTest::i_isolate();
-  Handle<FieldType> any_type = FieldType::Any(isolate);
-  Handle<FieldType> value_type =
-      FieldType::Class(Map::Create(isolate, 0), isolate);
-
-  struct TestConfig {
-    Handle<Map> Transition(Handle<Map> map) {
-      return Map::CopyForObserved(map);
-    }
-    // TODO(ishell): remove once IS_PROTO_TRANS_ISSUE_FIXED is removed.
-    bool generalizes_representations() const { return false; }
-    bool is_non_equevalent_transition() const { return true; }
-  };
-  TestConfig config;
-  TestGeneralizeRepresentationWithSpecialTransition(
-      config, Representation::Smi(), any_type, Representation::HeapObject(),
-      value_type, Representation::Tagged(), any_type);
-}
-
-
-TEST(ForObservedTransitionFromMapNotOwningDescriptor) {
-  CcTest::InitializeVM();
-  v8::HandleScope scope(CcTest::isolate());
-  Isolate* isolate = CcTest::i_isolate();
-  Handle<FieldType> any_type = FieldType::Any(isolate);
-  Handle<FieldType> value_type =
-      FieldType::Class(Map::Create(isolate, 0), isolate);
-
-  struct TestConfig {
-    Handle<Map> Transition(Handle<Map> map) {
-      Isolate* isolate = CcTest::i_isolate();
-      Handle<FieldType> any_type = FieldType::Any(isolate);
-
-      // Add one more transition to |map| in order to prevent descriptors
-      // ownership.
-      CHECK(map->owns_descriptors());
-      Map::CopyWithField(map, MakeString("foo"), any_type, NONE,
-                         Representation::Smi(), INSERT_TRANSITION)
-          .ToHandleChecked();
-      CHECK(!map->owns_descriptors());
-
-      return Map::CopyForObserved(map);
+      Handle<Symbol> frozen_symbol(map->GetHeap()->frozen_symbol());
+      expectations.SetElementsKind(DICTIONARY_ELEMENTS);
+      return Map::CopyForPreventExtensions(map, NONE, frozen_symbol,
+                                           "CopyForPreventExtensions");
     }
     // TODO(ishell): remove once IS_PROTO_TRANS_ISSUE_FIXED is removed.
     bool generalizes_representations() const { return false; }
@@ -1849,7 +2075,7 @@
       prototype_ = factory->NewJSObjectFromMap(Map::Create(isolate, 0));
     }
 
-    Handle<Map> Transition(Handle<Map> map) {
+    Handle<Map> Transition(Handle<Map> map, Expectations& expectations) {
       return Map::TransitionToPrototype(map, prototype_, REGULAR_PROTOTYPE);
     }
     // TODO(ishell): remove once IS_PROTO_TRANS_ISSUE_FIXED is removed.
@@ -1883,7 +2109,7 @@
       prototype_ = factory->NewJSObjectFromMap(Map::Create(isolate, 0));
     }
 
-    Handle<Map> Transition(Handle<Map> map) {
+    Handle<Map> Transition(Handle<Map> map, Expectations& expectations) {
       Isolate* isolate = CcTest::i_isolate();
       Handle<FieldType> any_type = FieldType::Any(isolate);
 
diff --git a/test/cctest/test-global-handles.cc b/test/cctest/test-global-handles.cc
index 22fd785..06e7466 100644
--- a/test/cctest/test-global-handles.cc
+++ b/test/cctest/test-global-handles.cc
@@ -417,3 +417,55 @@
   // Should not crash.
   g.SetWeak<void>(nullptr, &WeakCallback, v8::WeakCallbackType::kParameter);
 }
+
+void finalizer(const v8::WeakCallbackInfo<v8::Global<v8::Object>>& data) {
+  data.GetParameter()->ClearWeak();
+  v8::Local<v8::Object> o =
+      v8::Local<v8::Object>::New(data.GetIsolate(), *data.GetParameter());
+  o->Set(data.GetIsolate()->GetCurrentContext(), v8_str("finalizer"),
+         v8_str("was here"))
+      .FromJust();
+}
+
+TEST(FinalizerWeakness) {
+  CcTest::InitializeVM();
+  v8::Isolate* isolate = CcTest::isolate();
+
+  v8::Global<v8::Object> g;
+  int identity;
+
+  {
+    v8::HandleScope scope(isolate);
+    v8::Local<v8::Object> o = v8::Object::New(isolate);
+    identity = o->GetIdentityHash();
+    g.Reset(isolate, o);
+    g.SetWeak(&g, finalizer, v8::WeakCallbackType::kFinalizer);
+  }
+
+  CcTest::i_isolate()->heap()->CollectAllAvailableGarbage();
+
+  CHECK(!g.IsEmpty());
+  v8::HandleScope scope(isolate);
+  v8::Local<v8::Object> o = v8::Local<v8::Object>::New(isolate, g);
+  CHECK_EQ(identity, o->GetIdentityHash());
+  CHECK(o->Has(isolate->GetCurrentContext(), v8_str("finalizer")).FromJust());
+}
+
+TEST(PhatomHandlesWithoutCallbacks) {
+  CcTest::InitializeVM();
+  v8::Isolate* isolate = CcTest::isolate();
+
+  v8::Global<v8::Object> g1, g2;
+  {
+    v8::HandleScope scope(isolate);
+    g1.Reset(isolate, v8::Object::New(isolate));
+    g1.SetWeak();
+    g2.Reset(isolate, v8::Object::New(isolate));
+    g2.SetWeak();
+  }
+
+  CHECK_EQ(0, isolate->NumberOfPhantomHandleResetsSinceLastCall());
+  CcTest::i_isolate()->heap()->CollectAllAvailableGarbage();
+  CHECK_EQ(2, isolate->NumberOfPhantomHandleResetsSinceLastCall());
+  CHECK_EQ(0, isolate->NumberOfPhantomHandleResetsSinceLastCall());
+}
diff --git a/test/cctest/test-heap-profiler.cc b/test/cctest/test-heap-profiler.cc
index dfe5911..767c5cd 100644
--- a/test/cctest/test-heap-profiler.cc
+++ b/test/cctest/test-heap-profiler.cc
@@ -44,6 +44,7 @@
 using i::AllocationTraceTree;
 using i::AllocationTracker;
 using i::HashMap;
+using i::ArrayVector;
 using i::Vector;
 
 namespace {
@@ -2513,8 +2514,7 @@
   // Print for better diagnostics in case of failure.
   tracker->trace_tree()->Print(tracker);
 
-  AllocationTraceNode* node =
-      FindNode(tracker, Vector<const char*>(names, arraysize(names)));
+  AllocationTraceNode* node = FindNode(tracker, ArrayVector(names));
   CHECK(node);
   CHECK_GE(node->allocation_count(), 2u);
   CHECK_GE(node->allocation_size(), 4u * 5u);
@@ -2540,8 +2540,7 @@
   tracker->trace_tree()->Print(tracker);
 
   const char* names[] = {"", "start", "f_0_0", "f_0_1", "f_0_2"};
-  AllocationTraceNode* node =
-      FindNode(tracker, Vector<const char*>(names, arraysize(names)));
+  AllocationTraceNode* node = FindNode(tracker, ArrayVector(names));
   CHECK(node);
   CHECK_GE(node->allocation_count(), 100u);
   CHECK_GE(node->allocation_size(), 4 * node->allocation_count());
@@ -2590,8 +2589,7 @@
     // Print for better diagnostics in case of failure.
     tracker->trace_tree()->Print(tracker);
 
-    AllocationTraceNode* node =
-        FindNode(tracker, Vector<const char*>(names, arraysize(names)));
+    AllocationTraceNode* node = FindNode(tracker, ArrayVector(names));
     CHECK(node);
     CHECK_GE(node->allocation_count(), 100u);
     CHECK_GE(node->allocation_size(), 4 * node->allocation_count());
@@ -2616,8 +2614,7 @@
     // Print for better diagnostics in case of failure.
     tracker->trace_tree()->Print(tracker);
 
-    AllocationTraceNode* node =
-        FindNode(tracker, Vector<const char*>(names, arraysize(names)));
+    AllocationTraceNode* node = FindNode(tracker, ArrayVector(names));
     CHECK(node);
     CHECK_LT(node->allocation_count(), 100u);
 
@@ -2646,8 +2643,7 @@
   // Print for better diagnostics in case of failure.
   tracker->trace_tree()->Print(tracker);
 
-  AllocationTraceNode* node =
-      FindNode(tracker, Vector<const char*>(names, arraysize(names)));
+  AllocationTraceNode* node = FindNode(tracker, ArrayVector(names));
   CHECK(node);
   CHECK_GE(node->allocation_count(), 2u);
   CHECK_GE(node->allocation_size(), 4 * node->allocation_count());
@@ -2875,6 +2871,15 @@
   return node;
 }
 
+static void CheckNoZeroCountNodes(v8::AllocationProfile::Node* node) {
+  for (auto alloc : node->allocations) {
+    CHECK_GT(alloc.count, 0u);
+  }
+  for (auto child : node->children) {
+    CheckNoZeroCountNodes(child);
+  }
+}
+
 TEST(SamplingHeapProfiler) {
   v8::HandleScope scope(v8::Isolate::GetCurrent());
   LocalContext env;
@@ -2913,8 +2918,7 @@
     CHECK(!profile.is_empty());
 
     const char* names[] = {"", "foo", "bar"};
-    auto node_bar = FindAllocationProfileNode(
-        *profile, Vector<const char*>(names, arraysize(names)));
+    auto node_bar = FindAllocationProfileNode(*profile, ArrayVector(names));
     CHECK(node_bar);
 
     // Count the number of allocations we sampled from bar.
@@ -2941,8 +2945,7 @@
     CHECK(!profile.is_empty());
 
     const char* names[] = {"", "foo", "bar"};
-    auto node_bar = FindAllocationProfileNode(
-        *profile, Vector<const char*>(names, arraysize(names)));
+    auto node_bar = FindAllocationProfileNode(*profile, ArrayVector(names));
     CHECK(node_bar);
 
     // Count the number of allocations we sampled from bar.
@@ -2976,13 +2979,11 @@
     CHECK(!profile.is_empty());
 
     const char* names1[] = {"", "start", "f_0_0", "f_0_1", "f_0_2"};
-    auto node1 = FindAllocationProfileNode(
-        *profile, Vector<const char*>(names1, arraysize(names1)));
+    auto node1 = FindAllocationProfileNode(*profile, ArrayVector(names1));
     CHECK(node1);
 
     const char* names2[] = {"", "generateFunctions"};
-    auto node2 = FindAllocationProfileNode(
-        *profile, Vector<const char*>(names2, arraysize(names2)));
+    auto node2 = FindAllocationProfileNode(*profile, ArrayVector(names2));
     CHECK(node2);
 
     heap_profiler->StopSamplingHeapProfiler();
@@ -3002,6 +3003,8 @@
         heap_profiler->GetAllocationProfile());
     CHECK(!profile.is_empty());
 
+    CheckNoZeroCountNodes(profile->GetRootNode());
+
     heap_profiler->StopSamplingHeapProfiler();
   }
 }
@@ -3023,8 +3026,7 @@
       heap_profiler->GetAllocationProfile());
   CHECK(!profile.is_empty());
   const char* names[] = {"(V8 API)"};
-  auto node = FindAllocationProfileNode(
-      *profile, Vector<const char*>(names, arraysize(names)));
+  auto node = FindAllocationProfileNode(*profile, ArrayVector(names));
   CHECK(node);
 
   heap_profiler->StopSamplingHeapProfiler();
diff --git a/test/cctest/test-log-stack-tracer.cc b/test/cctest/test-log-stack-tracer.cc
index 05d7103..e38d74e 100644
--- a/test/cctest/test-log-stack-tracer.cc
+++ b/test/cctest/test-log-stack-tracer.cc
@@ -36,7 +36,7 @@
 #include "src/disassembler.h"
 #include "src/isolate.h"
 #include "src/log.h"
-#include "src/profiler/sampler.h"
+#include "src/profiler/tick-sample.h"
 #include "src/vm-state-inl.h"
 #include "test/cctest/cctest.h"
 #include "test/cctest/trace-extension.h"
diff --git a/test/cctest/test-log.cc b/test/cctest/test-log.cc
index 9c7e63b..c3856f2 100644
--- a/test/cctest/test-log.cc
+++ b/test/cctest/test-log.cc
@@ -375,9 +375,8 @@
     ObjMethod1_entry = *FUNCTION_ENTRYPOINT_ADDRESS(ObjMethod1_entry);
 #endif
     i::EmbeddedVector<char, 100> ref_data;
-    i::SNPrintF(ref_data,
-                "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"method1\"",
-                reinterpret_cast<intptr_t>(ObjMethod1_entry));
+    i::SNPrintF(ref_data, "code-creation,Callback,-2,%p,1,\"method1\"",
+                ObjMethod1_entry);
 
     CHECK(StrNStr(log.start(), ref_data.start(), log.length()));
     log.Dispose();
@@ -429,8 +428,8 @@
 #endif
     EmbeddedVector<char, 100> prop1_getter_record;
     i::SNPrintF(prop1_getter_record,
-                "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"get prop1\"",
-                reinterpret_cast<intptr_t>(Prop1Getter_entry));
+                "code-creation,Callback,-2,%p,1,\"get prop1\"",
+                Prop1Getter_entry);
     CHECK(StrNStr(log.start(), prop1_getter_record.start(), log.length()));
 
     Address Prop1Setter_entry = reinterpret_cast<Address>(Prop1Setter);
@@ -439,8 +438,8 @@
 #endif
     EmbeddedVector<char, 100> prop1_setter_record;
     i::SNPrintF(prop1_setter_record,
-                "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"set prop1\"",
-                reinterpret_cast<intptr_t>(Prop1Setter_entry));
+                "code-creation,Callback,-2,%p,1,\"set prop1\"",
+                Prop1Setter_entry);
     CHECK(StrNStr(log.start(), prop1_setter_record.start(), log.length()));
 
     Address Prop2Getter_entry = reinterpret_cast<Address>(Prop2Getter);
@@ -449,8 +448,8 @@
 #endif
     EmbeddedVector<char, 100> prop2_getter_record;
     i::SNPrintF(prop2_getter_record,
-                "code-creation,Callback,-2,0x%" V8PRIxPTR ",1,\"get prop2\"",
-                reinterpret_cast<intptr_t>(Prop2Getter_entry));
+                "code-creation,Callback,-2,%p,1,\"get prop2\"",
+                Prop2Getter_entry);
     CHECK(StrNStr(log.start(), prop2_getter_record.start(), log.length()));
     log.Dispose();
   }
diff --git a/test/cctest/test-macro-assembler-mips.cc b/test/cctest/test-macro-assembler-mips.cc
index 91ee215..5408061 100644
--- a/test/cctest/test-macro-assembler-mips.cc
+++ b/test/cctest/test-macro-assembler-mips.cc
@@ -390,14 +390,14 @@
   }
 }
 
-static const std::vector<uint32_t> uint32_test_values() {
+static const std::vector<uint32_t> cvt_trunc_uint32_test_values() {
   static const uint32_t kValues[] = {0x00000000, 0x00000001, 0x00ffff00,
                                      0x7fffffff, 0x80000000, 0x80000001,
                                      0x80ffff00, 0x8fffffff, 0xffffffff};
   return std::vector<uint32_t>(&kValues[0], &kValues[arraysize(kValues)]);
 }
 
-static const std::vector<int32_t> int32_test_values() {
+static const std::vector<int32_t> cvt_trunc_int32_test_values() {
   static const int32_t kValues[] = {
       static_cast<int32_t>(0x00000000), static_cast<int32_t>(0x00000001),
       static_cast<int32_t>(0x00ffff00), static_cast<int32_t>(0x7fffffff),
@@ -408,13 +408,31 @@
 }
 
 // Helper macros that can be used in FOR_INT32_INPUTS(i) { ... *i ... }
-#define FOR_INPUTS(ctype, itype, var)                        \
-  std::vector<ctype> var##_vec = itype##_test_values();      \
+#define FOR_INPUTS(ctype, itype, var, test_vector)           \
+  std::vector<ctype> var##_vec = test_vector();              \
   for (std::vector<ctype>::iterator var = var##_vec.begin(); \
        var != var##_vec.end(); ++var)
 
-#define FOR_UINT32_INPUTS(var) FOR_INPUTS(uint32_t, uint32, var)
-#define FOR_INT32_INPUTS(var) FOR_INPUTS(int32_t, int32, var)
+#define FOR_INPUTS2(ctype, itype, var, var2, test_vector)  \
+  std::vector<ctype> var##_vec = test_vector();            \
+  std::vector<ctype>::iterator var;                        \
+  std::vector<ctype>::reverse_iterator var2;               \
+  for (var = var##_vec.begin(), var2 = var##_vec.rbegin(); \
+       var != var##_vec.end(); ++var, ++var2)
+
+#define FOR_ENUM_INPUTS(var, type, test_vector) \
+  FOR_INPUTS(enum type, type, var, test_vector)
+#define FOR_STRUCT_INPUTS(var, type, test_vector) \
+  FOR_INPUTS(struct type, type, var, test_vector)
+#define FOR_UINT32_INPUTS(var, test_vector) \
+  FOR_INPUTS(uint32_t, uint32, var, test_vector)
+#define FOR_INT32_INPUTS(var, test_vector) \
+  FOR_INPUTS(int32_t, int32, var, test_vector)
+#define FOR_INT32_INPUTS2(var, var2, test_vector) \
+  FOR_INPUTS2(int32_t, int32, var, var2, test_vector)
+
+#define FOR_UINT64_INPUTS(var, test_vector) \
+  FOR_INPUTS(uint64_t, uint32, var, test_vector)
 
 template <typename RET_TYPE, typename IN_TYPE, typename Func>
 RET_TYPE run_Cvt(IN_TYPE x, Func GenerateConvertInstructionFunc) {
@@ -445,7 +463,7 @@
 
 TEST(cvt_s_w_Trunc_uw_s) {
   CcTest::InitializeVM();
-  FOR_UINT32_INPUTS(i) {
+  FOR_UINT32_INPUTS(i, cvt_trunc_uint32_test_values) {
     uint32_t input = *i;
     CHECK_EQ(static_cast<float>(input),
              run_Cvt<uint32_t>(input, [](MacroAssembler* masm) {
@@ -457,7 +475,7 @@
 
 TEST(cvt_d_w_Trunc_w_d) {
   CcTest::InitializeVM();
-  FOR_INT32_INPUTS(i) {
+  FOR_INT32_INPUTS(i, cvt_trunc_int32_test_values) {
     int32_t input = *i;
     CHECK_EQ(static_cast<double>(input),
              run_Cvt<int32_t>(input, [](MacroAssembler* masm) {
@@ -467,6 +485,342 @@
   }
 }
 
+static const std::vector<int32_t> overflow_int32_test_values() {
+  static const int32_t kValues[] = {
+      static_cast<int32_t>(0xf0000000), static_cast<int32_t>(0x00000001),
+      static_cast<int32_t>(0xff000000), static_cast<int32_t>(0x0000f000),
+      static_cast<int32_t>(0x0f000000), static_cast<int32_t>(0x991234ab),
+      static_cast<int32_t>(0xb0ffff01), static_cast<int32_t>(0x00006fff),
+      static_cast<int32_t>(0xffffffff)};
+  return std::vector<int32_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+enum OverflowBranchType {
+  kAddBranchOverflow,
+  kSubBranchOverflow,
+};
+
+struct OverflowRegisterCombination {
+  Register dst;
+  Register left;
+  Register right;
+  Register scratch;
+};
+
+static const std::vector<enum OverflowBranchType> overflow_branch_type() {
+  static const enum OverflowBranchType kValues[] = {kAddBranchOverflow,
+                                                    kSubBranchOverflow};
+  return std::vector<enum OverflowBranchType>(&kValues[0],
+                                              &kValues[arraysize(kValues)]);
+}
+
+static const std::vector<struct OverflowRegisterCombination>
+overflow_register_combination() {
+  static const struct OverflowRegisterCombination kValues[] = {
+      {t0, t1, t2, t3}, {t0, t0, t2, t3}, {t0, t1, t0, t3}, {t0, t1, t1, t3}};
+  return std::vector<struct OverflowRegisterCombination>(
+      &kValues[0], &kValues[arraysize(kValues)]);
+}
+
+template <typename T>
+static bool IsAddOverflow(T x, T y) {
+  DCHECK(std::numeric_limits<T>::is_integer);
+  T max = std::numeric_limits<T>::max();
+  T min = std::numeric_limits<T>::min();
+
+  return (x > 0 && y > (max - x)) || (x < 0 && y < (min - x));
+}
+
+template <typename T>
+static bool IsSubOverflow(T x, T y) {
+  DCHECK(std::numeric_limits<T>::is_integer);
+  T max = std::numeric_limits<T>::max();
+  T min = std::numeric_limits<T>::min();
+
+  return (y > 0 && x < (min + y)) || (y < 0 && x > (max + y));
+}
+
+template <typename IN_TYPE, typename Func>
+static bool runOverflow(IN_TYPE valLeft, IN_TYPE valRight,
+                        Func GenerateOverflowInstructions) {
+  typedef int32_t (*F_CVT)(char* x0, int x1, int x2, int x3, int x4);
+
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+  MacroAssembler assm(isolate, nullptr, 0,
+                      v8::internal::CodeObjectRequired::kYes);
+  MacroAssembler* masm = &assm;
+
+  GenerateOverflowInstructions(masm, valLeft, valRight);
+  __ jr(ra);
+  __ nop();
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+
+  F_CVT f = FUNCTION_CAST<F_CVT>(code->entry());
+
+  int32_t r =
+      reinterpret_cast<int32_t>(CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0));
+
+  DCHECK(r == 0 || r == 1);
+  return r;
+}
+
+TEST(BranchOverflowInt32BothLabels) {
+  FOR_INT32_INPUTS(i, overflow_int32_test_values) {
+    FOR_INT32_INPUTS(j, overflow_int32_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int32_t ii = *i;
+          int32_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label overflow, no_overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, rc.right, &overflow,
+                                    &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, rc.right, &overflow,
+                                    &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 2);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label overflow, no_overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                    &overflow, &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                    &overflow, &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 2);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
+TEST(BranchOverflowInt32LeftLabel) {
+  FOR_INT32_INPUTS(i, overflow_int32_test_values) {
+    FOR_INT32_INPUTS(j, overflow_int32_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int32_t ii = *i;
+          int32_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, rc.right, &overflow, NULL,
+                                    rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, rc.right, &overflow, NULL,
+                                    rc.scratch);
+                    break;
+                }
+                __ li(v0, 0);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                    &overflow, NULL, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                    &overflow, NULL, rc.scratch);
+                    break;
+                }
+                __ li(v0, 0);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
+TEST(BranchOverflowInt32RightLabel) {
+  FOR_INT32_INPUTS(i, overflow_int32_test_values) {
+    FOR_INT32_INPUTS(j, overflow_int32_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int32_t ii = *i;
+          int32_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label no_overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, rc.right, NULL,
+                                    &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, rc.right, NULL,
+                                    &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label no_overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, Operand(valRight), NULL,
+                                    &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, Operand(valRight), NULL,
+                                    &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
 TEST(min_max_nan) {
   CcTest::InitializeVM();
   Isolate* isolate = CcTest::i_isolate();
@@ -577,4 +931,241 @@
   }
 }
 
+template <typename IN_TYPE, typename Func>
+bool run_Unaligned(char* memory_buffer, int32_t in_offset, int32_t out_offset,
+                   IN_TYPE value, Func GenerateUnalignedInstructionFunc) {
+  typedef int32_t (*F_CVT)(char* x0, int x1, int x2, int x3, int x4);
+
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+  MacroAssembler assm(isolate, nullptr, 0,
+                      v8::internal::CodeObjectRequired::kYes);
+  MacroAssembler* masm = &assm;
+  IN_TYPE res;
+
+  GenerateUnalignedInstructionFunc(masm, in_offset, out_offset);
+  __ jr(ra);
+  __ nop();
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+
+  F_CVT f = FUNCTION_CAST<F_CVT>(code->entry());
+
+  MemCopy(memory_buffer + in_offset, &value, sizeof(IN_TYPE));
+  CALL_GENERATED_CODE(isolate, f, memory_buffer, 0, 0, 0, 0);
+  MemCopy(&res, memory_buffer + out_offset, sizeof(IN_TYPE));
+
+  return res == value;
+}
+
+static const std::vector<uint64_t> unsigned_test_values() {
+  static const uint64_t kValues[] = {
+      0x2180f18a06384414, 0x000a714532102277, 0xbc1acccf180649f0,
+      0x8000000080008000, 0x0000000000000001, 0xffffffffffffffff,
+  };
+  return std::vector<uint64_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+static const std::vector<int32_t> unsigned_test_offset() {
+  static const int32_t kValues[] = {// value, offset
+                                    -132 * KB, -21 * KB, 0, 19 * KB, 135 * KB};
+  return std::vector<int32_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+static const std::vector<int32_t> unsigned_test_offset_increment() {
+  static const int32_t kValues[] = {-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5};
+  return std::vector<int32_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+TEST(Ulh) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        uint16_t value = static_cast<uint64_t>(*i & 0xFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulh(v0, MemOperand(a0, in_offset));
+                             __ Ush(v0, MemOperand(a0, out_offset), v0);
+                           }));
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ mov(t0, a0);
+                             __ Ulh(a0, MemOperand(a0, in_offset));
+                             __ Ush(a0, MemOperand(t0, out_offset), v0);
+                           }));
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ mov(t0, a0);
+                             __ Ulhu(a0, MemOperand(a0, in_offset));
+                             __ Ush(a0, MemOperand(t0, out_offset), t1);
+                           }));
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulhu(v0, MemOperand(a0, in_offset));
+                             __ Ush(v0, MemOperand(a0, out_offset), t1);
+                           }));
+      }
+    }
+  }
+}
+
+TEST(Ulh_bitextension) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        uint16_t value = static_cast<uint64_t>(*i & 0xFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             Label success, fail, end, different;
+                             __ Ulh(t0, MemOperand(a0, in_offset));
+                             __ Ulhu(t1, MemOperand(a0, in_offset));
+                             __ Branch(&different, ne, t0, Operand(t1));
+
+                             // If signed and unsigned values are same, check
+                             // the upper bits to see if they are zero
+                             __ sra(t0, t0, 15);
+                             __ Branch(&success, eq, t0, Operand(zero_reg));
+                             __ Branch(&fail);
+
+                             // If signed and unsigned values are different,
+                             // check that the upper bits are complementary
+                             __ bind(&different);
+                             __ sra(t1, t1, 15);
+                             __ Branch(&fail, ne, t1, Operand(1));
+                             __ sra(t0, t0, 15);
+                             __ addiu(t0, t0, 1);
+                             __ Branch(&fail, ne, t0, Operand(zero_reg));
+                             // Fall through to success
+
+                             __ bind(&success);
+                             __ Ulh(t0, MemOperand(a0, in_offset));
+                             __ Ush(t0, MemOperand(a0, out_offset), v0);
+                             __ Branch(&end);
+                             __ bind(&fail);
+                             __ Ush(zero_reg, MemOperand(a0, out_offset), v0);
+                             __ bind(&end);
+                           }));
+      }
+    }
+  }
+}
+
+TEST(Ulw) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        uint32_t value = static_cast<uint32_t>(*i & 0xFFFFFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<uint32_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulw(v0, MemOperand(a0, in_offset));
+                             __ Usw(v0, MemOperand(a0, out_offset));
+                           }));
+        CHECK_EQ(true,
+                 run_Unaligned<uint32_t>(
+                     buffer_middle, in_offset, out_offset, (uint32_t)value,
+                     [](MacroAssembler* masm, int32_t in_offset,
+                        int32_t out_offset) {
+                       __ mov(t0, a0);
+                       __ Ulw(a0, MemOperand(a0, in_offset));
+                       __ Usw(a0, MemOperand(t0, out_offset));
+                     }));
+      }
+    }
+  }
+}
+
+TEST(Ulwc1) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        float value = static_cast<float>(*i & 0xFFFFFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<float>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulwc1(f0, MemOperand(a0, in_offset), t0);
+                             __ Uswc1(f0, MemOperand(a0, out_offset), t0);
+                           }));
+      }
+    }
+  }
+}
+
+TEST(Uldc1) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        double value = static_cast<double>(*i);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<double>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Uldc1(f0, MemOperand(a0, in_offset), t0);
+                             __ Usdc1(f0, MemOperand(a0, out_offset), t0);
+                           }));
+      }
+    }
+  }
+}
+
 #undef __
diff --git a/test/cctest/test-macro-assembler-mips64.cc b/test/cctest/test-macro-assembler-mips64.cc
index e251242..f0180c1 100644
--- a/test/cctest/test-macro-assembler-mips64.cc
+++ b/test/cctest/test-macro-assembler-mips64.cc
@@ -523,14 +523,14 @@
   }
 }
 
-static const std::vector<uint32_t> uint32_test_values() {
+static const std::vector<uint32_t> cvt_trunc_uint32_test_values() {
   static const uint32_t kValues[] = {0x00000000, 0x00000001, 0x00ffff00,
                                      0x7fffffff, 0x80000000, 0x80000001,
                                      0x80ffff00, 0x8fffffff, 0xffffffff};
   return std::vector<uint32_t>(&kValues[0], &kValues[arraysize(kValues)]);
 }
 
-static const std::vector<int32_t> int32_test_values() {
+static const std::vector<int32_t> cvt_trunc_int32_test_values() {
   static const int32_t kValues[] = {
       static_cast<int32_t>(0x00000000), static_cast<int32_t>(0x00000001),
       static_cast<int32_t>(0x00ffff00), static_cast<int32_t>(0x7fffffff),
@@ -540,7 +540,7 @@
   return std::vector<int32_t>(&kValues[0], &kValues[arraysize(kValues)]);
 }
 
-static const std::vector<uint64_t> uint64_test_values() {
+static const std::vector<uint64_t> cvt_trunc_uint64_test_values() {
   static const uint64_t kValues[] = {
       0x0000000000000000, 0x0000000000000001, 0x0000ffffffff0000,
       0x7fffffffffffffff, 0x8000000000000000, 0x8000000000000001,
@@ -548,7 +548,7 @@
   return std::vector<uint64_t>(&kValues[0], &kValues[arraysize(kValues)]);
 }
 
-static const std::vector<int64_t> int64_test_values() {
+static const std::vector<int64_t> cvt_trunc_int64_test_values() {
   static const int64_t kValues[] = {static_cast<int64_t>(0x0000000000000000),
                                     static_cast<int64_t>(0x0000000000000001),
                                     static_cast<int64_t>(0x0000ffffffff0000),
@@ -562,15 +562,32 @@
 }
 
 // Helper macros that can be used in FOR_INT32_INPUTS(i) { ... *i ... }
-#define FOR_INPUTS(ctype, itype, var)                        \
-  std::vector<ctype> var##_vec = itype##_test_values();      \
+#define FOR_INPUTS(ctype, itype, var, test_vector)           \
+  std::vector<ctype> var##_vec = test_vector();              \
   for (std::vector<ctype>::iterator var = var##_vec.begin(); \
        var != var##_vec.end(); ++var)
 
-#define FOR_INT32_INPUTS(var) FOR_INPUTS(int32_t, int32, var)
-#define FOR_INT64_INPUTS(var) FOR_INPUTS(int64_t, int64, var)
-#define FOR_UINT32_INPUTS(var) FOR_INPUTS(uint32_t, uint32, var)
-#define FOR_UINT64_INPUTS(var) FOR_INPUTS(uint64_t, uint64, var)
+#define FOR_INPUTS2(ctype, itype, var, var2, test_vector)  \
+  std::vector<ctype> var##_vec = test_vector();            \
+  std::vector<ctype>::iterator var;                        \
+  std::vector<ctype>::reverse_iterator var2;               \
+  for (var = var##_vec.begin(), var2 = var##_vec.rbegin(); \
+       var != var##_vec.end(); ++var, ++var2)
+
+#define FOR_ENUM_INPUTS(var, type, test_vector) \
+  FOR_INPUTS(enum type, type, var, test_vector)
+#define FOR_STRUCT_INPUTS(var, type, test_vector) \
+  FOR_INPUTS(struct type, type, var, test_vector)
+#define FOR_INT32_INPUTS(var, test_vector) \
+  FOR_INPUTS(int32_t, int32, var, test_vector)
+#define FOR_INT32_INPUTS2(var, var2, test_vector) \
+  FOR_INPUTS2(int32_t, int32, var, var2, test_vector)
+#define FOR_INT64_INPUTS(var, test_vector) \
+  FOR_INPUTS(int64_t, int64, var, test_vector)
+#define FOR_UINT32_INPUTS(var, test_vector) \
+  FOR_INPUTS(uint32_t, uint32, var, test_vector)
+#define FOR_UINT64_INPUTS(var, test_vector) \
+  FOR_INPUTS(uint64_t, uint64, var, test_vector)
 
 template <typename RET_TYPE, typename IN_TYPE, typename Func>
 RET_TYPE run_Cvt(IN_TYPE x, Func GenerateConvertInstructionFunc) {
@@ -600,7 +617,7 @@
 
 TEST(Cvt_s_uw_Trunc_uw_s) {
   CcTest::InitializeVM();
-  FOR_UINT32_INPUTS(i) {
+  FOR_UINT32_INPUTS(i, cvt_trunc_uint32_test_values) {
     uint32_t input = *i;
     CHECK_EQ(static_cast<float>(input),
              run_Cvt<uint64_t>(input, [](MacroAssembler* masm) {
@@ -613,7 +630,7 @@
 
 TEST(Cvt_s_ul_Trunc_ul_s) {
   CcTest::InitializeVM();
-  FOR_UINT64_INPUTS(i) {
+  FOR_UINT64_INPUTS(i, cvt_trunc_uint64_test_values) {
     uint64_t input = *i;
     CHECK_EQ(static_cast<float>(input),
              run_Cvt<uint64_t>(input, [](MacroAssembler* masm) {
@@ -625,7 +642,7 @@
 
 TEST(Cvt_d_ul_Trunc_ul_d) {
   CcTest::InitializeVM();
-  FOR_UINT64_INPUTS(i) {
+  FOR_UINT64_INPUTS(i, cvt_trunc_uint64_test_values) {
     uint64_t input = *i;
     CHECK_EQ(static_cast<double>(input),
              run_Cvt<uint64_t>(input, [](MacroAssembler* masm) {
@@ -637,7 +654,7 @@
 
 TEST(cvt_d_l_Trunc_l_d) {
   CcTest::InitializeVM();
-  FOR_INT64_INPUTS(i) {
+  FOR_INT64_INPUTS(i, cvt_trunc_int64_test_values) {
     int64_t input = *i;
     CHECK_EQ(static_cast<double>(input),
              run_Cvt<int64_t>(input, [](MacroAssembler* masm) {
@@ -650,7 +667,7 @@
 
 TEST(cvt_d_l_Trunc_l_ud) {
   CcTest::InitializeVM();
-  FOR_INT64_INPUTS(i) {
+  FOR_INT64_INPUTS(i, cvt_trunc_int64_test_values) {
     int64_t input = *i;
     uint64_t abs_input = (input < 0) ? -input : input;
     CHECK_EQ(static_cast<double>(abs_input),
@@ -664,7 +681,7 @@
 
 TEST(cvt_d_w_Trunc_w_d) {
   CcTest::InitializeVM();
-  FOR_INT32_INPUTS(i) {
+  FOR_INT32_INPUTS(i, cvt_trunc_int32_test_values) {
     int32_t input = *i;
     CHECK_EQ(static_cast<double>(input),
              run_Cvt<int64_t>(input, [](MacroAssembler* masm) {
@@ -677,6 +694,607 @@
   }
 }
 
+static const std::vector<int32_t> overflow_int32_test_values() {
+  static const int32_t kValues[] = {
+      static_cast<int32_t>(0xf0000000), static_cast<int32_t>(0x00000001),
+      static_cast<int32_t>(0xff000000), static_cast<int32_t>(0x0000f000),
+      static_cast<int32_t>(0x0f000000), static_cast<int32_t>(0x991234ab),
+      static_cast<int32_t>(0xb0ffff01), static_cast<int32_t>(0x00006fff),
+      static_cast<int32_t>(0xffffffff)};
+  return std::vector<int32_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+static const std::vector<int64_t> overflow_int64_test_values() {
+  static const int64_t kValues[] = {static_cast<int64_t>(0xf000000000000000),
+                                    static_cast<int64_t>(0x0000000000000001),
+                                    static_cast<int64_t>(0xff00000000000000),
+                                    static_cast<int64_t>(0x0000f00111111110),
+                                    static_cast<int64_t>(0x0f00001000000000),
+                                    static_cast<int64_t>(0x991234ab12a96731),
+                                    static_cast<int64_t>(0xb0ffff0f0f0f0f01),
+                                    static_cast<int64_t>(0x00006fffffffffff),
+                                    static_cast<int64_t>(0xffffffffffffffff)};
+  return std::vector<int64_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+enum OverflowBranchType {
+  kAddBranchOverflow,
+  kSubBranchOverflow,
+};
+
+struct OverflowRegisterCombination {
+  Register dst;
+  Register left;
+  Register right;
+  Register scratch;
+};
+
+static const std::vector<enum OverflowBranchType> overflow_branch_type() {
+  static const enum OverflowBranchType kValues[] = {kAddBranchOverflow,
+                                                    kSubBranchOverflow};
+  return std::vector<enum OverflowBranchType>(&kValues[0],
+                                              &kValues[arraysize(kValues)]);
+}
+
+static const std::vector<struct OverflowRegisterCombination>
+overflow_register_combination() {
+  static const struct OverflowRegisterCombination kValues[] = {
+      {t0, t1, t2, t3}, {t0, t0, t2, t3}, {t0, t1, t0, t3}, {t0, t1, t1, t3}};
+  return std::vector<struct OverflowRegisterCombination>(
+      &kValues[0], &kValues[arraysize(kValues)]);
+}
+
+template <typename T>
+static bool IsAddOverflow(T x, T y) {
+  DCHECK(std::numeric_limits<T>::is_integer);
+  T max = std::numeric_limits<T>::max();
+  T min = std::numeric_limits<T>::min();
+
+  return (x > 0 && y > (max - x)) || (x < 0 && y < (min - x));
+}
+
+template <typename T>
+static bool IsSubOverflow(T x, T y) {
+  DCHECK(std::numeric_limits<T>::is_integer);
+  T max = std::numeric_limits<T>::max();
+  T min = std::numeric_limits<T>::min();
+
+  return (y > 0 && x < (min + y)) || (y < 0 && x > (max + y));
+}
+
+template <typename IN_TYPE, typename Func>
+static bool runOverflow(IN_TYPE valLeft, IN_TYPE valRight,
+                        Func GenerateOverflowInstructions) {
+  typedef int64_t (*F_CVT)(char* x0, int x1, int x2, int x3, int x4);
+
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+  MacroAssembler assm(isolate, nullptr, 0,
+                      v8::internal::CodeObjectRequired::kYes);
+  MacroAssembler* masm = &assm;
+
+  GenerateOverflowInstructions(masm, valLeft, valRight);
+  __ jr(ra);
+  __ nop();
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+
+  F_CVT f = FUNCTION_CAST<F_CVT>(code->entry());
+
+  int64_t r =
+      reinterpret_cast<int64_t>(CALL_GENERATED_CODE(isolate, f, 0, 0, 0, 0, 0));
+
+  DCHECK(r == 0 || r == 1);
+  return r;
+}
+
+TEST(BranchOverflowInt32BothLabels) {
+  FOR_INT32_INPUTS(i, overflow_int32_test_values) {
+    FOR_INT32_INPUTS(j, overflow_int32_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int32_t ii = *i;
+          int32_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label overflow, no_overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, rc.right, &overflow,
+                                    &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, rc.right, &overflow,
+                                    &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 2);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label overflow, no_overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                    &overflow, &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                    &overflow, &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 2);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
+TEST(BranchOverflowInt32LeftLabel) {
+  FOR_INT32_INPUTS(i, overflow_int32_test_values) {
+    FOR_INT32_INPUTS(j, overflow_int32_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int32_t ii = *i;
+          int32_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, rc.right, &overflow, NULL,
+                                    rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, rc.right, &overflow, NULL,
+                                    rc.scratch);
+                    break;
+                }
+                __ li(v0, 0);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                    &overflow, NULL, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                    &overflow, NULL, rc.scratch);
+                    break;
+                }
+                __ li(v0, 0);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
+TEST(BranchOverflowInt32RightLabel) {
+  FOR_INT32_INPUTS(i, overflow_int32_test_values) {
+    FOR_INT32_INPUTS(j, overflow_int32_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int32_t ii = *i;
+          int32_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label no_overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, rc.right, NULL,
+                                    &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, rc.right, NULL,
+                                    &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int32_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int32_t valLeft,
+                                       int32_t valRight) {
+                Label no_overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ AddBranchOvf(rc.dst, rc.left, Operand(valRight), NULL,
+                                    &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ SubBranchOvf(rc.dst, rc.left, Operand(valRight), NULL,
+                                    &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int32_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int32_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
+TEST(BranchOverflowInt64BothLabels) {
+  FOR_INT64_INPUTS(i, overflow_int64_test_values) {
+    FOR_INT64_INPUTS(j, overflow_int64_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int64_t ii = *i;
+          int64_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int64_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int64_t valLeft,
+                                       int64_t valRight) {
+                Label overflow, no_overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ DaddBranchOvf(rc.dst, rc.left, rc.right, &overflow,
+                                     &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ DsubBranchOvf(rc.dst, rc.left, rc.right, &overflow,
+                                     &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 2);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int64_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int64_t valLeft,
+                                       int64_t valRight) {
+                Label overflow, no_overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ DaddBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                     &overflow, &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ DsubBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                     &overflow, &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 2);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int64_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int64_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int64_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int64_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
+TEST(BranchOverflowInt64LeftLabel) {
+  FOR_INT64_INPUTS(i, overflow_int64_test_values) {
+    FOR_INT64_INPUTS(j, overflow_int64_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int64_t ii = *i;
+          int64_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int64_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int64_t valLeft,
+                                       int64_t valRight) {
+                Label overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ DaddBranchOvf(rc.dst, rc.left, rc.right, &overflow, NULL,
+                                     rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ DsubBranchOvf(rc.dst, rc.left, rc.right, &overflow, NULL,
+                                     rc.scratch);
+                    break;
+                }
+                __ li(v0, 0);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int64_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int64_t valLeft,
+                                       int64_t valRight) {
+                Label overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ DaddBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                     &overflow, NULL, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ DsubBranchOvf(rc.dst, rc.left, Operand(valRight),
+                                     &overflow, NULL, rc.scratch);
+                    break;
+                }
+                __ li(v0, 0);
+                __ Branch(&end);
+                __ bind(&overflow);
+                __ li(v0, 1);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int64_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int64_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int64_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int64_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
+TEST(BranchOverflowInt64RightLabel) {
+  FOR_INT64_INPUTS(i, overflow_int64_test_values) {
+    FOR_INT64_INPUTS(j, overflow_int64_test_values) {
+      FOR_ENUM_INPUTS(br, OverflowBranchType, overflow_branch_type) {
+        FOR_STRUCT_INPUTS(regComb, OverflowRegisterCombination,
+                          overflow_register_combination) {
+          int64_t ii = *i;
+          int64_t jj = *j;
+          enum OverflowBranchType branchType = *br;
+          struct OverflowRegisterCombination rc = *regComb;
+
+          // If left and right register are same then left and right
+          // test values must also be same, otherwise we skip the test
+          if (rc.left.code() == rc.right.code()) {
+            if (ii != jj) {
+              continue;
+            }
+          }
+
+          bool res1 = runOverflow<int64_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int64_t valLeft,
+                                       int64_t valRight) {
+                Label no_overflow, end;
+                __ li(rc.left, valLeft);
+                __ li(rc.right, valRight);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ DaddBranchOvf(rc.dst, rc.left, rc.right, NULL,
+                                     &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ DsubBranchOvf(rc.dst, rc.left, rc.right, NULL,
+                                     &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          bool res2 = runOverflow<int64_t>(
+              ii, jj, [branchType, rc](MacroAssembler* masm, int64_t valLeft,
+                                       int64_t valRight) {
+                Label no_overflow, end;
+                __ li(rc.left, valLeft);
+                switch (branchType) {
+                  case kAddBranchOverflow:
+                    __ DaddBranchOvf(rc.dst, rc.left, Operand(valRight), NULL,
+                                     &no_overflow, rc.scratch);
+                    break;
+                  case kSubBranchOverflow:
+                    __ DsubBranchOvf(rc.dst, rc.left, Operand(valRight), NULL,
+                                     &no_overflow, rc.scratch);
+                    break;
+                }
+                __ li(v0, 1);
+                __ Branch(&end);
+                __ bind(&no_overflow);
+                __ li(v0, 0);
+                __ bind(&end);
+              });
+
+          switch (branchType) {
+            case kAddBranchOverflow:
+              CHECK_EQ(IsAddOverflow<int64_t>(ii, jj), res1);
+              CHECK_EQ(IsAddOverflow<int64_t>(ii, jj), res2);
+              break;
+            case kSubBranchOverflow:
+              CHECK_EQ(IsSubOverflow<int64_t>(ii, jj), res1);
+              CHECK_EQ(IsSubOverflow<int64_t>(ii, jj), res2);
+              break;
+            default:
+              UNREACHABLE();
+          }
+        }
+      }
+    }
+  }
+}
+
 TEST(min_max_nan) {
   CcTest::InitializeVM();
   Isolate* isolate = CcTest::i_isolate();
@@ -787,4 +1405,344 @@
   }
 }
 
+template <typename IN_TYPE, typename Func>
+bool run_Unaligned(char* memory_buffer, int32_t in_offset, int32_t out_offset,
+                   IN_TYPE value, Func GenerateUnalignedInstructionFunc) {
+  typedef int32_t (*F_CVT)(char* x0, int x1, int x2, int x3, int x4);
+
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+  MacroAssembler assm(isolate, nullptr, 0,
+                      v8::internal::CodeObjectRequired::kYes);
+  MacroAssembler* masm = &assm;
+  IN_TYPE res;
+
+  GenerateUnalignedInstructionFunc(masm, in_offset, out_offset);
+  __ jr(ra);
+  __ nop();
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+
+  F_CVT f = FUNCTION_CAST<F_CVT>(code->entry());
+
+  MemCopy(memory_buffer + in_offset, &value, sizeof(IN_TYPE));
+  CALL_GENERATED_CODE(isolate, f, memory_buffer, 0, 0, 0, 0);
+  MemCopy(&res, memory_buffer + out_offset, sizeof(IN_TYPE));
+
+  return res == value;
+}
+
+static const std::vector<uint64_t> unsigned_test_values() {
+  static const uint64_t kValues[] = {
+      0x2180f18a06384414, 0x000a714532102277, 0xbc1acccf180649f0,
+      0x8000000080008000, 0x0000000000000001, 0xffffffffffffffff,
+  };
+  return std::vector<uint64_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+static const std::vector<int32_t> unsigned_test_offset() {
+  static const int32_t kValues[] = {// value, offset
+                                    -132 * KB, -21 * KB, 0, 19 * KB, 135 * KB};
+  return std::vector<int32_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+static const std::vector<int32_t> unsigned_test_offset_increment() {
+  static const int32_t kValues[] = {-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5};
+  return std::vector<int32_t>(&kValues[0], &kValues[arraysize(kValues)]);
+}
+
+TEST(Ulh) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        uint16_t value = static_cast<uint64_t>(*i & 0xFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulh(v0, MemOperand(a0, in_offset));
+                             __ Ush(v0, MemOperand(a0, out_offset), v0);
+                           }));
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ mov(t0, a0);
+                             __ Ulh(a0, MemOperand(a0, in_offset));
+                             __ Ush(a0, MemOperand(t0, out_offset), v0);
+                           }));
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ mov(t0, a0);
+                             __ Ulhu(a0, MemOperand(a0, in_offset));
+                             __ Ush(a0, MemOperand(t0, out_offset), t1);
+                           }));
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulhu(v0, MemOperand(a0, in_offset));
+                             __ Ush(v0, MemOperand(a0, out_offset), t1);
+                           }));
+      }
+    }
+  }
+}
+
+TEST(Ulh_bitextension) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        uint16_t value = static_cast<uint64_t>(*i & 0xFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<uint16_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             Label success, fail, end, different;
+                             __ Ulh(t0, MemOperand(a0, in_offset));
+                             __ Ulhu(t1, MemOperand(a0, in_offset));
+                             __ Branch(&different, ne, t0, Operand(t1));
+
+                             // If signed and unsigned values are same, check
+                             // the upper bits to see if they are zero
+                             __ sra(t0, t0, 15);
+                             __ Branch(&success, eq, t0, Operand(zero_reg));
+                             __ Branch(&fail);
+
+                             // If signed and unsigned values are different,
+                             // check that the upper bits are complementary
+                             __ bind(&different);
+                             __ sra(t1, t1, 15);
+                             __ Branch(&fail, ne, t1, Operand(1));
+                             __ sra(t0, t0, 15);
+                             __ addiu(t0, t0, 1);
+                             __ Branch(&fail, ne, t0, Operand(zero_reg));
+                             // Fall through to success
+
+                             __ bind(&success);
+                             __ Ulh(t0, MemOperand(a0, in_offset));
+                             __ Ush(t0, MemOperand(a0, out_offset), v0);
+                             __ Branch(&end);
+                             __ bind(&fail);
+                             __ Ush(zero_reg, MemOperand(a0, out_offset), v0);
+                             __ bind(&end);
+                           }));
+      }
+    }
+  }
+}
+
+TEST(Ulw) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        uint32_t value = static_cast<uint32_t>(*i & 0xFFFFFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<uint32_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulw(v0, MemOperand(a0, in_offset));
+                             __ Usw(v0, MemOperand(a0, out_offset));
+                           }));
+        CHECK_EQ(true,
+                 run_Unaligned<uint32_t>(
+                     buffer_middle, in_offset, out_offset, (uint32_t)value,
+                     [](MacroAssembler* masm, int32_t in_offset,
+                        int32_t out_offset) {
+                       __ mov(t0, a0);
+                       __ Ulw(a0, MemOperand(a0, in_offset));
+                       __ Usw(a0, MemOperand(t0, out_offset));
+                     }));
+        CHECK_EQ(true, run_Unaligned<uint32_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulwu(v0, MemOperand(a0, in_offset));
+                             __ Usw(v0, MemOperand(a0, out_offset));
+                           }));
+        CHECK_EQ(true,
+                 run_Unaligned<uint32_t>(
+                     buffer_middle, in_offset, out_offset, (uint32_t)value,
+                     [](MacroAssembler* masm, int32_t in_offset,
+                        int32_t out_offset) {
+                       __ mov(t0, a0);
+                       __ Ulwu(a0, MemOperand(a0, in_offset));
+                       __ Usw(a0, MemOperand(t0, out_offset));
+                     }));
+      }
+    }
+  }
+}
+
+TEST(Ulw_extension) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        uint32_t value = static_cast<uint32_t>(*i & 0xFFFFFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<uint32_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             Label success, fail, end, different;
+                             __ Ulw(t0, MemOperand(a0, in_offset));
+                             __ Ulwu(t1, MemOperand(a0, in_offset));
+                             __ Branch(&different, ne, t0, Operand(t1));
+
+                             // If signed and unsigned values are same, check
+                             // the upper bits to see if they are zero
+                             __ dsra(t0, t0, 31);
+                             __ Branch(&success, eq, t0, Operand(zero_reg));
+                             __ Branch(&fail);
+
+                             // If signed and unsigned values are different,
+                             // check that the upper bits are complementary
+                             __ bind(&different);
+                             __ dsra(t1, t1, 31);
+                             __ Branch(&fail, ne, t1, Operand(1));
+                             __ dsra(t0, t0, 31);
+                             __ daddiu(t0, t0, 1);
+                             __ Branch(&fail, ne, t0, Operand(zero_reg));
+                             // Fall through to success
+
+                             __ bind(&success);
+                             __ Ulw(t0, MemOperand(a0, in_offset));
+                             __ Usw(t0, MemOperand(a0, out_offset));
+                             __ Branch(&end);
+                             __ bind(&fail);
+                             __ Usw(zero_reg, MemOperand(a0, out_offset));
+                             __ bind(&end);
+                           }));
+      }
+    }
+  }
+}
+
+TEST(Uld) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        uint64_t value = *i;
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<uint64_t>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Uld(v0, MemOperand(a0, in_offset));
+                             __ Usd(v0, MemOperand(a0, out_offset));
+                           }));
+        CHECK_EQ(true,
+                 run_Unaligned<uint64_t>(
+                     buffer_middle, in_offset, out_offset, (uint32_t)value,
+                     [](MacroAssembler* masm, int32_t in_offset,
+                        int32_t out_offset) {
+                       __ mov(t0, a0);
+                       __ Uld(a0, MemOperand(a0, in_offset));
+                       __ Usd(a0, MemOperand(t0, out_offset));
+                     }));
+      }
+    }
+  }
+}
+
+TEST(Ulwc1) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        float value = static_cast<float>(*i & 0xFFFFFFFF);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<float>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Ulwc1(f0, MemOperand(a0, in_offset), t0);
+                             __ Uswc1(f0, MemOperand(a0, out_offset), t0);
+                           }));
+      }
+    }
+  }
+}
+
+TEST(Uldc1) {
+  CcTest::InitializeVM();
+
+  static const int kBufferSize = 300 * KB;
+  char memory_buffer[kBufferSize];
+  char* buffer_middle = memory_buffer + (kBufferSize / 2);
+
+  FOR_UINT64_INPUTS(i, unsigned_test_values) {
+    FOR_INT32_INPUTS2(j1, j2, unsigned_test_offset) {
+      FOR_INT32_INPUTS2(k1, k2, unsigned_test_offset_increment) {
+        double value = static_cast<double>(*i);
+        int32_t in_offset = *j1 + *k1;
+        int32_t out_offset = *j2 + *k2;
+
+        CHECK_EQ(true, run_Unaligned<double>(
+                           buffer_middle, in_offset, out_offset, value,
+                           [](MacroAssembler* masm, int32_t in_offset,
+                              int32_t out_offset) {
+                             __ Uldc1(f0, MemOperand(a0, in_offset), t0);
+                             __ Usdc1(f0, MemOperand(a0, out_offset), t0);
+                           }));
+      }
+    }
+  }
+}
+
 #undef __
diff --git a/test/cctest/test-microtask-delivery.cc b/test/cctest/test-microtask-delivery.cc
deleted file mode 100644
index 3150ab8..0000000
--- a/test/cctest/test-microtask-delivery.cc
+++ /dev/null
@@ -1,161 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include "src/v8.h"
-
-#include "test/cctest/cctest.h"
-
-namespace i = v8::internal;
-
-namespace {
-class HarmonyIsolate {
- public:
-  HarmonyIsolate() {
-    v8::Isolate::CreateParams create_params;
-    create_params.array_buffer_allocator = CcTest::array_buffer_allocator();
-    isolate_ = v8::Isolate::New(create_params);
-    isolate_->Enter();
-  }
-
-  ~HarmonyIsolate() {
-    isolate_->Exit();
-    isolate_->Dispose();
-  }
-
-  v8::Isolate* GetIsolate() const { return isolate_; }
-
- private:
-  v8::Isolate* isolate_;
-};
-}  // namespace
-
-
-TEST(MicrotaskDeliverySimple) {
-  i::FLAG_harmony_object_observe = true;
-  HarmonyIsolate isolate;
-  v8::HandleScope scope(isolate.GetIsolate());
-  LocalContext context(isolate.GetIsolate());
-  CompileRun(
-      "var ordering = [];"
-      "var resolver = {};"
-      "function handler(resolve) { resolver.resolve = resolve; }"
-      "var obj = {};"
-      "var observeOrders = [1, 4];"
-      "function observer() {"
-        "ordering.push(observeOrders.shift());"
-        "resolver.resolve();"
-      "}"
-      "var p = new Promise(handler);"
-      "p.then(function() {"
-        "ordering.push(2);"
-      "}).then(function() {"
-        "ordering.push(3);"
-        "obj.id++;"
-        "return new Promise(handler);"
-      "}).then(function() {"
-        "ordering.push(5);"
-      "}).then(function() {"
-        "ordering.push(6);"
-      "});"
-      "Object.observe(obj, observer);"
-      "obj.id = 1;");
-  CHECK_EQ(
-      6, CompileRun("ordering.length")->Int32Value(context.local()).FromJust());
-  CHECK_EQ(1,
-           CompileRun("ordering[0]")->Int32Value(context.local()).FromJust());
-  CHECK_EQ(2,
-           CompileRun("ordering[1]")->Int32Value(context.local()).FromJust());
-  CHECK_EQ(3,
-           CompileRun("ordering[2]")->Int32Value(context.local()).FromJust());
-  CHECK_EQ(4,
-           CompileRun("ordering[3]")->Int32Value(context.local()).FromJust());
-  CHECK_EQ(5,
-           CompileRun("ordering[4]")->Int32Value(context.local()).FromJust());
-  CHECK_EQ(6,
-           CompileRun("ordering[5]")->Int32Value(context.local()).FromJust());
-}
-
-
-TEST(MicrotaskPerIsolateState) {
-  i::FLAG_harmony_object_observe = true;
-  HarmonyIsolate isolate;
-  v8::HandleScope scope(isolate.GetIsolate());
-  LocalContext context1(isolate.GetIsolate());
-  isolate.GetIsolate()->SetMicrotasksPolicy(v8::MicrotasksPolicy::kExplicit);
-  CompileRun(
-      "var obj = { calls: 0 };");
-  v8::Local<v8::Value> obj = CompileRun("obj");
-  {
-    LocalContext context2(isolate.GetIsolate());
-    context2->Global()
-        ->Set(context2.local(),
-              v8::String::NewFromUtf8(isolate.GetIsolate(), "obj",
-                                      v8::NewStringType::kNormal)
-                  .ToLocalChecked(),
-              obj)
-        .FromJust();
-    CompileRun(
-        "var resolver = {};"
-        "new Promise(function(resolve) {"
-          "resolver.resolve = resolve;"
-        "}).then(function() {"
-          "obj.calls++;"
-        "});"
-        "(function() {"
-          "resolver.resolve();"
-        "})();");
-  }
-  {
-    LocalContext context3(isolate.GetIsolate());
-    context3->Global()
-        ->Set(context3.local(),
-              v8::String::NewFromUtf8(isolate.GetIsolate(), "obj",
-                                      v8::NewStringType::kNormal)
-                  .ToLocalChecked(),
-              obj)
-        .FromJust();
-    CompileRun(
-        "var foo = { id: 1 };"
-        "Object.observe(foo, function() {"
-          "obj.calls++;"
-        "});"
-        "foo.id++;");
-  }
-  {
-    LocalContext context4(isolate.GetIsolate());
-    context4->Global()
-        ->Set(context4.local(),
-              v8::String::NewFromUtf8(isolate.GetIsolate(), "obj",
-                                      v8::NewStringType::kNormal)
-                  .ToLocalChecked(),
-              obj)
-        .FromJust();
-    isolate.GetIsolate()->RunMicrotasks();
-    CHECK_EQ(2,
-             CompileRun("obj.calls")->Int32Value(context4.local()).FromJust());
-  }
-}
diff --git a/test/cctest/test-object-observe.cc b/test/cctest/test-object-observe.cc
deleted file mode 100644
index f17b8c0..0000000
--- a/test/cctest/test-object-observe.cc
+++ /dev/null
@@ -1,1078 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include "src/v8.h"
-
-#include "test/cctest/cctest.h"
-
-using namespace v8;
-namespace i = v8::internal;
-
-inline int32_t ToInt32(v8::Local<v8::Value> value) {
-  return value->Int32Value(v8::Isolate::GetCurrent()->GetCurrentContext())
-      .FromJust();
-}
-
-
-TEST(PerIsolateState) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context1(CcTest::isolate());
-
-  Local<Value> foo = v8_str("foo");
-  context1->SetSecurityToken(foo);
-
-  CompileRun(
-      "var count = 0;"
-      "var calls = 0;"
-      "var observer = function(records) { count = records.length; calls++ };"
-      "var obj = {};"
-      "Object.observe(obj, observer);");
-  Local<Value> observer = CompileRun("observer");
-  Local<Value> obj = CompileRun("obj");
-  Local<Value> notify_fun1 = CompileRun("(function() { obj.foo = 'bar'; })");
-  Local<Value> notify_fun2;
-  {
-    LocalContext context2(CcTest::isolate());
-    context2->SetSecurityToken(foo);
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              obj)
-        .FromJust();
-    notify_fun2 = CompileRun(
-        "(function() { obj.foo = 'baz'; })");
-  }
-  Local<Value> notify_fun3;
-  {
-    LocalContext context3(CcTest::isolate());
-    context3->SetSecurityToken(foo);
-    context3->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              obj)
-        .FromJust();
-    notify_fun3 = CompileRun("(function() { obj.foo = 'bat'; })");
-  }
-  {
-    LocalContext context4(CcTest::isolate());
-    context4->SetSecurityToken(foo);
-    context4->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(),
-              v8_str("observer"), observer)
-        .FromJust();
-    context4->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("fun1"),
-              notify_fun1)
-        .FromJust();
-    context4->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("fun2"),
-              notify_fun2)
-        .FromJust();
-    context4->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("fun3"),
-              notify_fun3)
-        .FromJust();
-    CompileRun("fun1(); fun2(); fun3(); Object.deliverChangeRecords(observer)");
-  }
-  CHECK_EQ(1, ToInt32(CompileRun("calls")));
-  CHECK_EQ(3, ToInt32(CompileRun("count")));
-}
-
-
-TEST(EndOfMicrotaskDelivery) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun(
-      "var obj = {};"
-      "var count = 0;"
-      "var observer = function(records) { count = records.length };"
-      "Object.observe(obj, observer);"
-      "obj.foo = 'bar';");
-  CHECK_EQ(1, ToInt32(CompileRun("count")));
-}
-
-
-TEST(DeliveryOrdering) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun(
-      "var obj1 = {};"
-      "var obj2 = {};"
-      "var ordering = [];"
-      "function observer2() { ordering.push(2); };"
-      "function observer1() { ordering.push(1); };"
-      "function observer3() { ordering.push(3); };"
-      "Object.observe(obj1, observer1);"
-      "Object.observe(obj1, observer2);"
-      "Object.observe(obj1, observer3);"
-      "obj1.foo = 'bar';");
-  CHECK_EQ(3, ToInt32(CompileRun("ordering.length")));
-  CHECK_EQ(1, ToInt32(CompileRun("ordering[0]")));
-  CHECK_EQ(2, ToInt32(CompileRun("ordering[1]")));
-  CHECK_EQ(3, ToInt32(CompileRun("ordering[2]")));
-  CompileRun(
-      "ordering = [];"
-      "Object.observe(obj2, observer3);"
-      "Object.observe(obj2, observer2);"
-      "Object.observe(obj2, observer1);"
-      "obj2.foo = 'baz'");
-  CHECK_EQ(3, ToInt32(CompileRun("ordering.length")));
-  CHECK_EQ(1, ToInt32(CompileRun("ordering[0]")));
-  CHECK_EQ(2, ToInt32(CompileRun("ordering[1]")));
-  CHECK_EQ(3, ToInt32(CompileRun("ordering[2]")));
-}
-
-
-TEST(DeliveryCallbackThrows) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun(
-      "var obj = {};"
-      "var ordering = [];"
-      "function observer1() { ordering.push(1); };"
-      "function observer2() { ordering.push(2); };"
-      "function observer_throws() {"
-      "  ordering.push(0);"
-      "  throw new Error();"
-      "  ordering.push(-1);"
-      "};"
-      "Object.observe(obj, observer_throws.bind());"
-      "Object.observe(obj, observer1);"
-      "Object.observe(obj, observer_throws.bind());"
-      "Object.observe(obj, observer2);"
-      "Object.observe(obj, observer_throws.bind());"
-      "obj.foo = 'bar';");
-  CHECK_EQ(5, ToInt32(CompileRun("ordering.length")));
-  CHECK_EQ(0, ToInt32(CompileRun("ordering[0]")));
-  CHECK_EQ(1, ToInt32(CompileRun("ordering[1]")));
-  CHECK_EQ(0, ToInt32(CompileRun("ordering[2]")));
-  CHECK_EQ(2, ToInt32(CompileRun("ordering[3]")));
-  CHECK_EQ(0, ToInt32(CompileRun("ordering[4]")));
-}
-
-
-TEST(DeliveryChangesMutationInCallback) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun(
-      "var obj = {};"
-      "var ordering = [];"
-      "function observer1(records) {"
-      "  ordering.push(100 + records.length);"
-      "  records.push(11);"
-      "  records.push(22);"
-      "};"
-      "function observer2(records) {"
-      "  ordering.push(200 + records.length);"
-      "  records.push(33);"
-      "  records.push(44);"
-      "};"
-      "Object.observe(obj, observer1);"
-      "Object.observe(obj, observer2);"
-      "obj.foo = 'bar';");
-  CHECK_EQ(2, ToInt32(CompileRun("ordering.length")));
-  CHECK_EQ(101, ToInt32(CompileRun("ordering[0]")));
-  CHECK_EQ(201, ToInt32(CompileRun("ordering[1]")));
-}
-
-
-TEST(DeliveryOrderingReentrant) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun(
-      "var obj = {};"
-      "var reentered = false;"
-      "var ordering = [];"
-      "function observer1() { ordering.push(1); };"
-      "function observer2() {"
-      "  if (!reentered) {"
-      "    obj.foo = 'baz';"
-      "    reentered = true;"
-      "  }"
-      "  ordering.push(2);"
-      "};"
-      "function observer3() { ordering.push(3); };"
-      "Object.observe(obj, observer1);"
-      "Object.observe(obj, observer2);"
-      "Object.observe(obj, observer3);"
-      "obj.foo = 'bar';");
-  CHECK_EQ(5, ToInt32(CompileRun("ordering.length")));
-  CHECK_EQ(1, ToInt32(CompileRun("ordering[0]")));
-  CHECK_EQ(2, ToInt32(CompileRun("ordering[1]")));
-  CHECK_EQ(3, ToInt32(CompileRun("ordering[2]")));
-  // Note that we re-deliver to observers 1 and 2, while observer3
-  // already received the second record during the first round.
-  CHECK_EQ(1, ToInt32(CompileRun("ordering[3]")));
-  CHECK_EQ(2, ToInt32(CompileRun("ordering[1]")));
-}
-
-
-TEST(DeliveryOrderingDeliverChangeRecords) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun(
-      "var obj = {};"
-      "var ordering = [];"
-      "function observer1() { ordering.push(1); if (!obj.b) obj.b = true };"
-      "function observer2() { ordering.push(2); };"
-      "Object.observe(obj, observer1);"
-      "Object.observe(obj, observer2);"
-      "obj.a = 1;"
-      "Object.deliverChangeRecords(observer2);");
-  CHECK_EQ(4, ToInt32(CompileRun("ordering.length")));
-  // First, observer2 is called due to deliverChangeRecords
-  CHECK_EQ(2, ToInt32(CompileRun("ordering[0]")));
-  // Then, observer1 is called when the stack unwinds
-  CHECK_EQ(1, ToInt32(CompileRun("ordering[1]")));
-  // observer1's mutation causes both 1 and 2 to be reactivated,
-  // with 1 having priority.
-  CHECK_EQ(1, ToInt32(CompileRun("ordering[2]")));
-  CHECK_EQ(2, ToInt32(CompileRun("ordering[3]")));
-}
-
-
-TEST(ObjectHashTableGrowth) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  // Initializing this context sets up initial hash tables.
-  LocalContext context(CcTest::isolate());
-  Local<Value> obj = CompileRun("obj = {};");
-  Local<Value> observer = CompileRun(
-      "var ran = false;"
-      "(function() { ran = true })");
-  {
-    // As does initializing this context.
-    LocalContext context2(CcTest::isolate());
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              obj)
-        .FromJust();
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(),
-              v8_str("observer"), observer)
-        .FromJust();
-    CompileRun(
-        "var objArr = [];"
-        // 100 objects should be enough to make the hash table grow
-        // (and thus relocate).
-        "for (var i = 0; i < 100; ++i) {"
-        "  objArr.push({});"
-        "  Object.observe(objArr[objArr.length-1], function(){});"
-        "}"
-        "Object.observe(obj, observer);");
-  }
-  // obj is now marked "is_observed", but our map has moved.
-  CompileRun("obj.foo = 'bar'");
-  CHECK(CompileRun("ran")
-            ->BooleanValue(v8::Isolate::GetCurrent()->GetCurrentContext())
-            .FromJust());
-}
-
-
-struct RecordExpectation {
-  Local<Value> object;
-  const char* type;
-  const char* name;
-  Local<Value> old_value;
-};
-
-
-// TODO(adamk): Use this helper elsewhere in this file.
-static void ExpectRecords(v8::Isolate* isolate, Local<Value> records,
-                          const RecordExpectation expectations[], int num) {
-  CHECK(records->IsArray());
-  Local<Array> recordArray = records.As<Array>();
-  CHECK_EQ(num, static_cast<int>(recordArray->Length()));
-  for (int i = 0; i < num; ++i) {
-    Local<Value> record =
-        recordArray->Get(v8::Isolate::GetCurrent()->GetCurrentContext(), i)
-            .ToLocalChecked();
-    CHECK(record->IsObject());
-    Local<Object> recordObj = record.As<Object>();
-    Local<Value> value =
-        recordObj->Get(v8::Isolate::GetCurrent()->GetCurrentContext(),
-                       v8_str("object"))
-            .ToLocalChecked();
-    CHECK(expectations[i].object->StrictEquals(value));
-    value = recordObj->Get(v8::Isolate::GetCurrent()->GetCurrentContext(),
-                           v8_str("type"))
-                .ToLocalChecked();
-    CHECK(v8_str(expectations[i].type)
-              ->Equals(v8::Isolate::GetCurrent()->GetCurrentContext(), value)
-              .FromJust());
-    if (strcmp("splice", expectations[i].type) != 0) {
-      Local<Value> name =
-          recordObj->Get(v8::Isolate::GetCurrent()->GetCurrentContext(),
-                         v8_str("name"))
-              .ToLocalChecked();
-      CHECK(v8_str(expectations[i].name)
-                ->Equals(v8::Isolate::GetCurrent()->GetCurrentContext(), name)
-                .FromJust());
-      if (!expectations[i].old_value.IsEmpty()) {
-        Local<Value> old_value =
-            recordObj->Get(v8::Isolate::GetCurrent()->GetCurrentContext(),
-                           v8_str("oldValue"))
-                .ToLocalChecked();
-        CHECK(expectations[i]
-                  .old_value->Equals(
-                                v8::Isolate::GetCurrent()->GetCurrentContext(),
-                                old_value)
-                  .FromJust());
-      }
-    }
-  }
-}
-
-#define EXPECT_RECORDS(records, expectations)                \
-  ExpectRecords(CcTest::isolate(), records, expectations, \
-                arraysize(expectations))
-
-TEST(APITestBasicMutation) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* v8_isolate = CcTest::isolate();
-  HandleScope scope(v8_isolate);
-  LocalContext context(v8_isolate);
-  Local<Object> obj = Local<Object>::Cast(
-      CompileRun("var records = [];"
-                 "var obj = {};"
-                 "function observer(r) { [].push.apply(records, r); };"
-                 "Object.observe(obj, observer);"
-                 "obj"));
-  obj->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("foo"),
-           Number::New(v8_isolate, 7))
-      .FromJust();
-  obj->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), 1,
-           Number::New(v8_isolate, 2))
-      .FromJust();
-  // CreateDataProperty should work just as well as Set
-  obj->CreateDataProperty(v8::Isolate::GetCurrent()->GetCurrentContext(),
-                          v8_str("foo"), Number::New(v8_isolate, 3))
-      .FromJust();
-  obj->CreateDataProperty(v8::Isolate::GetCurrent()->GetCurrentContext(), 1,
-                          Number::New(v8_isolate, 4))
-      .FromJust();
-  // Setting an indexed element via the property setting method
-  obj->Set(v8::Isolate::GetCurrent()->GetCurrentContext(),
-           Number::New(v8_isolate, 1), Number::New(v8_isolate, 5))
-      .FromJust();
-  // Setting with a non-String, non-uint32 key
-  obj->Set(v8::Isolate::GetCurrent()->GetCurrentContext(),
-           Number::New(v8_isolate, 1.1), Number::New(v8_isolate, 6))
-      .FromJust();
-  obj->Delete(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("foo"))
-      .FromJust();
-  obj->Delete(v8::Isolate::GetCurrent()->GetCurrentContext(), 1).FromJust();
-  obj->Delete(v8::Isolate::GetCurrent()->GetCurrentContext(),
-              Number::New(v8_isolate, 1.1))
-      .FromJust();
-
-  // Force delivery
-  // TODO(adamk): Should the above set methods trigger delivery themselves?
-  CompileRun("void 0");
-  CHECK_EQ(9, ToInt32(CompileRun("records.length")));
-  const RecordExpectation expected_records[] = {
-      {obj, "add", "foo", Local<Value>()},
-      {obj, "add", "1", Local<Value>()},
-      // Note: use 7 not 1 below, as the latter triggers a nifty VS10 compiler
-      // bug
-      // where instead of 1.0, a garbage value would be passed into Number::New.
-      {obj, "update", "foo", Number::New(v8_isolate, 7)},
-      {obj, "update", "1", Number::New(v8_isolate, 2)},
-      {obj, "update", "1", Number::New(v8_isolate, 4)},
-      {obj, "add", "1.1", Local<Value>()},
-      {obj, "delete", "foo", Number::New(v8_isolate, 3)},
-      {obj, "delete", "1", Number::New(v8_isolate, 5)},
-      {obj, "delete", "1.1", Number::New(v8_isolate, 6)}};
-  EXPECT_RECORDS(CompileRun("records"), expected_records);
-}
-
-
-TEST(HiddenPrototypeObservation) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* v8_isolate = CcTest::isolate();
-  HandleScope scope(v8_isolate);
-  LocalContext context(v8_isolate);
-  Local<FunctionTemplate> tmpl = FunctionTemplate::New(v8_isolate);
-  tmpl->SetHiddenPrototype(true);
-  tmpl->InstanceTemplate()->Set(v8_str("foo"), Number::New(v8_isolate, 75));
-  Local<Function> function =
-      tmpl->GetFunction(v8::Isolate::GetCurrent()->GetCurrentContext())
-          .ToLocalChecked();
-  Local<Object> proto =
-      function->NewInstance(v8::Isolate::GetCurrent()->GetCurrentContext())
-          .ToLocalChecked();
-  Local<Object> obj = Object::New(v8_isolate);
-  obj->SetPrototype(v8::Isolate::GetCurrent()->GetCurrentContext(), proto)
-      .FromJust();
-  context->Global()
-      ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"), obj)
-      .FromJust();
-  context->Global()
-      ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("proto"),
-            proto)
-      .FromJust();
-  CompileRun(
-      "var records;"
-      "function observer(r) { records = r; };"
-      "Object.observe(obj, observer);"
-      "obj.foo = 41;"  // triggers a notification
-      "proto.foo = 42;");  // does not trigger a notification
-  const RecordExpectation expected_records[] = {
-    { obj, "update", "foo", Number::New(v8_isolate, 75) }
-  };
-  EXPECT_RECORDS(CompileRun("records"), expected_records);
-  obj->SetPrototype(v8::Isolate::GetCurrent()->GetCurrentContext(),
-                    Null(v8_isolate))
-      .FromJust();
-  CompileRun("obj.foo = 43");
-  const RecordExpectation expected_records2[] = {
-      {obj, "add", "foo", Local<Value>()}};
-  EXPECT_RECORDS(CompileRun("records"), expected_records2);
-  obj->SetPrototype(v8::Isolate::GetCurrent()->GetCurrentContext(), proto)
-      .FromJust();
-  CompileRun(
-      "Object.observe(proto, observer);"
-      "proto.bar = 1;"
-      "Object.unobserve(obj, observer);"
-      "obj.foo = 44;");
-  const RecordExpectation expected_records3[] = {
-      {proto, "add", "bar", Local<Value>()}
-      // TODO(adamk): The below record should be emitted since proto is observed
-      // and has been modified. Not clear if this happens in practice.
-      // { proto, "update", "foo", Number::New(43) }
-  };
-  EXPECT_RECORDS(CompileRun("records"), expected_records3);
-}
-
-
-static int NumberOfElements(i::Handle<i::JSWeakMap> map) {
-  return i::ObjectHashTable::cast(map->table())->NumberOfElements();
-}
-
-
-TEST(ObservationWeakMap) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun(
-      "var obj = {};"
-      "Object.observe(obj, function(){});"
-      "Object.getNotifier(obj);"
-      "obj = null;");
-  i::Isolate* i_isolate = CcTest::i_isolate();
-  i::Handle<i::JSObject> observation_state =
-      i_isolate->factory()->observation_state();
-  i::Handle<i::JSWeakMap> callbackInfoMap = i::Handle<i::JSWeakMap>::cast(
-      i::JSReceiver::GetProperty(i_isolate, observation_state,
-                                 "callbackInfoMap")
-          .ToHandleChecked());
-  i::Handle<i::JSWeakMap> objectInfoMap = i::Handle<i::JSWeakMap>::cast(
-      i::JSReceiver::GetProperty(i_isolate, observation_state, "objectInfoMap")
-          .ToHandleChecked());
-  i::Handle<i::JSWeakMap> notifierObjectInfoMap = i::Handle<i::JSWeakMap>::cast(
-      i::JSReceiver::GetProperty(i_isolate, observation_state,
-                                 "notifierObjectInfoMap")
-          .ToHandleChecked());
-  CHECK_EQ(1, NumberOfElements(callbackInfoMap));
-  CHECK_EQ(1, NumberOfElements(objectInfoMap));
-  CHECK_EQ(1, NumberOfElements(notifierObjectInfoMap));
-  i_isolate->heap()->CollectAllGarbage();
-  CHECK_EQ(0, NumberOfElements(callbackInfoMap));
-  CHECK_EQ(0, NumberOfElements(objectInfoMap));
-  CHECK_EQ(0, NumberOfElements(notifierObjectInfoMap));
-}
-
-
-static int TestObserveSecurity(Local<Context> observer_context,
-                               Local<Context> object_context,
-                               Local<Context> mutation_context) {
-  Context::Scope observer_scope(observer_context);
-  CompileRun("var records = null;"
-             "var observer = function(r) { records = r };");
-  Local<Value> observer = CompileRun("observer");
-  {
-    Context::Scope object_scope(object_context);
-    object_context->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(),
-              v8_str("observer"), observer)
-        .FromJust();
-    CompileRun("var obj = {};"
-               "obj.length = 0;"
-               "Object.observe(obj, observer,"
-                   "['add', 'update', 'delete','reconfigure','splice']"
-               ");");
-    Local<Value> obj = CompileRun("obj");
-    {
-      Context::Scope mutation_scope(mutation_context);
-      mutation_context->Global()
-          ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-                obj)
-          .FromJust();
-      CompileRun("obj.foo = 'bar';"
-                 "obj.foo = 'baz';"
-                 "delete obj.foo;"
-                 "Object.defineProperty(obj, 'bar', {value: 'bot'});"
-                 "Array.prototype.push.call(obj, 1, 2, 3);"
-                 "Array.prototype.splice.call(obj, 1, 2, 2, 4);"
-                 "Array.prototype.pop.call(obj);"
-                 "Array.prototype.shift.call(obj);");
-    }
-  }
-  return ToInt32(CompileRun("records ? records.length : 0"));
-}
-
-
-TEST(ObserverSecurityAAA) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  v8::Local<Context> contextA = Context::New(isolate);
-  CHECK_EQ(8, TestObserveSecurity(contextA, contextA, contextA));
-}
-
-
-TEST(ObserverSecurityA1A2A3) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-
-  v8::Local<Context> contextA1 = Context::New(isolate);
-  v8::Local<Context> contextA2 = Context::New(isolate);
-  v8::Local<Context> contextA3 = Context::New(isolate);
-
-  Local<Value> foo = v8_str("foo");
-  contextA1->SetSecurityToken(foo);
-  contextA2->SetSecurityToken(foo);
-  contextA3->SetSecurityToken(foo);
-
-  CHECK_EQ(8, TestObserveSecurity(contextA1, contextA2, contextA3));
-}
-
-
-TEST(ObserverSecurityAAB) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  v8::Local<Context> contextA = Context::New(isolate);
-  v8::Local<Context> contextB = Context::New(isolate);
-  CHECK_EQ(0, TestObserveSecurity(contextA, contextA, contextB));
-}
-
-
-TEST(ObserverSecurityA1A2B) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-
-  v8::Local<Context> contextA1 = Context::New(isolate);
-  v8::Local<Context> contextA2 = Context::New(isolate);
-  v8::Local<Context> contextB = Context::New(isolate);
-
-  Local<Value> foo = v8_str("foo");
-  contextA1->SetSecurityToken(foo);
-  contextA2->SetSecurityToken(foo);
-
-  CHECK_EQ(0, TestObserveSecurity(contextA1, contextA2, contextB));
-}
-
-
-TEST(ObserverSecurityABA) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  v8::Local<Context> contextA = Context::New(isolate);
-  v8::Local<Context> contextB = Context::New(isolate);
-  CHECK_EQ(0, TestObserveSecurity(contextA, contextB, contextA));
-}
-
-
-TEST(ObserverSecurityA1BA2) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  v8::Local<Context> contextA1 = Context::New(isolate);
-  v8::Local<Context> contextA2 = Context::New(isolate);
-  v8::Local<Context> contextB = Context::New(isolate);
-
-  Local<Value> foo = v8_str("foo");
-  contextA1->SetSecurityToken(foo);
-  contextA2->SetSecurityToken(foo);
-
-  CHECK_EQ(0, TestObserveSecurity(contextA1, contextB, contextA2));
-}
-
-
-TEST(ObserverSecurityBAA) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  v8::Local<Context> contextA = Context::New(isolate);
-  v8::Local<Context> contextB = Context::New(isolate);
-  CHECK_EQ(0, TestObserveSecurity(contextB, contextA, contextA));
-}
-
-
-TEST(ObserverSecurityBA1A2) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  v8::Local<Context> contextA1 = Context::New(isolate);
-  v8::Local<Context> contextA2 = Context::New(isolate);
-  v8::Local<Context> contextB = Context::New(isolate);
-
-  Local<Value> foo = v8_str("foo");
-  contextA1->SetSecurityToken(foo);
-  contextA2->SetSecurityToken(foo);
-
-  CHECK_EQ(0, TestObserveSecurity(contextB, contextA1, contextA2));
-}
-
-
-TEST(ObserverSecurityNotify) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  v8::Local<Context> contextA = Context::New(isolate);
-  v8::Local<Context> contextB = Context::New(isolate);
-
-  Context::Scope scopeA(contextA);
-  CompileRun("var obj = {};"
-             "var recordsA = null;"
-             "var observerA = function(r) { recordsA = r };"
-             "Object.observe(obj, observerA);");
-  Local<Value> obj = CompileRun("obj");
-
-  {
-    Context::Scope scopeB(contextB);
-    contextB->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              obj)
-        .FromJust();
-    CompileRun("var recordsB = null;"
-               "var observerB = function(r) { recordsB = r };"
-               "Object.observe(obj, observerB);");
-  }
-
-  CompileRun("var notifier = Object.getNotifier(obj);"
-             "notifier.notify({ type: 'update' });");
-  CHECK_EQ(1, ToInt32(CompileRun("recordsA ? recordsA.length : 0")));
-
-  {
-    Context::Scope scopeB(contextB);
-    CHECK_EQ(0, ToInt32(CompileRun("recordsB ? recordsB.length : 0")));
-  }
-}
-
-
-TEST(HiddenPropertiesLeakage) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun("var obj = {};"
-             "var records = null;"
-             "var observer = function(r) { records = r };"
-             "Object.observe(obj, observer);");
-  Local<Value> obj =
-      context->Global()
-          ->Get(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"))
-          .ToLocalChecked();
-  Local<Object>::Cast(obj)
-      ->SetPrivate(v8::Isolate::GetCurrent()->GetCurrentContext(),
-                   v8::Private::New(CcTest::isolate(), v8_str("foo")),
-                   Null(CcTest::isolate()))
-      .FromJust();
-  CompileRun("");  // trigger delivery
-  CHECK(CompileRun("records")->IsNull());
-}
-
-
-TEST(GetNotifierFromOtherContext) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  LocalContext context(CcTest::isolate());
-  CompileRun("var obj = {};");
-  Local<Value> instance = CompileRun("obj");
-  {
-    LocalContext context2(CcTest::isolate());
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              instance)
-        .FromJust();
-    CHECK(CompileRun("Object.getNotifier(obj)")->IsNull());
-  }
-}
-
-
-TEST(GetNotifierFromOtherOrigin) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  Local<Value> foo = v8_str("foo");
-  Local<Value> bar = v8_str("bar");
-  LocalContext context(CcTest::isolate());
-  context->SetSecurityToken(foo);
-  CompileRun("var obj = {};");
-  Local<Value> instance = CompileRun("obj");
-  {
-    LocalContext context2(CcTest::isolate());
-    context2->SetSecurityToken(bar);
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              instance)
-        .FromJust();
-    CHECK(CompileRun("Object.getNotifier(obj)")->IsNull());
-  }
-}
-
-
-TEST(GetNotifierFromSameOrigin) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  Local<Value> foo = v8_str("foo");
-  LocalContext context(CcTest::isolate());
-  context->SetSecurityToken(foo);
-  CompileRun("var obj = {};");
-  Local<Value> instance = CompileRun("obj");
-  {
-    LocalContext context2(CcTest::isolate());
-    context2->SetSecurityToken(foo);
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              instance)
-        .FromJust();
-    CHECK(CompileRun("Object.getNotifier(obj)")->IsObject());
-  }
-}
-
-
-static int GetGlobalObjectsCount() {
-  int count = 0;
-  i::HeapIterator it(CcTest::heap());
-  for (i::HeapObject* object = it.next(); object != NULL; object = it.next())
-    if (object->IsJSGlobalObject()) {
-      i::JSGlobalObject* g = i::JSGlobalObject::cast(object);
-      // Skip dummy global object.
-      if (i::GlobalDictionary::cast(g->properties())->NumberOfElements() != 0) {
-        count++;
-      }
-    }
-  // Subtract one to compensate for the code stub context that is always present
-  return count - 1;
-}
-
-
-static void CheckSurvivingGlobalObjectsCount(int expected) {
-  // We need to collect all garbage twice to be sure that everything
-  // has been collected.  This is because inline caches are cleared in
-  // the first garbage collection but some of the maps have already
-  // been marked at that point.  Therefore some of the maps are not
-  // collected until the second garbage collection.
-  CcTest::heap()->CollectAllGarbage();
-  CcTest::heap()->CollectAllGarbage(i::Heap::kMakeHeapIterableMask);
-  int count = GetGlobalObjectsCount();
-#ifdef DEBUG
-  if (count != expected) CcTest::heap()->TracePathToGlobal();
-#endif
-  CHECK_EQ(expected, count);
-}
-
-
-TEST(DontLeakContextOnObserve) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  Local<Value> foo = v8_str("foo");
-  LocalContext context(CcTest::isolate());
-  context->SetSecurityToken(foo);
-  CompileRun("var obj = {};");
-  Local<Value> object = CompileRun("obj");
-  {
-    HandleScope scope(CcTest::isolate());
-    LocalContext context2(CcTest::isolate());
-    context2->SetSecurityToken(foo);
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              object)
-        .FromJust();
-    CompileRun("function observer() {};"
-               "Object.observe(obj, observer, ['foo', 'bar', 'baz']);"
-               "Object.unobserve(obj, observer);");
-  }
-
-  CcTest::isolate()->ContextDisposedNotification();
-  CheckSurvivingGlobalObjectsCount(0);
-}
-
-
-TEST(DontLeakContextOnGetNotifier) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  Local<Value> foo = v8_str("foo");
-  LocalContext context(CcTest::isolate());
-  context->SetSecurityToken(foo);
-  CompileRun("var obj = {};");
-  Local<Value> object = CompileRun("obj");
-  {
-    HandleScope scope(CcTest::isolate());
-    LocalContext context2(CcTest::isolate());
-    context2->SetSecurityToken(foo);
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              object)
-        .FromJust();
-    CompileRun("Object.getNotifier(obj);");
-  }
-
-  CcTest::isolate()->ContextDisposedNotification();
-  CheckSurvivingGlobalObjectsCount(0);
-}
-
-
-TEST(DontLeakContextOnNotifierPerformChange) {
-  i::FLAG_harmony_object_observe = true;
-  HandleScope scope(CcTest::isolate());
-  Local<Value> foo = v8_str("foo");
-  LocalContext context(CcTest::isolate());
-  context->SetSecurityToken(foo);
-  CompileRun("var obj = {};");
-  Local<Value> object = CompileRun("obj");
-  Local<Value> notifier = CompileRun("Object.getNotifier(obj)");
-  {
-    HandleScope scope(CcTest::isolate());
-    LocalContext context2(CcTest::isolate());
-    context2->SetSecurityToken(foo);
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-              object)
-        .FromJust();
-    context2->Global()
-        ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(),
-              v8_str("notifier"), notifier)
-        .FromJust();
-    CompileRun("var obj2 = {};"
-               "var notifier2 = Object.getNotifier(obj2);"
-               "notifier2.performChange.call("
-                   "notifier, 'foo', function(){})");
-  }
-
-  CcTest::isolate()->ContextDisposedNotification();
-  CheckSurvivingGlobalObjectsCount(0);
-}
-
-
-static void ObserverCallback(const FunctionCallbackInfo<Value>& args) {
-  *static_cast<int*>(Local<External>::Cast(args.Data())->Value()) =
-      Local<Array>::Cast(args[0])->Length();
-}
-
-
-TEST(ObjectObserveCallsCppFunction) {
-  i::FLAG_harmony_object_observe = true;
-  Isolate* isolate = CcTest::isolate();
-  HandleScope scope(isolate);
-  LocalContext context(isolate);
-  int numRecordsSent = 0;
-  Local<Function> observer =
-      Function::New(CcTest::isolate()->GetCurrentContext(), ObserverCallback,
-                    External::New(isolate, &numRecordsSent))
-          .ToLocalChecked();
-  context->Global()
-      ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("observer"),
-            observer)
-      .FromJust();
-  CompileRun(
-      "var obj = {};"
-      "Object.observe(obj, observer);"
-      "obj.foo = 1;"
-      "obj.bar = 2;");
-  CHECK_EQ(2, numRecordsSent);
-}
-
-
-TEST(ObjectObserveCallsFunctionTemplateInstance) {
-  i::FLAG_harmony_object_observe = true;
-  Isolate* isolate = CcTest::isolate();
-  HandleScope scope(isolate);
-  LocalContext context(isolate);
-  int numRecordsSent = 0;
-  Local<FunctionTemplate> tmpl = FunctionTemplate::New(
-      isolate, ObserverCallback, External::New(isolate, &numRecordsSent));
-  Local<Function> function =
-      tmpl->GetFunction(v8::Isolate::GetCurrent()->GetCurrentContext())
-          .ToLocalChecked();
-  context->Global()
-      ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("observer"),
-            function)
-      .FromJust();
-  CompileRun(
-      "var obj = {};"
-      "Object.observe(obj, observer);"
-      "obj.foo = 1;"
-      "obj.bar = 2;");
-  CHECK_EQ(2, numRecordsSent);
-}
-
-
-static void AccessorGetter(Local<Name> property,
-                           const PropertyCallbackInfo<Value>& info) {
-  info.GetReturnValue().Set(Integer::New(info.GetIsolate(), 42));
-}
-
-
-static void AccessorSetter(Local<Name> property, Local<Value> value,
-                           const PropertyCallbackInfo<void>& info) {
-  info.GetReturnValue().SetUndefined();
-}
-
-
-TEST(APIAccessorsShouldNotNotify) {
-  i::FLAG_harmony_object_observe = true;
-  Isolate* isolate = CcTest::isolate();
-  HandleScope handle_scope(isolate);
-  LocalContext context(isolate);
-  Local<Object> object = Object::New(isolate);
-  object->SetAccessor(v8::Isolate::GetCurrent()->GetCurrentContext(),
-                      v8_str("accessor"), &AccessorGetter, &AccessorSetter)
-      .FromJust();
-  context->Global()
-      ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-            object)
-      .FromJust();
-  CompileRun(
-      "var records = null;"
-      "Object.observe(obj, function(r) { records = r });"
-      "obj.accessor = 43;");
-  CHECK(CompileRun("records")->IsNull());
-  CompileRun("Object.defineProperty(obj, 'accessor', { value: 44 });");
-  CHECK(CompileRun("records")->IsNull());
-}
-
-
-namespace {
-
-int* global_use_counts = NULL;
-
-void MockUseCounterCallback(v8::Isolate* isolate,
-                            v8::Isolate::UseCounterFeature feature) {
-  ++global_use_counts[feature];
-}
-}
-
-
-TEST(UseCountObjectObserve) {
-  i::FLAG_harmony_object_observe = true;
-  i::Isolate* isolate = CcTest::i_isolate();
-  i::HandleScope scope(isolate);
-  LocalContext env;
-  int use_counts[v8::Isolate::kUseCounterFeatureCount] = {};
-  global_use_counts = use_counts;
-  CcTest::isolate()->SetUseCounterCallback(MockUseCounterCallback);
-  CompileRun(
-      "var obj = {};"
-      "Object.observe(obj, function(){})");
-  CHECK_EQ(1, use_counts[v8::Isolate::kObjectObserve]);
-  CompileRun(
-      "var obj2 = {};"
-      "Object.observe(obj2, function(){})");
-  // Only counts the first use of observe in a given context.
-  CHECK_EQ(1, use_counts[v8::Isolate::kObjectObserve]);
-  {
-    LocalContext env2;
-    CompileRun(
-        "var obj = {};"
-        "Object.observe(obj, function(){})");
-  }
-  // Counts different contexts separately.
-  CHECK_EQ(2, use_counts[v8::Isolate::kObjectObserve]);
-}
-
-
-TEST(UseCountObjectGetNotifier) {
-  i::FLAG_harmony_object_observe = true;
-  i::Isolate* isolate = CcTest::i_isolate();
-  i::HandleScope scope(isolate);
-  LocalContext env;
-  int use_counts[v8::Isolate::kUseCounterFeatureCount] = {};
-  global_use_counts = use_counts;
-  CcTest::isolate()->SetUseCounterCallback(MockUseCounterCallback);
-  CompileRun("var obj = {}");
-  CompileRun("Object.getNotifier(obj)");
-  CHECK_EQ(1, use_counts[v8::Isolate::kObjectObserve]);
-}
-
-static bool NamedAccessCheckAlwaysAllow(Local<v8::Context> accessing_context,
-                                        Local<v8::Object> accessed_object,
-                                        Local<v8::Value> data) {
-  return true;
-}
-
-
-TEST(DisallowObserveAccessCheckedObject) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  LocalContext env;
-  v8::Local<v8::ObjectTemplate> object_template =
-      v8::ObjectTemplate::New(isolate);
-  object_template->SetAccessCheckCallback(NamedAccessCheckAlwaysAllow);
-  Local<Object> new_instance =
-      object_template->NewInstance(
-                         v8::Isolate::GetCurrent()->GetCurrentContext())
-          .ToLocalChecked();
-  env->Global()
-      ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-            new_instance)
-      .FromJust();
-  v8::TryCatch try_catch(isolate);
-  CompileRun("Object.observe(obj, function(){})");
-  CHECK(try_catch.HasCaught());
-}
-
-
-TEST(DisallowGetNotifierAccessCheckedObject) {
-  i::FLAG_harmony_object_observe = true;
-  v8::Isolate* isolate = CcTest::isolate();
-  v8::HandleScope scope(isolate);
-  LocalContext env;
-  v8::Local<v8::ObjectTemplate> object_template =
-      v8::ObjectTemplate::New(isolate);
-  object_template->SetAccessCheckCallback(NamedAccessCheckAlwaysAllow);
-  Local<Object> new_instance =
-      object_template->NewInstance(
-                         v8::Isolate::GetCurrent()->GetCurrentContext())
-          .ToLocalChecked();
-  env->Global()
-      ->Set(v8::Isolate::GetCurrent()->GetCurrentContext(), v8_str("obj"),
-            new_instance)
-      .FromJust();
-  v8::TryCatch try_catch(isolate);
-  CompileRun("Object.getNotifier(obj)");
-  CHECK(try_catch.HasCaught());
-}
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
index ae278d8..36f7293 100644
--- a/test/cctest/test-parsing.cc
+++ b/test/cctest/test-parsing.cc
@@ -1070,7 +1070,6 @@
       i::Zone zone(CcTest::i_isolate()->allocator());
       i::ParseInfo info(&zone, script);
       i::Parser parser(&info);
-      parser.set_allow_harmony_sloppy(true);
       info.set_global();
       CHECK(parser.Parse(&info));
       CHECK(i::Rewriter::Rewrite(&info));
@@ -1122,13 +1121,11 @@
 
   i::ParseInfo info(handles.main_zone(), script);
   i::Parser parser(&info);
-  parser.set_allow_harmony_sloppy(true);
   info.set_global();
   info.set_lazy(false);
   info.set_allow_lazy_parsing(false);
   info.set_toplevel(true);
 
-  i::CompilationInfo compilation_info(&info);
   CHECK(i::Compiler::ParseAndAnalyze(&info));
 
   CHECK(info.scope()->declarations()->length() == 1);
@@ -1438,7 +1435,6 @@
     i::ParseInfo info(&zone, script);
     info.set_allow_lazy_parsing();
     i::Parser parser(&info);
-    parser.set_allow_harmony_sloppy(true);
     parser.Parse(&info);
     function = info.literal();
     CHECK_NOT_NULL(function);
@@ -1509,12 +1505,11 @@
 enum ParserFlag {
   kAllowLazy,
   kAllowNatives,
-  kAllowHarmonySloppy,
-  kAllowHarmonySloppyLet,
-  kAllowHarmonyNewTarget,
   kAllowHarmonyFunctionSent,
   kAllowHarmonyRestrictiveDeclarations,
-  kAllowHarmonyExponentiationOperator
+  kAllowHarmonyExponentiationOperator,
+  kAllowHarmonyForIn,
+  kAllowHarmonyAsyncAwait
 };
 
 enum ParserSyncTestResult {
@@ -1528,28 +1523,29 @@
                     i::EnumSet<ParserFlag> flags) {
   parser->set_allow_lazy(flags.Contains(kAllowLazy));
   parser->set_allow_natives(flags.Contains(kAllowNatives));
-  parser->set_allow_harmony_sloppy(flags.Contains(kAllowHarmonySloppy));
-  parser->set_allow_harmony_sloppy_let(flags.Contains(kAllowHarmonySloppyLet));
   parser->set_allow_harmony_function_sent(
       flags.Contains(kAllowHarmonyFunctionSent));
   parser->set_allow_harmony_restrictive_declarations(
       flags.Contains(kAllowHarmonyRestrictiveDeclarations));
   parser->set_allow_harmony_exponentiation_operator(
       flags.Contains(kAllowHarmonyExponentiationOperator));
+  parser->set_allow_harmony_for_in(flags.Contains(kAllowHarmonyForIn));
+  parser->set_allow_harmony_async_await(
+      flags.Contains(kAllowHarmonyAsyncAwait));
 }
 
 
 void TestParserSyncWithFlags(i::Handle<i::String> source,
                              i::EnumSet<ParserFlag> flags,
                              ParserSyncTestResult result,
-                             bool is_module = false) {
+                             bool is_module = false,
+                             bool test_preparser = true) {
   i::Isolate* isolate = CcTest::i_isolate();
   i::Factory* factory = isolate->factory();
 
   uintptr_t stack_limit = isolate->stack_guard()->real_climit();
   int preparser_materialized_literals = -1;
   int parser_materialized_literals = -2;
-  bool test_preparser = !is_module;
 
   // Preparse the data.
   i::CompleteParserRecorder log;
@@ -1563,8 +1559,8 @@
                            stack_limit);
     SetParserFlags(&preparser, flags);
     scanner.Initialize(&stream);
-    i::PreParser::PreParseResult result = preparser.PreParseProgram(
-        &preparser_materialized_literals);
+    i::PreParser::PreParseResult result =
+        preparser.PreParseProgram(&preparser_materialized_literals, is_module);
     CHECK_EQ(i::PreParser::kPreParseSuccess, result);
   }
   bool preparse_error = log.HasError();
@@ -1674,7 +1670,7 @@
                     size_t always_true_flags_length = 0,
                     const ParserFlag* always_false_flags = NULL,
                     size_t always_false_flags_length = 0,
-                    bool is_module = false) {
+                    bool is_module = false, bool test_preparser = true) {
   i::Handle<i::String> str =
       CcTest::i_isolate()->factory()->NewStringFromAsciiChecked(source);
   for (int bits = 0; bits < (1 << varying_flags_length); bits++) {
@@ -1691,7 +1687,7 @@
          ++flag_index) {
       flags.Remove(always_false_flags[flag_index]);
     }
-    TestParserSyncWithFlags(str, flags, result, is_module);
+    TestParserSyncWithFlags(str, flags, result, is_module, test_preparser);
   }
 }
 
@@ -1839,7 +1835,8 @@
                        const ParserFlag* always_true_flags = NULL,
                        int always_true_len = 0,
                        const ParserFlag* always_false_flags = NULL,
-                       int always_false_len = 0, bool is_module = false) {
+                       int always_false_len = 0, bool is_module = false,
+                       bool test_preparser = true) {
   v8::HandleScope handles(CcTest::isolate());
   v8::Local<v8::Context> context = v8::Context::New(CcTest::isolate());
   v8::Context::Scope context_scope(context);
@@ -1894,7 +1891,7 @@
       CHECK(length == kProgramSize);
       TestParserSync(program.start(), flags, flags_len, result,
                      always_true_flags, always_true_len, always_false_flags,
-                     always_false_len, is_module);
+                     always_false_len, is_module, test_preparser);
     }
   }
   delete[] generated_flags;
@@ -1908,10 +1905,11 @@
                              const ParserFlag* always_true_flags = NULL,
                              int always_true_len = 0,
                              const ParserFlag* always_false_flags = NULL,
-                             int always_false_len = 0) {
+                             int always_false_len = 0,
+                             bool test_preparser = true) {
   RunParserSyncTest(context_data, statement_data, result, flags, flags_len,
                     always_true_flags, always_true_len, always_false_flags,
-                    always_false_len, true);
+                    always_false_len, true, test_preparser);
 }
 
 
@@ -2017,25 +2015,28 @@
   RunParserSyncTest(context_data, statement_data, kSuccess);
 }
 
+#define FUTURE_STRICT_RESERVED_WORDS_NO_LET(V) \
+  V(implements)                                \
+  V(interface)                                 \
+  V(package)                                   \
+  V(private)                                   \
+  V(protected)                                 \
+  V(public)                                    \
+  V(static)                                    \
+  V(yield)
 
 #define FUTURE_STRICT_RESERVED_WORDS(V) \
-  V(implements)                         \
-  V(interface)                          \
   V(let)                                \
-  V(package)                            \
-  V(private)                            \
-  V(protected)                          \
-  V(public)                             \
-  V(static)                             \
-  V(yield)
+  FUTURE_STRICT_RESERVED_WORDS_NO_LET(V)
 
+#define LIMITED_FUTURE_STRICT_RESERVED_WORDS_NO_LET(V) \
+  V(implements)                                        \
+  V(static)                                            \
+  V(yield)
 
 #define LIMITED_FUTURE_STRICT_RESERVED_WORDS(V) \
-  V(implements)                                 \
   V(let)                                        \
-  V(static)                                     \
-  V(yield)
-
+  LIMITED_FUTURE_STRICT_RESERVED_WORDS_NO_LET(V)
 
 #define FUTURE_STRICT_RESERVED_STATEMENTS(NAME) \
   "var " #NAME ";",                             \
@@ -2051,26 +2052,53 @@
   "++" #NAME ";",                               \
   #NAME " ++;",
 
+// clang-format off
+#define FUTURE_STRICT_RESERVED_LEX_BINDINGS(NAME) \
+  "let " #NAME ";",                               \
+  "for (let " #NAME "; false; ) {}",              \
+  "for (let " #NAME " in {}) {}",                 \
+  "for (let " #NAME " of []) {}",                 \
+  "const " #NAME " = null;",                      \
+  "for (const " #NAME " = null; false; ) {}",     \
+  "for (const " #NAME " in {}) {}",               \
+  "for (const " #NAME " of []) {}",
+// clang-format on
 
 TEST(ErrorsFutureStrictReservedWords) {
   // Tests that both preparsing and parsing produce the right kind of errors for
   // using future strict reserved words as identifiers. Without the strict mode,
   // it's ok to use future strict reserved words as identifiers. With the strict
   // mode, it isn't.
-  const char* context_data[][2] = {
+  const char* strict_contexts[][2] = {
       {"function test_func() {\"use strict\"; ", "}"},
       {"() => { \"use strict\"; ", "}"},
       {NULL, NULL}};
 
+  // clang-format off
   const char* statement_data[] {
     LIMITED_FUTURE_STRICT_RESERVED_WORDS(FUTURE_STRICT_RESERVED_STATEMENTS)
+    LIMITED_FUTURE_STRICT_RESERVED_WORDS(FUTURE_STRICT_RESERVED_LEX_BINDINGS)
     NULL
   };
+  // clang-format on
 
-  RunParserSyncTest(context_data, statement_data, kError);
+  RunParserSyncTest(strict_contexts, statement_data, kError);
+
+  // From ES2015, 13.3.1.1 Static Semantics: Early Errors:
+  //
+  // > LexicalDeclaration : LetOrConst BindingList ;
+  // >
+  // > - It is a Syntax Error if the BoundNames of BindingList contains "let".
+  const char* non_strict_contexts[][2] = {{"", ""},
+                                          {"function test_func() {", "}"},
+                                          {"() => {", "}"},
+                                          {NULL, NULL}};
+  const char* invalid_statements[] = {FUTURE_STRICT_RESERVED_LEX_BINDINGS("let")
+                                          NULL};
+
+  RunParserSyncTest(non_strict_contexts, invalid_statements, kError);
 }
 
-
 #undef LIMITED_FUTURE_STRICT_RESERVED_WORDS
 
 
@@ -2082,10 +2110,13 @@
     { NULL, NULL }
   };
 
+  // clang-format off
   const char* statement_data[] = {
     FUTURE_STRICT_RESERVED_WORDS(FUTURE_STRICT_RESERVED_STATEMENTS)
+    FUTURE_STRICT_RESERVED_WORDS_NO_LET(FUTURE_STRICT_RESERVED_LEX_BINDINGS)
     NULL
   };
+  // clang-format on
 
   RunParserSyncTest(context_data, statement_data, kSuccess);
 }
@@ -2349,9 +2380,7 @@
   };
   // clang-format on
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, statement_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, statement_data, kSuccess);
 }
 
 
@@ -2407,6 +2436,10 @@
     "var {foo: yield 24} = {a: 42};",
     "[yield 24] = [42];",
     "({a: yield 24} = {a: 42});",
+    "for (yield 'x' in {});",
+    "for (yield 'x' of {});",
+    "for (yield 'x' in {} in {});",
+    "for (yield 'x' in {} of {});",
     "class C extends yield { }",
     NULL
   };
@@ -3949,11 +3982,7 @@
     NULL
   };
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, statement_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, statement_data, kSuccess);
 }
 
 
@@ -3980,9 +4009,7 @@
     NULL
   };
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, expression_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, expression_data, kError);
 }
 
 
@@ -3996,9 +4023,7 @@
     NULL
   };
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, success_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, success_data, kSuccess);
 
   const char* error_data[] = {
     "class C { constructor() { super(); } }",
@@ -4020,8 +4045,7 @@
     NULL
   };
 
-  RunParserSyncTest(context_data, error_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, error_data, kError);
 }
 
 
@@ -4046,9 +4070,7 @@
     NULL
   };
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, expression_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, expression_data, kSuccess);
 }
 
 
@@ -4079,9 +4101,7 @@
     NULL
   };
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, statement_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, statement_data, kError);
 }
 
 
@@ -4119,11 +4139,7 @@
     NULL
   };
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, statement_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, statement_data, kError);
 }
 
 
@@ -4336,9 +4352,7 @@
     "class name extends class base {} {}",
     NULL};
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, class_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_data, kSuccess);
 }
 
 
@@ -4412,11 +4426,7 @@
     NULL};
   // clang-format on
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_body_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_body_data, kSuccess);
 }
 
 
@@ -4469,11 +4479,7 @@
     "finally",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, name_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, name_data, kSuccess);
 }
 
 
@@ -4499,11 +4505,7 @@
     "class { m() {}, n() {} }",  // No commas allowed.
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_data, kError);
 }
 
 
@@ -4535,11 +4537,7 @@
     "class name { *static m() {} }",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_data, kError);
 }
 
 
@@ -4564,11 +4562,7 @@
     "yield",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_name, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_name, kError);
 }
 
 
@@ -4596,11 +4590,7 @@
     "yield",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_name, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_name, kError);
 }
 
 
@@ -4623,11 +4613,7 @@
     "static *'prot\\u006ftype'() {}",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_body_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_body_data, kError);
 }
 
 
@@ -4649,11 +4635,7 @@
     "*'c\\u006fnstructor'() {}",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_body_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_body_data, kError);
 }
 
 
@@ -4670,11 +4652,7 @@
     "static *constructor() {}",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_body_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_body_data, kSuccess);
 }
 
 
@@ -4687,11 +4665,7 @@
     "constructor() {}; constructor() {}",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_body_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_body_data, kError);
 }
 
 
@@ -4708,11 +4682,7 @@
     "get m() {}; set m(_) {}; get m() {}; set m(_) {};",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_body_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_body_data, kSuccess);
 }
 
 
@@ -4727,11 +4697,7 @@
     "class C { *method() { with ({}) {} } }",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy
-  };
-  RunParserSyncTest(context_data, class_body_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, class_body_data, kError);
 }
 
 
@@ -4869,10 +4835,7 @@
                         "for(let x in {}, {}) {}", "for(const x in {}, {}) {}",
                         NULL};
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
-                                            kAllowHarmonySloppyLet};
-  RunParserSyncTest(context_data, data, kSuccess, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -4980,9 +4943,7 @@
       "for (const i, j = 1 in {}) {}",
       "for (const i, j = void 0 in [1, 2, 3]) {}",
       NULL};
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, data, kError, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -5009,9 +4970,7 @@
       "for (const i, j = 1 of {}) {}",
       "for (const i, j = void 0 of [1, 2, 3]) {}",
       NULL};
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, data, kError, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -5026,9 +4985,7 @@
       "for (var in {}) {}",
       "for (const in {}) {}",
       NULL};
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, data, kError, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -5043,9 +5000,7 @@
       "for (var of [1, 2, 3]) {}",
       "for (const of [1, 2, 3]) {}",
       NULL};
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, data, kError, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -5059,10 +5014,7 @@
       "for(x of 'foo' in {}) {}", "for(var x of 'foo' in {}) {}",
       "for(let x of 'foo' in {}) {}", "for(const x of 'foo' in {}) {}", NULL};
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
-                                            kAllowHarmonySloppyLet};
-  RunParserSyncTest(context_data, data, kSuccess, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -5073,10 +5025,7 @@
                         "for(let x of yield) {}", "for(const x of yield) {}",
                         NULL};
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
-                                            kAllowHarmonySloppyLet};
-  RunParserSyncTest(context_data, data, kSuccess, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -5091,10 +5040,7 @@
                         "function* g() { for(let x of yield) {} }",
                         "function* g() { for(const x of yield) {} }", NULL};
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
-                                            kAllowHarmonySloppyLet};
-  RunParserSyncTest(context_data, data, kSuccess, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -5112,10 +5058,7 @@
       "for(x of { y = 23 }) {}", "for(var x of { y = 23 }) {}",
       "for(let x of { y = 23 }) {}", "for(const x of { y = 23 }) {}", NULL};
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
-                                            kAllowHarmonySloppyLet};
-  RunParserSyncTest(context_data, data, kError, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -5205,7 +5148,7 @@
       "`foo${\r a}`",
       "`foo${'a' in a}`",
       NULL};
-  RunParserSyncTest(context_data, data, kSuccess, NULL, 0, NULL, 0);
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -5240,7 +5183,7 @@
       "tag`foo${\r a}`",
       "tag`foo${'a' in a}`",
       NULL};
-  RunParserSyncTest(context_data, data, kSuccess, NULL, 0, NULL, 0);
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -5267,7 +5210,7 @@
     NULL
   };
 
-  RunParserSyncTest(context_data, data, kSuccess, NULL, 0, NULL, 0);
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -5301,7 +5244,7 @@
       "`foo${fn(}`",
       "`foo${1 if}`",
       NULL};
-  RunParserSyncTest(context_data, data, kError, NULL, 0, NULL, 0);
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -5321,7 +5264,7 @@
       "`hello${1}\\x\n${2}`",
       NULL};
 
-  RunParserSyncTest(context_data, data, kError, NULL, 0, NULL, 0);
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -5396,13 +5339,12 @@
       {nullptr, nullptr}};
   const char* data[] = {"...a", "...arguments", "...eval", nullptr};
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, data, kError, nullptr, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
 TEST(RestParametersEvalArguments) {
+  // clang-format off
   const char* strict_context_data[][2] =
       {{"'use strict';(function(",
         "){ return;})(1, [], /regexp/, 'str',function(){});"},
@@ -5416,8 +5358,10 @@
       "...eval",
       "eval, ...args",
       "...arguments",
-      "arguments, ...args",
+      // See https://bugs.chromium.org/p/v8/issues/detail?id=4577
+      // "arguments, ...args",
       NULL};
+  // clang-format on
 
   // Fail in strict mode
   RunParserSyncTest(strict_context_data, data, kError);
@@ -5484,7 +5428,7 @@
                         "var [...x,] = [1,2,3];", "var [...x, y] = [1,2,3];",
                         "var {...x} = [1,2,3];",  "var { x } = {x: ...[1,2,3]}",
                         NULL};
-  RunParserSyncTest(context_data, data, kError, NULL, 0, NULL, 0);
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -5494,28 +5438,12 @@
       {"function f() {", "}"},
       {"{", "}"},
       {NULL, NULL}};
-  const char* bad_data[] = {
-    "let x = 1;",
-    "for(let x = 1;;){}",
-    "for(let x of []){}",
-    "for(let x in []){}",
-    "class C {}",
-    "class C extends D {}",
-    "(class {})",
-    "(class extends D {})",
-    "(class C {})",
-    "(class C extends D {})",
-    NULL};
-  static const ParserFlag always_false_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, bad_data, kError, NULL, 0, NULL, 0,
-                    always_false_flags, arraysize(always_false_flags));
 
   const char* good_data[] = {
     "let = 1;",
     "for(let = 1;;){}",
     NULL};
-  RunParserSyncTest(context_data, good_data, kSuccess, NULL, 0, NULL, 0,
-                    always_false_flags, arraysize(always_false_flags));
+  RunParserSyncTest(context_data, good_data, kSuccess);
 }
 
 
@@ -5535,11 +5463,7 @@
     "var name",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy,
-  };
-  RunParserSyncTest(context_data, error_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, error_data, kError);
 
   const char* name_data[] = {
     "1",
@@ -5550,8 +5474,7 @@
     "{}",
     NULL};
 
-  RunParserSyncTest(context_data, name_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, name_data, kSuccess);
 }
 
 
@@ -5563,11 +5486,7 @@
     "[1], a: 1",
     NULL};
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonySloppy,
-  };
-  RunParserSyncTest(context_data, error_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(context_data, error_data, kError);
 }
 
 
@@ -5600,6 +5519,8 @@
       "export { static } from 'm.js'",
       "export { let } from 'm.js'",
       "var a; export { a as b, a as c };",
+      "var a; export { a as await };",
+      "var a; export { a as enum };",
 
       "import 'somemodule.js';",
       "import { } from 'm.js';",
@@ -5725,6 +5646,8 @@
       "import { y as yield } from 'm.js'",
       "import { s as static } from 'm.js'",
       "import { l as let } from 'm.js'",
+      "import { a as await } from 'm.js';",
+      "import { a as enum } from 'm.js';",
       "import { x }, def from 'm.js';",
       "import def, def2 from 'm.js';",
       "import * as x, def from 'm.js';",
@@ -5757,6 +5680,179 @@
   }
 }
 
+TEST(ModuleTopLevelFunctionDecl) {
+  // clang-format off
+  const char* kErrorSources[] = {
+      "function f() {} function f() {}",
+      "var f; function f() {}",
+      "function f() {} var f;",
+      "function* f() {} function* f() {}",
+      "var f; function* f() {}",
+      "function* f() {} var f;",
+      "function f() {} function* f() {}",
+      "function* f() {} function f() {}",
+  };
+  // clang-format on
+
+  i::Isolate* isolate = CcTest::i_isolate();
+  i::Factory* factory = isolate->factory();
+
+  v8::HandleScope handles(CcTest::isolate());
+  v8::Local<v8::Context> context = v8::Context::New(CcTest::isolate());
+  v8::Context::Scope context_scope(context);
+
+  isolate->stack_guard()->SetStackLimit(i::GetCurrentStackPosition() -
+                                        128 * 1024);
+
+  for (unsigned i = 0; i < arraysize(kErrorSources); ++i) {
+    i::Handle<i::String> source =
+        factory->NewStringFromAsciiChecked(kErrorSources[i]);
+
+    i::Handle<i::Script> script = factory->NewScript(source);
+    i::Zone zone(CcTest::i_isolate()->allocator());
+    i::ParseInfo info(&zone, script);
+    i::Parser parser(&info);
+    info.set_module();
+    CHECK(!parser.Parse(&info));
+  }
+}
+
+TEST(ModuleAwaitReserved) {
+  // clang-format off
+  const char* kErrorSources[] = {
+      "await;",
+      "await: ;",
+      "var await;",
+      "var [await] = [];",
+      "var { await } = {};",
+      "var { x: await } = {};",
+      "{ var await; }",
+      "let await;",
+      "let [await] = [];",
+      "let { await } = {};",
+      "let { x: await } = {};",
+      "{ let await; }",
+      "const await = null;",
+      "const [await] = [];",
+      "const { await } = {};",
+      "const { x: await } = {};",
+      "{ const await = null; }",
+      "function await() {}",
+      "function f(await) {}",
+      "function* await() {}",
+      "function* g(await) {}",
+      "(function await() {});",
+      "(function (await) {});",
+      "(function* await() {});",
+      "(function* (await) {});",
+      "(await) => {};",
+      "await => {};",
+      "class await {}",
+      "class C { constructor(await) {} }",
+      "class C { m(await) {} }",
+      "class C { static m(await) {} }",
+      "class C { *m(await) {} }",
+      "class C { static *m(await) {} }",
+      "(class await {})",
+      "(class { constructor(await) {} });",
+      "(class { m(await) {} });",
+      "(class { static m(await) {} });",
+      "(class { *m(await) {} });",
+      "(class { static *m(await) {} });",
+      "({ m(await) {} });",
+      "({ *m(await) {} });",
+      "({ set p(await) {} });",
+      "try {} catch (await) {}",
+      "try {} catch (await) {} finally {}",
+      NULL
+  };
+  // clang-format on
+  const char* context_data[][2] = {{"", ""}, {NULL, NULL}};
+
+  RunModuleParserSyncTest(context_data, kErrorSources, kError);
+}
+
+TEST(ModuleAwaitReservedPreParse) {
+  const char* context_data[][2] = {{"", ""}, {NULL, NULL}};
+  const char* error_data[] = {"function f() { var await = 0; }", NULL};
+
+  RunModuleParserSyncTest(context_data, error_data, kError);
+}
+
+TEST(ModuleAwaitPermitted) {
+  // clang-format off
+  const char* kValidSources[] = {
+    "({}).await;",
+    "({ await: null });",
+    "({ await() {} });",
+    "({ get await() {} });",
+    "({ set await(x) {} });",
+    "(class { await() {} });",
+    "(class { static await() {} });",
+    "(class { *await() {} });",
+    "(class { static *await() {} });",
+    NULL
+  };
+  // clang-format on
+  const char* context_data[][2] = {{"", ""}, {NULL, NULL}};
+
+  RunModuleParserSyncTest(context_data, kValidSources, kSuccess);
+}
+
+TEST(EnumReserved) {
+  // clang-format off
+  const char* kErrorSources[] = {
+      "enum;",
+      "enum: ;",
+      "var enum;",
+      "var [enum] = [];",
+      "var { enum } = {};",
+      "var { x: enum } = {};",
+      "{ var enum; }",
+      "let enum;",
+      "let [enum] = [];",
+      "let { enum } = {};",
+      "let { x: enum } = {};",
+      "{ let enum; }",
+      "const enum = null;",
+      "const [enum] = [];",
+      "const { enum } = {};",
+      "const { x: enum } = {};",
+      "{ const enum = null; }",
+      "function enum() {}",
+      "function f(enum) {}",
+      "function* enum() {}",
+      "function* g(enum) {}",
+      "(function enum() {});",
+      "(function (enum) {});",
+      "(function* enum() {});",
+      "(function* (enum) {});",
+      "(enum) => {};",
+      "enum => {};",
+      "class enum {}",
+      "class C { constructor(enum) {} }",
+      "class C { m(enum) {} }",
+      "class C { static m(enum) {} }",
+      "class C { *m(enum) {} }",
+      "class C { static *m(enum) {} }",
+      "(class enum {})",
+      "(class { constructor(enum) {} });",
+      "(class { m(enum) {} });",
+      "(class { static m(enum) {} });",
+      "(class { *m(enum) {} });",
+      "(class { static *m(enum) {} });",
+      "({ m(enum) {} });",
+      "({ *m(enum) {} });",
+      "({ set p(enum) {} });",
+      "try {} catch (enum) {}",
+      "try {} catch (enum) {} finally {}",
+      NULL
+  };
+  // clang-format on
+  const char* context_data[][2] = {{"", ""}, {NULL, NULL}};
+
+  RunModuleParserSyncTest(context_data, kErrorSources, kError);
+}
 
 TEST(ModuleParsingInternals) {
   i::Isolate* isolate = CcTest::i_isolate();
@@ -6213,9 +6309,7 @@
       "[ a ]",
       NULL};
     // clang-format on
-    static const ParserFlag always_flags[] = {kAllowHarmonySloppyLet};
-    RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
-                      arraysize(always_flags));
+    RunParserSyncTest(context_data, data, kError);
   }
 }
 
@@ -6684,6 +6778,9 @@
     // Arrow function within generator has the same rules.
     {"'use strict'; (function *g() { (", ") => {} });"},
     {"(function *g() { (", ") => {} });"},
+    // And similarly for arrow functions in the parameter list.
+    {"'use strict'; (function *g(z = (", ") => {}) { });"},
+    {"(function *g(z = (", ") => {}) { });"},
     {NULL, NULL}
   };
 
@@ -6819,16 +6916,10 @@
     NULL
   };
 
-  static const ParserFlag always_flags[] = {
-    kAllowHarmonyNewTarget,
-    kAllowHarmonySloppy,
-  };
   // clang-format on
 
-  RunParserSyncTest(good_context_data, data, kSuccess, NULL, 0, always_flags,
-                    arraysize(always_flags));
-  RunParserSyncTest(bad_context_data, data, kError, NULL, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(good_context_data, data, kSuccess);
+  RunParserSyncTest(bad_context_data, data, kError);
 }
 
 
@@ -6848,9 +6939,7 @@
     NULL
   };
   // clang-format on
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -6873,10 +6962,7 @@
   };
   // clang-format on
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
-                                            kAllowHarmonySloppyLet};
-  RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kSuccess);
 }
 
 
@@ -6922,9 +7008,7 @@
       "{ initializedBindingPattern } = { initializedBindingPattern: true }",
       NULL};
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(context_data, data, kError, NULL, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kError);
 }
 
 
@@ -6952,10 +7036,7 @@
   };
   // clang-format on
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy,
-                                            kAllowHarmonySloppyLet};
-  RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
-                    arraysize(always_flags));
+  RunParserSyncTest(context_data, data, kSuccess);
 
   // Some things should be rejected even in sloppy mode
   // This addresses BUG(v8:4403).
@@ -6989,10 +7070,7 @@
   };
   // clang-format on
 
-  static const ParserFlag fail_flags[] = {kAllowHarmonySloppy,
-                                          kAllowHarmonySloppyLet};
-  RunParserSyncTest(context_data, fail_data, kError, NULL, 0, fail_flags,
-                    arraysize(fail_flags));
+  RunParserSyncTest(context_data, fail_data, kError);
 }
 
 
@@ -7092,13 +7170,9 @@
   };
   // clang-format on
 
-  static const ParserFlag always_flags[] = {kAllowHarmonySloppy};
-  RunParserSyncTest(sloppy_context_data, fail_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
-  RunParserSyncTest(strict_context_data, fail_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
-  RunModuleParserSyncTest(sloppy_context_data, fail_data, kError, NULL, 0,
-                          always_flags, arraysize(always_flags));
+  RunParserSyncTest(sloppy_context_data, fail_data, kError);
+  RunParserSyncTest(strict_context_data, fail_data, kError);
+  RunModuleParserSyncTest(sloppy_context_data, fail_data, kError);
 
   // clang-format off
   const char* let_data[] = {
@@ -7109,15 +7183,8 @@
   };
   // clang-format on
 
-  RunParserSyncTest(sloppy_context_data, let_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
-  RunParserSyncTest(strict_context_data, let_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
-
-  static const ParserFlag sloppy_let_flags[] = {kAllowHarmonySloppy,
-                                                kAllowHarmonySloppyLet};
-  RunParserSyncTest(sloppy_context_data, let_data, kSuccess, NULL, 0,
-                    sloppy_let_flags, arraysize(sloppy_let_flags));
+  RunParserSyncTest(sloppy_context_data, let_data, kSuccess);
+  RunParserSyncTest(strict_context_data, let_data, kError);
 
   // Non-errors in sloppy mode
   const char* valid_data[] = {"(\\u0069mplements = 1);",
@@ -7142,12 +7209,9 @@
                               "var st\\u0061tic = 1;",
                               "var { st\\u0061tic } = {};",
                               NULL};
-  RunParserSyncTest(sloppy_context_data, valid_data, kSuccess, NULL, 0,
-                    always_flags, arraysize(always_flags));
-  RunParserSyncTest(strict_context_data, valid_data, kError, NULL, 0,
-                    always_flags, arraysize(always_flags));
-  RunModuleParserSyncTest(strict_context_data, valid_data, kError, NULL, 0,
-                          always_flags, arraysize(always_flags));
+  RunParserSyncTest(sloppy_context_data, valid_data, kSuccess);
+  RunParserSyncTest(strict_context_data, valid_data, kError);
+  RunModuleParserSyncTest(strict_context_data, valid_data, kError);
 }
 
 
@@ -7167,7 +7231,7 @@
   };
   // clang-format on
 
-  RunParserSyncTest(context_data, error_data, kError, NULL, 0, NULL, 0);
+  RunParserSyncTest(context_data, error_data, kError);
 }
 
 
@@ -7196,7 +7260,7 @@
   };
   // clang-format on
 
-  RunParserSyncTest(context_data, error_data, kError, NULL, 0, NULL, 0);
+  RunParserSyncTest(context_data, error_data, kError);
 }
 
 
@@ -7281,6 +7345,13 @@
     "with ({}) label: function f() { };",
     "if (true) label: function f() {}",
     "if (true) {} else label: function f() {}",
+    "if (true) function* f() { }",
+    "label: function* f() { }",
+    // TODO(littledan, v8:4806): Ban duplicate generator declarations in
+    // a block, maybe by tracking whether a Variable is a generator declaration
+    // "{ function* f() {} function* f() {} }",
+    // "{ function f() {} function* f() {} }",
+    // "{ function* f() {} function f() {} }",
     NULL
   };
   // Valid only in sloppy mode, with or without
@@ -7412,3 +7483,251 @@
   RunParserSyncTest(context_data, error_data, kError, NULL, 0, always_flags,
                     arraysize(always_flags));
 }
+
+TEST(AsyncAwait) {
+  // clang-format off
+  const char* context_data[][2] = {
+    { "'use strict';", "" },
+    { "", "" },
+    { NULL, NULL }
+  };
+
+  const char* data[] = {
+    "var asyncFn = async function() { await 1; };",
+    "var asyncFn = async function withName() { await 1; };",
+    "var asyncFn = async () => await 'test';",
+    "var asyncFn = async x => await x + 'test';",
+    "async function asyncFn() { await 1; }",
+    "var O = { async method() { await 1; } }",
+    "var O = { async ['meth' + 'od']() { await 1; } }",
+    "var O = { async 'method'() { await 1; } }",
+    "var O = { async 0() { await 1; } }",
+    "async function await() {}",
+    NULL
+  };
+  // clang-format on
+
+  static const ParserFlag always_flags[] = {kAllowHarmonyAsyncAwait};
+  RunParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
+                    arraysize(always_flags));
+
+  // clang-format off
+  const char* async_body_context_data[][2] = {
+    { "async function f() {", "}" },
+    { "var f = async function() {", "}" },
+    { "var f = async() => {", "}" },
+    { "var O = { async method() {", "} }" },
+    { "'use strict'; async function f() {", "}" },
+    { "'use strict'; var f = async function() {", "}" },
+    { "'use strict'; var f = async() => {", "}" },
+    { "'use strict'; var O = { async method() {", "} }" },
+    { NULL, NULL }
+  };
+
+  const char* body_context_data[][2] = {
+    { "function f() {", "}" },
+    { "function* g() {", "}" },
+    { "var f = function() {", "}" },
+    { "var g = function*() {", "}" },
+    { "var O = { method() {", "} }" },
+    { "var O = { *method() {", "} }" },
+    { "var f = () => {", "}" },
+    { "'use strict'; function f() {", "}" },
+    { "'use strict'; function* g() {", "}" },
+    { "'use strict'; var f = function() {", "}" },
+    { "'use strict'; var g = function*() {", "}" },
+    { "'use strict'; var O = { method() {", "} }" },
+    { "'use strict'; var O = { *method() {", "} }" },
+    { "'use strict'; var f = () => {", "}" },
+    { NULL, NULL }
+  };
+
+  const char* body_data[] = {
+    "var async = 1; return async;",
+    "let async = 1; return async;",
+    "const async = 1; return async;",
+    "function async() {} return async();",
+    "var async = async => async; return async();",
+    "function foo() { var await = 1; return await; }",
+    "function foo(await) { return await; }",
+    "function* foo() { var await = 1; return await; }",
+    "function* foo(await) { return await; }",
+    "var f = (await) => await;",
+    "var f = () => { var await = 1; return await; }",
+    "var O = { method() { var await = 1; return await; } };",
+    "var O = { method(await) { return await; } };",
+    "var O = { *method() { var await = 1; return await; } };",
+    "var O = { *method(await) { return await; } };",
+
+    "(function await() {})",
+    NULL
+  };
+  // clang-format on
+
+  RunParserSyncTest(async_body_context_data, body_data, kSuccess, NULL, 0,
+                    always_flags, arraysize(always_flags));
+  RunParserSyncTest(body_context_data, body_data, kSuccess, NULL, 0,
+                    always_flags, arraysize(always_flags));
+}
+
+TEST(AsyncAwaitErrors) {
+  // clang-format off
+  const char* context_data[][2] = {
+    { "'use strict';", "" },
+    { "", "" },
+    { NULL, NULL }
+  };
+
+  const char* strict_context_data[][2] = {
+    { "'use strict';", "" },
+    { NULL, NULL }
+  };
+
+  const char* error_data[] = {
+    "var asyncFn = async function() { var await = 1; };",
+    "var asyncFn = async function() { var { await } = 1; };",
+    "var asyncFn = async function() { var [ await ] = 1; };",
+    "var asyncFn = async function await() {};",
+    "var asyncFn = async () => var await = 'test';",
+    "var asyncFn = async await => await + 'test';",
+    "var asyncFn = async function(await) {};",
+    "var asyncFn = async function() { return async (await) => {}; }",
+    "var asyncFn = async (await) => 'test';",
+    "var asyncFn = async x => { var await = 1; }",
+    "var asyncFn = async x => { var { await } = 1; }",
+    "var asyncFn = async x => { var [ await ] = 1; }",
+    "async function f(await) {}",
+    "async function f() { var await = 1; }",
+    "async function f() { var { await } = 1; }",
+    "async function f() { var [ await ] = 1; }",
+
+    "var O = { async method(a, a) {} }",
+    "var O = { async ['meth' + 'od'](a, a) {} }",
+    "var O = { async 'method'(a, a) {} }",
+    "var O = { async 0(a, a) {} }",
+
+    "async function f() { var O = { async [await](a, a) {} } }",
+
+    "var asyncFn = async function() { await; }",
+    "async function f() { await; }",
+    "var O = { async method() { await; } };",
+    "var f = async() => await;",
+    "var f = async() => { await; };",
+
+    "var asyncFn = async function*() {}",
+    "async function* f() {}",
+    "var O = { *async method() {} };",
+    "var O = { async *method() {} };",
+    "var O = { async method*() {} };",
+
+    "var asyncFn = async function(x = await 1) { return x; }",
+    "async function f(x = await 1) { return x; }",
+    "var f = async(x = await 1) => x;",
+    "var O = { async method(x = await 1) { return x; } };",
+
+    "var f = async(x = await) => 1;",
+
+    "class C { async constructor() {} }",
+    "class C {}; class C2 extends C { async constructor() {} }",
+    "class C { static async prototype() {} }",
+    "class C {}; class C2 extends C { static async prototype() {} }",
+
+    "var f = async() => ((async(x = await 1) => x)();",
+
+    "var asyncFn = async function() { function await() {} }",
+    "var asyncFn = async() => { function await() {} }",
+    "var O = { async method() { function await() {} } }",
+    "async function foo() { function await() {} }",
+
+    NULL
+  };
+
+  const char* strict_error_data[] = {
+    "var O = { async method(eval) {} }",
+    "var O = { async ['meth' + 'od'](eval) {} }",
+    "var O = { async 'method'(eval) {} }",
+    "var O = { async 0(eval) {} }",
+
+    "var O = { async method(arguments) {} }",
+    "var O = { async ['meth' + 'od'](arguments) {} }",
+    "var O = { async 'method'(arguments) {} }",
+    "var O = { async 0(arguments) {} }",
+
+    "var O = { async method(dupe, dupe) {} }",
+
+    // TODO(caitp): preparser needs to report duplicate parameter errors, too.
+    // "var f = async(dupe, dupe) => {}",
+
+    NULL
+  };
+  // clang-format on
+
+  static const ParserFlag always_flags[] = {kAllowHarmonyAsyncAwait};
+  RunParserSyncTest(context_data, error_data, kError, NULL, 0, always_flags,
+                    arraysize(always_flags));
+  RunParserSyncTest(strict_context_data, strict_error_data, kError, NULL, 0,
+                    always_flags, arraysize(always_flags));
+}
+
+TEST(AsyncAwaitModule) {
+  // clang-format off
+  const char* context_data[][2] = {
+    { "", "" },
+    { NULL, NULL }
+  };
+
+  const char* data[] = {
+    "export default async function() { await 1; }",
+    "export default async function async() { await 1; }",
+    "export async function async() { await 1; }",
+    NULL
+  };
+  // clang-format on
+
+  static const ParserFlag always_flags[] = {kAllowHarmonyAsyncAwait};
+  RunModuleParserSyncTest(context_data, data, kSuccess, NULL, 0, always_flags,
+                          arraysize(always_flags), NULL, 0, false);
+}
+
+TEST(AsyncAwaitModuleErrors) {
+  // clang-format off
+  const char* context_data[][2] = {
+    { "", "" },
+    { NULL, NULL }
+  };
+
+  const char* error_data[] = {
+    "export default (async function await() {})",
+    "export default async function await() {}",
+    "export async function await() {}",
+    "export async function() {}",
+    "export async",
+    NULL
+  };
+  // clang-format on
+
+  static const ParserFlag always_flags[] = {kAllowHarmonyAsyncAwait};
+  RunModuleParserSyncTest(context_data, error_data, kError, NULL, 0,
+                          always_flags, arraysize(always_flags), NULL, 0,
+                          false);
+}
+
+TEST(RestrictiveForInErrors) {
+  // clang-format off
+  const char* context_data[][2] = {
+    { "'use strict'", "" },
+    { "", "" },
+    { NULL, NULL }
+  };
+  const char* error_data[] = {
+    "for (var x = 0 in {});",
+    "for (const x = 0 in {});",
+    "for (let x = 0 in {});",
+    NULL
+  };
+  // clang-format on
+
+  static const ParserFlag always_flags[] = {kAllowHarmonyForIn};
+  RunParserSyncTest(context_data, error_data, kError, nullptr, 0, always_flags,
+                    arraysize(always_flags));
+}
diff --git a/test/cctest/test-platform.cc b/test/cctest/test-platform.cc
index 6012fd4..48eda3d 100644
--- a/test/cctest/test-platform.cc
+++ b/test/cctest/test-platform.cc
@@ -25,9 +25,9 @@
 #elif V8_HOST_ARCH_MIPS64
   __asm__ __volatile__("sd $sp, %0" : "=g"(sp_addr));
 #elif defined(__s390x__) || defined(_ARCH_S390X)
-  __asm__ __volatile__("stg 15, %0" : "=g"(sp_addr));
+  __asm__ __volatile__("stg 15, %0" : "=m"(sp_addr));
 #elif defined(__s390__) || defined(_ARCH_S390)
-  __asm__ __volatile__("st 15, %0" : "=g"(sp_addr));
+  __asm__ __volatile__("st 15, %0" : "=m"(sp_addr));
 #elif defined(__PPC64__) || defined(_ARCH_PPC64)
   __asm__ __volatile__("std 1, %0" : "=g"(sp_addr));
 #elif defined(__PPC__) || defined(_ARCH_PPC)
diff --git a/test/cctest/test-profile-generator.cc b/test/cctest/test-profile-generator.cc
index 48633f5..71c5ba8 100644
--- a/test/cctest/test-profile-generator.cc
+++ b/test/cctest/test-profile-generator.cc
@@ -698,12 +698,7 @@
                         "  debugger;\n"
                         "  startProfiling();\n"
                         "}\n"
-                        "function TryFinally() {\n"
-                        "  try {\n"
-                        "    Debugger();\n"
-                        "  } finally { };\n"
-                        "}\n"
-                        "TryFinally();\n"
+                        "Debugger();\n"
                         "stopProfiling();"));
   script->Run(v8::Isolate::GetCurrent()->GetCurrentContext()).ToLocalChecked();
   CHECK_EQ(1, iprofiler->GetProfilesCount());
@@ -715,15 +710,10 @@
   // The tree should look like this:
   //  (root)
   //   ""
-  //     kTryFinallyStatement
-  //       kDebuggerStatement
+  //     kDebuggerStatement
   current = PickChild(current, "");
   CHECK(const_cast<v8::CpuProfileNode*>(current));
 
-  current = PickChild(current, "TryFinally");
-  CHECK(const_cast<v8::CpuProfileNode*>(current));
-  CHECK(!strcmp("TryFinallyStatement", current->GetBailoutReason()));
-
   current = PickChild(current, "Debugger");
   CHECK(const_cast<v8::CpuProfileNode*>(current));
   CHECK(!strcmp("DebuggerStatement", current->GetBailoutReason()));
diff --git a/test/cctest/test-run-wasm-relocation-arm.cc b/test/cctest/test-run-wasm-relocation-arm.cc
index adfeb28..b2e6ec3 100644
--- a/test/cctest/test-run-wasm-relocation-arm.cc
+++ b/test/cctest/test-run-wasm-relocation-arm.cc
@@ -23,8 +23,7 @@
 
 static int32_t DummyStaticFunction(Object* result) { return 1; }
 
-TEST(WasmRelocationArm) {
-  CcTest::InitializeVM();
+TEST(WasmRelocationArmMemoryReference) {
   Isolate* isolate = CcTest::i_isolate();
   HandleScope scope(isolate);
   v8::internal::byte buffer[4096];
@@ -77,4 +76,59 @@
 #endif
 }
 
+TEST(WasmRelocationArmMemorySizeReference) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+  v8::internal::byte buffer[4096];
+  DummyStaticFunction(NULL);
+  int32_t size = 512;
+  Label fail;
+
+  Assembler assm(isolate, buffer, sizeof buffer);
+
+  __ mov(r0, Operand(size, RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+  __ cmp(r0, Operand(size, RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+  __ b(ne, &fail);
+  __ mov(pc, Operand(lr));
+  __ bind(&fail);
+  __ mov(r0, Operand(0xdeadbeef));
+  __ mov(pc, Operand(lr));
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+
+  CSignature0<int32_t> csig;
+  CodeRunner<int32_t> runnable(isolate, code, &csig);
+  int32_t ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef DEBUG
+  OFStream os(stdout);
+  code->Print(os);
+  ::printf("f() = %d\n\n", ret_value);
+#endif
+  size_t diff = 512;
+
+  int mode_mask = (1 << RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+  for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
+    RelocInfo::Mode mode = it.rinfo()->rmode();
+    if (RelocInfo::IsWasmMemorySizeReference(mode)) {
+      it.rinfo()->update_wasm_memory_reference(
+          reinterpret_cast<Address>(1234), reinterpret_cast<Address>(1234),
+          it.rinfo()->wasm_memory_size_reference(),
+          it.rinfo()->wasm_memory_size_reference() + diff, SKIP_ICACHE_FLUSH);
+    }
+  }
+
+  ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef DEBUG
+  code->Print(os);
+  ::printf("f() = %d\n\n", ret_value);
+#endif
+}
 #undef __
diff --git a/test/cctest/test-run-wasm-relocation-arm64.cc b/test/cctest/test-run-wasm-relocation-arm64.cc
index 48f9e85..3b49f00 100644
--- a/test/cctest/test-run-wasm-relocation-arm64.cc
+++ b/test/cctest/test-run-wasm-relocation-arm64.cc
@@ -24,8 +24,7 @@
 
 static int64_t DummyStaticFunction(Object* result) { return 1; }
 
-TEST(WasmRelocationArm64) {
-  CcTest::InitializeVM();
+TEST(WasmRelocationArm64MemoryReference) {
   Isolate* isolate = CcTest::i_isolate();
   HandleScope scope(isolate);
   v8::internal::byte buffer[4096];
@@ -51,7 +50,7 @@
 #ifdef DEBUG
   OFStream os(stdout);
   code->Print(os);
-  ::printf("f() = %ld\n\n", ret_value);
+  ::printf("f() = %" PRIx64 "\n\n", ret_value);
 #endif
   size_t offset = 1234;
 
@@ -75,7 +74,64 @@
 
 #ifdef DEBUG
   code->Print(os);
-  ::printf("f() = %ld\n\n", ret_value);
+  ::printf("f() = %" PRIx64 "\n\n", ret_value);
+#endif
+}
+
+TEST(WasmRelocationArm64MemorySizeReference) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+  v8::internal::byte buffer[4096];
+  DummyStaticFunction(NULL);
+  Immediate size = Immediate(512, RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+  Label fail;
+
+  MacroAssembler masm(isolate, buffer, sizeof buffer,
+                      v8::internal::CodeObjectRequired::kYes);
+
+  __ Mov(x0, size);
+  __ Cmp(x0, size);
+  __ B(ne, &fail);
+  __ Ret();
+  __ Bind(&fail);
+  __ Mov(x0, Immediate(0xdeadbeef));
+  __ Ret();
+
+  CodeDesc desc;
+  masm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+
+  CSignature0<int64_t> csig;
+  CodeRunner<int64_t> runnable(isolate, code, &csig);
+  int64_t ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef DEBUG
+  OFStream os(stdout);
+  code->Print(os);
+  ::printf("f() = %" PRIx64 "\n\n", ret_value);
+#endif
+  int32_t diff = 512;
+
+  int mode_mask = (1 << RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+  for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
+    RelocInfo::Mode mode = it.rinfo()->rmode();
+    if (RelocInfo::IsWasmMemorySizeReference(mode)) {
+      it.rinfo()->update_wasm_memory_reference(
+          reinterpret_cast<Address>(0x1234), reinterpret_cast<Address>(0x1234),
+          it.rinfo()->wasm_memory_size_reference(),
+          it.rinfo()->wasm_memory_size_reference() + diff, SKIP_ICACHE_FLUSH);
+    }
+  }
+
+  ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef DEBUG
+  code->Print(os);
+  ::printf("f() = %" PRIx64 "\n\n", ret_value);
 #endif
 }
 
diff --git a/test/cctest/test-run-wasm-relocation-ia32.cc b/test/cctest/test-run-wasm-relocation-ia32.cc
index 135b522..305d008 100644
--- a/test/cctest/test-run-wasm-relocation-ia32.cc
+++ b/test/cctest/test-run-wasm-relocation-ia32.cc
@@ -23,8 +23,7 @@
 
 static int32_t DummyStaticFunction(Object* result) { return 1; }
 
-TEST(WasmRelocationIa32) {
-  CcTest::InitializeVM();
+TEST(WasmRelocationIa32MemoryReference) {
   Isolate* isolate = CcTest::i_isolate();
   Zone zone(isolate->allocator());
   HandleScope scope(isolate);
@@ -78,7 +77,6 @@
   CHECK_EQ(ret_value, imm + offset);
 
 #ifdef OBJECT_PRINT
-  // OFStream os(stdout);
   code->Print(os);
   begin = code->instruction_start();
   end = begin + code->instruction_size();
@@ -86,4 +84,67 @@
 #endif
 }
 
+TEST(WasmRelocationIa32MemorySizeReference) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  Zone zone(isolate->allocator());
+  HandleScope scope(isolate);
+  v8::internal::byte buffer[4096];
+  Assembler assm(isolate, buffer, sizeof buffer);
+  DummyStaticFunction(NULL);
+  int32_t size = 80;
+  Label fail;
+
+  __ mov(eax, Immediate(reinterpret_cast<Address>(size),
+                        RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+  __ cmp(eax, Immediate(reinterpret_cast<Address>(size),
+                        RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+  __ j(not_equal, &fail);
+  __ ret(0);
+  __ bind(&fail);
+  __ mov(eax, 0xdeadbeef);
+  __ ret(0);
+
+  CSignature0<int32_t> csig;
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+  USE(code);
+
+  CodeRunner<int32_t> runnable(isolate, code, &csig);
+  int32_t ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef OBJECT_PRINT
+  OFStream os(stdout);
+  code->Print(os);
+  byte* begin = code->instruction_start();
+  byte* end = begin + code->instruction_size();
+  disasm::Disassembler::Disassemble(stdout, begin, end);
+#endif
+
+  size_t offset = 10;
+
+  int mode_mask = (1 << RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+  for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
+    RelocInfo::Mode mode = it.rinfo()->rmode();
+    if (RelocInfo::IsWasmMemorySizeReference(mode)) {
+      it.rinfo()->update_wasm_memory_reference(
+          reinterpret_cast<Address>(1234), reinterpret_cast<Address>(1234),
+          it.rinfo()->wasm_memory_size_reference(),
+          it.rinfo()->wasm_memory_size_reference() + offset, SKIP_ICACHE_FLUSH);
+    }
+  }
+
+  ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef OBJECT_PRINT
+  code->Print(os);
+  begin = code->instruction_start();
+  end = begin + code->instruction_size();
+  disasm::Disassembler::Disassemble(stdout, begin, end);
+#endif
+}
 #undef __
diff --git a/test/cctest/test-run-wasm-relocation-x64.cc b/test/cctest/test-run-wasm-relocation-x64.cc
index f1b6d96..11fa451 100644
--- a/test/cctest/test-run-wasm-relocation-x64.cc
+++ b/test/cctest/test-run-wasm-relocation-x64.cc
@@ -21,8 +21,8 @@
 #define __ assm.
 
 static int32_t DummyStaticFunction(Object* result) { return 1; }
-TEST(WasmRelocationX64movq64) {
-  CcTest::InitializeVM();
+
+TEST(WasmRelocationX64MemoryReference) {
   Isolate* isolate = CcTest::i_isolate();
   HandleScope scope(isolate);
   v8::internal::byte buffer[4096];
@@ -80,4 +80,63 @@
 #endif
 }
 
+TEST(WasmRelocationX64WasmMemorySizeReference) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+  v8::internal::byte buffer[4096];
+  Assembler assm(isolate, buffer, sizeof buffer);
+  DummyStaticFunction(NULL);
+  int32_t size = 512;
+  Label fail;
+
+  __ movl(rax, Immediate(size, RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+  __ cmpl(rax, Immediate(size, RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+  __ j(not_equal, &fail);
+  __ ret(0);
+  __ bind(&fail);
+  __ movl(rax, Immediate(0xdeadbeef));
+  __ ret(0);
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+  USE(code);
+
+  CSignature0<int64_t> csig;
+  CodeRunner<int64_t> runnable(isolate, code, &csig);
+  int64_t ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef OBJECT_PRINT
+  OFStream os(stdout);
+  code->Print(os);
+  byte* begin = code->instruction_start();
+  byte* end = begin + code->instruction_size();
+  disasm::Disassembler::Disassemble(stdout, begin, end);
+#endif
+  int32_t diff = 512;
+
+  int mode_mask = (1 << RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+  for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
+    RelocInfo::Mode mode = it.rinfo()->rmode();
+    if (RelocInfo::IsWasmMemorySizeReference(mode)) {
+      it.rinfo()->update_wasm_memory_reference(
+          reinterpret_cast<Address>(1234), reinterpret_cast<Address>(1234),
+          it.rinfo()->wasm_memory_size_reference(),
+          it.rinfo()->wasm_memory_size_reference() + diff, SKIP_ICACHE_FLUSH);
+    }
+  }
+
+  ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef OBJECT_PRINT
+  code->Print(os);
+  begin = code->instruction_start();
+  end = begin + code->instruction_size();
+  disasm::Disassembler::Disassemble(stdout, begin, end);
+#endif
+}
 #undef __
diff --git a/test/cctest/test-run-wasm-relocation-x87.cc b/test/cctest/test-run-wasm-relocation-x87.cc
index 6cbd065..2156e96 100644
--- a/test/cctest/test-run-wasm-relocation-x87.cc
+++ b/test/cctest/test-run-wasm-relocation-x87.cc
@@ -23,8 +23,7 @@
 
 static int32_t DummyStaticFunction(Object* result) { return 1; }
 
-TEST(WasmRelocationIa32) {
-  CcTest::InitializeVM();
+TEST(WasmRelocationX87MemoryReference) {
   Isolate* isolate = CcTest::i_isolate();
   Zone zone(isolate->allocator());
   HandleScope scope(isolate);
@@ -78,7 +77,6 @@
   CHECK_EQ(ret_value, imm + offset);
 
 #ifdef OBJECT_PRINT
-  // OFStream os(stdout);
   code->Print(os);
   begin = code->instruction_start();
   end = begin + code->instruction_size();
@@ -86,4 +84,67 @@
 #endif
 }
 
+TEST(WasmRelocationX87MemorySizeReference) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  Zone zone(isolate->allocator());
+  HandleScope scope(isolate);
+  v8::internal::byte buffer[4096];
+  Assembler assm(isolate, buffer, sizeof buffer);
+  DummyStaticFunction(NULL);
+  int32_t size = 80;
+  Label fail;
+
+  __ mov(eax, Immediate(reinterpret_cast<Address>(size),
+                        RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+  __ cmp(eax, Immediate(reinterpret_cast<Address>(size),
+                        RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+  __ j(not_equal, &fail);
+  __ ret(0);
+  __ bind(&fail);
+  __ mov(eax, 0xdeadbeef);
+  __ ret(0);
+
+  CSignature0<int32_t> csig;
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+  USE(code);
+
+  CodeRunner<int32_t> runnable(isolate, code, &csig);
+  int32_t ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef OBJECT_PRINT
+  OFStream os(stdout);
+  code->Print(os);
+  byte* begin = code->instruction_start();
+  byte* end = begin + code->instruction_size();
+  disasm::Disassembler::Disassemble(stdout, begin, end);
+#endif
+
+  size_t offset = 10;
+
+  int mode_mask = (1 << RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+  for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
+    RelocInfo::Mode mode = it.rinfo()->rmode();
+    if (RelocInfo::IsWasmMemorySizeReference(mode)) {
+      it.rinfo()->update_wasm_memory_reference(
+          reinterpret_cast<Address>(1234), reinterpret_cast<Address>(1234),
+          it.rinfo()->wasm_memory_size_reference(),
+          it.rinfo()->wasm_memory_size_reference() + offset, SKIP_ICACHE_FLUSH);
+    }
+  }
+
+  ret_value = runnable.Call();
+  CHECK_NE(ret_value, 0xdeadbeef);
+
+#ifdef OBJECT_PRINT
+  code->Print(os);
+  begin = code->instruction_start();
+  end = begin + code->instruction_size();
+  disasm::Disassembler::Disassemble(stdout, begin, end);
+#endif
+}
 #undef __
diff --git a/test/cctest/test-typing-reset.cc b/test/cctest/test-typing-reset.cc
deleted file mode 100644
index 4e9413a..0000000
--- a/test/cctest/test-typing-reset.cc
+++ /dev/null
@@ -1,298 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stdlib.h>
-
-#include "src/v8.h"
-
-#include "src/ast/ast.h"
-#include "src/ast/ast-expression-visitor.h"
-#include "src/ast/scopes.h"
-#include "src/parsing/parser.h"
-#include "src/parsing/rewriter.h"
-#include "src/typing-reset.h"
-#include "test/cctest/cctest.h"
-#include "test/cctest/compiler/function-tester.h"
-#include "test/cctest/expression-type-collector.h"
-#include "test/cctest/expression-type-collector-macros.h"
-
-#define INT32_TYPE Bounds(Type::Signed32(), Type::Signed32())
-
-using namespace v8::internal;
-
-namespace {
-
-class TypeSetter : public AstExpressionVisitor {
- public:
-  TypeSetter(Isolate* isolate, FunctionLiteral* root)
-      : AstExpressionVisitor(isolate, root) {}
-
- protected:
-  void VisitExpression(Expression* expression) {
-    expression->set_bounds(INT32_TYPE);
-  }
-};
-
-
-void CheckAllSame(ZoneVector<ExpressionTypeEntry>& types,
-                  Bounds expected_type) {
-  CHECK_TYPES_BEGIN {
-    // function logSum
-    CHECK_EXPR(FunctionLiteral, expected_type) {
-      CHECK_EXPR(FunctionLiteral, expected_type) {
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(start, expected_type);
-          CHECK_EXPR(BinaryOperation, expected_type) {
-            CHECK_VAR(start, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-        }
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(end, expected_type);
-          CHECK_EXPR(BinaryOperation, expected_type) {
-            CHECK_VAR(end, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-        }
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(sum, expected_type);
-          CHECK_EXPR(Literal, expected_type);
-        }
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(p, expected_type);
-          CHECK_EXPR(Literal, expected_type);
-        }
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(q, expected_type);
-          CHECK_EXPR(Literal, expected_type);
-        }
-        // for (p = start << 3, q = end << 3;
-        CHECK_EXPR(BinaryOperation, expected_type) {
-          CHECK_EXPR(Assignment, expected_type) {
-            CHECK_VAR(p, expected_type);
-            CHECK_EXPR(BinaryOperation, expected_type) {
-              CHECK_VAR(start, expected_type);
-              CHECK_EXPR(Literal, expected_type);
-            }
-          }
-          CHECK_EXPR(Assignment, expected_type) {
-            CHECK_VAR(q, expected_type);
-            CHECK_EXPR(BinaryOperation, expected_type) {
-              CHECK_VAR(end, expected_type);
-              CHECK_EXPR(Literal, expected_type);
-            }
-          }
-        }
-        // (p|0) < (q|0);
-        CHECK_EXPR(CompareOperation, expected_type) {
-          CHECK_EXPR(BinaryOperation, expected_type) {
-            CHECK_VAR(p, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-          CHECK_EXPR(BinaryOperation, expected_type) {
-            CHECK_VAR(q, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-        }
-        // p = (p + 8)|0) {\n"
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(p, expected_type);
-          CHECK_EXPR(BinaryOperation, expected_type) {
-            CHECK_EXPR(BinaryOperation, expected_type) {
-              CHECK_VAR(p, expected_type);
-              CHECK_EXPR(Literal, expected_type);
-            }
-            CHECK_EXPR(Literal, expected_type);
-          }
-        }
-        // sum = sum + +log(values[p>>3]);
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(sum, expected_type);
-          CHECK_EXPR(BinaryOperation, expected_type) {
-            CHECK_VAR(sum, expected_type);
-            CHECK_EXPR(BinaryOperation, expected_type) {
-              CHECK_EXPR(Call, expected_type) {
-                CHECK_VAR(log, expected_type);
-                CHECK_EXPR(Property, expected_type) {
-                  CHECK_VAR(values, expected_type);
-                  CHECK_EXPR(BinaryOperation, expected_type) {
-                    CHECK_VAR(p, expected_type);
-                    CHECK_EXPR(Literal, expected_type);
-                  }
-                }
-              }
-              CHECK_EXPR(Literal, expected_type);
-            }
-          }
-        }
-        // return +sum;
-        CHECK_EXPR(BinaryOperation, expected_type) {
-          CHECK_VAR(sum, expected_type);
-          CHECK_EXPR(Literal, expected_type);
-        }
-      }
-      // function geometricMean
-      CHECK_EXPR(FunctionLiteral, expected_type) {
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(start, expected_type);
-          CHECK_EXPR(BinaryOperation, expected_type) {
-            CHECK_VAR(start, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-        }
-        CHECK_EXPR(Assignment, expected_type) {
-          CHECK_VAR(end, expected_type);
-          CHECK_EXPR(BinaryOperation, expected_type) {
-            CHECK_VAR(end, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-        }
-        // return +exp(+logSum(start, end) / +((end - start)|0));
-        CHECK_EXPR(BinaryOperation, expected_type) {
-          CHECK_EXPR(Call, expected_type) {
-            CHECK_VAR(exp, expected_type);
-            CHECK_EXPR(BinaryOperation, expected_type) {
-              CHECK_EXPR(BinaryOperation, expected_type) {
-                CHECK_EXPR(Call, expected_type) {
-                  CHECK_VAR(logSum, expected_type);
-                  CHECK_VAR(start, expected_type);
-                  CHECK_VAR(end, expected_type);
-                }
-                CHECK_EXPR(Literal, expected_type);
-              }
-              CHECK_EXPR(BinaryOperation, expected_type) {
-                CHECK_EXPR(BinaryOperation, expected_type) {
-                  CHECK_EXPR(BinaryOperation, expected_type) {
-                    CHECK_VAR(end, expected_type);
-                    CHECK_VAR(start, expected_type);
-                  }
-                  CHECK_EXPR(Literal, expected_type);
-                }
-                CHECK_EXPR(Literal, expected_type);
-              }
-            }
-          }
-          CHECK_EXPR(Literal, expected_type);
-        }
-      }
-      // "use asm";
-      CHECK_EXPR(Literal, expected_type);
-      // var exp = stdlib.Math.exp;
-      CHECK_EXPR(Assignment, expected_type) {
-        CHECK_VAR(exp, expected_type);
-        CHECK_EXPR(Property, expected_type) {
-          CHECK_EXPR(Property, expected_type) {
-            CHECK_VAR(stdlib, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-          CHECK_EXPR(Literal, expected_type);
-        }
-      }
-      // var log = stdlib.Math.log;
-      CHECK_EXPR(Assignment, expected_type) {
-        CHECK_VAR(log, expected_type);
-        CHECK_EXPR(Property, expected_type) {
-          CHECK_EXPR(Property, expected_type) {
-            CHECK_VAR(stdlib, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-          CHECK_EXPR(Literal, expected_type);
-        }
-      }
-      // var values = new stdlib.Float64Array(buffer);
-      CHECK_EXPR(Assignment, expected_type) {
-        CHECK_VAR(values, expected_type);
-        CHECK_EXPR(CallNew, expected_type) {
-          CHECK_EXPR(Property, expected_type) {
-            CHECK_VAR(stdlib, expected_type);
-            CHECK_EXPR(Literal, expected_type);
-          }
-          CHECK_VAR(buffer, expected_type);
-        }
-      }
-      // return { geometricMean: geometricMean };
-      CHECK_EXPR(ObjectLiteral, expected_type) {
-        CHECK_VAR(geometricMean, expected_type);
-      }
-    }
-  }
-  CHECK_TYPES_END
-}
-
-}  // namespace
-
-
-TEST(ResetTypingInfo) {
-  const char test_function[] =
-      "function GeometricMean(stdlib, foreign, buffer) {\n"
-      "  \"use asm\";\n"
-      "\n"
-      "  var exp = stdlib.Math.exp;\n"
-      "  var log = stdlib.Math.log;\n"
-      "  var values = new stdlib.Float64Array(buffer);\n"
-      "\n"
-      "  function logSum(start, end) {\n"
-      "    start = start|0;\n"
-      "    end = end|0;\n"
-      "\n"
-      "    var sum = 0.0, p = 0, q = 0;\n"
-      "\n"
-      "    // asm.js forces byte addressing of the heap by requiring shifting "
-      "by 3\n"
-      "    for (p = start << 3, q = end << 3; (p|0) < (q|0); p = (p + 8)|0) {\n"
-      "      sum = sum + +log(values[p>>3]);\n"
-      "    }\n"
-      "\n"
-      "    return +sum;\n"
-      "  }\n"
-      "\n"
-      " function geometricMean(start, end) {\n"
-      "    start = start|0;\n"
-      "    end = end|0;\n"
-      "\n"
-      "    return +exp(+logSum(start, end) / +((end - start)|0));\n"
-      "  }\n"
-      "\n"
-      "  return { geometricMean: geometricMean };\n"
-      "}\n";
-
-  v8::V8::Initialize();
-  HandleAndZoneScope handles;
-
-  i::Isolate* isolate = CcTest::i_isolate();
-  i::Factory* factory = isolate->factory();
-
-  i::Handle<i::String> source_code =
-      factory->NewStringFromUtf8(i::CStrVector(test_function))
-          .ToHandleChecked();
-
-  i::Handle<i::Script> script = factory->NewScript(source_code);
-
-  i::ParseInfo info(handles.main_zone(), script);
-  i::Parser parser(&info);
-  parser.set_allow_harmony_sloppy(true);
-  info.set_global();
-  info.set_lazy(false);
-  info.set_allow_lazy_parsing(false);
-  info.set_toplevel(true);
-
-  CHECK(i::Compiler::ParseAndAnalyze(&info));
-  FunctionLiteral* root =
-      info.scope()->declarations()->at(0)->AsFunctionDeclaration()->fun();
-
-  // Core of the test.
-  ZoneVector<ExpressionTypeEntry> types(handles.main_zone());
-  ExpressionTypeCollector(isolate, root, &types).Run();
-  CheckAllSame(types, Bounds::Unbounded());
-
-  TypeSetter(isolate, root).Run();
-
-  ExpressionTypeCollector(isolate, root, &types).Run();
-  CheckAllSame(types, INT32_TYPE);
-
-  TypingReseter(isolate, root).Run();
-
-  ExpressionTypeCollector(isolate, root, &types).Run();
-  CheckAllSame(types, Bounds::Unbounded());
-}
diff --git a/test/cctest/test-unboxed-doubles.cc b/test/cctest/test-unboxed-doubles.cc
index 7fc9b5b..39f8fbf 100644
--- a/test/cctest/test-unboxed-doubles.cc
+++ b/test/cctest/test-unboxed-doubles.cc
@@ -1504,10 +1504,12 @@
   CHECK_EQ(boom_value, obj->RawFastDoublePropertyAt(double_field_index));
 }
 
-
-enum WriteBarrierKind { OLD_TO_OLD_WRITE_BARRIER, OLD_TO_NEW_WRITE_BARRIER };
+enum OldToWriteBarrierKind {
+  OLD_TO_OLD_WRITE_BARRIER,
+  OLD_TO_NEW_WRITE_BARRIER
+};
 static void TestWriteBarrierObjectShiftFieldsRight(
-    WriteBarrierKind write_barrier_kind) {
+    OldToWriteBarrierKind write_barrier_kind) {
   CcTest::InitializeVM();
   Isolate* isolate = CcTest::i_isolate();
   v8::HandleScope scope(CcTest::isolate());
diff --git a/test/cctest/test-weakmaps.cc b/test/cctest/test-weakmaps.cc
index 781ad1f..829f320 100644
--- a/test/cctest/test-weakmaps.cc
+++ b/test/cctest/test-weakmaps.cc
@@ -52,8 +52,7 @@
 }
 
 static int NumberOfWeakCalls = 0;
-static void WeakPointerCallback(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
+static void WeakPointerCallback(const v8::WeakCallbackInfo<void>& data) {
   std::pair<v8::Persistent<v8::Value>*, int>* p =
       reinterpret_cast<std::pair<v8::Persistent<v8::Value>*, int>*>(
           data.GetParameter());
@@ -107,20 +106,12 @@
   {
     HandleScope scope(isolate);
     std::pair<Handle<Object>*, int> handle_and_id(&key, 1234);
-    GlobalHandles::MakeWeak(key.location(),
-                            reinterpret_cast<void*>(&handle_and_id),
-                            &WeakPointerCallback);
+    GlobalHandles::MakeWeak(
+        key.location(), reinterpret_cast<void*>(&handle_and_id),
+        &WeakPointerCallback, v8::WeakCallbackType::kParameter);
   }
   CHECK(global_handles->IsWeak(key.location()));
 
-  // Force a full GC.
-  // Perform two consecutive GCs because the first one will only clear
-  // weak references whereas the second one will also clear weak maps.
-  heap->CollectAllGarbage(false);
-  CHECK_EQ(1, NumberOfWeakCalls);
-  CHECK_EQ(2, ObjectHashTable::cast(weakmap->table())->NumberOfElements());
-  CHECK_EQ(
-      0, ObjectHashTable::cast(weakmap->table())->NumberOfDeletedElements());
   heap->CollectAllGarbage(false);
   CHECK_EQ(1, NumberOfWeakCalls);
   CHECK_EQ(0, ObjectHashTable::cast(weakmap->table())->NumberOfElements());
diff --git a/test/cctest/test-weaksets.cc b/test/cctest/test-weaksets.cc
index 643bb48..53a5913 100644
--- a/test/cctest/test-weaksets.cc
+++ b/test/cctest/test-weaksets.cc
@@ -55,8 +55,7 @@
 }
 
 static int NumberOfWeakCalls = 0;
-static void WeakPointerCallback(
-    const v8::WeakCallbackData<v8::Value, void>& data) {
+static void WeakPointerCallback(const v8::WeakCallbackInfo<void>& data) {
   std::pair<v8::Persistent<v8::Value>*, int>* p =
       reinterpret_cast<std::pair<v8::Persistent<v8::Value>*, int>*>(
           data.GetParameter());
@@ -106,20 +105,12 @@
   {
     HandleScope scope(isolate);
     std::pair<Handle<Object>*, int> handle_and_id(&key, 1234);
-    GlobalHandles::MakeWeak(key.location(),
-                            reinterpret_cast<void*>(&handle_and_id),
-                            &WeakPointerCallback);
+    GlobalHandles::MakeWeak(
+        key.location(), reinterpret_cast<void*>(&handle_and_id),
+        &WeakPointerCallback, v8::WeakCallbackType::kParameter);
   }
   CHECK(global_handles->IsWeak(key.location()));
 
-  // Force a full GC.
-  // Perform two consecutive GCs because the first one will only clear
-  // weak references whereas the second one will also clear weak sets.
-  heap->CollectAllGarbage(false);
-  CHECK_EQ(1, NumberOfWeakCalls);
-  CHECK_EQ(1, ObjectHashTable::cast(weakset->table())->NumberOfElements());
-  CHECK_EQ(
-      0, ObjectHashTable::cast(weakset->table())->NumberOfDeletedElements());
   heap->CollectAllGarbage(false);
   CHECK_EQ(1, NumberOfWeakCalls);
   CHECK_EQ(0, ObjectHashTable::cast(weakset->table())->NumberOfElements());
diff --git a/test/cctest/trace-extension.cc b/test/cctest/trace-extension.cc
index 77a29e9..6eb81b2 100644
--- a/test/cctest/trace-extension.cc
+++ b/test/cctest/trace-extension.cc
@@ -27,7 +27,7 @@
 
 #include "test/cctest/trace-extension.h"
 
-#include "src/profiler/sampler.h"
+#include "src/profiler/tick-sample.h"
 #include "src/vm-state-inl.h"
 #include "test/cctest/cctest.h"
 
diff --git a/test/cctest/wasm/test-run-wasm-64.cc b/test/cctest/wasm/test-run-wasm-64.cc
index 784f21a..333183a 100644
--- a/test/cctest/wasm/test-run-wasm-64.cc
+++ b/test/cctest/wasm/test-run-wasm-64.cc
@@ -24,20 +24,14 @@
 
 #define asu64(x) static_cast<uint64_t>(x)
 
-#define B2(a, b) kExprBlock, 2, a, b
-#define B1(a) kExprBlock, 1, a
+#define B2(a, b) kExprBlock, a, b, kExprEnd
+#define B1(a) kExprBlock, a, kExprEnd
 
 // Can't bridge macro land with nested macros.
-#if V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_X87
-#define MIPS_OR_X87 true
+#if V8_TARGET_ARCH_MIPS
+#define MIPS true
 #else
-#define MIPS_OR_X87 false
-#endif
-
-#if V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_X87 || V8_TARGET_ARCH_ARM
-#define MIPS_OR_ARM_OR_X87 true
-#else
-#define MIPS_OR_ARM_OR_X87 false
+#define MIPS false
 #endif
 
 #define FOREACH_I64_OPERATOR(V) \
@@ -47,9 +41,9 @@
   V(I64Return, true)            \
   V(I64Param, true)             \
   V(I64LoadStore, true)         \
-  V(I64Add, !MIPS_OR_X87)       \
-  V(I64Sub, !MIPS_OR_X87)       \
-  V(I64Mul, !MIPS_OR_X87)       \
+  V(I64Add, true)               \
+  V(I64Sub, true)               \
+  V(I64Mul, !MIPS)              \
   V(I64DivS, true)              \
   V(I64DivU, true)              \
   V(I64RemS, true)              \
@@ -57,9 +51,9 @@
   V(I64And, true)               \
   V(I64Ior, true)               \
   V(I64Xor, true)               \
-  V(I64Shl, !MIPS_OR_X87)       \
-  V(I64ShrU, !MIPS_OR_X87)      \
-  V(I64ShrS, !MIPS_OR_X87)      \
+  V(I64Shl, true)               \
+  V(I64ShrU, true)              \
+  V(I64ShrS, true)              \
   V(I64Eq, true)                \
   V(I64Ne, true)                \
   V(I64LtS, true)               \
@@ -72,7 +66,7 @@
   V(I64GeU, true)               \
   V(I64Ctz, true)               \
   V(I64Clz, true)               \
-  V(I64Popcnt, !MIPS_OR_X87)    \
+  V(I64Popcnt, true)            \
   V(I32ConvertI64, true)        \
   V(I64SConvertF32, true)       \
   V(I64SConvertF64, true)       \
@@ -96,7 +90,7 @@
 #define REQUIRE(name) \
   if (!WASM_64 && !kSupported_##name) return
 
-TEST(Run_Wasm_I64Const) {
+WASM_EXEC_TEST(I64Const) {
   REQUIRE(I64Const);
   WasmRunner<int64_t> r;
   const int64_t kExpectedValue = 0x1122334455667788LL;
@@ -105,7 +99,7 @@
   CHECK_EQ(kExpectedValue, r.Call());
 }
 
-TEST(Run_Wasm_I64Const_many) {
+WASM_EXEC_TEST(I64Const_many) {
   REQUIRE(I64Const);
   int cntr = 0;
   FOR_INT32_INPUTS(i) {
@@ -118,19 +112,16 @@
   }
 }
 
-TEST(Run_Wasm_Return_I64) {
+WASM_EXEC_TEST(Return_I64) {
   REQUIRE(I64Return);
   WasmRunner<int64_t> r(MachineType::Int64());
 
-  BUILD(r, WASM_RETURN(WASM_GET_LOCAL(0)));
+  BUILD(r, WASM_RETURN1(WASM_GET_LOCAL(0)));
 
   FOR_INT64_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 
-// todo(ahaas): I added a list of missing instructions here to make merging
-// easier when I do them one by one.
-// kExprI64Add:
-TEST(Run_WasmI64Add) {
+WASM_EXEC_TEST(I64Add) {
   REQUIRE(I64Add);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -138,8 +129,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i + *j, r.Call(*i, *j)); }
   }
 }
-// kExprI64Sub:
-TEST(Run_Wasm_I64Sub) {
+
+WASM_EXEC_TEST(I64Sub) {
   REQUIRE(I64Sub);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_SUB(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -147,10 +138,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i - *j, r.Call(*i, *j)); }
   }
 }
-// kExprI64Mul:
-// kExprI64DivS:
 
-TEST(Run_WasmI64DivS) {
+WASM_EXEC_TEST(I64DivS) {
   REQUIRE(I64DivS);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_DIVS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -167,7 +156,7 @@
   }
 }
 
-TEST(Run_WasmI64DivS_Trap) {
+WASM_EXEC_TEST(I64DivS_Trap) {
   REQUIRE(I64DivS);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_DIVS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -178,7 +167,7 @@
   CHECK_TRAP64(r.Call(std::numeric_limits<int64_t>::min(), asi64(0)));
 }
 
-TEST(Run_WasmI64DivS_Byzero_Const) {
+WASM_EXEC_TEST(I64DivS_Byzero_Const) {
   REQUIRE(I64DivS);
   for (int8_t denom = -2; denom < 8; denom++) {
     WasmRunner<int64_t> r(MachineType::Int64());
@@ -192,9 +181,8 @@
     }
   }
 }
-// kExprI64DivU:
 
-TEST(Run_WasmI64DivU) {
+WASM_EXEC_TEST(I64DivU) {
   REQUIRE(I64DivU);
   WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
   BUILD(r, WASM_I64_DIVU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -209,7 +197,7 @@
   }
 }
 
-TEST(Run_WasmI64DivU_Trap) {
+WASM_EXEC_TEST(I64DivU_Trap) {
   REQUIRE(I64DivU);
   WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
   BUILD(r, WASM_I64_DIVU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -219,7 +207,7 @@
   CHECK_TRAP64(r.Call(std::numeric_limits<uint64_t>::max(), asu64(0)));
 }
 
-TEST(Run_WasmI64DivU_Byzero_Const) {
+WASM_EXEC_TEST(I64DivU_Byzero_Const) {
   REQUIRE(I64DivU);
   for (uint64_t denom = 0xfffffffffffffffe; denom < 8; denom++) {
     WasmRunner<uint64_t> r(MachineType::Uint64());
@@ -234,8 +222,8 @@
     }
   }
 }
-// kExprI64RemS:
-TEST(Run_WasmI64RemS) {
+
+WASM_EXEC_TEST(I64RemS) {
   REQUIRE(I64RemS);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -250,7 +238,7 @@
   }
 }
 
-TEST(Run_WasmI64RemS_Trap) {
+WASM_EXEC_TEST(I64RemS_Trap) {
   REQUIRE(I64RemS);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -261,8 +249,7 @@
   CHECK_TRAP64(r.Call(std::numeric_limits<int64_t>::min(), asi64(0)));
 }
 
-// kExprI64RemU:
-TEST(Run_WasmI64RemU) {
+WASM_EXEC_TEST(I64RemU) {
   REQUIRE(I64RemU);
   WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
   BUILD(r, WASM_I64_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -277,7 +264,7 @@
   }
 }
 
-TEST(Run_Wasm_I64RemU_Trap) {
+WASM_EXEC_TEST(I64RemU_Trap) {
   REQUIRE(I64RemU);
   WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
   BUILD(r, WASM_I64_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -287,8 +274,7 @@
   CHECK_TRAP64(r.Call(std::numeric_limits<uint64_t>::max(), asu64(0)));
 }
 
-// kExprI64And:
-TEST(Run_Wasm_I64And) {
+WASM_EXEC_TEST(I64And) {
   REQUIRE(I64And);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_AND(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -296,8 +282,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ((*i) & (*j), r.Call(*i, *j)); }
   }
 }
-// kExprI64Ior:
-TEST(Run_Wasm_I64Ior) {
+
+WASM_EXEC_TEST(I64Ior) {
   REQUIRE(I64Ior);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_IOR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -305,8 +291,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ((*i) | (*j), r.Call(*i, *j)); }
   }
 }
-// kExprI64Xor:
-TEST(Run_Wasm_I64Xor) {
+
+WASM_EXEC_TEST(I64Xor) {
   REQUIRE(I64Xor);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -314,8 +300,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ((*i) ^ (*j), r.Call(*i, *j)); }
   }
 }
-// kExprI64Shl:
-TEST(Run_Wasm_I64Shl) {
+
+WASM_EXEC_TEST(I64Shl) {
   REQUIRE(I64Shl);
   {
     WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
@@ -349,8 +335,8 @@
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 40, r.Call(*i)); }
   }
 }
-// kExprI64ShrU:
-TEST(Run_Wasm_I64ShrU) {
+
+WASM_EXEC_TEST(I64ShrU) {
   REQUIRE(I64ShrU);
   {
     WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
@@ -384,8 +370,8 @@
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 40, r.Call(*i)); }
   }
 }
-// kExprI64ShrS:
-TEST(Run_Wasm_I64ShrS) {
+
+WASM_EXEC_TEST(I64ShrS) {
   REQUIRE(I64ShrS);
   {
     WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
@@ -419,8 +405,8 @@
     FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 40, r.Call(*i)); }
   }
 }
-// kExprI64Eq:
-TEST(Run_Wasm_I64Eq) {
+
+WASM_EXEC_TEST(I64Eq) {
   REQUIRE(I64Eq);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_EQ(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -428,8 +414,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i == *j ? 1 : 0, r.Call(*i, *j)); }
   }
 }
-// kExprI64Ne:
-TEST(Run_Wasm_I64Ne) {
+
+WASM_EXEC_TEST(I64Ne) {
   REQUIRE(I64Ne);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_NE(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -437,8 +423,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i != *j ? 1 : 0, r.Call(*i, *j)); }
   }
 }
-// kExprI64LtS:
-TEST(Run_Wasm_I64LtS) {
+
+WASM_EXEC_TEST(I64LtS) {
   REQUIRE(I64LtS);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_LTS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -446,7 +432,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i < *j ? 1 : 0, r.Call(*i, *j)); }
   }
 }
-TEST(Run_Wasm_I64LeS) {
+
+WASM_EXEC_TEST(I64LeS) {
   REQUIRE(I64LeS);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_LES(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -454,7 +441,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i <= *j ? 1 : 0, r.Call(*i, *j)); }
   }
 }
-TEST(Run_Wasm_I64LtU) {
+
+WASM_EXEC_TEST(I64LtU) {
   REQUIRE(I64LtU);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_LTU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -462,7 +450,8 @@
     FOR_UINT64_INPUTS(j) { CHECK_EQ(*i < *j ? 1 : 0, r.Call(*i, *j)); }
   }
 }
-TEST(Run_Wasm_I64LeU) {
+
+WASM_EXEC_TEST(I64LeU) {
   REQUIRE(I64LeU);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_LEU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -470,7 +459,8 @@
     FOR_UINT64_INPUTS(j) { CHECK_EQ(*i <= *j ? 1 : 0, r.Call(*i, *j)); }
   }
 }
-TEST(Run_Wasm_I64GtS) {
+
+WASM_EXEC_TEST(I64GtS) {
   REQUIRE(I64GtS);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_GTS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -478,7 +468,8 @@
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i > *j ? 1 : 0, r.Call(*i, *j)); }
   }
 }
-TEST(Run_Wasm_I64GeS) {
+
+WASM_EXEC_TEST(I64GeS) {
   REQUIRE(I64GeS);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_GES(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -487,7 +478,7 @@
   }
 }
 
-TEST(Run_Wasm_I64GtU) {
+WASM_EXEC_TEST(I64GtU) {
   REQUIRE(I64GtU);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_GTU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -496,7 +487,7 @@
   }
 }
 
-TEST(Run_Wasm_I64GeU) {
+WASM_EXEC_TEST(I64GeU) {
   REQUIRE(I64GeU);
   WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_GEU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -504,8 +495,8 @@
     FOR_UINT64_INPUTS(j) { CHECK_EQ(*i >= *j ? 1 : 0, r.Call(*i, *j)); }
   }
 }
-// kExprI32ConvertI64:
-TEST(Run_Wasm_I32ConvertI64) {
+
+WASM_EXEC_TEST(I32ConvertI64) {
   REQUIRE(I32ConvertI64);
   FOR_INT64_INPUTS(i) {
     WasmRunner<int32_t> r;
@@ -513,29 +504,22 @@
     CHECK_EQ(static_cast<int32_t>(*i), r.Call());
   }
 }
-// kExprI64SConvertI32:
-TEST(Run_Wasm_I64SConvertI32) {
+
+WASM_EXEC_TEST(I64SConvertI32) {
   REQUIRE(I64SConvertI32);
   WasmRunner<int64_t> r(MachineType::Int32());
   BUILD(r, WASM_I64_SCONVERT_I32(WASM_GET_LOCAL(0)));
   FOR_INT32_INPUTS(i) { CHECK_EQ(static_cast<int64_t>(*i), r.Call(*i)); }
 }
 
-// kExprI64UConvertI32:
-TEST(Run_Wasm_I64UConvertI32) {
+WASM_EXEC_TEST(I64UConvertI32) {
   REQUIRE(I64UConvertI32);
   WasmRunner<int64_t> r(MachineType::Uint32());
   BUILD(r, WASM_I64_UCONVERT_I32(WASM_GET_LOCAL(0)));
   FOR_UINT32_INPUTS(i) { CHECK_EQ(static_cast<uint64_t>(*i), r.Call(*i)); }
 }
 
-// kExprF64ReinterpretI64:
-// kExprI64ReinterpretF64:
-
-// kExprI64Clz:
-// kExprI64Ctz:
-// kExprI64Popcnt:
-TEST(Run_WasmI64Popcnt) {
+WASM_EXEC_TEST(I64Popcnt) {
   struct {
     int64_t expected;
     uint64_t input;
@@ -552,15 +536,14 @@
   }
 }
 
-// kExprF32SConvertI64:
-TEST(Run_WasmF32SConvertI64) {
+WASM_EXEC_TEST(F32SConvertI64) {
   REQUIRE(F32SConvertI64);
   WasmRunner<float> r(MachineType::Int64());
   BUILD(r, WASM_F32_SCONVERT_I64(WASM_GET_LOCAL(0)));
   FOR_INT64_INPUTS(i) { CHECK_FLOAT_EQ(static_cast<float>(*i), r.Call(*i)); }
 }
-// kExprF32UConvertI64:
-TEST(Run_WasmF32UConvertI64) {
+
+WASM_EXEC_TEST(F32UConvertI64) {
   REQUIRE(F32UConvertI64);
   struct {
     uint64_t input;
@@ -647,15 +630,15 @@
     CHECK_EQ(bit_cast<float>(values[i].expected), r.Call(values[i].input));
   }
 }
-// kExprF64SConvertI64:
-TEST(Run_WasmF64SConvertI64) {
+
+WASM_EXEC_TEST(F64SConvertI64) {
   REQUIRE(F64SConvertI64);
   WasmRunner<double> r(MachineType::Int64());
   BUILD(r, WASM_F64_SCONVERT_I64(WASM_GET_LOCAL(0)));
   FOR_INT64_INPUTS(i) { CHECK_DOUBLE_EQ(static_cast<double>(*i), r.Call(*i)); }
 }
-// kExprF64UConvertI64:
-TEST(Run_Wasm_F64UConvertI64) {
+
+WASM_EXEC_TEST(F64UConvertI64) {
   REQUIRE(F64UConvertI64);
   struct {
     uint64_t input;
@@ -741,9 +724,8 @@
     CHECK_EQ(bit_cast<double>(values[i].expected), r.Call(values[i].input));
   }
 }
-// kExprI64SConvertF32:
 
-TEST(Run_Wasm_I64SConvertF32a) {
+WASM_EXEC_TEST(I64SConvertF32a) {
   WasmRunner<int64_t> r(MachineType::Float32());
   BUILD(r, WASM_I64_SCONVERT_F32(WASM_GET_LOCAL(0)));
 
@@ -756,8 +738,8 @@
     }
   }
 }
-// kExprI64SConvertF64:
-TEST(Run_Wasm_I64SConvertF64a) {
+
+WASM_EXEC_TEST(I64SConvertF64a) {
   WasmRunner<int64_t> r(MachineType::Float64());
   BUILD(r, WASM_I64_SCONVERT_F64(WASM_GET_LOCAL(0)));
 
@@ -771,8 +753,7 @@
   }
 }
 
-// kExprI64UConvertF32:
-TEST(Run_Wasm_I64UConvertF32a) {
+WASM_EXEC_TEST(I64UConvertF32a) {
   WasmRunner<uint64_t> r(MachineType::Float32());
   BUILD(r, WASM_I64_UCONVERT_F32(WASM_GET_LOCAL(0)));
 
@@ -786,8 +767,7 @@
   }
 }
 
-// kExprI64UConvertF64:
-TEST(Run_Wasm_I64UConvertF64a) {
+WASM_EXEC_TEST(I64UConvertF64a) {
   WasmRunner<uint64_t> r(MachineType::Float64());
   BUILD(r, WASM_I64_UCONVERT_F64(WASM_GET_LOCAL(0)));
 
@@ -801,7 +781,7 @@
   }
 }
 
-TEST(Run_WasmCallI64Parameter) {
+WASM_EXEC_TEST(CallI64Parameter) {
   // Build the target function.
   LocalType param_types[20];
   for (int i = 0; i < 20; i++) param_types[i] = kAstI64;
@@ -822,8 +802,8 @@
     WasmRunner<int32_t> r(&module);
     BUILD(
         r,
-        WASM_I32_CONVERT_I64(WASM_CALL_FUNCTION(
-            index, WASM_I64V_9(0xbcd12340000000b),
+        WASM_I32_CONVERT_I64(WASM_CALL_FUNCTIONN(
+            19, index, WASM_I64V_9(0xbcd12340000000b),
             WASM_I64V_9(0xbcd12340000000c), WASM_I32V_1(0xd),
             WASM_I32_CONVERT_I64(WASM_I64V_9(0xbcd12340000000e)),
             WASM_I64V_9(0xbcd12340000000f), WASM_I64V_10(0xbcd1234000000010),
@@ -875,7 +855,7 @@
       TestI64Binop(kExpr##name, expected, a, b); \
   } while (false)
 
-TEST(Run_Wasm_I64Binops) {
+WASM_EXEC_TEST(I64Binops) {
   TEST_I64_BINOP(I64Add, -5586332274295447011, 0x501b72ebabc26847,
                  0x625de9793d8f79d6);
   TEST_I64_BINOP(I64Sub, 9001903251710731490, 0xf24fe6474640002e,
@@ -912,7 +892,7 @@
     if (WASM_64 || kSupported_##name) TestI64Cmp(kExpr##name, expected, a, b); \
   } while (false)
 
-TEST(Run_Wasm_I64Compare) {
+WASM_EXEC_TEST(I64Compare) {
   TEST_I64_CMP(I64Eq, 0, 0xB915D8FA494064F0, 0x04D700B2536019A3);
   TEST_I64_CMP(I64Ne, 1, 0xC2FAFAAAB0446CDC, 0x52A3328F780C97A3);
   TEST_I64_CMP(I64LtS, 0, 0x673636E6306B0578, 0x028EC9ECA78F7227);
@@ -925,7 +905,7 @@
   TEST_I64_CMP(I64GeU, 0, 0x0886A0C58C7AA224, 0x5DDBE5A81FD7EE47);
 }
 
-TEST(Run_Wasm_I64Clz) {
+WASM_EXEC_TEST(I64Clz) {
   REQUIRE(I64Clz);
   struct {
     int64_t expected;
@@ -971,7 +951,7 @@
   }
 }
 
-TEST(Run_Wasm_I64Ctz) {
+WASM_EXEC_TEST(I64Ctz) {
   REQUIRE(I64Ctz);
   struct {
     int64_t expected;
@@ -1017,7 +997,7 @@
   }
 }
 
-TEST(Run_Wasm_I64Popcnt) {
+WASM_EXEC_TEST(I64Popcnt2) {
   REQUIRE(I64Popcnt);
   struct {
     int64_t expected;
@@ -1088,7 +1068,7 @@
 }
 }
 
-TEST(Run_WasmCall_Int64Sub) {
+WASM_EXEC_TEST(Call_Int64Sub) {
   REQUIRE(I64Sub);
   // Build the target function.
   TestSignatures sigs;
@@ -1099,7 +1079,7 @@
 
   // Build the caller function.
   WasmRunner<int64_t> r(&module, MachineType::Int64(), MachineType::Int64());
-  BUILD(r, WASM_CALL_FUNCTION(index, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
+  BUILD(r, WASM_CALL_FUNCTION2(index, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_INT32_INPUTS(i) {
     FOR_INT32_INPUTS(j) {
@@ -1115,7 +1095,7 @@
   }
 }
 
-TEST(Run_Wasm_LoadStoreI64_sx) {
+WASM_EXEC_TEST(LoadStoreI64_sx) {
   REQUIRE(I64LoadStore);
   REQUIRE(DepthFirst);
   byte loads[] = {kExprI64LoadMem8S, kExprI64LoadMem16S, kExprI64LoadMem32S,
@@ -1126,12 +1106,16 @@
     byte* memory = module.AddMemoryElems<byte>(16);
     WasmRunner<int64_t> r(&module);
 
-    byte code[] = {kExprI64StoreMem, ZERO_ALIGNMENT,
-                   ZERO_OFFSET,          // --
-                   kExprI8Const,     8,  // --
-                   loads[m],         ZERO_ALIGNMENT,
-                   ZERO_OFFSET,           // --
-                   kExprI8Const,     0};  // --
+    byte code[] = {
+        kExprI8Const,     8,  // --
+        kExprI8Const,     0,  // --
+        loads[m],             // --
+        ZERO_ALIGNMENT,       // --
+        ZERO_OFFSET,          // --
+        kExprI64StoreMem,     // --
+        ZERO_ALIGNMENT,       // --
+        ZERO_OFFSET           // --
+    };
 
     r.Build(code, code + arraysize(code));
 
@@ -1152,7 +1136,7 @@
   }
 }
 
-TEST(Run_Wasm_I64SConvertF32b) {
+WASM_EXEC_TEST(I64SConvertF32b) {
   REQUIRE(I64SConvertF32);
   WasmRunner<int64_t> r(MachineType::Float32());
   BUILD(r, WASM_I64_SCONVERT_F32(WASM_GET_LOCAL(0)));
@@ -1167,7 +1151,7 @@
   }
 }
 
-TEST(Run_Wasm_I64SConvertF64b) {
+WASM_EXEC_TEST(I64SConvertF64b) {
   REQUIRE(I64SConvertF64);
   WasmRunner<int64_t> r(MachineType::Float64());
   BUILD(r, WASM_I64_SCONVERT_F64(WASM_GET_LOCAL(0)));
@@ -1182,7 +1166,7 @@
   }
 }
 
-TEST(Run_Wasm_I64UConvertF32b) {
+WASM_EXEC_TEST(I64UConvertF32b) {
   REQUIRE(I64UConvertF32);
   WasmRunner<uint64_t> r(MachineType::Float32());
   BUILD(r, WASM_I64_UCONVERT_F32(WASM_GET_LOCAL(0)));
@@ -1196,7 +1180,7 @@
   }
 }
 
-TEST(Run_Wasm_I64UConvertF64b) {
+WASM_EXEC_TEST(I64UConvertF64b) {
   REQUIRE(I64UConvertF64);
   WasmRunner<uint64_t> r(MachineType::Float64());
   BUILD(r, WASM_I64_UCONVERT_F64(WASM_GET_LOCAL(0)));
@@ -1210,7 +1194,7 @@
   }
 }
 
-TEST(Run_Wasm_I64ReinterpretF64) {
+WASM_EXEC_TEST(I64ReinterpretF64) {
   REQUIRE(I64ReinterpretF64);
   TestingModule module;
   int64_t* memory = module.AddMemoryElems<int64_t>(8);
@@ -1226,7 +1210,7 @@
   }
 }
 
-TEST(Run_Wasm_F64ReinterpretI64) {
+WASM_EXEC_TEST(F64ReinterpretI64) {
   REQUIRE(F64ReinterpretI64);
   TestingModule module;
   int64_t* memory = module.AddMemoryElems<int64_t>(8);
@@ -1244,7 +1228,7 @@
   }
 }
 
-TEST(Run_Wasm_LoadMemI64) {
+WASM_EXEC_TEST(LoadMemI64) {
   REQUIRE(I64LoadStore);
   TestingModule module;
   int64_t* memory = module.AddMemoryElems<int64_t>(8);
@@ -1263,7 +1247,7 @@
   CHECK_EQ(77777777, r.Call());
 }
 
-TEST(Run_Wasm_MemI64_Sum) {
+WASM_EXEC_TEST(MemI64_Sum) {
   REQUIRE(I64LoadStore);
   REQUIRE(I64Add);
   REQUIRE(I64Sub);
@@ -1299,7 +1283,7 @@
   }
 }
 
-TEST(Run_Wasm_I64Global) {
+WASM_EXEC_TEST(I64Global) {
   REQUIRE(I64LoadStore);
   REQUIRE(I64SConvertI32);
   REQUIRE(I64And);
@@ -1321,7 +1305,7 @@
   }
 }
 
-TEST(Run_Wasm_I64Eqz) {
+WASM_EXEC_TEST(I64Eqz) {
   REQUIRE(I64Eq);
 
   WasmRunner<int32_t> r(MachineType::Int64());
@@ -1333,7 +1317,7 @@
   }
 }
 
-TEST(Run_Wasm_I64Ror) {
+WASM_EXEC_TEST(I64Ror) {
   REQUIRE(I64Ror);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_ROR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -1346,7 +1330,7 @@
   }
 }
 
-TEST(Run_Wasm_I64Rol) {
+WASM_EXEC_TEST(I64Rol) {
   REQUIRE(I64Rol);
   WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_ROL(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
diff --git a/test/cctest/wasm/test-run-wasm-asmjs.cc b/test/cctest/wasm/test-run-wasm-asmjs.cc
new file mode 100644
index 0000000..c597fc8
--- /dev/null
+++ b/test/cctest/wasm/test-run-wasm-asmjs.cc
@@ -0,0 +1,195 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "src/base/platform/elapsed-timer.h"
+
+#include "src/wasm/wasm-macro-gen.h"
+
+#include "test/cctest/cctest.h"
+#include "test/cctest/compiler/value-helper.h"
+#include "test/cctest/wasm/test-signatures.h"
+#include "test/cctest/wasm/wasm-run-utils.h"
+
+using namespace v8::base;
+using namespace v8::internal;
+using namespace v8::internal::compiler;
+using namespace v8::internal::wasm;
+
+// for even shorter tests.
+#define B2(a, b) kExprBlock, a, b, kExprEnd
+#define B1(a) kExprBlock, a, kExprEnd
+#define RET(x) x, kExprReturn, 1
+#define RET_I8(x) kExprI8Const, x, kExprReturn, 1
+
+WASM_EXEC_TEST(Int32AsmjsDivS) {
+  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  BUILD(r, WASM_BINOP(kExprI32AsmjsDivS, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
+  const int32_t kMin = std::numeric_limits<int32_t>::min();
+  CHECK_EQ(0, r.Call(0, 100));
+  CHECK_EQ(0, r.Call(100, 0));
+  CHECK_EQ(0, r.Call(-1001, 0));
+  CHECK_EQ(kMin, r.Call(kMin, -1));
+  CHECK_EQ(0, r.Call(kMin, 0));
+}
+
+WASM_EXEC_TEST(Int32AsmjsRemS) {
+  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  BUILD(r, WASM_BINOP(kExprI32AsmjsRemS, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
+  const int32_t kMin = std::numeric_limits<int32_t>::min();
+  CHECK_EQ(33, r.Call(133, 100));
+  CHECK_EQ(0, r.Call(kMin, -1));
+  CHECK_EQ(0, r.Call(100, 0));
+  CHECK_EQ(0, r.Call(-1001, 0));
+  CHECK_EQ(0, r.Call(kMin, 0));
+}
+
+WASM_EXEC_TEST(Int32AsmjsDivU) {
+  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  BUILD(r, WASM_BINOP(kExprI32AsmjsDivU, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
+  const int32_t kMin = std::numeric_limits<int32_t>::min();
+  CHECK_EQ(0, r.Call(0, 100));
+  CHECK_EQ(0, r.Call(kMin, -1));
+  CHECK_EQ(0, r.Call(100, 0));
+  CHECK_EQ(0, r.Call(-1001, 0));
+  CHECK_EQ(0, r.Call(kMin, 0));
+}
+
+WASM_EXEC_TEST(Int32AsmjsRemU) {
+  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  BUILD(r, WASM_BINOP(kExprI32AsmjsRemU, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
+  const int32_t kMin = std::numeric_limits<int32_t>::min();
+  CHECK_EQ(17, r.Call(217, 100));
+  CHECK_EQ(0, r.Call(100, 0));
+  CHECK_EQ(0, r.Call(-1001, 0));
+  CHECK_EQ(0, r.Call(kMin, 0));
+  CHECK_EQ(kMin, r.Call(kMin, -1));
+}
+
+WASM_EXEC_TEST(I32AsmjsSConvertF32) {
+  WasmRunner<int32_t> r(MachineType::Float32());
+  BUILD(r, WASM_UNOP(kExprI32AsmjsSConvertF32, WASM_GET_LOCAL(0)));
+
+  FOR_FLOAT32_INPUTS(i) {
+    int32_t expected = DoubleToInt32(*i);
+    CHECK_EQ(expected, r.Call(*i));
+  }
+}
+
+WASM_EXEC_TEST(I32AsmjsSConvertF64) {
+  WasmRunner<int32_t> r(MachineType::Float64());
+  BUILD(r, WASM_UNOP(kExprI32AsmjsSConvertF64, WASM_GET_LOCAL(0)));
+
+  FOR_FLOAT64_INPUTS(i) {
+    int32_t expected = DoubleToInt32(*i);
+    CHECK_EQ(expected, r.Call(*i));
+  }
+}
+
+WASM_EXEC_TEST(I32AsmjsUConvertF32) {
+  WasmRunner<uint32_t> r(MachineType::Float32());
+  BUILD(r, WASM_UNOP(kExprI32AsmjsUConvertF32, WASM_GET_LOCAL(0)));
+
+  FOR_FLOAT32_INPUTS(i) {
+    uint32_t expected = DoubleToUint32(*i);
+    CHECK_EQ(expected, r.Call(*i));
+  }
+}
+
+WASM_EXEC_TEST(I32AsmjsUConvertF64) {
+  WasmRunner<uint32_t> r(MachineType::Float64());
+  BUILD(r, WASM_UNOP(kExprI32AsmjsUConvertF64, WASM_GET_LOCAL(0)));
+
+  FOR_FLOAT64_INPUTS(i) {
+    uint32_t expected = DoubleToUint32(*i);
+    CHECK_EQ(expected, r.Call(*i));
+  }
+}
+
+WASM_EXEC_TEST(LoadMemI32_oob_asm) {
+  TestingModule module;
+  int32_t* memory = module.AddMemoryElems<int32_t>(8);
+  WasmRunner<int32_t> r(&module, MachineType::Uint32());
+  module.RandomizeMemory(1112);
+
+  BUILD(r, WASM_UNOP(kExprI32AsmjsLoadMem, WASM_GET_LOCAL(0)));
+
+  memory[0] = 999999;
+  CHECK_EQ(999999, r.Call(0u));
+  // TODO(titzer): offset 29-31 should also be OOB.
+  for (uint32_t offset = 32; offset < 40; offset++) {
+    CHECK_EQ(0, r.Call(offset));
+  }
+
+  for (uint32_t offset = 0x80000000; offset < 0x80000010; offset++) {
+    CHECK_EQ(0, r.Call(offset));
+  }
+}
+
+WASM_EXEC_TEST(LoadMemF32_oob_asm) {
+  TestingModule module;
+  float* memory = module.AddMemoryElems<float>(8);
+  WasmRunner<float> r(&module, MachineType::Uint32());
+  module.RandomizeMemory(1112);
+
+  BUILD(r, WASM_UNOP(kExprF32AsmjsLoadMem, WASM_GET_LOCAL(0)));
+
+  memory[0] = 9999.5f;
+  CHECK_EQ(9999.5f, r.Call(0u));
+  // TODO(titzer): offset 29-31 should also be OOB.
+  for (uint32_t offset = 32; offset < 40; offset++) {
+    CHECK(std::isnan(r.Call(offset)));
+  }
+
+  for (uint32_t offset = 0x80000000; offset < 0x80000010; offset++) {
+    CHECK(std::isnan(r.Call(offset)));
+  }
+}
+
+WASM_EXEC_TEST(LoadMemF64_oob_asm) {
+  TestingModule module;
+  double* memory = module.AddMemoryElems<double>(8);
+  WasmRunner<double> r(&module, MachineType::Uint32());
+  module.RandomizeMemory(1112);
+
+  BUILD(r, WASM_UNOP(kExprF64AsmjsLoadMem, WASM_GET_LOCAL(0)));
+
+  memory[0] = 9799.5;
+  CHECK_EQ(9799.5, r.Call(0u));
+  memory[1] = 11799.25;
+  CHECK_EQ(11799.25, r.Call(8u));
+  // TODO(titzer): offset 57-63 should also be OOB.
+  for (uint32_t offset = 64; offset < 80; offset++) {
+    CHECK(std::isnan(r.Call(offset)));
+  }
+
+  for (uint32_t offset = 0x80000000; offset < 0x80000010; offset++) {
+    CHECK(std::isnan(r.Call(offset)));
+  }
+}
+
+WASM_EXEC_TEST(StoreMemI32_oob_asm) {
+  TestingModule module;
+  int32_t* memory = module.AddMemoryElems<int32_t>(8);
+  WasmRunner<int32_t> r(&module, MachineType::Uint32(), MachineType::Uint32());
+  module.RandomizeMemory(1112);
+
+  BUILD(r, WASM_BINOP(kExprI32AsmjsStoreMem, WASM_GET_LOCAL(0),
+                      WASM_GET_LOCAL(1)));
+
+  memory[0] = 7777;
+  CHECK_EQ(999999, r.Call(0u, 999999));
+  CHECK_EQ(999999, memory[0]);
+  // TODO(titzer): offset 29-31 should also be OOB.
+  for (uint32_t offset = 32; offset < 40; offset++) {
+    CHECK_EQ(8888, r.Call(offset, 8888));
+  }
+
+  for (uint32_t offset = 0x10000000; offset < 0xF0000000; offset += 0x1000000) {
+    CHECK_EQ(7777, r.Call(offset, 7777));
+  }
+}
diff --git a/test/cctest/wasm/test-run-wasm-js.cc b/test/cctest/wasm/test-run-wasm-js.cc
index 6d95d6e..827cb3a 100644
--- a/test/cctest/wasm/test-run-wasm-js.cc
+++ b/test/cctest/wasm/test-run-wasm-js.cc
@@ -25,14 +25,12 @@
     r.Build(code, code + arraysize(code)); \
   } while (false)
 
-
 #define ADD_CODE(vec, ...)                                              \
   do {                                                                  \
     byte __buf[] = {__VA_ARGS__};                                       \
     for (size_t i = 0; i < sizeof(__buf); i++) vec.push_back(__buf[i]); \
   } while (false)
 
-
 namespace {
 // A helper for generating predictable but unique argument values that
 // are easy to debug (e.g. with misaligned stacks).
@@ -48,23 +46,6 @@
   }
 };
 
-
-uint32_t AddJsFunction(TestingModule* module, FunctionSig* sig,
-                       const char* source) {
-  Handle<JSFunction> jsfunc = Handle<JSFunction>::cast(v8::Utils::OpenHandle(
-      *v8::Local<v8::Function>::Cast(CompileRun(source))));
-  module->AddFunction(sig, Handle<Code>::null());
-  uint32_t index = static_cast<uint32_t>(module->module->functions.size() - 1);
-  Isolate* isolate = CcTest::InitIsolateOnce();
-  WasmName module_name = {"test", 4};
-  WasmName function_name = {nullptr, 0};
-  Handle<Code> code = CompileWasmToJSWrapper(isolate, module, jsfunc, sig,
-                                             module_name, function_name);
-  module->instance->function_code[index] = code;
-  return index;
-}
-
-
 uint32_t AddJSSelector(TestingModule* module, FunctionSig* sig, int which) {
   const int kMaxParams = 11;
   static const char* formals[kMaxParams] = {"",
@@ -86,22 +67,9 @@
   SNPrintF(source, "(function(%s) { return %c; })",
            formals[sig->parameter_count()], param);
 
-  return AddJsFunction(module, sig, source.start());
+  return module->AddJsFunction(sig, source.start());
 }
 
-
-Handle<JSFunction> WrapCode(ModuleEnv* module, uint32_t index) {
-  Isolate* isolate = module->module->shared_isolate;
-  // Wrap the code so it can be called as a JS function.
-  Handle<String> name = isolate->factory()->NewStringFromStaticChars("main");
-  Handle<JSObject> module_object = Handle<JSObject>(0, isolate);
-  Handle<Code> code = module->instance->function_code[index];
-  WasmJs::InstallWasmFunctionMap(isolate, isolate->native_context());
-  return compiler::CompileJSToWasmWrapper(isolate, module, name, code,
-                                          module_object, index);
-}
-
-
 void EXPECT_CALL(double expected, Handle<JSFunction> jsfunc,
                  Handle<Object>* buffer, int count) {
   Isolate* isolate = jsfunc->GetIsolate();
@@ -119,7 +87,6 @@
   }
 }
 
-
 void EXPECT_CALL(double expected, Handle<JSFunction> jsfunc, double a,
                  double b) {
   Isolate* isolate = jsfunc->GetIsolate();
@@ -134,68 +101,61 @@
   TestingModule module;
   WasmFunctionCompiler t(sigs.i_ii(), &module);
   BUILD(t, WASM_I32_SUB(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
-  Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+  Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
 
   EXPECT_CALL(33, jsfunc, 44, 11);
   EXPECT_CALL(-8723487, jsfunc, -8000000, 723487);
 }
 
-
 TEST(Run_Float32Div_jswrapped) {
   TestSignatures sigs;
   TestingModule module;
   WasmFunctionCompiler t(sigs.f_ff(), &module);
   BUILD(t, WASM_F32_DIV(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
-  Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+  Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
 
   EXPECT_CALL(92, jsfunc, 46, 0.5);
   EXPECT_CALL(64, jsfunc, -16, -0.25);
 }
 
-
 TEST(Run_Float64Add_jswrapped) {
   TestSignatures sigs;
   TestingModule module;
   WasmFunctionCompiler t(sigs.d_dd(), &module);
   BUILD(t, WASM_F64_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
-  Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+  Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
 
   EXPECT_CALL(3, jsfunc, 2, 1);
   EXPECT_CALL(-5.5, jsfunc, -5.25, -0.25);
 }
 
-
 TEST(Run_I32Popcount_jswrapped) {
   TestSignatures sigs;
   TestingModule module;
   WasmFunctionCompiler t(sigs.i_i(), &module);
   BUILD(t, WASM_I32_POPCNT(WASM_GET_LOCAL(0)));
-  Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+  Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
 
   EXPECT_CALL(2, jsfunc, 9, 0);
   EXPECT_CALL(3, jsfunc, 11, 0);
   EXPECT_CALL(6, jsfunc, 0x3F, 0);
-
-  USE(AddJsFunction);
 }
 
-
 TEST(Run_CallJS_Add_jswrapped) {
   TestSignatures sigs;
   TestingModule module;
   WasmFunctionCompiler t(sigs.i_i(), &module);
   uint32_t js_index =
-      AddJsFunction(&module, sigs.i_i(), "(function(a) { return a + 99; })");
-  BUILD(t, WASM_CALL_FUNCTION(js_index, WASM_GET_LOCAL(0)));
+      module.AddJsFunction(sigs.i_i(), "(function(a) { return a + 99; })");
+  BUILD(t, WASM_CALL_FUNCTION1(js_index, WASM_GET_LOCAL(0)));
 
-  Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+  Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
 
   EXPECT_CALL(101, jsfunc, 2, -8);
   EXPECT_CALL(199, jsfunc, 100, -1);
   EXPECT_CALL(-666666801, jsfunc, -666666900, -1);
 }
 
-
 void RunJSSelectTest(int which) {
   const int kMaxParams = 8;
   PredictableInputValues inputs(0x100);
@@ -212,24 +172,25 @@
 
     {
       std::vector<byte> code;
-      ADD_CODE(code, kExprCallFunction, static_cast<byte>(js_index));
 
       for (int i = 0; i < num_params; i++) {
         ADD_CODE(code, WASM_F64(inputs.arg_d(i)));
       }
 
+      ADD_CODE(code, kExprCallFunction, static_cast<byte>(num_params),
+               static_cast<byte>(js_index));
+
       size_t end = code.size();
       code.push_back(0);
       t.Build(&code[0], &code[end]);
     }
 
-    Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+    Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
     double expected = inputs.arg_d(which);
     EXPECT_CALL(expected, jsfunc, 0.0, 0.0);
   }
 }
 
-
 TEST(Run_JSSelect_0) { RunJSSelectTest(0); }
 
 TEST(Run_JSSelect_1) { RunJSSelectTest(1); }
@@ -246,7 +207,6 @@
 
 TEST(Run_JSSelect_7) { RunJSSelectTest(7); }
 
-
 void RunWASMSelectTest(int which) {
   PredictableInputValues inputs(0x200);
   Isolate* isolate = CcTest::InitIsolateOnce();
@@ -260,7 +220,7 @@
     TestingModule module;
     WasmFunctionCompiler t(&sig, &module);
     BUILD(t, WASM_GET_LOCAL(which));
-    Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+    Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
 
     Handle<Object> args[] = {
         isolate->factory()->NewNumber(inputs.arg_d(0)),
@@ -278,7 +238,6 @@
   }
 }
 
-
 TEST(Run_WASMSelect_0) { RunWASMSelectTest(0); }
 
 TEST(Run_WASMSelect_1) { RunWASMSelectTest(1); }
@@ -295,7 +254,6 @@
 
 TEST(Run_WASMSelect_7) { RunWASMSelectTest(7); }
 
-
 void RunWASMSelectAlignTest(int num_args, int num_params) {
   PredictableInputValues inputs(0x300);
   Isolate* isolate = CcTest::InitIsolateOnce();
@@ -310,7 +268,7 @@
     TestingModule module;
     WasmFunctionCompiler t(&sig, &module);
     BUILD(t, WASM_GET_LOCAL(which));
-    Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+    Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
 
     Handle<Object> args[] = {isolate->factory()->NewNumber(inputs.arg_d(0)),
                              isolate->factory()->NewNumber(inputs.arg_d(1)),
@@ -329,31 +287,26 @@
   }
 }
 
-
 TEST(Run_WASMSelectAlign_0) {
   RunWASMSelectAlignTest(0, 1);
   RunWASMSelectAlignTest(0, 2);
 }
 
-
 TEST(Run_WASMSelectAlign_1) {
   RunWASMSelectAlignTest(1, 2);
   RunWASMSelectAlignTest(1, 3);
 }
 
-
 TEST(Run_WASMSelectAlign_2) {
   RunWASMSelectAlignTest(2, 3);
   RunWASMSelectAlignTest(2, 4);
 }
 
-
 TEST(Run_WASMSelectAlign_3) {
   RunWASMSelectAlignTest(3, 3);
   RunWASMSelectAlignTest(3, 4);
 }
 
-
 TEST(Run_WASMSelectAlign_4) {
   RunWASMSelectAlignTest(4, 3);
   RunWASMSelectAlignTest(4, 4);
@@ -400,12 +353,13 @@
 
   // Build the calling code.
   std::vector<byte> code;
-  ADD_CODE(code, kExprCallFunction, 0);
 
   for (int i = 0; i < num_params; i++) {
     ADD_CODE(code, WASM_GET_LOCAL(i));
   }
 
+  ADD_CODE(code, kExprCallFunction, static_cast<byte>(num_params), 0);
+
   size_t end = code.size();
   code.push_back(0);
 
@@ -418,7 +372,7 @@
     WasmFunctionCompiler t(&sig, &module);
     t.Build(&code[0], &code[end]);
 
-    Handle<JSFunction> jsfunc = WrapCode(&module, t.CompileAndAdd());
+    Handle<JSFunction> jsfunc = module.WrapCode(t.CompileAndAdd());
 
     Handle<Object> args[] = {
         factory->NewNumber(inputs.arg_d(0)),
@@ -439,7 +393,6 @@
   }
 }
 
-
 TEST(Run_JSSelectAlign_0) {
   RunJSSelectAlignTest(0, 1);
   RunJSSelectAlignTest(0, 2);
diff --git a/test/cctest/wasm/test-run-wasm-module.cc b/test/cctest/wasm/test-run-wasm-module.cc
index 118a91f..05edd62 100644
--- a/test/cctest/wasm/test-run-wasm-module.cc
+++ b/test/cctest/wasm/test-run-wasm-module.cc
@@ -12,14 +12,13 @@
 #include "src/wasm/wasm-opcodes.h"
 
 #include "test/cctest/cctest.h"
+#include "test/cctest/wasm/test-signatures.h"
 
 using namespace v8::base;
 using namespace v8::internal;
 using namespace v8::internal::compiler;
 using namespace v8::internal::wasm;
 
-
-// TODO(titzer): fix arm64 frame alignment.
 namespace {
 void TestModule(WasmModuleIndex* module, int32_t expected_result) {
   Isolate* isolate = CcTest::InitIsolateOnce();
@@ -31,50 +30,16 @@
 }
 }  // namespace
 
-
-// A raw test that skips the WasmModuleBuilder.
-TEST(Run_WasmModule_CallAdd_rev) {
-  static const byte data[] = {
-      WASM_MODULE_HEADER,
-      // sig#0 ------------------------------------------
-      WASM_SECTION_SIGNATURES_SIZE + 7,          // Section size.
-      WASM_SECTION_SIGNATURES, 2, 0, kLocalI32,  // void -> int
-      2, kLocalI32, kLocalI32, kLocalI32,        // int,int -> int
-      // func#0 (main) ----------------------------------
-      WASM_SECTION_FUNCTIONS_SIZE + 24, WASM_SECTION_FUNCTIONS, 2,
-      kDeclFunctionExport, 0, 0,  // sig index
-      7, 0,                       // body size
-      0,                          // locals
-      kExprCallFunction, 1,       // --
-      kExprI8Const, 77,           // --
-      kExprI8Const, 22,           // --
-      // func#1 -----------------------------------------
-      0,                 // no name, not exported
-      1, 0,              // sig index
-      6, 0,              // body size
-      0,                 // locals
-      kExprI32Add,       // --
-      kExprGetLocal, 0,  // --
-      kExprGetLocal, 1,  // --
-  };
-
-  Isolate* isolate = CcTest::InitIsolateOnce();
-  HandleScope scope(isolate);
-  WasmJs::InstallWasmFunctionMap(isolate, isolate->native_context());
-  int32_t result =
-      CompileAndRunWasmModule(isolate, data, data + arraysize(data));
-  CHECK_EQ(99, result);
-}
-
-
 TEST(Run_WasmModule_Return114) {
   static const int32_t kReturnValue = 114;
+  TestSignatures sigs;
   v8::base::AccountingAllocator allocator;
   Zone zone(&allocator);
+
   WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
   uint16_t f_index = builder->AddFunction();
   WasmFunctionBuilder* f = builder->FunctionAt(f_index);
-  f->ReturnType(kAstI32);
+  f->SetSignature(sigs.i_v());
   f->Exported(1);
   byte code[] = {WASM_I8(kReturnValue)};
   f->EmitCode(code, sizeof(code));
@@ -82,38 +47,43 @@
   TestModule(writer->WriteTo(&zone), kReturnValue);
 }
 
-
 TEST(Run_WasmModule_CallAdd) {
   v8::base::AccountingAllocator allocator;
   Zone zone(&allocator);
+  TestSignatures sigs;
+
   WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
+
   uint16_t f1_index = builder->AddFunction();
   WasmFunctionBuilder* f = builder->FunctionAt(f1_index);
-  f->ReturnType(kAstI32);
-  uint16_t param1 = f->AddParam(kAstI32);
-  uint16_t param2 = f->AddParam(kAstI32);
+  f->SetSignature(sigs.i_ii());
+  uint16_t param1 = 0;
+  uint16_t param2 = 1;
   byte code1[] = {WASM_I32_ADD(WASM_GET_LOCAL(param1), WASM_GET_LOCAL(param2))};
-  uint32_t local_indices1[] = {2, 4};
-  f->EmitCode(code1, sizeof(code1), local_indices1, sizeof(local_indices1) / 4);
+  f->EmitCode(code1, sizeof(code1));
+
   uint16_t f2_index = builder->AddFunction();
   f = builder->FunctionAt(f2_index);
-  f->ReturnType(kAstI32);
+  f->SetSignature(sigs.i_v());
+
   f->Exported(1);
-  byte code2[] = {WASM_CALL_FUNCTION(f1_index, WASM_I8(77), WASM_I8(22))};
+  byte code2[] = {WASM_CALL_FUNCTION2(f1_index, WASM_I8(77), WASM_I8(22))};
   f->EmitCode(code2, sizeof(code2));
   WasmModuleWriter* writer = builder->Build(&zone);
   TestModule(writer->WriteTo(&zone), 99);
 }
 
-
 TEST(Run_WasmModule_ReadLoadedDataSegment) {
   static const byte kDataSegmentDest0 = 12;
   v8::base::AccountingAllocator allocator;
   Zone zone(&allocator);
+  TestSignatures sigs;
+
   WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
   uint16_t f_index = builder->AddFunction();
   WasmFunctionBuilder* f = builder->FunctionAt(f_index);
-  f->ReturnType(kAstI32);
+  f->SetSignature(sigs.i_v());
+
   f->Exported(1);
   byte code[] = {
       WASM_LOAD_MEM(MachineType::Int32(), WASM_I8(kDataSegmentDest0))};
@@ -129,10 +99,13 @@
   static const int kCheckSize = 16 * 1024;
   v8::base::AccountingAllocator allocator;
   Zone zone(&allocator);
+  TestSignatures sigs;
+
   WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
   uint16_t f_index = builder->AddFunction();
   WasmFunctionBuilder* f = builder->FunctionAt(f_index);
-  f->ReturnType(kAstI32);
+  f->SetSignature(sigs.i_v());
+
   uint16_t localIndex = f->AddLocal(kAstI32);
   f->Exported(1);
   byte code[] = {WASM_BLOCK(
@@ -143,7 +116,7 @@
               WASM_LOAD_MEM(MachineType::Int32(), WASM_GET_LOCAL(localIndex)),
               WASM_BRV(2, WASM_I8(-1)), WASM_INC_LOCAL_BY(localIndex, 4))),
       WASM_I8(11))};
-  f->EmitCode(code, sizeof(code), nullptr, 0);
+  f->EmitCode(code, sizeof(code));
   WasmModuleWriter* writer = builder->Build(&zone);
   TestModule(writer->WriteTo(&zone), 11);
 }
@@ -151,10 +124,13 @@
 TEST(Run_WasmModule_CallMain_recursive) {
   v8::base::AccountingAllocator allocator;
   Zone zone(&allocator);
+  TestSignatures sigs;
+
   WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
   uint16_t f_index = builder->AddFunction();
   WasmFunctionBuilder* f = builder->FunctionAt(f_index);
-  f->ReturnType(kAstI32);
+  f->SetSignature(sigs.i_v());
+
   uint16_t localIndex = f->AddLocal(kAstI32);
   f->Exported(1);
   byte code[] = {WASM_BLOCK(
@@ -165,7 +141,7 @@
                                                 WASM_INC_LOCAL(localIndex)),
                               WASM_BRV(1, WASM_CALL_FUNCTION0(0))),
                    WASM_BRV(0, WASM_I8(55))))};
-  f->EmitCode(code, sizeof(code), nullptr, 0);
+  f->EmitCode(code, sizeof(code));
   WasmModuleWriter* writer = builder->Build(&zone);
   TestModule(writer->WriteTo(&zone), 55);
 }
@@ -173,22 +149,24 @@
 TEST(Run_WasmModule_Global) {
   v8::base::AccountingAllocator allocator;
   Zone zone(&allocator);
+  TestSignatures sigs;
+
   WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
   uint32_t global1 = builder->AddGlobal(MachineType::Int32(), 0);
   uint32_t global2 = builder->AddGlobal(MachineType::Int32(), 0);
   uint16_t f1_index = builder->AddFunction();
   WasmFunctionBuilder* f = builder->FunctionAt(f1_index);
-  f->ReturnType(kAstI32);
+  f->SetSignature(sigs.i_v());
   byte code1[] = {
       WASM_I32_ADD(WASM_LOAD_GLOBAL(global1), WASM_LOAD_GLOBAL(global2))};
   f->EmitCode(code1, sizeof(code1));
   uint16_t f2_index = builder->AddFunction();
   f = builder->FunctionAt(f2_index);
-  f->ReturnType(kAstI32);
+  f->SetSignature(sigs.i_v());
   f->Exported(1);
   byte code2[] = {WASM_STORE_GLOBAL(global1, WASM_I32V_1(56)),
                   WASM_STORE_GLOBAL(global2, WASM_I32V_1(41)),
-                  WASM_RETURN(WASM_CALL_FUNCTION0(f1_index))};
+                  WASM_RETURN1(WASM_CALL_FUNCTION0(f1_index))};
   f->EmitCode(code2, sizeof(code2));
   WasmModuleWriter* writer = builder->Build(&zone);
   TestModule(writer->WriteTo(&zone), 97);
diff --git a/test/cctest/wasm/test-run-wasm.cc b/test/cctest/wasm/test-run-wasm.cc
index 70d461b..236624f 100644
--- a/test/cctest/wasm/test-run-wasm.cc
+++ b/test/cctest/wasm/test-run-wasm.cc
@@ -6,6 +6,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "src/base/platform/elapsed-timer.h"
+
 #include "src/wasm/wasm-macro-gen.h"
 
 #include "test/cctest/cctest.h"
@@ -19,12 +21,12 @@
 using namespace v8::internal::wasm;
 
 // for even shorter tests.
-#define B2(a, b) kExprBlock, 2, a, b
-#define B1(a) kExprBlock, 1, a
-#define RET(x) kExprReturn, x
-#define RET_I8(x) kExprReturn, kExprI8Const, x
+#define B2(a, b) kExprBlock, a, b, kExprEnd
+#define B1(a) kExprBlock, a, kExprEnd
+#define RET(x) x, kExprReturn, 1
+#define RET_I8(x) kExprI8Const, x, kExprReturn, 1
 
-TEST(Run_WasmInt8Const) {
+WASM_EXEC_TEST(Int8Const) {
   WasmRunner<int32_t> r;
   const byte kExpectedValue = 121;
   // return(kExpectedValue)
@@ -32,8 +34,7 @@
   CHECK_EQ(kExpectedValue, r.Call());
 }
 
-
-TEST(Run_WasmInt8Const_fallthru1) {
+WASM_EXEC_TEST(Int8Const_fallthru1) {
   WasmRunner<int32_t> r;
   const byte kExpectedValue = 122;
   // kExpectedValue
@@ -41,8 +42,7 @@
   CHECK_EQ(kExpectedValue, r.Call());
 }
 
-
-TEST(Run_WasmInt8Const_fallthru2) {
+WASM_EXEC_TEST(Int8Const_fallthru2) {
   WasmRunner<int32_t> r;
   const byte kExpectedValue = 123;
   // -99 kExpectedValue
@@ -50,8 +50,7 @@
   CHECK_EQ(kExpectedValue, r.Call());
 }
 
-
-TEST(Run_WasmInt8Const_all) {
+WASM_EXEC_TEST(Int8Const_all) {
   for (int value = -128; value <= 127; value++) {
     WasmRunner<int32_t> r;
     // return(value)
@@ -61,8 +60,7 @@
   }
 }
 
-
-TEST(Run_WasmInt32Const) {
+WASM_EXEC_TEST(Int32Const) {
   WasmRunner<int32_t> r;
   const int32_t kExpectedValue = 0x11223344;
   // return(kExpectedValue)
@@ -70,8 +68,7 @@
   CHECK_EQ(kExpectedValue, r.Call());
 }
 
-
-TEST(Run_WasmInt32Const_many) {
+WASM_EXEC_TEST(Int32Const_many) {
   FOR_INT32_INPUTS(i) {
     WasmRunner<int32_t> r;
     const int32_t kExpectedValue = *i;
@@ -81,8 +78,7 @@
   }
 }
 
-
-TEST(Run_WasmMemorySize) {
+WASM_EXEC_TEST(MemorySize) {
   TestingModule module;
   WasmRunner<int32_t> r(&module);
   module.AddMemory(1024);
@@ -90,56 +86,49 @@
   CHECK_EQ(1024, r.Call());
 }
 
-
-TEST(Run_WasmInt32Param0) {
+WASM_EXEC_TEST(Int32Param0) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // return(local[0])
   BUILD(r, WASM_GET_LOCAL(0));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 
-
-TEST(Run_WasmInt32Param0_fallthru) {
+WASM_EXEC_TEST(Int32Param0_fallthru) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // local[0]
   BUILD(r, WASM_GET_LOCAL(0));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 
-
-TEST(Run_WasmInt32Param1) {
+WASM_EXEC_TEST(Int32Param1) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
   // local[1]
   BUILD(r, WASM_GET_LOCAL(1));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(-111, *i)); }
 }
 
-
-TEST(Run_WasmInt32Add) {
+WASM_EXEC_TEST(Int32Add) {
   WasmRunner<int32_t> r;
   // 11 + 44
   BUILD(r, WASM_I32_ADD(WASM_I8(11), WASM_I8(44)));
   CHECK_EQ(55, r.Call());
 }
 
-
-TEST(Run_WasmInt32Add_P) {
+WASM_EXEC_TEST(Int32Add_P) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // p0 + 13
   BUILD(r, WASM_I32_ADD(WASM_I8(13), WASM_GET_LOCAL(0)));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i + 13, r.Call(*i)); }
 }
 
-
-TEST(Run_WasmInt32Add_P_fallthru) {
+WASM_EXEC_TEST(Int32Add_P_fallthru) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // p0 + 13
   BUILD(r, WASM_I32_ADD(WASM_I8(13), WASM_GET_LOCAL(0)));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i + 13, r.Call(*i)); }
 }
 
-
-TEST(Run_WasmInt32Add_P2) {
+WASM_EXEC_TEST(Int32Add_P2) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
   //  p0 + p1
   BUILD(r, WASM_I32_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -152,8 +141,7 @@
   }
 }
 
-
-TEST(Run_WasmFloat32Add) {
+WASM_EXEC_TEST(Float32Add) {
   WasmRunner<int32_t> r;
   // int(11.5f + 44.5f)
   BUILD(r,
@@ -161,15 +149,13 @@
   CHECK_EQ(56, r.Call());
 }
 
-
-TEST(Run_WasmFloat64Add) {
+WASM_EXEC_TEST(Float64Add) {
   WasmRunner<int32_t> r;
   // return int(13.5d + 43.5d)
   BUILD(r, WASM_I32_SCONVERT_F64(WASM_F64_ADD(WASM_F64(13.5), WASM_F64(43.5))));
   CHECK_EQ(57, r.Call());
 }
 
-
 void TestInt32Binop(WasmOpcode opcode, int32_t expected, int32_t a, int32_t b) {
   {
     WasmRunner<int32_t> r;
@@ -185,7 +171,7 @@
   }
 }
 
-TEST(Run_WasmInt32Binops) {
+WASM_EXEC_TEST(Int32Binops) {
   TestInt32Binop(kExprI32Add, 88888888, 33333333, 55555555);
   TestInt32Binop(kExprI32Sub, -1111111, 7777777, 8888888);
   TestInt32Binop(kExprI32Mul, 65130756, 88734, 734);
@@ -217,7 +203,6 @@
   TestInt32Binop(kExprI32GeU, 1, 0xF0000000, 98978);
 }
 
-
 void TestInt32Unop(WasmOpcode opcode, int32_t expected, int32_t a) {
   {
     WasmRunner<int32_t> r;
@@ -233,8 +218,7 @@
   }
 }
 
-
-TEST(Run_WasmInt32Clz) {
+WASM_EXEC_TEST(Int32Clz) {
   TestInt32Unop(kExprI32Clz, 0, 0x80001000);
   TestInt32Unop(kExprI32Clz, 1, 0x40000500);
   TestInt32Unop(kExprI32Clz, 2, 0x20000300);
@@ -270,8 +254,7 @@
   TestInt32Unop(kExprI32Clz, 32, 0x00000000);
 }
 
-
-TEST(Run_WasmInt32Ctz) {
+WASM_EXEC_TEST(Int32Ctz) {
   TestInt32Unop(kExprI32Ctz, 32, 0x00000000);
   TestInt32Unop(kExprI32Ctz, 31, 0x80000000);
   TestInt32Unop(kExprI32Ctz, 30, 0x40000000);
@@ -307,8 +290,7 @@
   TestInt32Unop(kExprI32Ctz, 0, 0x9afdbc81);
 }
 
-
-TEST(Run_WasmInt32Popcnt) {
+WASM_EXEC_TEST(Int32Popcnt) {
   TestInt32Unop(kExprI32Popcnt, 32, 0xffffffff);
   TestInt32Unop(kExprI32Popcnt, 0, 0x00000000);
   TestInt32Unop(kExprI32Popcnt, 1, 0x00008000);
@@ -316,7 +298,7 @@
   TestInt32Unop(kExprI32Popcnt, 19, 0xfedcba09);
 }
 
-TEST(Run_WasmI32Eqz) {
+WASM_EXEC_TEST(I32Eqz) {
   TestInt32Unop(kExprI32Eqz, 0, 1);
   TestInt32Unop(kExprI32Eqz, 0, -1);
   TestInt32Unop(kExprI32Eqz, 0, -827343);
@@ -324,7 +306,7 @@
   TestInt32Unop(kExprI32Eqz, 1, 0);
 }
 
-TEST(Run_WasmI32Shl) {
+WASM_EXEC_TEST(I32Shl) {
   WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
   BUILD(r, WASM_I32_SHL(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -336,7 +318,7 @@
   }
 }
 
-TEST(Run_WasmI32Shr) {
+WASM_EXEC_TEST(I32Shr) {
   WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
   BUILD(r, WASM_I32_SHR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -348,7 +330,7 @@
   }
 }
 
-TEST(Run_WasmI32Sar) {
+WASM_EXEC_TEST(I32Sar) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
   BUILD(r, WASM_I32_SAR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -360,7 +342,7 @@
   }
 }
 
-TEST(Run_WASM_Int32DivS_trap) {
+WASM_EXEC_TEST(Int32DivS_trap) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
   BUILD(r, WASM_I32_DIVS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   const int32_t kMin = std::numeric_limits<int32_t>::min();
@@ -371,8 +353,7 @@
   CHECK_TRAP(r.Call(kMin, 0));
 }
 
-
-TEST(Run_WASM_Int32RemS_trap) {
+WASM_EXEC_TEST(Int32RemS_trap) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
   BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   const int32_t kMin = std::numeric_limits<int32_t>::min();
@@ -383,8 +364,7 @@
   CHECK_TRAP(r.Call(kMin, 0));
 }
 
-
-TEST(Run_WASM_Int32DivU_trap) {
+WASM_EXEC_TEST(Int32DivU_trap) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
   BUILD(r, WASM_I32_DIVU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   const int32_t kMin = std::numeric_limits<int32_t>::min();
@@ -395,8 +375,7 @@
   CHECK_TRAP(r.Call(kMin, 0));
 }
 
-
-TEST(Run_WASM_Int32RemU_trap) {
+WASM_EXEC_TEST(Int32RemU_trap) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
   BUILD(r, WASM_I32_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   CHECK_EQ(17, r.Call(217, 100));
@@ -407,60 +386,7 @@
   CHECK_EQ(kMin, r.Call(kMin, -1));
 }
 
-TEST(Run_WASM_Int32DivS_asmjs) {
-  TestingModule module;
-  module.origin = kAsmJsOrigin;
-  WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32());
-  BUILD(r, WASM_I32_DIVS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
-  const int32_t kMin = std::numeric_limits<int32_t>::min();
-  CHECK_EQ(0, r.Call(0, 100));
-  CHECK_EQ(0, r.Call(100, 0));
-  CHECK_EQ(0, r.Call(-1001, 0));
-  CHECK_EQ(kMin, r.Call(kMin, -1));
-  CHECK_EQ(0, r.Call(kMin, 0));
-}
-
-TEST(Run_WASM_Int32RemS_asmjs) {
-  TestingModule module;
-  module.origin = kAsmJsOrigin;
-  WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32());
-  BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
-  const int32_t kMin = std::numeric_limits<int32_t>::min();
-  CHECK_EQ(33, r.Call(133, 100));
-  CHECK_EQ(0, r.Call(kMin, -1));
-  CHECK_EQ(0, r.Call(100, 0));
-  CHECK_EQ(0, r.Call(-1001, 0));
-  CHECK_EQ(0, r.Call(kMin, 0));
-}
-
-TEST(Run_WASM_Int32DivU_asmjs) {
-  TestingModule module;
-  module.origin = kAsmJsOrigin;
-  WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32());
-  BUILD(r, WASM_I32_DIVU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
-  const int32_t kMin = std::numeric_limits<int32_t>::min();
-  CHECK_EQ(0, r.Call(0, 100));
-  CHECK_EQ(0, r.Call(kMin, -1));
-  CHECK_EQ(0, r.Call(100, 0));
-  CHECK_EQ(0, r.Call(-1001, 0));
-  CHECK_EQ(0, r.Call(kMin, 0));
-}
-
-TEST(Run_WASM_Int32RemU_asmjs) {
-  TestingModule module;
-  module.origin = kAsmJsOrigin;
-  WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32());
-  BUILD(r, WASM_I32_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
-  const int32_t kMin = std::numeric_limits<int32_t>::min();
-  CHECK_EQ(17, r.Call(217, 100));
-  CHECK_EQ(0, r.Call(100, 0));
-  CHECK_EQ(0, r.Call(-1001, 0));
-  CHECK_EQ(0, r.Call(kMin, 0));
-  CHECK_EQ(kMin, r.Call(kMin, -1));
-}
-
-
-TEST(Run_WASM_Int32DivS_byzero_const) {
+WASM_EXEC_TEST(Int32DivS_byzero_const) {
   for (int8_t denom = -2; denom < 8; denom++) {
     WasmRunner<int32_t> r(MachineType::Int32());
     BUILD(r, WASM_I32_DIVS(WASM_GET_LOCAL(0), WASM_I8(denom)));
@@ -474,8 +400,7 @@
   }
 }
 
-
-TEST(Run_WASM_Int32DivU_byzero_const) {
+WASM_EXEC_TEST(Int32DivU_byzero_const) {
   for (uint32_t denom = 0xfffffffe; denom < 8; denom++) {
     WasmRunner<uint32_t> r(MachineType::Uint32());
     BUILD(r, WASM_I32_DIVU(WASM_GET_LOCAL(0), WASM_I32V_1(denom)));
@@ -490,8 +415,7 @@
   }
 }
 
-
-TEST(Run_WASM_Int32DivS_trap_effect) {
+WASM_EXEC_TEST(Int32DivS_trap_effect) {
   TestingModule module;
   module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32());
@@ -525,7 +449,6 @@
   }
 }
 
-
 void TestFloat32BinopWithConvert(WasmOpcode opcode, int32_t expected, float a,
                                  float b) {
   {
@@ -544,7 +467,6 @@
   }
 }
 
-
 void TestFloat32UnopWithConvert(WasmOpcode opcode, int32_t expected, float a) {
   {
     WasmRunner<int32_t> r;
@@ -560,7 +482,6 @@
   }
 }
 
-
 void TestFloat64Binop(WasmOpcode opcode, int32_t expected, double a, double b) {
   {
     WasmRunner<int32_t> r;
@@ -576,7 +497,6 @@
   }
 }
 
-
 void TestFloat64BinopWithConvert(WasmOpcode opcode, int32_t expected, double a,
                                  double b) {
   {
@@ -594,7 +514,6 @@
   }
 }
 
-
 void TestFloat64UnopWithConvert(WasmOpcode opcode, int32_t expected, double a) {
   {
     WasmRunner<int32_t> r;
@@ -610,7 +529,7 @@
   }
 }
 
-TEST(Run_WasmFloat32Binops) {
+WASM_EXEC_TEST(Float32Binops) {
   TestFloat32Binop(kExprF32Eq, 1, 8.125f, 8.125f);
   TestFloat32Binop(kExprF32Ne, 1, 8.125f, 8.127f);
   TestFloat32Binop(kExprF32Lt, 1, -9.5f, -9.0f);
@@ -624,14 +543,14 @@
   TestFloat32BinopWithConvert(kExprF32Div, 11, 22.1f, 2.0f);
 }
 
-TEST(Run_WasmFloat32Unops) {
+WASM_EXEC_TEST(Float32Unops) {
   TestFloat32UnopWithConvert(kExprF32Abs, 8, 8.125f);
   TestFloat32UnopWithConvert(kExprF32Abs, 9, -9.125f);
   TestFloat32UnopWithConvert(kExprF32Neg, -213, 213.125f);
   TestFloat32UnopWithConvert(kExprF32Sqrt, 12, 144.4f);
 }
 
-TEST(Run_WasmFloat64Binops) {
+WASM_EXEC_TEST(Float64Binops) {
   TestFloat64Binop(kExprF64Eq, 1, 16.25, 16.25);
   TestFloat64Binop(kExprF64Ne, 1, 16.25, 16.15);
   TestFloat64Binop(kExprF64Lt, 1, -32.4, 11.7);
@@ -645,14 +564,14 @@
   TestFloat64BinopWithConvert(kExprF64Div, -1111, -2222.3, 2);
 }
 
-TEST(Run_WasmFloat64Unops) {
+WASM_EXEC_TEST(Float64Unops) {
   TestFloat64UnopWithConvert(kExprF64Abs, 108, 108.125);
   TestFloat64UnopWithConvert(kExprF64Abs, 209, -209.125);
   TestFloat64UnopWithConvert(kExprF64Neg, -209, 209.125);
   TestFloat64UnopWithConvert(kExprF64Sqrt, 13, 169.4);
 }
 
-TEST(Run_WasmFloat32Neg) {
+WASM_EXEC_TEST(Float32Neg) {
   WasmRunner<float> r(MachineType::Float32());
   BUILD(r, WASM_F32_NEG(WASM_GET_LOCAL(0)));
 
@@ -662,8 +581,22 @@
   }
 }
 
+WASM_EXEC_TEST(Float32SubMinusZero) {
+  WasmRunner<float> r(MachineType::Float32());
+  BUILD(r, WASM_F32_SUB(WASM_F32(-0.0), WASM_GET_LOCAL(0)));
 
-TEST(Run_WasmFloat64Neg) {
+  CHECK_EQ(0x7fe00000, bit_cast<uint32_t>(r.Call(bit_cast<float>(0x7fa00000))));
+}
+
+WASM_EXEC_TEST(Float64SubMinusZero) {
+  WasmRunner<double> r(MachineType::Float64());
+  BUILD(r, WASM_F64_SUB(WASM_F64(-0.0), WASM_GET_LOCAL(0)));
+
+  CHECK_EQ(0x7ff8123456789abc,
+           bit_cast<uint64_t>(r.Call(bit_cast<double>(0x7ff0123456789abc))));
+}
+
+WASM_EXEC_TEST(Float64Neg) {
   WasmRunner<double> r(MachineType::Float64());
   BUILD(r, WASM_F64_NEG(WASM_GET_LOCAL(0)));
 
@@ -673,8 +606,7 @@
   }
 }
 
-
-TEST(Run_Wasm_IfElse_P) {
+WASM_EXEC_TEST(IfElse_P) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // if (p0) return 11; else return 22;
   BUILD(r, WASM_IF_ELSE(WASM_GET_LOCAL(0),  // --
@@ -686,8 +618,53 @@
   }
 }
 
+WASM_EXEC_TEST(If_empty1) {
+  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  BUILD(r, WASM_GET_LOCAL(0), kExprIf, kExprEnd, WASM_GET_LOCAL(1));
+  FOR_UINT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i - 9, *i)); }
+}
 
-TEST(Run_Wasm_IfElse_Unreachable1) {
+WASM_EXEC_TEST(IfElse_empty1) {
+  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  BUILD(r, WASM_GET_LOCAL(0), kExprIf, kExprElse, kExprEnd, WASM_GET_LOCAL(1));
+  FOR_UINT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i - 8, *i)); }
+}
+
+WASM_EXEC_TEST(IfElse_empty2) {
+  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  BUILD(r, WASM_GET_LOCAL(0), kExprIf, WASM_ZERO, kExprElse, kExprEnd,
+        WASM_GET_LOCAL(1));
+  FOR_UINT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i - 7, *i)); }
+}
+
+WASM_EXEC_TEST(IfElse_empty3) {
+  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  BUILD(r, WASM_GET_LOCAL(0), kExprIf, kExprElse, WASM_ZERO, kExprEnd,
+        WASM_GET_LOCAL(1));
+  FOR_UINT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i - 6, *i)); }
+}
+
+WASM_EXEC_TEST(If_chain) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  // if (p0) 13; if (p0) 14; 15
+  BUILD(r, WASM_IF(WASM_GET_LOCAL(0), WASM_I8(13)),
+        WASM_IF(WASM_GET_LOCAL(0), WASM_I8(14)), WASM_I8(15));
+  FOR_INT32_INPUTS(i) { CHECK_EQ(15, r.Call(*i)); }
+}
+
+WASM_EXEC_TEST(If_chain_set) {
+  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  // if (p0) p1 = 73; if (p0) p1 = 74; p1
+  BUILD(r, WASM_IF(WASM_GET_LOCAL(0), WASM_SET_LOCAL(1, WASM_I8(73))),
+        WASM_IF(WASM_GET_LOCAL(0), WASM_SET_LOCAL(1, WASM_I8(74))),
+        WASM_GET_LOCAL(1));
+  FOR_INT32_INPUTS(i) {
+    int32_t expected = *i ? 74 : *i;
+    CHECK_EQ(expected, r.Call(*i, *i));
+  }
+}
+
+WASM_EXEC_TEST(IfElse_Unreachable1) {
   WasmRunner<int32_t> r;
   // if (0) unreachable; else return 22;
   BUILD(r, WASM_IF_ELSE(WASM_ZERO,         // --
@@ -696,24 +673,21 @@
   CHECK_EQ(27, r.Call());
 }
 
-
-TEST(Run_Wasm_Return12) {
+WASM_EXEC_TEST(Return12) {
   WasmRunner<int32_t> r;
 
   BUILD(r, RET_I8(12));
   CHECK_EQ(12, r.Call());
 }
 
-
-TEST(Run_Wasm_Return17) {
+WASM_EXEC_TEST(Return17) {
   WasmRunner<int32_t> r;
 
   BUILD(r, B1(RET_I8(17)));
   CHECK_EQ(17, r.Call());
 }
 
-
-TEST(Run_Wasm_Return_I32) {
+WASM_EXEC_TEST(Return_I32) {
   WasmRunner<int32_t> r(MachineType::Int32());
 
   BUILD(r, RET(WASM_GET_LOCAL(0)));
@@ -721,8 +695,7 @@
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 
-
-TEST(Run_Wasm_Return_F32) {
+WASM_EXEC_TEST(Return_F32) {
   WasmRunner<float> r(MachineType::Float32());
 
   BUILD(r, RET(WASM_GET_LOCAL(0)));
@@ -738,8 +711,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Return_F64) {
+WASM_EXEC_TEST(Return_F64) {
   WasmRunner<double> r(MachineType::Float64());
 
   BUILD(r, RET(WASM_GET_LOCAL(0)));
@@ -755,8 +727,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Select) {
+WASM_EXEC_TEST(Select) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // return select(11, 22, a);
   BUILD(r, WASM_SELECT(WASM_I8(11), WASM_I8(22), WASM_GET_LOCAL(0)));
@@ -766,8 +737,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Select_strict1) {
+WASM_EXEC_TEST(Select_strict1) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // select(a=0, a=1, a=2); return a
   BUILD(r, B2(WASM_SELECT(WASM_SET_LOCAL(0, WASM_I8(0)),
@@ -777,8 +747,7 @@
   FOR_INT32_INPUTS(i) { CHECK_EQ(2, r.Call(*i)); }
 }
 
-
-TEST(Run_Wasm_Select_strict2) {
+WASM_EXEC_TEST(Select_strict2) {
   WasmRunner<int32_t> r(MachineType::Int32());
   r.AllocateLocal(kAstI32);
   r.AllocateLocal(kAstI32);
@@ -791,7 +760,7 @@
   }
 }
 
-TEST(Run_Wasm_Select_strict3) {
+WASM_EXEC_TEST(Select_strict3) {
   WasmRunner<int32_t> r(MachineType::Int32());
   r.AllocateLocal(kAstI32);
   r.AllocateLocal(kAstI32);
@@ -805,8 +774,7 @@
   }
 }
 
-
-TEST(Run_Wasm_BrIf_strict) {
+WASM_EXEC_TEST(BrIf_strict) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(
       r,
@@ -816,14 +784,14 @@
   FOR_INT32_INPUTS(i) { CHECK_EQ(99, r.Call(*i)); }
 }
 
-TEST(Run_Wasm_BrTable0a) {
+WASM_EXEC_TEST(BrTable0a) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r,
         B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 0, BR_TARGET(0))), WASM_I8(91)));
   FOR_INT32_INPUTS(i) { CHECK_EQ(91, r.Call(*i)); }
 }
 
-TEST(Run_Wasm_BrTable0b) {
+WASM_EXEC_TEST(BrTable0b) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r,
         B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 1, BR_TARGET(0), BR_TARGET(0))),
@@ -831,7 +799,7 @@
   FOR_INT32_INPUTS(i) { CHECK_EQ(92, r.Call(*i)); }
 }
 
-TEST(Run_Wasm_BrTable0c) {
+WASM_EXEC_TEST(BrTable0c) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(
       r,
@@ -844,13 +812,13 @@
   }
 }
 
-TEST(Run_Wasm_BrTable1) {
+WASM_EXEC_TEST(BrTable1) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 0, BR_TARGET(0))), RET_I8(93));
   FOR_INT32_INPUTS(i) { CHECK_EQ(93, r.Call(*i)); }
 }
 
-TEST(Run_Wasm_BrTable_loop) {
+WASM_EXEC_TEST(BrTable_loop) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r,
         B2(WASM_LOOP(1, WASM_BR_TABLE(WASM_INC_LOCAL_BY(0, 1), 2, BR_TARGET(2),
@@ -864,7 +832,7 @@
   CHECK_EQ(98, r.Call(-100));
 }
 
-TEST(Run_Wasm_BrTable_br) {
+WASM_EXEC_TEST(BrTable_br) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r,
         B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 1, BR_TARGET(1), BR_TARGET(0))),
@@ -876,7 +844,7 @@
   CHECK_EQ(91, r.Call(3));
 }
 
-TEST(Run_Wasm_BrTable_br2) {
+WASM_EXEC_TEST(BrTable_br2) {
   WasmRunner<int32_t> r(MachineType::Int32());
 
   BUILD(r, B2(B2(B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 3, BR_TARGET(1),
@@ -893,7 +861,7 @@
   CHECK_EQ(85, r.Call(5));
 }
 
-TEST(Run_Wasm_BrTable4) {
+WASM_EXEC_TEST(BrTable4) {
   for (int i = 0; i < 4; i++) {
     for (int t = 0; t < 4; t++) {
       uint32_t cases[] = {0, 1, 2, 3};
@@ -920,7 +888,7 @@
   }
 }
 
-TEST(Run_Wasm_BrTable4x4) {
+WASM_EXEC_TEST(BrTable4x4) {
   for (byte a = 0; a < 4; a++) {
     for (byte b = 0; b < 4; b++) {
       for (byte c = 0; c < 4; c++) {
@@ -953,7 +921,7 @@
   }
 }
 
-TEST(Run_Wasm_BrTable4_fallthru) {
+WASM_EXEC_TEST(BrTable4_fallthru) {
   byte code[] = {
       B2(B2(B2(B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 3, BR_TARGET(0),
                                    BR_TARGET(1), BR_TARGET(2), BR_TARGET(3))),
@@ -979,7 +947,7 @@
   CHECK_EQ(108, r.Call(4, 100));
 }
 
-TEST(Run_Wasm_F32ReinterpretI32) {
+WASM_EXEC_TEST(F32ReinterpretI32) {
   TestingModule module;
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module);
@@ -994,8 +962,7 @@
   }
 }
 
-
-TEST(Run_Wasm_I32ReinterpretF32) {
+WASM_EXEC_TEST(I32ReinterpretF32) {
   TestingModule module;
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
@@ -1012,8 +979,7 @@
   }
 }
 
-
-TEST(Run_Wasm_ReturnStore) {
+WASM_EXEC_TEST(ReturnStore) {
   TestingModule module;
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module);
@@ -1028,8 +994,7 @@
   }
 }
 
-
-TEST(Run_Wasm_VoidReturn1) {
+WASM_EXEC_TEST(VoidReturn1) {
   // We use a wrapper function because WasmRunner<void> does not exist.
 
   // Build the test function.
@@ -1048,8 +1013,7 @@
   CHECK_EQ(kExpected, result);
 }
 
-
-TEST(Run_Wasm_VoidReturn2) {
+WASM_EXEC_TEST(VoidReturn2) {
   // We use a wrapper function because WasmRunner<void> does not exist.
   // Build the test function.
   TestSignatures sigs;
@@ -1067,13 +1031,42 @@
   CHECK_EQ(kExpected, result);
 }
 
+WASM_EXEC_TEST(Block_empty) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, kExprBlock, kExprEnd, WASM_GET_LOCAL(0));
+  FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
+}
 
-TEST(Run_Wasm_Block_If_P) {
+WASM_EXEC_TEST(Block_empty_br1) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, B1(WASM_BR(0)), WASM_GET_LOCAL(0));
+  FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
+}
+
+WASM_EXEC_TEST(Block_empty_brif1) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, B1(WASM_BR_IF(0, WASM_ZERO)), WASM_GET_LOCAL(0));
+  FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
+}
+
+WASM_EXEC_TEST(Block_empty_brif2) {
+  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  BUILD(r, B1(WASM_BR_IF(0, WASM_GET_LOCAL(1))), WASM_GET_LOCAL(0));
+  FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i, *i + 1)); }
+}
+
+WASM_EXEC_TEST(Block_br2) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, B1(WASM_BRV(0, WASM_GET_LOCAL(0))));
+  FOR_UINT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
+}
+
+WASM_EXEC_TEST(Block_If_P) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // { if (p0) return 51; return 52; }
   BUILD(r, B2(                                     // --
                WASM_IF(WASM_GET_LOCAL(0),          // --
-                       WASM_BRV(0, WASM_I8(51))),  // --
+                       WASM_BRV(1, WASM_I8(51))),  // --
                WASM_I8(52)));                      // --
   FOR_INT32_INPUTS(i) {
     int32_t expected = *i ? 51 : 52;
@@ -1081,8 +1074,31 @@
   }
 }
 
+WASM_EXEC_TEST(Loop_empty) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, kExprLoop, kExprEnd, WASM_GET_LOCAL(0));
+  FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
+}
 
-TEST(Run_Wasm_Block_BrIf_P) {
+WASM_EXEC_TEST(Loop_empty_br1) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, WASM_LOOP(1, WASM_BR(1)), WASM_GET_LOCAL(0));
+  FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
+}
+
+WASM_EXEC_TEST(Loop_empty_brif1) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, WASM_LOOP(1, WASM_BR_IF(1, WASM_ZERO)), WASM_GET_LOCAL(0));
+  FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
+}
+
+WASM_EXEC_TEST(Loop_empty_brif2) {
+  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  BUILD(r, WASM_LOOP(1, WASM_BR_IF(1, WASM_GET_LOCAL(1))), WASM_GET_LOCAL(0));
+  FOR_UINT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i, *i + 1)); }
+}
+
+WASM_EXEC_TEST(Block_BrIf_P) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B2(WASM_BRV_IF(0, WASM_I8(51), WASM_GET_LOCAL(0)), WASM_I8(52)));
   FOR_INT32_INPUTS(i) {
@@ -1091,8 +1107,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Block_IfElse_P_assign) {
+WASM_EXEC_TEST(Block_IfElse_P_assign) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // { if (p0) p0 = 71; else p0 = 72; return p0; }
   BUILD(r, B2(                                                // --
@@ -1106,8 +1121,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Block_IfElse_P_return) {
+WASM_EXEC_TEST(Block_IfElse_P_return) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // if (p0) return 81; else return 82;
   BUILD(r,                               // --
@@ -1120,8 +1134,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Block_If_P_assign) {
+WASM_EXEC_TEST(Block_If_P_assign) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // { if (p0) p0 = 61; p0; }
   BUILD(r, WASM_BLOCK(
@@ -1133,16 +1146,14 @@
   }
 }
 
-
-TEST(Run_Wasm_DanglingAssign) {
+WASM_EXEC_TEST(DanglingAssign) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // { return 0; p0 = 0; }
   BUILD(r, B2(RET_I8(99), WASM_SET_LOCAL(0, WASM_ZERO)));
   CHECK_EQ(99, r.Call(1));
 }
 
-
-TEST(Run_Wasm_ExprIf_P) {
+WASM_EXEC_TEST(ExprIf_P) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // p0 ? 11 : 22;
   BUILD(r, WASM_IF_ELSE(WASM_GET_LOCAL(0),  // --
@@ -1154,8 +1165,7 @@
   }
 }
 
-
-TEST(Run_Wasm_ExprIf_P_fallthru) {
+WASM_EXEC_TEST(ExprIf_P_fallthru) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // p0 ? 11 : 22;
   BUILD(r, WASM_IF_ELSE(WASM_GET_LOCAL(0),  // --
@@ -1167,14 +1177,13 @@
   }
 }
 
-
-TEST(Run_Wasm_CountDown) {
+WASM_EXEC_TEST(CountDown) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r,
         WASM_BLOCK(
             2, WASM_LOOP(
                    1, WASM_IF(WASM_GET_LOCAL(0),
-                              WASM_BRV(0, WASM_SET_LOCAL(
+                              WASM_BRV(1, WASM_SET_LOCAL(
                                               0, WASM_I32_SUB(WASM_GET_LOCAL(0),
                                                               WASM_I8(1)))))),
             WASM_GET_LOCAL(0)));
@@ -1183,12 +1192,11 @@
   CHECK_EQ(0, r.Call(100));
 }
 
-
-TEST(Run_Wasm_CountDown_fallthru) {
+WASM_EXEC_TEST(CountDown_fallthru) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r,
         WASM_BLOCK(
-            2, WASM_LOOP(3, WASM_IF(WASM_NOT(WASM_GET_LOCAL(0)), WASM_BREAK(0)),
+            2, WASM_LOOP(3, WASM_IF(WASM_NOT(WASM_GET_LOCAL(0)), WASM_BREAK(1)),
                          WASM_SET_LOCAL(
                              0, WASM_I32_SUB(WASM_GET_LOCAL(0), WASM_I8(1))),
                          WASM_CONTINUE(0)),
@@ -1198,8 +1206,7 @@
   CHECK_EQ(0, r.Call(100));
 }
 
-
-TEST(Run_Wasm_WhileCountDown) {
+WASM_EXEC_TEST(WhileCountDown) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, WASM_BLOCK(
                2, WASM_WHILE(WASM_GET_LOCAL(0),
@@ -1211,10 +1218,9 @@
   CHECK_EQ(0, r.Call(100));
 }
 
-
-TEST(Run_Wasm_Loop_if_break1) {
+WASM_EXEC_TEST(Loop_if_break1) {
   WasmRunner<int32_t> r(MachineType::Int32());
-  BUILD(r, B2(WASM_LOOP(2, WASM_IF(WASM_GET_LOCAL(0), WASM_BREAK(0)),
+  BUILD(r, B2(WASM_LOOP(2, WASM_IF(WASM_GET_LOCAL(0), WASM_BREAK(1)),
                         WASM_SET_LOCAL(0, WASM_I8(99))),
               WASM_GET_LOCAL(0)));
   CHECK_EQ(99, r.Call(0));
@@ -1223,8 +1229,7 @@
   CHECK_EQ(-29, r.Call(-29));
 }
 
-
-TEST(Run_Wasm_Loop_if_break2) {
+WASM_EXEC_TEST(Loop_if_break2) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B2(WASM_LOOP(2, WASM_BR_IF(1, WASM_GET_LOCAL(0)),
                         WASM_SET_LOCAL(0, WASM_I8(99))),
@@ -1235,8 +1240,7 @@
   CHECK_EQ(-29, r.Call(-29));
 }
 
-
-TEST(Run_Wasm_Loop_if_break_fallthru) {
+WASM_EXEC_TEST(Loop_if_break_fallthru) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B1(WASM_LOOP(2, WASM_IF(WASM_GET_LOCAL(0), WASM_BREAK(1)),
                         WASM_SET_LOCAL(0, WASM_I8(93)))),
@@ -1247,8 +1251,25 @@
   CHECK_EQ(-22, r.Call(-22));
 }
 
+WASM_EXEC_TEST(IfBreak1) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, WASM_IF(WASM_GET_LOCAL(0), WASM_SEQ(WASM_BR(0), WASM_UNREACHABLE)),
+        WASM_I8(91));
+  CHECK_EQ(91, r.Call(0));
+  CHECK_EQ(91, r.Call(1));
+  CHECK_EQ(91, r.Call(-8734));
+}
 
-TEST(Run_Wasm_LoadMemI32) {
+WASM_EXEC_TEST(IfBreak2) {
+  WasmRunner<int32_t> r(MachineType::Int32());
+  BUILD(r, WASM_IF(WASM_GET_LOCAL(0), WASM_SEQ(WASM_BR(0), RET_I8(77))),
+        WASM_I8(81));
+  CHECK_EQ(81, r.Call(0));
+  CHECK_EQ(81, r.Call(1));
+  CHECK_EQ(81, r.Call(-8734));
+}
+
+WASM_EXEC_TEST(LoadMemI32) {
   TestingModule module;
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
@@ -1266,8 +1287,7 @@
   CHECK_EQ(77777777, r.Call(0));
 }
 
-
-TEST(Run_Wasm_LoadMemI32_oob) {
+WASM_EXEC_TEST(LoadMemI32_oob) {
   TestingModule module;
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Uint32());
@@ -1286,30 +1306,7 @@
   }
 }
 
-
-TEST(Run_Wasm_LoadMemI32_oob_asm) {
-  TestingModule module;
-  module.origin = kAsmJsOrigin;
-  int32_t* memory = module.AddMemoryElems<int32_t>(8);
-  WasmRunner<int32_t> r(&module, MachineType::Uint32());
-  module.RandomizeMemory(1112);
-
-  BUILD(r, WASM_LOAD_MEM(MachineType::Int32(), WASM_GET_LOCAL(0)));
-
-  memory[0] = 999999;
-  CHECK_EQ(999999, r.Call(0u));
-  // TODO(titzer): offset 29-31 should also be OOB.
-  for (uint32_t offset = 32; offset < 40; offset++) {
-    CHECK_EQ(0, r.Call(offset));
-  }
-
-  for (uint32_t offset = 0x80000000; offset < 0x80000010; offset++) {
-    CHECK_EQ(0, r.Call(offset));
-  }
-}
-
-
-TEST(Run_Wasm_LoadMem_offset_oob) {
+WASM_EXEC_TEST(LoadMem_offset_oob) {
   TestingModule module;
   module.AddMemoryElems<int32_t>(8);
 
@@ -1335,8 +1332,7 @@
   }
 }
 
-
-TEST(Run_Wasm_LoadMemI32_offset) {
+WASM_EXEC_TEST(LoadMemI32_offset) {
   TestingModule module;
   int32_t* memory = module.AddMemoryElems<int32_t>(4);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
@@ -1361,10 +1357,9 @@
   CHECK_EQ(44444444, r.Call(8));
 }
 
-
 #if !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
 
-TEST(Run_Wasm_LoadMemI32_const_oob_misaligned) {
+WASM_EXEC_TEST(LoadMemI32_const_oob_misaligned) {
   const int kMemSize = 12;
   // TODO(titzer): Fix misaligned accesses on MIPS and re-enable.
   for (int offset = 0; offset < kMemSize + 5; offset++) {
@@ -1389,8 +1384,7 @@
 
 #endif
 
-
-TEST(Run_Wasm_LoadMemI32_const_oob) {
+WASM_EXEC_TEST(LoadMemI32_const_oob) {
   const int kMemSize = 24;
   for (int offset = 0; offset < kMemSize + 5; offset += 4) {
     for (int index = 0; index < kMemSize + 5; index += 4) {
@@ -1412,8 +1406,7 @@
   }
 }
 
-
-TEST(Run_Wasm_StoreMemI32_offset) {
+WASM_EXEC_TEST(StoreMemI32_offset) {
   TestingModule module;
   int32_t* memory = module.AddMemoryElems<int32_t>(4);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
@@ -1436,8 +1429,7 @@
   }
 }
 
-
-TEST(Run_Wasm_StoreMem_offset_oob) {
+WASM_EXEC_TEST(StoreMem_offset_oob) {
   TestingModule module;
   byte* memory = module.AddMemoryElems<byte>(32);
 
@@ -1473,8 +1465,7 @@
   }
 }
 
-
-TEST(Run_Wasm_LoadMemI32_P) {
+WASM_EXEC_TEST(LoadMemI32_P) {
   const int kNumElems = 8;
   TestingModule module;
   int32_t* memory = module.AddMemoryElems<int32_t>(kNumElems);
@@ -1488,8 +1479,7 @@
   }
 }
 
-
-TEST(Run_Wasm_MemI32_Sum) {
+WASM_EXEC_TEST(MemI32_Sum) {
   const int kNumElems = 20;
   TestingModule module;
   uint32_t* memory = module.AddMemoryElems<uint32_t>(kNumElems);
@@ -1521,24 +1511,22 @@
   }
 }
 
-
-TEST(Run_Wasm_CheckMachIntsZero) {
+WASM_EXEC_TEST(CheckMachIntsZero) {
   const int kNumElems = 55;
   TestingModule module;
   module.AddMemoryElems<uint32_t>(kNumElems);
   WasmRunner<uint32_t> r(&module, MachineType::Int32());
 
-  BUILD(r, kExprBlock, 2, kExprLoop, 1, kExprIf, kExprGetLocal, 0, kExprBr, 0,
-        kExprIfElse, kExprI32LoadMem, ZERO_ALIGNMENT, ZERO_OFFSET,
-        kExprGetLocal, 0, kExprBr, 2, kExprI8Const, 255, kExprSetLocal, 0,
-        kExprI32Sub, kExprGetLocal, 0, kExprI8Const, 4, kExprI8Const, 0);
+  BUILD(r, kExprLoop, kExprGetLocal, 0, kExprIf, kExprGetLocal, 0,
+        kExprI32LoadMem, 0, 0, kExprIf, kExprI8Const, 255, kExprReturn, ARITY_1,
+        kExprEnd, kExprGetLocal, 0, kExprI8Const, 4, kExprI32Sub, kExprSetLocal,
+        0, kExprBr, ARITY_1, DEPTH_0, kExprEnd, kExprEnd, kExprI8Const, 0);
 
   module.BlankMemory();
   CHECK_EQ(0, r.Call((kNumElems - 1) * 4));
 }
 
-
-TEST(Run_Wasm_MemF32_Sum) {
+WASM_EXEC_TEST(MemF32_Sum) {
   const int kSize = 5;
   TestingModule module;
   module.AddMemoryElems<float>(kSize);
@@ -1571,7 +1559,6 @@
   CHECK_EQ(71256.0f, buffer[0]);
 }
 
-
 template <typename T>
 T GenerateAndRunFold(WasmOpcode binop, T* buffer, size_t size,
                      LocalType astType, MachineType memType) {
@@ -1602,8 +1589,7 @@
   return module.raw_mem_at<double>(0);
 }
 
-
-TEST(Run_Wasm_MemF64_Mul) {
+WASM_EXEC_TEST(MemF64_Mul) {
   const size_t kSize = 6;
   double buffer[kSize] = {1, 2, 2, 2, 2, 2};
   double result = GenerateAndRunFold<double>(kExprF64Mul, buffer, kSize,
@@ -1611,14 +1597,12 @@
   CHECK_EQ(32, result);
 }
 
-
 TEST(Build_Wasm_Infinite_Loop) {
   WasmRunner<int32_t> r(MachineType::Int32());
   // Only build the graph and compile, don't run.
   BUILD(r, WASM_INFINITE_LOOP);
 }
 
-
 TEST(Build_Wasm_Infinite_Loop_effect) {
   TestingModule module;
   module.AddMemoryElems<int8_t>(16);
@@ -1628,55 +1612,47 @@
   BUILD(r, WASM_LOOP(1, WASM_LOAD_MEM(MachineType::Int32(), WASM_ZERO)));
 }
 
-
-TEST(Run_Wasm_Unreachable0a) {
+WASM_EXEC_TEST(Unreachable0a) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B2(WASM_BRV(0, WASM_I8(9)), RET(WASM_GET_LOCAL(0))));
   CHECK_EQ(9, r.Call(0));
   CHECK_EQ(9, r.Call(1));
 }
 
-
-TEST(Run_Wasm_Unreachable0b) {
+WASM_EXEC_TEST(Unreachable0b) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B2(WASM_BRV(0, WASM_I8(7)), WASM_UNREACHABLE));
   CHECK_EQ(7, r.Call(0));
   CHECK_EQ(7, r.Call(1));
 }
 
-
 TEST(Build_Wasm_Unreachable1) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE);
 }
 
-
 TEST(Build_Wasm_Unreachable2) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE, WASM_UNREACHABLE);
 }
 
-
 TEST(Build_Wasm_Unreachable3) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE, WASM_UNREACHABLE, WASM_UNREACHABLE);
 }
 
-
 TEST(Build_Wasm_UnreachableIf1) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE, WASM_IF(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0)));
 }
 
-
 TEST(Build_Wasm_UnreachableIf2) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE,
         WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_UNREACHABLE));
 }
 
-
-TEST(Run_Wasm_Unreachable_Load) {
+WASM_EXEC_TEST(Unreachable_Load) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B2(WASM_BRV(0, WASM_GET_LOCAL(0)),
               WASM_LOAD_MEM(MachineType::Int8(), WASM_GET_LOCAL(0))));
@@ -1684,25 +1660,22 @@
   CHECK_EQ(21, r.Call(21));
 }
 
-
-TEST(Run_Wasm_Infinite_Loop_not_taken1) {
+WASM_EXEC_TEST(Infinite_Loop_not_taken1) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B2(WASM_IF(WASM_GET_LOCAL(0), WASM_INFINITE_LOOP), WASM_I8(45)));
   // Run the code, but don't go into the infinite loop.
   CHECK_EQ(45, r.Call(0));
 }
 
-
-TEST(Run_Wasm_Infinite_Loop_not_taken2) {
+WASM_EXEC_TEST(Infinite_Loop_not_taken2) {
   WasmRunner<int32_t> r(MachineType::Int32());
-  BUILD(r, B1(WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_BRV(0, WASM_I8(45)),
+  BUILD(r, B1(WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_BRV(1, WASM_I8(45)),
                            WASM_INFINITE_LOOP)));
   // Run the code, but don't go into the infinite loop.
   CHECK_EQ(45, r.Call(1));
 }
 
-
-TEST(Run_Wasm_Infinite_Loop_not_taken2_brif) {
+WASM_EXEC_TEST(Infinite_Loop_not_taken2_brif) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r,
         B2(WASM_BRV_IF(0, WASM_I8(45), WASM_GET_LOCAL(0)), WASM_INFINITE_LOOP));
@@ -1710,10 +1683,7 @@
   CHECK_EQ(45, r.Call(1));
 }
 
-
 static void TestBuildGraphForSimpleExpression(WasmOpcode opcode) {
-  if (!WasmOpcodes::IsSupported(opcode)) return;
-
   Isolate* isolate = CcTest::InitIsolateOnce();
   Zone zone(isolate->allocator());
   HandleScope scope(isolate);
@@ -1726,20 +1696,18 @@
   FunctionSig* sig = WasmOpcodes::Signature(opcode);
 
   if (sig->parameter_count() == 1) {
-    byte code[] = {WASM_NO_LOCALS, static_cast<byte>(opcode), kExprGetLocal, 0};
-    TestBuildingGraph(&zone, &jsgraph, nullptr, sig, code,
+    byte code[] = {WASM_NO_LOCALS, kExprGetLocal, 0, static_cast<byte>(opcode)};
+    TestBuildingGraph(&zone, &jsgraph, nullptr, sig, nullptr, code,
                       code + arraysize(code));
   } else {
     CHECK_EQ(2, sig->parameter_count());
-    byte code[] = {WASM_NO_LOCALS, static_cast<byte>(opcode),
-                   kExprGetLocal,  0,
-                   kExprGetLocal,  1};
-    TestBuildingGraph(&zone, &jsgraph, nullptr, sig, code,
+    byte code[] = {WASM_NO_LOCALS,           kExprGetLocal, 0, kExprGetLocal, 1,
+                   static_cast<byte>(opcode)};
+    TestBuildingGraph(&zone, &jsgraph, nullptr, sig, nullptr, code,
                       code + arraysize(code));
   }
 }
 
-
 TEST(Build_Wasm_SimpleExprs) {
 // Test that the decoder can build a graph for all supported simple expressions.
 #define GRAPH_BUILD_TEST(name, opcode, sig) \
@@ -1750,8 +1718,7 @@
 #undef GRAPH_BUILD_TEST
 }
 
-
-TEST(Run_Wasm_Int32LoadInt8_signext) {
+WASM_EXEC_TEST(Int32LoadInt8_signext) {
   TestingModule module;
   const int kNumElems = 16;
   int8_t* memory = module.AddMemoryElems<int8_t>(kNumElems);
@@ -1765,8 +1732,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Int32LoadInt8_zeroext) {
+WASM_EXEC_TEST(Int32LoadInt8_zeroext) {
   TestingModule module;
   const int kNumElems = 16;
   byte* memory = module.AddMemory(kNumElems);
@@ -1780,8 +1746,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Int32LoadInt16_signext) {
+WASM_EXEC_TEST(Int32LoadInt16_signext) {
   TestingModule module;
   const int kNumBytes = 16;
   byte* memory = module.AddMemory(kNumBytes);
@@ -1796,8 +1761,7 @@
   }
 }
 
-
-TEST(Run_Wasm_Int32LoadInt16_zeroext) {
+WASM_EXEC_TEST(Int32LoadInt16_zeroext) {
   TestingModule module;
   const int kNumBytes = 16;
   byte* memory = module.AddMemory(kNumBytes);
@@ -1812,8 +1776,7 @@
   }
 }
 
-
-TEST(Run_WasmInt32Global) {
+WASM_EXEC_TEST(Int32Global) {
   TestingModule module;
   int32_t* global = module.AddGlobal<int32_t>(MachineType::Int32());
   WasmRunner<int32_t> r(&module, MachineType::Int32());
@@ -1829,8 +1792,7 @@
   }
 }
 
-
-TEST(Run_WasmInt32Globals_DontAlias) {
+WASM_EXEC_TEST(Int32Globals_DontAlias) {
   const int kNumGlobals = 3;
   TestingModule module;
   int32_t* globals[] = {module.AddGlobal<int32_t>(MachineType::Int32()),
@@ -1858,8 +1820,7 @@
   }
 }
 
-
-TEST(Run_WasmFloat32Global) {
+WASM_EXEC_TEST(Float32Global) {
   TestingModule module;
   float* global = module.AddGlobal<float>(MachineType::Float32());
   WasmRunner<int32_t> r(&module, MachineType::Int32());
@@ -1877,8 +1838,7 @@
   }
 }
 
-
-TEST(Run_WasmFloat64Global) {
+WASM_EXEC_TEST(Float64Global) {
   TestingModule module;
   double* global = module.AddGlobal<double>(MachineType::Float64());
   WasmRunner<int32_t> r(&module, MachineType::Int32());
@@ -1896,8 +1856,7 @@
   }
 }
 
-
-TEST(Run_WasmMixedGlobals) {
+WASM_EXEC_TEST(MixedGlobals) {
   TestingModule module;
   int32_t* unused = module.AddGlobal<int32_t>(MachineType::Int32());
   byte* memory = module.AddMemory(32);
@@ -1951,8 +1910,7 @@
   USE(unused);
 }
 
-
-TEST(Run_WasmCallEmpty) {
+WASM_EXEC_TEST(CallEmpty) {
   const int32_t kExpected = -414444;
   // Build the target function.
   TestSignatures sigs;
@@ -1969,8 +1927,7 @@
   CHECK_EQ(kExpected, result);
 }
 
-
-TEST(Run_WasmCallF32StackParameter) {
+WASM_EXEC_TEST(CallF32StackParameter) {
   // Build the target function.
   LocalType param_types[20];
   for (int i = 0; i < 20; i++) param_types[i] = kAstF32;
@@ -1982,8 +1939,8 @@
 
   // Build the calling function.
   WasmRunner<float> r(&module);
-  BUILD(r, WASM_CALL_FUNCTION(
-               index, WASM_F32(1.0f), WASM_F32(2.0f), WASM_F32(4.0f),
+  BUILD(r, WASM_CALL_FUNCTIONN(
+               19, index, WASM_F32(1.0f), WASM_F32(2.0f), WASM_F32(4.0f),
                WASM_F32(8.0f), WASM_F32(16.0f), WASM_F32(32.0f),
                WASM_F32(64.0f), WASM_F32(128.0f), WASM_F32(256.0f),
                WASM_F32(1.5f), WASM_F32(2.5f), WASM_F32(4.5f), WASM_F32(8.5f),
@@ -1994,8 +1951,7 @@
   CHECK_EQ(256.5f, result);
 }
 
-
-TEST(Run_WasmCallF64StackParameter) {
+WASM_EXEC_TEST(CallF64StackParameter) {
   // Build the target function.
   LocalType param_types[20];
   for (int i = 0; i < 20; i++) param_types[i] = kAstF64;
@@ -2007,19 +1963,19 @@
 
   // Build the calling function.
   WasmRunner<double> r(&module);
-  BUILD(r, WASM_CALL_FUNCTION(index, WASM_F64(1.0), WASM_F64(2.0),
-                              WASM_F64(4.0), WASM_F64(8.0), WASM_F64(16.0),
-                              WASM_F64(32.0), WASM_F64(64.0), WASM_F64(128.0),
-                              WASM_F64(256.0), WASM_F64(1.5), WASM_F64(2.5),
-                              WASM_F64(4.5), WASM_F64(8.5), WASM_F64(16.5),
-                              WASM_F64(32.5), WASM_F64(64.5), WASM_F64(128.5),
-                              WASM_F64(256.5), WASM_F64(512.5)));
+  BUILD(r, WASM_CALL_FUNCTIONN(19, index, WASM_F64(1.0), WASM_F64(2.0),
+                               WASM_F64(4.0), WASM_F64(8.0), WASM_F64(16.0),
+                               WASM_F64(32.0), WASM_F64(64.0), WASM_F64(128.0),
+                               WASM_F64(256.0), WASM_F64(1.5), WASM_F64(2.5),
+                               WASM_F64(4.5), WASM_F64(8.5), WASM_F64(16.5),
+                               WASM_F64(32.5), WASM_F64(64.5), WASM_F64(128.5),
+                               WASM_F64(256.5), WASM_F64(512.5)));
 
   float result = r.Call();
   CHECK_EQ(256.5, result);
 }
 
-TEST(Run_WasmCallVoid) {
+WASM_EXEC_TEST(CallVoid) {
   const byte kMemOffset = 8;
   const int32_t kElemNum = kMemOffset / sizeof(int32_t);
   const int32_t kExpected = -414444;
@@ -2043,8 +1999,7 @@
   CHECK_EQ(kExpected, module.raw_mem_start<int32_t>()[kElemNum]);
 }
 
-
-TEST(Run_WasmCall_Int32Add) {
+WASM_EXEC_TEST(Call_Int32Add) {
   // Build the target function.
   TestSignatures sigs;
   TestingModule module;
@@ -2054,7 +2009,7 @@
 
   // Build the caller function.
   WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32());
-  BUILD(r, WASM_CALL_FUNCTION(index, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
+  BUILD(r, WASM_CALL_FUNCTION2(index, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_INT32_INPUTS(i) {
     FOR_INT32_INPUTS(j) {
@@ -2065,7 +2020,7 @@
   }
 }
 
-TEST(Run_WasmCall_Float32Sub) {
+WASM_EXEC_TEST(Call_Float32Sub) {
   TestSignatures sigs;
   TestingModule module;
   WasmFunctionCompiler t(sigs.f_ff(), &module);
@@ -2076,15 +2031,14 @@
 
   // Builder the caller function.
   WasmRunner<float> r(&module, MachineType::Float32(), MachineType::Float32());
-  BUILD(r, WASM_CALL_FUNCTION(index, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
+  BUILD(r, WASM_CALL_FUNCTION2(index, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_FLOAT32_INPUTS(i) {
     FOR_FLOAT32_INPUTS(j) { CHECK_FLOAT_EQ(*i - *j, r.Call(*i, *j)); }
   }
 }
 
-
-TEST(Run_WasmCall_Float64Sub) {
+WASM_EXEC_TEST(Call_Float64Sub) {
   TestingModule module;
   double* memory = module.AddMemoryElems<double>(16);
   WasmRunner<int32_t> r(&module);
@@ -2118,7 +2072,6 @@
     for (size_t i = 0; i < sizeof(__buf); i++) vec.push_back(__buf[i]); \
   } while (false)
 
-
 static void Run_WasmMixedCall_N(int start) {
   const int kExpected = 6333;
   const int kElemSize = 8;
@@ -2165,23 +2118,30 @@
     // Build the calling function.
     // =========================================================================
     WasmRunner<int32_t> r(&module);
-
     std::vector<byte> code;
-    ADD_CODE(code,
-             static_cast<byte>(WasmOpcodes::LoadStoreOpcodeOf(result, true)),
-             ZERO_ALIGNMENT, ZERO_OFFSET);
-    ADD_CODE(code, WASM_ZERO);
-    ADD_CODE(code, kExprCallFunction, static_cast<byte>(index));
 
+    // Load the offset for the store.
+    ADD_CODE(code, WASM_ZERO);
+
+    // Load the arguments.
     for (int i = 0; i < num_params; i++) {
       int offset = (i + 1) * kElemSize;
       ADD_CODE(code, WASM_LOAD_MEM(memtypes[i], WASM_I8(offset)));
     }
 
+    // Call the selector function.
+    ADD_CODE(code, kExprCallFunction, static_cast<byte>(num_params),
+             static_cast<byte>(index));
+
+    // Store the result in memory.
+    ADD_CODE(code,
+             static_cast<byte>(WasmOpcodes::LoadStoreOpcodeOf(result, true)),
+             ZERO_ALIGNMENT, ZERO_OFFSET);
+
+    // Return the expected value.
     ADD_CODE(code, WASM_I32V_2(kExpected));
-    size_t end = code.size();
-    code.push_back(0);
-    r.Build(&code[0], &code[end]);
+
+    r.Build(&code[0], &code[0] + code.size());
 
     // Run the code.
     for (int t = 0; t < 10; t++) {
@@ -2199,13 +2159,12 @@
   }
 }
 
+WASM_EXEC_TEST(MixedCall_0) { Run_WasmMixedCall_N(0); }
+WASM_EXEC_TEST(MixedCall_1) { Run_WasmMixedCall_N(1); }
+WASM_EXEC_TEST(MixedCall_2) { Run_WasmMixedCall_N(2); }
+WASM_EXEC_TEST(MixedCall_3) { Run_WasmMixedCall_N(3); }
 
-TEST(Run_WasmMixedCall_0) { Run_WasmMixedCall_N(0); }
-TEST(Run_WasmMixedCall_1) { Run_WasmMixedCall_N(1); }
-TEST(Run_WasmMixedCall_2) { Run_WasmMixedCall_N(2); }
-TEST(Run_WasmMixedCall_3) { Run_WasmMixedCall_N(3); }
-
-TEST(Run_Wasm_AddCall) {
+WASM_EXEC_TEST(AddCall) {
   TestSignatures sigs;
   TestingModule module;
   WasmFunctionCompiler t1(sigs.i_ii(), &module);
@@ -2216,21 +2175,21 @@
   byte local = r.AllocateLocal(kAstI32);
   BUILD(r, B2(WASM_SET_LOCAL(local, WASM_I8(99)),
               WASM_I32_ADD(
-                  WASM_CALL_FUNCTION(t1.function_index_, WASM_GET_LOCAL(0),
-                                     WASM_GET_LOCAL(0)),
-                  WASM_CALL_FUNCTION(t1.function_index_, WASM_GET_LOCAL(1),
-                                     WASM_GET_LOCAL(local)))));
+                  WASM_CALL_FUNCTION2(t1.function_index_, WASM_GET_LOCAL(0),
+                                      WASM_GET_LOCAL(0)),
+                  WASM_CALL_FUNCTION2(t1.function_index_, WASM_GET_LOCAL(1),
+                                      WASM_GET_LOCAL(local)))));
 
   CHECK_EQ(198, r.Call(0));
   CHECK_EQ(200, r.Call(1));
   CHECK_EQ(100, r.Call(-49));
 }
 
-TEST(Run_Wasm_CountDown_expr) {
+WASM_EXEC_TEST(CountDown_expr) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, WASM_LOOP(
                3, WASM_IF(WASM_NOT(WASM_GET_LOCAL(0)),
-                          WASM_BREAKV(0, WASM_GET_LOCAL(0))),
+                          WASM_BREAKV(1, WASM_GET_LOCAL(0))),
                WASM_SET_LOCAL(0, WASM_I32_SUB(WASM_GET_LOCAL(0), WASM_I8(1))),
                WASM_CONTINUE(0)));
   CHECK_EQ(0, r.Call(1));
@@ -2238,51 +2197,46 @@
   CHECK_EQ(0, r.Call(100));
 }
 
-
-TEST(Run_Wasm_ExprBlock2a) {
+WASM_EXEC_TEST(ExprBlock2a) {
   WasmRunner<int32_t> r(MachineType::Int32());
-  BUILD(r, B2(WASM_IF(WASM_GET_LOCAL(0), WASM_BRV(0, WASM_I8(1))), WASM_I8(1)));
+  BUILD(r, B2(WASM_IF(WASM_GET_LOCAL(0), WASM_BRV(1, WASM_I8(1))), WASM_I8(1)));
   CHECK_EQ(1, r.Call(0));
   CHECK_EQ(1, r.Call(1));
 }
 
-
-TEST(Run_Wasm_ExprBlock2b) {
+WASM_EXEC_TEST(ExprBlock2b) {
   WasmRunner<int32_t> r(MachineType::Int32());
-  BUILD(r, B2(WASM_IF(WASM_GET_LOCAL(0), WASM_BRV(0, WASM_I8(1))), WASM_I8(2)));
+  BUILD(r, B2(WASM_IF(WASM_GET_LOCAL(0), WASM_BRV(1, WASM_I8(1))), WASM_I8(2)));
   CHECK_EQ(2, r.Call(0));
   CHECK_EQ(1, r.Call(1));
 }
 
-
-TEST(Run_Wasm_ExprBlock2c) {
+WASM_EXEC_TEST(ExprBlock2c) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B2(WASM_BRV_IF(0, WASM_I8(1), WASM_GET_LOCAL(0)), WASM_I8(1)));
   CHECK_EQ(1, r.Call(0));
   CHECK_EQ(1, r.Call(1));
 }
 
-
-TEST(Run_Wasm_ExprBlock2d) {
+WASM_EXEC_TEST(ExprBlock2d) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, B2(WASM_BRV_IF(0, WASM_I8(1), WASM_GET_LOCAL(0)), WASM_I8(2)));
   CHECK_EQ(2, r.Call(0));
   CHECK_EQ(1, r.Call(1));
 }
 
-
-TEST(Run_Wasm_ExprBlock_ManualSwitch) {
+WASM_EXEC_TEST(ExprBlock_ManualSwitch) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r, WASM_BLOCK(6, WASM_IF(WASM_I32_EQ(WASM_GET_LOCAL(0), WASM_I8(1)),
-                                 WASM_BRV(0, WASM_I8(11))),
+                                 WASM_BRV(1, WASM_I8(11))),
                       WASM_IF(WASM_I32_EQ(WASM_GET_LOCAL(0), WASM_I8(2)),
-                              WASM_BRV(0, WASM_I8(12))),
+                              WASM_BRV(1, WASM_I8(12))),
                       WASM_IF(WASM_I32_EQ(WASM_GET_LOCAL(0), WASM_I8(3)),
-                              WASM_BRV(0, WASM_I8(13))),
+                              WASM_BRV(1, WASM_I8(13))),
                       WASM_IF(WASM_I32_EQ(WASM_GET_LOCAL(0), WASM_I8(4)),
-                              WASM_BRV(0, WASM_I8(14))),
+                              WASM_BRV(1, WASM_I8(14))),
                       WASM_IF(WASM_I32_EQ(WASM_GET_LOCAL(0), WASM_I8(5)),
-                              WASM_BRV(0, WASM_I8(15))),
+                              WASM_BRV(1, WASM_I8(15))),
                       WASM_I8(99)));
   CHECK_EQ(99, r.Call(0));
   CHECK_EQ(11, r.Call(1));
@@ -2293,8 +2247,7 @@
   CHECK_EQ(99, r.Call(6));
 }
 
-
-TEST(Run_Wasm_ExprBlock_ManualSwitch_brif) {
+WASM_EXEC_TEST(ExprBlock_ManualSwitch_brif) {
   WasmRunner<int32_t> r(MachineType::Int32());
   BUILD(r,
         WASM_BLOCK(6, WASM_BRV_IF(0, WASM_I8(11),
@@ -2317,8 +2270,7 @@
   CHECK_EQ(99, r.Call(6));
 }
 
-
-TEST(Run_Wasm_nested_ifs) {
+WASM_EXEC_TEST(nested_ifs) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
 
   BUILD(r, WASM_IF_ELSE(
@@ -2326,36 +2278,32 @@
                WASM_IF_ELSE(WASM_GET_LOCAL(1), WASM_I8(11), WASM_I8(12)),
                WASM_IF_ELSE(WASM_GET_LOCAL(1), WASM_I8(13), WASM_I8(14))));
 
-
   CHECK_EQ(11, r.Call(1, 1));
   CHECK_EQ(12, r.Call(1, 0));
   CHECK_EQ(13, r.Call(0, 1));
   CHECK_EQ(14, r.Call(0, 0));
 }
 
-
-TEST(Run_Wasm_ExprBlock_if) {
+WASM_EXEC_TEST(ExprBlock_if) {
   WasmRunner<int32_t> r(MachineType::Int32());
 
   BUILD(r, B1(WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_BRV(0, WASM_I8(11)),
-                           WASM_BRV(0, WASM_I8(14)))));
+                           WASM_BRV(1, WASM_I8(14)))));
 
   CHECK_EQ(11, r.Call(1));
   CHECK_EQ(14, r.Call(0));
 }
 
-
-TEST(Run_Wasm_ExprBlock_nested_ifs) {
+WASM_EXEC_TEST(ExprBlock_nested_ifs) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
 
   BUILD(r, WASM_BLOCK(
                1, WASM_IF_ELSE(
                       WASM_GET_LOCAL(0),
                       WASM_IF_ELSE(WASM_GET_LOCAL(1), WASM_BRV(0, WASM_I8(11)),
-                                   WASM_BRV(0, WASM_I8(12))),
+                                   WASM_BRV(1, WASM_I8(12))),
                       WASM_IF_ELSE(WASM_GET_LOCAL(1), WASM_BRV(0, WASM_I8(13)),
-                                   WASM_BRV(0, WASM_I8(14))))));
-
+                                   WASM_BRV(1, WASM_I8(14))))));
 
   CHECK_EQ(11, r.Call(1, 1));
   CHECK_EQ(12, r.Call(1, 0));
@@ -2363,18 +2311,16 @@
   CHECK_EQ(14, r.Call(0, 0));
 }
 
-
-TEST(Run_Wasm_ExprLoop_nested_ifs) {
+WASM_EXEC_TEST(ExprLoop_nested_ifs) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
 
   BUILD(r, WASM_LOOP(
                1, WASM_IF_ELSE(
                       WASM_GET_LOCAL(0),
                       WASM_IF_ELSE(WASM_GET_LOCAL(1), WASM_BRV(1, WASM_I8(11)),
-                                   WASM_BRV(1, WASM_I8(12))),
+                                   WASM_BRV(3, WASM_I8(12))),
                       WASM_IF_ELSE(WASM_GET_LOCAL(1), WASM_BRV(1, WASM_I8(13)),
-                                   WASM_BRV(1, WASM_I8(14))))));
-
+                                   WASM_BRV(3, WASM_I8(14))))));
 
   CHECK_EQ(11, r.Call(1, 1));
   CHECK_EQ(12, r.Call(1, 0));
@@ -2382,8 +2328,7 @@
   CHECK_EQ(14, r.Call(0, 0));
 }
 
-
-TEST(Run_Wasm_SimpleCallIndirect) {
+WASM_EXEC_TEST(SimpleCallIndirect) {
   TestSignatures sigs;
   TestingModule module;
 
@@ -2407,15 +2352,14 @@
 
   // Builder the caller function.
   WasmRunner<int32_t> r(&module, MachineType::Int32());
-  BUILD(r, WASM_CALL_INDIRECT(1, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22)));
+  BUILD(r, WASM_CALL_INDIRECT2(1, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22)));
 
   CHECK_EQ(88, r.Call(0));
   CHECK_EQ(44, r.Call(1));
   CHECK_TRAP(r.Call(2));
 }
 
-
-TEST(Run_Wasm_MultipleCallIndirect) {
+WASM_EXEC_TEST(MultipleCallIndirect) {
   TestSignatures sigs;
   TestingModule module;
 
@@ -2440,11 +2384,11 @@
   // Builder the caller function.
   WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32(),
                         MachineType::Int32());
-  BUILD(r,
-        WASM_I32_ADD(WASM_CALL_INDIRECT(1, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1),
-                                        WASM_GET_LOCAL(2)),
-                     WASM_CALL_INDIRECT(1, WASM_GET_LOCAL(1), WASM_GET_LOCAL(2),
-                                        WASM_GET_LOCAL(0))));
+  BUILD(r, WASM_I32_ADD(
+               WASM_CALL_INDIRECT2(1, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1),
+                                   WASM_GET_LOCAL(2)),
+               WASM_CALL_INDIRECT2(1, WASM_GET_LOCAL(1), WASM_GET_LOCAL(2),
+                                   WASM_GET_LOCAL(0))));
 
   CHECK_EQ(5, r.Call(0, 1, 2));
   CHECK_EQ(19, r.Call(0, 1, 9));
@@ -2457,7 +2401,7 @@
   CHECK_TRAP(r.Call(2, 1, 0));
 }
 
-TEST(Run_Wasm_CallIndirect_NoTable) {
+WASM_EXEC_TEST(CallIndirect_NoTable) {
   TestSignatures sigs;
   TestingModule module;
 
@@ -2472,70 +2416,70 @@
 
   // Builder the caller function.
   WasmRunner<int32_t> r(&module, MachineType::Int32());
-  BUILD(r, WASM_CALL_INDIRECT(1, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22)));
+  BUILD(r, WASM_CALL_INDIRECT2(1, WASM_GET_LOCAL(0), WASM_I8(66), WASM_I8(22)));
 
   CHECK_TRAP(r.Call(0));
   CHECK_TRAP(r.Call(1));
   CHECK_TRAP(r.Call(2));
 }
 
-TEST(Run_Wasm_F32Floor) {
+WASM_EXEC_TEST(F32Floor) {
   WasmRunner<float> r(MachineType::Float32());
   BUILD(r, WASM_F32_FLOOR(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(floorf(*i), r.Call(*i)); }
 }
 
-TEST(Run_Wasm_F32Ceil) {
+WASM_EXEC_TEST(F32Ceil) {
   WasmRunner<float> r(MachineType::Float32());
   BUILD(r, WASM_F32_CEIL(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(ceilf(*i), r.Call(*i)); }
 }
 
-TEST(Run_Wasm_F32Trunc) {
+WASM_EXEC_TEST(F32Trunc) {
   WasmRunner<float> r(MachineType::Float32());
   BUILD(r, WASM_F32_TRUNC(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(truncf(*i), r.Call(*i)); }
 }
 
-TEST(Run_Wasm_F32NearestInt) {
+WASM_EXEC_TEST(F32NearestInt) {
   WasmRunner<float> r(MachineType::Float32());
   BUILD(r, WASM_F32_NEARESTINT(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(nearbyintf(*i), r.Call(*i)); }
 }
 
-TEST(Run_Wasm_F64Floor) {
+WASM_EXEC_TEST(F64Floor) {
   WasmRunner<double> r(MachineType::Float64());
   BUILD(r, WASM_F64_FLOOR(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(floor(*i), r.Call(*i)); }
 }
 
-TEST(Run_Wasm_F64Ceil) {
+WASM_EXEC_TEST(F64Ceil) {
   WasmRunner<double> r(MachineType::Float64());
   BUILD(r, WASM_F64_CEIL(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ceil(*i), r.Call(*i)); }
 }
 
-TEST(Run_Wasm_F64Trunc) {
+WASM_EXEC_TEST(F64Trunc) {
   WasmRunner<double> r(MachineType::Float64());
   BUILD(r, WASM_F64_TRUNC(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(trunc(*i), r.Call(*i)); }
 }
 
-TEST(Run_Wasm_F64NearestInt) {
+WASM_EXEC_TEST(F64NearestInt) {
   WasmRunner<double> r(MachineType::Float64());
   BUILD(r, WASM_F64_NEARESTINT(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(nearbyint(*i), r.Call(*i)); }
 }
 
-TEST(Run_Wasm_F32Min) {
+WASM_EXEC_TEST(F32Min) {
   WasmRunner<float> r(MachineType::Float32(), MachineType::Float32());
   BUILD(r, WASM_F32_MIN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -2558,8 +2502,7 @@
   }
 }
 
-
-TEST(Run_Wasm_F64Min) {
+WASM_EXEC_TEST(F64Min) {
   WasmRunner<double> r(MachineType::Float64(), MachineType::Float64());
   BUILD(r, WASM_F64_MIN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -2582,8 +2525,7 @@
   }
 }
 
-
-TEST(Run_Wasm_F32Max) {
+WASM_EXEC_TEST(F32Max) {
   WasmRunner<float> r(MachineType::Float32(), MachineType::Float32());
   BUILD(r, WASM_F32_MAX(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -2606,8 +2548,7 @@
   }
 }
 
-
-TEST(Run_Wasm_F64Max) {
+WASM_EXEC_TEST(F64Max) {
   WasmRunner<double> r(MachineType::Float64(), MachineType::Float64());
   BUILD(r, WASM_F64_MAX(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -2630,11 +2571,10 @@
   }
 }
 
-// TODO(ahaas): Fix on arm and mips and reenable.
-#if !V8_TARGET_ARCH_ARM && !V8_TARGET_ARCH_ARM64 && !V8_TARGET_ARCH_MIPS && \
-    !V8_TARGET_ARCH_MIPS64
+// TODO(ahaas): Fix on mips and reenable.
+#if !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
 
-TEST(Run_Wasm_F32Min_Snan) {
+WASM_EXEC_TEST(F32Min_Snan) {
   // Test that the instruction does not return a signalling NaN.
   {
     WasmRunner<float> r;
@@ -2650,7 +2590,7 @@
   }
 }
 
-TEST(Run_Wasm_F32Max_Snan) {
+WASM_EXEC_TEST(F32Max_Snan) {
   // Test that the instruction does not return a signalling NaN.
   {
     WasmRunner<float> r;
@@ -2666,7 +2606,7 @@
   }
 }
 
-TEST(Run_Wasm_F64Min_Snan) {
+WASM_EXEC_TEST(F64Min_Snan) {
   // Test that the instruction does not return a signalling NaN.
   {
     WasmRunner<double> r;
@@ -2682,7 +2622,7 @@
   }
 }
 
-TEST(Run_Wasm_F64Max_Snan) {
+WASM_EXEC_TEST(F64Max_Snan) {
   // Test that the instruction does not return a signalling NaN.
   {
     WasmRunner<double> r;
@@ -2700,7 +2640,7 @@
 
 #endif
 
-TEST(Run_Wasm_I32SConvertF32) {
+WASM_EXEC_TEST(I32SConvertF32) {
   WasmRunner<int32_t> r(MachineType::Float32());
   BUILD(r, WASM_I32_SCONVERT_F32(WASM_GET_LOCAL(0)));
 
@@ -2714,8 +2654,7 @@
   }
 }
 
-
-TEST(Run_Wasm_I32SConvertF64) {
+WASM_EXEC_TEST(I32SConvertF64) {
   WasmRunner<int32_t> r(MachineType::Float64());
   BUILD(r, WASM_I32_SCONVERT_F64(WASM_GET_LOCAL(0)));
 
@@ -2729,8 +2668,7 @@
   }
 }
 
-
-TEST(Run_Wasm_I32UConvertF32) {
+WASM_EXEC_TEST(I32UConvertF32) {
   WasmRunner<uint32_t> r(MachineType::Float32());
   BUILD(r, WASM_I32_UCONVERT_F32(WASM_GET_LOCAL(0)));
 
@@ -2743,8 +2681,7 @@
   }
 }
 
-
-TEST(Run_Wasm_I32UConvertF64) {
+WASM_EXEC_TEST(I32UConvertF64) {
   WasmRunner<uint32_t> r(MachineType::Float64());
   BUILD(r, WASM_I32_UCONVERT_F64(WASM_GET_LOCAL(0)));
 
@@ -2757,7 +2694,7 @@
   }
 }
 
-TEST(Run_Wasm_F64CopySign) {
+WASM_EXEC_TEST(F64CopySign) {
   WasmRunner<double> r(MachineType::Float64(), MachineType::Float64());
   BUILD(r, WASM_F64_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -2766,8 +2703,7 @@
   }
 }
 
-
-TEST(Run_Wasm_F32CopySign) {
+WASM_EXEC_TEST(F32CopySign) {
   WasmRunner<float> r(MachineType::Float32(), MachineType::Float32());
   BUILD(r, WASM_F32_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
@@ -2794,32 +2730,28 @@
     WasmFunctionCompiler t(sig, &module);
 
     std::vector<byte> code;
-    ADD_CODE(code, kExprCallIndirect, 1);
     ADD_CODE(code, kExprI8Const, 0);
     for (byte p = 0; p < num_params; p++) {
       ADD_CODE(code, kExprGetLocal, p);
     }
+    ADD_CODE(code, kExprCallIndirect, static_cast<byte>(num_params), 1);
 
     t.Build(&code[0], &code[0] + code.size());
     t.Compile();
   }
 }
 
-
 TEST(Compile_Wasm_CallIndirect_Many_i32) { CompileCallIndirectMany(kAstI32); }
 
-
 #if WASM_64
 TEST(Compile_Wasm_CallIndirect_Many_i64) { CompileCallIndirectMany(kAstI64); }
 #endif
 
-
 TEST(Compile_Wasm_CallIndirect_Many_f32) { CompileCallIndirectMany(kAstF32); }
 
-
 TEST(Compile_Wasm_CallIndirect_Many_f64) { CompileCallIndirectMany(kAstF64); }
 
-TEST(Run_WASM_Int32RemS_dead) {
+WASM_EXEC_TEST(Int32RemS_dead) {
   WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
   BUILD(r, WASM_I32_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)), WASM_ZERO);
   const int32_t kMin = std::numeric_limits<int32_t>::min();
diff --git a/test/cctest/wasm/test-wasm-function-name-table.cc b/test/cctest/wasm/test-wasm-function-name-table.cc
new file mode 100644
index 0000000..2f1e251
--- /dev/null
+++ b/test/cctest/wasm/test-wasm-function-name-table.cc
@@ -0,0 +1,110 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/wasm/wasm-function-name-table.h"
+#include "src/wasm/wasm-module.h"
+
+#include "test/cctest/cctest.h"
+
+using namespace v8::internal;
+using namespace v8::internal::wasm;
+
+namespace {
+
+#define CHECK_STREQ(exp, found)                                                \
+  do {                                                                         \
+    Vector<const char> exp_ = (exp);                                           \
+    Vector<const char> found_ = (found);                                       \
+    if (V8_UNLIKELY(exp_.length() != found_.length() ||                        \
+                    memcmp(exp_.start(), found_.start(), exp_.length()))) {    \
+      V8_Fatal(__FILE__, __LINE__,                                             \
+               "Check failed: (%s) != (%s) ('%.*s' vs '%.*s').", #exp, #found, \
+               exp_.length(), exp_.start(), found_.length(), found_.start());  \
+    }                                                                          \
+  } while (0)
+
+void testFunctionNameTable(Vector<Vector<const char>> names) {
+  Isolate *isolate = CcTest::InitIsolateOnce();
+  HandleAndZoneScope scope;
+
+  WasmModule module;
+  std::vector<char> all_names;
+
+  uint32_t func_index = 0;
+  for (Vector<const char> name : names) {
+    size_t name_offset = all_names.size();
+    all_names.insert(all_names.end(), name.start(),
+                     name.start() + name.length());
+    // Make every second function name null-terminated.
+    if (func_index % 2) all_names.push_back('\0');
+    module.functions.push_back(
+        {nullptr, 0, 0, static_cast<uint32_t>(name_offset),
+         static_cast<uint32_t>(name.length()), 0, 0, false});
+    ++func_index;
+  }
+
+  module.module_start = reinterpret_cast<byte *>(all_names.data());
+  module.module_end = module.module_start + all_names.size();
+
+  Handle<Object> wasm_function_name_table =
+      BuildFunctionNamesTable(isolate, &module);
+  CHECK(wasm_function_name_table->IsByteArray());
+
+  func_index = 0;
+  for (Vector<const char> name : names) {
+    Handle<Object> string_obj = GetWasmFunctionNameFromTable(
+        Handle<ByteArray>::cast(wasm_function_name_table), func_index);
+    CHECK(!string_obj.is_null());
+    CHECK(string_obj->IsString());
+    Handle<String> string = Handle<String>::cast(string_obj);
+    CHECK(string->IsUtf8EqualTo(name));
+    ++func_index;
+  }
+}
+
+void testFunctionNameTable(Vector<const char *> names) {
+  std::vector<Vector<const char>> names_vec;
+  for (const char *name : names) names_vec.push_back(CStrVector(name));
+  testFunctionNameTable(Vector<Vector<const char>>(
+      names_vec.data(), static_cast<int>(names_vec.size())));
+}
+
+}  // namespace
+
+TEST(NoFunctions) { testFunctionNameTable(Vector<Vector<const char>>()); }
+
+TEST(OneFunctions) {
+  const char *names[] = {"foo"};
+  testFunctionNameTable(ArrayVector(names));
+}
+
+TEST(ThreeFunctions) {
+  const char *names[] = {"foo", "bar", "baz"};
+  testFunctionNameTable(ArrayVector(names));
+}
+
+TEST(OneUnnamedFunction) {
+  const char *names[] = {""};
+  testFunctionNameTable(ArrayVector(names));
+}
+
+TEST(UnnamedFirstFunction) {
+  const char *names[] = {"", "bar", "baz"};
+  testFunctionNameTable(ArrayVector(names));
+}
+
+TEST(UnnamedLastFunction) {
+  const char *names[] = {"bar", "baz", ""};
+  testFunctionNameTable(ArrayVector(names));
+}
+
+TEST(ThreeUnnamedFunctions) {
+  const char *names[] = {"", "", ""};
+  testFunctionNameTable(ArrayVector(names));
+}
+
+TEST(UTF8Names) {
+  const char *names[] = {"↱fun↰", "↺", "alpha:α beta:β"};
+  testFunctionNameTable(ArrayVector(names));
+}
diff --git a/test/cctest/wasm/test-wasm-stack.cc b/test/cctest/wasm/test-wasm-stack.cc
new file mode 100644
index 0000000..b6cd674
--- /dev/null
+++ b/test/cctest/wasm/test-wasm-stack.cc
@@ -0,0 +1,166 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/wasm/wasm-macro-gen.h"
+
+#include "test/cctest/cctest.h"
+#include "test/cctest/compiler/value-helper.h"
+#include "test/cctest/wasm/test-signatures.h"
+#include "test/cctest/wasm/wasm-run-utils.h"
+
+using namespace v8::base;
+using namespace v8::internal;
+using namespace v8::internal::compiler;
+using namespace v8::internal::wasm;
+
+using v8::Local;
+using v8::Utils;
+
+namespace {
+
+#define CHECK_CSTREQ(exp, found)                                           \
+  do {                                                                     \
+    const char* exp_ = (exp);                                              \
+    const char* found_ = (found);                                          \
+    DCHECK_NOT_NULL(exp);                                                  \
+    if (V8_UNLIKELY(found_ == nullptr || strcmp(exp_, found_) != 0)) {     \
+      V8_Fatal(__FILE__, __LINE__,                                         \
+               "Check failed: (%s) != (%s) ('%s' vs '%s').", #exp, #found, \
+               exp_, found_ ? found_ : "<null>");                          \
+    }                                                                      \
+  } while (0)
+
+void PrintStackTrace(v8::Local<v8::StackTrace> stack) {
+  printf("Stack Trace (length %d):\n", stack->GetFrameCount());
+  for (int i = 0, e = stack->GetFrameCount(); i != e; ++i) {
+    v8::Local<v8::StackFrame> frame = stack->GetFrame(i);
+    v8::Local<v8::String> script = frame->GetScriptName();
+    v8::Local<v8::String> func = frame->GetFunctionName();
+    printf("[%d] (%s) %s:%d:%d\n", i,
+           script.IsEmpty() ? "<null>" : *v8::String::Utf8Value(script),
+           func.IsEmpty() ? "<null>" : *v8::String::Utf8Value(func),
+           frame->GetLineNumber(), frame->GetColumn());
+  }
+}
+
+struct ExceptionInfo {
+  const char* func_name;
+  int line_nr;
+  int column;
+};
+
+template <int N>
+void CheckExceptionInfos(Isolate* isolate, Handle<Object> exc,
+                         const ExceptionInfo (&excInfos)[N]) {
+  // Check that it's indeed an Error object.
+  CHECK(Object::IsErrorObject(isolate, exc));
+
+  // Extract stack frame from the exception.
+  Local<v8::Value> localExc = Utils::ToLocal(exc);
+  v8::Local<v8::StackTrace> stack = v8::Exception::GetStackTrace(localExc);
+  PrintStackTrace(stack);
+  CHECK(!stack.IsEmpty());
+  CHECK_EQ(N, stack->GetFrameCount());
+
+  for (int frameNr = 0; frameNr < N; ++frameNr) {
+    v8::Local<v8::StackFrame> frame = stack->GetFrame(frameNr);
+    v8::String::Utf8Value funName(frame->GetFunctionName());
+    CHECK_CSTREQ(excInfos[frameNr].func_name, *funName);
+    CHECK_EQ(excInfos[frameNr].line_nr, frame->GetLineNumber());
+    CHECK_EQ(excInfos[frameNr].column, frame->GetColumn());
+  }
+}
+
+}  // namespace
+
+// Call from JS to WASM to JS and throw an Error from JS.
+TEST(CollectDetailedWasmStack_ExplicitThrowFromJs) {
+  TestSignatures sigs;
+  TestingModule module;
+
+  // Initialize WasmFunctionCompiler first, since it sets up the HandleScope.
+  WasmFunctionCompiler comp1(sigs.v_v(), &module);
+
+  uint32_t js_throwing_index = module.AddJsFunction(
+      sigs.v_v(),
+      "(function js() {\n function a() {\n throw new Error(); };\n a(); })");
+
+  // Add a nop such that we don't always get position 1.
+  BUILD(comp1, WASM_NOP, WASM_CALL_FUNCTION0(js_throwing_index));
+  uint32_t wasm_index = comp1.CompileAndAdd();
+
+  WasmFunctionCompiler comp2(sigs.v_v(), &module);
+  BUILD(comp2, WASM_CALL_FUNCTION0(wasm_index));
+  uint32_t wasm_index_2 = comp2.CompileAndAdd();
+
+  Handle<JSFunction> js_wasm_wrapper = module.WrapCode(wasm_index_2);
+
+  Handle<JSFunction> js_trampoline = Handle<JSFunction>::cast(
+      v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
+          CompileRun("(function callFn(fn) { fn(); })"))));
+
+  Isolate* isolate = js_wasm_wrapper->GetIsolate();
+  isolate->SetCaptureStackTraceForUncaughtExceptions(true, 10,
+                                                     v8::StackTrace::kOverview);
+  Handle<Object> global(isolate->context()->global_object(), isolate);
+  MaybeHandle<Object> maybe_exc;
+  Handle<Object> args[] = {js_wasm_wrapper};
+  MaybeHandle<Object> returnObjMaybe =
+      Execution::TryCall(isolate, js_trampoline, global, 1, args, &maybe_exc);
+  CHECK(returnObjMaybe.is_null());
+
+  // Line number is 1-based, with 0 == kNoLineNumberInfo.
+  ExceptionInfo expected_exceptions[] = {
+      {"a", 3, 8},                                    // -
+      {"js", 4, 2},                                   // -
+      {"<WASM>", static_cast<int>(wasm_index), 2},    // -
+      {"<WASM>", static_cast<int>(wasm_index_2), 1},  // -
+      {"callFn", 1, 24}                               // -
+  };
+  CheckExceptionInfos(isolate, maybe_exc.ToHandleChecked(),
+                      expected_exceptions);
+}
+
+// Trigger a trap in WASM, stack should be JS -> WASM -> WASM.
+TEST(CollectDetailedWasmStack_WasmError) {
+  TestSignatures sigs;
+  TestingModule module;
+
+  WasmFunctionCompiler comp1(sigs.i_v(), &module,
+                             ArrayVector("exec_unreachable"));
+  // Set the execution context, such that a runtime error can be thrown.
+  comp1.SetModuleContext();
+  BUILD(comp1, WASM_UNREACHABLE);
+  uint32_t wasm_index = comp1.CompileAndAdd();
+
+  WasmFunctionCompiler comp2(sigs.i_v(), &module,
+                             ArrayVector("call_exec_unreachable"));
+  BUILD(comp2, WASM_CALL_FUNCTION0(wasm_index));
+  uint32_t wasm_index_2 = comp2.CompileAndAdd();
+
+  Handle<JSFunction> js_wasm_wrapper = module.WrapCode(wasm_index_2);
+
+  Handle<JSFunction> js_trampoline = Handle<JSFunction>::cast(
+      v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
+          CompileRun("(function callFn(fn) { fn(); })"))));
+
+  Isolate* isolate = js_wasm_wrapper->GetIsolate();
+  isolate->SetCaptureStackTraceForUncaughtExceptions(true, 10,
+                                                     v8::StackTrace::kOverview);
+  Handle<Object> global(isolate->context()->global_object(), isolate);
+  MaybeHandle<Object> maybe_exc;
+  Handle<Object> args[] = {js_wasm_wrapper};
+  MaybeHandle<Object> maybe_return_obj =
+      Execution::TryCall(isolate, js_trampoline, global, 1, args, &maybe_exc);
+  CHECK(maybe_return_obj.is_null());
+
+  // Line number is 1-based, with 0 == kNoLineNumberInfo.
+  ExceptionInfo expected_exceptions[] = {
+      {"<WASM>", static_cast<int>(wasm_index), 1},    // -
+      {"<WASM>", static_cast<int>(wasm_index_2), 1},  // -
+      {"callFn", 1, 24}                               //-
+  };
+  CheckExceptionInfos(isolate, maybe_exc.ToHandleChecked(),
+                      expected_exceptions);
+}
diff --git a/test/cctest/wasm/test-wasm-trap-position.cc b/test/cctest/wasm/test-wasm-trap-position.cc
new file mode 100644
index 0000000..13f2929
--- /dev/null
+++ b/test/cctest/wasm/test-wasm-trap-position.cc
@@ -0,0 +1,140 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/wasm/wasm-macro-gen.h"
+
+#include "test/cctest/cctest.h"
+#include "test/cctest/compiler/value-helper.h"
+#include "test/cctest/wasm/test-signatures.h"
+#include "test/cctest/wasm/wasm-run-utils.h"
+
+using namespace v8::base;
+using namespace v8::internal;
+using namespace v8::internal::compiler;
+using namespace v8::internal::wasm;
+
+using v8::Local;
+using v8::Utils;
+
+namespace {
+
+#define CHECK_CSTREQ(exp, found)                                           \
+  do {                                                                     \
+    const char* exp_ = (exp);                                              \
+    const char* found_ = (found);                                          \
+    DCHECK_NOT_NULL(exp);                                                  \
+    if (V8_UNLIKELY(found_ == nullptr || strcmp(exp_, found_) != 0)) {     \
+      V8_Fatal(__FILE__, __LINE__,                                         \
+               "Check failed: (%s) != (%s) ('%s' vs '%s').", #exp, #found, \
+               exp_, found_ ? found_ : "<null>");                          \
+    }                                                                      \
+  } while (0)
+
+struct ExceptionInfo {
+  const char* func_name;
+  int line_nr;
+  int column;
+};
+
+template <int N>
+void CheckExceptionInfos(Isolate* isolate, Handle<Object> exc,
+                         const ExceptionInfo (&excInfos)[N]) {
+  // Check that it's indeed an Error object.
+  CHECK(Object::IsErrorObject(isolate, exc));
+
+  // Extract stack frame from the exception.
+  Local<v8::Value> localExc = Utils::ToLocal(exc);
+  v8::Local<v8::StackTrace> stack = v8::Exception::GetStackTrace(localExc);
+  CHECK(!stack.IsEmpty());
+  CHECK_EQ(N, stack->GetFrameCount());
+
+  for (int frameNr = 0; frameNr < N; ++frameNr) {
+    v8::Local<v8::StackFrame> frame = stack->GetFrame(frameNr);
+    v8::String::Utf8Value funName(frame->GetFunctionName());
+    CHECK_CSTREQ(excInfos[frameNr].func_name, *funName);
+    CHECK_EQ(excInfos[frameNr].line_nr, frame->GetLineNumber());
+    CHECK_EQ(excInfos[frameNr].column, frame->GetColumn());
+  }
+}
+
+}  // namespace
+
+// Trigger a trap for executing unreachable.
+TEST(Unreachable) {
+  TestSignatures sigs;
+  TestingModule module;
+
+  WasmFunctionCompiler comp1(sigs.v_v(), &module,
+                             ArrayVector("exec_unreachable"));
+  // Set the execution context, such that a runtime error can be thrown.
+  comp1.SetModuleContext();
+  BUILD(comp1, WASM_UNREACHABLE);
+  uint32_t wasm_index = comp1.CompileAndAdd();
+
+  Handle<JSFunction> js_wasm_wrapper = module.WrapCode(wasm_index);
+
+  Handle<JSFunction> js_trampoline = Handle<JSFunction>::cast(
+      v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
+          CompileRun("(function callFn(fn) { fn(); })"))));
+
+  Isolate* isolate = js_wasm_wrapper->GetIsolate();
+  isolate->SetCaptureStackTraceForUncaughtExceptions(true, 10,
+                                                     v8::StackTrace::kOverview);
+  Handle<Object> global(isolate->context()->global_object(), isolate);
+  MaybeHandle<Object> maybe_exc;
+  Handle<Object> args[] = {js_wasm_wrapper};
+  MaybeHandle<Object> returnObjMaybe =
+      Execution::TryCall(isolate, js_trampoline, global, 1, args, &maybe_exc);
+  CHECK(returnObjMaybe.is_null());
+
+  ExceptionInfo expected_exceptions[] = {
+      {"<WASM>", static_cast<int>(wasm_index), 1},  // --
+      {"callFn", 1, 24}                             // --
+  };
+  CheckExceptionInfos(isolate, maybe_exc.ToHandleChecked(),
+                      expected_exceptions);
+}
+
+// Trigger a trap for loading from out-of-bounds.
+TEST(IllegalLoad) {
+  TestSignatures sigs;
+  TestingModule module;
+
+  WasmFunctionCompiler comp1(sigs.v_v(), &module, ArrayVector("mem_oob"));
+  // Set the execution context, such that a runtime error can be thrown.
+  comp1.SetModuleContext();
+  BUILD(comp1, WASM_IF(WASM_ONE,
+                       WASM_LOAD_MEM(MachineType::Int32(), WASM_I32V_1(-3))));
+  uint32_t wasm_index = comp1.CompileAndAdd();
+
+  WasmFunctionCompiler comp2(sigs.v_v(), &module, ArrayVector("call_mem_oob"));
+  // Insert a NOP such that the position of the call is not one.
+  BUILD(comp2, WASM_NOP, WASM_CALL_FUNCTION0(wasm_index));
+  uint32_t wasm_index_2 = comp2.CompileAndAdd();
+
+  Handle<JSFunction> js_wasm_wrapper = module.WrapCode(wasm_index_2);
+
+  Handle<JSFunction> js_trampoline = Handle<JSFunction>::cast(
+      v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
+          CompileRun("(function callFn(fn) { fn(); })"))));
+
+  Isolate* isolate = js_wasm_wrapper->GetIsolate();
+  isolate->SetCaptureStackTraceForUncaughtExceptions(true, 10,
+                                                     v8::StackTrace::kOverview);
+  Handle<Object> global(isolate->context()->global_object(), isolate);
+  MaybeHandle<Object> maybe_exc;
+  Handle<Object> args[] = {js_wasm_wrapper};
+  MaybeHandle<Object> returnObjMaybe =
+      Execution::TryCall(isolate, js_trampoline, global, 1, args, &maybe_exc);
+  CHECK(returnObjMaybe.is_null());
+
+  // Line number is 1-based, with 0 == kNoLineNumberInfo.
+  ExceptionInfo expected_exceptions[] = {
+      {"<WASM>", static_cast<int>(wasm_index), 6},    // --
+      {"<WASM>", static_cast<int>(wasm_index_2), 2},  // --
+      {"callFn", 1, 24}                               // --
+  };
+  CheckExceptionInfos(isolate, maybe_exc.ToHandleChecked(),
+                      expected_exceptions);
+}
diff --git a/test/cctest/wasm/wasm-run-utils.h b/test/cctest/wasm/wasm-run-utils.h
index 1e85f46..a92c9ff 100644
--- a/test/cctest/wasm/wasm-run-utils.h
+++ b/test/cctest/wasm/wasm-run-utils.h
@@ -17,9 +17,11 @@
 #include "src/compiler/node.h"
 #include "src/compiler/pipeline.h"
 #include "src/compiler/wasm-compiler.h"
+#include "src/compiler/zone-pool.h"
 
 #include "src/wasm/ast-decoder.h"
 #include "src/wasm/wasm-js.h"
+#include "src/wasm/wasm-macro-gen.h"
 #include "src/wasm/wasm-module.h"
 #include "src/wasm/wasm-opcodes.h"
 
@@ -159,20 +161,43 @@
     rng.NextBytes(raw, end - raw);
   }
 
-  int AddFunction(FunctionSig* sig, Handle<Code> code) {
+  uint32_t AddFunction(FunctionSig* sig, Handle<Code> code) {
     if (module->functions.size() == 0) {
       // TODO(titzer): Reserving space here to avoid the underlying WasmFunction
       // structs from moving.
       module->functions.reserve(kMaxFunctions);
     }
     uint32_t index = static_cast<uint32_t>(module->functions.size());
-    module->functions.push_back(
-        {sig, index, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, false});
+    module->functions.push_back({sig, index, 0, 0, 0, 0, 0, false});
     instance->function_code.push_back(code);
     DCHECK_LT(index, kMaxFunctions);  // limited for testing.
     return index;
   }
 
+  uint32_t AddJsFunction(FunctionSig* sig, const char* source) {
+    Handle<JSFunction> jsfunc = Handle<JSFunction>::cast(v8::Utils::OpenHandle(
+        *v8::Local<v8::Function>::Cast(CompileRun(source))));
+    uint32_t index = AddFunction(sig, Handle<Code>::null());
+    Isolate* isolate = module->shared_isolate;
+    WasmName module_name = ArrayVector("test");
+    WasmName function_name;
+    Handle<Code> code = CompileWasmToJSWrapper(isolate, this, jsfunc, sig,
+                                               module_name, function_name);
+    instance->function_code[index] = code;
+    return index;
+  }
+
+  Handle<JSFunction> WrapCode(uint32_t index) {
+    Isolate* isolate = module->shared_isolate;
+    // Wrap the code so it can be called as a JS function.
+    Handle<String> name = isolate->factory()->NewStringFromStaticChars("main");
+    Handle<JSObject> module_object = Handle<JSObject>(0, isolate);
+    Handle<Code> code = instance->function_code[index];
+    WasmJs::InstallWasmFunctionMap(isolate, isolate->native_context());
+    return compiler::CompileJSToWasmWrapper(isolate, this, name, code,
+                                            module_object, index);
+  }
+
   void SetFunctionCode(uint32_t index, Handle<Code> code) {
     instance->function_code[index] = code;
   }
@@ -218,9 +243,10 @@
 };
 
 inline void TestBuildingGraph(Zone* zone, JSGraph* jsgraph, ModuleEnv* module,
-                              FunctionSig* sig, const byte* start,
-                              const byte* end) {
-  compiler::WasmGraphBuilder builder(zone, jsgraph, sig);
+                              FunctionSig* sig,
+                              SourcePositionTable* source_position_table,
+                              const byte* start, const byte* end) {
+  compiler::WasmGraphBuilder builder(zone, jsgraph, sig, source_position_table);
   TreeResult result =
       BuildTFGraph(zone->allocator(), &builder, module, sig, start, end);
   if (result.failed()) {
@@ -356,7 +382,7 @@
         r.LowerGraph();
       }
 
-      CompilationInfo info("testing", isolate, graph()->zone());
+      CompilationInfo info(ArrayVector("testing"), isolate, graph()->zone());
       code_ =
           Pipeline::GenerateCodeForTesting(&info, descriptor, graph(), nullptr);
       CHECK(!code_.is_null());
@@ -386,13 +412,18 @@
 class WasmFunctionCompiler : public HandleAndZoneScope,
                              private GraphAndBuilders {
  public:
-  explicit WasmFunctionCompiler(FunctionSig* sig, TestingModule* module)
+  explicit WasmFunctionCompiler(
+      FunctionSig* sig, TestingModule* module,
+      Vector<const char> debug_name = ArrayVector("<WASM UNNAMED>"))
       : GraphAndBuilders(main_zone()),
         jsgraph(this->isolate(), this->graph(), this->common(), nullptr,
                 nullptr, this->machine()),
         sig(sig),
         descriptor_(nullptr),
-        testing_module_(module) {
+        testing_module_(module),
+        debug_name_(debug_name),
+        local_decls(main_zone(), sig),
+        source_position_table_(this->graph()) {
     if (module) {
       // Get a new function from the testing module.
       function_ = nullptr;
@@ -414,9 +445,11 @@
   // The call descriptor is initialized when the function is compiled.
   CallDescriptor* descriptor_;
   TestingModule* testing_module_;
+  Vector<const char> debug_name_;
   WasmFunction* function_;
   int function_index_;
   LocalDeclEncoder local_decls;
+  SourcePositionTable source_position_table_;
 
   Isolate* isolate() { return main_isolate(); }
   Graph* graph() const { return main_graph_; }
@@ -433,12 +466,13 @@
   void Build(const byte* start, const byte* end) {
     // Build the TurboFan graph.
     local_decls.Prepend(&start, &end);
-    TestBuildingGraph(main_zone(), &jsgraph, testing_module_, sig, start, end);
+    TestBuildingGraph(main_zone(), &jsgraph, testing_module_, sig,
+                      &source_position_table_, start, end);
     delete[] start;
   }
 
   byte AllocateLocal(LocalType type) {
-    uint32_t index = local_decls.AddLocals(1, type, sig);
+    uint32_t index = local_decls.AddLocals(1, type);
     byte result = static_cast<byte>(index);
     DCHECK_EQ(index, result);
     return result;
@@ -450,17 +484,34 @@
     if (kPointerSize == 4) {
       desc = testing_module_->GetI32WasmCallDescriptor(this->zone(), desc);
     }
-    CompilationInfo info("wasm compile", this->isolate(), this->zone());
-    Handle<Code> result =
-        Pipeline::GenerateCodeForTesting(&info, desc, this->graph());
+    CompilationInfo info(debug_name_, this->isolate(), this->zone(),
+                         Code::ComputeFlags(Code::WASM_FUNCTION));
+    v8::base::SmartPointer<CompilationJob> job(Pipeline::NewWasmCompilationJob(
+        &info, graph(), desc, &source_position_table_));
+    if (job->OptimizeGraph() != CompilationJob::SUCCEEDED ||
+        job->GenerateCode() != CompilationJob::SUCCEEDED)
+      return Handle<Code>::null();
+
+    Handle<Code> code = info.code();
+
+    // Length is always 2, since usually <wasm_obj, func_index> is stored in the
+    // deopt data. Here, we only store the function index.
+    DCHECK(code->deoptimization_data() == nullptr ||
+           code->deoptimization_data()->length() == 0);
+    Handle<FixedArray> deopt_data =
+        isolate()->factory()->NewFixedArray(2, TENURED);
+    deopt_data->set(1, Smi::FromInt(function_index_));
+    deopt_data->set_length(2);
+    code->set_deoptimization_data(*deopt_data);
+
 #ifdef ENABLE_DISASSEMBLER
-    if (!result.is_null() && FLAG_print_opt_code) {
+    if (FLAG_print_opt_code) {
       OFStream os(stdout);
-      result->Disassemble("wasm code", os);
+      code->Disassemble("wasm code", os);
     }
 #endif
 
-    return result;
+    return code;
   }
 
   uint32_t CompileAndAdd(uint16_t sig_index = 0) {
@@ -475,6 +526,16 @@
     if (function_) return function_;
     return &testing_module_->module->functions[function_index_];
   }
+
+  // Set the context, such that e.g. runtime functions can be called.
+  void SetModuleContext() {
+    if (!testing_module_->instance->context.is_null()) {
+      CHECK(testing_module_->instance->context.is_identical_to(
+          main_isolate()->native_context()));
+      return;
+    }
+    testing_module_->instance->context = main_isolate()->native_context();
+  }
 };
 
 // A helper class to build graphs from Wasm bytecode, generate machine
@@ -597,6 +658,15 @@
   }
 };
 
+// A macro to define tests that run in different engine configurations.
+// Currently only supports compiled tests, but a future
+// RunWasmInterpreted_##name version will allow each test to also run in the
+// interpreter.
+#define WASM_EXEC_TEST(name)                         \
+  void RunWasm_##name();                             \
+  TEST(RunWasmCompiled_##name) { RunWasm_##name(); } \
+  void RunWasm_##name()
+
 }  // namespace
 
 #endif
diff --git a/test/default.gyp b/test/default.gyp
index efc0406..dd1d9e2 100644
--- a/test/default.gyp
+++ b/test/default.gyp
@@ -19,8 +19,8 @@
             'unittests/unittests.gyp:unittests_run',
           ],
           'includes': [
-            '../build/features.gypi',
-            '../build/isolate.gypi',
+            '../gypfiles/features.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'default.isolate',
diff --git a/test/fuzzer/fuzzer-support.cc b/test/fuzzer/fuzzer-support.cc
index cf3ee8c..5df0bd8 100644
--- a/test/fuzzer/fuzzer-support.cc
+++ b/test/fuzzer/fuzzer-support.cc
@@ -10,6 +10,8 @@
 
 #include "include/libplatform/libplatform.h"
 
+#include "src/flags.h"
+
 namespace v8_fuzzer {
 
 namespace {
@@ -36,6 +38,7 @@
 };
 
 FuzzerSupport::FuzzerSupport(int* argc, char*** argv) {
+  v8::internal::FLAG_expose_gc = true;
   v8::V8::SetFlagsFromCommandLine(argc, *argv, true);
   v8::V8::InitializeICU();
   v8::V8::InitializeExternalStartupData((*argv)[0]);
@@ -65,6 +68,7 @@
     context_.Reset();
   }
 
+  isolate_->LowMemoryNotification();
   isolate_->Dispose();
   isolate_ = nullptr;
 
diff --git a/test/fuzzer/fuzzer.gyp b/test/fuzzer/fuzzer.gyp
index 6e15a90..b125ec2 100644
--- a/test/fuzzer/fuzzer.gyp
+++ b/test/fuzzer/fuzzer.gyp
@@ -6,7 +6,7 @@
   'variables': {
     'v8_code': 1,
   },
-  'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'],
+  'includes': ['../../gypfiles/toolchain.gypi', '../../gypfiles/features.gypi'],
   'targets': [
     {
       'target_name': 'json_fuzzer',
@@ -142,7 +142,7 @@
       'target_name': 'fuzzer_support',
       'type': 'static_library',
       'dependencies': [
-        '../../tools/gyp/v8.gyp:v8_libplatform',
+        '../../src/v8.gyp:v8_libplatform',
       ],
       'include_dirs': [
         '../..',
@@ -155,9 +155,9 @@
         ['component=="shared_library"', {
           # fuzzers can't be built against a shared library, so we need to
           # depend on the underlying static target in that case.
-          'dependencies': ['../../tools/gyp/v8.gyp:v8_maybe_snapshot'],
+          'dependencies': ['../../src/v8.gyp:v8_maybe_snapshot'],
         }, {
-          'dependencies': ['../../tools/gyp/v8.gyp:v8'],
+          'dependencies': ['../../src/v8.gyp:v8'],
         }],
       ],
     },
@@ -174,7 +174,7 @@
             'regexp_fuzzer',
           ],
           'includes': [
-            '../../build/isolate.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'fuzzer.isolate',
diff --git a/test/fuzzer/json.cc b/test/fuzzer/json.cc
index f20e9b9..121939b 100644
--- a/test/fuzzer/json.cc
+++ b/test/fuzzer/json.cc
@@ -26,6 +26,8 @@
     return 0;
   }
 
-  v8::JSON::Parse(isolate, source).IsEmpty();
+  v8::JSON::Parse(support->GetContext(), source).IsEmpty();
+  isolate->RequestGarbageCollectionForTesting(
+      v8::Isolate::kFullGarbageCollection);
   return 0;
 }
diff --git a/test/fuzzer/parser.cc b/test/fuzzer/parser.cc
index be70b43..4035ade 100644
--- a/test/fuzzer/parser.cc
+++ b/test/fuzzer/parser.cc
@@ -38,5 +38,7 @@
   info.set_global();
   v8::internal::Parser parser(&info);
   parser.Parse(&info);
+  isolate->RequestGarbageCollectionForTesting(
+      v8::Isolate::kFullGarbageCollection);
   return 0;
 }
diff --git a/test/fuzzer/regexp.cc b/test/fuzzer/regexp.cc
index eb51da8..64c03ae 100644
--- a/test/fuzzer/regexp.cc
+++ b/test/fuzzer/regexp.cc
@@ -71,5 +71,7 @@
     Test(isolate, regexp, source, results_array);
   }
 
+  isolate->RequestGarbageCollectionForTesting(
+      v8::Isolate::kFullGarbageCollection);
   return 0;
 }
diff --git a/test/ignition.gyp b/test/ignition.gyp
index 6aebec9..55f94d5 100644
--- a/test/ignition.gyp
+++ b/test/ignition.gyp
@@ -14,8 +14,8 @@
             'mjsunit/mjsunit.gyp:mjsunit_run',
           ],
           'includes': [
-            '../build/features.gypi',
-            '../build/isolate.gypi',
+            '../gypfiles/features.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'ignition.isolate',
diff --git a/test/intl/assert.js b/test/intl/assert.js
index 3180e6f..e176152 100644
--- a/test/intl/assert.js
+++ b/test/intl/assert.js
@@ -87,14 +87,13 @@
   return deepObjectEquals(a, b);
 }
 
-
 /**
- * Throws an exception, and prints the values in case of error.
+ * Throws an exception containing the user_message (if any) and the values.
  */
-function fail(expected, found) {
+function fail(expected, found, user_message = '') {
   // TODO(cira): Replace String with PrettyPrint for objects and arrays.
-  var message = 'Failure: expected <' + String(expected) + '>, found <' +
-      String(found) + '>.';
+  var message = 'Failure' + (user_message ? ' (' + user_message + ')' : '') +
+      ': expected <' + String(expected) + '>, found <' + String(found) + '>.';
   throw new Error(message);
 }
 
@@ -102,9 +101,9 @@
 /**
  * Throws if two variables have different types or values.
  */
-function assertEquals(expected, found) {
+function assertEquals(expected, found, user_message = '') {
   if (!deepEquals(expected, found)) {
-    fail(expected, found);
+    fail(expected, found, user_message);
   }
 }
 
@@ -112,49 +111,49 @@
 /**
  * Throws if value is false.
  */
-function assertTrue(value) {
-  assertEquals(true, value)
+function assertTrue(value, user_message = '') {
+  assertEquals(true, value, user_message);
 }
 
 
 /**
  * Throws if value is true.
  */
-function assertFalse(value) {
-  assertEquals(false, value);
+function assertFalse(value, user_message = '') {
+  assertEquals(false, value, user_message);
 }
 
 
 /**
- * Returns true if code throws specified exception.
+ * Runs code() and asserts that it throws the specified exception.
  */
 function assertThrows(code, type_opt, cause_opt) {
-  var threwException = true;
   try {
     if (typeof code == 'function') {
       code();
     } else {
       eval(code);
     }
-    threwException = false;
   } catch (e) {
     if (typeof type_opt == 'function') {
       assertInstanceof(e, type_opt);
     }
     if (arguments.length >= 3) {
-      assertEquals(e.type, cause_opt);
+      assertEquals(cause_opt, e.type, 'thrown exception type mismatch');
     }
     // Success.
     return;
   }
-  throw new Error("Did not throw exception");
+  var expected = arguments.length >= 3 ? cause_opt :
+      typeof type_opt == 'function' ? type_opt : 'any exception';
+  fail(expected, 'no exception', 'expected thrown exception');
 }
 
 
 /**
- * Throws an exception if code throws.
+ * Runs code() and asserts that it does now throw any exception.
  */
-function assertDoesNotThrow(code, name_opt) {
+function assertDoesNotThrow(code, user_message = '') {
   try {
     if (typeof code == 'function') {
       code();
@@ -162,7 +161,7 @@
       eval(code);
     }
   } catch (e) {
-    fail("threw an exception: ", e.message || e, name_opt);
+    fail("no expection", "exception: " + String(e), user_message);
   }
 }
 
diff --git a/test/intl/date-format/parse-MMMdy.js b/test/intl/date-format/parse-MMMdy.js
index b23a3cd..f713b36 100644
--- a/test/intl/date-format/parse-MMMdy.js
+++ b/test/intl/date-format/parse-MMMdy.js
@@ -28,6 +28,8 @@
 // Testing v8Parse method for date and time pattern.
 // Month is represented as a short name.
 
+// Flags: --intl-extra
+
 var dtf = new Intl.DateTimeFormat(['en'],
                                   {year: 'numeric', month: 'short',
                                    day: 'numeric',
diff --git a/test/intl/date-format/parse-invalid-input.js b/test/intl/date-format/parse-invalid-input.js
index ab0b889..47a9547 100644
--- a/test/intl/date-format/parse-invalid-input.js
+++ b/test/intl/date-format/parse-invalid-input.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --intl-extra
+
 // Invalid input is handled properly.
 
 var dtf = new Intl.DateTimeFormat(['en']);
diff --git a/test/intl/date-format/parse-mdy.js b/test/intl/date-format/parse-mdy.js
index 7b1a79a..a248a08 100644
--- a/test/intl/date-format/parse-mdy.js
+++ b/test/intl/date-format/parse-mdy.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --intl-extra
+
 // Testing v8Parse method for date only.
 
 function checkDate(date) {
diff --git a/test/intl/extra-flag.js b/test/intl/extra-flag.js
new file mode 100644
index 0000000..3d434a3
--- /dev/null
+++ b/test/intl/extra-flag.js
@@ -0,0 +1,23 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --intl-extra
+
+// Turning on the creates the non-standard properties
+
+var dtf = new Intl.DateTimeFormat(['en']);
+assertTrue('v8Parse' in dtf);
+assertTrue('resolved' in dtf);
+assertTrue(!!dtf.resolved && 'pattern' in dtf.resolved);
+
+var nf = new Intl.NumberFormat(['en']);
+assertTrue('v8Parse' in nf);
+assertTrue('resolved' in nf);
+assertTrue(!!nf.resolved && 'pattern' in nf.resolved);
+
+var col = new Intl.Collator(['en']);
+assertTrue('resolved' in col);
+
+var br = new Intl.v8BreakIterator(['en']);
+assertTrue('resolved' in br);
diff --git a/test/intl/general/case-mapping.js b/test/intl/general/case-mapping.js
new file mode 100644
index 0000000..a73622b
--- /dev/null
+++ b/test/intl/general/case-mapping.js
@@ -0,0 +1,138 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --icu_case_mapping
+
+// Some edge cases that unibrow got wrong
+
+assertEquals("𐐘", "𐑀".toUpperCase());
+assertEquals("𐑀", "𐐘".toLowerCase());
+assertEquals("σ", "Σ".toLowerCase());
+
+// Some different paths in the ICU case conversion fastpath
+
+assertEquals("σς", "\u03A3\u03A3".toLowerCase());
+// Expand sharp s in latin1 fastpath
+assertEquals("ASSB", "A\u00DFB".toUpperCase());
+assertEquals("AB", "Ab".toUpperCase());
+// Find first upper case in fastpath
+assertEquals("ab", "aB".toLowerCase());
+assertEquals("AÜ", "aü".toUpperCase());
+assertEquals("AÜ", "AÜ".toUpperCase());
+assertEquals("aü", "aü".toLowerCase());
+assertEquals("aü", "AÜ".toLowerCase());
+assertEquals("aü", "AÜ".toLowerCase());
+
+// Starts with fastpath, but switches to full Unicode path
+// U+00FF is uppercased to U+0178.
+assertEquals("AŸ", "aÿ".toUpperCase());
+// U+00B5 (µ) is uppercased to U+039C (Μ)
+assertEquals("AΜ", "aµ".toUpperCase());
+
+// Buffer size increase
+assertEquals("CSSBẶ", "cßbặ".toUpperCase());
+assertEquals("FIFLFFIFFL", "\uFB01\uFB02\uFB03\uFB04".toUpperCase());
+// OneByte input with buffer size increase: non-fast path
+assertEquals("ABCSS", "abCß".toLocaleUpperCase("tr"));
+
+// More comprehensive tests for "tr", "az" and "lt" are in
+// test262/intl402/Strings/*
+
+// Buffer size decrease with a single locale or locale list.
+// In Turkic (tr, az), U+0307 preceeded by Capital Letter I is dropped.
+assertEquals("abci", "aBcI\u0307".toLocaleLowerCase("tr"));
+assertEquals("abci", "aBcI\u0307".toLocaleLowerCase("az"));
+assertEquals("abci", "aBcI\u0307".toLocaleLowerCase(["tr", "en"]));
+
+// Cons string
+assertEquals("abcijkl", ("aBcI" + "\u0307jkl").toLocaleLowerCase("tr"));
+assertEquals("abcijkl",
+             ("aB" + "cI" + "\u0307j" + "kl").toLocaleLowerCase("tr"));
+assertEquals("abci\u0307jkl", ("aBcI" + "\u0307jkl").toLocaleLowerCase("en"));
+assertEquals("abci\u0307jkl",
+             ("aB" + "cI" + "\u0307j" + "kl").toLocaleLowerCase("en"));
+assertEquals("abci\u0307jkl", ("aBcI" + "\u0307jkl").toLowerCase());
+assertEquals("abci\u0307jkl",
+             ("aB" + "cI" + "\u0307j" + "kl").toLowerCase());
+
+// "tr" and "az" should behave identically.
+assertEquals("aBcI\u0307".toLocaleLowerCase("tr"),
+             "aBcI\u0307".toLocaleLowerCase("az"));
+// What matters is the first locale in the locale list.
+assertEquals("aBcI\u0307".toLocaleLowerCase(["tr", "en", "fr"]),
+             "aBcI\u0307".toLocaleLowerCase("tr"));
+assertEquals("aBcI\u0307".toLocaleLowerCase(["en", "tr", "az"]),
+             "aBcI\u0307".toLocaleLowerCase("en"));
+assertEquals("aBcI\u0307".toLocaleLowerCase(["en", "tr", "az"]),
+             "aBcI\u0307".toLowerCase());
+
+// An empty locale list is the same as the default locale. Try these tests
+// under Turkish and Greek locale.
+assertEquals("aBcI\u0307".toLocaleLowerCase([]),
+             "aBcI\u0307".toLocaleLowerCase());
+assertEquals("aBcI\u0307".toLocaleLowerCase([]),
+             "aBcI\u0307".toLocaleLowerCase(Intl.GetDefaultLocale));
+assertEquals("άόύώ".toLocaleUpperCase([]), "άόύώ".toLocaleUpperCase());
+assertEquals("άόύώ".toLocaleUpperCase([]),
+             "άόύώ".toLocaleUpperCase(Intl.GetDefaultLocale));
+
+
+// English/root locale keeps U+0307 (combining dot above).
+assertEquals("abci\u0307", "aBcI\u0307".toLocaleLowerCase("en"));
+assertEquals("abci\u0307", "aBcI\u0307".toLocaleLowerCase(["en", "tr"]));
+assertEquals("abci\u0307", "aBcI\u0307".toLowerCase());
+
+// Greek uppercasing: not covered by intl402/String/*, yet. Tonos (U+0301) and
+// other diacritic marks are dropped. This rule is based on the current CLDR's
+// el-Upper transformation, but Greek uppercasing rules are more sophisticated
+// than this. See http://bugs.icu-project.org/trac/ticket/10582 and
+// http://unicode.org/cldr/trac/ticket/7905 .
+assertEquals("Α", "α\u0301".toLocaleUpperCase("el"));
+assertEquals("Α", "α\u0301".toLocaleUpperCase("el-GR"));
+assertEquals("Α", "α\u0301".toLocaleUpperCase("el-Grek"));
+assertEquals("Α", "α\u0301".toLocaleUpperCase("el-Grek-GR"));
+assertEquals("Α", "ά".toLocaleUpperCase("el"));
+assertEquals("ΑΟΥΩ", "άόύώ".toLocaleUpperCase("el"));
+assertEquals("ΑΟΥΩ", "α\u0301ο\u0301υ\u0301ω\u0301".toLocaleUpperCase("el"));
+assertEquals("ΑΟΥΩ", "άόύώ".toLocaleUpperCase("el"));
+assertEquals("ΟΕ", "Ό\u1f15".toLocaleUpperCase("el"));
+assertEquals("ΟΕ", "Ο\u0301ε\u0314\u0301".toLocaleUpperCase("el"));
+
+// Input and output are identical.
+assertEquals("αβγδε", "αβγδε".toLocaleLowerCase("el"));
+assertEquals("ΑΒΓΔΕ", "ΑΒΓΔΕ".toLocaleUpperCase("el"));
+assertEquals("ΑΒΓΔΕАБ𝐀𝐁", "ΑΒΓΔΕАБ𝐀𝐁".toLocaleUpperCase("el"));
+assertEquals("ABCDEÂÓḴ123", "ABCDEÂÓḴ123".toLocaleUpperCase("el"));
+// ASCII-only or Latin-1 only: 1-byte
+assertEquals("ABCDE123", "ABCDE123".toLocaleUpperCase("el"));
+assertEquals("ABCDEÂÓ123", "ABCDEÂÓ123".toLocaleUpperCase("el"));
+
+// To make sure that the input string is not overwritten in place.
+var strings = ["abCdef", "αβγδε", "άόύώ", "аб"];
+for (var s  of strings) {
+  var backupAsArray = s.split("");
+  var uppered = s.toLocaleUpperCase("el");
+  assertEquals(s, backupAsArray.join(""));
+}
+
+// In other locales, U+0301 is preserved.
+assertEquals("Α\u0301Ο\u0301Υ\u0301Ω\u0301",
+             "α\u0301ο\u0301υ\u0301ω\u0301".toLocaleUpperCase("en"));
+assertEquals("Α\u0301Ο\u0301Υ\u0301Ω\u0301",
+             "α\u0301ο\u0301υ\u0301ω\u0301".toUpperCase());
+
+// Plane 1; Deseret and Warang Citi Script.
+assertEquals("\u{10400}\u{118A0}", "\u{10428}\u{118C0}".toUpperCase());
+assertEquals("\u{10428}\u{118C0}", "\u{10400}\u{118A0}".toLowerCase());
+// Mathematical Bold {Capital, Small} Letter A do not change.
+assertEquals("\u{1D400}\u{1D41A}", "\u{1D400}\u{1D41A}".toUpperCase());
+assertEquals("\u{1D400}\u{1D41A}", "\u{1D400}\u{1D41A}".toLowerCase());
+// Plane 1; New characters in Unicode 8.0
+assertEquals("\u{10C80}", "\u{10CC0}".toUpperCase());
+assertEquals("\u{10CC0}", "\u{10C80}".toLowerCase());
+assertEquals("\u{10C80}", "\u{10CC0}".toLocaleUpperCase());
+assertEquals("\u{10CC0}", "\u{10C80}".toLocaleLowerCase());
+assertEquals("\u{10C80}", "\u{10CC0}".toLocaleUpperCase(["tr"]));
+assertEquals("\u{10C80}", "\u{10CC0}".toLocaleUpperCase(["tr"]));
+assertEquals("\u{10CC0}", "\u{10C80}".toLocaleLowerCase());
diff --git a/test/intl/intl.gyp b/test/intl/intl.gyp
index 8fa7f06..f2e107f 100644
--- a/test/intl/intl.gyp
+++ b/test/intl/intl.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'intl.isolate',
diff --git a/test/intl/intl.status b/test/intl/intl.status
index e890085..02ee26b 100644
--- a/test/intl/intl.status
+++ b/test/intl/intl.status
@@ -37,21 +37,9 @@
   'number-format/parse-percent': [FAIL],
 }],  # ALWAYS
 
-##############################################################################
-['system == linux', {
-  # BUG(v8:2899).
-  'collator/default-locale': [PASS, FAIL],
-}],  # 'system == linux'
-
-##############################################################################
-['system == macos', {
-  # BUG(v8:4459).
-  'collator/default-locale': [FAIL],
-}],  # 'system == macos'
-
-##############################################################################
-['arch == arm or arch == arm64', {
-  # BUG(v8:4459).
-  'collator/default-locale': [PASS, FAIL],
-}],  # 'arch == arm or arch == arm64'
+['arch == arm64 and mode == debug and simulator_run == True', {
+  # Ignition.
+  'date-format/timezone': [PASS, ['no_snap and mode == debug', NO_IGNITION]],
+  'number-format/check-digit-ranges': [PASS, ['no_snap and mode == debug', NO_IGNITION]],
+}],  # 'arch == arm64 and mode == debug and simulator_run == True'
 ]
diff --git a/test/intl/no-extra-flag.js b/test/intl/no-extra-flag.js
new file mode 100644
index 0000000..6735f84
--- /dev/null
+++ b/test/intl/no-extra-flag.js
@@ -0,0 +1,23 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --no-intl-extra
+
+// Turning off the flag removes the non-standard properties
+
+var dtf = new Intl.DateTimeFormat(['en']);
+assertFalse('v8Parse' in dtf);
+assertFalse('resolved' in dtf);
+assertFalse(!!dtf.resolved && 'pattern' in dtf.resolved);
+
+var nf = new Intl.NumberFormat(['en']);
+assertFalse('v8Parse' in nf);
+assertFalse('resolved' in nf);
+assertFalse(!!nf.resolved && 'pattern' in nf.resolved);
+
+var col = new Intl.Collator(['en']);
+assertFalse('resolved' in col);
+
+var br = new Intl.v8BreakIterator(['en']);
+assertFalse('resolved' in br);
diff --git a/test/intl/number-format/format-is-bound.js b/test/intl/number-format/format-is-bound.js
index d93ee00..edb6a4b 100644
--- a/test/intl/number-format/format-is-bound.js
+++ b/test/intl/number-format/format-is-bound.js
@@ -28,6 +28,8 @@
 // Create default NumberFormat.
 var nf = new Intl.NumberFormat();
 
+var beforeCount = Object.getOwnPropertyNames(nf).length;
+
 // Array we want to iterate, actual numbers are not important.
 var numberArray = [1, 2, 3];
 
@@ -39,4 +41,4 @@
 nf.format(12345);
 
 // Reading the format doesn't add any additional property keys
-assertEquals(1, Object.getOwnPropertyNames(nf).length);
+assertEquals(beforeCount, Object.getOwnPropertyNames(nf).length);
diff --git a/test/intl/number-format/parse-currency.js b/test/intl/number-format/parse-currency.js
index c87ffea..a57128e 100644
--- a/test/intl/number-format/parse-currency.js
+++ b/test/intl/number-format/parse-currency.js
@@ -28,6 +28,8 @@
 // Currency parsing is not yet supported. We need ICU49 or higher to get
 // it working.
 
+// Flags: --intl-extra
+
 var nf = new Intl.NumberFormat(['en'], {style: 'currency', currency: 'USD'});
 
 assertEquals(undefined, nf.v8Parse('USD 123.43'));
diff --git a/test/intl/number-format/parse-invalid-input.js b/test/intl/number-format/parse-invalid-input.js
index 8c84d0b..251b52a 100644
--- a/test/intl/number-format/parse-invalid-input.js
+++ b/test/intl/number-format/parse-invalid-input.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --intl-extra
+
 // Invalid input is handled properly.
 
 var nf = new Intl.NumberFormat(['en']);
diff --git a/test/intl/regress-4870.js b/test/intl/regress-4870.js
new file mode 100644
index 0000000..72c095e
--- /dev/null
+++ b/test/intl/regress-4870.js
@@ -0,0 +1,8 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+assertThrows(() =>
+    Object.getOwnPropertyDescriptor(Intl.Collator.prototype, 'compare')
+      .get.call(new Intl.DateTimeFormat())('a', 'b'),
+    TypeError);
diff --git a/test/intl/testcfg.py b/test/intl/testcfg.py
index 6e4b4f1..c7f17bb 100644
--- a/test/intl/testcfg.py
+++ b/test/intl/testcfg.py
@@ -26,10 +26,12 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 import os
+import re
 
 from testrunner.local import testsuite
 from testrunner.objects import testcase
 
+FLAGS_PATTERN = re.compile(r"//\s+Flags:(.*)")
 
 class IntlTestSuite(testsuite.TestSuite):
 
@@ -55,7 +57,11 @@
     return tests
 
   def GetFlagsForTestCase(self, testcase, context):
+    source = self.GetSourceForTest(testcase)
     flags = ["--allow-natives-syntax"] + context.mode_flags
+    flags_match = re.findall(FLAGS_PATTERN, source)
+    for match in flags_match:
+      flags += match.strip().split()
 
     files = []
     files.append(os.path.join(self.root, "assert.js"))
@@ -71,6 +77,10 @@
 
     return testcase.flags + flags
 
+  def GetSourceForTest(self, testcase):
+    filename = os.path.join(self.root, testcase.path + self.suffix())
+    with open(filename) as f:
+      return f.read()
 
 def GetSuite(name, root):
   return IntlTestSuite(name, root)
diff --git a/test/js-perf-test/JSTests.json b/test/js-perf-test/JSTests.json
index dc3cb75..f8ab369 100644
--- a/test/js-perf-test/JSTests.json
+++ b/test/js-perf-test/JSTests.json
@@ -163,6 +163,29 @@
         {"name": "for (i < array.length)"},
         {"name": "for (i < length)"}
       ]
+    },
+    {
+      "name": "PropertyQueries",
+      "path": ["PropertyQueries"],
+      "main": "run.js",
+      "resources": ["property-queries.js"],
+      "results_regexp": "^%s\\-PropertyQueries\\(Score\\): (.+)$",
+      "tests": [
+        {"name": "in--INTERN-prop"},
+        {"name": "in--DEINTERN-prop"},
+        {"name": "in--NE-INTERN-prop"},
+        {"name": "in--NE-DEINTERN-prop"},
+        {"name": "in--el"},
+        {"name": "in--el-str"},
+        {"name": "in--NE-el"},
+        {"name": "Object.hasOwnProperty--INTERN-prop"},
+        {"name": "Object.hasOwnProperty--DEINTERN-prop"},
+        {"name": "Object.hasOwnProperty--NE-INTERN-prop"},
+        {"name": "Object.hasOwnProperty--NE-DEINTERN-prop"},
+        {"name": "Object.hasOwnProperty--el"},
+        {"name": "Object.hasOwnProperty--el-str"},
+        {"name": "Object.hasOwnProperty--NE-el"}
+      ]
     }
   ]
 }
diff --git a/test/js-perf-test/PropertyQueries/PropertyQueries.json b/test/js-perf-test/PropertyQueries/PropertyQueries.json
new file mode 100644
index 0000000..49b953d
--- /dev/null
+++ b/test/js-perf-test/PropertyQueries/PropertyQueries.json
@@ -0,0 +1,38 @@
+{
+  "name": "PropertyQueriesTests",
+  "run_count": 5,
+  "run_count_android_arm": 3,
+  "run_count_android_arm64": 3,
+  "timeout": 120,
+  "units": "score",
+  "total": true,
+  "resources": ["base.js"],
+  "tests": [
+    {
+      "name": "PropertyQueries",
+      "path": ["."],
+      "main": "run.js",
+      "flags": [""],
+      "resources": [
+        "property-queries.js"
+      ],
+      "results_regexp": "^%s\\-PropertyQueries\\(Score\\): (.+)$",
+      "tests": [
+        {"name": "in--INTERN-prop"},
+        {"name": "in--DEINTERN-prop"},
+        {"name": "in--NE-INTERN-prop"},
+        {"name": "in--NE-DEINTERN-prop"},
+        {"name": "in--el"},
+        {"name": "in--el-str"},
+        {"name": "in--NE-el"},
+        {"name": "Object.hasOwnProperty--INTERN-prop"},
+        {"name": "Object.hasOwnProperty--DEINTERN-prop"},
+        {"name": "Object.hasOwnProperty--NE-INTERN-prop"},
+        {"name": "Object.hasOwnProperty--NE-DEINTERN-prop"},
+        {"name": "Object.hasOwnProperty--el"},
+        {"name": "Object.hasOwnProperty--el-str"},
+        {"name": "Object.hasOwnProperty--NE-el"}
+      ]
+    }
+  ]
+}
diff --git a/test/js-perf-test/PropertyQueries/property-queries.js b/test/js-perf-test/PropertyQueries/property-queries.js
new file mode 100644
index 0000000..f763d26
--- /dev/null
+++ b/test/js-perf-test/PropertyQueries/property-queries.js
@@ -0,0 +1,274 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function ObjectWithKeys(count, keyOffset = 0, keyGen) {
+  var body = "";
+  for (var i = 0; i < count; i++) {
+    var key = keyGen(i + keyOffset);
+    if (typeof key === "string") {
+      body += `this.${key} = 0\n`;
+    } else {
+      body += `this[${key}] = 0\n`;
+    }
+  }
+  var f = new Function(body);
+  return new f();
+}
+
+function ObjectWithProperties(count, keyOffset) {
+  return ObjectWithKeys(count, keyOffset, (key) => "key" + key );
+}
+
+function ObjectWithElements(count, keyOffset) {
+  return ObjectWithKeys(count, keyOffset, (key) => key );
+}
+
+function ObjectWithMixedKeys(count, keyOffset) {
+  return ObjectWithKeys(count, keyOffset, (key) => {
+    if (key % 2 == 0) return (key / 2);
+    return "key" + ((key - 1)  / 2);
+  });
+}
+
+// Create an object with #depth prototypes each having #keys properties
+// generated by given keyGen.
+function ObjectWithProtoKeys(depth, keys, cacheable,
+                             keyGen = ObjectWithProperties) {
+  var o = keyGen(keys);
+  var current = o;
+  var keyOffset = 0;
+  for (var i = 0; i < depth; i++) {
+    keyOffset += keys;
+    current.__proto__ = keyGen(keys, keyOffset);
+    current = current.__proto__;
+  }
+  if (cacheable === false) {
+    // Add an empty proxy at the prototype chain to make caching properties
+    // impossible.
+    current.__proto__ = new Proxy({}, {});
+  }
+  return o;
+}
+
+
+function HoleyIntArray(size) {
+  var array = new Array(size);
+  for (var i = 0; i < size; i += 3) {
+    array[i] = i;
+  }
+  return array
+}
+
+function IntArray(size) {
+  var array = new Array(size);
+  for (var i = 0; i < size; i++) {
+    array[i] = i;
+  }
+  return array;
+}
+
+// Switch object's properties and elements to dictionary mode.
+function MakeDictionaryMode(obj) {
+  obj.foo = 0;
+  delete obj.foo;
+  obj[1e9] = 0;
+  return obj;
+}
+
+function Internalize(s) {
+  return Object.keys({[s]:0})[0];
+}
+
+function Deinternalize(s) {
+  return [...s].join("");
+}
+
+// ============================================================================
+
+const QUERY_INTERNALIZED_PROP = "INTERN-prop";
+const QUERY_DEINTERNALIZED_PROP = "DEINTERN-prop";
+const QUERY_NON_EXISTING_INTERNALIZED_PROP = "NE-INTERN-prop";
+const QUERY_NON_EXISTING_DEINTERNALIZED_PROP = "NE-DEINTERN-prop";
+const QUERY_ELEMENT = "el";
+const QUERY_ELEMENT_AS_STRING = "el-str";
+const QUERY_NON_EXISTING_ELEMENT = "NE-el";
+
+const OBJ_MODE_FAST = "fast";
+const OBJ_MODE_SLOW = "slow";
+
+var TestQueries = [
+  QUERY_INTERNALIZED_PROP,
+  QUERY_DEINTERNALIZED_PROP,
+  QUERY_NON_EXISTING_INTERNALIZED_PROP,
+  QUERY_NON_EXISTING_DEINTERNALIZED_PROP,
+  QUERY_ELEMENT,
+  QUERY_ELEMENT_AS_STRING,
+  QUERY_NON_EXISTING_ELEMENT,
+];
+
+const QUERIES_PER_OBJECT_NUMBER = 10;
+
+// Leave only every "count"th keys.
+function FilterKeys(keys, count) {
+  var len = keys.length;
+  if (len < count) throw new Error("Keys array is too short: " + len);
+  var step = len / count;
+  if (step == 0) throw new Error("Bad count specified: " + count);
+  return keys.filter((element, index) => index % step == 0);
+}
+
+
+function MakeKeyQueries(keys, query_kind) {
+  var properties = keys.filter((element) => isNaN(Number(element)));
+  var elements = keys.filter((element) => !isNaN(Number(element)));
+
+  properties = FilterKeys(properties, QUERIES_PER_OBJECT_NUMBER);
+  elements = FilterKeys(elements, QUERIES_PER_OBJECT_NUMBER);
+
+  switch (query_kind) {
+    case QUERY_INTERNALIZED_PROP:
+      return properties;
+
+    case QUERY_DEINTERNALIZED_PROP:
+      return properties.map(Deinternalize);
+
+    case QUERY_NON_EXISTING_INTERNALIZED_PROP:
+    case QUERY_NON_EXISTING_DEINTERNALIZED_PROP:
+      var non_existing = [];
+      for (var i = 0; i < QUERIES_PER_OBJECT_NUMBER; i++) {
+        non_existing.push("non-existing" + i);
+      }
+      if (query_kind == QUERY_NON_EXISTING_INTERNALIZED_PROP) {
+        return non_existing.map(Internalize);
+      } else {
+        return non_existing.map(Deinternalize);
+      }
+
+    case QUERY_ELEMENT:
+      return elements.map(Number);
+
+    case QUERY_ELEMENT_AS_STRING:
+      return elements.map(String);
+
+    case QUERY_NON_EXISTING_ELEMENT:
+      var non_existing = [];
+      for (var i = 0; i < QUERIES_PER_OBJECT_NUMBER; i++) {
+        non_existing.push(1200 + 100*i);
+      }
+      return non_existing;
+
+    default:
+      throw new Error("Bad query_kind: " + query_kind);
+  }
+}
+
+
+var TestData = [];
+
+[true, false].forEach((cachable) => {
+  [OBJ_MODE_FAST, OBJ_MODE_SLOW].forEach((obj_mode) => {
+    var proto_mode = cachable ? "" : "-with-slow-proto";
+    var name = `${obj_mode}-obj${proto_mode}`;
+    var objects = [];
+    [10, 50, 100, 200, 500].forEach((prop_count) => {
+      // Create object with prop_count properties and prop_count elements.
+      obj = ObjectWithProtoKeys(5, prop_count * 2, cachable,
+                                ObjectWithMixedKeys);
+      if (obj_mode == OBJ_MODE_SLOW) {
+        obj = MakeDictionaryMode(obj);
+      }
+      objects.push(obj);
+    });
+    TestData.push({name, objects});
+  });
+});
+
+
+// ============================================================================
+
+function CreateTestFunction(template, object, keys) {
+  // Force a new function for each test-object to avoid side-effects due to ICs.
+  var text = "// random comment " + Math.random() + "\n" +
+             template(object, keys);
+  var func = new Function("object", "keys", text);
+  return () => func(object, keys);
+}
+
+function CombineTestFunctions(tests) {
+  return () => {
+    for (var i = 0; i < tests.length; i++ ) {
+      tests[i]();
+    }
+  };
+}
+
+var TestFunctions = [
+  {
+    name: "in",
+    // Query all keys.
+    keys: (object) => Object.keys(object),
+    template: (object, keys) => {
+      var lines = [
+        `var result = true;`,
+        `for (var i = 0; i < keys.length; i++) {`,
+        `  var key = keys[i];`,
+        `  result = (key in object) && result;`,
+        `}`,
+        `return result;`,
+      ];
+      return lines.join("\n");
+    },
+  },
+  {
+    name: "Object.hasOwnProperty",
+    // Query only own keys.
+    keys: (object) => Object.getOwnPropertyNames(object),
+    template: (object, keys) => {
+      var lines = [
+        `var result = true;`,
+        `for (var i = 0; i < keys.length; i++) {`,
+        `  var key = keys[i];`,
+        `  result = object.hasOwnProperty(key) && result;`,
+        `}`,
+        `return result;`,
+      ];
+      return lines.join("\n");
+    },
+  },
+];
+
+
+// ============================================================================
+// Create the benchmark suites. We create a suite for each pair of the test
+// functions above and query kind. Each suite contains benchmarks for each
+// object type.
+var Benchmarks = [];
+
+for (var test_function_desc of TestFunctions) {
+  var test_function_name = test_function_desc.name;
+
+  for (var query_kind of TestQueries) {
+    var benchmarks = [];
+    var suit_name = test_function_name + "--" + query_kind;
+    for (var test_data of TestData) {
+      var name = suit_name + "--" + test_data.name;
+
+      var tests = [];
+      for (var object of test_data.objects) {
+        var keys = test_function_desc.keys(object);
+        keys = MakeKeyQueries(keys, query_kind);
+
+        var test = CreateTestFunction(test_function_desc.template, object,
+                                      keys);
+        tests.push(test);
+      }
+      var run_function = CombineTestFunctions(tests);
+      var benchmark = new Benchmark(name, false, false, 0, run_function);
+      benchmarks.push(benchmark);
+    }
+    Benchmarks.push(new BenchmarkSuite(suit_name, [100], benchmarks));
+  }
+}
+
+// ============================================================================
diff --git a/test/js-perf-test/PropertyQueries/run.js b/test/js-perf-test/PropertyQueries/run.js
new file mode 100644
index 0000000..d98c366
--- /dev/null
+++ b/test/js-perf-test/PropertyQueries/run.js
@@ -0,0 +1,23 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+load('../base.js');
+load('property-queries.js');
+
+var success = true;
+
+function PrintResult(name, result) {
+  print(name + '-PropertyQueries(Score): ' + result);
+}
+
+function PrintError(name, error) {
+  PrintResult(name, error);
+  success = false;
+}
+
+BenchmarkSuite.config.doWarmup = undefined;
+BenchmarkSuite.config.doDeterministic = undefined;
+
+BenchmarkSuite.RunSuites({ NotifyResult: PrintResult,
+                           NotifyError: PrintError });
diff --git a/test/message/const-decl-no-init-sloppy.js b/test/message/const-decl-no-init-sloppy.js
deleted file mode 100644
index a122eae..0000000
--- a/test/message/const-decl-no-init-sloppy.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --harmony-sloppy
-
-function f() {
-  const a;
-}
diff --git a/test/message/let-lexical-name-in-array-prohibited.js b/test/message/let-lexical-name-in-array-prohibited.js
index a6cba6f..e5e37e1 100644
--- a/test/message/let-lexical-name-in-array-prohibited.js
+++ b/test/message/let-lexical-name-in-array-prohibited.js
@@ -2,6 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Flags: --harmony-sloppy --harmony-sloppy-let
+//
 
 let [let];
diff --git a/test/message/let-lexical-name-in-object-prohibited.js b/test/message/let-lexical-name-in-object-prohibited.js
index 0a12762..4e26c62 100644
--- a/test/message/let-lexical-name-in-object-prohibited.js
+++ b/test/message/let-lexical-name-in-object-prohibited.js
@@ -2,6 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Flags: --harmony-sloppy --harmony-sloppy-let
+//
 
 let {let};
diff --git a/test/message/let-lexical-name-prohibited.js b/test/message/let-lexical-name-prohibited.js
index ed72fae..b001be8 100644
--- a/test/message/let-lexical-name-prohibited.js
+++ b/test/message/let-lexical-name-prohibited.js
@@ -2,6 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Flags: --harmony-sloppy --harmony-sloppy-let
+//
 
 let let;
diff --git a/test/message/message.gyp b/test/message/message.gyp
index dac6d9f..fc1ae32 100644
--- a/test/message/message.gyp
+++ b/test/message/message.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'message.isolate',
diff --git a/test/message/no-legacy-const-2.js b/test/message/no-legacy-const-2.js
deleted file mode 100644
index 5dc63b3..0000000
--- a/test/message/no-legacy-const-2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --no-harmony-sloppy --no-harmony-sloppy-let
-// Flags: --no-harmony-sloppy-function
-
-const = 42;
diff --git a/test/message/no-legacy-const-2.out b/test/message/no-legacy-const-2.out
deleted file mode 100644
index 5385250..0000000
--- a/test/message/no-legacy-const-2.out
+++ /dev/null
@@ -1,5 +0,0 @@
-*%(basename)s:8: SyntaxError: Unexpected token const
-const = 42;
-^^^^^
-
-SyntaxError: Unexpected token const
diff --git a/test/message/no-legacy-const-3.js b/test/message/no-legacy-const-3.js
deleted file mode 100644
index 43dd9c9..0000000
--- a/test/message/no-legacy-const-3.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --no-harmony-sloppy --no-harmony-sloppy-let
-// Flags: --no-harmony-sloppy-function
-
-const
diff --git a/test/message/no-legacy-const-3.out b/test/message/no-legacy-const-3.out
deleted file mode 100644
index 7539bbc..0000000
--- a/test/message/no-legacy-const-3.out
+++ /dev/null
@@ -1,5 +0,0 @@
-*%(basename)s:8: SyntaxError: Unexpected token const
-const
-^^^^^
-
-SyntaxError: Unexpected token const
diff --git a/test/message/no-legacy-const.js b/test/message/no-legacy-const.js
deleted file mode 100644
index 9eebee5..0000000
--- a/test/message/no-legacy-const.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2015 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --no-harmony-sloppy --no-harmony-sloppy-let
-// Flags: --no-harmony-sloppy-function
-
-const x = 42;
diff --git a/test/message/no-legacy-const.out b/test/message/no-legacy-const.out
deleted file mode 100644
index 33bb038..0000000
--- a/test/message/no-legacy-const.out
+++ /dev/null
@@ -1,5 +0,0 @@
-*%(basename)s:8: SyntaxError: Unexpected token const
-const x = 42;
-^^^^^
-
-SyntaxError: Unexpected token const
diff --git a/test/message/syntactic-tail-call-in-binop-lhs.js b/test/message/syntactic-tail-call-in-binop-lhs.js
new file mode 100644
index 0000000..58d4c95
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-binop-lhs.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return   continue f()   - a ;
+}
diff --git a/test/message/syntactic-tail-call-in-binop-lhs.out b/test/message/syntactic-tail-call-in-binop-lhs.out
new file mode 100644
index 0000000..14670cd
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-binop-lhs.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return   continue f()   - a ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-binop-rhs.js b/test/message/syntactic-tail-call-in-binop-rhs.js
new file mode 100644
index 0000000..a586cc8
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-binop-rhs.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return b + continue f()  ;
+}
diff --git a/test/message/syntactic-tail-call-in-binop-rhs.out b/test/message/syntactic-tail-call-in-binop-rhs.out
new file mode 100644
index 0000000..207c526
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-binop-rhs.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return b + continue f()  ;
+             ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-comma.js b/test/message/syntactic-tail-call-in-comma.js
new file mode 100644
index 0000000..402a4a8
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-comma.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return 1, 2, 3,   continue f() , 4  ;
+}
diff --git a/test/message/syntactic-tail-call-in-comma.out b/test/message/syntactic-tail-call-in-comma.out
new file mode 100644
index 0000000..c4ecc28
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-comma.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return 1, 2, 3,   continue f() , 4  ;
+                    ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-extends.js b/test/message/syntactic-tail-call-in-extends.js
new file mode 100644
index 0000000..86bf77e
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-extends.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function g() {
+  return class A extends continue f() {};
+}
diff --git a/test/message/syntactic-tail-call-in-extends.out b/test/message/syntactic-tail-call-in-extends.out
new file mode 100644
index 0000000..f54155d
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-extends.out
@@ -0,0 +1,4 @@
+*%(basename)s:9: SyntaxError: Tail call expression is not allowed here
+  return class A extends continue f() {};
+                         ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-for-in.js b/test/message/syntactic-tail-call-in-for-in.js
new file mode 100644
index 0000000..8ad7aca
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-for-in.js
@@ -0,0 +1,16 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  for (var v in {a:0}) {
+    return continue f()  ;
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-for-in.out b/test/message/syntactic-tail-call-in-for-in.out
new file mode 100644
index 0000000..1bf52c4
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-for-in.out
@@ -0,0 +1,4 @@
+*%(basename)s:14: SyntaxError: Tail call expression in for-in/of body
+    return continue f()  ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression in for-in/of body
diff --git a/test/message/syntactic-tail-call-in-for-of.js b/test/message/syntactic-tail-call-in-for-of.js
new file mode 100644
index 0000000..7cd761f
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-for-of.js
@@ -0,0 +1,16 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  for (var v of [1, 2, 3]) {
+    return continue f()  ;
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-for-of.out b/test/message/syntactic-tail-call-in-for-of.out
new file mode 100644
index 0000000..1bf52c4
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-for-of.out
@@ -0,0 +1,4 @@
+*%(basename)s:14: SyntaxError: Tail call expression in for-in/of body
+    return continue f()  ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression in for-in/of body
diff --git a/test/message/syntactic-tail-call-in-logical-and.js b/test/message/syntactic-tail-call-in-logical-and.js
new file mode 100644
index 0000000..2c62ddc
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-logical-and.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return   continue f()   && a ;
+}
diff --git a/test/message/syntactic-tail-call-in-logical-and.out b/test/message/syntactic-tail-call-in-logical-and.out
new file mode 100644
index 0000000..c400f74
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-logical-and.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return   continue f()   && a ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-logical-or.js b/test/message/syntactic-tail-call-in-logical-or.js
new file mode 100644
index 0000000..6829bc6
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-logical-or.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return   continue f()   || a ;
+}
diff --git a/test/message/syntactic-tail-call-in-logical-or.out b/test/message/syntactic-tail-call-in-logical-or.out
new file mode 100644
index 0000000..4ced761
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-logical-or.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return   continue f()   || a ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-subclass.js b/test/message/syntactic-tail-call-in-subclass.js
new file mode 100644
index 0000000..ab78840
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-subclass.js
@@ -0,0 +1,15 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function g() {
+  class A {};
+  class B extends A {
+    constructor() {
+      return continue f() ;
+    }
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-subclass.out b/test/message/syntactic-tail-call-in-subclass.out
new file mode 100644
index 0000000..fff26cc
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-subclass.out
@@ -0,0 +1,4 @@
+*%(basename)s:12: SyntaxError: Tail call expression is not allowed here
+      return continue f() ;
+             ^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-in-try-catch-finally.js b/test/message/syntactic-tail-call-in-try-catch-finally.js
new file mode 100644
index 0000000..3aa35a1
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try-catch-finally.js
@@ -0,0 +1,20 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  try {
+    f();
+  } catch(e) {
+    return continue f()  ;
+  } finally {
+    f();
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-try-catch-finally.out b/test/message/syntactic-tail-call-in-try-catch-finally.out
new file mode 100644
index 0000000..b488c15
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try-catch-finally.out
@@ -0,0 +1,4 @@
+*%(basename)s:16: SyntaxError: Tail call expression in catch block when finally block is also present
+    return continue f()  ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression in catch block when finally block is also present
diff --git a/test/message/syntactic-tail-call-in-try-try-catch-finally.js b/test/message/syntactic-tail-call-in-try-try-catch-finally.js
new file mode 100644
index 0000000..5b000f1
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try-try-catch-finally.js
@@ -0,0 +1,22 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  try {
+    try {
+      f();
+    } catch(e) {
+      return continue f()  ;
+    }
+  } finally {
+    f();
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-try-try-catch-finally.out b/test/message/syntactic-tail-call-in-try-try-catch-finally.out
new file mode 100644
index 0000000..bfc2692
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try-try-catch-finally.out
@@ -0,0 +1,4 @@
+*%(basename)s:17: SyntaxError: Tail call expression in try block
+      return continue f()  ;
+             ^^^^^^^^^^^^
+SyntaxError: Tail call expression in try block
diff --git a/test/message/syntactic-tail-call-in-try.js b/test/message/syntactic-tail-call-in-try.js
new file mode 100644
index 0000000..71662db
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try.js
@@ -0,0 +1,17 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  try {
+    return continue f()  ;
+  } catch(e) {
+  }
+}
diff --git a/test/message/syntactic-tail-call-in-try.out b/test/message/syntactic-tail-call-in-try.out
new file mode 100644
index 0000000..ed0b15c
--- /dev/null
+++ b/test/message/syntactic-tail-call-in-try.out
@@ -0,0 +1,4 @@
+*%(basename)s:14: SyntaxError: Tail call expression in try block
+    return continue f()  ;
+           ^^^^^^^^^^^^
+SyntaxError: Tail call expression in try block
diff --git a/test/message/syntactic-tail-call-inside-member-expr.js b/test/message/syntactic-tail-call-inside-member-expr.js
new file mode 100644
index 0000000..9b85dd4
--- /dev/null
+++ b/test/message/syntactic-tail-call-inside-member-expr.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return (continue  f(1)) (2) ;
+}
diff --git a/test/message/syntactic-tail-call-inside-member-expr.out b/test/message/syntactic-tail-call-inside-member-expr.out
new file mode 100644
index 0000000..10fd54d
--- /dev/null
+++ b/test/message/syntactic-tail-call-inside-member-expr.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  return (continue  f(1)) (2) ;
+          ^^^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/message/syntactic-tail-call-of-eval.js b/test/message/syntactic-tail-call-of-eval.js
new file mode 100644
index 0000000..e69aa9c
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-eval.js
@@ -0,0 +1,9 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+
+function g() {
+  return  continue  eval  ("f()")  ;
+}
diff --git a/test/message/syntactic-tail-call-of-eval.out b/test/message/syntactic-tail-call-of-eval.out
new file mode 100644
index 0000000..06eeb78
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-eval.out
@@ -0,0 +1,4 @@
+*%(basename)s:8: SyntaxError: Tail call of a direct eval is not allowed
+  return  continue  eval  ("f()")  ;
+                    ^^^^^^^^^^^^^
+SyntaxError: Tail call of a direct eval is not allowed
diff --git a/test/message/syntactic-tail-call-of-identifier.js b/test/message/syntactic-tail-call-of-identifier.js
new file mode 100644
index 0000000..b3ca31d
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-identifier.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function g(x) {
+  return continue   x  ;
+}
diff --git a/test/message/syntactic-tail-call-of-identifier.out b/test/message/syntactic-tail-call-of-identifier.out
new file mode 100644
index 0000000..393bbc6
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-identifier.out
@@ -0,0 +1,4 @@
+*%(basename)s:9: SyntaxError: Unexpected expression inside tail call
+  return continue   x  ;
+                    ^
+SyntaxError: Unexpected expression inside tail call
diff --git a/test/message/syntactic-tail-call-of-new.js b/test/message/syntactic-tail-call-of-new.js
new file mode 100644
index 0000000..60adec7
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-new.js
@@ -0,0 +1,13 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+
+function f() {
+  return 1;
+}
+
+function g() {
+  return continue new f()  ;
+}
diff --git a/test/message/syntactic-tail-call-of-new.out b/test/message/syntactic-tail-call-of-new.out
new file mode 100644
index 0000000..954e1ca
--- /dev/null
+++ b/test/message/syntactic-tail-call-of-new.out
@@ -0,0 +1,4 @@
+*%(basename)s:12: SyntaxError: Unexpected expression inside tail call
+  return continue new f()  ;
+                  ^^^^^^^
+SyntaxError: Unexpected expression inside tail call
diff --git a/test/message/syntactic-tail-call-sloppy.js b/test/message/syntactic-tail-call-sloppy.js
new file mode 100644
index 0000000..3973fc6
--- /dev/null
+++ b/test/message/syntactic-tail-call-sloppy.js
@@ -0,0 +1,9 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+
+function g() {
+  return  continue  f()  ;
+}
diff --git a/test/message/syntactic-tail-call-sloppy.out b/test/message/syntactic-tail-call-sloppy.out
new file mode 100644
index 0000000..74d9d53
--- /dev/null
+++ b/test/message/syntactic-tail-call-sloppy.out
@@ -0,0 +1,4 @@
+*%(basename)s:8: SyntaxError: Tail call expressions are not allowed in non-strict mode
+  return  continue  f()  ;
+          ^^^^^^^^^^^^^
+SyntaxError: Tail call expressions are not allowed in non-strict mode
diff --git a/test/message/syntactic-tail-call-without-return.js b/test/message/syntactic-tail-call-without-return.js
new file mode 100644
index 0000000..130f67d
--- /dev/null
+++ b/test/message/syntactic-tail-call-without-return.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-explicit-tailcalls
+"use strict";
+
+function f() {
+  return 1;
+}
+
+function g() {
+  var x =  continue  f()  ;
+}
diff --git a/test/message/syntactic-tail-call-without-return.out b/test/message/syntactic-tail-call-without-return.out
new file mode 100644
index 0000000..0508fc3
--- /dev/null
+++ b/test/message/syntactic-tail-call-without-return.out
@@ -0,0 +1,4 @@
+*%(basename)s:13: SyntaxError: Tail call expression is not allowed here
+  var x =  continue  f()  ;
+           ^^^^^^^^^^^^^
+SyntaxError: Tail call expression is not allowed here
diff --git a/test/mjsunit/arguments.js b/test/mjsunit/arguments.js
index 26eb389..97ec7cc 100644
--- a/test/mjsunit/arguments.js
+++ b/test/mjsunit/arguments.js
@@ -204,3 +204,70 @@
   }
   assertTrue(%HasSloppyArgumentsElements(a));
 })();
+
+(function testDeleteArguments() {
+  function f() { return arguments };
+  var args = f(1, 2);
+  assertEquals(1, args[0]);
+  assertEquals(2, args[1]);
+  assertEquals(2, args.length);
+
+  delete args[0];
+  assertEquals(undefined, args[0]);
+  assertEquals(2, args[1]);
+  assertEquals(2, args.length);
+
+  delete args[1];
+  assertEquals(undefined, args[0]);
+  assertEquals(undefined, args[1]);
+  assertEquals(2, args.length);
+})();
+
+(function testDeleteFastSloppyArguments() {
+  function f(a) { return arguments };
+  var args = f(1, 2);
+  assertEquals(1, args[0]);
+  assertEquals(2, args[1]);
+  assertEquals(2, args.length);
+
+  delete args[0];
+  assertEquals(undefined, args[0]);
+  assertEquals(2, args[1]);
+  assertEquals(2, args.length);
+
+  delete args[1];
+  assertEquals(undefined, args[0]);
+  assertEquals(undefined, args[1]);
+  assertEquals(2, args.length);
+})();
+
+(function testDeleteSlowSloppyArguments() {
+  var key = 10000;
+  function f(a) {
+    arguments[key] = key;
+    return arguments
+  };
+  var args = f(1, 2);
+  assertEquals(1, args[0]);
+  assertEquals(2, args[1]);
+  assertEquals(key, args[key]);
+  assertEquals(2, args.length);
+
+  delete args[0];
+  assertEquals(undefined, args[0]);
+  assertEquals(2, args[1]);
+  assertEquals(key, args[key]);
+  assertEquals(2, args.length);
+
+  delete args[1];
+  assertEquals(undefined, args[0]);
+  assertEquals(undefined, args[1]);
+  assertEquals(key, args[key]);
+  assertEquals(2, args.length);
+
+  delete args[key];
+  assertEquals(undefined, args[0]);
+  assertEquals(undefined, args[1]);
+  assertEquals(undefined, args[key]);
+  assertEquals(2, args.length);
+})();
diff --git a/test/mjsunit/array-push.js b/test/mjsunit/array-push.js
index c87fd12..ece3319 100644
--- a/test/mjsunit/array-push.js
+++ b/test/mjsunit/array-push.js
@@ -146,3 +146,16 @@
   f(a, {});
   assertEquals(10, a.f());
 })();
+
+
+(function testDoubleArrayPush() {
+  var a = [];
+  var max = 1000;
+  for (var i = 0; i < max; i++) {
+    a.push(i + 0.1);
+  }
+  assertEquals(max, a.length);
+  for (var i = 0; i < max; i++) {
+    assertEquals(i+0.1, a[i]);
+  }
+})();
diff --git a/test/mjsunit/array-push7.js b/test/mjsunit/array-push7.js
deleted file mode 100644
index 68c3a2a..0000000
--- a/test/mjsunit/array-push7.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --harmony-object-observe
-// Flags: --allow-natives-syntax
-
-var v = 0;
-
-function push_wrapper(array, value) {
-  array.push(value);
-}
-function pop_wrapper(array) {
-  return array.pop();
-}
-
-// Test that Object.observe() notification events are properly sent from
-// Array.push() and Array.pop() both from optimized and un-optimized code.
-var array = [];
-
-function somethingChanged(changes) {
-  v++;
-}
-
-Object.observe(array, somethingChanged);
-push_wrapper(array, 1);
-%RunMicrotasks();
-assertEquals(1, array.length);
-assertEquals(1, v);
-push_wrapper(array, 1);
-%RunMicrotasks();
-assertEquals(2, array.length);
-assertEquals(2, v);
-%OptimizeFunctionOnNextCall(push_wrapper);
-push_wrapper(array, 1);
-%RunMicrotasks();
-assertEquals(3, array.length);
-assertEquals(3, v);
-push_wrapper(array, 1);
-%RunMicrotasks();
-assertEquals(4, array.length);
-assertEquals(4, v);
-
-pop_wrapper(array);
-%RunMicrotasks();
-assertEquals(3, array.length);
-assertEquals(5, v);
-pop_wrapper(array);
-%RunMicrotasks();
-assertEquals(2, array.length);
-assertEquals(6, v);
-%OptimizeFunctionOnNextCall(pop_wrapper);
-pop_wrapper(array);
-%RunMicrotasks();
-assertEquals(1, array.length);
-assertEquals(7, v);
-pop_wrapper(array);
-%RunMicrotasks();
-assertEquals(0, array.length);
-assertEquals(8, v);
diff --git a/test/mjsunit/array-slice.js b/test/mjsunit/array-slice.js
index ae0e3bc..b017dd5 100644
--- a/test/mjsunit/array-slice.js
+++ b/test/mjsunit/array-slice.js
@@ -228,6 +228,7 @@
   func([]);
   func(['a'], 'a');
   func(['a', 1], 'a', 1);
+  func(['a', 1, 2, 3, 4, 5], 'a', 1, 2, 3, 4, 5);
   func(['a', 1, undefined], 'a', 1, undefined);
   func(['a', 1, undefined, void(0)], 'a', 1, undefined, void(0));
 })();
diff --git a/test/mjsunit/array-splice.js b/test/mjsunit/array-splice.js
index 744e954..75ff2d1 100644
--- a/test/mjsunit/array-splice.js
+++ b/test/mjsunit/array-splice.js
@@ -300,6 +300,55 @@
   }
 })();
 
+// Check the behaviour when approaching maximal values for length.
+(function() {
+  for (var i = 0; i < 7; i++) {
+    try {
+      new Array(Math.pow(2, 32) - 3).splice(-1, 0, 1, 2, 3, 4, 5);
+      throw 'Should have thrown RangeError';
+    } catch (e) {
+      assertTrue(e instanceof RangeError);
+    }
+
+    // Check smi boundary
+    var bigNum = (1 << 30) - 3;
+    var array = new Array(bigNum);
+    array.splice(-1, 0, 1, 2, 3, 4, 5, 6, 7);
+    assertEquals(bigNum + 7, array.length);
+  }
+})();
+
+(function() {
+  for (var i = 0; i < 7; i++) {
+    var a = [7, 8, 9];
+    a.splice(0, 0, 1, 2, 3, 4, 5, 6);
+    assertEquals([1, 2, 3, 4, 5, 6, 7, 8, 9], a);
+    assertFalse(a.hasOwnProperty(10), "a.hasOwnProperty(10)");
+    assertEquals(undefined, a[10]);
+  }
+})();
+
+(function testSpliceDeleteDouble() {
+  var a = [1.1, 1.2, 1.3, 1.4];
+  a.splice(2, 1)
+  assertEquals([1.1, 1.2, 1.4], a);
+})();
+
+// Past this point the ArrayProtector is invalidated since we modify the
+// Array.prototype.
+
+// Check the case of JS builtin .splice()
+(function() {
+  for (var i = 0; i < 7; i++) {
+    var array = [1, 2, 3, 4];
+    Array.prototype[3] = 'foo';  // To force JS builtin.
+
+    var spliced = array.splice();
+
+    assertEquals([], spliced);
+    assertEquals([1, 2, 3, 4], array);
+  }
+})();
 
 // Now check the case with array of holes and some elements on prototype.
 (function() {
@@ -350,7 +399,6 @@
   }
 })();
 
-
 // Now check the case with array of holes and some elements on prototype.
 (function() {
   var len = 9;
@@ -397,46 +445,3 @@
                 "array.hasOwnProperty(Math.pow(2, 32) - 2)");
   }
 })();
-
-
-// Check the case of JS builtin .splice()
-(function() {
-  for (var i = 0; i < 7; i++) {
-    var array = [1, 2, 3, 4];
-    Array.prototype[3] = 'foo';  // To force JS builtin.
-
-    var spliced = array.splice();
-
-    assertEquals([], spliced);
-    assertEquals([1, 2, 3, 4], array);
-  }
-})();
-
-
-// Check the behaviour when approaching maximal values for length.
-(function() {
-  for (var i = 0; i < 7; i++) {
-    try {
-      new Array(Math.pow(2, 32) - 3).splice(-1, 0, 1, 2, 3, 4, 5);
-      throw 'Should have thrown RangeError';
-    } catch (e) {
-      assertTrue(e instanceof RangeError);
-    }
-
-    // Check smi boundary
-    var bigNum = (1 << 30) - 3;
-    var array = new Array(bigNum);
-    array.splice(-1, 0, 1, 2, 3, 4, 5, 6, 7);
-    assertEquals(bigNum + 7, array.length);
-  }
-})();
-
-(function() {
-  for (var i = 0; i < 7; i++) {
-    var a = [7, 8, 9];
-    a.splice(0, 0, 1, 2, 3, 4, 5, 6);
-    assertEquals([1, 2, 3, 4, 5, 6, 7, 8, 9], a);
-    assertFalse(a.hasOwnProperty(10), "a.hasOwnProperty(10)");
-    assertEquals(undefined, a[10]);
-  }
-})();
diff --git a/test/mjsunit/compiler/escape-analysis-1.js b/test/mjsunit/compiler/escape-analysis-1.js
index b8c6644..f05040b 100644
--- a/test/mjsunit/compiler/escape-analysis-1.js
+++ b/test/mjsunit/compiler/escape-analysis-1.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f(a) {
   "use strict";
diff --git a/test/mjsunit/compiler/escape-analysis-10.js b/test/mjsunit/compiler/escape-analysis-10.js
index c53cf4d..4f06d57 100644
--- a/test/mjsunit/compiler/escape-analysis-10.js
+++ b/test/mjsunit/compiler/escape-analysis-10.js
@@ -26,6 +26,7 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
+
 (function() {
   "use strict";
   function f() {
diff --git a/test/mjsunit/compiler/escape-analysis-2.js b/test/mjsunit/compiler/escape-analysis-2.js
index d116e9a..49f440e 100644
--- a/test/mjsunit/compiler/escape-analysis-2.js
+++ b/test/mjsunit/compiler/escape-analysis-2.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f(a) {
   "use strict";
diff --git a/test/mjsunit/compiler/escape-analysis-3.js b/test/mjsunit/compiler/escape-analysis-3.js
index d1ebc9b..b92d1c3 100644
--- a/test/mjsunit/compiler/escape-analysis-3.js
+++ b/test/mjsunit/compiler/escape-analysis-3.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f(a) {
   "use strict";
diff --git a/test/mjsunit/compiler/escape-analysis-4.js b/test/mjsunit/compiler/escape-analysis-4.js
index d9fdccc..ef9f95f 100644
--- a/test/mjsunit/compiler/escape-analysis-4.js
+++ b/test/mjsunit/compiler/escape-analysis-4.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f(a) {
   "use strict";
diff --git a/test/mjsunit/compiler/escape-analysis-5.js b/test/mjsunit/compiler/escape-analysis-5.js
index cfaf81d..54b5e82 100644
--- a/test/mjsunit/compiler/escape-analysis-5.js
+++ b/test/mjsunit/compiler/escape-analysis-5.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f(h) {
   "use strict";
diff --git a/test/mjsunit/compiler/escape-analysis-6.js b/test/mjsunit/compiler/escape-analysis-6.js
index 6143cfb..c36e7d9 100644
--- a/test/mjsunit/compiler/escape-analysis-6.js
+++ b/test/mjsunit/compiler/escape-analysis-6.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f(a) {
   "use strict";
diff --git a/test/mjsunit/compiler/escape-analysis-7.js b/test/mjsunit/compiler/escape-analysis-7.js
index 16bc71c..cfa30cb 100644
--- a/test/mjsunit/compiler/escape-analysis-7.js
+++ b/test/mjsunit/compiler/escape-analysis-7.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f() {
   this.x=0;
diff --git a/test/mjsunit/compiler/escape-analysis-8.js b/test/mjsunit/compiler/escape-analysis-8.js
index bc5b1d9..d9c6d25 100644
--- a/test/mjsunit/compiler/escape-analysis-8.js
+++ b/test/mjsunit/compiler/escape-analysis-8.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f(a) {
   this.x=a;
diff --git a/test/mjsunit/compiler/escape-analysis-9.js b/test/mjsunit/compiler/escape-analysis-9.js
index a19786b..0b8f75c 100644
--- a/test/mjsunit/compiler/escape-analysis-9.js
+++ b/test/mjsunit/compiler/escape-analysis-9.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax --turbo-escape
-//
 
 function f() {
   return arguments;
diff --git a/test/mjsunit/compiler/optimized-float32array-length.js b/test/mjsunit/compiler/optimized-float32array-length.js
new file mode 100644
index 0000000..eed8922
--- /dev/null
+++ b/test/mjsunit/compiler/optimized-float32array-length.js
@@ -0,0 +1,13 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+var a = new Float32Array(1);
+function len(a) { return a.length; }
+assertEquals(1, len(a));
+assertEquals(1, len(a));
+%OptimizeFunctionOnNextCall(len);
+assertEquals(1, len(a));
+assertOptimized(len);
diff --git a/test/mjsunit/compiler/optimized-float64array-length.js b/test/mjsunit/compiler/optimized-float64array-length.js
new file mode 100644
index 0000000..f6a3d77
--- /dev/null
+++ b/test/mjsunit/compiler/optimized-float64array-length.js
@@ -0,0 +1,13 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+var a = new Float64Array(1);
+function len(a) { return a.length; }
+assertEquals(1, len(a));
+assertEquals(1, len(a));
+%OptimizeFunctionOnNextCall(len);
+assertEquals(1, len(a));
+assertOptimized(len);
diff --git a/test/mjsunit/compiler/optimized-instanceof-1.js b/test/mjsunit/compiler/optimized-instanceof-1.js
new file mode 100644
index 0000000..538b0ef
--- /dev/null
+++ b/test/mjsunit/compiler/optimized-instanceof-1.js
@@ -0,0 +1,17 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --harmony-instanceof
+
+function F() {}
+var f = new F
+
+var proto = Object.getPrototypeOf(F);
+Object.setPrototypeOf(F, null);
+F[Symbol.hasInstance] = function(v) { return true };
+Object.setPrototypeOf(F, proto);
+
+function foo(x) { return x instanceof F };
+%OptimizeFunctionOnNextCall(foo);
+assertTrue(foo(1));
diff --git a/test/mjsunit/compiler/optimized-instanceof-2.js b/test/mjsunit/compiler/optimized-instanceof-2.js
new file mode 100644
index 0000000..80bbdcd
--- /dev/null
+++ b/test/mjsunit/compiler/optimized-instanceof-2.js
@@ -0,0 +1,19 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --harmony-instanceof
+
+function F() {}
+var f = new F
+
+function foo(x) { return x instanceof F };
+%OptimizeFunctionOnNextCall(foo);
+assertFalse(foo(1));
+
+var proto = Object.getPrototypeOf(F);
+Object.setPrototypeOf(F, null);
+F[Symbol.hasInstance] = function(v) { return true };
+Object.setPrototypeOf(F, proto);
+
+assertTrue(foo(1));
diff --git a/test/mjsunit/compiler/optimized-int32array-length.js b/test/mjsunit/compiler/optimized-int32array-length.js
new file mode 100644
index 0000000..250d523
--- /dev/null
+++ b/test/mjsunit/compiler/optimized-int32array-length.js
@@ -0,0 +1,13 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+var a = new Int32Array(1);
+function len(a) { return a.length; }
+assertEquals(1, len(a));
+assertEquals(1, len(a));
+%OptimizeFunctionOnNextCall(len);
+assertEquals(1, len(a));
+assertOptimized(len);
diff --git a/test/mjsunit/compiler/optimized-uint32array-length.js b/test/mjsunit/compiler/optimized-uint32array-length.js
new file mode 100644
index 0000000..d389370
--- /dev/null
+++ b/test/mjsunit/compiler/optimized-uint32array-length.js
@@ -0,0 +1,13 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+var a = new Uint32Array(1);
+function len(a) { return a.length; }
+assertEquals(1, len(a));
+assertEquals(1, len(a));
+%OptimizeFunctionOnNextCall(len);
+assertEquals(1, len(a));
+assertOptimized(len);
diff --git a/test/mjsunit/compiler/osr-alignment.js b/test/mjsunit/compiler/osr-alignment.js
index 085d6c4..f815e71 100644
--- a/test/mjsunit/compiler/osr-alignment.js
+++ b/test/mjsunit/compiler/osr-alignment.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function f1() {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-backedges1.js b/test/mjsunit/compiler/osr-backedges1.js
index d415f4a..18a7e04 100644
--- a/test/mjsunit/compiler/osr-backedges1.js
+++ b/test/mjsunit/compiler/osr-backedges1.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function foo(a) {
   var i = a | 0;
diff --git a/test/mjsunit/compiler/osr-block-scope-func.js b/test/mjsunit/compiler/osr-block-scope-func.js
index df4076c..7c41f54 100644
--- a/test/mjsunit/compiler/osr-block-scope-func.js
+++ b/test/mjsunit/compiler/osr-block-scope-func.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 "use strict";
 
diff --git a/test/mjsunit/compiler/osr-block-scope-id.js b/test/mjsunit/compiler/osr-block-scope-id.js
index 923c72f..bcc7cdd 100644
--- a/test/mjsunit/compiler/osr-block-scope-id.js
+++ b/test/mjsunit/compiler/osr-block-scope-id.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 "use strict";
 
diff --git a/test/mjsunit/compiler/osr-block-scope.js b/test/mjsunit/compiler/osr-block-scope.js
index 0d78cdc..c60f8af 100644
--- a/test/mjsunit/compiler/osr-block-scope.js
+++ b/test/mjsunit/compiler/osr-block-scope.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 "use strict";
 
diff --git a/test/mjsunit/compiler/osr-follow.js b/test/mjsunit/compiler/osr-follow.js
index b6a2e8e..46581a8 100644
--- a/test/mjsunit/compiler/osr-follow.js
+++ b/test/mjsunit/compiler/osr-follow.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --use-osr --turbo-osr
+// Flags: --use-osr
 
 function foo(a) {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-for-let.js b/test/mjsunit/compiler/osr-for-let.js
index 4b2fa3e..b8cef78 100644
--- a/test/mjsunit/compiler/osr-for-let.js
+++ b/test/mjsunit/compiler/osr-for-let.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 "use strict";
 
diff --git a/test/mjsunit/compiler/osr-forin-nested.js b/test/mjsunit/compiler/osr-forin-nested.js
index ad55b30..dd81089 100644
--- a/test/mjsunit/compiler/osr-forin-nested.js
+++ b/test/mjsunit/compiler/osr-forin-nested.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --turbo-osr --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 function test(e, f, v) {
   assertEquals(e, f(v));
diff --git a/test/mjsunit/compiler/osr-forin.js b/test/mjsunit/compiler/osr-forin.js
index 8d16782..b45d200 100644
--- a/test/mjsunit/compiler/osr-forin.js
+++ b/test/mjsunit/compiler/osr-forin.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --use-osr --turbo-osr
+// Flags: --use-osr
 
 function f(a) {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-forof.js b/test/mjsunit/compiler/osr-forof.js
index 36bff09..ce7b24d 100644
--- a/test/mjsunit/compiler/osr-forof.js
+++ b/test/mjsunit/compiler/osr-forof.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --use-osr --turbo-osr
+// Flags: --use-osr
 
 function f(a) {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-function-id.js b/test/mjsunit/compiler/osr-function-id.js
index c506ae8..8761e85 100644
--- a/test/mjsunit/compiler/osr-function-id.js
+++ b/test/mjsunit/compiler/osr-function-id.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --use-osr --turbo-osr
+// Flags: --use-osr
 
 function id(f) { return f; }
 
diff --git a/test/mjsunit/compiler/osr-function-id2.js b/test/mjsunit/compiler/osr-function-id2.js
index 561c62e..e25ec31 100644
--- a/test/mjsunit/compiler/osr-function-id2.js
+++ b/test/mjsunit/compiler/osr-function-id2.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --use-osr --turbo-osr
+// Flags: --use-osr
 
 function id(f) { return f; }
 
diff --git a/test/mjsunit/compiler/osr-function.js b/test/mjsunit/compiler/osr-function.js
index 06d137b..cee7e9d 100644
--- a/test/mjsunit/compiler/osr-function.js
+++ b/test/mjsunit/compiler/osr-function.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --use-osr --turbo-osr
+// Flags: --use-osr
 
 function foo() {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-infinite.js b/test/mjsunit/compiler/osr-infinite.js
index aa74c87..9d0bb47 100644
--- a/test/mjsunit/compiler/osr-infinite.js
+++ b/test/mjsunit/compiler/osr-infinite.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --use-osr --allow-natives-syntax --turbo-osr
+// Flags: --use-osr --allow-natives-syntax
 
 var global_counter = 0;
 
diff --git a/test/mjsunit/compiler/osr-labeled.js b/test/mjsunit/compiler/osr-labeled.js
index 1a97092..1384e9a 100644
--- a/test/mjsunit/compiler/osr-labeled.js
+++ b/test/mjsunit/compiler/osr-labeled.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function foo() {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-literals-adapted.js b/test/mjsunit/compiler/osr-literals-adapted.js
index 950d8b0..4d1798c 100644
--- a/test/mjsunit/compiler/osr-literals-adapted.js
+++ b/test/mjsunit/compiler/osr-literals-adapted.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function mod() {
   function f0() {
diff --git a/test/mjsunit/compiler/osr-literals.js b/test/mjsunit/compiler/osr-literals.js
index d9f68a0..f2051dc 100644
--- a/test/mjsunit/compiler/osr-literals.js
+++ b/test/mjsunit/compiler/osr-literals.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function mod() {
   function f0() {
diff --git a/test/mjsunit/compiler/osr-manual1.js b/test/mjsunit/compiler/osr-manual1.js
index 29a4948..c3db796 100644
--- a/test/mjsunit/compiler/osr-manual1.js
+++ b/test/mjsunit/compiler/osr-manual1.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 var counter = 111;
 
diff --git a/test/mjsunit/compiler/osr-manual2.js b/test/mjsunit/compiler/osr-manual2.js
index 8aa5d69..de7ec24 100644
--- a/test/mjsunit/compiler/osr-manual2.js
+++ b/test/mjsunit/compiler/osr-manual2.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 var counter = 188;
 
diff --git a/test/mjsunit/compiler/osr-multiple.js b/test/mjsunit/compiler/osr-multiple.js
index c318645..72fff85 100644
--- a/test/mjsunit/compiler/osr-multiple.js
+++ b/test/mjsunit/compiler/osr-multiple.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --use-osr --turbo-osr
+// Flags: --use-osr
 
 function f1(a,b,c) {
   var x = 0;
diff --git a/test/mjsunit/compiler/osr-multiple2.js b/test/mjsunit/compiler/osr-multiple2.js
index 9a81bfb..edb627a 100644
--- a/test/mjsunit/compiler/osr-multiple2.js
+++ b/test/mjsunit/compiler/osr-multiple2.js
@@ -3,7 +3,6 @@
 // found in the LICENSE file.
 
 // Flags: --use-osr
-// TODO(titzer): enable --turbo-osr when nested OSR works.
 
 function f1(a,b,c) {
   var x = 0;
diff --git a/test/mjsunit/compiler/osr-multiple3.js b/test/mjsunit/compiler/osr-multiple3.js
index 0fb1ac7..fa703ea 100644
--- a/test/mjsunit/compiler/osr-multiple3.js
+++ b/test/mjsunit/compiler/osr-multiple3.js
@@ -3,7 +3,6 @@
 // found in the LICENSE file.
 
 // Flags: --use-osr
-// TODO(titzer): enable --turbo-osr when nested OSR works.
 
 function f1(a,b,c) {
   var x = 0;
diff --git a/test/mjsunit/compiler/osr-nested2.js b/test/mjsunit/compiler/osr-nested2.js
index 41bd9b2..efe31f1 100644
--- a/test/mjsunit/compiler/osr-nested2.js
+++ b/test/mjsunit/compiler/osr-nested2.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function f() {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-nested2b.js b/test/mjsunit/compiler/osr-nested2b.js
index e64c10c..1808811 100644
--- a/test/mjsunit/compiler/osr-nested2b.js
+++ b/test/mjsunit/compiler/osr-nested2b.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function f() {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-nested3.js b/test/mjsunit/compiler/osr-nested3.js
index f5d09ba..d7c144b 100644
--- a/test/mjsunit/compiler/osr-nested3.js
+++ b/test/mjsunit/compiler/osr-nested3.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function f() {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-nested3b.js b/test/mjsunit/compiler/osr-nested3b.js
index 32ac2a7..a10d328 100644
--- a/test/mjsunit/compiler/osr-nested3b.js
+++ b/test/mjsunit/compiler/osr-nested3b.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function f() {
   var sum = 0;
diff --git a/test/mjsunit/compiler/osr-regex-id.js b/test/mjsunit/compiler/osr-regex-id.js
index 7831b14..e0b4dad 100644
--- a/test/mjsunit/compiler/osr-regex-id.js
+++ b/test/mjsunit/compiler/osr-regex-id.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function id(f) { return f; }
 
diff --git a/test/mjsunit/compiler/osr-sar.js b/test/mjsunit/compiler/osr-sar.js
index cc04adc..02684f0 100644
--- a/test/mjsunit/compiler/osr-sar.js
+++ b/test/mjsunit/compiler/osr-sar.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 function test() {
   // Loop to force OSR.
diff --git a/test/mjsunit/compiler/osr-warm.js b/test/mjsunit/compiler/osr-warm.js
index 7c30c07..73e1fd5 100644
--- a/test/mjsunit/compiler/osr-warm.js
+++ b/test/mjsunit/compiler/osr-warm.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --use-osr --turbo-osr
+// Flags: --use-osr
 
 function f1(x) {
   while (x > 0) {
diff --git a/test/mjsunit/compiler/osr-while-let.js b/test/mjsunit/compiler/osr-while-let.js
index c19cf6c..11ebc4b 100644
--- a/test/mjsunit/compiler/osr-while-let.js
+++ b/test/mjsunit/compiler/osr-while-let.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr
+// Flags: --allow-natives-syntax --use-osr
 
 "use strict";
 
diff --git a/test/mjsunit/compiler/regress-607493.js b/test/mjsunit/compiler/regress-607493.js
new file mode 100644
index 0000000..540b47e
--- /dev/null
+++ b/test/mjsunit/compiler/regress-607493.js
@@ -0,0 +1,37 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+(function ForInTryCatchContrinueOsr() {
+  var a = [1];
+
+  function g() {
+    for (var x in a) {
+      try {
+        for (var i = 0; i < 10; i++) { %OptimizeOsr(); }
+        return;
+      } catch(e) {
+        continue;
+      }
+    }
+  }
+
+  g();
+})();
+
+(function ForInContinueNestedOsr() {
+  var a = [1];
+
+  function g() {
+    for (var x in a) {
+      if (x) {
+        for (var i = 0; i < 10; i++) { %OptimizeOsr(); }
+      }
+      continue;
+    }
+  }
+
+  g();
+})();
diff --git a/test/mjsunit/compiler/regress-621147.js b/test/mjsunit/compiler/regress-621147.js
new file mode 100644
index 0000000..0a5a221
--- /dev/null
+++ b/test/mjsunit/compiler/regress-621147.js
@@ -0,0 +1,29 @@
+// Copyright 2014 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --turbo-filter=test2
+
+function test(n) {
+  return Array(n);
+}
+
+function test2() {
+  return test(2);
+}
+
+function test3(a) {
+  a[0] = 1;
+}
+
+test(0);
+
+var smi_array = [1,2];
+smi_array[2] = 3;
+test3(smi_array);
+
+%OptimizeFunctionOnNextCall(test2);
+
+var broken_array = test2();
+test3(broken_array);
+1+broken_array[0];
diff --git a/test/mjsunit/compiler/try-osr.js b/test/mjsunit/compiler/try-osr.js
index e4eb8dd..c0ef27a 100644
--- a/test/mjsunit/compiler/try-osr.js
+++ b/test/mjsunit/compiler/try-osr.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --turbo-osr
+// Flags: --allow-natives-syntax
 
 function OSRInsideTry(x) {
   try {
diff --git a/test/mjsunit/debug-allscopes-on-debugger.js b/test/mjsunit/debug-allscopes-on-debugger.js
index b7a8dff..17668cf 100644
--- a/test/mjsunit/debug-allscopes-on-debugger.js
+++ b/test/mjsunit/debug-allscopes-on-debugger.js
@@ -49,10 +49,11 @@
   var i = 0; // Break 1.
   i++; // Break 2.
   i++; // Break 3.
-  return i; // Break 4.
-}()); // Break 5.
+  debugger;  // Break 4.
+  return i; // Break 5.
+}()); // Break 6.
 
-assertNull(exception); // Break 6.
+assertNull(exception); // Break 7.
 assertEquals(expected_breaks, break_count);
 
 Debug.setListener(null);
diff --git a/test/mjsunit/debug-backtrace-text.js b/test/mjsunit/debug-backtrace-text.js
index 61648fa..cfc89e6 100644
--- a/test/mjsunit/debug-backtrace-text.js
+++ b/test/mjsunit/debug-backtrace-text.js
@@ -35,7 +35,8 @@
 
 Point.prototype.distanceTo = function(p) {
   debugger;
-  return Math.sqrt(Math.pow(Math.abs(this.x - p.x), 2) + Math.pow(Math.abs(this.y - p.y), 2))
+  return Math.sqrt(Math.pow(Math.abs(this.x - p.x), 2) +
+         Math.pow(Math.abs(this.y - p.y), 2))
 }
 
 p1 = new Point(1,1);
@@ -58,7 +59,7 @@
 // Get the Debug object exposed from the debug context global object.
 Debug = debug.Debug
 
-testConstructor = false;  // Flag to control which part of the test is run.
+what = 'constructor';  // Flag to control which part of the test is run.
 listenerCalled = false;
 exception = false;
 
@@ -72,30 +73,47 @@
 
 function listener(event, exec_state, event_data, data) {
   try {
-  if (event == Debug.DebugEvent.Break)
-  {
-    if (!testConstructor) {
-      // The expected backtrace is
-      // 0: Call distance on Point where distance is a property on the prototype
-      // 1: Call distance on Point where distance is a direct property
-      // 2: Call on function an array element 2
-      // 3: [anonymous]
-      assertEquals("#<Point>.distanceTo(p=#<Point>)", exec_state.frame(0).invocationText());
-      assertEquals("#<Point>.distanceTo(p=#<Point>)", exec_state.frame(1).invocationText());
-      assertEquals("#<Array>[2](aka distance)(p=#<Point>, q=#<Point>)", exec_state.frame(2).invocationText());
-      assertEquals("[anonymous]()", exec_state.frame(3).invocationText());
-      listenerCalled = true;
-    } else {
-      // The expected backtrace is
-      // 0: Call Point constructor
-      // 1: Call on global function createPoint
-      // 2: [anonymous]
-      assertEquals("new Point(x=0, y=0)", exec_state.frame(0).invocationText());
-      assertEquals("createPoint(x=0, y=0)", exec_state.frame(1).invocationText());
-      assertEquals("[anonymous]()", exec_state.frame(2).invocationText());
-      listenerCalled = true;
+    if (event == Debug.DebugEvent.Break) {
+      if (what == 'constructor') {
+        // The expected backtrace is
+        // 0: Call distance on Point where distance is a prototype property
+        // 1: Call distance on Point where distance is a direct property
+        // 2: Call on function an array element 2
+        // 3: [anonymous]
+        assertEquals("#<Point>.distanceTo(p=#<Point>)",
+                     exec_state.frame(0).invocationText());
+        assertEquals("#<Point>.distanceTo(p=#<Point>)",
+                     exec_state.frame(1).invocationText());
+        assertEquals("#<Array>[2](aka distance)(p=#<Point>, q=#<Point>)",
+                     exec_state.frame(2).invocationText());
+        assertEquals("[anonymous]()", exec_state.frame(3).invocationText());
+        listenerCalled = true;
+      } else if (what == 'breakpoint') {
+        // The expected backtrace is
+        // 0: Call Point constructor
+        // 1: Call on global function createPoint
+        // 2: [anonymous]
+        assertEquals("new Point(x=0, y=0)",
+                     exec_state.frame(0).invocationText());
+        assertEquals("createPoint(x=0, y=0)",
+                     exec_state.frame(1).invocationText());
+        assertEquals("[anonymous]()", exec_state.frame(2).invocationText());
+        listenerCalled = true;
+      } else if (what == 'symbol') {
+        // The expected backtrace is
+        // 0: Call Point constructor
+        // 1: Call on symbol method
+        // 2: [anonymous]
+        assertEquals("new Point(x=0, y=0)",
+                     exec_state.frame(0).invocationText());
+        assertEquals("#<Object>[Symbol(Das Symbol)](x=0, y=0)",
+                     exec_state.frame(1).invocationText());
+        assertEquals("[anonymous]()", exec_state.frame(2).invocationText());
+        listenerCalled = true;
+      } else {
+        assertUnreachable();
+      }
     }
-  }
   } catch (e) {
     exception = e
   };
@@ -112,11 +130,21 @@
 assertFalse(exception, "exception in listener")
 
 // Set a break point and call to invoke the debug event listener.
+what = 'breakpoint';
 listenerCalled = false;
-testConstructor = true;
 Debug.setBreakPoint(Point, 0, 0);
 createPoint(0, 0);
 
 // Make sure that the debug event listener vas invoked (again).
 assertTrue(listenerCalled);
 assertFalse(exception, "exception in listener")
+
+what = 'symbol';
+listenerCalled = false;
+var S = Symbol('Das Symbol');
+var o = { [S](x, y) { return new Point(x, y); } };
+Debug.setBreakPoint(Point, 0, 0);
+o[S](0, 0);
+
+assertTrue(listenerCalled);
+assertFalse(exception, "exception in listener")
diff --git a/test/mjsunit/debug-eval-scope.js b/test/mjsunit/debug-eval-scope.js
new file mode 100644
index 0000000..2b97bf6
--- /dev/null
+++ b/test/mjsunit/debug-eval-scope.js
@@ -0,0 +1,144 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug --no-always-opt
+
+// Test that the (strict) eval scope is visible to the debugger.
+
+var Debug = debug.Debug;
+var exception = null;
+var delegate = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    delegate(exec_state);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+// Current function is the top-level eval.
+// We can access stack- and context-allocated values in the eval-scope.
+delegate = function(exec_state) {
+  assertEquals([ debug.ScopeType.Eval,
+                 debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(0).allScopes().map(s => s.scopeType()));
+  var scope = exec_state.frame(0).scope(0);
+  assertEquals(1, scope.scopeObject().property("a").value().value());
+  assertEquals(1, exec_state.frame(0).evaluate("a").value());
+  scope.setVariableValue("a", 2);
+  assertEquals(2, exec_state.frame(0).evaluate("a++").value());
+}
+
+eval("'use strict';      \n" +
+     "var a = 1;         \n" +
+     "debugger;          \n" +
+     "assertEquals(3, a);\n");
+
+eval("'use strict';      \n" +
+     "var a = 1;         \n" +
+     "(x=>a);            \n" +  // Force context-allocation.
+     "debugger;          \n" +
+     "assertEquals(3, a);\n");
+
+// Current function is an inner function.
+// We cannot access stack-allocated values in the eval-scope.
+delegate = function(exec_state) {
+  assertEquals([ debug.ScopeType.Local,
+                 debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(0).allScopes().map(s => s.scopeType()));
+  assertEquals([ debug.ScopeType.Eval,
+                 debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(1).allScopes().map(s => s.scopeType()));
+  var scope = exec_state.frame(0).scope(0);
+  assertThrows(() => exec_state.frame(0).evaluate("a"), ReferenceError);
+  assertTrue(scope.scopeObject().property("a").isUndefined());
+}
+
+eval("'use strict';       \n" +
+     "var a = 1;          \n" +
+     "(() => {debugger})()\n");
+
+// Current function is an escaped inner function.
+delegate = function(exec_state) {
+  assertEquals([ debug.ScopeType.Local,
+                 debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(0).allScopes().map(s => s.scopeType()));
+  assertEquals([ debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(1).allScopes().map(s => s.scopeType()));
+  var scope = exec_state.frame(0).scope(0);
+  assertThrows(() => exec_state.frame(0).evaluate("a"), ReferenceError);
+  assertTrue(scope.scopeObject().property("a").isUndefined());
+}
+
+var f = eval("'use strict';   \n" +
+             "var a = 1;      \n" +
+             "() => {debugger}\n");
+f();
+
+// Current function is an inner function.
+// We can access context-allocated values in the eval-scope.
+delegate = function(exec_state) {
+  assertEquals([ debug.ScopeType.Local,
+                 debug.ScopeType.Closure,
+                 debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(0).allScopes().map(s => s.scopeType()));
+  assertEquals([ debug.ScopeType.Eval,
+                 debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(1).allScopes().map(s => s.scopeType()));
+  var scope = exec_state.frame(1).scope(0);
+  assertEquals(1, scope.scopeObject().property("a").value().value());
+  assertEquals(1, exec_state.frame(1).evaluate("a").value());
+  assertEquals(1, exec_state.frame(0).evaluate("a").value());
+  scope.setVariableValue("a", 2);
+  assertEquals(2, exec_state.frame(0).evaluate("a++").value());
+  assertEquals(3, exec_state.frame(1).evaluate("a++").value());
+}
+
+eval("'use strict';               \n" +
+     "var a = 1;                  \n" +
+     "(() => { a;                 \n" +  // Force context-allocation.
+     "         debugger;          \n" +
+     "         assertEquals(4, a);\n" +
+     "       })();                \n"
+     );
+
+// Current function is an escaped inner function.
+// We can access context-allocated values in the eval-scope.
+delegate = function(exec_state) {
+  assertEquals([ debug.ScopeType.Local,
+                 debug.ScopeType.Closure,
+                 debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(0).allScopes().map(s => s.scopeType()));
+  assertEquals([ debug.ScopeType.Script,
+                 debug.ScopeType.Global ],
+               exec_state.frame(1).allScopes().map(s => s.scopeType()));
+  var scope = exec_state.frame(0).scope(1);
+  assertEquals(1, scope.scopeObject().property("a").value().value());
+  assertEquals(1, exec_state.frame(0).evaluate("a").value());
+  scope.setVariableValue("a", 2);
+  assertEquals(2, exec_state.frame(0).evaluate("a++").value());
+}
+
+var g = eval("'use strict';              \n" +
+             "var a = 1;                 \n" +
+             "() => { a;                 \n" +
+             "        debugger;          \n" +
+             "        assertEquals(3, a);\n" +
+             "      }                    \n");
+g();
+
+Debug.setListener(null);
+assertNull(exception);
diff --git a/test/mjsunit/debug-evaluate-nested.js b/test/mjsunit/debug-evaluate-nested.js
index da11b90..965b5a7 100644
--- a/test/mjsunit/debug-evaluate-nested.js
+++ b/test/mjsunit/debug-evaluate-nested.js
@@ -34,7 +34,7 @@
       exec_state.frame(0).evaluate("debugger;");
     } else {
       checkScopes(exec_state.frame(0).allScopes(),
-                  [ ScopeType.With, ScopeType.Closure,
+                  [ ScopeType.Eval, ScopeType.With, ScopeType.Closure,
                     ScopeType.Script, ScopeType.Global ]);
     }
   } catch (e) {
diff --git a/test/mjsunit/debug-function-scopes.js b/test/mjsunit/debug-function-scopes.js
index f63d7b2..5509038 100644
--- a/test/mjsunit/debug-function-scopes.js
+++ b/test/mjsunit/debug-function-scopes.js
@@ -42,14 +42,7 @@
   }
 }
 
-// A copy of the scope types from debug/mirrors.js.
-var ScopeType = { Global: 0,
-                  Local: 1,
-                  With: 2,
-                  Closure: 3,
-                  Catch: 4,
-                  Block: 5,
-                  Script: 6};
+var ScopeType = debug.ScopeType;
 
 var f1 = (function F1(x) {
   function F2(y) {
diff --git a/test/mjsunit/debug-liveedit-exceptions.js b/test/mjsunit/debug-liveedit-exceptions.js
new file mode 100644
index 0000000..28ec01d
--- /dev/null
+++ b/test/mjsunit/debug-liveedit-exceptions.js
@@ -0,0 +1,67 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug
+
+Debug = debug.Debug
+
+function BestEditor() {
+  throw 'Emacs';
+}
+
+var exception = null;
+var results = [];
+var log = []
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Exception) return;
+  try {
+    var source_line = event_data.sourceLineText();
+    print(source_line);
+    log.push(source_line);
+    switch (results.length) {
+      case 0:
+        Replace(BestEditor, "Emacs", "Eclipse");
+        break;
+      case 1:
+        Replace(BestEditor, "Eclipse", "Vim");
+        break;
+      case 2:
+        break;
+      default:
+        assertUnreachable();
+    }
+  } catch (e) {
+    exception = e;
+  }
+};
+
+function Replace(fun, original, patch) {
+  var script = Debug.findScript(fun);
+  if (fun.toString().indexOf(original) < 0) return;
+  var patch_pos = script.source.indexOf(original);
+  var change_log = [];
+  Debug.LiveEdit.TestApi.ApplySingleChunkPatch(script, patch_pos, original.length, patch, change_log);
+}
+
+Debug.setListener(listener);
+Debug.setBreakOnException();
+
+for (var i = 0; i < 3; i++) {
+  try {
+    BestEditor();
+  } catch (e) {
+    results.push(e);
+  }
+}
+Debug.setListener(null);
+
+assertNull(exception);
+assertEquals(["Emacs", "Eclipse", "Vim"], results);
+print(JSON.stringify(log, 1));
+assertEquals([
+  "  throw 'Emacs';",
+  "  throw 'Eclipse';",
+  "  throw 'Vim';",
+], log);
diff --git a/test/mjsunit/debug-liveedit-stepin.js b/test/mjsunit/debug-liveedit-stepin.js
index 601a66f..c6070ce 100644
--- a/test/mjsunit/debug-liveedit-stepin.js
+++ b/test/mjsunit/debug-liveedit-stepin.js
@@ -7,8 +7,7 @@
 Debug = debug.Debug
 
 function BestEditor() {
-  var best_editor = "Emacs";
-  return best_editor;
+  return 'Emacs';
 }
 
 var exception = null;
@@ -62,20 +61,15 @@
 assertEquals([
   "debugger;",
   "results.push(BestEditor());",
-  "  var best_editor = \"Emacs\";",
-  "  return best_editor;","}",
+  "  return 'Emacs';","}",
   "results.push(BestEditor());",
   "results.push(BestEditor());",
-  "  var best_editor = \"Emacs\";",
-  "  return best_editor;",
-  "  var best_editor = \"Eclipse\";",
-  "  return best_editor;","}",
+  "  return 'Emacs';",
+  "  return 'Eclipse';","}",
   "results.push(BestEditor());",
   "results.push(BestEditor());",
-  "  var best_editor = \"Eclipse\";",
-  "  return best_editor;",
-  "  var best_editor = \"Vim\";",
-  "  return best_editor;",
+  "  return 'Eclipse';",
+  "  return 'Vim';",
   "}","results.push(BestEditor());",
   "Debug.setListener(null);"
 ], log);
diff --git a/test/mjsunit/debug-scopes.js b/test/mjsunit/debug-scopes.js
index 3659d4e..935de9c 100644
--- a/test/mjsunit/debug-scopes.js
+++ b/test/mjsunit/debug-scopes.js
@@ -183,10 +183,8 @@
   if (!scope.scopeObject().property('this').isUndefined()) {
     scope_size--;
   }
-  // Skip property with empty name.
-  if (!scope.scopeObject().property('').isUndefined()) {
-    scope_size--;
-  }
+  // Temporary variables introduced by the parser have not been materialized.
+  assertTrue(scope.scopeObject().property('').isUndefined());
 
   if (count != scope_size) {
     print('Names found in scope:');
@@ -1179,11 +1177,10 @@
 
 listener_delegate = function(exec_state) {
   CheckScopeChain([debug.ScopeType.Block,
-                   debug.ScopeType.Block,
                    debug.ScopeType.Local,
                    debug.ScopeType.Script,
                    debug.ScopeType.Global], exec_state);
-  CheckScopeChainPositions([{start: 52, end: 111}, {start: 42, end: 111}, {start: 22, end: 145}, {}, {}], exec_state);
+  CheckScopeChainPositions([{start: 52, end: 111}, {start: 22, end: 145}, {}, {}], exec_state);
 }
 eval(code3);
 EndTest();
diff --git a/test/mjsunit/debug-stack-check-position.js b/test/mjsunit/debug-stack-check-position.js
new file mode 100644
index 0000000..a5570ce
--- /dev/null
+++ b/test/mjsunit/debug-stack-check-position.js
@@ -0,0 +1,30 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+var exception = null;
+var loop = true;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    assertTrue(exec_state.frame(0).sourceLineText().indexOf("BREAK") > 0);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+function f() {     // BREAK
+  return 1;
+}
+
+Debug.setListener(listener);
+
+%ScheduleBreak();  // Break on function entry.
+f();
+
+Debug.setListener(null);
+assertNull(exception);
diff --git a/test/mjsunit/delete.js b/test/mjsunit/delete.js
index 8d4636a..20fa6bf 100644
--- a/test/mjsunit/delete.js
+++ b/test/mjsunit/delete.js
@@ -178,3 +178,17 @@
 }
 
 load_deleted_property_using_IC();
+
+
+(function deleteLargeDoubleArrayAtEnd() {
+  var o = {};
+  var max = 100000;
+  for (var i = 0; i <= max; i++) {
+    o[i] = 1.1;
+  }
+  delete o[max];
+  for (var i = 0; i < max; i++) {
+    assertEquals(1.1, o[i]);
+  }
+  assertEquals(undefined, o[max]);
+})();
diff --git a/test/mjsunit/es6/array-concat.js b/test/mjsunit/es6/array-concat.js
index fe320d6..00edfd6 100644
--- a/test/mjsunit/es6/array-concat.js
+++ b/test/mjsunit/es6/array-concat.js
@@ -1,7 +1,6 @@
 // Copyright 2014 the V8 project authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
-
 (function testArrayConcatArity() {
   "use strict";
   assertEquals(1, Array.prototype.concat.length);
@@ -20,6 +19,15 @@
   assertEquals(false, desc.enumerable);
 })();
 
+(function testNonConcatSpreadableArray() {
+  "use strict"
+  var array = [1, 2, 3];
+  assertEquals(array, [].concat(array));
+  assertEquals(array, array.concat([]));
+  array[Symbol.isConcatSpreadable] = false;
+  assertEquals([[1,2,3]], [].concat(array));
+  assertEquals([[1,2,3]], array.concat([]));
+})();
 
 (function testConcatArrayLike() {
   "use strict";
diff --git a/test/mjsunit/es6/array-species-neg-zero.js b/test/mjsunit/es6/array-species-neg-zero.js
new file mode 100644
index 0000000..d60b8ba
--- /dev/null
+++ b/test/mjsunit/es6/array-species-neg-zero.js
@@ -0,0 +1,23 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * 9.4.2.3 ArraySpeciesCreate(originalArray, length)
+ *
+ * 1. Assert: length is an integer Number ≥ 0.
+ * 2. If length is −0, let length be +0.
+ * [...]
+ */
+
+var x = [];
+var deleteCount;
+
+x.constructor = function() {};
+x.constructor[Symbol.species] = function(param) {
+  deleteCount = param;
+};
+
+x.splice(0, -0);
+
+assertEquals(0, deleteCount);
diff --git a/test/mjsunit/harmony/block-conflicts-sloppy.js b/test/mjsunit/es6/block-conflicts-sloppy.js
similarity index 98%
rename from test/mjsunit/harmony/block-conflicts-sloppy.js
rename to test/mjsunit/es6/block-conflicts-sloppy.js
index 8908ce4..866abee 100644
--- a/test/mjsunit/harmony/block-conflicts-sloppy.js
+++ b/test/mjsunit/es6/block-conflicts-sloppy.js
@@ -4,8 +4,6 @@
 
 // Test for conflicting variable bindings.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let --harmony-sloppy-function
-
 function CheckException(e) {
   var string = e.toString();
   assertTrue(string.indexOf("has already been declared") >= 0 ||
diff --git a/test/mjsunit/harmony/block-const-assign-sloppy.js b/test/mjsunit/es6/block-const-assign-sloppy.js
similarity index 98%
rename from test/mjsunit/harmony/block-const-assign-sloppy.js
rename to test/mjsunit/es6/block-const-assign-sloppy.js
index 5dde82c..99024ef 100644
--- a/test/mjsunit/harmony/block-const-assign-sloppy.js
+++ b/test/mjsunit/es6/block-const-assign-sloppy.js
@@ -25,8 +25,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let
-
 // Test that we throw early syntax errors in harmony mode
 // when using an immutable binding in an assigment or with
 // prefix/postfix decrement/increment operators.
diff --git a/test/mjsunit/es6/block-early-errors.js b/test/mjsunit/es6/block-early-errors.js
deleted file mode 100644
index 4af6521..0000000
--- a/test/mjsunit/es6/block-early-errors.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2011 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --no-harmony-sloppy-let
-
-function CheckException(e) {
-  var string = e.toString();
-  assertInstanceof(e, SyntaxError);
-}
-
-function Check(str) {
-  try {
-    eval("(function () { " + str + " })");
-    assertUnreachable();
-  } catch (e) {
-    CheckException(e);
-  }
-  try {
-    eval("(function () { { " + str + " } })");
-    assertUnreachable();
-  } catch (e) {
-    CheckException(e);
-  }
-}
-
-// Check for early syntax errors when using let
-// declarations outside of strict mode.
-Check("let x;");
-Check("let x = 1;");
-Check("let x, y;");
diff --git a/test/mjsunit/harmony/block-eval-var-over-let.js b/test/mjsunit/es6/block-eval-var-over-let.js
similarity index 96%
rename from test/mjsunit/harmony/block-eval-var-over-let.js
rename to test/mjsunit/es6/block-eval-var-over-let.js
index 98091b4..febc83f 100644
--- a/test/mjsunit/harmony/block-eval-var-over-let.js
+++ b/test/mjsunit/es6/block-eval-var-over-let.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let --harmony-sloppy-function
-
 // Var-let conflict in a function throws, even if the var is in an eval
 
 // Throws at the top level of a function
diff --git a/test/mjsunit/harmony/block-for-sloppy.js b/test/mjsunit/es6/block-for-sloppy.js
similarity index 98%
rename from test/mjsunit/harmony/block-for-sloppy.js
rename to test/mjsunit/es6/block-for-sloppy.js
index 261c46a..4f0f63f 100644
--- a/test/mjsunit/harmony/block-for-sloppy.js
+++ b/test/mjsunit/es6/block-for-sloppy.js
@@ -25,8 +25,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let
-
 function props(x) {
   var array = [];
   for (let p in x) array.push(p);
diff --git a/test/mjsunit/harmony/block-leave-sloppy.js b/test/mjsunit/es6/block-leave-sloppy.js
similarity index 98%
rename from test/mjsunit/harmony/block-leave-sloppy.js
rename to test/mjsunit/es6/block-leave-sloppy.js
index 0023fa0..1313026 100644
--- a/test/mjsunit/harmony/block-leave-sloppy.js
+++ b/test/mjsunit/es6/block-leave-sloppy.js
@@ -25,8 +25,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let
-
 // We want to test the context chain shape.  In each of the tests cases
 // below, the outer with is to force a runtime lookup of the identifier 'x'
 // to actually verify that the inner context has been discarded.  A static
diff --git a/test/mjsunit/es6/block-let-contextual-sloppy.js b/test/mjsunit/es6/block-let-contextual-sloppy.js
index ac7bca1..8282d77 100644
--- a/test/mjsunit/es6/block-let-contextual-sloppy.js
+++ b/test/mjsunit/es6/block-let-contextual-sloppy.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let
-
 // let is usable as a variable with var, but not let or ES6 const
 
 (function (){
diff --git a/test/mjsunit/harmony/block-let-crankshaft-sloppy.js b/test/mjsunit/es6/block-let-crankshaft-sloppy.js
similarity index 99%
rename from test/mjsunit/harmony/block-let-crankshaft-sloppy.js
rename to test/mjsunit/es6/block-let-crankshaft-sloppy.js
index 4f29c05..b5e81f7 100644
--- a/test/mjsunit/harmony/block-let-crankshaft-sloppy.js
+++ b/test/mjsunit/es6/block-let-crankshaft-sloppy.js
@@ -26,7 +26,6 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Flags: --allow-natives-syntax
-// Flags: --harmony-sloppy --harmony-sloppy-let
 
 // Check that the following functions are optimizable.
 var functions = [ f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14,
diff --git a/test/mjsunit/harmony/block-let-declaration-sloppy.js b/test/mjsunit/es6/block-let-declaration-sloppy.js
similarity index 98%
rename from test/mjsunit/harmony/block-let-declaration-sloppy.js
rename to test/mjsunit/es6/block-let-declaration-sloppy.js
index af95553..ea0e39b 100644
--- a/test/mjsunit/harmony/block-let-declaration-sloppy.js
+++ b/test/mjsunit/es6/block-let-declaration-sloppy.js
@@ -27,8 +27,6 @@
 
 // Test let declarations in various settings.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let
-
 // Global
 let x;
 let y = 2;
diff --git a/test/mjsunit/harmony/block-let-semantics-sloppy.js b/test/mjsunit/es6/block-let-semantics-sloppy.js
similarity index 98%
rename from test/mjsunit/harmony/block-let-semantics-sloppy.js
rename to test/mjsunit/es6/block-let-semantics-sloppy.js
index a55ff8f..4102ec8 100644
--- a/test/mjsunit/harmony/block-let-semantics-sloppy.js
+++ b/test/mjsunit/es6/block-let-semantics-sloppy.js
@@ -25,8 +25,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let --harmony-sloppy-function
-
 // Test temporal dead zone semantics of let bound variables in
 // function and block scopes.
 
diff --git a/test/mjsunit/es6/block-non-strict-errors.js b/test/mjsunit/es6/block-non-strict-errors.js
deleted file mode 100644
index db7f558..0000000
--- a/test/mjsunit/es6/block-non-strict-errors.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --no-harmony-sloppy-let --no-harmony-sloppy-function
-// Flags: --no-harmony-sloppy
-
-function CheckError(source) {
-  var exception = null;
-  try {
-    eval(source);
-  } catch (e) {
-    exception = e;
-  }
-  assertNotNull(exception);
-  assertEquals(
-      "Block-scoped declarations (let, const, function, class) not yet supported outside strict mode",
-      exception.message);
-}
-
-
-function CheckOk(source) {
-  eval(source);
-}
-
-CheckError("let x = 1;");
-CheckError("{ let x = 1; }");
-CheckError("function f() { let x = 1; }");
-CheckError("for (let x = 1; x < 1; x++) {}");
-CheckError("for (let x of []) {}");
-CheckError("for (let x in []) {}");
-CheckError("class C {}");
-CheckError("class C extends Array {}");
-CheckError("(class {});");
-CheckError("(class extends Array {});");
-CheckError("(class C {});");
-CheckError("(class C exends Array {});");
-
-CheckOk("let = 1;");
-CheckOk("{ let = 1; }");
-CheckOk("function f() { let = 1; }");
-CheckOk("for (let = 1; let < 1; let++) {}");
diff --git a/test/mjsunit/es6/block-scope-class.js b/test/mjsunit/es6/block-scope-class.js
index 351feaa..7bbd49d 100644
--- a/test/mjsunit/es6/block-scope-class.js
+++ b/test/mjsunit/es6/block-scope-class.js
@@ -4,8 +4,6 @@
 
 // Test for conflicting variable bindings.
 
-// Flags: --harmony-sloppy --harmony-sloppy-function
-
 function AssertEqualsStrictAndSloppy(value, code) {
   assertEquals(value, eval("(function() {" + code + "})()"));
   assertEquals(value, eval("(function() { 'use strict'; " + code + "})()"));
diff --git a/test/mjsunit/harmony/block-scoping-sloppy.js b/test/mjsunit/es6/block-scoping-sloppy.js
similarity index 98%
rename from test/mjsunit/harmony/block-scoping-sloppy.js
rename to test/mjsunit/es6/block-scoping-sloppy.js
index 1785901..f5c5a63 100644
--- a/test/mjsunit/harmony/block-scoping-sloppy.js
+++ b/test/mjsunit/es6/block-scoping-sloppy.js
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --allow-natives-syntax --harmony-sloppy --harmony-sloppy-let --harmony-sloppy-function
+// Flags: --allow-natives-syntax
 // Test functionality of block scopes.
 
 // Hoisting of var declarations.
diff --git a/test/mjsunit/harmony/block-scoping-top-level-sloppy.js b/test/mjsunit/es6/block-scoping-top-level-sloppy.js
similarity index 91%
rename from test/mjsunit/harmony/block-scoping-top-level-sloppy.js
rename to test/mjsunit/es6/block-scoping-top-level-sloppy.js
index 6f6a8fe..2a3b903 100644
--- a/test/mjsunit/harmony/block-scoping-top-level-sloppy.js
+++ b/test/mjsunit/es6/block-scoping-top-level-sloppy.js
@@ -3,7 +3,6 @@
 // found in the LICENSE file.
 
 // Flags: --min-preparse-length=0
-// Flags: --harmony-sloppy --harmony-sloppy-let
 
 let xxx = 1;
 let f = undefined;
diff --git a/test/mjsunit/harmony/block-sloppy-function.js b/test/mjsunit/es6/block-sloppy-function.js
similarity index 98%
rename from test/mjsunit/harmony/block-sloppy-function.js
rename to test/mjsunit/es6/block-sloppy-function.js
index 2bea147..41063b4 100644
--- a/test/mjsunit/harmony/block-sloppy-function.js
+++ b/test/mjsunit/es6/block-sloppy-function.js
@@ -2,9 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let
-// Flags: --harmony-sloppy-function
-
 // Test Annex B 3.3 semantics for functions declared in blocks in sloppy mode.
 // http://www.ecma-international.org/ecma-262/6.0/#sec-block-level-function-declarations-web-legacy-compatibility-semantics
 
diff --git a/test/mjsunit/es6/class-computed-property-names-super.js b/test/mjsunit/es6/class-computed-property-names-super.js
index cb9f251..b5a2ac9 100644
--- a/test/mjsunit/es6/class-computed-property-names-super.js
+++ b/test/mjsunit/es6/class-computed-property-names-super.js
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy
 // Flags: --allow-natives-syntax
 
 
diff --git a/test/mjsunit/es6/class-property-name-eval-arguments.js b/test/mjsunit/es6/class-property-name-eval-arguments.js
index 72ff60f..bbd05cc 100644
--- a/test/mjsunit/es6/class-property-name-eval-arguments.js
+++ b/test/mjsunit/es6/class-property-name-eval-arguments.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy
-
 
 (function Method() {
   class C {
diff --git a/test/mjsunit/es6/classes-derived-return-type.js b/test/mjsunit/es6/classes-derived-return-type.js
index 8283bcb..3f81a34 100644
--- a/test/mjsunit/es6/classes-derived-return-type.js
+++ b/test/mjsunit/es6/classes-derived-return-type.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy
-
 
 class Base {}
 
diff --git a/test/mjsunit/es6/classes.js b/test/mjsunit/es6/classes.js
index 4dabda8..fb77dbb 100644
--- a/test/mjsunit/es6/classes.js
+++ b/test/mjsunit/es6/classes.js
@@ -2,8 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy --harmony-function-name --allow-natives-syntax
-// Flags: --harmony-do-expressions
+// Flags: --allow-natives-syntax --harmony-do-expressions
 
 (function TestBasics() {
   var C = class C {}
diff --git a/test/mjsunit/es6/completion.js b/test/mjsunit/es6/completion.js
index 7559514..988e970 100644
--- a/test/mjsunit/es6/completion.js
+++ b/test/mjsunit/es6/completion.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy-let
-
 
 function assertUndef(x) {
   assertEquals(undefined, x);
diff --git a/test/mjsunit/es6/debug-blockscopes.js b/test/mjsunit/es6/debug-blockscopes.js
index 193ad70..bf04a0a 100644
--- a/test/mjsunit/es6/debug-blockscopes.js
+++ b/test/mjsunit/es6/debug-blockscopes.js
@@ -52,6 +52,7 @@
       listener_delegate(exec_state);
     }
   } catch (e) {
+    print(e, e.stack);
     exception = e;
   }
 }
@@ -147,10 +148,8 @@
   if (!scope.scopeObject().property('arguments').isUndefined()) {
     scope_size--;
   }
-  // Skip property with empty name.
-  if (!scope.scopeObject().property('').isUndefined()) {
-    scope_size--;
-  }
+  // Temporary variables introduced by the parser have not been materialized.
+  assertTrue(scope.scopeObject().property('').isUndefined());
 
   if (count != scope_size) {
     print('Names found in scope:');
@@ -380,16 +379,12 @@
 
 listener_delegate = function(exec_state) {
   CheckScopeChain([debug.ScopeType.Block,
-                   debug.ScopeType.Block,
                    debug.ScopeType.Local,
                    debug.ScopeType.Script,
                    debug.ScopeType.Global], exec_state);
   CheckScopeContent({x:'y'}, 0, exec_state);
   // The function scope contains a temporary iteration variable, but it is
   // hidden to the debugger.
-  // TODO(adamk): This variable is only used to provide a TDZ for the enumerable
-  // expression and should not be visible to the debugger.
-  CheckScopeContent({x:undefined}, 1, exec_state);
 };
 for_loop_1();
 EndTest();
@@ -409,7 +404,6 @@
 listener_delegate = function(exec_state) {
   CheckScopeChain([debug.ScopeType.Block,
                    debug.ScopeType.Block,
-                   debug.ScopeType.Block,
                    debug.ScopeType.Local,
                    debug.ScopeType.Script,
                    debug.ScopeType.Global], exec_state);
@@ -417,9 +411,6 @@
   CheckScopeContent({x:'y'}, 1, exec_state);
   // The function scope contains a temporary iteration variable, hidden to the
   // debugger.
-  // TODO(adamk): This variable is only used to provide a TDZ for the enumerable
-  // expression and should not be visible to the debugger.
-  CheckScopeContent({x:undefined}, 2, exec_state);
 };
 for_loop_2();
 EndTest();
@@ -436,13 +427,11 @@
 
 listener_delegate = function(exec_state) {
   CheckScopeChain([debug.ScopeType.Block,
-                   debug.ScopeType.Block,
                    debug.ScopeType.Local,
                    debug.ScopeType.Script,
                    debug.ScopeType.Global], exec_state);
   CheckScopeContent({x:3}, 0, exec_state);
-  CheckScopeContent({x:3}, 1, exec_state);
-  CheckScopeContent({}, 2, exec_state);
+  CheckScopeContent({}, 1, exec_state);
 };
 for_loop_3();
 EndTest();
@@ -461,14 +450,12 @@
 listener_delegate = function(exec_state) {
   CheckScopeChain([debug.ScopeType.Block,
                    debug.ScopeType.Block,
-                   debug.ScopeType.Block,
                    debug.ScopeType.Local,
                    debug.ScopeType.Script,
                    debug.ScopeType.Global], exec_state);
   CheckScopeContent({x:5}, 0, exec_state);
   CheckScopeContent({x:3}, 1, exec_state);
-  CheckScopeContent({x:3}, 2, exec_state);
-  CheckScopeContent({}, 3, exec_state);
+  CheckScopeContent({}, 2, exec_state);
 };
 for_loop_4();
 EndTest();
@@ -485,13 +472,11 @@
 
 listener_delegate = function(exec_state) {
   CheckScopeChain([debug.ScopeType.Block,
-                   debug.ScopeType.Block,
                    debug.ScopeType.Local,
                    debug.ScopeType.Script,
                    debug.ScopeType.Global], exec_state);
   CheckScopeContent({x:3,y:5}, 0, exec_state);
-  CheckScopeContent({x:3,y:5}, 1, exec_state);
-  CheckScopeContent({}, 2, exec_state);
+  CheckScopeContent({}, 1, exec_state);
 };
 for_loop_5();
 EndTest();
diff --git a/test/mjsunit/es6/debug-evaluate-receiver-before-super.js b/test/mjsunit/es6/debug-evaluate-receiver-before-super.js
new file mode 100644
index 0000000..dc8ce2c
--- /dev/null
+++ b/test/mjsunit/es6/debug-evaluate-receiver-before-super.js
@@ -0,0 +1,39 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug
+
+// Test that debug-evaluate doesn't crash when this is used before super() call
+// in constructor.
+
+Debug = debug.Debug
+
+var result;
+
+function listener(event, exec_state, event_data, data)
+{
+  try {
+    if (event == Debug.DebugEvent.Break) {
+      result = exec_state.frame(0).evaluate("this.a").value();
+    }
+  } catch (e) {
+    result = e.message;
+  }
+}
+
+Debug.setListener(listener);
+
+class A { constructor () { this.a = 239; } }
+class B extends A {
+  constructor () {
+    debugger;
+    assertEquals("Cannot read property 'a' of undefined", result);
+    super();
+    debugger;
+    assertEquals(239, result);
+  }
+}
+new B();
+
+Debug.setListener(null);
diff --git a/test/mjsunit/es6/debug-promises/stepin-constructor.js b/test/mjsunit/es6/debug-promises/stepin-constructor.js
index 906969e..6914ae0 100644
--- a/test/mjsunit/es6/debug-promises/stepin-constructor.js
+++ b/test/mjsunit/es6/debug-promises/stepin-constructor.js
@@ -21,9 +21,9 @@
 Debug.setListener(listener);
 
 function resolver(resolve, reject) {
-  1;
-  2;
-  3;
+  print(1);
+  print(2);
+  print(3);
   resolve();
 }
 
@@ -35,9 +35,9 @@
 var expected_breaks = [
   "debugger;",
   "var p = new Promise(resolver);",
-  "1;",
-  "2;",
-  "3;",
+  "print(1);",
+  "print(2);",
+  "print(3);",
   "resolve();",
   "}",
   "Debug.setListener(null);"
diff --git a/test/mjsunit/es6/debug-scope-default-param-with-eval.js b/test/mjsunit/es6/debug-scope-default-param-with-eval.js
new file mode 100644
index 0000000..d4dc93f
--- /dev/null
+++ b/test/mjsunit/es6/debug-scope-default-param-with-eval.js
@@ -0,0 +1,61 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug
+
+// Test that the parameter initialization block scope set up for
+// sloppy eval is visible to the debugger.
+
+var Debug = debug.Debug;
+var exception = null;
+var break_count = 0;
+
+function call_for_break() {
+  return 5;
+}
+
+function test(x = eval("var y = 7; debugger; y") + call_for_break()) {
+  return x;
+}
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var frame = exec_state.frame(0);
+    var block_scope;
+    if (break_count++ == 0) {
+      // Inside eval.
+      assertEquals([ debug.ScopeType.Eval,
+                     debug.ScopeType.Block,
+                     debug.ScopeType.Closure,
+                     debug.ScopeType.Script,
+                     debug.ScopeType.Global ],
+                   frame.allScopes().map(s => s.scopeType()));
+      exec_state.prepareStep(Debug.StepAction.StepOut);
+      block_scope = frame.scope(1);
+    } else {
+      // Outside of eval.
+      assertEquals([ debug.ScopeType.Block,
+                     debug.ScopeType.Local,
+                     debug.ScopeType.Script,
+                     debug.ScopeType.Global ],
+                   frame.allScopes().map(s => s.scopeType()));
+      block_scope = frame.scope(0);
+    }
+    assertTrue(block_scope.scopeObject().propertyNames().includes('y'));
+    assertEquals(7, block_scope.scopeObject().property('y').value().value());
+  } catch (e) {
+    print(e);
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+assertEquals(12, test());
+
+Debug.setListener(null);
+
+assertNull(exception);
+assertEquals(2, break_count);
diff --git a/test/mjsunit/es6/debug-stepin-microtasks.js b/test/mjsunit/es6/debug-stepin-microtasks.js
index 6a7c553..e541f0f 100644
--- a/test/mjsunit/es6/debug-stepin-microtasks.js
+++ b/test/mjsunit/es6/debug-stepin-microtasks.js
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-object-observe
 // Flags: --allow-natives-syntax --expose-debug-as debug
 
 Debug = debug.Debug
@@ -46,6 +45,7 @@
   .then(Boolean) // Should skip stepping into native.
   .then(promise2)
   .catch(promise3)
+  .then(promise4)
   .catch(function(e) {
     %AbortJS("FAIL: uncaught exception " + e);
   });
@@ -60,36 +60,16 @@
 }
 
 function promise3() {
-  installObservers(); // Break 4. StepOver.
-  return break_count; // Break 5.
-} // Break 6.
-
-function installObservers() {
-  var dummy = {};
-  Object.observe(dummy, observer1);
-  Object.observe(dummy, Object); // Should skip stepping into native.
-  Object.observe(dummy, Boolean); // Should skip stepping into native.
-  Object.observe(dummy, observer2);
-  dummy.foo = 1;
-}
-
-function observer1() {
-  return exception || 3; // Break 7.
-} // Break 8.
-
-function observer2() {
-  Promise.resolve().then(promise4); // Break 9. StepOver.
-  return break_count + 1; // Break 10.
-} // Break 11.
+  return break_count; // Break 4.
+} // Break 5.
 
 function promise4() {
-  finalize(); // Break 12. StepOver.
-  return 0; // Break 13.
-} // Break 14. StepOver.
+  finalize(); // Break 6. StepOver.
+  return 0; // Break 7.
+} // Break 8. StepOver.
 
 function finalize() {
-  var dummy = {};
-  Object.observe(dummy, function() {
+  Promise.resolve().then(function() {
     if (expected_breaks !== break_count) {
       %AbortJS("FAIL: expected <" + expected_breaks + "> breaks instead of <" +
                break_count + ">");
@@ -98,5 +78,4 @@
       %AbortJS("FAIL: exception: " + exception);
     }
   });
-  dummy.foo = 1;
 }
diff --git a/test/mjsunit/es6/debug-stepin-proxies.js b/test/mjsunit/es6/debug-stepin-proxies.js
index 4e71c79..72c01f0 100644
--- a/test/mjsunit/es6/debug-stepin-proxies.js
+++ b/test/mjsunit/es6/debug-stepin-proxies.js
@@ -54,7 +54,7 @@
 
 assertEquals([
   "a0",
-  "b17", "h4b20", "i2b20",  // [[Has]]
+  "b17", "h4b17", "i2b17",  // [[Has]]
   "c15", "j4c15", "k2c15",  // [[Get]]
   "d0", "l4d11", "m2d11",   // [[Set]]
   "g0"
diff --git a/test/mjsunit/es6/debug-stepnext-for.js b/test/mjsunit/es6/debug-stepnext-for.js
index 9d5641a..d425a46 100644
--- a/test/mjsunit/es6/debug-stepnext-for.js
+++ b/test/mjsunit/es6/debug-stepnext-for.js
@@ -11,6 +11,8 @@
 
 var s = 0;
 var a = [1, 2, 3];
+var b = [1, 2, 3, 4];
+var null_value = null;
 var i = 0;
 
 function f() {
@@ -18,11 +20,11 @@
   debugger;                      // Break a
   var j;                         // Break b
 
-  for (var i in null) {          // Break c
+  for (var i in null_value) {    // Break c
     s += a[i];
   }
 
-  for (j in null) {              // Break d
+  for (j in null_value) {        // Break d
     s += a[j];
   }
 
@@ -46,7 +48,7 @@
     s += j;                      // Break I
   }
 
-  for (let i of a) {             // Break j
+  for (let i  of  a) {           // Break j
     s += i;                      // Break J
   }
 
@@ -61,6 +63,11 @@
   for (let i = 0; i < 3; i++) {  // Break m
     s += a[i];                   // Break M
   }
+
+  for (let i of a) {}            // Break n
+
+  [1, ...a]                      // Break o
+
 }                                // Break y
 
 function listener(event, exec_state, event_data, data) {
@@ -103,17 +110,21 @@
   // For-in-let: get enumerable, next, body, next,  ...
   "g16","g11","G4","g11","G4","g11","G4","g11",
   // For-of-var: [Symbol.iterator](), next(), body, next(), body, ...
-  "h16","h14","h15","H4","h15","H4","h15","H4","h15",
+  "h16","h13","H4","h13","H4","h13","H4","h13",
   // For-of: [Symbol.iterator](), next(), body, next(), body, ...
-  "i12","i10","i11","I4","i11","I4","i11","I4","i11",
+  "i12","i9","I4","i9","I4","i9","I4","i9",
   // For-of-let: [Symbol.iterator](), next(), body, next(), ...
-  "j16","j14","j15","J4","j15","J4","j15","J4","j15",
+  "j18","j14","J4","j14","J4","j14","J4","j14",
   // For-var: init, condition, body, next, condition, body, ...
   "k15","k20","K4","k26","k20","K4","k26","k20","K4","k26","k20",
   // For: init, condition, body, next, condition, body, ...
   "l7","l16","L4","l22","l16","L4","l22","l16","L4","l22","l16",
   // For-let: init, condition, body, next, condition, body, ...
   "m15","m20","M4","m26","m20","M4","m26","m20","M4","m26","m20",
+  // For-of, empty: [Symbol.iterator](), next() once
+  "n16", "n13",
+  // Spread: expression statement, spread
+  "o2", "o9",
   // Exit.
   "y0","z0",
 ]
diff --git a/test/mjsunit/es6/generators-objects.js b/test/mjsunit/es6/generators-objects.js
index a0c3b80..2d23841 100644
--- a/test/mjsunit/es6/generators-objects.js
+++ b/test/mjsunit/es6/generators-objects.js
@@ -87,3 +87,29 @@
   TestNonGenerator(g.prototype);
 }
 TestGeneratorObjectMethods();
+
+
+function TestPrototype() {
+  function* g() { }
+
+  let g_prototype = g.prototype;
+  assertEquals([], Reflect.ownKeys(g_prototype));
+
+  let generator_prototype = Object.getPrototypeOf(g_prototype);
+  assertSame(generator_prototype, Object.getPrototypeOf(g).prototype);
+
+  // Unchanged .prototype
+  assertSame(g_prototype, Object.getPrototypeOf(g()));
+
+  // Custom object as .prototype
+  {
+    let proto = {};
+    g.prototype = proto;
+    assertSame(proto, Object.getPrototypeOf(g()));
+  }
+
+  // Custom non-object as .prototype
+  g.prototype = null;
+  assertSame(generator_prototype, Object.getPrototypeOf(g()));
+}
+TestPrototype();
diff --git a/test/mjsunit/es6/microtask-delivery.js b/test/mjsunit/es6/microtask-delivery.js
index 01b971d..6b239be 100644
--- a/test/mjsunit/es6/microtask-delivery.js
+++ b/test/mjsunit/es6/microtask-delivery.js
@@ -25,7 +25,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-object-observe
 // Flags: --allow-natives-syntax
 
 var ordering = [];
@@ -71,22 +70,6 @@
   };
 }
 
-function newObserver(id, fn, obj) {
-  var observer = {
-    value: 1,
-    recordCounts: []
-  };
-
-  Object.observe(observer, function(records) {
-    ordering.push('o' + id);
-    observer.recordCounts.push(records.length);
-    if (fn) fn();
-  });
-
-  return observer;
-}
-
-
 (function PromiseThens() {
   reset();
 
@@ -98,72 +81,3 @@
 
   assertOrdering(['p1', 'p2', 'p1:1', 'p2:1']);
 })();
-
-
-(function ObserversBatch() {
-  reset();
-
-  var p1 = newPromise(1);
-  var p2 = newPromise(2);
-  var p3 = newPromise(3);
-
-  var ob1 = newObserver(1);
-  var ob2 = newObserver(2, function() {
-    ob3.value++;
-    p3.resolve();
-    ob1.value++;
-  });
-  var ob3 = newObserver(3);
-
-  p1.resolve();
-  ob1.value++;
-  p2.resolve();
-  ob2.value++;
-
-  assertOrdering(['p1', 'o1', 'o2', 'p2', 'o1', 'o3', 'p3']);
-  assertArrayValues([1, 1], ob1.recordCounts);
-  assertArrayValues([1], ob2.recordCounts);
-  assertArrayValues([1], ob3.recordCounts);
-})();
-
-
-(function ObserversGetAllRecords() {
-  reset();
-
-  var p1 = newPromise(1);
-  var p2 = newPromise(2);
-  var ob1 = newObserver(1, function() {
-    ob2.value++;
-  });
-  var ob2 = newObserver(2);
-
-  p1.resolve();
-  ob1.value++;
-  p2.resolve();
-  ob2.value++;
-
-  assertOrdering(['p1', 'o1', 'o2', 'p2']);
-  assertArrayValues([1], ob1.recordCounts);
-  assertArrayValues([2], ob2.recordCounts);
-})();
-
-
-(function NewObserverDeliveryGetsNewMicrotask() {
-  reset();
-
-  var p1 = newPromise(1);
-  var p2 = newPromise(2);
-  var ob1 = newObserver(1);
-  var ob2 = newObserver(2, function() {
-    ob1.value++;
-  });
-
-  p1.resolve();
-  ob1.value++;
-  p2.resolve();
-  ob2.value++;
-
-  assertOrdering(['p1', 'o1', 'o2', 'p2', 'o1']);
-  assertArrayValues([1, 1], ob1.recordCounts);
-  assertArrayValues([1], ob2.recordCounts);
-})();
diff --git a/test/mjsunit/es6/mirror-collections.js b/test/mjsunit/es6/mirror-collections.js
index 81a98b8..4232ef9 100644
--- a/test/mjsunit/es6/mirror-collections.js
+++ b/test/mjsunit/es6/mirror-collections.js
@@ -88,16 +88,21 @@
 assertSame(o2, values[0]);
 assertEquals(undefined, values[1]);
 
+function initWeakMap(weakMap) {
+  weakMap.set(o1, 11);
+  weakMap.set(new Object(), 22);
+  weakMap.set(o3, 33);
+  weakMap.set(new Object(), 44);
+  var weakMapMirror = debug.MakeMirror(weakMap);
+  testMapMirror(weakMapMirror);
+  weakMap.set(new Object(), 55);
+  assertTrue(weakMapMirror.entries().length <= 5);
+  return weakMapMirror;
+}
+
 // Test the mirror object for WeakMaps
 var weakMap = new WeakMap();
-weakMap.set(o1, 11);
-weakMap.set(new Object(), 22);
-weakMap.set(o3, 33);
-weakMap.set(new Object(), 44);
-var weakMapMirror = debug.MakeMirror(weakMap);
-testMapMirror(weakMapMirror);
-weakMap.set(new Object(), 55);
-assertTrue(weakMapMirror.entries().length <= 5);
+var weakMapMirror = initWeakMap(weakMap);
 gc();
 
 function testWeakMapEntries(weakMapMirror) {
@@ -121,18 +126,23 @@
 
 testWeakMapEntries(weakMapMirror);
 
+function initWeakSet(weakSet) {
+  weakSet.add(o1);
+  weakSet.add(new Object());
+  weakSet.add(o2);
+  weakSet.add(new Object());
+  weakSet.add(new Object());
+  weakSet.add(o3);
+  weakSet.delete(o2);
+  var weakSetMirror =  debug.MakeMirror(weakSet);
+  testSetMirror(weakSetMirror);
+  assertTrue(weakSetMirror.values().length <= 5);
+  return weakSetMirror;
+}
+
 // Test the mirror object for WeakSets
 var weakSet = new WeakSet();
-weakSet.add(o1);
-weakSet.add(new Object());
-weakSet.add(o2);
-weakSet.add(new Object());
-weakSet.add(new Object());
-weakSet.add(o3);
-weakSet.delete(o2);
-var weakSetMirror = debug.MakeMirror(weakSet);
-testSetMirror(weakSetMirror);
-assertTrue(weakSetMirror.values().length <= 5);
+var weakSetMirror = initWeakSet(weakSet);
 gc();
 
 function testWeakSetValues(weakSetMirror) {
diff --git a/test/mjsunit/es6/proxies-for.js b/test/mjsunit/es6/proxies-for.js
index 5b81845..a171227 100644
--- a/test/mjsunit/es6/proxies-for.js
+++ b/test/mjsunit/es6/proxies-for.js
@@ -209,10 +209,15 @@
   assertThrowsEquals(() => {keys(proxy)}, "error");
 })();
 
-
-(function () {
-  var symbol = Symbol();
-  var p = new Proxy({}, {ownKeys() { return ["1", symbol, "2"] }});
-  assertEquals(["1","2"], Object.getOwnPropertyNames(p));
-  assertEquals([symbol], Object.getOwnPropertySymbols(p));
+(function testNestedProxy() {
+  var handler = {
+    ownKeys() {
+      return ['c'];
+    },
+    getOwnPropertyDescriptor() { return {configurable: true, enumerable: true } }
+  }
+  var proxy = new Proxy({}, handler);
+  var proxy2 = new Proxy(proxy, {});
+  assertEquals(['c'], keys(proxy));
+  assertEquals(['c'], keys(proxy2));
 })();
diff --git a/test/mjsunit/es6/proxies-keys.js b/test/mjsunit/es6/proxies-keys.js
index 7344032..65dea6a 100644
--- a/test/mjsunit/es6/proxies-keys.js
+++ b/test/mjsunit/es6/proxies-keys.js
@@ -37,3 +37,14 @@
 handler.ownKeys = undefined;
 assertEquals(["target"], Object.keys(proxy));
 assertEquals(["target"], Object.keys(target));
+
+var proxy2 = new Proxy(proxy, {});
+assertEquals(["target"], Object.keys(proxy2));
+
+
+(function testForSymbols() {
+  var symbol = Symbol();
+  var p = new Proxy({}, {ownKeys() { return ["1", symbol, "2"] }});
+  assertEquals(["1","2"], Object.getOwnPropertyNames(p));
+  assertEquals([symbol], Object.getOwnPropertySymbols(p));
+})();
diff --git a/test/mjsunit/es6/reflect-define-property.js b/test/mjsunit/es6/reflect-define-property.js
index b19c5aa..d62a934 100644
--- a/test/mjsunit/es6/reflect-define-property.js
+++ b/test/mjsunit/es6/reflect-define-property.js
@@ -441,8 +441,7 @@
 }
 
 
-// Test runtime calls to DefineDataPropertyUnchecked and
-// DefineAccessorPropertyUnchecked - make sure we don't
+// Test runtime calls to DefineAccessorPropertyUnchecked - make sure we don't
 // crash.
 try {
   %DefineAccessorPropertyUnchecked(0, 0, 0, 0, 0);
@@ -451,29 +450,11 @@
 }
 
 try {
-  %DefineDataPropertyUnchecked(0, 0, 0, 0);
-} catch (e) {
-  assertTrue(/illegal access/.test(e));
-}
-
-try {
-  %DefineDataPropertyUnchecked(null, null, null, null);
-} catch (e) {
-  assertTrue(/illegal access/.test(e));
-}
-
-try {
   %DefineAccessorPropertyUnchecked(null, null, null, null, null);
 } catch (e) {
   assertTrue(/illegal access/.test(e));
 }
 
-try {
-  %DefineDataPropertyUnchecked({}, null, null, null);
-} catch (e) {
-  assertTrue(/illegal access/.test(e));
-}
-
 // Defining properties null should fail even when we have
 // other allowed values
 try {
@@ -482,12 +463,6 @@
   assertTrue(/illegal access/.test(e));
 }
 
-try {
-  %DefineDataPropertyUnchecked(null, 'foo', 0, 0);
-} catch (e) {
-  assertTrue(/illegal access/.test(e));
-}
-
 // Test that all possible differences in step 6 in DefineOwnProperty are
 // exercised, i.e., any difference in the given property descriptor and the
 // existing properties should not return true, but throw an error if the
diff --git a/test/mjsunit/es6/regress/regress-3750.js b/test/mjsunit/es6/regress/regress-3750.js
deleted file mode 100644
index 10509bf..0000000
--- a/test/mjsunit/es6/regress/regress-3750.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --harmony-object-observe
-
-'use strict';
-class Example { }
-Object.observe(Example.prototype, function(){});
diff --git a/test/mjsunit/harmony/regress/regress-4482.js b/test/mjsunit/es6/regress/regress-4482.js
similarity index 91%
rename from test/mjsunit/harmony/regress/regress-4482.js
rename to test/mjsunit/es6/regress/regress-4482.js
index 2472b46..d813d21 100644
--- a/test/mjsunit/harmony/regress/regress-4482.js
+++ b/test/mjsunit/es6/regress/regress-4482.js
@@ -1,8 +1,6 @@
 // Copyright 2015 the V8 project authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
-//
-// Flags: --harmony-sloppy
 
 assertEquals("function", (function f() { f = 42; return typeof f })());
 assertEquals("function",
diff --git a/test/mjsunit/es6/regress/regress-468661.js b/test/mjsunit/es6/regress/regress-468661.js
index 4a42350..4a58a71 100644
--- a/test/mjsunit/es6/regress/regress-468661.js
+++ b/test/mjsunit/es6/regress/regress-468661.js
@@ -9,7 +9,8 @@
 var break_count = 0;
 
 var expected_values =
-  [ReferenceError, undefined, 0, 0, 0, 0, 1, ReferenceError, ReferenceError];
+  [ReferenceError, undefined, 0, 0, 0, 0, 1,
+   ReferenceError, ReferenceError];
 
 function listener(event, exec_state, event_data, data) {
   try {
@@ -39,7 +40,6 @@
         assertTrue(v instanceof ReferenceError);
       } else {
         assertSame(expected_values[break_count], v);
-
       }
       ++break_count;
 
diff --git a/test/mjsunit/es6/spread-call-new-class.js b/test/mjsunit/es6/spread-call-new-class.js
index 1fdf25b..de88cff 100644
--- a/test/mjsunit/es6/spread-call-new-class.js
+++ b/test/mjsunit/es6/spread-call-new-class.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy
-
 
 (function testConstructClassStrict() {
   "use strict";
diff --git a/test/mjsunit/es6/spread-call-super-property.js b/test/mjsunit/es6/spread-call-super-property.js
index b298a69..a85ea41 100644
--- a/test/mjsunit/es6/spread-call-super-property.js
+++ b/test/mjsunit/es6/spread-call-super-property.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy
-
 (function testCallSuperPropertyStrict() {
   "use strict";
   class BaseClass {
diff --git a/test/mjsunit/es6/super.js b/test/mjsunit/es6/super.js
index a2ba1e8..4c80ce7 100644
--- a/test/mjsunit/es6/super.js
+++ b/test/mjsunit/es6/super.js
@@ -3,7 +3,6 @@
 // found in the LICENSE file.
 
 // Flags: --allow-natives-syntax
-// Flags: --harmony-sloppy
 
 (function TestSuperNamedLoads() {
   function Base() { }
diff --git a/test/mjsunit/es6/tail-call.js b/test/mjsunit/es6/tail-call.js
index d0d00f4..6ecf04f 100644
--- a/test/mjsunit/es6/tail-call.js
+++ b/test/mjsunit/es6/tail-call.js
@@ -3,6 +3,8 @@
 // found in the LICENSE file.
 
 // Flags: --allow-natives-syntax --harmony-tailcalls
+// Flags: --harmony-do-expressions
+
 "use strict";
 
 Error.prepareStackTrace = (error,stack) => {
@@ -259,9 +261,8 @@
   }
   %NeverOptimizeFunction(g);
 
-  var context = 10;
   function f(v) {
-    return g(context);
+    return g();
   }
   %SetForceInlineFlag(f);
 
@@ -319,10 +320,57 @@
     return f([f, g3, test], 13), f([f, test], 153);
   }
 
+  function g4(a) {
+    return f([f, g4, test], false) ||
+        (f([f, g4, test], true) && f([f, test], true));
+  }
+
+  function g5(a) {
+    return f([f, g5, test], true) &&
+        (f([f, g5, test], false) || f([f, test], true));
+  }
+
+  function g6(a) {
+    return f([f, g6, test], 13), f([f, g6, test], 42),
+        f([f, test], 153);
+  }
+
+  function g7(a) {
+    return f([f, g7, test], false) ||
+        (f([f, g7, test], false) ? f([f, test], true)
+             : f([f, test], true));
+  }
+
+  function g8(a) {
+    return f([f, g8, test], false) || f([f, g8, test], true) &&
+        f([f, test], true);
+  }
+
+  function g9(a) {
+    return f([f, g9, test], true) && f([f, g9, test], false) ||
+        f([f, test], true);
+  }
+
+  function g10(a) {
+    return f([f, g10, test], true) && f([f, g10, test], false) ||
+        f([f, g10, test], true) ?
+            f([f, g10, test], true) && f([f, g10, test], false) ||
+                f([f, test], true) :
+            f([f, g10, test], true) && f([f, g10, test], false) ||
+                f([f, test], true);
+  }
+
   function test() {
     assertEquals(true, g1());
     assertEquals(true, g2());
     assertEquals(153, g3());
+    assertEquals(true, g4());
+    assertEquals(true, g5());
+    assertEquals(153, g6());
+    assertEquals(true, g7());
+    assertEquals(true, g8());
+    assertEquals(true, g9());
+    assertEquals(true, g10());
   }
   test();
   test();
@@ -534,9 +582,34 @@
     return (() => f_153([f_153, test]))();
   }
 
+  function g3(a) {
+    var closure = () => f([f, closure, test], true)
+                              ? f_153([f_153, test])
+                              : f_153([f_153, test]);
+    return closure();
+  }
+
   function test() {
     assertEquals(153, g1());
     assertEquals(153, g2());
+    assertEquals(153, g3());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Test tail calls from do expressions.
+(function () {
+  function g1(a) {
+    var a = do { return f_153([f_153, test]); 42; };
+    return a;
+  }
+
+  function test() {
+    assertEquals(153, g1());
   }
   test();
   test();
diff --git a/test/mjsunit/es7/object-observe-debug-event.js b/test/mjsunit/es7/object-observe-debug-event.js
deleted file mode 100644
index 06123b8..0000000
--- a/test/mjsunit/es7/object-observe-debug-event.js
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --harmony-object-observe
-// Flags: --expose-debug-as debug
-
-Debug = debug.Debug;
-
-var base_id = -1;
-var exception = null;
-var expected = [
-  "enqueue #1",
-  "willHandle #1",
-  "didHandle #1",
-];
-
-function assertLog(msg) {
-  print(msg);
-  assertTrue(expected.length > 0);
-  assertEquals(expected.shift(), msg);
-  if (!expected.length) {
-    Debug.setListener(null);
-  }
-}
-
-function listener(event, exec_state, event_data, data) {
-  if (event != Debug.DebugEvent.AsyncTaskEvent) return;
-  try {
-    if (base_id < 0)
-      base_id = event_data.id();
-    var id = event_data.id() - base_id + 1;
-    assertEquals("Object.observe", event_data.name());
-    assertLog(event_data.type() + " #" + id);
-  } catch (e) {
-    print(e + e.stack)
-    exception = e;
-  }
-}
-
-Debug.setListener(listener);
-
-var obj = {};
-Object.observe(obj, function(changes) {
-  print(change.type + " " + change.name + " " + change.oldValue);
-});
-
-obj.foo = 1;
-obj.zoo = 2;
-obj.foo = 3;
-
-assertNull(exception);
diff --git a/test/mjsunit/es7/object-observe-runtime.js b/test/mjsunit/es7/object-observe-runtime.js
deleted file mode 100644
index 1a07141..0000000
--- a/test/mjsunit/es7/object-observe-runtime.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --harmony-object-observe
-// Flags: --allow-natives-syntax
-
-// These tests are meant to ensure that that the Object.observe runtime
-// functions are hardened.
-
-var obj = {};
-%SetIsObserved(obj);
-assertThrows(function() {
-  %SetIsObserved(obj);
-});
-
-assertThrows(function() {
-  %SetIsObserved(this);
-});
diff --git a/test/mjsunit/es7/object-observe.js b/test/mjsunit/es7/object-observe.js
deleted file mode 100644
index a558c51..0000000
--- a/test/mjsunit/es7/object-observe.js
+++ /dev/null
@@ -1,1865 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --harmony-object-observe
-// Flags: --allow-natives-syntax
-
-var allObservers = [];
-function reset() {
-  allObservers.forEach(function(observer) { observer.reset(); });
-}
-
-function stringifyNoThrow(arg) {
-  try {
-    return JSON.stringify(arg);
-  } catch (e) {
-    return '{<circular reference>}';
-  }
-}
-
-function createObserver() {
-  "use strict";  // So that |this| in callback can be undefined.
-
-  var observer = {
-    records: undefined,
-    callbackCount: 0,
-    reset: function() {
-      this.records = undefined;
-      this.callbackCount = 0;
-    },
-    assertNotCalled: function() {
-      assertEquals(undefined, this.records);
-      assertEquals(0, this.callbackCount);
-    },
-    assertCalled: function() {
-      assertEquals(1, this.callbackCount);
-    },
-    assertRecordCount: function(count) {
-      this.assertCalled();
-      assertEquals(count, this.records.length);
-    },
-    assertCallbackRecords: function(recs) {
-      this.assertRecordCount(recs.length);
-      for (var i = 0; i < recs.length; i++) {
-        if ('name' in recs[i]) recs[i].name = String(recs[i].name);
-        print(i, stringifyNoThrow(this.records[i]), stringifyNoThrow(recs[i]));
-        assertSame(this.records[i].object, recs[i].object);
-        assertEquals('string', typeof recs[i].type);
-        assertPropertiesEqual(this.records[i], recs[i]);
-      }
-    }
-  };
-
-  observer.callback = function(r) {
-    assertEquals(undefined, this);
-    assertEquals('object', typeof r);
-    assertTrue(r instanceof Array)
-    observer.records = r;
-    observer.callbackCount++;
-  };
-
-  observer.reset();
-  allObservers.push(observer);
-  return observer;
-}
-
-var observer = createObserver();
-var observer2 = createObserver();
-
-assertEquals("function", typeof observer.callback);
-assertEquals("function", typeof observer2.callback);
-
-var obj = {};
-
-function frozenFunction() {}
-Object.freeze(frozenFunction);
-var nonFunction = {};
-var changeRecordWithAccessor = { type: 'foo' };
-var recordCreated = false;
-Object.defineProperty(changeRecordWithAccessor, 'name', {
-  get: function() {
-    recordCreated = true;
-    return "bar";
-  },
-  enumerable: true
-})
-
-
-// Object.observe
-assertThrows(function() { Object.observe("non-object", observer.callback); },
-             TypeError);
-assertThrows(function() { Object.observe(this, observer.callback); },
-             TypeError);
-assertThrows(function() { Object.observe(obj, nonFunction); }, TypeError);
-assertThrows(function() { Object.observe(obj, frozenFunction); }, TypeError);
-assertEquals(obj, Object.observe(obj, observer.callback, [1]));
-assertEquals(obj, Object.observe(obj, observer.callback, [true]));
-assertEquals(obj, Object.observe(obj, observer.callback, ['foo', null]));
-assertEquals(obj, Object.observe(obj, observer.callback, [undefined]));
-assertEquals(obj, Object.observe(obj, observer.callback,
-             ['foo', 'bar', 'baz']));
-assertEquals(obj, Object.observe(obj, observer.callback, []));
-assertEquals(obj, Object.observe(obj, observer.callback, undefined));
-assertEquals(obj, Object.observe(obj, observer.callback));
-
-// Object.unobserve
-assertThrows(function() { Object.unobserve(4, observer.callback); }, TypeError);
-assertThrows(function() { Object.unobserve(this, observer.callback); },
-             TypeError);
-assertThrows(function() { Object.unobserve(obj, nonFunction); }, TypeError);
-assertEquals(obj, Object.unobserve(obj, observer.callback));
-
-
-// Object.getNotifier
-var notifier = Object.getNotifier(obj);
-assertSame(notifier, Object.getNotifier(obj));
-assertEquals(null, Object.getNotifier(Object.freeze({})));
-assertThrows(function() { Object.getNotifier(this) }, TypeError);
-assertFalse(notifier.hasOwnProperty('notify'));
-assertEquals([], Object.keys(notifier));
-var notifyDesc = Object.getOwnPropertyDescriptor(notifier.__proto__, 'notify');
-assertTrue(notifyDesc.configurable);
-assertTrue(notifyDesc.writable);
-assertFalse(notifyDesc.enumerable);
-assertThrows(function() { notifier.notify({}); }, TypeError);
-assertThrows(function() { notifier.notify({ type: 4 }); }, TypeError);
-
-assertThrows(function() { notifier.performChange(1, function(){}); }, TypeError);
-assertThrows(function() { notifier.performChange(undefined, function(){}); }, TypeError);
-assertThrows(function() { notifier.performChange('foo', undefined); }, TypeError);
-assertThrows(function() { notifier.performChange('foo', 'bar'); }, TypeError);
-var global = this;
-notifier.performChange('foo', function() {
-  assertEquals(global, this);
-});
-
-var notify = notifier.notify;
-assertThrows(function() { notify.call(undefined, { type: 'a' }); }, TypeError);
-assertThrows(function() { notify.call(null, { type: 'a' }); }, TypeError);
-assertThrows(function() { notify.call(5, { type: 'a' }); }, TypeError);
-assertThrows(function() { notify.call('hello', { type: 'a' }); }, TypeError);
-assertThrows(function() { notify.call(false, { type: 'a' }); }, TypeError);
-assertThrows(function() { notify.call({}, { type: 'a' }); }, TypeError);
-assertFalse(recordCreated);
-notifier.notify(changeRecordWithAccessor);
-assertFalse(recordCreated);  // not observed yet
-
-
-// Object.deliverChangeRecords
-assertThrows(function() { Object.deliverChangeRecords(nonFunction); }, TypeError);
-
-Object.observe(obj, observer.callback);
-
-
-// notify uses to [[CreateOwnProperty]] to create changeRecord;
-reset();
-var protoExpandoAccessed = false;
-Object.defineProperty(Object.prototype, 'protoExpando',
-  {
-    configurable: true,
-    set: function() { protoExpandoAccessed = true; }
-  }
-);
-notifier.notify({ type: 'foo', protoExpando: 'val'});
-assertFalse(protoExpandoAccessed);
-delete Object.prototype.protoExpando;
-Object.deliverChangeRecords(observer.callback);
-
-
-// Multiple records are delivered.
-reset();
-notifier.notify({
-  type: 'update',
-  name: 'foo',
-  expando: 1
-});
-
-notifier.notify({
-  object: notifier,  // object property is ignored
-  type: 'delete',
-  name: 'bar',
-  expando2: 'str'
-});
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, name: 'foo', type: 'update', expando: 1 },
-  { object: obj, name: 'bar', type: 'delete', expando2: 'str' }
-]);
-
-// Non-string accept values are coerced to strings
-reset();
-Object.observe(obj, observer.callback, [true, 1, null, undefined]);
-notifier = Object.getNotifier(obj);
-notifier.notify({ type: 'true' });
-notifier.notify({ type: 'false' });
-notifier.notify({ type: '1' });
-notifier.notify({ type: '-1' });
-notifier.notify({ type: 'null' });
-notifier.notify({ type: 'nill' });
-notifier.notify({ type: 'undefined' });
-notifier.notify({ type: 'defined' });
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'true' },
-  { object: obj, type: '1' },
-  { object: obj, type: 'null' },
-  { object: obj, type: 'undefined' }
-]);
-
-// No delivery takes place if no records are pending
-reset();
-Object.deliverChangeRecords(observer.callback);
-observer.assertNotCalled();
-
-
-// Multiple observation has no effect.
-reset();
-Object.observe(obj, observer.callback);
-Object.observe(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-});
-Object.deliverChangeRecords(observer.callback);
-observer.assertCalled();
-
-
-// Observation can be stopped.
-reset();
-Object.unobserve(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-});
-Object.deliverChangeRecords(observer.callback);
-observer.assertNotCalled();
-
-
-// Multiple unobservation has no effect
-reset();
-Object.unobserve(obj, observer.callback);
-Object.unobserve(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-});
-Object.deliverChangeRecords(observer.callback);
-observer.assertNotCalled();
-
-
-// Re-observation works and only includes changeRecords after of call.
-reset();
-Object.getNotifier(obj).notify({
-  type: 'update',
-});
-Object.observe(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-});
-records = undefined;
-Object.deliverChangeRecords(observer.callback);
-observer.assertRecordCount(1);
-
-// Get notifier prior to observing
-reset();
-var obj = {};
-Object.getNotifier(obj);
-Object.observe(obj, observer.callback);
-obj.id = 1;
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'add', name: 'id' },
-]);
-
-// The empty-string property is observable
-reset();
-var obj = {};
-Object.observe(obj, observer.callback);
-obj[''] = '';
-obj[''] = ' ';
-delete obj[''];
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'add', name: '' },
-  { object: obj, type: 'update', name: '', oldValue: '' },
-  { object: obj, type: 'delete', name: '', oldValue: ' ' },
-]);
-
-// Object.preventExtensions
-reset();
-var obj = { foo: 'bar'};
-Object.observe(obj, observer.callback);
-obj.baz = 'bat';
-Object.preventExtensions(obj);
-
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'add', name: 'baz' },
-  { object: obj, type: 'preventExtensions' },
-]);
-
-reset();
-var obj = { foo: 'bar'};
-Object.preventExtensions(obj);
-Object.observe(obj, observer.callback);
-Object.preventExtensions(obj);
-Object.deliverChangeRecords(observer.callback);
-observer.assertNotCalled();
-
-// Object.freeze
-reset();
-var obj = { a: 'a' };
-Object.defineProperty(obj, 'b', {
-  writable: false,
-  configurable: true,
-  value: 'b'
-});
-Object.defineProperty(obj, 'c', {
-  writable: true,
-  configurable: false,
-  value: 'c'
-});
-Object.defineProperty(obj, 'd', {
-  writable: false,
-  configurable: false,
-  value: 'd'
-});
-Object.observe(obj, observer.callback);
-Object.freeze(obj);
-
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'preventExtensions' },
-  { object: obj, type: 'reconfigure', name: 'a' },
-  { object: obj, type: 'reconfigure', name: 'b' },
-  { object: obj, type: 'reconfigure', name: 'c' },
-]);
-
-reset();
-var obj = { foo: 'bar'};
-Object.freeze(obj);
-Object.observe(obj, observer.callback);
-Object.freeze(obj);
-Object.deliverChangeRecords(observer.callback);
-observer.assertNotCalled();
-
-// Object.seal
-reset();
-var obj = { a: 'a' };
-Object.defineProperty(obj, 'b', {
-  writable: false,
-  configurable: true,
-  value: 'b'
-});
-Object.defineProperty(obj, 'c', {
-  writable: true,
-  configurable: false,
-  value: 'c'
-});
-Object.defineProperty(obj, 'd', {
-  writable: false,
-  configurable: false,
-  value: 'd'
-});
-Object.observe(obj, observer.callback);
-Object.seal(obj);
-
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'preventExtensions' },
-  { object: obj, type: 'reconfigure', name: 'a' },
-  { object: obj, type: 'reconfigure', name: 'b' },
-]);
-
-reset();
-var obj = { foo: 'bar'};
-Object.seal(obj);
-Object.observe(obj, observer.callback);
-Object.seal(obj);
-Object.deliverChangeRecords(observer.callback);
-observer.assertNotCalled();
-
-// Observing a continuous stream of changes, while itermittantly unobserving.
-reset();
-var obj = {};
-Object.observe(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-  val: 1
-});
-
-Object.unobserve(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-  val: 2
-});
-
-Object.observe(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-  val: 3
-});
-
-Object.unobserve(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-  val: 4
-});
-
-Object.observe(obj, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'update',
-  val: 5
-});
-
-Object.unobserve(obj, observer.callback);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'update', val: 1 },
-  { object: obj, type: 'update', val: 3 },
-  { object: obj, type: 'update', val: 5 }
-]);
-
-// Accept
-reset();
-Object.observe(obj, observer.callback, ['somethingElse']);
-Object.getNotifier(obj).notify({
-  type: 'add'
-});
-Object.getNotifier(obj).notify({
-  type: 'update'
-});
-Object.getNotifier(obj).notify({
-  type: 'delete'
-});
-Object.getNotifier(obj).notify({
-  type: 'reconfigure'
-});
-Object.getNotifier(obj).notify({
-  type: 'setPrototype'
-});
-Object.deliverChangeRecords(observer.callback);
-observer.assertNotCalled();
-
-reset();
-Object.observe(obj, observer.callback, ['add', 'delete', 'setPrototype']);
-Object.getNotifier(obj).notify({
-  type: 'add'
-});
-Object.getNotifier(obj).notify({
-  type: 'update'
-});
-Object.getNotifier(obj).notify({
-  type: 'delete'
-});
-Object.getNotifier(obj).notify({
-  type: 'delete'
-});
-Object.getNotifier(obj).notify({
-  type: 'reconfigure'
-});
-Object.getNotifier(obj).notify({
-  type: 'setPrototype'
-});
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'add' },
-  { object: obj, type: 'delete' },
-  { object: obj, type: 'delete' },
-  { object: obj, type: 'setPrototype' }
-]);
-
-reset();
-Object.observe(obj, observer.callback, ['update', 'foo']);
-Object.getNotifier(obj).notify({
-  type: 'add'
-});
-Object.getNotifier(obj).notify({
-  type: 'update'
-});
-Object.getNotifier(obj).notify({
-  type: 'delete'
-});
-Object.getNotifier(obj).notify({
-  type: 'foo'
-});
-Object.getNotifier(obj).notify({
-  type: 'bar'
-});
-Object.getNotifier(obj).notify({
-  type: 'foo'
-});
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'update' },
-  { object: obj, type: 'foo' },
-  { object: obj, type: 'foo' }
-]);
-
-reset();
-function Thingy(a, b, c) {
-  this.a = a;
-  this.b = b;
-}
-
-Thingy.MULTIPLY = 'multiply';
-Thingy.INCREMENT = 'increment';
-Thingy.INCREMENT_AND_MULTIPLY = 'incrementAndMultiply';
-
-Thingy.prototype = {
-  increment: function(amount) {
-    var notifier = Object.getNotifier(this);
-
-    var self = this;
-    notifier.performChange(Thingy.INCREMENT, function() {
-      self.a += amount;
-      self.b += amount;
-
-      return {
-        incremented: amount
-      };  // implicit notify
-    });
-  },
-
-  multiply: function(amount) {
-    var notifier = Object.getNotifier(this);
-
-    var self = this;
-    notifier.performChange(Thingy.MULTIPLY, function() {
-      self.a *= amount;
-      self.b *= amount;
-
-      return {
-        multiplied: amount
-      };  // implicit notify
-    });
-  },
-
-  incrementAndMultiply: function(incAmount, multAmount) {
-    var notifier = Object.getNotifier(this);
-
-    var self = this;
-    notifier.performChange(Thingy.INCREMENT_AND_MULTIPLY, function() {
-      self.increment(incAmount);
-      self.multiply(multAmount);
-
-      return {
-        incremented: incAmount,
-        multiplied: multAmount
-      };  // implicit notify
-    });
-  }
-}
-
-Thingy.observe = function(thingy, callback) {
-  Object.observe(thingy, callback, [Thingy.INCREMENT,
-                                    Thingy.MULTIPLY,
-                                    Thingy.INCREMENT_AND_MULTIPLY,
-                                    'update']);
-}
-
-Thingy.unobserve = function(thingy, callback) {
-  Object.unobserve(thingy);
-}
-
-var thingy = new Thingy(2, 4);
-
-Object.observe(thingy, observer.callback);
-Thingy.observe(thingy, observer2.callback);
-thingy.increment(3);               // { a: 5, b: 7 }
-thingy.b++;                        // { a: 5, b: 8 }
-thingy.multiply(2);                // { a: 10, b: 16 }
-thingy.a++;                        // { a: 11, b: 16 }
-thingy.incrementAndMultiply(2, 2); // { a: 26, b: 36 }
-
-Object.deliverChangeRecords(observer.callback);
-Object.deliverChangeRecords(observer2.callback);
-observer.assertCallbackRecords([
-  { object: thingy, type: 'update', name: 'a', oldValue: 2 },
-  { object: thingy, type: 'update', name: 'b', oldValue: 4 },
-  { object: thingy, type: 'update', name: 'b', oldValue: 7 },
-  { object: thingy, type: 'update', name: 'a', oldValue: 5 },
-  { object: thingy, type: 'update', name: 'b', oldValue: 8 },
-  { object: thingy, type: 'update', name: 'a', oldValue: 10 },
-  { object: thingy, type: 'update', name: 'a', oldValue: 11 },
-  { object: thingy, type: 'update', name: 'b', oldValue: 16 },
-  { object: thingy, type: 'update', name: 'a', oldValue: 13 },
-  { object: thingy, type: 'update', name: 'b', oldValue: 18 },
-]);
-observer2.assertCallbackRecords([
-  { object: thingy, type: Thingy.INCREMENT, incremented: 3 },
-  { object: thingy, type: 'update', name: 'b', oldValue: 7 },
-  { object: thingy, type: Thingy.MULTIPLY, multiplied: 2 },
-  { object: thingy, type: 'update', name: 'a', oldValue: 10 },
-  {
-    object: thingy,
-    type: Thingy.INCREMENT_AND_MULTIPLY,
-    incremented: 2,
-    multiplied: 2
-  }
-]);
-
-// ArrayPush cached stub
-reset();
-
-function pushMultiple(arr) {
-  arr.push('a');
-  arr.push('b');
-  arr.push('c');
-}
-
-for (var i = 0; i < 5; i++) {
-  var arr = [];
-  pushMultiple(arr);
-}
-
-for (var i = 0; i < 5; i++) {
-  reset();
-  var arr = [];
-  Object.observe(arr, observer.callback);
-  pushMultiple(arr);
-  Object.unobserve(arr, observer.callback);
-  Object.deliverChangeRecords(observer.callback);
-  observer.assertCallbackRecords([
-    { object: arr, type: 'add', name: '0' },
-    { object: arr, type: 'update', name: 'length', oldValue: 0 },
-    { object: arr, type: 'add', name: '1' },
-    { object: arr, type: 'update', name: 'length', oldValue: 1 },
-    { object: arr, type: 'add', name: '2' },
-    { object: arr, type: 'update', name: 'length', oldValue: 2 },
-  ]);
-}
-
-
-// ArrayPop cached stub
-reset();
-
-function popMultiple(arr) {
-  arr.pop();
-  arr.pop();
-  arr.pop();
-}
-
-for (var i = 0; i < 5; i++) {
-  var arr = ['a', 'b', 'c'];
-  popMultiple(arr);
-}
-
-for (var i = 0; i < 5; i++) {
-  reset();
-  var arr = ['a', 'b', 'c'];
-  Object.observe(arr, observer.callback);
-  popMultiple(arr);
-  Object.unobserve(arr, observer.callback);
-  Object.deliverChangeRecords(observer.callback);
-  observer.assertCallbackRecords([
-    { object: arr, type: 'delete', name: '2', oldValue: 'c' },
-    { object: arr, type: 'update', name: 'length', oldValue: 3 },
-    { object: arr, type: 'delete', name: '1', oldValue: 'b' },
-    { object: arr, type: 'update', name: 'length', oldValue: 2 },
-    { object: arr, type: 'delete', name: '0', oldValue: 'a' },
-    { object: arr, type: 'update', name: 'length', oldValue: 1 },
-  ]);
-}
-
-
-reset();
-function RecursiveThingy() {}
-
-RecursiveThingy.MULTIPLY_FIRST_N = 'multiplyFirstN';
-
-RecursiveThingy.prototype = {
-  __proto__: Array.prototype,
-
-  multiplyFirstN: function(amount, n) {
-    if (!n)
-      return;
-    var notifier = Object.getNotifier(this);
-    var self = this;
-    notifier.performChange(RecursiveThingy.MULTIPLY_FIRST_N, function() {
-      self[n-1] = self[n-1]*amount;
-      self.multiplyFirstN(amount, n-1);
-    });
-
-    notifier.notify({
-      type: RecursiveThingy.MULTIPLY_FIRST_N,
-      multiplied: amount,
-      n: n
-    });
-  },
-}
-
-RecursiveThingy.observe = function(thingy, callback) {
-  Object.observe(thingy, callback, [RecursiveThingy.MULTIPLY_FIRST_N]);
-}
-
-RecursiveThingy.unobserve = function(thingy, callback) {
-  Object.unobserve(thingy);
-}
-
-var thingy = new RecursiveThingy;
-thingy.push(1, 2, 3, 4);
-
-Object.observe(thingy, observer.callback);
-RecursiveThingy.observe(thingy, observer2.callback);
-thingy.multiplyFirstN(2, 3);                // [2, 4, 6, 4]
-
-Object.deliverChangeRecords(observer.callback);
-Object.deliverChangeRecords(observer2.callback);
-observer.assertCallbackRecords([
-  { object: thingy, type: 'update', name: '2', oldValue: 3 },
-  { object: thingy, type: 'update', name: '1', oldValue: 2 },
-  { object: thingy, type: 'update', name: '0', oldValue: 1 }
-]);
-observer2.assertCallbackRecords([
-  { object: thingy, type: RecursiveThingy.MULTIPLY_FIRST_N, multiplied: 2, n: 3 }
-]);
-
-reset();
-function DeckSuit() {
-  this.push('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'A', 'Q', 'K');
-}
-
-DeckSuit.SHUFFLE = 'shuffle';
-
-DeckSuit.prototype = {
-  __proto__: Array.prototype,
-
-  shuffle: function() {
-    var notifier = Object.getNotifier(this);
-    var self = this;
-    notifier.performChange(DeckSuit.SHUFFLE, function() {
-      self.reverse();
-      self.sort(function() { return Math.random()* 2 - 1; });
-      var cut = self.splice(0, 6);
-      Array.prototype.push.apply(self, cut);
-      self.reverse();
-      self.sort(function() { return Math.random()* 2 - 1; });
-      var cut = self.splice(0, 6);
-      Array.prototype.push.apply(self, cut);
-      self.reverse();
-      self.sort(function() { return Math.random()* 2 - 1; });
-    });
-
-    notifier.notify({
-      type: DeckSuit.SHUFFLE
-    });
-  },
-}
-
-DeckSuit.observe = function(thingy, callback) {
-  Object.observe(thingy, callback, [DeckSuit.SHUFFLE]);
-}
-
-DeckSuit.unobserve = function(thingy, callback) {
-  Object.unobserve(thingy);
-}
-
-var deck = new DeckSuit;
-
-DeckSuit.observe(deck, observer2.callback);
-deck.shuffle();
-
-Object.deliverChangeRecords(observer2.callback);
-observer2.assertCallbackRecords([
-  { object: deck, type: DeckSuit.SHUFFLE }
-]);
-
-// Observing multiple objects; records appear in order.
-reset();
-var obj2 = {};
-var obj3 = {}
-Object.observe(obj, observer.callback);
-Object.observe(obj3, observer.callback);
-Object.observe(obj2, observer.callback);
-Object.getNotifier(obj).notify({
-  type: 'add',
-});
-Object.getNotifier(obj2).notify({
-  type: 'update',
-});
-Object.getNotifier(obj3).notify({
-  type: 'delete',
-});
-Object.observe(obj3, observer.callback);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, type: 'add' },
-  { object: obj2, type: 'update' },
-  { object: obj3, type: 'delete' }
-]);
-
-
-// Recursive observation.
-var obj = {a: 1};
-var callbackCount = 0;
-function recursiveObserver(r) {
-  assertEquals(1, r.length);
-  ++callbackCount;
-  if (r[0].oldValue < 100) ++obj[r[0].name];
-}
-Object.observe(obj, recursiveObserver);
-++obj.a;
-Object.deliverChangeRecords(recursiveObserver);
-assertEquals(100, callbackCount);
-
-var obj1 = {a: 1};
-var obj2 = {a: 1};
-var recordCount = 0;
-function recursiveObserver2(r) {
-  recordCount += r.length;
-  if (r[0].oldValue < 100) {
-    ++obj1.a;
-    ++obj2.a;
-  }
-}
-Object.observe(obj1, recursiveObserver2);
-Object.observe(obj2, recursiveObserver2);
-++obj1.a;
-Object.deliverChangeRecords(recursiveObserver2);
-assertEquals(199, recordCount);
-
-
-// Observing named properties.
-reset();
-var obj = {a: 1}
-Object.observe(obj, observer.callback);
-obj.a = 2;
-obj["a"] = 3;
-delete obj.a;
-obj.a = 4;
-obj.a = 4;  // ignored
-obj.a = 5;
-Object.defineProperty(obj, "a", {value: 6});
-Object.defineProperty(obj, "a", {writable: false});
-obj.a = 7;  // ignored
-Object.defineProperty(obj, "a", {value: 8});
-Object.defineProperty(obj, "a", {value: 7, writable: true});
-Object.defineProperty(obj, "a", {get: function() {}});
-Object.defineProperty(obj, "a", {get: frozenFunction});
-Object.defineProperty(obj, "a", {get: frozenFunction});  // ignored
-Object.defineProperty(obj, "a", {get: frozenFunction, set: frozenFunction});
-Object.defineProperty(obj, "a", {set: frozenFunction});  // ignored
-Object.defineProperty(obj, "a", {get: undefined, set: frozenFunction});
-delete obj.a;
-delete obj.a;
-Object.defineProperty(obj, "a", {get: function() {}, configurable: true});
-Object.defineProperty(obj, "a", {value: 9, writable: true});
-obj.a = 10;
-++obj.a;
-obj.a++;
-obj.a *= 3;
-delete obj.a;
-Object.defineProperty(obj, "a", {value: 11, configurable: true});
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, name: "a", type: "update", oldValue: 1 },
-  { object: obj, name: "a", type: "update", oldValue: 2 },
-  { object: obj, name: "a", type: "delete", oldValue: 3 },
-  { object: obj, name: "a", type: "add" },
-  { object: obj, name: "a", type: "update", oldValue: 4 },
-  { object: obj, name: "a", type: "update", oldValue: 5 },
-  { object: obj, name: "a", type: "reconfigure" },
-  { object: obj, name: "a", type: "update", oldValue: 6 },
-  { object: obj, name: "a", type: "reconfigure", oldValue: 8 },
-  { object: obj, name: "a", type: "reconfigure", oldValue: 7 },
-  { object: obj, name: "a", type: "reconfigure" },
-  { object: obj, name: "a", type: "reconfigure" },
-  { object: obj, name: "a", type: "reconfigure" },
-  { object: obj, name: "a", type: "delete" },
-  { object: obj, name: "a", type: "add" },
-  { object: obj, name: "a", type: "reconfigure" },
-  { object: obj, name: "a", type: "update", oldValue: 9 },
-  { object: obj, name: "a", type: "update", oldValue: 10 },
-  { object: obj, name: "a", type: "update", oldValue: 11 },
-  { object: obj, name: "a", type: "update", oldValue: 12 },
-  { object: obj, name: "a", type: "delete", oldValue: 36 },
-  { object: obj, name: "a", type: "add" },
-]);
-
-
-// Observing indexed properties.
-reset();
-var obj = {'1': 1}
-Object.observe(obj, observer.callback);
-obj[1] = 2;
-obj[1] = 3;
-delete obj[1];
-obj[1] = 4;
-obj[1] = 4;  // ignored
-obj[1] = 5;
-Object.defineProperty(obj, "1", {value: 6});
-Object.defineProperty(obj, "1", {writable: false});
-obj[1] = 7;  // ignored
-Object.defineProperty(obj, "1", {value: 8});
-Object.defineProperty(obj, "1", {value: 7, writable: true});
-Object.defineProperty(obj, "1", {get: function() {}});
-Object.defineProperty(obj, "1", {get: frozenFunction});
-Object.defineProperty(obj, "1", {get: frozenFunction});  // ignored
-Object.defineProperty(obj, "1", {get: frozenFunction, set: frozenFunction});
-Object.defineProperty(obj, "1", {set: frozenFunction});  // ignored
-Object.defineProperty(obj, "1", {get: undefined, set: frozenFunction});
-delete obj[1];
-delete obj[1];
-Object.defineProperty(obj, "1", {get: function() {}, configurable: true});
-Object.defineProperty(obj, "1", {value: 9, writable: true});
-obj[1] = 10;
-++obj[1];
-obj[1]++;
-obj[1] *= 3;
-delete obj[1];
-Object.defineProperty(obj, "1", {value: 11, configurable: true});
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, name: "1", type: "update", oldValue: 1 },
-  { object: obj, name: "1", type: "update", oldValue: 2 },
-  { object: obj, name: "1", type: "delete", oldValue: 3 },
-  { object: obj, name: "1", type: "add" },
-  { object: obj, name: "1", type: "update", oldValue: 4 },
-  { object: obj, name: "1", type: "update", oldValue: 5 },
-  { object: obj, name: "1", type: "reconfigure" },
-  { object: obj, name: "1", type: "update", oldValue: 6 },
-  { object: obj, name: "1", type: "reconfigure", oldValue: 8 },
-  { object: obj, name: "1", type: "reconfigure", oldValue: 7 },
-  { object: obj, name: "1", type: "reconfigure" },
-  { object: obj, name: "1", type: "reconfigure" },
-  { object: obj, name: "1", type: "reconfigure" },
-  { object: obj, name: "1", type: "delete" },
-  { object: obj, name: "1", type: "add" },
-  { object: obj, name: "1", type: "reconfigure" },
-  { object: obj, name: "1", type: "update", oldValue: 9 },
-  { object: obj, name: "1", type: "update", oldValue: 10 },
-  { object: obj, name: "1", type: "update", oldValue: 11 },
-  { object: obj, name: "1", type: "update", oldValue: 12 },
-  { object: obj, name: "1", type: "delete", oldValue: 36 },
-  { object: obj, name: "1", type: "add" },
-]);
-
-
-// Observing symbol properties (not).
-print("*****")
-reset();
-var obj = {}
-var symbol = Symbol("secret");
-Object.observe(obj, observer.callback);
-obj[symbol] = 3;
-delete obj[symbol];
-Object.defineProperty(obj, symbol, {get: function() {}, configurable: true});
-Object.defineProperty(obj, symbol, {value: 6});
-Object.defineProperty(obj, symbol, {writable: false});
-delete obj[symbol];
-Object.defineProperty(obj, symbol, {value: 7});
-++obj[symbol];
-obj[symbol]++;
-obj[symbol] *= 3;
-delete obj[symbol];
-obj.__defineSetter__(symbol, function() {});
-obj.__defineGetter__(symbol, function() {});
-Object.deliverChangeRecords(observer.callback);
-observer.assertNotCalled();
-
-
-// Test all kinds of objects generically.
-function TestObserveConfigurable(obj, prop) {
-  reset();
-  Object.observe(obj, observer.callback);
-  Object.unobserve(obj, observer.callback);
-  obj[prop] = 1;
-  Object.observe(obj, observer.callback);
-  obj[prop] = 2;
-  obj[prop] = 3;
-  delete obj[prop];
-  obj[prop] = 4;
-  obj[prop] = 4;  // ignored
-  obj[prop] = 5;
-  Object.defineProperty(obj, prop, {value: 6});
-  Object.defineProperty(obj, prop, {writable: false});
-  obj[prop] = 7;  // ignored
-  Object.defineProperty(obj, prop, {value: 8});
-  Object.defineProperty(obj, prop, {value: 7, writable: true});
-  Object.defineProperty(obj, prop, {get: function() {}});
-  Object.defineProperty(obj, prop, {get: frozenFunction});
-  Object.defineProperty(obj, prop, {get: frozenFunction});  // ignored
-  Object.defineProperty(obj, prop, {get: frozenFunction, set: frozenFunction});
-  Object.defineProperty(obj, prop, {set: frozenFunction});  // ignored
-  Object.defineProperty(obj, prop, {get: undefined, set: frozenFunction});
-  obj.__defineSetter__(prop, frozenFunction);  // ignored
-  obj.__defineSetter__(prop, function() {});
-  obj.__defineGetter__(prop, function() {});
-  delete obj[prop];
-  delete obj[prop];  // ignored
-  obj.__defineGetter__(prop, function() {});
-  delete obj[prop];
-  Object.defineProperty(obj, prop, {get: function() {}, configurable: true});
-  Object.defineProperty(obj, prop, {value: 9, writable: true});
-  obj[prop] = 10;
-  ++obj[prop];
-  obj[prop]++;
-  obj[prop] *= 3;
-  delete obj[prop];
-  Object.defineProperty(obj, prop, {value: 11, configurable: true});
-  Object.deliverChangeRecords(observer.callback);
-  observer.assertCallbackRecords([
-    { object: obj, name: prop, type: "update", oldValue: 1 },
-    { object: obj, name: prop, type: "update", oldValue: 2 },
-    { object: obj, name: prop, type: "delete", oldValue: 3 },
-    { object: obj, name: prop, type: "add" },
-    { object: obj, name: prop, type: "update", oldValue: 4 },
-    { object: obj, name: prop, type: "update", oldValue: 5 },
-    { object: obj, name: prop, type: "reconfigure" },
-    { object: obj, name: prop, type: "update", oldValue: 6 },
-    { object: obj, name: prop, type: "reconfigure", oldValue: 8 },
-    { object: obj, name: prop, type: "reconfigure", oldValue: 7 },
-    { object: obj, name: prop, type: "reconfigure" },
-    { object: obj, name: prop, type: "reconfigure" },
-    { object: obj, name: prop, type: "reconfigure" },
-    { object: obj, name: prop, type: "reconfigure" },
-    { object: obj, name: prop, type: "reconfigure" },
-    { object: obj, name: prop, type: "delete" },
-    { object: obj, name: prop, type: "add" },
-    { object: obj, name: prop, type: "delete" },
-    { object: obj, name: prop, type: "add" },
-    { object: obj, name: prop, type: "reconfigure" },
-    { object: obj, name: prop, type: "update", oldValue: 9 },
-    { object: obj, name: prop, type: "update", oldValue: 10 },
-    { object: obj, name: prop, type: "update", oldValue: 11 },
-    { object: obj, name: prop, type: "update", oldValue: 12 },
-    { object: obj, name: prop, type: "delete", oldValue: 36 },
-    { object: obj, name: prop, type: "add" },
-  ]);
-  Object.unobserve(obj, observer.callback);
-  delete obj[prop];
-}
-
-function TestObserveNonConfigurable(obj, prop, desc) {
-  reset();
-  Object.observe(obj, observer.callback);
-  Object.unobserve(obj, observer.callback);
-  obj[prop] = 1;
-  Object.observe(obj, observer.callback);
-  obj[prop] = 4;
-  obj[prop] = 4;  // ignored
-  obj[prop] = 5;
-  Object.defineProperty(obj, prop, {value: 6});
-  Object.defineProperty(obj, prop, {value: 6});  // ignored
-  Object.defineProperty(obj, prop, {value: 7});
-  Object.defineProperty(obj, prop, {enumerable: desc.enumerable});  // ignored
-  Object.defineProperty(obj, prop, {writable: false});
-  obj[prop] = 7;  // ignored
-  Object.deliverChangeRecords(observer.callback);
-  observer.assertCallbackRecords([
-    { object: obj, name: prop, type: "update", oldValue: 1 },
-    { object: obj, name: prop, type: "update", oldValue: 4 },
-    { object: obj, name: prop, type: "update", oldValue: 5 },
-    { object: obj, name: prop, type: "update", oldValue: 6 },
-    { object: obj, name: prop, type: "reconfigure" },
-  ]);
-  Object.unobserve(obj, observer.callback);
-}
-
-// TODO(rafaelw) Enable when ES6 Proxies are implemented
-/*
-function createProxy(create, x) {
-  var handler = {
-    getPropertyDescriptor: function(k) {
-      for (var o = this.target; o; o = Object.getPrototypeOf(o)) {
-        var desc = Object.getOwnPropertyDescriptor(o, k);
-        if (desc) return desc;
-      }
-      return undefined;
-    },
-    getOwnPropertyDescriptor: function(k) {
-      return Object.getOwnPropertyDescriptor(this.target, k);
-    },
-    defineProperty: function(k, desc) {
-      var x = Object.defineProperty(this.target, k, desc);
-      Object.deliverChangeRecords(this.callback);
-      return x;
-    },
-    delete: function(k) {
-      var x = delete this.target[k];
-      Object.deliverChangeRecords(this.callback);
-      return x;
-    },
-    getPropertyNames: function() {
-      return Object.getOwnPropertyNames(this.target);
-    },
-    target: {isProxy: true},
-    callback: function(changeRecords) {
-      print("callback", stringifyNoThrow(handler.proxy), stringifyNoThrow(got));
-      for (var i in changeRecords) {
-        var got = changeRecords[i];
-        var change = {object: handler.proxy, name: got.name, type: got.type};
-        if ("oldValue" in got) change.oldValue = got.oldValue;
-        Object.getNotifier(handler.proxy).notify(change);
-      }
-    },
-  };
-  Object.observe(handler.target, handler.callback);
-  return handler.proxy = create(handler, x);
-}
-*/
-
-var objects = [
-  {},
-  [],
-  function(){},
-  (function(){ return arguments })(),
-  (function(){ "use strict"; return arguments })(),
-  Object(1), Object(true), Object("bla"),
-  new Date(),
-  Object, Function, Date, RegExp,
-  new Set, new Map, new WeakMap,
-  new ArrayBuffer(10), new Int32Array(5)
-// TODO(rafaelw) Enable when ES6 Proxies are implemented.
-//  createProxy(Proxy.create, null),
-//  createProxy(Proxy.createFunction, function(){}),
-];
-var properties = ["a", "1", 1, "length", "setPrototype", "name", "caller"];
-
-// Cases that yield non-standard results.
-function blacklisted(obj, prop) {
-  return (obj instanceof Int32Array && prop == 1) ||
-         (obj instanceof Int32Array && prop === "length") ||
-         (obj instanceof ArrayBuffer && prop == 1) ||
-         (obj instanceof Function && prop === "name") ||  // Has its own test.
-         (obj instanceof Function && prop === "length");  // Has its own test.
-}
-
-for (var i in objects) for (var j in properties) {
-  var obj = objects[i];
-  var prop = properties[j];
-  if (blacklisted(obj, prop)) continue;
-  var desc = Object.getOwnPropertyDescriptor(obj, prop);
-  print("***", typeof obj, stringifyNoThrow(obj), prop);
-  if (!desc || desc.configurable)
-    TestObserveConfigurable(obj, prop);
-  else if (desc.writable)
-    TestObserveNonConfigurable(obj, prop, desc);
-}
-
-
-// Observing array length (including truncation)
-reset();
-var arr = ['a', 'b', 'c', 'd'];
-var arr2 = ['alpha', 'beta'];
-var arr3 = ['hello'];
-arr3[2] = 'goodbye';
-arr3.length = 6;
-Object.defineProperty(arr, '0', {configurable: false});
-Object.defineProperty(arr, '2', {get: function(){}});
-Object.defineProperty(arr2, '0', {get: function(){}, configurable: false});
-Object.observe(arr, observer.callback);
-Array.observe(arr, observer2.callback);
-Object.observe(arr2, observer.callback);
-Array.observe(arr2, observer2.callback);
-Object.observe(arr3, observer.callback);
-Array.observe(arr3, observer2.callback);
-arr.length = 2;
-arr.length = 0;
-arr.length = 10;
-Object.defineProperty(arr, 'length', {writable: false});
-arr2.length = 0;
-arr2.length = 1; // no change expected
-Object.defineProperty(arr2, 'length', {value: 1, writable: false});
-arr3.length = 0;
-++arr3.length;
-arr3.length++;
-arr3.length /= 2;
-Object.defineProperty(arr3, 'length', {value: 5});
-arr3[4] = 5;
-Object.defineProperty(arr3, 'length', {value: 1, writable: false});
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: arr, name: '3', type: 'delete', oldValue: 'd' },
-  { object: arr, name: '2', type: 'delete' },
-  { object: arr, name: 'length', type: 'update', oldValue: 4 },
-  { object: arr, name: '1', type: 'delete', oldValue: 'b' },
-  { object: arr, name: 'length', type: 'update', oldValue: 2 },
-  { object: arr, name: 'length', type: 'update', oldValue: 1 },
-  { object: arr, name: 'length', type: 'reconfigure' },
-  { object: arr2, name: '1', type: 'delete', oldValue: 'beta' },
-  { object: arr2, name: 'length', type: 'update', oldValue: 2 },
-  { object: arr2, name: 'length', type: 'reconfigure' },
-  { object: arr3, name: '2', type: 'delete', oldValue: 'goodbye' },
-  { object: arr3, name: '0', type: 'delete', oldValue: 'hello' },
-  { object: arr3, name: 'length', type: 'update', oldValue: 6 },
-  { object: arr3, name: 'length', type: 'update', oldValue: 0 },
-  { object: arr3, name: 'length', type: 'update', oldValue: 1 },
-  { object: arr3, name: 'length', type: 'update', oldValue: 2 },
-  { object: arr3, name: 'length', type: 'update', oldValue: 1 },
-  { object: arr3, name: '4', type: 'add' },
-  { object: arr3, name: '4', type: 'delete', oldValue: 5 },
-  // TODO(rafaelw): It breaks spec compliance to get two records here.
-  // When the TODO in v8natives.js::DefineArrayProperty is addressed
-  // which prevents DefineProperty from over-writing the magic length
-  // property, these will collapse into a single record.
-  { object: arr3, name: 'length', type: 'update', oldValue: 5 },
-  { object: arr3, name: 'length', type: 'reconfigure' }
-]);
-Object.deliverChangeRecords(observer2.callback);
-observer2.assertCallbackRecords([
-  { object: arr, type: 'splice', index: 2, removed: [, 'd'], addedCount: 0 },
-  { object: arr, type: 'splice', index: 1, removed: ['b'], addedCount: 0 },
-  { object: arr, type: 'splice', index: 1, removed: [], addedCount: 9 },
-  { object: arr2, type: 'splice', index: 1, removed: ['beta'], addedCount: 0 },
-  { object: arr3, type: 'splice', index: 0, removed: ['hello',, 'goodbye',,,,], addedCount: 0 },
-  { object: arr3, type: 'splice', index: 0, removed: [], addedCount: 1 },
-  { object: arr3, type: 'splice', index: 1, removed: [], addedCount: 1 },
-  { object: arr3, type: 'splice', index: 1, removed: [,], addedCount: 0 },
-  { object: arr3, type: 'splice', index: 1, removed: [], addedCount: 4 },
-  { object: arr3, name: '4', type: 'add' },
-  { object: arr3, type: 'splice', index: 1, removed: [,,,5], addedCount: 0 }
-]);
-
-
-// Updating length on large (slow) array
-reset();
-var slow_arr = %NormalizeElements([]);
-slow_arr[500000000] = 'hello';
-slow_arr.length = 1000000000;
-Object.observe(slow_arr, observer.callback);
-var spliceRecords;
-function slowSpliceCallback(records) {
-  spliceRecords = records;
-}
-Array.observe(slow_arr, slowSpliceCallback);
-slow_arr.length = 100;
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: slow_arr, name: '500000000', type: 'delete', oldValue: 'hello' },
-  { object: slow_arr, name: 'length', type: 'update', oldValue: 1000000000 },
-]);
-Object.deliverChangeRecords(slowSpliceCallback);
-assertEquals(spliceRecords.length, 1);
-// Have to custom assert this splice record because the removed array is huge.
-var splice = spliceRecords[0];
-assertSame(splice.object, slow_arr);
-assertEquals(splice.type, 'splice');
-assertEquals(splice.index, 100);
-assertEquals(splice.addedCount, 0);
-var array_keys = %GetArrayKeys(splice.removed, splice.removed.length);
-assertEquals(array_keys.length, 1);
-assertEquals(array_keys[0], 499999900);
-assertEquals(splice.removed[499999900], 'hello');
-assertEquals(splice.removed.length, 999999900);
-
-
-// Assignments in loops (checking different IC states).
-reset();
-var obj = {};
-Object.observe(obj, observer.callback);
-for (var i = 0; i < 5; i++) {
-  obj["a" + i] = i;
-}
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, name: "a0", type: "add" },
-  { object: obj, name: "a1", type: "add" },
-  { object: obj, name: "a2", type: "add" },
-  { object: obj, name: "a3", type: "add" },
-  { object: obj, name: "a4", type: "add" },
-]);
-
-reset();
-var obj = {};
-Object.observe(obj, observer.callback);
-for (var i = 0; i < 5; i++) {
-  obj[i] = i;
-}
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, name: "0", type: "add" },
-  { object: obj, name: "1", type: "add" },
-  { object: obj, name: "2", type: "add" },
-  { object: obj, name: "3", type: "add" },
-  { object: obj, name: "4", type: "add" },
-]);
-
-
-// Adding elements past the end of an array should notify on length for
-// Object.observe and emit "splices" for Array.observe.
-reset();
-var arr = [1, 2, 3];
-Object.observe(arr, observer.callback);
-Array.observe(arr, observer2.callback);
-arr[3] = 10;
-arr[100] = 20;
-Object.defineProperty(arr, '200', {value: 7});
-Object.defineProperty(arr, '400', {get: function(){}});
-arr[50] = 30; // no length change expected
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: arr, name: '3', type: 'add' },
-  { object: arr, name: 'length', type: 'update', oldValue: 3 },
-  { object: arr, name: '100', type: 'add' },
-  { object: arr, name: 'length', type: 'update', oldValue: 4 },
-  { object: arr, name: '200', type: 'add' },
-  { object: arr, name: 'length', type: 'update', oldValue: 101 },
-  { object: arr, name: '400', type: 'add' },
-  { object: arr, name: 'length', type: 'update', oldValue: 201 },
-  { object: arr, name: '50', type: 'add' },
-]);
-Object.deliverChangeRecords(observer2.callback);
-observer2.assertCallbackRecords([
-  { object: arr, type: 'splice', index: 3, removed: [], addedCount: 1 },
-  { object: arr, type: 'splice', index: 4, removed: [], addedCount: 97 },
-  { object: arr, type: 'splice', index: 101, removed: [], addedCount: 100 },
-  { object: arr, type: 'splice', index: 201, removed: [], addedCount: 200 },
-  { object: arr, type: 'add', name: '50' },
-]);
-
-
-// Tests for array methods, first on arrays and then on plain objects
-//
-// === ARRAYS ===
-//
-// Push
-reset();
-var array = [1, 2];
-Object.observe(array, observer.callback);
-Array.observe(array, observer2.callback);
-array.push(3, 4);
-array.push(5);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '2', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 2 },
-  { object: array, name: '3', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 3 },
-  { object: array, name: '4', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 4 },
-]);
-Object.deliverChangeRecords(observer2.callback);
-observer2.assertCallbackRecords([
-  { object: array, type: 'splice', index: 2, removed: [], addedCount: 2 },
-  { object: array, type: 'splice', index: 4, removed: [], addedCount: 1 }
-]);
-
-// Pop
-reset();
-var array = [1, 2];
-Object.observe(array, observer.callback);
-array.pop();
-array.pop();
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '1', type: 'delete', oldValue: 2 },
-  { object: array, name: 'length', type: 'update', oldValue: 2 },
-  { object: array, name: '0', type: 'delete', oldValue: 1 },
-  { object: array, name: 'length', type: 'update', oldValue: 1 },
-]);
-
-// Shift
-reset();
-var array = [1, 2];
-Object.observe(array, observer.callback);
-array.shift();
-array.shift();
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '0', type: 'update', oldValue: 1 },
-  { object: array, name: '1', type: 'delete', oldValue: 2 },
-  { object: array, name: 'length', type: 'update', oldValue: 2 },
-  { object: array, name: '0', type: 'delete', oldValue: 2 },
-  { object: array, name: 'length', type: 'update', oldValue: 1 },
-]);
-
-// Unshift
-reset();
-var array = [1, 2];
-Object.observe(array, observer.callback);
-array.unshift(3, 4);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '3', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 2 },
-  { object: array, name: '2', type: 'add' },
-  { object: array, name: '0', type: 'update', oldValue: 1 },
-  { object: array, name: '1', type: 'update', oldValue: 2 },
-]);
-
-// Splice
-reset();
-var array = [1, 2, 3];
-Object.observe(array, observer.callback);
-array.splice(1, 1, 4, 5);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '3', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 3 },
-  { object: array, name: '1', type: 'update', oldValue: 2 },
-  { object: array, name: '2', type: 'update', oldValue: 3 },
-]);
-
-// Sort
-reset();
-var array = [3, 2, 1];
-Object.observe(array, observer.callback);
-array.sort();
-assertEquals(1, array[0]);
-assertEquals(2, array[1]);
-assertEquals(3, array[2]);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '1', type: 'update', oldValue: 2 },
-  { object: array, name: '0', type: 'update', oldValue: 3 },
-  { object: array, name: '2', type: 'update', oldValue: 1 },
-  { object: array, name: '1', type: 'update', oldValue: 3 },
-  { object: array, name: '0', type: 'update', oldValue: 2 },
-]);
-
-// Splice emitted after Array mutation methods
-function MockArray(initial, observer) {
-  for (var i = 0; i < initial.length; i++)
-    this[i] = initial[i];
-
-  this.length_ = initial.length;
-  this.observer = observer;
-}
-MockArray.prototype = {
-  set length(length) {
-    Object.getNotifier(this).notify({ type: 'lengthChange' });
-    this.length_ = length;
-    Object.observe(this, this.observer.callback, ['splice']);
-  },
-  get length() {
-    return this.length_;
-  }
-}
-
-reset();
-var array = new MockArray([], observer);
-Object.observe(array, observer.callback, ['lengthChange']);
-Array.prototype.push.call(array, 1);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, type: 'lengthChange' },
-  { object: array, type: 'splice', index: 0, removed: [], addedCount: 1 },
-]);
-
-reset();
-var array = new MockArray([1], observer);
-Object.observe(array, observer.callback, ['lengthChange']);
-Array.prototype.pop.call(array);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, type: 'lengthChange' },
-  { object: array, type: 'splice', index: 0, removed: [1], addedCount: 0 },
-]);
-
-reset();
-var array = new MockArray([1], observer);
-Object.observe(array, observer.callback, ['lengthChange']);
-Array.prototype.shift.call(array);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, type: 'lengthChange' },
-  { object: array, type: 'splice', index: 0, removed: [1], addedCount: 0 },
-]);
-
-reset();
-var array = new MockArray([], observer);
-Object.observe(array, observer.callback, ['lengthChange']);
-Array.prototype.unshift.call(array, 1);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, type: 'lengthChange' },
-  { object: array, type: 'splice', index: 0, removed: [], addedCount: 1 },
-]);
-
-reset();
-var array = new MockArray([0, 1, 2], observer);
-Object.observe(array, observer.callback, ['lengthChange']);
-Array.prototype.splice.call(array, 1, 1);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, type: 'lengthChange' },
-  { object: array, type: 'splice', index: 1, removed: [1], addedCount: 0 },
-]);
-
-//
-// === PLAIN OBJECTS ===
-//
-// Push
-reset()
-var array = {0: 1, 1: 2, length: 2}
-Object.observe(array, observer.callback);
-Array.prototype.push.call(array, 3, 4);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '2', type: 'add' },
-  { object: array, name: '3', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 2 },
-]);
-
-// Pop
-reset();
-var array = [1, 2];
-Object.observe(array, observer.callback);
-Array.observe(array, observer2.callback);
-array.pop();
-array.pop();
-array.pop();
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '1', type: 'delete', oldValue: 2 },
-  { object: array, name: 'length', type: 'update', oldValue: 2 },
-  { object: array, name: '0', type: 'delete', oldValue: 1 },
-  { object: array, name: 'length', type: 'update', oldValue: 1 },
-]);
-Object.deliverChangeRecords(observer2.callback);
-observer2.assertCallbackRecords([
-  { object: array, type: 'splice', index: 1, removed: [2], addedCount: 0 },
-  { object: array, type: 'splice', index: 0, removed: [1], addedCount: 0 }
-]);
-
-// Shift
-reset();
-var array = [1, 2];
-Object.observe(array, observer.callback);
-Array.observe(array, observer2.callback);
-array.shift();
-array.shift();
-array.shift();
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '0', type: 'update', oldValue: 1 },
-  { object: array, name: '1', type: 'delete', oldValue: 2 },
-  { object: array, name: 'length', type: 'update', oldValue: 2 },
-  { object: array, name: '0', type: 'delete', oldValue: 2 },
-  { object: array, name: 'length', type: 'update', oldValue: 1 },
-]);
-Object.deliverChangeRecords(observer2.callback);
-observer2.assertCallbackRecords([
-  { object: array, type: 'splice', index: 0, removed: [1], addedCount: 0 },
-  { object: array, type: 'splice', index: 0, removed: [2], addedCount: 0 }
-]);
-
-// Unshift
-reset();
-var array = [1, 2];
-Object.observe(array, observer.callback);
-Array.observe(array, observer2.callback);
-array.unshift(3, 4);
-array.unshift(5);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '3', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 2 },
-  { object: array, name: '2', type: 'add' },
-  { object: array, name: '0', type: 'update', oldValue: 1 },
-  { object: array, name: '1', type: 'update', oldValue: 2 },
-  { object: array, name: '4', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 4 },
-  { object: array, name: '3', type: 'update', oldValue: 2 },
-  { object: array, name: '2', type: 'update', oldValue: 1 },
-  { object: array, name: '1', type: 'update', oldValue: 4 },
-  { object: array, name: '0', type: 'update', oldValue: 3 },
-]);
-Object.deliverChangeRecords(observer2.callback);
-observer2.assertCallbackRecords([
-  { object: array, type: 'splice', index: 0, removed: [], addedCount: 2 },
-  { object: array, type: 'splice', index: 0, removed: [], addedCount: 1 }
-]);
-
-// Splice
-reset();
-var array = [1, 2, 3];
-Object.observe(array, observer.callback);
-Array.observe(array, observer2.callback);
-array.splice(1, 0, 4, 5); // 1 4 5 2 3
-array.splice(0, 2); // 5 2 3
-array.splice(1, 2, 6, 7); // 5 6 7
-array.splice(2, 0);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '4', type: 'add' },
-  { object: array, name: 'length', type: 'update', oldValue: 3 },
-  { object: array, name: '3', type: 'add' },
-  { object: array, name: '1', type: 'update', oldValue: 2 },
-  { object: array, name: '2', type: 'update', oldValue: 3 },
-
-  { object: array, name: '0', type: 'update', oldValue: 1 },
-  { object: array, name: '1', type: 'update', oldValue: 4 },
-  { object: array, name: '2', type: 'update', oldValue: 5 },
-  { object: array, name: '4', type: 'delete', oldValue: 3 },
-  { object: array, name: '3', type: 'delete', oldValue: 2 },
-  { object: array, name: 'length', type: 'update', oldValue: 5 },
-
-  { object: array, name: '1', type: 'update', oldValue: 2 },
-  { object: array, name: '2', type: 'update', oldValue: 3 },
-]);
-Object.deliverChangeRecords(observer2.callback);
-observer2.assertCallbackRecords([
-  { object: array, type: 'splice', index: 1, removed: [], addedCount: 2 },
-  { object: array, type: 'splice', index: 0, removed: [1, 4], addedCount: 0 },
-  { object: array, type: 'splice', index: 1, removed: [2, 3], addedCount: 2 },
-]);
-
-// Exercise StoreIC_ArrayLength
-reset();
-var dummy = {};
-Object.observe(dummy, observer.callback);
-Object.unobserve(dummy, observer.callback);
-var array = [0];
-Object.observe(array, observer.callback);
-array.splice(0, 1);
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: array, name: '0', type: 'delete', oldValue: 0 },
-  { object: array, name: 'length', type: 'update', oldValue: 1},
-]);
-
-
-// __proto__
-reset();
-var obj = {};
-Object.observe(obj, observer.callback);
-var p = {foo: 'yes'};
-var q = {bar: 'no'};
-obj.__proto__ = p;
-obj.__proto__ = p;  // ignored
-obj.__proto__ = null;
-obj.__proto__ = q;  // the __proto__ accessor is gone
-// TODO(adamk): Add tests for objects with hidden prototypes
-// once we support observing the global object.
-Object.deliverChangeRecords(observer.callback);
-observer.assertCallbackRecords([
-  { object: obj, name: '__proto__', type: 'setPrototype',
-    oldValue: Object.prototype },
-  { object: obj, name: '__proto__', type: 'setPrototype', oldValue: p },
-  { object: obj, name: '__proto__', type: 'add' },
-]);
-
-
-// Function.prototype
-reset();
-var fun = function(){};
-Object.observe(fun, observer.callback);
-var myproto = {foo: 'bar'};
-fun.prototype = myproto;
-fun.prototype = 7;
-fun.prototype = 7;  // ignored
-Object.defineProperty(fun, 'prototype', {value: 8});
-Object.deliverChangeRecords(observer.callback);
-observer.assertRecordCount(3);
-// Manually examine the first record in order to test
-// lazy creation of oldValue
-assertSame(fun, observer.records[0].object);
-assertEquals('prototype', observer.records[0].name);
-assertEquals('update', observer.records[0].type);
-// The only existing reference to the oldValue object is in this
-// record, so to test that lazy creation happened correctly
-// we compare its constructor to our function (one of the invariants
-// ensured when creating an object via AllocateFunctionPrototype).
-assertSame(fun, observer.records[0].oldValue.constructor);
-observer.records.splice(0, 1);
-observer.assertCallbackRecords([
-  { object: fun, name: 'prototype', type: 'update', oldValue: myproto },
-  { object: fun, name: 'prototype', type: 'update', oldValue: 7 },
-]);
-
-// Function.prototype should not be observable except on the object itself
-reset();
-var fun = function(){};
-var obj = { __proto__: fun };
-Object.observe(obj, observer.callback);
-obj.prototype = 7;
-Object.deliverChangeRecords(observer.callback);
-observer.assertRecordCount(1);
-observer.assertCallbackRecords([
-  { object: obj, name: 'prototype', type: 'add' },
-]);
-
-// Check that changes in observation status are detected in all IC states and
-// in optimized code, especially in cases usually using fast elements.
-var mutation = [
-  "a[i] = v",
-  "a[i] ? ++a[i] : a[i] = v",
-  "a[i] ? a[i]++ : a[i] = v",
-  "a[i] ? a[i] += 1 : a[i] = v",
-  "a[i] ? a[i] -= -1 : a[i] = v",
-];
-
-var props = [1, "1", "a"];
-
-function TestFastElements(prop, mutation, prepopulate, polymorphic, optimize) {
-  var setElement = eval(
-    "(function setElement(a, i, v) { " + mutation + "; " +
-    "/* " + [].join.call(arguments, " ") + " */" +
-    "})"
-  );
-  print("TestFastElements:", setElement);
-
-  var arr = prepopulate ? [1, 2, 3, 4, 5] : [0];
-  if (prepopulate) arr[prop] = 2;  // for non-element case
-  setElement(arr, prop, 3);
-  setElement(arr, prop, 4);
-  if (polymorphic) setElement(["M", "i", "l", "n", "e", "r"], 0, "m");
-  if (optimize) %OptimizeFunctionOnNextCall(setElement);
-  setElement(arr, prop, 5);
-
-  reset();
-  Object.observe(arr, observer.callback);
-  setElement(arr, prop, 989898);
-  Object.deliverChangeRecords(observer.callback);
-  observer.assertCallbackRecords([
-    { object: arr, name: "" + prop, type: 'update', oldValue: 5 }
-  ]);
-}
-
-for (var b1 = 0; b1 < 2; ++b1)
-  for (var b2 = 0; b2 < 2; ++b2)
-    for (var b3 = 0; b3 < 2; ++b3)
-      for (var i in props)
-        for (var j in mutation)
-          TestFastElements(props[i], mutation[j], b1 != 0, b2 != 0, b3 != 0);
-
-
-var mutation = [
-  "a.length = v",
-  "a.length += newSize - oldSize",
-  "a.length -= oldSize - newSize",
-];
-
-var mutationByIncr = [
-  "++a.length",
-  "a.length++",
-];
-
-function TestFastElementsLength(
-  mutation, polymorphic, optimize, oldSize, newSize) {
-  var setLength = eval(
-    "(function setLength(a, v) { " + mutation + "; " +
-    "/* " + [].join.call(arguments, " ") + " */"
-    + "})"
-  );
-  print("TestFastElementsLength:", setLength);
-
-  function array(n) {
-    var arr = new Array(n);
-    for (var i = 0; i < n; ++i) arr[i] = i;
-    return arr;
-  }
-
-  setLength(array(oldSize), newSize);
-  setLength(array(oldSize), newSize);
-  if (polymorphic) setLength(array(oldSize).map(isNaN), newSize);
-  if (optimize) %OptimizeFunctionOnNextCall(setLength);
-  setLength(array(oldSize), newSize);
-
-  reset();
-  var arr = array(oldSize);
-  Object.observe(arr, observer.callback);
-  setLength(arr, newSize);
-  Object.deliverChangeRecords(observer.callback);
-  if (oldSize === newSize) {
-    observer.assertNotCalled();
-  } else {
-    var count = oldSize > newSize ? oldSize - newSize : 0;
-    observer.assertRecordCount(count + 1);
-    var lengthRecord = observer.records[count];
-    assertSame(arr, lengthRecord.object);
-    assertEquals('length', lengthRecord.name);
-    assertEquals('update', lengthRecord.type);
-    assertSame(oldSize, lengthRecord.oldValue);
-  }
-}
-
-for (var b1 = 0; b1 < 2; ++b1)
-  for (var b2 = 0; b2 < 2; ++b2)
-    for (var n1 = 0; n1 < 3; ++n1)
-      for (var n2 = 0; n2 < 3; ++n2)
-        for (var i in mutation)
-          TestFastElementsLength(mutation[i], b1 != 0, b2 != 0, 20*n1, 20*n2);
-
-for (var b1 = 0; b1 < 2; ++b1)
-  for (var b2 = 0; b2 < 2; ++b2)
-    for (var n = 0; n < 3; ++n)
-      for (var i in mutationByIncr)
-        TestFastElementsLength(mutationByIncr[i], b1 != 0, b2 != 0, 7*n, 7*n+1);
-
-
-(function TestFunctionName() {
-  reset();
-
-  function fun() {}
-  Object.observe(fun, observer.callback);
-  fun.name = 'x';  // No change. Not writable.
-  Object.defineProperty(fun, 'name', {value: 'a'});
-  Object.defineProperty(fun, 'name', {writable: true});
-  fun.name = 'b';
-  delete fun.name;
-  fun.name = 'x';  // No change. Function.prototype.name is non writable
-  Object.defineProperty(Function.prototype, 'name', {writable: true});
-  fun.name = 'c';
-  fun.name = 'c';  // Same, no update.
-  Object.deliverChangeRecords(observer.callback);
-  observer.assertCallbackRecords([
-    { object: fun, type: 'update', name: 'name', oldValue: 'fun' },
-    { object: fun, type: 'reconfigure', name: 'name'},
-    { object: fun, type: 'update', name: 'name', oldValue: 'a' },
-    { object: fun, type: 'delete', name: 'name', oldValue: 'b' },
-    { object: fun, type: 'add', name: 'name' },
-  ]);
-})();
-
-
-(function TestFunctionLength() {
-  reset();
-
-  function fun(x) {}
-  Object.observe(fun, observer.callback);
-  fun.length = 'x';  // No change. Not writable.
-  Object.defineProperty(fun, 'length', {value: 'a'});
-  Object.defineProperty(fun, 'length', {writable: true});
-  fun.length = 'b';
-  delete fun.length;
-  fun.length = 'x';  // No change. Function.prototype.length is non writable
-  Object.defineProperty(Function.prototype, 'length', {writable: true});
-  fun.length = 'c';
-  fun.length = 'c';  // Same, no update.
-  Object.deliverChangeRecords(observer.callback);
-  observer.assertCallbackRecords([
-    { object: fun, type: 'update', name: 'length', oldValue: 1 },
-    { object: fun, type: 'reconfigure', name: 'length'},
-    { object: fun, type: 'update', name: 'length', oldValue: 'a' },
-    { object: fun, type: 'delete', name: 'length', oldValue: 'b' },
-    { object: fun, type: 'add', name: 'length' },
-  ]);
-})();
-
-
-(function TestObserveInvalidAcceptMessage() {
-  var ex;
-  try {
-    Object.observe({}, function(){}, "not an object");
-  } catch (e) {
-    ex = e;
-  }
-  assertInstanceof(ex, TypeError);
-  assertEquals("Third argument to Object.observe must be an array of strings.",
-               ex.message);
-})()
diff --git a/test/mjsunit/es7/regress/regress-443982.js b/test/mjsunit/es7/regress/regress-443982.js
deleted file mode 100644
index e04f14c..0000000
--- a/test/mjsunit/es7/regress/regress-443982.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --harmony-object-observe
-
-var records;
-function observer(r) {
-  records = r;
-}
-
-Object.defineProperty(Array.prototype, '0', {
-  get: function() { return 0; },
-  set: function() { throw "boom!"; }
-});
-arr = [1, 2];
-Array.observe(arr, observer);
-arr.length = 0;
-assertEquals(0, arr.length);
-
-Object.deliverChangeRecords(observer);
-assertEquals(1, records.length);
-assertEquals('splice', records[0].type);
-assertArrayEquals([1, 2], records[0].removed);
diff --git a/test/mjsunit/es8/syntactic-tail-call-parsing-sloppy.js b/test/mjsunit/es8/syntactic-tail-call-parsing-sloppy.js
new file mode 100644
index 0000000..d026086
--- /dev/null
+++ b/test/mjsunit/es8/syntactic-tail-call-parsing-sloppy.js
@@ -0,0 +1,410 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --harmony-explicit-tailcalls
+// Flags: --harmony-do-expressions
+
+var SyntaxErrorTests = [
+  { msg: "Unexpected expression inside tail call",
+    tests: [
+      { src: `()=>{ return continue  foo ; }`,
+        err: `                       ^^^`,
+      },
+      { src: `()=>{ return  continue 42 ; }`,
+        err: `                       ^^`,
+      },
+      { src: `()=>{ return  continue   new foo ()  ; }`,
+        err: `                         ^^^^^^^^^^`,
+      },
+      { src: `()=>{ loop: return  continue  loop ; }`,
+        err: `                              ^^^^`,
+      },
+      { src: `class A { foo() { return  continue   super.x ; } }`,
+        err: `                                     ^^^^^^^`,
+      },
+      { src: `()=>{ return  continue  this  ; }`,
+        err: `                        ^^^^`,
+      },
+      { src: `()=>{ return  continue class A {} ; }`,
+        err: `                       ^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue class A extends B {} ; }`,
+        err: `                       ^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue function A() { } ; }`,
+        err: `                       ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue { a: b, c: d} ; }`,
+        err: `                       ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue function* Gen() { yield 1; } ; }`,
+        err: `                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `function A() { return  continue new.target ; }`,
+        err: `                                ^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue () ; }`,
+        err: `                       ^^`,
+      },
+      { src: `()=>{ return  continue ( 42 ) ; }`,
+        err: `                       ^^^^^^`,
+      },
+      { src: "()=>{ return continue `123 ${foo} 34lk` ;  }",
+        err: `                      ^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue do { x ? foo() : bar() ; } }`,
+        err: `                      ^^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Tail call expression is not allowed here",
+    tests: [
+      { src: `class A {}; class B extends A { constructor() { return continue foo () ; } }`,
+        err: `                                                       ^^^^^^^^^^^^^^^`,
+      },
+      { src: `class A extends continue f () {}; }`,
+        err: `                ^^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Tail call expressions are not allowed in non-strict mode",
+    tests: [
+      { src: `()=>{ return  continue continue continue b()  ; }`,
+        err: `                                ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue ( continue b() ) ; }`,
+        err: `                         ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return   continue  f()   - a ; }`,
+        err: `               ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return b + continue   f()  ; }`,
+        err: `                 ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return 1, 2, 3,   continue  f() , 4  ; }`,
+        err: `                        ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ var x =  continue  f ( ) ; }`,
+        err: `               ^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return   continue f () ? 1 : 2 ; }`,
+        err: `               ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return (1, 2, 3, continue f()), 4; }`,
+        err: `                       ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return [1, 2, continue f() ] ;  }`,
+        err: `                    ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return [1, 2, ... continue f() ] ;  }`,
+        err: `                        ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return [1, 2, continue f(), 3 ] ;  }`,
+        err: `                    ^^^^^^^^^^^^`,
+      },
+      { src: "()=>{ return `123 ${a} ${ continue foo ( ) } 34lk` ;  }",
+        err: `                          ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return g( 1, 2, continue f() ); }`,
+        err: `                      ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue f() || a; }`,
+        err: `             ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a || b || c || continue f() || d; }`,
+        err: `                            ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a && b && c && continue f() && d; }`,
+        err: `                            ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a && b || c && continue f() ? d : e; }`,
+        err: `                            ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a ? b : c && continue f() && d || e; }`,
+        err: `                          ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue foo() instanceof bar ; }`,
+        err: `             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return bar instanceof continue foo() ; }`,
+        err: `                            ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue foo() in bar ; }`,
+        err: `             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return bar in continue foo() ; }`,
+        err: `                    ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ function* G() { yield continue foo(); } }`,
+        err: `                            ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ (1, 2, 3, continue f() ) => {} }`,
+        err: `                ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ (... continue f()) => {}  }`,
+        err: `           ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ (a, b, c, ... continue f() ) => {}  }`,
+        err: `                    ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a <= continue f(); }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return b > continue f(); }`,
+        err: `                 ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a << continue f(); }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return b >> continue f(); }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return c >>> continue f(); }`,
+        err: `                   ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue f() = a ; }`,
+        err: `             ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a = continue f() ; }`,
+        err: `                 ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a += continue f(); }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a ** continue f() ; }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return delete continue foo() ; }`,
+        err: `                    ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ typeof continue foo()  ; }`,
+        err: `             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return ~ continue foo() ; }`,
+        err: `               ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return void  continue foo() ; }`,
+        err: `                   ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return !continue foo() ; }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return -continue foo() ; }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return +continue foo() ; }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return ++ continue f( ) ; }`,
+        err: `                ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue f()  ++; }`,
+        err: `             ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue f() --; }`,
+        err: `             ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return (continue foo()) () ;  }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var i = continue foo(); i < 10; i++) bar(); }`,
+        err: `                   ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var i = 0; i < continue foo(); i++) bar(); }`,
+        err: `                          ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var i = 0; i < 10; continue foo()) bar(); }`,
+        err: `                              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ if (continue foo()) bar(); }`,
+        err: `          ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ while (continue foo()) bar(); }`,
+        err: `             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ do { smth; } while (continue foo()) ; }`,
+        err: `                          ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ throw continue foo() ; }`,
+        err: `            ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ switch (continue foo()) { case 1: break; } ; }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ with (continue foo()) { smth; } }`,
+        err: `            ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ let x = continue foo() }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ const c = continue  foo() }`,
+        err: `                ^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ try { return  continue   f ( ) ; } catch(e) {} }`,
+        err: `                    ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ try { try { smth; } catch(e) { return  continue  f( ) ; } }`,
+        err: `                                             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ try { try { smth; } catch(e) { return  continue  f( ) ; } } finally { bla; } }`,
+        err: `                                             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ try { smth; } catch(e) { return  continue   f ( ) ; } finally { blah; } }`,
+        err: `                                       ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ try { smth; } catch(e) { try { smth; } catch (e) { return  continue   f ( ) ; } } finally { blah; } }`,
+        err: `                                                                 ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var v in {a:0}) { return continue  foo () ; } }`,
+        err: `                                    ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var v of [1, 2, 3]) { return continue  foo () ; } }`,
+        err: `                                        ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue  a.b.c.foo () ; }`,
+        err: `             ^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue  a().b.c().d.foo () ; }`,
+        err: `             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue  foo (1)(2)(3, 4) ; }`,
+        err: `             ^^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return ( continue b() ) ; }`,
+        err: `               ^^^^^^^^^^^^`,
+      },
+      { src: "()=>{ return continue bar`ab cd ef` ; }",
+        err: `             ^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: "()=>{ return continue bar`ab ${cd} ef` ; }",
+        err: `             ^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a || continue f() ; }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a && continue f() ; }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a , continue f() ; }`,
+        err: `                 ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ function* G() { return continue foo(); } }`,
+        err: `                             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ function B() { return continue new.target() ; } }`,
+        err: `                            ^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue do { x ? foo() : bar() ; }() }`,
+        err: `             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue (do { x ? foo() : bar() ; })() }`,
+        err: `             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return do { 1, continue foo() } }`,
+        err: `                     ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return do { x ? continue foo() : y } }`,
+        err: `                      ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a || (b && continue c()); }`,
+        err: `                        ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a && (b || continue c()); }`,
+        err: `                        ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a || (b ? c : continue d()); }`,
+        err: `                           ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return 1, 2, 3, a || (b ? c : continue d()); }`,
+        err: `                                    ^^^^^^^^^^^^`,
+      },
+      { src: `()=> continue  (foo ()) ;`,
+        err: `     ^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=> a || continue  foo () ;`,
+        err: `          ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=> a && continue  foo () ;`,
+        err: `          ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=> a ? continue  foo () : b;`,
+        err: `         ^^^^^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Undefined label 'foo'",
+    tests: [
+      { src: `()=>{ continue  foo () ; }`,
+        err: `                ^^^`,
+      },
+    ],
+  },
+];
+
+
+// Should parse successfully.
+var NoErrorTests = [
+  `()=>{ class A { foo() { return continue super.f() ; } } }`,
+  `()=>{ class A { foo() { return continue f() ; } } }`,
+  `()=>{ class A { foo() { return a || continue f() ; } } }`,
+  `()=>{ class A { foo() { return b && continue f() ; } } }`,
+];
+
+
+(function() {
+  for (var test_set of SyntaxErrorTests) {
+    var expected_message = "SyntaxError: " + test_set.msg;
+    for (var test of test_set.tests) {
+      var passed = true;
+      var e = null;
+      try {
+        Realm.eval(0, test.src);
+      } catch (ee) {
+        e = ee;
+      }
+      print("=======================================");
+      print("Expected | " + expected_message);
+      print("Source   | " + test.src);
+      print("         | " + test.err);
+
+      if (e === null) {
+        print("FAILED");
+        throw new Error("SyntaxError was not thrown");
+      }
+
+      var details = %GetExceptionDetails(e);
+      if (details.start_pos == undefined ||
+          details.end_pos == undefined) {
+        throw new Error("Bad message object returned");
+      }
+      var underline = " ".repeat(details.start_pos) +
+                      "^".repeat(details.end_pos - details.start_pos);
+      var passed = expected_message === e.toString() &&
+                   test.err === underline;
+
+      if (passed) {
+        print("PASSED");
+        print();
+      } else {
+        print("---------------------------------------");
+        print("Actual   | " + e);
+        print("Source   | " + test.src);
+        print("         | " + underline);
+        print("FAILED");
+        throw new Error("Test failed");
+      }
+    }
+  }
+})();
+
+
+(function() {
+  for (var src of NoErrorTests) {
+    print("=======================================");
+    print("Source   | " + src);
+    Realm.eval(0, src);
+    print("PASSED");
+    print();
+  }
+})();
diff --git a/test/mjsunit/es8/syntactic-tail-call-parsing.js b/test/mjsunit/es8/syntactic-tail-call-parsing.js
new file mode 100644
index 0000000..9ceff9c
--- /dev/null
+++ b/test/mjsunit/es8/syntactic-tail-call-parsing.js
@@ -0,0 +1,388 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --harmony-explicit-tailcalls
+// Flags: --harmony-do-expressions
+"use strict";
+
+var SyntaxErrorTests = [
+  { msg: "Unexpected expression inside tail call",
+    tests: [
+      { src: `()=>{ return continue  foo ; }`,
+        err: `                       ^^^`,
+      },
+      { src: `()=>{ return  continue 42 ; }`,
+        err: `                       ^^`,
+      },
+      { src: `()=>{ return  continue   new foo ()  ; }`,
+        err: `                         ^^^^^^^^^^`,
+      },
+      { src: `()=>{ loop: return  continue  loop ; }`,
+        err: `                              ^^^^`,
+      },
+      { src: `class A { foo() { return  continue   super.x ; } }`,
+        err: `                                     ^^^^^^^`,
+      },
+      { src: `()=>{ return  continue  this  ; }`,
+        err: `                        ^^^^`,
+      },
+      { src: `()=>{ return  continue class A {} ; }`,
+        err: `                       ^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue class A extends B {} ; }`,
+        err: `                       ^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue function A() { } ; }`,
+        err: `                       ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue { a: b, c: d} ; }`,
+        err: `                       ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue function* Gen() { yield 1; } ; }`,
+        err: `                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `function A() { return  continue new.target ; }`,
+        err: `                                ^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue () ; }`,
+        err: `                       ^^`,
+      },
+      { src: `()=>{ return  continue ( 42 ) ; }`,
+        err: `                       ^^^^^^`,
+      },
+      { src: "()=>{ return continue `123 ${foo} 34lk` ;  }",
+        err: `                      ^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue do { x ? foo() : bar() ; } }`,
+        err: `                      ^^^^^^^^^^^^^^^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Tail call expression is not allowed here",
+    tests: [
+      { src: `()=>{ return  continue continue continue b()  ; }`,
+        err: `                                ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  continue ( continue b() ) ; }`,
+        err: `                         ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return   continue  f()   - a ; }`,
+        err: `               ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return b + continue   f()  ; }`,
+        err: `                 ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return 1, 2, 3,   continue  f() , 4  ; }`,
+        err: `                        ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ var x =  continue  f ( ) ; }`,
+        err: `               ^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return   continue f () ? 1 : 2 ; }`,
+        err: `               ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return (1, 2, 3, continue f()), 4; }`,
+        err: `                       ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return [1, 2, continue f() ] ;  }`,
+        err: `                    ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return [1, 2, ... continue f() ] ;  }`,
+        err: `                        ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return [1, 2, continue f(), 3 ] ;  }`,
+        err: `                    ^^^^^^^^^^^^`,
+      },
+      { src: "()=>{ return `123 ${a} ${ continue foo ( ) } 34lk` ;  }",
+        err: `                          ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return g( 1, 2, continue f() ); }`,
+        err: `                      ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue f() || a; }`,
+        err: `             ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a || b || c || continue f() || d; }`,
+        err: `                            ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a && b && c && continue f() && d; }`,
+        err: `                            ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a && b || c && continue f() ? d : e; }`,
+        err: `                            ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a ? b : c && continue f() && d || e; }`,
+        err: `                          ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue foo() instanceof bar ; }`,
+        err: `             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return bar instanceof continue foo() ; }`,
+        err: `                            ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue foo() in bar ; }`,
+        err: `             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return bar in continue foo() ; }`,
+        err: `                    ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ function* G() { yield continue foo(); } }`,
+        err: `                            ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ (1, 2, 3, continue f() ) => {} }`,
+        err: `                ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ (... continue f()) => {}  }`,
+        err: `           ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ (a, b, c, ... continue f() ) => {}  }`,
+        err: `                    ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a <= continue f(); }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return b > continue f(); }`,
+        err: `                 ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a << continue f(); }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return b >> continue f(); }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return c >>> continue f(); }`,
+        err: `                   ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue f() = a ; }`,
+        err: `             ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a = continue f() ; }`,
+        err: `                 ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a += continue f(); }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return a ** continue f() ; }`,
+        err: `                  ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return delete continue foo() ; }`,
+        err: `                    ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ typeof continue foo()  ; }`,
+        err: `             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return ~ continue foo() ; }`,
+        err: `               ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return void  continue foo() ; }`,
+        err: `                   ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return !continue foo() ; }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return -continue foo() ; }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return +continue foo() ; }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return ++ continue f( ) ; }`,
+        err: `                ^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue f()  ++; }`,
+        err: `             ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return continue f() --; }`,
+        err: `             ^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return (continue foo()) () ;  }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var i = continue foo(); i < 10; i++) bar(); }`,
+        err: `                   ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var i = 0; i < continue foo(); i++) bar(); }`,
+        err: `                          ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var i = 0; i < 10; continue foo()) bar(); }`,
+        err: `                              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ if (continue foo()) bar(); }`,
+        err: `          ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ while (continue foo()) bar(); }`,
+        err: `             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ do { smth; } while (continue foo()) ; }`,
+        err: `                          ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ throw continue foo() ; }`,
+        err: `            ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ switch (continue foo()) { case 1: break; } ; }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ let x = continue foo() }`,
+        err: `              ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ const c = continue  foo() }`,
+        err: `                ^^^^^^^^^^^^^^^`,
+      },
+      { src: `class A {}; class B extends A { constructor() { return continue foo () ; } }`,
+        err: `                                                       ^^^^^^^^^^^^^^^`,
+      },
+      { src: `class A extends continue f () {}; }`,
+        err: `                ^^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Tail call expression in try block",
+    tests: [
+      { src: `()=>{ try { return  continue   f ( ) ; } catch(e) {} }`,
+        err: `                    ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ try { try { smth; } catch(e) { return  continue  f( ) ; } }`,
+        err: `                                             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ try { try { smth; } catch(e) { return  continue  f( ) ; } } finally { bla; } }`,
+        err: `                                             ^^^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Tail call expression in catch block when finally block is also present",
+    tests: [
+      { src: `()=>{ try { smth; } catch(e) { return  continue   f ( ) ; } finally { blah; } }`,
+        err: `                                       ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ try { smth; } catch(e) { try { smth; } catch (e) { return  continue   f ( ) ; } } finally { blah; } }`,
+        err: `                                                                 ^^^^^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Tail call expression in for-in/of body",
+    tests: [
+      { src: `()=>{ for (var v in {a:0}) { return continue  foo () ; } }`,
+        err: `                                    ^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ for (var v of [1, 2, 3]) { return continue  foo () ; } }`,
+        err: `                                        ^^^^^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Tail call of a direct eval is not allowed",
+    tests: [
+      { src: `()=>{ return  continue  eval(" foo () " )  ; }`,
+        err: `                        ^^^^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  a || continue  eval("", 1, 2)  ; }`,
+        err: `                             ^^^^^^^^^^^^^^`,
+      },
+      { src: `()=>{ return  a, continue  eval  ( )  ; }`,
+        err: `                           ^^^^^^^^^`,
+      },
+      { src: `()=> a, continue  eval  ( )  ; `,
+        err: `                  ^^^^^^^^^`,
+      },
+      { src: `()=> a || continue  eval  (' ' )  ; `,
+        err: `                    ^^^^^^^^^^^^`,
+      },
+    ],
+  },
+  { msg: "Undefined label 'foo'",
+    tests: [
+      { src: `()=>{ continue  foo () ; }`,
+        err: `                ^^^`,
+      },
+    ],
+  },
+];
+
+
+// Should parse successfully.
+var NoErrorTests = [
+  `()=>{ return continue  a.b.c.foo () ; }`,
+  `()=>{ return continue  a().b.c().d.foo () ; }`,
+  `()=>{ return continue  foo (1)(2)(3, 4) ; }`,
+  `()=>{ return continue (0, eval)(); }`,
+  `()=>{ return ( continue b() ) ; }`,
+  "()=>{ return continue bar`ab cd ef` ; }",
+  "()=>{ return continue bar`ab ${cd} ef` ; }",
+  `()=>{ return a || continue f() ; }`,
+  `()=>{ return a && continue f() ; }`,
+  `()=>{ return a , continue f() ; }`,
+  `()=>{ function* G() { return continue foo(); } }`,
+  `()=>{ class A { foo() { return continue super.f() ; } } }`,
+  `()=>{ function B() { return continue new.target() ; } }`,
+  `()=>{ return continue do { x ? foo() : bar() ; }() }`,
+  `()=>{ return continue (do { x ? foo() : bar() ; })() }`,
+  `()=>{ return do { 1, continue foo() } }`,
+  `()=>{ return do { x ? continue foo() : y } }`,
+  `()=>{ return a || (b && continue c()); }`,
+  `()=>{ return a && (b || continue c()); }`,
+  `()=>{ return a || (b ? c : continue d()); }`,
+  `()=>{ return 1, 2, 3, a || (b ? c : continue d()); }`,
+  `()=> continue  (foo ()) ;`,
+  `()=> a || continue  foo () ;`,
+  `()=> a && continue  foo () ;`,
+  `()=> a ? continue  foo () : b;`,
+];
+
+
+(function() {
+  for (var test_set of SyntaxErrorTests) {
+    var expected_message = "SyntaxError: " + test_set.msg;
+    for (var test of test_set.tests) {
+      var passed = true;
+      var e = null;
+      try {
+        eval(test.src);
+      } catch (ee) {
+        e = ee;
+      }
+      print("=======================================");
+      print("Expected | " + expected_message);
+      print("Source   | " + test.src);
+      print("         | " + test.err);
+
+      if (e === null) {
+        print("FAILED");
+        throw new Error("SyntaxError was not thrown");
+      }
+
+      var details = %GetExceptionDetails(e);
+      if (details.start_pos == undefined ||
+          details.end_pos == undefined) {
+        throw new Error("Bad message object returned");
+      }
+      var underline = " ".repeat(details.start_pos) +
+                      "^".repeat(details.end_pos - details.start_pos);
+      var passed = expected_message === e.toString() &&
+                   test.err === underline;
+
+      if (passed) {
+        print("PASSED");
+        print();
+      } else {
+        print("---------------------------------------");
+        print("Actual   | " + e);
+        print("Source   | " + test.src);
+        print("         | " + underline);
+        print("FAILED");
+        throw new Error("Test failed");
+      }
+    }
+  }
+})();
+
+
+(function() {
+  for (var src of NoErrorTests) {
+    print("=======================================");
+    print("Source   | " + src);
+    src = `"use strict"; ` + src;
+    Realm.eval(0, src);
+    print("PASSED");
+    print();
+  }
+})();
diff --git a/test/mjsunit/es8/syntactic-tail-call-simple.js b/test/mjsunit/es8/syntactic-tail-call-simple.js
new file mode 100644
index 0000000..ec7ade6
--- /dev/null
+++ b/test/mjsunit/es8/syntactic-tail-call-simple.js
@@ -0,0 +1,143 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --harmony-explicit-tailcalls --stack-size=100
+
+//
+// Tail calls work only in strict mode.
+//
+(function() {
+  function f(n) {
+    if (n <= 0) {
+      return "foo";
+    }
+    return f(n - 1);
+  }
+  assertThrows(()=>{ f(1e5) });
+  %OptimizeFunctionOnNextCall(f);
+  assertThrows(()=>{ f(1e5) });
+})();
+
+
+//
+// Tail call normal functions.
+//
+(function() {
+  "use strict";
+  function f(n) {
+    if (n <= 0) {
+      return "foo";
+    }
+    return continue f(n - 1);
+  }
+  assertEquals("foo", f(1e5));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("foo", f(1e5));
+})();
+
+
+(function() {
+  "use strict";
+  function f(n) {
+    if (n <= 0) {
+      return  "foo";
+    }
+    return continue f(n - 1, 42);  // Call with arguments adaptor.
+  }
+  assertEquals("foo", f(1e5));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("foo", f(1e5));
+})();
+
+
+(function() {
+  "use strict";
+  function f(n){
+    if (n <= 0) {
+      return "foo";
+    }
+    return continue g(n - 1);
+  }
+  function g(n){
+    if (n <= 0) {
+      return "bar";
+    }
+    return continue f(n - 1);
+  }
+  assertEquals("foo", f(1e5));
+  assertEquals("bar", f(1e5 + 1));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("foo", f(1e5));
+  assertEquals("bar", f(1e5 + 1));
+})();
+
+
+(function() {
+  "use strict";
+  function f(n){
+    if (n <= 0) {
+      return "foo";
+    }
+    return continue g(n - 1, 42);  // Call with arguments adaptor.
+  }
+  function g(n){
+    if (n <= 0) {
+      return "bar";
+    }
+    return continue f(n - 1, 42);  // Call with arguments adaptor.
+  }
+  assertEquals("foo", f(1e5));
+  assertEquals("bar", f(1e5 + 1));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("foo", f(1e5));
+  assertEquals("bar", f(1e5 + 1));
+})();
+
+
+//
+// Tail call bound functions.
+//
+(function() {
+  "use strict";
+  function f0(n) {
+    if (n <= 0) {
+      return "foo";
+    }
+    return continue f_bound(n - 1);
+  }
+  var f_bound = f0.bind({});
+  function f(n) {
+    return continue f_bound(n);
+  }
+  assertEquals("foo", f(1e5));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("foo", f(1e5));
+})();
+
+
+(function() {
+  "use strict";
+  function f0(n){
+    if (n <= 0) {
+      return "foo";
+    }
+    return continue g_bound(n - 1);
+  }
+  function g0(n){
+    if (n <= 0) {
+      return "bar";
+    }
+    return continue f_bound(n - 1);
+  }
+  var f_bound = f0.bind({});
+  var g_bound = g0.bind({});
+  function f(n) {
+    return continue f_bound(n);
+  }
+  assertEquals("foo", f(1e5));
+  assertEquals("bar", f(1e5 + 1));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("foo", f(1e5));
+  assertEquals("bar", f(1e5 + 1));
+})();
diff --git a/test/mjsunit/es8/syntactic-tail-call.js b/test/mjsunit/es8/syntactic-tail-call.js
new file mode 100644
index 0000000..44936a4
--- /dev/null
+++ b/test/mjsunit/es8/syntactic-tail-call.js
@@ -0,0 +1,604 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --harmony-explicit-tailcalls
+// Flags: --harmony-do-expressions
+
+"use strict";
+
+Error.prepareStackTrace = (error,stack) => {
+  error.strace = stack;
+  return error.message + "\n    at " + stack.join("\n    at ");
+}
+
+
+function CheckStackTrace(expected) {
+  var e = new Error();
+  e.stack;  // prepare stack trace
+  var stack = e.strace;
+  assertEquals("CheckStackTrace", stack[0].getFunctionName());
+  for (var i = 0; i < expected.length; i++) {
+    assertEquals(expected[i].name, stack[i + 1].getFunctionName());
+  }
+}
+%NeverOptimizeFunction(CheckStackTrace);
+
+
+function f(expected_call_stack, a, b) {
+  CheckStackTrace(expected_call_stack);
+  return a;
+}
+
+function f_153(expected_call_stack, a) {
+  CheckStackTrace(expected_call_stack);
+  return 153;
+}
+
+
+// Tail call when caller does not have an arguments adaptor frame.
+(function() {
+  // Caller and callee have same number of arguments.
+  function f1(a) {
+    CheckStackTrace([f1, test]);
+    return 10 + a;
+  }
+  function g1(a) { return continue f1(2); }
+
+  // Caller has more arguments than callee.
+  function f2(a) {
+    CheckStackTrace([f2, test]);
+    return 10 + a;
+  }
+  function g2(a, b, c) { return continue f2(2); }
+
+  // Caller has less arguments than callee.
+  function f3(a, b, c) {
+    CheckStackTrace([f3, test]);
+    return 10 + a + b + c;
+  }
+  function g3(a) { return continue f3(2, 3, 4); }
+
+  // Callee has arguments adaptor frame.
+  function f4(a, b, c) {
+    CheckStackTrace([f4, test]);
+    return 10 + a;
+  }
+  function g4(a) { return continue f4(2); }
+
+  function test() {
+    assertEquals(12, g1(1));
+    assertEquals(12, g2(1, 2, 3));
+    assertEquals(19, g3(1));
+    assertEquals(12, g4(1));
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Tail call when caller has an arguments adaptor frame.
+(function() {
+  // Caller and callee have same number of arguments.
+  function f1(a) {
+    CheckStackTrace([f1, test]);
+    return 10 + a;
+  }
+  function g1(a) { return continue f1(2); }
+
+  // Caller has more arguments than callee.
+  function f2(a) {
+    CheckStackTrace([f2, test]);
+    return 10 + a;
+  }
+  function g2(a, b, c) { return continue f2(2); }
+
+  // Caller has less arguments than callee.
+  function f3(a, b, c) {
+    CheckStackTrace([f3, test]);
+    return 10 + a + b + c;
+  }
+  function g3(a) { return continue f3(2, 3, 4); }
+
+  // Callee has arguments adaptor frame.
+  function f4(a, b, c) {
+    CheckStackTrace([f4, test]);
+    return 10 + a;
+  }
+  function g4(a) { return continue f4(2); }
+
+  function test() {
+    assertEquals(12, g1());
+    assertEquals(12, g2());
+    assertEquals(19, g3());
+    assertEquals(12, g4());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Tail call bound function when caller does not have an arguments
+// adaptor frame.
+(function() {
+  // Caller and callee have same number of arguments.
+  function f1(a) {
+    assertEquals(153, this.a);
+    CheckStackTrace([f1, test]);
+    return 10 + a;
+  }
+  var b1 = f1.bind({a: 153});
+  function g1(a) { return continue b1(2); }
+
+  // Caller has more arguments than callee.
+  function f2(a) {
+    assertEquals(153, this.a);
+    CheckStackTrace([f2, test]);
+    return 10 + a;
+  }
+  var b2 = f2.bind({a: 153});
+  function g2(a, b, c) { return continue b2(2); }
+
+  // Caller has less arguments than callee.
+  function f3(a, b, c) {
+    assertEquals(153, this.a);
+    CheckStackTrace([f3, test]);
+    return 10 + a + b + c;
+  }
+  var b3 = f3.bind({a: 153});
+  function g3(a) { return continue b3(2, 3, 4); }
+
+  // Callee has arguments adaptor frame.
+  function f4(a, b, c) {
+    assertEquals(153, this.a);
+    CheckStackTrace([f4, test]);
+    return 10 + a;
+  }
+  var b4 = f4.bind({a: 153});
+  function g4(a) { return continue b4(2); }
+
+  function test() {
+    assertEquals(12, g1(1));
+    assertEquals(12, g2(1, 2, 3));
+    assertEquals(19, g3(1));
+    assertEquals(12, g4(1));
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Tail call bound function when caller has an arguments adaptor frame.
+(function() {
+  // Caller and callee have same number of arguments.
+  function f1(a) {
+    assertEquals(153, this.a);
+    CheckStackTrace([f1, test]);
+    return 10 + a;
+  }
+  var b1 = f1.bind({a: 153});
+  function g1(a) { return continue b1(2); }
+
+  // Caller has more arguments than callee.
+  function f2(a) {
+    assertEquals(153, this.a);
+    CheckStackTrace([f2, test]);
+    return 10 + a;
+  }
+  var b2 = f2.bind({a: 153});
+  function g2(a, b, c) { return continue b2(2); }
+
+  // Caller has less arguments than callee.
+  function f3(a, b, c) {
+    assertEquals(153, this.a);
+    CheckStackTrace([f3, test]);
+    return 10 + a + b + c;
+  }
+  var b3 = f3.bind({a: 153});
+  function g3(a) { return continue b3(2, 3, 4); }
+
+  // Callee has arguments adaptor frame.
+  function f4(a, b, c) {
+    assertEquals(153, this.a);
+    CheckStackTrace([f4, test]);
+    return 10 + a;
+  }
+  var b4 = f4.bind({a: 153});
+  function g4(a) { return continue b4(2); }
+
+  function test() {
+    assertEquals(12, g1());
+    assertEquals(12, g2());
+    assertEquals(19, g3());
+    assertEquals(12, g4());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Tail calling from getter.
+(function() {
+  function g(v) {
+    CheckStackTrace([g, test]);
+    %DeoptimizeFunction(test);
+    return 153;
+  }
+  %NeverOptimizeFunction(g);
+
+  function f(v) {
+    return continue g();
+  }
+  %SetForceInlineFlag(f);
+
+  function test() {
+    var o = {};
+    o.__defineGetter__('p', f);
+    assertEquals(153, o.p);
+  }
+
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Tail calling from setter.
+(function() {
+  function g() {
+    CheckStackTrace([g, test]);
+    %DeoptimizeFunction(test);
+    return 153;
+  }
+  %NeverOptimizeFunction(g);
+
+  function f(v) {
+    return continue g();
+  }
+  %SetForceInlineFlag(f);
+
+  function test() {
+    var o = {};
+    o.__defineSetter__('q', f);
+    assertEquals(1, o.q = 1);
+  }
+
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Tail calling from constructor.
+(function() {
+  function g(context) {
+    CheckStackTrace([g, test]);
+    %DeoptimizeFunction(test);
+    return {x: 153};
+  }
+  %NeverOptimizeFunction(g);
+
+  function A() {
+    this.x = 42;
+    return continue g();
+  }
+
+  function test() {
+    var o = new A();
+    %DebugPrint(o);
+    assertEquals(153, o.x);
+  }
+
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Tail calling via various expressions.
+(function() {
+  function g1(a) {
+    return f([f, g1, test], false) || continue f([f, test], true);
+  }
+
+  function g2(a) {
+    return f([f, g2, test], true) && continue f([f, test], true);
+  }
+
+  function g3(a) {
+    return f([f, g3, test], 13), continue f([f, test], 153);
+  }
+
+  function g4(a) {
+    return f([f, g4, test], false) ||
+        (f([f, g4, test], true) && continue f([f, test], true));
+  }
+
+  function g5(a) {
+    return f([f, g5, test], true) &&
+        (f([f, g5, test], false) || continue f([f, test], true));
+  }
+
+  function g6(a) {
+    return f([f, g6, test], 13), f([f, g6, test], 42),
+        continue f([f, test], 153);
+  }
+
+  function g7(a) {
+    return f([f, g7, test], false) ||
+        (f([f, g7, test], false) ? continue f([f, test], true)
+             : continue f([f, test], true));
+  }
+
+  function g8(a) {
+    return f([f, g8, test], false) || f([f, g8, test], true) &&
+        continue f([f, test], true);
+  }
+
+  function g9(a) {
+    return f([f, g9, test], true) && f([f, g9, test], false) ||
+        continue f([f, test], true);
+  }
+
+  function g10(a) {
+    return f([f, g10, test], true) && f([f, g10, test], false) ||
+        f([f, g10, test], true) ?
+            f([f, g10, test], true) && f([f, g10, test], false) ||
+                continue f([f, test], true) :
+            f([f, g10, test], true) && f([f, g10, test], false) ||
+                continue f([f, test], true);
+  }
+
+  function test() {
+    assertEquals(true, g1());
+    assertEquals(true, g2());
+    assertEquals(153, g3());
+    assertEquals(true, g4());
+    assertEquals(true, g5());
+    assertEquals(153, g6());
+    assertEquals(true, g7());
+    assertEquals(true, g8());
+    assertEquals(true, g9());
+    assertEquals(true, g10());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Tail calling from various statements.
+(function() {
+  function g3() {
+    for (var i = 0; i < 10; i++) {
+      return continue f_153([f_153, test]);
+    }
+  }
+
+  function g4() {
+    while (true) {
+      return continue f_153([f_153, test]);
+    }
+  }
+
+  function g5() {
+    do {
+      return continue f_153([f_153, test]);
+    } while (true);
+  }
+
+  function test() {
+    assertEquals(153, g3());
+    assertEquals(153, g4());
+    assertEquals(153, g5());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Test tail calls from try-catch constructs.
+(function() {
+  function tc1(a) {
+    try {
+      f_153([f_153, tc1, test]);
+      return f_153([f_153, tc1, test]);
+    } catch(e) {
+      f_153([f_153, tc1, test]);
+    }
+  }
+
+  function tc2(a) {
+    try {
+      f_153([f_153, tc2, test]);
+      throw new Error("boom");
+    } catch(e) {
+      f_153([f_153, tc2, test]);
+      return continue f_153([f_153, test]);
+    }
+  }
+
+  function tc3(a) {
+    try {
+      f_153([f_153, tc3, test]);
+      throw new Error("boom");
+    } catch(e) {
+      f_153([f_153, tc3, test]);
+    }
+    f_153([f_153, tc3, test]);
+    return continue f_153([f_153, test]);
+  }
+
+  function test() {
+    assertEquals(153, tc1());
+    assertEquals(153, tc2());
+    assertEquals(153, tc3());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Test tail calls from try-finally constructs.
+(function() {
+  function tf1(a) {
+    try {
+      f_153([f_153, tf1, test]);
+      return f_153([f_153, tf1, test]);
+    } finally {
+      f_153([f_153, tf1, test]);
+    }
+  }
+
+  function tf2(a) {
+    try {
+      f_153([f_153, tf2, test]);
+      throw new Error("boom");
+    } finally {
+      f_153([f_153, tf2, test]);
+      return continue f_153([f_153, test]);
+    }
+  }
+
+  function tf3(a) {
+    try {
+      f_153([f_153, tf3, test]);
+    } finally {
+      f_153([f_153, tf3, test]);
+    }
+    return continue f_153([f_153, test]);
+  }
+
+  function test() {
+    assertEquals(153, tf1());
+    assertEquals(153, tf2());
+    assertEquals(153, tf3());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Test tail calls from try-catch-finally constructs.
+(function() {
+  function tcf1(a) {
+    try {
+      f_153([f_153, tcf1, test]);
+      return f_153([f_153, tcf1, test]);
+    } catch(e) {
+    } finally {
+      f_153([f_153, tcf1, test]);
+    }
+  }
+
+  function tcf2(a) {
+    try {
+      f_153([f_153, tcf2, test]);
+      throw new Error("boom");
+    } catch(e) {
+      f_153([f_153, tcf2, test]);
+      return f_153([f_153, tcf2, test]);
+    } finally {
+      f_153([f_153, tcf2, test]);
+    }
+  }
+
+  function tcf3(a) {
+    try {
+      f_153([f_153, tcf3, test]);
+      throw new Error("boom");
+    } catch(e) {
+      f_153([f_153, tcf3, test]);
+    } finally {
+      f_153([f_153, tcf3, test]);
+      return continue f_153([f_153, test]);
+    }
+  }
+
+  function tcf4(a) {
+    try {
+      f_153([f_153, tcf4, test]);
+      throw new Error("boom");
+    } catch(e) {
+      f_153([f_153, tcf4, test]);
+    } finally {
+      f_153([f_153, tcf4, test]);
+    }
+    return continue f_153([f_153, test]);
+  }
+
+  function test() {
+    assertEquals(153, tcf1());
+    assertEquals(153, tcf2());
+    assertEquals(153, tcf3());
+    assertEquals(153, tcf4());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Test tail calls from arrow functions.
+(function () {
+  function g1(a) {
+    return continue (() => { return continue f_153([f_153, test]); })();
+  }
+
+  function g2(a) {
+    return continue (() => continue f_153([f_153, test]))();
+  }
+
+  function g3(a) {
+    var closure = () => f([f, closure, test], true)
+                              ? continue f_153([f_153, test])
+                              : continue f_153([f_153, test]);
+    return continue closure();
+  }
+
+  function test() {
+    assertEquals(153, g1());
+    assertEquals(153, g2());
+    assertEquals(153, g3());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
+
+
+// Test tail calls from do expressions.
+(function () {
+  function g1(a) {
+    var a = do { return continue f_153([f_153, test]); 42; };
+    return a;
+  }
+
+  function test() {
+    assertEquals(153, g1());
+  }
+  test();
+  test();
+  %OptimizeFunctionOnNextCall(test);
+  test();
+})();
diff --git a/test/mjsunit/eval-origin.js b/test/mjsunit/eval-origin.js
new file mode 100644
index 0000000..bb86ef3
--- /dev/null
+++ b/test/mjsunit/eval-origin.js
@@ -0,0 +1,39 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --nostress-opt
+
+Error.prepareStackTrace = function(exception, frames) {
+  return frames[0].getEvalOrigin();
+}
+
+var source = "new Error()";
+var eval_origin;
+var geval = eval;
+var log = [];
+
+(function() {
+  log.push([geval(source).stack, "17:13"]);
+  log.push([geval(source).stack, "18:13"]);
+  // log.push([geval(source).stack, "19:13"]);  TODO(4921).
+})();
+
+(function() {
+  log.push([eval(source).stack, "23:13"]);
+  log.push([eval(source).stack, "24:13"]);
+  // log.push([eval(source).stack, "25:13"]);  TODO(4921).
+})();
+
+log.push([eval(source).stack, "28:11"]);
+log.push([eval(source).stack, "29:11"]);
+// log.push([eval(source).stack, "30:11"]);  TODO(4921).
+
+Error.prepareStackTrace = undefined;
+
+for (var item of log) {
+  var stacktraceline = item[0];
+  var expectation = item[1];
+  var re = new RegExp(`:${expectation}\\)$`);
+  assertTrue(re.test(stacktraceline));
+}
diff --git a/test/mjsunit/for-in.js b/test/mjsunit/for-in.js
index bece37a..547c748 100644
--- a/test/mjsunit/for-in.js
+++ b/test/mjsunit/for-in.js
@@ -25,6 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --noharmony-for-in
+
 function props(x) {
   var array = [];
   for (var p in x) array.push(p);
diff --git a/test/mjsunit/harmony/array-concat-array-proto-getter.js b/test/mjsunit/harmony/array-concat-array-proto-getter.js
new file mode 100644
index 0000000..9368e7f
--- /dev/null
+++ b/test/mjsunit/harmony/array-concat-array-proto-getter.js
@@ -0,0 +1,53 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Check that @@isConcatSpreadable is checked when set on Object.prototype
+
+"use strict"
+
+var array = [1, 2, 3];
+var object = {length: 1, '0': 'a'};
+
+function testConcatDefaults() {
+  assertEquals(array, [].concat(array));
+  assertEquals(array, array.concat([]));
+  assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+  assertEquals([object], [].concat(object));
+  assertEquals([1, 2, 3, object], array.concat(object));
+  assertEquals([object], Array.prototype.concat.call(object,[]));
+  assertEquals([object, 1, 2, 3], Array.prototype.concat.call(object, array));
+  assertEquals([object, object], Array.prototype.concat.call(object, object));
+}
+
+testConcatDefaults();
+
+var concatSpreadable = false;
+Object.defineProperty(Array.prototype, Symbol.isConcatSpreadable, {
+    get() { return concatSpreadable },
+    configurable: true
+});
+
+assertEquals([[], array], [].concat(array));
+assertEquals([array, []], array.concat([]));
+assertEquals([array, array], array.concat(array));
+assertEquals([[], object], [].concat(object));
+assertEquals([array, object], array.concat(object));
+assertEquals([object, []], Array.prototype.concat.call(object,[]));
+assertEquals([object, array], Array.prototype.concat.call(object, array));
+assertEquals([object, object], Array.prototype.concat.call(object, object));
+
+concatSpreadable = true;
+
+assertEquals(array, [].concat(array));
+assertEquals(array, array.concat([]));
+assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+assertEquals([object], [].concat(object));
+assertEquals([1, 2, 3, object], array.concat(object));
+assertEquals([object], Array.prototype.concat.call(object,[]));
+assertEquals([object, 1, 2, 3], Array.prototype.concat.call(object, array));
+assertEquals([object, object], Array.prototype.concat.call(object, object));
+
+
+delete Array.prototype[Symbol.isConcatSpreadable];
+testConcatDefaults();
diff --git a/test/mjsunit/harmony/array-concat-array-proto.js b/test/mjsunit/harmony/array-concat-array-proto.js
new file mode 100644
index 0000000..520178f
--- /dev/null
+++ b/test/mjsunit/harmony/array-concat-array-proto.js
@@ -0,0 +1,48 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Check that @@isConcatSpreadable is checked when set on Object.prototype
+
+"use strict"
+
+var array = [1, 2, 3];
+var object = {length: 1, '0': 'a'};
+
+function testConcatDefaults() {
+  assertEquals(array, [].concat(array));
+  assertEquals(array, array.concat([]));
+  assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+  assertEquals([object], [].concat(object));
+  assertEquals([1, 2, 3, object], array.concat(object));
+  assertEquals([object], Array.prototype.concat.call(object,[]));
+  assertEquals([object, 1, 2, 3], Array.prototype.concat.call(object, array));
+  assertEquals([object, object], Array.prototype.concat.call(object, object));
+}
+
+testConcatDefaults();
+
+Array.prototype[Symbol.isConcatSpreadable] = false;
+
+assertEquals([[], array], [].concat(array));
+assertEquals([array, []], array.concat([]));
+assertEquals([array, array], array.concat(array));
+assertEquals([[], object], [].concat(object));
+assertEquals([array, object], array.concat(object));
+assertEquals([object, []], Array.prototype.concat.call(object,[]));
+assertEquals([object, array], Array.prototype.concat.call(object, array));
+assertEquals([object, object], Array.prototype.concat.call(object, object));
+
+Array.prototype[Symbol.isConcatSpreadable] = true;
+
+assertEquals(array, [].concat(array));
+assertEquals(array, array.concat([]));
+assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+assertEquals([object], [].concat(object));
+assertEquals([1, 2, 3, object], array.concat(object));
+assertEquals([object], Array.prototype.concat.call(object,[]));
+assertEquals([object, 1, 2, 3], Array.prototype.concat.call(object, array));
+assertEquals([object, object], Array.prototype.concat.call(object, object));
+
+delete Array.prototype[Symbol.isConcatSpreadable];
+testConcatDefaults();
diff --git a/test/mjsunit/harmony/array-concat-object-proto-dict-getter.js b/test/mjsunit/harmony/array-concat-object-proto-dict-getter.js
new file mode 100644
index 0000000..6e61588
--- /dev/null
+++ b/test/mjsunit/harmony/array-concat-object-proto-dict-getter.js
@@ -0,0 +1,57 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Check that @@isConcatSpreadable is checked when set on Object.prototype
+// with a dictionary backing store.
+
+// Force Object.prototype into dictionary backing store by adding many
+// properties.
+for (var i = 0; i < 10*1000; i++) {
+  Object.prototype['generatedProperty'+i] = true;
+}
+
+var array = [1, 2, 3];
+var object = {length: 1, '0': 'a'};
+
+function testConcatDefaults() {
+  assertEquals(array, [].concat(array));
+  assertEquals(array, array.concat([]));
+  assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+  assertEquals([object], [].concat(object));
+  assertEquals([1, 2, 3, object], array.concat(object));
+  assertEquals([object], Array.prototype.concat.call(object,[]));
+  assertEquals([object, 1, 2, 3], Array.prototype.concat.call(object, array));
+  assertEquals([object, object], Array.prototype.concat.call(object, object));
+}
+
+testConcatDefaults();
+
+var concatSpreadable = false;
+Object.defineProperty(Object.prototype, Symbol.isConcatSpreadable, {
+  get() { return concatSpreadable },
+  configurable: true
+});
+
+assertEquals([[], array], [].concat(array));
+assertEquals([array, []], array.concat([]));
+assertEquals([array, array], array.concat(array));
+assertEquals([[], object], [].concat(object));
+assertEquals([array, object], array.concat(object));
+assertEquals([object, []], Array.prototype.concat.call(object,[]));
+assertEquals([object, array], Array.prototype.concat.call(object, array));
+assertEquals([object, object], Array.prototype.concat.call(object, object));
+
+concatSpreadable = true;
+
+assertEquals(array, [].concat(array));
+assertEquals(array, array.concat([]));
+assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+assertEquals(['a'], [].concat(object));
+assertEquals([1, 2, 3, 'a'], array.concat(object));
+assertEquals(['a'], Array.prototype.concat.call(object,[]));
+assertEquals(['a', 1, 2, 3], Array.prototype.concat.call(object, array));
+assertEquals(['a', 'a'], Array.prototype.concat.call(object, object));
+
+delete Object.prototype[Symbol.isConcatSpreadable];
+testConcatDefaults();
diff --git a/test/mjsunit/harmony/array-concat-object-proto-dict.js b/test/mjsunit/harmony/array-concat-object-proto-dict.js
new file mode 100644
index 0000000..c817006
--- /dev/null
+++ b/test/mjsunit/harmony/array-concat-object-proto-dict.js
@@ -0,0 +1,53 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Check that @@isConcatSpreadable is checked when set on Object.prototype
+// with a dictionary backing store.
+
+// Force Object.prototype into dictionary backing store by adding many
+// properties.
+for (var i = 0; i < 10*1000; i++) {
+  Object.prototype['generatedProperty'+i] = true;
+}
+
+var array = [1, 2, 3];
+var object = {length: 1, '0': 'a'};
+
+function testConcatDefaults() {
+  assertEquals(array, [].concat(array));
+  assertEquals(array, array.concat([]));
+  assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+  assertEquals([object], [].concat(object));
+  assertEquals([1, 2, 3, object], array.concat(object));
+  assertEquals([object], Array.prototype.concat.call(object,[]));
+  assertEquals([object, 1, 2, 3], Array.prototype.concat.call(object, array));
+  assertEquals([object, object], Array.prototype.concat.call(object, object));
+}
+
+testConcatDefaults();
+
+Object.prototype[Symbol.isConcatSpreadable] = false;
+
+assertEquals([[], array], [].concat(array));
+assertEquals([array, []], array.concat([]));
+assertEquals([array, array], array.concat(array));
+assertEquals([[], object], [].concat(object));
+assertEquals([array, object], array.concat(object));
+assertEquals([object, []], Array.prototype.concat.call(object,[]));
+assertEquals([object, array], Array.prototype.concat.call(object, array));
+assertEquals([object, object], Array.prototype.concat.call(object, object));
+
+Object.prototype[Symbol.isConcatSpreadable] = true;
+
+assertEquals(array, [].concat(array));
+assertEquals(array, array.concat([]));
+assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+assertEquals(['a'], [].concat(object));
+assertEquals([1, 2, 3, 'a'], array.concat(object));
+assertEquals(['a'], Array.prototype.concat.call(object,[]));
+assertEquals(['a', 1, 2, 3], Array.prototype.concat.call(object, array));
+assertEquals(['a', 'a'], Array.prototype.concat.call(object, object));
+
+delete Object.prototype[Symbol.isConcatSpreadable];
+testConcatDefaults();
diff --git a/test/mjsunit/harmony/array-concat-object-proto-generic-dict.js b/test/mjsunit/harmony/array-concat-object-proto-generic-dict.js
new file mode 100644
index 0000000..7b61422
--- /dev/null
+++ b/test/mjsunit/harmony/array-concat-object-proto-generic-dict.js
@@ -0,0 +1,65 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Check that @@isConcatSpreadable is checked when set on Object.prototype
+// with a dictionary backing store.
+
+// Force Object.prototype into dictionary backing store by adding many
+// properties.
+for (var i = 0; i < 10*1000; i++) {
+  Object.prototype['generatedProperty'+i] = true;
+}
+
+var array = [1, 2, 3];
+var object = {length: 1, '0': 'a'};
+
+function SetProperty(receiver, key, value) {
+  receiver[key] = value;
+}
+
+// Force the Keyed Store IC in SetProperty to be generic.
+var receiver = {};
+for (var i = 0; i < 100; i++) {
+  SetProperty(receiver, 'prop'+i, 'value');
+}
+
+function testConcatDefaults() {
+  assertEquals(array, [].concat(array));
+  assertEquals(array, array.concat([]));
+  assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+  assertEquals([object], [].concat(object));
+  assertEquals([1, 2, 3, object], array.concat(object));
+  assertEquals([object], Array.prototype.concat.call(object,[]));
+  assertEquals([object, 1, 2, 3], Array.prototype.concat.call(object, array));
+  assertEquals([object, object], Array.prototype.concat.call(object, object));
+}
+
+testConcatDefaults();
+
+// Use a generic IC to set @@isConcatSpreadable
+SetProperty(Object.prototype, Symbol.isConcatSpreadable, false);
+
+assertEquals([[], array], [].concat(array));
+assertEquals([array, []], array.concat([]));
+assertEquals([array, array], array.concat(array));
+assertEquals([[], object], [].concat(object));
+assertEquals([array, object], array.concat(object));
+assertEquals([object, []], Array.prototype.concat.call(object,[]));
+assertEquals([object, array], Array.prototype.concat.call(object, array));
+assertEquals([object, object], Array.prototype.concat.call(object, object));
+
+// Use a generic IC to set @@isConcatSpreadable
+SetProperty(Object.prototype, Symbol.isConcatSpreadable, true);
+
+assertEquals(array, [].concat(array));
+assertEquals(array, array.concat([]));
+assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+assertEquals(['a'], [].concat(object));
+assertEquals([1, 2, 3, 'a'], array.concat(object));
+assertEquals(['a'], Array.prototype.concat.call(object,[]));
+assertEquals(['a', 1, 2, 3], Array.prototype.concat.call(object, array));
+assertEquals(['a', 'a'], Array.prototype.concat.call(object, object));
+
+delete Object.prototype[Symbol.isConcatSpreadable];
+testConcatDefaults();
diff --git a/test/mjsunit/harmony/array-concat-object-proto.js b/test/mjsunit/harmony/array-concat-object-proto.js
new file mode 100644
index 0000000..307326c
--- /dev/null
+++ b/test/mjsunit/harmony/array-concat-object-proto.js
@@ -0,0 +1,48 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Check that @@isConcatSpreadable is checked when set on Object.prototype
+
+"use strict"
+
+var array = [1, 2, 3];
+var object = {length: 1, '0': 'a'};
+
+function testConcatDefaults() {
+  assertEquals(array, [].concat(array));
+  assertEquals(array, array.concat([]));
+  assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+  assertEquals([object], [].concat(object));
+  assertEquals([1, 2, 3, object], array.concat(object));
+  assertEquals([object], Array.prototype.concat.call(object,[]));
+  assertEquals([object, 1, 2, 3], Array.prototype.concat.call(object, array));
+  assertEquals([object, object], Array.prototype.concat.call(object, object));
+}
+
+testConcatDefaults();
+
+Object.prototype[Symbol.isConcatSpreadable] = false;
+
+assertEquals([[], array], [].concat(array));
+assertEquals([array, []], array.concat([]));
+assertEquals([array, array], array.concat(array));
+assertEquals([[], object], [].concat(object));
+assertEquals([array, object], array.concat(object));
+assertEquals([object, []], Array.prototype.concat.call(object,[]));
+assertEquals([object, array], Array.prototype.concat.call(object, array));
+assertEquals([object, object], Array.prototype.concat.call(object, object));
+
+Object.prototype[Symbol.isConcatSpreadable] = true;
+
+assertEquals(array, [].concat(array));
+assertEquals(array, array.concat([]));
+assertEquals([1, 2, 3, 1, 2, 3], array.concat(array));
+assertEquals(['a'], [].concat(object));
+assertEquals([1, 2, 3, 'a'], array.concat(object));
+assertEquals(['a'], Array.prototype.concat.call(object,[]));
+assertEquals(['a', 1, 2, 3], Array.prototype.concat.call(object, array));
+assertEquals(['a', 'a'], Array.prototype.concat.call(object, object));
+
+delete Object.prototype[Symbol.isConcatSpreadable];
+testConcatDefaults();
diff --git a/test/mjsunit/harmony/async-arrow-lexical-arguments.js b/test/mjsunit/harmony/async-arrow-lexical-arguments.js
new file mode 100644
index 0000000..44d38a4
--- /dev/null
+++ b/test/mjsunit/harmony/async-arrow-lexical-arguments.js
@@ -0,0 +1,42 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-async-await --allow-natives-syntax
+
+function assertEqualsAsync(expected, run, msg) {
+  var actual;
+  var hadValue = false;
+  var hadError = false;
+  var promise = run();
+
+  if (typeof promise !== "object" || typeof promise.then !== "function") {
+    throw new MjsUnitAssertionError(
+        "Expected " + run.toString() +
+        " to return a Promise, but it returned " + PrettyPrint(promise));
+  }
+
+  promise.then(function(value) { hadValue = true; actual = value; },
+               function(error) { hadError = true; actual = error; });
+
+  assertFalse(hadValue || hadError);
+
+  %RunMicrotasks();
+
+  if (hadError) throw actual;
+
+  assertTrue(
+      hadValue, "Expected '" + run.toString() + "' to produce a value");
+
+  assertEquals(expected, actual, msg);
+};
+
+assertEqualsAsync("[1,2,3]", () => (function() {
+  return (async () => JSON.stringify([...arguments]))();
+})(1, 2, 3));
+
+assertEqualsAsync("[4,5,6]",
+    () => (function() {
+      return (async () => {
+        return JSON.stringify([...await arguments]) })();
+      })(4, 5, 6));
diff --git a/test/mjsunit/harmony/async-arrow-lexical-new.target.js b/test/mjsunit/harmony/async-arrow-lexical-new.target.js
new file mode 100644
index 0000000..72b29e6
--- /dev/null
+++ b/test/mjsunit/harmony/async-arrow-lexical-new.target.js
@@ -0,0 +1,43 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-async-await --allow-natives-syntax
+
+function assertEqualsAsync(expected, run, msg) {
+  var actual;
+  var hadValue = false;
+  var hadError = false;
+  var promise = run();
+
+  if (typeof promise !== "object" || typeof promise.then !== "function") {
+    throw new MjsUnitAssertionError(
+        "Expected " + run.toString() +
+        " to return a Promise, but it returned " + PrettyPrint(promise));
+  }
+
+  promise.then(function(value) { hadValue = true; actual = value; },
+               function(error) { hadError = true; actual = error; });
+
+  assertFalse(hadValue || hadError);
+
+  %RunMicrotasks();
+
+  if (hadError) throw actual;
+
+  assertTrue(
+      hadValue, "Expected '" + run.toString() + "' to produce a value");
+
+  assertEquals(expected, actual, msg);
+};
+
+class BaseClass {
+  constructor() {
+    return async () => new.target;
+  }
+}
+
+class ChildClass extends BaseClass {}
+
+assertEqualsAsync(BaseClass, () => new BaseClass()());
+assertEqualsAsync(ChildClass, () => new ChildClass()());
diff --git a/test/mjsunit/harmony/async-arrow-lexical-super.js b/test/mjsunit/harmony/async-arrow-lexical-super.js
new file mode 100644
index 0000000..78f5d55
--- /dev/null
+++ b/test/mjsunit/harmony/async-arrow-lexical-super.js
@@ -0,0 +1,58 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-async-await --allow-natives-syntax
+
+function assertEqualsAsync(expected, run, msg) {
+  var actual;
+  var hadValue = false;
+  var hadError = false;
+  var promise = run();
+
+  if (typeof promise !== "object" || typeof promise.then !== "function") {
+    throw new MjsUnitAssertionError(
+        "Expected " + run.toString() +
+        " to return a Promise, but it returned " + PrettyPrint(promise));
+  }
+
+  promise.then(function(value) { hadValue = true; actual = value; },
+               function(error) { hadError = true; actual = error; });
+
+  assertFalse(hadValue || hadError);
+
+  %RunMicrotasks();
+
+  if (hadError) throw actual;
+
+  assertTrue(
+      hadValue, "Expected '" + run.toString() + "' to produce a value");
+
+  assertEquals(expected, actual, msg);
+};
+
+class BaseClass {
+  constructor(x) {
+    this.name_ = x;
+  }
+  get name() { return this.name_; }
+};
+
+class DeferredSuperCall extends BaseClass {
+  constructor(x) {
+    return async() => super(x);
+  }
+};
+
+assertEqualsAsync(
+  "LexicalSuperCall",
+  () => new DeferredSuperCall("LexicalSuperCall")().then(x => x.name));
+
+
+class DeferredSuperProperty extends BaseClass {
+  deferredName() { return async() => super.name; }
+};
+
+assertEqualsAsync(
+  "LexicalSuperProperty",
+  () => new DeferredSuperProperty("LexicalSuperProperty").deferredName()());
diff --git a/test/mjsunit/harmony/async-arrow-lexical-this.js b/test/mjsunit/harmony/async-arrow-lexical-this.js
new file mode 100644
index 0000000..182db47
--- /dev/null
+++ b/test/mjsunit/harmony/async-arrow-lexical-this.js
@@ -0,0 +1,48 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-async-await --allow-natives-syntax
+
+function assertEqualsAsync(expected, run, msg) {
+  var actual;
+  var hadValue = false;
+  var hadError = false;
+  var promise = run();
+
+  if (typeof promise !== "object" || typeof promise.then !== "function") {
+    throw new MjsUnitAssertionError(
+        "Expected " + run.toString() +
+        " to return a Promise, but it returned " + PrettyPrint(promise));
+  }
+
+  promise.then(function(value) { hadValue = true; actual = value; },
+               function(error) { hadError = true; actual = error; });
+
+  assertFalse(hadValue || hadError);
+
+  %RunMicrotasks();
+
+  if (hadError) throw actual;
+
+  assertTrue(
+      hadValue, "Expected '" + run.toString() + "' to produce a value");
+
+  assertEquals(expected, actual, msg);
+};
+
+var O = {
+  [Symbol.toStringTag]: "LexicalThis",
+  run(n) {
+    return async passFail => `${n}. ${passFail}: ${this}`;
+  },
+};
+
+assertEqualsAsync("1. PASS: [object LexicalThis]", () => O.run(1)("PASS"));
+
+var O2 = {
+  [Symbol.toStringTag]: "LexicalThis",
+  run: O.run(2)
+};
+
+assertEqualsAsync("2. PASS: [object LexicalThis]", () => O2.run("PASS"));
diff --git a/test/mjsunit/harmony/async-await-basic.js b/test/mjsunit/harmony/async-await-basic.js
new file mode 100644
index 0000000..d0888ea
--- /dev/null
+++ b/test/mjsunit/harmony/async-await-basic.js
@@ -0,0 +1,347 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-async-await --allow-natives-syntax
+
+// Do not install `AsyncFunction` constructor on global object
+
+function assertThrowsAsync(run, errorType, message) {
+  var actual;
+  var hadValue = false;
+  var hadError = false;
+  var promise = run();
+
+  if (typeof promise !== "object" || typeof promise.then !== "function") {
+    throw new MjsUnitAssertionError(
+        "Expected " + run.toString() +
+        " to return a Promise, but it returned " + PrettyPrint(promise));
+  }
+
+  promise.then(function(value) { hadValue = true; actual = value; },
+               function(error) { hadError = true; actual = error; });
+
+  assertFalse(hadValue || hadError);
+
+  %RunMicrotasks();
+
+  if (!hadError) {
+    throw new MjsUnitAssertionError(
+        "Expected " + run + "() to throw " + errorType.name +
+        ", but did not throw.");
+  }
+  if (!(actual instanceof errorType))
+    throw new MjsUnitAssertionError(
+        "Expected " + run + "() to throw " + errorType.name +
+        ", but threw '" + actual + "'");
+  if (message !== void 0 && actual.message !== message)
+    throw new MjsUnitAssertionError(
+        "Expected " + run + "() to throw '" + message + "', but threw '" +
+        actual.message + "'");
+};
+
+function assertEqualsAsync(expected, run, msg) {
+  var actual;
+  var hadValue = false;
+  var hadError = false;
+  var promise = run();
+
+  if (typeof promise !== "object" || typeof promise.then !== "function") {
+    throw new MjsUnitAssertionError(
+        "Expected " + run.toString() +
+        " to return a Promise, but it returned " + PrettyPrint(promise));
+  }
+
+  promise.then(function(value) { hadValue = true; actual = value; },
+               function(error) { hadError = true; actual = error; });
+
+  assertFalse(hadValue || hadError);
+
+  %RunMicrotasks();
+
+  if (hadError) throw actual;
+
+  assertTrue(
+      hadValue, "Expected '" + run.toString() + "' to produce a value");
+
+  assertEquals(expected, actual, msg);
+};
+
+assertEquals(undefined, this.AsyncFunction);
+let AsyncFunction = (async function() {}).constructor;
+
+// Let functionPrototype be the intrinsic object %AsyncFunctionPrototype%.
+async function asyncFunctionForProto() {}
+assertEquals(AsyncFunction.prototype,
+             Object.getPrototypeOf(asyncFunctionForProto));
+assertEquals(AsyncFunction.prototype,
+             Object.getPrototypeOf(async function() {}));
+assertEquals(AsyncFunction.prototype, Object.getPrototypeOf(async () => {}));
+assertEquals(AsyncFunction.prototype,
+             Object.getPrototypeOf({ async method() {} }.method));
+assertEquals(AsyncFunction.prototype, Object.getPrototypeOf(AsyncFunction()));
+assertEquals(AsyncFunction.prototype,
+             Object.getPrototypeOf(new AsyncFunction()));
+
+// AsyncFunctionCreate does not produce an object with a Prototype
+assertEquals(undefined, asyncFunctionForProto.prototype);
+assertEquals(false, asyncFunctionForProto.hasOwnProperty("prototype"));
+assertEquals(undefined, (async function() {}).prototype);
+assertEquals(false, (async function() {}).hasOwnProperty("prototype"));
+assertEquals(undefined, (async() => {}).prototype);
+assertEquals(false, (async() => {}).hasOwnProperty("prototype"));
+assertEquals(undefined, ({ async method() {} }).method.prototype);
+assertEquals(false, ({ async method() {} }).method.hasOwnProperty("prototype"));
+assertEquals(undefined, AsyncFunction().prototype);
+assertEquals(false, AsyncFunction().hasOwnProperty("prototype"));
+assertEquals(undefined, (new AsyncFunction()).prototype);
+assertEquals(false, (new AsyncFunction()).hasOwnProperty("prototype"));
+
+assertEquals(1, async function(a) { await 1; }.length);
+assertEquals(2, async function(a, b) { await 1; }.length);
+assertEquals(1, async function(a, b = 2) { await 1; }.length);
+assertEquals(2, async function(a, b, ...c) { await 1; }.length);
+
+assertEquals(1, (async(a) => await 1).length);
+assertEquals(2, (async(a, b) => await 1).length);
+assertEquals(1, (async(a, b = 2) => await 1).length);
+assertEquals(2, (async(a, b, ...c) => await 1).length);
+
+assertEquals(1, ({ async f(a) { await 1; } }).f.length);
+assertEquals(2, ({ async f(a, b) { await 1; } }).f.length);
+assertEquals(1, ({ async f(a, b = 2) { await 1; } }).f.length);
+assertEquals(2, ({ async f(a, b, ...c) { await 1; } }).f.length);
+
+assertEquals(1, AsyncFunction("a", "await 1").length);
+assertEquals(2, AsyncFunction("a", "b", "await 1").length);
+assertEquals(1, AsyncFunction("a", "b = 2", "await 1").length);
+assertEquals(2, AsyncFunction("a", "b", "...c", "await 1").length);
+
+assertEquals(1, (new AsyncFunction("a", "await 1")).length);
+assertEquals(2, (new AsyncFunction("a", "b", "await 1")).length);
+assertEquals(1, (new AsyncFunction("a", "b = 2", "await 1")).length);
+assertEquals(2, (new AsyncFunction("a", "b", "...c", "await 1")).length);
+
+// AsyncFunction.prototype[ @@toStringTag ]
+var descriptor =
+    Object.getOwnPropertyDescriptor(AsyncFunction.prototype,
+                                    Symbol.toStringTag);
+assertEquals("AsyncFunction", descriptor.value);
+assertEquals(false, descriptor.enumerable);
+assertEquals(false, descriptor.writable);
+assertEquals(true, descriptor.configurable);
+
+assertEquals(1, AsyncFunction.length);
+
+// Let F be ! FunctionAllocate(functionPrototype, Strict, "non-constructor")
+async function asyncNonConstructorDecl() {}
+assertThrows(
+    () => new asyncNonConstructorDecl(), TypeError);
+assertThrows(
+    () => new (async function() {}), TypeError);
+assertThrows(
+    () => new ({ async nonConstructor() {} }).nonConstructor(), TypeError);
+assertThrows(
+    () => new (() => "not a constructor!"), TypeError);
+assertThrows(
+    () => new (AsyncFunction()), TypeError);
+assertThrows(
+    () => new (new AsyncFunction()), TypeError);
+
+// Normal completion
+async function asyncDecl() { return "test"; }
+assertEqualsAsync("test", asyncDecl);
+assertEqualsAsync("test2", async function() { return "test2"; });
+assertEqualsAsync("test3", async () => "test3");
+assertEqualsAsync("test4", () => ({ async f() { return "test4"; } }).f());
+assertEqualsAsync("test5", () => AsyncFunction("no", "return 'test' + no;")(5));
+assertEqualsAsync("test6",
+                  () => (new AsyncFunction("no", "return 'test' + no;"))(6));
+
+class MyError extends Error {};
+
+// Throw completion
+async function asyncDeclThrower(e) { throw new MyError(e); }
+assertThrowsAsync(() => asyncDeclThrower("boom!"), MyError, "boom!");
+assertThrowsAsync(
+  () => (async function(e) { throw new MyError(e); })("boom!!!"),
+  MyError, "boom!!!");
+assertThrowsAsync(
+  () => (async e => { throw new MyError(e) })("boom!!"), MyError, "boom!!");
+assertThrowsAsync(
+  () => ({ async thrower(e) { throw new MyError(e); } }).thrower("boom!1!"),
+  MyError, "boom!1!");
+assertThrowsAsync(
+  () => AsyncFunction("msg", "throw new MyError(msg)")("boom!2!!"),
+  MyError, "boom!2!!");
+assertThrowsAsync(
+  () => (new AsyncFunction("msg", "throw new MyError(msg)"))("boom!2!!!"),
+  MyError, "boom!2!!!");
+
+function resolveLater(value) { return Promise.resolve(value); }
+function rejectLater(error) { return Promise.reject(error); }
+
+// Resume after Normal completion
+var log = [];
+async function resumeAfterNormal(value) {
+  log.push("start:" + value);
+  value = await resolveLater(value + 1);
+  log.push("resume:" + value);
+  value = await resolveLater(value + 1);
+  log.push("resume:" + value);
+  return value + 1;
+}
+
+assertEqualsAsync(4, () => resumeAfterNormal(1));
+assertEquals("start:1 resume:2 resume:3", log.join(" "));
+
+var O = {
+  async resumeAfterNormal(value) {
+    log.push("start:" + value);
+    value = await resolveLater(value + 1);
+    log.push("resume:" + value);
+    value = await resolveLater(value + 1);
+    log.push("resume:" + value);
+    return value + 1;
+  }
+};
+log = [];
+assertEqualsAsync(5, () => O.resumeAfterNormal(2));
+assertEquals("start:2 resume:3 resume:4", log.join(" "));
+
+var resumeAfterNormalArrow = async (value) => {
+  log.push("start:" + value);
+  value = await resolveLater(value + 1);
+  log.push("resume:" + value);
+  value = await resolveLater(value + 1);
+  log.push("resume:" + value);
+  return value + 1;
+};
+log = [];
+assertEqualsAsync(6, () => resumeAfterNormalArrow(3));
+assertEquals("start:3 resume:4 resume:5", log.join(" "));
+
+var resumeAfterNormalEval = AsyncFunction("value", `
+    log.push("start:" + value);
+    value = await resolveLater(value + 1);
+    log.push("resume:" + value);
+    value = await resolveLater(value + 1);
+    log.push("resume:" + value);
+    return value + 1;`);
+log = [];
+assertEqualsAsync(7, () => resumeAfterNormalEval(4));
+assertEquals("start:4 resume:5 resume:6", log.join(" "));
+
+var resumeAfterNormalNewEval = new AsyncFunction("value", `
+    log.push("start:" + value);
+    value = await resolveLater(value + 1);
+    log.push("resume:" + value);
+    value = await resolveLater(value + 1);
+    log.push("resume:" + value);
+    return value + 1;`);
+log = [];
+assertEqualsAsync(8, () => resumeAfterNormalNewEval(5));
+assertEquals("start:5 resume:6 resume:7", log.join(" "));
+
+// Resume after Throw completion
+async function resumeAfterThrow(value) {
+  log.push("start:" + value);
+  try {
+    value = await rejectLater("throw1");
+  } catch (e) {
+    log.push("resume:" + e);
+  }
+  try {
+    value = await rejectLater("throw2");
+  } catch (e) {
+    log.push("resume:" + e);
+  }
+  return value + 1;
+}
+
+log = [];
+assertEqualsAsync(2, () => resumeAfterThrow(1));
+assertEquals("start:1 resume:throw1 resume:throw2", log.join(" "));
+
+var O = {
+  async resumeAfterThrow(value) {
+    log.push("start:" + value);
+    try {
+      value = await rejectLater("throw1");
+    } catch (e) {
+      log.push("resume:" + e);
+    }
+    try {
+      value = await rejectLater("throw2");
+    } catch (e) {
+      log.push("resume:" + e);
+    }
+    return value + 1;
+  }
+}
+log = [];
+assertEqualsAsync(3, () => O.resumeAfterThrow(2));
+assertEquals("start:2 resume:throw1 resume:throw2", log.join(" "));
+
+var resumeAfterThrowArrow = async (value) => {
+  log.push("start:" + value);
+  try {
+    value = await rejectLater("throw1");
+  } catch (e) {
+    log.push("resume:" + e);
+  }
+  try {
+    value = await rejectLater("throw2");
+  } catch (e) {
+    log.push("resume:" + e);
+  }
+ return value + 1;
+};
+
+log = [];
+
+assertEqualsAsync(4, () => resumeAfterThrowArrow(3));
+assertEquals("start:3 resume:throw1 resume:throw2", log.join(" "));
+
+var resumeAfterThrowEval = AsyncFunction("value", `
+    log.push("start:" + value);
+    try {
+      value = await rejectLater("throw1");
+    } catch (e) {
+      log.push("resume:" + e);
+    }
+    try {
+      value = await rejectLater("throw2");
+    } catch (e) {
+      log.push("resume:" + e);
+    }
+    return value + 1;`);
+log = [];
+assertEqualsAsync(5, () => resumeAfterThrowEval(4));
+assertEquals("start:4 resume:throw1 resume:throw2", log.join(" "));
+
+var resumeAfterThrowNewEval = new AsyncFunction("value", `
+    log.push("start:" + value);
+    try {
+      value = await rejectLater("throw1");
+    } catch (e) {
+      log.push("resume:" + e);
+    }
+    try {
+      value = await rejectLater("throw2");
+    } catch (e) {
+      log.push("resume:" + e);
+    }
+    return value + 1;`);
+log = [];
+assertEqualsAsync(6, () => resumeAfterThrowNewEval(5));
+assertEquals("start:5 resume:throw1 resume:throw2", log.join(" "));
+
+async function foo() {}
+assertEquals("async function foo() {}", foo.toString());
+assertEquals("async function () {}", async function() {}.toString());
+assertEquals("async x => x", (async x => x).toString());
+assertEquals("async x => { return x }", (async x => { return x }).toString());
+class AsyncMethod { async foo() { } }
+assertEquals("async foo() { }", Function.prototype.toString.call(AsyncMethod.prototype.foo));
+assertEquals("async foo() { }", Function.prototype.toString.call({async foo() { }}.foo));
diff --git a/test/mjsunit/harmony/atomics.js b/test/mjsunit/harmony/atomics.js
index bf27eb4..e608df3 100644
--- a/test/mjsunit/harmony/atomics.js
+++ b/test/mjsunit/harmony/atomics.js
@@ -16,26 +16,19 @@
   return value;
 }
 
-function toRangeClamped(value) {
-  if (value < this.min) return this.min;
-  if (value > this.max) return this.max;
-  return value;
-}
-
 function makeConstructorObject(constr, min, max, toRange) {
   var o = {constr: constr, min: min, max: max};
-  o.toRange = toRange.bind(o);
+  o.toRange = toRangeWrapped.bind(o);
   return o;
 }
 
 var IntegerTypedArrayConstructors = [
-  makeConstructorObject(Int8Array, -128, 127, toRangeWrapped),
-  makeConstructorObject(Int16Array, -32768, 32767, toRangeWrapped),
-  makeConstructorObject(Int32Array, -0x80000000, 0x7fffffff, toRangeWrapped),
-  makeConstructorObject(Uint8Array, 0, 255, toRangeWrapped),
-  makeConstructorObject(Uint8ClampedArray, 0, 255, toRangeClamped),
-  makeConstructorObject(Uint16Array, 0, 65535, toRangeWrapped),
-  makeConstructorObject(Uint32Array, 0, 0xffffffff, toRangeWrapped),
+  makeConstructorObject(Int8Array, -128, 127),
+  makeConstructorObject(Int16Array, -32768, 32767),
+  makeConstructorObject(Int32Array, -0x80000000, 0x7fffffff),
+  makeConstructorObject(Uint8Array, 0, 255),
+  makeConstructorObject(Uint16Array, 0, 65535),
+  makeConstructorObject(Uint32Array, 0, 0xffffffff),
 ];
 
 (function TestBadArray() {
@@ -44,9 +37,13 @@
   var sab = new SharedArrayBuffer(128);
   var sf32a = new Float32Array(sab);
   var sf64a = new Float64Array(sab);
+  var u8ca = new Uint8ClampedArray(sab);
 
   // Atomic ops required integer shared typed arrays
-  [undefined, 1, 'hi', 3.4, ab, u32a, sab, sf32a, sf64a].forEach(function(o) {
+  var badArrayTypes = [
+    undefined, 1, 'hi', 3.4, ab, u32a, sab, sf32a, sf64a, u8ca
+  ];
+  badArrayTypes.forEach(function(o) {
     assertThrows(function() { Atomics.compareExchange(o, 0, 0, 0); },
                  TypeError);
     assertThrows(function() { Atomics.load(o, 0); }, TypeError);
@@ -129,15 +126,16 @@
 
   var testOp = function(op, ia, index, expectedIndex, name) {
     for (var i = 0; i < ia.length; ++i)
-      ia[i] = 22;
+      ia[i] = i * 2;
 
     ia[expectedIndex] = 0;
-    assertEquals(0, op(ia, index, 0, 0), name);
+    var result = op(ia, index, 0, 0);
+    assertEquals(0, result, name);
     assertEquals(0, ia[expectedIndex], name);
 
     for (var i = 0; i < ia.length; ++i) {
       if (i == expectedIndex) continue;
-      assertEquals(22, ia[i], name);
+      assertEquals(i * 2, ia[i], name);
     }
   };
 
@@ -222,6 +220,24 @@
       }
     })
   });
+
+  // Test Smi range
+  (function () {
+    var sab = new SharedArrayBuffer(4);
+    var i32 = new Int32Array(sab);
+    var u32 = new Uint32Array(sab);
+
+    function testLoad(signedValue, unsignedValue) {
+      u32[0] = unsignedValue;
+      assertEquals(unsignedValue, Atomics.load(u32, 0));
+      assertEquals(signedValue, Atomics.load(i32, 0));
+    }
+
+    testLoad(0x3fffffff,  0x3fffffff); // 2**30-1 (always smi)
+    testLoad(0x40000000,  0x40000000); // 2**30 (smi if signed and 32-bits)
+    testLoad(0x80000000, -0x80000000); // 2**31 (smi if signed and 32-bits)
+    testLoad(0xffffffff, -1);          // 2**31 (smi if signed)
+  });
 })();
 
 (function TestStore() {
@@ -405,7 +421,7 @@
       assertEquals(50, Atomics.compareExchange(sta, 0, v, v), name);
 
       // Store
-      assertEquals(+v, Atomics.store(sta, 0, v), name);
+      assertEquals(v|0, Atomics.store(sta, 0, v), name);
       assertEquals(v|0, sta[0], name);
 
       // Add
diff --git a/test/mjsunit/harmony/do-expressions.js b/test/mjsunit/harmony/do-expressions.js
index b3be4ec..38b68b6 100644
--- a/test/mjsunit/harmony/do-expressions.js
+++ b/test/mjsunit/harmony/do-expressions.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-do-expressions --harmony-sloppy-let --allow-natives-syntax
+// Flags: --harmony-do-expressions --allow-natives-syntax
 
 function returnValue(v) { return v; }
 function MyError() {}
diff --git a/test/mjsunit/harmony/for-in.js b/test/mjsunit/harmony/for-in.js
new file mode 100644
index 0000000..58e343b
--- /dev/null
+++ b/test/mjsunit/harmony/for-in.js
@@ -0,0 +1,9 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-for-in
+
+assertThrows("for (var x = 0 in {});", SyntaxError);
+assertThrows("for (const x = 0 in {});", SyntaxError);
+assertThrows("for (let x = 0 in {});", SyntaxError);
diff --git a/test/mjsunit/harmony/function-sent.js b/test/mjsunit/harmony/function-sent.js
index b3cd644..cd0ca95 100644
--- a/test/mjsunit/harmony/function-sent.js
+++ b/test/mjsunit/harmony/function-sent.js
@@ -49,7 +49,7 @@
     try {
       yield function.sent;
     } finally {
-      return 666;
+      return 23;
     }
   }
 
@@ -77,7 +77,7 @@
     let x = g();
     assertEquals({value: 1, done: false}, x.next(1));
     assertEquals({value: undefined, done: false}, x.next(2));
-    assertEquals({value: 42, done: true}, x.return(42));
+    assertEquals({value: 23, done: true}, x.return(42));
   }
 }
 
diff --git a/test/mjsunit/harmony/generators.js b/test/mjsunit/harmony/generators.js
index df6cec8..895a248 100644
--- a/test/mjsunit/harmony/generators.js
+++ b/test/mjsunit/harmony/generators.js
@@ -2,6 +2,34 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// Flags: --ignition-generators --harmony-do-expressions
+// Flags: --allow-natives-syntax
+
+
+function MaybeOptimizeOrDeoptimize(f) {
+  let x = Math.random();  // --random-seed makes this deterministic
+  if (x <= 0.33) {
+    %OptimizeFunctionOnNextCall(f);
+  } else if (x <= 0.66) {
+    %DeoptimizeFunction(f);
+  }
+}
+
+function Next(generator, ...args) {
+  MaybeOptimizeOrDeoptimize(%GeneratorGetFunction(generator));
+  return generator.next(...args);
+}
+
+function Return(generator, ...args) {
+  MaybeOptimizeOrDeoptimize(%GeneratorGetFunction(generator));
+  return generator.return(...args);
+}
+
+function Throw(generator, ...args) {
+  MaybeOptimizeOrDeoptimize(%GeneratorGetFunction(generator));
+  return generator.throw(...args);
+}
+
 
 { // yield in try-catch
 
@@ -9,19 +37,19 @@
     try {yield 1} catch (error) {assertEquals("caught", error)}
   };
 
-  assertThrowsEquals(() => g().throw("not caught"), "not caught");
+  assertThrowsEquals(() => Throw(g(), "not caught"), "not caught");
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: undefined, done: true}, x.throw("caught"));
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Throw(x, "caught"));
   }
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: undefined, done: true}, x.next());
-    assertThrowsEquals(() => x.throw("not caught"), "not caught");
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Next(x));
+    assertThrowsEquals(() => Throw(x, "not caught"), "not caught");
   }
 }
 
@@ -31,19 +59,19 @@
 
   {
     let x = g();
-    assertEquals({value: 43, done: false}, x.next());
-    assertEquals({value: 42, done: true}, x.next());
+    assertEquals({value: 43, done: false}, Next(x));
+    assertEquals({value: 42, done: true}, Next(x));
   }
 }
 
 
 { // return that doesn't close
   let x;
-  let g = function*() { try {return 42} finally {x.throw(666)} };
+  let g = function*() { try {return 42} finally {Throw(x, 666)} };
 
   {
     x = g();
-    assertThrows(() => x.next(), TypeError);  // still executing
+    assertThrows(() => Next(x), TypeError);  // still executing
   }
 }
 
@@ -54,42 +82,42 @@
 
   { // "return" closes at suspendedStart
     let x = g();
-    assertEquals({value: 666, done: true}, x.return(666));
-    assertEquals({value: undefined, done: true}, x.next(42));
-    assertThrowsEquals(() => x.throw(43), 43);
-    assertEquals({value: 42, done: true}, x.return(42));
+    assertEquals({value: 666, done: true}, Return(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x, 42));
+    assertThrowsEquals(() => Throw(x, 43), 43);
+    assertEquals({value: 42, done: true}, Return(x, 42));
   }
 
   { // "throw" closes at suspendedStart
     let x = g();
-    assertThrowsEquals(() => x.throw(666), 666);
-    assertEquals({value: undefined, done: true}, x.next(42));
-    assertEquals({value: 43, done: true}, x.return(43));
-    assertThrowsEquals(() => x.throw(44), 44);
+    assertThrowsEquals(() => Throw(x, 666), 666);
+    assertEquals({value: undefined, done: true}, Next(x, 42));
+    assertEquals({value: 43, done: true}, Return(x, 43));
+    assertThrowsEquals(() => Throw(x, 44), 44);
   }
 
   { // "next" closes at suspendedYield
     let x = g();
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 13, done: true}, x.next(666));
-    assertEquals({value: undefined, done: true}, x.next(666));
-    assertThrowsEquals(() => x.throw(666), 666);
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 13, done: true}, Next(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x, 666));
+    assertThrowsEquals(() => Throw(x, 666), 666);
   }
 
   { // "return" closes at suspendedYield
     let x = g();
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 13, done: true}, x.return(666));
-    assertEquals({value: undefined, done: true}, x.next(666));
-    assertEquals({value: 666, done: true}, x.return(666));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 13, done: true}, Return(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x, 666));
+    assertEquals({value: 666, done: true}, Return(x, 666));
   }
 
   { // "throw" closes at suspendedYield
     let x = g();
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 13, done: true}, x.throw(666));
-    assertThrowsEquals(() => x.throw(666), 666);
-    assertEquals({value: undefined, done: true}, x.next(666));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 13, done: true}, Throw(x, 666));
+    assertThrowsEquals(() => Throw(x, 666), 666);
+    assertEquals({value: undefined, done: true}, Next(x, 666));
   }
 }
 
@@ -100,45 +128,45 @@
 
   { // "return" closes at suspendedStart
     let x = g();
-    assertEquals({value: 666, done: true}, x.return(666));
-    assertEquals({value: undefined, done: true}, x.next(42));
-    assertThrowsEquals(() => x.throw(43), 43);
-    assertEquals({value: 42, done: true}, x.return(42));
+    assertEquals({value: 666, done: true}, Return(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x, 42));
+    assertThrowsEquals(() => Throw(x, 43), 43);
+    assertEquals({value: 42, done: true}, Return(x, 42));
   }
 
   { // "throw" closes at suspendedStart
     let x = g();
-    assertThrowsEquals(() => x.throw(666), 666);
-    assertEquals({value: undefined, done: true}, x.next(42));
-    assertEquals({value: 43, done: true}, x.return(43));
-    assertThrowsEquals(() => x.throw(44), 44);
+    assertThrowsEquals(() => Throw(x, 666), 666);
+    assertEquals({value: undefined, done: true}, Next(x, 42));
+    assertEquals({value: 43, done: true}, Return(x, 43));
+    assertThrowsEquals(() => Throw(x, 44), 44);
   }
 
   { // "next" closes at suspendedYield
     let x = g();
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: undefined, done: true}, x.next(666));
-    assertEquals({value: undefined, done: true}, x.next(666));
-    assertThrowsEquals(() => x.throw(666), 666);
-    assertEquals({value: 42, done: true}, x.return(42));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Next(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x, 666));
+    assertThrowsEquals(() => Throw(x, 666), 666);
+    assertEquals({value: 42, done: true}, Return(x, 42));
   }
 
   { // "return" closes at suspendedYield
     let x = g();
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 666, done: true}, x.return(666));
-    assertEquals({value: undefined, done: true}, x.next(666));
-    assertThrowsEquals(() => x.throw(44), 44);
-    assertEquals({value: 42, done: true}, x.return(42));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 666, done: true}, Return(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x, 666));
+    assertThrowsEquals(() => Throw(x, 44), 44);
+    assertEquals({value: 42, done: true}, Return(x, 42));
   }
 
   { // "throw" closes at suspendedYield
     let x = g();
-    assertEquals({value: 42, done: false}, x.next());
-    assertThrowsEquals(() => x.throw(666), 666);
-    assertEquals({value: undefined, done: true}, x.next(666));
-    assertThrowsEquals(() => x.throw(666), 666);
-    assertEquals({value: 42, done: true}, x.return(42));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertThrowsEquals(() => Throw(x, 666), 666);
+    assertEquals({value: undefined, done: true}, Next(x, 666));
+    assertThrowsEquals(() => Throw(x, 666), 666);
+    assertEquals({value: 42, done: true}, Return(x, 42));
   }
 }
 
@@ -149,17 +177,17 @@
 
   {
     let x = g();
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 43, done: false}, x.return(666));
-    assertEquals({value: 13, done: true}, x.next());
-    assertEquals({value: 666, done: true}, x.return(666));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Return(x, 666));
+    assertEquals({value: 13, done: true}, Next(x));
+    assertEquals({value: 666, done: true}, Return(x, 666));
   }
 
   {
     let x = g();
-    assertEquals({value: 666, done: true}, x.return(666));
-    assertEquals({value: undefined, done: true}, x.next());
-    assertEquals({value: 666, done: true}, x.return(666));
+    assertEquals({value: 666, done: true}, Return(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x));
+    assertEquals({value: 666, done: true}, Return(x, 666));
   }
 }
 
@@ -170,17 +198,17 @@
 
   {
     let x = g();
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 43, done: false}, x.return(666));
-    assertEquals({value: 666, done: true}, x.next());
-    assertEquals({value: 5, done: true}, x.return(5));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Return(x, 666));
+    assertEquals({value: 666, done: true}, Next(x));
+    assertEquals({value: 5, done: true}, Return(x, 5));
   }
 
   {
     let x = g();
-    assertEquals({value: 666, done: true}, x.return(666));
-    assertEquals({value: undefined, done: true}, x.next());
-    assertEquals({value: 666, done: true}, x.return(666));
+    assertEquals({value: 666, done: true}, Return(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x));
+    assertEquals({value: 666, done: true}, Return(x, 666));
   }
 }
 
@@ -192,29 +220,29 @@
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 43, done: false}, x.next(666));
-    assertEquals({value: 13, done: false}, x.next());
-    assertEquals({value: undefined, done: true}, x.next());
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Next(x, 666));
+    assertEquals({value: 13, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Next(x));
   }
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 43, done: false}, x.return(666));
-    assertEquals({value: 13, done: false}, x.next());
-    assertEquals({value: undefined, done: true}, x.next());
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Return(x, 666));
+    assertEquals({value: 13, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Next(x));
   }
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 43, done: false}, x.throw(666));
-    assertEquals({value: 13, done: false}, x.next());
-    assertEquals({value: undefined, done: true}, x.next());
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Throw(x, 666));
+    assertEquals({value: 13, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Next(x));
   }
 }
 
@@ -226,28 +254,28 @@
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 43, done: false}, x.next(666));
-    assertEquals({value: undefined, done: false}, x.next());
-    assertEquals({value: undefined, done: true}, x.next());
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Next(x, 666));
+    assertEquals({value: undefined, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Next(x));
   }
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 43, done: false}, x.return(44));
-    assertEquals({value: 44, done: false}, x.next());
-    assertEquals({value: undefined, done: true}, x.next());
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Return(x, 44));
+    assertEquals({value: 44, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Next(x));
   }
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: 42, done: false}, x.next());
-    assertEquals({value: 43, done: false}, x.throw(666));
-    assertThrowsEquals(() => x.next(), 666);
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Throw(x, 666));
+    assertThrowsEquals(() => Next(x), 666);
   }
 }
 
@@ -265,8 +293,370 @@
 
   {
     let x = g();
-    assertEquals({value: 1, done: false}, x.next());
-    assertEquals({value: 2, done: false}, x.next());
-    assertEquals({value: 42, done: true}, x.return(42));
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: 2, done: false}, Next(x));
+    assertEquals({value: 42, done: true}, Return(x, 42));
   }
 }
+
+
+// More or less random tests from here on.
+
+
+{
+  function* foo() { }
+  let g = foo();
+  assertEquals({value: undefined, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo() { return new.target }
+  let g = foo();
+  assertEquals({value: undefined, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo() { throw 666; return 42}
+  let g = foo();
+  assertThrowsEquals(() => Next(g), 666);
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo(a) { return a; }
+  let g = foo(42);
+  assertEquals({value: 42, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo(a) { a.iwashere = true; return a; }
+  let x = {};
+  let g = foo(x);
+  assertEquals({value: {iwashere: true}, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  let a = 42;
+  function* foo() { return a; }
+  let g = foo();
+  assertEquals({value: 42, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  let a = 40;
+  function* foo(b) { return a + b; }
+  let g = foo(2);
+  assertEquals({value: 42, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  let a = 40;
+  function* foo(b) { a--; b++; return a + b; }
+  let g = foo(2);
+  assertEquals({value: 42, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  let g;
+  function* foo() { Next(g) }
+  g = foo();
+  assertThrows(() => Next(g), TypeError);
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo() { yield 2; yield 3; yield 4 }
+  g = foo();
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 4, done: false}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+
+{
+  function* foo() { yield 2; if (true) { yield 3 }; yield 4 }
+  g = foo();
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 4, done: false}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo() { yield 2; if (true) { yield 3; yield 4 } }
+  g = foo();
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 4, done: false}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo() { yield 2; if (false) { yield 3 }; yield 4 }
+  g = foo();
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 4, done: false}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo() { yield 2; while (true) { yield 3 }; yield 4 }
+  g = foo();
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+}
+
+{
+  function* foo() { yield 2; (yield 3) + 42; yield 4 }
+  g = foo();
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 4, done: false}, Next(g));
+}
+
+{
+  function* foo() { yield 2; (do {yield 3}) + 42; yield 4 }
+  g = foo();
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 4, done: false}, Next(g));
+}
+
+{
+  function* foo() { yield 2; return (yield 3) + 42; yield 4 }
+  g = foo();
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 42, done: true}, Next(g, 0));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  let x = 42;
+  function* foo() {
+    yield x;
+    for (let x in {a: 1, b: 2}) {
+      let i = 2;
+      yield x;
+      yield i;
+      do {
+        yield i;
+      } while (i-- > 0);
+    }
+    yield x;
+    return 5;
+  }
+  g = foo();
+  assertEquals({value: 42, done: false}, Next(g));
+  assertEquals({value: 'a', done: false}, Next(g));
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 1, done: false}, Next(g));
+  assertEquals({value: 0, done: false}, Next(g));
+  assertEquals({value: 'b', done: false}, Next(g));
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 1, done: false}, Next(g));
+  assertEquals({value: 0, done: false}, Next(g));
+  assertEquals({value: 42, done: false}, Next(g));
+  assertEquals({value: 5, done: true}, Next(g));
+}
+
+{
+  let a = 3;
+  function* foo() {
+    let b = 4;
+    yield 1;
+    { let c = 5; yield 2; yield a; yield b; yield c; }
+  }
+  g = foo();
+  assertEquals({value: 1, done: false}, Next(g));
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 3, done: false}, Next(g));
+  assertEquals({value: 4, done: false}, Next(g));
+  assertEquals({value: 5, done: false}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo() {
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+    yield 42;
+  }
+  g = foo();
+  for (let i = 0; i < 100; ++i) {
+    assertEquals({value: 42, done: false}, i%25 === 0 ? Next(g) : g.next());
+  }
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  function* foo() {
+    for (let i = 0; i < 3; ++i) {
+      let j = 0
+      yield i;
+      do {
+        yield (i + 10);
+      } while (++j < 2);
+    }
+  }
+  g = foo();
+  assertEquals({value: 0, done: false}, Next(g));
+  assertEquals({value: 10, done: false}, Next(g));
+  assertEquals({value: 10, done: false}, Next(g));
+  assertEquals({value: 1, done: false}, Next(g));
+  assertEquals({value: 11, done: false}, Next(g));
+  assertEquals({value: 11, done: false}, Next(g));
+  assertEquals({value: 2, done: false}, Next(g));
+  assertEquals({value: 12, done: false}, Next(g));
+  assertEquals({value: 12, done: false}, Next(g));
+  assertEquals({value: undefined, done: true}, Next(g));
+}
+
+{
+  let foo = function*() {
+    while (true) {
+      if (true || false) yield 42;
+      continue;
+    }
+  }
+  g = foo();
+  assertEquals({value: 42, done: false}, Next(g));
+  assertEquals({value: 42, done: false}, Next(g));
+  assertEquals({value: 42, done: false}, Next(g));
+}
+
+{
+  let foo = function*() {
+    yield* (function*() { yield 42; }());
+    assertUnreachable();
+  }
+  g = foo();
+  assertEquals({value: 42, done: false}, Next(g));
+  assertEquals({value: 23, done: true}, Return(g, 23));
+}
+
+{
+  let iterable = {
+    [Symbol.iterator]() {
+      return { next() { return {} } };
+    }
+  };
+  let foo = function*() { yield* iterable };
+  g = foo();
+  g.next();
+  assertThrows(() => Throw(g), TypeError);
+}
diff --git a/test/mjsunit/harmony/harmony-string-pad-end.js b/test/mjsunit/harmony/harmony-string-pad-end.js
index 3292e94..03e5aea 100644
--- a/test/mjsunit/harmony/harmony-string-pad-end.js
+++ b/test/mjsunit/harmony/harmony-string-pad-end.js
@@ -67,8 +67,19 @@
 (function TestFillerToString() {
   assertEquals(".         ", ".".padEnd(10));
   assertEquals(".         ", ".".padEnd(10, undefined));
-  assertEquals(".         ", ".".padEnd(10, { toString() { return ""; } }));
   assertEquals(".nullnulln", ".".padEnd(10, null));
+  assertEquals(".XXXXXXXXX", ".".padEnd(10, { toString() { return "X"; } }));
+  assertEquals(
+      ".111111111",
+      ".".padEnd(10, { toString: undefined, valueOf() { return 1; } }));
+})();
+
+
+(function TestFillerEmptyString() {
+  assertEquals(".", ".".padEnd(10, ""));
+  assertEquals(".", ".".padEnd(10, { toString() { return ""; } }));
+  assertEquals(
+      ".", ".".padEnd(10, { toString: undefined, valueOf() { return ""; } }));
 })();
 
 
diff --git a/test/mjsunit/harmony/harmony-string-pad-start.js b/test/mjsunit/harmony/harmony-string-pad-start.js
index 2b2d004..33bf8f3 100644
--- a/test/mjsunit/harmony/harmony-string-pad-start.js
+++ b/test/mjsunit/harmony/harmony-string-pad-start.js
@@ -67,8 +67,19 @@
 (function TestFillerToString() {
   assertEquals("         .", ".".padStart(10));
   assertEquals("         .", ".".padStart(10, undefined));
-  assertEquals("         .", ".".padStart(10, { toString() { return ""; } }));
   assertEquals("nullnulln.", ".".padStart(10, null));
+  assertEquals("XXXXXXXXX.", ".".padStart(10, { toString() { return "X"; } }));
+  assertEquals(
+      "111111111.",
+      ".".padStart(10, { toString: undefined, valueOf() { return 1; } }));
+})();
+
+
+(function TestFillerEmptyString() {
+  assertEquals(".", ".".padStart(10, ""));
+  assertEquals(".", ".".padStart(10, { toString() { return ""; } }));
+  assertEquals(
+      ".", ".".padStart(10, { toString: undefined, valueOf() { return ""; } }));
 })();
 
 
diff --git a/test/mjsunit/harmony/instanceof-es6.js b/test/mjsunit/harmony/instanceof-es6.js
index 60e7ee2..4971c9c 100644
--- a/test/mjsunit/harmony/instanceof-es6.js
+++ b/test/mjsunit/harmony/instanceof-es6.js
@@ -48,3 +48,22 @@
 
 // OrdinaryHasInstance passed a non-object argument returns false.
 assertEquals(Function.prototype[Symbol.hasInstance].call(Array, 0), false);
+
+// Cannot assign to @@hasInstance with %FunctionPrototype%.
+(function() {
+  "use strict";
+  function F() {}
+  assertThrows(function() { F[Symbol.hasInstance] = (v) => v }, TypeError);
+})();
+
+// Check correct invocation of @@hasInstance handler on function instance.
+(function() {
+  function F() {}
+  var counter = 0;
+  var proto = Object.getPrototypeOf(F);
+  Object.setPrototypeOf(F, null);
+  F[Symbol.hasInstance] = function(v) { ++counter; return true };
+  Object.setPrototypeOf(F, proto);
+  assertTrue(1 instanceof F);
+  assertEquals(1, counter);
+})();
diff --git a/test/mjsunit/harmony/iterator-close.js b/test/mjsunit/harmony/iterator-close.js
index 09e0153..03cdeac 100644
--- a/test/mjsunit/harmony/iterator-close.js
+++ b/test/mjsunit/harmony/iterator-close.js
@@ -1007,6 +1007,26 @@
   assertThrowsEquals(() => {
     (([x]) => x)(g());
   }, 666);
+
+  assertThrowsEquals(() => {
+    var [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    let [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    const [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    (([...x]) => x)(g());
+  }, 666);
 }
 
 
@@ -1051,6 +1071,26 @@
   assertThrowsEquals(() => {
     (([x]) => x)(g());
   }, 666);
+
+  assertThrowsEquals(() => {
+    var [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    let [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    const [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    (([...x]) => x)(g());
+  }, 666);
 }
 
 
@@ -1095,6 +1135,26 @@
   assertThrowsEquals(() => {
     (([x]) => x)(g());
   }, 666);
+
+  assertThrowsEquals(() => {
+    var [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    let [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    const [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    [...x] = g();
+  }, 666);
+
+  assertThrowsEquals(() => {
+    (([...x]) => x)(g());
+  }, 666);
 }
 
 
@@ -1238,3 +1298,75 @@
   }, 5);
   assertEquals([1], log);
 }
+
+
+// yield*, argument's return method is "undefined".
+function TestYieldStarWithoutReturn(get_iterable) {
+  assertTrue(get_iterable().return == undefined);
+
+  function* g() { yield* get_iterable() }
+
+  {
+    let gen = g();
+    assertEquals({value: 1, done: false}, gen.next());
+    assertEquals({value: undefined, done: true}, gen.return());
+  }
+
+  assertEquals(42, (() => {
+    for (let x of g()) break;
+    return 42;
+  })());
+
+  assertEquals(42, (() => {
+    for (let x of g()) return 42;
+  })());
+
+  assertThrowsEquals(() => {
+    for (let x of g()) throw 42;
+  }, 42);
+}
+{
+  let get_iterable1 = () => [1, 2];
+  let get_iterable2 = function*() { yield 1; yield 2 };
+  get_iterable2.prototype.return = null;
+  TestYieldStarWithoutReturn(get_iterable1);
+  TestYieldStarWithoutReturn(get_iterable2);
+}
+
+
+// yield*, argument's return method is defined.
+{
+  let get_iterable = function*() { yield 1; yield 2 };
+  const obj = {};
+  get_iterable.prototype.return = (...args) => obj;
+
+  function* g() { yield* get_iterable() }
+
+  {
+    let gen = g();
+    assertEquals({value: 1, done: false}, gen.next());
+    assertSame(obj, gen.return());
+    assertSame(obj, gen.return());
+    assertSame(obj, gen.return());
+    assertEquals({value: 2, done: false}, gen.next());
+    assertSame(obj, gen.return());
+    assertSame(obj, gen.return());
+    assertSame(obj, gen.return());
+    assertEquals({value: undefined, done: true}, gen.next());
+    assertEquals({value: undefined, done: true}, gen.return());
+    assertEquals({value: undefined, done: true}, gen.return());
+  }
+
+  assertEquals(42, (() => {
+    for (let x of g()) break;
+    return 42;
+  })());
+
+  assertEquals(42, (() => {
+    for (let x of g()) return 42;
+  })());
+
+  assertThrowsEquals(() => {
+    for (let x of g()) throw 42;
+  }, 42);
+}
diff --git a/test/mjsunit/harmony/regexp-property-binary.js b/test/mjsunit/harmony/regexp-property-binary.js
new file mode 100644
index 0000000..d0894b7
--- /dev/null
+++ b/test/mjsunit/harmony/regexp-property-binary.js
@@ -0,0 +1,25 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-regexp-property --harmony-unicode-regexps
+
+function t(re, s) { assertTrue(re.test(s)); }
+function f(re, s) { assertFalse(re.test(s)); }
+
+t(/\p{Bidi_Control}+/u, "\u200E");
+f(/\p{Bidi_C}+/u, "On a dark desert highway, cool wind in my hair");
+t(/\p{AHex}+/u, "DEADBEEF");
+t(/\p{Alphabetic}+/u, "abcdefg");
+t(/\P{Alphabetic}+/u, "1234");
+t(/\p{White_Space}+/u, "\u00A0");
+t(/\p{Uppercase}+/u, "V");
+f(/\p{Lower}+/u, "U");
+t(/\p{Ideo}+/u, "字");
+f(/\p{Ideo}+/u, "x");
+
+assertThrows("/\\p{Hiragana}/u");
+assertThrows("/\\p{Bidi_Class}/u");
+assertThrows("/\\p{Bidi_C=False}/u");
+assertThrows("/\\P{Bidi_Control=Y}/u");
+assertThrows("/\\p{AHex=Yes}/u");
diff --git a/test/mjsunit/harmony/regexp-property-blocks.js b/test/mjsunit/harmony/regexp-property-blocks.js
index d186e98..f41c06e 100644
--- a/test/mjsunit/harmony/regexp-property-blocks.js
+++ b/test/mjsunit/harmony/regexp-property-blocks.js
@@ -7,28 +7,28 @@
 function t(re, s) { assertTrue(re.test(s)); }
 function f(re, s) { assertFalse(re.test(s)); }
 
-t(/\p{InASCII}+/u, ".");
-t(/\p{InASCII}+/u, "supercalifragilisticexpialidocious");
-t(/\p{InBasic_Latin}+/u, ".");
-t(/\p{InBasic_Latin}+/u, "supercalifragilisticexpialidocious");
+t(/\p{Block=ASCII}+/u, ".");
+t(/\p{Block=ASCII}+/u, "supercalifragilisticexpialidocious");
+t(/\p{Block=Basic_Latin}+/u, ".");
+t(/\p{Block=Basic_Latin}+/u, "supercalifragilisticexpialidocious");
 
-t(/\p{InCJK}+/u, "话说天下大势,分久必合,合久必分");
-t(/\p{InCJK_Unified_Ideographs}+/u, "吾庄后有一桃园,花开正盛");
-f(/\p{InCJK}+/u, "おはようございます");
-f(/\p{InCJK_Unified_Ideographs}+/u,
+t(/\p{blk=CJK}+/u, "话说天下大势,分久必合,合久必分");
+t(/\p{blk=CJK_Unified_Ideographs}+/u, "吾庄后有一桃园,花开正盛");
+f(/\p{blk=CJK}+/u, "おはようございます");
+f(/\p{blk=CJK_Unified_Ideographs}+/u,
   "Something is rotten in the state of Denmark");
 
-t(/\p{InLatin_1}+/u, "Wie froh bin ich, daß ich weg bin!");
-f(/\p{InLatin_1_Supplement}+/u, "奔腾千里荡尘埃,渡水登山紫雾开");
-f(/\p{InLatin_1_Sup}+/u, "いただきます");
+t(/\p{blk=Latin_1}+/u, "Wie froh bin ich, daß ich weg bin!");
+f(/\p{blk=Latin_1_Supplement}+/u, "奔腾千里荡尘埃,渡水登山紫雾开");
+f(/\p{blk=Latin_1_Sup}+/u, "いただきます");
 
-t(/\p{InHiragana}/u, "いただきます");
-t(/\p{Hiragana}/u, "\u{1b001}");    // This refers to the script "Hiragana".
-f(/\p{InHiragana}/u, "\u{1b001}");  // This refers to the block "Hiragana".
+t(/\p{blk=Hiragana}/u, "いただきます");
+t(/\p{sc=Hiragana}/u, "\u{1b001}");   // This refers to the script "Hiragana".
+f(/\p{blk=Hiragana}/u, "\u{1b001}");  // This refers to the block "Hiragana".
 
-t(/\p{InGreek_And_Coptic}/u,
+t(/\p{blk=Greek_And_Coptic}/u,
   "ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ");
-t(/\p{InGreek}/u, "μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος");
+t(/\p{blk=Greek}/u, "μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος");
 
 assertThrows("/\\p{In}/u");
 assertThrows("/\\pI/u");
diff --git a/test/mjsunit/harmony/regexp-property-char-class.js b/test/mjsunit/harmony/regexp-property-char-class.js
index 76774cb..6162012 100644
--- a/test/mjsunit/harmony/regexp-property-char-class.js
+++ b/test/mjsunit/harmony/regexp-property-char-class.js
@@ -9,9 +9,6 @@
 assertThrows("/[\\p{}]/u");
 assertThrows("/[\\p{]/u");
 assertThrows("/[\\p}]/u");
-assertThrows("/[\\p{Math}]/u");
-assertThrows("/[\\p{Bidi_M}]/u");
-assertThrows("/[\\p{Hex}]/u");
 
 assertTrue(/^[\p{Lu}\p{Ll}]+$/u.test("ABCabc"));
 assertTrue(/^[\p{Lu}-\p{Ll}]+$/u.test("ABC-abc"));
@@ -19,6 +16,9 @@
 assertTrue(/^[\P{Lu}\p{Ll}]+$/u.test("abc"));
 assertTrue(/^[\P{Lu}]+$/u.test("abc123"));
 assertFalse(/^[\P{Lu}]+$/u.test("XYZ"));
+assertTrue(/[\p{Math}]/u.test("+"));
+assertTrue(/[\P{Bidi_M}]/u.test(" "));
+assertTrue(/[\p{Hex}]/u.test("A"));
 
 assertTrue(/^[^\P{Lu}]+$/u.test("XYZ"));
 assertFalse(/^[^\p{Lu}\p{Ll}]+$/u.test("abc"));
diff --git a/test/mjsunit/harmony/regexp-property-enumerated.js b/test/mjsunit/harmony/regexp-property-enumerated.js
new file mode 100644
index 0000000..e4a81a4
--- /dev/null
+++ b/test/mjsunit/harmony/regexp-property-enumerated.js
@@ -0,0 +1,28 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-regexp-property --harmony-unicode-regexps
+
+function t(re, s) { assertTrue(re.test(s)); }
+function f(re, s) { assertFalse(re.test(s)); }
+
+t(/\p{Bidi_Class=L}+/u, "Is this the real life?");
+t(/\p{bc=Left_To_Right}+/u, "Is this just fantasy?");
+t(/\p{bc=AL}+/u, "السلام عليكم‎");
+t(/\p{bc=Arabic_Letter}+/u, "متشرف بمعرفتك‎");
+
+t(/\p{Line_Break=Glue}/u, "\u00A0");
+t(/\p{lb=AL}/u, "~");
+
+assertThrows("/\\p{Block=}/u");
+assertThrows("/\\p{=}/u");
+assertThrows("/\\p{=L}/u");
+assertThrows("/\\p{=Hiragana}/u");
+assertThrows("/\\p{Block=CJK=}/u");
+
+assertThrows("/\\p{Age=V8_0}/u");
+assertThrows("/\\p{General_Category=Letter}/u");
+assertThrows("/\\p{gc=L}/u");
+assertThrows("/\\p{General_Category_Mask=Letter}/u");
+assertThrows("/\\p{gcm=L}/u");
diff --git a/test/mjsunit/harmony/regexp-property-exact-match.js b/test/mjsunit/harmony/regexp-property-exact-match.js
index 4dfcc5f..fe233f2 100644
--- a/test/mjsunit/harmony/regexp-property-exact-match.js
+++ b/test/mjsunit/harmony/regexp-property-exact-match.js
@@ -6,12 +6,12 @@
 
 assertThrows("/\\p{In CJK}/u");
 assertThrows("/\\p{InCJKUnifiedIdeographs}/u");
-assertDoesNotThrow("/\\p{InCJK}/u");
-assertDoesNotThrow("/\\p{InCJK_Unified_Ideographs}/u");
+assertThrows("/\\p{InCJK}/u");
+assertThrows("/\\p{InCJK_Unified_Ideographs}/u");
 
-assertDoesNotThrow("/\\p{InCyrillic_Sup}/u");
-assertDoesNotThrow("/\\p{InCyrillic_Supplement}/u");
-assertDoesNotThrow("/\\p{InCyrillic_Supplementary}/u");
+assertThrows("/\\p{InCyrillic_Sup}/u");
+assertThrows("/\\p{InCyrillic_Supplement}/u");
+assertThrows("/\\p{InCyrillic_Supplementary}/u");
 assertThrows("/\\p{InCyrillicSupplementary}/u");
 assertThrows("/\\p{InCyrillic_supplementary}/u");
 
@@ -25,9 +25,18 @@
 assertDoesNotThrow("/\\p{Combining_Mark}/u");
 assertThrows("/\\p{Combining Mark}/u");
 
-assertDoesNotThrow("/\\p{Copt}/u");
-assertDoesNotThrow("/\\p{Coptic}/u");
-assertDoesNotThrow("/\\p{Qaac}/u");
-assertDoesNotThrow("/\\p{Egyp}/u");
-assertDoesNotThrow("/\\p{Egyptian_Hieroglyphs}/u");
+assertDoesNotThrow("/\\p{Script=Copt}/u");
+assertThrows("/\\p{Coptic}/u");
+assertThrows("/\\p{Qaac}/u");
+assertThrows("/\\p{Egyp}/u");
+assertDoesNotThrow("/\\p{Script=Egyptian_Hieroglyphs}/u");
 assertThrows("/\\p{EgyptianHieroglyphs}/u");
+
+assertThrows("/\\p{BidiClass=LeftToRight}/u");
+assertThrows("/\\p{BidiC=LeftToRight}/u");
+assertThrows("/\\p{bidi_c=Left_To_Right}/u");
+
+assertDoesNotThrow("/\\p{Block=CJK}/u");
+assertThrows("/\\p{Block = CJK}/u");
+assertThrows("/\\p{Block=cjk}/u");
+assertThrows("/\\p{BLK=CJK}/u");
diff --git a/test/mjsunit/harmony/regexp-property-scripts.js b/test/mjsunit/harmony/regexp-property-scripts.js
index 19b50ee..ec2b11d 100644
--- a/test/mjsunit/harmony/regexp-property-scripts.js
+++ b/test/mjsunit/harmony/regexp-property-scripts.js
@@ -7,33 +7,33 @@
 function t(re, s) { assertTrue(re.test(s)); }
 function f(re, s) { assertFalse(re.test(s)); }
 
-t(/\p{Common}+/u, ".");
-f(/\p{Common}+/u, "supercalifragilisticexpialidocious");
+t(/\p{Script=Common}+/u, ".");
+f(/\p{Script=Common}+/u, "supercalifragilisticexpialidocious");
 
-t(/\p{Han}+/u, "话说天下大势,分久必合,合久必分");
-t(/\p{Hani}+/u, "吾庄后有一桃园,花开正盛");
-f(/\p{Han}+/u, "おはようございます");
-f(/\p{Hani}+/u, "Something is rotten in the state of Denmark");
+t(/\p{Script=Han}+/u, "话说天下大势,分久必合,合久必分");
+t(/\p{Script=Hani}+/u, "吾庄后有一桃园,花开正盛");
+f(/\p{Script=Han}+/u, "おはようございます");
+f(/\p{Script=Hani}+/u, "Something is rotten in the state of Denmark");
 
-t(/\p{Latin}+/u, "Wie froh bin ich, daß ich weg bin!");
-t(/\p{Latn}+/u,
+t(/\p{Script=Latin}+/u, "Wie froh bin ich, daß ich weg bin!");
+t(/\p{Script=Latn}+/u,
   "It was a bright day in April, and the clocks were striking thirteen");
-f(/\p{Latin}+/u, "奔腾千里荡尘埃,渡水登山紫雾开");
-f(/\p{Latn}+/u, "いただきます");
+f(/\p{Script=Latin}+/u, "奔腾千里荡尘埃,渡水登山紫雾开");
+f(/\p{Script=Latn}+/u, "いただきます");
 
-t(/\p{Hiragana}/u, "いただきます");
-t(/\p{Hira}/u, "ありがとうございました");
-f(/\p{Hiragana}/u,
+t(/\p{sc=Hiragana}/u, "いただきます");
+t(/\p{sc=Hira}/u, "ありがとうございました");
+f(/\p{sc=Hiragana}/u,
   "Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte");
-f(/\p{Hira}/u, "Call me Ishmael");
+f(/\p{sc=Hira}/u, "Call me Ishmael");
 
-t(/\p{Phoenician}/u, "\u{10900}\u{1091a}");
-t(/\p{Phnx}/u, "\u{1091f}\u{10916}");
-f(/\p{Phoenician}/u, "Arthur est un perroquet");
-f(/\p{Phnx}/u, "设心狠毒非良士,操卓原来一路人");
+t(/\p{sc=Phoenician}/u, "\u{10900}\u{1091a}");
+t(/\p{sc=Phnx}/u, "\u{1091f}\u{10916}");
+f(/\p{sc=Phoenician}/u, "Arthur est un perroquet");
+f(/\p{sc=Phnx}/u, "设心狠毒非良士,操卓原来一路人");
 
-t(/\p{Grek}/u, "ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ");
-t(/\p{Greek}/u, "μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος");
-f(/\p{Greek}/u, "高贤未服英雄志,屈节偏生杰士疑");
-f(/\p{Greek}/u,
+t(/\p{sc=Grek}/u, "ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ");
+t(/\p{sc=Greek}/u, "μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος");
+f(/\p{sc=Greek}/u, "高贤未服英雄志,屈节偏生杰士疑");
+f(/\p{sc=Greek}/u,
   "Mr. Jones, of the Manor Farm, had locked the hen-houses for the night");
diff --git a/test/mjsunit/harmony/regress/regress-4904.js b/test/mjsunit/harmony/regress/regress-4904.js
new file mode 100644
index 0000000..a57d246
--- /dev/null
+++ b/test/mjsunit/harmony/regress/regress-4904.js
@@ -0,0 +1,24 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-do-expressions
+
+(function testCatchScopeInDoExpression() {
+  var f = (s = 17, y = do { try { throw 25; } catch(e) { s += e; }; }) => s;
+  var result = f();
+  assertEquals(result, 42);
+})();
+
+(function testCatchScopeInDoExpression() {
+  var f = (s = 17, y = do { let t; try { throw 25; } catch(e) { s += e; }; }) => s;
+  var result = f();
+  assertEquals(result, 42);
+})();
+
+(function testCatchScopeInDoExpression() {
+  let t1;
+  var f = (s = 17, y = do { let t2; try { throw 25; } catch(e) { s += e; }; }) => s;
+  var result = f();
+  assertEquals(result, 42);
+})();
diff --git a/test/mjsunit/harmony/regress/regress-observe-empty-double-array.js b/test/mjsunit/harmony/regress/regress-observe-empty-double-array.js
deleted file mode 100644
index 1460889..0000000
--- a/test/mjsunit/harmony/regress/regress-observe-empty-double-array.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --harmony-object-observe
-// Flags: --allow-natives-syntax
-//
-// Test passes if it does not crash.
-
-arr = [1.1];
-Object.observe(arr, function(){});
-arr.length = 0;
-// TODO(observe): we currently disallow fast elements for observed object.
-// assertTrue(%HasFastDoubleElements(arr));
-// Should not crash
-arr.push(1.1);
diff --git a/test/mjsunit/holy-double-no-arg-array.js b/test/mjsunit/holy-double-no-arg-array.js
new file mode 100644
index 0000000..73e2ddc
--- /dev/null
+++ b/test/mjsunit/holy-double-no-arg-array.js
@@ -0,0 +1,14 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+(function() {
+  function f() {
+    return new Array();
+  }
+  var a = f();
+  a[0] = 0.5;
+  var b = f();
+  b[2] = 0.5;
+  assertEquals(undefined, b[0]);
+})();
diff --git a/test/mjsunit/ignition/elided-instruction-no-ignition.js b/test/mjsunit/ignition/elided-instruction-no-ignition.js
index d31150b..50ad528 100644
--- a/test/mjsunit/ignition/elided-instruction-no-ignition.js
+++ b/test/mjsunit/ignition/elided-instruction-no-ignition.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --expose-debug-as debug
+// Flags: --no-ignition --expose-debug-as debug
 
 Debug = debug.Debug
 
diff --git a/test/mjsunit/ignition/elided-instruction.js b/test/mjsunit/ignition/elided-instruction.js
index 807974b..a047f41 100644
--- a/test/mjsunit/ignition/elided-instruction.js
+++ b/test/mjsunit/ignition/elided-instruction.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --expose-debug-as debug
+// Flags: --ignition --expose-debug-as debug
 
 Debug = debug.Debug
 
diff --git a/test/mjsunit/ignition/ignition-statistics-extension.js b/test/mjsunit/ignition/ignition-statistics-extension.js
new file mode 100644
index 0000000..43d05c9
--- /dev/null
+++ b/test/mjsunit/ignition/ignition-statistics-extension.js
@@ -0,0 +1,62 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --ignition --trace-ignition-dispatches
+
+assertEquals(typeof getIgnitionDispatchCounters, "function");
+
+var old_dispatch_counters = getIgnitionDispatchCounters();
+
+// Check that old_dispatch_counters is a non-empty object of objects, such that
+// the value of each property in the inner objects is a number.
+
+assertEquals(typeof old_dispatch_counters, "object");
+assertTrue(Object.getOwnPropertyNames(old_dispatch_counters).length > 0);
+for (var source_bytecode in old_dispatch_counters) {
+  var counters_row = old_dispatch_counters[source_bytecode];
+  assertEquals(typeof counters_row, "object");
+  for (var counter in counters_row) {
+    assertEquals(typeof counters_row[counter], "number");
+  }
+}
+
+// Do something
+function f(x) { return x*x; }
+f(42);
+
+var new_dispatch_counters = getIgnitionDispatchCounters();
+
+var old_source_bytecodes = Object.getOwnPropertyNames(old_dispatch_counters);
+var new_source_bytecodes = Object.getOwnPropertyNames(new_dispatch_counters);
+var common_source_bytecodes = new_source_bytecodes.filter(function (name) {
+  return old_source_bytecodes.indexOf(name) > -1;
+});
+
+// Check that the keys on the outer objects are the same
+assertEquals(common_source_bytecodes, old_source_bytecodes);
+assertEquals(common_source_bytecodes, new_source_bytecodes);
+
+common_source_bytecodes.forEach(function (source_bytecode) {
+  var new_counters_row = new_dispatch_counters[source_bytecode];
+  var old_counters_row = old_dispatch_counters[source_bytecode];
+
+  var old_destination_bytecodes = Object.getOwnPropertyNames(old_counters_row);
+  var new_destination_bytecodes = Object.getOwnPropertyNames(new_counters_row);
+
+  // Check that all the keys in old_ are in new_ too
+  old_destination_bytecodes.forEach(function (name) {
+    assertTrue(new_destination_bytecodes.indexOf(name) > -1);
+  });
+
+  // Check that for each source-destination pair, the counter has either
+  // appeared (was undefined before calling f()), is unchanged, or incremented.
+  new_destination_bytecodes.forEach(function (destination_bytecode) {
+    var new_counter = new_counters_row[destination_bytecode];
+    var old_counter = old_counters_row[destination_bytecode];
+    assertTrue(typeof new_counter === "number");
+    if (typeof old_counter === "number") {
+      assertTrue(new_counter >= old_counter);
+    }
+  });
+});
diff --git a/test/mjsunit/ignition/regress-599001-verifyheap.js b/test/mjsunit/ignition/regress-599001-verifyheap.js
index 5aa2efd..ce5b46d 100644
--- a/test/mjsunit/ignition/regress-599001-verifyheap.js
+++ b/test/mjsunit/ignition/regress-599001-verifyheap.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --verify-heap --expose-gc
+// Flags: --ignition --verify-heap --expose-gc
 
 // Tests that verify heap works for BytecodeArrays in the large object space.
 
diff --git a/test/mjsunit/messages.js b/test/mjsunit/messages.js
index 8796d05..d40994d 100644
--- a/test/mjsunit/messages.js
+++ b/test/mjsunit/messages.js
@@ -147,7 +147,12 @@
 }, "Method Set.prototype.add called on incompatible receiver [object Array]",
 TypeError);
 
-// kInstanceofFunctionExpected
+// kNonCallableInInstanceOfCheck
+test(function() {
+  1 instanceof {};
+}, "Right-hand side of 'instanceof' is not callable", TypeError);
+
+// kNonObjectInInstanceOfCheck
 test(function() {
   1 instanceof 1;
 }, "Right-hand side of 'instanceof' is not an object", TypeError);
diff --git a/test/mjsunit/migrations.js b/test/mjsunit/migrations.js
index a18d884..2bd70fb 100644
--- a/test/mjsunit/migrations.js
+++ b/test/mjsunit/migrations.js
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-ayle license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-object-observe
 // Flags: --allow-natives-syntax --track-fields --expose-gc
 
 var global = Function('return this')();
@@ -275,10 +274,6 @@
     },
   },
   {
-    name: "observe",
-    migr: function(o, i) { Object.observe(o, function(){}); },
-  },
-  {
     name: "seal",
     migr: function(o, i) { Object.seal(o); },
   },
diff --git a/test/mjsunit/mirror-object.js b/test/mjsunit/mirror-object.js
index 834d7a5..cae652a 100644
--- a/test/mjsunit/mirror-object.js
+++ b/test/mjsunit/mirror-object.js
@@ -265,3 +265,27 @@
 assertTrue("[[BoundArgs]]" in property_map);
 assertEquals("object", property_map["[[BoundArgs]]"].value().type());
 assertEquals(1, property_map["[[BoundArgs]]"].value().value().length);
+
+// Test JSProxy internal properties.
+var target = {};
+var handler = {
+  get: function (target, name, receiver) {
+    return target[name];
+  },
+  set: function(target, name, value, receiver) {
+    target[name] = value;
+    return value;
+  }
+}
+ip = debug.ObjectMirror.GetInternalProperties(new Proxy(target, handler));
+assertEquals(3, ip.length);
+var property_map = {};
+for (var i = 0; i < ip.length; i++) {
+  property_map[ip[i].name()] = ip[i];
+}
+assertTrue("[[Target]]" in property_map);
+assertEquals(target, property_map["[[Target]]"].value().value());
+assertTrue("[[Handler]]" in property_map);
+assertEquals(handler, property_map["[[Handler]]"].value().value());
+assertTrue("[[IsRevoked]]" in property_map);
+assertEquals(false, property_map["[[IsRevoked]]"].value().value());
diff --git a/test/mjsunit/mjsunit.gyp b/test/mjsunit/mjsunit.gyp
index 35ce2ff..e0a7469 100644
--- a/test/mjsunit/mjsunit.gyp
+++ b/test/mjsunit/mjsunit.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'mjsunit.isolate',
diff --git a/test/mjsunit/mjsunit.js b/test/mjsunit/mjsunit.js
index 9b07953..6a7c2da 100644
--- a/test/mjsunit/mjsunit.js
+++ b/test/mjsunit/mjsunit.js
@@ -114,6 +114,9 @@
 var assertOptimized;
 var assertUnoptimized;
 
+// Assert that a string contains another expected substring.
+var assertContains;
+
 
 (function () {  // Scope for utility functions.
 
@@ -416,6 +419,12 @@
     throw new MjsUnitAssertionError(message);
   };
 
+  assertContains = function(sub, value, name_opt) {
+    if (value == null ? (sub != null) : value.indexOf(sub) == -1) {
+      fail("contains '" + String(sub) + "'", value, name_opt);
+    }
+  };
+
   var OptimizationStatusImpl = undefined;
 
   var OptimizationStatus = function(fun, sync_opt) {
diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status
index 6d786f9..228832b 100644
--- a/test/mjsunit/mjsunit.status
+++ b/test/mjsunit/mjsunit.status
@@ -76,6 +76,7 @@
   'unicode-test': [PASS, NO_VARIANTS],
   'whitespaces': [PASS, NO_VARIANTS],
   'compiler/osr-assert': [PASS, NO_VARIANTS],
+  'ignition/regress-599001-verifyheap': [PASS, NO_VARIANTS],
   'es6/string-fromcodepoint': [PASS, NO_VARIANTS],
   'regress/regress-2185-2': [PASS, NO_VARIANTS],
   'regress/regress-2612': [PASS, NO_VARIANTS],
@@ -149,10 +150,6 @@
   # issue 4078:
   'allocation-site-info': [PASS, NO_VARIANTS],
 
-  # TODO(turbofan): The escape analysis needs some investigation.
-  'compiler/escape-analysis-deopt-5': [PASS, NO_VARIANTS],
-  'compiler/escape-analysis-9': [PASS, NO_VARIANTS],
-
   ##############################################################################
   # Too slow in debug mode with --stress-opt mode.
   'compiler/regress-stacktrace-methods': [PASS, ['mode == debug', SKIP]],
@@ -260,7 +257,6 @@
   # Slow tests.
   'copy-on-write-assert': [PASS, SLOW],
   'debug-scopes': [PASS, SLOW],
-  'es7/object-observe': [PASS, ['mode == debug', SLOW]],
   'numops-fuzz-part*': [PASS, ['mode == debug', SLOW]],
   'readonly': [PASS, SLOW],
   'regress/regress-1200351': [PASS, ['mode == debug', SLOW]],
@@ -274,21 +270,72 @@
   'wasm/asm-wasm-literals': [PASS, ['arch in [arm, arm64, mips, mipsel, mips64, mips64el] or ignition == True', SKIP]],
   'wasm/asm-wasm-copy': [PASS, ['arch in [arm, arm64, mips, mipsel, mips64, mips64el]', SKIP]],
   'wasm/asm-wasm-deopt': [PASS, ['arch in [arm, arm64, mips, mipsel, mips64, mips64el]', SKIP]],
+  'wasm/asm-wasm-switch': [PASS, ['arch in [arm, arm64, mips, mipsel, mips64, mips64el]', SKIP]],
 
   # TODO(branelson): Figure out why ignition + asm->wasm fails embenchen.
   'wasm/embenchen/*': [PASS, ['arch == arm64', SKIP], ['ignition == True', SKIP]],
 
-  # TODO(bradnelson) Fix and re-enable.
-  'wasm/embenchen/box2d': [SKIP],   # hang
-  'wasm/embenchen/lua_binarytrees': [SKIP],  # fails decode
-  #'wasm/embenchen/zlib': [SKIP],  # fails gc-stress
-
   # case-insensitive unicode regexp relies on case mapping provided by ICU.
   'harmony/unicode-regexp-ignore-case': [PASS, ['no_i18n == True', FAIL]],
   'harmony/unicode-regexp-ignore-case-noi18n': [FAIL, ['no_i18n == True', PASS]],
   'regress/regress-5036': [PASS, ['no_i18n == True', FAIL]],
   # desugaring regexp property class relies on ICU.
   'harmony/regexp-property-*': [PASS, ['no_i18n == True', FAIL]],
+
+  ############################################################################
+  # Ignition
+
+  # TODO(mythria, 4780): Related to type feedback for calls in interpreter.
+  'array-literal-feedback': [PASS, NO_IGNITION],
+  'regress/regress-4121': [PASS, NO_IGNITION],
+
+  # TODO(mythria, 4764): lack of osr support.
+  'regress/regress-2618': [PASS, NO_IGNITION],
+
+  # TODO(mythria, 4764): lack of osr support. The tests waits in a loop
+  # till it is optimized. So test timeouts.
+  'array-literal-transitions': [PASS, NO_IGNITION],
+
+  # TODO(rmcilroy, 4680): Script throws RangeError as expected, but does so during
+  # eager compile of the whole script instead of during lazy compile of the function
+  # f(), so we can't catch the exception in the try/catch. Skip because on some
+  # platforms the stack limit is different and the exception doesn't fire.
+  'regress/regress-crbug-589472': [PASS, NO_IGNITION],
+
+  # TODO(4680): Test doesn't know about three tier compiler pipeline.
+  'assert-opt-and-deopt': [PASS, NO_IGNITION],
+
+  # BUG(rmcilroy,4989): Function is optimized without type feedback and so immediately deopts again, causing check failure in the test.
+  'compiler/deopt-inlined-from-call': [PASS, NO_IGNITION],
+  'compiler/increment-typefeedback': [PASS, NO_IGNITION],
+  'compiler/manual-concurrent-recompile': [PASS, NO_IGNITION],
+  'constant-folding-2': [PASS, NO_IGNITION],
+  'debug-is-active': [PASS, NO_IGNITION],
+  'deopt-with-fp-regs': [PASS, NO_IGNITION],
+  'deserialize-optimize-inner': [PASS, NO_IGNITION],
+  'div-mul-minus-one': [PASS, NO_IGNITION],
+  'double-intrinsics': [PASS, NO_IGNITION],
+  'elements-transition-hoisting': [PASS, NO_IGNITION],
+  'es6/block-let-crankshaft': [PASS, NO_IGNITION],
+  'es6/block-let-crankshaft-sloppy': [PASS, NO_IGNITION],
+  'getters-on-elements': [PASS, NO_IGNITION],
+  'harmony/do-expressions': [PASS, NO_IGNITION],
+  'math-floor-of-div-minus-zero': [PASS, NO_IGNITION],
+  'regress/regress-2132': [PASS, NO_IGNITION],
+  'regress/regress-2339': [PASS, NO_IGNITION],
+  'regress/regress-3176': [PASS, NO_IGNITION],
+  'regress/regress-3709': [PASS, NO_IGNITION],
+  'regress/regress-385565': [PASS, NO_IGNITION],
+  'regress/regress-crbug-594183': [PASS, NO_IGNITION],
+  'regress/regress-embedded-cons-string': [PASS, NO_IGNITION],
+  'regress/regress-map-invalidation-2': [PASS, NO_IGNITION],
+  'regress/regress-param-local-type': [PASS, NO_IGNITION],
+  'regress/regress-prepare-break-while-recompile': [PASS, NO_IGNITION],
+  'shift-for-integer-div': [PASS, NO_IGNITION],
+  'sin-cos': [PASS, NO_IGNITION],
+  'smi-mul-const': [PASS, NO_IGNITION],
+  'smi-mul': [PASS, NO_IGNITION],
+  'unary-minus-deopt': [PASS, NO_IGNITION],
 }],  # ALWAYS
 
 ['novfp3 == True', {
@@ -459,6 +506,13 @@
   'unicodelctest': [PASS, SLOW],
   'unicode-test': [PASS, SLOW],
   'whitespaces': [PASS, TIMEOUT, SLOW],
+
+  # TODO(rmcilroy,4680): Arm64 specific timeouts.
+  'asm/construct-double': [PASS, NO_IGNITION],
+  'compiler/osr-one': [PASS, NO_IGNITION],
+  'compiler/osr-two': [PASS, NO_IGNITION],
+  'wasm/asm-wasm-i32': [PASS, NO_IGNITION],
+  'wasm/asm-wasm-u32': [PASS, NO_IGNITION],
 }],  # 'arch == arm64'
 
 ['arch == arm64 and mode == debug and simulator_run == True', {
@@ -475,6 +529,11 @@
   'unicodelctest-no-optimization': [PASS, TIMEOUT],
   # Issue 3219:
   'getters-on-elements': [PASS, ['gc_stress == True', FAIL]],
+
+  # Ignition.
+  'es6/templates': [PASS, ['no_snap and mode == debug', NO_IGNITION]],
+  'harmony/generators': [PASS, ['no_snap and mode == debug', NO_IGNITION]],
+  'regress/regress-crbug-364374': [PASS, ['no_snap and mode == debug', NO_IGNITION]],
 }],  # 'arch == arm64 and mode == debug and simulator_run == True'
 
 ##############################################################################
@@ -497,6 +556,17 @@
   'deep-recursion': [SKIP],
   'regress/regress-builtinbust-7': [SKIP],
   'string-localecompare': [SKIP],
+
+  # TODO(mythria,4680): All of these tests have large loops and hence slow
+  # and timeout.
+  'compiler/osr-big': [PASS, NO_IGNITION],
+  'compiler/osr-nested': [PASS, NO_IGNITION],
+  'regress/regress-298269': [PASS, NO_IGNITION],
+  'regress/regress-crbug-319860': [PASS, NO_IGNITION],
+  'regress/regress-deep-proto': [PASS, NO_IGNITION],
+  'try': [PASS, NO_IGNITION],
+  # Too slow for interpreter and msan.
+  'es6/tail-call-megatest*': [PASS, NO_IGNITION],
 }],  # 'msan == True'
 
 ##############################################################################
@@ -542,6 +612,11 @@
   'regress/regress-91008': [PASS, SLOW],
   'regress/regress-json-stringify-gc': [PASS, SLOW],
   'string-indexof-2': [PASS, TIMEOUT],
+
+  # TODO(rmcilroy,4680): Arm specific timeouts.
+  'compiler/osr-one': [PASS, NO_IGNITION],
+  'compiler/osr-two': [PASS, NO_IGNITION],
+  'regress/regress-1257': [PASS, NO_IGNITION],
 }],  # 'arch == arm or arch == android_arm'
 
 ##############################################################################
@@ -759,35 +834,14 @@
 }],  # 'arch == ppc and simulator_run == True'
 
 ##############################################################################
-['ignition == True', {
-  # TODO(yangguo,4690): assertion failures in debugger tests.
-  'debug-allscopes-on-debugger': [FAIL],
-  'es6/debug-stepnext-for': [FAIL],
-  'es6/debug-promises/stepin-constructor': [FAIL],
-  'es6/debug-stepin-proxies': [FAIL],
-  'regress/regress-crbug-119800': [FAIL],
-  'regress/regress-opt-after-debug-deopt': [FAIL],
+['arch == ppc64', {
 
-  # TODO(yangguo,4690): flaky failures on the bots.
-  'debug-stepin-builtin-callback-opt': [SKIP],
+  # stack overflow
+  'big-array-literal': [SKIP],
+}],  # 'arch == ppc64'
 
-   # TODO(rmcilroy,4765): assertion failures in LiveEdit tests.
-  'debug-liveedit-restart-frame': [FAIL],
-  'debug-liveedit-literals': [FAIL],
-  'debug-liveedit-3': [FAIL],
-  'debug-liveedit-1': [FAIL],
-  'debug-liveedit-2': [FAIL],
-  'debug-liveedit-patch-positions-replace': [FAIL],
-  'debug-liveedit-patch-positions': [FAIL],
-  'debug-liveedit-stepin': [FAIL],
-  'debug-liveedit-newsource': [FAIL],
-  'debug-liveedit-stack-padding': [FAIL],
-  'debug-liveedit-breakpoints': [FAIL],
-  'es6/debug-liveedit-new-target-1': [FAIL],
-  'es6/debug-liveedit-new-target-2': [FAIL],
-  'es6/debug-liveedit-new-target-3': [FAIL],
-  'es6/generators-debug-liveedit': [FAIL],
-
+##############################################################################
+['ignition or ignition_turbofan', {
   # TODO(mythria, 4780): Related to type feedback for calls in interpreter.
   'array-literal-feedback': [FAIL],
   'regress/regress-4121': [FAIL],
@@ -798,56 +852,37 @@
   # till it is optimized. So test timeouts.
   'array-literal-transitions': [SKIP],
 
-  # TODO(mythria, 4680): Relate to GC and ignition holding references to
-  # objects.
-  'es6/mirror-collections': [FAIL],
-
-  # TODO(mythria, 4680): Fails with context_register_count_ > 0 (0 vs. 0) when
-  # trying to get a context register in BytecodeGenerator.
-  'harmony/regress/regress-4658': [FAIL, ['mode == release and dcheck_always_on == False', PASS],],
-
   # TODO(rmcilroy, 4680): Script throws RangeError as expected, but does so during
   # eager compile of the whole script instead of during lazy compile of the function
   # f(), so we can't catch the exception in the try/catch. Skip because on some
   # platforms the stack limit is different and the exception doesn't fire.
   'regress/regress-crbug-589472': [SKIP],
 
-  # Debugger test cases that pass with ignition, but not full-codegen.
-  # These differences between full-codegen and ignition are deliberate.
-  'ignition/elided-instruction-no-ignition': [FAIL],
-
   'wasm/asm-wasm-f32': [PASS, ['arch in [arm64]', SKIP]],
   'wasm/asm-wasm-f64': [PASS, ['arch in [arm64]', SKIP]],
-}],  # ignition == True
 
-['ignition == True and system == windows', {
-  # TODO(rmcilroy,4680): Crash on windows nosnap shared.
-  'regress/regress-crbug-352058': [PASS, ['no_snap == True', SKIP]],
+  # TODO(rmcilroy,titzer): Times out after
+  # https://codereview.chromium.org/1951013002 .
+  'regress/regress-599717': [PASS, ['tsan', SKIP]],
+}],  # ignition or ignition_turbofan
 
-  # TODO(513471): Attempting to optimize generator hits unreachable path.
-  'regress/regress-crbug-513471': [PASS, ['no_snap == True', SKIP]],
-
-  # TODO(rmcilroy,4680): Fails on win32 debug.
-  'div-mod': [PASS, ['arch == ia32', SKIP]],
-}],  # ignition == True and system == windows
-
-['ignition == True and arch == arm64', {
+['(ignition or ignition_turbofan) and arch == arm64', {
   # TODO(rmcilroy,4680): Arm64 specific timeouts.
   'asm/construct-double': [SKIP],
   'compiler/osr-one': [SKIP],
   'compiler/osr-two': [SKIP],
   'wasm/asm-wasm-i32': [SKIP],
   'wasm/asm-wasm-u32': [SKIP],
-}],  # ignition == True and arch == arm64
+}],  # (ignition or ignition_turbofan) and arch == arm64
 
-['ignition == True and arch == arm', {
+['(ignition or ignition_turbofan) and arch == arm', {
   # TODO(rmcilroy,4680): Arm specific timeouts.
   'compiler/osr-one': [SKIP],
   'compiler/osr-two': [SKIP],
   'regress/regress-1257': [SKIP],
-}],  # ignition == True and arch == arm
+}],  # (ignition or ignition_turbofan) and arch == arm
 
-['ignition == True and msan', {
+['(ignition or ignition_turbofan) and msan', {
   # TODO(mythria,4680): All of these tests have large loops and hence slow
   # and timeout.
   'compiler/osr-big': [SKIP],
@@ -858,55 +893,7 @@
   'try': [SKIP],
   # Too slow for interpreter and msan.
   'es6/tail-call-megatest*': [SKIP],
-}],  # ignition == True and msan
-
-['ignition == True and gc_stress == True', {
-  # TODO(oth,4680): failures from the bots.
-  'es6/debug-step-destructuring-bind': [SKIP],
-  'es6/debug-stepin-collections-foreach': [SKIP],
-  'ignition/elided-instruction': [SKIP],
-  'regress/regress-269': [SKIP],
-}],  # ignition == True and gc_stress == True
-
-['ignition == False', {
-  # Debugger test cases that pass with full-codegen, but not ignition.
-  # These differences between full-codegen and ignition are deliberate.
-  'ignition/elided-instruction': [FAIL],
-}],  # ignition == False
-
-['ignition == True and system == windows and no_snap', {
-  # TODO(rmcilroy): Fail with nosnap and shared libraries.
-  'es6/array-from': [FAIL],
-  'es6/classes-subclass-builtins': [FAIL],
-  'es6/computed-property-names-classes': [FAIL],
-  'es6/computed-property-names-object-literals-methods': [FAIL],
-  'es6/debug-stepin-generators': [FAIL],
-  'es6/destructuring': [FAIL],
-  'es6/destructuring-assignment': [FAIL],
-  'es6/generators-iteration': [FAIL],
-  'es6/generators-mirror': [FAIL],
-  'es6/generators-parsing': [FAIL],
-  'es6/generators-poisoned-properties': [FAIL],
-  'es6/generators-relocation': [FAIL],
-  'es6/generators-states': [FAIL],
-  'es6/iteration-semantics': [FAIL],
-  'es6/object-literals-method': [FAIL],
-  'es6/object-literals-super': [FAIL],
-  'es6/promises': [FAIL],
-  'es6/regress/regress-2681': [FAIL],
-  'es6/regress/regress-2691': [FAIL],
-  'es6/regress/regress-3280': [FAIL],
-  'es6/spread-array': [FAIL],
-  'es6/spread-call': [FAIL],
-  'es6/typedarray': [FAIL],
-  'es6/typedarray-from': [FAIL],
-  'harmony/function-sent': [FAIL],
-  'harmony/generators': [FAIL],
-  'harmony/iterator-close': [FAIL],
-  'harmony/regress/regress-4482': [FAIL],
-  'messages': [FAIL],
-  'regress-3225': [FAIL],
-}],  # ignition == True and system == windows and no_snap
+}],  # (ignition or ignition_turbofan) and msan
 
 ##############################################################################
 ['gcov_coverage', {
diff --git a/test/mjsunit/object-define-property.js b/test/mjsunit/object-define-property.js
index 4c495c6..380a71a 100644
--- a/test/mjsunit/object-define-property.js
+++ b/test/mjsunit/object-define-property.js
@@ -467,8 +467,7 @@
 }
 
 
-// Test runtime calls to DefineDataPropertyUnchecked and
-// DefineAccessorPropertyUnchecked - make sure we don't
+// Test runtime calls to DefineAccessorPropertyUnchecked - make sure we don't
 // crash.
 try {
   %DefineAccessorPropertyUnchecked(0, 0, 0, 0, 0);
@@ -477,29 +476,11 @@
 }
 
 try {
-  %DefineDataPropertyUnchecked(0, 0, 0, 0);
-} catch (e) {
-  assertTrue(/illegal access/.test(e));
-}
-
-try {
-  %DefineDataPropertyUnchecked(null, null, null, null);
-} catch (e) {
-  assertTrue(/illegal access/.test(e));
-}
-
-try {
   %DefineAccessorPropertyUnchecked(null, null, null, null, null);
 } catch (e) {
   assertTrue(/illegal access/.test(e));
 }
 
-try {
-  %DefineDataPropertyUnchecked({}, null, null, null);
-} catch (e) {
-  assertTrue(/illegal access/.test(e));
-}
-
 // Defining properties null should fail even when we have
 // other allowed values
 try {
@@ -508,12 +489,6 @@
   assertTrue(/illegal access/.test(e));
 }
 
-try {
-  %DefineDataPropertyUnchecked(null, 'foo', 0, 0);
-} catch (e) {
-  assertTrue(/illegal access/.test(e));
-}
-
 // Test that all possible differences in step 6 in DefineOwnProperty are
 // exercised, i.e., any difference in the given property descriptor and the
 // existing properties should not return true, but throw an error if the
diff --git a/test/mjsunit/osr-elements-kind.js b/test/mjsunit/osr-elements-kind.js
index bd15ef3..aee7017 100644
--- a/test/mjsunit/osr-elements-kind.js
+++ b/test/mjsunit/osr-elements-kind.js
@@ -30,7 +30,7 @@
 // Limit the number of stress runs to reduce polymorphism it defeats some of the
 // assumptions made about how elements transitions work because transition stubs
 // end up going generic.
-// Flags: --stress-runs=2
+// Flags: --stress-runs=1
 
 var elements_kind = {
   fast_smi_only             :  'fast smi only elements',
diff --git a/test/mjsunit/regexp-compile.js b/test/mjsunit/regexp-compile.js
index 92c3f7b..f001780 100644
--- a/test/mjsunit/regexp-compile.js
+++ b/test/mjsunit/regexp-compile.js
@@ -42,3 +42,7 @@
 assertEquals(["y", "y"], re.exec("axyb"));
 
 assertEquals(2, re.compile.length);
+
+// If RegExp parsing fails, the RegExp is not modified
+var r = /./; try { r.compile('? invalid'); } catch(err){}
+assertEquals("/./", r.toString());
diff --git a/test/mjsunit/regexp-lastIndex.js b/test/mjsunit/regexp-lastIndex.js
deleted file mode 100644
index 1445b9b..0000000
--- a/test/mjsunit/regexp-lastIndex.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2016 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// lastIndex is set according to funny rules. It is typically set only
-// for global or sticky RegExps, but on a failure to find a match, it is
-// set unconditionally. If a set fails, then it acts as if in strict mode
-// and throws.
-
-var re = /x/;
-Object.defineProperty(re, 'lastIndex', {writable: false});
-assertThrows(() => re.exec(""), TypeError);
-assertEquals(["x"], re.exec("x"));
-
-var re = /x/y;
-Object.defineProperty(re, 'lastIndex', {writable: false});
-assertThrows(() => re.exec(""), TypeError);
-assertThrows(() => re.exec("x"), TypeError);
diff --git a/test/mjsunit/regress-604044.js b/test/mjsunit/regress-604044.js
new file mode 100644
index 0000000..58ccfbe
--- /dev/null
+++ b/test/mjsunit/regress-604044.js
@@ -0,0 +1,7 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --min-preparse-length 1
+
+(function(_ = function() {}){})
diff --git a/test/mjsunit/regress/regress-3315.js b/test/mjsunit/regress/regress-3315.js
deleted file mode 100644
index bfd7df2..0000000
--- a/test/mjsunit/regress/regress-3315.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-// Flags: --harmony-object-observe
-
-var indexZeroCallCount = 0;
-var indexOneCallCount = 0;
-var lengthCallCount = 0;
-var acceptList = {
-  get 0() {
-    indexZeroCallCount++;
-    return 'foo';
-  },
-  get 1() {
-    indexOneCallCount++;
-    return 'bar';
-  },
-  get length() {
-    lengthCallCount++;
-    return 1;
-  }
-};
-
-Object.observe({}, function(){}, acceptList);
-assertEquals(1, lengthCallCount);
-assertEquals(1, indexZeroCallCount);
-assertEquals(0, indexOneCallCount);
diff --git a/test/mjsunit/regress/regress-353004.js b/test/mjsunit/regress/regress-353004.js
index 658fd6d..7e1fb7e 100644
--- a/test/mjsunit/regress/regress-353004.js
+++ b/test/mjsunit/regress/regress-353004.js
@@ -41,19 +41,21 @@
 
 
 var buffer5 = new ArrayBuffer(100 * 1024);
-var buffer6 = buffer5.slice({valueOf : function() {
-  %ArrayBufferNeuter(buffer5);
-  return 0;
-}}, 100 * 1024 * 1024);
-assertEquals(0, buffer6.byteLength);
+assertThrows(function() {
+  buffer5.slice({valueOf : function() {
+    %ArrayBufferNeuter(buffer5);
+    return 0;
+  }}, 100 * 1024 * 1024);
+}, TypeError);
 
 
 var buffer7 = new ArrayBuffer(100 * 1024 * 1024);
-var buffer8 = buffer7.slice(0, {valueOf : function() {
-  %ArrayBufferNeuter(buffer7);
-  return 100 * 1024 * 1024;
-}});
-assertEquals(0, buffer8.byteLength);
+assertThrows(function() {
+  buffer7.slice(0, {valueOf : function() {
+    %ArrayBufferNeuter(buffer7);
+    return 100 * 1024 * 1024;
+  }});
+}, TypeError);
 
 var buffer9 = new ArrayBuffer(1024);
 var array9 = new Uint8Array(buffer9);
diff --git a/test/mjsunit/regress/regress-356589.js b/test/mjsunit/regress/regress-356589.js
deleted file mode 100644
index a47f51b..0000000
--- a/test/mjsunit/regress/regress-356589.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-//       copyright notice, this list of conditions and the following
-//       disclaimer in the documentation and/or other materials provided
-//       with the distribution.
-//     * Neither the name of Google Inc. nor the names of its
-//       contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --harmony-object-observe
-
-// This test passes if it does not crash in debug mode
-
-arr = ['a', 'b', 'c', 'd'];
-Object.defineProperty(arr.__proto__, '0', { get: function(){} });
-Object.defineProperty(arr, '2', {get: function(){} });
-Object.observe(arr, function() {});
-arr.length = 2;
diff --git a/test/mjsunit/regress/regress-3926.js b/test/mjsunit/regress/regress-3926.js
index 4720c1b..4d9b298 100644
--- a/test/mjsunit/regress/regress-3926.js
+++ b/test/mjsunit/regress/regress-3926.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy --harmony-sloppy-let
-
 // See: http://code.google.com/p/v8/issues/detail?id=3926
 
 // Switch statements should disable hole check elimination
diff --git a/test/mjsunit/regress/regress-417709a.js b/test/mjsunit/regress/regress-417709a.js
deleted file mode 100644
index 5500be2..0000000
--- a/test/mjsunit/regress/regress-417709a.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --harmony-object-observe
-// Flags: --stack-size=100
-
-var a = [];
-
-Object.observe(a, function() {});
-
-function f(a, x) {
-  a.length = x;
-  f(a, x + 1);
-}
-
-assertThrows(function() { f(a, 1); }, RangeError);
diff --git a/test/mjsunit/regress/regress-417709b.js b/test/mjsunit/regress/regress-417709b.js
deleted file mode 100644
index 4d9572e..0000000
--- a/test/mjsunit/regress/regress-417709b.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --harmony-object-observe --stack-size=100
-
-var a = [];
-
-Array.observe(a, function() {});
-
-function f(a, x) {
-  a.length = x;
-  f(a, x + 1);
-}
-
-assertThrows(function() { f(a, 1); }, RangeError);
diff --git a/test/mjsunit/regress/regress-4693.js b/test/mjsunit/regress/regress-4693.js
index 13b4e2b..2c31cd9 100644
--- a/test/mjsunit/regress/regress-4693.js
+++ b/test/mjsunit/regress/regress-4693.js
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Flags: --harmony-sloppy-function
 
 // In sloppy mode we allow function redeclarations within blocks for webcompat.
 (function() {
diff --git a/test/mjsunit/regress/regress-4908.js b/test/mjsunit/regress/regress-4908.js
new file mode 100644
index 0000000..ec618b3
--- /dev/null
+++ b/test/mjsunit/regress/regress-4908.js
@@ -0,0 +1,7 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Flags: --always-opt --no-lazy
+
+(function() { ((s = 17, y = s) => s)() })();
diff --git a/test/mjsunit/regress/regress-4945.js b/test/mjsunit/regress/regress-4945.js
new file mode 100644
index 0000000..8e595e6
--- /dev/null
+++ b/test/mjsunit/regress/regress-4945.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function* g(o) {
+  yield 'x' in o;
+}
+
+assertTrue(g({x: 1}).next().value);
+assertFalse(g({}).next().value);
diff --git a/test/mjsunit/regress/regress-4964.js b/test/mjsunit/regress/regress-4964.js
new file mode 100644
index 0000000..d834708
--- /dev/null
+++ b/test/mjsunit/regress/regress-4964.js
@@ -0,0 +1,22 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+// Neutered source
+var ab = new ArrayBuffer(10);
+ab.constructor = { get [Symbol.species]() { %ArrayBufferNeuter(ab); return ArrayBuffer; } };
+assertThrows(() => ab.slice(0), TypeError);
+
+// Neutered target
+class NeuteredArrayBuffer extends ArrayBuffer {
+  constructor(...args) {
+    super(...args);
+    %ArrayBufferNeuter(this);
+  }
+}
+
+var ab2 = new ArrayBuffer(10);
+ab2.constructor = NeuteredArrayBuffer;
+assertThrows(() => ab2.slice(0), TypeError);
diff --git a/test/mjsunit/regress/regress-4967.js b/test/mjsunit/regress/regress-4967.js
new file mode 100644
index 0000000..9b36405
--- /dev/null
+++ b/test/mjsunit/regress/regress-4967.js
@@ -0,0 +1,9 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+assertThrows(() => {
+  new class extends Object {
+    constructor() { (() => delete super[super()])(); }
+  }
+}, ReferenceError);
diff --git a/test/mjsunit/regress/regress-4971.js b/test/mjsunit/regress/regress-4971.js
new file mode 100644
index 0000000..041f6c2
--- /dev/null
+++ b/test/mjsunit/regress/regress-4971.js
@@ -0,0 +1,41 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+(function TestDeoptInNamedSuperGetter() {
+  class C { m() { return 23 } }
+  class D extends C { f() { return super.boom() } }
+
+  var should_deoptimize_caller = false;
+  Object.defineProperty(C.prototype, "boom", { get: function() {
+    if (should_deoptimize_caller) %DeoptimizeFunction(D.prototype.f);
+    return this.m
+  }})
+
+  assertEquals(23, new D().f());
+  assertEquals(23, new D().f());
+  %OptimizeFunctionOnNextCall(D.prototype.f);
+  assertEquals(23, new D().f());
+  should_deoptimize_caller = true;
+  assertEquals(23, new D().f());
+})();
+
+(function TestDeoptInKeyedSuperGetter() {
+  class C { m() { return 23 } }
+  class D extends C { f(name) { return super[name]() } }
+
+  var should_deoptimize_caller = false;
+  Object.defineProperty(C.prototype, "boom", { get: function() {
+    if (should_deoptimize_caller) %DeoptimizeFunction(D.prototype.f);
+    return this.m
+  }})
+
+  assertEquals(23, new D().f("boom"));
+  assertEquals(23, new D().f("boom"));
+  %OptimizeFunctionOnNextCall(D.prototype.f);
+  assertEquals(23, new D().f("boom"));
+  should_deoptimize_caller = true;
+  assertEquals(23, new D().f("boom"));
+})();
diff --git a/test/mjsunit/regress/regress-5033.js b/test/mjsunit/regress/regress-5033.js
new file mode 100644
index 0000000..728094f
--- /dev/null
+++ b/test/mjsunit/regress/regress-5033.js
@@ -0,0 +1,21 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+var test = function() {
+  var t = Date.now();  // Just any non-constant double value.
+  var o = {
+    ['p']: 1,
+    t
+  };
+};
+
+function caller() {
+  test();
+}
+caller();
+caller();
+%OptimizeFunctionOnNextCall(caller);
+caller();
diff --git a/test/mjsunit/regress/regress-5178.js b/test/mjsunit/regress/regress-5178.js
new file mode 100644
index 0000000..bc0dd11
--- /dev/null
+++ b/test/mjsunit/regress/regress-5178.js
@@ -0,0 +1,7 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+assertThrows(() => {
+  try { throw {} } catch({a=b, b}) { a+b }
+}, ReferenceError);
diff --git a/test/mjsunit/regress/regress-5199.js b/test/mjsunit/regress/regress-5199.js
new file mode 100644
index 0000000..818e71a
--- /dev/null
+++ b/test/mjsunit/regress/regress-5199.js
@@ -0,0 +1,5 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+assertTrue(/(a[\u1000A])+/i.test('aa'));
diff --git a/test/mjsunit/regress/regress-520029.js b/test/mjsunit/regress/regress-520029.js
index 299dd75..9a1d200 100644
--- a/test/mjsunit/regress/regress-520029.js
+++ b/test/mjsunit/regress/regress-520029.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy-let --harmony-sloppy
-
 // Test that hoisting a function out of a lexical scope does not
 // lead to a parsing error
 
diff --git a/test/mjsunit/regress/regress-536751.js b/test/mjsunit/regress/regress-536751.js
index 0707e00..a63fae3 100644
--- a/test/mjsunit/regress/regress-536751.js
+++ b/test/mjsunit/regress/regress-536751.js
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy --harmony-sloppy-function --harmony-sloppy-let
 // Flags: --no-harmony-restrictive-declarations
 
 // At some point, this code led to DCHECK errors in debug mode
diff --git a/test/mjsunit/regress/regress-542099.js b/test/mjsunit/regress/regress-542099.js
index eef4953..6345fd4 100644
--- a/test/mjsunit/regress/regress-542099.js
+++ b/test/mjsunit/regress/regress-542099.js
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy --harmony-sloppy-function
 // Flags: --no-harmony-restrictive-declarations
 
 // Previously, this caused a CHECK fail in debug mode
diff --git a/test/mjsunit/regress/regress-542100.js b/test/mjsunit/regress/regress-542100.js
index 70fb5dc..c16e628 100644
--- a/test/mjsunit/regress/regress-542100.js
+++ b/test/mjsunit/regress/regress-542100.js
@@ -2,7 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy --harmony-sloppy-function
 // Flags: --no-harmony-restrictive-declarations
 
 (function() {
diff --git a/test/mjsunit/regress/regress-585041.js b/test/mjsunit/regress/regress-585041.js
new file mode 100644
index 0000000..c072ed2
--- /dev/null
+++ b/test/mjsunit/regress/regress-585041.js
@@ -0,0 +1,21 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+function f(arr, i) {
+  arr[i] = 50;
+}
+
+function boom(dummy) {
+  var arr = new Array(10);
+  f(arr, 10);
+  if (dummy) {
+    f(arr, -2147483648);
+  }
+}
+
+boom(false);
+%OptimizeFunctionOnNextCall(boom);
+boom(false);
diff --git a/test/mjsunit/regress/regress-592352.js b/test/mjsunit/regress/regress-592352.js
new file mode 100644
index 0000000..f3477c0
--- /dev/null
+++ b/test/mjsunit/regress/regress-592352.js
@@ -0,0 +1,20 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-wasm --allow-natives-syntax
+
+function __f_76() {
+  "use asm";
+  function __f_72() {
+    %OptimizeFunctionOnNextCall();
+  }
+  return {__f_72:__f_72};
+}
+
+try {
+  Wasm.instantiateModuleFromAsm( __f_76.toString());
+  assertTrue(false);
+} catch (e) {
+  print("Caught: " + e);
+}
diff --git a/test/mjsunit/regress/regress-599068-func-bindings.js b/test/mjsunit/regress/regress-599068-func-bindings.js
new file mode 100644
index 0000000..887c000
--- /dev/null
+++ b/test/mjsunit/regress/regress-599068-func-bindings.js
@@ -0,0 +1,45 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+// Tests function bindings are correctly handled in ignition.
+(function f() {
+  function assignSloppy() {
+    f = 0;
+  }
+  assertDoesNotThrow(assignSloppy);
+
+  function assignStrict() {
+    'use strict';
+    f = 0;
+  }
+  assertThrows(assignStrict, TypeError);
+
+  function assignStrictLookup() {
+    eval("'use strict'; f = 1;");
+  }
+  assertThrows(assignStrictLookup, TypeError);
+})();
+
+// Tests for compound assignments which are handled differently
+// in crankshaft.
+(function f() {
+  function assignSloppy() {
+    f += "x";
+  }
+  assertDoesNotThrow(assignSloppy);
+  assertDoesNotThrow(assignSloppy);
+  %OptimizeFunctionOnNextCall(assignSloppy);
+  assertDoesNotThrow(assignSloppy);
+
+  function assignStrict() {
+    'use strict';
+    f += "x";
+  }
+  assertThrows(assignStrict, TypeError);
+  assertThrows(assignStrict, TypeError);
+  %OptimizeFunctionOnNextCall(assignStrict);
+  assertThrows(assignStrict, TypeError);
+})();
diff --git a/test/mjsunit/regress/regress-599717.js b/test/mjsunit/regress/regress-599717.js
new file mode 100644
index 0000000..2cfd7fc
--- /dev/null
+++ b/test/mjsunit/regress/regress-599717.js
@@ -0,0 +1,25 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-wasm
+
+function __f_61(stdlib, buffer) {
+  "use asm";
+  var __v_14 = new stdlib.Float64Array(buffer);
+  function __f_74() {
+    var __v_35 = 6.0;
+    __v_14[2] = __v_35 + 1.0;
+  }
+  return {__f_74: __f_74};
+}
+var ok = false;
+try {
+  var __v_12 = new ArrayBuffer(2147483648);
+  ok = true;
+} catch (e) {
+  // Can happen on 32 bit systems.
+}
+if (ok) {
+  var module = Wasm.instantiateModuleFromAsm( __f_61.toString(), null, __v_12);
+}
diff --git a/test/mjsunit/regress/regress-599719.js b/test/mjsunit/regress/regress-599719.js
new file mode 100644
index 0000000..579fa1f
--- /dev/null
+++ b/test/mjsunit/regress/regress-599719.js
@@ -0,0 +1,24 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --expose-wasm
+
+function __f_7() {
+    %DeoptimizeFunction(__f_5);
+}
+function __f_8(global, env) {
+  "use asm";
+  var __f_7 = env.__f_7;
+  function __f_9(i4, i5) {
+    i4 = i4 | 0;
+    i5 = i5 | 0;
+    __f_7();
+  }
+  return {'__f_9': __f_9}
+}
+function __f_5() {
+  var __v_5 = Wasm.instantiateModuleFromAsm( __f_8.toString(), {'__f_7': __f_7});
+  __v_5.__f_9(0, 0, 0);
+}
+__f_5();
diff --git a/test/mjsunit/regress/regress-605470.js b/test/mjsunit/regress/regress-605470.js
new file mode 100644
index 0000000..722e8ae
--- /dev/null
+++ b/test/mjsunit/regress/regress-605470.js
@@ -0,0 +1,17 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --ignition
+
+function function_with_m_args(m) {
+  var source = '(function f() { return; })(';
+  for (var arg = 0; arg < m ; arg++) {
+    if (arg != 0) source += ',';
+    source += arg;
+  }
+  source += ')';
+  return eval(source);
+}
+
+function_with_m_args(0x7FFF);
diff --git a/test/mjsunit/regress/regress-605488.js b/test/mjsunit/regress/regress-605488.js
new file mode 100644
index 0000000..03e6a38
--- /dev/null
+++ b/test/mjsunit/regress/regress-605488.js
@@ -0,0 +1,12 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags:  --expose-wasm
+
+try {
+  Wasm.instantiateModuleFromAsm("");
+  assertTrue(false);
+} catch (e) {
+  print("Caught: " + e);
+}
diff --git a/test/mjsunit/regress/regress-606021.js b/test/mjsunit/regress/regress-606021.js
new file mode 100644
index 0000000..54b283e
--- /dev/null
+++ b/test/mjsunit/regress/regress-606021.js
@@ -0,0 +1,32 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+function foo() {
+  return function(c) {
+    var double_var = [3.0, 3.5][0];
+    var literal = c ? [1, double_var] : [double_var, 3.5];
+    return literal[0];
+  };
+}
+
+var f1 = foo();
+var f2 = foo();
+
+// Both closures point to full code.
+f1(false);
+f2(false);
+
+// Optimize f1, but don't initialize the [1, double_var] literal.
+%OptimizeFunctionOnNextCall(f1);
+f1(false);
+
+// Initialize the [1, double_var] literal, and transition the boilerplate to
+// double.
+f2(true);
+
+// Trick crankshaft into writing double_var at the wrong position.
+var l = f1(true);
+assertEquals(1, l);
diff --git a/test/mjsunit/regress/regress-608630.js b/test/mjsunit/regress/regress-608630.js
new file mode 100644
index 0000000..a0f3c43
--- /dev/null
+++ b/test/mjsunit/regress/regress-608630.js
@@ -0,0 +1,69 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-wasm
+
+var __v_5 = {};
+var __v_35 = {};
+var __v_44 = {};
+var __v_43 = {};
+
+try {
+__v_1 = 1;
+__v_2 = {
+  get: function() { return function() {} },
+  has() { return true },
+  getOwnPropertyDescriptor: function() {
+    if (__v_1-- == 0) throw "please die";
+    return {value: function() {}, configurable: true};
+  }
+};
+__v_3 = new Proxy({}, __v_2);
+__v_30 = Object.create(__v_35);
+with (__v_5) { f() }
+} catch(e) { print("Caught: " + e); }
+
+function __f_1(asmfunc, expect) {
+  var __v_1 = asmfunc.toString();
+  var __v_2 = __v_1.replace(new RegExp("use asm"), "");
+  var __v_39 = {Math: Math};
+  var __v_4 = eval("(" + __v_2 + ")")(__v_3);
+  print("Testing " + asmfunc.name + " (js)...");
+  __v_44.valueOf = __v_43;
+  expect(__v_4);
+  print("Testing " + asmfunc.name + " (asm.js)...");
+  var __v_5 = asmfunc(__v_3);
+  expect(__v_5);
+  print("Testing " + asmfunc.name + " (wasm)...");
+  var __v_6 = Wasm.instantiateModuleFromAsm(__v_1, __v_3);
+  expect(__v_6);
+}
+function __f_2() {
+  "use asm";
+  function __f_3() { return 0; }
+  function __f_4() { return 1; }
+  function __f_5() { return 4; }
+  function __f_6() { return 64; }
+  function __f_7() { return 137; }
+  function __f_8() { return 128; }
+  function __f_9() { return -1; }
+  function __f_10() { return 1000; }
+  function __f_11() { return 2000000; }
+  function __f_12() { return 2147483647; }
+  return {__f_3: __f_3, __f_4: __f_4, __f_5: __f_5, __f_6: __f_6, __f_7: __f_7, __f_8: __f_8,
+          __f_9: __f_9, __f_10: __f_10, __f_11, __f_12: __f_12};
+}
+try {
+__f_1(__f_2, function(module) {
+  assertEquals(0, module.__f_3());
+  assertEquals(1, module.__f_4());
+  assertEquals(4, module.__f_5());
+  assertEquals(64, module.__f_6());
+  assertEquals(128, module.__f_8());
+  assertEquals(-1, module.__f_9());
+  assertEquals(1000, module.__f_10());
+  assertEquals(2000000, module.__f_11());
+  assertEquals(2147483647, module.__f_12());
+});
+} catch(e) { print("Caught: " + e); }
diff --git a/test/mjsunit/regress/regress-610633.js b/test/mjsunit/regress/regress-610633.js
new file mode 100644
index 0000000..8ee0e7e
--- /dev/null
+++ b/test/mjsunit/regress/regress-610633.js
@@ -0,0 +1,40 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function getLength(a) {
+  return a.length;
+}
+
+function getByteLength(a) {
+  return a.byteLength;
+}
+
+function getByteOffset(a) {
+  return a.byteOffset;
+}
+
+var a = new Uint8Array([1, 2, 3]);
+getLength(a);
+getLength(a);
+
+Object.defineProperty(a.__proto__, 'length', {value: 42});
+
+assertEquals(42, getLength(a));
+assertEquals(42, a.length);
+
+getByteLength(a);
+getByteLength(a);
+
+Object.defineProperty(a.__proto__, 'byteLength', {value: 42});
+
+assertEquals(42, getByteLength(a));
+assertEquals(42, a.byteLength);
+
+getByteOffset(a);
+getByteOffset(a);
+
+Object.defineProperty(a.__proto__, 'byteOffset', {value: 42});
+
+assertEquals(42, getByteOffset(a));
+assertEquals(42, a.byteOffset);
diff --git a/test/mjsunit/regress/regress-616386.js b/test/mjsunit/regress/regress-616386.js
new file mode 100644
index 0000000..d462ab7
--- /dev/null
+++ b/test/mjsunit/regress/regress-616386.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --no-lazy
+
+assertEquals(0, ((y = (function(a2) { bbbb = a2 }), bbbb = eval('1')) => {y(0); return bbbb})())
+assertEquals(0, (({y = (function(a2) { bbbb = a2 }), bbbb = eval('1')} = {}) => {y(0); return bbbb})())
+assertEquals(0, (function (y = (function(a2) { bbbb = a2 }), bbbb = eval('1')) {y(0); return bbbb})())
+assertEquals(0, (function ({y = (function(a2) { bbbb = a2 }), bbbb = eval('1')} = {}) {y(0); return bbbb})())
diff --git a/test/mjsunit/regress/regress-619382.js b/test/mjsunit/regress/regress-619382.js
new file mode 100644
index 0000000..971318a
--- /dev/null
+++ b/test/mjsunit/regress/regress-619382.js
@@ -0,0 +1,35 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// // Use of this source code is governed by a BSD-style license that can be
+// // found in the LICENSE file.
+//
+// // Flags: --expose-gc --always-opt
+
+(function __f_9() {
+})();
+function __f_16(ctor_desc) {
+  var __v_22 = 5;
+  var __v_25 = [];
+  gc(); gc(); gc();
+  for (var __v_18 = 0; __v_18 < __v_22; __v_18++) {
+    __v_25[__v_18] = ctor_desc.ctor.apply();
+  }
+}
+var __v_28 = [
+  {
+    ctor: function(__v_27) { return {a: __v_27}; },
+    args: function() { return [1.5 + __v_18]; }  },
+  {
+    ctor: function(__v_27) { var __v_21 = []; __v_21[1] = __v_27; __v_21[200000] = __v_27; return __v_21; },
+    args: function() { return [1.5 + __v_18]; }  },
+  {
+    ctor: function() {
+    }  }
+];
+var __v_26 = [
+  {
+  }];
+  __v_26.forEach(function(__v_16) {
+    __v_28.forEach(function(ctor) {
+      __f_16(ctor);
+    });
+  });
diff --git a/test/mjsunit/regress/regress-620553.js b/test/mjsunit/regress/regress-620553.js
new file mode 100644
index 0000000..461b9bb
--- /dev/null
+++ b/test/mjsunit/regress/regress-620553.js
@@ -0,0 +1,17 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-gc
+
+var o0 = [];
+var o1 = [];
+var cnt = 0;
+o1.__defineGetter__(0, function() {
+  if (cnt++ > 2) return;
+  o0.shift();
+  gc();
+  o0.push(0);
+  o0.concat(o1);
+});
+o1[0];
diff --git a/test/mjsunit/regress/regress-621869.js b/test/mjsunit/regress/regress-621869.js
new file mode 100644
index 0000000..db34064
--- /dev/null
+++ b/test/mjsunit/regress/regress-621869.js
@@ -0,0 +1,18 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-gc
+
+var o0 = [];
+var o1 = [];
+var cnt = 0;
+var only_scavenge = true;
+o1.__defineGetter__(0, function() {
+  if (cnt++ > 2) return;
+  o0.shift();
+  gc(only_scavenge);
+  o0.push((64));
+  o0.concat(o1);
+});
+o1[0];
diff --git a/test/mjsunit/regress/regress-674753.js b/test/mjsunit/regress/regress-674753.js
index b3704ea..d8a504a 100644
--- a/test/mjsunit/regress/regress-674753.js
+++ b/test/mjsunit/regress/regress-674753.js
@@ -25,62 +25,138 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+// Flags: --allow-natives-syntax
+
+var undetectable = %GetUndetectable();
+
 // Number
 assertTrue(typeof 0 == 'number');
 assertTrue(typeof 0 === 'number');
+assertFalse(typeof 0 != 'number');
+assertFalse(typeof 0 !== 'number');
 assertTrue(typeof 1.2 == 'number');
 assertTrue(typeof 1.2 === 'number');
+assertFalse(typeof 1.2 != 'number');
+assertFalse(typeof 1.2 !== 'number');
+assertTrue(typeof 'x' != 'number');
+assertTrue(typeof 'x' !== 'number');
 assertFalse(typeof 'x' == 'number');
 assertFalse(typeof 'x' === 'number');
+assertTrue(typeof Object() != 'number');
+assertTrue(typeof Object() !== 'number');
+assertFalse(typeof Object() == 'number');
+assertFalse(typeof Object() === 'number');
 
 // String
 assertTrue(typeof 'x' == 'string');
 assertTrue(typeof 'x' === 'string');
+assertFalse(typeof 'x' != 'string');
+assertFalse(typeof 'x' !== 'string');
 assertTrue(typeof ('x' + 'x') == 'string');
 assertTrue(typeof ('x' + 'x') === 'string');
+assertFalse(typeof ('x' + 'x') != 'string');
+assertFalse(typeof ('x' + 'x') !== 'string');
+assertTrue(typeof 1 != 'string');
+assertTrue(typeof 1 !== 'string');
 assertFalse(typeof 1 == 'string');
 assertFalse(typeof 1 === 'string');
+assertTrue(typeof Object() != 'string');
+assertTrue(typeof Object() !== 'string');
 assertFalse(typeof Object() == 'string');
 assertFalse(typeof Object() === 'string');
 
 // Boolean
 assertTrue(typeof true == 'boolean');
 assertTrue(typeof true === 'boolean');
+assertFalse(typeof true != 'boolean');
+assertFalse(typeof true !== 'boolean');
 assertTrue(typeof false == 'boolean');
 assertTrue(typeof false === 'boolean');
+assertFalse(typeof false != 'boolean');
+assertFalse(typeof false !== 'boolean');
+assertTrue(typeof 1 != 'boolean');
+assertTrue(typeof 1 !== 'boolean');
 assertFalse(typeof 1 == 'boolean');
 assertFalse(typeof 1 === 'boolean');
+assertTrue(typeof 'x' != 'boolean');
+assertTrue(typeof 'x' !== 'boolean');
+assertFalse(typeof 'x' == 'boolean');
+assertFalse(typeof 'x' === 'boolean');
+assertTrue(typeof Object() != 'boolean');
+assertTrue(typeof Object() !== 'boolean');
 assertFalse(typeof Object() == 'boolean');
 assertFalse(typeof Object() === 'boolean');
 
 // Undefined
 assertTrue(typeof void 0 == 'undefined');
 assertTrue(typeof void 0 === 'undefined');
+assertFalse(typeof void 0 != 'undefined');
+assertFalse(typeof void 0 !== 'undefined');
+assertTrue(typeof 1 != 'undefined');
+assertTrue(typeof 1 !== 'undefined');
 assertFalse(typeof 1 == 'undefined');
 assertFalse(typeof 1 === 'undefined');
+assertTrue(typeof null != 'undefined');
+assertTrue(typeof null !== 'undefined');
+assertFalse(typeof null == 'undefined');
+assertFalse(typeof null === 'undefined');
+assertTrue(typeof Object() != 'undefined');
+assertTrue(typeof Object() !== 'undefined');
 assertFalse(typeof Object() == 'undefined');
 assertFalse(typeof Object() === 'undefined');
+assertTrue(typeof undetectable == 'undefined');
+assertTrue(typeof undetectable === 'undefined');
+assertFalse(typeof undetectable != 'undefined');
+assertFalse(typeof undetectable !== 'undefined');
 
 // Function
 assertTrue(typeof Object == 'function');
 assertTrue(typeof Object === 'function');
+assertFalse(typeof Object != 'function');
+assertFalse(typeof Object !== 'function');
+assertTrue(typeof 1 != 'function');
+assertTrue(typeof 1 !== 'function');
 assertFalse(typeof 1 == 'function');
 assertFalse(typeof 1 === 'function');
+assertTrue(typeof Object() != 'function');
+assertTrue(typeof Object() !== 'function');
 assertFalse(typeof Object() == 'function');
 assertFalse(typeof Object() === 'function');
+assertTrue(typeof undetectable != 'function');
+assertTrue(typeof undetectable !== 'function');
+assertFalse(typeof undetectable == 'function');
+assertFalse(typeof undetectable === 'function');
 
 // Object
 assertTrue(typeof Object() == 'object');
 assertTrue(typeof Object() === 'object');
+assertFalse(typeof Object() != 'object');
+assertFalse(typeof Object() !== 'object');
 assertTrue(typeof new String('x') == 'object');
 assertTrue(typeof new String('x') === 'object');
+assertFalse(typeof new String('x') != 'object');
+assertFalse(typeof new String('x') !== 'object');
 assertTrue(typeof ['x'] == 'object');
 assertTrue(typeof ['x'] === 'object');
+assertFalse(typeof ['x'] != 'object');
+assertFalse(typeof ['x'] !== 'object');
 assertTrue(typeof null == 'object');
 assertTrue(typeof null === 'object');
+assertFalse(typeof null != 'object');
+assertFalse(typeof null !== 'object');
+assertTrue(typeof 1 != 'object');
+assertTrue(typeof 1 !== 'object');
 assertFalse(typeof 1 == 'object');
 assertFalse(typeof 1 === 'object');
+assertTrue(typeof 'x' != 'object');
+assertTrue(typeof 'x' !== 'object');
 assertFalse(typeof 'x' == 'object');  // bug #674753
 assertFalse(typeof 'x' === 'object');
+assertTrue(typeof Object != 'object');
+assertTrue(typeof Object !== 'object');
 assertFalse(typeof Object == 'object');
 assertFalse(typeof Object === 'object');
+assertTrue(typeof undetectable != 'object');
+assertTrue(typeof undetectable !== 'object');
+assertFalse(typeof undetectable == 'object');
+assertFalse(typeof undetectable === 'object');
diff --git a/test/mjsunit/regress/regress-crbug-119800.js b/test/mjsunit/regress/regress-crbug-119800.js
index 3946fbb..85f28a7 100644
--- a/test/mjsunit/regress/regress-crbug-119800.js
+++ b/test/mjsunit/regress/regress-crbug-119800.js
@@ -5,9 +5,9 @@
 // Flags: --expose-debug-as debug
 
 function f() {
-  1;
-  2;
-  3;
+  print(1);
+  print(2);
+  print(3);
 }
 
 var Debug = debug.Debug;
@@ -34,4 +34,5 @@
 Debug.debuggerFlags().breakPointsActive.setValue(true);
 
 assertNull(exception);
-assertEquals(breaks, ["1;", "2;", "3;", "}", "Debug.setListener(null);"]);
+assertEquals(breaks, ["print(1);", "print(2);", "print(3);", "}",
+                      "Debug.setListener(null);"]);
diff --git a/test/mjsunit/regress/regress-crbug-451770.js b/test/mjsunit/regress/regress-crbug-451770.js
index 770c807..b4f088d 100644
--- a/test/mjsunit/regress/regress-crbug-451770.js
+++ b/test/mjsunit/regress/regress-crbug-451770.js
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-sloppy
-
 assertThrows(function f() {
   var t = { toString: function() { throw new Error(); } };
   var o = { [t]: 23 };
diff --git a/test/mjsunit/regress/regress-crbug-480807.js b/test/mjsunit/regress/regress-crbug-480807.js
index c273f20..a1448d6 100644
--- a/test/mjsunit/regress/regress-crbug-480807.js
+++ b/test/mjsunit/regress/regress-crbug-480807.js
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --allow-natives-syntax --use-osr --turbo-osr --noalways-opt
+// Flags: --allow-natives-syntax --use-osr --noalways-opt
 
 function foo() {
   var c = 0;
diff --git a/test/mjsunit/regress/regress-crbug-582048.js b/test/mjsunit/regress/regress-crbug-582048.js
new file mode 100644
index 0000000..6d98f48
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-582048.js
@@ -0,0 +1,31 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug
+
+var Debug = debug.Debug;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var frame_count = exec_state.frameCount();
+    for (var i = 0; i < frame_count; i++) {
+      var frame = exec_state.frame(i);
+      var scope_count = frame.scopeCount();
+      for (var j = 0; j < scope_count; j++) {
+        var scope = frame.scope(j);
+        assertTrue(scope.scopeObject().property('').isUndefined());
+      }
+    }
+  } catch (e) {
+    print(e, e.stack);
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+(function(a = 1) { debugger; })();
+
+Debug.setListener(null);
diff --git a/test/mjsunit/regress/regress-crbug-600257.js b/test/mjsunit/regress/regress-crbug-600257.js
new file mode 100644
index 0000000..87bd2e3
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-600257.js
@@ -0,0 +1,13 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --stack-size=100
+
+(function rec() {
+  try {
+    rec();
+  } catch (e) {
+    /{/;
+  }
+})();
diff --git a/test/mjsunit/regress/regress-crbug-602184.js b/test/mjsunit/regress/regress-crbug-602184.js
new file mode 100644
index 0000000..c7d793b
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-602184.js
@@ -0,0 +1,17 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function f(test, a) {
+  var v;
+  if (test) {
+    v = v|0;
+  }
+  a[v] = 1;
+}
+var v = new String();
+f(false, v);
+f(false, v);
+
+v = new Int32Array(10);
+f(true, v);
diff --git a/test/mjsunit/regress/regress-crbug-602595.js b/test/mjsunit/regress/regress-crbug-602595.js
new file mode 100644
index 0000000..7f6d478
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-602595.js
@@ -0,0 +1,12 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax --turbo-escape
+
+function f(a) { return [a] }
+
+assertEquals([23], f(23));
+assertEquals([42], f(42));
+%OptimizeFunctionOnNextCall(f);
+assertEquals([65], f(65));
diff --git a/test/mjsunit/regress/regress-crbug-603463.js b/test/mjsunit/regress/regress-crbug-603463.js
new file mode 100644
index 0000000..20bfae6
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-603463.js
@@ -0,0 +1,16 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function load(a, i) {
+  return a[i];
+}
+
+function f() {
+  return load(new Proxy({}, {}), undefined);
+}
+
+f();
+f();
+load([11, 22, 33], 0);
+f();
diff --git a/test/mjsunit/regress/regress-crbug-604299.js b/test/mjsunit/regress/regress-crbug-604299.js
new file mode 100644
index 0000000..9908f2d
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-604299.js
@@ -0,0 +1,9 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Array.prototype.__defineSetter__(0,function(value){});
+
+if (this.Intl) {
+  var o = new Intl.DateTimeFormat('en-US', {'timeZone': 'Asia/Katmandu'})
+}
diff --git a/test/mjsunit/regress/regress-crbug-605060.js b/test/mjsunit/regress/regress-crbug-605060.js
new file mode 100644
index 0000000..d2dc79a
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-605060.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+Array.prototype.__defineGetter__('map', function(){});
+Array.prototype.__defineGetter__('map', function(){});
+Array.prototype.__defineGetter__('map', function(){});
+assertTrue(%HasFastProperties(Array.prototype));
diff --git a/test/mjsunit/regress/regress-crbug-605581.js b/test/mjsunit/regress/regress-crbug-605581.js
new file mode 100644
index 0000000..0f1daab
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-605581.js
@@ -0,0 +1,28 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug
+
+var Debug = debug.Debug;
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    assertThrows(() => exec_state.frame(0).evaluate("bar.baz"), ReferenceError);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+(function() {
+  debugger;    // bar is still in TDZ at this point.
+  let bar = 1;
+  (x => bar);  // force bar to be context-allocated.
+})();
+
+Debug.setListener(null);
+assertNull(exception);
diff --git a/test/mjsunit/regress/regress-crbug-605862.js b/test/mjsunit/regress/regress-crbug-605862.js
new file mode 100644
index 0000000..3124c06
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-605862.js
@@ -0,0 +1,8 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --harmony-unicode-regexps
+
+/[]*1/u.exec("\u1234");
+/[^\u0000-\u{10ffff}]*1/u.exec("\u1234");
diff --git a/test/mjsunit/regress/regress-crbug-608279.js b/test/mjsunit/regress/regress-crbug-608279.js
new file mode 100644
index 0000000..22c69f2
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-608279.js
@@ -0,0 +1,18 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Flags: --always-opt --no-lazy
+
+function __f_38() {
+  try {
+    throw 0;
+  } catch (e) {
+    eval();
+    var __v_38 = { a: 'hest' };
+    __v_38.m = function () { return __v_38.a; };
+  }
+  return __v_38;
+}
+var __v_40 = __f_38();
+__v_40.m();
diff --git a/test/mjsunit/regress/regress-crbug-609029.js b/test/mjsunit/regress/regress-crbug-609029.js
new file mode 100644
index 0000000..bd77de2
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-609029.js
@@ -0,0 +1,7 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --always-opt --function-context-specialization --gc-interval=14
+// Flags: --turbo-filter=match --verify-heap
+"xxx".match();
diff --git a/test/mjsunit/regress/regress-crbug-609046.js b/test/mjsunit/regress/regress-crbug-609046.js
new file mode 100644
index 0000000..10b63af
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-609046.js
@@ -0,0 +1,36 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-debug-as debug
+
+// Test that hidden scopes are correctly walked in the scope chain.
+
+var Debug = debug.Debug;
+var exception = null;
+var delegate = null;
+var done = false;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    assertEquals([ debug.ScopeType.Block,
+                   debug.ScopeType.Script,
+                   debug.ScopeType.Global ],
+                 exec_state.frame(0).allScopes().map(s => s.scopeType()));
+    done = true;
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+for(let a = 0; a < 3; a++) {
+  debugger;
+  eval();  // Force context-allocation of everything.
+}
+
+Debug.setListener(null);
+assertNull(exception);
+assertTrue(done);
diff --git a/test/mjsunit/regress/regress-crbug-610207.js b/test/mjsunit/regress/regress-crbug-610207.js
new file mode 100644
index 0000000..4396a56
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-610207.js
@@ -0,0 +1,13 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Error.prepareStackTrace = function(exception, frames) {
+  return frames[0].getEvalOrigin();
+}
+
+try {
+  Realm.eval(0, "throw new Error('boom');");
+} catch(e) {
+  print(e.stack);
+}
diff --git a/test/mjsunit/regress/regress-crbug-610228.js b/test/mjsunit/regress/regress-crbug-610228.js
deleted file mode 100644
index ca077d5..0000000
--- a/test/mjsunit/regress/regress-crbug-610228.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2016 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --allow-natives-syntax
-
-function foo() { return JSON.stringify({a: 0.1}); }
-assertEquals('{"a":0.1}', foo());
-assertEquals('{"a":0.1}', foo());
-%OptimizeFunctionOnNextCall(foo);
-assertEquals('{"a":0.1}', foo());
diff --git a/test/mjsunit/regress/regress-crbug-612142.js b/test/mjsunit/regress/regress-crbug-612142.js
new file mode 100644
index 0000000..de2dc8d
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-612142.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var thrower = {[Symbol.toPrimitive]: function(e) { throw e }};
+try {
+  for (var i = 0; i < 10; i++) { }
+  for (var i = 0.5; i < 100000; ++i) { }
+  for (var i = 16 | 0 || 0 || this || 1; i;) { String.fromCharCode(thrower); }
+} catch (e) { }
diff --git a/test/mjsunit/regress/regress-crbug-617524.js b/test/mjsunit/regress/regress-crbug-617524.js
new file mode 100644
index 0000000..b32eeef
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-617524.js
@@ -0,0 +1,18 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-gc --always-opt
+
+function f(a,b,c) {
+  a.a = b;
+  a[1] = c;
+  return a;
+}
+
+f(new Array(5),.5,0);
+var o1 = f(new Array(5),0,.5);
+gc();
+var o2 = f(new Array(5),0,0);
+var o3 = f(new Array(5),0);
+assertEquals(0, o3.a);
diff --git a/test/mjsunit/regress/regress-crbug-620119.js b/test/mjsunit/regress/regress-crbug-620119.js
new file mode 100644
index 0000000..cbe5a78
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-620119.js
@@ -0,0 +1,8 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --no-lazy
+
+assertEquals(0, ((x, {[(x = function() { y = 0 }, "foo")]: y = eval(1)}) => { x(); return y })(42, {}));
+assertEquals(0, (function (x, {[(x = function() { y = 0 }, "foo")]: y = eval(1)}) { x(); return y })(42, {}));
diff --git a/test/mjsunit/regress/regress-object-assign-deprecated-2.js b/test/mjsunit/regress/regress-object-assign-deprecated-2.js
new file mode 100644
index 0000000..89693de
--- /dev/null
+++ b/test/mjsunit/regress/regress-object-assign-deprecated-2.js
@@ -0,0 +1,8 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var x = {a:1, b:2};
+Object.defineProperty(x, "c", {set(v) {}})
+var y = {get c() { return {a:1, b:2.5} }};
+Object.assign(x, y, x);
diff --git a/test/mjsunit/regress/regress-object-assign-deprecated.js b/test/mjsunit/regress/regress-object-assign-deprecated.js
new file mode 100644
index 0000000..d2e60f9
--- /dev/null
+++ b/test/mjsunit/regress/regress-object-assign-deprecated.js
@@ -0,0 +1,7 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var x = {a:1, b:2};
+var y = {a:1, b:2.5};
+Object.assign(x, x);
diff --git a/test/mjsunit/regress/regress-observe-map-cache.js b/test/mjsunit/regress/regress-observe-map-cache.js
deleted file mode 100644
index c71759c..0000000
--- a/test/mjsunit/regress/regress-observe-map-cache.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --harmony-object-observe
-// Flags: --allow-natives-syntax --enable-slow-asserts
-
-function f() {
-  var x = new Array(0);
-  x[-1] = -1;
-  Object.observe(x, function() { });
-}
-
-f();
-f();
diff --git a/test/mjsunit/regress/regress-opt-typeof-null.js b/test/mjsunit/regress/regress-opt-typeof-null.js
new file mode 100644
index 0000000..e4721a1
--- /dev/null
+++ b/test/mjsunit/regress/regress-opt-typeof-null.js
@@ -0,0 +1,12 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+function f() {
+  return typeof null === "object";
+};
+
+%OptimizeFunctionOnNextCall(f);
+assertTrue(f());
diff --git a/test/mjsunit/regress/regress-recurse-patch-binary-op.js b/test/mjsunit/regress/regress-recurse-patch-binary-op.js
new file mode 100644
index 0000000..842cc79
--- /dev/null
+++ b/test/mjsunit/regress/regress-recurse-patch-binary-op.js
@@ -0,0 +1,10 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var i = 0
+function valueOf() {
+  while (true) return i++ < 4 ? 1 + this : 2
+}
+
+1 + ({valueOf})
diff --git a/test/mjsunit/regress/regress-v8-5009.js b/test/mjsunit/regress/regress-v8-5009.js
new file mode 100644
index 0000000..f499548
--- /dev/null
+++ b/test/mjsunit/regress/regress-v8-5009.js
@@ -0,0 +1,61 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function fn1() {
+}
+
+function fn2() {
+}
+
+function fn3() {
+}
+
+function create(id) {
+  // Just some `FunctionTemplate` to hang on
+  var o = new version();
+
+  o.id = id;
+  o[0] = null;
+
+  return o;
+}
+
+function setM1(o) {
+  o.m1 = fn1;
+}
+
+function setM2(o) {
+  o.m2 = fn2;
+}
+
+function setAltM2(o) {
+  // Failing StoreIC happens here
+  o.m2 = fn3;
+}
+
+function setAltM1(o) {
+  o.m1 = null;
+}
+
+function test(o) {
+  o.m2();
+  o.m1();
+}
+
+var p0 = create(0);
+var p1 = create(1);
+var p2 = create(2);
+
+setM1(p0);
+setM1(p1);
+setM1(p2);
+
+setM2(p0);
+setAltM2(p0);
+setAltM1(p0);
+
+setAltM2(p1);
+
+setAltM2(p2);
+test(p2);
diff --git a/test/mjsunit/stack-traces-overflow.js b/test/mjsunit/stack-traces-overflow.js
index e20c609..af81971 100644
--- a/test/mjsunit/stack-traces-overflow.js
+++ b/test/mjsunit/stack-traces-overflow.js
@@ -27,10 +27,22 @@
 
 // Flags: --stack-size=100
 
+function overflow() {
+  var a, b, c, d, e;  // Allocates some locals on the function's stack frame.
+  overflow();
+}
 function rec1(a) { rec1(a+1); }
 function rec2(a) { rec3(a+1); }
 function rec3(a) { rec2(a+1); }
 
+// Test stack trace has correct function location at top of the stack.
+try {
+  overflow();
+} catch (e) {
+  var first_frame = e.stack.split("\n")[1]
+  assertTrue(first_frame.indexOf("stack-traces-overflow.js:30:18") > 0);
+}
+
 // Test stack trace getter and setter.
 try {
   rec1(0);
diff --git a/test/mjsunit/string-wrapper.js b/test/mjsunit/string-wrapper.js
new file mode 100644
index 0000000..d4b6500
--- /dev/null
+++ b/test/mjsunit/string-wrapper.js
@@ -0,0 +1,62 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+var limit = 10000;
+
+function testStringWrapper(string) {
+  assertEquals('a', string[0]);
+  assertEquals('b', string[1]);
+  assertEquals('c', string[2]);
+}
+
+(function testFastStringWrapperGrow() {
+  var string = new String("abc");
+  for (var i = 0; i < limit; i += 2) {
+    string[i] = {};
+  }
+  testStringWrapper(string);
+
+  for (var i = limit; i > 0; i -= 2) {
+    delete string[i];
+  }
+  testStringWrapper(string);
+})();
+
+(function testSlowStringWrapperGrow() {
+  var string = new String("abc");
+  // Force Slow String Wrapper Elements Kind
+  string[limit] = limit;
+  for (var i = 0; i < limit; i += 2) {
+    string[i] = {};
+  }
+  testStringWrapper(string);
+  assertEquals(limit, string[limit]);
+
+  for (var i = limit; i > 0; i -= 2) {
+    delete string[i];
+  }
+  testStringWrapper(string);
+  assertEquals(undefined, string[limit]);
+})();
+
+
+(function testReconfigureStringWrapperElements() {
+  var s = new String('abc');
+  // Can't reconfigure string contents.
+  assertThrows(() => Object.defineProperty(s, '1', {value: "value"}), TypeError);
+
+  // Configure a property outside the string range
+  var value = 'v1';
+  Object.defineProperty(s, '3', {
+    get: () => {return value},
+    configurable:true
+  });
+  assertEquals('v1', s[3]);
+  value = 'v2';
+  assertEquals('v2', s[3]);
+
+  Object.defineProperty(s, '3', {value: 'v3', configurable: false});
+  assertEquals('v3', s[3]);
+  assertThrows(() => Object.defineProperty(s, '3', {value:2}), TypeError);
+})();
diff --git a/test/mjsunit/tools/tickprocessor-test-func-info.log b/test/mjsunit/tools/tickprocessor-test-func-info.log
index 94aa56d..fcbf3b1 100644
--- a/test/mjsunit/tools/tickprocessor-test-func-info.log
+++ b/test/mjsunit/tools/tickprocessor-test-func-info.log
@@ -1,6 +1,6 @@
-shared-library,"shell",0x08048000,0x081ee000
-shared-library,"/lib32/libm-2.7.so",0xf7db6000,0xf7dd9000
-shared-library,"ffffe000-fffff000",0xffffe000,0xfffff000
+shared-library,"shell",0x08048000,0x081ee000,0
+shared-library,"/lib32/libm-2.7.so",0xf7db6000,0xf7dd9000,0
+shared-library,"ffffe000-fffff000",0xffffe000,0xfffff000,0
 profiler,"begin",1
 code-creation,Stub,0,0x424260,348,"CompareStub_GE"
 code-creation,LazyCompile,0,0x2a8100,18535,"DrawQube 3d-cube.js:188",0xf43abcac,
diff --git a/test/mjsunit/tools/tickprocessor-test.log b/test/mjsunit/tools/tickprocessor-test.log
index cf8b90d..fbc868e 100644
--- a/test/mjsunit/tools/tickprocessor-test.log
+++ b/test/mjsunit/tools/tickprocessor-test.log
@@ -1,6 +1,6 @@
-shared-library,"shell",0x08048000,0x081ee000
-shared-library,"/lib32/libm-2.7.so",0xf7db6000,0xf7dd9000
-shared-library,"ffffe000-fffff000",0xffffe000,0xfffff000
+shared-library,"shell",0x08048000,0x081ee000,0
+shared-library,"/lib32/libm-2.7.so",0xf7db6000,0xf7dd9000,0
+shared-library,"ffffe000-fffff000",0xffffe000,0xfffff000,0
 profiler,"begin",1
 code-creation,Stub,0,0xf540a100,474,"CEntryStub"
 code-creation,Script,0,0xf541cd80,736,"exp.js"
diff --git a/test/mjsunit/tools/tickprocessor.js b/test/mjsunit/tools/tickprocessor.js
index 73af098..804a85d 100644
--- a/test/mjsunit/tools/tickprocessor.js
+++ b/test/mjsunit/tools/tickprocessor.js
@@ -81,7 +81,7 @@
 
   var shell_prov = new UnixCppEntriesProvider();
   var shell_syms = [];
-  shell_prov.parseVmSymbols('shell', 0x08048000, 0x081ee000,
+  shell_prov.parseVmSymbols('shell', 0x08048000, 0x081ee000, 0,
       function (name, start, end) {
         shell_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
@@ -107,7 +107,7 @@
   };
   var libc_prov = new UnixCppEntriesProvider();
   var libc_syms = [];
-  libc_prov.parseVmSymbols('libc', 0xf7c5c000, 0xf7da5000,
+  libc_prov.parseVmSymbols('libc', 0xf7c5c000, 0xf7da5000, 0,
       function (name, start, end) {
         libc_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
@@ -145,17 +145,17 @@
 
   var shell_prov = new MacCppEntriesProvider();
   var shell_syms = [];
-  shell_prov.parseVmSymbols('shell', 0x00001b00, 0x00163156,
+  shell_prov.parseVmSymbols('shell', 0x00001c00, 0x00163256, 0x100,
       function (name, start, end) {
         shell_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
   assertEquals(
-      [['start', 0x00001b00, 0x00001b40],
-       ['dyld_stub_binding_helper', 0x00001b40, 0x0011b710],
-       ['v8::internal::RegExpMacroAssembler::CheckPosition', 0x0011b710, 0x00134250],
-       ['v8::internal::Runtime_StringReplaceRegExpWithString', 0x00134250, 0x00137220],
-       ['v8::internal::Runtime::GetElementOrCharAt', 0x00137220, 0x00137400],
-       ['v8::internal::Runtime_DebugGetPropertyDetails', 0x00137400, 0x00163156]],
+      [['start', 0x00001c00, 0x00001c40],
+       ['dyld_stub_binding_helper', 0x00001c40, 0x0011b810],
+       ['v8::internal::RegExpMacroAssembler::CheckPosition', 0x0011b810, 0x00134350],
+       ['v8::internal::Runtime_StringReplaceRegExpWithString', 0x00134350, 0x00137320],
+       ['v8::internal::Runtime::GetElementOrCharAt', 0x00137320, 0x00137500],
+       ['v8::internal::Runtime_DebugGetPropertyDetails', 0x00137500, 0x00163256]],
       shell_syms);
 
   // stdc++ library
@@ -168,7 +168,7 @@
   };
   var stdc_prov = new MacCppEntriesProvider();
   var stdc_syms = [];
-  stdc_prov.parseVmSymbols('stdc++', 0x95728fb4, 0x95770005,
+  stdc_prov.parseVmSymbols('stdc++', 0x95728fb4, 0x95770005, 0,
       function (name, start, end) {
         stdc_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
@@ -211,7 +211,7 @@
   };
   var shell_prov = new WindowsCppEntriesProvider();
   var shell_syms = [];
-  shell_prov.parseVmSymbols('shell.exe', 0x00400000, 0x0057c000,
+  shell_prov.parseVmSymbols('shell.exe', 0x00400000, 0x0057c000, 0,
       function (name, start, end) {
         shell_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
@@ -252,7 +252,7 @@
   read = exeSymbols;
   var exe_exe_syms = [];
   (new WindowsCppEntriesProvider()).parseVmSymbols(
-      'chrome.exe', 0x00400000, 0x00472000,
+      'chrome.exe', 0x00400000, 0x00472000, 0,
       function (name, start, end) {
         exe_exe_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
@@ -264,7 +264,7 @@
   read = dllSymbols;
   var exe_dll_syms = [];
   (new WindowsCppEntriesProvider()).parseVmSymbols(
-      'chrome.exe', 0x00400000, 0x00472000,
+      'chrome.exe', 0x00400000, 0x00472000, 0,
       function (name, start, end) {
         exe_dll_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
@@ -275,7 +275,7 @@
   read = dllSymbols;
   var dll_dll_syms = [];
   (new WindowsCppEntriesProvider()).parseVmSymbols(
-      'chrome.dll', 0x01c30000, 0x02b80000,
+      'chrome.dll', 0x01c30000, 0x02b80000, 0,
       function (name, start, end) {
         dll_dll_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
@@ -287,7 +287,7 @@
   read = exeSymbols;
   var dll_exe_syms = [];
   (new WindowsCppEntriesProvider()).parseVmSymbols(
-      'chrome.dll', 0x01c30000, 0x02b80000,
+      'chrome.dll', 0x01c30000, 0x02b80000, 0,
       function (name, start, end) {
         dll_exe_syms.push(Array.prototype.slice.apply(arguments, [0]));
       });
@@ -304,7 +304,7 @@
 
 
 CppEntriesProviderMock.prototype.parseVmSymbols = function(
-    name, startAddr, endAddr, symbolAdder) {
+    name, startAddr, endAddr, slideAddr, symbolAdder) {
   var symbols = {
     'shell':
         [['v8::internal::JSObject::LookupOwnRealNamedProperty(v8::internal::String*, v8::internal::LookupResult*)', 0x080f8800, 0x080f8d90],
diff --git a/test/mjsunit/wasm/adapter-frame.js b/test/mjsunit/wasm/adapter-frame.js
index 0e5d4b8..39164c7 100644
--- a/test/mjsunit/wasm/adapter-frame.js
+++ b/test/mjsunit/wasm/adapter-frame.js
@@ -27,8 +27,10 @@
 
   var builder = new WasmModuleBuilder();
   var sig = new Array();
-  sig.push(type);
+  sig.push(args);
   for (var i = 0; i < args; i++) sig.push(type);
+  sig.push(1);
+  sig.push(type);
   builder.addFunction("select", sig)
     .addBody([kExprGetLocal, which])
     .exportFunc();
diff --git a/test/mjsunit/wasm/asm-wasm-switch.js b/test/mjsunit/wasm/asm-wasm-switch.js
new file mode 100644
index 0000000..bbdb1a2
--- /dev/null
+++ b/test/mjsunit/wasm/asm-wasm-switch.js
@@ -0,0 +1,468 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-wasm
+
+(function TestSwitch0() {
+  function asmModule() {
+    "use asm"
+
+    function caller() {
+      var ret = 0;
+      var x = 7;
+      switch (x) {
+        case 1: {
+          return 0;
+        }
+        case 7: {
+          ret = 5;
+          break;
+        }
+        default: return 0;
+      }
+      return ret|0;
+    }
+
+    return {caller:caller};
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(5, wasm.caller());
+})();
+
+(function TestSwitch() {
+  function asmModule() {
+    "use asm"
+
+    function caller() {
+      var ret = 0;
+      var x = 7;
+      switch (x) {
+        case 1: return 0;
+        case 7: {
+          ret = 12;
+          break;
+        }
+        default: return 0;
+      }
+      switch (x) {
+        case 1: return 0;
+        case 8: return 0;
+        default: ret = (ret + 11)|0;
+      }
+      return ret|0;
+    }
+
+    return {caller:caller};
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(23, wasm.caller());
+})();
+
+(function TestSwitchFallthrough() {
+  function asmModule() {
+    "use asm"
+
+    function caller() {
+      var x = 17;
+      var ret = 0;
+      switch (x) {
+        case 17:
+        case 14: ret = 39;
+        case 1: ret = (ret + 3)|0;
+        case 4: break;
+        default: ret = (ret + 1)|0;
+      }
+      return ret|0;
+    }
+
+    return {caller:caller};
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(42, wasm.caller());
+})();
+
+(function TestNestedSwitch() {
+  function asmModule() {
+    "use asm"
+
+    function caller() {
+      var x = 3;
+      var y = -13;
+      switch (x) {
+        case 1: return 0;
+        case 3: {
+          switch (y) {
+            case 2: return 0;
+            case -13: return 43;
+            default: return 0;
+          }
+        }
+        default: return 0;
+      }
+      return 0;
+    }
+
+    return {caller:caller};
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(43, wasm.caller());
+})();
+
+(function TestSwitchWithDefaultOnly() {
+  function asmModule() {
+    "use asm";
+    function main(x) {
+      x = x|0;
+      switch(x|0) {
+        default: return -10;
+      }
+      return 0;
+    }
+    return {
+      main: main,
+    };
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(-10, wasm.main(2));
+  assertEquals(-10, wasm.main(54));
+})();
+
+(function TestEmptySwitch() {
+  function asmModule() {
+    "use asm";
+    function main(x) {
+      x = x|0;
+      switch(x|0) {
+      }
+      return 73;
+    }
+    return {
+      main: main,
+    };
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(73, wasm.main(7));
+})();
+
+(function TestSwitchWithBrTable() {
+  function asmModule() {
+    "use asm";
+    function main(x) {
+      x = x|0;
+      switch(x|0) {
+        case 14: return 23;
+        case 12: return 25;
+        case 15: return 29;
+        case 19: return 34;
+        case 18: return 17;
+        case 16: return 16;
+        default: return -1;
+      }
+      return 0;
+    }
+    return {
+      main: main,
+    };
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(25, wasm.main(12));
+  assertEquals(23, wasm.main(14));
+  assertEquals(29, wasm.main(15));
+  assertEquals(16, wasm.main(16));
+  assertEquals(17, wasm.main(18));
+  assertEquals(34, wasm.main(19));
+  assertEquals(-1, wasm.main(-1));
+})();
+
+(function TestSwitchWithBalancedTree() {
+  function asmModule() {
+    "use asm";
+    function main(x) {
+      x = x|0;
+      switch(x|0) {
+        case 5: return 52;
+        case 1: return 11;
+        case 6: return 63;
+        case 9: return 19;
+        case -4: return -4;
+      }
+      return 0;
+    }
+    return {
+      main: main,
+    };
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(-4, wasm.main(-4));
+  assertEquals(11, wasm.main(1));
+  assertEquals(52, wasm.main(5));
+  assertEquals(63, wasm.main(6));
+  assertEquals(19, wasm.main(9));
+  assertEquals(0, wasm.main(11));
+})();
+
+(function TestSwitchHybrid() {
+  function asmModule() {
+    "use asm";
+    function main(x) {
+      x = x|0;
+      switch(x|0) {
+        case 1: return -4;
+        case 2: return 23;
+        case 3: return 32;
+        case 4: return 14;
+        case 7: return 17;
+        case 10: return 10;
+        case 11: return 121;
+        case 12: return 112;
+        case 13: return 31;
+        case 16: return 16;
+        default: return -1;
+      }
+      return 0;
+    }
+    return {
+      main: main,
+    };
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(-4, wasm.main(1));
+  assertEquals(23, wasm.main(2));
+  assertEquals(32, wasm.main(3));
+  assertEquals(14, wasm.main(4));
+  assertEquals(17, wasm.main(7));
+  assertEquals(10, wasm.main(10));
+  assertEquals(121, wasm.main(11));
+  assertEquals(112, wasm.main(12));
+  assertEquals(31, wasm.main(13));
+  assertEquals(16, wasm.main(16));
+  assertEquals(-1, wasm.main(20));
+})();
+
+(function TestSwitchFallthroughWithBrTable() {
+  function asmModule() {
+    "use asm";
+    function main(x) {
+      x = x|0;
+      var ret = 0;
+      switch(x|0) {
+        case 1: {
+          ret = 21;
+          break;
+        }
+        case 2: {
+          ret = 12;
+          break;
+        }
+        case 3: {
+          ret = 43;
+        }
+        case 4: {
+          ret = 54;
+          break;
+        }
+        default: {
+          ret = 10;
+          break;
+        }
+      }
+      return ret|0;
+    }
+    return {
+      main: main,
+    };
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(12, wasm.main(2));
+  assertEquals(10, wasm.main(10));
+  assertEquals(54, wasm.main(3));
+})();
+
+(function TestSwitchFallthroughHybrid() {
+  function asmModule() {
+    "use asm";
+    function main(x) {
+      x = x|0;
+      var ret = 0;
+      switch(x|0) {
+        case 1: {
+          ret = 1;
+          break;
+        }
+        case 2: {
+          ret = 2;
+          break;
+        }
+        case 3: {
+          ret = 3;
+          break;
+        }
+        case 4: {
+          ret = 4;
+        }
+        case 7: {
+          ret = 7;
+          break;
+        }
+        case 10: {
+          ret = 10;
+        }
+        case 16: {
+          ret = 16;
+          break;
+        }
+        case 17: {
+          ret = 17;
+          break;
+        }
+        case 18: {
+          ret = 18;
+          break;
+        }
+        case 19: {
+          ret = 19;
+        }
+        default: {
+          ret = -1;
+          break;
+        }
+      }
+      return ret|0;
+    }
+    return {
+      main: main,
+    };
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(7, wasm.main(4));
+  assertEquals(16, wasm.main(10));
+  assertEquals(-1, wasm.main(19));
+  assertEquals(-1, wasm.main(23));
+})();
+
+(function TestSwitchHybridWithNoDefault() {
+  function asmModule() {
+    "use asm";
+    function main(x) {
+      x = x|0;
+      var ret = 19;
+      switch(x|0) {
+        case 1: {
+          ret = 1;
+          break;
+        }
+        case 2: {
+          ret = 2;
+          break;
+        }
+        case 3: {
+          ret = 3;
+          break;
+        }
+        case 4: {
+          ret = 4;
+          break;
+        }
+        case 7: {
+          ret = 7;
+          break;
+        }
+      }
+      return ret|0;
+    }
+    return {
+      main: main,
+    };
+  }
+  var wasm = Wasm.instantiateModuleFromAsm(asmModule.toString());
+  assertEquals(2, wasm.main(2));
+  assertEquals(7, wasm.main(7));
+  assertEquals(19, wasm.main(-1));
+})();
+
+(function TestLargeSwitch() {
+  function LargeSwitchGenerator(begin, end, gap, handle_case) {
+    var str = "function asmModule() {\
+      \"use asm\";\
+      function main(x) {\
+        x = x|0;\
+        switch(x|0) {";
+    for (var i = begin; i <= end; i = i + gap) {
+      str = str.concat("case ", i.toString(), ": ", handle_case(i));
+    }
+    str = str.concat("default: return -1;\
+        }\
+        return -2;\
+      }\
+      return {main: main}; }");
+
+    var wasm = Wasm.instantiateModuleFromAsm(str);
+    return wasm;
+  }
+
+  var handle_case = function(k) {
+    return "return ".concat(k, ";");
+  }
+  var wasm = LargeSwitchGenerator(0, 513, 1, handle_case);
+  for (var i = 0; i <= 513; i++) {
+    assertEquals(i, wasm.main(i));
+  }
+  assertEquals(-1, wasm.main(-1));
+
+  wasm = LargeSwitchGenerator(0, 1024, 3, handle_case);
+  for (var i = 0; i <= 1024; i = i + 3) {
+    assertEquals(i, wasm.main(i));
+  }
+  assertEquals(-1, wasm.main(-1));
+
+  wasm = LargeSwitchGenerator(-2147483648, -2147483000, 1, handle_case);
+  for (var i = -2147483648; i <= -2147483000; i++) {
+    assertEquals(i, wasm.main(i));
+  }
+  assertEquals(-1, wasm.main(-1));
+  assertEquals(-1, wasm.main(214748647));
+
+  wasm = LargeSwitchGenerator(-2147483648, -2147483000, 3, handle_case);
+  for (var i = -2147483648; i <= -2147483000; i = i + 3) {
+    assertEquals(i, wasm.main(i));
+  }
+  assertEquals(-1, wasm.main(-1));
+  assertEquals(-1, wasm.main(214748647));
+
+  wasm = LargeSwitchGenerator(2147483000, 2147483647, 1, handle_case);
+  for (var i = 2147483000; i <= 2147483647; i++) {
+    assertEquals(i, wasm.main(i));
+  }
+  assertEquals(-1, wasm.main(-1));
+  assertEquals(-1, wasm.main(-214748647));
+
+  wasm = LargeSwitchGenerator(2147483000, 2147483647, 4, handle_case);
+  for (var i = 2147483000; i <= 2147483647; i = i + 4) {
+    assertEquals(i, wasm.main(i));
+  }
+  assertEquals(-1, wasm.main(-1));
+  assertEquals(-1, wasm.main(-214748647));
+
+  handle_case = function(k) {
+    if (k != 7) return "return ".concat(k, ";");
+    else return "break;";
+  }
+  wasm = LargeSwitchGenerator(0, 1499, 7, handle_case);
+  for (var i = 0; i <= 1499; i = i + 7) {
+    if (i == 7) assertEquals(-2, wasm.main(i));
+    else assertEquals(i, wasm.main(i));
+  }
+  assertEquals(-1, wasm.main(-1));
+
+  handle_case = function(k) {
+    if (k != 56) return "break;";
+    else return "return 23;";
+  }
+  wasm = LargeSwitchGenerator(0, 638, 2, handle_case);
+  for (var i = 0; i <= 638; i = i + 2) {
+    if (i == 56) assertEquals(23, wasm.main(i));
+    else assertEquals(-2, wasm.main(i));
+  }
+  assertEquals(-1, wasm.main(-1));
+})();
diff --git a/test/mjsunit/wasm/asm-wasm.js b/test/mjsunit/wasm/asm-wasm.js
index 2efb006..54d7d7a 100644
--- a/test/mjsunit/wasm/asm-wasm.js
+++ b/test/mjsunit/wasm/asm-wasm.js
@@ -23,6 +23,20 @@
 
 assertWasm(11, EmptyTest);
 
+function VoidReturnTest() {
+  "use asm";
+  function caller() {
+    empty();
+    return 19;
+  }
+  function empty() {
+    var x = 0;
+    if (x) return;
+  }
+  return {caller: caller};
+}
+
+assertWasm(19, VoidReturnTest);
 
 function IntTest() {
   "use asm";
@@ -193,6 +207,55 @@
 assertWasm(7, TestReturnInWhileWithoutBraces);
 
 
+function TestBreakInIf() {
+  "use asm";
+
+  function caller() {
+    label: {
+      if(1) break label;
+      return 11;
+    }
+    return 12;
+  }
+
+  return {caller: caller};
+}
+
+assertWasm(12, TestBreakInIf);
+
+function TestBreakInIfInDoWhileFalse() {
+  "use asm";
+
+  function caller() {
+    do {
+      if(1) break;
+      return 11;
+    } while(0);
+    return 12;
+  }
+
+  return {caller: caller};
+}
+
+assertWasm(12, TestBreakInIfInDoWhileFalse);
+
+function TestBreakInElse() {
+  "use asm";
+
+  function caller() {
+    do {
+      if(0) ;
+      else break;
+      return 14;
+    } while(0);
+    return 15;
+  }
+
+  return {caller: caller};
+}
+
+assertWasm(15, TestBreakInElse);
+
 function TestBreakInWhile() {
   "use asm";
 
@@ -209,6 +272,22 @@
 assertWasm(8, TestBreakInWhile);
 
 
+function TestBreakInIfInWhile() {
+  "use asm";
+
+  function caller() {
+    while(1) {
+      if (1) break;
+      else break;
+    }
+    return 8;
+  }
+
+  return {caller: caller};
+}
+
+assertWasm(8, TestBreakInIfInWhile);
+
 function TestBreakInNestedWhile() {
   "use asm";
 
@@ -769,82 +848,6 @@
 assertWasm(41, TestConditional);
 
 
-function TestSwitch() {
-  "use asm"
-
-  function caller() {
-    var ret = 0;
-    var x = 7;
-    switch (x) {
-      case 1: return 0;
-      case 7: {
-        ret = 12;
-        break;
-      }
-      default: return 0;
-    }
-    switch (x) {
-      case 1: return 0;
-      case 8: return 0;
-      default: ret = (ret + 11)|0;
-    }
-    return ret|0;
-  }
-
-  return {caller:caller};
-}
-
-assertWasm(23, TestSwitch);
-
-
-function TestSwitchFallthrough() {
-  "use asm"
-
-  function caller() {
-    var x = 17;
-    var ret = 0;
-    switch (x) {
-      case 17:
-      case 14: ret = 39;
-      case 1: ret = (ret + 3)|0;
-      case 4: break;
-      default: ret = (ret + 1)|0;
-    }
-    return ret|0;
-  }
-
-  return {caller:caller};
-}
-
-assertWasm(42, TestSwitchFallthrough);
-
-
-function TestNestedSwitch() {
-  "use asm"
-
-  function caller() {
-    var x = 3;
-    var y = -13;
-    switch (x) {
-      case 1: return 0;
-      case 3: {
-        switch (y) {
-          case 2: return 0;
-          case -13: return 43;
-          default: return 0;
-        }
-      }
-      default: return 0;
-    }
-    return 0;
-  }
-
-  return {caller:caller};
-}
-
-assertWasm(43, TestNestedSwitch);
-
-
 (function () {
 function TestInitFunctionWithNoGlobals() {
   "use asm";
diff --git a/test/mjsunit/wasm/calls.js b/test/mjsunit/wasm/calls.js
index 11cc92a..94e97e6 100644
--- a/test/mjsunit/wasm/calls.js
+++ b/test/mjsunit/wasm/calls.js
@@ -37,20 +37,42 @@
   assertFalse(exp === null);
   assertFalse(exp === 0);
   assertEquals("function", typeof exp);
-
   return exp;
 }
 
+(function I64SubTest() {
+
+  var builder = new WasmModuleBuilder();
+
+  builder.addMemory(1, 1, true);
+  builder.addFunction("sub", kSig_l_ll)
+    .addBody([           // --
+      kExprGetLocal, 0,  // --
+      kExprGetLocal, 1,  // --
+      kExprI64Sub])      // --
+    .exportFunc()
+
+  var module = builder.instantiate();
+  assertModule(module, kPageSize);
+
+  // Check the properties of the sub function.
+  var sub = assertFunction(module, "sub");
+  assertEquals(-55, sub(33, 88));
+  assertEquals(-55555, sub(33333, 88888));
+  assertEquals(-5555555, sub(3333333, 8888888));
+})();
+
 (function SubTest() {
 
   var builder = new WasmModuleBuilder();
 
   builder.addMemory(1, 1, true);
-  builder.addFunction("sub", [kAstI32, kAstI32, kAstI32])
+  builder.addFunction("sub", kSig_i_ii)
     .addBody([
-      kExprI32Sub,                  // --
       kExprGetLocal, 0,             // --
-      kExprGetLocal, 1])            // --
+      kExprGetLocal, 1,             // --
+      kExprI32Sub,                  // --
+    ])
     .exportFunc()
 
   var module = builder.instantiate();
@@ -70,7 +92,7 @@
 
   var kPages = 2;
   builder.addMemory(kPages, kPages, true);
-  builder.addFunction("nop", [kAstStmt])
+  builder.addFunction("nop", kSig_v_v)
     .addBody([kExprNop])
     .exportFunc();
 
@@ -87,11 +109,12 @@
 
   var kPages = 3;
   builder.addMemory(kPages, kPages, true);
-  builder.addFunction("flt", [kAstI32, kAstF64, kAstF64])
+  builder.addFunction("flt", kSig_i_dd)
     .addBody([
-      kExprF64Lt,           // --
       kExprGetLocal, 0,     // --
-      kExprGetLocal, 1])    // --
+      kExprGetLocal, 1,     // --
+      kExprF64Lt            // --
+    ])                      // --
     .exportFunc();
 
   var module = builder.instantiate();
diff --git a/test/mjsunit/wasm/divrem-trap.js b/test/mjsunit/wasm/divrem-trap.js
index 976e473..6f3ff5d 100644
--- a/test/mjsunit/wasm/divrem-trap.js
+++ b/test/mjsunit/wasm/divrem-trap.js
@@ -33,8 +33,12 @@
 function makeBinop(opcode) {
   var builder = new WasmModuleBuilder();
 
-  builder.addFunction("main", [kAstI32, kAstI32, kAstI32])
-    .addBody([opcode, kExprGetLocal, 0, kExprGetLocal, 1])
+  builder.addFunction("main", kSig_i_ii)
+    .addBody([
+      kExprGetLocal, 0,           // --
+      kExprGetLocal, 1,           // --
+      opcode,                     // --
+    ])
     .exportFunc();
 
   return builder.instantiate().exports.main;
diff --git a/test/mjsunit/wasm/export-table.js b/test/mjsunit/wasm/export-table.js
index e85da9b..a41d85d 100644
--- a/test/mjsunit/wasm/export-table.js
+++ b/test/mjsunit/wasm/export-table.js
@@ -11,11 +11,12 @@
   var kReturnValue = 88;
   var builder = new WasmModuleBuilder();
 
-  builder.addFunction("main", [kAstI32])
+  builder.addFunction("main", kSig_i)
     .addBody([
-      kExprReturn,
       kExprI8Const,
-      kReturnValue])
+      kReturnValue,
+      kExprReturn, kArity1
+    ])
     .exportFunc();
 
   var module = builder.instantiate();
@@ -31,11 +32,12 @@
 
   var builder = new WasmModuleBuilder();
 
-  builder.addFunction("main", [kAstI32])
+  builder.addFunction("main", kSig_i)
     .addBody([
-      kExprReturn,
       kExprI8Const,
-      kReturnValue])
+      kReturnValue,
+      kExprReturn, kArity1
+    ])
     .exportAs("blah")
     .exportAs("foo");
 
@@ -48,3 +50,25 @@
   assertEquals(kReturnValue, module.exports.foo());
   assertEquals(kReturnValue, module.exports.blah());
 })();
+
+
+(function testNumericName() {
+  var kReturnValue = 93;
+
+  var builder = new WasmModuleBuilder();
+
+  builder.addFunction("main", kSig_i)
+    .addBody([
+      kExprI8Const,
+      kReturnValue,
+      kExprReturn, kArity1
+    ])
+    .exportAs("0");
+
+  var module = builder.instantiate();
+
+  assertEquals("object", typeof module.exports);
+  assertEquals("function", typeof module.exports["0"]);
+
+  assertEquals(kReturnValue, module.exports["0"]());
+})();
diff --git a/test/mjsunit/wasm/ffi-error.js b/test/mjsunit/wasm/ffi-error.js
index 649ee27..b6474c6 100644
--- a/test/mjsunit/wasm/ffi-error.js
+++ b/test/mjsunit/wasm/ffi-error.js
@@ -10,13 +10,14 @@
 function testCallFFI(ffi) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = [kAstI32, kAstF64, kAstF64];
+  var sig_index = kSig_i_dd;
   builder.addImport("fun", sig_index);
   builder.addFunction("main", sig_index)
     .addBody([
-      kExprCallImport, 0,   // --
-      kExprGetLocal, 0,     // --
-      kExprGetLocal, 1])    // --
+      kExprGetLocal, 0,              // --
+      kExprGetLocal, 1,              // --
+      kExprCallFunction, kArity2, 0, // --
+    ])    // --
     .exportFunc();
 
   var module = builder.instantiate(ffi);
diff --git a/test/mjsunit/wasm/ffi.js b/test/mjsunit/wasm/ffi.js
index 61fcf02..87dfe3b 100644
--- a/test/mjsunit/wasm/ffi.js
+++ b/test/mjsunit/wasm/ffi.js
@@ -10,13 +10,14 @@
 function testCallFFI(func, check) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature([kAstI32, kAstF64, kAstF64]);
+  var sig_index = builder.addSignature(kSig_i_dd);
   builder.addImport("func", sig_index);
   builder.addFunction("main", sig_index)
     .addBody([
-      kExprCallImport, 0,       // --
-      kExprGetLocal, 0,         // --
-      kExprGetLocal, 1])        // --
+      kExprGetLocal, 0,            // --
+      kExprGetLocal, 1,            // --
+      kExprCallImport, kArity2, 0  // --
+    ])        // --
     .exportFunc();
 
   var main = builder.instantiate({func: func}).exports.main;
@@ -184,14 +185,14 @@
 
   var builder = new WasmModuleBuilder();
 
-  builder.addImport("func", [kAstStmt, type, type]);
-  builder.addFunction("main", [kAstI32, type, type])
+  builder.addImport("func", makeSig_v_xx(type));
+  builder.addFunction("main", makeSig_r_xx(kAstI32, type))
     .addBody([
-      kExprBlock, 2,          // --
-      kExprCallImport, 0,     // --
-      kExprGetLocal, 0,       // --
-      kExprGetLocal, 1,       // --
-      kExprI8Const, 99])      // --
+      kExprGetLocal, 0,            // --
+      kExprGetLocal, 1,            // --
+      kExprCallImport, kArity2, 0, // --
+      kExprI8Const, 99             // --
+    ])                             // --
     .exportFunc()
 
   var main = builder.instantiate(ffi).exports.main;
@@ -240,15 +241,15 @@
 function testCallPrint() {
   var builder = new WasmModuleBuilder();
 
-  builder.addImport("print", [kAstStmt, kAstI32]);
-  builder.addImport("print", [kAstStmt, kAstF64]);
-  builder.addFunction("main", [kAstStmt, kAstF64])
+  builder.addImport("print", makeSig_v_x(kAstI32));
+  builder.addImport("print", makeSig_v_x(kAstF64));
+  builder.addFunction("main", makeSig_v_x(kAstF64))
     .addBody([
-      kExprBlock, 2,            // --
-      kExprCallImport, 0,       // --
-      kExprI8Const, 97,         // --
-      kExprCallImport, 1,       // --
-      kExprGetLocal, 0])        // --
+      kExprI8Const, 97,             // --
+      kExprCallImport, kArity1, 0,  // --
+      kExprGetLocal, 0,             // --
+      kExprCallImport, kArity1, 1   // --
+    ])        // --
     .exportFunc()
 
   var main = builder.instantiate({print: print}).exports.main;
diff --git a/test/mjsunit/wasm/function-prototype.js b/test/mjsunit/wasm/function-prototype.js
index db04b95..25339ad 100644
--- a/test/mjsunit/wasm/function-prototype.js
+++ b/test/mjsunit/wasm/function-prototype.js
@@ -10,7 +10,7 @@
 (function TestFunctionPrototype() {
   var builder = new WasmModuleBuilder();
 
-  builder.addFunction("nine", [kAstI32])
+  builder.addFunction("nine", kSig_i)
     .addBody([kExprI8Const, 9])
     .exportFunc();
 
diff --git a/test/mjsunit/wasm/gc-frame.js b/test/mjsunit/wasm/gc-frame.js
index 8387d26..5fa9b05 100644
--- a/test/mjsunit/wasm/gc-frame.js
+++ b/test/mjsunit/wasm/gc-frame.js
@@ -10,14 +10,13 @@
 function makeFFI(func, t) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature([t,t,t,t,t,t,t,t,t,t,t]);
+  var sig_index = builder.addSignature([10,t,t,t,t,t,t,t,t,t,t,1,t]);
   builder.addImport("func", sig_index);
   // Try to create a frame with lots of spilled values and parameters
   // on the stack to try to catch GC bugs in the reference maps for
   // the different parts of the stack.
   builder.addFunction("main", sig_index)
     .addBody([
-      kExprCallImport, 0,       // --
       kExprGetLocal, 0,         // --
       kExprGetLocal, 1,         // --
       kExprGetLocal, 2,         // --
@@ -28,7 +27,7 @@
       kExprGetLocal, 7,         // --
       kExprGetLocal, 8,         // --
       kExprGetLocal, 9,         // --
-      kExprCallImport, 0,       // --
+      kExprCallImport, 10, 0,   // --
       kExprGetLocal, 0,         // --
       kExprGetLocal, 1,         // --
       kExprGetLocal, 2,         // --
@@ -38,7 +37,8 @@
       kExprGetLocal, 6,         // --
       kExprGetLocal, 7,         // --
       kExprGetLocal, 8,         // --
-      kExprGetLocal, 9          // --
+      kExprGetLocal, 9,         // --
+      kExprCallImport, 10, 0    // --
     ])                          // --
     .exportFunc();
 
diff --git a/test/mjsunit/wasm/import-table.js b/test/mjsunit/wasm/import-table.js
index 7579901..c3f8cb9 100644
--- a/test/mjsunit/wasm/import-table.js
+++ b/test/mjsunit/wasm/import-table.js
@@ -10,13 +10,13 @@
 function testCallImport(func, check) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature([kAstI32, kAstF64, kAstF64]);
+  var sig_index = builder.addSignature(kSig_i_dd);
   builder.addImport("func", sig_index);
   builder.addFunction("main", sig_index)
     .addBody([
-      kExprCallImport, 0,          // --
       kExprGetLocal, 0,            // --
-      kExprGetLocal, 1])           // --
+      kExprGetLocal, 1,            // --
+      kExprCallImport, 2, 0])      // --
     .exportAs("main");
 
   var main = builder.instantiate({func: func}).exports.main;
@@ -186,14 +186,14 @@
 
   var builder = new WasmModuleBuilder();
 
-  builder.addImport("func", [kAstStmt, type, type]);
-  builder.addFunction("main", [kAstI32, type, type])
+  builder.addImport("func", makeSig_v_xx(type));
+  builder.addFunction("main", makeSig_r_xx(kAstI32, type))
     .addBody([
-      kExprBlock, 2,              // --
-      kExprCallImport, 0,         // --
       kExprGetLocal, 0,           // --
       kExprGetLocal, 1,           // --
-      kExprI8Const, 99])
+      kExprCallImport, 2, 0,      // --
+      kExprI8Const, 99,           // --
+    ])
     .exportFunc("main");
 
   var main = builder.instantiate(ffi).exports.main;
@@ -241,15 +241,15 @@
 
 function testCallPrint() {
   var builder = new WasmModuleBuilder();
-  builder.addImport("print", [kAstStmt, kAstI32]);
-  builder.addImport("print", [kAstStmt, kAstF64]);
-  builder.addFunction("main", [kAstStmt, kAstF64])
+  builder.addImport("print", makeSig_v_x(kAstI32));
+  builder.addImport("print", makeSig_r_x(kAstF64, kAstF64));
+  builder.addFunction("main", makeSig_r_x(kAstF64, kAstF64))
     .addBody([
-      kExprBlock, 2,              // --
-      kExprCallImport, 0,         // --
-      kExprI8Const, 97,           // --
-      kExprCallImport, 1,         // --
-      kExprGetLocal, 0])          // --
+      kExprI8Const, 97,             // --
+      kExprCallImport, kArity1, 0,  // --
+      kExprGetLocal, 0,             // --
+      kExprCallImport, kArity1, 1   // --
+    ])
     .exportFunc();
 
   var main = builder.instantiate({print: print}).exports.main;
@@ -266,13 +266,14 @@
 function testCallImport2(foo, bar, expected) {
   var builder = new WasmModuleBuilder();
 
-  builder.addImport("foo", [kAstI32]);
-  builder.addImport("bar", [kAstI32]);
-  builder.addFunction("main", [kAstI32])
+  builder.addImport("foo", kSig_i);
+  builder.addImport("bar", kSig_i);
+  builder.addFunction("main", kSig_i)
     .addBody([
+      kExprCallImport, kArity0, 0, // --
+      kExprCallImport, kArity0, 1, // --
       kExprI32Add,                 // --
-      kExprCallImport, 0,          // --
-      kExprCallImport, 1])          // --
+    ])                             // --
     .exportFunc();
 
   var main = builder.instantiate({foo: foo, bar: bar}).exports.main;
diff --git a/test/mjsunit/wasm/indirect-calls.js b/test/mjsunit/wasm/indirect-calls.js
index 3258687..80bee41 100644
--- a/test/mjsunit/wasm/indirect-calls.js
+++ b/test/mjsunit/wasm/indirect-calls.js
@@ -10,22 +10,25 @@
 var module = (function () {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature([kAstI32, kAstI32, kAstI32]);
+  var sig_index = builder.addSignature(kSig_i_ii);
   builder.addImport("add", sig_index);
   builder.addFunction("add", sig_index)
     .addBody([
-      kExprCallImport, 0, kExprGetLocal, 0, kExprGetLocal, 1
+      kExprGetLocal, 0, kExprGetLocal, 1, kExprCallImport, kArity2, 0
     ]);
   builder.addFunction("sub", sig_index)
     .addBody([
-      kExprI32Sub, kExprGetLocal, 0, kExprGetLocal, 1
+      kExprGetLocal, 0,             // --
+      kExprGetLocal, 1,             // --
+      kExprI32Sub,                  // --
     ]);
-  builder.addFunction("main", [kAstI32, kAstI32, kAstI32, kAstI32])
+  builder.addFunction("main", kSig_i_iii)
     .addBody([
-      kExprCallIndirect, sig_index,
       kExprGetLocal, 0,
       kExprGetLocal, 1,
-      kExprGetLocal, 2])
+      kExprGetLocal, 2,
+      kExprCallIndirect, kArity2, sig_index
+    ])
     .exportFunc()
   builder.appendToFunctionTable([0, 1, 2]);
 
diff --git a/test/mjsunit/wasm/instantiate-module-basic.js b/test/mjsunit/wasm/instantiate-module-basic.js
index bc13122..800dcc1 100644
--- a/test/mjsunit/wasm/instantiate-module-basic.js
+++ b/test/mjsunit/wasm/instantiate-module-basic.js
@@ -13,7 +13,7 @@
   var builder = new WasmModuleBuilder();
 
   builder.addMemory(1, 1, true);
-  builder.addFunction("main", [kAstI32])
+  builder.addFunction("main", kSig_i)
     .addBody([kExprI8Const, kReturnValue])
     .exportFunc();
 
diff --git a/test/mjsunit/wasm/instantiate-run-basic.js b/test/mjsunit/wasm/instantiate-run-basic.js
index 2e649a0..fe6fc14 100644
--- a/test/mjsunit/wasm/instantiate-run-basic.js
+++ b/test/mjsunit/wasm/instantiate-run-basic.js
@@ -11,7 +11,7 @@
   var kReturnValue = 107;
   var builder = new WasmModuleBuilder();
 
-  builder.addFunction("main", [kAstI32])
+  builder.addFunction("main", kSig_i_i)
     .addBody([kExprI8Const, kReturnValue])
     .exportFunc();
 
diff --git a/test/mjsunit/wasm/module-memory.js b/test/mjsunit/wasm/module-memory.js
index ef85eb2..a5e5f42 100644
--- a/test/mjsunit/wasm/module-memory.js
+++ b/test/mjsunit/wasm/module-memory.js
@@ -13,19 +13,27 @@
   var builder = new WasmModuleBuilder();
 
   builder.addMemory(1, 1, true);
-  builder.addFunction("main", [kAstI32, kAstI32])
+  builder.addFunction("main", kSig_i_i)
     .addBody([
-      kExprBlock,2,
-        kExprLoop,1,
-          kExprIf,
+    // main body: while(i) { if(mem[i]) return -1; i -= 4; } return 0;
+      kExprLoop,
+        kExprGetLocal,0,
+        kExprIf,
             kExprGetLocal,0,
-            kExprBr, 0,
-              kExprIfElse,
-                kExprI32LoadMem,0,0,kExprGetLocal,0,
-                kExprBr,2, kExprI8Const, 255,
-                kExprSetLocal,0,
-                  kExprI32Sub,kExprGetLocal,0,kExprI8Const,4,
-        kExprI8Const,0])
+          kExprI32LoadMem,0,0,
+          kExprIf,
+            kExprI8Const,255,
+            kExprReturn, kArity1,
+          kExprEnd,
+              kExprGetLocal,0,
+              kExprI8Const,4,
+            kExprI32Sub,
+          kExprSetLocal,0,
+        kExprBr, kArity1, 1,
+        kExprEnd,
+      kExprEnd,
+      kExprI8Const,0
+    ])
     .exportFunc();
 
   return builder.instantiate(null, memory);
@@ -120,14 +128,16 @@
   var builder = new WasmModuleBuilder();
 
   builder.addMemory(1, 1, true);
-  builder.addFunction("geti", [kAstI32, kAstI32, kAstI32])
+  builder.addFunction("geti", kSig_i_ii)
     .addBody([
-      kExprI32StoreMem, 0, 0, kExprGetLocal, 0, kExprI32LoadMem, 0, 0, kExprGetLocal, 1
+      kExprGetLocal, 0,
+      kExprGetLocal, 1,
+      kExprI32LoadMem, 0, 0,
+      kExprI32StoreMem, 0, 0
     ])
     .exportFunc();
 
   var module = builder.instantiate();
-
   var offset;
 
   function read() { return module.exports.geti(0, offset); }
diff --git a/test/mjsunit/wasm/parallel_compilation.js b/test/mjsunit/wasm/parallel_compilation.js
new file mode 100644
index 0000000..23c5658
--- /dev/null
+++ b/test/mjsunit/wasm/parallel_compilation.js
@@ -0,0 +1,100 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-wasm --wasm-num-compilation-tasks=10
+
+load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
+
+function assertModule(module, memsize) {
+  // Check the module exists.
+  assertFalse(module === undefined);
+  assertFalse(module === null);
+  assertFalse(module === 0);
+  assertEquals("object", typeof module);
+
+  // Check the memory is an ArrayBuffer.
+  var mem = module.exports.memory;
+  assertFalse(mem === undefined);
+  assertFalse(mem === null);
+  assertFalse(mem === 0);
+  assertEquals("object", typeof mem);
+  assertTrue(mem instanceof ArrayBuffer);
+  for (var i = 0; i < 4; i++) {
+    module.exports.memory = 0;  // should be ignored
+    assertEquals(mem, module.exports.memory);
+  }
+
+  assertEquals(memsize, module.exports.memory.byteLength);
+}
+
+function assertFunction(module, func) {
+  assertEquals("object", typeof module.exports);
+
+  var exp = module.exports[func];
+  assertFalse(exp === undefined);
+  assertFalse(exp === null);
+  assertFalse(exp === 0);
+  assertEquals("function", typeof exp);
+  return exp;
+}
+
+(function CompileFunctionsTest() {
+
+  var builder = new WasmModuleBuilder();
+
+  builder.addMemory(1, 1, true);
+  for (i = 0; i < 1000; i++) {
+    builder.addFunction("sub" + i, kSig_i_i)
+      .addBody([                // --
+        kExprGetLocal, 0,       // --
+        kExprI32Const, i % 61,  // --
+        kExprI32Sub])           // --
+      .exportFunc()
+  }
+
+  var module = builder.instantiate();
+  assertModule(module, kPageSize);
+
+  // Check the properties of the functions.
+  for (i = 0; i < 1000; i++) {
+    var sub = assertFunction(module, "sub" + i);
+    assertEquals(33 - (i % 61), sub(33));
+  }
+})();
+
+(function CallFunctionsTest() {
+
+  var builder = new WasmModuleBuilder();
+
+  var f = []
+
+  f[0] = builder.addFunction("add0", kSig_i_ii)
+  .addBody([
+            kExprGetLocal, 0,             // --
+            kExprGetLocal, 1,             // --
+            kExprI32Add,                  // --
+          ])
+          .exportFunc()
+
+  builder.addMemory(1, 1, true);
+  for (i = 1; i < 256; i++) {
+    f[i] = builder.addFunction("add" + i, kSig_i_ii)
+      .addBody([                                            // --
+        kExprGetLocal, 0,                                   // --
+        kExprGetLocal, 1,                                   // --
+        kExprCallFunction, kArity2, f[i >>> 1].index])      // --
+      .exportFunc()
+  }
+  var module = builder.instantiate();
+  assertModule(module, kPageSize);
+
+  // Check the properties of the functions.
+  for (i = 0; i < 256; i++) {
+    var add = assertFunction(module, "add" + i);
+    assertEquals(88, add(33, 55));
+    assertEquals(88888, add(33333, 55555));
+    assertEquals(8888888, add(3333333, 5555555));
+  }
+})();
diff --git a/test/mjsunit/wasm/params.js b/test/mjsunit/wasm/params.js
index 7c2b3d1..180ab1c 100644
--- a/test/mjsunit/wasm/params.js
+++ b/test/mjsunit/wasm/params.js
@@ -17,7 +17,7 @@
 
     var builder = new WasmModuleBuilder();
 
-    builder.addFunction("select", [type, type, type])
+    builder.addFunction("select", makeSig_r_xx(type, type))
       .addBody([kExprGetLocal, which])
       .exportFunc()
 
@@ -79,7 +79,7 @@
     print("type = " + t + ", which = " + which);
 
     var builder = new WasmModuleBuilder();
-    builder.addFunction("select", [t,t,t,t,t,t,t,t,t,t,t])
+    builder.addFunction("select", [10,t,t,t,t,t,t,t,t,t,t,1,t])
       .addBody([kExprGetLocal, which])
       .exportFunc();
 
diff --git a/test/mjsunit/wasm/stack.js b/test/mjsunit/wasm/stack.js
index ed05517..a45db94 100644
--- a/test/mjsunit/wasm/stack.js
+++ b/test/mjsunit/wasm/stack.js
@@ -2,39 +2,129 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// clang-format off
 // Flags: --expose-wasm
 
 load("test/mjsunit/wasm/wasm-constants.js");
 load("test/mjsunit/wasm/wasm-module-builder.js");
 
-var expected = "Error\n" +
-    // The line numbers below will change as this test gains / loses lines..
-    "    at STACK (stack.js:24:11)\n" +     // --
-    "    at <WASM> (<anonymous>)\n" +       // TODO(jfb): wasm stack here.
-    "    at testStack (stack.js:38:18)\n" + // --
-    "    at stack.js:40:3";                 // --
-
 // The stack trace contains file path, only keep "stack.js".
 function stripPath(s) {
   return s.replace(/[^ (]*stack\.js/g, "stack.js");
 }
 
+function verifyStack(frames, expected) {
+  assertEquals(expected.length, frames.length, "number of frames mismatch");
+  expected.forEach(function(exp, i) {
+    if (exp[1] != "?") {
+      assertEquals(exp[1], frames[i].getFunctionName(),
+          "["+i+"].getFunctionName()");
+    }
+    assertEquals(exp[2], frames[i].getLineNumber(), "["+i+"].getLineNumber()");
+    if (exp[0])
+      assertEquals(exp[3], frames[i].getPosition(),
+          "["+i+"].getPosition()");
+    assertContains(exp[4], frames[i].getFileName(), "["+i+"].getFileName()");
+    var toString;
+    if (exp[0]) {
+      var funName = exp[1] == "?" ? "" : exp[1];
+      toString = funName + " (<WASM>:" + exp[2] + ":" + exp[3] + ")";
+    } else {
+      toString = exp[4] + ":" + exp[2] + ":";
+    }
+    assertContains(toString, frames[i].toString(), "["+i+"].toString()");
+  });
+}
+
+
 var stack;
 function STACK() {
   var e = new Error();
   stack = e.stack;
 }
 
-(function testStack() {
-  var builder = new WasmModuleBuilder();
+var builder = new WasmModuleBuilder();
 
-  builder.addImport("func", [kAstStmt]);
+builder.addImport("func", kSig_v_v);
 
-  builder.addFunction(undefined, [kAstStmt])
-    .addBody([kExprCallImport, 0])
-    .exportAs("main");
+builder.addFunction("main", kSig_v_v)
+  .addBody([kExprCallImport, kArity0, 0])
+  .exportAs("main");
 
-  var module = builder.instantiate({func: STACK});
+builder.addFunction("exec_unreachable", kSig_v_v)
+  .addBody([kExprUnreachable])
+  .exportAs("exec_unreachable");
+
+// Make this function unnamed, just to test also this case.
+var mem_oob_func = builder.addFunction(undefined, kSig_v_v)
+  // Access the memory at offset -1, to provoke a trap.
+  .addBody([kExprI32Const, 0x7f, kExprI32LoadMem8S, 0, 0])
+  .exportAs("mem_out_of_bounds");
+
+// Call the mem_out_of_bounds function, in order to have two WASM stack frames.
+builder.addFunction("call_mem_out_of_bounds", kSig_v_v)
+  .addBody([kExprCallFunction, kArity0, mem_oob_func.index])
+  .exportAs("call_mem_out_of_bounds");
+
+var module = builder.instantiate({func: STACK});
+
+(function testSimpleStack() {
+  var expected_string = "Error\n" +
+    // The line numbers below will change as this test gains / loses lines..
+    "    at STACK (stack.js:42:11)\n" +           // --
+    "    at main (<WASM>:0:1)\n" +                // --
+    "    at testSimpleStack (stack.js:79:18)\n" + // --
+    "    at stack.js:81:3";                       // --
+
   module.exports.main();
-  assertEquals(expected, stripPath(stack));
+  assertEquals(expected_string, stripPath(stack));
+})();
+
+// For the remaining tests, collect the Callsite objects instead of just a
+// string:
+Error.prepareStackTrace = function(error, frames) {
+  return frames;
+};
+
+(function testStackFrames() {
+  module.exports.main();
+
+  verifyStack(stack, [
+      // isWasm           function   line  pos        file
+      [   false,           "STACK",    42,   0, "stack.js"],
+      [    true,            "main",     0,   1,       null],
+      [   false, "testStackFrames",    90,   0, "stack.js"],
+      [   false,              null,    99,   0, "stack.js"]
+  ]);
+})();
+
+(function testWasmUnreachable() {
+  try {
+    module.exports.exec_unreachable();
+    fail("expected wasm exception");
+  } catch (e) {
+    assertContains("unreachable", e.message);
+    verifyStack(e.stack, [
+        // isWasm               function   line  pos        file
+        [    true,    "exec_unreachable",    1,    1,       null],
+        [   false, "testWasmUnreachable",  103,    0, "stack.js"],
+        [   false,                  null,  114,    0, "stack.js"]
+    ]);
+  }
+})();
+
+(function testWasmMemOutOfBounds() {
+  try {
+    module.exports.call_mem_out_of_bounds();
+    fail("expected wasm exception");
+  } catch (e) {
+    assertContains("out of bounds", e.message);
+    verifyStack(e.stack, [
+        // isWasm                  function   line  pos        file
+        [    true,                      "?",     2,   3,       null],
+        [    true, "call_mem_out_of_bounds",     3,   1,       null],
+        [   false, "testWasmMemOutOfBounds",   118,   0, "stack.js"],
+        [   false,                     null,   130,   0, "stack.js"]
+    ]);
+  }
 })();
diff --git a/test/mjsunit/wasm/stackwalk.js b/test/mjsunit/wasm/stackwalk.js
index 8b8fb7e..5e5a1ef 100644
--- a/test/mjsunit/wasm/stackwalk.js
+++ b/test/mjsunit/wasm/stackwalk.js
@@ -10,13 +10,14 @@
 function makeFFI(func) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature([kAstI32, kAstF64, kAstF64]);
+  var sig_index = builder.addSignature(kSig_i_dd);
   builder.addImport("func", sig_index);
   builder.addFunction("main", sig_index)
     .addBody([
-      kExprCallImport, 0,       // --
-      kExprGetLocal, 0,         // --
-      kExprGetLocal, 1])        // --
+      kExprGetLocal, 0,            // --
+      kExprGetLocal, 1,            // --
+      kExprCallImport, kArity2, 0, // --
+    ])
     .exportFunc()
 
   return builder.instantiate({func: func}).exports.main;
diff --git a/test/mjsunit/wasm/start-function.js b/test/mjsunit/wasm/start-function.js
index bd4ccf2..3c5707a 100644
--- a/test/mjsunit/wasm/start-function.js
+++ b/test/mjsunit/wasm/start-function.js
@@ -37,19 +37,19 @@
   return module;
 }
 
-assertVerifies([kAstStmt], [kExprNop]);
-assertVerifies([kAstI32], [kExprI8Const, 0]);
+assertVerifies(kSig_v_v, [kExprNop]);
+assertVerifies(kSig_i, [kExprI8Const, 0]);
 
 // Arguments aren't allow to start functions.
-assertFails([kAstI32, kAstI32], [kExprGetLocal, 0]);
-assertFails([kAstI32, kAstI32, kAstF32], [kExprGetLocal, 0]);
-assertFails([kAstI32, kAstI32, kAstF32, kAstF64], [kExprGetLocal, 0]);
+assertFails(kSig_i_i, [kExprGetLocal, 0]);
+assertFails(kSig_i_ii, [kExprGetLocal, 0]);
+assertFails(kSig_i_dd, [kExprGetLocal, 0]);
 
 (function testInvalidIndex() {
   print("testInvalidIndex");
   var builder = new WasmModuleBuilder();
 
-  var func = builder.addFunction("", [kAstStmt])
+  var func = builder.addFunction("", kSig_v_v)
     .addBody([kExprNop]);
 
   builder.addStart(func.index + 1);
@@ -62,7 +62,7 @@
   print("testTwoStartFuncs");
   var builder = new WasmModuleBuilder();
 
-  var func = builder.addFunction("", [kAstStmt])
+  var func = builder.addFunction("", kSig_v_v)
     .addBody([kExprNop]);
 
   builder.addExplicitSection([kDeclStartFunction, 0]);
@@ -78,8 +78,8 @@
 
   builder.addMemory(12, 12, true);
 
-  var func = builder.addFunction("", [kAstStmt])
-    .addBody([kExprI32StoreMem, 0, 0, kExprI8Const, 0, kExprI8Const, 77]);
+  var func = builder.addFunction("", kSig_v_v)
+    .addBody([kExprI8Const, 0, kExprI8Const, 77, kExprI32StoreMem, 0, 0]);
 
   builder.addStart(func.index);
 
@@ -98,11 +98,11 @@
   }};
 
   var builder = new WasmModuleBuilder();
-  var sig_index = builder.addSignature([kAstStmt]);
+  var sig_index = builder.addSignature(kSig_v_v);
 
   builder.addImport("foo", sig_index);
   var func = builder.addFunction("", sig_index)
-    .addBody([kExprCallImport, 0]);
+    .addBody([kExprCallImport, kArity0, 0]);
 
   builder.addStart(func.index);
 
diff --git a/test/mjsunit/wasm/test-wasm-module-builder.js b/test/mjsunit/wasm/test-wasm-module-builder.js
index 50797d0..969b550 100644
--- a/test/mjsunit/wasm/test-wasm-module-builder.js
+++ b/test/mjsunit/wasm/test-wasm-module-builder.js
@@ -12,7 +12,7 @@
 (function BasicTest() {
     var module = new WasmModuleBuilder();
     module.addMemory(1, 2, false);
-    module.addFunction("foo", [kAstI32])
+    module.addFunction("foo", kSig_i)
         .addBody([kExprI8Const, 11])
         .exportAs("blarg");
 
@@ -23,9 +23,9 @@
 
 (function ImportTest() {
     var module = new WasmModuleBuilder();
-    var index = module.addImport("print", [kAstStmt, kAstI32]);
-    module.addFunction("foo", [kAstStmt])
-        .addBody([kExprCallImport, index, kExprI8Const, 13])
+    var index = module.addImport("print", makeSig_v_x(kAstI32));
+    module.addFunction("foo", kSig_v_v)
+        .addBody([kExprI8Const, 13, kExprCallImport, kArity1, index])
         .exportAs("main");
 
     var buffer = module.toBuffer(debug);
@@ -36,9 +36,9 @@
 
 (function LocalsTest() {
     var module = new WasmModuleBuilder();
-    module.addFunction(undefined, [kAstI32, kAstI32])
+    module.addFunction(undefined, kSig_i_i)
         .addLocals({i32_count: 1})
-        .addBody([kExprSetLocal, 1, kExprGetLocal, 0])
+        .addBody([kExprGetLocal, 0, kExprSetLocal, 1])
         .exportAs("main");
 
     var buffer = module.toBuffer(debug);
@@ -58,9 +58,9 @@
 
     for (p of types) {
       var module = new WasmModuleBuilder();
-      module.addFunction(undefined, [p.type, p.type])
+      module.addFunction(undefined, makeSig_r_x(p.type, p.type))
         .addLocals(p.locals)
-        .addBody([kExprSetLocal, 1, kExprGetLocal, 0])
+        .addBody([kExprGetLocal, 0, kExprSetLocal, 1])
         .exportAs("main");
 
       var buffer = module.toBuffer(debug);
@@ -72,10 +72,10 @@
 
 (function CallTest() {
     var module = new WasmModuleBuilder();
-    module.addFunction("add", [kAstI32, kAstI32, kAstI32])
-        .addBody([kExprI32Add, kExprGetLocal, 0, kExprGetLocal, 1]);
-    module.addFunction("main", [kAstI32, kAstI32, kAstI32])
-        .addBody([kExprCallFunction, 0, kExprGetLocal, 0, kExprGetLocal, 1])
+    module.addFunction("add", kSig_i_ii)
+        .addBody([kExprGetLocal, 0, kExprGetLocal, 1, kExprI32Add]);
+    module.addFunction("main", kSig_i_ii)
+        .addBody([kExprGetLocal, 0, kExprGetLocal, 1, kExprCallFunction, kArity2, 0])
         .exportAs("main");
 
     var instance = module.instantiate();
@@ -85,11 +85,11 @@
 
 (function IndirectCallTest() {
     var module = new WasmModuleBuilder();
-    module.addFunction("add", [kAstI32, kAstI32, kAstI32])
-        .addBody([kExprI32Add, kExprGetLocal, 0, kExprGetLocal, 1]);
-    module.addFunction("main", [kAstI32, kAstI32, kAstI32, kAstI32])
-        .addBody([kExprCallIndirect, 0, kExprGetLocal,
-                  0, kExprGetLocal, 1, kExprGetLocal, 2])
+    module.addFunction("add", kSig_i_ii)
+        .addBody([kExprGetLocal, 0, kExprGetLocal, 1, kExprI32Add]);
+    module.addFunction("main", kSig_i_iii)
+        .addBody([kExprGetLocal,
+                  0, kExprGetLocal, 1, kExprGetLocal, 2, kExprCallIndirect, kArity2, 0])
         .exportAs("main");
     module.appendToFunctionTable([0]);
 
@@ -102,8 +102,8 @@
 (function DataSegmentTest() {
     var module = new WasmModuleBuilder();
     module.addMemory(1, 1, false);
-    module.addFunction("load", [kAstI32, kAstI32])
-        .addBody([kExprI32LoadMem, 0, 0, kExprGetLocal, 0])
+    module.addFunction("load", kSig_i_i)
+        .addBody([kExprGetLocal, 0, kExprI32LoadMem, 0, 0])
         .exportAs("load");
     module.addDataSegment(0, [9, 9, 9, 9], true);
 
@@ -116,7 +116,7 @@
 (function BasicTestWithUint8Array() {
     var module = new WasmModuleBuilder();
     module.addMemory(1, 2, false);
-    module.addFunction("foo", [kAstI32])
+    module.addFunction("foo", kSig_i)
         .addBody([kExprI8Const, 17])
         .exportAs("blarg");
 
@@ -141,9 +141,9 @@
 
 (function ImportTestTwoLevel() {
     var module = new WasmModuleBuilder();
-    var index = module.addImportWithModule("mod", "print", [kAstStmt, kAstI32]);
-    module.addFunction("foo", [kAstStmt])
-        .addBody([kExprCallImport, index, kExprI8Const, 19])
+    var index = module.addImportWithModule("mod", "print", makeSig_v_x(kAstI32));
+    module.addFunction("foo", kSig_v_v)
+        .addBody([kExprI8Const, 19, kExprCallImport, kArity1, index])
         .exportAs("main");
 
     var buffer = module.toBuffer(debug);
diff --git a/test/mjsunit/wasm/trap-location.js b/test/mjsunit/wasm/trap-location.js
new file mode 100644
index 0000000..5e3661d
--- /dev/null
+++ b/test/mjsunit/wasm/trap-location.js
@@ -0,0 +1,78 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-wasm
+
+load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
+
+// Collect the Callsite objects instead of just a string:
+Error.prepareStackTrace = function(error, frames) {
+  return frames;
+};
+
+var builder = new WasmModuleBuilder();
+
+var sig_index = builder.addSignature(kSig_i_v)
+
+// Build a function to resemble this code:
+//   if (idx < 2) {
+//     return load(-2 / idx);
+//   } else if (idx == 2) {
+//     unreachable;
+//   } else {
+//     return call_indirect(idx);
+//   }
+// There are four different traps which are triggered by different input values:
+// (0) division by zero; (1) mem oob; (2) unreachable; (3) invalid call target
+// Each of them also has a different location where it traps.
+builder.addFunction("main", kSig_i_i)
+  .addBody([
+      // offset 1
+      kExprBlock,
+            kExprGetLocal, 0,
+            kExprI32Const, 2,
+          kExprI32LtU,
+        kExprIf,
+        // offset 8
+              kExprI32Const, 0x7e /* -2 */,
+              kExprGetLocal, 0,
+            kExprI32DivU,
+          // offset 13
+          kExprI32LoadMem, 0, 0,
+          kExprBr, 1, 1,
+        kExprEnd,
+        // offset 20
+            kExprGetLocal, 0,
+            kExprI32Const, 2,
+          kExprI32Eq,
+        kExprIf,
+          kExprUnreachable,
+        kExprEnd,
+        // offset 28
+          kExprGetLocal, 0,
+        kExprCallIndirect, kArity0, sig_index,
+      kExprEnd,
+  ])
+  .exportAs("main");
+
+var module = builder.instantiate();
+
+function testWasmTrap(value, reason, position) {
+  try {
+    module.exports.main(value);
+    fail("expected wasm exception");
+  } catch (e) {
+    assertEquals(kTrapMsgs[reason], e.message, "trap reason");
+    assertEquals(3, e.stack.length, "number of frames");
+    assertEquals(0, e.stack[0].getLineNumber(), "wasmFunctionIndex");
+    assertEquals(position, e.stack[0].getPosition(), "position");
+  }
+}
+
+// The actual tests:
+testWasmTrap(0, kTrapDivByZero,      12);
+testWasmTrap(1, kTrapMemOutOfBounds, 13);
+testWasmTrap(2, kTrapUnreachable,    26);
+testWasmTrap(3, kTrapFuncInvalid,    30);
diff --git a/test/mjsunit/wasm/unicode-validation.js b/test/mjsunit/wasm/unicode-validation.js
new file mode 100644
index 0000000..b2e4603
--- /dev/null
+++ b/test/mjsunit/wasm/unicode-validation.js
@@ -0,0 +1,121 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --expose-wasm
+
+load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
+
+function toByteArray(s) {
+  var arr = [];
+  for (var i = 0; i < s.length; ++i) {
+    arr.push(s.charCodeAt(i) & 0xff);
+  }
+  return arr;
+}
+
+function toString(arr) {
+  if (typeof arr === "string") return arr;
+  var s = "";
+  for (var b of arr) s += String.fromCharCode(b);
+  return s;
+}
+
+function toUTF8(arr) {
+  if (typeof arr === "string" || arr === undefined) return arr;
+  return decodeURIComponent(escape(toString(arr)));
+}
+
+function isValidUtf8(arr) {
+  if (typeof arr === "string" || arr === undefined) return true;
+  try {
+    var s = toUTF8(arr);
+    for (var i = 0; i < s.length; ++i)
+      if ((s.charCodeAt(i) & 0xfffe) == 0xfffe)
+        return false;
+    return true;
+  } catch (e) {
+    if (e instanceof URIError) return false;
+    throw e;
+  }
+}
+
+function checkImportsAndExports(imported_module_name, imported_function_name,
+    internal_function_name, exported_function_name, shouldThrow) {
+  var builder = new WasmModuleBuilder();
+
+  builder.addImportWithModule(imported_module_name, imported_function_name,
+      kSig_v_v);
+
+  builder.addFunction(internal_function_name, kSig_v_v)
+    .addBody([kExprCallImport, kArity0, 0])
+    .exportAs(exported_function_name);
+
+  // sanity check: does javascript agree with out shouldThrow annotation?
+  assertEquals(shouldThrow,
+      !isValidUtf8(imported_module_name) ||
+          !isValidUtf8(imported_function_name) ||
+          !isValidUtf8(exported_function_name),
+      "JavaScript does not agree with our shouldThrow expectation");
+
+  if (!shouldThrow) {
+    imported_module_name = toUTF8(imported_module_name);
+    imported_function_name = toUTF8(imported_function_name);
+  }
+
+  var ffi = new Object();
+  if (imported_function_name === undefined) {
+    ffi[imported_module_name] = function() { };
+  } else {
+    ffi[imported_module_name] = new Object();
+    ffi[imported_module_name][imported_function_name] = function() { };
+  }
+
+  var hasThrown = true;
+  try {
+    builder.instantiate(ffi);
+    hasThrown = false;
+  } catch (err) {
+    if (!shouldThrow) print(err);
+    assertTrue(shouldThrow, "Should not throw error on valid names");
+    assertContains("UTF-8", err.toString());
+  }
+  assertEquals(shouldThrow, hasThrown,
+      "Should throw validation error on invalid names");
+}
+
+function checkImportedModuleName(name, shouldThrow) {
+  checkImportsAndExports(name, "imp", "func", undefined, shouldThrow);
+}
+
+function checkImportedFunctionName(name, shouldThrow) {
+  checkImportsAndExports("module", name, "func", "func", shouldThrow);
+}
+
+function checkExportedFunctionName(name, shouldThrow) {
+  checkImportsAndExports("module", "func", "func", name, shouldThrow);
+}
+
+function checkInternalFunctionName(name) {
+  checkImportsAndExports("module", "func", name, "func", false);
+}
+
+function checkAll(name, shouldThrow) {
+  checkImportedModuleName(name, shouldThrow);
+  checkImportedFunctionName(name, shouldThrow);
+  checkExportedFunctionName(name, shouldThrow);
+  checkInternalFunctionName(name);
+}
+
+checkAll("ascii", false);
+checkAll("some math: (½)² = ¼", false);
+checkAll("中国历史系列条目\n北", false);
+checkAll(toByteArray("\xef\xb7\x8f"), false);
+checkAll(toByteArray("a\xc2\x81\xe1\x80\xbf\xf1\x80\xa0\xbf"), false);
+checkAll(toByteArray("\xff"), true);
+checkAll(toByteArray("\xed\xa0\x8f"), true);        // surrogate code points
+checkAll(toByteArray("\xe0\x82\x80"), true);        // overlong sequence
+checkAll(toByteArray("\xf4\x90\x80\x80"), true);    // beyond limit: U+110000
+checkAll(toByteArray("\xef\xbf\xbe"), true);        // non-character; U+FFFE
+checkAll(toByteArray("with\x00null"), false);
diff --git a/test/mjsunit/wasm/unreachable.js b/test/mjsunit/wasm/unreachable.js
index 3e2dffb..d77b53e 100644
--- a/test/mjsunit/wasm/unreachable.js
+++ b/test/mjsunit/wasm/unreachable.js
@@ -9,7 +9,7 @@
 
 var main = (function () {
   var builder = new WasmModuleBuilder();
-  builder.addFunction("main", [kAstStmt])
+  builder.addFunction("main", kSig_v_v)
     .addBody([kExprUnreachable])
     .exportAs("main");
 
@@ -23,4 +23,4 @@
     print("correctly caught: " + e);
     exception = e;
 }
-assertEquals("unreachable", exception);
+assertEquals("unreachable", exception.message);
diff --git a/test/mjsunit/wasm/verify-function-simple.js b/test/mjsunit/wasm/verify-function-simple.js
index aa5c676..31c23a6 100644
--- a/test/mjsunit/wasm/verify-function-simple.js
+++ b/test/mjsunit/wasm/verify-function-simple.js
@@ -8,9 +8,9 @@
 
 try {
   var data = bytes(
-      0,       kAstStmt,  // signature
-      kDeclNoLocals,      // --
-      kExprNop            // body
+      kWasmFunctionTypeForm, 0, kAstStmt,  // signature
+      kDeclNoLocals,                       // --
+      kExprNop                             // body
   );
 
   Wasm.verifyFunction(data);
@@ -23,9 +23,9 @@
 var threw = false;
 try {
   var data = bytes(
-      0,       kAstI32,   // signature
-      kDeclNoLocals,      // --
-      kExprBlock, 2, kExprNop, kExprNop  // body
+      kWasmFunctionTypeForm, 0, 1, kAstI32,     // signature
+      kDeclNoLocals,                            // --
+      kExprBlock, kExprNop, kExprNop, kExprEnd  // body
   );
 
   Wasm.verifyFunction(data);
diff --git a/test/mjsunit/wasm/wasm-constants.js b/test/mjsunit/wasm/wasm-constants.js
index cc620bb..389383e 100644
--- a/test/mjsunit/wasm/wasm-constants.js
+++ b/test/mjsunit/wasm/wasm-constants.js
@@ -21,7 +21,7 @@
 var kWasmH2 = 0x73;
 var kWasmH3 = 0x6d;
 
-var kWasmV0 = 10;
+var kWasmV0 = 11;
 var kWasmV1 = 0;
 var kWasmV2 = 0;
 var kWasmV3 = 0;
@@ -65,10 +65,16 @@
 var kDeclFunctionBodies = 0x0b;
 var kDeclNames = 0x0c;
 
+var kArity0 = 0;
+var kArity1 = 1;
+var kArity2 = 2;
+var kArity3 = 3;
+var kWasmFunctionTypeForm = 0x40;
+
 var section_names = [
-  "memory", "signatures", "functions", "globals", "data_segments",
-  "function_table", "end", "start_function", "import_table", "export_table",
-  "function_signatures", "function_bodies", "names"];
+  "memory", "type", "old_function", "global", "data",
+  "table", "end", "start", "import", "export",
+  "function", "code", "name"];
 
 // Function declaration flags
 var kDeclFunctionName   = 0x01;
@@ -83,31 +89,60 @@
 var kAstF32 = 3;
 var kAstF64 = 4;
 
+// Useful signatures
+var kSig_i = [0, 1, kAstI32];
+var kSig_d = [0, 1, kAstF64];
+var kSig_i_i = [1, kAstI32, 1, kAstI32];
+var kSig_i_ii = [2, kAstI32, kAstI32, 1, kAstI32];
+var kSig_i_iii = [3, kAstI32, kAstI32, kAstI32, 1, kAstI32];
+var kSig_d_dd = [2, kAstF64, kAstF64, 1, kAstF64];
+var kSig_l_ll = [2, kAstI64, kAstI64, 1, kAstI64];
+var kSig_i_dd = [2, kAstF64, kAstF64, 1, kAstI32];
+var kSig_v_v = [0, 0];
+var kSig_i_v = [0, 1, kAstI32];
+
+function makeSig_v_xx(x) {
+  return [2, x, x, 0];
+}
+
+function makeSig_v_x(x) {
+  return [1, x, 0];
+}
+
+function makeSig_r_xx(r, x) {
+  return [2, x, x, 1, r];
+}
+
+function makeSig_r_x(r, x) {
+  return [1, x, 1, r];
+}
+
 // Opcodes
 var kExprNop = 0x00;
 var kExprBlock = 0x01;
 var kExprLoop = 0x02;
 var kExprIf = 0x03;
-var kExprIfElse = 0x04;
+var kExprElse = 0x04;
 var kExprSelect = 0x05;
 var kExprBr = 0x06;
 var kExprBrIf = 0x07;
-var kExprTableSwitch = 0x08;
-var kExprReturn = 0x14;
-var kExprUnreachable = 0x15;
+var kExprBrTable = 0x08;
+var kExprReturn = 0x09;
+var kExprUnreachable = 0x0a;
+var kExprEnd = 0x0f;
 
-var kExprI8Const = 0x09;
-var kExprI32Const = 0x0a;
-var kExprI64Const = 0x0b;
-var kExprF64Const = 0x0c;
-var kExprF32Const = 0x0d;
-var kExprGetLocal = 0x0e;
-var kExprSetLocal = 0x0f;
-var kExprLoadGlobal = 0x10;
-var kExprStoreGlobal = 0x11;
-var kExprCallFunction = 0x12;
-var kExprCallIndirect = 0x13;
-var kExprCallImport = 0x1F;
+var kExprI32Const = 0x10;
+var kExprI64Const = 0x11;
+var kExprF64Const = 0x12;
+var kExprF32Const = 0x13;
+var kExprGetLocal = 0x14;
+var kExprSetLocal = 0x15;
+var kExprCallFunction = 0x16;
+var kExprCallIndirect = 0x17;
+var kExprCallImport = 0x18;
+var kExprI8Const = 0xcb;
+var kExprLoadGlobal = 0xcc;
+var kExprStoreGlobal = 0xcd;
 
 var kExprI32LoadMem8S = 0x20;
 var kExprI32LoadMem8U = 0x21;
@@ -290,8 +325,8 @@
       }
       threwException = false;
     } catch (e) {
-      assertEquals("string", typeof e);
-      assertEquals(kTrapMsgs[trap], e);
+      assertEquals("object", typeof e);
+      assertEquals(kTrapMsgs[trap], e.message);
       // Success.
       return;
     }
diff --git a/test/mjsunit/wasm/wasm-module-builder.js b/test/mjsunit/wasm/wasm-module-builder.js
index e1d9963..bfc4460 100644
--- a/test/mjsunit/wasm/wasm-module-builder.js
+++ b/test/mjsunit/wasm/wasm-module-builder.js
@@ -53,7 +53,7 @@
   return this;
 }
 
-// Add a signature; format is [rettype, param0, param1, ...]
+// Add a signature; format is [param_count, param0, param1, ..., retcount, ret0]
 WasmModuleBuilder.prototype.addSignature = function(sig) {
     // TODO: canonicalize signatures?
     this.signatures.push(sig);
@@ -75,9 +75,7 @@
 }
 
 WasmModuleBuilder.prototype.addImport = function(name, sig) {
-  var sig_index = (typeof sig) == "number" ? sig : this.addSignature(sig);
-  this.imports.push({module: name, name: undefined, sig_index: sig_index});
-  return this.imports.length - 1;
+  this.addImportWithModule(name, undefined, sig);
 }
 
 WasmModuleBuilder.prototype.addDataSegment = function(addr, data, init) {
@@ -107,9 +105,19 @@
 }
 
 function emit_string(bytes, string) {
-    emit_varint(bytes, string.length);
-    for (var i = 0; i < string.length; i++) {
-      emit_u8(bytes, string.charCodeAt(i));
+    // When testing illegal names, we pass a byte array directly.
+    if (string instanceof Array) {
+      emit_varint(bytes, string.length);
+      emit_bytes(bytes, string);
+      return;
+    }
+
+    // This is the hacky way to convert a JavaScript scring to a UTF8 encoded
+    // string only containing single-byte characters.
+    var string_utf8 = unescape(encodeURIComponent(string));
+    emit_varint(bytes, string_utf8.length);
+    for (var i = 0; i < string_utf8.length; i++) {
+      emit_u8(bytes, string_utf8.charCodeAt(i));
     }
 }
 
@@ -132,12 +140,14 @@
 }
 
 function emit_section(bytes, section_code, content_generator) {
-    // Start the section in a temporary buffer: its full length isn't know yet.
+    // Emit section name.
+    emit_string(bytes, section_names[section_code]);
+    // Emit the section to a temporary buffer: its full length isn't know yet.
     var tmp_bytes = [];
-    emit_string(tmp_bytes, section_names[section_code]);
     content_generator(tmp_bytes);
-    // Now that we know the section length, emit it and copy the section.
+    // Emit section length.
     emit_varint(bytes, tmp_bytes.length);
+    // Copy the temporary buffer.
     Array.prototype.push.apply(bytes, tmp_bytes);
 }
 
@@ -149,24 +159,13 @@
 
     var wasm = this;
 
-    // Add memory section
-    if (wasm.memory != undefined) {
-        if (debug) print("emitting memory @ " + bytes.length);
-        emit_section(bytes, kDeclMemory, function(bytes) {
-            emit_varint(bytes, wasm.memory.min);
-            emit_varint(bytes, wasm.memory.max);
-            emit_u8(bytes, wasm.memory.exp ? 1 : 0);
-        });
-    }
-
     // Add signatures section
     if (wasm.signatures.length > 0) {
         if (debug) print("emitting signatures @ " + bytes.length);
         emit_section(bytes, kDeclSignatures, function(bytes) {
             emit_varint(bytes, wasm.signatures.length);
             for (sig of wasm.signatures) {
-                var params = sig.length - 1;
-                emit_varint(bytes, params);
+                emit_u8(bytes, kWasmFunctionTypeForm);
                 for (var j = 0; j < sig.length; j++) {
                     emit_u8(bytes, sig[j]);
                 }
@@ -187,7 +186,7 @@
         });
     }
 
-    // Add functions section
+    // Add functions declarations
     var names = false;
     var exports = 0;
     if (wasm.functions.length > 0) {
@@ -206,6 +205,54 @@
             }
         });
 
+    }
+
+    // Add function table.
+    if (wasm.function_table.length > 0) {
+        if (debug) print("emitting function table @ " + bytes.length);
+        emit_section(bytes, kDeclFunctionTable, function(bytes) {
+            emit_varint(bytes, wasm.function_table.length);
+            for (index of wasm.function_table) {
+                emit_varint(bytes, index);
+            }
+        });
+    }
+
+    // Add memory section
+    if (wasm.memory != undefined) {
+        if (debug) print("emitting memory @ " + bytes.length);
+        emit_section(bytes, kDeclMemory, function(bytes) {
+            emit_varint(bytes, wasm.memory.min);
+            emit_varint(bytes, wasm.memory.max);
+            emit_u8(bytes, wasm.memory.exp ? 1 : 0);
+        });
+    }
+
+
+    // Add export table.
+    if (exports > 0) {
+        if (debug) print("emitting exports @ " + bytes.length);
+        emit_section(bytes, kDeclExportTable, function(bytes) {
+            emit_varint(bytes, exports);
+            for (func of wasm.functions) {
+                for (exp of func.exports) {
+                    emit_varint(bytes, func.index);
+                    emit_string(bytes, exp);
+                }
+            }
+        });
+    }
+
+    // Add start function section.
+    if (wasm.start_index != undefined) {
+        if (debug) print("emitting start function @ " + bytes.length);
+        emit_section(bytes, kDeclStartFunction, function(bytes) {
+            emit_varint(bytes, wasm.start_index);
+        });
+    }
+
+    // Add function bodies.
+    if (wasm.functions.length > 0) {
         // emit function bodies
         if (debug) print("emitting function bodies @ " + bytes.length);
         emit_section(bytes, kDeclFunctionBodies, function(bytes) {
@@ -244,50 +291,7 @@
         });
     }
 
-    // emit function names
-    if (has_names) {
-        if (debug) print("emitting names @ " + bytes.length);
-        emit_section(bytes, kDeclNames, function(bytes) {
-            emit_varint(bytes, wasm.functions.length);
-            for (func of wasm.functions) {
-                var name = func.name == undefined ? "" : func.name;
-               emit_string(bytes, name);
-               emit_u8(bytes, 0);  // local names count == 0
-            }
-        });
-    }
-
-    // Add start function section.
-    if (wasm.start_index != undefined) {
-        if (debug) print("emitting start function @ " + bytes.length);
-        emit_section(bytes, kDeclStartFunction, function(bytes) {
-            emit_varint(bytes, wasm.start_index);
-        });
-    }
-
-    if (wasm.function_table.length > 0) {
-        if (debug) print("emitting function table @ " + bytes.length);
-        emit_section(bytes, kDeclFunctionTable, function(bytes) {
-            emit_varint(bytes, wasm.function_table.length);
-            for (index of wasm.function_table) {
-                emit_varint(bytes, index);
-            }
-        });
-    }
-
-    if (exports > 0) {
-        if (debug) print("emitting exports @ " + bytes.length);
-        emit_section(bytes, kDeclExportTable, function(bytes) {
-            emit_varint(bytes, exports);
-            for (func of wasm.functions) {
-                for (exp of func.exports) {
-                    emit_varint(bytes, func.index);
-                    emit_string(bytes, exp);
-                }
-            }
-        });
-    }
-
+    // Add data segments.
     if (wasm.data_segments.length > 0) {
         if (debug) print("emitting data segments @ " + bytes.length);
         emit_section(bytes, kDeclDataSegments, function(bytes) {
@@ -300,12 +304,25 @@
         });
     }
 
-    // Emit any explicitly added sections
+    // Add any explicitly added sections
     for (exp of wasm.explicit) {
         if (debug) print("emitting explicit @ " + bytes.length);
         emit_bytes(bytes, exp);
     }
 
+    // Add function names.
+    if (has_names) {
+        if (debug) print("emitting names @ " + bytes.length);
+        emit_section(bytes, kDeclNames, function(bytes) {
+            emit_varint(bytes, wasm.functions.length);
+            for (func of wasm.functions) {
+                var name = func.name == undefined ? "" : func.name;
+                emit_string(bytes, name);
+                emit_u8(bytes, 0);  // local names count == 0
+            }
+        });
+    }
+
     // End the module.
     if (debug) print("emitting end @ " + bytes.length);
     emit_section(bytes, kDeclEnd, function(bytes) {});
diff --git a/test/mjsunit/wasm/wasm-object-api.js b/test/mjsunit/wasm/wasm-object-api.js
index 2f25c66..96088b8 100644
--- a/test/mjsunit/wasm/wasm-object-api.js
+++ b/test/mjsunit/wasm/wasm-object-api.js
@@ -10,3 +10,4 @@
 assertEquals("function", typeof Wasm.verifyFunction);
 assertEquals("function", typeof Wasm.instantiateModule);
 assertEquals("function", typeof Wasm.instantiateModuleFromAsm);
+assertFalse(undefined == Wasm.experimentalVersion);
diff --git a/test/mozilla/mozilla.gyp b/test/mozilla/mozilla.gyp
index 1202d28..0327dd8 100644
--- a/test/mozilla/mozilla.gyp
+++ b/test/mozilla/mozilla.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'mozilla.isolate',
diff --git a/test/mozilla/mozilla.status b/test/mozilla/mozilla.status
index 0f7d4aa..d4eebee 100644
--- a/test/mozilla/mozilla.status
+++ b/test/mozilla/mozilla.status
@@ -59,11 +59,14 @@
 
   # TODO(turbofan): Causes timeouts since top-level code is optimized.
   'ecma_3/Statements/regress-324650': [PASS, NO_VARIANTS],
+  'ecma_3/Statements/regress-444979': [PASS, NO_VARIANTS],
   'ecma_3/Statements/regress-74474-002': [PASS, NO_VARIANTS],
   'ecma_3/Statements/regress-74474-003': [PASS, NO_VARIANTS],
   'js1_5/Regress/regress-111557': [PASS, NO_VARIANTS],
   'js1_5/Regress/regress-155081': [PASS, NO_VARIANTS],
   'js1_5/Regress/regress-155081-2': [PASS, NO_VARIANTS],
+  'js1_5/Regress/regress-159334': [PASS, NO_VARIANTS],
+  'js1_5/Regress/regress-321971': [PASS, NO_VARIANTS],
   'js1_5/Regress/regress-451322': [PASS, NO_VARIANTS],
 
   # TODO(turbofan): Large switch statements crash.
@@ -187,7 +190,7 @@
   'ecma_3/RegExp/regress-209067': [PASS, ['mode == debug', FAIL]],
   'js1_5/GC/regress-278725': [PASS, ['mode == debug', FAIL]],
   # http://b/issue?id=1206983
-  'js1_5/Regress/regress-367561-03': [PASS, ['mode == debug', FAIL]],
+  'js1_5/Regress/regress-367561-03': [PASS, ['mode == debug', FAIL], NO_VARIANTS],
   'ecma/Date/15.9.5.10-2': [PASS, FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
 
   # These tests create two Date objects just after each other and
@@ -239,7 +242,7 @@
   'js1_5/Array/regress-99120-01': [PASS, FAIL, NO_VARIANTS],
   'js1_5/Array/regress-99120-02': [PASS, FAIL],
   'js1_5/Regress/regress-347306-01': [PASS, FAIL],
-  'js1_5/Regress/regress-416628': [PASS, FAIL, ['mode == debug', TIMEOUT, NO_VARIANTS]],
+  'js1_5/Regress/regress-416628': [PASS, FAIL, ['mode == debug', TIMEOUT], NO_VARIANTS],
 
 
   # The following two tests assume that daylight savings time starts first
diff --git a/test/optimize_for_size.gyp b/test/optimize_for_size.gyp
index ac40ba8..047e3d8 100644
--- a/test/optimize_for_size.gyp
+++ b/test/optimize_for_size.gyp
@@ -16,8 +16,8 @@
             'webkit/webkit.gyp:webkit_run',
           ],
           'includes': [
-            '../build/features.gypi',
-            '../build/isolate.gypi',
+            '../gypfiles/features.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'optimize_for_size.isolate',
diff --git a/test/perf.gyp b/test/perf.gyp
index ff84606..4f024f7 100644
--- a/test/perf.gyp
+++ b/test/perf.gyp
@@ -14,8 +14,8 @@
             '../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../build/features.gypi',
-            '../build/isolate.gypi',
+            '../gypfiles/features.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'perf.isolate',
diff --git a/test/preparser/preparser.gyp b/test/preparser/preparser.gyp
index cb763d6..8e944ed 100644
--- a/test/preparser/preparser.gyp
+++ b/test/preparser/preparser.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'preparser.isolate',
diff --git a/test/simdjs/simdjs.gyp b/test/simdjs/simdjs.gyp
index df0aa5e..c0c24dc 100644
--- a/test/simdjs/simdjs.gyp
+++ b/test/simdjs/simdjs.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'simdjs.isolate',
diff --git a/test/test262/detachArrayBuffer.js b/test/test262/detachArrayBuffer.js
new file mode 100644
index 0000000..adfece7
--- /dev/null
+++ b/test/test262/detachArrayBuffer.js
@@ -0,0 +1,7 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function $DETACHBUFFER(buffer) {
+  %ArrayBufferNeuter(buffer);
+}
diff --git a/test/test262/test262.gyp b/test/test262/test262.gyp
index 5d79add..2bdc6ce 100644
--- a/test/test262/test262.gyp
+++ b/test/test262/test262.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'test262.isolate',
diff --git a/test/test262/test262.isolate b/test/test262/test262.isolate
index 0ac045a..4e14190 100644
--- a/test/test262/test262.isolate
+++ b/test/test262/test262.isolate
@@ -5,6 +5,7 @@
   'variables': {
     'files': [
       'data.tar',
+      'detachArrayBuffer.js',
       'harness-adapt.js',
       'test262.status',
       'testcfg.py',
diff --git a/test/test262/test262.status b/test/test262/test262.status
index 8cd4496..27b56d4 100644
--- a/test/test262/test262.status
+++ b/test/test262/test262.status
@@ -119,11 +119,7 @@
   'built-ins/RegExp/prototype/exec/get-sticky-err': [FAIL],
   'built-ins/RegExp/prototype/test/get-sticky-err': [FAIL],
 
-  # Missing lastIndex support
-  'built-ins/RegExp/prototype/Symbol.split/str-result-coerce-length-err': [FAIL],
-
   # Times out
-  'built-ins/RegExp/prototype/Symbol.split/str-coerce-lastindex': [SKIP],
   'built-ins/RegExp/prototype/Symbol.match/coerce-global': [SKIP],
   'built-ins/RegExp/prototype/Symbol.match/builtin-coerce-global': [SKIP],
 
@@ -131,6 +127,21 @@
   'built-ins/RegExp/prototype/Symbol.replace/y-init-lastindex': [FAIL],
   'built-ins/RegExp/prototype/Symbol.replace/y-set-lastindex': [FAIL],
 
+  # https://code.google.com/p/v8/issues/detail?id=4504
+  # https://bugs.chromium.org/p/chromium/issues/detail?id=624318
+  'built-ins/RegExp/prototype/Symbol.match/builtin-failure-set-lastindex-err': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.match/builtin-failure-y-set-lastindex-err': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.match/builtin-success-y-set-lastindex-err': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.match/g-init-lastindex-err': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.match/g-match-empty-set-lastindex-err': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.match/y-fail-lastindex-no-write': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.replace/g-init-lastindex-err': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.replace/y-fail-lastindex-no-write': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.search/set-lastindex-init-err': [PASS, FAIL],
+  'built-ins/RegExp/prototype/Symbol.search/set-lastindex-restore-err': [PASS, FAIL],
+  'built-ins/RegExp/prototype/exec/y-fail-lastindex-no-write': [PASS, FAIL],
+  'built-ins/RegExp/prototype/test/y-fail-lastindex-no-write': [PASS, FAIL],
+
   # SKIP rather than FAIL, as the test checks for an exception which
   # happens to be thrown for some other reason.
   'built-ins/RegExp/prototype/Symbol.split/str-result-get-length-err': [SKIP],
@@ -143,14 +154,16 @@
   'intl402/NumberFormat/11.1.1_1': [FAIL],
 
   # https://code.google.com/p/v8/issues/detail?id=4476
-  'built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional': [FAIL],
-  'built-ins/String/prototype/toLocaleLowerCase/supplementary_plane': [FAIL],
+  # The bug is fixed but behind a flag, --icu_case_mapping.
   'built-ins/String/prototype/toLowerCase/special_casing_conditional': [FAIL],
   'built-ins/String/prototype/toLowerCase/supplementary_plane': [FAIL],
-  'built-ins/String/prototype/toLocaleUpperCase/supplementary_plane': [FAIL],
   'built-ins/String/prototype/toUpperCase/supplementary_plane': [FAIL],
 
   # https://code.google.com/p/v8/issues/detail?id=4477
+  # The bug is fixed but behind a flag, --icu_case_mapping.
+  'built-ins/String/prototype/toLocaleUpperCase/supplementary_plane': [FAIL],
+  'built-ins/String/prototype/toLocaleLowerCase/supplementary_plane': [FAIL],
+  'built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional': [FAIL],
   'intl402/String/prototype/toLocaleLowerCase/special_casing_Azeri': [FAIL],
   'intl402/String/prototype/toLocaleLowerCase/special_casing_Lithuanian': [FAIL],
   'intl402/String/prototype/toLocaleLowerCase/special_casing_Turkish': [FAIL],
@@ -184,15 +197,6 @@
   'built-ins/DataView/prototype/setUint8/index-check-before-value-conversion': [FAIL],
   'built-ins/DataView/prototype/setInt8/index-check-before-value-conversion': [FAIL],
 
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4706
-  'language/statements/class/subclass/builtin-objects/NativeError/EvalError-message': [FAIL],
-  'language/statements/class/subclass/builtin-objects/NativeError/RangeError-message': [FAIL],
-  'language/statements/class/subclass/builtin-objects/NativeError/ReferenceError-message': [FAIL],
-  'language/statements/class/subclass/builtin-objects/NativeError/SyntaxError-message': [FAIL],
-  'language/statements/class/subclass/builtin-objects/NativeError/TypeError-message': [FAIL],
-  'language/statements/class/subclass/builtin-objects/NativeError/URIError-message': [FAIL],
-  'language/statements/class/subclass/builtin-objects/Error/message-property-assignment': [FAIL],
-
   # https://code.google.com/p/chromium/issues/detail?id=581577
   'built-ins/RegExp/prototype/source/15.10.7.1-1': [FAIL],
   'built-ins/RegExp/prototype/global/15.10.7.2-1': [FAIL],
@@ -208,6 +212,153 @@
   # https://bugs.chromium.org/p/v8/issues/detail?id=4784
   'built-ins/TypedArrays/buffer-arg-defined-negative-length': [FAIL],
 
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4890
+  'language/statements/class/subclass/default-constructor-spread-override': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4901
+  'built-ins/TypedArrays/internals/DefineOwnProperty/key-is-greater-than-last-index': [FAIL],
+  'built-ins/TypedArrays/internals/DefineOwnProperty/key-is-lower-than-zero': [FAIL],
+  'built-ins/TypedArrays/internals/DefineOwnProperty/key-is-minus-zero': [FAIL],
+  'built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-integer': [FAIL],
+  'built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable': [FAIL],
+  'built-ins/TypedArrays/internals/Set/key-is-minus-zero': [FAIL],
+  'built-ins/TypedArrays/internals/Set/key-is-not-integer': [FAIL],
+  'built-ins/TypedArrays/internals/Set/key-is-out-of-bounds': [FAIL],
+  'built-ins/TypedArrays/internals/Set/tonumber-value-throws': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4895
+  'built-ins/TypedArrays/internals/HasProperty/detached-buffer': [FAIL],
+  'built-ins/TypedArrays/internals/Set/detached-buffer': [FAIL],
+  'built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer': [FAIL],
+  'built-ins/TypedArrays/internals/Get/detached-buffer': [FAIL],
+  'built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer': [FAIL],
+  # Some TypedArray methods throw due to the same bug, from Get
+  'built-ins/TypedArray/prototype/every/callbackfn-detachbuffer': [FAIL],
+  'built-ins/TypedArray/prototype/find/predicate-may-detach-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer': [FAIL],
+  'built-ins/TypedArray/prototype/map/callbackfn-detachbuffer': [FAIL],
+  'built-ins/TypedArray/prototype/some/callbackfn-detachbuffer': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4648
+  'built-ins/TypedArray/prototype/copyWithin/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/entries/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/every/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/fill/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/filter/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/find/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/findIndex/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/forEach/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/includes/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/indexOf/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/join/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/keys/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/lastIndexOf/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/map/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/reverse/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/set/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/slice/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/some/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/sort/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/toString/detached-buffer': [FAIL],
+  'built-ins/TypedArray/prototype/values/detached-buffer': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4925
+  'built-ins/ThrowTypeError/forbidden-arguments': [FAIL],
+  'built-ins/ThrowTypeError/forbidden-caller': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4034
+  'built-ins/ThrowTypeError/unique-per-realm-function-proto': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4902
+  'built-ins/TypedArray/prototype/byteLength/prop-desc': [FAIL],
+  'built-ins/TypedArray/prototype/byteOffset/prop-desc': [FAIL],
+  'built-ins/TypedArray/prototype/copyWithin/get-length-ignores-length-prop': [FAIL],
+  'built-ins/TypedArray/prototype/every/get-length-ignores-length-prop': [FAIL],
+  'built-ins/TypedArray/prototype/every/get-length-uses-internal-arraylength': [FAIL],
+  'built-ins/TypedArray/prototype/fill/get-length-ignores-length-prop': [FAIL],
+  'built-ins/TypedArray/prototype/find/get-length-ignores-length-prop': [FAIL],
+  'built-ins/TypedArray/prototype/findIndex/get-length-ignores-length-prop': [FAIL],
+  'built-ins/TypedArray/prototype/indexOf/get-length-uses-internal-arraylength': [FAIL],
+  'built-ins/TypedArray/prototype/lastIndexOf/get-length-uses-internal-arraylength': [FAIL],
+  'built-ins/TypedArray/prototype/length/prop-desc': [FAIL],
+  'built-ins/TypedArray/prototype/some/get-length-uses-internal-arraylength': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4231
+  'language/eval-code/direct/var-env-lower-lex-catch-non-strict': [FAIL],
+  'language/statements/try/early-catch-lex': [FAIL],
+  'language/statements/try/early-catch-var': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4951
+  'language/expressions/assignment/destructuring/array-elem-iter-rtrn-close': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-iter-rtrn-close-err': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-iter-rtrn-close-null': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-iter-thrw-close': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-iter-thrw-close-err': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-list-rtrn-close': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-list-rtrn-close-err': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-list-rtrn-close-null': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-list-thrw-close': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-list-thrw-close-err': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-rest-rtrn-close': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-rest-rtrn-close-err': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-rest-rtrn-close-null': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-rest-thrw-close': [FAIL],
+  'language/expressions/assignment/destructuring/array-elem-trlg-iter-rest-thrw-close-err': [FAIL],
+  'language/expressions/assignment/destructuring/array-rest-iter-rtrn-close': [FAIL],
+  'language/expressions/assignment/destructuring/array-rest-iter-rtrn-close-err': [FAIL],
+  'language/expressions/assignment/destructuring/array-rest-iter-rtrn-close-null': [FAIL],
+  'language/expressions/assignment/destructuring/array-rest-iter-thrw-close': [FAIL],
+  'language/expressions/assignment/destructuring/array-rest-iter-thrw-close-err': [FAIL],
+  'language/expressions/assignment/destructuring/array-rest-lref-err': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=896
+  'language/literals/regexp/early-err-pattern': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4468
+  'language/eval-code/direct/non-definable-function-with-function': [FAIL],
+  'language/eval-code/direct/non-definable-function-with-variable': [FAIL],
+  'language/eval-code/indirect/non-definable-function-with-function': [FAIL],
+  'language/eval-code/indirect/non-definable-function-with-variable': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4955
+  'language/eval-code/direct/var-env-global-lex-non-strict': [FAIL],
+  'language/eval-code/direct/var-env-lower-lex-non-strict': [FAIL],
+  'language/eval-code/indirect/var-env-global-lex-non-strict': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4124
+  'built-ins/Simd/*': [SKIP],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4958
+  'built-ins/Function/prototype/toString/Function': [FAIL],
+  'built-ins/Function/prototype/toString/GeneratorFunction': [FAIL],
+  'built-ins/Function/prototype/toString/function-declaration': [FAIL],
+  'built-ins/Function/prototype/toString/function-declaration-non-simple-parameter-list': [FAIL],
+  'built-ins/Function/prototype/toString/function-expression': [FAIL],
+  'built-ins/Function/prototype/toString/generator-function-declaration': [FAIL],
+  'built-ins/Function/prototype/toString/generator-function-expression': [FAIL],
+  'built-ins/Function/prototype/toString/generator-method': [FAIL],
+  'built-ins/Function/prototype/toString/getter-class': [FAIL],
+  'built-ins/Function/prototype/toString/getter-class-static': [FAIL],
+  'built-ins/Function/prototype/toString/getter-object': [FAIL],
+  'built-ins/Function/prototype/toString/line-terminator-normalisation-CR': [FAIL],
+  'built-ins/Function/prototype/toString/line-terminator-normalisation-CR-LF': [FAIL],
+  'built-ins/Function/prototype/toString/line-terminator-normalisation-LF': [FAIL],
+  'built-ins/Function/prototype/toString/method-class': [FAIL],
+  'built-ins/Function/prototype/toString/method-class-static': [FAIL],
+  'built-ins/Function/prototype/toString/method-computed-property-name': [FAIL],
+  'built-ins/Function/prototype/toString/method-object': [FAIL],
+  'built-ins/Function/prototype/toString/setter-class': [FAIL],
+  'built-ins/Function/prototype/toString/setter-class-static': [FAIL],
+  'built-ins/Function/prototype/toString/setter-object': [FAIL],
+  'built-ins/Function/prototype/toString/unicode': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4985
+  'language/reserved-words/await-module': [SKIP],
+  'language/module-code/strict-mode': [SKIP],
+
   ######################## NEEDS INVESTIGATION ###########################
 
   # These test failures are specific to the intl402 suite and need investigation
@@ -215,8 +366,6 @@
   # incompatibilities if the test cases turn out to be broken or ambiguous.
   # Some of these are related to v8:4361 in being visible side effects from Intl.
   'intl402/6.2.3': [FAIL],
-  'intl402/9.2.1_2': [FAIL],
-  'intl402/9.2.6_2': [FAIL],
   'intl402/Collator/10.1.2.1_4': [FAIL],
   'intl402/Collator/10.1.2_a': [PASS, FAIL],
   'intl402/Collator/10.2.3_b': [PASS, FAIL],
@@ -239,37 +388,38 @@
   # https://code.google.com/p/v8/issues/detail?id=4693
   'language/block-scope/syntax/redeclaration-in-block/attempt-to-redeclare-function-declaration-with-function-declaration': [PASS, FAIL_SLOPPY],
 
-  ############################ INVALID TESTS #############################
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4953
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-abrupt': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-inherited': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-returns-throws': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-species': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-species-abrupt': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-invocation': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-returns-another-instance': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-throws': [FAIL],
+  'built-ins/TypedArray/prototype/subarray/speciesctor-get-species-returns-throws': [FAIL],
 
-  # The reference value calculated by Test262 is incorrect if you run these
-  # tests in PST/PDT between first Sunday in March and first Sunday in April.
-  # The DST switch was moved in 2007 whereas Test262 bases the reference value
-  # on 2000. Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=293
-  'built-ins/Date/S15.9.3.1_A5_T1': [PASS, FAIL_OK],
-  'built-ins/Date/S15.9.3.1_A5_T2': [PASS, FAIL_OK],
-  'built-ins/Date/S15.9.3.1_A5_T3': [PASS, FAIL_OK],
-  'built-ins/Date/S15.9.3.1_A5_T4': [PASS, FAIL_OK],
-  'built-ins/Date/S15.9.3.1_A5_T5': [PASS, FAIL_OK],
-  'built-ins/Date/S15.9.3.1_A5_T6': [PASS, FAIL_OK],
+  # We do not expose Array.prototype.values due to webcompat issues.
+  # Most recent incompatability: https://crbug.com/615873
+  # https://code.google.com/p/v8/issues/detail?id=4247
+  'built-ins/Array/prototype/Symbol.iterator': [FAIL],
+  'built-ins/Array/prototype/values/returns-iterator': [FAIL],
+  'built-ins/Array/prototype/values/returns-iterator-from-object': [FAIL],
+  'built-ins/Array/prototype/values/prop-desc': [FAIL],
+  'built-ins/Array/prototype/values/name': [FAIL],
+  'built-ins/Array/prototype/values/length': [FAIL],
+  'built-ins/Array/prototype/values/iteration': [FAIL],
+  'built-ins/Array/prototype/values/iteration-mutable': [FAIL],
+  'built-ins/Array/prototype/Symbol.unscopables/value': [FAIL],
+
+  ############################ INVALID TESTS #############################
 
   # Test makes unjustified assumptions about the number of calls to SortCompare.
   # Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=596
   'built-ins/Array/prototype/sort/bug_596_1': [PASS, FAIL_OK],
 
-  # Test bug https://github.com/tc39/test262/issues/518
-  'built-ins/TypedArrays/object-arg-throws-setting-typedarray-property': [FAIL],
-  'built-ins/Object/getOwnPropertyDescriptors/duplicate-keys': [FAIL],
-  'built-ins/Object/getOwnPropertyDescriptors/symbols-included': [FAIL],
-
-  # Test bug https://github.com/tc39/test262/issues/521
-  'built-ins/TypedArray/from/mapfn-is-not-callable': [FAIL],
-
-  # Test bug https://github.com/tc39/test262/issues/529
-  'built-ins/Math/cos/S15.8.2.7_A7': [PASS, FAIL_OK],
-  'built-ins/Math/sin/S15.8.2.16_A7': [PASS, FAIL_OK],
-  'built-ins/Math/tan/S15.8.2.18_A7': [PASS, FAIL_OK],
-  'built-ins/Math/exp/S15.8.2.8_A6': [PASS, FAIL_OK],  # Math.exp (less precise with --fast-math)
-
   ############################ SKIPPED TESTS #############################
 
   # These tests take a looong time to run.
@@ -292,26 +442,6 @@
   'built-ins/Array/prototype/slice/S15.4.4.10_A3_T2': [SKIP],
 }],  # ALWAYS
 
-['system == linux', {
-  # BUG(v8:4437).
-  'intl402/Collator/10.1.1_19_c': [PASS, FAIL],
-  'intl402/Collator/9.2.5_11_g_ii_2': [PASS, FAIL],
-  'intl402/NumberFormat/11.1.1_17': [PASS, FAIL],
-  'intl402/NumberFormat/11.1.1_19': [PASS, FAIL],
-  'intl402/NumberFormat/prototype/format/11.3.2_TRF': [PASS, FAIL],
-  'intl402/NumberFormat/prototype/format/11.3.2_TRP': [PASS, FAIL],
-}],  # system == linux
-
-['system == macos', {
-  # BUG(v8:4437).
-  'intl402/Collator/10.1.1_19_c': [SKIP],
-  'intl402/Collator/9.2.5_11_g_ii_2': [SKIP],
-  'intl402/NumberFormat/11.1.1_17': [SKIP],
-  'intl402/NumberFormat/11.1.1_19': [SKIP],
-  'intl402/NumberFormat/prototype/format/11.3.2_TRF': [SKIP],
-  'intl402/NumberFormat/prototype/format/11.3.2_TRP': [SKIP],
-}],  # system == macos
-
 ['no_i18n == True', {
   # Unicode canonicalization is not available with i18n turned off.
   'built-ins/String/prototype/localeCompare/15.5.4.9_CE': [SKIP],
@@ -323,8 +453,23 @@
   'built-ins/String/prototype/normalize/return-normalized-string': [SKIP],
   'built-ins/String/prototype/normalize/return-normalized-string-from-coerced-form': [SKIP],
   'built-ins/String/prototype/normalize/return-normalized-string-using-default-parameter': [SKIP],
-}],  # no_i18n == True
 
+  # Case-conversion is not fully compliant to the Unicode spec with i18n off.
+  'built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional': [FAIL],
+  'built-ins/String/prototype/toLocaleLowerCase/supplementary_plane': [FAIL],
+  'built-ins/String/prototype/toLowerCase/special_casing_conditional': [FAIL],
+  'built-ins/String/prototype/toLowerCase/supplementary_plane': [FAIL],
+  'built-ins/String/prototype/toLocaleUpperCase/supplementary_plane': [FAIL],
+  'built-ins/String/prototype/toUpperCase/supplementary_plane': [FAIL],
+
+  # Locale-sensitive case-conversion is not available with i18n off.
+  'intl402/String/prototype/toLocaleLowerCase/special_casing_Azeri': [FAIL],
+  'intl402/String/prototype/toLocaleLowerCase/special_casing_Lithuanian': [FAIL],
+  'intl402/String/prototype/toLocaleLowerCase/special_casing_Turkish': [FAIL],
+  'intl402/String/prototype/toLocaleUpperCase/special_casing_Azeri': [FAIL],
+  'intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian': [FAIL],
+  'intl402/String/prototype/toLocaleUpperCase/special_casing_Turkish': [FAIL],
+}],  # no_i18n == True
 
 ['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == mips64 or arch == mips64el', {
 
diff --git a/test/test262/testcfg.py b/test/test262/testcfg.py
index bf007bd..b62e9b0 100644
--- a/test/test262/testcfg.py
+++ b/test/test262/testcfg.py
@@ -43,6 +43,7 @@
 ARCHIVE = DATA + ".tar"
 
 TEST_262_HARNESS_FILES = ["sta.js", "assert.js"]
+TEST_262_NATIVE_FILES = ["detachArrayBuffer.js"]
 
 TEST_262_SUITE_PATH = ["data", "test"]
 TEST_262_HARNESS_PATH = ["data", "harness"]
@@ -129,8 +130,14 @@
   def GetFlagsForTestCase(self, testcase, context):
     return (testcase.flags + context.mode_flags + self.harness +
             self.GetIncludesForTest(testcase) + ["--harmony"] +
+            (["--module"] if "module" in self.GetTestRecord(testcase) else []) +
             [os.path.join(self.testroot, testcase.path + ".js")] +
-            (["--throws"] if "negative" in self.GetTestRecord(testcase) else []))
+            (["--throws"] if "negative" in self.GetTestRecord(testcase)
+                          else []) +
+            (["--allow-natives-syntax"]
+             if "detachArrayBuffer.js" in
+                self.GetTestRecord(testcase).get("includes", [])
+             else []))
 
   def _VariantGeneratorFactory(self):
     return Test262VariantGenerator
@@ -158,11 +165,14 @@
                                              testcase.path)
     return testcase.test_record
 
+  def BasePath(self, filename):
+    return self.root if filename in TEST_262_NATIVE_FILES else self.harnesspath
+
   def GetIncludesForTest(self, testcase):
     test_record = self.GetTestRecord(testcase)
     if "includes" in test_record:
-      includes = [os.path.join(self.harnesspath, f)
-                  for f in test_record["includes"]]
+      return [os.path.join(self.BasePath(filename), filename)
+              for filename in test_record.get("includes", [])]
     else:
       includes = []
     return includes
diff --git a/test/unittests/atomic-utils-unittest.cc b/test/unittests/base/atomic-utils-unittest.cc
similarity index 98%
rename from test/unittests/atomic-utils-unittest.cc
rename to test/unittests/base/atomic-utils-unittest.cc
index ad33853..06079fe 100644
--- a/test/unittests/atomic-utils-unittest.cc
+++ b/test/unittests/base/atomic-utils-unittest.cc
@@ -4,11 +4,11 @@
 
 #include <limits.h>
 
-#include "src/atomic-utils.h"
+#include "src/base/atomic-utils.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace v8 {
-namespace internal {
+namespace base {
 
 TEST(AtomicNumber, Constructor) {
   // Test some common types.
@@ -213,5 +213,5 @@
   EXPECT_FALSE(a != b);
 }
 
-}  // namespace internal
+}  // namespace base
 }  // namespace v8
diff --git a/test/unittests/base/platform/time-unittest.cc b/test/unittests/base/platform/time-unittest.cc
index b3bfbab..784fbf8 100644
--- a/test/unittests/base/platform/time-unittest.cc
+++ b/test/unittests/base/platform/time-unittest.cc
@@ -16,6 +16,7 @@
 #endif
 
 #include "src/base/platform/elapsed-timer.h"
+#include "src/base/platform/platform.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace v8 {
@@ -182,5 +183,32 @@
   }
 }
 
+
+// Disable on windows until it is implemented.
+#if V8_OS_ANDROID || V8_OS_WIN
+#define MAYBE_ThreadNow DISABLED_ThreadNow
+#else
+#define MAYBE_ThreadNow ThreadNow
+#endif
+TEST(ThreadTicks, MAYBE_ThreadNow) {
+  if (ThreadTicks::IsSupported()) {
+    TimeTicks begin = TimeTicks::Now();
+    ThreadTicks begin_thread = ThreadTicks::Now();
+    // Make sure that ThreadNow value is non-zero.
+    EXPECT_GT(begin_thread, ThreadTicks());
+    // Sleep for 10 milliseconds to get the thread de-scheduled.
+    OS::Sleep(base::TimeDelta::FromMilliseconds(10));
+    ThreadTicks end_thread = ThreadTicks::Now();
+    TimeTicks end = TimeTicks::Now();
+    TimeDelta delta = end - begin;
+    TimeDelta delta_thread = end_thread - begin_thread;
+    // Make sure that some thread time have elapsed.
+    EXPECT_GT(delta_thread.InMicroseconds(), 0);
+    // But the thread time is at least 9ms less than clock time.
+    TimeDelta difference = delta - delta_thread;
+    EXPECT_GE(difference.InMicroseconds(), 9000);
+  }
+}
+
 }  // namespace base
 }  // namespace v8
diff --git a/test/unittests/compiler/arm/instruction-selector-arm-unittest.cc b/test/unittests/compiler/arm/instruction-selector-arm-unittest.cc
index 72cfc51..b088d8e 100644
--- a/test/unittests/compiler/arm/instruction-selector-arm-unittest.cc
+++ b/test/unittests/compiler/arm/instruction-selector-arm-unittest.cc
@@ -2954,6 +2954,78 @@
   EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
 }
 
+TEST_F(InstructionSelectorTest, Float32Max) {
+  StreamBuilder m(this, MachineType::Float32(), MachineType::Float32(),
+                  MachineType::Float32());
+  Node* const p0 = m.Parameter(0);
+  Node* const p1 = m.Parameter(1);
+  Node* const n = m.Float32Max(p0, p1);
+  m.Return(n);
+  Stream s = m.Build(ARMv8);
+  // Float32Max is `(b < a) ? a : b`.
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(kArmFloat32Max, s[0]->arch_opcode());
+  ASSERT_EQ(2U, s[0]->InputCount());
+  EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  EXPECT_EQ(s.ToVreg(p1), s.ToVreg(s[0]->InputAt(1)));
+  ASSERT_EQ(1U, s[0]->OutputCount());
+  EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
+}
+
+TEST_F(InstructionSelectorTest, Float32Min) {
+  StreamBuilder m(this, MachineType::Float32(), MachineType::Float32(),
+                  MachineType::Float32());
+  Node* const p0 = m.Parameter(0);
+  Node* const p1 = m.Parameter(1);
+  Node* const n = m.Float32Min(p0, p1);
+  m.Return(n);
+  Stream s = m.Build(ARMv8);
+  // Float32Min is `(a < b) ? a : b`.
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(kArmFloat32Min, s[0]->arch_opcode());
+  ASSERT_EQ(2U, s[0]->InputCount());
+  EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  EXPECT_EQ(s.ToVreg(p1), s.ToVreg(s[0]->InputAt(1)));
+  ASSERT_EQ(1U, s[0]->OutputCount());
+  EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
+}
+
+TEST_F(InstructionSelectorTest, Float64Max) {
+  StreamBuilder m(this, MachineType::Float64(), MachineType::Float64(),
+                  MachineType::Float64());
+  Node* const p0 = m.Parameter(0);
+  Node* const p1 = m.Parameter(1);
+  Node* const n = m.Float64Max(p0, p1);
+  m.Return(n);
+  Stream s = m.Build(ARMv8);
+  // Float64Max is `(b < a) ? a : b`.
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(kArmFloat64Max, s[0]->arch_opcode());
+  ASSERT_EQ(2U, s[0]->InputCount());
+  EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  EXPECT_EQ(s.ToVreg(p1), s.ToVreg(s[0]->InputAt(1)));
+  ASSERT_EQ(1U, s[0]->OutputCount());
+  EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
+}
+
+TEST_F(InstructionSelectorTest, Float64Min) {
+  StreamBuilder m(this, MachineType::Float64(), MachineType::Float64(),
+                  MachineType::Float64());
+  Node* const p0 = m.Parameter(0);
+  Node* const p1 = m.Parameter(1);
+  Node* const n = m.Float64Min(p0, p1);
+  m.Return(n);
+  Stream s = m.Build(ARMv8);
+  // Float64Min is `(a < b) ? a : b`.
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(kArmFloat64Min, s[0]->arch_opcode());
+  ASSERT_EQ(2U, s[0]->InputCount());
+  EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  EXPECT_EQ(s.ToVreg(p1), s.ToVreg(s[0]->InputAt(1)));
+  ASSERT_EQ(1U, s[0]->OutputCount());
+  EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc b/test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc
index 73532aa..1c638b2 100644
--- a/test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc
+++ b/test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc
@@ -326,6 +326,52 @@
       kArm64Float64ToUint32, MachineType::Uint32()},
      MachineType::Float64()}};
 
+// ARM64 instructions that clear the top 32 bits of the destination.
+const MachInst2 kCanElideChangeUint32ToUint64[] = {
+    {&RawMachineAssembler::Word32And, "Word32And", kArm64And32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Word32Or, "Word32Or", kArm64Or32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Word32Xor, "Word32Xor", kArm64Eor32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Word32Shl, "Word32Shl", kArm64Lsl32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Word32Shr, "Word32Shr", kArm64Lsr32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Word32Sar, "Word32Sar", kArm64Asr32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Word32Ror, "Word32Ror", kArm64Ror32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Word32Equal, "Word32Equal", kArm64Cmp32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Int32Add, "Int32Add", kArm64Add32,
+     MachineType::Int32()},
+    {&RawMachineAssembler::Int32AddWithOverflow, "Int32AddWithOverflow",
+     kArm64Add32, MachineType::Int32()},
+    {&RawMachineAssembler::Int32Sub, "Int32Sub", kArm64Sub32,
+     MachineType::Int32()},
+    {&RawMachineAssembler::Int32SubWithOverflow, "Int32SubWithOverflow",
+     kArm64Sub32, MachineType::Int32()},
+    {&RawMachineAssembler::Int32Mul, "Int32Mul", kArm64Mul32,
+     MachineType::Int32()},
+    {&RawMachineAssembler::Int32Div, "Int32Div", kArm64Idiv32,
+     MachineType::Int32()},
+    {&RawMachineAssembler::Int32Mod, "Int32Mod", kArm64Imod32,
+     MachineType::Int32()},
+    {&RawMachineAssembler::Int32LessThan, "Int32LessThan", kArm64Cmp32,
+     MachineType::Int32()},
+    {&RawMachineAssembler::Int32LessThanOrEqual, "Int32LessThanOrEqual",
+     kArm64Cmp32, MachineType::Int32()},
+    {&RawMachineAssembler::Uint32Div, "Uint32Div", kArm64Udiv32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Uint32LessThan, "Uint32LessThan", kArm64Cmp32,
+     MachineType::Uint32()},
+    {&RawMachineAssembler::Uint32LessThanOrEqual, "Uint32LessThanOrEqual",
+     kArm64Cmp32, MachineType::Uint32()},
+    {&RawMachineAssembler::Uint32Mod, "Uint32Mod", kArm64Umod32,
+     MachineType::Uint32()},
+};
+
 }  // namespace
 
 
@@ -2105,6 +2151,71 @@
                         InstructionSelectorConversionTest,
                         ::testing::ValuesIn(kConversionInstructions));
 
+typedef InstructionSelectorTestWithParam<MachInst2>
+    InstructionSelectorElidedChangeUint32ToUint64Test;
+
+TEST_P(InstructionSelectorElidedChangeUint32ToUint64Test, Parameter) {
+  const MachInst2 binop = GetParam();
+  StreamBuilder m(this, MachineType::Uint64(), binop.machine_type,
+                  binop.machine_type);
+  m.Return(m.ChangeUint32ToUint64(
+      (m.*binop.constructor)(m.Parameter(0), m.Parameter(1))));
+  Stream s = m.Build();
+  // Make sure the `ChangeUint32ToUint64` node turned into a no-op.
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(binop.arch_opcode, s[0]->arch_opcode());
+  EXPECT_EQ(2U, s[0]->InputCount());
+  EXPECT_EQ(1U, s[0]->OutputCount());
+}
+
+INSTANTIATE_TEST_CASE_P(InstructionSelectorTest,
+                        InstructionSelectorElidedChangeUint32ToUint64Test,
+                        ::testing::ValuesIn(kCanElideChangeUint32ToUint64));
+
+TEST_F(InstructionSelectorTest, ChangeUint32ToUint64AfterLoad) {
+  // For each case, make sure the `ChangeUint32ToUint64` node turned into a
+  // no-op.
+
+  // Ldrb
+  {
+    StreamBuilder m(this, MachineType::Uint64(), MachineType::Pointer(),
+                    MachineType::Int32());
+    m.Return(m.ChangeUint32ToUint64(
+        m.Load(MachineType::Uint8(), m.Parameter(0), m.Parameter(1))));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64Ldrb, s[0]->arch_opcode());
+    EXPECT_EQ(kMode_MRR, s[0]->addressing_mode());
+    EXPECT_EQ(2U, s[0]->InputCount());
+    EXPECT_EQ(1U, s[0]->OutputCount());
+  }
+  // Ldrh
+  {
+    StreamBuilder m(this, MachineType::Uint64(), MachineType::Pointer(),
+                    MachineType::Int32());
+    m.Return(m.ChangeUint32ToUint64(
+        m.Load(MachineType::Uint16(), m.Parameter(0), m.Parameter(1))));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64Ldrh, s[0]->arch_opcode());
+    EXPECT_EQ(kMode_MRR, s[0]->addressing_mode());
+    EXPECT_EQ(2U, s[0]->InputCount());
+    EXPECT_EQ(1U, s[0]->OutputCount());
+  }
+  // LdrW
+  {
+    StreamBuilder m(this, MachineType::Uint64(), MachineType::Pointer(),
+                    MachineType::Int32());
+    m.Return(m.ChangeUint32ToUint64(
+        m.Load(MachineType::Uint32(), m.Parameter(0), m.Parameter(1))));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64LdrW, s[0]->arch_opcode());
+    EXPECT_EQ(kMode_MRR, s[0]->addressing_mode());
+    EXPECT_EQ(2U, s[0]->InputCount());
+    EXPECT_EQ(1U, s[0]->OutputCount());
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Memory access instructions.
@@ -2244,12 +2355,131 @@
     EXPECT_EQ(memacc.str_opcode, s[0]->arch_opcode());
     EXPECT_EQ(kMode_MRI, s[0]->addressing_mode());
     ASSERT_EQ(3U, s[0]->InputCount());
-    ASSERT_EQ(InstructionOperand::IMMEDIATE, s[0]->InputAt(1)->kind());
-    EXPECT_EQ(index, s.ToInt32(s[0]->InputAt(1)));
+    ASSERT_EQ(InstructionOperand::IMMEDIATE, s[0]->InputAt(2)->kind());
+    EXPECT_EQ(index, s.ToInt32(s[0]->InputAt(2)));
     EXPECT_EQ(0U, s[0]->OutputCount());
   }
 }
 
+TEST_P(InstructionSelectorMemoryAccessTest, StoreZero) {
+  const MemoryAccess memacc = GetParam();
+  TRACED_FOREACH(int32_t, index, memacc.immediates) {
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Pointer());
+    m.Store(memacc.type.representation(), m.Parameter(0),
+            m.Int32Constant(index), m.Int32Constant(0), kNoWriteBarrier);
+    m.Return(m.Int32Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(memacc.str_opcode, s[0]->arch_opcode());
+    EXPECT_EQ(kMode_MRI, s[0]->addressing_mode());
+    ASSERT_EQ(3U, s[0]->InputCount());
+    ASSERT_EQ(InstructionOperand::IMMEDIATE, s[0]->InputAt(2)->kind());
+    EXPECT_EQ(index, s.ToInt32(s[0]->InputAt(2)));
+    ASSERT_EQ(InstructionOperand::IMMEDIATE, s[0]->InputAt(0)->kind());
+    EXPECT_EQ(0, s.ToInt64(s[0]->InputAt(0)));
+    EXPECT_EQ(0U, s[0]->OutputCount());
+  }
+}
+
+TEST_P(InstructionSelectorMemoryAccessTest, LoadWithShiftedIndex) {
+  const MemoryAccess memacc = GetParam();
+  TRACED_FORRANGE(int, immediate_shift, 0, 4) {
+    // 32 bit shift
+    {
+      StreamBuilder m(this, memacc.type, MachineType::Pointer(),
+                      MachineType::Int32());
+      Node* const index =
+          m.Word32Shl(m.Parameter(1), m.Int32Constant(immediate_shift));
+      m.Return(m.Load(memacc.type, m.Parameter(0), index));
+      Stream s = m.Build();
+      if (immediate_shift == ElementSizeLog2Of(memacc.type.representation())) {
+        ASSERT_EQ(1U, s.size());
+        EXPECT_EQ(memacc.ldr_opcode, s[0]->arch_opcode());
+        EXPECT_EQ(kMode_Operand2_R_LSL_I, s[0]->addressing_mode());
+        EXPECT_EQ(3U, s[0]->InputCount());
+        EXPECT_EQ(1U, s[0]->OutputCount());
+      } else {
+        // Make sure we haven't merged the shift into the load instruction.
+        ASSERT_NE(1U, s.size());
+        EXPECT_NE(memacc.ldr_opcode, s[0]->arch_opcode());
+        EXPECT_NE(kMode_Operand2_R_LSL_I, s[0]->addressing_mode());
+      }
+    }
+    // 64 bit shift
+    {
+      StreamBuilder m(this, memacc.type, MachineType::Pointer(),
+                      MachineType::Int64());
+      Node* const index =
+          m.Word64Shl(m.Parameter(1), m.Int64Constant(immediate_shift));
+      m.Return(m.Load(memacc.type, m.Parameter(0), index));
+      Stream s = m.Build();
+      if (immediate_shift == ElementSizeLog2Of(memacc.type.representation())) {
+        ASSERT_EQ(1U, s.size());
+        EXPECT_EQ(memacc.ldr_opcode, s[0]->arch_opcode());
+        EXPECT_EQ(kMode_Operand2_R_LSL_I, s[0]->addressing_mode());
+        EXPECT_EQ(3U, s[0]->InputCount());
+        EXPECT_EQ(1U, s[0]->OutputCount());
+      } else {
+        // Make sure we haven't merged the shift into the load instruction.
+        ASSERT_NE(1U, s.size());
+        EXPECT_NE(memacc.ldr_opcode, s[0]->arch_opcode());
+        EXPECT_NE(kMode_Operand2_R_LSL_I, s[0]->addressing_mode());
+      }
+    }
+  }
+}
+
+TEST_P(InstructionSelectorMemoryAccessTest, StoreWithShiftedIndex) {
+  const MemoryAccess memacc = GetParam();
+  TRACED_FORRANGE(int, immediate_shift, 0, 4) {
+    // 32 bit shift
+    {
+      StreamBuilder m(this, MachineType::Int32(), MachineType::Pointer(),
+                      MachineType::Int32(), memacc.type);
+      Node* const index =
+          m.Word32Shl(m.Parameter(1), m.Int32Constant(immediate_shift));
+      m.Store(memacc.type.representation(), m.Parameter(0), index,
+              m.Parameter(2), kNoWriteBarrier);
+      m.Return(m.Int32Constant(0));
+      Stream s = m.Build();
+      if (immediate_shift == ElementSizeLog2Of(memacc.type.representation())) {
+        ASSERT_EQ(1U, s.size());
+        EXPECT_EQ(memacc.str_opcode, s[0]->arch_opcode());
+        EXPECT_EQ(kMode_Operand2_R_LSL_I, s[0]->addressing_mode());
+        EXPECT_EQ(4U, s[0]->InputCount());
+        EXPECT_EQ(0U, s[0]->OutputCount());
+      } else {
+        // Make sure we haven't merged the shift into the store instruction.
+        ASSERT_NE(1U, s.size());
+        EXPECT_NE(memacc.str_opcode, s[0]->arch_opcode());
+        EXPECT_NE(kMode_Operand2_R_LSL_I, s[0]->addressing_mode());
+      }
+    }
+    // 64 bit shift
+    {
+      StreamBuilder m(this, MachineType::Int64(), MachineType::Pointer(),
+                      MachineType::Int64(), memacc.type);
+      Node* const index =
+          m.Word64Shl(m.Parameter(1), m.Int64Constant(immediate_shift));
+      m.Store(memacc.type.representation(), m.Parameter(0), index,
+              m.Parameter(2), kNoWriteBarrier);
+      m.Return(m.Int64Constant(0));
+      Stream s = m.Build();
+      if (immediate_shift == ElementSizeLog2Of(memacc.type.representation())) {
+        ASSERT_EQ(1U, s.size());
+        EXPECT_EQ(memacc.str_opcode, s[0]->arch_opcode());
+        EXPECT_EQ(kMode_Operand2_R_LSL_I, s[0]->addressing_mode());
+        EXPECT_EQ(4U, s[0]->InputCount());
+        EXPECT_EQ(0U, s[0]->OutputCount());
+      } else {
+        // Make sure we haven't merged the shift into the store instruction.
+        ASSERT_NE(1U, s.size());
+        EXPECT_NE(memacc.str_opcode, s[0]->arch_opcode());
+        EXPECT_NE(kMode_Operand2_R_LSL_I, s[0]->addressing_mode());
+      }
+    }
+  }
+}
 
 INSTANTIATE_TEST_CASE_P(InstructionSelectorTest,
                         InstructionSelectorMemoryAccessTest,
diff --git a/test/unittests/compiler/change-lowering-unittest.cc b/test/unittests/compiler/change-lowering-unittest.cc
deleted file mode 100644
index fd0766c..0000000
--- a/test/unittests/compiler/change-lowering-unittest.cc
+++ /dev/null
@@ -1,628 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "src/code-stubs.h"
-#include "src/compiler/change-lowering.h"
-#include "src/compiler/js-graph.h"
-#include "src/compiler/linkage.h"
-#include "src/compiler/node-properties.h"
-#include "src/compiler/simplified-operator.h"
-#include "test/unittests/compiler/compiler-test-utils.h"
-#include "test/unittests/compiler/graph-unittest.h"
-#include "test/unittests/compiler/node-test-utils.h"
-#include "testing/gmock-support.h"
-
-using testing::_;
-using testing::AllOf;
-using testing::BitEq;
-using testing::Capture;
-using testing::CaptureEq;
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-class ChangeLoweringTest : public TypedGraphTest {
- public:
-  ChangeLoweringTest() : simplified_(zone()) {}
-
-  virtual MachineRepresentation WordRepresentation() const = 0;
-
- protected:
-  bool Is32() const {
-    return WordRepresentation() == MachineRepresentation::kWord32;
-  }
-  bool Is64() const {
-    return WordRepresentation() == MachineRepresentation::kWord64;
-  }
-
-  Reduction Reduce(Node* node) {
-    MachineOperatorBuilder machine(zone(), WordRepresentation());
-    JSOperatorBuilder javascript(zone());
-    JSGraph jsgraph(isolate(), graph(), common(), &javascript, nullptr,
-                    &machine);
-    ChangeLowering reducer(&jsgraph);
-    return reducer.Reduce(node);
-  }
-
-  SimplifiedOperatorBuilder* simplified() { return &simplified_; }
-
-  Matcher<Node*> IsAllocateHeapNumber(const Matcher<Node*>& effect_matcher,
-                                      const Matcher<Node*>& control_matcher) {
-    return IsCall(
-        _, IsHeapConstant(AllocateHeapNumberStub(isolate()).GetCode()),
-        IsNumberConstant(BitEq(0.0)), effect_matcher, control_matcher);
-  }
-  Matcher<Node*> IsChangeInt32ToSmi(const Matcher<Node*>& value_matcher) {
-    return Is64() ? IsWord64Shl(IsChangeInt32ToInt64(value_matcher),
-                                IsSmiShiftBitsConstant())
-                  : IsWord32Shl(value_matcher, IsSmiShiftBitsConstant());
-  }
-  Matcher<Node*> IsChangeSmiToInt32(const Matcher<Node*>& value_matcher) {
-    return Is64() ? IsTruncateInt64ToInt32(
-                        IsWord64Sar(value_matcher, IsSmiShiftBitsConstant()))
-                  : IsWord32Sar(value_matcher, IsSmiShiftBitsConstant());
-  }
-  Matcher<Node*> IsChangeUint32ToSmi(const Matcher<Node*>& value_matcher) {
-    return Is64() ? IsWord64Shl(IsChangeUint32ToUint64(value_matcher),
-                                IsSmiShiftBitsConstant())
-                  : IsWord32Shl(value_matcher, IsSmiShiftBitsConstant());
-  }
-  Matcher<Node*> IsLoadHeapNumber(const Matcher<Node*>& value_matcher,
-                                  const Matcher<Node*>& control_matcher) {
-    return IsLoad(MachineType::Float64(), value_matcher,
-                  IsIntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag),
-                  graph()->start(), control_matcher);
-  }
-  Matcher<Node*> IsIntPtrConstant(int value) {
-    return Is32() ? IsInt32Constant(value) : IsInt64Constant(value);
-  }
-  Matcher<Node*> IsSmiShiftBitsConstant() {
-    return IsIntPtrConstant(kSmiShiftSize + kSmiTagSize);
-  }
-  Matcher<Node*> IsWordEqual(const Matcher<Node*>& lhs_matcher,
-                             const Matcher<Node*>& rhs_matcher) {
-    return Is32() ? IsWord32Equal(lhs_matcher, rhs_matcher)
-                  : IsWord64Equal(lhs_matcher, rhs_matcher);
-  }
-
- private:
-  SimplifiedOperatorBuilder simplified_;
-};
-
-
-// -----------------------------------------------------------------------------
-// Common.
-
-
-class ChangeLoweringCommonTest
-    : public ChangeLoweringTest,
-      public ::testing::WithParamInterface<MachineRepresentation> {
- public:
-  ~ChangeLoweringCommonTest() override {}
-
-  MachineRepresentation WordRepresentation() const final { return GetParam(); }
-};
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, ChangeBitToBool) {
-  Node* value = Parameter(Type::Boolean());
-  Reduction r =
-      Reduce(graph()->NewNode(simplified()->ChangeBitToBool(), value));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsSelect(MachineRepresentation::kTagged, value,
-                                        IsTrueConstant(), IsFalseConstant()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, ChangeBoolToBit) {
-  Node* value = Parameter(Type::Number());
-  Reduction r =
-      Reduce(graph()->NewNode(simplified()->ChangeBoolToBit(), value));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsWordEqual(value, IsTrueConstant()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, ChangeInt32ToTaggedWithSignedSmall) {
-  Node* value = Parameter(Type::SignedSmall());
-  Reduction r =
-      Reduce(graph()->NewNode(simplified()->ChangeInt32ToTagged(), value));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsChangeInt32ToSmi(value));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, ChangeUint32ToTaggedWithUnsignedSmall) {
-  Node* value = Parameter(Type::UnsignedSmall());
-  Reduction r =
-      Reduce(graph()->NewNode(simplified()->ChangeUint32ToTagged(), value));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsChangeUint32ToSmi(value));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, ChangeTaggedToInt32WithTaggedSigned) {
-  Node* value = Parameter(Type::TaggedSigned());
-  Reduction r =
-      Reduce(graph()->NewNode(simplified()->ChangeTaggedToInt32(), value));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsChangeSmiToInt32(value));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, ChangeTaggedToInt32WithTaggedPointer) {
-  Node* value = Parameter(Type::TaggedPointer());
-  Reduction r =
-      Reduce(graph()->NewNode(simplified()->ChangeTaggedToInt32(), value));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsChangeFloat64ToInt32(
-                                   IsLoadHeapNumber(value, graph()->start())));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, ChangeTaggedToUint32WithTaggedSigned) {
-  Node* value = Parameter(Type::TaggedSigned());
-  Reduction r =
-      Reduce(graph()->NewNode(simplified()->ChangeTaggedToUint32(), value));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsChangeSmiToInt32(value));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, ChangeTaggedToUint32WithTaggedPointer) {
-  Node* value = Parameter(Type::TaggedPointer());
-  Reduction r =
-      Reduce(graph()->NewNode(simplified()->ChangeTaggedToUint32(), value));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsChangeFloat64ToUint32(
-                                   IsLoadHeapNumber(value, graph()->start())));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, StoreFieldSmi) {
-  FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                        Handle<Name>::null(), Type::Any(),
-                        MachineType::AnyTagged()};
-  Node* p0 = Parameter(Type::TaggedPointer());
-  Node* p1 = Parameter(Type::TaggedSigned());
-  Node* store = graph()->NewNode(simplified()->StoreField(access), p0, p1,
-                                 graph()->start(), graph()->start());
-  Reduction r = Reduce(store);
-
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(),
-              IsStore(StoreRepresentation(MachineRepresentation::kTagged,
-                                          kNoWriteBarrier),
-                      p0, IsIntPtrConstant(access.offset - access.tag()), p1,
-                      graph()->start(), graph()->start()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, StoreFieldTagged) {
-  FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                        Handle<Name>::null(), Type::Any(),
-                        MachineType::AnyTagged()};
-  Node* p0 = Parameter(Type::TaggedPointer());
-  Node* p1 = Parameter(Type::Tagged());
-  Node* store = graph()->NewNode(simplified()->StoreField(access), p0, p1,
-                                 graph()->start(), graph()->start());
-  Reduction r = Reduce(store);
-
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(),
-              IsStore(StoreRepresentation(MachineRepresentation::kTagged,
-                                          kFullWriteBarrier),
-                      p0, IsIntPtrConstant(access.offset - access.tag()), p1,
-                      graph()->start(), graph()->start()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, LoadField) {
-  FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                        Handle<Name>::null(), Type::Any(),
-                        MachineType::AnyTagged()};
-  Node* p0 = Parameter(Type::TaggedPointer());
-  Node* load = graph()->NewNode(simplified()->LoadField(access), p0,
-                                graph()->start(), graph()->start());
-  Reduction r = Reduce(load);
-
-  ASSERT_TRUE(r.Changed());
-  Matcher<Node*> index_match = IsIntPtrConstant(access.offset - access.tag());
-  EXPECT_THAT(r.replacement(),
-              IsLoad(MachineType::AnyTagged(), p0,
-                     IsIntPtrConstant(access.offset - access.tag()),
-                     graph()->start(), graph()->start()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, StoreElementTagged) {
-  ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize, Type::Any(),
-                          MachineType::AnyTagged()};
-  Node* p0 = Parameter(Type::TaggedPointer());
-  Node* p1 = Parameter(Type::Signed32());
-  Node* p2 = Parameter(Type::Tagged());
-  Node* store = graph()->NewNode(simplified()->StoreElement(access), p0, p1, p2,
-                                 graph()->start(), graph()->start());
-  Reduction r = Reduce(store);
-
-  const int element_size_shift =
-      ElementSizeLog2Of(access.machine_type.representation());
-  ASSERT_TRUE(r.Changed());
-  Matcher<Node*> index_match =
-      IsInt32Add(IsWord32Shl(p1, IsInt32Constant(element_size_shift)),
-                 IsInt32Constant(access.header_size - access.tag()));
-  if (!Is32()) {
-    index_match = IsChangeUint32ToUint64(index_match);
-  }
-
-  EXPECT_THAT(r.replacement(),
-              IsStore(StoreRepresentation(MachineRepresentation::kTagged,
-                                          kFullWriteBarrier),
-                      p0, index_match, p2, graph()->start(), graph()->start()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, StoreElementUint8) {
-  ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                          Type::Signed32(), MachineType::Uint8()};
-  Node* p0 = Parameter(Type::TaggedPointer());
-  Node* p1 = Parameter(Type::Signed32());
-  Node* p2 = Parameter(Type::Signed32());
-  Node* store = graph()->NewNode(simplified()->StoreElement(access), p0, p1, p2,
-                                 graph()->start(), graph()->start());
-  Reduction r = Reduce(store);
-
-  ASSERT_TRUE(r.Changed());
-  Matcher<Node*> index_match =
-      IsInt32Add(p1, IsInt32Constant(access.header_size - access.tag()));
-  if (!Is32()) {
-    index_match = IsChangeUint32ToUint64(index_match);
-  }
-
-  EXPECT_THAT(r.replacement(),
-              IsStore(StoreRepresentation(MachineRepresentation::kWord8,
-                                          kNoWriteBarrier),
-                      p0, index_match, p2, graph()->start(), graph()->start()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, LoadElementTagged) {
-  ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize, Type::Any(),
-                          MachineType::AnyTagged()};
-  Node* p0 = Parameter(Type::TaggedPointer());
-  Node* p1 = Parameter(Type::Signed32());
-  Node* load = graph()->NewNode(simplified()->LoadElement(access), p0, p1,
-                                graph()->start(), graph()->start());
-  Reduction r = Reduce(load);
-
-  const int element_size_shift =
-      ElementSizeLog2Of(access.machine_type.representation());
-  ASSERT_TRUE(r.Changed());
-  Matcher<Node*> index_match =
-      IsInt32Add(IsWord32Shl(p1, IsInt32Constant(element_size_shift)),
-                 IsInt32Constant(access.header_size - access.tag()));
-  if (!Is32()) {
-    index_match = IsChangeUint32ToUint64(index_match);
-  }
-
-  EXPECT_THAT(r.replacement(), IsLoad(MachineType::AnyTagged(), p0, index_match,
-                                      graph()->start(), graph()->start()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, LoadElementInt8) {
-  ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
-                          Type::Signed32(), MachineType::Int8()};
-  Node* p0 = Parameter(Type::TaggedPointer());
-  Node* p1 = Parameter(Type::Signed32());
-  Node* load = graph()->NewNode(simplified()->LoadElement(access), p0, p1,
-                                graph()->start(), graph()->start());
-  Reduction r = Reduce(load);
-
-  ASSERT_TRUE(r.Changed());
-  Matcher<Node*> index_match =
-      IsInt32Add(p1, IsInt32Constant(access.header_size - access.tag()));
-  if (!Is32()) {
-    index_match = IsChangeUint32ToUint64(index_match);
-  }
-
-  EXPECT_THAT(r.replacement(), IsLoad(MachineType::Int8(), p0, index_match,
-                                      graph()->start(), graph()->start()));
-}
-
-
-TARGET_TEST_P(ChangeLoweringCommonTest, Allocate) {
-  Node* p0 = Parameter(Type::Signed32());
-  Node* alloc = graph()->NewNode(simplified()->Allocate(TENURED), p0,
-                                 graph()->start(), graph()->start());
-  Reduction r = Reduce(alloc);
-
-  // Only check that we lowered, but do not specify the exact form since
-  // this is subject to change.
-  ASSERT_TRUE(r.Changed());
-}
-
-
-INSTANTIATE_TEST_CASE_P(ChangeLoweringTest, ChangeLoweringCommonTest,
-                        ::testing::Values(MachineRepresentation::kWord32,
-                                          MachineRepresentation::kWord64));
-
-
-// -----------------------------------------------------------------------------
-// 32-bit
-
-
-class ChangeLowering32Test : public ChangeLoweringTest {
- public:
-  ~ChangeLowering32Test() override {}
-  MachineRepresentation WordRepresentation() const final {
-    return MachineRepresentation::kWord32;
-  }
-};
-
-
-TARGET_TEST_F(ChangeLowering32Test, ChangeInt32ToTagged) {
-  Node* value = Parameter(Type::Integral32());
-  Node* node = graph()->NewNode(simplified()->ChangeInt32ToTagged(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> add, branch, heap_number, if_true;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(MachineRepresentation::kTagged,
-            IsFinishRegion(
-                AllOf(CaptureEq(&heap_number),
-                      IsAllocateHeapNumber(_, CaptureEq(&if_true))),
-                IsStore(
-                    StoreRepresentation(MachineRepresentation::kFloat64,
-                                        kNoWriteBarrier),
-                    CaptureEq(&heap_number),
-                    IsIntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag),
-                    IsChangeInt32ToFloat64(value), CaptureEq(&heap_number),
-                    CaptureEq(&if_true))),
-            IsProjection(0, AllOf(CaptureEq(&add),
-                                  IsInt32AddWithOverflow(value, value))),
-            IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
-                    IsIfFalse(AllOf(CaptureEq(&branch),
-                                    IsBranch(IsProjection(1, CaptureEq(&add)),
-                                             graph()->start()))))));
-}
-
-
-TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToFloat64) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagSize == 1);
-
-  Node* value = Parameter(Type::Number());
-  Node* node = graph()->NewNode(simplified()->ChangeTaggedToFloat64(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> branch, if_true;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(MachineRepresentation::kFloat64,
-            IsLoadHeapNumber(value, CaptureEq(&if_true)),
-            IsChangeInt32ToFloat64(IsWord32Sar(
-                value, IsInt32Constant(kSmiTagSize + kSmiShiftSize))),
-            IsMerge(AllOf(CaptureEq(&if_true),
-                          IsIfTrue(AllOf(
-                              CaptureEq(&branch),
-                              IsBranch(IsWord32And(
-                                           value, IsInt32Constant(kSmiTagMask)),
-                                       graph()->start())))),
-                    IsIfFalse(CaptureEq(&branch)))));
-}
-
-
-TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToInt32) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagSize == 1);
-
-  Node* value = Parameter(Type::Signed32());
-  Node* node = graph()->NewNode(simplified()->ChangeTaggedToInt32(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> branch, if_true;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(
-          MachineRepresentation::kWord32,
-          IsChangeFloat64ToInt32(IsLoadHeapNumber(value, CaptureEq(&if_true))),
-          IsWord32Sar(value, IsInt32Constant(kSmiTagSize + kSmiShiftSize)),
-          IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
-                  IsIfFalse(AllOf(
-                      CaptureEq(&branch),
-                      IsBranch(IsWord32And(value, IsInt32Constant(kSmiTagMask)),
-                               graph()->start()))))));
-}
-
-
-TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToUint32) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagSize == 1);
-
-  Node* value = Parameter(Type::Unsigned32());
-  Node* node = graph()->NewNode(simplified()->ChangeTaggedToUint32(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> branch, if_true;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(
-          MachineRepresentation::kWord32,
-          IsChangeFloat64ToUint32(IsLoadHeapNumber(value, CaptureEq(&if_true))),
-          IsWord32Sar(value, IsInt32Constant(kSmiTagSize + kSmiShiftSize)),
-          IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
-                  IsIfFalse(AllOf(
-                      CaptureEq(&branch),
-                      IsBranch(IsWord32And(value, IsInt32Constant(kSmiTagMask)),
-                               graph()->start()))))));
-}
-
-
-TARGET_TEST_F(ChangeLowering32Test, ChangeUint32ToTagged) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagSize == 1);
-
-  Node* value = Parameter(Type::Number());
-  Node* node = graph()->NewNode(simplified()->ChangeUint32ToTagged(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> branch, heap_number, if_false;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(
-          MachineRepresentation::kTagged,
-          IsWord32Shl(value, IsInt32Constant(kSmiTagSize + kSmiShiftSize)),
-          IsFinishRegion(
-              AllOf(CaptureEq(&heap_number),
-                    IsAllocateHeapNumber(_, CaptureEq(&if_false))),
-              IsStore(
-                  StoreRepresentation(MachineRepresentation::kFloat64,
-                                      kNoWriteBarrier),
-                  CaptureEq(&heap_number),
-                  IsInt32Constant(HeapNumber::kValueOffset - kHeapObjectTag),
-                  IsChangeUint32ToFloat64(value), CaptureEq(&heap_number),
-                  CaptureEq(&if_false))),
-          IsMerge(IsIfTrue(AllOf(
-                      CaptureEq(&branch),
-                      IsBranch(IsUint32LessThanOrEqual(
-                                   value, IsInt32Constant(Smi::kMaxValue)),
-                               graph()->start()))),
-                  AllOf(CaptureEq(&if_false), IsIfFalse(CaptureEq(&branch))))));
-}
-
-
-// -----------------------------------------------------------------------------
-// 64-bit
-
-
-class ChangeLowering64Test : public ChangeLoweringTest {
- public:
-  ~ChangeLowering64Test() override {}
-  MachineRepresentation WordRepresentation() const final {
-    return MachineRepresentation::kWord64;
-  }
-};
-
-
-TARGET_TEST_F(ChangeLowering64Test, ChangeInt32ToTagged) {
-  Node* value = Parameter(Type::Signed32());
-  Node* node = graph()->NewNode(simplified()->ChangeInt32ToTagged(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsChangeInt32ToSmi(value));
-}
-
-
-TARGET_TEST_F(ChangeLowering64Test, ChangeTaggedToFloat64) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagSize == 1);
-
-  Node* value = Parameter(Type::Number());
-  Node* node = graph()->NewNode(simplified()->ChangeTaggedToFloat64(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> branch, if_true;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(MachineRepresentation::kFloat64,
-            IsLoadHeapNumber(value, CaptureEq(&if_true)),
-            IsChangeInt32ToFloat64(IsTruncateInt64ToInt32(IsWord64Sar(
-                value, IsInt64Constant(kSmiTagSize + kSmiShiftSize)))),
-            IsMerge(AllOf(CaptureEq(&if_true),
-                          IsIfTrue(AllOf(
-                              CaptureEq(&branch),
-                              IsBranch(IsWord64And(
-                                           value, IsInt64Constant(kSmiTagMask)),
-                                       graph()->start())))),
-                    IsIfFalse(CaptureEq(&branch)))));
-}
-
-
-TARGET_TEST_F(ChangeLowering64Test, ChangeTaggedToInt32) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagSize == 1);
-
-  Node* value = Parameter(Type::Signed32());
-  Node* node = graph()->NewNode(simplified()->ChangeTaggedToInt32(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> branch, if_true;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(
-          MachineRepresentation::kWord32,
-          IsChangeFloat64ToInt32(IsLoadHeapNumber(value, CaptureEq(&if_true))),
-          IsTruncateInt64ToInt32(
-              IsWord64Sar(value, IsInt64Constant(kSmiTagSize + kSmiShiftSize))),
-          IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
-                  IsIfFalse(AllOf(
-                      CaptureEq(&branch),
-                      IsBranch(IsWord64And(value, IsInt64Constant(kSmiTagMask)),
-                               graph()->start()))))));
-}
-
-
-TARGET_TEST_F(ChangeLowering64Test, ChangeTaggedToUint32) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagSize == 1);
-
-  Node* value = Parameter(Type::Unsigned32());
-  Node* node = graph()->NewNode(simplified()->ChangeTaggedToUint32(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> branch, if_true;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(
-          MachineRepresentation::kWord32,
-          IsChangeFloat64ToUint32(IsLoadHeapNumber(value, CaptureEq(&if_true))),
-          IsTruncateInt64ToInt32(
-              IsWord64Sar(value, IsInt64Constant(kSmiTagSize + kSmiShiftSize))),
-          IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
-                  IsIfFalse(AllOf(
-                      CaptureEq(&branch),
-                      IsBranch(IsWord64And(value, IsInt64Constant(kSmiTagMask)),
-                               graph()->start()))))));
-}
-
-
-TARGET_TEST_F(ChangeLowering64Test, ChangeUint32ToTagged) {
-  STATIC_ASSERT(kSmiTag == 0);
-  STATIC_ASSERT(kSmiTagSize == 1);
-
-  Node* value = Parameter(Type::Number());
-  Node* node = graph()->NewNode(simplified()->ChangeUint32ToTagged(), value);
-  Reduction r = Reduce(node);
-  ASSERT_TRUE(r.Changed());
-  Capture<Node*> branch, heap_number, if_false;
-  EXPECT_THAT(
-      r.replacement(),
-      IsPhi(
-          MachineRepresentation::kTagged,
-          IsWord64Shl(IsChangeUint32ToUint64(value),
-                      IsInt64Constant(kSmiTagSize + kSmiShiftSize)),
-          IsFinishRegion(
-              AllOf(CaptureEq(&heap_number),
-                    IsAllocateHeapNumber(_, CaptureEq(&if_false))),
-              IsStore(
-                  StoreRepresentation(MachineRepresentation::kFloat64,
-                                      kNoWriteBarrier),
-                  CaptureEq(&heap_number),
-                  IsInt64Constant(HeapNumber::kValueOffset - kHeapObjectTag),
-                  IsChangeUint32ToFloat64(value), CaptureEq(&heap_number),
-                  CaptureEq(&if_false))),
-          IsMerge(IsIfTrue(AllOf(
-                      CaptureEq(&branch),
-                      IsBranch(IsUint32LessThanOrEqual(
-                                   value, IsInt32Constant(Smi::kMaxValue)),
-                               graph()->start()))),
-                  AllOf(CaptureEq(&if_false), IsIfFalse(CaptureEq(&branch))))));
-}
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
diff --git a/test/unittests/compiler/common-operator-reducer-unittest.cc b/test/unittests/compiler/common-operator-reducer-unittest.cc
index 1c16370..510eaad 100644
--- a/test/unittests/compiler/common-operator-reducer-unittest.cc
+++ b/test/unittests/compiler/common-operator-reducer-unittest.cc
@@ -105,40 +105,6 @@
 }
 
 
-TEST_F(CommonOperatorReducerTest, BranchWithInt64ZeroConstant) {
-  TRACED_FOREACH(BranchHint, hint, kBranchHints) {
-    Node* const control = graph()->start();
-    Node* const branch =
-        graph()->NewNode(common()->Branch(hint), Int64Constant(0), control);
-    Node* const if_true = graph()->NewNode(common()->IfTrue(), branch);
-    Node* const if_false = graph()->NewNode(common()->IfFalse(), branch);
-    StrictMock<MockAdvancedReducerEditor> editor;
-    EXPECT_CALL(editor, Replace(if_true, IsDead()));
-    EXPECT_CALL(editor, Replace(if_false, control));
-    Reduction const r = Reduce(&editor, branch);
-    ASSERT_TRUE(r.Changed());
-    EXPECT_THAT(r.replacement(), IsDead());
-  }
-}
-
-
-TEST_F(CommonOperatorReducerTest, BranchWithInt64OneConstant) {
-  TRACED_FOREACH(BranchHint, hint, kBranchHints) {
-    Node* const control = graph()->start();
-    Node* const branch =
-        graph()->NewNode(common()->Branch(hint), Int64Constant(1), control);
-    Node* const if_true = graph()->NewNode(common()->IfTrue(), branch);
-    Node* const if_false = graph()->NewNode(common()->IfFalse(), branch);
-    StrictMock<MockAdvancedReducerEditor> editor;
-    EXPECT_CALL(editor, Replace(if_true, control));
-    EXPECT_CALL(editor, Replace(if_false, IsDead()));
-    Reduction const r = Reduce(&editor, branch);
-    ASSERT_TRUE(r.Changed());
-    EXPECT_THAT(r.replacement(), IsDead());
-  }
-}
-
-
 TEST_F(CommonOperatorReducerTest, BranchWithFalseConstant) {
   TRACED_FOREACH(BranchHint, hint, kBranchHints) {
     Node* const control = graph()->start();
@@ -500,30 +466,6 @@
 }
 
 
-TEST_F(CommonOperatorReducerTest, SelectWithInt64ZeroConstant) {
-  Node* p0 = Parameter(0);
-  Node* p1 = Parameter(1);
-  Node* select =
-      graph()->NewNode(common()->Select(MachineRepresentation::kTagged),
-                       Int64Constant(0), p0, p1);
-  Reduction r = Reduce(select);
-  ASSERT_TRUE(r.Changed());
-  EXPECT_EQ(p1, r.replacement());
-}
-
-
-TEST_F(CommonOperatorReducerTest, SelectWithInt64OneConstant) {
-  Node* p0 = Parameter(0);
-  Node* p1 = Parameter(1);
-  Node* select =
-      graph()->NewNode(common()->Select(MachineRepresentation::kTagged),
-                       Int64Constant(1), p0, p1);
-  Reduction r = Reduce(select);
-  ASSERT_TRUE(r.Changed());
-  EXPECT_EQ(p0, r.replacement());
-}
-
-
 TEST_F(CommonOperatorReducerTest, SelectWithFalseConstant) {
   Node* p0 = Parameter(0);
   Node* p1 = Parameter(1);
diff --git a/test/unittests/compiler/effect-control-linearizer-unittest.cc b/test/unittests/compiler/effect-control-linearizer-unittest.cc
new file mode 100644
index 0000000..417444e
--- /dev/null
+++ b/test/unittests/compiler/effect-control-linearizer-unittest.cc
@@ -0,0 +1,330 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/compiler/effect-control-linearizer.h"
+#include "src/compiler/access-builder.h"
+#include "src/compiler/js-graph.h"
+#include "src/compiler/linkage.h"
+#include "src/compiler/node-properties.h"
+#include "src/compiler/schedule.h"
+#include "src/compiler/simplified-operator.h"
+#include "test/unittests/compiler/graph-unittest.h"
+#include "test/unittests/compiler/node-test-utils.h"
+#include "test/unittests/test-utils.h"
+#include "testing/gmock/include/gmock/gmock.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+class EffectControlLinearizerTest : public TypedGraphTest {
+ public:
+  EffectControlLinearizerTest()
+      : TypedGraphTest(3),
+        machine_(zone()),
+        javascript_(zone()),
+        simplified_(zone()),
+        jsgraph_(isolate(), graph(), common(), &javascript_, &simplified_,
+                 &machine_) {}
+
+  JSGraph* jsgraph() { return &jsgraph_; }
+  SimplifiedOperatorBuilder* simplified() { return &simplified_; }
+
+ private:
+  MachineOperatorBuilder machine_;
+  JSOperatorBuilder javascript_;
+  SimplifiedOperatorBuilder simplified_;
+  JSGraph jsgraph_;
+};
+
+namespace {
+
+BasicBlock* AddBlockToSchedule(Schedule* schedule) {
+  BasicBlock* block = schedule->NewBasicBlock();
+  block->set_rpo_number(static_cast<int32_t>(schedule->rpo_order()->size()));
+  schedule->rpo_order()->push_back(block);
+  return block;
+}
+
+}  // namespace
+
+TEST_F(EffectControlLinearizerTest, SimpleLoad) {
+  Schedule schedule(zone());
+
+  // Create the graph.
+  Node* heap_number = NumberConstant(0.5);
+  Node* load = graph()->NewNode(
+      simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), heap_number,
+      graph()->start(), graph()->start());
+  Node* ret = graph()->NewNode(common()->Return(), load, graph()->start(),
+                               graph()->start());
+
+  // Build the basic block structure.
+  BasicBlock* start = schedule.start();
+  schedule.rpo_order()->push_back(start);
+  start->set_rpo_number(0);
+
+  // Populate the basic blocks with nodes.
+  schedule.AddNode(start, graph()->start());
+  schedule.AddNode(start, heap_number);
+  schedule.AddNode(start, load);
+  schedule.AddReturn(start, ret);
+
+  // Run the state effect introducer.
+  EffectControlLinearizer introducer(jsgraph(), &schedule, zone());
+  introducer.Run();
+
+  EXPECT_THAT(load,
+              IsLoadField(AccessBuilder::ForHeapNumberValue(), heap_number,
+                          graph()->start(), graph()->start()));
+  // The return should have reconnected effect edge to the load.
+  EXPECT_THAT(ret, IsReturn(load, load, graph()->start()));
+}
+
+TEST_F(EffectControlLinearizerTest, DiamondLoad) {
+  Schedule schedule(zone());
+
+  // Create the graph.
+  Node* branch =
+      graph()->NewNode(common()->Branch(), Int32Constant(0), graph()->start());
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* heap_number = NumberConstant(0.5);
+  Node* vtrue = graph()->NewNode(
+      simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), heap_number,
+      graph()->start(), if_true);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  Node* vfalse = Float64Constant(2);
+
+  Node* merge = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  Node* phi = graph()->NewNode(
+      common()->Phi(MachineRepresentation::kFloat64, 2), vtrue, vfalse, merge);
+
+  Node* ret =
+      graph()->NewNode(common()->Return(), phi, graph()->start(), merge);
+
+  // Build the basic block structure.
+  BasicBlock* start = schedule.start();
+  schedule.rpo_order()->push_back(start);
+  start->set_rpo_number(0);
+
+  BasicBlock* tblock = AddBlockToSchedule(&schedule);
+  BasicBlock* fblock = AddBlockToSchedule(&schedule);
+  BasicBlock* mblock = AddBlockToSchedule(&schedule);
+
+  // Populate the basic blocks with nodes.
+  schedule.AddNode(start, graph()->start());
+  schedule.AddBranch(start, branch, tblock, fblock);
+
+  schedule.AddNode(tblock, if_true);
+  schedule.AddNode(tblock, heap_number);
+  schedule.AddNode(tblock, vtrue);
+  schedule.AddGoto(tblock, mblock);
+
+  schedule.AddNode(fblock, if_false);
+  schedule.AddNode(fblock, vfalse);
+  schedule.AddGoto(fblock, mblock);
+
+  schedule.AddNode(mblock, merge);
+  schedule.AddNode(mblock, phi);
+  schedule.AddReturn(mblock, ret);
+
+  // Run the state effect introducer.
+  EffectControlLinearizer introducer(jsgraph(), &schedule, zone());
+  introducer.Run();
+
+  // The effect input to the return should be an effect phi with the
+  // newly introduced effectful change operators.
+  ASSERT_THAT(
+      ret, IsReturn(phi, IsEffectPhi(vtrue, graph()->start(), merge), merge));
+}
+
+TEST_F(EffectControlLinearizerTest, FloatingDiamondsControlWiring) {
+  Schedule schedule(zone());
+
+  // Create the graph and schedule. Roughly (omitting effects and unimportant
+  // nodes):
+  //
+  //            BLOCK 0:
+  //             r1: Start
+  //             c1: Call
+  //             b1: Branch(const0, s1)
+  //                |
+  //        +-------+------+
+  //        |              |
+  //   BLOCK 1:           BLOCK 2:
+  //    t1: IfTrue(b1)     f1: IfFalse(b1)
+  //        |              |
+  //        +-------+------+
+  //                |
+  //            BLOCK 3:
+  //             m1: Merge(t1, f1)
+  //             c2: IfSuccess(c1)
+  //             b2: Branch(const0 , s1)
+  //                |
+  //        +-------+------+
+  //        |              |
+  //   BLOCK 4:           BLOCK 5:
+  //    t2: IfTrue(b2)     f2:IfFalse(b2)
+  //        |              |
+  //        +-------+------+
+  //                |
+  //            BLOCK 6:
+  //             m2: Merge(t2, f2)
+  //             r1: Return(c1, c2)
+  MachineType kMachineSignature[] = {MachineType::AnyTagged(),
+                                     MachineType::AnyTagged()};
+  LinkageLocation kLocationSignature[] = {LinkageLocation::ForRegister(0),
+                                          LinkageLocation::ForRegister(1)};
+  const CallDescriptor* kCallDescriptor = new (zone()) CallDescriptor(
+      CallDescriptor::kCallCodeObject, MachineType::AnyTagged(),
+      LinkageLocation::ForRegister(0),
+      new (zone()) MachineSignature(1, 1, kMachineSignature),
+      new (zone()) LocationSignature(1, 1, kLocationSignature), 0,
+      Operator::kNoProperties, 0, 0, CallDescriptor::kNoFlags);
+  Node* p0 = Parameter(0);
+  Node* p1 = Parameter(1);
+  Node* const0 = Int32Constant(0);
+  Node* call = graph()->NewNode(common()->Call(kCallDescriptor), p0, p1,
+                                graph()->start(), graph()->start());
+  Node* if_success = graph()->NewNode(common()->IfSuccess(), call);
+
+  // First Floating diamond.
+  Node* branch1 =
+      graph()->NewNode(common()->Branch(), const0, graph()->start());
+  Node* if_true1 = graph()->NewNode(common()->IfTrue(), branch1);
+  Node* if_false1 = graph()->NewNode(common()->IfFalse(), branch1);
+  Node* merge1 = graph()->NewNode(common()->Merge(2), if_true1, if_false1);
+
+  // Second floating diamond.
+  Node* branch2 =
+      graph()->NewNode(common()->Branch(), const0, graph()->start());
+  Node* if_true2 = graph()->NewNode(common()->IfTrue(), branch2);
+  Node* if_false2 = graph()->NewNode(common()->IfFalse(), branch2);
+  Node* merge2 = graph()->NewNode(common()->Merge(2), if_true2, if_false2);
+
+  Node* ret =
+      graph()->NewNode(common()->Return(), call, graph()->start(), if_success);
+
+  // Build the basic block structure.
+  BasicBlock* start = schedule.start();
+  schedule.rpo_order()->push_back(start);
+  start->set_rpo_number(0);
+
+  BasicBlock* t1block = AddBlockToSchedule(&schedule);
+  BasicBlock* f1block = AddBlockToSchedule(&schedule);
+  BasicBlock* m1block = AddBlockToSchedule(&schedule);
+
+  BasicBlock* t2block = AddBlockToSchedule(&schedule);
+  BasicBlock* f2block = AddBlockToSchedule(&schedule);
+  BasicBlock* m2block = AddBlockToSchedule(&schedule);
+
+  // Populate the basic blocks with nodes.
+  schedule.AddNode(start, graph()->start());
+  schedule.AddNode(start, p0);
+  schedule.AddNode(start, p1);
+  schedule.AddNode(start, const0);
+  schedule.AddNode(start, call);
+  schedule.AddBranch(start, branch1, t1block, f1block);
+
+  schedule.AddNode(t1block, if_true1);
+  schedule.AddGoto(t1block, m1block);
+
+  schedule.AddNode(f1block, if_false1);
+  schedule.AddGoto(f1block, m1block);
+
+  schedule.AddNode(m1block, merge1);
+  // The scheduler does not always put the IfSuccess node to the corresponding
+  // call's block, simulate that here.
+  schedule.AddNode(m1block, if_success);
+  schedule.AddBranch(m1block, branch2, t2block, f2block);
+
+  schedule.AddNode(t2block, if_true2);
+  schedule.AddGoto(t2block, m2block);
+
+  schedule.AddNode(f2block, if_false2);
+  schedule.AddGoto(f2block, m2block);
+
+  schedule.AddNode(m2block, merge2);
+  schedule.AddReturn(m2block, ret);
+
+  // Run the state effect introducer.
+  EffectControlLinearizer introducer(jsgraph(), &schedule, zone());
+  introducer.Run();
+
+  // The effect input to the return should be an effect phi with the
+  // newly introduced effectful change operators.
+  ASSERT_THAT(ret, IsReturn(call, call, merge2));
+  ASSERT_THAT(branch2, IsBranch(const0, merge1));
+  ASSERT_THAT(branch1, IsBranch(const0, if_success));
+  ASSERT_THAT(if_success, IsIfSuccess(call));
+}
+
+TEST_F(EffectControlLinearizerTest, LoopLoad) {
+  Schedule schedule(zone());
+
+  // Create the graph.
+  Node* loop = graph()->NewNode(common()->Loop(1), graph()->start());
+  Node* effect_phi =
+      graph()->NewNode(common()->EffectPhi(1), graph()->start(), loop);
+
+  Node* cond = Int32Constant(0);
+  Node* branch = graph()->NewNode(common()->Branch(), cond, loop);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+
+  loop->AppendInput(zone(), if_false);
+  NodeProperties::ChangeOp(loop, common()->Loop(2));
+
+  effect_phi->InsertInput(zone(), 1, effect_phi);
+  NodeProperties::ChangeOp(effect_phi, common()->EffectPhi(2));
+
+  Node* heap_number = NumberConstant(0.5);
+  Node* load = graph()->NewNode(
+      simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), heap_number,
+      graph()->start(), loop);
+
+  Node* ret = graph()->NewNode(common()->Return(), load, effect_phi, if_true);
+
+  // Build the basic block structure.
+  BasicBlock* start = schedule.start();
+  schedule.rpo_order()->push_back(start);
+  start->set_rpo_number(0);
+
+  BasicBlock* lblock = AddBlockToSchedule(&schedule);
+  BasicBlock* fblock = AddBlockToSchedule(&schedule);
+  BasicBlock* rblock = AddBlockToSchedule(&schedule);
+
+  // Populate the basic blocks with nodes.
+  schedule.AddNode(start, graph()->start());
+  schedule.AddGoto(start, lblock);
+
+  schedule.AddNode(lblock, loop);
+  schedule.AddNode(lblock, effect_phi);
+  schedule.AddNode(lblock, heap_number);
+  schedule.AddNode(lblock, load);
+  schedule.AddNode(lblock, cond);
+  schedule.AddBranch(lblock, branch, rblock, fblock);
+
+  schedule.AddNode(fblock, if_false);
+  schedule.AddGoto(fblock, lblock);
+
+  schedule.AddNode(rblock, if_true);
+  schedule.AddReturn(rblock, ret);
+
+  // Run the state effect introducer.
+  EffectControlLinearizer introducer(jsgraph(), &schedule, zone());
+  introducer.Run();
+
+  ASSERT_THAT(ret, IsReturn(load, load, if_true));
+  EXPECT_THAT(load, IsLoadField(AccessBuilder::ForHeapNumberValue(),
+                                heap_number, effect_phi, loop));
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/compiler/escape-analysis-unittest.cc b/test/unittests/compiler/escape-analysis-unittest.cc
index d5e12ba..4c17ef2 100644
--- a/test/unittests/compiler/escape-analysis-unittest.cc
+++ b/test/unittests/compiler/escape-analysis-unittest.cc
@@ -146,14 +146,18 @@
   }
 
   FieldAccess FieldAccessAtIndex(int offset) {
-    FieldAccess access = {kTaggedBase, offset, MaybeHandle<Name>(), Type::Any(),
-                          MachineType::AnyTagged()};
+    FieldAccess access = {kTaggedBase,
+                          offset,
+                          MaybeHandle<Name>(),
+                          Type::Any(),
+                          MachineType::AnyTagged(),
+                          kFullWriteBarrier};
     return access;
   }
 
   ElementAccess MakeElementAccess(int header_size) {
     ElementAccess access = {kTaggedBase, header_size, Type::Any(),
-                            MachineType::AnyTagged()};
+                            MachineType::AnyTagged(), kFullWriteBarrier};
     return access;
   }
 
diff --git a/test/unittests/compiler/instruction-selector-unittest.cc b/test/unittests/compiler/instruction-selector-unittest.cc
index 16030f8..69ae768 100644
--- a/test/unittests/compiler/instruction-selector-unittest.cc
+++ b/test/unittests/compiler/instruction-selector-unittest.cc
@@ -199,11 +199,9 @@
 // -----------------------------------------------------------------------------
 // Conversions.
 
-
-TARGET_TEST_F(InstructionSelectorTest, TruncateFloat64ToInt32WithParameter) {
+TARGET_TEST_F(InstructionSelectorTest, TruncateFloat64ToWord32WithParameter) {
   StreamBuilder m(this, MachineType::Int32(), MachineType::Float64());
-  m.Return(
-      m.TruncateFloat64ToInt32(TruncationMode::kJavaScript, m.Parameter(0)));
+  m.Return(m.TruncateFloat64ToWord32(m.Parameter(0)));
   Stream s = m.Build(kAllInstructions);
   ASSERT_EQ(4U, s.size());
   EXPECT_EQ(kArchNop, s[0]->arch_opcode());
diff --git a/test/unittests/compiler/instruction-sequence-unittest.cc b/test/unittests/compiler/instruction-sequence-unittest.cc
index 51112a6..9360ca4 100644
--- a/test/unittests/compiler/instruction-sequence-unittest.cc
+++ b/test/unittests/compiler/instruction-sequence-unittest.cc
@@ -15,10 +15,9 @@
 static const char*
     general_register_names_[RegisterConfiguration::kMaxGeneralRegisters];
 static const char*
-    double_register_names_[RegisterConfiguration::kMaxDoubleRegisters];
+    double_register_names_[RegisterConfiguration::kMaxFPRegisters];
 static char register_names_[10 * (RegisterConfiguration::kMaxGeneralRegisters +
-                                  RegisterConfiguration::kMaxDoubleRegisters)];
-
+                                  RegisterConfiguration::kMaxFPRegisters)];
 
 namespace {
 static int allocatable_codes[InstructionSequenceTest::kDefaultNRegs] = {
@@ -35,7 +34,7 @@
     loc += base::OS::SNPrintF(loc, 100, "gp_%d", i);
     *loc++ = 0;
   }
-  for (int i = 0; i < RegisterConfiguration::kMaxDoubleRegisters; ++i) {
+  for (int i = 0; i < RegisterConfiguration::kMaxFPRegisters; ++i) {
     double_register_names_[i] = loc;
     loc += base::OS::SNPrintF(loc, 100, "fp_%d", i) + 1;
     *loc++ = 0;
diff --git a/test/unittests/compiler/int64-lowering-unittest.cc b/test/unittests/compiler/int64-lowering-unittest.cc
index 08f3038..8bc02c5 100644
--- a/test/unittests/compiler/int64-lowering-unittest.cc
+++ b/test/unittests/compiler/int64-lowering-unittest.cc
@@ -301,9 +301,6 @@
       wasm::ModuleEnv::GetI32WasmCallDescriptor(zone(), desc));
 }
 
-// todo(ahaas): I added a list of missing instructions here to make merging
-// easier when I do them one by one.
-// kExprI64Add:
 TEST_F(Int64LoweringTest, Int64Add) {
   LowerGraph(graph()->NewNode(machine()->Int64Add(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -319,7 +316,7 @@
                         IsProjection(1, AllOf(CaptureEq(&add), add_matcher)),
                         start(), start()));
 }
-// kExprI64Sub:
+
 TEST_F(Int64LoweringTest, Int64Sub) {
   LowerGraph(graph()->NewNode(machine()->Int64Sub(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -336,7 +333,6 @@
                         start(), start()));
 }
 
-// kExprI64Mul:
 TEST_F(Int64LoweringTest, Int64Mul) {
   LowerGraph(graph()->NewNode(machine()->Int64Mul(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -354,11 +350,6 @@
                 start(), start()));
 }
 
-// kExprI64DivS:
-// kExprI64DivU:
-// kExprI64RemS:
-// kExprI64RemU:
-// kExprI64Ior:
 TEST_F(Int64LoweringTest, Int64Ior) {
   LowerGraph(graph()->NewNode(machine()->Word64Or(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -371,7 +362,6 @@
                         start(), start()));
 }
 
-// kExprI64Xor:
 TEST_F(Int64LoweringTest, Int64Xor) {
   LowerGraph(graph()->NewNode(machine()->Word64Xor(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -383,7 +373,7 @@
                                     IsInt32Constant(high_word_value(1))),
                         start(), start()));
 }
-// kExprI64Shl:
+
 TEST_F(Int64LoweringTest, Int64Shl) {
   LowerGraph(graph()->NewNode(machine()->Word64Shl(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -399,7 +389,7 @@
                         IsProjection(1, AllOf(CaptureEq(&shl), shl_matcher)),
                         start(), start()));
 }
-// kExprI64ShrU:
+
 TEST_F(Int64LoweringTest, Int64ShrU) {
   LowerGraph(graph()->NewNode(machine()->Word64Shr(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -415,7 +405,7 @@
                         IsProjection(1, AllOf(CaptureEq(&shr), shr_matcher)),
                         start(), start()));
 }
-// kExprI64ShrS:
+
 TEST_F(Int64LoweringTest, Int64ShrS) {
   LowerGraph(graph()->NewNode(machine()->Word64Sar(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -431,7 +421,7 @@
                         IsProjection(1, AllOf(CaptureEq(&sar), sar_matcher)),
                         start(), start()));
 }
-// kExprI64Eq:
+
 TEST_F(Int64LoweringTest, Int64Eq) {
   LowerGraph(graph()->NewNode(machine()->Word64Equal(), Int64Constant(value(0)),
                               Int64Constant(value(1))),
@@ -447,27 +437,25 @@
                start(), start()));
 }
 
-// kExprI64LtS:
 TEST_F(Int64LoweringTest, Int64LtS) {
   TestComparison(machine()->Int64LessThan(), IsInt32LessThan, IsUint32LessThan);
 }
-// kExprI64LeS:
+
 TEST_F(Int64LoweringTest, Int64LeS) {
   TestComparison(machine()->Int64LessThanOrEqual(), IsInt32LessThan,
                  IsUint32LessThanOrEqual);
 }
-// kExprI64LtU:
+
 TEST_F(Int64LoweringTest, Int64LtU) {
   TestComparison(machine()->Uint64LessThan(), IsUint32LessThan,
                  IsUint32LessThan);
 }
-// kExprI64LeU:
+
 TEST_F(Int64LoweringTest, Int64LeU) {
   TestComparison(machine()->Uint64LessThanOrEqual(), IsUint32LessThan,
                  IsUint32LessThanOrEqual);
 }
 
-// kExprI32ConvertI64:
 TEST_F(Int64LoweringTest, I32ConvertI64) {
   LowerGraph(graph()->NewNode(machine()->TruncateInt64ToInt32(),
                               Int64Constant(value(0))),
@@ -475,7 +463,7 @@
   EXPECT_THAT(graph()->end()->InputAt(1),
               IsReturn(IsInt32Constant(low_word_value(0)), start(), start()));
 }
-// kExprI64SConvertI32:
+
 TEST_F(Int64LoweringTest, I64SConvertI32) {
   LowerGraph(graph()->NewNode(machine()->ChangeInt32ToInt64(),
                               Int32Constant(low_word_value(0))),
@@ -501,7 +489,7 @@
                                     IsInt32Constant(31)),
                         start(), start()));
 }
-// kExprI64UConvertI32:
+
 TEST_F(Int64LoweringTest, I64UConvertI32) {
   LowerGraph(graph()->NewNode(machine()->ChangeUint32ToUint64(),
                               Int32Constant(low_word_value(0))),
@@ -523,7 +511,7 @@
               IsReturn2(IsInt32Constant(low_word_value(0)), IsInt32Constant(0),
                         start(), start()));
 }
-// kExprF64ReinterpretI64:
+
 TEST_F(Int64LoweringTest, F64ReinterpretI64) {
   LowerGraph(graph()->NewNode(machine()->BitcastInt64ToFloat64(),
                               Int64Constant(value(0))),
@@ -554,7 +542,7 @@
                       AllOf(CaptureEq(&store_capture), store_matcher), start()),
                start(), start()));
 }
-// kExprI64ReinterpretF64:
+
 TEST_F(Int64LoweringTest, I64ReinterpretF64) {
   LowerGraph(graph()->NewNode(machine()->BitcastFloat64ToInt64(),
                               Float64Constant(bit_cast<double>(value(0)))),
@@ -583,7 +571,7 @@
                        AllOf(CaptureEq(&store), store_matcher), start()),
                 start(), start()));
 }
-// kExprI64Clz:
+
 TEST_F(Int64LoweringTest, I64Clz) {
   LowerGraph(graph()->NewNode(machine()->Word64Clz(), Int64Constant(value(0))),
              MachineRepresentation::kWord64);
@@ -606,7 +594,7 @@
                         AllOf(CaptureEq(&branch_capture), branch_matcher)))),
           IsInt32Constant(0), start(), start()));
 }
-// kExprI64Ctz:
+
 TEST_F(Int64LoweringTest, I64Ctz) {
   LowerGraph(graph()->NewNode(machine()->Word64CtzPlaceholder(),
                               Int64Constant(value(0))),
@@ -628,7 +616,6 @@
                         AllOf(CaptureEq(&branch_capture), branch_matcher)))),
           IsInt32Constant(0), start(), start()));
 }
-// kExprI64Popcnt:
 
 TEST_F(Int64LoweringTest, Dfs) {
   Node* common = Int64Constant(value(0));
diff --git a/test/unittests/compiler/js-create-lowering-unittest.cc b/test/unittests/compiler/js-create-lowering-unittest.cc
index 837c574..5d95d0d 100644
--- a/test/unittests/compiler/js-create-lowering-unittest.cc
+++ b/test/unittests/compiler/js-create-lowering-unittest.cc
@@ -80,95 +80,74 @@
 // -----------------------------------------------------------------------------
 // JSCreateArguments
 
-TEST_F(JSCreateLoweringTest, JSCreateArgumentsViaStub) {
-  Node* const closure = Parameter(Type::Any());
-  Node* const context = UndefinedConstant();
-  Node* const effect = graph()->start();
-  Node* const control = graph()->start();
-  Handle<SharedFunctionInfo> shared(isolate()->object_function()->shared());
-  Node* const frame_state = FrameState(shared, graph()->start());
-  Reduction r = Reduce(graph()->NewNode(
-      javascript()->CreateArguments(CreateArgumentsType::kUnmappedArguments),
-      closure, context, frame_state, effect, control));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(
-      r.replacement(),
-      IsCall(_, IsHeapConstant(
-                    CodeFactory::FastNewStrictArguments(isolate()).code()),
-             closure, context, frame_state, effect, control));
-}
-
-TEST_F(JSCreateLoweringTest, JSCreateArgumentsRestParameterViaStub) {
-  Node* const closure = Parameter(Type::Any());
-  Node* const context = UndefinedConstant();
-  Node* const effect = graph()->start();
-  Node* const control = graph()->start();
-  Handle<SharedFunctionInfo> shared(isolate()->object_function()->shared());
-  Node* const frame_state = FrameState(shared, graph()->start());
-  Reduction r = Reduce(graph()->NewNode(
-      javascript()->CreateArguments(CreateArgumentsType::kRestParameter),
-      closure, context, frame_state, effect, control));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(
-      r.replacement(),
-      IsCall(_, IsHeapConstant(
-                    CodeFactory::FastNewRestParameter(isolate()).code()),
-             closure, context, frame_state, effect, control));
-}
-
 TEST_F(JSCreateLoweringTest, JSCreateArgumentsInlinedMapped) {
   Node* const closure = Parameter(Type::Any());
   Node* const context = UndefinedConstant();
   Node* const effect = graph()->start();
-  Node* const control = graph()->start();
   Handle<SharedFunctionInfo> shared(isolate()->object_function()->shared());
   Node* const frame_state_outer = FrameState(shared, graph()->start());
   Node* const frame_state_inner = FrameState(shared, frame_state_outer);
   Reduction r = Reduce(graph()->NewNode(
       javascript()->CreateArguments(CreateArgumentsType::kMappedArguments),
-      closure, context, frame_state_inner, effect, control));
+      closure, context, frame_state_inner, effect));
   ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(),
-              IsFinishRegion(
-                  IsAllocate(IsNumberConstant(JSSloppyArgumentsObject::kSize),
-                             _, control),
-                  _));
+  EXPECT_THAT(
+      r.replacement(),
+      IsFinishRegion(
+          IsAllocate(IsNumberConstant(JSSloppyArgumentsObject::kSize), _, _),
+          _));
 }
 
 TEST_F(JSCreateLoweringTest, JSCreateArgumentsInlinedUnmapped) {
   Node* const closure = Parameter(Type::Any());
   Node* const context = UndefinedConstant();
   Node* const effect = graph()->start();
-  Node* const control = graph()->start();
   Handle<SharedFunctionInfo> shared(isolate()->object_function()->shared());
   Node* const frame_state_outer = FrameState(shared, graph()->start());
   Node* const frame_state_inner = FrameState(shared, frame_state_outer);
   Reduction r = Reduce(graph()->NewNode(
       javascript()->CreateArguments(CreateArgumentsType::kUnmappedArguments),
-      closure, context, frame_state_inner, effect, control));
+      closure, context, frame_state_inner, effect));
   ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(),
-              IsFinishRegion(
-                  IsAllocate(IsNumberConstant(JSStrictArgumentsObject::kSize),
-                             _, control),
-                  _));
+  EXPECT_THAT(
+      r.replacement(),
+      IsFinishRegion(
+          IsAllocate(IsNumberConstant(JSStrictArgumentsObject::kSize), _, _),
+          _));
 }
 
 TEST_F(JSCreateLoweringTest, JSCreateArgumentsInlinedRestArray) {
   Node* const closure = Parameter(Type::Any());
   Node* const context = UndefinedConstant();
   Node* const effect = graph()->start();
-  Node* const control = graph()->start();
   Handle<SharedFunctionInfo> shared(isolate()->object_function()->shared());
   Node* const frame_state_outer = FrameState(shared, graph()->start());
   Node* const frame_state_inner = FrameState(shared, frame_state_outer);
   Reduction r = Reduce(graph()->NewNode(
       javascript()->CreateArguments(CreateArgumentsType::kRestParameter),
-      closure, context, frame_state_inner, effect, control));
+      closure, context, frame_state_inner, effect));
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(
+      r.replacement(),
+      IsFinishRegion(IsAllocate(IsNumberConstant(JSArray::kSize), _, _), _));
+}
+
+// -----------------------------------------------------------------------------
+// JSCreateClosure
+
+TEST_F(JSCreateLoweringTest, JSCreateClosureViaInlinedAllocation) {
+  Node* const context = UndefinedConstant();
+  Node* const effect = graph()->start();
+  Node* const control = graph()->start();
+  Handle<SharedFunctionInfo> shared(isolate()->object_function()->shared());
+  Reduction r =
+      Reduce(graph()->NewNode(javascript()->CreateClosure(shared, NOT_TENURED),
+                              context, effect, control));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(),
-              IsFinishRegion(
-                  IsAllocate(IsNumberConstant(JSArray::kSize), _, control), _));
+              IsFinishRegion(IsAllocate(IsNumberConstant(JSFunction::kSize),
+                                        IsBeginRegion(_), control),
+                             _));
 }
 
 // -----------------------------------------------------------------------------
diff --git a/test/unittests/compiler/js-intrinsic-lowering-unittest.cc b/test/unittests/compiler/js-intrinsic-lowering-unittest.cc
index de0eefc..7c2f459 100644
--- a/test/unittests/compiler/js-intrinsic-lowering-unittest.cc
+++ b/test/unittests/compiler/js-intrinsic-lowering-unittest.cc
@@ -92,7 +92,7 @@
                        input, context, effect, control));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(),
-              IsFloat64ExtractLowWord32(IsGuard(Type::Number(), input, _)));
+              IsFloat64ExtractLowWord32(IsTypeGuard(Type::Number(), input, _)));
 }
 
 
@@ -109,8 +109,8 @@
       graph()->NewNode(javascript()->CallRuntime(Runtime::kInlineDoubleHi, 1),
                        input, context, effect, control));
   ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(),
-              IsFloat64ExtractHighWord32(IsGuard(Type::Number(), input, _)));
+  EXPECT_THAT(r.replacement(), IsFloat64ExtractHighWord32(
+                                   IsTypeGuard(Type::Number(), input, _)));
 }
 
 
@@ -284,23 +284,6 @@
               AllOf(CaptureEq(&if_false0), IsIfFalse(CaptureEq(&branch0))))));
 }
 
-// -----------------------------------------------------------------------------
-// %_GetOrdinaryHasInstance
-
-TEST_F(JSIntrinsicLoweringTest, InlineGetOrdinaryHasInstance) {
-  Node* const context = Parameter(0);
-  Node* const effect = graph()->start();
-  Node* const control = graph()->start();
-  Reduction const r = Reduce(graph()->NewNode(
-      javascript()->CallRuntime(Runtime::kInlineGetOrdinaryHasInstance, 0),
-      context, effect, control));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(
-      r.replacement(),
-      IsLoadContext(
-          ContextAccess(0, Context::ORDINARY_HAS_INSTANCE_INDEX, true), _));
-}
-
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/compiler/js-operator-unittest.cc b/test/unittests/compiler/js-operator-unittest.cc
index 15b1427..28df6a9 100644
--- a/test/unittests/compiler/js-operator-unittest.cc
+++ b/test/unittests/compiler/js-operator-unittest.cc
@@ -42,8 +42,8 @@
   }
     SHARED(Equal, Operator::kNoProperties, 2, 1, 1, 1, 1, 1, 2),
     SHARED(NotEqual, Operator::kNoProperties, 2, 1, 1, 1, 1, 1, 2),
-    SHARED(StrictEqual, Operator::kNoThrow, 2, 0, 1, 1, 1, 1, 0),
-    SHARED(StrictNotEqual, Operator::kNoThrow, 2, 0, 1, 1, 1, 1, 0),
+    SHARED(StrictEqual, Operator::kPure, 2, 0, 0, 0, 1, 0, 0),
+    SHARED(StrictNotEqual, Operator::kPure, 2, 0, 0, 0, 1, 0, 0),
     SHARED(LessThan, Operator::kNoProperties, 2, 2, 1, 1, 1, 1, 2),
     SHARED(GreaterThan, Operator::kNoProperties, 2, 2, 1, 1, 1, 1, 2),
     SHARED(LessThanOrEqual, Operator::kNoProperties, 2, 2, 1, 1, 1, 1, 2),
@@ -51,11 +51,10 @@
     SHARED(ToNumber, Operator::kNoProperties, 1, 1, 1, 1, 1, 1, 2),
     SHARED(ToString, Operator::kNoProperties, 1, 1, 1, 1, 1, 1, 2),
     SHARED(ToName, Operator::kNoProperties, 1, 1, 1, 1, 1, 1, 2),
-    SHARED(ToObject, Operator::kNoProperties, 1, 1, 1, 1, 1, 1, 2),
-    SHARED(Yield, Operator::kNoProperties, 1, 0, 1, 1, 1, 1, 2),
+    SHARED(ToObject, Operator::kFoldable, 1, 1, 1, 1, 1, 1, 2),
     SHARED(Create, Operator::kEliminatable, 2, 1, 1, 0, 1, 1, 0),
     SHARED(HasProperty, Operator::kNoProperties, 2, 1, 1, 1, 1, 1, 2),
-    SHARED(TypeOf, Operator::kEliminatable, 1, 0, 1, 0, 1, 1, 0),
+    SHARED(TypeOf, Operator::kPure, 1, 0, 0, 0, 1, 0, 0),
     SHARED(InstanceOf, Operator::kNoProperties, 2, 1, 1, 1, 1, 1, 2),
     SHARED(CreateWithContext, Operator::kNoProperties, 2, 0, 1, 1, 1, 1, 2),
     SHARED(CreateModuleContext, Operator::kNoProperties, 2, 0, 1, 1, 1, 1, 2),
diff --git a/test/unittests/compiler/js-typed-lowering-unittest.cc b/test/unittests/compiler/js-typed-lowering-unittest.cc
index 1adb5da..904d5f7 100644
--- a/test/unittests/compiler/js-typed-lowering-unittest.cc
+++ b/test/unittests/compiler/js-typed-lowering-unittest.cc
@@ -212,9 +212,8 @@
 TEST_F(JSTypedLoweringTest, JSToBooleanWithBoolean) {
   Node* input = Parameter(Type::Boolean(), 0);
   Node* context = Parameter(Type::Any(), 1);
-  Reduction r =
-      Reduce(graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
-                              input, context, graph()->start()));
+  Reduction r = Reduce(graph()->NewNode(
+      javascript()->ToBoolean(ToBooleanHint::kAny), input, context));
   ASSERT_TRUE(r.Changed());
   EXPECT_EQ(input, r.replacement());
 }
@@ -242,9 +241,8 @@
           zone()),
       0);
   Node* context = Parameter(Type::Any(), 1);
-  Reduction r =
-      Reduce(graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
-                              input, context, graph()->start()));
+  Reduction r = Reduce(graph()->NewNode(
+      javascript()->ToBoolean(ToBooleanHint::kAny), input, context));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(), IsFalseConstant());
 }
@@ -258,9 +256,8 @@
           zone()),
       0);
   Node* context = Parameter(Type::Any(), 1);
-  Reduction r =
-      Reduce(graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
-                              input, context, graph()->start()));
+  Reduction r = Reduce(graph()->NewNode(
+      javascript()->ToBoolean(ToBooleanHint::kAny), input, context));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(), IsTrueConstant());
 }
@@ -269,9 +266,8 @@
 TEST_F(JSTypedLoweringTest, JSToBooleanWithNonZeroPlainNumber) {
   Node* input = Parameter(Type::Range(1, V8_INFINITY, zone()), 0);
   Node* context = Parameter(Type::Any(), 1);
-  Reduction r =
-      Reduce(graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
-                              input, context, graph()->start()));
+  Reduction r = Reduce(graph()->NewNode(
+      javascript()->ToBoolean(ToBooleanHint::kAny), input, context));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(), IsTrueConstant());
 }
@@ -280,9 +276,8 @@
 TEST_F(JSTypedLoweringTest, JSToBooleanWithOrderedNumber) {
   Node* input = Parameter(Type::OrderedNumber(), 0);
   Node* context = Parameter(Type::Any(), 1);
-  Reduction r =
-      Reduce(graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
-                              input, context, graph()->start()));
+  Reduction r = Reduce(graph()->NewNode(
+      javascript()->ToBoolean(ToBooleanHint::kAny), input, context));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(),
               IsBooleanNot(IsNumberEqual(input, IsNumberConstant(0.0))));
@@ -292,9 +287,8 @@
 TEST_F(JSTypedLoweringTest, JSToBooleanWithString) {
   Node* input = Parameter(Type::String(), 0);
   Node* context = Parameter(Type::Any(), 1);
-  Reduction r =
-      Reduce(graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
-                              input, context, graph()->start()));
+  Reduction r = Reduce(graph()->NewNode(
+      javascript()->ToBoolean(ToBooleanHint::kAny), input, context));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(
       r.replacement(),
@@ -307,9 +301,8 @@
 TEST_F(JSTypedLoweringTest, JSToBooleanWithAny) {
   Node* input = Parameter(Type::Any(), 0);
   Node* context = Parameter(Type::Any(), 1);
-  Reduction r =
-      Reduce(graph()->NewNode(javascript()->ToBoolean(ToBooleanHint::kAny),
-                              input, context, graph()->start()));
+  Reduction r = Reduce(graph()->NewNode(
+      javascript()->ToBoolean(ToBooleanHint::kAny), input, context));
   ASSERT_FALSE(r.Changed());
 }
 
@@ -391,9 +384,8 @@
   Node* const context = UndefinedConstant();
   TRACED_FOREACH(Type*, type, kJSTypes) {
     Node* const lhs = Parameter(type);
-    Reduction r =
-        Reduce(graph()->NewNode(javascript()->StrictEqual(), lhs, the_hole,
-                                context, graph()->start(), graph()->start()));
+    Reduction r = Reduce(
+        graph()->NewNode(javascript()->StrictEqual(), lhs, the_hole, context));
     ASSERT_TRUE(r.Changed());
     EXPECT_THAT(r.replacement(), IsFalseConstant());
   }
@@ -405,8 +397,7 @@
   Node* const rhs = Parameter(Type::Unique(), 1);
   Node* const context = Parameter(Type::Any(), 2);
   Reduction r =
-      Reduce(graph()->NewNode(javascript()->StrictEqual(), lhs, rhs, context,
-                              graph()->start(), graph()->start()));
+      Reduce(graph()->NewNode(javascript()->StrictEqual(), lhs, rhs, context));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(), IsReferenceEqual(Type::Unique(), lhs, rhs));
 }
@@ -823,24 +814,6 @@
 }
 
 
-TEST_F(JSTypedLoweringTest, JSLoadNamedFunctionPrototype) {
-  VectorSlotPair feedback;
-  Handle<Name> name = factory()->prototype_string();
-  Handle<JSFunction> function = isolate()->object_function();
-  Handle<JSObject> function_prototype(JSObject::cast(function->prototype()));
-  Node* const receiver = Parameter(Type::Constant(function, zone()), 0);
-  Node* const vector = Parameter(Type::Internal(), 1);
-  Node* const context = Parameter(Type::Internal(), 2);
-  Node* const effect = graph()->start();
-  Node* const control = graph()->start();
-  Reduction const r = Reduce(graph()->NewNode(
-      javascript()->LoadNamed(name, feedback), receiver, vector, context,
-      EmptyFrameState(), EmptyFrameState(), effect, control));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsHeapConstant(function_prototype));
-}
-
-
 // -----------------------------------------------------------------------------
 // JSAdd
 
diff --git a/test/unittests/compiler/load-elimination-unittest.cc b/test/unittests/compiler/load-elimination-unittest.cc
index 38bb151..721d6df 100644
--- a/test/unittests/compiler/load-elimination-unittest.cc
+++ b/test/unittests/compiler/load-elimination-unittest.cc
@@ -14,23 +14,20 @@
 
 class LoadEliminationTest : public TypedGraphTest {
  public:
-  LoadEliminationTest()
-      : TypedGraphTest(3), common_(zone()), simplified_(zone()) {}
+  LoadEliminationTest() : TypedGraphTest(3), simplified_(zone()) {}
   ~LoadEliminationTest() override {}
 
  protected:
   Reduction Reduce(Node* node) {
     // TODO(titzer): mock the GraphReducer here for better unit testing.
     GraphReducer graph_reducer(zone(), graph());
-    LoadElimination reducer(&graph_reducer, graph(), common());
+    LoadElimination reducer(&graph_reducer, graph(), simplified());
     return reducer.Reduce(node);
   }
 
   SimplifiedOperatorBuilder* simplified() { return &simplified_; }
-  CommonOperatorBuilder* common() { return &common_; }
 
  private:
-  CommonOperatorBuilder common_;
   SimplifiedOperatorBuilder simplified_;
 };
 
diff --git a/test/unittests/compiler/machine-operator-reducer-unittest.cc b/test/unittests/compiler/machine-operator-reducer-unittest.cc
index 2feba2e..8b65e04 100644
--- a/test/unittests/compiler/machine-operator-reducer-unittest.cc
+++ b/test/unittests/compiler/machine-operator-reducer-unittest.cc
@@ -236,10 +236,6 @@
     0x00003fff, 0x00001fff, 0x00000fff, 0x000007ff, 0x000003ff, 0x000001ff};
 
 
-const TruncationMode kTruncationModes[] = {TruncationMode::kJavaScript,
-                                           TruncationMode::kRoundToZero};
-
-
 struct ComparisonBinaryOperator {
   const Operator* (MachineOperatorBuilder::*constructor)();
   const char* constructor_name;
@@ -413,51 +409,28 @@
 
 
 // -----------------------------------------------------------------------------
-// TruncateFloat64ToInt32
-
+// TruncateFloat64ToWord32
 
 TEST_F(MachineOperatorReducerTest,
-       TruncateFloat64ToInt32WithChangeInt32ToFloat64) {
-  TRACED_FOREACH(TruncationMode, mode, kTruncationModes) {
-    Node* value = Parameter(0);
-    Reduction reduction = Reduce(graph()->NewNode(
-        machine()->TruncateFloat64ToInt32(mode),
-        graph()->NewNode(machine()->ChangeInt32ToFloat64(), value)));
-    ASSERT_TRUE(reduction.Changed());
-    EXPECT_EQ(value, reduction.replacement());
-  }
+       TruncateFloat64ToWord32WithChangeInt32ToFloat64) {
+  Node* value = Parameter(0);
+  Reduction reduction = Reduce(graph()->NewNode(
+      machine()->TruncateFloat64ToWord32(),
+      graph()->NewNode(machine()->ChangeInt32ToFloat64(), value)));
+  ASSERT_TRUE(reduction.Changed());
+  EXPECT_EQ(value, reduction.replacement());
 }
 
-
-TEST_F(MachineOperatorReducerTest, TruncateFloat64ToInt32WithConstant) {
+TEST_F(MachineOperatorReducerTest, TruncateFloat64ToWord32WithConstant) {
   TRACED_FOREACH(double, x, kFloat64Values) {
     Reduction reduction = Reduce(graph()->NewNode(
-        machine()->TruncateFloat64ToInt32(TruncationMode::kJavaScript),
-        Float64Constant(x)));
+        machine()->TruncateFloat64ToWord32(), Float64Constant(x)));
     ASSERT_TRUE(reduction.Changed());
     EXPECT_THAT(reduction.replacement(), IsInt32Constant(DoubleToInt32(x)));
   }
 }
 
 
-TEST_F(MachineOperatorReducerTest, TruncateFloat64ToInt32WithPhi) {
-  Node* const p0 = Parameter(0);
-  Node* const p1 = Parameter(1);
-  Node* const merge = graph()->start();
-  TRACED_FOREACH(TruncationMode, mode, kTruncationModes) {
-    Reduction reduction = Reduce(graph()->NewNode(
-        machine()->TruncateFloat64ToInt32(mode),
-        graph()->NewNode(common()->Phi(MachineRepresentation::kFloat64, 2), p0,
-                         p1, merge)));
-    ASSERT_TRUE(reduction.Changed());
-    EXPECT_THAT(
-        reduction.replacement(),
-        IsPhi(MachineRepresentation::kWord32, IsTruncateFloat64ToInt32(p0),
-              IsTruncateFloat64ToInt32(p1), merge));
-  }
-}
-
-
 // -----------------------------------------------------------------------------
 // TruncateInt64ToInt32
 
@@ -485,8 +458,30 @@
 
 
 // -----------------------------------------------------------------------------
-// Word32And
+// RoundFloat64ToInt32
 
+TEST_F(MachineOperatorReducerTest,
+       RoundFloat64ToInt32WithChangeInt32ToFloat64) {
+  Node* value = Parameter(0);
+  Reduction reduction = Reduce(graph()->NewNode(
+      machine()->RoundFloat64ToInt32(),
+      graph()->NewNode(machine()->ChangeInt32ToFloat64(), value)));
+  ASSERT_TRUE(reduction.Changed());
+  EXPECT_EQ(value, reduction.replacement());
+}
+
+TEST_F(MachineOperatorReducerTest, RoundFloat64ToInt32WithConstant) {
+  TRACED_FOREACH(double, x, kFloat64Values) {
+    Reduction reduction = Reduce(
+        graph()->NewNode(machine()->RoundFloat64ToInt32(), Float64Constant(x)));
+    ASSERT_TRUE(reduction.Changed());
+    EXPECT_THAT(reduction.replacement(),
+                IsInt32Constant(static_cast<int32_t>(x)));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Word32And
 
 TEST_F(MachineOperatorReducerTest, Word32AndWithWord32ShlWithConstant) {
   Node* const p0 = Parameter(0);
diff --git a/test/unittests/compiler/node-test-utils.cc b/test/unittests/compiler/node-test-utils.cc
index 6e5d39f..6adacc1 100644
--- a/test/unittests/compiler/node-test-utils.cc
+++ b/test/unittests/compiler/node-test-utils.cc
@@ -612,49 +612,6 @@
 };
 
 
-class IsEffectSetMatcher final : public NodeMatcher {
- public:
-  IsEffectSetMatcher(const Matcher<Node*>& effect0_matcher,
-                     const Matcher<Node*>& effect1_matcher)
-      : NodeMatcher(IrOpcode::kEffectSet),
-        effect0_matcher_(effect0_matcher),
-        effect1_matcher_(effect1_matcher) {}
-
-  void DescribeTo(std::ostream* os) const final {
-    NodeMatcher::DescribeTo(os);
-    *os << "), effect0 (";
-    effect0_matcher_.DescribeTo(os);
-    *os << ") and effect1 (";
-    effect1_matcher_.DescribeTo(os);
-    *os << ")";
-  }
-
-  bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
-    if (!NodeMatcher::MatchAndExplain(node, listener)) return false;
-
-    Node* effect0 = NodeProperties::GetEffectInput(node, 0);
-    Node* effect1 = NodeProperties::GetEffectInput(node, 1);
-
-    {
-      // Try matching in the reverse order first.
-      StringMatchResultListener value_listener;
-      if (effect0_matcher_.MatchAndExplain(effect1, &value_listener) &&
-          effect1_matcher_.MatchAndExplain(effect0, &value_listener)) {
-        return true;
-      }
-    }
-
-    return PrintMatchAndExplain(effect0, "effect0", effect0_matcher_,
-                                listener) &&
-           PrintMatchAndExplain(effect1, "effect1", effect1_matcher_, listener);
-  }
-
- private:
-  const Matcher<Node*> effect0_matcher_;
-  const Matcher<Node*> effect1_matcher_;
-};
-
-
 class IsProjectionMatcher final : public NodeMatcher {
  public:
   IsProjectionMatcher(const Matcher<size_t>& index_matcher,
@@ -1352,12 +1309,12 @@
   const Matcher<MachineRepresentation> rep_matcher_;
 };
 
-class IsGuardMatcher final : public NodeMatcher {
+class IsTypeGuardMatcher final : public NodeMatcher {
  public:
-  IsGuardMatcher(const Matcher<Type*>& type_matcher,
-                 const Matcher<Node*>& value_matcher,
-                 const Matcher<Node*>& control_matcher)
-      : NodeMatcher(IrOpcode::kGuard),
+  IsTypeGuardMatcher(const Matcher<Type*>& type_matcher,
+                     const Matcher<Node*>& value_matcher,
+                     const Matcher<Node*>& control_matcher)
+      : NodeMatcher(IrOpcode::kTypeGuard),
         type_matcher_(type_matcher),
         value_matcher_(value_matcher),
         control_matcher_(control_matcher) {}
@@ -1818,12 +1775,6 @@
 }
 
 
-Matcher<Node*> IsEffectSet(const Matcher<Node*>& effect0_matcher,
-                           const Matcher<Node*>& effect1_matcher) {
-  return MakeMatcher(new IsEffectSetMatcher(effect0_matcher, effect1_matcher));
-}
-
-
 Matcher<Node*> IsProjection(const Matcher<size_t>& index_matcher,
                             const Matcher<Node*>& base_matcher) {
   return MakeMatcher(new IsProjectionMatcher(index_matcher, base_matcher));
@@ -2064,11 +2015,11 @@
                                            effect_matcher, control_matcher));
 }
 
-Matcher<Node*> IsGuard(const Matcher<Type*>& type_matcher,
-                       const Matcher<Node*>& value_matcher,
-                       const Matcher<Node*>& control_matcher) {
+Matcher<Node*> IsTypeGuard(const Matcher<Type*>& type_matcher,
+                           const Matcher<Node*>& value_matcher,
+                           const Matcher<Node*>& control_matcher) {
   return MakeMatcher(
-      new IsGuardMatcher(type_matcher, value_matcher, control_matcher));
+      new IsTypeGuardMatcher(type_matcher, value_matcher, control_matcher));
 }
 
 Matcher<Node*> IsReferenceEqual(const Matcher<Type*>& type_matcher,
@@ -2204,6 +2155,10 @@
   return MakeMatcher(new NodeMatcher(IrOpcode::kLoadFramePointer));
 }
 
+Matcher<Node*> IsLoadParentFramePointer() {
+  return MakeMatcher(new NodeMatcher(IrOpcode::kLoadParentFramePointer));
+}
+
 #define IS_QUADOP_MATCHER(Name)                                               \
   Matcher<Node*> Is##Name(                                                    \
       const Matcher<Node*>& a_matcher, const Matcher<Node*>& b_matcher,       \
@@ -2284,6 +2239,7 @@
     return MakeMatcher(new IsUnopMatcher(IrOpcode::k##Name, input_matcher)); \
   }
 IS_UNOP_MATCHER(BooleanNot)
+IS_UNOP_MATCHER(TruncateFloat64ToWord32)
 IS_UNOP_MATCHER(ChangeFloat64ToInt32)
 IS_UNOP_MATCHER(ChangeFloat64ToUint32)
 IS_UNOP_MATCHER(ChangeInt32ToFloat64)
@@ -2291,7 +2247,6 @@
 IS_UNOP_MATCHER(ChangeUint32ToFloat64)
 IS_UNOP_MATCHER(ChangeUint32ToUint64)
 IS_UNOP_MATCHER(TruncateFloat64ToFloat32)
-IS_UNOP_MATCHER(TruncateFloat64ToInt32)
 IS_UNOP_MATCHER(TruncateInt64ToInt32)
 IS_UNOP_MATCHER(Float32Abs)
 IS_UNOP_MATCHER(Float64Abs)
diff --git a/test/unittests/compiler/node-test-utils.h b/test/unittests/compiler/node-test-utils.h
index dd036c9..4979bd5 100644
--- a/test/unittests/compiler/node-test-utils.h
+++ b/test/unittests/compiler/node-test-utils.h
@@ -97,8 +97,6 @@
 Matcher<Node*> IsEffectPhi(const Matcher<Node*>& effect0_matcher,
                            const Matcher<Node*>& effect1_matcher,
                            const Matcher<Node*>& merge_matcher);
-Matcher<Node*> IsEffectSet(const Matcher<Node*>& effect0_matcher,
-                           const Matcher<Node*>& effect1_matcher);
 Matcher<Node*> IsProjection(const Matcher<size_t>& index_matcher,
                             const Matcher<Node*>& base_matcher);
 Matcher<Node*> IsCall(const Matcher<const CallDescriptor*>& descriptor_matcher,
@@ -315,6 +313,7 @@
                           const Matcher<Node*>& rhs_matcher);
 Matcher<Node*> IsJSAdd(const Matcher<Node*>& lhs_matcher,
                        const Matcher<Node*>& rhs_matcher);
+Matcher<Node*> IsTruncateFloat64ToWord32(const Matcher<Node*>& input_matcher);
 Matcher<Node*> IsChangeFloat64ToInt32(const Matcher<Node*>& input_matcher);
 Matcher<Node*> IsChangeFloat64ToUint32(const Matcher<Node*>& input_matcher);
 Matcher<Node*> IsChangeInt32ToFloat64(const Matcher<Node*>& input_matcher);
@@ -322,7 +321,6 @@
 Matcher<Node*> IsChangeUint32ToFloat64(const Matcher<Node*>& input_matcher);
 Matcher<Node*> IsChangeUint32ToUint64(const Matcher<Node*>& input_matcher);
 Matcher<Node*> IsTruncateFloat64ToFloat32(const Matcher<Node*>& input_matcher);
-Matcher<Node*> IsTruncateFloat64ToInt32(const Matcher<Node*>& input_matcher);
 Matcher<Node*> IsTruncateInt64ToInt32(const Matcher<Node*>& input_matcher);
 Matcher<Node*> IsFloat32Max(const Matcher<Node*>& lhs_matcher,
                             const Matcher<Node*>& rhs_matcher);
@@ -362,6 +360,7 @@
 Matcher<Node*> IsNumberToUint32(const Matcher<Node*>& input_matcher);
 Matcher<Node*> IsParameter(const Matcher<int> index_matcher);
 Matcher<Node*> IsLoadFramePointer();
+Matcher<Node*> IsLoadParentFramePointer();
 
 Matcher<Node*> IsInt32PairAdd(const Matcher<Node*>& a_matcher,
                               const Matcher<Node*>& b_matcher,
@@ -388,9 +387,9 @@
                                const Matcher<Node*>& rhs_matcher);
 
 Matcher<Node*> IsStackSlot();
-Matcher<Node*> IsGuard(const Matcher<Type*>& type_matcher,
-                       const Matcher<Node*>& value_matcher,
-                       const Matcher<Node*>& control_matcher);
+Matcher<Node*> IsTypeGuard(const Matcher<Type*>& type_matcher,
+                           const Matcher<Node*>& value_matcher,
+                           const Matcher<Node*>& control_matcher);
 
 }  // namespace compiler
 }  // namespace internal
diff --git a/test/unittests/compiler/simplified-operator-reducer-unittest.cc b/test/unittests/compiler/simplified-operator-reducer-unittest.cc
index f571898..eec39ab 100644
--- a/test/unittests/compiler/simplified-operator-reducer-unittest.cc
+++ b/test/unittests/compiler/simplified-operator-reducer-unittest.cc
@@ -150,60 +150,54 @@
 
 
 // -----------------------------------------------------------------------------
-// ChangeBoolToBit
+// ChangeTaggedToBit
 
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeBitToBoolWithChangeBoolToBit) {
+TEST_F(SimplifiedOperatorReducerTest, ChangeBitToTaggedWithChangeTaggedToBit) {
   Node* param0 = Parameter(0);
   Reduction reduction = Reduce(graph()->NewNode(
-      simplified()->ChangeBitToBool(),
-      graph()->NewNode(simplified()->ChangeBoolToBit(), param0)));
+      simplified()->ChangeBitToTagged(),
+      graph()->NewNode(simplified()->ChangeTaggedToBit(), param0)));
   ASSERT_TRUE(reduction.Changed());
   EXPECT_EQ(param0, reduction.replacement());
 }
 
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeBitToBoolWithZeroConstant) {
+TEST_F(SimplifiedOperatorReducerTest, ChangeBitToTaggedWithZeroConstant) {
   Reduction reduction = Reduce(
-      graph()->NewNode(simplified()->ChangeBitToBool(), Int32Constant(0)));
+      graph()->NewNode(simplified()->ChangeBitToTagged(), Int32Constant(0)));
   ASSERT_TRUE(reduction.Changed());
   EXPECT_THAT(reduction.replacement(), IsFalseConstant());
 }
 
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeBitToBoolWithOneConstant) {
+TEST_F(SimplifiedOperatorReducerTest, ChangeBitToTaggedWithOneConstant) {
   Reduction reduction = Reduce(
-      graph()->NewNode(simplified()->ChangeBitToBool(), Int32Constant(1)));
+      graph()->NewNode(simplified()->ChangeBitToTagged(), Int32Constant(1)));
   ASSERT_TRUE(reduction.Changed());
   EXPECT_THAT(reduction.replacement(), IsTrueConstant());
 }
 
 
 // -----------------------------------------------------------------------------
-// ChangeBoolToBit
+// ChangeTaggedToBit
 
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeBoolToBitWithFalseConstant) {
+TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToBitWithFalseConstant) {
   Reduction reduction = Reduce(
-      graph()->NewNode(simplified()->ChangeBoolToBit(), FalseConstant()));
+      graph()->NewNode(simplified()->ChangeTaggedToBit(), FalseConstant()));
   ASSERT_TRUE(reduction.Changed());
   EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
 }
 
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeBoolToBitWithTrueConstant) {
-  Reduction reduction =
-      Reduce(graph()->NewNode(simplified()->ChangeBoolToBit(), TrueConstant()));
+TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToBitWithTrueConstant) {
+  Reduction reduction = Reduce(
+      graph()->NewNode(simplified()->ChangeTaggedToBit(), TrueConstant()));
   ASSERT_TRUE(reduction.Changed());
   EXPECT_THAT(reduction.replacement(), IsInt32Constant(1));
 }
 
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeBoolToBitWithChangeBitToBool) {
+TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToBitWithChangeBitToTagged) {
   Node* param0 = Parameter(0);
   Reduction reduction = Reduce(graph()->NewNode(
-      simplified()->ChangeBoolToBit(),
-      graph()->NewNode(simplified()->ChangeBitToBool(), param0)));
+      simplified()->ChangeTaggedToBit(),
+      graph()->NewNode(simplified()->ChangeBitToTagged(), param0)));
   ASSERT_TRUE(reduction.Changed());
   EXPECT_EQ(param0, reduction.replacement());
 }
@@ -401,6 +395,28 @@
   }
 }
 
+// -----------------------------------------------------------------------------
+// TruncateTaggedToWord32
+
+TEST_F(SimplifiedOperatorReducerTest,
+       TruncateTaggedToWord3WithChangeFloat64ToTagged) {
+  Node* param0 = Parameter(0);
+  Reduction reduction = Reduce(graph()->NewNode(
+      simplified()->TruncateTaggedToWord32(),
+      graph()->NewNode(simplified()->ChangeFloat64ToTagged(), param0)));
+  ASSERT_TRUE(reduction.Changed());
+  EXPECT_THAT(reduction.replacement(), IsTruncateFloat64ToWord32(param0));
+}
+
+TEST_F(SimplifiedOperatorReducerTest, TruncateTaggedToWord32WithConstant) {
+  TRACED_FOREACH(double, n, kFloat64Values) {
+    Reduction reduction = Reduce(graph()->NewNode(
+        simplified()->TruncateTaggedToWord32(), NumberConstant(n)));
+    ASSERT_TRUE(reduction.Changed());
+    EXPECT_THAT(reduction.replacement(), IsInt32Constant(DoubleToInt32(n)));
+  }
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/compiler/simplified-operator-unittest.cc b/test/unittests/compiler/simplified-operator-unittest.cc
index bd8509f..ba404a9 100644
--- a/test/unittests/compiler/simplified-operator-unittest.cc
+++ b/test/unittests/compiler/simplified-operator-unittest.cc
@@ -31,7 +31,6 @@
   return os << IrOpcode::Mnemonic(pop.opcode);
 }
 
-
 const PureOperator kPureOperators[] = {
 #define PURE(Name, properties, input_count)              \
   {                                                      \
@@ -56,15 +55,16 @@
     PURE(NumberShiftRightLogical, Operator::kNoProperties, 2),
     PURE(NumberToInt32, Operator::kNoProperties, 1),
     PURE(NumberToUint32, Operator::kNoProperties, 1),
-    PURE(PlainPrimitiveToNumber, Operator::kNoProperties, 1),
+    PURE(ChangeTaggedSignedToInt32, Operator::kNoProperties, 1),
     PURE(ChangeTaggedToInt32, Operator::kNoProperties, 1),
     PURE(ChangeTaggedToUint32, Operator::kNoProperties, 1),
     PURE(ChangeTaggedToFloat64, Operator::kNoProperties, 1),
     PURE(ChangeInt32ToTagged, Operator::kNoProperties, 1),
     PURE(ChangeUint32ToTagged, Operator::kNoProperties, 1),
     PURE(ChangeFloat64ToTagged, Operator::kNoProperties, 1),
-    PURE(ChangeBoolToBit, Operator::kNoProperties, 1),
-    PURE(ChangeBitToBool, Operator::kNoProperties, 1),
+    PURE(ChangeTaggedToBit, Operator::kNoProperties, 1),
+    PURE(ChangeBitToTagged, Operator::kNoProperties, 1),
+    PURE(TruncateTaggedToWord32, Operator::kNoProperties, 1),
     PURE(ObjectIsNumber, Operator::kNoProperties, 1),
     PURE(ObjectIsReceiver, Operator::kNoProperties, 1),
     PURE(ObjectIsSmi, Operator::kNoProperties, 1)
@@ -203,39 +203,46 @@
 
 const ElementAccess kElementAccesses[] = {
     {kTaggedBase, FixedArray::kHeaderSize, Type::Any(),
-     MachineType::AnyTagged()},
-    {kUntaggedBase, 0, Type::Any(), MachineType::Int8()},
-    {kUntaggedBase, 0, Type::Any(), MachineType::Int16()},
-    {kUntaggedBase, 0, Type::Any(), MachineType::Int32()},
-    {kUntaggedBase, 0, Type::Any(), MachineType::Uint8()},
-    {kUntaggedBase, 0, Type::Any(), MachineType::Uint16()},
-    {kUntaggedBase, 0, Type::Any(), MachineType::Uint32()},
-    {kUntaggedBase, 0, Type::Signed32(), MachineType::Int8()},
-    {kUntaggedBase, 0, Type::Unsigned32(), MachineType::Uint8()},
-    {kUntaggedBase, 0, Type::Signed32(), MachineType::Int16()},
-    {kUntaggedBase, 0, Type::Unsigned32(), MachineType::Uint16()},
-    {kUntaggedBase, 0, Type::Signed32(), MachineType::Int32()},
-    {kUntaggedBase, 0, Type::Unsigned32(), MachineType::Uint32()},
+     MachineType::AnyTagged(), kFullWriteBarrier},
+    {kUntaggedBase, 0, Type::Any(), MachineType::Int8(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Any(), MachineType::Int16(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Any(), MachineType::Int32(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Any(), MachineType::Uint8(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Any(), MachineType::Uint16(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Any(), MachineType::Uint32(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Signed32(), MachineType::Int8(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Unsigned32(), MachineType::Uint8(),
+     kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Signed32(), MachineType::Int16(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Unsigned32(), MachineType::Uint16(),
+     kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Signed32(), MachineType::Int32(), kNoWriteBarrier},
+    {kUntaggedBase, 0, Type::Unsigned32(), MachineType::Uint32(),
+     kNoWriteBarrier},
     {kUntaggedBase, 0, Type::Number(),
-     MachineType(MachineRepresentation::kFloat32, MachineSemantic::kNone)},
+     MachineType(MachineRepresentation::kFloat32, MachineSemantic::kNone),
+     kNoWriteBarrier},
     {kUntaggedBase, 0, Type::Number(),
-     MachineType(MachineRepresentation::kFloat64, MachineSemantic::kNone)},
+     MachineType(MachineRepresentation::kFloat64, MachineSemantic::kNone),
+     kNoWriteBarrier},
     {kTaggedBase, FixedTypedArrayBase::kDataOffset, Type::Signed32(),
-     MachineType::Int8()},
+     MachineType::Int8(), kNoWriteBarrier},
     {kTaggedBase, FixedTypedArrayBase::kDataOffset, Type::Unsigned32(),
-     MachineType::Uint8()},
+     MachineType::Uint8(), kNoWriteBarrier},
     {kTaggedBase, FixedTypedArrayBase::kDataOffset, Type::Signed32(),
-     MachineType::Int16()},
+     MachineType::Int16(), kNoWriteBarrier},
     {kTaggedBase, FixedTypedArrayBase::kDataOffset, Type::Unsigned32(),
-     MachineType::Uint16()},
+     MachineType::Uint16(), kNoWriteBarrier},
     {kTaggedBase, FixedTypedArrayBase::kDataOffset, Type::Signed32(),
-     MachineType::Int32()},
+     MachineType::Int32(), kNoWriteBarrier},
     {kTaggedBase, FixedTypedArrayBase::kDataOffset, Type::Unsigned32(),
-     MachineType::Uint32()},
+     MachineType::Uint32(), kNoWriteBarrier},
     {kTaggedBase, FixedTypedArrayBase::kDataOffset, Type::Number(),
-     MachineType(MachineRepresentation::kFloat32, MachineSemantic::kNone)},
+     MachineType(MachineRepresentation::kFloat32, MachineSemantic::kNone),
+     kNoWriteBarrier},
     {kTaggedBase, FixedTypedArrayBase::kDataOffset, Type::Number(),
-     MachineType(MachineRepresentation::kFloat32, MachineSemantic::kNone)}};
+     MachineType(MachineRepresentation::kFloat32, MachineSemantic::kNone),
+     kNoWriteBarrier}};
 
 }  // namespace
 
diff --git a/test/unittests/interpreter/bytecode-array-builder-unittest.cc b/test/unittests/interpreter/bytecode-array-builder-unittest.cc
index 255d836..a569c94 100644
--- a/test/unittests/interpreter/bytecode-array-builder-unittest.cc
+++ b/test/unittests/interpreter/bytecode-array-builder-unittest.cc
@@ -22,11 +22,16 @@
 
 TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
   BytecodeArrayBuilder builder(isolate(), zone(), 0, 1, 131);
+  Factory* factory = isolate()->factory();
 
   CHECK_EQ(builder.locals_count(), 131);
   CHECK_EQ(builder.context_count(), 1);
   CHECK_EQ(builder.fixed_register_count(), 132);
 
+  Register reg(0);
+  Register other(reg.index() + 1);
+  Register wide(128);
+
   // Emit argument creation operations.
   builder.CreateArguments(CreateArgumentsType::kMappedArguments)
       .CreateArguments(CreateArgumentsType::kUnmappedArguments)
@@ -34,19 +39,27 @@
 
   // Emit constant loads.
   builder.LoadLiteral(Smi::FromInt(0))
+      .StoreAccumulatorInRegister(reg)
       .LoadLiteral(Smi::FromInt(8))
+      .StoreAccumulatorInRegister(reg)
       .LoadLiteral(Smi::FromInt(10000000))
+      .StoreAccumulatorInRegister(reg)
+      .LoadLiteral(factory->NewStringFromStaticChars("A constant"))
+      .StoreAccumulatorInRegister(reg)
       .LoadUndefined()
+      .StoreAccumulatorInRegister(reg)
       .LoadNull()
+      .StoreAccumulatorInRegister(reg)
       .LoadTheHole()
+      .StoreAccumulatorInRegister(reg)
       .LoadTrue()
-      .LoadFalse();
+      .StoreAccumulatorInRegister(reg)
+      .LoadFalse()
+      .StoreAccumulatorInRegister(wide);
 
-  Register reg(0);
-  Register other(reg.index() + 1);
-  Register wide(128);
-
-  builder.LoadAccumulatorWithRegister(reg)
+  builder.StackCheck(0)
+      .LoadAccumulatorWithRegister(other)
+      .StoreAccumulatorInRegister(reg)
       .LoadNull()
       .StoreAccumulatorInRegister(reg);
 
@@ -55,7 +68,6 @@
   builder.MoveRegister(reg, wide);
 
   // Emit global load / store operations.
-  Factory* factory = isolate()->factory();
   Handle<String> name = factory->NewStringFromStaticChars("var_name");
   builder.LoadGlobal(name, 1, TypeofMode::NOT_INSIDE_TYPEOF)
       .LoadGlobal(name, 1, TypeofMode::INSIDE_TYPEOF)
@@ -126,7 +138,10 @@
   builder.CountOperation(Token::Value::ADD).CountOperation(Token::Value::SUB);
 
   // Emit unary operator invocations.
-  builder.LogicalNot().TypeOf();
+  builder
+      .LogicalNot()  // ToBooleanLogicalNot
+      .LogicalNot()  // non-ToBoolean LogicalNot
+      .TypeOf();
 
   // Emit delete
   builder.Delete(reg, LanguageMode::SLOPPY).Delete(reg, LanguageMode::STRICT);
@@ -208,7 +223,7 @@
       .JumpIfFalse(&start);
 
   // Emit stack check bytecode.
-  builder.StackCheck();
+  builder.StackCheck(0);
 
   // Emit throw and re-throw in it's own basic block so that the rest of the
   // code isn't omitted due to being dead.
@@ -289,6 +304,10 @@
       .BinaryOperation(Token::Value::ADD, reg)
       .JumpIfFalse(&start);
 
+  // Emit generator operations
+  builder.SuspendGenerator(reg)
+      .ResumeGenerator(reg);
+
   // Intrinsics handled by the interpreter.
   builder.CallRuntime(Runtime::kInlineIsArray, reg, 1)
       .CallRuntime(Runtime::kInlineIsArray, wide, 1);
@@ -327,6 +346,9 @@
   // Insert entry for illegal bytecode as this is never willingly emitted.
   scorecard[Bytecodes::ToByte(Bytecode::kIllegal)] = 1;
 
+  // Insert entry for nop bytecode as this often gets optimized out.
+  scorecard[Bytecodes::ToByte(Bytecode::kNop)] = 1;
+
   // Check return occurs at the end and only once in the BytecodeArray.
   CHECK_EQ(final_bytecode, Bytecode::kReturn);
   CHECK_EQ(scorecard[Bytecodes::ToByte(final_bytecode)], 1);
@@ -364,14 +386,11 @@
 
 TEST_F(BytecodeArrayBuilderTest, RegisterValues) {
   int index = 1;
-  int32_t operand = -index;
 
   Register the_register(index);
   CHECK_EQ(the_register.index(), index);
 
   int actual_operand = the_register.ToOperand();
-  CHECK_EQ(actual_operand, operand);
-
   int actual_index = Register::FromOperand(actual_operand).index();
   CHECK_EQ(actual_index, index);
 }
@@ -461,7 +480,7 @@
       .BinaryOperation(Token::Value::ADD, reg)
       .JumpIfFalse(&far4);
   for (int i = 0; i < kFarJumpDistance - 18; i++) {
-    builder.LoadUndefined();
+    builder.Debugger();
   }
   builder.Bind(&far0).Bind(&far1).Bind(&far2).Bind(&far3).Bind(&far4);
   builder.Return();
@@ -502,7 +521,6 @@
   CHECK_EQ(iterator.GetImmediateOperand(0), 2);
   iterator.Advance();
 
-
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpConstant);
   CHECK_EQ(*iterator.GetConstantForIndexOperand(0),
            Smi::FromInt(kFarJumpDistance));
@@ -568,7 +586,7 @@
 
   // Add padding to force wide backwards jumps.
   for (int i = 0; i < 256; i++) {
-    builder.LoadTrue();
+    builder.Debugger();
   }
 
   builder.BinaryOperation(Token::Value::ADD, reg).JumpIfFalse(&label4);
@@ -615,7 +633,7 @@
   }
   // Check padding to force wide backwards jumps.
   for (int i = 0; i < 256; i++) {
-    CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaTrue);
+    CHECK_EQ(iterator.current_bytecode(), Bytecode::kDebugger);
     iterator.Advance();
   }
   // Ignore binary operation.
@@ -706,85 +724,6 @@
   CHECK(iterator.done());
 }
 
-TEST_F(BytecodeArrayBuilderTest, OperandScales) {
-  CHECK_EQ(BytecodeArrayBuilder::OperandSizesToScale(OperandSize::kByte),
-           OperandScale::kSingle);
-  CHECK_EQ(BytecodeArrayBuilder::OperandSizesToScale(OperandSize::kShort),
-           OperandScale::kDouble);
-  CHECK_EQ(BytecodeArrayBuilder::OperandSizesToScale(OperandSize::kQuad),
-           OperandScale::kQuadruple);
-  CHECK_EQ(BytecodeArrayBuilder::OperandSizesToScale(
-               OperandSize::kShort, OperandSize::kShort, OperandSize::kShort,
-               OperandSize::kShort),
-           OperandScale::kDouble);
-  CHECK_EQ(BytecodeArrayBuilder::OperandSizesToScale(
-               OperandSize::kQuad, OperandSize::kShort, OperandSize::kShort,
-               OperandSize::kShort),
-           OperandScale::kQuadruple);
-  CHECK_EQ(BytecodeArrayBuilder::OperandSizesToScale(
-               OperandSize::kShort, OperandSize::kQuad, OperandSize::kShort,
-               OperandSize::kShort),
-           OperandScale::kQuadruple);
-  CHECK_EQ(BytecodeArrayBuilder::OperandSizesToScale(
-               OperandSize::kShort, OperandSize::kShort, OperandSize::kQuad,
-               OperandSize::kShort),
-           OperandScale::kQuadruple);
-  CHECK_EQ(BytecodeArrayBuilder::OperandSizesToScale(
-               OperandSize::kShort, OperandSize::kShort, OperandSize::kShort,
-               OperandSize::kQuad),
-           OperandScale::kQuadruple);
-}
-
-TEST_F(BytecodeArrayBuilderTest, SizesForSignOperands) {
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(0) == OperandSize::kByte);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMaxInt8) ==
-        OperandSize::kByte);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMinInt8) ==
-        OperandSize::kByte);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMaxInt8 + 1) ==
-        OperandSize::kShort);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMinInt8 - 1) ==
-        OperandSize::kShort);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMaxInt16) ==
-        OperandSize::kShort);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMinInt16) ==
-        OperandSize::kShort);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMaxInt16 + 1) ==
-        OperandSize::kQuad);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMinInt16 - 1) ==
-        OperandSize::kQuad);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMaxInt) ==
-        OperandSize::kQuad);
-  CHECK(BytecodeArrayBuilder::SizeForSignedOperand(kMinInt) ==
-        OperandSize::kQuad);
-}
-
-TEST_F(BytecodeArrayBuilderTest, SizesForUnsignOperands) {
-  // int overloads
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(0) == OperandSize::kByte);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(kMaxUInt8) ==
-        OperandSize::kByte);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(kMaxUInt8 + 1) ==
-        OperandSize::kShort);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(kMaxUInt16) ==
-        OperandSize::kShort);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(kMaxUInt16 + 1) ==
-        OperandSize::kQuad);
-  // size_t overloads
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(static_cast<size_t>(0)) ==
-        OperandSize::kByte);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(
-            static_cast<size_t>(kMaxUInt8)) == OperandSize::kByte);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(
-            static_cast<size_t>(kMaxUInt8 + 1)) == OperandSize::kShort);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(
-            static_cast<size_t>(kMaxUInt16)) == OperandSize::kShort);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(
-            static_cast<size_t>(kMaxUInt16 + 1)) == OperandSize::kQuad);
-  CHECK(BytecodeArrayBuilder::SizeForUnsignedOperand(
-            static_cast<size_t>(kMaxUInt32)) == OperandSize::kQuad);
-}
-
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/interpreter/bytecode-array-iterator-unittest.cc b/test/unittests/interpreter/bytecode-array-iterator-unittest.cc
index 43c6caa..aa9effe 100644
--- a/test/unittests/interpreter/bytecode-array-iterator-unittest.cc
+++ b/test/unittests/interpreter/bytecode-array-iterator-unittest.cc
@@ -37,11 +37,17 @@
   int feedback_slot = 97;
 
   builder.LoadLiteral(heap_num_0)
+      .StoreAccumulatorInRegister(reg_0)
       .LoadLiteral(heap_num_1)
+      .StoreAccumulatorInRegister(reg_0)
       .LoadLiteral(zero)
+      .StoreAccumulatorInRegister(reg_0)
       .LoadLiteral(smi_0)
+      .StoreAccumulatorInRegister(reg_0)
       .LoadLiteral(smi_1)
+      .StoreAccumulatorInRegister(reg_1)
       .LoadAccumulatorWithRegister(reg_0)
+      .StoreAccumulatorInRegister(reg_1)
       .LoadNamedProperty(reg_1, name, feedback_slot)
       .StoreAccumulatorInRegister(param)
       .CallRuntimeForPair(Runtime::kLoadLookupSlotForCall, param, 1, reg_0)
@@ -64,6 +70,15 @@
   offset += Bytecodes::Size(Bytecode::kLdaConstant, OperandScale::kSingle);
   iterator.Advance();
 
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar);
+  CHECK_EQ(iterator.current_offset(), offset);
+  CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
+  CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index());
+  CHECK_EQ(iterator.GetRegisterOperandRange(0), 1);
+  CHECK(!iterator.done());
+  offset += Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle);
+  iterator.Advance();
+
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaConstant);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
@@ -72,6 +87,15 @@
   offset += Bytecodes::Size(Bytecode::kLdaConstant, OperandScale::kSingle);
   iterator.Advance();
 
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar);
+  CHECK_EQ(iterator.current_offset(), offset);
+  CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
+  CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index());
+  CHECK_EQ(iterator.GetRegisterOperandRange(0), 1);
+  CHECK(!iterator.done());
+  offset += Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle);
+  iterator.Advance();
+
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaZero);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
@@ -79,6 +103,15 @@
   offset += Bytecodes::Size(Bytecode::kLdaZero, OperandScale::kSingle);
   iterator.Advance();
 
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar);
+  CHECK_EQ(iterator.current_offset(), offset);
+  CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
+  CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index());
+  CHECK_EQ(iterator.GetRegisterOperandRange(0), 1);
+  CHECK(!iterator.done());
+  offset += Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle);
+  iterator.Advance();
+
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaSmi);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
@@ -87,6 +120,15 @@
   offset += Bytecodes::Size(Bytecode::kLdaSmi, OperandScale::kSingle);
   iterator.Advance();
 
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar);
+  CHECK_EQ(iterator.current_offset(), offset);
+  CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
+  CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_0.index());
+  CHECK_EQ(iterator.GetRegisterOperandRange(0), 1);
+  CHECK(!iterator.done());
+  offset += Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle);
+  iterator.Advance();
+
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaSmi);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kQuadruple);
@@ -96,6 +138,15 @@
             kPrefixByteSize;
   iterator.Advance();
 
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar);
+  CHECK_EQ(iterator.current_offset(), offset);
+  CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
+  CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_1.index());
+  CHECK_EQ(iterator.GetRegisterOperandRange(0), 1);
+  CHECK(!iterator.done());
+  offset += Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle);
+  iterator.Advance();
+
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdar);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
@@ -104,6 +155,15 @@
   offset += Bytecodes::Size(Bytecode::kLdar, OperandScale::kSingle);
   iterator.Advance();
 
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kStar);
+  CHECK_EQ(iterator.current_offset(), offset);
+  CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
+  CHECK_EQ(iterator.GetRegisterOperand(0).index(), reg_1.index());
+  CHECK_EQ(iterator.GetRegisterOperandRange(0), 1);
+  CHECK(!iterator.done());
+  offset += Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle);
+  iterator.Advance();
+
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kLoadIC);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
diff --git a/test/unittests/interpreter/bytecode-array-writer-unittest.cc b/test/unittests/interpreter/bytecode-array-writer-unittest.cc
new file mode 100644
index 0000000..a1b4910
--- /dev/null
+++ b/test/unittests/interpreter/bytecode-array-writer-unittest.cc
@@ -0,0 +1,233 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/v8.h"
+
+#include "src/interpreter/bytecode-array-writer.h"
+#include "src/interpreter/source-position-table.h"
+#include "src/isolate.h"
+#include "src/utils.h"
+#include "test/unittests/interpreter/bytecode-utils.h"
+#include "test/unittests/test-utils.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+class BytecodeArrayWriterUnittest : public TestWithIsolateAndZone {
+ public:
+  BytecodeArrayWriterUnittest()
+      : source_position_builder_(isolate(), zone()),
+        bytecode_array_writer_(zone(), &source_position_builder_) {}
+  ~BytecodeArrayWriterUnittest() override {}
+
+  void Write(BytecodeNode* node, const BytecodeSourceInfo& info);
+  void Write(Bytecode bytecode,
+             const BytecodeSourceInfo& info = BytecodeSourceInfo());
+  void Write(Bytecode bytecode, uint32_t operand0, OperandScale operand_scale,
+             const BytecodeSourceInfo& info = BytecodeSourceInfo());
+  void Write(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
+             OperandScale operand_scale,
+             const BytecodeSourceInfo& info = BytecodeSourceInfo());
+  void Write(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
+             uint32_t operand2, OperandScale operand_scale,
+             const BytecodeSourceInfo& info = BytecodeSourceInfo());
+  void Write(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
+             uint32_t operand2, uint32_t operand3, OperandScale operand_scale,
+             const BytecodeSourceInfo& info = BytecodeSourceInfo());
+
+  SourcePositionTableBuilder* source_position_builder() {
+    return &source_position_builder_;
+  }
+  BytecodeArrayWriter* writer() { return &bytecode_array_writer_; }
+
+ private:
+  SourcePositionTableBuilder source_position_builder_;
+  BytecodeArrayWriter bytecode_array_writer_;
+};
+
+void BytecodeArrayWriterUnittest::Write(BytecodeNode* node,
+                                        const BytecodeSourceInfo& info) {
+  if (info.is_valid()) {
+    node->source_info().Update(info);
+  }
+  writer()->Write(node);
+}
+
+void BytecodeArrayWriterUnittest::Write(Bytecode bytecode,
+                                        const BytecodeSourceInfo& info) {
+  BytecodeNode node(bytecode);
+  Write(&node, info);
+}
+
+void BytecodeArrayWriterUnittest::Write(Bytecode bytecode, uint32_t operand0,
+                                        OperandScale operand_scale,
+                                        const BytecodeSourceInfo& info) {
+  BytecodeNode node(bytecode, operand0, operand_scale);
+  Write(&node, info);
+}
+
+void BytecodeArrayWriterUnittest::Write(Bytecode bytecode, uint32_t operand0,
+                                        uint32_t operand1,
+                                        OperandScale operand_scale,
+                                        const BytecodeSourceInfo& info) {
+  BytecodeNode node(bytecode, operand0, operand1, operand_scale);
+  Write(&node, info);
+}
+
+void BytecodeArrayWriterUnittest::Write(Bytecode bytecode, uint32_t operand0,
+                                        uint32_t operand1, uint32_t operand2,
+                                        OperandScale operand_scale,
+                                        const BytecodeSourceInfo& info) {
+  BytecodeNode node(bytecode, operand0, operand1, operand2, operand_scale);
+  Write(&node, info);
+}
+
+void BytecodeArrayWriterUnittest::Write(Bytecode bytecode, uint32_t operand0,
+                                        uint32_t operand1, uint32_t operand2,
+                                        uint32_t operand3,
+                                        OperandScale operand_scale,
+                                        const BytecodeSourceInfo& info) {
+  BytecodeNode node(bytecode, operand0, operand1, operand2, operand3,
+                    operand_scale);
+  Write(&node, info);
+}
+
+TEST_F(BytecodeArrayWriterUnittest, SimpleExample) {
+  CHECK_EQ(writer()->bytecodes()->size(), 0);
+
+  Write(Bytecode::kStackCheck, {10, false});
+  CHECK_EQ(writer()->bytecodes()->size(), 1);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 0);
+
+  Write(Bytecode::kLdaSmi, 0xff, OperandScale::kSingle, {55, true});
+  CHECK_EQ(writer()->bytecodes()->size(), 3);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 0);
+
+  Write(Bytecode::kLdar, Register(1).ToOperand(), OperandScale::kDouble);
+  CHECK_EQ(writer()->bytecodes()->size(), 7);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 2 * kPointerSize);
+
+  Write(Bytecode::kReturn, {70, true});
+  CHECK_EQ(writer()->bytecodes()->size(), 8);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 2 * kPointerSize);
+
+  static const uint8_t bytes[] = {B(StackCheck), B(LdaSmi), U8(0xff), B(Wide),
+                                  B(Ldar),       R16(1),    B(Return)};
+  CHECK_EQ(writer()->bytecodes()->size(), arraysize(bytes));
+  for (size_t i = 0; i < arraysize(bytes); ++i) {
+    CHECK_EQ(writer()->bytecodes()->at(i), bytes[i]);
+  }
+
+  CHECK_EQ(writer()->FlushForOffset(), arraysize(bytes));
+  writer()->FlushBasicBlock();
+  CHECK_EQ(writer()->bytecodes()->size(), arraysize(bytes));
+
+  PositionTableEntry expected_positions[] = {
+      {0, 10, false}, {1, 55, true}, {7, 70, true}};
+  Handle<ByteArray> source_positions =
+      source_position_builder()->ToSourcePositionTable();
+  SourcePositionTableIterator source_iterator(*source_positions);
+  for (size_t i = 0; i < arraysize(expected_positions); ++i) {
+    const PositionTableEntry& expected = expected_positions[i];
+    CHECK_EQ(source_iterator.bytecode_offset(), expected.bytecode_offset);
+    CHECK_EQ(source_iterator.source_position(), expected.source_position);
+    CHECK_EQ(source_iterator.is_statement(), expected.is_statement);
+    source_iterator.Advance();
+  }
+  CHECK(source_iterator.done());
+}
+
+TEST_F(BytecodeArrayWriterUnittest, ComplexExample) {
+  static const uint8_t expected_bytes[] = {
+      // clang-format off
+      /*  0 30 E> */ B(StackCheck),
+      /*  1 42 S> */ B(LdaConstant), U8(0),
+      /*  3 42 E> */ B(Star), R8(1),
+      /*  5 68 S> */ B(JumpIfUndefined), U8(38),
+      /*  7       */ B(JumpIfNull), U8(36),
+      /*  9       */ B(ToObject),
+      /* 10       */ B(Star), R8(3),
+      /* 12       */ B(ForInPrepare), R8(4),
+      /* 14       */ B(LdaZero),
+      /* 15       */ B(Star), R8(7),
+      /* 17 63 S> */ B(ForInDone), R8(7), R8(6),
+      /* 20       */ B(JumpIfTrue), U8(23),
+      /* 22       */ B(ForInNext), R8(3), R8(7), R8(4), U8(1),
+      /* 27       */ B(JumpIfUndefined), U8(10),
+      /* 29       */ B(Star), R8(0),
+      /* 31 54 E> */ B(StackCheck),
+      /* 32       */ B(Ldar), R8(0),
+      /* 34       */ B(Star), R8(2),
+      /* 36 85 S> */ B(Return),
+      /* 37       */ B(ForInStep), R8(7),
+      /* 39       */ B(Star), R8(7),
+      /* 41       */ B(Jump), U8(-24),
+      /* 43       */ B(LdaUndefined),
+      /* 44 85 S> */ B(Return),
+      // clang-format on
+  };
+
+  static const PositionTableEntry expected_positions[] = {
+      {0, 30, false}, {1, 42, true},   {3, 42, false}, {5, 68, true},
+      {17, 63, true}, {31, 54, false}, {36, 85, true}, {44, 85, true}};
+
+#define R(i) static_cast<uint32_t>(Register(i).ToOperand())
+  Write(Bytecode::kStackCheck, {30, false});
+  Write(Bytecode::kLdaConstant, U8(0), OperandScale::kSingle, {42, true});
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 0 * kPointerSize);
+  Write(Bytecode::kStar, R(1), OperandScale::kSingle, {42, false});
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 2 * kPointerSize);
+  Write(Bytecode::kJumpIfUndefined, U8(38), OperandScale::kSingle, {68, true});
+  Write(Bytecode::kJumpIfNull, U8(36), OperandScale::kSingle);
+  Write(Bytecode::kToObject);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 2 * kPointerSize);
+  Write(Bytecode::kStar, R(3), OperandScale::kSingle);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 4 * kPointerSize);
+  Write(Bytecode::kForInPrepare, R(4), OperandScale::kSingle);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 7 * kPointerSize);
+  Write(Bytecode::kLdaZero);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 7 * kPointerSize);
+  Write(Bytecode::kStar, R(7), OperandScale::kSingle);
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 8 * kPointerSize);
+  Write(Bytecode::kForInDone, R(7), R(6), OperandScale::kSingle, {63, true});
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 8 * kPointerSize);
+  Write(Bytecode::kJumpIfTrue, U8(23), OperandScale::kSingle);
+  Write(Bytecode::kForInNext, R(3), R(7), R(4), U8(1), OperandScale::kSingle);
+  Write(Bytecode::kJumpIfUndefined, U8(10), OperandScale::kSingle);
+  Write(Bytecode::kStar, R(0), OperandScale::kSingle);
+  Write(Bytecode::kStackCheck, {54, false});
+  Write(Bytecode::kLdar, R(0), OperandScale::kSingle);
+  Write(Bytecode::kStar, R(2), OperandScale::kSingle);
+  Write(Bytecode::kReturn, {85, true});
+  Write(Bytecode::kForInStep, R(7), OperandScale::kSingle);
+  Write(Bytecode::kStar, R(7), OperandScale::kSingle);
+  Write(Bytecode::kJump, U8(-24), OperandScale::kSingle);
+  Write(Bytecode::kLdaUndefined);
+  Write(Bytecode::kReturn, {85, true});
+  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 8 * kPointerSize);
+#undef R
+
+  CHECK_EQ(writer()->bytecodes()->size(), arraysize(expected_bytes));
+  for (size_t i = 0; i < arraysize(expected_bytes); ++i) {
+    CHECK_EQ(static_cast<int>(writer()->bytecodes()->at(i)),
+             static_cast<int>(expected_bytes[i]));
+  }
+
+  Handle<ByteArray> source_positions =
+      source_position_builder()->ToSourcePositionTable();
+  SourcePositionTableIterator source_iterator(*source_positions);
+  for (size_t i = 0; i < arraysize(expected_positions); ++i) {
+    const PositionTableEntry& expected = expected_positions[i];
+    CHECK_EQ(source_iterator.bytecode_offset(), expected.bytecode_offset);
+    CHECK_EQ(source_iterator.source_position(), expected.source_position);
+    CHECK_EQ(source_iterator.is_statement(), expected.is_statement);
+    source_iterator.Advance();
+  }
+  CHECK(source_iterator.done());
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc b/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc
new file mode 100644
index 0000000..cf4a920
--- /dev/null
+++ b/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc
@@ -0,0 +1,385 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/v8.h"
+
+#include "src/factory.h"
+#include "src/interpreter/bytecode-peephole-optimizer.h"
+#include "src/interpreter/constant-array-builder.h"
+#include "src/objects-inl.h"
+#include "src/objects.h"
+#include "test/unittests/test-utils.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+class BytecodePeepholeOptimizerTest : public BytecodePipelineStage,
+                                      public TestWithIsolateAndZone {
+ public:
+  BytecodePeepholeOptimizerTest()
+      : constant_array_builder_(isolate(), zone()),
+        peephole_optimizer_(&constant_array_builder_, this) {}
+  ~BytecodePeepholeOptimizerTest() override {}
+
+  size_t FlushForOffset() override {
+    flush_for_offset_count_++;
+    return 0;
+  };
+
+  void FlushBasicBlock() override { flush_basic_block_count_++; }
+
+  void Write(BytecodeNode* node) override {
+    write_count_++;
+    last_written_.Clone(node);
+  }
+
+  BytecodePeepholeOptimizer* optimizer() { return &peephole_optimizer_; }
+  ConstantArrayBuilder* constant_array() { return &constant_array_builder_; }
+
+  int flush_for_offset_count() const { return flush_for_offset_count_; }
+  int flush_basic_block_count() const { return flush_basic_block_count_; }
+  int write_count() const { return write_count_; }
+  const BytecodeNode& last_written() const { return last_written_; }
+
+ private:
+  ConstantArrayBuilder constant_array_builder_;
+  BytecodePeepholeOptimizer peephole_optimizer_;
+
+  int flush_for_offset_count_ = 0;
+  int flush_basic_block_count_ = 0;
+  int write_count_ = 0;
+  BytecodeNode last_written_;
+};
+
+// Sanity tests.
+
+TEST_F(BytecodePeepholeOptimizerTest, FlushForOffsetPassThrough) {
+  CHECK_EQ(flush_for_offset_count(), 0);
+  CHECK_EQ(optimizer()->FlushForOffset(), 0);
+  CHECK_EQ(flush_for_offset_count(), 1);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, FlushForOffsetRightSize) {
+  BytecodeNode node(Bytecode::kAdd, Register(0).ToOperand(),
+                    OperandScale::kQuadruple);
+  optimizer()->Write(&node);
+  CHECK_EQ(optimizer()->FlushForOffset(), node.Size());
+  CHECK_EQ(flush_for_offset_count(), 1);
+  CHECK_EQ(write_count(), 0);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, FlushForOffsetNop) {
+  BytecodeNode node(Bytecode::kNop);
+  optimizer()->Write(&node);
+  CHECK_EQ(optimizer()->FlushForOffset(), 0);
+  CHECK_EQ(flush_for_offset_count(), 1);
+  CHECK_EQ(write_count(), 0);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, FlushForOffsetNopExpression) {
+  BytecodeNode node(Bytecode::kNop);
+  node.source_info().Update({3, false});
+  optimizer()->Write(&node);
+  CHECK_EQ(optimizer()->FlushForOffset(), 0);
+  CHECK_EQ(flush_for_offset_count(), 1);
+  CHECK_EQ(write_count(), 0);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, FlushForOffsetNopStatement) {
+  BytecodeNode node(Bytecode::kNop);
+  node.source_info().Update({3, true});
+  optimizer()->Write(&node);
+  CHECK_EQ(optimizer()->FlushForOffset(), node.Size());
+  CHECK_EQ(flush_for_offset_count(), 1);
+  CHECK_EQ(write_count(), 0);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, FlushBasicBlockPassThrough) {
+  CHECK_EQ(flush_basic_block_count(), 0);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(flush_basic_block_count(), 1);
+  CHECK_EQ(write_count(), 0);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, WriteOneFlushBasicBlock) {
+  BytecodeNode node(Bytecode::kAdd, Register(0).ToOperand(),
+                    OperandScale::kQuadruple);
+  optimizer()->Write(&node);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(node, last_written());
+}
+
+// Tests covering BytecodePeepholeOptimizer::UpdateCurrentBytecode().
+
+TEST_F(BytecodePeepholeOptimizerTest, KeepJumpIfToBooleanTrue) {
+  BytecodeNode first(Bytecode::kLdaNull);
+  BytecodeNode second(Bytecode::kJumpIfToBooleanTrue, 3, OperandScale::kSingle);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written(), second);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, ElideJumpIfToBooleanTrue) {
+  BytecodeNode first(Bytecode::kLdaTrue);
+  BytecodeNode second(Bytecode::kJumpIfToBooleanTrue, 3, OperandScale::kSingle);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kJumpIfTrue);
+  CHECK_EQ(last_written().operand(0), second.operand(0));
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, KeepToBooleanLogicalNot) {
+  BytecodeNode first(Bytecode::kLdaNull);
+  BytecodeNode second(Bytecode::kToBooleanLogicalNot);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written(), second);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, ElideToBooleanLogicalNot) {
+  BytecodeNode first(Bytecode::kLdaTrue);
+  BytecodeNode second(Bytecode::kToBooleanLogicalNot);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLogicalNot);
+}
+
+// Tests covering BytecodePeepholeOptimizer::CanElideCurrent().
+
+TEST_F(BytecodePeepholeOptimizerTest, LdarRxLdarRy) {
+  BytecodeNode first(Bytecode::kLdar, Register(0).ToOperand(),
+                     OperandScale::kSingle);
+  BytecodeNode second(Bytecode::kLdar, Register(1).ToOperand(),
+                      OperandScale::kSingle);
+  optimizer()->Write(&first);
+  optimizer()->FlushForOffset();  // Prevent CanElideLast removing |first|.
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written(), second);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, LdarRxLdarRx) {
+  BytecodeNode first(Bytecode::kLdar, Register(0).ToOperand(),
+                     OperandScale::kSingle);
+  BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand(),
+                      OperandScale::kSingle);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->FlushForOffset();  // Prevent CanElideLast removing |first|.
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, LdarRxLdarRxStatement) {
+  BytecodeNode first(Bytecode::kLdar, Register(0).ToOperand(),
+                     OperandScale::kSingle);
+  BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand(),
+                      OperandScale::kSingle);
+  second.source_info().Update({0, true});
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->FlushForOffset();  // Prevent CanElideLast removing |first|.
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kNop);
+  CHECK_EQ(last_written().source_info(), second.source_info());
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, LdarRxLdarRxStatementStarRy) {
+  BytecodeNode first(Bytecode::kLdar, Register(0).ToOperand(),
+                     OperandScale::kSingle);
+  BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand(),
+                      OperandScale::kSingle);
+  BytecodeNode third(Bytecode::kStar, Register(3).ToOperand(),
+                     OperandScale::kSingle);
+  second.source_info().Update({0, true});
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->FlushForOffset();  // Prevent CanElideLast removing |first|.
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->Write(&third);
+  CHECK_EQ(write_count(), 1);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  // Source position should move |second| to |third| when |second| is elided.
+  third.source_info().Update(second.source_info());
+  CHECK_EQ(last_written(), third);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, LdarToName) {
+  BytecodeNode first(Bytecode::kLdar, Register(0).ToOperand(),
+                     OperandScale::kSingle);
+  BytecodeNode second(Bytecode::kToName);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written(), second);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, ToNameToName) {
+  BytecodeNode first(Bytecode::kToName);
+  BytecodeNode second(Bytecode::kToName);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, TypeOfToName) {
+  BytecodeNode first(Bytecode::kTypeOf);
+  BytecodeNode second(Bytecode::kToName);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, LdaConstantStringToName) {
+  Handle<Object> word =
+      isolate()->factory()->NewStringFromStaticChars("optimizing");
+  size_t index = constant_array()->Insert(word);
+  BytecodeNode first(Bytecode::kLdaConstant, static_cast<uint32_t>(index),
+                     OperandScale::kSingle);
+  BytecodeNode second(Bytecode::kToName);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, LdaConstantNumberToName) {
+  Handle<Object> word = isolate()->factory()->NewNumber(0.380);
+  size_t index = constant_array()->Insert(word);
+  BytecodeNode first(Bytecode::kLdaConstant, static_cast<uint32_t>(index),
+                     OperandScale::kSingle);
+  BytecodeNode second(Bytecode::kToName);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written(), second);
+}
+
+// Tests covering BytecodePeepholeOptimizer::CanElideLast().
+
+TEST_F(BytecodePeepholeOptimizerTest, LdaTrueLdaFalseNotDiscardable) {
+  BytecodeNode first(Bytecode::kLdaTrue);
+  BytecodeNode second(Bytecode::kLdaFalse);
+  optimizer()->Write(&first);
+  optimizer()->FlushForOffset();  // Prevent discarding of |first|.
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), first);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written(), second);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, LdaTrueLdaFalse) {
+  BytecodeNode first(Bytecode::kLdaTrue);
+  BytecodeNode second(Bytecode::kLdaFalse);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), second);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, LdaTrueStatementLdaFalse) {
+  BytecodeNode first(Bytecode::kLdaTrue);
+  first.source_info().Update({3, false});
+  BytecodeNode second(Bytecode::kLdaFalse);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+  second.source_info().Update(first.source_info());
+  CHECK_EQ(last_written(), second);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, NopStackCheck) {
+  BytecodeNode first(Bytecode::kNop);
+  BytecodeNode second(Bytecode::kStackCheck);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written(), second);
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, NopStatementStackCheck) {
+  BytecodeNode first(Bytecode::kNop);
+  first.source_info().Update({3, false});
+  BytecodeNode second(Bytecode::kStackCheck);
+  optimizer()->Write(&first);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 0);
+  optimizer()->FlushBasicBlock();
+  CHECK_EQ(write_count(), 1);
+  second.source_info().Update(first.source_info());
+  CHECK_EQ(last_written(), second);
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/interpreter/bytecode-pipeline-unittest.cc b/test/unittests/interpreter/bytecode-pipeline-unittest.cc
new file mode 100644
index 0000000..f12391c
--- /dev/null
+++ b/test/unittests/interpreter/bytecode-pipeline-unittest.cc
@@ -0,0 +1,198 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/v8.h"
+
+#include "src/interpreter/bytecode-pipeline.h"
+#include "src/interpreter/bytecode-register-allocator.h"
+#include "src/isolate.h"
+#include "test/unittests/test-utils.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+using BytecodeNodeTest = TestWithIsolateAndZone;
+
+TEST(BytecodeSourceInfo, Operations) {
+  BytecodeSourceInfo x(0, true);
+  CHECK_EQ(x.source_position(), 0);
+  CHECK_EQ(x.is_statement(), true);
+  CHECK_EQ(x.is_valid(), true);
+  x.set_invalid();
+  CHECK_EQ(x.is_statement(), false);
+  CHECK_EQ(x.is_valid(), false);
+
+  x.Update({1, true});
+  BytecodeSourceInfo y(1, true);
+  CHECK(x == y);
+  CHECK(!(x != y));
+
+  x.set_invalid();
+  CHECK(!(x == y));
+  CHECK(x != y);
+
+  y.Update({2, false});
+  CHECK_EQ(y.source_position(), 1);
+  CHECK_EQ(y.is_statement(), true);
+
+  y.Update({2, true});
+  CHECK_EQ(y.source_position(), 2);
+  CHECK_EQ(y.is_statement(), true);
+
+  y.set_invalid();
+  y.Update({3, false});
+  CHECK_EQ(y.source_position(), 3);
+  CHECK_EQ(y.is_statement(), false);
+
+  y.Update({3, true});
+  CHECK_EQ(y.source_position(), 3);
+  CHECK_EQ(y.is_statement(), true);
+}
+
+TEST_F(BytecodeNodeTest, Constructor0) {
+  BytecodeNode node;
+  CHECK_EQ(node.bytecode(), Bytecode::kIllegal);
+  CHECK(!node.source_info().is_valid());
+}
+
+TEST_F(BytecodeNodeTest, Constructor1) {
+  BytecodeNode node(Bytecode::kLdaZero);
+  CHECK_EQ(node.bytecode(), Bytecode::kLdaZero);
+  CHECK_EQ(node.operand_count(), 0);
+  CHECK_EQ(node.operand_scale(), OperandScale::kSingle);
+  CHECK(!node.source_info().is_valid());
+  CHECK_EQ(node.Size(), 1);
+}
+
+TEST_F(BytecodeNodeTest, Constructor2) {
+  uint32_t operands[] = {0x11};
+  BytecodeNode node(Bytecode::kJumpIfTrue, operands[0], OperandScale::kDouble);
+  CHECK_EQ(node.bytecode(), Bytecode::kJumpIfTrue);
+  CHECK_EQ(node.operand_count(), 1);
+  CHECK_EQ(node.operand(0), operands[0]);
+  CHECK_EQ(node.operand_scale(), OperandScale::kDouble);
+  CHECK(!node.source_info().is_valid());
+  CHECK_EQ(node.Size(), 4);
+}
+
+TEST_F(BytecodeNodeTest, Constructor3) {
+  uint32_t operands[] = {0x11, 0x22};
+  BytecodeNode node(Bytecode::kLdaGlobal, operands[0], operands[1],
+                    OperandScale::kQuadruple);
+  CHECK_EQ(node.bytecode(), Bytecode::kLdaGlobal);
+  CHECK_EQ(node.operand_count(), 2);
+  CHECK_EQ(node.operand(0), operands[0]);
+  CHECK_EQ(node.operand(1), operands[1]);
+  CHECK_EQ(node.operand_scale(), OperandScale::kQuadruple);
+  CHECK(!node.source_info().is_valid());
+  CHECK_EQ(node.Size(), 10);
+}
+
+TEST_F(BytecodeNodeTest, Constructor4) {
+  uint32_t operands[] = {0x11, 0x22, 0x33};
+  BytecodeNode node(Bytecode::kLoadIC, operands[0], operands[1], operands[2],
+                    OperandScale::kSingle);
+  CHECK_EQ(node.operand_count(), 3);
+  CHECK_EQ(node.bytecode(), Bytecode::kLoadIC);
+  CHECK_EQ(node.operand(0), operands[0]);
+  CHECK_EQ(node.operand(1), operands[1]);
+  CHECK_EQ(node.operand(2), operands[2]);
+  CHECK_EQ(node.operand_scale(), OperandScale::kSingle);
+  CHECK(!node.source_info().is_valid());
+  CHECK_EQ(node.Size(), 4);
+}
+
+TEST_F(BytecodeNodeTest, Constructor5) {
+  uint32_t operands[] = {0x71, 0xa5, 0x5a, 0xfc};
+  BytecodeNode node(Bytecode::kForInNext, operands[0], operands[1], operands[2],
+                    operands[3], OperandScale::kDouble);
+  CHECK_EQ(node.operand_count(), 4);
+  CHECK_EQ(node.bytecode(), Bytecode::kForInNext);
+  CHECK_EQ(node.operand(0), operands[0]);
+  CHECK_EQ(node.operand(1), operands[1]);
+  CHECK_EQ(node.operand(2), operands[2]);
+  CHECK_EQ(node.operand(3), operands[3]);
+  CHECK_EQ(node.operand_scale(), OperandScale::kDouble);
+  CHECK(!node.source_info().is_valid());
+  CHECK_EQ(node.Size(), 10);
+}
+
+TEST_F(BytecodeNodeTest, Equality) {
+  uint32_t operands[] = {0x71, 0xa5, 0x5a, 0xfc};
+  BytecodeNode node(Bytecode::kForInNext, operands[0], operands[1], operands[2],
+                    operands[3], OperandScale::kDouble);
+  CHECK_EQ(node, node);
+  BytecodeNode other(Bytecode::kForInNext, operands[0], operands[1],
+                     operands[2], operands[3], OperandScale::kDouble);
+  CHECK_EQ(node, other);
+}
+
+TEST_F(BytecodeNodeTest, EqualityWithSourceInfo) {
+  uint32_t operands[] = {0x71, 0xa5, 0x5a, 0xfc};
+  BytecodeNode node(Bytecode::kForInNext, operands[0], operands[1], operands[2],
+                    operands[3], OperandScale::kDouble);
+  node.source_info().Update({3, true});
+  CHECK_EQ(node, node);
+  BytecodeNode other(Bytecode::kForInNext, operands[0], operands[1],
+                     operands[2], operands[3], OperandScale::kDouble);
+  other.source_info().Update({3, true});
+  CHECK_EQ(node, other);
+}
+
+TEST_F(BytecodeNodeTest, NoEqualityWithDifferentSourceInfo) {
+  uint32_t operands[] = {0x71, 0xa5, 0x5a, 0xfc};
+  BytecodeNode node(Bytecode::kForInNext, operands[0], operands[1], operands[2],
+                    operands[3], OperandScale::kDouble);
+  node.source_info().Update({3, true});
+  BytecodeNode other(Bytecode::kForInNext, operands[0], operands[1],
+                     operands[2], operands[3], OperandScale::kDouble);
+  CHECK_NE(node, other);
+}
+
+TEST_F(BytecodeNodeTest, Clone) {
+  uint32_t operands[] = {0x71, 0xa5, 0x5a, 0xfc};
+  BytecodeNode node(Bytecode::kForInNext, operands[0], operands[1], operands[2],
+                    operands[3], OperandScale::kDouble);
+  BytecodeNode clone;
+  clone.Clone(&node);
+  CHECK_EQ(clone, node);
+}
+
+TEST_F(BytecodeNodeTest, SetBytecode0) {
+  uint32_t operands[] = {0x71, 0xa5, 0x5a, 0xfc};
+  BytecodeNode node(Bytecode::kForInNext, operands[0], operands[1], operands[2],
+                    operands[3], OperandScale::kDouble);
+  BytecodeSourceInfo source_info(77, false);
+  node.source_info().Update(source_info);
+
+  BytecodeNode clone;
+  clone.Clone(&node);
+  clone.set_bytecode(Bytecode::kNop);
+  CHECK_EQ(clone.bytecode(), Bytecode::kNop);
+  CHECK_EQ(clone.operand_count(), 0);
+  CHECK_EQ(clone.operand_scale(), OperandScale::kSingle);
+  CHECK_EQ(clone.source_info(), source_info);
+}
+
+TEST_F(BytecodeNodeTest, SetBytecode1) {
+  uint32_t operands[] = {0x71, 0xa5, 0x5a, 0xfc};
+  BytecodeNode node(Bytecode::kForInNext, operands[0], operands[1], operands[2],
+                    operands[3], OperandScale::kDouble);
+  BytecodeSourceInfo source_info(77, false);
+  node.source_info().Update(source_info);
+
+  BytecodeNode clone;
+  clone.Clone(&node);
+  clone.set_bytecode(Bytecode::kJump, 0x01aabbcc, OperandScale::kQuadruple);
+  CHECK_EQ(clone.bytecode(), Bytecode::kJump);
+  CHECK_EQ(clone.operand_count(), 1);
+  CHECK_EQ(clone.operand(0), 0x01aabbcc);
+  CHECK_EQ(clone.operand_scale(), OperandScale::kQuadruple);
+  CHECK_EQ(clone.source_info(), source_info);
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/interpreter/bytecode-utils.h b/test/unittests/interpreter/bytecode-utils.h
new file mode 100644
index 0000000..fffb719
--- /dev/null
+++ b/test/unittests/interpreter/bytecode-utils.h
@@ -0,0 +1,37 @@
+// Copyright 2015 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef V8_UNITTESTS_INTERPRETER_BYTECODE_UTILS_H_
+#define V8_UNITTESTS_INTERPRETER_BYTECODE_UTILS_H_
+
+#include "src/frames.h"
+
+#if V8_TARGET_LITTLE_ENDIAN
+
+#define EXTRACT(x, n) static_cast<uint8_t>((x) >> (8 * n))
+#define U16(i) EXTRACT(i, 0), EXTRACT(i, 1)
+#define U32(i) EXTRACT(i, 0), EXTRACT(i, 1), EXTRACT(i, 2), EXTRACT(i, 3)
+
+#elif V8_TARGET_BIG_ENDIAN
+
+#define EXTRACT(x, n) static_cast<uint8_t>((x) >> (8 * n))
+
+#define U16(i) EXTRACT(i, 1), EXTRACT(i, 0)
+#define U32(i) EXTRACT(i, 3), EXTRACT(i, 2), EXTRACT(i, 1), EXTRACT(i, 0)
+
+#else
+
+#error "Unknown Architecture"
+
+#endif
+
+#define U8(i) static_cast<uint8_t>(i)
+#define B(Name) static_cast<uint8_t>(Bytecode::k##Name)
+#define REG_OPERAND(i) \
+  (InterpreterFrameConstants::kRegisterFileFromFp / kPointerSize - (i))
+#define R8(i) static_cast<uint8_t>(REG_OPERAND(i))
+#define R16(i) U16(REG_OPERAND(i))
+#define R32(i) U32(REG_OPERAND(i))
+
+#endif  // V8_UNITTESTS_INTERPRETER_BYTECODE_UTILS_H_
diff --git a/test/unittests/interpreter/bytecodes-unittest.cc b/test/unittests/interpreter/bytecodes-unittest.cc
index b3554c3..eebacb2 100644
--- a/test/unittests/interpreter/bytecodes-unittest.cc
+++ b/test/unittests/interpreter/bytecodes-unittest.cc
@@ -7,6 +7,7 @@
 #include "src/v8.h"
 
 #include "src/interpreter/bytecodes.h"
+#include "test/unittests/interpreter/bytecode-utils.h"
 #include "test/unittests/test-utils.h"
 
 namespace v8 {
@@ -31,15 +32,6 @@
     Register reg2 = Register::FromOperand(operand2);
     CHECK_EQ(i, reg2.index());
   }
-
-  for (int i = 0; i <= kMaxUInt8; i++) {
-    Register reg = Register::FromOperand(i);
-    if (i > 0) {
-      CHECK(reg.is_parameter());
-    } else {
-      CHECK(!reg.is_parameter());
-    }
-  }
 }
 
 TEST(OperandConversion, Parameters) {
@@ -85,9 +77,13 @@
 }
 
 TEST(OperandScaling, ScalableAndNonScalable) {
-  for (OperandScale operand_scale = OperandScale::kSingle;
-       operand_scale <= OperandScale::kMaxValid;
-       operand_scale = Bytecodes::NextOperandScale(operand_scale)) {
+  const OperandScale kOperandScales[] = {
+#define VALUE(Name, _) OperandScale::k##Name,
+      OPERAND_SCALE_LIST(VALUE)
+#undef VALUE
+  };
+
+  for (OperandScale operand_scale : kOperandScales) {
     int scale = static_cast<int>(operand_scale);
     CHECK_EQ(Bytecodes::Size(Bytecode::kCallRuntime, operand_scale),
              1 + 2 + 2 * scale);
@@ -185,23 +181,22 @@
     const char* output;
   };
 
-#define B(Name) static_cast<uint8_t>(Bytecode::k##Name)
   const BytecodesAndResult cases[] = {
-      {{B(LdaSmi), 0x01}, 2, 0, "            LdaSmi [1]"},
-      {{B(Wide), B(LdaSmi), 0xe8, 0x03}, 4, 0, "      LdaSmi.Wide [1000]"},
-      {{B(ExtraWide), B(LdaSmi), 0xa0, 0x86, 0x01, 0x00},
+      {{B(LdaSmi), U8(1)}, 2, 0, "            LdaSmi [1]"},
+      {{B(Wide), B(LdaSmi), U16(1000)}, 4, 0, "      LdaSmi.Wide [1000]"},
+      {{B(ExtraWide), B(LdaSmi), U32(100000)},
        6,
        0,
        "LdaSmi.ExtraWide [100000]"},
-      {{B(LdaSmi), 0xff}, 2, 0, "            LdaSmi [-1]"},
-      {{B(Wide), B(LdaSmi), 0x18, 0xfc}, 4, 0, "      LdaSmi.Wide [-1000]"},
-      {{B(ExtraWide), B(LdaSmi), 0x60, 0x79, 0xfe, 0xff},
+      {{B(LdaSmi), U8(-1)}, 2, 0, "            LdaSmi [-1]"},
+      {{B(Wide), B(LdaSmi), U16(-1000)}, 4, 0, "      LdaSmi.Wide [-1000]"},
+      {{B(ExtraWide), B(LdaSmi), U32(-100000)},
        6,
        0,
        "LdaSmi.ExtraWide [-100000]"},
-      {{B(Star), 0xfb}, 2, 0, "            Star r5"},
-      {{B(Wide), B(Star), 0x78, 0xff}, 4, 0, "      Star.Wide r136"},
-      {{B(Wide), B(Call), 0x7a, 0xff, 0x79, 0xff, 0x02, 0x00, 0xb1, 0x00},
+      {{B(Star), R8(5)}, 2, 0, "            Star r5"},
+      {{B(Wide), B(Star), R16(136)}, 4, 0, "      Star.Wide r136"},
+      {{B(Wide), B(Call), R16(134), R16(135), U16(2), U16(177)},
        10,
        0,
        "Call.Wide r134, r135, #2, [177]"},
@@ -210,16 +205,15 @@
        2,
        3,
        "            Ldar a1"},
-      {{B(Wide), B(CreateObjectLiteral), 0x01, 0x02, 0x03, 0x04, 0xa5},
+      {{B(Wide), B(CreateObjectLiteral), U16(513), U16(1027), U8(165)},
        7,
        0,
        "CreateObjectLiteral.Wide [513], [1027], #165"},
-      {{B(ExtraWide), B(JumpIfNull), 0x15, 0xcd, 0x5b, 0x07},
+      {{B(ExtraWide), B(JumpIfNull), U32(123456789)},
        6,
        0,
        "JumpIfNull.ExtraWide [123456789]"},
   };
-#undef B
 
   for (size_t i = 0; i < arraysize(cases); ++i) {
     // Generate reference string by prepending formatted bytes.
@@ -260,13 +254,71 @@
   }
 }
 
-TEST(OperandScale, PrefixesScale) {
-  CHECK(Bytecodes::NextOperandScale(OperandScale::kSingle) ==
-        OperandScale::kDouble);
-  CHECK(Bytecodes::NextOperandScale(OperandScale::kDouble) ==
-        OperandScale::kQuadruple);
-  CHECK(Bytecodes::NextOperandScale(OperandScale::kQuadruple) ==
-        OperandScale::kInvalid);
+TEST(Bytecodes, OperandScales) {
+  CHECK_EQ(Bytecodes::OperandSizesToScale(OperandSize::kByte),
+           OperandScale::kSingle);
+  CHECK_EQ(Bytecodes::OperandSizesToScale(OperandSize::kShort),
+           OperandScale::kDouble);
+  CHECK_EQ(Bytecodes::OperandSizesToScale(OperandSize::kQuad),
+           OperandScale::kQuadruple);
+  CHECK_EQ(
+      Bytecodes::OperandSizesToScale(OperandSize::kShort, OperandSize::kShort,
+                                     OperandSize::kShort, OperandSize::kShort),
+      OperandScale::kDouble);
+  CHECK_EQ(
+      Bytecodes::OperandSizesToScale(OperandSize::kQuad, OperandSize::kShort,
+                                     OperandSize::kShort, OperandSize::kShort),
+      OperandScale::kQuadruple);
+  CHECK_EQ(
+      Bytecodes::OperandSizesToScale(OperandSize::kShort, OperandSize::kQuad,
+                                     OperandSize::kShort, OperandSize::kShort),
+      OperandScale::kQuadruple);
+  CHECK_EQ(
+      Bytecodes::OperandSizesToScale(OperandSize::kShort, OperandSize::kShort,
+                                     OperandSize::kQuad, OperandSize::kShort),
+      OperandScale::kQuadruple);
+  CHECK_EQ(
+      Bytecodes::OperandSizesToScale(OperandSize::kShort, OperandSize::kShort,
+                                     OperandSize::kShort, OperandSize::kQuad),
+      OperandScale::kQuadruple);
+}
+
+TEST(Bytecodes, SizesForSignedOperands) {
+  CHECK(Bytecodes::SizeForSignedOperand(0) == OperandSize::kByte);
+  CHECK(Bytecodes::SizeForSignedOperand(kMaxInt8) == OperandSize::kByte);
+  CHECK(Bytecodes::SizeForSignedOperand(kMinInt8) == OperandSize::kByte);
+  CHECK(Bytecodes::SizeForSignedOperand(kMaxInt8 + 1) == OperandSize::kShort);
+  CHECK(Bytecodes::SizeForSignedOperand(kMinInt8 - 1) == OperandSize::kShort);
+  CHECK(Bytecodes::SizeForSignedOperand(kMaxInt16) == OperandSize::kShort);
+  CHECK(Bytecodes::SizeForSignedOperand(kMinInt16) == OperandSize::kShort);
+  CHECK(Bytecodes::SizeForSignedOperand(kMaxInt16 + 1) == OperandSize::kQuad);
+  CHECK(Bytecodes::SizeForSignedOperand(kMinInt16 - 1) == OperandSize::kQuad);
+  CHECK(Bytecodes::SizeForSignedOperand(kMaxInt) == OperandSize::kQuad);
+  CHECK(Bytecodes::SizeForSignedOperand(kMinInt) == OperandSize::kQuad);
+}
+
+TEST(Bytecodes, SizesForUnsignedOperands) {
+  // int overloads
+  CHECK(Bytecodes::SizeForUnsignedOperand(0) == OperandSize::kByte);
+  CHECK(Bytecodes::SizeForUnsignedOperand(kMaxUInt8) == OperandSize::kByte);
+  CHECK(Bytecodes::SizeForUnsignedOperand(kMaxUInt8 + 1) ==
+        OperandSize::kShort);
+  CHECK(Bytecodes::SizeForUnsignedOperand(kMaxUInt16) == OperandSize::kShort);
+  CHECK(Bytecodes::SizeForUnsignedOperand(kMaxUInt16 + 1) ==
+        OperandSize::kQuad);
+  // size_t overloads
+  CHECK(Bytecodes::SizeForUnsignedOperand(static_cast<size_t>(0)) ==
+        OperandSize::kByte);
+  CHECK(Bytecodes::SizeForUnsignedOperand(static_cast<size_t>(kMaxUInt8)) ==
+        OperandSize::kByte);
+  CHECK(Bytecodes::SizeForUnsignedOperand(static_cast<size_t>(kMaxUInt8 + 1)) ==
+        OperandSize::kShort);
+  CHECK(Bytecodes::SizeForUnsignedOperand(static_cast<size_t>(kMaxUInt16)) ==
+        OperandSize::kShort);
+  CHECK(Bytecodes::SizeForUnsignedOperand(
+            static_cast<size_t>(kMaxUInt16 + 1)) == OperandSize::kQuad);
+  CHECK(Bytecodes::SizeForUnsignedOperand(static_cast<size_t>(kMaxUInt32)) ==
+        OperandSize::kQuad);
 }
 
 TEST(OperandScale, PrefixesRequired) {
diff --git a/test/unittests/interpreter/interpreter-assembler-unittest.cc b/test/unittests/interpreter/interpreter-assembler-unittest.cc
index 0106c57..cd21f09 100644
--- a/test/unittests/interpreter/interpreter-assembler-unittest.cc
+++ b/test/unittests/interpreter/interpreter-assembler-unittest.cc
@@ -313,12 +313,7 @@
 TARGET_TEST_F(InterpreterAssemblerTest, Dispatch) {
   TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
     InterpreterAssemblerForTest m(this, bytecode);
-    m.Dispatch();
-    Graph* graph = m.graph();
-
-    Node* end = graph->end();
-    EXPECT_EQ(1, end->InputCount());
-    Node* tail_call_node = end->InputAt(0);
+    Node* tail_call_node = m.Dispatch();
 
     OperandScale operand_scale = OperandScale::kSingle;
     Matcher<Node*> next_bytecode_offset_matcher = IsIntPtrAdd(
@@ -342,12 +337,10 @@
         IsTailCall(
             _, code_target_matcher,
             IsParameter(InterpreterDispatchDescriptor::kAccumulatorParameter),
-            IsParameter(InterpreterDispatchDescriptor::kRegisterFileParameter),
             next_bytecode_offset_matcher,
             IsParameter(InterpreterDispatchDescriptor::kBytecodeArrayParameter),
             IsParameter(InterpreterDispatchDescriptor::kDispatchTableParameter),
-            IsParameter(InterpreterDispatchDescriptor::kContextParameter), _,
-            _));
+            _, _));
   }
 }
 
@@ -359,11 +352,7 @@
   TRACED_FOREACH(int, jump_offset, jump_offsets) {
     TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
       InterpreterAssemblerForTest m(this, bytecode);
-      m.Jump(m.IntPtrConstant(jump_offset));
-      Graph* graph = m.graph();
-      Node* end = graph->end();
-      EXPECT_EQ(1, end->InputCount());
-      Node* tail_call_node = end->InputAt(0);
+      Node* tail_call_node = m.Jump(m.IntPtrConstant(jump_offset));
 
       Matcher<Node*> next_bytecode_offset_matcher = IsIntPtrAdd(
           IsParameter(InterpreterDispatchDescriptor::kBytecodeOffsetParameter),
@@ -385,100 +374,14 @@
           IsTailCall(
               _, code_target_matcher,
               IsParameter(InterpreterDispatchDescriptor::kAccumulatorParameter),
-              IsParameter(
-                  InterpreterDispatchDescriptor::kRegisterFileParameter),
               next_bytecode_offset_matcher, _,
               IsParameter(
                   InterpreterDispatchDescriptor::kDispatchTableParameter),
-              IsParameter(InterpreterDispatchDescriptor::kContextParameter), _,
-              _));
+              _, _));
     }
   }
 }
 
-TARGET_TEST_F(InterpreterAssemblerTest, JumpIfWordEqual) {
-  static const int kJumpIfTrueOffset = 73;
-
-  // If debug code is enabled we emit extra code in Jump.
-  if (FLAG_debug_code) return;
-
-  MachineOperatorBuilder machine(zone());
-
-  TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
-    InterpreterAssemblerForTest m(this, bytecode);
-    Node* lhs = m.IntPtrConstant(0);
-    Node* rhs = m.IntPtrConstant(1);
-    m.JumpIfWordEqual(lhs, rhs, m.IntPtrConstant(kJumpIfTrueOffset));
-    Graph* graph = m.graph();
-    Node* end = graph->end();
-    EXPECT_EQ(2, end->InputCount());
-
-    OperandScale operand_scale = OperandScale::kSingle;
-    int jump_offsets[] = {kJumpIfTrueOffset, interpreter::Bytecodes::Size(
-                                                 bytecode, operand_scale)};
-    for (int i = 0; i < static_cast<int>(arraysize(jump_offsets)); i++) {
-      Matcher<Node*> next_bytecode_offset_matcher = IsIntPtrAdd(
-          IsParameter(InterpreterDispatchDescriptor::kBytecodeOffsetParameter),
-          IsIntPtrConstant(jump_offsets[i]));
-      Matcher<Node*> target_bytecode_matcher =
-          m.IsLoad(MachineType::Uint8(), _, next_bytecode_offset_matcher);
-      if (kPointerSize == 8) {
-        target_bytecode_matcher =
-            IsChangeUint32ToUint64(target_bytecode_matcher);
-      }
-      Matcher<Node*> code_target_matcher = m.IsLoad(
-          MachineType::Pointer(),
-          IsParameter(InterpreterDispatchDescriptor::kDispatchTableParameter),
-          IsWordShl(target_bytecode_matcher,
-                    IsIntPtrConstant(kPointerSizeLog2)));
-      EXPECT_THAT(
-          end->InputAt(i),
-          IsTailCall(
-              _, code_target_matcher,
-              IsParameter(InterpreterDispatchDescriptor::kAccumulatorParameter),
-              IsParameter(
-                  InterpreterDispatchDescriptor::kRegisterFileParameter),
-              next_bytecode_offset_matcher, _,
-              IsParameter(
-                  InterpreterDispatchDescriptor::kDispatchTableParameter),
-              IsParameter(InterpreterDispatchDescriptor::kContextParameter), _,
-              _));
-    }
-
-    // TODO(oth): test control flow paths.
-  }
-}
-
-TARGET_TEST_F(InterpreterAssemblerTest, InterpreterReturn) {
-  // If debug code is enabled we emit extra code in InterpreterReturn.
-  if (FLAG_debug_code) return;
-
-  TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
-    InterpreterAssemblerForTest m(this, bytecode);
-    m.InterpreterReturn();
-    Graph* graph = m.graph();
-
-    Node* end = graph->end();
-    EXPECT_EQ(1, end->InputCount());
-    Node* tail_call_node = end->InputAt(0);
-
-    Handle<HeapObject> exit_trampoline =
-        isolate()->builtins()->InterpreterExitTrampoline();
-    EXPECT_THAT(
-        tail_call_node,
-        IsTailCall(
-            _, IsHeapConstant(exit_trampoline),
-            IsParameter(InterpreterDispatchDescriptor::kAccumulatorParameter),
-            IsParameter(InterpreterDispatchDescriptor::kRegisterFileParameter),
-            IsParameter(
-                InterpreterDispatchDescriptor::kBytecodeOffsetParameter),
-            _,
-            IsParameter(InterpreterDispatchDescriptor::kDispatchTableParameter),
-            IsParameter(InterpreterDispatchDescriptor::kContextParameter), _,
-            _));
-  }
-}
-
 TARGET_TEST_F(InterpreterAssemblerTest, BytecodeOperand) {
   static const OperandScale kOperandScales[] = {
       OperandScale::kSingle, OperandScale::kDouble, OperandScale::kQuadruple};
@@ -555,24 +458,21 @@
     EXPECT_THAT(m.GetAccumulator(), accumulator_value_2);
 
     // Should be passed to next bytecode handler on dispatch.
-    m.Dispatch();
-    Graph* graph = m.graph();
-
-    Node* end = graph->end();
-    EXPECT_EQ(1, end->InputCount());
-    Node* tail_call_node = end->InputAt(0);
+    Node* tail_call_node = m.Dispatch();
 
     EXPECT_THAT(tail_call_node,
-                IsTailCall(_, _, accumulator_value_2, _, _, _, _, _, _));
+                IsTailCall(_, _, accumulator_value_2, _, _, _, _));
   }
 }
 
-TARGET_TEST_F(InterpreterAssemblerTest, GetSetContext) {
+TARGET_TEST_F(InterpreterAssemblerTest, GetContext) {
   TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
     InterpreterAssemblerForTest m(this, bytecode);
-    Node* context_node = m.Int32Constant(100);
-    m.SetContext(context_node);
-    EXPECT_THAT(m.GetContext(), context_node);
+    EXPECT_THAT(
+        m.GetContext(),
+        m.IsLoad(MachineType::AnyTagged(), IsLoadParentFramePointer(),
+                 IsIntPtrConstant(Register::current_context().ToOperand()
+                                  << kPointerSizeLog2)));
   }
 }
 
@@ -581,11 +481,10 @@
     InterpreterAssemblerForTest m(this, bytecode);
     Node* reg_index_node = m.IntPtrConstant(44);
     Node* reg_location_node = m.RegisterLocation(reg_index_node);
-    EXPECT_THAT(
-        reg_location_node,
-        IsIntPtrAdd(
-            IsParameter(InterpreterDispatchDescriptor::kRegisterFileParameter),
-            IsWordShl(reg_index_node, IsIntPtrConstant(kPointerSizeLog2))));
+    EXPECT_THAT(reg_location_node,
+                IsIntPtrAdd(IsLoadParentFramePointer(),
+                            IsWordShl(reg_index_node,
+                                      IsIntPtrConstant(kPointerSizeLog2))));
   }
 }
 
@@ -594,12 +493,10 @@
     InterpreterAssemblerForTest m(this, bytecode);
     Node* reg_index_node = m.IntPtrConstant(44);
     Node* load_reg_node = m.LoadRegister(reg_index_node);
-    EXPECT_THAT(
-        load_reg_node,
-        m.IsLoad(
-            MachineType::AnyTagged(),
-            IsParameter(InterpreterDispatchDescriptor::kRegisterFileParameter),
-            IsWordShl(reg_index_node, IsIntPtrConstant(kPointerSizeLog2))));
+    EXPECT_THAT(load_reg_node,
+                m.IsLoad(MachineType::AnyTagged(), IsLoadParentFramePointer(),
+                         IsWordShl(reg_index_node,
+                                   IsIntPtrConstant(kPointerSizeLog2))));
   }
 }
 
@@ -611,12 +508,11 @@
     Node* store_reg_node = m.StoreRegister(store_value, reg_index_node);
     EXPECT_THAT(
         store_reg_node,
-        m.IsStore(
-            StoreRepresentation(MachineRepresentation::kTagged,
-                                kNoWriteBarrier),
-            IsParameter(InterpreterDispatchDescriptor::kRegisterFileParameter),
-            IsWordShl(reg_index_node, IsIntPtrConstant(kPointerSizeLog2)),
-            store_value));
+        m.IsStore(StoreRepresentation(MachineRepresentation::kTagged,
+                                      kNoWriteBarrier),
+                  IsLoadParentFramePointer(),
+                  IsWordShl(reg_index_node, IsIntPtrConstant(kPointerSizeLog2)),
+                  store_value));
   }
 }
 
@@ -624,9 +520,9 @@
   TRACED_FOREACH(interpreter::Bytecode, bytecode, kBytecodes) {
     InterpreterAssemblerForTest m(this, bytecode);
     Node* value = m.Int32Constant(44);
-    EXPECT_THAT(
-        m.SmiTag(value),
-        IsWordShl(value, IsIntPtrConstant(kSmiShiftSize + kSmiTagSize)));
+    EXPECT_THAT(m.SmiTag(value),
+                IsIntPtrConstant(static_cast<intptr_t>(44)
+                                 << (kSmiShiftSize + kSmiTagSize)));
     EXPECT_THAT(
         m.SmiUntag(value),
         IsWordSar(value, IsIntPtrConstant(kSmiShiftSize + kSmiTagSize)));
@@ -730,14 +626,10 @@
     InterpreterAssemblerForTest m(this, bytecode);
     Node* arg1 = m.Int32Constant(2);
     Node* arg2 = m.Int32Constant(3);
-    Node* context =
-        m.Parameter(InterpreterDispatchDescriptor::kContextParameter);
+    Node* context = m.Int32Constant(4);
     Node* call_runtime = m.CallRuntime(Runtime::kAdd, context, arg1, arg2);
-    EXPECT_THAT(
-        call_runtime,
-        IsCall(_, _, arg1, arg2, _, IsInt32Constant(2),
-               IsParameter(InterpreterDispatchDescriptor::kContextParameter), _,
-               _));
+    EXPECT_THAT(call_runtime,
+                IsCall(_, _, arg1, arg2, _, IsInt32Constant(2), context, _, _));
   }
 }
 
@@ -751,8 +643,7 @@
       Node* function_id = m.Int32Constant(0);
       Node* first_arg = m.Int32Constant(1);
       Node* arg_count = m.Int32Constant(2);
-      Node* context =
-          m.Parameter(InterpreterDispatchDescriptor::kContextParameter);
+      Node* context = m.Int32Constant(4);
 
       Matcher<Node*> function_table = IsExternalConstant(
           ExternalReference::runtime_function_table_address(isolate()));
@@ -765,12 +656,9 @@
 
       Node* call_runtime = m.CallRuntimeN(function_id, context, first_arg,
                                           arg_count, result_size);
-      EXPECT_THAT(
-          call_runtime,
-          IsCall(_, IsHeapConstant(builtin.code()), arg_count, first_arg,
-                 function_entry,
-                 IsParameter(InterpreterDispatchDescriptor::kContextParameter),
-                 _, _));
+      EXPECT_THAT(call_runtime,
+                  IsCall(_, IsHeapConstant(builtin.code()), arg_count,
+                         first_arg, function_entry, context, _, _));
     }
   }
 }
@@ -786,16 +674,11 @@
       Node* function = m.Int32Constant(0);
       Node* first_arg = m.Int32Constant(1);
       Node* arg_count = m.Int32Constant(2);
-      Node* context =
-          m.Parameter(InterpreterDispatchDescriptor::kContextParameter);
+      Node* context = m.Int32Constant(3);
       Node* call_js =
           m.CallJS(function, context, first_arg, arg_count, tail_call_mode);
-      EXPECT_THAT(
-          call_js,
-          IsCall(_, IsHeapConstant(builtin.code()), arg_count, first_arg,
-                 function,
-                 IsParameter(InterpreterDispatchDescriptor::kContextParameter),
-                 _, _));
+      EXPECT_THAT(call_js, IsCall(_, IsHeapConstant(builtin.code()), arg_count,
+                                  first_arg, function, context, _, _));
     }
   }
 }
@@ -805,11 +688,10 @@
     InterpreterAssemblerForTest m(this, bytecode);
     Node* feedback_vector = m.LoadTypeFeedbackVector();
 
-    Matcher<Node*> load_function_matcher = m.IsLoad(
-        MachineType::AnyTagged(),
-        IsParameter(InterpreterDispatchDescriptor::kRegisterFileParameter),
-        IsIntPtrConstant(
-            InterpreterFrameConstants::kFunctionFromRegisterPointer));
+    Matcher<Node*> load_function_matcher =
+        m.IsLoad(MachineType::AnyTagged(), IsLoadParentFramePointer(),
+                 IsIntPtrConstant(Register::function_closure().ToOperand()
+                                  << kPointerSizeLog2));
     Matcher<Node*> load_shared_function_info_matcher =
         m.IsLoad(MachineType::AnyTagged(), load_function_matcher,
                  IsIntPtrConstant(JSFunction::kSharedFunctionInfoOffset -
diff --git a/test/unittests/interpreter/source-position-table-unittest.cc b/test/unittests/interpreter/source-position-table-unittest.cc
index d62302a..230e57d 100644
--- a/test/unittests/interpreter/source-position-table-unittest.cc
+++ b/test/unittests/interpreter/source-position-table-unittest.cc
@@ -25,7 +25,7 @@
 TEST_F(SourcePositionTableTest, EncodeStatement) {
   SourcePositionTableBuilder builder(isolate(), zone());
   for (int i = 0; i < arraysize(offsets); i++) {
-    builder.AddStatementPosition(offsets[i], offsets[i]);
+    builder.AddPosition(offsets[i], offsets[i], true);
   }
 
   // To test correctness, we rely on the assertions in ToSourcePositionTable().
@@ -36,8 +36,8 @@
 TEST_F(SourcePositionTableTest, EncodeStatementDuplicates) {
   SourcePositionTableBuilder builder(isolate(), zone());
   for (int i = 0; i < arraysize(offsets); i++) {
-    builder.AddStatementPosition(offsets[i], offsets[i]);
-    builder.AddStatementPosition(offsets[i], offsets[i] + 1);
+    builder.AddPosition(offsets[i], offsets[i], true);
+    builder.AddPosition(offsets[i], offsets[i] + 1, true);
   }
 
   // To test correctness, we rely on the assertions in ToSourcePositionTable().
@@ -48,7 +48,7 @@
 TEST_F(SourcePositionTableTest, EncodeExpression) {
   SourcePositionTableBuilder builder(isolate(), zone());
   for (int i = 0; i < arraysize(offsets); i++) {
-    builder.AddExpressionPosition(offsets[i], offsets[i]);
+    builder.AddPosition(offsets[i], offsets[i], false);
   }
   CHECK(!builder.ToSourcePositionTable().is_null());
 }
@@ -60,9 +60,9 @@
   for (int i = 0; i < arraysize(offsets); i++) {
     accumulator += offsets[i];
     if (i % 2) {
-      builder.AddStatementPosition(accumulator, accumulator);
+      builder.AddPosition(accumulator, accumulator, true);
     } else {
-      builder.AddExpressionPosition(accumulator, accumulator);
+      builder.AddPosition(accumulator, accumulator, false);
     }
   }
 
@@ -70,9 +70,9 @@
   for (int i = 0; i < arraysize(offsets); i++) {
     accumulator -= offsets[i];
     if (i % 2) {
-      builder.AddStatementPosition(accumulator, accumulator);
+      builder.AddPosition(accumulator, accumulator, true);
     } else {
-      builder.AddExpressionPosition(accumulator, accumulator);
+      builder.AddPosition(accumulator, accumulator, false);
     }
   }
 
diff --git a/test/unittests/unittests.gyp b/test/unittests/unittests.gyp
index 003281b..e16ebeb 100644
--- a/test/unittests/unittests.gyp
+++ b/test/unittests/unittests.gyp
@@ -6,7 +6,7 @@
   'variables': {
     'v8_code': 1,
   },
-  'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'],
+  'includes': ['../../gypfiles/toolchain.gypi', '../../gypfiles/features.gypi'],
   'targets': [
     {
       'target_name': 'unittests',
@@ -17,13 +17,13 @@
       'dependencies': [
         '../../testing/gmock.gyp:gmock',
         '../../testing/gtest.gyp:gtest',
-        '../../tools/gyp/v8.gyp:v8_libplatform',
+        '../../src/v8.gyp:v8_libplatform',
       ],
       'include_dirs': [
         '../..',
       ],
       'sources': [  ### gcmole(all) ###
-        'atomic-utils-unittest.cc',
+        'base/atomic-utils-unittest.cc',
         'base/bits-unittest.cc',
         'base/cpu-unittest.cc',
         'base/division-by-constant-unittest.cc',
@@ -41,7 +41,6 @@
         'cancelable-tasks-unittest.cc',
         'char-predicates-unittest.cc',
         'compiler/branch-elimination-unittest.cc',
-        'compiler/change-lowering-unittest.cc',
         'compiler/coalesced-live-ranges-unittest.cc',
         'compiler/common-operator-reducer-unittest.cc',
         'compiler/common-operator-unittest.cc',
@@ -50,6 +49,7 @@
         'compiler/control-flow-optimizer-unittest.cc',
         'compiler/dead-code-elimination-unittest.cc',
         'compiler/diamond-unittest.cc',
+        'compiler/effect-control-linearizer-unittest.cc',
         'compiler/escape-analysis-unittest.cc',
         'compiler/graph-reducer-unittest.cc',
         'compiler/graph-reducer-unittest.h',
@@ -96,7 +96,10 @@
         'interpreter/bytecodes-unittest.cc',
         'interpreter/bytecode-array-builder-unittest.cc',
         'interpreter/bytecode-array-iterator-unittest.cc',
+        'interpreter/bytecode-array-writer-unittest.cc',
+        'interpreter/bytecode-peephole-optimizer-unittest.cc',
         'interpreter/bytecode-register-allocator-unittest.cc',
+        'interpreter/bytecode-pipeline-unittest.cc',
         'interpreter/constant-array-builder-unittest.cc',
         'interpreter/interpreter-assembler-unittest.cc',
         'interpreter/interpreter-assembler-unittest.h',
@@ -118,8 +121,10 @@
         'wasm/ast-decoder-unittest.cc',
         'wasm/decoder-unittest.cc',
         'wasm/encoder-unittest.cc',
+        'wasm/leb-helper-unittest.cc',
         'wasm/loop-assignment-analysis-unittest.cc',
         'wasm/module-decoder-unittest.cc',
+        'wasm/switch-logic-unittest.cc',
         'wasm/wasm-macro-gen-unittest.cc',
       ],
       'conditions': [
@@ -138,11 +143,21 @@
             'compiler/ia32/instruction-selector-ia32-unittest.cc',
           ],
         }],
+        ['v8_target_arch=="mips"', {
+          'sources': [  ### gcmole(arch:mips) ###
+            'compiler/mips/instruction-selector-mips-unittest.cc',
+          ],
+        }],
         ['v8_target_arch=="mipsel"', {
           'sources': [  ### gcmole(arch:mipsel) ###
             'compiler/mips/instruction-selector-mips-unittest.cc',
           ],
         }],
+        ['v8_target_arch=="mips64"', {
+          'sources': [  ### gcmole(arch:mips64) ###
+            'compiler/mips64/instruction-selector-mips64-unittest.cc',
+          ],
+        }],
         ['v8_target_arch=="mips64el"', {
           'sources': [  ### gcmole(arch:mips64el) ###
             'compiler/mips64/instruction-selector-mips64-unittest.cc',
@@ -169,9 +184,9 @@
         ['component=="shared_library"', {
           # compiler-unittests can't be built against a shared library, so we
           # need to depend on the underlying static target in that case.
-          'dependencies': ['../../tools/gyp/v8.gyp:v8_maybe_snapshot'],
+          'dependencies': ['../../src/v8.gyp:v8_maybe_snapshot'],
         }, {
-          'dependencies': ['../../tools/gyp/v8.gyp:v8'],
+          'dependencies': ['../../src/v8.gyp:v8'],
         }],
         ['os_posix == 1', {
           # TODO(svenpanne): This is a temporary work-around to fix the warnings
@@ -198,7 +213,7 @@
             'unittests',
           ],
           'includes': [
-            '../../build/isolate.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'unittests.isolate',
diff --git a/test/unittests/unittests.status b/test/unittests/unittests.status
index 40b5754..84fd087 100644
--- a/test/unittests/unittests.status
+++ b/test/unittests/unittests.status
@@ -11,6 +11,5 @@
   'WasmDecoderTest.AllLoadMemCombinations': [SKIP],
   'AstDecoderTest.AllLoadMemCombinations': [SKIP],
   'AstDecoderTest.AllStoreMemCombinations': [SKIP],
-  'Bytecodes.DecodeBytecodeAndOperands': [SKIP],
 }],  # 'byteorder == big'
 ]
diff --git a/test/unittests/wasm/ast-decoder-unittest.cc b/test/unittests/wasm/ast-decoder-unittest.cc
index 0b1b79e..fe10115 100644
--- a/test/unittests/wasm/ast-decoder-unittest.cc
+++ b/test/unittests/wasm/ast-decoder-unittest.cc
@@ -18,9 +18,13 @@
 namespace internal {
 namespace wasm {
 
+#define B1(a) kExprBlock, a, kExprEnd
+#define B2(a, b) kExprBlock, a, b, kExprEnd
+#define B3(a, b, c) kExprBlock, a, b, c, kExprEnd
+
 static const byte kCodeGetLocal0[] = {kExprGetLocal, 0};
 static const byte kCodeGetLocal1[] = {kExprGetLocal, 1};
-static const byte kCodeSetLocal0[] = {kExprSetLocal, 0, kExprI8Const, 0};
+static const byte kCodeSetLocal0[] = {WASM_SET_LOCAL(0, WASM_ZERO)};
 
 static const LocalType kLocalTypes[] = {kAstI32, kAstI64, kAstF32, kAstF64};
 static const MachineType machineTypes[] = {
@@ -36,7 +40,7 @@
     kExprI32LeS,  kExprI32LtU,  kExprI32LeU};
 
 #define WASM_BRV_IF_ZERO(depth, val) \
-  kExprBrIf, static_cast<byte>(depth), val, WASM_ZERO
+  val, WASM_ZERO, kExprBrIf, ARITY_1, static_cast<byte>(depth)
 
 #define EXPECT_VERIFIES(env, x) Verify(kSuccess, env, x, x + arraysize(x))
 
@@ -48,7 +52,6 @@
     Verify(kSuccess, env, code, code + arraysize(code)); \
   } while (false)
 
-
 #define EXPECT_FAILURE_INLINE(env, ...)                \
   do {                                                 \
     static byte code[] = {__VA_ARGS__};                \
@@ -65,7 +68,8 @@
  public:
   typedef std::pair<uint32_t, LocalType> LocalsDecl;
 
-  AstDecoderTest() : module(nullptr) {}
+  AstDecoderTest() : module(nullptr), local_decls(zone()) {}
+
   TestSignatures sigs;
   ModuleEnv* module;
   LocalDeclEncoder local_decls;
@@ -74,7 +78,7 @@
     local_decls.AddLocals(count, type);
   }
 
-  // Preprends local variable declarations and renders nice error messages for
+  // Prepends local variable declarations and renders nice error messages for
   // verification failures.
   void Verify(ErrorCode expected, FunctionSig* sig, const byte* start,
               const byte* end) {
@@ -107,8 +111,7 @@
 
   void TestBinop(WasmOpcode opcode, FunctionSig* success) {
     // op(local[0], local[1])
-    byte code[] = {static_cast<byte>(opcode), kExprGetLocal, 0, kExprGetLocal,
-                   1};
+    byte code[] = {WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))};
     EXPECT_VERIFIES(success, code);
 
     // Try all combinations of return and parameter types.
@@ -134,7 +137,7 @@
 
   void TestUnop(WasmOpcode opcode, LocalType ret_type, LocalType param_type) {
     // Return(op(local[0]))
-    byte code[] = {static_cast<byte>(opcode), kExprGetLocal, 0};
+    byte code[] = {WASM_UNOP(opcode, WASM_GET_LOCAL(0))};
     {
       LocalType types[] = {ret_type, param_type};
       FunctionSig sig(1, 1, types);
@@ -155,7 +158,6 @@
   }
 };
 
-
 TEST_F(AstDecoderTest, Int8Const) {
   byte code[] = {kExprI8Const, 0};
   for (int i = -128; i < 128; i++) {
@@ -176,12 +178,6 @@
   EXPECT_FAILURE(sigs.i_i(), code);
 }
 
-TEST_F(AstDecoderTest, IncompleteIf2) {
-  byte code[] = {kExprIf, kExprI8Const, 0};
-  EXPECT_FAILURE(sigs.v_v(), code);
-  EXPECT_FAILURE(sigs.i_i(), code);
-}
-
 TEST_F(AstDecoderTest, Int8Const_fallthru) {
   byte code[] = {kExprI8Const, 0, kExprI8Const, 1};
   EXPECT_VERIFIES(sigs.i_i(), code);
@@ -303,199 +299,294 @@
     EXPECT_FAILURE(sigs.i_i(), code1);
   }
 
-  byte code3[] = {0, kExprGetLocal, 0};  // [opcode] [expr]
+  byte code3[] = {kExprGetLocal, 0, 0};  // [expr] [opcode]
   for (size_t i = 0; i < arraysize(kInt32BinopOpcodes); i++) {
-    code3[0] = kInt32BinopOpcodes[i];
+    code3[2] = kInt32BinopOpcodes[i];
     EXPECT_FAILURE(sigs.i_i(), code3);
   }
 
-  byte code4[] = {0, kExprGetLocal, 0, 0};  // [opcode] [expr] [opcode]
+  byte code4[] = {kExprGetLocal, 0, 0, 0};  // [expr] [opcode] [opcode]
   for (size_t i = 0; i < arraysize(kInt32BinopOpcodes); i++) {
-    code4[0] = kInt32BinopOpcodes[i];
+    code4[2] = kInt32BinopOpcodes[i];
     code4[3] = kInt32BinopOpcodes[i];
     EXPECT_FAILURE(sigs.i_i(), code4);
   }
 }
 
+TEST_F(AstDecoderTest, BinopsAcrossBlock1) {
+  static const byte code[] = {WASM_ZERO, kExprBlock, WASM_ZERO, kExprI32Add,
+                              kExprEnd};
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
 
-//===================================================================
-//== Statements
-//===================================================================
+TEST_F(AstDecoderTest, BinopsAcrossBlock2) {
+  static const byte code[] = {WASM_ZERO, WASM_ZERO, kExprBlock, kExprI32Add,
+                              kExprEnd};
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
+
+TEST_F(AstDecoderTest, BinopsAcrossBlock3) {
+  static const byte code[] = {WASM_ZERO, WASM_ZERO,   kExprIf, kExprI32Add,
+                              kExprElse, kExprI32Add, kExprEnd};
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
+
 TEST_F(AstDecoderTest, Nop) {
   static const byte code[] = {kExprNop};
   EXPECT_VERIFIES(sigs.v_v(), code);
 }
 
 TEST_F(AstDecoderTest, SetLocal0_param) {
-  static const byte code[] = {kExprSetLocal, 0, kExprI8Const, 0};
-  EXPECT_VERIFIES(sigs.i_i(), code);
+  EXPECT_VERIFIES(sigs.i_i(), kCodeSetLocal0);
+  EXPECT_FAILURE(sigs.f_ff(), kCodeSetLocal0);
+  EXPECT_FAILURE(sigs.d_dd(), kCodeSetLocal0);
 }
 
 TEST_F(AstDecoderTest, SetLocal0_local) {
-  byte code[] = {kExprSetLocal, 0, kExprI8Const, 0};
+  EXPECT_FAILURE(sigs.i_v(), kCodeSetLocal0);
   AddLocals(kAstI32, 1);
-  EXPECT_VERIFIES(sigs.i_v(), code);
+  EXPECT_VERIFIES(sigs.i_v(), kCodeSetLocal0);
 }
 
 TEST_F(AstDecoderTest, SetLocalN_local) {
   for (byte i = 1; i < 8; i++) {
     AddLocals(kAstI32, 1);
     for (byte j = 0; j < i; j++) {
-      byte code[] = {kExprSetLocal, j, kExprI8Const, i};
-      EXPECT_VERIFIES(sigs.v_v(), code);
+      EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_SET_LOCAL(j, WASM_I8(i)));
     }
   }
 }
 
+TEST_F(AstDecoderTest, BlockN) {
+  const int kMaxSize = 200;
+  byte buffer[kMaxSize + 2];
+
+  for (int i = 0; i <= kMaxSize; i++) {
+    memset(buffer, kExprNop, sizeof(buffer));
+    buffer[0] = kExprBlock;
+    buffer[i + 1] = kExprEnd;
+    Verify(kSuccess, sigs.v_i(), buffer, buffer + i + 2);
+  }
+}
+
 TEST_F(AstDecoderTest, Block0) {
-  static const byte code[] = {kExprBlock, 0};
+  static const byte code[] = {kExprBlock, kExprEnd};
   EXPECT_VERIFIES(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
 }
 
 TEST_F(AstDecoderTest, Block0_fallthru1) {
-  static const byte code[] = {kExprBlock, 0, kExprBlock, 0};
+  static const byte code[] = {kExprBlock, kExprBlock, kExprEnd, kExprEnd};
   EXPECT_VERIFIES(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
+
+TEST_F(AstDecoderTest, Block0Block0) {
+  static const byte code[] = {kExprBlock, kExprEnd, kExprBlock, kExprEnd};
+  EXPECT_VERIFIES(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
+
+TEST_F(AstDecoderTest, Block0_end_end) {
+  static const byte code[] = {kExprBlock, kExprEnd, kExprEnd};
+  EXPECT_FAILURE(sigs.v_v(), code);
 }
 
 TEST_F(AstDecoderTest, Block1) {
-  static const byte code[] = {kExprBlock, 1, kExprSetLocal, 0, kExprI8Const, 0};
+  byte code[] = {B1(WASM_SET_LOCAL(0, WASM_ZERO))};
   EXPECT_VERIFIES(sigs.i_i(), code);
+  EXPECT_VERIFIES(sigs.v_i(), code);
+  EXPECT_FAILURE(sigs.d_dd(), code);
 }
 
-TEST_F(AstDecoderTest, Block0_fallthru2) {
-  static const byte code[] = {kExprBlock, 0, kExprSetLocal, 0, kExprI8Const, 0};
+TEST_F(AstDecoderTest, Block1_i) {
+  byte code[] = {B1(WASM_ZERO)};
   EXPECT_VERIFIES(sigs.i_i(), code);
+  EXPECT_FAILURE(sigs.f_ff(), code);
+  EXPECT_FAILURE(sigs.d_dd(), code);
+  EXPECT_FAILURE(sigs.l_ll(), code);
 }
 
-TEST_F(AstDecoderTest, Block2) {
-  static const byte code[] = {kExprBlock,    2,                    // --
-                              kExprSetLocal, 0, kExprI8Const, 0,   // --
-                              kExprSetLocal, 0, kExprI8Const, 0};  // --
-  EXPECT_VERIFIES(sigs.i_i(), code);
-}
-
-TEST_F(AstDecoderTest, Block2_fallthru) {
-  static const byte code[] = {kExprBlock,    2,                   // --
-                              kExprSetLocal, 0, kExprI8Const, 0,  // --
-                              kExprSetLocal, 0, kExprI8Const, 0,  // --
-                              kExprI8Const,  11};                 // --
-  EXPECT_VERIFIES(sigs.i_i(), code);
-}
-
-TEST_F(AstDecoderTest, BlockN) {
-  byte block[] = {kExprBlock, 2};
-
-  for (size_t i = 0; i < 10; i++) {
-    size_t total = sizeof(block) + sizeof(kCodeSetLocal0) * i;
-    byte* code = reinterpret_cast<byte*>(malloc(total));
-    memcpy(code, block, sizeof(block));
-    code[1] = static_cast<byte>(i);
-    for (size_t j = 0; j < i; j++) {
-      memcpy(code + sizeof(block) + j * sizeof(kCodeSetLocal0), kCodeSetLocal0,
-             sizeof(kCodeSetLocal0));
-    }
-    Verify(kSuccess, sigs.v_i(), code, code + total);
-    free(code);
-  }
-}
-
-TEST_F(AstDecoderTest, BlockN_off_end) {
-  for (byte i = 2; i < 10; i++) {
-    byte code[] = {kExprBlock, i, kExprNop};
-    EXPECT_FAILURE(sigs.v_v(), code);
-  }
-}
-
-TEST_F(AstDecoderTest, Block1_break) {
-  static const byte code[] = {kExprBlock, 1, kExprBr, 0, kExprNop};
-  EXPECT_VERIFIES(sigs.v_v(), code);
-}
-
-TEST_F(AstDecoderTest, Block2_break) {
-  static const byte code[] = {kExprBlock, 2, kExprNop, kExprBr, 0, kExprNop};
-  EXPECT_VERIFIES(sigs.v_v(), code);
+TEST_F(AstDecoderTest, Block1_f) {
+  byte code[] = {B1(WASM_F32(0))};
+  EXPECT_FAILURE(sigs.i_i(), code);
+  EXPECT_VERIFIES(sigs.f_ff(), code);
+  EXPECT_FAILURE(sigs.d_dd(), code);
+  EXPECT_FAILURE(sigs.l_ll(), code);
 }
 
 TEST_F(AstDecoderTest, Block1_continue) {
-  static const byte code[] = {kExprBlock, 1, kExprBr, 1, kExprNop};
-  EXPECT_FAILURE(sigs.v_v(), code);
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B1(WASM_BR(0)));
+  EXPECT_FAILURE_INLINE(sigs.v_v(), B1(WASM_BR(1)));
+  EXPECT_FAILURE_INLINE(sigs.v_v(), B1(WASM_BR(2)));
+  EXPECT_FAILURE_INLINE(sigs.v_v(), B1(WASM_BR(3)));
 }
 
-TEST_F(AstDecoderTest, Block2_continue) {
-  static const byte code[] = {kExprBlock, 2, kExprNop, kExprBr, 1, kExprNop};
-  EXPECT_FAILURE(sigs.v_v(), code);
+TEST_F(AstDecoderTest, Block1_br) {
+  EXPECT_FAILURE_INLINE(sigs.v_v(), kExprBlock, kExprBr, ARITY_1, DEPTH_0,
+                        kExprEnd);
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), kExprBlock, kExprBr, ARITY_0, DEPTH_0,
+                         kExprEnd);
 }
 
-TEST_F(AstDecoderTest, ExprBlock0) {
-  static const byte code[] = {kExprBlock, 0};
-  EXPECT_VERIFIES(sigs.v_v(), code);
+TEST_F(AstDecoderTest, Block2_br) {
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B2(WASM_NOP, WASM_BR(0)));
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B2(WASM_BR(0), WASM_NOP));
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B2(WASM_BR(0), WASM_BR(0)));
 }
 
-TEST_F(AstDecoderTest, ExprBlock1a) {
-  static const byte code[] = {kExprBlock, 1, kExprI8Const, 0};
+TEST_F(AstDecoderTest, Block2) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(),
+                         B2(WASM_NOP, WASM_SET_LOCAL(0, WASM_ZERO)));
+  EXPECT_FAILURE_INLINE(sigs.i_i(), B2(WASM_SET_LOCAL(0, WASM_ZERO), WASM_NOP));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), B2(WASM_SET_LOCAL(0, WASM_ZERO),
+                                        WASM_SET_LOCAL(0, WASM_ZERO)));
+}
+
+TEST_F(AstDecoderTest, Block2b) {
+  byte code[] = {B2(WASM_SET_LOCAL(0, WASM_ZERO), WASM_ZERO)};
   EXPECT_VERIFIES(sigs.i_i(), code);
-}
-
-TEST_F(AstDecoderTest, ExprBlock1b) {
-  static const byte code[] = {kExprBlock, 1, kExprI8Const, 0};
+  EXPECT_FAILURE(sigs.v_v(), code);
   EXPECT_FAILURE(sigs.f_ff(), code);
 }
 
-TEST_F(AstDecoderTest, ExprBlock1c) {
-  static const byte code[] = {kExprBlock, 1, kExprF32Const, 0, 0, 0, 0};
+TEST_F(AstDecoderTest, Block2_fallthru) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), B2(WASM_SET_LOCAL(0, WASM_ZERO),
+                                        WASM_SET_LOCAL(0, WASM_ZERO)),
+                         WASM_I8(23));
+}
+
+TEST_F(AstDecoderTest, Block3) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.i_i(), B3(WASM_SET_LOCAL(0, WASM_ZERO), WASM_SET_LOCAL(0, WASM_ZERO),
+                     WASM_I8(11)));
+}
+
+TEST_F(AstDecoderTest, Block5) {
+  EXPECT_VERIFIES_INLINE(sigs.v_i(), B1(WASM_GET_LOCAL(0)));
+
+  EXPECT_VERIFIES_INLINE(sigs.v_i(), B2(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0)));
+
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(), B3(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_GET_LOCAL(0)));
+
+  EXPECT_VERIFIES_INLINE(sigs.v_i(),
+                         WASM_BLOCK(4, WASM_GET_LOCAL(0), WASM_GET_LOCAL(0),
+                                    WASM_GET_LOCAL(0), WASM_GET_LOCAL(0)));
+
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(),
+      WASM_BLOCK(5, WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_GET_LOCAL(0),
+                 WASM_GET_LOCAL(0), WASM_GET_LOCAL(0)));
+}
+
+TEST_F(AstDecoderTest, BlockF32) {
+  static const byte code[] = {kExprBlock, kExprF32Const, 0, 0, 0, 0, kExprEnd};
   EXPECT_VERIFIES(sigs.f_ff(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
+  EXPECT_FAILURE(sigs.d_dd(), code);
+}
+
+TEST_F(AstDecoderTest, BlockN_off_end) {
+  byte code[] = {kExprBlock, kExprNop, kExprNop, kExprNop, kExprNop, kExprEnd};
+  EXPECT_VERIFIES(sigs.v_v(), code);
+  for (size_t i = 1; i < arraysize(code); i++) {
+    Verify(kError, sigs.v_v(), code, code + i);
+  }
+}
+
+TEST_F(AstDecoderTest, Block2_continue) {
+  static const byte code[] = {kExprBlock, kExprBr,  ARITY_0,
+                              DEPTH_1,    kExprNop, kExprEnd};
+  EXPECT_FAILURE(sigs.v_v(), code);
+}
+
+TEST_F(AstDecoderTest, NestedBlock_return) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), B1(B1(WASM_RETURN1(WASM_ZERO))));
+}
+
+TEST_F(AstDecoderTest, BlockBinop) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_I32_AND(B1(WASM_I8(1)), WASM_I8(2)));
+}
+
+TEST_F(AstDecoderTest, BlockBrBinop) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(),
+                         WASM_I32_AND(B1(WASM_BRV(0, WASM_I8(1))), WASM_I8(2)));
+}
+
+TEST_F(AstDecoderTest, If_empty1) {
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_ZERO, kExprIf, kExprEnd);
+}
+
+TEST_F(AstDecoderTest, If_empty2) {
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_ZERO, kExprIf, kExprElse, kExprEnd);
+}
+
+TEST_F(AstDecoderTest, If_empty3) {
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_ZERO, kExprIf, WASM_ZERO, kExprElse,
+                         kExprEnd);
+}
+
+TEST_F(AstDecoderTest, If_empty4) {
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_ZERO, kExprIf, kExprElse, WASM_ZERO,
+                         kExprEnd);
+}
+
+TEST_F(AstDecoderTest, If_empty_stack) {
+  byte code[] = {kExprIf};
+  EXPECT_FAILURE(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
+
+TEST_F(AstDecoderTest, If_incomplete1) {
+  byte code[] = {kExprI8Const, 0, kExprIf};
+  EXPECT_FAILURE(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
+
+TEST_F(AstDecoderTest, If_incomplete2) {
+  byte code[] = {kExprI8Const, 0, kExprIf, kExprNop};
+  EXPECT_FAILURE(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
+
+TEST_F(AstDecoderTest, If_else_else) {
+  byte code[] = {kExprI8Const, 0, kExprIf, kExprElse, kExprElse, kExprEnd};
+  EXPECT_FAILURE(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
 }
 
 TEST_F(AstDecoderTest, IfEmpty) {
-  static const byte code[] = {kExprIf, kExprGetLocal, 0, kExprNop};
-  EXPECT_VERIFIES(sigs.v_i(), code);
+  EXPECT_VERIFIES_INLINE(sigs.v_i(), kExprGetLocal, 0, kExprIf, kExprEnd);
 }
 
 TEST_F(AstDecoderTest, IfSet) {
-  static const byte code[] = {kExprIfElse, kExprGetLocal, 0, kExprSetLocal,
-                              0,           kExprI8Const,  0, kExprNop};
-  EXPECT_VERIFIES(sigs.v_i(), code);
-}
-
-TEST_F(AstDecoderTest, IfBlock1) {
-  static const byte code[] = {kExprIfElse, kExprGetLocal, 0, kExprBlock,
-                              1,           kExprSetLocal, 0, kExprI8Const,
-                              0,           kExprNop};
-  EXPECT_VERIFIES(sigs.v_i(), code);
-}
-
-TEST_F(AstDecoderTest, IfBlock2) {
-  static const byte code[] = {kExprIf, kExprGetLocal, 0, kExprBlock,
-                              2,       kExprSetLocal, 0, kExprI8Const,
-                              0,       kExprSetLocal, 0, kExprI8Const,
-                              0};
-  EXPECT_VERIFIES(sigs.v_i(), code);
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(), WASM_IF(WASM_GET_LOCAL(0), WASM_SET_LOCAL(0, WASM_ZERO)));
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(),
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_SET_LOCAL(0, WASM_ZERO), WASM_NOP));
 }
 
 TEST_F(AstDecoderTest, IfElseEmpty) {
-  static const byte code[] = {kExprIfElse, kExprGetLocal, 0, kExprNop,
-                              kExprNop};
-  EXPECT_VERIFIES(sigs.v_i(), code);
+  EXPECT_VERIFIES_INLINE(sigs.v_i(), WASM_GET_LOCAL(0), kExprIf, kExprElse,
+                         kExprEnd);
+  EXPECT_VERIFIES_INLINE(sigs.v_i(),
+                         WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_NOP, WASM_NOP));
 }
 
-TEST_F(AstDecoderTest, IfElseSet) {
-  static const byte code[] = {kExprIfElse,
-                              kExprGetLocal,
-                              0,  // --
-                              kExprSetLocal,
-                              0,
-                              kExprI8Const,
-                              0,  // --
-                              kExprSetLocal,
-                              0,
-                              kExprI8Const,
-                              1};  // --
-  EXPECT_VERIFIES(sigs.v_i(), code);
+TEST_F(AstDecoderTest, IfElseUnreachable1) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.i_i(),
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_UNREACHABLE, WASM_GET_LOCAL(0)));
+  EXPECT_VERIFIES_INLINE(
+      sigs.i_i(),
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_UNREACHABLE));
 }
 
-TEST_F(AstDecoderTest, IfElseUnreachable) {
-  static const byte code[] = {kExprIfElse,      kExprI8Const,  0,
-                              kExprUnreachable, kExprGetLocal, 0};
+TEST_F(AstDecoderTest, IfElseUnreachable2) {
+  static const byte code[] = {
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_UNREACHABLE, WASM_GET_LOCAL(0))};
 
   for (size_t i = 0; i < arraysize(kLocalTypes); i++) {
     LocalType types[] = {kAstI32, kLocalTypes[i]};
@@ -509,66 +600,136 @@
   }
 }
 
+TEST_F(AstDecoderTest, IfBreak) {
+  EXPECT_VERIFIES_INLINE(sigs.v_i(), WASM_IF(WASM_GET_LOCAL(0), WASM_BR(0)));
+  EXPECT_FAILURE_INLINE(sigs.v_i(), WASM_IF(WASM_GET_LOCAL(0), WASM_BR(1)));
+}
+
+TEST_F(AstDecoderTest, IfElseBreak) {
+  EXPECT_VERIFIES_INLINE(sigs.v_i(),
+                         WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_NOP, WASM_BR(0)));
+  EXPECT_FAILURE_INLINE(sigs.v_i(),
+                        WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_NOP, WASM_BR(1)));
+}
+
+TEST_F(AstDecoderTest, Block_else) {
+  byte code[] = {kExprI8Const, 0, kExprBlock, kExprElse, kExprEnd};
+  EXPECT_FAILURE(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.i_i(), code);
+}
+
+TEST_F(AstDecoderTest, IfNop) {
+  EXPECT_VERIFIES_INLINE(sigs.v_i(), WASM_IF(WASM_GET_LOCAL(0), WASM_NOP));
+}
+
+TEST_F(AstDecoderTest, IfNopElseNop) {
+  EXPECT_VERIFIES_INLINE(sigs.v_i(),
+                         WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_NOP, WASM_NOP));
+}
+
+TEST_F(AstDecoderTest, If_end_end) {
+  static const byte code[] = {kExprGetLocal, 0, kExprIf, kExprEnd, kExprEnd};
+  EXPECT_FAILURE(sigs.v_i(), code);
+}
+
+TEST_F(AstDecoderTest, If_falloff) {
+  static const byte code[] = {kExprGetLocal, 0, kExprIf};
+  EXPECT_FAILURE(sigs.v_i(), code);
+}
+
+TEST_F(AstDecoderTest, IfElse_falloff) {
+  static const byte code[] = {kExprGetLocal, 0, kExprIf, kExprNop, kExprElse};
+  EXPECT_FAILURE(sigs.v_i(), code);
+}
+
+TEST_F(AstDecoderTest, IfElseNop) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(),
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_SET_LOCAL(0, WASM_ZERO), WASM_NOP));
+}
+
+TEST_F(AstDecoderTest, IfBlock1) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(), WASM_IF_ELSE(WASM_GET_LOCAL(0),
+                               B1(WASM_SET_LOCAL(0, WASM_ZERO)), WASM_NOP));
+}
+
+TEST_F(AstDecoderTest, IfBlock1b) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(), WASM_IF(WASM_GET_LOCAL(0), B1(WASM_SET_LOCAL(0, WASM_ZERO))));
+}
+
+TEST_F(AstDecoderTest, IfBlock2a) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(), WASM_IF(WASM_GET_LOCAL(0), B2(WASM_SET_LOCAL(0, WASM_ZERO),
+                                                WASM_SET_LOCAL(0, WASM_ZERO))));
+}
+
+TEST_F(AstDecoderTest, IfBlock2b) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(),
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), B2(WASM_SET_LOCAL(0, WASM_ZERO),
+                                         WASM_SET_LOCAL(0, WASM_ZERO)),
+                   WASM_NOP));
+}
+
+TEST_F(AstDecoderTest, IfElseSet) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(), WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_SET_LOCAL(0, WASM_ZERO),
+                               WASM_SET_LOCAL(0, WASM_I8(1))));
+}
+
 TEST_F(AstDecoderTest, Loop0) {
-  static const byte code[] = {kExprLoop, 0};
+  static const byte code[] = {kExprLoop, kExprEnd};
   EXPECT_VERIFIES(sigs.v_v(), code);
 }
 
 TEST_F(AstDecoderTest, Loop1) {
-  static const byte code[] = {kExprLoop, 1, kExprSetLocal, 0, kExprI8Const, 0};
+  static const byte code[] = {WASM_LOOP(1, WASM_SET_LOCAL(0, WASM_ZERO))};
   EXPECT_VERIFIES(sigs.v_i(), code);
+  EXPECT_FAILURE(sigs.v_v(), code);
+  EXPECT_FAILURE(sigs.f_ff(), code);
 }
 
 TEST_F(AstDecoderTest, Loop2) {
-  static const byte code[] = {kExprLoop,     2,                    // --
-                              kExprSetLocal, 0, kExprI8Const, 0,   // --
-                              kExprSetLocal, 0, kExprI8Const, 0};  // --
-  EXPECT_VERIFIES(sigs.v_i(), code);
+  EXPECT_VERIFIES_INLINE(sigs.v_i(), WASM_LOOP(2, WASM_SET_LOCAL(0, WASM_ZERO),
+                                               WASM_SET_LOCAL(0, WASM_ZERO)));
 }
 
 TEST_F(AstDecoderTest, Loop1_continue) {
-  static const byte code[] = {kExprLoop, 1, kExprBr, 0, kExprNop};
-  EXPECT_VERIFIES(sigs.v_v(), code);
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BR(0)));
 }
 
 TEST_F(AstDecoderTest, Loop1_break) {
-  static const byte code[] = {kExprLoop, 1, kExprBr, 1, kExprNop};
-  EXPECT_VERIFIES(sigs.v_v(), code);
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BR(1)));
 }
 
 TEST_F(AstDecoderTest, Loop2_continue) {
-  static const byte code[] = {kExprLoop,     2,                   // --
-                              kExprSetLocal, 0, kExprI8Const, 0,  // --
-                              kExprBr,       0, kExprNop};        // --
-  EXPECT_VERIFIES(sigs.v_i(), code);
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(), WASM_LOOP(2, WASM_SET_LOCAL(0, WASM_ZERO), WASM_BR(0)));
 }
 
 TEST_F(AstDecoderTest, Loop2_break) {
-  static const byte code[] = {kExprLoop,     2,                   // --
-                              kExprSetLocal, 0, kExprI8Const, 0,  // --
-                              kExprBr,       1, kExprNop};        // --
-  EXPECT_VERIFIES(sigs.v_i(), code);
+  EXPECT_VERIFIES_INLINE(
+      sigs.v_i(), WASM_LOOP(2, WASM_SET_LOCAL(0, WASM_ZERO), WASM_BR(1)));
 }
 
 TEST_F(AstDecoderTest, ExprLoop0) {
-  static const byte code[] = {kExprLoop, 0};
+  static const byte code[] = {kExprLoop, kExprEnd};
   EXPECT_VERIFIES(sigs.v_v(), code);
 }
 
 TEST_F(AstDecoderTest, ExprLoop1a) {
-  static const byte code[] = {kExprLoop, 1, kExprBr, 0, kExprI8Const, 0};
-  EXPECT_VERIFIES(sigs.i_i(), code);
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(1, WASM_BRV(0, WASM_ZERO)));
 }
 
 TEST_F(AstDecoderTest, ExprLoop1b) {
-  static const byte code[] = {kExprLoop, 1, kExprBr, 0, kExprI8Const, 0};
-  EXPECT_VERIFIES(sigs.i_i(), code);
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(1, WASM_BRV(1, WASM_ZERO)));
+  EXPECT_FAILURE_INLINE(sigs.f_ff(), WASM_LOOP(1, WASM_BRV(1, WASM_ZERO)));
 }
 
 TEST_F(AstDecoderTest, ExprLoop2_unreachable) {
-  static const byte code[] = {kExprLoop,    2, kExprBr, 0,
-                              kExprI8Const, 0, kExprNop};
-  EXPECT_VERIFIES(sigs.i_i(), code);
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_LOOP(2, WASM_BR(0), WASM_NOP));
 }
 
 TEST_F(AstDecoderTest, ReturnVoid1) {
@@ -579,7 +740,7 @@
 }
 
 TEST_F(AstDecoderTest, ReturnVoid2) {
-  static const byte code[] = {kExprBlock, 1, kExprBr, 0, kExprNop};
+  static const byte code[] = {kExprBlock, kExprBr, ARITY_0, DEPTH_0, kExprEnd};
   EXPECT_VERIFIES(sigs.v_v(), code);
   EXPECT_FAILURE(sigs.i_i(), code);
   EXPECT_FAILURE(sigs.i_f(), code);
@@ -598,67 +759,85 @@
 TEST_F(AstDecoderTest, Unreachable1) {
   EXPECT_VERIFIES_INLINE(sigs.v_v(), kExprUnreachable);
   EXPECT_VERIFIES_INLINE(sigs.v_v(), kExprUnreachable, kExprUnreachable);
-  EXPECT_VERIFIES_INLINE(sigs.v_v(),
-                         WASM_BLOCK(2, WASM_UNREACHABLE, WASM_ZERO));
-  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_BLOCK(2, WASM_BR(0), WASM_ZERO));
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B2(WASM_UNREACHABLE, WASM_ZERO));
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B2(WASM_BR(0), WASM_ZERO));
   EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(2, WASM_UNREACHABLE, WASM_ZERO));
   EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(2, WASM_BR(0), WASM_ZERO));
 }
 
-TEST_F(AstDecoderTest, Codeiness) {
-  VERIFY(kExprLoop, 2,                       // --
-         kExprSetLocal, 0, kExprI8Const, 0,  // --
-         kExprBr, 0, kExprNop);              // --
+TEST_F(AstDecoderTest, Unreachable_binop) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_I32_AND(WASM_ZERO, WASM_UNREACHABLE));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_I32_AND(WASM_UNREACHABLE, WASM_ZERO));
 }
 
-TEST_F(AstDecoderTest, ExprIf1) {
-  VERIFY(kExprIf, kExprGetLocal, 0, kExprI8Const, 0, kExprI8Const, 1);
-  VERIFY(kExprIf, kExprGetLocal, 0, kExprGetLocal, 0, kExprGetLocal, 0);
-  VERIFY(kExprIf, kExprGetLocal, 0, kExprI32Add, kExprGetLocal, 0,
-         kExprGetLocal, 0, kExprI8Const, 1);
+TEST_F(AstDecoderTest, Unreachable_select) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(),
+                         WASM_SELECT(WASM_UNREACHABLE, WASM_ZERO, WASM_ZERO));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(),
+                         WASM_SELECT(WASM_ZERO, WASM_UNREACHABLE, WASM_ZERO));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(),
+                         WASM_SELECT(WASM_ZERO, WASM_ZERO, WASM_UNREACHABLE));
 }
 
-TEST_F(AstDecoderTest, ExprIf_off_end) {
-  static const byte kCode[] = {kExprIf, kExprGetLocal, 0, kExprGetLocal,
-                               0,       kExprGetLocal, 0};
-  for (size_t len = 1; len < arraysize(kCode); len++) {
+TEST_F(AstDecoderTest, If1) {
+  EXPECT_VERIFIES_INLINE(
+      sigs.i_i(), WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_I8(9), WASM_I8(8)));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_I8(9),
+                                                  WASM_GET_LOCAL(0)));
+  EXPECT_VERIFIES_INLINE(
+      sigs.i_i(),
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_I8(8)));
+}
+
+TEST_F(AstDecoderTest, If_off_end) {
+  static const byte kCode[] = {
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_GET_LOCAL(0))};
+  for (size_t len = 3; len < arraysize(kCode); len++) {
     Verify(kError, sigs.i_i(), kCode, kCode + len);
   }
 }
 
-TEST_F(AstDecoderTest, ExprIf_type) {
-  {
-    // float|double ? 1 : 2
-    static const byte kCode[] = {kExprIfElse, kExprGetLocal, 0, kExprI8Const,
-                                 1,           kExprI8Const,  2};
-    EXPECT_FAILURE(sigs.i_f(), kCode);
-    EXPECT_FAILURE(sigs.i_d(), kCode);
-  }
-  {
-    // 1 ? float|double : 2
-    static const byte kCode[] = {kExprIfElse, kExprI8Const, 1, kExprGetLocal,
-                                 0,           kExprI8Const, 2};
-    EXPECT_FAILURE(sigs.i_f(), kCode);
-    EXPECT_FAILURE(sigs.i_d(), kCode);
-  }
-  {
-    // stmt ? 0 : 1
-    static const byte kCode[] = {kExprIfElse, kExprNop,     kExprI8Const,
-                                 0,           kExprI8Const, 1};
-    EXPECT_FAILURE(sigs.i_i(), kCode);
-  }
-  {
-    // 0 ? stmt : 1
-    static const byte kCode[] = {kExprIfElse, kExprI8Const, 0,
-                                 kExprNop,    kExprI8Const, 1};
-    EXPECT_FAILURE(sigs.i_i(), kCode);
-  }
-  {
-    // 0 ? 1 : stmt
-    static const byte kCode[] = {kExprIfElse, kExprI8Const, 0, kExprI8Const, 1,
-                                 0,           kExprBlock};
-    EXPECT_FAILURE(sigs.i_i(), kCode);
-  }
+TEST_F(AstDecoderTest, If_type1) {
+  // float|double ? 1 : 2
+  static const byte kCode[] = {
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_I8(0), WASM_I8(2))};
+  EXPECT_VERIFIES(sigs.i_i(), kCode);
+  EXPECT_FAILURE(sigs.i_f(), kCode);
+  EXPECT_FAILURE(sigs.i_d(), kCode);
+}
+
+TEST_F(AstDecoderTest, If_type2) {
+  // 1 ? float|double : 2
+  static const byte kCode[] = {
+      WASM_IF_ELSE(WASM_I8(1), WASM_GET_LOCAL(0), WASM_I8(1))};
+  EXPECT_VERIFIES(sigs.i_i(), kCode);
+  EXPECT_FAILURE(sigs.i_f(), kCode);
+  EXPECT_FAILURE(sigs.i_d(), kCode);
+}
+
+TEST_F(AstDecoderTest, If_type3) {
+  // stmt ? 0 : 1
+  static const byte kCode[] = {WASM_IF_ELSE(WASM_NOP, WASM_I8(0), WASM_I8(1))};
+  EXPECT_FAILURE(sigs.i_i(), kCode);
+  EXPECT_FAILURE(sigs.i_f(), kCode);
+  EXPECT_FAILURE(sigs.i_d(), kCode);
+}
+
+TEST_F(AstDecoderTest, If_type4) {
+  // 0 ? stmt : 1
+  static const byte kCode[] = {
+      WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_NOP, WASM_I8(1))};
+  EXPECT_FAILURE(sigs.i_i(), kCode);
+  EXPECT_FAILURE(sigs.i_f(), kCode);
+  EXPECT_FAILURE(sigs.i_d(), kCode);
+}
+
+TEST_F(AstDecoderTest, If_type5) {
+  // 0 ? 1 : stmt
+  static const byte kCode[] = {WASM_IF_ELSE(WASM_ZERO, WASM_I8(1), WASM_NOP)};
+  EXPECT_FAILURE(sigs.i_i(), kCode);
+  EXPECT_FAILURE(sigs.i_f(), kCode);
+  EXPECT_FAILURE(sigs.i_d(), kCode);
 }
 
 TEST_F(AstDecoderTest, Int64Local_param) {
@@ -669,8 +848,7 @@
   for (byte i = 1; i < 8; i++) {
     AddLocals(kAstI64, 1);
     for (byte j = 0; j < i; j++) {
-      byte code[] = {kExprGetLocal, j};
-      EXPECT_VERIFIES(sigs.l_v(), code);
+      EXPECT_VERIFIES_INLINE(sigs.l_v(), WASM_GET_LOCAL(j));
     }
   }
 }
@@ -737,7 +915,7 @@
   VERIFY(WASM_IF(WASM_GET_LOCAL(0), WASM_NOP));
   VERIFY(WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_NOP, WASM_NOP));
   VERIFY(WASM_NOP);
-  VERIFY(WASM_BLOCK(1, WASM_NOP));
+  VERIFY(B1(WASM_NOP));
   VERIFY(WASM_LOOP(1, WASM_NOP));
   VERIFY(WASM_LOOP(1, WASM_BREAK(0)));
   VERIFY(WASM_LOOP(1, WASM_CONTINUE(0)));
@@ -760,30 +938,30 @@
 }
 
 TEST_F(AstDecoderTest, MacrosVariadic) {
-  VERIFY(WASM_BLOCK(2, WASM_NOP, WASM_NOP));
-  VERIFY(WASM_BLOCK(3, WASM_NOP, WASM_NOP, WASM_NOP));
+  VERIFY(B2(WASM_NOP, WASM_NOP));
+  VERIFY(B3(WASM_NOP, WASM_NOP, WASM_NOP));
   VERIFY(WASM_LOOP(2, WASM_NOP, WASM_NOP));
   VERIFY(WASM_LOOP(3, WASM_NOP, WASM_NOP, WASM_NOP));
 }
 
 TEST_F(AstDecoderTest, MacrosNestedBlocks) {
-  VERIFY(WASM_BLOCK(2, WASM_NOP, WASM_BLOCK(2, WASM_NOP, WASM_NOP)));
-  VERIFY(WASM_BLOCK(3, WASM_NOP,                          // --
-                    WASM_BLOCK(2, WASM_NOP, WASM_NOP),    // --
-                    WASM_BLOCK(2, WASM_NOP, WASM_NOP)));  // --
-  VERIFY(WASM_BLOCK(1, WASM_BLOCK(1, WASM_BLOCK(2, WASM_NOP, WASM_NOP))));
+  VERIFY(B2(WASM_NOP, B2(WASM_NOP, WASM_NOP)));
+  VERIFY(B3(WASM_NOP,                  // --
+            B2(WASM_NOP, WASM_NOP),    // --
+            B2(WASM_NOP, WASM_NOP)));  // --
+  VERIFY(B1(B1(B2(WASM_NOP, WASM_NOP))));
 }
 
 TEST_F(AstDecoderTest, MultipleReturn) {
   static LocalType kIntTypes5[] = {kAstI32, kAstI32, kAstI32, kAstI32, kAstI32};
   FunctionSig sig_ii_v(2, 0, kIntTypes5);
-  EXPECT_VERIFIES_INLINE(&sig_ii_v, WASM_RETURN(WASM_ZERO, WASM_ONE));
-  EXPECT_FAILURE_INLINE(&sig_ii_v, WASM_RETURN(WASM_ZERO));
+  EXPECT_VERIFIES_INLINE(&sig_ii_v, WASM_RETURNN(2, WASM_ZERO, WASM_ONE));
+  EXPECT_FAILURE_INLINE(&sig_ii_v, WASM_RETURNN(1, WASM_ZERO));
 
   FunctionSig sig_iii_v(3, 0, kIntTypes5);
   EXPECT_VERIFIES_INLINE(&sig_iii_v,
-                         WASM_RETURN(WASM_ZERO, WASM_ONE, WASM_I8(44)));
-  EXPECT_FAILURE_INLINE(&sig_iii_v, WASM_RETURN(WASM_ZERO, WASM_ONE));
+                         WASM_RETURNN(3, WASM_ZERO, WASM_ONE, WASM_I8(44)));
+  EXPECT_FAILURE_INLINE(&sig_iii_v, WASM_RETURNN(2, WASM_ZERO, WASM_ONE));
 }
 
 TEST_F(AstDecoderTest, MultipleReturn_fallthru) {
@@ -887,78 +1065,57 @@
 }
 
 TEST_F(AstDecoderTest, GrowMemory) {
-  byte code[] = {kExprGrowMemory, kExprGetLocal, 0};
+  byte code[] = {WASM_UNOP(kExprGrowMemory, WASM_GET_LOCAL(0))};
   EXPECT_VERIFIES(sigs.i_i(), code);
   EXPECT_FAILURE(sigs.i_d(), code);
 }
 
 TEST_F(AstDecoderTest, LoadMemOffset) {
   for (int offset = 0; offset < 128; offset += 7) {
-    byte code[] = {kExprI32LoadMem, ZERO_ALIGNMENT, static_cast<byte>(offset),
-                   kExprI8Const, 0};
+    byte code[] = {kExprI8Const, 0, kExprI32LoadMem, ZERO_ALIGNMENT,
+                   static_cast<byte>(offset)};
     EXPECT_VERIFIES(sigs.i_i(), code);
   }
 }
 
 TEST_F(AstDecoderTest, StoreMemOffset) {
   for (int offset = 0; offset < 128; offset += 7) {
-    byte code[] = {
-        kExprI32StoreMem, 0, static_cast<byte>(offset), kExprI8Const, 0,
-        kExprI8Const,     0};
+    byte code[] = {WASM_STORE_MEM_OFFSET(MachineType::Int32(), offset,
+                                         WASM_ZERO, WASM_ZERO)};
     EXPECT_VERIFIES(sigs.i_i(), code);
   }
 }
 
-TEST_F(AstDecoderTest, LoadMemOffset_varint) {
-  byte code1[] = {kExprI32LoadMem, ZERO_ALIGNMENT, ZERO_OFFSET, kExprI8Const,
-                  0};
-  byte code2[] = {kExprI32LoadMem, ZERO_ALIGNMENT, 0x80, 1, kExprI8Const, 0};
-  byte code3[] = {
-      kExprI32LoadMem, ZERO_ALIGNMENT, 0x81, 0x82, 5, kExprI8Const, 0};
-  byte code4[] = {
-      kExprI32LoadMem, ZERO_ALIGNMENT, 0x83, 0x84, 0x85, 7, kExprI8Const, 0};
+#define BYTE0(x) ((x)&0x7F)
+#define BYTE1(x) ((x >> 7) & 0x7F)
+#define BYTE2(x) ((x >> 14) & 0x7F)
+#define BYTE3(x) ((x >> 21) & 0x7F)
 
-  EXPECT_VERIFIES(sigs.i_i(), code1);
-  EXPECT_VERIFIES(sigs.i_i(), code2);
-  EXPECT_VERIFIES(sigs.i_i(), code3);
-  EXPECT_VERIFIES(sigs.i_i(), code4);
+#define VARINT1(x) BYTE0(x)
+#define VARINT2(x) BYTE0(x) | 0x80, BYTE1(x)
+#define VARINT3(x) BYTE0(x) | 0x80, BYTE1(x) | 0x80, BYTE2(x)
+#define VARINT4(x) BYTE0(x) | 0x80, BYTE1(x) | 0x80, BYTE2(x) | 0x80, BYTE3(x)
+
+TEST_F(AstDecoderTest, LoadMemOffset_varint) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_ZERO, kExprI32LoadMem, ZERO_ALIGNMENT,
+                         VARINT1(0x45));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_ZERO, kExprI32LoadMem, ZERO_ALIGNMENT,
+                         VARINT2(0x3999));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_ZERO, kExprI32LoadMem, ZERO_ALIGNMENT,
+                         VARINT3(0x344445));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_ZERO, kExprI32LoadMem, ZERO_ALIGNMENT,
+                         VARINT4(0x36666667));
 }
 
 TEST_F(AstDecoderTest, StoreMemOffset_varint) {
-  byte code1[] = {
-      kExprI32StoreMem, ZERO_ALIGNMENT, 0, kExprI8Const, 0, kExprI8Const, 0};
-  byte code2[] = {kExprI32StoreMem,
-                  ZERO_ALIGNMENT,
-                  0x80,
-                  1,
-                  kExprI8Const,
-                  0,
-                  kExprI8Const,
-                  0};
-  byte code3[] = {kExprI32StoreMem,
-                  ZERO_ALIGNMENT,
-                  0x81,
-                  0x82,
-                  5,
-                  kExprI8Const,
-                  0,
-                  kExprI8Const,
-                  0};
-  byte code4[] = {kExprI32StoreMem,
-                  ZERO_ALIGNMENT,
-                  0x83,
-                  0x84,
-                  0x85,
-                  7,
-                  kExprI8Const,
-                  0,
-                  kExprI8Const,
-                  0};
-
-  EXPECT_VERIFIES(sigs.i_i(), code1);
-  EXPECT_VERIFIES(sigs.i_i(), code2);
-  EXPECT_VERIFIES(sigs.i_i(), code3);
-  EXPECT_VERIFIES(sigs.i_i(), code4);
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_ZERO, WASM_ZERO, kExprI32StoreMem,
+                         ZERO_ALIGNMENT, VARINT1(0x33));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_ZERO, WASM_ZERO, kExprI32StoreMem,
+                         ZERO_ALIGNMENT, VARINT2(0x1111));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_ZERO, WASM_ZERO, kExprI32StoreMem,
+                         ZERO_ALIGNMENT, VARINT3(0x222222));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(), WASM_ZERO, WASM_ZERO, kExprI32StoreMem,
+                         ZERO_ALIGNMENT, VARINT4(0x44444444));
 }
 
 TEST_F(AstDecoderTest, AllLoadMemCombinations) {
@@ -966,9 +1123,7 @@
     LocalType local_type = kLocalTypes[i];
     for (size_t j = 0; j < arraysize(machineTypes); j++) {
       MachineType mem_type = machineTypes[j];
-      byte code[] = {
-          static_cast<byte>(WasmOpcodes::LoadStoreOpcodeOf(mem_type, false)),
-          ZERO_ALIGNMENT, ZERO_OFFSET, kExprI8Const, 0};
+      byte code[] = {WASM_LOAD_MEM(mem_type, WASM_ZERO)};
       FunctionSig sig(1, 0, &local_type);
       if (local_type == WasmOpcodes::LocalTypeFor(mem_type)) {
         EXPECT_VERIFIES(&sig, code);
@@ -984,14 +1139,7 @@
     LocalType local_type = kLocalTypes[i];
     for (size_t j = 0; j < arraysize(machineTypes); j++) {
       MachineType mem_type = machineTypes[j];
-      byte code[] = {
-          static_cast<byte>(WasmOpcodes::LoadStoreOpcodeOf(mem_type, true)),
-          ZERO_ALIGNMENT,
-          ZERO_OFFSET,
-          kExprI8Const,
-          0,
-          kExprGetLocal,
-          0};
+      byte code[] = {WASM_STORE_MEM(mem_type, WASM_ZERO, WASM_GET_LOCAL(0))};
       FunctionSig sig(0, 1, &local_type);
       if (local_type == WasmOpcodes::LocalTypeFor(mem_type)) {
         EXPECT_VERIFIES(&sig, code);
@@ -1002,7 +1150,6 @@
   }
 }
 
-
 namespace {
 // A helper for tests that require a module environment for functions and
 // globals.
@@ -1024,12 +1171,24 @@
     return static_cast<byte>(mod.signatures.size() - 1);
   }
   byte AddFunction(FunctionSig* sig) {
-    mod.functions.push_back({sig, 0, 0, 0, 0, 0, 0, 0, false, false});
+    mod.functions.push_back({sig,      // sig
+                             0,        // func_index
+                             0,        // sig_index
+                             0,        // name_offset
+                             0,        // name_length
+                             0,        // code_start_offset
+                             0,        // code_end_offset
+                             false});  // exported
     CHECK(mod.functions.size() <= 127);
     return static_cast<byte>(mod.functions.size() - 1);
   }
   byte AddImport(FunctionSig* sig) {
-    mod.import_table.push_back({sig, 0, 0});
+    mod.import_table.push_back({sig,  // sig
+                                0,    // sig_index
+                                0,    // module_name_offset
+                                0,    // module_name_length
+                                0,    // function_name_offset
+                                0});  // function_name_length
     CHECK(mod.import_table.size() <= 127);
     return static_cast<byte>(mod.import_table.size() - 1);
   }
@@ -1048,9 +1207,9 @@
   module_env.AddFunction(sigs.i_i());
   module_env.AddFunction(sigs.i_ii());
 
-  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_FUNCTION(0));
-  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_FUNCTION(1, WASM_I8(27)));
-  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_FUNCTION(2, WASM_I8(37), WASM_I8(77)));
+  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_FUNCTION0(0));
+  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_FUNCTION1(1, WASM_I8(27)));
+  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_FUNCTION2(2, WASM_I8(37), WASM_I8(77)));
 }
 
 TEST_F(AstDecoderTest, CallsWithTooFewArguments) {
@@ -1063,35 +1222,8 @@
   module_env.AddFunction(sigs.f_ff());
 
   EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION0(0));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(1, WASM_ZERO));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(2, WASM_GET_LOCAL(0)));
-}
-
-TEST_F(AstDecoderTest, CallsWithSpilloverArgs) {
-  static LocalType a_i_ff[] = {kAstI32, kAstF32, kAstF32};
-  FunctionSig sig_i_ff(1, 2, a_i_ff);
-
-  TestModuleEnv module_env;
-  module = &module_env;
-
-  module_env.AddFunction(&sig_i_ff);
-
-  EXPECT_VERIFIES_INLINE(sigs.i_i(),
-                         WASM_CALL_FUNCTION(0, WASM_F32(0.1), WASM_F32(0.1)));
-
-  EXPECT_VERIFIES_INLINE(sigs.i_ff(),
-                         WASM_CALL_FUNCTION(0, WASM_F32(0.1), WASM_F32(0.1)));
-
-  EXPECT_FAILURE_INLINE(sigs.f_ff(),
-                        WASM_CALL_FUNCTION(0, WASM_F32(0.1), WASM_F32(0.1)));
-
-  EXPECT_FAILURE_INLINE(
-      sigs.i_i(),
-      WASM_CALL_FUNCTION(0, WASM_F32(0.1), WASM_F32(0.1), WASM_F32(0.2)));
-
-  EXPECT_VERIFIES_INLINE(
-      sigs.f_ff(),
-      WASM_CALL_FUNCTION(0, WASM_F32(0.1), WASM_F32(0.1), WASM_F32(11)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(1, WASM_ZERO));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(2, WASM_GET_LOCAL(0)));
 }
 
 TEST_F(AstDecoderTest, CallsWithMismatchedSigs2) {
@@ -1101,9 +1233,9 @@
 
   module_env.AddFunction(sigs.i_i());
 
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(0, WASM_I64V_1(17)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(0, WASM_F32(17.1)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(0, WASM_F64(17.1)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(0, WASM_I64V_1(17)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(0, WASM_F32(17.1)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(0, WASM_F64(17.1)));
 }
 
 TEST_F(AstDecoderTest, CallsWithMismatchedSigs3) {
@@ -1113,15 +1245,15 @@
 
   module_env.AddFunction(sigs.i_f());
 
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(0, WASM_I8(17)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(0, WASM_I64V_1(27)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(0, WASM_F64(37.2)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(0, WASM_I8(17)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(0, WASM_I64V_1(27)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(0, WASM_F64(37.2)));
 
   module_env.AddFunction(sigs.i_d());
 
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(1, WASM_I8(16)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(1, WASM_I64V_1(16)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION(1, WASM_F32(17.6)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(1, WASM_I8(16)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(1, WASM_I64V_1(16)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_FUNCTION1(1, WASM_F32(17.6)));
 }
 
 TEST_F(AstDecoderTest, SimpleIndirectCalls) {
@@ -1134,9 +1266,9 @@
   byte f2 = module_env.AddSignature(sigs.i_ii());
 
   EXPECT_VERIFIES_INLINE(sig, WASM_CALL_INDIRECT0(f0, WASM_ZERO));
-  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_INDIRECT(f1, WASM_ZERO, WASM_I8(22)));
+  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_INDIRECT1(f1, WASM_ZERO, WASM_I8(22)));
   EXPECT_VERIFIES_INLINE(
-      sig, WASM_CALL_INDIRECT(f2, WASM_ZERO, WASM_I8(32), WASM_I8(72)));
+      sig, WASM_CALL_INDIRECT2(f2, WASM_ZERO, WASM_I8(32), WASM_I8(72)));
 }
 
 TEST_F(AstDecoderTest, IndirectCallsOutOfBounds) {
@@ -1148,11 +1280,11 @@
   module_env.AddSignature(sigs.i_v());
   EXPECT_VERIFIES_INLINE(sig, WASM_CALL_INDIRECT0(0, WASM_ZERO));
 
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT(1, WASM_ZERO, WASM_I8(22)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT1(1, WASM_ZERO, WASM_I8(22)));
   module_env.AddSignature(sigs.i_i());
-  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_INDIRECT(1, WASM_ZERO, WASM_I8(27)));
+  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_INDIRECT1(1, WASM_ZERO, WASM_I8(27)));
 
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT(2, WASM_ZERO, WASM_I8(27)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT1(2, WASM_ZERO, WASM_I8(27)));
 }
 
 TEST_F(AstDecoderTest, IndirectCallsWithMismatchedSigs3) {
@@ -1162,10 +1294,11 @@
 
   byte f0 = module_env.AddFunction(sigs.i_f());
 
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT(f0, WASM_ZERO, WASM_I8(17)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT1(f0, WASM_ZERO, WASM_I8(17)));
   EXPECT_FAILURE_INLINE(sig,
-                        WASM_CALL_INDIRECT(f0, WASM_ZERO, WASM_I64V_1(27)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT(f0, WASM_ZERO, WASM_F64(37.2)));
+                        WASM_CALL_INDIRECT1(f0, WASM_ZERO, WASM_I64V_1(27)));
+  EXPECT_FAILURE_INLINE(sig,
+                        WASM_CALL_INDIRECT1(f0, WASM_ZERO, WASM_F64(37.2)));
 
   EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT0(f0, WASM_I8(17)));
   EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT0(f0, WASM_I64V_1(27)));
@@ -1173,10 +1306,11 @@
 
   byte f1 = module_env.AddFunction(sigs.i_d());
 
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT(f1, WASM_ZERO, WASM_I8(16)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT1(f1, WASM_ZERO, WASM_I8(16)));
   EXPECT_FAILURE_INLINE(sig,
-                        WASM_CALL_INDIRECT(f1, WASM_ZERO, WASM_I64V_1(16)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_INDIRECT(f1, WASM_ZERO, WASM_F32(17.6)));
+                        WASM_CALL_INDIRECT1(f1, WASM_ZERO, WASM_I64V_1(16)));
+  EXPECT_FAILURE_INLINE(sig,
+                        WASM_CALL_INDIRECT1(f1, WASM_ZERO, WASM_F32(17.6)));
 }
 
 TEST_F(AstDecoderTest, SimpleImportCalls) {
@@ -1189,8 +1323,8 @@
   byte f2 = module_env.AddImport(sigs.i_ii());
 
   EXPECT_VERIFIES_INLINE(sig, WASM_CALL_IMPORT0(f0));
-  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_IMPORT(f1, WASM_I8(22)));
-  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_IMPORT(f2, WASM_I8(32), WASM_I8(72)));
+  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_IMPORT1(f1, WASM_I8(22)));
+  EXPECT_VERIFIES_INLINE(sig, WASM_CALL_IMPORT2(f2, WASM_I8(32), WASM_I8(72)));
 }
 
 TEST_F(AstDecoderTest, ImportCallsWithMismatchedSigs3) {
@@ -1201,16 +1335,16 @@
   byte f0 = module_env.AddImport(sigs.i_f());
 
   EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT0(f0));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT(f0, WASM_I8(17)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT(f0, WASM_I64V_1(27)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT(f0, WASM_F64(37.2)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT1(f0, WASM_I8(17)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT1(f0, WASM_I64V_1(27)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT1(f0, WASM_F64(37.2)));
 
   byte f1 = module_env.AddImport(sigs.i_d());
 
   EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT0(f1));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT(f1, WASM_I8(16)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT(f1, WASM_I64V_1(16)));
-  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT(f1, WASM_F32(17.6)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT1(f1, WASM_I8(16)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT1(f1, WASM_I64V_1(16)));
+  EXPECT_FAILURE_INLINE(sig, WASM_CALL_IMPORT1(f1, WASM_F32(17.6)));
 }
 
 TEST_F(AstDecoderTest, Int32Globals) {
@@ -1334,11 +1468,29 @@
   }
 }
 
+TEST_F(AstDecoderTest, BreakEnd) {
+  EXPECT_VERIFIES_INLINE(sigs.i_i(),
+                         B1(WASM_I32_ADD(WASM_BRV(0, WASM_ZERO), WASM_ZERO)));
+  EXPECT_VERIFIES_INLINE(sigs.i_i(),
+                         B1(WASM_I32_ADD(WASM_ZERO, WASM_BRV(0, WASM_ZERO))));
+}
+
+TEST_F(AstDecoderTest, BreakIfBinop) {
+  EXPECT_FAILURE_INLINE(
+      sigs.i_i(),
+      WASM_BLOCK(
+          1, WASM_I32_ADD(WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO), WASM_ZERO)));
+  EXPECT_FAILURE_INLINE(
+      sigs.i_i(),
+      WASM_BLOCK(
+          1, WASM_I32_ADD(WASM_ZERO, WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO))));
+}
+
 TEST_F(AstDecoderTest, BreakNesting1) {
   for (int i = 0; i < 5; i++) {
     // (block[2] (loop[2] (if (get p) break[N]) (set p 1)) p)
     byte code[] = {WASM_BLOCK(
-        2, WASM_LOOP(2, WASM_IF(WASM_GET_LOCAL(0), WASM_BRV(i, WASM_ZERO)),
+        2, WASM_LOOP(2, WASM_IF(WASM_GET_LOCAL(0), WASM_BRV(i + 1, WASM_ZERO)),
                      WASM_SET_LOCAL(0, WASM_I8(1))),
         WASM_GET_LOCAL(0))};
     if (i < 3) {
@@ -1353,8 +1505,8 @@
   AddLocals(kAstI32, 1);
   for (int i = 0; i < 5; i++) {
     // (block[2] (loop[2] (if 0 break[N]) (set p 1)) (return p)) (11)
-    byte code[] = {WASM_BLOCK(1, WASM_LOOP(2, WASM_IF(WASM_ZERO, WASM_BREAK(i)),
-                                           WASM_SET_LOCAL(0, WASM_I8(1)))),
+    byte code[] = {B1(WASM_LOOP(2, WASM_IF(WASM_ZERO, WASM_BREAK(i + 1)),
+                                WASM_SET_LOCAL(0, WASM_I8(1)))),
                    WASM_I8(11)};
     if (i < 2) {
       EXPECT_VERIFIES(sigs.v_v(), code);
@@ -1367,8 +1519,8 @@
 TEST_F(AstDecoderTest, BreakNesting3) {
   for (int i = 0; i < 5; i++) {
     // (block[1] (loop[1] (block[1] (if 0 break[N])
-    byte code[] = {WASM_BLOCK(
-        1, WASM_LOOP(1, WASM_BLOCK(1, WASM_IF(WASM_ZERO, WASM_BREAK(i)))))};
+    byte code[] = {
+        WASM_BLOCK(1, WASM_LOOP(1, B1(WASM_IF(WASM_ZERO, WASM_BREAK(i + 1)))))};
     if (i < 3) {
       EXPECT_VERIFIES(sigs.v_v(), code);
     } else {
@@ -1378,41 +1530,42 @@
 }
 
 TEST_F(AstDecoderTest, BreaksWithMultipleTypes) {
-  EXPECT_FAILURE_INLINE(
-      sigs.i_i(),
-      WASM_BLOCK(2, WASM_BRV_IF_ZERO(0, WASM_I8(7)), WASM_F32(7.7)));
+  EXPECT_FAILURE_INLINE(sigs.i_i(),
+                        B2(WASM_BRV_IF_ZERO(0, WASM_I8(7)), WASM_F32(7.7)));
 
-  EXPECT_FAILURE_INLINE(sigs.i_i(),
-                        WASM_BLOCK(2, WASM_BRV_IF_ZERO(0, WASM_I8(7)),
-                                   WASM_BRV_IF_ZERO(0, WASM_F32(7.7))));
-  EXPECT_FAILURE_INLINE(sigs.i_i(),
-                        WASM_BLOCK(3, WASM_BRV_IF_ZERO(0, WASM_I8(8)),
-                                   WASM_BRV_IF_ZERO(0, WASM_I8(0)),
-                                   WASM_BRV_IF_ZERO(0, WASM_F32(7.7))));
-  EXPECT_FAILURE_INLINE(sigs.i_i(),
-                        WASM_BLOCK(3, WASM_BRV_IF_ZERO(0, WASM_I8(9)),
-                                   WASM_BRV_IF_ZERO(0, WASM_F32(7.7)),
-                                   WASM_BRV_IF_ZERO(0, WASM_I8(11))));
+  EXPECT_FAILURE_INLINE(sigs.i_i(), B2(WASM_BRV_IF_ZERO(0, WASM_I8(7)),
+                                       WASM_BRV_IF_ZERO(0, WASM_F32(7.7))));
+  EXPECT_FAILURE_INLINE(sigs.i_i(), B3(WASM_BRV_IF_ZERO(0, WASM_I8(8)),
+                                       WASM_BRV_IF_ZERO(0, WASM_I8(0)),
+                                       WASM_BRV_IF_ZERO(0, WASM_F32(7.7))));
+  EXPECT_FAILURE_INLINE(sigs.i_i(), B3(WASM_BRV_IF_ZERO(0, WASM_I8(9)),
+                                       WASM_BRV_IF_ZERO(0, WASM_F32(7.7)),
+                                       WASM_BRV_IF_ZERO(0, WASM_I8(11))));
 }
 
 TEST_F(AstDecoderTest, BreakNesting_6_levels) {
   for (int mask = 0; mask < 64; mask++) {
     for (int i = 0; i < 14; i++) {
       byte code[] = {
-          kExprBlock, 1,  // --
-          kExprBlock, 1,  // --
-          kExprBlock, 1,  // --
-          kExprBlock, 1,  // --
-          kExprBlock, 1,  // --
-          kExprBlock, 1,  // --
-          kExprBr,    static_cast<byte>(i),
-          kExprNop  // --
+          kExprBlock,                                 // --
+          kExprBlock,                                 // --
+          kExprBlock,                                 // --
+          kExprBlock,                                 // --
+          kExprBlock,                                 // --
+          kExprBlock,                                 // --
+          kExprBr,    ARITY_0, static_cast<byte>(i),  // --
+          kExprEnd,                                   // --
+          kExprEnd,                                   // --
+          kExprEnd,                                   // --
+          kExprEnd,                                   // --
+          kExprEnd,                                   // --
+          kExprEnd                                    // --
       };
 
       int depth = 6;
       for (int l = 0; l < 6; l++) {
         if (mask & (1 << l)) {
-          code[l * 2] = kExprLoop;
+          code[l] = kExprLoop;
           depth++;
         }
       }
@@ -1432,29 +1585,27 @@
     FunctionSig* sig = sigarray[i];
     // unify X and X => OK
     EXPECT_VERIFIES_INLINE(
-        sig, WASM_BLOCK(2, WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_GET_LOCAL(0))),
-                        WASM_GET_LOCAL(0)));
+        sig, B2(WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_GET_LOCAL(0))),
+                WASM_GET_LOCAL(0)));
   }
 
   // unify i32 and f32 => fail
   EXPECT_FAILURE_INLINE(
       sigs.i_i(),
-      WASM_BLOCK(2, WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_ZERO)), WASM_F32(1.2)));
+      B2(WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_ZERO)), WASM_F32(1.2)));
 
   // unify f64 and f64 => OK
   EXPECT_VERIFIES_INLINE(
       sigs.d_dd(),
-      WASM_BLOCK(2, WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_GET_LOCAL(0))),
-                 WASM_F64(1.2)));
+      B2(WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_GET_LOCAL(0))), WASM_F64(1.2)));
 }
 
 TEST_F(AstDecoderTest, ExprBreak_TypeCheckAll) {
   byte code1[] = {WASM_BLOCK(2,
                              WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_GET_LOCAL(0))),
                              WASM_GET_LOCAL(1))};
-  byte code2[] = {
-      WASM_BLOCK(2, WASM_IF(WASM_ZERO, WASM_BRV_IF_ZERO(0, WASM_GET_LOCAL(0))),
-                 WASM_GET_LOCAL(1))};
+  byte code2[] = {B2(WASM_IF(WASM_ZERO, WASM_BRV_IF_ZERO(0, WASM_GET_LOCAL(0))),
+                     WASM_GET_LOCAL(1))};
 
   for (size_t i = 0; i < arraysize(kLocalTypes); i++) {
     for (size_t j = 0; j < arraysize(kLocalTypes); j++) {
@@ -1479,14 +1630,12 @@
       LocalType storage[] = {kAstI32, kAstI32, type};
       FunctionSig sig(1, 2, storage);
 
-      byte code1[] = {
-          WASM_BLOCK(2, WASM_IF(WASM_ZERO, WASM_BRV(0, WASM_GET_LOCAL(which))),
-                     WASM_GET_LOCAL(which ^ 1))};
+      byte code1[] = {B2(WASM_IF(WASM_ZERO, WASM_BRV(1, WASM_GET_LOCAL(which))),
+                         WASM_GET_LOCAL(which ^ 1))};
       byte code2[] = {
-          WASM_LOOP(2, WASM_IF(WASM_ZERO, WASM_BRV(1, WASM_GET_LOCAL(which))),
+          WASM_LOOP(2, WASM_IF(WASM_ZERO, WASM_BRV(2, WASM_GET_LOCAL(which))),
                     WASM_GET_LOCAL(which ^ 1))};
 
-
       if (type == kAstI32) {
         EXPECT_VERIFIES(&sig, code1);
         EXPECT_VERIFIES(&sig, code2);
@@ -1499,8 +1648,7 @@
 }
 
 TEST_F(AstDecoderTest, ExprBrIf_cond_type) {
-  byte code[] = {
-      WASM_BLOCK(1, WASM_BRV_IF(0, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)))};
+  byte code[] = {B1(WASM_BRV_IF(0, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)))};
   for (size_t i = 0; i < arraysize(kLocalTypes); i++) {
     for (size_t j = 0; j < arraysize(kLocalTypes); j++) {
       LocalType types[] = {kLocalTypes[i], kLocalTypes[j]};
@@ -1516,9 +1664,8 @@
 }
 
 TEST_F(AstDecoderTest, ExprBrIf_val_type) {
-  byte code[] = {
-      WASM_BLOCK(2, WASM_BRV_IF(0, WASM_GET_LOCAL(1), WASM_GET_LOCAL(2)),
-                 WASM_GET_LOCAL(0))};
+  byte code[] = {B2(WASM_BRV_IF(0, WASM_GET_LOCAL(1), WASM_GET_LOCAL(2)),
+                    WASM_GET_LOCAL(0))};
   for (size_t i = 0; i < arraysize(kLocalTypes); i++) {
     for (size_t j = 0; j < arraysize(kLocalTypes); j++) {
       LocalType types[] = {kLocalTypes[i], kLocalTypes[i], kLocalTypes[j],
@@ -1541,8 +1688,8 @@
       LocalType storage[] = {kAstI32, kAstI32, type};
       FunctionSig sig(1, 2, storage);
 
-      byte code1[] = {WASM_BLOCK(2, WASM_BRV_IF_ZERO(0, WASM_GET_LOCAL(which)),
-                                 WASM_GET_LOCAL(which ^ 1))};
+      byte code1[] = {B2(WASM_BRV_IF_ZERO(0, WASM_GET_LOCAL(which)),
+                         WASM_GET_LOCAL(which ^ 1))};
       byte code2[] = {WASM_LOOP(2, WASM_BRV_IF_ZERO(1, WASM_GET_LOCAL(which)),
                                 WASM_GET_LOCAL(which ^ 1))};
 
@@ -1558,31 +1705,29 @@
 }
 
 TEST_F(AstDecoderTest, BrTable0) {
-  static byte code[] = {kExprBrTable, 0, 0};
+  static byte code[] = {kExprNop, kExprBrTable, 0, 0};
   EXPECT_FAILURE(sigs.v_v(), code);
 }
 
 TEST_F(AstDecoderTest, BrTable0b) {
-  static byte code[] = {kExprBrTable, 0, 0, kExprI32Const, 11};
+  static byte code[] = {kExprNop, kExprI32Const, 11, kExprBrTable, 0, 0};
   EXPECT_FAILURE(sigs.v_v(), code);
   EXPECT_FAILURE(sigs.i_i(), code);
 }
 
 TEST_F(AstDecoderTest, BrTable0c) {
-  static byte code[] = {kExprBrTable, 0, 1, 0, 0, kExprI32Const, 11};
+  static byte code[] = {kExprNop, kExprI32Const, 11, kExprBrTable, 0, 1, 0, 0};
   EXPECT_FAILURE(sigs.v_v(), code);
   EXPECT_FAILURE(sigs.i_i(), code);
 }
 
 TEST_F(AstDecoderTest, BrTable1a) {
-  static byte code[] = {
-      WASM_BLOCK(1, WASM_BR_TABLE(WASM_I8(67), 0, BR_TARGET(0)))};
+  static byte code[] = {B1(WASM_BR_TABLE(WASM_I8(67), 0, BR_TARGET(0)))};
   EXPECT_VERIFIES(sigs.v_v(), code);
 }
 
 TEST_F(AstDecoderTest, BrTable1b) {
-  static byte code[] = {
-      WASM_BLOCK(1, WASM_BR_TABLE(WASM_ZERO, 0, BR_TARGET(0)))};
+  static byte code[] = {B1(WASM_BR_TABLE(WASM_ZERO, 0, BR_TARGET(0)))};
   EXPECT_VERIFIES(sigs.v_v(), code);
   EXPECT_FAILURE(sigs.i_i(), code);
   EXPECT_FAILURE(sigs.f_ff(), code);
@@ -1591,7 +1736,7 @@
 
 TEST_F(AstDecoderTest, BrTable2a) {
   static byte code[] = {
-      WASM_BLOCK(1, WASM_BR_TABLE(WASM_I8(67), 1, BR_TARGET(0), BR_TARGET(0)))};
+      B1(WASM_BR_TABLE(WASM_I8(67), 1, BR_TARGET(0), BR_TARGET(0)))};
   EXPECT_VERIFIES(sigs.v_v(), code);
 }
 
@@ -1603,8 +1748,7 @@
 }
 
 TEST_F(AstDecoderTest, BrTable_off_end) {
-  static byte code[] = {
-      WASM_BLOCK(1, WASM_BR_TABLE(WASM_GET_LOCAL(0), 0, BR_TARGET(0)))};
+  static byte code[] = {B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 0, BR_TARGET(0)))};
   for (size_t len = 1; len < sizeof(code); len++) {
     Verify(kError, sigs.i_i(), code, code + len);
   }
@@ -1612,8 +1756,7 @@
 
 TEST_F(AstDecoderTest, BrTable_invalid_br1) {
   for (int depth = 0; depth < 4; depth++) {
-    byte code[] = {
-        WASM_BLOCK(1, WASM_BR_TABLE(WASM_GET_LOCAL(0), 0, BR_TARGET(depth)))};
+    byte code[] = {B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 0, BR_TARGET(depth)))};
     if (depth == 0) {
       EXPECT_VERIFIES(sigs.v_i(), code);
     } else {
@@ -1635,11 +1778,10 @@
 }
 
 TEST_F(AstDecoderTest, ExprBreakNesting1) {
-  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_BLOCK(1, WASM_BRV(0, WASM_ZERO)));
-  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_BLOCK(1, WASM_BR(0)));
-  EXPECT_VERIFIES_INLINE(sigs.v_v(),
-                         WASM_BLOCK(1, WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO)));
-  EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_BLOCK(1, WASM_BR_IF(0, WASM_ZERO)));
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B1(WASM_BRV(0, WASM_ZERO)));
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B1(WASM_BR(0)));
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B1(WASM_BRV_IF(0, WASM_ZERO, WASM_ZERO)));
+  EXPECT_VERIFIES_INLINE(sigs.v_v(), B1(WASM_BR_IF(0, WASM_ZERO)));
 
   EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BRV(0, WASM_ZERO)));
   EXPECT_VERIFIES_INLINE(sigs.v_v(), WASM_LOOP(1, WASM_BR(0)));
@@ -1714,7 +1856,6 @@
       WASM_SELECT(WASM_F32(9.9), WASM_GET_LOCAL(0), WASM_I64V_1(0)));
 }
 
-
 class WasmOpcodeLengthTest : public TestWithZone {
  public:
   WasmOpcodeLengthTest() : TestWithZone() {}
@@ -1734,16 +1875,16 @@
 
 TEST_F(WasmOpcodeLengthTest, Statements) {
   EXPECT_LENGTH(1, kExprNop);
-  EXPECT_LENGTH(2, kExprBlock);
-  EXPECT_LENGTH(2, kExprLoop);
+  EXPECT_LENGTH(1, kExprBlock);
+  EXPECT_LENGTH(1, kExprLoop);
   EXPECT_LENGTH(1, kExprIf);
-  EXPECT_LENGTH(1, kExprIfElse);
+  EXPECT_LENGTH(1, kExprElse);
+  EXPECT_LENGTH(1, kExprEnd);
   EXPECT_LENGTH(1, kExprSelect);
-  EXPECT_LENGTH(2, kExprBr);
-  EXPECT_LENGTH(2, kExprBrIf);
+  EXPECT_LENGTH(3, kExprBr);
+  EXPECT_LENGTH(3, kExprBrIf);
 }
 
-
 TEST_F(WasmOpcodeLengthTest, MiscExpressions) {
   EXPECT_LENGTH(2, kExprI8Const);
   EXPECT_LENGTH(5, kExprF32Const);
@@ -1752,15 +1893,14 @@
   EXPECT_LENGTH(2, kExprSetLocal);
   EXPECT_LENGTH(2, kExprLoadGlobal);
   EXPECT_LENGTH(2, kExprStoreGlobal);
-  EXPECT_LENGTH(2, kExprCallFunction);
-  EXPECT_LENGTH(2, kExprCallImport);
-  EXPECT_LENGTH(2, kExprCallIndirect);
+  EXPECT_LENGTH(3, kExprCallFunction);
+  EXPECT_LENGTH(3, kExprCallImport);
+  EXPECT_LENGTH(3, kExprCallIndirect);
   EXPECT_LENGTH(1, kExprIf);
-  EXPECT_LENGTH(1, kExprIfElse);
-  EXPECT_LENGTH(2, kExprBlock);
-  EXPECT_LENGTH(2, kExprLoop);
-  EXPECT_LENGTH(2, kExprBr);
-  EXPECT_LENGTH(2, kExprBrIf);
+  EXPECT_LENGTH(1, kExprBlock);
+  EXPECT_LENGTH(1, kExprLoop);
+  EXPECT_LENGTH(3, kExprBr);
+  EXPECT_LENGTH(3, kExprBrIf);
 }
 
 TEST_F(WasmOpcodeLengthTest, I32Const) {
@@ -1818,13 +1958,11 @@
   EXPECT_LENGTH(3, kExprF64StoreMem);
 }
 
-
 TEST_F(WasmOpcodeLengthTest, MiscMemExpressions) {
   EXPECT_LENGTH(1, kExprMemorySize);
   EXPECT_LENGTH(1, kExprGrowMemory);
 }
 
-
 TEST_F(WasmOpcodeLengthTest, SimpleExpressions) {
   EXPECT_LENGTH(1, kExprI32Add);
   EXPECT_LENGTH(1, kExprI32Sub);
@@ -1946,54 +2084,49 @@
   EXPECT_LENGTH(1, kExprI64ReinterpretF64);
 }
 
-
 class WasmOpcodeArityTest : public TestWithZone {
  public:
   WasmOpcodeArityTest() : TestWithZone() {}
-  TestModuleEnv module;
-  TestSignatures sigs;
 };
 
-#define EXPECT_ARITY(expected, ...)                                            \
-  {                                                                            \
-    static const byte code[] = {__VA_ARGS__};                                  \
-    EXPECT_EQ(expected, OpcodeArity(&module, sig, code, code + sizeof(code))); \
+#define EXPECT_ARITY(expected, ...)                              \
+  {                                                              \
+    static const byte code[] = {__VA_ARGS__};                    \
+    EXPECT_EQ(expected, OpcodeArity(code, code + sizeof(code))); \
   }
 
 TEST_F(WasmOpcodeArityTest, Control) {
-  FunctionSig* sig = sigs.v_v();
   EXPECT_ARITY(0, kExprNop);
 
   EXPECT_ARITY(0, kExprBlock, 0);
-  EXPECT_ARITY(1, kExprBlock, 1);
-  EXPECT_ARITY(2, kExprBlock, 2);
-  EXPECT_ARITY(5, kExprBlock, 5);
-  EXPECT_ARITY(10, kExprBlock, 10);
+  EXPECT_ARITY(0, kExprBlock, 1);
+  EXPECT_ARITY(0, kExprBlock, 2);
+  EXPECT_ARITY(0, kExprBlock, 5);
+  EXPECT_ARITY(0, kExprBlock, 10);
 
   EXPECT_ARITY(0, kExprLoop, 0);
-  EXPECT_ARITY(1, kExprLoop, 1);
-  EXPECT_ARITY(2, kExprLoop, 2);
-  EXPECT_ARITY(7, kExprLoop, 7);
-  EXPECT_ARITY(11, kExprLoop, 11);
+  EXPECT_ARITY(0, kExprLoop, 1);
+  EXPECT_ARITY(0, kExprLoop, 2);
+  EXPECT_ARITY(0, kExprLoop, 7);
+  EXPECT_ARITY(0, kExprLoop, 11);
 
-  EXPECT_ARITY(2, kExprIf);
-  EXPECT_ARITY(3, kExprIfElse);
   EXPECT_ARITY(3, kExprSelect);
 
-  EXPECT_ARITY(1, kExprBr);
-  EXPECT_ARITY(2, kExprBrIf);
+  EXPECT_ARITY(0, kExprBr);
+  EXPECT_ARITY(1, kExprBrIf);
+  EXPECT_ARITY(1, kExprBrTable);
+
+  EXPECT_ARITY(1, kExprBr, ARITY_1);
+  EXPECT_ARITY(2, kExprBrIf, ARITY_1);
+  EXPECT_ARITY(2, kExprBrTable, ARITY_1);
 
   {
-    sig = sigs.v_v();
-    EXPECT_ARITY(0, kExprReturn);
-    sig = sigs.i_i();
-    EXPECT_ARITY(1, kExprReturn);
+    EXPECT_ARITY(0, kExprReturn, ARITY_0);
+    EXPECT_ARITY(1, kExprReturn, ARITY_1);
   }
 }
 
-
 TEST_F(WasmOpcodeArityTest, Misc) {
-  FunctionSig* sig = sigs.v_v();
   EXPECT_ARITY(0, kExprI8Const);
   EXPECT_ARITY(0, kExprI32Const);
   EXPECT_ARITY(0, kExprF32Const);
@@ -2005,41 +2138,37 @@
   EXPECT_ARITY(1, kExprStoreGlobal);
 }
 
-
 TEST_F(WasmOpcodeArityTest, Calls) {
-  module.AddFunction(sigs.i_ii());
-  module.AddFunction(sigs.i_i());
-
-  module.AddSignature(sigs.f_ff());
-  module.AddSignature(sigs.i_d());
-
-  module.AddImport(sigs.f_ff());
-  module.AddImport(sigs.i_d());
-
   {
-    FunctionSig* sig = sigs.i_ii();
+    EXPECT_ARITY(2, kExprCallFunction, 2, 0);
+    EXPECT_ARITY(2, kExprCallImport, 2, 0);
+    EXPECT_ARITY(3, kExprCallIndirect, 2, 0);
 
-    EXPECT_ARITY(2, kExprCallFunction, 0);
-    EXPECT_ARITY(2, kExprCallImport, 0);
-    EXPECT_ARITY(3, kExprCallIndirect, 0);
-    EXPECT_ARITY(1, kExprBr);
-    EXPECT_ARITY(2, kExprBrIf);
+    EXPECT_ARITY(1, kExprBr, ARITY_1);
+    EXPECT_ARITY(2, kExprBrIf, ARITY_1);
+    EXPECT_ARITY(2, kExprBrTable, ARITY_1);
+
+    EXPECT_ARITY(0, kExprBr, ARITY_0);
+    EXPECT_ARITY(1, kExprBrIf, ARITY_0);
+    EXPECT_ARITY(1, kExprBrTable, ARITY_0);
   }
 
   {
-    FunctionSig* sig = sigs.v_v();
+    EXPECT_ARITY(1, kExprCallFunction, ARITY_1, 1);
+    EXPECT_ARITY(1, kExprCallImport, ARITY_1, 1);
+    EXPECT_ARITY(2, kExprCallIndirect, ARITY_1, 1);
 
-    EXPECT_ARITY(1, kExprCallFunction, 1);
-    EXPECT_ARITY(1, kExprCallImport, 1);
-    EXPECT_ARITY(2, kExprCallIndirect, 1);
-    EXPECT_ARITY(1, kExprBr);
-    EXPECT_ARITY(2, kExprBrIf);
+    EXPECT_ARITY(1, kExprBr, ARITY_1);
+    EXPECT_ARITY(2, kExprBrIf, ARITY_1);
+    EXPECT_ARITY(2, kExprBrTable, ARITY_1);
+
+    EXPECT_ARITY(0, kExprBr, ARITY_0);
+    EXPECT_ARITY(1, kExprBrIf, ARITY_0);
+    EXPECT_ARITY(1, kExprBrTable, ARITY_0);
   }
 }
 
-
 TEST_F(WasmOpcodeArityTest, LoadsAndStores) {
-  FunctionSig* sig = sigs.v_v();
   EXPECT_ARITY(1, kExprI32LoadMem8S);
   EXPECT_ARITY(1, kExprI32LoadMem8U);
   EXPECT_ARITY(1, kExprI32LoadMem16S);
@@ -2067,16 +2196,12 @@
   EXPECT_ARITY(2, kExprF64StoreMem);
 }
 
-
 TEST_F(WasmOpcodeArityTest, MiscMemExpressions) {
-  FunctionSig* sig = sigs.v_v();
   EXPECT_ARITY(0, kExprMemorySize);
   EXPECT_ARITY(1, kExprGrowMemory);
 }
 
-
 TEST_F(WasmOpcodeArityTest, SimpleExpressions) {
-  FunctionSig* sig = sigs.v_v();
   EXPECT_ARITY(2, kExprI32Add);
   EXPECT_ARITY(2, kExprI32Sub);
   EXPECT_ARITY(2, kExprI32Mul);
@@ -2246,7 +2371,7 @@
 
     LocalTypeMap map = Expand(decls);
     EXPECT_EQ(1, map.size());
-    EXPECT_EQ(type, map.at(0));
+    EXPECT_EQ(type, map[0]);
   }
 }
 
@@ -2297,7 +2422,7 @@
 TEST_F(LocalDeclDecoderTest, UseEncoder) {
   const byte* data = nullptr;
   const byte* end = nullptr;
-  LocalDeclEncoder local_decls;
+  LocalDeclEncoder local_decls(zone());
 
   local_decls.AddLocals(5, kAstF32);
   local_decls.AddLocals(1337, kAstI32);
diff --git a/test/unittests/wasm/encoder-unittest.cc b/test/unittests/wasm/encoder-unittest.cc
index 740c054..47885e6 100644
--- a/test/unittests/wasm/encoder-unittest.cc
+++ b/test/unittests/wasm/encoder-unittest.cc
@@ -9,6 +9,8 @@
 #include "src/wasm/ast-decoder.h"
 #include "src/wasm/encoder.h"
 
+#include "test/cctest/wasm/test-signatures.h"
+
 namespace v8 {
 namespace internal {
 namespace wasm {
@@ -17,202 +19,10 @@
  protected:
   void AddLocal(WasmFunctionBuilder* f, LocalType type) {
     uint16_t index = f->AddLocal(type);
-    const std::vector<uint8_t>& out_index = UnsignedLEB128From(index);
-    std::vector<uint8_t> code;
-    code.push_back(kExprGetLocal);
-    for (size_t i = 0; i < out_index.size(); i++) {
-      code.push_back(out_index.at(i));
-    }
-    uint32_t local_indices[] = {1};
-    f->EmitCode(&code[0], static_cast<uint32_t>(code.size()), local_indices, 1);
-  }
-
-  void CheckReadValue(uint8_t* leb_value, uint32_t expected_result,
-                      int expected_length,
-                      ReadUnsignedLEB128ErrorCode expected_error_code) {
-    int length;
-    uint32_t result;
-    ReadUnsignedLEB128ErrorCode error_code =
-        ReadUnsignedLEB128Operand(leb_value, leb_value + 5, &length, &result);
-    CHECK_EQ(error_code, expected_error_code);
-    if (error_code == 0) {
-      CHECK_EQ(result, expected_result);
-      CHECK_EQ(length, expected_length);
-    }
-  }
-
-  void CheckWriteValue(uint32_t input, int length, uint8_t* vals) {
-    const std::vector<uint8_t> result = UnsignedLEB128From(input);
-    CHECK_EQ(result.size(), length);
-    for (int i = 0; i < length; i++) {
-      CHECK_EQ(result.at(i), vals[i]);
-    }
+    f->EmitGetLocal(index);
   }
 };
 
-
-TEST_F(EncoderTest, Function_Builder_Variable_Indexing) {
-  base::AccountingAllocator allocator;
-  Zone zone(&allocator);
-  WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
-  uint16_t f_index = builder->AddFunction();
-  WasmFunctionBuilder* function = builder->FunctionAt(f_index);
-  uint16_t local_f32 = function->AddLocal(kAstF32);
-  uint16_t param_float32 = function->AddParam(kAstF32);
-  uint16_t local_i32 = function->AddLocal(kAstI32);
-  uint16_t local_f64 = function->AddLocal(kAstF64);
-  uint16_t local_i64 = function->AddLocal(kAstI64);
-  uint16_t param_int32 = function->AddParam(kAstI32);
-  uint16_t local_i32_2 = function->AddLocal(kAstI32);
-
-  byte code[] = {kExprGetLocal, static_cast<uint8_t>(param_float32)};
-  uint32_t local_indices[] = {1};
-  function->EmitCode(code, sizeof(code), local_indices, 1);
-  code[1] = static_cast<uint8_t>(param_int32);
-  function->EmitCode(code, sizeof(code), local_indices, 1);
-  code[1] = static_cast<uint8_t>(local_i32);
-  function->EmitCode(code, sizeof(code), local_indices, 1);
-  code[1] = static_cast<uint8_t>(local_i32_2);
-  function->EmitCode(code, sizeof(code), local_indices, 1);
-  code[1] = static_cast<uint8_t>(local_i64);
-  function->EmitCode(code, sizeof(code), local_indices, 1);
-  code[1] = static_cast<uint8_t>(local_f32);
-  function->EmitCode(code, sizeof(code), local_indices, 1);
-  code[1] = static_cast<uint8_t>(local_f64);
-  function->EmitCode(code, sizeof(code), local_indices, 1);
-
-  WasmFunctionEncoder* f = function->Build(&zone, builder);
-  ZoneVector<uint8_t> buffer_vector(f->HeaderSize() + f->BodySize(), &zone);
-  byte* buffer = &buffer_vector[0];
-  byte* header = buffer;
-  byte* body = buffer + f->HeaderSize();
-  f->Serialize(buffer, &header, &body);
-}
-
-
-TEST_F(EncoderTest, Function_Builder_Indexing_Variable_Width) {
-  base::AccountingAllocator allocator;
-  Zone zone(&allocator);
-  WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
-  uint16_t f_index = builder->AddFunction();
-  WasmFunctionBuilder* function = builder->FunctionAt(f_index);
-  for (size_t i = 0; i < 128; i++) {
-    AddLocal(function, kAstF32);
-  }
-  AddLocal(function, kAstI32);
-
-  WasmFunctionEncoder* f = function->Build(&zone, builder);
-  ZoneVector<uint8_t> buffer_vector(f->HeaderSize() + f->BodySize(), &zone);
-  byte* buffer = &buffer_vector[0];
-  byte* header = buffer;
-  byte* body = buffer + f->HeaderSize();
-  f->Serialize(buffer, &header, &body);
-  body = buffer + f->HeaderSize();
-}
-
-TEST_F(EncoderTest, Function_Builder_Block_Variable_Width) {
-  base::AccountingAllocator allocator;
-  Zone zone(&allocator);
-  WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
-  uint16_t f_index = builder->AddFunction();
-  WasmFunctionBuilder* function = builder->FunctionAt(f_index);
-  function->EmitWithVarInt(kExprBlock, 200);
-  for (int i = 0; i < 200; ++i) {
-    function->Emit(kExprNop);
-  }
-
-  WasmFunctionEncoder* f = function->Build(&zone, builder);
-  CHECK_EQ(f->BodySize(), 204);
-}
-
-TEST_F(EncoderTest, Function_Builder_EmitEditableVarIntImmediate) {
-  base::AccountingAllocator allocator;
-  Zone zone(&allocator);
-  WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
-  uint16_t f_index = builder->AddFunction();
-  WasmFunctionBuilder* function = builder->FunctionAt(f_index);
-  function->Emit(kExprLoop);
-  uint32_t offset = function->EmitEditableVarIntImmediate();
-  for (int i = 0; i < 200; ++i) {
-    function->Emit(kExprNop);
-  }
-  function->EditVarIntImmediate(offset, 200);
-
-  WasmFunctionEncoder* f = function->Build(&zone, builder);
-  CHECK_EQ(f->BodySize(), 204);
-}
-
-TEST_F(EncoderTest, Function_Builder_EmitEditableVarIntImmediate_Locals) {
-  base::AccountingAllocator allocator;
-  Zone zone(&allocator);
-  WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
-  uint16_t f_index = builder->AddFunction();
-  WasmFunctionBuilder* function = builder->FunctionAt(f_index);
-  function->Emit(kExprBlock);
-  uint32_t offset = function->EmitEditableVarIntImmediate();
-  for (int i = 0; i < 200; ++i) {
-    AddLocal(function, kAstI32);
-  }
-  function->EditVarIntImmediate(offset, 200);
-
-  WasmFunctionEncoder* f = function->Build(&zone, builder);
-  ZoneVector<uint8_t> buffer_vector(f->HeaderSize() + f->BodySize(), &zone);
-  byte* buffer = &buffer_vector[0];
-  byte* header = buffer;
-  byte* body = buffer + f->HeaderSize();
-  f->Serialize(buffer, &header, &body);
-  body = buffer + f->HeaderSize();
-
-  CHECK_EQ(f->BodySize(), 479);
-  const uint8_t varint200_low = (200 & 0x7f) | 0x80;
-  const uint8_t varint200_high = (200 >> 7) & 0x7f;
-  offset = 0;
-  CHECK_EQ(body[offset++], 1);  // Local decl count.
-  CHECK_EQ(body[offset++], varint200_low);
-  CHECK_EQ(body[offset++], varint200_high);
-  CHECK_EQ(body[offset++], kLocalI32);
-  CHECK_EQ(body[offset++], kExprBlock);
-  CHECK_EQ(body[offset++], varint200_low);
-  CHECK_EQ(body[offset++], varint200_high);
-  // GetLocal with one-byte indices.
-  for (int i = 0; i <= 127; ++i) {
-    CHECK_EQ(body[offset++], kExprGetLocal);
-    CHECK_EQ(body[offset++], i);
-  }
-  // GetLocal with two-byte indices.
-  for (int i = 128; i < 200; ++i) {
-    CHECK_EQ(body[offset++], kExprGetLocal);
-    CHECK_EQ(body[offset++], (i & 0x7f) | 0x80);
-    CHECK_EQ(body[offset++], (i >> 7) & 0x7f);
-  }
-  CHECK_EQ(offset, 479);
-}
-
-TEST_F(EncoderTest, LEB_Functions) {
-  byte leb_value[5] = {0, 0, 0, 0, 0};
-  CheckReadValue(leb_value, 0, 1, kNoError);
-  CheckWriteValue(0, 1, leb_value);
-  leb_value[0] = 23;
-  CheckReadValue(leb_value, 23, 1, kNoError);
-  CheckWriteValue(23, 1, leb_value);
-  leb_value[0] = 0x80;
-  leb_value[1] = 0x01;
-  CheckReadValue(leb_value, 128, 2, kNoError);
-  CheckWriteValue(128, 2, leb_value);
-  leb_value[0] = 0x80;
-  leb_value[1] = 0x80;
-  leb_value[2] = 0x80;
-  leb_value[3] = 0x80;
-  leb_value[4] = 0x01;
-  CheckReadValue(leb_value, 0x10000000, 5, kNoError);
-  CheckWriteValue(0x10000000, 5, leb_value);
-  leb_value[0] = 0x80;
-  leb_value[1] = 0x80;
-  leb_value[2] = 0x80;
-  leb_value[3] = 0x80;
-  leb_value[4] = 0x80;
-  CheckReadValue(leb_value, -1, -1, kInvalidLEB128);
-}
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/wasm/leb-helper-unittest.cc b/test/unittests/wasm/leb-helper-unittest.cc
new file mode 100644
index 0000000..ed9f0a3
--- /dev/null
+++ b/test/unittests/wasm/leb-helper-unittest.cc
@@ -0,0 +1,190 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "test/unittests/test-utils.h"
+
+#include "src/wasm/decoder.h"
+#include "src/wasm/leb-helper.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+class LEBHelperTest : public TestWithZone {};
+
+TEST_F(LEBHelperTest, sizeof_u32v) {
+  EXPECT_EQ(1, LEBHelper::sizeof_u32v(0));
+  EXPECT_EQ(1, LEBHelper::sizeof_u32v(1));
+  EXPECT_EQ(1, LEBHelper::sizeof_u32v(3));
+
+  for (uint32_t i = 4; i < 128; i++) {
+    EXPECT_EQ(1, LEBHelper::sizeof_u32v(i));
+  }
+
+  for (uint32_t i = (1 << 7); i < (1 << 9); i++) {
+    EXPECT_EQ(2, LEBHelper::sizeof_u32v(i));
+  }
+
+  for (uint32_t i = (1 << 14); i < (1 << 16); i += 33) {
+    EXPECT_EQ(3, LEBHelper::sizeof_u32v(i));
+  }
+
+  for (uint32_t i = (1 << 21); i < (1 << 24); i += 33999) {
+    EXPECT_EQ(4, LEBHelper::sizeof_u32v(i));
+  }
+
+  for (uint32_t i = (1 << 28); i < (1 << 31); i += 33997779) {
+    EXPECT_EQ(5, LEBHelper::sizeof_u32v(i));
+  }
+
+  EXPECT_EQ(5, LEBHelper::sizeof_u32v(0xFFFFFFFF));
+}
+
+TEST_F(LEBHelperTest, sizeof_i32v) {
+  EXPECT_EQ(1, LEBHelper::sizeof_i32v(0));
+  EXPECT_EQ(1, LEBHelper::sizeof_i32v(1));
+  EXPECT_EQ(1, LEBHelper::sizeof_i32v(3));
+
+  for (int32_t i = 0; i < (1 << 6); i++) {
+    EXPECT_EQ(1, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = (1 << 6); i < (1 << 8); i++) {
+    EXPECT_EQ(2, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = (1 << 13); i < (1 << 15); i += 31) {
+    EXPECT_EQ(3, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = (1 << 20); i < (1 << 22); i += 31991) {
+    EXPECT_EQ(4, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = (1 << 27); i < (1 << 29); i += 3199893) {
+    EXPECT_EQ(5, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = -(1 << 6); i <= 0; i++) {
+    EXPECT_EQ(1, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = -(1 << 13); i < -(1 << 6); i++) {
+    EXPECT_EQ(2, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = -(1 << 20); i < -(1 << 18); i += 11) {
+    EXPECT_EQ(3, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = -(1 << 27); i < -(1 << 25); i += 11999) {
+    EXPECT_EQ(4, LEBHelper::sizeof_i32v(i));
+  }
+
+  for (int32_t i = -(1 << 30); i < -(1 << 28); i += 1199999) {
+    EXPECT_EQ(5, LEBHelper::sizeof_i32v(i));
+  }
+}
+
+#define DECLARE_ENCODE_DECODE_CHECKER(ctype, name)                         \
+  static void CheckEncodeDecode_##name(ctype val) {                        \
+    static const int kSize = 16;                                           \
+    static byte buffer[kSize];                                             \
+    byte *ptr = buffer;                                                    \
+    LEBHelper::write_##name(&ptr, val);                                    \
+    EXPECT_EQ(LEBHelper::sizeof_##name(val),                               \
+              static_cast<size_t>(ptr - buffer));                          \
+    Decoder decoder(buffer, buffer + kSize);                               \
+    int length = 0;                                                        \
+    ctype result = decoder.checked_read_##name(buffer, 0, &length);        \
+    EXPECT_EQ(val, result);                                                \
+    EXPECT_EQ(LEBHelper::sizeof_##name(val), static_cast<size_t>(length)); \
+  }
+
+DECLARE_ENCODE_DECODE_CHECKER(int32_t, i32v)
+DECLARE_ENCODE_DECODE_CHECKER(uint32_t, u32v)
+DECLARE_ENCODE_DECODE_CHECKER(int64_t, i64v)
+DECLARE_ENCODE_DECODE_CHECKER(uint64_t, u64v)
+
+TEST_F(LEBHelperTest, WriteAndDecode_u32v) {
+  CheckEncodeDecode_u32v(0);
+  CheckEncodeDecode_u32v(1);
+  CheckEncodeDecode_u32v(5);
+  CheckEncodeDecode_u32v(99);
+  CheckEncodeDecode_u32v(298);
+  CheckEncodeDecode_u32v(87348723);
+  CheckEncodeDecode_u32v(77777);
+
+  for (uint32_t val = 0x3a; val != 0; val = val << 1) {
+    CheckEncodeDecode_u32v(val);
+  }
+}
+
+TEST_F(LEBHelperTest, WriteAndDecode_i32v) {
+  CheckEncodeDecode_i32v(0);
+  CheckEncodeDecode_i32v(1);
+  CheckEncodeDecode_i32v(5);
+  CheckEncodeDecode_i32v(99);
+  CheckEncodeDecode_i32v(298);
+  CheckEncodeDecode_i32v(87348723);
+  CheckEncodeDecode_i32v(77777);
+
+  CheckEncodeDecode_i32v(-2);
+  CheckEncodeDecode_i32v(-4);
+  CheckEncodeDecode_i32v(-59);
+  CheckEncodeDecode_i32v(-288);
+  CheckEncodeDecode_i32v(-12608);
+  CheckEncodeDecode_i32v(-87328723);
+  CheckEncodeDecode_i32v(-77377);
+
+  for (uint32_t val = 0x3a; val != 0; val = val << 1) {
+    CheckEncodeDecode_i32v(bit_cast<int32_t>(val));
+  }
+
+  for (uint32_t val = 0xFFFFFF3B; val != 0; val = val << 1) {
+    CheckEncodeDecode_i32v(bit_cast<int32_t>(val));
+  }
+}
+
+TEST_F(LEBHelperTest, WriteAndDecode_u64v) {
+  CheckEncodeDecode_u64v(0);
+  CheckEncodeDecode_u64v(1);
+  CheckEncodeDecode_u64v(5);
+  CheckEncodeDecode_u64v(99);
+  CheckEncodeDecode_u64v(298);
+  CheckEncodeDecode_u64v(87348723);
+  CheckEncodeDecode_u64v(77777);
+
+  for (uint64_t val = 0x3a; val != 0; val = val << 1) {
+    CheckEncodeDecode_u64v(val);
+  }
+}
+
+TEST_F(LEBHelperTest, WriteAndDecode_i64v) {
+  CheckEncodeDecode_i64v(0);
+  CheckEncodeDecode_i64v(1);
+  CheckEncodeDecode_i64v(5);
+  CheckEncodeDecode_i64v(99);
+  CheckEncodeDecode_i64v(298);
+  CheckEncodeDecode_i64v(87348723);
+  CheckEncodeDecode_i64v(77777);
+
+  CheckEncodeDecode_i64v(-2);
+  CheckEncodeDecode_i64v(-4);
+  CheckEncodeDecode_i64v(-59);
+  CheckEncodeDecode_i64v(-288);
+  CheckEncodeDecode_i64v(-87648723);
+  CheckEncodeDecode_i64v(-77377);
+
+  for (uint64_t val = 0x3a; val != 0; val = val << 1) {
+    CheckEncodeDecode_i64v(bit_cast<int64_t>(val));
+  }
+
+  for (uint64_t val = 0xFFFFFFFFFFFFFF3B; val != 0; val = val << 1) {
+    CheckEncodeDecode_i64v(bit_cast<int64_t>(val));
+  }
+}
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/wasm/loop-assignment-analysis-unittest.cc b/test/unittests/wasm/loop-assignment-analysis-unittest.cc
index e77c1cf..7d97c50 100644
--- a/test/unittests/wasm/loop-assignment-analysis-unittest.cc
+++ b/test/unittests/wasm/loop-assignment-analysis-unittest.cc
@@ -32,14 +32,12 @@
   }
 };
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, Empty0) {
   byte code[] = { 0 };
   BitVector* assigned = Analyze(code, code);
   CHECK_NULL(assigned);
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, Empty1) {
   byte code[] = {kExprLoop, 0};
   for (int i = 0; i < 5; i++) {
@@ -51,7 +49,6 @@
   }
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, One) {
   num_locals = 5;
   for (int i = 0; i < 5; i++) {
@@ -63,7 +60,6 @@
   }
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, OneBeyond) {
   num_locals = 5;
   for (int i = 0; i < 5; i++) {
@@ -75,7 +71,6 @@
   }
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, Two) {
   num_locals = 5;
   for (int i = 0; i < 5; i++) {
@@ -90,7 +85,6 @@
   }
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, NestedIf) {
   num_locals = 5;
   for (int i = 0; i < 5; i++) {
@@ -104,14 +98,12 @@
   }
 }
 
-
 static byte LEBByte(uint32_t val, byte which) {
   byte b = (val >> (which * 7)) & 0x7F;
   if (val >> ((which + 1) * 7)) b |= 0x80;
   return b;
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, BigLocal) {
   num_locals = 65000;
   for (int i = 13; i < 65000; i = static_cast<int>(i * 1.5)) {
@@ -133,7 +125,6 @@
   }
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, Break) {
   num_locals = 3;
   byte code[] = {
@@ -147,7 +138,6 @@
   }
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, Loop1) {
   num_locals = 5;
   byte code[] = {
@@ -164,7 +154,6 @@
   }
 }
 
-
 TEST_F(WasmLoopAssignmentAnalyzerTest, Loop2) {
   num_locals = 6;
   const byte kIter = 0;
@@ -184,14 +173,13 @@
       WASM_STORE_MEM(MachineType::Float32(), WASM_ZERO, WASM_GET_LOCAL(kSum)),
       WASM_GET_LOCAL(kIter))};
 
-  BitVector* assigned = Analyze(code + 2, code + arraysize(code));
+  BitVector* assigned = Analyze(code + 1, code + arraysize(code));
   for (int j = 0; j < assigned->length(); j++) {
     bool expected = j == kIter || j == kSum;
     CHECK_EQ(expected, assigned->Contains(j));
   }
 }
 
-
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/wasm/module-decoder-unittest.cc b/test/unittests/wasm/module-decoder-unittest.cc
index 44e7865..7090c1f 100644
--- a/test/unittests/wasm/module-decoder-unittest.cc
+++ b/test/unittests/wasm/module-decoder-unittest.cc
@@ -13,18 +13,34 @@
 namespace wasm {
 
 #define EMPTY_FUNCTION(sig_index) 0, SIG_INDEX(sig_index), U16_LE(0)
-#define EMPTY_FUNCTION_SIZE ((size_t)5)
+#define SIZEOF_EMPTY_FUNCTION ((size_t)5)
 #define EMPTY_BODY 0
-#define EMPTY_BODY_SIZE ((size_t)1)
+#define SIZEOF_EMPTY_BODY ((size_t)1)
 #define NOP_BODY 2, 0, kExprNop
-#define NOP_BODY_SIZE ((size_t)3)
-#define VOID_VOID_SIG 0, kLocalVoid
-#define VOID_VOID_SIG_SIZE ((size_t)2)
-#define INT_INT_SIG 1, kLocalI32, kLocalI32
-#define INT_INT_SIG_SIZE ((size_t)3)
+#define SIZEOF_NOP_BODY ((size_t)3)
 
-#define SECTION(NAME, EXTRA_SIZE) \
-  U32V_1(WASM_SECTION_##NAME##_SIZE + (EXTRA_SIZE)), WASM_SECTION_##NAME
+#define SIG_ENTRY_i_i SIG_ENTRY_x_x(kLocalI32, kLocalI32)
+
+#define UNKNOWN_EMPTY_SECTION_NAME 1, '\0'
+#define UNKNOWN_SECTION_NAME 4, 'l', 'u', 'l', 'z'
+
+#define SECTION(NAME, EXTRA_SIZE) WASM_SECTION_##NAME, U32V_1(EXTRA_SIZE)
+
+#define SIGNATURES_SECTION(count, ...) \
+  SECTION(SIGNATURES, 1 + 3 * (count)), U32V_1(count), __VA_ARGS__
+#define FUNCTION_SIGNATURES_SECTION(count, ...) \
+  SECTION(FUNCTION_SIGNATURES, 1 + (count)), U32V_1(count), __VA_ARGS__
+
+#define FOO_STRING 3, 'f', 'o', 'o'
+#define NO_LOCAL_NAMES 0
+
+#define EMPTY_SIGNATURES_SECTION SECTION(SIGNATURES, 1), 0
+#define EMPTY_FUNCTION_SIGNATURES_SECTION SECTION(FUNCTION_SIGNATURES, 1), 0
+#define EMPTY_FUNCTION_BODIES_SECTION SECTION(FUNCTION_BODIES, 1), 0
+#define EMPTY_NAMES_SECTION SECTION(NAMES, 1), 0
+
+#define SIGNATURES_SECTION_VOID_VOID \
+  SECTION(SIGNATURES, 1 + SIZEOF_SIG_ENTRY_v_v), 1, SIG_ENTRY_v_v
 
 #define EXPECT_VERIFIES(data)                                         \
   do {                                                                \
@@ -49,6 +65,15 @@
     }                                                   \
   } while (false)
 
+#define EXPECT_OK(result)                \
+  do {                                   \
+    EXPECT_TRUE(result.ok());            \
+    if (!result.ok()) {                  \
+      if (result.val) delete result.val; \
+      return;                            \
+    }                                    \
+  } while (false)
+
 static size_t SizeOfVarInt(size_t value) {
   size_t size = 0;
   do {
@@ -66,7 +91,7 @@
                    {kLocalF32, kAstF32},
                    {kLocalF64, kAstF64}};
 
-class WasmModuleVerifyTest : public TestWithZone {
+class WasmModuleVerifyTest : public TestWithIsolateAndZone {
  public:
   ModuleResult DecodeModule(const byte* module_start, const byte* module_end) {
     // Add the WASM magic and version number automatically.
@@ -76,14 +101,14 @@
     auto temp = new byte[total];
     memcpy(temp, header, sizeof(header));
     memcpy(temp + sizeof(header), module_start, size);
-    ModuleResult result = DecodeWasmModule(nullptr, zone(), temp, temp + total,
-                                           false, kWasmOrigin);
+    ModuleResult result = DecodeWasmModule(isolate(), zone(), temp,
+                                           temp + total, false, kWasmOrigin);
     delete[] temp;
     return result;
   }
   ModuleResult DecodeModuleNoHeader(const byte* module_start,
                                     const byte* module_end) {
-    return DecodeWasmModule(nullptr, zone(), module_start, module_end, false,
+    return DecodeWasmModule(isolate(), zone(), module_start, module_end, false,
                             kWasmOrigin);
   }
 };
@@ -115,7 +140,7 @@
 
 TEST_F(WasmModuleVerifyTest, OneGlobal) {
   static const byte data[] = {
-      SECTION(GLOBALS, 7),  // --
+      SECTION(GLOBALS, 5),  // --
       1,
       NAME_LENGTH(1),
       'g',      // name
@@ -126,7 +151,7 @@
   {
     // Should decode to exactly one global.
     ModuleResult result = DecodeModule(data, data + arraysize(data));
-    EXPECT_TRUE(result.ok());
+    EXPECT_OK(result);
     EXPECT_EQ(1, result.val->globals.size());
     EXPECT_EQ(0, result.val->functions.size());
     EXPECT_EQ(0, result.val->data_segments.size());
@@ -144,18 +169,16 @@
   EXPECT_OFF_END_FAILURE(data, 1, sizeof(data));
 }
 
-
 TEST_F(WasmModuleVerifyTest, ZeroGlobals) {
   static const byte data[] = {
       SECTION(GLOBALS, 1),  // --
       0,                    // declare 0 globals
   };
   ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_TRUE(result.ok());
+  EXPECT_OK(result);
   if (result.val) delete result.val;
 }
 
-
 static void AppendUint32v(std::vector<byte>& buffer, uint32_t val) {
   while (true) {
     uint32_t next = val >> 7;
@@ -170,7 +193,6 @@
   }
 }
 
-
 TEST_F(WasmModuleVerifyTest, NGlobals) {
   static const byte data[] = {
       NO_NAME,  // name length
@@ -180,9 +202,8 @@
 
   for (uint32_t i = 0; i < 1000000; i = i * 13 + 1) {
     std::vector<byte> buffer;
-    size_t size =
-        WASM_SECTION_GLOBALS_SIZE + SizeOfVarInt(i) + i * sizeof(data);
-    const byte globals[] = {U32V_5(size), WASM_SECTION_GLOBALS};
+    size_t size = SizeOfVarInt(i) + i * sizeof(data);
+    const byte globals[] = {WASM_SECTION_GLOBALS, U32V_5(size)};
     for (size_t g = 0; g != sizeof(globals); ++g) {
       buffer.push_back(globals[g]);
     }
@@ -192,7 +213,7 @@
     }
 
     ModuleResult result = DecodeModule(&buffer[0], &buffer[0] + buffer.size());
-    EXPECT_TRUE(result.ok());
+    EXPECT_OK(result);
     if (result.val) delete result.val;
   }
 }
@@ -221,10 +242,9 @@
   EXPECT_FAILURE(data);
 }
 
-
 TEST_F(WasmModuleVerifyTest, TwoGlobals) {
   static const byte data[] = {
-      SECTION(GLOBALS, 13),
+      SECTION(GLOBALS, 7),
       2,
       NO_NAME,  // #0: name length
       kMemF32,  // memory type
@@ -237,7 +257,7 @@
   {
     // Should decode to exactly two globals.
     ModuleResult result = DecodeModule(data, data + arraysize(data));
-    EXPECT_TRUE(result.ok());
+    EXPECT_OK(result);
     EXPECT_EQ(2, result.val->globals.size());
     EXPECT_EQ(0, result.val->functions.size());
     EXPECT_EQ(0, result.val->data_segments.size());
@@ -261,39 +281,31 @@
   EXPECT_OFF_END_FAILURE(data, 1, sizeof(data));
 }
 
-
 TEST_F(WasmModuleVerifyTest, OneSignature) {
   {
-    static const byte data[] = {SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE), 1,
-                                VOID_VOID_SIG};
+    static const byte data[] = {SIGNATURES_SECTION_VOID_VOID};
     EXPECT_VERIFIES(data);
   }
 
   {
-    static const byte data[] = {SECTION(SIGNATURES, 1 + INT_INT_SIG_SIZE), 1,
-                                INT_INT_SIG};
+    static const byte data[] = {SECTION(SIGNATURES, 1 + SIZEOF_SIG_ENTRY_x_x),
+                                1, SIG_ENTRY_i_i};
     EXPECT_VERIFIES(data);
   }
 }
 
-
 TEST_F(WasmModuleVerifyTest, MultipleSignatures) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 10),
-      3,
-      0,
-      kLocalVoid,  // void -> void
-      1,
-      kLocalI32,
-      kLocalF32,  // f32 -> i32
-      2,
-      kLocalI32,
-      kLocalF64,
-      kLocalF64,  // (f64,f64) -> i32
+      SECTION(SIGNATURES, 1 + SIZEOF_SIG_ENTRY_v_v + SIZEOF_SIG_ENTRY_x_x +
+                              SIZEOF_SIG_ENTRY_x_xx),   // --
+      3,                                                // --
+      SIG_ENTRY_v_v,                                    // void -> void
+      SIG_ENTRY_x_x(kLocalI32, kLocalF32),              // f32 -> i32
+      SIG_ENTRY_x_xx(kLocalI32, kLocalF64, kLocalF64),  // f64,f64 -> i32
   };
 
   ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_TRUE(result.ok());
+  EXPECT_OK(result);
   EXPECT_EQ(3, result.val->signatures.size());
   if (result.val->signatures.size() == 3) {
     EXPECT_EQ(0, result.val->signatures[0]->return_count());
@@ -309,10 +321,9 @@
   EXPECT_OFF_END_FAILURE(data, 1, sizeof(data));
 }
 
-
 TEST_F(WasmModuleVerifyTest, FunctionWithoutSig) {
   static const byte data[] = {
-      SECTION(FUNCTIONS, 25), 1,
+      SECTION(OLD_FUNCTIONS, 25), 1,
       // func#0 ------------------------------------------------------
       SIG_INDEX(0),  // signature index
       NO_NAME,       // name length
@@ -323,7 +334,7 @@
       U16_LE(699),   // local float32 count
       U16_LE(599),   // local float64 count
       0,             // exported
-      1              // external
+      0              // external
   };
 
   ModuleResult result = DecodeModule(data, data + arraysize(data));
@@ -331,24 +342,17 @@
   if (result.val) delete result.val;
 }
 
-
 TEST_F(WasmModuleVerifyTest, OneEmptyVoidVoidFunction) {
-  const int kCodeStartOffset = 51;
+  const int kCodeStartOffset = 41;
   const int kCodeEndOffset = kCodeStartOffset + 1;
 
   static const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE), 1,
-      // sig#0 -------------------------------------------------------
-      VOID_VOID_SIG,
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
       // func#0 ------------------------------------------------------
-      SECTION(FUNCTIONS, 19), 1,
-      kDeclFunctionLocals | kDeclFunctionExport | kDeclFunctionName,
+      SECTION(OLD_FUNCTIONS, 10), 1, kDeclFunctionExport | kDeclFunctionName,
       SIG_INDEX(0),              // signature index
       NAME_LENGTH(2), 'h', 'i',  // name
-      U16_LE(1466),              // local int32 count
-      U16_LE(1355),              // local int64 count
-      U16_LE(1244),              // local float32 count
-      U16_LE(1133),              // local float64 count
       1, 0,                      // size
       kExprNop,
   };
@@ -356,7 +360,7 @@
   {
     // Should decode to exactly one function.
     ModuleResult result = DecodeModule(data, data + arraysize(data));
-    EXPECT_TRUE(result.ok());
+    EXPECT_OK(result);
     EXPECT_EQ(0, result.val->globals.size());
     EXPECT_EQ(1, result.val->signatures.size());
     EXPECT_EQ(1, result.val->functions.size());
@@ -365,18 +369,12 @@
 
     WasmFunction* function = &result.val->functions.back();
 
-    EXPECT_EQ(39, function->name_offset);
+    EXPECT_EQ(37, function->name_offset);
     EXPECT_EQ(2, function->name_length);
     EXPECT_EQ(kCodeStartOffset, function->code_start_offset);
     EXPECT_EQ(kCodeEndOffset, function->code_end_offset);
 
-    EXPECT_EQ(1466, function->local_i32_count);
-    EXPECT_EQ(1355, function->local_i64_count);
-    EXPECT_EQ(1244, function->local_f32_count);
-    EXPECT_EQ(1133, function->local_f64_count);
-
     EXPECT_TRUE(function->exported);
-    EXPECT_FALSE(function->external);
 
     if (result.val) delete result.val;
   }
@@ -384,46 +382,13 @@
   EXPECT_OFF_END_FAILURE(data, 16, sizeof(data));
 }
 
-
-TEST_F(WasmModuleVerifyTest, OneFunctionImported) {
-  static const byte data[] = {
-      SECTION(SIGNATURES, VOID_VOID_SIG_SIZE), 1,
-      // sig#0 -------------------------------------------------------
-      VOID_VOID_SIG, SECTION(FUNCTIONS, 6), 1,
-      // func#0 ------------------------------------------------------
-      kDeclFunctionImport,  // no name, no locals, imported
-      SIG_INDEX(0),
-  };
-
-  ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_TRUE(result.ok());
-  EXPECT_EQ(1, result.val->functions.size());
-  WasmFunction* function = &result.val->functions.back();
-
-  EXPECT_EQ(0, function->name_length);
-  EXPECT_EQ(0, function->code_start_offset);
-  EXPECT_EQ(0, function->code_end_offset);
-
-  EXPECT_EQ(0, function->local_i32_count);
-  EXPECT_EQ(0, function->local_i64_count);
-  EXPECT_EQ(0, function->local_f32_count);
-  EXPECT_EQ(0, function->local_f64_count);
-
-  EXPECT_FALSE(function->exported);
-  EXPECT_TRUE(function->external);
-
-  if (result.val) delete result.val;
-}
-
 TEST_F(WasmModuleVerifyTest, OneFunctionWithNopBody) {
-  static const byte kCodeStartOffset = 40;
+  static const byte kCodeStartOffset = 38;
   static const byte kCodeEndOffset = kCodeStartOffset + 1;
 
   static const byte data[] = {
-      SECTION(SIGNATURES, 3), 1,
-      // sig#0 -------------------------------------------------------
-      0, 0,  // void -> void
-      SECTION(FUNCTIONS, 7), 1,
+      SIGNATURES_SECTION_VOID_VOID,  // --
+      SECTION(OLD_FUNCTIONS, 7), 1,
       // func#0 ------------------------------------------------------
       0,        // no name, no locals
       0, 0,     // signature index
@@ -432,7 +397,7 @@
   };
 
   ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_TRUE(result.ok());
+  EXPECT_OK(result);
   EXPECT_EQ(1, result.val->functions.size());
   WasmFunction* function = &result.val->functions.back();
 
@@ -440,86 +405,38 @@
   EXPECT_EQ(kCodeStartOffset, function->code_start_offset);
   EXPECT_EQ(kCodeEndOffset, function->code_end_offset);
 
-  EXPECT_EQ(0, function->local_i32_count);
-  EXPECT_EQ(0, function->local_i64_count);
-  EXPECT_EQ(0, function->local_f32_count);
-  EXPECT_EQ(0, function->local_f64_count);
-
   EXPECT_FALSE(function->exported);
-  EXPECT_FALSE(function->external);
 
   if (result.val) delete result.val;
 }
 
-
-TEST_F(WasmModuleVerifyTest, OneFunctionWithNopBody_WithLocals) {
-  static const byte kCodeStartOffset = 48;
-  static const byte kCodeEndOffset = kCodeStartOffset + 1;
-
-  static const byte data[] = {
-      SECTION(SIGNATURES, 3), 1,
-      // sig#0 -------------------------------------------------------
-      0, 0,  // void -> void
-      SECTION(FUNCTIONS, 15), 1,
-      // func#0 ------------------------------------------------------
-      kDeclFunctionLocals, 0, 0,  // signature index
-      1, 2,                       // local int32 count
-      3, 4,                       // local int64 count
-      5, 6,                       // local float32 count
-      7, 8,                       // local float64 count
-      1, 0,                       // body size
-      kExprNop                    // body
-  };
-
-  ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_TRUE(result.ok());
-  EXPECT_EQ(1, result.val->functions.size());
-  WasmFunction* function = &result.val->functions.back();
-
-  EXPECT_EQ(0, function->name_length);
-  EXPECT_EQ(kCodeStartOffset, function->code_start_offset);
-  EXPECT_EQ(kCodeEndOffset, function->code_end_offset);
-
-  EXPECT_EQ(513, function->local_i32_count);
-  EXPECT_EQ(1027, function->local_i64_count);
-  EXPECT_EQ(1541, function->local_f32_count);
-  EXPECT_EQ(2055, function->local_f64_count);
-
-  EXPECT_FALSE(function->exported);
-  EXPECT_FALSE(function->external);
-
-  if (result.val) delete result.val;
-}
-
-
 TEST_F(WasmModuleVerifyTest, OneGlobalOneFunctionWithNopBodyOneDataSegment) {
-  static const byte kCodeStartOffset = 75;
+  static const byte kNameOffset = 49;
+  static const byte kCodeStartOffset = 53;
   static const byte kCodeEndOffset = kCodeStartOffset + 3;
-  static const byte kDataSegmentSourceOffset = kCodeEndOffset + 20;
+  static const byte kDataSegmentSourceOffset = kCodeEndOffset + 22;
 
   static const byte data[] = {
-      SECTION(MEMORY, 3), 28, 28, 1,
       // global#0 --------------------------------------------------
-      SECTION(GLOBALS, 7), 1,
+      SECTION(GLOBALS, 4), 1,
       0,       // name length
       kMemU8,  // memory type
       0,       // exported
       // sig#0 -----------------------------------------------------
-      SECTION(SIGNATURES, 3), 1, 0, 0,  // void -> void
+      SIGNATURES_SECTION_VOID_VOID,
       // func#0 ----------------------------------------------------
-      SECTION(FUNCTIONS, 20), 1, kDeclFunctionLocals | kDeclFunctionName, 0,
-      0,            // signature index
-      2, 'h', 'i',  // name
-      1, 2,         // local int32 count
-      3, 4,         // local int64 count
-      5, 6,         // local float32 count
-      7, 8,         // local float64 count
-      3, 0,         // body size
-      kExprNop,     // func#0 body
-      kExprNop,     // func#0 body
-      kExprNop,     // func#0 body
+      SECTION(OLD_FUNCTIONS, 12), 1,
+      kDeclFunctionName,  // --
+      SIG_INDEX(0),       // signature index
+      2, 'h', 'i',        // name
+      3, 0,               // body size
+      kExprNop,           // func#0 body
+      kExprNop,           // func#0 body
+      kExprNop,           // func#0 body
+      // memory section --------------------------------------------
+      SECTION(MEMORY, 3), 28, 28, 1,
       // segment#0 -------------------------------------------------
-      SECTION(DATA_SEGMENTS, 14), 1,
+      SECTION(DATA_SEGMENTS, 10), 1,
       U32V_3(0x8b3ae),  // dest addr
       U32V_1(5),        // source size
       0, 1, 2, 3, 4,    // data bytes
@@ -529,7 +446,7 @@
 
   {
     ModuleResult result = DecodeModule(data, data + arraysize(data));
-    EXPECT_TRUE(result.ok());
+    EXPECT_OK(result);
     EXPECT_EQ(1, result.val->globals.size());
     EXPECT_EQ(1, result.val->functions.size());
     EXPECT_EQ(1, result.val->data_segments.size());
@@ -543,13 +460,12 @@
 
     WasmFunction* function = &result.val->functions.back();
 
-    EXPECT_EQ(63, function->name_offset);
+    EXPECT_EQ(kNameOffset, function->name_offset);
     EXPECT_EQ(2, function->name_length);
     EXPECT_EQ(kCodeStartOffset, function->code_start_offset);
     EXPECT_EQ(kCodeEndOffset, function->code_end_offset);
 
     EXPECT_FALSE(function->exported);
-    EXPECT_FALSE(function->external);
 
     WasmDataSegment* segment = &result.val->data_segments.back();
 
@@ -562,9 +478,8 @@
   }
 }
 
-
 TEST_F(WasmModuleVerifyTest, OneDataSegment) {
-  const byte kDataSegmentSourceOffset = 39;
+  const byte kDataSegmentSourceOffset = 30;
   const byte data[] = {
       SECTION(MEMORY, 3),
       28,
@@ -582,7 +497,7 @@
   {
     EXPECT_VERIFIES(data);
     ModuleResult result = DecodeModule(data, data + arraysize(data));
-    EXPECT_TRUE(result.ok());
+    EXPECT_OK(result);
     EXPECT_EQ(0, result.val->globals.size());
     EXPECT_EQ(0, result.val->functions.size());
     EXPECT_EQ(1, result.val->data_segments.size());
@@ -600,17 +515,16 @@
   EXPECT_OFF_END_FAILURE(data, 13, sizeof(data));
 }
 
-
 TEST_F(WasmModuleVerifyTest, TwoDataSegments) {
-  const byte kDataSegment0SourceOffset = 39;
-  const byte kDataSegment1SourceOffset = 39 + 8;
+  const byte kDataSegment0SourceOffset = 30;
+  const byte kDataSegment1SourceOffset = 30 + 8;
 
   const byte data[] = {
       SECTION(MEMORY, 3),
       28,
       28,
       1,
-      SECTION(DATA_SEGMENTS, 31),
+      SECTION(DATA_SEGMENTS, 23),
       2,                // segment count
       U32V_3(0x7ffee),  // #0: dest addr
       U32V_1(4),        // source size
@@ -634,7 +548,7 @@
 
   {
     ModuleResult result = DecodeModule(data, data + arraysize(data));
-    EXPECT_TRUE(result.ok());
+    EXPECT_OK(result);
     EXPECT_EQ(0, result.val->globals.size());
     EXPECT_EQ(0, result.val->functions.size());
     EXPECT_EQ(2, result.val->data_segments.size());
@@ -670,7 +584,7 @@
                      mem_pages,
                      mem_pages,
                      1,
-                     SECTION(DATA_SEGMENTS, 14),
+                     SECTION(DATA_SEGMENTS, 8),
                      1,
                      U32V_3(dest_addr),
                      U32V_1(source_size),
@@ -687,21 +601,18 @@
   }
 }
 
-
-// To make below tests for indirect calls much shorter.
-#define FUNCTION(sig_index, external) kDeclFunctionImport, SIG_INDEX(sig_index)
-
 TEST_F(WasmModuleVerifyTest, OneIndirectFunction) {
   static const byte data[] = {
       // sig#0 -------------------------------------------------------
-      SECTION(SIGNATURES, 3), 1, 0, 0,  // void -> void
+      SIGNATURES_SECTION_VOID_VOID,
       // func#0 ------------------------------------------------------
-      SECTION(FUNCTIONS, 4), 1, FUNCTION(0, 0),
+      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION), 1,  // --
+      EMPTY_FUNCTION(0),
       // indirect table ----------------------------------------------
       SECTION(FUNCTION_TABLE, 2), 1, U32V_1(0)};
 
   ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_TRUE(result.ok());
+  EXPECT_OK(result);
   if (result.ok()) {
     EXPECT_EQ(1, result.val->signatures.size());
     EXPECT_EQ(1, result.val->functions.size());
@@ -711,17 +622,19 @@
   if (result.val) delete result.val;
 }
 
-
 TEST_F(WasmModuleVerifyTest, MultipleIndirectFunctions) {
   static const byte data[] = {
       // sig#0 -------------------------------------------------------
-      SECTION(SIGNATURES, 5), 2, 0, 0,  // void -> void
-      0, kLocalI32,                     // void -> i32
+      SECTION(SIGNATURES, 1 + SIZEOF_SIG_ENTRY_v_v + SIZEOF_SIG_ENTRY_v_x),
+      2,                         // --
+      SIG_ENTRY_v_v,             // void -> void
+      SIG_ENTRY_v_x(kLocalI32),  // void -> i32
       // func#0 ------------------------------------------------------
-      SECTION(FUNCTIONS, 13), 4, FUNCTION(0, 1),  // --
-      FUNCTION(1, 1),                             // --
-      FUNCTION(0, 1),                             // --
-      FUNCTION(1, 1),                             // --
+      SECTION(OLD_FUNCTIONS, 1 + 4 * SIZEOF_EMPTY_FUNCTION), 4,  // --
+      EMPTY_FUNCTION(0),                                         // --
+      EMPTY_FUNCTION(1),                                         // --
+      EMPTY_FUNCTION(0),                                         // --
+      EMPTY_FUNCTION(1),                                         // --
       // indirect table ----------------------------------------------
       SECTION(FUNCTION_TABLE, 9), 8,
       U32V_1(0),  // --
@@ -735,7 +648,7 @@
   };
 
   ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_TRUE(result.ok());
+  EXPECT_OK(result);
   if (result.ok()) {
     EXPECT_EQ(2, result.val->signatures.size());
     EXPECT_EQ(4, result.val->functions.size());
@@ -747,11 +660,10 @@
   if (result.val) delete result.val;
 }
 
-
 TEST_F(WasmModuleVerifyTest, IndirectFunctionNoFunctions) {
   static const byte data[] = {
       // sig#0 -------------------------------------------------------
-      SECTION(SIGNATURES, 3), 1, 0, 0,  // void -> void
+      SIGNATURES_SECTION_VOID_VOID,
       // indirect table ----------------------------------------------
       SECTION(FUNCTION_TABLE, 3), 1, 0, 0,
   };
@@ -759,13 +671,13 @@
   EXPECT_FAILURE(data);
 }
 
-
 TEST_F(WasmModuleVerifyTest, IndirectFunctionInvalidIndex) {
   static const byte data[] = {
       // sig#0 -------------------------------------------------------
-      SECTION(SIGNATURES, 3), 1, 0, 0,  // void -> void
+      SIGNATURES_SECTION_VOID_VOID,
       // functions ---------------------------------------------------
-      SECTION(FUNCTIONS, 4), 1, FUNCTION(0, 1),
+      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION), 1,  // --
+      EMPTY_FUNCTION(0),
       // indirect table ----------------------------------------------
       SECTION(FUNCTION_TABLE, 3), 1, 1, 0,
   };
@@ -773,12 +685,10 @@
   EXPECT_FAILURE(data);
 }
 
-
 class WasmSignatureDecodeTest : public TestWithZone {};
 
-
 TEST_F(WasmSignatureDecodeTest, Ok_v_v) {
-  static const byte data[] = {0, 0};
+  static const byte data[] = {SIG_ENTRY_v_v};
   base::AccountingAllocator allocator;
   Zone zone(&allocator);
   FunctionSig* sig =
@@ -789,11 +699,10 @@
   EXPECT_EQ(0, sig->return_count());
 }
 
-
 TEST_F(WasmSignatureDecodeTest, Ok_t_v) {
   for (size_t i = 0; i < arraysize(kLocalTypes); i++) {
     LocalTypePair ret_type = kLocalTypes[i];
-    const byte data[] = {0, ret_type.code};
+    const byte data[] = {SIG_ENTRY_x(ret_type.code)};
     FunctionSig* sig =
         DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
 
@@ -804,11 +713,10 @@
   }
 }
 
-
 TEST_F(WasmSignatureDecodeTest, Ok_v_t) {
   for (size_t i = 0; i < arraysize(kLocalTypes); i++) {
     LocalTypePair param_type = kLocalTypes[i];
-    const byte data[] = {1, 0, param_type.code};
+    const byte data[] = {SIG_ENTRY_v_x(param_type.code)};
     FunctionSig* sig =
         DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
 
@@ -819,15 +727,12 @@
   }
 }
 
-
 TEST_F(WasmSignatureDecodeTest, Ok_t_t) {
   for (size_t i = 0; i < arraysize(kLocalTypes); i++) {
     LocalTypePair ret_type = kLocalTypes[i];
     for (size_t j = 0; j < arraysize(kLocalTypes); j++) {
       LocalTypePair param_type = kLocalTypes[j];
-      const byte data[] = {1,                 // param count
-                           ret_type.code,     // ret
-                           param_type.code};  // param
+      const byte data[] = {SIG_ENTRY_x_x(ret_type.code, param_type.code)};
       FunctionSig* sig =
           DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
 
@@ -840,16 +745,13 @@
   }
 }
 
-
 TEST_F(WasmSignatureDecodeTest, Ok_i_tt) {
   for (size_t i = 0; i < arraysize(kLocalTypes); i++) {
     LocalTypePair p0_type = kLocalTypes[i];
     for (size_t j = 0; j < arraysize(kLocalTypes); j++) {
       LocalTypePair p1_type = kLocalTypes[j];
-      const byte data[] = {2,              // param count
-                           kLocalI32,      // ret
-                           p0_type.code,   // p0
-                           p1_type.code};  // p1
+      const byte data[] = {
+          SIG_ENTRY_x_xx(kLocalI32, p0_type.code, p1_type.code)};
       FunctionSig* sig =
           DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
 
@@ -862,7 +764,6 @@
   }
 }
 
-
 TEST_F(WasmSignatureDecodeTest, Fail_off_end) {
   byte data[256];
   for (int p = 0; p <= 255; p = p + 1 + p * 3) {
@@ -877,11 +778,10 @@
   }
 }
 
-
 TEST_F(WasmSignatureDecodeTest, Fail_invalid_type) {
   byte kInvalidType = 76;
-  for (int i = 1; i < 3; i++) {
-    byte data[] = {2, kLocalI32, kLocalI32, kLocalI32};
+  for (size_t i = 0; i < SIZEOF_SIG_ENTRY_x_xx; i++) {
+    byte data[] = {SIG_ENTRY_x_xx(kLocalI32, kLocalI32, kLocalI32)};
     data[i] = kInvalidType;
     FunctionSig* sig =
         DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
@@ -889,46 +789,56 @@
   }
 }
 
-
-TEST_F(WasmSignatureDecodeTest, Fail_invalid_param_type) {
-  static const int kParamCount = 3;
-  for (int i = 0; i < kParamCount; i++) {
-    byte data[] = {kParamCount, kLocalI32, kLocalI32, kLocalI32, kLocalI32};
-    data[i + 2] = kLocalVoid;
-    FunctionSig* sig =
-        DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
-    EXPECT_EQ(nullptr, sig);
-  }
+TEST_F(WasmSignatureDecodeTest, Fail_invalid_ret_type1) {
+  static const byte data[] = {SIG_ENTRY_x_x(kLocalVoid, kLocalI32)};
+  FunctionSig* sig =
+      DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
+  EXPECT_EQ(nullptr, sig);
 }
 
+TEST_F(WasmSignatureDecodeTest, Fail_invalid_param_type1) {
+  static const byte data[] = {SIG_ENTRY_x_x(kLocalI32, kLocalVoid)};
+  FunctionSig* sig =
+      DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
+  EXPECT_EQ(nullptr, sig);
+}
 
-class WasmFunctionVerifyTest : public TestWithZone {};
+TEST_F(WasmSignatureDecodeTest, Fail_invalid_param_type2) {
+  static const byte data[] = {SIG_ENTRY_x_xx(kLocalI32, kLocalI32, kLocalVoid)};
+  FunctionSig* sig =
+      DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
+  EXPECT_EQ(nullptr, sig);
+}
 
+class WasmFunctionVerifyTest : public TestWithIsolateAndZone {};
 
 TEST_F(WasmFunctionVerifyTest, Ok_v_v_empty) {
   static const byte data[] = {
-      0,       kLocalVoid,  // signature
-      4,                    // locals
-      3,       kLocalI32,   // --
-      4,       kLocalI64,   // --
-      5,       kLocalF32,   // --
-      6,       kLocalF64,   // --
-      kExprNop              // body
+      SIG_ENTRY_v_v,  // signature entry
+      4,              // locals
+      3,
+      kLocalI32,  // --
+      4,
+      kLocalI64,  // --
+      5,
+      kLocalF32,  // --
+      6,
+      kLocalF64,  // --
+      kExprNop    // body
   };
 
-  FunctionResult result = DecodeWasmFunction(nullptr, zone(), nullptr, data,
+  FunctionResult result = DecodeWasmFunction(isolate(), zone(), nullptr, data,
                                              data + arraysize(data));
-  EXPECT_TRUE(result.ok());
+  EXPECT_OK(result);
 
   if (result.val && result.ok()) {
     WasmFunction* function = result.val;
     EXPECT_EQ(0, function->sig->parameter_count());
     EXPECT_EQ(0, function->sig->return_count());
     EXPECT_EQ(0, function->name_offset);
-    EXPECT_EQ(2, function->code_start_offset);
+    EXPECT_EQ(SIZEOF_SIG_ENTRY_v_v, function->code_start_offset);
     EXPECT_EQ(arraysize(data), function->code_end_offset);
     // TODO(titzer): verify encoding of local declarations
-    EXPECT_FALSE(function->external);
     EXPECT_FALSE(function->exported);
   }
 
@@ -942,47 +852,51 @@
 
 TEST_F(WasmModuleVerifyTest, TheLoneliestOfValidModulesTheTrulyEmptyOne) {
   const byte data[] = {
-      1,  // Section size.
       0,  // Empty section name.
           // No section name, no content, nothing but sadness.
+      0,  // No section content.
   };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, OnlyUnknownSectionEmpty) {
   const byte data[] = {
-      5,                      // Section size.
-      4, 'l', 'u', 'l', 'z',  // unknown section.
+      UNKNOWN_SECTION_NAME, 0,
   };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, OnlyUnknownSectionNonEmpty) {
   const byte data[] = {
-      10,                     // Section size.
-      4, 'l', 'u', 'l', 'z',  // unknown section.
-      // Section content:
-      0xff, 0xff, 0xff, 0xff, 0xff,
+      UNKNOWN_SECTION_NAME,
+      5,  // section size
+      0xff,
+      0xff,
+      0xff,
+      0xff,
+      0xff,  // section data
   };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, SignatureFollowedByEmptyUnknownSection) {
   const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE), 1, VOID_VOID_SIG,
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
       // -----------------------------------------------------------
-      5,                      // Section size.
-      4, 'l', 'u', 'l', 'z',  // unknown section.
+      UNKNOWN_SECTION_NAME,
+      0  // empty section
   };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, SignatureFollowedByUnknownSection) {
   const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE), 1, VOID_VOID_SIG,
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
       // -----------------------------------------------------------
-      10,                     // Section size.
-      4, 'l', 'u', 'l', 'z',  // unknown section.
+      UNKNOWN_SECTION_NAME,
+      5,  // section size
       0xff, 0xff, 0xff, 0xff, 0xff,
   };
   EXPECT_VERIFIES(data);
@@ -990,29 +904,46 @@
 
 TEST_F(WasmModuleVerifyTest, SignatureFollowedByUnknownSectionWithLongLEB) {
   const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE), 1, VOID_VOID_SIG,
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
       // -----------------------------------------------------------
-      0x85, 0x80, 0x80, 0x80, 0x00,  // Section size: 1 but in a 5-byte LEB.
-      4, 'l', 'u', 'l', 'z',         // unknown section.
+      UNKNOWN_SECTION_NAME, 0x81, 0x80, 0x80, 0x80,
+      0x00,  // section size: 1 but in a 5-byte LEB
+      0,
   };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, UnknownSectionOverflow) {
   static const byte data[] = {
-      13,                                // Section size.
-      1,                                 // Section name length.
-      '\0',                              // Section name.
-      1,    2, 3, 4, 5, 6, 7, 8, 9, 10,  // 10 byte section
+      UNKNOWN_EMPTY_SECTION_NAME,
+      9,  // section size
+      1,
+      2,
+      3,
+      4,
+      5,
+      6,
+      7,
+      8,
+      9,
+      10,  // 10 byte section
   };
   EXPECT_FAILURE(data);
 }
 
 TEST_F(WasmModuleVerifyTest, UnknownSectionUnderflow) {
   static const byte data[] = {
-      0xff, 0xff, 0xff, 0xff, 0x0f,  // Section size LEB128 0xffffffff
-      1,    '\0',                    // Section name and name length.
-      1,    2,    3,    4,           // 4 byte section
+      UNKNOWN_EMPTY_SECTION_NAME,
+      0xff,
+      0xff,
+      0xff,
+      0xff,
+      0x0f,  // Section size LEB128 0xffffffff
+      1,
+      2,
+      3,
+      4,  // 4 byte section
   };
   EXPECT_FAILURE(data);
 }
@@ -1020,27 +951,33 @@
 TEST_F(WasmModuleVerifyTest, UnknownSectionLoop) {
   // Would infinite loop decoding if wrapping and allowed.
   static const byte data[] = {
-      0xfa, 0xff, 0xff, 0xff, 0x0f,  // Section size LEB128 0xfffffffa
-      1,    '\0',                    // Section name and name length.
-      1,    2,    3,    4,           // 4 byte section
+      UNKNOWN_EMPTY_SECTION_NAME,
+      1,
+      2,
+      3,
+      4,  // 4 byte section
+      0xfa,
+      0xff,
+      0xff,
+      0xff,
+      0x0f,  // Section size LEB128 0xfffffffa
   };
   EXPECT_FAILURE(data);
 }
 
 TEST_F(WasmModuleVerifyTest, UnknownSectionSkipped) {
   static const byte data[] = {
-      3,  // Section size.
-      1,
-      '\0',  // Section name: LEB128 1, string '\0'
-      0,     // one byte section
-      SECTION(GLOBALS, 7),
+      UNKNOWN_EMPTY_SECTION_NAME,
+      1,  // section size
+      0,  // one byte section
+      SECTION(GLOBALS, 4),
       1,
       0,        // name length
       kMemI32,  // memory type
       0,        // exported
   };
   ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_TRUE(result.ok());
+  EXPECT_OK(result);
 
   EXPECT_EQ(1, result.val->globals.size());
   EXPECT_EQ(0, result.val->functions.size());
@@ -1062,26 +999,36 @@
   EXPECT_VERIFIES(data);
 }
 
-TEST_F(WasmModuleVerifyTest, ImportTable_nosigs) {
+TEST_F(WasmModuleVerifyTest, ImportTable_nosigs1) {
   static const byte data[] = {SECTION(IMPORT_TABLE, 1), 0};
+  EXPECT_VERIFIES(data);
+}
+
+TEST_F(WasmModuleVerifyTest, ImportTable_nosigs2) {
+  static const byte data[] = {
+      SECTION(IMPORT_TABLE, 6), 1,    // sig table
+      IMPORT_SIG_INDEX(0),            // sig index
+      NAME_LENGTH(1),           'm',  // module name
+      NAME_LENGTH(1),           'f',  // function name
+  };
   EXPECT_FAILURE(data);
 }
 
 TEST_F(WasmModuleVerifyTest, ImportTable_invalid_sig) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1), 0,   SECTION(IMPORT_TABLE, 6), 1,
-      IMPORT_SIG_INDEX(0),          // sig index
-      NAME_LENGTH(1),         'm',  // module name
-      NAME_LENGTH(1),         'f',  // function name
+      SECTION(SIGNATURES, 1),   0,    // --
+      SECTION(IMPORT_TABLE, 6), 1,    // --
+      IMPORT_SIG_INDEX(0),            // sig index
+      NAME_LENGTH(1),           'm',  // module name
+      NAME_LENGTH(1),           'f',  // function name
   };
   EXPECT_FAILURE(data);
 }
 
 TEST_F(WasmModuleVerifyTest, ImportTable_one_sig) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-      1,
-      VOID_VOID_SIG,
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
       SECTION(IMPORT_TABLE, 6),
       1,                    // --
       IMPORT_SIG_INDEX(0),  // sig index
@@ -1095,9 +1042,8 @@
 
 TEST_F(WasmModuleVerifyTest, ImportTable_invalid_module) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-      1,
-      VOID_VOID_SIG,
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
       SECTION(IMPORT_TABLE, 6),
       1,                    // --
       IMPORT_SIG_INDEX(0),  // sig index
@@ -1110,9 +1056,8 @@
 
 TEST_F(WasmModuleVerifyTest, ImportTable_off_end) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-      1,
-      VOID_VOID_SIG,
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
       SECTION(IMPORT_TABLE, 6),
       1,
       IMPORT_SIG_INDEX(0),  // sig index
@@ -1126,28 +1071,31 @@
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTable_empty1) {
-  static const byte data[] = {SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-                              1,
-                              VOID_VOID_SIG,
-                              SECTION(FUNCTIONS, 1 + EMPTY_FUNCTION_SIZE),
-                              1,
-                              EMPTY_FUNCTION(0),
-                              SECTION(EXPORT_TABLE, 1),
-                              0};
+  static const byte data[] = {
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
+      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION),
+      1,
+      EMPTY_FUNCTION(0),
+      SECTION(EXPORT_TABLE, 1),
+      0  // --
+  };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTable_empty2) {
-  static const byte data[] = {SECTION(SIGNATURES, 1),   0,
-                              SECTION(FUNCTIONS, 1),    0,
-                              SECTION(EXPORT_TABLE, 1), 0};
+  static const byte data[] = {
+      SECTION(SIGNATURES, 1),   0, SECTION(OLD_FUNCTIONS, 1), 0,
+      SECTION(EXPORT_TABLE, 1), 0  // --
+  };
   // TODO(titzer): current behavior treats empty functions section as missing.
   EXPECT_FAILURE(data);
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTable_NoFunctions1) {
-  static const byte data[] = {SECTION(SIGNATURES, 1), 0,
-                              SECTION(EXPORT_TABLE, 1), 0};
+  static const byte data[] = {
+      SECTION(SIGNATURES, 1), 0, SECTION(EXPORT_TABLE, 1), 0  // --
+  };
   EXPECT_FAILURE(data);
 }
 
@@ -1158,13 +1106,12 @@
 
 TEST_F(WasmModuleVerifyTest, ExportTableOne) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-      1,              // sigs
-      VOID_VOID_SIG,  // --
-      SECTION(FUNCTIONS, 1 + EMPTY_FUNCTION_SIZE),
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
+      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION),
       1,                  // functions
       EMPTY_FUNCTION(0),  // --
-      SECTION(EXPORT_TABLE, 7),
+      SECTION(EXPORT_TABLE, 3),
       1,              // exports
       FUNC_INDEX(0),  // --
       NO_NAME         // --
@@ -1174,10 +1121,9 @@
 
 TEST_F(WasmModuleVerifyTest, ExportTableTwo) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-      1,              // sigs
-      VOID_VOID_SIG,  // --
-      SECTION(FUNCTIONS, 1 + EMPTY_FUNCTION_SIZE),
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
+      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION),
       1,                  // functions
       EMPTY_FUNCTION(0),  // --
       SECTION(EXPORT_TABLE, 12),
@@ -1199,10 +1145,9 @@
 
 TEST_F(WasmModuleVerifyTest, ExportTableThree) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-      1,              // sigs
-      VOID_VOID_SIG,  // --
-      SECTION(FUNCTIONS, 1 + 3 * EMPTY_FUNCTION_SIZE),
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
+      SECTION(OLD_FUNCTIONS, 1 + 3 * SIZEOF_EMPTY_FUNCTION),
       3,                  // functions
       EMPTY_FUNCTION(0),  // --
       EMPTY_FUNCTION(0),  // --
@@ -1225,10 +1170,9 @@
 TEST_F(WasmModuleVerifyTest, ExportTableThreeOne) {
   for (int i = 0; i < 6; i++) {
     const byte data[] = {
-        SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-        1,              // sigs
-        VOID_VOID_SIG,  // --
-        SECTION(FUNCTIONS, 1 + 3 * EMPTY_FUNCTION_SIZE),
+        // signatures
+        SIGNATURES_SECTION_VOID_VOID,
+        SECTION(OLD_FUNCTIONS, 1 + 3 * SIZEOF_EMPTY_FUNCTION),
         3,                  // functions
         EMPTY_FUNCTION(0),  // --
         EMPTY_FUNCTION(0),  // --
@@ -1251,10 +1195,9 @@
 
 TEST_F(WasmModuleVerifyTest, ExportTableOne_off_end) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1 + VOID_VOID_SIG_SIZE),
-      1,              // sigs
-      VOID_VOID_SIG,  // --
-      SECTION(FUNCTIONS, 1 + EMPTY_FUNCTION_SIZE),
+      // signatures
+      SIGNATURES_SECTION_VOID_VOID,
+      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION),
       1,                  // functions
       EMPTY_FUNCTION(0),  // --
       SECTION(EXPORT_TABLE, 1 + 6),
@@ -1270,67 +1213,68 @@
   }
 }
 
-#define SIGNATURES_SECTION(count, ...) \
-  SECTION(SIGNATURES, 1 + 3 * (count)), U32V_1(count), __VA_ARGS__
-#define FUNCTION_SIGNATURES_SECTION(count, ...) \
-  SECTION(FUNCTION_SIGNATURES, 1 + (count)), U32V_1(count), __VA_ARGS__
-
-#define FOO_STRING 3, 'f', 'o', 'o'
-#define NO_LOCAL_NAMES 0
-
-#define EMPTY_SIGNATURES_SECTION SECTION(SIGNATURES, 1), 0
-#define EMPTY_FUNCTION_SIGNATURES_SECTION SECTION(FUNCTION_SIGNATURES, 1), 0
-#define EMPTY_FUNCTION_BODIES_SECTION SECTION(FUNCTION_BODIES, 1), 0
-#define EMPTY_NAMES_SECTION SECTION(NAMES, 1), 0
-
 TEST_F(WasmModuleVerifyTest, FunctionSignatures_empty) {
-  static const byte data[] = {SECTION(SIGNATURES, 1), 0,
-                              SECTION(FUNCTION_SIGNATURES, 1), 0};
+  static const byte data[] = {
+      SECTION(SIGNATURES, 1), 0,          // --
+      SECTION(FUNCTION_SIGNATURES, 1), 0  // --
+  };                                      // --
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, FunctionSignatures_one) {
-  static const byte data[] = {SIGNATURES_SECTION(1, VOID_VOID_SIG),
-                              FUNCTION_SIGNATURES_SECTION(1, 0)};
+  static const byte data[] = {
+      SIGNATURES_SECTION(1, SIG_ENTRY_v_v),  // --
+      FUNCTION_SIGNATURES_SECTION(1, 0)      // --
+  };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, FunctionBodies_empty) {
-  static const byte data[] = {EMPTY_SIGNATURES_SECTION,
-                              EMPTY_FUNCTION_SIGNATURES_SECTION,
-                              EMPTY_FUNCTION_BODIES_SECTION};
+  static const byte data[] = {
+      EMPTY_SIGNATURES_SECTION,           // --
+      EMPTY_FUNCTION_SIGNATURES_SECTION,  // --
+      EMPTY_FUNCTION_BODIES_SECTION       // --
+  };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, FunctionBodies_one_empty) {
   static const byte data[] = {
-      SIGNATURES_SECTION(1, VOID_VOID_SIG), FUNCTION_SIGNATURES_SECTION(1, 0),
-      SECTION(FUNCTION_BODIES, 1 + EMPTY_BODY_SIZE), 1, EMPTY_BODY};
+      SIGNATURES_SECTION(1, SIG_ENTRY_v_v),                           // --
+      FUNCTION_SIGNATURES_SECTION(1, 0),                              // --
+      SECTION(FUNCTION_BODIES, 1 + SIZEOF_EMPTY_BODY), 1, EMPTY_BODY  // --
+  };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, FunctionBodies_one_nop) {
   static const byte data[] = {
-      SIGNATURES_SECTION(1, VOID_VOID_SIG), FUNCTION_SIGNATURES_SECTION(1, 0),
-      SECTION(FUNCTION_BODIES, 1 + NOP_BODY_SIZE), 1, NOP_BODY};
+      SIGNATURES_SECTION(1, SIG_ENTRY_v_v),                       // --
+      FUNCTION_SIGNATURES_SECTION(1, 0),                          // --
+      SECTION(FUNCTION_BODIES, 1 + SIZEOF_NOP_BODY), 1, NOP_BODY  // --
+  };
   EXPECT_VERIFIES(data);
 }
 
 TEST_F(WasmModuleVerifyTest, FunctionBodies_count_mismatch1) {
-  static const byte data[] = {SIGNATURES_SECTION(1, VOID_VOID_SIG),
-                              FUNCTION_SIGNATURES_SECTION(2, 0, 0),
-                              SECTION(FUNCTION_BODIES, 1 + EMPTY_BODY_SIZE), 1,
-                              EMPTY_BODY};
+  static const byte data[] = {
+      SIGNATURES_SECTION(1, SIG_ENTRY_v_v),                // --
+      FUNCTION_SIGNATURES_SECTION(2, 0, 0),                // --
+      SECTION(FUNCTION_BODIES, 1 + SIZEOF_EMPTY_BODY), 1,  // --
+      EMPTY_BODY                                           // --
+  };
   EXPECT_FAILURE(data);
 }
 
 TEST_F(WasmModuleVerifyTest, FunctionBodies_count_mismatch2) {
-  static const byte data[] = {SIGNATURES_SECTION(1, VOID_VOID_SIG),
-                              FUNCTION_SIGNATURES_SECTION(1, 0),
-                              SECTION(FUNCTION_BODIES, 1 + 2 * NOP_BODY_SIZE),
-                              2,
-                              NOP_BODY,
-                              NOP_BODY};
+  static const byte data[] = {
+      SIGNATURES_SECTION(1, SIG_ENTRY_v_v),               // --
+      FUNCTION_SIGNATURES_SECTION(1, 0),                  // --
+      SECTION(FUNCTION_BODIES, 1 + 2 * SIZEOF_NOP_BODY),  // --
+      2,                                                  // --
+      NOP_BODY,                                           // --
+      NOP_BODY                                            // --
+  };
   EXPECT_FAILURE(data);
 }
 
@@ -1343,9 +1287,9 @@
 
 TEST_F(WasmModuleVerifyTest, Names_one_empty) {
   static const byte data[] = {
-      SIGNATURES_SECTION(1, VOID_VOID_SIG),  // --
+      SIGNATURES_SECTION(1, SIG_ENTRY_v_v),  // --
       FUNCTION_SIGNATURES_SECTION(1, 0),     // --
-      SECTION(FUNCTION_BODIES, 1 + EMPTY_BODY_SIZE),
+      SECTION(FUNCTION_BODIES, 1 + SIZEOF_EMPTY_BODY),
       1,
       EMPTY_BODY,  // --
       SECTION(NAMES, 1 + 5),
@@ -1358,9 +1302,9 @@
 
 TEST_F(WasmModuleVerifyTest, Names_two_empty) {
   static const byte data[] = {
-      SIGNATURES_SECTION(1, VOID_VOID_SIG),               // --
-      FUNCTION_SIGNATURES_SECTION(2, 0, 0),               // --
-      SECTION(FUNCTION_BODIES, 1 + 2 * EMPTY_BODY_SIZE),  // --
+      SIGNATURES_SECTION(1, SIG_ENTRY_v_v),                 // --
+      FUNCTION_SIGNATURES_SECTION(2, 0, 0),                 // --
+      SECTION(FUNCTION_BODIES, 1 + 2 * SIZEOF_EMPTY_BODY),  // --
       2,
       EMPTY_BODY,
       EMPTY_BODY,  // --
diff --git a/test/unittests/wasm/switch-logic-unittest.cc b/test/unittests/wasm/switch-logic-unittest.cc
new file mode 100644
index 0000000..be587c2
--- /dev/null
+++ b/test/unittests/wasm/switch-logic-unittest.cc
@@ -0,0 +1,89 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "src/wasm/switch-logic.h"
+#include "test/unittests/test-utils.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+class SwitchLogicTest : public TestWithZone {};
+
+void CheckNodeValues(CaseNode* node, int begin, int end) {
+  CHECK_EQ(node->begin, begin);
+  CHECK_EQ(node->end, end);
+}
+
+TEST_F(SwitchLogicTest, Single_Table_Test) {
+  ZoneVector<int> values(zone());
+  values.push_back(14);
+  values.push_back(12);
+  values.push_back(15);
+  values.push_back(19);
+  values.push_back(18);
+  values.push_back(16);
+  CaseNode* root = OrderCases(&values, zone());
+  CHECK_NULL(root->left);
+  CHECK_NULL(root->right);
+  CheckNodeValues(root, 12, 19);
+}
+
+TEST_F(SwitchLogicTest, Balanced_Tree_Test) {
+  ZoneVector<int> values(zone());
+  values.push_back(5);
+  values.push_back(1);
+  values.push_back(6);
+  values.push_back(9);
+  values.push_back(-4);
+  CaseNode* root = OrderCases(&values, zone());
+  CheckNodeValues(root, 5, 5);
+  CheckNodeValues(root->left, -4, -4);
+  CHECK_NULL(root->left->left);
+  CheckNodeValues(root->left->right, 1, 1);
+  CHECK_NULL(root->left->right->left);
+  CHECK_NULL(root->left->right->right);
+  CheckNodeValues(root->right, 6, 6);
+  CHECK_NULL(root->right->left);
+  CheckNodeValues(root->right->right, 9, 9);
+  CHECK_NULL(root->right->right->left);
+  CHECK_NULL(root->right->right->right);
+}
+
+TEST_F(SwitchLogicTest, Hybrid_Test) {
+  ZoneVector<int> values(zone());
+  values.push_back(1);
+  values.push_back(2);
+  values.push_back(3);
+  values.push_back(4);
+  values.push_back(7);
+  values.push_back(10);
+  values.push_back(11);
+  values.push_back(12);
+  values.push_back(13);
+  values.push_back(16);
+  CaseNode* root = OrderCases(&values, zone());
+  CheckNodeValues(root, 7, 7);
+  CheckNodeValues(root->left, 1, 4);
+  CheckNodeValues(root->right, 10, 13);
+  CheckNodeValues(root->right->right, 16, 16);
+}
+
+TEST_F(SwitchLogicTest, Single_Case) {
+  ZoneVector<int> values(zone());
+  values.push_back(3);
+  CaseNode* root = OrderCases(&values, zone());
+  CheckNodeValues(root, 3, 3);
+  CHECK_NULL(root->left);
+  CHECK_NULL(root->right);
+}
+
+TEST_F(SwitchLogicTest, Empty_Case) {
+  ZoneVector<int> values(zone());
+  CaseNode* root = OrderCases(&values, zone());
+  CHECK_NULL(root);
+}
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/wasm/wasm-macro-gen-unittest.cc b/test/unittests/wasm/wasm-macro-gen-unittest.cc
index ec188c0..1058993 100644
--- a/test/unittests/wasm/wasm-macro-gen-unittest.cc
+++ b/test/unittests/wasm/wasm-macro-gen-unittest.cc
@@ -18,7 +18,6 @@
     EXPECT_EQ(size, sizeof(code)); \
   } while (false)
 
-
 TEST_F(WasmMacroGenTest, Constants) {
   EXPECT_SIZE(2, WASM_ONE);
   EXPECT_SIZE(2, WASM_ZERO);
@@ -48,7 +47,6 @@
   EXPECT_SIZE(9, WASM_F64(-9818934.0));
 }
 
-
 TEST_F(WasmMacroGenTest, Statements) {
   EXPECT_SIZE(1, WASM_NOP);
 
@@ -58,9 +56,9 @@
 
   EXPECT_SIZE(7, WASM_STORE_MEM(MachineType::Int32(), WASM_ZERO, WASM_ZERO));
 
-  EXPECT_SIZE(4, WASM_IF(WASM_ZERO, WASM_NOP));
+  EXPECT_SIZE(5, WASM_IF(WASM_ZERO, WASM_NOP));
 
-  EXPECT_SIZE(5, WASM_IF_ELSE(WASM_ZERO, WASM_NOP, WASM_NOP));
+  EXPECT_SIZE(7, WASM_IF_ELSE(WASM_ZERO, WASM_NOP, WASM_NOP));
 
   EXPECT_SIZE(5, WASM_SELECT(WASM_ZERO, WASM_NOP, WASM_NOP));
 
@@ -79,16 +77,14 @@
   EXPECT_SIZE(5, WASM_LOOP(1, WASM_BR(0)));
   EXPECT_SIZE(7, WASM_LOOP(1, WASM_BR_IF(0, WASM_ZERO)));
 
-  EXPECT_SIZE(1, WASM_RETURN0);
-  EXPECT_SIZE(3, WASM_RETURN(WASM_ZERO));
-  EXPECT_SIZE(5, WASM_RETURN(WASM_ZERO, WASM_ZERO));
+  EXPECT_SIZE(2, WASM_RETURN0);
+  EXPECT_SIZE(4, WASM_RETURN1(WASM_ZERO));
 
   EXPECT_SIZE(1, WASM_UNREACHABLE);
 }
 
-
 TEST_F(WasmMacroGenTest, MacroStatements) {
-  EXPECT_SIZE(8, WASM_WHILE(WASM_I8(0), WASM_NOP));
+  EXPECT_SIZE(10, WASM_WHILE(WASM_I8(0), WASM_NOP));
   EXPECT_SIZE(7, WASM_INC_LOCAL(0));
   EXPECT_SIZE(7, WASM_INC_LOCAL_BY(0, 3));
 
@@ -97,10 +93,10 @@
 }
 
 TEST_F(WasmMacroGenTest, BrTable) {
-  EXPECT_SIZE(8, WASM_BR_TABLE(WASM_ZERO, 1, BR_TARGET(1)));
+  EXPECT_SIZE(9, WASM_BR_TABLE(WASM_ZERO, 1, BR_TARGET(1)));
+  EXPECT_SIZE(11, WASM_BR_TABLEV(WASM_ZERO, WASM_ZERO, 1, BR_TARGET(1)));
 }
 
-
 TEST_F(WasmMacroGenTest, Expressions) {
   EXPECT_SIZE(2, WASM_GET_LOCAL(0));
   EXPECT_SIZE(2, WASM_GET_LOCAL(1));
@@ -114,8 +110,8 @@
 
   EXPECT_SIZE(3, WASM_NOT(WASM_ZERO));
 
-  EXPECT_SIZE(4, WASM_BRV(1, WASM_ZERO));
-  EXPECT_SIZE(6, WASM_BRV_IF(1, WASM_ZERO, WASM_ZERO));
+  EXPECT_SIZE(5, WASM_BRV(1, WASM_ZERO));
+  EXPECT_SIZE(7, WASM_BRV_IF(1, WASM_ZERO, WASM_ZERO));
 
   EXPECT_SIZE(4, WASM_BLOCK(1, WASM_ZERO));
   EXPECT_SIZE(5, WASM_BLOCK(2, WASM_NOP, WASM_ZERO));
@@ -127,33 +123,32 @@
 }
 
 TEST_F(WasmMacroGenTest, CallFunction) {
-  EXPECT_SIZE(2, WASM_CALL_FUNCTION0(0));
-  EXPECT_SIZE(2, WASM_CALL_FUNCTION0(1));
-  EXPECT_SIZE(2, WASM_CALL_FUNCTION0(11));
+  EXPECT_SIZE(3, WASM_CALL_FUNCTION0(0));
+  EXPECT_SIZE(3, WASM_CALL_FUNCTION0(1));
+  EXPECT_SIZE(3, WASM_CALL_FUNCTION0(11));
 
-  EXPECT_SIZE(4, WASM_CALL_FUNCTION(0, WASM_ZERO));
-  EXPECT_SIZE(6, WASM_CALL_FUNCTION(1, WASM_ZERO, WASM_ZERO));
+  EXPECT_SIZE(5, WASM_CALL_FUNCTION1(0, WASM_ZERO));
+  EXPECT_SIZE(7, WASM_CALL_FUNCTION2(1, WASM_ZERO, WASM_ZERO));
 }
 
 TEST_F(WasmMacroGenTest, CallImport) {
-  EXPECT_SIZE(2, WASM_CALL_IMPORT0(0));
-  EXPECT_SIZE(2, WASM_CALL_IMPORT0(1));
-  EXPECT_SIZE(2, WASM_CALL_IMPORT0(11));
+  EXPECT_SIZE(3, WASM_CALL_IMPORT0(0));
+  EXPECT_SIZE(3, WASM_CALL_IMPORT0(1));
+  EXPECT_SIZE(3, WASM_CALL_IMPORT0(11));
 
-  EXPECT_SIZE(4, WASM_CALL_IMPORT(0, WASM_ZERO));
-  EXPECT_SIZE(6, WASM_CALL_IMPORT(1, WASM_ZERO, WASM_ZERO));
+  EXPECT_SIZE(5, WASM_CALL_IMPORT1(0, WASM_ZERO));
+  EXPECT_SIZE(7, WASM_CALL_IMPORT2(1, WASM_ZERO, WASM_ZERO));
 }
 
 TEST_F(WasmMacroGenTest, CallIndirect) {
-  EXPECT_SIZE(4, WASM_CALL_INDIRECT0(0, WASM_ZERO));
-  EXPECT_SIZE(4, WASM_CALL_INDIRECT0(1, WASM_ZERO));
-  EXPECT_SIZE(4, WASM_CALL_INDIRECT0(11, WASM_ZERO));
+  EXPECT_SIZE(5, WASM_CALL_INDIRECT0(0, WASM_ZERO));
+  EXPECT_SIZE(5, WASM_CALL_INDIRECT0(1, WASM_ZERO));
+  EXPECT_SIZE(5, WASM_CALL_INDIRECT0(11, WASM_ZERO));
 
-  EXPECT_SIZE(6, WASM_CALL_INDIRECT(0, WASM_ZERO, WASM_ZERO));
-  EXPECT_SIZE(8, WASM_CALL_INDIRECT(1, WASM_ZERO, WASM_ZERO, WASM_ZERO));
+  EXPECT_SIZE(7, WASM_CALL_INDIRECT1(0, WASM_ZERO, WASM_ZERO));
+  EXPECT_SIZE(9, WASM_CALL_INDIRECT2(1, WASM_ZERO, WASM_ZERO, WASM_ZERO));
 }
 
-
 TEST_F(WasmMacroGenTest, Int32Ops) {
   EXPECT_SIZE(5, WASM_I32_ADD(WASM_ZERO, WASM_ZERO));
   EXPECT_SIZE(5, WASM_I32_SUB(WASM_ZERO, WASM_ZERO));
@@ -189,7 +184,6 @@
   EXPECT_SIZE(3, WASM_I32_EQZ(WASM_ZERO));
 }
 
-
 TEST_F(WasmMacroGenTest, Int64Ops) {
   EXPECT_SIZE(5, WASM_I64_ADD(WASM_ZERO, WASM_ZERO));
   EXPECT_SIZE(5, WASM_I64_SUB(WASM_ZERO, WASM_ZERO));
@@ -225,7 +219,6 @@
   EXPECT_SIZE(3, WASM_I64_EQZ(WASM_ZERO));
 }
 
-
 TEST_F(WasmMacroGenTest, Float32Ops) {
   EXPECT_SIZE(5, WASM_F32_ADD(WASM_ZERO, WASM_ZERO));
   EXPECT_SIZE(5, WASM_F32_SUB(WASM_ZERO, WASM_ZERO));
@@ -250,7 +243,6 @@
   EXPECT_SIZE(5, WASM_F32_GE(WASM_ZERO, WASM_ZERO));
 }
 
-
 TEST_F(WasmMacroGenTest, Float64Ops) {
   EXPECT_SIZE(5, WASM_F64_ADD(WASM_ZERO, WASM_ZERO));
   EXPECT_SIZE(5, WASM_F64_SUB(WASM_ZERO, WASM_ZERO));
@@ -275,7 +267,6 @@
   EXPECT_SIZE(5, WASM_F64_GE(WASM_ZERO, WASM_ZERO));
 }
 
-
 TEST_F(WasmMacroGenTest, Conversions) {
   EXPECT_SIZE(3, WASM_I32_SCONVERT_F32(WASM_ZERO));
   EXPECT_SIZE(3, WASM_I32_SCONVERT_F64(WASM_ZERO));
@@ -317,7 +308,6 @@
   }
 }
 
-
 TEST_F(WasmMacroGenTest, LoadsAndStoresWithOffset) {
   for (size_t i = 0; i < arraysize(kMemTypes); i++) {
     EXPECT_SIZE(5, WASM_LOAD_MEM_OFFSET(kMemTypes[i], 11, WASM_ZERO));
diff --git a/test/webkit/class-constructor-return.js b/test/webkit/class-constructor-return.js
index 6eb72ad..3691928 100644
--- a/test/webkit/class-constructor-return.js
+++ b/test/webkit/class-constructor-return.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for ES6 class constructor return values');
 
 // ES6
diff --git a/test/webkit/class-syntax-call.js b/test/webkit/class-syntax-call.js
index fa32a8c..747b0eb 100644
--- a/test/webkit/class-syntax-call.js
+++ b/test/webkit/class-syntax-call.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for calling the constructors of ES6 classes');
 
 class A { constructor() {} };
diff --git a/test/webkit/class-syntax-declaration.js b/test/webkit/class-syntax-declaration.js
index 3c9aed7..775a335 100644
--- a/test/webkit/class-syntax-declaration.js
+++ b/test/webkit/class-syntax-declaration.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for ES6 class syntax declarations');
 
 var constructorCallCount = 0;
diff --git a/test/webkit/class-syntax-default-constructor.js b/test/webkit/class-syntax-default-constructor.js
index 1695f6a..2772108 100644
--- a/test/webkit/class-syntax-default-constructor.js
+++ b/test/webkit/class-syntax-default-constructor.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for ES6 class syntax default constructor');
 
 class A { };
diff --git a/test/webkit/class-syntax-expression.js b/test/webkit/class-syntax-expression.js
index 3272b81..ab6dc0e 100644
--- a/test/webkit/class-syntax-expression.js
+++ b/test/webkit/class-syntax-expression.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for ES6 class syntax expressions');
 
 var constructorCallCount = 0;
diff --git a/test/webkit/class-syntax-extends.js b/test/webkit/class-syntax-extends.js
index a1b8f12..ccd3f29 100644
--- a/test/webkit/class-syntax-extends.js
+++ b/test/webkit/class-syntax-extends.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for ES6 class syntax "extends"');
 
 class Base {
diff --git a/test/webkit/class-syntax-name.js b/test/webkit/class-syntax-name.js
index 1604565..7686f6c 100644
--- a/test/webkit/class-syntax-name.js
+++ b/test/webkit/class-syntax-name.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for ES6 class name semantics in class statements and expressions');
 
 function runTestShouldBe(statement, result) {
diff --git a/test/webkit/class-syntax-prototype.js b/test/webkit/class-syntax-prototype.js
index 02ec578..6f0b40c 100644
--- a/test/webkit/class-syntax-prototype.js
+++ b/test/webkit/class-syntax-prototype.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for the descriptors of the properties implicitly defined by ES6 class syntax');
 
 function descriptor(object, propertyName) {
diff --git a/test/webkit/class-syntax-scoping.js b/test/webkit/class-syntax-scoping.js
index 02f5a1e..7c23634 100644
--- a/test/webkit/class-syntax-scoping.js
+++ b/test/webkit/class-syntax-scoping.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for scoping of variables in ES6 class syntax');
 
 var local = "FAIL";
diff --git a/test/webkit/class-syntax-semicolon.js b/test/webkit/class-syntax-semicolon.js
index 33504f9..d4a0d9b 100644
--- a/test/webkit/class-syntax-semicolon.js
+++ b/test/webkit/class-syntax-semicolon.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for ES6 class syntax containing semicolon in the class body');
 
 shouldThrow("class A { foo;() { } }", "'SyntaxError: Unexpected token ;'");
diff --git a/test/webkit/class-syntax-super.js b/test/webkit/class-syntax-super.js
index e355b4b..d70f2a1 100644
--- a/test/webkit/class-syntax-super.js
+++ b/test/webkit/class-syntax-super.js
@@ -21,8 +21,6 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-// Flags: --harmony-sloppy
-
 description('Tests for ES6 class syntax "super"');
 
 var baseMethodValue = {};
diff --git a/test/webkit/fast/js/excessive-comma-usage.js b/test/webkit/fast/js/excessive-comma-usage.js
index 414b29b..a67a3ff 100644
--- a/test/webkit/fast/js/excessive-comma-usage.js
+++ b/test/webkit/fast/js/excessive-comma-usage.js
@@ -34,7 +34,7 @@
 declarationTestString += ";return true;";
 
 var commaExpressionTestString = "1";
-for (var i = 0; i < 5000; i++)
+for (var i = 0; i < 2500; i++)
     commaExpressionTestString += ",1";
 commaExpressionTestString += ";return true;";
 
diff --git a/test/webkit/fast/regex/lastIndex-expected.txt b/test/webkit/fast/regex/lastIndex-expected.txt
index 71292c7..1e0959c 100644
--- a/test/webkit/fast/regex/lastIndex-expected.txt
+++ b/test/webkit/fast/regex/lastIndex-expected.txt
@@ -42,10 +42,10 @@
 PASS Object.defineProperty(Object.defineProperty(/x/, 'lastIndex', {writable:false}), 'lastIndex', {writable:true}); true threw exception TypeError: Cannot redefine property: lastIndex.
 PASS Object.defineProperty(Object.defineProperty(/x/, 'lastIndex', {writable:false}), 'lastIndex', {value:42}); true threw exception TypeError: Cannot redefine property: lastIndex.
 PASS Object.defineProperty(Object.defineProperty(/x/, 'lastIndex', {writable:false}), 'lastIndex', {value:0}); true is true
-FAIL Object.defineProperty(/x/, 'lastIndex', {writable:false}).exec('') should be null. Threw exception TypeError: Cannot assign to read only property 'lastIndex' of object '[object RegExp]'
+PASS Object.defineProperty(/x/, 'lastIndex', {writable:false}).exec('') is null
 PASS Object.defineProperty(/x/, 'lastIndex', {writable:false}).exec('x') is ["x"]
-PASS Object.defineProperty(/x/g, 'lastIndex', {writable:false}).exec('') threw exception TypeError: Cannot assign to read only property 'lastIndex' of object '[object RegExp]'.
-PASS Object.defineProperty(/x/g, 'lastIndex', {writable:false}).exec('x') threw exception TypeError: Cannot assign to read only property 'lastIndex' of object '[object RegExp]'.
+FAIL Object.defineProperty(/x/g, 'lastIndex', {writable:false}).exec('') should throw an exception. Was null.
+FAIL Object.defineProperty(/x/g, 'lastIndex', {writable:false}).exec('x') should throw an exception. Was x.
 PASS var re = /x/; Object.freeze(re); Object.isFrozen(re); is true
 PASS successfullyParsed is true
 
diff --git a/test/webkit/function-declaration-statement.js b/test/webkit/function-declaration-statement.js
index 34e3fdd..2c866d5 100644
--- a/test/webkit/function-declaration-statement.js
+++ b/test/webkit/function-declaration-statement.js
@@ -147,7 +147,7 @@
 function forInVarInitTest()
 {
     var a;
-    for (var a = false in { field: false })
+    for (var a in { field: false })
         function f()
         {
             return true;
diff --git a/test/webkit/toString-for-var-decl.js b/test/webkit/toString-for-var-decl.js
index 2b4db73..ba30883 100644
--- a/test/webkit/toString-for-var-decl.js
+++ b/test/webkit/toString-for-var-decl.js
@@ -25,7 +25,7 @@
 "This test checks for a couple of specific ways that bugs in toString() round trips have changed the meanings of functions with var declarations inside for loops."
 );
 
-function f1() { for (var j = 1 in []) {}  }
+function f1() { for (var j in []) {}  }
 var f2 = function () { for (var j = 1; j < 10; ++j) {}  }
 var f3 = function () { for (j = 1;j < 10; ++j) {}  }
 var f4 = function () { for (var j;;) {}  }
diff --git a/test/webkit/webkit.gyp b/test/webkit/webkit.gyp
index 8d655fe..cd4c4b9 100644
--- a/test/webkit/webkit.gyp
+++ b/test/webkit/webkit.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'webkit.isolate',
diff --git a/test/webkit/webkit.status b/test/webkit/webkit.status
index e23b9cf..3ac1600 100644
--- a/test/webkit/webkit.status
+++ b/test/webkit/webkit.status
@@ -70,6 +70,10 @@
   # Too slow.
   'dfg-int-overflow-in-loop': [SKIP],
 }], # 'arch == ppc or arch == ppc64'
+['arch == s390 or arch == s390x', {
+  # Too slow.
+  'dfg-int-overflow-in-loop': [SKIP],
+}],  # 'arch == s390 or arch == s390x'
 
 ##############################################################################
 ['asan == True', {
@@ -97,17 +101,18 @@
 }],  # 'gc_stress == True and mode == debug'
 
 ##############################################################################
-['ignition == True', {
-  # TODO(4680): Throws a RangeError due to stack overflow. Need investigation.
-  'fast/js/excessive-comma-usage': [SKIP],  # Stack is brittle, SKIP not FAIL.
-}],  # ignition == True
+['msan', {
+  # TODO(mythria,4680): Too slow and timeout on ignition.
+  'dfg-double-vote-fuzz': [PASS, NO_IGNITION],
+  'dfg-int-overflow-in-loop': [PASS, NO_IGNITION],
+}],  # msan
 
 ##############################################################################
-['ignition == True and msan', {
+['(ignition or ignition_turbofan) and msan', {
   # TODO(mythria,4680): Too slow and timeout on ignition.
   'dfg-double-vote-fuzz': [SKIP],
   'dfg-int-overflow-in-loop': [SKIP],
-}],  # ignition == True and msan
+}],  # (ignition or ignition_turbofan) and msan
 
 ##############################################################################
 ['gcov_coverage', {
diff --git a/third_party/binutils/download.py b/third_party/binutils/download.py
index 44b6c65..a8ad814 100755
--- a/third_party/binutils/download.py
+++ b/third_party/binutils/download.py
@@ -23,7 +23,7 @@
 BINUTILS_OUT = 'Release'
 
 DETECT_HOST_ARCH = os.path.abspath(os.path.join(
-    BINUTILS_DIR, '../../build/detect_v8_host_arch.py'))
+    BINUTILS_DIR, '../../gypfiles/detect_v8_host_arch.py'))
 
 
 def ReadFile(filename):
diff --git a/third_party/llvm-build/Release+Asserts/bin/clang b/third_party/llvm-build/Release+Asserts/bin/clang
index 691e4ba..008a7ae 100755
--- a/third_party/llvm-build/Release+Asserts/bin/clang
+++ b/third_party/llvm-build/Release+Asserts/bin/clang
Binary files differ
diff --git a/third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer b/third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer
index db93053..26996e7 100755
--- a/third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer
+++ b/third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer
Binary files differ
diff --git a/third_party/llvm-build/Release+Asserts/buildlog.txt b/third_party/llvm-build/Release+Asserts/buildlog.txt
index 867db4a..df5176a 100644
--- a/third_party/llvm-build/Release+Asserts/buildlog.txt
+++ b/third_party/llvm-build/Release+Asserts/buildlog.txt
@@ -1,63 +1,37807 @@
 Diff in llvm:
-?       /b/build/slave/linux_upload_clang/build/src/tools/clang/scripts/../../../third_party/llvm/compiler-rt
+svn: warning: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm' is not a working copy
+svn: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm' is not a working copy
+svn: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm' does not exist
 Diff in llvm/tools/clang:
+svn: warning: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang' is not a working copy
+svn: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang' is not a working copy
+svn: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang' does not exist
 Diff in llvm/compiler-rt:
-svn: E150000: '/b/build/slave/linux_upload_clang/build/src/third_party/llvm/projects/compiler-rt' is not under version control
+svn: warning: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects/compiler-rt' is not a working copy
+svn: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects/compiler-rt' is not a working copy
+svn: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects/compiler-rt' does not exist
 Diff in llvm/projects/libcxx:
-svn: E150000: '/b/build/slave/linux_upload_clang/build/src/third_party/llvm/projects/libcxx' is not under version control
+svn: warning: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects/libcxx' is not a working copy
+svn: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects/libcxx' is not a working copy
+svn: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects/libcxx' does not exist
 Starting build
-Updating Clang to 268813-1...
-Creating directory /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build
+Updating Clang to 264915-1...
+Creating directory /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build
 Downloading pre-built GCC 4.8.2...
 Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/tools/gcc482precise.tgz .......... Done.
-Creating directory /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools
+Creating directory /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools
 Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/tools/cmake322_Linux.tgz .......... Done.
-Checking out LLVM r268813 into '/b/build/slave/linux_upload_clang/build/src/third_party/llvm'
-Running svn checkout --force https://llvm.org/svn/llvm-project/llvm/trunk@268813 /b/build/slave/linux_upload_clang/build/src/third_party/llvm
-U    src/third_party/llvm/tools/llvm-pdbdump/CMakeLists.txt
-U    src/third_party/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
-U    src/third_party/llvm/unittests/MI/LiveIntervalTest.cpp
-U    src/third_party/llvm/lib/Fuzzer/FuzzerInternal.h
-U    src/third_party/llvm/lib/Fuzzer/FuzzerDriver.cpp
-U    src/third_party/llvm/lib/Fuzzer/FuzzerFlags.def
-U    src/third_party/llvm/lib/Fuzzer/FuzzerLoop.cpp
-U    src/third_party/llvm/lib/Target/ARM/ARMFrameLowering.cpp
-U    src/third_party/llvm/lib/Target/X86/X86RegisterInfo.cpp
-U    src/third_party/llvm/lib/Target/X86/X86RegisterInfo.td
-U    src/third_party/llvm/lib/Transforms/Scalar/GVN.cpp
-U    src/third_party/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
-U    src/third_party/llvm/lib/DebugInfo/CodeView/TypeDumper.cpp
-U    src/third_party/llvm/lib/DebugInfo/PDB/LLVMBuild.txt
-U    src/third_party/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
-U    src/third_party/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
-U    src/third_party/llvm/test/DebugInfo/PDB/pdbdump-headers.test
-U    src/third_party/llvm/test/Transforms/GVN/atomic.ll
-A    src/third_party/llvm/test/Transforms/SLPVectorizer/X86/bitreverse.ll
-A    src/third_party/llvm/test/Transforms/SLPVectorizer/X86/ctlz.ll
-A    src/third_party/llvm/test/Transforms/SLPVectorizer/X86/cttz.ll
-A    src/third_party/llvm/test/Transforms/SLPVectorizer/X86/ctpop.ll
-U    src/third_party/llvm/test/Transforms/SLPVectorizer/X86/cast.ll
-A    src/third_party/llvm/test/Transforms/SLPVectorizer/X86/bswap.ll
-U    src/third_party/llvm/test/Transforms/InstCombine/atomic.ll
-A    src/third_party/llvm/test/CodeGen/ARM/2016-05-01-RegScavengerAssert.ll
-U    src/third_party/llvm/test/CodeGen/X86/x86-64-stack-and-frame-ptr.ll
-U    src/third_party/llvm/cmake/modules/AddLLVM.cmake
-U    src/third_party/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
-U    src/third_party/llvm/include/llvm/DebugInfo/CodeView/TypeDumper.h
-Checked out revision 268813.
-Checking out Clang r268813 into '/b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang'
-Running svn checkout --force https://llvm.org/svn/llvm-project/cfe/trunk@268813 /b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang
-Checked out revision 268813.
-Checking out compiler-rt r268813 into '/b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt'
-Running svn checkout --force https://llvm.org/svn/llvm-project/compiler-rt/trunk@268813 /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt
-Checked out revision 268813.
+Checking out LLVM r264915 into '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm'
+Running svn checkout --force https://llvm.org/svn/llvm-project/llvm/trunk@264915 /b/build/slave/build_and_upload_clang/build/src/third_party/llvm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/irreader
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/irreader/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/irreader/llvm_irreader.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/irreader/llvm_irreader.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/irreader/irreader_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/utils/transform_utils_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/utils/llvm_transform_utils.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/utils/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/utils/llvm_transform_utils.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/passmgr_builder
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/passmgr_builder/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/passmgr_builder/llvm_passmgr_builder.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/scalar
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/ipo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/ipo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/scalar_opts
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/scalar_opts/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/vectorize
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/vectorize/vectorize_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/vectorize/llvm_vectorize.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/transforms/vectorize/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitreader
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitreader/llvm_bitreader.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitreader/llvm_bitreader.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitreader/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitreader/bitreader_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/all_backends
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/all_backends/llvm_all_backends.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/all_backends/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/all_backends/all_backends_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/all_backends/llvm_all_backends.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/analysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/analysis/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/analysis/llvm_analysis.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/analysis/analysis_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/analysis/llvm_analysis.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/linker
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/linker/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/linker/llvm_linker.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/linker/linker_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/linker/llvm_linker.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/target
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/target/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/target/llvm_target.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/target/target_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/target/llvm_target.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/executionengine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/executionengine/llvm_executionengine.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/executionengine/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/executionengine/llvm_executionengine.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/executionengine/executionengine_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/backends
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/backends/llvm_backend.mli.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/backends/META.llvm_backend.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/backends/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/backends/llvm_backend.ml.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/backends/backend_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/llvm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/llvm/META.llvm.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/llvm/llvm_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/llvm/llvm.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/llvm/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/llvm/llvm.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitwriter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitwriter/bitwriter_ocaml.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitwriter/llvm_bitwriter.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitwriter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/ocaml/bitwriter/llvm_bitwriter.mli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/object.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/common.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/core.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/enumerations.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests/test_object.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests/test_core.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests/test_file
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests/base.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests/test.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests/test_disassembler.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/tests/test_bitreader.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/disassembler.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/llvm/bit_reader.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/python/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/build.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/conftest.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/InstrumentationBindings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/DIBuilderBindings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/bitreader.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/transforms_pmbuilder.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/llvm_dep.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/dibuilder.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/InstrumentationBindings.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/DIBuilderBindings.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/llvm_config.go.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/IRBindings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/string_test.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/transforms_ipo.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/string.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/SupportBindings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/ir_test.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/IRBindings.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/ir.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/bitwriter.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/support.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/SupportBindings.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/transforms_instrumentation.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/transforms_scalar.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/analysis.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/linker.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/version.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/target.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/executionengine_test.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/llvm/executionengine.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/bindings/go/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/LICENSE.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-lto
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-lto/llvm-lto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-lto/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-lto/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/calc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/helpers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/main.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/module.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/object.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/include-all.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/targets.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/disassemble.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/llvm-c-test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/echo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-c-test/metadata.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-objdump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-objdump/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-objdump/llvm-objdump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-objdump/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-objdump/ELFDump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-objdump/MachODump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-objdump/llvm-objdump.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-objdump/COFFDump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-rtdyld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-rtdyld/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-rtdyld/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/BinaryHolder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/DwarfLinker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/MachOUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/DebugMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/MachODebugMapParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/dsymutil.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/MachOUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/NonRelocatableStringpool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/dsymutil.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/BinaryHolder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/dsymutil/DebugMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/yaml2obj
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/yaml2obj/yaml2obj.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/yaml2obj/yaml2elf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/yaml2obj/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/yaml2obj/yaml2obj.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/yaml2obj/yaml2coff.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/DiffLog.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/DifferenceEngine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/llvm-diff.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/DiffConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/DifferenceEngine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/DiffConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/DiffLog.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-diff/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-size
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-size/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-size/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-size/llvm-size.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-nm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-nm/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-nm/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-nm/llvm-nm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-extract
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-extract/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-extract/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-extract/llvm-extract.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint-passes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint-passes/bugpoint.exports
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint-passes/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint-passes/TestPasses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dis/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dis/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dis/llvm-dis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/BugDriver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/OptimizerDriver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/ExecutionDriver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/ExtractFunction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/FindBugs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/CrashDebugger.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/Miscompilation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/ToolRunner.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/bugpoint.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/BugDriver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/ListReducer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/bugpoint/ToolRunner.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc-fuzzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc-fuzzer/llvm-mc-fuzzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc-fuzzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-stress
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-stress/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-stress/llvm-stress.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-stress/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-as-fuzzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-as-fuzzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-as-fuzzer/llvm-as-fuzzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/Microsoft.Cpp.Win32.LLVM-vs2010.targets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/Microsoft.Cpp.Win32.LLVM-vs2012.targets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/toolset-vs2013_xp.targets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/toolset-vs2014_xp.targets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/install.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/toolset-vs2013.targets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/toolset-vs2014.targets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/msbuild/uninstall.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CoverageViewOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/SourceCoverageView.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/TestingSupport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/SourceCoverageView.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/RenderingSupport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CoverageFilters.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CodeCoverage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CoverageReport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CoverageFilters.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CoverageSummaryInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/CoverageReport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/gcov.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cov/llvm-cov.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cxxdump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cxxdump/llvm-cxxdump.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cxxdump/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cxxdump/Error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cxxdump/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-cxxdump/Error.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-bcanalyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-bcanalyzer/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-bcanalyzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwp/llvm-dwp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwp/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwp/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-jitlistener
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-jitlistener/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-jitlistener/llvm-jitlistener.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-jitlistener/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-link
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-link/llvm-link.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-link/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-link/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-as-parasitic-coverage-repro
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc/Disassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc/llvm-mc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mc/Disassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-symbolizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-symbolizer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-profdata/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-profdata/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-profdata/llvm-profdata.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-shlib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-shlib/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-shlib/libllvm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llc/llc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-ar
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-ar/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-ar/llvm-ar.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-ar/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-as/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-as/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-as/llvm-as.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-vtabledump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-go/llvm-go.go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-go/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-config
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-config/BuildVariables.inc.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-config/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-config/llvm-config.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/ARMAttributeParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/ARMEHABIPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/llvm-readobj.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/ARMWinEHPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/ELFDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/ARMAttributeParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/COFFImportDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/ObjDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/StreamWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/Error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/COFFDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/ObjDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/StreamWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/Error.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/Win64EHDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/MachODumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/Win64EHDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/CodeView.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/StackMapPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/llvm-readobj.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/obj2yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/obj2yaml/Error.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/obj2yaml/obj2yaml.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/obj2yaml/coff2yaml.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/obj2yaml/obj2yaml.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/obj2yaml/Error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/obj2yaml/elf2yaml.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/obj2yaml/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/RemoteJITUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/ChildTarget
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/ChildTarget/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/ChildTarget/ChildTarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/ChildTarget/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/OrcLazyJIT.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/OrcLazyJIT.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lli/lli.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/xcode-toolchain
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/xcode-toolchain/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/gold/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/gold/gold-plugin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/gold/gold.exports
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/gold/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/verify-uselistorder
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/verify-uselistorder/verify-uselistorder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/verify-uselistorder/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/verify-uselistorder/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mcmarkup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mcmarkup/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mcmarkup/llvm-mcmarkup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-mcmarkup/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/sancov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/sancov/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/sancov/sancov.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lto
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lto/lto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lto/lto.exports
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lto/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/lto/LTODisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/sanstats
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/sanstats/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/sanstats/sanstats.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwarfdump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwarfdump/fuzzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwarfdump/fuzzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwarfdump/fuzzer/llvm-dwarfdump-fuzzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwarfdump/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-dwarfdump/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/BreakpointPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/NewPMDriver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/PassPrinters.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/opt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/PrintSCC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/AnalysisWrappers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/BreakpointPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/NewPMDriver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/GraphPrinters.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/opt/PassPrinters.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-split
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-split/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-split/llvm-split.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-split/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/TypedefDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/EnumDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/TypedefDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/BuiltinDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/CompilandDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/ExternalSymbolDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/EnumDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/CompilandDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/BuiltinDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/ExternalSymbolDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/LinePrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/TypeDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/LinePrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/VariableDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/FunctionDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/TypeDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/VariableDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/FunctionDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/llvm-pdbdump/llvm-pdbdump.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/crosstool
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/crosstool/create-snapshots.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/crosstool/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/crosstool/ARM/build-install-linux.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/crosstool/ARM/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/bugpoint
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/bugpoint/RemoteRunSafely.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/check-each-file
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/examples
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/examples/many-tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/examples/many-tests/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/examples/many-tests/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/examples/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/utils/check-coverage
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/utils/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/utils/check-sdist
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/test-data.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/progress-bar
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/progress-bar/test-1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/progress-bar/test-2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/progress-bar/test-3.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/progress-bar/test-4.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/progress-bar/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/test-data
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/test-data/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/test-data/metrics.ini
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/subdir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/subdir/test-three.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/subdir/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/test-one.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/subsuite
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/subsuite/test-two.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/subsuite/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/subsuite/test-one.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/test-two.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/discovery/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/unittest-adaptor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/unittest-adaptor/test-two.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/unittest-adaptor/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/unittest-adaptor/test-one.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/exec-discovery
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/exec-discovery/lit.site.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/exec-discovery-in-tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/exec-discovery-in-tree/test-one.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/exec-discovery-in-tree/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/exec-discovery-in-tree/obj
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/exec-discovery-in-tree/obj/lit.site.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-timeout
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-timeout/infinite_loop.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-timeout/quick_then_slow.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-timeout/short.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-timeout/slow.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/sequencing-0.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/sequencing-1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/redirects.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/error-0.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/write-to-stderr.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/write-to-stdout-and-stderr.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/error-1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/error-2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-shell/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/googletest-timeout
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/googletest-timeout/DummySubDir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/googletest-timeout/DummySubDir/OneTest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/requires-present.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/no-test-line.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/xpass.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/argv0.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/pass.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/requires-missing.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/xfail-target.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/unsupported_dir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/unsupported_dir/some-test.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/unsupported_dir/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/external_shell
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-bad-encoding.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/external_shell/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_bad_encoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/external_shell/pass.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/fail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/shtest-format/xfail-feature.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/googletest-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/Inputs/googletest-format/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/shtest-encoding.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/shtest-timeout.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/googletest-timeout.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/shtest-format.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/googletest-format.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/usage.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/xunit-output.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/progress-bar.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/.coveragerc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/discovery.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/unittest-adaptor.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/shell-parsing.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/test-output.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/tests/shtest-shell.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/TODO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/setup.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/LitConfig.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/ExampleTests.ObjDir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/ExampleTests.ObjDir/lit.site.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/Test.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/TestingConfig.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/LitTestCase.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/formats
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/formats/googletest.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/formats/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/formats/base.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/formats/shtest.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/main.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/run.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/discovery.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/ShUtil.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/ProgressBar.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/TestRunner.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/ShCommands.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/lit/util.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/MANIFEST.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lit/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvmgrep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/vimrc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/indent
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/indent/llvm.vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/ftdetect
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/ftdetect/llvm.vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/ftdetect/llvm-lit.vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/ftdetect/tablegen.vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/syntax
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/syntax/llvm.vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/syntax/tablegen.vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/ftplugin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/ftplugin/tablegen.vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/vim/ftplugin/llvm.vim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/findoptdiff
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/buildit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/GetRepositoryPath
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm.grm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-lit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-lit/llvm-lit.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-lit/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/not
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/not/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/not/not.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/shuffle_fuzz.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-native-gxx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/sort_includes.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/PerfectShuffle
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/PerfectShuffle/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/PerfectShuffle/PerfectShuffle.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/fpcmp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/fpcmp/fpcmp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lint
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lint/remove_trailing_whitespace.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lint/cpp_lint.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lint/common_lint.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lint/generic_lint.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/GetSourceVersion
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build/llvm-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build/llvmbuild
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build/llvmbuild/main.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build/llvmbuild/util.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build/llvmbuild/componentinfo.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build/llvmbuild/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build/llvmbuild/configutil.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-build/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/KillTheDoctor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/KillTheDoctor/KillTheDoctor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/KillTheDoctor/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/testgen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/testgen/mc-bundling-x86-gen.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/bisect
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/test_debuginfo.pl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/LLVMVisualizers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/LLVMVisualizers/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/LLVMVisualizers/llvm.natvis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/UpdateCMakeLists.pl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/findmisopt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/FileCheck
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/FileCheck/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/FileCheck/FileCheck.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/yaml-bench
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/yaml-bench/YAMLBench.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/yaml-bench/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/release
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/release/findRegressions-simple.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/release/tag.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/release/test-release.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/release/findRegressions-nightly.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/release/merge.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/release/build_llvm_package.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/release/export.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenSchedule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/X86RecognizableInstr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CTagsEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/IntrinsicEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenRegisters.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/DAGISelMatcherOpt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/SequenceToOffsetTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/PseudoLoweringEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/DAGISelEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/InstrInfoEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/DFAPacketizerEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/DAGISelMatcherGen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenDAGPatterns.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/DisassemblerEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/OptParserEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenMapTable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenTarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/AsmWriterInst.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenInstruction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/DAGISelMatcher.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/X86ModRMFilters.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/AsmMatcherEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenIntrinsics.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/X86DisassemblerShared.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenSchedule.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/X86DisassemblerTables.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/Attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CallingConvEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/RegisterInfoEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/SubtargetEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeEmitterGen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/X86RecognizableInstr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenRegisters.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/FastISelEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/tdtags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenInstruction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/AsmWriterEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/X86DisassemblerTables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/AsmWriterInst.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/CodeGenTarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/TableGenBackends.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/TableGen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/DAGISelMatcher.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/TableGen/X86ModRMFilters.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/abtest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/abtest/mark_aarch64fns.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/abtest/mark_armfns.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/abtest/abtest.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/update_llc_test_checks.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/findsym.pl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/wciia.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/kate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/kate/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/kate/llvm.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/create_ladder_graph.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/Target
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/Target/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/Target/ARM/analyze-match-table.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/git-svn
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/git-svn/git-svnup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/git-svn/git-svnrevert
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/emacs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/emacs/llvm-mode.el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/emacs/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/emacs/tablegen-mode.el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/emacs/emacs.el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/count
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/count/count.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/count/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/update_test_checks.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/DSAextract.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/Misc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/Misc/zkill
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/Misc/mergefunctions.clang.svn.patch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/textmate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/textmate/TableGen.tmbundle
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/textmate/TableGen.tmbundle/Syntaxes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/textmate/TableGen.tmbundle/Syntaxes/TableGen.tmLanguage
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/textmate/TableGen.tmbundle/info.plist
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/textmate/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvmdo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/countloc.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/jedit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/jedit/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/jedit/tablegen.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/DSAclean.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/lldbDataFormatters.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/valgrind
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/valgrind/i386-pc-linux-gnu.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/valgrind/x86_64-pc-linux-gnu.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/makellvm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/codegen-diff
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/schedcover.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/clang-parse-diagnostics-file
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/UnitTestMain
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/UnitTestMain/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/UnitTestMain/TestMain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/LICENSE.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest-param-test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest_pred_impl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest-death-test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest-typed-test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-port.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-string.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-param-util-generated.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-tuple.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-linked_ptr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-param-util.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-death-test-internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-filepath.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/internal/gtest-type-util.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest-test-part.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest-message.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest-printers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest_prod.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/include/gtest/gtest-spi.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/README.LLVM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest-death-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest-typed-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest-test-part.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest-port.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest-printers.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest-all.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest-filepath.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/googletest/src/gtest-internal-inl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/unittest/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/llvm-compilers-check
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/git
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/git/find-rev
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/getsrcs.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/utils/GenLibDeps.pl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/DebugInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/DebugInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/DebugInfo/DWARF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/DebugInfo/DWARF/DWARFFormValueTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/DebugInfo/PDB
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/DebugInfo/PDB/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/DebugInfo/PDB/PDBApiTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/CodeGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/CodeGen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/CodeGen/DIEHashTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MI
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MI/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MI/LiveIntervalTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/PointerIntPairTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/DenseSetTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/APIntTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/SetVectorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/SparseBitVectorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/SCCIteratorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/SparseMultiSetTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/ilistTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/OptionalTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/PointerUnionTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/SmallVectorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/TinyPtrVectorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/RangeAdapterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/IntEqClassesTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/DeltaAlgorithmTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/PointerEmbeddedIntTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/PointerSumTypeTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/SparseSetTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/SmallPtrSetTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/PackedVectorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/ArrayRefTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/DAGDeltaAlgorithmTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/ImmutableMapTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/IntrusiveRefCntPtrTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/HashingTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/FunctionRefTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/IntervalMapTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/TwineTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/APFloatTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/VariadicFunctionTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/PostOrderIteratorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/ImmutableSetTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/DenseMapTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/APSIntTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/FoldingSet.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/SmallStringTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/TripleTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/MapVectorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/BitVectorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/StringRefTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/MakeUniqueTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/StringMapTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Option
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Option/Opts.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Option/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Option/OptionParsingTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Bitcode
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Bitcode/BitReaderTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Bitcode/BitstreamWriterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Bitcode/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Bitcode/BitstreamReaderTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/MDBuilderTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/ValueMapTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/WaymarkTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/VerifierTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/ValueTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/ConstantsTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/DominatorTreeTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/AsmWriterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/UserTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/MetadataTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/IRBuilderTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/IntrinsicsTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/LegacyPassManagerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/AttributesTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/TypeBuilderTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/ValueHandleTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/PatternMatch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/UseTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/PassManagerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/DebugInfoTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/TypesTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/InstructionsTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/IR/ConstantRangeTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/AlignOfTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/YAMLParserTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ThreadLocalTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/TypeNameTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/LockFileManagerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/UnicodeTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/Casting.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/IteratorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ErrorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/FileOutputBufferTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/SwapByteOrderTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/Path.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/EndianTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ConvertUTFTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/StringPool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/LineIteratorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/TargetParserTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ScaledNumberTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/DataExtractorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/SourceMgrTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ArrayRecyclerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/SpecialCaseListTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/StreamingMemoryObjectTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/RegexTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ReplaceFileTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/MathExtrasTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/AllocatorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/TimerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/raw_ostream_test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/TrailingObjectsTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/MD5Test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/CommandLineTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/formatted_raw_ostream_test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/YAMLIOTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ErrorOrTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/TimeValueTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/raw_pwrite_stream_test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/LEB128Test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/BranchProbabilityTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ThreadPool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/CompressionTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/MemoryBufferTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/DwarfTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ManagedStatic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ProgramTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/MemoryTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/EndianStreamTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/BlockFrequencyTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Support/ProcessTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/UnrollAnalyzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/CGSCCPassManagerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/BlockFrequencyInfoTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/LoopPassManagerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/AliasAnalysisTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/CallGraphTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/LazyCallGraphTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/MixedTBAATest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/CFGTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Analysis/ValueTrackingTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Linker
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Linker/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Linker/LinkModulesTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ObjectYAML
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ObjectYAML/YAMLTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ObjectYAML/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/IndirectionUtilsTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/GlobalMappingLayerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/LazyEmittingLayerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/ObjectLinkingLayerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/JIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/MCJITObjectCacheTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/MCJITTests.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/MCJITTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/MCJITTestBase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/MCJITMemoryManagerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ExecutionEngine/ExecutionEngineTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ProfileData
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ProfileData/InstrProfTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ProfileData/CoverageMappingTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ProfileData/SampleProfTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ProfileData/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/AsmParser/AsmParserTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/IPO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/IPO/WholeProgramDevirt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/IPO/LowerBitSets.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/IPO/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/Utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/Utils/Cloning.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/Utils/Local.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/Utils/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/Utils/MemorySSA.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/Utils/ASanStackFrameLayoutTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/Utils/ValueMapperTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/Transforms/Utils/IntegerDivision.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/LineEditor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/LineEditor/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/LineEditor/LineEditor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MC/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MC/Disassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MC/TargetRegistry.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MC/StringTableBuilderTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/MC/DwarfLineTables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/.gitignore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IRReader
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IRReader/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IRReader/IRReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IRReader/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/LLParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/LLLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/LLParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/LLLexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/Parser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/AsmParser/LLToken.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LineEditor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LineEditor/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LineEditor/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LineEditor/LineEditor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LTO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LTO/ThinLTOCodeGenerator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LTO/LTOModule.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LTO/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LTO/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LTO/LTOCodeGenerator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Passes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Passes/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Passes/PassBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Passes/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Passes/PassRegistry.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LICM.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LowerAtomic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/NaryReassociate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/ADCE.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopDeletion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/SCCP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopRotation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/ConstantProp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/GVN.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/DCE.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/BDCE.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/Reg2Mem.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/Scalarizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/JumpThreading.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/Float2Int.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/Reassociate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/Sink.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/SROA.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/Scalar.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/EarlyCSE.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoopDistribute.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Scalar/LoadCombine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/LowerBitSets.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/IPO.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/InlineSimple.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/MergeFunctions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/InlineAlways.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/Inliner.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/SampleProfile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/LoopExtractor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/PruneEH.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/ExtractGV.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/ConstantMerge.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/StripSymbols.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/GlobalDCE.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/FunctionImport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/GlobalOpt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/PartialInlining.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/Internalize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Vectorize
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Vectorize/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Vectorize/Vectorize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Vectorize/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Vectorize/BBVectorize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LoopSimplify.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/SymbolRewriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LoopUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/Utils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/IntegerDivision.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/AddDiscriminators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/GlobalStatus.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/InstructionNamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LoopUnroll.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/CloneFunction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/ModuleUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LowerSwitch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/MemorySSA.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/ValueMapper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/CmpInstAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/InlineFunction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/SanitizerStats.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/CtorUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/Local.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/Mem2Reg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/MetaRenamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/SplitModule.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/Evaluator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LowerInvoke.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/DemoteRegToStack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LCSSA.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/BuildLibCalls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/CloneModule.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/CodeExtractor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/SSAUpdater.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/LoopVersioning.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/FlattenCFG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Hello
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Hello/Hello.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Hello/Hello.exports
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Hello/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/MaximumSpanningTree.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/CFGMST.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/PtrState.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ObjCARC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/PtrState.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/BlotMapVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/DependencyAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCTargetOptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCMachObjectTargetWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCFragment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/StringTableBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCELFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCObjectStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCWinEH.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCValue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MachObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCAssembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCNullStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/WinCOFFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCLinkerOptimizationHint.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCObjectFileInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCMachOStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCSectionELF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCSchedule.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/SubtargetFeature.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/WinCOFFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCELFObjectTargetWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCAnalysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCSectionCOFF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCInstrAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDwarf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCSection.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCSymbol.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCCodeView.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/ELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/ELFAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/MCAsmParserExtension.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/COFFAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/AsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/MCAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/AsmLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/MCAsmLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCParser/DarwinAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCSectionMachO.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCSubtargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCInst.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCLabel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCCodeGenInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCAsmInfoELF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCAsmStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCWin64EH.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/ConstantPools.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCAsmInfoCOFF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler/MCSymbolizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler/Disassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler/MCRelocationInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler/Disassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCSymbolELF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCInstrDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/MC/MCAsmInfoDarwin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/Symbolize
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/Symbolize/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/Symbolize/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/DWARF/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/MethodListRecordBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/FieldListRecordBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/Line.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/TypeRecordBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/MemoryTypeTableBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/TypeTableBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/CodeView/ListRecordBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypePointer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeDimension.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolThunk.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolBlock.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolUnknown.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSymbols.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIALineNumber.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIADataStream.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIAEnumLineNumbers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIAEnumSourceFiles.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/DIA/DIAEnumDebugStreams.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeTypedef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolUsingNamespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolPublicSymbol.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFriend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolAnnotation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolCustom.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandDetails.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolLabel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBExtras.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolExe.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/IPDBSourceFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDB.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeManaged.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeCustom.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbol.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolCompilandEnv.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/PDB/PDBSymbolTypeVTable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/DebugInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/Analysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveVariables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TargetLoweringBase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/PHIEliminationUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegAllocBasic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/UnreachableBlockElim.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/InterferenceCache.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SjLjEHPrepare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ExpandISelPseudos.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/CriticalAntiDepBreaker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineSSAUpdater.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineCopyPropagation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SafeStack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveInterval.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GCRootLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LLVMTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ScheduleDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineTraceMetrics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveIntervalUnion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/VirtRegMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/EdgeBundles.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TargetInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveStackAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LexicalScopes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/PHIEliminationUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineVerifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SlotIndexes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/ByteStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/WinException.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfException.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/AsmPrinterHandler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DIE.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DIEHash.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/WinException.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/AddressPool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/IfConversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LatencyPriorityQueue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineFunction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveRangeEdit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineCombiner.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LivePhysRegs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegisterClassInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/FaultMaps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/BranchFolding.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/CallingConvLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineLICM.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/InlineSpiller.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegisterCoalescer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/DFAPacketizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineInstrBundle.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/PrologEpilogInserter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/Spiller.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LowerEmuTLS.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/CodeGenPrepare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineRegionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ShrinkWrap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ShadowStackGCLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/Passes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineFunctionPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/InterferenceCache.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AtomicExpandPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/PeepholeOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveRangeCalc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/IntrinsicLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AllocationOrder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SpillPlacement.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveRegMatrix.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TailDuplication.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ExecutionDepsFix.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegAllocBase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GCMetadataPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveRangeCalc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/EarlyIfConversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineScheduler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/StackSlotColoring.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/StackProtector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TargetRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SplitKit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachinePostDominators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegAllocPBQP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegAllocBase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegisterScavenging.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GlobalISel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GlobalISel/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/FuncletLayout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/DwarfEHPrepare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/BranchFolding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SplitKit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveDebugVariables.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegAllocFast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GCStrategy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/PseudoSourceValue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineFunctionAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GlobalMerge.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineBasicBlock.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/OptimizePHIs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineInstr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/StackMaps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineModuleInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveDebugValues.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineSink.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineDominanceFrontier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/LiveDebugVariables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TargetSchedule.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/PostRASchedulerList.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/BuiltinGCs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineDominators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineBlockPlacement.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/SpillPlacement.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRParser/MIParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRParser/MILexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRParser/MIParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRParser/MILexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachinePassRegistry.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/TargetOptionsImpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AntiDepBreaker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/AllocationOrder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ImplicitNullChecks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegAllocGreedy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MIRPrintingPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/WinEHPrepare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/GCMetadata.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineCSE.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/CalcSpillWeights.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/StackColoring.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/CodeGen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegisterCoalescer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ParallelCG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/PHIElimination.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/MachineLoopInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/InterleavedAccessPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CodeGen/RegisterPressure.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/Error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/ELFObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/SymbolSize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/IRObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/COFFObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/ELF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/Object.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/ObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/ArchiveWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/MachOObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/MachOUniversal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/RecordStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/Archive.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/SymbolicFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/ModuleSummaryIndexObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/Binary.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/RecordStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Object/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Option
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Option/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Option/Option.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Option/Arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Option/OptTable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Option/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Option/ArgList.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Reader
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Reader/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Reader/BitstreamReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Reader/BitReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Reader/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Writer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Writer/ValueEnumerator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Writer/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Writer/BitWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Writer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/MetadataImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/TypeFinder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Verifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Value.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/User.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Globals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/GVMaterializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/ConstantsContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/SymbolTableListTraitsImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Core.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/DiagnosticPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Statepoint.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/AttributeImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Use.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/BasicBlock.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/GCOV.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/ConstantFold.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/LLVMContextImpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/ValueTypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/DebugInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/DebugInfoMetadata.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/ConstantRange.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Pass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/MDBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Comdat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/DataLayout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/ValueSymbolTable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Constants.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/AsmWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/LLVMContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/InlineAsm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Dominators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/AutoUpgrade.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Metadata.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/IRBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Instruction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/DebugLoc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Mangler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Module.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/LegacyPassManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/AttributesCompatFunc.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/ModuleSummaryIndex.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/PassRegistry.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/DiagnosticInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/IntrinsicInst.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/PassManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/ConstantFold.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/DIBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/Instructions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/IRPrintingPasses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/IR/LLVMContextImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/StreamingMemoryObject.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/TargetRegistry.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/DataStream.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Errno.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/CommandLine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regcname.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/LEB128.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/GraphWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Locale.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/DeltaAlgorithm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Watchdog.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ThreadPool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Mutex.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regutils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Dwarf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Valgrind.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Program.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/DynamicLibrary.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/SmallPtrSet.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/DAGDeltaAlgorithm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Process.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/YAMLParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/IntrusiveRefCntPtr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Hashing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regexec.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ThreadLocal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/IntervalMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/LockFileManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/raw_os_ostream.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/CrashRecoveryContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Twine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regerror.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/YAMLTraits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regcomp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/PrettyStackTrace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/StringExtras.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ToolOutputFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/FoldingSet.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/APSInt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Triple.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/StringPool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regex2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/FormattedStream.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/LineIterator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/StringMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Threading.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/SourceMgr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Statistic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/StringSaver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/circular_raw_ostream.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/SpecialCaseList.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/Host.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/COM.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/Process.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/Signals.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/Watchdog.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/Mutex.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/ThreadLocal.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/WindowsSupport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/Program.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/Memory.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/DynamicLibrary.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/explicit_symbols.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/RWMutex.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/TimeValue.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Windows/Path.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Regex.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ARMWinEH.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/APInt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regcclass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/README.txt.system
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ARMBuildAttrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/COM.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regfree.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/MathExtras.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Allocator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Timer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/MD5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regengine.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Options.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/SmallVector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/TimeValue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/IntEqClasses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/BranchProbability.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ErrorHandling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ConvertUTF.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/RandomNumberGenerator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ConvertUTFWrapper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Compression.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/MemoryBuffer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Program.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Memory.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/RWMutex.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/TimeValue.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Path.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Host.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/COM.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Process.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Signals.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Watchdog.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Unix.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/Mutex.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/ThreadLocal.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unix/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ManagedStatic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/SystemUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Memory.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/RWMutex.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/FileUtilities.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/BlockFrequency.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Atomic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Host.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/raw_ostream.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/PluginLoader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Unicode.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Debug.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/APFloat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/FileOutputBuffer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Path.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regstrlcpy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/SearchForAddressOfSpecialSymbol.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/JamCRC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/MemoryObject.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/regex_impl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/COPYRIGHT.regex
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/Signals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/TargetParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/StringRef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/ScaledNumber.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Support/DataExtractor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/StringMatcher.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/TGLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/TGParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/Record.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/TGLexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/Main.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/SetTheory.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/TGParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/Error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/TableGen/TableGenBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LibDriver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LibDriver/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LibDriver/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LibDriver/Options.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/LibDriver/LibDriver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/BranchProbabilityInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/RegionPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/GlobalsModRef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/DemandedBits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/LoopInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/AssumptionCache.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/TargetLibraryInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/BlockFrequencyInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/IteratedDominanceFrontier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ConstantFolding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/TargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/EHPersonalities.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/DependenceAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/BasicAliasAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CFG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/IVUsers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/LoopPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/StratifiedSets.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CGSCCPassManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/DominanceFrontier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ObjCARCInstKind.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ScalarEvolution.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CallPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/AliasSetTracker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/Analysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/VectorUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/Interval.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/PostDominators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CostModel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/PtrUseVisitor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CFGPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/Lint.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/InlineCost.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/MemoryBuiltins.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/PHITransAddr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ScopedNoAliasAA.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/InstCount.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/LazyValueInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/AliasAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CallGraph.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/Trace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/LoopAccessAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/MemoryLocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CodeMetrics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/SparsePropagation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/Loads.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/MemDepPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CallGraphSCCPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/IntervalPartition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/DivergenceAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/Delinearization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CFLAliasAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/DomPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/CaptureTracking.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/RegionPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/MemDerefPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/LoopPassManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/LazyCallGraph.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/InstructionSimplify.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/ValueTracking.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/RegionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Analysis/OrderedBasicBlock.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Linker
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Linker/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Linker/IRMover.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Linker/LinkDiagnosticInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Linker/LinkModules.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Linker/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/cxx.dict
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerTraceState.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerMutate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerInterface.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerDFSan.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerInterface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerIO.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerFlags.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerFnAdapter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerLoop.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerUtil.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerInternal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerTracePC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerMain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerCrossOver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/SwitchTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-fn-adapter.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/CallerCalleeTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/FuzzerFnAdapterUnittest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/dfsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/dfsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-dfsan.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/LeakTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/trace-pc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/trace-pc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/SimpleFnAdapterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-trace-pc.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/ThreadedTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/LeakTimeoutTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-drill.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/CustomMutatorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/StrncmpTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/TimeoutTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/RepeatedMemcmp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/SimpleTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/merge.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/hi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/InitializeTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-traces.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/dict1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-dict.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/uninstrumented
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/uninstrumented/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-timeout.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/StrcmpTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/BufferOverflowOnInput.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/MemcmpTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/SimpleDictionaryTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/CounterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/NullDerefTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/UninstrumentedTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/SpamyTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/SimpleCmpTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/FullCoverageSetTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-leak.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/SimpleHashTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/unit/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/unit/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/trace-bb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/trace-bb/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/FourIndependentBranchesTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/NthRunCrashTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/test/fuzzer-threaded.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerDriver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Fuzzer/FuzzerSHA1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/TargetSubtargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/TargetLoweringObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/TargetIntrinsicInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Target.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPF.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFMCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/BPF/BPFTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsAsmPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMipsInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsCondMov.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSEISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsCCState.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMips64r6InstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsISelDAGToDAG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsTargetStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSEFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsDSPInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16FrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSEInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16ISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16HardFloat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsEVAInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsOptionRecord.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsLongBranch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMipsDSPInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsMSAInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips64r6InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16InstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsHazardSchedule.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsDSPInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsAnalyzeImmediate.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16InstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsEVAInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16HardFloatInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsInstrFPU.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsMachineFunction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMipsInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips64InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsScheduleP5600.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16RegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16FrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16ISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSchedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MSA.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16InstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips32r6InstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMipsDSPInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsMSAInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16ISelDAGToDAG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsFastISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsMachineFunction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsCCState.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsOs16.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMipsInstrFPU.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSERegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsSEISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsMCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/Mips32r6InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Mips/MipsAnalyzeImmediate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/Sparc.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/DelaySlotFiller.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/Sparc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcInstrAliases.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcInstr64Bit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcInstrVIS.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/InstPrinter/SparcInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcTargetStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcTargetStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssembly.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrCall.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyRegNumbering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyArgumentMove.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyPEI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssembly.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyISD.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600EmitClauseMarkers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIMachineScheduler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600Packetizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Utils/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPU.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/CaymanInstructions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIInsertNopsPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600InstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600Defines.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600RegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600Instructions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPU.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/CIInstructions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600RegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIDefines.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/VIInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600ISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIInstructions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDKernelCodeT.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/Processors.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600InstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/VIInstructions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600TextureIntrinsicsReplacer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/EvergreenInstructions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R700Instructions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUIntrinsics.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600RegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600MachineScheduler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUIntrinsicInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600Intrinsics.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIFixControlFlowLiveIntervals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600Schedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600ClauseMergePass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIFixSGPRLiveRanges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SITypeRewriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600MachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SIIntrinsics.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/SISchedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/R600MachineScheduler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUFixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZOperands.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZOperators.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZCallingConv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZInstrVector.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZInstrFP.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZMCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZProcessors.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZAsmPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZCallingConv.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/InstPrinter/SystemZInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZ.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZLongBranch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZConstantPoolValue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZ.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCFixups.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/SystemZ/SystemZPatterns.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCHazardRecognizers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/README_ALTIVEC.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPC.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCSchedule440.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleG5.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrAltivec.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/p9-instrs.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCFastISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleG4.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrQPX.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCSchedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleP8.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrSPE.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleE5500.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleG3.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrVSX.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleP7.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleE500mc.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrHTM.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTargetStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/README_P9.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCCallingConv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleA2.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCPerfectShuffle.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCScheduleG4Plus.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/PowerPC/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXBaseInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTX.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXMCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTX.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXInferAddressSpaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXUtilities.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXVector.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVVMReflect.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/InstPrinter/NVPTXInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/InstPrinter/NVPTXInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXPeephole.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXMCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXAllocaHoisting.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/cl_common_defines.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXSection.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXUtilities.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/NVPTXInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/NVPTX/ManagedStringPool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/LICENSE.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMCallingConv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMFastISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/A15SDOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARM.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMScheduleV6.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMInstrNEON.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARM.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ThumbRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMInstrThumb2.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMScheduleA9.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMBaseInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MLxExpansionPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMSelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMFeatures.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMAsmPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Thumb2InstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMHazardRecognizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMPerfectShuffle.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMScheduleA8.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMSchedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMInstrThumb.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMConstantPoolValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Thumb1FrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/README-Thumb2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMScheduleSwift.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMInstrVFP.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/Thumb1InstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/README-Thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/ARM/ARMISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCore.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCore.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/InstPrinter/XCoreInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/InstPrinter/XCoreInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreMCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreSelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreFrameToArgsOffsetElim.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/XCore/XCoreTargetStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/Lanai.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiBaseInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiAluCode.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/InstPrinter/LanaiInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/InstPrinter/LanaiInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiSetflagAluCombiner.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiMCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiSelectionDAGInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiSchedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiCondCode.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/Lanai.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86FloatingPoint.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/README-FPStack.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrCompiler.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86SelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86RegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86PadShortFunction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86MachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrCMovSetCC.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86CallFrameOptimization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ExpandPseudo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86RegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86FixupBWInsts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86FrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrFMA.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Utils/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Utils/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86FastISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrXOP.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86TargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrExtension.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86VZeroUpper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrTSX.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/README-MMX.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86AsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrSystem.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86Subtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86FixupLEAs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86FrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86CallingConv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86RegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrMMX.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86IntrinsicsInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrMPX.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86TargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86Schedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86TargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/README-UNIMPLEMENTED.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86AsmPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrAVX512.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86SchedHaswell.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ScheduleSLM.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/README-X86-64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrSSE.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86Instr3DNow.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrFPStack.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86Subtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/AsmParser/X86Operand.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86MCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrSVM.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86WinEHState.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/README-SSE.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86TargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrVMX.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86CallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrControl.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Disassembler/X86Disassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86MachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86SchedSandyBridge.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/InstPrinter/X86InstComments.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrArithmetic.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrShiftRotate.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ScheduleAtom.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86TargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86OptimizeLEAs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ScheduleBtVer2.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86InstrSGX.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430Subtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430Subtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430RegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430MCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430FrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430ISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430MCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430InstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430InstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430TargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430CallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430RegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRConfig.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/TODO.md
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRSelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVR.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVRInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AVR/AVR.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64FixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SchedA53.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SchedKryoDetails.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SchedA57.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SchedM1.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64MCInstLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64InstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64CallLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64BranchRelaxation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64RegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SchedCyclone.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64CallingConvention.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64FrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64FastISel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64InstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64TargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SchedKryo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64CallLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64Subtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64InstrAtomics.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64RegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Utils/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/Utils/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64ISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64SchedA57WriteRes.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64CallingConvention.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64Schedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/InstPrinter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/InstPrinter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/InstPrinter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64AddressTypePromotion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64InstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64Subtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonFixupKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrInfoV5.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonIntrinsicsDerived.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/RDFDeadCode.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/RDFLiveness.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonRDF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/BitTracker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSchedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/Disassembler/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/Disassembler/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonIsetDx.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSelectCCInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrInfoV60.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonPeephole.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonGenMux.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSubtarget.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrInfoV4.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonRDF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/Hexagon.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonIntrinsicsV5.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/BitTracker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/RDFCopy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonOperands.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrInfoV3.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrEnc.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonIntrinsics.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrFormatsV60.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrFormats.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonScheduleV55.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonIntrinsicsV4.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/RDFGraph.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrFormatsV4.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonScheduleV4.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonBitTracker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/RDFCopy.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/Hexagon.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/RDFLiveness.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/RDFDeadCode.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSelectionDAGInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonScheduleV60.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrInfoVector.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/RDFGraph.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonIntrinsicsV3.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonInstrAlias.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonBlockRanges.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/AsmParser/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/AsmParser/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonSystemInst.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/Hexagon/HexagonISelLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend/TargetInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend/TargetInfo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend/TargetInfo/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend/CPPTargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/CppBackend/CPPBackend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/TargetRecip.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/TargetMachine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/Target/TargetMachineC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/JIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/MCJIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/MCJIT/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/MCJIT/ObjectBuffer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/MCJIT/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/OProfileJIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/OProfileJIT/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/OProfileJIT/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/OProfileJIT/OProfileWrapper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_types.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/IntelJITEvents/ittnotify_config.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/TargetSelect.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/ExecutionEngine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCheckerImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/Targets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFX86_64.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOAArch64.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOI386.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOX86_64.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Interpreter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Interpreter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Interpreter/Interpreter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Interpreter/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/NullResolver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/OrcError.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/OrcArchitectureSupport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ObjectYAML
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ObjectYAML/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ObjectYAML/ELFYAML.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ObjectYAML/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ObjectYAML/COFFYAML.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ObjectYAML/YAML.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/CoverageMappingReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/SampleProfReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/ProfileSummary.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/InstrProfWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/CoverageMappingWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/SampleProfWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/InstrProf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/CoverageMapping.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/SampleProf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/lib/ProfileData/InstrProfReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/llvm.spec.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/.arcconfig
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/.clang-tidy
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/resources
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/resources/windows_version_resource.rc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/CREDITS.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Fibonacci
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Fibonacci/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Fibonacci/fibonacci.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/BrainF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/BrainF/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/BrainF/BrainFDriver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/BrainF/BrainF.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/BrainF/BrainF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter3/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter3/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter4/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter4/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter5/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter5/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter6/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter6/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter7/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter7/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter8/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter8/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/lazy_codegen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/lazy_codegen/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/lazy_codegen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/lazy_irgen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/lazy_irgen/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/lazy_irgen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/initial
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/initial/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/initial/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/initial/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/fully_lazy
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/fully_lazy/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/fully_lazy/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Orc/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/include/KaleidoscopeJIT.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/cached
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/cached/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/cached/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/cached/genk-timing.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/cached/toy-jit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/cached/split-lib.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/complete
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/complete/genk-timing.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/complete/split-lib.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/complete/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/complete/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/initial
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/initial/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/initial/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/lazy
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/lazy/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/lazy/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/lazy/genk-timing.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/MCJIT/lazy/toy-jit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter2/toy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/Kaleidoscope/Chapter2/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ExceptionDemo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ExceptionDemo/ExceptionDemo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ExceptionDemo/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ParallelJIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ParallelJIT/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ParallelJIT/ParallelJIT.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/HowToUseJIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/HowToUseJIT/HowToUseJIT.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/HowToUseJIT/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ModuleMaker
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ModuleMaker/ModuleMaker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ModuleMaker/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/ModuleMaker/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter2/parser.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter2/lexer.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter2/token.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter2/_tags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter2/ast.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter2/toplevel.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter2/toy.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/codegen.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/_tags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/ast.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/toplevel.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/toy.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/parser.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/lexer.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/token.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter3/myocamlbuild.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/toy.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/parser.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/lexer.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/token.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/myocamlbuild.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/codegen.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/_tags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/ast.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/bindings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter4/toplevel.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/ast.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/bindings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/toplevel.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/toy.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/parser.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/lexer.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/token.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/myocamlbuild.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/codegen.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter5/_tags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/_tags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/ast.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/bindings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/toplevel.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/toy.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/parser.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/lexer.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/token.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/myocamlbuild.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter6/codegen.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/_tags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/ast.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/bindings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/toplevel.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/toy.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/parser.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/lexer.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/token.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/myocamlbuild.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/examples/OCaml-Kaleidoscope/Chapter7/codegen.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/dilocalvariable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/bcwrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocalvariable-null-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-04-04-GetElementPtrIndexTypes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-function-missing-named.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-05-21-EmptyStructTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocation-null-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-01-16-CrashOnBadCast2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2008-09-29-RetAttr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/private-hidden-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/large-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-01-11-getelementptrfolding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2009-07-24-ZeroArgGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-ditemplatetypeparameter-missing-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-fp80hex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-01-02-Undefined-Arg-Type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dicompileunit-language-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-comdat2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getelementptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-11-24-SymbolTableCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/tls-models.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/auto_upgrade_intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid_cast4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/distinct-mdnode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-05-15-SwitchBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-indexes-ordered.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-metadata-function-local-attachments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2009-02-28-CastOpc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/ConstantExprNoFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/unnamed-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-function-between-blocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dicompileunit-language-bad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2009-03-24-ZextConstantExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout22.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/insertvalue-invalid-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-diderivedtype-missing-tag.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/unsized-recursive-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/alias-redefinition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-disubrange-lowerBound-max.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-05-21-MalformedShiftCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/dilocalvariable-arg-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocalvariable-missing-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getelementptr_vec_struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-metadata-function-local-complex-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/private-protected-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-disubrange-count-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-debug-info-version.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/private-hidden-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/ditemplateparameter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-indexes-toomany.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/externally-initialized.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-ditemplatevalueparameter-missing-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/aggregate-return-single-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2006-12-09-Cast-To-Bool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/alloca-invalid-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout19.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-04-29-NameBinding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-gep-mismatched-explicit-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/unnamed-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/source-filename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/gv-invalid-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/drop-debug-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-11-11-ImplicitRename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-hexint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-safestack-param.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-11-26-AttributeOverload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-untyped-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-05-02-InvalidForwardRef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/internal-protected-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-04-15-ConstantInitAssertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-08-20-ConstantExprGEP-Fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/disubprogram.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-disubrange-lowerBound-min.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dienumerator-missing-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getelementptr_invalid_ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder_bb-numbered.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-08-19-BytecodeReader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/alloca-size-one.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2005-05-05-OpaqueUndefValues.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-05-15-AssemblerProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-05-21-Escape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout23.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getelementptr_vec_idx1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2005-01-03-FPConstantDisassembly.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-03-19-NegValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-07-25-ReturnPtrFunction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2008-07-10-APInt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-safestack-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-04-20-AlignedStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/source-filename-backslash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-01-16-CrashOnBadCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/dinamespace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/dilexicalblock.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2005-01-31-CallingAggregateFunction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-05-21-ConstantShiftExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2009-02-28-StripOpaqueName.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/diexpression.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilexicalblock-null-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-03-07-FunctionAddressAlignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-10-22-BCWriterUndefBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/generic-debug-node.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getelementptr_struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/uselistorder.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/internal-protected-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/alloca-invalid-type-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/unnamed-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-10-08-LargeArrayPerformance.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocation-overflow-line.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/named-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2006-09-28-CrashOnInvalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder_bb-missing-func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-mdnode-vector2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-load-mismatched-explicit-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/vector-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/ditype-large-values.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/private-protected-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-01-05-Cmp-ConstExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-generic-debug-node-tag-wrong-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getInt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-disubrange-count-negative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2009-02-01-UnnamedForwardRef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-indexes-range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid_cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-label.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder_bb-missing-bb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-gep-missing-explicit-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-disubrange-count-missing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-08-22-DominanceProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/align-inst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-04-25-AssemblerFoldExternWeak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/incorrect-tdep-attrs-parsing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/vector-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-diglobalvariable-empty-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-indexes-duplicated.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/inalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-12-15-GlobalResolve.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-specialized-mdnode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-mdnode-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/MultipleReturnValueType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/internal-hidden-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/diobjcproperty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getelementptr_vec_idx2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-11-28-InvalidTypeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder_bb-not-func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-05-12-MinIntProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2008-02-18-IntPointerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-12-11-AddressSpaces.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-03-18-InvalidNumberedVar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/fast-math-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/alignstack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-03-08-NameCollision.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/global-addrspace-forwardref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-01-30-UnsignedString.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dicompositetype-missing-tag.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-generic-debug-node-tag-missing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/unnamed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/internal-hidden-variable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/disubrange-empty-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-diglobalvariable-missing-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/ConstantExprFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/call-invalid-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/diimportedentity.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dinamespace-missing-namespace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dicompileunit-uniqued.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/extractvalue-no-idx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocation-overflow-column.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-difile-missing-filename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-11-05-ConstantExprShift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/aggregate-constant-values.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2008-10-14-QuoteInName.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/vector-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocation-field-bad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-03-30-UnclosedFunctionCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-alias-mismatched-explicit-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/insertextractvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/vbool-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocalvariable-arg-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/x86mmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/attribute-builtin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilexicalblockfile-missing-discriminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-mdnode-badref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilexicalblockfile-null-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder_bb-missing-body.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/debug-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-02-01-NegativeZero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-fwdref1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/musttail-invalid-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/uselistorder_bb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocation-missing-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder_bb-not-bb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-02-27-SelfUseAssertError.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/difile-escaped-chars.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/short-hexpair.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/numbered-values.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/anon-functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/musttail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getelementptr_vec_idx3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/dicompileunit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/half.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilexicalblock-missing-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/disubroutinetype.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-07-31-SlashInString.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dicompileunit-null-file.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-05-21-MalformedStructCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-09-10-AliasFwdRef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dicompileunit-missing-language.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-generic-debug-node-tag-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid_cast2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/private-protected-variable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2008-01-11-VarargAttrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-inline-constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/private-hidden-variable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/addrspacecast-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/ConstantExprFoldSelect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout20.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-10-13-ConstantEncodingProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/dimodule.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/comment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-08-15-ConstantExprProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-01-20-MaxLongLong.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/ConstantExprFoldCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2005-12-21-ZeroInitVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2008-09-02-FunctionNotes2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-disubprogram-uniqued-definition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-08-16-ConstExprInlined.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-metadata-function-local-complex-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/dilocation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-name2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-09-29-GC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/align-inst-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/align-inst-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/half-constprop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/metadata-null-operands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-function-missing-numbered.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/inline-asm-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2004-06-07-VerifierBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout17.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocation-field-twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/huge-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/alias-use-list-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-07-19-ParamAttrAmbiguity.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-08-15-UnresolvedGlobalReference.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/align-inst-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-fwdref2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/musttail-invalid-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-difile-missing-directory.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2008-09-02-FunctionNotes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-metadata-has-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/insertvalue-invalid-type-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-diexpression-verify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dienumerator-missing-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/getelementptr_vec_idx4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-generic-debug-node-tag-bad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-load-missing-explicit-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-disubroutinetype-missing-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/extractvalue-invalid-idx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-04-25-UnresolvedGlobalReference.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-metadata-attachment-has-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid_cast3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-07-14-OpaqueType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-05-03-BytecodeReaderProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/internal-protected-variable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-04-20-AlignedLoad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout21.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-diimportedentity-missing-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-indexes-empty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-03-08-NameCollision2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-07-25-QuoteInString.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-indexes-toofew.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-attrgrp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocalvariable-arg-negative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-04-07-InfConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-global-missing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/half-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/token.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/diglobalvariable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-metadata-function-local-complex-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-uselistorder-indexes-one.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-11-12-ConstantExprCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilocation-missing-scope-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/internal-hidden-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-diexpression-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/metadata-function-local.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-04-07-HexFloatConstants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2002-08-15-CastAmbiguity.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2007-08-06-AliasInvalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-diimportedentity-missing-tag.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-datalayout18.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-diderivedtype-missing-basetype.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/insertvalue-invalid-idx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/no-mdstring-upgrades.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/invalid-dilexicalblockfile-missing-scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Assembler/2003-08-21-ConstantExprCast-Fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/validate-check-prefix.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-prefixes.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/dos-style-eol.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-b-a-has-b.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-a-b-has-b.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/two-checks-for-same-match.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/var-ref-same-line.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-substring-multi-prefix-2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-substring-multi-prefix.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/regex-no-match.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-multiple-prefixes-nomatch-2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/simple-var-capture.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-multiple-prefixes-nomatch.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/implicit-check-not.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-label-dag-capture.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/same.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/separate-multi-prefix.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-dag-multi-prefix-2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-dag-multi-prefix.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-dag-xfails.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-label.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-multiple-prefixes-mixed.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/regex-brackets.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-dag.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-empty.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-multiple-prefixes-substr.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/first-character-match.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/line-count-2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/line-count.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-multi-prefix-label.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-dag-substring-prefix.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/next-no-match.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-label-dag.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/multiple-missing-prefixes.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/check-not-diaginfo.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/FileCheck/no-multi-suffixes.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-int.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-set.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-bool.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-01.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-04.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-str.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-13.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-06-01.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-null.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-01.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-01.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-13.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-25.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/utf8-implicit.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-01.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/merge.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-13.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-09.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-13.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/timestamp-bugs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-13.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-09.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-09.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-25.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-09.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-09.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-seq.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-01-utf8.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-str-ascii.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-01.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-10.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-13.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-10.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-22.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-10.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-06.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-10.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-10.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-09.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-06.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-18.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-map.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-06-06.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-22.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-06.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-06.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-06.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-07b.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-18.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/run-parser-crash-bug.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/duplicate-mapping-key.former-loader-error.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-omap.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/empty-document-bug.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-10.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-float.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-03.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-06.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-15.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-03.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-06-03.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-03.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-value.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-03.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-15.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-27.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-03.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-12b.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-31.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-15.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-15.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-02-utf8.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/utf8.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-03.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-12.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/bool.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-15.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-12.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-24.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-08.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-12.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-pairs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-12.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-08.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-06-08.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-08.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-24.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-08.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/float.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-08.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/null.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/value.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/duplicate-merge-key.former-loader-error.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-timestamp.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-12.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-21.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-05.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-custom.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-08.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-17.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-05.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-06-05.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-21.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/sloppy-indentation.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-05.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-05.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/resolver.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-05.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-33.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-07a.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-17.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-29.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-02.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-05.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/int.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-14.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-06-02.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-02.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-26.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-14.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-02.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-02.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-12a.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-30.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-14.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-14.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/yaml.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/timestamp.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-26.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/emit-block-scalar-in-simple-key-context-bug.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/str.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/invalid-single-quote-bug.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/scan-document-end-bug.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/LICENSE.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/duplicate-key.former-loader-error.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-02.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-11.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-14.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/single-dot-is-not-float-bug.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-23.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-11.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-07.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-11.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-11.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-11.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-19.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-07.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-06-07.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-23.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-07.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-07.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/scan-line-break-bug.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-19.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/negative-float-bug.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/construct-merge.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-11.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/more-floats.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-20.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-04.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-10-07.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-05-04.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-16.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-06-04.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/duplicate-value-key.former-loader-error.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-07-04.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-20.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-08-04.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-02-28.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-04.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-32.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/YAMLParser/spec-09-16.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ThinLTO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ThinLTO/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ThinLTO/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ThinLTO/X86/funcimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ThinLTO/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ThinLTO/X86/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ThinLTO/X86/Inputs/funcimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/2010-03-24-PrematureDefaults.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/TargetInstrInfo.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/cast-list-initializer.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/math.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/cast.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/if.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/subst.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ListArgsSimple.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/TwoLevelName.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ForeachList.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/2006-09-18-LargeInt.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/DefmInsideMultiClass.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/BitsInitOverflow.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/if-empty-list-arg.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/list-element-bitref.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/intrinsic-long-name.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ListConversion.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/UnterminatedComment.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/nested-comment.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/TreeNames.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ValidIdentifiers.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/Include.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/CStyleComment.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ClassInstanceValue.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/trydecode-emission3.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/TemplateArgRename.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/DefmInherit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/Tree.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/AsmPredicateCondsEmission.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/MultiClassDefName.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ForwardRef.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/eqbit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/eq.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/SuperSubclassSameName.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/FieldAccess.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/trydecode-emission.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/String.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/BitOffsetDecoder.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/Paste.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/SiblingForeach.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/MultiClass.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/LoLoL.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/TargetInstrSpec.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/Include.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/LazyChange.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/SetTheory.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/trydecode-emission2.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/pr8330.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/MultiPat.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/Slice.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/usevalname.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ListManip.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ForeachLoop.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/defmclass.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/listconcat.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/MultiClassInherit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/intrinsic-varargs.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/lisp.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/GeneralList.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/AnonDefinitionOnDemand.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/IntBitInit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ListSlices.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/UnsetBitInit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/subst2.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/BitsInit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ListArgs.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/2003-08-03-PassCode.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/Dag.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ListOfList.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/ifbit.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/strconcat.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/foreach.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/LetInsideMultiClasses.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TableGen/NestedForeach.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/TestRunner.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/testshiftashr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/insert-extract-at-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/load_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/sse-itoi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/reduction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/vshift-shl-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/vector_gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/vshift-ashr-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/sitofp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/uitofp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/testshiftlshr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/intrinsic-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/vselect-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/scalarize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/vdiv-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/alternate-shuffle-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/vshift-lshr-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/loop_v2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/tiny.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/testshiftshl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/X86/vectorized-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AArch64/store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AArch64/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AArch64/kryo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/bit-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/fadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/insertelement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/add-sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/fsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/addrspacecast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/br.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/fmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/extractelement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/fdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/AMDGPU/fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/no_info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/ARM/shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/ARM/insertelement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/ARM/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/ARM/divrem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/ARM/cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/ARM/gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/PowerPC/cmp-expanded.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/PowerPC/load_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/PowerPC/insert_extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/PowerPC/unal-vec-ldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CostModel/PowerPC/ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/alias-analysis-uses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CallGraph
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CallGraph/non-leaf-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CallGraph/do-nothing-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CallGraph/2008-09-09-DirectCall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CallGraph/2008-09-09-UsedByGlobal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CallGraph/no-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LazyCallGraph
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LazyCallGraph/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LazyCallGraph/non-leaf-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/argument-promotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/cyclic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/aliastest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/dse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/placement-tbaa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/precedence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/gvn-nonlocal-type-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/dynamic-indices.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/PR17620.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/tbaa-path.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/licm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/TypeBasedAliasAnalysis/sink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/Coupled.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/Invariant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/GCD.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/StrongSIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/UsefulGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/Constraints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/ZIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/Propagating.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/PR21585.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/Separability.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/stride-access-dependence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/forward-loop-carried.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/wrapping-pointer-versioning.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/safe-no-checks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/number-of-memchecks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/backward-dep-different-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/non-wrapping-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/memcheck-for-loop-invariant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/nullptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/store-to-invariant-check3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/underlying-objects-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/forward-loop-independent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/underlying-objects-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/interleave-innermost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/resort-to-memchecks-only.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/reverse-memcheck-bounds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopAccessAnalysis/pointer-with-unknown-bounds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/block_sort.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/two_loops_same_header.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/exit_in_condition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/multiple_exiting_edge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/paper.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/loop_with_condition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/condition_complicated_2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/unreachable_bb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/cond_loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/loops_1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/loops_2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/mix_1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/next.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/infinite_loop_2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/infinite_loop_3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/infinite_loop_4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/condition_same_exit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/condition_complicated.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/20100809_bb_not_in_domtree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/nested_loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/condition_forward_edge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/infinite_loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/RegionInfo/condition_simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/known-non-equal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/known-power-of-two.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/memory-dereferenceable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/knownnonzero-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/monotonic-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/known-bits-from-range-md.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/knownzero-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ValueTracking/pr23011.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Lint
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Lint/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Lint/check-zero-divide.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Lint/address-spaces.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Lint/cppeh-catch-intrinsics-clean.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DominanceFrontier
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DominanceFrontier/new_pm_test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BranchProbabilityInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BranchProbabilityInfo/loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BranchProbabilityInfo/noreturn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BranchProbabilityInfo/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BranchProbabilityInfo/pr22718.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BranchProbabilityInfo/pr18705.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/sext-to-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/nsw-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2009-01-02-SignedNegativeStride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2012-05-29-MulAddRec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/incorrect-nsw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-05-25-NegativeStepToZero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/zext-wrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-12-15-DontUseSDiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-02-15-UMax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/avoid-smax-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/min-max-exprs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/pr3909.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/and-xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-07-29-SGTTripCount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/increasing-or-decreasing-iv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2010-09-03-RequiredTransitive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/scev-aa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2012-03-26-LoadConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/unreachable-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-11-02-QuadraticCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/nowrap-preinc-limits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/scev-invalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/infer-prestart-no-wrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/pr22674.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/pr22856.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count-pow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/latch-dominating-conditions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/SolveQuadraticEquation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/sext-iv-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/constant_condition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2009-04-22-TruncCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-12-14-StrideAndSigned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/how-far-to-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2007-08-06-MisinterpretBranch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-07-19-InfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/flags-from-poison.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count-switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/scev-expander-existing-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/smax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/avoid-infinite-recursion-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/do-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2007-07-15-NegativeStride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2007-08-06-Unsigned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2009-07-04-GroupConstantsWidthMismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2011-03-09-ExactNoMaxBECount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-12-11-SMaxOverflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/sle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2011-10-04-ConstEvolve.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-07-19-WrappingIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/range-signedness.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/sext-iv-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/scev-expander-incorrect-nowrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/load-with-range-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/undefined.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2007-11-14-SignedAddRec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-02-12-SMAXTripCount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2012-05-18-LoopPredRecurse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/scev-canonical-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/avoid-assume-hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/smax-br-phi-idioms.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-02-11-ReversedCondition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2007-11-18-OrInstruction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2011-04-26-FoldAddRec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2009-05-09-PointerEdgeCount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/zext-signed-addrec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/div-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/nsw-offset-assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/pr22179.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/max-trip-count.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-11-15-CubicOOM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/shift-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/nw-sub-is-not-nw-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/pr24757.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/pr25369.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/sext-iv-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/infer-via-ranges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-08-04-IVOverflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-08-04-LongAddRec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/unsimplified-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/max-trip-count-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-07-12-UnneededSelect2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/trip-count.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/avoid-smax-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2007-09-27-LargeStepping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/scev-prestart-nowrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/nsw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/no-wrap-add-exprs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/ext-antecedent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-07-29-SMinExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-06-12-BinomialInt64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/pointer-sign-bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/pr22641.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/non-IV-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScalarEvolution/sext-inreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Dominators
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Dominators/2007-07-11-SplitBlock.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Dominators/2006-10-02-BreakCritEdges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Dominators/2007-07-12-SplitBlock.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Dominators/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Dominators/2007-01-14-BreakCritEdges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Dominators/invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/AMDGPU/kernel-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/AMDGPU/llvm.amdgcn.image.atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/AMDGPU/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/AMDGPU/workitem-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/AMDGPU/llvm.amdgcn.buffer.atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/NVPTX/diverge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DivergenceAnalysis/NVPTX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/indirect-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/volatile-instrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/chaining-analysis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/pr25309.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/inaccessiblememonly.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/purecse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/memset-escape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/nonescaping-noalias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/aliastest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/no-escape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/weak-interposition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/atomic-instrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/modreftest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/GlobalsModRef/pr12351.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/iv_times_constant_in_subscript.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/multidim_two_accesses_different_delinearization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/multidim_ivs_and_parameteric_offsets_3d.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/parameter_addrec_product.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_3d.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/gcd_multiply_expr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/multidim_only_ivs_2d.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/multidim_only_ivs_3d.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/multidim_only_ivs_2d_nested.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/divide_by_one.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/himeno_1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/himeno_2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/type_mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/multidim_only_ivs_3d_cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/multidim_ivs_and_integer_offsets_nts_3d.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/Delinearization/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/gep-signed-arithmetic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/const-expr-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/basic-interproc-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/full-store-partial-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/multilevel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/must-and-partial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/basic-interproc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/branch-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/arguments-globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/opaque-call-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/multilevel-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/stratified-attrs-indexing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/phi-and-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/empty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/asm-global-bugfix.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/arguments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/va.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/CFLAliasAnalysis/constant-over-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/invariant_load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-09-19-LocalArgument.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/phi-and-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2007-08-01-NoAliasAndGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2008-06-02-GEPTailCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/gep-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/cas.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2008-04-15-Byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/cs-cs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2006-03-03-BadArraySubscript.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/modref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/noalias-wraparound-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/noalias-geps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2007-12-08-OutOfBoundsCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2010-09-15-GEP-SignedArithmetic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/phi-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/pure-const-dce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/dag.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2007-10-24-ArgumentsGlobals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/unreachable-block.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2009-03-04-GEPNoalias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2006-11-03-BasicAAVectorCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2007-01-13-BasePointerBadNoAlias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/store-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-03-04-GEPCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-04-22-GEPProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2007-08-01-NoAliasAndCalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/gcsetest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/phi-spec-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2007-11-05-SizeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/args-rets-allocas-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/noalias-param.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-07-03-BasicAACrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/underlying-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/featuretest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2004-07-28-MustAliasbug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/empty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/getmodrefinfo-cs-cs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/tailcall-modref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2009-10-13-AtomicModRef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/nocapture.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-12-11-ConstExprGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/constant-over-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/aligned-overread.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/full-store-partial-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2009-10-13-GEP-BaseNoAlias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/must-and-partial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/no-escape-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/sequential-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-04-25-GEPCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/noalias-bugs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/pr18573.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-11-04-SimpleCases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-06-01-AliasCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-05-21-GEP-Problem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/bug.23626.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/phi-aa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2014-03-18-Maxlookup-reached.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/phi-speculation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/global-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2007-08-05-GetOverloadedModRef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/struct-geps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2003-02-26-AccessSizeTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/q.bad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/memset_pattern.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/bug.23540.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BasicAA/2008-11-23-NoaliasRet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DemandedBits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/DemandedBits/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/PostDominators
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/PostDominators/pr6047_a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/PostDominators/pr1098.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/PostDominators/pr6047_b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/PostDominators/pr6047_c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/PostDominators/pr6047_d.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/LoopInfo/2003-05-15-NestingProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScopedNoAliasAA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScopedNoAliasAA/basic-domains.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScopedNoAliasAA/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/ScopedNoAliasAA/basic2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/AssumptionCache
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/AssumptionCache/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/MemoryDependenceAnalysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/MemoryDependenceAnalysis/memdep-block-scan-limit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/MemoryDependenceAnalysis/memdep_requires_dominator_tree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/double_backedge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/loop_with_branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/irreducible_loop_crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/loops_with_profile_info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/double_exit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/extremely-likely-loop-successor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/bad_input.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/irreducible.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Analysis/BlockFrequencyInfo/nested_loop_with_branches.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-07-06-AliasFnDecl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/link-global-to-func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2009-09-03-mdnode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/func-attrs-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/only-needed-debug-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/subprogram-linkonce-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-08-28-TypeResolvesGlobal3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2011-08-18-unique-class-type2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2004-12-03-DisagreeingType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/global_ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/funcimport_comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/weakextern.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-08-23-GlobalVarLinking.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/broken.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2005-12-06-AppendingZeroLengthArrays.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-08-20-OpaqueTypeResolve.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/pr21374.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/AppendingLinkage2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat_group.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/pr26037.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/linkmdnode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-odr-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/link-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/alias-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/linknamedmdnode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-1-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/metadata-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/AppendingLinkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-8-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-pic-2-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-dont-change-others.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/datalayout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/override-with-internal-linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/linknamedmdnode2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/ident.a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/pr22807-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/targettriple-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/linkage.c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-dst-types3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/drop-debug.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/funcimport2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/override-with-internal-linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-opaque.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/distinct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/datalayout-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/funcimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/mdlocation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/opaque.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/linkage.b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/override-different-linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/funcimport_appending_global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-inheritance-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-dst-types2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/internalize-lazy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/only-needed-named-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/override-with-internal-linkage-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/PR8300.b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/funcimport_comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/override.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/basiclink.b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/pr21374.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/pr26037.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/datalayout-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/targettriple-c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/visibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/replaced-function-matches-first-subprogram.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/old_global_ctors.3.4.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/alias-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-unrelated3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/linkage.a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/constructor-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-inheritance-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/linkage2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/PR11464.b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/unique-fwd-decl-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/module-flags-pic-1-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/module-flags-dont-change-others.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/available_externally_over_decl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat-rm-dst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/PR8300.a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-simple2-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/ctors3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/basiclink.a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/apple-version
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/apple-version/1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/apple-version/2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/apple-version/3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/apple-version/4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/pr27044.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/pr22807-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/ident.b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/targettriple-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-unrelated2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/2003-01-30-LinkerRename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/ConstantGlobals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/testlink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/thinlto_funcimport_debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/PR11464.a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/2003-05-31-LinkerRename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/metadata-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/only-needed-debug-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/subprogram-linkonce-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/module-flags-pic-2-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/unique-fwd-decl-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/comdat13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-simple2-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/type-unique-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/ctors2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/Inputs/redefinition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-inheritance.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-opaque.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2004-05-07-TypeResolution1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/distinct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/pr27044.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-04-26-NullPtrLinkProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2011-08-04-Metadata2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/opaque.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2011-08-04-DebugLoc2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-06-13-LinkOnceRedefinition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/ConstantGlobals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/unnamed-addr1-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-5-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-type-array-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/transitive-lazy-link.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-07-06-AliasWeakDest2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-03-05-AliasReference.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-05-31-LinkerRename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-6-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/metadata-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/unnamed-addr-err-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/only-needed-named-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/partial-type-refinement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/override-with-internal-linkage-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/DbgDeclare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-simple2-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-03-07-DroppedSection_a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/ctors4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2005-02-12-ConstantGlobals-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/override.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/debug-info-version-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-08-28-TypeResolvesGlobal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-03-05-AliasReference2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-07-06-AliasFnDecl2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2002-07-17-GlobalFail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/replaced-function-matches-first-subprogram.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/available_externally_b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-simple-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/constructor-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-2-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-01-30-LinkerTypeRename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-simple2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-3-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/partial-type-refinement-link.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-06-26-AddressSpace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2011-08-04-Metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/funcimport2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/uniqued-distinct-cycles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2002-08-20-ConstantExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-07-06-AliasWeakDest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/lto-attributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/apple-version.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/prologuedata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2009-09-03-mdnode2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2011-08-18-unique-debug-type2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/drop-debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-src-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/thinlto_funcimport_debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/metadata-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-7-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-8-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-pic-1-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/linkmdnode2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2002-07-17-LinkTest2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/ctors2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/link-type-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-08-23-RecursiveOpaqueTypeResolve.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-08-24-InheritPtrSize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/dllstorage-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/redefinition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2004-05-07-TypeResolution2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/pr22807.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2011-08-18-unique-class-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-04-23-LinkOnceLost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-05-15-TypeProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2006-01-19-ConstantPacked.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-10-27-LinkOncePromote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-4-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-5-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/multiple-merged-structs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/distinct-cycles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/unique-fwd-decl-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/ident.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/unnamed-addr-err-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/func-attrs-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-08-28-TypeResolvesGlobal2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2004-02-17-WeakStrongLinkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/targettriple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-06-02-TypeResolveProblem2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat-rm-dst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-simple2-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2008-03-07-DroppedSection_b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/ctors5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2005-02-12-ConstantGlobals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/debug-info-version-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/pr21494.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-odr-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/funcimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/mdlocation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/override-different-linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-1-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-simple-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-01-30-LinkerRename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-11-18-TypeResolution.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-2-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/DbgDeclare2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/internalize-lazy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-unrelated.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/visibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/linkage2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-type-array-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/unnamed-addr1-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-6-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-7-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/LinkOnce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2011-08-18-unique-debug-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/unique-fwd-decl-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/available_externally_over_decl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2011-08-04-DebugLoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/comdat14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/ctors3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/dllstorage-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/type-unique-dst-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/2003-06-02-TypeResolveProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/available_externally_a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/funcimport_appending_global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/PR8300.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/testlink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-3-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/module-flags-4-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Linker/basiclink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-setcond-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/frem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/AArch64/MachO_ARM64_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/Mips/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/Mips/ELF_Mips64r2N64_PIC_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/Mips/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/Mips/Inputs/ExternalFunction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/Mips/ELF_O32R6_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/Mips/ELF_O32_PIC_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/Mips/ELF_N64R6_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/ARM/MachO_ARM_PIC_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/PowerPC/ppc32_elf_rel_addr16.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/ELF_x86_64_StubBuf.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/ELF_STT_FILE.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/MachO_x86-64_PIC_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/Inputs/ExternalGlobal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/Inputs/ELF_STT_FILE_FILE.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/Inputs/ELF_STT_FILE_GLOBAL.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/Inputs/ELF_x86_64_StubBuf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/ELF_x86-64_PIC-small-relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_DynNoPIC_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/COFF_i386.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/MachO_i386_eh_frame.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/ELF_x64-64_PC8_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/COFF_x86_64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/ELF_x64-64_PIC_relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/RuntimeDyld/X86/MachO_empty_ehframe.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/mov64zext32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/Interpreter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/Interpreter/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/Interpreter/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-local.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-01-09-SARTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/Inputs/cross-module-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/Inputs/multi-module-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/Inputs/multi-module-c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/Inputs/multi-module-eh-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/fpbitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/stubs-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/cross-module-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/multi-module-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/Inputs/cross-module-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/Inputs/multi-module-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/Inputs/multi-module-c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/test-fp-no-external-funcs-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/simpletest-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/test-common-symbols-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/stubs-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/remote/test-data-align-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2013-04-04-RelocAddend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-01-04-LoopTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-01-04-PhiTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-setcond-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/eh-lg-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-common-symbols-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-05-11-PHIRegAllocBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/non-extern-addend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-05-07-ArgumentTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2007-12-10-APIntLoadStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/hello2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/pr13727.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-fp-no-external-funcs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/simpletest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2008-06-05-APInt-OverAShr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2002-12-16-ArgTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-01-15-AlignmentTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2005-12-02-TailCallBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-05-06-LivenessClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-ptr-reloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-08-23-RegisterAllocatePhysReg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-01-10-FUCOM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-common-symbols.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-08-21-EnvironmentTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-call-no-external-funcs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/simplesttest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/hello.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-constantexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-06-05-PHIBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-global-init-nonzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-loadstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-08-15-AllocaAssertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-data-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-setcond-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/eh-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/multi-module-eh-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-06-04-bzip2-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-logical.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/cross-module-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/multi-module-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/stubs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/2003-01-04-ArgumentBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/load-object-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/MCJIT/test-global-ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-arithm_float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-logical.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-setcond-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-common-symbols-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-05-07-ArgumentTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-05-11-PHIRegAllocBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/non-extern-addend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2007-12-10-APIntLoadStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/hello2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/pr13727.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-fp-no-external-funcs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/simpletest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2002-12-16-ArgTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2008-06-05-APInt-OverAShr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-01-15-AlignmentTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2005-12-02-TailCallBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-05-06-LivenessClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-08-23-RegisterAllocatePhysReg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-01-10-FUCOM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-08-21-EnvironmentTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-common-symbols.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-call-no-external-funcs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/simplesttest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/hello.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-constantexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-06-05-PHIBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-loadstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-08-15-AllocaAssertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-data-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-setcond-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/multi-module-eh-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-06-04-bzip2-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-logical.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/cross-module-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/multi-module-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/stubs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/load-object-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-01-04-ArgumentBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-global-ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-local.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/test-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-01-09-SARTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/Inputs/multi-module-eh-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/Inputs/cross-module-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/Inputs/multi-module-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/Inputs/multi-module-c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/fpbitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/simpletest-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/test-common-symbols-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/stubs-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/test-data-align-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/stubs-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/cross-module-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/multi-module-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/Inputs/cross-module-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/Inputs/multi-module-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/Inputs/multi-module-c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/remote/test-fp-no-external-funcs-remote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2013-04-04-RelocAddend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-01-04-LoopTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcMCJIT/2003-01-04-PhiTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-insertelement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/fma3-jit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcLazy
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcLazy/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcLazy/anonymous_globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcLazy/global_aliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcLazy/hello.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/OrcLazy/private_linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-setcond-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/2010-01-15-UndefValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-insertextractvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-loadstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/ExecutionEngine/test-interp-vec-arithm_int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/SymbolRewriter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/SymbolRewriter/rewrite.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/SymbolRewriter/rewrite.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/constpointer_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/newcasts_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/packed_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/unreachable_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/packed_struct_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/properties_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/BitPacked.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/basictest_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/undefined_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/fold-fpcast_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/instructions_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/2007-01-19-TruncSext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Integer/constexpr_bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/invalid-input.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/posixELF.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/radix
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/radix/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/posixMachO.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/radix.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/posixArchiveMachO.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/Inputs/libExample.a.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/Inputs/hello.obj.elf-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/Inputs/hello.obj.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/Inputs/test.IRobj-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/externalonly.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/IRobj.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-nm/X86/groupingflags.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size/darwin-m.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size/basic.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size/Inputs/darwin-m.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size/X86/test-common.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size/X86/ignore-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-size/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/PowerPC/mtriple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/available-externally.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/slp-vectorize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/opt-level.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/drop-linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/bad-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/coff.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/type-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/thinlto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/pr19901.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/invalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/linker-script.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/linkonce-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/thinlto_linkonceresolution.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/common.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/drop-debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/comdat2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/parallel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/stats.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/unnamed-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/type-merge2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/disable-verify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/emit-llvm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/bcsection.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/vectorize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/alias2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/ctors2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/ctors2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/drop-linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/type-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/thinlto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/pr19901-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/resolve-to-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/thinlto_linkonceresolution.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/alias-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/linkonce-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/start-lib-common.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/common.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/comdat2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/type-merge2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/linker-script.export
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/invalid.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/bcsection.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/drop-debug.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/available-externally.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/Inputs/comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/no-map-whole-file.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/resolve-to-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/pr19901_thinlto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/start-lib-common.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/pr25915.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/pr25907.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/gold/X86/remarks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/print.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/print_coverage_pcs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/html-report.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/stats.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/covered_functions.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/not_covered_functions.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/Inputs/test-linux_x86_64.0.sancov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/Inputs/test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/Inputs/test-linux_x86_64.1.sancov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/Inputs/foo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/Inputs/blacklist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/Inputs/test-linux_x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sancov/blacklist.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/lto
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/lto/opt-level.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/lto/print-stats.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/lto/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/lto/hide-linkonce-odr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/universal-binary.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/report.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/llvm-cov.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/binary-formats.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/copy_block_helper.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/range_based_for.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_no_gcda.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/showExpansions.profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-a_-b.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/binary-formats.macho32b
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/showExpansions.covmapping
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_missing.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/range_based_for.gcda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/gcov47_compatibility.gcda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_paths.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_paths.gcno
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/binary-formats.macho32l
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/binary-formats.v1.linux64l
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-a_-b_-c_-u.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/binary-formats.macho64l
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/report.profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-a.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test.gcda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/copy_block_helper.gcda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/instrprof-comdat.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_objdir.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_preserve_paths.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_file_checksum_fail.gcda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_no_gcda.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-a_-b_-u.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/universal-binary
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_long_paths.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-a_-b_-u.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux32l
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/binary-formats.v2.linux64l
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/binary-formats.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_missing.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_no_options.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/regionMarkers.covmapping
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_paths.gcda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-b_-f.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_exit_block_arcs.gcno
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_long_file_names.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_missing.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_read_fail.gcno
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_paths.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-a_-b.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/elf_binary_comdat.profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/universal-binary.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/lineExecutionCounts.covmapping
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-a_-b_-c_-u.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/report.covmapping
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-a.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/regionMarkers.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_no_preserve_paths.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/range_based_for.gcno
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_no_options.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_exit_block_arcs.gcda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/gcov47_compatibility.gcno
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_no_output.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_objdir.h.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-b.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_-f.output
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_func_checksum_fail.gcda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_no_options.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test.gcno
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/templateInstantiations.covmapping
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/test_no_gcda.cpp.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/Inputs/copy_block_helper.gcno
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/showHighlightedRanges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/gcov47_compatibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/showExpansions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/showLineExecutionCounts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/cov-comdat.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cov/showRegionMarkers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-lit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-lit/chain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/X86/sym-size.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/trivial.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/eh.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/Inputs/trivial.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/Inputs/eh.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-cxxdump/Inputs/trivial.obj.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sanstats
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/sanstats/elf.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwarfdump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwarfdump/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwarfdump/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/duplicate_dwo_name
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/duplicate_dwo_name/c.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/duplicate_dwo_name/ac.dwp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/duplicate_dwo_name/bc.dwp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/empty.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/simple
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/simple/notypes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/simple/notypes/a.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/simple/notypes/b.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/simple/types
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/simple/types/a.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/simple/types/b.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/duplicate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/duplicate/c.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/duplicate/ac.dwp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/duplicate/bc.dwp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/compress
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/compress/a.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/merge
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/merge/notypes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/merge/notypes/c.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/merge/notypes/ab.dwp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/type_dedup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/type_dedup/a.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/Inputs/type_dedup/b.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/X86/empty.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/X86/merge.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/X86/type_dedup.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/X86/simple.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/X86/duplicate.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-dwp/X86/compress.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/class-layout.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/load-address.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/Inputs/ClassLayoutTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/Inputs/FilterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/Inputs/LoadAddressTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/Inputs/ClassLayoutTest.pdb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/Inputs/FilterTest.pdb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/Inputs/LoadAddressTest.pdb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/regex-filter.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-pdbdump/enum-layout.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/scc-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/scc-const-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/scc-callchain.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/unnamed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/scc-global-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/scc-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/scc-cycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/preserve-locals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/personality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/scc-global2global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/internal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-split/scc-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-lto
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-lto/error.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-lto/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-lto/Inputs/empty.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-lto/Inputs/thinlto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-lto/thinlto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/print_context.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/coff-dwarf.exe
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/addr.inp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/coff-dwarf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/coff-exports.exe
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/coff-exports.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe-second
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe.dSYM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe.dSYM/Contents
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe.dSYM/Contents/Info.plist
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe.dSYM/Contents/Resources
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe.dSYM/Contents/Resources/DWARF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe.dSYM/Contents/Resources/DWARF/dsym-test-exe
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/fat.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe-differentname.dSYM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe-differentname.dSYM/Contents
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe-differentname.dSYM/Contents/Info.plist
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe-differentname.dSYM/Contents/Resources
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe-differentname.dSYM/Contents/Resources/DWARF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test-exe-differentname.dSYM/Contents/Resources/DWARF/dsym-test-exe-second
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/addr.exe
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/dsym-test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/fat.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/Inputs/ppc64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/pdb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/pdb/pdb.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/pdb/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/pdb/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/pdb/Inputs/test.pdb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/pdb/Inputs/test.exe
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/pdb/Inputs/test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/sym.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/fat.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/dsym.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/ppc64.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/coff-dwarf.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-symbolizer/coff-exports.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-mc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-mc/basic.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-mc/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-mc/line_end_with_space.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-mc/no_warnings.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-mc/fatal_warnings.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/coff-many-relocs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-cstring-dump.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/disassemble-data.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/coff-dis-internal.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-info-plist.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-literal-pointers-i386.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-indirect-symbols.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/malformed-machos.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-unwind-info.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-private-header.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-symbolized-subtractor.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-section-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-nontext-disasm.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/exeThread.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/dylibSubClient.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/hello.obj.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/linkerOption.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/hello.exe.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/macho-universal-archive.x86_64.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/internal.exe.coff-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/hello.exe.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.obj.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/hello_cpp.exe.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.obj.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/ObjC.obj.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/disassemble.dll.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/dylibModInit.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/disassemble-data.obj
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/out-of-section-sym.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.exe.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/dylibSubFramework.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0001.macho
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0010.macho
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0040.macho
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0006.macho
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0080.macho
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0261.macho
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos/00000031.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/malformed-machos/mem-crup-0337.macho
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.exe.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/dylibLoadKinds.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/dylibRoutines.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/ObjC.exe.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/trivial.obj.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/macho-universal.x86_64.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/dylibSubUmbrella.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/dylibSubLibrary.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.exe.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/Inputs/hello.obj.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-literals.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-relocations.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-private-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-dis-symname.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-literal-pointers-x86_64.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-archive-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/out-of-section-sym.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-symbolized-subtractor-i386.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/disassembly-show-raw.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-section-contents.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/coff-disassemble-export.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-dis-no-leading-addr.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-dylib.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/macho-section.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/X86/hex-displacement.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/malformed-archives.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-compact-unwind-x86_64.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-sections.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-unwind-info-x86_64.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/win64-unwind-data.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-unwind-info-no-relocs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/invalid-input.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/coff-non-null-terminated-file.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-rebase.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-weak-bind.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/hex-relocation-addr.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-exports-trie.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/eh_frame-arm64.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/macho-arm-and-thumb.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/macho-symbolized-disassembly.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/Inputs/hello.obj.macho-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/Inputs/hello.exe.macho-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/Inputs/data-in-code.macho-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/macho-mcpu-arm.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/macho-private-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/macho-mattr-arm.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/macho-data-in-code.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/ARM/macho-symbolized-subtractor.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-compact-unwind-i386.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/many-relocs.obj-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/large-bss.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/export.dll.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/bind.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/common-symbol-elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/malformed-macho.bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/eh_frame.elf-mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/libbogus1.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/libbogus2.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/libbogus3.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.obj
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/unwind-info.macho-arm64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/lazy-bind.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/bind2.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.exe
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/eh_frame_zero_cie.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/out-of-section-sym.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/rebase.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/exports-trie.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/file-aux-record.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/tls.exe.coff-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/proc-specific-section-elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/bad-ordinal.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/section-filter.obj
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/compact-unwind.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/compact-unwind.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/unwind-info-no-relocs.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/nop.exe.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/unwind-info.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/win64-unwind.exe.coff-x86_64.asm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/file.obj.coff-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/eh_frame.macho-arm64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/Inputs/weak-bind.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-unwind-info-arm64.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/macho-print-mrs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/macho-symbolized-disassembly.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/Inputs/ObjC.obj.macho-aarch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/Inputs/hello.obj.macho-aarch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/Inputs/ObjC.exe.macho-aarch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/Inputs/link-opt-hints.macho-aarch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/Inputs/hello.exe.macho-aarch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/Inputs/print-mrs.obj.macho-aarch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/macho-link-opt-hints.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/macho-private-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/AArch64/elf-aarch64-mapping-symbols.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-lazy-bind.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-bind2.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/eh_frame_zero_cie.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/section-filter.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/coff-file.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/coff-large-bss.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/malformed-macho.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/proc-specific-section-elf.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/eh_frame-mipsel.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/coff-private-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/common-symbol-elf.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-bad-ordinal.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-objdump/macho-bind.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/c-general.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/sample-profile-basic.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/raw-32-bits-be.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/raw-magic-but-no-header.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/overflow-instr.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/raw-64-bits-be.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/inline-samples.afdo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/sample-profile.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/vp-malform.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/basic.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/invalid-count-later.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/overflow-sample.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/bar3-1.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/no-counts.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/weight-sample-foo.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/weight-instr-foo.profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/gcc-sample-profile.gcov
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/extra-word.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/compat.profdata.v1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/empty.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/compat.profdata.v2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/compat.profdata.v4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/overflow-instr.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/c-general.profraw
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/vp-malform2.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/foo3-1.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/text-format-errors.text.bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/foo3-2.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/bad-hash.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/weight-sample-bar.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/vp-truncate.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/weight-instr-bar.profdata
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/Inputs/foo3bar3-1.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/gcc-gcov-sample-profile.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/weight-sample.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/raw-32-bits-le.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/general.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/multiple-inputs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/value-prof.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/raw-64-bits-le.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/compat.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/inline-samples.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/raw-two-profiles.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/overflow-sample.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/hash-mismatch.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/text-format-errors.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/weight-instr.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/count-mismatch.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-profdata/text-dump.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/libbasic.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/fat-test.dylib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/frame-dw2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/frame-dw4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic-lto-dw4.macho.x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic-lto.macho.x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/fat-test.arm.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/inlined-low_pc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/inlined-low_pc/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/mismatch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/mismatch/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/mismatch/mismatch.pcm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-anon-namespace
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-anon-namespace/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-anon-namespace/2.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/modules/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/modules/libstatic.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/modules/Foo.pcm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/modules/Bar.pcm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/common.macho.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/fat-test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/empty_range
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/empty_range/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-uniquing
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-uniquing/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-uniquing/2.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic1.macho.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic3.macho.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/absolute_sym.macho.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/fat-test.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic2-custom-linetable.macho.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic-lto-dw4.macho.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic-lto.macho.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/libfat-test.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-member-functions
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-member-functions/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-member-functions/2.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/odr-member-functions/3.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic.macho.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic.macho.x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/fat-test.arm.dylib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/frame.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/common.macho.x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/scattered-reloc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/scattered-reloc/1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/scattered-reloc/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/absolute_sym.macho.i386.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/submodules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/submodules/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/submodules/Parent.pcm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic-archive.macho.x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic2.macho.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/basic3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/dead-stripped
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/Inputs/dead-stripped/1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/odr-anon-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/multiple-inputs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/fat-archive-input-i386.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64h.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/basic-linking-bundle.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/odr-uniquing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/custom-line-table.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/modules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/dead-stripped.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/dummy-debug-map.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/frame-1.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/frame-2.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/basic-linking-x86.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/dsym-companion.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/empty_range.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/common-sym.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/modules-warnings.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/submodules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/odr-member-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/X86/fat-object-input-x86_64.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/yaml-object-address-rewrite.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/basic-linking.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/fat-binary-output.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM/inlined-low_pc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM/dummy-debug-map.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM/empty-map.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM/fat-arch-not-found.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM/dummy-debug-map-amr64.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM/scattered.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/ARM/fat-arch-name.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/archive-timestamp.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/debug-map-parsing.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/dump-symtab.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/absolute_symbol.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/dsymutil/arch-option.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-vtabledump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-vtabledump/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-config
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-config/libs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-config/ldflags.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-config/cflags.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-config/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-config/system-libs.windows.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/mips-got-overlapped.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/cxx-cli-aux.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/elf-versioninfo.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/mips-plt.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/reloc-types.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/gnu-phdrs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/elf-sec-flags.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/gnu-relocations.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/mips-st-other.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/rpath.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/coff-exports.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/gnu-symbols.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/basic.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/relocations.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/coff-non-null-terminated-file.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/codeview-linetables.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/coff-file-sections-reading.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/sections.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/file-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/symbols.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/imports.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/mips-reginfo.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/mips-got.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/amdgpu-elf-defs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/mips-options.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-M.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-0.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-R.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-S.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/unwind.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-6.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-7.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-9.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-136.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-A.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-10.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-11.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-12.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-13.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-14.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-15.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-conformance-1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/ARM/attribute-conformance-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/elf-gnuhash.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/dynamic-table.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-aarch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.exe.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/reginfo.obj.elf-mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-ppc64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/dynamic-table-so.mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/file-multiple-aux-records.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/imports.exe.coff-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-ppc64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2012-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/export-arm.dll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-i368
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-i368
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/mips-rld-map-rel.elf-mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2012-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.macho-ppc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/magic.coff-unknown
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/magic.coff-importlib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/codeview-inlining.obj.coff
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/rpath.exe.elf-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/phdrs-elf.exe-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/nop.exe.coff-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/dtflags.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.coff-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/comdat-function-linetables.obj.coff-2013-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-lanai
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/export-x86.dll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-i368
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/elf-groups.x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/bigobj.coff-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/macho-universal.x86_64.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/zero-string-table.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/verdef.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/got-empty.exe.mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/dynamic-table-exe.mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-mips64el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs-no-symtab.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/basereloc.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/dynamic-table-exe.x86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2013-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/got-tls.so.elf-mips64el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/dynamic-table-so.aarch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/directives.obj.coff-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/relocs.obj.elf-lanai
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/file-aux-record.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/st-other.obj.elf-mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/got-over.exe.elf-mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/got-plt.exe.elf-mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-i368
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/symbols-proc-specific.elf-hexagon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/export-x64.dll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/gnuhash.so.elf-ppc64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/multifile-linetables.obj.coff-2012-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/cxx-cli-aux.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/imports.exe.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.exe.coff-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/multifunction-linetables.obj.coff-2013-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/bad-relocs.obj.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/Inputs/trivial.elf-amdhsa-kaveri
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/peplus.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/coff-basereloc.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/codeview-inlining.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/coff-arm-baserelocs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/coff-directives.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/mips-abiflags.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/gnu-sections.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/gnu-file-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/program-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/macho-universal-x86_64.i386.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/mips-rld-map-rel.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/elf-groups.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/coff-zero-string-table.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/dynamic.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/sections-ext.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/elf-dtflags.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/tools/llvm-readobj/bigobj.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/struct_by_value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/line-header.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/constant-dbgloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/prologue_end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/processes-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/dwarfdump.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/frameindices.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/little-endian-dump.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/big-endian.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/eh_frame_personality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/big-endian-dump.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/eh_frame.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/cfi-eof-prologue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/bitfields.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/AArch64/coalescing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/missing-abstract-variable.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-invalid.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-debug-loc-simple.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-dwp.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-dump-flags.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/member-pointers.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Sparc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Sparc/prologue_end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Sparc/processes-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Sparc/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Sparc/gnu-window-save.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-debug-frame-simple.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-macho-relocs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-macho-relocs.macho.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-line-dwo.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/fat-test.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test3.elf-x86-64 space
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/test-inline.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test-32bit.elf.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/split-dwarf-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-objc.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/arange-overlap.elf-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test4.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/gmlt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/split-dwarf-test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-inl-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-inl-test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-macro.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/macho-universal.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-pubnames.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test4-decl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/arm-relocs.elf-arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/test-simple-macho.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/fission-ranges.elf-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/invalid.elf.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-type-units.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/invalid.elf.3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/line.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/macho-universal
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test-loc-list-32bit.elf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/split-dwarf-test.dwo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-inl-test.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-macro-cmd.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test.macho-i386.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-pubnames.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/cross-cu-inlining.x86_64-macho.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test3-decl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/cross-cu-inlining.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/arange-overlap.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-type-units.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test.elf-x86-64.debuglink
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test-zlib.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/test-multiple-macho.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/invalid.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test2-main.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/shared-object-stripped.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/llvm-symbolizer-test.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test4-part2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-inl-test.high_pc.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test2.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-dwp.x86_64.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/fission-ranges.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-macro.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump.elf-mips64-64-bit-dwarf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test-zlib.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-macro.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-line-dwo.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test2-helper.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/llvm-symbolizer-dwo-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-objc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test4-part1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/llvm-symbolizer-test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test3-decl2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/dwarfdump-test-32bit.elf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Inputs/test-parameters.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/arm-relocs.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/skeletoncu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/llvm-symbolizer-zlib.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-ranges.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-value-terminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-info-blocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/fission-hash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/type_units_with_addresses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DW_TAG_friend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/mi-print.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/objc-fwd-decl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DIModule.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/ending-run.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/multiple-aranges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/empty-and-one-elem-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DW_AT_byte_size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/constant-aggregate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/subregisters.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/sroasplit-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dw_op_minus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/op_deref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/PR26148.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/subreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/data_member_location.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-declare-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-subrange.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-i128-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/parameters.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/bbjoin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-info-static-member.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/byvalstruct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/concrete_out_of_line.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/enum-fwd-decl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DW_AT_linkage_name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/linkage-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/inlined-indirect-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/decl-derived-member.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dwarf-aranges-no-dwarf-labels.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-prolog-end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dwarf-pubnames-split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-asm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/low-pc-cu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/pieces-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/empty-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/missing-file-line.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/template.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-info-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/sroasplit-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/formal_parameter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/memberfnptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DW_AT_location-reference.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg_value_direct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/earlydup-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-macro.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-info-packed-struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/generate-odr-hash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/arange.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/prologue-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/union-template.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-info-block-captured-self.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/rvalue-ref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/main-file-name.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/2011-12-16-BadStructRef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/nophysreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-ranges-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/InlinedFnLocalVar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-value-const-byref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/line.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/stmt-list.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/c-type-units.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/multiple-at-const-val.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/gnu-public-names-empty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/bitfields.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/single-dbg_value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/discriminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DIModuleContext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/ghost-sdnode-dbgvalues.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-value-dag-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/pr13303.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dwarf-linkage-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/inlined-formal-parameter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/sroasplit-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/safestack-byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/misched-dbg-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/live-debug-values.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/line-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/instcombine-instrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-loc-asan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dwarf-aranges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/pr19307.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/ref_addr_relocation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/subrange-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/processes-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/fission-ranges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-file-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/header.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/coff_relative_names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/block-capture.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debugger-tune.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/objc-property-void.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-dead-local-var.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug_frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/aligned_stack_var.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-loc-empty-entries.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/arguments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/inline-member-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/pointer-type-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/pieces-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/2010-04-13-PubType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/union-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/nondefault-subrange-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/pr12831.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/sroasplit-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/externaltyperef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/asm-macro-line-number.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-declare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/lexical_block.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DW_AT_specification.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/empty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/coff_debug_info_type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/stringpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-value-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/array2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-value-regmask-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-merge-loc-entry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-value-inlined-parameter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/deleted-bit-piece.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/cu-ranges-odr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/enum-class.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dwarf-public-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/inline-seldag-test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/inline-asm-locs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/struct-loc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DW_AT_stmt_list_sec_offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-value-range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/gnu-public-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/pieces-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/pr11300.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/elf-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/arange-and-stub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-const-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/gmlt.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/float_const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-value-location.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/frame-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/reference-argument.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/fission-cu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/sroasplit-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/nodebug_with_debug_loc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/vla.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/DW_AT_object_pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/cu-ranges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/debug-loc-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/dbg-byval-parameter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/X86/fission-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/MIR
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/MIR/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/MIR/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/MIR/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/MIR/X86/live-debug-values-3preds.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/MIR/X86/live-debug-values.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/debuglineinfo.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/debugmacinfo.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-macho-universal.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/DIA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/DIA/pdbdump-linenumbers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/DIA/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/DIA/pdbdump-symbol-format.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/DIA/pdbdump-flags.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/Inputs/empty.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/Inputs/symbolformat-fpo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/Inputs/empty.pdb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PDB/pdbdump-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-zlib.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips/fn-call-line.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips/prologue_end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips/dsr-non-fixed-objects.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips/processes-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips/InlinedFnLocalVar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips/dsr-fixed-objects.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Mips/delay-slot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-64-bit-dwarf.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/recursive_inlining.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/empty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/restrict.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-05-10-MultipleCU.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/inline-no-debug-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-01-05-DbgScope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/constant-sdnodes-have-dbg-location.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/inline-scopes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/block-asan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2009-10-16-Phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-10-01-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/incorrect-variable-debugloc1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-03-24-MemberFn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/member-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/debug-info-qualifiers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/nodebug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/cu-range-hole.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/dead-argument-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-03-12-llc-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/accel-table-hash-collisions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-07-19-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-05-03-OriginDIE.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2009-11-10-CurrentFn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/piece-verifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/multiline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-03-19-DbgDeclare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/namespace_inline_function_definition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-04-19-FramePtr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/Inputs/gmlt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/PR20038.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/location-verifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2009-11-03-InsertExtractValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/cu-ranges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/tu-composite.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/gvn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/constant-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/inlined-vars.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/namespace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/incorrect-variable-debugloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/inline-debug-info-multiret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/cross-cu-linkonce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/typedef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/cross-cu-inlining.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/sugared-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/discriminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/member-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/namespace_function_definition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/dbg-at-specficiation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/skeletoncu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/dwarf-public-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/def-line.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/inlined-arguments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-05-03-DisableFramePtr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/inheritance.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/bug_null_debuginfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/debug-info-always-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/virtual-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/inline-debug-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/constantfp-sdnodes-have-dbg-location.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/ptrsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/unconditional-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/two-cus-from-same-file.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/enum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/enum-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/lto-comp-dir.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/gmlt.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/tu-member-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/template-recursive-void.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/2010-04-06-NestedFnDbgInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/version.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Generic/debuginfofinder-multiple-cu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-accel.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/multifile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/register-variables.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/inlining-levels.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/local-variables.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/multifunction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/inlining-files.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/inlining.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/fp-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/asan-module-ctor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/asan-module-without-functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/cpp-mangling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/local-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/COFF/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/debuglineinfo-macho.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ/processes-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ/eh_frame_personality.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ/variable-loc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ/eh_frame_personality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ/variable-loc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ/eh_frame.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/SystemZ/prologue_end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PowerPC/tls-fission.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PowerPC/line.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PowerPC/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PowerPC/processes-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/sroa-complex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/multiple-constant-uses-drops-dbgloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/s-super-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/constant-dbgloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/bitfield.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/prologue_end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/PR26163.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/processes-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/selectiondag-deadcode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/lowerbdgdeclare_vla.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/header.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/PR16736.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/little-endian-dump.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/line.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/float-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/split-complex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/big-endian-dump.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/cfi-eof-prologue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/ARM/single-constant-use-preserves-dbgloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-pubnames.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-objc.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-line-dwo.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Lanai
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Lanai/processes-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/Lanai/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/llvm-symbolizer.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/DebugInfo/dwarfdump-type-units.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/pr25877.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/AMDGPU/elf-definitios.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/AMDGPU/elf32-unknown.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/AMDGPU/elf64-unknown.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/coff-invalid.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-update.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-file-header.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-reloc-shared.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/readobj.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/nm-coff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/objdump-disassembly-inline-relocations.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/yaml2obj-elf-x86-rel.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/nm-ir.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/no-start-symbol.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/objdump-trivial-object.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/objdump-label.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/macho-text-sections.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/archive-ir-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/nm-print-size.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/X86/nm-macho.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/obj2yaml-coff-long-file-symbol.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-section-content.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mri4.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/macho-invalid.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-private-headers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-alignment.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/elf-unknown-type.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-trivial-object.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/ar-error.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-archive.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/no-section-header-string-table.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/obj2yaml-sectiongroup.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-sectionheaders.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-symbol-visibility.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/ARM/macho-data-in-code.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/ARM/objdump-thumb.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/ARM/symbol-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/ARM/nm-mapping-symbol.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mangle-ir.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/no-section-table.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-section-invalid-size.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/stackmap-dump.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-no-sectionheaders.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mri1.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/simple-archive.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/kext.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mri5.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-symtab.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/readobj-absent.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-weak-global-macho.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-shared-object.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-readobj.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-coff-multi-doc.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-move.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-rel.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-section-basic.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-export-list.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/elf-reloc-no-sym.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-symbol-table.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/check_binary_output.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-replace-pos.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-symbol-LocalGlobalWeak.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/readobj-elf-versioning.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-file-headers.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/dllimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/corrupt.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-error.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-universal-binary.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-data-in-code.macho-thumbv7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-strtab-size.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/program-headers.mips64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/sectionGroup.elf.x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/hello-world.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/archive-test.a-empty
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-invalid-too-small-segment-load-command
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test2.macho-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-bad-rel-type.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-universal.x86_64.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-valid-0-nsyms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/archive-test.a-corrupt-symbol-table
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/elf-versioning-test.x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/weak-global-symbol.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/oddlen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/dyn-rel.so.elf-mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/dynamic-reloc.so
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/thin-path.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-bad-section-address.coff
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-invalid-dynamic-table-size.elf.x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-archive-unsorted-x86_64.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/shared-object-test.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho64-invalid-too-small-segment-load-command
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-symbol-table-size.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test2.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-invalid-strtab.elf.x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-invalid-section-index-getSectionRawName
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/IsNAN.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-invalid-bad-symbol-index
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/hello-world.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho64-invalid-incomplete-load-command
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/no-section-header-string-table.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/archive-test.a-irix6-mips64el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/SVR4.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/no-sections.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-archive-x86_64.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/no-section-table.so
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/elf-reloc-no-sym.x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/archive-test.a-gnu-minimal
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/common.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-rpath-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/relocations.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/mri-crlf.mri
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-invalid-header
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-sh_entsize.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-no-exports.dylib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-executable-test.macho-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/MacOSX.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/no-start-symbol.elf-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/darwin-m-test3.macho-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/stackmap-test.macho-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho64-invalid-no-size-for-sections
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.coff-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/unwind-section.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.macho-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-archive.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/darwin-m-test1.mach0-armv7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/program-headers.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-universal-archive.x86_64.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/main-ret-zero-pe-i386.exe
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/pr25877.lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/very_long_bytecode_file_name.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/shared-object-test.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-invalid-phentsize.elf.x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/micro-mips.elf-mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho64-invalid-incomplete-segment-load-command
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/shared.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/thin.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.elf-avr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/program-headers.mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/thumb-symbols.elf.arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-strtab-non-null.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/liblong_filenames.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/coff-short-import-data
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/shndx.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/evenlen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/symtab-only.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-xindex-size.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/xpg4.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.elf-mips64el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-strtab-type.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/rel-no-sec-table.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/dext-test.elf-mips64r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/COFF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/COFF/section-aux-symbol.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/COFF/weak-external.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/COFF/i386.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/COFF/x86-64.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/COFF/long-file-symbol.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/COFF/long-section-name.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-version.elf-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/elfver.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/elfver.script
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-text-data-bss.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-text.thumb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/coff-short-import-code
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/darwin-m-test2.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-invalid-zero-ncmds
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/main-ret-zero-pe-i386.dll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/absolute.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-invalid-dynamic-table-too-large.elf.x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/coff_archive_short.lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-invalid-no-size-for-sections
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/relocation-relocatable.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-invalid-relocation-size.elf.x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/GNU.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-invalid-symbol-name-past-eof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-invalid-too-small-load-command
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/archive-test.a-coff-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-text-sections.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/coff_archive.lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-label-test.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.elf-hexagon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/relocatable-with-section-address.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/elf-versioning-test.i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-invalid-dynamic-table-offset.elf.x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-hello-g.macho-x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/corrupt-invalid-virtual-addr.elf.x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/libsimple_archive.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-section-index.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/elf-mip64-reloc.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/invalid-section-size.elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/weak.elf-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/ELF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/ELF/LE64.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/ELF/BE32.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/ELF/BE64.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/ELF/LE32.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.macho-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/archive-test.a-gnu-no-symtab
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/program-headers.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho-empty-kext-bundle-x86-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/relocation-dynamic.elf-i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/macho64-invalid-too-small-load-command
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Inputs/trivial-object-test.elf-mipsel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mri-addlib.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-error-tmp.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/obj2yaml-coff-long-section-name.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/size-trivial-macho.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-format.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mri2.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mri-crlf.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/relocation-executable.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-multi-doc.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/obj2yaml.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-relocations.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-delete.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/objdump-shndx.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-long-index.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-darwin-m.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-symbol-basic.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-coff-invalid-alignment.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips/feature.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips/objdump-micro-mips.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips/reloc-visit.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips/elf-abi.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips/elf-flags.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips/abi-flags.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Mips/elf-mips64-rel.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/directory.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-pe-image.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/coff-archive.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/obj2yaml-coff-weak-external.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/ar-create.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-toc.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-extract-dir.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Lanai
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/Lanai/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/dyn-rel-relocation.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/nm-irix6.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mri3.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/mri-addmod.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-bits-endian.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/readobj-shared-object.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/invalid.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/dynamic-reloc.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/coff-archive-short.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/archive-extract.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/dllimport-globalref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/obj2yaml-coff-section-aux-symbol.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Object/yaml2obj-elf-rel-noref.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/token1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2006-12-12-IntrinsicDefine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/token5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/inalloca3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/deoptimize-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/SelfReferential.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/ident-meta4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.used-invalid-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.dbg.value-expression.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2009-05-29-InvokeResult2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/byval-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2008-03-01-AllocaSized.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2007-12-21-InvokeParamAttrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/invalid-eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/gcroot-meta.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/operand-bundles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/dominates.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/jumptable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/gcroot-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/recursive-type-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/comdat2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/mdcompositetype-templateparams-tuple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/cttz-undef-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-address-space-through-gep-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/comdat-decl1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.used-invalid-type2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.dbg.declare-expression.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/inalloca2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/token4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2008-11-15-RetVoid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/varargs-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-vector-pointer-as.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/ident-meta3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/frameescape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/dbg-null-retained-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2009-05-29-InvokeResult1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/invalid-statepoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/gc_relocate_operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/fpmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/module-flags-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-address-space-nested-global-cycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/recursive-type-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.dbg.declare-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.dbg.declare-variable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.dbg.intrinsic-dbg-attachment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/musttail-invalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/recursive-struct-param.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/dereferenceable-md.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/statepoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/PhiGrouping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/AmbiguousPhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-address-space-through-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-alias-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/metadata-function-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/musttail-valid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2002-04-13-RetTypes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/inalloca1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/token3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-address-space-through-inttoptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/swiftself.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.compiler_used-invalid-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/token7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/ident-meta2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/gc_relocate_addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/module-flags-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.used-invalid-init2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-address-space-nested-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/recursive-type-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2008-01-11-VarargAttrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2002-11-05-GetelementptrPointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2008-08-22-MemCpyAlignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/gcroot-ptrptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/align-md.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/range-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2010-08-07-PointerIntrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/gcwrite-ptrptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/inalloca-vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/mdcompositetype-templateparams.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/token2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.dbg.value-variable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/gc_relocate_return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/token6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/ident-meta1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/byval-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/module-flags-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/gcread-ptrptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2009-05-29-InvokeResult3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/dbg-orphaned-compileunit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/func-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2004-05-21-SwitchConstantMismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/function-metadata-bad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-address-spaces.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/global-ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2006-07-11-StoreStruct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/function-metadata-good.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/range-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.dbg.value-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/comdat3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.used-ptr-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-address-space-through-constant-inttoptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/dbg-typerefs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/llvm.used-invalid-init.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/comdat-decl2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/invalid-statepoint2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Verifier/2006-10-15-AddrLabel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Examples
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Examples/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Examples/Kaleidoscope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Examples/Kaleidoscope/Chapter3.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Examples/Kaleidoscope/Chapter4.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Examples/Kaleidoscope/Chapter5.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Examples/Kaleidoscope/Chapter6.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Examples/Kaleidoscope/Chapter7.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Unit/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Unit/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/loop-pass-ordering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2009-06-05-no-implicit-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2002-03-11-ConstPropCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2008-02-14-PassManager.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/optimize-options.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2008-10-06-RemoveDeadPass.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2007-04-24-eliminate-mostly-empty-blocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/extract-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/llvm-nm-without-aliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/attribute-comment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2003-02-19-LoopInfoNestingBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/new-pass-manager.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/close-stderr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2004-08-20-PackedControlFlow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2010-05-06-Printer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/can-execute.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/pass-pipeline-parsing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/Inputs/TestProg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/Inputs/TestProg/TestProg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/Inputs/utf8-bom-response
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/Inputs/has-block-info.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/Inputs/no-block-info.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/Inputs/utf8-response
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/Inputs/block-info-only.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2008-10-15-MissingSpace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/FileCheck-space.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/X86/inline-asm-newline-terminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/invalid-commandline-option.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/spir_cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2004-08-16-PackedSelect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/bcanalyzer-block-info.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/constant-fold-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/lit-unicode.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2009-03-31-CallGraph.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2006-02-05-PassManager.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2007-09-10-PassManager.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/pass-pipelines.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2004-08-16-PackedSimple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/ResponseFile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2009-09-14-function-elements.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2007-06-28-PassManager.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/pipefail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/optimization-remarks-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/lint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/opt-override-mcpu-mattr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2008-06-04-FieldSizeInPacked.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2004-08-16-PackedConstantInlineStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/extract-linkonce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/opt-twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2002-01-31-CallGraph.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2002-02-24-InlineBrokePHINodes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2004-08-16-PackedGlobalConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/2007-06-05-PassID.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/umask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/extract-weak-odr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Other/constant-fold-gep-address-spaces.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LibDriver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LibDriver/infer-output-path.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LibDriver/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LibDriver/thin.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LibDriver/libpath.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LibDriver/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LibDriver/Inputs/a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LibDriver/Inputs/b.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/BugPoint
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/BugPoint/compile-custom.ll.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/BugPoint/replace-funcs-with-null.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/BugPoint/crash-narrowfunctiontest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/BugPoint/compile-custom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/BugPoint/metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/BugPoint/remove_arguments_test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/BugPoint/named-md.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/paramattrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/cold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/optnone-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/globalredefinition3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/strip_names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/prologuedata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/const_pv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/properties.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/indirectcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/weirdnames.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/undefined.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/forwardreftest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/cfgstructures.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/calltest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/alias2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/varargs_new.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/smallest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/load_module.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/global_section.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/simplecalltest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/newcasts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/prefixdata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/packed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/casttest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/optnone-llc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/packed_struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/globalvars.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/md_on_instruction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/exception.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/callingconventions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/weak_constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/ppcld.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/escaped_label.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/testvarargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/x86ld.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/prototype.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/recursivetype.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/testlogical.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/testconstants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/indirectcall2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/vector-cast-constant-exprs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/constexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/constpointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/sparcld.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/testalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/NamedMDNode2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/fold-fpcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/small.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/NamedMDNode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/seh-nounwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/aliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/testtype.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/attributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/memorymarkers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/basic-aa-argmemonly.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/merge-func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/dse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/adce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/special-state.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/pr26510.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/function-attrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/early-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/OperandBundles/inliner-conservative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/global_pv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/intrinsic-noduplicate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/terminators.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Feature/minsize_attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/JitListener
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/JitListener/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/JitListener/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/JitListener/multiple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/Go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/Go/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/Go/go.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/add_named_metadata_operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/invalid-bitcode.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/objectfile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/ARM/disassemble.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/calc.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/set_metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/Inputs/invalid.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/echo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/empty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/X86/disassemble.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/llvm-c/memops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/target.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/ipo.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/core.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/executionengine.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/scalar_opts.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/vectorize.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/bitwriter.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/transform_utils.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/irreader.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/ext_exc.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/bitreader.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/passmgr_builder.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/analysis.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bindings/OCaml/linker.ml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints/finite-loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints/memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints/split-backedge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints/statepoint-coreclr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints/statepoint-frameescape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints/call-in-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PlaceSafepoints/no-statepoints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Internalize
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Internalize/apifile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Internalize/comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Internalize/2009-01-05-InternalizeAliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Internalize/lists.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Internalize/local-visibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Internalize/used.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/hoist-bitcast-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2011-04-09-RAUW-AST.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2011-04-06-HoistMissedASTUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/hoist-invariant-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2006-09-12-DeadUserOfSunkInstr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2003-02-26-LoopExitNotDominated.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2007-07-30-AliasSet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/funclet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/PR19798.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/extra-copies.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2009-12-10-LICM-Indbr-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2011-07-06-Alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2003-02-27-PreheaderProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2003-05-02-LoadHoist.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/scalar_promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/PR24013.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/preheader-safe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2007-09-24-PromoteNullValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/AliasSetMemSet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/argmemonly-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/PR21582.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2007-09-17-PromoteValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/hoisting.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/constexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/promote-tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/no-preheader-test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2003-12-11-SinkingToPHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/pr26843.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/alias-set-tracker-loss.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2003-02-27-NestedLoopExitBlocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2003-02-27-StoreSinkPHIs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2007-05-22-VolatileSink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/promote-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/Preserve-LCSSA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/lcssa-ssa-promoter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/debug-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/sinking.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2007-10-01-PromoteSafeValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2011-04-06-PromoteResultOfPromotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/volatile-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2008-07-22-LoadGlobalConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2003-02-28-PromoteDifferentType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2008-05-20-AliasSetVAArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2014-09-10-doFinalizationAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/pr23608.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/scalar-promote-memmodel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/speculate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/hoist-deref-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LICM/2003-02-27-PreheaderExitNodeUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InferFunctionAttrs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InferFunctionAttrs/annotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/ackermann.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/accum_recursion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/dup_tail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/reorder_load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/setjmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/2010-06-26-MultipleReturnValues.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/EraseBB.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/inf-recursion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/dont_reorder_load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailCallElim/notail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/dce_pure_invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/basictest1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2002-07-17-PHIAssertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/basictest2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2002-05-22-PHITest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2002-05-28-Crash-distilled.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2002-07-29-Segfault.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2003-06-24-BadSuccessor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2002-07-17-AssertionFailure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2004-05-04-UnreachableBlock.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2003-04-25-PHIPostDominateProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/debug-info-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2003-01-22-PredecessorProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/dce_pure_call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2003-09-15-InfLoopCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2003-06-24-BasicFunctionality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2003-09-10-UnwindInstFail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2002-05-28-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2003-06-11-InvalidCFG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/unreachable-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2003-11-16-MissingPostDominanceInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2005-02-17-PHI-Invoke-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2002-01-31-UseStuckAround.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ADCE/2002-05-23-ZeroArgPHITest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDeletion
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDeletion/simplify-then-delete.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDeletion/multiple-exit-conditions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDeletion/2007-07-23-InfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDeletion/dcetest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDeletion/2008-05-06-Phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDeletion/2011-06-21-phioperands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDeletion/multiple-exits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reg2Mem
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reg2Mem/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2010-04-30-DbgInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2008-06-23-DeadAfterLive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/variadic_safety.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/deadretval2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/canon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2007-10-18-VarargsReturn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/dead_vaargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/deadexternal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2007-12-20-ParamAttrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2013-05-17-VarargsAndBlockAddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/keepalive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/dbginfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/aggregates.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2006-06-27-struct-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/naked_functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/deadretval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/2007-02-07-FuncRename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/multdeadretval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/operandbundle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadArgElim/returned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2002-05-01-ShouldNotPromoteThisAlloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2003-04-24-MultipleIdenticalSuccessors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/ignore-lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2003-04-18-DeadBlockProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/ConvertDebugInfo2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2003-04-10-DFNotFound.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/pr24179.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2005-11-28-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2003-06-26-IterativePromote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/PromoteMemToRegister.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2005-06-30-ReadBeforeWrite.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/UndefValuesMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2002-03-28-UninitializedVal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/2007-08-27-VolatileLoadsStores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Mem2Reg/ConvertDebugInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/implied-cond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/2012-07-19-NoSuccessorIndirectBr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/or-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/degenerate-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/pr15851_hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/pr22086.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/phi-eq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/and-and-cond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/and-cond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/pr26096.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/2011-04-14-InfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/branch-no-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/induction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/2010-08-26-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/conservative-lvi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/2011-04-02-SimplifyDeadBlock.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/lvi-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/thread-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/update-edge-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/phi-known.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/assume-edge-dom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/landing-pad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/thread-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/2008-11-27-EntryMunge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/no-irreducible-loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/JumpThreading/pr9331.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/entry_counts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/coverage-warning.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/remarks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/cov-zero-samples.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/discriminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/inline-coverage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/remarks.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/cov-zero-samples.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/discriminator.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/inline-coverage.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/bad_mangle.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/bad_discriminator_value.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/bad_samples.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/bad_line_values.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/inline-hint.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/inline.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/bad_fn_header.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/propagate.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/fnptr.binprof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/syntax.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/offset.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/nolocinfo.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/gcc-simple.afdo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/inline-combine.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/fnptr.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/entry_counts.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/branch.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/bad_sample_line.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/calls.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/Inputs/coverage-warning.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/inline-hint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/propagate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/gcc-simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/syntax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/nolocinfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/inline-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SampleProfile/fnptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Float2Int
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Float2Int/toolarge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Float2Int/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Float2Int/float2int-optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerInvoke
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerInvoke/2003-12-10-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerInvoke/lowerinvoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/indirect_call_annotation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/diag_mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/loop1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/loop2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/diag_no_funcprofdata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/diag_FE_profile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/branch1.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/diag_FE.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/branch2.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/criticaledge.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/landingpad.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/switch.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/diag.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/loop1.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/loop2.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/Inputs/indirect_call.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/indirect_call_profile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/branch1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/branch2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/criticaledge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/diag_no_profile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PGOProfile/single_bb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sink_instruction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-04-28-ShiftShiftLongLong.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/aligned-qpx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-11-27-IDivVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/udivrem-change-width.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/addnegneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-11-08-FCmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/icmp-range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-3-15-or-xor-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncmp-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/log-pow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_demanded_elts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncpy_chk-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/float-shrink-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/JavaCompare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-shl-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcspn-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-04-28-VolatileStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-and1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-crc32-demanded.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcat-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-sse4a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sdiv-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pow-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/objsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/zero-point-zero-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-not.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/align-external.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast-vector-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/canonicalize_branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-rem2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/assume-redundant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/stpcpy-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/switch-truncate-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2011-10-07-AlignPromotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/dce-iterate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr26993.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/mul-masked-bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cast-mul-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/printf-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/minnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/objsize-noverify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/stpcpy_chk-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/range-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/call-cast-target-inalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/gepphigep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/call_nonnull_arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-06-16-SRemDemandedBits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-01-13-InstCombineInvokePHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-div1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-01-13-ExtCompareMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/min-positive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/builtin-object-size-ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/round.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcpy-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-12-08-RemInfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bswap-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/shift-sra.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-12-17-SRemNegConstVec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncpy-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-10-31-RangeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/unpack-fca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memchr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcmp-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-sse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcpy_chk-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-06-13-ReadOnlyCallStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-10-23-ConstFoldWithoutMask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncmp-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncpy_chk-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr25745.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcspn-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-and2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/gep-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/zext-bool-add-sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-27-FloatSelect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-01-08-AlignAlloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sdiv-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pow-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-06-24-StackRestore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/nsw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/narrow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-06-21-CompareMiscomp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-12-12-GEPScale.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bswap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/inline-intrinsic-assert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fpcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2003-11-03-VarargsCallBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/icmp-shr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2011-06-13-nsw-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-12-10-ConstFoldCompare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fwrite-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/mem-gep-zidx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and-xor-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/max-of-nots.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-div2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/all-bits-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/constant-fold-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/gc.relocate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcpy-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-03-10-InstCombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-05-23-FCmpToICmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sub-xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/alias-recursion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcpy_chk-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/addrspacecast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2011-05-13-InBoundsGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-08-17-ICmpXorSignbit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memmove-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/maxnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memmove.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load-combine-metadata-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/insert-extract-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fprintf-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/xor-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcmp-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcpy_chk-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-02-21-LoadCST.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/LandingPadClauses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr25342.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/ctpop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/OverlappingInsertvalues.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select-cmp-br.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/div-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2010-05-30-memcpy-Struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-12-08-Phi-ICmp-Op-Fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/default-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fcmp-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-08-ShiftOneAndOne.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pow-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/gepgep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/srem-simplify-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/ceil.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fpextend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float-specials.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/disable-simplify-libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vector-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2005-04-07-UDivSelectCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strspn-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-06-19-UncondLoad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-and-or-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-03-26-BadShiftMask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-12-16-AsmNoUnwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-03-24-InfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/debuginfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-17-InfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sitofp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_insertelt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/urem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/struct-assign-tbaa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-09-20-BadLoadCombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/amdgcn-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-10-31-StringCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cast-call-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bit-tracking.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and-or-not.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-09-02-VectorCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-06-06-LoadOfPHIs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast-vec-uniform.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr24605.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-02-07-PointerCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fast-math-scalarization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-02-25-CrashZeroSizeArray.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/enforce-known-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-05-18-CastFoldBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/invariant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-xor1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/align-attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-02-01-LoadSinkAlloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memmove-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-05-27-Negative-Shift-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/known_align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/compare-signs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load-combine-metadata-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr12251.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/signed-comparison.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fast-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/deadcode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/gep-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-06-11-StoreAddrSpace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/icmp-logical.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-07-25-LoadPart.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-02-23-PhiFoldInfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast-alias-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vector-srem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-03-13-IntToPtr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fneg-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and-not-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-04-04-InstCombineReplaceAllUsesWith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2003-07-21-ExternalConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr24354.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/ExtractCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-09-17-ZeroSizedAlloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/stacksaverestore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/abs_abs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-08-LiveStoreDelete.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/not.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/constant-fold-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/type_pun.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/or-to-xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr8547.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/debug-line.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load_combine_aa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/zext-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-08-28-udiv_ashl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-02-13-MulURem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_extract_2elts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/obfuscated_splat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/log-pow-nofastmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/nonnull-attribute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr17827.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/minmax-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/objsize-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-03-13-CompareMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fold-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-xor2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-09-SinkOfInvoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-31-Bools.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-22-IDivVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load-combine-metadata-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/phi-load-metadata-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr2996.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncat-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-02-23-ShiftShiftOverflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strrchr-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitreverse-hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/srem1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-16-sse2_storel_dq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-mul1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/call-cast-target.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/unordered-fcmp-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcpy-from-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/toascii-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/xor2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-12-14-simp-vgep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-02-28-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pow-exp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/binop-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/minmax-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/ffs-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/urem-simplify-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-11-10-ashr-miscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bittest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-01-14-FcmpSelf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and-fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr21199.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-xop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-07-30-addrsp-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/volatile_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fold-phi-load-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-12-08-Select-ICmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/constant-fold-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-11-15-CompareMiscomp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-06-13-InfiniteLoopStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/misc-2002.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/weak-symbols.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vector-casts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load-bitcast64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr19420.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-add1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcpy-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cos-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/demorgan-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-05-28-select-hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strpbrk-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and-xor-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/lshr-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/adjust-for-sminmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-insertps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/prevent-cmp-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-21-MulTrunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-31-AddBool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-01-31-Pressure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-06-CastCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcmp-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-04-23-Neon-Intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast-bigendian.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fold-sqrt-sqrtf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/phi-load-metadata-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncat-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2010-01-28-NegativeSRem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/distribute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/phi-select-constexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-sse41.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr23751.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-pmovzx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strrchr-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-09-17-AliasConstFold2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-mul2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/copysign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/odr-linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-02-23-MulSub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast-vec-canon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2005-06-16-SetCCOrSetCCMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_phi_extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/extractvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/udiv-simplify-bug-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-08-SubAnd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2010-11-01-lshr-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-11-25-CompatibleAttributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-01-31-InfIterate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-10-12-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2011-05-28-swapmulsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/assume-loop-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/overflow-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-12-23-Select-Cmp-Cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pow-exp-nofastmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/hoist_instr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-09-15-CastToBool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/shufflemask-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/masked_intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/exp2-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cast_ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fpextend_x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcpy-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-add2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cos-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vsx-unaligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/win-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/ptr-int-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-11-27-UDivNegative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strpbrk-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/constant-fold-hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2010-03-03-ExtElim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2003-10-29-CallSiteResolve.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-06-BitCastAttributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2003-08-12-AllocaNonNull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-11-20-DivMulRem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-10-25-vector-of-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-03-18-vector-ashr-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-08-StrLenSink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-05-14-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fputs-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2003-05-27-ConstExprCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2011-09-03-Trampoline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fold-vector-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/abs-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-11-27-SetCCForCastLargerAndConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcmp-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-03-30-ExtractElement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/add2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_extract_elt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncat-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/getelementptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-shift-simplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and-or-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fold-bin-operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-12-28-IcmpSub2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-03-13-InstCombineInfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/or-xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memmove_chk-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-04-24-vselect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-04-29-VolatileLoadMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fcmp-special.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2011-03-08-SRemMinusOneBadOpt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/simplify-demanded-bits-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-06-06-AshrSignBit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-06-21-DivCompareMiscomp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/udiv-simplify-bug-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/loadstore-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/onehot_merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/compare-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-pmovsx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-04-29-VolatileLoadDontMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/tan-nofastmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fp-ret-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-zext1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-6-7-vselect-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-18-FoldIntToPtr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/puts-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vector-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-11-01-SRemDemandedBits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-29-AddICmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strstr-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-12-15-Range-Test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/udiv_select_to_select_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strlen-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-02-16-SDivOverflow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2005-06-15-ShiftSetCCCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select-crash-noverify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/exp2-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-09-SubAndError.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select-cmp-cttz-ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-04-07-MulPromoteToI96.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-07-02-MaskedIntVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/call-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-11-22-IcmpCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/indexed-gep-compares.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/multi-use-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/or-fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-06-VoidCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bswap-known-bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-01-05-i128-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitcast-sext-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-08-AndICmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/add3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memset2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-and-xor-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fold-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/objsize-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-10-11-DivCompareFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sprintf-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/no-negzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_extract_var_elt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-masked-memops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-13-AndCmpCmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/stack-overalign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/blend_x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memmove_chk-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bitreverse-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-08-05-And.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/setcc-strength-reduce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/constant-fold-address-space-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/align-2d-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/double-float-shrink-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-21-MismatchedCastAndCompare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/osx-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-10-20-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vector_gep1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-13-NoBitCastAttributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-zext2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/merge-icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-06-08-ICmpPHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-05-10-icmp-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strstr-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2003-05-26-CastMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strlen-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcpy_chk-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr21210.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2005-06-16-RangeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-pshufb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-01-18-VectorInfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/idioms.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-06-05-ashr-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memset-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2011-02-14-InfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-03-25-BadShiftMask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/call2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-16-fsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-and-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-call-cast-target.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/align-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2010-11-23-Distributed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-02-28-OrFCmpCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/narrow-switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-cast-cast-to-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/AddOverFlow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memset_chk-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/token.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cast-callee-deopt-bundles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-03-19-BadTruncChangePR1261.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2003-09-09-VolatileLoadElim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-11-27-MultiplyIntVec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr21891.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr23809.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/statepoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_narrow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/double-float-shrink-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/loadstore-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-10-ICmpBinOp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/badmalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-03-20-AShrOverShift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-11-07-OpaqueAlignCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vector_gep2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/neon-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/not-fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2005-07-07-DeadPHILoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/malloc-free-delete.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/and-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-22-NegValVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/isdigit-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/no_cgscc_assert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-08-VolatileLoadMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fold-fops-into-selects.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/constant-fold-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-01-11-OpaqueBitcastCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcpy_chk-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-05-04-DemandedBitCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-10-28-stacksave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-f16c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr20079.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2010-11-21-SizeZeroTypeGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memset-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pow-sqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2005-06-15-DivSelectCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcat-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/zext-or-icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strchr-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-01-14-VarArgTrampoline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/preserve-sminmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cast-int-fcmp-eq-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/zeroext-and-reduce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-02-13-FCmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-12-17-CmpSelectNull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-08-09-RemInfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-01-19-fmod-constant-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memset_chk-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/simplify-libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/assume2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-04-22-ByValBitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/signext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/isascii-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr12338.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-vector-shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/add-shrink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-05-23-CompareFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2005-03-04-ShiftOverflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/memcpy-to-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-04-30-SRem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/add-sitofp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/set.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-vperm2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/printf-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/nothrow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select-extractelement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2003-06-05-BranchInvertInfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-10-10-EliminateMemCpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/srem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-10-19-SignedToUnsignedCastAndConst-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/constant-expr-datalayout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load-bitcast32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/cast-set.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/div-shift-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/multi-size-address-space-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr2645-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-03-25-DoubleShift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-12-18-AddSelCmpSub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/exact.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/select-load-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-01-27-AndICmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2013-03-05-Combine-BitcastTy-Into-Alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/PR7357.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/phi-load-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-02-11-NotInitialized.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-01-16-PointerAddrSpace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-04-08-SingleEltVectorCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/logical-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/aligned-altivec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-08-02-InfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sign-test-and-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-09-10-AliasConstFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strcat-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/x86-sse2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pow-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strchr-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2006-02-13-DemandedMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strto-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/bit-checks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-rem1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-13-DivZero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2012-02-28-ICmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr21651.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/stpcpy-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sqrt-nofast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/shufflevec-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/tan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/sincospi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-09-29-FoldingOr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/vec_shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-11-22-Missed-and-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/CPP_min_max.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/apint-cast-and-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr26992.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2008-07-11-RemAnd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/printf-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/stpcpy_chk-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/load-combine-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/convergent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2007-03-21-SignedRangeTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-05-07-UnsizedCastLoad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/phi-merge-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/IntPtrCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/err-rep-cold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-01-24-EmptyStruct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/demand_shrink_nsw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/strncpy-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/pr2645-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/fold-vector-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2009-02-20-InstCombine-SROA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-07-27-ConstantExprMul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstCombine/2004-08-10-BoolSetCC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/ranges-multiple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/fold-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/no-merge-ptr-different-sizes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/merge-block-address-other-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/2013-01-10-MergeFuncAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/merge-const-ptr-and-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/inttoptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/vectors-and-arrays.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/self-referential-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/phi-speculation1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/no-merge-block-address-other-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/merge-ptr-and-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/inttoptr-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/apply_function_attributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/address-spaces.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/ptr-int-transitivity-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/too-small.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/vector-GEP-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/mergefunc-struct-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/merge-block-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/2011-02-08-RemoveEqual.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/ranges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/crash2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/phi-speculation2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/constant-entire-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/no-merge-block-address-different-labels.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/ptr-int-transitivity-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/gep-base-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/ptr-int-transitivity-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/no-merge-ptr-int-different-values.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/merge-different-vector-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/linkonce_odr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MergeFunc/undef-different-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/global_ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/global_ctors_integration.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2002-07-17-ConstantRef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2002-07-17-CastRef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2002-09-12-Redeletion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/pr20981.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/basicvariabletest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/externally_available.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2003-07-01-SelfReference.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2003-10-09-PreserveWeakGlobals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/complex-constantexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalDCE/deadblockaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EliminateAvailableExternally
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EliminateAvailableExternally/visibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CrossDSOCFI
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CrossDSOCFI/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/low-becount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/multiple-access-no-preloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/only-lower-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/unhandled.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/only-upper-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/bug-loop-varying-upper-limit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/not-likely-taken.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/single-access-with-preloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/single-access-no-preloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/bug-mismatched-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/decrementing-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IRCE/with-parent-loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/return-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/deadarg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/2008-06-09-WeakProp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/recursion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/return-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/user-with-multiple-uses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/dangling-block-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/PR16052.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/return-argument.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/2009-09-24-byval-ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IPConstantProp/PR26044.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StructurizeCFG
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StructurizeCFG/no-branch-to-entry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StructurizeCFG/branch-on-argument.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StructurizeCFG/one-loop-multiple-backedges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StructurizeCFG/post-order-traversal-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StructurizeCFG/loop-multiple-exits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StructurizeCFG/switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StructurizeCFG/nested-loop-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/non-constant-vtable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/constant-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/unique-retval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/uniform-retval-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/vcp-no-this.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/uniform-retval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/vcp-type-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/vcp-uses-this.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/virtual-const-prop-begin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/bad-read-from-vtable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/vcp-non-constant-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/non-array-vtable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/vcp-accesses-memory.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/WholeProgramDevirt/vcp-too-wide-ints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerAtomic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerAtomic/atomic-swap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerAtomic/barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerAtomic/atomic-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/2010-09-02-Trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/2010-09-26-MergeConstantRange.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/conflict.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/non-null.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/sdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CorrelatedValuePropagation/icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ForcedFunctionAttrs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ForcedFunctionAttrs/forced.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/InsertElement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2006-11-30-vector-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2007-02-05-BitCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2005-01-28-SetCCGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/trunc_vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2002-05-03-NotOperator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2002-05-03-DivideByZeroException.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/overflow-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2003-05-12-DivideError.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2009-09-01-GEP-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/extractvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2008-07-07-VectorCompare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/logicaltest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2007-11-23-cttz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/bswap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/float-to-ptr-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2009-06-20-constexpr-zero-lhs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/remtest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2006-12-01-TruncBoolBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2006-12-01-bool-casts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/convert-from-fp16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2007-02-23-sdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/div-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/insertvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstProp/constant-expr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StripDeadPrototypes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StripDeadPrototypes/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2004-12-10-UndefBranchBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2004-11-16-DeadInvoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/ipsccp-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2006-10-23-IPSCCP-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2002-08-30-GetElementPtrTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-bigint2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-bigarray.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/calltest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-ipsccp2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-basictest3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-ipsccp4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/undef-resolve.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/loadtest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/atomic-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-bigint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2002-05-21-InvalidSimplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2002-05-20-MissedIncomingValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/sccptest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/vector-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/ipsccp-addr-taken.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2008-05-23-UndefCallFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2008-01-27-UndefCorrelate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2009-01-14-IPSCCP-Invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2008-04-22-multiple-ret-sccp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2007-05-16-InvokeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/logical-nuke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2009-05-27-VectorOperandZero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-ipsccp1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-basictest2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/global-alias-constprop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-ipsccp3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/apint-basictest4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2006-12-04-PackedType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2003-06-24-OverdefinedPHIValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/retvalue-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2002-05-02-MissSecondInst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2006-12-19-UndefBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SCCP/2003-08-26-InvokeHandling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/preserve-loop-simplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/2009-01-25-SingleEntryPhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/nosimplifylatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/pr2639.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/PhiRename-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/PhiSelfReference-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/simplifylatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/convergent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/pr22337.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/multiple-exits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/phi-duplicate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/dbgvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/oz-disable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopRotate/preserve-scev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/struct_pattern.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/non-canonical-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/AMDGPU/popcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/memset_noidiom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/nontemporal_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/ctpop-multiple-users-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/debug-line.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/unroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/basic-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/X86/popcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopIdiom/scev-invalidation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SeparateConstOffsetFromGEP
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/split-gep-and-gvn-addrspace-addressing-modes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SeparateConstOffsetFromGEP/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/split-gep-and-gvn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/split-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SeparateConstOffsetFromGEP/NVPTX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/empty-block.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/unsafe-claim-rv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/cfg-hazards.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/post-inlining.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/gvn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/contract-marker.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/move-and-form-retain-autorelease.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/tail-call-invariant-enforcement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/provenance.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/escape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/ensure-that-exception-unwind-path-is-visited.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/apelim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/contract-testcases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/retain-block-side-effects.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/move-and-merge-autorelease.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/contract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/pr12270.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/split-backedge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/allocas.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/expand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/weak-dce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/rle-s2l.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/retain-not-declared.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/nested.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/contract-end-of-use-list.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/rv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/intrinsic-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/path-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/intrinsic-use-isolated.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/weak-contract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/contract-storestrong-ivar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/contract-storestrong.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/weak-copies.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ObjCARC/pointer-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/fence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/free.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/operand-bundles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/2011-03-25-DSEMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/memintrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/2011-09-06-MemCpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/calloc-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/const-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/OverwriteStoreEnd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/no-targetdata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/2011-09-06-EndOfFunction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/cs-cs-aliasing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/dominate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/PartialStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/inst-limits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/DeadStoreElimination/pr11390.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/addr-taken.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/dynamic-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-casted-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/X86/abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/array-aligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-bitcast-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-gep-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/no-attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-addr-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-select-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/debug-loc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/constant-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-gep-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-bitcast-store2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-gep-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/ARM/setjmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/ARM/abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-gep-negative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/constant-gep-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/phi-cycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/AArch64/abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/setjmp2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/constant-geps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-phi-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/escape-gep-ptrtoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SafeStack/setjmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ee-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/reverse_induction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/if-conversion-nest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/metadata-unroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/read-only.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/phi-hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ptr-induction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/induction_plus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/no_idiv_reduction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/struct_access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/minmax_reduction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/no_outside_user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/global_alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/i8-induction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/unroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/bzip_reverse_loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/if-conversion-reduction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/parallel-loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/tripcount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vector-scalar-select-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/fp64_to_uint32-cost-model.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/reduction-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vector_max_bandwidth.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/already-vectorized.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/fp_to_sint8-cost-model.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vector_ptr_load_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vect.omp.force.small-tc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/gcc-examples.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/no-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/struct-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/small-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/gather-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/unroll_selection.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/parallel-loops-after-reg2mem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/fp32_to_uint32-cost-model.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/avx512.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-profitable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vect.omp.force.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/rauw-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/conversion-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/uint64_to_fp64-cost-model.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/vectorize-only-for-real.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/veclib-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/no_fpmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/unroll-small-loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/x86_fp80-vector-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/constant-vector-operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/avx1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/powof2div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/min-trip-count-switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/ptr-indvar-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/X86/unroll-pm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/if-conversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/cpp-new-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/hoist-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/undef-inst-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/zero-sized-pointee-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/value-ptr-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/vectorize-once.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/no_switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/runtime-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/if-conv-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/infiniteloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/bsd_regex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/no_int_induction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/lcssa-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/exact.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/scev-exitlim-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/non-const-n.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/conditional-assignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/PowerPC/stride-vectorization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/PowerPC/vsx-tsvc-s173.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/PowerPC/agg-interleave-a2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/PowerPC/small-loop-rdx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/PowerPC/large-loop-rdx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/PowerPC/vectorize-only-for-real.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM/mul-cast-vect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM/width-detect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM/arm-unroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM/gcc-examples.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM/interleaved_cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM/vector_cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ARM/gather-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/runtime-check-readonly.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/write-only.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/runtime-check-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/safegep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/gep_with_bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/small-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/unsized-pointee-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/interleaved_cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/reduction-small-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/sdiv-pow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/deterministic-type-shrinkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/gather-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/aarch64-unroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-insertelt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/arbitrary-induction-step.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/arm64-unroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/AArch64/loop-vectorization-factors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/scalar-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/control-flow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/multi-use-reduction-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/miniters.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/induction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/same-base-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/metadata-width.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/calloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/optsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/float-reduction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/runtime-limit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/version-mem-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/start-non-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/nsw-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/dbg.value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/gcc-examples.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/XCore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/XCore/no-vector-registers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/XCore/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/tbaa-nodep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/loop-vect-memdep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/vect.omp.persistence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/if-conversion-edgemasks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/funcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/increment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/noalias-md.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/2012-10-20-infloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/2012-10-22-isconsec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/multiple-address-spaces.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/reduction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/duplicated-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/vect.stats.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/reverse_iter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/incorrect-dom-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/store-shuffle-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/nofloat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/simple-unroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/unroll_novec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/noalias-md-licm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/memdep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/loop-form.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/ptr_loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/no_array_bounds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/cast-induction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/debugloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVectorize/runtime-check-readonly-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PartiallyInlineLibCalls
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PartiallyInlineLibCalls/bad-prototype.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute/program-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute/no-if-convert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute/outside-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute/basic-with-memchecks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute/bounds-expansion-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute/crash-in-memcheck-generation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDistribute/unknown-bounds-for-memchecks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/fold-popular-case-to-unreachable-default.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/2003-08-23-EmptySwitch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/2014-06-10-SwitchContiguousOpt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/2014-06-11-SwitchDefaultUnreachableOpt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/delete-default-block-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/feature.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/2014-06-23-PHIlowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerSwitch/2003-05-01-PHIProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/capturing-func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/fca2memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/memcpy-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/memcpy-to-memset-with-lifetimes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/form-memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/smaller.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/memcpy-to-memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/memmove.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/loadstore-sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/2011-06-02-CallSlotOverwritten.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/callslot_aa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/memset-memcpy-to-2x-memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/callslot_deref.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/simple3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/loop1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/pr15289.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/sh-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/simple-ldstr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/vs-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/cmp-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/sh-rec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/simple-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/sh-rec2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/sh-rec3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/X86/wr-aliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/simple-ldstr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/ld1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/search-limit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/simple-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/func-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/req-depth.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/loop1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/mem-op-depth.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/no-ldstr-conn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/cycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/simple-tst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/simple-ldstr-ptrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/simple-sel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/xcore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BBVectorize/xcore/no-vector-registers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/funcimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/adjustable_threshold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/Inputs/adjustable_threshold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/Inputs/funcimport_debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/Inputs/funcimport_alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/Inputs/funcimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/funcimport_debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionImport/funcimport_alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopInterchange
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopInterchange/reductions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopInterchange/profitability.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopInterchange/interchange.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopInterchange/currentLimitation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioningLICM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDataPrefetch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDataPrefetch/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDataPrefetch/PowerPC/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDataPrefetch/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDataPrefetch/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDataPrefetch/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopDataPrefetch/AArch64/large-stride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerExpectIntrinsic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerExpectIntrinsic/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2004-04-12-LoopSimplify-SwitchBackedges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/dup-preds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/single-backedge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/hardertest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2012-03-20-indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2003-05-12-PreheaderExitOfChild.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/notify-scev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2007-10-28-InvokeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/dbg-loc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2003-12-10-ExitBlocksProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2003-08-15-PreheadersFail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/indirectbr-backedge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/unreachable-loop-pred.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2004-04-01-IncorrectDomUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2004-02-05-DominatorInfoCorruption.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2004-03-15-IncorrectDomUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2003-04-25-AssertFail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2010-12-26-PHIInfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2004-04-13-LoopSimplifyUpdateDomFrontier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/preserve-scev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/merge-exits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2010-07-15-IncorrectDomFrontierUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/ashr-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/phi-node-simplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplify/2011-12-14-LandingpadHeader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/memset-aggregate-byte-leader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2011-05-06-CapturedAlloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2008-02-28-SubElementExtractCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/vector_memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/phi-cycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/union-packed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/arraytest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/memset-aggregate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2008-01-29-PromoteBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2009-02-05-LoadFCA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2011-06-17-VectorPartialMemset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/union-fp-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/bitfield-sroa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2008-06-05-loadstore-agg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/nonzero-first-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/select_promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2003-09-12-IncorrectPromote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2003-10-29-ArrayProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/negative-memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2011-10-11-VectorMemset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2009-02-02-ScalarPromoteOutOfRange.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/sroa-fca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/AggregatePromote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/phinodepromote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/phi-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2011-10-22-VectorCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2003-05-29-ArrayFail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/inline-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/not-a-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/volatile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/DifferingTypes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/memcpy-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2011-06-08-VectorExtractValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/vectors-with-mismatched-elements.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/badarray.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/only-memcpy-uses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2011-09-22-PHISpeculateInvoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/sroa_two.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/load-store-aggregate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/copy-aggregate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/debuginfo-preserved.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2007-11-03-bigendian_apint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/union-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/vector_promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PhaseOrdering
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PhaseOrdering/2010-03-22-empty-baseclass.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PhaseOrdering/scev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PhaseOrdering/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PhaseOrdering/gdce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PhaseOrdering/PR6627.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/calls-readonly.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2009-01-21-SortInvalidation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/fpmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pr25440.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2009-01-22-SortInvalidation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/rle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pr24426.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2008-12-15-CacheVisited.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/invariant.group.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/cond_br2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/readattrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/MemdepMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-31-NoDomInherit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/rle-phi-translate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-25-DominatedLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pre-single-pred.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/basic-undef-test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2009-11-12-MemDepMallocBitCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/preserve-tbaa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2011-06-01-NonLocalMemdepMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/assume-equal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2008-07-02-Unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/load-pre-nonlocal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-26-PhiErasure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/non-local-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2008-12-12-RLE-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/volatile-nonvolatile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/nonescaping-malloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-25-SinglePredecessor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/load-constant-mem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/malloc-load-removal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2010-03-31-RedundantPHIs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/crash-no-aa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/load-pre-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2009-06-17-InvalidPRE.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/br-identical.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/rle-must-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2011-09-07-TypeIdFor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/rle-semidominated.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pre-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2011-04-27-phioperands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2008-12-09-SelfRemove.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/cond_br.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2010-05-08-OneBit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2009-07-13-MemDepSortFail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/invariant-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/phi-translate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2010-11-13-Simplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/volatile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/fence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/lpre-call-wrap-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pr14166.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pre-no-cost-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/rle-nonlocal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pr17732.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2008-02-12-UndefLoad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pr24397.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/phi-translate-partial-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2012-05-22-PreCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-30-PredIDom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/no_speculative_loads_with_asan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/funclet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/unreachable_block_infinite_loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/load-from-unreachable-predecessor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2008-12-14-rle-reanalyze.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2011-07-07-MatchIntrinsicExtract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/edge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/bitcast-of-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-25-Loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/tbaa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-25-NestedLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pre-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pr10820.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pre-gep-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/calloc-load-removal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/local-pre.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-31-RedundantPhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2008-02-13-NewPHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/lpre-call-wrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/condprop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/load-pre-licm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/lifetime-simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/noalias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pr17852.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pre-new-inst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2009-03-10-PREOnVoid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pre-basic-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-25-InfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/null-aliases-nothing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/pr12979.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/2007-07-26-NonRedundant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/calls-nonlocal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GVN/rle-no-phi-translate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/PowerPC/masks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/PowerPC/const-base-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/X86/delete-dead-cast-inst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/X86/phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/X86/stackmap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/X86/cast-inst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/X86/const-base-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/X86/large-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/AArch64/const-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/AArch64/large-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantHoisting/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2011-09-26-EHCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2006-06-27-DeadSwitchCase.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/trivial-unswitch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2015-06-17-Metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2008-06-17-DomFrontier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2010-11-18-LCSSA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2007-07-18-DomInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2012-04-30-LoopUnswitch-LPad-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2006-06-13-SingleEntryPHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2011-06-02-CritSwitch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2012-04-02-IndirectBr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/preserve-analyses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/infinite-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/cleanuppad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/LIV-loop-condtion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2007-05-09-tl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2007-10-04-DomFrontier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2007-07-12-ExitDomInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2008-11-03-Invariant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2008-06-02-DomInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2007-07-13-DomInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2015-09-18-Addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/cold-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/copy-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2007-08-01-LCSSA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2011-11-18-SimpleSwitch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2011-11-18-TwoSwitches-Threshold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2012-05-20-Phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2007-05-09-Unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnswitch/2007-08-01-Dom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/basics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/deopt-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/rematerialize-derived-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/preprocess.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/live-vector-nosplit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/deref-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/gc-relocate-creation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/leaf-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/patchable-statepoints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/deopt-bundles
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/relocation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/relocate-invoke-result.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/statepoint-calling-conventions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/rewrite-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/call-gc-result.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/invokes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/statepoint-format.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/statepoint-coreclr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/codegen-cond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/liveness-basics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/base-pointers-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/RewriteStatepointsForGC/two-invokes-one-landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MetaRenamer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/MetaRenamer/metarenamer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2005-11-18-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr26973.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2009-04-22-IndvarCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2011-09-10-widen-nsw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/iv-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/signed-trip-count.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/tripcount_infinite.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2004-04-05-InvokeCastCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/interesting-invoke-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/phi-uses-value-multiple-times.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/udiv-invariant-but-traps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lftr_simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/ashr-tripcount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/iv-widen.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate_4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr24952.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/sharpen-range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/iterationCount_zext_or_trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2011-09-19-vectoriv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/iv-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/shrunk-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2012-07-17-lftr-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/backedge-on-min-max.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/bec-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/no-iv-rewrite.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/avoid-i0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/rewrite-loop-exit-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2007-01-06-TripCount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/divide-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2004-04-07-ScalarEvolutionCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/exit_value_test3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/single-element-range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/verify-scev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/floating-point-iv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lrev-existing-umin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/variable-stride-ivs-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/uglygep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/dangling-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/ada-loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2005-06-15-InstMoveCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/masked-iv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2003-12-15-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/sink-trapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr26974.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2005-02-11-InvokeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/zext-nuw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lftr-other-uses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/dont-recompute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/widen-loop-comp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2008-10-03-CouldNotCompute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop-invariant-conditions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2011-11-01-lftrptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2006-06-16-Indvar-LCSSA-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2012-10-19-congruent-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate_5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/tripcount_compute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lftr-address-space-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/exit_value_tests.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2011-09-27-hoistsext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/eliminate-rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2004-03-10-PHIInsertionBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/eliminate-max.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2005-02-17-TruncateExprCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/polynomial-expand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lftr-udiv-tripcount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2006-03-31-NegativeStride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/udiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2011-11-15-multiexit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2008-09-02-IVType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2011-11-17-selfphi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr26207.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr25047.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/const_phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2011-10-27-lftrnull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lftr-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2005-02-26-ExitValueCompute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr24956.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr25578.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/sink-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2009-04-15-shorten-iv-vars-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/use-range-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/AMDGPU/no-widen-to-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/NVPTX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/NVPTX/no-widen-expensive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2003-04-16-ExprAnalysis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr22222.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2006-12-10-BitCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/ult-sub-to-eq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2002-09-09-PointerIndVar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr18223.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate_3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr24804.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr24783.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/iv-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lftr-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/overflowcheck.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2008-11-25-APFloatAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2009-04-14-shorten_iv_vars.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/preserve-signed-wrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2003-12-10-RemoveInstrCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr25051.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr25421.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr25360.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2014-06-21-congruent-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2008-06-15-SCEVExpanderBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/casted-argument.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate_6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr24356.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/exit_value_test2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lftr-reuse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr25576.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2006-09-20-LFTR-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2007-11-23-BitcastCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2003-09-23-NotAtTop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/variable-stride-ivs-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/elim-extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/widen-nsw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/2009-05-24-useafterfree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr25060.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lftr-extend-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/pr20680.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/strengthen-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/IndVarSimplify/lcssa-preservation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BranchFolding
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BranchFolding/2007-10-19-InlineAsmDirectives.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailDup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailDup/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailDup/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/TailDup/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-ReassociateVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-multistep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/crash2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-AgressiveSubMove.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2003-08-12-InfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/secondary.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/xor_reassoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/no-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2012-06-08-InfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/subtest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/canonicalize-neg-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/add_across_block_crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/mulfactor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2005-09-01-ArrayOutOfBounds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/wrap-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/negation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2011-01-26-UseAfterFree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/vaarg_movable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-fp-commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/looptest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2002-07-09-DominanceProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-mightymul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/mixed-fast-nonfast-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fp-commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/optional-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/pr12245.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/absorption.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2006-04-27-ReassociateVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fp-expr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/negation1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/multistep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2012-05-08-UndefLeak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/shift-factor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2002-05-15-MissedTree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/min_int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/inverses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-MissedTree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-ArrayOutOfBounds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2002-05-15-SubReassociate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/factorize-again.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/repeats.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/otherops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-SubReassociate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/reassoc-intermediate-fnegs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/pr21205.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/fast-basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/shifttest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/2002-05-15-AgressiveSubMove.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/mightymul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Reassociate/prev_insts_canonicalized.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/nonnull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/operand-bundles-scc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/2008-12-29-Constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadNone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/readattrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/readnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/2010-10-30-volatile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/nocapture.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/out-of-bounds-iterator-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/2008-09-03-Mutual.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/norecurse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/2008-09-13-VolatileRead.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/optnone-simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/2008-09-03-ReadOnly.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/convergent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/noreturn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/FunctionAttrs/optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpandLoadLinked
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpandLoadLinked/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2007-05-05-UnrollMiscomp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/unroll-cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/partial-unroll-optsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2011-10-01-NoopTrunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2007-05-09-UnknownTripCount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/AMDGPU/unroll-barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/full-unroll-heuristics-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/PowerPC/p7-unrolling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/PowerPC/a2-high-cost-trip-count-computation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/PowerPC/a2-unrolling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/shifted-tripcount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/runtime-loop1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/runtime-loop3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/pr10813.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2011-08-09-PhiUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/runtime-loop5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/AArch64/runtime-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/AArch64/partial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2005-03-06-BadLoopInfoUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/full-unroll-heuristics-phi-prop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/tripcount-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/pr18861.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/full-unroll-heuristics-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/runtime-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/update-loop-info-in-subloops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/nsw-tripcount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2006-08-24-MultiBlockLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/ignore-annotation-intrinsic-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/ephemeral.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/unroll-pragmas.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/full-unroll-bad-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/unroll-pragmas-disabled.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/convergent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/loop-remarks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/rebuild_lcssa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/runtime-loop2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/unloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/pr11361.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2007-04-16-PhiUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2011-08-08-PhiUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/runtime-loop4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/X86/partial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/X86/mmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/full-unroll-crashers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/pr14167.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2012-04-09-unroll-indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2011-08-09-IVSimplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/2007-11-05-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/high-cost-trip-count-computation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/full-unroll-heuristics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopUnroll/scevunroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/2007-07-12-LICM-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/2007-07-12-LICM-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/2007-07-12-LICM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/unreachable-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/unused-phis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/mixed-catch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/2006-07-09-NoDominator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/2006-10-31-UnreachableBlock.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LCSSA/invoke-dest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplifyCFG
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopSimplifyCFG/merge-header.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor/2004-08-12-BlockExtractPHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor/2004-03-17-UpdatePHIsOutsideRegion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor/2004-03-14-NoSwitchSupport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor/2004-03-14-DominanceProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor/2004-03-17-MissedLiveIns.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor/2004-11-12-InvokeExtract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor/2004-03-18-InvokeHandling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeExtractor/2004-03-13-LoopExtractorCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH/simplenoreturntest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH/pr23971.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH/recursivetest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH/simpletest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH/seh-nounwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH/2008-06-02-Weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH/operand-bundles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/PruneEH/pr26263.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GCOVProfiling
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GCOVProfiling/linkagename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GCOVProfiling/global-ctor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GCOVProfiling/version.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GCOVProfiling/linezero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GCOVProfiling/return-block.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GCOVProfiling/modules.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GCOVProfiling/function-numbering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoadCombine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoadCombine/load-combine-assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoadCombine/load-combine-aa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoadCombine/load-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2003-08-05-InvokeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2003-03-07-DominateProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PowerPC/cttz-ctlz-spec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/duplicate-phis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PR9946.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2009-01-19-UnconditionalTrappingConstantExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/MagicPointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2005-12-03-IncorrectPHIFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/volatile-phioper.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch_create.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/unreachable-blocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/branch-fold-test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2006-06-12-InfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2002-09-24-PHIAssertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/bug-25299.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/InfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/invoke_unwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/extract-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/preserve-branchweights-switch-create.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_tsan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2008-07-13-InfLoopMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2008-10-03-SpeculativelyExecuteBeforePHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PHINode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PR25267.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/trap-debugloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/select-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2006-08-03-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2010-03-30-InvokeCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2007-11-22-InvokeNoUnwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/common-dest-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/AMDGPU/cttz-ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PhiEliminate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/seh-nounwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/speculate-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/branch-phi-thread.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-to-select-multiple-edge-per-block-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/speculate-vector-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/iterative-simplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/CoveredLookupTable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2011-09-05-TrivialLPad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2005-08-01-PHIUpdateFail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/preserve-make-implicit-on-switch-to-br.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/wineh-unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2006-10-19-UncondDiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/noreturn-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/empty-catchpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PhiNoEliminate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/ARM/cttz-ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/return-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-dead-default.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/attr-noduplicate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/HoistCode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/attr-convergent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/AArch64/cttz-ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/AArch64/prefer-fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PR17073.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/statepoint-invoke-unwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PR16069.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/SpeculativeExec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2006-02-17-InfiniteUnroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2003-08-17-BranchFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/SPARC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/SPARC/switch_to_lookup_table.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/SPARC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/implied-cond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2008-05-16-PHIBlockMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/empty-cleanuppad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/phi-undef-loadstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/duplicate-landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/branch-cond-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/branch-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/unreachable-cleanuppad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/BrUnwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch_thread.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/EmptyBlockMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/PhiEliminate3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/dbginfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/preserve-branchweights-partial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/dce-cond-after-folding-terminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2004-12-10-SimplifyCFGCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/switch-to-br.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2005-10-02-InvokeSimplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/branch-cond-prop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2002-05-21-PHIElimination.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2008-09-17-SpeculativeHoist.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/no_speculative_loads_with_asan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/ForwardSwitchConditionToPHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/Mips/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/Mips/cttz-ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/speculate-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/preserve-load-metadata-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2007-12-21-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2003-08-17-BranchFoldOrdering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/EqualPHIEdgeBlockMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/clamp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/merge-cleanuppads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/multiple-phis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SimplifyCFG/lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/flattencfg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/store-first-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/simplify-dbg-declare-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/combine-alias-scope-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/cyclicphi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/load-invariant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/optimize-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/function-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/function-mem-attrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/no-disconnected.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/phi-translation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/multi-edges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/atomic-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/multiple-backedges-hal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/many-dom-backedge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/many-doms.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/multiple-locations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/volatile-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/MemorySSA/livein.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/lowerswitch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Util/split-bit-piece.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2009-04-28-no-reduce-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2005-08-15-AddRecIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2012-01-16-nopreheader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2013-01-14-ReuseCast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/share_ivs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/ops_after_indvar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr27056.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/shl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/nested-reduce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/addrec-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2012-07-13-ExpandUDiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/dont_reverse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/variable_stride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/funclet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2011-10-14-IntPtr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/share_code_in_preheader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/ephemeral.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2009-01-13-nonconstant-stride-outside-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2008-09-09-Overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2011-10-06-ReusePhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/addrec-gep-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/NVPTX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/NVPTX/trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/hoist-parent-preheader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/exit_compare_live_range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/uglygep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr12018.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr12048.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/sext-ind-var.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2012-03-15-nopreheader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/post-inc-icmpzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/different-type-ivs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/count-to-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/scaling_factor_cost_crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr18165.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/lsr-expand-quadratic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2012-07-18-LimitReassociate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2007-04-23-UseIterator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr3086.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/nonlinear-postinc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2011-12-19-PostincQuadratic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/related_indvars.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2011-07-19-CritEdgeBreakCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr3399.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2005-08-17-OutOfLoopVariant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/dead-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2012-03-26-constexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/dont_insert_redundant_ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/2008-08-14-ShadowIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/2011-12-04-loserreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/ivchain-X86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/ivchain-stress-X86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/2009-11-10-LSRCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/pr17473.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/2011-11-29-postincphi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/2012-01-13-phielim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/no_superflous_induction_vars.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/X86/2011-07-20-DoubleIV.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/var_stride_used_by_compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr25541.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr12691.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2011-10-03-CritEdgeMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2008-08-13-CmpStride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr2570.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/phi_node_update_multiple_preds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/remove_indvar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/dont_reduce_bytes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/ARM/ivchain-ARM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/ARM/2012-06-15-lsr-noaddrmode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2005-09-12-UsesOutOutsideOfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/preserve-gep-loop-variant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/ivchain.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2013-01-05-IndBr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AArch64/req-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AArch64/lsr-memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AArch64/lsr-memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2011-10-13-SCEVChain.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/address-space-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/negative-scale.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/uglygep-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/dont-hoist-simple-loop-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr3571.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/pr2537.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-postinc-pos-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/different-addrspace-addressing-mode-loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopStrengthReduce/2012-01-02-nopreheader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/loop-simplify-dep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/opt-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/memcheck.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/backward.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/non-consecutive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/multiple-stores-same-block.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/forward.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/type-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/def-store-before-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopLoadElim/unknown-dep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/invariant.group.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/overflow-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/statepoint-relocate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/AMDGPU/no-sink-addrspacecast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/ARM/bitreverse-recognize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/dom-tree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/2008-11-24-RAUW-Self.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/catchpad-phi-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/cttz-ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/sink-addrmode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/x86-shuffle-sink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/widen_switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/X86/memset_chk-simplify-nobuiltin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/AArch64/widen_switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/AArch64/free-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/AArch64/trunc-weird-user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/CodeGenPrepare/bitreverse-hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/malloc-promote-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/array-elem-refs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/invariant-nodatalayout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/crash-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/ctor-list-opt-inbounds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/unnamed-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/ctor-list-opt-constexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/SROA-section.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/deadglobal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/constantexpr-dangle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-01-13-phi-user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/cleanup-pointer-root-users.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/trivialstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/invariant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/MallocSROA-section.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/globalsra-partial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/undef-init.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/memset-null.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/fastcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/alias-resolve.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/globalsra-unknown-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/invariant.group.barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/deadglobal-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/pr21191.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2010-10-19-WeakOdr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2005-06-15-LocalizeConstExprCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-03-06-Anonymous.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/preserve-comdats.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/alias-used.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/storepointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/iterate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-02-15-BitcastAlias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/phi-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/atexit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-06-01-RecursivePHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/heap-sra-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/alias-used-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/load-store-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/cxx-dtor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/compiler-used.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/GSROA-section.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/externally-initialized-aggregate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/ctor-list-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/storepointer-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/available_externally_global_ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2011-04-09-EmptyGlobalCtors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2007-06-04-PackedStruct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-03-07-PromotePtrToBool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2007-04-05-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2007-05-13-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/externally-initialized.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2004-10-10-CastStoreOnce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2008-12-16-HeapSRACrash-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/heap-sra-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/blockaddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2005-09-27-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2010-02-25-MallocPromote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/constantfold-initializers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/deadfunction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-11-16-BrokenPerformHeapAllocSRoA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/globalsra.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/zeroinitializer-gep-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/global-demotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-11-16-MallocSingleStoreToGlobalVar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2010-02-26-MallocSROA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2012-05-11-blockaddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-02-15-ResolveAlias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2008-01-13-OutOfRangeSROA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/localize-constexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2008-01-03-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/2009-03-05-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/integer-bool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/GlobalOpt/alias-used-section.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/nonstring.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/function-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/pr25902.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/single-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/unnamed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/nonglobal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LowerBitSets/layout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopReroll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopReroll/ptrindvar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopReroll/reduction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopReroll/basic32iters.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopReroll/nonconst_lb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopReroll/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopReroll/negative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopReroll/reroll_with_dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/2008-09-07-CGUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/2008-09-08-CGUpdateSelfEdge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/attrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/pr3085.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/control-flow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/aggregate-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/2008-07-02-array-indexing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/byval-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/callgraph-update.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/fp80.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/reserve-tbaa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/inalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/variadic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/control-flow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/tail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ArgumentPromotion/chained.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/ptr_diff.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/2010-12-20-Boolean.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/vector_ptr_bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/reassociate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/bswap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/2011-10-27-BinOpCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/shift-128-kb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/2011-02-01-Vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/floating-point-arithmetic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/add-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/2011-09-05-InsertExtractValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/fdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/past-the-end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/noalias-ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/AndOrXor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/vector_gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/implies.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/2013-04-19-ConstantFoldingCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/dead-code-removal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/call-callconv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/floating-point-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/exact-nsw-nuw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/fast-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/shr-nop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/2011-01-14-Thread.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/apint-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/2011-11-23-MaskedBitsCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/fold-builtin-fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstSimplify/maxmin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/NaryReassociate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/NaryReassociate/pr24301.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/NaryReassociate/nary-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/NaryReassociate/nary-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/NaryReassociate/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/NaryReassociate/NVPTX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/NaryReassociate/NVPTX/nary-slsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/NaryReassociate/NVPTX/nary-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/ld_hoist1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/st_sink_no_barrier_call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/st_sink_no_barrier_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/st_sink_barrier_call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/st_sink_bugfix_22613.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/st_sink_no_barrier_load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/st_sink_with_barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/ld_hoist_st_sink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/InstMerge/st_sink_two_stores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BDCE
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BDCE/order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BDCE/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/BDCE/dce-pure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Scalarizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Scalarizer/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Scalarizer/store-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Scalarizer/dbginfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Scalarizer/cache-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators/oneline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators/diamond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators/multiple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators/dbg-declare-discriminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators/no-discriminators.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AddDiscriminators/first-only.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/vector-conversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/vector-promotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/slice-order-independence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/vectors-of-pointers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/fca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/pr26972.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/slice-width.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/big-endian.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/phi-and-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/dbg-single-piece.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/vector-lifetime-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/ppcf128-no-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/address-spaces.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SROA/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Sink
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Sink/convergent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Sink/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Sink/landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Sink/catchswitch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/NVPTX/reassociate-geps-and-slsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/NVPTX/speculative-slsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/NVPTX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/slsr-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/slsr-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/slsr-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/X86/no-slsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/pr23975.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/reassociate-geps-and-slsr-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/read-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/instsimplify-dom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/floatingpoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/fence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/AArch64/ldstN.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/AArch64/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/conditional.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/EarlyCSE/edge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AlignmentFromAssumptions
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AlignmentFromAssumptions/start-unk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SpeculativeExecution
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SpeculativeExecution/spec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantMerge
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantMerge/unnamed-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantMerge/dont-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantMerge/2003-10-28-MergeExternalConstants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantMerge/merge-both.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantMerge/align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantMerge/2002-09-23-CPR-Update.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/ConstantMerge/2011-01-15-EitherOrder.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StripSymbols
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StripSymbols/2007-01-15-llvm.used.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StripSymbols/2010-08-25-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StripSymbols/2010-06-30-StripDebug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/StripSymbols/block-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AMDGPU/simplebb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/ARM/sroa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/ARM/memory.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/XCore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/XCore/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/XCore/no-vector-registers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/extractcost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_binaryop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/multi_block.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_flop7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/flag.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_7zip.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/loopinvariant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/scheduling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/schedule_budget.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/implicitfloat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/addsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/pr16899.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/saxpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_bullet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_dequeue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/commutativity.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/pr18060.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/cross_block_slp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/barriercall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_netbsd_decompress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/operandorder.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/pr16571.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/hoist.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/value-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/multi_user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/horizontal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/phi_landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/phi_overalignedtype.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_scheduling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/cycle_dup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/ordering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/bad_types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/diamond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_sim4b1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/in-tree-user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/non-vectorizable-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/cmp_sel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/long_chains.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/insert-element-build-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_bullet3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_smallpt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/pr19657.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/simplebb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/simple-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/debug_info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/phi3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/continue_vectorizing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/rgb_phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_vectorizeTree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/pr23510.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/reduction2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/powof2div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/external_user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/odd_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_lencod.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/crash_mandeltext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/pr16628.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/propagate_ir_flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/compare-reduce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/X86/reduction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/mismatched-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/minimum-sizes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/load-store-q.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/sdiv-pow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/gather-reduce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/X86/expand-atomic-non-integer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/X86/expand-atomic-rmw-initial-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/ARM/cmpxchg-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/ARM/atomic-expansion-v7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/ARM/atomic-expansion-v8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/AtomicExpand/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioning
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioning/lcssa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioning/noalias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioning/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/LoopVersioning/noalias-version-twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/deopt-bundles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/alloca-in-scc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/PR4909.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2008-09-02-NoInline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/recursive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_dbg_declare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/deoptimize-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/delete-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-byval-bonus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/X86/inline-target-attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/noalias-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2007-06-25-WeakInline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2006-11-09-InlineCGUpdate-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/pr22285.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/noalias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/invoke_test-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-fast-math-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_returns_twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/null-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2007-12-19-InlineNoUnwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/nested-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/dynamic_alloca_test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/store-sroa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2004-04-15-InlineDeletesCall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-optsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2009-05-07-CallUsingSelfCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/frameescape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2003-10-13-AllocaDominanceProblem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/ptr-diff.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/pr21206.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/callgraph-update.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/alloca-bonus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-constexpr-addrspacecast-argument.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/alloca-merge-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/crash2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/debug-info-duplicate-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2004-04-20-InlineLinkOnce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/zero-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2007-04-15-InlineEH.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2006-01-14-CallGraphUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/vector-bonus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/invoke_test-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2003-09-22-PHINodesInExceptionDest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_dce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/byval_lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2010-05-12-ValueMap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-cold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/pr26698.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/invoke-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/ephemeral.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/invoke-combine-clauses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-tail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2003-09-14-InlineValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-invoke-with-asm-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/devirtualize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/devirtualize-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/crash-lifetime-marker.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/noinline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/always-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-indirect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/casts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_minisize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_prune.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/optimization-remarks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-hot-callee.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/alloca_test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/array_merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-vla.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-invoke-tail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-funclets.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/ignore-debug-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/gvn-inline-iteration.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/alloca-dbgdeclare-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_ssp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/alloca-dbgdeclare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/devirtualize-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/noalias2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/cfg_preserve_test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2003-09-22-PHINodeInlineFail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/lifetime-no-datalayout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/byval-tail-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2009-01-13-RecursiveInlineCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/debug-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-cold-callee.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/invoke-cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline-musttail-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/noinline-recursive-fn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/profile-meta.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_constprop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2006-11-09-InlineCGUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/nonnull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/attributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2009-01-08-NoInlineDynamicAlloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/externally_available.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/noalias-cs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/inline_invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/invoke_test-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/2003-09-22-PHINodesInNormalInvokeDest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Transforms/Inline/blockaddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/symver-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/diagnostic-handler-noexit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/llvm-lto-output.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/no-undefined-puts-when-implemented.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/disable-verify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/keep-used-puts-during-instcombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/bcsection.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/cfi_endproc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/Inputs/list-symbols.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/Inputs/bcsection.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/Inputs/invalid.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/Inputs/bcsection.macho.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/private-symbol.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/linkonce_odr_func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/current-section.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/runtime-library.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/restore-externals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/invalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/pr25919.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/set-merged.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/parallel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/attrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/triple-init.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/diagnostic-handler-remarks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/X86/list-symbols.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/ARM/runtime-library-subtarget.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/LTO/ARM/inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-64-avx512f_vl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-fma4-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-directional-label.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-sse4a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/avx512vl-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/avx512-err.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/padlock.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-imm-widths.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-avx-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_operands.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/relax-insn.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-hex.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-rtm-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-avx512.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/stackmap-nops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/cfi_def_cfa-crash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-avx-clmul-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/encoder-fail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-invalid-basereg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/ret.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-64-avx512bw_vl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/X86_64-pku.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/address-size.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/avx512-encodings.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/fixup-cpu-mode.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/avx512bw-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/hex-immediates.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/expand-var.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-fma3-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/avx512ifma-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-signed-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/invalid-sleb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-windows-itanium-libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-16.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/mpx-encodings.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/faultmap-section-parsing.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-32-ms-inline-asm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-ptr-sized.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/large-bss.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-unsized-memory.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/sgx-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/macho-reloc-errors-x86.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-hle-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-64-avx512bw.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/gnux32-dwarf-gen.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-tbm-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-32-avx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-rand-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-x86-64-avx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-64-avx512cd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-invalid-scale.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/inline-asm-obj.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/variant-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/avx512ifmavl-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/macho-uleb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/shuffle-comments.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/reloc-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-64-avx512dq_vl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/compact-unwind.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/error-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-print.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/reloc-undef-global.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-bitwise-ops.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/no-elf-compact-unwind.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-64-avx512cd_vl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-target-directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/validate-inst-intel.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/invalid_opcode.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-evenDirective.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_long_nop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/bundle-group-too-large-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/align-mode-argument-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/misaligned-bundle.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/labeloffset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/pad-align-to-bundle-end.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/relax-at-bundle-end.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/pad-bundle-groups.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/switch-section-locked-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/different-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/long-nop-pad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/single-inst-bundling.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/bundle-lock-option-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-padding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/nesting.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/lock-without-bundle-mode-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/unlock-without-lock-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/rodata-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/misaligned-bundle-group.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/autogen-inst-offset-align-to-end.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/asm-printing-bundle-directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/section-alignment.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/AlignedBundling/relax-in-bundle-group.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-64-avx512dq.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-xop-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_64-bmi-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/intel-syntax-ambiguous.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/index-operations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/2011-09-06-NoNewline.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/avx512vbmi-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/reloc-macho.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/3DNow.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/validate-inst-att.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/i386-darwin-frame-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-32-fma3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-itanium.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/macho-reloc-errors-x86_64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/fde-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86-32-coverage.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/X86/x86_nop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/tls.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/pushsection.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86_32-scattered-reloc-fallback.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/thread_init_func.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/darwin-x86_64-diff-reloc-assign-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/data.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/darwin-x86_64-diff-reloc-assign.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/darwin-x86_64-nobase-relocs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/zerofill-sect-align.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/bad-indirect-symbols.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/loc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/eh_symbol.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/variable-exprs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/zerofill-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/bss.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/zerofill-4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/darwin-x86_64-reloc-offsets.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/gen-dwarf-macro-cpp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/section-align-1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/cstexpr-gotpcrel-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/bad-dollar.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/i386-large-relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/temp-labels.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/weakdef.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/relax-jumps.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/reloc-pcrel.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86_32-optimal_nop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/reloc-diff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/darwin-x86_64-diff-relocs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/symbol-diff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86-data-in-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86_32-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86_32-symbols.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/darwin-complex-difference.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/bad-darwin-x86_64-reloc-expr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/linker-options.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/bad-macro.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86_64-reloc-arithmetic.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/indirect-symbols.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/section-attributes.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/linker-option-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/pr19185.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/lcomm-attributes.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/tdata.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/coal-sections-x86_64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/direction_labels.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/altentry.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/tlv.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/gen-dwarf.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/tbss.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/previous.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/empty-twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/bad-darwin-x86_64-32-bit-abs-addr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/diff-with-two-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/absolute.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/file.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86_64-symbols.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/zerofill-1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/symbols-1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/zerofill-3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/zerofill-5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/comm-1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/gen-dwarf-cpp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/string-table.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/section-align-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/reloc-pcrel-offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/gen-dwarf-producer.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/section-flags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/symbol-flags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/values.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/debug_frame.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/cstexpr-gotpcrel-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/relax-recompute-align.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/symbol-indirect.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/pcrel-to-other-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/osx-version-min-load-command.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/tlv-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/compact-unwind-armv7k.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/version-min-diagnostics2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/nop-armv6t2-padding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/nop-thumb2-padding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/static-movt-relocs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/relax-thumb-ldr-literal.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/directive-type-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/darwin-Thumb-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/darwin-ARM-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/watchos-version-min-load-command.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/version-min.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/bad-darwin-directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/long-call-branch-island-relocation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/no-subsections-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/llvm-objdump-macho-stripped.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/nop-armv4-padding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/bad-darwin-ARM-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/ios-version-min-load-command.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/tvos-version-min-load-command.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/relax-thumb2-branches.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/llvm-objdump-macho.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/thumb2-function-relative-load.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/cstexpr-gotpcrel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/version-min-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/thumb2-movt-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/nop-thumb-padding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/thumb2-movw-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/empty-function-nop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/thumb-bl-jbits.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/data-in-code.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/ARM/aliased-symbols.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/PowerPC/coal-sections-powerpc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86_64-mergeable.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/darwin-version-min-load-command.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/absolutize.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/darwin-x86_64-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/x86_64-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/eh-frame-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/ld64-workaround.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/reloc-crash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/mergeable.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/reloc-crash2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/classrefs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/darwin-ARM64-local-label-diff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/cstexpr-gotpcrel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/darwin-ARM64-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/AArch64/reloc-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/linker-option-1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/variable-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/tlv-bss.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/bad-darwin-x86_64-diff-relocs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/MachO/jcc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/fullfp16-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/optional-hash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/expr-shr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/mapping-across-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-neg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-target-specific-sysreg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/inline-asm-modifiers.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/basic-a64-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/dot-req-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-reloc-uncondbrimm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/ldr-pseudo-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-v128_lo-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/inst-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-saturating-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-fp-compare.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.2a-persistent-memory.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-elf-reloc-condbr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-arithmetic-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-bitwise-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-arm64-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-crypto.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/gicv3-regs-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-advsimd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-mapping-within-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-by-elem-mul.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-spsel-sysreg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-uxtl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-tls-modifiers-darwin.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/basic-pic.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-cvt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-saturating-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-simd-ldst-one-elem.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-rounding-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-adr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-memory.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-recip.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/fullfp16-neon-neg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-extract.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.1a-pan.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-extern.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-variable-exprs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-diags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-add-sub.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-elf-relocs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-simd-misc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-compare-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-2velem.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/tls-relocs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-dup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-nv-cond.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/trace-regs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/mapping-within-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/error-location.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/jump-table.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-mla-mls-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-halving-add-sub.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-simd-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-abs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.2a-statistical-profiling.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.1a-atomic.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-branch-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/dot-req.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-saturating-rounding-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-leaf-compact-unwind.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-logical-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-compare.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-simd-post-ldst-multi-elem.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/alias-addsubimm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-saturating-add-sub.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-shift-left-long.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/ldr-pseudo-obj-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.2a-at.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-simd-copy.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/trace-regs-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-max-min.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-verbose-vector-case.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-add-pairwise.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-condbr-without-dots.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-crypto.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/gicv3-regs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-mul-div-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-reloc-pcreladdressing.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.2a-mmfr2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-fp-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-be-datalayout.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-vector-lists.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-simd-ldst.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-separator.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.1a-lor.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-saturating-add-sub.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-rounding-halving-add.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-reloc-movw.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-rounding-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/noneon-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-basic-a64-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/alias-logicalimm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-simd-ldst-multi-elem.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-fp-encoding-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/error-location-ldr-pseudo.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.1a-vhe.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-tls-relocs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-3vdiff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-by-elem-saturating-mla.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-small-data-fixups.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-facge-facgt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-max-min-pairwise.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-mapping-across-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/case-insen-reg-names.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-aba-abd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-reloc-ldstunsimm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/basic-a64-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/inst-directive-diagnostic.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-frsqrt-frecp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.1a-rdma.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-add-sub-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-globaladdress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-extract-narrow.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/adrp-relocation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-diagno-predicate.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-across.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-mul.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-mov.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-system-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf_osabi_flags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-reloc-ldrlit.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/cyclone-crc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-objdump.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-by-elem-saturating-mul.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-large-relocs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-directive_loh.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-aliases.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-reloc-addsubimm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-tbl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/ldr-pseudo.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-saturating-rounding-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/armv8.2a-uao.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/dot-req-case-insensitive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/elf-reloc-tstb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-sxtl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-reduce-pairwise.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/single-slash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-shift-imm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-bitfield-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/arm64-optional-hash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-perm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AArch64/neon-scalar-by-elem-mla.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/duplex-registers.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/out_of_range.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/capitalizedEndloop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_cmp_gt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/jumpdoublepound.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/v60-vmem.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/fixups.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/v60-vcmp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/test.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_cmp_lt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_sxtb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/v60-vmpy1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/v60-vmpy-acc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_sxth.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_zxtb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_aslh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/got.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/v60-permute.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/v60-alu.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_or64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/empty_asm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/iconst.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_asrh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_zxth.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_cmp_ugt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/dcfetch.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/labels.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_add64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_cmp_ult.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/v60lookup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_cmp_eq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_cmp_ugti.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/asmMap.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_and64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/new-value-check.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_cmp_eqi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_cmp_gti.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_xor64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/v60-shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/two_ext.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/relaxed_newvalue.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/tprel_noextend.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/endloop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/st.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/alu32_alu.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/j.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/nv_st.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/xtype_perm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/nv_j.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/xtype_fp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/xtype_mpy.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/ld.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/xtype_complex.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/alu32_pred.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/cr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/xtype_shift.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/xtype_bit.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/alu32_perm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/xtype_alu.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/jr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/memop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/system_user.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/instructions/xtype_pred.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/inst_sub64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Hexagon/pcrel.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/section_names.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_file-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-irp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-args.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/variables-invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_elf_size.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/align_invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/if-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_thread_init_func.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive-err.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_lcomm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_darwin_section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macros-darwin.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/rename.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/variables.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/at-pseudo-variable-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macros-argument-parsing-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_loc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/ifeqs-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_seh.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/ifdef.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-rept-err1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive-warning.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_include.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_lsym.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_fill.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_zerofill.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macros-parsing.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/exprs-invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macros-darwin-vararg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/dot-symbol.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_space.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_set.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/equ.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/comments-x86-darwin.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/ifndef.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/dot-symbol-non-absolute.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/ifb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/exprs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/hello.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/expr_symbol_modifiers.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_subsections_via_symbols.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_rept.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/expr-shr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive-err-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/incbin_abcd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_desc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-qualifier.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/floating-literals.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/defsym_error1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/at-pseudo-variable.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_org.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/pr11865.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_ascii.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/invalid-input-assertion.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_tdata.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macros-gas.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/undefined-local-symbol.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/dot-symbol-assignment.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_incbin.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/cfi-window-save.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/conditional_asm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_tlv.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_abort.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-rept.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_tbss.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/uppercase-hex.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_file.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_rept-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/vararg-default-value.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_symbol_attrs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-rept-err2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/cfi-unfinished-frame.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/line_with_hash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_line.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-exitm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-qualifier-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/defsym.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_align.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_comm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-irpc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_values.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/dot-symbol-assignment-backwards.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/purgem.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/ifc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/labels.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_end-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/ifnes.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/directive_end.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/extern.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macros-argument-parsing.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/ifeqs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/dollars-in-identifiers.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/assignment.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-err1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/dash-n.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/reassign.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/secure_log_unique.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/defsym_error2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/vararg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/macro-def-in-instantiation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AsmParser/bad-macro.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Markup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Markup/basic-markup.mc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Markup/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bss.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/dot-symbol-assignment.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/elf_directive_previous.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relax-arith3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/rename.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/lcomm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-def-cfa-offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bracket-exprs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/comp-dir.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/common-redeclare.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-unique-err1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/pr19430.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/global-offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/subtraction-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/sleb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/weakref-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-quoting.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/local-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/compression.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/strtab-suffix-opt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/common-error3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/abs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/align-nops.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/empty-dwarf-lines.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/invalid-symver.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/align-text.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/call-abs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/zero.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/type.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/weakref.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/symver.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/org.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-rel-offset2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/tls-i386.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-sym2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-remember.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/leb128.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/empty.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/merge.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-undefined.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relax-arith4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/symbol-names.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/size.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-reg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/subsection.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/align-bss.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-unique-err2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/pic-diff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/version.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/uleb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/alias.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/got.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/align.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/weak-diff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/debug-line2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/nocompression.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/undef.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bad-expr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/undef-temp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/ifunc-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/pr9292.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/align-zero.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/ARM/gnu-type-hash-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/ARM/directive-type-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/ARM/bss-non-zero-value.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/ARM/gnu-type-hash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/no-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/noexec.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/popsection.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/weak-relocation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-def-cfa.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-sym-redefine.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/symver-msvc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/norelocation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-escape.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/alias-to-local.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-window-save.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/tls.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/align-size.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/ident.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-rel-offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/no-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-def-cfa-register.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/comdat.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/div-by-zero.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/x86_64-reloc-sizetest.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/diff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relax.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bracket.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/basic-elf-64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-zero-addr-delta.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/entsize.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-unique-err3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-restore.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bss-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/many-sections-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/diff2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/set.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-advance-loc2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/common-error1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/type-propagate.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/debug-loc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-signal-frame.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-adjust-cfa-offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/reloc-same-name-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-unique.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/gnu-type.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/comdat-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relax-arith.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bad-relocation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bad-expr2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/entsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/plt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relax-arith2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/n_bytes.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/comdat-dup-group-name.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relax-crash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/gen-dwarf.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/empty-twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/gnu-type-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relocation-386.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/file.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/weakref-plt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-unique-err4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-register.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/weak.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/file-double.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-large-model.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/elf_directive_section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/common.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/many-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-version.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/many-sections-3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/fde.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/cfi-same-value.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relocation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relocation-pc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/common-error2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/symver-pr23914.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/discriminator.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/basic-elf-32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/section-sym.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/common2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/debug-line.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bad-expr3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/bad-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/relax-all-flag.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/pr19582.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ELF/alias-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/nooddspreg-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags_nan2008.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-mips0-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-cop0-reginfo.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cfi.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-fpu-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-oddspreg-nooddspreg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64eb-fixups.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64-register-names-o32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-divu.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-trap-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_2r_msa64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_cbranch.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_elm_insert.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_mi10.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/set-msa-directive-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_elm_insert_msa64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_vec.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_i5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_elm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/invalid-64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_bit.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_lsa.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_i8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_elm_insve.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_dlsa.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_2r.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_3r.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_ctrlregs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/set-msa-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_elm_msa64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_2rf.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_i10.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/msa/test_3rf.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-dla-32bit.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/instalias-imm-expanding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-pdr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-register-names-o32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-label-test.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/branch-pseudos-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/target-soft-float.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cpload.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-push-pop-directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64-expansions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-reginfo-fp32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags_nanlegacy.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-ddiv-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/rotations32-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_st_other.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-data-directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags_abicalls.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-alu-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/module-softfloat.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/llvm-mc-fixup-endianness.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r2/abi-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r2/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r2/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r2/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r2/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r3/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r3/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r3/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r3/abi-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r3/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5/invalid-mips64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5/invalid-mips64r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5/invalid-mips64r3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5/abi-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r5/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips_abi_flags_xx_set.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips1-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips3-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips4-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips32-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips5-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64r6/invalid-mips1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-expansions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-dla.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/user-macro-argument-separation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/update-module-level-options.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cprestore-noreorder.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/hex-immediates.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-at-noat-bad-syntax.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-dli.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-pc16-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-bad-branches.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/reloc-directive-negative.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/xgot.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64/invalid-mips64r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64/invalid-mips64r2-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-label-test-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-control-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-jump26.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips64r6/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips64r6/invalid-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips64r6/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/sym-expr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/eh-frame.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-mips-directives-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf-gprel-32-64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-hwr-register-names.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-alu-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-dspr2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-dspr2/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-dspr2/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-bcc-imm-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-la.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/r-mips-got-disp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/relocation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-el-fixup-data.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-loadstore-unaligned.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-li.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/do_switch1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags_pic2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-arch.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf-tls.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/nacl-mask.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/nabi-regs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cprestore-warning-unused.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/eva
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/eva/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/eva/valid_R6.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/eva/invalid-noeva.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/eva/invalid-noeva-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/eva/invalid_R6.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/eva/valid_preR6.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64-register-names-n32-n64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-pdr-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-bad-branches.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-div.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/asciiz-directive-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-dsp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-dsp/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-dsp/invalid-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-dsp/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags_mips16.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-push-pop-directives-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-control-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf-bigendian.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-at-directive-explicit-at.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/rotations64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips_directives_bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-branch-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-mips-directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/reloc-directive-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-abs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/sext_64_32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-bcc-imm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/oddspreg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-noat.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-at-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/sort-relocation-table.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cfi-advance-loc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-diagnostic-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/multi-64bit-func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-shift-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2/invalid-dspr2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2/invalid-msa.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2/invalid-dsp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r2/invalid-mips64r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-multiply-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-expansions-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r3/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r3/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r3/invalid-mips64r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r3/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r3/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cpsetup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5/invalid-mips64r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5/invalid-mips32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5/invalid-mips32r3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r5/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips32-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips5-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips1-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips2-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips4-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32r6/invalid-mips5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-nomacro-micromips.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-expansions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/module-hardfloat.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips2-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips3-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips4-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips1/invalid-mips5-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cnmips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cnmips/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-alias.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips3-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips4-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips5-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips2/invalid-mips32r2-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips3/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips3/invalid-mips4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips3/invalid-mips32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips3/invalid-mips4-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips3/invalid-mips5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips3/invalid-mips5-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips3/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cprestore-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/invalid-mips64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/invalid-mips64r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/invalid-mips64r2-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/invalid-mips32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/invalid-mips5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips4/invalid-mips5-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips5/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips5/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips5/invalid-mips32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips5/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips5/invalid-mips64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips5/invalid-mips64r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips5/invalid-mips64r2-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/asciiz-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-pc16-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/nooddspreg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/do_switch2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips32r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips32r6/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips32r6/invalid-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips32r6/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-jump-delay-slots.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-la-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-softfloat-hardfloat-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/reloc-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/higher-highest-addressing.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-memory-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64extins.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-diagnostic-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/insn-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-mips16-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/module-directive-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-branch-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-nomacro.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-li-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/pr11877.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/octeon-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips_directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/dspr2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/dspr2/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/dspr2/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-defined-symbol.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-ddivu-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-loadstore-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/expr1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips/invalid-wrong-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-func-addr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips64-alu-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-div-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cprestore-reorder.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags_noreorder.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_basic.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips_gprel16.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf-N64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-reginfo-fp64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/branch-pseudos.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips_abi_flags_xx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-register-names-invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-jump-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-ddiv.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-abi-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/got-rel-expr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/dsp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/dsp/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/dsp/invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/expansion-jal-sym-pic.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/rotations32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-oddspreg-nooddspreg-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-divu-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-fpu-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-softfloat-hardfloat.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/nooddspreg-cmdarg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/sym-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/directive-ent.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags_pic0.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-16-bit-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/do_switch3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-movcond-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cpsetup-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_eflags_micromips.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/macro-ddivu.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-tailr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32/abiflags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32/valid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32/valid-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32/invalid-mips32r2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32/invalid-mips32r2-xfail.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips32/invalid-mips64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/set-nodsp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/hilo-addressing.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/micromips-jump-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/mips-coprocessor-encodings.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf-relsym.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/elf_reginfo.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/instr-analysis.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/unaligned-nops.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Mips/cpload-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-v9-traps.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-coproc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-special-registers.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-traps.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-little-endian.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-asm-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc64-alu-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparcv9-atomic-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-directives.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-vis.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-nop-data.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-ctrl-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-fp-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-pic.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-synthetic-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-assembly-exprs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-atomic-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-directive-xword.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc64-ctrl-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-mem-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparcv8-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparcv9-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Sparc/sparc-alu-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vopc-errs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/sopp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/sop1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/sop2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vop1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vop2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/flat.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vop3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/mimg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/buffer_wbinv1l_vol_vi.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/smrd-err.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/ds-err.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vop3-vop1-nosrc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/hsa-text.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/hsa_code_object_isa_noargs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vop3-errs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/smem.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/sopc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/smrd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/ds.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vop_dpp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vopc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/out-of-range-registers.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/sop1-err.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/flat-scratch.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/hsa.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/vop2-err.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/sopk.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/AMDGPU/mubuf.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/section-comdat-conflict2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/comm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/basic-coff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/symbol-alias.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/directive-section-characteristics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/cv-def-range.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/const-gv-with-rel-init.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/bad-expr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/temporary-alias.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/relocation-imgrel.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/safeseh.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/secidx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/bss_section.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/stdin.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/cv-inline-linetable.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/linker-options.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/switch-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/lset0.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/seh-align2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/global_ctors_dtors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/comm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/cross-section-relative.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/invalid-scl.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/invalid-endef.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/section-name-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/diff.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/section-comdat-conflict.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/bigobj.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/section-invalid-flags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/cv-loc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/basic-coff-64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/eh-frame.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/cv-inline-linetable-infloop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/cv-inline-linetable-unreachable.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/alias.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/invalid-scl-range.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/rdata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/secidx-diagnostic.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/cv-empty-linetable.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/timestamp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/symbol-mangling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/invalid-type.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/align-nops.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/module-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/initialised-data.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/tricky-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/ir-to-imgrel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/pr23025.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/symbol-fragment-offset-64.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/invalid-def.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/linkonce-invalid.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/seh-align1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/symbol-fragment-offset.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/seh-align3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/invalid-type-range.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/linkonce.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/section-passthru-flags.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/simple-fixups.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/early-dce.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/section-comdat.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/cross-section-relative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/seh-stackalloc-zero.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/label-undefined.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/feat00.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/secrel-variant.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/seh-linkonce.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/file.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/seh.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/seh-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/secrel32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/comm-align.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/weak.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/COFF/bss.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.1a-vhe.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-advsimd.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-canonical-form.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.2a-uao.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/a64-ignored-fields.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-invalid-logical.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-non-apple-fmov.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-basic-a64-undefined.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-memory.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.2a-at.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/neon-instructions.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-logical.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-crc32.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/fullfp16-neon-neg.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/fullfp16-neg.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-crypto.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/basic-a64-undefined.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/gicv3-regs.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.1a-pan.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-bitfield.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/ldp-preind.predictable.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.1a-rdma.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/ldp-offset-predictable.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.2a-mmfr2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-arithmetic.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-branch.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.1a-lor.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/basic-a64-unpredictable.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/trace-regs.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-scalar-fp.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.2a-persistent-memory.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.2a-statistical-profiling.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/armv8.1a-atomic.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/ldp-postind.predictable.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AArch64/arm64-system.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/eva
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/eva/valid_R6-eva.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/eva/valid_preR6-eva.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips32r3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips32r3/valid-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips32r3/valid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips32r3/invalid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32/valid-mips32-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32/valid-mips32.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32/valid-xfail-mips32.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips32r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips32r6/valid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_elm_insert_msa64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_vec.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_elm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_i5.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_bit.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_lsa.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_i8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_elm_insve.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_2r.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_dlsa.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_3r.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_ctrlregs.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_elm_msa64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_2rf.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_i10.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_3rf.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_2r_msa64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_elm_insert.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/msa/test_mi10.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r2/valid-xfail-mips32r2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r2/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r2/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r3/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r3/valid-mips32r3-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r3/valid-mips32r3.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r3/valid-xfail-mips32r3.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r3/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64/valid-mips64-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64/valid-mips64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64/valid-mips64-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips64r6/valid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r5/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r5/valid-mips32r5-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r5/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r5/valid-mips32r5.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r5/valid-xfail-mips32r5.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips32r6/valid-xfail-mips32r6.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r2/valid-xfail-mips64r2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r2/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r2/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/dsp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/dsp/valid-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/dsp/valid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips-dsp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips-dsp/valid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r3/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r3/valid-xfail-mips64r3.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r3/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r5/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r5/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r5/valid-xfail-mips64r5.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips1/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips1/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips1/valid-mips1-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips1/invalid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips1/valid-mips1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/dspr2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/dspr2/valid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips-dspr2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/micromips-dspr2/valid.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips2/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips2/valid-mips2-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips2/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips2/valid-mips2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips3/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips3/valid-mips3-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips3/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips3/valid-mips3.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips4/valid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips4/invalid-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips4/valid-mips4-el.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips4/valid-mips4.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Mips/mips4/valid-xfail-mips4.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Sparc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Sparc/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Sparc/sparc-mem.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Sparc/sparc-v9.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Sparc/sparc.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Sparc/sparc-fp.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Sparc/sparc-special-registers.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/nv_j.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/xtype_perm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/xtype_fp.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/xtype_mpy.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/ld.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/alu32_pred.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/xtype_complex.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/cr.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/xtype_shift.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/xtype_bit.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/alu32_perm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/too_many_instructions.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/xtype_alu.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/jr.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/invalid_packet.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/memop.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/unextendable.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/system_user.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/xtype_pred.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/st.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/alu32_alu.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/too_many_loop_ends.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/j.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Hexagon/nv_st.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/vopc_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/sopk_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/mubuf_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/sopp_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/sop1_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/sop2_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/vop1_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/flat_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/vop2_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/vop3_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/vop1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/nop.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/smem_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/mov.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/sopc_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/smrd_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/AMDGPU/ds_vi.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/invalid-regs.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/insns-z13.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/insns-z13-bad.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/trunc-01.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/unmapped.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/insns.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/trunc-02.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/trunc-03.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/insns-pcrel.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/SystemZ/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/memory-arm-instructions.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/crc32-thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fp-encoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb2-v8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/neon-tests.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/virtexts-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/virtexts-thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/neont2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-AExtI-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fullfp16-neon-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fullfp16-neon-thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb-fp-armv8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/arm-tests.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb-tests.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-UQADD8-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fullfp16-arm-neg.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-because-armv7.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-SHADD16-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb-neon-crypto.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/neon.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/basic-arm-instructions.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fp-armv8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/move-banked-regs-thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/move-banked-regs-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-SSAT-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb-neon-v8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/arm-thumb-trustzone.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/load-store-acquire-release-v8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb2-v8m.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/arm-LDREXD-reencoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/crc32.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/ldrd-armv4.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fullfp16-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-SEL-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-BFI.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/neont-VLD-reencoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictables-thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-thumb-MSR-MClass.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-RSC-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/load-store-acquire-release-v8-thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-MUL-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/basic-arm-instructions-v8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb-MSR-MClass.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/arm-STREXD-reencoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-FSTMX-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-AI1cmp-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/neont-VST-reencoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-LSL-regform.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb-v8.1a.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/addrmode2-reencoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/neon-crypto.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-LDR-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/vfp4.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-thumbv7.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-armv7.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-LDRD-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-thumbv8.1a.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-thumbv8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-armv8.1a.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-armv8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-thumbv7-xfail.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fullfp16-thumb-neg.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-IT-CC15.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/d16.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/neon-v8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/arm-trustzone.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/invalid-virtexts.arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-MRS-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/armv8.1a.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/marked-up-thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/hex-immediates.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-swp-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb2-preloads.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb-v8.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-ADDREXT3-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-STRBrs-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fullfp16-thumb.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/thumb-printf.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fullfp16-neon-thumb-neg.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/fullfp16-neon-arm-neg.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-MRRC2-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/ARM/unpredictable-ADC-arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-operands.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/qpx.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/dcbt.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ext.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/vsx.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-fp.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-e500.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-p8vector.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-vmx.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-bookII.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-4xx.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-6xx.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-bookIII.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/XCore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/XCore/xcore.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/XCore/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Lanai
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Lanai/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/Lanai/v11.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/intel-syntax-32.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/missing-sib.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/marked-up.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/prefixes.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/truncated-input.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/simple-tests.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/invalid-VEX-vvvv.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/intel-syntax.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/avx-512.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/hex-immediates.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/x86-32.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/fp-stack.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/x86-16.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/moffs.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/x86-64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Disassembler/X86/padlock.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/insn-bad-z13.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/regs-good.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/insn-good-z13.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/insn-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/insn-bad-zEC12.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/insn-good.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/fixups.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/insn-good-zEC12.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/insn-bad-z196.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/tokens.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/insn-good-z196.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/SystemZ/regs-bad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/unwind-stack-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-shiftaccum-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-minmax-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-elf-relocation-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-arithmetic-aliases.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/load-store-acquire-release-v8-thumb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-word-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-bitwise-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/error-location.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb_set-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldr-pseudo-darwin.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-thumb_func.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldrd-strd-gnu-sp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-satshift-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/pool.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb1-relax.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-sub-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb1-relax-adr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-mul-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/invalid-neon-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-section-comdat.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2be-b.w-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-mclass.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldrd-strd-gnu-thumb-bad-regs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/coproc-diag.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-bitwise-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ltorg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-exception-return-mclass.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/gas-compl-copr-reg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldr-pseudo-obj-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/macho-movwt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/invalid-hint-arm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/virtexts-arm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-vld-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/fullfp16-neg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-cmp-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/2013-03-18-Br-to-label-named-like-reg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/single-precision-fp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-personality.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-thumbfunc-reloc2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/AlignedBundling
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/AlignedBundling/pad-align-to-bundle-end.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/AlignedBundling/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/AlignedBundling/group-bundle-arm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/udf-thumb-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/relocated-mapping.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/cmp-immediate-fixup-error.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv3m.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-section-multiple-func.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/fullfp16-neon.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-shift-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-fpu-multiple.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/dwarf-asm-multiple-sections-dwarf-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldrd-strd-gnu-thumb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-cpu.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-thumb-cpus.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/align_arm_2_thumb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/align_thumb_2_arm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/error-location-ldr-pseudo.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/invalid-idiv.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/vfp-aliases-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-vld-vst-align.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/not-armv4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/pr11877.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-crc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-trustzone.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/idiv.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/deprecated-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/bracket-darwin.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-aliases.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-invalid-crypto.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/hilo-16bit-relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb1-relax-bcc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb_rewrites.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv4t.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/virtexts-thumb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/target-expressions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ltorg-darwin.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-movsp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-iwmmxt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-shift-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/inst-overflow.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-absdiff-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-thumb-cpus-default.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-reloc-01.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-ldrexd-strexd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/coff-file.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-abs-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-eabi_attribute.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv7-a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-hints.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-branches.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-eflags-eabi.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldrd-strd-gnu-arm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/dwarf-asm-no-code.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-reciprocal-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-unsupported.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-pairwise-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldrd-strd-gnu-arm-bad-imm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-bitcount-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-object_arch.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-absdiff-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/dot-req-case-insensitive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-reloc-condcall.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/v8_IT_manual.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/coff-debugging-secrel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-fp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/d16.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/inst-thumb-overflow.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/coff-relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-vsave-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/diagnostics-noneon.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/comment.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-shift-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/symbol-variants-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-align.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-elf-symver.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-reciprocal-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-satshift-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv6z.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/crc32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/cmp-immediate-fixup-error2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-pad-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-simd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/mode-switch.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv7a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-ldrd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/cmp-immediate-fixup2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-tlsdescseq.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-setfp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-reloc-02.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/inst-directive.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-neg-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-vst-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/basic-arm-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv5t.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-pldw.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-cbn-to-next-inst.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-table-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-integrated-test.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/variant-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-mul-accum-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-minmax-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/vorr-vbic-illegal-cases.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/basic-thumb2-instructions-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-crypto.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-object_arch-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm11-hint-instr.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv2a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-add-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/simple-fp-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv5.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv7-r.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-mov-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-shuffle-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-personality-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/vpush-vpop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-memory-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb_set.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv6k.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-thumbfunc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-reverse-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv8.2-a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-qualifier-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-toggle.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/dwarf-cfi-initial-state.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-personalityindex.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-neon-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-dup-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-fpu-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-load-store-multiple-deprecated.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-bxj-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-shuffle-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-fp-armv8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-idiv.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-jump24-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-sub-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-b.w-encodingT4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-types.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-eabi_attribute-overwrite.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-mul-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/invalid-fp-armv8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/big-endian-thumb2-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-reloc-03.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv6t2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/Windows
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/Windows/text-attributes.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/Windows/multiple-text-sections.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/Windows/invalid-relocation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/Windows/mov32t-range.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/udf-thumb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/invalid-vector-index.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-fpu-softvfp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-reverse-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/mapping-within-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-iwmmxt2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/fullfp16.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/fp-armv8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-thumbfunc-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv8-a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/macho-relocs-with-addend.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/cpu-test.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv7r.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-multiple-offsets.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/bracket-exprs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/dot-req.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv6-m.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-vld-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-narrow-dp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-object_arch-3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv6.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/inst-thumb-suffixes.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv8a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/cxx-global-constructor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/basic-arm-instructions-v8.1a.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-movwt-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/v7k-dsp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-literals.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-vswp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/dwarf-asm-nonstandard-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-far-jump.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/invalid-crc32.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/dwarf-asm-single-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/big-endian-thumb-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/cmp-immediate-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-eabi_attribute-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-st_other.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-fnend-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-ldrb-ldrh.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-even.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumbv7m.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-pairwise-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/vfp-aliases.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-strd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-table-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-bitcount-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-compact-pr0.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/vmov-vmvn-byte-replicate.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-unwind_raw.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/mul-v4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-object_arch-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-fpu-instrs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/udf-arm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-text-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/fconst.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-mp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-cmp-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/basic-thumb-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-semantic-action.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/obsolete-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb1-relax-br.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumbv7em.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-text-section-multiple-func.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-load-store-multiple.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/complex-operands.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-cantunwind.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-it-block.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/basic-thumb2-instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv7.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-link.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/symbol-variants.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-setfp-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/udf-thumb-2-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb1-relax-ldrlit.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-elf-relocations.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-mul-accum-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/load-store-acquire-release-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv5te.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-handlerdata.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/coff-function-type-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/vfp4.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-compact-pr1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-bxj.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-only-conditionals.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-cantunwind-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/cps.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/pr22395-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/pr22395.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/crc32-thumb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-vsave.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/full_line_comment.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/basic-arm-instructions-v8.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-sec.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm_instructions.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-save.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-pad.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumbv8m.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-personalityindex-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv7-m.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldr-pseudo.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-movsp-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2be-movt-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/inst-arm-suffixes.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-abs-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-neon-crypto.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm_addrmode2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/bkpt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/udf-thumb-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-neg-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-type-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/big-endian-arm-fixup.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-vst-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/fp-const-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-crypto.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-thumb-trustzone.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-save-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-section.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb1-relax-8m-baseline.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm_fixups.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-shift-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/inst-constant-required.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2be-movw-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-branches.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/move-banked-regs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2-dsp-diag.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-mov-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-vcvt-fp16.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/data-in-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/ldr-pseudo-parse-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch-armv7m.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/fixup-cpu-mode.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm-ldrd.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-fpu.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb2be-beq.w-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/2010-11-30-reloc-movt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-convert-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-shiftaccum-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/invalid-barrier.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/vmov-vmvn-illegal-cases.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neont2-dup-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/multi-section-mapping.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/inst-directive-emit.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-mov-vfp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-unwind_raw-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/elf-movt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/inst-thumb-overflow-2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-tlsdescseq-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/eh-directive-fnstart-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/thumb-not-mclass.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/udf-arm-diagnostics.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-convert-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/arm_addrmode3.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/fullfp16-neon-neg.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/invalid-hint-thumb.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/directive-arch_extension-mode-switch.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/ARM/neon-add-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc-machine.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-vmx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-p8vector.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/htm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-regs.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-bookII.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-abiversion.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-tls-relocs-01.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/tls-gd-obj.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/st-other-crash.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-fixup-explicit.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/tls-ie-obj.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-spe.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-localentry.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/lcomm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-fixups.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-fixup-apply.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/qpx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/dcbt.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-localentry-error1.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-ext.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-localentry-error2.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-fp.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/deprecated-p7.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-e500.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/pr24686.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc-llong.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc-word.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-relocs-01.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-4xx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-6xx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding-bookIII.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-operands.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-errors.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc32-ba.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/tls-ld-obj.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-initial-cfa.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc-nop.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/ppc64-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/PowerPC/vsx.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Lanai
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Lanai/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/MC/Lanai/v11.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/instrument-no-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/do-not-touch-threadlocal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/global_metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/asan-vs-gvn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/do-not-touch-odr-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/debug_info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/instrument_load_then_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/stack_layout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/instrument-dynamic-allocas.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/keep_going.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/ubsan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-darwin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/instrumentation-with-call-threshold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/experiment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/do-not-touch-comdat-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/lifetime-uar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-globals-linux.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/stack_dynamic_alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/adaptive_global_redzones.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/instrument_global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-internal-globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/local_alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/global_metadata_darwin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/stack-poisoning.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/freebsd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/instrument_initializer_metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/localescape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/instrument-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_swap_intel.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_cfi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_mov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_more_registers_than_available.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_cpuid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_rep_movs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_mov_no_instrumentation.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_rsp_mem_op.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_cfi.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/asm_mov.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/X86/bug_11395.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/do-not-instrument-promotable-allocas.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/debug_info_noninstrumented_alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/test64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/AddressSanitizer/experiment-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/no_sanitize_thread.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/do-not-instrument-memory-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/vptr_update.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/read_from_global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/capture.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/tsan-vs-gvn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/tsan_basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/unaligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/vptr_read.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/ThreadSanitizer/read_before_write.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/X86/vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/instrumentation-with-call-threshold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/missing_origin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/global_ctors_2to3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/store-origin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/AArch64/vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/check-constant-shadow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/byval-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/vector_arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/vector_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/msan_basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/vector_pack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/mul_by_constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/array_types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/check_access_address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/origin-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/origin-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/return_from_main.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/vector_cvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/MemorySanitizer/store-long-origin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/SanitizerCoverage
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/SanitizerCoverage/coverage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/SanitizerCoverage/seh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/SanitizerCoverage/cmp-tracing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/SanitizerCoverage/coverage-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/SanitizerCoverage/switch-tracing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/SanitizerCoverage/coverage2-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/SanitizerCoverage/tracing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/BoundsChecking
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/BoundsChecking/phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/BoundsChecking/many-trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/BoundsChecking/simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/BoundsChecking/simple-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/profiling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/PR23499.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/no-counters.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/X86/alloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/noruntime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/InstrProfiling/platform.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/union.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/Inputs/abilist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/Inputs/debuglist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/debug-nonzero-labels.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/union-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/prefix-rename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/abilist.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Instrumentation/DataFlowSanitizer/arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-no-demotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-cloning.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-intrinsics-invalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-noret-cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-demotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-statenumbering-cleanups.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-setjmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-nested-unwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WinEH/wineh-statenumbering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-05-30-BadFoldGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/fwdtwice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/exception-handling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2005-12-01-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-06-12-LowerSwitchCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/add-with-overflow-24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/addr-label.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/donothing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-05-15-InfiniteRecursion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2008-08-07-PtrToInt-SmallerInt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2005-01-18-SetUO-InfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/APIntParam.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2008-02-04-ExtractSubvector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/ForceStackAlign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/APIntSextParam.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/pr2625.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/inline-asm-special-strings.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-03-01-dagcombineinfloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/overloaded-intrinsic-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2009-03-17-LSR-APInt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/call-ret42.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-04-13-SwitchLowerBadPhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/call-void.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-08-30-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2014-02-05-OpaqueConstants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2011-01-06-BigNumberCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2008-02-20-MatchingMem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/shift-int64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-10-27-CondFolding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/switch-lower-feature.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/bool-to-double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-02-25-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/constindices.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2012-06-08-APIntCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/switch-lower.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2002-04-14-UnexpectedUnsignedType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2010-ZeroSizedArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/i128-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/v-split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-05-27-useboolinotherbb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-07-29-BadConstSbyte.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/select-cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/asm-large-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-arith-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/zero-sized-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/global-ret0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-04-28-Sign-extend-bool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2009-04-10-SinkCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/empty-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2010-11-04-BigByval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/undef-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/i128-addsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/edge-bundles-blockIDs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/fastcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-04-17-lsr-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/cast-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2009-04-28-i128-cmp-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/icmp-illegal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2002-04-16-StackFrameSizeAlignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-machineinstrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2009-11-16-BadKillsCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2010-07-27-DAGCombineCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/dag-combine-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/call2-ret0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/MachineBranchProb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/empty-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/add-with-overflow-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/ptr-annotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/vector-casts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-04-27-InlineAsm-X-Dest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/inline-asm-mem-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2009-03-29-SoftFloatVectorExtract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2005-10-18-ZeroSizeStackObject.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/isunord.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-05-27-phifcmpd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/stop-after.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-after.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-10-29-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2005-12-12-ExpandSextInreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/builtin-expect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/empty-insertvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/assume.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-05-06-GEP-Cast-Sink-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2008-02-25-NegateZero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/no-target.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/PBQP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/hello.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2008-02-04-Ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/stacksave-restore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/badCallArgLRLLVM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/pr3288.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/run-pass.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/annotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-05-28-ManyArgs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-04-26-SetCCAnd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/pr12507.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-mul-exp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/vector-identity-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/BasicInstrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2008-01-30-LoadCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/multiple-return-values-cross-block-with-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/badFoldGEP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/vector-redux.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/APIntLoadStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-07-03-schedulers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-07-06-BadIntCmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-12-31-UnusedSelector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-11-20-DAGCombineCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/nested-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/ConstantExprLowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-05-03-EHTypeInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-09-06-SwitchLowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-05-27-usefsubasbool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/badarg6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/ret0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/storetrunc-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-04-27-LargeMemObject.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/call-ret0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/externally_available.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-12-17-InvokeAsm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/print-arith-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/negintconst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2008-02-26-NegatableCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/fp-to-int-invalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/add-with-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/APIntZextParam.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/fpowi-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-01-18-InvalidBranchOpcodeAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-02-12-InsertLibcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2005-10-21-longlonggtu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-05-30-BadPreselectPhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2005-04-09-GlobalInPHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2004-05-09-LiveVarPartialRegister.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-01-15-LoadSelectCycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2008-01-25-dag-combine-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-01-12-BadSetCCFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/llvm-ct-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-07-07-BadLongConst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2007-04-30-LandingPadBranchFolding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2003-07-08-BadCastToBool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/invalid-memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/fp_to_int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/div-neg-power-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/vector-constantexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/fneg-fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/dbg_value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2013-03-20-APFloatCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-06-13-ComputeMaskedBitsCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/ret42.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Generic/trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/rcp-pattern.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/shift-i64-opts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fp_to_sint.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/invariant-load-no-alias-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cf-stack-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/min3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/commute-shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/max3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fsub64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/reorder-stores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fceil.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/combine_vloads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-fs-loop-nested-if.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/zero_extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/swizzle-export.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-scheduler.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.bfe.u32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fetch-limits.r700+.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/read-register-invalid-type-i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cvt_rpi_i32_f32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fract.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/jump-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/image-resource-id.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lshl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.cvt_f32_ubyte.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/rsq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmaxnum.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/private-memory-atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-annotate-cf-assertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/rotl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.gather4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.clamp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sampler-resource-id.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/texture-input-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/dot4-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/elf.r600.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/local-memory-two-objects.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sint_to_fp.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/uint_to_fp.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/elf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/shl_add_constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.sleep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/global-extload-i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fneg.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.pow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-fs-loop-nested.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-vs-if-nested-loop-failure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.round.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.rsq.clamped.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/local-atomics64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.interp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/dagcombine-reassociate-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/captured-frame-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dispatch.ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/icmp-select-sete-reverse-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ds_write2st64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fpext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/select64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/move-addr64-rsrc-dead-subreg-writes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/legalizedag-bug-expand-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/store-v3i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fp32_to_fp16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmin_legacy.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/infinite-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/use-sgpr-multiple-times.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.bfe.i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/atomic_cmp_swap_local.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vselect64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/shared-op-cycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/local-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-flat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.permute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.store.format.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/register-count-comments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/load-input-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.round.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/local-memory.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ftrunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/wait.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fadd64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/umed3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sdivrem64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/atomic_load_add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/v_mac.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-vector-hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/local-atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/load64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.workitem.id.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fcmp64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ds_read2_superreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/copy-illegal-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/indirect-private-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fma.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/disconnected-predset-break-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/wqm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/bitreverse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/concat_vectors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/add-debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/basic-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/drop-mem-operand-move-smrd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.flbit.i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/trunc-bitcast-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-if-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/subreg-eliminate-dead.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ci-use-flat-for-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/move-to-valu-atomicrmw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/loop-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ftrunc.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/pv-packing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ctpop64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/parallelorifcollapse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/missing-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.class.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fconst64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-spill-sgpr-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cube.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/commute-compares.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.rint.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ds_read2_offset_order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/selectcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/flat-scratch-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vector-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/usubo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/gv-const-addrspace-fail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lds-initializer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/anyext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/unroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mad-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmul64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.dbg.value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/i1-copy-implicit-def.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fcopysign.f32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/kcache-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cgp-bitfield-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.vol.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/urem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fabs.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgpu.dp4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mad_int24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-literal-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/insert_vector_elt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/hsa-default-device.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.workgroup.id.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/tex-clause-antidep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/split-smrd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/global-zero-initializer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/trunc-cmp-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sext-in-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.cube.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vtx-fetch-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mbcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot-compute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vtx-schedule.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.log.clamp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cf_end.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/trunc-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/shl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/gep-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.sendmsg-m0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/input-mods.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/call_fs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vselect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/copy-to-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lower-range-metadata-intrinsic-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/no-hsa-graphics-shaders.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/bswap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.log2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.r600.read.local.size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/array-ptr-calc-i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lds-oqap-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fcmp-cnde-int-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/promote-alloca-unhandled-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ds-sub-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/udivrem24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ffloor.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.trig.preop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cayman-loop-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/m0-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/flat-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/promote-alloca-stored-pointer-value.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/v_cndmask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/uint_to_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-fs-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/half.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/uniform-cfg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/trunc-vector-store-assertion-failure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/global_atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/parallelandifcollapse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.frexp.mant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/structurize1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/selectcc-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.image.sample-masked.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.bpermute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/setuo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/spill-alloc-sgpr-init-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/global-extload-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mubuf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgpu.kilp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ctpop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/complex-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/basic-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sext-eliminate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/madmk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/global-extload-i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/i8-to-double-to-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/uaddo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/large-alloca-compute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/scratch-buffer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/packetizer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.barrier.local.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/udiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/operand-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/inline-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmax3.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/global-directive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fetch-limits.r600.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fp-classify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/rotl.i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/promote-alloca-bitcast-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/frem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-global-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.rsq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/load.vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubeid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/write_register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vop-shrink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.clamp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/large-constant-initializer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ds_read2st64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/private-element-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/promote-alloca-no-opts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/merge-stores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/private-memory-broken.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sgpr-control-flow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/bfm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/no-initializer-constant-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.tbuffer.store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/s_movk_i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/r600-infinite-loop-bug-while-reorganizing-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/inline-constraints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fneg-fabs.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.read.workdim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/extract-vector-elt-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vgpr-spill-emergency-stack-slot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/codegen-prepare-addrmode-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lds-output-queue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/select-vectors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fp16_to_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/hsa-group-segment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sint_to_fp.i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mad_uint24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/uint_to_fp.i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/setcc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/setcc-equivalent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/uniform-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/store.r600.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sra.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fdiv.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ffloor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-if.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/global-extload-i16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/i1-copy-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/work-item-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/store_typed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.tid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fp_to_sint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/bitreverse-inline-immediates.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sign_extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.scale.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/kernel-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/unaligned-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmin_legacy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.packf16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/subreg-coalescer-undef-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.sendmsg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ret_jump.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.exp2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fneg-fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-triv-disjoint-mem-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lds-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/indirect-addressing-si.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/hsa-globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/srl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/read-register-invalid-type-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.memrealtime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lshr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/default-fp-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fminnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/r600-encoding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/floor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.image.sample.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/rotr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/infinite-loop-evergreen.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fceil64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cgp-addressing-modes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.sqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ds-negative-offset-addressing-mode-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sint_to_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/32-bit-local-address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fp_to_uint.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/set-dx10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubesc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/loop-idiom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/insert_subreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sminmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.fixup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/address-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/read_register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/private-memory.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.groupstaticgroup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/max.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/uniform-loop-inside-nonuniform.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/salu-to-valu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/promote-alloca-volatile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.cos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/waitcnt-flat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/setcc-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cttz_zero_undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fminnum.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/promote-alloca-invariant-markers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/extract-vector-elt-i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ldexp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/valu-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/literals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/read-register-invalid-subtarget.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sdivrem24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.load.format.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/smrd-vccz-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.tex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.rint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/select-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/r600-export-fix.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.fs.interp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/reg-coalescer-sched-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubema.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/store-v3i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/udivrem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/simplify-demanded-bits-build-pair.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/min.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sgpr-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ds_write2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/annotate-kernel-features.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/commute_modifiers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmaxnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/smed3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/selectcc-cnde-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/cvt_flr_i32_f32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/load-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/selectcc-cnd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/readcyclecounter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/hsa-fp-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-lod-bias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cubetc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-annotate-cf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/operand-spacing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmin3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmax_legacy.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmax3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/large-alloca-graphics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/reciprocal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/rotr.i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/no-shrink-extloads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mulhu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/bfe_uint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.rsq.clamped.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/trunc-store-f64-to-f16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.memtime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.getlod.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/big_alu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/structurize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-sgpr-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/dagcombiner-bug-illegal-vec4-int-to-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/r600cfg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.div.fmas.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.barrier.global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/opencl-image-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/extract_vector_elt_i16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/store-barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fptrunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-kernel-arg-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-spill-cf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/store-vector-ptrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-annotate-cfg-loop-assert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.r600.read.workdim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/tti-unroll-prefs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/split-vector-memoperand-offsets.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/urecip.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ssubo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/v1i64-kernel-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fsqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/and-gcn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/write-register-vgpr-into-sgpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/unsupported-cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmuladd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mul_int24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/split-scalar-i64-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/predicate-dp4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/extractelt-to-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fcopysign.f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.inv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/schedule-vs-if-nested-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/endcf-loop-header.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/promote-alloca-mem-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.AMDGPU.kill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/predicates.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/pv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/udivrem64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/coalescer_remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/trunc-store-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmed3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/add_i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/bfi_int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fma-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/sgpr-copy-duplicate-operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/si-instr-info-correct-implicit-operands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mov.dpp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/global-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fcmp-cnd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ctlz_zero_undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lds-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.sc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/extload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/addrspacecast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/unhandled-loop-condition-assertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/smrd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.image.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/srem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/madak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.vol.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.load.dword.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/array-ptr-calc-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/subreg-coalescer-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/gv-const-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/selectcc-icmp-select-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fnearbyint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/icmp64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mul_uint24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.sin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fp_to_uint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/wrong-transalu-pos-fix.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/image-attributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/seto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/hsa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/calling-conventions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmax_legacy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.getreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/lds-zero-initializer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/ds_read2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/atomic_load_sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/mad-sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/scalar_to_vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.buffer.wbinvl1.vol.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/coalescer_distribute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fmul-2-combine-multi-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/max-literals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/private-memory-r600.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/partially-dead-super-register-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/extload-private.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.dcache.wb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/empty-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/build_vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/rv7x0_count3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/llvm.SI.image.sample.o.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/shl_add_ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/vertex-fetch-encoding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AMDGPU/saddo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/comparisons_i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/cpus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/return-int32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/load-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/vtable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/return-void.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/signext-zeroext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/comparisons_i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/load-store-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/immediates.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/i64-load-store-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/irreducible-cfg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/reg-stackify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/returned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/f32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/store-results.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/func.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/address-offsets.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/dead-vreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/globl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/mem-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/ident.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/copysign-casts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/offset-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/comparisons_f32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/unreachable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/cfg-stackify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/non-executable-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/comparisons_f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/i32-load-store-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/unused-argument.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/memory-addr32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/store-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/frem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/memory-addr64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/legalize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/userstack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/WebAssembly/conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomic-load-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-sqrt-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-sub-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/la-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/alloca-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-error-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/insert-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-23.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/serialize-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-cmp-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-add-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-log-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-and-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/tls-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/xor-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/addr-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xor-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memcmp-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-nand-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/or-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-abs-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-shift-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memset-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-cttz-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-div-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-41.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-mul-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cmpxchg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomic-load-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-sqrt-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/alloca-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-sub-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/la-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-sincos-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-error-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-50.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-xor-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/tail-call-mem-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-cmp-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-add-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-and-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/xor-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-33.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/addr-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memcmp-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-nand-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/or-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-shift-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memset-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-sub-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/setcc-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-sub-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-div-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-42.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/spill-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-mul-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cmpxchg-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-sqrt-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/la-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-error-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-51.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-store-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-25.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-cmp-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-abs-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-add-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-and-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/strcmp-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/xor-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-34.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-abi-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-nand-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/or-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-shift-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memset-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-sub-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-17.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/setcc-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-sqrt-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/risbg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-div-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-43.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-17.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-mul-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cmpxchg-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-add-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-min-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-add-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-52.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-26.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-store-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-cmp-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-ctlz-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/alias-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-cmp-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-ctpop-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/and-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-and-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/strcmp-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memchr-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-neg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/xor-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-35.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-nand-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-neg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/or-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-shift-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memset-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-sub-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-18.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/strlen-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/risbg-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-div-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-44.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-18.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-mul-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cmpxchg-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-add-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-min-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-load-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-round-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/call-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-53.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-const-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-27.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-store-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-or-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-cmp-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memcpy-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/htm-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-cmp-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-max-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/and-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomic-store-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-and-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memchr-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/xor-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-36.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/selectcc-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/mature-mc-support.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/or-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-shift-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-19.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/strlen-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/risbg-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-div-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-45.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-19.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/ctpop-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-move-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-mul-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-add-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-min-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-load-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/tls-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/dag-combine-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/call-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-and-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-const-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-store-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-28.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-or-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/rxsbg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/memcpy-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-cmp-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/prefetch-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-max-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/and-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomic-store-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/xor-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-37.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-div-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/selectcc-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-div-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-shift-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-error-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/insert-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-mul-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/bswap-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-div-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-46.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-mul-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-min-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/tls-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xor-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/call-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-and-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-const-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-29.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-store-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-or-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/strcpy-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-extract-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-or-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-max-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/and-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomic-store-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/xor-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-38.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-div-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/selectcc-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-libcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-combine-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-sub-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-error-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/insert-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-mul-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/bswap-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-47.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-mul-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-copysign-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/tls-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-abs-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xor-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/rnsbg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-and-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-abs-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-const-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-store-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-or-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-extract-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-or-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-max-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/and-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomic-store-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-39.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-div-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-combine-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-sub-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-20.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-error-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/insert-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-20.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-17.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/bswap-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-conv-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-48.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-add-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-mul-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/branch-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/tls-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/unaligned-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-abs-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xor-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/or-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-abs-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-const-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-store-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-or-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/and-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-17.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-17.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomic-load-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-sub-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/alloca-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-error-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-move-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/insert-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-21.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-const-18.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/bswap-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-conv-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-49.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-perm-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-add-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-01.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-10.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-02.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-11.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-03.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-12.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-04.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-05.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-06.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-07.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-08.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/branch-range-09.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/spill-01.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/Large/spill-02.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/tls-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/loop-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-30.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xor-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/or-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-abs-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-const-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/cond-store-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-or-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/shift-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-move-09.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-round-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-neg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/and-07.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/asm-18.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomic-load-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-sub-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/la-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/alloca-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-const-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-error-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-mul-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/insert-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-args-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-22.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/bswap-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-add-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-and-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/tls-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/xor-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/addr-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-31.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/atomicrmw-xor-05.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/rosbg-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-conv-06.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-add-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/or-03.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-abs-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-shift-01.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-round-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/frame-14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-conv-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-neg-02.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/args-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/and-08.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/fp-move-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-40.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-cmp-14.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/vec-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SystemZ/int-sub-04.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vtable-reloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-07-17-Fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-03-30-SpillerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr26180.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/big-endian-call-result.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/std-unal-fi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/crypto_bifs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/a2-fp-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unal-altivec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/addisdtprelha-nonr3.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/memset-nc-le.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2010-05-03-retaddr1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-linux-func-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_buildvector_loadstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tls_get_addr_stackframe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2011-12-08-DemandedBitsMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-07-10-SplatMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ldtoc-inv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/novrsave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/p8-scalar_vector_conversions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/Frames-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/weak_def_can_be_hidden.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stwu-gta.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr20442.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/atomics-indexed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/load-constant-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2010-12-18-PPCStackRefs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vaddsplat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vrsave-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-07-15-SignExtendInreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/anon_aggr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/resolvefi-disp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/reloc-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tailcall1-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_veqv_vnand_vorc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/named-reg-alloc-r1-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/lbzux.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-09-08-unaligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-07-15-Bswap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/combine-to-pre-index-store-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/a2q.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vector-identity-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-anyregcc-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/sections.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-s-sel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/int-fp-conv-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/func-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/lha.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-01-31-InlineAsmAddrMode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/p8-isel-sched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/zext-free.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_urem_const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fp-to-int-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-GEP-coalesce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-02-23-lr-saved-twice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc32-lshrti3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr25802.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_rounding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/s000-alias-misched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-recipest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/LargeAbsoluteAddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr25157.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/htm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mem-rr-addr-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-10-28-UnprocessedNode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-nonfunc-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-fp64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pip-inner.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pwr7-gt-nop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_abs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/frame-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_shuffle_le.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-altivec-abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tls-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-07-24-PPC64-CCBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/return-val-i128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2005-09-02-LegalizeDuplicatesCalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/or-addressing-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/BoolRetToIntTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64le-aggregates.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-05-30-dagcombine-miscomp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2009-08-17-inline-asm-addr-mode-breakage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-01-11-darwin-fp-argument.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-sh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/shl_elim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/i64_fp_round.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-12-07-LargeAlloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mult-alt-generic-powerpc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/code-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/bv-pres-v8i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/big-endian-formal-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unsafe-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ld-st-upd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fma-mutate-duplicate-vreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-fma-m.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-04-19-vmaddfp-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rs-undef-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-08-04-CoalescerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unal-vec-ldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-self-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwimi-keep-rsh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fsl-e5500.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/Frames-leaf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/Frames-small.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/select-i1-vs-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/complex-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fold-li.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mftb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-cyclecounter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/structsinmem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec-abi-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-09-04-AltivecDST.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/lbz-from-ld-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-08-15-SelectionCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-10-18-PtrArithmetic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fsl-e500mc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-br-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-load-store-vsx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tls-store2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-ldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-obj.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-func-desc-hoist.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/i64-to-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc32-vacopy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_sqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/and-elim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fnabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-sel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/preinc-ld-sel-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc32-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/i1-to-double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2010-02-12-saveCR.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2009-01-16-DeclareISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tls_get_addr_clobbers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stdux-constuse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-07-15-Fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vperm-lowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-10-17-ppc64-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_auto_constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/i32-to-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/xxleqv_xxlnand_xxlorc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-ne.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ec-input.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mult-alt-generic-powerpc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/shl_sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2013-05-15-preinc-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-smallarg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-conversion-p5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/compare-duplicate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ispositive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/named-reg-alloc-r2-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2005-10-08-ArithmeticRotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/blockaddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/float-asmprint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-spill-norwstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fold-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fma-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-05-22-tailmerge-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/coal-sections.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cmpb-ppc32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-i128-abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-sums.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-11-29-AltivecFPSplat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/long-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-intrin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stack-realign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr12757.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/inline-asm-s-modifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-cpsgn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-prefetch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc32-i1-vaarg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/branch-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/spill-nor0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-10-17-brcc-miscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-fma-sp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-redefinition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/early-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/and_sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/named-reg-alloc-r0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-11-04-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_fmuladd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-stackmap-nops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/private.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ifcvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-09-11-RegCoalescerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx_insert_extract_le.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/inverted-bool-compares.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/named-reg-alloc-r13-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/div-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_shuffle_p8vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/frameaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr17354.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vcmp-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/lxvw4x-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/memset-nc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwinm2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2009-03-17-LSRBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unwind-dw2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2009-07-16-InlineAsm-M-Operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2010-03-09-indirect-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2005-01-14-SetSelectCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fma-mutate-register-constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/copysignl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/constants-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctr-cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/BreakableToken-reduced.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/asym-regclass-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/and-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr24546.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr16556-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/hidden-vis-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwimi-dyn-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fpcopy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fma-mutate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stubs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fp-int-conversions-direct-moves.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mask64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unaligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/e500-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/small-arguments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-01-29-lbrx-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stfiwx-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_clz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr24636.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_extload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_mul_even_odd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-default.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-s000.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/named-reg-alloc-r1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/no-extra-fp-conv-ldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cr-spills.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwimi-commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fcpsgn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-03-24-AddressRegImm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-06-21-F128LoadStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr15359.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-05-14-InlineAsmSelectCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-04-01-FloatDoubleExtend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/branch-hint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-01-15-AsmDialect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2010-02-04-EmptyGlobal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-lt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-06-19-LegalizerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/a2q-stackalign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_insert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/byval-agg-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_shuffle_p8vector_le.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwimi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2009-11-15-ProcImpDefsBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-06-23-LiveVariablesCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_perf_shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-08-11-RetVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-udivti3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr22711.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/merge-st-chain-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppcf128-1-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unwind-dw2-g.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fp128-bitcast-after-operation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr26381.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr26193.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc32-pic-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2004-11-30-shift-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/subreg-postra.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-fma-mutate-trivial-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_br_cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vperm-instcombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-02-05-LiveIntervalsAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/svr4-redzone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/available-externally.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-p8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unal4-std.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc-prologue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/can-lower-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-02-09-LocalRegAllocAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ia-mem-r0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/sign_ext_inreg1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stwu8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/inlineasm-i64-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc440-fp-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/subreg-postra-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2009-11-25-ImpDefBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctr-minmaxnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/toc-load-sched-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_mergeow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/popcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwimi-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/no-dead-strip.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tailcall1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/named-reg-alloc-r2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/jaggedstructs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/f32-to-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppcf128sf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64le-localentry-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-32bit-addic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/lsa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rotl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/asm-Zy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr24216.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/add-fi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/set0-v8i16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-03-24-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr17168.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/peephole-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/sdiv-pow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-03-26-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx_scalar_ld_st.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/hidden-vis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/subc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-11-19-VectorSplitting.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fp-to-int-to-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/variable_elem_vec_extracts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2005-11-30-vastart-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/MergeConsecutiveStores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fma-assoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-10-21-LocalRegAllocAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/and_add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/xvcmpeqdp-v2f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2010-04-01-MachineCSEBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/zero-not-run.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/Atomics-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr26356.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/swaps-le-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stwux.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-09-12-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/in-asm-f64-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/splat-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-byval-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/flt-preinc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_add_sub_quadword.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2004-12-12-ZeroSizeCommon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-func-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/retaddr2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/shift128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tls-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fp2int2fp-ppcfp128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/itofp128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/bdzlr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppcf128-endian.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/arr-fp-arg-no-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-10-17-AsmMatchingOperands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/bswap-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwinm-zero-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/dyn-alloca-aligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ia-neg-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/early-ret2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr13891.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mulhs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-04-16-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2012-09-16-TOC-entry-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/indexed-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rotl-rotr-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fdiv-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/hello.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/p8altivec-shuffles-pred.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/empty-functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/resolvefi-basereg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2005-01-14-UndefLong.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fp_to_uint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/misched-inorder-latency.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2013-07-01-PHIElimBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/structsinregs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/builtins-ppc-p8vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/quadint-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctr-loop-tls-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc32-cyclecounter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-anyregcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-07-19-stwbrx-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr16573.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr26617.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fp-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2011-12-05-NoSpillDupCR.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc440-msync.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mul-with-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2012-10-12-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/aantidep-inline-asm-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/neg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/reg-names.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/addrfuncstr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr13641.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2011-12-06-SpillAndRestoreCR.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/loop-prep-all.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-s-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-ldst-builtin-le.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/aantidep-def-ec.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/aa-tbaa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2009-05-28-LegalizeBRCC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/store-load-fwd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/loop-data-prefetch-inner.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr16556.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-bv-sint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/swaps-le-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cmp-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-11-10-DAGCombineMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2012-11-16-mischedcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc32-nest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mature-mc-support.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fminnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-04-10-LiveIntervalCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/coalesce-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-bv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/byval-aliased.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/seteq-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/loop-data-prefetch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/illegal-element-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/isel-rc-nox0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppcf128-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/negctr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsel-prom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwimi2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ashr-neg1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-split-vsetcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-05-03-InlineAsm-S-Constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stackmap-frame-setup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-12-07-SelectCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-shifter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-01-04-ArgExtension.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-stackmap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/atomics-fences.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/longdbl-truncate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/bv-widen-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-abi-extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-obj-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-03-17-RegScavengerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-elementary-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/remat-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-03-18-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/addc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2004-11-30-shr-var-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/optcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-s-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/sjlj.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/memcpy-vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-icbt-pwr8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/sj-ctr-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/no-rlwimi-trivial-commute.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc-vaarg-agg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rotl-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-10-31-PPCF128Libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/crsave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pwr3-6x.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/swaps-le-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/preincprep-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rm-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unal-vec-negarith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc-crbits-onoff.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr3711_widen_bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppcf128-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/delete-node.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/retaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwimi3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/crbit-asm-disabled.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/select_lt0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-large-ec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppcsoftops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/tailcallpic1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/select-cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/emptystruct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/allocate-r0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/Frames-large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fmaxnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64le-smallarg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr15630.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_splat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-11-16-landingpad-split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stack-protector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cttz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/asm-constraints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-03-24-cntlzd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr18663-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-10-16-InlineAsmFrameOffset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mulli64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-04-30-InlineAsmEarlyClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mul-neg-power-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fsqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/preincprep-nontrans-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/bperm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-r2-alloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-12-02-LegalizeTypeAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vector-merge-store-fp-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unal-altivec2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/selectiondag-extload-computeknownbits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_misaligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-toc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_cmpd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc-empty-fs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-unal-cons-lds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/inlineasm-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-05-12-rlwimi-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/i1-ext-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-02-16-InlineAsmNConstraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/swaps-le-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cr1eq-no-extra-moves.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/DbgValueOtherTargets.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/big-endian-actual-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/addi-reassoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/hello-reloc.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-06-28-BCCISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/r31.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/optnone-crbits-i1-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-09-12-LiveIntervalsAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/and_sra.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/trampoline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/bitreverse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/atomic-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/div-e-all.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/extra-toc-reg-deps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/buildvec_canonicalize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-fma-mutate-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/recipest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-fastcc-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/asm-dialect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppcf128-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2012-10-11-dynalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/crbits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_rotate_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-09-28-shift_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/srl-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/named-reg-alloc-r13.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-infl-copy1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec-asm-disabled.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-patchpoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/unal-altivec-wint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/split-index-tc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-vaarg-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-fcmp-nan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-10-13-Miscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/i64_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-05-01-ppc_fp128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_splat_constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-04-05-splat-ish.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/subsumes-pred-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/machine-combiner.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/no-pref-jumps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-icmp-split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/floatPSA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-conversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2016-01-07-BranchWeightCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwimi-and-or-bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cmpb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/stfiwx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_add_sub_doubleword.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/darwin-labels.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-03-05-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/varargs-struct-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2005-08-12-rlwimi-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-02-16-AlignPacked.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/swaps-le-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/dcbt-sched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2004-11-29-ShrCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rlwinm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-recip-est.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/post-ra-ec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/eqv-andc-orc-nor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr15031.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/atomic-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/misched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx_shuffle_le.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/reg-coalesce-simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2006-07-07-ComputeMaskedBits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2009-09-18-carrybit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppcf128-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/bitcasts-direct-move.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr26690.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/builtins-ppc-elf2-abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-10-21-LocalRegAllocAssert2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fastisel-gep-promote-before-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mc-instrlat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-fastcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/and-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/sdag-ppcf128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vsx-infl-copy2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/i128-and-beyond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/remap-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2008-04-23-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cr1eq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/frounds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr15632.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rounding-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/div-e-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64le-localentry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/compare-simm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-unalperm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fsel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vrspill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr26378.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/extsh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64le-crsave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/sub-bv-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fp-int-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-nest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/load-shift-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/cr_spilling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/emutls_generic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/dyn-alloca-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-binary.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/float-to-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2010-10-11-Fast-Varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/iabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mem_update.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloop-le.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/crbit-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/addi-licm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr25157-peephole.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/fast-isel-cmp-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/pr18663.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-align-long-double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/qpx-rounding-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/2007-04-24-InlineAsm-I-Modifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/mcm-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/glob-comp-aa-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/int-fp-conv-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/swaps-le-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_popcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/vec_vrsave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ctrloops-softfloat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64-gep-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/rotl-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/setcc_no_zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/altivec-ord.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/ppc64le-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/store-update.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/PowerPC/lsr-postinc-pos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sched1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/nvvm-reflect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/ld-generic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/aggr-param.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/module-inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-30.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/fast-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-50.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/surf-read.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/param-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vector-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/weak-linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/addrspacecast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vector-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/machine-sink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/function-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/debug-file-loc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/surf-write-cuda.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/fp-literals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/ctpop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vector-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-53.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/nvcl-param-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/globals_lowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/managed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/TailDuplication-convergent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/simple-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/shift-parts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/mulwide.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/ldparam-v4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/isspacep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/convergent-mir-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/arithmetic-fp-sm20.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/rsqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/texsurf-queries.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/constant-vectors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/bug22246.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vector-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/generic-to-nvvm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/loop-vectorize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/ld-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/weak-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/envreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/noduplicate-syncthreads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/arg-lowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/surf-read-cuda.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/disable-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/ldu-reg-plus-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/implicit-def.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/i1-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sched2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/bug22322.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/refl1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/callchain.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/compare-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/bug21465.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/misaligned-vector-ldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/combine-min-max.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/lower-kernel-ptr-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/arithmetic-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/cttz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/i1-int-to-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/global-visibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/local-stack-frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/bug17709.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/lower-aggr-copies.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/extloadv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vec-param-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/pr16278.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/add-128bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/MachineSink-convergent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/MachineSink-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/access-non-generic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/fma-disable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sext-params.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/global-dtor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/globals_init.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/global-ordering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/load-sext-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/surf-write.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/calling-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/intrinsic-old.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vector-stores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-20.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/lower-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/tuple-literal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/convert-int-sm20.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/addrspacecast-gvar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/gvar-init.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/st-generic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/global-ctor-empty.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/ldu-i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/nounroll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/fma-assoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/half.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/st-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/imad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/fp16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/i8-param.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vector-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/fp-contract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/global-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-37.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/bfe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vector-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vec8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/global-ctor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/i1-param.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/vector-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/symbol-naming.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/bypass-div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/pr13291-i1-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/tex-read-cuda.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/call-with-alloca-buffer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/reg-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-52.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/ldu-ldg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/div-ri.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/rotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/intrin-nocapture.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/tex-read.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/branch-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-21.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/convert-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/load-with-non-coherent-cache.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sm-version-35.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/pr17529.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/annotations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/NVPTX/sext-in-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_ld1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpconsts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/compare-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fcopysign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vcombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/metadata-short-enums.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vshift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-08-29-SchedCycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_arg2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-crash2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-06-29-MergeGlobalsAlign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/dagcombine-concatvector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-info-d16-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/section-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/func-argpassing-endian.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/this-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/mult-alt-generic-arm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-08-29-ldr_pre_imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vararg_no_start.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments-nosplit-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/long_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/DbgValueOtherTargets.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldr_ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/build-attributes-encoding.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/elf-lcomm-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fixunsdfdi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-04-15-ScavengerDebugValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/memcpy-ldm-stm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fp-arg-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vld2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/eh-dispcont.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2014-01-09-pseudo_expand_implicit_reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-11-30-MergeAlignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-info-no-frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/aliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/struct_byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fabs-to-bfc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/atomic-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/hardfloat_neon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/atomic-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/emutls1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/pr3502.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/sat-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/dwarf-eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vst1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-11-07-SubRegAsmPrinting.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-switch-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-05-07-RegAllocLocal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cse-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/stackpointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/space-directive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/special-reg-v8m-base.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/call-noret-minsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/crash-shufflevector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/longMAC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fnmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-05-19-LiveIntervalsBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2015-01-21-thumbv4t-ldstr-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/available_externally.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/atomic-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/hidden-vis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/nest-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vector-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-11-09-BitcastVectorDouble.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-19-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-31-LSDA-Name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_ld2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/segmented-stacks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vuzp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_arg3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fnmacs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb2-size-reduction-internal-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/invalid-target.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-10-26-ExpandUnalignedLoadCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-05-18-LocalAllocCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-switch-mode-oneway-from-arm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpcmp_ueq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ehabi-no-landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/pr25317.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vselect_imax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tls-models.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-info-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-05-14-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ssp-data-layout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-08-09-neon-extload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vbsl-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/v1-constant-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-12-07-PEIBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/jumptable-label.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/addrspacecast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fp16-v3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/build-attributes-optimization-optsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/sub-cmp-peephole.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/coalesce-dbgvalue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-09-19-cpsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vld3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-frameaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vshl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/global-merge-external.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-09-25-InlineAsmScalarToVectorConv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_f64_arg_split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ehabi-filters.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-pred.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vcvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vector-promotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-11-13-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-02-04-LocalRegAllocBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/aggregate-padding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vfp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/aapcs-hfa-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-03-04-stm-undef-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/big-endian-neon-bitconv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vector-extend-narrow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vst2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-09-25-InlineAsmScalarToVectorConv2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifconv-kills.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vqsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-04-27-IfCvtBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/stm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/hfa-in-contiguous-registers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb1-ldst-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/unwind-init.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ehabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-frame-large-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-11-07-PromoteVectorLoadStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-04-12-AlignBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-conversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/insn-sched1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/str_post.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vshiftins.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/divmod.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-03-23-PeepholeBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tst_teq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fptoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/wrong-t2stmia-size-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-10-30.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/null-streamer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-info-blocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fparith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/zextload_demandedbits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/log2_not_readnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vpadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-05-14-IllegalType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-04-13-v2f64SplitArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/illegal-vector-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/popcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/preferred-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_arg4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fabs-neon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-ldrh-strh-arm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-01-21-PR14992.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-info-qreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vstlane.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-imm-arm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-03-26-FoldImmBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-frame-no-debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/big-endian-neon-extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/deps-fix.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/lsr-scale-addr-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-05-02-AAPCS-ByVal-Structs-C4-C5-VFP2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/invoke-donothing-assert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/taildup-branch-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-05-05-IfConvertBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/twoaddrinstr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-11-13-VRRewriterCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/no-eabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/no-aeabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/no-arm-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/global-minsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/frame-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/hard-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/vla.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/no-ehabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/stack-probe-non-default.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/division.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/no-frame-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/aapcs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/chkstk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/chkstk-movw-movt-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/mov32t-bundling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/movw-movt-relocations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/long-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/mangling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/builtin_longjmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/read-only-data.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/dbzchk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/trivial-gnu-object.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/dllimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/Windows/structors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-04-09-NeonSelect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tail-call-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fastcc-vfp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-10-04-FixedFrame-vs-byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/setcc-sentinals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-04-03-PEIBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-04-16-AAPCS-C4-vs-VFP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/metadata-default.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/v7k-sincos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/MachO-subtypes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/mul_const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cache-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-05-14-InlineAsmCstCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-28-LdStOptiBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/build-attributes-optimization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bicZext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-06-11-vmovdrr-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-05-19-Shuffles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vld4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fmscs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tail-dup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/metadata-short-wchar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/formal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/special-reg-acore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/dagcombine-anyexttozeroext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-03-30-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-04-02-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/segmented-stacks-dynamic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/indirectbr-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2006-11-10-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldstrex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vbits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/opt-shuff-tstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-06-29-SubregImpDefs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/pr25838.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-08-07-AsmPrintBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldr_frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/unaligned_load_store_vfp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/a15-mla.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-imm-thumb2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/gep-optimization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vst3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fp-fast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-info-s16-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-04-05-Small-ByVal-Structs-PR15293.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-02-07-AntidepClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vcgt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-12-08-tpsoft.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-06-25-Thumb2ITInvalidIterator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/crash-greedy-v6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-shift-materialize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fastisel-thumb-litpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-negative-stride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/load_i1_select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/smml.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/indirect-reg-input.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-07-26-GlobalMerge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/emutls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-03-07-CombinerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/eh-resume-darwin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-imm-thumb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tail-opts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ehabi-handlerdata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-eabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-08-15-ReuseBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/smul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/stack-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/hints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-02-RegScavengerAssert-Neon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/v7k-abi-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-08-13-bfi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldst-f32-2-i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/swift-atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/extload-knownzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/special-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/sincos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb-litpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/undefined.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tail-dup-kill-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments-nosplit-double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bit-reverse-to-rbit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_arg5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-switch-mode-oneway-from-thumb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cmpxchg-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/unsafe-fsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldstrex-m.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/uxtb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inline-diagnostics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2014-08-04-muls-it.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-11-09-IllegalVectorFPIntConvert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/softfp-fabs-fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-07-17-Fdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/setjmp_longjmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-11-15-SpillEarlyClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fabss.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon-fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-10-16-Scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/t2-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-05-07-ByteLoadSameAddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-10-18-PR14099-ByvalFrameAddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_vabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-GEP-coalesce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/saxpy10-a9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/mem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/minsize-litpools.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cse-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/indirectbr-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-22-LiveVariablesBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/movt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-mvn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/nop_concat_vectors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-30-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-03-27-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-04-RegScavengerAssert-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-06-12-SchedMemLatency.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-11-18-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-15-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-11-08-inline-asm-neon-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-05-13-AAPCS-byval-padding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-26-ScalarToVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/select-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vpminmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vst4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bfi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/misched-copy-arm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-02-27-SpillerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon-spfp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cttz_vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vsra.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fdivs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-06-16-TailCallByVal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/no-tail-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-03-05-FPSCR-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/crash-greedy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-deadcode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vmls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bswap16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/negative-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2014-05-14-DwarfEHCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fastisel-gep-promote-before-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-07-22-SchedulerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/va_arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-11-14-subs_carry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vqadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-04-18-load-overlap-PR14824.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-07-10-GlobalMergeBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/sxt_rot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fnmuls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/stack-protector-bmovpcb_call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/memset-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_arith1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-binary.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-static.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-06-09-TailCallByVal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldm-stm-base-materialization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/intrinsics-v8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/data-in-code-annotations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/darwin-eabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/build-attributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldrd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-04-08-FloatUndef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-09-21-OptCmpBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/copy-paired-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fusedMAC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/machine-cse-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fmacs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/global-merge-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2014-07-18-earlyclobber-str-post.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-05-29-TailDupBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vldm-sched-a9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vfloatintrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/intrinsics-crypto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-06-21-LdStMultipleBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpcmp-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-04-26-SchedTweak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_f32_arg2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/lsr-code-insertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vqshrn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/call_nolink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb1_return_sequence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-04-08-FREM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-returnaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-04-11-MachineLICMBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/disable-fp-elim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/memfunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/named-reg-notareg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-10-postdec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vlddup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-12-15-elf-lcomm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-11-01-NeonMoves.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-04-24-SplitEHCriticalEdge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/none-macho-v4t.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-02-04-AntidepMultidef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fnattr-trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-02-16-SpillerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/emutls_generic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-remat-same-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-11-13-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/avoid-cpsr-rmw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/load-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/out-of-registers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vicmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/pack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/stack_guard_remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-call-multi-reg-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-08-23-legalize-vmull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/undef-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/adv-copy-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/lsr-unfolded-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tls1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/machine-licm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-06-21-nondarwin-tc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/disable-tail-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldr_post.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vhsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/sjlj-prepare-critical-edge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vqshl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/rotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-10-27-double-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-05-22-tailmerge-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-05-18-PostIndexBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-11-13-ScavengerAssert2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/weak2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/private.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-04-07-schediv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_void.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/optimize-dmbs-v7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/PR15053.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/apcs-vfp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/build-attributes-optimization-minsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-01-24-RegSequenceLiveRange.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-04-02-TwoAddrInstrCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-info-branch-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-04-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-shrink-wrapping-linux.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fp16-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-29-ExtractEltf32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/prefetch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/usat-lower.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-redefinition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/mature-mc-support.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/atomic-ops-v8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm32-rounding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vaba.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/noreturn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-21-PostRAKill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-shifter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-12-14-machine-sink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-ldr-pseudo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpconv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-09-09-OddVectorDivision.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/global-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-frame-vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-01-26-CopyPropKills.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/a15-SD-dep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cse-ldrlit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-04-16-AAPCS-C5-vs-VFP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpmem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/argaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-05-20-NEONSpillCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vtbl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt-iter-indbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-10-04-LDRB_POST_IMM-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ehabi-unwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-update-valuemap-for-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-br-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/big-endian-neon-trunc-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/copy-cpsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fold-stack-adjust.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-04-08-AggregateAddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_i64_arg_split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/global-merge-addrspace.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fsubs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vrev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/setcc-type-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/umulo-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cttz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tls2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-segmented-stacks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/unord.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_f64_arg_stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/armv4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/select_xform.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-04-06-AsmModifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/jump-table-islands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/varargs-spill-stack-align-nacl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cse-libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vfp-reg-stride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vshrn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/call-noret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/mvn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/isel-v8i32-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/interrupt-attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/usat-upper.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-interleaved-accesses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vqdmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_fpconv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vminmaxnm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/frame-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt-regmask-noreturn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-01-23-PostRA-LICM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vcvt_combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/str_pre.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/movcc-double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-01-26-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/a15.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/alloc-no-stack-realign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldr_pre.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-03-05-SxtInRegBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt-branch-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-07-22-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/trunc_ldr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-09-28-CMovCombineBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/pr26669.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-info-sreg2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/rbit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/a15-partial-update.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-13-InvalidSuperReg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/rem_crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/returned-trunc-tail-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt-callback.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/subtarget-features-long-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tail-merge-branch-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_vshl_minint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/movt-movw-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb2-size-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/half.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-07-24-CodeGenPrepCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/atomicrmw_minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-modifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/shifter_operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fp16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-24-spill-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debugtrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/str_pre-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-02-01-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-08-12-vmovqqqq-pseudo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-05-18-InlineAsmMem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/carry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/t2abs-killflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/build-attributes-optimization-optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vshll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/struct_byval_arm_t1_t2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-01-19-InfiniteLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/integer_insertelement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-11-29-128bitArithmetics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpcmp-f64-neon-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-05-07-tailmerge-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ghc-tcreturn-lowered.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm-64bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-04-10-DAGCombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_f64_arg_reg_split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-05-04-vmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/legalize-unaligned-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2014-02-05-vfp-regs-after-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/aapcs-hfa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/darwin-tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/emit-big-cst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tls3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/coalesce-subregs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vector-DAGCombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-08-27-CopyPhysRegCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-22-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/swift-vldm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/long-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vmla.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/print-memb-operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-02-29-RegAllocLocal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-frameaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-21-PostRAKill2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/load-address-masked.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ctors_dtors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-05-09-tailmerge-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/lsr-icmp-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments_f64_backfill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-15-RegScavenger-EarlyClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-05-17-FastAllocCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-05-10-PreferVMOVtoVDUP32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vhadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fmuls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-04-04-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-05-02-AAPCS-ByVal-Structs-C4-C5-VFP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-04-21-AAPCS-VA-C.1.cp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb1-varalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ctor_order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-09-18-ARMv4ISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-08-04-EHCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vget_lane.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-05-03-BadPostIndexedLd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/swiftself.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-br-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-30-RegScavengerAssert2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-10-02-NEONSubregsBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cfi-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vcvt-v8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vminmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/big-endian-vector-callee.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/code-placement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/unaligned_load_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/big-endian-ret-f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/domain-conv-vmovs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_f32_arg5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/constant-islands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-21-LiveVariablesBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_i64_arg2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/v7k-libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-02-22-SoftenFloatVaArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/large-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vceq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-load-store-verify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-09-17-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-09-AllOnes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-07-01-CommuteBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fnegs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/atomic-cmpxchg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fp_convert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-05-23-BadPreIndexedStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/byval-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/memcpy-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/flag-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/MergeConsecutiveStores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/truncstore-dag-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm32-round-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-11-30-LiveVariablesBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb_indirect_calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/regpair_hint_phys.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vfp-libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vector-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2014-02-21-byval-reg-split-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb-big-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fadds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-04-11-PHIofImpDef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/jump-table-islands-split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fpowi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/special-reg-v8m-main.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-and-tst-peephole.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vminmaxnm-safe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-03-10-DAGCombineCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vzip.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-11-02-NegativeLane.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vtrn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/big-endian-eh-unwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-07-29-vector-or-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/noopt-dmb-v7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/indirect-hidden.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/extloadi1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-29-TooLongSplat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-13-InvalidSubreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-03-13-InstrSched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/stack-frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/subtarget-no-movt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-03-21-JoinIntervalsCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vrec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ssat-lower.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/atomic-64bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-21-PostRAKill3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thread_pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/gv-stubs-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vsel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifconv-regmask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/uint64tof64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/iabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/intrinsics-memory-barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bfx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_f64_arg2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-03-18-ldm-rtrn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-04-15-AndVFlagPeepholeBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-11-14-EarlyClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-03-07-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/zero-cycle-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vfp-regs-dwarf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bfc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-04-15-RegisterCmpPeephole.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/mls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-08-08-legalize-unaligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/struct-byval-frame-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-07-09-asm-p-constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/sbfx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt-dead-def.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vdiv_combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/dwarf-unwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/warn-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-30-RegScavengerAssert3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-04-09-RegScavengerAsm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/gpr-paired-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vabd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/crc32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/pr18364-movw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vdup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/addrmode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-31-TwoRegShuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fmdrr-fmrrd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-20-LiveIntervalsBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/intrinsics-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vcvt-cost.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/test-sharedidx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_i64_arg3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-04-12-FastRegAlloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/sjljehprepare-lower-empty-struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ssat-upper.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/hello.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/reg_sequence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fp16-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-10-25-ifcvt-ldm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-05-13-AAPCS-byval-padding2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/select-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/constantfp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/divmod-eabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vector-spilling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-11-29-PrologueBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/str_trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vcge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/align-sp-adjustment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-05-13-DAGCombiner-undef-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-08-25-ldmia_ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ispositive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/optselect-regclass.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/unaligned_load_store_vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/section.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-ldr-str-thumb-neg-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vbsl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt-branch-weight-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-04-30-CombinerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-08-30-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vpadal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/dyn-stackalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_sret_vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/crash-O0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/int-to-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cmn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-11-28-DAGCombineBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-05-11-CodePlacementCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/mulhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/debug-frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/spill-q.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/none-macho.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-cmp-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/returned-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/byval_load_align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldrd-memoper.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/named-reg-alloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/clz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-ttype-target2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vldm-liveness.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/hidden-vis-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vargs_align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/special-reg-mcore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-10-11-select-stalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/wide-compares.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-08-04-StackVariable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-03-15-LdStMultipleBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/no-fpu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-03-04-eabi-fp-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/combine-movc-sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bswap-inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cxx-tlscc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_i128_arg2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-07-29-VFP3Registers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/build-attributes-optimization-mixed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vfcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-30-RegScavengerAssert4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/commute-movcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-12-02-vtrn-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/krait-cpu-div-attribute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/default-float-abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/floorf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-12-17-LocalStackSlotCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/peephole-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-10-26-memset-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/subreg-remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-15-RegScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-08-27-ScalarToVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/long.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon_div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ret_arg1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tail-call-builtin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-02-ISelCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-vaddd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/smulw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-04-MissingLiveIn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ehabi-handlerdata-nounwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bx_fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2007-04-03-UndefinedSymbol.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-abi-attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/minsize-imms.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-06-03-ByVal-2Kbytes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/pr13249.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vld-vst-upgrade.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-10-26-memset-with-neon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vldlane.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-04-10-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fnmscs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-isel-ldr-str-arm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/neon-v8.1a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ldaex-stlex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fast-tail-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/big-endian-vector-caller.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arguments8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-27-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-07-18-RewriterBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/uxt_rot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-03-07-SpillerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/vld1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-03-13-DAGCombineBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/combine-vmovdrr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/cmpxchg-idioms.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/call-tc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2012-08-04-DtripleSpillReload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-09-fpcmp-ole.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/gpr-paired-spill-thumbinst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-09-23-LiveVariablesBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/hidden-vis-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/readcyclecounter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/rev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-02-27-expand-vfma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2008-05-19-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-12-19-sjlj-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-04-14-SplitVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/ifcvt7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2011-05-04-MultipleLandingPadSuccs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/tail-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/thumb2-it-block.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/load-store-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-05-21-BuildVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/fold-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-03-09-AddrModeBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2013-05-31-char-shift-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-06-30-RegScavengerAssert5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/widen-vmovs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2009-05-05-DAGCombineBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/2010-06-29-PartialRedefFastAlloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/ARM/arm-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/fpow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/stack_guard_remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/push.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/ldm-merge-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/vargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/thumb-ldm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/inlineasm-thumb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2007-02-02-JoinIntervalsCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/rev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/large-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/ispositive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/pop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/stm-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/segmented-stacks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/fastcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/dyn-stackalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/ldm-stm-base-materialization-thumb2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2012-04-26-M0ISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2010-06-18-SibCallCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/segmented-stacks-dynamic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/frame_thumb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/ldr_frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2009-07-20-TwoAddrBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/stack-frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/asmprinter-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2007-05-05-InvalidPushPop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/thumb-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2009-08-12-ConstIslandAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2011-06-16-NoGPRs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2014-06-10-thumb1-ldst-opt-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/mature-mc-support.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/stack-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2010-07-15-debugOrdering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2009-12-17-pre-regalloc-taildup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/copy_thumb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/stack-coloring-without-frame-ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/inlineasm-imm-thumb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/iabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/ldm-stm-base-materialization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/sjljehprepare-lower-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/PR17309.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2009-06-18-ThumbCommuteMul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/fpconv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/ldm-merge-struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/long_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/DbgValueOtherTargets.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/long-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/long.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/triple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/thumb-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/ldr_ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2009-07-27-PEIAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2009-08-12-RegInfoAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2011-05-11-DAGLegalizer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/cortex-m0-unaligned-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/tst_teq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2009-08-20-ISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/unord.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2011-EpilogueBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2010-07-01-FuncAlign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb/2007-01-31-RegInfoAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/dwarf_debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/trampoline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/addsub64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/byVal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/misc-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/unaligned_store_combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/bigstructret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/2011-08-01-DynamicAllocBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/shedulingPreference.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/mkmsk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/unaligned_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/scavenging.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/epilogue_prologue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/2009-07-15-store192.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/float-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/licm-ldwcp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/2009-01-08-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/llvm-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/ashr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/2009-01-14-Remat-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/2009-03-27-v2f64-param.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/resources_combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/sr-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/mul64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/linkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/private.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/resources.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/switch_long.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/2010-02-25-LSR-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/aliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/ladd_lsub_combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/offset_folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/threads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/codemodel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/2008-11-17-Shl64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/getid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/zextfree.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/DbgValueOtherTargets.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/exception.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/events.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/ps-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/unaligned_load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/2011-01-31-DAGCombineBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/XCore/trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP/attributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP/2007-06-16-Funcname.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP/gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP/2012-02-05-UnitVarCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP/2009-05-01-Long-Double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/CPP/2009-05-04-CondBr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Inputs/DbgValueOtherTargets.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/constant_multiply.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/comparisons_i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/codemodel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/delay_filler.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/mem_alu_combiner.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/set_and_hi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/stack-frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/multiply.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Lanai/combined_alu_setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-06-13-NotVolatileLoadStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma-do-not-commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr7882.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-17-Asm64bitRConstraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_ins_extract-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/testb-je-fusion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-ashr-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/unwindraise.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift_scalar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-logic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/codemodel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nontemporal-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3522.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/legalize-sub-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-08-07-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sar_fold64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-new.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-21-ExtWeakInitializer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-20-AsmDoubleInI32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-24-pblendw-fold-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/trunc-ext-ld-st.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combiner-aa-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-16-LeaUndef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fastcc-sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win-catchpad-nested.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mbp-false-cfg-break.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr22774.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-32-intrcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr15296.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-lshr-512.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-bypass-slow-division-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-15-LiveVariableBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-06-19-QuicksortCoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win-catchpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/and-or-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/viabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse41-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stackmap-large-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-07-13-BadFrameIndexDisplacement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-gv-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win-catchpad-nested-cxx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/abi-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-02-29-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-08-16-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nosse-error1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-and-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ssse3-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-06-x87ld-nan-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/splat-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-27-LiveIntervalsAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-far-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pseudo_cmov_lower2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/code_placement_eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-density.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-label2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-05-VZextByteShort.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/f16c-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-update-frame-opcode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-arg-passing-x86-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-09-23-LiveVariablesBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-protector-dbginfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-lshr-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-11-30-handlemove-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-07-16-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/WidenArith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512dq-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/add_shl_constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-block-labels.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/storetrunc-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls-local-dynamic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-H.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dbg-changes-codegen-branch-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/isel-sink2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr16807.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dyn_alloca_aligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/h-registers-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/movgs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-bad-constraint-n.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/floor-soft-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_insert-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cfi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-08-31-EH_RETURN64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-24-InlineAsmPModifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/personality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dllexport-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/machine-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-vzeroupper.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-readnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-01-19-ISelFoldingBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-int-avx2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_extract-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/select-with-and-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/narrow-shl-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-02-04-FastRegallocNoFP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-02-dagcombine-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-08-01-LiveVariablesBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-skx-insert-subvec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-12-06-BitcastVectorGlobal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/insertps-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-01-08-X86-64-Pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/critical-edge-split-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-05-09-loaduse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scev-interchange.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr26652.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-cvt-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-10-09-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/change-compare-stride-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-except-finally.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dllimport-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2013-05-06-ConactVectorCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-01-08-IllegalCMP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-13-TwoAddrPassCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-06-14-mmx-inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr13220.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stackmap-shadow-optimization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-baseptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/subreg-to-reg-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/emutls-pie.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-fold-pshufb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/v4f32-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-variable-idx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-08-28-UnsafeMathCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-09-14-valcoalesce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/longlong-deadload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extern_weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/exedeps-movq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/clear_upper_vector_element_bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-02-23-DAGCombine-Miscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-16-SpillerUnfold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls-android-negative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-reuse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr23246.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-threshold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memcpy-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fixup-lea.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-10-03-DAGCycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-03-BitcastLongDouble.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fastisel-gep-promote-before-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/function-subtarget-features-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-05-28-LocalRegAllocBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-aa-mmos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-une-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-double-shifts-var.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/small-byval-memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_cast-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-11-30-misched-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-07-11-SHLBy1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dagcombine-unsafe-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_arith-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/remat-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_shift6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-10-RegAllocInfLoop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-08-09-IllegalX86-64Asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-phaddsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/muloti.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse42_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr23103.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-sanitizer-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zext-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-deadcode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/powi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/legalize-libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/reverse_branches.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stackmap-nops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-cgp-dup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memset64-on-x86-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-modifier-n.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp128-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-divrem-x86-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-12-SpillerUnfold2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-commute2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/int-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-mask-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-11-InstrSched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-hoist.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zlib-longest-match.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constant-pool-remat-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_anyext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/webkit-jscc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-15-tconst_shl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/libcall-sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-05-LocalAllocEarlyClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/psubus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-05-05-VecCastExpand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr15309.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-64-xsavec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dagcombine-and-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-scalar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-08-21-ExtraMovInst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lea-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tbm_patterns.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/returned-trunc-tail-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dbg-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/gcc_except_table.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sibcall-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/addr-mode-matcher.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dag-rauw-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512dq-mask-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-13-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-vector-sext-crash2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sdiv-pow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-xsave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_align_i256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scalar_widen_div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-22-FPSetEQ.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-pcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/large-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/deopt-bundles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-matmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/change-compare-stride-trickiness-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-05-28-DAGCombineCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-06-frem-fpstack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-extend-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmov-double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma4-intrinsics-x86_64-folded-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-subreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/disable-tail-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-ptr-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lea-opt-memop-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/windows-itanium-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-17-VectorArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/large-gep-scale.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extractelement-from-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x32-function_pointer-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-02-IllegalResultType.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-stack-realign3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-08-23-Trampoline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-double-precision-shift-right.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-06-29-VecFPConstantCSEBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-08-CoalesceSubRegClass.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-tailcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-finally.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/field-extract-use-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bwvl-mov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr16360.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-constrain-store-indexreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/aligned-variadic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr24139.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-20-InlineAsmClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-balance.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-02-23-mmx-inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-30-LSRCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fildll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bit-test-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cas.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bswap-inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-bc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stride-reuse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/illegal-vector-args-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/emit-big-cst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-30-padd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fnabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmovcmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-args-fail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-compare-cmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avoid-loop-align-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-scale.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-select-pseudo-cmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-parts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peephole-na-phys-copy-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-round.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-29-LinearScanBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-04-17-LiveIntervalAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/deadargelim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/erlang-gc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/inline2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/cg-O0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/lower_gcroot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/badreadproto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/fat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/outside.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/badrootproto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/argpromotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/ocaml-gc-assert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/ocaml-gc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/alloc_loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/dynamic-frame-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/GC/badwriteproto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-blend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-fp-sse42.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/btq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/unaligned-32-byte-memops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/MachineSink-eflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ins_subreg_coalesce-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-vector-bad-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fmul-combines.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-09-21-setcc-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/machine-cp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-05-22-FoldUnalignedLoad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_insert-7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-set-st1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-19-DAGCombinerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/split-vector-rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-cmpb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hipe-cc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-2addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-gather.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-08-19-LoadNarrowingMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win32_sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_insert-mmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extractelement-legalization-cycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win32-seh-catchpad-realign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fastcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-direct-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-code-difference-with-debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_cast2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ins_split_regalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-R-constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lower-vec-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-27-CoalescerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-09-21-NoSpillLoopCount.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr14562.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr11998.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/codegen-prepare-extload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/movntdq-no-avx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ret-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3366.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-testm-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-02-12-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr10525.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-ops-ancient-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-protector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-10-19-atomic-cmp-eflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-01-07-LegalizeTypesCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr14088.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ret-i64-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/xop-pcmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-04-27-ISelFoldingBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/wineh-coreclr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-mem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_load-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/swizzle-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-14-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avoid-lea-scale2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-fixup-lea3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/funclet-layout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/movmsk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/llc-override-mcpu-mattr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/undef-label.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i486-fence-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-mmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-10-shufnorm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/musttail-fastcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-2results.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/indirect-hidden.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr17764.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-01-11-ExtraPHIArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/macho-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_conversions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-fast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sext-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2004-02-22-Casts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/negative_zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/arg-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/prolog-push-seq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-int-float-conversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-C.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-sse4a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pass-three.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/test-shrink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fsxor-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-fusion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-expect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/no-cmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-cmp-branch2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512cdvl-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512vl-nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/test-shrink-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-04-VirtualLiveIn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/alldiv-divdi3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-zmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/selectiondag-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-combining.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-14-fast-isel-fs-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/setoeq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-11-01-ISelCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lea.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-25-X86-64-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/v4i32load-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-jumps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-flag-clobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-xsaves.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/optimize-max-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr18162.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-25-TwoAddrPassBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-delayed-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-03-01-InstrSchedBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-mem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hidden-vis-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-intrcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-23-RematImplicitSubreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/conditional-indecrement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/test-nofold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ldzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-jump-table.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/break-anti-dependencies.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-10-18-crash-dagco.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-vector-shl-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-10-10-FindModifiedNodeSlotBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp128-calling-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic_op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-intrinsics-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-03-09-Physreg-Coalescing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/overlap-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i2k.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-i386.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/xaluo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-01-08-SchedulerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-bugfix-26264.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zext-inreg-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-06-14-PreschedRegalias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/setuge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-07-SSEISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/merge-sp-update-lea.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-largecode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/compare-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inalloca-regparm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/negative-subscript.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/add32ri8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/objc-gc-module-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_ss_load_fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr15267.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i64-mem-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-01-loop-iv-used-outside-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/smul-with-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lfence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win32-eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-07-31-SingleRegClass.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-lzcnt-512.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i128-and-beyond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peep-test-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-64-xsaveopt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ptrtoint-constexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-setcc-int-to-fp-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-03-08-Sched-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-idiv-udiv-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-11-04-LiveVariablesBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/store-global-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/add-nsw-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-09-LinearScanBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-07-20-DAGCombineBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-16-nosseconversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/global-sections-tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constructor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-08-04-MingWCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_partial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_trunc_sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/StackColoring-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/store_op_load_fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/machine-trace-metrics-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-popcnt-512.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/phielim-split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/20090313-signext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/call-push.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-dce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-09-FastAllocRegisters.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-gctransition-call-lowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-09-APIntCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hoist-invariant-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_conv-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/implicit-null-check-negative.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/read-fp-no-frame-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/patchpoint-verifiable.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-03-05-ConstantFoldCFG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-lzcnt-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/push-cfi-debug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/darwin-bzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic_idempotent.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-pad-short-functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win-cleanuppad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/commute-blend-avx2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-11-12-CSRetCC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/merge_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-modifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bitcast-i256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr14161.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-12-MachineCSE.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/promote-i16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma-scalar-memfold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-vextractf128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-double-rounding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/machine-combiner.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-15-vshl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bmi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-arg-passing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cse-add-with-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-popcnt-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp128-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_cmp_sint-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-11-30-regpres-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vaargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catchret-regmask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/prologuedata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-09-30-CMOV-JumpTable-PHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-call-got.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-coalesce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sext-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/anyregcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3243.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-label.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-i128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr2326.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/isel-sink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/frameregister.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inconsistent_landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i386-setjmp-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vfcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2014-08-29-CompactUnwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_int_to_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catchpad-dynamic-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-16-dagcombine-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-mem-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-07-23-VSetCC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x87.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-10-19-SwitchUnnecessaryBranching.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-01-DbgValueCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-framelowering-trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/allrem-moddi3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vararg_no_start.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-11-13-VirtRegRewriterBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-05-27-CrossClassCoalescing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/float-asmprint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-interesting-step.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win_chkstk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-07-06-DbgCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/red-zone2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-inline-asm-validation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bwvl-vec-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-07-11-FPStackLoneUse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combiner-aa-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catchret-fallthrough.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-cc-merge-stack-adj.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/empty-struct-return-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scalar-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/phi-bit-propagation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-copy-gprs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-isa-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-03-20-LargeConstantExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/setcc-lowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-zextload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shl-anyext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr2182.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/uint_to_fp-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/brcond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-11-06-testb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pre-ra-sched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-sp-clobber-memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/function-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extractps.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-12-06-python27-miscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr14333.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-08-23-64Bit-maskmovq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma-commute-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-07-09-ELFSectionAttributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-11-03-F80VAARG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/const-base-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pseudo_cmov_lower1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-01-SpillerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/store_op_load_fold2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512vl-vec-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-identity.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-26-NoImplicitFPBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-select-cmov2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/split-eh-lpad-edges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memset-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/commute-fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mfence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512er-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-ret-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_udiv_to_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-01-16-InvalidDAGCombineXform.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-01-13-StackPtrIndex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-15-ImplicitDefBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-07-22-CombinerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/getelementptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-lea-sp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/red-zone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-26-WrongCheck.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-10-13-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/h-registers-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-avx2-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-12-16-InlineAsmCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-avx-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pmulld.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcallfp2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/local_stack_symbol_ordering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catchpad-regmask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3317.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_insert-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-02-27-Fpextend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-08-23-PerformSubCombine128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-insertelt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-06-16-SubregsBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_unsafe-fp-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win-catchpad-csrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-06-ConcatVectors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-safe-div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-08-06-inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i128-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-half-conversions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-v1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr10475.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-O0-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr20088.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-disable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-cross.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-int-avx1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-11-25-ImpDefBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lea-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/h-register-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_shuf-insert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/remat-mov-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/imul-lea.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shl_undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse2-vector-shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-02-dagcombine-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/commute-xop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/address-type-promotion-constantexpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/barrier-sse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dont-trunc-store-double-to-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/non-unique-sections.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/select_const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-11-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/partition-sections.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-28-matched-g-constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/immediate_merging.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr22103.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-01-07-ISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2013-01-09-DAGCombineBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fastcc-byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr18023.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/3addr-16bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/subreg-to-reg-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcallstack64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win-funclet-cfi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/implicit-null-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-12-26-extractelement-duplicate-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/musttail-indirect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-26-AsmDirectMemOp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/safestack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/setcc-narrowing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma-phi-213-to-231.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-xsaveopt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/or-lea.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-12-08-AVXISelBugs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ghc-cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-06-25-VecISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/TruncAssertZext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-cvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr11985.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-order-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_cast-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-11-03-x86-64-q-constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-trunc-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-04-sext-i64-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/xop-intrinsics-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2004-03-30-Select-Max.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/frameaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/darwin-no-dead-strip.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nosse-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_arith-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_shift5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-19-EarlyClobberBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_loadsingles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vortex-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-catch-all.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-07-FPConstSelect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr2849.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_uint_to_fp-fastmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fminnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-ptr-arg-simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pic_jumptable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-align2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/twoaddr-coalesce-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-04-13-SchedCmpJmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls-android.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-64bit-vec-binop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-align-memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-sort.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval-callee-cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-14-IllegalRegs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-12-SpillerUnfold1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-commute1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-03-02-InstrSchedBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-crit-edge-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/code_placement_ignore_succ_in_inner_loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/postalloc-coalescing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/liveness-local-regalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/warn-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/promote-assert-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fpcmp-soft-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-logic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-build-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/negative-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-19-LegelizeLoad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/commuted-blend-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-varargs-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ghc-cc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-01-05-ZExt-Shl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-18-inline-asm-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lea-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/musttail-thiscall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/SwizzleShuff.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-25-InlineAsmBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sibcall-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win_coreclr_chkstk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-vector-trunc-sitofp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-04-11-InlineAsmVectorResult.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stackmap-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/legalize-shl-vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-adx-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-08-04-MaskedSignedCompare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-upgrade-avx-vbroadcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-one.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-bitcasts-avx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcallpic3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/unwind-init.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-sse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-09-28-CGPBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-03-05-EFLAGS-Redef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fltused_function_pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/return-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-reg-type-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/unreachable-loop-sinking.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bigstructret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-intel-ocl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse2-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-conversions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-02-16-BranchFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x32-function_pointer-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-mismatched-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-08-17-UComiCodeGenBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-stack-realign2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/or-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-pmovxrm-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-returndup-void.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-10-14-LiveVariablesBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/object-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/limited-prec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr23273.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic_add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-vselect-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-25-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win_cst_pool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/codegen-prepare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dag-optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512vl-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hoist-common.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-11-17-UpdateTerminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/early-ifcvt-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sink-cheap-instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-fcopysign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-cmp-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/v8i1-masks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/licm-nested.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/empty-functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-10-02-BoolRetCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcallfp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rotate2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-bugfix-23634.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/regalloc-reconcile-broken-hints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ins_subreg_coalesce-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/twoaddr-lea.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/trunc-to-bool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/xtest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lower-vec-shuffle-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dynamic-alloca-lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-bitreverse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-big-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-12-11-TLSNoRedZone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/aliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sret-implicit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_minmax_uint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-03-DualUndef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/anyregcc-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/postra-licm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-fp2int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/compare-inf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-11-29-ULT-Sign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rdpmc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/swiftself.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-13-2AddrAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/selectiondag-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/eh-null-personality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/apm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp128-i128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sink-out-of-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-exception-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ragreedy-last-chance-recoloring.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extract-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr21099.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/prefixdata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-q-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/large-code-model-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-02-unnamedEH.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pmovext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-18-FastISel-VectorParams.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-04-AvoidEFLAGSCopy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-05-17-ShuffleISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/twoaddr-pass-sink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-pcmpeqd-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dwarf-comp-dir.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stride-nine-with-base-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr10524.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fastcall-correct-mangling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/basic-promote-integers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-01-10-UndefExceptionEdge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-11-07-LegalizeBuildVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-call-reg-indirect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse3-intrinsics-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/clz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr25828.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/jump_sign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-msvc-conventions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-05-19-SingleElementExtractElement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/alias-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_load-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-select-cmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-08-08-CastError.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-rotate-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rdrand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/haddsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-fixup-lea2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/this-return-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/soft-sitofp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mem-promote-integers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-05-sitofpCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/membarrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/attribute-sections.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2004-06-10-StackifierCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr26835.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/newline-and-quote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-static-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/legalize-shift-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/legalize-sub-zero-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-B.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-intel-ocl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-07-02-asm-alignstack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_cast-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/merge-consecutive-loads-512.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse41-intrinsics-x86-upgrade.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/regalloc-spill-at-ehpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vselect-minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-call-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/invalid-shift-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/prefetch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/token_landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-21-widen-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coff-comdat3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win64_alloca_dynalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/elf-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-ashr-512.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-03-Win64DisableRedZone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/base-pointer-and-cmpxchg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-15-BuildVectorPromote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-19-widen_vselect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/optimize-max-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-10-12-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-modifier-q.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/phys_subreg_coalesce-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constant-pool-sharing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma-intrinsics-phi-213-to-231.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-commute5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vectorcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catchpad-lifetime.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse42-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fltused.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-12-8-bitcastintprom.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dagcombine-buildvector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/haddsub-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sunkaddr-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-07-10-InlineAsmAConstraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-12-CoalescerBug-Impdef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-h.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extract-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/gather-addresses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512vl-mov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zext-inreg-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-07-20-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-27-LiveIntervalsAssert2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-16-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-double-half-convertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/merge-consecutive-loads-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2003-11-03-GlobalBool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-07-12-InlineAsmQConstraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/adx-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-load-unops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bwvl-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-double-shifts-Oz-Os-O2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-01-18-vbitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fastmath-float-half-conversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/unused_stackslots.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-13-PHIElimBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-10-19-EmergencySpill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-shuffle-x86_32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-ashr-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loc-remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stackmap-liveness.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/phaddsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-17-inline-asm-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-09-BranchFolding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ctpop-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmpxchg16b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peep-test-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-18-ConstantExprCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-02-23-UnfoldBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/haddsub-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-06-LoadFoldingBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sink-blockfreq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-15-not-a-tail-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-invalid-register-class-crasher.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_shuffle-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/split-vector-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sibcall-byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constant-combines.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr10499.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-09-16-asmcrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x32-va_start.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-12-06-AVXVectorExtractCombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i1narrowfail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-27-DeadSlotElimBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-11-13-inlineasm-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-03-15-build_vector_wl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/use-add-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dynamic-alloca-in-entry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-03-CoalescerSubRegClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-27-PEICrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_conv-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec-loadsingles-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3250.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/9601.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-combining-xop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr2656.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tlv-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stores-merging.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_logical.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i386-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/opt-ext-uses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-shortint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-dup-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/named-reg-alloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp128-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-lds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-win64-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-25-CommuteBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coal-sections.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmp-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/SwitchLowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mod128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/equiv_with_vardef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-05-burr-list-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/isel-optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-04-04-CrossBlockCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-128-v16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/non-lazy-bind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_round.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr24374.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-05-01-InvalidOrdCompare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/function-subtarget-features.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bw-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-16-ReMatBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-23-DIV8rDefinesAX.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512ifma-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-intrinsics-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-10-08-cmpxchg8b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-extract-subvector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-pcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/chain_order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ragreedy-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2013-03-13-VEX-DestReg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-05-30-ISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/br-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coff-feat00.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/insertelement-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr26757.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-09-22-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmpxchg-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bitcast-int-to-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-mask-bugfix.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/frame-base.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_uint_to_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-11-04-SubregCoalescingBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-09-SpillerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/virtual-registers-cleared-in-machine-functions-liveins.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-win64-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bool-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win32-seh-catchpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/visibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/insertps-from-constantpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp128-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-07-07-SplitICmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-64-xsaves.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-05-ISelCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-08-12-badswitch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-09-01-RemoveCopyByCommutingDef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extmul128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-fma-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ga-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/adde-carry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-stackmap-format.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-07-15-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memset-sse-stack-realignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-10-02-DAGCycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/copy-propagation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avoid-loop-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-gv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/popcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-x-scalar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr1489.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512ifmavl-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-dce2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-shl-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bwvl-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-24-InlineAsmMultiRegConstraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memset-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/targetLoweringGeneric.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-19-RegAllocBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-06-12-FastAllocSpill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/musttail-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse3-avx-addsub-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-stack-and-frame-ptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i256-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-F.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-tzcnt-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512cd-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/norex-subreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcallbyval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-09-05-InvalidAsm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-26-FrameAddrBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/isint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/push-cfi-obj.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/machine-combiner-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma_patterns_wide.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse42.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-bitcasts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stackmap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-win64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/weak_def_can_be_hidden.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-06-LocalInlineAsmClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peephole-fold-movsd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/emutls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/load-slice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/branchfolding-landingpads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/return_zeroext_i2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-fptrunc-fpext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-04-SchedulerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-29-ExpandVAARG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2014-05-29-factorial.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-vector-sext-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shuffle-combine-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr9127.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/movtopush.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dllimport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sibcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-vbroadcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-08-23-SubRegReuseUndo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2004-02-13-FrameReturnAddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mul128_sext_loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-vbroadcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-cc-pass-in-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/movfs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-pointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-08-13-AppendingLinkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/umul-with-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-vector-sext-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sincos-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-11-16-MachineLICM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-11-07-MulBy4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/insertelement-legalize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/private-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/soft-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bw-mov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/subreg-to-reg-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/emutls-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-23-DarwinAsmComments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-08-06-CmpStride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i386-tlscall-fastregalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vararg-callee-cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-08-16-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-multiplies.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/divide-by-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/unknown-location.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peep-test-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse41-intrinsics-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x32-lea-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-11-02-DbgParameter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-04-24-VectorCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift_split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-codegen.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/darwin-quote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fmul-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-07-07-DanglingDeadInsts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win-mixed-ehpersonality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-12-1-merge-multiple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scalar-fp-to-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/compare_folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/isnan2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-24-InlineAsmVectorOp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-07-03-GR64ToVR64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_sdiv_to_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-31-SpillerFoldingBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/slow-div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse2-intrinsics-x86-upgrade.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/iabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_cast-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_floor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr18014.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/darwin-tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse4a-intrinsics-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-06-13-VolatileLoadStore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-retcopy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_arith-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-11-06-InstrSched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_shift4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/setcc-sentinals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-11-30-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-08-06-RewriterBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vastart-defs-eflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-11-04-rip-immediate-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scalarize-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-merge-store-fp-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_extract-mmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-12-FastIselOverflowCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i128-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/twoaddr-coalesce-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-splat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmpxchg-i128-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-23-dagcombine-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/swizzle-avx2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-calleesave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-15-GEP-Idx-Sink.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-17-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bigstructret2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-07-20-InlineAsm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-idiv-sdiv-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/machine-copy-prop.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sha.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-static-relo-movl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-only.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-01-12-extract-sv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sink-hoist.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-vperm2x128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constant-hoisting-optnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-trunc-kill-subreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-05-08-InlineAsmIOffset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-06-06-fgetsign80bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/materialize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_zero_cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-15-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/movbe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sibcall-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma_patterns.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/debugloc-argsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-reject-reg-type-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-multiret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-duplicated-constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-15-broadcastfold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcallpic2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-catch-all-win32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr2982.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rdseed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-01-19-OptExtBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/alloca-align-rounding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-ri64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rot32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/xmm-r64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/or-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/volatile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-05-14-LiveIntervalAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-25-DotDebugLoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-mask-spills.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-15-FastAllocEarlyCLobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512vbmi-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/palignr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sjlj-baseptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-dead-stack-adjust.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-stackalign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-3dnow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/splat-for-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-04-27-InlineAsm-IntMemInput.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/divrem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr17546.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-elim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stackmap-frame-setup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-sext-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/handle-move.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-logic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-bypass-slow-division.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extract-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bw-vec-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ms-inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/aes_intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-probe-size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-09-13-dagco-fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx1-logical-load-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pop-stack-cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extmul64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-idiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-bail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ispositive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peephole-multiple-folds.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-11.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-default-only.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr2177.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-sse12-fptoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-25-asm-RA-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bss_pagealigned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-disp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-vector-shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sibcall-win64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-02-19-LiveIntervalAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/segmented-stacks-dynamic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/large-gep-chain.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-04-08-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rounding-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-04-30-LocalAlloc-LandingPad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-quadratic-expand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sext-ret-val.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/masked-iv-safe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/h-registers-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-03-26-PostRALICMBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/machine-combiner-int-vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_insert-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-01-24-DbgValue-Before-Use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-minmax-i6432.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rot16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bswap-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-12-ThreadLocalAlias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/equiv_with_fndef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/discontiguous-loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rem_crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/gcc_except_table_functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cvt16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-bmi2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-03-04-Mul8Bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-sse1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmov-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-dagsched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-protector-vreg-to-vreg-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-03-17-ISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hipe-prologue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-select-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-ret0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-call-lowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-02-14-scalar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512vbmivl-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-26-Asm-Optimize-Imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bc-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-global-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pmovsx-inreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tbm-intrinsics-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-16-UIntToFP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-repmov-copy-eflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/v2f32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rd-mod-wr-eflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-pcmpeqd-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-11-NonTemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr10523.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-load-vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dllexport.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-catchpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/subreg-to-reg-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-16-fp2ui-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-inc-dec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/and-encoding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-vector-bv-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catchpad-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/float-conv-elim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-call-oper.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_load-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-bt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/wide-integer-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-vbroadcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/MergeConsecutiveStores.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-idiv-udiv-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lea-recursion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-fixup-lea1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-07-29-SetccSimplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-tls-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x32-landingpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/preserve_mostcc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/licm-dominance.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-vex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stdarg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-04-24-Huge-Stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/codegen-prepare-cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-128-v2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-movsbl-indexreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/expand-opaque-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/packed_struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-lshr-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-ilp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec-trunc-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-A.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-11-18-SelectOfExtload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-call-reg-indirect-foldedreload32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-02-InstrSched2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_cast-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_extract-sse4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/insertps-unfold-load-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zero-remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-01-16-FPStackifierAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-07-ldconvert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-call-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-25-CoalescerSubRegDefDead.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-25-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/neg_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_arith-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coff-comdat2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-07-10-StackerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/negative-stride-fptosi-user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dag-fmf-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-04-29-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr11334.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/optimize-max-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/neg-shl-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-05-23-available_externally.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/global-fill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/phys_subreg_coalesce-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-stackcheck.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/code_placement_cold_loop_blocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-03-02-DAGCombiner.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-commute4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-18-TailMergingBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-fastisel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pic-load-remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scheduler-backtracking.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/variable-sized-darwin-bzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/testl-commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sfence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-26-MachineLICMBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-27-tstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-23-DAGCombineBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/isnan.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-agg-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scalar-int-to-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-22-dagcombine-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/break-false-dep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-error.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-10-DAGCombinerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512vl-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-256-v8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-brcond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lea-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-26-FP_TO_INT-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mul64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/late-address-taken.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-19-SpillerUnfold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-01-11-split-cv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_ins_extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-filter-no-personality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls-models.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/Atomics-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr26870.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-12-FastAllocKills.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr12889.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rodata-relocs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-12-CPAlignBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/change-compare-stride-trickiness-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-args-fail2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/alignment-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-domains.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_fpext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr18054.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse_reload_fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mul128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sar_fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-12-01-EarlyClobberBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/negative-sin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-08-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-sse41-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-06-04-X86-64-CtorAsmBugs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/code_placement_align_all.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/setjmp-spills.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/eh-label.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-logic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/push-cfi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-vinsertf128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/global-sections-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_conv-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-mmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic6432.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/leaf-fp-elim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-10-extload64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-05-11-tailmerge-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rtm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tlv-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-constpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extractelement-legalization-store-ordering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-01-08-Atomic64Bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/commute-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-18-movlp-shuffle-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-09-19-earlyclobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_compare-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rrlist-livereg-corrutpion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-ret-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-11-SpillDead.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-03-30-CreateFixedObjCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win64_eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-flags-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-03-BTHang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cleanuppad-inalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr1505.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2004-02-14-InefficientStackPointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win64_call_epi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/and-load-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-23-i80-fp80.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-23-LinearScanBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-29-ReMatBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-17-vtrunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr16031.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-12-19-IntelSyntax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_fp_to_int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memset-nonzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-04-09-TwoAddrPassBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mult-alt-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/trunc-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/global-sections.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/maskmovdqu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-02-21-VirtRegRewriter-KillSubReg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/alloca-align-rounding-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-call-bool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dwarf-eh-prepare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/null-streamer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3241.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/named-reg-notareg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/aligned-comm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rip-rel-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/divrem8_ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-12-SpillerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-07-09-ExtractBoolFromVector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/code_placement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/store-narrow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/slow-unaligned-mem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/imul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_insert-9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-31-extractelement-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-reuse-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/3addr-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ps4-noreturn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/simple-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shrink-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-14-SpillerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-10-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr14098.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-negative-stride.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-20-21-zext-ui2fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-02-12-dagco.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extractelement-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-16-InlineAsm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-31-BigShift3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dag-merge-fast-accesses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-06-03-x87chain.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-29-IndirectDestOperands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-cc-callee-pops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-11-17-IllegalMove.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-variable-idx2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-05-28-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-select-cmp-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mature-mc-support.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mul-shift-reassoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/eh-nolandingpads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rot64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-29-VolatileBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/masked_gather_scatter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/wineh-no-ehpads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-i1test.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift_split2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic_mi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/critical-anti-dep-breaker.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sjlj.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vselect-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr9743.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-matrix.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-interrupt_vzeroupper.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr17631.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-O0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp2sint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-edge-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/opt-shuff-tstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/andimm8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memcpy-from-string.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coff-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misaligned-memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-29-ExtendSetCC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/regpressure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse_partial_update.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse3-avx-addsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/wide-fma-contraction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/code_placement_outline_optional_branches.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/urem-i8-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rdtsc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-02-25-FastCCStack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-64-xsave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nonconst-static-ev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-01-TaillCallCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse41.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shrink-fp-const2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win64_vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bitcast2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/addr-label-difference.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse3-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/narrow-shl-cst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-combine-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-26-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hidden-vis-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shl_elim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/darwin-stub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_reassociate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-05-09-ShuffleLoweringBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bit-piece-comment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-10-16-Scope.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-03-07-APIntBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-zext-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stackpointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/deopt-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/3dnow-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-vec-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalesce_commute_subreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-cvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ident-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-24-FlippedCompare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-in-intregs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-ms_abi-vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-fold-mem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shl-i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr21792.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-06-01-fildll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmpxchg-clobber-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-27-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cleanuppad-realign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/buildvec-insertvec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win64_sibcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/masked_memop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fdiv-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-08-InstrSched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win-catchpad-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-01-18-DbgValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cvtv2f32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/subreg-to-reg-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-01-SpillerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bool-simplify.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr23664.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mul-legalize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nancvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pseudo_cmov_lower.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-04-08-InlineAsmCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-12-16-BURRSchedCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-08-04-StackVariable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-08-29-BlockConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-05-05-Personality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-avoid-unnecessary-pic-base.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peep-test-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-only.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/localescape.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lower-vec-shift-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-upgrade-avx2-vbroadcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-08-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-25-NoSSE.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-tied-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/commute-blend-sse41.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr13577.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lzcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcallbyval64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/patchpoint-webkit_jscc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalesce-esp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-23-crazy-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/insertelement-copytoregs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-blocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ssp-data-layout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/large-global.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_arith-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_shift3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win32-eh-states.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-and-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/wide-integer-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr2659.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/live-out-reg-info.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mingw-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-opts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/uint64-to-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/variadic-node-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-call-reg-indirect-foldedreload64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win32-spill-xmm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-11-27-SelectLegalize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-04-06-SSEDomainFixCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-12-15-vec_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/musttail.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dynamic-allocas-VLAs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/uint_to_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dyn-stackalloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-05-19-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/h-register-addressing-32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/MachineSink-CritEdge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/MachineSink-DbgValue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_ext_inreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-psub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_minmax_sint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-04-13-AnalyzeBranchCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/xor-icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_compare-sse4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-vecload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/legalizedag_vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sibcall-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/add-of-carry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-load-store-wide.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/illegal-insert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-branch_weights.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr23603.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr26625.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/licm-symbol.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vararg_tailcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/long-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-01-09-LongDoubleSin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-stack-realign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/saddo-redundant-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcallpic1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mult-alt-generic-i686.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cache-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-11-04-LiveIntervalCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mcinst-lowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-05-26-UnreachableBlockElim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/twoaddr-sink-terminator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr19049.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2005-01-17-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/compiler_used.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-09-ivs-different-sizes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-mrv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/complex-fca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-xmm-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp_constant_op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-07-19-AsmExtraOperands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-09-16-EmptyFilename.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-28-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sqrt-fastmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/system-intrinsics-xsavec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nosse-error2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-12-18-LoadCSEBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-lzcnt-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-pair.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-06-x87ld-nan-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/anyext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hipe-cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/seh-safe-div-win32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_zero-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zext-shl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr24602.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peep-setb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/machine-sink-and-implicit-null-checks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stdcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-12-12-DAGCombineCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-512-v32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-05-sinttofp-2xi32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zext-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-11-CoalescerBug2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-popcnt-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lower-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/isel-sink3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-08-10-SignExtSubreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512vl-logic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-01-29-InlineAsm-ir.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-05-15-maskmovq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fastcc3struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/h-registers-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/call-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/elf-comdat2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-07-19-movups-spills.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-i256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-push.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_insert-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/narrow_op-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/eh_frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/remat-fold-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp_load_fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr12312.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/setcc-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-09-10-LoadFoldingBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mcu-abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-27-NullStrings.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-32-vector-calling-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-05-09-PHIElimBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/expand-vr64-gr64-copy.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/utf8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-05-21-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/licm-regpressure.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shift-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fsgsbase.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/copysign-constant-magnitude.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/codegen-prepare-addrmode-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-store-gv-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-nonaffine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fastcc-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-unaligned-mem-feature.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/xmulo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-fp-avx1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rip-rel-lea.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inalloca-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-12-02-dagcombine-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/clobber-fi0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-bugfix-25270.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constant-hoisting-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-28-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr5145.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-09-16-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/negate-add-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-07-02-UnfoldBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sext-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constant-hoisting-shift-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-08-06-branchfolder-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mulx32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fadd-combines.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-12-28-vselecti8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coldcc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nobt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vmovq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-06-29-DAGCombinerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/div8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-call-legality.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-512-v16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fmaxnum.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-28-CyclicSchedUnit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/huge-stack-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extended-fma-contraction.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-07-13-indirectXconstraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/commute-clmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scalar-min-max-fill-operand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/MachineSink-PHIUse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-22-LocalRegAllocBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-stack-ret-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/label-redefinition.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nonconst-static-iv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_extract-avx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/computeKnownBits_urem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/personality_size.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catchpad-realign-savexmm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dbg-changes-codegen.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-12-picrel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-02-InstrSched1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_cast-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/unaligned-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bw-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i128-sdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-10-25-RewriterBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr13859.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/code_placement_loop_rotation2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr1505b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_arith-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-loop-exit-cond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atomic-non-integer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_shift7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-16-SchedulerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/umul-with-carry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-call-casts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-04-19-sclr-bb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse4a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-07-16-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-03-18-LiveIntervalAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tailcall-structret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr11468.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dagcombine-shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/branchfolding-catchpads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls-addr-non-leaf-function.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalescer-commute3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lzcnt-tzcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-24.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-stack-usage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-load-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-01-08-InstrSched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2003-08-23-DeadBlockTest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mul-remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/preserve_allcc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mult-alt-generic-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/recip-fastmath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-11-28-merge-store-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sext-setcc-self.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-intrinsics-x86-upgrade.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-07-23-select_cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/force-align-stack-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-02-14-BitMiscompile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extractelement-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-01-LargeMask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-call-attrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cleanuppad-large-codemodel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/log2_not_readnone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-x32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-01-15-SelectionDAGCycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lea-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mem-intrin-base-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-sret-return-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-06-28-X86-64-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stdcall-notailcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-09-25-sseregparm-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/unaligned-spill-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-08-14-Win64MemoryIndirectArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sibcall-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/phys_subreg_coalesce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-12-CoalesceExtSubReg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/gs-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/movpc32-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-shl-512.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-13-2AddrAssert-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-08-17-legalizer-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/logical-load-fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-03-25-TestBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/change-compare-stride-trickiness-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-vector-shuffle-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr11415.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-11-CallCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/store-zero-and-minus-one.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vsplit-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp_load_cast_fold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_cmp_uint-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/complex-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-mixed-alignment-dagcombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x32-function_pointer-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/full-lsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-gather-scatter-intrin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-win64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-05-12-tailmerge-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-11-09-MOVLPS.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/utf16-cfstrings.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-scalar-fp-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-allocas.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-tzcnt-512.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr14204.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr26350.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/osx-private-labels.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-07-06-TwoAddrAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/widen_conv-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hidden-vis.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-12-DebugInfoVLA.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tlv-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr20020.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2005-05-08-FPStackifierPHI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shift-shl-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/copy-eflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pointer-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/version_directive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2013-10-14-FastISel-incorrect-vreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-09-10-SpillComments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/crash-nosse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/phi-immediate-factoring.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sandybridge-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-08-31-EH_RETURN32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-emutls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win64_nonvol.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-07-18-Vector-Extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-tzcnt-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fixup-bw-inst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bswap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-12-14-v8fp80-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-stack-realign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr10068.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/twoaddr-coalesce.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr27071.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/rotate4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-12-19-NoImplicitFloat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/scalar_sse_minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse41-pmovxrm-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-11-22-AVX2-Domains.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-load-binops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-11-codegenprepare-reuse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-select-sse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-24-g-constraint-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-07-15-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/store-empty-member.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/insertps-O0-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ins_subreg_coalesce-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/block-placement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-13-DoubleUpdate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_insert-8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-dup-catchret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/legalize-fmp-oeq-vector-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/h-register-addressing-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coff-comdat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/init-priority.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-10-16-VecUnaryOp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inalloca-ctor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ret-mmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-scalar-fp-arith-unary.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pshufd-combine-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr2924.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/emutls_generic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-coalescing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-31-BigShift2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/i128-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-call-parameter-attrs-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr22019.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fcmove.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/convert-2-addr-3-addr-inc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-double-precision-shift-left.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-immediate-shorten.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-pic-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr13458.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-01-31-BigShift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-indirect-mem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-05-VariableIndexInsert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x32-indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/segmented-stacks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pshufb-mask-comments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shrinkwrap-hang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cxx_tlscc64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-sret-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/MachineBranchProb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr12360.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/nocx16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/merge-store-partially-alias-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr10526.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-1-10-buildvector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-05-26-DotDebugLoc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512bw-mask-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/store-fp-constant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win32-seh-nested-finally.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/opaque-constant-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512dqvl-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/patchpoint-invoke.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/frem-msvc32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3457.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/wineh-exceptionpointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sext-subreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/epilogue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cpus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-fixup-lea4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2004-04-13-FPCMOV-Crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inlineasm-sched-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-intel-ocl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extractelement-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack_guard_remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cfstring.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/misched-aa-colored.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-28-FastAllocTiedOperand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-fpstack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/remat-scalar-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/compact-unwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dollar-name.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/DbgValueOtherTargets.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-combining-ssse3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-out-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hidden-vis-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-call-win64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/slow-incdec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sdiv-exact.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/neg_cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-16-CoalescerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_set-D.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-protector-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/exception-label.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-cmp-branch3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hhvm-cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-08-07-CmpISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-float-half-convertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-02-RewriterBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/multiple-loop-post-inc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-01-13-OptExtBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vbinop-simplify-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-shuf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avoid_complex_am.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/shrink-fp-const1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr11202.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx2-vperm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/code_placement_loop_rotation.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-05-01-SchedCausingSpills.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/combine-avx2-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/extract-concat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win64_frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/optimize-max-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-sched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-mov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/force-align-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/insert-positions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/hidden-vis-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3216.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tail-merge-wineh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/masked-iv-unsafe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mmx-fold-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-insert-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vselect-avx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-01-10-DagCombineHang.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-idiv-sdiv-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vshift-6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fold-mul-lohi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cstring.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fma-intrinsics-x86.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2012-04-26-sdglue.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr14314.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr13209.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2008-04-24-MemCpyBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/atom-lea-addw-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/reghinting.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/dagcombine-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/ptr-rotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-redundant-addressing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/exedepsfix-broadcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inalloca-stdcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/merge-consecutive-stores-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/patchpoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zext-extract_subreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-load-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mcinst-avx-lowering.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/subreg-to-reg-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp128-libcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-normalization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/remat-phys-dead.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_ctbits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-xop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win32-pic-jumptable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/codegen-prepare-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/peep-test-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-02-04-OrAddrMode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-rotate-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-09-18-sse2cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/visibility2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/win64_params.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/private.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bitreverse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-divrem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-11-18-TwoAddrKill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-06-01-DeadArg-DbgInfo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/switch-or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-04-21-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/inline-asm-tied.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-05-23-dagcombine-shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-64-arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/and-su.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-06-12-x86_64-tail-call-conv-out-of-sync-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/bitcast-mmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fp-elim-and-no-fp-elim.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_setcc-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr13899.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-07-06-asm-RIP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/mulx64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fast-isel-x86-64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-commute.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/cmov-into-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-04-29-RegAllocAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/tls-pie.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/promote-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/multiple-return-values-cross-block.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2009-02-03-AnalyzedTwice.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2006-09-01-CycleInDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr18846.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-forward.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vec_shift2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/loop-strength-reduce4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2010-02-23-SingleDefPhiJoin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/imul-lea-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/lsr-wrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/half.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/crash-O0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2011-10-11-srl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/zext-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/4char-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/early-ifcvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86_64-mul-by-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vector-compare-results.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/fpstack-debuginstr-kill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-09-06-ExtWeakAliasee.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/statepoint-uniqueing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2004-10-08-SelectSetCCFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2005-02-14-IllegalAssembler.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3154.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pku.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/2007-10-28-inlineasm-q-modifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/vselect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/catchret-empty-fallthrough.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/asm-modifier-P.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/all-ones-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/stack-folding-int-sse42.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/constant-hoisting-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx-unpack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sse-align-5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/commute-two-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-shrink-wrap-unwind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/merge-consecutive-loads-256.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sincos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr3244.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/pr1462.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/avx512-calling-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/byval3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/x86-flags-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/StackColoring.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/sub-with-overflow.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/X86/coalesce-implicitdef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-05-19-DoubleSplit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst16rr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-10-10-OrImpDef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst8mi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/DbgValueOtherTargets.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/mult-alt-generic-msp430.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst8mm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst8ri.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2010-05-01-CombinerAnd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-05-17-Rot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst8rm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-11-05-8BitLibcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/indirectbr2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/asm-clobbers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-05-10-CyclicDAG.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst16mi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-05-17-Shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-12-21-FrameAddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst16mm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/postinc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst16ri.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/AddrMode-bis-xr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/AddrMode-bis-rx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst16rm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-11-20-NewNode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/transient-stack-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-08-25-DynamicStackAlloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-11-08-InvalidResNo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/memset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/cc_ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/misched-msp430.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/cc_args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst8mr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/AddrMode-mov-xr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/AddrMode-mov-rx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/spill-to-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-12-22-InlineAsm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst8rr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/2009-09-18-AbsoluteAddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/Inst16mr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MSP430/jumptable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM/expected-closing-brace.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM/ARMLoadStoreDBG.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM/extraneous-closing-brace-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM/sched-it-debug-nodes.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM/cfi-same-value.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM/bundled-instructions.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/ARM/nested-instruction-bundle-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/NVPTX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/NVPTX/floating-point-immediate-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/NVPTX/expected-floating-point-literal.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/NVPTX/floating-point-invalid-type-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/NVPTX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/PowerPC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/PowerPC/unordered-implicit-registers.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/PowerPC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/constant-pool.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unknown-metadata-node.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-from-in-memory-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-ir-block-in-blockaddress.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/missing-comma.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/jump-table-redefinition-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-subregister-after-colon.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/null-register-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/frame-info-stack-references.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/cfi-def-cfa-register.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-virtual-register.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/cfi-def-cfa-offset.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/fixed-stack-object-redefinition-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/early-clobber-register-flag.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/virtual-register-redefinition-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/frame-setup-instruction-flag.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/memory-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/machine-basic-block-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/metadata-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-machine-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/large-size-in-memory-operand-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-tied-def-after-lparen.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/missing-closing-quote.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-basic-block-at-start-of-body.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-different-implicit-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-positive-alignment-after-align.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/generic-virtual-registers.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-number-after-bb.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/subregister-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unknown-machine-basic-block.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-global-value.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/callee-saved-info.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unknown-instruction.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/generic-instr-type-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/invalid-constant-pool-item.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/simple-register-allocation-hints.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-newline-at-end-of-list.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/stack-object-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/newline-handling.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-align-in-memory-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unknown-named-machine-basic-block.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/tied-def-operand-invalid.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/killed-register-flag.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/external-symbol-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/standalone-register-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/spill-slot-fixed-stack-object-aliased.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-different-implicit-register-flag.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/variable-sized-stack-object-size-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-named-register-in-callee-saved-register.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-metadata-node-after-exclaim.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/spill-slot-fixed-stack-object-immutable.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/cfi-offset.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-comma-after-memory-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/register-mask-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unrecognized-character.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/jump-table-info.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-metadata-node-after-debug-location.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/virtual-registers.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/instructions-debug-location.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/invalid-tied-def-index-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/liveout-register-mask.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-named-register-in-functions-livein.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/large-immediate-operand-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/successor-basic-blocks.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/def-register-already-tied-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-integer-after-tied-def.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/stack-object-redefinition-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-ir-block-slot-in-blockaddress.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/dead-register-flag.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-block-reference-in-blockaddress.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/spill-slot-fixed-stack-objects.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/constant-value-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/stack-objects.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-named-register-in-allocation-hint.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/implicit-register-flag.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-alignment-after-align-in-memory-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-fixed-stack-object.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-register-after-cfi-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/immediate-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/missing-implicit-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-stack-object.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-value-in-memory-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-register-after-flags.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/large-index-number-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-function-reference-after-blockaddress.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/register-operands-target-flag-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unknown-register.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/basic-block-not-at-start-of-line-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/block-address-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/named-registers.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/duplicate-register-flag-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unknown-subregister-index.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/inline-asm-registers.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-virtual-register-in-functions-livein.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/invalid-metadata-node-type.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/machine-instructions.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-size-integer-after-memory-operation.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-stack-object.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-value-in-memory-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-integer-after-offset-sign.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/machine-verifier.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/fixed-stack-memory-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undef-register-flag.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/large-offset-number-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/function-liveins.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/invalid-target-flag-name.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unknown-metadata-keyword.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/constant-pool-item-redefinition-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/stack-object-operand-name-mismatch-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-offset-after-cfi-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/subregister-index-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/duplicate-memory-operand-flag.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/used-physical-register-info.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/stack-object-debug-info.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-jump-table-id.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/fixed-stack-objects.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/variable-sized-stack-objects.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-global-value-after-blockaddress.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/frame-info-save-restore-points.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-target-flag-name.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/successor-basic-blocks-weights.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-comma-after-cfi-register.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/stack-object-invalid-name.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/unknown-subregister-index-op.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-metadata-node-in-stack-object.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/basic-block-liveins.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/global-value-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-register-class.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-load-or-store-in-memory-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-named-register-livein.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-pointer-value-in-memory-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/large-cfi-offset-number-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/undefined-named-global-value.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/X86/expected-integer-in-successor-weight.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64/multiple-lhs-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64/expected-target-flag-name.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64/invalid-target-flag-name.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64/target-flags.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64/cfi-def-cfa.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64/stack-object-local-offset.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AArch64/machine-dead-copy.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Mips/expected-global-value-or-symbol-after-call-entry.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Mips/memory-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Mips/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-basic-block-unknown-name.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-function.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/llvm-ir-error-reported.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-function-redefinition-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/basic-blocks.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/llvmIRMissing.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/llvmIR.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/invalid-jump-table-kind.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-basic-block-ir-block-reference.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-basic-block-undefined-ir-block.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-function-missing-name.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/register-info.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/expected-colon-after-basic-block.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-basic-block-redefinition-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-function-missing-body-error.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/function-missing-machine-function.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-function-missing-function.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/frame-info.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/expected-mbb-reference-for-successor-mbb.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AMDGPU
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AMDGPU/expected-target-index-name.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AMDGPU/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AMDGPU/target-index-operands.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/AMDGPU/invalid-target-index-operand.mir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fminv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ldp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fpimm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-global-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-regress-interphase-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-umov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-swizzle-tbl-i16-layout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ldp-aa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/ldst-regoffset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/movw-consts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fixed-point-scalar-cvt-dagcombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/inline-asm-globaladdress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-inline-asm-zero-reg-error.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/lower-range-metadata-func-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tailcall_misched_graph.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/PBQP.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vsetcc_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-inline-asm-error-M.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ld1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/memcpy-f128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/free-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-indexed-vector-ldst-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-shrink-wrapping.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/a57-csel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-AdvSIMD-Scalar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fastisel-gep-promote-before-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/ldst-unsignedimm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ldp-cluster.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vqadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/movw-shift-encoding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vector-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-subsections.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-smax-constantfold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-stackmap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/special-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/remat-float0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-memset-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-neon-v1i1-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/GlobalISel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/cmpxchg-idioms.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-aapcs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-bcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/addsub_ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/complex-fp-to-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-subvector-extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/ifcvt-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-copy-tuple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/machine-sink-kill-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-abi_align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-mov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-gep-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/asm-large-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/cxx-tlscc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-arith-saturating.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-v8.1a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2011-03-17-AsmPrinterCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-named-reg-notareg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-big-endian-vector-caller.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-stur.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-big-endian-bitconverts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp16-v16-instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-merge-group-by-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-simd-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/argument-blocks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/literal_pools_float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-stp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fcvt_combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/flags-multiuse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/dont-take-over-the-world.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-inline-asm-error-N.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/emutls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-builtins-linux.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/sdivpow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vhsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-a57-fp-load-balancing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/dp1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-elf-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fcvt-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/cmpwithshort.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-st1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/jump-table.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/sincos-expansion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-truncStore-extLoad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/vector_merge_dep_check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-misched-basic-A53.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp16-vector-nvcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-call-tailcalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-loop-gep-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/dag-combine-invaraints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vshift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/regress-tail-livereg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-dagcombiner-convergence.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-variadic-aapcs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/f16-instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tail-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-uzp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/machine-copy-remove.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tbi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-across.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-2014-12-02-combine-soften.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/combine-comparisons-by-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vaddv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/machine_cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-mla-mls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fcopysign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/trunc-v1i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-dagcombiner-load-slicing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vsqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-runtime-libcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ccmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-trunc-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2012-01-11-ComparisonDAGCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tailcall-explicit-sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-br.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/rm_redundant_cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/regress-w29-reserved-with-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-cvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/dp2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/PBQP-csr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-gv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vselect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-stackpointer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch-multipart.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/nontemporal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/postra-mi-sched.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vminmaxnm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2011-10-18-LdStOptBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-wide-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/i128-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-nvcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-build-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/cmp-const-max.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-fix-cortex-a53-835769.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/large_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ldur.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/concat_vector-truncated-scalar-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/analyze-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-arith.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-complex-copy-noneon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-return-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp-cond-sel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tailcall-implicit-sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-stp-aa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/init-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/inline-asm-constraints-badK2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp16-vector-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-uminv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-umaxv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-or-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2013-01-23-sext-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-clrsb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcvtxd_f32_f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fcvt-fixed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-andCmpBrToTBZ.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/addsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-volatile.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/legalize-bug-bogus-cpu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vecFold.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-jumptable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fastcc-tailcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-2velem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-basic-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fpconv-vector-op-scalarize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/ghc-cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fdiv_combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/concat_vector-truncate-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/mul-lohi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fp128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/inlineasm-ldr-pseudo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2013-02-12-shufv8i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/rotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-shifted-sext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-stack-no-frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/blockaddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-conversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/madd-combiner.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-aapcs-be.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-coalesce-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/i128-fast-isel-fallback.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vaargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-csel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vhadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/directcond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-elf-globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-collect-loh-garbage-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/bitfield-insert-0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-address-extends.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/128bit_load_store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/hints.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vecCmpBr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-popcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/funcptr_cast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-int-ext2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-register-pairing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-simd-ldst-one.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-addv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-3vdiff.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-AnInfiniteLoopInDAGCombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp16-vector-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/concat_vector-scalar-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/nzcv-save.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/assertion-rc-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-xaluo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-regress-f128csel-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-unaligned_ldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fp-contract-zero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-tbz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-merge-ignore-single-use.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-big-endian-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp-dp3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/br-to-eh-lpad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-memcpy-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/regress-bitcast-formals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/preserve_mostcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-minmaxv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/bitreverse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-cmp-vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-scaled_iv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-anyregcc-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/complex-int-to-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-deferred-spilling.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/implicit-sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/divrem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/nest-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vector-insertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-cse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/vector-fcopysign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/stack-guard-remat-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-compare-instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp128-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-smull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-address-type-promotion-assertion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-patchpoint-webkit_jscc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-sincos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/addsub-shifted.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/func-calls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-dynamic-stack-layout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vector-ldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/madd-lohi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcvt_su32_f32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-int-ext3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/eliminate-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-movi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/setcc-takes-i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-v1i1-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-crc32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/pic-eh-stubs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-switch-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-stackmap-nops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-sli-sri-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-early-ifcvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-coalescing-MOVi32imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-address-type-promotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/intrinsics-memory-barrier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-interleaved-accesses.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-simd-vget.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-compare-instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/ragreedy-csr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-hello.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-detect-vec-redux.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-perm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/sibling-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tbz-tbnz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tst-br.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vpopcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fastcc-reserved.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vbitwise.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/dp-3source.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/round-conv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-merge-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-simplest-elf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-add-pairwise.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-tls-execs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcvt_f32_su32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-zero-cycle-regmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vsra.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/code-model-large-abs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-misched-basic-A57.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-addressing-modes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-named-reg-alloc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-const-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/local_vars.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/vcvt-oversize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/func-argpassing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/floatdp_1source.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-redzone.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-extract_subvector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-patchpoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-int-ext4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp16-vector-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-add-sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/emutls_generic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-virtual_base.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-select_cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-tls-darwin.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-int-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/misched-fusion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2011-04-21-CPSRBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-be-bv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-bitfield-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/xbfiz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-i16-subreg-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/setcc-type-mismatch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/bitfield-insert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/regress-tblgen-chains.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcvt_n.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2011-03-09-CPSRSpill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/regress-f128csel-flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-logic-op.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2012-07-11-InstrEmitterBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fold-lsl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-misaligned-memcpy-inline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/atomic-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-elf-constpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-scalar-by-elem-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fp-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-rounding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-spill-lr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-complex-ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-2velem-high.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/bool-loads.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-shrink-v1i64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-branch-cond-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-merge-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-DAGCombine-findBetterNeighborChains-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-addr-type-promotion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vclz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-reg-copy-noneon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vaddlv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-triv-disjoint-mem-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-tbl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vext_reverse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vector-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/complex-copy-noneon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-indexed-vector-ldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-atomic-128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/simple-macho.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-big-imm-offsets.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-zext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/callee-save.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-rev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/ldp-stp-scaled-unscaled-pairs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/frameaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-extend-int-to-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/readcyclecounter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/and-mask-removal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ldxr-stxr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/print-mrs-system-register.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ands-bad-peephole.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-inline-asm-error-I.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-long-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fdiv-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-int-ext5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/i1-contents.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/compiler-ident.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-alloca-frame-pointer-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-convert-v4f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/breg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/paired-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-2014-08-11-MachineCombinerCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tailcall-mem-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-prefetch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fcopysign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-folded-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fold-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-weak-reference.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/cpus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-this-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-indexed-memory.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/logical_shifted_reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-memset-to-bzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-register-offset-addressing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2012-05-07-DAGCombineVectorExtract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-platform-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/machine-copy-prop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vmovn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/tailcall-fastisel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-merge-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fold-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/inline-asm-constraints-badI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fmuladd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-cbz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fastcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-simd-scalar-to-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vshuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64_f16_be.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/illegal-float-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/div_minsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-idiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/stackmap-frame-setup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-noconvert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-narrow-ldst-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-inline-asm-error-J.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/mul_pow2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/cond-sel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/ldst-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-scvt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-fpround_f128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-alloc-no-stack-realign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-big-endian-eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/bitcast-v2i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/dag-combine-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/andandshift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-strict-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-dagcombiner-dead-indexed-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-leaf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-shift-left-long.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-gep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fmadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/shrink-wrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-crypto.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fp128-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/returnaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/f16-convert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ld-from-st.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2011-03-21-Unaligned-Frame-Index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-setcc-int-to-fp-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-extern-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-patchpoint-scratch-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2012-05-09-LOADgot-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-merge-4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2013-01-13-ffast-fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2012-05-22-LdStOptBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/rem_crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/gep-nullptr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/branch-folder-merge-mmos.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-dead-def-frame-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vcvt_f.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-sqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-EXT-undef-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-cast-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/branch-relax-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/sincospow-vector-expansion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vqsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-zip.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-sdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/or-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-trn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/floatdp_2source.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-collect-loh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-tls-dynamics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-inline-asm-error-K.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-large-frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/compare-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2012-05-07-MemcpyAlignBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-sminv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2012-06-06-FPToUI.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-smaxv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-codegen-prepare-extload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-misched-forwarding-A53.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/stackmap-liveness.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64_tree_tests.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/logical-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/basic-pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-cmp-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-addp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-join-reserved.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-diagnostics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-big-endian-vector-callee.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vshr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/machine_cse_impdef_killflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fast-isel-addr-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-zextload-unscaled.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-vext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-vector-arithmetic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-dup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-icmp-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/PBQP-chain.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-misched-memdep-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-arm64-dead-def-elimination-flag.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/adc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/extern-weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-code-model-large-abs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-pic-local-symbol.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/rbit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-promote-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/inline-asm-constraints-badK.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/global-merge-ignore-single-use-minsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp16-v4-instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-vret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/swiftself.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fp16-v8-instructions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/half.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-call-return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/stack_guard_remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/bitfield.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/aarch64-tbz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/PBQP-coalesce-benefit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/merge-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/minmax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/zero-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-tls-dynamic-together.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-scalar-by-elem-fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-big-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-branch-cond-split.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fmax-safe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/function-subtarget-features.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/large-consts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-sqshl-uqshl-i64Contant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-illegal-float-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-collect-loh-str.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-inline-asm-error-L.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/analyzecmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-sitofp-combine-chains.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/neon-scalar-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/fast-isel-branch_weights.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-fcmp-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-dead-register-def-bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-extload-knownzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/eon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/br-undef-cond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-blockaddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/machine-combiner.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-returnaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-2013-01-23-frem-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/Redundantstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/mature-mc-support.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/ldst-unscaledimm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-addrmode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-stacksave.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/atomic-ops-not-barriers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-vector-list-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-anyregcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-abi-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-frame-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/got-abuse.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-copyPhysReg-tuple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-ccmp-heuristics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/regress-fp128-livein.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/inline-asm-constraints-badL.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-neon-mul-div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/AArch64/arm64-addr-mode-folding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/convertsptoll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cext-check.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/stack-alloca2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/memops2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cexti16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/addh-shifted.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/compound.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/fusedandshift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cext-valid-packet2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-extract.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-load-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vaddb-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vsubb-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vaddb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vsubb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-cst-v4i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-splat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vaddh-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vsubh-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-mul-v4i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-no-tfrs-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vaddh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vsubh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-bitcast-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-no-tfrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-mul-v8i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-shift-imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-apint-truncate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-store-v2i16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-fma.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-loadv4i16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vsplatb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-bad-bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vsplath.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-truncate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vshifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-zeroextend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-illegal-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-cst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vaslw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-insert-extract-elt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-cst-v4i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-anyextend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-mul-v2i32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-packhl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-mul-v2i16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-mul-v4i16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vaddw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vect/vect-vsubw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-cleanup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/expand-condsets-undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/pred-absolute-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-wrap2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/pic-simple.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/dualstore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/newvaluejump2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/mpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/BranchPredict.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/macint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/pic-regusage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/early-if-spare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-lt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/bit-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/sdr-shr32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/mind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-pos-ivbump1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/mux-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmp_pred.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/maxd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/alu64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/minuw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/const64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/loadi1-v4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/i16_VarArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-dbg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/ifcvt-edge-weight.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/brev_st.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/combine_ir.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/bugAsmHWloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/extload-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/struct_args_large.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/maxud.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-recursion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/stack-align2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/branch-non-mbb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/insert-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmpb-eq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/tfr-to-combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/circ_ldw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/static.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/checktabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vector-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/bit-phi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/dadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/adde.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/convertsptoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/duplex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/tail-call-mem-intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-preheader.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/shrink-frame-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/base-offset-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/v60Vasr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/ctor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/common-gep-icm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/sdr-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/tail-dup-subreg-abort.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/pred-instrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/minw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/combine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/maxw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/store-widen-aliased-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/packetize_cond_inst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/newvaluejump.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/convertdptoint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/memops3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/bit-extractu-half.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/circ_st.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/early-if-conversion-bug1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/gp-plus-offset-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/clr_set_toggle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/dsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/pred-gp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/store-widen.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/addh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/mem-fi-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/dmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/maxuw.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmp-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmp-extend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/select-instr-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/minu-zext-8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-le.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/ifcvt-diamond-bad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-ne.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/predicate-logical.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/runtime-stkchk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/addh-sext-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/signed_immediates.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/misaligned-access.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/remove_lsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/restore-single-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/xtype_alu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/xtype_perm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/xtype_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/xtype_mpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/xtype_complex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/system_user.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/xtype_pred.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/cr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/xtype_shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/alu32_alu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/xtype_bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/intrinsics/alu32_perm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/floatconvert-ieee-rnd-near.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cfi-late.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/minu-zext-16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/zextloadi1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vaddh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/simple_addend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/absaddr-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/postinc-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/store-widen-negv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/barrier-flag.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/sube.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/predicate-rcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-loop1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/memops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-ph-deadcode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/vec-pred-spill1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/postinc-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/tls_static.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/opt-fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/relax.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/calling-conv-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/brev_ld.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/NVJumpCmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/stack-alloca1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/store-widen-negv2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/common-gep-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/ctlz-cttz-ctpop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/memops1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/i8_VarArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/addrmode-indoff.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/rdf-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/union-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/gp-rel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cext-valid-packet1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/extract-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/tail-call-trunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/remove-endloop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/maxh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/tls_pic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/idxload-with-zero-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/avoid-predspill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/simpletailcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/indirect-br.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/block-addr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/bit-eval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/postinc-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/avoid-predspill-calleesaved.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/early-if.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/predicate-copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmp_pred2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/validate-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/opt-fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-wrap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/eliminate-pred-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/v60Intrins.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/memcpy-likely-aligned.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/split-const32-const64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/doubleconvert-ieee-rnd-near.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/insert4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/frame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-missed.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/eh_return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/early-if-phi-i1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/fadd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/always-ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/Atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/circ_ld.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/circ_ldd_bug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-range.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/newvaluestore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/v60small.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-lt1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/absimm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/loadi1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-crit-edge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/i1_VarArg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/expand-condsets-rm-segment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/expand-condsets-basic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/stack-align1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/pic-jumptables.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/ashift-left-right.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/base-offset-post.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmp-to-predreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmp_pred_reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/builtin-prefetch-offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmpb_pred.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/hwloop-const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/convertdptoll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/fsub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/pic-static.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/struct_args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/fmul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/reg-scavengebug-3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/cmp-to-genreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/builtin-prefetch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/loadi1-v4-G0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/gp-plus-offset-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/usr-ovf-dep.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/minud.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/rdf-dead-loop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Hexagon/loadi1-G0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-rsb2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/ifcvt-neon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-neg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-sub2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-mulhi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2011-12-16-T2SizeReduceAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/carry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-and2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-07-NeonFPBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ldrd.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-asr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/setjmp_longjmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-09-28-ITBlockBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-sxt-uxt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ifcvt3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/emit-unwinding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-mov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/lsr-deficiency.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-06-19-ITBlockCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/longMACt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-sbc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-02-24-BigStack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-add3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/ldr-str-imm12.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2012-01-13-CBNZBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/v8_IT_3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-11-01-CopyReg2RegBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-sub5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-str_pre.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-jtb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-orn2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/bfx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-04-CoalescerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-mvn2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/frameless.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-orr2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/constant-islands-new-island.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/tls1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/constant-islands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/machine-licm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ldr_pre.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/constant-islands-new-island-padding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/aapcs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-07-30-PEICrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-02-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-rev.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-06-SpDecBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-04-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/cbnz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-07-CoalescerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-08-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-03-15-AsmCCClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-21-PostRAKill4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-asr2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-teq2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-pack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-add6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/v8_IT_6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/tpsoft.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-spill-q.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ldrb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ifcvt1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-cbnz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/ifcvt-compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-orr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-sxt_rot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/large-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-shifter.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2013-03-02-vduplane-nonconstant-source-index.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-tbb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/v8_IT_1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-07-17-CrossRegClassCopy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-sub3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/stack_guard_remat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ldr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/inflate-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2011-04-21-FILoweringBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-bfc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-mls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-05-24-rsbs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/bfi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/mul_const.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ldm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-lsl2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-add4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/v8_IT_4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/aligned-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-smul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-lsr2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/tls2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-eor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-10-ISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-teq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ldrh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-02-11-phi-cycle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-tst2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-01-WrongLDRBOpc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/cross-rc-coalescing-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-mvn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/float-intrinsics-double.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-rev16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-uxt_rot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/cortex-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-mla.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-strb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-str_post.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-tbh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-call-tc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-uxtb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2011-06-07-TwoAddrEarlyClobber.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/constant-islands-jump-table.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/float-cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-08-10-VarSizedAllocaBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-11-11-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-rsb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-07-21-ISelBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-09-01-PostRAProlog.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/pic-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-07-23-CPIslandBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-select_xform.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-lsl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ifcvt2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-04-ScavengerAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ror.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/segmented-stacks.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-11-13-STRDBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-12-03-AddSPNarrowing.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-eor2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-tst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-add2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/v8_IT_2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-cmn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-sub4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-12-01-LoopIVUsers.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/buildvector-crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/aligned-spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ldr_post.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-adc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-11-22-EpilogueBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-clz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-01-06-TailDuplicateLabels.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/tail-call-r9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-smla.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-orn.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/float-ops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-03-08-addi12-ccout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-str.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2013-03-06-vector-sext-operand-scalarize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-add5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2013-02-19-tail-call-register-hint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/v8_IT_5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-strh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-04-26-CopyRegCrash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-lsr3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-bcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-01-19-RemovePredicates.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/2010-06-21-TailMergeBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-bic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/large-stack.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-cmn2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/cross-rc-coalescing-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ifcvt1-tc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-lsr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-cmp2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/thumb2-ldr_ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Thumb2/frameless2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/loops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/ex1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/cc_ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/shifts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/many_args1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/cc_args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/undef.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/many_args2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/vararg1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/sanity.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/cc_args_be.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/alu8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/sockex2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/sdiv_error.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/struct_ret1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/cmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/struct_ret2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/intrinsics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/BPF/fi_ri.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/load-store-left-right.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/ctlz-v.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fp16instrinsmc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-or16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cttz-v.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selpat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips-shf-gprel.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/memcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setlt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64signextendsesf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-reg64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm_constraint_m.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mbrsize4a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/machineverifier.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/addi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/or1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconlt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64lea.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/abiflags-xx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-06-fadd64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sra2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sub1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/abicalls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/biggot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasmmemop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-08-ctlz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lb1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconnez.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/analyzebranch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/interrupt-attr-64-error.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/eh-dwarf-cfa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-addu16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/octeon.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/s2rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/xor1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/swzero.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64fpimm0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-15-SmallSection.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64-f128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/emutls_generic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/delay-slot-kill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/o32_cc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llcarry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lhu1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/i8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/frameindex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s3997499501.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s2090927243-simplified.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r_4r.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/i10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/2r_vector_scalar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/i5-c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s2704903805.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/elm_move.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-d.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/bitwise.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/elm_copy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/compare_float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/i5-s.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s2501752154-simplified.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/2rf_fq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r_4r_widen.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/special.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-p.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s1935737938.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r_splat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/bitcast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/2rf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3rf_float_int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3rf_int_float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/2rf_exup.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/i5-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/2rf_tq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/i5_ld_st.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/shift-dagcombine.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3rf_4rf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/basic_operations_float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3rf_q.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/vec.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s1704963983.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s449609655-simplified.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/2r.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-s.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/compare.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/2rf_float_int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/2rf_int_float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/arithmetic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3rf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-sz1-s742806235.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/i5-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/inline-asm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-b.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/i5-m.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/elm_cxcmsa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/elm_insv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/arithmetic_float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s525530439.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/basic_operations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3rf_4rf_q.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-v.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/elm_shift_slide.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/endian.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s997348632.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s3861334421.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/vecs10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/llvm-stress-s3926023935.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3rf_exdo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-i.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/msa/3r-m.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setugt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2013-11-18-fp64-const0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/const6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-06-05-Carry.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/const6a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/eh-return32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-22-Cstpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/div_rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fp-spill-reload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fmadd1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-11-10-xint_to_fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/rotate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2010-11-09-CountLeading.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/stackcoloring.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/blez_bgez.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/nacl-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-jal.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selne.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/const1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/seleq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/tls16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/helloworld.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16ex.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/ci2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64directive.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selTBteqzCmpi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-delay-slot-jr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-bad-N.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/divu_remu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/call-optimization.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconnek.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lbu1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64ext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-li.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/ehframe-indirect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-03-SRet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/extins.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16fpe.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sub2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/bswap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/simplebr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/frame-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selgt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_fpret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fp64a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconeqz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/eh-return64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selTBtnezCmpi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/emit-big-cst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/hf16_1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sb1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/weak.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/elf_eflags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/hf1_body.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-29-icmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setuge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/DbgValueOtherTargets.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-atomic1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/constantfp0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-07-Float2Int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-directives.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-10-13-LegalizerBug.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/emergency-spill-slot-near-fp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sr1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/remu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/private.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/gprestore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-04-Bitconvert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-07-FPExtend.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-08-bswap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/largeimm1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/init-array.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/return-vector.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2010-11-09-Mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm_constraint.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/stchar.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-15-InternalConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/tailcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/beqzc1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/divrem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/nacl-reserved-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/frem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/global-pointer-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/gpreg-lazy-binding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fpnotneeded.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/i64arg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/indirectcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/atomicops.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-23-fpcmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/alloca16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64muldiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/delay-slot-fill-forward.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/interrupt-attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/double2int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/dagcombine_crash.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/spill-copy-acreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fabs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/stldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setult.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64imm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-07-CC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mulll.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selectcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-bad-O.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/internalfunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/neg1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/ul1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/reserved-space.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/callee-saved-fpxx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/roundl-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/return.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-hard-fp128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/stack-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/return-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/memory-layout.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-byte.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-hard-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/callee-saved.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-small-structures-bigger-than-32bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-hard-float-varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/callee-saved-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/callee-saved-fpxx1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/return-hard-fp128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/return-hard-struct-f128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/return-hard-float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/return-struct.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-fp128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-combinations.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cconv/arguments-varargs-small-structs-multiple-args.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/ra-allocatable.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconeqk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/powif64_16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sel1c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/largeimmprinting.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/i32k.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2012-12-12-ExpandMemcpy.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/check-noat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/countleading.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16-hf-attr-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-reg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-bad-J.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/blockaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/start-asm-file.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fixdfsf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-06-Alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/null-streamer.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/tls16_2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/interrupt-attr-error.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/eh.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brind.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/align16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sint-fp-store_pattern.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selgek.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brsize3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/hf16call32_body.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setgek.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_10.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brdelayslot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lcb5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/disable-tail-merge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/small-section-reserve-gp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fp16mix.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setultk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/tail16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setule.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64sinttofpsf.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/shift-parts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/unalignedload.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cprestore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/named-register-n32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/divu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/no-odd-spreg-msa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-xor16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/fastcc-miss.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/simplestorefp1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/mul1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/loadstore2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/simplestorei.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/loadstrconst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/shftopm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/overflt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/fptrunc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/loadstoreconv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/br1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/fpext.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/callabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/icmpa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/nullvoid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/bswap1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/logopm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/memtest1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/div1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/rem1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/sel1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/fpintconv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/fpcmpa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/retabi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/simplestore.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/check-disabled-mcpus.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/constexpr-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/Fast-ISel/fastalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/check-adde-redundant-moves.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/and1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lh1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fpxx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-bad-P.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/ex2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fcopysign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mature-mc-support.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setcc-se.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cfi_offset.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2011-05-26-BranchKillsVreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/dsp-vec-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/adjust-callstack-sp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-01-AsmInline.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/const4a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/nomips16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/srl1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16-hf-attr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/f16abs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-bad-K.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/dsp-patterns.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64instrs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sitofp-selectcc-opt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/optimize-fp-math.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/alloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64-sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/dsp-r1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sel2c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-gp-rc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/madd-msub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-and16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-compact-branches.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/named-register-n64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/sdiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/store-atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/srem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/udiv.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/select-int.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/xor.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/urem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/lshr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/select-dbl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/or.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/extractelement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/indirectbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/shl.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/add.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/load-atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/sqrt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/sub.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/ret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/mul.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/ashr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/addrspacecast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/and.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/select-flt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/llvm-ir/atomicrmx.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/zeroreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/insn-zero-size-bb.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-delay-slot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setne.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/hfptrcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64shift.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/seteq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selnek.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64-libcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64r6/compatibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/return_address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-rdhwr-directives.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconne.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/compactbranches
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/compactbranches/compact-branches.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/trap1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconeq.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/dynamic-stack-realignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/stacksize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/buildpairextractelementf64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/dsp-patterns-cmp-vselect.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/o32_cc_byval.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/const-mult.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-03-ReturnDouble.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/tnaked.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64-f128-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/seteqz.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sll1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/longbranch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2009-11-16-CstPoolLoad.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm_constraint_ZC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/optimize-pic-o0.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/interrupt-attr-args-error.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/tls-alias.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-assembler-directives.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sh1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brcongt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-compact-jump.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64fpldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-load-effective-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mno-ldc1-sdc1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cache-intrinsic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/nacl-branch-delay.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/prevent-hoisting.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-not16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/vector-load-store.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/remat-immed-load.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/not1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/srl2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brsize3a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64intldst.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-bad-L.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lcb4a.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-subu16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/br-jmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lazy-binding.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-31-fcopysign.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selltk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cmov.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/hf16call32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setltk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sra1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/dsp-r2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/named-register-o32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mipslopat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fpneeded.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mulull.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/null.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_9.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/abiflags32.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-07-FPRound.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips32r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips32r6/compatibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-cnstrnt-bad-I-1.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/stack-alignment.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/global-address.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fp16static.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/seleqk.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/rdhwr-directives.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fpbr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/addc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-sw-lw-16.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/l3mc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fp-indexed-ls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/int-to-float-conversion.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/vector-setcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fastcc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm_constraint_R.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/beqzc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-07-16-SignExtInReg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips16_32_4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/setge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/o32_cc_vararg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/octeon_popcnt.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/sll2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/mips64extins.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/inlineasm-operand-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fneg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/brconge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2008-08-03-fabs64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lcb2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/tls-models.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/2010-07-20-Switch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-addiu.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/lcb3c.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fcopysign-f32-f64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/cmplarge.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/no-odd-spreg.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/fp16-promote.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/misha.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/asm-large-immediate.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/addressing-mode.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/uitofp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/selTBtnezSlti.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/jtstat.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/Mips/micromips-andi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/64spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2011-01-22-SRet.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2012-05-01-LowerArguments.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/fp128.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2011-01-11-CC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2011-01-11-FrameAddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2007-05-09-JumpTables.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/varargs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/64abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2011-12-03-TailDuplication.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmRegOperand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/private.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/vector-call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/multiple-div.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/reserved-regs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/spillsize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/mult-alt-generic-sparc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/inlineasm.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2009-08-28-PIC.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/constpool.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/basictest.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/rem.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/globals.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/spill.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/blockaddr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2009-08-28-WeakLinkage.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2011-01-19-DelaySlot.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/64bit.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/DbgValueOtherTargets.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/64cond.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/stack-align.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/exception.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/analyze-branch.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/atomics.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/obj-relocs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/32abi.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/setjmp.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/sret-secondary.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/tls.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/empty-functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/mature-mc-support.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/float.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/trap.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/select-mask.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2011-01-21-ByValArgs.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/missinglabel.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/float-constants.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/missing-sret.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/ctpop.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/2011-01-11-Call.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/parts.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/CodeGen/SPARC/leafproc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/attributes-3.3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/2009-06-11-FirstClassAggregateConstant.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/terminatorInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/local-linkage-default-visibility.3.4.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/compatibility-3.6.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/binaryFloatInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/blockaddress.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/calling-conventions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/auto_upgrade_intrinsics.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/compatibility-3.8.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/function-encoding-rel-operands.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/arm32_neon_vcnt_upgrade.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/metadata-strings.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/global-variables.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/drop-debug-info.3.5.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/DISubprogram-distinct-definitions.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/null-type.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/linkage-types-3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/case-ranges-3.3.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/calling-conventions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/compatibility-3.6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/weak-macho-3.5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/cmpxchg.3.6.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/binaryFloatInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/tailcall.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/avr-calling-conventions.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/drop-debug-info.3.5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/invalid.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/standardCIntrinsic.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/vectorInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/null-type.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/case-ranges-3.3.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/thinlto-function-summary-callgraph.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/thinlto-function-summary-refgraph.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/visibility-styles.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/flags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/thinlto-function-summary.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/metadata-only-empty-string.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/linkage-types-3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/upgrade-global-ctors.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/2006-12-11-Cast-ConstExpr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/mdstring-high-bits.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/memInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/pr18704.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/visibility-styles.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/attributes-3.3.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/terminatorInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/conversionInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/vectorInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/highLevelStructure.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/aggregateInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/variableArgumentIntrinsic.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/upgrade-global-ctors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/debug-loc-again.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/metadata-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/fcmp-fast.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/old-aliases.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/DICompileUnit-no-DWOId.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/bitcode-wrapper-header-armv7m.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/pr18704.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/DISubprogram-distinct-definitions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/memInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/highLevelStructure.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/upgrade-subprogram.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/global-variables.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/upgrade-tbaa.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/old-aliases.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/cmpxchg.3.6.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/function-local-metadata.3.5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/aggregateInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/variableArgumentIntrinsic.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/constantsTest.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/compatibility-3.7.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/cmpxchg-upgrade.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/anon-functions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/avr-calling-conventions.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/weak-macho-3.5.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/weak-cmpxchg-upgrade.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/miscInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/bitcode-wrapper-header-x86_64.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/standardCIntrinsic.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/atomic.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/ssse3_palignr.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/upgrade-loop-metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/constantsTest.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/use-list-order.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/compatibility-3.8.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/select.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/metadata.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/miscInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/inalloca.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/PR23310.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/operand-bundles.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/metadata.3.5.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/source-filename.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/thinlto-summary-linkage-types.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/DILocalVariable-explicit-tags.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/identification.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/bitwiseInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/shuffle.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/conversionInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/invalid.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/upgrade-loop-metadata.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/use-list-order2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/vst-forward-declaration.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/upgrade-subprogram.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/DICompileUnit-no-DWOId.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/metadata.3.5.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/binaryIntInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/invalid.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/compatibility.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/ptest-old.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/DILocalVariable-explicit-tags.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/local-linkage-default-visibility.3.4.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/PR23310.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-cast.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-align.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-array-op-not-2nd-to-last.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/source-filename.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-metadata-not-followed-named-node.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-array-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-fwdref-type-mismatch-2.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-GCTable-overflow.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-invoke-non-function-explicit-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-non-vector-shufflevector.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-unexpected-eof.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-load-pointer-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-insertval-too-many-idxs.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-gep-operator-mismatched-explicit-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-bitwidth.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-fp-shift.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-vector-length.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/padding.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-extractval-too-many-idxs.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-function-comdat-id.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-array-element-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-call-mismatched-explicit-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-pointer-element-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-name-with-0-byte.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-no-function-block.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-array-operand-encoding.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/thinlto-function-summary-callgraph.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-load-mismatched-explicit-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-abbrev-vbr-size-too-big.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-fwdref-type-mismatch.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-load-ptr-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-abbrev.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-code-len-width.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-no-proper-module.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-abbrev-fixed-size-too-big.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-invoke-mismatched-explicit-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-insertval-array-idx.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-non-vector-insertelement.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/padding-garbage.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-vector-element-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-inserted-value-type-mismatch.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-extractval-array-idx.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-alias-type-mismatch.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-bad-abbrev-number.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-insertval-struct-idx.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-too-big-fwdref.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-non-vector-extractelement.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/thinlto-function-summary-callgraph-pgo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-insert-0-indices.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-extractval-struct-idx.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-type-table-forward-ref.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-extract-0-indices.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-function-argument-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-abbrev-no-operands.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-call-non-function-explicit-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-pr20485.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-global-var-comdat-id.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/Inputs/invalid-gep-mismatched-explicit-type.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/cmpxchg-upgrade.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/compatibility-3.7.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/padding.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/bitwiseInstructions.3.2.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/function-local-metadata.3.5.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/extractelement.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/binaryIntInstructions.3.2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/attributes.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/ptest-new.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/test/Bitcode/weak-cmpxchg-upgrade.ll.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/config.guess
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/dummy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/nsis_icon.ico
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/config-ix.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/platforms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/platforms/iOS.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/platforms/Android.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/LLVM-Config.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/LLVMProcessSources.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/CheckCompilerVersion.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/AddLLVMDefinitions.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/TableGen.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/ChooseMSVCCRT.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/AddLLVM.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/VersionFromVCS.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/LLVMExternalProjectUtils.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/HandleLLVMStdlib.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/AddSphinxTarget.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/DetermineGCCCompatible.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/FindOCaml.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/GetHostTriple.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/CrossCompile.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/HandleLLVMOptions.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/AddOCaml.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/LLVMConfig.cmake.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/GetSVN.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/LLVMInstallSymlink.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/FindSphinx.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/CheckAtomic.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/modules/LLVMConfigVersion.cmake.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/cmake/nsis_logo.bmp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/configure
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/PassRegistry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/GenericValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/JITSymbolFlags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/ObjectCache.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/OrcMCJITReplacement.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/JITSymbol.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/RPCChannel.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/NullResolver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/LogicalDylib.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Orc/LambdaResolver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/JITEventListener.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/OProfileWrapper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/Interpreter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/MCJIT.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/PassSupport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/InstrProfData.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/InstrProfWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/CoverageMappingWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/SampleProfWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/InstrProf.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/CoverageMapping.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/SampleProf.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/InstrProfReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/ProfileCommon.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/CoverageMappingReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ProfileData/SampleProfReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/AsmParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/AsmParser/SlotMapping.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/AsmParser/Parser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/PassAnalysisSupport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Passes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Passes/PassBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/UnrollLoop.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/BuildLibCalls.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/ModuleUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/CodeExtractor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/SSAUpdater.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/LoopVersioning.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/MemorySSA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/CmpInstAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/ValueMapper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/PromoteMemToReg.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/SanitizerStats.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/CtorUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/Cloning.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/SymbolRewriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/LoopUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/Local.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/SplitModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/Evaluator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/IntegerDivision.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Utils/GlobalStatus.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Vectorize.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Scalar
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Scalar/GVN.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Scalar/ADCE.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Scalar/SROA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/LowerBitSets.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/InlinerPass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/IPO/FunctionImport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Instrumentation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/ObjCARC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/InstCombine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/InstCombine/InstCombine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Transforms/Scalar.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCELFObjectWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/SectionKind.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCFixup.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSectionELF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCFixedLenDisassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSchedule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/SubtargetFeature.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSectionCOFF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCInstrAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCDwarf.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSymbolCOFF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCCodeEmitter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSection.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCCodeView.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSymbol.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSectionMachO.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSubtargetInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCInst.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCFixupKindInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MachineLocation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCLabel.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCCodeGenInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCInstPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCAsmInfoELF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCInstBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCWin64EH.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/ConstantPools.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCAsmInfoCOFF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCAsmInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCMachObjectWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSymbolELF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCAnalysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCInstrItineraries.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCInstrDesc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCWinCOFFStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCAsmInfoDarwin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCDirectives.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCTargetOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCObjectWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCFragment.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/StringTableBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser/AsmCond.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser/MCAsmParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser/AsmLexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCParser/MCAsmLexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCObjectStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCELFStreamer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCWinEH.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCSymbolMachO.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCAssembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCAsmLayout.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCLinkerOptimizationHint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCObjectFileInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCDisassembler
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/MC/MCAsmBackend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/FunctionId.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/CodeView.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/ListRecordBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/MethodListRecordBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/FieldListRecordBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/Line.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/TypeRecordBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/CVLeafTypes.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/CodeViewOStream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDB.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIASupport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/DIContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/Symbolize
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/module.modulemap.build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/InitializePasses.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/PackedVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/EpochTracker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/APInt.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/ImmutableList.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/ArrayRef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/ImmutableMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SetVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SparseBitVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SCCIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/StringSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SmallSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/ilist.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/DepthFirstIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/PriorityQueue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/VariadicFunction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/GraphTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/UniqueVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/ImmutableSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SmallVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/DenseMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/TinyPtrVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/StringExtras.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/APSInt.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/FoldingSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/Triple.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/None.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/PointerIntPair.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SparseSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/DenseSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SmallPtrSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/DAGDeltaAlgorithm.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/IndexedMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/EquivalenceClasses.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/Hashing.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/IntervalMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SparseMultiSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/Optional.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/APFloat.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/Twine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/StringSwitch.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/STLExtras.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/ScopedHashTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/PointerUnion.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/ilist_node.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/iterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SmallBitVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/PostOrderIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/IntEqClasses.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/edit_distance.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SmallString.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/SetOperations.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/MapVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/DeltaAlgorithm.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/BitVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/StringRef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/StringMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/PointerEmbeddedInt.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/iterator_range.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/Statistic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/PointerSumType.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/DenseMapInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/PassInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Option
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Option/ArgList.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Option/Option.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Option/Arg.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Option/OptTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Option/OptSpecifier.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Option/OptParser.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Attributes.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/AssemblyAnnotationWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/TypeFinder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/ValueMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsX86.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Verifier.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/User.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Argument.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/InstrTypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Function.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Metadata.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/PredIteratorCache.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Statepoint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/PatternMatch.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/CFG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/CallingConv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DebugInfoMetadata.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/GlobalVariable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/ConstantRange.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsXCore.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DataLayout.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/MDBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/NoFolder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/LegacyPassManagers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/LegacyPassNameParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/ValueSymbolTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/OperandTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Dominators.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsHexagon.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/LLVMContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/AutoUpgrade.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Metadata.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Instruction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Value.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/UseListOrder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DebugLoc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Mangler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/GlobalObject.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/TypeBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Operator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/ModuleSummaryIndex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/InstVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/PassManagerInternal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/SymbolTableListTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DiagnosticInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsSystemZ.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Instructions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IRPrintingPasses.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DerivedTypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsNVVM.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Value.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsAArch64.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Type.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Intrinsics.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/ConstantFolder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/GVMaterializer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Attributes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DebugInfoFlags.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/InstIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Instruction.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DiagnosticPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/ValueHandle.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Constant.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/GetElementPtrTypeIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/BasicBlock.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Use.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsBPF.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/GlobalValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DebugInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsWebAssembly.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Intrinsics.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsARM.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsPowerPC.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Comdat.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/GlobalAlias.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Constants.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/InlineAsm.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/TrackingMDRef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IRBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/Module.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/LegacyPassManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsMips.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/CallSite.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicInst.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/PassManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/DIBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IR/ModuleSlotTracker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Error.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/SwapByteOrder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/CodeGenCWrappers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/GenericDomTree.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Capacity.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/DOTGraphTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/MemoryBuffer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/OnDiskHashTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/CodeGen.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Threading.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ArrayRecycler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ARMEHABI.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/SpecialCaseList.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Compiler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Solaris.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/COM.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/UniqueLock.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/raw_os_ostream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Format.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/Lanai.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/AArch64.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/AVR.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/Mips.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/Sparc.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/Hexagon.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/PowerPC64.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/i386.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/WebAssembly.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/SystemZ.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/x86_64.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/ARM.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELFRelocs/PowerPC.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/FileOutputBuffer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/TimeValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Path.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Endian.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ToolOutputFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/JamCRC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/StringPool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/MipsABIFlags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/LineIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Mutex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ScaledNumber.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ARMBuildAttributes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ELF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/GenericDomTreeConstruction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Program.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/circular_raw_ostream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/thread.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Recycler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/FileUtilities.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/AlignOf.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/TargetRegistry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/MathExtras.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/LockFileManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/DataStream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/SaveAndRestore.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Unicode.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/MachO.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Casting.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Errc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/LEB128.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/GCOV.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Locale.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Signals.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Watchdog.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/FormattedStream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ThreadPool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/WindowsError.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/DataExtractor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/SourceMgr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Valgrind.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/StringSaver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Memory.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/StreamingMemoryObject.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/DynamicLibrary.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Regex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Dwarf.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/EndianStream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/LICENSE.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Atomic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/BlockFrequency.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/SMLoc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/DataTypes.h.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/COFF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Host.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/PointerLikeTypeTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/YAMLParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Allocator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Printable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Timer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/TypeName.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/TrailingObjects.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/CrashRecoveryContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/MD5.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Errno.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/CBindingWrapping.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/MutexGuard.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/PluginLoader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/CommandLine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/YAMLTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ErrorOr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Options.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/PrettyStackTrace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/BranchProbability.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ErrorHandling.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/GraphWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ConvertUTF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/MemoryObject.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/RandomNumberGenerator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Compression.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/TargetParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Dwarf.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ManagedStatic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/SystemUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/type_traits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Registry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ARMTargetParser.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ARMWinEH.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/RWMutex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Process.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/RecyclingAllocator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/ThreadLocal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/raw_ostream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Win64EH.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/UnicodeCharRanges.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/FileSystem.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/TargetSelect.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Debug.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/TableGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/TableGen/Record.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/TableGen/Main.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/TableGen/SetTheory.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/TableGen/StringToOffsetTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/TableGen/Error.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/TableGen/TableGenBackend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/TableGen/StringMatcher.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LibDriver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LibDriver/LibDriver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/DemandedBits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LoopInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/BlockFrequencyInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LoopPassManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/RegionIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/DependenceAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LoopAccessAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/MemoryLocation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/DivergenceAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/GlobalsModRef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CFLAliasAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/DomPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ScopedNoAliasAA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/AliasAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CallGraph.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CFG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/RegionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/SparsePropagation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/DominanceFrontier.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ObjCARCInstKind.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LoopInfoImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CallPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/AliasSetTracker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/MemoryBuiltins.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/VectorUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/PHITransAddr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CaptureTracking.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/RegionPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LazyCallGraph.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/InstructionSimplify.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/Passes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/TargetLibraryInfo.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/BasicAliasAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ValueTracking.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LoopPass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/OrderedBasicBlock.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/PtrUseVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CGSCCPassManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CallGraphSCCPass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/RegionInfoImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/TargetFolder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LoopIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/Interval.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/PostDominators.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/AssumptionCache.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/TargetLibraryInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/DominanceFrontierImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/LazyValueInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ConstantFolding.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/IntervalIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/Trace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/TargetTransformInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/EHPersonalities.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/IVUsers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CodeMetrics.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/Loads.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/CFGPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/Lint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/InlineCost.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/ScalarEvolution.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/RegionPass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Analysis/IntervalPartition.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Linker
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Linker/IRMover.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Linker/Linker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetItinerary.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetOpcodes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/Target.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetCallingConv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetFrameLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/GenericOpcodes.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetRecip.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetOpcodes.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/CostTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetInstrInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetSchedule.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetSubtargetInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetLoweringObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetIntrinsicInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetCallingConv.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Target/TargetSelectionDAG.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ObjectYAML
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ObjectYAML/ELFYAML.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ObjectYAML/COFFYAML.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ObjectYAML/YAML.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LinkAllPasses.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Pass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IRReader
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/IRReader/IRReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LineEditor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LineEditor/LineEditor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LTO
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LTO/LTOModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LTO/LTOCodeGenerator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LTO/ThinLTOCodeGenerator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/RuntimeLibcalls.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineFrameInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LexicalScopes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/DIE.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineFunctionPass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/CalcSpillWeights.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/SelectionDAG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/WinEHFuncInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachORelocation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/SchedulerRegistry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineConstantPool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/IntrinsicLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineFunction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineMemOperand.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GCStrategy.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/PBQP
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/PBQP/Solution.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/PBQP/Graph.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/PBQP/ReductionRules.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/PBQP/Math.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/RegisterPressure.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MIRParser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineFunctionInitializer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LiveRangeEdit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/Analysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineInstr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LivePhysRegs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/StackMaps.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/RegisterClassInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineModuleInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LinkAllAsmWriterComponents.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/PBQPRAConstraint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ISDOpcodes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/FaultMaps.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineScheduler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineValueType.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineDominators.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/DIEValue.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/StackProtector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/CallingConvLower.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/RegAllocPBQP.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/DFAPacketizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LiveIntervalUnion.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineInstrBundle.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/EdgeBundles.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ValueTypes.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineRegionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachinePassRegistry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MIRYamlMapping.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LiveStackAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/RegisterScavenging.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GCMetadata.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/CommandFlags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineInstrBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/AtomicExpandUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/Passes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ValueTypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/SlotIndexes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ParallelCG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineLoopInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/PseudoSourceValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineOperand.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineBasicBlock.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineCombinerPattern.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LiveRegMatrix.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/BasicTTIImpl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GlobalISel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GlobalISel/Types.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LiveVariables.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/DAGCombine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ScheduleDFS.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GCMetadataPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineSSAUpdater.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/TargetSchedule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LiveInterval.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ScheduleDAG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/FastISel.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachineTraceMetrics.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/MachinePostDominators.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/GCs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/SelectionDAGISel.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/VirtRegMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/RegAllocRegistry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CodeGen/AsmPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Config
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Config/AsmPrinters.def.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Config/config.h.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Config/Targets.def.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Config/AsmParsers.def.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Config/Disassemblers.def.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Config/llvm-config.h.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/MachOUniversal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/StackMapParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/SymbolicFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/Archive.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/ModuleSummaryIndexObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/Binary.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/RelocVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/MachO.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/Error.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/ELFTypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/ELFObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/SymbolSize.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/IRObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/ObjectFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/ELF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/COFFImportFile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/COFF.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Object/ArchiveWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/LinkAllIR.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Bitcode
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Bitcode/BitCodes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Bitcode/BitcodeWriterPass.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Bitcode/BitstreamReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Bitcode/ReaderWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Bitcode/BitstreamWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Bitcode/LLVMBitCodes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/BitWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/TargetMachine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Support.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Disassembler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/LinkTimeOptimizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Analysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Linker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Target.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Initialization.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Core.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/ExecutionEngine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/IRReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/lto.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/ErrorHandling.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/BitReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/OrcBindings.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Types.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Object.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Transforms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Transforms/IPO.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Transforms/PassManagerBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Transforms/Vectorize.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm-c/Transforms/Scalar.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/CODE_OWNERS.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2003-06-25-Reoptimizer1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-02-06-TypeNotationDebate.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-02-13-Reference-Memory.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2003-06-26-Reoptimizer2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2000-12-06-MeetingSummary.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-06-01-GCCOptimizations2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-02-09-AdveCommentsResponse.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2000-11-18-EarlyDesignIdeasResp.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2003-01-23-CygwinNotes.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2000-12-06-EncodingIdea.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-05-18-ExceptionHandling.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2002-06-25-MegaPatchInfo.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-09-18-OptimizeExceptions.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-02-06-TypeNotationDebateResp1.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2000-11-18-EarlyDesignIdeas.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-02-06-TypeNotationDebateResp2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-06-20-.NET-Differences.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-02-06-TypeNotationDebateResp4.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2002-05-12-InstListChange.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-02-13-Reference-MemoryResponse.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-07-06-LoweringIRForCodeGen.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-01-31-UniversalIRIdea.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-05-19-ExceptionResponse.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-06-01-GCCOptimizations.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-04-16-DynamicCompilation.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2001-02-09-AdveComments.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HistoricalNotes/2007-OriginalClangReadme.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/index.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CodingStandards.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/AdvancedBuilds.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TableGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TableGen/index.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TableGen/BackEnds.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TableGen/Deficiencies.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TableGen/LangIntro.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TableGen/LangRef.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes/llvm-theme
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes/llvm-theme/theme.conf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes/llvm-theme/static
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes/llvm-theme/static/contents.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes/llvm-theme/static/llvm-theme.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes/llvm-theme/static/navigation.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes/llvm-theme/static/logo.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_themes/llvm-theme/layout.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/BitSets.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/doxygen-mainpage.dox
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/yaml2obj.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HowToAddABuilder.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/InAlloca.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/LinkTimeOptimization.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HowToUseAttributes.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandLine.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/GettingStarted.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MCJIT-dyld-load.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl1.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl2.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl3.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl4.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl5.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl6.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl7.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl8.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl9.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/OCamlLangImpl1.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/LangImpl5-cfg.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/OCamlLangImpl2.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/OCamlLangImpl3.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/OCamlLangImpl4.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/OCamlLangImpl5.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/OCamlLangImpl6.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/OCamlLangImpl7.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/OCamlLangImpl8.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/tutorial/index.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ARM-BE-ld1.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/linpack-pc.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Passes.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HowToSetUpLLVMStyleRTTI.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/BigEndianNEON.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ARM-BE-bitcastfail.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/BlockFrequencyTerminology.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/BranchWeightMetadata.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MarkedUpDisassembly.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Frontend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Frontend/PerformanceTips.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/make.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/LibFuzzer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Makefile.sphinx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HowToCrossCompileLLVM.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_static
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_static/lines.gif
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_static/llvm.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CoverageMappingFormat.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CodeGenerator.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HowToSubmitABug.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CompilerWriterInfo.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Packaging.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_templates
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_templates/layout.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_templates/indexsidebar.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Bugpoint.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MergeFunctions.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Projects.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ReleaseNotes.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TestingGuide.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MCJIT-load.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Lexicon.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/gcc-loops.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MCJIT-load-object.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/GoldPlugin.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/NVPTXUsage.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/DeveloperPolicy.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TestSuiteMakefileGuide.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/WritingAnLLVMBackend.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/conf.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/FAQ.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ExtendedIntegerResults.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/SystemLibrary.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/re_format.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CompileCudaWithLLVM.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Statepoints.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HowToBuildOnARM.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/LangRef.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Vectorizers.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ReleaseProcess.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MCJIT-resolve-relocations.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ExtendingLLVM.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CMake.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/TableGenFundamentals.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/SegmentedStacks.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/StackMaps.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Dummy.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/FaultMaps.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ProgrammersManual.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/AliasAnalysis.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ARM-BE-ldr.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Phabricator.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Atomics.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/Extensions.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/AMDGPUUsage.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ExceptionHandling.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/GarbageCollection.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/SourceLevelDebugging.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/DebuggingJITedCode.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/doxygen.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MCJIT-engine-builder.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_ocamldoc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/_ocamldoc/style.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/GetElementPtr.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/SphinxQuickstartTemplate.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/BitCodeFormat.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/WritingAnLLVMPass.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MCJIT-creation.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-dis.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/bugpoint.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/lit.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-stress.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-cov.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-dwarfdump.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/opt.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-bcanalyzer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-link.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-symbolizer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/index.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-build.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-profdata.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llc.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-ar.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/tblgen.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-as.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/FileCheck.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-config.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-lib.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-readobj.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-diff.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/lli.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-extract.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/CommandGuide/llvm-nm.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MIRLangRef.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/MCJITDesignAndImplementation.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/YamlIO.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/LLVMBuild.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HowToReleaseLLVM.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/HowToUseInstrMappings.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/ARM-BE-bitcastsuccess.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/docs/GettingStartedVS.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects/LLVMBuild.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/projects/CMakeLists.txt
+ U   /b/build/slave/build_and_upload_clang/build/src/third_party/llvm
+Checked out revision 264915.
+Checking out Clang r264915 into '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang'
+Running svn checkout --force https://llvm.org/svn/llvm-project/cfe/trunk@264915 /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/clang-interpreter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/clang-interpreter/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/clang-interpreter/main.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/clang-interpreter/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/PrintFunctionNames
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/PrintFunctionNames/PrintFunctionNames.exports
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/PrintFunctionNames/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/PrintFunctionNames/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/analyzer-plugin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/analyzer-plugin/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/analyzer-plugin/MainCallChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/AnnotateFunctions
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/AnnotateFunctions/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/examples/AnnotateFunctions/AnnotateFunctions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/ModuleInfo.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/vector_inc_dec_ops.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-logical-ops-1.1.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/vector_conv_invalid.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-kernel-attrs.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/shifts.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/init.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-access-qualifier.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/optional-core-fp64-cl2.0.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-kernel-parameters.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/extension-fp64-cl1.1.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/extern.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-image.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/builtin.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/str_literals.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/vector_literals_const.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/vector_literals_invalid.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/half.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/unroll-hint.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-constant.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-pipes-cl2.0.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/cond.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/vec_compare.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/amdgpu-num-register-attrs.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/storageclass-cl20.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/unsupported.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/extension-fp64.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/storageclass.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-logical-ops-1.2.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/event_t_overload.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/sizeof.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/address-spaces.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-kernel.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/event_t.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/warn-missing-prototypes.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/optional-core-fp64-cl1.2.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/endian-attr.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/vec_step.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/invalid-block.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/bool-vectors.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/pipes-1.2-negative.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/array-parameters.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/func_ptr.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/builtins-amdgcn.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/sampler_t_overload.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/sampler_t.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaOpenCL/null_literal.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_lparen_scan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/file_to_include.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/expr_comma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_comma_swallow2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_microsoft.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/disabled-cond-diags2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/optimize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pr2086.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/comment_save_macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_bitor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/expr_invalid_tok.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/line-directive-output.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/iwithprefix.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_redefined.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/assembler-with-cpp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pr2086.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/print_line_include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/print_line_include.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_space.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_none.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_misc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/output_paste_avoid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_variadic.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/comment_save.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro-reserved-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/print_line_empty_file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/c99-6_10_3_4_p6.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/if_warning.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_and.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pp-modules.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/dump-macros-undef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/print_line_track.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/aarch64-target-features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_placemarker.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pp-modules.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_xor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/c90.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_rescan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pr19649-unsigned-wchar_t.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_expandloc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_arg_keyword.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/has_attribute.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macho-embedded-predefines.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/mmx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_spacing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Weverything_pragma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/directive-invalid.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/dependencies-and-pp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/microsoft-ext.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_hashhash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/invalid-__has_warning2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_disable_expand.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/elfiamcu-predefines.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/dumptokens_phyloc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/ucn-allowed-chars.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/mi_opt2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/dump-macros-spacing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_arg_slocentry_merge.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/ignore-pragmas.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_backslash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/mi_opt2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/has_include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/clang_headers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_arg_slocentry_merge.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/ifdef-recover.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/include-directive1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_disable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/_Pragma-physloc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/headermap-rel2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/x86_target_features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/stringize_space.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_with_initializer_list.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/hash_line.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_diagnostic_output.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/predefined-nullability.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/header_lookup1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/line-directive.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/objc-pp.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/function_macro_file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pushable-diagnostics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_comma_swallow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/utf8-allowed-chars.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/function_macro_file.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_diagnostic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma-captured.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_rescan2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro-reserved.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/c99-6_10_3_4_p7.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pr13851.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cuda-preprocess.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/init-v7k-compat.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_c_block_comment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/predefined-exceptions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/unterminated.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro-multiline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/print-pragma-microsoft.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/_Pragma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_simple.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_not_eq.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/non_fragile_feature.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_msextensions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/user_defined_system_framework.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/warn-disabled-macro-expansion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_sysheader.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/arm-target-features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/include-directive2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/missing-system-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/bigoutput.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_sysheader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_bitand.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/import_self.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_unknown.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/missing-system-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/skipping_unclean.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/woa-defaults.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_not_define.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_hard.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_oper_keyword.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_oper_keyword_ms_compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/hash_space.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/openmp-macro-expansion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_expand.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_or.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/stdint.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/wasm-target-features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/dump_macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/microsoft-import.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/extension-warning.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/_Pragma-in-macro-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_not.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/expr_liveness.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/arm-acle-6.4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/predefined-macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/mi_opt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_arg_directive.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/stringize_misc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/non_fragile_feature1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_preexpand.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_commaext.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/traditional-cpp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/mi_opt.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_compl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_arg_directive.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/comment_save_if.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/microsoft-header-search.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/predefined-arch-macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma-pushpop-macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_bad.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_identifier_error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/annotate_in_macro_arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/woa-wchar_t.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_rparen_scan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/expr_define_expansion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/include-pth.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/disabled-cond-diags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_rescan_varargs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/ucn-pp-identifier.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/include-directive3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/undef-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro-reserved-ms.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_ps4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/has_attribute.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/include-macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/headermap-rel.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/warn-macro-unused.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_lparen_scan2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/warn-macro-unused.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_varargs_named.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/feature_tests.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_expand_empty.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/expr_usual_conversions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/c99-6_10_3_4_p5.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_undef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/c99-6_10_3_4_p9.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_oper_spelling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/expr_multichar.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/warning_tests.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/arm-acle-6.5.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pr19649-signed-wchar_t.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/first-line-indent.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pp-record.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_microsoft.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_rparen_scan2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_poison.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/dump-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pp-record.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/cxx_true.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel/foo.hmap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel/Foo.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel/Foo.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel/Foo.framework/Headers/Foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel2/Product
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel2/Product/someheader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel2/project-headers.hmap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel2/system
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel2/system/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel2/system/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/headermap-rel2/system/usr/include/someheader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/TestFramework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/TestFramework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/TestFramework.framework/Headers/TestFramework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/TestFramework.framework/.system_framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/TestFramework.framework/Frameworks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/TestFramework.framework/Frameworks/AnotherTestFramework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/TestFramework.framework/Frameworks/AnotherTestFramework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/TestFramework.framework/Frameworks/AnotherTestFramework.framework/Headers/AnotherTestFramework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search/findme.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search/include1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search/a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search/a/include2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search/a/b
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search/a/b/include3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search/a/findme.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/Inputs/microsoft-header-search/falsepos.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/indent_macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/invalid-__has_warning1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/_Pragma-dependency2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_arg_empty.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/print_line_count.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_empty.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/_Pragma-location.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/builtin_line.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro-reserved.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/c99-6_10_3_3_p4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_bcpl_comment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/_Pragma-dependency.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/pragma_diagnostic_sections.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_fn_varargs_iso.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/macro_paste_spacing2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/headermap-rel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/headermap-rel/Foo.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Preprocessor/headermap-rel/Foo.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-nontrivial-virtual-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/typeinfo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/funcattrs-global-ctor-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/template-inner-struct-visibility-hidden.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-this.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/fp16-overload.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/reference-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr18661.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-10-01-StructResize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/overload-binop-implicitconvert.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/arm64-constructor-return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/arm64.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-arg-qualifiers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/duplicate-mangled-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-fn-attribute.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cfi-ms-rtti.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-04-05-PackedBitFieldsOverlap-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/compound-literals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/Inputs/debug-info-class-limited.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/linetable-fnbegin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-thunks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2012-02-06-VecInitialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-implicit-copy-assignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/variadic-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-derived-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sparcv9-abi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-constructor-elim.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-neon-vectors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-init-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms-inline-asm-return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sections.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-pseudo-destructor-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr18635.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2006-10-30-ClassBitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-weak.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-init-wasm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/assign-construct-memcpy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-constexpr-vs-inheritance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mingw-new-abi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-defaulted-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-globalinit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/exceptions-cxx-ehsc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-std-externc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-repress-aliasing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template-array.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/enable_if.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-function-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/array-construction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/apple-kext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/implicit-record-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/atomic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/template-anonymous-union-member-initializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-nullptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/visibility-hidden-extern-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/reference-field.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR4983-constructor-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/array-pointer-decay.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-flex-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-pack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-pack-3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2006-03-01-GimplifyCrash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-static-initializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-fn-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/call-with-static-chain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/powerpc-byval.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/c-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/destructor-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR19955.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/global-llvm-constant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-templates-memptrs-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/template-anonymous-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/auto-variable-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-init_seg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms-inline-asm-fields.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2010-05-10-Var-DbgInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/instrument-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2003-11-29-DuplicatedCleanupTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/class-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/delete-two-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/references.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/empty-nontrivially-copyable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/align-avx-complete-objects.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/default-constructor-for-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/skip-vtable-pointer-initialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vlt_to_reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr20897.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-artificial-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-thread-local-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/bitfield-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/instantiate-init-list.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/nrvo-noreturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/atomicinit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-04-14-FNoBuiltin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/arm-cc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/__null.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/eh-aggregated-inits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virt-canonical-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ref-qualifiers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/uncode-string.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/apple-kext-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/type-traits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/const-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-dup-fwd-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-subst-std.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/eh.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/union-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-line-if.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-08-05-ZeroInitWidth.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2005-02-19-UnnamedVirtualThunkArgument.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virt-thunk-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/conversion-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1y-variable-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-lambda-this.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-extreme.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-holder-self-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dynamic-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/rtti-fundamental.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-data-pointers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/for-range.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-qualifiers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/eval-recursive-constant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ptr-to-datamember.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/elide-call-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-init-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/builtins.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/const-global-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/flatten.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/apple-kext-guard-variable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-determinism.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vbtables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-04-05-PackedBitFieldsSmall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/lambda-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-anon-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-function-attrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-dynamic-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/goto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-04-23-bool2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr12104.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/template-dependent-bind-temporary.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-zero-length-arrays.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/block-byref-cxx-objc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-special-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/exceptions-no-rtti.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/global-dtor-no-atexit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-method-nodebug.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/volatile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-assign-synthesis-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/alloca-align.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-return-thunks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-lambda-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/conversion-operator-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-non-virtual-base-ordering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-windows.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-scoped-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/instantiate-blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/apple-kext-no-staticinit-section.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/reference-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/no-elide-constructors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/scoped-enums.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2005-02-13-BadDynamicInit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-convert.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-indirect-field-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-in-cplus-object.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-12-23-MissingSext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/exceptions-cxx-new.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/multi-dim-operator-new.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vla.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2005-02-11-AnonymousUnion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-enum-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-09-10-RecursiveTypeResolution.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-unnamed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2010-06-22-BitfieldInit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-byval.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-method.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms-integer-static-data-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/field-access-debug-info.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-initialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-base-ctor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-base-destructor-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-eh-catch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-back-references-pr13207.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-destructor-synthesis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/thunks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-structors-delayed-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/c99-variable-length-array.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/derived-to-virtual-base-class-calls-final.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/noexcept.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2003-12-08-ArrayOfPtrToMemberFunc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtt-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-byval-vararg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-local-anonymous-unions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vararg-non-pod.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-function-pointers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/typeid-should-throw.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/uncopyable-args.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/rtti-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-string-literals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms-property.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-lambdas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-limited.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dllimport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/weak-external.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/for-range-temporaries.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-implicit-move-assignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/devirtualize-virtual-function-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/thunk-linkonce-odr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/arm-vaarg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/optnone-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/visibility-inlines-hidden.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/stack-reuse-miscompile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms-integer-static-data-members-exported.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-init-3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-typeid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-class-nolimit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/poly-unsigned.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-init-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/homogeneous-aggregates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-layout-extreme.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-data-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/DynArrayInit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr27030.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/value-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr9965.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/new-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-assign-synthesis-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/noinline-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/const-base-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/attr-x86-interrupt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/runtimecc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-init-struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/init-priority-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/block.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/new-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2006-11-30-ConstantExprCrash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/x86_64-arguments-avx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR4827-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-literal-suffix.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/nullptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-templates-memptrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2004-03-08-ReinterpretCastCopy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-char16.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-delegating-ctors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-cast-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ctor-dtor-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-loop-safety.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/m64-ptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2006-09-12-OpaqueStructCrash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cfi-cross-dso.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-loop.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-ctor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/strict-vtable-pointers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/type_visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/empty-classes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/attribute_internal_linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/switch-case-folding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-new.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/attr-notail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2003-11-02-WeakLinkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-md5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-codeview-display-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-initializer-array.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-try-throw.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-system-header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/aarch64-aapcs-zerolength-bitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/lpad-linetable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/optnone-class-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/global-init-darwin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/throw-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-friend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2008-01-12-VecInit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/abstract-class-ctors-dtors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/new.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/override-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1z-fold-expression.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/nested-base-member-access.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/globalinit-loc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-04-05-PackedBitFieldsOverlap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/default-destructor-nested.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-single-inheritance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist-pr12086.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/derived-to-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/namespace-aliases.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-fail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/reference-in-blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cfi-nvcall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-local-in-local-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/destructors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pass-object-size.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/default-constructor-template-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/aarch64-neon.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/function-template-explicit-specialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-init-4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vla-lambda-capturing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-10-27-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/implicit-copy-assign-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/partial-destruction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/incomplete-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virt-dtor-gen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vftables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/call-arg-zero-temp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/trap-fnattr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2010-06-21-LocalVarDbg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-ctor2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-anon-union-vars.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-nullptr-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/assign-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cast-to-ref-bool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-templ-uuidof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-assign-synthesis-3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-assign-synthesis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr13396.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dynamic_cast-no-rtti.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-initializer-array-new.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-vtable-key-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/conditional-temporaries.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/destructor-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/captured-statements.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/x86_32-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/attr-disable-tail-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-initializer-constructors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-array-cookies.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-line.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-user-defined-literal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/throw-expression-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/block-in-ctor-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx-apple-kext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-compatibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/global-array-destruction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-windows-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-key-function-ios.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-varargs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-07-16-Using.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/unknown-anytype.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-key-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr24097.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-ptr-to-member-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-local-class-names.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/typeid-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1y-init-captures.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/nonconst-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-exprs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2005-02-19-BitfieldStructCrash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/friend-redecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/linetable-virtual-variadic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-function-pointer-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-01-02-UnboundedArray.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-data-member-single-emission.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/optnone-and-attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template-quals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-eh-terminate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2004-06-08-LateTemplateInstantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-vector-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cfi-icall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/discard-name-values.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2010-07-23-DeclLoc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/new-with-default-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/inline-dllexport-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-uuidof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/typeid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/catch-undef-behavior2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template-limit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/rtti-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-pure-virtual.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2003-11-18-PtrMemConstantInitializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-this-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/eh-aggregated-inits-unwind.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2010-05-12-PtrToMember-Dbg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr12104.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/default-arg-temps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/destructor-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-explicit-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-base-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/x86_64-arguments-nacl-x32.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ctor-globalopt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/switch-case-folding-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/aarch64-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/no-exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2006-11-20-GlobalSymbols.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-back-references.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dllimport-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cfi-speculative-vtable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms-thread_local.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-no-dtor-callback.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/global-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-align.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/merge-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2003-11-27-MultipleInheritanceThunk.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virt-template-vtable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-abi-examples.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-static-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2006-03-06-C++RecurseCrash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/bool-bitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR5834-constructor-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/windows-itanium-exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-access.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/blocks-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virt-dtor-key.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-initializer-scalars.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-01-06-PtrMethodInit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-template-callback.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-alignment-fail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/reference-in-block-args.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-04-10-PackedUnion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-method-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/stmtexpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-structors-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2012-03-16-StoreAlign.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR26569.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-large-constant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template-partial-specialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dllexport-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-structors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-direct-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template-fwd.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/casts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-destructor-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-unnameable-conversions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-init-assignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-method2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-available-externally.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/nrvo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-function-context.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1y-generic-lambdas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/template-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template-recursive.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr21989.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-extern-local.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/builtins-systemz-zvector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/windows-on-arm-stack-probe-size.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/lvalue-bitcasts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/attr-mode-vector-types-tmpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dependent-type-member-pointer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/template-static-var-defer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/convert-to-fptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/function-template-specialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-for-array-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/catch-undef-behavior.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/thunks-available-externally.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-bases.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx-block-objects.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/apple-kext-indirect-call-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/bitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/address-of-fntemplate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-cxx14.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/invalid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr15753.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2010-03-09-AnonAggregate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/observe-noexcept.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mingw-w64-seh-exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/reinterpret-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-this-adjustment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-nontrivial-covariant-thunk.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/wasm-args-returns.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/exceptions-seh-filter-captures.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/specialized-static-data-mem-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dynamic-cast-hint.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/int64_uint64.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/fp16-mangle.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ptr-to-member-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-variadic-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-constructor-synthesis-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-ambiguous.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-rvalue-ref.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dllimport-rtti.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/condition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-init-anon-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/fastcall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-03-17-dbg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cfi-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/switch-case-folding-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-no-thunks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/new-operator-phi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR5050-constructor-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-gline-tables-only.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-destructor-return-this.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-key-function-arm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-decl-nested.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR6474.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2010-06-22-ZeroBitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1z-lambda-star-this.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-long-double.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/attr-used.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/volatile-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-arg-order.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2004-03-09-UnmangledBuiltinMethods.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/predefined-expr-sizeof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-mutable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/eh-aggregate-copy-destroy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/scoped-enums-debug-info.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-07-29-RestrictPtrArg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-alignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/optnone-def-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vmemptr-vbase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/inline-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-abi-examples.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-assert.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr18962.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-tail-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr9130.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-methods.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/implicit-copy-constructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms_wide_predefined_expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/alignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR20038.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-default-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/arm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/tls-init-funcs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1y-variable-template-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2008-05-07-CrazyOffsetOf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/template-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-constructor-synthesis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2010-05-11-alwaysinlineinstantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/predefined-expr-cxx14.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-static-fns.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vararg-non-pod-ms-compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-cxx1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-bit-field.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/coverage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-class-limited-plugin.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/x86_64-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/explicit-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-04-05-PackedBitFields-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist-startend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/varargs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/member-call-parens.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-thunk.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-no-rtti-data.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-noreturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/temp-order.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-address-space.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2004-11-27-FriendDefaultArgCrash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/arm64-darwinpcs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-init-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/lambda-expressions-inside-auto-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/extern-c.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-08-11-VectorRetTy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-use-after-free.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/address-space-ref.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/linetable-eh.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-template-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/threadsafe-statics-exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/try-catch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/thunk-use-after-free.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-vtable-optzn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pod-member-memcpys.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-valist.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1y-deduced-return-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-09-09-packed-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-fwd-ref.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vmemptr-conflicts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/apple-kext-indirect-virtual-dtor-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr12251.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/bitsets.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR5093-static-member-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-constructor-elim-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-wchar.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-uuid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms_struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/visibility-ms-compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/invariant.group-for-vptrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/const-init-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/init-invariant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/funcsig.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2004-03-15-CleanupsAndGotos.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2005-01-03-StaticInitializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-04-05-StructPackedFieldUnpacked.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/exception-spec-decay.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/reference-bind-default-argument.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-union-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-rtti.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/predefined-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/no-opt-volatile-memcpy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2005-02-20-BrokenReferenceTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/delayed-template-parsing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mips-size_t-ptrdiff_t.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-06-16-DebugInfoCrash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/apple-kext-indirect-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/inheriting-constructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/empty-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/weak-extern-typeinfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-scope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/conditional-gnu-ext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-debug-info.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sizeof-unwind-exception.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2009-05-04-PureConstNounwind.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-throw.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/bitset-blacklist.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-default-cc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/anonymous-union-member-initializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR5863-unreachable-block.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/aarch64-mangle-neon-vectors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/decl-ref-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dynamic-cast-always-null.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-init-pnacl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/linetable-cleanup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-assume-load.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/array-value-initialize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/main-norecurse.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-07-29-RestrictRefArg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-virtual-member-pointers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/rtti-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-vdtors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/attr-cleanup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/const-init-cxx1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/redefine_extname.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-unrestricted-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/aarch64-cxxabi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance-vtordisps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vector-splat-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/new-array-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/arm64-empty-struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2011-12-19-init-list-ctor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-global.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/derived-to-base-conv.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-trivial-initializer-struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-unroll.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/asm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/operator-new.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/internal-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-callback.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/temporaries.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr11797.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/PR24289.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-functions-incomplete-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/partial-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cp-blocks-linetables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cfi-stats.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/conditional-expr-lvalue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/incomplete-member-function-pointer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/forward-enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vararg-conversion-ctor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-member-variable-explicit-specialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/constructor-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dllexport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2007-05-03-VectorInit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-pointer-initialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/global-block-literal-helpers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pr20719.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/throw-expression-cleanup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/new-array-init-exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-key-function-win-comdat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/default-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/implicit-instantiation-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/regparm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-ms-return-qualifiers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx11-thread-local.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-interface.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-trivial.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-class-limited.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dllexport-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/sanitize-dtor-vtable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/default-constructor-default-argument.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/destructor-debug-info.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/move-assignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/rvalue-references.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/split-stacks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx1y-initializer-aggregate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pragma-pack-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-byval-sret.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/block-destruct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/stack-reuse.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/ms-novtable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-operator-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-uuidof-mangling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/lambda-expressions-nested-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/thiscall-struct-return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/delete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-member-pointers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vtables-multiple-nonvirtual-inheritance-return-adjustment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dllexport-pr26549.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-local-classes-nested.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/armv7k.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cxx0x-initializer-references.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/warn-padded-packed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/instantiate-temporaries.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2004-09-27-DidntEmitTemplate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/cast-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-vmemptr-fastcall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/threadsafe-statics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/deferred-global-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/array-operator-delete-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/pointers-to-data-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2004-11-27-ExceptionCleanupAssertion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/key-function-vtable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/static-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/virtual-inherited-destructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-local-class-vtables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/vtable-layout-abi-examples.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/trivial-constructor-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/exceptions-seh.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/dllexport-ms-friend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/copy-assign-volatile-synthesis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/debug-info-context.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-subst.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/mangle-alias-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/2004-01-11-DynamicInitializedConstant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCXX/anonymous-namespaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/cursor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/incomplete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/language-detection.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/ranges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/basic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/xmloutput.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/multiple-inputs-error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/line-ranges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/multiple-inputs-inplace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/disable-include-sorting.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/adjust-indent.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/disable-format.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/multiple-inputs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Format/style-on-command-line.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-print-char-literal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/win32-macho.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/backend-optimization-failure-nodbg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/warn-sysheader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-wchar.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/reduced-diags-macros-backtrace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-aka-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/backend-optimization-failure.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/emit-html-insert.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/caret-diags-macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-trailing-null-bytes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/show-diag-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/dev-fd-fs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-invalid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-arm-attr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-stmt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-mapping2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/thinlto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/remap-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/unprintable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-decl.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-presumed.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/backend-stack-frame-diagnostics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/warning-flags-enabled.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags-stable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-stmt.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-comment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/warning-flags-tree.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-mapping.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags-frontend.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/unnecessary-elipses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-template-diffing-cxx98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-macro-backtrace2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/attr-source-range.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/wrong-encoding2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/message-length.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/verify.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags-no-category.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags-driver.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/permissions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/tabstop.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-stmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/caret-diags-scratch-buffer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags-no-issue.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diagnostic-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/working-directory.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/predefines.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/error-limit-multiple-notes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-format.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/error-limit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-print-objectivec.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-color.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-verify.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/languageOptsOpenCL.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-print-pragmas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-decl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-print-pragmas-xfail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/macro-backtrace.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/wrong-encoding.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-macro-backtrace.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-special-chars.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/warn-in-system-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/backend-stack-frame-diagnostics-fallback.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags-really-long-text.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-msp430-attr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/cc1as-asm.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/warn-in-system-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-null-bytes-in-line.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/driver-verify.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-template-diffing-color.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/warning-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/emit-html.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/Inputs/working-directory.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/Inputs/include.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/Inputs/remapped-file-2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/Inputs/remapped-file
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/Inputs/remapped-file-3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/Inputs/serialized-diags-stable.dia
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/interpreter.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-line-wrapping.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/integer-literal-printing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/target-parser.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/diag-template-diffing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/freebsd-arm-size_t.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/reduced-diags-macros.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/ast-dump-lookups.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/include-stack-for-note-flag.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Misc/serialized-diags-single-issue.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/c11-noreturn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/recovery.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-forcollection-neg.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/designator.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-extern-c-array.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-ambig-decl-expr-xfail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-rvalue-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-throw.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx1z-coroutines.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-typeof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-alias-printing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-recover.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/c1x-alignas.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-using-declaration.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/check-syntax-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/warn-semicolon-before-method-body.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-member-init-missing-paren-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/arm-windows-calling-convention-handling.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/attr-availability.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/namelookup-bug-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-forcollection-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/MicrosoftExtensionsInlineAsm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/MicrosoftExtensions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pointer_promotion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/selector-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/ms-if-exists.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcxx11-user-defined-literal.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/builtin_types_compatible.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-template-argument.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-bool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/method-prototype-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/captured-statements.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-ambig-paren-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/char-literal-printing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/knr_parameter_attributes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-options.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-messaging-neg-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-interfaces.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/bracket-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-kernel.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/atomic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/warn-dangling-else.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/ms-anachronism.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcxx11-initialized-temps.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-foreach-syntax.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/vsx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/expressions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-namespace-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/access-spec-attrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/PR21872.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcxx-at.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/warn-cuda-compat.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-concepts-ambig-constraint-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcxx0x-lambda-expressions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-visibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/ms-seh.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/expressions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/switch-recovery.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-typeid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-ambig-init-templ.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-messaging-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx1z-attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-synthesized-recover.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-pragma.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/argument_qualified.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/typeof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/encode.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/empty-translation-unit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/completely-empty-header-file.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/namelookup-bug-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/implicit-casts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/statements.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/struct-recursion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/no-gnu-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-type-printing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/recovery.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/compound_literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/asm-constraints-pr7869.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-quirks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/declarators.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-member-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-category-neg-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-friend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/recovery.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-variadic-func.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/missing-closing-rbrace.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-member-initializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/c-namespace.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/extension.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/extra-semi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/x64-windows-calling-convention-handling.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/skip-function-bodies.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-default-delete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/MicrosoftExtensions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/missing-end-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-condition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/check_cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/control-scope.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/missing-end.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-atomics-cl20.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-casting.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/placeholder-recovery.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/traditional_arg_scope.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/missing-selector-name.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-weak.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/brackets.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/if-scope-c90.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-ambig-decl-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-using-directive.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/diag-crash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pointer-arithmetic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-lambda-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/offsetof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-class-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/function-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-extra-semi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-literal-operators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-ext-delete-default.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-member-initializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/annotation-token-in-lexed-body.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-undeclared-identifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/attributes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-ambig.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-stmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-for-range.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cuda-kernel-call.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/c1x-generic-selection.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx11-user-defined-literals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/method-def-in-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-missing-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-property-syntax.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-condition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-in-cxx98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx1z-constexpr-lambdas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/parenthesis-balance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/recursion-limits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/crash-report.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/block-block-storageclass.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/top-level-semi-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-boxing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/attributes.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx11-stmt-attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx1z-fold-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/parser_overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-unroll.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/promote_types_in_proto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx11-brace-initializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcbridge-related-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/ms-inline-asm-nested-braces.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/for.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/DelayedTemplateParsing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/missing-end-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-class-template-specialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-cl20.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/namespace-alias-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/eof2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-forcollection-neg-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-astype.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cuda-kernel-call-c++11.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/colon-colon-parentheses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-storage-class.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/PR11000.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/bad-control.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/builtin_classify_type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-unroll-hint.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/if-scope-c99.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcxx11-attributes.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-override-control-keywords.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-optimize-diagnostics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/argument_scope.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/block-pointer-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-invalid-function-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/enhanced-proto-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-loop.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/namespaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-template-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-try-catch-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-pack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/backtrack-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-concepts-requires-clause.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-in-c.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/argument_redef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/altivec.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-altivec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-init.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx11-base-spec-attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcxx-lambda-expressions-neg.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/debugger-import-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx11-type-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/brackets.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/altivec-csk-bool.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx11-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-keywords.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcxx11-protocol-in-template.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-error-qualified-implementation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-invalid-for-range.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/parmvardecl_conversion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objcxx14-protocol-in-template.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/check-objc2-syntax-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-loop-safety.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/goto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/eof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/ms-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/opencl-image-access.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx1z-nested-namespace-definition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-concept-declaration.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-default-args.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-visibility2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx-ambig-paren-expr-asan.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/cxx0x-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/asm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/objc-diag-width.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/pragma-fp-contract.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/CompoundStmtScope.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/ms-if-exists.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/nullability.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Parser/missing-end-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/parse-errors.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/real-path-found-first.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/relative-path.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/module-import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/include-real-from-virtual.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/include-virtual-from-real.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/incomplete-umbrella.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/implicit-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/include-mixed-real-and-virtual.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/framework-import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/umbrella-mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/actual_module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/import_some_frame.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/public_header2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/some_frame_module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/public_header3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/missing-key.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/vfsoverlay.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/IncompleteVFS.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/actual_header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/Foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/external-names.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/unknown-value.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/actual_module2.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/include_real.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/public_header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/use-external-names.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/Foo.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/Foo.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/Foo.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/Foo.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/Foo.framework/Headers/Foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/UsesFoo.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/UsesFoo.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/UsesFoo.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/UsesFoo.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/UsesFoo.framework/Headers/UsesFoo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/incomplete-umbrella.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/vfsoverlay2.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/Incomplete.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/unknown-key.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/Inputs/invalid-yaml.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/external-names.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/VFS/include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_proc_bind_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/atomic_read_codegen.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_simd_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_grainsize_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_reduction_codegen_UDR.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_depend_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/single_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_map_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_exit_data_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_num_threads_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_copyin_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/threadprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/linking.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_default_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/atomic_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_final_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/atomic_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/single_firstprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_map_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/cancel_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskwait_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_shared_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_enter_data_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/threadprivate_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_loop_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_aligned_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_linear_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/distribute_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_defaultmap_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/atomic_update_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_private_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_schedule_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_schedule_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/barrier_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/nvptx_target_firstprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_firstprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_exit_data_nowait_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_schedule_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_aligned_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/atomic_capture_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_reduction_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_reduction_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_safelen_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_copyin_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_linear_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_default_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_proc_bind_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_linear_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_enter_data_nowait_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/openmp_check.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_safelen_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/single_copyprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_linear_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/single_private_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_simd_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/atomic_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/openmp_common.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_aligned_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_data_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_schedule_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskyield_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskwait_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_exit_data_device_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/schedule_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/predefined_macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_num_threads_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_exit_data_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_num_threads_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_proc_bind_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/distribute_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/flush_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_depend_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_default_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_firstprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskyield_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_exit_data_depend_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_safelen_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_enter_data_device_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_default_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/cancellation_point_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_metadata.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_reduction_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_reduction_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_default_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_simdlen_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_private_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_shared_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/master_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_enter_data_depend_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_data_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_data_device_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/no_option_no_warn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_private_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/distribute_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/cancel_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/driver.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/cancellation_point_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_if_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_simd_ast_print.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/option_warn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_ordered_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/flush_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_private_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/ordered_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/nvptx_target_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/ordered_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_loop_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/critical_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_reduction_codegen.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/flush_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/distribute_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_shared_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_copyin_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_firstprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/critical_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_linear_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_codegen_global_capture.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/nesting_of_regions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_shared_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_loop_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_reduction_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskgroup_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/single_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/no_option.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskgroup_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/barrier_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/master_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_private_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_num_threads_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_num_threads_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_priority_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_lastprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_map_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_default_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/distribute_dist_schedule_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_enter_data_map_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_copyin_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/single_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_loop_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_num_teams_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/cancel_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_proc_bind_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_defaultmap_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskyield_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_simdlen_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_nowait_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_firstprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/single_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_linear_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_codegen_registration_naming.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_ordered_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_nowait_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/single_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_codegen_registration.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_simdlen_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/cancel_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/barrier_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_proc_bind_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_shared_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_linear_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_linear_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_firstprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_firstprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_priority_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/atomic_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_proc_bind_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/distribute_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/distribute_dist_schedule_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_if_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/ordered_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_final_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_proc_bind_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_num_threads_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskwait_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_copyin_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_device_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_reduction_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/cancellation_point_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_defaultmap_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_exit_data_map_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_device_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/declare_reduction_ast_print.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_simdlen_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_if_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_data_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_default_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/simd_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_nowait_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/sections_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_aligned_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_num_threads_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_depend_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/critical_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_reduction_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/master_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_num_tasks_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_lastprivate_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_schedule_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_final_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_depend_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_enter_data_ast_print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskgroup_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_misc_messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_private_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_simd_grainsize_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/atomic_write_codegen.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_for_collapse_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_loop_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_loop_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/teams_thread_limit_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_firstprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_simd_safelen_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_map_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_ordered_clause.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/threadprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_priority_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/task_default_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/function-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_for_simd_loop_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_private_codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/for_linear_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_num_tasks_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/target_parallel_device_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/parallel_sections_lastprivate_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/OpenMP/taskloop_loop_messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/cxx-sections.data
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/function-overload.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/address-spaces.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/link-device-bitcode.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/printf.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/launch-bounds.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/llvm-used.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/convergent.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/device-stub.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/device-vtable.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/ptx-kernels.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/Inputs/device-code-2.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/Inputs/device-code.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/Inputs/cuda.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/host-device-calls-host.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/device-var-init.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/printf-aggregate.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/alias.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/cuda-builtin-vars.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/kernel-call.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenCUDA/filter-decl.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/concepts-ts
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/concepts-ts/dcl.dcl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/concepts-ts/dcl.dcl/dcl.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/concepts-ts/dcl.dcl/dcl.spec/dcl.spec.concept/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.enum
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.enum/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.enum/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/p4-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.depend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.depend/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.depend/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.fallthrough
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.fallthrough/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.deprecated
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.deprecated/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.align
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.align/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.align/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.align/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.align/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.grammar
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.grammar/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.noreturn
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.noreturn/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.typedef
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.typedef/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.cv
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.simple
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.simple/p4-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.simple/p5-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-generic-lambda-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p12-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p3-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.fct.spec/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.friend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.stc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.spec/dcl.stc/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def/namespace.memdef
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def/namespace.memdef/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def/namespace.unnamed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def/namespace.unnamed/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.def/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udir/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udir/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.alias
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p3-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p5-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p6-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p8-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p12.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p13.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.link
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.link/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.link/p7-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.link/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.dcl/dcl.asm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.dcl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.dcl/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.virt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.friend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.friend/p2-cxx03.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.friend/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.friend/p3-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.friend/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.friend/p9-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.friend/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.nest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.nest/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.protected
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.protected/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.protected/p1-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.base
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.base/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.base/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.access.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.access/class.paths
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.double
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.bool
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.func
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.rank
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.prom
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.prom/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.prom/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.array
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.lval
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.mem
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.mem/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.fpint
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.qual
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.qual/pr6089.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.fpprom
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.integral
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.ptr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/conv/conv.ptr/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.name
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.nested.type
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.nested.type/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.friend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.friend/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.friend/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.friend/p1-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.friend/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.friend/p1-ambiguous.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.static
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.static/class.static.data
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.static/class.static.data/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.static/class.static.data/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.static/class.static.mfct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/p6-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.union
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.union/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.union/class.union.anon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.union/class.union.anon/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.union/class.union.anon/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.union/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mfct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mfct/class.mfct.non-static
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mfct/class.mfct.non-static/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mfct/class.this
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.nest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.nest/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.nest/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.nest/p1-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.base
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.base/class.base.init
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.base/class.base.init/p5-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.local
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.local/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.local/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.local/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.local/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.local/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.bit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.bit/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mem
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mem/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mem/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mem/p1b.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mem/p13.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mem/p14.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mem/p5-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class/class.mem/p8-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p15-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p9-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p10-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p11-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p12.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p13.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.param/p15.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.export
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.type
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.type/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.names
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.names/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.names/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.names/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/basic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.partial
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.partial/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.partial/p12.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.partial/p9-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/cwg1170.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p21.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p22.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p10-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p17.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p5-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p8-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.type/p9-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.funcaddr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.funcaddr/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.deduct/sfinae-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.arg.explicit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.arg.explicit/p9-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.arg.explicit/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.arg.explicit/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.arg.explicit/p3-nodeduct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.arg.explicit/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.fct.spec/temp.over
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.refine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.refine/concept.member.lookup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.refine/concept.refine.maps
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.support
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.map/concept.map.assoc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.map/concept.map.fct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.def/concept.req
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.def/concept.assoc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.def/concept.fct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/concept/concept.def/concept.axiom
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.template
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.template/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.nontype
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.nontype/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.nontype/p1-11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.nontype/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.type
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.type/p2-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.arg/temp.arg.type/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.constrained
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.constrained/temp.req
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.constrained/temp.req/temp.req.impl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.constrained/temp.req/temp.req.sat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.constrained/temp.constrained.set
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.constrained/temp.archetype
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.constrained/temp.archetype/temp.archetype.assemble
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.constrained/temp.constrained.inst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep.res
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep.res/temp.dep.candidate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep.res/temp.point
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep.res/temp.point/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.nondep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.expr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.type
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.type/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.constexpr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.constexpr/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.constexpr/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep/temp.dep.temp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.dep/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.local
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.local/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.local/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.local/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.local/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.local/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.local/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.res/temp.inject
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.concept.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.friend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.friend/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.friend/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.friend/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.friend/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.friend/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.alias
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.alias/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.alias/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.alias/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct/temp.func.order
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct/temp.func.order/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct/temp.func.order/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct/temp.func.order/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct/temp.over.link
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct/temp.over.link/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct/temp.over.link/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.fct/temp.over.link/p4-neg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/p8-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/temp.class.order
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/temp.class.order/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/temp.class.spec.mfunc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/temp.class.spec.mfunc/p1-neg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/temp.class.spec.mfunc/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/p8-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/temp.class.spec.match
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class.spec/p9-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.mem
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.mem/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.mem/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.mem/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.mem/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/fixed-expansion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/partial-ordering.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/example-bind.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/injected-class-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/parameter-matching.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/multi-level-substitution.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/ext-blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/p5.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/deduction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/example-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/metafunctions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/example-tuple.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.variadic/sizeofpack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.enum
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.enum/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.class
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.class/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.static
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.static/p1-inst.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.static/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.func
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.func/p1inst.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.func/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.func/pr5056.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.decls/temp.class/temp.mem.func/p1-retmem.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/cxx1y-variable-template-no-body.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.inst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.inst/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.inst/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p20.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p21.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p13.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p14.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p15.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p16.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p17.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p18.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p19.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p5-example.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/examples.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.expl.spec/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p9-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p12.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p1-emit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/temp.explicit/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/temp/temp.spec/no-body.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/implimits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.ambig.res
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/p4-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.fct.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.general
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.general/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.delete
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.delete/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.default
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.default/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.fct.def/dcl.fct.def.default/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.mptr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.mptr/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.ptr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p6-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/dcl.fct.def.default
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/dcl.fct.def.default/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/dcl.fct.def.default/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p8-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p9-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p13.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p14.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p2-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.ref
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.ref/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.ref/p6-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.array
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.array/p1-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.array/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.meaning/dcl.array/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.name
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.name/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.aggr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.aggr/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.aggr/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.aggr/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.string
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.string/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.string/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/p14-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.list
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.list/p7-0x-fixits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.list/basic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.list/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.list/p7-cxx11-nowarn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.list/p7-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-cxx0x-no-extra-copy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-cxx03-extra-copy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-examples.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/basic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.over
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.over/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.over/p2-resolve-single-template-id.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.over/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.over/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.ics.rank
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.ics.rank/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.best.ics
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.list
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.list/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.ref
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.user
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.user/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.ellipsis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.best/over.best.ics/over.ics.scs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.ctor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.copy
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.copy/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.call
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.call/over.call.func
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.call/over.call.object
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.list
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.ref
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/p4-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.conv
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.oper
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.funcs/over.match.oper/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.match/over.match.viable
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.built
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.built/p23.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.built/p25.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.load
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.load/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.dcl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.ass
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.sub
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.call
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.literal
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.literal/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.literal/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.literal/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.literal/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.literal/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.literal/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.ref
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.unary
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/over/over.oper/over.binary
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.dcl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.dcl/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.dcl/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.iter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.iter/stmt.ranged
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.iter/stmt.ranged/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.iter/stmt.do
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.iter/stmt.for
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.iter/stmt.while
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.late
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.block
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.jump
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.jump/stmt.cont
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.jump/stmt.break
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.jump/stmt.goto
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.jump/stmt.return
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.expr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.ambig
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.ambig/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.label
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.label/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.select
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.select/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.select/stmt.if
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.select/stmt.switch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/stmt.stmt/stmt.select/stmt.switch/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.comma
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.mul
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.new
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.new/p20.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.new/p17-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.new/p20-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.new/p17.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.new/p19.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.new/p2-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.op
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.op/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.op/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.op/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.alignof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.sizeof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.sizeof/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.sizeof/p5-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.pre.incr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.delete
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.delete/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.noexcept
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.noexcept/cg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.noexcept/ser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.unary/expr.unary.noexcept/sema.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.log.or
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.eq
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.general
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.general/p12-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.general/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.general/p4-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.general/p8-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2-generic-lambda-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p20.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p12.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p21.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p13.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5-generic-lambda-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p14.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p23.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p15.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p16.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks-irgen.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p18.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p19.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p15-star-this-capture.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/default-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.prim/expr.prim.lambda/p11-1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.xor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.shift
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.bit.and
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.or
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.log.and
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.rel
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.cond
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.type.conv
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.type.conv/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.sub
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.call
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.call/p7-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.ref
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.ref/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.reinterpret.cast
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.reinterpret.cast/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.dynamic.cast
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.dynamic.cast/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.typeid
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.const.cast
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.const.cast/p1-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.post.incr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.pseudo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.static.cast
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.static.cast/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.post/expr.static.cast/p9-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.ass
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.ass/p9-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.const
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.const/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.const/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.const/p3-0x-nowarn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.const/p5-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.mptr.oper
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.mptr.oper/p6-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.mptr.oper/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.add
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/p10-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.cast
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.cast/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/expr.cast/p4-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/expr/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.free
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.free/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.free/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.temporary
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.temporary/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.init
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.init/class.expl.init
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.init/class.base.init
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.init/class.base.init/p8-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.init/class.base.init/p9-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.conv
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.conv/class.conv.fct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.conv/class.conv.ctor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.conv/class.conv.ctor/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.inhctor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.inhctor/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.inhctor/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.inhctor/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.inhctor/elsewhere.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.inhctor/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.inhctor/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.inhctor/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.ctor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.ctor/p4-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.ctor/p5-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.ctor/p6-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.ctor/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.dtor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.dtor/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.dtor/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.dtor/p5-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.dtor/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.dtor/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.dtor/p10-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.dtor/p2-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p13-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p8-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p15-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p33-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p25-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p11.0x.move.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p15-inclass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p11.0x.copy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p20.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p23-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/implicit-move-def.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p18-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p28-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/implicit-move.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.copy/p12-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/special/class.cdtor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.link
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.link/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.link/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.link/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.start
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.start/basic.start.init
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.start/basic.start.init/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.start/basic.start.main
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.start/basic.start.main/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.start/basic.start.main/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.start/basic.start.term
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lval
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.life
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.def.odr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.def.odr/p2-typeid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.def.odr/p1-var.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.types
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.types/basic.fundamental
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.types/basic.type.qualifier
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.types/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.types/basic.compound
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.argdep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p2-template-id.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.classref
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p1-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.classref/p4-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/p6-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/concept.qual
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.qual/namespace.qual/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.elab
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.elab/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.elab/templateid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.udir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.udir/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.unqual
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.unqual/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.unqual/p12.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.unqual/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.unqual/p13.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.unqual/p14.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.unqual/p15.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.lookup/basic.lookup.unqual/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.pdecl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.pdecl/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.pdecl/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.req
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.funscope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.local
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.local/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.local/p4-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.concept
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.namespace
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.hiding
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.hiding/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.declarative
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.proto
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.enum
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.scope/basic.scope.class
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.inherit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.deallocation
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.deallocation/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/p2-nodef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/p2-noexceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.allocation
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.allocation/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.dynamic/basic.stc.dynamic.safety
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.static
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.thread
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.stc/basic.stc.auto
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/basic/basic.align
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.error
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.null
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.replace
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.replace/cpp.concat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.replace/cpp.scope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.replace/cpp.rescan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.replace/cpp.stringize
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.replace/cpp.subst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.cond
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.pragma.op
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.predefined
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.line
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/cpp/cpp.pragma
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/garbage.collection
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.abstract
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.abstract/p16.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.abstract/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.abstract/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.mi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.virtual
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.virtual/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.virtual/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.virtual/p12.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.member.lookup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.member.lookup/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.member.lookup/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.member.lookup/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/class.derived/class.member.lookup/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.phases
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.separate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.header
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.key
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.ppnumber
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.charset
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.charset/p2-cxx98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.charset/p2-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.fcon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.string
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.string/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.icon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.bool
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p10.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p12.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p7.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p8.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ext/p9.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.nullptr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ccon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.ccon/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.literal/lex.literal.kinds
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.digraph
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.operators
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.name
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.pptoken
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.pptoken/p3-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.token
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.trigraph
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.trigraph/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.trigraph/p2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.trigraph/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/lex/lex.comment
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr16xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr412.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr17xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr18xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr19xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr0xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr1xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr2xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr3xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr4xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr5xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr6xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr7xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr9xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr10xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr12xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr13xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr1748.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr14xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/drs/dr15xx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.ctor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p5-pointers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p2-places.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/canonical.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p5-delayed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p14.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p15.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p2-dynamic-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p5-virtual.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p9-dynamic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p9-noexcept.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.spec/p14-ir.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.handle
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.handle/p16.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.special
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.special/except.unexpected
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.special/except.terminate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.special/except.uncaught
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/except/except.throw
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.access.dcl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.ios.members
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.incr.bool
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.string
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.static
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.iterator.primitives
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.iterator.primitives/iterator.traits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.iterator.primitives/std.iterator.tags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.iterator.primitives/iterator.backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.iterator.primitives/iterator.basic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.binders
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.binders/depr.lib.bind.2nd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.binders/depr.lib.bind.1st
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.binders/depr.lib.binder.2nd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.lib.binders/depr.lib.binder.1st
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.auto.ptr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.auto.ptr/auto.ptr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.auto.ptr/auto.ptr/auto.ptr.cons
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.auto.ptr/auto.ptr/auto.ptr.conv
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.auto.ptr/auto.ptr/auto.ptr.members
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.c.headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.istrstream
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.strstreambuf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.ostrstream
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.strstream
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/depr/depr.str.strstreams/depr.strstream/depr.strstream.dest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.object
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.memory
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.scope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.compliance
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/syntax
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.ack
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.refs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.structure
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.static.type
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.cond.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.ill.formed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.impl.defined
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.multibyte
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.unspecified
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.well.formed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.parameter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.impl.limits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.signature
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.undefined
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.argument
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.locale.specific
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.diagnostic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.defs/defns.dynamic.type
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.multithread
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CXX/intro/intro.execution
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/exceptions-nonfragile.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2008-08-25-incompatible-cond-expr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-container-subscripting-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/protocol-in-extended-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/local-static-block.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/complex-double-abi.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/super-dotsyntax-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-variadic-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/try.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-instancetype.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ivar-layout-no-optimize.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/attr-noreturn.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-property4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-unsafeclaim.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/block-6.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-strong-cast-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-setter-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-captured-block-var-layout.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/nsvalue-objc-boxable-mac-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-gc-aggr-assign.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/dot-syntax-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/encode-test-5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/metadata-class-properties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/mangle-blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/mrr-captured-block-var-inlined-layout.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-assign-global.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-asm-attribute-neg-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-no-write-barrier.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/misc-atomic-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/null-objc-empty-vtable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/compatibility-alias.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-linetable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/fp2ret.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/runtime-fns.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-write-barrier-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-write-barrier.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-no-strong-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-weak-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-dbg.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-read-weak-byref.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/undefined-protocol2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-captured-32bit-block-var-layout.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/forward-class-impl-metadata.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-fwddecl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-property5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/metadata-symbols-32.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-static-var.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/stret_lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/tentative-cfconstantstring.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/layout-bitfield-crash.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-i386.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/no-sanitize.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-no-runtime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2008-11-24-ConstCFStrings.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-default-synth-ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/newproperty-nested-synthesis-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/messages-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/category-super-class-meth.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/attr-callconv.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/dot-syntax.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-dictionary-literal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/unoptimized-setter.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/encode-cstyle-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-crash-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/encode-test-6.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/bitfield-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-arm.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-incr-decr-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-section-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/simplify-exceptions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/complex-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/nsvalue-objc-boxable-ios-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/exceptions-asm-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-with-atthrow.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-self.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objfw.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/link-errors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/bitfield-gnu.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-write-barrier-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-fixed-enum.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-compound-stmt.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-related-result-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/attr-availability.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-captured-32bit-block-var-layout-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arm64-int32-ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/weak-metaclass-visibility.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2010-02-23-DbgInheritance.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2007-10-18-ProDescriptor.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-bridged-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/constant-string-class-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/interface.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ns_consume_null_check.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-weak-assign.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/function-decay.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-weak-compare.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-asm-attribute-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-nonfragile-abi-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-ivar-layout.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/category-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-loadweakretained-release.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-weak-block-call.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/next-objc-dispatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/catch-lexical-block.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/implicit-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/super-dotsyntax-struct-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-category-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/overloadable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/super-message-fragileabi.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/implicit-objc_msgSend.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ivar-layout-64-bitfields.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2008-11-12-Metadata.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-aggregate.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-nested-blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/blocks-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-property-synth.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-write-barrier-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/predefined-expr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-block-helper.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/Inputs/literal-support.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/Inputs/nsvalue-boxed-expressions-support.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-complex.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/reorder-synthesized-ivars.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/undefined-protocol.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-strong-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-ref-cast-to-void.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/mrc-weak.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/gnu-exceptions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/optimized-setter.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/autorelease.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-lifetime-crash.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-foreach.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-arc-container-subscripting.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/super-classmethod-category.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ivar-base-as-invariant-load.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-ivar-assign.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/bitfield-access.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2011-03-08-IVarLookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-pubtypes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arm-atomic-scalar-setter-getter.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/for-in.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ivar-layout-array0-struct.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/no-category-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/nsvalue-objc-boxable-ios.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2010-02-09-DbgSelf.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/block-over-align.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-assign-ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/stret-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-protocol-enc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/no-vararg-messaging.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/forward-protocol-metadata-symbols.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-weak-ivar-debug.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/parameterized_classes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2010-02-15-Dbg-MethodStart.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/blocks-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-write-barrier-5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-property-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/hidden-visibility.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-id-with-protocol.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-retain-codegen.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/atomic-aggregate-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/stand-alone-implementation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/builtin-memfns.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/block-var-layout.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-weak-import-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/optimized-setter-ios-device.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-block-captured-self.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-unoptimized-byref-var.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-type-mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-list-in-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/designated-initializers.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-property-encode.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/fragile-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/continuation-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/constant-strings.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/attr-minsize.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-block-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-linkagename.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/bitfield-ivar-offsets.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/gc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2009-01-26-WriteBarrier-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/auto-property-synthesize-protocol.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/bitfield-ivar-metadata.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/optimize-ivar-offset-load.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-ivars-indirect.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/attr-exception.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/mrr-autorelease.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-literal-tests.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-container-subscripting.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/sel-as-builtin-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/blocks-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/extended-block-signature-encode.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-exceptions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/x86_64-struct-return-gc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-getter-dot-syntax.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-getter-name.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/prop-metadata-gnu.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/synthesize_ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/private-extern-selector-reference.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/class-getter-dotsyntax.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/builtins.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-weak.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-block-line.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/variadic-sends.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/illegal-UTF8.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2008-10-3-EhValue.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-unbridged-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/block-byref-debuginfo.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/blocks-ivar-debug.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/deadcode_strip_used_var.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-ivars.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2007-05-02-Strong.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2010-02-01-utf16-with-null.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2010-03-17-StructRef.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/messages.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/forward-decl-param.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/id-isa-codegen.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/encode-test-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ivar-layout-nonfragile-abi2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/nested-rethrow.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/image-info.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2007-10-23-GC-WriteBarrier.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-class-extension2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/fpret.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2007-04-03-ObjcEH.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/unname-bf-metadata.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2009-01-21-invalid-debug-info.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/block-byref-variable-layout.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-selector.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ns-constant-strings.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2009-08-05-utf16.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-align.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/related-result-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/blocks-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/getter-property-mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-property2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-captured-block-var-inlined-layout.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ivars.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/protocol-property-synth.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/boxing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/metadata_symbols.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-precise-lifetime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/synthesize_ivar-cont-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/hidden.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/getter-property-type-mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/nsvalue-objc-boxable-mac.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/constant-string-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/interface-layout-64.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-agrr-getter.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc-literal-debugger-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/selector-ref-invariance.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/object-incr-decr-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-ivars-private.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/encode-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/encode-test-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-ivars-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-class-extension3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/exceptions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/message-arrays.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-property-accessors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/assign.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/stret.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/non-lazy-classes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2008-10-23-invalid-icmp.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-block-copy-escape.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ivar-layout-64.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-synthesis.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2008-11-25-Blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-new-gc-api-strongcast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-linetable-autorelease.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/attr-strong.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-protocol-metadata.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-array-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/blocks-5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/gc-weak-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-literals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-property3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/bitfield_encoding.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/ivar-invariant.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debuginfo-properties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/default-property-synthesis.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-legacy-dispatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/compound-literal-property-access.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/instance-method-metadata.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-no-arc-exceptions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/protocols-lazy.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-strong-cast-block-import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-ternary-op.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/property-list-in-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/dot-syntax-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-unopt.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/2009-02-05-VolatileProp.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc-cond-stmt.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/encode-test-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/return-objc-object.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-crash.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/synchronized.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/arc.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/objc2-weak-ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/rdr-6732143-dangling-block-reference.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/class-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/protocols.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/nonlazy-msgSend.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/terminate.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/debug-info-blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/externally-initialized-selectors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjC/metadata-symbols-64.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/using-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/bracket-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/stdin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/documentation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/preamble.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/macros-in-modules.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/Inputs/macros.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/Inputs/reserved.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/objc-expr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/ordinary-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/member-access.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/macros-in-modules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/documentation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/objc-message.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/tag.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/enum-switch-case.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/enum-switch-case-qualified.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/function-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/namespace-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/using.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/constexpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/objc-message.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/truncation.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/ordinary-name.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/member-access.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/nested-name-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/ordinary-name-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/auto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/PR9728.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/call.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/tag.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/truncation.c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/enum-switch-case.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeCompletion/some_struct.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-asm-variable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-30-AggregateInitializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-02-18-Dbg-VectorType.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/packed-structure.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/available-externally-suppress.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-line4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtinshufflevector2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-05-26-AsmSideEffect.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm_64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR2413-void-address-cast-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/nvptx-inlineasm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-mode-vector-types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/24-bit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/block-copy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64-crc32.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/static-local-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-04-OutOfMemory.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cxx-value-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-2velem.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-02-25-C-DotDotDot.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/volatile-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-02-27-MarkGlobalConstant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/no-opt-volatile-memcpy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pclmul-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-count-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mangle-windows.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-29-HugeCharConst.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-31-BadAssert.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-08-01-LoadStoreAlign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86-soft-float.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-10-02-VolatileArray.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/no-common.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pragma-detect_mismatch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-varargs-complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-03-03-DeferredType.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-09-21-IncompleteElementType.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sparc-vaarg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-13-ConditionalInCall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/le32-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-02-13-zerosize-union-field.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/fold-const-declref.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/whilestmt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/libcalls-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cast-emit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/piclevels.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/disable-tail-calls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-02-20-AggregateSAVEEXPR.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/conditional-gnu-ext.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-v8.1a-neon-intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-07-15-pad-wchar_t-array.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mcount.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/invalid_global_asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-11-25-UnnamedBitfieldPadding.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-abi-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-unsupported-nan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/function-attributes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512ifma-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-20-UnionBitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-10-15-VoidPtr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-11-InlineAsmUnion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/thread-specifier.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-31-SubregFailure.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/struct-passing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-30-redef-of-bitcasted-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-14-EntryNodePreds.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64_crypto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/c11atomics-ios.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/target-data.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-12-15-GlobalConstantTest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-04-07-SwitchStmt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-02-15-DbgStaticVar.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-09-22-bad-switch-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/enable_if.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/systemz-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cfi-check-fail2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR2001-bitfield-reload.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-interrupt-attr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/misaligned-param.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/blocksignature.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/private-extern.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/malign-double-x86-nacl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-systemz-error2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/predefined-expr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-01-16-BitCountIntrinsicsUnsigned.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-gline-tables-only2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/constructor-attribute.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/altivec.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/intel_ocl_bicc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-attributes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/override-layout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bmi-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-14-MiscTests.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tbaa-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/const-label-addr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-07-08-DeclDebugLineNo.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-setjmp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/count-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2011-02-21-DATA-common.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64le-aggregates.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-anonymous-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-18-64bitConstant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-vget.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-block-out-return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/static-order.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pragma-comment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pascal-string.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/opaque-pointer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-align-tentative.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-03-26-ZeroWidthBitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/target-builtin-noerror.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/object-size.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-neon-vget.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mangle-windows-rtd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-05-28-const-typedef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-13-TypeVarNameCollision.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/exceptions-seh-leave.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-cortex-cpus.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-30-implicit-initialization.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ffp-contract-option.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-05-23-StaticValues.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-wasm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/Inputs/stdio.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/Inputs/pgotestclang.profraw
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/Inputs/pgotestir.profraw
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-14-MiscListTests.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-p7-disabled.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-arm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-01-02-PointerDifference.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cfstring.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mangle-ms.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-13-UnnamedLocal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/fsgsbase-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-05-PackedStruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-03-11-LargeCharInString.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-08-12-asm-aggr-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-10-28-ident.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-09-28-SimpleAsm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-sparc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-poly128.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_this.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm-attrs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/fp16-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-08-21-ComplexCst.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-misc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/target-builtin-error-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-neon-directed-rounding.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/compound.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-01-14-FnType-DebugInfo.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-02-13-zerosize-union-field-ppc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-07-06-FunctionCast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vfprintf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-func-def.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512dq-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-neon-misc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_64-arguments-nacl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-neon-fma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/adc-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/compound-literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512cdintrin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mmx-shift-with-immediate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cfi-check-fail.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/funccall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-02-08-bitfield-bug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-optnone.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-03-05-syncPtr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-02-16-DbgScopes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/typedef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asan-globals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bounds-checking.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-03-AddrArrayElement.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr9614.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-arm-microsoft.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-06-14-anonymous-union-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/prefetchw-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512vl-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-20-Bitfields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-29-BitFieldStruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips16-attr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/fp128_complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-17-DeadCodeShortCircuit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-23-LocalUnionTest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/branch-target-layout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-09-08-PointerShifts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-metadata.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/forceinline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-inline-asm-avx512.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/OpaqueStruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-05-19-AlwaysInline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2011-03-31-ArrayRefFolding.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/unsigned-promotion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-09-24-SqrtErrno.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/nobuiltin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sse3-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-vaarg-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/linkage-redecl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-04-08-NoExceptions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-arm-msvc-compat-only.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/volatile-complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sse42-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-systemz-vector-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-extract.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/split-debug-filename.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-09-12-PragmaPack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-03-09-LargeArrayInitializers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/big-atomic-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-16-HardStringInit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-18-CondExprLValue.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-12-15-GlobalRedefinition.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-05-04-EnumInreg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-12-14-ExternInlineSupport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-04-23-dbg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-fix-cortex-a53-835769.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/string-literal-short-wstring.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tentative-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64-be-bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm-label.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-16-StaticArrayInit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/darwin-string-literals.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-09-18-UnionProblem.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/c-unicode.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mrtd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-20-BadBitfieldRef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-09-26-Alignment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/global-blocks-lines.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-05-29-UnionCopy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-04-EmptyStruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/wchar-const.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/atomic_ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/armv7k-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/windows-on-arm-stack-probe-size.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/variable-array.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sha-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-14-FNoBuiltin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-type-sizes-int128.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-vector-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/call.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-07-29-RestrictPtrArg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-04-WideBitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-01-C99-CompoundLiteral.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR5060-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/weak-incomplete.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-05-19-SingleEltReturn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-atomics-m0.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-minsize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR3613-static-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/int-to-pointer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/captured-statements.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-20-ComplexDivision.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/linetable-endscope.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64-vrnd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr5406.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sanitize-init-order.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_struct-bitfield-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-08-19-RecursiveLocals.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm-variable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-systemz-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/clear_cache.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-03-01-VarSizeArrayIdx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-06-17-UnorderedCompares.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-mips-msa.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/stdcall-fastcall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-05-10-GlobalUnionInit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-nan-legacy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-declspecs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-27-ConstructorCast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/func-in-block.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-arguments-linux.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/zvector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/global-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-07-22-ArrayAccessTypeSafety.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-compilation-dir.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-used.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-17-no-emit-on-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-inline-asm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-typedef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/decl-in-prototype.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pragma-pack-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-struct-onefloat.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_64-arguments-darwin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-arm-msvc-compat-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-01-23-LoadQISIReloadFailure.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-vcombine.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/noduplicate-cxx11-test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sret2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tls-model.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-assume-aligned.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/adx-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-static.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_struct-bitfield-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-rename.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/atomic-ops-libcall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm-inout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/address-safety-attr-kasan.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-mode-enums.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips64-nontrivial-return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/annotations-var.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/static-forward-decl-fun.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-09-25-DebugFilename.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cxx-condition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64_vdup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-14-MiscTests3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-09-25-DebugFilename.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-nodebug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-type-sizes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-02-07-AddrLabel.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-weak-import.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/atomic-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sse-builtins-dbg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/neon-crypto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-member.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm-unicode.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-30-LargeIntegerBitfieldMember.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips64-f128-literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-crypto-disabled.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/Nontemporal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-18-SigSetJmp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_struct-bitfield-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-line.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/string-literal-unicode-conversion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/long_double_fp128.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-03-12-StructInitializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/_Bool-conversion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/align-global-large.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-extend.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-04-09-ComplexOps.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm-errors.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-04-09-StructRetVal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-multiprecision.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/align-systemz.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-19-AddressOfRegister.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/le32-libcall-pow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-17-StringConstant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-03-07-ComplexDivEquals.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-no-movt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-10-30-ArrayCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm_function_epilog.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cfi-icall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/statements.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-arguments-iamcu.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-byval-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-09-27-ComplexIntCompare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-21-mixed-var-fn-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/exceptions-seh.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-systemz-zvector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-08-07-AlignPadding1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm_acle.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtinshufflevector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/annotations-loc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ubsan-conditional.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-arm-exclusive.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-arguments-realign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr12251.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-06-11-SaveExpr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tbaa-for-vptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/rtm-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/partial-reinitialization1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-06-17-asmcrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/target-features-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-07-UnusualIntSize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/alloca.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-be-result-return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/struct-matching-constraint.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/blocks-seq.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/indirect-goto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512vlbw-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/systemz-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-05-21-IncompleteEnum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/captured-statements-nested.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/may-alias.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-inline-asm-modifiers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-type-sizes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-257-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr19841.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-10-20-GlobalDebug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bool-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cfi-icall-cross-dso.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-disable-tail-calls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-asm-diag.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-homogenous.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips64-class-return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-aapcs-zerolength-bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ms.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tbaa.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tbm-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-11-InlineAsmStruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/wasm-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-17-ArgumentAddress.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/volatile.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/split-stacks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_64-longdouble.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/packed-nest-unpacked.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-09-11-BitfieldRefCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/linker-option.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/extern-weak.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-10-30-ZeroPlacement.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-mips.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-12-15-GlobalBoolTest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/windows-on-arm-dllimport-dllexport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-asm-warn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-unwind-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mult-alt-generic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR8880.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/blocks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-neon-vcvtX.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/align_value.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/address-safety-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-04-10-StructParameters.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-10-12-TooManyArguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/windows-on-arm-tls-support.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/lifetime-debuginfo-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/windows-itanium.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pku.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_64-arguments-win32.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/nvptx-cc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sanitize-thread-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-01-13-MemBarrier.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/libcalls-d.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-01-05-BlockInlining.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/dostmt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/const-arithmetic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cleanup-destslot-simple.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mozilla-ms-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mmx-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-naked.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-12-16-AsmNoUnwind.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-11-28-GlobalInitializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-21-PackedBitFields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc-varargs-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-24-VolatileStructCopy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/lanai-regparm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/hidden-visibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-02-07-bitfield-bug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-constraint-regs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-align-long-double.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-inline-asm-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-03-22-increment-bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-13-InlineAsmUnion2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/atomics-inlining.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/inline-asm-matching-constraint.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-18-StaticData.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-02-16-VoidPtrDiff.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/wasm-varargs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-29-override-alias-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/object-size.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-07-14-overconservative-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mult-alt-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/libcalls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-11-07-CopyAggregateAlign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/empty-union-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-packed-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/linux-arm-atomic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR15826.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/align-param.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-arguments-win32.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-volatile.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/rdrand-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/target-features-no-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86-64-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-stackaddress.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-struct-onevect.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-07-22-StructLayout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/microsoft-call-conv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64-abi-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-03-13-dbg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-elf-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-memfns.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-clobber-reg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/switch-dce.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sse.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-asm-deprecated.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/palignr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-06-22-UnionCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-gline-tables-only.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/c-strings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/blockstret.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-31-asm-labels.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-eabi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-across.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/regparm-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vla-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/global-with-initialiser.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-poly64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/nvptx-cpus.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-arguments-nommx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-03-06-OffsetOfStructCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-09-20-ComplexConstants.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/lifetime.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/constant-comparison.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/flexible-array-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/unreachable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-08-02-UnionTest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bitfield-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-22-bitfield-init-after-zero-len-array.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-unpredictable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-line3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/global-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-08-06-LargeStructTest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-05-22-callingconv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-02-10-PointerName.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/exact-div-expr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/redefine_extname.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-08-04-void-pointer-arithmetic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-03-24-BitField-And-Alloca.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-long-calls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-06-18-VariableLengthArrayOfStructures.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/nomathbuiltin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-13-TypeSafety.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-30-SubregSetAssertion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-05-12-TempUsedBeforeDef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-03-11-Prefetch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/visibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-varargs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-09-28-PackedUnionMember.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-17-ZeroSizeBitFields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/emit-all-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/le32-regparm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attribute-section-data-common.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-03-03-MissingInitializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/code-coverage.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sse2-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-unsigned-ext-var.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/xcore-abi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/always-inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm_arm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-arm64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/globalinit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/stack-protector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/complex-convert.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sse41-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/alias.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/union-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-01-02-VAArgError-ICE.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/fma-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/exceptions-seh-finally.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/annotations-global.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/hidden-alias-to-internal-function.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-09-24-BitFieldCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/writable-strings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/conditional.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-block.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64_vcopy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/function-sections.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/fma4-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-02-12-LargeAggregateCopy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/lifetime2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sparcv9-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vla-4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/fast-math.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/func-decl-cleanup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-01-18-Inlined-Debug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mandel.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-18-StructAsValue.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR2643-null-store-to-bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/varargs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-02-14-ZeroInitializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-inline-asm-errors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/byval-memcpy-elim.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR2743-reference-missing-static.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-systemz-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-expect.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-12-15-StructParameters.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-03-09-DbgInfo.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/incomplete-function-type-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-inline-asm-64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-06-01-addrofknr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-neon-numeric-maxmin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-11-08-InstCombineSelect.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-05-PackedBitFields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/compound-assign-overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-03-08-ZeroEltStructCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/libcall-declarations.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-12-04-AttributeUsed.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/atomic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/volatile-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ubsan-blacklist.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/address-space.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-11-PR1321.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx-shuffle-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-target-features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-10-09-UnionInitializerBug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/capture-complex-expr-in-block.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-06-15-ExpandGotoInternalProblem.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-03-07-ExternalConstant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-05-PadBeforeZeroLengthField.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-20-vfork-bug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-fp16-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/weak_constant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-scalar-copy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/annotations-builtin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-08-PointerSubNotGetelementptr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/regparm-flag.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/blocks-aligned-byref-variable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-03-14-BrokenPHINode.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-byval-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-24-bit-not-expr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-03-27-VarLengthArray.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/weak-global.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-01-30-UnionInit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/trapv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/exprs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/le32-vaarg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ext-vector-indexing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-coldhot.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-06-26-CFECrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/nvptx-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-12-VoidString.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512vbmivl-builtin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/safestack-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc-sfvarargs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/alignment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-28-UnionSize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sparcv9-dwarf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-03-05-OffsetOfHack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-quadword.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/inline-asm-immediate-ubsan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/overloadable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-05-07-PaddingElements.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-01-EmptyStructCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-03-01-MallocNoAlias.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/windows-struct-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-systemz.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bool-convert.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/noinline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/complex-builtints.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-25-ByValReadNone.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512f-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/BasicInstrs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-07-14-VoidPtr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tbaa-struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-atomics-m.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-align-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/dllimport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/merge-statics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-01-13-StackSave.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/designated-initializers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/parameter-passing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr13168.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pragma-visibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bitfield-assign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/finite-math.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-31-promotion-of-compound-pointer-arithmetic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-vget-hilo.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-01-21-InvalidIterator.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-01-24-HandleCallInsnSEGV.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-cpu-supports.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pointer-to-int.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/typedef-func.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-06-05-NoInlineAttribute.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-aapcs-vfp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-01-01-UnknownInitSize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/xop-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/string-literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-version.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/convertvector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-vfp-asm-constraint.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/staticinit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-atomics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-block-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_64-atomic-128.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-target-x86-mmx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-08-22-CTTZ.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/extern-inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mcu-struct-return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64-lanes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-10-02-UnionLValueError.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pragma-weak.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-11-27-StaticFunctionRedeclare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-01-24-ComplexSpaceInType.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/switch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-qpx-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/kr-style-block.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/nvptx-inlineasm-ptx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-29-StructLayoutBug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-target-x87-softfp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/target-builtin-error-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_64-xsave.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-noinline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/struct-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/fp-contract-pragma.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/backend-unsupported-error.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-08-10-DbgConstant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/lineno-dbginfo.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/func-aligned.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-ms-noop.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/unsigned-trapv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/systemz-abi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-02-04-AddrLValue-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/functions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-02-04-AddrLValue.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-06-18-StaticInitTailPadPack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-bitfield-alignment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sparc-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/catch-undef-behavior.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/imaginary.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-06-25-FWriteInterfaceFailure.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/3dnow-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vla.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/align-local.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-shifts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm_arm64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-03-14-QuotesInStrConst.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-03-03-CtorAttrType.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_struct-pack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/funique-sections.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/compound-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-09-18-BitfieldTests.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512vldq-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-12-07-BitFieldAlignment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-21-BinOp-Type-Mismatch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/packed-arrays.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/kr-func-promote.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/struct-x86-darwin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cleanup-stack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-08-19-cast-of-typedef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-13-InlineAsmStruct2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-altivec.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-09-03-WeakAlias.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/variadic-null-win64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-tbl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/utf16-cfstrings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-03-14-BrokenSSA.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/func-return-member.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/dllexport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-vector-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-target-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tbaa-thread-sanitizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-vector-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-systemz-zvector-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-nanf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-09-18-fwrite-cast-crash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-12-23-AsmIntPointerTie.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-same-line.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sanitize-recover.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-01-13-Includes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-weakref.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-count-zeros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/boolassign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-v8.1a-neon-intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pointer-arithmetic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/libcalls-fno-builtin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-07-31-PR854.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-arguments-darwin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pragma-pack-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/function-target-features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/xcore-stringtype.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sanitize-trap.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cxx-default-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-prefix-map.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-03-16-AsmRegisterCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/private-extern-redef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-21-WideString.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx2-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/stackrealign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pointer-cmp-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-weakref2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-07-14-ref-off-end.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/array.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-p8vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/extern-block-var.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-14-MiscTests2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/popcnt-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/struct-copy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sanitize-address-field-padding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-htm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/redef-ext-inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/darwin-thread-specifier.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr3518.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-scope-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/c11atomics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/block-with-perdefinedexpr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/preserve-call-conv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-file-change.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pass-object-size.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/openmp_default_simd_align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-01-24-InlineAsmCModifier.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips64-padding-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vectorcall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-09-19-StarInLabel.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-07-22-packed-bitfield-access.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-02-26-inline-asm-bug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_struct-bitfield-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/wasm-regparm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-clear.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-26-PointerShift.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-02-13-BuiltinFrameReturnAddress.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bitfield-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-05-11-str-const.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-16-RenamingTest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/assign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/transparent-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr25786.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/always_inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/const-unordered-compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/align-wasm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/neon-immediate-ubsan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sse4a-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-ldst-one.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-02-20-Builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bool-bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-21-StmtExpr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-target-ppc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-27-UnionCtorInitialization.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-04-08-LocalArray.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/implicit-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-declspecs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pragma-pack-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-12-01-CommonGlobal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-06-15-AnnotateAttribute.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/incomplete-function-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/powerpc_types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr2394.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/atomic-arm64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512bw-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vlt_to_pointer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pascal-wchar-string.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/blockwithlocalstatic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-no-tail.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc-signbit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bmi2-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-interrupt-attr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/complex-init-list.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-07-20-SqrtNoErrno.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-06-18-SextAttrAggregate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2011-03-08-ZeroFieldUnionInitializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pgo-instrumentation.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/enum2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-24-str-const.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-10-13-FrontendCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/iamcu-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/thinlto_backend.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-constraints-mem.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-07-26-UnionInitCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ubsan-type-blacklist.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/integer-overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/microsoft-call-conv-x64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/complex-indirect.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-unsigned-extend.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-19-BitFieldArray.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-09-30-StructLayout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-05-06-CFECrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/dependent-lib.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-recursive.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-varargs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/packed-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-08-07-GEPIntToPtr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ext-vector-member-alignment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-01-06-KNR-Proto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/f16c-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/dwarf-version.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-03-12-StructInitialize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/long-double-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/func-ptr-cast-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-01-23-FileScopeAsm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mms-bitfields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mangle.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm_neon_intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR3589-freestanding-libcalls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-nvptx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/xcore-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sizeof-vla.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-zero-sized-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr18235.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-09-17-WeakRef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-vector-return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-scope.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/target-features-error-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR4611-bitfield-layout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64-be-hfa-vararg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bool_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/available-externally-hidden.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/complex-math.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR3130-cond-constant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx-cmp-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-06-29-MultipleFunctionDefinition.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-02-13-ReloadProblem.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-12-14-ordered_expr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-availability.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-08-14-vararray-crash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/shared-string-literals.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-01-08-ExternInlineRedefine.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/lifetime-debuginfo-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-08-07-AlignPadding2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-fcvt-intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-crash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/union-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/address-space-field1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-08-20-PrototypeMismatch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-mips-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/partial-reinitialization2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/regparm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/Atomics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ext-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtin-assume.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64_vdupq_n_f64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pr4349.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-01-20-VectorICE.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-line-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/target-builtin-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-11-02-WeakAlias.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-perm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-03-15-SimpleIndirectGoto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/block-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-06-17-UnorderedBuiltins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-02-13-IllegalVararg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/pointer-signext.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-cleanup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-cc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-pcs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-10-30-Volatile.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bitfield-promote.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-imported-entity.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_64-profiling-keep-fp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/tbaa-ms-abi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vector-alignment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-28-PragmaMark.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-07-28-IncorrectWeakGlobal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/exceptions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-03-16-VectorCtor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arrayderef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attr-x86-interrupt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ucn-identifiers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-crc32.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/inline-asm-mrv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/static-forward-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-11-29-ArraySizeFromInitializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/variadic-gpfp-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64_vcreate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-05-07-VarArrays.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/address-space-cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/asm-reg-var-local.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-neon-shifts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-mm-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/instrument-functions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/nonnull.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ssse3-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/lanai-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/uint128_t.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-03-26-BitfieldAfterZeroWidth.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-05-16-EmptyStruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/branch-on-bool.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-10-29-AsmRename.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/blocks-opencl.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/systemz-abi-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-07-31-DbgDeclare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/unwind-attr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/block-byref-aggr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2010-03-5-LexicalScope.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mangle-blocks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-06-23-GCC-fold-infinite-recursion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-vsx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-10-06-NegateExprType.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/const-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/PR3709-int-to-pointer-sign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mmx-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-30-VarArgsCallFailure.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/cfstring2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-fpcc-struct-return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-microsoft-intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512ifmavl-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-complex-return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/alignof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm64-aapcs-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/lzcnt-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mmx-inline-asm-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-line2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-05-UnPackedStruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-02-04-EmptyStruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/init-with-member-expr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vld_dup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-p7.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_64-arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms_struct-bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-04-05-PackedBitFields-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-11-07-AlignedMemcpy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-04-28-UnionArrayCrash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2006-03-17-KnRMismatch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-3v.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2011-03-02-UnionInitializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/unsigned-overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/annotations-field.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-inline-asm-functions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/link-bitcode-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-05-23-TypeNameCollision.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86-atomic-long_double.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/merge-attrs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512vbmi-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-vla.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/arm-apcs-zerolength-bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/debug-info-limited.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/char-literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attribute_constructor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-03-26-PackedBitFields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/blocks-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/offsetof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sret.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-07-30-UnionTest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-25-ZeroSizedAggregate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-complex-parms.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sse-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-06-08-OpaqueStructArg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64le-varargs-complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mingw-long-double.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/attributes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/builtins-ppc-crypto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-09-24-AsmUserPrefix.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-11-07-ZeroAggregateAlign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ppc64-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/unaligned-memcpy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-24-StructAlignAndBitFields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/inline2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/named_reg_global.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/ms-inline-asm-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2009-06-14-HighlyAligned.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/union-init2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-09-05-ConstCtor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/x86_32-xsave.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/address-sanitizer-and-array-cookie.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2005-01-02-ConstantInits.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/vla-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2008-01-21-PackedStructField.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/aarch64-neon-fma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/align-x68_64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/libcalls-complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/address-space-compound-literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/flatten.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/mips-transparent-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/restrict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/sanitize-blocks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-09-14-NegatePointer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/avx512er-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-05-08-PCH.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2002-03-12-ArrayInitialization.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2007-05-15-PaddingElement.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2003-11-01-GlobalUnionInit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/2004-02-13-Memset.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGen/struct-comma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/logical-ops.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/constant-addr-space-globals.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/unroll-hint.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/ptx-kernels.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/builtins-r600.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/2011-04-15-vec-init-from-vec.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/fpmath.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/vectorLoadStore.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/amdgcn-flat-scratch-name.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/kernel-arg-info.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/vector_literals_valid.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/pipe_types.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/pipe_builtin.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/spir-calling-conv.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/vector_odd.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/denorms-are-zero.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/memcpy.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/local.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/address-spaces-mangling.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/const-str-array-decay.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/addr-space-struct-arg.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/spir64_target.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/shifts.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/relaxed-fpmath.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/single-precision-constant.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/opencl_types.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/kernel-attributes.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/event_t.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/str_literals.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/amdgpu-num-gpr-attr.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/address-space-constant-initializers.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/local-initializer-undef.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/half.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/builtins-amdgcn.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/vector_shufflevector_valid.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/spir_version.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/vector_logops.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/spir32_target.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/cl-strict-aliasing.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/ext-vector-shuffle.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/kernel-metadata.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/address-spaces.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/vector_literals_nested.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/bool_cast.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/address-spaces-conversions.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenOpenCL/ptx-calls.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/submodules-preprocess.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/attr-unavailable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/implicit-build-config-out-of-date.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cxx-inline-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/stddef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/import-self.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/declare-use2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/available-is-better.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/DebugInfoSubmoduleImport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/declare-use4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/embed-files-compressed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/direct-module-import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/import-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/exclude-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/missing-submodule.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/DebugInfoTransitiveImport.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/include_next.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/linkage-merge.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/ModuleDebugInfo.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/stddef.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/subframework-from-intermediate-path.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/odr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/submodule-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/explicit-build-missing-files.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/normal-module-map.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/using-decl-redecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr20399.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/relative-dep-gen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr24954.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cxx-decls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/incomplete-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/objc_redef.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/module-private.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/on-demand-macros.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/update-after-load.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/unnecessary-module-map-parsing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/misplaced-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cxx-many-overloads.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/rebuild.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/misplaced-3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/self-import-header.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/crashes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/epic-fail.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/ignored_macros.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/redecl-found-building-chains.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/recursive.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/build-fail-notes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cxx-lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/inferred-attributes.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/diag-pragma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/embed-files.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/inferred-framework-case.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/typedef-tag-not-visible.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr21217.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/fatal-module-loader-error.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/dependency-dump-dependent-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/header-in-multiple-maps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/invalidate-identifiers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/anon-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/macro-masking.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/macro-ambiguity.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/autolinkTBD.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/tag-injection.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/warn-unused-local-typedef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/explicit-build-extra-files.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/preprocess.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/redecl-add-after-load.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/va_list.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/macro-hiding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/add-remove-private.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/module_file_info.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cxx-linkage-cache.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Werror-Wsystem-headers.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-vtable-codegen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/decldef.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/hidden-definition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/ExtDebugInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/no-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/explicit-build-overlap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr21547.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/internal-constants.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/inferred-submodules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/using-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/redecls.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/submodules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cxx-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/parse-attributes.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-target-features.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/crash-vfs-path-traversal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/lookup_left.hpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-using-decls
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-using-decls/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-using-decls/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-using-decls/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/module-map-path-hash
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/module-map-path-hash/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/module-map-path-hash/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MethodPoolASub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-vtable-codegen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-vtable-codegen/merge-vtable-codegen.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-vtable-codegen/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-vtable-codegen/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-vtable-codegen/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/multiple-include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/multiple-include/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/multiple-include/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/multiple-include/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/multiple-include/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/multiple-include/x.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/autolink.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-merge-bottom-prefix.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/point.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-typedefs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-typedefs/a1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-typedefs/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-typedefs/a2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-typedefs/b1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-typedefs/b2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecls
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecls/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecls/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecls/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDirInferred.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDirInferred.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDirInferred.framework/Headers/NameInDirInferred.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MutuallyRecursive2.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MutuallyRecursive2.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MutuallyRecursive2.framework/Headers/MutuallyRecursive2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/elsewhere
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/elsewhere/c-header-indirect.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/elsewhere/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/header-in-multiple-maps
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/header-in-multiple-maps/map3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/header-in-multiple-maps/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/header-in-multiple-maps/map1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/header-in-multiple-maps/map2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-merge-bottom.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Conflicts
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Conflicts/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Conflicts/conflict_a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Conflicts/conflict_b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/uses_other_constants.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/assert.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/stdlib.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/stdio.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/tcl-private
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/tcl-private/header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/stdint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/dbl_max.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/stdbool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/malloc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/System/usr/include/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-undef-through-pch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-undef-through-pch/A.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-undef-through-pch/foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-undef-through-pch/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20786
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20786/random.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20786/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20786/TBranchProxy.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20786/TFormula.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20786/TMath.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/a/quote
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/a/quote/a_quote.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/a/system
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/a/system/a_system.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/b
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/b/quote
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/b/quote/b_quote.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/b/system
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/b/system/b_system.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/c/system
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/c/system/c_system.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/c/quote
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/c/quote/c_quote.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/d
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/d/quote
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/d/quote/d_quote.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/d/system
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/d/system/d_system.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/e
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/e/quote
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/e/quote/e_quote.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/e/system
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/e/system/e_system.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-ambiguity/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-irgen-top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/attr-unavailable
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/attr-unavailable/two.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/attr-unavailable/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/attr-unavailable/oneA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/attr-unavailable/oneB.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/attr-unavailable/oneC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/pr19692
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/pr19692/TBlah.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/pr19692/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/pr19692/AIX.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/pr19692/stdint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/pr19692/Blah.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/pr19692/TFoo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DebugSubmoduleA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/pch-used.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/using-decl-b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-merge-top-explicit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/diamond.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/undefined-type-fixit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/undefined-type-fixit/public2sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/undefined-type-fixit/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/undefined-type-fixit/public1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/undefined-type-fixit/public2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/va_list
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/va_list/right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/va_list/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/va_list/va_list_a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/va_list/top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/va_list/va_list_b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/va_list/left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-merge-left-left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-exception-spec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-exception-spec/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-exception-spec/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-exception-spec/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-exception-spec/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-dtor
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-dtor/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-dtor/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-dtor/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private/private1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private/private2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private/public1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private/public2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private/common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DebugObjC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/diamond_left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros_other.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/incomplete_mod_missing.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/recursive2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/decl2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/oldname
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/oldname/new_name.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/oldname/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/x
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/x/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/x/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/x/subdir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/x/subdir/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/y
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/y/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/y/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include_next/y/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/c-header-bad.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir2.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir2.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir2.framework/Headers/NameInDir2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir2.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir2.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/templates-top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/anon-namespace
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/anon-namespace/b2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/anon-namespace/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/anon-namespace/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/anon-namespace/b1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/anon-namespace/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/use-builtin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested/nested2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested/nested1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/Umbrella
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/Umbrella/umbrella_sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/Umbrella/Umbrella.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/Umbrella/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/Umbrella2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/Umbrella2/Umbrella2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/Umbrella2/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested_umbrella
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested_umbrella/1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested_umbrella/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested_umbrella/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested_umbrella/a-extras.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/nested_umbrella/decltype.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/a1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/a2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/normal-module-map/b1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/using-decl-redecl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/using-decl-redecl/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/using-decl-redecl/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/using-decl-redecl/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/using-decl-redecl/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/using-decl-redecl/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-add-after-load-top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ImportNameInDir.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/category_bottom.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/typedef-tag-hidden.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20399
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20399/vector
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20399/stl_map.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20399/FirstHeader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20399/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR20399/SecondHeader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/subdir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/subdir/subdir.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/subdir/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR21687
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR21687/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR21687/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR21687/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR21687/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-templates
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-templates/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-templates/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/builtin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AddRemovePrivate.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AddRemovePrivate.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AddRemovePrivate.framework/Modules/module.private.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AddRemovePrivate.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AddRemovePrivate.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AddRemovePrivate.framework/Headers/AddRemovePrivate.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/namespaces-left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl_namespaces_left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MethodPoolBSub2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-after-load
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-after-load/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-after-load/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-after-load/modules.timestamp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/update-after-load/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps-moduleb-cwd.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/typedef-tag.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/linkage-merge-bar.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-linkage-cache.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-templates-b-impl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-decls-unimported.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/def-include.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-templates-d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros-indirect.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/dependency-gen.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AutolinkTBD.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AutolinkTBD.framework/AutolinkTBD.tbd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AutolinkTBD.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AutolinkTBD.framework/Headers/AutolinkTBD.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Modified
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Modified/B.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Modified/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Modified/A.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-decls-merged.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-irgen-left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/no-linkage
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/no-linkage/decls.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/no-linkage/empty.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/no-linkage/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/def.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros_left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/linkage-merge-sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/category_top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/internal-constants
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/internal-constants/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/internal-constants/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/internal-constants/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/internal-constants/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/internal-constants/const.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-dependent-friends
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-dependent-friends/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-dependent-friends/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-dependent-friends/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-dependent-friends/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-dependent-friends/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/warning.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros_bottom.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/diamond_right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DebugSubmoduleB.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-inline-namespace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/category_right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/thread-safety
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/thread-safety/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/thread-safety/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/thread-safety/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/thread-safety/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/recursive_visibility_b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-found-building-chains
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-found-building-chains/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-found-building-chains/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-found-building-chains/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-found-building-chains/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-found-building-chains/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-irgen-right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/preprocess-prefix.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/CmdLine.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/CmdLine.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/CmdLine.framework/Headers/CmdLine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-nested-templates
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-nested-templates/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-nested-templates/string.ii
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-nested-templates/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-nested-templates/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-nested-templates/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-implicit-special-members
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-implicit-special-members/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-implicit-special-members/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-implicit-special-members/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-implicit-special-members/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR27041
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR27041/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR27041/TGenericClassInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR27041/TSchemaHelper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR27041/Rtypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/exclude-header
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/exclude-header/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/exclude-header/x
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/exclude-header/x/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/exclude-header/x/bad.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/exclude-header/y
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/exclude-header/y/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/diag_pragma.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/hash_map.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/import-self-b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/import-self-c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/import-self-d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/vector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/type_traits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/not_missing.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules/import-self-a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/diagnostics-aux-2.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/warn-unused-local-typedef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/incomplete_mod.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR21547
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR21547/FirstHeader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR21547/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/autolink-sub2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-add-after-load.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/deferred-lookup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/deferred-lookup/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/deferred-lookup/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/deferred-lookup/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/weird_objc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MethodPoolASub2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/decl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros_top_b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/empty
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/empty/empty.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DebugCXX.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both_F.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both_F.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both_F.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both_F.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both_F.framework/Headers/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both_F.framework/Headers/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Both_F.framework/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap_F.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap_F.framework/PrivateHeaders
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap_F.framework/PrivateHeaders/private.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap_F.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap_F.framework/Modules/module.private.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap_F.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap_F.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Module_ModuleMap_F.framework/Headers/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Inferred.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Inferred.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleMapLocations/Inferred.framework/Headers/Inferred.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-target-features
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-target-features/foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-target-features/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/dependency-gen-included.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/merge.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/a1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/a2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/b1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/update.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/b2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-members/def.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MethodPoolA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/a1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/a2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/b1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/b2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/c1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/d1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/e1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-hiding/e2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-templates-a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ExtensionTestA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/no-implicit-builds
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/no-implicit-builds/b.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/no-implicit-builds/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-templates-common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/elaborated-type-structs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/load_failure.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-inline-namespace-b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-class-definition-visibility
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-class-definition-visibility/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-class-definition-visibility/e.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-class-definition-visibility/modmap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-class-definition-visibility/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-class-definition-visibility/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-class-definition-visibility/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/dependency-gen-base.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromAnotherModule.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromAnotherModule.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromAnotherModule.framework/Headers/FromAnotherModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework/Headers/FromNonModularSubframework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework/Frameworks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework/Frameworks/Subframework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework/Frameworks/Subframework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework/Frameworks/Subframework.framework/Headers/Subframework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromNonModularSubframework.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework/Headers/FromSubframework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework/Frameworks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework/Frameworks/Subframework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework/Frameworks/Subframework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromSubframework.framework/Frameworks/Subframework.framework/Headers/Subframework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/AnotherModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/IncludeExcluded.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/IncludeExcluded.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/IncludeExcluded.framework/Headers/Excluded.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/IncludeExcluded.framework/Headers/IncludeExcluded.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/IncludeExcluded.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/IncludeExcluded.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/umbrella
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/umbrella/foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/umbrella/bar
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/umbrella/bar/bar.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleOK.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleOK.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleOK.framework/Headers/FromImportedModuleOK.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleOK.framework/Headers/FromImportedModuleOK2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleOK.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleOK.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/ExcludedFromAnotherModule.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/ExcludedFromAnotherModule.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/ExcludedFromAnotherModule.framework/Headers/ExcludedFromAnotherModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/NotFramework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleFail.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleFail.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedModuleFail.framework/Headers/FromImportedModuleFail.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/C.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/AnotherModuleExcluded.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/A.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/A.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/A.framework/Headers/A.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/B.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/B.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/B.framework/Headers/B.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedSubModule.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedSubModule.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedSubModule.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedSubModule.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromImportedSubModule.framework/Headers/Header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromUmbrella.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromUmbrella.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/FromUmbrella.framework/Headers/FromUmbrella.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/require-modular-includes/NotInModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/path1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/path1/A
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/path1/A/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/path1/A/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/path2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/path2/A
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/path2/A/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/path2/A/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/DependsOnA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/DependsOnA/DependsOnA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modules-with-same-name/DependsOnA/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redeclarations_right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/dependency-gen-included2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/invalidate-identifiers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/invalidate-identifiers/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/invalidate-identifiers/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/invalidate-identifiers/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/empty.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/preprocess
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/preprocess/file.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/preprocess/fwd.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/preprocess/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-context
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-context/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-context/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-context/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-context/merge-decl-context.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-context/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/wildcard-submodule-exports
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/wildcard-submodule-exports/A_two.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/wildcard-submodule-exports/B_two.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/wildcard-submodule-exports/C_two.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/wildcard-submodule-exports/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/wildcard-submodule-exports/A_one.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/wildcard-submodule-exports/B_one.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/wildcard-submodule-exports/C_one.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros_right_undef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include-relative
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include-relative/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/include-relative/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/lookup_right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/NoUmbrella
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/PrivateHeaders
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/PrivateHeaders/A_Private.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/PrivateHeaders/B_Private.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/Headers/A.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/Headers/B.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/Headers/SubDir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/Headers/SubDir/C.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/Headers/Boom.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NoUmbrella.framework/module_private.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs/defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs/indirect.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs/merged-defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs/import-and-redefine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs/use-defs-2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs/use-defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodules-merge-defs/empty.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/module_private_right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NameInDir.framework/Headers/NameInDir.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NotAModule.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NotAModule.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/NotAModule.framework/Headers/NotAModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/builtin_sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/namespaces-top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/recursive_visibility_c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros_right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-templates-textual.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/lookup_left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-name-for-linkage
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-name-for-linkage/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-name-for-linkage/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-name-for-linkage/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/StdDef
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/StdDef/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/StdDef/size_t.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/StdDef/other.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/StdDef/ptrdiff_t.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/StdDef/include_again.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/y.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/na.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/nb.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/c1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/c2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-lookup/x.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/autolink-sub3.pch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Frameworks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Frameworks/Sub.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Frameworks/Sub.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Frameworks/Sub.framework/Headers/Types.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Frameworks/Sub.framework/Headers/Sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Frameworks/Sub.framework/PrivateHeaders
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Frameworks/Sub.framework/PrivateHeaders/SubPriv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/PrivateHeaders
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/PrivateHeaders/HasSubModulesPriv.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/HasSubModules.framework/Headers/HasSubModules.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/templates-left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MethodPoolBSub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/relative-dep-gen-1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-order
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-order/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-order/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-decl-order/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-add-after-load-decls.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/initializer_list
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/initializer_list/direct.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/initializer_list/indirect.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/initializer_list/indirect.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/initializer_list/direct.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/namespaces-right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl_namespaces_right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/maps
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/maps/modulea.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/maps/moduleb.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/maps/modulec.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/src
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/src/private-in-c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/src/public-in-b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/src/public-in-c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/separate_map_tree/src/common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/PrivateHeaders
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/PrivateHeaders/ModulePrivate.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Headers/Module.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Headers/Sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Headers/Sub2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Headers/NotInModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Headers/Buried
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Headers/Buried/Treasure.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Frameworks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/Module.framework/Module
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-merge-top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/dummy.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/modulea-cwd.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/modulec-cwd.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/modulea.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/moduleb.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/modulec.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/modular_maps/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-prefer-self
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-prefer-self/map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-prefer-self/x.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-prefer-self/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-prefer-self/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/autolink-sub3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-many-overloads.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR24954
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR24954/A.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR24954/B.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR24954/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private0/common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/irgen.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR26179
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR26179/basic_string.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR26179/A.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR26179/B.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/PR26179/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private1/public1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private1/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private1/private1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private2/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private2/private2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private2/public2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/lookup_right.hpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/crash-recovery
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/crash-recovery/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/crash-recovery/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/crash-recovery/usr/include/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/crash-recovery/usr/include/stdio.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/crash-recovery/usr/include/tcl-private
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/crash-recovery/usr/include/tcl-private/header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-merge-right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private3/private.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/private3/public.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros_top_c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/unnecessary-module-map-parsing
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/unnecessary-module-map-parsing/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/unnecessary-module-map-parsing/a1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MethodPoolB.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-templates-b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/import-decl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/working-dir-test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/working-dir-test/Test.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/working-dir-test/Test.framework/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/working-dir-test/Test.framework/Modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/working-dir-test/Test.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/working-dir-test/Test.framework/Headers/Test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redecl-merge-left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/category_right_sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/relative-dep-gen.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-specialization-visibility
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-specialization-visibility/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-specialization-visibility/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-specialization-visibility/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-specialization-visibility/e.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-specialization-visibility/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-specialization-visibility/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-friend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-friend/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-friend/friend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-friend/def.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/linkage-merge-foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/filename
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/filename/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/filename/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Frameworks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Frameworks/SubFramework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Frameworks/SubFramework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Frameworks/SubFramework.framework/Headers/Other.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/DependsOnModule
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/PrivateHeaders
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/PrivateHeaders/DependsOnModulePrivate.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Headers/not_objc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Headers/other.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Headers/not_cxx.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Headers/cxx_other.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/Headers/DependsOnModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/DependsOnModule.framework/module_private.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ignored_macros.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MutuallyRecursive1.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MutuallyRecursive1.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/MutuallyRecursive1.framework/Headers/MutuallyRecursive1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/diamond_top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-overlap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-overlap/def.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-overlap/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-overlap/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build-overlap/use.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodule-visibility
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodule-visibility/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodule-visibility/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodule-visibility/cycle1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodule-visibility/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodule-visibility/cycle2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodule-visibility/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/submodule-visibility/other.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/category_left_sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-friends
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-friends/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-friends/decl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-friends/friend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-decls-premerged.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-masking
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-masking/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-masking/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-masking/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/m2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/e.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/f.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/g.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/h.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/i.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/j.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/k.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/l.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/m.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/s.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/g1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/declare-use/h1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macros_top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleDiags
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleDiags/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleDiags/has_warnings.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/ModuleDiags/has_errors.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/using-decl-a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/c-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/redeclarations_left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/auto-import-unavailable
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/auto-import-unavailable/nonrequired_missing_header
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/auto-import-unavailable/nonrequired_missing_header/not_missing.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/auto-import-unavailable/nonrequired_missing_header/requires_feature_you_dont_have.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/auto-import-unavailable/missing_requirement.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/auto-import-unavailable/missing_header
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/auto-import-unavailable/missing_header/not_missing.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/auto-import-unavailable/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/non-module.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/category_other.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-anon-in-template
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-anon-in-template/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-anon-in-template/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-anon-in-template/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-anon-in-template/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/malformed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/malformed/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/malformed/a1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/malformed/a2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/malformed/b1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/malformed/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/malformed/b2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/inferred-attr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/inferred-attr/InferredExternC.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/inferred-attr/InferredExternC.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/inferred-attr/InferredExternC.framework/Headers/InferredExternC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/inferred-attr/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/a1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/a2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/b1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/b2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/c1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/d1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/d2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/e1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/e2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/macro-reexport/f1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/libstdcxx-ambiguous-internal
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/libstdcxx-ambiguous-internal/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/libstdcxx-ambiguous-internal/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/libstdcxx-ambiguous-internal/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/libstdcxx-ambiguous-internal/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/libstdcxx-ambiguous-internal/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-pattern-visibility
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-pattern-visibility/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-pattern-visibility/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/merge-template-pattern-visibility/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/available-is-better
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/available-is-better/available-is-better.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/available-is-better/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/relative-dep-gen-2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/category_left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/explicit-build/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/recursive1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/module_private_left.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/recursive_visibility_a1_inner.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/diagnostics-aux.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/odr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/odr/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/odr/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/odr/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/relative-dep-gen-cwd.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/diamond_bottom.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/crash.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-default-args
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-default-args/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-default-args/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-default-args/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-default-args/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/template-default-args/d.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header/af.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header/af.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header/af.framework/Headers/a1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header/af.framework/Headers/a2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header/af.framework/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header/depend_builtin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header/depend_builtin/h1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/self-import-header/depend_builtin/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/string_names
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/string_names/sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/string_names/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/string_names/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/string_names/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/string_names/c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/config.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/templates-right.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AlsoDependsOnModule.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AlsoDependsOnModule.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/AlsoDependsOnModule.framework/Headers/AlsoDependsOnModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/dependency-gen-base2.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/misplaced
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/misplaced/misplaced.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/misplaced/misplaced-a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/misplaced/misplaced-b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-decls-imported.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/autolink-sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/recursive_visibility_a2_more_inner.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/cxx-templates-c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1/common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1/m00.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1/m01.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1/m02.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1/m03.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1/merge00.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Inputs/stress1/merge_no_reexport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/prune.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/exponential-paths.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/DebugInfoSubmodules.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/declare-use-compatible.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/macros2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/dependency-gen-inferred-map.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cstd.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/linkage-merge.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/include-own-headers.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/debug-info-moduleimport.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/explicit-build-flags.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/objc-categories.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-nested-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/va_list.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/load-after-failure.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-implicit-special-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Rmodule-build.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/initializer_list.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/explicit-build.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/elaborated-type-specifier-from-hidden-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/darwin_specific_modulemap_hacks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cycles.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/no-implicit-maps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/submodules.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/modular_maps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/dependency-gen.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-dependent-friends.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/conflicts.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/validate-system-headers.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/decldef.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/no-implicit-builds.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/redecl-merge.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/update-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/extern_c.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/declare-use.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/declare-use1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/diamond.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/private.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/declare-use3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/declare-use5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/minimal-identifier-tables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/namespaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/filename.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/separate_map_tree.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-typedefs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/method_pool.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/templates-2.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/inferred-frameworks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-decl-context.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/load_failure.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/deferred-lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/no-stale-modtime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/wildcard-submodule-exports.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr21687.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr26179.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/serialized-diags.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/driver.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/compiler_builtins_arm.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/compiler_builtins.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/dependency-gen.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/empty.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/textual-headers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/macro-undef-through-pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/misplaced-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/autolink.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/misplaced-4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cxx-irgen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/stress1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/subframeworks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/recursive_visibility.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/libstdcxx-ambiguous-internal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/ModuleDebugInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/redeclarations.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/missing-header.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-name-for-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/header-import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/modules.idx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/target-features.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-template-friend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pch-used.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/diamond-pch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/config_macros.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/modify-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/modulemap-locations.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pch_container.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/explicit-build-prefer-self.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/signal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-friends.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/string_names.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/dependency-dump.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr19692.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/include-relative.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/thread-safety.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/resolution-change.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-enumerators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/system_version.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/misplaced-5.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/compiler_builtins_aarch64.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/malformed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/dependency-gen-pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-template-pattern-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/on-demand-build.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/private.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/module-map-path-hash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/explicit-build-relpath.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/multiple-include.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/template-specialization-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/auto-module-import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/extern_c_bad.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/working-dir-flag.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr27041.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/crash-vfs-path-symlink-component.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/framework-name.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/requires.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/template-default-args.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/public-private.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/redecl-merge2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/module-feature.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/fmodules-validate-once-per-build-session.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/system_headers.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/Werror.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/tag-injection.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/extensions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/global_index.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/redecl-namespaces.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/builtins.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/irgen.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/submodule-visibility-cycles.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-anon-in-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/macro-reexport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/diagnostics.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/cxx-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/requires.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-using-decls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-class-definition-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-decl-order.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/undefined-type-fixit1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/implementation-of-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/renamed.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/templates.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/pr20786.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/strict-decluse.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/redecl-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/require-modular-includes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/private1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/modules-with-same-name.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/ExtDebugInfo.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/submodules-merge-defs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/crash-vfs-relative-overlay.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/merge-template-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Modules/auto-import-unavailable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-factorial.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/nested-name-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR16677.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-static-function-inheader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pragma-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR8012.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-nonnull.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/enum-unscoped-nonexistent.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-empty-body.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-value-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overload-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/lambda-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/invalid-instantiated-field-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/value-initialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/addr-of-overloaded-function-casting.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/qualification-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/undefined-internal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/uninit-variables-conditional.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtin-ptrtomember-overload.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/bool-compare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR23334.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pr13353.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-no-split-stack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ambiguous-builtin-unary-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-sized-deallocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/using-decl-pr4441.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-missing-noreturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-cleanup-gcc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-bad-memaccess.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cv-unqual-rvalues.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/captured-statements.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/trivial-constructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/calling-conv-compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-disable-tail-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/instantiate-blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/composite-pointer-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/deprecated.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-everthing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/accessible-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/function-pointer-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/windows-arm-valist.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR8385.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decltype.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/no-warn-unused-const-variables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-pure-virtual-kext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-printing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pr25181-crash-on-invalid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/nested-name-spec-locations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-filescoped.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-result.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/using-decl-pr4450.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unknown-anytype.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-member-not-needed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overload-call-copycon.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-flag-enum-reject.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-init-captures.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/access.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtins-arm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/storage-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/invalid-member-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/uninit-variables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/lookup-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR9884.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-variables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtin-ptrtomember-ambig.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-literal-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/nonnull.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/extern-c.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vararg-non-pod.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-shadow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/direct-initializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/auto-subst-failure.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/default-argument-temporaries.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-float-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-expr-anonymous-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/default2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decltype-98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR9572.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-inline-asm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-c++11-extensions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-local-typedef-x86asm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR10458.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/namespace-alias.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/compare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtins-va_arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/nullptr-98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/typo-correction-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/new-delete-predefined-decl-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ptrtomember.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/funcdname.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/err_typecheck_assign_const.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/static-data-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/operator-arrow-temporary.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/qualified-id-lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overloaded-builtin-operators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/enable_if.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/trivial-destructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ptrtomember-overload-resolution.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/virtual-member-functions-key-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-div-or-rem-by-zero.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decltype-pr4448.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/nullptr_in_arithmetic_ops.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/libstdcxx_map_base_hack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR12481.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unaddressable-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR11358.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-x86-interrupt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-sentinel.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-class-11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-range-loop-analysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-new-overaligned-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/init-priority-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-unavailable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ambig-user-defined-conversions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/short-wchar-sign.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/string-plus-char.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-delegating-ctors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/c99.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR20110.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/array-bounds.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/microsoft-varargs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/implicit-virtual-member-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decl-expr-ambiguity.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pseudo-destructors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constructor-recovery.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/addr-of-overloaded-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-local-typedef-serialize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/elaborated-type-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/return-noreturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/new-delete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-turing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/linkage2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-enum-compare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-cleanup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/sourceranges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/using-directive.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/redefine_extname.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtin-assume-aligned.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/alignment-of-derived-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constructor-initializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-attribute.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR7944.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/empty-class-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-label-error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-location.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/exception-spec-no-exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/parentheses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/microsoft-dtor-lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-absolute-value-header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pr18284-crash-on-invalid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/for-range-dereference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unreachable-catch-clauses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decl-microsoft-call-conv.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/switch-implicit-fallthrough.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/i-c-e-cxx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/atomic-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-redundant-move.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-local-typedef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-return-init-list.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/make_integer_seq.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decltype-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/nullability-declspec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vararg-default-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-no-sanitize-thread.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/anonymous-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/format-strings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-private-field-delayed-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/user-defined-conversions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-generic-lambdas-capturing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/explicit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-undefined-bool-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-consumed-parsing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/copy-constructor-error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/err_init_conversion_failed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-deprecated-replacement-fixit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/derived-to-base-ambig.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-sysheader-macro.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/bool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/template-implicit-vars.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/comma.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-format.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1z-constexpr-lambdas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/conversion-incomplete-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/function-overloaded-redecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-no-sanitize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pragma-unused.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/libstdcxx_explicit_init_list_hack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-variable-not-needed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-defaulted-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/shift.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/microsoft-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overloaded-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/inline.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/compound-literal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/copy-assignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/type-traits-incomplete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overload-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/enum-increment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-duffs-device.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/openmp_default_simd_align.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attributed-auto-deduction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-user-defined-literals-unused.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-new-overaligned.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-new-overaligned-3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR7410.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/MicrosoftCompatibilityNoExceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/prefetch-enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx98-compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR6562.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-deleted-default-ctor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/invalid-template-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-attr-print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-expr-static.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unused-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-initializer-references.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/fntype-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/array-bounds-system-header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unreachable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-tautological-compare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/function-redecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overloaded-operator-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/arrow-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vararg-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/declspec-thread.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/runtimediag-ppe.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cstyle-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/primary-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/microsoft-new-delete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/for-range-examples.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-absolute-value.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-cursory-default-delete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/redeclared-auto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/address-space-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/reinterpret-fn-obj-pedantic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/alias-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/missing-namespace-qualifier-typo-corrections.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dependent-noexcept-unevaluated.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/qualified-names-diag.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/switch-implicit-fallthrough-cxx98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR8755.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-func-not-needed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/c99-variable-length-array.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constant-expression-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-exit-time-destructors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx98-compat-pedantic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/no-rtti.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/typeid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtin-classify-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overloaded-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-consumed-analysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dllimport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/qualified-member-enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-using-namespace-in-header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decltype-this.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/static-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-self-assign.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-call-to-deleted-constructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/switch-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constant-expression.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-self-comparisons.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overloaded-builtin-operators-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-comma-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-crashes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/missing-header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/offsetof-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/libstdcxx_common_type_hack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/friend-out-of-line.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-variable-templates_top_level.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/function-extern-c.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/qual-id-test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-operator-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/no-warn-composite-pointer-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/new-delete-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/enum-scoped.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-wchar.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/predefined-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/class-base-member-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR21679.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/functional-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/printf-block.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-optnone.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/null_in_arithmetic_ops.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR20334-std_initializer_list_diagnosis_assertion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-no-sanitize-address.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/typedef-redecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constant-expression-cxx1y.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/switch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-private-field.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/virtual-override.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-regparm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ref-init-ambiguous.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dr1301.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/non-empty-class-size-zero.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/class-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-memset-bad-sizeof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/new-array-size-conv.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unreachable-code.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-reinterpret-base-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/short-enums.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/microsoft-dtor-lookup-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/deleted-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR12778.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/coroutines.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx-deprecated.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-user-defined-literals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unknown-anytype-blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/illegal-member-initialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-initializer-aggregates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/class-names.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR6618.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/internal_linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/aggregate-initialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-initializer-constructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/complex-overload.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/auto-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-value.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/using-decl-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-cast-align.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-pure-virtual-call-from-ctor-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-many-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx98-compat-flags.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-abi-tag-syntax.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/typo-correction-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/abstract.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/function-type-qual.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/literal-operators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-dangling-field.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/offsetof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/blocks-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR9459.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dynamic-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/friend-class-nodecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/thread-safety-reference-handling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/no-wchar.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-backtrace-limit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/array-bounds-ptr-arith.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-steps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/for-range-no-std.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decl-init-ref.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-ast-print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/flexible-array-test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/complex-folding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/nullability.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtins.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-type-convert-construct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/static-initializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/new-delete-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/new-null.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-assignment-condition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/format-strings-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR9460.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/indirect-goto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1z-lambda-star-this.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/goto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/anonymous-struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/default-constructor-initializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR9908.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dependent-auto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cast-explicit-ctor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-declspec-ignored.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/no-implicit-builtin-decls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-ackermann.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-bool-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/virtual-override-x86.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/altivec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-novtable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-deprecated-replacement-error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-string-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-reorder-ctor-initialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constant-expression-cxx1z.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-logical-not-compare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-thread-safety-negative.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-variables-error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-interface.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cast-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/borland-extensions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/underlying_type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/c99-variable-length-array-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/local-classes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/align_value.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/libstdcxx_is_pod_hack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/wchar_t.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cast-lvalue-to-rvalue-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unary-real-imag.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-missing-prototypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-pointers-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/alignof-sizeof-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/virtuals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtin-assume-aligned-tmpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/value-dependent-exprs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/default-assignment-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR5086-ambig-resolution-enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/scope-check.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-gnu-attrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/issue547.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/convert-to-bool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-generic-lambdas-variadics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/out-of-line-def-mismatch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms_mutable_reference_member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/integer-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/deleted-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-selectany.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/switch-implicit-fallthrough-blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dependent-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-no-sanitize-memory.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-overload-entry-point.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms_integer_suffix.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtin_objc_msgSend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/function-overload-typo-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/switch-implicit-fallthrough-off-by-default.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtin-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pascal-strings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/no-exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pragma-weak.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/typo-correction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/implicit-int.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-pointer-ms.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unused-with-error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR9461.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-unused.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decltype-pr4444.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/uninitialized.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-unused.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vector-casts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-comparison.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ast-print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-initializer-scalars.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pragma-pack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/implicit-member-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-thread-safety-analysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/crashes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/return-stack-addr-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-weakref.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/destructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR19955.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-static-function-inheader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/conversion-delete-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-self-move.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-flatten.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pragma-init_seg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-mode-tmpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/delete-mismatch.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/trailing-return-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-constexpr-const.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/for-range-unused.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/complex-init-list.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-value-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/operator-arrow-depth.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/libstdcxx_atomic_ns_hack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-generic-lambdas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/auto-type-from-cxx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/type-formatting.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overload-member-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-strlen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/override-in-system-header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/bitfield-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/microsoft-super.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/neon-vector-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-nqueens.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/libstdcxx_pointer_return_false_hack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/virtual-function-in-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-deprecated.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unused-parameters.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/undefined-inline.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cdtor-fn-try-block.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/anonymous-union-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/enum-bitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/switch-implicit-fallthrough-macro.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/type-traits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/address-of.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/switch-implicit-fallthrough-per-method.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-nodebug.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unknown-type-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-swiftcall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-gnu.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-initializer-aggregates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/inherit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/expression-traits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/conversion-function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dcl_ambig_res.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/gnu-case-ranges.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR10177.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/type-convert-construct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pass-object-size.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/condition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-memsize-comparison.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/constexpr-depth.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/statements.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/many-template-parameter-lists.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-deprecated-header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/virtual-base-used.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/implicit-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-loop-analysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-common.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-thread-local.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/decltype-overloaded-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overload-value-dep-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-implicit-conversion-floating-point-to-bool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR9902.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-variable-templates_in_class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-used.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/printf-cstr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/microsoft-varargs-diagnostics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/const-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pragma-vtordisp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/alignof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR20705.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/MicrosoftCompatibility-cxx98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-constexpr-not-const.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/static-assert.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-vla.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/using-decl-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms_wide_bitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-inheriting-ctors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/linkage-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/delete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pr9812.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-global-constructors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-overloaded-virtual.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/types_compatible_p.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vla.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/auto-cxx98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/redeclared-alias-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/access-control-check.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/zero-length-arrays.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/address-space-references.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/diagnostic-order.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/exceptions-seh.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/libstdcxx_pair_swap_hack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/rval-references-examples.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/copy-initialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-weak.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-pessmizing-move.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/converting-constructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/this.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/typeid-ref.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/literal-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/auto-pragma.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-tautological-undefined-compare.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/discrim-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/overload-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/array-bound-merge.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR10447.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-char-subscripts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/struct-class-redecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/access-member-pointer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-unsequenced.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-pointer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/MicrosoftExtensions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ns_returns_retained_block_return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/crash-lambda-12645424.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-sign-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/templated-friend-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-large-by-value-copy.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/return-stack-addr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-noexcept-expression.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-address.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-property.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/Inputs/warn-new-overaligned-3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/Inputs/header-with-pragma-optimize-off.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/Inputs/array-bounds-system-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/Inputs/warn-unused-variables.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/Inputs/register.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/Inputs/malloc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/Inputs/override-system-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx1y-deduced-return-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/string-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/address-of-temporary.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/devirtualize-vtable-marking.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-aligned.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/__try.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR8884.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/string-plus-int.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/conditional-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pr13394-crash-on-invalid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-nontrivial-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms_struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/MicrosoftSuper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-property-error.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-user-defined-literals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/long-virtual-inheritance-chain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-weak-vtables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vtordisp-mode.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/writable-strings-deprecated.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/err_typecheck_assign_const_filecheck.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/new-delete-predefined-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/missing-members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-unsupported.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/friend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-thread-safety-verbose.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/builtin-ptrtomember-overload-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/defaulted-private-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/rval-references.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/address-space-newdelete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/tag-ambig.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/call-with-static-chain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-pointer-size.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/generic-selection.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/nullptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/block-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/old-style-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/static-cast-complete-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-missing-variable-declarations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/static-array-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/incomplete-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/typo-correction-blocks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/access-base-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/do-while-scope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/references.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/gnu-flags.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/type-dependent-exprs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dcl_init_aggr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/generalized-deprecated.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx-altivec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/deleted-function-access.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-thread-local-print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-name-lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-notail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx11-thread-unsupported.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dllexport-pr22591.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-after-definition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/2008-01-11-BadWarning.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/self-comparison.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-cxx0x-fixit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/typo-correction-delayed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ambiguous-conversion-show-overload.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/pragma-optimize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-thread-safety-parsing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/__null.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/defaulted-ctor-loop.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/PR10243.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/address-space-initialize.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-infinite-recursion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/type-definition-in-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/virtual-override-x64.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/bitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/warn-static-const-float.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/member-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/attr-noreturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-const-member-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/format-strings-0x-nopedantic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/increment-decrement.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/goto2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/ms-friend-lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/reinterpret-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx0x-compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vector-no-lax.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/MicrosoftCompatibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/vtable-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/cxx-member-pointer-op.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/linkage-invalid-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/unused.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/default1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/dllexport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCXX/err_reference_bind_drops_quals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/macro-undef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_literals.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-reference.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objcxx-ivar-class.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/ocl_types.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/verify_pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-pending-instantiations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pr4489.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pending-ids.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_import.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/blocks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-variadic-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-chain-function-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/namespaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-categories.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/format-strings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/remap-file-from-pch.cpp.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-method.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/empty-with-headers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/friend-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/blocks.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-for-range.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_property.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/emit-pth.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/preamble.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/opencl-extensions.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx11-inheriting-ctors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/case-insensitive-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/attrs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/attrs-PR8406.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-alias-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/thread-local.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-exprs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx1y-init-captures.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-predecl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx1y-lambdas.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_methods.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_boxable_record_attr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-default-argument-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/module-hash-difference.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-predecl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_methods.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-traits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-required-decls.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx11-enum-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-namespaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-for-range.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_parameterized_classes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-external-defs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/rdar8852495.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/stmt-attrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/working-directory.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/ext_vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pch-dir.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/missing-file.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/ext_vector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/selector-warning.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-ms_struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/struct.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pch-dir.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pth.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx1y-variable-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pchpch2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-weak.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/selector-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/modified-module-dependency.module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/fuzzy-pch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pth.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-implicit-moves.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-weak.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-detect_mismatch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/line-directive.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/reloc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/fuzzy-pch.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/crash-12631281.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-required-decls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/line-directive.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-friend-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/enum.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-diag.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/source-manager-stack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-conversion-lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/typo2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/method_pool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_kindof.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/tentative-defs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/remap-file-from-pch.cpp.remap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-offsetof-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/method_pool.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/multiple-include-pch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-namespaces.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/tentative-defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cuda-kernel-call.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/ms-if-exists.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx11-user-defined-literals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/uuidof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/headermap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/builtins.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/replaced-decl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/headermap.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-categories2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-staticvar-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/multiple_decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/functions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-member-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/multiple_decls.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/reinclude.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/functions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/headersearch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/target-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx1y-default-initializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-variadic-templates.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_boxable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/target-options.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-trailing-return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx11-constexpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-offsetof-base.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-friends.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-mangling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/captured-stmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/designated-init.c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-typeid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-macro-override.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-remap-types.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/reinclude1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/external-defs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-templates.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-alias-decl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_exprs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-typo-corrections.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx1y-deduced-return-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/external-defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/local_static.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/variables.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_exprs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-static_assert.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pch__VA_ARGS__.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/different-linker-version.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/variables.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-functions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-loop.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pch__VA_ARGS__.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/badpch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cmdline-include1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-cxx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx_exprs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-pointers_to_members.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/asm.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/debug-info-limited-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/working-directory.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/rdar10830559.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx11-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/modified-module-dependency.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-using.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/debug-info-limited-struct.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cmdline-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/different-diagnostic-level.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-ms-function-specialization-class-scope.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/exprs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/subscripting-literals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx0x-delegating-ctors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/modified-header-crash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/exprs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/modified-header-crash.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/types.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/undefined-internal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-diag-section.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/ocl_types.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-openmp-threadprivate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_container.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objcxx-ivar-class.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_literals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx_exprs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-ms-function-specialization-class-scope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_container.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/changed-files.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-trivial.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-variadic-templates-with-default-params.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/typo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/thread-safety-attrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-selectors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/modified-header-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/make-integer-seq.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-empty-initial-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/va_arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/reinclude2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-optimize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-traits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pragma-comment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-char-literal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/method-redecls.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_stmts.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_boxable_record.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-implicit-definition.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/field-designator.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/objc_stmts.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cmdline-include2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/implicitly-deleted.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/check-deserializations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-late-anonymous-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/libroot
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/libroot/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/libroot/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/libroot/usr/include/reloc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/libroot/usr/include/reloc2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/__va_list_tag.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx11-statement-attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx0x-default-delete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx11-lambdas.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/floating-literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/single-token-macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-key-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/va_arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-friends.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/local_static.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-remap-types2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-trivial1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/cuda.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-trivial2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/badpch-empty.h.gch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/namespaces.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-macro-override1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-macro-override2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/cxx-method.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/working-directory-1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/modules/Foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/modules/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-ext_vector1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-ext_vector2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/preamble.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/case-insensitive-include.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/__va_list_tag.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/cxx11-statement-attributes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-decls1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/typo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/typo.hpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-decls2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/badpch-dir.h.gch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/badpch-dir.h.gch/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/va_arg.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-external-defs1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-macro1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-external-defs2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-macro2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-selectors1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-selectors2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/arc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/Inputs/chain-remap-types1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/irgen-rdar13114142.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-ext_vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-typeid.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/va_arg.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pchpch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/typo.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/nonvisible-external-defs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/designated-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/chain-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/stmts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/nonvisible-external-defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/stmts.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/macro-redef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-constexpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx-using.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pr18806.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/cxx1y-decltype-auto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/remap-file-from-pch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/pchpch1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/PCH/datetime.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/Inputs/pch-fail.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/Inputs/pch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/Inputs/pch.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/auto-detect-from-source-parent.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-rel-path.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/pch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-autodetect-dir.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-builtin-headers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/auto-detect-from-source.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/auto-detect-from-source-parent-of-cwd.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-analyzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/multi-jobs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-chdir.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-ast-dump.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-extra-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-pwd.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-args.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/clang-check-strip-o.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Tooling/ms-asm-no-target.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/c90.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/rdr-6096838.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/long-long.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_attribute_objc_boxable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/half-literal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/char-literal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/newline-eof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/warn_binary_literals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/hexfloat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/string-literal-errors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cross-windows-on-linux-default.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/utf8-invalid.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/pragma-message2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/constants.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/ms-extensions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/multiple-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/digraph.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/newline-eof-c++98-compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/conflict-marker.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/block_cmt_end.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/eof-char.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cxx0x_raw_string_delim_length.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/token-concat.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_modules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/coroutines.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/eof-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/utf8-char-literal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/utf-16.c.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/comment-escape.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/11-27-2007-FloatLiterals.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_c1x.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cxx0x_keyword_as_cxx98.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/wchar.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_memory_sanitizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/keywords_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/msdos-cpm-eof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/ms-extensions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/eof-string.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/unicode-strings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_type_traits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cxx-features.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/warn-date-time.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cxx1z-trigraphs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_boxed_nsvalue_expressions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/string-literal-encoding.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_rtti.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/pragma-message.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/rdr-6096838-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cxx1y_binary_literal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/opencl-half-literal.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/pragma-mark.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/eof-number.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/bad-header-guard-defined.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/success.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/out-of-order-define.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/multiple.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/tokens-between-ifndef-and-define.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/bad-header-guard.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/different-define.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/good-header-guard.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/no-define.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/Inputs/unlikely-to-be-header-guard.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/badstring_in_if0.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/wchar-signedness.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/keywords_test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/numeric-literal-trash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/builtin_redef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/counter.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_objc_arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/utf-16.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/char-literal-encoding-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/gnu-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/eof-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/ms-compatibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/unicode.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cross-windows-on-linux.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cxx0x_raw_string_unterminated.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_extension_cxx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cxx0x_raw_string_directives.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/objc_macros.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/string_concat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/char-escapes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/cxx1y_digit_separators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/dollar-idents.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_thread_sanitizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_extension.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/unknown-char.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/escape_newline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/bcpl-escaped-newline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/has_feature_address_sanitizer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/pragma-operators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/token-concat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/preamble.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/pragma-region.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Lexer/rdar-8914293.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/warning-options.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/warning-mapping-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/preprocessed-output-macro-first-token.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/warning-mapping-5.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-bom.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/src
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/src/all.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/src/warn.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/libs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/libs/boost
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/libs/boost/warn.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/libs/boost/all.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/libs/mylib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/libs/mylib/warn.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/SystemHeaderPrefix/libs/mylib/all.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes-messages.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes-bom.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/test2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/test3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/TestFramework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/TestFramework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/TestFramework.framework/Headers/TestFramework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/profile-sample-use-loc-tracking.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes4.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes5.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes6.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes7.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/rewrite-includes8.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Inputs/test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/undef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/trigraphs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/verify.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/system-header-prefix.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/iframework.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/output-failures.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-line-markers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Rewriter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Rewriter/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/verify-directive.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/windows-nul.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/force-include-not-found.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/print-header-includes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/verify-fatal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/mfpmath.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/hexagon-target-basic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/disable-output.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/std.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/diagnostics-option-names.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/cpp-output.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/dependency-gen.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Wno-everything.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/source-col-map.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/optimization-remark-analysis.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/verify3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-modules.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/stdlang.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-eof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/warning-mapping-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/optimization-remark-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/x86-target-cpu.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/warning-mapping-4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-header-cmd-line.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/gnu-inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/optimization-remark.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/optimization-remark-line-directive.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/darwin-version.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/verify-unknown-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/ast-main.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/Weverything.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-cli-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/dependency-gen-escaping.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/mips-long-double.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/cc1-return-codes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/exceptions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/stdin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/ir-support-errors.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/profile-sample-use-loc-tracking.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-invalid-hasinclude.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/verify-ignore-unexpected.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/invalid-o-level.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-missing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/dependency-generation-crash.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/backend-diagnostic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/ast-main.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-warnings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/plugin-annotate-functions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/ir-support-codegen.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/x86_64-nacl-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/plugin-delayed-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/plugins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/darwin-eabi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/ir-support.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/verify2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/unknown-pragmas.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/ast-codegen.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/rewrite-includes-messages.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/verify2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Frontend/warning-mapping-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Unit/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Unit/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/elaborated-type-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/pragma-ms_struct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-friend-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-attr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/recovery-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_arg_enum_printing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/value-dependent-null-pointer-constant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/fun-template-def.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-expr-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-static-var.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-expr-4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-expr-6.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-deeply.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ext_ms_template_spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-partial-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/class-template-id-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/inject-templated-friend-post.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-var-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/member-access-ambig.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/alias-church-numerals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-member-pointers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/resolve-single-template-id.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/copy-ctor-assign.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/class-template-ctor-initializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-default-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/enum-forward.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-names-no-std.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/crash-unparsed-exception.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/rdar9173693.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ext-vector-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/derived.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-base-member-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/enum-argument.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-depth-subst.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/default-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/typename-specifier-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/typename-specifier-4.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/nested-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/nested-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-member-initializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-case.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_class_spec_neg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/qualified-id.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/template-id-printing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/enum-bool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-decl-dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_arg_type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ackermann.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-template-template-parm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/overload-uneval.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/explicit-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/constexpr-instantiate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/function-template-specialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-elab-type-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_func_order.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-local-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/extension-sfinae.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/template-id-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/canonical-expr-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/nested-incomplete-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/crash-8204126.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/template-decl-fail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-decl-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/overloaded-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-explicitly-after-fatal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/inject-templated-friend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-subscript.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/atomics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_explicit_cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/extern-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/recursive-template-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/current-instantiation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-default-assignment-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-field.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/partial-spec-instantiate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-function-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_explicit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/injected-class-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-invalid.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/destructor-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ms-class-specialization-class-scope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/overload-candidates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/alias-template-template-param.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-self.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/member-inclass-init-value-dependent.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-sizeof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/friend-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-non-type-template-parameter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/template-class-traits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/member-access-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-depth-subst-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-declref-ice.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_class_order.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-complete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/implicit-instantiation-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-member-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-expr-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/array-to-pointer-decay.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-anonymous-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-expr-3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/default-arguments-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/nested-name-spec-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-expr-5.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/self-comparison.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/explicit-specialization-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/member-function-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/example-typelist.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/friend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ms-delayed-default-template-args.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-exception-spec-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/delegating-constructors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-using-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/deduction-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-type-identity.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/fibonacci.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/deduction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-expr-basic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/alignas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-sized_array.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-typedef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-template-recover.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/class-template-decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-enum-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-declref.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-function-params.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ms-if-exists.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ms-function-specialization-class-scope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/pack-deduction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/alias-nested-nontag.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-overloaded-arrow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/constructor-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_class_spec_blocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-method.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ms-lookup-template-base-classes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ms-sizeof-missing-typename.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-default-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-default-3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/lookup-dependent-bases.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/unresolved-construct.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-depth-defarg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/typo-dependent-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/anonymous-union.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-try-catch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-non-dependent-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/exception-spec-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-c99.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-depth.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/typename-specifier-3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-overload-candidates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_arg_template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/typename-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-scope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-function-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/missing-class-keyword-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-order.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_arg_nontype_cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-array.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-member-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/address-spaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-backtrace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/operator-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-clang.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/class-template-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/qualified-names-diag.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/canonical-expr-type-0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-names.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/class-template-id.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/unused-variables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiation-depth-exception-spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/crash-10438657.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/operator-function-id-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ambiguous-ovl-print.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/function-template-specialization-noreturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-dependent-nested-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/alias-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-typeof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/member-template-access-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/virtual-member-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/default-expr-arguments-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/default-expr-arguments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-function-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-member-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_class_spec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/ms-class-specialization-duplicate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-class-member-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/dependent-base-classes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/temp_arg_nontype.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/member-initializers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/issue150.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/cxx1z-fold-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/metafun-apply.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaTemplate/instantiate-objc-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/TestRunner.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Integration
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Integration/carbon.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Integration/cocoa-pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Integration/cocoa.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/html-print.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/ast-printing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/ast-printing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/objc-language-features.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/codegen.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/codegen-gnu.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/verbose.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/c-language-features.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/cxx-language-features.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/ast-printing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/html-diagnostics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/targets.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Coverage/codegen-next.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-xarch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/thinlto_backend.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/openbsd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/montavista-gcc-toolchain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/gfortran.f90
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ps4-cpu-defaults.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v55
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v55/G0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v55/G0/pic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v4/G0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v4/G0/pic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v5/G0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v5/G0/pic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v60
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v60/G0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/hexagon_tree/Tools/target/hexagon/lib/v60/G0/pic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multiarch_freebsd64_tree/usr/lib32/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/nan2008/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/nan2008/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/nan2008/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/soft-float/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/soft-float/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/soft-float/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/uclibc/soft-float/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/soft-float/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/soft-float/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/soft-float/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/soft-float/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/micromips/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/nan2008/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/nan2008/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/nan2008/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/el/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/el/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/el/64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/soft-float/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/soft-float/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/soft-float/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/soft-float/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/soft-float/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/mips16/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/el/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/el/64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/el/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/micromips/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/micromips/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/micromips/soft-float/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/micromips/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/micromips/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/nan2008/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/nan2008/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/soft-float/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/soft-float/64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/soft-float/el/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/soft-float/el/64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/mips16/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/mips16/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/mips16/soft-float/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/mips16/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/el/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/el/64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc/nan2008/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc/nan2008/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc/soft-float/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/lib/gcc/mips-linux-gnu/4.6.3/include-fixed/uclibc/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib64/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib64/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib64/soft-float/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib64/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/include/c++/4.6.3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/include/c++/4.6.3/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/soft-float/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/mips16/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/mips16/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/mips16/soft-float/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/mips16/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc/nan2008/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc/nan2008/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc/soft-float/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/uclibc/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/micromips/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/micromips/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/micromips/soft-float/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/micromips/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/micromips/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/nan2008/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/lib/nan2008/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/lib64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/lib64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/lib64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr/lib64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr/lib64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/usr/lib64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr/lib64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr/lib64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/usr/lib64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/soft-float/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/soft-float/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/mips16/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr/lib64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr/lib64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr/lib64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/el/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/nan2008/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/soft-float/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/uclibc/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/soft-float/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/el/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_cs_tree/mips-linux-gnu/libc/micromips/el/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/nvvm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/nvvm/libdevice
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/nvvm/libdevice/libdevice.compute_20.10.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/nvvm/libdevice/libdevice.compute_35.10.bc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/CUDA/usr/local/cuda/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/i386-unknown-linux/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/i386-unknown-linux/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtfastmath.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/x86_64-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/x86_64-unknown-linux/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_tree/usr/x86_64-unknown-linux/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/lib/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/lib/i386-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/lib/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/lib/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/i386-linux-gnu/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/i386-linux-gnu/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/i386-linux-gnu/c++/4.8/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/x86_64-linux-gnu/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/x86_64-linux-gnu/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/x86_64-linux-gnu/c++/4.8/32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/x86_64-linux-gnu/c++/4.8/32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/c++/4.8/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/include/c++/4.8/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc/i686-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc/i686-linux-gnu/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc/i686-linux-gnu/4.8/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc/x86_64-linux-gnu/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc/x86_64-linux-gnu/4.8/32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc/x86_64-linux-gnu/4.8/32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/i386-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree2/usr/lib/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/bin/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/bin/as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/i386-unknown-linux/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/bin/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/bin/as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/bin/i386-unknown-linux-gnu-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/bin/i386-unknown-linux-gnu-as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_32bit_linux_tree/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr/lib64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr/lib64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr/lib64/powerpc64-fsl-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr/lib64/powerpc64-fsl-linux/4.6.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr/lib64/powerpc64-fsl-linux/4.6.2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr/lib64/powerpc64-fsl-linux/4.6.2/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/usr/lib64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc64_tree/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/v1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/v1/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/v2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/v2/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/4.8/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/include/c++/4.8/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libstdcxx_libcxxv2_tree/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/cl-libs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/cl-libs/cl-test.lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/ld.so.1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/lib/mips64-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/lib/mips64-linux-gnuabi64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/lib/mips64el-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/lib/mips64el-linux-gnuabi64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc/mips64-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc/mips64-linux-gnuabi64/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc/mips64-linux-gnuabi64/4.9/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc/mips64-linux-gnuabi64/4.9/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc/mips64el-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc/mips64el-linux-gnuabi64/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/mips64-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/mips64-linux-gnuabi64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/mips64-linux-gnuabi64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/mips64-linux-gnuabi64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/mips64el-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/mips64el-linux-gnuabi64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/mips64el-linux-gnuabi64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/lib/mips64el-linux-gnuabi64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/c++/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/c++/4.9/mips64-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/c++/4.9/mips64-linux-gnuabi64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/c++/4.9/mips64el-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/c++/4.9/mips64el-linux-gnuabi64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/c++/4.9/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/c++/4.9/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/mips64-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/mips64-linux-gnuabi64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/mips64el-linux-gnuabi64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips64_tree/usr/include/mips64el-linux-gnuabi64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr/bin/ld.gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr/bin/ld.bfd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd_tree/usr/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/Windows
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/Windows/ARM
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/Windows/ARM/8.1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/Windows/ARM/8.1/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/Windows/ARM/8.1/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/Windows/ARM/8.1/usr/bin/armv7-windows-itanium-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/Windows/ARM/8.1/usr/bin/ld.lld-link2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_nacl_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_nacl_tree/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/i686-w64-mingw32/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/i686-w64-mingw32/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/i686-w64-mingw32/include/c++/5.1.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/i686-w64-mingw32/include/c++/5.1.0/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/i686-w64-mingw32/include/c++/5.1.0/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/i686-w64-mingw32/include/c++/5.1.0/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/i686-w64-mingw32/include/c++/5.1.0/i686-w64-mingw32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/lib/gcc/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/lib/gcc/i686-w64-mingw32/5.1.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/lib/gcc/i686-w64-mingw32/5.1.0/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/lib/gcc/i686-w64-mingw32/5.1.0/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/lib/gcc/i686-w64-mingw32/5.1.0/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_arch_tree/usr/lib/gcc/i686-w64-mingw32/5.1.0/include-fixed/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/x86_64-pc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/x86_64-pc-linux-gnu/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/x86_64-pc-linux-gnu/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/lib/gcc/x86_64-pc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.4_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.4/include/g++-v4.6/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mips-r2-hard-musl/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/sysroot/mipsel-r2-hard-musl/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/lib/linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/lib/linux/libclang_rt.builtins-mips.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mips-r2-hard-musl/lib/linux/libclang_rt.builtins-mips.so
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/lib/linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/lib/linux/libclang_rt.builtins-mipsel.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_mti_linux/lib/clang/3.8.0/mipsel-r2-hard-musl/lib/linux/libclang_rt.builtins-mipsel.so
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armebhf_linux_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armebhf_linux_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armebhf_linux_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armebhf_linux_tree/usr/include/armeb-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armebhf_linux_tree/usr/include/armeb-linux-gnueabihf/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_clang_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_clang_tree/mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_clang_tree/mingw32/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_clang_tree/mingw32/i686-w64-mingw32/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_clang_tree/mingw32/i686-w64-mingw32/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_clang_tree/mingw32/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_clang_tree/mingw32/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/lib/arm-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/lib/arm-linux-gnueabihf/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/lib/arm-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/lib/arm-linux-gnueabi/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/arm-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/arm-linux-gnueabihf/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/arm-linux-gnueabihf/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/arm-linux-gnueabihf/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/arm-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/arm-linux-gnueabi/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/arm-linux-gnueabi/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/arm-linux-gnueabi/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc/arm-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc/arm-linux-gnueabihf/4.6.3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc/arm-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc/arm-linux-gnueabi/4.6.1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc/arm-linux-gnueabi/4.6.1/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/lib/gcc/arm-linux-gnueabi/4.6.1/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/include/arm-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/include/arm-linux-gnueabi/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/include/arm-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_12.04_LTS_multiarch_tree/usr/include/arm-linux-gnueabihf/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib/gcc/aarch64-redhat-linux/4.9.0/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_21_tree/usr/lib64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0/include-fixed/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0/include/c++/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0/include/c++/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0/include/c++/x86_64-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/lib64/gcc/x86_64-w64-mingw32/5.1.0/include/c++/x86_64-w64-mingw32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/x86_64-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/x86_64-w64-mingw32/sys-root
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/x86_64-w64-mingw32/sys-root/mingw
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/x86_64-w64-mingw32/sys-root/mingw/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_opensuse_tree/usr/x86_64-w64-mingw32/sys-root/mingw/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr/sbin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/el/usr/sbin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/sbin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/usr/sbin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr/sbin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr/sbin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr/sbin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/el/usr/sbin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr/sbin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/64/usr/sbin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr/sbin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/sysroot/mips64r6/usr/sbin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/64/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/64/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/mips64r6/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed/mips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed/mips64r6/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed/mips64r6/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed/mips64r6/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed/mips64r6/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/lib/gcc/mips-img-linux-gnu/4.9.0/include-fixed/mips64r6/64/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/include/c++/4.9.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/include/c++/4.9.0/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib/mips64r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib/mips64r6/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib/mips64r6/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib/mips64r6/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib/mips64r6/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib/mips64r6/64/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/lib/el/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/mips-img-linux-gnu/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_img_tree/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/lib/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/lib/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/lib/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/lib/mipsel-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++/4.7/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++/4.7/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++/4.7/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++/4.7/mipsel-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++/4.7/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++/4.7/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/c++/4.7/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/mipsel-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/gcc/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/gcc/mips-linux-gnu/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/gcc/mips-linux-gnu/4.7/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/gcc/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/gcc/mipsel-linux-gnu/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/gcc/mipsel-linux-gnu/4.7/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/mipsel-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_reduced_mips_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/module
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/module/simple.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/module/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/libx32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/libx32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/bin/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/bin/x86_64-unknown-linux-gnu-as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/bin/as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/libx32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/libx32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/bin/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/bin/as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/x86_64-unknown-linux/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/x32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/x32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_64bit_linux_tree/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/lib/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/lib/i386-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/c++/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/c++/4.5/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/c++/4.5/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/c++/4.5/i686-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/c++/4.5/i686-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/c++/4.5/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/include/i386-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/lib/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/lib/i386-linux-gnu/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_11.04_multiarch_tree/usr/lib/i386-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/wildcard2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/header0.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/lib/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/lib/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.7/32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.7/32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.7/32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc-cross
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc-cross/arm-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/lib/gcc-cross/arm-linux-gnueabihf/4.7/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.7/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.7/32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.7/32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/c++/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/c++/4.7/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_13.04_multiarch_tree/usr/include/c++/4.7/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/pchfile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/header2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabihf/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/arm-linux-gnueabi/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/x86-64_ubuntu_13.10/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/header4.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree/usr/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree/usr/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_freebsd64_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.7.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.7.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.6/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.6.99
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.6.99/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.7.1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.7.1/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.7
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/lib/gcc/i386-unknown-linux/4.7/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing1/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/prefixed_tools_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/prefixed_tools_tree/x86_64--linux-as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/prefixed_tools_tree/x86_64--linux-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/scei-ps4_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/scei-ps4_tree/target
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/scei-ps4_tree/target/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/scei-ps4_tree/target/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/scei-ps4_tree/target/include_common
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/scei-ps4_tree/target/include_common/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.7.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.7.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.6.99
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.6.99/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.7.1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.7.1/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.6.x
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.6.x/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.7.x
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/lib/gcc/i386-unknown-linux/4.7.x/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing2/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/lib/gcc/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/lib/gcc/i386-unknown-linux/4.7.99-rc5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/lib/gcc/i386-unknown-linux/4.7.99-rc5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/lib/gcc/i386-unknown-linux/4.7.98
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/lib/gcc/i386-unknown-linux/4.7.98/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing3/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1/include/c++/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1/include/c++/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1/include/c++/mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1/include/c++/mingw32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/lib/gcc/mingw32/4.8.1/include-fixed/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/minw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/minw32/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_org_tree/mingw/minw32/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib/gcc/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib/gcc/i386-unknown-linux/4.7.99-rc5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib/gcc/i386-unknown-linux/4.7.99-rc5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib/gcc/i386-unknown-linux/4.7.98
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib/gcc/i386-unknown-linux/4.7.98/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib/gcc/i386-unknown-linux/4.7.99
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/lib/gcc/i386-unknown-linux/4.7.99/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gcc_version_parsing4/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib/gcc/powerpc64-suse-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib/gcc/powerpc64-suse-linux/4.1.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib/gcc/powerpc64-suse-linux/4.1.2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/suse_10.3_ppc64_tree/usr/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_arm_linux_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_arm_linux_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_arm_linux_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_arm_linux_tree/usr/include/arm-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_arm_linux_tree/usr/include/arm-linux-gnueabi/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/cc1-response.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/lib/sparc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/lib/sparc-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib64/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/c++/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/c++/4.9/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/c++/4.9/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/sparc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/sparc-linux-gnu/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/sparc-linux-gnu/c++/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/sparc-linux-gnu/c++/4.9/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/include/sparc-linux-gnu/c++/4.9/64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/gcc/sparc-linux-gnu/4.9/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/sparc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/sparc-linux-gnu/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/sparc-linux-gnu/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/usr/lib/sparc-linux-gnu/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc_multilib_tree/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/B_opt_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/B_opt_tree/dir1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/B_opt_tree/dir1/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/B_opt_tree/dir1/i386-unknown-linux-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/B_opt_tree/dir2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/B_opt_tree/dir2/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/B_opt_tree/dir3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/B_opt_tree/dir3/prefix-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/file.prof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/file.ll
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armeb_linux_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armeb_linux_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armeb_linux_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armeb_linux_tree/usr/include/armeb-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armeb_linux_tree/usr/include/armeb-linux-gnueabi/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib/gcc/armv7hl-redhat-linux-gnueabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fedora_18_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr/include/c++/v1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr/include/c++/v1/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxx_tree/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/lib/sparc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/lib/sparc64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/sparc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/sparc64-linux-gnu/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/sparc64-linux-gnu/c++/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/sparc64-linux-gnu/c++/4.9/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/c++/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/include/c++/4.9/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/sparc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/sparc64-linux-gnu/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/sparc64-linux-gnu/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/sparc64-linux-gnu/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/gcc/sparc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/gcc/sparc64-linux-gnu/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/gcc/sparc64-linux-gnu/4.9/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/usr/lib/gcc/sparc64-linux-gnu/4.9/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_8_sparc64_tree/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/pchfile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/x86_64-pc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/x86_64-pc-linux-gnu/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/x86_64-pc-linux-gnu/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/lib/gcc/x86_64-pc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.6.2_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armhf_linux_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armhf_linux_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armhf_linux_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armhf_linux_tree/usr/include/arm-linux-gnueabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/multilib_armhf_linux_tree/usr/include/arm-linux-gnueabihf/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/i686-w64-mingw32/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/i686-w64-mingw32/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/i686-w64-mingw32/include/c++/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/i686-w64-mingw32/include/c++/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/i686-w64-mingw32/include/c++/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/i686-w64-mingw32/include/c++/i686-w64-mingw32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/lib/gcc/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/lib/gcc/i686-w64-mingw32/4.9.1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/lib/gcc/i686-w64-mingw32/4.9.1/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/lib/gcc/i686-w64-mingw32/4.9.1/include-fixed/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/lib/gcc/i686-w64-mingw32/4.9.1/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_mingw_builds_tree/mingw32/lib/gcc/i686-w64-mingw32/4.9.1/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/include/c++/4.8.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/include/c++/4.8.2/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/sparc-myriad-elf/lib/crt0.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_myriad_tree/lib/gcc/sparc-myriad-elf/4.8.2/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/i386-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/mipsel-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/powerpc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/powerpc64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/powerpc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/powerpc-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/mipsel-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/powerpc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/powerpc64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/i686-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/i686-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/powerpc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/powerpc-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/include/c++/4.5/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mips-linux-gnu/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mips-linux-gnu/4.5/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mips-linux-gnu/4.5/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mips-linux-gnu/4.5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mips-linux-gnu/4.5/n32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mips-linux-gnu/4.5/n32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mipsel-linux-gnu/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mipsel-linux-gnu/4.5/n32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mipsel-linux-gnu/4.5/n32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mipsel-linux-gnu/4.5/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mipsel-linux-gnu/4.5/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/mipsel-linux-gnu/4.5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64-linux-gnu/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64-linux-gnu/4.5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/i686-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/i686-linux-gnu/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/i686-linux-gnu/4.5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc-linux-gnu/4.5
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/gcc/powerpc-linux-gnu/4.5/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/i386-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/mipsel-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc64le-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc64le-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/usr/lib/powerpc-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/mips-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/mips-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/i386-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/i386-linux-gnu/libtest.so
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/i386-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/mipsel-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc64le-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc64le-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_multiarch_tree/lib/powerpc-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr/lib/powerpc-fsl-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr/lib/powerpc-fsl-linux/4.6.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr/lib/powerpc-fsl-linux/4.6.2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/usr/lib/powerpc-fsl-linux/4.6.2/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/freescale_ppc_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/lib/gcc/i386-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/lib/gcc/i386-unknown-linux/4.7.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/lib/gcc/i386-unknown-linux/4.7.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/lib/gcc/x86_64-unknown-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/lib/gcc/x86_64-unknown-linux/4.5.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/fake_install_tree/lib/gcc/x86_64-unknown-linux/4.5.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib64/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/gcc/mipsel-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/gcc/mipsel-linux-gnu/4.4
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/gcc/mipsel-linux-gnu/4.4/n32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/gcc/mipsel-linux-gnu/4.4/n32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/gcc/mipsel-linux-gnu/4.4/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/gcc/mipsel-linux-gnu/4.4/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/gcc/mipsel-linux-gnu/4.4/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib32/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/usr/lib32/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/lib32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/lib32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/lib64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/lib64/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/debian_6_mips_tree/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/montavista_i686_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/montavista_i686_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/montavista_i686_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/montavista_i686_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/montavista_i686_tree/usr/lib/gcc/i686-montavista-linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/montavista_i686_tree/usr/lib/gcc/i686-montavista-linux/4.2.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/montavista_i686_tree/usr/lib/gcc/i686-montavista-linux/4.2.0/libgcc.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/montavista_i686_tree/usr/lib/gcc/i686-montavista-linux/4.2.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof/usr/inclide
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof/usr/inclide/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof/usr/inclide/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/usr/inclide
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/usr/inclide/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/usr/inclide/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008/usr/inclide
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008/usr/inclide/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/micromips/nan2008/usr/inclide/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/64/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/64/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips64r2/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/usr/include/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/usr/include/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/mips16/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips32/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/mips16/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/fp64/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/fp64/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/fp64/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/el/fp64/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008/usr/include/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008/usr/include/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof/usr/include/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof/usr/include/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/usr/include/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/usr/include/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008/usr/include/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008/usr/include/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/nan2008/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof/usr/include/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/sof/usr/include/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/usr/include/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/usr/include/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/sysroot/uclibc/el/usr/lib/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/uclibc/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/micromips/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/64/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/64/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips64r2/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/mips16/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips32/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/mips16/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/el/nan2008/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/el/sof/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/lib/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/uclibc/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/micromips/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/64/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/el/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips64r2/64/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/mips16/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips32/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/sof/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/sof/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/fp64/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/el/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/nan2008/bits
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/mips-mti-linux-gnu/mips16/nan2008/bits/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/mips-mti-linux-gnu/include/c++/4.9.0/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64r2/64/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/mips16/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips32/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips16/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/include-fixed/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/uclibc/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/micromips/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/fp64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/fp64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/el/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/nan2008
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/nan2008/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/nan2008/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/sof
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/sof/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/mips64/sof/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/lib/gcc/mips-mti-linux-gnu/4.9.0/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mips_fsf_tree/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.ubsan_cxx-x86_64.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.asan-i386.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.msan-x86_64.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.msan_cxx-x86_64.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.asan-x86_64.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.ubsan-i386.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.tsan-x86_64.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.ubsan_cxx-i386.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.tsan_cxx-x86_64.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.ubsan-x86_64.a.syms
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/macho_embedded
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/macho_embedded/libclang_rt.soft_static.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/macho_embedded/libclang_rt.hard_static.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/macho_embedded/libclang_rt.soft_pic.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/lib/macho_embedded/libclang_rt.hard_pic.a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/vtables_blacklist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/resource_dir/asan_blacklist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/gen-response.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.bfd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtfastmath.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtbeginT.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/4.6.0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/4.6.0/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.bfd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.bfd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.bfd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/as
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/wildcard1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/include/c++/4.9.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/include/c++/4.9.2/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/include/c++/4.9.2/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/include/c++/4.9.2/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/include/c++/4.9.2/i686-w64-mingw32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/lib/gcc/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/lib/gcc/i686-w64-mingw32/4.9.2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/lib/gcc/i686-w64-mingw32/4.9.2/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/lib/gcc/i686-w64-mingw32/4.9.2/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/lib/gcc/i686-w64-mingw32/4.9.2/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/lib/gcc/i686-w64-mingw32/4.9.2/include-fixed/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/i686-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/i686-w64-mingw32/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_msys2_tree/msys64/mingw32/i686-w64-mingw32/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/libx32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/libx32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/lib/powerpc64le-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/lib/powerpc64le-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/lib/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/lib/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/powerpc64le-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/powerpc64le-linux-gnu/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/powerpc64le-linux-gnu/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/powerpc64le-linux-gnu/c++/4.8/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.8/32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.8/32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.8/x32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/x86_64-linux-gnu/c++/4.8/x32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/c++/4.8/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/include/c++/4.8/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/libx32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/libx32/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/libx32/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/libx32/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/powerpc64le-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/powerpc64le-linux-gnu/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/powerpc64le-linux-gnu/crt1.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/powerpc64le-linux-gnu/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/x86_64-linux-gnu/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.8/x32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.8/32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.8/32/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/x86_64-linux-gnu/4.9/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.8/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.8/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.9
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/ubuntu_14.04_multiarch_tree/usr/lib/gcc/powerpc64le-linux-gnu/4.9/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/crtbeginS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/eabihf
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/eabihf/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/crtendS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/powerpc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/powerpc/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/eabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/eabi/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/crtn.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/o32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/o32/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/crt0.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/sparc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/sparc/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/64/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/i386/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/oabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_netbsd_tree/usr/lib/oabi/crti.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/header1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/v1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/v1/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/v2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_linux_libcxxv2_tree/usr/include/c++/v2/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/sysroot
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/sysroot/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/sysroot/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/sysroot/usr/lib/crtbegin_static.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/sysroot/usr/lib/crtbegin_so.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/sysroot/usr/lib/crtend_android.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/sysroot/usr/lib/crtend_so.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/sysroot/usr/lib/crtbegin_dynamic.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android/include/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android/include/c++/4.8/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/aarch64-linux-android/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android/include/c++/4.4.3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android/include/c++/4.4.3/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/mipsel-linux-android/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3/crtbeginS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3/crtbeginT.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/arm-linux-androideabi/4.4.3/crtendS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/aarch64-linux-android
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/aarch64-linux-android/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/aarch64-linux-android/4.8/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/aarch64-linux-android/4.8/crtbeginS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/aarch64-linux-android/4.8/crtbeginT.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/aarch64-linux-android/4.8/crtendS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/aarch64-linux-android/4.8/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r2
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r2/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r2/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r2/crtbeginS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r2/crtbeginT.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r2/crtendS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/crtbeginS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r6
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r6/crtend.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r6/crtbeginS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r6/crtbeginT.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r6/crtendS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/mips-r6/crtbegin.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/crtbeginT.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/lib/gcc/mipsel-linux-android/4.4.3/crtendS.o
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/bin/arm-linux-androideabi-ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/bin/arm-linux-androideabi-ld.gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/bin/arm-linux-androideabi-ld.bfd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/include/c++/4.4.3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/include/c++/4.4.3/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/lib/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/bin/ld.bfd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/bin/ld
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/bin/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/basic_android_tree/arm-linux-androideabi/bin/ld.gold
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/header3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/x86_64-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/x86_64-w64-mingw32/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/x86_64-w64-mingw32/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/include/c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/include/c++/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/include/c++/4.8/86_64-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/include/c++/4.8/86_64-w64-mingw32/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/include/c++/4.8/backward
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/include/c++/4.8/backward/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/lib/gcc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/lib/gcc/x86_64-w64-mingw32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/lib/gcc/x86_64-w64-mingw32/4.8
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/lib/gcc/x86_64-w64-mingw32/4.8/include-fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/lib/gcc/x86_64-w64-mingw32/4.8/include-fixed/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/lib/gcc/x86_64-w64-mingw32/4.8/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Inputs/mingw_ubuntu_tree/usr/lib/gcc/x86_64-w64-mingw32/4.8/include/.keep
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/target-triple-deployment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/output-file-cleanup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/msvc-link.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/pch-deps.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-darwin-builtin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/r600-mcpu.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fpack-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/stackrealign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-version.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-link-at-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/crash-report.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-pch-search.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ccc-as-cpp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fveclib.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-compiler-rt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/sparc-float.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Ofast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/modules-cache-path.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-objc-defaults.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/sysroot.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/instrprof-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/x86_64-nacl-defines.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/working-directory-and-abs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mingw-useld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang-g-opts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-mti-linux.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/linux-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/masm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ps4-analyzer-defaults.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ccc-host-triple-no-integrated-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/aarch64-cpus.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-debug-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/thread-model.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/target-as.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-response-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang_wrapv_opts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-constructor-alias.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-unused-arg-warning.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-eleb.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/macho-embedded.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arclite-link.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-asan-nofortify.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/no-objc-arr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/wasm-toolchain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cross-linux.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/coverage-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-ld-demangle.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/compress.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-xscale.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/msvc_forward.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arc-exceptions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/modules.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fcomment-block-commands.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-objc-gc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/nostdincxx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cc1-response-files.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/prefixed-tools.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/msc-version.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ps4-sdk-root.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/rewrite-objc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-long-calls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/rtti-options.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-output-asm.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/B-opt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/appletvos-version-min.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/gold-lto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/modules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/windows-wildcard-expansion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/dragonfly.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/integrated-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-multiarch-arm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-cortex-cpus.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-link.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/systemz-as.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/incremental-linker-compatible.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/aarch64-mgeneral_regs_only.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/output-file-is-dir.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/analyze.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/rewrite-map-in-diagnostics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/sanitizer-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/inhibit-downstream-commands.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/systemz-march.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/integrated-as.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/rewrite-legacy-objc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-zc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/nozlibcompress.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/noinline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-cs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/as-options.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/le32-unknown-nacl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/x86-march.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ios-simulator-arcruntime.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-ias-Wa.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-max-type-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-outputs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/default-image-name.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/color-diagnostics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/x86_features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/no-canonical-prefixes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/woa-fp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/debug-prefix-map.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/O.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-bad-arch.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/no-integrated-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/myriad-toolchain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/apple-kext-mkernel.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-pch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-x86-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/split-debug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mipsel-nacl-defines.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/coverage_no_integrated_as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/no-integrated-as.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/split-debug.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-fsf.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-simple.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/split-stack-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/frame-pointer-elim.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/no-sibling-calls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/msan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/split-debug.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/armv8-crc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/aarch64-features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-ias-Wa.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/noexecstack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/index-header-map.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/frame-pointer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-runtime-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang-exception-flags.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/wasm64-unknown-unknown.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/netbsd.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-external-tools.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/whole-program-vtables.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/phases.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang_cpp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/dyld-prefix.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang-s-opts.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/crash-report-modules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-fallback.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ios-version-min.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cpath.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/solaris-opts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/krait-cpu.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/vfsoverlay.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/le64-unknown-unknown.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/msvc-triple.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/diagnostics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-sdkroot.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-arch-translation.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-pch-showincludes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-integrated-as.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ps4-pic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mrecip.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/debug-options-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Wp-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cloudabi.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ps4-linker-win.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-sanitizer-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/aarch64-fix-cortex-a53-835769.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/linux-header-search.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/sparcv9-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/warning-options.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fuse-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/default-toolchain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/xcore-opts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/as-default-dwarf.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Xlinker-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/nodefaultlib.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/freebsd.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/gcc-toolchain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ppc-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mingw.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cloudabi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fast-math.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/option-aliases.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/env.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/systemz-features.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fortran.f95
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-dsymutil.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/woa-restrict-it.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/lto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/emulated-tls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/retain-comments-from-system-headers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-pch-errorhandling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-stdlib.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/at_file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-fixed-r9.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/warning-options_pedantic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/tsan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/solaris-header-search.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/redzone.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/code-model.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mglobal-merge.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/freebsd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ps4-linker-non-win.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/lanai-unknown-unknown.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/bitrig.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/windows-cross.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/asan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-iphone-defaults.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/biarch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/exceptions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/amdgpu-toolchain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fsanitize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-hwdiv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang_f_opts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fsanitize-blacklist.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang_f_opts.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/msvc-compiler-rt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/crash-report-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/Xarch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/windows-arm-minimal-arch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/solaris-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cc-log-diagnostics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-float-abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/redundant-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/crash-report-null.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/preprocess-multiple.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/debug-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/thinlto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-mfpu.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/debug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/immediate-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-alignment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/pth.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/bindings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ps4-header-search.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/aarch64-fixed-x18.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/linker-opts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cc-print-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm64-as.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/hexagon-toolchain-elf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/debug-unsupported.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/objc-weak.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/debug-comp-dir.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang-translation.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/working-directory.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/at_file.c.args.utf16le
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/save-temps.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/objc-sdk-migration-options.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/crash report spaces.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-objc-options.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/objc-cpp-output.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-pch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/objc++-cpp-output.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/response-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ppc-endian.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-inputs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/parse-progname.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/gcc_forward.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-arch-default.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arch-armv7k.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fsanitize-coverage.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/altivec-asm.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/nacl-direct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/target-abi-cc1as.s
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-options.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/no-integrated-as-win.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-reduced-toolchain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mingw-libgcc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/gcc-version-debug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fopenmp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cuda-detect.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-embedded.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-no-movt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-ld-lto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/nostdlib.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/netbsd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/autolink_integrated_as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-img.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/le32-toolchain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ident_md.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/stack-protector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/gnu-runtime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-restrict-it.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/preprocessor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/std.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/eabi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/symbol-rewriter.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/constructors.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-arch-darwin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/watchos-version-min.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/preserve-uselistorder.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/elfiamcu-header-search.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-ld.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm-multilibs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ms-bitfields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cpp-precomp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/claim-unused.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/cl-eh.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/std.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/at_file_missing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/at_file.c.args
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/linux-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/lanai-toolchain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/unknown-gcc-arch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/debug-main-file.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/clang-c-as-cxx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/android-standalone.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/wasm32-unknown-unknown.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/m_and_mm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/x86_m16.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/sparc-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fparse-all-comments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/via-file-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/darwin-verify-debug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/pic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-float.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/sysroot-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ppc-dependent-options.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/no-objc-default-synthesize-properties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/arm64-darwinpcs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/embed-bitcode.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/mips-features.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/target.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ppc-features.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/qa_override.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/sanitize_unwind_tables.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fplugin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/dynamic-linker.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/unknown-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/nostdlibinc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/verify_pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/function-sections.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/fatal-warnings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/ps4-runtime-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/freebsd-mips-as.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Driver/implicit-function-as-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-indirect-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-linkage.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-generate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/README
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/def-assignop.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-linkage-available_externally.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/profile-does-not-exist.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-counter-overflows.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-captured.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-unprofiled.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/func-entry.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/profile-summary.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/max-function-count.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-unprofiled-blocks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-structors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-implicit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/gcc-flag-compatibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-virtual-destructor-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-lambda.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-throws.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/def-ctors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-unreachable-after-switch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/def-dtors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-indirect-call.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-linkage.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-general.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/c-outdated-data.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/cxx-throws.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-captured.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-unprofiled.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/profiled_header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/objc-general.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/func-entry.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/profile-summary.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-general.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/max-function-count.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/cxx-templates.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-outdated-data.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-unprofiled-blocks.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/cxx-rangefor.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/cxx-class.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-attributes.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-general.profdata.v1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-general.profdata.v3
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/gcc-flag-compatibility.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/cxx-lambda.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/Inputs/c-counter-overflows.proftext
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/objc-general.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-rangefor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Profile/cxx-class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-class-init.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-extern-c.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/ivar-encoding-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-user-defined-accessors.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-block-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-fast-enumeration.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-protocol-type-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-block-ivar-call.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/func-in-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-qualified-type.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-ivars-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-vararg.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/missing-dllimport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-throw.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-property-attributes.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-StretAPI.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-StretAPI-3.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-numeric-literal.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-atautoreleasepool.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-block.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/undecl-objc-h.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-ivar-receiver-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-super.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-nested-ivar.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-metadata-visibility.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-synchronized.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-nested-blocks-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-try-catch-finally.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/line-generation-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-captured-nested-bvar.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-struct-ivar.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-typeof.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-api-bug.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-local-externs-in-block.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-container-subscript.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-static-block.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-block-literal-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-protocol-id.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-block-literal.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-implementation.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-class.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/va-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-forward-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-array-literal.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-no-nextline.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-extern-c-func-decl.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-byref-in-nested-blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/blockcast3.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/property-dot-syntax.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-try-finally.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-linkage-spec.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-implicit-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-protocol-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-ivar-access.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-cast-ivar-access.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-qualified-id.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/metadata-test-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/blockstruct.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-in-block.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-struct-ivar-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-boxing.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-rewritten-initializer.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-property-bitfield.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-ivars-2.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/static-type-protocol-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-block-pointer.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/id-test-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-ivar-use.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-ivar-use.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/undef-field-reference-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-weak-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/protocol-rewrite-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-nested-property-in-blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-getclass-proto.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/undeclared-method-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-property-attributes.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-line-directive.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-catch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-string-concat-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-nested-blocks-2.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-6.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-trivial-constructor.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-bool-literal-modern-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/crash.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-ivars.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-ivar-receiver-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-protocol.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/no-integrated-preprocessing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-typeof.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-captured-nested-bvar.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-super-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-function-decl.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-synchronized-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-container-literal.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-category-property.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/metadata-test-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-message-expr.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/method-encoding-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/unnamed-bf-modern-write.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-StretAPI-2.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-local-static-id.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-super-message.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-try-catch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-block-consts.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/protocol-rewrite-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-block-ivar-call.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/ivar-encoding-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-property-set-cfstring.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/weak_byref_objects.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-block-argument.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-foreach-7.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-anonymous-union.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-block-consts.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-protocol-qualified.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/finally.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-nested-ivar.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-bool-literal-modern.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-cast-to-bool.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/instancetype-test.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-modern-class-init-hooks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-unique-block-api.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-forward-class.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/modern-write-bf-abi.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-private-ivars.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-modern-default-property-synthesis.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-elaborated-type.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-protocol-property.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-constructor-init.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-nest.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-nested-blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/properties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-cast-ivar-modern-access.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-interface-locals.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/no-integrated-preprocessing-64bit.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/inner-block-helper-funcs.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-bool-literal-check-modern.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/objc-encoding-bug-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-eh.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Rewriter/rewrite-byref-vars.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-memfunc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/void_to_obj.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/nullptr.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/linkage-spec.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/typeloc-data-alignment.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/parameters.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/instantiate-property-access.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/instantiate-message.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objc-boxed-expressions-nsvalue.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objc-container-subscripting.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objc-decls-inside-namespace.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/instantiate-stmt.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/delay-parsing-cfunctions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objcbridge-related-attribute.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/function-pointer-void-star.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/fragile-abi-object-assign.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/conversion-ranking.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/gc-attributes.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/contextual-convert-to-id.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/nullability-pragmas.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/exceptions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/delay-parsing-cplusfuncs.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/capturing-flexible-array-in-block.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/argument-dependent-lookup.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objcbridge-attribute-arc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/debugger-support.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/foreach-block.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objc-extern-c.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-templates.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/reserved-keyword-methods.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/overload-gc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/namespace-lookup.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/instancetype.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/propert-dot-error.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/property-type-mismatch.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/foreach.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-type-conversion.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/null_objc_pointer.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objcbridge-static-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/goto.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/protocol-lookup.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/decltype.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/arc-system-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-pragmas-1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-pragmas-2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-pragmas-3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-system
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-system/nullability-consistency-system.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-4.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-5.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-6.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-7.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-pragmas-generics-1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/Inputs/nullability-consistency-8.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/overload.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/ivar-reference-type.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-system-header.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/block-for-lambda-conversion.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/format-strings.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/conditional-expr.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-bool-conversion.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/references.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/ivar-struct.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/abstract-class-type-ivar.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/exceptions-fragile.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/vararg-non-pod.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/cstyle-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objcbridge-attribute.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/pseudo-destructor.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/conversion-to-objc-pointer-2.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/instantiate-expr.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/crash.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/debugger-cast-result-to-id.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/property-synthesis-error.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/old-style-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/sel-address.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-libstdcxx.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/ivar-lookup.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/expr-objcxx.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/parameterized_classes.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-overloading.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/instantiate-method-return.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/delay-parsing-func-tryblock.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/literals.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/synchronized.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/property-reference.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/vla.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/message.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/warn-strict-selector-match.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/unknown-anytype.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/nullability-consistency.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-0x.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-nsconsumed-errors.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-unavailable-for-weakref.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/cxxoperator-selector.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/pointer-to-objc-pointer-conv.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/composite-objc-pointertype.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/conversion-to-objc-pointer.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-unbridged-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/parameterized_classes_arc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objc-pointer-conv.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/missing-lhs-gun-extension.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/boxing-illegal-types.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/warn-objc-literal-conversion.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/typo-correction.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/objc2-merge-gc-attribue-decl.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/related-result-type-inference.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/microsoft-abi-byval.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/warn-missing-super.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-objc-lifetime.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/const-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/deduction.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/static-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/ivar-construct.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/base-type-as-written.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/category-lookup.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/reinterpret-cast-objc-pointertype.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/NSString-type.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/property-invalid-type.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-ppe.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-type-traits.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/parameterized_classes_subst.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/cxx1y-lambda.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/arc-bridged-cast.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/properties.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjCXX/standard-conversion-to-bool.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/retains.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-subscripting-literals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-property-dot-syntax.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/api.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/nonobjc-to-objc-cast-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-atomic-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/atautorelease.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/cxx-rewrite.mm.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/protected-scope.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-undefined-ns-macros.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-property.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/assign-prop-no-arc-runtime.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/migrate-plist-output.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/migrate-space-in-path.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/check-with-serialized-diag.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/checking-in-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-property-availability.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC-no-arc-runtime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Module
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/PrivateHeaders
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/PrivateHeaders/ModulePrivate.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Headers/Sub2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Headers/NotInModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Headers/Buried
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Headers/Buried/Treasure.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Headers/Module.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Headers/Sub.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Frameworks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Frameworks/SubFramework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/test2.m.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/test.h.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/test1.m.in.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/test2.m.in.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/Inputs/test1.m.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/cxx-checking.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/migrate.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-subscripting-literals-in-arc.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/objcmt-with-whitelist-impl.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/objcmt-with-whitelist-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/header1.h.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/objcmt-with-whitelist.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/header2.h.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/header1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/header2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/whitelisted/Inputs/header1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-ns-macros.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with space
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with space/test1.m.in.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with space/test2.m.in.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with space/test1.m.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with space/test2.m.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with space/test.h.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with space/test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/migrate-emit-errors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/atautorelease-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/check-with-pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/rewrite-block-var.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/assign-prop-no-arc-runtime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/protected-scope.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-boxing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/releases.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/safe-arc-assign.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC-no-arc-runtime.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC-check.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-property-availability.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/autoreleases.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-subscripting-unavailable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/atautorelease-2.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-migrate-all.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/checking.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-subscripting-literals-in-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/rewrite-block-var.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/releases.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/safe-arc-assign.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-instancetype-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-designated-initializer.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC-no-finalize-removal.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-instancetype.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-protocol-conformance.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/remove-statements.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with-arc-mode-modify.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-atomic-property.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/no-canceling-bridge-to-bridge-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/autoreleases.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/migrate-on-pch-and-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/dispatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/block_copy_release.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-arc-cf-annotations.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/init.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-designated-initializer.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/remove-dealloc-zerouts.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/atautorelease-check.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/releases-driver.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/nonobjc-to-objc-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/atautorelease-3.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/dispatch.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-boxing.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/init.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-subscripting-literals.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/retains.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/block_copy_release.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/remove-dealloc-zerouts.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-instancetype-unnecessary-diff.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/api.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-migrate-all.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/nonobjc-to-objc-cast.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/remove-dealloc-method.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-undefined-ns-macros.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-numeric-literals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/releases-driver.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/atautorelease-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/atautorelease.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/cxx-rewrite.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/remove-statements.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-with-pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-instancetype.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/assign-prop-with-arc-runtime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/dealloc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/verify.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-protocol-conformance.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC-no-finalize-removal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/designated-init-in-header
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/designated-init-in-header/header1.h.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/designated-init-in-header/designated-init-in-header.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/designated-init-in-header/file2.m.in.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/designated-init-in-header/header1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/designated-init-in-header/file1.m.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/designated-init-in-header/file2.m.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-numeric-literals.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/migrate-with-pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/assign-prop-with-arc-runtime.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-with-pch.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/remove-dealloc-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-ns-macros.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/dealloc.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/driver-migrate.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/check-api.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-property-dot-syntax.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-subscripting-unavailable.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-instancetype-2.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/with-arc-mode-modify.m.result
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ARCMT/GC-check-warn-nsalloc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/werror.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/asm-attribute.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-documentation-properties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/arc-annotate.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/visibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/include_test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-preamble.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-type-declaration.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-literals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies/compile_commands.json
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies/pragma_once.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies/t1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies/t2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies/t3.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies/imported.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skip-parsed-bodies/t.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/invalid-rdar-8236270.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/cxx11-lambdas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/pch-depending-on-deleted-module.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/load-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-exprs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/crash-recovery-code-complete.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/file-refs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/blocks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-cplus-decls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-cmd-define.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/pch-with-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/remap-cursor-at.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/arc-complete.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-pch-with-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-suppress-refs.hpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/load-namespaces.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-comments-availability-attrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-ctor-inits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-preamble.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-macro-args.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-at-exprstmt.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/pch-opaque-value.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-macro-args.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-super.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-lots-of-unknown-commands.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/remap-load.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-file.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/load-stmts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/get-cursor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-kvc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-protocols.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/get-cursor.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-module-undef.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-objc-parameterized-classes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/skipped-ranges.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-comments-objc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-with-BOM.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-natural.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-member-access.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/getcursor-pp-pch.c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-method-decls.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/ms-if-exists.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/get-cursor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-property-getset.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/codecompletion-chained.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/cursor-dynamic-call.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/compile_commands.json
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/file-refs-subscripting.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/properties-class-extensions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/subclass-comment.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-annotation.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/TestClassDecl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-file-refs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-refs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-objc-message.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/evaluate-cursor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/initializer-memory.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/symbol-visibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/warning-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens-include.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/parse-all-comments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/cxx-operator-overload.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-preprocessor.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-parameterized-classes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-memfunc-cvquals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-mangled-name.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-at-EOF.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens-pp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/cursor-ref-names.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/crash-recovery.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens-with-default-args.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/overriding-method-comments.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/usrs-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-pch-objc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-exprs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-with-annotations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-recovery.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-warn-end-of-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-many-logical-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-exprs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/code-completion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/fix-its.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-in-stringify.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/get-cursor-macro-args.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/local-symbols.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/invalid-code-rdar10451854.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/crash-recovery-reparse.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-import.m-1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/get-cursor-macro-args.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/fix-its.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/c-index-pch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-type-factors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/getcursor-pp-pch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-super.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/usrs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/recursive-cxx-member-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/availability.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-cmd-define.c.remap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/file-includes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/keep-going.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-suppress-refs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-stmt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/pch-with-errors.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-macro-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-top.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-cmd-define.c.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/pch-with-errors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core/index-source.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core/index-source.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core/index-with-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core/index-source.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core/Inputs/module
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core/Inputs/module/ModA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Core/Inputs/module/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-file.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-objc-message-id.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/availability.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-optional-params.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/reparse-with-remaps
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/reparse-with-remaps/reparse.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/reparse-with-remaps/test.h-0
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/reparse-with-remaps/test.h-1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/reparse-with-remaps/test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/recover-bad-code-rdar_7487294.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-pch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-comments-preprocessor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-enums.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-toplevel-in-objccontainer.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-import.m-2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-preamble.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/get-cursor-includes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/retain-target-options.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-macros.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/redeclarations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-lambdas.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-context-sensitive.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble_macro_template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/nested-binaryoperators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-refs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/error-on-deserialized.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-nested1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-to-html-xml-conversion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/boxed-exprs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-fields.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-module-with-vfs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-declarators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-unqualified-objc-pointer.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-cursor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/boxed-exprs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-documentation-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-documentation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/modules-objc-categories.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-at-directives.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-cursor.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/code-completion-skip-bodies.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/TestClassForwardDecl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-subscripting.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/c-index-unsupported-warning-test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/rdar12316296-codecompletion.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-interfaces.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/unmatched-braces.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-subscripting-literals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-pointer-and-reference-to-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-deep-statements.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/targeted-cursor.m.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/cindex-test-inclusions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/IBOutletCollection.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/unmatched-braces.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/cindex-on-invalid.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/reparse-instantiate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-declarators.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-synthesized.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-warn-macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-import.m-3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-xml-schema.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/retain-comments-from-system-headers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/create-tu-fail.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-comments-typedef.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens-with-default-args.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-template-friends-defined.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-hiding.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-with-working-dir.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/cindex-on-invalid-usrs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/crash-recovery-modules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/overrides.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/namespaced-base-ctor-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/c-index-getCursor-pp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/rdar-8288645-invalid-code.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-type-size.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-toplevel-in-objccontainer.m.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/attributes-cuda.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-cxx-inline-methods.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-with-implicit-import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/usrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/cindex-from-source.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/base_module_needs_vfs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/guarded.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/complete-at-EOF.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/declare-objc-predef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/objc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble-with-implicit-import.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/complete-pch.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/b.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/reparse-instantiate.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/foo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/remap-complete-to.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble-with-error.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/crash-recovery-reparse-remap.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsA.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsA.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsA.framework/Headers/DocCommentsA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsB.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsB.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsB.framework/Headers/DocCommentsB.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/Framework.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/Framework.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/Framework.framework/Headers/Framework.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsC.framework
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsC.framework/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/DocCommentsC.framework/Headers/DocCommentsC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Frameworks/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/remap-load-to.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/prefix.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble-with-implicit-import-A.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/redeclarations.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble-with-implicit-import-B.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble-with-implicit-import-C.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble_macro_template.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/crash-recovery-code-complete-remap.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/retain-comments-from-system-headers-module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/vfsoverlay.yaml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/usrs-system.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/t1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/pragma_disable_warning.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble-reparse-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/t2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/annotate-comments-preprocessor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/preamble-reparse-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/module_needs_vfs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/module-undef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Headers/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Headers/nested
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Headers/nested/nested.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Headers/nested/module.map
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Headers/a_extensions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Headers/a.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/Headers/crash.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/pragma-once.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/t1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/t2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/get-cursor-includes-1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/get-cursor-includes-2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-class-02.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-para-kind-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-class-03.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-class-04.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-10.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-11.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-unavailable-attr.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-12.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-13.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-other-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-availability-attr-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-availability-attr-02.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-02.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-03.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-04.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-05.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-deprecated-attr.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-06.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-07.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-08.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-09.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-enum-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-02.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-03.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-04.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-05.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-06.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-07.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-08.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-function-09.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-function-10.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-variable-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-namespace-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-para-kind-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/invalid-para-kind-02.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-typedef-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-typedef-02.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/CommentXML/valid-class-01.xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/empty.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/c-index-pch.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/Inputs/retain-comments-from-system-headers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/overrides.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-access-checks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-unterminated.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-categories.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-import.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/overriding-ftemplate-comments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/file-refs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-ivar-access.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/file-refs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-cplus-template-decls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-in-invalid-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-tabs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/c-index-redecls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/getcursor-preamble.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-qualified.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-c-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-attribute.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/remap-complete.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/c-index-api-loadTU-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/file-macro-refs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/recursive-member-access.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-cplus11-specific.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/getcursor-preamble.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-constructor-params.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-type-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/load-exprs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse-chained.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-objc-decls.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/format-comment-cdecls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/reparse-predef-objc-protocol.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-comments-property-accessor.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/c-index-getCursor-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-functor-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-misc-tags.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-attrs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/include_test_2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/pragma-diag-reparse.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-lambdas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-decls.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/linkage.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/in-class-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-attrs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-invalid-code.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/invalid-code-rdar_7833619.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/headerfile-comment-to-html.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/preamble-reparse.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-usrs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-suppress-refs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-kernel-invocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-comments.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-tokens-preamble.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-with-preamble.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-suppress-refs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-attrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-module.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-bitwidth.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-properties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-nested-name-specifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/comment-custom-block-command.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/index-many-call-ops.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/cindex-from-source.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/attributes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-modules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/annotate-comments-unterminated.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-enums.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-property-flags.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-display-names.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/complete-parameterized-classes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/print-cxx-manglings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Index/load-classes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/interface.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/class-template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/codegen-body.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/typedef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/class-template1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/class-template2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/struct1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/function1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/struct2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/function2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/category1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/category2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/var1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/var2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/namespace1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/var1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/namespace2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/body1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/property1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/body2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/property2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/typedef1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/typedef2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/exprs1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/exprs2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/enum1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/class1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/enum2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/class2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/interface1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/Inputs/interface2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/exprs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/codegen-exprs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/class.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/function.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/category.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/ASTMerge/var.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/nestedclass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/casts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/macroscopes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/lambda.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/trycatch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/macroception.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/control-flow-macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/preprocessor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/loopmacro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/if.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/switch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/classtemplate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/system_macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/comment-in-macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/macroparams.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/block-storage-starts-region.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/moremacros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/unreachable-macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/while.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/ir.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/logical.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/label.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/macro-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/implicit-def-in-macro.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/switchmacro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/continue.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/break.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/unused_names.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/objc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/macroparams2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/includehell.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/builtinmacro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/header.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/loops.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/md.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/trymacro.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/Inputs/md.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/Inputs/header1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/Inputs/code.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/Inputs/ends_a_scope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/Inputs/starts_a_scope
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CoverageMapping/macro-expansion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/make_test_dirs.pl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/limits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/Inputs/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/Inputs/include/stdint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/Inputs/include/complex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/Inputs/include/math.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/Inputs/include/stdlib.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/Inputs/include/setjmp.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/arm-neon-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/c89.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/cpuid.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/unwind.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/float.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/typedef_guards.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/stdbool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/arm-acle-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/x86intrin-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/x86intrin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/pmmintrin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/altivec-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/ms-intrin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/x86-intrinsics-headers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/ms-wchar.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/arm64-apple-ios-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/int64-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/wmmintrin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/tgmath.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/c11.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/xmmintrin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/wchar_limits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/thumbv7-apple-ios-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/x86_64-apple-macosx-types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/ms-null-ms-header-vs-stddef.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/altivec-intrin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Headers/stddefneeds.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-empty-base-after-base-with-vbptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-lazy-empty-nonvirtual-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-alias-avoidance-padding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms_struct-bitfields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-bitfields-vbases.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-empty-nonvirtual-bases.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-empty-virtual-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-basic-layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-vfvb-sharing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-aligned-tail-padding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-size-alignment-fail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-pack-and-align.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-member-pointers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-empty-layout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-vtordisp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-misalignedarray.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/itanium-union-bitfield.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-primary-bases.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-x86-vfvb-alignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Layout/ms-vtordisp-local.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/TableGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/TableGen/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/TableGen/tg-fixits.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/TableGen/DiagnosticBase.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/TableGen/anonymous-groups.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-object-conditional-exp.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-object-reference.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/nrvo.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/ivar-objects.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/2010-08-06-X.Y-syntax.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/externally-initialized-selectors.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/encode.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/foreach-statement.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/copy.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/Inputs/literal-support.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/lvalue-reference-getter.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-dot-copy.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/copyable-property-object.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/destroy.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/block-var-layout.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/implicit-copy-assign-operator.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/write-barrier-global-assign.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-attrs.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/2010-08-04-Template.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/auto-release-result-assert.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-dot-reference.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/nested-ehlocation.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/objc-container-subscripting-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/microsoft-abi-arc-param-order.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-objects.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/debug-info.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/message-reference.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/subst-sel.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/exceptions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-pseudo-destructors.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/debug-info-cyclic.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/message.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-exceptions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/unknown-anytype.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/address-safety-attr.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/2007-10-03-MetadataPointers.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/gc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-weak.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-derived-to-base-conv.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/lambda-expressions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/refence-assign-write-barrier.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/implicit-copy-constructor.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/mrc-weak.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-move.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-lvalue-capture.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/designated-initializers.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/implementation-in-extern-c.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/method-local-extern-mangle.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-returns-inner-reference-ptr.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/references.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/block-in-template-inst.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/exceptions-legacy.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-object-reference-2.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-references.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/block-id.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-globals.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/catch-id-type.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-new-delete.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/exception-cxx.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-special-member-functions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/mangle.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/debug-info-line.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-mangle.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/personality-abuse.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/objc-container-subscripting.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/pr14474-gline-tables-only.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-cxx11-member-init.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/mangle-blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/literals.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-reference.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/arc-cxx11-init-list.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/property-object-reference-1.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/rtti.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/CodeGenObjCXX/selector-expr-lvalue.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/vararg.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/asm-constraints-device.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/implicit-copy.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/config-type.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/launch_bounds.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/cuda-builtin-vars.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/builtins.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/asm-constraints-mixed.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/alias.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/kernel-call.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/cxx11-kernel-call.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/implicit-member-target-collision.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/function-overload.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/implicit-member-target-collision-cxx11.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/attributes-on-non-cuda.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/implicit-member-target.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/qualifiers.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/method-target.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/amdgpu-num-gpr-attr.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/function-target.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/bad-attributes.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/implicit-intrinsic.cu
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaCUDA/Inputs/cuda.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-qualified-property-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-container-subscripting-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/error-property-gc-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-no-context.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-typecheck.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conditional-expr-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-incompatible-builtin-types.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-availability.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-cf_returns.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/default-synthesize.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ContClassPropertyLookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/synth-provisional-ivars-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-access-package.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/format-ostrace-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-missing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-sem-check-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-message-protocol-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-literal-nsnumber.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/try-catch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc2-warn-weak-decl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/static-ivar-ref-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-warn-unimpl-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-and-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/getter-setter-defined-in-category-of-parent.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/block-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/interface-scope-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/rdar6248119.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-error-readonly-assign.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/stmts.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-dot-receiver.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/multiple-method-names.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-container-subscripting-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/props-on-prots.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/sign-conversion.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/duplicate-ivar-check.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/special-dep-unavail-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/pedantic-dynamic-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/super-class-protocol-conformance.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/invalid-receiver.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-ivar-access-control.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-unsafe-assigns.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-undef-extension-warn-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/boxing-illegal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-undef-category-warn-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/bad-property-synthesis-crash.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-nonfragile-abi.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-access-tests.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/debugger-cast-result-to-id.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-in-class-extension-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-11.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-ambiguous-synthesis.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ucn-objc-string.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/alias-test-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-ivar-in-interface-block.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/invalid-typename.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-objc-exceptions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/provisional-ivar-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/self-assign.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-protocol-method-match.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-conflict-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/selector-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conditional-expr-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/missing-atend-metadata.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/compatible-protocol-qualified-types.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/incomplete-implementation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ClassPropertyNotObject.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/va-method-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/pragma-pack.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-warn-qual-mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/legacy-implementation-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/block-id-as-block-argtype.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/self-declared-in-block.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-lookup-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-property-access.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-lookup-in-id.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-method-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-sem-check-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/debugger-support.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-category-method-deprecated.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/super.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/unqualified-to-qualified-class-warn.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-retain-block-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-boxed-expressions-nsvalue.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/block-return.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nowarn-superclass-method-mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/check-dup-decl-methods-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-in-implementations.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-implicit-atomic-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/uninit-variables.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-and-ivar-use.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-choose-expr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/synchronized.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/self-in-function.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/rdr-6211479-array-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/writable-property-in-superclass.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/id_builtin.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-cf-audited-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/message.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/compound-init.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-property-decl-attrs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nullability.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/check-objcbridge-related-attribute-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-unavailable-for-weakref.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-explicit-call-initialize.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-typecheck-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/self-comparison.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/opaque-is-access.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/continuation-class-err.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-12.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-warn.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-jump-block.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/restrict-id-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/delay-parsing-cfunctions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-not-lvalue.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/parameterized_classes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-deprecated-implementations.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-objc-gc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-direct-ivar-access.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-conflict-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/selector-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conditional-expr-5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-protocol-method-deprecated.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-unused-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/at-defs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-bitfield.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/NSString-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/bad-receiver-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-lookup-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/synth-provisional-ivars.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/format-strings-objc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/argument-checking.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conflict-nonfragile-abi2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-loop-analysis.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/synthesize-setter-contclass.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/format-arg-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/category-method-lookup-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-unused-exception-param.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-implicit-self-in-block.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-unsafe_unretained.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-expression-error.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/duplicate-property-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-weak.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/atomoic-property-synnthesis-rules.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-def-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-getter-using-dotsyntax.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-expr-neg-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-property-lifetime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-setter-property-match.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/super-cat-prot.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-6.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/deprecate_function_containers.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-warn-unused-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/error-missing-getter.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/tentative-property-decl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-peformselector.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/id.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-13.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-gc-weak-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nsobject-attribute-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-container-subscripting.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/kindof.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-mixed-bridge-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-objc-lifetime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/undefined-protocol-type-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-unreachable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conditional-expr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/selector-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conditional-expr-6.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/default-synthesize-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conversion.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nested-typedef-decl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-ivar-mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/dist-object-modifiers.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-lookup-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/undef-protocol-methods-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-readonly-property-ivar-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/parameterized_classes_collection_literal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-no-runtime.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/exprs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/category-method-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-print.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/block-explicit-return-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/builtin_objc_nslog.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-type-conversion.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-method-lookup-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-in-class-extension-error.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-superclass-method-mismatch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ovl-check.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-def-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-system-header.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/encode-typeof-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-designated-init.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-objc-exception.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ignore-weakimport-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ns_returns_retained_block_return.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/inst-method-lookup-in-root.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-7.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/block-ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-qualified-class-unsupported.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nullability-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-implementation-inherited.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/parameterized_classes_arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/continuation-class-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-conforming-protocol-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/qualified-protocol-method-conflicts.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/block-type-safety.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/unused.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/format-strings-utf8.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-user-setter.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/override-nullability.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-legal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/string.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-lookup-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-ownership-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/weak-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/receiver-forward-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-not-defined.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/access-property-getter.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-non-pod-memaccess.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/illegal-nonarc-bridged-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/block-on-method-param.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nonnull.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/selector-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-in-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conditional-expr-7.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nonnull.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/default-synthesize-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/iboutlet.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-6.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-literal-sig.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/builtin_objc_assign_ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-lookup-5.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-bridged-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/cocoa-api-usage.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-category-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-decls.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-cast-of-sel-expr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/interface-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/weak-attr-ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/generic-selection.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-proto-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/interface-scope.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warning-missing-selector-name.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/forward-class-receiver.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/overriding-property-in-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/newproperty-class-method-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/crash-label.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/enum-fixed-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/idiomatic-parentheses.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/gcc-cast-ext.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/unimplemented-protocol-prop.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/circular-container.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/invalid-objc-decls-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-8.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-category-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-buffered-methods.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/undef-class-messagin-error.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/setter-dotsyntax.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-warning-unavail-unimp.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/assign-rvalue-message.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-impl-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-conforming-protocol-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/typedef-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc2-merge-gc-attribue-decl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-id-test-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/opaque-is-access-warn.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-expr-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-dict-bridged-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-independent-class-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/gc-attributes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-literal-comparison.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/multiple-property-deprecated-decl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-undefined-warn-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/missing-method-return-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/builtin_objc_msgSend.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conditional-expr-8.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-impl-misuse.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/default-synthesize-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/Inputs/arc-system-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-7.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-unavailable-system-function.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objcbridge-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/sizeof-interface.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objcbridge-attribute-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocols-suppress-conformance.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-category-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-unavail-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nullable-weak-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/mrc-weak.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/instancetype.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/related-result-type-inference.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-selector-selection.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/synthesized-ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objcbridge-related-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/interface-layout-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-missing-super.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/bool-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/category-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/interface-layout.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-redundant-decl-accessor.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/direct-synthesized-ivar-access.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/return.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-deprecated-pch.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-assign-property-nscopying.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocols.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/transparent-union.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-9.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/compare-qualified-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/mismatched-undefined-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/undef-arg-super-method-call.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-typecheck-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-inherited.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/invalid-code.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-repeated-weak.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/block-as-object.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/typo-correction.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-10.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-extension-after-implementation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/dealloc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-protocol.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-container-subscripting-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objcbridgemutable-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/call-super-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/custom-atomic-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/resolve-method-in-global-pool.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-id-test-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-arg-qualifier-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/super-property-notation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conflicting-ivar-test-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/interface-tu-variable.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/iboutletcollection-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-weak-field.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-conflict.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-availability-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/builtin_objc_lib_functions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-forward-class-attr-deprecated.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-noprotocol-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-retain-cycle.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/undeclared-selector.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/format-cstrings-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-deprecated-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-thread-safety-analysis.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/stand-alone-implementation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-noninherited-availability-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-8.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/cocoa-api-usage.m.fixed
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-cf.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/format-strings-system.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/duplicate-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conflict-atomic-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-category-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-cleanup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-in-class-extension-impl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-readonly-property-ivar.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-a.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/forward-protocol-incomplete-impl-warn.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/selector-error.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-9-impl-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/missing-method-context.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/deprecated-objc-introspection.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/DoubleMethod.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/err-ivar-access-in-class-method.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-def-test-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-lookup-resolution-builtin.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/super-property-message-expr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-asm-attribute-neg-test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/compare-qualified-id.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-write-strings.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/unknown-anytype.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-implementing-class-methods.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-typecheck-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-root-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/unused-backing-ivar-warning.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/autoreleasepool.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/severe-syntax-error.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/enhanced-proto-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-container-subscripting-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-extension-dup-methods.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/nsobject-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-id-test-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-deprecated.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-lookup.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/class-method-self.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-objcbridge-related-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/conditional-expr-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/attr-malloc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/mrc-no-weak.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/narrow-property-type-in-cont-class.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/error-implicit-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/scope-check.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-invalid.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-9.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/duplicate-ivar-in-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-prototype-scope.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-atomic-redecl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-nsconsumed-errors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/forward-class-redeclare.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/arc-unbridged-cast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-category-4.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/super-dealloc-attribute.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-ns-returns-not-retained-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/forward-class-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/error-outof-scope-property-use.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/foreach.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ignore-qualifier-on-qualified-id.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/catch-stmt.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-sentinel-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/incompatible-protocol-qualified-types.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/crash-on-objc-bool-literal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-string-constant.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-dictionary-literal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-cstyle-args-in-methods.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-warn-synth-protocol-meth.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ivar-ref-misuse.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/undef-superclass-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/no-protocol-option-tests.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/comptypes-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-array-literal.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/deref-interface.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/warn-strict-selector-match.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/ibaction.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/parameterized_classes_subst.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/selector-overload.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-typecheck-3.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/protocol-archane.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-bad-param.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-10.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/objc-class-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/typo-correction-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-encoding-2.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/alias-test-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/method-attributes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/check-dup-objc-decls-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/SemaObjC/property-in-class-extension.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/live-variables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/additive-folding-range-constraints.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/padding_cpp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/uninit-sometimes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/padding_message.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/derived-to-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/unreachable-code-path.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/builtin-functions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-region-store.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/nullability.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/plist-html-macros.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/complex-init-list.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/outofbound.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/rdar-6442306-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/operator-calls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/ObjCRetSigs.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NewDelete-intersections.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release-path-notes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/superclass.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/CFNumber.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-annotations.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/rdar-6562655.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/auto-obj-dtors-cfg-output.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/bitwise-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/unix-fns.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/bstring.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/generics.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/additive-folding.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/domtest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release-cache-out.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cxx-method-names.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/analyzer-stats.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/new-with-exceptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/taint-generic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/undef-buffers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc/direct-ivar-assignment-in-annotated-functions.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/templates.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/MismatchedDeallocator-checker-test.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-region-store.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Malloc+MismatchedDeallocator_intersections.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/unions-region.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-interprocedural.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/dead-stores.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/qt_malloc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/test-after-div-zero.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/traversal-begin-end-function.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/null-deref-ps.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/PR12905.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/properties.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/dead-stores.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release-inline.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/null-deref-path-notes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/vfork.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/method-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-overflow2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cxx11-crashes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NewDelete-checker-test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/crash-trace.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/default-analyze.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/system-header-simulator-for-pthread-lock.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/system-header-simulator-cxx.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/system-header-simulator-for-objc-dealloc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/system-header-simulator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/system-header-simulator-for-simple-stream.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/Models
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/Models/modeledFunction.model
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/Models/notzero.model
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/system-header-simulator-for-malloc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/qt-simulator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/system-header-simulator-for-nullability.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Inputs/system-header-simulator-objc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-eager-assume.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-sizeof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/self-init.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/dead-stores.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/switch-case.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-64.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/checker-plugins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/PR2599.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/reference.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/new.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/lambdas.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/dynamic_type_check.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/nullability-no-arc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/weak-functions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cstring-syntax.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/pr_4164.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/localization-aggressive.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/dtors-in-dtor-cfg-output.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/DynamicTypePropagation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/bstring.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-for.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/static_local.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/analyze_display_progress.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/casts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/keychainAPI-diagnostic-visitor.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inline.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NSString.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-three-arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/taint-tester.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/exercise-ps.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/coverage.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-region-store-x86_64.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/CFRetainRelease_NSAssertionHandler.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/stack-addr-ps.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/taint-tester.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/stats.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/chroot.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/nonnull.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/div-zero.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/bool-assignment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/delegates.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NewDelete+MismatchedDeallocator_intersections.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/constant-folding.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/no-unreachable-dtors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cxx-for-range-cfg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/region-store.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/html-diags-multifile.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release-path-notes-gc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NewDeleteLeaks-PR18394.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/engine
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/engine/replay-without-inlining.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/path-notes.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/inline-defensive-checks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/analysis-order.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/false-positive-suppression.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/eager-reclamation-path-notes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/eager-reclamation-path-notes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/stl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/RetainCountExamples.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/containers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/test_objc_inlining_option.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/InlineObjCInstanceMethod.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/test-always-inline-size-option.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/ObjCImproperDynamictallyDetectableCast.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/DynDispatchBifurcate.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/retain-count-self-init.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/InlineObjCInstanceMethod.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/InlineObjCClassMethod.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/path-notes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/path-notes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/inline-defensive-checks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/inline-defensive-checks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/false-positive-suppression.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/false-positive-suppression.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/ObjCDynTypePopagation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/assume-super-init-does-not-return-nil.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inlining/dyn-dispatch-bifurcate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/html-diags-multifile.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/designated-initializer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/range_casts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/reference.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-method-coverage.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/OSAtomic_mac.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cfg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/security-syntax-checks-no-emit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/nullptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-arm.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/CFContainers-invalid.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/uninit-ps-rdar6145427.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/PR7218.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/logical-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/const-method-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/array-struct-region.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-properties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-protoype.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-region-store-i386.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/analyzer-config.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/region-1.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/override-werror.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inline-not-supported.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/CGColorSpace.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/edges-new.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/svalbuilder-logic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/MissingDealloc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-message.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NSPanel.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/ptr-arith.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/CFDateGC.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/dtor-cxx11.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/traversal-algorithm.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/bug_hash_test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/array-struct-region.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/taint-tester.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/uninit-vals-ps-region.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/method-arg-decay.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/builtin_signbit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/index-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/pr22954.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Malloc+NewDelete_intersections.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/lvalue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/html-diags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/uninit-const.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/conditional-operator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/comparison-implicit-casts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/nil-receiver-undefined-larger-than-voidptr-ret-region.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cstring-syntax-cxx.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/keychainAPI.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/unused-ivars.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/array-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/temp-obj-dtors-cfg-output.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-sizeof.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/string.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/PR9741.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/padding_c.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/ptr-arith.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/pr4209.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/base-init.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/unions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/identical-expressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release-gc-only.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/symbol-reaper.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/no-outofbounds.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/PR3991.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/initializer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/stack-block-returned.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/explain-svals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NoReturn.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/blocks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/uninit-vals-ps.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/redefined_system.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/analyzer-checker-config.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/uninit-const.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NewDelete-variadic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/rdar-7168531.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inline2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/global-region-invalidation.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-plist.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/out-of-bounds.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/CFContainers.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cfref_PR2519.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cfref_rdar6080742.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/division-by-zero.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/dynamic-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inline-unique-reports.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/string-fail.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/live-variables.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NSWindow.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release-region-store.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/analyzer-config.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/rdar-6540084.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/lambdas-generalized-capture.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NewDelete-path-notes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/pr_2542_rdar_6793404.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/test-objc-non-nil-return-value-checker.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inline-plist.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/nil-receiver-undefined-larger-than-voidptr-ret.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/kmalloc-linux.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-radar17039661.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/uninit-msg-expr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/test-include-cpp.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/free.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-region-store.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc_invalidation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inline3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/localization.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/lambdas.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/Malloc+MismatchedDeallocator+NewDelete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/security-syntax-checks.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/lambda-notes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/test-variably-modified-types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/exceptions.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc-overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NewDeleteLeaks-PR19102.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/DeallocUseAfterFreeErrors.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/retain-release-cf-audited.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cxx-for-range.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/simple-stream-checks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/member-expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/outofbound-notwork.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/PR2978.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/undef-value-caller.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/shortest-path-suppression.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/no-prune-paths.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/Inputs/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/Inputs/include/report-issues-within-main-file.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/Inputs/include/sys
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/Inputs/include/sys/queue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/false-positive-suppression.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/report-issues-within-main-file.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/undef-value-callee.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/undef-value-param.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/deref-track-symbolic-region.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/deref-track-symbolic-region.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/explicit-suppression.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/text-diagnostics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/diagnostics/undef-value-param.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/virtualcall.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/temporaries.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/call-invalidation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/stack-addr-ps.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/ctor.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/ubigraph-viz.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/MismatchedDeallocator-path-notes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/variadic-method-types.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/plist-macros.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/debug-CallGraph.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/virtualcall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/conditional-path-notes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/default-diagnostic-visitors.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/bug_hash_test.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/reinterpret-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/stream.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/stackaddrleak.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/null-deref-ps-region.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/ivars.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/test-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/misc-ps-ranges.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/inline4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/blocks-no-inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/shallow-mode.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/test-include.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/pointer-to-member.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-boxing.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/loop-widening.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/model-file.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/casts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-bool.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/rdar-6600344-nil-receiver-undefined-struct-ret.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/vla.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/uninit-vals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/refcnt_naming.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/PR24184.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/test-include-cpp.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/casts.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/func.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/elementtype.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/pthreadlock.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/sizeofpointer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/method-call-intra-p.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/plist-output.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/blocks.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/properties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-string.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/method-call-path-notes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/nullability_nullonly.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/return-ptr-range.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/region-store.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/delayed-template-parsing-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NSContainers.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/no-exit-cfg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/NewDelete-custom.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/concrete-address.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/analyzeOneFunction.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/cxx-crashes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/unix-api.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/global_region_invalidation.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/initializers-cfg-output.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/ObjCProperties.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/fields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/disable-all-checks.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/malloc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/DeallocMissingRelease.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/plist-output-alternate.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/rdar-6541136-region.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/check-deserialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/CheckNSError.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/traversal-path-unification.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Analysis/objc-subscript.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-unrecoverable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/typo-using.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-cxx1y-compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-newline-style.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/bridge-cast-in-arc.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-nsstring-compare.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-uninit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-objc-bridge-related-attr.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/no-macro-fixit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/format-no-fixit.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-autoreleasepool.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/typo-crash.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-include.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-include.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-c90.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/property-access-fixit.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/format.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-objc-bridge-related.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-recursive-block.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-objc-message-comma-separator.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/format-darwin.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-suffix.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-nullability-declspec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/typo-crash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-multiple-selector-warnings.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-interface-as-param.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/multiarg-selector-fixit.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/no-fixit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/typo-location-bugs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-recompile.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-vexing-parse-cxx0x.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-unicode-with-utf8-output.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-objc-bridge-related-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/bridge-in-non-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-cxx11-compat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/selector-fixit.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/auto-isa-fixit.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-pmem.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-function-call.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-eof-space.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/typo.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/no-diagnostics-fixit-info.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-static-object-decl.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-errors-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-errors.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/auto-fixit.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/objc-literals.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/typo.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-objc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-cxx11-attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-objc-arc.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-unrecoverable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-missing-method-return-type.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/dereference-addressof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-missing-self-in-block.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-large-file.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-class-method-messaging.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-vexing-parse.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-objc-message.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/typo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/format.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/no-typo.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/fixit-unicode.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/messages.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/FixIt/atomic-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/incomplete-call.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-unused-parameters.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/return-silent.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/designated-initializers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/__try.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-gnu-designators.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-null.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/empty2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arg-scope.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/heinous-extensions-on.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm-interrupt-attr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-duplicate-enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-pack-apple.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/gnu-flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/surpress-deprecated.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/enum-increment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/freemain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-freebsd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-documentation.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/vector-cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ucn-cstring.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-target.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-string-conversion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/callingconv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-fixit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/atomic-compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/anonymous-struct-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/inline-redef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/vector-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/tls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/static-array.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/PR2728.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/predef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm-microsoft-intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/transparent-union-pointer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/variadic-promotion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-string-percentm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/unnamed-bitfield-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ms-inline-asm-invalid-arch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-used.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/annotate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/neon-vector-types-support.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/address-constant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-overlap.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/private-extern.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/decl-in-prototype.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-stackaddress.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-malloc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-pack-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/scope-check.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/128bitint.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/function.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/static-assert.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/statements.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/altivec-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-self-alias.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-printf-attribute-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/callingconv-iamcu.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/align-arm-apcs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/usual-float.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/assign-null.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/PR2963-enum-constant.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/128bitfloat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ms_class_layout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/mrtd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-no-fixit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-arm-exclusive.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/memset-invalid-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-clear_cache.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/memset-invalid.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/redefinition.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-type-safety.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-tautological-compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-shift-negative.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arg-scope-c99.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/typecheck-binop.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/text-diag.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-write-strings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/transparent-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/function-ptr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/atomic-expr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ucn-identifiers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/i-c-e.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-weak.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/inline-asm-validate-tmpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-msp430.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/no-format-y2k-turnsoff-format.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/aarch64-neon-ranges.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/string-plus-char.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-double-promotion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/2009-07-17-VoidParameter.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/wchar.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/inline-asm-validate-amdgpu.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-availability-ios.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/offsetof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/array-size-64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-unused-variables.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-type-safety.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-pack-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/var-redecl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/nonnull.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-ownership.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/template-specialization.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-cast-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/struct-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/enum-packed.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-availability-app-extensions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/cast-to-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/redefine_extname.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-gnu-mode.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/const-eval-64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/typedef-variable-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/non-null-warning.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/internal_linkage.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/fpack-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/string-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/PR2919-builtin-types-compat-strips-crv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/sizeof-struct-non-zero-as-member.cl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/varargs-win64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/stdcall-fastcall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/bitfield-layout_1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/heinous-extensions-off.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/constant-builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ms-wchar.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/complex-init-list.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/vla.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/bitfield.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-misc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-unsequenced.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-unused-label.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/decl-microsoft-call-conv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-vla.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/aarch64-special-register.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-strncat-size.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/invalid-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-extern-main.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/PR16678.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/big-endian-neon-initializers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-weak.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/knr-def-call.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pid_t.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/struct-packed-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-capabilities.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/neon-vector-types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-assume.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/vector-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/expr-address-of.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-decl-after-definition.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-prefetch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/enable_if.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-missing-prototypes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/c11-typedef-redef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/align-systemz.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/expr-comma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/inline-asm-validate-aarch64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ms_wide_predefined_expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/weak-import-on-enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-unused.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/callingconv-sysv_abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-unavailable-message.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/va_arg_x86_64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/alignas.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/vfprintf-invalid-redecl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm64-neon-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pass-object-size.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-pack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-freestanding-complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/x86-builtin-palignr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-pack-4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm-darwin-aapcs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/constructor-attribute.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ext_vector_components.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/vfprintf-valid-redecl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-ms_struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-main.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-deprecated-message.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/void_arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-shadow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/rdr6094103-unordered-compare-promote.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/tentative-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/mms-bitfields.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-cast-qual.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/mips16_attr_not_allowed.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/exprs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-documentation-crlf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/implicit-int.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/enable_if-ext.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/member-reference.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/varargs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/many-parameters.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-return-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-gnu.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/nowarn-documentation-property.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/stmtexprs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ms-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ext_vector_conversions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/recover-goto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/constant-conversion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-section.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/2010-05-31-palignr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-noduplicate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm-special-register.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-char-subscripts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arg-duplicate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/MicrosoftCompatibility-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/vector-assign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/deref.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-main-return-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-type-safety-mpi-hdf5.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-x86-interrupt.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/merge-decls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/loop-control.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/nullability.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/return-noreturn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/call-with-static-chain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-naked.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-nodebug.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-section-invalid.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/typo-correction.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/no-documentation-warn-tagdecl-specifier.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-darwin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/switch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-arm-strex-rettype.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-pack-and-options-align.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/struct-compat.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/flexible-array-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-scanf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/indirect-goto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/invalid-struct-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/expr-comma-c99.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/fn-ptr-as-fn-prototype.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/const-ptr-int-ptr-cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ms_bitfield_layout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/array-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-documentation-almost-trailing.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-availability.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-documentation-fixits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/typedef-redef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/darwin-tls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-arm64-exclusive.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-pack-5.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-sentinel.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/atomic-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-mode.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-ms.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/captured-statements.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-classify-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/extern-redecl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/overloaded-func-transparent-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/nested-redef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-strlcpycat-size.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/dllimport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-return-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-unknown.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/va_arg_x86_32.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/initialize-noreturn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/thread-specifier.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/inline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/return.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/bool-compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-storageclass.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-returns-twice.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-absolute-value-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-documentation-unknown-command.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/predefined-function.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/static-init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/invalid-init-diag.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/uninit-det-order.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/decl-invalid.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/zvector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/integer-overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-notail.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-logical-not-compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/c89.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-regparm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/inline-asm-validate-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-deprecated.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-c90.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-longjmp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/variadic-block.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/many-logical-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/illegal-types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/int-arith-convert.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm-neon-types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-object-size.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/address_spaces.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-pack-6.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-align-mac68k.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/crash-invalid-builtin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-tls_model.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-unused-function.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-unused-variables-werror.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/crash-invalid-array.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-alias.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/implicit-cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm_acle.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/convertvector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/conditional.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/incomplete-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-coldhot.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/implicit-def.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-return-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ms-keyword-system-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-sentinel-attribute.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ppc-bool.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-availability-tvos.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/constant-builtins-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/unused-expr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-mode-enums.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/function-redecl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/declspec.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/anonymous-struct-union-c11.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pointer-subtract-compat.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/init-struct-qualified.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/array-size.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm_vfma.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-enum-fixed-type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pr25786.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/missing-field-initializers.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/check-increment.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-non-iso.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/invalid-assignment-constant-address-space.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/overloadable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-swiftcall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/offsetof-64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/varargs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pr9812.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/variadic-incomplete-arg-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/knr-variadic-def.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-section.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-sizeof-arrayarg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-missing-braces.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-aligned.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/2009-03-09-WeakDeclarations-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/shift.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/varargs-x86-64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ast-print.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/parentheses.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/complex-imag.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-unused-value.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-flag-enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin_objc_msgSend.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-noinline.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/default.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-noreturn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/implicit-builtin-freestanding.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/conversion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/auto-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-bounded.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-naked.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/complex-promotion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/stdcall-fastcall-x64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-nonnull.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ext_vector_comparisons.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/MicrosoftCompatibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/uninit-variables-vectors.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/Inputs/unused-expr-system-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/Inputs/ms-keyword-system-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/Inputs/warn-unreachable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/Inputs/conversion.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/Inputs/format-unused-system-args.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/Inputs/pragma-arc-cf-code-audited.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-sizeof-array-decay.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pointer-conversion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/init-vector.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-print.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/implicit-cast-dump.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-bad-function-cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-arm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/x86-attr-force-align-arg-pointer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ms_abi-sysv_abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-availability-macosx.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/const-eval.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/uninit-variables.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/2007-10-01-BuildArrayRef.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/floating-point-compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/MicrosoftCompatibility-x64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-outof-range-assign-enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ext_vector_casts.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/mips16_attr_allowed.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/sign-conversion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/implicit-builtin-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm64-inline-asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/2009-04-22-UnknownSize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/short-enums.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/align_value.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/cast-incomplete.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-visibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/MicrosoftCompatibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/switch-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/complex-int.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/typedef-prototype.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/align-x86-64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/ast-print-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/darwin-align-cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-args.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/incompatible-sign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/i386-linux-android.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/alias-redefinition.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/preserve-call-conv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-unused.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/x86_64-linux-android.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/implicit-builtin-redecl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/mips-interrupt-attr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/gnu-attributes.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/invalid-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-fixit-ssize_t.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-documentation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-aarch64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-arm64.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/asm.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-cpu-supports.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/asm-label.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-mode-vector-types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/typeof-use-deprecated.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-cleanup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-bitwise-compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/tls_alignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/array-constraint.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-assume-aligned.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-explicit-noreturn-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-alias-elf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtin-unary-fp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/bitfield-promote.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/builtins-ppc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pointer-addition.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/varargs-x86-32.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/gnu89.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-size_t.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-variable-not-needed.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-align-mac68k-unsupported.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/dllexport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/compound-literal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/empty1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/implicit-decl.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/vla-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/parentheses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/sentinel-attribute.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/assign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-align-packed.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/array-declared-as-incorrect-type.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-minsize.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/aarch64-neon-vector-types.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/unused-expr-system-header.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/callingconv-ms_abi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-self-assign-field.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-availability-watchos.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-format_arg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-labels.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-absolute-value.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/bitfield-layout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/conversion-64-32.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/fp16-sema.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-format.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/PR2923.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/outof-range-constant-compare.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/self-comparison.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/PR2727.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/block-call.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/enum.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/overloadable-complex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/default1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-endian.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-missing-variable-declarations.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/atomic-ops.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/struct-cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/decl-type-merging.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-shadow-intrinsics.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/align-x86.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/array-bounds-ptr-arith.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-unreachable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-declspec-ignored.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/conditional-expr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/typedef-retain.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/type-spec-struct-union.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/inline-asm-validate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/pragma-arc-cf-code-audited.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/MicrosoftExtensions.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/for.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/warn-thread-safety-analysis.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/format-strings-int-typedefs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/arm-layout.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/varargs_unreachable.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-disable-tail-calls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/generic-selection.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/attr-availability-android.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/test/Sema/atomic-requires-library-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches/3-stage-base.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches/3-stage.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches/Apple-stage1.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches/Apple-stage2.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches/PGO.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches/PGO-stage2-instrumented.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/caches/PGO-stage2.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/cmake/modules/ClangConfig.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/cfg-big-switch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/cfg-long-chain1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/cfg-long-chain2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/cfg-long-chain3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/cfg-nested-var-scopes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/stpcpy-test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/macro_pounder_fn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/c99-intconst-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/Cocoa_h.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/cfg-nested-switches.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/iostream.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/macro_pounder_obj.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/all-std-headers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INPUTS/carbon_h.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/runtime
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/runtime/vtables_blacklist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/runtime/libcxx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/runtime/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/runtime/compiler-rt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/runtime/compiler-rt/clang_linux_test_input.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/CFG.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/CFGStmtMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Support
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/DomainSpecific
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/AnalysisDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/CodeInjector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyOps.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyUtil.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/Analyses/ReachableCode.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/FlowSensitive
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowValues.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Analysis/CallGraph.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Edit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Edit/FileOffset.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Edit/Rewriters.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Edit/Commit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Edit/EditsReceiver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Edit/EditedSource.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Scope.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/ObjCMethodList.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Overload.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Template.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/DeclSpec.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/TypoCorrection.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/PrettyDeclStackTrace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/SemaLambda.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/SemaDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/AttributeList.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/SemaConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Lookup.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/SemaFixItUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/CXXFieldCollector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Ownership.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/SemaInternal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/ScopeInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Sema.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Weak.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Initialization.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/AnalysisBasedWarnings.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/LoopHint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Sema/Designator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/StmtObjC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentHTMLTags.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/StmtGraphTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/UnresolvedSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/SelectorLocationsKind.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclBase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclAccessPair.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/StmtOpenMP.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/StmtVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/Attr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CXXInheritance.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/TemplateName.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTMutationListener.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/Expr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/TypeLocNodes.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTTypeTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/TypeNodes.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/AttrIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTFwd.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/GlobalDecl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/OperationKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclContextInternals.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/APValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ExprOpenMP.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CharUnits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ExprCXX.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/Redeclarable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclObjC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/RawCommentList.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTImporter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/StmtCXX.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/Type.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/VTableBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclOpenMP.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ParentMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/Stmt.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTLambda.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CanonicalType.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/PrettyPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/TypeLocVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/TypeVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/StmtIterator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentLexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/BuiltinTypes.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclTemplate.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/Mangle.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/LambdaCapture.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentCommands.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/TemplateBase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTVector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/BaseSubobject.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ExternalASTSource.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/TypeOrdering.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/RecordLayout.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ExprObjC.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclGroup.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclLookups.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/VTTBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclarationName.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/AST.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentBriefParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentCommandTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclCXX.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/OpenMPClause.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/LocInfoType.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/ASTContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/DeclFriend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/Comment.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/Decl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentSema.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/NSAPI.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/MangleNumberingContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/TypeLoc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/AST/CommentParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/Token.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/TokenLexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/ScratchBuffer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/ModuleMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/TokenConcatenation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/Preprocessor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/PTHManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/HeaderMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/LiteralSupport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/PTHLexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/LexDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/PPConditionalDirectiveRecord.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/Pragma.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/ExternalPreprocessorSource.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/HeaderMapTypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/ModuleLoader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/MacroInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/MacroArgs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/HeaderSearch.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/PPCallbacks.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/Lexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Format/Format.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Driver.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Options.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/DriverDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/CC1Options.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Types.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Job.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Options.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Types.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Util.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Action.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Tool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Compilation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/ToolChain.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Multilib.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/Phases.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/IssueHash.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerRegistry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/CodeGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/CodeGen/ObjectFilePCHContainerOperations.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/CodeGen/CGFunctionInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Config
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Config/config.h.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Config/config.h.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Index
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Index/CodegenNameGenerator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Index/IndexSymbol.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Index/IndexingAction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Index/USRGeneration.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Index/CommentToXML.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Parse
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Parse/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Parse/Parser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Parse/ParseDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Parse/ParseAST.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/JSONCompilationDatabase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/FileMatchTrie.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/Core
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/Core/QualTypeNames.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/Core/Lookup.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/Core/Replacement.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/Refactoring.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/RefactoringCallbacks.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/ReplacementsYaml.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/ArgumentsAdjusters.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/CompilationDatabasePluginRegistry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Tooling/Tooling.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/ASTReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/GlobalModuleIndex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/ModuleManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/ModuleFileExtension.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/SerializationDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/ASTWriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/Module.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Serialization/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/FrontendTool
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/FrontendTool/Utils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ARCMigrate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ARCMigrate/FileRemapper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ARCMigrate/ARCMT.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ARCMigrate/ARCMTActions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/Dynamic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Diagnostics.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/LangStandard.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/DependencyOutputOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/DiagnosticRenderer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/FrontendAction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/PCHContainerOperations.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/SerializedDiagnostics.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/SerializedDiagnosticReader.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/PreprocessorOutputOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/FrontendDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/ASTUnit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/FrontendPluginRegistry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/TextDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/LangStandards.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/LayoutOverrideSource.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/FrontendActions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/MigratorOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/Utils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Core
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Core/HTMLRewrite.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Core/RewriteRope.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Core/DeltaTree.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Core/RewriteBuffer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Core/Rewriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Core/TokenRewriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Frontend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Frontend/FixItRewriter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Frontend/FrontendActions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Frontend/ASTConsumers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Rewrite/Frontend/Rewriters.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/VersionTuple.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/StmtNodes.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/FileSystemOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/SanitizerBlacklist.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsXCore.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/AttrDocs.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/TypeTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/OperatorPrecedence.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/FileManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Version.inc.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DebugInfoOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/CommentOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/CapturedStmt.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/OperatorKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Module.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/ExpressionTraits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Visibility.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Sanitizers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Specifiers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Builtins.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/PragmaKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/ExceptionSpecificationType.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/TargetOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsPPC.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/TemplateKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Diagnostic.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/arm_neon.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticCommentKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Lambda.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsNEON.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DeclNodes.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Diagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Version.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/OpenMPKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/ABI.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsLe64.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/LangOptions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Sanitizers.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/TargetInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/FileSystemStatCache.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/TokenKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Linkage.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/LLVM.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/CommentNodes.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/ObjCRuntime.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/AddressSpaces.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/PlistSupport.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/SourceLocation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsMips.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticCategories.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/PrettyStackTrace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsWebAssembly.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsSystemZ.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/AttrKinds.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/LangOptions.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/MacroBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/TokenKinds.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/TargetCXXABI.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Attributes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Builtins.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/CharInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/IdentifierTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/Attr.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/OperatorKinds.def
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/SourceManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c/CXString.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c/BuildSystem.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c/Platform.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c/Index.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c/Documentation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c/CXCompilationDatabase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang-c/CXErrorCode.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/cxx_dr_status.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/favicon.ico
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/cxx_compatibility.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/hacking.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/cxx_status.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/get_started.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/index.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/carbon-compile.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/OpenProjects.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/builtins.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/features.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/demo
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/demo/index.cgi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/demo/what is this directory.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/demo/cathead.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/demo/syntax.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/demo/DemoInfo.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/feature-compile1.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/feature-compile2.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/get_involved.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/libstdc++4.4-clang0x.patch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/menu.html.incl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/content.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/feature-memory1.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/clang_video-05-25-2007.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/diagnostics.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/clang_video-07-25-2007.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/compatibility.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/comparison.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/related.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/libstdc++4.6-clang11.patch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/libstdc++4.7-clang11.patch
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/scan-build.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/scripts
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/scripts/menu.js
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/scripts/expandcollapse.js
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/release_notes.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/filing_bugs.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/menu.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/menu.html.incl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/implicit_checks.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/annotations.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/content.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/checker_dev_manual.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/available_checks.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/installation.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/xcode.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/expandcollapse
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/expandcollapse/arrows_dark.gif
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/expandcollapse/ellipses_dark.gif
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/expandcollapse/arrows_light.gif
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/expandcollapse/ellipses_light.gif
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/example_cf_returns_retained.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/example_attribute_nonnull.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/example_null_pointer.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/example_custom_assert.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/scan_build_cmd.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/analyzer_xcode.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/example_ns_returns_retained.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/example_use_assert.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/analyzer_html.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/images/example_cf_returns_retained_gc.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/latest_checker.html.incl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/alpha_checks.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/potential_checkers.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/index.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/faq.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/analyzer/open_projects.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/robots.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/make_cxx_dr_status
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/UniversalDriver.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/www/menu.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/INSTALL.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/CODE_OWNERS.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/DataFlowSanitizerDesign.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/PCHLayout.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ItaniumMangleAbiTags.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/CommandGuide
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/CommandGuide/index.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/CommandGuide/clang.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ClangPlugins.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/RAVFrontendAction.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ThreadSafetyAnalysis.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ReleaseNotes.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/Block-ABI-Apple.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/JSONCompilationDatabase.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/UsersManual.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/SanitizerSpecialCaseList.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/MemorySanitizer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/LibTooling.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/IntroductionToTheClangAST.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/LanguageExtensions.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/SafeStack.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/PCHLayout.graffle
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ControlFlowIntegrity.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/DriverArchitecture.png
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/AutomaticReferenceCounting.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ObjectiveCLiterals.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/Makefile.sphinx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/AddressSanitizer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/doxygen-mainpage.dox
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/Block-ABI-Apple.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/SanitizerCoverage.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ExternalClangExamples.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/SanitizerStats.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/CrossCompilation.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/tools
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/tools/dump_format_style.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/tools/dump_ast_matchers.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/LibASTMatchersTutorial.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ClangFormatStyleOptions.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/DataFlowSanitizer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/PCHInternals.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ClangFormat.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/InternalsManual.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ThreadSanitizer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ControlFlowIntegrityDesign.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/MSVCCompatibility.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/conf.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/LeakSanitizer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/LibASTMatchers.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ClangTools.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/FAQ.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/index.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/Modules.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/doxygen.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/BlockLanguageSpec.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/UndefinedBehaviorSanitizer.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/PTHInternals.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/make.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/DriverInternals.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/Tooling.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/analyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/analyzer/make.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/analyzer/IPA.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/analyzer/conf.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/analyzer/DebugChecks.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/analyzer/RegionStore.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/analyzer/index.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/analyzer/nullability.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/HowToSetupToolingForLLVM.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/LibFormat.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/LibASTMatchersReference.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/AttributeReference.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/docs/ClangCheck.rst
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/xml
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/xml/comment-xml-schema.rng
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/examples
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/examples/cindex
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/examples/cindex/cindex-dump.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_comment.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_code_completion.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_tokens.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_diagnostics.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_index.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_location.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_access_specifiers.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_cursor.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/util.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_file.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_type.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_cursor_kind.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_token_kind.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_cdb.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/INPUTS
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/INPUTS/header1.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/INPUTS/header2.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/INPUTS/parse_arguments.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/INPUTS/compile_commands.json
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/INPUTS/header3.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/INPUTS/hello.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/INPUTS/include.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/test_translation_unit.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/tests/cindex/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/clang
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/clang/enumerations.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/clang/cindex.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/clang/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/bindings/python/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/build-and-summarize-all.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/build.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/return-types-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/return-types-64/Makefile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/ABITestGen.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/Enumeration.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/layout
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/layout/Makefile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/single-args-32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/single-args-32/Makefile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/Makefile.test.common
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/TypeGen.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/build-and-summarize.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/single-args-64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/single-args-64/Makefile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/return-types-32
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/return-types-32/Makefile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ABITest/summarize.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/CmpDriver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/token-delta.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/FuzzTest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/find-unused-diagnostics.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TestUtils
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TestUtils/pch-test.pl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TestUtils/deep-stack.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/builtin-defines.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/order-files.lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/order-files.lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/perf-helper.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/cxx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/cxx/hello_world.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/perf-training/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/valgrind
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/valgrind/x86_64-pc-linux-gnu_gcc-4.3.3.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/CIndex
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/CIndex/completion_logger_server.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/FindSpecRefs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/clang-completion-mode.el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/VtableTest
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/VtableTest/check-zvt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/VtableTest/check-zti
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/VtableTest/check-ztt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/VtableTest/gen.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ClangDataFormat.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/ClangCommentHTMLTagsEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/ClangSACheckersEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/ClangCommentCommandInfoEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/ClangASTNodesEmitter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/TableGen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/TableGen/TableGenBackends.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ClangVisualizers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ClangVisualizers/clang.natvis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/ClangVisualizers/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/analyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/analyzer/CmpRuns.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/analyzer/SATestAdd.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/analyzer/reducer.pl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/analyzer/update_plist_test.pl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/analyzer/SumTimerInfo.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/analyzer/ubiviz
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/analyzer/SATestBuild.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/CaptureCmd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/check_cfc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/check_cfc/test_check_cfc.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/check_cfc/check_cfc.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/check_cfc/check_cfc.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/check_cfc/setup.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/utils/check_cfc/obj_diff.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/clang-format.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/fuzzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/fuzzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/clang-format-bbedit.applescript
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/clang-format-diff.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/clang-format.el
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/git-clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/ClangFormat.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format/clang-format-sublime.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/driver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/driver/cc1_main.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/driver/driver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/driver/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/driver/cc1as_main.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/driver/Info.plist.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXString.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CursorVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/BuildSystem.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/Indexing.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/Index_Internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexHigh.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXType.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXIndexDataConsumer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXCursor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexDiagnostic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXLoadedDiagnostic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXSourceLocation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/libclang.exports
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXCompilationDatabase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXTranslationUnit.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXStoredDiagnostic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXComment.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXString.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXIndexDataConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXCursor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndex.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/ARCMigrate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXType.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexInclusionStack.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXSourceLocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexUSRs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CLog.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXLoadedDiagnostic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CXComment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/libclang/CIndexCodeCompletion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/bin/scan-view
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/share
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/share/bugcatcher.ico
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/share/FileRadar.scpt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/share/startfile.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/share/ScanView.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/share/GetRadarVersion.scpt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-view/share/Reporter.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-check
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-check/ClangCheck.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-check/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/Resources
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/Resources/Package.ico
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/Resources/Images_32bit.bmp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/Resources.resx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/ClangFormat.vsct
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/ClangFormat.csproj
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/Properties
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/Properties/AssemblyInfo.cs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/ClangFormatPackage.cs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/Resources.Designer.cs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/Guids.cs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/GlobalSuppressions.cs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/VSPackage.resx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat/PkgCmdID.cs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/source.extension.vsixmanifest.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/ClangFormat.sln
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-format-vs/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diag-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diag-build/diag-build.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/share
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/share/scan-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/share/scan-build/sorttable.js
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/share/scan-build/scanview.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/bin/set-xcode-analyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/bin/scan-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/bin/scan-build.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/libexec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/libexec/c++-analyzer.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/libexec/ccc-analyzer.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/libexec/c++-analyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/libexec/ccc-analyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/man
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/man/scan-build.1
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/DiagnosticNames.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/DiagTool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/ListWarnings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/ShowEnabledWarnings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/diagtool_main.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/DiagTool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/DiagnosticNames.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/TreeView.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/diagtool/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/arcmt-test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/arcmt-test/arcmt-test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/arcmt-test/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/c-arcmt-test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/c-arcmt-test/c-arcmt-test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/c-arcmt-test/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/c-index-test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/c-index-test/c-index-test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/c-index-test/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/c-index-test/core_main.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-fuzzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-fuzzer/ClangFuzzer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/clang-fuzzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/intercept-c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/analyze-build.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/intercept-cc.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/analyze-cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/scan-build.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/intercept-c++.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/analyze-c++
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/intercept-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/analyze-cc.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/analyze-c++.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/intercept-build.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/analyze-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/intercept-cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/bin/scan-build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/shell.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/runner.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/report.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/intercept.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/command.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/analyze.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/resources
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/resources/scanview.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/resources/sorttable.js
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/resources/selectable.js
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libscanbuild/clang.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/README.md
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libear
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libear/config.h.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libear/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/libear/ear.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/fixtures.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/test_report.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/test_intercept.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/test_command.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/test_analyze.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/test_clang.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/test_shell.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/unit/test_runner.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/exec
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/exec/main.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/exec/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/exec/config.h.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/emit-one.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/build
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/broken-one.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/clean-one.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/compilation_database
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/compilation_database/build_broken.json.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/compilation_database/build_regular.json.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/compilation_database/build_clean.json.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/include/clean-one.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/main.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/emit-two.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/broken-two.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/src/clean-two.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/cases
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/cases/test_create_cdb.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/cases/test_from_cdb.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/cases/test_exec_anatomy.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/cases/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/functional/cases/test_from_cmd.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/tools/scan-build-py/tests/__init__.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/LICENSE.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Basic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Basic/CharInfoTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Basic/FileManagerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Basic/SourceManagerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Basic/VirtualFileSystemTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Basic/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Basic/DiagnosticTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Rewrite
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Rewrite/RewriteBufferTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Rewrite/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/CodeGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/CodeGen/BufferSourceTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/CodeGen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Sema
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Sema/ExternalSemaSourceTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Sema/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/DeclPrinterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/ExternalASTSourceTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/StmtPrinterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/MatchVerifier.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/CommentParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/ASTTypeTraitsTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/NamedDeclPrinterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/CommentLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/ASTContextParentMapTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/DeclTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/EvaluateAsRValueTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/SourceLocationTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/AST/ASTVectorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format/FormatTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format/FormatTestJava.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format/FormatTestProto.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format/FormatTestSelective.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format/FormatTestUtils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format/SortIncludesTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Format/FormatTestJS.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Lex
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Lex/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Lex/LexerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Lex/PPCallbacksTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Lex/PPConditionalDirectiveRecordTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Lex/HeaderMapTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Driver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Driver/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Driver/ToolChainTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Driver/MultilibTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/ToolingTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RecursiveASTVisitorTestCallVisitor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RewriterTestContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RecursiveASTVisitorTestExprVisitor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RecursiveASTVisitorTestTypeLocVisitor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/QualTypeNamesTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RecursiveASTVisitorTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/CommentHandlerTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/CompilationDatabaseTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RefactoringCallbacksTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RefactoringTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RewriterTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/TestVisitor.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/ReplacementsYamlTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/RecursiveASTVisitorTestDeclVisitor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Tooling/LookupTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/libclang
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/libclang/LibclangTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/libclang/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/StaticAnalyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/StaticAnalyzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/StaticAnalyzer/AnalyzerOptionsTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersTest.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers/Dynamic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers/Dynamic/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers/Dynamic/VariantValueTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/ASTMatchers/ASTMatchersTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Frontend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Frontend/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Frontend/FrontendActionTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/unittests/Frontend/CodeGenActionTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/.gitignore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/FormatStringParsing.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/CodeInjector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/BodyFarm.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/ObjCNoReturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/Consumed.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/PseudoConstantAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/ThreadSafetyLogical.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/FormatString.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/Dominators.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/LiveVariables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/PostOrderCFGView.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/CallGraph.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/CFG.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/ReachableCode.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/BodyFarm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/TypeLocBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaLambda.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaType.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaStmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/AttributeList.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaAccess.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaFixItUtils.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaExprMember.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaLookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaAttr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaChecking.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaCUDA.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/ScopeInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/Sema.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/TypeLocBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaCast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/TreeTransform.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaInit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/Scope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaDecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaOverload.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/SemaTemplate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Sema/DeclSpec.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Edit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Edit/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Edit/EditedSource.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Edit/RewriteObjCFoundationAPI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Edit/Commit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/CommentSema.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ASTImporter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/NSAPI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/StmtCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ExprObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/CXXInheritance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/RecordLayout.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/TemplateName.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/Expr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/CommentParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/TypeLoc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/CXXABI.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/VTTBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/VTableBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/TypePrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ParentMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/CommentBriefParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/CommentCommandTraits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ItaniumMangle.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ExprClassification.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/StmtPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/OpenMPClause.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/InheritViz.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ASTContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclFriend.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/SelectorLocationsKind.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ASTConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ASTDumper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/Decl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/RawCommentList.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/StmtProfile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ExternalASTSource.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ASTTypeTraits.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/StmtViz.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/Type.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclGroup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/StmtObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclarationName.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclOpenMP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/Stmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ExprConstant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/AttrImpl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/APValue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ExprCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/StmtIterator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclBase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/Comment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/CommentLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/DeclTemplate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/Mangle.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/StmtOpenMP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/AST/TemplateBase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/WhitespaceManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/Format.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/FormatToken.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/Encoding.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/WhitespaceManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/FormatToken.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/UnwrappedLineParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/TokenAnnotator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/ContinuationIndenter.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/BreakableToken.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/TokenAnnotator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Format/BreakableToken.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/ScratchBuffer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PPExpressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/ModuleMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PPLexerChange.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/HeaderMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/Preprocessor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/UnicodeCharSets.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/LiteralSupport.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PTHLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PPCaching.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PPConditionalDirectiveRecord.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PPDirectives.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/Pragma.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/MacroInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/HeaderSearch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/MacroArgs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/Lexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/PPCallbacks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/TokenLexer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Types.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Tools.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/CrossWindowsToolChain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/DriverOptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/ToolChains.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/MSVCToolChain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Job.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Action.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Tool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Compilation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/InputInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/ToolChain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Multilib.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/MinGWToolChain.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Phases.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Driver.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/Tools.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Driver/ToolChains.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Checkers.td
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangSACheckers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AllocationDiagnostics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangCheckers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InterCheckerAPI.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/SelectorExtras.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/APSIntType.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/BlockCounter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/CommonBugCategories.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/FunctionSummary.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/SubEngine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/DynamicTypeMap.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Frontend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/Address.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGValue.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGLoopInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGStmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGBuilder.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/TargetInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGException.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/ABIInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGVTables.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGDecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCleanup.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCUDABuiltin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenModule.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGVTT.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCall.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGBlocks.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCXXABI.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGLoopInfo.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGVTables.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGClass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CodeGenPGO.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/EHScopeStack.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGCall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/IndexingContext.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/CodegenNameGenerator.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/SimpleFormatContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/IndexSymbol.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/IndexDecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/IndexingContext.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/IndexingAction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/IndexBody.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/USRGeneration.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/CommentToXML.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/RAIIObjectsForParser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/Parser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseInit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseTentative.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseDecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParsePragma.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseTemplate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseObjc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseExpr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseAST.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Parse/ParseStmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/Tooling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/JSONCompilationDatabase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/FileMatchTrie.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/Refactoring.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/RefactoringCallbacks.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/Core
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/Core/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/Core/QualTypeNames.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/Core/Lookup.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/rdseedintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/bmiintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/xsaveoptintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512dqintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/vecintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/cpuid.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/stdalign.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/x86intrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/__wmmintrin_aes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/fma4intrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/nmmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/bmi2intrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/pmmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/tmmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/s390intrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/tgmath.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/xmmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/iso646.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/shaintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/adxintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512erintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512vldqintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/stdint.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/tbmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/vadefs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/stddef.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512ifmavlintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/xsaveintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/ia32intrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/stdatomic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/altivec.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512vbmiintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/__clang_cuda_cmath.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/xtestintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/cuda_builtin_vars.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/mmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/__wmmintrin_pclmul.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/ammintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/emmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/arm_acle.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512bwintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/unwind.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/float.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/immintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512ifmaintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/__stddef_max_align_t.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512vlintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/xsavecintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/prfchwintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/lzcntintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/inttypes.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512fintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/htmxlintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/smmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512cdintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/pkuintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/wmmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/mm3dnow.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/stdarg.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/cuda
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/stdnoreturn.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/popcntintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512vbmivlintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/xopintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/xsavesintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/mm_malloc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/limits.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/Intrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx2intrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/varargs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/stdbool.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/fxsrintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/htmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/module.modulemap
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/avxintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/f16cintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/rtmintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/fmaintrin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Headers/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/FrontendTool
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/FrontendTool/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ModuleManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ModuleFileExtension.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTWriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/Module.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTCommon.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Serialization/ASTCommon.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/Dynamic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/Dynamic/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/Dynamic/VariantValue.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/Dynamic/Diagnostics.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ASTMatchers/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/ARCMTActions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransProtectedScope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/Transforms.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/Internals.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransProperties.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransBlockObjCVariable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/ObjCMT.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransGCAttrs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransGCCalls.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransARCAssign.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/ChainedDiagnosticConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/FrontendAction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/DependencyFile.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/PCHContainerOperations.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/SerializedDiagnosticReader.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/LangStandards.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/CacheTokens.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/TextDiagnostic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/LayoutOverrideSource.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/HTMLPrint.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/RewriteTest.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/RewriteMacros.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/FixItRewriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/Rewrite/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/DependencyGraph.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/DiagnosticRenderer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/CodeGenOptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/TestModuleFileExtension.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/ASTUnit.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/ModuleDependencyCollector.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/FrontendOptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/FrontendActions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/ChainedIncludesSource.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/ASTMerge.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Rewrite
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Rewrite/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Rewrite/Rewriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Rewrite/TokenRewriter.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/DiagnosticOptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/TargetInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/FileSystemStatCache.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/TokenKinds.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/Targets.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/OperatorPrecedence.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/FileManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/Diagnostic.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/Version.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/Module.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/Attributes.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/Warnings.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/CharInfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/Builtins.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/SourceLocation.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/IdentifierTable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/Sanitizers.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/SourceManager.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/LangOptions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Basic/VersionTuple.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/NOTES.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/.clang-tidy
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/.arcconfig
+ U   /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang
+Checked out revision 264915.
+Checking out compiler-rt r264915 into '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt'
+Running svn checkout --force https://llvm.org/svn/llvm-project/compiler-rt/trunk@264915 /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/CREDITS.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/Makefile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/lib_platforms.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/util.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/clang_darwin_test_input.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/clang_linux.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/clang_macho_embedded.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/clang_mingw.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/multi_arch.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/clang_darwin.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/clang_linux_test_input.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/darwin_bni.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/platform/clang_macho_embedded_test_input.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/filter-inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/lib_info.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/lib_util.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/config.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/subdir.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/test/test-util.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/options.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/make/AppleBI.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/ioctl_custom.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/tls_reuse.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/chained_origin_empty_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/realloc-origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-multiple-inheritance-nontrivial-class-members.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/msan_check_mem_is_initialized.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/no_sanitize_memory_prop.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/print_stats.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-trivial-class-members.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/textdomain.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/ifaddrs.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/chained_origin_memcpy.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/msan_print_shadow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/strerror_r-non-gnu.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/sync_lock_set_and_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/chained_origin_limits.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-vtable.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/getaddrinfo-positive.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/getaddrinfo.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/stack-origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-derived-class.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Unit/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/msan_copy_shadow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/poison_in_free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/fork.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/use-after-dtor.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/vector_select.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/chained_origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/getc_unlocked.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/ftime.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/pthread_getattr_np_deadlock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/insertvalue_origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/keep-going-dso.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/unaligned_read_origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/scandir_null.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/iconv.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/origin-store-long.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/report-demangling.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/select.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/death-callback.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/sem_getvalue.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/param_tls_limit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/sigwaitinfo.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/readdir64.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/errno.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/select_origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/cxa_atexit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/check_mem_is_initialized.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/allocator_returns_null.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/mul_by_const.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/strlen_of_shadow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/unpoison_string.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtls_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/msan_print_shadow3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/initgroups.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/rand_r.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/pthread_setcancelstate.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dso-origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/no_sanitize_memory.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/setlocale.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/stack-origin2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/default_blacklist.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-member.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/chained_origin_with_signals.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/memcmp_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/backtrace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/coverage-levels.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/keep-going.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/mktime.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/getline.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/ctermid.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/icmp_slt_allones.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-bit-fields.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-multiple-inheritance.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/msan_dump_shadow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/tsearch.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/c-strdup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/realloc-large-origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/msan_print_shadow2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/scandir_test_root
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/scandir_test_root/aab
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/scandir_test_root/bbb
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/scandir_test_root/aaa
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-vtable-multiple-inheritance.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/strxfrm.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/sigwait.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/tzset.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dlerror.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/ioctl.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/use-after-free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/select_float_origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/xattr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/getresid.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/sunrpc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/sunrpc_bytes.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/xattr_test_root
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/xattr_test_root/a
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/ioctl_sound.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/glob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/obstack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/glob_nomatch.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/mincore.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/syscalls.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/forkpty.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/glob_altdirfunc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/sunrpc_string.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/tcgetattr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/fopencookie.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/glob_test_root
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/glob_test_root/aa
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/glob_test_root/ab
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/glob_test_root/ba
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/mallinfo.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/Linux/process_vm_readv.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-trivial.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/inline.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/vector_cvt.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dtor-base-access.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/signal_stress_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/times.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/dlopen_executable.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/scandir.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/mmap_below_shadow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/if_indextoname.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/mmap.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/allocator_mapping.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/msan/heap-origin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-merge-match.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-write-file-only.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-version-mismatch.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/instrprof-dlopen.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/coverage_dtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/coverage_ctors.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/instrprof-basic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/instrprof-merge-vp.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/instrprof-comdat.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/instrprof-dynamic-one-shared.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/coverage_test.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/extern_template.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/coverage_shared.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Linux/instrprof-dynamic-two-shared.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-override-filename.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-shared.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-set-filename.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-value-prof-real.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-dynamic-a.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-dlopen-main.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-dynamic-b.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-visibility-helper.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-comdat-1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-dynamic-main.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-comdat-2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-dlopen-func.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-shared-lib.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/extern_template.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-comdat.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-dynamic-header.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/extern_template.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/gcc-flag-compatibility.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-shared-main.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-merge-match.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-dlopen-func2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/extern_template1.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/instrprof-merge-match-lib.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/Inputs/extern_template2.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-dlopen.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-value-prof-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-value-prof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-basic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/gcc-flag-compatibility.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-visibility-kinds.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-write-file-atexit-explicitly.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-visibility.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-error.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-override-filename-then-reset-default.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-dynamic-two-shared.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-override-filename-with-env.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-merge.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-bufferio.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-dynamic-one-shared.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-write-file.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-set-filename-then-reset-default.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-without-libc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-value-prof.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-hostname.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/profile/instrprof-reset-counters.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/bad-cast.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/nvcall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/create-derivers.test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/multiple-inheritance.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/anon-namespace.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/base-derived-destructor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/overwrite.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/sibling.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/target_uninstrumented.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/target_out_of_bounds.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/shadow_is_read_only.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/simple-pass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/stats.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/dlopen.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/simple-fail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/icall
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/icall/icall-from-dso.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/icall/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/icall/diag.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/cross-dso/icall/icall.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/simple-pass.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/vdtor.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/stats.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/simple-fail.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/icall
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/icall/bad-signature.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/icall/external-call.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/icall/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/utils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/cfi/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/interception
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/init.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/overflow.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/utils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/pthread.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/pthread-cleanup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/lto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/buffer-copy-vla.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/safestack/buffer-copy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/free_race.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/annotate_happens_before.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/tiny_race.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fork_multithreaded.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_single_writer.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/must_deadlock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mop_with_offset2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_sync.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/map32bit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_leak2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/vptr_harmful_race2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_name2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_barrier2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/benign_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_pipe_norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/halt_on_error.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/static_init4.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-sync-norace.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-async-norace.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/symbolizer-atos.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-groups-norace.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-once.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-sync-race.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-async-race.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-semaphore-norace.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/objc-race.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-groups-stress.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/dlopen.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/gcd-serial-queue-norace.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/symbolizer-dladdr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/dispatch_main.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/objc-simple.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/osspinlock-norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/ignored-interceptors.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Darwin/malloc-stack-logging.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_race_move.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_read.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutexset4.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_heap.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/vptr_harmful_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/libcxx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/libcxx/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/libcxx/std_shared_ptr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Linux/check_memcpy.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Linux/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Linux/mutex_robust.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Linux/mutex_robust2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Linux/user_fopen.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Linux/user_malloc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_detach.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_lock_rec_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/pie_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_reset.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/stack_race2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_lock_rec.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutex_bad_unlock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/barrier.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fork_deadlock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_close_norace2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_dup_norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/malloc_overflow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/load_shared_lib.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/Unit/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/debugging.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/malloc_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mmap_stress.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/suppressions_race.cc.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/atexit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutex_cycle2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_malloc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/virtual_inheritance_compile_bug.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutexset7.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_with_finished_thread.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/vptr_benign_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_sync.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_barrier.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_rwmutex.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/sunrpc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_end_with_ignore2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/atomic_free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_stress.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/pthread_atfork_deadlock.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_cond.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_release_only.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/simple_race.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/getline_nohang.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_leak3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/memcpy_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_mutex.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_stdout_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/cond_version.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/vfork.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/interface_atomic_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/longjmp3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib0.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/suppressions_race2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/blacklist2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_end_with_ignore.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/static_init2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/printf-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_detach2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_move_overlap.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_leak.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutexset2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/suppress_same_stacks.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/deadlock_detector_stress_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_mutex.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/stack_sync_reuse.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/restore_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/simple_stack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/global_race2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_lock_move.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fork_atexit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_write.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_volatile.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_shadow_flush.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/inlined_memcpy_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/vptr_harmful_race3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_acquire_release.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_move_overlap_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_lock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_alloc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/allocator_returns_null.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/suppressions_global.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/suppress_same_address.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_ten_mutexes.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/atomic_free2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/static_init5.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fork_multithreaded3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/unaligned_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/atomic_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutexset5.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_symbolization.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/real_deadlock_detector_stress_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/heap_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_malloc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/atexit2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_errno.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/suppressions_global.cc.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_leak4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_socket_norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/global_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutex_destroy_locked.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_race_pc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/simple_stack2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_pipe_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_heap_init.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_longjmp.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/atomic_norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/sleep_sync.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_socketpair_norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/longjmp.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutexset8.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/atomic_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_mutex2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_name.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_speculative_load.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/write_in_reader_lock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/setuid2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_end_with_ignore3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutex_bad_read_unlock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/cond.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/tsan-vs-gvn.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_finalizer.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/dlclose.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/sleep_sync2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_top_suppression1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_acquire_only.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/longjmp4.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/free_race2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/setuid.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/static_init3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/default_options.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/stack_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_socket_connect_norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutexset3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_rwlock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_top_suppression.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/blacklist.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/inlined_memcpy_race2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mop1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_dup_norace2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutex_bad_read_lock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/cond_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/global_race3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/deflake.bash
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/simple_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/thread_leak5.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/large_malloc_meta.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/vptr_harmful_race4.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/dl_iterate_phdr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/aligned_vs_unaligned_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/tls_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib4.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/atomic_free3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/static_init6.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_tid_recycled.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_recursive.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutexset6.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutex_double_lock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_thread.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/cond_destruction.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/suppressions_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/memcmp_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/bench_local_mutex.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/java_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/tls_race2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib0.cc.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/suppressions_race2.cc.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib1.cc.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/race_on_puts.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_location.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib2.cc.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib3.cc.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/deep_stack1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/sigsuspend.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/cond_cancel.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_write.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/longjmp2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/signal_sync2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/static_init1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_dup_race.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutex_lock_destroyed.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mop_with_offset.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/unaligned_norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/free_race.c.supp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mutexset1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/ignore_lib_lib.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/mmap_large.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/tsan/fd_close_norace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lit.common.configured.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/lit.common.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/log-path_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/Linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/Linux/ubsan_options.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/Linux/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/vla.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/deduplication.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/enum.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/nonnull.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/coverage-levels.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/missing_return.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/unreachable.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/bounds.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/bool.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Misc/nonnull-arg.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/div-zero.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/no-recover.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/usub-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/div-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/umul-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/negate-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/incdec-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/add-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/sub-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/uincdec-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/shift.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/summary.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/suppressions.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/mul-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Integer/uadd-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/null.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/misaligned.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-virtual-base-construction.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/Helpers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-non-unique-typeinfo.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/Function
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/Function/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/Function/function.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Float
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/TestCases/Float/cast-overflow.cpp
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/ubsan/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lit.common.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/Unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/Unit/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/lit.common.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/strspn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/corelimit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/malloc_hook.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/strcspn.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/strcasestr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/print-stack-trace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/strstr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Darwin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Darwin/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Darwin/abort_on_error.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/pthread_mutexattr_get.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/mlock_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/clock_gettime.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/sched_getparam.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/getpwnam_r_invalid_user.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/aligned_alloc.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/fpe.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/open_memstream.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/abort_on_error.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/soft_rss_limit_mb_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/ptrace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/hard_rss_limit_mb_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/ill.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/decorate_proc_maps.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/timerfd.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/closedir.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Linux/assert.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/options-include.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Posix
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Posix/getpass.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/Posix/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/options-invalid.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/options-help.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/strnlen.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/fopen_nullptr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/TestCases/strpbrk.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/sanitizer_common/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/orbars.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/byrefaccess.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/flagsisa.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/k-and-r.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/small-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/cast.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/rdar6405500.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/dispatch_async.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/makefile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/copy-block-literal-rdar6439600.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/dispatch_call_Block_with_release.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/recursive-block.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/modglobal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/macro.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/byrefcopy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/josh.C
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/rettypepromotion.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/c99.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/fail.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/returnfunctionptr.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/varargs-bad-assign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/large-struct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/byrefstruct.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/structmember.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/nestedimport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/testfilerunner.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/variadic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/testfilerunner.m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/objectRRGC.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/recursive-test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/byrefcopystack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/constassign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/voidarg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/byrefcopycopy.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/byrefcopyinner.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/reference.C
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/byrefsanity.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/sizeof.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/copynull.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/varargs.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/localisglobal.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/rdar6414583.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/goto.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/hasdescriptor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/shorthandexpression.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/objectassign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/recursiveassign.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/rdar6396238.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/byrefcopyint.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/block-static.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/copyconstructor.C
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/globalexpression.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/nullblockisa.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/BlocksRuntime/blockimport.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/lsan_annotations.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/log-path_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/atexit_stats.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/stack-buffer-overflow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/heap-overflow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strpbrk-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-caller-callee-total-count.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-and-lsan.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strip_path_prefix.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/partial_right.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strcasestr-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Android
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Android/coverage-android.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Android/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/printf-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/suppressions-sandbox.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/interface_symbols_darwin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/abort_on_error.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/reexec-insert-libraries-env.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/address-range-limit.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/asan_gen_prefixes.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/objc-odr.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/linked-only.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/malloc_zone-protected.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/cstring_literals_regtest.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/dead-strip.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/dyld_insert_libraries_remove.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/sandbox-symbolizer.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/dladdr-demangling.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/mixing-global-constructors.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/suppressions-darwin.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/empty-section.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/atos-symbolizer.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/crashlog-stacktraces.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/unset-insert-libraries-on-exec.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/dyld_insert_libraries_reexec.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/atos-symbolizer-dyld-root-path.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Darwin/malloc_set_zone_name-mprotect.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/suppressions-function.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-scope-temp.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/memcmp_strict_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/longjmp.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/intercept_strlen.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_allocators_sanity.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_heap.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/realloc_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/oom.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/global_const_string_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/global_const_string.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/queue_user_work_item_report.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_array_new_uaf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/stack_array_right_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/on_error_callback.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/symbols_path.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/report_after_syminitialize.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/intercept_memcpy.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/shadow_mapping_failure.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/hello_world.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/coverage-basic.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_malloc_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/double_free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/stack_array_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/report_globals_vs_freelibrary.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/bitfield_uaf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/use_after_realloc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/seh.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/thread_simple.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_intercept_memchr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_right_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/calloc_right_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_delete_wrong_argument.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_array_new_with_dtor_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_array_new_right_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/free_hook_realloc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/queue_user_work_item.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/malloc_right_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/crash_read_write.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/longjmp.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/double_operator_delete.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_noreturn.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/null_deref_multiple_dlls.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_host.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/fuse-lld.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/realloc_right_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/crt_initializers.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_intercept_strlen.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/malloc_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/thread_suspended.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_and_lib.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/iostream_sbo.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/calloc_uaf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_operator_array_new_with_dtor_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/stack_array_sanity.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_malloc_uaf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/intercept_strdup.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/thread_stack_reuse.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/report_globals_reload_dll.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_new_uaf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/default_options.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/malloc_uaf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_intercept_memcpy.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/thread_stack_array_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/use_after_return_linkage.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_aligned_mallocs.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/bind_io_completion_callback.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/beginthreadex.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_null_deref.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_array_new_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/realloc_uaf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_control_c.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_new_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/null_deref.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/bitfield.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_intercept_memcpy_indirect.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/unsymbolized.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_cerr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/allocators_sanity.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_large_function.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_poison_unpoison.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/operator_new_right_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/windows_h.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_intercept_memset.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_report_globals_symbolization_at_startup.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/demangled_names.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/calloc_left_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/thread_stress.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/dll_seh.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Windows/aligned_mallocs.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/heap-overflow-large.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strtol_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/malloc_fill.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/debug_ppc64_mapping.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/contiguous_container_crash.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strcasestr_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-scope-inlined.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-levels.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strcat_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strtoll_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/stack-buffer-overflow-with-position.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/halt_on_error-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_underflow_left.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/throw_call_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strstr-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/default_options.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-disabled.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/contiguous_container.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/frexp_interceptor.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/large_func_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/malloc_context_size.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/invalid-free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_detect_custom_size_.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/interception_failure_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/throw_invoke_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strspn_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/atoi_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strpbrk-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/speculative_load.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_overflow_partial.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/allocator_returns_null.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/zero_page_pc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/debug_stacks.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/printf-3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_instruments_all_paddings.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/asan_and_llvm_coverage_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/initialization-constexpr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_safe_access.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_big_alignment.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/max_redzone.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/verbose-log-path_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/debug_locate.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/suppressions-exec-relative-location.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-scope-dtor-order.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strcspn_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strspn-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/stack-oob-frames.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/sanity_check_pure_c.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/global-location.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/init-order-atexit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/blacklist.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/suppressions-interceptor.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/global-demangle.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/interception_readdir_r_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/overflow-in-qsort.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/malloc_delete_mismatch.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/swapcontext_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/quarantine_size_mb.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/asan_default_suppressions.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/recvfrom.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/scariness_score_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/stack-trace-dlclose.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/asan_preload_test-2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/interception_malloc_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/asan_rt_confict_test-2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/shmctl.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/leak_check_segv.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/asan-asm-stacktrace-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/clone_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/sized_delete_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/signal_during_stop_the_world.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/coverage-missing.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/local_alias.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/asan_prelink_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/stress_dtls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/uar_signals.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/read_binary_name_regtest.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/static_tls.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/clang_gcc_abi.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/calloc-preload.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/ptrace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/pthread_create_version.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/init_fini_sections.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/nohugepage_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/malloc-in-qsort.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/odr_c_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/asan_dlopen_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/interface_symbols_linux.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/asan_preload_test-1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/odr-violation.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/kernel-area.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/asan_rt_confict_test-1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/activation-options.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/init-order-dlopen.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/unpoison_tls.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/mincore.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/syscalls.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/globals-gc-sections.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/initialization-bug-any-order.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/stack-overflow-sigbus.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/interception_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/function-sections-are-bad.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/segv_read_write.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/preinit_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/rlimit_mmap_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/coverage_html_report.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/leak.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Linux/abort_on_error.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/inline.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-direct-large.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/new_array_cookie_with_new_from_class.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/interception-in-shared-lib-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/halt_on_error_suppress_equal_pcs.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/halt_on_error-torture.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/current_allocated_bytes.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/glob_test_root
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/glob_test_root/aa
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/glob_test_root/ab
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/glob_test_root/ba
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/readv.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-direct-activation.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/free_hook_realloc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/wait.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/large_allocator_unpoisons_on_free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/stack-overflow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-module-unloaded.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/start-deactivated.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/stack-use-after-return.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/dump_instruction_bytes.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-caller-callee.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/new_array_cookie_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/waitid.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/closed-fds.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/glob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/log_path_fork_test.cc.disabled
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-sandboxing.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/wait3.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-fork.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/deep_call_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/freopen.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/allow_user_segv.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/init-order-pthread-create.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/strerror_r_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/dlclose-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-fork-direct.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-maybe-open-file.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/coverage-direct.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/mmap_limit_mb.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/gc-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/new_array_cookie_uaf_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/ioctl.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/asan-symbolize-bad-path.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/tsd_dtor_leak.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/asan-symbolize-sanity-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/assign_large_valloc_to_global.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/asprintf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/print_cmdline.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/shared-lib-test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/halt_on_error-signals.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/wait4.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Posix/deep_thread_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/null_deref.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strdup_oob_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-tracing.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/intra-object-overflow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/asan_options-help.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-order-pcs.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/double-free.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-delete.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/deep_stack_uaf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/interface_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/printf-4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/print_summary.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/unaligned_loads_and_stores.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/vla_chrome_testcase.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/default_blacklist.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strpbrk_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/memcmp_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/initialization-blacklist-extra.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/initialization-blacklist-extra2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/initialization-nobug-extra.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/initialization-bug-extra.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/echo-env.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/initialization-bug-extra2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/initialization-blacklist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/blacklist-extra.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/init-order-atexit-extra.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/initialization-constexpr-extra.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/Helpers/lit.local.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/vla_loop_overfow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/atol_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-free-right.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strspn-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_vla_interact.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strcspn-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/memset_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strchr_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/initialization-blacklist.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strcmp_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/atoll_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/debug_mapping.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-scope.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strncpy-overflow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/throw_catch.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/no_asan_gen_globals.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/stack-frame-demangle.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/uar_and_exceptions.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_overflow_right.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-reset.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/time_interceptor.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/suppressions-library.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/sleep_before_dying.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/heavy_uar_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/poison_partial.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strstr_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strcasestr-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/printf-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/force_inline_opt0.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/initialization-nobug.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-poison.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/printf-5.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/global-overflow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strncat_strict.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/speculative_load2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/use-after-scope-nobug.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/vla_condition_overflow.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/alloca_loop_unpoisoning.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/debug_report.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/deep_tail_call.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/describe_address.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/huge_negative_hea_oob.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-trace-pc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strcspn-2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/strstr-1.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/on_error_callback.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/coverage-pc-buffer.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/TestCases/initialization-bug.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/Unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/Unit/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/android_commands
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/android_commands/android_run.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/android_commands/android_common.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/android_commands/android_compile.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/asan/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/eqsf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divtc3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/powixf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divtf3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunssfsi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunssfti_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/addtf3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/subtf3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ashlti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fp_test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/bswapdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/mulxc3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/truncdfsf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/umodsi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/gttf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divdf3vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/modsi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/trunctfsf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunsdfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/umoddi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ltsf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ledf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/absvsi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/letf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatunssidfvfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ffsdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/moddi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/extendhfsf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/trunctfdf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/negdf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunsdfsi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunstfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunsdfti_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/umodti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunsxfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/udivmodsi4_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/nesf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/absvdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ffsti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatunsitf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/unorddf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/modti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunstfsi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunstfti_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/gcc_personality_test_helper.cxx
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunsxfsi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/getf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunsxfti_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/udivmoddi4_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/clear_cache_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/absvti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/negvsi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/subsf3vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/truncsfhf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/mulsf3vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixsfsivfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/udivmodti4_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/powisf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatsitf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/addvsi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/endianness.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/negvdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatundidf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/adddf3vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/gtsf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divmodsi4_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/qadd_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/qsub_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/floatditf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/DD.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/fixtfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/qmul_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/floatunditf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/test
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/floatditf_test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/qdiv_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ppc/floatunditf_test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/gedf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/mulsc3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/lshrdi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/powidf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/extebdsfdf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/eqdf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/negvti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/addvdi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatundisf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatunditf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatuntidf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatundixf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/muldc3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/lshrti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/powitf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatdidf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/extendsftf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/muldi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ashrdi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunsdfsivfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatuntisf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/addvti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/subvsi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divxc3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/mulvsi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatuntixf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ucmpdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/multc3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/multf3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatdisf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floattidf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatditf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/multi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ashrti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/cmpdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/subvdi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatdixf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/eqtf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/mulvdi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ucmpti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/popcountsi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ltdf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/trampoline_setup_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floattisf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/truncdfsf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/mulosi4_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixsfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/cmpti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/subvti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floattixf_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/comparesf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/unordtf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/mulvti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/truncdfhf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/clzsi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatsisfvfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/popcountdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divsf3vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/nedf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixsfti_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/mulodi4_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ctzsi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/comparedf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/popcountti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/clzdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/lesf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/muloti4_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ctzdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/negsf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/subdf3vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/muldf3vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/clzti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/negdi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/extenddftf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixdfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/unordsf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ctzti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/gtdf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/gcc_personality_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/paritysi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/udivsi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/negti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divsc3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatunssisfvfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/enable_execute_stack_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixtfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixdfti_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm/call_apsr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm/aeabi_cdcmple_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm/aeabi_cfcmple_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm/aeabi_drsub_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm/call_apsr.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/arm/aeabi_frsub_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixxfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divsi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/paritydi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/udivdi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixdfsivfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixtfsi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divdc3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunssfsivfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixtfti_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/netf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/addsf3vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixxfti_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/gesf2vfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/divdi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/fixunssfdi_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/floatsidfvfp_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/ashldi3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/udivti3_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/parityti2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/bswapsi2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/Unit/lttf2_test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/floatdidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/timing.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/ashrdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/muldi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/modsi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/floatundidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/umoddi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/udivdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/lshrdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/negdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/floatdisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/time
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/floatundisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/moddi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/floatdixf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/divdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/floatundixf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/builtins/timing/ashldi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/propagate.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/vararg.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/lit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/write_callback.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/dump_labels.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/label_count.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/flags.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/custom.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/fncall.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/Inputs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/Inputs/flags_abilist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/dfsan/basic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/lit.common.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/sanity_check_pure_c.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/disabler_in_tsd_destructor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_tls_pthread_specific_static.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/fork_threaded.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/fork.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/cleanup_in_tsd_destructor.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_stacks.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/ignore_object.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/link_turned_off.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_after_return.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/high_allocator_contention.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/suppressions_default.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_tls_dynamic.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_globals_initialized.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/disabler.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_globals_uninitialized.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/print_suppressions.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/new_array_with_dtor_0.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/do_leak_check_override.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/pointer_to_self.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/large_allocation_leak.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_poisoned_asan.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_stacks_threaded.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/ignore_object_errors.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/leak_check_before_thread_started.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/guard-page.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/suppressions_file.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/swapcontext.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_unaligned.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/disabler.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/recoverable_leak_check.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_registers.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/use_tls_static.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/leak_check_at_exit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/stale_stack_leak.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/TestCases/register_root_region.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/test/lsan/lit.site.cfg.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/config-ix.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/caches
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/caches/Apple.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/Modules
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/Modules/AddCompilerRT.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/Modules/CompilerRTCompile.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/Modules/SanitizerUtils.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/cmake/Modules/CompilerRTLink.cmake
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/linux_syscall_hooks.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/lsan_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/msan_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/allocator_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/tsan_interface_atomic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/asan_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/common_interface_defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/coverage_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/include/sanitizer/dfsan_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/www
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/www/index.html
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/www/menu.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/www/menu.html.incl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/www/content.css
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/CODE_OWNERS.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/LICENSE.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/unittests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/unittests/lit.common.unit.cfg
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/unittests/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/unittests/lit.common.unit.configured.in
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs/linux
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs/linux/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs/linux/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs/linux/usr/include/sys
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs/darwin
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs/darwin/usr
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs/darwin/usr/include
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/SDKs/darwin/usr/include/sys
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/.gitignore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_libc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_report_decorator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_asm.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_placement_new.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/standalone_malloc_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_stoptheworld_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_deadlock_detector_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_printf_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_test_utils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_nolibc_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_test_config.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_pthread_wrappers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_test_main.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_stoptheworld_testlib.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_printer_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_bvgraph_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_flags_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_linux_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_bitvector_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_posix_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_mutex_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_testlib.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_libc_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_nolibc_test_main.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_ioctl_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_list_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_atomic_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_suppressions_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/tests/sanitizer_stacktrace_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_coverage_mapping_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_bvgraph.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_libignore.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_common_nolibc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_allocator_internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_common.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_lfstack.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_common_syscalls.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/.clang-tidy
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_mac.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_libc.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/scripts
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/scripts/cpplint.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/scripts/sancov.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/scripts/litlint_test.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/scripts/litlint.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/scripts/check_lint.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_malloc_mac.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_list.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_freebsd.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_atomic.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_flags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_posix.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_atomic_msvc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_x86.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_flags.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stackdepotbase.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_stackdepot.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_persistent_allocator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/BlocksRuntime
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/BlocksRuntime/Block.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/BlocksRuntime/runtime.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/BlocksRuntime/Block_private.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/BlocksRuntime/data.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_lock.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_fake_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_debugging.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_flags.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_flags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_interface_internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_stats.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_stats.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_activation.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_rtl.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_win_dll_thunk.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/scripts
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/scripts/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/scripts/asan_device_setup
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/scripts/asan_symbolize.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_posix.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_blacklist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_poisoning.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_stack.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan.syms.extra
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_thread.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_init_version.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_preinit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_mac_test.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_test_utils.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_mac_test_helpers.mm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_test_config.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_str_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_noinst_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_benchmarks_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_test.ignore
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_mem_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_oob_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_asm_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_exceptions_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_globals_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_test_main.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_racy_double_free_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_fake_stack_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_interface_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/tests/asan_mac_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_report.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_win_dynamic_runtime_thunk.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_suppressions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_flags.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_globals.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_interceptors.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_win.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_scariness_score.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_win.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_fake_stack.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_mapping.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_activation_flags.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_activation.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_stack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_poisoning.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_thread.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_report.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_suppressions.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_allocator.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_interceptors.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_allocator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/Makefile.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divsf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatundidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/atomic_flag_test_and_set_explicit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/udivdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/multc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/Makefile.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/divdi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/floatundixf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/ashldi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/chkstk.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/floatdidf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/ashrdi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/muldi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/floatundidf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/umoddi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/udivdi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/lshrdi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/chkstk2.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/floatdisf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/floatundisf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/moddi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/i386/floatdixf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/absvsi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/mulxc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/atomic_flag_clear_explicit.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/mulodi4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/macho_embedded
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/macho_embedded/thumb2.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/macho_embedded/common.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/macho_embedded/thumb2-64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/macho_embedded/i386.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/macho_embedded/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/macho_embedded/arm.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatunditf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatuntidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_extend.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunssfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/negsf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/subdf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/udivti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ashldi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_trunc_impl.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/README.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/muldf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatunsisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/muloti4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/negvdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_lib.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/floatunditf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/gcc_qdiv.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/Makefile.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/fixunstfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/restFP.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/saveFP.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/gcc_qadd.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/gcc_qsub.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/multc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/gcc_qmul.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/DD.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/divtc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/floatditf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ppc/fixtfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/atomic_flag_test_and_set.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divsi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunssfti.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ucmpdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/umoddi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/subtf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ashlti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/multf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatsidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixdfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/addvdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/negvti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/extendhfsf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/mulvdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ucmpti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/truncsfhf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/umodti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_trunc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunsxfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/clzdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/udivmodsi4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/powisf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/gcc_personality_v0.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatsitf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/muldi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixtfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixdfti.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/modsi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/addvti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/subvsi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ctzdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/mulvti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/addsf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/eprintf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/clzti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunsxfti.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/paritydi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/emutls.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixsfsi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divdc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/floatdixf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/Makefile.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/floatundixf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/chkstk.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/chkstk2.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/floatdisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/floatdidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/floatundisf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/x86_64/floatundidf.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixtfti.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/multi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ctzti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatdixf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunsdfsi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divmoddi4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/parityti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_mul_impl.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divtc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/enable_execute_stack.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_fixint_impl.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divxc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floattixf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/comparesf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunstfsi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatdisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatunsidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divdf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/truncdfsf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/int_types.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_extend_impl.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/popcountsi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_add_impl.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/absvdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/trampoline_setup.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floattisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatunsitf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divtf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/trunctfsf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/negdf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/mulsc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/int_math.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/absvti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/atomic.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatundixf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/int_lib.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/udivsi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/mulosi4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixsfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/comparesf2.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/adddf3vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/gedf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_dcmp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_add_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/switch16.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_memcpy.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/fixunssfsivfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_drsub.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/gtdf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_frsub.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_umin_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/floatsidfvfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_umax_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/nesf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/switch8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/floatunssisfvfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/unorddf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_memcmp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync-ops.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_uldivmod.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_synchronize.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_cfcmpeq_check_nan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/ledf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/divsf3vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_memset.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/bswapdi2.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/addsf3vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/gesf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/ltdf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/bswapsi2.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_min_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_max_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_min_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/gtsf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/softfloat-alias.list
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/divsi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/subdf3vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_max_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_div0.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/switch32.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/muldf3vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_fcmp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_sub_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_and_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_idivmod.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/eqdf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/floatunssidfvfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/switchu8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/unordsf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_ldivmod.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_and_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/negdf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_xor_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/udivsi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/lesf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/udivmodsi4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/clzdi2.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_or_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/truncdfsf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/modsi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_or_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/divmodsi4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/clzsi2.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/ltsf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/floatsisfvfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_cdcmpeq_check_nan.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/fixdfsivfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/nedf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/subsf3vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/Makefile.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/restore_vfp_d8_d15_regs.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/umodsi3.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/mulsf3vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/aeabi_memmove.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/fixsfsivfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/extendsfdf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_4.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/divdf3vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/eqsf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/save_vfp_d8_d15_regs.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/sync_fetch_and_nand_8.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/fixunsdfsivfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm/negsf2vfp.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatuntixf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunsdfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/subsf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/udivmoddi4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/negdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/mulsf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/clear_cache.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/powidf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixsfti.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/extenddftf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/negvsi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/cmpdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatundisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/moddi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/subvdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunsdfti.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunstfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/umodsi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/adddf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/udivmodti4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/negti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/powitf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatdidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/addvsi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/cmpti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatuntisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/powixf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/modti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/subvti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunssfsi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixxfdi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/mulvsi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunstfti.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/apple_versioning.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/addtf3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/clzsi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/int_endianness.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm64
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/arm64/Makefile.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatditf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floattidf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/ios.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/ios6-armv7.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/iossim-i386.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/README.TXT
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/ios6-armv7s.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/iossim-x86_64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/osx-i386.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/10.4.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/iossim.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/ios-armv7.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/ios-armv7s.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/ios7-arm64.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Darwin-excludes/osx.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ctzsi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixxfti.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/comparedf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fp_fixuint_impl.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/paritysi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/floatsisf.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divsc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixdfsi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ashrdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/comparetf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/divmodsi4.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/Makefile.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/atomic_thread_fence.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/truncdfhf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixunsxfsi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/popcountdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/lshrdi3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/atomic_signal_fence.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/atomic_flag_clear.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/fixtfsi.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/extendsfdf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ffsdi2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ashrti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/trunctfdf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/assembly.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/popcountti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/int_util.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/armv6m
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/armv6m/Makefile.mk
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/muldc3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/lshrti3.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/extendsftf2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/int_util.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/builtins/ffsti2.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/dfsan.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/dfsan_flags.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/dfsan_interceptors.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/dfsan.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/dfsan_platform.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/dfsan.syms.extra
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/scripts
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/scripts/build-libc-list.py
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/scripts/check_custom_wrappers.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/dfsan_custom.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/libc_ubuntu1404_abilist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/dfsan/done_abilist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_common_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_thread.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_common.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_thread.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_common.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_preinit.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_allocator.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_flags.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_interceptors.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/lsan/lsan_allocator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_chained_origin_depot.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_flags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_interface_internal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_chained_origin_depot.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/tests/msan_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/tests/msan_loadable.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/tests/msan_test_main.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/tests/msan_test_config.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/tests/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_blacklist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_poisoning.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_poisoning.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_thread.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan.syms.extra
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_thread.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_new_delete.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_report.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_allocator.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_flags.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_interceptors.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_allocator.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/msan/msan_origin.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/stats
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/stats/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/stats/stats_client.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/stats/stats.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/stats/stats.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfData.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingUtil.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/GCDAProfiling.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfiling.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingFile.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/WindowsMMap.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingInternal.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingUtil.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfiling.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingPlatformOther.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingRuntime.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingPort.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingPlatformDarwin.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingMergeFile.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingMerge.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingBuffer.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/WindowsMMap.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingWriter.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/profile/InstrProfilingValue.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/cfi
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/cfi/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/cfi/cfi.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/cfi/cfi_blacklist.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/interception_win.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/interception_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/interception_win.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/interception_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/interception_type_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/interception_linux.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/interception.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/interception_mac.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/interception/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/safestack
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/safestack/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/safestack/safestack.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/safestack/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_mman.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl_ppc64.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_clock.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_clock.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interface_ann.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_flags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_platform_windows.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_trace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interface.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_mutex.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_stat.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_sync.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_stat.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_symbolize.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_symbolize.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_flags.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_mutexset.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_md5.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_platform.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_update_shadow_word_inl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_mman.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_fd.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_debugging.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_fd.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_flags.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_ignoreset.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interface.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interface_java.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_ignoreset.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_mutex.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interface_java.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_vector.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_ppc_regs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan.syms.extra
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_report.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_report.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_sync.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_mutexset.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_suppressions.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_interceptors.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_defs.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_stack_trace.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_stack_trace.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_mutex_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_vector_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_unit_test_main.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_shadow_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_stack_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_dense_alloc_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_mman_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_clock_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_flags_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/unit/tsan_mutexset_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_test_util.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_test_util_posix.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_bench.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_test.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_mutex.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_posix.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_string.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_thread.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/tests/rtl/tsan_mop.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/go
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/go/buildgo.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/go/tsan_go.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/go/test.c
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/go/build.bat
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/check_cmake.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/dd
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/dd/dd_interceptors.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/dd/dd_rtl.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/dd/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/dd/dd_rtl.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/.clang-format
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/analyze_libtsan.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/check_analyze.sh
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/benchmarks
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/benchmarks/vts_many_threads_bench.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/benchmarks/start_many_threads.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/benchmarks/mini_bench_shared.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/tsan/benchmarks/mini_bench_local.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_handlers.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_type_hash_win.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/CMakeLists.txt
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_handlers.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_init.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_diag.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_init.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_diag.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan.syms.extra
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_init_standalone.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_value.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_value.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_flags.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_type_hash.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_checks.inc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_type_hash.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_platform.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_flags.cc
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_flags.h
+A    /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt/.arcconfig
+ U   /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt
+Checked out revision 264915.
 Building bootstrap compiler
-Creating directory /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap
-Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DLLVM_BINUTILS_INCDIR=/b/build/slave/linux_upload_clang/build/src/third_party/binutils/Linux_x64/Release/include -DLLVM_TARGETS_TO_BUILD=host -DCMAKE_INSTALL_PREFIX=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install -DCMAKE_C_FLAGS= -DCMAKE_CXX_FLAGS= -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/gcc -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/g++ /b/build/slave/linux_upload_clang/build/src/third_party/llvm
+Creating directory /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap
+Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DLLVM_TARGETS_TO_BUILD=host -DCMAKE_INSTALL_PREFIX=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install -DCMAKE_C_FLAGS= -DCMAKE_CXX_FLAGS= -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/gcc -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/g++ /b/build/slave/build_and_upload_clang/build/src/third_party/llvm
 -- The C compiler identification is GNU 4.8.2
 -- The CXX compiler identification is GNU 4.8.2
 -- The ASM compiler identification is GNU
--- Found assembler: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/gcc
+-- Found assembler: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/gcc
 -- Check for working C compiler using: Ninja
 -- Check for working C compiler using: Ninja -- works
 -- Detecting C compiler ABI info
@@ -114,8 +37858,6 @@
 -- Looking for sys/stat.h - found
 -- Looking for sys/time.h
 -- Looking for sys/time.h - found
--- Looking for sys/types.h
--- Looking for sys/types.h - found
 -- Looking for sys/uio.h
 -- Looking for sys/uio.h - found
 -- Looking for termios.h
@@ -290,7 +38032,7 @@
 -- Performing Test C_SUPPORTS_FDATA_SECTIONS - Success
 -- Performing Test CXX_SUPPORTS_FDATA_SECTIONS
 -- Performing Test CXX_SUPPORTS_FDATA_SECTIONS - Success
--- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.3") 
 -- Constructing LLVMBuild project information
 -- Targeting X86
 -- Clang version: 3.9.0
@@ -301,3885 +38043,3771 @@
 CMake Warning:
   Manually-specified variables were not used by the project:
 
-    LLVM_ENABLE_TIMESTAMPS
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap
+-- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap
 Running ninja
-[1/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
-[2/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntrusiveRefCntPtr.cpp.o
-[3/1876] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.c.o
-[4/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
-[5/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
-[6/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
-[7/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
-[8/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
-[9/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
-[10/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
-[11/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
-[12/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
-[13/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
-[14/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
-[15/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
-[16/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryObject.cpp.o
-[17/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
-[18/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
-[19/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
-[20/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
-[21/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
-[22/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
-[23/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
-[24/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
-[25/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
-[26/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
-[27/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SearchForAddressOfSpecialSymbol.cpp.o
-[28/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataStream.cpp.o
-[29/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
-[30/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
-[31/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
-[32/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
-[33/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
-[34/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
-[35/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
-[36/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
-[37/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StreamingMemoryObject.cpp.o
-[38/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
-[39/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Dwarf.cpp.o
-[40/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
-[41/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
-[42/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
-[43/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o
-[44/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
-[45/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
-[46/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
-[47/1876] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
-[48/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
-[49/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
-[50/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
-[51/1876] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
-[52/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
-[53/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
-[54/1876] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
-[55/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
-[56/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o
-[57/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
-[58/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
-[59/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
-[60/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
-[61/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
-[62/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
-[63/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
-[64/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
-[65/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
-[66/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
-[67/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
-[68/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
-[69/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
-[70/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
-[71/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
-[72/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
-[73/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
-[74/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
-[75/1876] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
-[76/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TimeValue.cpp.o
-[77/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
-[78/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
-[79/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
-[80/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
-[81/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
-[82/1876] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
-[83/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
-[84/1876] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
-[85/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
-[86/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
-[87/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
-[88/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
-[89/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
-[90/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
-[91/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
-[92/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
-[93/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
-[94/1876] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
-[95/1876] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
-[96/1876] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
-[97/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
-[98/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
-[99/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
-[100/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
-[101/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
-[102/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
-[103/1876] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
-[104/1876] Linking CXX static library lib/libLLVMSupport.a
-[105/1876] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
-[106/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
-[107/1876] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
-[108/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
-[109/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
-[110/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
-[111/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
-[112/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
-[113/1876] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
-[114/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
-[115/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
-[116/1876] Creating export file for LLVMHello
-[117/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
-[118/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
-[119/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParser.cpp.o
-[120/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
-[121/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParserExtension.cpp.o
-[122/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmLexer.cpp.o
-[123/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
-[124/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
-[125/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCTargetAsmParser.cpp.o
-[126/1876] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCDisassembler.cpp.o
-[127/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeEmitter.cpp.o
-[128/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
-[129/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeGenInfo.cpp.o
-[130/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
-[131/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmBackend.cpp.o
-[132/1876] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/Disassembler.cpp.o
-[133/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoCOFF.cpp.o
-[134/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
-[135/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmLexer.cpp.o
-[136/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
-[137/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
-[138/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/COFFAsmParser.cpp.o
-[139/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
-[140/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSchedule.cpp.o
-[141/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
-[142/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfo.cpp.o
-[143/1876] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
-[144/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoELF.cpp.o
-[145/1876] Linking CXX static library lib/libLLVMTableGen.a
-[146/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ConstantPools.cpp.o
-[147/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
-[148/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoDarwin.cpp.o
-[149/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInst.cpp.o
-[150/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLabel.cpp.o
-[151/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrDesc.cpp.o
-[152/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrAnalysis.cpp.o
-[153/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFObjectTargetWriter.cpp.o
-[154/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
-[155/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstPrinter.cpp.o
-[156/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachObjectTargetWriter.cpp.o
-[157/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
-[158/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCRegisterInfo.cpp.o
-[159/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLinkerOptimizationHint.cpp.o
-[160/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/DarwinAsmParser.cpp.o
-[161/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAssembler.cpp.o
-[162/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
-[163/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeView.cpp.o
-[164/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectWriter.cpp.o
-[165/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
-[166/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCTargetOptions.cpp.o
-[167/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFStreamer.cpp.o
-[168/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCExpr.cpp.o
-[169/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
-[170/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCFragment.cpp.o
-[171/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCNullStreamer.cpp.o
-[172/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSubtargetInfo.cpp.o
-[173/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmStreamer.cpp.o
-[174/1876] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCSymbolizer.cpp.o
-[175/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSection.cpp.o
-[176/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectFileInfo.cpp.o
-[177/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCDwarf.cpp.o
-[178/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCValue.cpp.o
-[179/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionCOFF.cpp.o
-[180/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbolELF.cpp.o
-[181/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionELF.cpp.o
-[182/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectStreamer.cpp.o
-[183/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachOStreamer.cpp.o
-[184/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbol.cpp.o
-[185/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/StringTableBuilder.cpp.o
-[186/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ELFObjectWriter.cpp.o
-[187/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionMachO.cpp.o
-[188/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/SubtargetFeature.cpp.o
-[189/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWinEH.cpp.o
-[190/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWin64EH.cpp.o
-[191/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/Line.cpp.o
-[192/1876] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/YAML.cpp.o
-[193/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/ListRecordBuilder.cpp.o
-[194/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/FieldListRecordBuilder.cpp.o
-[195/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCContext.cpp.o
-[196/1876] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCRelocationInfo.cpp.o
-[197/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
-[198/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MethodListRecordBuilder.cpp.o
-[199/1876] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Arg.cpp.o
-[200/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
-[201/1876] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Option.cpp.o
-[202/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MemoryTypeTableBuilder.cpp.o
-[203/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAbbreviationDeclaration.cpp.o
-[204/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeRecordBuilder.cpp.o
-[205/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCStreamer.cpp.o
-[206/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeTableBuilder.cpp.o
-[207/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
-[208/1876] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCExternalSymbolizer.cpp.o
-[209/1876] Linking CXX static library lib/libLLVMMCDisassembler.a
-[210/1876] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/ArgList.cpp.o
-[211/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAcceleratorTable.cpp.o
-[212/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeStream.cpp.o
-[213/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFStreamer.cpp.o
-[214/1876] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/OptTable.cpp.o
-[215/1876] Linking CXX static library lib/libLLVMOption.a
-[216/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugArangeSet.cpp.o
-[217/1876] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
-[218/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugMacro.cpp.o
-[219/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugAbbrev.cpp.o
-[220/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugRangeList.cpp.o
-[221/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/ELFAsmParser.cpp.o
-[222/1876] Linking CXX executable bin/llvm-tblgen
-[223/1876] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/COFFYAML.cpp.o
-[224/1876] Building Attributes.inc...
-[225/1876] Updating Attributes.inc...
-[226/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/SyntaxHighlighting.cpp.o
-[227/1876] Building AttributesCompatFunc.inc...
-[228/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/IPDBSourceFile.cpp.o
-[229/1876] Updating AttributesCompatFunc.inc...
-[230/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBInterfaceAnchors.cpp.o
-[231/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/GenericError.cpp.o
-[232/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFUnitIndex.cpp.o
-[233/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFCompileUnit.cpp.o
-[234/1876] Building Intrinsics.gen...
-[235/1876] Updating Intrinsics.gen...
-[236/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MachObjectWriter.cpp.o
-[237/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolAnnotation.cpp.o
-[238/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDB.cpp.o
-[239/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugLoc.cpp.o
-[240/1876] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/ELFYAML.cpp.o
-[241/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolBlock.cpp.o
-[242/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandDetails.cpp.o
-[243/1876] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
-[244/1876] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFObjectWriter.cpp.o
-[245/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBExtras.cpp.o
-[246/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompiland.cpp.o
-[247/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugFrame.cpp.o
-[248/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolData.cpp.o
-[249/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCustom.cpp.o
-[250/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandEnv.cpp.o
-[251/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbol.cpp.o
-[252/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFTypeUnit.cpp.o
-[253/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolExe.cpp.o
-[254/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFuncDebugStart.cpp.o
-[255/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFuncDebugEnd.cpp.o
-[256/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolLabel.cpp.o
-[257/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolPublicSymbol.cpp.o
-[258/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolThunk.cpp.o
-[259/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Comdat.cpp.o
-[260/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeArray.cpp.o
-[261/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBContext.cpp.o
-[262/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugAranges.cpp.o
-[263/1876] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeDumper.cpp.o
-[264/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFFormValue.cpp.o
-[265/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GVMaterializer.cpp.o
-[266/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugInfoEntry.cpp.o
-[267/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugLine.cpp.o
-[268/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFunc.cpp.o
-[269/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFUnit.cpp.o
-[270/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticPrinter.cpp.o
-[271/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/MDBuilder.cpp.o
-[272/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/BasicBlock.cpp.o
-[273/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRPrintingPasses.cpp.o
-[274/1876] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFContext.cpp.o
-[275/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Globals.cpp.o
-[276/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IntrinsicInst.cpp.o
-[277/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DataLayout.cpp.o
-[278/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Mangler.cpp.o
-[279/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugLoc.cpp.o
-[280/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantRange.cpp.o
-[281/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRBuilder.cpp.o
-[282/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instruction.cpp.o
-[283/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticInfo.cpp.o
-[284/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Use.cpp.o
-[285/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantFold.cpp.o
-[286/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassRegistry.cpp.o
-[287/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfo.cpp.o
-[288/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GCOV.cpp.o
-[289/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContext.cpp.o
-[290/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Statepoint.cpp.o
-[291/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Pass.cpp.o
-[292/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ModuleSummaryIndex.cpp.o
-[293/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Operator.cpp.o
-[294/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/InlineAsm.cpp.o
-[295/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o
-[296/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DIBuilder.cpp.o
-[297/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AutoUpgrade.cpp.o
-[298/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Attributes.cpp.o
-[299/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/User.cpp.o
-[300/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueSymbolTable.cpp.o
-[301/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueTypes.cpp.o
-[302/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/OptBisect.cpp.o
-[303/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/TypeFinder.cpp.o
-[304/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Module.cpp.o
-[305/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGen.cpp.o
-[306/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Function.cpp.o
-[307/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LegacyPassManager.cpp.o
-[308/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BuiltinGCs.cpp.o
-[309/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeFloatTypes.cpp.o
-[310/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassManager.cpp.o
-[311/1876] Building CXX object lib/IRReader/CMakeFiles/LLVMIRReader.dir/IRReader.cpp.o
-[312/1876] Linking CXX static library lib/libLLVMIRReader.a
-[313/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Core.cpp.o
-[314/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AllocationOrder.cpp.o
-[315/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BasicTargetTransformInfo.cpp.o
-[316/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instructions.cpp.o
-[317/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Constants.cpp.o
-[318/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfoMetadata.cpp.o
-[319/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AsmWriter.cpp.o
-[320/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Type.cpp.o
-[321/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContextImpl.cpp.o
-[322/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DeadMachineInstructionElim.cpp.o
-[323/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Value.cpp.o
-[324/1876] Building X86GenAsmWriter1.inc...
-[325/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EdgeBundles.cpp.o
-[326/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DetectDeadLanes.cpp.o
-[327/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AtomicExpandPass.cpp.o
-[328/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CallingConvLower.cpp.o
-[329/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCStrategy.cpp.o
-[330/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CalcSpillWeights.cpp.o
-[331/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadataPrinter.cpp.o
-[332/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DwarfEHPrepare.cpp.o
-[333/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandISelPseudos.cpp.o
-[334/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Analysis.cpp.o
-[335/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterleavedAccessPass.cpp.o
-[336/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/EfficiencySanitizer.cpp.o
-[337/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DFAPacketizer.cpp.o
-[338/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandPostRAPseudos.cpp.o
-[339/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CriticalAntiDepBreaker.cpp.o
-[340/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeIntegerTypes.cpp.o
-[341/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FuncletLayout.cpp.o
-[342/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadata.cpp.o
-[343/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExecutionDepsFix.cpp.o
-[344/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EarlyIfConversion.cpp.o
-[345/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o
-[346/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FaultMaps.cpp.o
-[347/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BranchFolding.cpp.o
-[348/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterferenceCache.cpp.o
-[349/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LatencyPriorityQueue.cpp.o
-[350/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Metadata.cpp.o
-[351/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IntrinsicLowering.cpp.o
-[352/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GlobalMerge.cpp.o
-[353/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCRootLowering.cpp.o
-[354/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ImplicitNullChecks.cpp.o
-[355/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LivePhysRegs.cpp.o
-[356/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LowerEmuTLS.cpp.o
-[357/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRegMatrix.cpp.o
-[358/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveStackAnalysis.cpp.o
-[359/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LexicalScopes.cpp.o
-[360/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBranchProbabilityInfo.cpp.o
-[361/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalUnion.cpp.o
-[362/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LocalStackSlotAllocation.cpp.o
-[363/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeCalc.cpp.o
-[364/1876] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Verifier.cpp.o
-[365/1876] Linking CXX static library lib/libLLVMCore.a
-[366/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeEdit.cpp.o
-[367/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstructionCombining.cpp.o
-[368/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveInterval.cpp.o
-[369/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveVariables.cpp.o
-[370/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugValues.cpp.o
-[371/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePassRegistry.cpp.o
-[372/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCopyPropagation.cpp.o
-[373/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfoImpls.cpp.o
-[374/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IfConversion.cpp.o
-[375/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalAnalysis.cpp.o
-[376/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCombiner.cpp.o
-[377/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o
-[378/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPrinterPass.cpp.o
-[379/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockFrequencyInfo.cpp.o
-[380/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLICM.cpp.o
-[381/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominanceFrontier.cpp.o
-[382/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionAnalysis.cpp.o
-[383/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LLVMTargetMachine.cpp.o
-[384/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstrBundle.cpp.o
-[385/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InlineSpiller.cpp.o
-[386/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugVariables.cpp.o
-[387/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCSE.cpp.o
-[388/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPass.cpp.o
-[389/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominators.cpp.o
-[390/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PatchableFunction.cpp.o
-[391/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBasicBlock.cpp.o
-[392/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegisterInfo.cpp.o
-[393/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIEliminationUtils.cpp.o
-[394/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ParallelCG.cpp.o
-[395/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockPlacement.cpp.o
-[396/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/OptimizePHIs.cpp.o
-[397/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/VirtRegMap.cpp.o
-[398/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrintingPass.cpp.o
-[399/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRAHazardRecognizer.cpp.o
-[400/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PreISelIntrinsicLowering.cpp.o
-[401/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PseudoSourceValue.cpp.o
-[402/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePostDominators.cpp.o
-[403/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSSAUpdater.cpp.o
-[404/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfo.cpp.o
-[405/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLoopInfo.cpp.o
-[406/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScoreboardHazardRecognizer.cpp.o
-[407/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Passes.cpp.o
-[408/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ProcessImplicitDefs.cpp.o
-[409/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSink.cpp.o
-[410/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineTraceMetrics.cpp.o
-[411/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstr.cpp.o
-[412/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegionInfo.cpp.o
-[413/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBase.cpp.o
-[414/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterClassInfo.cpp.o
-[415/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunction.cpp.o
-[416/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRASchedulerList.cpp.o
-[417/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PeepholeOptimizer.cpp.o
-[418/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIElimination.cpp.o
-[419/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShadowStackGCLowering.cpp.o
-[420/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMapLivenessAnalysis.cpp.o
-[421/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBasic.cpp.o
-[422/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterScavenging.cpp.o
-[423/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineVerifier.cpp.o
-[424/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SpillPlacement.cpp.o
-[425/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SlotIndexes.cpp.o
-[426/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SjLjEHPrepare.cpp.o
-[427/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAG.cpp.o
-[428/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGPrinter.cpp.o
-[429/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterPressure.cpp.o
-[430/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetFrameLoweringImpl.cpp.o
-[431/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocFast.cpp.o
-[432/1876] Linking CXX static library lib/libLLVMMC.a
-[433/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetOptionsImpl.cpp.o
-[434/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PrologEpilogInserter.cpp.o
-[435/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrinter.cpp.o
-[436/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineScheduler.cpp.o
-[437/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShrinkWrap.cpp.o
-[438/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplication.cpp.o
-[439/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetSchedule.cpp.o
-[440/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SafeStack.cpp.o
-[441/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackProtector.cpp.o
-[442/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterCoalescer.cpp.o
-[443/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetRegisterInfo.cpp.o
-[444/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMaps.cpp.o
-[445/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackSlotColoring.cpp.o
-[446/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringObjectFileImpl.cpp.o
-[447/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGInstrs.cpp.o
-[448/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplicator.cpp.o
-[449/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetInstrInfo.cpp.o
-[450/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocGreedy.cpp.o
-[451/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGTargetInfo.cpp.o
-[452/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocPBQP.cpp.o
-[453/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SplitKit.cpp.o
-[454/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o
-[455/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/UnreachableBlockElim.cpp.o
-[456/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TwoAddressInstructionPass.cpp.o
-[457/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackColoring.cpp.o
-[458/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypes.cpp.o
-[459/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypesGeneric.cpp.o
-[460/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ResourcePriorityQueue.cpp.o
-[461/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGVLIW.cpp.o
-[462/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorOps.cpp.o
-[463/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AddressPool.cpp.o
-[464/1876] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/WinEHPrepare.cpp.o
-[465/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/InstrEmitter.cpp.o
-[466/1876] Linking CXX static library lib/libLLVMCodeGen.a
-[467/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGSDNodes.cpp.o
-[468/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGFast.cpp.o
-[469/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DbgValueHistoryCalculator.cpp.o
-[470/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ARMException.cpp.o
-[471/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGDumper.cpp.o
-[472/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FunctionLoweringInfo.cpp.o
-[473/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGPrinter.cpp.o
-[474/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGRRList.cpp.o
-[475/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterInlineAsm.cpp.o
-[476/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugLocStream.cpp.o
-[477/1876] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MILexer.cpp.o
-[478/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterDwarf.cpp.o
-[479/1876] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/GlobalISel.cpp.o
-[480/1876] Linking CXX static library lib/libLLVMGlobalISel.a
-[481/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FastISel.cpp.o
-[482/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugHandlerBase.cpp.o
-[483/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/StatepointLowering.cpp.o
-[484/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCFIException.cpp.o
-[485/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfStringPool.cpp.o
-[486/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIEHash.cpp.o
-[487/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIE.cpp.o
-[488/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorTypes.cpp.o
-[489/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ASanStackFrameLayout.cpp.o
-[490/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfExpression.cpp.o
-[491/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfAccelTable.cpp.o
-[492/1876] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitReader.cpp.o
-[493/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/OcamlGCPrinter.cpp.o
-[494/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfFile.cpp.o
-[495/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ErlangGCPrinter.cpp.o
-[496/1876] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitWriter.cpp.o
-[497/1876] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitstreamReader.cpp.o
-[498/1876] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriterPass.cpp.o
-[499/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/EHStreamer.cpp.o
-[500/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCompileUnit.cpp.o
-[501/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/WinException.cpp.o
-[502/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CmpInstAnalysis.cpp.o
-[503/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BreakCriticalEdges.cpp.o
-[504/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/AddDiscriminators.cpp.o
-[505/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InstructionNamer.cpp.o
-[506/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BypassSlowDivision.cpp.o
-[507/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CtorUtils.cpp.o
-[508/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BuildLibCalls.cpp.o
-[509/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/GlobalStatus.cpp.o
-[510/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfUnit.cpp.o
-[511/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FunctionImportUtils.cpp.o
-[512/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinter.cpp.o
-[513/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneModule.cpp.o
-[514/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/DemoteRegToStack.cpp.o
-[515/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BasicBlockUtils.cpp.o
-[516/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FlattenCFG.cpp.o
-[517/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/TargetLowering.cpp.o
-[518/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGISel.cpp.o
-[519/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/IntegerDivision.cpp.o
-[520/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/CodeViewDebug.cpp.o
-[521/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Evaluator.cpp.o
-[522/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerInvoke.cpp.o
-[523/1876] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIParser.cpp.o
-[524/1876] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/ValueEnumerator.cpp.o
-[525/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/NameAnonFunctions.cpp.o
-[526/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MetaRenamer.cpp.o
-[527/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeDAG.cpp.o
-[528/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Mem2Reg.cpp.o
-[529/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ModuleUtils.cpp.o
-[530/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CodeExtractor.cpp.o
-[531/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Utils.cpp.o
-[532/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerSwitch.cpp.o
-[533/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneFunction.cpp.o
-[534/1876] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfDebug.cpp.o
-[535/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LCSSA.cpp.o
-[536/1876] Linking CXX static library lib/libLLVMAsmPrinter.a
-[537/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SanitizerStats.cpp.o
-[538/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/UnifyFunctionExitNodes.cpp.o
-[539/1876] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIRParser.cpp.o
-[540/1876] Linking CXX static library lib/libLLVMMIRParser.a
-[541/1876] Updating X86GenAsmWriter1.inc...
-[542/1876] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriter.cpp.o
-[543/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUtils.cpp.o
-[544/1876] Linking CXX static library lib/libLLVMBitWriter.a
-[545/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyInstructions.cpp.o
-[546/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SymbolRewriter.cpp.o
-[547/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAG.cpp.o
-[548/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnrollRuntime.cpp.o
-[549/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/Instrumentation.cpp.o
-[550/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyIndVar.cpp.o
-[551/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SSAUpdater.cpp.o
-[552/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/BoundsChecking.cpp.o
-[553/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopVersioning.cpp.o
-[554/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnroll.cpp.o
-[555/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopSimplify.cpp.o
-[556/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SplitModule.cpp.o
-[557/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Local.cpp.o
-[558/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyLibCalls.cpp.o
-[559/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ValueMapper.cpp.o
-[560/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MemorySSA.cpp.o
-[561/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/InstrProfiling.cpp.o
-[562/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/PromoteMemoryToRegister.cpp.o
-[563/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InlineFunction.cpp.o
-[564/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/IndirectCallPromotion.cpp.o
-[565/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/ThreadSanitizer.cpp.o
-[566/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/GCOVProfiling.cpp.o
-[567/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/SanitizerCoverage.cpp.o
-[568/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantProp.cpp.o
-[569/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAddSub.cpp.o
-[570/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/BDCE.cpp.o
-[571/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineShifts.cpp.o
-[572/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/AlignmentFromAssumptions.cpp.o
-[573/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ADCE.cpp.o
-[574/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSelect.cpp.o
-[575/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/DAGCombiner.cpp.o
-[576/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineMulDivRem.cpp.o
-[577/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineVectorOps.cpp.o
-[578/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombinePHI.cpp.o
-[579/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineLoadStoreAlloca.cpp.o
-[580/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/FlattenCFGPass.cpp.o
-[581/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/AddressSanitizer.cpp.o
-[582/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantHoisting.cpp.o
-[583/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DCE.cpp.o
-[584/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/MemorySanitizer.cpp.o
-[585/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSimplifyDemanded.cpp.o
-[586/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/PGOInstrumentation.cpp.o
-[587/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/CorrelatedValuePropagation.cpp.o
-[588/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCasts.cpp.o
-[589/1876] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/DataFlowSanitizer.cpp.o
-[590/1876] Linking CXX static library lib/libLLVMInstrumentation.a
-[591/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAndOrXor.cpp.o
-[592/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DeadStoreElimination.cpp.o
-[593/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCalls.cpp.o
-[594/1876] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyCFG.cpp.o
-[595/1876] Linking CXX static library lib/libLLVMTransformUtils.a
-[596/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoadCombine.cpp.o
-[597/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalar.cpp.o
-[598/1876] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitcodeReader.cpp.o
-[599/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/EarlyCSE.cpp.o
-[600/1876] Linking CXX static library lib/libLLVMBitReader.a
-[601/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Float2Int.cpp.o
-[602/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerAtomic.cpp.o
-[603/1876] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGBuilder.cpp.o
-[604/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerExpectIntrinsic.cpp.o
-[605/1876] Linking CXX static library lib/libLLVMSelectionDAG.a
-[606/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInstSimplify.cpp.o
-[607/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerGuardIntrinsic.cpp.o
-[608/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/InductiveRangeCheckElimination.cpp.o
-[609/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDeletion.cpp.o
-[610/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PartiallyInlineLibCalls.cpp.o
-[611/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDataPrefetch.cpp.o
-[612/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopSimplifyCFG.cpp.o
-[613/1876] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCompares.cpp.o
-[614/1876] Linking CXX static library lib/libLLVMInstCombine.a
-[615/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MergedLoadStoreMotion.cpp.o
-[616/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/IndVarSimplify.cpp.o
-[617/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reg2Mem.cpp.o
-[618/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/JumpThreading.cpp.o
-[619/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LICM.cpp.o
-[620/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/BarrierNoopPass.cpp.o
-[621/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnrollPass.cpp.o
-[622/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInterchange.cpp.o
-[623/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopVersioningLICM.cpp.o
-[624/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDistribute.cpp.o
-[625/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ConstantMerge.cpp.o
-[626/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/NaryReassociate.cpp.o
-[627/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SpeculativeExecution.cpp.o
-[628/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopLoadElimination.cpp.o
-[629/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRotation.cpp.o
-[630/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MemCpyOptimizer.cpp.o
-[631/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopIdiomRecognize.cpp.o
-[632/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PlaceSafepoints.cpp.o
-[633/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/GVN.cpp.o
-[634/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRerollPass.cpp.o
-[635/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnswitch.cpp.o
-[636/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SimplifyCFGPass.cpp.o
-[637/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Sink.cpp.o
-[638/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ForceFunctionAttrs.cpp.o
-[639/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalarizer.cpp.o
-[640/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ElimAvailExtern.cpp.o
-[641/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ExtractGV.cpp.o
-[642/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPConstantPropagation.cpp.o
-[643/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPO.cpp.o
-[644/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PruneEH.cpp.o
-[645/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/CrossDSOCFI.cpp.o
-[646/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SCCP.cpp.o
-[647/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InferFunctionAttrs.cpp.o
-[648/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineAlways.cpp.o
-[649/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SeparateConstOffsetFromGEP.cpp.o
-[650/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StraightLineStrengthReduce.cpp.o
-[651/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/TailRecursionElimination.cpp.o
-[652/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalDCE.cpp.o
-[653/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineSimple.cpp.o
-[654/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripDeadPrototypes.cpp.o
-[655/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ScalarReplAggregates.cpp.o
-[656/1876] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/Vectorize.cpp.o
-[657/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Internalize.cpp.o
-[658/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reassociate.cpp.o
-[659/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LoopExtractor.cpp.o
-[660/1876] Building CXX object lib/Transforms/Hello/CMakeFiles/LLVMHello.dir/Hello.cpp.o
-[661/1876] Linking CXX shared module lib/LLVMHello.so
-[662/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/RewriteStatepointsForGC.cpp.o
-[663/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PassManagerBuilder.cpp.o
-[664/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StructurizeCFG.cpp.o
-[665/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PartialInlining.cpp.o
-[666/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Inliner.cpp.o
-[667/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARC.cpp.o
-[668/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionImport.cpp.o
-[669/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/DeadArgumentElimination.cpp.o
-[670/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCExpand.cpp.o
-[671/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionAttrs.cpp.o
-[672/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopStrengthReduce.cpp.o
-[673/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ArgumentPromotion.cpp.o
-[674/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCAPElim.cpp.o
-[675/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ProvenanceAnalysisEvaluator.cpp.o
-[676/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/DependencyAnalysis.cpp.o
-[677/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ProvenanceAnalysis.cpp.o
-[678/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripSymbols.cpp.o
-[679/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Analysis.cpp.o
-[680/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/PtrState.cpp.o
-[681/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/MergeFunctions.cpp.o
-[682/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCContract.cpp.o
-[683/1876] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/LinkModules.cpp.o
-[684/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalOpt.cpp.o
-[685/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/WholeProgramDevirt.cpp.o
-[686/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LowerBitSets.cpp.o
-[687/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysisEvaluator.cpp.o
-[688/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFGPrinter.cpp.o
-[689/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFG.cpp.o
-[690/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AssumptionCache.cpp.o
-[691/1876] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleProfile.cpp.o
-[692/1876] Linking CXX static library lib/libLLVMipo.a
-[693/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysis.cpp.o
-[694/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallPrinter.cpp.o
-[695/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CGSCCPassManager.cpp.o
-[696/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CostModel.cpp.o
-[697/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Delinearization.cpp.o
-[698/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasSetTracker.cpp.o
-[699/1876] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SROA.cpp.o
-[700/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BranchProbabilityInfo.cpp.o
-[701/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CaptureTracking.cpp.o
-[702/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CodeMetrics.cpp.o
-[703/1876] Linking CXX static library lib/libLLVMScalarOpts.a
-[704/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BasicAliasAnalysis.cpp.o
-[705/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfoImpl.cpp.o
-[706/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraph.cpp.o
-[707/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraphSCCPass.cpp.o
-[708/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/EHPersonalities.cpp.o
-[709/1876] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCOpts.cpp.o
-[710/1876] Linking CXX static library lib/libLLVMObjCARCOpts.a
-[711/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfo.cpp.o
-[712/1876] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/IRMover.cpp.o
-[713/1876] Linking CXX static library lib/libLLVMLinker.a
-[714/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Interval.cpp.o
-[715/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DivergenceAnalysis.cpp.o
-[716/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DominanceFrontier.cpp.o
-[717/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ConstantFolding.cpp.o
-[718/1876] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/BBVectorize.cpp.o
-[719/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstCount.cpp.o
-[720/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFLAliasAnalysis.cpp.o
-[721/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DomPrinter.cpp.o
-[722/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IVUsers.cpp.o
-[723/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IntervalPartition.cpp.o
-[724/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DemandedBits.cpp.o
-[725/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/OrderedBasicBlock.cpp.o
-[726/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IteratedDominanceFrontier.cpp.o
-[727/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDerefPrinter.cpp.o
-[728/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleDebugInfoPrinter.cpp.o
-[729/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPass.cpp.o
-[730/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Loads.cpp.o
-[731/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryLocation.cpp.o
-[732/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopUnrollAnalyzer.cpp.o
-[733/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDepPrinter.cpp.o
-[734/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InlineCost.cpp.o
-[735/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAnalysisUtils.cpp.o
-[736/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAliasAnalysis.cpp.o
-[737/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DependenceAnalysis.cpp.o
-[738/1876] Generating LLVMLTORevision.h
--- Found Subversion: /usr/bin/svn (found version "1.8.8") 
-[739/1876] Linking CXX static library lib/libLLVMMCParser.a
-[740/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Lint.cpp.o
-[741/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PtrUseVisitor.cpp.o
-[742/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCInstKind.cpp.o
-[743/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/GlobalsModRef.cpp.o
-[744/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionAliasAnalysis.cpp.o
-[745/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PHITransAddr.cpp.o
-[746/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPassManager.cpp.o
-[747/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Trace.cpp.o
-[748/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryBuiltins.cpp.o
-[749/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PostDominators.cpp.o
-[750/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPass.cpp.o
-[751/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyValueInfo.cpp.o
-[752/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleSummaryAnalysis.cpp.o
-[753/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstructionSimplify.cpp.o
-[754/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyCallGraph.cpp.o
-[755/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionNormalization.cpp.o
-[756/1876] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/SLPVectorizer.cpp.o
-[757/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/SparsePropagation.cpp.o
-[758/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopInfo.cpp.o
-[759/1876] Linking CXX static library lib/libLLVMObjectYAML.a
-[760/1876] Linking CXX static library lib/libLLVMDebugInfoCodeView.a
-[761/1876] Linking CXX static library lib/libLLVMDebugInfoDWARF.a
-[762/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TypeBasedAliasAnalysis.cpp.o
-[763/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELF.cpp.o
-[764/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Error.cpp.o
-[765/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScopedNoAliasAA.cpp.o
-[766/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPrinter.cpp.o
-[767/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryDependenceAnalysis.cpp.o
-[768/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Binary.cpp.o
-[769/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetLibraryInfo.cpp.o
-[770/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Archive.cpp.o
-[771/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetTransformInfo.cpp.o
-[772/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeCustom.cpp.o
-[773/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeBuiltin.cpp.o
-[774/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeBaseClass.cpp.o
-[775/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopAccessAnalysis.cpp.o
-[776/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ArchiveWriter.cpp.o
-[777/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeDimension.cpp.o
-[778/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/COFFObjectFile.cpp.o
-[779/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/RecordStreamer.cpp.o
-[780/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOUniversal.cpp.o
-[781/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeEnum.cpp.o
-[782/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFriend.cpp.o
-[783/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFunctionArg.cpp.o
-[784/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Object.cpp.o
-[785/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolicFile.cpp.o
-[786/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymDumper.cpp.o
-[787/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeManaged.cpp.o
-[788/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypePointer.cpp.o
-[789/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ObjectFile.cpp.o
-[790/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFunctionSig.cpp.o
-[791/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolSize.cpp.o
-[792/1876] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/LoopVectorize.cpp.o
-[793/1876] Linking CXX static library lib/libLLVMVectorize.a
-[794/1876] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/UpdateCompilerUsed.cpp.o
-[795/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/VectorUtils.cpp.o
-[796/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeTypedef.cpp.o
-[797/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeVTableShape.cpp.o
-[798/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeUDT.cpp.o
-[799/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeVTable.cpp.o
-[800/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUnknown.cpp.o
-[801/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionInfo.cpp.o
-[802/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUsingNamespace.cpp.o
-[803/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ModuleSummaryIndexObjectFile.cpp.o
-[804/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/ByteStream.cpp.o
-[805/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/ModInfo.cpp.o
-[806/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/MappedBlockStream.cpp.o
-[807/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/InfoStream.cpp.o
-[808/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/RawError.cpp.o
-[809/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/StreamReader.cpp.o
-[810/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/NameHashTable.cpp.o
-[811/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/NameMap.cpp.o
-[812/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/DbiStream.cpp.o
-[813/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/TpiStream.cpp.o
-[814/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOObjectFile.cpp.o
-[815/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/PDBFile.cpp.o
-[816/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELFObjectFile.cpp.o
-[817/1876] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/RawSession.cpp.o
-[818/1876] Linking CXX static library lib/libLLVMDebugInfoPDB.a
-[819/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionExpander.cpp.o
-[820/1876] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/DIPrinter.cpp.o
-[821/1876] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/SectionMemoryManager.cpp.o
-[822/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcError.cpp.o
-[823/1876] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/IRObjectFile.cpp.o
-[824/1876] Linking CXX static library lib/libLLVMObject.a
-[825/1876] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/GDBRegistrationListener.cpp.o
-[826/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/NullResolver.cpp.o
-[827/1876] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/TargetSelect.cpp.o
-[828/1876] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOModule.cpp.o
-[829/1876] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/SymbolizableObjectFile.cpp.o
-[830/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcRemoteTargetRPCAPI.cpp.o
-[831/1876] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RTDyldMemoryManager.cpp.o
-[832/1876] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/ThinLTOCodeGenerator.cpp.o
-[833/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/ExecutionUtils.cpp.o
-[834/1876] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/ExecutionEngineBindings.cpp.o
-[835/1876] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOCodeGenerator.cpp.o
-[836/1876] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetIntrinsicInfo.cpp.o
-[837/1876] Linking CXX static library lib/libLLVMLTO.a
-[838/1876] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetRecip.cpp.o
-[839/1876] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetSubtargetInfo.cpp.o
-[840/1876] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/Target.cpp.o
-[841/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueTracking.cpp.o
-[842/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcArchitectureSupport.cpp.o
-[843/1876] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/Interpreter.cpp.o
-[844/1876] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/Symbolize.cpp.o
-[845/1876] Linking CXX static library lib/libLLVMSymbolize.a
-[846/1876] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldCOFF.cpp.o
-[847/1876] Building CXX object lib/LineEditor/CMakeFiles/LLVMLineEditor.dir/LineEditor.cpp.o
-[848/1876] Linking CXX static library lib/libLLVMLineEditor.a
-[849/1876] Building CXX object lib/ExecutionEngine/MCJIT/CMakeFiles/LLVMMCJIT.dir/MCJIT.cpp.o
-[850/1876] Linking CXX static library lib/libLLVMMCJIT.a
-[851/1876] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachineC.cpp.o
-[852/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/IndirectionUtils.cpp.o
-[853/1876] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyld.cpp.o
-[854/1876] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/ExternalFunctions.cpp.o
-[855/1876] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldMachO.cpp.o
-[856/1876] Building Options.inc...
-[857/1876] Updating Options.inc...
-[858/1876] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/ExecutionEngine.cpp.o
-[859/1876] Building X86GenCallingConv.inc...
-[860/1876] Updating X86GenCallingConv.inc...
-[861/1876] Linking CXX static library lib/libLLVMExecutionEngine.a
-[862/1876] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldChecker.cpp.o
-[863/1876] Building C object utils/count/CMakeFiles/count.dir/count.c.o
-[864/1876] Linking C executable bin/count
-[865/1876] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetLoweringObjectFile.cpp.o
-[866/1876] Building X86GenRegisterInfo.inc...
-[867/1876] Updating X86GenRegisterInfo.inc...
-[868/1876] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProf.cpp.o
-[869/1876] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/Parser.cpp.o
-[870/1876] Creating export file for LTO
-[871/1876] Creating export file for LLVMgold
-[872/1876] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachine.cpp.o
-[873/1876] Building X86GenAsmWriter.inc...
-[874/1876] Updating X86GenAsmWriter.inc...
-[875/1876] Linking CXX static library lib/libLLVMTarget.a
-[876/1876] Building X86GenDisassemblerTables.inc...
-[877/1876] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLLexer.cpp.o
-[878/1876] Updating X86GenDisassemblerTables.inc...
-[879/1876] Building CXX object utils/not/CMakeFiles/not.dir/not.cpp.o
-[880/1876] Building CXX object utils/PerfectShuffle/CMakeFiles/llvm-PerfectShuffle.dir/PerfectShuffle.cpp.o
-[881/1876] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/ProfileSummary.cpp.o
-[882/1876] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfWriter.cpp.o
-[883/1876] Linking CXX executable bin/not
-[884/1876] Linking CXX executable bin/llvm-PerfectShuffle
-[885/1876] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/Execution.cpp.o
-[886/1876] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProf.cpp.o
-[887/1876] Linking CXX static library lib/libLLVMInterpreter.a
-[888/1876] Building Options.inc...
-[889/1876] Updating Options.inc...
-[890/1876] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfWriter.cpp.o
-[891/1876] Generating ../../../../share/scan-view/GetRadarVersion.scpt
-[892/1876] Generating ../../../../share/scan-view/FileRadar.scpt
-[893/1876] Building CXX object lib/LibDriver/CMakeFiles/LLVMLibDriver.dir/LibDriver.cpp.o
-[894/1876] Linking CXX static library lib/libLLVMLibDriver.a
-[895/1876] Generating ../../../../share/scan-view/startfile.py
-[896/1876] Generating ../../../../bin/scan-view
-[897/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcMCJITReplacement.cpp.o
-[898/1876] Generating ../../../../share/scan-view/Reporter.py
-[899/1876] Generating ../../../../share/scan-view/ScanView.py
-[900/1876] Generating ../../../../libexec/ccc-analyzer
-[901/1876] Generating ../../../../bin/scan-build
-[902/1876] Generating ../../../../share/scan-build/scanview.css
-[903/1876] Generating ../../../../share/scan-build/sorttable.js
-[904/1876] Generating ../../../../share/man/man1/scan-build.1
-[905/1876] Generating ../../../../libexec/c++-analyzer
-[906/1876] Generating ../../../../share/scan-view/bugcatcher.ico
-[907/1876] Building CXX object utils/unittest/UnitTestMain/CMakeFiles/gtest_main.dir/TestMain.cpp.o
-[908/1876] Linking CXX static library lib/libgtest_main.a
-[909/1876] Creating export file for libclang
-[910/1876] Building CXX object utils/yaml-bench/CMakeFiles/yaml-bench.dir/YAMLBench.cpp.o
-[911/1876] Building CXX object lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMappingWriter.cpp.o
-[912/1876] Building X86GenFastISel.inc...
-[913/1876] Updating X86GenFastISel.inc...
-[914/1876] Linking CXX executable bin/yaml-bench
-[915/1876] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfReader.cpp.o
-[916/1876] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfReader.cpp.o
-[917/1876] Linking CXX static library lib/libLLVMProfileData.a
-[918/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentCommandInfoEmitter.cpp.o
-[919/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentHTMLTagsEmitter.cpp.o
-[920/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp.o
-[921/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangASTNodesEmitter.cpp.o
-[922/1876] Building CXX object tools/llvm-config/CMakeFiles/llvm-config.dir/llvm-config.cpp.o
-[923/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcCBindingsStack.cpp.o
-[924/1876] Linking CXX executable bin/llvm-config
-[925/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/TableGen.cpp.o
-[926/1876] Building CXX object tools/llvm-mcmarkup/CMakeFiles/llvm-mcmarkup.dir/llvm-mcmarkup.cpp.o
-[927/1876] Linking CXX executable bin/llvm-mcmarkup
-[928/1876] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldELF.cpp.o
-[929/1876] Linking CXX static library lib/libLLVMRuntimeDyld.a
-[930/1876] Building CXX object utils/FileCheck/CMakeFiles/FileCheck.dir/FileCheck.cpp.o
-[931/1876] Linking CXX executable bin/FileCheck
-[932/1876] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2obj.cpp.o
-[933/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/BuiltinDumper.cpp.o
-[934/1876] Building CXX object lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMapping.cpp.o
-[935/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ExternalSymbolDumper.cpp.o
-[936/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangSACheckersEmitter.cpp.o
-[937/1876] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/Error.cpp.o
-[938/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypedefDumper.cpp.o
-[939/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/CompilandDumper.cpp.o
-[940/1876] Building CXX object lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMappingReader.cpp.o
-[941/1876] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcCBindings.cpp.o
-[942/1876] Linking CXX static library lib/libLLVMCoverage.a
-[943/1876] Linking CXX static library lib/libLLVMOrcJIT.a
-[944/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/EnumDumper.cpp.o
-[945/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/LinePrinter.cpp.o
-[946/1876] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2coff.cpp.o
-[947/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ClassDefinitionDumper.cpp.o
-[948/1876] Building CXX object tools/sanstats/CMakeFiles/sanstats.dir/sanstats.cpp.o
-[949/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/FunctionDumper.cpp.o
-[950/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypeDumper.cpp.o
-[951/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/VariableDumper.cpp.o
-[952/1876] Building CXX object tools/llvm-dwarfdump/CMakeFiles/llvm-dwarfdump.dir/llvm-dwarfdump.cpp.o
-[953/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangDiagnosticsEmitter.cpp.o
-[954/1876] Linking CXX executable bin/sanstats
-[955/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFImportDumper.cpp.o
-[956/1876] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/llvm-cov.cpp.o
-[957/1876] Building CXX object tools/llvm-size/CMakeFiles/llvm-size.dir/llvm-size.cpp.o
-[958/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Error.cpp.o
-[959/1876] Linking CXX executable bin/llvm-dwarfdump
-[960/1876] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/obj2yaml.cpp.o
-[961/1876] Building CXX object tools/llvm-dis/CMakeFiles/llvm-dis.dir/llvm-dis.cpp.o
-[962/1876] Creating export file for BugpointPasses
-[963/1876] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolution.cpp.o
-[964/1876] Linking CXX static library lib/libLLVMAnalysis.a
-[965/1876] Linking CXX executable bin/llvm-size
-[966/1876] Linking CXX executable bin/llvm-dis
-[967/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMAttributeParser.cpp.o
-[968/1876] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/llvm-pdbdump.cpp.o
-[969/1876] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageSummaryInfo.cpp.o
-[970/1876] Linking CXX executable bin/llvm-pdbdump
-[971/1876] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/coff2yaml.cpp.o
-[972/1876] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageFilters.cpp.o
-[973/1876] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/gcov.cpp.o
-[974/1876] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googletest/src/gtest-all.cc.o
-[975/1876] Building X86GenDAGISel.inc...
-[976/1876] Linking CXX static library lib/libgtest.a
-[977/1876] Updating X86GenDAGISel.inc...
-[978/1876] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/TestingSupport.cpp.o
-[979/1876] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageReport.cpp.o
-[980/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ObjDumper.cpp.o
-[981/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/NeonEmitter.cpp.o
-[982/1876] Building CXX object tools/llvm-profdata/CMakeFiles/llvm-profdata.dir/llvm-profdata.cpp.o
-[983/1876] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2elf.cpp.o
-[984/1876] Linking CXX executable bin/yaml2obj
-[985/1876] Linking CXX executable bin/llvm-profdata
-[986/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMWinEHPrinter.cpp.o
-[987/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Win64EHDumper.cpp.o
-[988/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/llvm-readobj.cpp.o
-[989/1876] Building CXX object tools/llvm-symbolizer/CMakeFiles/llvm-symbolizer.dir/llvm-symbolizer.cpp.o
-[990/1876] Building X86GenSubtargetInfo.inc...
-[991/1876] Updating X86GenSubtargetInfo.inc...
-[992/1876] Linking CXX executable bin/llvm-symbolizer
-[993/1876] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangAttrEmitter.cpp.o
-[994/1876] Linking CXX executable bin/clang-tblgen
-[995/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/MachODumper.cpp.o
-[996/1876] Building CommentHTMLNamedCharacterReferences.inc...
-[997/1876] Building CommentHTMLTags.inc...
-[998/1876] Building CommentHTMLTagsProperties.inc...
-[999/1876] Updating CommentHTMLNamedCharacterReferences.inc...
-[1000/1876] Building CommentCommandList.inc...
-[1001/1876] Updating CommentHTMLTags.inc...
-[1002/1876] Building CommentNodes.inc...
-[1003/1876] Building CommentCommandInfo.inc...
-[1004/1876] Updating CommentHTMLTagsProperties.inc...
-[1005/1876] Building StmtNodes.inc...
-[1006/1876] Updating CommentCommandList.inc...
-[1007/1876] Updating CommentNodes.inc...
-[1008/1876] Building DeclNodes.inc...
-[1009/1876] Updating CommentCommandInfo.inc...
-[1010/1876] Updating StmtNodes.inc...
-[1011/1876] Updating DeclNodes.inc...
-[1012/1876] Copying clang's vadefs.h...
-[1013/1876] Building AttrImpl.inc...
-[1014/1876] Building AttrTemplateInstantiate.inc...
-[1015/1876] Building Attrs.inc...
-[1016/1876] Updating AttrImpl.inc...
-[1017/1876] Building AttrHasAttributeImpl.inc...
-[1018/1876] Building AttrParserStringSwitches.inc...
-[1019/1876] Building AttrParsedAttrList.inc...
-[1020/1876] Updating AttrTemplateInstantiate.inc...
-[1021/1876] Updating AttrHasAttributeImpl.inc...
-[1022/1876] Updating Attrs.inc...
-[1023/1876] Updating AttrParserStringSwitches.inc...
-[1024/1876] Building AttrList.inc...
-[1025/1876] Building AttrVisitor.inc...
-[1026/1876] Updating AttrParsedAttrList.inc...
-[1027/1876] Building AttrDump.inc...
-[1028/1876] Building arm_neon.inc...
-[1029/1876] Updating AttrList.inc...
-[1030/1876] Updating AttrVisitor.inc...
-[1031/1876] Building AttrParsedAttrKinds.inc...
-[1032/1876] Building Checkers.inc...
-[1033/1876] Updating AttrDump.inc...
-[1034/1876] Building AttrPCHRead.inc...
-[1035/1876] Updating arm_neon.inc...
-[1036/1876] Updating AttrParsedAttrKinds.inc...
-[1037/1876] Updating AttrPCHRead.inc...
-[1038/1876] Building AttrPCHWrite.inc...
-[1039/1876] Building AttrParsedAttrImpl.inc...
-[1040/1876] Building AttrSpellingListIndex.inc...
-[1041/1876] Updating Checkers.inc...
-[1042/1876] Updating AttrPCHWrite.inc...
-[1043/1876] Copying clang's adxintrin.h...
-[1044/1876] Updating AttrSpellingListIndex.inc...
-[1045/1876] Updating AttrParsedAttrImpl.inc...
-[1046/1876] Copying clang's avx2intrin.h...
-[1047/1876] Copying clang's avx512cdintrin.h...
-[1048/1876] Copying clang's avx512pfintrin.h...
-[1049/1876] Copying clang's avx512vlcdintrin.h...
-[1050/1876] Copying clang's avx512bwintrin.h...
-[1051/1876] Building DiagnosticIndexName.inc...
-[1052/1876] Copying clang's avx512fintrin.h...
-[1053/1876] Copying clang's avx512erintrin.h...
-[1054/1876] Copying clang's arm_acle.h...
-[1055/1876] Updating DiagnosticIndexName.inc...
-[1056/1876] Copying clang's avx512dqintrin.h...
-[1057/1876] Copying clang's avx512vldqintrin.h...
-[1058/1876] Building DiagnosticSerializationKinds.inc...
-[1059/1876] Building DiagnosticLexKinds.inc...
-[1060/1876] Copying clang's avx512vlbwintrin.h...
-[1061/1876] Copying clang's avx512vbmiintrin.h...
-[1062/1876] Copying clang's avx512vlintrin.h...
-[1063/1876] Building DiagnosticCommentKinds.inc...
-[1064/1876] Building DiagnosticFrontendKinds.inc...
-[1065/1876] Updating DiagnosticSerializationKinds.inc...
-[1066/1876] Building DiagnosticDriverKinds.inc...
-[1067/1876] Copying clang's pkuintrin.h...
-[1068/1876] Copying clang's bmi2intrin.h...
-[1069/1876] Updating DiagnosticLexKinds.inc...
-[1070/1876] Copying clang's __clang_cuda_math_forward_declares.h...
-[1071/1876] Updating DiagnosticCommentKinds.inc...
-[1072/1876] Updating DiagnosticFrontendKinds.inc...
-[1073/1876] Building DiagnosticAnalysisKinds.inc...
-[1074/1876] Copying clang's __clang_cuda_cmath.h...
-[1075/1876] Copying clang's ammintrin.h...
-[1076/1876] Copying clang's bmiintrin.h...
-[1077/1876] Updating DiagnosticDriverKinds.inc...
-[1078/1876] Building DiagnosticParseKinds.inc...
-[1079/1876] Copying clang's htmintrin.h...
-[1080/1876] Copying clang's immintrin.h...
-[1081/1876] Copying clang's htmxlintrin.h...
-[1082/1876] Copying clang's ia32intrin.h...
-[1083/1876] Building DiagnosticASTKinds.inc...
-[1084/1876] Building DiagnosticGroups.inc...
-[1085/1876] Copying clang's altivec.h...
-[1086/1876] Updating DiagnosticAnalysisKinds.inc...
-[1087/1876] Copying clang's cpuid.h...
-[1088/1876] Copying clang's cuda_builtin_vars.h...
-[1089/1876] Copying clang's emmintrin.h...
-[1090/1876] Copying clang's f16cintrin.h...
-[1091/1876] Copying clang's avxintrin.h...
-[1092/1876] Updating DiagnosticParseKinds.inc...
-[1093/1876] Copying clang's __clang_cuda_runtime_wrapper.h...
-[1094/1876] Copying clang's fmaintrin.h...
-[1095/1876] Updating DiagnosticASTKinds.inc...
-[1096/1876] Copying clang's fma4intrin.h...
-[1097/1876] Copying clang's tbmintrin.h...
-[1098/1876] Copying clang's fxsrintrin.h...
-[1099/1876] Copying clang's Intrin.h...
-[1100/1876] Updating DiagnosticGroups.inc...
-[1101/1876] Copying clang's float.h...
-[1102/1876] Copying clang's iso646.h...
-[1103/1876] Copying clang's nmmintrin.h...
-[1104/1876] Copying clang's prfchwintrin.h...
-[1105/1876] Copying clang's mmintrin.h...
-[1106/1876] Copying clang's avx512vbmivlintrin.h...
-[1107/1876] Copying clang's popcntintrin.h...
-[1108/1876] Copying clang's limits.h...
-[1109/1876] Copying clang's lzcntintrin.h...
-[1110/1876] Copying clang's mm_malloc.h...
-[1111/1876] Copying clang's module.modulemap...
-[1112/1876] Copying clang's mm3dnow.h...
-[1113/1876] Copying clang's stdatomic.h...
-[1114/1876] Copying clang's stdbool.h...
-[1115/1876] Copying clang's stddef.h...
-[1116/1876] Copying clang's shaintrin.h...
-[1117/1876] Copying clang's s390intrin.h...
-[1118/1876] Copying clang's smmintrin.h...
-[1119/1876] Copying clang's pmmintrin.h...
-[1120/1876] Copying clang's __stddef_max_align_t.h...
-[1121/1876] Copying clang's stdint.h...
-[1122/1876] Building DiagnosticCommonKinds.inc...
-[1123/1876] Copying clang's stdnoreturn.h...
-[1124/1876] Copying clang's tgmath.h...
-[1125/1876] Copying clang's wmmintrin.h...
-[1126/1876] Copying clang's x86intrin.h...
-[1127/1876] Copying clang's rtmintrin.h...
-[1128/1876] Copying clang's xmmintrin.h...
-[1129/1876] Copying clang's varargs.h...
-[1130/1876] Copying clang's tmmintrin.h...
-[1131/1876] Copying clang's unwind.h...
-[1132/1876] Copying clang's xsavecintrin.h...
-[1133/1876] Copying clang's xsavesintrin.h...
-[1134/1876] Updating DiagnosticCommonKinds.inc...
-[1135/1876] Copying clang's stdalign.h...
-[1136/1876] Copying clang's avx512ifmavlintrin.h...
-[1137/1876] Copying clang's __wmmintrin_aes.h...
-[1138/1876] Copying clang's xtestintrin.h...
-[1139/1876] Copying clang's rdseedintrin.h...
-[1140/1876] Copying clang's avx512ifmaintrin.h...
-[1141/1876] Copying clang's stdarg.h...
-[1142/1876] Copying clang's xsaveintrin.h...
-[1143/1876] Copying clang's __wmmintrin_pclmul.h...
-[1144/1876] Copying clang's xsaveoptintrin.h...
-[1145/1876] Copying clang's xopintrin.h...
-[1146/1876] Copying clang's inttypes.h...
-[1147/1876] Copying clang's vecintrin.h...
-[1148/1876] Building DiagnosticSemaKinds.inc...
-[1149/1876] Updating DiagnosticSemaKinds.inc...
-[1150/1876] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CodeCoverage.cpp.o
-[1151/1876] Generating SVNVersion.inc
--- Found Subversion: /usr/bin/svn (found version "1.8.8") 
-[1152/1876] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/SourceCoverageView.cpp.o
-[1153/1876] Building arm_neon.h...
-[1154/1876] Updating arm_neon.h...
-[1155/1876] Copying clang's arm_neon.h...
-[1156/1876] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/elf2yaml.cpp.o
-[1157/1876] Building X86GenInstrInfo.inc...
-[1158/1876] Updating X86GenInstrInfo.inc...
-[1159/1876] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLParser.cpp.o
-[1160/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/CharInfo.cpp.o
-[1161/1876] Linking CXX static library lib/libLLVMAsmParser.a
-[1162/1876] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/RewriteRope.cpp.o
-[1163/1876] Building CXX object tools/llvm-stress/CMakeFiles/llvm-stress.dir/llvm-stress.cpp.o
-[1164/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/HeaderMap.cpp.o
-[1165/1876] Building CXX object tools/llvm-bcanalyzer/CMakeFiles/llvm-bcanalyzer.dir/llvm-bcanalyzer.cpp.o
-[1166/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/DiagnosticOptions.cpp.o
-[1167/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPCallbacks.cpp.o
-[1168/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPConditionalDirectiveRecord.cpp.o
-[1169/1876] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/TokenRewriter.cpp.o
-[1170/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Builtins.cpp.o
-[1171/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/OperatorPrecedence.cpp.o
-[1172/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/LangOptions.cpp.o
-[1173/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/ObjCRuntime.cpp.o
-[1174/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/FileSystemStatCache.cpp.o
-[1175/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/FileRemapper.cpp.o
-[1176/1876] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/Rewriter.cpp.o
-[1177/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PreprocessorLexer.cpp.o
-[1178/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/MacroInfo.cpp.o
-[1179/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/TokenKinds.cpp.o
-[1180/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPCaching.cpp.o
-[1181/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Sanitizers.cpp.o
-[1182/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/MacroArgs.cpp.o
-[1183/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Diagnostic.cpp.o
-[1184/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/OpenMPKinds.cpp.o
-[1185/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFDumper.cpp.o
-[1186/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/DiagnosticIDs.cpp.o
-[1187/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/FileManager.cpp.o
-[1188/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Version.cpp.o
-[1189/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/VersionTuple.cpp.o
-[1190/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SanitizerBlacklist.cpp.o
-[1191/1876] Building CXX object tools/lli/ChildTarget/CMakeFiles/lli-child-target.dir/ChildTarget.cpp.o
-[1192/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/IdentifierTable.cpp.o
-[1193/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SourceLocation.cpp.o
-[1194/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/TargetInfo.cpp.o
-[1195/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Warnings.cpp.o
-[1196/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/LiteralSupport.cpp.o
-[1197/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPExpressions.cpp.o
-[1198/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/ScratchBuffer.cpp.o
-[1199/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Lexer.cpp.o
-[1200/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Module.cpp.o
-[1201/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPDirectives.cpp.o
-[1202/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ARCMTActions.cpp.o
-[1203/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/HeaderSearch.cpp.o
-[1204/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Attributes.cpp.o
-[1205/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PreprocessingRecord.cpp.o
-[1206/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/TokenConcatenation.cpp.o
-[1207/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPMacroExpansion.cpp.o
-[1208/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PTHLexer.cpp.o
-[1209/1876] Building X86GenAsmMatcher.inc...
-[1210/1876] Updating X86GenAsmMatcher.inc...
-[1211/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SourceManager.cpp.o
-[1212/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/TokenLexer.cpp.o
-[1213/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/VirtualFileSystem.cpp.o
-[1214/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPLexerChange.cpp.o
-[1215/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Pragma.cpp.o
-[1216/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTConsumer.cpp.o
-[1217/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Preprocessor.cpp.o
-In file included from /b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Lex/Preprocessor.h:35:0,
-                 from /b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/Preprocessor.cpp:28:
-/b/build/slave/linux_upload_clang/build/src/third_party/llvm/include/llvm/Support/Registry.h: In instantiation of ‘static void llvm::Registry<T>::import(llvm::sys::DynamicLibrary&, const char*) [with T = clang::PragmaHandler]’:
-/b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang/lib/Lex/Preprocessor.cpp:56:22:   required from here
-/b/build/slave/linux_upload_clang/build/src/third_party/llvm/include/llvm/Support/Registry.h:131:76: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object [enabled by default]
+[1/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
+[2/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
+[3/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
+[4/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
+[5/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
+[6/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
+[7/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
+[8/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
+[9/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
+[10/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
+[11/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
+[12/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
+[13/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
+[14/1837] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.c.o
+[15/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
+[16/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
+[17/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
+[18/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataStream.cpp.o
+[19/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
+[20/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
+[21/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
+[22/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Dwarf.cpp.o
+[23/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
+[24/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
+[25/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
+[26/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
+[27/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
+[28/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
+[29/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
+[30/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
+[31/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
+[32/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
+[33/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntrusiveRefCntPtr.cpp.o
+[34/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
+[35/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
+[36/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
+[37/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
+[38/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
+[39/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
+[40/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
+[41/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
+[42/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryObject.cpp.o
+[43/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
+[44/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
+[45/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
+[46/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
+[47/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StreamingMemoryObject.cpp.o
+[48/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
+[49/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
+[50/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
+[51/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
+[52/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
+[53/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
+[54/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
+[55/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SearchForAddressOfSpecialSymbol.cpp.o
+[56/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
+[57/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
+[58/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
+[59/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
+[60/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
+[61/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
+[62/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
+[63/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
+[64/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
+[65/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
+[66/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
+[67/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
+[68/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
+[69/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
+[70/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
+[71/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
+[72/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
+[73/1837] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
+[74/1837] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
+[75/1837] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
+[76/1837] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
+[77/1837] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
+[78/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
+[79/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
+[80/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
+[81/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
+[82/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
+[83/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
+[84/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
+[85/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
+[86/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
+[87/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
+[88/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
+[89/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
+[90/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
+[91/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
+[92/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TimeValue.cpp.o
+[93/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
+[94/1837] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
+[95/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
+[96/1837] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
+[97/1837] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
+[98/1837] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
+[99/1837] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
+[100/1837] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
+[101/1837] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
+[102/1837] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
+[103/1837] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
+[104/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
+[105/1837] Linking CXX static library lib/libLLVMSupport.a
+[106/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
+[107/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
+[108/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
+[109/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
+[110/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
+[111/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
+[112/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
+[113/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
+[114/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
+[115/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
+[116/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
+[117/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
+[118/1837] Linking CXX static library lib/libLLVMTableGen.a
+[119/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
+[120/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
+[121/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
+[122/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
+[123/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
+[124/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
+[125/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
+[126/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
+[127/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
+[128/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
+[129/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
+[130/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
+[131/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
+[132/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
+[133/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
+[134/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
+[135/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
+[136/1837] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
+[137/1837] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCSymbolizer.cpp.o
+[138/1837] Creating export file for LLVMHello
+[139/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ConstantPools.cpp.o
+[140/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmBackend.cpp.o
+[141/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ELFObjectWriter.cpp.o
+[142/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfo.cpp.o
+[143/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoELF.cpp.o
+[144/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoCOFF.cpp.o
+[145/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoDarwin.cpp.o
+[146/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAssembler.cpp.o
+[147/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmStreamer.cpp.o
+[148/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeView.cpp.o
+[149/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeEmitter.cpp.o
+[150/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeGenInfo.cpp.o
+[151/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCContext.cpp.o
+[152/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCDwarf.cpp.o
+[153/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCExpr.cpp.o
+[154/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFObjectTargetWriter.cpp.o
+[155/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFStreamer.cpp.o
+[156/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCFragment.cpp.o
+[157/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInst.cpp.o
+[158/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrDesc.cpp.o
+[159/1837] Linking CXX executable bin/llvm-tblgen
+[160/1837] Building Intrinsics.gen...
+[161/1837] Building Attributes.inc...
+[162/1837] Updating Attributes.inc...
+[163/1837] Building AttributesCompatFunc.inc...
+[164/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstPrinter.cpp.o
+[165/1837] Updating AttributesCompatFunc.inc...
+[166/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrAnalysis.cpp.o
+[167/1837] Updating Intrinsics.gen...
+[168/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCStrategy.cpp.o
+[169/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/BasicBlock.cpp.o
+[170/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Attributes.cpp.o
+[171/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AsmWriter.cpp.o
+[172/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AutoUpgrade.cpp.o
+[173/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorTypes.cpp.o
+[174/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ResourcePriorityQueue.cpp.o
+[175/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Comdat.cpp.o
+[176/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Constants.cpp.o
+[177/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantFold.cpp.o
+[178/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantRange.cpp.o
+[179/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Core.cpp.o
+[180/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DIBuilder.cpp.o
+[181/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DataLayout.cpp.o
+[182/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfo.cpp.o
+[183/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugLoc.cpp.o
+[184/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfoMetadata.cpp.o
+[185/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o
+[186/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticInfo.cpp.o
+[187/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticPrinter.cpp.o
+[188/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Function.cpp.o
+[189/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GCOV.cpp.o
+[190/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Globals.cpp.o
+[191/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GVMaterializer.cpp.o
+[192/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRBuilder.cpp.o
+[193/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/InlineAsm.cpp.o
+[194/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRPrintingPasses.cpp.o
+[195/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/MDBuilder.cpp.o
+[196/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instruction.cpp.o
+[197/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instructions.cpp.o
+[198/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IntrinsicInst.cpp.o
+[199/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContext.cpp.o
+[200/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContextImpl.cpp.o
+[201/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LegacyPassManager.cpp.o
+[202/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Mangler.cpp.o
+[203/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Metadata.cpp.o
+[204/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Module.cpp.o
+[205/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Operator.cpp.o
+[206/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ModuleSummaryIndex.cpp.o
+[207/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Pass.cpp.o
+[208/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Statepoint.cpp.o
+[209/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassManager.cpp.o
+[210/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassRegistry.cpp.o
+[211/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Type.cpp.o
+[212/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/TypeFinder.cpp.o
+[213/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Use.cpp.o
+[214/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/User.cpp.o
+[215/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Value.cpp.o
+[216/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueTypes.cpp.o
+[217/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueSymbolTable.cpp.o
+[218/1837] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Verifier.cpp.o
+[219/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Analysis.cpp.o
+[220/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AllocationOrder.cpp.o
+[221/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BasicTargetTransformInfo.cpp.o
+[222/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o
+[223/1837] Building CXX object lib/IRReader/CMakeFiles/LLVMIRReader.dir/IRReader.cpp.o
+[224/1837] Building X86GenAsmWriter1.inc...
+[225/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AtomicExpandPass.cpp.o
+[226/1837] Linking CXX static library lib/libLLVMIRReader.a
+[227/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CriticalAntiDepBreaker.cpp.o
+[228/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BranchFolding.cpp.o
+[229/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BuiltinGCs.cpp.o
+[230/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CalcSpillWeights.cpp.o
+[231/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CallingConvLower.cpp.o
+[232/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGen.cpp.o
+[233/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o
+[234/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DeadMachineInstructionElim.cpp.o
+[235/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandPostRAPseudos.cpp.o
+[236/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DFAPacketizer.cpp.o
+[237/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DwarfEHPrepare.cpp.o
+[238/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EarlyIfConversion.cpp.o
+[239/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EdgeBundles.cpp.o
+[240/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExecutionDepsFix.cpp.o
+[241/1837] Linking CXX static library lib/libLLVMCore.a
+[242/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandISelPseudos.cpp.o
+[243/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterleavedAccessPass.cpp.o
+[244/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FaultMaps.cpp.o
+[245/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FuncletLayout.cpp.o
+[246/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadata.cpp.o
+[247/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadataPrinter.cpp.o
+[248/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCRootLowering.cpp.o
+[249/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineMulDivRem.cpp.o
+[250/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombinePHI.cpp.o
+[251/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GlobalMerge.cpp.o
+[252/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IfConversion.cpp.o
+[253/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ImplicitNullChecks.cpp.o
+[254/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InlineSpiller.cpp.o
+[255/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterferenceCache.cpp.o
+[256/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalAnalysis.cpp.o
+[257/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LatencyPriorityQueue.cpp.o
+[258/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IntrinsicLowering.cpp.o
+[259/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegisterInfo.cpp.o
+[260/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LexicalScopes.cpp.o
+[261/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugValues.cpp.o
+[262/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugVariables.cpp.o
+[263/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LocalStackSlotAllocation.cpp.o
+[264/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveInterval.cpp.o
+[265/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalUnion.cpp.o
+[266/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LivePhysRegs.cpp.o
+[267/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeCalc.cpp.o
+[268/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeEdit.cpp.o
+[269/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRegMatrix.cpp.o
+[270/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveStackAnalysis.cpp.o
+[271/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveVariables.cpp.o
+[272/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LLVMTargetMachine.cpp.o
+[273/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCopyPropagation.cpp.o
+[274/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockFrequencyInfo.cpp.o
+[275/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LowerEmuTLS.cpp.o
+[276/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBasicBlock.cpp.o
+[277/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockPlacement.cpp.o
+[278/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBranchProbabilityInfo.cpp.o
+[279/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPass.cpp.o
+[280/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCombiner.cpp.o
+[281/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominanceFrontier.cpp.o
+[282/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCSE.cpp.o
+[283/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionAnalysis.cpp.o
+[284/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominators.cpp.o
+[285/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfoImpls.cpp.o
+[286/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunction.cpp.o
+[287/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPrinterPass.cpp.o
+[288/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstrBundle.cpp.o
+[289/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstr.cpp.o
+[290/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLICM.cpp.o
+[291/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLoopInfo.cpp.o
+[292/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfo.cpp.o
+[293/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePassRegistry.cpp.o
+[294/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePostDominators.cpp.o
+[295/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineTraceMetrics.cpp.o
+[296/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegionInfo.cpp.o
+[297/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineScheduler.cpp.o
+[298/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSink.cpp.o
+[299/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSSAUpdater.cpp.o
+[300/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIEliminationUtils.cpp.o
+[301/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineVerifier.cpp.o
+[302/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrinter.cpp.o
+[303/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrintingPass.cpp.o
+[304/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/OptimizePHIs.cpp.o
+[305/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ParallelCG.cpp.o
+[306/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Passes.cpp.o
+[307/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PeepholeOptimizer.cpp.o
+[308/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIElimination.cpp.o
+[309/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRASchedulerList.cpp.o
+[310/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScoreboardHazardRecognizer.cpp.o
+[311/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ProcessImplicitDefs.cpp.o
+[312/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PrologEpilogInserter.cpp.o
+[313/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PseudoSourceValue.cpp.o
+[314/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBase.cpp.o
+[315/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBasic.cpp.o
+[316/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocFast.cpp.o
+[317/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocGreedy.cpp.o
+[318/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocPBQP.cpp.o
+[319/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterClassInfo.cpp.o
+[320/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterCoalescer.cpp.o
+[321/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterPressure.cpp.o
+[322/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterScavenging.cpp.o
+[323/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SafeStack.cpp.o
+[324/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAG.cpp.o
+[325/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGInstrs.cpp.o
+[326/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMapLivenessAnalysis.cpp.o
+[327/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGPrinter.cpp.o
+[328/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShadowStackGCLowering.cpp.o
+[329/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShrinkWrap.cpp.o
+[330/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SjLjEHPrepare.cpp.o
+[331/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SlotIndexes.cpp.o
+[332/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SpillPlacement.cpp.o
+[333/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SplitKit.cpp.o
+[334/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackColoring.cpp.o
+[335/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetFrameLoweringImpl.cpp.o
+[336/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMaps.cpp.o
+[337/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackProtector.cpp.o
+[338/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackSlotColoring.cpp.o
+[339/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplication.cpp.o
+[340/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringObjectFileImpl.cpp.o
+[341/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetInstrInfo.cpp.o
+[342/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o
+[343/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TwoAddressInstructionPass.cpp.o
+[344/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetOptionsImpl.cpp.o
+[345/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetRegisterInfo.cpp.o
+[346/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetSchedule.cpp.o
+[347/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/UnreachableBlockElim.cpp.o
+[348/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/VirtRegMap.cpp.o
+[349/1837] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/WinEHPrepare.cpp.o
+[350/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/DAGCombiner.cpp.o
+[351/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FastISel.cpp.o
+[352/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/InstrEmitter.cpp.o
+[353/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FunctionLoweringInfo.cpp.o
+[354/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeDAG.cpp.o
+[355/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeFloatTypes.cpp.o
+[356/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeIntegerTypes.cpp.o
+[357/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypes.cpp.o
+[358/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypesGeneric.cpp.o
+[359/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorOps.cpp.o
+[360/1837] Linking CXX static library lib/libLLVMCodeGen.a
+[361/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELF.cpp.o
+[362/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Archive.cpp.o
+[363/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ArchiveWriter.cpp.o
+[364/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Binary.cpp.o
+[365/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGFast.cpp.o
+[366/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGRRList.cpp.o
+[367/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGSDNodes.cpp.o
+[368/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGVLIW.cpp.o
+[369/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGBuilder.cpp.o
+[370/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAG.cpp.o
+[371/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGDumper.cpp.o
+[372/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGISel.cpp.o
+[373/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGPrinter.cpp.o
+[374/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGTargetInfo.cpp.o
+[375/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/StatepointLowering.cpp.o
+[376/1837] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/TargetLowering.cpp.o
+[377/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AddressPool.cpp.o
+[378/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ARMException.cpp.o
+[379/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinter.cpp.o
+[380/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterDwarf.cpp.o
+[381/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterInlineAsm.cpp.o
+[382/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIEHash.cpp.o
+[383/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DbgValueHistoryCalculator.cpp.o
+[384/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugHandlerBase.cpp.o
+[385/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugLocStream.cpp.o
+[386/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIE.cpp.o
+[387/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfAccelTable.cpp.o
+[388/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCFIException.cpp.o
+[389/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCompileUnit.cpp.o
+[390/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfDebug.cpp.o
+[391/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfExpression.cpp.o
+[392/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfFile.cpp.o
+[393/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfStringPool.cpp.o
+[394/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfUnit.cpp.o
+[395/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/EHStreamer.cpp.o
+[396/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ErlangGCPrinter.cpp.o
+[397/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/OcamlGCPrinter.cpp.o
+[398/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/WinException.cpp.o
+[399/1837] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/CodeViewDebug.cpp.o
+[400/1837] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MILexer.cpp.o
+[401/1837] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIParser.cpp.o
+[402/1837] Linking CXX static library lib/libLLVMSelectionDAG.a
+[403/1837] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIRParser.cpp.o
+[404/1837] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/GlobalISel.cpp.o
+[405/1837] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitcodeReader.cpp.o
+[406/1837] Linking CXX static library lib/libLLVMGlobalISel.a
+[407/1837] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitReader.cpp.o
+[408/1837] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitstreamReader.cpp.o
+[409/1837] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriter.cpp.o
+[410/1837] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitWriter.cpp.o
+[411/1837] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriterPass.cpp.o
+[412/1837] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/ValueEnumerator.cpp.o
+[413/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ASanStackFrameLayout.cpp.o
+[414/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/AddDiscriminators.cpp.o
+[415/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BasicBlockUtils.cpp.o
+[416/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BreakCriticalEdges.cpp.o
+[417/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BuildLibCalls.cpp.o
+[418/1837] Linking CXX static library lib/libLLVMAsmPrinter.a
+[419/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BypassSlowDivision.cpp.o
+[420/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneFunction.cpp.o
+[421/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneModule.cpp.o
+[422/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CmpInstAnalysis.cpp.o
+[423/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CodeExtractor.cpp.o
+[424/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CtorUtils.cpp.o
+[425/1837] Linking CXX static library lib/libLLVMMIRParser.a
+[426/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/DemoteRegToStack.cpp.o
+[427/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Evaluator.cpp.o
+[428/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FlattenCFG.cpp.o
+[429/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FunctionImportUtils.cpp.o
+[430/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/GlobalStatus.cpp.o
+[431/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InlineFunction.cpp.o
+[432/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InstructionNamer.cpp.o
+[433/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/IntegerDivision.cpp.o
+[434/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LCSSA.cpp.o
+[435/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Local.cpp.o
+[436/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopSimplify.cpp.o
+[437/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnroll.cpp.o
+[438/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnrollRuntime.cpp.o
+[439/1837] Linking CXX static library lib/libLLVMBitWriter.a
+[440/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUtils.cpp.o
+[441/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopVersioning.cpp.o
+[442/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerInvoke.cpp.o
+[443/1837] Linking CXX static library lib/libLLVMBitReader.a
+[444/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerSwitch.cpp.o
+[445/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Mem2Reg.cpp.o
+[446/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MemorySSA.cpp.o
+[447/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MetaRenamer.cpp.o
+[448/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ModuleUtils.cpp.o
+[449/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/PromoteMemoryToRegister.cpp.o
+[450/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SSAUpdater.cpp.o
+[451/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SanitizerStats.cpp.o
+[452/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyCFG.cpp.o
+[453/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyIndVar.cpp.o
+[454/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyInstructions.cpp.o
+[455/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyLibCalls.cpp.o
+[456/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SplitModule.cpp.o
+[457/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SymbolRewriter.cpp.o
+[458/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/UnifyFunctionExitNodes.cpp.o
+[459/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Utils.cpp.o
+[460/1837] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ValueMapper.cpp.o
+[461/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/AddressSanitizer.cpp.o
+[462/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/BoundsChecking.cpp.o
+[463/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/DataFlowSanitizer.cpp.o
+[464/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/GCOVProfiling.cpp.o
+[465/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/MemorySanitizer.cpp.o
+[466/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/Instrumentation.cpp.o
+[467/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/InstrProfiling.cpp.o
+[468/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/PGOInstrumentation.cpp.o
+[469/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/SanitizerCoverage.cpp.o
+[470/1837] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/ThreadSanitizer.cpp.o
+[471/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstructionCombining.cpp.o
+[472/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAddSub.cpp.o
+[473/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAndOrXor.cpp.o
+[474/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCalls.cpp.o
+[475/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCasts.cpp.o
+[476/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCompares.cpp.o
+[477/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineLoadStoreAlloca.cpp.o
+[478/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSelect.cpp.o
+[479/1837] Linking CXX static library lib/libLLVMTransformUtils.a
+[480/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineShifts.cpp.o
+[481/1837] Linking CXX static library lib/libLLVMInstrumentation.a
+[482/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSimplifyDemanded.cpp.o
+[483/1837] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineVectorOps.cpp.o
+[484/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ADCE.cpp.o
+[485/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/AlignmentFromAssumptions.cpp.o
+[486/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantHoisting.cpp.o
+[487/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/BDCE.cpp.o
+[488/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DeadStoreElimination.cpp.o
+[489/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantProp.cpp.o
+[490/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/CorrelatedValuePropagation.cpp.o
+[491/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DCE.cpp.o
+[492/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/InductiveRangeCheckElimination.cpp.o
+[493/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/EarlyCSE.cpp.o
+[494/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/FlattenCFGPass.cpp.o
+[495/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Float2Int.cpp.o
+[496/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/GVN.cpp.o
+[497/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoadCombine.cpp.o
+[498/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/IndVarSimplify.cpp.o
+[499/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/JumpThreading.cpp.o
+[500/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LICM.cpp.o
+[501/1837] Linking CXX static library lib/libLLVMInstCombine.a
+[502/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDeletion.cpp.o
+[503/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDataPrefetch.cpp.o
+[504/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDistribute.cpp.o
+[505/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopIdiomRecognize.cpp.o
+[506/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInstSimplify.cpp.o
+[507/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInterchange.cpp.o
+[508/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopLoadElimination.cpp.o
+[509/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRerollPass.cpp.o
+[510/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRotation.cpp.o
+[511/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopSimplifyCFG.cpp.o
+[512/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopStrengthReduce.cpp.o
+[513/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnrollPass.cpp.o
+[514/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnswitch.cpp.o
+[515/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopVersioningLICM.cpp.o
+[516/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerAtomic.cpp.o
+[517/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerExpectIntrinsic.cpp.o
+[518/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MemCpyOptimizer.cpp.o
+[519/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MergedLoadStoreMotion.cpp.o
+[520/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/NaryReassociate.cpp.o
+[521/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PartiallyInlineLibCalls.cpp.o
+[522/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PlaceSafepoints.cpp.o
+[523/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reassociate.cpp.o
+[524/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reg2Mem.cpp.o
+[525/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalar.cpp.o
+[526/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/RewriteStatepointsForGC.cpp.o
+[527/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SCCP.cpp.o
+[528/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SROA.cpp.o
+[529/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SpeculativeExecution.cpp.o
+[530/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ScalarReplAggregates.cpp.o
+[531/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalarizer.cpp.o
+[532/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SeparateConstOffsetFromGEP.cpp.o
+[533/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SimplifyCFGPass.cpp.o
+[534/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Sink.cpp.o
+[535/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ConstantMerge.cpp.o
+[536/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StraightLineStrengthReduce.cpp.o
+[537/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StructurizeCFG.cpp.o
+[538/1837] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/TailRecursionElimination.cpp.o
+[539/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/BarrierNoopPass.cpp.o
+[540/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ArgumentPromotion.cpp.o
+[541/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/DeadArgumentElimination.cpp.o
+[542/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/CrossDSOCFI.cpp.o
+[543/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ForceFunctionAttrs.cpp.o
+[544/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ElimAvailExtern.cpp.o
+[545/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ExtractGV.cpp.o
+[546/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPConstantPropagation.cpp.o
+[547/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionAttrs.cpp.o
+[548/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionImport.cpp.o
+[549/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalDCE.cpp.o
+[550/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalOpt.cpp.o
+[551/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InferFunctionAttrs.cpp.o
+[552/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPO.cpp.o
+[553/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PassManagerBuilder.cpp.o
+[554/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineAlways.cpp.o
+[555/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineSimple.cpp.o
+[556/1837] Linking CXX static library lib/libLLVMScalarOpts.a
+[557/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Inliner.cpp.o
+[558/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Internalize.cpp.o
+[559/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LoopExtractor.cpp.o
+[560/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LowerBitSets.cpp.o
+[561/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/MergeFunctions.cpp.o
+[562/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PartialInlining.cpp.o
+[563/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripDeadPrototypes.cpp.o
+[564/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PruneEH.cpp.o
+[565/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleProfile.cpp.o
+[566/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/WholeProgramDevirt.cpp.o
+[567/1837] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripSymbols.cpp.o
+[568/1837] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/SLPVectorizer.cpp.o
+[569/1837] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/LoopVectorize.cpp.o
+[570/1837] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/BBVectorize.cpp.o
+[571/1837] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/Vectorize.cpp.o
+[572/1837] Building CXX object lib/Transforms/Hello/CMakeFiles/LLVMHello.dir/Hello.cpp.o
+[573/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARC.cpp.o
+[574/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCOpts.cpp.o
+[575/1837] Linking CXX shared module lib/LLVMHello.so
+[576/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCExpand.cpp.o
+[577/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCAPElim.cpp.o
+[578/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCContract.cpp.o
+[579/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/DependencyAnalysis.cpp.o
+[580/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ProvenanceAnalysis.cpp.o
+[581/1837] Linking CXX static library lib/libLLVMipo.a
+[582/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ProvenanceAnalysisEvaluator.cpp.o
+[583/1837] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/PtrState.cpp.o
+[584/1837] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/IRMover.cpp.o
+[585/1837] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/LinkModules.cpp.o
+[586/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysisEvaluator.cpp.o
+[587/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysis.cpp.o
+[588/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BasicAliasAnalysis.cpp.o
+[589/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DependenceAnalysis.cpp.o
+[590/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasSetTracker.cpp.o
+[591/1837] Linking CXX static library lib/libLLVMObjCARCOpts.a
+[592/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Analysis.cpp.o
+[593/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AssumptionCache.cpp.o
+[594/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfo.cpp.o
+[595/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfoImpl.cpp.o
+[596/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BranchProbabilityInfo.cpp.o
+[597/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFG.cpp.o
+[598/1837] Linking CXX static library lib/libLLVMLinker.a
+[599/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFGPrinter.cpp.o
+[600/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFLAliasAnalysis.cpp.o
+[601/1837] Linking CXX static library lib/libLLVMVectorize.a
+[602/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CGSCCPassManager.cpp.o
+[603/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraph.cpp.o
+[604/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraphSCCPass.cpp.o
+[605/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallPrinter.cpp.o
+[606/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CaptureTracking.cpp.o
+[607/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CostModel.cpp.o
+[608/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopAccessAnalysis.cpp.o
+[609/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CodeMetrics.cpp.o
+[610/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ConstantFolding.cpp.o
+[611/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DominanceFrontier.cpp.o
+[612/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Delinearization.cpp.o
+[613/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DemandedBits.cpp.o
+[614/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DivergenceAnalysis.cpp.o
+[615/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DomPrinter.cpp.o
+[616/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstructionSimplify.cpp.o
+[617/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/EHPersonalities.cpp.o
+[618/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/GlobalsModRef.cpp.o
+[619/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IVUsers.cpp.o
+[620/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InlineCost.cpp.o
+[621/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstCount.cpp.o
+[622/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IntervalPartition.cpp.o
+[623/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Interval.cpp.o
+[624/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IteratedDominanceFrontier.cpp.o
+[625/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyCallGraph.cpp.o
+[626/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyValueInfo.cpp.o
+[627/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Lint.cpp.o
+[628/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Loads.cpp.o
+[629/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopUnrollAnalyzer.cpp.o
+[630/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryDependenceAnalysis.cpp.o
+[631/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopInfo.cpp.o
+[632/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPass.cpp.o
+[633/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPassManager.cpp.o
+[634/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDepPrinter.cpp.o
+[635/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDerefPrinter.cpp.o
+[636/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/OrderedBasicBlock.cpp.o
+[637/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryBuiltins.cpp.o
+[638/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleDebugInfoPrinter.cpp.o
+[639/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryLocation.cpp.o
+[640/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAliasAnalysis.cpp.o
+[641/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAnalysisUtils.cpp.o
+[642/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionAliasAnalysis.cpp.o
+[643/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCInstKind.cpp.o
+[644/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PHITransAddr.cpp.o
+[645/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PostDominators.cpp.o
+[646/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PtrUseVisitor.cpp.o
+[647/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionInfo.cpp.o
+[648/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPass.cpp.o
+[649/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPrinter.cpp.o
+[650/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolution.cpp.o
+[651/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TypeBasedAliasAnalysis.cpp.o
+[652/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionExpander.cpp.o
+[653/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionNormalization.cpp.o
+[654/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/SparsePropagation.cpp.o
+[655/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetLibraryInfo.cpp.o
+[656/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetTransformInfo.cpp.o
+[657/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Trace.cpp.o
+[658/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScopedNoAliasAA.cpp.o
+[659/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueTracking.cpp.o
+[660/1837] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/VectorUtils.cpp.o
+[661/1837] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOModule.cpp.o
+[662/1837] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/ThinLTOCodeGenerator.cpp.o
+[663/1837] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOCodeGenerator.cpp.o
+[664/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLabel.cpp.o
+[665/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSchedule.cpp.o
+[666/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLinkerOptimizationHint.cpp.o
+[667/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachOStreamer.cpp.o
+[668/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachObjectTargetWriter.cpp.o
+[669/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCNullStreamer.cpp.o
+[670/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectFileInfo.cpp.o
+[671/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectStreamer.cpp.o
+[672/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectWriter.cpp.o
+[673/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCRegisterInfo.cpp.o
+[674/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSection.cpp.o
+[675/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionELF.cpp.o
+[676/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionCOFF.cpp.o
+[677/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCStreamer.cpp.o
+[678/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionMachO.cpp.o
+[679/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbol.cpp.o
+[680/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSubtargetInfo.cpp.o
+[681/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbolELF.cpp.o
+[682/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCValue.cpp.o
+[683/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCTargetOptions.cpp.o
+[684/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWin64EH.cpp.o
+[685/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWinEH.cpp.o
+[686/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MachObjectWriter.cpp.o
+[687/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/StringTableBuilder.cpp.o
+[688/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/SubtargetFeature.cpp.o
+[689/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFObjectWriter.cpp.o
+[690/1837] Linking CXX static library lib/libLLVMLTO.a
+[691/1837] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFStreamer.cpp.o
+[692/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParserExtension.cpp.o
+[693/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/DarwinAsmParser.cpp.o
+[694/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/COFFAsmParser.cpp.o
+[695/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
+[696/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmLexer.cpp.o
+[697/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/ELFAsmParser.cpp.o
+[698/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmLexer.cpp.o
+[699/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParser.cpp.o
+[700/1837] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCTargetAsmParser.cpp.o
+[701/1837] Linking CXX static library lib/libLLVMMC.a
+[702/1837] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/Disassembler.cpp.o
+[703/1837] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCDisassembler.cpp.o
+[704/1837] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCExternalSymbolizer.cpp.o
+[705/1837] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCRelocationInfo.cpp.o
+[706/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/COFFObjectFile.cpp.o
+[707/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ModuleSummaryIndexObjectFile.cpp.o
+[708/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELFObjectFile.cpp.o
+[709/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Error.cpp.o
+[710/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/IRObjectFile.cpp.o
+[711/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOObjectFile.cpp.o
+[712/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOUniversal.cpp.o
+[713/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Object.cpp.o
+[714/1837] Linking CXX static library lib/libLLVMAnalysis.a
+[715/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ObjectFile.cpp.o
+[716/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/RecordStreamer.cpp.o
+[717/1837] Linking CXX static library lib/libLLVMMCDisassembler.a
+[718/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolicFile.cpp.o
+[719/1837] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolSize.cpp.o
+[720/1837] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/ELFYAML.cpp.o
+[721/1837] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/COFFYAML.cpp.o
+[722/1837] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/YAML.cpp.o
+[723/1837] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Arg.cpp.o
+[724/1837] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/FieldListRecordBuilder.cpp.o
+[725/1837] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/ArgList.cpp.o
+[726/1837] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Option.cpp.o
+[727/1837] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/OptTable.cpp.o
+[728/1837] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/Line.cpp.o
+[729/1837] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/ListRecordBuilder.cpp.o
+[730/1837] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MemoryTypeTableBuilder.cpp.o
+[731/1837] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MethodListRecordBuilder.cpp.o
+[732/1837] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeRecordBuilder.cpp.o
+[733/1837] Linking CXX static library lib/libLLVMObject.a
+[734/1837] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeTableBuilder.cpp.o
+[735/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAbbreviationDeclaration.cpp.o
+[736/1837] Linking CXX static library lib/libLLVMMCParser.a
+[737/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAcceleratorTable.cpp.o
+[738/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFCompileUnit.cpp.o
+[739/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFContext.cpp.o
+[740/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugAbbrev.cpp.o
+[741/1837] Linking CXX static library lib/libLLVMObjectYAML.a
+[742/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugArangeSet.cpp.o
+[743/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugAranges.cpp.o
+[744/1837] Linking CXX static library lib/libLLVMOption.a
+[745/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugFrame.cpp.o
+[746/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugInfoEntry.cpp.o
+[747/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugLine.cpp.o
+[748/1837] Linking CXX static library lib/libLLVMDebugInfoCodeView.a
+[749/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugLoc.cpp.o
+[750/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugMacro.cpp.o
+[751/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugRangeList.cpp.o
+[752/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFFormValue.cpp.o
+[753/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFTypeUnit.cpp.o
+[754/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFUnitIndex.cpp.o
+[755/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFUnit.cpp.o
+[756/1837] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/SyntaxHighlighting.cpp.o
+[757/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/IPDBSourceFile.cpp.o
+[758/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBContext.cpp.o
+[759/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDB.cpp.o
+[760/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBExtras.cpp.o
+[761/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBInterfaceAnchors.cpp.o
+[762/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbol.cpp.o
+[763/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolAnnotation.cpp.o
+[764/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolBlock.cpp.o
+[765/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompiland.cpp.o
+[766/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandDetails.cpp.o
+[767/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandEnv.cpp.o
+[768/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCustom.cpp.o
+[769/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolData.cpp.o
+[770/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolExe.cpp.o
+[771/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFunc.cpp.o
+[772/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFuncDebugEnd.cpp.o
+[773/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFuncDebugStart.cpp.o
+[774/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolLabel.cpp.o
+[775/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolPublicSymbol.cpp.o
+[776/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolThunk.cpp.o
+[777/1837] Linking CXX static library lib/libLLVMDebugInfoDWARF.a
+[778/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeArray.cpp.o
+[779/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeBaseClass.cpp.o
+[780/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeBuiltin.cpp.o
+[781/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeCustom.cpp.o
+[782/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeDimension.cpp.o
+[783/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeEnum.cpp.o
+[784/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFriend.cpp.o
+[785/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFunctionArg.cpp.o
+[786/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFunctionSig.cpp.o
+[787/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeManaged.cpp.o
+[788/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypePointer.cpp.o
+[789/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeTypedef.cpp.o
+[790/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeUDT.cpp.o
+[791/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeVTable.cpp.o
+[792/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeVTableShape.cpp.o
+[793/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUnknown.cpp.o
+[794/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUsingNamespace.cpp.o
+[795/1837] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymDumper.cpp.o
+[796/1837] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/DIPrinter.cpp.o
+[797/1837] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/Symbolize.cpp.o
+[798/1837] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/SymbolizableObjectFile.cpp.o
+[799/1837] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/ExecutionEngine.cpp.o
+[800/1837] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/ExecutionEngineBindings.cpp.o
+[801/1837] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/GDBRegistrationListener.cpp.o
+[802/1837] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/SectionMemoryManager.cpp.o
+[803/1837] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/TargetSelect.cpp.o
+[804/1837] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/Execution.cpp.o
+[805/1837] Linking CXX static library lib/libLLVMDebugInfoPDB.a
+[806/1837] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/ExternalFunctions.cpp.o
+[807/1837] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/Interpreter.cpp.o
+[808/1837] Building CXX object lib/ExecutionEngine/MCJIT/CMakeFiles/LLVMMCJIT.dir/MCJIT.cpp.o
+[809/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/ExecutionUtils.cpp.o
+[810/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/IndirectionUtils.cpp.o
+[811/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/NullResolver.cpp.o
+[812/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcArchitectureSupport.cpp.o
+[813/1837] Linking CXX static library lib/libLLVMSymbolize.a
+[814/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcCBindings.cpp.o
+[815/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcCBindingsStack.cpp.o
+[816/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcError.cpp.o
+[817/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcMCJITReplacement.cpp.o
+[818/1837] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcRemoteTargetRPCAPI.cpp.o
+[819/1837] Linking CXX static library lib/libLLVMExecutionEngine.a
+[820/1837] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RTDyldMemoryManager.cpp.o
+[821/1837] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyld.cpp.o
+[822/1837] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldChecker.cpp.o
+[823/1837] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldCOFF.cpp.o
+[824/1837] Linking CXX static library lib/libLLVMInterpreter.a
+[825/1837] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldELF.cpp.o
+[826/1837] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldMachO.cpp.o
+[827/1837] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetLoweringObjectFile.cpp.o
+[828/1837] Linking CXX static library lib/libLLVMMCJIT.a
+[829/1837] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/Target.cpp.o
+[830/1837] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetIntrinsicInfo.cpp.o
+[831/1837] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachine.cpp.o
+[832/1837] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachineC.cpp.o
+[833/1837] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetRecip.cpp.o
+[834/1837] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetSubtargetInfo.cpp.o
+[835/1837] Building X86GenAsmWriter.inc...
+[836/1837] Building X86GenDAGISel.inc...
+[837/1837] Updating X86GenAsmWriter1.inc...
+[838/1837] Building X86GenRegisterInfo.inc...
+[839/1837] Building X86GenDisassemblerTables.inc...
+[840/1837] Building X86GenInstrInfo.inc...
+[841/1837] Building X86GenAsmMatcher.inc...
+[842/1837] Building X86GenSubtargetInfo.inc...
+[843/1837] Linking CXX static library lib/libLLVMRuntimeDyld.a
+[844/1837] Building X86GenFastISel.inc...
+[845/1837] Linking CXX static library lib/libLLVMOrcJIT.a
+[846/1837] Building X86GenCallingConv.inc...
+[847/1837] Updating X86GenAsmWriter.inc...
+[848/1837] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLLexer.cpp.o
+[849/1837] Linking CXX static library lib/libLLVMTarget.a
+[850/1837] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLParser.cpp.o
+[851/1837] Updating X86GenRegisterInfo.inc...
+[852/1837] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/Parser.cpp.o
+[853/1837] Updating X86GenCallingConv.inc...
+[854/1837] Building CXX object lib/LineEditor/CMakeFiles/LLVMLineEditor.dir/LineEditor.cpp.o
+[855/1837] Updating X86GenDisassemblerTables.inc...
+[856/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfReader.cpp.o
+[857/1837] Linking CXX static library lib/libLLVMLineEditor.a
+[858/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProf.cpp.o
+[859/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfWriter.cpp.o
+[860/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfReader.cpp.o
+[861/1837] Updating X86GenFastISel.inc...
+[862/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMapping.cpp.o
+[863/1837] Updating X86GenDAGISel.inc...
+[864/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMappingWriter.cpp.o
+[865/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMappingReader.cpp.o
+[866/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/ProfileSummary.cpp.o
+[867/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProf.cpp.o
+[868/1837] Updating X86GenSubtargetInfo.inc...
+[869/1837] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfWriter.cpp.o
+[870/1837] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o
+[871/1837] Updating X86GenInstrInfo.inc...
+[872/1837] Building CXX object utils/PerfectShuffle/CMakeFiles/llvm-PerfectShuffle.dir/PerfectShuffle.cpp.o
+[873/1837] Building CXX object utils/FileCheck/CMakeFiles/FileCheck.dir/FileCheck.cpp.o
+[874/1837] Building Options.inc...
+[875/1837] Updating Options.inc...
+[876/1837] Building CXX object lib/LibDriver/CMakeFiles/LLVMLibDriver.dir/LibDriver.cpp.o
+[877/1837] Linking CXX executable bin/llvm-PerfectShuffle
+[878/1837] Building C object utils/count/CMakeFiles/count.dir/count.c.o
+[879/1837] Building CXX object utils/not/CMakeFiles/not.dir/not.cpp.o
+[880/1837] Linking C executable bin/count
+[881/1837] Building CXX object utils/yaml-bench/CMakeFiles/yaml-bench.dir/YAMLBench.cpp.o
+[882/1837] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googletest/src/gtest-all.cc.o
+[883/1837] Building CXX object utils/unittest/UnitTestMain/CMakeFiles/gtest_main.dir/TestMain.cpp.o
+[884/1837] Linking CXX executable bin/not
+[885/1837] Linking CXX static library lib/libLLVMProfileData.a
+[886/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangASTNodesEmitter.cpp.o
+[887/1837] Creating export file for LTO
+[888/1837] Generating ../../../../share/scan-view/bugcatcher.ico
+[889/1837] Building CXX object tools/llvm-config/CMakeFiles/llvm-config.dir/llvm-config.cpp.o
+[890/1837] Linking CXX static library lib/libLLVMLibDriver.a
+[891/1837] Building CXX object tools/llvm-profdata/CMakeFiles/llvm-profdata.dir/llvm-profdata.cpp.o
+[892/1837] Linking CXX executable bin/yaml-bench
+[893/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangAttrEmitter.cpp.o
+[894/1837] Linking CXX static library lib/libgtest_main.a
+[895/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentCommandInfoEmitter.cpp.o
+[896/1837] Linking CXX static library lib/libLLVMAsmParser.a
+[897/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp.o
+[898/1837] Updating X86GenAsmMatcher.inc...
+[899/1837] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86ATTInstPrinter.cpp.o
+[900/1837] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86IntelInstPrinter.cpp.o
+[901/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ExpandPseudo.cpp.o
+[902/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86CallFrameOptimization.cpp.o
+[903/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86AsmPrinter.cpp.o
+[904/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FloatingPoint.cpp.o
+[905/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MCInstLower.cpp.o
+[906/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FastISel.cpp.o
+[907/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FrameLowering.cpp.o
+[908/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelDAGToDAG.cpp.o
+[909/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelLowering.cpp.o
+[910/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86InstrInfo.cpp.o
+[911/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MachineFunctionInfo.cpp.o
+[912/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86PadShortFunction.cpp.o
+[913/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86RegisterInfo.cpp.o
+[914/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86SelectionDAGInfo.cpp.o
+[915/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetMachine.cpp.o
+[916/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ShuffleDecodeConstantPool.cpp.o
+[917/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86WinEHState.cpp.o
+[918/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86Subtarget.cpp.o
+[919/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetObjectFile.cpp.o
+[920/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetTransformInfo.cpp.o
+[921/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86VZeroUpper.cpp.o
+[922/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupLEAs.cpp.o
+[923/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86OptimizeLEAs.cpp.o
+[924/1837] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupBWInsts.cpp.o
+[925/1837] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86Disassembler.cpp.o
+[926/1837] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmParser.cpp.o
+[927/1837] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmInstrumentation.cpp.o
+[928/1837] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86DisassemblerDecoder.cpp.o
+[929/1837] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86InstComments.cpp.o
+[930/1837] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86AsmBackend.cpp.o
+[931/1837] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCTargetDesc.cpp.o
+[932/1837] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCAsmInfo.cpp.o
+[933/1837] Linking CXX static library lib/libLLVMX86AsmPrinter.a
+[934/1837] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCCodeEmitter.cpp.o
+[935/1837] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MachObjectWriter.cpp.o
+[936/1837] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86ELFObjectWriter.cpp.o
+[937/1837] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFStreamer.cpp.o
+[938/1837] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFObjectWriter.cpp.o
+[939/1837] Building CXX object lib/Target/X86/TargetInfo/CMakeFiles/LLVMX86Info.dir/X86TargetInfo.cpp.o
+[940/1837] Linking CXX static library lib/libLLVMX86Disassembler.a
+[941/1837] Building CXX object lib/Target/X86/Utils/CMakeFiles/LLVMX86Utils.dir/X86ShuffleDecode.cpp.o
+[942/1837] Linking CXX static library lib/libLLVMPasses.a
+[943/1837] Linking CXX executable bin/FileCheck
+[944/1837] Linking CXX static library lib/libgtest.a
+[945/1837] Linking CXX executable bin/llvm-config
+[946/1837] Linking CXX executable bin/llvm-profdata
+[947/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentHTMLTagsEmitter.cpp.o
+[948/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangDiagnosticsEmitter.cpp.o
+[949/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangSACheckersEmitter.cpp.o
+[950/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/NeonEmitter.cpp.o
+[951/1837] Linking CXX static library lib/libLLVMX86Info.a
+[952/1837] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/TableGen.cpp.o
+[953/1837] Building Options.inc...
+[954/1837] Updating Options.inc...
+[955/1837] Generating ../../../../share/scan-view/GetRadarVersion.scpt
+[956/1837] Generating ../../../../share/scan-view/FileRadar.scpt
+[957/1837] Generating ../../../../share/scan-view/startfile.py
+[958/1837] Generating ../../../../bin/scan-view
+[959/1837] Generating ../../../../share/scan-view/Reporter.py
+[960/1837] Generating ../../../../share/scan-view/ScanView.py
+[961/1837] Generating ../../../../share/scan-build/scanview.css
+[962/1837] Generating ../../../../share/man/man1/scan-build.1
+[963/1837] Generating ../../../../share/scan-build/sorttable.js
+[964/1837] Generating ../../../../bin/scan-build
+[965/1837] Generating ../../../../libexec/c++-analyzer
+[966/1837] Generating ../../../../libexec/ccc-analyzer
+[967/1837] Copying vtables blacklist
+[968/1837] Creating export file for libclang
+[969/1837] Building CXX object tools/llvm-bcanalyzer/CMakeFiles/llvm-bcanalyzer.dir/llvm-bcanalyzer.cpp.o
+[970/1837] Linking CXX static library lib/libLLVMX86Utils.a
+[971/1837] Building CXX object tools/llvm-stress/CMakeFiles/llvm-stress.dir/llvm-stress.cpp.o
+[972/1837] Linking CXX static library lib/libLLVMX86Desc.a
+[973/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFImportDumper.cpp.o
+[974/1837] Linking CXX static library lib/libLLVMX86AsmParser.a
+[975/1837] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2obj.cpp.o
+[976/1837] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2coff.cpp.o
+[977/1837] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2elf.cpp.o
+[978/1837] Building CXX object tools/sanstats/CMakeFiles/sanstats.dir/sanstats.cpp.o
+[979/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/EnumDumper.cpp.o
+[980/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/CompilandDumper.cpp.o
+[981/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ClassDefinitionDumper.cpp.o
+[982/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/BuiltinDumper.cpp.o
+[983/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/llvm-pdbdump.cpp.o
+[984/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypedefDumper.cpp.o
+[985/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ExternalSymbolDumper.cpp.o
+[986/1837] Linking CXX executable bin/llvm-stress
+[987/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/FunctionDumper.cpp.o
+[988/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/LinePrinter.cpp.o
+[989/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypeDumper.cpp.o
+[990/1837] Linking CXX executable bin/sanstats
+[991/1837] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/VariableDumper.cpp.o
+[992/1837] Linking CXX executable bin/clang-tblgen
+[993/1837] Building CXX object tools/verify-uselistorder/CMakeFiles/verify-uselistorder.dir/verify-uselistorder.cpp.o
+[994/1837] Building AttrImpl.inc...
+[995/1837] Updating AttrImpl.inc...
+[996/1837] Building Attrs.inc...
+[997/1837] Building StmtNodes.inc...
+[998/1837] Updating StmtNodes.inc...
+[999/1837] Building CommentNodes.inc...
+[1000/1837] Updating CommentNodes.inc...
+[1001/1837] Building DeclNodes.inc...
+[1002/1837] Updating Attrs.inc...
+[1003/1837] Updating DeclNodes.inc...
+[1004/1837] Building AttrDump.inc...
+[1005/1837] Building AttrHasAttributeImpl.inc...
+[1006/1837] Updating AttrDump.inc...
+[1007/1837] Building AttrVisitor.inc...
+[1008/1837] Updating AttrVisitor.inc...
+[1009/1837] Building CommentHTMLTagsProperties.inc...
+[1010/1837] Updating CommentHTMLTagsProperties.inc...
+[1011/1837] Building CommentCommandList.inc...
+[1012/1837] Building CommentCommandInfo.inc...
+[1013/1837] Building CommentHTMLNamedCharacterReferences.inc...
+[1014/1837] Updating AttrHasAttributeImpl.inc...
+[1015/1837] Updating CommentHTMLNamedCharacterReferences.inc...
+[1016/1837] Building CommentHTMLTags.inc...
+[1017/1837] Updating CommentHTMLTags.inc...
+[1018/1837] Updating CommentCommandInfo.inc...
+[1019/1837] Updating CommentCommandList.inc...
+[1020/1837] Building DiagnosticFrontendKinds.inc...
+[1021/1837] Building DiagnosticCommentKinds.inc...
+[1022/1837] Updating DiagnosticCommentKinds.inc...
+[1023/1837] Building DiagnosticCommonKinds.inc...
+[1024/1837] Building DiagnosticDriverKinds.inc...
+[1025/1837] Updating DiagnosticDriverKinds.inc...
+[1026/1837] Updating DiagnosticFrontendKinds.inc...
+[1027/1837] Building DiagnosticAnalysisKinds.inc...
+[1028/1837] Updating DiagnosticCommonKinds.inc...
+[1029/1837] Building DiagnosticASTKinds.inc...
+[1030/1837] Updating DiagnosticAnalysisKinds.inc...
+[1031/1837] Building DiagnosticLexKinds.inc...
+[1032/1837] Building AttrParserStringSwitches.inc...
+[1033/1837] Building DiagnosticParseKinds.inc...
+[1034/1837] Updating DiagnosticASTKinds.inc...
+[1035/1837] Building DiagnosticSemaKinds.inc...
+[1036/1837] Updating DiagnosticLexKinds.inc...
+[1037/1837] Building DiagnosticSerializationKinds.inc...
+[1038/1837] Updating DiagnosticParseKinds.inc...
+[1039/1837] Building DiagnosticIndexName.inc...
+[1040/1837] Updating DiagnosticSerializationKinds.inc...
+[1041/1837] Building DiagnosticGroups.inc...
+[1042/1837] Updating DiagnosticSemaKinds.inc...
+[1043/1837] Updating AttrParserStringSwitches.inc...
+[1044/1837] Copying clang's xsaveintrin.h...
+[1045/1837] Updating DiagnosticIndexName.inc...
+[1046/1837] Building AttrList.inc...
+[1047/1837] Building arm_neon.inc...
+[1048/1837] Updating DiagnosticGroups.inc...
+[1049/1837] Updating AttrList.inc...
+[1050/1837] Building AttrTemplateInstantiate.inc...
+[1051/1837] Building AttrPCHRead.inc...
+[1052/1837] Building AttrParsedAttrKinds.inc...
+[1053/1837] Building AttrSpellingListIndex.inc...
+[1054/1837] Updating AttrTemplateInstantiate.inc...
+[1055/1837] Updating AttrSpellingListIndex.inc...
+[1056/1837] Updating AttrPCHRead.inc...
+[1057/1837] Building AttrParsedAttrList.inc...
+[1058/1837] Updating arm_neon.inc...
+[1059/1837] Building AttrParsedAttrImpl.inc...
+[1060/1837] Updating AttrParsedAttrList.inc...
+[1061/1837] Copying clang's altivec.h...
+[1062/1837] Updating AttrParsedAttrKinds.inc...
+[1063/1837] Building AttrPCHWrite.inc...
+[1064/1837] Updating AttrParsedAttrImpl.inc...
+[1065/1837] Copying clang's ammintrin.h...
+[1066/1837] Copying clang's arm_acle.h...
+[1067/1837] Copying clang's adxintrin.h...
+[1068/1837] Copying clang's avx512erintrin.h...
+[1069/1837] Copying clang's avx512fintrin.h...
+[1070/1837] Updating AttrPCHWrite.inc...
+[1071/1837] Copying clang's avx2intrin.h...
+[1072/1837] Copying clang's avx512vlbwintrin.h...
+[1073/1837] Copying clang's avx512bwintrin.h...
+[1074/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReaderDecl.cpp.o
+[1075/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReaderStmt.cpp.o
+[1076/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriter.cpp.o
+[1077/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriterDecl.cpp.o
+[1078/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriterStmt.cpp.o
+[1079/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/GeneratePCH.cpp.o
+[1080/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/GlobalModuleIndex.cpp.o
+[1081/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/Module.cpp.o
+[1082/1837] Copying clang's avx512cdintrin.h...
+[1083/1837] Copying clang's avx512vlintrin.h...
+[1084/1837] Copying clang's avx512dqintrin.h...
+[1085/1837] Copying clang's cuda_builtin_vars.h...
+[1086/1837] Copying clang's avx512vbmiintrin.h...
+[1087/1837] Copying clang's avx512vldqintrin.h...
+[1088/1837] Building arm_neon.h...
+[1089/1837] Copying clang's pkuintrin.h...
+[1090/1837] Copying clang's avx512vbmivlintrin.h...
+[1091/1837] Copying clang's bmi2intrin.h...
+[1092/1837] Copying clang's avxintrin.h...
+[1093/1837] Copying clang's bmiintrin.h...
+[1094/1837] Copying clang's __clang_cuda_cmath.h...
+[1095/1837] Copying clang's __clang_cuda_runtime_wrapper.h...
+[1096/1837] Copying clang's emmintrin.h...
+[1097/1837] Copying clang's cpuid.h...
+[1098/1837] Copying clang's f16cintrin.h...
+[1099/1837] Copying clang's fma4intrin.h...
+[1100/1837] Copying clang's float.h...
+[1101/1837] Copying clang's fxsrintrin.h...
+[1102/1837] Copying clang's fmaintrin.h...
+[1103/1837] Copying clang's unwind.h...
+[1104/1837] Copying clang's htmxlintrin.h...
+[1105/1837] Copying clang's htmintrin.h...
+[1106/1837] Copying clang's immintrin.h...
+[1107/1837] Copying clang's ia32intrin.h...
+[1108/1837] Copying clang's inttypes.h...
+[1109/1837] Copying clang's Intrin.h...
+[1110/1837] Copying clang's lzcntintrin.h...
+[1111/1837] Copying clang's mmintrin.h...
+[1112/1837] Copying clang's mm_malloc.h...
+[1113/1837] Copying clang's iso646.h...
+[1114/1837] Copying clang's limits.h...
+[1115/1837] Copying clang's module.modulemap...
+[1116/1837] Copying clang's s390intrin.h...
+[1117/1837] Copying clang's shaintrin.h...
+[1118/1837] Copying clang's smmintrin.h...
+[1119/1837] Copying clang's popcntintrin.h...
+[1120/1837] Copying clang's prfchwintrin.h...
+[1121/1837] Copying clang's mm3dnow.h...
+[1122/1837] Copying clang's nmmintrin.h...
+[1123/1837] Copying clang's pmmintrin.h...
+[1124/1837] Copying clang's rdseedintrin.h...
+[1125/1837] Copying clang's rtmintrin.h...
+[1126/1837] Copying clang's stdalign.h...
+[1127/1837] Copying clang's stdarg.h...
+[1128/1837] Copying clang's stdatomic.h...
+[1129/1837] Copying clang's stdbool.h...
+[1130/1837] Copying clang's stddef.h...
+[1131/1837] Copying clang's stdint.h...
+[1132/1837] Copying clang's varargs.h...
+[1133/1837] Copying clang's vecintrin.h...
+[1134/1837] Copying clang's __wmmintrin_aes.h...
+[1135/1837] Copying clang's tgmath.h...
+[1136/1837] Copying clang's tmmintrin.h...
+[1137/1837] Copying clang's __stddef_max_align_t.h...
+[1138/1837] Copying clang's stdnoreturn.h...
+[1139/1837] Copying clang's tbmintrin.h...
+[1140/1837] Copying clang's vadefs.h...
+[1141/1837] Copying clang's wmmintrin.h...
+[1142/1837] Copying clang's __wmmintrin_pclmul.h...
+[1143/1837] Copying clang's x86intrin.h...
+[1144/1837] Copying clang's xmmintrin.h...
+[1145/1837] Copying clang's xopintrin.h...
+[1146/1837] Copying clang's xsaveoptintrin.h...
+[1147/1837] Copying clang's xsavesintrin.h...
+[1148/1837] Copying clang's xtestintrin.h...
+[1149/1837] Copying clang's avx512ifmaintrin.h...
+[1150/1837] Copying clang's avx512ifmavlintrin.h...
+[1151/1837] Copying clang's xsavecintrin.h...
+[1152/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/HeaderMap.cpp.o
+[1153/1837] Updating arm_neon.h...
+[1154/1837] Copying clang's arm_neon.h...
+[1155/1837] Generating SVNVersion.inc
+-- Found Subversion: /usr/bin/svn (found version "1.6.17") 
+[1156/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Attributes.cpp.o
+[1157/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Builtins.cpp.o
+[1158/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/CharInfo.cpp.o
+[1159/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/ObjCRuntime.cpp.o
+[1160/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Diagnostic.cpp.o
+[1161/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/DiagnosticIDs.cpp.o
+[1162/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/DiagnosticOptions.cpp.o
+[1163/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/FileManager.cpp.o
+[1164/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/FileSystemStatCache.cpp.o
+[1165/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/IdentifierTable.cpp.o
+[1166/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/LangOptions.cpp.o
+[1167/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Module.cpp.o
+[1168/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/TokenKinds.cpp.o
+[1169/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/OpenMPKinds.cpp.o
+[1170/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/OperatorPrecedence.cpp.o
+[1171/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SanitizerBlacklist.cpp.o
+[1172/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Sanitizers.cpp.o
+[1173/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SourceLocation.cpp.o
+[1174/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SourceManager.cpp.o
+[1175/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/TargetInfo.cpp.o
+[1176/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Targets.cpp.o
+[1177/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/VersionTuple.cpp.o
+[1178/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Version.cpp.o
+[1179/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/VirtualFileSystem.cpp.o
+[1180/1837] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Warnings.cpp.o
+[1181/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/HeaderSearch.cpp.o
+[1182/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/LiteralSupport.cpp.o
+[1183/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseCXXInlineMethods.cpp.o
+[1184/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Lexer.cpp.o
+[1185/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/MacroArgs.cpp.o
+[1186/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/MacroInfo.cpp.o
+[1187/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/ModuleMap.cpp.o
+[1188/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPCaching.cpp.o
+[1189/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPCallbacks.cpp.o
+[1190/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PreprocessorLexer.cpp.o
+[1191/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPMacroExpansion.cpp.o
+[1192/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPConditionalDirectiveRecord.cpp.o
+[1193/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPDirectives.cpp.o
+[1194/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPExpressions.cpp.o
+[1195/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPLexerChange.cpp.o
+[1196/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PreprocessingRecord.cpp.o
+[1197/1837] Linking CXX static library lib/libLLVMX86CodeGen.a
+[1198/1837] Building CXX object tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
+[1199/1837] Building CXX object tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o
+[1200/1837] Building CXX object tools/llvm-ar/CMakeFiles/llvm-ar.dir/llvm-ar.cpp.o
+[1201/1837] Linking CXX static library lib/libclangBasic.a
+[1202/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PTHLexer.cpp.o
+[1203/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Pragma.cpp.o
+[1204/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Preprocessor.cpp.o
+[1205/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/TokenConcatenation.cpp.o
+[1206/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/ScratchBuffer.cpp.o
+[1207/1837] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/TokenLexer.cpp.o
+[1208/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseAST.cpp.o
+[1209/1837] Linking CXX executable bin/llvm-ar
+[1210/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseDeclCXX.cpp.o
+[1211/1837] Generating ../../bin/llvm-ranlib
+[1212/1837] Generating ../../bin/llvm-lib
+[1213/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseExprCXX.cpp.o
+[1214/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseDecl.cpp.o
+[1215/1837] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Diagnostics.cpp.o
+[1216/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseExpr.cpp.o
+[1217/1837] Linking CXX shared library lib/libLTO.so
+[1218/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseOpenMP.cpp.o
+[1219/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseInit.cpp.o
+[1220/1837] Linking CXX static library lib/libclangLex.a
+[1221/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseObjc.cpp.o
+[1222/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseStmtAsm.cpp.o
+[1223/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParsePragma.cpp.o
+[1224/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseStmt.cpp.o
+[1225/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseTemplate.cpp.o
+[1226/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseTentative.cpp.o
+[1227/1837] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/Parser.cpp.o
+[1228/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/APValue.cpp.o
+[1229/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CXXInheritance.cpp.o
+[1230/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTConsumer.cpp.o
+[1231/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTContext.cpp.o
+[1232/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTDiagnostic.cpp.o
+[1233/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTDumper.cpp.o
+[1234/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTImporter.cpp.o
+[1235/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTTypeTraits.cpp.o
+[1236/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/AttrImpl.cpp.o
+[1237/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentBriefParser.cpp.o
+[1238/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprClassification.cpp.o
+[1239/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Comment.cpp.o
+[1240/1837] Linking CXX static library lib/libclangParse.a
+[1241/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclarationName.cpp.o
+[1242/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentCommandTraits.cpp.o
+[1243/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentLexer.cpp.o
+[1244/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentParser.cpp.o
+[1245/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentSema.cpp.o
+[1246/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Decl.cpp.o
+[1247/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclBase.cpp.o
+[1248/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclCXX.cpp.o
+[1249/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclFriend.cpp.o
+[1250/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclGroup.cpp.o
+[1251/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclObjC.cpp.o
+[1252/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclOpenMP.cpp.o
+[1253/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclPrinter.cpp.o
+[1254/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclTemplate.cpp.o
+[1255/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Expr.cpp.o
+[1256/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExternalASTSource.cpp.o
+[1257/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprConstant.cpp.o
+[1258/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprCXX.cpp.o
+[1259/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprObjC.cpp.o
+[1260/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/MicrosoftCXXABI.cpp.o
+[1261/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/InheritViz.cpp.o
+[1262/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumCXXABI.cpp.o
+[1263/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumMangle.cpp.o
+[1264/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Mangle.cpp.o
+[1265/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RawCommentList.cpp.o
+[1266/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/MicrosoftMangle.cpp.o
+[1267/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/NestedNameSpecifier.cpp.o
+[1268/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/NSAPI.cpp.o
+[1269/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/OpenMPClause.cpp.o
+[1270/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ParentMap.cpp.o
+[1271/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RecordLayoutBuilder.cpp.o
+[1272/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RecordLayout.cpp.o
+[1273/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/SelectorLocationsKind.cpp.o
+[1274/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Stmt.cpp.o
+[1275/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtCXX.cpp.o
+[1276/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtIterator.cpp.o
+[1277/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtObjC.cpp.o
+[1278/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtOpenMP.cpp.o
+[1279/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtPrinter.cpp.o
+[1280/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtProfile.cpp.o
+[1281/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtViz.cpp.o
+[1282/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateBase.cpp.o
+[1283/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateName.cpp.o
+[1284/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Type.cpp.o
+[1285/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypeLoc.cpp.o
+[1286/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypePrinter.cpp.o
+[1287/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTableBuilder.cpp.o
+[1288/1837] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTTBuilder.cpp.o
+[1289/1837] Building CXX object tools/clang/lib/ASTMatchers/CMakeFiles/clangASTMatchers.dir/ASTMatchersInternal.cpp.o
+[1290/1837] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/VariantValue.cpp.o
+[1291/1837] Building CXX object tools/clang/lib/ASTMatchers/CMakeFiles/clangASTMatchers.dir/ASTMatchFinder.cpp.o
+[1292/1837] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Parser.cpp.o
+[1293/1837] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Registry.cpp.o
+[1294/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/DelayedDiagnostic.cpp.o
+[1295/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AnalysisBasedWarnings.cpp.o
+[1296/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AttributeList.cpp.o
+[1297/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/CodeCompleteConsumer.cpp.o
+[1298/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/DeclSpec.cpp.o
+[1299/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/IdentifierResolver.cpp.o
+[1300/1837] Linking CXX static library lib/libclangAST.a
+[1301/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/JumpDiagnostics.cpp.o
+[1302/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCXXScopeSpec.cpp.o
+[1303/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/MultiplexExternalSemaSource.cpp.o
+[1304/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/Scope.cpp.o
+[1305/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/ScopeInfo.cpp.o
+[1306/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/Sema.cpp.o
+[1307/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaAccess.cpp.o
+[1308/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaAttr.cpp.o
+[1309/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaChecking.cpp.o
+[1310/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCast.cpp.o
+[1311/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclAttr.cpp.o
+[1312/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCodeComplete.cpp.o
+[1313/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaOverload.cpp.o
+[1314/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaConsumer.cpp.o
+[1315/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCoroutine.cpp.o
+[1316/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCUDA.cpp.o
+[1317/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDecl.cpp.o
+[1318/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclObjC.cpp.o
+[1319/1837] Linking CXX static library lib/libclangASTMatchers.a
+[1320/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclCXX.cpp.o
+[1321/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprMember.cpp.o
+[1322/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExceptionSpec.cpp.o
+[1323/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExpr.cpp.o
+[1324/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprCXX.cpp.o
+[1325/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaObjCProperty.cpp.o
+[1326/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprObjC.cpp.o
+[1327/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaFixItUtils.cpp.o
+[1328/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaInit.cpp.o
+[1329/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaLambda.cpp.o
+[1330/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaLookup.cpp.o
+[1331/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaOpenMP.cpp.o
+[1332/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmtAttr.cpp.o
+[1333/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaPseudoObject.cpp.o
+[1334/1837] Linking CXX static library lib/libclangDynamicASTMatchers.a
+[1335/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmt.cpp.o
+[1336/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmtAsm.cpp.o
+[1337/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiate.cpp.o
+[1338/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplate.cpp.o
+[1339/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateDeduction.cpp.o
+[1340/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/TypeLocBuilder.cpp.o
+[1341/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiateDecl.cpp.o
+[1342/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateVariadic.cpp.o
+[1343/1837] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaType.cpp.o
+[1344/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGAtomic.cpp.o
+[1345/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/BackendUtil.cpp.o
+[1346/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCXXABI.cpp.o
+[1347/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGBlocks.cpp.o
+[1348/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGBuiltin.cpp.o
+[1349/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDABuiltin.cpp.o
+[1350/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDANV.cpp.o
+[1351/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDARuntime.cpp.o
+[1352/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCXX.cpp.o
+[1353/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCall.cpp.o
+[1354/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGClass.cpp.o
+[1355/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCleanup.cpp.o
+[1356/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDebugInfo.cpp.o
+[1357/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDecl.cpp.o
+[1358/1837] Linking CXX static library lib/libclangSema.a
+[1359/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDeclCXX.cpp.o
+[1360/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGException.cpp.o
+[1361/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExpr.cpp.o
+[1362/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprAgg.cpp.o
+[1363/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprCXX.cpp.o
+[1364/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprComplex.cpp.o
+[1365/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprConstant.cpp.o
+[1366/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprScalar.cpp.o
+[1367/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGLoopInfo.cpp.o
+[1368/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjC.cpp.o
+[1369/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCGNU.cpp.o
+[1370/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCMac.cpp.o
+[1371/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCRuntime.cpp.o
+[1372/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenCLRuntime.cpp.o
+[1373/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenMPRuntime.cpp.o
+[1374/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGVTables.cpp.o
+[1375/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenMPRuntimeNVPTX.cpp.o
+[1376/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGRecordLayoutBuilder.cpp.o
+[1377/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGStmt.cpp.o
+[1378/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGStmtOpenMP.cpp.o
+[1379/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGVTT.cpp.o
+[1380/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenABITypes.cpp.o
+[1381/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenAction.cpp.o
+[1382/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenFunction.cpp.o
+[1383/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenModule.cpp.o
+[1384/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenPGO.cpp.o
+[1385/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenTBAA.cpp.o
+[1386/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenTypes.cpp.o
+[1387/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CoverageMappingGen.cpp.o
+[1388/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ItaniumCXXABI.cpp.o
+[1389/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/MicrosoftCXXABI.cpp.o
+[1390/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ModuleBuilder.cpp.o
+[1391/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ObjectFilePCHContainerOperations.cpp.o
+[1392/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SanitizerMetadata.cpp.o
+[1393/1837] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/TargetInfo.cpp.o
+[1394/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/BodyFarm.cpp.o
+[1395/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFGReachabilityAnalysis.cpp.o
+[1396/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFG.cpp.o
+[1397/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFGStmtMap.cpp.o
+[1398/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/AnalysisDeclContext.cpp.o
+[1399/1837] Building CXX object tools/clang/lib/FrontendTool/CMakeFiles/clangFrontendTool.dir/ExecuteCompilerInvocation.cpp.o
+[1400/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CallGraph.cpp.o
+[1401/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CocoaConventions.cpp.o
+[1402/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/Consumed.cpp.o
+[1403/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CodeInjector.cpp.o
+[1404/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ReachableCode.cpp.o
+[1405/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/Dominators.cpp.o
+[1406/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/FormatString.cpp.o
+[1407/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/LiveVariables.cpp.o
+[1408/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ObjCNoReturn.cpp.o
+[1409/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PostOrderCFGView.cpp.o
+[1410/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PrintfFormatString.cpp.o
+[1411/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ProgramPoint.cpp.o
+[1412/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PseudoConstantAnalysis.cpp.o
+[1413/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ScanfFormatString.cpp.o
+[1414/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafety.cpp.o
+[1415/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyCommon.cpp.o
+[1416/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyLogical.cpp.o
+[1417/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyTIL.cpp.o
+[1418/1837] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/UninitializedValues.cpp.o
+[1419/1837] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/Commit.cpp.o
+[1420/1837] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/EditedSource.cpp.o
+[1421/1837] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/RewriteObjCFoundationAPI.cpp.o
+[1422/1837] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/DeltaTree.cpp.o
+[1423/1837] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/HTMLRewrite.cpp.o
+[1424/1837] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/RewriteRope.cpp.o
+[1425/1837] Linking CXX static library lib/libclangCodeGen.a
+[1426/1837] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/Rewriter.cpp.o
+[1427/1837] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/TokenRewriter.cpp.o
+[1428/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ARCMT.cpp.o
+[1429/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ARCMTActions.cpp.o
+[1430/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/FileRemapper.cpp.o
+[1431/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ObjCMT.cpp.o
+[1432/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/PlistReporter.cpp.o
+[1433/1837] Linking CXX static library lib/libclangRewrite.a
+[1434/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransAPIUses.cpp.o
+[1435/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransARCAssign.cpp.o
+[1436/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransAutoreleasePool.cpp.o
+[1437/1837] Linking CXX static library lib/libclangEdit.a
+[1438/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransBlockObjCVariable.cpp.o
+[1439/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransZeroOutPropsInDealloc.cpp.o
+[1440/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransEmptyStatementsAndDealloc.cpp.o
+[1441/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransGCAttrs.cpp.o
+[1442/1837] Linking CXX static library lib/libclangAnalysis.a
+[1443/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransGCCalls.cpp.o
+[1444/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProperties.cpp.o
+[1445/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProtectedScope.cpp.o
+[1446/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransRetainReleaseDealloc.cpp.o
+[1447/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransUnbridgedCasts.cpp.o
+[1448/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransUnusedInitDelegate.cpp.o
+[1449/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransformActions.cpp.o
+[1450/1837] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/Transforms.cpp.o
+[1451/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Compilation.cpp.o
+[1452/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/DriverOptions.cpp.o
+[1453/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/CrossWindowsToolChain.cpp.o
+[1454/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Action.cpp.o
+[1455/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Driver.cpp.o
+[1456/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Job.cpp.o
+[1457/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/MinGWToolChain.cpp.o
+[1458/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/SanitizerArgs.cpp.o
+[1459/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Multilib.cpp.o
+[1460/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/MSVCToolChain.cpp.o
+[1461/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChain.cpp.o
+[1462/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Phases.cpp.o
+[1463/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Tool.cpp.o
+[1464/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChains.cpp.o
+[1465/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Tools.cpp.o
+[1466/1837] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Types.cpp.o
+[1467/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTCommon.cpp.o
+[1468/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReader.cpp.o
+[1469/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ModuleFileExtension.cpp.o
+[1470/1837] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ModuleManager.cpp.o
+[1471/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTConsumers.cpp.o
+[1472/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTMerge.cpp.o
+[1473/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTUnit.cpp.o
+[1474/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CacheTokens.cpp.o
+[1475/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ChainedDiagnosticConsumer.cpp.o
+[1476/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ChainedIncludesSource.cpp.o
+[1477/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CreateInvocationFromCommandLine.cpp.o
+[1478/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CodeGenOptions.cpp.o
+[1479/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CompilerInstance.cpp.o
+[1480/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CompilerInvocation.cpp.o
+[1481/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DependencyFile.cpp.o
+[1482/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DependencyGraph.cpp.o
+[1483/1837] Linking CXX static library lib/libclangDriver.a
+[1484/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DiagnosticRenderer.cpp.o
+[1485/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendAction.cpp.o
+[1486/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendActions.cpp.o
+[1487/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendOptions.cpp.o
+[1488/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/HeaderIncludeGen.cpp.o
+[1489/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/InitHeaderSearch.cpp.o
+[1490/1837] Linking CXX static library lib/libclangARCMigrate.a
+[1491/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/InitPreprocessor.cpp.o
+[1492/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LangStandards.cpp.o
+[1493/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LayoutOverrideSource.cpp.o
+[1494/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LogDiagnosticPrinter.cpp.o
+[1495/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ModuleDependencyCollector.cpp.o
+[1496/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/MultiplexConsumer.cpp.o
+[1497/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/PCHContainerOperations.cpp.o
+[1498/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/PrintPreprocessedOutput.cpp.o
+[1499/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/SerializedDiagnosticPrinter.cpp.o
+In file included from /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/FrontendPluginRegistry.h:14:0,
+                 from /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:17:
+/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Registry.h: In instantiation of ‘static void llvm::Registry<T>::import(llvm::sys::DynamicLibrary&, const char*) [with T = clang::PluginASTAction]’:
+/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:35:22:   required from here
+/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/Support/Registry.h:131:76: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object [enabled by default]
            reinterpret_cast<GetRegistry>(DL.getAddressOfSymbol(Name.c_str()));
                                                                             ^
-[1218/1876] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/ModuleMap.cpp.o
-[1219/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ARCMT.cpp.o
-[1220/1876] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o
-[1221/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseInit.cpp.o
-[1222/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/APValue.cpp.o
-[1223/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseAST.cpp.o
-[1224/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseCXXInlineMethods.cpp.o
-[1225/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CXXInheritance.cpp.o
-[1226/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ExpandPseudo.cpp.o
-[1227/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseTentative.cpp.o
-[1228/1876] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Targets.cpp.o
-[1229/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParsePragma.cpp.o
-[1230/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ShuffleDecodeConstantPool.cpp.o
-[1231/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseOpenMP.cpp.o
-[1232/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseExprCXX.cpp.o
-[1233/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseStmt.cpp.o
-[1234/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86CallFrameOptimization.cpp.o
-[1235/1876] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o
-[1236/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MachineFunctionInfo.cpp.o
-[1237/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseExpr.cpp.o
-[1238/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FloatingPoint.cpp.o
-[1239/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseTemplate.cpp.o
-[1240/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseDeclCXX.cpp.o
-[1241/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/Parser.cpp.o
-[1242/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseStmtAsm.cpp.o
-[1243/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86AsmPrinter.cpp.o
-[1244/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseObjc.cpp.o
-[1245/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MCInstLower.cpp.o
-[1246/1876] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseDecl.cpp.o
-[1247/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetObjectFile.cpp.o
-[1248/1876] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86IntelInstPrinter.cpp.o
-[1249/1876] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86AsmBackend.cpp.o
-[1250/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86PadShortFunction.cpp.o
-[1251/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FrameLowering.cpp.o
-[1252/1876] Linking CXX static library lib/libLLVMPasses.a
-[1253/1876] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86ATTInstPrinter.cpp.o
-[1254/1876] Linking CXX static library lib/libclangBasic.a
-[1255/1876] Linking CXX static library lib/libclangLex.a
-[1256/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86SelectionDAGInfo.cpp.o
-[1257/1876] Linking CXX static library lib/libclangParse.a
-[1258/1876] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86InstComments.cpp.o
-[1259/1876] Linking CXX static library lib/libLLVMX86AsmPrinter.a
-[1260/1876] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCAsmInfo.cpp.o
-[1261/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86RegisterInfo.cpp.o
-[1262/1876] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmInstrumentation.cpp.o
-[1263/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86Subtarget.cpp.o
-[1264/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetMachine.cpp.o
-[1265/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86WinEHState.cpp.o
-[1266/1876] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCCodeEmitter.cpp.o
-[1267/1876] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86ELFObjectWriter.cpp.o
-[1268/1876] Building CXX object lib/Target/X86/Utils/CMakeFiles/LLVMX86Utils.dir/X86ShuffleDecode.cpp.o
-[1269/1876] Linking CXX static library lib/libLLVMX86Utils.a
-[1270/1876] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFStreamer.cpp.o
-[1271/1876] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFObjectWriter.cpp.o
-[1272/1876] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86Disassembler.cpp.o
-[1273/1876] Building CXX object lib/Target/X86/TargetInfo/CMakeFiles/LLVMX86Info.dir/X86TargetInfo.cpp.o
-[1274/1876] Linking CXX static library lib/libLLVMX86Info.a
-[1275/1876] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MachObjectWriter.cpp.o
-[1276/1876] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86DisassemblerDecoder.cpp.o
-[1277/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86VZeroUpper.cpp.o
-[1278/1876] Linking CXX static library lib/libLLVMX86Disassembler.a
-[1279/1876] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Diagnostics.cpp.o
-[1280/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentBriefParser.cpp.o
-[1281/1876] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/VariantValue.cpp.o
-[1282/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupLEAs.cpp.o
-[1283/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentCommandTraits.cpp.o
-[1284/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetTransformInfo.cpp.o
-[1285/1876] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCTargetDesc.cpp.o
-[1286/1876] Linking CXX static library lib/libLLVMX86Desc.a
-[1287/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupBWInsts.cpp.o
-[1288/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86OptimizeLEAs.cpp.o
-[1289/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86InstrInfo.cpp.o
-[1290/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentLexer.cpp.o
-[1291/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelDAGToDAG.cpp.o
-[1292/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTTypeTraits.cpp.o
-[1293/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclGroup.cpp.o
-[1294/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentParser.cpp.o
-[1295/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExternalASTSource.cpp.o
-[1296/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclOpenMP.cpp.o
-[1297/1876] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmParser.cpp.o
-[1298/1876] Linking CXX static library lib/libLLVMX86AsmParser.a
-[1299/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclarationName.cpp.o
-[1300/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Comment.cpp.o
-[1301/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclFriend.cpp.o
-[1302/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprClassification.cpp.o
-[1303/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprObjC.cpp.o
-[1304/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTDiagnostic.cpp.o
-[1305/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentSema.cpp.o
-[1306/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/InheritViz.cpp.o
-[1307/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/MicrosoftCXXABI.cpp.o
-[1308/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprCXX.cpp.o
-[1309/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclBase.cpp.o
-[1310/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumCXXABI.cpp.o
-[1311/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclTemplate.cpp.o
-[1312/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclPrinter.cpp.o
-[1313/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/SelectorLocationsKind.cpp.o
-[1314/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclCXX.cpp.o
-[1315/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RawCommentList.cpp.o
-[1316/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclObjC.cpp.o
-[1317/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtIterator.cpp.o
-[1318/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ParentMap.cpp.o
-[1319/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FastISel.cpp.o
-[1320/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Mangle.cpp.o
-[1321/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ObjCMT.cpp.o
-[1322/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/NestedNameSpecifier.cpp.o
-[1323/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/NSAPI.cpp.o
-[1324/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/OpenMPClause.cpp.o
-[1325/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RecordLayout.cpp.o
-[1326/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtCXX.cpp.o
-[1327/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtObjC.cpp.o
-[1328/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/AttrImpl.cpp.o
-[1329/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Decl.cpp.o
-[1330/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtViz.cpp.o
-[1331/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTDumper.cpp.o
-[1332/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateName.cpp.o
-[1333/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumMangle.cpp.o
-[1334/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtOpenMP.cpp.o
-[1335/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTImporter.cpp.o
-[1336/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Stmt.cpp.o
-[1337/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Expr.cpp.o
-[1338/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/MicrosoftMangle.cpp.o
-[1339/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypeLoc.cpp.o
-[1340/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RecordLayoutBuilder.cpp.o
-[1341/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTTBuilder.cpp.o
-[1342/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/IdentifierResolver.cpp.o
-[1343/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/Scope.cpp.o
-[1344/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaConsumer.cpp.o
-[1345/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateBase.cpp.o
-[1346/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtProfile.cpp.o
-[1347/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypePrinter.cpp.o
-[1348/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/DelayedDiagnostic.cpp.o
-[1349/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtPrinter.cpp.o
-[1350/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTContext.cpp.o
-[1351/1876] Building CXX object tools/clang/lib/FrontendTool/CMakeFiles/clangFrontendTool.dir/ExecuteCompilerInvocation.cpp.o
-[1352/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/CodeCompleteConsumer.cpp.o
-[1353/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Type.cpp.o
-[1354/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/MultiplexExternalSemaSource.cpp.o
-[1355/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/DeclSpec.cpp.o
-[1356/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/ScopeInfo.cpp.o
-[1357/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/JumpDiagnostics.cpp.o
-[1358/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCXXScopeSpec.cpp.o
-[1359/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaAttr.cpp.o
-[1360/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTableBuilder.cpp.o
-[1361/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaAccess.cpp.o
-[1362/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCast.cpp.o
-[1363/1876] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprConstant.cpp.o
-[1364/1876] Linking CXX static library lib/libclangAST.a
-[1365/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCUDA.cpp.o
-[1366/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCoroutine.cpp.o
-[1367/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExceptionSpec.cpp.o
-[1368/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AttributeList.cpp.o
-[1369/1876] Building CXX object tools/clang/lib/ASTMatchers/CMakeFiles/clangASTMatchers.dir/ASTMatchersInternal.cpp.o
-[1370/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/Sema.cpp.o
-[1371/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaFixItUtils.cpp.o
-[1372/1876] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Parser.cpp.o
-[1373/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprMember.cpp.o
-[1374/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmtAttr.cpp.o
-[1375/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaLambda.cpp.o
-[1376/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/TypeLocBuilder.cpp.o
-[1377/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AnalysisBasedWarnings.cpp.o
-[1378/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaObjCProperty.cpp.o
-[1379/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprObjC.cpp.o
-[1380/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclAttr.cpp.o
-[1381/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaInit.cpp.o
-[1382/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaChecking.cpp.o
-[1383/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCodeComplete.cpp.o
-[1384/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaPseudoObject.cpp.o
-[1385/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/BackendUtil.cpp.o
-[1386/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmtAsm.cpp.o
-[1387/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaOverload.cpp.o
-[1388/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaLookup.cpp.o
-[1389/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGAtomic.cpp.o
-[1390/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCXXABI.cpp.o
-[1391/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclObjC.cpp.o
-[1392/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDABuiltin.cpp.o
-[1393/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGBlocks.cpp.o
-[1394/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDARuntime.cpp.o
-[1395/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDANV.cpp.o
-[1396/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCXX.cpp.o
-[1397/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiateDecl.cpp.o
-[1398/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaType.cpp.o
-[1399/1876] Building CXX object tools/clang/lib/ASTMatchers/CMakeFiles/clangASTMatchers.dir/ASTMatchFinder.cpp.o
-[1400/1876] Linking CXX static library lib/libclangASTMatchers.a
-[1401/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateVariadic.cpp.o
-[1402/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGVTables.cpp.o
-[1403/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCleanup.cpp.o
-[1404/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDeclCXX.cpp.o
-[1405/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDecl.cpp.o
-[1406/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGLoopInfo.cpp.o
-[1407/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDecl.cpp.o
-[1408/1876] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelLowering.cpp.o
-[1409/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGException.cpp.o
-[1410/1876] Linking CXX static library lib/libLLVMX86CodeGen.a
-[1411/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGClass.cpp.o
-[1412/1876] Building CXX object tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o
-[1413/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiate.cpp.o
-[1414/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGBuiltin.cpp.o
-[1415/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateDeduction.cpp.o
-[1416/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprAgg.cpp.o
-[1417/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmt.cpp.o
-[1418/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclCXX.cpp.o
-[1419/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprComplex.cpp.o
-[1420/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDebugInfo.cpp.o
-[1421/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExpr.cpp.o
-[1422/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprCXX.cpp.o
-[1423/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprConstant.cpp.o
-[1424/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCRuntime.cpp.o
-[1425/1876] Building CXX object tools/llvm-ar/CMakeFiles/llvm-ar.dir/llvm-ar.cpp.o
-[1426/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCall.cpp.o
-[1427/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenCLRuntime.cpp.o
-[1428/1876] Linking CXX executable bin/llvm-ar
-[1429/1876] Generating ../../bin/llvm-ranlib
-[1430/1876] Generating ../../bin/llvm-lib
-[1431/1876] Building CXX object tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
-[1432/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprCXX.cpp.o
-[1433/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjC.cpp.o
-[1434/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFGReachabilityAnalysis.cpp.o
-[1435/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenABITypes.cpp.o
-[1436/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaOpenMP.cpp.o
-[1437/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprScalar.cpp.o
-[1438/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenMPRuntimeNVPTX.cpp.o
-[1439/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCGNU.cpp.o
-[1440/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CodeInjector.cpp.o
-[1441/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFGStmtMap.cpp.o
-[1442/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenTBAA.cpp.o
-[1443/1876] Linking CXX shared library lib/libLTO.so
-[1444/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGRecordLayoutBuilder.cpp.o
-[1445/1876] Building CXX object tools/gold/CMakeFiles/LLVMgold.dir/gold-plugin.cpp.o
-[1446/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenAction.cpp.o
-[1447/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGVTT.cpp.o
-[1448/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CocoaConventions.cpp.o
-[1449/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGStmt.cpp.o
-[1450/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/BodyFarm.cpp.o
-[1451/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/Dominators.cpp.o
-[1452/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplate.cpp.o
-[1453/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SanitizerMetadata.cpp.o
-[1454/1876] Linking CXX shared module lib/LLVMgold.so
-[1455/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ProgramPoint.cpp.o
-[1456/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PostOrderCFGView.cpp.o
-[1457/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCMac.cpp.o
-[1458/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenFunction.cpp.o
-[1459/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ObjCNoReturn.cpp.o
-[1460/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ModuleBuilder.cpp.o
-[1461/1876] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/DeltaTree.cpp.o
-[1462/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/FormatString.cpp.o
-[1463/1876] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExpr.cpp.o
-[1464/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ReachableCode.cpp.o
-[1465/1876] Linking CXX static library lib/libclangSema.a
-[1466/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PseudoConstantAnalysis.cpp.o
-[1467/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SwiftCallingConv.cpp.o
-[1468/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PrintfFormatString.cpp.o
-[1469/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenTypes.cpp.o
-[1470/1876] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/Commit.cpp.o
-[1471/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/AnalysisDeclContext.cpp.o
-[1472/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGStmtOpenMP.cpp.o
-[1473/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ScanfFormatString.cpp.o
-[1474/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyLogical.cpp.o
-[1475/1876] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/EditedSource.cpp.o
-[1476/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenMPRuntime.cpp.o
-[1477/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/LiveVariables.cpp.o
-[1478/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyTIL.cpp.o
-[1479/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CallGraph.cpp.o
-[1480/1876] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/HTMLRewrite.cpp.o
-[1481/1876] Linking CXX static library lib/libclangRewrite.a
-[1482/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/PlistReporter.cpp.o
-[1483/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFG.cpp.o
-[1484/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CoverageMappingGen.cpp.o
-[1485/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Action.cpp.o
-[1486/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/Consumed.cpp.o
-[1487/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/DriverOptions.cpp.o
-[1488/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ItaniumCXXABI.cpp.o
-[1489/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/CrossWindowsToolChain.cpp.o
-[1490/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Phases.cpp.o
-[1491/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Compilation.cpp.o
-[1492/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyCommon.cpp.o
-[1493/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Tool.cpp.o
-[1494/1876] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/RewriteObjCFoundationAPI.cpp.o
-[1495/1876] Linking CXX static library lib/libclangEdit.a
-[1496/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Job.cpp.o
-[1497/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/MicrosoftCXXABI.cpp.o
-[1498/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/MinGWToolChain.cpp.o
-[1499/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Types.cpp.o
-[1500/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/MSVCToolChain.cpp.o
-[1501/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/UninitializedValues.cpp.o
-[1502/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Multilib.cpp.o
-[1503/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/SanitizerArgs.cpp.o
-[1504/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChain.cpp.o
-[1505/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/TargetInfo.cpp.o
-[1506/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Driver.cpp.o
-[1507/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransformActions.cpp.o
-[1508/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ModuleFileExtension.cpp.o
-[1509/1876] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Registry.cpp.o
-[1510/1876] Linking CXX static library lib/libclangDynamicASTMatchers.a
-[1511/1876] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafety.cpp.o
-[1512/1876] Linking CXX static library lib/libclangAnalysis.a
-[1513/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/Module.cpp.o
-[1514/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenPGO.cpp.o
-[1515/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTCommon.cpp.o
-[1516/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ChainedDiagnosticConsumer.cpp.o
-[1517/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/GeneratePCH.cpp.o
-[1518/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CodeGenOptions.cpp.o
-[1519/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ModuleManager.cpp.o
-[1520/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/GlobalModuleIndex.cpp.o
-[1521/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CacheTokens.cpp.o
-[1522/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChains.cpp.o
-[1523/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTMerge.cpp.o
-[1524/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ObjectFilePCHContainerOperations.cpp.o
-[1525/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransAPIUses.cpp.o
-[1526/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ModuleDependencyCollector.cpp.o
-[1527/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransARCAssign.cpp.o
-[1528/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransZeroOutPropsInDealloc.cpp.o
-[1529/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendOptions.cpp.o
-[1530/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CreateInvocationFromCommandLine.cpp.o
-[1531/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransGCCalls.cpp.o
-[1532/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransEmptyStatementsAndDealloc.cpp.o
-[1533/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransGCAttrs.cpp.o
-[1534/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProperties.cpp.o
-[1535/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriterStmt.cpp.o
-[1536/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LangStandards.cpp.o
-[1537/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DependencyGraph.cpp.o
-[1538/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DiagnosticRenderer.cpp.o
-[1539/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriterDecl.cpp.o
-[1540/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/HeaderIncludeGen.cpp.o
-[1541/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/InitHeaderSearch.cpp.o
-[1542/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/MultiplexConsumer.cpp.o
-[1543/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransUnusedInitDelegate.cpp.o
-[1544/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LogDiagnosticPrinter.cpp.o
-[1545/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/PCHContainerOperations.cpp.o
-[1546/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/SerializedDiagnosticReader.cpp.o
-[1547/1876] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Tools.cpp.o
-[1548/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReaderStmt.cpp.o
-[1549/1876] Linking CXX static library lib/libclangDriver.a
-[1550/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LayoutOverrideSource.cpp.o
-[1551/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransRetainReleaseDealloc.cpp.o
-[1552/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransUnbridgedCasts.cpp.o
-[1553/1876] Linking CXX static library lib/libclangFrontendTool.a
-[1554/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnosticBuffer.cpp.o
-[1555/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DependencyFile.cpp.o
-[1556/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/PrintPreprocessedOutput.cpp.o
-[1557/1876] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/ArgumentsAdjusters.cpp.o
-[1558/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnosticPrinter.cpp.o
-[1559/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ChainedIncludesSource.cpp.o
-[1560/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnostic.cpp.o
-[1561/1876] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/FixItRewriter.cpp.o
-[1562/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/SerializedDiagnosticPrinter.cpp.o
-[1563/1876] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenModule.cpp.o
-[1564/1876] Linking CXX static library lib/libclangCodeGen.a
-[1565/1876] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteTest.cpp.o
-[1566/1876] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteMacros.cpp.o
-[1567/1876] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/FileMatchTrie.cpp.o
-[1568/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/VerifyDiagnosticConsumer.cpp.o
-[1569/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProtectedScope.cpp.o
-[1570/1876] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/InclusionRewriter.cpp.o
-[1571/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendAction.cpp.o
-In file included from /b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang/include/clang/Frontend/FrontendPluginRegistry.h:14:0,
-                 from /b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:17:
-/b/build/slave/linux_upload_clang/build/src/third_party/llvm/include/llvm/Support/Registry.h: In instantiation of ‘static void llvm::Registry<T>::import(llvm::sys::DynamicLibrary&, const char*) [with T = clang::PluginASTAction]’:
-/b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:35:22:   required from here
-/b/build/slave/linux_upload_clang/build/src/third_party/llvm/include/llvm/Support/Registry.h:131:76: warning: ISO C++ forbids casting between pointer-to-function and pointer-to-object [enabled by default]
-           reinterpret_cast<GetRegistry>(DL.getAddressOfSymbol(Name.c_str()));
-                                                                            ^
-[1572/1876] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/HTMLPrint.cpp.o
-[1573/1876] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/Lookup.cpp.o
-[1574/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TestModuleFileExtension.cpp.o
-[1575/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/InitPreprocessor.cpp.o
-[1576/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/APSIntType.cpp.o
-[1577/1876] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/Replacement.cpp.o
-[1578/1876] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/CommonOptionsParser.cpp.o
-[1579/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CompilerInstance.cpp.o
-[1580/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CompilerInvocation.cpp.o
-[1581/1876] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/Refactoring.cpp.o
-[1582/1876] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/CompilationDatabase.cpp.o
-[1583/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransBlockObjCVariable.cpp.o
-[1584/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendActions.cpp.o
-[1585/1876] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/JSONCompilationDatabase.cpp.o
-[1586/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTUnit.cpp.o
-[1587/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexingAction.cpp.o
-[1588/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CommonBugCategories.cpp.o
-[1589/1876] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/QualTypeNames.cpp.o
-[1590/1876] Linking CXX static library lib/libclangToolingCore.a
-[1591/1876] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/FrontendActions.cpp.o
-[1592/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexSymbol.cpp.o
-[1593/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BlockCounter.cpp.o
-[1594/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexDecl.cpp.o
-[1595/1876] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/Tooling.cpp.o
-[1596/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexingContext.cpp.o
-[1597/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/CommentToXML.cpp.o
-[1598/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransAutoreleasePool.cpp.o
-[1599/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/CodegenNameGenerator.cpp.o
-[1600/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerHelpers.cpp.o
-[1601/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/IssueHash.cpp.o
-[1602/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/AnalyzerOptions.cpp.o
-[1603/1876] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTConsumers.cpp.o
-[1604/1876] Linking CXX static library lib/libclangFrontend.a
-[1605/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BasicValueFactory.cpp.o
-[1606/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/AnalysisManager.cpp.o
-[1607/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/USRGeneration.cpp.o
-[1608/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReaderDecl.cpp.o
-[1609/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/FunctionSummary.cpp.o
-[1610/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Checker.cpp.o
-[1611/1876] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteObjC.cpp.o
-[1612/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ConstraintManager.cpp.o
-[1613/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriter.cpp.o
-[1614/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerRegistry.cpp.o
-[1615/1876] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/Transforms.cpp.o
-[1616/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerContext.cpp.o
-[1617/1876] Linking CXX static library lib/libclangARCMigrate.a
-[1618/1876] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReader.cpp.o
-[1619/1876] Linking CXX static library lib/libclangSerialization.a
-[1620/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexTypeSourceInfo.cpp.o
-[1621/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Environment.cpp.o
-[1622/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExplodedGraph.cpp.o
-[1623/1876] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteModernObjC.cpp.o
-[1624/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AllocationDiagnostics.cpp.o
-[1625/1876] Linking CXX static library lib/libclangRewriteFrontend.a
-[1626/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/LoopWidening.cpp.o
-[1627/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CallEvent.cpp.o
-[1628/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/DynamicTypeMap.cpp.o
-[1629/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporterVisitors.cpp.o
-[1630/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerManager.cpp.o
-[1631/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CoreEngine.cpp.o
-[1632/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/PlistDiagnostics.cpp.o
-[1633/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineObjC.cpp.o
-[1634/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineC.cpp.o
-[1635/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/HTMLDiagnostics.cpp.o
-[1636/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineCXX.cpp.o
-[1637/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SValBuilder.cpp.o
-[1638/1876] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/RefactoringCallbacks.cpp.o
-[1639/1876] Linking CXX static library lib/libclangTooling.a
-[1640/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/MemRegion.cpp.o
-[1641/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SVals.cpp.o
-[1642/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineCallAndReturn.cpp.o
-[1643/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SubEngine.cpp.o
-[1644/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/RangeConstraintManager.cpp.o
-[1645/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/PathDiagnostic.cpp.o
-[1646/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Store.cpp.o
-[1647/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporter.cpp.o
-[1648/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ProgramState.cpp.o
-[1649/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SimpleSValBuilder.cpp.o
-[1650/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SymbolManager.cpp.o
-[1651/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SimpleConstraintManager.cpp.o
-[1652/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngine.cpp.o
-[1653/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ArrayBoundCheckerV2.cpp.o
-[1654/1876] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexBody.cpp.o
-[1655/1876] Linking CXX static library lib/libclangIndex.a
-[1656/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AnalyzerStatsChecker.cpp.o
-[1657/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/RegionStore.cpp.o
-[1658/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ArrayBoundChecker.cpp.o
-[1659/1876] Linking CXX static library lib/libclangStaticAnalyzerCore.a
-[1660/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BoolAssignmentChecker.cpp.o
-[1661/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BuiltinFunctionChecker.cpp.o
-[1662/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CastSizeChecker.cpp.o
-[1663/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ClangCheckers.cpp.o
-[1664/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CastToStructChecker.cpp.o
-[1665/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckObjCInstMethSignature.cpp.o
-[1666/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckerDocumentation.cpp.o
-[1667/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckSizeofPointer.cpp.o
-[1668/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CStringSyntaxChecker.cpp.o
-[1669/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ChrootChecker.cpp.o
-[1670/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CallAndMessageChecker.cpp.o
-[1671/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DivZeroChecker.cpp.o
-[1672/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckObjCDealloc.cpp.o
-[1673/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DirectIvarAssignment.cpp.o
-[1674/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CStringChecker.cpp.o
-[1675/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckSecuritySyntaxOnly.cpp.o
-[1676/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BasicObjCFoundationChecks.cpp.o
-[1677/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DereferenceChecker.cpp.o
-[1678/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/FixedAddressChecker.cpp.o
-[1679/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/GenericTaintChecker.cpp.o
-[1680/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ExprInspectionChecker.cpp.o
-[1681/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DynamicTypeChecker.cpp.o
-[1682/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/IvarInvalidationChecker.cpp.o
-[1683/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/LLVMConventionsChecker.cpp.o
-[1684/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MacOSXAPIChecker.cpp.o
-[1685/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MacOSKeychainAPIChecker.cpp.o
-[1686/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NSAutoreleasePoolChecker.cpp.o
-[1687/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NoReturnFunctionChecker.cpp.o
-[1688/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocSizeofChecker.cpp.o
-[1689/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCAtSyncChecker.cpp.o
-[1690/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NSErrorChecker.cpp.o
-[1691/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NonNullParamChecker.cpp.o
-[1692/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocOverflowSecurityChecker.cpp.o
-[1693/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCContainersASTChecker.cpp.o
-[1694/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DebugCheckers.cpp.o
-[1695/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NullabilityChecker.cpp.o
-[1696/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCContainersChecker.cpp.o
-[1697/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCUnusedIVarsChecker.cpp.o
-[1698/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PointerSubChecker.cpp.o
-[1699/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCSelfInitChecker.cpp.o
-[1700/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ReturnPointerRangeChecker.cpp.o
-[1701/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCSuperDeallocChecker.cpp.o
-[1702/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PointerArithChecker.cpp.o
-[1703/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ReturnUndefChecker.cpp.o
-[1704/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PthreadLockChecker.cpp.o
-[1705/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocChecker.cpp.o
-[1706/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DeadStoresChecker.cpp.o
-[1707/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelConsumer.cpp.o
-[1708/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/AffectedRangeManager.cpp.o
-[1709/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TaintTesterChecker.cpp.o
-[1710/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/StackAddrEscapeChecker.cpp.o
-[1711/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/BreakableToken.cpp.o
-[1712/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/FormatToken.cpp.o
-[1713/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/StreamChecker.cpp.o
-[1714/1876] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/diagtool_main.cpp.o
-[1715/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/IdenticalExprChecker.cpp.o
-[1716/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/SimpleStreamChecker.cpp.o
-[1717/1876] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/DiagTool.cpp.o
-[1718/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/ContinuationIndenter.cpp.o
-[1719/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefBranchChecker.cpp.o
-[1720/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TraversalChecker.cpp.o
-[1721/1876] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o
-[1722/1876] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ListWarnings.cpp.o
-[1723/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/FrontendActions.cpp.o
-[1724/1876] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/DiagnosticNames.cpp.o
-[1725/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DynamicTypePropagation.cpp.o
-[1726/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineParser.cpp.o
-[1727/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TestAfterDivZeroChecker.cpp.o
-[1728/1876] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/TreeView.cpp.o
-[1729/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefResultChecker.cpp.o
-[1730/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefCapturedBlockVarChecker.cpp.o
-[1731/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefinedArraySubscriptChecker.cpp.o
-[1732/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefinedAssignmentChecker.cpp.o
-[1733/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/WhitespaceManager.cpp.o
-[1734/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/RetainCountChecker.cpp.o
-[1735/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/calc.c.o
-[1736/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/diagnostic.c.o
-[1737/1876] Linking CXX executable bin/llvm-stress
-[1738/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/TokenAnnotator.cpp.o
-[1739/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/disassemble.c.o
-[1740/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/helpers.c.o
-[1741/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/include-all.c.o
-[1742/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/main.c.o
-[1743/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/metadata.c.o
-[1744/1876] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/llvm-diff.cpp.o
-[1745/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/object.c.o
-[1746/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/targets.c.o
-[1747/1876] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/module.c.o
-[1748/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineFormatter.cpp.o
-[1749/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UnreachableCodeChecker.cpp.o
-[1750/1876] Building CXX object tools/llvm-split/CMakeFiles/llvm-split.dir/llvm-split.cpp.o
-[1751/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UnixAPIChecker.cpp.o
-[1752/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VLASizeChecker.cpp.o
-[1753/1876] Linking CXX executable bin/lli-child-target
-[1754/1876] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ShowEnabledWarnings.cpp.o
-[1755/1876] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/BinaryHolder.cpp.o
-[1756/1876] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/ELFDump.cpp.o
-[1757/1876] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/dsymutil.cpp.o
-[1758/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VforkChecker.cpp.o
-[1759/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VirtualCallChecker.cpp.o
-[1760/1876] Linking CXX executable bin/obj2yaml
-[1761/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCMissingSuperCallChecker.cpp.o
-[1762/1876] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachODebugMapParser.cpp.o
-[1763/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/CheckerRegistration.cpp.o
-[1764/1876] Building CXX object tools/llvm-as/CMakeFiles/llvm-as.dir/llvm-as.cpp.o
-[1765/1876] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachOUtils.cpp.o
-[1766/1876] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/COFFDump.cpp.o
-[1767/1876] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DebugMap.cpp.o
-[1768/1876] Linking CXX executable bin/llvm-as
-[1769/1876] Building CXX object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/echo.cpp.o
-[1770/1876] Linking CXX executable bin/llvm-cov
-[1771/1876] Linking CXX executable bin/llvm-split
-[1772/1876] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o
-[1773/1876] Linking CXX executable bin/llvm-readobj
-[1774/1876] Linking CXX executable bin/llvm-cxxdump
-[1775/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelInjector.cpp.o
-[1776/1876] Building CXX object tools/llvm-mc/CMakeFiles/llvm-mc.dir/Disassembler.cpp.o
-[1777/1876] Linking CXX executable bin/diagtool
-[1778/1876] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/Format.cpp.o
-[1779/1876] Building CXX object tools/verify-uselistorder/CMakeFiles/verify-uselistorder.dir/verify-uselistorder.cpp.o
-[1780/1876] Building CXX object tools/opt/CMakeFiles/opt.dir/AnalysisWrappers.cpp.o
-[1781/1876] Linking CXX static library lib/libclangFormat.a
-[1782/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PaddingChecker.cpp.o
-[1783/1876] Building CXX object tools/llvm-link/CMakeFiles/llvm-link.dir/llvm-link.cpp.o
-[1784/1876] Building CXX object tools/opt/CMakeFiles/opt.dir/GraphPrinters.cpp.o
-[1785/1876] Building CXX object tools/opt/CMakeFiles/opt.dir/BreakpointPrinter.cpp.o
-[1786/1876] Building CXX object tools/opt/CMakeFiles/opt.dir/PassPrinters.cpp.o
-[1787/1876] Linking CXX executable bin/verify-uselistorder
-[1788/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/LocalizationChecker.cpp.o
-[1789/1876] Linking CXX executable bin/llvm-bcanalyzer
-[1790/1876] Linking CXX static library lib/libclangStaticAnalyzerCheckers.a
-[1791/1876] Linking CXX executable bin/llvm-link
-[1792/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o
-[1793/1876] Linking CXX executable bin/llvm-c-test
-[1794/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o
-[1795/1876] Building CXX object tools/opt/CMakeFiles/opt.dir/PrintSCC.cpp.o
-[1796/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o
-[1797/1876] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffLog.cpp.o
-[1798/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCompilationDatabase.cpp.o
-[1799/1876] Building CXX object tools/llvm-mc/CMakeFiles/llvm-mc.dir/llvm-mc.cpp.o
-[1800/1876] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffConsumer.cpp.o
-[1801/1876] Building CXX object tools/llc/CMakeFiles/llc.dir/llc.cpp.o
-[1802/1876] Building CXX object tools/llvm-rtdyld/CMakeFiles/llvm-rtdyld.dir/llvm-rtdyld.cpp.o
-[1803/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o
-[1804/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o
-[1805/1876] Building CXX object tools/llvm-extract/CMakeFiles/llvm-extract.dir/llvm-extract.cpp.o
-[1806/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o
-[1807/1876] Building CXX object tools/opt/CMakeFiles/opt.dir/NewPMDriver.cpp.o
-[1808/1876] Building CXX object tools/llvm-dwp/CMakeFiles/llvm-dwp.dir/llvm-dwp.cpp.o
-[1809/1876] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/llvm-objdump.cpp.o
-[1810/1876] Building CXX object tools/clang/tools/clang-format/CMakeFiles/clang-format.dir/ClangFormat.cpp.o
-[1811/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXLoadedDiagnostic.cpp.o
-[1812/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/BuildSystem.cpp.o
-[1813/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/ARCMigrate.cpp.o
-[1814/1876] Linking CXX executable bin/clang-format
-[1815/1876] Building CXX object tools/llvm-lto/CMakeFiles/llvm-lto.dir/llvm-lto.cpp.o
-[1816/1876] Linking CXX executable bin/llvm-mc
-[1817/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o
-[1818/1876] Linking CXX executable bin/llvm-rtdyld
-[1819/1876] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DifferenceEngine.cpp.o
-[1820/1876] Linking CXX executable bin/llvm-extract
-[1821/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o
-[1822/1876] Linking CXX executable bin/llvm-diff
-[1823/1876] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o
-[1824/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXString.cpp.o
-[1825/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXStoredDiagnostic.cpp.o
-[1826/1876] Linking CXX executable bin/llc
-[1827/1876] Linking CXX executable bin/llvm-dwp
-[1828/1876] Building CXX object tools/sancov/CMakeFiles/sancov.dir/sancov.cc.o
-[1829/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXSourceLocation.cpp.o
-[1830/1876] Building CXX object tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o
-[1831/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCXX.cpp.o
-[1832/1876] Linking CXX executable bin/sancov
-[1833/1876] Linking CXX executable bin/llvm-nm
-[1834/1876] Building CXX object tools/lli/CMakeFiles/lli.dir/OrcLazyJIT.cpp.o
-[1835/1876] Linking CXX executable bin/llvm-lto
-[1836/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexUSRs.cpp.o
-[1837/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexDiagnostic.cpp.o
-[1838/1876] Linking CXX executable bin/bugpoint
-[1839/1876] Building CXX object tools/opt/CMakeFiles/opt.dir/opt.cpp.o
-[1840/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXComment.cpp.o
-[1841/1876] Building CXX object tools/clang/tools/arcmt-test/CMakeFiles/arcmt-test.dir/arcmt-test.cpp.o
-[1842/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexInclusionStack.cpp.o
-[1843/1876] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DwarfLinker.cpp.o
-[1844/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexHigh.cpp.o
-[1845/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXIndexDataConsumer.cpp.o
-[1846/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o
-[1847/1876] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/MachODump.cpp.o
-[1848/1876] Building CXX object tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o
-[1849/1876] Linking CXX shared module lib/BugpointPasses.so
-[1850/1876] Linking CXX executable bin/llvm-objdump
-[1851/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXType.cpp.o
-[1852/1876] Building CXX object tools/lli/CMakeFiles/lli.dir/lli.cpp.o
-[1853/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCursor.cpp.o
-[1854/1876] Linking CXX executable bin/llvm-dsymutil
-[1855/1876] Linking CXX executable bin/opt
-[1856/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o
-[1857/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o
-[1858/1876] Linking CXX executable bin/arcmt-test
-[1859/1876] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/AnalysisConsumer.cpp.o
-[1860/1876] Linking CXX static library lib/libclangStaticAnalyzerFrontend.a
-[1861/1876] Linking CXX executable bin/lli
-[1862/1876] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o
-[1863/1876] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o
-[1864/1876] Building CXX object tools/clang/tools/clang-check/CMakeFiles/clang-check.dir/ClangCheck.cpp.o
-[1865/1876] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o
-[1866/1876] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o
-[1867/1876] Linking CXX executable bin/clang-check
-[1868/1876] Linking CXX shared library lib/libclang.so.3.9
-[1869/1876] Creating library symlink lib/libclang.so
-[1870/1876] Building C object tools/clang/tools/c-arcmt-test/CMakeFiles/c-arcmt-test.dir/c-arcmt-test.c.o
-[1871/1876] Linking CXX executable bin/c-arcmt-test
-[1872/1876] Linking CXX executable bin/clang-3.9
-[1873/1876] Creating executable symlink bin/clang
-[1874/1876] Building C object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.o
-[1875/1876] Building CXX object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.o
-[1876/1876] Linking CXX executable bin/c-index-test
+[1500/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/SerializedDiagnosticReader.cpp.o
+[1501/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TestModuleFileExtension.cpp.o
+[1502/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnostic.cpp.o
+[1503/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnosticBuffer.cpp.o
+[1504/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnosticPrinter.cpp.o
+[1505/1837] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/VerifyDiagnosticConsumer.cpp.o
+[1506/1837] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/FixItRewriter.cpp.o
+[1507/1837] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/FrontendActions.cpp.o
+[1508/1837] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/HTMLPrint.cpp.o
+[1509/1837] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/InclusionRewriter.cpp.o
+[1510/1837] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteMacros.cpp.o
+[1511/1837] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteModernObjC.cpp.o
+[1512/1837] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteObjC.cpp.o
+[1513/1837] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteTest.cpp.o
+[1514/1837] Linking CXX static library lib/libclangSerialization.a
+[1515/1837] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/CommonOptionsParser.cpp.o
+[1516/1837] Linking CXX static library lib/libclangFrontendTool.a
+[1517/1837] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/ArgumentsAdjusters.cpp.o
+[1518/1837] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/CompilationDatabase.cpp.o
+[1519/1837] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/FileMatchTrie.cpp.o
+[1520/1837] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/JSONCompilationDatabase.cpp.o
+[1521/1837] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/Refactoring.cpp.o
+[1522/1837] Linking CXX static library lib/libclangFrontend.a
+[1523/1837] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/RefactoringCallbacks.cpp.o
+[1524/1837] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/Tooling.cpp.o
+[1525/1837] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/Lookup.cpp.o
+[1526/1837] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/Replacement.cpp.o
+[1527/1837] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/QualTypeNames.cpp.o
+[1528/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/CodegenNameGenerator.cpp.o
+[1529/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/CommentToXML.cpp.o
+[1530/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexingAction.cpp.o
+[1531/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexBody.cpp.o
+[1532/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexDecl.cpp.o
+[1533/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexingContext.cpp.o
+[1534/1837] Linking CXX static library lib/libclangToolingCore.a
+[1535/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexSymbol.cpp.o
+[1536/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexTypeSourceInfo.cpp.o
+[1537/1837] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/USRGeneration.cpp.o
+[1538/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/APSIntType.cpp.o
+[1539/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/AnalysisManager.cpp.o
+[1540/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/AnalyzerOptions.cpp.o
+[1541/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BasicValueFactory.cpp.o
+[1542/1837] Linking CXX static library lib/libclangRewriteFrontend.a
+[1543/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BlockCounter.cpp.o
+[1544/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/IssueHash.cpp.o
+[1545/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporter.cpp.o
+[1546/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporterVisitors.cpp.o
+[1547/1837] Linking CXX static library lib/libclangTooling.a
+[1548/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CallEvent.cpp.o
+[1549/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Checker.cpp.o
+[1550/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerContext.cpp.o
+[1551/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerHelpers.cpp.o
+[1552/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerManager.cpp.o
+[1553/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerRegistry.cpp.o
+[1554/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CommonBugCategories.cpp.o
+[1555/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ConstraintManager.cpp.o
+[1556/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CoreEngine.cpp.o
+[1557/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/DynamicTypeMap.cpp.o
+[1558/1837] Linking CXX static library lib/libclangIndex.a
+[1559/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Environment.cpp.o
+[1560/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExplodedGraph.cpp.o
+[1561/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngine.cpp.o
+[1562/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineC.cpp.o
+[1563/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineCXX.cpp.o
+[1564/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineCallAndReturn.cpp.o
+[1565/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineObjC.cpp.o
+[1566/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/FunctionSummary.cpp.o
+[1567/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/HTMLDiagnostics.cpp.o
+[1568/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/LoopWidening.cpp.o
+[1569/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/MemRegion.cpp.o
+[1570/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/PathDiagnostic.cpp.o
+[1571/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/PlistDiagnostics.cpp.o
+[1572/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ProgramState.cpp.o
+[1573/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/RangeConstraintManager.cpp.o
+[1574/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/RegionStore.cpp.o
+[1575/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SValBuilder.cpp.o
+[1576/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SVals.cpp.o
+[1577/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SimpleConstraintManager.cpp.o
+[1578/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SimpleSValBuilder.cpp.o
+[1579/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Store.cpp.o
+[1580/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SubEngine.cpp.o
+[1581/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SymbolManager.cpp.o
+[1582/1837] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/ContinuationIndenter.cpp.o
+[1583/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/AnalysisConsumer.cpp.o
+[1584/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/CheckerRegistration.cpp.o
+[1585/1837] Building Checkers.inc...
+[1586/1837] Updating Checkers.inc...
+[1587/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AllocationDiagnostics.cpp.o
+[1588/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AnalyzerStatsChecker.cpp.o
+[1589/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ArrayBoundChecker.cpp.o
+[1590/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ArrayBoundCheckerV2.cpp.o
+[1591/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BasicObjCFoundationChecks.cpp.o
+[1592/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BoolAssignmentChecker.cpp.o
+[1593/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BuiltinFunctionChecker.cpp.o
+[1594/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CStringChecker.cpp.o
+[1595/1837] Linking CXX static library lib/libclangStaticAnalyzerCore.a
+[1596/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CStringSyntaxChecker.cpp.o
+[1597/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CallAndMessageChecker.cpp.o
+[1598/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CastSizeChecker.cpp.o
+[1599/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CastToStructChecker.cpp.o
+[1600/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckObjCDealloc.cpp.o
+[1601/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckObjCInstMethSignature.cpp.o
+[1602/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckSecuritySyntaxOnly.cpp.o
+[1603/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckSizeofPointer.cpp.o
+[1604/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckerDocumentation.cpp.o
+[1605/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ChrootChecker.cpp.o
+[1606/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ClangCheckers.cpp.o
+[1607/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DeadStoresChecker.cpp.o
+[1608/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DebugCheckers.cpp.o
+[1609/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DereferenceChecker.cpp.o
+[1610/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DirectIvarAssignment.cpp.o
+[1611/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DivZeroChecker.cpp.o
+[1612/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DynamicTypePropagation.cpp.o
+[1613/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DynamicTypeChecker.cpp.o
+[1614/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ExprInspectionChecker.cpp.o
+[1615/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/FixedAddressChecker.cpp.o
+[1616/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/GenericTaintChecker.cpp.o
+[1617/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/IdenticalExprChecker.cpp.o
+[1618/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/IvarInvalidationChecker.cpp.o
+[1619/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/LLVMConventionsChecker.cpp.o
+[1620/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/LocalizationChecker.cpp.o
+[1621/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MacOSKeychainAPIChecker.cpp.o
+[1622/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MacOSXAPIChecker.cpp.o
+[1623/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocChecker.cpp.o
+[1624/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocOverflowSecurityChecker.cpp.o
+[1625/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocSizeofChecker.cpp.o
+[1626/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NSAutoreleasePoolChecker.cpp.o
+[1627/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NSErrorChecker.cpp.o
+[1628/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NoReturnFunctionChecker.cpp.o
+[1629/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NonNullParamChecker.cpp.o
+[1630/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NullabilityChecker.cpp.o
+[1631/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCAtSyncChecker.cpp.o
+[1632/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCContainersASTChecker.cpp.o
+[1633/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCContainersChecker.cpp.o
+[1634/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCMissingSuperCallChecker.cpp.o
+[1635/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCSelfInitChecker.cpp.o
+[1636/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCSuperDeallocChecker.cpp.o
+[1637/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCUnusedIVarsChecker.cpp.o
+[1638/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PaddingChecker.cpp.o
+[1639/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PointerArithChecker.cpp.o
+[1640/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PointerSubChecker.cpp.o
+[1641/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PthreadLockChecker.cpp.o
+[1642/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/RetainCountChecker.cpp.o
+[1643/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ReturnPointerRangeChecker.cpp.o
+[1644/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ReturnUndefChecker.cpp.o
+[1645/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/SimpleStreamChecker.cpp.o
+[1646/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/StackAddrEscapeChecker.cpp.o
+[1647/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/StreamChecker.cpp.o
+[1648/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TaintTesterChecker.cpp.o
+[1649/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TestAfterDivZeroChecker.cpp.o
+[1650/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TraversalChecker.cpp.o
+[1651/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefBranchChecker.cpp.o
+[1652/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefCapturedBlockVarChecker.cpp.o
+[1653/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefResultChecker.cpp.o
+[1654/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefinedArraySubscriptChecker.cpp.o
+[1655/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefinedAssignmentChecker.cpp.o
+[1656/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UnixAPIChecker.cpp.o
+[1657/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UnreachableCodeChecker.cpp.o
+[1658/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VforkChecker.cpp.o
+[1659/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VLASizeChecker.cpp.o
+[1660/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VirtualCallChecker.cpp.o
+[1661/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelConsumer.cpp.o
+[1662/1837] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/BreakableToken.cpp.o
+[1663/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/FrontendActions.cpp.o
+[1664/1837] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelInjector.cpp.o
+[1665/1837] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/FormatToken.cpp.o
+[1666/1837] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/Format.cpp.o
+[1667/1837] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/TokenAnnotator.cpp.o
+[1668/1837] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineFormatter.cpp.o
+[1669/1837] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineParser.cpp.o
+[1670/1837] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/WhitespaceManager.cpp.o
+[1671/1837] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/DiagTool.cpp.o
+[1672/1837] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/diagtool_main.cpp.o
+[1673/1837] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/DiagnosticNames.cpp.o
+[1674/1837] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ListWarnings.cpp.o
+[1675/1837] Linking CXX static library lib/libclangStaticAnalyzerCheckers.a
+[1676/1837] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ShowEnabledWarnings.cpp.o
+[1677/1837] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/TreeView.cpp.o
+[1678/1837] Building CXX object tools/clang/tools/arcmt-test/CMakeFiles/arcmt-test.dir/arcmt-test.cpp.o
+[1679/1837] Linking CXX executable bin/yaml2obj
+[1680/1837] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DebugMap.cpp.o
+[1681/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/calc.c.o
+[1682/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/disassemble.c.o
+[1683/1837] Building CXX object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/echo.cpp.o
+[1684/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/helpers.c.o
+[1685/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/include-all.c.o
+[1686/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/main.c.o
+[1687/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/module.c.o
+[1688/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/metadata.c.o
+[1689/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/object.c.o
+[1690/1837] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/targets.c.o
+[1691/1837] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/llvm-diff.cpp.o
+[1692/1837] Linking CXX executable bin/llvm-pdbdump
+[1693/1837] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffConsumer.cpp.o
+[1694/1837] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffLog.cpp.o
+[1695/1837] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DifferenceEngine.cpp.o
+[1696/1837] Linking CXX executable bin/diagtool
+[1697/1837] Linking CXX static library lib/libclangFormat.a
+[1698/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/BuildSystem.cpp.o
+[1699/1837] Building CXX object tools/clang/tools/clang-format/CMakeFiles/clang-format.dir/ClangFormat.cpp.o
+[1700/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCXX.cpp.o
+[1701/1837] Linking CXX static library lib/libclangStaticAnalyzerFrontend.a
+[1702/1837] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o
+[1703/1837] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o
+[1704/1837] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o
+[1705/1837] Building CXX object tools/clang/tools/clang-check/CMakeFiles/clang-check.dir/ClangCheck.cpp.o
+[1706/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o
+[1707/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/ARCMigrate.cpp.o
+[1708/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o
+[1709/1837] Linking CXX executable bin/clang-format
+[1710/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o
+[1711/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexDiagnostic.cpp.o
+[1712/1837] Linking CXX executable bin/arcmt-test
+[1713/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexHigh.cpp.o
+[1714/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexInclusionStack.cpp.o
+[1715/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexUSRs.cpp.o
+[1716/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXString.cpp.o
+[1717/1837] Linking CXX executable bin/clang-check
+[1718/1837] Linking CXX executable bin/clang-3.9
+[1719/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o
+[1720/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXComment.cpp.o
+[1721/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCursor.cpp.o
+[1722/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXIndexDataConsumer.cpp.o
+[1723/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCompilationDatabase.cpp.o
+[1724/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXLoadedDiagnostic.cpp.o
+[1725/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXSourceLocation.cpp.o
+[1726/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXStoredDiagnostic.cpp.o
+[1727/1837] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXType.cpp.o
+[1728/1837] Linking CXX executable bin/llvm-c-test
+[1729/1837] Creating executable symlink bin/clang
+[1730/1837] Linking CXX executable bin/llvm-diff
+[1731/1837] Linking CXX executable bin/verify-uselistorder
+[1732/1837] Creating export file for BugpointPasses
+[1733/1837] Building CXX object tools/llvm-split/CMakeFiles/llvm-split.dir/llvm-split.cpp.o
+[1734/1837] Building CXX object tools/llc/CMakeFiles/llc.dir/llc.cpp.o
+[1735/1837] Building CXX object tools/llvm-lto/CMakeFiles/llvm-lto.dir/llvm-lto.cpp.o
+[1736/1837] Building CXX object tools/sancov/CMakeFiles/sancov.dir/sancov.cc.o
+[1737/1837] Building CXX object tools/lli/CMakeFiles/lli.dir/lli.cpp.o
+[1738/1837] Linking CXX executable bin/llvm-split
+[1739/1837] Building CXX object tools/lli/CMakeFiles/lli.dir/OrcLazyJIT.cpp.o
+[1740/1837] Building CXX object tools/lli/ChildTarget/CMakeFiles/lli-child-target.dir/ChildTarget.cpp.o
+[1741/1837] Building CXX object tools/llvm-symbolizer/CMakeFiles/llvm-symbolizer.dir/llvm-symbolizer.cpp.o
+[1742/1837] Building CXX object tools/llvm-mcmarkup/CMakeFiles/llvm-mcmarkup.dir/llvm-mcmarkup.cpp.o
+[1743/1837] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/llvm-objdump.cpp.o
+[1744/1837] Linking CXX executable bin/llc
+[1745/1837] Linking CXX executable bin/llvm-mcmarkup
+[1746/1837] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/COFFDump.cpp.o
+[1747/1837] Linking CXX executable bin/llvm-symbolizer
+[1748/1837] Linking CXX shared library lib/libclang.so.3.9
+[1749/1837] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/ELFDump.cpp.o
+[1750/1837] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/MachODump.cpp.o
+[1751/1837] Linking CXX executable bin/lli-child-target
+[1752/1837] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o
+[1753/1837] Linking CXX executable bin/llvm-lto
+[1754/1837] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o
+[1755/1837] Linking CXX executable bin/sancov
+[1756/1837] Building CXX object tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o
+[1757/1837] Building CXX object tools/llvm-mc/CMakeFiles/llvm-mc.dir/llvm-mc.cpp.o
+[1758/1837] Building CXX object tools/llvm-mc/CMakeFiles/llvm-mc.dir/Disassembler.cpp.o
+[1759/1837] Building CXX object tools/opt/CMakeFiles/opt.dir/BreakpointPrinter.cpp.o
+[1760/1837] Creating library symlink lib/libclang.so
+[1761/1837] Building CXX object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.o
+[1762/1837] Building C object tools/clang/tools/c-arcmt-test/CMakeFiles/c-arcmt-test.dir/c-arcmt-test.c.o
+[1763/1837] Building C object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.o
+[1764/1837] Linking CXX executable bin/c-arcmt-test
+[1765/1837] Linking CXX executable bin/lli
+[1766/1837] Building CXX object tools/opt/CMakeFiles/opt.dir/AnalysisWrappers.cpp.o
+[1767/1837] Building CXX object tools/opt/CMakeFiles/opt.dir/NewPMDriver.cpp.o
+[1768/1837] Building CXX object tools/opt/CMakeFiles/opt.dir/GraphPrinters.cpp.o
+[1769/1837] Linking CXX executable bin/llvm-cxxdump
+[1770/1837] Building CXX object tools/opt/CMakeFiles/opt.dir/PassPrinters.cpp.o
+[1771/1837] Linking CXX executable bin/llvm-mc
+[1772/1837] Building CXX object tools/opt/CMakeFiles/opt.dir/PrintSCC.cpp.o
+[1773/1837] Linking CXX executable bin/llvm-nm
+[1774/1837] Building CXX object tools/opt/CMakeFiles/opt.dir/opt.cpp.o
+[1775/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMWinEHPrinter.cpp.o
+[1776/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/StreamWriter.cpp.o
+[1777/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFDumper.cpp.o
+[1778/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o
+[1779/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMAttributeParser.cpp.o
+[1780/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/llvm-readobj.cpp.o
+[1781/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Error.cpp.o
+[1782/1837] Linking CXX executable bin/c-index-test
+[1783/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/MachODumper.cpp.o
+[1784/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ObjDumper.cpp.o
+[1785/1837] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Win64EHDumper.cpp.o
+[1786/1837] Linking CXX executable bin/llvm-objdump
+[1787/1837] Building CXX object tools/llvm-dis/CMakeFiles/llvm-dis.dir/llvm-dis.cpp.o
+[1788/1837] Building CXX object tools/llvm-link/CMakeFiles/llvm-link.dir/llvm-link.cpp.o
+[1789/1837] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageSummaryInfo.cpp.o
+[1790/1837] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/llvm-cov.cpp.o
+[1791/1837] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/gcov.cpp.o
+[1792/1837] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CodeCoverage.cpp.o
+[1793/1837] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/obj2yaml.cpp.o
+[1794/1837] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageFilters.cpp.o
+[1795/1837] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageReport.cpp.o
+[1796/1837] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/coff2yaml.cpp.o
+[1797/1837] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/SourceCoverageView.cpp.o
+[1798/1837] Linking CXX executable bin/llvm-link
+[1799/1837] Linking CXX executable bin/llvm-dis
+[1800/1837] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/TestingSupport.cpp.o
+[1801/1837] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/elf2yaml.cpp.o
+[1802/1837] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/Error.cpp.o
+[1803/1837] Linking CXX executable bin/opt
+[1804/1837] Building CXX object tools/llvm-dwarfdump/CMakeFiles/llvm-dwarfdump.dir/llvm-dwarfdump.cpp.o
+[1805/1837] Building CXX object tools/llvm-size/CMakeFiles/llvm-size.dir/llvm-size.cpp.o
+[1806/1837] Building CXX object tools/llvm-extract/CMakeFiles/llvm-extract.dir/llvm-extract.cpp.o
+[1807/1837] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/dsymutil.cpp.o
+[1808/1837] Building CXX object tools/llvm-as/CMakeFiles/llvm-as.dir/llvm-as.cpp.o
+[1809/1837] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachODebugMapParser.cpp.o
+[1810/1837] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/BinaryHolder.cpp.o
+[1811/1837] Linking CXX executable bin/llvm-cov
+[1812/1837] Linking CXX executable bin/llvm-as
+[1813/1837] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DwarfLinker.cpp.o
+[1814/1837] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachOUtils.cpp.o
+[1815/1837] Linking CXX executable bin/llvm-extract
+[1816/1837] Linking CXX executable bin/llvm-dwarfdump
+[1817/1837] Building CXX object tools/llvm-rtdyld/CMakeFiles/llvm-rtdyld.dir/llvm-rtdyld.cpp.o
+[1818/1837] Linking CXX executable bin/llvm-bcanalyzer
+[1819/1837] Building CXX object tools/llvm-dwp/CMakeFiles/llvm-dwp.dir/llvm-dwp.cpp.o
+[1820/1837] Linking CXX executable bin/llvm-size
+[1821/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o
+[1822/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o
+[1823/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o
+[1824/1837] Linking CXX executable bin/obj2yaml
+[1825/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o
+[1826/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o
+[1827/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o
+[1828/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o
+[1829/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o
+[1830/1837] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o
+[1831/1837] Linking CXX executable bin/llvm-readobj
+[1832/1837] Linking CXX executable bin/llvm-rtdyld
+[1833/1837] Linking CXX executable bin/llvm-dwp
+[1834/1837] Linking CXX executable bin/bugpoint
+[1835/1837] Building CXX object tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o
+[1836/1837] Linking CXX shared module lib/BugpointPasses.so
+[1837/1837] Linking CXX executable bin/llvm-dsymutil
 Running ninja check-all
-[1/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/DiagnosticTest.cpp.o
-[2/264] Building CXX object tools/clang/unittests/Driver/CMakeFiles/ClangDriverTests.dir/ToolChainTest.cpp.o
-[3/264] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/HeaderMapTest.cpp.o
-[4/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/CleanupTest.cpp.o
-[5/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/FileManagerTest.cpp.o
-[6/264] Building CXX object tools/clang/unittests/Driver/CMakeFiles/ClangDriverTests.dir/MultilibTest.cpp.o
-[7/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/CharInfoTest.cpp.o
-[8/264] Linking CXX executable tools/clang/unittests/Driver/ClangDriverTests
-[9/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTVectorTest.cpp.o
-[10/264] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/PPConditionalDirectiveRecordTest.cpp.o
-[11/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ExternalASTSourceTest.cpp.o
-[12/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/VirtualFileSystemTest.cpp.o
-[13/264] Building CXX object tools/clang/unittests/StaticAnalyzer/CMakeFiles/StaticAnalysisTests.dir/AnalyzerOptionsTest.cpp.o
-[14/264] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/LexerTest.cpp.o
-[15/264] Linking CXX executable tools/clang/unittests/StaticAnalyzer/StaticAnalysisTests
-[16/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/SourceManagerTest.cpp.o
-[17/264] Building CXX object tools/clang/unittests/Frontend/CMakeFiles/FrontendTests.dir/CodeGenActionTest.cpp.o
-[18/264] Linking CXX executable tools/clang/unittests/Basic/BasicTests
-[19/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/CommentParser.cpp.o
-[20/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/CommentLexer.cpp.o
-[21/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RewriterTest.cpp.o
-[22/264] Building CXX object tools/clang/unittests/CodeGen/CMakeFiles/ClangCodeGenTests.dir/BufferSourceTest.cpp.o
-[23/264] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/PPCallbacksTest.cpp.o
-[24/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestJS.cpp.o
-[25/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestJava.cpp.o
-[26/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ToolingTest.cpp.o
-[27/264] Building CXX object tools/clang/unittests/Rewrite/CMakeFiles/RewriteTests.dir/RewriteBufferTest.cpp.o
-[28/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestProto.cpp.o
-[29/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CompilationDatabaseTest.cpp.o
-[30/264] Linking CXX executable tools/clang/unittests/Lex/LexTests
-[31/264] Linking CXX executable tools/clang/unittests/Rewrite/RewriteTests
-[32/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ReplacementsYamlTest.cpp.o
-[33/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestSelective.cpp.o
-[34/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/SortIncludesTest.cpp.o
-[35/264] Building CXX object tools/clang/unittests/libclang/CMakeFiles/libclangTests.dir/LibclangTest.cpp.o
-[36/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DAGDeltaAlgorithmTest.cpp.o
-[37/264] Linking CXX executable tools/clang/unittests/libclang/libclangTests
-[38/264] Linking CXX executable tools/clang/unittests/CodeGen/ClangCodeGenTests
-[39/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APSIntTest.cpp.o
-[40/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntrusiveRefCntPtrTest.cpp.o
-[41/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/EvaluateAsRValueTest.cpp.o
-[42/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclTest.cpp.o
-[43/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ArrayRefTest.cpp.o
-[44/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DeltaAlgorithmTest.cpp.o
-[45/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CommentHandlerTest.cpp.o
-[46/264] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitReaderTest.cpp.o
-[47/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/NamedDeclPrinterTest.cpp.o
-[48/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/FoldingSet.cpp.o
-[49/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/FunctionRefTest.cpp.o
-[50/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DenseSetTest.cpp.o
-[51/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTContextParentMapTest.cpp.o
-[52/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTTypeTraitsTest.cpp.o
-[53/264] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/ParserTest.cpp.o
-[54/264] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/VariantValueTest.cpp.o
-[55/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ilistTest.cpp.o
-[56/264] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/RegistryTest.cpp.o
-[57/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/StmtPrinterTest.cpp.o
-[58/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/BitVectorTest.cpp.o
-[59/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APIntTest.cpp.o
-[60/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/LookupTest.cpp.o
-[61/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntEqClassesTest.cpp.o
-[62/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/HashingTest.cpp.o
-[63/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerEmbeddedIntTest.cpp.o
-[64/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ImmutableMapTest.cpp.o
-[65/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ImmutableSetTest.cpp.o
-[66/264] Building CXX object tools/clang/unittests/Frontend/CMakeFiles/FrontendTests.dir/FrontendActionTest.cpp.o
-[67/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PackedVectorTest.cpp.o
-[68/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PostOrderIteratorTest.cpp.o
-[69/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclPrinterTest.cpp.o
-[70/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o
-[71/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerIntPairTest.cpp.o
-[72/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/OptionalTest.cpp.o
-[73/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SetVectorTest.cpp.o
-[74/264] Building CXX object tools/clang/unittests/Sema/CMakeFiles/SemaTests.dir/ExternalSemaSourceTest.cpp.o
-[75/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/RangeAdapterTest.cpp.o
-[76/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterTest.cpp.o
-[77/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SCCIteratorTest.cpp.o
-[78/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerUnionTest.cpp.o
-[79/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/VariadicFunctionTest.cpp.o
-[80/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/MapVectorTest.cpp.o
-[81/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerSumTypeTest.cpp.o
-[82/264] Linking CXX executable tools/clang/unittests/ASTMatchers/Dynamic/DynamicASTMatchersTests
-[83/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/SourceLocationTest.cpp.o
-[84/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/QualTypeNamesTest.cpp.o
-[85/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestTypeLocVisitor.cpp.o
-[86/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RefactoringCallbacksTest.cpp.o
-[87/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallStringTest.cpp.o
-[88/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseBitVectorTest.cpp.o
-[89/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntervalMapTest.cpp.o
-In file included from /b/build/slave/linux_upload_clang/build/src/third_party/llvm/unittests/ADT/IntervalMapTest.cpp:10:0:
-/b/build/slave/linux_upload_clang/build/src/third_party/llvm/include/llvm/ADT/IntervalMap.h: In member function ‘void llvm::IntervalMap<KeyT, ValT, N, Traits>::const_iterator::treeAdvanceTo(KeyT) [with KeyT = unsigned int; ValT = unsigned int; unsigned int N = 4u; Traits = llvm::IntervalMapInfo<unsigned int>]’:
-/b/build/slave/linux_upload_clang/build/src/third_party/llvm/include/llvm/ADT/IntervalMap.h:563:58: warning: array subscript is above array bounds [-Warray-bounds]
+[1/259] Building CXX object tools/clang/unittests/Driver/CMakeFiles/ClangDriverTests.dir/ToolChainTest.cpp.o
+[2/259] Building CXX object tools/clang/unittests/Driver/CMakeFiles/ClangDriverTests.dir/MultilibTest.cpp.o
+[3/259] Building CXX object tools/clang/unittests/StaticAnalyzer/CMakeFiles/StaticAnalysisTests.dir/AnalyzerOptionsTest.cpp.o
+[4/259] Building CXX object tools/clang/unittests/Frontend/CMakeFiles/FrontendTests.dir/CodeGenActionTest.cpp.o
+[5/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTContextParentMapTest.cpp.o
+[6/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/CharInfoTest.cpp.o
+[7/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/DiagnosticTest.cpp.o
+[8/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/FileManagerTest.cpp.o
+[9/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/SourceManagerTest.cpp.o
+[10/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/VirtualFileSystemTest.cpp.o
+[11/259] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/HeaderMapTest.cpp.o
+[12/259] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/LexerTest.cpp.o
+[13/259] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/PPCallbacksTest.cpp.o
+[14/259] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/PPConditionalDirectiveRecordTest.cpp.o
+[15/259] Linking CXX executable tools/clang/unittests/Driver/ClangDriverTests
+[16/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CommentHandlerTest.cpp.o
+[17/259] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/VariantValueTest.cpp.o
+[18/259] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/RegistryTest.cpp.o
+[19/259] Linking CXX executable tools/clang/unittests/Basic/BasicTests
+[20/259] Building CXX object tools/clang/unittests/ASTMatchers/CMakeFiles/ASTMatchersTests.dir/ASTMatchersTest.cpp.o
+[21/259] Linking CXX executable tools/clang/unittests/StaticAnalyzer/StaticAnalysisTests
+[22/259] Building CXX object tools/clang/unittests/Frontend/CMakeFiles/FrontendTests.dir/FrontendActionTest.cpp.o
+[23/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTTypeTraitsTest.cpp.o
+[24/259] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/ParserTest.cpp.o
+[25/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTVectorTest.cpp.o
+[26/259] Linking CXX executable tools/clang/unittests/Lex/LexTests
+[27/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/CommentLexer.cpp.o
+[28/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/CommentParser.cpp.o
+[29/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclPrinterTest.cpp.o
+[30/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclTest.cpp.o
+[31/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/EvaluateAsRValueTest.cpp.o
+[32/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ExternalASTSourceTest.cpp.o
+[33/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/NamedDeclPrinterTest.cpp.o
+[34/259] Linking CXX executable tools/clang/unittests/Frontend/FrontendTests
+[35/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/SourceLocationTest.cpp.o
+[36/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/StmtPrinterTest.cpp.o
+[37/259] Linking CXX executable tools/clang/unittests/ASTMatchers/Dynamic/DynamicASTMatchersTests
+[38/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/LookupTest.cpp.o
+[39/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CompilationDatabaseTest.cpp.o
+[40/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ToolingTest.cpp.o
+[41/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTest.cpp.o
+[42/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestCallVisitor.cpp.o
+[43/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestDeclVisitor.cpp.o
+[44/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestExprVisitor.cpp.o
+[45/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestTypeLocVisitor.cpp.o
+[46/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RefactoringTest.cpp.o
+[47/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RewriterTest.cpp.o
+[48/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RefactoringCallbacksTest.cpp.o
+[49/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ReplacementsYamlTest.cpp.o
+[50/259] Linking CXX executable tools/clang/unittests/AST/ASTTests
+[51/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/QualTypeNamesTest.cpp.o
+[52/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTest.cpp.o
+[53/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestJava.cpp.o
+[54/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestJS.cpp.o
+[55/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestProto.cpp.o
+[56/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestSelective.cpp.o
+[57/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/SortIncludesTest.cpp.o
+[58/259] Building CXX object tools/clang/unittests/Rewrite/CMakeFiles/RewriteTests.dir/RewriteBufferTest.cpp.o
+[59/259] Building CXX object tools/clang/unittests/Sema/CMakeFiles/SemaTests.dir/ExternalSemaSourceTest.cpp.o
+[60/259] Building CXX object tools/clang/unittests/libclang/CMakeFiles/libclangTests.dir/LibclangTest.cpp.o
+[61/259] Building CXX object tools/clang/unittests/CodeGen/CMakeFiles/ClangCodeGenTests.dir/BufferSourceTest.cpp.o
+[62/259] Linking CXX executable tools/clang/unittests/Rewrite/RewriteTests
+[63/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/ASanStackFrameLayoutTest.cpp.o
+[64/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITTest.cpp.o
+[65/259] Building CXX object unittests/Transforms/IPO/CMakeFiles/IPOTests.dir/WholeProgramDevirt.cpp.o
+[66/259] Linking CXX executable tools/clang/unittests/libclang/libclangTests
+[67/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DAGDeltaAlgorithmTest.cpp.o
+[68/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APIntTest.cpp.o
+[69/259] Linking CXX executable tools/clang/unittests/ASTMatchers/ASTMatchersTests
+[70/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APFloatTest.cpp.o
+[71/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APSIntTest.cpp.o
+[72/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ArrayRefTest.cpp.o
+[73/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/BitVectorTest.cpp.o
+[74/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntrusiveRefCntPtrTest.cpp.o
+[75/259] Linking CXX executable tools/clang/unittests/CodeGen/ClangCodeGenTests
+[76/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DeltaAlgorithmTest.cpp.o
+[77/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DenseMapTest.cpp.o
+[78/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DenseSetTest.cpp.o
+[79/259] Linking CXX executable tools/clang/unittests/Sema/SemaTests
+[80/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/FoldingSet.cpp.o
+[81/259] Linking CXX executable tools/clang/unittests/Format/FormatTests
+[82/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/FunctionRefTest.cpp.o
+[83/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/HashingTest.cpp.o
+[84/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ilistTest.cpp.o
+[85/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ImmutableMapTest.cpp.o
+[86/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ImmutableSetTest.cpp.o
+[87/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntEqClassesTest.cpp.o
+[88/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntervalMapTest.cpp.o
+[89/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerEmbeddedIntTest.cpp.o
+[90/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o
+[91/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/MapVectorTest.cpp.o
+[92/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/OptionalTest.cpp.o
+[93/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PackedVectorTest.cpp.o
+[94/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PostOrderIteratorTest.cpp.o
+[95/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerIntPairTest.cpp.o
+[96/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerSumTypeTest.cpp.o
+[97/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerUnionTest.cpp.o
+[98/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/VariadicFunctionTest.cpp.o
+[99/259] Linking CXX executable tools/clang/unittests/Tooling/ToolingTests
+[100/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/RangeAdapterTest.cpp.o
+[101/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SCCIteratorTest.cpp.o
+[102/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SetVectorTest.cpp.o
+[103/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallPtrSetTest.cpp.o
+In file included from /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/unittests/ADT/IntervalMapTest.cpp:10:0:
+/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/IntervalMap.h: In member function ‘void llvm::IntervalMap<KeyT, ValT, N, Traits>::const_iterator::treeAdvanceTo(KeyT) [with KeyT = unsigned int; ValT = unsigned int; unsigned int N = 4u; Traits = llvm::IntervalMapInfo<unsigned int>]’:
+/b/build/slave/build_and_upload_clang/build/src/third_party/llvm/include/llvm/ADT/IntervalMap.h:563:58: warning: array subscript is above array bounds [-Warray-bounds]
    const KeyT &stop(unsigned i) const { return this->first[i].second; }
                                                           ^
-[90/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TwineTest.cpp.o
-[91/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTest.cpp.o
-[92/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseSetTest.cpp.o
-[93/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseMultiSetTest.cpp.o
-[94/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallPtrSetTest.cpp.o
-[95/264] Linking CXX executable tools/clang/unittests/Sema/SemaTests
-[96/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CallGraphTest.cpp.o
-[97/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/StringMapTest.cpp.o
-[98/264] Linking CXX executable tools/clang/unittests/Format/FormatTests
-[99/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TinyPtrVectorTest.cpp.o
-[100/264] Linking CXX executable tools/clang/unittests/Frontend/FrontendTests
-[101/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CFGTest.cpp.o
-[102/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APFloatTest.cpp.o
-[103/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/BlockFrequencyInfoTest.cpp.o
-[104/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/StringRefTest.cpp.o
-[105/264] Linking CXX executable tools/clang/unittests/AST/ASTTests
-[106/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DenseMapTest.cpp.o
-[107/264] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitstreamWriterTest.cpp.o
-[108/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/MixedTBAATest.cpp.o
-[109/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/AliasAnalysisTest.cpp.o
-[110/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/ValueTrackingTest.cpp.o
-[111/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestCallVisitor.cpp.o
-[112/264] Building CXX object unittests/DebugInfo/DWARF/CMakeFiles/DebugInfoDWARFTests.dir/DWARFFormValueTest.cpp.o
-[113/264] Building CXX object unittests/DebugInfo/PDB/CMakeFiles/DebugInfoPDBTests.dir/PDBApiTest.cpp.o
-[114/264] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
-[115/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/GlobalMappingLayerTest.cpp.o
-[116/264] Linking CXX executable unittests/DebugInfo/PDB/DebugInfoPDBTests
-[117/264] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/DIEHashTest.cpp.o
-[118/264] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitstreamReaderTest.cpp.o
-[119/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/ScalarEvolutionTest.cpp.o
-[120/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/LazyEmittingLayerTest.cpp.o
-[121/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TripleTest.cpp.o
-[122/264] Building CXX object unittests/AsmParser/CMakeFiles/AsmParserTests.dir/AsmParserTest.cpp.o
-[123/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/UnrollAnalyzer.cpp.o
-[124/264] Linking CXX executable unittests/Bitcode/BitcodeTests
-[125/264] Linking CXX executable unittests/CodeGen/CodeGenTests
-[126/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CGSCCPassManagerTest.cpp.o
-[127/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/AttributesTest.cpp.o
-[128/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/OrcTestCommon.cpp.o
-[129/264] Linking CXX executable unittests/AsmParser/AsmParserTests
-[130/264] Building CXX object unittests/ExecutionEngine/CMakeFiles/ExecutionEngineTests.dir/ExecutionEngineTest.cpp.o
-[131/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/IndirectionUtilsTest.cpp.o
-[132/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/LoopPassManagerTest.cpp.o
-[133/264] Linking CXX executable unittests/ExecutionEngine/ExecutionEngineTests
-[134/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/CompileOnDemandLayerTest.cpp.o
-[135/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/AsmWriterTest.cpp.o
-[136/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/OrcCAPITest.cpp.o
-[137/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITMemoryManagerTest.cpp.o
-[138/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/LazyCallGraphTest.cpp.o
-[139/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/RPCUtilsTest.cpp.o
-[140/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITCAPITest.cpp.o
-[141/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DebugTypeODRUniquingTest.cpp.o
-[142/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/IntrinsicsTest.cpp.o
-[143/264] Linking CXX executable unittests/Analysis/AnalysisTests
-[144/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/TypesTest.cpp.o
-[145/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITMultipleModuleTest.cpp.o
-[146/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DebugInfoTest.cpp.o
-[147/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestDeclVisitor.cpp.o
-[148/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITTest.cpp.o
-[149/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/FunctionTest.cpp.o
-[150/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ConstantsTest.cpp.o
-[151/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/ObjectLinkingLayerTest.cpp.o
-[152/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITObjectCacheTest.cpp.o
-[153/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/ObjectTransformLayerTest.cpp.o
-[154/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/UseTest.cpp.o
-[155/264] Building Opts.inc...
-[156/264] Updating Opts.inc...
-[157/264] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/Disassembler.cpp.o
-[158/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ConstantRangeTest.cpp.o
-[159/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/TypeBuilderTest.cpp.o
-[160/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorTest.cpp.o
-[161/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DominatorTreeTest.cpp.o
-[162/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/MDBuilderTest.cpp.o
-[163/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/UserTest.cpp.o
-[164/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/PatternMatch.cpp.o
-[165/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/LegacyPassManagerTest.cpp.o
-[166/264] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/StringTableBuilderTest.cpp.o
-[167/264] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/TargetRegistry.cpp.o
-[168/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/InstructionsTest.cpp.o
-[169/264] Linking CXX executable unittests/ADT/ADTTests
-[170/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/WaymarkTest.cpp.o
-[171/264] Building CXX object unittests/LineEditor/CMakeFiles/LineEditorTests.dir/LineEditor.cpp.o
-[172/264] Linking CXX executable unittests/LineEditor/LineEditorTests
-[173/264] Building CXX object unittests/ObjectYAML/CMakeFiles/ObjectYAMLTests.dir/YAMLTest.cpp.o
-[174/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/PassManagerTest.cpp.o
-[175/264] Linking CXX executable unittests/ObjectYAML/ObjectYAMLTests
-[176/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueHandleTest.cpp.o
-[177/264] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/DwarfLineTables.cpp.o
-[178/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/IRBuilderTest.cpp.o
-[179/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/VerifierTest.cpp.o
-[180/264] Linking CXX executable unittests/MC/MCTests
-[181/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RefactoringTest.cpp.o
-[182/264] Linking CXX executable unittests/ExecutionEngine/Orc/OrcJITTests
-[183/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueTest.cpp.o
-[184/264] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
-[185/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/CompressionTest.cpp.o
-[186/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/BlockFrequencyTest.cpp.o
-[187/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/FileOutputBufferTest.cpp.o
-[188/264] Building CXX object unittests/Linker/CMakeFiles/LinkerTests.dir/LinkModulesTest.cpp.o
-[189/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/AllocatorTest.cpp.o
-[190/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ManagedStatic.cpp.o
-[191/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ArrayRecyclerTest.cpp.o
-[192/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ErrorOrTest.cpp.o
-[193/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/DataExtractorTest.cpp.o
-[194/264] Building CXX object unittests/Option/CMakeFiles/OptionTests.dir/OptionParsingTest.cpp.o
-[195/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MD5Test.cpp.o
-[196/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/BranchProbabilityTest.cpp.o
-[197/264] Linking CXX executable unittests/Option/OptionTests
-[198/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Casting.cpp.o
-[199/264] Linking CXX executable unittests/Linker/LinkerTests
-[200/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/EndianStreamTest.cpp.o
-[201/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/AlignOfTest.cpp.o
-[202/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/DwarfTest.cpp.o
-[203/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ReplaceFileTest.cpp.o
-[204/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/CommandLineTest.cpp.o
-[205/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LockFileManagerTest.cpp.o
-[206/264] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/SampleProfTest.cpp.o
-[207/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/EndianTest.cpp.o
-[208/264] Building CXX object unittests/MI/CMakeFiles/MITests.dir/LiveIntervalTest.cpp.o
-[209/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/IteratorTest.cpp.o
-[210/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ProcessTest.cpp.o
-[211/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/StringPool.cpp.o
-[212/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ErrorTest.cpp.o
-[213/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LEB128Test.cpp.o
-[214/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TimeValueTest.cpp.o
-[215/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TargetParserTest.cpp.o
-[216/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LineIteratorTest.cpp.o
-[217/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ThreadLocalTest.cpp.o
-[218/264] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/CoverageMappingTest.cpp.o
-[219/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/StreamingMemoryObjectTest.cpp.o
-[220/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueMapTest.cpp.o
-[221/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TimerTest.cpp.o
-[222/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TypeNameTest.cpp.o
-[223/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MemoryBufferTest.cpp.o
-[224/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SourceMgrTest.cpp.o
-[225/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MathExtrasTest.cpp.o
-[226/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MemoryTest.cpp.o
-[227/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SwapByteOrderTest.cpp.o
-[228/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/formatted_raw_ostream_test.cpp.o
-[229/264] Linking CXX executable unittests/MI/MITests
-[230/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SpecialCaseListTest.cpp.o
-[231/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/RegexTest.cpp.o
-[232/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_pwrite_stream_test.cpp.o
-[233/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_sha1_ostream_test.cpp.o
-[234/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ProgramTest.cpp.o
-[235/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/UnicodeTest.cpp.o
-[236/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/ASanStackFrameLayoutTest.cpp.o
-[237/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TrailingObjectsTest.cpp.o
-[238/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ThreadPool.cpp.o
-[239/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/YAMLParserTest.cpp.o
-[240/264] Building CXX object unittests/Transforms/IPO/CMakeFiles/IPOTests.dir/WholeProgramDevirt.cpp.o
-[241/264] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/InstrProfTest.cpp.o
-[242/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Path.cpp.o
-[243/264] Building CXX object unittests/Transforms/IPO/CMakeFiles/IPOTests.dir/LowerBitSets.cpp.o
-[244/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_ostream_test.cpp.o
-[245/264] Linking CXX executable unittests/ProfileData/ProfileDataTests
-[246/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ScaledNumberTest.cpp.o
-[247/264] Linking CXX executable unittests/Transforms/IPO/IPOTests
-[248/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/IntegerDivision.cpp.o
-[249/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/Local.cpp.o
-[250/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/MetadataTest.cpp.o
-[251/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/ValueMapperTest.cpp.o
-[252/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTest.cpp.o
-[253/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ConvertUTFTest.cpp.o
-[254/264] Linking CXX executable unittests/IR/IRTests
-[255/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/MemorySSA.cpp.o
-[256/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/Cloning.cpp.o
-[257/264] Linking CXX executable unittests/Transforms/Utils/UtilsTests
-[258/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/YAMLIOTest.cpp.o
-[259/264] Linking CXX executable unittests/Support/SupportTests
-[260/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestExprVisitor.cpp.o
-[261/264] Linking CXX executable tools/clang/unittests/Tooling/ToolingTests
-[262/264] Building CXX object tools/clang/unittests/ASTMatchers/CMakeFiles/ASTMatchersTests.dir/ASTMatchersTest.cpp.o
-[263/264] Linking CXX executable tools/clang/unittests/ASTMatchers/ASTMatchersTests
-[263/264] Running all regression tests
-lit.py: lit.cfg:195: note: using clang: '/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap/./bin/clang'
--- Testing: 26009 tests, 32 threads --
+[104/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallStringTest.cpp.o
+[105/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorTest.cpp.o
+[106/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseBitVectorTest.cpp.o
+[107/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseMultiSetTest.cpp.o
+[108/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseSetTest.cpp.o
+[109/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/StringMapTest.cpp.o
+[110/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/StringRefTest.cpp.o
+[111/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TinyPtrVectorTest.cpp.o
+[112/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TripleTest.cpp.o
+[113/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TwineTest.cpp.o
+[114/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/AliasAnalysisTest.cpp.o
+[115/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CGSCCPassManagerTest.cpp.o
+[116/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/BlockFrequencyInfoTest.cpp.o
+[117/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CallGraphTest.cpp.o
+[118/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CFGTest.cpp.o
+[119/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/LazyCallGraphTest.cpp.o
+[120/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/LoopPassManagerTest.cpp.o
+[121/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/ScalarEvolutionTest.cpp.o
+[122/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/MixedTBAATest.cpp.o
+[123/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/ValueTrackingTest.cpp.o
+[124/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/UnrollAnalyzer.cpp.o
+[125/259] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitstreamReaderTest.cpp.o
+[126/259] Building CXX object unittests/AsmParser/CMakeFiles/AsmParserTests.dir/AsmParserTest.cpp.o
+[127/259] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitReaderTest.cpp.o
+[128/259] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitstreamWriterTest.cpp.o
+[129/259] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/DIEHashTest.cpp.o
+[130/259] Building CXX object unittests/DebugInfo/PDB/CMakeFiles/DebugInfoPDBTests.dir/PDBApiTest.cpp.o
+[131/259] Building CXX object unittests/DebugInfo/DWARF/CMakeFiles/DebugInfoDWARFTests.dir/DWARFFormValueTest.cpp.o
+[132/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/CompileOnDemandLayerTest.cpp.o
+[133/259] Building CXX object unittests/ExecutionEngine/CMakeFiles/ExecutionEngineTests.dir/ExecutionEngineTest.cpp.o
+[134/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/IndirectionUtilsTest.cpp.o
+[135/259] Linking CXX executable unittests/ADT/ADTTests
+[136/259] Linking CXX executable unittests/Analysis/AnalysisTests
+[137/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/GlobalMappingLayerTest.cpp.o
+[138/259] Linking CXX executable unittests/AsmParser/AsmParserTests
+[139/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/LazyEmittingLayerTest.cpp.o
+[140/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/ObjectLinkingLayerTest.cpp.o
+[141/259] Linking CXX executable unittests/CodeGen/CodeGenTests
+[142/259] Linking CXX executable unittests/DebugInfo/PDB/DebugInfoPDBTests
+[143/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/ObjectTransformLayerTest.cpp.o
+[144/259] Linking CXX executable unittests/Bitcode/BitcodeTests
+[145/259] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
+[146/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/OrcCAPITest.cpp.o
+[147/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/OrcTestCommon.cpp.o
+[148/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/RPCUtilsTest.cpp.o
+[149/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITCAPITest.cpp.o
+[150/259] Linking CXX executable unittests/ExecutionEngine/ExecutionEngineTests
+[151/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITMemoryManagerTest.cpp.o
+[152/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITMultipleModuleTest.cpp.o
+[153/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITObjectCacheTest.cpp.o
+[154/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/AttributesTest.cpp.o
+[155/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ConstantRangeTest.cpp.o
+[156/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/AsmWriterTest.cpp.o
+[157/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ConstantsTest.cpp.o
+[158/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DebugInfoTest.cpp.o
+[159/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DominatorTreeTest.cpp.o
+[160/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/IRBuilderTest.cpp.o
+[161/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/InstructionsTest.cpp.o
+[162/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/IntrinsicsTest.cpp.o
+[163/259] Linking CXX executable unittests/ExecutionEngine/Orc/OrcJITTests
+[164/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/LegacyPassManagerTest.cpp.o
+[165/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/MDBuilderTest.cpp.o
+[166/259] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
+[167/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/MetadataTest.cpp.o
+[168/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/PassManagerTest.cpp.o
+[169/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/PatternMatch.cpp.o
+[170/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/TypeBuilderTest.cpp.o
+[171/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/TypesTest.cpp.o
+[172/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/UseTest.cpp.o
+[173/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/UserTest.cpp.o
+[174/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueHandleTest.cpp.o
+[175/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueMapTest.cpp.o
+[176/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueTest.cpp.o
+[177/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/VerifierTest.cpp.o
+[178/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/WaymarkTest.cpp.o
+[179/259] Building CXX object unittests/LineEditor/CMakeFiles/LineEditorTests.dir/LineEditor.cpp.o
+[180/259] Building CXX object unittests/Linker/CMakeFiles/LinkerTests.dir/LinkModulesTest.cpp.o
+[181/259] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/DwarfLineTables.cpp.o
+[182/259] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/Disassembler.cpp.o
+[183/259] Building CXX object unittests/MI/CMakeFiles/MITests.dir/LiveIntervalTest.cpp.o
+[184/259] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/StringTableBuilderTest.cpp.o
+[185/259] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/TargetRegistry.cpp.o
+[186/259] Building CXX object unittests/ObjectYAML/CMakeFiles/ObjectYAMLTests.dir/YAMLTest.cpp.o
+[187/259] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/CoverageMappingTest.cpp.o
+[188/259] Linking CXX executable unittests/LineEditor/LineEditorTests
+[189/259] Building Opts.inc...
+[190/259] Updating Opts.inc...
+[191/259] Building CXX object unittests/Option/CMakeFiles/OptionTests.dir/OptionParsingTest.cpp.o
+[192/259] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/InstrProfTest.cpp.o
+[193/259] Linking CXX executable unittests/MI/MITests
+[194/259] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/SampleProfTest.cpp.o
+[195/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/AlignOfTest.cpp.o
+[196/259] Linking CXX executable unittests/MC/MCTests
+[197/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/CommandLineTest.cpp.o
+[198/259] Linking CXX executable unittests/Linker/LinkerTests
+[199/259] Linking CXX executable unittests/ObjectYAML/ObjectYAMLTests
+[200/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/AllocatorTest.cpp.o
+[201/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ArrayRecyclerTest.cpp.o
+[202/259] Linking CXX executable unittests/Option/OptionTests
+[203/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/BlockFrequencyTest.cpp.o
+[204/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/BranchProbabilityTest.cpp.o
+[205/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Casting.cpp.o
+[206/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/CompressionTest.cpp.o
+[207/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ConvertUTFTest.cpp.o
+[208/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LineIteratorTest.cpp.o
+[209/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/DataExtractorTest.cpp.o
+[210/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/DwarfTest.cpp.o
+[211/259] Linking CXX executable unittests/IR/IRTests
+[212/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/EndianStreamTest.cpp.o
+[213/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/FileOutputBufferTest.cpp.o
+[214/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/EndianTest.cpp.o
+[215/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ErrorTest.cpp.o
+[216/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ErrorOrTest.cpp.o
+[217/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/IteratorTest.cpp.o
+[218/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SwapByteOrderTest.cpp.o
+[219/259] Linking CXX executable unittests/ProfileData/ProfileDataTests
+[220/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LEB128Test.cpp.o
+[221/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ManagedStatic.cpp.o
+[222/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LockFileManagerTest.cpp.o
+[223/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MD5Test.cpp.o
+[224/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ReplaceFileTest.cpp.o
+[225/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MathExtrasTest.cpp.o
+[226/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MemoryBufferTest.cpp.o
+[227/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MemoryTest.cpp.o
+[228/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Path.cpp.o
+[229/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ProcessTest.cpp.o
+[230/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ProgramTest.cpp.o
+[231/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/RegexTest.cpp.o
+[232/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ScaledNumberTest.cpp.o
+[233/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SourceMgrTest.cpp.o
+[234/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SpecialCaseListTest.cpp.o
+[235/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/StreamingMemoryObjectTest.cpp.o
+[236/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/StringPool.cpp.o
+[237/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TimeValueTest.cpp.o
+[238/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TargetParserTest.cpp.o
+[239/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ThreadLocalTest.cpp.o
+[240/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ThreadPool.cpp.o
+[241/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TimerTest.cpp.o
+[242/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/YAMLParserTest.cpp.o
+[243/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TypeNameTest.cpp.o
+[244/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TrailingObjectsTest.cpp.o
+[245/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/UnicodeTest.cpp.o
+[246/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/YAMLIOTest.cpp.o
+[247/259] Building CXX object unittests/Transforms/IPO/CMakeFiles/IPOTests.dir/LowerBitSets.cpp.o
+[248/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/formatted_raw_ostream_test.cpp.o
+[249/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_ostream_test.cpp.o
+[250/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_pwrite_stream_test.cpp.o
+[251/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/Cloning.cpp.o
+[252/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/IntegerDivision.cpp.o
+[253/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/Local.cpp.o
+[254/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/MemorySSA.cpp.o
+[255/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/ValueMapperTest.cpp.o
+[256/259] Linking CXX executable unittests/Transforms/IPO/IPOTests
+[257/259] Linking CXX executable unittests/Transforms/Utils/UtilsTests
+[258/259] Linking CXX executable unittests/Support/SupportTests
+[259/259] Running all regression tests
+lit.py: lit.cfg:195: note: using clang: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap/./bin/clang'
+-- Testing: 25439 tests, 8 threads --
 Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
-Testing Time: 40.44s
-  Expected Passes    : 19306
-  Expected Failures  : 49
-  Unsupported Tests  : 6654
+Testing Time: 124.45s
+  Expected Passes    : 18867
+  Expected Failures  : 50
+  Unsupported Tests  : 6522
 Running ninja install
-[0/1] Install the project...
+[1/1] Install the project...
 -- Install configuration: "Release"
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LineEditor
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LineEditor/LineEditor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/PassAnalysisSupport.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LinkAllIR.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/InitializePasses.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/MapVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SparseMultiSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ImmutableSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/VariadicFunction.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PointerIntPair.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/UniqueVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/IntervalMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PriorityQueue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/APSInt.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/IntEqClasses.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/APFloat.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringSwitch.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ilist_node.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/IndexedMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PostOrderIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DenseMapInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/edit_distance.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/EpochTracker.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PointerSumType.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/None.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Twine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/BitVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/IntrusiveRefCntPtr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Optional.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SetVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallString.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/GraphTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Hashing.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ArrayRef.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/FoldingSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PointerUnion.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringExtras.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DenseSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SparseBitVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DepthFirstIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ilist.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DeltaAlgorithm.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/APInt.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ScopedHashTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Triple.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PackedVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringRef.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallBitVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Statistic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SCCIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DAGDeltaAlgorithm.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/EquivalenceClasses.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PointerEmbeddedInt.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DenseMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/iterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ImmutableMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SparseSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/STLExtras.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SetOperations.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ImmutableList.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/TinyPtrVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallPtrSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/iterator_range.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSchedule.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmLayout.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSymbolELF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCTargetOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCValue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCStreamer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCFixupKindInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDwarf.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCMachObjectWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCObjectFileInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSymbolCOFF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/SubtargetFeature.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInst.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSectionCOFF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCWinEH.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstrInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmInfoDarwin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCWinCOFFStreamer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAnalysis
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSectionELF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCWinCOFFObjectWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmInfoELF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCELFStreamer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCAsmLexer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/AsmCond.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCAsmParserExtension.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCAsmParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCAsmParserUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCTargetAsmParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCParsedAsmOperand.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/AsmLexer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCELFObjectWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCCodeEmitter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/StringTableBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCCodeView.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCCodeGenInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/SectionKind.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmInfoCOFF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCLabel.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCObjectStreamer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSubtargetInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAssembler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCRegisterInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCFragment.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCLinkerOptimizationHint.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmBackend.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstrAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCFixedLenDisassembler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSection.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSectionMachO.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDirectives.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCObjectWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCFixup.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCWin64EH.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCExpr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MachineLocation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCTargetOptionsCommandFlags.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSymbol.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler/MCSymbolizer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler/MCDisassembler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstrDesc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstrItineraries.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSymbolMachO.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/ConstantPools.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/StripDeadPrototypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/InferFunctionAttrs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/WholeProgramDevirt.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/ElimAvailExtern.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/LowerBitSets.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/ConstantMerge.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/SCCP.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/FunctionImport.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/InlinerPass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/GlobalDCE.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/PassManagerBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/FunctionAttrs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/GlobalOpt.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/Internalize.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/InstCombine
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/InstCombine/InstCombineWorklist.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/InstCombine/InstCombine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Instrumentation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Vectorize.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/PromoteMemToReg.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SimplifyLibCalls.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/GlobalStatus.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SymbolRewriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/CodeExtractor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/Evaluator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SSAUpdater.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/Cloning.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/CtorUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/LoopUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/ASanStackFrameLayout.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/IntegerDivision.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SplitModule.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/BuildLibCalls.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/UnrollLoop.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/FunctionImportUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/ValueMapper.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/BasicBlockUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/MemorySSA.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SimplifyIndVar.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/LoopVersioning.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/CmpInstAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/Local.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/BypassSlowDivision.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SanitizerStats.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/ModuleUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/ObjCARC.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/Sink.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/GVN.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/SROA.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/Reassociate.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/SimplifyCFG.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/ADCE.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/EarlyCSE.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/DCE.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/LoopRotation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/InstrProfiling.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/PGOInstrumentation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetSubtargetInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/CostTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetInstrInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetLoweringObjectFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetLowering.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetSchedule.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetRegisterInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetSelectionDAG.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetOpcodes.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetOpcodes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetRecip.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetMachine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetFrameLowering.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/Target.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetItinerary.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetCallingConv.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetCallingConv.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/GenericOpcodes.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetIntrinsicInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/PassRegistry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Linker
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Linker/IRMover.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Linker/Linker.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Passes
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Passes/PassBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/SymbolRecord.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeDumper.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CodeViewOStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeRecord.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/Line.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeRecordBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CVLeafTypes.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeIndex.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/FieldListRecordBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/FunctionId.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CodeView.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/ListRecordBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/MethodListRecordBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeRecords.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/Symbolize
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/Symbolize/DIPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/Symbolize/Symbolize.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/TpiStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/MappedBlockStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/RawSession.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/ByteStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/DbiStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/InfoStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/NameHashTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/RawError.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/StreamInterface.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/ModInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/PDBFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/RawConstants.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/NameMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/Raw/StreamReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBExtras.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolData.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDB.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbol.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBSourceFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/GenericError.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBTypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBSession.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBLineNumber.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymDumper.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAError.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIASession.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIASupport.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBDataStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFUnit.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFSection.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DIContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsSystemZ.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DebugInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/AssemblyAnnotationWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DiagnosticInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/InstIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Module.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/PredIteratorCache.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ValueSymbolTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/CallSite.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsXCore.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/PatternMatch.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Attributes.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsAArch64.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Attributes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IRBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/InstrTypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/MDBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsAMDGPU.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsHexagon.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DiagnosticPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalValue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Value.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsWebAssembly.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalIndirectSymbol.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/CallingConv.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Metadata.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Mangler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Function.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DerivedTypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/AutoUpgrade.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Use.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/PassManagerInternal.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Argument.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalVariable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Intrinsics.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GVMaterializer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/InstVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/PassManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Intrinsics.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/OptBisect.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DebugInfoFlags.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/NoFolder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsMips.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalIFunc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/LegacyPassManagers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Statepoint.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DataLayout.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsARM.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DebugInfoMetadata.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DIBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsPowerPC.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Metadata.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ModuleSummaryIndex.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DebugLoc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Comdat.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/LegacyPassManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/LegacyPassNameParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/TypeFinder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalObject.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/InlineAsm.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsNVVM.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/CFG.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ConstantFolder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/TypeBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ValueMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IRPrintingPasses.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicInst.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Instruction.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ValueHandle.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Constant.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Operator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/TrackingMDRef.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/SymbolTableListTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsBPF.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/UseListOrder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/LLVMContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Type.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Constants.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/BasicBlock.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Dominators.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalAlias.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsX86.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Instruction.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Instructions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Verifier.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Value.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/OperandTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ModuleSlotTracker.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GetElementPtrTypeIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ConstantRange.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/User.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/PassInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Pass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/RelocVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ObjectFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ModuleSummaryIndexObjectFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/MachO.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/Binary.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/COFF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ELFTypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/MachOUniversal.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/SymbolSize.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/Error.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/COFFImportFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/StackMapParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ELFObjectFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/IRObjectFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ELF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/Archive.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ArchiveWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/SymbolicFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LTO
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LTO/ThinLTOCodeGenerator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LTO/LTOModule.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LTO/LTOCodeGenerator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/ProfileCommon.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/InstrProfWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/Coverage
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/Coverage/CoverageMapping.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/SampleProfWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/SampleProfReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/SampleProf.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/InstrProf.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/InstrProfReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/InstrProfData.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ObjectYAML
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ObjectYAML/COFFYAML.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ObjectYAML/ELFYAML.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ObjectYAML/YAML.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LibDriver
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LibDriver/LibDriver.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFunctionAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ValueTypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveRangeEdit.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/Passes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachORelocation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DAGCombine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFunctionPass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineSSAUpdater.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/WinEHFuncInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LinkAllCodegenComponents.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/FunctionLoweringInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LexicalScopes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DFAPacketizer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/Solution.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/ReductionRules.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/Graph.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/CostAllocator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/Math.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GCs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineDominanceFrontier.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineTraceMetrics.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveIntervalAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleDAGInstrs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MIRYamlMapping.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SelectionDAGNodes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PseudoSourceValue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachinePassRegistry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveVariables.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleDAGMutation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RuntimeLibcalls.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/StackProtector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SlotIndexes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineRegisterInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineCombinerPattern.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/TargetSchedule.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleDAG.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/IntrinsicLowering.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/AsmPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/TailDuplicator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ParallelCG.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/FaultMaps.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveRegMatrix.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFunctionInitializer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveIntervalUnion.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GCMetadata.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/Analysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineValueType.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineInstr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GCMetadataPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineConstantPool.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/AtomicExpandUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegisterClassInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegisterPressure.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SchedulerRegistry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DIE.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineScheduler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineDominators.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegisterScavenging.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ResourcePriorityQueue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineRegionInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFrameInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SelectionDAGISel.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineJumpTableInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SelectionDAG.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveInterval.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineModuleInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleDFS.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LatencyPriorityQueue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQPRAConstraint.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DIEValue.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineInstrBundle.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFunction.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/CalcSpillWeights.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineInstrBundleIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GCStrategy.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/CommandFlags.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/BasicTTIImpl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DwarfStringPoolEntry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/Types.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/RegisterBank.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/CallLowering.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/GISelAccessor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/IRTranslator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineModuleInfoImpls.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ValueTypes.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegAllocRegistry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ISDOpcodes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleHazardRecognizer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/VirtRegMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/CallingConvLower.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MIRParser
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MIRParser/MIRParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachinePostDominators.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineLoopInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/EdgeBundles.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SelectionDAGTargetInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineBasicBlock.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LinkAllAsmWriterComponents.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/StackMaps.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineOperand.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LivePhysRegs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveStackAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegAllocPBQP.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/FastISel.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineMemOperand.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineInstrBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CGSCCPassManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/IntervalIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Passes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ObjCARCInstKind.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolutionExpander.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LazyCallGraph.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/GlobalsModRef.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/AliasAnalysisEvaluator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CallPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DependenceAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/IteratedDominanceFrontier.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Trace.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/OrderedBasicBlock.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/AliasAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/IntervalPartition.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopAccessAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/PostDominators.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/PtrUseVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CFGPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/InlineCost.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetLibraryInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetFolder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/AliasSetTracker.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ObjCARCAnalysisUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DominanceFrontier.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/MemoryBuiltins.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopPass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/BasicAliasAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CaptureTracking.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DominanceFrontierImpl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionPass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopPassManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CallGraph.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/MemoryDependenceAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolution.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DomPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetTransformInfoImpl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/VectorUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/MemoryLocation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CodeMetrics.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/AssumptionCache.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/InstructionSimplify.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ValueTracking.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ObjCARCAliasAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ConstantFolding.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetTransformInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DemandedBits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/EHPersonalities.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DivergenceAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LazyValueInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CFG.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopInfoImpl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DOTGraphTraitsPass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/BlockFrequencyInfoImpl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CallGraphSCCPass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/SparsePropagation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ModuleSummaryAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionInfoImpl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Interval.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/BlockFrequencyInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TypeBasedAliasAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/PHITransAddr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/BranchProbabilityInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/IVUsers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopUnrollAnalyzer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CFLAliasAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolutionNormalization.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolutionExpressions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Loads.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScopedNoAliasAA.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Lint.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetLibraryInfo.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DataStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Threading.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Timer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/YAMLTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TrailingObjects.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Unicode.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ARMBuildAttributes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ManagedStatic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CBindingWrapping.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Options.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MipsABIFlags.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MachO.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Memory.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Atomic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/RWMutex.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Signals.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MemoryObject.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/FileOutputBuffer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TimeValue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Valgrind.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/WebAssembly.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/Lanai.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/Sparc.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/x86_64.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/ARM.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/AVR.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/i386.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/SystemZ.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/Hexagon.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/PowerPC64.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/AArch64.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/PowerPC.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/Mips.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/BranchProbability.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TargetRegistry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DynamicLibrary.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Printable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MD5.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/COFF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/RecyclingAllocator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TypeName.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/COM.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/LineIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/AtomicOrdering.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/StreamingMemoryObject.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/YAMLParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ARMTargetParser.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/JamCRC.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CommandLine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/LockFileManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ARMWinEH.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Capacity.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Error.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Locale.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ThreadPool.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TargetSelect.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/GenericDomTreeConstruction.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/type_traits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Compression.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Program.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/FileUtilities.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/BlockFrequency.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CachePruning.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ArrayRecycler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SHA1.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/PrettyStackTrace.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/GenericDomTree.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MathExtras.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/raw_sha1_ostream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Compiler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/GCOV.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DataExtractor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/raw_ostream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Path.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/FormattedStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/UniqueLock.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/EndianStream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/UnicodeCharRanges.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/StringPool.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ThreadLocal.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/PointerLikeTypeTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ScopedPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Host.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ErrorHandling.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/RandomNumberGenerator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MutexGuard.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Format.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Watchdog.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SourceMgr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SMLoc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Endian.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Mutex.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ARMEHABI.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SwapByteOrder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/GraphWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Registry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Recycler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Win64EH.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CodeGenCWrappers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Casting.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SystemUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/PluginLoader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DOTGraphTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/OnDiskHashTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SpecialCaseList.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/FileSystem.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TargetParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ScaledNumber.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MemoryBuffer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/WindowsError.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ErrorOr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Solaris.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Process.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/AlignOf.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Dwarf.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/LICENSE.TXT
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Regex.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/raw_os_ostream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/StringSaver.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Dwarf.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CrashRecoveryContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/thread.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/circular_raw_ostream.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Errc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Allocator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CodeGen.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/LEB128.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Errno.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Debug.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ToolOutputFile.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SaveAndRestore.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ConvertUTF.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/GenericValue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/MCJIT.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/SectionMemoryManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/OProfileWrapper.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/JITSymbolFlags.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/RuntimeDyld.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Interpreter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/ObjectCache.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/OrcMCJITReplacement.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/JITEventListener.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/ExecutionEngine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/JITSymbol.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/RPCUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcError.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/RPCChannel.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/CompileUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/NullResolver.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/LambdaResolver.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/LogicalDylib.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/AsmParser
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/AsmParser/Parser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/AsmParser/SlotMapping.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IRReader
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IRReader/IRReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/OptParser.td
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/ArgList.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/OptSpecifier.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/OptTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/Option.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/Arg.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/ReaderWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/BitstreamWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/LLVMBitCodes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/BitcodeWriterPass.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/BitstreamReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/BitCodes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LinkAllPasses.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/Main.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/StringMatcher.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/Error.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/StringToOffsetTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/TableGenBackend.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/SetTheory.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/Record.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/PassSupport.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Types.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Target.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/lto.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Core.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Linker.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms/Scalar.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms/Vectorize.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms/PassManagerBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms/IPO.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Initialization.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Analysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Disassembler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/TargetMachine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/BitWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/ErrorHandling.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/BitReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/ExecutionEngine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Object.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/OrcBindings.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/IRReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/LinkTimeOptimizer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Support.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Attributes.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Intrinsics.gen
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DataTypes.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/AsmPrinters.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/Targets.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/llvm-config.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/AsmParsers.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/Disassemblers.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMSupport.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMTableGen.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-tblgen
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMCore.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMIRReader.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMCodeGen.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMSelectionDAG.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMAsmPrinter.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMIRParser.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMGlobalISel.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMBitReader.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMBitWriter.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMTransformUtils.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMInstrumentation.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMInstCombine.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMScalarOpts.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMipo.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMVectorize.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/LLVMHello.so
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMObjCARCOpts.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMLinker.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMAnalysis.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMLTO.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMC.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMCParser.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMCDisassembler.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMObject.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMObjectYAML.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMOption.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMDebugInfoCodeView.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMDebugInfoDWARF.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMDebugInfoPDB.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMSymbolize.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMExecutionEngine.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMInterpreter.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMCJIT.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMOrcJIT.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMRuntimeDyld.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMTarget.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86CodeGen.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86AsmParser.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86Disassembler.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86AsmPrinter.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86Desc.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86Info.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86Utils.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMAsmParser.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMLineEditor.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMProfileData.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMCoverage.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMPasses.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMLibDriver.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLTO.so
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/lto.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/LLVMgold.so
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-ar
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Passes
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Passes/PassBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LinkAllIR.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LTO
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LTO/LTOModule.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LTO/LTOCodeGenerator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LTO/ThinLTOCodeGenerator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/ExecutionEngine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/OProfileWrapper.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/JITSymbolFlags.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/SectionMemoryManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/NullResolver.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/CompileUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcError.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcArchitectureSupport.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/JITSymbol.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/LogicalDylib.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/RPCChannel.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/LambdaResolver.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/RPCUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/MCJIT.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/RuntimeDyld.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/GenericValue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/Interpreter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/JITEventListener.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/OrcMCJITReplacement.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/ObjectCache.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CommandLine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ArrayRecycler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/EndianStream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/LockFileManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Signals.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TimeValue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SourceMgr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Recycler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/raw_os_ostream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/FileOutputBuffer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/FormattedStream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ErrorOr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ARMEHABI.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/PluginLoader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/LineIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/BlockFrequency.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Unicode.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/StreamingMemoryObject.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TargetParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MipsABIFlags.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/AlignOf.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CBindingWrapping.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CodeGen.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SMLoc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/YAMLTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/RWMutex.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/RecyclingAllocator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/RandomNumberGenerator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SystemUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TrailingObjects.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ToolOutputFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Program.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Memory.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Options.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Host.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Timer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Watchdog.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/circular_raw_ostream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Atomic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Threading.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/type_traits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ARMBuildAttributes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Dwarf.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/raw_ostream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ErrorHandling.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CodeGenCWrappers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SwapByteOrder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/StringPool.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Win64EH.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Endian.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ARMTargetParser.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/FileSystem.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/JamCRC.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Printable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ScaledNumber.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ThreadLocal.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ARMWinEH.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Regex.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/LICENSE.TXT
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Solaris.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Allocator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MachO.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/UniqueLock.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Errno.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/COFF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Registry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ThreadPool.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SpecialCaseList.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/thread.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MathExtras.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MemoryObject.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/BranchProbability.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/StringSaver.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MD5.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/COM.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Dwarf.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TargetSelect.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Mutex.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/UnicodeCharRanges.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Locale.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/LEB128.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TypeName.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DynamicLibrary.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Debug.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/FileUtilities.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/GraphWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Capacity.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/AVR.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/WebAssembly.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/PowerPC.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/Mips.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/AArch64.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/PowerPC64.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/Hexagon.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/i386.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/x86_64.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/ARM.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/Lanai.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/Sparc.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ELFRelocs/SystemZ.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/OnDiskHashTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MemoryBuffer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/PrettyStackTrace.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Valgrind.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Path.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/TargetRegistry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Error.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DOTGraphTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/YAMLParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/WindowsError.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ManagedStatic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Format.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DataExtractor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DataStream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/GCOV.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/CrashRecoveryContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/PointerLikeTypeTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Compression.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/ConvertUTF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/GenericDomTreeConstruction.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Casting.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Errc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/MutexGuard.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/GenericDomTree.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Process.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/SaveAndRestore.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/Compiler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/Option.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/OptTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/OptParser.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/Arg.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/OptSpecifier.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Option/ArgList.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/BitCodes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/ReaderWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/LLVMBitCodes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/BitstreamReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/BitstreamWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Bitcode/BitcodeWriterPass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LinkAllPasses.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Interval.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetLibraryInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/MemoryLocation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/BranchProbabilityInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/IteratedDominanceFrontier.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LazyValueInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetLibraryInfo.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/PHITransAddr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Lint.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ConstantFolding.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ValueTracking.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/AliasAnalysisEvaluator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionPass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopUnrollAnalyzer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/AliasSetTracker.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/BlockFrequencyInfoImpl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Trace.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CFLAliasAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TypeBasedAliasAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ObjCARCAliasAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DominanceFrontier.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Passes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/BlockFrequencyInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetTransformInfoImpl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DivergenceAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CallGraph.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CallGraphSCCPass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/IVUsers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/MemoryDependenceAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/PostDominators.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopPass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/InstructionSimplify.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetTransformInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CaptureTracking.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CGSCCPassManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/AliasAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolution.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionInfoImpl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/MemoryBuiltins.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/IntervalPartition.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/PtrUseVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DOTGraphTraitsPass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/GlobalsModRef.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopInfoImpl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ObjCARCInstKind.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/IntervalIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DomPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ObjCARCAnalysisUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolutionNormalization.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScopedNoAliasAA.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/RegionInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CodeMetrics.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CallPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LazyCallGraph.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopAccessAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/OrderedBasicBlock.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DependenceAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/AssumptionCache.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/LoopPassManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/Loads.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolutionExpressions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DominanceFrontierImpl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/EHPersonalities.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/ScalarEvolutionExpander.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/VectorUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CFG.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/BasicAliasAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/InlineCost.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/DemandedBits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/CFGPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/SparsePropagation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Analysis/TargetFolder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IRReader
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IRReader/IRReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LibDriver
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LibDriver/LibDriver.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/PassInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/InitializePasses.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/StripDeadPrototypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/InferFunctionAttrs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/WholeProgramDevirt.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/InlinerPass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/FunctionImport.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/FunctionAttrs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/PassManagerBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO/LowerBitSets.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/InstCombine
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/InstCombine/InstCombineWorklist.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/InstCombine/InstCombine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/EarlyCSE.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/GVN.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/SimplifyCFG.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/ADCE.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar/SROA.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/FunctionImportUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/Evaluator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/ASanStackFrameLayout.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/GlobalStatus.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/BasicBlockUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SplitModule.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/UnrollLoop.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/CodeExtractor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SymbolRewriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/LoopVersioning.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/ModuleUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/Cloning.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SimplifyIndVar.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SimplifyLibCalls.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/LoopUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/BypassSlowDivision.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/CtorUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SSAUpdater.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/Local.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/PromoteMemToReg.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/ValueMapper.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/MemorySSA.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/SanitizerStats.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/CmpInstAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/IntegerDivision.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Utils/BuildLibCalls.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Scalar.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Vectorize.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/ObjCARC.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/Instrumentation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Transforms/IPO.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/InstrProfReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/CoverageMapping.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/CoverageMappingReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/InstrProf.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/SampleProfReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/InstrProfWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/CoverageMappingWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/InstrProfData.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/ProfileCommon.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/SampleProfWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ProfileData/SampleProf.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/OperandTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/UseListOrder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsXCore.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ValueHandle.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/InstVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsNVVM.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Metadata.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsX86.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalObject.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DebugInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/User.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DIBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Constant.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Attributes.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ConstantFolder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DiagnosticInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Module.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/LLVMContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DebugLoc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/NoFolder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsWebAssembly.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/InstrTypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DataLayout.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DiagnosticPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Metadata.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsBPF.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/InstIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Type.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ConstantRange.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Constants.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsAMDGPU.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/TypeFinder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/MDBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ModuleSummaryIndex.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/CallingConv.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/TypeBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Value.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IRPrintingPasses.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsMips.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalAlias.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/TrackingMDRef.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/InlineAsm.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Comdat.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/AssemblyAnnotationWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Instruction.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsAArch64.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DerivedTypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IRBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/LegacyPassManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Operator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalVariable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/AutoUpgrade.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Value.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Statepoint.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Instructions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Verifier.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Argument.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Dominators.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GlobalValue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/PassManagerInternal.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/LegacyPassNameParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/SymbolTableListTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/PatternMatch.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GetElementPtrTypeIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsSystemZ.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/PredIteratorCache.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Function.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Use.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/PassManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsARM.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DebugInfoMetadata.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/CallSite.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Intrinsics.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/GVMaterializer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ValueSymbolTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/DebugInfoFlags.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Mangler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/CFG.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsPowerPC.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Intrinsics.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicsHexagon.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Attributes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/LegacyPassManagers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ValueMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/ModuleSlotTracker.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/IntrinsicInst.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Instruction.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/BasicBlock.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSymbolCOFF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCFixupKindInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCObjectWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSectionELF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCELFObjectWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSectionMachO.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCObjectStreamer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmInfoELF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInst.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCFixup.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmInfoCOFF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmBackend.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCRegisterInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmLayout.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCLabel.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSectionCOFF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCCodeView.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstrItineraries.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/SubtargetFeature.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/StringTableBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstrInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/AsmLexer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCAsmLexer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCParsedAsmOperand.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCAsmParserExtension.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/AsmCond.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCAsmParserUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCTargetAsmParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCParser/MCAsmParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/SectionKind.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCWinCOFFStreamer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmInfoDarwin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCCodeEmitter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MachineLocation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDwarf.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAssembler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCExpr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCValue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstrDesc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCTargetOptionsCommandFlags.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSymbol.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCObjectFileInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCWinEH.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCWin64EH.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSymbolMachO.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSubtargetInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSymbolELF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSchedule.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAnalysis
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCMachObjectWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCInstrAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCFragment.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCLinkerOptimizationHint.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDirectives.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCTargetOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCFixedLenDisassembler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCSection.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCWinCOFFObjectWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCELFStreamer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/ConstantPools.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCCodeGenInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler/MCSymbolizer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler/MCDisassembler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCStreamer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/MC/MCAsmInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LineEditor
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/LineEditor/LineEditor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallString.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Statistic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DenseMapInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallBitVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SetVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Optional.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/VariadicFunction.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/edit_distance.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/IntEqClasses.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringRef.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/GraphTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/IndexedMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringExtras.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/IntrusiveRefCntPtr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Twine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ImmutableList.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Hashing.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/APInt.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ImmutableMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/APFloat.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SmallPtrSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/IntervalMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/iterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/UniqueVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PointerEmbeddedInt.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/BitVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ImmutableSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DenseMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/MapVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/TinyPtrVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PriorityQueue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/FoldingSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SparseSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/STLExtras.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/EquivalenceClasses.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PointerSumType.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SparseMultiSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DepthFirstIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DeltaAlgorithm.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/StringSwitch.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/None.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ScopedHashTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ArrayRef.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PointerUnion.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/APSInt.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ilist_node.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DAGDeltaAlgorithm.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PointerIntPair.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/EpochTracker.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PostOrderIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SCCIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/ilist.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SetOperations.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/SparseBitVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/PackedVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/DenseSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/Triple.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ADT/iterator_range.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/Archive.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/IRObjectFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ArchiveWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ModuleSummaryIndexObjectFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/StackMapParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/RelocVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ELFObjectFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/Binary.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ELF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ObjectFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/MachO.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/COFF.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/SymbolicFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/MachOUniversal.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/COFFImportFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/Error.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/SymbolSize.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Object/ELFTypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ObjectYAML
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ObjectYAML/YAML.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ObjectYAML/COFFYAML.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/ObjectYAML/ELFYAML.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/AsmParser
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/AsmParser/SlotMapping.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/AsmParser/Parser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DIContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymDumper.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBLineNumber.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBTypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBDataStream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIASupport.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/DIA/DIASession.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDB.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbol.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBSession.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBSourceFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolData.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBExtras.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFUnit.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFSection.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/Line.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeIndex.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/MethodListRecordBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeRecordBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/TypeRecord.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/SymbolRecord.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CVSymbolTypes.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CodeViewOStream.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/FunctionId.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/FieldListRecordBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/ListRecordBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CodeView.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/CodeView/CVLeafTypes.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/Symbolize
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/Symbolize/DIPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/Symbolize/Symbolize.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/PassRegistry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/Record.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/SetTheory.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/StringMatcher.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/Main.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/Error.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/TableGenBackend.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/TableGen/StringToOffsetTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetFrameLowering.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetRegisterInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetItinerary.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetLoweringObjectFile.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetSubtargetInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetSchedule.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetLowering.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetSelectionDAG.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetInstrInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/Target.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetCallingConv.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetOpcodes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetIntrinsicInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetOpcodes.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/CostTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetCallingConv.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetRecip.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/GenericOpcodes.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Target/TargetMachine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/PassSupport.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Linker
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Linker/Linker.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Linker/IRMover.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Pass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/PassAnalysisSupport.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFunction.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/AsmPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DIEValue.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegAllocRegistry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/AtomicExpandUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/StackProtector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RuntimeLibcalls.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ResourcePriorityQueue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DAGCombine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineDominators.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFunctionAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineTraceMetrics.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachORelocation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineInstrBundleIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineValueType.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveIntervalUnion.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/FunctionLoweringInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/Passes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQPRAConstraint.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineDominanceFrontier.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineBasicBlock.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LinkAllAsmWriterComponents.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegAllocPBQP.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineConstantPool.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineJumpTableInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SchedulerRegistry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LexicalScopes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleDFS.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegisterClassInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ValueTypes.td
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineInstrBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveVariables.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GCMetadata.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/EdgeBundles.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DIE.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LatencyPriorityQueue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineMemOperand.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LivePhysRegs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineSSAUpdater.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/IntrinsicLowering.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineInstrBundle.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineOperand.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SelectionDAGISel.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveInterval.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineCombinerPattern.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LinkAllCodegenComponents.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DwarfStringPoolEntry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/BasicTTIImpl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SelectionDAGTargetInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineLoopInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PseudoSourceValue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachinePassRegistry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/CallingConvLower.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/Analysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ISDOpcodes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SelectionDAG.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GCStrategy.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineModuleInfoImpls.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SelectionDAGNodes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveRangeEdit.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GCs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachinePostDominators.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/CommandFlags.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineModuleInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/CalcSpillWeights.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MIRParser
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MIRParser/MIRParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleDAGMutation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineInstr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GCMetadataPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegisterPressure.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveIntervalAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleDAG.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/Solution.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/ReductionRules.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/Graph.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/CostAllocator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/PBQP/Math.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/SlotIndexes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/DFAPacketizer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineRegionInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/WinEHFuncInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/VirtRegMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/CallLowering.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/Types.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/GlobalISel/IRTranslator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/RegisterScavenging.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ValueTypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveRegMatrix.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFunctionPass.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/TargetSchedule.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ParallelCG.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/FaultMaps.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleDAGInstrs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MIRYamlMapping.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/FastISel.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFunctionInitializer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/LiveStackAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineFrameInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/StackMaps.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/ScheduleHazardRecognizer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineScheduler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/CodeGen/MachineRegisterInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/ExecutionEngine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Linker.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Core.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/BitWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Disassembler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/OrcBindings.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Types.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/lto.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Target.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/ErrorHandling.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/LinkTimeOptimizer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms/Scalar.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms/Vectorize.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms/PassManagerBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Transforms/IPO.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Analysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/BitReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Support.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Initialization.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/IRReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/Object.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/TargetMachine.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Support/DataTypes.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/AsmParsers.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/llvm-config.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/Targets.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/AsmPrinters.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/Config/Disassemblers.def
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Intrinsics.gen
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm/IR/Attributes.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMSupport.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMTableGen.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-tblgen
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMCore.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMIRReader.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMCodeGen.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMSelectionDAG.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMAsmPrinter.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMIRParser.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMGlobalISel.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMBitReader.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMBitWriter.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMTransformUtils.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMInstrumentation.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMInstCombine.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMScalarOpts.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMipo.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMVectorize.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/LLVMHello.so
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMObjCARCOpts.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMLinker.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMAnalysis.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMLTO.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMC.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMCParser.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMCDisassembler.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMObject.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMObjectYAML.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMOption.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMDebugInfoCodeView.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMDebugInfoDWARF.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMDebugInfoPDB.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMSymbolize.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMExecutionEngine.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMInterpreter.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMMCJIT.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMOrcJIT.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMRuntimeDyld.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMTarget.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86CodeGen.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86AsmParser.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86Disassembler.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86AsmPrinter.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86Desc.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86Info.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMX86Utils.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMAsmParser.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMLineEditor.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMProfileData.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMPasses.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLLVMLibDriver.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libLTO.so
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/llvm-c/lto.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-ar
 Creating llvm-ranlib
 Creating llvm-lib
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-config
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-profdata
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Format
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Format/Format.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/Module.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/SerializationDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ASTWriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ModuleFileExtension.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ModuleManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/GlobalModuleIndex.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ContinuousRangeMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ASTDeserializationListener.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ASTBitCodes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ASTReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/ASTMatchFinder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/ASTMatchersInternal.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/ASTMatchers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic/Parser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic/VariantValue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic/Diagnostics.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic/Registry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/ASTMatchersMacros.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/IndexingAction.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/CodegenNameGenerator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/CommentToXML.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/IndexSymbol.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/IndexDataConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/USRGeneration.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/SValExplainer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/Checker.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/IssueHash.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/CheckerManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/CheckerRegistry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/Analyses.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Scope.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Lookup.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Weak.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/ScopeInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaInternal.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaFixItUtils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/ObjCMethodList.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/TypoCorrection.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Template.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/ParsedTemplate.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/CodeCompleteOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/LoopHint.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Overload.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Initialization.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/CodeCompleteConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/ExternalSemaSource.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/DeclSpec.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttributeList.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Sema.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Designator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Ownership.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/IdentifierResolver.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/PrettyDeclStackTrace.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/TemplateDeduction.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/CXXFieldCollector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/DelayedDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/MultiplexExternalSemaSource.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AnalysisBasedWarnings.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaLambda.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/Commit.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/EditsReceiver.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/Rewriters.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/EditedSource.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/FileOffset.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend/ASTConsumers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend/Rewriters.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend/FixItRewriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend/FrontendActions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/RewriteBuffer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/Rewriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/HTMLRewrite.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/TokenRewriter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/DeltaTree.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/RewriteRope.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/PCHContainerOperations.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/ChainedDiagnosticConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/ASTConsumers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CommandLineSourceLoc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CompilerInstance.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/MultiplexConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/ASTUnit.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CodeGenOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/TextDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendActions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/LogDiagnosticPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/SerializedDiagnostics.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/Utils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/SerializedDiagnosticReader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/SerializedDiagnosticPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/TextDiagnosticPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendAction.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/PreprocessorOutputOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/LangStandard.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/MigratorOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/DependencyOutputOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendPluginRegistry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/LangStandards.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CompilerInvocation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/VerifyDiagnosticConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/TextDiagnosticBuffer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/LayoutOverrideSource.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CodeGenOptions.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/DiagnosticRenderer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Types.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Options.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/DriverDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/SanitizerArgs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/ToolChain.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Multilib.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Types.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Tool.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Phases.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Action.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Job.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Util.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Compilation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Driver.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/LiteralSupport.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PTHManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PPConditionalDirectiveRecord.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/HeaderMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/MacroArgs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PreprocessingRecord.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PTHLexer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/TokenConcatenation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/MultipleIncludeOpt.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/Token.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/ModuleLoader.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PreprocessorLexer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/ExternalPreprocessorSource.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/HeaderMapTypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/DirectoryLookup.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/HeaderSearch.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PPCallbacks.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/LexDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/ScratchBuffer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/MacroInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/CodeCompletionHandler.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PreprocessorOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/HeaderSearchOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/Pragma.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/TokenLexer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/Lexer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/Preprocessor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/ModuleMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse/Parser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse/ParseAST.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse/ParseDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsNEON.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/CapturedStmt.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OperatorKinds.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/ABI.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Module.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/VirtualFileSystem.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Attributes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OperatorPrecedence.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/FileSystemStatCache.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsSystemZ.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TargetInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsPPC.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Lambda.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/SanitizerBlacklist.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/ExceptionSpecificationType.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TargetOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/ObjCRuntime.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticCategories.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsAArch64.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/VersionTuple.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OperatorKinds.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticOptions.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/ExpressionTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Specifiers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AllDiagnostics.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AttrKinds.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticIDs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/PrettyStackTrace.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Builtins.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Sanitizers.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OpenMPKinds.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Diagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/FileManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/SourceLocation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/LangOptions.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DebugInfoOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/CommentOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TargetCXXABI.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/CharInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/LangOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Version.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Visibility.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OpenCLImageTypes.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/PartialDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsHexagon.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/IdentifierTable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/PlistSupport.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsMips.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Builtins.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsLe64.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OpenMPKinds.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsNVPTX.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsWebAssembly.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/PragmaKinds.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TokenKinds.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/SourceManagerInternals.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TemplateKinds.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TypeTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/LLVM.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsAMDGPU.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/SourceManager.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/MacroBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/FileSystemOptions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AddressSpaces.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsARM.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsX86.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsXCore.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OpenCLExtensions.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TargetBuiltins.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Linkage.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Sanitizers.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TokenKinds.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/CodeGenAction.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/ObjectFilePCHContainerOperations.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/ModuleBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/CGFunctionInfo.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/CodeGenABITypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/SwiftCallingConv.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/BackendUtil.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/CFGStmtMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/DomainSpecific
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/DomainSpecific/CocoaConventions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/ProgramPoint.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/FlowSensitive
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/FlowSensitive/DataflowValues.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/CodeInjector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/CallGraph.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/AnalysisDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyUtil.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafety.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ReachableCode.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/Consumed.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/LiveVariables.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/PostOrderCFGView.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/UninitializedValues.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyOps.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/FormatString.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/Dominators.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/AnalysisContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Support
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Support/BumpVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/CFG.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/FrontendTool
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/FrontendTool/Utils.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/ArgumentsAdjusters.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/CompilationDatabasePluginRegistry.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/CompilationDatabase.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/CommonOptionsParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Refactoring.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/ReplacementsYaml.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/JSONCompilationDatabase.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Tooling.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/RefactoringCallbacks.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/FileMatchTrie.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Core
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Core/Lookup.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Core/Replacement.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Core/QualTypeNames.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Config
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ARCMigrate
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ARCMigrate/FileRemapper.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ARCMigrate/ARCMTActions.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ARCMigrate/ARCMT.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/RawCommentList.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTImporter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ParentMap.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeNodes.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentBriefParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/NSAPI.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/UnresolvedSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclGroup.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeLocVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeLocNodes.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AttrIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Attr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtIterator.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/GlobalDecl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclLookups.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclContextInternals.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtCXX.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentParser.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DependentDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ExprCXX.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTUnresolvedSet.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Decl.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/OpenMPClause.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TemplateName.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclBase.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtGraphTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtOpenMP.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Comment.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/RecursiveASTVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclCXX.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclObjC.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/SelectorLocationsKind.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/LocInfoType.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Redeclarable.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentCommandTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTTypeTraits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/OperationKinds.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/VTTBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTConsumer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ExprObjC.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ExprOpenMP.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclAccessPair.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclarationName.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTMutationListener.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TemplateBase.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTVector.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Expr.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclOpenMP.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/VTableBuilder.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclFriend.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CanonicalType.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentSema.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtObjC.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/NestedNameSpecifier.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclTemplate.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTFwd.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AST.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ExternalASTSource.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Mangle.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CharUnits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeLoc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeOrdering.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Type.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Stmt.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/RecordLayout.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentLexer.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/BuiltinTypes.def
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentDiagnostic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/BaseSubobject.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/EvaluatedExprVisitor.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/PrettyPrinter.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/MangleNumberingContext.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/LambdaCapture.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/APValue.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTLambda.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CXXInheritance.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXString.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXErrorCode.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Index.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/BuildSystem.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Platform.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Documentation.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXCompilationDatabase.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/AttrPCHRead.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/AttrPCHWrite.inc
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/Checkers.inc
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrTemplateInstantiate.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrParsedAttrImpl.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrParsedAttrList.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrSpellingListIndex.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrParsedAttrKinds.inc
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Options.inc
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse/AttrParserStringSwitches.inc
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticSemaKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticLexKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticParseKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticAnalysisKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticCommonKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AttrList.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Version.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticDriverKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AttrHasAttributeImpl.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticIndexName.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/arm_neon.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticSerializationKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticFrontendKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticGroups.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticCommentKinds.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticASTKinds.inc
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Config
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Config/config.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentHTMLTagsProperties.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentNodes.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Attrs.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtNodes.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclNodes.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentCommandList.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AttrVisitor.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AttrDump.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentHTMLTags.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AttrImpl.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentHTMLNamedCharacterReferences.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentCommandInfo.inc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/clang/ClangTargets.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/clang/ClangTargets-release.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/clang/ClangConfig.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/adxintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/altivec.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/ammintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/arm_acle.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx2intrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512bwintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512cdintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512erintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512fintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512pfintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vlbwintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vlintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vlcdintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512dqintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vldqintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vbmiintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vbmivlintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/pkuintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avxintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/bmi2intrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/bmiintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__clang_cuda_cmath.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/cpuid.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/cuda_builtin_vars.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/emmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/f16cintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/float.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/fma4intrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/fmaintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/fxsrintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/htmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/htmxlintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/ia32intrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/immintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/Intrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/inttypes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/iso646.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/limits.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/lzcntintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/mm3dnow.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/mmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/mm_malloc.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/module.modulemap
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/nmmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/pmmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/popcntintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/prfchwintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/rdseedintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/rtmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/s390intrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/shaintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/smmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdalign.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdarg.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdatomic.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdbool.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stddef.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__stddef_max_align_t.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdint.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdnoreturn.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/tbmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/tgmath.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/tmmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/unwind.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/vadefs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/varargs.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/vecintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__wmmintrin_aes.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/wmmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__wmmintrin_pclmul.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/x86intrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xmmintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xopintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xsaveintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xsaveoptintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xsavecintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xsavesintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xtestintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512ifmaintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512ifmavlintrin.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/arm_neon.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangBasic.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangLex.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangParse.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangAST.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangASTMatchers.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangDynamicASTMatchers.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangSema.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangCodeGen.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangAnalysis.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangEdit.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangRewrite.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangARCMigrate.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangDriver.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangSerialization.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangFrontend.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangRewriteFrontend.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangFrontendTool.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangTooling.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangToolingCore.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangIndex.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangStaticAnalyzerCore.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangStaticAnalyzerCheckers.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangStaticAnalyzerFrontend.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangFormat.a
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang-3.9
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-config
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-profdata
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/FrontendTool
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/FrontendTool/Utils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Decl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtGraphTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtOpenMP.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/NSAPI.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclAccessPair.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/EvaluatedExprVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TemplateBase.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclOpenMP.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CharUnits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclTemplate.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TemplateName.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTLambda.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Redeclarable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/RecursiveASTVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/BuiltinTypes.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CanonicalType.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTMutationListener.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AST.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtObjC.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/APValue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/RawCommentList.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ExprObjC.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentSema.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclContextInternals.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Type.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclCXX.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/VTTBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Stmt.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/SelectorLocationsKind.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/MangleNumberingContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CXXInheritance.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTImporter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DependentDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/PrettyPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeLocVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtCXX.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/OperationKinds.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ExprCXX.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentCommandTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Comment.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclLookups.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Expr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeOrdering.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeLoc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeLocNodes.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentLexer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTFwd.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/LocInfoType.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AttrIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Mangle.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclObjC.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTUnresolvedSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ExprOpenMP.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/BaseSubobject.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentBriefParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/TypeNodes.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Attr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/NestedNameSpecifier.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/RecordLayout.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtIterator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/VTableBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/UnresolvedSet.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/GlobalDecl.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclBase.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclGroup.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ExternalASTSource.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ASTTypeTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclarationName.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/OpenMPClause.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclFriend.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/ParentMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/LambdaCapture.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/DirectoryLookup.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PPConditionalDirectiveRecord.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PreprocessorLexer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/HeaderMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/HeaderMapTypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/TokenConcatenation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/Lexer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/MacroInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/LiteralSupport.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/Pragma.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PTHLexer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/HeaderSearch.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/CodeCompletionHandler.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PreprocessorOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/HeaderSearchOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/ModuleLoader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/MultipleIncludeOpt.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/Preprocessor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PTHManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/LexDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/TokenLexer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PreprocessingRecord.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/PPCallbacks.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/ScratchBuffer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/MacroArgs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/ModuleMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/Token.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Lex/ExternalPreprocessorSource.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/Checker.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/Analyses.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/CheckerManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/IssueHash.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Core/CheckerRegistry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/SValExplainer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Format
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Format/Format.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/Commit.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/Rewriters.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/EditsReceiver.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/FileOffset.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Edit/EditedSource.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ARCMigrate
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ARCMigrate/ARCMTActions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ARCMigrate/FileRemapper.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ARCMigrate/ARCMT.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/AnalysisContext.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Support
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Support/BumpVector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/CallGraph.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyOps.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/Consumed.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/UninitializedValues.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/LiveVariables.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/PostOrderCFGView.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/Dominators.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ReachableCode.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyUtil.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/FormatString.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/Analyses/ThreadSafety.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/FlowSensitive
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/FlowSensitive/DataflowValues.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/ProgramPoint.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/CFGStmtMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/DomainSpecific
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/DomainSpecific/CocoaConventions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/CFG.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/AnalysisDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Analysis/CodeInjector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse/Parser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse/ParseAST.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse/ParseDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Config
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Action.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Types.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Driver.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Options.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/ToolChain.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Phases.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Multilib.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Types.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Tool.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/SanitizerArgs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Util.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Compilation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/DriverDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Job.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/ReplacementsYaml.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Refactoring.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/CommonOptionsParser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Tooling.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/CompilationDatabasePluginRegistry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/RefactoringCallbacks.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/JSONCompilationDatabase.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/FileMatchTrie.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Core
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Core/Lookup.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Core/QualTypeNames.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/Core/Replacement.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/ArgumentsAdjusters.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Tooling/CompilationDatabase.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend/Rewriters.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend/FixItRewriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend/FrontendActions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Frontend/ASTConsumers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/TokenRewriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/HTMLRewrite.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/Rewriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/DeltaTree.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/RewriteRope.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Rewrite/Core/RewriteBuffer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/VersionTuple.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Specifiers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AllDiagnostics.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/SourceLocation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AddressSpaces.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/PragmaKinds.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Lambda.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsNEON.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/CharInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/ExpressionTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OperatorPrecedence.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/LLVM.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Module.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Linkage.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Version.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticIDs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticCategories.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsAArch64.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/ExceptionSpecificationType.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/SourceManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/MacroBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/FileSystemStatCache.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/VirtualFileSystem.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/PartialDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticOptions.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OpenMPKinds.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Builtins.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsWebAssembly.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TypeTraits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsLe64.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/ObjCRuntime.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TemplateKinds.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TargetCXXABI.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/CapturedStmt.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsPPC.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/IdentifierTable.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/FileManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsXCore.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/LangOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TokenKinds.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DebugInfoOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/SourceManagerInternals.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TargetInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsHexagon.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TargetOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AttrKinds.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OperatorKinds.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/FileSystemOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Diagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/ABI.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/SanitizerBlacklist.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/PrettyStackTrace.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TokenKinds.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Builtins.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsARM.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsMips.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Sanitizers.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsAMDGPU.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OperatorKinds.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsNVPTX.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Visibility.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OpenCLExtensions.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/OpenMPKinds.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/TargetBuiltins.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/CommentOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/PlistSupport.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Attributes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsX86.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Sanitizers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/LangOptions.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/BuiltinsSystemZ.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/IndexSymbol.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/CommentToXML.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/IndexingAction.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/USRGeneration.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/IndexDataConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Index/CodegenNameGenerator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/Utils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/LangStandards.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/DiagnosticRenderer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/DependencyOutputOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/TextDiagnosticBuffer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/LayoutOverrideSource.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/ASTUnit.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/LogDiagnosticPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/PreprocessorOutputOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/SerializedDiagnosticReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CompilerInstance.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/MigratorOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendAction.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/SerializedDiagnosticPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CompilerInvocation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/LangStandard.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CommandLineSourceLoc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/TextDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/MultiplexConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/ChainedDiagnosticConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/PCHContainerOperations.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CodeGenOptions.def
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendPluginRegistry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/CodeGenOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/FrontendActions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/TextDiagnosticPrinter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/SerializedDiagnostics.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/VerifyDiagnosticConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Frontend/ASTConsumers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaFixItUtils.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Designator.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/CXXFieldCollector.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/ExternalSemaSource.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/IdentifierResolver.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Overload.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/TemplateDeduction.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/MultiplexExternalSemaSource.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Ownership.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/ScopeInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Lookup.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/DeclSpec.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/LoopHint.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaInternal.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Scope.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/ObjCMethodList.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/DelayedDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/ParsedTemplate.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaLambda.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Initialization.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/TypoCorrection.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AnalysisBasedWarnings.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Sema.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Template.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/CodeCompleteConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/Weak.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttributeList.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/PrettyDeclStackTrace.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/SemaConsumer.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/CodeCompleteOptions.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ASTWriter.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ASTReader.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ASTDeserializationListener.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/Module.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/GlobalModuleIndex.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ModuleManager.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ContinuousRangeMap.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/SerializationDiagnostic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ASTBitCodes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/ModuleFileExtension.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/ASTMatchers.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/ASTMatchFinder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic/VariantValue.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic/Parser.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic/Registry.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/Dynamic/Diagnostics.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/ASTMatchersMacros.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/ASTMatchers/ASTMatchersInternal.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/ModuleBuilder.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/CGFunctionInfo.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/BackendUtil.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/CodeGenABITypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/ObjectFilePCHContainerOperations.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/CodeGen/CodeGenAction.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXString.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Platform.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Documentation.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Index.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXErrorCode.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXCompilationDatabase.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/BuildSystem.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/StmtNodes.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/DeclNodes.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AttrVisitor.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentHTMLTags.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentNodes.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentCommandList.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AttrImpl.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentHTMLNamedCharacterReferences.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentCommandInfo.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/Attrs.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/AttrDump.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/AST/CommentHTMLTagsProperties.inc
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Parse/AttrParserStringSwitches.inc
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Config
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Config/config.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Driver/Options.inc
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/Version.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticSerializationKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AttrList.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticLexKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticASTKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticParseKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticIndexName.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/arm_neon.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/AttrHasAttributeImpl.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticFrontendKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticAnalysisKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticDriverKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticCommentKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticSemaKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticGroups.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Basic/DiagnosticCommonKinds.inc
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrParsedAttrImpl.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrTemplateInstantiate.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrSpellingListIndex.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrParsedAttrKinds.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Sema/AttrParsedAttrList.inc
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/AttrPCHWrite.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang/Serialization/AttrPCHRead.inc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/clang/ClangTargets.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/clang/ClangTargets-release.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/clang/ClangConfig.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/adxintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/altivec.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/ammintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/arm_acle.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx2intrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512bwintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512cdintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512erintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512fintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vlbwintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vlintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512dqintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vldqintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vbmiintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512vbmivlintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/pkuintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avxintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/bmi2intrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/bmiintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__clang_cuda_cmath.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/cpuid.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/cuda_builtin_vars.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/emmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/f16cintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/float.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/fma4intrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/fmaintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/fxsrintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/htmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/htmxlintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/ia32intrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/immintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/Intrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/inttypes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/iso646.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/limits.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/lzcntintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/mm3dnow.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/mmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/mm_malloc.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/module.modulemap
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/nmmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/pmmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/popcntintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/prfchwintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/rdseedintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/rtmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/s390intrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/shaintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/smmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdalign.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdarg.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdatomic.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdbool.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stddef.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__stddef_max_align_t.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdint.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/stdnoreturn.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/tbmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/tgmath.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/tmmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/unwind.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/vadefs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/varargs.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/vecintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__wmmintrin_aes.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/wmmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/__wmmintrin_pclmul.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/x86intrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xmmintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xopintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xsaveintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xsaveoptintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xsavecintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xsavesintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/xtestintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512ifmaintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/avx512ifmavlintrin.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/include/arm_neon.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangBasic.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangLex.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangParse.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangAST.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangASTMatchers.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangDynamicASTMatchers.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangSema.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangCodeGen.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangAnalysis.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangEdit.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangRewrite.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangARCMigrate.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangDriver.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangSerialization.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangFrontend.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangRewriteFrontend.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangFrontendTool.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangTooling.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangToolingCore.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangIndex.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangStaticAnalyzerCore.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangStaticAnalyzerCheckers.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangStaticAnalyzerFrontend.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclangFormat.a
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang-3.9
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang
 Creating clang++
 Creating clang-cl
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang-format
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format-bbedit.applescript
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format-diff.py
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format-sublime.py
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format.el
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format.py
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/git-clang-format
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/c-index-test
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang-check
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/scan-build
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/libexec/ccc-analyzer
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/libexec/c++-analyzer
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/man/man1/scan-build.1
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-build/scanview.css
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-build/sorttable.js
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/scan-view
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/ScanView.py
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/Reporter.py
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/startfile.py
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/FileRadar.scpt
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/GetRadarVersion.scpt
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/bugcatcher.ico
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclang.so.3.9
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclang.so
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXString.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXErrorCode.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Index.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/BuildSystem.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Platform.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Documentation.h
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXCompilationDatabase.h
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-mcmarkup
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-cxxdump
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-size
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-dwarfdump
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-dis
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-dsymutil
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/sanstats
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-objdump
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-stress
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/verify-uselistorder
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-as
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/yaml2obj
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-c-test
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-rtdyld
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-dwp
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-link
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-pdbdump
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/lli
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-lto
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/sancov
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-mc
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/obj2yaml
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/opt
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-split
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-cov
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-readobj
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/bugpoint
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-symbolizer
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/BugpointPasses.so
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-diff
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-nm
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-extract
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-bcanalyzer
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVMExports.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVMExports-release.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVMConfig.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVMConfigVersion.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVM-Config.cmake
--- Up-to-date: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/.
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./AddLLVM.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./HandleLLVMOptions.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./LLVMExternalProjectUtils.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./AddOCaml.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./HandleLLVMStdlib.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./GetSVN.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./AddLLVMDefinitions.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./CrossCompile.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./FindOCaml.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./VersionFromVCS.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./FindSphinx.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./ChooseMSVCCRT.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./DetermineGCCCompatible.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./LLVMProcessSources.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./AddSphinxTarget.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./CheckCompilerVersion.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./GenerateVersionFromCVS.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./TableGen.cmake
--- Installing: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./LLVMInstallSymlink.cmake
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib64/libstdc++.so.6 to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang-format
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format-bbedit.applescript
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format-diff.py
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format-sublime.py
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format.el
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/clang/clang-format.py
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/git-clang-format
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/c-index-test
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang-check
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/scan-build
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/libexec/ccc-analyzer
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/libexec/c++-analyzer
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/man/man1/scan-build.1
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-build/scanview.css
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-build/sorttable.js
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/scan-view
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/ScanView.py
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/Reporter.py
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/startfile.py
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/FileRadar.scpt
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/GetRadarVersion.scpt
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/share/scan-view/bugcatcher.ico
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclang.so.3.9
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/libclang.so
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXString.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Platform.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Documentation.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/Index.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXErrorCode.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/CXCompilationDatabase.h
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/include/clang-c/BuildSystem.h
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/clang/3.9.0/vtables_blacklist.txt
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-stress
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/yaml2obj
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/sanstats
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-c-test
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-pdbdump
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-diff
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/verify-uselistorder
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/BugpointPasses.so
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-split
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-lto
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/lli
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-symbolizer
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-mcmarkup
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/sancov
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-objdump
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-cxxdump
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-mc
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-nm
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/opt
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-readobj
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-dis
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-link
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-cov
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/obj2yaml
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-dwarfdump
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-size
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-extract
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-as
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-dsymutil
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-rtdyld
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-bcanalyzer
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/llvm-dwp
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/bugpoint
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVMExports.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVMExports-release.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVMConfig.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVMConfigVersion.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/LLVM-Config.cmake
+-- Up-to-date: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/.
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./GetSVN.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./FindOCaml.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./VersionFromVCS.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./AddOCaml.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./ChooseMSVCCRT.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./AddSphinxTarget.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./AddLLVM.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./HandleLLVMOptions.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./DetermineGCCCompatible.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./HandleLLVMStdlib.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./LLVMProcessSources.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./TableGen.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./AddLLVMDefinitions.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./CheckCompilerVersion.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./CrossCompile.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./LLVMInstallSymlink.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./FindSphinx.cmake
+-- Installing: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/cmake/llvm/./LLVMExternalProjectUtils.cmake
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib64/libstdc++.so.6 to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/lib
 Building final compiler
-Building LTO LLVM Gold plugin
-Creating directory /b/build/slave/linux_upload_clang/build/src/third_party/llvm-lto-gold-plugin
-Running ln -sf /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/lib/LLVMgold.so /b/build/slave/linux_upload_clang/build/src/third_party/binutils/Linux_x64/Release/lib/bfd-plugins/LLVMgold.so
-Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DLLVM_BINUTILS_INCDIR=/b/build/slave/linux_upload_clang/build/src/third_party/binutils/Linux_x64/Release/include -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ '-DCMAKE_C_FLAGS=-flto --gcc-toolchain=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise' '-DCMAKE_CXX_FLAGS=-flto --gcc-toolchain=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise' -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=gold -DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=gold -DCMAKE_MODULE_LINKER_FLAGS=-fuse-ld=gold /b/build/slave/linux_upload_clang/build/src/third_party/llvm
+Creating directory /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts
+Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DLLVM_BINUTILS_INCDIR=/b/build/slave/build_and_upload_clang/build/src/third_party/binutils/Linux_x64/Release/include -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly -DCMAKE_C_FLAGS=--gcc-toolchain=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise -DCMAKE_CXX_FLAGS=--gcc-toolchain=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise -DCMAKE_EXE_LINKER_FLAGS= -DCMAKE_SHARED_LINKER_FLAGS= -DCMAKE_MODULE_LINKER_FLAGS= -DCMAKE_INSTALL_PREFIX=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts -DCHROMIUM_TOOLS_SRC=/b/build/slave/build_and_upload_clang/build/src/tools/clang '-DCHROMIUM_TOOLS=plugins;blink_gc_plugin' /b/build/slave/build_and_upload_clang/build/src/third_party/llvm
 -- The C compiler identification is Clang 3.9.0
 -- The CXX compiler identification is Clang 3.9.0
 -- The ASM compiler identification is Clang
--- Found assembler: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang
+-- Found assembler: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang
 -- Check for working C compiler using: Ninja
 -- Check for working C compiler using: Ninja -- works
 -- Detecting C compiler ABI info
@@ -4238,8 +41866,6 @@
 -- Looking for sys/stat.h - found
 -- Looking for sys/time.h
 -- Looking for sys/time.h - found
--- Looking for sys/types.h
--- Looking for sys/types.h - found
 -- Looking for sys/uio.h
 -- Looking for sys/uio.h - found
 -- Looking for termios.h
@@ -4414,12 +42040,13 @@
 -- Performing Test C_SUPPORTS_FDATA_SECTIONS - Success
 -- Performing Test CXX_SUPPORTS_FDATA_SECTIONS
 -- Performing Test CXX_SUPPORTS_FDATA_SECTIONS - Success
--- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.3") 
 -- Constructing LLVMBuild project information
 -- Targeting AArch64
 -- Targeting AMDGPU
 -- Targeting ARM
 -- Targeting BPF
+-- Targeting CppBackend
 -- Targeting Hexagon
 -- Targeting Mips
 -- Targeting MSP430
@@ -4429,1808 +42056,11 @@
 -- Targeting SystemZ
 -- Targeting X86
 -- Targeting XCore
+-- Targeting WebAssembly
 -- Clang version: 3.9.0
 -- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG
 -- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG - Success
--- Configuring done
--- Generating done
-CMake Warning:
-  Manually-specified variables were not used by the project:
-
-    LLVM_ENABLE_TIMESTAMPS
-    LLVM_USE_CRT_RELEASE
-
-
--- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-lto-gold-plugin
-Running ninja LLVMgold
-[1/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
-[2/1529] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.c.o
-[3/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntrusiveRefCntPtr.cpp.o
-[4/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
-[5/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
-[6/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
-[7/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
-[8/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
-[9/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
-[10/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
-[11/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
-[12/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
-[13/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
-[14/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
-[15/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
-[16/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
-[17/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
-[18/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
-[19/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
-[20/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
-[21/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryObject.cpp.o
-[22/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
-[23/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
-[24/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
-[25/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
-[26/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
-[27/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
-[28/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SearchForAddressOfSpecialSymbol.cpp.o
-[29/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataStream.cpp.o
-[30/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
-[31/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Dwarf.cpp.o
-[32/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
-[33/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
-[34/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
-[35/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
-[36/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
-[37/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
-[38/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StreamingMemoryObject.cpp.o
-[39/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
-[40/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
-[41/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
-[42/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
-[43/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
-[44/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o
-[45/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
-[46/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
-[47/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
-[48/1529] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
-[49/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
-[50/1529] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
-[51/1529] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
-[52/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
-[53/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
-[54/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
-[55/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
-[56/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
-[57/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o
-[58/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
-[59/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
-[60/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
-[61/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
-[62/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
-[63/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
-[64/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
-[65/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
-[66/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
-[67/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
-[68/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
-[69/1529] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
-[70/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
-[71/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
-[72/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
-[73/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
-[74/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
-[75/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
-[76/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
-[77/1529] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
-[78/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
-[79/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
-[80/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
-[81/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
-[82/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
-[83/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
-[84/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TimeValue.cpp.o
-[85/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
-[86/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
-[87/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
-[88/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
-[89/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
-[90/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
-[91/1529] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
-[92/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
-[93/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
-[94/1529] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
-[95/1529] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
-[96/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
-[97/1529] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
-[98/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
-[99/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
-[100/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
-[101/1529] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
-[102/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
-[103/1529] Linking CXX static library lib/libLLVMSupport.a
-[104/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
-[105/1529] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
-[106/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
-[107/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
-[108/1529] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
-[109/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
-[110/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
-[111/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
-[112/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
-[113/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
-[114/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
-[115/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
-[116/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
-[117/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
-[118/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
-[119/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeEmitter.cpp.o
-[120/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeGenInfo.cpp.o
-[121/1529] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
-[122/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmLexer.cpp.o
-[123/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
-[124/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
-[125/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
-[126/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
-[127/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmBackend.cpp.o
-[128/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
-[129/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/COFFAsmParser.cpp.o
-[130/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
-[131/1529] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
-[132/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoCOFF.cpp.o
-[133/1529] Linking CXX static library lib/libLLVMTableGen.a
-[134/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfo.cpp.o
-[135/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
-[136/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSchedule.cpp.o
-[137/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
-[138/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ConstantPools.cpp.o
-[139/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoELF.cpp.o
-[140/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
-[141/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoDarwin.cpp.o
-[142/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
-[143/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFObjectTargetWriter.cpp.o
-[144/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/DarwinAsmParser.cpp.o
-[145/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInst.cpp.o
-[146/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
-[147/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrAnalysis.cpp.o
-[148/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrDesc.cpp.o
-[149/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLabel.cpp.o
-[150/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstPrinter.cpp.o
-[151/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
-[152/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachObjectTargetWriter.cpp.o
-[153/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFStreamer.cpp.o
-[154/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCExpr.cpp.o
-[155/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLinkerOptimizationHint.cpp.o
-[156/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeView.cpp.o
-[157/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmStreamer.cpp.o
-[158/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAssembler.cpp.o
-[159/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCRegisterInfo.cpp.o
-[160/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCNullStreamer.cpp.o
-[161/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCFragment.cpp.o
-[162/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ELFObjectWriter.cpp.o
-[163/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
-[164/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCDwarf.cpp.o
-[165/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCTargetOptions.cpp.o
-[166/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectWriter.cpp.o
-[167/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSubtargetInfo.cpp.o
-[168/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachOStreamer.cpp.o
-[169/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionELF.cpp.o
-[170/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSection.cpp.o
-[171/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectFileInfo.cpp.o
-[172/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbolELF.cpp.o
-[173/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
-[174/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCValue.cpp.o
-[175/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectStreamer.cpp.o
-[176/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCContext.cpp.o
-[177/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
-[178/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionCOFF.cpp.o
-[179/1529] Creating export file for LLVMgold
-[180/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
-[181/1529] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCSymbolizer.cpp.o
-[182/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbol.cpp.o
-[183/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParserExtension.cpp.o
-[184/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionMachO.cpp.o
-[185/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/SubtargetFeature.cpp.o
-[186/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/StringTableBuilder.cpp.o
-[187/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmLexer.cpp.o
-[188/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWin64EH.cpp.o
-[189/1529] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCDisassembler.cpp.o
-[190/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWinEH.cpp.o
-[191/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
-[192/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParser.cpp.o
-[193/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/ListRecordBuilder.cpp.o
-[194/1529] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
-[195/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCStreamer.cpp.o
-[196/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFStreamer.cpp.o
-[197/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/Line.cpp.o
-[198/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/FieldListRecordBuilder.cpp.o
-[199/1529] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCRelocationInfo.cpp.o
-[200/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MethodListRecordBuilder.cpp.o
-[201/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeRecordBuilder.cpp.o
-[202/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeTableBuilder.cpp.o
-[203/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCTargetAsmParser.cpp.o
-[204/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MemoryTypeTableBuilder.cpp.o
-[205/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MachObjectWriter.cpp.o
-[206/1529] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCExternalSymbolizer.cpp.o
-[207/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeStream.cpp.o
-[208/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
-[209/1529] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/ELFAsmParser.cpp.o
-[210/1529] Linking CXX static library lib/libLLVMMCParser.a
-[211/1529] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/Disassembler.cpp.o
-[212/1529] Linking CXX static library lib/libLLVMMCDisassembler.a
-[213/1529] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFObjectWriter.cpp.o
-[214/1529] Linking CXX static library lib/libLLVMMC.a
-[215/1529] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeDumper.cpp.o
-[216/1529] Linking CXX static library lib/libLLVMDebugInfoCodeView.a
-[217/1529] Linking CXX executable bin/llvm-tblgen
-[218/1529] Building Attributes.inc...
-[219/1529] Building AttributesCompatFunc.inc...
-[220/1529] Updating Attributes.inc...
-[221/1529] Updating AttributesCompatFunc.inc...
-[222/1529] Building Intrinsics.gen...
-[223/1529] Updating Intrinsics.gen...
-[224/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GVMaterializer.cpp.o
-[225/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Comdat.cpp.o
-[226/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/MDBuilder.cpp.o
-[227/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticPrinter.cpp.o
-[228/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRPrintingPasses.cpp.o
-[229/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IntrinsicInst.cpp.o
-[230/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Globals.cpp.o
-[231/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Mangler.cpp.o
-[232/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DataLayout.cpp.o
-[233/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantRange.cpp.o
-[234/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/BasicBlock.cpp.o
-[235/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRBuilder.cpp.o
-[236/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugLoc.cpp.o
-[237/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instruction.cpp.o
-[238/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GCOV.cpp.o
-[239/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticInfo.cpp.o
-[240/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Use.cpp.o
-[241/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContext.cpp.o
-[242/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/InlineAsm.cpp.o
-[243/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfo.cpp.o
-[244/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantFold.cpp.o
-[245/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FaultMaps.cpp.o
-[246/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AutoUpgrade.cpp.o
-[247/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DIBuilder.cpp.o
-[248/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassRegistry.cpp.o
-[249/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Pass.cpp.o
-[250/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ModuleSummaryIndex.cpp.o
-[251/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeFloatTypes.cpp.o
-[252/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o
-[253/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Statepoint.cpp.o
-[254/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Attributes.cpp.o
-[255/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Operator.cpp.o
-[256/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Function.cpp.o
-[257/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LegacyPassManager.cpp.o
-[258/1529] Building AArch64GenMCCodeEmitter.inc...
-[259/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueSymbolTable.cpp.o
-[260/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/User.cpp.o
-[261/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/OptBisect.cpp.o
-[262/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueTypes.cpp.o
-[263/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instructions.cpp.o
-[264/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Module.cpp.o
-[265/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/TypeFinder.cpp.o
-[266/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeIntegerTypes.cpp.o
-[267/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Core.cpp.o
-[268/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassManager.cpp.o
-[269/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGen.cpp.o
-[270/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BuiltinGCs.cpp.o
-[271/1529] Building CXX object lib/IRReader/CMakeFiles/LLVMIRReader.dir/IRReader.cpp.o
-[272/1529] Linking CXX static library lib/libLLVMIRReader.a
-[273/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BasicTargetTransformInfo.cpp.o
-[274/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AllocationOrder.cpp.o
-[275/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfoMetadata.cpp.o
-[276/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Type.cpp.o
-[277/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Constants.cpp.o
-[278/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Value.cpp.o
-[279/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContextImpl.cpp.o
-[280/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadataPrinter.cpp.o
-[281/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DetectDeadLanes.cpp.o
-[282/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CallingConvLower.cpp.o
-[283/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CalcSpillWeights.cpp.o
-[284/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DeadMachineInstructionElim.cpp.o
-[285/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EdgeBundles.cpp.o
-[286/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Analysis.cpp.o
-[287/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCStrategy.cpp.o
-[288/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandPostRAPseudos.cpp.o
-[289/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FuncletLayout.cpp.o
-[290/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandISelPseudos.cpp.o
-[291/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DFAPacketizer.cpp.o
-[292/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AtomicExpandPass.cpp.o
-[293/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadata.cpp.o
-[294/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/EfficiencySanitizer.cpp.o
-[295/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AsmWriter.cpp.o
-[296/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DwarfEHPrepare.cpp.o
-[297/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CriticalAntiDepBreaker.cpp.o
-[298/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o
-[299/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExecutionDepsFix.cpp.o
-[300/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EarlyIfConversion.cpp.o
-[301/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCRootLowering.cpp.o
-[302/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BranchFolding.cpp.o
-[303/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterleavedAccessPass.cpp.o
-[304/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LatencyPriorityQueue.cpp.o
-[305/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterferenceCache.cpp.o
-[306/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ImplicitNullChecks.cpp.o
-[307/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IntrinsicLowering.cpp.o
-[308/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GlobalMerge.cpp.o
-[309/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LowerEmuTLS.cpp.o
-[310/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LivePhysRegs.cpp.o
-[311/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Metadata.cpp.o
-[312/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBranchProbabilityInfo.cpp.o
-[313/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveStackAnalysis.cpp.o
-[314/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRegMatrix.cpp.o
-[315/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LexicalScopes.cpp.o
-[316/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LocalStackSlotAllocation.cpp.o
-[317/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalUnion.cpp.o
-[318/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeCalc.cpp.o
-[319/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeEdit.cpp.o
-[320/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveInterval.cpp.o
-[321/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCopyPropagation.cpp.o
-[322/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveVariables.cpp.o
-[323/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalAnalysis.cpp.o
-[324/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockFrequencyInfo.cpp.o
-[325/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugValues.cpp.o
-[326/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IfConversion.cpp.o
-[327/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LLVMTargetMachine.cpp.o
-[328/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCombiner.cpp.o
-[329/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePassRegistry.cpp.o
-[330/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominanceFrontier.cpp.o
-[331/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPrinterPass.cpp.o
-[332/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionAnalysis.cpp.o
-[333/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfoImpls.cpp.o
-[334/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstrBundle.cpp.o
-[335/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBasicBlock.cpp.o
-[336/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InlineSpiller.cpp.o
-[337/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCSE.cpp.o
-[338/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominators.cpp.o
-[339/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPass.cpp.o
-[340/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugVariables.cpp.o
-[341/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockPlacement.cpp.o
-[342/1529] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Verifier.cpp.o
-[343/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o
-[344/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegisterInfo.cpp.o
-[345/1529] Linking CXX static library lib/libLLVMCore.a
-[346/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIEliminationUtils.cpp.o
-[347/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePostDominators.cpp.o
-[348/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/VirtRegMap.cpp.o
-[349/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PatchableFunction.cpp.o
-[350/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSSAUpdater.cpp.o
-[351/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/OptimizePHIs.cpp.o
-[352/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrintingPass.cpp.o
-[353/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ParallelCG.cpp.o
-[354/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLoopInfo.cpp.o
-[355/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunction.cpp.o
-[356/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfo.cpp.o
-[357/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSink.cpp.o
-[358/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PseudoSourceValue.cpp.o
-[359/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PreISelIntrinsicLowering.cpp.o
-[360/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRAHazardRecognizer.cpp.o
-[361/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Passes.cpp.o
-[362/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegionInfo.cpp.o
-[363/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ProcessImplicitDefs.cpp.o
-[364/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstr.cpp.o
-[365/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLICM.cpp.o
-[366/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineTraceMetrics.cpp.o
-[367/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBase.cpp.o
-[368/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PeepholeOptimizer.cpp.o
-[369/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRASchedulerList.cpp.o
-[370/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIElimination.cpp.o
-[371/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterClassInfo.cpp.o
-[372/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBasic.cpp.o
-[373/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterScavenging.cpp.o
-[374/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShadowStackGCLowering.cpp.o
-[375/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScoreboardHazardRecognizer.cpp.o
-[376/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineScheduler.cpp.o
-[377/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SpillPlacement.cpp.o
-[378/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrinter.cpp.o
-[379/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineVerifier.cpp.o
-[380/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAG.cpp.o
-[381/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterPressure.cpp.o
-[382/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMapLivenessAnalysis.cpp.o
-[383/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGPrinter.cpp.o
-[384/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SlotIndexes.cpp.o
-[385/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocFast.cpp.o
-[386/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PrologEpilogInserter.cpp.o
-[387/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SjLjEHPrepare.cpp.o
-[388/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShrinkWrap.cpp.o
-[389/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplication.cpp.o
-[390/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SafeStack.cpp.o
-[391/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackProtector.cpp.o
-[392/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMaps.cpp.o
-[393/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetFrameLoweringImpl.cpp.o
-[394/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetOptionsImpl.cpp.o
-[395/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterCoalescer.cpp.o
-[396/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackSlotColoring.cpp.o
-[397/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGInstrs.cpp.o
-[398/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplicator.cpp.o
-[399/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetRegisterInfo.cpp.o
-[400/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocGreedy.cpp.o
-[401/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetSchedule.cpp.o
-[402/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetInstrInfo.cpp.o
-[403/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocPBQP.cpp.o
-[404/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SplitKit.cpp.o
-[405/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o
-[406/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringObjectFileImpl.cpp.o
-[407/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypesGeneric.cpp.o
-[408/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGTargetInfo.cpp.o
-[409/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ResourcePriorityQueue.cpp.o
-[410/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackColoring.cpp.o
-[411/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/UnreachableBlockElim.cpp.o
-[412/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypes.cpp.o
-[413/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TwoAddressInstructionPass.cpp.o
-[414/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/InstrEmitter.cpp.o
-[415/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorOps.cpp.o
-[416/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGVLIW.cpp.o
-[417/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGFast.cpp.o
-[418/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AddressPool.cpp.o
-[419/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGSDNodes.cpp.o
-[420/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FunctionLoweringInfo.cpp.o
-[421/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ARMException.cpp.o
-[422/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorTypes.cpp.o
-[423/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FastISel.cpp.o
-[424/1529] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/WinEHPrepare.cpp.o
-[425/1529] Linking CXX static library lib/libLLVMCodeGen.a
-[426/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGRRList.cpp.o
-[427/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterDwarf.cpp.o
-[428/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterInlineAsm.cpp.o
-[429/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGDumper.cpp.o
-[430/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGPrinter.cpp.o
-[431/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugLocStream.cpp.o
-[432/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DbgValueHistoryCalculator.cpp.o
-[433/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugHandlerBase.cpp.o
-[434/1529] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/GlobalISel.cpp.o
-[435/1529] Linking CXX static library lib/libLLVMGlobalISel.a
-[436/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCFIException.cpp.o
-[437/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/StatepointLowering.cpp.o
-[438/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfStringPool.cpp.o
-[439/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIE.cpp.o
-[440/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIEHash.cpp.o
-[441/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfExpression.cpp.o
-[442/1529] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitstreamReader.cpp.o
-[443/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ASanStackFrameLayout.cpp.o
-[444/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfAccelTable.cpp.o
-[445/1529] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitReader.cpp.o
-[446/1529] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitWriter.cpp.o
-[447/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfFile.cpp.o
-[448/1529] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriterPass.cpp.o
-[449/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ErlangGCPrinter.cpp.o
-[450/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCompileUnit.cpp.o
-[451/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeDAG.cpp.o
-[452/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/EHStreamer.cpp.o
-[453/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/OcamlGCPrinter.cpp.o
-[454/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinter.cpp.o
-[455/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CmpInstAnalysis.cpp.o
-[456/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfUnit.cpp.o
-[457/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BypassSlowDivision.cpp.o
-[458/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/TargetLowering.cpp.o
-[459/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/WinException.cpp.o
-[460/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/AddDiscriminators.cpp.o
-[461/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BuildLibCalls.cpp.o
-[462/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BreakCriticalEdges.cpp.o
-[463/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InstructionNamer.cpp.o
-[464/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneModule.cpp.o
-[465/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CtorUtils.cpp.o
-[466/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FunctionImportUtils.cpp.o
-[467/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/GlobalStatus.cpp.o
-[468/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGISel.cpp.o
-[469/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BasicBlockUtils.cpp.o
-[470/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/DemoteRegToStack.cpp.o
-[471/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/CodeViewDebug.cpp.o
-[472/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FlattenCFG.cpp.o
-[473/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Evaluator.cpp.o
-[474/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/IntegerDivision.cpp.o
-[475/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAG.cpp.o
-[476/1529] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/ValueEnumerator.cpp.o
-[477/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneFunction.cpp.o
-[478/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerInvoke.cpp.o
-[479/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MetaRenamer.cpp.o
-[480/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/NameAnonFunctions.cpp.o
-[481/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Mem2Reg.cpp.o
-[482/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CodeExtractor.cpp.o
-[483/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LCSSA.cpp.o
-[484/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ModuleUtils.cpp.o
-[485/1529] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfDebug.cpp.o
-[486/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerSwitch.cpp.o
-[487/1529] Linking CXX static library lib/libLLVMAsmPrinter.a
-[488/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Utils.cpp.o
-[489/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SanitizerStats.cpp.o
-[490/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopSimplify.cpp.o
-[491/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUtils.cpp.o
-[492/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/UnifyFunctionExitNodes.cpp.o
-[493/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnrollRuntime.cpp.o
-[494/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SymbolRewriter.cpp.o
-[495/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopVersioning.cpp.o
-[496/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyInstructions.cpp.o
-[497/1529] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriter.cpp.o
-[498/1529] Linking CXX static library lib/libLLVMBitWriter.a
-[499/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyIndVar.cpp.o
-[500/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/Instrumentation.cpp.o
-[501/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnroll.cpp.o
-[502/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SSAUpdater.cpp.o
-[503/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Local.cpp.o
-[504/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/BoundsChecking.cpp.o
-[505/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SplitModule.cpp.o
-[506/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MemorySSA.cpp.o
-[507/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyLibCalls.cpp.o
-[508/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/InstrProfiling.cpp.o
-[509/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/PromoteMemoryToRegister.cpp.o
-[510/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/IndirectCallPromotion.cpp.o
-[511/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ValueMapper.cpp.o
-[512/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InlineFunction.cpp.o
-[513/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/ThreadSanitizer.cpp.o
-[514/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGBuilder.cpp.o
-[515/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/SanitizerCoverage.cpp.o
-[516/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/GCOVProfiling.cpp.o
-[517/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/BDCE.cpp.o
-[518/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAddSub.cpp.o
-[519/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantProp.cpp.o
-[520/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombinePHI.cpp.o
-[521/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineShifts.cpp.o
-[522/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/AlignmentFromAssumptions.cpp.o
-[523/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ADCE.cpp.o
-[524/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineVectorOps.cpp.o
-[525/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSelect.cpp.o
-[526/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineMulDivRem.cpp.o
-[527/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/FlattenCFGPass.cpp.o
-[528/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineLoadStoreAlloca.cpp.o
-[529/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/AddressSanitizer.cpp.o
-[530/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAndOrXor.cpp.o
-[531/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCasts.cpp.o
-[532/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantHoisting.cpp.o
-[533/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DCE.cpp.o
-[534/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/CorrelatedValuePropagation.cpp.o
-[535/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/MemorySanitizer.cpp.o
-[536/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/DataFlowSanitizer.cpp.o
-[537/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCalls.cpp.o
-[538/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSimplifyDemanded.cpp.o
-[539/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DeadStoreElimination.cpp.o
-[540/1529] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/PGOInstrumentation.cpp.o
-[541/1529] Linking CXX static library lib/libLLVMInstrumentation.a
-[542/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstructionCombining.cpp.o
-[543/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalar.cpp.o
-[544/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/EarlyCSE.cpp.o
-[545/1529] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/DAGCombiner.cpp.o
-[546/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Float2Int.cpp.o
-[547/1529] Linking CXX static library lib/libLLVMSelectionDAG.a
-[548/1529] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyCFG.cpp.o
-[549/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDeletion.cpp.o
-[550/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInstSimplify.cpp.o
-[551/1529] Linking CXX static library lib/libLLVMTransformUtils.a
-[552/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoadCombine.cpp.o
-[553/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerAtomic.cpp.o
-[554/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerExpectIntrinsic.cpp.o
-[555/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/InductiveRangeCheckElimination.cpp.o
-[556/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerGuardIntrinsic.cpp.o
-[557/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDataPrefetch.cpp.o
-[558/1529] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCompares.cpp.o
-[559/1529] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitcodeReader.cpp.o
-[560/1529] Linking CXX static library lib/libLLVMBitReader.a
-[561/1529] Linking CXX static library lib/libLLVMInstCombine.a
-[562/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopSimplifyCFG.cpp.o
-[563/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LICM.cpp.o
-[564/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PartiallyInlineLibCalls.cpp.o
-[565/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnrollPass.cpp.o
-[566/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MergedLoadStoreMotion.cpp.o
-[567/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reg2Mem.cpp.o
-[568/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopVersioningLICM.cpp.o
-[569/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInterchange.cpp.o
-[570/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/IndVarSimplify.cpp.o
-[571/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopLoadElimination.cpp.o
-[572/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRotation.cpp.o
-[573/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/JumpThreading.cpp.o
-[574/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDistribute.cpp.o
-[575/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/BarrierNoopPass.cpp.o
-[576/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/NaryReassociate.cpp.o
-[577/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/GVN.cpp.o
-[578/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SpeculativeExecution.cpp.o
-[579/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopIdiomRecognize.cpp.o
-[580/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MemCpyOptimizer.cpp.o
-[581/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PlaceSafepoints.cpp.o
-[582/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnswitch.cpp.o
-[583/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRerollPass.cpp.o
-[584/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ConstantMerge.cpp.o
-[585/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Sink.cpp.o
-[586/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SimplifyCFGPass.cpp.o
-[587/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ElimAvailExtern.cpp.o
-[588/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/CrossDSOCFI.cpp.o
-[589/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ForceFunctionAttrs.cpp.o
-[590/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ExtractGV.cpp.o
-[591/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalarizer.cpp.o
-[592/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPO.cpp.o
-[593/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPConstantPropagation.cpp.o
-[594/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/TailRecursionElimination.cpp.o
-[595/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SeparateConstOffsetFromGEP.cpp.o
-[596/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StraightLineStrengthReduce.cpp.o
-[597/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalDCE.cpp.o
-[598/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineSimple.cpp.o
-[599/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reassociate.cpp.o
-[600/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineAlways.cpp.o
-[601/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InferFunctionAttrs.cpp.o
-[602/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SCCP.cpp.o
-[603/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripDeadPrototypes.cpp.o
-[604/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PassManagerBuilder.cpp.o
-[605/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Internalize.cpp.o
-[606/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ScalarReplAggregates.cpp.o
-[607/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/DeadArgumentElimination.cpp.o
-[608/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionImport.cpp.o
-[609/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LoopExtractor.cpp.o
-[610/1529] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/Vectorize.cpp.o
-[611/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StructurizeCFG.cpp.o
-[612/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Inliner.cpp.o
-[613/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PartialInlining.cpp.o
-[614/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ArgumentPromotion.cpp.o
-[615/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PruneEH.cpp.o
-[616/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Analysis.cpp.o
-[617/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/RewriteStatepointsForGC.cpp.o
-[618/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionAttrs.cpp.o
-[619/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopStrengthReduce.cpp.o
-[620/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripSymbols.cpp.o
-[621/1529] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/LinkModules.cpp.o
-[622/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasSetTracker.cpp.o
-[623/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysisEvaluator.cpp.o
-[624/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysis.cpp.o
-[625/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AssumptionCache.cpp.o
-[626/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFG.cpp.o
-[627/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFGPrinter.cpp.o
-[628/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/MergeFunctions.cpp.o
-[629/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/WholeProgramDevirt.cpp.o
-[630/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CGSCCPassManager.cpp.o
-[631/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BranchProbabilityInfo.cpp.o
-[632/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalOpt.cpp.o
-[633/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LowerBitSets.cpp.o
-[634/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfoImpl.cpp.o
-[635/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallPrinter.cpp.o
-[636/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CodeMetrics.cpp.o
-[637/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Delinearization.cpp.o
-[638/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CaptureTracking.cpp.o
-[639/1529] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SROA.cpp.o
-[640/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfo.cpp.o
-[641/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraph.cpp.o
-[642/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CostModel.cpp.o
-[643/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraphSCCPass.cpp.o
-[644/1529] Linking CXX static library lib/libLLVMScalarOpts.a
-[645/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BasicAliasAnalysis.cpp.o
-[646/1529] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/IRMover.cpp.o
-[647/1529] Linking CXX static library lib/libLLVMLinker.a
-[648/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ConstantFolding.cpp.o
-[649/1529] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleProfile.cpp.o
-[650/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/EHPersonalities.cpp.o
-[651/1529] Linking CXX static library lib/libLLVMipo.a
-[652/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DivergenceAnalysis.cpp.o
-[653/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Interval.cpp.o
-[654/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DominanceFrontier.cpp.o
-[655/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFLAliasAnalysis.cpp.o
-[656/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstCount.cpp.o
-[657/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DemandedBits.cpp.o
-[658/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IntervalPartition.cpp.o
-[659/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DependenceAnalysis.cpp.o
-[660/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DomPrinter.cpp.o
-[661/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IVUsers.cpp.o
-[662/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IteratedDominanceFrontier.cpp.o
-[663/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDerefPrinter.cpp.o
-[664/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/OrderedBasicBlock.cpp.o
-[665/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Loads.cpp.o
-[666/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPass.cpp.o
-[667/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDepPrinter.cpp.o
-[668/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleDebugInfoPrinter.cpp.o
-[669/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopUnrollAnalyzer.cpp.o
-[670/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryLocation.cpp.o
-[671/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InlineCost.cpp.o
-[672/1529] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/BBVectorize.cpp.o
-[673/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/GlobalsModRef.cpp.o
-[674/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAnalysisUtils.cpp.o
-[675/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PtrUseVisitor.cpp.o
-[676/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAliasAnalysis.cpp.o
-[677/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Lint.cpp.o
-[678/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPassManager.cpp.o
-[679/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCInstKind.cpp.o
-[680/1529] Building PPCGenMCCodeEmitter.inc...
-[681/1529] Building PPCGenRegisterInfo.inc...
-[682/1529] Updating PPCGenRegisterInfo.inc...
-[683/1529] Building PPCGenFastISel.inc...
-[684/1529] Building PPCGenInstrInfo.inc...
-[685/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPass.cpp.o
-[686/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PHITransAddr.cpp.o
-[687/1529] Building PPCGenSubtargetInfo.inc...
-[688/1529] Updating PPCGenSubtargetInfo.inc...
-[689/1529] Building PPCGenDisassemblerTables.inc...
-[690/1529] Building PPCGenAsmMatcher.inc...
-[691/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PostDominators.cpp.o
-[692/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryBuiltins.cpp.o
-[693/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstructionSimplify.cpp.o
-[694/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyValueInfo.cpp.o
-[695/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Trace.cpp.o
-[696/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyCallGraph.cpp.o
-[697/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleSummaryAnalysis.cpp.o
-[698/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPrinter.cpp.o
-[699/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionAliasAnalysis.cpp.o
-[700/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/SparsePropagation.cpp.o
-[701/1529] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/SLPVectorizer.cpp.o
-[702/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopInfo.cpp.o
-[703/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionNormalization.cpp.o
-[704/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Error.cpp.o
-[705/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScopedNoAliasAA.cpp.o
-[706/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetLibraryInfo.cpp.o
-[707/1529] Updating AArch64GenMCCodeEmitter.inc...
-[708/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TypeBasedAliasAnalysis.cpp.o
-[709/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELF.cpp.o
-[710/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetTransformInfo.cpp.o
-[711/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryDependenceAnalysis.cpp.o
-[712/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Binary.cpp.o
-[713/1529] Building AArch64GenAsmWriter.inc...
-[714/1529] Updating AArch64GenAsmWriter.inc...
-[715/1529] Building AArch64GenMCPseudoLowering.inc...
-[716/1529] Updating AArch64GenMCPseudoLowering.inc...
-[717/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopAccessAnalysis.cpp.o
-[718/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Archive.cpp.o
-[719/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOUniversal.cpp.o
-[720/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Object.cpp.o
-[721/1529] Building AArch64GenRegisterInfo.inc...
-[722/1529] Updating AArch64GenRegisterInfo.inc...
-[723/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/COFFObjectFile.cpp.o
-[724/1529] Building AArch64GenFastISel.inc...
-[725/1529] Updating AArch64GenFastISel.inc...
-[726/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/RecordStreamer.cpp.o
-[727/1529] Building AArch64GenAsmWriter1.inc...
-[728/1529] Updating AArch64GenAsmWriter1.inc...
-[729/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionInfo.cpp.o
-[730/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ObjectFile.cpp.o
-[731/1529] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetIntrinsicInfo.cpp.o
-[732/1529] Building AArch64GenCallingConv.inc...
-[733/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ArchiveWriter.cpp.o
-[734/1529] Updating AArch64GenCallingConv.inc...
-[735/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/VectorUtils.cpp.o
-[736/1529] Building MipsGenSubtargetInfo.inc...
-[737/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolicFile.cpp.o
-[738/1529] Building AArch64GenDisassemblerTables.inc...
-[739/1529] Updating AArch64GenDisassemblerTables.inc...
-[740/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolSize.cpp.o
-[741/1529] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetRecip.cpp.o
-[742/1529] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/Target.cpp.o
-[743/1529] Building AMDGPUGenCallingConv.inc...
-[744/1529] Updating AMDGPUGenCallingConv.inc...
-[745/1529] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetSubtargetInfo.cpp.o
-[746/1529] Building AArch64GenAsmMatcher.inc...
-[747/1529] Updating AArch64GenAsmMatcher.inc...
-[748/1529] Building AMDGPUGenIntrinsics.inc...
-[749/1529] Updating AMDGPUGenIntrinsics.inc...
-[750/1529] Building AArch64GenDAGISel.inc...
-[751/1529] Building AMDGPUGenSubtargetInfo.inc...
-[752/1529] Updating AMDGPUGenSubtargetInfo.inc...
-[753/1529] Updating AArch64GenDAGISel.inc...
-[754/1529] Building AMDGPUGenRegisterInfo.inc...
-[755/1529] Updating PPCGenAsmMatcher.inc...
-[756/1529] Updating PPCGenInstrInfo.inc...
-[757/1529] Updating AMDGPUGenRegisterInfo.inc...
-[758/1529] Updating PPCGenMCCodeEmitter.inc...
-[759/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ModuleSummaryIndexObjectFile.cpp.o
-[760/1529] Building BPFGenRegisterInfo.inc...
-[761/1529] Building AMDGPUGenDFAPacketizer.inc...
-[762/1529] Updating BPFGenRegisterInfo.inc...
-[763/1529] Building BPFGenInstrInfo.inc...
-[764/1529] Building ARMGenCallingConv.inc...
-[765/1529] Updating BPFGenInstrInfo.inc...
-[766/1529] Updating AMDGPUGenDFAPacketizer.inc...
-[767/1529] Updating ARMGenCallingConv.inc...
-[768/1529] Building BPFGenDAGISel.inc...
-[769/1529] Building ARMGenRegisterInfo.inc...
-[770/1529] Building ARMGenMCPseudoLowering.inc...
-[771/1529] Updating ARMGenRegisterInfo.inc...
-[772/1529] Updating BPFGenDAGISel.inc...
-[773/1529] Building AMDGPUGenDisassemblerTables.inc...
-[774/1529] Updating ARMGenMCPseudoLowering.inc...
-[775/1529] Updating AMDGPUGenDisassemblerTables.inc...
-[776/1529] Building BPFGenCallingConv.inc...
-[777/1529] Building ARMGenMCCodeEmitter.inc...
-[778/1529] Updating BPFGenCallingConv.inc...
-[779/1529] Updating ARMGenMCCodeEmitter.inc...
-[780/1529] Building AMDGPUGenMCCodeEmitter.inc...
-[781/1529] Building AMDGPUGenDAGISel.inc...
-[782/1529] Building BPFGenAsmWriter.inc...
-[783/1529] Updating BPFGenAsmWriter.inc...
-[784/1529] Updating AMDGPUGenMCCodeEmitter.inc...
-[785/1529] Building X86GenAsmMatcher.inc...
-[786/1529] Updating AMDGPUGenDAGISel.inc...
-[787/1529] Updating X86GenAsmMatcher.inc...
-[788/1529] Building BPFGenMCCodeEmitter.inc...
-[789/1529] Updating BPFGenMCCodeEmitter.inc...
-[790/1529] Building AMDGPUGenAsmWriter.inc...
-[791/1529] Updating AMDGPUGenAsmWriter.inc...
-[792/1529] Building BPFGenSubtargetInfo.inc...
-[793/1529] Updating BPFGenSubtargetInfo.inc...
-[794/1529] Building ARMGenAsmWriter.inc...
-[795/1529] Building ARMGenAsmMatcher.inc...
-[796/1529] Updating ARMGenAsmWriter.inc...
-[797/1529] Updating ARMGenAsmMatcher.inc...
-[798/1529] Building AMDGPUGenInstrInfo.inc...
-[799/1529] Building ARMGenInstrInfo.inc...
-[800/1529] Updating AMDGPUGenInstrInfo.inc...
-[801/1529] Updating ARMGenInstrInfo.inc...
-[802/1529] Building ARMGenDisassemblerTables.inc...
-[803/1529] Building ARMGenDAGISel.inc...
-[804/1529] Updating ARMGenDisassemblerTables.inc...
-[805/1529] Updating ARMGenDAGISel.inc...
-[806/1529] Building ARMGenFastISel.inc...
-[807/1529] Updating ARMGenFastISel.inc...
-[808/1529] Building MipsGenMCCodeEmitter.inc...
-[809/1529] Building AMDGPUGenAsmMatcher.inc...
-[810/1529] Building ARMGenSubtargetInfo.inc...
-[811/1529] Updating ARMGenSubtargetInfo.inc...
-[812/1529] Updating AMDGPUGenAsmMatcher.inc...
-[813/1529] Building MipsGenAsmMatcher.inc...
-[814/1529] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachineC.cpp.o
-[815/1529] Building HexagonGenCallingConv.inc...
-[816/1529] Building HexagonGenRegisterInfo.inc...
-[817/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELFObjectFile.cpp.o
-[818/1529] Building HexagonGenMCCodeEmitter.inc...
-[819/1529] Building HexagonGenAsmWriter.inc...
-[820/1529] Building HexagonGenDFAPacketizer.inc...
-[821/1529] Building HexagonGenDisassemblerTables.inc...
-[822/1529] Building HexagonGenSubtargetInfo.inc...
-[823/1529] Building HexagonGenAsmMatcher.inc...
-[824/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/IRObjectFile.cpp.o
-[825/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionExpander.cpp.o
-[826/1529] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOObjectFile.cpp.o
-[827/1529] Linking CXX static library lib/libLLVMObject.a
-[828/1529] Building HexagonGenInstrInfo.inc...
-[829/1529] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetLoweringObjectFile.cpp.o
-[830/1529] Building HexagonGenDAGISel.inc...
-[831/1529] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/LoopVectorize.cpp.o
-[832/1529] Linking CXX static library lib/libLLVMVectorize.a
-[833/1529] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachine.cpp.o
-[834/1529] Linking CXX static library lib/libLLVMTarget.a
-[835/1529] Building AArch64GenSubtargetInfo.inc...
-[836/1529] Updating AArch64GenSubtargetInfo.inc...
-[837/1529] Building AArch64GenInstrInfo.inc...
-[838/1529] Updating AArch64GenInstrInfo.inc...
-[839/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueTracking.cpp.o
-[840/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAnnotateKernelFeatures.cpp.o
-[841/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetObjectFile.cpp.o
-[842/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAnnotateUniformValues.cpp.o
-[843/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMachineFunction.cpp.o
-[844/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAlwaysInlinePass.cpp.o
-[845/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFFrameLowering.cpp.o
-[846/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFMCInstLower.cpp.o
-[847/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFSubtarget.cpp.o
-[848/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUFrameLowering.cpp.o
-[849/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUIntrinsicInfo.cpp.o
-[850/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFInstrInfo.cpp.o
-[851/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFRegisterInfo.cpp.o
-[852/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFTargetMachine.cpp.o
-[853/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFISelDAGToDAG.cpp.o
-[854/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUOpenCLImageTypeLoweringPass.cpp.o
-[855/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFAsmPrinter.cpp.o
-[856/1529] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFISelLowering.cpp.o
-[857/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetTransformInfo.cpp.o
-[858/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUSubtarget.cpp.o
-[859/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUInstrInfo.cpp.o
-[860/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMCInstLower.cpp.o
-[861/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/A15SDOptimizer.cpp.o
-[862/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPURegisterInfo.cpp.o
-[863/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAsmPrinter.cpp.o
-[864/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/GCNHazardRecognizer.cpp.o
-[865/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ClauseMergePass.cpp.o
-[866/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPromoteAlloca.cpp.o
-[867/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetMachine.cpp.o
-[868/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AddressTypePromotion.cpp.o
-[869/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUISelDAGToDAG.cpp.o
-[870/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUISelLowering.cpp.o
-[871/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64DeadRegisterDefinitionsPass.cpp.o
-[872/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
-[873/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDILCFGStructurizer.cpp.o
-[874/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AdvSIMDScalarPass.cpp.o
-[875/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
-[876/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A53Fix835769.cpp.o
-[877/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
-[878/1529] Building CXX object lib/Target/AArch64/TargetInfo/CMakeFiles/LLVMAArch64Info.dir/AArch64TargetInfo.cpp.o
-[879/1529] Linking CXX static library lib/libLLVMAArch64Info.a
-[880/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RedundantCopyElimination.cpp.o
-[881/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CleanupLocalDynamicTLSPass.cpp.o
-[882/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64BranchRelaxation.cpp.o
-[883/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MCInstLower.cpp.o
-[884/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ConditionalCompares.cpp.o
-[885/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ConditionOptimizer.cpp.o
-[886/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ExpandPseudoInsts.cpp.o
-[887/1529] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolution.cpp.o
-[888/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StorePairSuppress.cpp.o
-[889/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AsmPrinter.cpp.o
-[890/1529] Linking CXX static library lib/libLLVMAnalysis.a
-[891/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A57FPLoadBalancing.cpp.o
-[892/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FrameLowering.cpp.o
-[893/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFObjectWriter.cpp.o
-[894/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PromoteConstant.cpp.o
-[895/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SelectionDAGInfo.cpp.o
-[896/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RegisterInfo.cpp.o
-[897/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
-[898/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PBQPRegAlloc.cpp.o
-[899/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
-[900/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64InstrInfo.cpp.o
-[901/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CollectLOH.cpp.o
-[902/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
-[903/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCExpr.cpp.o
-[904/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64TargetStreamer.cpp.o
-[905/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64LoadStoreOptimizer.cpp.o
-[906/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MachObjectWriter.cpp.o
-[907/1529] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64BaseInfo.cpp.o
-[908/1529] Linking CXX static library lib/libLLVMAArch64Utils.a
-[909/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
-[910/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64AsmBackend.cpp.o
-[911/1529] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCCodeEmitter.cpp.o
-[912/1529] Linking CXX static library lib/libLLVMAArch64Desc.a
-[913/1529] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
-[914/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600TextureIntrinsicsReplacer.cpp.o
-[915/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600MachineFunctionInfo.cpp.o
-[916/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ExpandSpecialInstrs.cpp.o
-[917/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600EmitClauseMarkers.cpp.o
-[918/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600RegisterInfo.cpp.o
-[919/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelDAGToDAG.cpp.o
-[920/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIAnnotateControlFlow.cpp.o
-[921/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600MachineScheduler.cpp.o
-[922/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600InstrInfo.cpp.o
-[923/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600Packetizer.cpp.o
-[924/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FastISel.cpp.o
-[925/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ControlFlowFinalizer.cpp.o
-[926/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRCopies.cpp.o
-[927/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixControlFlowLiveIntervals.cpp.o
-[928/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFoldOperands.cpp.o
-[929/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFrameLowering.cpp.o
-[930/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertWaits.cpp.o
-[931/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600OptimizeVectorRegisters.cpp.o
-[932/1529] Building CXX object lib/Target/AMDGPU/InstPrinter/CMakeFiles/LLVMAMDGPUAsmPrinter.dir/AMDGPUInstPrinter.cpp.o
-[933/1529] Linking CXX static library lib/libLLVMAMDGPUAsmPrinter.a
-[934/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILowerI1Copies.cpp.o
-[935/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SITypeRewriter.cpp.o
-[936/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIMachineFunctionInfo.cpp.o
-[937/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertNopsPass.cpp.o
-[938/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILowerControlFlow.cpp.o
-[939/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCCodeEmitter.cpp.o
-[940/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILoadStoreOptimizer.cpp.o
-[941/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUAsmBackend.cpp.o
-[942/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUELFObjectWriter.cpp.o
-[943/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInstrInfo.cpp.o
-[944/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUELFStreamer.cpp.o
-[945/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ISelLowering.cpp.o
-[946/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIRegisterInfo.cpp.o
-[947/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCAsmInfo.cpp.o
-[948/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIShrinkInstructions.cpp.o
-[949/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUTargetStreamer.cpp.o
-[950/1529] Building CXX object lib/Target/AMDGPU/Utils/CMakeFiles/LLVMAMDGPUUtils.dir/AMDKernelCodeTUtils.cpp.o
-[951/1529] Building CXX object lib/Target/AMDGPU/TargetInfo/CMakeFiles/LLVMAMDGPUInfo.dir/AMDGPUTargetInfo.cpp.o
-[952/1529] Linking CXX static library lib/libLLVMAMDGPUInfo.a
-[953/1529] Building CXX object lib/Target/AArch64/AsmParser/CMakeFiles/LLVMAArch64AsmParser.dir/AArch64AsmParser.cpp.o
-[954/1529] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
-[955/1529] Linking CXX static library lib/libLLVMAArch64AsmParser.a
-[956/1529] Linking CXX static library lib/libLLVMAArch64Disassembler.a
-[957/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/SIMCCodeEmitter.cpp.o
-[958/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIISelLowering.cpp.o
-[959/1529] Building CXX object lib/Target/AMDGPU/Utils/CMakeFiles/LLVMAMDGPUUtils.dir/AMDGPUBaseInfo.cpp.o
-[960/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/R600MCCodeEmitter.cpp.o
-[961/1529] Linking CXX static library lib/libLLVMAMDGPUUtils.a
-[962/1529] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelLowering.cpp.o
-[963/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMConstantPoolValue.cpp.o
-[964/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIWholeQuadMode.cpp.o
-[965/1529] Linking CXX static library lib/libLLVMAArch64CodeGen.a
-[966/1529] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIMachineScheduler.cpp.o
-[967/1529] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCTargetDesc.cpp.o
-[968/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMRegisterInfo.cpp.o
-[969/1529] Linking CXX static library lib/libLLVMAMDGPUDesc.a
-[970/1529] Linking CXX static library lib/libLLVMAMDGPUCodeGen.a
-[971/1529] Building CXX object lib/Target/AArch64/InstPrinter/CMakeFiles/LLVMAArch64AsmPrinter.dir/AArch64InstPrinter.cpp.o
-[972/1529] Linking CXX static library lib/libLLVMAArch64AsmPrinter.a
-[973/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMHazardRecognizer.cpp.o
-[974/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMBaseRegisterInfo.cpp.o
-[975/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMMachineFunctionInfo.cpp.o
-[976/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMMCInstLower.cpp.o
-[977/1529] Building CXX object lib/Target/ARM/TargetInfo/CMakeFiles/LLVMARMInfo.dir/ARMTargetInfo.cpp.o
-[978/1529] Linking CXX static library lib/libLLVMARMInfo.a
-[979/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMOptimizeBarriersPass.cpp.o
-[980/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMInstrInfo.cpp.o
-[981/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMSelectionDAGInfo.cpp.o
-[982/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMExpandPseudoInsts.cpp.o
-[983/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMFrameLowering.cpp.o
-[984/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMELFObjectWriter.cpp.o
-[985/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb1InstrInfo.cpp.o
-[986/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetObjectFile.cpp.o
-[987/1529] Linking CXX static library lib/libLLVMBPFCodeGen.a
-[988/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMSubtarget.cpp.o
-[989/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetTransformInfo.cpp.o
-[990/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ThumbRegisterInfo.cpp.o
-[991/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/MLxExpansionPass.cpp.o
-[992/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCAsmInfo.cpp.o
-[993/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMBaseInstrInfo.cpp.o
-[994/1529] Updating HexagonGenDFAPacketizer.inc...
-[995/1529] Updating HexagonGenRegisterInfo.inc...
-[996/1529] Updating HexagonGenAsmWriter.inc...
-[997/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMAsmBackend.cpp.o
-[998/1529] Updating HexagonGenCallingConv.inc...
-[999/1529] Updating HexagonGenAsmMatcher.inc...
-[1000/1529] Updating HexagonGenDAGISel.inc...
-[1001/1529] Updating HexagonGenDisassemblerTables.inc...
-[1002/1529] Updating HexagonGenMCCodeEmitter.inc...
-[1003/1529] Updating HexagonGenSubtargetInfo.inc...
-[1004/1529] Updating HexagonGenInstrInfo.inc...
-[1005/1529] Updating MipsGenSubtargetInfo.inc...
-[1006/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetMachine.cpp.o
-[1007/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMAsmPrinter.cpp.o
-[1008/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2ITBlockPass.cpp.o
-[1009/1529] Building CXX object lib/Target/AMDGPU/Disassembler/CMakeFiles/LLVMAMDGPUDisassembler.dir/AMDGPUDisassembler.cpp.o
-[1010/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMachORelocationInfo.cpp.o
-[1011/1529] Linking CXX static library lib/libLLVMAMDGPUDisassembler.a
-[1012/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMConstantIslandPass.cpp.o
-[1013/1529] Building CXX object lib/Target/ARM/InstPrinter/CMakeFiles/LLVMARMAsmPrinter.dir/ARMInstPrinter.cpp.o
-[1014/1529] Linking CXX static library lib/libLLVMARMAsmPrinter.a
-[1015/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMachObjectWriter.cpp.o
-[1016/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCExpr.cpp.o
-[1017/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMUnwindOpAsm.cpp.o
-[1018/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb1FrameLowering.cpp.o
-[1019/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMLoadStoreOptimizer.cpp.o
-[1020/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMTargetStreamer.cpp.o
-[1021/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2InstrInfo.cpp.o
-[1022/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMWinCOFFObjectWriter.cpp.o
-[1023/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMWinCOFFStreamer.cpp.o
-[1024/1529] Building CXX object lib/Target/BPF/TargetInfo/CMakeFiles/LLVMBPFInfo.dir/BPFTargetInfo.cpp.o
-[1025/1529] Linking CXX static library lib/libLLVMBPFInfo.a
-[1026/1529] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFAsmBackend.cpp.o
-[1027/1529] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFELFObjectWriter.cpp.o
-[1028/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2SizeReduction.cpp.o
-[1029/1529] Building CXX object lib/Target/BPF/InstPrinter/CMakeFiles/LLVMBPFAsmPrinter.dir/BPFInstPrinter.cpp.o
-[1030/1529] Linking CXX static library lib/libLLVMBPFAsmPrinter.a
-[1031/1529] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCCodeEmitter.cpp.o
-[1032/1529] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCTargetDesc.cpp.o
-[1033/1529] Linking CXX static library lib/libLLVMBPFDesc.a
-[1034/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMFastISel.cpp.o
-[1035/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCTargetDesc.cpp.o
-[1036/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMELFStreamer.cpp.o
-[1037/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMISelDAGToDAG.cpp.o
-[1038/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenExtract.cpp.o
-[1039/1529] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCCodeEmitter.cpp.o
-[1040/1529] Linking CXX static library lib/libLLVMARMDesc.a
-[1041/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBranchRelaxation.cpp.o
-[1042/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCFGOptimizer.cpp.o
-[1043/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBlockRanges.cpp.o
-[1044/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/BitTracker.cpp.o
-[1045/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonFixupHwLoops.cpp.o
-[1046/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMachineFunctionInfo.cpp.o
-[1047/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonAsmPrinter.cpp.o
-[1048/1529] Building CXX object lib/Target/AMDGPU/AsmParser/CMakeFiles/LLVMAMDGPUAsmParser.dir/AMDGPUAsmParser.cpp.o
-[1049/1529] Linking CXX static library lib/libLLVMAMDGPUAsmParser.a
-[1050/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCopyToCombine.cpp.o
-[1051/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenMux.cpp.o
-[1052/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonEarlyIfConv.cpp.o
-[1053/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMachineScheduler.cpp.o
-[1054/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMCInstLower.cpp.o
-[1055/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptimizeSZextends.cpp.o
-[1056/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonNewValueJump.cpp.o
-[1057/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBitSimplify.cpp.o
-[1058/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRDF.cpp.o
-[1059/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonExpandCondsets.cpp.o
-[1060/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenPredicate.cpp.o
-[1061/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonHardwareLoops.cpp.o
-[1062/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonInstrInfo.cpp.o
-[1063/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonPeephole.cpp.o
-[1064/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCommonGEP.cpp.o
-[1065/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBitTracker.cpp.o
-[1066/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonFrameLowering.cpp.o
-[1067/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRegisterInfo.cpp.o
-[1068/1529] Building CXX object lib/Target/ARM/Disassembler/CMakeFiles/LLVMARMDisassembler.dir/ARMDisassembler.cpp.o
-[1069/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCAsmInfo.cpp.o
-[1070/1529] Linking CXX static library lib/libLLVMARMDisassembler.a
-[1071/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelLowering.cpp.o
-[1072/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSubtarget.cpp.o
-[1073/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelDAGToDAG.cpp.o
-[1074/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSelectionDAGInfo.cpp.o
-[1075/1529] Updating MipsGenMCCodeEmitter.inc...
-[1076/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSplitConst32AndConst64.cpp.o
-[1077/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRDFOpt.cpp.o
-[1078/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenInsert.cpp.o
-[1079/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptAddrMode.cpp.o
-[1080/1529] Updating MipsGenAsmMatcher.inc...
-[1081/1529] Building MipsGenAsmWriter.inc...
-[1082/1529] Updating MipsGenAsmWriter.inc...
-[1083/1529] Building MipsGenInstrInfo.inc...
-[1084/1529] Updating MipsGenInstrInfo.inc...
-[1085/1529] Building MipsGenRegisterInfo.inc...
-[1086/1529] Updating MipsGenRegisterInfo.inc...
-[1087/1529] Building CXX object lib/Target/Hexagon/TargetInfo/CMakeFiles/LLVMHexagonInfo.dir/HexagonTargetInfo.cpp.o
-[1088/1529] Linking CXX static library lib/libLLVMHexagonInfo.a
-[1089/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetTransformInfo.cpp.o
-[1090/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetObjectFile.cpp.o
-[1091/1529] Building MipsGenMCPseudoLowering.inc...
-[1092/1529] Updating MipsGenMCPseudoLowering.inc...
-[1093/1529] Building MSP430GenRegisterInfo.inc...
-[1094/1529] Updating MSP430GenRegisterInfo.inc...
-[1095/1529] Building MSP430GenInstrInfo.inc...
-[1096/1529] Updating MSP430GenInstrInfo.inc...
-[1097/1529] Building MipsGenCallingConv.inc...
-[1098/1529] Building MSP430GenAsmWriter.inc...
-[1099/1529] Updating MipsGenCallingConv.inc...
-[1100/1529] Building MipsGenDisassemblerTables.inc...
-[1101/1529] Updating MipsGenDisassemblerTables.inc...
-[1102/1529] Updating MSP430GenAsmWriter.inc...
-[1103/1529] Building MSP430GenSubtargetInfo.inc...
-[1104/1529] Updating MSP430GenSubtargetInfo.inc...
-[1105/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFCopy.cpp.o
-[1106/1529] Updating PPCGenDisassemblerTables.inc...
-[1107/1529] Building MipsGenDAGISel.inc...
-[1108/1529] Updating MipsGenDAGISel.inc...
-[1109/1529] Building MSP430GenCallingConv.inc...
-[1110/1529] Updating PPCGenFastISel.inc...
-[1111/1529] Building MSP430GenDAGISel.inc...
-[1112/1529] Updating MSP430GenCallingConv.inc...
-[1113/1529] Building MipsGenFastISel.inc...
-[1114/1529] Updating MSP430GenDAGISel.inc...
-[1115/1529] Updating MipsGenFastISel.inc...
-[1116/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonELFObjectWriter.cpp.o
-[1117/1529] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMISelLowering.cpp.o
-[1118/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCDuplexInfo.cpp.o
-[1119/1529] Building NVPTXGenRegisterInfo.inc...
-[1120/1529] Linking CXX static library lib/libLLVMARMCodeGen.a
-[1121/1529] Building NVPTXGenAsmWriter.inc...
-[1122/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFDeadCode.cpp.o
-[1123/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonStoreWidening.cpp.o
-[1124/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16HardFloatInfo.cpp.o
-[1125/1529] Building NVPTXGenSubtargetInfo.inc...
-[1126/1529] Building NVPTXGenInstrInfo.inc...
-[1127/1529] Building PPCGenCallingConv.inc...
-[1128/1529] Updating PPCGenCallingConv.inc...
-[1129/1529] Building PPCGenAsmWriter.inc...
-[1130/1529] Building NVPTXGenDAGISel.inc...
-[1131/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCExpr.cpp.o
-[1132/1529] Building PPCGenDAGISel.inc...
-[1133/1529] Updating PPCGenDAGISel.inc...
-[1134/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSplitDouble.cpp.o
-[1135/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonAsmBackend.cpp.o
-[1136/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonVLIWPacketizer.cpp.o
-[1137/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCChecker.cpp.o
-[1138/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCCompound.cpp.o
-[1139/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetMachine.cpp.o
-[1140/1529] Building CXX object lib/Target/ARM/AsmParser/CMakeFiles/LLVMARMAsmParser.dir/ARMAsmParser.cpp.o
-[1141/1529] Linking CXX static library lib/libLLVMARMAsmParser.a
-[1142/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCShuffler.cpp.o
-[1143/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCELFStreamer.cpp.o
-[1144/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCCodeEmitter.cpp.o
-[1145/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsAnalyzeImmediate.cpp.o
-[1146/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonShuffler.cpp.o
-[1147/1529] Building CXX object lib/Target/Mips/TargetInfo/CMakeFiles/LLVMMipsInfo.dir/MipsTargetInfo.cpp.o
-[1148/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonInstPrinter.cpp.o
-[1149/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCInstrInfo.cpp.o
-[1150/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFGraph.cpp.o
-[1151/1529] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCTargetDesc.cpp.o
-[1152/1529] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFLiveness.cpp.o
-[1153/1529] Linking CXX static library lib/libLLVMHexagonDesc.a
-[1154/1529] Linking CXX static library lib/libLLVMHexagonCodeGen.a
-[1155/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430BranchSelector.cpp.o
-[1156/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsCCState.cpp.o
-[1157/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsOs16.cpp.o
-[1158/1529] Linking CXX static library lib/libLLVMMipsInfo.a
-[1159/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16RegisterInfo.cpp.o
-[1160/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16HardFloat.cpp.o
-[1161/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16FrameLowering.cpp.o
-[1162/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16InstrInfo.cpp.o
-[1163/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16ISelLowering.cpp.o
-[1164/1529] Building CXX object lib/Target/Hexagon/AsmParser/CMakeFiles/LLVMHexagonAsmParser.dir/HexagonAsmParser.cpp.o
-[1165/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsHazardSchedule.cpp.o
-[1166/1529] Linking CXX static library lib/libLLVMHexagonAsmParser.a
-[1167/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsRegisterInfo.cpp.o
-[1168/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsInstrInfo.cpp.o
-[1169/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16ISelDAGToDAG.cpp.o
-[1170/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsMachineFunction.cpp.o
-[1171/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsModuleISelDAGToDAG.cpp.o
-[1172/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsMCInstLower.cpp.o
-[1173/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsFrameLowering.cpp.o
-[1174/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsLongBranch.cpp.o
-[1175/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsAsmPrinter.cpp.o
-[1176/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsABIFlagsSection.cpp.o
-[1177/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsISelDAGToDAG.cpp.o
-[1178/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsOptimizePICCall.cpp.o
-[1179/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCAsmInfo.cpp.o
-[1180/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsDelaySlotFiller.cpp.o
-[1181/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEInstrInfo.cpp.o
-[1182/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSubtarget.cpp.o
-[1183/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsConstantIslandPass.cpp.o
-[1184/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsAsmBackend.cpp.o
-[1185/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsELFObjectWriter.cpp.o
-[1186/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEFrameLowering.cpp.o
-[1187/1529] Updating NVPTXGenSubtargetInfo.inc...
-[1188/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSERegisterInfo.cpp.o
-[1189/1529] Updating NVPTXGenAsmWriter.inc...
-[1190/1529] Updating NVPTXGenInstrInfo.inc...
-[1191/1529] Updating NVPTXGenDAGISel.inc...
-[1192/1529] Updating NVPTXGenRegisterInfo.inc...
-[1193/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsELFStreamer.cpp.o
-[1194/1529] Updating PPCGenAsmWriter.inc...
-[1195/1529] Building CXX object lib/Target/Hexagon/Disassembler/CMakeFiles/LLVMHexagonDisassembler.dir/HexagonDisassembler.cpp.o
-[1196/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCExpr.cpp.o
-[1197/1529] Linking CXX static library lib/libLLVMHexagonDisassembler.a
-[1198/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsABIInfo.cpp.o
-[1199/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsFastISel.cpp.o
-[1200/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsOptionRecord.cpp.o
-[1201/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsNaClELFStreamer.cpp.o
-[1202/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEISelDAGToDAG.cpp.o
-[1203/1529] Building CXX object lib/Target/Mips/InstPrinter/CMakeFiles/LLVMMipsAsmPrinter.dir/MipsInstPrinter.cpp.o
-[1204/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCCodeEmitter.cpp.o
-[1205/1529] Linking CXX static library lib/libLLVMMipsAsmPrinter.a
-[1206/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsTargetObjectFile.cpp.o
-[1207/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCTargetDesc.cpp.o
-[1208/1529] Building CXX object lib/Target/MSP430/MCTargetDesc/CMakeFiles/LLVMMSP430Desc.dir/MSP430MCAsmInfo.cpp.o
-[1209/1529] Building CXX object lib/Target/MSP430/InstPrinter/CMakeFiles/LLVMMSP430AsmPrinter.dir/MSP430InstPrinter.cpp.o
-[1210/1529] Linking CXX static library lib/libLLVMMSP430AsmPrinter.a
-[1211/1529] Building CXX object lib/Target/MSP430/MCTargetDesc/CMakeFiles/LLVMMSP430Desc.dir/MSP430MCTargetDesc.cpp.o
-[1212/1529] Linking CXX static library lib/libLLVMMSP430Desc.a
-[1213/1529] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsTargetStreamer.cpp.o
-[1214/1529] Linking CXX static library lib/libLLVMMipsDesc.a
-[1215/1529] Building CXX object lib/Target/MSP430/TargetInfo/CMakeFiles/LLVMMSP430Info.dir/MSP430TargetInfo.cpp.o
-[1216/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsTargetMachine.cpp.o
-[1217/1529] Linking CXX static library lib/libLLVMMSP430Info.a
-[1218/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430MachineFunctionInfo.cpp.o
-[1219/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEISelLowering.cpp.o
-[1220/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAssignValidGlobalNames.cpp.o
-[1221/1529] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsISelLowering.cpp.o
-[1222/1529] Linking CXX static library lib/libLLVMMipsCodeGen.a
-[1223/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelDAGToDAG.cpp.o
-[1224/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430RegisterInfo.cpp.o
-[1225/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXFavorNonGenericAddrSpaces.cpp.o
-[1226/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430InstrInfo.cpp.o
-[1227/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430MCInstLower.cpp.o
-[1228/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXImageOptimizer.cpp.o
-[1229/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430Subtarget.cpp.o
-[1230/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAllocaHoisting.cpp.o
-[1231/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430TargetMachine.cpp.o
-[1232/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXMCExpr.cpp.o
-[1233/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerAlloca.cpp.o
-[1234/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430FrameLowering.cpp.o
-[1235/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430AsmPrinter.cpp.o
-[1236/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXFrameLowering.cpp.o
-[1237/1529] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelLowering.cpp.o
-[1238/1529] Linking CXX static library lib/libLLVMMSP430CodeGen.a
-[1239/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXGenericToNVVM.cpp.o
-[1240/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXPrologEpilogPass.cpp.o
-[1241/1529] Building CXX object lib/Target/NVPTX/MCTargetDesc/CMakeFiles/LLVMNVPTXDesc.dir/NVPTXMCAsmInfo.cpp.o
-[1242/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXPeephole.cpp.o
-[1243/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerAggrCopies.cpp.o
-[1244/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXInstrInfo.cpp.o
-[1245/1529] Building CXX object lib/Target/NVPTX/TargetInfo/CMakeFiles/LLVMNVPTXInfo.dir/NVPTXTargetInfo.cpp.o
-[1246/1529] Linking CXX static library lib/libLLVMNVPTXInfo.a
-[1247/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerKernelArgs.cpp.o
-[1248/1529] Building CXX object lib/Target/NVPTX/MCTargetDesc/CMakeFiles/LLVMNVPTXDesc.dir/NVPTXMCTargetDesc.cpp.o
-[1249/1529] Linking CXX static library lib/libLLVMNVPTXDesc.a
-[1250/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVVMReflect.cpp.o
-[1251/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXRegisterInfo.cpp.o
-[1252/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXInferAddressSpaces.cpp.o
-[1253/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXUtilities.cpp.o
-[1254/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXSubtarget.cpp.o
-[1255/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXReplaceImageHandles.cpp.o
-[1256/1529] Building CXX object lib/Target/NVPTX/InstPrinter/CMakeFiles/LLVMNVPTXAsmPrinter.dir/NVPTXInstPrinter.cpp.o
-[1257/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXTargetTransformInfo.cpp.o
-[1258/1529] Linking CXX static library lib/libLLVMNVPTXAsmPrinter.a
-[1259/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCBranchSelector.cpp.o
-[1260/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCBoolRetToInt.cpp.o
-[1261/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXISelDAGToDAG.cpp.o
-[1262/1529] Building CXX object lib/Target/Mips/Disassembler/CMakeFiles/LLVMMipsDisassembler.dir/MipsDisassembler.cpp.o
-[1263/1529] Linking CXX static library lib/libLLVMMipsDisassembler.a
-[1264/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCHazardRecognizers.cpp.o
-[1265/1529] Building CXX object lib/Target/Mips/AsmParser/CMakeFiles/LLVMMipsAsmParser.dir/MipsAsmParser.cpp.o
-[1266/1529] Linking CXX static library lib/libLLVMMipsAsmParser.a
-[1267/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXISelLowering.cpp.o
-[1268/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXTargetMachine.cpp.o
-[1269/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMachineFunctionInfo.cpp.o
-[1270/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCQPXLoadSplat.cpp.o
-[1271/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetObjectFile.cpp.o
-[1272/1529] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCPredicates.cpp.o
-[1273/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCEarlyReturn.cpp.o
-[1274/1529] Building SparcGenDisassemblerTables.inc...
-[1275/1529] Building SparcGenRegisterInfo.inc...
-[1276/1529] Updating SparcGenDisassemblerTables.inc...
-[1277/1529] Updating SparcGenRegisterInfo.inc...
-[1278/1529] Building SparcGenAsmWriter.inc...
-[1279/1529] Updating SparcGenAsmWriter.inc...
-[1280/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMIPeephole.cpp.o
-[1281/1529] Building CXX object lib/Target/PowerPC/AsmParser/CMakeFiles/LLVMPowerPCAsmParser.dir/PPCAsmParser.cpp.o
-[1282/1529] Linking CXX static library lib/libLLVMPowerPCAsmParser.a
-[1283/1529] Building SparcGenMCCodeEmitter.inc...
-[1284/1529] Updating SparcGenMCCodeEmitter.inc...
-[1285/1529] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAsmPrinter.cpp.o
-[1286/1529] Building SparcGenAsmMatcher.inc...
-[1287/1529] Updating SparcGenAsmMatcher.inc...
-[1288/1529] Building SparcGenInstrInfo.inc...
-[1289/1529] Updating SparcGenInstrInfo.inc...
-[1290/1529] Building SparcGenSubtargetInfo.inc...
-[1291/1529] Updating SparcGenSubtargetInfo.inc...
-[1292/1529] Linking CXX static library lib/libLLVMNVPTXCodeGen.a
-[1293/1529] Building SparcGenCallingConv.inc...
-[1294/1529] Updating SparcGenCallingConv.inc...
-[1295/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCCTRLoops.cpp.o
-[1296/1529] Building SparcGenDAGISel.inc...
-[1297/1529] Updating SparcGenDAGISel.inc...
-[1298/1529] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCAsmBackend.cpp.o
-[1299/1529] Building CXX object lib/Target/PowerPC/TargetInfo/CMakeFiles/LLVMPowerPCInfo.dir/PowerPCTargetInfo.cpp.o
-[1300/1529] Linking CXX static library lib/libLLVMPowerPCInfo.a
-[1301/1529] Building SystemZGenAsmWriter.inc...
-[1302/1529] Building CXX object lib/Target/PowerPC/Disassembler/CMakeFiles/LLVMPowerPCDisassembler.dir/PPCDisassembler.cpp.o
-[1303/1529] Building SystemZGenDisassemblerTables.inc...
-[1304/1529] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCAsmInfo.cpp.o
-[1305/1529] Linking CXX static library lib/libLLVMPowerPCDisassembler.a
-[1306/1529] Building SystemZGenAsmMatcher.inc...
-[1307/1529] Building SystemZGenCallingConv.inc...
-[1308/1529] Building SystemZGenMCCodeEmitter.inc...
-[1309/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMCInstLower.cpp.o
-[1310/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCInstrInfo.cpp.o
-[1311/1529] Building SystemZGenDAGISel.inc...
-[1312/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCSubtarget.cpp.o
-[1313/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTOCRegDeps.cpp.o
-[1314/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCAsmPrinter.cpp.o
-[1315/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetTransformInfo.cpp.o
-[1316/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTLSDynamicCall.cpp.o
-[1317/1529] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCELFObjectWriter.cpp.o
-[1318/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCRegisterInfo.cpp.o
-[1319/1529] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCExpr.cpp.o
-[1320/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXCopy.cpp.o
-[1321/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCLoopPreIncPrep.cpp.o
-[1322/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCFrameLowering.cpp.o
-[1323/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCFastISel.cpp.o
-[1324/1529] Updating SystemZGenDAGISel.inc...
-[1325/1529] Updating SystemZGenAsmMatcher.inc...
-[1326/1529] Updating SystemZGenDisassemblerTables.inc...
-[1327/1529] Updating SystemZGenCallingConv.inc...
-[1328/1529] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCTargetDesc.cpp.o
-[1329/1529] Updating SystemZGenMCCodeEmitter.inc...
-[1330/1529] Updating SystemZGenAsmWriter.inc...
-[1331/1529] Building SystemZGenRegisterInfo.inc...
-[1332/1529] Updating SystemZGenRegisterInfo.inc...
-[1333/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXFMAMutate.cpp.o
-[1334/1529] Building SystemZGenSubtargetInfo.inc...
-[1335/1529] Updating SystemZGenSubtargetInfo.inc...
-[1336/1529] Building SystemZGenInstrInfo.inc...
-[1337/1529] Updating SystemZGenInstrInfo.inc...
-[1338/1529] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMachObjectWriter.cpp.o
-[1339/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetMachine.cpp.o
-[1340/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXSwapRemoval.cpp.o
-[1341/1529] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcAsmBackend.cpp.o
-[1342/1529] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcELFObjectWriter.cpp.o
-[1343/1529] Building CXX object lib/Target/PowerPC/InstPrinter/CMakeFiles/LLVMPowerPCAsmPrinter.dir/PPCInstPrinter.cpp.o
-[1344/1529] Linking CXX static library lib/libLLVMPowerPCAsmPrinter.a
-[1345/1529] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCAsmInfo.cpp.o
-[1346/1529] Building CXX object lib/Target/Sparc/TargetInfo/CMakeFiles/LLVMSparcInfo.dir/SparcTargetInfo.cpp.o
-[1347/1529] Linking CXX static library lib/libLLVMSparcInfo.a
-[1348/1529] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCCodeEmitter.cpp.o
-[1349/1529] Linking CXX static library lib/libLLVMPowerPCDesc.a
-[1350/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcMachineFunctionInfo.cpp.o
-[1351/1529] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcTargetStreamer.cpp.o
-[1352/1529] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCCodeEmitter.cpp.o
-[1353/1529] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCTargetDesc.cpp.o
-[1354/1529] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCExpr.cpp.o
-[1355/1529] Linking CXX static library lib/libLLVMSparcDesc.a
-[1356/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZConstantPoolValue.cpp.o
-[1357/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcSubtarget.cpp.o
-[1358/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcMCInstLower.cpp.o
-[1359/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetMachine.cpp.o
-[1360/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcRegisterInfo.cpp.o
-[1361/1529] Building X86GenRegisterInfo.inc...
-[1362/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/DelaySlotFiller.cpp.o
-[1363/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetObjectFile.cpp.o
-[1364/1529] Building X86GenAsmWriter1.inc...
-[1365/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcInstrInfo.cpp.o
-[1366/1529] Building X86GenAsmWriter.inc...
-[1367/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcISelDAGToDAG.cpp.o
-[1368/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcAsmPrinter.cpp.o
-[1369/1529] Updating X86GenRegisterInfo.inc...
-[1370/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZCallingConv.cpp.o
-[1371/1529] Building CXX object lib/Target/Sparc/AsmParser/CMakeFiles/LLVMSparcAsmParser.dir/SparcAsmParser.cpp.o
-[1372/1529] Updating X86GenAsmWriter.inc...
-[1373/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcFrameLowering.cpp.o
-[1374/1529] Linking CXX static library lib/libLLVMSparcAsmParser.a
-[1375/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCISelDAGToDAG.cpp.o
-[1376/1529] Building CXX object lib/Target/SystemZ/TargetInfo/CMakeFiles/LLVMSystemZInfo.dir/SystemZTargetInfo.cpp.o
-[1377/1529] Linking CXX static library lib/libLLVMSystemZInfo.a
-[1378/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZMachineFunctionInfo.cpp.o
-[1379/1529] Updating X86GenAsmWriter1.inc...
-[1380/1529] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCObjectWriter.cpp.o
-[1381/1529] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCAsmBackend.cpp.o
-[1382/1529] Building CXX object lib/Target/SystemZ/InstPrinter/CMakeFiles/LLVMSystemZAsmPrinter.dir/SystemZInstPrinter.cpp.o
-[1383/1529] Linking CXX static library lib/libLLVMSystemZAsmPrinter.a
-[1384/1529] Building XCoreGenCallingConv.inc...
-[1385/1529] Updating XCoreGenCallingConv.inc...
-[1386/1529] Building CXX object lib/Target/Sparc/Disassembler/CMakeFiles/LLVMSparcDisassembler.dir/SparcDisassembler.cpp.o
-[1387/1529] Building XCoreGenRegisterInfo.inc...
-[1388/1529] Updating XCoreGenRegisterInfo.inc...
-[1389/1529] Linking CXX static library lib/libLLVMSparcDisassembler.a
-[1390/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZElimCompare.cpp.o
-[1391/1529] Building XCoreGenAsmWriter.inc...
-[1392/1529] Updating XCoreGenAsmWriter.inc...
-[1393/1529] Building XCoreGenDisassemblerTables.inc...
-[1394/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZLDCleanup.cpp.o
-[1395/1529] Updating XCoreGenDisassemblerTables.inc...
-[1396/1529] Building XCoreGenInstrInfo.inc...
-[1397/1529] Updating XCoreGenInstrInfo.inc...
-[1398/1529] Building XCoreGenSubtargetInfo.inc...
-[1399/1529] Updating XCoreGenSubtargetInfo.inc...
-[1400/1529] Building XCoreGenDAGISel.inc...
-[1401/1529] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCAsmInfo.cpp.o
-[1402/1529] Updating XCoreGenDAGISel.inc...
-[1403/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZLongBranch.cpp.o
-[1404/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZRegisterInfo.cpp.o
-[1405/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZSelectionDAGInfo.cpp.o
-[1406/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZInstrInfo.cpp.o
-[1407/1529] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCTargetDesc.cpp.o
-[1408/1529] Building CXX object lib/Target/SystemZ/AsmParser/CMakeFiles/LLVMSystemZAsmParser.dir/SystemZAsmParser.cpp.o
-[1409/1529] Linking CXX static library lib/libLLVMSystemZAsmParser.a
-[1410/1529] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCCodeEmitter.cpp.o
-[1411/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZAsmPrinter.cpp.o
-[1412/1529] Linking CXX static library lib/libLLVMSystemZDesc.a
-[1413/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZShortenInst.cpp.o
-[1414/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZMCInstLower.cpp.o
-[1415/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZSubtarget.cpp.o
-[1416/1529] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcISelLowering.cpp.o
-[1417/1529] Building CXX object lib/Target/Sparc/InstPrinter/CMakeFiles/LLVMSparcAsmPrinter.dir/SparcInstPrinter.cpp.o
-[1418/1529] Linking CXX static library lib/libLLVMSparcCodeGen.a
-[1419/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZFrameLowering.cpp.o
-[1420/1529] Linking CXX static library lib/libLLVMSparcAsmPrinter.a
-[1421/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZISelDAGToDAG.cpp.o
-[1422/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZTargetTransformInfo.cpp.o
-[1423/1529] Building CXX object lib/Target/SystemZ/Disassembler/CMakeFiles/LLVMSystemZDisassembler.dir/SystemZDisassembler.cpp.o
-[1424/1529] Linking CXX static library lib/libLLVMSystemZDisassembler.a
-[1425/1529] Building X86GenFastISel.inc...
-[1426/1529] Updating X86GenFastISel.inc...
-[1427/1529] Building X86GenDisassemblerTables.inc...
-[1428/1529] Updating X86GenDisassemblerTables.inc...
-[1429/1529] Building X86GenCallingConv.inc...
-[1430/1529] Updating X86GenCallingConv.inc...
-[1431/1529] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCISelLowering.cpp.o
-[1432/1529] Linking CXX static library lib/libLLVMPowerPCCodeGen.a
-[1433/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZTargetMachine.cpp.o
-[1434/1529] Building CXX object lib/Target/XCore/MCTargetDesc/CMakeFiles/LLVMXCoreDesc.dir/XCoreMCAsmInfo.cpp.o
-[1435/1529] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/Parser.cpp.o
-[1436/1529] Building CXX object lib/Target/XCore/InstPrinter/CMakeFiles/LLVMXCoreAsmPrinter.dir/XCoreInstPrinter.cpp.o
-[1437/1529] Linking CXX static library lib/libLLVMXCoreAsmPrinter.a
-[1438/1529] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLLexer.cpp.o
-[1439/1529] Building CXX object lib/Target/XCore/TargetInfo/CMakeFiles/LLVMXCoreInfo.dir/XCoreTargetInfo.cpp.o
-[1440/1529] Linking CXX static library lib/libLLVMXCoreInfo.a
-[1441/1529] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfReader.cpp.o
-[1442/1529] Building CXX object lib/Target/XCore/MCTargetDesc/CMakeFiles/LLVMXCoreDesc.dir/XCoreMCTargetDesc.cpp.o
-[1443/1529] Linking CXX static library lib/libLLVMXCoreDesc.a
-[1444/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreMachineFunctionInfo.cpp.o
-[1445/1529] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProf.cpp.o
-[1446/1529] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProf.cpp.o
-[1447/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreLowerThreadLocal.cpp.o
-[1448/1529] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZISelLowering.cpp.o
-[1449/1529] Linking CXX static library lib/libLLVMSystemZCodeGen.a
-[1450/1529] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfReader.cpp.o
-[1451/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreMCInstLower.cpp.o
-[1452/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreInstrInfo.cpp.o
-[1453/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreSubtarget.cpp.o
-[1454/1529] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/ProfileSummary.cpp.o
-[1455/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreFrameToArgsOffsetElim.cpp.o
-[1456/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreISelDAGToDAG.cpp.o
-[1457/1529] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfWriter.cpp.o
-[1458/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreSelectionDAGInfo.cpp.o
-[1459/1529] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfWriter.cpp.o
-[1460/1529] Linking CXX static library lib/libLLVMProfileData.a
-[1461/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreAsmPrinter.cpp.o
-[1462/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreFrameLowering.cpp.o
-[1463/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreTargetObjectFile.cpp.o
-[1464/1529] Building X86GenDAGISel.inc...
-[1465/1529] Updating X86GenDAGISel.inc...
-[1466/1529] Building CXX object lib/Target/XCore/Disassembler/CMakeFiles/LLVMXCoreDisassembler.dir/XCoreDisassembler.cpp.o
-[1467/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreRegisterInfo.cpp.o
-[1468/1529] Linking CXX static library lib/libLLVMXCoreDisassembler.a
-[1469/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreTargetMachine.cpp.o
-[1470/1529] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreISelLowering.cpp.o
-[1471/1529] Building X86GenSubtargetInfo.inc...
-[1472/1529] Updating X86GenSubtargetInfo.inc...
-[1473/1529] Linking CXX static library lib/libLLVMXCoreCodeGen.a
-[1474/1529] Building X86GenInstrInfo.inc...
-[1475/1529] Updating X86GenInstrInfo.inc...
-[1476/1529] Building X86GenAsmMatcher.inc...
-[1477/1529] Updating X86GenAsmMatcher.inc...
-[1478/1529] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLParser.cpp.o
-[1479/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ShuffleDecodeConstantPool.cpp.o
-[1480/1529] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86AsmBackend.cpp.o
-[1481/1529] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86InstComments.cpp.o
-[1482/1529] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86IntelInstPrinter.cpp.o
-[1483/1529] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86ATTInstPrinter.cpp.o
-[1484/1529] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCAsmInfo.cpp.o
-[1485/1529] Linking CXX static library lib/libLLVMX86AsmPrinter.a
-[1486/1529] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86Disassembler.cpp.o
-[1487/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MachineFunctionInfo.cpp.o
-[1488/1529] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmInstrumentation.cpp.o
-[1489/1529] Linking CXX static library lib/libLLVMAsmParser.a
-[1490/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetObjectFile.cpp.o
-[1491/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86SelectionDAGInfo.cpp.o
-[1492/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86Subtarget.cpp.o
-[1493/1529] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86ELFObjectWriter.cpp.o
-[1494/1529] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFStreamer.cpp.o
-[1495/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86VZeroUpper.cpp.o
-[1496/1529] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCCodeEmitter.cpp.o
-[1497/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupBWInsts.cpp.o
-[1498/1529] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFObjectWriter.cpp.o
-[1499/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86PadShortFunction.cpp.o
-[1500/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupLEAs.cpp.o
-[1501/1529] Building CXX object lib/Target/X86/Utils/CMakeFiles/LLVMX86Utils.dir/X86ShuffleDecode.cpp.o
-[1502/1529] Building CXX object lib/Target/X86/TargetInfo/CMakeFiles/LLVMX86Info.dir/X86TargetInfo.cpp.o
-[1503/1529] Linking CXX static library lib/libLLVMX86Utils.a
-[1504/1529] Linking CXX static library lib/libLLVMX86Info.a
-[1505/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ExpandPseudo.cpp.o
-[1506/1529] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MachObjectWriter.cpp.o
-[1507/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetTransformInfo.cpp.o
-[1508/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FloatingPoint.cpp.o
-[1509/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86RegisterInfo.cpp.o
-[1510/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86CallFrameOptimization.cpp.o
-[1511/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86OptimizeLEAs.cpp.o
-[1512/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MCInstLower.cpp.o
-[1513/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86WinEHState.cpp.o
-[1514/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetMachine.cpp.o
-[1515/1529] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCTargetDesc.cpp.o
-[1516/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86AsmPrinter.cpp.o
-[1517/1529] Linking CXX static library lib/libLLVMX86Desc.a
-[1518/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FrameLowering.cpp.o
-[1519/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86InstrInfo.cpp.o
-[1520/1529] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmParser.cpp.o
-[1521/1529] Linking CXX static library lib/libLLVMX86AsmParser.a
-[1522/1529] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86DisassemblerDecoder.cpp.o
-[1523/1529] Linking CXX static library lib/libLLVMX86Disassembler.a
-[1524/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelDAGToDAG.cpp.o
-[1525/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FastISel.cpp.o
-[1526/1529] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelLowering.cpp.o
-[1527/1529] Linking CXX static library lib/libLLVMX86CodeGen.a
-[1528/1529] Building CXX object tools/gold/CMakeFiles/LLVMgold.dir/gold-plugin.cpp.o
-[1529/1529] Linking CXX shared module lib/LLVMgold.so
-Creating directory /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts
-Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DLLVM_BINUTILS_INCDIR=/b/build/slave/linux_upload_clang/build/src/third_party/binutils/Linux_x64/Release/include -DCMAKE_C_FLAGS=--gcc-toolchain=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise -DCMAKE_CXX_FLAGS=--gcc-toolchain=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise -DCMAKE_EXE_LINKER_FLAGS= -DCMAKE_SHARED_LINKER_FLAGS= -DCMAKE_MODULE_LINKER_FLAGS= -DCMAKE_INSTALL_PREFIX=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts -DCHROMIUM_TOOLS_SRC=/b/build/slave/linux_upload_clang/build/src/tools/clang '-DCHROMIUM_TOOLS=plugins;blink_gc_plugin' /b/build/slave/linux_upload_clang/build/src/third_party/llvm
--- The C compiler identification is Clang 3.9.0
--- The CXX compiler identification is Clang 3.9.0
--- The ASM compiler identification is Clang
--- Found assembler: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang
--- Check for working C compiler using: Ninja
--- Check for working C compiler using: Ninja -- works
--- Detecting C compiler ABI info
--- Detecting C compiler ABI info - done
--- Detecting C compile features
--- Detecting C compile features - done
--- Check for working CXX compiler using: Ninja
--- Check for working CXX compiler using: Ninja -- works
--- Detecting CXX compiler ABI info
--- Detecting CXX compiler ABI info - done
--- Detecting CXX compile features
--- Detecting CXX compile features - done
--- Performing Test LLVM_NO_OLD_LIBSTDCXX
--- Performing Test LLVM_NO_OLD_LIBSTDCXX - Success
--- Looking for dirent.h
--- Looking for dirent.h - found
--- Looking for dlfcn.h
--- Looking for dlfcn.h - found
--- Looking for errno.h
--- Looking for errno.h - found
--- Looking for execinfo.h
--- Looking for execinfo.h - found
--- Looking for fcntl.h
--- Looking for fcntl.h - found
--- Looking for inttypes.h
--- Looking for inttypes.h - found
--- Looking for limits.h
--- Looking for limits.h - found
--- Looking for link.h
--- Looking for link.h - found
--- Looking for malloc.h
--- Looking for malloc.h - found
--- Looking for malloc/malloc.h
--- Looking for malloc/malloc.h - not found
--- Looking for ndir.h
--- Looking for ndir.h - not found
--- Looking for pthread.h
--- Looking for pthread.h - found
--- Looking for signal.h
--- Looking for signal.h - found
--- Looking for stdint.h
--- Looking for stdint.h - found
--- Looking for sys/dir.h
--- Looking for sys/dir.h - found
--- Looking for sys/ioctl.h
--- Looking for sys/ioctl.h - found
--- Looking for sys/mman.h
--- Looking for sys/mman.h - found
--- Looking for sys/ndir.h
--- Looking for sys/ndir.h - not found
--- Looking for sys/param.h
--- Looking for sys/param.h - found
--- Looking for sys/resource.h
--- Looking for sys/resource.h - found
--- Looking for sys/stat.h
--- Looking for sys/stat.h - found
--- Looking for sys/time.h
--- Looking for sys/time.h - found
--- Looking for sys/types.h
--- Looking for sys/types.h - found
--- Looking for sys/uio.h
--- Looking for sys/uio.h - found
--- Looking for termios.h
--- Looking for termios.h - found
--- Looking for unistd.h
--- Looking for unistd.h - found
--- Looking for utime.h
--- Looking for utime.h - found
--- Looking for valgrind/valgrind.h
--- Looking for valgrind/valgrind.h - not found
--- Looking for zlib.h
--- Looking for zlib.h - found
--- Looking for fenv.h
--- Looking for fenv.h - found
--- Looking for FE_ALL_EXCEPT
--- Looking for FE_ALL_EXCEPT - found
--- Looking for FE_INEXACT
--- Looking for FE_INEXACT - found
--- Looking for mach/mach.h
--- Looking for mach/mach.h - not found
--- Looking for mach-o/dyld.h
--- Looking for mach-o/dyld.h - not found
--- Looking for histedit.h
--- Looking for histedit.h - not found
--- Performing Test HAVE_CXXABI_H
--- Performing Test HAVE_CXXABI_H - Success
--- Looking for pthread_create in pthread
--- Looking for pthread_create in pthread - found
--- Looking for pthread_getspecific in pthread
--- Looking for pthread_getspecific in pthread - found
--- Looking for pthread_rwlock_init in pthread
--- Looking for pthread_rwlock_init in pthread - found
--- Looking for pthread_mutex_lock in pthread
--- Looking for pthread_mutex_lock in pthread - found
--- Looking for dlopen in dl
--- Looking for dlopen in dl - found
--- Looking for clock_gettime in rt
--- Looking for clock_gettime in rt - found
--- Looking for compress2 in z
--- Looking for compress2 in z - found
--- Looking for setupterm in tinfo
--- Looking for setupterm in tinfo - found
--- Looking for arc4random
--- Looking for arc4random - not found
--- Looking for backtrace
--- Looking for backtrace - found
--- Looking for getpagesize
--- Looking for getpagesize - found
--- Looking for getrusage
--- Looking for getrusage - found
--- Looking for setrlimit
--- Looking for setrlimit - found
--- Looking for isatty
--- Looking for isatty - found
--- Looking for futimens
--- Looking for futimens - found
--- Looking for futimes
--- Looking for futimes - found
--- Looking for writev
--- Looking for writev - found
--- Looking for mallctl
--- Looking for mallctl - not found
--- Looking for mallinfo
--- Looking for mallinfo - found
--- Looking for malloc_zone_statistics
--- Looking for malloc_zone_statistics - not found
--- Looking for mkdtemp
--- Looking for mkdtemp - found
--- Looking for mkstemp
--- Looking for mkstemp - found
--- Looking for mktemp
--- Looking for mktemp - found
--- Looking for closedir
--- Looking for closedir - found
--- Looking for opendir
--- Looking for opendir - found
--- Looking for readdir
--- Looking for readdir - found
--- Looking for getcwd
--- Looking for getcwd - found
--- Looking for gettimeofday
--- Looking for gettimeofday - found
--- Looking for getrlimit
--- Looking for getrlimit - found
--- Looking for posix_spawn
--- Looking for posix_spawn - found
--- Looking for pread
--- Looking for pread - found
--- Looking for realpath
--- Looking for realpath - found
--- Looking for sbrk
--- Looking for sbrk - found
--- Looking for srand48
--- Looking for srand48 - found
--- Looking for lrand48
--- Looking for lrand48 - found
--- Looking for drand48
--- Looking for drand48 - found
--- Looking for strtoll
--- Looking for strtoll - found
--- Looking for strtoq
--- Looking for strtoq - found
--- Looking for strerror
--- Looking for strerror - found
--- Looking for strerror_r
--- Looking for strerror_r - found
--- Looking for strerror_s
--- Looking for strerror_s - not found
--- Looking for setenv
--- Looking for setenv - found
--- Looking for dlerror
--- Looking for dlerror - found
--- Looking for dlopen
--- Looking for dlopen - found
--- Looking for __GLIBC__
--- Looking for __GLIBC__ - found
--- Performing Test HAVE_INT64_T
--- Performing Test HAVE_INT64_T - Success
--- Performing Test HAVE_UINT64_T
--- Performing Test HAVE_UINT64_T - Success
--- Performing Test HAVE_U_INT64_T
--- Performing Test HAVE_U_INT64_T - Success
--- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB
--- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB - Success
--- Performing Test LLVM_HAS_ATOMICS
--- Performing Test LLVM_HAS_ATOMICS - Success
--- Performing Test SUPPORTS_NO_VARIADIC_MACROS_FLAG
--- Performing Test SUPPORTS_NO_VARIADIC_MACROS_FLAG - Success
--- Target triple: x86_64-unknown-linux-gnu
--- Native target architecture is X86
--- Threads disabled.
--- Doxygen disabled.
--- Sphinx disabled.
--- Go bindings disabled.
--- Could NOT find OCaml (missing:  OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) 
--- Could NOT find OCaml (missing:  OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) 
--- OCaml bindings disabled.
--- Performing Test C_SUPPORTS_FPIC
--- Performing Test C_SUPPORTS_FPIC - Success
--- Performing Test CXX_SUPPORTS_FPIC
--- Performing Test CXX_SUPPORTS_FPIC - Success
--- Building with -fPIC
--- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG
--- Performing Test SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG - Success
--- Performing Test CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG
--- Performing Test CXX_SUPPORTS_MISSING_FIELD_INITIALIZERS_FLAG - Success
--- Performing Test C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
--- Performing Test C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG - Success
--- Performing Test CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG
--- Performing Test CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG - Success
--- Performing Test CXX_WONT_WARN_ON_FINAL_NONVIRTUALDTOR
--- Performing Test CXX_WONT_WARN_ON_FINAL_NONVIRTUALDTOR - Success
--- Performing Test C_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG
--- Performing Test C_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG - Success
--- Performing Test CXX_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG
--- Performing Test CXX_SUPPORTS_DELETE_NON_VIRTUAL_DTOR_FLAG - Success
--- Performing Test C_WCOMMENT_ALLOWS_LINE_WRAP
--- Performing Test C_WCOMMENT_ALLOWS_LINE_WRAP - Success
--- Performing Test C_SUPPORTS_WERROR_DATE_TIME
--- Performing Test C_SUPPORTS_WERROR_DATE_TIME - Success
--- Performing Test CXX_SUPPORTS_WERROR_DATE_TIME
--- Performing Test CXX_SUPPORTS_WERROR_DATE_TIME - Success
--- Performing Test CXX_SUPPORTS_CXX11
--- Performing Test CXX_SUPPORTS_CXX11 - Success
--- Performing Test C_SUPPORTS_FNO_FUNCTION_SECTIONS
--- Performing Test C_SUPPORTS_FNO_FUNCTION_SECTIONS - Success
--- Performing Test C_SUPPORTS_FFUNCTION_SECTIONS
--- Performing Test C_SUPPORTS_FFUNCTION_SECTIONS - Success
--- Performing Test CXX_SUPPORTS_FFUNCTION_SECTIONS
--- Performing Test CXX_SUPPORTS_FFUNCTION_SECTIONS - Success
--- Performing Test C_SUPPORTS_FDATA_SECTIONS
--- Performing Test C_SUPPORTS_FDATA_SECTIONS - Success
--- Performing Test CXX_SUPPORTS_FDATA_SECTIONS
--- Performing Test CXX_SUPPORTS_FDATA_SECTIONS - Success
--- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
--- Constructing LLVMBuild project information
--- Targeting AArch64
--- Targeting AMDGPU
--- Targeting ARM
--- Targeting BPF
--- Targeting Hexagon
--- Targeting Mips
--- Targeting MSP430
--- Targeting NVPTX
--- Targeting PowerPC
--- Targeting Sparc
--- Targeting SystemZ
--- Targeting X86
--- Targeting XCore
--- Clang version: 3.9.0
--- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG
--- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG - Success
-CMake Warning (dev) at /b/build/slave/linux_upload_clang/build/src/tools/clang/CMakeLists.txt:2 (project):
+CMake Warning (dev) at /b/build/slave/build_and_upload_clang/build/src/tools/clang/CMakeLists.txt:2 (project):
   Policy CMP0048 is not set: project() command manages VERSION variables.
   Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
   command to set the policy and suppress this warning.
@@ -6248,12 +42078,11 @@
 CMake Warning:
   Manually-specified variables were not used by the project:
 
-    LLVM_ENABLE_TIMESTAMPS
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib64/libstdc++.so.6 to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib
+-- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib64/libstdc++.so.6 to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib
 Running ninja -d explain
 ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o' are missing
 ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o is dirty
@@ -6271,8 +42100,6 @@
 ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o is dirty
 ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o' are missing
 ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o is dirty
-ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o' are missing
-ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o is dirty
 ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o' are missing
 ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o is dirty
 ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o' are missing
@@ -6353,10 +42180,6 @@
 ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o is dirty
 ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o' are missing
 ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o is dirty
-ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o' are missing
-ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o is dirty
-ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o' are missing
-ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o is dirty
 ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o' are missing
 ninja explain: lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o is dirty
 ninja explain: deps for 'lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o' are missing
@@ -6658,8 +42481,6 @@
 ninja explain: lib/IR/CMakeFiles/LLVMCore.dir/ModuleSummaryIndex.cpp.o is dirty
 ninja explain: deps for 'lib/IR/CMakeFiles/LLVMCore.dir/Operator.cpp.o' are missing
 ninja explain: lib/IR/CMakeFiles/LLVMCore.dir/Operator.cpp.o is dirty
-ninja explain: deps for 'lib/IR/CMakeFiles/LLVMCore.dir/OptBisect.cpp.o' are missing
-ninja explain: lib/IR/CMakeFiles/LLVMCore.dir/OptBisect.cpp.o is dirty
 ninja explain: deps for 'lib/IR/CMakeFiles/LLVMCore.dir/Pass.cpp.o' are missing
 ninja explain: lib/IR/CMakeFiles/LLVMCore.dir/Pass.cpp.o is dirty
 ninja explain: deps for 'lib/IR/CMakeFiles/LLVMCore.dir/PassManager.cpp.o' are missing
@@ -6714,8 +42535,6 @@
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CriticalAntiDepBreaker.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DeadMachineInstructionElim.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DeadMachineInstructionElim.cpp.o is dirty
-ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DetectDeadLanes.cpp.o' are missing
-ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DetectDeadLanes.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DFAPacketizer.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DFAPacketizer.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DwarfEHPrepare.cpp.o' are missing
@@ -6844,8 +42663,6 @@
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineTraceMetrics.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineVerifier.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineVerifier.cpp.o is dirty
-ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PatchableFunction.cpp.o' are missing
-ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PatchableFunction.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrinter.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrinter.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrintingPass.cpp.o' are missing
@@ -6862,12 +42679,8 @@
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIElimination.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIEliminationUtils.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIEliminationUtils.cpp.o is dirty
-ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRAHazardRecognizer.cpp.o' are missing
-ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRAHazardRecognizer.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRASchedulerList.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRASchedulerList.cpp.o is dirty
-ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PreISelIntrinsicLowering.cpp.o' are missing
-ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PreISelIntrinsicLowering.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ProcessImplicitDefs.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ProcessImplicitDefs.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PrologEpilogInserter.cpp.o' are missing
@@ -6926,8 +42739,6 @@
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackSlotColoring.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplication.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplication.cpp.o is dirty
-ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplicator.cpp.o' are missing
-ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplicator.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetFrameLoweringImpl.cpp.o' are missing
 ninja explain: lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetFrameLoweringImpl.cpp.o is dirty
 ninja explain: deps for 'lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetInstrInfo.cpp.o' are missing
@@ -7137,8 +42948,6 @@
 ninja explain: lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MetaRenamer.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ModuleUtils.cpp.o' are missing
 ninja explain: lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ModuleUtils.cpp.o is dirty
-ninja explain: deps for 'lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/NameAnonFunctions.cpp.o' are missing
-ninja explain: lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/NameAnonFunctions.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/PromoteMemoryToRegister.cpp.o' are missing
 ninja explain: lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/PromoteMemoryToRegister.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SSAUpdater.cpp.o' are missing
@@ -7174,8 +42983,6 @@
 ninja explain: lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/GCOVProfiling.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/MemorySanitizer.cpp.o' are missing
 ninja explain: lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/MemorySanitizer.cpp.o is dirty
-ninja explain: deps for 'lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/IndirectCallPromotion.cpp.o' are missing
-ninja explain: lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/IndirectCallPromotion.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/Instrumentation.cpp.o' are missing
 ninja explain: lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/Instrumentation.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/InstrProfiling.cpp.o' are missing
@@ -7186,8 +42993,6 @@
 ninja explain: lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/SanitizerCoverage.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/ThreadSanitizer.cpp.o' are missing
 ninja explain: lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/ThreadSanitizer.cpp.o is dirty
-ninja explain: deps for 'lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/EfficiencySanitizer.cpp.o' are missing
-ninja explain: lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/EfficiencySanitizer.cpp.o is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
 ninja explain: deps for 'lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstructionCombining.cpp.o' are missing
 ninja explain: lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstructionCombining.cpp.o is dirty
@@ -7282,8 +43087,6 @@
 ninja explain: lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerAtomic.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerExpectIntrinsic.cpp.o' are missing
 ninja explain: lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerExpectIntrinsic.cpp.o is dirty
-ninja explain: deps for 'lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerGuardIntrinsic.cpp.o' are missing
-ninja explain: lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerGuardIntrinsic.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MemCpyOptimizer.cpp.o' are missing
 ninja explain: lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MemCpyOptimizer.cpp.o is dirty
 ninja explain: deps for 'lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MergedLoadStoreMotion.cpp.o' are missing
@@ -7524,8 +43327,6 @@
 ninja explain: lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryLocation.cpp.o is dirty
 ninja explain: deps for 'lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleDebugInfoPrinter.cpp.o' are missing
 ninja explain: lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleDebugInfoPrinter.cpp.o is dirty
-ninja explain: deps for 'lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleSummaryAnalysis.cpp.o' are missing
-ninja explain: lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleSummaryAnalysis.cpp.o is dirty
 ninja explain: deps for 'lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAliasAnalysis.cpp.o' are missing
 ninja explain: lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAliasAnalysis.cpp.o is dirty
 ninja explain: deps for 'lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAnalysisUtils.cpp.o' are missing
@@ -7572,12 +43373,9 @@
 ninja explain: lib/Analysis/CMakeFiles/LLVMAnalysis.dir/VectorUtils.cpp.o is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: deps for 'lib/LTO/CMakeFiles/LLVMLTO.dir/LTOModule.cpp.o' are missing
-ninja explain: output lib/LTO/LLVMLTORevision.h doesn't exist
 ninja explain: lib/LTO/CMakeFiles/LLVMLTO.dir/LTOModule.cpp.o is dirty
 ninja explain: deps for 'lib/LTO/CMakeFiles/LLVMLTO.dir/LTOCodeGenerator.cpp.o' are missing
 ninja explain: lib/LTO/CMakeFiles/LLVMLTO.dir/LTOCodeGenerator.cpp.o is dirty
-ninja explain: deps for 'lib/LTO/CMakeFiles/LLVMLTO.dir/UpdateCompilerUsed.cpp.o' are missing
-ninja explain: lib/LTO/CMakeFiles/LLVMLTO.dir/UpdateCompilerUsed.cpp.o is dirty
 ninja explain: deps for 'lib/LTO/CMakeFiles/LLVMLTO.dir/ThinLTOCodeGenerator.cpp.o' are missing
 ninja explain: lib/LTO/CMakeFiles/LLVMLTO.dir/ThinLTOCodeGenerator.cpp.o is dirty
 ninja explain: lib/libLLVMLTO.a is dirty
@@ -7769,14 +43567,10 @@
 ninja explain: lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MemoryTypeTableBuilder.cpp.o is dirty
 ninja explain: deps for 'lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MethodListRecordBuilder.cpp.o' are missing
 ninja explain: lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MethodListRecordBuilder.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeDumper.cpp.o' are missing
-ninja explain: lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeDumper.cpp.o is dirty
 ninja explain: deps for 'lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeRecordBuilder.cpp.o' are missing
 ninja explain: lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeRecordBuilder.cpp.o is dirty
 ninja explain: deps for 'lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeTableBuilder.cpp.o' are missing
 ninja explain: lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeTableBuilder.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeStream.cpp.o' are missing
-ninja explain: lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeStream.cpp.o is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: deps for 'lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAbbreviationDeclaration.cpp.o' are missing
 ninja explain: lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAbbreviationDeclaration.cpp.o is dirty
@@ -7815,8 +43609,6 @@
 ninja explain: deps for 'lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/SyntaxHighlighting.cpp.o' are missing
 ninja explain: lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/SyntaxHighlighting.cpp.o is dirty
 ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/GenericError.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/GenericError.cpp.o is dirty
 ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/IPDBSourceFile.cpp.o' are missing
 ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/IPDBSourceFile.cpp.o is dirty
 ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDB.cpp.o' are missing
@@ -7893,30 +43685,6 @@
 ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUsingNamespace.cpp.o is dirty
 ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymDumper.cpp.o' are missing
 ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymDumper.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/ByteStream.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/ByteStream.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/MappedBlockStream.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/MappedBlockStream.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/ModInfo.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/ModInfo.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/PDBFile.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/PDBFile.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/DbiStream.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/DbiStream.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/InfoStream.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/InfoStream.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/NameHashTable.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/NameHashTable.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/NameMap.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/NameMap.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/RawError.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/RawError.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/RawSession.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/RawSession.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/StreamReader.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/StreamReader.cpp.o is dirty
-ninja explain: deps for 'lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/TpiStream.cpp.o' are missing
-ninja explain: lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/TpiStream.cpp.o is dirty
 ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
 ninja explain: deps for 'lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/DIPrinter.cpp.o' are missing
 ninja explain: lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/DIPrinter.cpp.o is dirty
@@ -8055,8 +43823,8 @@
 ninja explain: lib/Target/AArch64/AArch64GenCallingConv.inc.tmp is dirty
 ninja explain: lib/Target/AArch64/AArch64GenSubtargetInfo.inc.tmp is dirty
 ninja explain: lib/Target/AArch64/AArch64GenDisassemblerTables.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A57FPLoadBalancing.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AddressTypePromotion.cpp.o' are missing
 ninja explain: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AddressTypePromotion.cpp.o is dirty
@@ -8066,6 +43834,8 @@
 ninja explain: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AsmPrinter.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64BranchRelaxation.cpp.o' are missing
 ninja explain: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64BranchRelaxation.cpp.o is dirty
+ninja explain: deps for 'lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CallLowering.cpp.o' are missing
+ninja explain: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CallLowering.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CleanupLocalDynamicTLSPass.cpp.o' are missing
 ninja explain: lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CleanupLocalDynamicTLSPass.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CollectLOH.cpp.o' are missing
@@ -8208,8 +43978,8 @@
 ninja explain: lib/Target/AMDGPU/AMDGPUGenAsmWriter.inc.tmp is dirty
 ninja explain: lib/Target/AMDGPU/AMDGPUGenAsmMatcher.inc.tmp is dirty
 ninja explain: lib/Target/AMDGPU/AMDGPUGenDisassemblerTables.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDILCFGStructurizer.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAlwaysInlinePass.cpp.o' are missing
 ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAlwaysInlinePass.cpp.o is dirty
@@ -8247,8 +44017,6 @@
 ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPromoteAlloca.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPURegisterInfo.cpp.o' are missing
 ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPURegisterInfo.cpp.o is dirty
-ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/GCNHazardRecognizer.cpp.o' are missing
-ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/GCNHazardRecognizer.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ClauseMergePass.cpp.o' are missing
 ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ClauseMergePass.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ControlFlowFinalizer.cpp.o' are missing
@@ -8279,6 +44047,8 @@
 ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixControlFlowLiveIntervals.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRCopies.cpp.o' are missing
 ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRCopies.cpp.o is dirty
+ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRLiveRanges.cpp.o' are missing
+ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRLiveRanges.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFoldOperands.cpp.o' are missing
 ninja explain: lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFoldOperands.cpp.o is dirty
 ninja explain: deps for 'lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFrameLowering.cpp.o' are missing
@@ -8403,8 +44173,8 @@
 ninja explain: lib/Target/ARM/ARMGenCallingConv.inc.tmp is dirty
 ninja explain: lib/Target/ARM/ARMGenSubtargetInfo.inc.tmp is dirty
 ninja explain: lib/Target/ARM/ARMGenDisassemblerTables.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/A15SDOptimizer.cpp.o is dirty
 ninja explain: deps for 'lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMAsmPrinter.cpp.o' are missing
 ninja explain: lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMAsmPrinter.cpp.o is dirty
@@ -8546,8 +44316,8 @@
 ninja explain: lib/Target/BPF/BPFGenMCCodeEmitter.inc.tmp is dirty
 ninja explain: lib/Target/BPF/BPFGenCallingConv.inc.tmp is dirty
 ninja explain: lib/Target/BPF/BPFGenSubtargetInfo.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFAsmPrinter.cpp.o is dirty
 ninja explain: deps for 'lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFFrameLowering.cpp.o' are missing
 ninja explain: lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFFrameLowering.cpp.o is dirty
@@ -8581,6 +44351,12 @@
 ninja explain: deps for 'lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFELFObjectWriter.cpp.o' are missing
 ninja explain: lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFELFObjectWriter.cpp.o is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
+ninja explain: deps for 'lib/Target/CppBackend/CMakeFiles/LLVMCppBackendCodeGen.dir/CPPBackend.cpp.o' are missing
+ninja explain: lib/Target/CppBackend/CMakeFiles/LLVMCppBackendCodeGen.dir/CPPBackend.cpp.o is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: deps for 'lib/Target/CppBackend/TargetInfo/CMakeFiles/LLVMCppBackendInfo.dir/CppBackendTargetInfo.cpp.o' are missing
+ninja explain: lib/Target/CppBackend/TargetInfo/CMakeFiles/LLVMCppBackendInfo.dir/CppBackendTargetInfo.cpp.o is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/BitTracker.cpp.o' are missing
 ninja explain: bin/llvm-tblgen is dirty
 ninja explain: lib/Target/Hexagon/HexagonGenAsmMatcher.inc.tmp is dirty
@@ -8633,8 +44409,8 @@
 ninja explain: lib/Target/Hexagon/HexagonGenMCCodeEmitter.inc.tmp is dirty
 ninja explain: lib/Target/Hexagon/HexagonGenRegisterInfo.inc.tmp is dirty
 ninja explain: lib/Target/Hexagon/HexagonGenSubtargetInfo.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/BitTracker.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonAsmPrinter.cpp.o' are missing
 ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonAsmPrinter.cpp.o is dirty
@@ -8644,8 +44420,6 @@
 ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBitTracker.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBlockRanges.cpp.o' are missing
 ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBlockRanges.cpp.o is dirty
-ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBranchRelaxation.cpp.o' are missing
-ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBranchRelaxation.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCFGOptimizer.cpp.o' are missing
 ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCFGOptimizer.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCommonGEP.cpp.o' are missing
@@ -8684,8 +44458,6 @@
 ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMCInstLower.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonNewValueJump.cpp.o' are missing
 ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonNewValueJump.cpp.o is dirty
-ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptAddrMode.cpp.o' are missing
-ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptAddrMode.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptimizeSZextends.cpp.o' are missing
 ninja explain: lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptimizeSZextends.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonPeephole.cpp.o' are missing
@@ -8818,8 +44590,8 @@
 ninja explain: lib/Target/Mips/MipsGenSubtargetInfo.inc.tmp is dirty
 ninja explain: lib/Target/Mips/MipsGenAsmMatcher.inc.tmp is dirty
 ninja explain: lib/Target/Mips/MipsGenMCPseudoLowering.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16FrameLowering.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16HardFloat.cpp.o' are missing
 ninja explain: lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16HardFloat.cpp.o is dirty
@@ -8955,8 +44727,8 @@
 ninja explain: lib/Target/MSP430/MSP430GenDAGISel.inc.tmp is dirty
 ninja explain: lib/Target/MSP430/MSP430GenCallingConv.inc.tmp is dirty
 ninja explain: lib/Target/MSP430/MSP430GenSubtargetInfo.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430BranchSelector.cpp.o is dirty
 ninja explain: deps for 'lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelDAGToDAG.cpp.o' are missing
 ninja explain: lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelDAGToDAG.cpp.o is dirty
@@ -9017,8 +44789,8 @@
 ninja explain: lib/Target/NVPTX/NVPTXGenAsmWriter.inc.tmp is dirty
 ninja explain: lib/Target/NVPTX/NVPTXGenDAGISel.inc.tmp is dirty
 ninja explain: lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAllocaHoisting.cpp.o is dirty
 ninja explain: deps for 'lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAsmPrinter.cpp.o' are missing
 ninja explain: lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAsmPrinter.cpp.o is dirty
@@ -9130,8 +44902,8 @@
 ninja explain: lib/Target/PowerPC/PPCGenFastISel.inc.tmp is dirty
 ninja explain: lib/Target/PowerPC/PPCGenCallingConv.inc.tmp is dirty
 ninja explain: lib/Target/PowerPC/PPCGenSubtargetInfo.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCBoolRetToInt.cpp.o is dirty
 ninja explain: deps for 'lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCAsmPrinter.cpp.o' are missing
 ninja explain: lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCAsmPrinter.cpp.o is dirty
@@ -9163,8 +44935,6 @@
 ninja explain: lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMIPeephole.cpp.o is dirty
 ninja explain: deps for 'lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCRegisterInfo.cpp.o' are missing
 ninja explain: lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCRegisterInfo.cpp.o is dirty
-ninja explain: deps for 'lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCQPXLoadSplat.cpp.o' are missing
-ninja explain: lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCQPXLoadSplat.cpp.o is dirty
 ninja explain: deps for 'lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCSubtarget.cpp.o' are missing
 ninja explain: lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCSubtarget.cpp.o is dirty
 ninja explain: deps for 'lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetMachine.cpp.o' are missing
@@ -9260,8 +45030,8 @@
 ninja explain: lib/Target/Sparc/SparcGenDAGISel.inc.tmp is dirty
 ninja explain: lib/Target/Sparc/SparcGenSubtargetInfo.inc.tmp is dirty
 ninja explain: lib/Target/Sparc/SparcGenCallingConv.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/DelaySlotFiller.cpp.o is dirty
 ninja explain: deps for 'lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcAsmPrinter.cpp.o' are missing
 ninja explain: lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcAsmPrinter.cpp.o is dirty
@@ -9360,8 +45130,8 @@
 ninja explain: lib/Target/SystemZ/SystemZGenInstrInfo.inc.tmp is dirty
 ninja explain: lib/Target/SystemZ/SystemZGenRegisterInfo.inc.tmp is dirty
 ninja explain: lib/Target/SystemZ/SystemZGenSubtargetInfo.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZAsmPrinter.cpp.o is dirty
 ninja explain: deps for 'lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZCallingConv.cpp.o' are missing
 ninja explain: lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZCallingConv.cpp.o is dirty
@@ -9473,8 +45243,8 @@
 ninja explain: lib/Target/X86/X86GenFastISel.inc.tmp is dirty
 ninja explain: lib/Target/X86/X86GenCallingConv.inc.tmp is dirty
 ninja explain: lib/Target/X86/X86GenSubtargetInfo.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86AsmPrinter.cpp.o is dirty
 ninja explain: deps for 'lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86CallFrameOptimization.cpp.o' are missing
 ninja explain: lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86CallFrameOptimization.cpp.o is dirty
@@ -9600,8 +45370,8 @@
 ninja explain: lib/Target/XCore/XCoreGenDAGISel.inc.tmp is dirty
 ninja explain: lib/Target/XCore/XCoreGenCallingConv.inc.tmp is dirty
 ninja explain: lib/Target/XCore/XCoreGenSubtargetInfo.inc.tmp is dirty
-ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
 ninja explain: lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreAsmPrinter.cpp.o is dirty
 ninja explain: deps for 'lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreFrameLowering.cpp.o' are missing
 ninja explain: lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreFrameLowering.cpp.o is dirty
@@ -9644,6 +45414,119 @@
 ninja explain: deps for 'lib/Target/XCore/MCTargetDesc/CMakeFiles/LLVMXCoreDesc.dir/XCoreMCAsmInfo.cpp.o' are missing
 ninja explain: lib/Target/XCore/MCTargetDesc/CMakeFiles/LLVMXCoreDesc.dir/XCoreMCAsmInfo.cpp.o is dirty
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyArgumentMove.cpp.o' are missing
+ninja explain: bin/llvm-tblgen is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenAsmWriter.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenAsmWriter.inc is dirty
+ninja explain: bin/llvm-tblgen is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenDAGISel.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenDAGISel.inc is dirty
+ninja explain: bin/llvm-tblgen is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenFastISel.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenFastISel.inc is dirty
+ninja explain: bin/llvm-tblgen is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenInstrInfo.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenInstrInfo.inc is dirty
+ninja explain: bin/llvm-tblgen is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenMCCodeEmitter.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenMCCodeEmitter.inc is dirty
+ninja explain: bin/llvm-tblgen is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenRegisterInfo.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenRegisterInfo.inc is dirty
+ninja explain: bin/llvm-tblgen is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenSubtargetInfo.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenSubtargetInfo.inc is dirty
+ninja explain: lib/Target/WebAssembly/CMakeFiles/WebAssemblyCommonTableGen is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenAsmWriter.inc is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenDAGISel.inc is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenFastISel.inc is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenInstrInfo.inc is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenMCCodeEmitter.inc is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenRegisterInfo.inc is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenSubtargetInfo.inc is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenAsmWriter.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenDAGISel.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenFastISel.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenInstrInfo.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenMCCodeEmitter.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenRegisterInfo.inc.tmp is dirty
+ninja explain: lib/Target/WebAssembly/WebAssemblyGenSubtargetInfo.inc.tmp is dirty
+ninja explain: bin/llvm-tblgen is dirty
+ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyArgumentMove.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyAsmPrinter.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyAsmPrinter.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyCFGStackify.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyCFGStackify.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFastISel.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFastISel.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFixIrreducibleControlFlow.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFixIrreducibleControlFlow.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFrameLowering.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFrameLowering.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyISelDAGToDAG.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyISelDAGToDAG.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyISelLowering.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyISelLowering.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyInstrInfo.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyInstrInfo.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyLowerBrUnless.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyLowerBrUnless.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyMachineFunctionInfo.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyMachineFunctionInfo.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyMCInstLower.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyMCInstLower.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyOptimizeReturned.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyOptimizeReturned.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyPeephole.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyPeephole.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyPEI.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyPEI.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegisterInfo.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegisterInfo.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegColoring.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegColoring.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegNumbering.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegNumbering.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegStackify.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegStackify.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySelectionDAGInfo.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySelectionDAGInfo.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySetP2AlignOperands.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySetP2AlignOperands.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyStoreResults.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyStoreResults.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySubtarget.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySubtarget.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetMachine.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetMachine.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetObjectFile.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetObjectFile.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetTransformInfo.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetTransformInfo.cpp.o is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/Disassembler/CMakeFiles/LLVMWebAssemblyDisassembler.dir/WebAssemblyDisassembler.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/Disassembler/CMakeFiles/LLVMWebAssemblyDisassembler.dir/WebAssemblyDisassembler.cpp.o is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/InstPrinter/CMakeFiles/LLVMWebAssemblyAsmPrinter.dir/WebAssemblyInstPrinter.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/InstPrinter/CMakeFiles/LLVMWebAssemblyAsmPrinter.dir/WebAssemblyInstPrinter.cpp.o is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyAsmBackend.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyAsmBackend.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyELFObjectWriter.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyELFObjectWriter.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCAsmInfo.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCAsmInfo.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCCodeEmitter.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCCodeEmitter.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCTargetDesc.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCTargetDesc.cpp.o is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyTargetStreamer.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyTargetStreamer.cpp.o is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: deps for 'lib/Target/WebAssembly/TargetInfo/CMakeFiles/LLVMWebAssemblyInfo.dir/WebAssemblyTargetInfo.cpp.o' are missing
+ninja explain: lib/Target/WebAssembly/TargetInfo/CMakeFiles/LLVMWebAssemblyInfo.dir/WebAssemblyTargetInfo.cpp.o is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: deps for 'lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLLexer.cpp.o' are missing
 ninja explain: lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLLexer.cpp.o is dirty
 ninja explain: deps for 'lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLParser.cpp.o' are missing
@@ -9660,6 +45543,12 @@
 ninja explain: lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfReader.cpp.o is dirty
 ninja explain: deps for 'lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfWriter.cpp.o' are missing
 ninja explain: lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfWriter.cpp.o is dirty
+ninja explain: deps for 'lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMapping.cpp.o' are missing
+ninja explain: lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMapping.cpp.o is dirty
+ninja explain: deps for 'lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMappingWriter.cpp.o' are missing
+ninja explain: lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMappingWriter.cpp.o is dirty
+ninja explain: deps for 'lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMappingReader.cpp.o' are missing
+ninja explain: lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMappingReader.cpp.o is dirty
 ninja explain: deps for 'lib/ProfileData/CMakeFiles/LLVMProfileData.dir/ProfileSummary.cpp.o' are missing
 ninja explain: lib/ProfileData/CMakeFiles/LLVMProfileData.dir/ProfileSummary.cpp.o is dirty
 ninja explain: deps for 'lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProf.cpp.o' are missing
@@ -9669,13 +45558,6 @@
 ninja explain: deps for 'lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfWriter.cpp.o' are missing
 ninja explain: lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfWriter.cpp.o is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: deps for 'lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMapping.cpp.o' are missing
-ninja explain: lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMapping.cpp.o is dirty
-ninja explain: deps for 'lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMappingWriter.cpp.o' are missing
-ninja explain: lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMappingWriter.cpp.o is dirty
-ninja explain: deps for 'lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMappingReader.cpp.o' are missing
-ninja explain: lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMappingReader.cpp.o is dirty
-ninja explain: lib/libLLVMCoverage.a is dirty
 ninja explain: deps for 'lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o' are missing
 ninja explain: lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o is dirty
 ninja explain: lib/libLLVMPasses.a is dirty
@@ -9743,6 +45625,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -9791,6 +45675,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMLTO.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
@@ -9827,10 +45716,12 @@
 ninja explain: lib/libLLVMX86Utils.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
 ninja explain: lib/libLLVMTarget.a is dirty
@@ -9882,6 +45773,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -9930,6 +45823,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMLinker.a is dirty
 ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMipo.a is dirty
@@ -9965,11 +45863,11 @@
 ninja explain: lib/libLLVMSystemZInfo.a is dirty
 ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
 ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
@@ -9978,12 +45876,14 @@
 ninja explain: lib/libLLVMInstCombine.a is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
@@ -10012,6 +45912,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -10060,6 +45962,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMLibDriver.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
@@ -10099,6 +46006,8 @@
 ninja explain: lib/libLLVMX86Utils.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
@@ -10108,10 +46017,10 @@
 ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
@@ -10142,7 +46051,11 @@
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llvm-profdata is dirty
 ninja explain: deps for 'tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangASTNodesEmitter.cpp.o' are missing
@@ -10194,14 +46107,10 @@
 ninja explain: lib/clang/3.9.0/include/avx512erintrin.h is dirty
 ninja explain: output lib/clang/3.9.0/include/avx512fintrin.h doesn't exist
 ninja explain: lib/clang/3.9.0/include/avx512fintrin.h is dirty
-ninja explain: output lib/clang/3.9.0/include/avx512pfintrin.h doesn't exist
-ninja explain: lib/clang/3.9.0/include/avx512pfintrin.h is dirty
 ninja explain: output lib/clang/3.9.0/include/avx512vlbwintrin.h doesn't exist
 ninja explain: lib/clang/3.9.0/include/avx512vlbwintrin.h is dirty
 ninja explain: output lib/clang/3.9.0/include/avx512vlintrin.h doesn't exist
 ninja explain: lib/clang/3.9.0/include/avx512vlintrin.h is dirty
-ninja explain: output lib/clang/3.9.0/include/avx512vlcdintrin.h doesn't exist
-ninja explain: lib/clang/3.9.0/include/avx512vlcdintrin.h is dirty
 ninja explain: output lib/clang/3.9.0/include/avx512dqintrin.h doesn't exist
 ninja explain: lib/clang/3.9.0/include/avx512dqintrin.h is dirty
 ninja explain: output lib/clang/3.9.0/include/avx512vldqintrin.h doesn't exist
@@ -10220,8 +46129,6 @@
 ninja explain: lib/clang/3.9.0/include/bmiintrin.h is dirty
 ninja explain: output lib/clang/3.9.0/include/__clang_cuda_cmath.h doesn't exist
 ninja explain: lib/clang/3.9.0/include/__clang_cuda_cmath.h is dirty
-ninja explain: output lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h doesn't exist
-ninja explain: lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h is dirty
 ninja explain: output lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h doesn't exist
 ninja explain: lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h is dirty
 ninja explain: output lib/clang/3.9.0/include/cpuid.h doesn't exist
@@ -10354,10 +46261,8 @@
 ninja explain: lib/clang/3.9.0/include/avx512cdintrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/avx512erintrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/avx512fintrin.h is dirty
-ninja explain: lib/clang/3.9.0/include/avx512pfintrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/avx512vlbwintrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/avx512vlintrin.h is dirty
-ninja explain: lib/clang/3.9.0/include/avx512vlcdintrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/avx512dqintrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/avx512vldqintrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/avx512vbmiintrin.h is dirty
@@ -10367,7 +46272,6 @@
 ninja explain: lib/clang/3.9.0/include/bmi2intrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/bmiintrin.h is dirty
 ninja explain: lib/clang/3.9.0/include/__clang_cuda_cmath.h is dirty
-ninja explain: lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h is dirty
 ninja explain: lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h is dirty
 ninja explain: lib/clang/3.9.0/include/cpuid.h is dirty
 ninja explain: lib/clang/3.9.0/include/cuda_builtin_vars.h is dirty
@@ -10434,11 +46338,18 @@
 ninja explain: tools/clang/lib/Headers/clang-headers is dirty
 ninja explain: deps for 'tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Attributes.cpp.o' are missing
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/AST/AttrDump.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/AST/AttrDump.inc is dirty
-ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangAttrDump is dirty
-ninja explain: tools/clang/include/clang/AST/AttrDump.inc is dirty
-ninja explain: tools/clang/include/clang/AST/AttrDump.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticASTKinds.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticASTKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticAST is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticASTKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticASTKinds.inc.tmp is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/include/clang/AST/AttrImpl.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/AST/AttrImpl.inc is dirty
+ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangAttrImpl is dirty
+ninja explain: tools/clang/include/clang/AST/AttrImpl.inc is dirty
+ninja explain: tools/clang/include/clang/AST/AttrImpl.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/AST/Attrs.inc.tmp is dirty
@@ -10448,11 +46359,11 @@
 ninja explain: tools/clang/include/clang/AST/Attrs.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/AST/AttrImpl.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/AST/AttrImpl.inc is dirty
-ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangAttrImpl is dirty
-ninja explain: tools/clang/include/clang/AST/AttrImpl.inc is dirty
-ninja explain: tools/clang/include/clang/AST/AttrImpl.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/AST/AttrDump.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/AST/AttrDump.inc is dirty
+ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangAttrDump is dirty
+ninja explain: tools/clang/include/clang/AST/AttrDump.inc is dirty
+ninja explain: tools/clang/include/clang/AST/AttrDump.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/AST/AttrVisitor.inc.tmp is dirty
@@ -10469,13 +46380,6 @@
 ninja explain: tools/clang/include/clang/AST/StmtNodes.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/AST/DeclNodes.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/AST/DeclNodes.inc is dirty
-ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangDeclNodes is dirty
-ninja explain: tools/clang/include/clang/AST/DeclNodes.inc is dirty
-ninja explain: tools/clang/include/clang/AST/DeclNodes.inc.tmp is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/AST/CommentNodes.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/AST/CommentNodes.inc is dirty
 ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangCommentNodes is dirty
@@ -10483,6 +46387,13 @@
 ninja explain: tools/clang/include/clang/AST/CommentNodes.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/include/clang/AST/DeclNodes.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/AST/DeclNodes.inc is dirty
+ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangDeclNodes is dirty
+ninja explain: tools/clang/include/clang/AST/DeclNodes.inc is dirty
+ninja explain: tools/clang/include/clang/AST/DeclNodes.inc.tmp is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/AST/CommentHTMLTags.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/AST/CommentHTMLTags.inc is dirty
 ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangCommentHTMLTags is dirty
@@ -10497,13 +46408,6 @@
 ninja explain: tools/clang/include/clang/AST/CommentHTMLTagsProperties.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/AST/CommentCommandInfo.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/AST/CommentCommandInfo.inc is dirty
-ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangCommentCommandInfo is dirty
-ninja explain: tools/clang/include/clang/AST/CommentCommandInfo.inc is dirty
-ninja explain: tools/clang/include/clang/AST/CommentCommandInfo.inc.tmp is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc is dirty
 ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangCommentHTMLNamedCharacterReferences is dirty
@@ -10511,6 +46415,13 @@
 ninja explain: tools/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/include/clang/AST/CommentCommandInfo.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/AST/CommentCommandInfo.inc is dirty
+ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangCommentCommandInfo is dirty
+ninja explain: tools/clang/include/clang/AST/CommentCommandInfo.inc is dirty
+ninja explain: tools/clang/include/clang/AST/CommentCommandInfo.inc.tmp is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/AST/CommentCommandList.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/AST/CommentCommandList.inc is dirty
 ninja explain: tools/clang/include/clang/AST/CMakeFiles/ClangCommentCommandList is dirty
@@ -10518,20 +46429,6 @@
 ninja explain: tools/clang/include/clang/AST/CommentCommandList.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticASTKinds.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticASTKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticAST is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticASTKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticASTKinds.inc.tmp is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticFrontendKinds.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticFrontendKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticFrontend is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticFrontendKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticFrontendKinds.inc.tmp is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc is dirty
 ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticAnalysis is dirty
@@ -10539,13 +46436,6 @@
 ninja explain: tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticCommentKinds.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticCommentKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticComment is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticCommentKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticCommentKinds.inc.tmp is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticCommonKinds.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticCommonKinds.inc is dirty
 ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticCommon is dirty
@@ -10553,6 +46443,13 @@
 ninja explain: tools/clang/include/clang/Basic/DiagnosticCommonKinds.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticCommentKinds.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticCommentKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticComment is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticCommentKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticCommentKinds.inc.tmp is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticDriverKinds.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticDriverKinds.inc is dirty
 ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticDriver is dirty
@@ -10560,11 +46457,11 @@
 ninja explain: tools/clang/include/clang/Basic/DiagnosticDriverKinds.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticParseKinds.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticParseKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticParse is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticParseKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticParseKinds.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticFrontendKinds.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticFrontendKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticFrontend is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticFrontendKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticFrontendKinds.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticLexKinds.inc.tmp is dirty
@@ -10574,6 +46471,13 @@
 ninja explain: tools/clang/include/clang/Basic/DiagnosticLexKinds.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticParseKinds.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticParseKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticParse is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticParseKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticParseKinds.inc.tmp is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticGroups.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticGroups.inc is dirty
 ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticGroups is dirty
@@ -10581,13 +46485,6 @@
 ninja explain: tools/clang/include/clang/Basic/DiagnosticGroups.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticSema is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc.tmp is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticSerializationKinds.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticSerializationKinds.inc is dirty
 ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticSerialization is dirty
@@ -10595,6 +46492,13 @@
 ninja explain: tools/clang/include/clang/Basic/DiagnosticSerializationKinds.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticSema is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticSemaKinds.inc.tmp is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticIndexName.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/Basic/DiagnosticIndexName.inc is dirty
 ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticIndexName is dirty
@@ -10602,13 +46506,6 @@
 ninja explain: tools/clang/include/clang/Basic/DiagnosticIndexName.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/Basic/AttrList.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/Basic/AttrList.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangAttrList is dirty
-ninja explain: tools/clang/include/clang/Basic/AttrList.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/AttrList.inc.tmp is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/AttrHasAttributeImpl.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/Basic/AttrHasAttributeImpl.inc is dirty
 ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangAttrHasAttributeImpl is dirty
@@ -10616,6 +46513,13 @@
 ninja explain: tools/clang/include/clang/Basic/AttrHasAttributeImpl.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
 ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/include/clang/Basic/AttrList.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/AttrList.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangAttrList is dirty
+ninja explain: tools/clang/include/clang/Basic/AttrList.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/AttrList.inc.tmp is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: bin/clang-tblgen is dirty
 ninja explain: tools/clang/include/clang/Basic/arm_neon.inc.tmp is dirty
 ninja explain: tools/clang/include/clang/Basic/arm_neon.inc is dirty
 ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangARMNeon is dirty
@@ -10678,13 +46582,6 @@
 ninja explain: tools/clang/include/clang/Serialization/AttrPCHWrite.inc is dirty
 ninja explain: tools/clang/include/clang/Serialization/AttrPCHWrite.inc.tmp is dirty
 ninja explain: bin/clang-tblgen is dirty
-ninja explain: bin/clang-tblgen is dirty
-ninja explain: tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.inc.tmp is dirty
-ninja explain: tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.inc is dirty
-ninja explain: tools/clang/include/clang/StaticAnalyzer/Checkers/CMakeFiles/ClangSACheckers is dirty
-ninja explain: tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.inc is dirty
-ninja explain: tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.inc.tmp is dirty
-ninja explain: bin/clang-tblgen is dirty
 ninja explain: output tools/clang/lib/Basic/SVNVersion.inc doesn't exist
 ninja explain: tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Attributes.cpp.o is dirty
 ninja explain: deps for 'tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Builtins.cpp.o' are missing
@@ -11138,8 +47035,6 @@
 ninja explain: tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ObjectFilePCHContainerOperations.cpp.o is dirty
 ninja explain: deps for 'tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SanitizerMetadata.cpp.o' are missing
 ninja explain: tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SanitizerMetadata.cpp.o is dirty
-ninja explain: deps for 'tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SwiftCallingConv.cpp.o' are missing
-ninja explain: tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SwiftCallingConv.cpp.o is dirty
 ninja explain: deps for 'tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/TargetInfo.cpp.o' are missing
 ninja explain: tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/TargetInfo.cpp.o is dirty
 ninja explain: lib/libclangCodeGen.a is dirty
@@ -11530,6 +47425,48 @@
 ninja explain: tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SymbolManager.cpp.o is dirty
 ninja explain: lib/libclangStaticAnalyzerCore.a is dirty
 ninja explain: deps for 'tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AllocationDiagnostics.cpp.o' are missing
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/lib/StaticAnalyzer/Checkers/Checkers.inc.tmp is dirty
+ninja explain: tools/clang/lib/StaticAnalyzer/Checkers/Checkers.inc is dirty
+ninja explain: tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/ClangSACheckers is dirty
+ninja explain: tools/clang/lib/StaticAnalyzer/Checkers/Checkers.inc is dirty
+ninja explain: tools/clang/lib/StaticAnalyzer/Checkers/Checkers.inc.tmp is dirty
+ninja explain: bin/clang-tblgen is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticAST is dirty
+ninja explain: tools/clang/include/clang/AST/ClangAttrImpl is dirty
+ninja explain: tools/clang/include/clang/AST/ClangAttrClasses is dirty
+ninja explain: tools/clang/include/clang/AST/ClangAttrDump is dirty
+ninja explain: tools/clang/include/clang/AST/ClangAttrVisitor is dirty
+ninja explain: tools/clang/include/clang/AST/ClangStmtNodes is dirty
+ninja explain: tools/clang/include/clang/AST/ClangCommentNodes is dirty
+ninja explain: tools/clang/include/clang/AST/ClangDeclNodes is dirty
+ninja explain: tools/clang/include/clang/AST/ClangCommentHTMLTags is dirty
+ninja explain: tools/clang/include/clang/AST/ClangCommentHTMLTagsProperties is dirty
+ninja explain: tools/clang/include/clang/AST/ClangCommentHTMLNamedCharacterReferences is dirty
+ninja explain: tools/clang/include/clang/AST/ClangCommentCommandInfo is dirty
+ninja explain: tools/clang/include/clang/AST/ClangCommentCommandList is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticAnalysis is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticCommon is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticComment is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticDriver is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticFrontend is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticLex is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticParse is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticGroups is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticSerialization is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticSema is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangDiagnosticIndexName is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangAttrHasAttributeImpl is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangAttrList is dirty
+ninja explain: tools/clang/include/clang/Basic/ClangARMNeon is dirty
+ninja explain: tools/clang/include/clang/Parse/ClangAttrParserStringSwitches is dirty
+ninja explain: tools/clang/include/clang/Sema/ClangAttrParsedAttrList is dirty
+ninja explain: tools/clang/include/clang/Sema/ClangAttrTemplateInstantiate is dirty
+ninja explain: tools/clang/include/clang/Sema/ClangAttrParsedAttrKinds is dirty
+ninja explain: tools/clang/include/clang/Sema/ClangAttrSpellingListIndex is dirty
+ninja explain: tools/clang/include/clang/Sema/ClangAttrParsedAttrImpl is dirty
+ninja explain: tools/clang/include/clang/Serialization/ClangAttrPCHRead is dirty
+ninja explain: tools/clang/include/clang/Serialization/ClangAttrPCHWrite is dirty
 ninja explain: tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AllocationDiagnostics.cpp.o is dirty
 ninja explain: deps for 'tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AnalyzerStatsChecker.cpp.o' are missing
 ninja explain: tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AnalyzerStatsChecker.cpp.o is dirty
@@ -11687,8 +47624,6 @@
 ninja explain: deps for 'tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelInjector.cpp.o' are missing
 ninja explain: tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelInjector.cpp.o is dirty
 ninja explain: lib/libclangStaticAnalyzerFrontend.a is dirty
-ninja explain: deps for 'tools/clang/lib/Format/CMakeFiles/clangFormat.dir/AffectedRangeManager.cpp.o' are missing
-ninja explain: tools/clang/lib/Format/CMakeFiles/clangFormat.dir/AffectedRangeManager.cpp.o is dirty
 ninja explain: deps for 'tools/clang/lib/Format/CMakeFiles/clangFormat.dir/BreakableToken.cpp.o' are missing
 ninja explain: tools/clang/lib/Format/CMakeFiles/clangFormat.dir/BreakableToken.cpp.o is dirty
 ninja explain: deps for 'tools/clang/lib/Format/CMakeFiles/clangFormat.dir/ContinuationIndenter.cpp.o' are missing
@@ -11723,7 +47658,6 @@
 ninja explain: lib/libclangFrontend.a is dirty
 ninja explain: lib/libclangDriver.a is dirty
 ninja explain: lib/libclangParse.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libclangSerialization.a is dirty
 ninja explain: lib/libclangSema.a is dirty
 ninja explain: lib/libclangEdit.a is dirty
@@ -11731,14 +47665,20 @@
 ninja explain: lib/libclangAST.a is dirty
 ninja explain: lib/libclangLex.a is dirty
 ninja explain: lib/libclangBasic.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMOption.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/diagtool is dirty
 ninja explain: deps for 'tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o' are missing
+ninja explain: output lib/clang/3.9.0/vtables_blacklist.txt doesn't exist
+ninja explain: lib/clang/3.9.0/vtables_blacklist.txt is dirty
+ninja explain: tools/clang/runtime/CMakeFiles/vtables_blacklist is dirty
+ninja explain: lib/clang/3.9.0/vtables_blacklist.txt is dirty
 ninja explain: tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o is dirty
 ninja explain: deps for 'tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o' are missing
 ninja explain: tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o is dirty
@@ -11766,6 +47706,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -11814,6 +47756,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
@@ -11863,11 +47810,13 @@
 ninja explain: lib/libLLVMX86Utils.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libclangCodeGen.a is dirty
 ninja explain: lib/libLLVMipo.a is dirty
@@ -11883,8 +47832,6 @@
 ninja explain: lib/libLLVMLinker.a is dirty
 ninja explain: lib/libLLVMTransformUtils.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMCoverage.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libclangRewriteFrontend.a is dirty
 ninja explain: lib/libclangARCMigrate.a is dirty
 ninja explain: lib/libclangStaticAnalyzerFrontend.a is dirty
@@ -11892,6 +47839,7 @@
 ninja explain: lib/libclangDriver.a is dirty
 ninja explain: lib/libLLVMOption.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libclangParse.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libclangSerialization.a is dirty
@@ -11998,6 +47946,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -12046,6 +47996,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: lib/libclangFormat.a is dirty
@@ -12098,25 +48053,27 @@
 ninja explain: lib/libLLVMSystemZInfo.a is dirty
 ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
 ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMScalarOpts.a is dirty
 ninja explain: lib/libLLVMInstCombine.a is dirty
 ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
@@ -12133,14 +48090,15 @@
 ninja explain: lib/libclangFrontend.a is dirty
 ninja explain: lib/libclangDriver.a is dirty
 ninja explain: lib/libclangParse.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libclangSerialization.a is dirty
 ninja explain: lib/libclangSema.a is dirty
 ninja explain: lib/libclangEdit.a is dirty
 ninja explain: lib/libclangAnalysis.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMOption.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libclangFormat.a is dirty
 ninja explain: lib/libclangToolingCore.a is dirty
 ninja explain: lib/libclangAST.a is dirty
@@ -12160,9 +48118,10 @@
 ninja explain: lib/libclangLex.a is dirty
 ninja explain: lib/libclangDriver.a is dirty
 ninja explain: lib/libclangParse.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMOption.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libclangSerialization.a is dirty
 ninja explain: lib/libclangSema.a is dirty
 ninja explain: lib/libclangEdit.a is dirty
@@ -12206,6 +48165,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -12254,6 +48215,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMOption.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: lib/libclangAST.a is dirty
@@ -12296,9 +48262,10 @@
 ninja explain: lib/libLLVMSystemZInfo.a is dirty
 ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
 ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
@@ -12307,10 +48274,10 @@
 ninja explain: lib/libLLVMInstCombine.a is dirty
 ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libclangStaticAnalyzerCheckers.a is dirty
 ninja explain: lib/libclangStaticAnalyzerCore.a is dirty
@@ -12318,13 +48285,14 @@
 ninja explain: lib/libclangDriver.a is dirty
 ninja explain: lib/libLLVMOption.a is dirty
 ninja explain: lib/libclangParse.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libclangSerialization.a is dirty
 ninja explain: lib/libclangSema.a is dirty
 ninja explain: lib/libclangEdit.a is dirty
 ninja explain: lib/libclangAnalysis.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libclangASTMatchers.a is dirty
 ninja explain: lib/libclangFormat.a is dirty
 ninja explain: lib/libclangToolingCore.a is dirty
@@ -12380,458 +48348,12 @@
 ninja explain: share/scan-view/bugcatcher.ico is dirty
 ninja explain: tools/clang/tools/scan-view/scan-view is dirty
 ninja explain: lib/libclang.so is dirty
-ninja explain: deps for 'tools/llvm-mcmarkup/CMakeFiles/llvm-mcmarkup.dir/llvm-mcmarkup.cpp.o' are missing
-ninja explain: tools/llvm-mcmarkup/CMakeFiles/llvm-mcmarkup.dir/llvm-mcmarkup.cpp.o is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-mcmarkup is dirty
-ninja explain: deps for 'tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o' are missing
-ninja explain: tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o' are missing
-ninja explain: tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o is dirty
-ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
-ninja explain: lib/libLLVMAMDGPUCodeGen.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
-ninja explain: lib/libLLVMARMCodeGen.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMAsmParser.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMARMDisassembler.a is dirty
-ninja explain: lib/libLLVMBPFCodeGen.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMBPFDesc.a is dirty
-ninja explain: lib/libLLVMBPFInfo.a is dirty
-ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
-ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
-ninja explain: lib/libLLVMMipsCodeGen.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsAsmParser.a is dirty
-ninja explain: lib/libLLVMMipsDesc.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMipsDisassembler.a is dirty
-ninja explain: lib/libLLVMMSP430CodeGen.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMMSP430Desc.a is dirty
-ninja explain: lib/libLLVMMSP430Info.a is dirty
-ninja explain: lib/libLLVMNVPTXCodeGen.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXDesc.a is dirty
-ninja explain: lib/libLLVMNVPTXInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCCodeGen.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmParser.a is dirty
-ninja explain: lib/libLLVMPowerPCDesc.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
-ninja explain: lib/libLLVMSparcCodeGen.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcAsmParser.a is dirty
-ninja explain: lib/libLLVMSparcDesc.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSparcDisassembler.a is dirty
-ninja explain: lib/libLLVMSystemZCodeGen.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZAsmParser.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
-ninja explain: lib/libLLVMX86CodeGen.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86AsmParser.a is dirty
-ninja explain: lib/libLLVMX86Desc.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMX86Disassembler.a is dirty
-ninja explain: lib/libLLVMXCoreCodeGen.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMXCoreDesc.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMGlobalISel.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAArch64Utils.a is dirty
-ninja explain: lib/libLLVMipo.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMLinker.a is dirty
-ninja explain: lib/libLLVMVectorize.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMSelectionDAG.a is dirty
-ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMScalarOpts.a is dirty
-ninja explain: lib/libLLVMInstCombine.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMInstrumentation.a is dirty
-ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-cxxdump is dirty
-ninja explain: deps for 'tools/llvm-size/CMakeFiles/llvm-size.dir/llvm-size.cpp.o' are missing
-ninja explain: tools/llvm-size/CMakeFiles/llvm-size.dir/llvm-size.cpp.o is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-size is dirty
-ninja explain: deps for 'tools/llvm-dwarfdump/CMakeFiles/llvm-dwarfdump.dir/llvm-dwarfdump.cpp.o' are missing
-ninja explain: tools/llvm-dwarfdump/CMakeFiles/llvm-dwarfdump.dir/llvm-dwarfdump.cpp.o is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-dwarfdump is dirty
-ninja explain: deps for 'tools/llvm-dis/CMakeFiles/llvm-dis.dir/llvm-dis.cpp.o' are missing
-ninja explain: tools/llvm-dis/CMakeFiles/llvm-dis.dir/llvm-dis.cpp.o is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-dis is dirty
-ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/dsymutil.cpp.o' are missing
-ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/dsymutil.cpp.o is dirty
-ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/BinaryHolder.cpp.o' are missing
-ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/BinaryHolder.cpp.o is dirty
-ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DebugMap.cpp.o' are missing
-ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DebugMap.cpp.o is dirty
-ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DwarfLinker.cpp.o' are missing
-ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DwarfLinker.cpp.o is dirty
-ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachODebugMapParser.cpp.o' are missing
-ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachODebugMapParser.cpp.o is dirty
-ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachOUtils.cpp.o' are missing
-ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachOUtils.cpp.o is dirty
-ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
-ninja explain: lib/libLLVMAMDGPUCodeGen.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
-ninja explain: lib/libLLVMARMCodeGen.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMAsmParser.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMARMDisassembler.a is dirty
-ninja explain: lib/libLLVMBPFCodeGen.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMBPFDesc.a is dirty
-ninja explain: lib/libLLVMBPFInfo.a is dirty
-ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
-ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
-ninja explain: lib/libLLVMMipsCodeGen.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsAsmParser.a is dirty
-ninja explain: lib/libLLVMMipsDesc.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMipsDisassembler.a is dirty
-ninja explain: lib/libLLVMMSP430CodeGen.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMMSP430Desc.a is dirty
-ninja explain: lib/libLLVMMSP430Info.a is dirty
-ninja explain: lib/libLLVMNVPTXCodeGen.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXDesc.a is dirty
-ninja explain: lib/libLLVMNVPTXInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCCodeGen.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmParser.a is dirty
-ninja explain: lib/libLLVMPowerPCDesc.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
-ninja explain: lib/libLLVMSparcCodeGen.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcAsmParser.a is dirty
-ninja explain: lib/libLLVMSparcDesc.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSparcDisassembler.a is dirty
-ninja explain: lib/libLLVMSystemZCodeGen.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZAsmParser.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
-ninja explain: lib/libLLVMX86CodeGen.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86AsmParser.a is dirty
-ninja explain: lib/libLLVMX86Desc.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMX86Disassembler.a is dirty
-ninja explain: lib/libLLVMXCoreCodeGen.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMXCoreDesc.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
-ninja explain: lib/libLLVMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
-ninja explain: lib/libLLVMGlobalISel.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAArch64Utils.a is dirty
-ninja explain: lib/libLLVMipo.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMLinker.a is dirty
-ninja explain: lib/libLLVMVectorize.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMSelectionDAG.a is dirty
-ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
-ninja explain: lib/libLLVMScalarOpts.a is dirty
-ninja explain: lib/libLLVMInstCombine.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMInstrumentation.a is dirty
-ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-dsymutil is dirty
-ninja explain: deps for 'tools/sanstats/CMakeFiles/sanstats.dir/sanstats.cpp.o' are missing
-ninja explain: tools/sanstats/CMakeFiles/sanstats.dir/sanstats.cpp.o is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMSymbolize.a is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/sanstats is dirty
-ninja explain: deps for 'tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/llvm-objdump.cpp.o' are missing
-ninja explain: tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/llvm-objdump.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/COFFDump.cpp.o' are missing
-ninja explain: tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/COFFDump.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/ELFDump.cpp.o' are missing
-ninja explain: tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/ELFDump.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/MachODump.cpp.o' are missing
-ninja explain: tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/MachODump.cpp.o is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMBPFDesc.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMMipsDesc.a is dirty
-ninja explain: lib/libLLVMMSP430Desc.a is dirty
-ninja explain: lib/libLLVMNVPTXDesc.a is dirty
-ninja explain: lib/libLLVMPowerPCDesc.a is dirty
-ninja explain: lib/libLLVMSparcDesc.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMX86Desc.a is dirty
-ninja explain: lib/libLLVMXCoreDesc.a is dirty
-ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
-ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
-ninja explain: lib/libLLVMARMDisassembler.a is dirty
-ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
-ninja explain: lib/libLLVMMipsDisassembler.a is dirty
-ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
-ninja explain: lib/libLLVMSparcDisassembler.a is dirty
-ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
-ninja explain: lib/libLLVMX86Disassembler.a is dirty
-ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMBPFInfo.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMSP430Info.a is dirty
-ninja explain: lib/libLLVMNVPTXInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAArch64Utils.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMInstrumentation.a is dirty
-ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMScalarOpts.a is dirty
-ninja explain: lib/libLLVMInstCombine.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-objdump is dirty
 ninja explain: deps for 'tools/llvm-stress/CMakeFiles/llvm-stress.dir/llvm-stress.cpp.o' are missing
 ninja explain: tools/llvm-stress/CMakeFiles/llvm-stress.dir/llvm-stress.cpp.o is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llvm-stress is dirty
-ninja explain: deps for 'tools/verify-uselistorder/CMakeFiles/verify-uselistorder.dir/verify-uselistorder.cpp.o' are missing
-ninja explain: tools/verify-uselistorder/CMakeFiles/verify-uselistorder.dir/verify-uselistorder.cpp.o is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/verify-uselistorder is dirty
-ninja explain: deps for 'tools/llvm-as/CMakeFiles/llvm-as.dir/llvm-as.cpp.o' are missing
-ninja explain: tools/llvm-as/CMakeFiles/llvm-as.dir/llvm-as.cpp.o is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-as is dirty
 ninja explain: deps for 'tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2obj.cpp.o' are missing
 ninja explain: tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2obj.cpp.o is dirty
 ninja explain: deps for 'tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2coff.cpp.o' are missing
@@ -12848,10 +48370,21 @@
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/yaml2obj is dirty
+ninja explain: deps for 'tools/sanstats/CMakeFiles/sanstats.dir/sanstats.cpp.o' are missing
+ninja explain: tools/sanstats/CMakeFiles/sanstats.dir/sanstats.cpp.o is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMSymbolize.a is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/sanstats is dirty
 ninja explain: deps for 'tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/calc.c.o' are missing
 ninja explain: tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/calc.c.o is dirty
-ninja explain: deps for 'tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/diagnostic.c.o' are missing
-ninja explain: tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/diagnostic.c.o is dirty
 ninja explain: deps for 'tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/disassemble.c.o' are missing
 ninja explain: tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/disassemble.c.o is dirty
 ninja explain: deps for 'tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/echo.cpp.o' are missing
@@ -12892,6 +48425,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -12940,6 +48475,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
@@ -12979,29 +48519,187 @@
 ninja explain: lib/libLLVMSystemZInfo.a is dirty
 ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
 ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMScalarOpts.a is dirty
 ninja explain: lib/libLLVMInstCombine.a is dirty
 ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMTransformUtils.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llvm-c-test is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/llvm-pdbdump.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/llvm-pdbdump.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/BuiltinDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/BuiltinDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ClassDefinitionDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ClassDefinitionDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/CompilandDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/CompilandDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/EnumDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/EnumDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ExternalSymbolDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ExternalSymbolDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/FunctionDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/FunctionDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/LinePrinter.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/LinePrinter.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypeDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypeDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypedefDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypedefDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/VariableDumper.cpp.o' are missing
+ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/VariableDumper.cpp.o is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-pdbdump is dirty
+ninja explain: deps for 'tools/llvm-diff/CMakeFiles/llvm-diff.dir/llvm-diff.cpp.o' are missing
+ninja explain: tools/llvm-diff/CMakeFiles/llvm-diff.dir/llvm-diff.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffConsumer.cpp.o' are missing
+ninja explain: tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffConsumer.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffLog.cpp.o' are missing
+ninja explain: tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffLog.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-diff/CMakeFiles/llvm-diff.dir/DifferenceEngine.cpp.o' are missing
+ninja explain: tools/llvm-diff/CMakeFiles/llvm-diff.dir/DifferenceEngine.cpp.o is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-diff is dirty
+ninja explain: deps for 'tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/ChromeClassTester.cpp.o' are missing
+ninja explain: tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/ChromeClassTester.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsAction.cpp.o' are missing
+ninja explain: tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsAction.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsConsumer.cpp.o' are missing
+ninja explain: tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsConsumer.cpp.o is dirty
+ninja explain: lib/libFindBadConstructs.so is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPlugin.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPlugin.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPluginConsumer.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPluginConsumer.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckDispatchVisitor.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckDispatchVisitor.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFieldsVisitor.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFieldsVisitor.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFinalizerVisitor.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFinalizerVisitor.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckGCRootsVisitor.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckGCRootsVisitor.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckTraceVisitor.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckTraceVisitor.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CollectVisitor.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CollectVisitor.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Config.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Config.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Edge.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Edge.cpp.o is dirty
+ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/RecordInfo.cpp.o' are missing
+ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/RecordInfo.cpp.o is dirty
+ninja explain: lib/libBlinkGCPlugin.so is dirty
+ninja explain: deps for 'tools/verify-uselistorder/CMakeFiles/verify-uselistorder.dir/verify-uselistorder.cpp.o' are missing
+ninja explain: tools/verify-uselistorder/CMakeFiles/verify-uselistorder.dir/verify-uselistorder.cpp.o is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/verify-uselistorder is dirty
+ninja explain: deps for 'tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o' are missing
+ninja explain: output tools/bugpoint-passes/BugpointPasses.exports doesn't exist
+ninja explain: tools/bugpoint-passes/BugpointPasses.exports is dirty
+ninja explain: tools/bugpoint-passes/CMakeFiles/BugpointPasses_exports is dirty
+ninja explain: tools/bugpoint-passes/BugpointPasses.exports is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o is dirty
+ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o' are missing
+ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMCodeGen.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMipo.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMInstCombine.a is dirty
+ninja explain: lib/libLLVMInstrumentation.a is dirty
+ninja explain: lib/libLLVMLinker.a is dirty
+ninja explain: lib/libLLVMObjCARCOpts.a is dirty
+ninja explain: lib/libLLVMScalarOpts.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMVectorize.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMInstCombine.a is dirty
+ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o is dirty
+ninja explain: lib/BugpointPasses.so is dirty
+ninja explain: deps for 'tools/llvm-split/CMakeFiles/llvm-split.dir/llvm-split.cpp.o' are missing
+ninja explain: tools/llvm-split/CMakeFiles/llvm-split.dir/llvm-split.cpp.o is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-split is dirty
 ninja explain: deps for 'tools/llc/CMakeFiles/llc.dir/llc.cpp.o' are missing
 ninja explain: tools/llc/CMakeFiles/llc.dir/llc.cpp.o is dirty
 ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
@@ -13026,6 +48724,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -13074,6 +48774,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
@@ -13118,21 +48823,23 @@
 ninja explain: lib/libLLVMSystemZInfo.a is dirty
 ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
 ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
 ninja explain: lib/libLLVMScalarOpts.a is dirty
 ninja explain: lib/libLLVMInstCombine.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
 ninja explain: lib/libLLVMTransformUtils.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
@@ -13140,8 +48847,8 @@
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llc is dirty
-ninja explain: deps for 'tools/llvm-rtdyld/CMakeFiles/llvm-rtdyld.dir/llvm-rtdyld.cpp.o' are missing
-ninja explain: tools/llvm-rtdyld/CMakeFiles/llvm-rtdyld.dir/llvm-rtdyld.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-lto/CMakeFiles/llvm-lto.dir/llvm-lto.cpp.o' are missing
+ninja explain: tools/llvm-lto/CMakeFiles/llvm-lto.dir/llvm-lto.cpp.o is dirty
 ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
 ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
 ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
@@ -13164,6 +48871,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -13212,22 +48921,24 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMExecutionEngine.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMLTO.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMRuntimeDyld.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMGlobalISel.a is dirty
 ninja explain: lib/libLLVMAArch64Desc.a is dirty
 ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
 ninja explain: lib/libLLVMAArch64Info.a is dirty
 ninja explain: lib/libLLVMAArch64Utils.a is dirty
-ninja explain: lib/libLLVMipo.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMLinker.a is dirty
-ninja explain: lib/libLLVMVectorize.a is dirty
 ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
 ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
@@ -13253,244 +48964,35 @@
 ninja explain: lib/libLLVMX86Utils.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
-ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMScalarOpts.a is dirty
-ninja explain: lib/libLLVMInstCombine.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMInstrumentation.a is dirty
-ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCodeGen.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMTarget.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-rtdyld is dirty
-ninja explain: deps for 'tools/llvm-dwp/CMakeFiles/llvm-dwp.dir/llvm-dwp.cpp.o' are missing
-ninja explain: tools/llvm-dwp/CMakeFiles/llvm-dwp.dir/llvm-dwp.cpp.o is dirty
-ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
-ninja explain: lib/libLLVMAMDGPUCodeGen.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
-ninja explain: lib/libLLVMARMCodeGen.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMAsmParser.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMARMDisassembler.a is dirty
-ninja explain: lib/libLLVMBPFCodeGen.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMBPFDesc.a is dirty
-ninja explain: lib/libLLVMBPFInfo.a is dirty
-ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
-ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
-ninja explain: lib/libLLVMMipsCodeGen.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsAsmParser.a is dirty
-ninja explain: lib/libLLVMMipsDesc.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMipsDisassembler.a is dirty
-ninja explain: lib/libLLVMMSP430CodeGen.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMMSP430Desc.a is dirty
-ninja explain: lib/libLLVMMSP430Info.a is dirty
-ninja explain: lib/libLLVMNVPTXCodeGen.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXDesc.a is dirty
-ninja explain: lib/libLLVMNVPTXInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCCodeGen.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmParser.a is dirty
-ninja explain: lib/libLLVMPowerPCDesc.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
-ninja explain: lib/libLLVMSparcCodeGen.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcAsmParser.a is dirty
-ninja explain: lib/libLLVMSparcDesc.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSparcDisassembler.a is dirty
-ninja explain: lib/libLLVMSystemZCodeGen.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZAsmParser.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
-ninja explain: lib/libLLVMX86CodeGen.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86AsmParser.a is dirty
-ninja explain: lib/libLLVMX86Desc.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMX86Disassembler.a is dirty
-ninja explain: lib/libLLVMXCoreCodeGen.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMXCoreDesc.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
-ninja explain: lib/libLLVMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
-ninja explain: lib/libLLVMGlobalISel.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAArch64Utils.a is dirty
 ninja explain: lib/libLLVMipo.a is dirty
 ninja explain: lib/libLLVMIRReader.a is dirty
 ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMLinker.a is dirty
-ninja explain: lib/libLLVMVectorize.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMSelectionDAG.a is dirty
-ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMScalarOpts.a is dirty
-ninja explain: lib/libLLVMInstCombine.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMVectorize.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-dwp is dirty
-ninja explain: deps for 'tools/llvm-link/CMakeFiles/llvm-link.dir/llvm-link.cpp.o' are missing
-ninja explain: tools/llvm-link/CMakeFiles/llvm-link.dir/llvm-link.cpp.o is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMInstCombine.a is dirty
 ninja explain: lib/libLLVMLinker.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMObjCARCOpts.a is dirty
 ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-link is dirty
-ninja explain: deps for 'tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/ChromeClassTester.cpp.o' are missing
-ninja explain: tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/ChromeClassTester.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsAction.cpp.o' are missing
-ninja explain: tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsAction.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsConsumer.cpp.o' are missing
-ninja explain: tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsConsumer.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/CheckIPCVisitor.cpp.o' are missing
-ninja explain: tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/CheckIPCVisitor.cpp.o is dirty
-ninja explain: lib/libFindBadConstructs.so is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPlugin.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPlugin.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPluginConsumer.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPluginConsumer.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckDispatchVisitor.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckDispatchVisitor.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFieldsVisitor.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFieldsVisitor.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFinalizerVisitor.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFinalizerVisitor.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckGCRootsVisitor.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckGCRootsVisitor.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckTraceVisitor.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckTraceVisitor.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CollectVisitor.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CollectVisitor.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Config.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Config.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/DiagnosticsReporter.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/DiagnosticsReporter.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Edge.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Edge.cpp.o is dirty
-ninja explain: deps for 'tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/RecordInfo.cpp.o' are missing
-ninja explain: tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/RecordInfo.cpp.o is dirty
-ninja explain: lib/libBlinkGCPlugin.so is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/llvm-pdbdump.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/llvm-pdbdump.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/BuiltinDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/BuiltinDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ClassDefinitionDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ClassDefinitionDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/CompilandDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/CompilandDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/EnumDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/EnumDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ExternalSymbolDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ExternalSymbolDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/FunctionDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/FunctionDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/LinePrinter.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/LinePrinter.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypeDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypeDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypedefDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypedefDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/VariableDumper.cpp.o' are missing
-ninja explain: tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/VariableDumper.cpp.o is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-pdbdump is dirty
+ninja explain: bin/llvm-lto is dirty
 ninja explain: deps for 'tools/lli/CMakeFiles/lli.dir/lli.cpp.o' are missing
 ninja explain: tools/lli/CMakeFiles/lli.dir/lli.cpp.o is dirty
 ninja explain: deps for 'tools/lli/CMakeFiles/lli.dir/OrcLazyJIT.cpp.o' are missing
@@ -13559,8 +49061,237 @@
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/lli-child-target is dirty
-ninja explain: deps for 'tools/llvm-lto/CMakeFiles/llvm-lto.dir/llvm-lto.cpp.o' are missing
-ninja explain: tools/llvm-lto/CMakeFiles/llvm-lto.dir/llvm-lto.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-symbolizer/CMakeFiles/llvm-symbolizer.dir/llvm-symbolizer.cpp.o' are missing
+ninja explain: tools/llvm-symbolizer/CMakeFiles/llvm-symbolizer.dir/llvm-symbolizer.cpp.o is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMSymbolize.a is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-symbolizer is dirty
+ninja explain: deps for 'tools/llvm-mcmarkup/CMakeFiles/llvm-mcmarkup.dir/llvm-mcmarkup.cpp.o' are missing
+ninja explain: tools/llvm-mcmarkup/CMakeFiles/llvm-mcmarkup.dir/llvm-mcmarkup.cpp.o is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-mcmarkup is dirty
+ninja explain: deps for 'tools/sancov/CMakeFiles/sancov.dir/sancov.cc.o' are missing
+ninja explain: tools/sancov/CMakeFiles/sancov.dir/sancov.cc.o is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMBPFDesc.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMMipsDesc.a is dirty
+ninja explain: lib/libLLVMMSP430Desc.a is dirty
+ninja explain: lib/libLLVMNVPTXDesc.a is dirty
+ninja explain: lib/libLLVMPowerPCDesc.a is dirty
+ninja explain: lib/libLLVMSparcDesc.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMX86Desc.a is dirty
+ninja explain: lib/libLLVMXCoreDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
+ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
+ninja explain: lib/libLLVMARMDisassembler.a is dirty
+ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
+ninja explain: lib/libLLVMMipsDisassembler.a is dirty
+ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
+ninja explain: lib/libLLVMSparcDisassembler.a is dirty
+ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
+ninja explain: lib/libLLVMX86Disassembler.a is dirty
+ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMSP430Info.a is dirty
+ninja explain: lib/libLLVMNVPTXInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMSymbolize.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86Utils.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAArch64Utils.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/sancov is dirty
+ninja explain: deps for 'tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/llvm-objdump.cpp.o' are missing
+ninja explain: tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/llvm-objdump.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/COFFDump.cpp.o' are missing
+ninja explain: tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/COFFDump.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/ELFDump.cpp.o' are missing
+ninja explain: tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/ELFDump.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/MachODump.cpp.o' are missing
+ninja explain: tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/MachODump.cpp.o is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMBPFDesc.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMMipsDesc.a is dirty
+ninja explain: lib/libLLVMMSP430Desc.a is dirty
+ninja explain: lib/libLLVMNVPTXDesc.a is dirty
+ninja explain: lib/libLLVMPowerPCDesc.a is dirty
+ninja explain: lib/libLLVMSparcDesc.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMX86Desc.a is dirty
+ninja explain: lib/libLLVMXCoreDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
+ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
+ninja explain: lib/libLLVMARMDisassembler.a is dirty
+ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
+ninja explain: lib/libLLVMMipsDisassembler.a is dirty
+ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
+ninja explain: lib/libLLVMSparcDisassembler.a is dirty
+ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
+ninja explain: lib/libLLVMX86Disassembler.a is dirty
+ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMSP430Info.a is dirty
+ninja explain: lib/libLLVMNVPTXInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMCodeGen.a is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86Utils.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAArch64Utils.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMInstrumentation.a is dirty
+ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMScalarOpts.a is dirty
+ninja explain: lib/libLLVMInstCombine.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-objdump is dirty
+ninja explain: deps for 'tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o' are missing
+ninja explain: tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o' are missing
+ninja explain: tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o is dirty
 ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
 ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
 ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
@@ -13583,6 +49314,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -13631,141 +49364,23 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
-ninja explain: lib/libLLVMLTO.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMGlobalISel.a is dirty
 ninja explain: lib/libLLVMAArch64Desc.a is dirty
 ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
 ninja explain: lib/libLLVMAArch64Info.a is dirty
 ninja explain: lib/libLLVMAArch64Utils.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMSelectionDAG.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
 ninja explain: lib/libLLVMipo.a is dirty
 ninja explain: lib/libLLVMIRReader.a is dirty
 ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMScalarOpts.a is dirty
-ninja explain: lib/libLLVMInstrumentation.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMVectorize.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMInstCombine.a is dirty
 ninja explain: lib/libLLVMLinker.a is dirty
-ninja explain: lib/libLLVMObjCARCOpts.a is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-lto is dirty
-ninja explain: deps for 'tools/sancov/CMakeFiles/sancov.dir/sancov.cc.o' are missing
-ninja explain: tools/sancov/CMakeFiles/sancov.dir/sancov.cc.o is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMBPFDesc.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMMipsDesc.a is dirty
-ninja explain: lib/libLLVMMSP430Desc.a is dirty
-ninja explain: lib/libLLVMNVPTXDesc.a is dirty
-ninja explain: lib/libLLVMPowerPCDesc.a is dirty
-ninja explain: lib/libLLVMSparcDesc.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMX86Desc.a is dirty
-ninja explain: lib/libLLVMXCoreDesc.a is dirty
-ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
-ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
-ninja explain: lib/libLLVMARMDisassembler.a is dirty
-ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
-ninja explain: lib/libLLVMMipsDisassembler.a is dirty
-ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
-ninja explain: lib/libLLVMSparcDisassembler.a is dirty
-ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
-ninja explain: lib/libLLVMX86Disassembler.a is dirty
-ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMBPFInfo.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMSP430Info.a is dirty
-ninja explain: lib/libLLVMNVPTXInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMSymbolize.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86Utils.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAArch64Utils.a is dirty
+ninja explain: lib/libLLVMVectorize.a is dirty
 ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
 ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
@@ -13773,22 +49388,47 @@
 ninja explain: lib/libLLVMARMDesc.a is dirty
 ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
 ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
 ninja explain: lib/libLLVMSystemZDesc.a is dirty
 ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
 ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86Utils.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
+ninja explain: lib/libLLVMSelectionDAG.a is dirty
+ninja explain: lib/libLLVMCodeGen.a is dirty
+ninja explain: lib/libLLVMScalarOpts.a is dirty
+ninja explain: lib/libLLVMInstCombine.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMInstrumentation.a is dirty
+ninja explain: lib/libLLVMProfileData.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/sancov is dirty
+ninja explain: bin/llvm-cxxdump is dirty
 ninja explain: deps for 'tools/llvm-mc/CMakeFiles/llvm-mc.dir/llvm-mc.cpp.o' are missing
 ninja explain: tools/llvm-mc/CMakeFiles/llvm-mc.dir/llvm-mc.cpp.o is dirty
 ninja explain: deps for 'tools/llvm-mc/CMakeFiles/llvm-mc.dir/Disassembler.cpp.o' are missing
@@ -13805,6 +49445,7 @@
 ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
 ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
 ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
 ninja explain: lib/libLLVMARMAsmParser.a is dirty
@@ -13827,6 +49468,7 @@
 ninja explain: lib/libLLVMSystemZDesc.a is dirty
 ninja explain: lib/libLLVMX86Desc.a is dirty
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
 ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
 ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
 ninja explain: lib/libLLVMARMDisassembler.a is dirty
@@ -13837,10 +49479,12 @@
 ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
 ninja explain: lib/libLLVMX86Disassembler.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMAArch64Info.a is dirty
 ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
 ninja explain: lib/libLLVMARMInfo.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonInfo.a is dirty
 ninja explain: lib/libLLVMMipsInfo.a is dirty
 ninja explain: lib/libLLVMMSP430Info.a is dirty
@@ -13850,6 +49494,7 @@
 ninja explain: lib/libLLVMSystemZInfo.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
@@ -13865,6 +49510,7 @@
 ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
 ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAArch64Desc.a is dirty
 ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
 ninja explain: lib/libLLVMAArch64Info.a is dirty
@@ -13886,23 +49532,72 @@
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llvm-mc is dirty
-ninja explain: deps for 'tools/obj2yaml/CMakeFiles/obj2yaml.dir/obj2yaml.cpp.o' are missing
-ninja explain: tools/obj2yaml/CMakeFiles/obj2yaml.dir/obj2yaml.cpp.o is dirty
-ninja explain: deps for 'tools/obj2yaml/CMakeFiles/obj2yaml.dir/coff2yaml.cpp.o' are missing
-ninja explain: tools/obj2yaml/CMakeFiles/obj2yaml.dir/coff2yaml.cpp.o is dirty
-ninja explain: deps for 'tools/obj2yaml/CMakeFiles/obj2yaml.dir/elf2yaml.cpp.o' are missing
-ninja explain: tools/obj2yaml/CMakeFiles/obj2yaml.dir/elf2yaml.cpp.o is dirty
-ninja explain: deps for 'tools/obj2yaml/CMakeFiles/obj2yaml.dir/Error.cpp.o' are missing
-ninja explain: tools/obj2yaml/CMakeFiles/obj2yaml.dir/Error.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o' are missing
+ninja explain: tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o is dirty
+ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
+ninja explain: lib/libLLVMARMAsmParser.a is dirty
+ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
+ninja explain: lib/libLLVMMipsAsmParser.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmParser.a is dirty
+ninja explain: lib/libLLVMSparcAsmParser.a is dirty
+ninja explain: lib/libLLVMSystemZAsmParser.a is dirty
+ninja explain: lib/libLLVMX86AsmParser.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMBPFDesc.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMMipsDesc.a is dirty
+ninja explain: lib/libLLVMMSP430Desc.a is dirty
+ninja explain: lib/libLLVMNVPTXDesc.a is dirty
+ninja explain: lib/libLLVMPowerPCDesc.a is dirty
+ninja explain: lib/libLLVMSparcDesc.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMX86Desc.a is dirty
+ninja explain: lib/libLLVMXCoreDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMSP430Info.a is dirty
+ninja explain: lib/libLLVMNVPTXInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMObjectYAML.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Utils.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86Utils.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/obj2yaml is dirty
+ninja explain: bin/llvm-nm is dirty
 ninja explain: deps for 'tools/opt/CMakeFiles/opt.dir/AnalysisWrappers.cpp.o' are missing
 ninja explain: tools/opt/CMakeFiles/opt.dir/AnalysisWrappers.cpp.o is dirty
 ninja explain: deps for 'tools/opt/CMakeFiles/opt.dir/BreakpointPrinter.cpp.o' are missing
@@ -13939,6 +49634,8 @@
 ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBPFDesc.a is dirty
 ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
 ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
 ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
 ninja explain: lib/libLLVMHexagonDesc.a is dirty
@@ -13987,6 +49684,11 @@
 ninja explain: lib/libLLVMXCoreDesc.a is dirty
 ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
 ninja explain: lib/libLLVMAnalysis.a is dirty
 ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
@@ -14033,24 +49735,26 @@
 ninja explain: lib/libLLVMX86Utils.a is dirty
 ninja explain: lib/libLLVMX86Info.a is dirty
 ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
 ninja explain: lib/libLLVMAsmPrinter.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
 ninja explain: lib/libLLVMSelectionDAG.a is dirty
 ninja explain: lib/libLLVMCodeGen.a is dirty
 ninja explain: lib/libLLVMBitWriter.a is dirty
 ninja explain: lib/libLLVMTarget.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libLLVMipo.a is dirty
 ninja explain: lib/libLLVMIRReader.a is dirty
 ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMInstrumentation.a is dirty
+ninja explain: lib/libLLVMProfileData.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMLinker.a is dirty
-ninja explain: lib/libLLVMInstrumentation.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMProfileData.a is dirty
 ninja explain: lib/libLLVMScalarOpts.a is dirty
 ninja explain: lib/libLLVMInstCombine.a is dirty
 ninja explain: lib/libLLVMVectorize.a is dirty
@@ -14059,19 +49763,59 @@
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/opt is dirty
-ninja explain: deps for 'tools/llvm-split/CMakeFiles/llvm-split.dir/llvm-split.cpp.o' are missing
-ninja explain: tools/llvm-split/CMakeFiles/llvm-split.dir/llvm-split.cpp.o is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMAttributeParser.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMAttributeParser.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMWinEHPrinter.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMWinEHPrinter.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFDumper.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFImportDumper.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFImportDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Error.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Error.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/llvm-readobj.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/llvm-readobj.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/MachODumper.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/MachODumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ObjDumper.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ObjDumper.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/StreamWriter.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/StreamWriter.cpp.o is dirty
+ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Win64EHDumper.cpp.o' are missing
+ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Win64EHDumper.cpp.o is dirty
+ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-readobj is dirty
+ninja explain: deps for 'tools/llvm-dis/CMakeFiles/llvm-dis.dir/llvm-dis.cpp.o' are missing
+ninja explain: tools/llvm-dis/CMakeFiles/llvm-dis.dir/llvm-dis.cpp.o is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-split is dirty
+ninja explain: bin/llvm-dis is dirty
+ninja explain: deps for 'tools/llvm-link/CMakeFiles/llvm-link.dir/llvm-link.cpp.o' are missing
+ninja explain: tools/llvm-link/CMakeFiles/llvm-link.dir/llvm-link.cpp.o is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMLinker.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-link is dirty
 ninja explain: deps for 'tools/llvm-cov/CMakeFiles/llvm-cov.dir/llvm-cov.cpp.o' are missing
 ninja explain: tools/llvm-cov/CMakeFiles/llvm-cov.dir/llvm-cov.cpp.o is dirty
 ninja explain: deps for 'tools/llvm-cov/CMakeFiles/llvm-cov.dir/gcov.cpp.o' are missing
@@ -14091,192 +49835,52 @@
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMCoverage.a is dirty
 ninja explain: lib/libLLVMProfileData.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llvm-cov is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMAttributeParser.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMAttributeParser.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMWinEHPrinter.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMWinEHPrinter.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFDumper.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFImportDumper.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFImportDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Error.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Error.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/llvm-readobj.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/llvm-readobj.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/MachODumper.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/MachODumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ObjDumper.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ObjDumper.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Win64EHDumper.cpp.o' are missing
-ninja explain: tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Win64EHDumper.cpp.o is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
+ninja explain: deps for 'tools/obj2yaml/CMakeFiles/obj2yaml.dir/obj2yaml.cpp.o' are missing
+ninja explain: tools/obj2yaml/CMakeFiles/obj2yaml.dir/obj2yaml.cpp.o is dirty
+ninja explain: deps for 'tools/obj2yaml/CMakeFiles/obj2yaml.dir/coff2yaml.cpp.o' are missing
+ninja explain: tools/obj2yaml/CMakeFiles/obj2yaml.dir/coff2yaml.cpp.o is dirty
+ninja explain: deps for 'tools/obj2yaml/CMakeFiles/obj2yaml.dir/elf2yaml.cpp.o' are missing
+ninja explain: tools/obj2yaml/CMakeFiles/obj2yaml.dir/elf2yaml.cpp.o is dirty
+ninja explain: deps for 'tools/obj2yaml/CMakeFiles/obj2yaml.dir/Error.cpp.o' are missing
+ninja explain: tools/obj2yaml/CMakeFiles/obj2yaml.dir/Error.cpp.o is dirty
 ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMObjectYAML.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-readobj is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o is dirty
-ninja explain: deps for 'tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o' are missing
-ninja explain: tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMCodeGen.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMipo.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
-ninja explain: lib/libLLVMInstCombine.a is dirty
-ninja explain: lib/libLLVMInstrumentation.a is dirty
-ninja explain: lib/libLLVMLinker.a is dirty
-ninja explain: lib/libLLVMObjCARCOpts.a is dirty
-ninja explain: lib/libLLVMScalarOpts.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMTarget.a is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMVectorize.a is dirty
-ninja explain: lib/libLLVMBitWriter.a is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMInstCombine.a is dirty
-ninja explain: lib/libLLVMProfileData.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMTransformUtils.a is dirty
-ninja explain: lib/libLLVMAnalysis.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/bugpoint is dirty
-ninja explain: deps for 'tools/llvm-symbolizer/CMakeFiles/llvm-symbolizer.dir/llvm-symbolizer.cpp.o' are missing
-ninja explain: tools/llvm-symbolizer/CMakeFiles/llvm-symbolizer.dir/llvm-symbolizer.cpp.o is dirty
+ninja explain: bin/obj2yaml is dirty
+ninja explain: deps for 'tools/llvm-dwarfdump/CMakeFiles/llvm-dwarfdump.dir/llvm-dwarfdump.cpp.o' are missing
+ninja explain: tools/llvm-dwarfdump/CMakeFiles/llvm-dwarfdump.dir/llvm-dwarfdump.cpp.o is dirty
 ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMSymbolize.a is dirty
-ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
-ninja explain: lib/libLLVMDebugInfoPDB.a is dirty
-ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-symbolizer is dirty
-ninja explain: deps for 'tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o' are missing
-ninja explain: output tools/bugpoint-passes/BugpointPasses.exports doesn't exist
-ninja explain: tools/bugpoint-passes/BugpointPasses.exports is dirty
-ninja explain: tools/bugpoint-passes/CMakeFiles/BugpointPasses_exports is dirty
-ninja explain: tools/bugpoint-passes/BugpointPasses.exports is dirty
-ninja explain: tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o is dirty
-ninja explain: lib/BugpointPasses.so is dirty
-ninja explain: deps for 'tools/llvm-diff/CMakeFiles/llvm-diff.dir/llvm-diff.cpp.o' are missing
-ninja explain: tools/llvm-diff/CMakeFiles/llvm-diff.dir/llvm-diff.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffConsumer.cpp.o' are missing
-ninja explain: tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffConsumer.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffLog.cpp.o' are missing
-ninja explain: tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffLog.cpp.o is dirty
-ninja explain: deps for 'tools/llvm-diff/CMakeFiles/llvm-diff.dir/DifferenceEngine.cpp.o' are missing
-ninja explain: tools/llvm-diff/CMakeFiles/llvm-diff.dir/DifferenceEngine.cpp.o is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMIRReader.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMAsmParser.a is dirty
-ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
-ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-diff is dirty
-ninja explain: deps for 'tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o' are missing
-ninja explain: tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o is dirty
-ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
-ninja explain: lib/libLLVMARMAsmParser.a is dirty
-ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
-ninja explain: lib/libLLVMMipsAsmParser.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmParser.a is dirty
-ninja explain: lib/libLLVMSparcAsmParser.a is dirty
-ninja explain: lib/libLLVMSystemZAsmParser.a is dirty
-ninja explain: lib/libLLVMX86AsmParser.a is dirty
-ninja explain: lib/libLLVMAArch64Desc.a is dirty
-ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
-ninja explain: lib/libLLVMARMDesc.a is dirty
-ninja explain: lib/libLLVMBPFDesc.a is dirty
-ninja explain: lib/libLLVMHexagonDesc.a is dirty
-ninja explain: lib/libLLVMMipsDesc.a is dirty
-ninja explain: lib/libLLVMMSP430Desc.a is dirty
-ninja explain: lib/libLLVMNVPTXDesc.a is dirty
-ninja explain: lib/libLLVMPowerPCDesc.a is dirty
-ninja explain: lib/libLLVMSparcDesc.a is dirty
-ninja explain: lib/libLLVMSystemZDesc.a is dirty
-ninja explain: lib/libLLVMX86Desc.a is dirty
-ninja explain: lib/libLLVMXCoreDesc.a is dirty
-ninja explain: lib/libLLVMAArch64Info.a is dirty
-ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
-ninja explain: lib/libLLVMARMInfo.a is dirty
-ninja explain: lib/libLLVMBPFInfo.a is dirty
-ninja explain: lib/libLLVMHexagonInfo.a is dirty
-ninja explain: lib/libLLVMMipsInfo.a is dirty
-ninja explain: lib/libLLVMMSP430Info.a is dirty
-ninja explain: lib/libLLVMNVPTXInfo.a is dirty
-ninja explain: lib/libLLVMPowerPCInfo.a is dirty
-ninja explain: lib/libLLVMSparcInfo.a is dirty
-ninja explain: lib/libLLVMSystemZInfo.a is dirty
-ninja explain: lib/libLLVMX86Info.a is dirty
-ninja explain: lib/libLLVMXCoreInfo.a is dirty
-ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: bin/llvm-dwarfdump is dirty
+ninja explain: deps for 'tools/llvm-size/CMakeFiles/llvm-size.dir/llvm-size.cpp.o' are missing
+ninja explain: tools/llvm-size/CMakeFiles/llvm-size.dir/llvm-size.cpp.o is dirty
 ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
-ninja explain: lib/libLLVMAArch64Utils.a is dirty
-ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
-ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
-ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
-ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
-ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
-ninja explain: lib/libLLVMMCDisassembler.a is dirty
-ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
-ninja explain: lib/libLLVMX86Utils.a is dirty
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
-ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
-ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
-ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
-ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
-ninja explain: bin/llvm-nm is dirty
+ninja explain: bin/llvm-size is dirty
 ninja explain: deps for 'tools/llvm-extract/CMakeFiles/llvm-extract.dir/llvm-extract.cpp.o' are missing
 ninja explain: tools/llvm-extract/CMakeFiles/llvm-extract.dir/llvm-extract.cpp.o is dirty
 ninja explain: lib/libLLVMBitWriter.a is dirty
@@ -14287,11 +49891,11 @@
 ninja explain: lib/libLLVMAsmParser.a is dirty
 ninja explain: lib/libLLVMInstrumentation.a is dirty
 ninja explain: lib/libLLVMLinker.a is dirty
+ninja explain: lib/libLLVMProfileData.a is dirty
 ninja explain: lib/libLLVMObject.a is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
 ninja explain: lib/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMMC.a is dirty
-ninja explain: lib/libLLVMProfileData.a is dirty
 ninja explain: lib/libLLVMScalarOpts.a is dirty
 ninja explain: lib/libLLVMInstCombine.a is dirty
 ninja explain: lib/libLLVMVectorize.a is dirty
@@ -14300,6 +49904,311 @@
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llvm-extract is dirty
+ninja explain: deps for 'tools/llvm-as/CMakeFiles/llvm-as.dir/llvm-as.cpp.o' are missing
+ninja explain: tools/llvm-as/CMakeFiles/llvm-as.dir/llvm-as.cpp.o is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-as is dirty
+ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/dsymutil.cpp.o' are missing
+ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/dsymutil.cpp.o is dirty
+ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/BinaryHolder.cpp.o' are missing
+ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/BinaryHolder.cpp.o is dirty
+ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DebugMap.cpp.o' are missing
+ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DebugMap.cpp.o is dirty
+ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DwarfLinker.cpp.o' are missing
+ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DwarfLinker.cpp.o is dirty
+ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachODebugMapParser.cpp.o' are missing
+ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachODebugMapParser.cpp.o is dirty
+ninja explain: deps for 'tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachOUtils.cpp.o' are missing
+ninja explain: tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachOUtils.cpp.o is dirty
+ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
+ninja explain: lib/libLLVMAMDGPUCodeGen.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
+ninja explain: lib/libLLVMARMCodeGen.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMAsmParser.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMARMDisassembler.a is dirty
+ninja explain: lib/libLLVMBPFCodeGen.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMBPFDesc.a is dirty
+ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
+ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
+ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
+ninja explain: lib/libLLVMMipsCodeGen.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsAsmParser.a is dirty
+ninja explain: lib/libLLVMMipsDesc.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMipsDisassembler.a is dirty
+ninja explain: lib/libLLVMMSP430CodeGen.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMMSP430Desc.a is dirty
+ninja explain: lib/libLLVMMSP430Info.a is dirty
+ninja explain: lib/libLLVMNVPTXCodeGen.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXDesc.a is dirty
+ninja explain: lib/libLLVMNVPTXInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCCodeGen.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmParser.a is dirty
+ninja explain: lib/libLLVMPowerPCDesc.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
+ninja explain: lib/libLLVMSparcCodeGen.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcAsmParser.a is dirty
+ninja explain: lib/libLLVMSparcDesc.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSparcDisassembler.a is dirty
+ninja explain: lib/libLLVMSystemZCodeGen.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZAsmParser.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
+ninja explain: lib/libLLVMX86CodeGen.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86AsmParser.a is dirty
+ninja explain: lib/libLLVMX86Desc.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMX86Disassembler.a is dirty
+ninja explain: lib/libLLVMXCoreCodeGen.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreDesc.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
+ninja explain: lib/libLLVMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMGlobalISel.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAArch64Utils.a is dirty
+ninja explain: lib/libLLVMipo.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMLinker.a is dirty
+ninja explain: lib/libLLVMVectorize.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86Utils.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
+ninja explain: lib/libLLVMSelectionDAG.a is dirty
+ninja explain: lib/libLLVMCodeGen.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMScalarOpts.a is dirty
+ninja explain: lib/libLLVMInstCombine.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMInstrumentation.a is dirty
+ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-dsymutil is dirty
+ninja explain: deps for 'tools/llvm-rtdyld/CMakeFiles/llvm-rtdyld.dir/llvm-rtdyld.cpp.o' are missing
+ninja explain: tools/llvm-rtdyld/CMakeFiles/llvm-rtdyld.dir/llvm-rtdyld.cpp.o is dirty
+ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
+ninja explain: lib/libLLVMAMDGPUCodeGen.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
+ninja explain: lib/libLLVMARMCodeGen.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMAsmParser.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMARMDisassembler.a is dirty
+ninja explain: lib/libLLVMBPFCodeGen.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMBPFDesc.a is dirty
+ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
+ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
+ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
+ninja explain: lib/libLLVMMipsCodeGen.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsAsmParser.a is dirty
+ninja explain: lib/libLLVMMipsDesc.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMipsDisassembler.a is dirty
+ninja explain: lib/libLLVMMSP430CodeGen.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMMSP430Desc.a is dirty
+ninja explain: lib/libLLVMMSP430Info.a is dirty
+ninja explain: lib/libLLVMNVPTXCodeGen.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXDesc.a is dirty
+ninja explain: lib/libLLVMNVPTXInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCCodeGen.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmParser.a is dirty
+ninja explain: lib/libLLVMPowerPCDesc.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
+ninja explain: lib/libLLVMSparcCodeGen.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcAsmParser.a is dirty
+ninja explain: lib/libLLVMSparcDesc.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSparcDisassembler.a is dirty
+ninja explain: lib/libLLVMSystemZCodeGen.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZAsmParser.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
+ninja explain: lib/libLLVMX86CodeGen.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86AsmParser.a is dirty
+ninja explain: lib/libLLVMX86Desc.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMX86Disassembler.a is dirty
+ninja explain: lib/libLLVMXCoreCodeGen.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreDesc.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMExecutionEngine.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMRuntimeDyld.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMGlobalISel.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAArch64Utils.a is dirty
+ninja explain: lib/libLLVMipo.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMLinker.a is dirty
+ninja explain: lib/libLLVMVectorize.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86Utils.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
+ninja explain: lib/libLLVMSelectionDAG.a is dirty
+ninja explain: lib/libLLVMCodeGen.a is dirty
+ninja explain: lib/libLLVMScalarOpts.a is dirty
+ninja explain: lib/libLLVMInstCombine.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMInstrumentation.a is dirty
+ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-rtdyld is dirty
 ninja explain: deps for 'tools/llvm-bcanalyzer/CMakeFiles/llvm-bcanalyzer.dir/llvm-bcanalyzer.cpp.o' are missing
 ninja explain: tools/llvm-bcanalyzer/CMakeFiles/llvm-bcanalyzer.dir/llvm-bcanalyzer.cpp.o is dirty
 ninja explain: lib/libLLVMBitReader.a is dirty
@@ -14307,2627 +50216,2787 @@
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llvm-bcanalyzer is dirty
-[1/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
-[2/2609] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.c.o
-[3/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntrusiveRefCntPtr.cpp.o
-[4/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
-[5/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
-[6/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
-[7/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
-[8/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
-[9/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
-[10/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
-[11/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
-[12/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
-[13/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
-[14/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
-[15/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
-[16/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
-[17/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
-[18/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
-[19/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
-[20/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
-[21/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
-[22/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryObject.cpp.o
-[23/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
-[24/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
-[25/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
-[26/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
-[27/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataStream.cpp.o
-[28/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
-[29/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
-[30/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
-[31/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
-[32/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
-[33/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Dwarf.cpp.o
-[34/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
-[35/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
-[36/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StreamingMemoryObject.cpp.o
-[37/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CachePruning.cpp.o
-[38/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
-[39/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
-[40/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
-[41/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SHA1.cpp.o
-[42/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
-[43/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
-[44/2609] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
-[45/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
-[46/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
-[47/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
-[48/2609] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
-[49/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
-[50/2609] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
-[51/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
-[52/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
-[53/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
-[54/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScopedPrinter.cpp.o
-[55/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
-[56/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
-[57/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
-[58/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SearchForAddressOfSpecialSymbol.cpp.o
-[59/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
-[60/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
-[61/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
-[62/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
-[63/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
-[64/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
-[65/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
-[66/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
-[67/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
-[68/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
-[69/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
-[70/2609] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
-[71/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
-[72/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
-[73/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
-[74/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
-[75/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
-[76/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
-[77/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
-[78/2609] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
-[79/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
-[80/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
-[81/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
-[82/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TimeValue.cpp.o
-[83/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
-[84/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
-[85/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
-[86/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
-[87/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
-[88/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
-[89/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
-[90/2609] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
-[91/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
-[92/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
-[93/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
-[94/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
-[95/2609] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
-[96/2609] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
-[97/2609] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
-[98/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
-[99/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
-[100/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
-[101/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
-[102/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
-[103/2609] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
-[104/2609] Linking CXX static library lib/libLLVMSupport.a
-[105/2609] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
-[106/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
-[107/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
-[108/2609] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
-[109/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
-[110/2609] Creating export file for LLVMHello
-[111/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
-[112/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
-[113/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
-[114/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
-[115/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
-[116/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
-[117/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
-[118/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
-[119/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
-[120/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeEmitter.cpp.o
-[121/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeGenInfo.cpp.o
-[122/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
-[123/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
-[124/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
-[125/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmLexer.cpp.o
-[126/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
-[127/2609] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
-[128/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/COFFAsmParser.cpp.o
-[129/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoCOFF.cpp.o
-[130/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmBackend.cpp.o
-[131/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoDarwin.cpp.o
-[132/2609] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
-[133/2609] Linking CXX static library lib/libLLVMTableGen.a
-[134/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
-[135/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
-[136/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
-[137/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
-[138/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfo.cpp.o
-[139/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoELF.cpp.o
-[140/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
-[141/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/DarwinAsmParser.cpp.o
-[142/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFObjectTargetWriter.cpp.o
-[143/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSchedule.cpp.o
-[144/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ConstantPools.cpp.o
-[145/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
-[146/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAssembler.cpp.o
-[147/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLabel.cpp.o
-[148/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrAnalysis.cpp.o
-[149/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInst.cpp.o
-[150/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrDesc.cpp.o
-[151/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstPrinter.cpp.o
-[152/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeView.cpp.o
-[153/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachObjectTargetWriter.cpp.o
-[154/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLinkerOptimizationHint.cpp.o
-[155/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFStreamer.cpp.o
-[156/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
-[157/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmStreamer.cpp.o
-[158/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
-[159/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCExpr.cpp.o
-[160/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCRegisterInfo.cpp.o
-[161/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCNullStreamer.cpp.o
-[162/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCFragment.cpp.o
-[163/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectWriter.cpp.o
-[164/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCDwarf.cpp.o
-[165/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ELFObjectWriter.cpp.o
-[166/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCTargetOptions.cpp.o
-[167/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSubtargetInfo.cpp.o
-[168/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectFileInfo.cpp.o
-[169/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCContext.cpp.o
-[170/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachOStreamer.cpp.o
-[171/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
-[172/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectStreamer.cpp.o
-[173/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionELF.cpp.o
-[174/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbolELF.cpp.o
-[175/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSection.cpp.o
-[176/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCValue.cpp.o
-[177/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionCOFF.cpp.o
-[178/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
-[179/2609] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCSymbolizer.cpp.o
-[180/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbol.cpp.o
-[181/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionMachO.cpp.o
-[182/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/SubtargetFeature.cpp.o
-[183/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParserExtension.cpp.o
-[184/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmLexer.cpp.o
-[185/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWinEH.cpp.o
-[186/2609] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCDisassembler.cpp.o
-[187/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParser.cpp.o
-[188/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
-[189/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWin64EH.cpp.o
-[190/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/StringTableBuilder.cpp.o
-[191/2609] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCRelocationInfo.cpp.o
-[192/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCTargetAsmParser.cpp.o
-[193/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/FieldListRecordBuilder.cpp.o
-[194/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCStreamer.cpp.o
-[195/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFStreamer.cpp.o
-[196/2609] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Arg.cpp.o
-[197/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/ListRecordBuilder.cpp.o
-[198/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/Line.cpp.o
-[199/2609] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/YAML.cpp.o
-[200/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
-[201/2609] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Option.cpp.o
-[202/2609] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCExternalSymbolizer.cpp.o
-[203/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MethodListRecordBuilder.cpp.o
-[204/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MemoryTypeTableBuilder.cpp.o
-[205/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeRecordBuilder.cpp.o
-[206/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAbbreviationDeclaration.cpp.o
-[207/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
-[208/2609] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
-[209/2609] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/ArgList.cpp.o
-[210/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/ELFAsmParser.cpp.o
-[211/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeTableBuilder.cpp.o
-[212/2609] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/Disassembler.cpp.o
-[213/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MachObjectWriter.cpp.o
-[214/2609] Linking CXX executable bin/llvm-tblgen
-[215/2609] Building Attributes.inc...
-[216/2609] Linking CXX static library lib/libLLVMMCDisassembler.a
-[217/2609] Updating Attributes.inc...
-[218/2609] Building AttributesCompatFunc.inc...
-[219/2609] Updating AttributesCompatFunc.inc...
-[220/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAcceleratorTable.cpp.o
-[221/2609] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/OptTable.cpp.o
-[222/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeStream.cpp.o
-[223/2609] Linking CXX static library lib/libLLVMOption.a
-[224/2609] Building Intrinsics.gen...
-[225/2609] Updating Intrinsics.gen...
-[226/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugAbbrev.cpp.o
-[227/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugArangeSet.cpp.o
-[228/2609] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/COFFYAML.cpp.o
-[229/2609] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFObjectWriter.cpp.o
-[230/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugMacro.cpp.o
-[231/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFCompileUnit.cpp.o
-[232/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugRangeList.cpp.o
-[233/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/IPDBSourceFile.cpp.o
-[234/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBInterfaceAnchors.cpp.o
-[235/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/SyntaxHighlighting.cpp.o
-[236/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFUnitIndex.cpp.o
-[237/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/GenericError.cpp.o
-[238/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugLoc.cpp.o
-[239/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolAnnotation.cpp.o
-[240/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDB.cpp.o
-[241/2609] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/ELFYAML.cpp.o
-[242/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolBlock.cpp.o
-[243/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugFrame.cpp.o
-[244/2609] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
-[245/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbol.cpp.o
-[246/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandDetails.cpp.o
-[247/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandEnv.cpp.o
-[248/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBExtras.cpp.o
-[249/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompiland.cpp.o
-[250/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFTypeUnit.cpp.o
-[251/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GVMaterializer.cpp.o
-[252/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Comdat.cpp.o
-[253/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFFormValue.cpp.o
-[254/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugAranges.cpp.o
-[255/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBContext.cpp.o
-[256/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugInfoEntry.cpp.o
-[257/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugLine.cpp.o
-[258/2609] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeDumper.cpp.o
-[259/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFUnit.cpp.o
-[260/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/BasicBlock.cpp.o
-[261/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticPrinter.cpp.o
-[262/2609] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFContext.cpp.o
-[263/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRPrintingPasses.cpp.o
-[264/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DataLayout.cpp.o
-[265/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Globals.cpp.o
-[266/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FaultMaps.cpp.o
-[267/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/MDBuilder.cpp.o
-[268/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantRange.cpp.o
-[269/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IntrinsicInst.cpp.o
-[270/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugLoc.cpp.o
-[271/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRBuilder.cpp.o
-[272/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Use.cpp.o
-[273/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticInfo.cpp.o
-[274/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GCOV.cpp.o
-[275/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Mangler.cpp.o
-[276/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfo.cpp.o
-[277/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantFold.cpp.o
-[278/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DIBuilder.cpp.o
-[279/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instruction.cpp.o
-[280/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Attributes.cpp.o
-[281/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContext.cpp.o
-[282/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AutoUpgrade.cpp.o
-[283/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/InlineAsm.cpp.o
-[284/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeFloatTypes.cpp.o
-[285/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ModuleSummaryIndex.cpp.o
-[286/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassRegistry.cpp.o
-[287/2609] Building AArch64GenAsmWriter.inc...
-[288/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Pass.cpp.o
-[289/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Operator.cpp.o
-[290/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Function.cpp.o
-[291/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Statepoint.cpp.o
-[292/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o
-[293/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/OptBisect.cpp.o
-[294/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueTypes.cpp.o
-[295/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueSymbolTable.cpp.o
-[296/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/User.cpp.o
-[297/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/TypeFinder.cpp.o
-[298/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Module.cpp.o
-[299/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGen.cpp.o
-[300/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LegacyPassManager.cpp.o
-[301/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeIntegerTypes.cpp.o
-[302/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassManager.cpp.o
-[303/2609] Building CXX object lib/IRReader/CMakeFiles/LLVMIRReader.dir/IRReader.cpp.o
-[304/2609] Linking CXX static library lib/libLLVMIRReader.a
-[305/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Core.cpp.o
-[306/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BuiltinGCs.cpp.o
-[307/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BasicTargetTransformInfo.cpp.o
-[308/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AllocationOrder.cpp.o
-[309/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instructions.cpp.o
-[310/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Type.cpp.o
-[311/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Constants.cpp.o
-[312/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Value.cpp.o
-[313/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfoMetadata.cpp.o
-[314/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandPostRAPseudos.cpp.o
-[315/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DeadMachineInstructionElim.cpp.o
-[316/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CallingConvLower.cpp.o
-[317/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CalcSpillWeights.cpp.o
-[318/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadataPrinter.cpp.o
-[319/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CriticalAntiDepBreaker.cpp.o
-[320/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DetectDeadLanes.cpp.o
-[321/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EdgeBundles.cpp.o
-[322/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCStrategy.cpp.o
-[323/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Analysis.cpp.o
-[324/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AtomicExpandPass.cpp.o
-[325/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DwarfEHPrepare.cpp.o
-[326/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContextImpl.cpp.o
-[327/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FuncletLayout.cpp.o
-[328/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/EfficiencySanitizer.cpp.o
-[329/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DFAPacketizer.cpp.o
-[330/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandISelPseudos.cpp.o
-[331/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterleavedAccessPass.cpp.o
-[332/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o
-[333/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadata.cpp.o
-[334/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AsmWriter.cpp.o
-[335/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EarlyIfConversion.cpp.o
-[336/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExecutionDepsFix.cpp.o
-[337/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BranchFolding.cpp.o
-[338/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCRootLowering.cpp.o
-[339/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterferenceCache.cpp.o
-[340/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LatencyPriorityQueue.cpp.o
-[341/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IntrinsicLowering.cpp.o
-[342/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ImplicitNullChecks.cpp.o
-[343/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LivePhysRegs.cpp.o
-[344/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GlobalMerge.cpp.o
-[345/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBranchProbabilityInfo.cpp.o
-[346/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LexicalScopes.cpp.o
-[347/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LowerEmuTLS.cpp.o
-[348/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveStackAnalysis.cpp.o
-[349/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRegMatrix.cpp.o
-[350/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeCalc.cpp.o
-[351/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LocalStackSlotAllocation.cpp.o
-[352/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeEdit.cpp.o
-[353/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalUnion.cpp.o
-[354/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCopyPropagation.cpp.o
-[355/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugValues.cpp.o
-[356/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveInterval.cpp.o
-[357/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalAnalysis.cpp.o
-[358/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveVariables.cpp.o
-[359/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfoImpls.cpp.o
-[360/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCombiner.cpp.o
-[361/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockFrequencyInfo.cpp.o
-[362/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePassRegistry.cpp.o
-[363/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPrinterPass.cpp.o
-[364/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionAnalysis.cpp.o
-[365/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LLVMTargetMachine.cpp.o
-[366/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominanceFrontier.cpp.o
-[367/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Metadata.cpp.o
-[368/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IfConversion.cpp.o
-[369/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstrBundle.cpp.o
-[370/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCSE.cpp.o
-[371/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPass.cpp.o
-[372/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBasicBlock.cpp.o
-[373/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominators.cpp.o
-[374/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InlineSpiller.cpp.o
-[375/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockPlacement.cpp.o
-[376/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegisterInfo.cpp.o
-[377/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugVariables.cpp.o
-[378/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIEliminationUtils.cpp.o
-[379/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePostDominators.cpp.o
-[380/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/VirtRegMap.cpp.o
-[381/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PatchableFunction.cpp.o
-[382/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfo.cpp.o
-[383/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ParallelCG.cpp.o
-[384/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrintingPass.cpp.o
-[385/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLoopInfo.cpp.o
-[386/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/OptimizePHIs.cpp.o
-[387/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSSAUpdater.cpp.o
-[388/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o
-[389/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunction.cpp.o
-[390/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRAHazardRecognizer.cpp.o
-[391/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PseudoSourceValue.cpp.o
-[392/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PreISelIntrinsicLowering.cpp.o
-[393/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Passes.cpp.o
-[394/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineTraceMetrics.cpp.o
-[395/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSink.cpp.o
-[396/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstr.cpp.o
-[397/2609] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Verifier.cpp.o
-[398/2609] Linking CXX static library lib/libLLVMCore.a
-[399/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScoreboardHazardRecognizer.cpp.o
-[400/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ProcessImplicitDefs.cpp.o
-[401/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegionInfo.cpp.o
-[402/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLICM.cpp.o
-[403/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBase.cpp.o
-[404/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIElimination.cpp.o
-[405/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PeepholeOptimizer.cpp.o
-[406/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRASchedulerList.cpp.o
-[407/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterClassInfo.cpp.o
-[408/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMapLivenessAnalysis.cpp.o
-[409/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBasic.cpp.o
-[410/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterScavenging.cpp.o
-[411/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SpillPlacement.cpp.o
-[412/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShadowStackGCLowering.cpp.o
-[413/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineVerifier.cpp.o
-[414/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGPrinter.cpp.o
-[415/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAG.cpp.o
-[416/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrinter.cpp.o
-[417/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterPressure.cpp.o
-[418/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SjLjEHPrepare.cpp.o
-[419/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SlotIndexes.cpp.o
-[420/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocFast.cpp.o
-[421/2609] Linking CXX static library lib/libLLVMMC.a
-[422/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineScheduler.cpp.o
-[423/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PrologEpilogInserter.cpp.o
-[424/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetFrameLoweringImpl.cpp.o
-[425/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplication.cpp.o
-[426/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShrinkWrap.cpp.o
-[427/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetOptionsImpl.cpp.o
-[428/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SafeStack.cpp.o
-[429/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackProtector.cpp.o
-[430/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMaps.cpp.o
-[431/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackSlotColoring.cpp.o
-[432/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetSchedule.cpp.o
-[433/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetRegisterInfo.cpp.o
-[434/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplicator.cpp.o
-[435/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterCoalescer.cpp.o
-[436/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringObjectFileImpl.cpp.o
-[437/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetInstrInfo.cpp.o
-[438/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGInstrs.cpp.o
-[439/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocGreedy.cpp.o
-[440/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocPBQP.cpp.o
-[441/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o
-[442/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/UnreachableBlockElim.cpp.o
-[443/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SplitKit.cpp.o
-[444/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGTargetInfo.cpp.o
-[445/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypesGeneric.cpp.o
-[446/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ResourcePriorityQueue.cpp.o
-[447/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGVLIW.cpp.o
-[448/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TwoAddressInstructionPass.cpp.o
-[449/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackColoring.cpp.o
-[450/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorOps.cpp.o
-[451/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypes.cpp.o
-[452/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/InstrEmitter.cpp.o
-[453/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGFast.cpp.o
-[454/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AddressPool.cpp.o
-[455/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGSDNodes.cpp.o
-[456/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ARMException.cpp.o
-[457/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGDumper.cpp.o
-[458/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGPrinter.cpp.o
-[459/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterInlineAsm.cpp.o
-[460/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FunctionLoweringInfo.cpp.o
-[461/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterDwarf.cpp.o
-[462/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FastISel.cpp.o
-[463/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGRRList.cpp.o
-[464/2609] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/WinEHPrepare.cpp.o
-[465/2609] Linking CXX static library lib/libLLVMCodeGen.a
-[466/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCFIException.cpp.o
-[467/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugHandlerBase.cpp.o
-[468/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugLocStream.cpp.o
-[469/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIEHash.cpp.o
-[470/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DbgValueHistoryCalculator.cpp.o
-[471/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorTypes.cpp.o
-[472/2609] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/GlobalISel.cpp.o
-[473/2609] Linking CXX static library lib/libLLVMGlobalISel.a
-[474/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfStringPool.cpp.o
-[475/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIE.cpp.o
-[476/2609] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MILexer.cpp.o
-[477/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/StatepointLowering.cpp.o
-[478/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfExpression.cpp.o
-[479/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ErlangGCPrinter.cpp.o
-[480/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfFile.cpp.o
-[481/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfAccelTable.cpp.o
-[482/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/OcamlGCPrinter.cpp.o
-[483/2609] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitReader.cpp.o
-[484/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ASanStackFrameLayout.cpp.o
-[485/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/EHStreamer.cpp.o
-[486/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCompileUnit.cpp.o
-[487/2609] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitWriter.cpp.o
-[488/2609] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitstreamReader.cpp.o
-[489/2609] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriterPass.cpp.o
-[490/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/WinException.cpp.o
-[491/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CmpInstAnalysis.cpp.o
-[492/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BuildLibCalls.cpp.o
-[493/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfUnit.cpp.o
-[494/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinter.cpp.o
-[495/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/AddDiscriminators.cpp.o
-[496/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CtorUtils.cpp.o
-[497/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BypassSlowDivision.cpp.o
-[498/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InstructionNamer.cpp.o
-[499/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BreakCriticalEdges.cpp.o
-[500/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/TargetLowering.cpp.o
-[501/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneModule.cpp.o
-[502/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/GlobalStatus.cpp.o
-[503/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FunctionImportUtils.cpp.o
-[504/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeDAG.cpp.o
-[505/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/DemoteRegToStack.cpp.o
-[506/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGISel.cpp.o
-[507/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BasicBlockUtils.cpp.o
-[508/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FlattenCFG.cpp.o
-[509/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Evaluator.cpp.o
-[510/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/CodeViewDebug.cpp.o
-[511/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/IntegerDivision.cpp.o
-[512/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneFunction.cpp.o
-[513/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerInvoke.cpp.o
-[514/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MetaRenamer.cpp.o
-[515/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Mem2Reg.cpp.o
-[516/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/NameAnonFunctions.cpp.o
-[517/2609] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIRParser.cpp.o
-[518/2609] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/ValueEnumerator.cpp.o
-[519/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CodeExtractor.cpp.o
-[520/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LCSSA.cpp.o
-[521/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ModuleUtils.cpp.o
-[522/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAG.cpp.o
-[523/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerSwitch.cpp.o
-[524/2609] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfDebug.cpp.o
-[525/2609] Linking CXX static library lib/libLLVMAsmPrinter.a
-[526/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SanitizerStats.cpp.o
-[527/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Utils.cpp.o
-[528/2609] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIParser.cpp.o
-[529/2609] Linking CXX static library lib/libLLVMMIRParser.a
-[530/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUtils.cpp.o
-[531/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyInstructions.cpp.o
-[532/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/UnifyFunctionExitNodes.cpp.o
-[533/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopSimplify.cpp.o
-[534/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopVersioning.cpp.o
-[535/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyIndVar.cpp.o
-[536/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnrollRuntime.cpp.o
-[537/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SSAUpdater.cpp.o
-[538/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SymbolRewriter.cpp.o
-[539/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/Instrumentation.cpp.o
-[540/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnroll.cpp.o
-[541/2609] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriter.cpp.o
-[542/2609] Linking CXX static library lib/libLLVMBitWriter.a
-[543/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/BoundsChecking.cpp.o
-[544/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SplitModule.cpp.o
-[545/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MemorySSA.cpp.o
-[546/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Local.cpp.o
-[547/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyLibCalls.cpp.o
-[548/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/PromoteMemoryToRegister.cpp.o
-[549/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/IndirectCallPromotion.cpp.o
-[550/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InlineFunction.cpp.o
-[551/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/InstrProfiling.cpp.o
-[552/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ValueMapper.cpp.o
-[553/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/ThreadSanitizer.cpp.o
-[554/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/SanitizerCoverage.cpp.o
-[555/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/GCOVProfiling.cpp.o
-[556/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantProp.cpp.o
-[557/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/BDCE.cpp.o
-[558/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAddSub.cpp.o
-[559/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ADCE.cpp.o
-[560/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/AlignmentFromAssumptions.cpp.o
-[561/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineShifts.cpp.o
-[562/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGBuilder.cpp.o
-[563/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombinePHI.cpp.o
-[564/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineLoadStoreAlloca.cpp.o
-[565/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSelect.cpp.o
-[566/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DCE.cpp.o
-[567/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineVectorOps.cpp.o
-[568/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineMulDivRem.cpp.o
-[569/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCasts.cpp.o
-[570/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/FlattenCFGPass.cpp.o
-[571/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/AddressSanitizer.cpp.o
-[572/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/CorrelatedValuePropagation.cpp.o
-[573/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantHoisting.cpp.o
-[574/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAndOrXor.cpp.o
-[575/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DeadStoreElimination.cpp.o
-[576/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/MemorySanitizer.cpp.o
-[577/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCalls.cpp.o
-[578/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/DataFlowSanitizer.cpp.o
-[579/2609] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/PGOInstrumentation.cpp.o
-[580/2609] Linking CXX static library lib/libLLVMInstrumentation.a
-[581/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSimplifyDemanded.cpp.o
-[582/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstructionCombining.cpp.o
-[583/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalar.cpp.o
-[584/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/EarlyCSE.cpp.o
-[585/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Float2Int.cpp.o
-[586/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoadCombine.cpp.o
-[587/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/InductiveRangeCheckElimination.cpp.o
-[588/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInstSimplify.cpp.o
-[589/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDeletion.cpp.o
-[590/2609] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyCFG.cpp.o
-[591/2609] Linking CXX static library lib/libLLVMTransformUtils.a
-[592/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDataPrefetch.cpp.o
-[593/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerExpectIntrinsic.cpp.o
-[594/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerAtomic.cpp.o
-[595/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopSimplifyCFG.cpp.o
-[596/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerGuardIntrinsic.cpp.o
-[597/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PartiallyInlineLibCalls.cpp.o
-[598/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LICM.cpp.o
-[599/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnrollPass.cpp.o
-[600/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInterchange.cpp.o
-[601/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MergedLoadStoreMotion.cpp.o
-[602/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reg2Mem.cpp.o
-[603/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDistribute.cpp.o
-[604/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopVersioningLICM.cpp.o
-[605/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/IndVarSimplify.cpp.o
-[606/2609] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCompares.cpp.o
-[607/2609] Linking CXX static library lib/libLLVMInstCombine.a
-[608/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopLoadElimination.cpp.o
-[609/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/JumpThreading.cpp.o
-[610/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRotation.cpp.o
-[611/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SpeculativeExecution.cpp.o
-[612/2609] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitcodeReader.cpp.o
-[613/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/NaryReassociate.cpp.o
-[614/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopIdiomRecognize.cpp.o
-[615/2609] Linking CXX static library lib/libLLVMBitReader.a
-[616/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PlaceSafepoints.cpp.o
-[617/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/BarrierNoopPass.cpp.o
-[618/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MemCpyOptimizer.cpp.o
-[619/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnswitch.cpp.o
-[620/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/GVN.cpp.o
-[621/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ConstantMerge.cpp.o
-[622/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRerollPass.cpp.o
-[623/2609] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/DAGCombiner.cpp.o
-[624/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/CrossDSOCFI.cpp.o
-[625/2609] Linking CXX static library lib/libLLVMSelectionDAG.a
-[626/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SimplifyCFGPass.cpp.o
-[627/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ForceFunctionAttrs.cpp.o
-[628/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ElimAvailExtern.cpp.o
-[629/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Sink.cpp.o
-[630/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPO.cpp.o
-[631/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ExtractGV.cpp.o
-[632/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalarizer.cpp.o
-[633/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPConstantPropagation.cpp.o
-[634/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InferFunctionAttrs.cpp.o
-[635/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StraightLineStrengthReduce.cpp.o
-[636/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineAlways.cpp.o
-[637/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalDCE.cpp.o
-[638/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SeparateConstOffsetFromGEP.cpp.o
-[639/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/TailRecursionElimination.cpp.o
-[640/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SCCP.cpp.o
-[641/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineSimple.cpp.o
-[642/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripDeadPrototypes.cpp.o
-[643/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reassociate.cpp.o
-[644/2609] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/Vectorize.cpp.o
-[645/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PassManagerBuilder.cpp.o
-[646/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Internalize.cpp.o
-[647/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LoopExtractor.cpp.o
-[648/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionImport.cpp.o
-[649/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/DeadArgumentElimination.cpp.o
-[650/2609] Building CXX object lib/Transforms/Hello/CMakeFiles/LLVMHello.dir/Hello.cpp.o
-[651/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ScalarReplAggregates.cpp.o
-[652/2609] Linking CXX shared module lib/LLVMHello.so
-[653/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PruneEH.cpp.o
-[654/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PartialInlining.cpp.o
-[655/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StructurizeCFG.cpp.o
-[656/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Inliner.cpp.o
-[657/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ArgumentPromotion.cpp.o
-[658/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARC.cpp.o
-[659/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionAttrs.cpp.o
-[660/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/RewriteStatepointsForGC.cpp.o
-[661/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripSymbols.cpp.o
-[662/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCExpand.cpp.o
-[663/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopStrengthReduce.cpp.o
-[664/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCAPElim.cpp.o
-[665/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Analysis.cpp.o
-[666/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ProvenanceAnalysisEvaluator.cpp.o
-[667/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ProvenanceAnalysis.cpp.o
-[668/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/DependencyAnalysis.cpp.o
-[669/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/PtrState.cpp.o
-[670/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCContract.cpp.o
-[671/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/WholeProgramDevirt.cpp.o
-[672/2609] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/LinkModules.cpp.o
-[673/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/MergeFunctions.cpp.o
-[674/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalOpt.cpp.o
-[675/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysisEvaluator.cpp.o
-[676/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFGPrinter.cpp.o
-[677/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFG.cpp.o
-[678/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasSetTracker.cpp.o
-[679/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LowerBitSets.cpp.o
-[680/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysis.cpp.o
-[681/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AssumptionCache.cpp.o
-[682/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CGSCCPassManager.cpp.o
-[683/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BranchProbabilityInfo.cpp.o
-[684/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BasicAliasAnalysis.cpp.o
-[685/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallPrinter.cpp.o
-[686/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CaptureTracking.cpp.o
-[687/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfoImpl.cpp.o
-[688/2609] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SROA.cpp.o
-[689/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CostModel.cpp.o
-[690/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CodeMetrics.cpp.o
-[691/2609] Linking CXX static library lib/libLLVMScalarOpts.a
-[692/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Delinearization.cpp.o
-[693/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraph.cpp.o
-[694/2609] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleProfile.cpp.o
-[695/2609] Linking CXX static library lib/libLLVMipo.a
-[696/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraphSCCPass.cpp.o
-[697/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfo.cpp.o
-[698/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Interval.cpp.o
-[699/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/EHPersonalities.cpp.o
-[700/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DivergenceAnalysis.cpp.o
-[701/2609] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCOpts.cpp.o
-[702/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ConstantFolding.cpp.o
-[703/2609] Linking CXX static library lib/libLLVMObjCARCOpts.a
-[704/2609] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/IRMover.cpp.o
-[705/2609] Linking CXX static library lib/libLLVMLinker.a
-[706/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IntervalPartition.cpp.o
-[707/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstCount.cpp.o
-[708/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DominanceFrontier.cpp.o
-[709/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DemandedBits.cpp.o
-[710/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFLAliasAnalysis.cpp.o
-[711/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IVUsers.cpp.o
-[712/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DomPrinter.cpp.o
-[713/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IteratedDominanceFrontier.cpp.o
-[714/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/OrderedBasicBlock.cpp.o
-[715/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DependenceAnalysis.cpp.o
-[716/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopUnrollAnalyzer.cpp.o
-[717/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPass.cpp.o
-[718/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDerefPrinter.cpp.o
-[719/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Loads.cpp.o
-[720/2609] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/BBVectorize.cpp.o
-[721/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDepPrinter.cpp.o
-[722/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleDebugInfoPrinter.cpp.o
-[723/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryLocation.cpp.o
-[724/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAliasAnalysis.cpp.o
-[725/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAnalysisUtils.cpp.o
-[726/2609] Generating LLVMLTORevision.h
--- Found Subversion: /usr/bin/svn (found version "1.8.8") 
-[727/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InlineCost.cpp.o
-[728/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/GlobalsModRef.cpp.o
-[729/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PtrUseVisitor.cpp.o
-[730/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPassManager.cpp.o
-[731/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCInstKind.cpp.o
-[732/2609] Building PPCGenSubtargetInfo.inc...
-[733/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Lint.cpp.o
-[734/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionAliasAnalysis.cpp.o
-[735/2609] Linking CXX static library lib/libLLVMMCParser.a
-[736/2609] Building PPCGenAsmWriter.inc...
-[737/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PostDominators.cpp.o
-[738/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PHITransAddr.cpp.o
-[739/2609] Building PPCGenRegisterInfo.inc...
-[740/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPass.cpp.o
-[741/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Trace.cpp.o
-[742/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryBuiltins.cpp.o
-[743/2609] Building PPCGenAsmMatcher.inc...
-[744/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleSummaryAnalysis.cpp.o
-[745/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/SparsePropagation.cpp.o
-[746/2609] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/SLPVectorizer.cpp.o
-[747/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TypeBasedAliasAnalysis.cpp.o
-[748/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyValueInfo.cpp.o
-[749/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstructionSimplify.cpp.o
-[750/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPrinter.cpp.o
-[751/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionNormalization.cpp.o
-[752/2609] Linking CXX static library lib/libLLVMObjectYAML.a
-[753/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScopedNoAliasAA.cpp.o
-[754/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyCallGraph.cpp.o
-[755/2609] Linking CXX static library lib/libLLVMDebugInfoCodeView.a
-[756/2609] Linking CXX static library lib/libLLVMDebugInfoDWARF.a
-[757/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELF.cpp.o
-[758/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetTransformInfo.cpp.o
-[759/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetLibraryInfo.cpp.o
-[760/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Error.cpp.o
-[761/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopInfo.cpp.o
-[762/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryDependenceAnalysis.cpp.o
-[763/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Binary.cpp.o
-[764/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Archive.cpp.o
-[765/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopAccessAnalysis.cpp.o
-[766/2609] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/UpdateCompilerUsed.cpp.o
-[767/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCustom.cpp.o
-[768/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolData.cpp.o
-[769/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/COFFObjectFile.cpp.o
-[770/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolExe.cpp.o
-[771/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFuncDebugEnd.cpp.o
-[772/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFuncDebugStart.cpp.o
-[773/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/VectorUtils.cpp.o
-[774/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolPublicSymbol.cpp.o
-[775/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolLabel.cpp.o
-[776/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Object.cpp.o
-[777/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ArchiveWriter.cpp.o
-[778/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionInfo.cpp.o
-[779/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOUniversal.cpp.o
-[780/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/RecordStreamer.cpp.o
-[781/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolThunk.cpp.o
-[782/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolicFile.cpp.o
-[783/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFunc.cpp.o
-[784/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ObjectFile.cpp.o
-[785/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymDumper.cpp.o
-[786/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeArray.cpp.o
-[787/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ModuleSummaryIndexObjectFile.cpp.o
-[788/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolSize.cpp.o
-[789/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeBaseClass.cpp.o
-[790/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeBuiltin.cpp.o
-[791/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeCustom.cpp.o
-[792/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeDimension.cpp.o
-[793/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFunctionArg.cpp.o
-[794/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeEnum.cpp.o
-[795/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypePointer.cpp.o
-[796/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeManaged.cpp.o
-[797/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFriend.cpp.o
-[798/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeVTableShape.cpp.o
-[799/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeTypedef.cpp.o
-[800/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeUDT.cpp.o
-[801/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeVTable.cpp.o
-[802/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUnknown.cpp.o
-[803/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/IRObjectFile.cpp.o
-[804/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFunctionSig.cpp.o
-[805/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUsingNamespace.cpp.o
-[806/2609] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOModule.cpp.o
-[807/2609] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/LoopVectorize.cpp.o
-[808/2609] Linking CXX static library lib/libLLVMVectorize.a
-[809/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELFObjectFile.cpp.o
-[810/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionExpander.cpp.o
-[811/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/ModInfo.cpp.o
-[812/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/ByteStream.cpp.o
-[813/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/MappedBlockStream.cpp.o
-[814/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/InfoStream.cpp.o
-[815/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/RawError.cpp.o
-[816/2609] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOCodeGenerator.cpp.o
-[817/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/NameHashTable.cpp.o
-[818/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/NameMap.cpp.o
-[819/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/StreamReader.cpp.o
-[820/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/DbiStream.cpp.o
-[821/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/TpiStream.cpp.o
-[822/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/PDBFile.cpp.o
-[823/2609] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOObjectFile.cpp.o
-[824/2609] Linking CXX static library lib/libLLVMObject.a
-[825/2609] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/ThinLTOCodeGenerator.cpp.o
-[826/2609] Linking CXX static library lib/libLLVMLTO.a
-[827/2609] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/Raw/RawSession.cpp.o
-[828/2609] Linking CXX static library lib/libLLVMDebugInfoPDB.a
-[829/2609] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/DIPrinter.cpp.o
-[830/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcError.cpp.o
-[831/2609] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/SectionMemoryManager.cpp.o
-[832/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/NullResolver.cpp.o
-[833/2609] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/GDBRegistrationListener.cpp.o
-[834/2609] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/TargetSelect.cpp.o
-[835/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/ExecutionUtils.cpp.o
-[836/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcRemoteTargetRPCAPI.cpp.o
-[837/2609] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/SymbolizableObjectFile.cpp.o
-[838/2609] Updating AArch64GenAsmWriter.inc...
-[839/2609] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RTDyldMemoryManager.cpp.o
-[840/2609] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/ExecutionEngineBindings.cpp.o
-[841/2609] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetIntrinsicInfo.cpp.o
-[842/2609] Building AArch64GenRegisterInfo.inc...
-[843/2609] Building AArch64GenMCCodeEmitter.inc...
-[844/2609] Updating AArch64GenRegisterInfo.inc...
-[845/2609] Updating AArch64GenMCCodeEmitter.inc...
-[846/2609] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/Interpreter.cpp.o
-[847/2609] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetRecip.cpp.o
-[848/2609] Building AArch64GenMCPseudoLowering.inc...
-[849/2609] Updating AArch64GenMCPseudoLowering.inc...
-[850/2609] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/Target.cpp.o
-[851/2609] Building AArch64GenAsmWriter1.inc...
-[852/2609] Updating AArch64GenAsmWriter1.inc...
-[853/2609] Building AArch64GenCallingConv.inc...
-[854/2609] Updating AArch64GenCallingConv.inc...
-[855/2609] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetSubtargetInfo.cpp.o
-[856/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcArchitectureSupport.cpp.o
-[857/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueTracking.cpp.o
-[858/2609] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/ExternalFunctions.cpp.o
-[859/2609] Building X86GenAsmMatcher.inc...
-[860/2609] Building AArch64GenDisassemblerTables.inc...
-[861/2609] Updating AArch64GenDisassemblerTables.inc...
-[862/2609] Building AArch64GenAsmMatcher.inc...
-[863/2609] Building AArch64GenFastISel.inc...
-[864/2609] Updating AArch64GenFastISel.inc...
-[865/2609] Updating AArch64GenAsmMatcher.inc...
-[866/2609] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldCOFF.cpp.o
-[867/2609] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/Symbolize.cpp.o
-[868/2609] Linking CXX static library lib/libLLVMSymbolize.a
-[869/2609] Building AMDGPUGenDFAPacketizer.inc...
-[870/2609] Updating AMDGPUGenDFAPacketizer.inc...
-[871/2609] Building AMDGPUGenIntrinsics.inc...
-[872/2609] Updating AMDGPUGenIntrinsics.inc...
-[873/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/IndirectionUtils.cpp.o
-[874/2609] Building AArch64GenDAGISel.inc...
-[875/2609] Updating AArch64GenDAGISel.inc...
-[876/2609] Building AMDGPUGenCallingConv.inc...
-[877/2609] Updating AMDGPUGenCallingConv.inc...
-[878/2609] Building AMDGPUGenSubtargetInfo.inc...
-[879/2609] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachineC.cpp.o
-[880/2609] Updating AMDGPUGenSubtargetInfo.inc...
-[881/2609] Building CXX object lib/ExecutionEngine/MCJIT/CMakeFiles/LLVMMCJIT.dir/MCJIT.cpp.o
-[882/2609] Linking CXX static library lib/libLLVMMCJIT.a
-[883/2609] Building AMDGPUGenInstrInfo.inc...
-[884/2609] Updating AMDGPUGenInstrInfo.inc...
-[885/2609] Building CXX object lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMappingWriter.cpp.o
-[886/2609] Updating X86GenAsmMatcher.inc...
-[887/2609] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetLoweringObjectFile.cpp.o
-[888/2609] Building ARMGenAsmWriter.inc...
-[889/2609] Updating ARMGenAsmWriter.inc...
-[890/2609] Building ARMGenRegisterInfo.inc...
-[891/2609] Updating ARMGenRegisterInfo.inc...
-[892/2609] Building AMDGPUGenRegisterInfo.inc...
-[893/2609] Updating AMDGPUGenRegisterInfo.inc...
-[894/2609] Building AMDGPUGenAsmMatcher.inc...
-[895/2609] Building BPFGenAsmWriter.inc...
-[896/2609] Updating AMDGPUGenAsmMatcher.inc...
-[897/2609] Building BPFGenRegisterInfo.inc...
-[898/2609] Updating BPFGenAsmWriter.inc...
-[899/2609] Updating BPFGenRegisterInfo.inc...
-[900/2609] Building AMDGPUGenDisassemblerTables.inc...
-[901/2609] Updating AMDGPUGenDisassemblerTables.inc...
-[902/2609] Building ARMGenMCCodeEmitter.inc...
-[903/2609] Updating ARMGenMCCodeEmitter.inc...
-[904/2609] Building AMDGPUGenMCCodeEmitter.inc...
-[905/2609] Updating AMDGPUGenMCCodeEmitter.inc...
-[906/2609] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyld.cpp.o
-[907/2609] Building BPFGenMCCodeEmitter.inc...
-[908/2609] Updating BPFGenMCCodeEmitter.inc...
-[909/2609] Building BPFGenInstrInfo.inc...
-[910/2609] Updating BPFGenInstrInfo.inc...
-[911/2609] Building BPFGenDAGISel.inc...
-[912/2609] Building BPFGenCallingConv.inc...
-[913/2609] Updating BPFGenCallingConv.inc...
-[914/2609] Building AMDGPUGenAsmWriter.inc...
-[915/2609] Updating AMDGPUGenAsmWriter.inc...
-[916/2609] Updating BPFGenDAGISel.inc...
-[917/2609] Building ARMGenInstrInfo.inc...
-[918/2609] Building BPFGenSubtargetInfo.inc...
-[919/2609] Updating ARMGenInstrInfo.inc...
-[920/2609] Updating BPFGenSubtargetInfo.inc...
-[921/2609] Building ARMGenMCPseudoLowering.inc...
-[922/2609] Updating ARMGenMCPseudoLowering.inc...
-[923/2609] Building ARMGenFastISel.inc...
-[924/2609] Building ARMGenSubtargetInfo.inc...
-[925/2609] Updating ARMGenFastISel.inc...
-[926/2609] Updating ARMGenSubtargetInfo.inc...
-[927/2609] Building AMDGPUGenDAGISel.inc...
-[928/2609] Building ARMGenDisassemblerTables.inc...
-[929/2609] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldChecker.cpp.o
-[930/2609] Updating ARMGenDisassemblerTables.inc...
-[931/2609] Updating AMDGPUGenDAGISel.inc...
-[932/2609] Building ARMGenCallingConv.inc...
-[933/2609] Building ARMGenAsmMatcher.inc...
-[934/2609] Building HexagonGenCallingConv.inc...
-[935/2609] Building HexagonGenDisassemblerTables.inc...
-[936/2609] Building MipsGenMCPseudoLowering.inc...
-[937/2609] Building HexagonGenAsmWriter.inc...
-[938/2609] Building HexagonGenAsmMatcher.inc...
-[939/2609] Building HexagonGenRegisterInfo.inc...
-[940/2609] Building HexagonGenMCCodeEmitter.inc...
-[941/2609] Building HexagonGenDFAPacketizer.inc...
-[942/2609] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldMachO.cpp.o
-[943/2609] Building HexagonGenSubtargetInfo.inc...
-[944/2609] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/ExecutionEngine.cpp.o
-[945/2609] Linking CXX static library lib/libLLVMExecutionEngine.a
-[946/2609] Building ARMGenDAGISel.inc...
-[947/2609] Updating ARMGenDAGISel.inc...
-[948/2609] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachine.cpp.o
-[949/2609] Linking CXX static library lib/libLLVMTarget.a
-[950/2609] Building HexagonGenInstrInfo.inc...
-[951/2609] Building HexagonGenDAGISel.inc...
-[952/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcCBindingsStack.cpp.o
-[953/2609] Building AArch64GenInstrInfo.inc...
-[954/2609] Updating AArch64GenInstrInfo.inc...
-[955/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcMCJITReplacement.cpp.o
-[956/2609] Building CXX object lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMappingReader.cpp.o
-[957/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUAsmBackend.cpp.o
-[958/2609] Building AArch64GenSubtargetInfo.inc...
-[959/2609] Updating AArch64GenSubtargetInfo.inc...
-[960/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAnnotateKernelFeatures.cpp.o
-[961/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetObjectFile.cpp.o
-[962/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAlwaysInlinePass.cpp.o
-[963/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMachineFunction.cpp.o
-[964/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAnnotateUniformValues.cpp.o
-[965/2609] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcCBindings.cpp.o
-[966/2609] Linking CXX static library lib/libLLVMOrcJIT.a
-[967/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFMCInstLower.cpp.o
-[968/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFFrameLowering.cpp.o
-[969/2609] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/Execution.cpp.o
-[970/2609] Linking CXX static library lib/libLLVMInterpreter.a
-[971/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUFrameLowering.cpp.o
-[972/2609] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldELF.cpp.o
-[973/2609] Linking CXX static library lib/libLLVMRuntimeDyld.a
-[974/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUIntrinsicInfo.cpp.o
-[975/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFInstrInfo.cpp.o
-[976/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFISelDAGToDAG.cpp.o
-[977/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUOpenCLImageTypeLoweringPass.cpp.o
-[978/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFAsmPrinter.cpp.o
-[979/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetTransformInfo.cpp.o
-[980/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUSubtarget.cpp.o
-[981/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMCInstLower.cpp.o
-[982/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFISelLowering.cpp.o
-[983/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUInstrInfo.cpp.o
-[984/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAsmPrinter.cpp.o
-[985/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPURegisterInfo.cpp.o
-[986/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/GCNHazardRecognizer.cpp.o
-[987/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ClauseMergePass.cpp.o
-[988/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPromoteAlloca.cpp.o
-[989/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AddressTypePromotion.cpp.o
-[990/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64DeadRegisterDefinitionsPass.cpp.o
-[991/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
-[992/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetMachine.cpp.o
-[993/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUISelDAGToDAG.cpp.o
-[994/2609] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolution.cpp.o
-[995/2609] Linking CXX static library lib/libLLVMAnalysis.a
-[996/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A53Fix835769.cpp.o
-[997/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ControlFlowFinalizer.cpp.o
-[998/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AdvSIMDScalarPass.cpp.o
-[999/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDILCFGStructurizer.cpp.o
-[1000/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUISelLowering.cpp.o
-[1001/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
-[1002/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CleanupLocalDynamicTLSPass.cpp.o
-[1003/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64BranchRelaxation.cpp.o
-[1004/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RedundantCopyElimination.cpp.o
-[1005/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MCInstLower.cpp.o
-[1006/2609] Building CXX object lib/Target/AArch64/TargetInfo/CMakeFiles/LLVMAArch64Info.dir/AArch64TargetInfo.cpp.o
-[1007/2609] Linking CXX static library lib/libLLVMAArch64Info.a
-[1008/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ConditionalCompares.cpp.o
-[1009/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ConditionOptimizer.cpp.o
-[1010/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ExpandPseudoInsts.cpp.o
-[1011/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AsmPrinter.cpp.o
-[1012/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FrameLowering.cpp.o
-[1013/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PromoteConstant.cpp.o
-[1014/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
-[1015/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A57FPLoadBalancing.cpp.o
-[1016/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StorePairSuppress.cpp.o
-[1017/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFObjectWriter.cpp.o
-[1018/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
-[1019/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64TargetStreamer.cpp.o
-[1020/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RegisterInfo.cpp.o
-[1021/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
-[1022/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SelectionDAGInfo.cpp.o
-[1023/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCExpr.cpp.o
-[1024/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MachObjectWriter.cpp.o
-[1025/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64LoadStoreOptimizer.cpp.o
-[1026/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CollectLOH.cpp.o
-[1027/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64InstrInfo.cpp.o
-[1028/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
-[1029/2609] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64BaseInfo.cpp.o
-[1030/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
-[1031/2609] Linking CXX static library lib/libLLVMAArch64Utils.a
-[1032/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PBQPRegAlloc.cpp.o
-[1033/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64AsmBackend.cpp.o
-[1034/2609] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
-[1035/2609] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCCodeEmitter.cpp.o
-[1036/2609] Linking CXX static library lib/libLLVMAArch64Desc.a
-[1037/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600EmitClauseMarkers.cpp.o
-[1038/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ExpandSpecialInstrs.cpp.o
-[1039/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600MachineFunctionInfo.cpp.o
-[1040/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600TextureIntrinsicsReplacer.cpp.o
-[1041/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600RegisterInfo.cpp.o
-[1042/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIAnnotateControlFlow.cpp.o
-[1043/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600MachineScheduler.cpp.o
-[1044/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600Packetizer.cpp.o
-[1045/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelDAGToDAG.cpp.o
-[1046/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFrameLowering.cpp.o
-[1047/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRCopies.cpp.o
-[1048/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixControlFlowLiveIntervals.cpp.o
-[1049/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600InstrInfo.cpp.o
-[1050/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertWaits.cpp.o
-[1051/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFoldOperands.cpp.o
-[1052/2609] Updating ARMGenAsmMatcher.inc...
-[1053/2609] Updating ARMGenCallingConv.inc...
-[1054/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600OptimizeVectorRegisters.cpp.o
-[1055/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIMachineFunctionInfo.cpp.o
-[1056/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCCodeEmitter.cpp.o
-[1057/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILowerI1Copies.cpp.o
-[1058/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FastISel.cpp.o
-[1059/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertNopsPass.cpp.o
-[1060/2609] Building CXX object lib/Target/AMDGPU/InstPrinter/CMakeFiles/LLVMAMDGPUAsmPrinter.dir/AMDGPUInstPrinter.cpp.o
-[1061/2609] Linking CXX static library lib/libLLVMAMDGPUAsmPrinter.a
-[1062/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUELFObjectWriter.cpp.o
-[1063/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILowerControlFlow.cpp.o
-[1064/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCAsmInfo.cpp.o
-[1065/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SITypeRewriter.cpp.o
-[1066/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILoadStoreOptimizer.cpp.o
-[1067/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUELFStreamer.cpp.o
-[1068/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIRegisterInfo.cpp.o
-[1069/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ISelLowering.cpp.o
-[1070/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIShrinkInstructions.cpp.o
-[1071/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInstrInfo.cpp.o
-[1072/2609] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o
-[1073/2609] Linking CXX static library lib/libLLVMPasses.a
-[1074/2609] Building CXX object lib/Target/AMDGPU/TargetInfo/CMakeFiles/LLVMAMDGPUInfo.dir/AMDGPUTargetInfo.cpp.o
-[1075/2609] Linking CXX static library lib/libLLVMAMDGPUInfo.a
-[1076/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUTargetStreamer.cpp.o
-[1077/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/SIMCCodeEmitter.cpp.o
-[1078/2609] Building CXX object lib/Target/AMDGPU/Utils/CMakeFiles/LLVMAMDGPUUtils.dir/AMDKernelCodeTUtils.cpp.o
-[1079/2609] Building CXX object lib/Target/AMDGPU/Utils/CMakeFiles/LLVMAMDGPUUtils.dir/AMDGPUBaseInfo.cpp.o
-[1080/2609] Linking CXX static library lib/libLLVMAMDGPUUtils.a
-[1081/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/R600MCCodeEmitter.cpp.o
-[1082/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIISelLowering.cpp.o
-[1083/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIWholeQuadMode.cpp.o
-[1084/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMConstantPoolValue.cpp.o
-[1085/2609] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCTargetDesc.cpp.o
-[1086/2609] Linking CXX static library lib/libLLVMAMDGPUDesc.a
-[1087/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMRegisterInfo.cpp.o
-[1088/2609] Building CXX object lib/Target/AArch64/AsmParser/CMakeFiles/LLVMAArch64AsmParser.dir/AArch64AsmParser.cpp.o
-[1089/2609] Linking CXX static library lib/libLLVMAArch64AsmParser.a
-[1090/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMHazardRecognizer.cpp.o
-[1091/2609] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
-[1092/2609] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIMachineScheduler.cpp.o
-[1093/2609] Linking CXX static library lib/libLLVMAArch64Disassembler.a
-[1094/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMMCInstLower.cpp.o
-[1095/2609] Linking CXX static library lib/libLLVMAMDGPUCodeGen.a
-[1096/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/A15SDOptimizer.cpp.o
-[1097/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMMachineFunctionInfo.cpp.o
-[1098/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMBaseRegisterInfo.cpp.o
-[1099/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMInstrInfo.cpp.o
-[1100/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMOptimizeBarriersPass.cpp.o
-[1101/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMExpandPseudoInsts.cpp.o
-[1102/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMSelectionDAGInfo.cpp.o
-[1103/2609] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelLowering.cpp.o
-[1104/2609] Building CXX object lib/Target/ARM/TargetInfo/CMakeFiles/LLVMARMInfo.dir/ARMTargetInfo.cpp.o
-[1105/2609] Linking CXX static library lib/libLLVMAArch64CodeGen.a
-[1106/2609] Linking CXX static library lib/libLLVMARMInfo.a
-[1107/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetObjectFile.cpp.o
-[1108/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetTransformInfo.cpp.o
-[1109/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMFrameLowering.cpp.o
-[1110/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMELFObjectWriter.cpp.o
-[1111/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMSubtarget.cpp.o
-[1112/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMAsmPrinter.cpp.o
-[1113/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/MLxExpansionPass.cpp.o
-[1114/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb1InstrInfo.cpp.o
-[1115/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMachORelocationInfo.cpp.o
-[1116/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCAsmInfo.cpp.o
-[1117/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetMachine.cpp.o
-[1118/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMBaseInstrInfo.cpp.o
-[1119/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ThumbRegisterInfo.cpp.o
-[1120/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMachObjectWriter.cpp.o
-[1121/2609] Updating HexagonGenInstrInfo.inc...
-[1122/2609] Updating HexagonGenAsmMatcher.inc...
-[1123/2609] Updating HexagonGenDAGISel.inc...
-[1124/2609] Updating HexagonGenDisassemblerTables.inc...
-[1125/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMAsmBackend.cpp.o
-[1126/2609] Updating HexagonGenAsmWriter.inc...
-[1127/2609] Updating HexagonGenDFAPacketizer.inc...
-[1128/2609] Updating HexagonGenSubtargetInfo.inc...
-[1129/2609] Updating HexagonGenCallingConv.inc...
-[1130/2609] Updating HexagonGenRegisterInfo.inc...
-[1131/2609] Updating HexagonGenMCCodeEmitter.inc...
-[1132/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMConstantIslandPass.cpp.o
-[1133/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2ITBlockPass.cpp.o
-[1134/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMUnwindOpAsm.cpp.o
-[1135/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCExpr.cpp.o
-[1136/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb1FrameLowering.cpp.o
-[1137/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMLoadStoreOptimizer.cpp.o
-[1138/2609] Building MipsGenAsmWriter.inc...
-[1139/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMTargetStreamer.cpp.o
-[1140/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMWinCOFFObjectWriter.cpp.o
-[1141/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMWinCOFFStreamer.cpp.o
-[1142/2609] Building CXX object lib/Target/ARM/InstPrinter/CMakeFiles/LLVMARMAsmPrinter.dir/ARMInstPrinter.cpp.o
-[1143/2609] Linking CXX static library lib/libLLVMARMAsmPrinter.a
-[1144/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2InstrInfo.cpp.o
-[1145/2609] Building CXX object lib/Target/BPF/TargetInfo/CMakeFiles/LLVMBPFInfo.dir/BPFTargetInfo.cpp.o
-[1146/2609] Linking CXX static library lib/libLLVMBPFInfo.a
-[1147/2609] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFAsmBackend.cpp.o
-[1148/2609] Building CXX object lib/Target/AMDGPU/Disassembler/CMakeFiles/LLVMAMDGPUDisassembler.dir/AMDGPUDisassembler.cpp.o
-[1149/2609] Linking CXX static library lib/libLLVMAMDGPUDisassembler.a
-[1150/2609] Building CXX object lib/Target/BPF/InstPrinter/CMakeFiles/LLVMBPFAsmPrinter.dir/BPFInstPrinter.cpp.o
-[1151/2609] Linking CXX static library lib/libLLVMBPFAsmPrinter.a
-[1152/2609] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCCodeEmitter.cpp.o
-[1153/2609] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFELFObjectWriter.cpp.o
-[1154/2609] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCTargetDesc.cpp.o
-[1155/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2SizeReduction.cpp.o
-[1156/2609] Linking CXX static library lib/libLLVMBPFDesc.a
-[1157/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMELFStreamer.cpp.o
-[1158/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCTargetDesc.cpp.o
-[1159/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMFastISel.cpp.o
-[1160/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFSubtarget.cpp.o
-[1161/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFTargetMachine.cpp.o
-[1162/2609] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFRegisterInfo.cpp.o
-[1163/2609] Linking CXX static library lib/libLLVMBPFCodeGen.a
-[1164/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMISelDAGToDAG.cpp.o
-[1165/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBranchRelaxation.cpp.o
-[1166/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenExtract.cpp.o
-[1167/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCFGOptimizer.cpp.o
-[1168/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonAsmPrinter.cpp.o
-[1169/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBlockRanges.cpp.o
-[1170/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/BitTracker.cpp.o
-[1171/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonFixupHwLoops.cpp.o
-[1172/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMachineFunctionInfo.cpp.o
-[1173/2609] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCCodeEmitter.cpp.o
-[1174/2609] Linking CXX static library lib/libLLVMARMDesc.a
-[1175/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCopyToCombine.cpp.o
-[1176/2609] Building CXX object lib/Target/AMDGPU/AsmParser/CMakeFiles/LLVMAMDGPUAsmParser.dir/AMDGPUAsmParser.cpp.o
-[1177/2609] Linking CXX static library lib/libLLVMAMDGPUAsmParser.a
-[1178/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenMux.cpp.o
-[1179/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptimizeSZextends.cpp.o
-[1180/2609] Building CXX object lib/Target/AArch64/InstPrinter/CMakeFiles/LLVMAArch64AsmPrinter.dir/AArch64InstPrinter.cpp.o
-[1181/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonEarlyIfConv.cpp.o
-[1182/2609] Linking CXX static library lib/libLLVMAArch64AsmPrinter.a
-[1183/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMCInstLower.cpp.o
-[1184/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMachineScheduler.cpp.o
-[1185/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenPredicate.cpp.o
-[1186/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonExpandCondsets.cpp.o
-[1187/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonHardwareLoops.cpp.o
-[1188/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRDF.cpp.o
-[1189/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonNewValueJump.cpp.o
-[1190/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBitSimplify.cpp.o
-[1191/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonInstrInfo.cpp.o
-[1192/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCommonGEP.cpp.o
-[1193/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonPeephole.cpp.o
-[1194/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSubtarget.cpp.o
-[1195/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSelectionDAGInfo.cpp.o
-[1196/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRegisterInfo.cpp.o
-[1197/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelDAGToDAG.cpp.o
-[1198/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCAsmInfo.cpp.o
-[1199/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelLowering.cpp.o
-[1200/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBitTracker.cpp.o
-[1201/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSplitConst32AndConst64.cpp.o
-[1202/2609] Updating MipsGenAsmWriter.inc...
-[1203/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonFrameLowering.cpp.o
-[1204/2609] Updating MipsGenMCPseudoLowering.inc...
-[1205/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptAddrMode.cpp.o
-[1206/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRDFOpt.cpp.o
-[1207/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetTransformInfo.cpp.o
-[1208/2609] Building MipsGenDisassemblerTables.inc...
-[1209/2609] Updating MipsGenDisassemblerTables.inc...
-[1210/2609] Building MipsGenRegisterInfo.inc...
-[1211/2609] Updating MipsGenRegisterInfo.inc...
-[1212/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonStoreWidening.cpp.o
-[1213/2609] Building MipsGenInstrInfo.inc...
-[1214/2609] Updating MipsGenInstrInfo.inc...
-[1215/2609] Building MipsGenMCCodeEmitter.inc...
-[1216/2609] Updating MipsGenMCCodeEmitter.inc...
-[1217/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetObjectFile.cpp.o
-[1218/2609] Building CXX object lib/Target/Hexagon/TargetInfo/CMakeFiles/LLVMHexagonInfo.dir/HexagonTargetInfo.cpp.o
-[1219/2609] Building MSP430GenRegisterInfo.inc...
-[1220/2609] Linking CXX static library lib/libLLVMHexagonInfo.a
-[1221/2609] Updating MSP430GenRegisterInfo.inc...
-[1222/2609] Building MipsGenCallingConv.inc...
-[1223/2609] Updating MipsGenCallingConv.inc...
-[1224/2609] Building MipsGenSubtargetInfo.inc...
-[1225/2609] Building MSP430GenInstrInfo.inc...
-[1226/2609] Updating MSP430GenInstrInfo.inc...
-[1227/2609] Updating MipsGenSubtargetInfo.inc...
-[1228/2609] Building MSP430GenAsmWriter.inc...
-[1229/2609] Updating MSP430GenAsmWriter.inc...
-[1230/2609] Building MipsGenFastISel.inc...
-[1231/2609] Updating MipsGenFastISel.inc...
-[1232/2609] Building MSP430GenSubtargetInfo.inc...
-[1233/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenInsert.cpp.o
-[1234/2609] Updating MSP430GenSubtargetInfo.inc...
-[1235/2609] Building MSP430GenDAGISel.inc...
-[1236/2609] Building MipsGenDAGISel.inc...
-[1237/2609] Building MipsGenAsmMatcher.inc...
-[1238/2609] Updating MSP430GenDAGISel.inc...
-[1239/2609] Updating MipsGenAsmMatcher.inc...
-[1240/2609] Updating MipsGenDAGISel.inc...
-[1241/2609] Updating PPCGenAsmWriter.inc...
-[1242/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonELFObjectWriter.cpp.o
-[1243/2609] Updating PPCGenAsmMatcher.inc...
-[1244/2609] Building MSP430GenCallingConv.inc...
-[1245/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16HardFloatInfo.cpp.o
-[1246/2609] Building NVPTXGenRegisterInfo.inc...
-[1247/2609] Building NVPTXGenInstrInfo.inc...
-[1248/2609] Building NVPTXGenSubtargetInfo.inc...
-[1249/2609] Building NVPTXGenAsmWriter.inc...
-[1250/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFCopy.cpp.o
-[1251/2609] Building NVPTXGenDAGISel.inc...
-[1252/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFDeadCode.cpp.o
-[1253/2609] Building CXX object lib/Target/ARM/Disassembler/CMakeFiles/LLVMARMDisassembler.dir/ARMDisassembler.cpp.o
-[1254/2609] Linking CXX static library lib/libLLVMARMDisassembler.a
-[1255/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCExpr.cpp.o
-[1256/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCDuplexInfo.cpp.o
-[1257/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonAsmBackend.cpp.o
-[1258/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSplitDouble.cpp.o
-[1259/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCChecker.cpp.o
-[1260/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonVLIWPacketizer.cpp.o
-[1261/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetMachine.cpp.o
-[1262/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCShuffler.cpp.o
-[1263/2609] Building CXX object lib/Target/Mips/TargetInfo/CMakeFiles/LLVMMipsInfo.dir/MipsTargetInfo.cpp.o
-[1264/2609] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMISelLowering.cpp.o
-[1265/2609] Linking CXX static library lib/libLLVMARMCodeGen.a
-[1266/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsAnalyzeImmediate.cpp.o
-[1267/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCCompound.cpp.o
-[1268/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCELFStreamer.cpp.o
-[1269/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonShuffler.cpp.o
-[1270/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCInstrInfo.cpp.o
-[1271/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCTargetDesc.cpp.o
-[1272/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCCodeEmitter.cpp.o
-[1273/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFGraph.cpp.o
-[1274/2609] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFLiveness.cpp.o
-[1275/2609] Linking CXX static library lib/libLLVMHexagonCodeGen.a
-[1276/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsCCState.cpp.o
-[1277/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16FrameLowering.cpp.o
-[1278/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16HardFloat.cpp.o
-[1279/2609] Building CXX object lib/Target/ARM/AsmParser/CMakeFiles/LLVMARMAsmParser.dir/ARMAsmParser.cpp.o
-[1280/2609] Linking CXX static library lib/libLLVMARMAsmParser.a
-[1281/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsOs16.cpp.o
-[1282/2609] Linking CXX static library lib/libLLVMMipsInfo.a
-[1283/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16RegisterInfo.cpp.o
-[1284/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16InstrInfo.cpp.o
-[1285/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsHazardSchedule.cpp.o
-[1286/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16ISelLowering.cpp.o
-[1287/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsRegisterInfo.cpp.o
-[1288/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsInstrInfo.cpp.o
-[1289/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16ISelDAGToDAG.cpp.o
-[1290/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsMachineFunction.cpp.o
-[1291/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsModuleISelDAGToDAG.cpp.o
-[1292/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsMCInstLower.cpp.o
-[1293/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsFrameLowering.cpp.o
-[1294/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCAsmInfo.cpp.o
-[1295/2609] Updating MSP430GenCallingConv.inc...
-[1296/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsABIFlagsSection.cpp.o
-[1297/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsAsmPrinter.cpp.o
-[1298/2609] Building CXX object lib/Target/Hexagon/AsmParser/CMakeFiles/LLVMHexagonAsmParser.dir/HexagonAsmParser.cpp.o
-[1299/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsISelDAGToDAG.cpp.o
-[1300/2609] Linking CXX static library lib/libLLVMHexagonAsmParser.a
-[1301/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsDelaySlotFiller.cpp.o
-[1302/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsLongBranch.cpp.o
-[1303/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsOptimizePICCall.cpp.o
-[1304/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEInstrInfo.cpp.o
-[1305/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsAsmBackend.cpp.o
-[1306/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsELFObjectWriter.cpp.o
-[1307/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsConstantIslandPass.cpp.o
-[1308/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsELFStreamer.cpp.o
-[1309/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsABIInfo.cpp.o
-[1310/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSubtarget.cpp.o
-[1311/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSERegisterInfo.cpp.o
-[1312/2609] Updating NVPTXGenRegisterInfo.inc...
-[1313/2609] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonInstPrinter.cpp.o
-[1314/2609] Updating NVPTXGenSubtargetInfo.inc...
-[1315/2609] Linking CXX static library lib/libLLVMHexagonDesc.a
-[1316/2609] Updating NVPTXGenDAGISel.inc...
-[1317/2609] Updating NVPTXGenInstrInfo.inc...
-[1318/2609] Updating NVPTXGenAsmWriter.inc...
-[1319/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCExpr.cpp.o
-[1320/2609] Updating PPCGenRegisterInfo.inc...
-[1321/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEFrameLowering.cpp.o
-[1322/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsOptionRecord.cpp.o
-[1323/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsFastISel.cpp.o
-[1324/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsNaClELFStreamer.cpp.o
-[1325/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsTargetObjectFile.cpp.o
-[1326/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCTargetDesc.cpp.o
-[1327/2609] Building CXX object lib/Target/Mips/InstPrinter/CMakeFiles/LLVMMipsAsmPrinter.dir/MipsInstPrinter.cpp.o
-[1328/2609] Building CXX object lib/Target/Hexagon/Disassembler/CMakeFiles/LLVMHexagonDisassembler.dir/HexagonDisassembler.cpp.o
-[1329/2609] Linking CXX static library lib/libLLVMHexagonDisassembler.a
-[1330/2609] Linking CXX static library lib/libLLVMMipsAsmPrinter.a
-[1331/2609] Building CXX object lib/Target/MSP430/MCTargetDesc/CMakeFiles/LLVMMSP430Desc.dir/MSP430MCAsmInfo.cpp.o
-[1332/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEISelDAGToDAG.cpp.o
-[1333/2609] Building CXX object lib/Target/MSP430/InstPrinter/CMakeFiles/LLVMMSP430AsmPrinter.dir/MSP430InstPrinter.cpp.o
-[1334/2609] Building CXX object lib/Target/MSP430/MCTargetDesc/CMakeFiles/LLVMMSP430Desc.dir/MSP430MCTargetDesc.cpp.o
-[1335/2609] Linking CXX static library lib/libLLVMMSP430AsmPrinter.a
-[1336/2609] Linking CXX static library lib/libLLVMMSP430Desc.a
-[1337/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCCodeEmitter.cpp.o
-[1338/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsTargetMachine.cpp.o
-[1339/2609] Building CXX object lib/Target/MSP430/TargetInfo/CMakeFiles/LLVMMSP430Info.dir/MSP430TargetInfo.cpp.o
-[1340/2609] Linking CXX static library lib/libLLVMMSP430Info.a
-[1341/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430MachineFunctionInfo.cpp.o
-[1342/2609] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsTargetStreamer.cpp.o
-[1343/2609] Linking CXX static library lib/libLLVMMipsDesc.a
-[1344/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAssignValidGlobalNames.cpp.o
-[1345/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430BranchSelector.cpp.o
-[1346/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsISelLowering.cpp.o
-[1347/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXFavorNonGenericAddrSpaces.cpp.o
-[1348/2609] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEISelLowering.cpp.o
-[1349/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430Subtarget.cpp.o
-[1350/2609] Linking CXX static library lib/libLLVMMipsCodeGen.a
-[1351/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430InstrInfo.cpp.o
-[1352/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430MCInstLower.cpp.o
-[1353/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAllocaHoisting.cpp.o
-[1354/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430RegisterInfo.cpp.o
-[1355/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelDAGToDAG.cpp.o
-[1356/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430TargetMachine.cpp.o
-[1357/2609] Updating PPCGenSubtargetInfo.inc...
-[1358/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430AsmPrinter.cpp.o
-[1359/2609] Building PPCGenDisassemblerTables.inc...
-[1360/2609] Updating PPCGenDisassemblerTables.inc...
-[1361/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXImageOptimizer.cpp.o
-[1362/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430FrameLowering.cpp.o
-[1363/2609] Building PPCGenMCCodeEmitter.inc...
-[1364/2609] Updating PPCGenMCCodeEmitter.inc...
-[1365/2609] Building SparcGenRegisterInfo.inc...
-[1366/2609] Building PPCGenCallingConv.inc...
-[1367/2609] Updating SparcGenRegisterInfo.inc...
-[1368/2609] Updating PPCGenCallingConv.inc...
-[1369/2609] Building PPCGenInstrInfo.inc...
-[1370/2609] Updating PPCGenInstrInfo.inc...
-[1371/2609] Building SparcGenDisassemblerTables.inc...
-[1372/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXMCExpr.cpp.o
-[1373/2609] Updating SparcGenDisassemblerTables.inc...
-[1374/2609] Building SparcGenMCCodeEmitter.inc...
-[1375/2609] Updating SparcGenMCCodeEmitter.inc...
-[1376/2609] Building PPCGenDAGISel.inc...
-[1377/2609] Updating PPCGenDAGISel.inc...
-[1378/2609] Building SparcGenDAGISel.inc...
-[1379/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerAlloca.cpp.o
-[1380/2609] Building PPCGenFastISel.inc...
-[1381/2609] Building SparcGenInstrInfo.inc...
-[1382/2609] Updating SparcGenDAGISel.inc...
-[1383/2609] Updating PPCGenFastISel.inc...
-[1384/2609] Updating SparcGenInstrInfo.inc...
-[1385/2609] Building SparcGenAsmWriter.inc...
-[1386/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXFrameLowering.cpp.o
-[1387/2609] Building SparcGenSubtargetInfo.inc...
-[1388/2609] Building SparcGenAsmMatcher.inc...
-[1389/2609] Building SparcGenCallingConv.inc...
-[1390/2609] Building SystemZGenDisassemblerTables.inc...
-[1391/2609] Building SystemZGenCallingConv.inc...
-[1392/2609] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelLowering.cpp.o
-[1393/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXPeephole.cpp.o
-[1394/2609] Linking CXX static library lib/libLLVMMSP430CodeGen.a
-[1395/2609] Building CXX object lib/Target/NVPTX/MCTargetDesc/CMakeFiles/LLVMNVPTXDesc.dir/NVPTXMCAsmInfo.cpp.o
-[1396/2609] Building SystemZGenDAGISel.inc...
-[1397/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXPrologEpilogPass.cpp.o
-[1398/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerKernelArgs.cpp.o
-[1399/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXGenericToNVVM.cpp.o
-[1400/2609] Building CXX object lib/Target/NVPTX/TargetInfo/CMakeFiles/LLVMNVPTXInfo.dir/NVPTXTargetInfo.cpp.o
-[1401/2609] Linking CXX static library lib/libLLVMNVPTXInfo.a
-[1402/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXInstrInfo.cpp.o
-[1403/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXRegisterInfo.cpp.o
-[1404/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerAggrCopies.cpp.o
-[1405/2609] Building CXX object lib/Target/NVPTX/MCTargetDesc/CMakeFiles/LLVMNVPTXDesc.dir/NVPTXMCTargetDesc.cpp.o
-[1406/2609] Linking CXX static library lib/libLLVMNVPTXDesc.a
-[1407/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXSubtarget.cpp.o
-[1408/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVVMReflect.cpp.o
-[1409/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXReplaceImageHandles.cpp.o
-[1410/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXInferAddressSpaces.cpp.o
-[1411/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXUtilities.cpp.o
-[1412/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXTargetTransformInfo.cpp.o
-[1413/2609] Building CXX object lib/Target/NVPTX/InstPrinter/CMakeFiles/LLVMNVPTXAsmPrinter.dir/NVPTXInstPrinter.cpp.o
-[1414/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCBranchSelector.cpp.o
-[1415/2609] Linking CXX static library lib/libLLVMNVPTXAsmPrinter.a
-[1416/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCBoolRetToInt.cpp.o
-[1417/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCHazardRecognizers.cpp.o
-[1418/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXTargetMachine.cpp.o
-[1419/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetObjectFile.cpp.o
-[1420/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXISelDAGToDAG.cpp.o
-[1421/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCQPXLoadSplat.cpp.o
-[1422/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMachineFunctionInfo.cpp.o
-[1423/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAsmPrinter.cpp.o
-[1424/2609] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCPredicates.cpp.o
-[1425/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCEarlyReturn.cpp.o
-[1426/2609] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXISelLowering.cpp.o
-[1427/2609] Updating SparcGenAsmWriter.inc...
-[1428/2609] Updating SparcGenAsmMatcher.inc...
-[1429/2609] Linking CXX static library lib/libLLVMNVPTXCodeGen.a
-[1430/2609] Updating SparcGenCallingConv.inc...
-[1431/2609] Updating SparcGenSubtargetInfo.inc...
-[1432/2609] Updating SystemZGenDAGISel.inc...
-[1433/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMIPeephole.cpp.o
-[1434/2609] Building CXX object lib/Target/Mips/AsmParser/CMakeFiles/LLVMMipsAsmParser.dir/MipsAsmParser.cpp.o
-[1435/2609] Linking CXX static library lib/libLLVMMipsAsmParser.a
-[1436/2609] Building CXX object lib/Target/Mips/Disassembler/CMakeFiles/LLVMMipsDisassembler.dir/MipsDisassembler.cpp.o
-[1437/2609] Linking CXX static library lib/libLLVMMipsDisassembler.a
-[1438/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMCInstLower.cpp.o
-[1439/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCSubtarget.cpp.o
-[1440/2609] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCAsmBackend.cpp.o
-[1441/2609] Building CXX object lib/Target/PowerPC/TargetInfo/CMakeFiles/LLVMPowerPCInfo.dir/PowerPCTargetInfo.cpp.o
-[1442/2609] Linking CXX static library lib/libLLVMPowerPCInfo.a
-[1443/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCCTRLoops.cpp.o
-[1444/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetTransformInfo.cpp.o
-[1445/2609] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCAsmInfo.cpp.o
-[1446/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTLSDynamicCall.cpp.o
-[1447/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTOCRegDeps.cpp.o
-[1448/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCInstrInfo.cpp.o
-[1449/2609] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCExpr.cpp.o
-[1450/2609] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCELFObjectWriter.cpp.o
-[1451/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCRegisterInfo.cpp.o
-[1452/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCLoopPreIncPrep.cpp.o
-[1453/2609] Building CXX object lib/Target/PowerPC/AsmParser/CMakeFiles/LLVMPowerPCAsmParser.dir/PPCAsmParser.cpp.o
-[1454/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCFrameLowering.cpp.o
-[1455/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXCopy.cpp.o
-[1456/2609] Linking CXX static library lib/libLLVMPowerPCAsmParser.a
-[1457/2609] Building CXX object lib/Target/PowerPC/Disassembler/CMakeFiles/LLVMPowerPCDisassembler.dir/PPCDisassembler.cpp.o
-[1458/2609] Linking CXX static library lib/libLLVMPowerPCDisassembler.a
-[1459/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetMachine.cpp.o
-[1460/2609] Updating SystemZGenDisassemblerTables.inc...
-[1461/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXFMAMutate.cpp.o
-[1462/2609] Updating SystemZGenCallingConv.inc...
-[1463/2609] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMachObjectWriter.cpp.o
-[1464/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCFastISel.cpp.o
-[1465/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCAsmPrinter.cpp.o
-[1466/2609] Building SystemZGenAsmMatcher.inc...
-[1467/2609] Updating SystemZGenAsmMatcher.inc...
-[1468/2609] Building SystemZGenMCCodeEmitter.inc...
-[1469/2609] Building SystemZGenAsmWriter.inc...
-[1470/2609] Updating SystemZGenMCCodeEmitter.inc...
-[1471/2609] Updating SystemZGenAsmWriter.inc...
-[1472/2609] Building SystemZGenRegisterInfo.inc...
-[1473/2609] Updating SystemZGenRegisterInfo.inc...
-[1474/2609] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCTargetDesc.cpp.o
-[1475/2609] Building SystemZGenInstrInfo.inc...
-[1476/2609] Updating SystemZGenInstrInfo.inc...
-[1477/2609] Building SystemZGenSubtargetInfo.inc...
-[1478/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXSwapRemoval.cpp.o
-[1479/2609] Updating SystemZGenSubtargetInfo.inc...
-[1480/2609] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcAsmBackend.cpp.o
-[1481/2609] Building CXX object lib/Target/Sparc/TargetInfo/CMakeFiles/LLVMSparcInfo.dir/SparcTargetInfo.cpp.o
-[1482/2609] Linking CXX static library lib/libLLVMSparcInfo.a
-[1483/2609] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcELFObjectWriter.cpp.o
-[1484/2609] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCAsmInfo.cpp.o
-[1485/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcMachineFunctionInfo.cpp.o
-[1486/2609] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCCodeEmitter.cpp.o
-[1487/2609] Linking CXX static library lib/libLLVMPowerPCDesc.a
-[1488/2609] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcTargetStreamer.cpp.o
-[1489/2609] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCCodeEmitter.cpp.o
-[1490/2609] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCTargetDesc.cpp.o
-[1491/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcInstrInfo.cpp.o
-[1492/2609] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCExpr.cpp.o
-[1493/2609] Linking CXX static library lib/libLLVMSparcDesc.a
-[1494/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/DelaySlotFiller.cpp.o
-[1495/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcAsmPrinter.cpp.o
-[1496/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetObjectFile.cpp.o
-[1497/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcMCInstLower.cpp.o
-[1498/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcSubtarget.cpp.o
-[1499/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetMachine.cpp.o
-[1500/2609] Building CXX object lib/Target/PowerPC/InstPrinter/CMakeFiles/LLVMPowerPCAsmPrinter.dir/PPCInstPrinter.cpp.o
-[1501/2609] Linking CXX static library lib/libLLVMPowerPCAsmPrinter.a
-[1502/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZConstantPoolValue.cpp.o
-[1503/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcRegisterInfo.cpp.o
-[1504/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcISelDAGToDAG.cpp.o
-[1505/2609] Building X86GenCallingConv.inc...
-[1506/2609] Building X86GenRegisterInfo.inc...
-[1507/2609] Building X86GenAsmWriter1.inc...
-[1508/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcFrameLowering.cpp.o
-[1509/2609] Building CXX object lib/Target/Sparc/AsmParser/CMakeFiles/LLVMSparcAsmParser.dir/SparcAsmParser.cpp.o
-[1510/2609] Linking CXX static library lib/libLLVMSparcAsmParser.a
-[1511/2609] Building X86GenDisassemblerTables.inc...
-[1512/2609] Updating X86GenDisassemblerTables.inc...
-[1513/2609] Updating X86GenRegisterInfo.inc...
-[1514/2609] Updating X86GenAsmWriter1.inc...
-[1515/2609] Updating X86GenCallingConv.inc...
-[1516/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZCallingConv.cpp.o
-[1517/2609] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCObjectWriter.cpp.o
-[1518/2609] Building CXX object lib/Target/SystemZ/TargetInfo/CMakeFiles/LLVMSystemZInfo.dir/SystemZTargetInfo.cpp.o
-[1519/2609] Linking CXX static library lib/libLLVMSystemZInfo.a
-[1520/2609] Building CXX object lib/Target/SystemZ/InstPrinter/CMakeFiles/LLVMSystemZAsmPrinter.dir/SystemZInstPrinter.cpp.o
-[1521/2609] Linking CXX static library lib/libLLVMSystemZAsmPrinter.a
-[1522/2609] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCAsmBackend.cpp.o
-[1523/2609] Building XCoreGenAsmWriter.inc...
-[1524/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZMachineFunctionInfo.cpp.o
-[1525/2609] Updating XCoreGenAsmWriter.inc...
-[1526/2609] Building CXX object lib/Target/Sparc/Disassembler/CMakeFiles/LLVMSparcDisassembler.dir/SparcDisassembler.cpp.o
-[1527/2609] Linking CXX static library lib/libLLVMSparcDisassembler.a
-[1528/2609] Building XCoreGenRegisterInfo.inc...
-[1529/2609] Updating XCoreGenRegisterInfo.inc...
-[1530/2609] Building XCoreGenSubtargetInfo.inc...
-[1531/2609] Updating XCoreGenSubtargetInfo.inc...
-[1532/2609] Building XCoreGenInstrInfo.inc...
-[1533/2609] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCAsmInfo.cpp.o
-[1534/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZElimCompare.cpp.o
-[1535/2609] Updating XCoreGenInstrInfo.inc...
-[1536/2609] Building XCoreGenDisassemblerTables.inc...
-[1537/2609] Updating XCoreGenDisassemblerTables.inc...
-[1538/2609] Building XCoreGenDAGISel.inc...
-[1539/2609] Updating XCoreGenDAGISel.inc...
-[1540/2609] Building XCoreGenCallingConv.inc...
-[1541/2609] Updating XCoreGenCallingConv.inc...
-[1542/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCISelDAGToDAG.cpp.o
-[1543/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZLongBranch.cpp.o
-[1544/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZLDCleanup.cpp.o
-[1545/2609] Building CXX object lib/Target/SystemZ/AsmParser/CMakeFiles/LLVMSystemZAsmParser.dir/SystemZAsmParser.cpp.o
-[1546/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZSubtarget.cpp.o
-[1547/2609] Linking CXX static library lib/libLLVMSystemZAsmParser.a
-[1548/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZSelectionDAGInfo.cpp.o
-[1549/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZRegisterInfo.cpp.o
-[1550/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZShortenInst.cpp.o
-[1551/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZMCInstLower.cpp.o
-[1552/2609] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCTargetDesc.cpp.o
-[1553/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZInstrInfo.cpp.o
-[1554/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZFrameLowering.cpp.o
-[1555/2609] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcISelLowering.cpp.o
-[1556/2609] Linking CXX static library lib/libLLVMSparcCodeGen.a
-[1557/2609] Building X86GenAsmWriter.inc...
-[1558/2609] Updating X86GenAsmWriter.inc...
-[1559/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZTargetTransformInfo.cpp.o
-[1560/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZAsmPrinter.cpp.o
-[1561/2609] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCCodeEmitter.cpp.o
-[1562/2609] Linking CXX static library lib/libLLVMSystemZDesc.a
-[1563/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZISelDAGToDAG.cpp.o
-[1564/2609] Building CXX object lib/LineEditor/CMakeFiles/LLVMLineEditor.dir/LineEditor.cpp.o
-[1565/2609] Linking CXX static library lib/libLLVMLineEditor.a
-[1566/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZTargetMachine.cpp.o
-[1567/2609] Building CXX object lib/Target/SystemZ/Disassembler/CMakeFiles/LLVMSystemZDisassembler.dir/SystemZDisassembler.cpp.o
-[1568/2609] Linking CXX static library lib/libLLVMSystemZDisassembler.a
-[1569/2609] Building CXX object lib/Target/Sparc/InstPrinter/CMakeFiles/LLVMSparcAsmPrinter.dir/SparcInstPrinter.cpp.o
-[1570/2609] Linking CXX static library lib/libLLVMSparcAsmPrinter.a
-[1571/2609] Building X86GenFastISel.inc...
-[1572/2609] Updating X86GenFastISel.inc...
-[1573/2609] Building CXX object lib/Target/XCore/MCTargetDesc/CMakeFiles/LLVMXCoreDesc.dir/XCoreMCAsmInfo.cpp.o
-[1574/2609] Building CXX object lib/Target/XCore/InstPrinter/CMakeFiles/LLVMXCoreAsmPrinter.dir/XCoreInstPrinter.cpp.o
-[1575/2609] Linking CXX static library lib/libLLVMXCoreAsmPrinter.a
-[1576/2609] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/Parser.cpp.o
-[1577/2609] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLLexer.cpp.o
-[1578/2609] Building CXX object lib/Target/XCore/TargetInfo/CMakeFiles/LLVMXCoreInfo.dir/XCoreTargetInfo.cpp.o
-[1579/2609] Linking CXX static library lib/libLLVMXCoreInfo.a
-[1580/2609] Building Options.inc...
-[1581/2609] Updating Options.inc...
-[1582/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreMachineFunctionInfo.cpp.o
-[1583/2609] Building CXX object lib/Target/XCore/MCTargetDesc/CMakeFiles/LLVMXCoreDesc.dir/XCoreMCTargetDesc.cpp.o
-[1584/2609] Building C object utils/count/CMakeFiles/count.dir/count.c.o
-[1585/2609] Linking CXX static library lib/libLLVMXCoreDesc.a
-[1586/2609] Linking C executable bin/count
-[1587/2609] Building CXX object utils/PerfectShuffle/CMakeFiles/llvm-PerfectShuffle.dir/PerfectShuffle.cpp.o
-[1588/2609] Linking CXX executable bin/llvm-PerfectShuffle
-[1589/2609] Building X86GenInstrInfo.inc...
-[1590/2609] Updating X86GenInstrInfo.inc...
-[1591/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreLowerThreadLocal.cpp.o
-[1592/2609] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCISelLowering.cpp.o
-[1593/2609] Linking CXX static library lib/libLLVMPowerPCCodeGen.a
-[1594/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreMCInstLower.cpp.o
-[1595/2609] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfReader.cpp.o
-[1596/2609] Creating export file for LTO
-[1597/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreSubtarget.cpp.o
-[1598/2609] Creating export file for LLVMgold
-[1599/2609] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProf.cpp.o
-[1600/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreSelectionDAGInfo.cpp.o
-[1601/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreFrameToArgsOffsetElim.cpp.o
-[1602/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreInstrInfo.cpp.o
-[1603/2609] Building CXX object utils/not/CMakeFiles/not.dir/not.cpp.o
-[1604/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreAsmPrinter.cpp.o
-[1605/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreISelDAGToDAG.cpp.o
-[1606/2609] Linking CXX executable bin/not
-[1607/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreTargetObjectFile.cpp.o
-[1608/2609] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/ProfileSummary.cpp.o
-[1609/2609] Building X86GenDAGISel.inc...
-[1610/2609] Building Options.inc...
-[1611/2609] Generating ../../../../share/scan-view/bugcatcher.ico
-[1612/2609] Updating X86GenDAGISel.inc...
-[1613/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreFrameLowering.cpp.o
-[1614/2609] Updating Options.inc...
-[1615/2609] Generating ../../../../share/scan-view/FileRadar.scpt
-[1616/2609] Generating ../../../../share/scan-view/startfile.py
-[1617/2609] Generating ../../../../share/scan-view/Reporter.py
-[1618/2609] Generating ../../../../share/scan-view/ScanView.py
-[1619/2609] Generating ../../../../share/scan-build/scanview.css
-[1620/2609] Generating ../../../../bin/scan-view
-[1621/2609] Generating ../../../../share/scan-build/sorttable.js
-[1622/2609] Generating ../../../../libexec/ccc-analyzer
-[1623/2609] Generating ../../../../libexec/c++-analyzer
-[1624/2609] Generating ../../../../share/scan-view/GetRadarVersion.scpt
-[1625/2609] Generating ../../../../share/man/man1/scan-build.1
-[1626/2609] Generating ../../../../bin/scan-build
-[1627/2609] Creating export file for libclang
-[1628/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreRegisterInfo.cpp.o
-[1629/2609] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfWriter.cpp.o
-[1630/2609] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProf.cpp.o
-[1631/2609] Building CXX object utils/yaml-bench/CMakeFiles/yaml-bench.dir/YAMLBench.cpp.o
-[1632/2609] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZISelLowering.cpp.o
-[1633/2609] Linking CXX static library lib/libLLVMSystemZCodeGen.a
-[1634/2609] Linking CXX executable bin/yaml-bench
-[1635/2609] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfWriter.cpp.o
-[1636/2609] Building CXX object lib/LibDriver/CMakeFiles/LLVMLibDriver.dir/LibDriver.cpp.o
-[1637/2609] Building CXX object utils/unittest/UnitTestMain/CMakeFiles/gtest_main.dir/TestMain.cpp.o
-[1638/2609] Linking CXX static library lib/libLLVMLibDriver.a
-[1639/2609] Linking CXX static library lib/libgtest_main.a
-[1640/2609] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfReader.cpp.o
-[1641/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreTargetMachine.cpp.o
-[1642/2609] Building CXX object lib/Target/XCore/Disassembler/CMakeFiles/LLVMXCoreDisassembler.dir/XCoreDisassembler.cpp.o
-[1643/2609] Linking CXX static library lib/libLLVMProfileData.a
-[1644/2609] Linking CXX static library lib/libLLVMXCoreDisassembler.a
-[1645/2609] Building X86GenAsmMatcher.inc...
-[1646/2609] Updating X86GenAsmMatcher.inc...
-[1647/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/TableGen.cpp.o
-[1648/2609] Building X86GenSubtargetInfo.inc...
-[1649/2609] Updating X86GenSubtargetInfo.inc...
-[1650/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentCommandInfoEmitter.cpp.o
-[1651/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangASTNodesEmitter.cpp.o
-[1652/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp.o
-[1653/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentHTMLTagsEmitter.cpp.o
-[1654/2609] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreISelLowering.cpp.o
-[1655/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMAttributeParser.cpp.o
-[1656/2609] Building CXX object tools/llvm-mcmarkup/CMakeFiles/llvm-mcmarkup.dir/llvm-mcmarkup.cpp.o
-[1657/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangSACheckersEmitter.cpp.o
-[1658/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/BuiltinDumper.cpp.o
-[1659/2609] Building CXX object tools/llvm-config/CMakeFiles/llvm-config.dir/llvm-config.cpp.o
-[1660/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ExternalSymbolDumper.cpp.o
-[1661/2609] Building CXX object utils/FileCheck/CMakeFiles/FileCheck.dir/FileCheck.cpp.o
-[1662/2609] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2obj.cpp.o
-[1663/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/CompilandDumper.cpp.o
-[1664/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/EnumDumper.cpp.o
-[1665/2609] Building CXX object tools/sanstats/CMakeFiles/sanstats.dir/sanstats.cpp.o
-[1666/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ClassDefinitionDumper.cpp.o
-[1667/2609] Building CXX object lib/ProfileData/Coverage/CMakeFiles/LLVMCoverage.dir/CoverageMapping.cpp.o
-[1668/2609] Linking CXX static library lib/libLLVMCoverage.a
-[1669/2609] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2coff.cpp.o
-[1670/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangDiagnosticsEmitter.cpp.o
-[1671/2609] Building CXX object tools/llvm-size/CMakeFiles/llvm-size.dir/llvm-size.cpp.o
-[1672/2609] Building CXX object tools/llvm-dis/CMakeFiles/llvm-dis.dir/llvm-dis.cpp.o
-[1673/2609] Building CXX object tools/llvm-dwarfdump/CMakeFiles/llvm-dwarfdump.dir/llvm-dwarfdump.cpp.o
-[1674/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ShuffleDecodeConstantPool.cpp.o
-[1675/2609] Building CXX object tools/llvm-stress/CMakeFiles/llvm-stress.dir/llvm-stress.cpp.o
-[1676/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/llvm-pdbdump.cpp.o
-[1677/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MachineFunctionInfo.cpp.o
-[1678/2609] Building CXX object tools/llvm-bcanalyzer/CMakeFiles/llvm-bcanalyzer.dir/llvm-bcanalyzer.cpp.o
-[1679/2609] Building CXX object tools/llvm-profdata/CMakeFiles/llvm-profdata.dir/llvm-profdata.cpp.o
-[1680/2609] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googletest/src/gtest-all.cc.o
-[1681/2609] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2elf.cpp.o
-[1682/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ExpandPseudo.cpp.o
-[1683/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86CallFrameOptimization.cpp.o
-[1684/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetObjectFile.cpp.o
-[1685/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86SelectionDAGInfo.cpp.o
-[1686/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86AsmPrinter.cpp.o
-[1687/2609] Building CXX object tools/lli/ChildTarget/CMakeFiles/lli-child-target.dir/ChildTarget.cpp.o
-[1688/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FloatingPoint.cpp.o
-[1689/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86PadShortFunction.cpp.o
-[1690/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86Subtarget.cpp.o
-[1691/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/NeonEmitter.cpp.o
-[1692/2609] Linking CXX static library lib/libLLVMXCoreCodeGen.a
-[1693/2609] Linking CXX executable bin/FileCheck
-[1694/2609] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmInstrumentation.cpp.o
-[1695/2609] Linking CXX static library lib/libgtest.a
-[1696/2609] Linking CXX executable bin/llvm-config
-[1697/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86RegisterInfo.cpp.o
-[1698/2609] Linking CXX executable bin/llvm-stress
-[1699/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86VZeroUpper.cpp.o
-[1700/2609] Linking CXX executable bin/llvm-mcmarkup
-[1701/2609] Linking CXX executable bin/llvm-profdata
-[1702/2609] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86ATTInstPrinter.cpp.o
-[1703/2609] Linking CXX executable bin/llvm-size
-[1704/2609] Linking CXX executable bin/llvm-dwarfdump
-[1705/2609] Linking CXX executable bin/llvm-dis
-[1706/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetMachine.cpp.o
-[1707/2609] Linking CXX executable bin/yaml2obj
-[1708/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetTransformInfo.cpp.o
-[1709/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MCInstLower.cpp.o
-[1710/2609] Linking CXX executable bin/sanstats
-[1711/2609] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86InstComments.cpp.o
-[1712/2609] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangAttrEmitter.cpp.o
-[1713/2609] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86Disassembler.cpp.o
-[1714/2609] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86IntelInstPrinter.cpp.o
-[1715/2609] Linking CXX static library lib/libLLVMX86AsmPrinter.a
-[1716/2609] Linking CXX executable bin/clang-tblgen
-[1717/2609] Building StmtNodes.inc...
-[1718/2609] Linking CXX executable bin/lli-child-target
-[1719/2609] Building DeclNodes.inc...
-[1720/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupLEAs.cpp.o
-[1721/2609] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/Error.cpp.o
-[1722/2609] Building CommentNodes.inc...
-[1723/2609] Updating DeclNodes.inc...
-[1724/2609] Updating StmtNodes.inc...
-[1725/2609] Building AttrVisitor.inc...
-[1726/2609] Building CommentHTMLNamedCharacterReferences.inc...
-[1727/2609] Updating CommentHTMLNamedCharacterReferences.inc...
-[1728/2609] Building CommentCommandInfo.inc...
-[1729/2609] Building Attrs.inc...
-[1730/2609] Updating AttrVisitor.inc...
-[1731/2609] Updating CommentCommandInfo.inc...
-[1732/2609] Updating Attrs.inc...
-[1733/2609] Updating CommentNodes.inc...
-[1734/2609] Building CommentHTMLTags.inc...
-[1735/2609] Building AttrImpl.inc...
-[1736/2609] Updating AttrImpl.inc...
-[1737/2609] Building AttrDump.inc...
-[1738/2609] Building CommentCommandList.inc...
-[1739/2609] Building CommentHTMLTagsProperties.inc...
-[1740/2609] Updating CommentCommandList.inc...
-[1741/2609] Updating CommentHTMLTags.inc...
-[1742/2609] Updating AttrDump.inc...
-[1743/2609] Updating CommentHTMLTagsProperties.inc...
-[1744/2609] Building DiagnosticDriverKinds.inc...
-[1745/2609] Updating DiagnosticDriverKinds.inc...
-[1746/2609] Building arm_neon.inc...
-[1747/2609] Building DiagnosticCommonKinds.inc...
-[1748/2609] Updating arm_neon.inc...
-[1749/2609] Building DiagnosticLexKinds.inc...
-[1750/2609] Updating DiagnosticCommonKinds.inc...
-[1751/2609] Updating DiagnosticLexKinds.inc...
-[1752/2609] Building DiagnosticAnalysisKinds.inc...
-[1753/2609] Building DiagnosticGroups.inc...
-[1754/2609] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86AsmBackend.cpp.o
-[1755/2609] Updating DiagnosticGroups.inc...
-[1756/2609] Updating DiagnosticAnalysisKinds.inc...
-[1757/2609] Building DiagnosticCommentKinds.inc...
-[1758/2609] Building DiagnosticASTKinds.inc...
-[1759/2609] Updating DiagnosticCommentKinds.inc...
-[1760/2609] Updating DiagnosticASTKinds.inc...
-[1761/2609] Copying clang's avx2intrin.h...
-[1762/2609] Building DiagnosticFrontendKinds.inc...
-[1763/2609] Building DiagnosticSerializationKinds.inc...
-[1764/2609] Building AttrHasAttributeImpl.inc...
-[1765/2609] Updating DiagnosticFrontendKinds.inc...
-[1766/2609] Building DiagnosticParseKinds.inc...
-[1767/2609] Updating AttrHasAttributeImpl.inc...
-[1768/2609] Updating DiagnosticParseKinds.inc...
-[1769/2609] Updating DiagnosticSerializationKinds.inc...
-[1770/2609] Copying clang's vadefs.h...
-[1771/2609] Building AttrList.inc...
-[1772/2609] Copying clang's tgmath.h...
-[1773/2609] Updating AttrList.inc...
-[1774/2609] Building AttrTemplateInstantiate.inc...
-[1775/2609] Building CXX object lib/Target/X86/Utils/CMakeFiles/LLVMX86Utils.dir/X86ShuffleDecode.cpp.o
-[1776/2609] Building DiagnosticIndexName.inc...
-[1777/2609] Building AttrParserStringSwitches.inc...
-[1778/2609] Building DiagnosticSemaKinds.inc...
-[1779/2609] Updating DiagnosticIndexName.inc...
-[1780/2609] Updating AttrTemplateInstantiate.inc...
-[1781/2609] Updating DiagnosticSemaKinds.inc...
-[1782/2609] Linking CXX static library lib/libLLVMX86Utils.a
-[1783/2609] Building AttrParsedAttrList.inc...
-[1784/2609] Updating AttrParserStringSwitches.inc...
-[1785/2609] Building AttrParsedAttrKinds.inc...
-[1786/2609] Updating AttrParsedAttrList.inc...
-[1787/2609] Copying clang's inttypes.h...
-[1788/2609] Updating AttrParsedAttrKinds.inc...
-[1789/2609] Building Checkers.inc...
-[1790/2609] Copying clang's iso646.h...
-[1791/2609] Building AttrSpellingListIndex.inc...
-[1792/2609] Updating Checkers.inc...
-[1793/2609] Copying clang's altivec.h...
-[1794/2609] Building AttrParsedAttrImpl.inc...
-[1795/2609] Building AttrPCHWrite.inc...
-[1796/2609] Updating AttrSpellingListIndex.inc...
-[1797/2609] Copying clang's adxintrin.h...
-[1798/2609] Updating AttrPCHWrite.inc...
-[1799/2609] Building AttrPCHRead.inc...
-[1800/2609] Updating AttrParsedAttrImpl.inc...
-[1801/2609] Copying clang's avx512fintrin.h...
-[1802/2609] Copying clang's avx512erintrin.h...
-[1803/2609] Copying clang's ammintrin.h...
-[1804/2609] Copying clang's arm_acle.h...
-[1805/2609] Updating AttrPCHRead.inc...
-[1806/2609] Copying clang's avx512cdintrin.h...
-[1807/2609] Copying clang's avx512pfintrin.h...
-[1808/2609] Copying clang's cpuid.h...
-[1809/2609] Copying clang's avx512vlbwintrin.h...
-[1810/2609] Copying clang's avx512vlcdintrin.h...
-[1811/2609] Copying clang's avx512vlintrin.h...
-[1812/2609] Copying clang's avx512dqintrin.h...
-[1813/2609] Copying clang's avx512bwintrin.h...
-[1814/2609] Copying clang's avx512vldqintrin.h...
-[1815/2609] Copying clang's avx512vbmiintrin.h...
-[1816/2609] Copying clang's avx512vbmivlintrin.h...
-[1817/2609] Copying clang's avxintrin.h...
-[1818/2609] Copying clang's bmi2intrin.h...
-[1819/2609] Copying clang's bmiintrin.h...
-[1820/2609] Copying clang's tbmintrin.h...
-[1821/2609] Copying clang's __clang_cuda_cmath.h...
-[1822/2609] Copying clang's __clang_cuda_math_forward_declares.h...
-[1823/2609] Copying clang's __clang_cuda_runtime_wrapper.h...
-[1824/2609] Copying clang's fmaintrin.h...
-[1825/2609] Copying clang's pkuintrin.h...
-[1826/2609] Copying clang's htmintrin.h...
-[1827/2609] Copying clang's ia32intrin.h...
-[1828/2609] Copying clang's htmxlintrin.h...
-[1829/2609] Copying clang's cuda_builtin_vars.h...
-[1830/2609] Copying clang's float.h...
-[1831/2609] Copying clang's f16cintrin.h...
-[1832/2609] Copying clang's fxsrintrin.h...
-[1833/2609] Copying clang's fma4intrin.h...
-[1834/2609] Copying clang's immintrin.h...
-[1835/2609] Copying clang's limits.h...
-[1836/2609] Copying clang's emmintrin.h...
-[1837/2609] Copying clang's rdseedintrin.h...
-[1838/2609] Copying clang's Intrin.h...
-[1839/2609] Copying clang's module.modulemap...
-[1840/2609] Copying clang's rtmintrin.h...
-[1841/2609] Copying clang's mm3dnow.h...
-[1842/2609] Copying clang's prfchwintrin.h...
-[1843/2609] Copying clang's nmmintrin.h...
-[1844/2609] Copying clang's lzcntintrin.h...
-[1845/2609] Copying clang's mmintrin.h...
-[1846/2609] Copying clang's pmmintrin.h...
-[1847/2609] Copying clang's popcntintrin.h...
-[1848/2609] Copying clang's s390intrin.h...
-[1849/2609] Copying clang's stdalign.h...
-[1850/2609] Copying clang's mm_malloc.h...
-[1851/2609] Copying clang's stdarg.h...
-[1852/2609] Copying clang's smmintrin.h...
-[1853/2609] Copying clang's stdatomic.h...
-[1854/2609] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFObjectWriter.cpp.o
-[1855/2609] Copying clang's shaintrin.h...
-[1856/2609] Copying clang's stdnoreturn.h...
-[1857/2609] Copying clang's vecintrin.h...
-[1858/2609] Copying clang's varargs.h...
-[1859/2609] Copying clang's stdbool.h...
-[1860/2609] Copying clang's stddef.h...
-[1861/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupBWInsts.cpp.o
-[1862/2609] Copying clang's tmmintrin.h...
-[1863/2609] Copying clang's __wmmintrin_aes.h...
-[1864/2609] Copying clang's unwind.h...
-[1865/2609] Copying clang's stdint.h...
-[1866/2609] Copying clang's wmmintrin.h...
-[1867/2609] Copying clang's __wmmintrin_pclmul.h...
-[1868/2609] Copying clang's xsaveintrin.h...
-[1869/2609] Copying clang's __stddef_max_align_t.h...
-[1870/2609] Copying clang's x86intrin.h...
-[1871/2609] Copying clang's xmmintrin.h...
-[1872/2609] Copying clang's xopintrin.h...
-[1873/2609] Copying clang's xsavecintrin.h...
-[1874/2609] Copying clang's xtestintrin.h...
-[1875/2609] Copying clang's avx512ifmaintrin.h...
-[1876/2609] Copying clang's xsavesintrin.h...
-[1877/2609] Copying clang's avx512ifmavlintrin.h...
-[1878/2609] Copying clang's xsaveoptintrin.h...
-[1879/2609] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFStreamer.cpp.o
-[1880/2609] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLParser.cpp.o
-[1881/2609] Linking CXX static library lib/libLLVMAsmParser.a
-[1882/2609] Generating SVNVersion.inc
--- Found Subversion: /usr/bin/svn (found version "1.8.8") 
-[1883/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86WinEHState.cpp.o
-[1884/2609] Building CXX object lib/Target/X86/TargetInfo/CMakeFiles/LLVMX86Info.dir/X86TargetInfo.cpp.o
-[1885/2609] Building arm_neon.h...
-[1886/2609] Updating arm_neon.h...
-[1887/2609] Linking CXX static library lib/libLLVMX86Info.a
-[1888/2609] Copying clang's arm_neon.h...
-[1889/2609] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86ELFObjectWriter.cpp.o
-[1890/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FrameLowering.cpp.o
-[1891/2609] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCAsmInfo.cpp.o
-[1892/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86OptimizeLEAs.cpp.o
-[1893/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/LinePrinter.cpp.o
-[1894/2609] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MachObjectWriter.cpp.o
-[1895/2609] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCCodeEmitter.cpp.o
-[1896/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypedefDumper.cpp.o
-[1897/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/VariableDumper.cpp.o
-[1898/2609] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageFilters.cpp.o
-[1899/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/OperatorPrecedence.cpp.o
-[1900/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypeDumper.cpp.o
-[1901/2609] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/FunctionDumper.cpp.o
-[1902/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/LangOptions.cpp.o
-[1903/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/ObjCRuntime.cpp.o
-[1904/2609] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageReport.cpp.o
-[1905/2609] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/obj2yaml.cpp.o
-[1906/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/DiagnosticOptions.cpp.o
-[1907/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86InstrInfo.cpp.o
-[1908/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/TokenKinds.cpp.o
-[1909/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/HeaderMap.cpp.o
-[1910/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/CharInfo.cpp.o
-[1911/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/FileSystemStatCache.cpp.o
-[1912/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Sanitizers.cpp.o
-[1913/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPConditionalDirectiveRecord.cpp.o
-[1914/2609] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/coff2yaml.cpp.o
-[1915/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/OpenMPKinds.cpp.o
-[1916/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Builtins.cpp.o
-[1917/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/VersionTuple.cpp.o
-[1918/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/MacroArgs.cpp.o
-[1919/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/FileManager.cpp.o
-[1920/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Version.cpp.o
-[1921/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SanitizerBlacklist.cpp.o
-[1922/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Attributes.cpp.o
-[1923/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SourceLocation.cpp.o
-[1924/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Warnings.cpp.o
-[1925/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/IdentifierTable.cpp.o
-[1926/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/TargetInfo.cpp.o
-[1927/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Module.cpp.o
-[1928/2609] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCTargetDesc.cpp.o
-[1929/2609] Linking CXX static library lib/libLLVMX86Desc.a
-[1930/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Diagnostic.cpp.o
-[1931/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/LiteralSupport.cpp.o
-[1932/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/DiagnosticIDs.cpp.o
-[1933/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPCallbacks.cpp.o
-[1934/2609] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86DisassemblerDecoder.cpp.o
-[1935/2609] Linking CXX static library lib/libLLVMX86Disassembler.a
-[1936/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/MacroInfo.cpp.o
-[1937/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/HeaderSearch.cpp.o
-[1938/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/ScratchBuffer.cpp.o
-[1939/2609] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmParser.cpp.o
-[1940/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Lexer.cpp.o
-[1941/2609] Linking CXX static library lib/libLLVMX86AsmParser.a
-[1942/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPCaching.cpp.o
-[1943/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PreprocessorLexer.cpp.o
-[1944/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PreprocessingRecord.cpp.o
-[1945/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/TokenConcatenation.cpp.o
-[1946/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseCXXInlineMethods.cpp.o
-[1947/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CXXInheritance.cpp.o
-[1948/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PTHLexer.cpp.o
-[1949/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SourceManager.cpp.o
-[1950/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelDAGToDAG.cpp.o
-[1951/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/TokenLexer.cpp.o
-[1952/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPExpressions.cpp.o
-[1953/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/VirtualFileSystem.cpp.o
-[1954/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPLexerChange.cpp.o
-[1955/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Pragma.cpp.o
-[1956/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTConsumer.cpp.o
-[1957/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPDirectives.cpp.o
-[1958/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Preprocessor.cpp.o
-[1959/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/APValue.cpp.o
-[1960/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FastISel.cpp.o
-[1961/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentCommandTraits.cpp.o
-[1962/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentBriefParser.cpp.o
-[1963/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseAST.cpp.o
-[1964/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPMacroExpansion.cpp.o
-[1965/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTTypeTraits.cpp.o
-[1966/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseInit.cpp.o
-[1967/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseTentative.cpp.o
-[1968/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentLexer.cpp.o
-[1969/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseStmtAsm.cpp.o
-[1970/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseOpenMP.cpp.o
-[1971/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Comment.cpp.o
-[1972/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclarationName.cpp.o
-[1973/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseTemplate.cpp.o
-[1974/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseExprCXX.cpp.o
-[1975/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentParser.cpp.o
-[1976/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseStmt.cpp.o
-[1977/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclGroup.cpp.o
-[1978/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParsePragma.cpp.o
-[1979/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseExpr.cpp.o
-[1980/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTDiagnostic.cpp.o
-[1981/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseDeclCXX.cpp.o
-[1982/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclFriend.cpp.o
-[1983/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseObjc.cpp.o
-[1984/2609] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/ModuleMap.cpp.o
-[1985/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/Parser.cpp.o
-[1986/2609] Linking CXX static library lib/libclangLex.a
-[1987/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprClassification.cpp.o
-[1988/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclOpenMP.cpp.o
-[1989/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentSema.cpp.o
-[1990/2609] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Targets.cpp.o
-[1991/2609] Linking CXX static library lib/libclangBasic.a
-[1992/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExternalASTSource.cpp.o
-[1993/2609] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseDecl.cpp.o
-[1994/2609] Linking CXX static library lib/libclangParse.a
-[1995/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprObjC.cpp.o
-[1996/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/AttrImpl.cpp.o
-[1997/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclCXX.cpp.o
-[1998/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclBase.cpp.o
-[1999/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/InheritViz.cpp.o
-[2000/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumCXXABI.cpp.o
-[2001/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclObjC.cpp.o
-[2002/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RawCommentList.cpp.o
-[2003/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/SelectorLocationsKind.cpp.o
-[2004/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/NSAPI.cpp.o
-[2005/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/MicrosoftCXXABI.cpp.o
-[2006/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtIterator.cpp.o
-[2007/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ParentMap.cpp.o
-[2008/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclTemplate.cpp.o
-[2009/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/NestedNameSpecifier.cpp.o
-[2010/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Mangle.cpp.o
-[2011/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclPrinter.cpp.o
-[2012/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprCXX.cpp.o
-[2013/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/OpenMPClause.cpp.o
-[2014/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RecordLayout.cpp.o
-[2015/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtCXX.cpp.o
-[2016/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Decl.cpp.o
-[2017/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtObjC.cpp.o
-[2018/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTImporter.cpp.o
-[2019/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtViz.cpp.o
-[2020/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTDumper.cpp.o
-[2021/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtOpenMP.cpp.o
-[2022/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateName.cpp.o
-[2023/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Stmt.cpp.o
-[2024/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/IdentifierResolver.cpp.o
-[2025/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateBase.cpp.o
-[2026/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Expr.cpp.o
-[2027/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTTBuilder.cpp.o
-[2028/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/MicrosoftMangle.cpp.o
-[2029/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypeLoc.cpp.o
-[2030/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RecordLayoutBuilder.cpp.o
-[2031/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumMangle.cpp.o
-[2032/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/DelayedDiagnostic.cpp.o
-[2033/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypePrinter.cpp.o
-[2034/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaConsumer.cpp.o
-[2035/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/CodeCompleteConsumer.cpp.o
-[2036/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/Scope.cpp.o
-[2037/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtProfile.cpp.o
-[2038/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/DeclSpec.cpp.o
-[2039/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/MultiplexExternalSemaSource.cpp.o
-[2040/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/JumpDiagnostics.cpp.o
-[2041/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/ScopeInfo.cpp.o
-[2042/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Type.cpp.o
-[2043/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaAttr.cpp.o
-[2044/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AttributeList.cpp.o
-[2045/2609] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/VariantValue.cpp.o
-[2046/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaAccess.cpp.o
-[2047/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtPrinter.cpp.o
-[2048/2609] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Diagnostics.cpp.o
-[2049/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCXXScopeSpec.cpp.o
-[2050/2609] Building CXX object tools/clang/lib/ASTMatchers/CMakeFiles/clangASTMatchers.dir/ASTMatchersInternal.cpp.o
-[2051/2609] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Parser.cpp.o
-[2052/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCoroutine.cpp.o
-[2053/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCUDA.cpp.o
-[2054/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCast.cpp.o
-[2055/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExceptionSpec.cpp.o
-[2056/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaFixItUtils.cpp.o
-[2057/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTableBuilder.cpp.o
-[2058/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprMember.cpp.o
-[2059/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/Sema.cpp.o
-[2060/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmtAttr.cpp.o
-[2061/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/TypeLocBuilder.cpp.o
-[2062/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaLambda.cpp.o
-[2063/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaPseudoObject.cpp.o
-[2064/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmtAsm.cpp.o
-[2065/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AnalysisBasedWarnings.cpp.o
-[2066/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprObjC.cpp.o
-[2067/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTContext.cpp.o
-[2068/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaObjCProperty.cpp.o
-[2069/2609] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprConstant.cpp.o
-[2070/2609] Linking CXX static library lib/libclangAST.a
-[2071/2609] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelLowering.cpp.o
-[2072/2609] Linking CXX static library lib/libLLVMX86CodeGen.a
-[2073/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaInit.cpp.o
-[2074/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCodeComplete.cpp.o
-[2075/2609] Building CXX object tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o
-[2076/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaChecking.cpp.o
-[2077/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaLookup.cpp.o
-[2078/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclAttr.cpp.o
-[2079/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/BackendUtil.cpp.o
-[2080/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDABuiltin.cpp.o
-[2081/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDANV.cpp.o
-[2082/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCXXABI.cpp.o
-[2083/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiateDecl.cpp.o
-[2084/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDARuntime.cpp.o
-[2085/2609] Building CXX object tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
-[2086/2609] Building CXX object tools/llvm-ar/CMakeFiles/llvm-ar.dir/llvm-ar.cpp.o
-[2087/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGAtomic.cpp.o
-[2088/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaOverload.cpp.o
-[2089/2609] Linking CXX executable bin/llvm-ar
-[2090/2609] Generating ../../bin/llvm-ranlib
-[2091/2609] Generating ../../bin/llvm-lib
-[2092/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCXX.cpp.o
-[2093/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclObjC.cpp.o
-[2094/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCleanup.cpp.o
-[2095/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGBlocks.cpp.o
-[2096/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaType.cpp.o
-[2097/2609] Linking CXX shared library lib/libLTO.so
-[2098/2609] Building CXX object tools/gold/CMakeFiles/LLVMgold.dir/gold-plugin.cpp.o
-[2099/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCall.cpp.o
-[2100/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGClass.cpp.o
-[2101/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDecl.cpp.o
-[2102/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDeclCXX.cpp.o
-[2103/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGLoopInfo.cpp.o
-[2104/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateDeduction.cpp.o
-[2105/2609] Linking CXX shared module lib/LLVMgold.so
-[2106/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateVariadic.cpp.o
-[2107/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiate.cpp.o
-[2108/2609] Building CXX object tools/clang/lib/ASTMatchers/CMakeFiles/clangASTMatchers.dir/ASTMatchFinder.cpp.o
-[2109/2609] Linking CXX static library lib/libclangASTMatchers.a
-[2110/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDecl.cpp.o
-[2111/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGException.cpp.o
-[2112/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprAgg.cpp.o
-[2113/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprCXX.cpp.o
-[2114/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGBuiltin.cpp.o
-[2115/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmt.cpp.o
-[2116/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprComplex.cpp.o
-[2117/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenCLRuntime.cpp.o
-[2118/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCRuntime.cpp.o
-[2119/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDebugInfo.cpp.o
-[2120/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprConstant.cpp.o
-[2121/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExpr.cpp.o
-[2122/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenMPRuntimeNVPTX.cpp.o
-[2123/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenTBAA.cpp.o
-[2124/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenABITypes.cpp.o
-[2125/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjC.cpp.o
-[2126/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFGReachabilityAnalysis.cpp.o
-[2127/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclCXX.cpp.o
-[2128/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFGStmtMap.cpp.o
-[2129/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CodeInjector.cpp.o
-[2130/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenAction.cpp.o
-[2131/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGVTT.cpp.o
-[2132/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGRecordLayoutBuilder.cpp.o
-[2133/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprCXX.cpp.o
-[2134/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaOpenMP.cpp.o
-[2135/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCGNU.cpp.o
-[2136/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGVTables.cpp.o
-[2137/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprScalar.cpp.o
-[2138/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SanitizerMetadata.cpp.o
-[2139/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ModuleBuilder.cpp.o
-[2140/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CocoaConventions.cpp.o
-[2141/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGStmt.cpp.o
-[2142/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/Dominators.cpp.o
-[2143/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenTypes.cpp.o
-[2144/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/BodyFarm.cpp.o
-[2145/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SwiftCallingConv.cpp.o
-[2146/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCMac.cpp.o
-[2147/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ProgramPoint.cpp.o
-[2148/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PostOrderCFGView.cpp.o
-[2149/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ObjCNoReturn.cpp.o
-[2150/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/FormatString.cpp.o
-[2151/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplate.cpp.o
-[2152/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenFunction.cpp.o
-[2153/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PseudoConstantAnalysis.cpp.o
-[2154/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PrintfFormatString.cpp.o
-[2155/2609] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/DeltaTree.cpp.o
-[2156/2609] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/RewriteRope.cpp.o
-[2157/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyLogical.cpp.o
-[2158/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ScanfFormatString.cpp.o
-[2159/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/AnalysisDeclContext.cpp.o
-[2160/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CallGraph.cpp.o
-[2161/2609] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/EditedSource.cpp.o
-[2162/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyTIL.cpp.o
-[2163/2609] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/TokenRewriter.cpp.o
-[2164/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ReachableCode.cpp.o
-[2165/2609] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/Rewriter.cpp.o
-[2166/2609] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/Commit.cpp.o
-[2167/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenMPRuntime.cpp.o
-[2168/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ItaniumCXXABI.cpp.o
-[2169/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/LiveVariables.cpp.o
-[2170/2609] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/HTMLRewrite.cpp.o
-[2171/2609] Linking CXX static library lib/libclangRewrite.a
-[2172/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CoverageMappingGen.cpp.o
-[2173/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/PlistReporter.cpp.o
-[2174/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/Consumed.cpp.o
-[2175/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGStmtOpenMP.cpp.o
-[2176/2609] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/RewriteObjCFoundationAPI.cpp.o
-[2177/2609] Linking CXX static library lib/libclangEdit.a
-[2178/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFG.cpp.o
-[2179/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyCommon.cpp.o
-[2180/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/FileRemapper.cpp.o
-[2181/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/MicrosoftCXXABI.cpp.o
-[2182/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Action.cpp.o
-[2183/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ARCMTActions.cpp.o
-[2184/2609] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExpr.cpp.o
-[2185/2609] Linking CXX static library lib/libclangSema.a
-[2186/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/DriverOptions.cpp.o
-[2187/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Phases.cpp.o
-[2188/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Compilation.cpp.o
-[2189/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/UninitializedValues.cpp.o
-[2190/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/CrossWindowsToolChain.cpp.o
-[2191/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Job.cpp.o
-[2192/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Tool.cpp.o
-[2193/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/MinGWToolChain.cpp.o
-[2194/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/MSVCToolChain.cpp.o
-[2195/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/SanitizerArgs.cpp.o
-[2196/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/TargetInfo.cpp.o
-[2197/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Types.cpp.o
-[2198/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Multilib.cpp.o
-[2199/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChain.cpp.o
-[2200/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransformActions.cpp.o
-[2201/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ARCMT.cpp.o
-[2202/2609] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafety.cpp.o
-[2203/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/Module.cpp.o
-[2204/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenPGO.cpp.o
-[2205/2609] Linking CXX static library lib/libclangAnalysis.a
-[2206/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ModuleFileExtension.cpp.o
-[2207/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Driver.cpp.o
-[2208/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/GeneratePCH.cpp.o
-[2209/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ObjectFilePCHContainerOperations.cpp.o
-[2210/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTCommon.cpp.o
-[2211/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ChainedDiagnosticConsumer.cpp.o
-[2212/2609] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Registry.cpp.o
-[2213/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ModuleManager.cpp.o
-[2214/2609] Linking CXX static library lib/libclangDynamicASTMatchers.a
-[2215/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/GlobalModuleIndex.cpp.o
-[2216/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CodeGenOptions.cpp.o
-[2217/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTMerge.cpp.o
-[2218/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransAPIUses.cpp.o
-[2219/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChains.cpp.o
-[2220/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CacheTokens.cpp.o
-[2221/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransARCAssign.cpp.o
-[2222/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriterStmt.cpp.o
-[2223/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReaderStmt.cpp.o
-[2224/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendOptions.cpp.o
-[2225/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransGCCalls.cpp.o
-[2226/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CreateInvocationFromCommandLine.cpp.o
-[2227/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DependencyGraph.cpp.o
-[2228/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransEmptyStatementsAndDealloc.cpp.o
-[2229/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DiagnosticRenderer.cpp.o
-[2230/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransGCAttrs.cpp.o
-[2231/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriterDecl.cpp.o
-[2232/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProperties.cpp.o
-[2233/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransZeroOutPropsInDealloc.cpp.o
-[2234/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LangStandards.cpp.o
-[2235/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/HeaderIncludeGen.cpp.o
-[2236/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/PCHContainerOperations.cpp.o
-[2237/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LogDiagnosticPrinter.cpp.o
-[2238/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DependencyFile.cpp.o
-[2239/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/MultiplexConsumer.cpp.o
-[2240/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ChainedIncludesSource.cpp.o
-[2241/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/SerializedDiagnosticReader.cpp.o
-[2242/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransUnusedInitDelegate.cpp.o
-[2243/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LayoutOverrideSource.cpp.o
-[2244/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransRetainReleaseDealloc.cpp.o
-[2245/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/InitHeaderSearch.cpp.o
-[2246/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/PrintPreprocessedOutput.cpp.o
-[2247/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransUnbridgedCasts.cpp.o
-[2248/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnosticBuffer.cpp.o
-[2249/2609] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenModule.cpp.o
-[2250/2609] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Tools.cpp.o
-[2251/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendAction.cpp.o
-[2252/2609] Linking CXX static library lib/libclangDriver.a
-[2253/2609] Linking CXX static library lib/libclangCodeGen.a
-[2254/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnostic.cpp.o
-[2255/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnosticPrinter.cpp.o
-[2256/2609] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/FixItRewriter.cpp.o
-[2257/2609] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/ArgumentsAdjusters.cpp.o
-[2258/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/SerializedDiagnosticPrinter.cpp.o
-[2259/2609] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/FileMatchTrie.cpp.o
-[2260/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ModuleDependencyCollector.cpp.o
-[2261/2609] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteMacros.cpp.o
-[2262/2609] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteTest.cpp.o
-[2263/2609] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/Lookup.cpp.o
-[2264/2609] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/InclusionRewriter.cpp.o
-[2265/2609] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/HTMLPrint.cpp.o
-[2266/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTUnit.cpp.o
-[2267/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TestModuleFileExtension.cpp.o
-[2268/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProtectedScope.cpp.o
-[2269/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/VerifyDiagnosticConsumer.cpp.o
-[2270/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/APSIntType.cpp.o
-[2271/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendActions.cpp.o
-[2272/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/InitPreprocessor.cpp.o
-[2273/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CompilerInstance.cpp.o
-[2274/2609] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/Refactoring.cpp.o
-[2275/2609] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/Replacement.cpp.o
-[2276/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReaderDecl.cpp.o
-[2277/2609] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/CommonOptionsParser.cpp.o
-[2278/2609] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/FrontendActions.cpp.o
-[2279/2609] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/CompilationDatabase.cpp.o
-[2280/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CompilerInvocation.cpp.o
-[2281/2609] Building CXX object tools/clang/lib/FrontendTool/CMakeFiles/clangFrontendTool.dir/ExecuteCompilerInvocation.cpp.o
-[2282/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BlockCounter.cpp.o
-[2283/2609] Linking CXX static library lib/libclangFrontendTool.a
-[2284/2609] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/JSONCompilationDatabase.cpp.o
-[2285/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CommonBugCategories.cpp.o
-[2286/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexDecl.cpp.o
-[2287/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexSymbol.cpp.o
-[2288/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexingAction.cpp.o
-[2289/2609] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/QualTypeNames.cpp.o
-[2290/2609] Linking CXX static library lib/libclangToolingCore.a
-[2291/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexingContext.cpp.o
-[2292/2609] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/Tooling.cpp.o
-[2293/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/CodegenNameGenerator.cpp.o
-[2294/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/CommentToXML.cpp.o
-[2295/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransBlockObjCVariable.cpp.o
-[2296/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BasicValueFactory.cpp.o
-[2297/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/AnalyzerOptions.cpp.o
-[2298/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/AnalysisManager.cpp.o
-[2299/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/USRGeneration.cpp.o
-[2300/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerHelpers.cpp.o
-[2301/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/IssueHash.cpp.o
-[2302/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ObjCMT.cpp.o
-[2303/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Checker.cpp.o
-[2304/2609] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTConsumers.cpp.o
-[2305/2609] Linking CXX static library lib/libclangFrontend.a
-[2306/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ConstraintManager.cpp.o
-[2307/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerContext.cpp.o
-[2308/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/FunctionSummary.cpp.o
-[2309/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerRegistry.cpp.o
-[2310/2609] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/RefactoringCallbacks.cpp.o
-[2311/2609] Linking CXX static library lib/libclangTooling.a
-[2312/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransAutoreleasePool.cpp.o
-[2313/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/DynamicTypeMap.cpp.o
-[2314/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexTypeSourceInfo.cpp.o
-[2315/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CallEvent.cpp.o
-[2316/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Environment.cpp.o
-[2317/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExplodedGraph.cpp.o
-[2318/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CoreEngine.cpp.o
-[2319/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriter.cpp.o
-[2320/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/LoopWidening.cpp.o
-[2321/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporterVisitors.cpp.o
-[2322/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerManager.cpp.o
-[2323/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AllocationDiagnostics.cpp.o
-[2324/2609] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReader.cpp.o
-[2325/2609] Linking CXX static library lib/libclangSerialization.a
-[2326/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/PlistDiagnostics.cpp.o
-[2327/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineC.cpp.o
-[2328/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineObjC.cpp.o
-[2329/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/HTMLDiagnostics.cpp.o
-[2330/2609] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteObjC.cpp.o
-[2331/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineCXX.cpp.o
-[2332/2609] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/Transforms.cpp.o
-[2333/2609] Linking CXX static library lib/libclangARCMigrate.a
-[2334/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineCallAndReturn.cpp.o
-[2335/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/PathDiagnostic.cpp.o
-[2336/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SVals.cpp.o
-[2337/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SValBuilder.cpp.o
-[2338/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SubEngine.cpp.o
-[2339/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/MemRegion.cpp.o
-[2340/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/RangeConstraintManager.cpp.o
-[2341/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ProgramState.cpp.o
-[2342/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SimpleSValBuilder.cpp.o
-[2343/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SimpleConstraintManager.cpp.o
-[2344/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Store.cpp.o
-[2345/2609] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteModernObjC.cpp.o
-[2346/2609] Linking CXX static library lib/libclangRewriteFrontend.a
-[2347/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SymbolManager.cpp.o
-[2348/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngine.cpp.o
-[2349/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporter.cpp.o
-[2350/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AnalyzerStatsChecker.cpp.o
-[2351/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ArrayBoundChecker.cpp.o
-[2352/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ArrayBoundCheckerV2.cpp.o
-[2353/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BoolAssignmentChecker.cpp.o
-[2354/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BuiltinFunctionChecker.cpp.o
-[2355/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckObjCInstMethSignature.cpp.o
-[2356/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CastToStructChecker.cpp.o
-[2357/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CastSizeChecker.cpp.o
-[2358/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckerDocumentation.cpp.o
-[2359/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/RegionStore.cpp.o
-[2360/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CStringSyntaxChecker.cpp.o
-[2361/2609] Linking CXX static library lib/libclangStaticAnalyzerCore.a
-[2362/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ClangCheckers.cpp.o
-[2363/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CallAndMessageChecker.cpp.o
-[2364/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckSizeofPointer.cpp.o
-[2365/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CStringChecker.cpp.o
-[2366/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ChrootChecker.cpp.o
-[2367/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DivZeroChecker.cpp.o
-[2368/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckSecuritySyntaxOnly.cpp.o
-[2369/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BasicObjCFoundationChecks.cpp.o
-[2370/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DereferenceChecker.cpp.o
-[2371/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckObjCDealloc.cpp.o
-[2372/2609] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexBody.cpp.o
-[2373/2609] Linking CXX static library lib/libclangIndex.a
-[2374/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/FixedAddressChecker.cpp.o
-[2375/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DynamicTypeChecker.cpp.o
-[2376/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DirectIvarAssignment.cpp.o
-[2377/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ExprInspectionChecker.cpp.o
-[2378/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MacOSXAPIChecker.cpp.o
-[2379/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/GenericTaintChecker.cpp.o
-[2380/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/LLVMConventionsChecker.cpp.o
-[2381/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NSAutoreleasePoolChecker.cpp.o
-[2382/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MacOSKeychainAPIChecker.cpp.o
-[2383/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocOverflowSecurityChecker.cpp.o
-[2384/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NoReturnFunctionChecker.cpp.o
-[2385/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocSizeofChecker.cpp.o
-[2386/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCAtSyncChecker.cpp.o
-[2387/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NonNullParamChecker.cpp.o
-[2388/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NSErrorChecker.cpp.o
-[2389/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCContainersASTChecker.cpp.o
-[2390/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/IvarInvalidationChecker.cpp.o
-[2391/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCContainersChecker.cpp.o
-[2392/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCSuperDeallocChecker.cpp.o
-[2393/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCUnusedIVarsChecker.cpp.o
-[2394/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PointerSubChecker.cpp.o
-[2395/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NullabilityChecker.cpp.o
-[2396/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ReturnPointerRangeChecker.cpp.o
-[2397/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCSelfInitChecker.cpp.o
-[2398/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PointerArithChecker.cpp.o
-[2399/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PthreadLockChecker.cpp.o
-[2400/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ReturnUndefChecker.cpp.o
-[2401/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DebugCheckers.cpp.o
-[2402/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/SimpleStreamChecker.cpp.o
-[2403/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TaintTesterChecker.cpp.o
-[2404/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocChecker.cpp.o
-[2405/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/StackAddrEscapeChecker.cpp.o
-[2406/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelConsumer.cpp.o
-[2407/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/AffectedRangeManager.cpp.o
-[2408/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/FormatToken.cpp.o
-[2409/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TraversalChecker.cpp.o
-[2410/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefBranchChecker.cpp.o
-[2411/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/StreamChecker.cpp.o
-[2412/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefCapturedBlockVarChecker.cpp.o
-[2413/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/BreakableToken.cpp.o
-[2414/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefResultChecker.cpp.o
-[2415/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TestAfterDivZeroChecker.cpp.o
-[2416/2609] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o
-[2417/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefinedArraySubscriptChecker.cpp.o
-[2418/2609] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/diagtool_main.cpp.o
-[2419/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefinedAssignmentChecker.cpp.o
-[2420/2609] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/DiagTool.cpp.o
-[2421/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/FrontendActions.cpp.o
-[2422/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/ContinuationIndenter.cpp.o
-[2423/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UnreachableCodeChecker.cpp.o
-[2424/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DeadStoresChecker.cpp.o
-[2425/2609] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ListWarnings.cpp.o
-[2426/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VLASizeChecker.cpp.o
-[2427/2609] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/TreeView.cpp.o
-[2428/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/WhitespaceManager.cpp.o
-[2429/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UnixAPIChecker.cpp.o
-[2430/2609] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/DiagnosticNames.cpp.o
-[2431/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/helpers.c.o
-[2432/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VforkChecker.cpp.o
-[2433/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineParser.cpp.o
-[2434/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/disassemble.c.o
-[2435/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/CheckerRegistration.cpp.o
-[2436/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/calc.c.o
-[2437/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/diagnostic.c.o
-[2438/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/include-all.c.o
-[2439/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/metadata.c.o
-[2440/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/main.c.o
-[2441/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/module.c.o
-[2442/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/object.c.o
-[2443/2609] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/targets.c.o
-[2444/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineFormatter.cpp.o
-[2445/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VirtualCallChecker.cpp.o
-[2446/2609] Linking CXX executable bin/llvm-pdbdump
-[2447/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/TokenAnnotator.cpp.o
-[2448/2609] Building CXX object tools/llvm-split/CMakeFiles/llvm-split.dir/llvm-split.cpp.o
-[2449/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/RetainCountChecker.cpp.o
-[2450/2609] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/llvm-diff.cpp.o
-[2451/2609] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ShowEnabledWarnings.cpp.o
-[2452/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelInjector.cpp.o
-[2453/2609] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/BinaryHolder.cpp.o
-[2454/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DynamicTypePropagation.cpp.o
-[2455/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/IdenticalExprChecker.cpp.o
-[2456/2609] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/dsymutil.cpp.o
-[2457/2609] Building CXX object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/echo.cpp.o
-[2458/2609] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/ELFDump.cpp.o
-[2459/2609] Linking CXX executable bin/diagtool
-[2460/2609] Building CXX object tools/llvm-as/CMakeFiles/llvm-as.dir/llvm-as.cpp.o
-[2461/2609] Linking CXX executable bin/llvm-as
-[2462/2609] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachODebugMapParser.cpp.o
-[2463/2609] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachOUtils.cpp.o
-[2464/2609] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/COFFDump.cpp.o
-[2465/2609] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DebugMap.cpp.o
-[2466/2609] Linking CXX executable bin/llvm-split
-[2467/2609] Building CXX object tools/opt/CMakeFiles/opt.dir/AnalysisWrappers.cpp.o
-[2468/2609] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/gcov.cpp.o
-[2469/2609] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o
-[2470/2609] Linking CXX executable bin/llvm-c-test
-[2471/2609] Building CXX object tools/verify-uselistorder/CMakeFiles/verify-uselistorder.dir/verify-uselistorder.cpp.o
-[2472/2609] Linking CXX executable bin/llvm-cxxdump
-[2473/2609] Building CXX object tools/llvm-link/CMakeFiles/llvm-link.dir/llvm-link.cpp.o
-[2474/2609] Building CXX object tools/opt/CMakeFiles/opt.dir/GraphPrinters.cpp.o
-[2475/2609] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/llvm-cov.cpp.o
-[2476/2609] Linking CXX executable bin/verify-uselistorder
-[2477/2609] Building CXX object tools/llvm-mc/CMakeFiles/llvm-mc.dir/Disassembler.cpp.o
-[2478/2609] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/Format.cpp.o
-[2479/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Error.cpp.o
-[2480/2609] Linking CXX executable bin/llvm-link
-[2481/2609] Linking CXX static library lib/libclangFormat.a
-[2482/2609] Building CXX object tools/opt/CMakeFiles/opt.dir/BreakpointPrinter.cpp.o
-[2483/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCMissingSuperCallChecker.cpp.o
-[2484/2609] Building CXX object tools/opt/CMakeFiles/opt.dir/PassPrinters.cpp.o
-[2485/2609] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageSummaryInfo.cpp.o
-[2486/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFImportDumper.cpp.o
-[2487/2609] Building CXX object tools/opt/CMakeFiles/opt.dir/PrintSCC.cpp.o
-[2488/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PaddingChecker.cpp.o
-[2489/2609] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/TestingSupport.cpp.o
-[2490/2609] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/SourceCoverageView.cpp.o
-[2491/2609] Building CXX object tools/opt/CMakeFiles/opt.dir/NewPMDriver.cpp.o
-[2492/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ObjDumper.cpp.o
-[2493/2609] Building CXX object tools/llvm-mc/CMakeFiles/llvm-mc.dir/llvm-mc.cpp.o
-[2494/2609] Creating export file for BugpointPasses
-[2495/2609] Building CXX object tools/llvm-rtdyld/CMakeFiles/llvm-rtdyld.dir/llvm-rtdyld.cpp.o
-[2496/2609] Linking CXX executable bin/llvm-mc
-[2497/2609] Building CXX object tools/llc/CMakeFiles/llc.dir/llc.cpp.o
-[2498/2609] Linking CXX executable bin/llvm-rtdyld
-[2499/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMWinEHPrinter.cpp.o
-[2500/2609] Building CXX object tools/llvm-lto/CMakeFiles/llvm-lto.dir/llvm-lto.cpp.o
-[2501/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o
-[2502/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Win64EHDumper.cpp.o
-[2503/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o
-[2504/2609] Building CXX object tools/llvm-dwp/CMakeFiles/llvm-dwp.dir/llvm-dwp.cpp.o
-[2505/2609] Linking CXX executable bin/llvm-bcanalyzer
-[2506/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/llvm-readobj.cpp.o
-[2507/2609] Building CXX object tools/clang/tools/clang-format/CMakeFiles/clang-format.dir/ClangFormat.cpp.o
-[2508/2609] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CodeCoverage.cpp.o
-[2509/2609] Linking CXX executable bin/clang-format
-[2510/2609] Linking CXX executable bin/llvm-cov
-[2511/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o
-[2512/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/MachODumper.cpp.o
-[2513/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o
-[2514/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/LocalizationChecker.cpp.o
-[2515/2609] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffLog.cpp.o
-[2516/2609] Linking CXX static library lib/libclangStaticAnalyzerCheckers.a
-[2517/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o
-[2518/2609] Building CXX object tools/llvm-symbolizer/CMakeFiles/llvm-symbolizer.dir/llvm-symbolizer.cpp.o
-[2519/2609] Linking CXX executable bin/llc
-[2520/2609] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffConsumer.cpp.o
-[2521/2609] Linking CXX executable bin/llvm-dwp
-[2522/2609] Linking CXX executable bin/llvm-lto
-[2523/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o
-[2524/2609] Building CXX object tools/lli/CMakeFiles/lli.dir/OrcLazyJIT.cpp.o
-[2525/2609] Building CXX object tools/llvm-extract/CMakeFiles/llvm-extract.dir/llvm-extract.cpp.o
-[2526/2609] Building CXX object tools/sancov/CMakeFiles/sancov.dir/sancov.cc.o
-[2527/2609] Building CXX object tools/opt/CMakeFiles/opt.dir/opt.cpp.o
-[2528/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/BuildSystem.cpp.o
-[2529/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o
-[2530/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o
-[2531/2609] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o
-[2532/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCompilationDatabase.cpp.o
-[2533/2609] Building CXX object tools/lli/CMakeFiles/lli.dir/lli.cpp.o
-[2534/2609] Linking CXX executable bin/llvm-symbolizer
-[2535/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/ARCMigrate.cpp.o
-[2536/2609] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DifferenceEngine.cpp.o
-[2537/2609] Linking CXX executable bin/llvm-extract
-[2538/2609] Linking CXX executable bin/sancov
-[2539/2609] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/llvm-objdump.cpp.o
-[2540/2609] Linking CXX executable bin/llvm-diff
-[2541/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFDumper.cpp.o
-[2542/2609] Linking CXX executable bin/bugpoint
-[2543/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXLoadedDiagnostic.cpp.o
-[2544/2609] Linking CXX executable bin/lli
-[2545/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCXX.cpp.o
-[2546/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexUSRs.cpp.o
-[2547/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXComment.cpp.o
-[2548/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexDiagnostic.cpp.o
-[2549/2609] Linking CXX executable bin/opt
-[2550/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXSourceLocation.cpp.o
-[2551/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o
-[2552/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexInclusionStack.cpp.o
-[2553/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXString.cpp.o
-[2554/2609] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DwarfLinker.cpp.o
-[2555/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXStoredDiagnostic.cpp.o
-[2556/2609] Building CXX object tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o
-[2557/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexHigh.cpp.o
-[2558/2609] Building CXX object tools/clang/tools/arcmt-test/CMakeFiles/arcmt-test.dir/arcmt-test.cpp.o
-[2559/2609] Building CXX object tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o
-[2560/2609] Linking CXX executable bin/llvm-nm
-[2561/2609] Linking CXX shared module lib/BugpointPasses.so
-[2562/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCursor.cpp.o
-[2563/2609] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/MachODump.cpp.o
-[2564/2609] Linking CXX executable bin/arcmt-test
-[2565/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXIndexDataConsumer.cpp.o
-[2566/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o
-[2567/2609] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/AnalysisConsumer.cpp.o
-[2568/2609] Linking CXX static library lib/libclangStaticAnalyzerFrontend.a
-[2569/2609] Linking CXX executable bin/llvm-dsymutil
-[2570/2609] Linking CXX executable bin/llvm-objdump
-[2571/2609] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/elf2yaml.cpp.o
-[2572/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXType.cpp.o
-[2573/2609] Linking CXX executable bin/obj2yaml
-[2574/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o
-[2575/2609] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o
-[2576/2609] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o
-[2577/2609] Building CXX object tools/clang/tools/clang-check/CMakeFiles/clang-check.dir/ClangCheck.cpp.o
-[2578/2609] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o
-[2579/2609] Linking CXX executable bin/clang-check
-[2580/2609] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o
-[2581/2609] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o
-[2582/2609] Linking CXX executable bin/llvm-readobj
-[2583/2609] Linking CXX executable bin/clang-3.9
-[2584/2609] Creating executable symlink bin/clang
-[2585/2609] Linking CXX shared library lib/libclang.so.3.9
-[2586/2609] Creating library symlink lib/libclang.so
-[2587/2609] Building C object tools/clang/tools/c-arcmt-test/CMakeFiles/c-arcmt-test.dir/c-arcmt-test.c.o
-[2588/2609] Linking CXX executable bin/c-arcmt-test
-[2589/2609] Building C object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.o
-[2590/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Config.cpp.o
-[2591/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFieldsVisitor.cpp.o
-[2592/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Edge.cpp.o
-[2593/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckGCRootsVisitor.cpp.o
-[2594/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckDispatchVisitor.cpp.o
-[2595/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CollectVisitor.cpp.o
-[2596/2609] Building CXX object tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/ChromeClassTester.cpp.o
-[2597/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/RecordInfo.cpp.o
-[2598/2609] Building CXX object tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsAction.cpp.o
-[2599/2609] Building CXX object tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/CheckIPCVisitor.cpp.o
-[2600/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/DiagnosticsReporter.cpp.o
-[2601/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPlugin.cpp.o
-[2602/2609] Building CXX object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.o
-[2603/2609] Linking CXX executable bin/c-index-test
-[2604/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFinalizerVisitor.cpp.o
-[2605/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckTraceVisitor.cpp.o
-[2606/2609] Building CXX object tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsConsumer.cpp.o
-[2607/2609] Linking CXX shared module lib/libFindBadConstructs.so
-[2608/2609] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPluginConsumer.cpp.o
-[2609/2609] Linking CXX shared module lib/libBlinkGCPlugin.so
+ninja explain: deps for 'tools/llvm-dwp/CMakeFiles/llvm-dwp.dir/llvm-dwp.cpp.o' are missing
+ninja explain: tools/llvm-dwp/CMakeFiles/llvm-dwp.dir/llvm-dwp.cpp.o is dirty
+ninja explain: lib/libLLVMAArch64CodeGen.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64AsmParser.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAArch64Disassembler.a is dirty
+ninja explain: lib/libLLVMAMDGPUCodeGen.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmParser.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMAMDGPUDisassembler.a is dirty
+ninja explain: lib/libLLVMARMCodeGen.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMAsmParser.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMARMDisassembler.a is dirty
+ninja explain: lib/libLLVMBPFCodeGen.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMBPFDesc.a is dirty
+ninja explain: lib/libLLVMBPFInfo.a is dirty
+ninja explain: lib/libLLVMCppBackendCodeGen.a is dirty
+ninja explain: lib/libLLVMCppBackendInfo.a is dirty
+ninja explain: lib/libLLVMHexagonCodeGen.a is dirty
+ninja explain: lib/libLLVMHexagonAsmParser.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMHexagonDisassembler.a is dirty
+ninja explain: lib/libLLVMMipsCodeGen.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsAsmParser.a is dirty
+ninja explain: lib/libLLVMMipsDesc.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMipsDisassembler.a is dirty
+ninja explain: lib/libLLVMMSP430CodeGen.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMMSP430Desc.a is dirty
+ninja explain: lib/libLLVMMSP430Info.a is dirty
+ninja explain: lib/libLLVMNVPTXCodeGen.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXDesc.a is dirty
+ninja explain: lib/libLLVMNVPTXInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCCodeGen.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmParser.a is dirty
+ninja explain: lib/libLLVMPowerPCDesc.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMPowerPCDisassembler.a is dirty
+ninja explain: lib/libLLVMSparcCodeGen.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcAsmParser.a is dirty
+ninja explain: lib/libLLVMSparcDesc.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSparcDisassembler.a is dirty
+ninja explain: lib/libLLVMSystemZCodeGen.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZAsmParser.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMSystemZDisassembler.a is dirty
+ninja explain: lib/libLLVMX86CodeGen.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86AsmParser.a is dirty
+ninja explain: lib/libLLVMX86Desc.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMX86Disassembler.a is dirty
+ninja explain: lib/libLLVMXCoreCodeGen.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreDesc.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMXCoreDisassembler.a is dirty
+ninja explain: lib/libLLVMWebAssemblyCodeGen.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDesc.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyDisassembler.a is dirty
+ninja explain: lib/libLLVMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMDebugInfoDWARF.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMGlobalISel.a is dirty
+ninja explain: lib/libLLVMAArch64Desc.a is dirty
+ninja explain: lib/libLLVMAArch64AsmPrinter.a is dirty
+ninja explain: lib/libLLVMAArch64Info.a is dirty
+ninja explain: lib/libLLVMAArch64Utils.a is dirty
+ninja explain: lib/libLLVMipo.a is dirty
+ninja explain: lib/libLLVMIRReader.a is dirty
+ninja explain: lib/libLLVMAsmParser.a is dirty
+ninja explain: lib/libLLVMLinker.a is dirty
+ninja explain: lib/libLLVMVectorize.a is dirty
+ninja explain: lib/libLLVMAMDGPUDesc.a is dirty
+ninja explain: lib/libLLVMAMDGPUAsmPrinter.a is dirty
+ninja explain: lib/libLLVMAMDGPUInfo.a is dirty
+ninja explain: lib/libLLVMAMDGPUUtils.a is dirty
+ninja explain: lib/libLLVMARMDesc.a is dirty
+ninja explain: lib/libLLVMARMAsmPrinter.a is dirty
+ninja explain: lib/libLLVMARMInfo.a is dirty
+ninja explain: lib/libLLVMBPFAsmPrinter.a is dirty
+ninja explain: lib/libLLVMHexagonDesc.a is dirty
+ninja explain: lib/libLLVMHexagonInfo.a is dirty
+ninja explain: lib/libLLVMMipsAsmPrinter.a is dirty
+ninja explain: lib/libLLVMMipsInfo.a is dirty
+ninja explain: lib/libLLVMMSP430AsmPrinter.a is dirty
+ninja explain: lib/libLLVMNVPTXAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCAsmPrinter.a is dirty
+ninja explain: lib/libLLVMPowerPCInfo.a is dirty
+ninja explain: lib/libLLVMSparcAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSparcInfo.a is dirty
+ninja explain: lib/libLLVMSystemZDesc.a is dirty
+ninja explain: lib/libLLVMSystemZAsmPrinter.a is dirty
+ninja explain: lib/libLLVMSystemZInfo.a is dirty
+ninja explain: lib/libLLVMX86AsmPrinter.a is dirty
+ninja explain: lib/libLLVMX86Utils.a is dirty
+ninja explain: lib/libLLVMX86Info.a is dirty
+ninja explain: lib/libLLVMXCoreAsmPrinter.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
+ninja explain: lib/libLLVMWebAssemblyAsmPrinter.a is dirty
+ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
+ninja explain: lib/libLLVMSelectionDAG.a is dirty
+ninja explain: lib/libLLVMCodeGen.a is dirty
+ninja explain: lib/libLLVMTarget.a is dirty
+ninja explain: lib/libLLVMScalarOpts.a is dirty
+ninja explain: lib/libLLVMInstCombine.a is dirty
+ninja explain: lib/libLLVMBitWriter.a is dirty
+ninja explain: lib/libLLVMInstrumentation.a is dirty
+ninja explain: lib/libLLVMProfileData.a is dirty
+ninja explain: lib/libLLVMTransformUtils.a is dirty
+ninja explain: lib/libLLVMAnalysis.a is dirty
+ninja explain: lib/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMMCDisassembler.a is dirty
+ninja explain: lib/libLLVMObject.a is dirty
+ninja explain: lib/libLLVMMCParser.a is dirty
+ninja explain: lib/libLLVMMC.a is dirty
+ninja explain: lib/libLLVMBitReader.a is dirty
+ninja explain: lib/libLLVMCore.a is dirty
+ninja explain: lib/libLLVMSupport.a is dirty
+ninja explain: bin/llvm-dwp is dirty
+ninja explain: bin/bugpoint is dirty
+[1/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o
+[2/2627] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.c.o
+[3/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/circular_raw_ostream.cpp.o
+[4/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
+[5/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o
+[6/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/APSInt.cpp.o
+[7/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMBuildAttrs.cpp.o
+[8/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ARMWinEH.cpp.o
+[9/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Allocator.cpp.o
+[10/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BlockFrequency.cpp.o
+[11/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/BranchProbability.cpp.o
+[12/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CrashRecoveryContext.cpp.o
+[13/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/COM.cpp.o
+[14/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/CommandLine.cpp.o
+[15/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Compression.cpp.o
+[16/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTFWrapper.cpp.o
+[17/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataExtractor.cpp.o
+[18/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DataStream.cpp.o
+[19/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Debug.cpp.o
+[20/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DeltaAlgorithm.cpp.o
+[21/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DAGDeltaAlgorithm.cpp.o
+[22/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Dwarf.cpp.o
+[23/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Error.cpp.o
+[24/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ErrorHandling.cpp.o
+[25/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileUtilities.cpp.o
+[26/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FileOutputBuffer.cpp.o
+[27/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FoldingSet.cpp.o
+[28/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/FormattedStream.cpp.o
+[29/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/GraphWriter.cpp.o
+[30/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Hashing.cpp.o
+[31/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntEqClasses.cpp.o
+[32/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntervalMap.cpp.o
+[33/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/IntrusiveRefCntPtr.cpp.o
+[34/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/JamCRC.cpp.o
+[35/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LEB128.cpp.o
+[36/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LineIterator.cpp.o
+[37/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Locale.cpp.o
+[38/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/LockFileManager.cpp.o
+[39/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ManagedStatic.cpp.o
+[40/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MathExtras.cpp.o
+[41/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryBuffer.cpp.o
+[42/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MemoryObject.cpp.o
+[43/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/MD5.cpp.o
+[44/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Options.cpp.o
+[45/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PluginLoader.cpp.o
+[46/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/PrettyStackTrace.cpp.o
+[47/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RandomNumberGenerator.cpp.o
+[48/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StreamingMemoryObject.cpp.o
+[49/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Regex.cpp.o
+[50/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ScaledNumber.cpp.o
+[51/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallPtrSet.cpp.o
+[52/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SmallVector.cpp.o
+[53/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SourceMgr.cpp.o
+[54/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SpecialCaseList.cpp.o
+[55/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Statistic.cpp.o
+[56/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringExtras.cpp.o
+[57/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringMap.cpp.o
+[58/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringPool.cpp.o
+[59/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/StringRef.cpp.o
+[60/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SystemUtils.cpp.o
+[61/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetParser.cpp.o
+[62/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadPool.cpp.o
+[63/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Timer.cpp.o
+[64/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ToolOutputFile.cpp.o
+[65/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Triple.cpp.o
+[66/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Twine.cpp.o
+[67/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Unicode.cpp.o
+[68/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLParser.cpp.o
+[69/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/YAMLTraits.cpp.o
+[70/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_os_ostream.cpp.o
+[71/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/raw_ostream.cpp.o
+[72/2627] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regcomp.c.o
+[73/2627] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regerror.c.o
+[74/2627] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regexec.c.o
+[75/2627] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regfree.c.o
+[76/2627] Building C object lib/Support/CMakeFiles/LLVMSupport.dir/regstrlcpy.c.o
+[77/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Atomic.cpp.o
+[78/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.o
+[79/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Errno.cpp.o
+[80/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o
+[81/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Memory.cpp.o
+[82/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Mutex.cpp.o
+[83/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Path.cpp.o
+[84/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Process.cpp.o
+[85/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Program.cpp.o
+[86/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/RWMutex.cpp.o
+[87/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/SearchForAddressOfSpecialSymbol.cpp.o
+[88/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Signals.cpp.o
+[89/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TargetRegistry.cpp.o
+[90/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/ThreadLocal.cpp.o
+[91/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Threading.cpp.o
+[92/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/TimeValue.cpp.o
+[93/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Valgrind.cpp.o
+[94/2627] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/Watchdog.cpp.o
+[95/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmMatcherEmitter.cpp.o
+[96/2627] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGParser.cpp.o
+[97/2627] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o
+[98/2627] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/TableGenBackend.cpp.o
+[99/2627] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/StringMatcher.cpp.o
+[100/2627] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/SetTheory.cpp.o
+[101/2627] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
+[102/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeEmitterGen.cpp.o
+[103/2627] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
+[104/2627] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
+[105/2627] Linking CXX static library lib/libLLVMSupport.a
+[106/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterEmitter.cpp.o
+[107/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/AsmWriterInst.cpp.o
+[108/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CallingConvEmitter.cpp.o
+[109/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/Attributes.cpp.o
+[110/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86DisassemblerTables.cpp.o
+[111/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o
+[112/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenInstruction.cpp.o
+[113/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenMapTable.cpp.o
+[114/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenRegisters.cpp.o
+[115/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenSchedule.cpp.o
+[116/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CodeGenTarget.cpp.o
+[117/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelEmitter.cpp.o
+[118/2627] Linking CXX static library lib/libLLVMTableGen.a
+[119/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o
+[120/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherGen.cpp.o
+[121/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o
+[122/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DAGISelMatcher.cpp.o
+[123/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o
+[124/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/DisassemblerEmitter.cpp.o
+[125/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FastISelEmitter.cpp.o
+[126/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o
+[127/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/InstrInfoEmitter.cpp.o
+[128/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/IntrinsicEmitter.cpp.o
+[129/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/OptParserEmitter.cpp.o
+[130/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o
+[131/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/RegisterInfoEmitter.cpp.o
+[132/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/SubtargetEmitter.cpp.o
+[133/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/TableGen.cpp.o
+[134/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86ModRMFilters.cpp.o
+[135/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/X86RecognizableInstr.cpp.o
+[136/2627] Building CXX object utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/CTagsEmitter.cpp.o
+[137/2627] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCRelocationInfo.cpp.o
+[138/2627] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCSymbolizer.cpp.o
+[139/2627] Creating export file for LLVMHello
+[140/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCDwarf.cpp.o
+[141/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCContext.cpp.o
+[142/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmStreamer.cpp.o
+[143/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAssembler.cpp.o
+[144/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeGenInfo.cpp.o
+[145/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeEmitter.cpp.o
+[146/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCCodeView.cpp.o
+[147/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrAnalysis.cpp.o
+[148/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfo.cpp.o
+[149/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoDarwin.cpp.o
+[150/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoCOFF.cpp.o
+[151/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmInfoELF.cpp.o
+[152/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ELFObjectWriter.cpp.o
+[153/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/ConstantPools.cpp.o
+[154/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCAsmBackend.cpp.o
+[155/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCExpr.cpp.o
+[156/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFObjectTargetWriter.cpp.o
+[157/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCELFStreamer.cpp.o
+[158/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCFragment.cpp.o
+[159/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInst.cpp.o
+[160/2627] Linking CXX executable bin/llvm-tblgen
+[161/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstPrinter.cpp.o
+[162/2627] Building Attributes.inc...
+[163/2627] Updating Attributes.inc...
+[164/2627] Building Intrinsics.gen...
+[165/2627] Building AttributesCompatFunc.inc...
+[166/2627] Updating AttributesCompatFunc.inc...
+[167/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCInstrDesc.cpp.o
+[168/2627] Updating Intrinsics.gen...
+[169/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AutoUpgrade.cpp.o
+[170/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCStrategy.cpp.o
+[171/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Attributes.cpp.o
+[172/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/AsmWriter.cpp.o
+[173/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/BasicBlock.cpp.o
+[174/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGRRList.cpp.o
+[175/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGSDNodes.cpp.o
+[176/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Comdat.cpp.o
+[177/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Constants.cpp.o
+[178/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantFold.cpp.o
+[179/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ConstantRange.cpp.o
+[180/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Core.cpp.o
+[181/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DIBuilder.cpp.o
+[182/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DataLayout.cpp.o
+[183/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfo.cpp.o
+[184/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugLoc.cpp.o
+[185/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DebugInfoMetadata.cpp.o
+[186/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Dominators.cpp.o
+[187/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticInfo.cpp.o
+[188/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/DiagnosticPrinter.cpp.o
+[189/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Function.cpp.o
+[190/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GCOV.cpp.o
+[191/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/GVMaterializer.cpp.o
+[192/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Globals.cpp.o
+[193/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRBuilder.cpp.o
+[194/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IRPrintingPasses.cpp.o
+[195/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/InlineAsm.cpp.o
+[196/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instruction.cpp.o
+[197/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Instructions.cpp.o
+[198/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/IntrinsicInst.cpp.o
+[199/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContext.cpp.o
+[200/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LLVMContextImpl.cpp.o
+[201/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/LegacyPassManager.cpp.o
+[202/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/MDBuilder.cpp.o
+[203/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Mangler.cpp.o
+[204/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Metadata.cpp.o
+[205/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Module.cpp.o
+[206/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ModuleSummaryIndex.cpp.o
+[207/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Operator.cpp.o
+[208/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Pass.cpp.o
+[209/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassManager.cpp.o
+[210/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/PassRegistry.cpp.o
+[211/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Statepoint.cpp.o
+[212/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Type.cpp.o
+[213/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/TypeFinder.cpp.o
+[214/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Use.cpp.o
+[215/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/User.cpp.o
+[216/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Value.cpp.o
+[217/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueTypes.cpp.o
+[218/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/ValueSymbolTable.cpp.o
+[219/2627] Building CXX object lib/IR/CMakeFiles/LLVMCore.dir/Verifier.cpp.o
+[220/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Analysis.cpp.o
+[221/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AllocationOrder.cpp.o
+[222/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BasicTargetTransformInfo.cpp.o
+[223/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AggressiveAntiDepBreaker.cpp.o
+[224/2627] Building CXX object lib/IRReader/CMakeFiles/LLVMIRReader.dir/IRReader.cpp.o
+[225/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/AtomicExpandPass.cpp.o
+[226/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CriticalAntiDepBreaker.cpp.o
+[227/2627] Linking CXX static library lib/libLLVMIRReader.a
+[228/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BranchFolding.cpp.o
+[229/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/BuiltinGCs.cpp.o
+[230/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CalcSpillWeights.cpp.o
+[231/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CallingConvLower.cpp.o
+[232/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGen.cpp.o
+[233/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o
+[234/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DeadMachineInstructionElim.cpp.o
+[235/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandPostRAPseudos.cpp.o
+[236/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DFAPacketizer.cpp.o
+[237/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/DwarfEHPrepare.cpp.o
+[238/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EarlyIfConversion.cpp.o
+[239/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/EdgeBundles.cpp.o
+[240/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExecutionDepsFix.cpp.o
+[241/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalAnalysis.cpp.o
+[242/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ExpandISelPseudos.cpp.o
+[243/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterleavedAccessPass.cpp.o
+[244/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FaultMaps.cpp.o
+[245/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/FuncletLayout.cpp.o
+[246/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadata.cpp.o
+[247/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCMetadataPrinter.cpp.o
+[248/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GCRootLowering.cpp.o
+[249/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineMulDivRem.cpp.o
+[250/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/GlobalMerge.cpp.o
+[251/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IfConversion.cpp.o
+[252/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ImplicitNullChecks.cpp.o
+[253/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InlineSpiller.cpp.o
+[254/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/InterferenceCache.cpp.o
+[255/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/IntrinsicLowering.cpp.o
+[256/2627] Linking CXX static library lib/libLLVMCore.a
+[257/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LatencyPriorityQueue.cpp.o
+[258/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LexicalScopes.cpp.o
+[259/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugValues.cpp.o
+[260/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveDebugVariables.cpp.o
+[261/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LocalStackSlotAllocation.cpp.o
+[262/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveInterval.cpp.o
+[263/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveIntervalUnion.cpp.o
+[264/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LivePhysRegs.cpp.o
+[265/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeCalc.cpp.o
+[266/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRangeEdit.cpp.o
+[267/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveRegMatrix.cpp.o
+[268/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveStackAnalysis.cpp.o
+[269/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LiveVariables.cpp.o
+[270/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LLVMTargetMachine.cpp.o
+[271/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCopyPropagation.cpp.o
+[272/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockFrequencyInfo.cpp.o
+[273/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/LowerEmuTLS.cpp.o
+[274/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBasicBlock.cpp.o
+[275/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBlockPlacement.cpp.o
+[276/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineBranchProbabilityInfo.cpp.o
+[277/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCombiner.cpp.o
+[278/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominanceFrontier.cpp.o
+[279/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineCSE.cpp.o
+[280/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionAnalysis.cpp.o
+[281/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineDominators.cpp.o
+[282/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPass.cpp.o
+[283/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunction.cpp.o
+[284/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfoImpls.cpp.o
+[285/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineFunctionPrinterPass.cpp.o
+[286/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstrBundle.cpp.o
+[287/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineInstr.cpp.o
+[288/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLICM.cpp.o
+[289/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineLoopInfo.cpp.o
+[290/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineModuleInfo.cpp.o
+[291/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegisterInfo.cpp.o
+[292/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePassRegistry.cpp.o
+[293/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachinePostDominators.cpp.o
+[294/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineRegionInfo.cpp.o
+[295/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineTraceMetrics.cpp.o
+[296/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineScheduler.cpp.o
+[297/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSink.cpp.o
+[298/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineSSAUpdater.cpp.o
+[299/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIEliminationUtils.cpp.o
+[300/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MachineVerifier.cpp.o
+[301/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrinter.cpp.o
+[302/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/MIRPrintingPass.cpp.o
+[303/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/OptimizePHIs.cpp.o
+[304/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ParallelCG.cpp.o
+[305/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/Passes.cpp.o
+[306/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PeepholeOptimizer.cpp.o
+[307/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PHIElimination.cpp.o
+[308/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PostRASchedulerList.cpp.o
+[309/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScoreboardHazardRecognizer.cpp.o
+[310/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ProcessImplicitDefs.cpp.o
+[311/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PrologEpilogInserter.cpp.o
+[312/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/PseudoSourceValue.cpp.o
+[313/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBase.cpp.o
+[314/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocBasic.cpp.o
+[315/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocFast.cpp.o
+[316/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocGreedy.cpp.o
+[317/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegAllocPBQP.cpp.o
+[318/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterClassInfo.cpp.o
+[319/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterCoalescer.cpp.o
+[320/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterPressure.cpp.o
+[321/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/RegisterScavenging.cpp.o
+[322/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SafeStack.cpp.o
+[323/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAG.cpp.o
+[324/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGInstrs.cpp.o
+[325/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMapLivenessAnalysis.cpp.o
+[326/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ScheduleDAGPrinter.cpp.o
+[327/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShadowStackGCLowering.cpp.o
+[328/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/ShrinkWrap.cpp.o
+[329/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SjLjEHPrepare.cpp.o
+[330/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SlotIndexes.cpp.o
+[331/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SpillPlacement.cpp.o
+[332/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/SplitKit.cpp.o
+[333/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackColoring.cpp.o
+[334/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetFrameLoweringImpl.cpp.o
+[335/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackMaps.cpp.o
+[336/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackProtector.cpp.o
+[337/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/StackSlotColoring.cpp.o
+[338/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TailDuplication.cpp.o
+[339/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringObjectFileImpl.cpp.o
+[340/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetInstrInfo.cpp.o
+[341/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetLoweringBase.cpp.o
+[342/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TwoAddressInstructionPass.cpp.o
+[343/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetOptionsImpl.cpp.o
+[344/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetRegisterInfo.cpp.o
+[345/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/TargetSchedule.cpp.o
+[346/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/UnreachableBlockElim.cpp.o
+[347/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/VirtRegMap.cpp.o
+[348/2627] Building CXX object lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/WinEHPrepare.cpp.o
+[349/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorOps.cpp.o
+[350/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGFast.cpp.o
+[351/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypesGeneric.cpp.o
+[352/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ResourcePriorityQueue.cpp.o
+[353/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeVectorTypes.cpp.o
+[354/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeTypes.cpp.o
+[355/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeIntegerTypes.cpp.o
+[356/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeFloatTypes.cpp.o
+[357/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/LegalizeDAG.cpp.o
+[358/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/InstrEmitter.cpp.o
+[359/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FunctionLoweringInfo.cpp.o
+[360/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/FastISel.cpp.o
+[361/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/DAGCombiner.cpp.o
+[362/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELF.cpp.o
+[363/2627] Linking CXX static library lib/libLLVMCodeGen.a
+[364/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Archive.cpp.o
+[365/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ArchiveWriter.cpp.o
+[366/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/ScheduleDAGVLIW.cpp.o
+[367/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGBuilder.cpp.o
+[368/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAG.cpp.o
+[369/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGDumper.cpp.o
+[370/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGISel.cpp.o
+[371/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGPrinter.cpp.o
+[372/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/SelectionDAGTargetInfo.cpp.o
+[373/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/StatepointLowering.cpp.o
+[374/2627] Building CXX object lib/CodeGen/SelectionDAG/CMakeFiles/LLVMSelectionDAG.dir/TargetLowering.cpp.o
+[375/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AddressPool.cpp.o
+[376/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ARMException.cpp.o
+[377/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinter.cpp.o
+[378/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterDwarf.cpp.o
+[379/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/AsmPrinterInlineAsm.cpp.o
+[380/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIEHash.cpp.o
+[381/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DbgValueHistoryCalculator.cpp.o
+[382/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugHandlerBase.cpp.o
+[383/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DebugLocStream.cpp.o
+[384/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DIE.cpp.o
+[385/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfAccelTable.cpp.o
+[386/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCFIException.cpp.o
+[387/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfCompileUnit.cpp.o
+[388/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfDebug.cpp.o
+[389/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfExpression.cpp.o
+[390/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfFile.cpp.o
+[391/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfStringPool.cpp.o
+[392/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/DwarfUnit.cpp.o
+[393/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/EHStreamer.cpp.o
+[394/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/ErlangGCPrinter.cpp.o
+[395/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/OcamlGCPrinter.cpp.o
+[396/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/WinException.cpp.o
+[397/2627] Building CXX object lib/CodeGen/AsmPrinter/CMakeFiles/LLVMAsmPrinter.dir/CodeViewDebug.cpp.o
+[398/2627] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MILexer.cpp.o
+[399/2627] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIParser.cpp.o
+[400/2627] Building CXX object lib/CodeGen/MIRParser/CMakeFiles/LLVMMIRParser.dir/MIRParser.cpp.o
+[401/2627] Building CXX object lib/CodeGen/GlobalISel/CMakeFiles/LLVMGlobalISel.dir/GlobalISel.cpp.o
+[402/2627] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitcodeReader.cpp.o
+[403/2627] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitReader.cpp.o
+[404/2627] Linking CXX static library lib/libLLVMGlobalISel.a
+[405/2627] Building CXX object lib/Bitcode/Reader/CMakeFiles/LLVMBitReader.dir/BitstreamReader.cpp.o
+[406/2627] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriter.cpp.o
+[407/2627] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitWriter.cpp.o
+[408/2627] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/BitcodeWriterPass.cpp.o
+[409/2627] Building CXX object lib/Bitcode/Writer/CMakeFiles/LLVMBitWriter.dir/ValueEnumerator.cpp.o
+[410/2627] Linking CXX static library lib/libLLVMAsmPrinter.a
+[411/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ASanStackFrameLayout.cpp.o
+[412/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/AddDiscriminators.cpp.o
+[413/2627] Linking CXX static library lib/libLLVMSelectionDAG.a
+[414/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BasicBlockUtils.cpp.o
+[415/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BreakCriticalEdges.cpp.o
+[416/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BuildLibCalls.cpp.o
+[417/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/BypassSlowDivision.cpp.o
+[418/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneFunction.cpp.o
+[419/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CloneModule.cpp.o
+[420/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CmpInstAnalysis.cpp.o
+[421/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CodeExtractor.cpp.o
+[422/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/CtorUtils.cpp.o
+[423/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/DemoteRegToStack.cpp.o
+[424/2627] Linking CXX static library lib/libLLVMMIRParser.a
+[425/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Evaluator.cpp.o
+[426/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FlattenCFG.cpp.o
+[427/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/FunctionImportUtils.cpp.o
+[428/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/IntegerDivision.cpp.o
+[429/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/GlobalStatus.cpp.o
+[430/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InlineFunction.cpp.o
+[431/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/InstructionNamer.cpp.o
+[432/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LCSSA.cpp.o
+[433/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Local.cpp.o
+[434/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopSimplify.cpp.o
+[435/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnroll.cpp.o
+[436/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUnrollRuntime.cpp.o
+[437/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopUtils.cpp.o
+[438/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LoopVersioning.cpp.o
+[439/2627] Linking CXX static library lib/libLLVMBitWriter.a
+[440/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerInvoke.cpp.o
+[441/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/LowerSwitch.cpp.o
+[442/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Mem2Reg.cpp.o
+[443/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MemorySSA.cpp.o
+[444/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/MetaRenamer.cpp.o
+[445/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ModuleUtils.cpp.o
+[446/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/PromoteMemoryToRegister.cpp.o
+[447/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SSAUpdater.cpp.o
+[448/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SanitizerStats.cpp.o
+[449/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyCFG.cpp.o
+[450/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyIndVar.cpp.o
+[451/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyInstructions.cpp.o
+[452/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SimplifyLibCalls.cpp.o
+[453/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SplitModule.cpp.o
+[454/2627] Linking CXX static library lib/libLLVMBitReader.a
+[455/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/SymbolRewriter.cpp.o
+[456/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/UnifyFunctionExitNodes.cpp.o
+[457/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/Utils.cpp.o
+[458/2627] Building CXX object lib/Transforms/Utils/CMakeFiles/LLVMTransformUtils.dir/ValueMapper.cpp.o
+[459/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/BoundsChecking.cpp.o
+[460/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/AddressSanitizer.cpp.o
+[461/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/DataFlowSanitizer.cpp.o
+[462/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/GCOVProfiling.cpp.o
+[463/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/MemorySanitizer.cpp.o
+[464/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/Instrumentation.cpp.o
+[465/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/InstrProfiling.cpp.o
+[466/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/PGOInstrumentation.cpp.o
+[467/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/SanitizerCoverage.cpp.o
+[468/2627] Building CXX object lib/Transforms/Instrumentation/CMakeFiles/LLVMInstrumentation.dir/ThreadSanitizer.cpp.o
+[469/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstructionCombining.cpp.o
+[470/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAddSub.cpp.o
+[471/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineAndOrXor.cpp.o
+[472/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCalls.cpp.o
+[473/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCasts.cpp.o
+[474/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineCompares.cpp.o
+[475/2627] Linking CXX static library lib/libLLVMTransformUtils.a
+[476/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineLoadStoreAlloca.cpp.o
+[477/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombinePHI.cpp.o
+[478/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSelect.cpp.o
+[479/2627] Linking CXX static library lib/libLLVMInstrumentation.a
+[480/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineShifts.cpp.o
+[481/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineSimplifyDemanded.cpp.o
+[482/2627] Building CXX object lib/Transforms/InstCombine/CMakeFiles/LLVMInstCombine.dir/InstCombineVectorOps.cpp.o
+[483/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/AlignmentFromAssumptions.cpp.o
+[484/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ADCE.cpp.o
+[485/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantHoisting.cpp.o
+[486/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/BDCE.cpp.o
+[487/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ConstantProp.cpp.o
+[488/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DeadStoreElimination.cpp.o
+[489/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/CorrelatedValuePropagation.cpp.o
+[490/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/DCE.cpp.o
+[491/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/InductiveRangeCheckElimination.cpp.o
+[492/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/EarlyCSE.cpp.o
+[493/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/FlattenCFGPass.cpp.o
+[494/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Float2Int.cpp.o
+[495/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/GVN.cpp.o
+[496/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoadCombine.cpp.o
+[497/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/IndVarSimplify.cpp.o
+[498/2627] Linking CXX static library lib/libLLVMInstCombine.a
+[499/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/JumpThreading.cpp.o
+[500/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LICM.cpp.o
+[501/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDeletion.cpp.o
+[502/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDataPrefetch.cpp.o
+[503/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopDistribute.cpp.o
+[504/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopIdiomRecognize.cpp.o
+[505/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInstSimplify.cpp.o
+[506/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopInterchange.cpp.o
+[507/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopLoadElimination.cpp.o
+[508/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRerollPass.cpp.o
+[509/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopRotation.cpp.o
+[510/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopSimplifyCFG.cpp.o
+[511/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopStrengthReduce.cpp.o
+[512/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnrollPass.cpp.o
+[513/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopUnswitch.cpp.o
+[514/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LoopVersioningLICM.cpp.o
+[515/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerAtomic.cpp.o
+[516/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/LowerExpectIntrinsic.cpp.o
+[517/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MemCpyOptimizer.cpp.o
+[518/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/MergedLoadStoreMotion.cpp.o
+[519/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/NaryReassociate.cpp.o
+[520/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PartiallyInlineLibCalls.cpp.o
+[521/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalar.cpp.o
+[522/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/PlaceSafepoints.cpp.o
+[523/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reassociate.cpp.o
+[524/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Reg2Mem.cpp.o
+[525/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/RewriteStatepointsForGC.cpp.o
+[526/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SCCP.cpp.o
+[527/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SROA.cpp.o
+[528/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SpeculativeExecution.cpp.o
+[529/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/ScalarReplAggregates.cpp.o
+[530/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Scalarizer.cpp.o
+[531/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SeparateConstOffsetFromGEP.cpp.o
+[532/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/SimplifyCFGPass.cpp.o
+[533/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/Sink.cpp.o
+[534/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ConstantMerge.cpp.o
+[535/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StraightLineStrengthReduce.cpp.o
+[536/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/StructurizeCFG.cpp.o
+[537/2627] Building CXX object lib/Transforms/Scalar/CMakeFiles/LLVMScalarOpts.dir/TailRecursionElimination.cpp.o
+[538/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/BarrierNoopPass.cpp.o
+[539/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ArgumentPromotion.cpp.o
+[540/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/DeadArgumentElimination.cpp.o
+[541/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionImport.cpp.o
+[542/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalDCE.cpp.o
+[543/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/CrossDSOCFI.cpp.o
+[544/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ForceFunctionAttrs.cpp.o
+[545/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ElimAvailExtern.cpp.o
+[546/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/ExtractGV.cpp.o
+[547/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPConstantPropagation.cpp.o
+[548/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/FunctionAttrs.cpp.o
+[549/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/GlobalOpt.cpp.o
+[550/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InferFunctionAttrs.cpp.o
+[551/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/IPO.cpp.o
+[552/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PassManagerBuilder.cpp.o
+[553/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineAlways.cpp.o
+[554/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/InlineSimple.cpp.o
+[555/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Inliner.cpp.o
+[556/2627] Linking CXX static library lib/libLLVMScalarOpts.a
+[557/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/Internalize.cpp.o
+[558/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LoopExtractor.cpp.o
+[559/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/LowerBitSets.cpp.o
+[560/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/MergeFunctions.cpp.o
+[561/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PartialInlining.cpp.o
+[562/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripDeadPrototypes.cpp.o
+[563/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PruneEH.cpp.o
+[564/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/SampleProfile.cpp.o
+[565/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/WholeProgramDevirt.cpp.o
+[566/2627] Building CXX object lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/StripSymbols.cpp.o
+[567/2627] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/BBVectorize.cpp.o
+[568/2627] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/Vectorize.cpp.o
+[569/2627] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/LoopVectorize.cpp.o
+[570/2627] Building CXX object lib/Transforms/Vectorize/CMakeFiles/LLVMVectorize.dir/SLPVectorizer.cpp.o
+[571/2627] Building CXX object lib/Transforms/Hello/CMakeFiles/LLVMHello.dir/Hello.cpp.o
+[572/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARC.cpp.o
+[573/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCOpts.cpp.o
+[574/2627] Linking CXX shared module lib/LLVMHello.so
+[575/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCExpand.cpp.o
+[576/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCAPElim.cpp.o
+[577/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ObjCARCContract.cpp.o
+[578/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/DependencyAnalysis.cpp.o
+[579/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ProvenanceAnalysis.cpp.o
+[580/2627] Linking CXX static library lib/libLLVMipo.a
+[581/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/ProvenanceAnalysisEvaluator.cpp.o
+[582/2627] Building CXX object lib/Transforms/ObjCARC/CMakeFiles/LLVMObjCARCOpts.dir/PtrState.cpp.o
+[583/2627] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/IRMover.cpp.o
+[584/2627] Building CXX object lib/Linker/CMakeFiles/LLVMLinker.dir/LinkModules.cpp.o
+[585/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysisEvaluator.cpp.o
+[586/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasAnalysis.cpp.o
+[587/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BasicAliasAnalysis.cpp.o
+[588/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AliasSetTracker.cpp.o
+[589/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Analysis.cpp.o
+[590/2627] Linking CXX static library lib/libLLVMObjCARCOpts.a
+[591/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/AssumptionCache.cpp.o
+[592/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DependenceAnalysis.cpp.o
+[593/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfo.cpp.o
+[594/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BlockFrequencyInfoImpl.cpp.o
+[595/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/BranchProbabilityInfo.cpp.o
+[596/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFG.cpp.o
+[597/2627] Linking CXX static library lib/libLLVMLinker.a
+[598/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFGPrinter.cpp.o
+[599/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CFLAliasAnalysis.cpp.o
+[600/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CGSCCPassManager.cpp.o
+[601/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraph.cpp.o
+[602/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallGraphSCCPass.cpp.o
+[603/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CallPrinter.cpp.o
+[604/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CaptureTracking.cpp.o
+[605/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopAccessAnalysis.cpp.o
+[606/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CostModel.cpp.o
+[607/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/CodeMetrics.cpp.o
+[608/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ConstantFolding.cpp.o
+[609/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Delinearization.cpp.o
+[610/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DemandedBits.cpp.o
+[611/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DominanceFrontier.cpp.o
+[612/2627] Linking CXX static library lib/libLLVMVectorize.a
+[613/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DivergenceAnalysis.cpp.o
+[614/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/DomPrinter.cpp.o
+[615/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstructionSimplify.cpp.o
+[616/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/EHPersonalities.cpp.o
+[617/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/GlobalsModRef.cpp.o
+[618/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IVUsers.cpp.o
+[619/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InlineCost.cpp.o
+[620/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/InstCount.cpp.o
+[621/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IntervalPartition.cpp.o
+[622/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Interval.cpp.o
+[623/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/IteratedDominanceFrontier.cpp.o
+[624/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyCallGraph.cpp.o
+[625/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LazyValueInfo.cpp.o
+[626/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Lint.cpp.o
+[627/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Loads.cpp.o
+[628/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopUnrollAnalyzer.cpp.o
+[629/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryDependenceAnalysis.cpp.o
+[630/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopInfo.cpp.o
+[631/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPass.cpp.o
+[632/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/LoopPassManager.cpp.o
+[633/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDepPrinter.cpp.o
+[634/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemDerefPrinter.cpp.o
+[635/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/OrderedBasicBlock.cpp.o
+[636/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryBuiltins.cpp.o
+[637/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ModuleDebugInfoPrinter.cpp.o
+[638/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/MemoryLocation.cpp.o
+[639/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAliasAnalysis.cpp.o
+[640/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCAnalysisUtils.cpp.o
+[641/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ObjCARCInstKind.cpp.o
+[642/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionAliasAnalysis.cpp.o
+[643/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PHITransAddr.cpp.o
+[644/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PostDominators.cpp.o
+[645/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/PtrUseVisitor.cpp.o
+[646/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionInfo.cpp.o
+[647/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPass.cpp.o
+[648/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/RegionPrinter.cpp.o
+[649/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolution.cpp.o
+[650/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TypeBasedAliasAnalysis.cpp.o
+[651/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionExpander.cpp.o
+[652/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScalarEvolutionNormalization.cpp.o
+[653/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/SparsePropagation.cpp.o
+[654/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetLibraryInfo.cpp.o
+[655/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/TargetTransformInfo.cpp.o
+[656/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/Trace.cpp.o
+[657/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ScopedNoAliasAA.cpp.o
+[658/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueTracking.cpp.o
+[659/2627] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/VectorUtils.cpp.o
+[660/2627] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOModule.cpp.o
+[661/2627] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/ThinLTOCodeGenerator.cpp.o
+[662/2627] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOCodeGenerator.cpp.o
+[663/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLabel.cpp.o
+[664/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCLinkerOptimizationHint.cpp.o
+[665/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachOStreamer.cpp.o
+[666/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCMachObjectTargetWriter.cpp.o
+[667/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCNullStreamer.cpp.o
+[668/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectFileInfo.cpp.o
+[669/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectStreamer.cpp.o
+[670/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCObjectWriter.cpp.o
+[671/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCRegisterInfo.cpp.o
+[672/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSchedule.cpp.o
+[673/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSection.cpp.o
+[674/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionCOFF.cpp.o
+[675/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionELF.cpp.o
+[676/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSectionMachO.cpp.o
+[677/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCStreamer.cpp.o
+[678/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSubtargetInfo.cpp.o
+[679/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbol.cpp.o
+[680/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCSymbolELF.cpp.o
+[681/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCTargetOptions.cpp.o
+[682/2627] Linking CXX static library lib/libLLVMLTO.a
+[683/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCValue.cpp.o
+[684/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWin64EH.cpp.o
+[685/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MCWinEH.cpp.o
+[686/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/MachObjectWriter.cpp.o
+[687/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/StringTableBuilder.cpp.o
+[688/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/SubtargetFeature.cpp.o
+[689/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFObjectWriter.cpp.o
+[690/2627] Building CXX object lib/MC/CMakeFiles/LLVMMC.dir/WinCOFFStreamer.cpp.o
+[691/2627] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/Disassembler.cpp.o
+[692/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCTargetAsmParser.cpp.o
+[693/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/COFFAsmParser.cpp.o
+[694/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmParser.cpp.o
+[695/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParser.cpp.o
+[696/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmLexer.cpp.o
+[697/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/ELFAsmParser.cpp.o
+[698/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/MCAsmParserExtension.cpp.o
+[699/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/AsmLexer.cpp.o
+[700/2627] Building CXX object lib/MC/MCParser/CMakeFiles/LLVMMCParser.dir/DarwinAsmParser.cpp.o
+[701/2627] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCDisassembler.cpp.o
+[702/2627] Building CXX object lib/MC/MCDisassembler/CMakeFiles/LLVMMCDisassembler.dir/MCExternalSymbolizer.cpp.o
+[703/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Binary.cpp.o
+[704/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/COFFObjectFile.cpp.o
+[705/2627] Linking CXX static library lib/libLLVMMC.a
+[706/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ModuleSummaryIndexObjectFile.cpp.o
+[707/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ELFObjectFile.cpp.o
+[708/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Error.cpp.o
+[709/2627] Linking CXX static library lib/libLLVMMCDisassembler.a
+[710/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/IRObjectFile.cpp.o
+[711/2627] Linking CXX static library lib/libLLVMAnalysis.a
+[712/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOObjectFile.cpp.o
+[713/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/MachOUniversal.cpp.o
+[714/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/Object.cpp.o
+[715/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/ObjectFile.cpp.o
+[716/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/RecordStreamer.cpp.o
+[717/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolicFile.cpp.o
+[718/2627] Building CXX object lib/Object/CMakeFiles/LLVMObject.dir/SymbolSize.cpp.o
+[719/2627] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/YAML.cpp.o
+[720/2627] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/COFFYAML.cpp.o
+[721/2627] Building CXX object lib/ObjectYAML/CMakeFiles/LLVMObjectYAML.dir/ELFYAML.cpp.o
+[722/2627] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Arg.cpp.o
+[723/2627] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/FieldListRecordBuilder.cpp.o
+[724/2627] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/ArgList.cpp.o
+[725/2627] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/Option.cpp.o
+[726/2627] Building CXX object lib/Option/CMakeFiles/LLVMOption.dir/OptTable.cpp.o
+[727/2627] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/Line.cpp.o
+[728/2627] Linking CXX static library lib/libLLVMObject.a
+[729/2627] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/ListRecordBuilder.cpp.o
+[730/2627] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MemoryTypeTableBuilder.cpp.o
+[731/2627] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/MethodListRecordBuilder.cpp.o
+[732/2627] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeRecordBuilder.cpp.o
+[733/2627] Building CXX object lib/DebugInfo/CodeView/CMakeFiles/LLVMDebugInfoCodeView.dir/TypeTableBuilder.cpp.o
+[734/2627] Linking CXX static library lib/libLLVMMCParser.a
+[735/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAbbreviationDeclaration.cpp.o
+[736/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFAcceleratorTable.cpp.o
+[737/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFCompileUnit.cpp.o
+[738/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFContext.cpp.o
+[739/2627] Linking CXX static library lib/libLLVMOption.a
+[740/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugAbbrev.cpp.o
+[741/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugArangeSet.cpp.o
+[742/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugAranges.cpp.o
+[743/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugFrame.cpp.o
+[744/2627] Linking CXX static library lib/libLLVMObjectYAML.a
+[745/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugInfoEntry.cpp.o
+[746/2627] Linking CXX static library lib/libLLVMDebugInfoCodeView.a
+[747/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugLine.cpp.o
+[748/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugLoc.cpp.o
+[749/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugMacro.cpp.o
+[750/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFDebugRangeList.cpp.o
+[751/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFFormValue.cpp.o
+[752/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFTypeUnit.cpp.o
+[753/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFUnitIndex.cpp.o
+[754/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/DWARFUnit.cpp.o
+[755/2627] Building CXX object lib/DebugInfo/DWARF/CMakeFiles/LLVMDebugInfoDWARF.dir/SyntaxHighlighting.cpp.o
+[756/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/IPDBSourceFile.cpp.o
+[757/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBContext.cpp.o
+[758/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDB.cpp.o
+[759/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBExtras.cpp.o
+[760/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBInterfaceAnchors.cpp.o
+[761/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbol.cpp.o
+[762/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolAnnotation.cpp.o
+[763/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolBlock.cpp.o
+[764/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompiland.cpp.o
+[765/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandDetails.cpp.o
+[766/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCompilandEnv.cpp.o
+[767/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolCustom.cpp.o
+[768/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolData.cpp.o
+[769/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolExe.cpp.o
+[770/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFunc.cpp.o
+[771/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFuncDebugEnd.cpp.o
+[772/2627] Linking CXX static library lib/libLLVMDebugInfoDWARF.a
+[773/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolFuncDebugStart.cpp.o
+[774/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolLabel.cpp.o
+[775/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolPublicSymbol.cpp.o
+[776/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolThunk.cpp.o
+[777/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeArray.cpp.o
+[778/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeBaseClass.cpp.o
+[779/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeBuiltin.cpp.o
+[780/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeCustom.cpp.o
+[781/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeDimension.cpp.o
+[782/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeEnum.cpp.o
+[783/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFriend.cpp.o
+[784/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFunctionArg.cpp.o
+[785/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeFunctionSig.cpp.o
+[786/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeManaged.cpp.o
+[787/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypePointer.cpp.o
+[788/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeTypedef.cpp.o
+[789/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeUDT.cpp.o
+[790/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeVTable.cpp.o
+[791/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolTypeVTableShape.cpp.o
+[792/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUnknown.cpp.o
+[793/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymbolUsingNamespace.cpp.o
+[794/2627] Building CXX object lib/DebugInfo/PDB/CMakeFiles/LLVMDebugInfoPDB.dir/PDBSymDumper.cpp.o
+[795/2627] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/SymbolizableObjectFile.cpp.o
+[796/2627] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/DIPrinter.cpp.o
+[797/2627] Building CXX object lib/DebugInfo/Symbolize/CMakeFiles/LLVMSymbolize.dir/Symbolize.cpp.o
+[798/2627] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/ExecutionEngine.cpp.o
+[799/2627] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/ExecutionEngineBindings.cpp.o
+[800/2627] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/GDBRegistrationListener.cpp.o
+[801/2627] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/SectionMemoryManager.cpp.o
+[802/2627] Building CXX object lib/ExecutionEngine/CMakeFiles/LLVMExecutionEngine.dir/TargetSelect.cpp.o
+[803/2627] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/Execution.cpp.o
+[804/2627] Linking CXX static library lib/libLLVMDebugInfoPDB.a
+[805/2627] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/ExternalFunctions.cpp.o
+[806/2627] Building CXX object lib/ExecutionEngine/Interpreter/CMakeFiles/LLVMInterpreter.dir/Interpreter.cpp.o
+[807/2627] Building CXX object lib/ExecutionEngine/MCJIT/CMakeFiles/LLVMMCJIT.dir/MCJIT.cpp.o
+[808/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/ExecutionUtils.cpp.o
+[809/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/IndirectionUtils.cpp.o
+[810/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/NullResolver.cpp.o
+[811/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcArchitectureSupport.cpp.o
+[812/2627] Linking CXX static library lib/libLLVMSymbolize.a
+[813/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcCBindings.cpp.o
+[814/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcCBindingsStack.cpp.o
+[815/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcError.cpp.o
+[816/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcMCJITReplacement.cpp.o
+[817/2627] Building CXX object lib/ExecutionEngine/Orc/CMakeFiles/LLVMOrcJIT.dir/OrcRemoteTargetRPCAPI.cpp.o
+[818/2627] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RTDyldMemoryManager.cpp.o
+[819/2627] Linking CXX static library lib/libLLVMExecutionEngine.a
+[820/2627] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyld.cpp.o
+[821/2627] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldChecker.cpp.o
+[822/2627] Linking CXX static library lib/libLLVMMCJIT.a
+[823/2627] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldCOFF.cpp.o
+[824/2627] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldELF.cpp.o
+[825/2627] Building CXX object lib/ExecutionEngine/RuntimeDyld/CMakeFiles/LLVMRuntimeDyld.dir/RuntimeDyldMachO.cpp.o
+[826/2627] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetLoweringObjectFile.cpp.o
+[827/2627] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/Target.cpp.o
+[828/2627] Linking CXX static library lib/libLLVMInterpreter.a
+[829/2627] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetIntrinsicInfo.cpp.o
+[830/2627] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachine.cpp.o
+[831/2627] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetMachineC.cpp.o
+[832/2627] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetRecip.cpp.o
+[833/2627] Building CXX object lib/Target/CMakeFiles/LLVMTarget.dir/TargetSubtargetInfo.cpp.o
+[834/2627] Building AArch64GenRegisterInfo.inc...
+[835/2627] Updating AArch64GenRegisterInfo.inc...
+[836/2627] Building AArch64GenAsmWriter.inc...
+[837/2627] Building AArch64GenMCCodeEmitter.inc...
+[838/2627] Building AArch64GenInstrInfo.inc...
+[839/2627] Building AArch64GenAsmMatcher.inc...
+[840/2627] Building AArch64GenMCPseudoLowering.inc...
+[841/2627] Updating AArch64GenMCCodeEmitter.inc...
+[842/2627] Updating AArch64GenAsmWriter.inc...
+[843/2627] Building AArch64GenCallingConv.inc...
+[844/2627] Building ARMGenAsmMatcher.inc...
+[845/2627] Linking CXX static library lib/libLLVMOrcJIT.a
+[846/2627] Building AArch64GenAsmWriter1.inc...
+[847/2627] Building AArch64GenDisassemblerTables.inc...
+[848/2627] Updating AArch64GenMCPseudoLowering.inc...
+[849/2627] Building AArch64GenFastISel.inc...
+[850/2627] Updating AArch64GenCallingConv.inc...
+[851/2627] Building AArch64GenDAGISel.inc...
+[852/2627] Updating AArch64GenAsmWriter1.inc...
+[853/2627] Building AArch64GenSubtargetInfo.inc...
+[854/2627] Building AMDGPUGenCallingConv.inc...
+[855/2627] Updating AArch64GenDisassemblerTables.inc...
+[856/2627] Building AMDGPUGenDAGISel.inc...
+[857/2627] Updating ARMGenAsmMatcher.inc...
+[858/2627] Building AMDGPUGenMCCodeEmitter.inc...
+[859/2627] Updating AArch64GenFastISel.inc...
+[860/2627] Building AMDGPUGenRegisterInfo.inc...
+[861/2627] Updating AArch64GenAsmMatcher.inc...
+[862/2627] Building ARMGenSubtargetInfo.inc...
+[863/2627] Updating AMDGPUGenCallingConv.inc...
+[864/2627] Building AMDGPUGenIntrinsics.inc...
+[865/2627] Updating AMDGPUGenMCCodeEmitter.inc...
+[866/2627] Building AMDGPUGenInstrInfo.inc...
+[867/2627] Updating AArch64GenInstrInfo.inc...
+[868/2627] Building AMDGPUGenSubtargetInfo.inc...
+[869/2627] Updating AMDGPUGenRegisterInfo.inc...
+[870/2627] Building AMDGPUGenAsmMatcher.inc...
+[871/2627] Building AMDGPUGenDFAPacketizer.inc...
+[872/2627] Updating AArch64GenDAGISel.inc...
+[873/2627] Building AMDGPUGenDisassemblerTables.inc...
+[874/2627] Linking CXX static library lib/libLLVMTarget.a
+[875/2627] Building AMDGPUGenAsmWriter.inc...
+[876/2627] Updating AMDGPUGenIntrinsics.inc...
+[877/2627] Building ARMGenAsmWriter.inc...
+[878/2627] Updating AMDGPUGenDAGISel.inc...
+[879/2627] Building ARMGenRegisterInfo.inc...
+[880/2627] Updating AMDGPUGenDFAPacketizer.inc...
+[881/2627] Updating ARMGenSubtargetInfo.inc...
+[882/2627] Building ARMGenMCPseudoLowering.inc...
+[883/2627] Updating AMDGPUGenSubtargetInfo.inc...
+[884/2627] Building ARMGenInstrInfo.inc...
+[885/2627] Linking CXX static library lib/libLLVMRuntimeDyld.a
+[886/2627] Building ARMGenMCCodeEmitter.inc...
+[887/2627] Updating AMDGPUGenDisassemblerTables.inc...
+[888/2627] Building ARMGenDAGISel.inc...
+[889/2627] Updating ARMGenRegisterInfo.inc...
+[890/2627] Building MipsGenCallingConv.inc...
+[891/2627] Updating ARMGenAsmWriter.inc...
+[892/2627] Updating AMDGPUGenAsmWriter.inc...
+[893/2627] Building ARMGenCallingConv.inc...
+[894/2627] Building ARMGenFastISel.inc...
+[895/2627] Updating AMDGPUGenAsmMatcher.inc...
+[896/2627] Building ARMGenDisassemblerTables.inc...
+[897/2627] Updating AMDGPUGenInstrInfo.inc...
+[898/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAlwaysInlinePass.cpp.o
+[899/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDILCFGStructurizer.cpp.o
+[900/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAnnotateKernelFeatures.cpp.o
+[901/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAnnotateUniformValues.cpp.o
+[902/2627] Updating AArch64GenSubtargetInfo.inc...
+[903/2627] Building CXX object lib/Target/AArch64/AsmParser/CMakeFiles/LLVMAArch64AsmParser.dir/AArch64AsmParser.cpp.o
+[904/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AddressTypePromotion.cpp.o
+[905/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A57FPLoadBalancing.cpp.o
+[906/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AdvSIMDScalarPass.cpp.o
+[907/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64AsmPrinter.cpp.o
+[908/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64BranchRelaxation.cpp.o
+[909/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CallLowering.cpp.o
+[910/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CleanupLocalDynamicTLSPass.cpp.o
+[911/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64CollectLOH.cpp.o
+[912/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ConditionalCompares.cpp.o
+[913/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64DeadRegisterDefinitionsPass.cpp.o
+[914/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ExpandPseudoInsts.cpp.o
+[915/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FastISel.cpp.o
+[916/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64A53Fix835769.cpp.o
+[917/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64FrameLowering.cpp.o
+[918/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ConditionOptimizer.cpp.o
+[919/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RedundantCopyElimination.cpp.o
+[920/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelDAGToDAG.cpp.o
+[921/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64ISelLowering.cpp.o
+[922/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64InstrInfo.cpp.o
+[923/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64LoadStoreOptimizer.cpp.o
+[924/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64MCInstLower.cpp.o
+[925/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PromoteConstant.cpp.o
+[926/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64PBQPRegAlloc.cpp.o
+[927/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64RegisterInfo.cpp.o
+[928/2627] Linking CXX static library lib/libLLVMAArch64AsmParser.a
+[929/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64SelectionDAGInfo.cpp.o
+[930/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64StorePairSuppress.cpp.o
+[931/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64Subtarget.cpp.o
+[932/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetMachine.cpp.o
+[933/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetObjectFile.cpp.o
+[934/2627] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/AArch64TargetTransformInfo.cpp.o
+[935/2627] Building CXX object lib/Target/AArch64/TargetInfo/CMakeFiles/LLVMAArch64Info.dir/AArch64TargetInfo.cpp.o
+[936/2627] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64Disassembler.cpp.o
+[937/2627] Building CXX object lib/Target/AArch64/Disassembler/CMakeFiles/LLVMAArch64Disassembler.dir/AArch64ExternalSymbolizer.cpp.o
+[938/2627] Building CXX object lib/Target/AArch64/InstPrinter/CMakeFiles/LLVMAArch64AsmPrinter.dir/AArch64InstPrinter.cpp.o
+[939/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64AsmBackend.cpp.o
+[940/2627] Linking CXX static library lib/libLLVMAArch64Info.a
+[941/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFObjectWriter.cpp.o
+[942/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64ELFStreamer.cpp.o
+[943/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCAsmInfo.cpp.o
+[944/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCCodeEmitter.cpp.o
+[945/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCExpr.cpp.o
+[946/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MCTargetDesc.cpp.o
+[947/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64MachObjectWriter.cpp.o
+[948/2627] Building CXX object lib/Target/AArch64/MCTargetDesc/CMakeFiles/LLVMAArch64Desc.dir/AArch64TargetStreamer.cpp.o
+[949/2627] Building CXX object lib/Target/AArch64/Utils/CMakeFiles/LLVMAArch64Utils.dir/AArch64BaseInfo.cpp.o
+[950/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUAsmPrinter.cpp.o
+[951/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUFrameLowering.cpp.o
+[952/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetObjectFile.cpp.o
+[953/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUIntrinsicInfo.cpp.o
+[954/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUISelDAGToDAG.cpp.o
+[955/2627] Linking CXX static library lib/libLLVMAArch64Desc.a
+[956/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMCInstLower.cpp.o
+[957/2627] Linking CXX static library lib/libLLVMAArch64Utils.a
+[958/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMachineFunction.cpp.o
+[959/2627] Linking CXX static library lib/libLLVMAArch64CodeGen.a
+[960/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUOpenCLImageTypeLoweringPass.cpp.o
+[961/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUSubtarget.cpp.o
+[962/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetMachine.cpp.o
+[963/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUTargetTransformInfo.cpp.o
+[964/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUISelLowering.cpp.o
+[965/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUInstrInfo.cpp.o
+[966/2627] Linking CXX static library lib/libLLVMAArch64Disassembler.a
+[967/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPromoteAlloca.cpp.o
+[968/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPURegisterInfo.cpp.o
+[969/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ClauseMergePass.cpp.o
+[970/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ControlFlowFinalizer.cpp.o
+[971/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600EmitClauseMarkers.cpp.o
+[972/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ExpandSpecialInstrs.cpp.o
+[973/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600InstrInfo.cpp.o
+[974/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600ISelLowering.cpp.o
+[975/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600MachineFunctionInfo.cpp.o
+[976/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600MachineScheduler.cpp.o
+[977/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600OptimizeVectorRegisters.cpp.o
+[978/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600Packetizer.cpp.o
+[979/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600RegisterInfo.cpp.o
+[980/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/R600TextureIntrinsicsReplacer.cpp.o
+[981/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIAnnotateControlFlow.cpp.o
+[982/2627] Linking CXX static library lib/libLLVMAArch64AsmPrinter.a
+[983/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixControlFlowLiveIntervals.cpp.o
+[984/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRCopies.cpp.o
+[985/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFixSGPRLiveRanges.cpp.o
+[986/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFoldOperands.cpp.o
+[987/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIFrameLowering.cpp.o
+[988/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertNopsPass.cpp.o
+[989/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInsertWaits.cpp.o
+[990/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIInstrInfo.cpp.o
+[991/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIISelLowering.cpp.o
+[992/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILoadStoreOptimizer.cpp.o
+[993/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILowerControlFlow.cpp.o
+[994/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SILowerI1Copies.cpp.o
+[995/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIMachineFunctionInfo.cpp.o
+[996/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIMachineScheduler.cpp.o
+[997/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIRegisterInfo.cpp.o
+[998/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIShrinkInstructions.cpp.o
+[999/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SITypeRewriter.cpp.o
+[1000/2627] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/SIWholeQuadMode.cpp.o
+[1001/2627] Building CXX object lib/Target/AMDGPU/InstPrinter/CMakeFiles/LLVMAMDGPUAsmPrinter.dir/AMDGPUInstPrinter.cpp.o
+[1002/2627] Building CXX object lib/Target/AMDGPU/Disassembler/CMakeFiles/LLVMAMDGPUDisassembler.dir/AMDGPUDisassembler.cpp.o
+[1003/2627] Building CXX object lib/Target/AMDGPU/TargetInfo/CMakeFiles/LLVMAMDGPUInfo.dir/AMDGPUTargetInfo.cpp.o
+[1004/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUAsmBackend.cpp.o
+[1005/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUELFObjectWriter.cpp.o
+[1006/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUELFStreamer.cpp.o
+[1007/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCCodeEmitter.cpp.o
+[1008/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCTargetDesc.cpp.o
+[1009/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUMCAsmInfo.cpp.o
+[1010/2627] Linking CXX static library lib/libLLVMAMDGPUAsmPrinter.a
+[1011/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/AMDGPUTargetStreamer.cpp.o
+[1012/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/R600MCCodeEmitter.cpp.o
+[1013/2627] Building CXX object lib/Target/AMDGPU/MCTargetDesc/CMakeFiles/LLVMAMDGPUDesc.dir/SIMCCodeEmitter.cpp.o
+[1014/2627] Building CXX object lib/Target/AMDGPU/Utils/CMakeFiles/LLVMAMDGPUUtils.dir/AMDGPUBaseInfo.cpp.o
+[1015/2627] Building CXX object lib/Target/AMDGPU/Utils/CMakeFiles/LLVMAMDGPUUtils.dir/AMDKernelCodeTUtils.cpp.o
+[1016/2627] Linking CXX static library lib/libLLVMAMDGPUInfo.a
+[1017/2627] Updating ARMGenMCCodeEmitter.inc...
+[1018/2627] Updating ARMGenMCPseudoLowering.inc...
+[1019/2627] Updating ARMGenDisassemblerTables.inc...
+[1020/2627] Updating ARMGenInstrInfo.inc...
+[1021/2627] Updating ARMGenCallingConv.inc...
+[1022/2627] Updating ARMGenDAGISel.inc...
+[1023/2627] Updating ARMGenFastISel.inc...
+[1024/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMFrameLowering.cpp.o
+[1025/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/A15SDOptimizer.cpp.o
+[1026/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMAsmPrinter.cpp.o
+[1027/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMBaseInstrInfo.cpp.o
+[1028/2627] Linking CXX static library lib/libLLVMAMDGPUCodeGen.a
+[1029/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMBaseRegisterInfo.cpp.o
+[1030/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMConstantIslandPass.cpp.o
+[1031/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMConstantPoolValue.cpp.o
+[1032/2627] Linking CXX static library lib/libLLVMAMDGPUUtils.a
+[1033/2627] Building CXX object lib/Target/AMDGPU/AsmParser/CMakeFiles/LLVMAMDGPUAsmParser.dir/AMDGPUAsmParser.cpp.o
+[1034/2627] Linking CXX static library lib/libLLVMAMDGPUDesc.a
+[1035/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMExpandPseudoInsts.cpp.o
+[1036/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMFastISel.cpp.o
+[1037/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMHazardRecognizer.cpp.o
+[1038/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMLoadStoreOptimizer.cpp.o
+[1039/2627] Linking CXX static library lib/libLLVMAMDGPUDisassembler.a
+[1040/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMISelDAGToDAG.cpp.o
+[1041/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMISelLowering.cpp.o
+[1042/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMInstrInfo.cpp.o
+[1043/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetMachine.cpp.o
+[1044/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMMCInstLower.cpp.o
+[1045/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMMachineFunctionInfo.cpp.o
+[1046/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMRegisterInfo.cpp.o
+[1047/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMOptimizeBarriersPass.cpp.o
+[1048/2627] Linking CXX static library lib/libLLVMAMDGPUAsmParser.a
+[1049/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMSelectionDAGInfo.cpp.o
+[1050/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMSubtarget.cpp.o
+[1051/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetObjectFile.cpp.o
+[1052/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ARMTargetTransformInfo.cpp.o
+[1053/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/MLxExpansionPass.cpp.o
+[1054/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb1FrameLowering.cpp.o
+[1055/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb1InstrInfo.cpp.o
+[1056/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/ThumbRegisterInfo.cpp.o
+[1057/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2ITBlockPass.cpp.o
+[1058/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2InstrInfo.cpp.o
+[1059/2627] Building CXX object lib/Target/ARM/CMakeFiles/LLVMARMCodeGen.dir/Thumb2SizeReduction.cpp.o
+[1060/2627] Building CXX object lib/Target/ARM/TargetInfo/CMakeFiles/LLVMARMInfo.dir/ARMTargetInfo.cpp.o
+[1061/2627] Building CXX object lib/Target/ARM/AsmParser/CMakeFiles/LLVMARMAsmParser.dir/ARMAsmParser.cpp.o
+[1062/2627] Building CXX object lib/Target/ARM/Disassembler/CMakeFiles/LLVMARMDisassembler.dir/ARMDisassembler.cpp.o
+[1063/2627] Building CXX object lib/Target/ARM/InstPrinter/CMakeFiles/LLVMARMAsmPrinter.dir/ARMInstPrinter.cpp.o
+[1064/2627] Linking CXX static library lib/libLLVMARMInfo.a
+[1065/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMAsmBackend.cpp.o
+[1066/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMELFObjectWriter.cpp.o
+[1067/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMELFStreamer.cpp.o
+[1068/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMachObjectWriter.cpp.o
+[1069/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMachORelocationInfo.cpp.o
+[1070/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCTargetDesc.cpp.o
+[1071/2627] Linking CXX static library lib/libLLVMARMAsmPrinter.a
+[1072/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCAsmInfo.cpp.o
+[1073/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCCodeEmitter.cpp.o
+[1074/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMMCExpr.cpp.o
+[1075/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMTargetStreamer.cpp.o
+[1076/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMUnwindOpAsm.cpp.o
+[1077/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMWinCOFFObjectWriter.cpp.o
+[1078/2627] Building CXX object lib/Target/ARM/MCTargetDesc/CMakeFiles/LLVMARMDesc.dir/ARMWinCOFFStreamer.cpp.o
+[1079/2627] Building BPFGenMCCodeEmitter.inc...
+[1080/2627] Updating BPFGenMCCodeEmitter.inc...
+[1081/2627] Building BPFGenRegisterInfo.inc...
+[1082/2627] Updating BPFGenRegisterInfo.inc...
+[1083/2627] Building BPFGenInstrInfo.inc...
+[1084/2627] Updating BPFGenInstrInfo.inc...
+[1085/2627] Building BPFGenAsmWriter.inc...
+[1086/2627] Building X86GenAsmMatcher.inc...
+[1087/2627] Updating BPFGenAsmWriter.inc...
+[1088/2627] Building BPFGenDAGISel.inc...
+[1089/2627] Building BPFGenSubtargetInfo.inc...
+[1090/2627] Updating X86GenAsmMatcher.inc...
+[1091/2627] Building BPFGenCallingConv.inc...
+[1092/2627] Updating BPFGenDAGISel.inc...
+[1093/2627] Building CXX object lib/Target/CppBackend/CMakeFiles/LLVMCppBackendCodeGen.dir/CPPBackend.cpp.o
+[1094/2627] Updating BPFGenCallingConv.inc...
+[1095/2627] Building CXX object lib/Target/CppBackend/TargetInfo/CMakeFiles/LLVMCppBackendInfo.dir/CppBackendTargetInfo.cpp.o
+[1096/2627] Updating BPFGenSubtargetInfo.inc...
+[1097/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFISelDAGToDAG.cpp.o
+[1098/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFAsmPrinter.cpp.o
+[1099/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFFrameLowering.cpp.o
+[1100/2627] Linking CXX static library lib/libLLVMARMCodeGen.a
+[1101/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFInstrInfo.cpp.o
+[1102/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFTargetMachine.cpp.o
+[1103/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFISelLowering.cpp.o
+[1104/2627] Linking CXX static library lib/libLLVMARMDesc.a
+[1105/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFMCInstLower.cpp.o
+[1106/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFRegisterInfo.cpp.o
+[1107/2627] Building CXX object lib/Target/BPF/CMakeFiles/LLVMBPFCodeGen.dir/BPFSubtarget.cpp.o
+[1108/2627] Building CXX object lib/Target/BPF/InstPrinter/CMakeFiles/LLVMBPFAsmPrinter.dir/BPFInstPrinter.cpp.o
+[1109/2627] Building CXX object lib/Target/BPF/TargetInfo/CMakeFiles/LLVMBPFInfo.dir/BPFTargetInfo.cpp.o
+[1110/2627] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCTargetDesc.cpp.o
+[1111/2627] Linking CXX static library lib/libLLVMBPFInfo.a
+[1112/2627] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFAsmBackend.cpp.o
+[1113/2627] Linking CXX static library lib/libLLVMBPFAsmPrinter.a
+[1114/2627] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFMCCodeEmitter.cpp.o
+[1115/2627] Linking CXX static library lib/libLLVMARMDisassembler.a
+[1116/2627] Building CXX object lib/Target/BPF/MCTargetDesc/CMakeFiles/LLVMBPFDesc.dir/BPFELFObjectWriter.cpp.o
+[1117/2627] Linking CXX static library lib/libLLVMCppBackendInfo.a
+[1118/2627] Building HexagonGenAsmWriter.inc...
+[1119/2627] Building HexagonGenDAGISel.inc...
+[1120/2627] Building HexagonGenAsmMatcher.inc...
+[1121/2627] Updating HexagonGenAsmWriter.inc...
+[1122/2627] Building HexagonGenCallingConv.inc...
+[1123/2627] Linking CXX static library lib/libLLVMCppBackendCodeGen.a
+[1124/2627] Building HexagonGenInstrInfo.inc...
+[1125/2627] Updating HexagonGenAsmMatcher.inc...
+[1126/2627] Building HexagonGenDFAPacketizer.inc...
+[1127/2627] Building HexagonGenDisassemblerTables.inc...
+[1128/2627] Updating HexagonGenCallingConv.inc...
+[1129/2627] Building HexagonGenMCCodeEmitter.inc...
+[1130/2627] Updating HexagonGenDisassemblerTables.inc...
+[1131/2627] Building HexagonGenRegisterInfo.inc...
+[1132/2627] Building HexagonGenSubtargetInfo.inc...
+[1133/2627] Updating HexagonGenDFAPacketizer.inc...
+[1134/2627] Updating MipsGenCallingConv.inc...
+[1135/2627] Building MipsGenMCCodeEmitter.inc...
+[1136/2627] Building MipsGenRegisterInfo.inc...
+[1137/2627] Updating HexagonGenDAGISel.inc...
+[1138/2627] Building MipsGenInstrInfo.inc...
+[1139/2627] Updating HexagonGenMCCodeEmitter.inc...
+[1140/2627] Building MipsGenDisassemblerTables.inc...
+[1141/2627] Updating HexagonGenInstrInfo.inc...
+[1142/2627] Building MipsGenAsmWriter.inc...
+[1143/2627] Linking CXX static library lib/libLLVMBPFCodeGen.a
+[1144/2627] Building MipsGenDAGISel.inc...
+[1145/2627] Updating MipsGenRegisterInfo.inc...
+[1146/2627] Building MipsGenAsmMatcher.inc...
+[1147/2627] Updating HexagonGenSubtargetInfo.inc...
+[1148/2627] Building MipsGenFastISel.inc...
+[1149/2627] Updating HexagonGenRegisterInfo.inc...
+[1150/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/BitTracker.cpp.o
+[1151/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonAsmPrinter.cpp.o
+[1152/2627] Linking CXX static library lib/libLLVMBPFDesc.a
+[1153/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBitSimplify.cpp.o
+[1154/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBitTracker.cpp.o
+[1155/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonBlockRanges.cpp.o
+[1156/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCFGOptimizer.cpp.o
+[1157/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCommonGEP.cpp.o
+[1158/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonCopyToCombine.cpp.o
+[1159/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonEarlyIfConv.cpp.o
+[1160/2627] Linking CXX static library lib/libLLVMARMAsmParser.a
+[1161/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonExpandCondsets.cpp.o
+[1162/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonFixupHwLoops.cpp.o
+[1163/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonFrameLowering.cpp.o
+[1164/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenExtract.cpp.o
+[1165/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenInsert.cpp.o
+[1166/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenMux.cpp.o
+[1167/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonGenPredicate.cpp.o
+[1168/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonHardwareLoops.cpp.o
+[1169/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonInstrInfo.cpp.o
+[1170/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelDAGToDAG.cpp.o
+[1171/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonISelLowering.cpp.o
+[1172/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMachineFunctionInfo.cpp.o
+[1173/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMachineScheduler.cpp.o
+[1174/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonMCInstLower.cpp.o
+[1175/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonNewValueJump.cpp.o
+[1176/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonOptimizeSZextends.cpp.o
+[1177/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonPeephole.cpp.o
+[1178/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRDF.cpp.o
+[1179/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRDFOpt.cpp.o
+[1180/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonRegisterInfo.cpp.o
+[1181/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSelectionDAGInfo.cpp.o
+[1182/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSplitConst32AndConst64.cpp.o
+[1183/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSplitDouble.cpp.o
+[1184/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonStoreWidening.cpp.o
+[1185/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonSubtarget.cpp.o
+[1186/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetMachine.cpp.o
+[1187/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetObjectFile.cpp.o
+[1188/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonTargetTransformInfo.cpp.o
+[1189/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/HexagonVLIWPacketizer.cpp.o
+[1190/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFCopy.cpp.o
+[1191/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFDeadCode.cpp.o
+[1192/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFGraph.cpp.o
+[1193/2627] Building CXX object lib/Target/Hexagon/CMakeFiles/LLVMHexagonCodeGen.dir/RDFLiveness.cpp.o
+[1194/2627] Building CXX object lib/Target/Hexagon/AsmParser/CMakeFiles/LLVMHexagonAsmParser.dir/HexagonAsmParser.cpp.o
+[1195/2627] Building CXX object lib/Target/Hexagon/TargetInfo/CMakeFiles/LLVMHexagonInfo.dir/HexagonTargetInfo.cpp.o
+[1196/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonAsmBackend.cpp.o
+[1197/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonELFObjectWriter.cpp.o
+[1198/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonInstPrinter.cpp.o
+[1199/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCAsmInfo.cpp.o
+[1200/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCChecker.cpp.o
+[1201/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCCodeEmitter.cpp.o
+[1202/2627] Linking CXX static library lib/libLLVMHexagonInfo.a
+[1203/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCCompound.cpp.o
+[1204/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCDuplexInfo.cpp.o
+[1205/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCELFStreamer.cpp.o
+[1206/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCExpr.cpp.o
+[1207/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCInstrInfo.cpp.o
+[1208/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCShuffler.cpp.o
+[1209/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCTargetDesc.cpp.o
+[1210/2627] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonShuffler.cpp.o
+[1211/2627] Building CXX object lib/Target/Hexagon/Disassembler/CMakeFiles/LLVMHexagonDisassembler.dir/HexagonDisassembler.cpp.o
+[1212/2627] Linking CXX static library lib/libLLVMHexagonCodeGen.a
+[1213/2627] Updating MipsGenMCCodeEmitter.inc...
+[1214/2627] Updating MipsGenInstrInfo.inc...
+[1215/2627] Updating MipsGenDAGISel.inc...
+[1216/2627] Updating MipsGenAsmWriter.inc...
+[1217/2627] Updating MipsGenDisassemblerTables.inc...
+[1218/2627] Updating MipsGenFastISel.inc...
+[1219/2627] Updating MipsGenAsmMatcher.inc...
+[1220/2627] Building MipsGenSubtargetInfo.inc...
+[1221/2627] Building WebAssemblyGenMCCodeEmitter.inc...
+[1222/2627] Building MipsGenMCPseudoLowering.inc...
+[1223/2627] Updating MipsGenSubtargetInfo.inc...
+[1224/2627] Building MSP430GenDAGISel.inc...
+[1225/2627] Updating MSP430GenDAGISel.inc...
+[1226/2627] Building MSP430GenInstrInfo.inc...
+[1227/2627] Updating MipsGenMCPseudoLowering.inc...
+[1228/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsRegisterInfo.cpp.o
+[1229/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16FrameLowering.cpp.o
+[1230/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16HardFloat.cpp.o
+[1231/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16HardFloatInfo.cpp.o
+[1232/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16InstrInfo.cpp.o
+[1233/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16ISelDAGToDAG.cpp.o
+[1234/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16ISelLowering.cpp.o
+[1235/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/Mips16RegisterInfo.cpp.o
+[1236/2627] Linking CXX static library lib/libLLVMHexagonAsmParser.a
+[1237/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsAnalyzeImmediate.cpp.o
+[1238/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsAsmPrinter.cpp.o
+[1239/2627] Linking CXX static library lib/libLLVMHexagonDesc.a
+[1240/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsCCState.cpp.o
+[1241/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsConstantIslandPass.cpp.o
+[1242/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsDelaySlotFiller.cpp.o
+[1243/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsFastISel.cpp.o
+[1244/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsHazardSchedule.cpp.o
+[1245/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsInstrInfo.cpp.o
+[1246/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsISelDAGToDAG.cpp.o
+[1247/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsISelLowering.cpp.o
+[1248/2627] Linking CXX static library lib/libLLVMHexagonDisassembler.a
+[1249/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsFrameLowering.cpp.o
+[1250/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsLongBranch.cpp.o
+[1251/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsMCInstLower.cpp.o
+[1252/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsMachineFunction.cpp.o
+[1253/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsModuleISelDAGToDAG.cpp.o
+[1254/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsOptimizePICCall.cpp.o
+[1255/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsOs16.cpp.o
+[1256/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEFrameLowering.cpp.o
+[1257/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEInstrInfo.cpp.o
+[1258/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEISelDAGToDAG.cpp.o
+[1259/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSEISelLowering.cpp.o
+[1260/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSERegisterInfo.cpp.o
+[1261/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsSubtarget.cpp.o
+[1262/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsTargetMachine.cpp.o
+[1263/2627] Building CXX object lib/Target/Mips/CMakeFiles/LLVMMipsCodeGen.dir/MipsTargetObjectFile.cpp.o
+[1264/2627] Building CXX object lib/Target/Mips/InstPrinter/CMakeFiles/LLVMMipsAsmPrinter.dir/MipsInstPrinter.cpp.o
+[1265/2627] Building CXX object lib/Target/Mips/Disassembler/CMakeFiles/LLVMMipsDisassembler.dir/MipsDisassembler.cpp.o
+[1266/2627] Building CXX object lib/Target/Mips/TargetInfo/CMakeFiles/LLVMMipsInfo.dir/MipsTargetInfo.cpp.o
+[1267/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsABIInfo.cpp.o
+[1268/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsABIFlagsSection.cpp.o
+[1269/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsAsmBackend.cpp.o
+[1270/2627] Linking CXX static library lib/libLLVMMipsInfo.a
+[1271/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsELFObjectWriter.cpp.o
+[1272/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsELFStreamer.cpp.o
+[1273/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCAsmInfo.cpp.o
+[1274/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCCodeEmitter.cpp.o
+[1275/2627] Linking CXX static library lib/libLLVMMipsAsmPrinter.a
+[1276/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCExpr.cpp.o
+[1277/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsMCTargetDesc.cpp.o
+[1278/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsNaClELFStreamer.cpp.o
+[1279/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsOptionRecord.cpp.o
+[1280/2627] Building CXX object lib/Target/Mips/MCTargetDesc/CMakeFiles/LLVMMipsDesc.dir/MipsTargetStreamer.cpp.o
+[1281/2627] Linking CXX static library lib/libLLVMMipsCodeGen.a
+[1282/2627] Building CXX object lib/Target/Mips/AsmParser/CMakeFiles/LLVMMipsAsmParser.dir/MipsAsmParser.cpp.o
+[1283/2627] Updating MSP430GenInstrInfo.inc...
+[1284/2627] Building MSP430GenSubtargetInfo.inc...
+[1285/2627] Updating MSP430GenSubtargetInfo.inc...
+[1286/2627] Building MSP430GenRegisterInfo.inc...
+[1287/2627] Updating MSP430GenRegisterInfo.inc...
+[1288/2627] Building MSP430GenCallingConv.inc...
+[1289/2627] Updating MSP430GenCallingConv.inc...
+[1290/2627] Building MSP430GenAsmWriter.inc...
+[1291/2627] Updating MSP430GenAsmWriter.inc...
+[1292/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430BranchSelector.cpp.o
+[1293/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelDAGToDAG.cpp.o
+[1294/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430ISelLowering.cpp.o
+[1295/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430InstrInfo.cpp.o
+[1296/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430FrameLowering.cpp.o
+[1297/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430MachineFunctionInfo.cpp.o
+[1298/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430RegisterInfo.cpp.o
+[1299/2627] Linking CXX static library lib/libLLVMMipsDesc.a
+[1300/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430Subtarget.cpp.o
+[1301/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430TargetMachine.cpp.o
+[1302/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430AsmPrinter.cpp.o
+[1303/2627] Building CXX object lib/Target/MSP430/CMakeFiles/LLVMMSP430CodeGen.dir/MSP430MCInstLower.cpp.o
+[1304/2627] Building CXX object lib/Target/MSP430/InstPrinter/CMakeFiles/LLVMMSP430AsmPrinter.dir/MSP430InstPrinter.cpp.o
+[1305/2627] Building CXX object lib/Target/MSP430/TargetInfo/CMakeFiles/LLVMMSP430Info.dir/MSP430TargetInfo.cpp.o
+[1306/2627] Building CXX object lib/Target/MSP430/MCTargetDesc/CMakeFiles/LLVMMSP430Desc.dir/MSP430MCTargetDesc.cpp.o
+[1307/2627] Building CXX object lib/Target/MSP430/MCTargetDesc/CMakeFiles/LLVMMSP430Desc.dir/MSP430MCAsmInfo.cpp.o
+[1308/2627] Building NVPTXGenRegisterInfo.inc...
+[1309/2627] Updating NVPTXGenRegisterInfo.inc...
+[1310/2627] Building NVPTXGenInstrInfo.inc...
+[1311/2627] Linking CXX static library lib/libLLVMMipsDisassembler.a
+[1312/2627] Building NVPTXGenAsmWriter.inc...
+[1313/2627] Updating NVPTXGenInstrInfo.inc...
+[1314/2627] Building NVPTXGenDAGISel.inc...
+[1315/2627] Updating NVPTXGenAsmWriter.inc...
+[1316/2627] Building NVPTXGenSubtargetInfo.inc...
+[1317/2627] Updating NVPTXGenSubtargetInfo.inc...
+[1318/2627] Building PPCGenFastISel.inc...
+[1319/2627] Building PPCGenRegisterInfo.inc...
+[1320/2627] Updating NVPTXGenDAGISel.inc...
+[1321/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAllocaHoisting.cpp.o
+[1322/2627] Linking CXX static library lib/libLLVMMSP430Desc.a
+[1323/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAsmPrinter.cpp.o
+[1324/2627] Linking CXX static library lib/libLLVMMSP430AsmPrinter.a
+[1325/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXAssignValidGlobalNames.cpp.o
+[1326/2627] Updating PPCGenFastISel.inc...
+[1327/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXFavorNonGenericAddrSpaces.cpp.o
+[1328/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXFrameLowering.cpp.o
+[1329/2627] Linking CXX static library lib/libLLVMMSP430Info.a
+[1330/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXGenericToNVVM.cpp.o
+[1331/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXISelDAGToDAG.cpp.o
+[1332/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXISelLowering.cpp.o
+[1333/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXImageOptimizer.cpp.o
+[1334/2627] Linking CXX static library lib/libLLVMMSP430CodeGen.a
+[1335/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXInferAddressSpaces.cpp.o
+[1336/2627] Linking CXX static library lib/libLLVMMipsAsmParser.a
+[1337/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXInstrInfo.cpp.o
+[1338/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerAggrCopies.cpp.o
+[1339/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerKernelArgs.cpp.o
+[1340/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXLowerAlloca.cpp.o
+[1341/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXPeephole.cpp.o
+[1342/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXMCExpr.cpp.o
+[1343/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXPrologEpilogPass.cpp.o
+[1344/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXRegisterInfo.cpp.o
+[1345/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXReplaceImageHandles.cpp.o
+[1346/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXSubtarget.cpp.o
+[1347/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXTargetMachine.cpp.o
+[1348/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXTargetTransformInfo.cpp.o
+[1349/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVPTXUtilities.cpp.o
+[1350/2627] Building CXX object lib/Target/NVPTX/CMakeFiles/LLVMNVPTXCodeGen.dir/NVVMReflect.cpp.o
+[1351/2627] Building CXX object lib/Target/NVPTX/MCTargetDesc/CMakeFiles/LLVMNVPTXDesc.dir/NVPTXMCAsmInfo.cpp.o
+[1352/2627] Building CXX object lib/Target/NVPTX/TargetInfo/CMakeFiles/LLVMNVPTXInfo.dir/NVPTXTargetInfo.cpp.o
+[1353/2627] Building CXX object lib/Target/NVPTX/InstPrinter/CMakeFiles/LLVMNVPTXAsmPrinter.dir/NVPTXInstPrinter.cpp.o
+[1354/2627] Building CXX object lib/Target/NVPTX/MCTargetDesc/CMakeFiles/LLVMNVPTXDesc.dir/NVPTXMCTargetDesc.cpp.o
+[1355/2627] Updating PPCGenRegisterInfo.inc...
+[1356/2627] Building PPCGenInstrInfo.inc...
+[1357/2627] Building PPCGenAsmWriter.inc...
+[1358/2627] Linking CXX static library lib/libLLVMNVPTXInfo.a
+[1359/2627] Building PPCGenDAGISel.inc...
+[1360/2627] Building PPCGenAsmMatcher.inc...
+[1361/2627] Building PPCGenMCCodeEmitter.inc...
+[1362/2627] Building PPCGenSubtargetInfo.inc...
+[1363/2627] Updating PPCGenAsmWriter.inc...
+[1364/2627] Building PPCGenDisassemblerTables.inc...
+[1365/2627] Updating PPCGenInstrInfo.inc...
+[1366/2627] Building PPCGenCallingConv.inc...
+[1367/2627] Building SparcGenRegisterInfo.inc...
+[1368/2627] Updating PPCGenMCCodeEmitter.inc...
+[1369/2627] Building SparcGenMCCodeEmitter.inc...
+[1370/2627] Updating PPCGenAsmMatcher.inc...
+[1371/2627] Building SparcGenDisassemblerTables.inc...
+[1372/2627] Updating PPCGenSubtargetInfo.inc...
+[1373/2627] Building SparcGenAsmWriter.inc...
+[1374/2627] Updating SparcGenRegisterInfo.inc...
+[1375/2627] Building SparcGenAsmMatcher.inc...
+[1376/2627] Updating SparcGenMCCodeEmitter.inc...
+[1377/2627] Building SparcGenInstrInfo.inc...
+[1378/2627] Updating SparcGenDisassemblerTables.inc...
+[1379/2627] Building SparcGenSubtargetInfo.inc...
+[1380/2627] Updating SparcGenAsmWriter.inc...
+[1381/2627] Building SparcGenCallingConv.inc...
+[1382/2627] Updating PPCGenCallingConv.inc...
+[1383/2627] Building SparcGenDAGISel.inc...
+[1384/2627] Updating SparcGenSubtargetInfo.inc...
+[1385/2627] Building SystemZGenDAGISel.inc...
+[1386/2627] Updating PPCGenDAGISel.inc...
+[1387/2627] Building SystemZGenAsmMatcher.inc...
+[1388/2627] Updating SparcGenCallingConv.inc...
+[1389/2627] Updating SparcGenInstrInfo.inc...
+[1390/2627] Building SystemZGenDisassemblerTables.inc...
+[1391/2627] Building SystemZGenCallingConv.inc...
+[1392/2627] Updating PPCGenDisassemblerTables.inc...
+[1393/2627] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCAsmBackend.cpp.o
+[1394/2627] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCTargetDesc.cpp.o
+[1395/2627] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCAsmInfo.cpp.o
+[1396/2627] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCCodeEmitter.cpp.o
+[1397/2627] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMCExpr.cpp.o
+[1398/2627] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCPredicates.cpp.o
+[1399/2627] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCMachObjectWriter.cpp.o
+[1400/2627] Building CXX object lib/Target/PowerPC/MCTargetDesc/CMakeFiles/LLVMPowerPCDesc.dir/PPCELFObjectWriter.cpp.o
+[1401/2627] Linking CXX static library lib/libLLVMNVPTXCodeGen.a
+[1402/2627] Linking CXX static library lib/libLLVMNVPTXDesc.a
+[1403/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCBoolRetToInt.cpp.o
+[1404/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCAsmPrinter.cpp.o
+[1405/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCBranchSelector.cpp.o
+[1406/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCCTRLoops.cpp.o
+[1407/2627] Linking CXX static library lib/libLLVMNVPTXAsmPrinter.a
+[1408/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCHazardRecognizers.cpp.o
+[1409/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCInstrInfo.cpp.o
+[1410/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCISelDAGToDAG.cpp.o
+[1411/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCISelLowering.cpp.o
+[1412/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCEarlyReturn.cpp.o
+[1413/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCFastISel.cpp.o
+[1414/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCFrameLowering.cpp.o
+[1415/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCLoopPreIncPrep.cpp.o
+[1416/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMCInstLower.cpp.o
+[1417/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMachineFunctionInfo.cpp.o
+[1418/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetMachine.cpp.o
+[1419/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCMIPeephole.cpp.o
+[1420/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCRegisterInfo.cpp.o
+[1421/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCSubtarget.cpp.o
+[1422/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetObjectFile.cpp.o
+[1423/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTargetTransformInfo.cpp.o
+[1424/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTOCRegDeps.cpp.o
+[1425/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCTLSDynamicCall.cpp.o
+[1426/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXCopy.cpp.o
+[1427/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXFMAMutate.cpp.o
+[1428/2627] Building CXX object lib/Target/PowerPC/CMakeFiles/LLVMPowerPCCodeGen.dir/PPCVSXSwapRemoval.cpp.o
+[1429/2627] Building CXX object lib/Target/PowerPC/Disassembler/CMakeFiles/LLVMPowerPCDisassembler.dir/PPCDisassembler.cpp.o
+[1430/2627] Building CXX object lib/Target/PowerPC/AsmParser/CMakeFiles/LLVMPowerPCAsmParser.dir/PPCAsmParser.cpp.o
+[1431/2627] Building CXX object lib/Target/PowerPC/InstPrinter/CMakeFiles/LLVMPowerPCAsmPrinter.dir/PPCInstPrinter.cpp.o
+[1432/2627] Building CXX object lib/Target/PowerPC/TargetInfo/CMakeFiles/LLVMPowerPCInfo.dir/PowerPCTargetInfo.cpp.o
+[1433/2627] Linking CXX static library lib/libLLVMPowerPCDesc.a
+[1434/2627] Updating SparcGenAsmMatcher.inc...
+[1435/2627] Updating SparcGenDAGISel.inc...
+[1436/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/DelaySlotFiller.cpp.o
+[1437/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcAsmPrinter.cpp.o
+[1438/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcInstrInfo.cpp.o
+[1439/2627] Linking CXX static library lib/libLLVMPowerPCInfo.a
+[1440/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcISelDAGToDAG.cpp.o
+[1441/2627] Linking CXX static library lib/libLLVMPowerPCDisassembler.a
+[1442/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcISelLowering.cpp.o
+[1443/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcFrameLowering.cpp.o
+[1444/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcMachineFunctionInfo.cpp.o
+[1445/2627] Linking CXX static library lib/libLLVMPowerPCCodeGen.a
+[1446/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcRegisterInfo.cpp.o
+[1447/2627] Linking CXX static library lib/libLLVMPowerPCAsmPrinter.a
+[1448/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcSubtarget.cpp.o
+[1449/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetMachine.cpp.o
+[1450/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcMCInstLower.cpp.o
+[1451/2627] Linking CXX static library lib/libLLVMPowerPCAsmParser.a
+[1452/2627] Building CXX object lib/Target/Sparc/CMakeFiles/LLVMSparcCodeGen.dir/SparcTargetObjectFile.cpp.o
+[1453/2627] Building CXX object lib/Target/Sparc/TargetInfo/CMakeFiles/LLVMSparcInfo.dir/SparcTargetInfo.cpp.o
+[1454/2627] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcAsmBackend.cpp.o
+[1455/2627] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcELFObjectWriter.cpp.o
+[1456/2627] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCAsmInfo.cpp.o
+[1457/2627] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCCodeEmitter.cpp.o
+[1458/2627] Linking CXX static library lib/libLLVMSparcInfo.a
+[1459/2627] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCTargetDesc.cpp.o
+[1460/2627] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcMCExpr.cpp.o
+[1461/2627] Building CXX object lib/Target/Sparc/MCTargetDesc/CMakeFiles/LLVMSparcDesc.dir/SparcTargetStreamer.cpp.o
+[1462/2627] Building CXX object lib/Target/Sparc/InstPrinter/CMakeFiles/LLVMSparcAsmPrinter.dir/SparcInstPrinter.cpp.o
+[1463/2627] Building CXX object lib/Target/Sparc/AsmParser/CMakeFiles/LLVMSparcAsmParser.dir/SparcAsmParser.cpp.o
+[1464/2627] Building CXX object lib/Target/Sparc/Disassembler/CMakeFiles/LLVMSparcDisassembler.dir/SparcDisassembler.cpp.o
+[1465/2627] Updating SystemZGenAsmMatcher.inc...
+[1466/2627] Updating SystemZGenDAGISel.inc...
+[1467/2627] Updating SystemZGenCallingConv.inc...
+[1468/2627] Updating SystemZGenDisassemblerTables.inc...
+[1469/2627] Building SystemZGenAsmWriter.inc...
+[1470/2627] Building SystemZGenMCCodeEmitter.inc...
+[1471/2627] Updating SystemZGenMCCodeEmitter.inc...
+[1472/2627] Building SystemZGenRegisterInfo.inc...
+[1473/2627] Updating SystemZGenAsmWriter.inc...
+[1474/2627] Building SystemZGenInstrInfo.inc...
+[1475/2627] Updating SystemZGenRegisterInfo.inc...
+[1476/2627] Building SystemZGenSubtargetInfo.inc...
+[1477/2627] Building X86GenAsmWriter.inc...
+[1478/2627] Updating SystemZGenInstrInfo.inc...
+[1479/2627] Building X86GenRegisterInfo.inc...
+[1480/2627] Updating SystemZGenSubtargetInfo.inc...
+[1481/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZAsmPrinter.cpp.o
+[1482/2627] Linking CXX static library lib/libLLVMSparcCodeGen.a
+[1483/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZCallingConv.cpp.o
+[1484/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZConstantPoolValue.cpp.o
+[1485/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZElimCompare.cpp.o
+[1486/2627] Linking CXX static library lib/libLLVMSparcDesc.a
+[1487/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZFrameLowering.cpp.o
+[1488/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZISelDAGToDAG.cpp.o
+[1489/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZISelLowering.cpp.o
+[1490/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZInstrInfo.cpp.o
+[1491/2627] Linking CXX static library lib/libLLVMSparcAsmParser.a
+[1492/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZLDCleanup.cpp.o
+[1493/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZLongBranch.cpp.o
+[1494/2627] Linking CXX static library lib/libLLVMSparcDisassembler.a
+[1495/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZMachineFunctionInfo.cpp.o
+[1496/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZMCInstLower.cpp.o
+[1497/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZRegisterInfo.cpp.o
+[1498/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZSelectionDAGInfo.cpp.o
+[1499/2627] Linking CXX static library lib/libLLVMSparcAsmPrinter.a
+[1500/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZShortenInst.cpp.o
+[1501/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZSubtarget.cpp.o
+[1502/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZTargetMachine.cpp.o
+[1503/2627] Building CXX object lib/Target/SystemZ/CMakeFiles/LLVMSystemZCodeGen.dir/SystemZTargetTransformInfo.cpp.o
+[1504/2627] Building CXX object lib/Target/SystemZ/AsmParser/CMakeFiles/LLVMSystemZAsmParser.dir/SystemZAsmParser.cpp.o
+[1505/2627] Building CXX object lib/Target/SystemZ/Disassembler/CMakeFiles/LLVMSystemZDisassembler.dir/SystemZDisassembler.cpp.o
+[1506/2627] Building CXX object lib/Target/SystemZ/InstPrinter/CMakeFiles/LLVMSystemZAsmPrinter.dir/SystemZInstPrinter.cpp.o
+[1507/2627] Building CXX object lib/Target/SystemZ/TargetInfo/CMakeFiles/LLVMSystemZInfo.dir/SystemZTargetInfo.cpp.o
+[1508/2627] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCAsmBackend.cpp.o
+[1509/2627] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCAsmInfo.cpp.o
+[1510/2627] Linking CXX static library lib/libLLVMSystemZAsmParser.a
+[1511/2627] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCCodeEmitter.cpp.o
+[1512/2627] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCObjectWriter.cpp.o
+[1513/2627] Linking CXX static library lib/libLLVMSystemZInfo.a
+[1514/2627] Building CXX object lib/Target/SystemZ/MCTargetDesc/CMakeFiles/LLVMSystemZDesc.dir/SystemZMCTargetDesc.cpp.o
+[1515/2627] Updating X86GenRegisterInfo.inc...
+[1516/2627] Updating X86GenAsmWriter.inc...
+[1517/2627] Building X86GenCallingConv.inc...
+[1518/2627] Linking CXX static library lib/libLLVMSystemZAsmPrinter.a
+[1519/2627] Building X86GenDisassemblerTables.inc...
+[1520/2627] Building X86GenInstrInfo.inc...
+[1521/2627] Linking CXX static library lib/libLLVMSystemZDisassembler.a
+[1522/2627] Building X86GenAsmMatcher.inc...
+[1523/2627] Building X86GenDAGISel.inc...
+[1524/2627] Building X86GenAsmWriter1.inc...
+[1525/2627] Building X86GenSubtargetInfo.inc...
+[1526/2627] Linking CXX static library lib/libLLVMSystemZCodeGen.a
+[1527/2627] Building X86GenFastISel.inc...
+[1528/2627] Updating X86GenCallingConv.inc...
+[1529/2627] Building XCoreGenRegisterInfo.inc...
+[1530/2627] Building XCoreGenDisassemblerTables.inc...
+[1531/2627] Updating XCoreGenDisassemblerTables.inc...
+[1532/2627] Building XCoreGenCallingConv.inc...
+[1533/2627] Updating XCoreGenRegisterInfo.inc...
+[1534/2627] Building XCoreGenInstrInfo.inc...
+[1535/2627] Linking CXX static library lib/libLLVMSystemZDesc.a
+[1536/2627] Building XCoreGenAsmWriter.inc...
+[1537/2627] Updating XCoreGenInstrInfo.inc...
+[1538/2627] Building XCoreGenDAGISel.inc...
+[1539/2627] Updating XCoreGenCallingConv.inc...
+[1540/2627] Updating XCoreGenAsmWriter.inc...
+[1541/2627] Building XCoreGenSubtargetInfo.inc...
+[1542/2627] Updating WebAssemblyGenMCCodeEmitter.inc...
+[1543/2627] Building WebAssemblyGenInstrInfo.inc...
+[1544/2627] Updating XCoreGenSubtargetInfo.inc...
+[1545/2627] Building WebAssemblyGenRegisterInfo.inc...
+[1546/2627] Updating XCoreGenDAGISel.inc...
+[1547/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreAsmPrinter.cpp.o
+[1548/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreFrameLowering.cpp.o
+[1549/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreInstrInfo.cpp.o
+[1550/2627] Updating X86GenDisassemblerTables.inc...
+[1551/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreISelDAGToDAG.cpp.o
+[1552/2627] Updating X86GenAsmWriter1.inc...
+[1553/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreISelLowering.cpp.o
+[1554/2627] Updating X86GenFastISel.inc...
+[1555/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreLowerThreadLocal.cpp.o
+[1556/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreMachineFunctionInfo.cpp.o
+[1557/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreMCInstLower.cpp.o
+[1558/2627] Updating X86GenSubtargetInfo.inc...
+[1559/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreRegisterInfo.cpp.o
+[1560/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreSubtarget.cpp.o
+[1561/2627] Updating X86GenInstrInfo.inc...
+[1562/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreTargetMachine.cpp.o
+[1563/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreTargetObjectFile.cpp.o
+[1564/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreSelectionDAGInfo.cpp.o
+[1565/2627] Updating X86GenDAGISel.inc...
+[1566/2627] Building CXX object lib/Target/XCore/CMakeFiles/LLVMXCoreCodeGen.dir/XCoreFrameToArgsOffsetElim.cpp.o
+[1567/2627] Building CXX object lib/Target/XCore/Disassembler/CMakeFiles/LLVMXCoreDisassembler.dir/XCoreDisassembler.cpp.o
+[1568/2627] Building CXX object lib/Target/XCore/InstPrinter/CMakeFiles/LLVMXCoreAsmPrinter.dir/XCoreInstPrinter.cpp.o
+[1569/2627] Updating X86GenAsmMatcher.inc...
+[1570/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FloatingPoint.cpp.o
+[1571/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86AsmPrinter.cpp.o
+[1572/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86CallFrameOptimization.cpp.o
+[1573/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ExpandPseudo.cpp.o
+[1574/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FastISel.cpp.o
+[1575/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FrameLowering.cpp.o
+[1576/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MCInstLower.cpp.o
+[1577/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelDAGToDAG.cpp.o
+[1578/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelLowering.cpp.o
+[1579/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86InstrInfo.cpp.o
+[1580/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86MachineFunctionInfo.cpp.o
+[1581/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86PadShortFunction.cpp.o
+[1582/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86RegisterInfo.cpp.o
+[1583/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86SelectionDAGInfo.cpp.o
+[1584/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetMachine.cpp.o
+[1585/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ShuffleDecodeConstantPool.cpp.o
+[1586/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86WinEHState.cpp.o
+[1587/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86Subtarget.cpp.o
+[1588/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetObjectFile.cpp.o
+[1589/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86TargetTransformInfo.cpp.o
+[1590/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86VZeroUpper.cpp.o
+[1591/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupLEAs.cpp.o
+[1592/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86OptimizeLEAs.cpp.o
+[1593/2627] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86FixupBWInsts.cpp.o
+[1594/2627] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmParser.cpp.o
+[1595/2627] Building CXX object lib/Target/X86/AsmParser/CMakeFiles/LLVMX86AsmParser.dir/X86AsmInstrumentation.cpp.o
+[1596/2627] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86Disassembler.cpp.o
+[1597/2627] Building CXX object lib/Target/X86/Disassembler/CMakeFiles/LLVMX86Disassembler.dir/X86DisassemblerDecoder.cpp.o
+[1598/2627] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86ATTInstPrinter.cpp.o
+[1599/2627] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86IntelInstPrinter.cpp.o
+[1600/2627] Building CXX object lib/Target/X86/InstPrinter/CMakeFiles/LLVMX86AsmPrinter.dir/X86InstComments.cpp.o
+[1601/2627] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86AsmBackend.cpp.o
+[1602/2627] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCTargetDesc.cpp.o
+[1603/2627] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCAsmInfo.cpp.o
+[1604/2627] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MCCodeEmitter.cpp.o
+[1605/2627] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86MachObjectWriter.cpp.o
+[1606/2627] Linking CXX static library lib/libLLVMX86AsmPrinter.a
+[1607/2627] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86ELFObjectWriter.cpp.o
+[1608/2627] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFStreamer.cpp.o
+[1609/2627] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFObjectWriter.cpp.o
+[1610/2627] Building CXX object lib/Target/X86/TargetInfo/CMakeFiles/LLVMX86Info.dir/X86TargetInfo.cpp.o
+[1611/2627] Building CXX object lib/Target/X86/Utils/CMakeFiles/LLVMX86Utils.dir/X86ShuffleDecode.cpp.o
+[1612/2627] Linking CXX static library lib/libLLVMXCoreCodeGen.a
+[1613/2627] Linking CXX static library lib/libLLVMXCoreDisassembler.a
+[1614/2627] Linking CXX static library lib/libLLVMXCoreAsmPrinter.a
+[1615/2627] Building CXX object lib/Target/XCore/TargetInfo/CMakeFiles/LLVMXCoreInfo.dir/XCoreTargetInfo.cpp.o
+[1616/2627] Building CXX object lib/Target/XCore/MCTargetDesc/CMakeFiles/LLVMXCoreDesc.dir/XCoreMCTargetDesc.cpp.o
+[1617/2627] Building CXX object lib/Target/XCore/MCTargetDesc/CMakeFiles/LLVMXCoreDesc.dir/XCoreMCAsmInfo.cpp.o
+[1618/2627] Updating WebAssemblyGenInstrInfo.inc...
+[1619/2627] Updating WebAssemblyGenRegisterInfo.inc...
+[1620/2627] Building WebAssemblyGenAsmWriter.inc...
+[1621/2627] Updating WebAssemblyGenAsmWriter.inc...
+[1622/2627] Building WebAssemblyGenFastISel.inc...
+[1623/2627] Updating WebAssemblyGenFastISel.inc...
+[1624/2627] Building WebAssemblyGenDAGISel.inc...
+[1625/2627] Updating WebAssemblyGenDAGISel.inc...
+[1626/2627] Building WebAssemblyGenSubtargetInfo.inc...
+[1627/2627] Updating WebAssemblyGenSubtargetInfo.inc...
+[1628/2627] Building CXX object lib/Target/WebAssembly/InstPrinter/CMakeFiles/LLVMWebAssemblyAsmPrinter.dir/WebAssemblyInstPrinter.cpp.o
+[1629/2627] Building CXX object lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyELFObjectWriter.cpp.o
+[1630/2627] Building CXX object lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCAsmInfo.cpp.o
+[1631/2627] Building CXX object lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCCodeEmitter.cpp.o
+[1632/2627] Building CXX object lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyAsmBackend.cpp.o
+[1633/2627] Building CXX object lib/Target/WebAssembly/Disassembler/CMakeFiles/LLVMWebAssemblyDisassembler.dir/WebAssemblyDisassembler.cpp.o
+[1634/2627] Linking CXX static library lib/libLLVMX86AsmParser.a
+[1635/2627] Linking CXX static library lib/libLLVMX86Disassembler.a
+[1636/2627] Linking CXX static library lib/libLLVMX86Info.a
+[1637/2627] Linking CXX static library lib/libLLVMX86Utils.a
+[1638/2627] Linking CXX static library lib/libLLVMXCoreInfo.a
+[1639/2627] Linking CXX static library lib/libLLVMXCoreDesc.a
+[1640/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyArgumentMove.cpp.o
+[1641/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyAsmPrinter.cpp.o
+[1642/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyCFGStackify.cpp.o
+[1643/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFastISel.cpp.o
+[1644/2627] Linking CXX static library lib/libLLVMX86Desc.a
+[1645/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFixIrreducibleControlFlow.cpp.o
+[1646/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyFrameLowering.cpp.o
+[1647/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyISelDAGToDAG.cpp.o
+[1648/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyISelLowering.cpp.o
+[1649/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyInstrInfo.cpp.o
+[1650/2627] Linking CXX static library lib/libLLVMWebAssemblyAsmPrinter.a
+[1651/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyLowerBrUnless.cpp.o
+[1652/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyMachineFunctionInfo.cpp.o
+[1653/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyMCInstLower.cpp.o
+[1654/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyOptimizeReturned.cpp.o
+[1655/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyPeephole.cpp.o
+[1656/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyPEI.cpp.o
+[1657/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegisterInfo.cpp.o
+[1658/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegColoring.cpp.o
+[1659/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegNumbering.cpp.o
+[1660/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyRegStackify.cpp.o
+[1661/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySelectionDAGInfo.cpp.o
+[1662/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySetP2AlignOperands.cpp.o
+[1663/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyStoreResults.cpp.o
+[1664/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblySubtarget.cpp.o
+[1665/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetMachine.cpp.o
+[1666/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetObjectFile.cpp.o
+[1667/2627] Building CXX object lib/Target/WebAssembly/CMakeFiles/LLVMWebAssemblyCodeGen.dir/WebAssemblyTargetTransformInfo.cpp.o
+[1668/2627] Linking CXX static library lib/libLLVMWebAssemblyDisassembler.a
+[1669/2627] Building CXX object lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyMCTargetDesc.cpp.o
+[1670/2627] Building CXX object lib/Target/WebAssembly/MCTargetDesc/CMakeFiles/LLVMWebAssemblyDesc.dir/WebAssemblyTargetStreamer.cpp.o
+[1671/2627] Building CXX object lib/Target/WebAssembly/TargetInfo/CMakeFiles/LLVMWebAssemblyInfo.dir/WebAssemblyTargetInfo.cpp.o
+[1672/2627] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLLexer.cpp.o
+[1673/2627] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/LLParser.cpp.o
+[1674/2627] Linking CXX static library lib/libLLVMWebAssemblyDesc.a
+[1675/2627] Building CXX object lib/AsmParser/CMakeFiles/LLVMAsmParser.dir/Parser.cpp.o
+[1676/2627] Building CXX object lib/LineEditor/CMakeFiles/LLVMLineEditor.dir/LineEditor.cpp.o
+[1677/2627] Linking CXX static library lib/libLLVMWebAssemblyInfo.a
+[1678/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfReader.cpp.o
+[1679/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProf.cpp.o
+[1680/2627] Linking CXX static library lib/libLLVMLineEditor.a
+[1681/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfReader.cpp.o
+[1682/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/InstrProfWriter.cpp.o
+[1683/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMapping.cpp.o
+[1684/2627] Linking CXX static library lib/libLLVMWebAssemblyCodeGen.a
+[1685/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMappingWriter.cpp.o
+[1686/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/CoverageMappingReader.cpp.o
+[1687/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/ProfileSummary.cpp.o
+[1688/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProf.cpp.o
+[1689/2627] Building CXX object lib/ProfileData/CMakeFiles/LLVMProfileData.dir/SampleProfWriter.cpp.o
+[1690/2627] Building CXX object lib/Passes/CMakeFiles/LLVMPasses.dir/PassBuilder.cpp.o
+[1691/2627] Building CXX object utils/PerfectShuffle/CMakeFiles/llvm-PerfectShuffle.dir/PerfectShuffle.cpp.o
+[1692/2627] Building CXX object utils/FileCheck/CMakeFiles/FileCheck.dir/FileCheck.cpp.o
+[1693/2627] Building Options.inc...
+[1694/2627] Updating Options.inc...
+[1695/2627] Building CXX object lib/LibDriver/CMakeFiles/LLVMLibDriver.dir/LibDriver.cpp.o
+[1696/2627] Linking CXX executable bin/llvm-PerfectShuffle
+[1697/2627] Building C object utils/count/CMakeFiles/count.dir/count.c.o
+[1698/2627] Linking C executable bin/count
+[1699/2627] Building CXX object utils/not/CMakeFiles/not.dir/not.cpp.o
+[1700/2627] Building CXX object utils/unittest/CMakeFiles/gtest.dir/googletest/src/gtest-all.cc.o
+[1701/2627] Building CXX object utils/yaml-bench/CMakeFiles/yaml-bench.dir/YAMLBench.cpp.o
+[1702/2627] Building CXX object utils/unittest/UnitTestMain/CMakeFiles/gtest_main.dir/TestMain.cpp.o
+[1703/2627] Linking CXX static library lib/libLLVMProfileData.a
+[1704/2627] Creating export file for LTO
+[1705/2627] Creating export file for LLVMgold
+[1706/2627] Building CXX object tools/llvm-config/CMakeFiles/llvm-config.dir/llvm-config.cpp.o
+[1707/2627] Linking CXX executable bin/not
+[1708/2627] Building CXX object tools/llvm-profdata/CMakeFiles/llvm-profdata.dir/llvm-profdata.cpp.o
+[1709/2627] Linking CXX static library lib/libLLVMLibDriver.a
+[1710/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentHTMLNamedCharacterReferenceEmitter.cpp.o
+[1711/2627] Linking CXX executable bin/yaml-bench
+[1712/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangASTNodesEmitter.cpp.o
+[1713/2627] Linking CXX static library lib/libgtest_main.a
+[1714/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangAttrEmitter.cpp.o
+[1715/2627] Linking CXX executable bin/FileCheck
+[1716/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentCommandInfoEmitter.cpp.o
+[1717/2627] Linking CXX static library lib/libLLVMX86CodeGen.a
+[1718/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangCommentHTMLTagsEmitter.cpp.o
+[1719/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangDiagnosticsEmitter.cpp.o
+[1720/2627] Linking CXX executable bin/llvm-config
+[1721/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/ClangSACheckersEmitter.cpp.o
+[1722/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/NeonEmitter.cpp.o
+[1723/2627] Building CXX object tools/clang/utils/TableGen/CMakeFiles/obj.clang-tblgen.dir/TableGen.cpp.o
+[1724/2627] Building Options.inc...
+[1725/2627] Updating Options.inc...
+[1726/2627] Generating ../../../../share/scan-view/bugcatcher.ico
+[1727/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypedefDumper.cpp.o
+[1728/2627] Linking CXX executable bin/llvm-profdata
+[1729/2627] Generating ../../../../share/scan-view/GetRadarVersion.scpt
+[1730/2627] Generating ../../../../share/scan-view/FileRadar.scpt
+[1731/2627] Generating ../../../../share/scan-view/startfile.py
+[1732/2627] Generating ../../../../share/scan-view/Reporter.py
+[1733/2627] Generating ../../../../share/scan-view/ScanView.py
+[1734/2627] Generating ../../../../bin/scan-view
+[1735/2627] Generating ../../../../share/scan-build/scanview.css
+[1736/2627] Generating ../../../../share/scan-build/sorttable.js
+[1737/2627] Generating ../../../../share/man/man1/scan-build.1
+[1738/2627] Generating ../../../../libexec/c++-analyzer
+[1739/2627] Generating ../../../../bin/scan-build
+[1740/2627] Generating ../../../../libexec/ccc-analyzer
+[1741/2627] Copying vtables blacklist
+[1742/2627] Creating export file for libclang
+[1743/2627] Building CXX object tools/sanstats/CMakeFiles/sanstats.dir/sanstats.cpp.o
+[1744/2627] Linking CXX static library lib/libgtest.a
+[1745/2627] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2coff.cpp.o
+[1746/2627] Building CXX object tools/llvm-stress/CMakeFiles/llvm-stress.dir/llvm-stress.cpp.o
+[1747/2627] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2obj.cpp.o
+[1748/2627] Building CXX object tools/yaml2obj/CMakeFiles/yaml2obj.dir/yaml2elf.cpp.o
+[1749/2627] Linking CXX static library lib/libLLVMAsmParser.a
+[1750/2627] Building CXX object tools/gold/CMakeFiles/LLVMgold.dir/gold-plugin.cpp.o
+[1751/2627] Building CXX object tools/llvm-ar/CMakeFiles/llvm-ar.dir/llvm-ar.cpp.o
+[1752/2627] Building CXX object tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
+[1753/2627] Building CXX object tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o
+[1754/2627] Building CXX object tools/llvm-lto/CMakeFiles/llvm-lto.dir/llvm-lto.cpp.o
+[1755/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/FindBugs.cpp.o
+[1756/2627] Building CXX object tools/llvm-extract/CMakeFiles/llvm-extract.dir/llvm-extract.cpp.o
+[1757/2627] Linking CXX executable bin/llvm-stress
+[1758/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/include-all.c.o
+[1759/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/main.c.o
+[1760/2627] Linking CXX executable bin/sanstats
+[1761/2627] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/obj2yaml.cpp.o
+[1762/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/EnumDumper.cpp.o
+[1763/2627] Linking CXX executable bin/clang-tblgen
+[1764/2627] Linking CXX executable bin/yaml2obj
+[1765/2627] Building DeclNodes.inc...
+[1766/2627] Building AttrVisitor.inc...
+[1767/2627] Building Attrs.inc...
+[1768/2627] Updating AttrVisitor.inc...
+[1769/2627] Building AttrImpl.inc...
+[1770/2627] Linking CXX executable bin/llvm-ar
+[1771/2627] Updating AttrImpl.inc...
+[1772/2627] Updating Attrs.inc...
+[1773/2627] Building CommentHTMLTagsProperties.inc...
+[1774/2627] Updating DeclNodes.inc...
+[1775/2627] Building CommentHTMLTags.inc...
+[1776/2627] Building AttrDump.inc...
+[1777/2627] Updating AttrDump.inc...
+[1778/2627] Updating CommentHTMLTags.inc...
+[1779/2627] Building CommentNodes.inc...
+[1780/2627] Updating CommentNodes.inc...
+[1781/2627] Updating CommentHTMLTagsProperties.inc...
+[1782/2627] Building StmtNodes.inc...
+[1783/2627] Updating StmtNodes.inc...
+[1784/2627] Building CommentCommandInfo.inc...
+[1785/2627] Updating CommentCommandInfo.inc...
+[1786/2627] Building CommentHTMLNamedCharacterReferences.inc...
+[1787/2627] Updating CommentHTMLNamedCharacterReferences.inc...
+[1788/2627] Building CommentCommandList.inc...
+[1789/2627] Updating CommentCommandList.inc...
+[1790/2627] Building AttrList.inc...
+[1791/2627] Building DiagnosticASTKinds.inc...
+[1792/2627] Updating AttrList.inc...
+[1793/2627] Building DiagnosticAnalysisKinds.inc...
+[1794/2627] Updating DiagnosticAnalysisKinds.inc...
+[1795/2627] Building DiagnosticCommentKinds.inc...
+[1796/2627] Updating DiagnosticCommentKinds.inc...
+[1797/2627] Building DiagnosticFrontendKinds.inc...
+[1798/2627] Updating DiagnosticASTKinds.inc...
+[1799/2627] Building DiagnosticLexKinds.inc...
+[1800/2627] Updating DiagnosticFrontendKinds.inc...
+[1801/2627] Building DiagnosticCommonKinds.inc...
+[1802/2627] Building DiagnosticDriverKinds.inc...
+[1803/2627] Updating DiagnosticCommonKinds.inc...
+[1804/2627] Updating DiagnosticLexKinds.inc...
+[1805/2627] Building AttrParserStringSwitches.inc...
+[1806/2627] Building DiagnosticIndexName.inc...
+[1807/2627] Updating DiagnosticDriverKinds.inc...
+[1808/2627] Updating AttrParserStringSwitches.inc...
+[1809/2627] Building DiagnosticSemaKinds.inc...
+[1810/2627] Updating DiagnosticSemaKinds.inc...
+[1811/2627] Building DiagnosticSerializationKinds.inc...
+[1812/2627] Building DiagnosticParseKinds.inc...
+[1813/2627] Generating ../../bin/llvm-lib
+[1814/2627] Generating ../../bin/llvm-ranlib
+[1815/2627] Building AttrHasAttributeImpl.inc...
+[1816/2627] Updating DiagnosticSerializationKinds.inc...
+[1817/2627] Updating DiagnosticIndexName.inc...
+[1818/2627] Building DiagnosticGroups.inc...
+[1819/2627] Updating AttrHasAttributeImpl.inc...
+[1820/2627] Copying clang's xsaveintrin.h...
+[1821/2627] Copying clang's xsaveoptintrin.h...
+[1822/2627] Building arm_neon.inc...
+[1823/2627] Updating DiagnosticParseKinds.inc...
+[1824/2627] Building AttrTemplateInstantiate.inc...
+[1825/2627] Updating arm_neon.inc...
+[1826/2627] Building AttrParsedAttrList.inc...
+[1827/2627] Updating AttrTemplateInstantiate.inc...
+[1828/2627] Updating AttrParsedAttrList.inc...
+[1829/2627] Building AttrSpellingListIndex.inc...
+[1830/2627] Building AttrPCHRead.inc...
+[1831/2627] Updating DiagnosticGroups.inc...
+[1832/2627] Updating AttrPCHRead.inc...
+[1833/2627] Building AttrParsedAttrKinds.inc...
+[1834/2627] Building AttrParsedAttrImpl.inc...
+[1835/2627] Updating AttrParsedAttrImpl.inc...
+[1836/2627] Copying clang's avx2intrin.h...
+[1837/2627] Copying clang's altivec.h...
+[1838/2627] Building AttrPCHWrite.inc...
+[1839/2627] Updating AttrSpellingListIndex.inc...
+[1840/2627] Copying clang's arm_acle.h...
+[1841/2627] Copying clang's avx512bwintrin.h...
+[1842/2627] Copying clang's ammintrin.h...
+[1843/2627] Updating AttrPCHWrite.inc...
+[1844/2627] Copying clang's avx512cdintrin.h...
+[1845/2627] Copying clang's avx512erintrin.h...
+[1846/2627] Copying clang's avx512fintrin.h...
+[1847/2627] Copying clang's avx512vlbwintrin.h...
+[1848/2627] Updating AttrParsedAttrKinds.inc...
+[1849/2627] Copying clang's adxintrin.h...
+[1850/2627] Copying clang's avx512vlintrin.h...
+[1851/2627] Copying clang's avx512vldqintrin.h...
+[1852/2627] Building arm_neon.h...
+[1853/2627] Copying clang's avx512dqintrin.h...
+[1854/2627] Copying clang's avx512vbmiintrin.h...
+[1855/2627] Copying clang's avxintrin.h...
+[1856/2627] Copying clang's pkuintrin.h...
+[1857/2627] Copying clang's bmi2intrin.h...
+[1858/2627] Copying clang's avx512vbmivlintrin.h...
+[1859/2627] Copying clang's __clang_cuda_cmath.h...
+[1860/2627] Copying clang's bmiintrin.h...
+[1861/2627] Copying clang's cpuid.h...
+[1862/2627] Copying clang's __clang_cuda_runtime_wrapper.h...
+[1863/2627] Copying clang's emmintrin.h...
+[1864/2627] Copying clang's f16cintrin.h...
+[1865/2627] Copying clang's cuda_builtin_vars.h...
+[1866/2627] Copying clang's float.h...
+[1867/2627] Copying clang's fma4intrin.h...
+[1868/2627] Copying clang's fmaintrin.h...
+[1869/2627] Copying clang's fxsrintrin.h...
+[1870/2627] Copying clang's mm3dnow.h...
+[1871/2627] Copying clang's mmintrin.h...
+[1872/2627] Copying clang's mm_malloc.h...
+[1873/2627] Copying clang's inttypes.h...
+[1874/2627] Copying clang's iso646.h...
+[1875/2627] Copying clang's htmintrin.h...
+[1876/2627] Copying clang's unwind.h...
+[1877/2627] Copying clang's htmxlintrin.h...
+[1878/2627] Copying clang's ia32intrin.h...
+[1879/2627] Copying clang's immintrin.h...
+[1880/2627] Copying clang's Intrin.h...
+[1881/2627] Copying clang's limits.h...
+[1882/2627] Copying clang's lzcntintrin.h...
+[1883/2627] Copying clang's module.modulemap...
+[1884/2627] Copying clang's nmmintrin.h...
+[1885/2627] Copying clang's pmmintrin.h...
+[1886/2627] Copying clang's prfchwintrin.h...
+[1887/2627] Copying clang's stdarg.h...
+[1888/2627] Copying clang's stdbool.h...
+[1889/2627] Copying clang's stddef.h...
+[1890/2627] Copying clang's s390intrin.h...
+[1891/2627] Copying clang's shaintrin.h...
+[1892/2627] Copying clang's popcntintrin.h...
+[1893/2627] Copying clang's rdseedintrin.h...
+[1894/2627] Copying clang's rtmintrin.h...
+[1895/2627] Copying clang's smmintrin.h...
+[1896/2627] Copying clang's stdalign.h...
+[1897/2627] Copying clang's __stddef_max_align_t.h...
+[1898/2627] Copying clang's vadefs.h...
+[1899/2627] Copying clang's varargs.h...
+[1900/2627] Copying clang's vecintrin.h...
+[1901/2627] Copying clang's tbmintrin.h...
+[1902/2627] Copying clang's tgmath.h...
+[1903/2627] Copying clang's stdatomic.h...
+[1904/2627] Copying clang's stdint.h...
+[1905/2627] Copying clang's stdnoreturn.h...
+[1906/2627] Copying clang's tmmintrin.h...
+[1907/2627] Copying clang's __wmmintrin_aes.h...
+[1908/2627] Copying clang's wmmintrin.h...
+[1909/2627] Copying clang's __wmmintrin_pclmul.h...
+[1910/2627] Copying clang's x86intrin.h...
+[1911/2627] Copying clang's xmmintrin.h...
+[1912/2627] Copying clang's xopintrin.h...
+[1913/2627] Copying clang's xsavecintrin.h...
+[1914/2627] Copying clang's xsavesintrin.h...
+[1915/2627] Copying clang's xtestintrin.h...
+[1916/2627] Copying clang's avx512ifmaintrin.h...
+[1917/2627] Copying clang's avx512ifmavlintrin.h...
+[1918/2627] Generating SVNVersion.inc
+[1919/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/HeaderMap.cpp.o
+[1920/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/LiteralSupport.cpp.o
+-- Found Subversion: /usr/bin/svn (found version "1.6.17") 
+[1921/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/CharInfo.cpp.o
+[1922/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Attributes.cpp.o
+[1923/2627] Updating arm_neon.h...
+[1924/2627] Copying clang's arm_neon.h...
+[1925/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/ObjCRuntime.cpp.o
+[1926/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Builtins.cpp.o
+[1927/2627] Linking CXX static library lib/libLLVMPasses.a
+[1928/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Diagnostic.cpp.o
+[1929/2627] Linking CXX shared library lib/libLTO.so
+[1930/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/DiagnosticIDs.cpp.o
+[1931/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/DiagnosticOptions.cpp.o
+[1932/2627] Linking CXX shared module lib/LLVMgold.so
+[1933/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/FileManager.cpp.o
+[1934/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/FileSystemStatCache.cpp.o
+[1935/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/IdentifierTable.cpp.o
+[1936/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/LangOptions.cpp.o
+[1937/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/TokenKinds.cpp.o
+[1938/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Module.cpp.o
+[1939/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/OpenMPKinds.cpp.o
+[1940/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/OperatorPrecedence.cpp.o
+[1941/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SanitizerBlacklist.cpp.o
+[1942/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Sanitizers.cpp.o
+[1943/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SourceLocation.cpp.o
+[1944/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/SourceManager.cpp.o
+[1945/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/TargetInfo.cpp.o
+[1946/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/VersionTuple.cpp.o
+[1947/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Targets.cpp.o
+[1948/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Version.cpp.o
+[1949/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/VirtualFileSystem.cpp.o
+[1950/2627] Building CXX object tools/clang/lib/Basic/CMakeFiles/clangBasic.dir/Warnings.cpp.o
+[1951/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPCaching.cpp.o
+[1952/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPCallbacks.cpp.o
+[1953/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPMacroExpansion.cpp.o
+[1954/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/ModuleMap.cpp.o
+[1955/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/MacroInfo.cpp.o
+[1956/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/MacroArgs.cpp.o
+[1957/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPConditionalDirectiveRecord.cpp.o
+[1958/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Lexer.cpp.o
+[1959/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/HeaderSearch.cpp.o
+[1960/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseDeclCXX.cpp.o
+[1961/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPDirectives.cpp.o
+[1962/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPExpressions.cpp.o
+[1963/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PPLexerChange.cpp.o
+[1964/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PreprocessingRecord.cpp.o
+[1965/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PTHLexer.cpp.o
+[1966/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Pragma.cpp.o
+[1967/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/PreprocessorLexer.cpp.o
+[1968/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/Preprocessor.cpp.o
+[1969/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/TokenConcatenation.cpp.o
+[1970/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/ScratchBuffer.cpp.o
+[1971/2627] Building CXX object tools/clang/lib/Lex/CMakeFiles/clangLex.dir/TokenLexer.cpp.o
+[1972/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseAST.cpp.o
+[1973/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseExprCXX.cpp.o
+[1974/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseDecl.cpp.o
+[1975/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseCXXInlineMethods.cpp.o
+[1976/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseOpenMP.cpp.o
+[1977/2627] Linking CXX static library lib/libclangBasic.a
+[1978/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseExpr.cpp.o
+[1979/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseStmtAsm.cpp.o
+[1980/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseInit.cpp.o
+[1981/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseObjc.cpp.o
+[1982/2627] Linking CXX static library lib/libclangLex.a
+[1983/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParsePragma.cpp.o
+[1984/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseStmt.cpp.o
+[1985/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseTemplate.cpp.o
+[1986/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/ParseTentative.cpp.o
+[1987/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/APValue.cpp.o
+[1988/2627] Building CXX object tools/clang/lib/Parse/CMakeFiles/clangParse.dir/Parser.cpp.o
+[1989/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclarationName.cpp.o
+[1990/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTDumper.cpp.o
+[1991/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTImporter.cpp.o
+[1992/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTConsumer.cpp.o
+[1993/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTContext.cpp.o
+[1994/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTDiagnostic.cpp.o
+[1995/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ASTTypeTraits.cpp.o
+[1996/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/AttrImpl.cpp.o
+[1997/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentBriefParser.cpp.o
+[1998/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Comment.cpp.o
+[1999/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CXXInheritance.cpp.o
+[2000/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclBase.cpp.o
+[2001/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentCommandTraits.cpp.o
+[2002/2627] Linking CXX static library lib/libclangParse.a
+[2003/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentLexer.cpp.o
+[2004/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentParser.cpp.o
+[2005/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/CommentSema.cpp.o
+[2006/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Decl.cpp.o
+[2007/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprClassification.cpp.o
+[2008/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumMangle.cpp.o
+[2009/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclCXX.cpp.o
+[2010/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclFriend.cpp.o
+[2011/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclGroup.cpp.o
+[2012/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclObjC.cpp.o
+[2013/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclOpenMP.cpp.o
+[2014/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclPrinter.cpp.o
+[2015/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/DeclTemplate.cpp.o
+[2016/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Expr.cpp.o
+[2017/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RawCommentList.cpp.o
+[2018/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExternalASTSource.cpp.o
+[2019/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprConstant.cpp.o
+[2020/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprCXX.cpp.o
+[2021/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ExprObjC.cpp.o
+[2022/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/MicrosoftCXXABI.cpp.o
+[2023/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/InheritViz.cpp.o
+[2024/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ItaniumCXXABI.cpp.o
+[2025/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Mangle.cpp.o
+[2026/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/MicrosoftMangle.cpp.o
+[2027/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/NestedNameSpecifier.cpp.o
+[2028/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/NSAPI.cpp.o
+[2029/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/OpenMPClause.cpp.o
+[2030/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/ParentMap.cpp.o
+[2031/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RecordLayoutBuilder.cpp.o
+[2032/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/RecordLayout.cpp.o
+[2033/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/SelectorLocationsKind.cpp.o
+[2034/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Stmt.cpp.o
+[2035/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtCXX.cpp.o
+[2036/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtIterator.cpp.o
+[2037/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtObjC.cpp.o
+[2038/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtOpenMP.cpp.o
+[2039/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtPrinter.cpp.o
+[2040/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtProfile.cpp.o
+[2041/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/StmtViz.cpp.o
+[2042/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateBase.cpp.o
+[2043/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TemplateName.cpp.o
+[2044/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/Type.cpp.o
+[2045/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypeLoc.cpp.o
+[2046/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/TypePrinter.cpp.o
+[2047/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTableBuilder.cpp.o
+[2048/2627] Building CXX object tools/clang/lib/AST/CMakeFiles/clangAST.dir/VTTBuilder.cpp.o
+[2049/2627] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/VariantValue.cpp.o
+[2050/2627] Building CXX object tools/clang/lib/ASTMatchers/CMakeFiles/clangASTMatchers.dir/ASTMatchFinder.cpp.o
+[2051/2627] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Diagnostics.cpp.o
+[2052/2627] Building CXX object tools/clang/lib/ASTMatchers/CMakeFiles/clangASTMatchers.dir/ASTMatchersInternal.cpp.o
+[2053/2627] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Parser.cpp.o
+[2054/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/DelayedDiagnostic.cpp.o
+[2055/2627] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/clangDynamicASTMatchers.dir/Registry.cpp.o
+[2056/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AnalysisBasedWarnings.cpp.o
+[2057/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/AttributeList.cpp.o
+[2058/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/CodeCompleteConsumer.cpp.o
+[2059/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/DeclSpec.cpp.o
+[2060/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/IdentifierResolver.cpp.o
+[2061/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/JumpDiagnostics.cpp.o
+[2062/2627] Linking CXX static library lib/libclangAST.a
+[2063/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCXXScopeSpec.cpp.o
+[2064/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/MultiplexExternalSemaSource.cpp.o
+[2065/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/Scope.cpp.o
+[2066/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/ScopeInfo.cpp.o
+[2067/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclAttr.cpp.o
+[2068/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/Sema.cpp.o
+[2069/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaAccess.cpp.o
+[2070/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaAttr.cpp.o
+[2071/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaChecking.cpp.o
+[2072/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCast.cpp.o
+[2073/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCodeComplete.cpp.o
+[2074/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaConsumer.cpp.o
+[2075/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCoroutine.cpp.o
+[2076/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprMember.cpp.o
+[2077/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaCUDA.cpp.o
+[2078/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDecl.cpp.o
+[2079/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclObjC.cpp.o
+[2080/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaDeclCXX.cpp.o
+[2081/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExceptionSpec.cpp.o
+[2082/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaObjCProperty.cpp.o
+[2083/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExpr.cpp.o
+[2084/2627] Linking CXX static library lib/libclangASTMatchers.a
+[2085/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprCXX.cpp.o
+[2086/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaExprObjC.cpp.o
+[2087/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaFixItUtils.cpp.o
+[2088/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmtAttr.cpp.o
+[2089/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaInit.cpp.o
+[2090/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaLambda.cpp.o
+[2091/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaLookup.cpp.o
+[2092/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaOverload.cpp.o
+[2093/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaOpenMP.cpp.o
+[2094/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaPseudoObject.cpp.o
+[2095/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmt.cpp.o
+[2096/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaStmtAsm.cpp.o
+[2097/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplate.cpp.o
+[2098/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateDeduction.cpp.o
+[2099/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/TypeLocBuilder.cpp.o
+[2100/2627] Linking CXX static library lib/libclangDynamicASTMatchers.a
+[2101/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiate.cpp.o
+[2102/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateInstantiateDecl.cpp.o
+[2103/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaTemplateVariadic.cpp.o
+[2104/2627] Building CXX object tools/clang/lib/Sema/CMakeFiles/clangSema.dir/SemaType.cpp.o
+[2105/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/BackendUtil.cpp.o
+[2106/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCXXABI.cpp.o
+[2107/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDABuiltin.cpp.o
+[2108/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGAtomic.cpp.o
+[2109/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGBlocks.cpp.o
+[2110/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGBuiltin.cpp.o
+[2111/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDANV.cpp.o
+[2112/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCUDARuntime.cpp.o
+[2113/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCXX.cpp.o
+[2114/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCall.cpp.o
+[2115/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGClass.cpp.o
+[2116/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGCleanup.cpp.o
+[2117/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDebugInfo.cpp.o
+[2118/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDecl.cpp.o
+[2119/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGDeclCXX.cpp.o
+[2120/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGException.cpp.o
+[2121/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExpr.cpp.o
+[2122/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprAgg.cpp.o
+[2123/2627] Linking CXX static library lib/libclangSema.a
+[2124/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprCXX.cpp.o
+[2125/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprComplex.cpp.o
+[2126/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprConstant.cpp.o
+[2127/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGExprScalar.cpp.o
+[2128/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGLoopInfo.cpp.o
+[2129/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjC.cpp.o
+[2130/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCGNU.cpp.o
+[2131/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCMac.cpp.o
+[2132/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGObjCRuntime.cpp.o
+[2133/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenCLRuntime.cpp.o
+[2134/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenMPRuntime.cpp.o
+[2135/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGVTables.cpp.o
+[2136/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGOpenMPRuntimeNVPTX.cpp.o
+[2137/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGRecordLayoutBuilder.cpp.o
+[2138/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGStmt.cpp.o
+[2139/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGStmtOpenMP.cpp.o
+[2140/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CGVTT.cpp.o
+[2141/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenABITypes.cpp.o
+[2142/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenAction.cpp.o
+[2143/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenFunction.cpp.o
+[2144/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenModule.cpp.o
+[2145/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenPGO.cpp.o
+[2146/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenTBAA.cpp.o
+[2147/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CodeGenTypes.cpp.o
+[2148/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/CoverageMappingGen.cpp.o
+[2149/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ItaniumCXXABI.cpp.o
+[2150/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/MicrosoftCXXABI.cpp.o
+[2151/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ModuleBuilder.cpp.o
+[2152/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/ObjectFilePCHContainerOperations.cpp.o
+[2153/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/SanitizerMetadata.cpp.o
+[2154/2627] Building CXX object tools/clang/lib/CodeGen/CMakeFiles/clangCodeGen.dir/TargetInfo.cpp.o
+[2155/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/AnalysisDeclContext.cpp.o
+[2156/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CocoaConventions.cpp.o
+[2157/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFGReachabilityAnalysis.cpp.o
+[2158/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFG.cpp.o
+[2159/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CFGStmtMap.cpp.o
+[2160/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/BodyFarm.cpp.o
+[2161/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CallGraph.cpp.o
+[2162/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/Consumed.cpp.o
+[2163/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/CodeInjector.cpp.o
+[2164/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/Dominators.cpp.o
+[2165/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/FormatString.cpp.o
+[2166/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/LiveVariables.cpp.o
+[2167/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ObjCNoReturn.cpp.o
+[2168/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PostOrderCFGView.cpp.o
+[2169/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PrintfFormatString.cpp.o
+[2170/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ProgramPoint.cpp.o
+[2171/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ReachableCode.cpp.o
+[2172/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/PseudoConstantAnalysis.cpp.o
+[2173/2627] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/DeltaTree.cpp.o
+[2174/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ScanfFormatString.cpp.o
+[2175/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafety.cpp.o
+[2176/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyCommon.cpp.o
+[2177/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyLogical.cpp.o
+[2178/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/ThreadSafetyTIL.cpp.o
+[2179/2627] Building CXX object tools/clang/lib/Analysis/CMakeFiles/clangAnalysis.dir/UninitializedValues.cpp.o
+[2180/2627] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/Commit.cpp.o
+[2181/2627] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/RewriteObjCFoundationAPI.cpp.o
+[2182/2627] Building CXX object tools/clang/lib/Edit/CMakeFiles/clangEdit.dir/EditedSource.cpp.o
+[2183/2627] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/HTMLRewrite.cpp.o
+[2184/2627] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/RewriteRope.cpp.o
+[2185/2627] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/Rewriter.cpp.o
+[2186/2627] Building CXX object tools/clang/lib/Rewrite/CMakeFiles/clangRewrite.dir/TokenRewriter.cpp.o
+[2187/2627] Linking CXX static library lib/libclangCodeGen.a
+[2188/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ARCMT.cpp.o
+[2189/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ARCMTActions.cpp.o
+[2190/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/FileRemapper.cpp.o
+[2191/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/ObjCMT.cpp.o
+[2192/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/PlistReporter.cpp.o
+[2193/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransAPIUses.cpp.o
+[2194/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransARCAssign.cpp.o
+[2195/2627] Linking CXX static library lib/libclangRewrite.a
+[2196/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransAutoreleasePool.cpp.o
+[2197/2627] Linking CXX static library lib/libclangEdit.a
+[2198/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransBlockObjCVariable.cpp.o
+[2199/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransEmptyStatementsAndDealloc.cpp.o
+[2200/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransGCAttrs.cpp.o
+[2201/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransGCCalls.cpp.o
+[2202/2627] Linking CXX static library lib/libclangAnalysis.a
+[2203/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProperties.cpp.o
+[2204/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransProtectedScope.cpp.o
+[2205/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransRetainReleaseDealloc.cpp.o
+[2206/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransUnbridgedCasts.cpp.o
+[2207/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransUnusedInitDelegate.cpp.o
+[2208/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransZeroOutPropsInDealloc.cpp.o
+[2209/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/TransformActions.cpp.o
+[2210/2627] Building CXX object tools/clang/lib/ARCMigrate/CMakeFiles/clangARCMigrate.dir/Transforms.cpp.o
+[2211/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Driver.cpp.o
+[2212/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Action.cpp.o
+[2213/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Compilation.cpp.o
+[2214/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/CrossWindowsToolChain.cpp.o
+[2215/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/DriverOptions.cpp.o
+[2216/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/MinGWToolChain.cpp.o
+[2217/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Job.cpp.o
+[2218/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/SanitizerArgs.cpp.o
+[2219/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Multilib.cpp.o
+[2220/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/MSVCToolChain.cpp.o
+[2221/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChain.cpp.o
+[2222/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Phases.cpp.o
+[2223/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Tool.cpp.o
+[2224/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChains.cpp.o
+[2225/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Tools.cpp.o
+[2226/2627] Building CXX object tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/Types.cpp.o
+[2227/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTCommon.cpp.o
+[2228/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReader.cpp.o
+[2229/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReaderDecl.cpp.o
+[2230/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTReaderStmt.cpp.o
+[2231/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriter.cpp.o
+[2232/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriterDecl.cpp.o
+[2233/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ASTWriterStmt.cpp.o
+[2234/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/GeneratePCH.cpp.o
+[2235/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/GlobalModuleIndex.cpp.o
+[2236/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/Module.cpp.o
+[2237/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ModuleFileExtension.cpp.o
+[2238/2627] Building CXX object tools/clang/lib/Serialization/CMakeFiles/clangSerialization.dir/ModuleManager.cpp.o
+[2239/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTConsumers.cpp.o
+[2240/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ChainedDiagnosticConsumer.cpp.o
+[2241/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTMerge.cpp.o
+[2242/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ASTUnit.cpp.o
+[2243/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CacheTokens.cpp.o
+[2244/2627] Linking CXX static library lib/libclangDriver.a
+[2245/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ChainedIncludesSource.cpp.o
+[2246/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CodeGenOptions.cpp.o
+[2247/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CompilerInstance.cpp.o
+[2248/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CompilerInvocation.cpp.o
+[2249/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/CreateInvocationFromCommandLine.cpp.o
+[2250/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DependencyFile.cpp.o
+[2251/2627] Linking CXX static library lib/libclangARCMigrate.a
+[2252/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DependencyGraph.cpp.o
+[2253/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/DiagnosticRenderer.cpp.o
+[2254/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendAction.cpp.o
+[2255/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendActions.cpp.o
+[2256/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/FrontendOptions.cpp.o
+[2257/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/HeaderIncludeGen.cpp.o
+[2258/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/InitHeaderSearch.cpp.o
+[2259/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/InitPreprocessor.cpp.o
+[2260/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LangStandards.cpp.o
+[2261/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LayoutOverrideSource.cpp.o
+[2262/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/LogDiagnosticPrinter.cpp.o
+[2263/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/ModuleDependencyCollector.cpp.o
+[2264/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/MultiplexConsumer.cpp.o
+[2265/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/PCHContainerOperations.cpp.o
+[2266/2627] Linking CXX static library lib/libclangSerialization.a
+[2267/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/PrintPreprocessedOutput.cpp.o
+[2268/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/SerializedDiagnosticPrinter.cpp.o
+[2269/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/SerializedDiagnosticReader.cpp.o
+[2270/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TestModuleFileExtension.cpp.o
+[2271/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnostic.cpp.o
+[2272/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnosticBuffer.cpp.o
+[2273/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/TextDiagnosticPrinter.cpp.o
+[2274/2627] Building CXX object tools/clang/lib/Frontend/CMakeFiles/clangFrontend.dir/VerifyDiagnosticConsumer.cpp.o
+[2275/2627] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/FileMatchTrie.cpp.o
+[2276/2627] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/FrontendActions.cpp.o
+[2277/2627] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/FixItRewriter.cpp.o
+[2278/2627] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/HTMLPrint.cpp.o
+[2279/2627] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/InclusionRewriter.cpp.o
+[2280/2627] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteMacros.cpp.o
+[2281/2627] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteModernObjC.cpp.o
+[2282/2627] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteObjC.cpp.o
+[2283/2627] Building CXX object tools/clang/lib/Frontend/Rewrite/CMakeFiles/clangRewriteFrontend.dir/RewriteTest.cpp.o
+[2284/2627] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/CommonOptionsParser.cpp.o
+[2285/2627] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/CompilationDatabase.cpp.o
+[2286/2627] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/RefactoringCallbacks.cpp.o
+[2287/2627] Linking CXX static library lib/libclangFrontend.a
+[2288/2627] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/ArgumentsAdjusters.cpp.o
+[2289/2627] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/JSONCompilationDatabase.cpp.o
+[2290/2627] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/Refactoring.cpp.o
+[2291/2627] Building CXX object tools/clang/lib/FrontendTool/CMakeFiles/clangFrontendTool.dir/ExecuteCompilerInvocation.cpp.o
+[2292/2627] Building CXX object tools/clang/lib/Tooling/CMakeFiles/clangTooling.dir/Tooling.cpp.o
+[2293/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexingAction.cpp.o
+[2294/2627] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/Lookup.cpp.o
+[2295/2627] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/Replacement.cpp.o
+[2296/2627] Building CXX object tools/clang/lib/Tooling/Core/CMakeFiles/clangToolingCore.dir/QualTypeNames.cpp.o
+[2297/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/CodegenNameGenerator.cpp.o
+[2298/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/CommentToXML.cpp.o
+[2299/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexBody.cpp.o
+[2300/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexDecl.cpp.o
+[2301/2627] Linking CXX static library lib/libclangFrontendTool.a
+[2302/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexingContext.cpp.o
+[2303/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexSymbol.cpp.o
+[2304/2627] Linking CXX static library lib/libclangToolingCore.a
+[2305/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/IndexTypeSourceInfo.cpp.o
+[2306/2627] Building CXX object tools/clang/lib/Index/CMakeFiles/clangIndex.dir/USRGeneration.cpp.o
+[2307/2627] Linking CXX static library lib/libclangTooling.a
+[2308/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/APSIntType.cpp.o
+[2309/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/AnalysisManager.cpp.o
+[2310/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/AnalyzerOptions.cpp.o
+[2311/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BasicValueFactory.cpp.o
+[2312/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BlockCounter.cpp.o
+[2313/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/IssueHash.cpp.o
+[2314/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporter.cpp.o
+[2315/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/BugReporterVisitors.cpp.o
+[2316/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CallEvent.cpp.o
+[2317/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Checker.cpp.o
+[2318/2627] Linking CXX static library lib/libclangRewriteFrontend.a
+[2319/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerContext.cpp.o
+[2320/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerHelpers.cpp.o
+[2321/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerManager.cpp.o
+[2322/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CheckerRegistry.cpp.o
+[2323/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CommonBugCategories.cpp.o
+[2324/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ConstraintManager.cpp.o
+[2325/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/CoreEngine.cpp.o
+[2326/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/DynamicTypeMap.cpp.o
+[2327/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Environment.cpp.o
+[2328/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExplodedGraph.cpp.o
+[2329/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngine.cpp.o
+[2330/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineC.cpp.o
+[2331/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineCXX.cpp.o
+[2332/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineObjC.cpp.o
+[2333/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ExprEngineCallAndReturn.cpp.o
+[2334/2627] Linking CXX static library lib/libclangIndex.a
+[2335/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/FunctionSummary.cpp.o
+[2336/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/HTMLDiagnostics.cpp.o
+[2337/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/LoopWidening.cpp.o
+[2338/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/MemRegion.cpp.o
+[2339/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/PathDiagnostic.cpp.o
+[2340/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/PlistDiagnostics.cpp.o
+[2341/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/ProgramState.cpp.o
+[2342/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/RangeConstraintManager.cpp.o
+[2343/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/RegionStore.cpp.o
+[2344/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SValBuilder.cpp.o
+[2345/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SVals.cpp.o
+[2346/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SimpleConstraintManager.cpp.o
+[2347/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SimpleSValBuilder.cpp.o
+[2348/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/Store.cpp.o
+[2349/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SubEngine.cpp.o
+[2350/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Core/CMakeFiles/clangStaticAnalyzerCore.dir/SymbolManager.cpp.o
+[2351/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/AnalysisConsumer.cpp.o
+[2352/2627] Building Checkers.inc...
+[2353/2627] Updating Checkers.inc...
+[2354/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AnalyzerStatsChecker.cpp.o
+[2355/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/AllocationDiagnostics.cpp.o
+[2356/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ArrayBoundChecker.cpp.o
+[2357/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ArrayBoundCheckerV2.cpp.o
+[2358/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BasicObjCFoundationChecks.cpp.o
+[2359/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BoolAssignmentChecker.cpp.o
+[2360/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/BuiltinFunctionChecker.cpp.o
+[2361/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CStringChecker.cpp.o
+[2362/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CStringSyntaxChecker.cpp.o
+[2363/2627] Linking CXX static library lib/libclangStaticAnalyzerCore.a
+[2364/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CallAndMessageChecker.cpp.o
+[2365/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CastSizeChecker.cpp.o
+[2366/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CastToStructChecker.cpp.o
+[2367/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckObjCDealloc.cpp.o
+[2368/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckObjCInstMethSignature.cpp.o
+[2369/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckSecuritySyntaxOnly.cpp.o
+[2370/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckSizeofPointer.cpp.o
+[2371/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/CheckerDocumentation.cpp.o
+[2372/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ChrootChecker.cpp.o
+[2373/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ClangCheckers.cpp.o
+[2374/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DeadStoresChecker.cpp.o
+[2375/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DebugCheckers.cpp.o
+[2376/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DereferenceChecker.cpp.o
+[2377/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DirectIvarAssignment.cpp.o
+[2378/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DivZeroChecker.cpp.o
+[2379/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DynamicTypePropagation.cpp.o
+[2380/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/DynamicTypeChecker.cpp.o
+[2381/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ExprInspectionChecker.cpp.o
+[2382/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/FixedAddressChecker.cpp.o
+[2383/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/GenericTaintChecker.cpp.o
+[2384/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/IdenticalExprChecker.cpp.o
+[2385/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/IvarInvalidationChecker.cpp.o
+[2386/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/LLVMConventionsChecker.cpp.o
+[2387/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/LocalizationChecker.cpp.o
+[2388/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MacOSKeychainAPIChecker.cpp.o
+[2389/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MacOSXAPIChecker.cpp.o
+[2390/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocChecker.cpp.o
+[2391/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocOverflowSecurityChecker.cpp.o
+[2392/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/MallocSizeofChecker.cpp.o
+[2393/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NSAutoreleasePoolChecker.cpp.o
+[2394/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NSErrorChecker.cpp.o
+[2395/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NoReturnFunctionChecker.cpp.o
+[2396/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NonNullParamChecker.cpp.o
+[2397/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/NullabilityChecker.cpp.o
+[2398/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCAtSyncChecker.cpp.o
+[2399/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCContainersASTChecker.cpp.o
+[2400/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCContainersChecker.cpp.o
+[2401/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCMissingSuperCallChecker.cpp.o
+[2402/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCSelfInitChecker.cpp.o
+[2403/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCSuperDeallocChecker.cpp.o
+[2404/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ObjCUnusedIVarsChecker.cpp.o
+[2405/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PaddingChecker.cpp.o
+[2406/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PointerArithChecker.cpp.o
+[2407/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PointerSubChecker.cpp.o
+[2408/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/PthreadLockChecker.cpp.o
+[2409/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/RetainCountChecker.cpp.o
+[2410/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ReturnPointerRangeChecker.cpp.o
+[2411/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/ReturnUndefChecker.cpp.o
+[2412/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/SimpleStreamChecker.cpp.o
+[2413/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/StackAddrEscapeChecker.cpp.o
+[2414/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/StreamChecker.cpp.o
+[2415/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TaintTesterChecker.cpp.o
+[2416/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TestAfterDivZeroChecker.cpp.o
+[2417/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/TraversalChecker.cpp.o
+[2418/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefBranchChecker.cpp.o
+[2419/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefCapturedBlockVarChecker.cpp.o
+[2420/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefResultChecker.cpp.o
+[2421/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefinedArraySubscriptChecker.cpp.o
+[2422/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UndefinedAssignmentChecker.cpp.o
+[2423/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UnixAPIChecker.cpp.o
+[2424/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/UnreachableCodeChecker.cpp.o
+[2425/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VforkChecker.cpp.o
+[2426/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VLASizeChecker.cpp.o
+[2427/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Checkers/CMakeFiles/clangStaticAnalyzerCheckers.dir/VirtualCallChecker.cpp.o
+[2428/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/FrontendActions.cpp.o
+[2429/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/CheckerRegistration.cpp.o
+[2430/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelConsumer.cpp.o
+[2431/2627] Building CXX object tools/clang/lib/StaticAnalyzer/Frontend/CMakeFiles/clangStaticAnalyzerFrontend.dir/ModelInjector.cpp.o
+[2432/2627] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/ContinuationIndenter.cpp.o
+[2433/2627] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/TokenAnnotator.cpp.o
+[2434/2627] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineFormatter.cpp.o
+[2435/2627] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/BreakableToken.cpp.o
+[2436/2627] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/FormatToken.cpp.o
+[2437/2627] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/Format.cpp.o
+[2438/2627] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/UnwrappedLineParser.cpp.o
+[2439/2627] Building CXX object tools/clang/lib/Format/CMakeFiles/clangFormat.dir/WhitespaceManager.cpp.o
+[2440/2627] Linking CXX static library lib/libclangStaticAnalyzerCheckers.a
+[2441/2627] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/DiagTool.cpp.o
+[2442/2627] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ShowEnabledWarnings.cpp.o
+[2443/2627] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/TreeView.cpp.o
+[2444/2627] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/diagtool_main.cpp.o
+[2445/2627] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/DiagnosticNames.cpp.o
+[2446/2627] Building CXX object tools/clang/tools/diagtool/CMakeFiles/diagtool.dir/ListWarnings.cpp.o
+[2447/2627] Building CXX object tools/clang/tools/arcmt-test/CMakeFiles/arcmt-test.dir/arcmt-test.cpp.o
+[2448/2627] Building CXX object tools/opt/CMakeFiles/opt.dir/NewPMDriver.cpp.o
+[2449/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/calc.c.o
+[2450/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/disassemble.c.o
+[2451/2627] Building CXX object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/echo.cpp.o
+[2452/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/module.c.o
+[2453/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/helpers.c.o
+[2454/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/metadata.c.o
+[2455/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/object.c.o
+[2456/2627] Building C object tools/llvm-c-test/CMakeFiles/llvm-c-test.dir/targets.c.o
+[2457/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ExternalSymbolDumper.cpp.o
+[2458/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/CompilandDumper.cpp.o
+[2459/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/ClassDefinitionDumper.cpp.o
+[2460/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/BuiltinDumper.cpp.o
+[2461/2627] Linking CXX static library lib/libclangStaticAnalyzerFrontend.a
+[2462/2627] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o
+[2463/2627] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o
+[2464/2627] Building CXX object tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o
+[2465/2627] Linking CXX executable bin/diagtool
+[2466/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/llvm-pdbdump.cpp.o
+[2467/2627] Linking CXX executable bin/llvm-c-test
+[2468/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/FunctionDumper.cpp.o
+[2469/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/LinePrinter.cpp.o
+[2470/2627] Linking CXX static library lib/libclangFormat.a
+[2471/2627] Building CXX object tools/clang/tools/clang-format/CMakeFiles/clang-format.dir/ClangFormat.cpp.o
+[2472/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/ARCMigrate.cpp.o
+[2473/2627] Building CXX object tools/clang/tools/clang-check/CMakeFiles/clang-check.dir/ClangCheck.cpp.o
+[2474/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/BuildSystem.cpp.o
+[2475/2627] Linking CXX executable bin/arcmt-test
+[2476/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o
+[2477/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCXX.cpp.o
+[2478/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexDiagnostic.cpp.o
+[2479/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o
+[2480/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexHigh.cpp.o
+[2481/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexInclusionStack.cpp.o
+[2482/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o
+[2483/2627] Linking CXX executable bin/clang-format
+[2484/2627] Linking CXX executable bin/clang-3.9
+[2485/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexUSRs.cpp.o
+[2486/2627] Linking CXX executable bin/clang-check
+[2487/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o
+[2488/2627] Creating executable symlink bin/clang
+[2489/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXComment.cpp.o
+[2490/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCursor.cpp.o
+[2491/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXIndexDataConsumer.cpp.o
+[2492/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCompilationDatabase.cpp.o
+[2493/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXLoadedDiagnostic.cpp.o
+[2494/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXSourceLocation.cpp.o
+[2495/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXStoredDiagnostic.cpp.o
+[2496/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXString.cpp.o
+[2497/2627] Building CXX object tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXType.cpp.o
+[2498/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPlugin.cpp.o
+[2499/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/BlinkGCPluginConsumer.cpp.o
+[2500/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/TypeDumper.cpp.o
+[2501/2627] Building CXX object tools/llvm-pdbdump/CMakeFiles/llvm-pdbdump.dir/VariableDumper.cpp.o
+[2502/2627] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/llvm-diff.cpp.o
+[2503/2627] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffConsumer.cpp.o
+[2504/2627] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DiffLog.cpp.o
+[2505/2627] Building CXX object tools/llvm-diff/CMakeFiles/llvm-diff.dir/DifferenceEngine.cpp.o
+[2506/2627] Linking CXX executable bin/llvm-pdbdump
+[2507/2627] Building CXX object tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/ChromeClassTester.cpp.o
+[2508/2627] Building CXX object tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsAction.cpp.o
+[2509/2627] Building CXX object tools/chrometools/a/plugins/CMakeFiles/libFindBadConstructs.dir/FindBadConstructsConsumer.cpp.o
+[2510/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckDispatchVisitor.cpp.o
+[2511/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFieldsVisitor.cpp.o
+[2512/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckFinalizerVisitor.cpp.o
+[2513/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckGCRootsVisitor.cpp.o
+[2514/2627] Linking CXX executable bin/llvm-diff
+[2515/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CheckTraceVisitor.cpp.o
+[2516/2627] Linking CXX shared library lib/libclang.so.3.9
+[2517/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/CollectVisitor.cpp.o
+[2518/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Config.cpp.o
+[2519/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/Edge.cpp.o
+[2520/2627] Creating library symlink lib/libclang.so
+[2521/2627] Building C object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/c-index-test.c.o
+[2522/2627] Building C object tools/clang/tools/c-arcmt-test/CMakeFiles/c-arcmt-test.dir/c-arcmt-test.c.o
+[2523/2627] Building CXX object tools/clang/tools/c-index-test/CMakeFiles/c-index-test.dir/core_main.cpp.o
+[2524/2627] Linking CXX executable bin/c-arcmt-test
+[2525/2627] Building CXX object tools/chrometools/a/blink_gc_plugin/CMakeFiles/libBlinkGCPlugin.dir/RecordInfo.cpp.o
+[2526/2627] Building CXX object tools/verify-uselistorder/CMakeFiles/verify-uselistorder.dir/verify-uselistorder.cpp.o
+[2527/2627] Creating export file for BugpointPasses
+[2528/2627] Building CXX object tools/llvm-split/CMakeFiles/llvm-split.dir/llvm-split.cpp.o
+[2529/2627] Building CXX object tools/lli/CMakeFiles/lli.dir/lli.cpp.o
+[2530/2627] Building CXX object tools/llvm-symbolizer/CMakeFiles/llvm-symbolizer.dir/llvm-symbolizer.cpp.o
+[2531/2627] Linking CXX executable bin/verify-uselistorder
+[2532/2627] Building CXX object tools/lli/CMakeFiles/lli.dir/OrcLazyJIT.cpp.o
+[2533/2627] Linking CXX executable bin/c-index-test
+[2534/2627] Linking CXX executable bin/llvm-split
+[2535/2627] Building CXX object tools/llc/CMakeFiles/llc.dir/llc.cpp.o
+[2536/2627] Building CXX object tools/llvm-bcanalyzer/CMakeFiles/llvm-bcanalyzer.dir/llvm-bcanalyzer.cpp.o
+[2537/2627] Building CXX object tools/lli/ChildTarget/CMakeFiles/lli-child-target.dir/ChildTarget.cpp.o
+[2538/2627] Linking CXX executable bin/llvm-symbolizer
+[2539/2627] Linking CXX shared module lib/libFindBadConstructs.so
+[2540/2627] Building CXX object tools/llvm-mcmarkup/CMakeFiles/llvm-mcmarkup.dir/llvm-mcmarkup.cpp.o
+[2541/2627] Linking CXX executable bin/llvm-lto
+[2542/2627] Building CXX object tools/sancov/CMakeFiles/sancov.dir/sancov.cc.o
+[2543/2627] Building CXX object tools/llvm-nm/CMakeFiles/llvm-nm.dir/llvm-nm.cpp.o
+[2544/2627] Linking CXX executable bin/llvm-mcmarkup
+[2545/2627] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/llvm-cxxdump.cpp.o
+[2546/2627] Building CXX object tools/llvm-mc/CMakeFiles/llvm-mc.dir/llvm-mc.cpp.o
+[2547/2627] Linking CXX executable bin/lli-child-target
+[2548/2627] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/llvm-objdump.cpp.o
+[2549/2627] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/COFFDump.cpp.o
+[2550/2627] Linking CXX executable bin/llc
+[2551/2627] Linking CXX executable bin/lli
+[2552/2627] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/ELFDump.cpp.o
+[2553/2627] Building CXX object tools/llvm-objdump/CMakeFiles/llvm-objdump.dir/MachODump.cpp.o
+[2554/2627] Building CXX object tools/llvm-cxxdump/CMakeFiles/llvm-cxxdump.dir/Error.cpp.o
+[2555/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/MachODumper.cpp.o
+[2556/2627] Building CXX object tools/opt/CMakeFiles/opt.dir/AnalysisWrappers.cpp.o
+[2557/2627] Linking CXX executable bin/llvm-nm
+[2558/2627] Building CXX object tools/llvm-mc/CMakeFiles/llvm-mc.dir/Disassembler.cpp.o
+[2559/2627] Linking CXX executable bin/llvm-cxxdump
+[2560/2627] Building CXX object tools/opt/CMakeFiles/opt.dir/BreakpointPrinter.cpp.o
+[2561/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/llvm-readobj.cpp.o
+[2562/2627] Building CXX object tools/opt/CMakeFiles/opt.dir/GraphPrinters.cpp.o
+[2563/2627] Building CXX object tools/opt/CMakeFiles/opt.dir/PassPrinters.cpp.o
+[2564/2627] Linking CXX executable bin/llvm-mc
+[2565/2627] Building CXX object tools/opt/CMakeFiles/opt.dir/PrintSCC.cpp.o
+[2566/2627] Building CXX object tools/opt/CMakeFiles/opt.dir/opt.cpp.o
+[2567/2627] Linking CXX executable bin/sancov
+[2568/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMAttributeParser.cpp.o
+[2569/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/StreamWriter.cpp.o
+[2570/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFImportDumper.cpp.o
+[2571/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ObjDumper.cpp.o
+[2572/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Win64EHDumper.cpp.o
+[2573/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ARMWinEHPrinter.cpp.o
+[2574/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/COFFDumper.cpp.o
+[2575/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o
+[2576/2627] Building CXX object tools/llvm-readobj/CMakeFiles/llvm-readobj.dir/Error.cpp.o
+[2577/2627] Building CXX object tools/llvm-dis/CMakeFiles/llvm-dis.dir/llvm-dis.cpp.o
+[2578/2627] Building CXX object tools/llvm-link/CMakeFiles/llvm-link.dir/llvm-link.cpp.o
+[2579/2627] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/llvm-cov.cpp.o
+[2580/2627] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageSummaryInfo.cpp.o
+[2581/2627] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/gcov.cpp.o
+[2582/2627] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CodeCoverage.cpp.o
+[2583/2627] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageFilters.cpp.o
+[2584/2627] Linking CXX executable bin/llvm-dis
+[2585/2627] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/CoverageReport.cpp.o
+[2586/2627] Linking CXX executable bin/opt
+[2587/2627] Linking CXX executable bin/llvm-link
+[2588/2627] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/SourceCoverageView.cpp.o
+[2589/2627] Building CXX object tools/llvm-cov/CMakeFiles/llvm-cov.dir/TestingSupport.cpp.o
+[2590/2627] Building CXX object tools/llvm-dwarfdump/CMakeFiles/llvm-dwarfdump.dir/llvm-dwarfdump.cpp.o
+[2591/2627] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/coff2yaml.cpp.o
+[2592/2627] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/elf2yaml.cpp.o
+[2593/2627] Building CXX object tools/obj2yaml/CMakeFiles/obj2yaml.dir/Error.cpp.o
+[2594/2627] Building CXX object tools/llvm-size/CMakeFiles/llvm-size.dir/llvm-size.cpp.o
+[2595/2627] Linking CXX executable bin/llvm-cov
+[2596/2627] Building CXX object tools/llvm-as/CMakeFiles/llvm-as.dir/llvm-as.cpp.o
+[2597/2627] Linking CXX executable bin/llvm-extract
+[2598/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ExtractFunction.cpp.o
+[2599/2627] Linking CXX executable bin/llvm-objdump
+[2600/2627] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachODebugMapParser.cpp.o
+[2601/2627] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/dsymutil.cpp.o
+[2602/2627] Linking CXX shared module lib/libBlinkGCPlugin.so
+[2603/2627] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/BinaryHolder.cpp.o
+[2604/2627] Linking CXX executable bin/llvm-as
+[2605/2627] Linking CXX executable bin/llvm-dwarfdump
+[2606/2627] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DebugMap.cpp.o
+[2607/2627] Building CXX object tools/llvm-rtdyld/CMakeFiles/llvm-rtdyld.dir/llvm-rtdyld.cpp.o
+[2608/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/BugDriver.cpp.o
+[2609/2627] Linking CXX executable bin/llvm-size
+[2610/2627] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/DwarfLinker.cpp.o
+[2611/2627] Building CXX object tools/dsymutil/CMakeFiles/llvm-dsymutil.dir/MachOUtils.cpp.o
+[2612/2627] Building CXX object tools/llvm-dwp/CMakeFiles/llvm-dwp.dir/llvm-dwp.cpp.o
+[2613/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/Miscompilation.cpp.o
+[2614/2627] Linking CXX executable bin/llvm-bcanalyzer
+[2615/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ToolRunner.cpp.o
+[2616/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/ExecutionDriver.cpp.o
+[2617/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/CrashDebugger.cpp.o
+[2618/2627] Linking CXX executable bin/llvm-rtdyld
+[2619/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/OptimizerDriver.cpp.o
+[2620/2627] Building CXX object tools/bugpoint/CMakeFiles/bugpoint.dir/bugpoint.cpp.o
+[2621/2627] Linking CXX executable bin/llvm-dwp
+[2622/2627] Linking CXX executable bin/bugpoint
+[2623/2627] Building CXX object tools/bugpoint-passes/CMakeFiles/BugpointPasses.dir/TestPasses.cpp.o
+[2624/2627] Linking CXX shared module lib/BugpointPasses.so
+[2625/2627] Linking CXX executable bin/llvm-dsymutil
+[2626/2627] Linking CXX executable bin/llvm-readobj
+[2627/2627] Linking CXX executable bin/obj2yaml
 Running ninja cr-install
-[1/1] cd /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a && /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/cmake322/bin/cmake -D COMPONENT=chrome-tools -P cmake_install.cmake
+[1/1] cd /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a && /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/cmake322/bin/cmake -D COMPONENT=chrome-tools -P cmake_install.cmake
 -- Install configuration: "Release"
 -- Install component: "chrome-tools"
-Running strip /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
-Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DCMAKE_C_FLAGS=--gcc-toolchain=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise -DCMAKE_CXX_FLAGS=--gcc-toolchain=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise -DLLVM_CONFIG_PATH=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/llvm-config '-DSANITIZER_MIN_OSX_VERSION="10.7"' /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt
+Running strip /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
+Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DCMAKE_C_FLAGS=--gcc-toolchain=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise -DCMAKE_CXX_FLAGS=--gcc-toolchain=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise -DLLVM_CONFIG_PATH=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/llvm-config '-DSANITIZER_MIN_OSX_VERSION="10.7"' /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt
 -- The C compiler identification is Clang 3.9.0
 -- The CXX compiler identification is Clang 3.9.0
 -- The ASM compiler identification is Clang
--- Found assembler: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang
+-- Found assembler: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang
 -- Check for working C compiler using: Ninja
 -- Check for working C compiler using: Ninja -- works
 -- Detecting C compiler ABI info
@@ -16940,7 +53009,7 @@
 -- Detecting CXX compiler ABI info - done
 -- Detecting CXX compile features
 -- Detecting CXX compile features - done
--- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.3") 
 -- Looking for unwind.h
 -- Looking for unwind.h - found
 -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
@@ -17061,693 +53130,683 @@
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt
+-- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt
 Running ninja compiler-rt
-[1/619] Copying compiler-rt's sanitizer/msan_interface.h...
-[2/619] Copying compiler-rt's sanitizer/dfsan_interface.h...
-[3/619] Copying compiler-rt's sanitizer/common_interface_defs.h...
-[4/619] Copying compiler-rt's sanitizer/allocator_interface.h...
-[5/619] Copying compiler-rt's sanitizer/coverage_interface.h...
-[6/619] Copying compiler-rt's sanitizer/tsan_interface_atomic.h...
-[7/619] Copying compiler-rt's sanitizer/asan_interface.h...
-[8/619] Copying compiler-rt's sanitizer/lsan_interface.h...
-[9/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/apple_versioning.c.o
-[10/619] Copying compiler-rt's sanitizer/linux_syscall_hooks.h...
-[11/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatdidf.S.o
-[12/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatdixf.S.o
-[13/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/ashrdi3.S.o
-[14/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/chkstk.S.o
-[15/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatdisf.S.o
-[16/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/muldi3.S.o
-[17/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/ashldi3.S.o
-[18/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/chkstk2.S.o
-[19/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/divdi3.S.o
-[20/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatundidf.S.o
-[21/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatundisf.S.o
-[22/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatundixf.S.o
-[23/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/lshrdi3.S.o
-[24/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/moddi3.S.o
-[25/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/udivdi3.S.o
-[26/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/clzti2.c.o
-[27/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/absvti2.c.o
-[28/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/umoddi3.S.o
-[29/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addvti3.c.o
-[30/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/clear_cache.c.o
-[31/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addvsi3.c.o
-[32/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/absvsi2.c.o
-[33/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ashlti3.c.o
-[34/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/clzsi2.c.o
-[35/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ashrti3.c.o
-[36/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addtf3.c.o
-[37/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/paritydi2.c.o
-[38/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addvdi3.c.o
-[39/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/cmpti2.c.o
-[40/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/clzdi2.c.o
-[41/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/absvdi2.c.o
-[42/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divmoddi4.c.o
-[43/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ctzti2.c.o
-[44/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negti2.c.o
-[45/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/cmpdi2.c.o
-[46/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divtf3.c.o
-[47/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divmodsi4.c.o
-[48/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ctzdi2.c.o
-[49/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divsi3.c.o
-[50/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ctzsi2.c.o
-[51/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ffsti2.c.o
-[52/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/enable_execute_stack.c.o
-[53/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixdfti.c.o
-[54/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ffsdi2.c.o
-[55/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixsfti.c.o
-[56/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsdfti.c.o
-[57/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/eprintf.c.o
-[58/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsdfdi.c.o
-[59/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divxc3.c.o
-[60/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divti3.c.o
-[61/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunssfti.c.o
-[62/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsxfti.c.o
-[63/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixdfsi.c.o
-[64/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixsfsi.c.o
-[65/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatsidf.c.o
-[66/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addsf3.c.o
-[67/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixxfti.c.o
-[68/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/comparedf2.c.o
-[69/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsxfdi.c.o
-[70/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/comparesf2.c.o
-[71/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsdfsi.c.o
-[72/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsxfsi.c.o
-[73/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/extendsfdf2.c.o
-[74/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixsfdi.c.o
-[75/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixdfdi.c.o
-[76/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divsc3.c.o
-[77/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floattisf.c.o
-[78/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floattidf.c.o
-[79/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixxfdi.c.o
-[80/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floattixf.c.o
-[81/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/extendhfsf2.c.o
-[82/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatuntisf.c.o
-[83/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatuntidf.c.o
-[84/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divsf3.c.o
-[85/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/lshrti3.c.o
-[86/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixsfsi.c.o
-[87/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/modti3.c.o
-[88/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatunsidf.c.o
-[89/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divtc3.c.o
-[90/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divdc3.c.o
-[91/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divdf3.c.o
-[92/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/muloti4.c.o
-[93/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunssfdi.c.o
-[94/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixsfdi.c.o
-[95/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatunsisf.c.o
-[96/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulosi4.c.o
-[97/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunssfsi.c.o
-[98/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulvti3.c.o
-[99/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatsisf.c.o
-[100/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/adddf3.c.o
-[101/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/int_util.c.o
-[102/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatuntixf.c.o
-[103/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negdf2.c.o
-[104/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negdi2.c.o
-[105/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulodi4.c.o
-[106/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/multf3.c.o
-[107/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/multi3.c.o
-[108/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negvti2.c.o
-[109/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/modsi3.c.o
-[110/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negsf2.c.o
-[111/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulvsi3.c.o
-[112/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/paritysi2.c.o
-[113/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/multf3.c.o
-[114/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/trampoline_setup.c.o
-[115/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/popcountti2.c.o
-[116/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negvsi2.c.o
-[117/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulsc3.c.o
-[118/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/powidf2.c.o
-[119/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/popcountsi2.c.o
-[120/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulvdi3.c.o
-[121/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/muldc3.c.o
-[122/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negvdi2.c.o
-[123/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/popcountdi2.c.o
-[124/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/parityti2.c.o
-[125/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/multi3.c.o
-[126/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subvti3.c.o
-[127/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/powixf2.c.o
-[128/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulxc3.c.o
-[129/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/powisf2.c.o
-[130/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subvsi3.c.o
-[131/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivmodti4.c.o
-[132/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/apple_versioning.c.o
-[133/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivti3.c.o
-[134/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/umodti3.c.o
-[135/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/powitf2.c.o
-[136/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subtf3.c.o
-[137/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ucmpdi2.c.o
-[138/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subdf3.c.o
-[139/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subsf3.c.o
-[140/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ucmpti2.c.o
-[141/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivmodsi4.c.o
-[142/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addtf3.c.o
-[143/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulsf3.c.o
-[144/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/umodsi3.c.o
-[145/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addvsi3.c.o
-[146/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/truncsfhf2.c.o
-[147/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/chkstk.S.o
-[148/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/absvdi2.c.o
-[149/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/truncdfhf2.c.o
-[150/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/truncdfsf2.c.o
-[151/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/chkstk2.S.o
-[152/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/absvsi2.c.o
-[153/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addvdi3.c.o
-[154/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatundisf.S.o
-[155/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/muldf3.c.o
-[156/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatundixf.S.o
-[157/619] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatundidf.S.o
-[158/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/absvti2.c.o
-[159/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ashldi3.c.o
-[160/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ashlti3.c.o
-[161/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatdixf.c.o
-[162/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatdidf.c.o
-[163/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatdisf.c.o
-[164/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/clear_cache.c.o
-[165/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addvti3.c.o
-[166/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ashrti3.c.o
-[167/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/clzti2.c.o
-[168/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/cmpdi2.c.o
-[169/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivmoddi4.c.o
-[170/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/cmpti2.c.o
-[171/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subvdi3.c.o
-[172/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ashrdi3.c.o
-[173/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ctzdi2.c.o
-[174/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/adddf3.c.o
-[175/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/clzdi2.c.o
-[176/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divmoddi4.c.o
-[177/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addsf3.c.o
-[178/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/clzsi2.c.o
-[179/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ctzti2.c.o
-[180/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divdi3.c.o
-[181/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ctzsi2.c.o
-[182/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divsi3.c.o
-[183/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divmodsi4.c.o
-[184/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divsc3.c.o
-[185/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivsi3.c.o
-[186/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/enable_execute_stack.c.o
-[187/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divtf3.c.o
-[188/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divdc3.c.o
-[189/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/comparedf2.c.o
-[190/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ffsdi2.c.o
-[191/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/eprintf.c.o
-[192/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/gcc_personality_v0.c.o
-[193/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divti3.c.o
-[194/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixdfdi.c.o
-[195/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divsf3.c.o
-[196/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ffsti2.c.o
-[197/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/comparesf2.c.o
-[198/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/extendsfdf2.c.o
-[199/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixdfsi.c.o
-[200/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divtc3.c.o
-[201/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsxfsi.c.o
-[202/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/emutls.c.o
-[203/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunssfsi.c.o
-[204/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunssfdi.c.o
-[205/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsxfdi.c.o
-[206/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divdf3.c.o
-[207/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixxfdi.c.o
-[208/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixdfti.c.o
-[209/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsdfdi.c.o
-[210/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsdfti.c.o
-[211/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/extendhfsf2.c.o
-[212/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunssfti.c.o
-[213/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixxfti.c.o
-[214/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsdfsi.c.o
-[215/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divxc3.c.o
-[216/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatsidf.c.o
-[217/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsxfti.c.o
-[218/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatsisf.c.o
-[219/619] Linking C static library lib/linux/libclang_rt.builtins-i386.a
-[220/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floattixf.c.o
-[221/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatunsisf.c.o
-[222/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/lshrdi3.c.o
-[223/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/modsi3.c.o
-[224/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixsfti.c.o
-[225/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floattisf.c.o
-[226/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/moddi3.c.o
-[227/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floattidf.c.o
-[228/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatuntisf.c.o
-[229/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatuntixf.c.o
-[230/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatunsidf.c.o
-[231/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/muldi3.c.o
-[232/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/lshrti3.c.o
-[233/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatuntidf.c.o
-[234/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulosi4.c.o
-[235/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulodi4.c.o
-[236/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/int_util.c.o
-[237/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negvdi2.c.o
-[238/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulvdi3.c.o
-[239/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negdi2.c.o
-[240/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/modti3.c.o
-[241/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/muldc3.c.o
-[242/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulsc3.c.o
-[243/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/parityti2.c.o
-[244/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negvsi2.c.o
-[245/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulvsi3.c.o
-[246/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negvti2.c.o
-[247/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/paritysi2.c.o
-[248/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/powitf2.c.o
-[249/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negti2.c.o
-[250/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negdf2.c.o
-[251/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulvti3.c.o
-[252/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulxc3.c.o
-[253/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/muloti4.c.o
-[254/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/powisf2.c.o
-[255/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/paritydi2.c.o
-[256/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subdf3.c.o
-[257/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/popcountdi2.c.o
-[258/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/powidf2.c.o
-[259/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/trampoline_setup.c.o
-[260/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subvdi3.c.o
-[261/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/popcountsi2.c.o
-[262/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subtf3.c.o
-[263/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/powixf2.c.o
-[264/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negsf2.c.o
-[265/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/popcountti2.c.o
-[266/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subsf3.c.o
-[267/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulsf3.c.o
-[268/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivti3.c.o
-[269/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/muldf3.c.o
-[270/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subvsi3.c.o
-[271/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ucmpti2.c.o
-[272/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ucmpdi2.c.o
-[273/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivdi3.c.o
-[274/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/umoddi3.c.o
-[275/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivmodsi4.c.o
-[276/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/umodti3.c.o
-[277/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/umodsi3.c.o
-[278/619] Building CXX object lib/interception/CMakeFiles/RTInterception.i386.dir/interception_win.cc.o
-[279/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivsi3.c.o
-[280/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/truncsfhf2.c.o
-[281/619] Building CXX object lib/interception/CMakeFiles/RTInterception.x86_64.dir/interception_mac.cc.o
-[282/619] Building CXX object lib/interception/CMakeFiles/RTInterception.x86_64.dir/interception_win.cc.o
-[283/619] Building CXX object lib/interception/CMakeFiles/RTInterception.i386.dir/interception_mac.cc.o
-[284/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/truncdfhf2.c.o
-[285/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/truncdfsf2.c.o
-[286/619] Building CXX object lib/interception/CMakeFiles/RTInterception.x86_64.dir/interception_type_test.cc.o
-[287/619] Building CXX object lib/interception/CMakeFiles/RTInterception.x86_64.dir/interception_linux.cc.o
-[288/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_linux_s390.cc.o
-[289/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_mac.cc.o
-[290/619] Building CXX object lib/interception/CMakeFiles/RTInterception.i386.dir/interception_type_test.cc.o
-[291/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivmoddi4.c.o
-[292/619] Building CXX object lib/interception/CMakeFiles/RTInterception.i386.dir/interception_linux.cc.o
-[293/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subvti3.c.o
-[294/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_mac.cc.o
-[295/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_freebsd.cc.o
-[296/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/gcc_personality_v0.c.o
-[297/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivmodti4.c.o
-[298/619] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/emutls.c.o
-[299/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_symbolizer_mac.cc.o
-[300/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_symbolizer_win.cc.o
-[301/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_win.cc.o
-[302/619] Linking C static library lib/linux/libclang_rt.builtins-x86_64.a
-[303/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_persistent_allocator.cc.o
-[304/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_stacktrace.cc.o
-[305/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_deadlock_detector2.cc.o
-[306/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_linux.cc.o
-[307/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_stacktrace_printer.cc.o
-[308/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_libignore.cc.o
-[309/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_linux_s390.cc.o
-[310/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_mac.cc.o
-[311/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_flag_parser.cc.o
-[312/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_symbolizer_libbacktrace.cc.o
-[313/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_stack.cc.o
-[314/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_deadlock_detector2.cc.o
-[315/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_tls_get_addr.cc.o
-[316/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_freebsd.cc.o
-[317/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_symbolizer.cc.o
-[318/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_persistent_allocator.cc.o
-[319/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_flags.cc.o
-[320/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_mac.cc.o
-[321/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_common.cc.o
-[322/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_libignore.cc.o
-[323/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_flag_parser.cc.o
-[324/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_printf.cc.o
-[325/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_linux.cc.o
-[326/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_linux.cc.o
-[327/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_symbolizer_mac.cc.o
-[328/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_symbolizer_win.cc.o
-[329/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_flags.cc.o
-[330/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_stats.cc.o
-[331/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_thread_registry.cc.o
-[332/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_win.cc.o
-[333/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_posix.cc.o
-[334/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_suppressions.cc.o
-[335/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_posix.cc.o
-[336/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_linux.cc.o
-[337/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_stacktrace_printer.cc.o
-[338/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
-[339/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_stacktrace.cc.o
-[340/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_common.cc.o
-[341/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_stackdepot.cc.o
-[342/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_common.cc.o
-[343/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_symbolizer_libbacktrace.cc.o
-[344/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_stacktrace_libcdep.cc.o
-[345/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_printf.cc.o
-[346/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_common.cc.o
-[347/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_tls_get_addr.cc.o
-[348/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_posix.cc.o
-[349/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_symbolizer.cc.o
-[350/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_common_libcdep.cc.o
-[351/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_unwind_linux_libcdep.cc.o
-[352/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_allocator.cc.o
-[353/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_libc.cc.o
-[354/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_suppressions.cc.o
-[355/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_coverage_mapping_libcdep.cc.o
-[356/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_thread_registry.cc.o
-[357/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_linux.cc.o
-[358/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stacktrace_libcdep.cc.o
-[359/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_common_libcdep.cc.o
-[360/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_unwind_linux_libcdep.cc.o
-[361/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_allocator.cc.o
-[362/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_coverage_mapping_libcdep.cc.o
-[363/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_stackdepot.cc.o
-[364/619] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.i386.dir/lsan_common_linux.cc.o
-[365/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_init.cc.o
-[366/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_init.cc.o
-[367/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_flags.cc.o
-[368/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_flags.cc.o
-[369/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash_win.cc.o
-[370/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_posix_libcdep.cc.o
-[371/619] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.i386.dir/lsan_common.cc.o
-[372/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash.cc.o
-[373/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_value.cc.o
-[374/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash_win.cc.o
-[375/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_rtl.cc.o
-[376/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_linux.cc.o
-[377/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_symbolizer_libcdep.cc.o
-[378/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_deadlock_detector1.cc.o
-[379/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_linux_libcdep.cc.o
-[380/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_standalone.i386.dir/ubsan_init_standalone.cc.o
-[381/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_standalone.x86_64.dir/ubsan_init_standalone.cc.o
-[382/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_posix.cc.o
-[383/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_posix.cc.o
-[384/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_symbolizer_posix_libcdep.cc.o
-[385/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_posix_libcdep.cc.o
-[386/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_value.cc.o
-[387/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
-[388/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_malloc_mac.cc.o
-[389/619] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.x86_64.dir/lsan_common_linux.cc.o
-[390/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_mac.cc.o
-[391/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash.cc.o
-[392/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_malloc_win.cc.o
-[393/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_win.cc.o
-[394/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash_itanium.cc.o
-[395/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_linux_libcdep.cc.o
-[396/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash_itanium.cc.o
-[397/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_symbolizer_libcdep.cc.o
-[398/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_handlers_cxx.cc.o
-[399/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_libc.cc.o
-[400/619] Linking CXX static library lib/linux/libclang_rt.ubsan_standalone_cxx-i386.a
-[401/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_handlers_cxx.cc.o
-[402/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_mac.cc.o
-[403/619] Linking CXX static library lib/linux/libclang_rt.ubsan_standalone_cxx-x86_64.a
-[404/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_malloc_mac.cc.o
-[405/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_malloc_win.cc.o
-[406/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_symbolizer_posix_libcdep.cc.o
-[407/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_activation.cc.o
-[408/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_debugging.cc.o
-[409/619] Generating exported symbols for clang_rt.ubsan_standalone_cxx-x86_64
-[410/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_suppressions.cc.o
-[411/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_diag.cc.o
-[412/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_deadlock_detector1.cc.o
-[413/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_linux.cc.o
-[414/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_win.cc.o
-[415/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_malloc_linux.cc.o
-[416/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_flags.cc.o
-[417/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_diag.cc.o
-[418/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_debugging.cc.o
-[419/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_activation.cc.o
-[420/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_flags.cc.o
-[421/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_linux.cc.o
-[422/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_handlers.cc.o
-[423/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_malloc_linux.cc.o
-[424/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_stack.cc.o
-[425/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_thread.cc.o
-[426/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_posix.cc.o
-[427/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_mac.cc.o
-[428/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_mac.cc.o
-[429/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_suppressions.cc.o
-[430/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_win.cc.o
-[431/619] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_handlers.cc.o
-[432/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_coverage_libcdep.cc.o
-[433/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_poisoning.cc.o
-[434/619] Linking CXX static library lib/linux/libclang_rt.ubsan_standalone-i386.a
-[435/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_debugging.cc.o
-[436/619] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_coverage_libcdep.cc.o
-[437/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_stats.cc.o
-[438/619] Linking CXX static library lib/linux/libclang_rt.ubsan_standalone-x86_64.a
-[439/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_activation.cc.o
-[440/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_win.cc.o
-[441/619] Building CXX object lib/asan/CMakeFiles/RTAsan_cxx.i386.dir/asan_new_delete.cc.o
-[442/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_poisoning.cc.o
-[443/619] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.x86_64.dir/lsan_common.cc.o
-[444/619] Building CXX object lib/asan/CMakeFiles/RTAsan_cxx.x86_64.dir/asan_new_delete.cc.o
-[445/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_thread.cc.o
-[446/619] Linking CXX static library lib/linux/libclang_rt.asan_cxx-i386.a
-[447/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_suppressions.cc.o
-[448/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_linux.cc.o
-[449/619] Generating exported symbols for clang_rt.ubsan_standalone-x86_64
-[450/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_flags.cc.o
-[451/619] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_preinit.cc.o
-[452/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_globals.cc.o
-[453/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_stack.cc.o
-[454/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_globals.cc.o
-[455/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_linux.cc.o
-[456/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_posix.cc.o
-[457/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_mac.cc.o
-[458/619] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_thread.cc.o
-[459/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_fake_stack.cc.o
-[460/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_malloc_mac.cc.o
-[461/619] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan.cc.o
-[462/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_fake_stack.cc.o
-[463/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_malloc_win.cc.o
-[464/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_rtl.cc.o
-[465/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_debugging.cc.o
-[466/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_stats.cc.o
-[467/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_new_delete.cc.o
-[468/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_activation.cc.o
-[469/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_win.cc.o
-[470/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_thread.cc.o
-[471/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_flags.cc.o
-[472/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_poisoning.cc.o
-[473/619] Copying asan_blacklist.txt...
-[474/619] Building CXX object lib/asan/CMakeFiles/RTAsan_preinit.i386.dir/asan_preinit.cc.o
-[475/619] Linking CXX static library lib/linux/libclang_rt.asan_cxx-x86_64.a
-[476/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_linux.cc.o
-[477/619] Linking CXX static library lib/linux/libclang_rt.asan-preinit-i386.a
-[478/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_globals.cc.o
-[479/619] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_interceptors.cc.o
-[480/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_stack.cc.o
-[481/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_malloc_linux.cc.o
-[482/619] Generating ../../dfsan_abilist.txt
-[483/619] Building CXX object lib/asan/CMakeFiles/RTAsan_preinit.x86_64.dir/asan_preinit.cc.o
-[484/619] Generating exported symbols for clang_rt.asan_cxx-x86_64
-[485/619] Linking CXX static library lib/linux/libclang_rt.asan-preinit-x86_64.a
-[486/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_fake_stack.cc.o
-[487/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_suppressions.cc.o
-[488/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_report.cc.o
-[489/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_posix.cc.o
-[490/619] Copying msan_blacklist.txt...
-[491/619] Building CXX object lib/dfsan/CMakeFiles/clang_rt.dfsan-x86_64.dir/dfsan_interceptors.cc.o
-[492/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan_cxx-x86_64.dir/msan_new_delete.cc.o
-[493/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_report.cc.o
-[494/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfiling.c.o
-[495/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_rtl.cc.o
-[496/619] Linking CXX static library lib/linux/libclang_rt.msan_cxx-x86_64.a
-[497/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_stats.cc.o
-[498/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_new_delete.cc.o
-[499/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingBuffer.c.o
-[500/619] Generating exported symbols for clang_rt.msan_cxx-x86_64
-[501/619] Building CXX object lib/dfsan/CMakeFiles/clang_rt.dfsan-x86_64.dir/dfsan.cc.o
-[502/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingMergeFile.c.o
-[503/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingPlatformDarwin.c.o
-[504/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_thread.cc.o
-[505/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_globals.cc.o
-[506/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_thread.cc.o
-[507/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingPlatformOther.c.o
-[508/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_poisoning.cc.o
-[509/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingPlatformLinux.c.o
-[510/619] Building CXX object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingRuntime.cc.o
-[511/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingMerge.c.o
-[512/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_poisoning.cc.o
-[513/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_chained_origin_depot.cc.o
-[514/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingFile.c.o
-[515/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingUtil.c.o
-[516/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingWriter.c.o
-[517/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingBuffer.c.o
-[518/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingPlatformDarwin.c.o
-[519/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingMergeFile.c.o
-[520/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfiling.c.o
-[521/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingPlatformOther.c.o
-[522/619] Building CXX object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingRuntime.cc.o
-[523/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingPlatformLinux.c.o
-[524/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingMerge.c.o
-[525/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingUtil.c.o
-[526/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/GCDAProfiling.c.o
-[527/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_ignoreset.cc.o
-[528/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingWriter.c.o
-[529/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_linux.cc.o
-[530/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingFile.c.o
-[531/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_report.cc.o
-[532/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_malloc_mac.cc.o
-[533/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingValue.c.o
-[534/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_allocator.cc.o
-[535/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_report.cc.o
-[536/619] Linking CXX static library lib/linux/libclang_rt.profile-i386.a
-[537/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_rtl.cc.o
-[538/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/GCDAProfiling.c.o
-[539/619] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingValue.c.o
-[540/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_fake_stack.cc.o
-[541/619] Linking CXX static library lib/linux/libclang_rt.profile-x86_64.a
-[542/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan.cc.o
-[543/619] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_allocator.cc.o
-[544/619] Linking CXX static library lib/linux/libclang_rt.lsan-x86_64.a
-[545/619] Building CXX object lib/dfsan/CMakeFiles/clang_rt.dfsan-x86_64.dir/dfsan_custom.cc.o
-[546/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_flags.cc.o
-[547/619] Linking CXX static library lib/linux/libclang_rt.dfsan-x86_64.a
-[548/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_mutex.cc.o
-[549/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_debugging.cc.o
-[550/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface.cc.o
-[551/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_allocator.cc.o
-[552/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_fd.cc.o
-[553/619] Building C object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_amd64.S.o
-[554/619] Generating exported symbols for clang_rt.dfsan-x86_64
-[555/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_java.cc.o
-[556/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_mutexset.cc.o
-[557/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_stack_trace.cc.o
-[558/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_report.cc.o
-[559/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_stat.cc.o
-[560/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_proc.cc.o
-[561/619] Copying cfi_blacklist.txt...
-[562/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_suppressions.cc.o
-[563/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_allocator.cc.o
-[564/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_md5.cc.o
-[565/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_symbolize.cc.o
-[566/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_clock.cc.o
-[567/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_allocator.cc.o
-[568/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_ann.cc.o
-[569/619] Building CXX object lib/esan/CMakeFiles/clang_rt.esan-x86_64.dir/esan.cpp.o
-[570/619] Building CXX object lib/esan/CMakeFiles/clang_rt.esan-x86_64.dir/esan_interface.cpp.o
-[571/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_report.cc.o
-[572/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_platform_posix.cc.o
-[573/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_mutex.cc.o
-[574/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_thread.cc.o
-[575/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan_cxx-x86_64.dir/rtl/tsan_new_delete.cc.o
-[576/619] Linking CXX static library lib/linux/libclang_rt.tsan_cxx-x86_64.a
-[577/619] Generating exported symbols for clang_rt.tsan_cxx-x86_64
-[578/619] Building CXX object lib/cfi/CMakeFiles/clang_rt.cfi-i386.dir/cfi.cc.o
-[579/619] Linking CXX static library lib/linux/libclang_rt.cfi-i386.a
-[580/619] Building CXX object lib/cfi/CMakeFiles/clang_rt.cfi_diag-i386.dir/cfi.cc.o
-[581/619] Building CXX object lib/cfi/CMakeFiles/clang_rt.cfi-x86_64.dir/cfi.cc.o
-[582/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_platform_linux.cc.o
-[583/619] Building CXX object lib/tsan/dd/CMakeFiles/RTDD.x86_64.dir/dd_rtl.cc.o
-[584/619] Linking CXX static library lib/linux/libclang_rt.cfi-x86_64.a
-[585/619] Building CXX object lib/tsan/dd/CMakeFiles/RTDD.x86_64.dir/dd_interceptors.cc.o
-[586/619] Linking CXX static library lib/linux/libclang_rt.cfi_diag-i386.a
-[587/619] Building CXX object lib/cfi/CMakeFiles/clang_rt.cfi_diag-x86_64.dir/cfi.cc.o
-[588/619] Building CXX object lib/tsan/dd/CMakeFiles/clang_rt.dd-x86_64.dir/dd_interceptors.cc.o
-[589/619] Linking CXX static library lib/linux/libclang_rt.cfi_diag-x86_64.a
-[590/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_allocator.cc.o
-[591/619] Building CXX object lib/tsan/dd/CMakeFiles/clang_rt.dd-x86_64.dir/dd_rtl.cc.o
-[592/619] Linking CXX static library lib/linux/libclang_rt.dd-x86_64.a
-[593/619] Linking CXX shared library lib/linux/libclang_rt.dyndd-x86_64.so
-[594/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_sync.cc.o
-[595/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_mman.cc.o
-[596/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_report.cc.o
-[597/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl.cc.o
-[598/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_atomic.cc.o
-[599/619] Building CXX object lib/esan/CMakeFiles/clang_rt.esan-x86_64.dir/esan_interceptors.cpp.o
-[600/619] Linking CXX static library lib/linux/libclang_rt.esan-x86_64.a
-[601/619] Generating exported symbols for clang_rt.esan-x86_64
-[602/619] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interceptors.cc.o
-[603/619] Linking CXX static library lib/linux/libclang_rt.tsan-x86_64.a
-[604/619] Generating exported symbols for clang_rt.tsan-x86_64
-[605/619] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_interceptors.cc.o
-[606/619] Linking CXX static library lib/linux/libclang_rt.msan-x86_64.a
-[607/619] Generating exported symbols for clang_rt.msan-x86_64
-[608/619] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_interceptors.cc.o
-[609/619] Linking CXX static library lib/linux/libclang_rt.asan-x86_64.a
-[610/619] Generating version list for clang_rt.asan-dynamic-x86_64
-[611/619] Generating exported symbols for clang_rt.asan-x86_64
-[612/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.i386.dir/dummy.cc.o
-[613/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.x86_64.dir/dummy.cc.o
-[614/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_interceptors.cc.o
-[615/619] Linking CXX shared library lib/linux/libclang_rt.asan-x86_64.so
-[616/619] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_interceptors.cc.o
-[617/619] Linking CXX static library lib/linux/libclang_rt.asan-i386.a
-[618/619] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_interceptors.cc.o
-[619/619] Linking CXX shared library lib/linux/libclang_rt.asan-i386.so
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/../../cfi_blacklist.txt to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/../../asan_blacklist.txt to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/../../msan_blacklist.txt to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0
-Creating directory /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/msan_interface.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/coverage_interface.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/dfsan_interface.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/linux_syscall_hooks.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/allocator_interface.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/common_interface_defs.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/tsan_interface_atomic.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/asan_interface.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/lsan_interface.h to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
-Creating directory /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.tsan_cxx-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.profile-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-preinit-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan_cxx-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.esan-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.esan-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.profile-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.dd-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-preinit-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.dfsan-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.msan_cxx-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone_cxx-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.dfsan-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.tsan-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone_cxx-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan_cxx-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.msan-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-i386.so to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone_cxx-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.cfi-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-x86_64.so to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.dyndd-x86_64.so to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.builtins-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.msan-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.cfi_diag-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.builtins-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.cfi_diag-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.tsan_cxx-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.msan_cxx-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.cfi-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan_cxx-i386.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.lsan-x86_64.a to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Copying /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.tsan-x86_64.a.syms to /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
-Running /b/build/slave/linux_upload_clang/build/src/third_party/android_tools/ndk/build/tools/make-standalone-toolchain.sh --platform=android-21 '--install-dir="/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64"' --system=linux-x86_64 --stl=stlport --toolchain=aarch64-linux-android-4.9
+[1/611] Copying compiler-rt's sanitizer/tsan_interface_atomic.h...
+[2/611] Copying compiler-rt's sanitizer/allocator_interface.h...
+[3/611] Copying compiler-rt's sanitizer/linux_syscall_hooks.h...
+[4/611] Copying compiler-rt's sanitizer/lsan_interface.h...
+[5/611] Copying compiler-rt's sanitizer/dfsan_interface.h...
+[6/611] Copying compiler-rt's sanitizer/common_interface_defs.h...
+[7/611] Copying compiler-rt's sanitizer/coverage_interface.h...
+[8/611] Copying compiler-rt's sanitizer/msan_interface.h...
+[9/611] Copying compiler-rt's sanitizer/asan_interface.h...
+[10/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/apple_versioning.c.o
+[11/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/ashldi3.S.o
+[12/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/ashrdi3.S.o
+[13/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/chkstk.S.o
+[14/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/chkstk2.S.o
+[15/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/divdi3.S.o
+[16/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatdidf.S.o
+[17/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatdisf.S.o
+[18/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatdixf.S.o
+[19/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatundidf.S.o
+[20/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatundisf.S.o
+[21/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/floatundixf.S.o
+[22/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/lshrdi3.S.o
+[23/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/moddi3.S.o
+[24/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/muldi3.S.o
+[25/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/udivdi3.S.o
+[26/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/i386/umoddi3.S.o
+[27/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/clear_cache.c.o
+[28/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/absvdi2.c.o
+[29/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/absvsi2.c.o
+[30/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/absvti2.c.o
+[31/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/adddf3.c.o
+[32/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addsf3.c.o
+[33/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addtf3.c.o
+[34/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addvdi3.c.o
+[35/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addvsi3.c.o
+[36/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/addvti3.c.o
+[37/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/comparedf2.c.o
+[38/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ashlti3.c.o
+[39/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ashrti3.c.o
+[40/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divmoddi4.c.o
+[41/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/clzdi2.c.o
+[42/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/clzsi2.c.o
+[43/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/clzti2.c.o
+[44/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/cmpdi2.c.o
+[45/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/cmpti2.c.o
+[46/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/comparesf2.c.o
+[47/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/enable_execute_stack.c.o
+[48/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ctzdi2.c.o
+[49/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ctzsi2.c.o
+[50/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ctzti2.c.o
+[51/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negti2.c.o
+[52/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divdc3.c.o
+[53/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divdf3.c.o
+[54/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divmodsi4.c.o
+[55/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divsc3.c.o
+[56/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divsf3.c.o
+[57/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divsi3.c.o
+[58/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divtc3.c.o
+[59/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divti3.c.o
+[60/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divtf3.c.o
+[61/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/divxc3.c.o
+[62/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/extendsfdf2.c.o
+[63/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsdfdi.c.o
+[64/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/eprintf.c.o
+[65/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/extendhfsf2.c.o
+[66/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatsidf.c.o
+[67/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ffsdi2.c.o
+[68/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ffsti2.c.o
+[69/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixdfdi.c.o
+[70/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixdfsi.c.o
+[71/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixdfti.c.o
+[72/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixsfdi.c.o
+[73/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixsfsi.c.o
+[74/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixsfti.c.o
+[75/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsdfsi.c.o
+[76/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsdfti.c.o
+[77/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunssfdi.c.o
+[78/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunssfsi.c.o
+[79/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunssfti.c.o
+[80/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsxfdi.c.o
+[81/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsxfsi.c.o
+[82/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixunsxfti.c.o
+[83/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/paritydi2.c.o
+[84/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixxfdi.c.o
+[85/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/fixxfti.c.o
+[86/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixsfsi.c.o
+[87/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixsfti.c.o
+[88/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatsisf.c.o
+[89/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floattidf.c.o
+[90/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floattisf.c.o
+[91/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floattixf.c.o
+[92/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatunsidf.c.o
+[93/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatunsisf.c.o
+[94/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatuntidf.c.o
+[95/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatuntisf.c.o
+[96/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/floatuntixf.c.o
+[97/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/trampoline_setup.c.o
+[98/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/int_util.c.o
+[99/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/lshrti3.c.o
+[100/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/modsi3.c.o
+[101/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/modti3.c.o
+[102/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/muldc3.c.o
+[103/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/muldf3.c.o
+[104/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulodi4.c.o
+[105/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulosi4.c.o
+[106/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/muloti4.c.o
+[107/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulsc3.c.o
+[108/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulsf3.c.o
+[109/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/multi3.c.o
+[110/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/multf3.c.o
+[111/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulvdi3.c.o
+[112/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulvsi3.c.o
+[113/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulvti3.c.o
+[114/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/mulxc3.c.o
+[115/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negdf2.c.o
+[116/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negdi2.c.o
+[117/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negsf2.c.o
+[118/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/multi3.c.o
+[119/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/multf3.c.o
+[120/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negvdi2.c.o
+[121/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negvsi2.c.o
+[122/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/negvti2.c.o
+[123/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/paritysi2.c.o
+[124/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/parityti2.c.o
+[125/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/popcountdi2.c.o
+[126/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/popcountsi2.c.o
+[127/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/popcountti2.c.o
+[128/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivmoddi4.c.o
+[129/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/powidf2.c.o
+[130/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/powisf2.c.o
+[131/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/powitf2.c.o
+[132/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/powixf2.c.o
+[133/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subdf3.c.o
+[134/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subsf3.c.o
+[135/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subvdi3.c.o
+[136/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subvsi3.c.o
+[137/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subvti3.c.o
+[138/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/subtf3.c.o
+[139/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/truncdfhf2.c.o
+[140/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/truncdfsf2.c.o
+[141/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/truncsfhf2.c.o
+[142/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/gcc_personality_v0.c.o
+[143/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ucmpdi2.c.o
+[144/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/ucmpti2.c.o
+[145/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivmodsi4.c.o
+[146/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivmodti4.c.o
+[147/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivsi3.c.o
+[148/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/udivti3.c.o
+[149/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/umodsi3.c.o
+[150/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/umodti3.c.o
+[151/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-i386.dir/emutls.c.o
+[152/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addvsi3.c.o
+[153/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addvti3.c.o
+[154/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/apple_versioning.c.o
+[155/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addtf3.c.o
+[156/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addsf3.c.o
+[157/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/adddf3.c.o
+[158/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/addvdi3.c.o
+[159/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/chkstk2.S.o
+[160/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/chkstk.S.o
+[161/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/absvti2.c.o
+[162/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/absvsi2.c.o
+[163/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/absvdi2.c.o
+[164/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatundixf.S.o
+[165/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatundisf.S.o
+[166/611] Building ASM object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatundidf.S.o
+[167/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatdixf.c.o
+[168/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatdisf.c.o
+[169/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/x86_64/floatdidf.c.o
+[170/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ashldi3.c.o
+[171/611] Linking C static library lib/linux/libclang_rt.builtins-i386.a
+[172/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/comparedf2.c.o
+[173/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ashlti3.c.o
+[174/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ashrdi3.c.o
+[175/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ashrti3.c.o
+[176/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/clear_cache.c.o
+[177/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divmoddi4.c.o
+[178/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/clzdi2.c.o
+[179/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/clzsi2.c.o
+[180/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/clzti2.c.o
+[181/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/cmpdi2.c.o
+[182/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/cmpti2.c.o
+[183/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/comparesf2.c.o
+[184/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/enable_execute_stack.c.o
+[185/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ctzdi2.c.o
+[186/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ctzsi2.c.o
+[187/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ctzti2.c.o
+[188/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divdc3.c.o
+[189/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divdf3.c.o
+[190/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divdi3.c.o
+[191/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divmodsi4.c.o
+[192/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divsc3.c.o
+[193/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divsf3.c.o
+[194/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divsi3.c.o
+[195/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divtc3.c.o
+[196/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divti3.c.o
+[197/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divtf3.c.o
+[198/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/divxc3.c.o
+[199/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixdfdi.c.o
+[200/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/eprintf.c.o
+[201/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/extendsfdf2.c.o
+[202/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/extendhfsf2.c.o
+[203/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulodi4.c.o
+[204/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ffsdi2.c.o
+[205/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ffsti2.c.o
+[206/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixdfsi.c.o
+[207/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixdfti.c.o
+[208/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixsfdi.c.o
+[209/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_stats.cc.o
+[210/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_suppressions.cc.o
+[211/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsdfdi.c.o
+[212/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsdfsi.c.o
+[213/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsdfti.c.o
+[214/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunssfdi.c.o
+[215/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunssfsi.c.o
+[216/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunssfti.c.o
+[217/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsxfdi.c.o
+[218/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsxfsi.c.o
+[219/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixunsxfti.c.o
+[220/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixxfdi.c.o
+[221/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/fixxfti.c.o
+[222/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatsidf.c.o
+[223/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatsisf.c.o
+[224/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floattidf.c.o
+[225/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floattisf.c.o
+[226/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floattixf.c.o
+[227/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatunsidf.c.o
+[228/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatunsisf.c.o
+[229/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatuntidf.c.o
+[230/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatuntisf.c.o
+[231/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/floatuntixf.c.o
+[232/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/int_util.c.o
+[233/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/lshrdi3.c.o
+[234/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/lshrti3.c.o
+[235/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulvdi3.c.o
+[236/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/moddi3.c.o
+[237/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/modsi3.c.o
+[238/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/modti3.c.o
+[239/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/muldc3.c.o
+[240/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/muldf3.c.o
+[241/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/muldi3.c.o
+[242/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulosi4.c.o
+[243/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/muloti4.c.o
+[244/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negvdi2.c.o
+[245/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulsc3.c.o
+[246/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulsf3.c.o
+[247/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_rtl.cc.o
+[248/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulvsi3.c.o
+[249/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulvti3.c.o
+[250/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subvdi3.c.o
+[251/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/mulxc3.c.o
+[252/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negdf2.c.o
+[253/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negdi2.c.o
+[254/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negsf2.c.o
+[255/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negti2.c.o
+[256/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negvsi2.c.o
+[257/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/negvti2.c.o
+[258/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/paritydi2.c.o
+[259/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/paritysi2.c.o
+[260/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/parityti2.c.o
+[261/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/popcountdi2.c.o
+[262/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/popcountsi2.c.o
+[263/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/popcountti2.c.o
+[264/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/powidf2.c.o
+[265/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/powisf2.c.o
+[266/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/powitf2.c.o
+[267/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/powixf2.c.o
+[268/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/trampoline_setup.c.o
+[269/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subdf3.c.o
+[270/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subsf3.c.o
+[271/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subvsi3.c.o
+[272/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subvti3.c.o
+[273/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/gcc_personality_v0.c.o
+[274/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/subtf3.c.o
+[275/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/truncdfhf2.c.o
+[276/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/truncdfsf2.c.o
+[277/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/truncsfhf2.c.o
+[278/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ucmpdi2.c.o
+[279/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/ucmpti2.c.o
+[280/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivdi3.c.o
+[281/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivmoddi4.c.o
+[282/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivmodsi4.c.o
+[283/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivmodti4.c.o
+[284/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivsi3.c.o
+[285/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/udivti3.c.o
+[286/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/umoddi3.c.o
+[287/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/umodsi3.c.o
+[288/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/umodti3.c.o
+[289/611] Building C object lib/builtins/CMakeFiles/clang_rt.builtins-x86_64.dir/emutls.c.o
+[290/611] Building CXX object lib/interception/CMakeFiles/RTInterception.x86_64.dir/interception_mac.cc.o
+[291/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_allocator.cc.o
+[292/611] Building CXX object lib/interception/CMakeFiles/RTInterception.x86_64.dir/interception_linux.cc.o
+[293/611] Building CXX object lib/interception/CMakeFiles/RTInterception.i386.dir/interception_type_test.cc.o
+[294/611] Building CXX object lib/interception/CMakeFiles/RTInterception.x86_64.dir/interception_win.cc.o
+[295/611] Building CXX object lib/interception/CMakeFiles/RTInterception.i386.dir/interception_win.cc.o
+[296/611] Building CXX object lib/interception/CMakeFiles/RTInterception.i386.dir/interception_mac.cc.o
+[297/611] Building CXX object lib/interception/CMakeFiles/RTInterception.i386.dir/interception_linux.cc.o
+[298/611] Building CXX object lib/interception/CMakeFiles/RTInterception.x86_64.dir/interception_type_test.cc.o
+[299/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_common.cc.o
+[300/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_deadlock_detector1.cc.o
+[301/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_deadlock_detector2.cc.o
+[302/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_flags.cc.o
+[303/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_flag_parser.cc.o
+[304/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_libc.cc.o
+[305/611] Linking C static library lib/linux/libclang_rt.builtins-x86_64.a
+[306/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_libignore.cc.o
+[307/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_linux.cc.o
+[308/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_mac.cc.o
+[309/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_persistent_allocator.cc.o
+[310/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_linux.cc.o
+[311/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_platform_limits_posix.cc.o
+[312/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_posix.cc.o
+[313/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_printf.cc.o
+[314/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_common.cc.o
+[315/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_freebsd.cc.o
+[316/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_linux.cc.o
+[317/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_procmaps_mac.cc.o
+[318/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_stackdepot.cc.o
+[319/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_stacktrace.cc.o
+[320/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_stacktrace_printer.cc.o
+[321/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_suppressions.cc.o
+[322/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_symbolizer.cc.o
+[323/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_symbolizer_libbacktrace.cc.o
+[324/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_symbolizer_mac.cc.o
+[325/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_symbolizer_win.cc.o
+[326/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_tls_get_addr.cc.o
+[327/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_thread_registry.cc.o
+[328/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i386.dir/sanitizer_win.cc.o
+[329/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_allocator.cc.o
+[330/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_deadlock_detector1.cc.o
+[331/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_common.cc.o
+[332/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_deadlock_detector2.cc.o
+[333/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_flags.cc.o
+[334/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_flag_parser.cc.o
+[335/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_libc.cc.o
+[336/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_libignore.cc.o
+[337/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_linux.cc.o
+[338/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_mac.cc.o
+[339/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_persistent_allocator.cc.o
+[340/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_linux.cc.o
+[341/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_platform_limits_posix.cc.o
+[342/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_posix.cc.o
+[343/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_printf.cc.o
+[344/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_common.cc.o
+[345/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_freebsd.cc.o
+[346/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_linux.cc.o
+[347/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_procmaps_mac.cc.o
+[348/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_stackdepot.cc.o
+[349/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_stacktrace.cc.o
+[350/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_stacktrace_printer.cc.o
+[351/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_suppressions.cc.o
+[352/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_symbolizer.cc.o
+[353/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_symbolizer_libbacktrace.cc.o
+[354/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_symbolizer_mac.cc.o
+[355/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_symbolizer_win.cc.o
+[356/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_tls_get_addr.cc.o
+[357/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_thread_registry.cc.o
+[358/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.x86_64.dir/sanitizer_win.cc.o
+[359/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_coverage_libcdep.cc.o
+[360/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_common_libcdep.cc.o
+[361/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_init.cc.o
+[362/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_diag.cc.o
+[363/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_coverage_mapping_libcdep.cc.o
+[364/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_linux_libcdep.cc.o
+[365/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_posix_libcdep.cc.o
+[366/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_stacktrace_libcdep.cc.o
+[367/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
+[368/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_symbolizer_libcdep.cc.o
+[369/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_symbolizer_posix_libcdep.cc.o
+[370/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i386.dir/sanitizer_unwind_linux_libcdep.cc.o
+[371/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_common_libcdep.cc.o
+[372/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_coverage_libcdep.cc.o
+[373/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_coverage_mapping_libcdep.cc.o
+[374/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_linux_libcdep.cc.o
+[375/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_posix_libcdep.cc.o
+[376/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stacktrace_libcdep.cc.o
+[377/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
+[378/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_symbolizer_libcdep.cc.o
+[379/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_symbolizer_posix_libcdep.cc.o
+[380/611] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_unwind_linux_libcdep.cc.o
+[381/611] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.i386.dir/lsan_common_linux.cc.o
+[382/611] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.i386.dir/lsan_common.cc.o
+[383/611] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.x86_64.dir/lsan_common_linux.cc.o
+[384/611] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.x86_64.dir/lsan_common.cc.o
+[385/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_flags.cc.o
+[386/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_handlers.cc.o
+[387/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i386.dir/ubsan_value.cc.o
+[388/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_diag.cc.o
+[389/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_init.cc.o
+[390/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_flags.cc.o
+[391/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_handlers.cc.o
+[392/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.x86_64.dir/ubsan_value.cc.o
+[393/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_handlers_cxx.cc.o
+[394/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash_itanium.cc.o
+[395/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash.cc.o
+[396/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i386.dir/ubsan_type_hash_win.cc.o
+[397/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_handlers_cxx.cc.o
+[398/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash.cc.o
+[399/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash_itanium.cc.o
+[400/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.x86_64.dir/ubsan_type_hash_win.cc.o
+[401/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_standalone.i386.dir/ubsan_init_standalone.cc.o
+[402/611] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_standalone.x86_64.dir/ubsan_init_standalone.cc.o
+[403/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_allocator.cc.o
+[404/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_activation.cc.o
+[405/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_debugging.cc.o
+[406/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_fake_stack.cc.o
+[407/611] Linking CXX static library lib/linux/libclang_rt.ubsan_standalone_cxx-i386.a
+[408/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_flags.cc.o
+[409/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_globals.cc.o
+[410/611] Linking CXX static library lib/linux/libclang_rt.ubsan_standalone_cxx-x86_64.a
+[411/611] Generating exported symbols for clang_rt.ubsan_standalone_cxx-x86_64
+[412/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_interceptors.cc.o
+[413/611] Linking CXX static library lib/linux/libclang_rt.ubsan_standalone-i386.a
+[414/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_linux.cc.o
+[415/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_mac.cc.o
+[416/611] Linking CXX static library lib/linux/libclang_rt.ubsan_standalone-x86_64.a
+[417/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_malloc_linux.cc.o
+[418/611] Generating exported symbols for clang_rt.ubsan_standalone-x86_64
+[419/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_malloc_mac.cc.o
+[420/611] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_preinit.cc.o
+[421/611] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_allocator.cc.o
+[422/611] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan.cc.o
+[423/611] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_interceptors.cc.o
+[424/611] Building CXX object lib/lsan/CMakeFiles/clang_rt.lsan-x86_64.dir/lsan_thread.cc.o
+[425/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_malloc_win.cc.o
+[426/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_poisoning.cc.o
+[427/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_posix.cc.o
+[428/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_report.cc.o
+[429/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_stack.cc.o
+[430/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_thread.cc.o
+[431/611] Building CXX object lib/asan/CMakeFiles/RTAsan.i386.dir/asan_win.cc.o
+[432/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_debugging.cc.o
+[433/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_allocator.cc.o
+[434/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_activation.cc.o
+[435/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_fake_stack.cc.o
+[436/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_flags.cc.o
+[437/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_globals.cc.o
+[438/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_interceptors.cc.o
+[439/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_linux.cc.o
+[440/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_mac.cc.o
+[441/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_malloc_linux.cc.o
+[442/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_malloc_mac.cc.o
+[443/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_malloc_win.cc.o
+[444/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_poisoning.cc.o
+[445/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_posix.cc.o
+[446/611] Linking CXX static library lib/linux/libclang_rt.lsan-x86_64.a
+[447/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_report.cc.o
+[448/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_rtl.cc.o
+[449/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_stack.cc.o
+[450/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_stats.cc.o
+[451/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_suppressions.cc.o
+[452/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_thread.cc.o
+[453/611] Building CXX object lib/asan/CMakeFiles/RTAsan.x86_64.dir/asan_win.cc.o
+[454/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_globals.cc.o
+[455/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_flags.cc.o
+[456/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_fake_stack.cc.o
+[457/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_interceptors.cc.o
+[458/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_debugging.cc.o
+[459/611] Building CXX object lib/asan/CMakeFiles/RTAsan_cxx.i386.dir/asan_new_delete.cc.o
+[460/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_activation.cc.o
+[461/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_allocator.cc.o
+[462/611] Building CXX object lib/asan/CMakeFiles/RTAsan_cxx.x86_64.dir/asan_new_delete.cc.o
+[463/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_linux.cc.o
+[464/611] Linking CXX static library lib/linux/libclang_rt.asan_cxx-i386.a
+[465/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_suppressions.cc.o
+[466/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_linux.cc.o
+[467/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_mac.cc.o
+[468/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_mac.cc.o
+[469/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_malloc_win.cc.o
+[470/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_poisoning.cc.o
+[471/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_posix.cc.o
+[472/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_report.cc.o
+[473/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_rtl.cc.o
+[474/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_stack.cc.o
+[475/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_stats.cc.o
+[476/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_thread.cc.o
+[477/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_win.cc.o
+[478/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i386.dir/asan_new_delete.cc.o
+[479/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_mac.cc.o
+[480/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_linux.cc.o
+[481/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_globals.cc.o
+[482/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_malloc_linux.cc.o
+[483/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_debugging.cc.o
+[484/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_activation.cc.o
+[485/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_allocator.cc.o
+[486/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_flags.cc.o
+[487/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_interceptors.cc.o
+[488/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_fake_stack.cc.o
+[489/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_malloc_mac.cc.o
+[490/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_malloc_win.cc.o
+[491/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_poisoning.cc.o
+[492/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_posix.cc.o
+[493/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_report.cc.o
+[494/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_rtl.cc.o
+[495/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_stack.cc.o
+[496/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_stats.cc.o
+[497/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_suppressions.cc.o
+[498/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_thread.cc.o
+[499/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_win.cc.o
+[500/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.x86_64.dir/asan_new_delete.cc.o
+[501/611] Building CXX object lib/asan/CMakeFiles/RTAsan_preinit.i386.dir/asan_preinit.cc.o
+[502/611] Building CXX object lib/asan/CMakeFiles/RTAsan_preinit.x86_64.dir/asan_preinit.cc.o
+[503/611] Linking CXX static library lib/linux/libclang_rt.asan-preinit-i386.a
+[504/611] Copying asan_blacklist.txt...
+[505/611] Linking CXX static library lib/linux/libclang_rt.asan_cxx-x86_64.a
+[506/611] Generating exported symbols for clang_rt.asan_cxx-x86_64
+[507/611] Generating ../../dfsan_abilist.txt
+[508/611] Building CXX object lib/dfsan/CMakeFiles/clang_rt.dfsan-x86_64.dir/dfsan.cc.o
+[509/611] Linking CXX static library lib/linux/libclang_rt.asan-preinit-x86_64.a
+[510/611] Building CXX object lib/dfsan/CMakeFiles/clang_rt.dfsan-x86_64.dir/dfsan_custom.cc.o
+[511/611] Building CXX object lib/dfsan/CMakeFiles/clang_rt.dfsan-x86_64.dir/dfsan_interceptors.cc.o
+[512/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_allocator.cc.o
+[513/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan.cc.o
+[514/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_poisoning.cc.o
+[515/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_chained_origin_depot.cc.o
+[516/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_interceptors.cc.o
+[517/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_linux.cc.o
+[518/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_report.cc.o
+[519/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan-x86_64.dir/msan_thread.cc.o
+[520/611] Copying msan_blacklist.txt...
+[521/611] Building CXX object lib/msan/CMakeFiles/clang_rt.msan_cxx-x86_64.dir/msan_new_delete.cc.o
+[522/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/GCDAProfiling.c.o
+[523/611] Linking CXX static library lib/linux/libclang_rt.msan_cxx-x86_64.a
+[524/611] Generating exported symbols for clang_rt.msan_cxx-x86_64
+[525/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfiling.c.o
+[526/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingValue.c.o
+[527/611] Linking CXX static library lib/linux/libclang_rt.dfsan-x86_64.a
+[528/611] Generating exported symbols for clang_rt.dfsan-x86_64
+[529/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingBuffer.c.o
+[530/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingFile.c.o
+[531/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingMerge.c.o
+[532/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingMergeFile.c.o
+[533/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingWriter.c.o
+[534/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingPlatformDarwin.c.o
+[535/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingPlatformLinux.c.o
+[536/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingPlatformOther.c.o
+[537/611] Building CXX object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingRuntime.cc.o
+[538/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-i386.dir/InstrProfilingUtil.c.o
+[539/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/GCDAProfiling.c.o
+[540/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfiling.c.o
+[541/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingValue.c.o
+[542/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingBuffer.c.o
+[543/611] Linking CXX static library lib/linux/libclang_rt.profile-i386.a
+[544/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingFile.c.o
+[545/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingMerge.c.o
+[546/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingMergeFile.c.o
+[547/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingWriter.c.o
+[548/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingPlatformDarwin.c.o
+[549/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingPlatformLinux.c.o
+[550/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingPlatformOther.c.o
+[551/611] Building CXX object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingRuntime.cc.o
+[552/611] Building C object lib/profile/CMakeFiles/clang_rt.profile-x86_64.dir/InstrProfilingUtil.c.o
+[553/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_clock.cc.o
+[554/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_ignoreset.cc.o
+[555/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_debugging.cc.o
+[556/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_flags.cc.o
+[557/611] Linking CXX static library lib/linux/libclang_rt.profile-x86_64.a
+[558/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_fd.cc.o
+[559/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interceptors.cc.o
+[560/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_ann.cc.o
+[561/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_mutex.cc.o
+[562/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_atomic.cc.o
+[563/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface.cc.o
+[564/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_interface_java.cc.o
+[565/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_malloc_mac.cc.o
+[566/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_md5.cc.o
+[567/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_mman.cc.o
+[568/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_mutex.cc.o
+[569/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_mutexset.cc.o
+[570/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_report.cc.o
+[571/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl.cc.o
+[572/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_suppressions.cc.o
+[573/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_report.cc.o
+[574/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_thread.cc.o
+[575/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_stack_trace.cc.o
+[576/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_stat.cc.o
+[577/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_platform_linux.cc.o
+[578/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_symbolize.cc.o
+[579/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_sync.cc.o
+[580/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_platform_posix.cc.o
+[581/611] Building C object lib/tsan/CMakeFiles/clang_rt.tsan-x86_64.dir/rtl/tsan_rtl_amd64.S.o
+[582/611] Building CXX object lib/tsan/dd/CMakeFiles/RTDD.x86_64.dir/dd_rtl.cc.o
+[583/611] Building CXX object lib/tsan/dd/CMakeFiles/RTDD.x86_64.dir/dd_interceptors.cc.o
+[584/611] Building CXX object lib/tsan/CMakeFiles/clang_rt.tsan_cxx-x86_64.dir/rtl/tsan_new_delete.cc.o
+[585/611] Building CXX object lib/tsan/dd/CMakeFiles/clang_rt.dd-x86_64.dir/dd_interceptors.cc.o
+[586/611] Building CXX object lib/tsan/dd/CMakeFiles/clang_rt.dd-x86_64.dir/dd_rtl.cc.o
+[587/611] Linking CXX static library lib/linux/libclang_rt.tsan_cxx-x86_64.a
+[588/611] Generating exported symbols for clang_rt.tsan_cxx-x86_64
+[589/611] Building CXX object lib/cfi/CMakeFiles/clang_rt.cfi-i386.dir/cfi.cc.o
+[590/611] Building CXX object lib/cfi/CMakeFiles/clang_rt.cfi-x86_64.dir/cfi.cc.o
+[591/611] Linking CXX static library lib/linux/libclang_rt.dd-x86_64.a
+[592/611] Linking CXX shared library lib/linux/libclang_rt.dyndd-x86_64.so
+[593/611] Building CXX object lib/cfi/CMakeFiles/clang_rt.cfi_diag-i386.dir/cfi.cc.o
+[594/611] Copying cfi_blacklist.txt...
+[595/611] Linking CXX static library lib/linux/libclang_rt.cfi-i386.a
+[596/611] Building CXX object lib/cfi/CMakeFiles/clang_rt.cfi_diag-x86_64.dir/cfi.cc.o
+[597/611] Linking CXX static library lib/linux/libclang_rt.cfi-x86_64.a
+[598/611] Linking CXX static library lib/linux/libclang_rt.cfi_diag-i386.a
+[599/611] Linking CXX static library lib/linux/libclang_rt.cfi_diag-x86_64.a
+[600/611] Linking CXX static library lib/linux/libclang_rt.tsan-x86_64.a
+[601/611] Generating exported symbols for clang_rt.tsan-x86_64
+[602/611] Linking CXX static library lib/linux/libclang_rt.msan-x86_64.a
+[603/611] Generating exported symbols for clang_rt.msan-x86_64
+[604/611] Linking CXX static library lib/linux/libclang_rt.asan-i386.a
+[605/611] Linking CXX static library lib/linux/libclang_rt.asan-x86_64.a
+[606/611] Generating exported symbols for clang_rt.asan-x86_64
+[607/611] Generating version list for clang_rt.asan-dynamic-x86_64
+[608/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.i386.dir/dummy.cc.o
+[609/611] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.x86_64.dir/dummy.cc.o
+[610/611] Linking CXX shared library lib/linux/libclang_rt.asan-i386.so
+[611/611] Linking CXX shared library lib/linux/libclang_rt.asan-x86_64.so
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/../../asan_blacklist.txt to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/../../cfi_blacklist.txt to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/../../msan_blacklist.txt to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0
+Creating directory /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/msan_interface.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/coverage_interface.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/linux_syscall_hooks.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/tsan_interface_atomic.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/dfsan_interface.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/asan_interface.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/allocator_interface.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/lsan_interface.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/include/sanitizer/common_interface_defs.h to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/sanitizer
+Creating directory /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.cfi_diag-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-i386.so to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.cfi_diag-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.dfsan-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-preinit-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.lsan-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.profile-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.msan-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone_cxx-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.msan_cxx-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan_cxx-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.dyndd-x86_64.so to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan_cxx-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone_cxx-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.cfi-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan_cxx-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.dfsan-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.builtins-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.tsan-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.dd-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone_cxx-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.msan-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.builtins-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.profile-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.tsan_cxx-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.cfi-i386.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.msan_cxx-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.tsan-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.tsan_cxx-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-x86_64.a.syms to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-x86_64.so to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.ubsan_standalone-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Copying /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt/lib/linux/libclang_rt.asan-preinit-x86_64.a to /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux
+Running /b/build/slave/build_and_upload_clang/build/src/third_party/android_tools/ndk/build/tools/make-standalone-toolchain.sh --platform=android-21 '--install-dir="/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64"' --system=linux-x86_64 --stl=stlport --toolchain=aarch64-linux-android-4.9
 WARNING: The shell running this script isn't bash.  Although we try to avoid bashism in scripts, things can happen.
 Copying prebuilt binaries...
 Copying sysroot headers and libraries...
 Copying c++ runtime headers and libraries...
-Copying files to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64
+Copying files to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64
 Cleaning up...
 Done.
-Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang++ -DLLVM_CONFIG_PATH=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/llvm-config '-DCMAKE_C_FLAGS=--target=aarch64-linux-androideabi --sysroot=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64/sysroot -B/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64' '-DCMAKE_CXX_FLAGS=--target=aarch64-linux-androideabi --sysroot=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64/sysroot -B/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64' -DANDROID=1 /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt
+Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang++ -DLLVM_CONFIG_PATH=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/llvm-config '-DCMAKE_C_FLAGS=--target=aarch64-linux-androideabi --sysroot=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64/sysroot -B/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64' '-DCMAKE_CXX_FLAGS=--target=aarch64-linux-androideabi --sysroot=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64/sysroot -B/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64' -DANDROID=1 /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt
 -- The C compiler identification is Clang 3.9.0
 -- The CXX compiler identification is Clang 3.9.0
 -- The ASM compiler identification is Clang
--- Found assembler: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
+-- Found assembler: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
 -- Check for working C compiler using: Ninja
 -- Check for working C compiler using: Ninja -- works
 -- Detecting C compiler ABI info
@@ -17760,7 +53819,7 @@
 -- Detecting CXX compiler ABI info - done
 -- Detecting CXX compile features
 -- Detecting CXX compile features - done
--- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.3") 
 -- Looking for unwind.h
 -- Looking for unwind.h - found
 -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
@@ -17879,8 +53938,6 @@
 -- Looking for __mips__ - not found
 -- Looking for __mips64__
 -- Looking for __mips64__ - not found
--- Looking for __s390x__
--- Looking for __s390x__ - not found
 -- Looking for __wasm32__
 -- Looking for __wasm32__ - not found
 -- Looking for __wasm64__
@@ -17899,127 +53956,126 @@
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-aarch64
+-- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-aarch64
 Running ninja libclang_rt.asan-aarch64-android.so
-[1/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_procmaps_freebsd.cc.o
-[2/106] Building CXX object lib/interception/CMakeFiles/RTInterception.aarch64.dir/interception_win.cc.o
-[3/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_linux_s390.cc.o
-[4/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_procmaps_mac.cc.o
-[5/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_symbolizer_mac.cc.o
-[6/106] Building CXX object lib/interception/CMakeFiles/RTInterception.aarch64.dir/interception_type_test.cc.o
-[7/106] Building CXX object lib/interception/CMakeFiles/RTInterception.aarch64.dir/interception_linux.cc.o
-[8/106] Building CXX object lib/interception/CMakeFiles/RTInterception.aarch64.dir/interception_mac.cc.o
-[9/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_symbolizer_win.cc.o
-[10/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_platform_limits_linux.cc.o
-[11/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_mac.cc.o
-[12/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_win.cc.o
-[13/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_persistent_allocator.cc.o
-[14/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_tls_get_addr.cc.o
-[15/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_stacktrace.cc.o
-[16/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_stacktrace_libcdep.cc.o
-[17/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_libignore.cc.o
-[18/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_stacktrace_printer.cc.o
-[19/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_unwind_linux_libcdep.cc.o
-[20/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_symbolizer_libbacktrace.cc.o
-[21/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_procmaps_linux.cc.o
-[22/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_deadlock_detector2.cc.o
-[23/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_platform_limits_posix.cc.o
-[24/106] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.aarch64.dir/lsan_common.cc.o
-[25/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.aarch64.dir/ubsan_type_hash_win.cc.o
-[26/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_common_libcdep.cc.o
-[27/106] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.aarch64.dir/lsan_common_linux.cc.o
-[28/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_coverage_mapping_libcdep.cc.o
-[29/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.aarch64.dir/ubsan_type_hash.cc.o
-[30/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_flag_parser.cc.o
-[31/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_flags.cc.o
-[32/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_init.cc.o
-[33/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_symbolizer.cc.o
-[34/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_flags.cc.o
-[35/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_posix_libcdep.cc.o
-[36/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_value.cc.o
-[37/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_mac.cc.o
-[38/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_malloc_mac.cc.o
-[39/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_thread_registry.cc.o
-[40/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_linux_libcdep.cc.o
-[41/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_malloc_win.cc.o
-[42/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_suppressions.cc.o
-[43/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_procmaps_common.cc.o
-[44/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
-[45/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_posix.cc.o
-[46/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_printf.cc.o
-[47/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_symbolizer_libcdep.cc.o
-[48/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_stackdepot.cc.o
-[49/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_win.cc.o
-[50/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.aarch64.dir/ubsan_type_hash_itanium.cc.o
-[51/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_symbolizer_posix_libcdep.cc.o
-[52/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.aarch64.dir/ubsan_handlers_cxx.cc.o
-[53/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_linux.cc.o
-[54/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_debugging.cc.o
-[55/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_activation.cc.o
-[56/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_stack.cc.o
-[57/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_mac.cc.o
-[58/106] Building CXX object lib/asan/CMakeFiles/RTAsan_cxx.aarch64.dir/asan_new_delete.cc.o
-[59/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_linux.cc.o
-[60/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_suppressions.cc.o
-[61/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_allocator.cc.o
-[62/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_malloc_mac.cc.o
-[63/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_flags.cc.o
-[64/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_malloc_win.cc.o
-[65/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_diag.cc.o
-[66/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_libc.cc.o
-[67/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_posix.cc.o
-[68/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_common.cc.o
-[69/106] Linking CXX static library lib/linux/libclang_rt.asan_cxx-aarch64-android.a
-[70/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_win.cc.o
-[71/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_activation.cc.o
-[72/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_malloc_linux.cc.o
-[73/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_debugging.cc.o
-[74/106] Building CXX object lib/asan/CMakeFiles/RTAsan_preinit.aarch64.dir/asan_preinit.cc.o
-[75/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_stats.cc.o
-[76/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_linux.cc.o
-[77/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_flags.cc.o
-[78/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_stack.cc.o
-[79/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_deadlock_detector1.cc.o
-[80/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_handlers.cc.o
-[81/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_poisoning.cc.o
-[82/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_thread.cc.o
-[83/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_posix.cc.o
-[84/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_suppressions.cc.o
-[85/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_malloc_linux.cc.o
-[86/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_new_delete.cc.o
-[87/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_stats.cc.o
-[88/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_coverage_libcdep.cc.o
-[89/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_rtl.cc.o
-[90/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_poisoning.cc.o
-[91/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_fake_stack.cc.o
-[92/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_thread.cc.o
-[93/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_globals.cc.o
-[94/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_globals.cc.o
-[95/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_fake_stack.cc.o
-[96/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_report.cc.o
-[97/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_rtl.cc.o
-[98/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_report.cc.o
-[99/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_allocator.cc.o
-[100/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_allocator.cc.o
-[101/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_interceptors.cc.o
-[102/106] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_interceptors.cc.o
-[103/106] Linking CXX static library lib/linux/libclang_rt.asan-aarch64-android.a
-[104/106] Generating version list for clang_rt.asan-dynamic-aarch64
-[105/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.aarch64.dir/dummy.cc.o
-[106/106] Linking CXX shared library lib/linux/libclang_rt.asan-aarch64-android.so
-Running /b/build/slave/linux_upload_clang/build/src/third_party/android_tools/ndk/build/tools/make-standalone-toolchain.sh --platform=android-19 '--install-dir="/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm"' --system=linux-x86_64 --stl=stlport --toolchain=arm-linux-androideabi-4.9
+[1/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_procmaps_freebsd.cc.o
+[2/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.aarch64.dir/ubsan_type_hash_win.cc.o
+[3/105] Building CXX object lib/interception/CMakeFiles/RTInterception.aarch64.dir/interception_mac.cc.o
+[4/105] Building CXX object lib/interception/CMakeFiles/RTInterception.aarch64.dir/interception_win.cc.o
+[5/105] Building CXX object lib/interception/CMakeFiles/RTInterception.aarch64.dir/interception_type_test.cc.o
+[6/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_allocator.cc.o
+[7/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_common.cc.o
+[8/105] Building CXX object lib/interception/CMakeFiles/RTInterception.aarch64.dir/interception_linux.cc.o
+[9/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_deadlock_detector1.cc.o
+[10/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_deadlock_detector2.cc.o
+[11/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_flags.cc.o
+[12/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_flag_parser.cc.o
+[13/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_libc.cc.o
+[14/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_libignore.cc.o
+[15/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_linux.cc.o
+[16/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_mac.cc.o
+[17/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_persistent_allocator.cc.o
+[18/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_platform_limits_linux.cc.o
+[19/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_platform_limits_posix.cc.o
+[20/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_posix.cc.o
+[21/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_printf.cc.o
+[22/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_procmaps_common.cc.o
+[23/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_procmaps_linux.cc.o
+[24/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_procmaps_mac.cc.o
+[25/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_stackdepot.cc.o
+[26/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_stacktrace.cc.o
+[27/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_stacktrace_printer.cc.o
+[28/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_suppressions.cc.o
+[29/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_symbolizer.cc.o
+[30/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_symbolizer_libbacktrace.cc.o
+[31/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_symbolizer_mac.cc.o
+[32/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_symbolizer_win.cc.o
+[33/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_tls_get_addr.cc.o
+[34/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_thread_registry.cc.o
+[35/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.aarch64.dir/sanitizer_win.cc.o
+[36/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_common_libcdep.cc.o
+[37/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_coverage_libcdep.cc.o
+[38/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_coverage_mapping_libcdep.cc.o
+[39/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_linux_libcdep.cc.o
+[40/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_posix_libcdep.cc.o
+[41/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_stacktrace_libcdep.cc.o
+[42/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
+[43/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_symbolizer_libcdep.cc.o
+[44/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_symbolizer_posix_libcdep.cc.o
+[45/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.aarch64.dir/sanitizer_unwind_linux_libcdep.cc.o
+[46/105] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.aarch64.dir/lsan_common.cc.o
+[47/105] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.aarch64.dir/lsan_common_linux.cc.o
+[48/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_diag.cc.o
+[49/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_init.cc.o
+[50/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_flags.cc.o
+[51/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_handlers.cc.o
+[52/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.aarch64.dir/ubsan_value.cc.o
+[53/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.aarch64.dir/ubsan_handlers_cxx.cc.o
+[54/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.aarch64.dir/ubsan_type_hash.cc.o
+[55/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.aarch64.dir/ubsan_type_hash_itanium.cc.o
+[56/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_allocator.cc.o
+[57/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_activation.cc.o
+[58/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_debugging.cc.o
+[59/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_fake_stack.cc.o
+[60/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_flags.cc.o
+[61/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_globals.cc.o
+[62/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_interceptors.cc.o
+[63/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_linux.cc.o
+[64/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_mac.cc.o
+[65/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_malloc_linux.cc.o
+[66/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_malloc_mac.cc.o
+[67/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_malloc_win.cc.o
+[68/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_poisoning.cc.o
+[69/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_posix.cc.o
+[70/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_report.cc.o
+[71/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_rtl.cc.o
+[72/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_stack.cc.o
+[73/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_stats.cc.o
+[74/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_suppressions.cc.o
+[75/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_thread.cc.o
+[76/105] Building CXX object lib/asan/CMakeFiles/RTAsan.aarch64.dir/asan_win.cc.o
+[77/105] Building CXX object lib/asan/CMakeFiles/RTAsan_cxx.aarch64.dir/asan_new_delete.cc.o
+[78/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_allocator.cc.o
+[79/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_activation.cc.o
+[80/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_debugging.cc.o
+[81/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_fake_stack.cc.o
+[82/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_flags.cc.o
+[83/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_globals.cc.o
+[84/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_interceptors.cc.o
+[85/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_linux.cc.o
+[86/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_mac.cc.o
+[87/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_malloc_linux.cc.o
+[88/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_malloc_mac.cc.o
+[89/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_malloc_win.cc.o
+[90/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_poisoning.cc.o
+[91/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_posix.cc.o
+[92/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_report.cc.o
+[93/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_rtl.cc.o
+[94/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_stack.cc.o
+[95/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_stats.cc.o
+[96/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_suppressions.cc.o
+[97/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_thread.cc.o
+[98/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_win.cc.o
+[99/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.aarch64.dir/asan_new_delete.cc.o
+[100/105] Building CXX object lib/asan/CMakeFiles/RTAsan_preinit.aarch64.dir/asan_preinit.cc.o
+[101/105] Linking CXX static library lib/linux/libclang_rt.asan_cxx-aarch64-android.a
+[102/105] Linking CXX static library lib/linux/libclang_rt.asan-aarch64-android.a
+[103/105] Generating version list for clang_rt.asan-dynamic-aarch64
+[104/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.aarch64.dir/dummy.cc.o
+[105/105] Linking CXX shared library lib/linux/libclang_rt.asan-aarch64-android.so
+Running /b/build/slave/build_and_upload_clang/build/src/third_party/android_tools/ndk/build/tools/make-standalone-toolchain.sh --platform=android-19 '--install-dir="/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm"' --system=linux-x86_64 --stl=stlport --toolchain=arm-linux-androideabi-4.9
 WARNING: The shell running this script isn't bash.  Although we try to avoid bashism in scripts, things can happen.
 Copying prebuilt binaries...
 Copying sysroot headers and libraries...
 Copying c++ runtime headers and libraries...
-Copying files to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm
+Copying files to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm
 Cleaning up...
 Done.
-Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang++ -DLLVM_CONFIG_PATH=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/llvm-config '-DCMAKE_C_FLAGS=--target=arm-linux-androideabi --sysroot=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm/sysroot -B/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm' '-DCMAKE_CXX_FLAGS=--target=arm-linux-androideabi --sysroot=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm/sysroot -B/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm' -DANDROID=1 /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt
+Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang++ -DLLVM_CONFIG_PATH=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/llvm-config '-DCMAKE_C_FLAGS=--target=arm-linux-androideabi --sysroot=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm/sysroot -B/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm' '-DCMAKE_CXX_FLAGS=--target=arm-linux-androideabi --sysroot=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm/sysroot -B/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm' -DANDROID=1 /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt
 -- The C compiler identification is Clang 3.9.0
 -- The CXX compiler identification is Clang 3.9.0
 -- The ASM compiler identification is Clang
--- Found assembler: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
+-- Found assembler: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
 -- Check for working C compiler using: Ninja
 -- Check for working C compiler using: Ninja -- works
 -- Detecting C compiler ABI info
@@ -18032,7 +54088,7 @@
 -- Detecting CXX compiler ABI info - done
 -- Detecting CXX compile features
 -- Detecting CXX compile features - done
--- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.3") 
 -- Looking for unwind.h
 -- Looking for unwind.h - found
 -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
@@ -18151,8 +54207,6 @@
 -- Looking for __mips__ - not found
 -- Looking for __mips64__
 -- Looking for __mips64__ - not found
--- Looking for __s390x__
--- Looking for __s390x__ - not found
 -- Looking for __wasm32__
 -- Looking for __wasm32__ - not found
 -- Looking for __wasm64__
@@ -18171,127 +54225,126 @@
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-arm
+-- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-arm
 Running ninja libclang_rt.asan-arm-android.so
-[1/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_mac.cc.o
-[2/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_linux_s390.cc.o
-[3/106] Building CXX object lib/interception/CMakeFiles/RTInterception.arm.dir/interception_win.cc.o
-[4/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_procmaps_mac.cc.o
-[5/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_procmaps_freebsd.cc.o
-[6/106] Building CXX object lib/interception/CMakeFiles/RTInterception.arm.dir/interception_mac.cc.o
-[7/106] Building CXX object lib/interception/CMakeFiles/RTInterception.arm.dir/interception_linux.cc.o
-[8/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_symbolizer_mac.cc.o
-[9/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_symbolizer_win.cc.o
-[10/106] Building CXX object lib/interception/CMakeFiles/RTInterception.arm.dir/interception_type_test.cc.o
-[11/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_platform_limits_linux.cc.o
-[12/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_win.cc.o
-[13/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
-[14/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_persistent_allocator.cc.o
-[15/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_tls_get_addr.cc.o
-[16/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_deadlock_detector2.cc.o
-[17/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_procmaps_linux.cc.o
-[18/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_stacktrace.cc.o
-[19/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_stacktrace_libcdep.cc.o
-[20/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_stacktrace_printer.cc.o
-[21/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_symbolizer_libbacktrace.cc.o
-[22/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_libignore.cc.o
-[23/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_flag_parser.cc.o
-[24/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_unwind_linux_libcdep.cc.o
-[25/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.arm.dir/ubsan_type_hash_win.cc.o
-[26/106] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.arm.dir/lsan_common.cc.o
-[27/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_platform_limits_posix.cc.o
-[28/106] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.arm.dir/lsan_common_linux.cc.o
-[29/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_symbolizer.cc.o
-[30/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_procmaps_common.cc.o
-[31/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_common_libcdep.cc.o
-[32/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_flags.cc.o
-[33/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_printf.cc.o
-[34/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_coverage_mapping_libcdep.cc.o
-[35/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_value.cc.o
-[36/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_init.cc.o
-[37/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_mac.cc.o
-[38/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.arm.dir/ubsan_type_hash.cc.o
-[39/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_posix.cc.o
-[40/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_malloc_mac.cc.o
-[41/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_suppressions.cc.o
-[42/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_thread_registry.cc.o
-[43/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_flags.cc.o
-[44/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_malloc_win.cc.o
-[45/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_posix_libcdep.cc.o
-[46/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.arm.dir/ubsan_type_hash_itanium.cc.o
-[47/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_win.cc.o
-[48/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_stackdepot.cc.o
-[49/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_common.cc.o
-[50/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.arm.dir/ubsan_handlers_cxx.cc.o
-[51/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_linux_libcdep.cc.o
-[52/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_libc.cc.o
-[53/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_symbolizer_libcdep.cc.o
-[54/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_linux.cc.o
-[55/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_linux.cc.o
-[56/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_debugging.cc.o
-[57/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_mac.cc.o
-[58/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_activation.cc.o
-[59/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_stack.cc.o
-[60/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_malloc_win.cc.o
-[61/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_malloc_mac.cc.o
-[62/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_symbolizer_posix_libcdep.cc.o
-[63/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_posix.cc.o
-[64/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_suppressions.cc.o
-[65/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_flags.cc.o
-[66/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_allocator.cc.o
-[67/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_diag.cc.o
-[68/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_win.cc.o
-[69/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_stats.cc.o
-[70/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_activation.cc.o
-[71/106] Building CXX object lib/asan/CMakeFiles/RTAsan_cxx.arm.dir/asan_new_delete.cc.o
-[72/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_malloc_linux.cc.o
-[73/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_debugging.cc.o
-[74/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_linux.cc.o
-[75/106] Building CXX object lib/asan/CMakeFiles/RTAsan_preinit.arm.dir/asan_preinit.cc.o
-[76/106] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_handlers.cc.o
-[77/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_deadlock_detector1.cc.o
-[78/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_stack.cc.o
-[79/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_flags.cc.o
-[80/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_suppressions.cc.o
-[81/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_stats.cc.o
-[82/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_posix.cc.o
-[83/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_malloc_linux.cc.o
-[84/106] Linking CXX static library lib/linux/libclang_rt.asan_cxx-arm-android.a
-[85/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_thread.cc.o
-[86/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_poisoning.cc.o
-[87/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_new_delete.cc.o
-[88/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_fake_stack.cc.o
-[89/106] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_coverage_libcdep.cc.o
-[90/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_rtl.cc.o
-[91/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_globals.cc.o
-[92/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_thread.cc.o
-[93/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_poisoning.cc.o
-[94/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_rtl.cc.o
-[95/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_fake_stack.cc.o
-[96/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_globals.cc.o
-[97/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_report.cc.o
-[98/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_report.cc.o
-[99/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_allocator.cc.o
-[100/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_allocator.cc.o
-[101/106] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_interceptors.cc.o
-[102/106] Linking CXX static library lib/linux/libclang_rt.asan-arm-android.a
-[103/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_interceptors.cc.o
-[104/106] Generating version list for clang_rt.asan-dynamic-arm
-[105/106] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.arm.dir/dummy.cc.o
-[106/106] Linking CXX shared library lib/linux/libclang_rt.asan-arm-android.so
-Running /b/build/slave/linux_upload_clang/build/src/third_party/android_tools/ndk/build/tools/make-standalone-toolchain.sh --platform=android-19 '--install-dir="/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686"' --system=linux-x86_64 --stl=stlport --toolchain=x86-4.9
+[1/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_flag_parser.cc.o
+[2/105] Building CXX object lib/interception/CMakeFiles/RTInterception.arm.dir/interception_linux.cc.o
+[3/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_allocator.cc.o
+[4/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_common.cc.o
+[5/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_deadlock_detector2.cc.o
+[6/105] Building CXX object lib/interception/CMakeFiles/RTInterception.arm.dir/interception_win.cc.o
+[7/105] Building CXX object lib/interception/CMakeFiles/RTInterception.arm.dir/interception_mac.cc.o
+[8/105] Building CXX object lib/interception/CMakeFiles/RTInterception.arm.dir/interception_type_test.cc.o
+[9/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_deadlock_detector1.cc.o
+[10/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_flags.cc.o
+[11/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_libc.cc.o
+[12/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_libignore.cc.o
+[13/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_linux.cc.o
+[14/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_mac.cc.o
+[15/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_persistent_allocator.cc.o
+[16/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_platform_limits_linux.cc.o
+[17/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_platform_limits_posix.cc.o
+[18/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_posix.cc.o
+[19/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_printf.cc.o
+[20/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_procmaps_common.cc.o
+[21/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_procmaps_freebsd.cc.o
+[22/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_procmaps_linux.cc.o
+[23/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_procmaps_mac.cc.o
+[24/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_stackdepot.cc.o
+[25/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_stacktrace.cc.o
+[26/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_stacktrace_printer.cc.o
+[27/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_suppressions.cc.o
+[28/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_symbolizer.cc.o
+[29/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_symbolizer_libbacktrace.cc.o
+[30/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_symbolizer_mac.cc.o
+[31/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_symbolizer_win.cc.o
+[32/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_tls_get_addr.cc.o
+[33/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_thread_registry.cc.o
+[34/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_common_libcdep.cc.o
+[35/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.arm.dir/sanitizer_win.cc.o
+[36/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_coverage_libcdep.cc.o
+[37/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_coverage_mapping_libcdep.cc.o
+[38/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_linux_libcdep.cc.o
+[39/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_posix_libcdep.cc.o
+[40/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_stacktrace_libcdep.cc.o
+[41/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
+[42/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_symbolizer_libcdep.cc.o
+[43/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_symbolizer_posix_libcdep.cc.o
+[44/105] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.arm.dir/sanitizer_unwind_linux_libcdep.cc.o
+[45/105] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.arm.dir/lsan_common.cc.o
+[46/105] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.arm.dir/lsan_common_linux.cc.o
+[47/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_diag.cc.o
+[48/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_init.cc.o
+[49/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_flags.cc.o
+[50/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_handlers.cc.o
+[51/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.arm.dir/ubsan_value.cc.o
+[52/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.arm.dir/ubsan_handlers_cxx.cc.o
+[53/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.arm.dir/ubsan_type_hash.cc.o
+[54/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.arm.dir/ubsan_type_hash_itanium.cc.o
+[55/105] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.arm.dir/ubsan_type_hash_win.cc.o
+[56/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_allocator.cc.o
+[57/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_activation.cc.o
+[58/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_debugging.cc.o
+[59/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_fake_stack.cc.o
+[60/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_flags.cc.o
+[61/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_globals.cc.o
+[62/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_interceptors.cc.o
+[63/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_linux.cc.o
+[64/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_mac.cc.o
+[65/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_malloc_linux.cc.o
+[66/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_malloc_mac.cc.o
+[67/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_malloc_win.cc.o
+[68/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_poisoning.cc.o
+[69/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_posix.cc.o
+[70/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_report.cc.o
+[71/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_rtl.cc.o
+[72/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_stack.cc.o
+[73/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_stats.cc.o
+[74/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_suppressions.cc.o
+[75/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_thread.cc.o
+[76/105] Building CXX object lib/asan/CMakeFiles/RTAsan.arm.dir/asan_win.cc.o
+[77/105] Building CXX object lib/asan/CMakeFiles/RTAsan_cxx.arm.dir/asan_new_delete.cc.o
+[78/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_allocator.cc.o
+[79/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_activation.cc.o
+[80/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_debugging.cc.o
+[81/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_fake_stack.cc.o
+[82/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_flags.cc.o
+[83/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_globals.cc.o
+[84/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_interceptors.cc.o
+[85/105] Linking CXX static library lib/linux/libclang_rt.asan_cxx-arm-android.a
+[86/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_linux.cc.o
+[87/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_mac.cc.o
+[88/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_malloc_linux.cc.o
+[89/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_malloc_mac.cc.o
+[90/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_malloc_win.cc.o
+[91/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_poisoning.cc.o
+[92/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_posix.cc.o
+[93/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_report.cc.o
+[94/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_rtl.cc.o
+[95/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_stack.cc.o
+[96/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_stats.cc.o
+[97/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_suppressions.cc.o
+[98/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_thread.cc.o
+[99/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_win.cc.o
+[100/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.arm.dir/asan_new_delete.cc.o
+[101/105] Building CXX object lib/asan/CMakeFiles/RTAsan_preinit.arm.dir/asan_preinit.cc.o
+[102/105] Linking CXX static library lib/linux/libclang_rt.asan-arm-android.a
+[103/105] Generating version list for clang_rt.asan-dynamic-arm
+[104/105] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.arm.dir/dummy.cc.o
+[105/105] Linking CXX shared library lib/linux/libclang_rt.asan-arm-android.so
+Running /b/build/slave/build_and_upload_clang/build/src/third_party/android_tools/ndk/build/tools/make-standalone-toolchain.sh --platform=android-19 '--install-dir="/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686"' --system=linux-x86_64 --stl=stlport --toolchain=x86-4.9
 WARNING: The shell running this script isn't bash.  Although we try to avoid bashism in scripts, things can happen.
 Copying prebuilt binaries...
 Copying sysroot headers and libraries...
 Copying c++ runtime headers and libraries...
-Copying files to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686
+Copying files to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686
 Cleaning up...
 Done.
-Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DCMAKE_C_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang++ -DLLVM_CONFIG_PATH=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/llvm-config '-DCMAKE_C_FLAGS=--target=i686-linux-androideabi --sysroot=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686/sysroot -B/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686' '-DCMAKE_CXX_FLAGS=--target=i686-linux-androideabi --sysroot=/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686/sysroot -B/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686' -DANDROID=1 /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt
+Running cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_ENABLE_THREADS=OFF -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/clang++ -DCMAKE_C_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang -DCMAKE_CXX_COMPILER=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang++ -DLLVM_CONFIG_PATH=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/llvm-config '-DCMAKE_C_FLAGS=--target=i686-linux-androideabi --sysroot=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686/sysroot -B/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686' '-DCMAKE_CXX_FLAGS=--target=i686-linux-androideabi --sysroot=/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686/sysroot -B/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686' -DANDROID=1 /b/build/slave/build_and_upload_clang/build/src/third_party/llvm/compiler-rt
 -- The C compiler identification is Clang 3.9.0
 -- The CXX compiler identification is Clang 3.9.0
 -- The ASM compiler identification is Clang
--- Found assembler: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
+-- Found assembler: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
 -- Check for working C compiler using: Ninja
 -- Check for working C compiler using: Ninja -- works
 -- Detecting C compiler ABI info
@@ -18304,7 +54357,7 @@
 -- Detecting CXX compiler ABI info - done
 -- Detecting CXX compile features
 -- Detecting CXX compile features - done
--- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.3") 
 -- Looking for unwind.h
 -- Looking for unwind.h - found
 -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
@@ -18423,8 +54476,6 @@
 -- Looking for __mips__ - not found
 -- Looking for __mips64__
 -- Looking for __mips64__ - not found
--- Looking for __s390x__
--- Looking for __s390x__ - not found
 -- Looking for __wasm32__
 -- Looking for __wasm32__ - not found
 -- Looking for __wasm64__
@@ -18443,446 +54494,439 @@
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-i686
+-- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-i686
 Running ninja libclang_rt.asan-i686-android.so
-[1/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_linux_s390.cc.o
-[2/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_procmaps_mac.cc.o
-[3/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_procmaps_freebsd.cc.o
-[4/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_mac.cc.o
-[5/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_symbolizer_mac.cc.o
-[6/80] Building CXX object lib/interception/CMakeFiles/RTInterception.i686.dir/interception_mac.cc.o
-[7/80] Building CXX object lib/interception/CMakeFiles/RTInterception.i686.dir/interception_linux.cc.o
-[8/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_symbolizer_win.cc.o
-[9/80] Building CXX object lib/interception/CMakeFiles/RTInterception.i686.dir/interception_type_test.cc.o
-[10/80] Building CXX object lib/interception/CMakeFiles/RTInterception.i686.dir/interception_win.cc.o
-[11/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_win.cc.o
-[12/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_platform_limits_linux.cc.o
-[13/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
-[14/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_persistent_allocator.cc.o
-[15/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_tls_get_addr.cc.o
-[16/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_stacktrace.cc.o
-[17/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_deadlock_detector2.cc.o
-[18/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_libignore.cc.o
-[19/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_procmaps_linux.cc.o
-[20/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_symbolizer_libbacktrace.cc.o
-[21/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i686.dir/ubsan_type_hash_itanium.cc.o
-[22/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_stacktrace_libcdep.cc.o
-[23/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_unwind_linux_libcdep.cc.o
-[24/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i686.dir/ubsan_type_hash_win.cc.o
-[25/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_flag_parser.cc.o
-[26/80] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.i686.dir/lsan_common_linux.cc.o
-[27/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_symbolizer.cc.o
-[28/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_common_libcdep.cc.o
-[29/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i686.dir/ubsan_type_hash.cc.o
-[30/80] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.i686.dir/lsan_common.cc.o
-[31/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_platform_limits_posix.cc.o
-[32/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_procmaps_common.cc.o
-[33/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_flags.cc.o
-[34/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_stacktrace_printer.cc.o
-[35/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_mac.cc.o
-[36/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_coverage_mapping_libcdep.cc.o
-[37/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_printf.cc.o
-[38/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_flags.cc.o
-[39/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_posix.cc.o
-[40/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_init.cc.o
-[41/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_malloc_win.cc.o
-[42/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_value.cc.o
-[43/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_suppressions.cc.o
-[44/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_thread_registry.cc.o
-[45/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_malloc_mac.cc.o
-[46/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_win.cc.o
-[47/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_posix_libcdep.cc.o
-[48/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.i686.dir/dummy.cc.o
-[49/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i686.dir/ubsan_handlers_cxx.cc.o
-[50/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_linux_libcdep.cc.o
-[51/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_stackdepot.cc.o
-[52/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_symbolizer_posix_libcdep.cc.o
-[53/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_activation.cc.o
-[54/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_linux.cc.o
-[55/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_debugging.cc.o
-[56/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_stack.cc.o
-[57/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_linux.cc.o
-[58/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_symbolizer_libcdep.cc.o
-[59/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_common.cc.o
-[60/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_suppressions.cc.o
-[61/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_posix.cc.o
-[62/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_libc.cc.o
-[63/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_flags.cc.o
-[64/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_stats.cc.o
-[65/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_diag.cc.o
-[66/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_malloc_linux.cc.o
-[67/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_allocator.cc.o
-[68/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_new_delete.cc.o
-[69/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_thread.cc.o
-[70/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_deadlock_detector1.cc.o
-[71/80] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_handlers.cc.o
-[72/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_poisoning.cc.o
-[73/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_globals.cc.o
-[74/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_fake_stack.cc.o
-[75/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_rtl.cc.o
-[76/80] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_coverage_libcdep.cc.o
-[77/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_report.cc.o
-[78/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_allocator.cc.o
-[79/80] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_interceptors.cc.o
-[80/80] Linking CXX shared library lib/linux/libclang_rt.asan-i686-android.so
+[1/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_procmaps_freebsd.cc.o
+[2/79] Building CXX object lib/interception/CMakeFiles/RTInterception.i686.dir/interception_mac.cc.o
+[3/79] Building CXX object lib/interception/CMakeFiles/RTInterception.i686.dir/interception_win.cc.o
+[4/79] Building CXX object lib/interception/CMakeFiles/RTInterception.i686.dir/interception_type_test.cc.o
+[5/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_deadlock_detector2.cc.o
+[6/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_allocator.cc.o
+[7/79] Building CXX object lib/interception/CMakeFiles/RTInterception.i686.dir/interception_linux.cc.o
+[8/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_common.cc.o
+[9/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_deadlock_detector1.cc.o
+[10/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_flags.cc.o
+[11/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_flag_parser.cc.o
+[12/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_libc.cc.o
+[13/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_libignore.cc.o
+[14/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_linux.cc.o
+[15/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_mac.cc.o
+[16/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_persistent_allocator.cc.o
+[17/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_platform_limits_linux.cc.o
+[18/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_platform_limits_posix.cc.o
+[19/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_posix.cc.o
+[20/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_printf.cc.o
+[21/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_procmaps_common.cc.o
+[22/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_procmaps_linux.cc.o
+[23/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_procmaps_mac.cc.o
+[24/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_stackdepot.cc.o
+[25/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_stacktrace.cc.o
+[26/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_stacktrace_printer.cc.o
+[27/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_suppressions.cc.o
+[28/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_symbolizer.cc.o
+[29/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_symbolizer_libbacktrace.cc.o
+[30/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_symbolizer_mac.cc.o
+[31/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_symbolizer_win.cc.o
+[32/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_tls_get_addr.cc.o
+[33/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_thread_registry.cc.o
+[34/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.i686.dir/sanitizer_win.cc.o
+[35/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_coverage_libcdep.cc.o
+[36/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_common_libcdep.cc.o
+[37/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_coverage_mapping_libcdep.cc.o
+[38/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_linux_libcdep.cc.o
+[39/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_posix_libcdep.cc.o
+[40/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_stacktrace_libcdep.cc.o
+[41/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
+[42/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_symbolizer_libcdep.cc.o
+[43/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_symbolizer_posix_libcdep.cc.o
+[44/79] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.i686.dir/sanitizer_unwind_linux_libcdep.cc.o
+[45/79] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.i686.dir/lsan_common.cc.o
+[46/79] Building CXX object lib/lsan/CMakeFiles/RTLSanCommon.i686.dir/lsan_common_linux.cc.o
+[47/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_diag.cc.o
+[48/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_init.cc.o
+[49/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_flags.cc.o
+[50/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_handlers.cc.o
+[51/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan.i686.dir/ubsan_value.cc.o
+[52/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i686.dir/ubsan_handlers_cxx.cc.o
+[53/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i686.dir/ubsan_type_hash.cc.o
+[54/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i686.dir/ubsan_type_hash_itanium.cc.o
+[55/79] Building CXX object lib/ubsan/CMakeFiles/RTUbsan_cxx.i686.dir/ubsan_type_hash_win.cc.o
+[56/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_allocator.cc.o
+[57/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_activation.cc.o
+[58/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_debugging.cc.o
+[59/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_fake_stack.cc.o
+[60/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_flags.cc.o
+[61/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_globals.cc.o
+[62/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_interceptors.cc.o
+[63/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_linux.cc.o
+[64/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_mac.cc.o
+[65/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_malloc_linux.cc.o
+[66/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_malloc_mac.cc.o
+[67/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_malloc_win.cc.o
+[68/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_poisoning.cc.o
+[69/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_posix.cc.o
+[70/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_report.cc.o
+[71/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_rtl.cc.o
+[72/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_stack.cc.o
+[73/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_stats.cc.o
+[74/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_suppressions.cc.o
+[75/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_thread.cc.o
+[76/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_win.cc.o
+[77/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic.i686.dir/asan_new_delete.cc.o
+[78/79] Building CXX object lib/asan/CMakeFiles/RTAsan_dynamic_version_script_dummy.i686.dir/dummy.cc.o
+[79/79] Linking CXX shared library lib/linux/libclang_rt.asan-i686-android.so
 Running ninja cr-check-all
-[1/3] cd /b/build/slave/linux_upload_clang/build/src/tools/clang/plugins && python tests/test.py /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so
-Using clang /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang...
-Using plugin /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so...
+[1/3] cd /b/build/slave/build_and_upload_clang/build/src/tools/clang/plugins && python tests/test.py /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so
+[2/3] cd /b/build/slave/build_and_upload_clang/build/src/tools/clang/blink_gc_plugin && python tests/test.py /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/libBlinkGCPlugin.so
+Using clang /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang...
+Using plugin /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so...
+Testing inline_copy_ctor.cpp... passed!
+Testing missing_ctor.cpp... passed!
+Testing missing_ctor_ignored_base.cpp... passed!
+Testing enum_last_value.cpp... passed!
 Testing virtual_base_method_also_final.cpp... passed!
 Testing overridden_methods.cpp... passed!
+Testing virtual_specifiers.cpp... passed!
+Testing blacklisted_dirs.cpp... passed!
+Testing missing_ctor_dllexport.cpp... passed!
+Testing nested_class_inline_ctor.cpp... passed!
+Testing weak_ptr_factory.cpp... passed!
+Testing virtual_bodies.cpp... passed!
+Testing base_refcounted.cpp... passed!
 Testing inline_ctor.cpp... passed!
 Testing class_with_incomplete_type.cpp... passed!
-Testing nested_class_inline_ctor.cpp... passed!
-Testing enum_last_value.cpp... passed!
-Testing missing_ctor_dllexport.cpp... passed!
-Testing ipc.cpp... passed!
-Testing blacklisted_dirs.cpp... passed!
-Testing virtual_bodies.cpp... passed!
-Testing virtual_specifiers.cpp... passed!
-Testing missing_ctor.cpp... passed!
-Testing weak_ptr_factory.cpp... passed!
-Testing missing_ctor_ignored_base.cpp... passed!
-Testing base_refcounted.cpp... passed!
-Testing inline_copy_ctor.cpp... passed!
-Ran 16 tests: 16 succeeded, 0 failed
-[2/3] cd /b/build/slave/linux_upload_clang/build/src/tools/clang/blink_gc_plugin && python tests/test.py /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/libBlinkGCPlugin.so
-Using clang /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang...
-Using plugin /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/libBlinkGCPlugin.so...
-Testing class_requires_finalization_base.cpp... passed!
-Testing trace_after_dispatch_impl_error.cpp... passed!
-Testing traceimpl_overloaded_error.cpp... passed!
-Testing raw_ptr_to_gc_managed_class.cpp... passed!
-Testing templated_class_with_local_class_requires_trace.cpp... passed!
-Testing non_virtual_trace.cpp... passed!
-Testing ref_ptr_to_gc_managed_class.cpp... passed!
-Testing trace_if_needed.cpp... passed!
-Testing class_multiple_trace_bases.cpp... passed!
-Testing destructor_eagerly_finalized.cpp... passed!
-Testing stack_allocated.cpp... passed!
-Testing traceimpl_error.cpp... passed!
+Ran 15 tests: 15 succeeded, 0 failed
+Using clang /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang...
+Using plugin /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/lib/libBlinkGCPlugin.so...
 Testing inner_class.cpp... passed!
-Testing trace_after_dispatch_impl.cpp... passed!
-Testing weak_fields_require_tracing.cpp... passed!
-Testing class_requires_finalization_field.cpp... passed!
-Testing class_does_not_require_finalization.cpp... passed!
-Testing fields_require_tracing.cpp... passed!
-Testing base_requires_tracing.cpp... passed!
-Testing class_overrides_new.cpp... passed!
-Testing traceimpl_overloaded.cpp... passed!
-Testing part_object_to_gc_derived_class.cpp... passed!
-Testing traceimpl.cpp... passed!
-Testing trace_templated_super.cpp... passed!
-Testing ignore_fields.cpp... passed!
 Testing class_requires_trace_method_tmpl.cpp... passed!
-Testing finalize_after_dispatch.cpp... passed!
+Testing traceimpl_derived_from_templated_base.cpp... passed!
+Testing own_ptr_to_gc_managed_class.cpp... passed!
+Testing trace_collections.cpp... passed!
+Testing class_does_not_require_finalization.cpp... passed!
+Testing crash_on_invalid.cpp... passed!
+Testing class_multiple_trace_bases.cpp... passed!
+Testing traceimpl.cpp... passed!
 Testing register_weak_members_template.cpp... passed!
-Testing cycle_sub.cpp... passed!
+Testing class_overrides_new.cpp... passed!
 Testing class_requires_trace_method.cpp... passed!
+Testing traceimpl_omitted_trace.cpp... passed!
+Testing part_object_to_gc_derived_class.cpp... passed!
+Testing member_in_offheap_class.cpp... passed!
+Testing raw_ptr_to_gc_managed_class.cpp... passed!
+Testing virtual_and_trace_after_dispatch.cpp... passed!
+Testing class_requires_finalization_field.cpp... passed!
 Testing ignore_class.cpp... passed!
+Testing class_requires_finalization_base.cpp... passed!
+Testing cycle_super_neg.cpp... passed!
+Testing non_virtual_trace.cpp... passed!
+Testing base_requires_tracing.cpp... passed!
+Testing traceimpl_overloaded.cpp... passed!
+Testing templated_class_with_local_class_requires_trace.cpp... passed!
+Testing destructor_eagerly_finalized.cpp... passed!
+Testing traceimpl_error.cpp... passed!
+Testing trace_after_dispatch_impl_error.cpp... passed!
+Testing base_class_must_define_virtual_trace.cpp... passed!
+Testing destructor_access_finalized_field.cpp... passed!
+Testing trace_templated_super.cpp... passed!
+Testing trace_after_dispatch_impl.cpp... passed!
+Testing traceimpl_dependent_scope.cpp... passed!
+Testing pure_virtual_trace.cpp... passed!
 Testing persistent_field_in_gc_managed_class.cpp... passed!
 Testing left_most_gc_base.cpp... passed!
-Testing destructor_access_finalized_field.cpp... passed!
-Testing trace_collections.cpp... passed!
-Testing base_class_must_define_virtual_trace.cpp... passed!
-Testing pure_virtual_trace.cpp... passed!
-Testing traceimpl_omitted_trace.cpp... passed!
-Testing traceimpl_dependent_scope.cpp... passed!
-Testing cycle_ptrs.cpp... passed!
-Testing raw_ptr_to_gc_managed_class_error.cpp... passed!
-Testing destructor_in_nonfinalized_class.cpp... passed!
+Testing weak_fields_require_tracing.cpp... passed!
+Testing ref_ptr_to_gc_managed_class.cpp... passed!
 Testing class_requires_finalization_mixin.cpp... passed!
-Testing trace_after_dispatch.cpp... passed!
+Testing stack_allocated.cpp... passed!
+Testing finalize_after_dispatch.cpp... passed!
+Testing fields_require_tracing.cpp... passed!
+Testing destructor_in_nonfinalized_class.cpp... passed!
+Testing raw_ptr_to_gc_managed_class_error.cpp... passed!
+Testing ignore_fields.cpp... passed!
 Testing polymorphic_class_with_non_virtual_trace.cpp... passed!
-Testing traceimpl_derived_from_templated_base.cpp... passed!
-Testing virtual_and_trace_after_dispatch.cpp... passed!
-Testing cycle_super.cpp... passed!
-Testing own_ptr_to_gc_managed_class.cpp... passed!
-Testing crash_on_invalid.cpp... passed!
-Testing delayed_parsing.cpp... passed!
-Testing cycle_super_neg.cpp... passed!
-Testing member_in_offheap_class.cpp... passed!
+Testing traceimpl_overloaded_error.cpp... passed!
 Testing garbage_collected_mixin.cpp... passed!
+Testing delayed_parsing.cpp... passed!
+Testing cycle_sub.cpp... passed!
+Testing cycle_super.cpp... passed!
+Testing cycle_ptrs.cpp... passed!
+Testing trace_if_needed.cpp... passed!
+Testing trace_after_dispatch.cpp... passed!
 Ran 54 tests: 54 succeeded, 0 failed
-[3/3] cd /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a && /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build-tools/cmake322/bin/ctest -V
-UpdateCTestConfiguration  from :/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a/DartConfiguration.tcl
-UpdateCTestConfiguration  from :/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a/DartConfiguration.tcl
-Test project /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a
+[3/3] cd /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a && /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build-tools/cmake322/bin/ctest -V
+UpdateCTestConfiguration  from :/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a/DartConfiguration.tcl
+UpdateCTestConfiguration  from :/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a/DartConfiguration.tcl
+Test project /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/tools/chrometools/a
 Constructing a list of tests
 Done constructing a list of tests
 Checking test dependency graph...
 Checking test dependency graph end
 No tests were found!!!
 Running ninja check-all
-[1/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/DiagnosticTest.cpp.o
-[2/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/CleanupTest.cpp.o
-[3/264] Building CXX object unittests/ObjectYAML/CMakeFiles/ObjectYAMLTests.dir/YAMLTest.cpp.o
-[4/264] Building CXX object tools/clang/unittests/Driver/CMakeFiles/ClangDriverTests.dir/ToolChainTest.cpp.o
-[5/264] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/HeaderMapTest.cpp.o
-[6/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/FileManagerTest.cpp.o
-[7/264] Building CXX object tools/clang/unittests/Driver/CMakeFiles/ClangDriverTests.dir/MultilibTest.cpp.o
-[8/264] Linking CXX executable tools/clang/unittests/Driver/ClangDriverTests
-[9/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTVectorTest.cpp.o
-[10/264] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/PPConditionalDirectiveRecordTest.cpp.o
-[11/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/CharInfoTest.cpp.o
-[12/264] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/LexerTest.cpp.o
-[13/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/SourceManagerTest.cpp.o
-[14/264] Building CXX object tools/clang/unittests/StaticAnalyzer/CMakeFiles/StaticAnalysisTests.dir/AnalyzerOptionsTest.cpp.o
-[15/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ExternalASTSourceTest.cpp.o
-[16/264] Linking CXX executable tools/clang/unittests/StaticAnalyzer/StaticAnalysisTests
-[17/264] Building CXX object tools/clang/unittests/Frontend/CMakeFiles/FrontendTests.dir/CodeGenActionTest.cpp.o
-[18/264] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/VirtualFileSystemTest.cpp.o
-[19/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/CommentParser.cpp.o
-[20/264] Linking CXX executable tools/clang/unittests/Basic/BasicTests
-[21/264] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/PPCallbacksTest.cpp.o
-[22/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RewriterTest.cpp.o
-[23/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestJava.cpp.o
-[24/264] Linking CXX executable tools/clang/unittests/Lex/LexTests
-[25/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestSelective.cpp.o
-[26/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ToolingTest.cpp.o
-[27/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestProto.cpp.o
-[28/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CompilationDatabaseTest.cpp.o
-[29/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ReplacementsYamlTest.cpp.o
-[30/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/SortIncludesTest.cpp.o
-[31/264] Building CXX object tools/clang/unittests/Rewrite/CMakeFiles/RewriteTests.dir/RewriteBufferTest.cpp.o
-[32/264] Linking CXX executable unittests/ObjectYAML/ObjectYAMLTests
-[33/264] Linking CXX executable tools/clang/unittests/Rewrite/RewriteTests
-[34/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclTest.cpp.o
-[35/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/CommentLexer.cpp.o
-[36/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestJS.cpp.o
-[37/264] Building CXX object tools/clang/unittests/libclang/CMakeFiles/libclangTests.dir/LibclangTest.cpp.o
-[38/264] Linking CXX executable tools/clang/unittests/libclang/libclangTests
-[39/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/NamedDeclPrinterTest.cpp.o
-[40/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/StmtPrinterTest.cpp.o
-[41/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTContextParentMapTest.cpp.o
-[42/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/AttributesTest.cpp.o
-[43/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/AsmWriterTest.cpp.o
-[44/264] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/VariantValueTest.cpp.o
-[45/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DAGDeltaAlgorithmTest.cpp.o
-[46/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTTypeTraitsTest.cpp.o
-[47/264] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/ParserTest.cpp.o
-[48/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APSIntTest.cpp.o
-[49/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntrusiveRefCntPtrTest.cpp.o
-[50/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ArrayRefTest.cpp.o
-[51/264] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/RegistryTest.cpp.o
-[52/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/FunctionRefTest.cpp.o
-[53/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/FoldingSet.cpp.o
-[54/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DeltaAlgorithmTest.cpp.o
-[55/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DenseSetTest.cpp.o
-[56/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/CompileOnDemandLayerTest.cpp.o
-[57/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclPrinterTest.cpp.o
-[58/264] Linking CXX executable tools/clang/unittests/ASTMatchers/Dynamic/DynamicASTMatchersTests
-[59/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ilistTest.cpp.o
-[60/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterTest.cpp.o
-[61/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ImmutableMapTest.cpp.o
-[62/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/EvaluateAsRValueTest.cpp.o
-[63/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntEqClassesTest.cpp.o
-[64/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerEmbeddedIntTest.cpp.o
-[65/264] Building CXX object tools/clang/unittests/Sema/CMakeFiles/SemaTests.dir/ExternalSemaSourceTest.cpp.o
-[66/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RefactoringCallbacksTest.cpp.o
-[67/264] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/SourceLocationTest.cpp.o
-[68/264] Building CXX object tools/clang/unittests/CodeGen/CMakeFiles/ClangCodeGenTests.dir/BufferSourceTest.cpp.o
-[69/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/HashingTest.cpp.o
-[70/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PackedVectorTest.cpp.o
-[71/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o
-[72/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/OptionalTest.cpp.o
-[73/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ImmutableSetTest.cpp.o
-[74/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerIntPairTest.cpp.o
-[75/264] Linking CXX executable tools/clang/unittests/Sema/SemaTests
-[76/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CommentHandlerTest.cpp.o
-[77/264] Building CXX object tools/clang/unittests/Frontend/CMakeFiles/FrontendTests.dir/FrontendActionTest.cpp.o
-[78/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APIntTest.cpp.o
-[79/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PostOrderIteratorTest.cpp.o
-[80/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerSumTypeTest.cpp.o
-[81/264] Linking CXX executable tools/clang/unittests/AST/ASTTests
-[82/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/RangeAdapterTest.cpp.o
-[83/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerUnionTest.cpp.o
-[84/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/VariadicFunctionTest.cpp.o
-[85/264] Linking CXX executable tools/clang/unittests/CodeGen/ClangCodeGenTests
-[86/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SCCIteratorTest.cpp.o
-[87/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/BitVectorTest.cpp.o
-[88/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/MapVectorTest.cpp.o
-[89/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SetVectorTest.cpp.o
-[90/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/LookupTest.cpp.o
-[91/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseBitVectorTest.cpp.o
-[92/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallPtrSetTest.cpp.o
-[93/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseSetTest.cpp.o
-[94/264] Linking CXX executable tools/clang/unittests/Frontend/FrontendTests
-[95/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseMultiSetTest.cpp.o
-[96/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallStringTest.cpp.o
-[97/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TwineTest.cpp.o
-[98/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestTypeLocVisitor.cpp.o
-[99/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APFloatTest.cpp.o
-[100/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/MixedTBAATest.cpp.o
-[101/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/QualTypeNamesTest.cpp.o
-[102/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/ValueTrackingTest.cpp.o
-[103/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/StringMapTest.cpp.o
-[104/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CallGraphTest.cpp.o
-[105/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CFGTest.cpp.o
-[106/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TinyPtrVectorTest.cpp.o
-[107/264] Building CXX object unittests/AsmParser/CMakeFiles/AsmParserTests.dir/AsmParserTest.cpp.o
-[108/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntervalMapTest.cpp.o
-[109/264] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitstreamWriterTest.cpp.o
-[110/264] Linking CXX executable unittests/AsmParser/AsmParserTests
-[111/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/UnrollAnalyzer.cpp.o
-[112/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/StringRefTest.cpp.o
-[113/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/ScalarEvolutionTest.cpp.o
-[114/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/AliasAnalysisTest.cpp.o
-[115/264] Building CXX object unittests/DebugInfo/DWARF/CMakeFiles/DebugInfoDWARFTests.dir/DWARFFormValueTest.cpp.o
-[116/264] Building CXX object unittests/DebugInfo/PDB/CMakeFiles/DebugInfoPDBTests.dir/PDBApiTest.cpp.o
-[117/264] Linking CXX executable unittests/DebugInfo/PDB/DebugInfoPDBTests
-[118/264] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/DIEHashTest.cpp.o
-[119/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/BlockFrequencyInfoTest.cpp.o
-[120/264] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitstreamReaderTest.cpp.o
-[121/264] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
-[122/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DenseMapTest.cpp.o
-[123/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/GlobalMappingLayerTest.cpp.o
-[124/264] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitReaderTest.cpp.o
-[125/264] Linking CXX executable unittests/CodeGen/CodeGenTests
-[126/264] Linking CXX executable unittests/Bitcode/BitcodeTests
-[127/264] Building CXX object unittests/ExecutionEngine/CMakeFiles/ExecutionEngineTests.dir/ExecutionEngineTest.cpp.o
-[128/264] Linking CXX executable unittests/ExecutionEngine/ExecutionEngineTests
-[129/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/LazyEmittingLayerTest.cpp.o
-[130/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/OrcTestCommon.cpp.o
-[131/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CGSCCPassManagerTest.cpp.o
-[132/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/IndirectionUtilsTest.cpp.o
-[133/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITMemoryManagerTest.cpp.o
-[134/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITCAPITest.cpp.o
-[135/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/OrcCAPITest.cpp.o
-[136/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/LoopPassManagerTest.cpp.o
-[137/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestCallVisitor.cpp.o
-[138/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/FunctionTest.cpp.o
-[139/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DebugTypeODRUniquingTest.cpp.o
-[140/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DebugInfoTest.cpp.o
-[141/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/IntrinsicsTest.cpp.o
-[142/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITTest.cpp.o
-[143/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/RPCUtilsTest.cpp.o
-[144/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TripleTest.cpp.o
-[145/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITObjectCacheTest.cpp.o
-[146/264] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITMultipleModuleTest.cpp.o
-[147/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/TypesTest.cpp.o
-[148/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/ObjectLinkingLayerTest.cpp.o
-[149/264] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/ObjectTransformLayerTest.cpp.o
-[150/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DominatorTreeTest.cpp.o
-[151/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ConstantsTest.cpp.o
-[152/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/MDBuilderTest.cpp.o
-[153/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/TypeBuilderTest.cpp.o
-[154/264] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
-[155/264] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/LazyCallGraphTest.cpp.o
-[156/264] Linking CXX executable unittests/ExecutionEngine/Orc/OrcJITTests
-[157/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/UserTest.cpp.o
-[158/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/LegacyPassManagerTest.cpp.o
-[159/264] Building Opts.inc...
-[160/264] Updating Opts.inc...
-[161/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/UseTest.cpp.o
-[162/264] Building CXX object unittests/LineEditor/CMakeFiles/LineEditorTests.dir/LineEditor.cpp.o
-[163/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/IRBuilderTest.cpp.o
-[164/264] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/Disassembler.cpp.o
-[165/264] Linking CXX executable unittests/LineEditor/LineEditorTests
-[166/264] Linking CXX executable unittests/Analysis/AnalysisTests
-[167/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/InstructionsTest.cpp.o
-[168/264] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/TargetRegistry.cpp.o
-[169/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/WaymarkTest.cpp.o
-[170/264] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorTest.cpp.o
-[171/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueTest.cpp.o
-[172/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/PatternMatch.cpp.o
-[173/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ConstantRangeTest.cpp.o
-[174/264] Linking CXX executable unittests/ADT/ADTTests
-[175/264] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTest.cpp.o
-[176/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueHandleTest.cpp.o
-[177/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/PassManagerTest.cpp.o
-[178/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/VerifierTest.cpp.o
-[179/264] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/StringTableBuilderTest.cpp.o
-[180/264] Linking CXX executable tools/clang/unittests/Format/FormatTests
-[181/264] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/DwarfLineTables.cpp.o
-[182/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/DwarfTest.cpp.o
-[183/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/FileOutputBufferTest.cpp.o
-[184/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/DataExtractorTest.cpp.o
-[185/264] Linking CXX executable unittests/MC/MCTests
-[186/264] Building CXX object unittests/Linker/CMakeFiles/LinkerTests.dir/LinkModulesTest.cpp.o
-[187/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/BlockFrequencyTest.cpp.o
-[188/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/CompressionTest.cpp.o
-[189/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ArrayRecyclerTest.cpp.o
-[190/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/AllocatorTest.cpp.o
-[191/264] Linking CXX executable unittests/Linker/LinkerTests
-[192/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Casting.cpp.o
-[193/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/EndianStreamTest.cpp.o
-[194/264] Building CXX object unittests/Option/CMakeFiles/OptionTests.dir/OptionParsingTest.cpp.o
-[195/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RefactoringTest.cpp.o
-[196/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ManagedStatic.cpp.o
-[197/264] Linking CXX executable unittests/Option/OptionTests
-[198/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/EndianTest.cpp.o
-[199/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ErrorOrTest.cpp.o
-[200/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/CommandLineTest.cpp.o
-[201/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MD5Test.cpp.o
-[202/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/BranchProbabilityTest.cpp.o
-[203/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/IteratorTest.cpp.o
-[204/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LineIteratorTest.cpp.o
-[205/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LockFileManagerTest.cpp.o
-[206/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestDeclVisitor.cpp.o
-[207/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ReplaceFileTest.cpp.o
-[208/264] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/SampleProfTest.cpp.o
-[209/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/AlignOfTest.cpp.o
-[210/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ProcessTest.cpp.o
-[211/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ConvertUTFTest.cpp.o
-[212/264] Building CXX object unittests/MI/CMakeFiles/MITests.dir/LiveIntervalTest.cpp.o
-[213/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MemoryBufferTest.cpp.o
-[214/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TimeValueTest.cpp.o
-[215/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ThreadLocalTest.cpp.o
-[216/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TargetParserTest.cpp.o
-[217/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/StreamingMemoryObjectTest.cpp.o
-[218/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/StringPool.cpp.o
-[219/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/RegexTest.cpp.o
-[220/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TimerTest.cpp.o
-[221/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SwapByteOrderTest.cpp.o
-[222/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ProgramTest.cpp.o
-[223/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ErrorTest.cpp.o
-[224/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SpecialCaseListTest.cpp.o
-[225/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SourceMgrTest.cpp.o
-[226/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TypeNameTest.cpp.o
-[227/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LEB128Test.cpp.o
-[228/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MemoryTest.cpp.o
-[229/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/UnicodeTest.cpp.o
-[230/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ThreadPool.cpp.o
-[231/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/formatted_raw_ostream_test.cpp.o
-[232/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TrailingObjectsTest.cpp.o
-[233/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/YAMLParserTest.cpp.o
-[234/264] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/CoverageMappingTest.cpp.o
-[235/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MathExtrasTest.cpp.o
-[236/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueMapTest.cpp.o
-[237/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_pwrite_stream_test.cpp.o
-[238/264] Linking CXX executable unittests/MI/MITests
-[239/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_sha1_ostream_test.cpp.o
-[240/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/ASanStackFrameLayoutTest.cpp.o
-[241/264] Building CXX object unittests/Transforms/IPO/CMakeFiles/IPOTests.dir/WholeProgramDevirt.cpp.o
-[242/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_ostream_test.cpp.o
-[243/264] Building CXX object unittests/Transforms/IPO/CMakeFiles/IPOTests.dir/LowerBitSets.cpp.o
-[244/264] Linking CXX executable unittests/Transforms/IPO/IPOTests
-[245/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Path.cpp.o
-[246/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/Local.cpp.o
-[247/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/IntegerDivision.cpp.o
-[248/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/MemorySSA.cpp.o
-[249/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/ValueMapperTest.cpp.o
-[250/264] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/InstrProfTest.cpp.o
-[251/264] Linking CXX executable unittests/ProfileData/ProfileDataTests
-[252/264] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/MetadataTest.cpp.o
-[253/264] Linking CXX executable unittests/IR/IRTests
-[254/264] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/Cloning.cpp.o
-[255/264] Linking CXX executable unittests/Transforms/Utils/UtilsTests
-[256/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ScaledNumberTest.cpp.o
-[257/264] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/YAMLIOTest.cpp.o
-[258/264] Linking CXX executable unittests/Support/SupportTests
-[259/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTest.cpp.o
-[260/264] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestExprVisitor.cpp.o
-[261/264] Linking CXX executable tools/clang/unittests/Tooling/ToolingTests
-[262/264] Building CXX object tools/clang/unittests/ASTMatchers/CMakeFiles/ASTMatchersTests.dir/ASTMatchersTest.cpp.o
-[263/264] Linking CXX executable tools/clang/unittests/ASTMatchers/ASTMatchersTests
-[263/264] Running all regression tests
-lit.py: lit.cfg:195: note: using clang: '/b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/./bin/clang'
--- Testing: 26009 tests, 32 threads --
+[1/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTContextParentMapTest.cpp.o
+[2/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/FileManagerTest.cpp.o
+[3/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/SourceManagerTest.cpp.o
+[4/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/CharInfoTest.cpp.o
+[5/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/DiagnosticTest.cpp.o
+[6/259] Building CXX object tools/clang/unittests/Basic/CMakeFiles/BasicTests.dir/VirtualFileSystemTest.cpp.o
+[7/259] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/LexerTest.cpp.o
+[8/259] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/HeaderMapTest.cpp.o
+[9/259] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/PPCallbacksTest.cpp.o
+[10/259] Building CXX object tools/clang/unittests/Lex/CMakeFiles/LexTests.dir/PPConditionalDirectiveRecordTest.cpp.o
+[11/259] Building CXX object tools/clang/unittests/Driver/CMakeFiles/ClangDriverTests.dir/ToolChainTest.cpp.o
+[12/259] Building CXX object tools/clang/unittests/Driver/CMakeFiles/ClangDriverTests.dir/MultilibTest.cpp.o
+[13/259] Building CXX object tools/clang/unittests/StaticAnalyzer/CMakeFiles/StaticAnalysisTests.dir/AnalyzerOptionsTest.cpp.o
+[14/259] Building CXX object tools/clang/unittests/Frontend/CMakeFiles/FrontendTests.dir/CodeGenActionTest.cpp.o
+[15/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTest.cpp.o
+[16/259] Building CXX object tools/clang/unittests/ASTMatchers/CMakeFiles/ASTMatchersTests.dir/ASTMatchersTest.cpp.o
+[17/259] Building CXX object tools/clang/unittests/Frontend/CMakeFiles/FrontendTests.dir/FrontendActionTest.cpp.o
+[18/259] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/ParserTest.cpp.o
+[19/259] Linking CXX executable tools/clang/unittests/Driver/ClangDriverTests
+[20/259] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/VariantValueTest.cpp.o
+[21/259] Linking CXX executable tools/clang/unittests/Basic/BasicTests
+[22/259] Building CXX object tools/clang/unittests/ASTMatchers/Dynamic/CMakeFiles/DynamicASTMatchersTests.dir/RegistryTest.cpp.o
+[23/259] Linking CXX executable tools/clang/unittests/Lex/LexTests
+[24/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTTypeTraitsTest.cpp.o
+[25/259] Linking CXX executable tools/clang/unittests/StaticAnalyzer/StaticAnalysisTests
+[26/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTVectorTest.cpp.o
+[27/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/CommentLexer.cpp.o
+[28/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/CommentParser.cpp.o
+[29/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclPrinterTest.cpp.o
+[30/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclTest.cpp.o
+[31/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/EvaluateAsRValueTest.cpp.o
+[32/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ExternalASTSourceTest.cpp.o
+[33/259] Linking CXX executable tools/clang/unittests/ASTMatchers/Dynamic/DynamicASTMatchersTests
+[34/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/NamedDeclPrinterTest.cpp.o
+[35/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/SourceLocationTest.cpp.o
+[36/259] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/StmtPrinterTest.cpp.o
+[37/259] Linking CXX executable tools/clang/unittests/Frontend/FrontendTests
+[38/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CommentHandlerTest.cpp.o
+[39/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CompilationDatabaseTest.cpp.o
+[40/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/LookupTest.cpp.o
+[41/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ToolingTest.cpp.o
+[42/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTest.cpp.o
+[43/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestCallVisitor.cpp.o
+[44/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestDeclVisitor.cpp.o
+[45/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestExprVisitor.cpp.o
+[46/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RecursiveASTVisitorTestTypeLocVisitor.cpp.o
+[47/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RefactoringTest.cpp.o
+[48/259] Linking CXX executable tools/clang/unittests/AST/ASTTests
+[49/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RewriterTest.cpp.o
+[50/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/RefactoringCallbacksTest.cpp.o
+[51/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ReplacementsYamlTest.cpp.o
+[52/259] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/QualTypeNamesTest.cpp.o
+[53/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestJava.cpp.o
+[54/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/SortIncludesTest.cpp.o
+[55/259] Building CXX object tools/clang/unittests/Rewrite/CMakeFiles/RewriteTests.dir/RewriteBufferTest.cpp.o
+[56/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestSelective.cpp.o
+[57/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestJS.cpp.o
+[58/259] Building CXX object tools/clang/unittests/Format/CMakeFiles/FormatTests.dir/FormatTestProto.cpp.o
+[59/259] Building CXX object tools/clang/unittests/libclang/CMakeFiles/libclangTests.dir/LibclangTest.cpp.o
+[60/259] Building CXX object tools/clang/unittests/Sema/CMakeFiles/SemaTests.dir/ExternalSemaSourceTest.cpp.o
+[61/259] Linking CXX executable tools/clang/unittests/Format/FormatTests
+[62/259] Building CXX object tools/clang/unittests/CodeGen/CMakeFiles/ClangCodeGenTests.dir/BufferSourceTest.cpp.o
+[63/259] Linking CXX executable tools/clang/unittests/Rewrite/RewriteTests
+[64/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/AsmWriterTest.cpp.o
+[65/259] Linking CXX executable tools/clang/unittests/libclang/libclangTests
+[66/259] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/DwarfLineTables.cpp.o
+[67/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APFloatTest.cpp.o
+[68/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DAGDeltaAlgorithmTest.cpp.o
+[69/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APIntTest.cpp.o
+[70/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/APSIntTest.cpp.o
+[71/259] Linking CXX executable tools/clang/unittests/Sema/SemaTests
+[72/259] Linking CXX executable tools/clang/unittests/CodeGen/ClangCodeGenTests
+[73/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ArrayRefTest.cpp.o
+[74/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/BitVectorTest.cpp.o
+[75/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntrusiveRefCntPtrTest.cpp.o
+[76/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DeltaAlgorithmTest.cpp.o
+[77/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DenseMapTest.cpp.o
+[78/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/DenseSetTest.cpp.o
+[79/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/FoldingSet.cpp.o
+[80/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/FunctionRefTest.cpp.o
+[81/259] Linking CXX executable tools/clang/unittests/ASTMatchers/ASTMatchersTests
+[82/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/HashingTest.cpp.o
+[83/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ilistTest.cpp.o
+[84/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ImmutableMapTest.cpp.o
+[85/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/ImmutableSetTest.cpp.o
+[86/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntEqClassesTest.cpp.o
+[87/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/IntervalMapTest.cpp.o
+[88/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerEmbeddedIntTest.cpp.o
+[89/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/MakeUniqueTest.cpp.o
+[90/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/MapVectorTest.cpp.o
+[91/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/OptionalTest.cpp.o
+[92/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PackedVectorTest.cpp.o
+[93/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PostOrderIteratorTest.cpp.o
+[94/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerIntPairTest.cpp.o
+[95/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerSumTypeTest.cpp.o
+[96/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/PointerUnionTest.cpp.o
+[97/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/VariadicFunctionTest.cpp.o
+[98/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/RangeAdapterTest.cpp.o
+[99/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SCCIteratorTest.cpp.o
+[100/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SetVectorTest.cpp.o
+[101/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallPtrSetTest.cpp.o
+[102/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallStringTest.cpp.o
+[103/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SmallVectorTest.cpp.o
+[104/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseBitVectorTest.cpp.o
+[105/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseMultiSetTest.cpp.o
+[106/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/SparseSetTest.cpp.o
+[107/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/StringMapTest.cpp.o
+[108/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/StringRefTest.cpp.o
+[109/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TinyPtrVectorTest.cpp.o
+[110/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TripleTest.cpp.o
+[111/259] Building CXX object unittests/ADT/CMakeFiles/ADTTests.dir/TwineTest.cpp.o
+[112/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CallGraphTest.cpp.o
+[113/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/AliasAnalysisTest.cpp.o
+[114/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CGSCCPassManagerTest.cpp.o
+[115/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/BlockFrequencyInfoTest.cpp.o
+[116/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/CFGTest.cpp.o
+[117/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/LazyCallGraphTest.cpp.o
+[118/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/LoopPassManagerTest.cpp.o
+[119/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/ScalarEvolutionTest.cpp.o
+[120/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/MixedTBAATest.cpp.o
+[121/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/ValueTrackingTest.cpp.o
+[122/259] Building CXX object unittests/Analysis/CMakeFiles/AnalysisTests.dir/UnrollAnalyzer.cpp.o
+[123/259] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitReaderTest.cpp.o
+[124/259] Building CXX object unittests/AsmParser/CMakeFiles/AsmParserTests.dir/AsmParserTest.cpp.o
+[125/259] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitstreamReaderTest.cpp.o
+[126/259] Linking CXX executable tools/clang/unittests/Tooling/ToolingTests
+[127/259] Building CXX object unittests/Bitcode/CMakeFiles/BitcodeTests.dir/BitstreamWriterTest.cpp.o
+[128/259] Building CXX object unittests/CodeGen/CMakeFiles/CodeGenTests.dir/DIEHashTest.cpp.o
+[129/259] Building CXX object unittests/DebugInfo/DWARF/CMakeFiles/DebugInfoDWARFTests.dir/DWARFFormValueTest.cpp.o
+[130/259] Linking CXX executable unittests/ADT/ADTTests
+[131/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/CompileOnDemandLayerTest.cpp.o
+[132/259] Building CXX object unittests/DebugInfo/PDB/CMakeFiles/DebugInfoPDBTests.dir/PDBApiTest.cpp.o
+[133/259] Building CXX object unittests/ExecutionEngine/CMakeFiles/ExecutionEngineTests.dir/ExecutionEngineTest.cpp.o
+[134/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/IndirectionUtilsTest.cpp.o
+[135/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/GlobalMappingLayerTest.cpp.o
+[136/259] Linking CXX executable unittests/Bitcode/BitcodeTests
+[137/259] Linking CXX executable unittests/AsmParser/AsmParserTests
+[138/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/LazyEmittingLayerTest.cpp.o
+[139/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/ObjectLinkingLayerTest.cpp.o
+[140/259] Linking CXX executable unittests/DebugInfo/DWARF/DebugInfoDWARFTests
+[141/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/OrcCAPITest.cpp.o
+[142/259] Linking CXX executable unittests/CodeGen/CodeGenTests
+[143/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/ObjectTransformLayerTest.cpp.o
+[144/259] Linking CXX executable unittests/DebugInfo/PDB/DebugInfoPDBTests
+[145/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/OrcTestCommon.cpp.o
+[146/259] Building CXX object unittests/ExecutionEngine/Orc/CMakeFiles/OrcJITTests.dir/RPCUtilsTest.cpp.o
+[147/259] Linking CXX executable unittests/Analysis/AnalysisTests
+[148/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITTest.cpp.o
+[149/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITCAPITest.cpp.o
+[150/259] Linking CXX executable unittests/ExecutionEngine/ExecutionEngineTests
+[151/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITMultipleModuleTest.cpp.o
+[152/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITMemoryManagerTest.cpp.o
+[153/259] Building CXX object unittests/ExecutionEngine/MCJIT/CMakeFiles/MCJITTests.dir/MCJITObjectCacheTest.cpp.o
+[154/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/AttributesTest.cpp.o
+[155/259] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/Disassembler.cpp.o
+[156/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ConstantRangeTest.cpp.o
+[157/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ConstantsTest.cpp.o
+[158/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DebugInfoTest.cpp.o
+[159/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/DominatorTreeTest.cpp.o
+[160/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/IRBuilderTest.cpp.o
+[161/259] Linking CXX executable unittests/ExecutionEngine/Orc/OrcJITTests
+[162/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/InstructionsTest.cpp.o
+[163/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/IntrinsicsTest.cpp.o
+[164/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/LegacyPassManagerTest.cpp.o
+[165/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/MDBuilderTest.cpp.o
+[166/259] Linking CXX executable unittests/ExecutionEngine/MCJIT/MCJITTests
+[167/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/MetadataTest.cpp.o
+[168/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/PassManagerTest.cpp.o
+[169/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/PatternMatch.cpp.o
+[170/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/TypeBuilderTest.cpp.o
+[171/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/TypesTest.cpp.o
+[172/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/UseTest.cpp.o
+[173/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/UserTest.cpp.o
+[174/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueHandleTest.cpp.o
+[175/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueMapTest.cpp.o
+[176/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/ValueTest.cpp.o
+[177/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/VerifierTest.cpp.o
+[178/259] Building CXX object unittests/IR/CMakeFiles/IRTests.dir/WaymarkTest.cpp.o
+[179/259] Building CXX object unittests/Linker/CMakeFiles/LinkerTests.dir/LinkModulesTest.cpp.o
+[180/259] Building CXX object unittests/LineEditor/CMakeFiles/LineEditorTests.dir/LineEditor.cpp.o
+[181/259] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/StringTableBuilderTest.cpp.o
+[182/259] Building CXX object unittests/MI/CMakeFiles/MITests.dir/LiveIntervalTest.cpp.o
+[183/259] Building CXX object unittests/MC/CMakeFiles/MCTests.dir/TargetRegistry.cpp.o
+[184/259] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/CoverageMappingTest.cpp.o
+[185/259] Building Opts.inc...
+[186/259] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/InstrProfTest.cpp.o
+[187/259] Updating Opts.inc...
+[188/259] Building CXX object unittests/Option/CMakeFiles/OptionTests.dir/OptionParsingTest.cpp.o
+[189/259] Linking CXX executable unittests/MI/MITests
+[190/259] Building CXX object unittests/ObjectYAML/CMakeFiles/ObjectYAMLTests.dir/YAMLTest.cpp.o
+[191/259] Building CXX object unittests/ProfileData/CMakeFiles/ProfileDataTests.dir/SampleProfTest.cpp.o
+[192/259] Linking CXX executable unittests/LineEditor/LineEditorTests
+[193/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/AlignOfTest.cpp.o
+[194/259] Linking CXX executable unittests/MC/MCTests
+[195/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/AllocatorTest.cpp.o
+[196/259] Linking CXX executable unittests/Linker/LinkerTests
+[197/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/CommandLineTest.cpp.o
+[198/259] Linking CXX executable unittests/Option/OptionTests
+[199/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ArrayRecyclerTest.cpp.o
+[200/259] Linking CXX executable unittests/ObjectYAML/ObjectYAMLTests
+[201/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/BlockFrequencyTest.cpp.o
+[202/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/BranchProbabilityTest.cpp.o
+[203/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Casting.cpp.o
+[204/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/EndianStreamTest.cpp.o
+[205/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/CompressionTest.cpp.o
+[206/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ConvertUTFTest.cpp.o
+[207/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LineIteratorTest.cpp.o
+[208/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/DataExtractorTest.cpp.o
+[209/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ManagedStatic.cpp.o
+[210/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/DwarfTest.cpp.o
+[211/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/FileOutputBufferTest.cpp.o
+[212/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/EndianTest.cpp.o
+[213/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ErrorTest.cpp.o
+[214/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ErrorOrTest.cpp.o
+[215/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/IteratorTest.cpp.o
+[216/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SwapByteOrderTest.cpp.o
+[217/259] Linking CXX executable unittests/IR/IRTests
+[218/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LEB128Test.cpp.o
+[219/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/LockFileManagerTest.cpp.o
+[220/259] Linking CXX executable unittests/ProfileData/ProfileDataTests
+[221/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MD5Test.cpp.o
+[222/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MathExtrasTest.cpp.o
+[223/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ReplaceFileTest.cpp.o
+[224/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MemoryBufferTest.cpp.o
+[225/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/MemoryTest.cpp.o
+[226/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/Path.cpp.o
+[227/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ProcessTest.cpp.o
+[228/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ProgramTest.cpp.o
+[229/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/RegexTest.cpp.o
+[230/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ScaledNumberTest.cpp.o
+[231/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SourceMgrTest.cpp.o
+[232/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/SpecialCaseListTest.cpp.o
+[233/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/StreamingMemoryObjectTest.cpp.o
+[234/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/StringPool.cpp.o
+[235/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TimeValueTest.cpp.o
+[236/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TargetParserTest.cpp.o
+[237/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ThreadLocalTest.cpp.o
+[238/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/ThreadPool.cpp.o
+[239/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TimerTest.cpp.o
+[240/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/YAMLParserTest.cpp.o
+[241/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TypeNameTest.cpp.o
+[242/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/TrailingObjectsTest.cpp.o
+[243/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/UnicodeTest.cpp.o
+[244/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/YAMLIOTest.cpp.o
+[245/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/formatted_raw_ostream_test.cpp.o
+[246/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_ostream_test.cpp.o
+[247/259] Building CXX object unittests/Support/CMakeFiles/SupportTests.dir/raw_pwrite_stream_test.cpp.o
+[248/259] Building CXX object unittests/Transforms/IPO/CMakeFiles/IPOTests.dir/WholeProgramDevirt.cpp.o
+[249/259] Building CXX object unittests/Transforms/IPO/CMakeFiles/IPOTests.dir/LowerBitSets.cpp.o
+[250/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/ASanStackFrameLayoutTest.cpp.o
+[251/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/Cloning.cpp.o
+[252/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/IntegerDivision.cpp.o
+[253/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/Local.cpp.o
+[254/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/MemorySSA.cpp.o
+[255/259] Building CXX object unittests/Transforms/Utils/CMakeFiles/UtilsTests.dir/ValueMapperTest.cpp.o
+[256/259] Linking CXX executable unittests/Transforms/IPO/IPOTests
+[257/259] Linking CXX executable unittests/Transforms/Utils/UtilsTests
+[258/259] Linking CXX executable unittests/Support/SupportTests
+[259/259] Running all regression tests
+lit.py: lit.cfg:195: note: using clang: '/b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/./bin/clang'
+-- Testing: 25439 tests, 8 threads --
 Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
-Testing Time: 50.22s
-  Expected Passes    : 25704
-  Expected Failures  : 148
-  Unsupported Tests  : 157
+Testing Time: 163.38s
+  Expected Passes    : 25195
+  Expected Failures  : 150
+  Unsupported Tests  : 94
 Clang update was successful.
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_cmath.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_cmath.h
index ae7ff2f..9fe3f71 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_cmath.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_cmath.h
@@ -26,39 +26,54 @@
 #error "This file is for CUDA compilation only."
 #endif
 
-// CUDA lets us use various std math functions on the device side.  This file
-// works in concert with __clang_cuda_math_forward_declares.h to make this work.
-//
-// Specifically, the forward-declares header declares __device__ overloads for
-// these functions in the global namespace, then pulls them into namespace std
-// with 'using' statements.  Then this file implements those functions, after
-// the implementations have been pulled in.
-//
-// It's important that we declare the functions in the global namespace and pull
-// them into namespace std with using statements, as opposed to simply declaring
-// these functions in namespace std, because our device functions need to
-// overload the standard library functions, which may be declared in the global
-// namespace or in std, depending on the degree of conformance of the stdlib
-// implementation.  Declaring in the global namespace and pulling into namespace
-// std covers all of the known knowns.
+// CUDA allows using math functions form std:: on device side.  This
+// file provides __device__ overloads for math functions that map to
+// appropriate math functions provided by CUDA headers or to compiler
+// builtins if CUDA does not provide a suitable function.
 
 #define __DEVICE__ static __device__ __inline__ __attribute__((always_inline))
 
+namespace std {
 __DEVICE__ long long abs(long long __n) { return ::llabs(__n); }
 __DEVICE__ long abs(long __n) { return ::labs(__n); }
+using ::abs;
 __DEVICE__ float abs(float __x) { return ::fabsf(__x); }
 __DEVICE__ double abs(double __x) { return ::fabs(__x); }
 __DEVICE__ float acos(float __x) { return ::acosf(__x); }
+using ::acos;
+using ::acosh;
 __DEVICE__ float asin(float __x) { return ::asinf(__x); }
+using ::asin;
+using ::asinh;
 __DEVICE__ float atan(float __x) { return ::atanf(__x); }
+using ::atan;
 __DEVICE__ float atan2(float __x, float __y) { return ::atan2f(__x, __y); }
+using ::atan2;
+using ::atanh;
+using ::cbrt;
 __DEVICE__ float ceil(float __x) { return ::ceilf(__x); }
+using ::ceil;
+using ::copysign;
 __DEVICE__ float cos(float __x) { return ::cosf(__x); }
+using ::cos;
 __DEVICE__ float cosh(float __x) { return ::coshf(__x); }
+using ::cosh;
+using ::erf;
+using ::erfc;
 __DEVICE__ float exp(float __x) { return ::expf(__x); }
+using ::exp;
+using ::exp2;
+using ::expm1;
 __DEVICE__ float fabs(float __x) { return ::fabsf(__x); }
+using ::fabs;
+using ::fdim;
 __DEVICE__ float floor(float __x) { return ::floorf(__x); }
+using ::floor;
+using ::fma;
+using ::fmax;
+using ::fmin;
 __DEVICE__ float fmod(float __x, float __y) { return ::fmodf(__x, __y); }
+using ::fmod;
 __DEVICE__ int fpclassify(float __x) {
   return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL,
                               FP_ZERO, __x);
@@ -70,8 +85,9 @@
 __DEVICE__ float frexp(float __arg, int *__exp) {
   return ::frexpf(__arg, __exp);
 }
-__DEVICE__ bool isinf(float __x) { return ::__isinff(__x); }
-__DEVICE__ bool isinf(double __x) { return ::__isinf(__x); }
+using ::frexp;
+using ::hypot;
+using ::ilogb;
 __DEVICE__ bool isfinite(float __x) { return ::__finitef(__x); }
 __DEVICE__ bool isfinite(double __x) { return ::__finite(__x); }
 __DEVICE__ bool isgreater(float __x, float __y) {
@@ -86,6 +102,8 @@
 __DEVICE__ bool isgreaterequal(double __x, double __y) {
   return __builtin_isgreaterequal(__x, __y);
 }
+__DEVICE__ bool isinf(float __x) { return ::__isinff(__x); }
+__DEVICE__ bool isinf(double __x) { return ::__isinf(__x); }
 __DEVICE__ bool isless(float __x, float __y) {
   return __builtin_isless(__x, __y);
 }
@@ -114,18 +132,36 @@
 __DEVICE__ bool isunordered(double __x, double __y) {
   return __builtin_isunordered(__x, __y);
 }
+using ::labs;
 __DEVICE__ float ldexp(float __arg, int __exp) {
   return ::ldexpf(__arg, __exp);
 }
+using ::ldexp;
+using ::lgamma;
+using ::llabs;
+using ::llrint;
 __DEVICE__ float log(float __x) { return ::logf(__x); }
+using ::log;
 __DEVICE__ float log10(float __x) { return ::log10f(__x); }
+using ::log10;
+using ::log1p;
+using ::log2;
+using ::logb;
+using ::lrint;
+using ::lround;
 __DEVICE__ float modf(float __x, float *__iptr) { return ::modff(__x, __iptr); }
+using ::modf;
+using ::nan;
+using ::nanf;
+using ::nearbyint;
+using ::nextafter;
 __DEVICE__ float nexttoward(float __from, float __to) {
   return __builtin_nexttowardf(__from, __to);
 }
 __DEVICE__ double nexttoward(double __from, double __to) {
   return __builtin_nexttoward(__from, __to);
 }
+using ::pow;
 __DEVICE__ float pow(float __base, float __exp) {
   return ::powf(__base, __exp);
 }
@@ -135,13 +171,28 @@
 __DEVICE__ double pow(double __base, int __iexp) {
   return ::powi(__base, __iexp);
 }
+using ::remainder;
+using ::remquo;
+using ::rint;
+using ::round;
+using ::scalbln;
+using ::scalbn;
 __DEVICE__ bool signbit(float __x) { return ::__signbitf(__x); }
 __DEVICE__ bool signbit(double __x) { return ::__signbit(__x); }
 __DEVICE__ float sin(float __x) { return ::sinf(__x); }
+using ::sin;
 __DEVICE__ float sinh(float __x) { return ::sinhf(__x); }
+using ::sinh;
 __DEVICE__ float sqrt(float __x) { return ::sqrtf(__x); }
+using ::sqrt;
 __DEVICE__ float tan(float __x) { return ::tanf(__x); }
+using ::tan;
 __DEVICE__ float tanh(float __x) { return ::tanhf(__x); }
+using ::tanh;
+using ::tgamma;
+using ::trunc;
+
+} // namespace std
 
 #undef __DEVICE__
 
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h
deleted file mode 100644
index 3f2834d..0000000
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/*===- __clang_math_forward_declares.h - Prototypes of __device__ math fns --===
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *===-----------------------------------------------------------------------===
- */
-#ifndef __CLANG__CUDA_MATH_FORWARD_DECLARES_H__
-#define __CLANG__CUDA_MATH_FORWARD_DECLARES_H__
-#ifndef __CUDA__
-#error "This file is for CUDA compilation only."
-#endif
-
-// This file forward-declares of some math functions we (or the CUDA headers)
-// will define later.  We need to do this, and do it before cmath is included,
-// because the standard library may have constexpr math functions.  In the
-// absence of a prior __device__ decl, those constexpr functions may become
-// implicitly host+device.  host+device functions can't be overloaded, so that
-// would preclude the use of our own __device__ overloads for these functions.
-
-#pragma push_macro("__DEVICE__")
-#define __DEVICE__                                                             \
-  static __inline__ __attribute__((always_inline)) __attribute__((device))
-
-__DEVICE__ double abs(double);
-__DEVICE__ float abs(float);
-__DEVICE__ int abs(int);
-__DEVICE__ long abs(long);
-__DEVICE__ long long abs(long long);
-__DEVICE__ double acos(double);
-__DEVICE__ float acos(float);
-__DEVICE__ double acosh(double);
-__DEVICE__ float acosh(float);
-__DEVICE__ double asin(double);
-__DEVICE__ float asin(float);
-__DEVICE__ double asinh(double);
-__DEVICE__ float asinh(float);
-__DEVICE__ double atan2(double, double);
-__DEVICE__ float atan2(float, float);
-__DEVICE__ double atan(double);
-__DEVICE__ float atan(float);
-__DEVICE__ double atanh(double);
-__DEVICE__ float atanh(float);
-__DEVICE__ double cbrt(double);
-__DEVICE__ float cbrt(float);
-__DEVICE__ double ceil(double);
-__DEVICE__ float ceil(float);
-__DEVICE__ double copysign(double, double);
-__DEVICE__ float copysign(float, float);
-__DEVICE__ double cos(double);
-__DEVICE__ float cos(float);
-__DEVICE__ double cosh(double);
-__DEVICE__ float cosh(float);
-__DEVICE__ double erfc(double);
-__DEVICE__ float erfc(float);
-__DEVICE__ double erf(double);
-__DEVICE__ float erf(float);
-__DEVICE__ double exp2(double);
-__DEVICE__ float exp2(float);
-__DEVICE__ double exp(double);
-__DEVICE__ float exp(float);
-__DEVICE__ double expm1(double);
-__DEVICE__ float expm1(float);
-__DEVICE__ double fabs(double);
-__DEVICE__ float fabs(float);
-__DEVICE__ double fdim(double, double);
-__DEVICE__ float fdim(float, float);
-__DEVICE__ double floor(double);
-__DEVICE__ float floor(float);
-__DEVICE__ double fma(double, double, double);
-__DEVICE__ float fma(float, float, float);
-__DEVICE__ double fmax(double, double);
-__DEVICE__ float fmax(float, float);
-__DEVICE__ double fmin(double, double);
-__DEVICE__ float fmin(float, float);
-__DEVICE__ double fmod(double, double);
-__DEVICE__ float fmod(float, float);
-__DEVICE__ int fpclassify(double);
-__DEVICE__ int fpclassify(float);
-__DEVICE__ double frexp(double, int *);
-__DEVICE__ float frexp(float, int *);
-__DEVICE__ double hypot(double, double);
-__DEVICE__ float hypot(float, float);
-__DEVICE__ int ilogb(double);
-__DEVICE__ int ilogb(float);
-__DEVICE__ bool isfinite(double);
-__DEVICE__ bool isfinite(float);
-__DEVICE__ bool isgreater(double, double);
-__DEVICE__ bool isgreaterequal(double, double);
-__DEVICE__ bool isgreaterequal(float, float);
-__DEVICE__ bool isgreater(float, float);
-__DEVICE__ bool isinf(double);
-__DEVICE__ bool isinf(float);
-__DEVICE__ bool isless(double, double);
-__DEVICE__ bool islessequal(double, double);
-__DEVICE__ bool islessequal(float, float);
-__DEVICE__ bool isless(float, float);
-__DEVICE__ bool islessgreater(double, double);
-__DEVICE__ bool islessgreater(float, float);
-__DEVICE__ bool isnan(double);
-__DEVICE__ bool isnan(float);
-__DEVICE__ bool isnormal(double);
-__DEVICE__ bool isnormal(float);
-__DEVICE__ bool isunordered(double, double);
-__DEVICE__ bool isunordered(float, float);
-__DEVICE__ long labs(long);
-__DEVICE__ double ldexp(double, int);
-__DEVICE__ float ldexp(float, int);
-__DEVICE__ double lgamma(double);
-__DEVICE__ float lgamma(float);
-__DEVICE__ long long llabs(long long);
-__DEVICE__ long long llrint(double);
-__DEVICE__ long long llrint(float);
-__DEVICE__ double log10(double);
-__DEVICE__ float log10(float);
-__DEVICE__ double log1p(double);
-__DEVICE__ float log1p(float);
-__DEVICE__ double log2(double);
-__DEVICE__ float log2(float);
-__DEVICE__ double logb(double);
-__DEVICE__ float logb(float);
-__DEVICE__ double log(double);
-__DEVICE__ float log(float);
-__DEVICE__ long lrint(double);
-__DEVICE__ long lrint(float);
-__DEVICE__ long lround(double);
-__DEVICE__ long lround(float);
-__DEVICE__ double modf(double, double *);
-__DEVICE__ float modf(float, float *);
-__DEVICE__ double nan(const char *);
-__DEVICE__ float nanf(const char *);
-__DEVICE__ double nearbyint(double);
-__DEVICE__ float nearbyint(float);
-__DEVICE__ double nextafter(double, double);
-__DEVICE__ float nextafter(float, float);
-__DEVICE__ double nexttoward(double, double);
-__DEVICE__ float nexttoward(float, float);
-__DEVICE__ double pow(double, double);
-__DEVICE__ double pow(double, int);
-__DEVICE__ float pow(float, float);
-__DEVICE__ float pow(float, int);
-__DEVICE__ double remainder(double, double);
-__DEVICE__ float remainder(float, float);
-__DEVICE__ double remquo(double, double, int *);
-__DEVICE__ float remquo(float, float, int *);
-__DEVICE__ double rint(double);
-__DEVICE__ float rint(float);
-__DEVICE__ double round(double);
-__DEVICE__ float round(float);
-__DEVICE__ double scalbln(double, long);
-__DEVICE__ float scalbln(float, long);
-__DEVICE__ double scalbn(double, int);
-__DEVICE__ float scalbn(float, int);
-__DEVICE__ bool signbit(double);
-__DEVICE__ bool signbit(float);
-__DEVICE__ double sin(double);
-__DEVICE__ float sin(float);
-__DEVICE__ double sinh(double);
-__DEVICE__ float sinh(float);
-__DEVICE__ double sqrt(double);
-__DEVICE__ float sqrt(float);
-__DEVICE__ double tan(double);
-__DEVICE__ float tan(float);
-__DEVICE__ double tanh(double);
-__DEVICE__ float tanh(float);
-__DEVICE__ double tgamma(double);
-__DEVICE__ float tgamma(float);
-__DEVICE__ double trunc(double);
-__DEVICE__ float trunc(float);
-
-namespace std {
-using ::abs;
-using ::acos;
-using ::acosh;
-using ::asin;
-using ::asinh;
-using ::atan;
-using ::atan2;
-using ::atanh;
-using ::cbrt;
-using ::ceil;
-using ::copysign;
-using ::cos;
-using ::cosh;
-using ::erf;
-using ::erfc;
-using ::exp;
-using ::exp2;
-using ::expm1;
-using ::fabs;
-using ::fdim;
-using ::floor;
-using ::fma;
-using ::fmax;
-using ::fmin;
-using ::fmod;
-using ::fpclassify;
-using ::frexp;
-using ::hypot;
-using ::ilogb;
-using ::isfinite;
-using ::isgreater;
-using ::isgreaterequal;
-using ::isinf;
-using ::isless;
-using ::islessequal;
-using ::islessgreater;
-using ::isnan;
-using ::isnormal;
-using ::isunordered;
-using ::labs;
-using ::ldexp;
-using ::lgamma;
-using ::llabs;
-using ::llrint;
-using ::log;
-using ::log10;
-using ::log1p;
-using ::log2;
-using ::logb;
-using ::lrint;
-using ::lround;
-using ::modf;
-using ::nan;
-using ::nanf;
-using ::nearbyint;
-using ::nextafter;
-using ::nexttoward;
-using ::pow;
-using ::remainder;
-using ::remquo;
-using ::rint;
-using ::round;
-using ::scalbln;
-using ::scalbn;
-using ::signbit;
-using ::sin;
-using ::sinh;
-using ::sqrt;
-using ::tan;
-using ::tanh;
-using ::tgamma;
-using ::trunc;
-} // namespace std
-
-#pragma pop_macro("__DEVICE__")
-
-#endif
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h
index 4ad240f..95d1f5f 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h
@@ -42,9 +42,6 @@
 
 #if defined(__CUDA__) && defined(__clang__)
 
-// Include some forward declares that must come before cmath.
-#include <__clang_cuda_math_forward_declares.h>
-
 // Include some standard headers to avoid CUDA headers including them
 // while some required macros (like __THROW) are in a weird state.
 #include <cmath>
@@ -189,21 +186,8 @@
 // we have to include it and it will in turn include .hpp
 #include "sm_30_intrinsics.h"
 #include "sm_32_intrinsics.hpp"
-
 #undef __MATH_FUNCTIONS_HPP__
-
-// math_functions.hpp defines ::signbit as a __host__ __device__ function.  This
-// conflicts with libstdc++'s constexpr ::signbit, so we have to rename
-// math_function.hpp's ::signbit.  It's guarded by #undef signbit, but that's
-// conditional on __GNUC__.  :)
-#pragma push_macro("signbit")
-#pragma push_macro("__GNUC__")
-#undef __GNUC__
-#define signbit __ignored_cuda_signbit
 #include "math_functions.hpp"
-#pragma pop_macro("__GNUC__")
-#pragma pop_macro("signbit")
-
 #pragma pop_macro("__host__")
 
 #include "texture_indirect_functions.h"
@@ -216,6 +200,16 @@
 #undef __CUDABE__
 #define __CUDACC__
 
+#if defined(__CUDA_ARCH__)
+// We need to emit IR declaration for non-existing __nvvm_reflect() to
+// let backend know that it should be treated as const nothrow
+// function which is what NVVMReflect pass expects to see.
+extern "C" __device__ __attribute__((const)) int __nvvm_reflect(const void *);
+static __device__ __attribute__((used)) int __nvvm_reflect_anchor() {
+  return __nvvm_reflect("NONE");
+}
+#endif
+
 extern "C" {
 // Device-side CUDA system calls.
 // http://docs.nvidia.com/cuda/ptx-writers-guide-to-interoperability/index.html#system-calls
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/altivec.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/altivec.h
index 77bc928..0508765 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/altivec.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/altivec.h
@@ -10268,41 +10268,21 @@
 
 #ifdef __VSX__
 
-static __inline__ vector bool int __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector bool int *__b) {
-  return (vector bool int)__builtin_vsx_lxvw4x(__a, __b);
-}
-
 static __inline__ vector signed int __ATTRS_o_ai
 vec_vsx_ld(int __a, const vector signed int *__b) {
   return (vector signed int)__builtin_vsx_lxvw4x(__a, __b);
 }
 
-static __inline__ vector signed int __ATTRS_o_ai
-vec_vsx_ld(int __a, const signed int *__b) {
-  return (vector signed int)__builtin_vsx_lxvw4x(__a, __b);
-}
-
 static __inline__ vector unsigned int __ATTRS_o_ai
 vec_vsx_ld(int __a, const vector unsigned int *__b) {
   return (vector unsigned int)__builtin_vsx_lxvw4x(__a, __b);
 }
 
-static __inline__ vector unsigned int __ATTRS_o_ai
-vec_vsx_ld(int __a, const unsigned int *__b) {
-  return (vector unsigned int)__builtin_vsx_lxvw4x(__a, __b);
-}
-
 static __inline__ vector float __ATTRS_o_ai
 vec_vsx_ld(int __a, const vector float *__b) {
   return (vector float)__builtin_vsx_lxvw4x(__a, __b);
 }
 
-static __inline__ vector float __ATTRS_o_ai vec_vsx_ld(int __a,
-                                                       const float *__b) {
-  return (vector float)__builtin_vsx_lxvw4x(__a, __b);
-}
-
 static __inline__ vector signed long long __ATTRS_o_ai
 vec_vsx_ld(int __a, const vector signed long long *__b) {
   return (vector signed long long)__builtin_vsx_lxvd2x(__a, __b);
@@ -10318,16 +10298,6 @@
   return (vector double)__builtin_vsx_lxvd2x(__a, __b);
 }
 
-static __inline__ vector double __ATTRS_o_ai
-vec_vsx_ld(int __a, const double *__b) {
-  return (vector double)__builtin_vsx_lxvd2x(__a, __b);
-}
-
-static __inline__ vector bool short __ATTRS_o_ai
-vec_vsx_ld(int __a, const vector bool short *__b) {
-  return (vector bool short)__builtin_vsx_lxvw4x(__a, __b);
-}
-
 static __inline__ vector signed short __ATTRS_o_ai
 vec_vsx_ld(int __a, const vector signed short *__b) {
   return (vector signed short)__builtin_vsx_lxvw4x(__a, __b);
@@ -10379,21 +10349,6 @@
 
 #ifdef __VSX__
 
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b,
-                                               vector bool int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b,
-                                               signed int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool int __a, int __b,
-                                               unsigned int *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
 static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed int __a, int __b,
                                                vector signed int *__c) {
   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
@@ -10419,11 +10374,6 @@
   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
 }
 
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector float __a, int __b,
-                                               float *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
 static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed long long __a,
                                                int __b,
                                                vector signed long long *__c) {
@@ -10441,25 +10391,6 @@
   __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
 }
 
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector double __a, int __b,
-                                               double *__c) {
-  __builtin_vsx_stxvd2x((vector double)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b,
-                                               vector bool short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b,
-                                               signed short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool short __a, int __b,
-                                               unsigned short *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
 static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed short __a, int __b,
                                                vector signed short *__c) {
   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
@@ -10481,21 +10412,6 @@
   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
 }
 
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
-                                               vector bool char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
-                                               signed char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
-static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
-                                               unsigned char *__c) {
-  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
-}
-
 static __inline__ void __ATTRS_o_ai vec_vsx_st(vector signed char __a, int __b,
                                                vector signed char *__c) {
   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
@@ -10517,6 +10433,21 @@
   __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
 }
 
+static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
+                                               vector bool char *__c) {
+  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
+}
+
+static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
+                                               signed char *__c) {
+  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
+}
+
+static __inline__ void __ATTRS_o_ai vec_vsx_st(vector bool char __a, int __b,
+                                               unsigned char *__c) {
+  __builtin_vsx_stxvw4x((vector int)__a, __b, __c);
+}
+
 #endif
 
 /* vec_xor */
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/ammintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/ammintrin.h
index 8985bb4..4880fd7 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/ammintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/ammintrin.h
@@ -38,7 +38,9 @@
 /// __m128i _mm_extracti_si64(__m128i x, const int len, const int idx);
 /// \endcode
 ///
+/// \code
 /// This intrinsic corresponds to the \c EXTRQ instruction.
+/// \endcode
 ///
 /// \param x
 ///    The value from which bits are extracted.
@@ -47,10 +49,10 @@
 ///    are zero, the length is interpreted as 64.
 /// \param idx
 ///    Bits [5:0] specify the index of the least significant bit; the other
-///    bits are ignored. If the sum of the index and length is greater than 64,
-///    the result is undefined. If the length and index are both zero, bits
-///    [63:0] of parameter x are extracted. If the length is zero but the index
-///    is non-zero, the result is undefined.
+///    bits are ignored. If the sum of the index and length is greater than
+///    64, the result is undefined. If the length and index are both zero,
+///    bits [63:0] of parameter x are extracted. If the length is zero
+///    but the index is non-zero, the result is undefined.
 /// \returns A 128-bit integer vector whose lower 64 bits contain the bits
 ///    extracted from the source operand.
 #define _mm_extracti_si64(x, len, idx) \
@@ -62,17 +64,20 @@
 ///
 /// \headerfile <x86intrin.h>
 ///
+/// \code
 /// This intrinsic corresponds to the \c EXTRQ instruction.
+/// \endcode
 ///
 /// \param __x
 ///    The value from which bits are extracted.
 /// \param __y
-///    Specifies the index of the least significant bit at [13:8] and the
-///    length at [5:0]; all other bits are ignored. If bits [5:0] are zero, the
-///    length is interpreted as 64. If the sum of the index and length is
-///    greater than 64, the result is undefined. If the length and index are
-///    both zero, bits [63:0] of parameter __x are extracted. If the length is
-///    zero but the index is non-zero, the result is undefined.
+///    Specifies the index of the least significant bit at [13:8]
+///    and the length at [5:0]; all other bits are ignored.
+///    If bits [5:0] are zero, the length is interpreted as 64.
+///    If the sum of the index and length is greater than 64, the result is
+///    undefined. If the length and index are both zero, bits [63:0] of
+///    parameter __x are extracted. If the length is zero but the index is
+///    non-zero, the result is undefined.
 /// \returns A 128-bit vector whose lower 64 bits contain the bits extracted
 ///    from the source operand.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
@@ -81,9 +86,9 @@
   return (__m128i)__builtin_ia32_extrq((__v2di)__x, (__v16qi)__y);
 }
 
-/// \brief Inserts bits of a specified length from the source integer vector y
-///    into the lower 64 bits of the destination integer vector x at the index
-///    idx and of the length len.
+/// \brief Inserts bits of a specified length from the source integer vector
+///    y into the lower 64 bits of the destination integer vector x at the
+///    index idx and of the length len.
 ///
 /// \headerfile <x86intrin.h>
 ///
@@ -92,7 +97,9 @@
 /// const int idx);
 /// \endcode
 ///
+/// \code
 /// This intrinsic corresponds to the \c INSERTQ instruction.
+/// \endcode
 ///
 /// \param x
 ///    The destination operand where bits will be inserted. The inserted bits
@@ -106,14 +113,14 @@
 ///    are zero, the length is interpreted as 64.
 /// \param idx
 ///    Bits [5:0] specify the index of the least significant bit; the other
-///    bits are ignored. If the sum of the index and length is greater than 64,
-///    the result is undefined. If the length and index are both zero, bits
-///    [63:0] of parameter y are inserted into parameter x. If the length is
-///    zero but the index is non-zero, the result is undefined.
-/// \returns A 128-bit integer vector containing the original lower 64-bits of
-///    destination operand x with the specified bitfields replaced by the lower
-///    bits of source operand y. The upper 64 bits of the return value are
-///    undefined.
+///    bits are ignored. If the sum of the index and length is greater than
+///    64, the result is undefined. If the length and index are both zero,
+///    bits [63:0] of parameter y are inserted into parameter x. If the
+///    length is zero but the index is non-zero, the result is undefined.
+/// \returns A 128-bit integer vector containing the original lower 64-bits
+///    of destination operand x with the specified bitfields replaced by the
+///    lower bits of source operand y. The upper 64 bits of the return value
+///    are undefined.
 
 #define _mm_inserti_si64(x, y, len, idx) \
   ((__m128i)__builtin_ia32_insertqi((__v2di)(__m128i)(x), \
@@ -121,12 +128,14 @@
                                     (char)(len), (char)(idx)))
 
 /// \brief Inserts bits of a specified length from the source integer vector
-///    __y into the lower 64 bits of the destination integer vector __x at the
-///    index and of the length specified by __y.
+///    __y into the lower 64 bits of the destination integer vector __x at
+///    the index and of the length specified by __y.
 ///
 /// \headerfile <x86intrin.h>
 ///
+/// \code
 /// This intrinsic corresponds to the \c INSERTQ instruction.
+/// \endcode
 ///
 /// \param __x
 ///    The destination operand where bits will be inserted. The inserted bits
@@ -136,14 +145,14 @@
 ///    The source operand containing the bits to be extracted. The extracted
 ///    bits are the least significant bits of operand __y with length specified
 ///    by bits [69:64]. These are inserted into the destination at the index
-///    specified by bits [77:72]; all other bits are ignored. If bits [69:64]
-///    are zero, the length is interpreted as 64. If the sum of the index and
-///    length is greater than 64, the result is undefined. If the length and
-///    index are both zero, bits [63:0] of parameter __y are inserted into
-///    parameter __x. If the length is zero but the index is non-zero, the
-///    result is undefined.
-/// \returns A 128-bit integer vector containing the original lower 64-bits of
-///    destination operand __x with the specified bitfields replaced by the
+///    specified by bits [77:72]; all other bits are ignored.
+///    If bits [69:64] are zero, the length is interpreted as 64.
+///    If the sum of the index and length is greater than 64, the result is
+///    undefined. If the length and index are both zero, bits [63:0] of
+///    parameter __y are inserted into parameter __x. If the length
+///    is zero but the index is non-zero, the result is undefined.
+/// \returns A 128-bit integer vector containing the original lower 64-bits
+///    of destination operand __x with the specified bitfields replaced by the
 ///    lower bits of source operand __y. The upper 64 bits of the return value
 ///    are undefined.
 
@@ -159,12 +168,15 @@
 ///
 /// \headerfile <x86intrin.h>
 ///
+/// \code
 /// This intrinsic corresponds to the \c MOVNTSD instruction.
+/// \endcode
 ///
 /// \param __p
 ///    The 64-bit memory location used to store the register value.
 /// \param __a
-///    The 64-bit double-precision floating-point register value to be stored.
+///    The 64-bit double-precision floating-point register value to
+///    be stored.
 static __inline__ void __DEFAULT_FN_ATTRS
 _mm_stream_sd(double *__p, __m128d __a)
 {
@@ -177,12 +189,15 @@
 ///
 /// \headerfile <x86intrin.h>
 ///
+/// \code
 /// This intrinsic corresponds to the \c MOVNTSS instruction.
+/// \endcode
 ///
 /// \param __p
 ///    The 32-bit memory location used to store the register value.
 /// \param __a
-///    The 32-bit single-precision floating-point register value to be stored.
+///    The 32-bit single-precision floating-point register value to
+///    be stored.
 static __inline__ void __DEFAULT_FN_ATTRS
 _mm_stream_ss(float *__p, __m128 __a)
 {
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/arm_neon.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/arm_neon.h
index 9a2eee4..6b424d3 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/arm_neon.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/arm_neon.h
@@ -4360,6 +4360,27 @@
 #endif
 
 #ifdef __LITTLE_ENDIAN__
+__ai float16x4_t vcvt_f16_f32(float32x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__p0, 8);
+  return __ret;
+}
+#else
+__ai float16x4_t vcvt_f16_f32(float32x4_t __p0) {
+  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float16x4_t __ret;
+  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__rev0, 8);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float16x4_t __noswap_vcvt_f16_f32(float32x4_t __p0) {
+  float16x4_t __ret;
+  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__p0, 8);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
 __ai float32x4_t vcvtq_f32_u32(uint32x4_t __p0) {
   float32x4_t __ret;
   __ret = (float32x4_t) __builtin_neon_vcvtq_f32_v((int8x16_t)__p0, 50);
@@ -4424,6 +4445,27 @@
 #endif
 
 #ifdef __LITTLE_ENDIAN__
+__ai float32x4_t vcvt_f32_f16(float16x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__p0, 41);
+  return __ret;
+}
+#else
+__ai float32x4_t vcvt_f32_f16(float16x4_t __p0) {
+  float16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__rev0, 41);
+  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
+  return __ret;
+}
+__ai float32x4_t __noswap_vcvt_f32_f16(float16x4_t __p0) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__p0, 41);
+  return __ret;
+}
+#endif
+
+#ifdef __LITTLE_ENDIAN__
 #define vcvtq_n_f32_u32(__p0, __p1) __extension__ ({ \
   uint32x4_t __s0 = __p0; \
   float32x4_t __ret; \
@@ -33534,50 +33576,6 @@
 #endif
 
 #endif
-#if (__ARM_FP & 2)
-#ifdef __LITTLE_ENDIAN__
-__ai float16x4_t vcvt_f16_f32(float32x4_t __p0) {
-  float16x4_t __ret;
-  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__p0, 8);
-  return __ret;
-}
-#else
-__ai float16x4_t vcvt_f16_f32(float32x4_t __p0) {
-  float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
-  float16x4_t __ret;
-  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__rev0, 8);
-  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
-  return __ret;
-}
-__ai float16x4_t __noswap_vcvt_f16_f32(float32x4_t __p0) {
-  float16x4_t __ret;
-  __ret = (float16x4_t) __builtin_neon_vcvt_f16_f32((int8x16_t)__p0, 8);
-  return __ret;
-}
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-__ai float32x4_t vcvt_f32_f16(float16x4_t __p0) {
-  float32x4_t __ret;
-  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__p0, 41);
-  return __ret;
-}
-#else
-__ai float32x4_t vcvt_f32_f16(float16x4_t __p0) {
-  float16x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
-  float32x4_t __ret;
-  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__rev0, 41);
-  __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
-  return __ret;
-}
-__ai float32x4_t __noswap_vcvt_f32_f16(float16x4_t __p0) {
-  float32x4_t __ret;
-  __ret = (float32x4_t) __builtin_neon_vcvt_f32_f16((int8x8_t)__p0, 41);
-  return __ret;
-}
-#endif
-
-#endif
 #if __ARM_ARCH >= 8
 #ifdef __LITTLE_ENDIAN__
 __ai int32x4_t vcvtaq_s32_f32(float32x4_t __p0) {
@@ -40427,7 +40425,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float32x4_t vfmsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
   float32x4_t __ret;
-  __ret = vfmaq_f32(__p0, -__p1, __p2);
+  __ret = (float32x4_t) __builtin_neon_vfmsq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
   return __ret;
 }
 #else
@@ -40436,16 +40434,21 @@
   float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
   float32x4_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 3, 2, 1, 0);
   float32x4_t __ret;
-  __ret = __noswap_vfmaq_f32(__rev0, -__rev1, __rev2);
+  __ret = (float32x4_t) __builtin_neon_vfmsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41);
   __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
   return __ret;
 }
+__ai float32x4_t __noswap_vfmsq_f32(float32x4_t __p0, float32x4_t __p1, float32x4_t __p2) {
+  float32x4_t __ret;
+  __ret = (float32x4_t) __builtin_neon_vfmsq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 41);
+  return __ret;
+}
 #endif
 
 #ifdef __LITTLE_ENDIAN__
 __ai float32x2_t vfms_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
   float32x2_t __ret;
-  __ret = vfma_f32(__p0, -__p1, __p2);
+  __ret = (float32x2_t) __builtin_neon_vfms_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
   return __ret;
 }
 #else
@@ -40454,10 +40457,15 @@
   float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
   float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
   float32x2_t __ret;
-  __ret = __noswap_vfma_f32(__rev0, -__rev1, __rev2);
+  __ret = (float32x2_t) __builtin_neon_vfms_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9);
   __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
   return __ret;
 }
+__ai float32x2_t __noswap_vfms_f32(float32x2_t __p0, float32x2_t __p1, float32x2_t __p2) {
+  float32x2_t __ret;
+  __ret = (float32x2_t) __builtin_neon_vfms_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
+  return __ret;
+}
 #endif
 
 #endif
@@ -47282,11 +47290,6 @@
   __ret = (float64x1_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
   return __ret;
 }
-__ai float64x1_t __noswap_vfma_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
-  float64x1_t __ret;
-  __ret = (float64x1_t) __builtin_neon_vfma_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
-  return __ret;
-}
 #endif
 
 #ifdef __LITTLE_ENDIAN__
@@ -47706,7 +47709,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float64x2_t vfmsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
   float64x2_t __ret;
-  __ret = vfmaq_f64(__p0, -__p1, __p2);
+  __ret = (float64x2_t) __builtin_neon_vfmsq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 42);
   return __ret;
 }
 #else
@@ -47715,22 +47718,27 @@
   float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
   float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
   float64x2_t __ret;
-  __ret = __noswap_vfmaq_f64(__rev0, -__rev1, __rev2);
+  __ret = (float64x2_t) __builtin_neon_vfmsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 42);
   __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
   return __ret;
 }
+__ai float64x2_t __noswap_vfmsq_f64(float64x2_t __p0, float64x2_t __p1, float64x2_t __p2) {
+  float64x2_t __ret;
+  __ret = (float64x2_t) __builtin_neon_vfmsq_v((int8x16_t)__p0, (int8x16_t)__p1, (int8x16_t)__p2, 42);
+  return __ret;
+}
 #endif
 
 #ifdef __LITTLE_ENDIAN__
 __ai float64x1_t vfms_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
   float64x1_t __ret;
-  __ret = vfma_f64(__p0, -__p1, __p2);
+  __ret = (float64x1_t) __builtin_neon_vfms_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
   return __ret;
 }
 #else
 __ai float64x1_t vfms_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
   float64x1_t __ret;
-  __ret = __noswap_vfma_f64(__p0, -__p1, __p2);
+  __ret = (float64x1_t) __builtin_neon_vfms_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
   return __ret;
 }
 #endif
@@ -47741,7 +47749,7 @@
   float64_t __s1_88 = __p1_88; \
   float64x1_t __s2_88 = __p2_88; \
   float64_t __ret_88; \
-  __ret_88 = vfmad_lane_f64(__s0_88, -__s1_88, __s2_88, __p3_88); \
+  __ret_88 = vfmad_lane_f64(__s0_88, __s1_88, -__s2_88, __p3_88); \
   __ret_88; \
 })
 #else
@@ -47750,7 +47758,7 @@
   float64_t __s1_89 = __p1_89; \
   float64x1_t __s2_89 = __p2_89; \
   float64_t __ret_89; \
-  __ret_89 = __noswap_vfmad_lane_f64(__s0_89, -__s1_89, __s2_89, __p3_89); \
+  __ret_89 = __noswap_vfmad_lane_f64(__s0_89, __s1_89, -__s2_89, __p3_89); \
   __ret_89; \
 })
 #endif
@@ -47761,7 +47769,7 @@
   float32_t __s1_90 = __p1_90; \
   float32x2_t __s2_90 = __p2_90; \
   float32_t __ret_90; \
-  __ret_90 = vfmas_lane_f32(__s0_90, -__s1_90, __s2_90, __p3_90); \
+  __ret_90 = vfmas_lane_f32(__s0_90, __s1_90, -__s2_90, __p3_90); \
   __ret_90; \
 })
 #else
@@ -47771,7 +47779,7 @@
   float32x2_t __s2_91 = __p2_91; \
   float32x2_t __rev2_91;  __rev2_91 = __builtin_shufflevector(__s2_91, __s2_91, 1, 0); \
   float32_t __ret_91; \
-  __ret_91 = __noswap_vfmas_lane_f32(__s0_91, -__s1_91, __rev2_91, __p3_91); \
+  __ret_91 = __noswap_vfmas_lane_f32(__s0_91, __s1_91, -__rev2_91, __p3_91); \
   __ret_91; \
 })
 #endif
@@ -47782,7 +47790,7 @@
   float64x2_t __s1_92 = __p1_92; \
   float64x1_t __s2_92 = __p2_92; \
   float64x2_t __ret_92; \
-  __ret_92 = vfmaq_lane_f64(__s0_92, -__s1_92, __s2_92, __p3_92); \
+  __ret_92 = vfmaq_lane_f64(__s0_92, __s1_92, -__s2_92, __p3_92); \
   __ret_92; \
 })
 #else
@@ -47793,7 +47801,7 @@
   float64x2_t __rev0_93;  __rev0_93 = __builtin_shufflevector(__s0_93, __s0_93, 1, 0); \
   float64x2_t __rev1_93;  __rev1_93 = __builtin_shufflevector(__s1_93, __s1_93, 1, 0); \
   float64x2_t __ret_93; \
-  __ret_93 = __noswap_vfmaq_lane_f64(__rev0_93, -__rev1_93, __s2_93, __p3_93); \
+  __ret_93 = __noswap_vfmaq_lane_f64(__rev0_93, __rev1_93, -__s2_93, __p3_93); \
   __ret_93 = __builtin_shufflevector(__ret_93, __ret_93, 1, 0); \
   __ret_93; \
 })
@@ -47805,7 +47813,7 @@
   float32x4_t __s1_94 = __p1_94; \
   float32x2_t __s2_94 = __p2_94; \
   float32x4_t __ret_94; \
-  __ret_94 = vfmaq_lane_f32(__s0_94, -__s1_94, __s2_94, __p3_94); \
+  __ret_94 = vfmaq_lane_f32(__s0_94, __s1_94, -__s2_94, __p3_94); \
   __ret_94; \
 })
 #else
@@ -47817,7 +47825,7 @@
   float32x4_t __rev1_95;  __rev1_95 = __builtin_shufflevector(__s1_95, __s1_95, 3, 2, 1, 0); \
   float32x2_t __rev2_95;  __rev2_95 = __builtin_shufflevector(__s2_95, __s2_95, 1, 0); \
   float32x4_t __ret_95; \
-  __ret_95 = __noswap_vfmaq_lane_f32(__rev0_95, -__rev1_95, __rev2_95, __p3_95); \
+  __ret_95 = __noswap_vfmaq_lane_f32(__rev0_95, __rev1_95, -__rev2_95, __p3_95); \
   __ret_95 = __builtin_shufflevector(__ret_95, __ret_95, 3, 2, 1, 0); \
   __ret_95; \
 })
@@ -47829,7 +47837,7 @@
   float64x1_t __s1_96 = __p1_96; \
   float64x1_t __s2_96 = __p2_96; \
   float64x1_t __ret_96; \
-  __ret_96 = vfma_lane_f64(__s0_96, -__s1_96, __s2_96, __p3_96); \
+  __ret_96 = vfma_lane_f64(__s0_96, __s1_96, -__s2_96, __p3_96); \
   __ret_96; \
 })
 #else
@@ -47838,7 +47846,7 @@
   float64x1_t __s1_97 = __p1_97; \
   float64x1_t __s2_97 = __p2_97; \
   float64x1_t __ret_97; \
-  __ret_97 = __noswap_vfma_lane_f64(__s0_97, -__s1_97, __s2_97, __p3_97); \
+  __ret_97 = __noswap_vfma_lane_f64(__s0_97, __s1_97, -__s2_97, __p3_97); \
   __ret_97; \
 })
 #endif
@@ -47849,7 +47857,7 @@
   float32x2_t __s1_98 = __p1_98; \
   float32x2_t __s2_98 = __p2_98; \
   float32x2_t __ret_98; \
-  __ret_98 = vfma_lane_f32(__s0_98, -__s1_98, __s2_98, __p3_98); \
+  __ret_98 = vfma_lane_f32(__s0_98, __s1_98, -__s2_98, __p3_98); \
   __ret_98; \
 })
 #else
@@ -47861,7 +47869,7 @@
   float32x2_t __rev1_99;  __rev1_99 = __builtin_shufflevector(__s1_99, __s1_99, 1, 0); \
   float32x2_t __rev2_99;  __rev2_99 = __builtin_shufflevector(__s2_99, __s2_99, 1, 0); \
   float32x2_t __ret_99; \
-  __ret_99 = __noswap_vfma_lane_f32(__rev0_99, -__rev1_99, __rev2_99, __p3_99); \
+  __ret_99 = __noswap_vfma_lane_f32(__rev0_99, __rev1_99, -__rev2_99, __p3_99); \
   __ret_99 = __builtin_shufflevector(__ret_99, __ret_99, 1, 0); \
   __ret_99; \
 })
@@ -47873,7 +47881,7 @@
   float64_t __s1_100 = __p1_100; \
   float64x2_t __s2_100 = __p2_100; \
   float64_t __ret_100; \
-  __ret_100 = vfmad_laneq_f64(__s0_100, -__s1_100, __s2_100, __p3_100); \
+  __ret_100 = vfmad_laneq_f64(__s0_100, __s1_100, -__s2_100, __p3_100); \
   __ret_100; \
 })
 #else
@@ -47883,7 +47891,7 @@
   float64x2_t __s2_101 = __p2_101; \
   float64x2_t __rev2_101;  __rev2_101 = __builtin_shufflevector(__s2_101, __s2_101, 1, 0); \
   float64_t __ret_101; \
-  __ret_101 = __noswap_vfmad_laneq_f64(__s0_101, -__s1_101, __rev2_101, __p3_101); \
+  __ret_101 = __noswap_vfmad_laneq_f64(__s0_101, __s1_101, -__rev2_101, __p3_101); \
   __ret_101; \
 })
 #endif
@@ -47894,7 +47902,7 @@
   float32_t __s1_102 = __p1_102; \
   float32x4_t __s2_102 = __p2_102; \
   float32_t __ret_102; \
-  __ret_102 = vfmas_laneq_f32(__s0_102, -__s1_102, __s2_102, __p3_102); \
+  __ret_102 = vfmas_laneq_f32(__s0_102, __s1_102, -__s2_102, __p3_102); \
   __ret_102; \
 })
 #else
@@ -47904,7 +47912,7 @@
   float32x4_t __s2_103 = __p2_103; \
   float32x4_t __rev2_103;  __rev2_103 = __builtin_shufflevector(__s2_103, __s2_103, 3, 2, 1, 0); \
   float32_t __ret_103; \
-  __ret_103 = __noswap_vfmas_laneq_f32(__s0_103, -__s1_103, __rev2_103, __p3_103); \
+  __ret_103 = __noswap_vfmas_laneq_f32(__s0_103, __s1_103, -__rev2_103, __p3_103); \
   __ret_103; \
 })
 #endif
@@ -47915,7 +47923,7 @@
   float64x2_t __s1_104 = __p1_104; \
   float64x2_t __s2_104 = __p2_104; \
   float64x2_t __ret_104; \
-  __ret_104 = vfmaq_laneq_f64(__s0_104, -__s1_104, __s2_104, __p3_104); \
+  __ret_104 = vfmaq_laneq_f64(__s0_104, __s1_104, -__s2_104, __p3_104); \
   __ret_104; \
 })
 #else
@@ -47927,7 +47935,7 @@
   float64x2_t __rev1_105;  __rev1_105 = __builtin_shufflevector(__s1_105, __s1_105, 1, 0); \
   float64x2_t __rev2_105;  __rev2_105 = __builtin_shufflevector(__s2_105, __s2_105, 1, 0); \
   float64x2_t __ret_105; \
-  __ret_105 = __noswap_vfmaq_laneq_f64(__rev0_105, -__rev1_105, __rev2_105, __p3_105); \
+  __ret_105 = __noswap_vfmaq_laneq_f64(__rev0_105, __rev1_105, -__rev2_105, __p3_105); \
   __ret_105 = __builtin_shufflevector(__ret_105, __ret_105, 1, 0); \
   __ret_105; \
 })
@@ -47939,7 +47947,7 @@
   float32x4_t __s1_106 = __p1_106; \
   float32x4_t __s2_106 = __p2_106; \
   float32x4_t __ret_106; \
-  __ret_106 = vfmaq_laneq_f32(__s0_106, -__s1_106, __s2_106, __p3_106); \
+  __ret_106 = vfmaq_laneq_f32(__s0_106, __s1_106, -__s2_106, __p3_106); \
   __ret_106; \
 })
 #else
@@ -47951,7 +47959,7 @@
   float32x4_t __rev1_107;  __rev1_107 = __builtin_shufflevector(__s1_107, __s1_107, 3, 2, 1, 0); \
   float32x4_t __rev2_107;  __rev2_107 = __builtin_shufflevector(__s2_107, __s2_107, 3, 2, 1, 0); \
   float32x4_t __ret_107; \
-  __ret_107 = __noswap_vfmaq_laneq_f32(__rev0_107, -__rev1_107, __rev2_107, __p3_107); \
+  __ret_107 = __noswap_vfmaq_laneq_f32(__rev0_107, __rev1_107, -__rev2_107, __p3_107); \
   __ret_107 = __builtin_shufflevector(__ret_107, __ret_107, 3, 2, 1, 0); \
   __ret_107; \
 })
@@ -47963,7 +47971,7 @@
   float64x1_t __s1_108 = __p1_108; \
   float64x2_t __s2_108 = __p2_108; \
   float64x1_t __ret_108; \
-  __ret_108 = vfma_laneq_f64(__s0_108, -__s1_108, __s2_108, __p3_108); \
+  __ret_108 = vfma_laneq_f64(__s0_108, __s1_108, -__s2_108, __p3_108); \
   __ret_108; \
 })
 #else
@@ -47973,7 +47981,7 @@
   float64x2_t __s2_109 = __p2_109; \
   float64x2_t __rev2_109;  __rev2_109 = __builtin_shufflevector(__s2_109, __s2_109, 1, 0); \
   float64x1_t __ret_109; \
-  __ret_109 = __noswap_vfma_laneq_f64(__s0_109, -__s1_109, __rev2_109, __p3_109); \
+  __ret_109 = __noswap_vfma_laneq_f64(__s0_109, __s1_109, -__rev2_109, __p3_109); \
   __ret_109; \
 })
 #endif
@@ -47984,7 +47992,7 @@
   float32x2_t __s1_110 = __p1_110; \
   float32x4_t __s2_110 = __p2_110; \
   float32x2_t __ret_110; \
-  __ret_110 = vfma_laneq_f32(__s0_110, -__s1_110, __s2_110, __p3_110); \
+  __ret_110 = vfma_laneq_f32(__s0_110, __s1_110, -__s2_110, __p3_110); \
   __ret_110; \
 })
 #else
@@ -47996,7 +48004,7 @@
   float32x2_t __rev1_111;  __rev1_111 = __builtin_shufflevector(__s1_111, __s1_111, 1, 0); \
   float32x4_t __rev2_111;  __rev2_111 = __builtin_shufflevector(__s2_111, __s2_111, 3, 2, 1, 0); \
   float32x2_t __ret_111; \
-  __ret_111 = __noswap_vfma_laneq_f32(__rev0_111, -__rev1_111, __rev2_111, __p3_111); \
+  __ret_111 = __noswap_vfma_laneq_f32(__rev0_111, __rev1_111, -__rev2_111, __p3_111); \
   __ret_111 = __builtin_shufflevector(__ret_111, __ret_111, 1, 0); \
   __ret_111; \
 })
@@ -48005,7 +48013,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float64x2_t vfmsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
   float64x2_t __ret;
-  __ret = vfmaq_f64(__p0, -__p1, (float64x2_t) {__p2, __p2});
+  __ret = vfmsq_f64(__p0, __p1, (float64x2_t) {__p2, __p2});
   return __ret;
 }
 #else
@@ -48013,7 +48021,7 @@
   float64x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
   float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
   float64x2_t __ret;
-  __ret = __noswap_vfmaq_f64(__rev0, -__rev1, (float64x2_t) {__p2, __p2});
+  __ret = __noswap_vfmsq_f64(__rev0, __rev1, (float64x2_t) {__p2, __p2});
   __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
   return __ret;
 }
@@ -48022,7 +48030,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float32x4_t vfmsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
   float32x4_t __ret;
-  __ret = vfmaq_f32(__p0, -__p1, (float32x4_t) {__p2, __p2, __p2, __p2});
+  __ret = vfmsq_f32(__p0, __p1, (float32x4_t) {__p2, __p2, __p2, __p2});
   return __ret;
 }
 #else
@@ -48030,7 +48038,7 @@
   float32x4_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 3, 2, 1, 0);
   float32x4_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 3, 2, 1, 0);
   float32x4_t __ret;
-  __ret = __noswap_vfmaq_f32(__rev0, -__rev1, (float32x4_t) {__p2, __p2, __p2, __p2});
+  __ret = __noswap_vfmsq_f32(__rev0, __rev1, (float32x4_t) {__p2, __p2, __p2, __p2});
   __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
   return __ret;
 }
@@ -48039,7 +48047,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float32x2_t vfms_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
   float32x2_t __ret;
-  __ret = vfma_f32(__p0, -__p1, (float32x2_t) {__p2, __p2});
+  __ret = vfms_f32(__p0, __p1, (float32x2_t) {__p2, __p2});
   return __ret;
 }
 #else
@@ -48047,7 +48055,7 @@
   float32x2_t __rev0;  __rev0 = __builtin_shufflevector(__p0, __p0, 1, 0);
   float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
   float32x2_t __ret;
-  __ret = __noswap_vfma_f32(__rev0, -__rev1, (float32x2_t) {__p2, __p2});
+  __ret = __noswap_vfms_f32(__rev0, __rev1, (float32x2_t) {__p2, __p2});
   __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
   return __ret;
 }
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512bwintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512bwintrin.h
index 11a867a..f641c71 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512bwintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512bwintrin.h
@@ -1981,255 +1981,6 @@
                  _mm512_setzero_hi (),
                  (__mmask64) __U);
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_storeu_epi16 (void *__P, __mmask32 __U, __m512i __A)
-{
-  __builtin_ia32_storedquhi512_mask ((__v32hi *) __P,
-             (__v32hi) __A,
-             (__mmask32) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_storeu_epi8 (void *__P, __mmask64 __U, __m512i __A)
-{
-  __builtin_ia32_storedquqi512_mask ((__v64qi *) __P,
-             (__v64qi) __A,
-             (__mmask64) __U);
-}
-
-static __inline__ __mmask64 __DEFAULT_FN_ATTRS
-_mm512_test_epi8_mask (__m512i __A, __m512i __B)
-{
-  return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
-            (__v64qi) __B,
-            (__mmask64) -1);
-}
-
-static __inline__ __mmask64 __DEFAULT_FN_ATTRS
-_mm512_mask_test_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
-{
-  return (__mmask64) __builtin_ia32_ptestmb512 ((__v64qi) __A,
-            (__v64qi) __B, __U);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm512_test_epi16_mask (__m512i __A, __m512i __B)
-{
-  return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
-            (__v32hi) __B,
-            (__mmask32) -1);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm512_mask_test_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
-{
-  return (__mmask32) __builtin_ia32_ptestmw512 ((__v32hi) __A,
-            (__v32hi) __B, __U);
-}
-
-static __inline__ __mmask64 __DEFAULT_FN_ATTRS
-_mm512_testn_epi8_mask (__m512i __A, __m512i __B)
-{
-  return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
-             (__v64qi) __B,
-             (__mmask64) -1);
-}
-
-static __inline__ __mmask64 __DEFAULT_FN_ATTRS
-_mm512_mask_testn_epi8_mask (__mmask64 __U, __m512i __A, __m512i __B)
-{
-  return (__mmask64) __builtin_ia32_ptestnmb512 ((__v64qi) __A,
-             (__v64qi) __B, __U);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm512_testn_epi16_mask (__m512i __A, __m512i __B)
-{
-  return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
-             (__v32hi) __B,
-             (__mmask32) -1);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm512_mask_testn_epi16_mask (__mmask32 __U, __m512i __A, __m512i __B)
-{
-  return (__mmask32) __builtin_ia32_ptestnmw512 ((__v32hi) __A,
-             (__v32hi) __B, __U);
-}
-
-static __inline__ __mmask64 __DEFAULT_FN_ATTRS
-_mm512_movepi8_mask (__m512i __A)
-{
-  return (__mmask64) __builtin_ia32_cvtb2mask512 ((__v64qi) __A);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm512_movepi16_mask (__m512i __A)
-{
-  return (__mmask32) __builtin_ia32_cvtw2mask512 ((__v32hi) __A);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_movm_epi8 (__mmask64 __A)
-{
-  return (__m512i) __builtin_ia32_cvtmask2b512 (__A);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_movm_epi16 (__mmask32 __A)
-{
-  return (__m512i) __builtin_ia32_cvtmask2w512 (__A);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcastb_epi8 (__m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
-                   (__v64qi) _mm512_setzero_si512(),
-                   (__mmask64) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcastb_epi8 (__m512i __O, __mmask64 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
-                   (__v64qi) __O,
-                   __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcastb_epi8 (__mmask64 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastb512_mask ((__v16qi) __A,
-                   (__v64qi) _mm512_setzero_qi(),
-                   __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_set1_epi16 (__m512i __O, __mmask32 __M, short __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,
-                 (__v32hi) __O,
-                 __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_set1_epi16 (__mmask32 __M, short __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastw512_gpr_mask (__A,
-                 (__v32hi) _mm512_setzero_hi(),
-                 __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcastw_epi16 (__m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
-                   (__v32hi) _mm512_setzero_si512(),
-                   (__mmask32) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcastw_epi16 (__m512i __O, __mmask32 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
-                   (__v32hi) __O,
-                   __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcastw_epi16 (__mmask32 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastw512_mask ((__v8hi) __A,
-                   (__v32hi) _mm512_setzero_hi(),
-                   __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
-                 (__v32hi) __A,
-                 (__v32hi) _mm512_undefined_epi32 (),
-                 (__mmask32) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
-        __m512i __B)
-{
-  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
-                 (__v32hi) __A,
-                 (__v32hi) _mm512_setzero_hi(),
-                 (__mmask32) __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
-             __m512i __B)
-{
-  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
-                 (__v32hi) __A,
-                 (__v32hi) __W,
-                 (__mmask32) __M);
-}
-
-#define _mm512_alignr_epi8( __A, __B, __N) __extension__ ({\
-__builtin_ia32_palignr512_mask ((__v8di) __A,\
-                 (__v8di) __B ,__N * 8,\
-                 (__v8di) _mm512_undefined_pd (),\
-                 (__mmask64) -1);\
-})
-
-#define _mm512_mask_alignr_epi8( __W, __U, __A, __B, __N) __extension__({\
-__builtin_ia32_palignr512_mask ((__v8di) __A,\
-                 (__v8di) __B,\
-                 __N * 8,\
-                 (__v8di) __W,\
-                 (__mmask64) __U);\
-})
-
-#define _mm512_maskz_alignr_epi8( __U, __A, __B, __N) __extension__({\
-__builtin_ia32_palignr512_mask ((__v8di) __A,\
-                 (__v8di) __B,\
-                 __N * 8,\
-                 (__v8di) _mm512_setzero_si512 (),\
-                 (__mmask64) __U);\
-})
-
-#define _mm512_dbsad_epu8( __A,  __B, __imm) __extension__ ({\
-__builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,\
-                                (__v64qi) __B,\
-                                __imm,\
-                                (__v32hi) _mm512_undefined_epi32(),\
-                                (__mmask32) -1);\
-})
-
-#define _mm512_mask_dbsad_epu8( __W, __U, __A, __B, __imm) ({\
-__builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,\
-                                (__v64qi) __B,\
-                                __imm,\
-                                (__v32hi) __W,\
-                                (__mmask32) __U);\
-})
-
-#define _mm512_maskz_dbsad_epu8( __U, __A, __B, __imm) ({\
-__builtin_ia32_dbpsadbw512_mask ((__v64qi) __A,\
-                                (__v64qi) __B,\
-                                __imm,\
-                                (__v32hi) _mm512_setzero_hi(),\
-                                (__mmask32) __U);\
-})
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_sad_epu8 (__m512i __A, __m512i __B)
-{
- return (__m512i) __builtin_ia32_psadbw512 ((__v64qi) __A,
-               (__v64qi) __B);
-}
-
-
-
 #undef __DEFAULT_FN_ATTRS
 
 #endif
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512cdintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512cdintrin.h
index 23c4235..3894b29 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512cdintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512cdintrin.h
@@ -126,19 +126,6 @@
              (__v8di) _mm512_setzero_si512 (),
              (__mmask8) __U);
 }
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcastmb_epi64 (__mmask8 __A)
-{
-  return (__m512i) __builtin_ia32_broadcastmb512 (__A);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcastmw_epi32 (__mmask16 __A)
-{
-  return (__m512i) __builtin_ia32_broadcastmw512 (__A);
-}
-
 #undef __DEFAULT_FN_ATTRS
 
 #endif
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512dqintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512dqintrin.h
index ab970f1..afee490 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512dqintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512dqintrin.h
@@ -773,371 +773,6 @@
   (__m512) __builtin_ia32_reduceps512_mask ((__v16sf) __A, __B,      \
                (__v16sf) _mm512_setzero_ps(), (__mmask16) __U, __R);})
 
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_movepi32_mask (__m512i __A)
-{
-  return (__mmask16) __builtin_ia32_cvtd2mask512 ((__v16si) __A);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_movm_epi32 (__mmask16 __A)
-{
-  return (__m512i) __builtin_ia32_cvtmask2d512 (__A);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_movm_epi64 (__mmask8 __A)
-{
-  return (__m512i) __builtin_ia32_cvtmask2q512 (__A);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm512_movepi64_mask (__m512i __A)
-{
-  return (__mmask8) __builtin_ia32_cvtq2mask512 ((__v8di) __A);
-}
-
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_broadcast_f32x2 (__m128 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
-                (__v16sf)_mm512_undefined_ps(),
-                (__mmask16) - 1);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_f32x2 (__m512 __O, __mmask16 __M, __m128 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
-                (__v16sf)
-                __O, __M);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_f32x2 (__mmask16 __M, __m128 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x2_512_mask ((__v4sf) __A,
-                (__v16sf)_mm512_setzero_ps (),
-                __M);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_broadcast_f32x8 (__m256 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
-                _mm512_undefined_ps(),
-                (__mmask16) - 1);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_f32x8 (__m512 __O, __mmask16 __M, __m256 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
-                (__v16sf)__O,
-                __M);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_f32x8 (__mmask16 __M, __m256 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x8_512_mask ((__v8sf) __A,
-                (__v16sf)_mm512_setzero_ps (),
-                __M);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_broadcast_f64x2 (__m128d __A)
-{
-  return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,
-                 (__v8df)_mm512_undefined_pd(),
-                 (__mmask8) - 1);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_f64x2 (__m512d __O, __mmask8 __M, __m128d __A)
-{
-  return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,
-                 (__v8df)
-                 __O, __M);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A)
-{
-  return (__m512d) __builtin_ia32_broadcastf64x2_512_mask ((__v2df) __A,
-                 (__v8df)_mm512_setzero_ps (),
-                 __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcast_i32x2 (__m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,
-                 (__v16si)_mm512_setzero_si512(),
-                 (__mmask16) - 1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_i32x2 (__m512i __O, __mmask16 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,
-                 (__v16si)
-                 __O, __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_i32x2 (__mmask16 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x2_512_mask ((__v4si) __A,
-                 (__v16si)_mm512_setzero_si512 (),
-                 __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcast_i32x8 (__m256i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,
-                 (__v16si)_mm512_setzero_si512(),
-                 (__mmask16) - 1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_i32x8 (__m512i __O, __mmask16 __M, __m256i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,
-                 (__v16si)__O,
-                 __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_i32x8 (__mmask16 __M, __m256i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x8_512_mask ((__v8si) __A,
-                 (__v16si)
-                 _mm512_setzero_si512 (),
-                 __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcast_i64x2 (__m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,
-                 (__v8di)_mm512_setzero_si512(),
-                 (__mmask8) - 1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_i64x2 (__m512i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,
-                 (__v8di)
-                 __O, __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti64x2_512_mask ((__v2di) __A,
-                 (__v8di)_mm512_setzero_si512 (),
-                 __M);
-}
-
-#define _mm512_extractf32x8_ps( __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf32x8_mask ((__v16sf)( __A),\
-                ( __imm),\
-                (__v8sf) _mm256_setzero_ps (),\
-                (__mmask8) -1);\
-})
-
-#define _mm512_mask_extractf32x8_ps( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf32x8_mask ((__v16sf)( __A),\
-                ( __imm),\
-                (__v8sf)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_extractf32x8_ps( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf32x8_mask ((__v16sf)( __A),\
-                ( __imm),\
-                (__v8sf) _mm256_setzero_ps (),\
-                (__mmask8)( __U));\
-})
-
-#define _mm512_extractf64x2_pd( __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf64x2_512_mask ((__v8df)( __A),\
-               ( __imm),\
-               (__v2df) _mm_setzero_pd (),\
-               (__mmask8) -1);\
-})
-
-#define _mm512_mask_extractf64x2_pd( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf64x2_512_mask ((__v8df)( __A),\
-               ( __imm),\
-               (__v2df)( __W),\
-               (__mmask8) ( __U));\
-})
-
-#define _mm512_maskz_extractf64x2_pd( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf64x2_512_mask ((__v8df)( __A),\
-               ( __imm),\
-               (__v2df) _mm_setzero_pd (),\
-               (__mmask8) ( __U));\
-})
-
-#define _mm512_extracti32x8_epi32( __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x8_mask ((__v16si)( __A),\
-                ( __imm),\
-                (__v8si) _mm256_setzero_si256 (),\
-                (__mmask8) -1);\
-})
-
-#define _mm512_mask_extracti32x8_epi32( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x8_mask ((__v16si)( __A),\
-                ( __imm),\
-                (__v8si)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_extracti32x8_epi32( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x8_mask ((__v16si)( __A),\
-                ( __imm),\
-                (__v8si) _mm256_setzero_si256 (),\
-                (__mmask8)( __U));\
-})
-
-#define _mm512_extracti64x2_epi64( __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x2_512_mask ((__v8di)( __A),\
-                ( __imm),\
-                (__v2di) _mm_setzero_di (),\
-                (__mmask8) -1);\
-})
-
-#define _mm512_mask_extracti64x2_epi64( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x2_512_mask ((__v8di)( __A),\
-                ( __imm),\
-                (__v2di)( __W),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm512_maskz_extracti64x2_epi64( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x2_512_mask ((__v8di)( __A),\
-                ( __imm),\
-                (__v2di) _mm_setzero_di (),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm512_insertf64x2( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x2_512_mask ((__v8df)( __A),\
-                (__v2df)( __B),\
-                ( __imm),\
-                (__v8df) _mm512_setzero_pd (),\
-                (__mmask8) -1);\
-})
-
-#define _mm512_mask_insertf64x2( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x2_512_mask ((__v8df)( __A),\
-                (__v2df)( __B),\
-                ( __imm),\
-                (__v8df)( __W),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm512_maskz_insertf64x2( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x2_512_mask ((__v8df)( __A),\
-                (__v2df)( __B),\
-                ( __imm),\
-                (__v8df) _mm512_setzero_pd (),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm512_inserti32x8( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti32x8_mask ((__v16si)( __A),\
-                (__v8si)( __B),\
-                ( __imm),\
-                (__v16si) _mm512_setzero_si512 (),\
-                (__mmask16) -1);\
-})
-
-#define _mm512_mask_inserti32x8( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti32x8_mask ((__v16si)( __A),\
-                (__v8si)( __B),\
-                ( __imm),\
-                (__v16si)( __W),\
-                (__mmask16)( __U));\
-})
-
-#define _mm512_maskz_inserti32x8( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti32x8_mask ((__v16si)( __A),\
-                (__v8si)( __B),\
-                ( __imm),\
-                (__v16si) _mm512_setzero_si512 (),\
-                (__mmask16)( __U));\
-})
-
-#define _mm512_inserti64x2( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x2_512_mask ((__v8di)( __A),\
-                (__v2di)( __B),\
-                ( __imm),\
-                (__v8di) _mm512_setzero_si512 (),\
-                (__mmask8) -1);\
-})
-
-#define _mm512_mask_inserti64x2( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x2_512_mask ((__v8di)( __A),\
-                (__v2di)( __B),\
-                ( __imm),\
-                (__v8di)( __W),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm512_maskz_inserti64x2( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x2_512_mask ((__v8di)( __A),\
-                (__v2di)( __B),\
-                ( __imm),\
-                (__v8di) _mm512_setzero_si512 (),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm512_mask_fpclass_ps_mask( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclassps512_mask ((__v16sf)( __A),\
-                  ( __imm),\
-                  ( __U));\
-})
-
-#define _mm512_fpclass_ps_mask( __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclassps512_mask ((__v16sf)( __A),\
-                   ( __imm),\
-                   (__mmask16) -1);\
-})
-
-#define _mm512_mask_fpclass_pd_mask( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclasspd512_mask ((__v8df)( __A),\
-                  ( __imm),( __U));\
-})
-
-#define _mm512_fpclass_pd_mask( __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclasspd512_mask ((__v8df)( __A),\
-                  ( __imm),\
-                  (__mmask8) -1);\
-})
-
-#define _mm_fpclass_sd_mask( __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclasssd_mask ((__v2df)( __A), ( __imm), (__mmask8) -1);\
-})
-
-#define _mm_mask_fpclass_sd_mask( __U,__A, __imm) __extension__ ({ \
-__builtin_ia32_fpclasssd_mask ((__v2df)( __A), ( __imm), (__mmask8) __U);\
-})
-
-#define _mm_fpclass_ss_mask( __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclassss_mask ((__v4sf)( __A), ( __imm), (__mmask8) -1);\
-})
-
-#define _mm_mask_fpclass_ss_mask(__U ,__A, __imm) __extension__ ({ \
-__builtin_ia32_fpclassss_mask ((__v4sf)( __A), ( __imm), (__mmask8) __U);\
-})
-
 #undef __DEFAULT_FN_ATTRS
 
 #endif
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512fintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512fintrin.h
index 6500bb5..e1f81a0 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512fintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512fintrin.h
@@ -48,96 +48,6 @@
 
 typedef enum
 {
-  _MM_PERM_AAAA = 0x00, _MM_PERM_AAAB = 0x01, _MM_PERM_AAAC = 0x02,
-  _MM_PERM_AAAD = 0x03, _MM_PERM_AABA = 0x04, _MM_PERM_AABB = 0x05,
-  _MM_PERM_AABC = 0x06, _MM_PERM_AABD = 0x07, _MM_PERM_AACA = 0x08,
-  _MM_PERM_AACB = 0x09, _MM_PERM_AACC = 0x0A, _MM_PERM_AACD = 0x0B,
-  _MM_PERM_AADA = 0x0C, _MM_PERM_AADB = 0x0D, _MM_PERM_AADC = 0x0E,
-  _MM_PERM_AADD = 0x0F, _MM_PERM_ABAA = 0x10, _MM_PERM_ABAB = 0x11,
-  _MM_PERM_ABAC = 0x12, _MM_PERM_ABAD = 0x13, _MM_PERM_ABBA = 0x14,
-  _MM_PERM_ABBB = 0x15, _MM_PERM_ABBC = 0x16, _MM_PERM_ABBD = 0x17,
-  _MM_PERM_ABCA = 0x18, _MM_PERM_ABCB = 0x19, _MM_PERM_ABCC = 0x1A,
-  _MM_PERM_ABCD = 0x1B, _MM_PERM_ABDA = 0x1C, _MM_PERM_ABDB = 0x1D,
-  _MM_PERM_ABDC = 0x1E, _MM_PERM_ABDD = 0x1F, _MM_PERM_ACAA = 0x20,
-  _MM_PERM_ACAB = 0x21, _MM_PERM_ACAC = 0x22, _MM_PERM_ACAD = 0x23,
-  _MM_PERM_ACBA = 0x24, _MM_PERM_ACBB = 0x25, _MM_PERM_ACBC = 0x26,
-  _MM_PERM_ACBD = 0x27, _MM_PERM_ACCA = 0x28, _MM_PERM_ACCB = 0x29,
-  _MM_PERM_ACCC = 0x2A, _MM_PERM_ACCD = 0x2B, _MM_PERM_ACDA = 0x2C,
-  _MM_PERM_ACDB = 0x2D, _MM_PERM_ACDC = 0x2E, _MM_PERM_ACDD = 0x2F,
-  _MM_PERM_ADAA = 0x30, _MM_PERM_ADAB = 0x31, _MM_PERM_ADAC = 0x32,
-  _MM_PERM_ADAD = 0x33, _MM_PERM_ADBA = 0x34, _MM_PERM_ADBB = 0x35,
-  _MM_PERM_ADBC = 0x36, _MM_PERM_ADBD = 0x37, _MM_PERM_ADCA = 0x38,
-  _MM_PERM_ADCB = 0x39, _MM_PERM_ADCC = 0x3A, _MM_PERM_ADCD = 0x3B,
-  _MM_PERM_ADDA = 0x3C, _MM_PERM_ADDB = 0x3D, _MM_PERM_ADDC = 0x3E,
-  _MM_PERM_ADDD = 0x3F, _MM_PERM_BAAA = 0x40, _MM_PERM_BAAB = 0x41,
-  _MM_PERM_BAAC = 0x42, _MM_PERM_BAAD = 0x43, _MM_PERM_BABA = 0x44,
-  _MM_PERM_BABB = 0x45, _MM_PERM_BABC = 0x46, _MM_PERM_BABD = 0x47,
-  _MM_PERM_BACA = 0x48, _MM_PERM_BACB = 0x49, _MM_PERM_BACC = 0x4A,
-  _MM_PERM_BACD = 0x4B, _MM_PERM_BADA = 0x4C, _MM_PERM_BADB = 0x4D,
-  _MM_PERM_BADC = 0x4E, _MM_PERM_BADD = 0x4F, _MM_PERM_BBAA = 0x50,
-  _MM_PERM_BBAB = 0x51, _MM_PERM_BBAC = 0x52, _MM_PERM_BBAD = 0x53,
-  _MM_PERM_BBBA = 0x54, _MM_PERM_BBBB = 0x55, _MM_PERM_BBBC = 0x56,
-  _MM_PERM_BBBD = 0x57, _MM_PERM_BBCA = 0x58, _MM_PERM_BBCB = 0x59,
-  _MM_PERM_BBCC = 0x5A, _MM_PERM_BBCD = 0x5B, _MM_PERM_BBDA = 0x5C,
-  _MM_PERM_BBDB = 0x5D, _MM_PERM_BBDC = 0x5E, _MM_PERM_BBDD = 0x5F,
-  _MM_PERM_BCAA = 0x60, _MM_PERM_BCAB = 0x61, _MM_PERM_BCAC = 0x62,
-  _MM_PERM_BCAD = 0x63, _MM_PERM_BCBA = 0x64, _MM_PERM_BCBB = 0x65,
-  _MM_PERM_BCBC = 0x66, _MM_PERM_BCBD = 0x67, _MM_PERM_BCCA = 0x68,
-  _MM_PERM_BCCB = 0x69, _MM_PERM_BCCC = 0x6A, _MM_PERM_BCCD = 0x6B,
-  _MM_PERM_BCDA = 0x6C, _MM_PERM_BCDB = 0x6D, _MM_PERM_BCDC = 0x6E,
-  _MM_PERM_BCDD = 0x6F, _MM_PERM_BDAA = 0x70, _MM_PERM_BDAB = 0x71,
-  _MM_PERM_BDAC = 0x72, _MM_PERM_BDAD = 0x73, _MM_PERM_BDBA = 0x74,
-  _MM_PERM_BDBB = 0x75, _MM_PERM_BDBC = 0x76, _MM_PERM_BDBD = 0x77,
-  _MM_PERM_BDCA = 0x78, _MM_PERM_BDCB = 0x79, _MM_PERM_BDCC = 0x7A,
-  _MM_PERM_BDCD = 0x7B, _MM_PERM_BDDA = 0x7C, _MM_PERM_BDDB = 0x7D,
-  _MM_PERM_BDDC = 0x7E, _MM_PERM_BDDD = 0x7F, _MM_PERM_CAAA = 0x80,
-  _MM_PERM_CAAB = 0x81, _MM_PERM_CAAC = 0x82, _MM_PERM_CAAD = 0x83,
-  _MM_PERM_CABA = 0x84, _MM_PERM_CABB = 0x85, _MM_PERM_CABC = 0x86,
-  _MM_PERM_CABD = 0x87, _MM_PERM_CACA = 0x88, _MM_PERM_CACB = 0x89,
-  _MM_PERM_CACC = 0x8A, _MM_PERM_CACD = 0x8B, _MM_PERM_CADA = 0x8C,
-  _MM_PERM_CADB = 0x8D, _MM_PERM_CADC = 0x8E, _MM_PERM_CADD = 0x8F,
-  _MM_PERM_CBAA = 0x90, _MM_PERM_CBAB = 0x91, _MM_PERM_CBAC = 0x92,
-  _MM_PERM_CBAD = 0x93, _MM_PERM_CBBA = 0x94, _MM_PERM_CBBB = 0x95,
-  _MM_PERM_CBBC = 0x96, _MM_PERM_CBBD = 0x97, _MM_PERM_CBCA = 0x98,
-  _MM_PERM_CBCB = 0x99, _MM_PERM_CBCC = 0x9A, _MM_PERM_CBCD = 0x9B,
-  _MM_PERM_CBDA = 0x9C, _MM_PERM_CBDB = 0x9D, _MM_PERM_CBDC = 0x9E,
-  _MM_PERM_CBDD = 0x9F, _MM_PERM_CCAA = 0xA0, _MM_PERM_CCAB = 0xA1,
-  _MM_PERM_CCAC = 0xA2, _MM_PERM_CCAD = 0xA3, _MM_PERM_CCBA = 0xA4,
-  _MM_PERM_CCBB = 0xA5, _MM_PERM_CCBC = 0xA6, _MM_PERM_CCBD = 0xA7,
-  _MM_PERM_CCCA = 0xA8, _MM_PERM_CCCB = 0xA9, _MM_PERM_CCCC = 0xAA,
-  _MM_PERM_CCCD = 0xAB, _MM_PERM_CCDA = 0xAC, _MM_PERM_CCDB = 0xAD,
-  _MM_PERM_CCDC = 0xAE, _MM_PERM_CCDD = 0xAF, _MM_PERM_CDAA = 0xB0,
-  _MM_PERM_CDAB = 0xB1, _MM_PERM_CDAC = 0xB2, _MM_PERM_CDAD = 0xB3,
-  _MM_PERM_CDBA = 0xB4, _MM_PERM_CDBB = 0xB5, _MM_PERM_CDBC = 0xB6,
-  _MM_PERM_CDBD = 0xB7, _MM_PERM_CDCA = 0xB8, _MM_PERM_CDCB = 0xB9,
-  _MM_PERM_CDCC = 0xBA, _MM_PERM_CDCD = 0xBB, _MM_PERM_CDDA = 0xBC,
-  _MM_PERM_CDDB = 0xBD, _MM_PERM_CDDC = 0xBE, _MM_PERM_CDDD = 0xBF,
-  _MM_PERM_DAAA = 0xC0, _MM_PERM_DAAB = 0xC1, _MM_PERM_DAAC = 0xC2,
-  _MM_PERM_DAAD = 0xC3, _MM_PERM_DABA = 0xC4, _MM_PERM_DABB = 0xC5,
-  _MM_PERM_DABC = 0xC6, _MM_PERM_DABD = 0xC7, _MM_PERM_DACA = 0xC8,
-  _MM_PERM_DACB = 0xC9, _MM_PERM_DACC = 0xCA, _MM_PERM_DACD = 0xCB,
-  _MM_PERM_DADA = 0xCC, _MM_PERM_DADB = 0xCD, _MM_PERM_DADC = 0xCE,
-  _MM_PERM_DADD = 0xCF, _MM_PERM_DBAA = 0xD0, _MM_PERM_DBAB = 0xD1,
-  _MM_PERM_DBAC = 0xD2, _MM_PERM_DBAD = 0xD3, _MM_PERM_DBBA = 0xD4,
-  _MM_PERM_DBBB = 0xD5, _MM_PERM_DBBC = 0xD6, _MM_PERM_DBBD = 0xD7,
-  _MM_PERM_DBCA = 0xD8, _MM_PERM_DBCB = 0xD9, _MM_PERM_DBCC = 0xDA,
-  _MM_PERM_DBCD = 0xDB, _MM_PERM_DBDA = 0xDC, _MM_PERM_DBDB = 0xDD,
-  _MM_PERM_DBDC = 0xDE, _MM_PERM_DBDD = 0xDF, _MM_PERM_DCAA = 0xE0,
-  _MM_PERM_DCAB = 0xE1, _MM_PERM_DCAC = 0xE2, _MM_PERM_DCAD = 0xE3,
-  _MM_PERM_DCBA = 0xE4, _MM_PERM_DCBB = 0xE5, _MM_PERM_DCBC = 0xE6,
-  _MM_PERM_DCBD = 0xE7, _MM_PERM_DCCA = 0xE8, _MM_PERM_DCCB = 0xE9,
-  _MM_PERM_DCCC = 0xEA, _MM_PERM_DCCD = 0xEB, _MM_PERM_DCDA = 0xEC,
-  _MM_PERM_DCDB = 0xED, _MM_PERM_DCDC = 0xEE, _MM_PERM_DCDD = 0xEF,
-  _MM_PERM_DDAA = 0xF0, _MM_PERM_DDAB = 0xF1, _MM_PERM_DDAC = 0xF2,
-  _MM_PERM_DDAD = 0xF3, _MM_PERM_DDBA = 0xF4, _MM_PERM_DDBB = 0xF5,
-  _MM_PERM_DDBC = 0xF6, _MM_PERM_DDBD = 0xF7, _MM_PERM_DDCA = 0xF8,
-  _MM_PERM_DDCB = 0xF9, _MM_PERM_DDCC = 0xFA, _MM_PERM_DDCD = 0xFB,
-  _MM_PERM_DDDA = 0xFC, _MM_PERM_DDDB = 0xFD, _MM_PERM_DDDC = 0xFE,
-  _MM_PERM_DDDD = 0xFF
-} _MM_PERM_ENUM;
-
-typedef enum
-{
   _MM_MANT_NORM_1_2,    /* interval [1, 2)      */
   _MM_MANT_NORM_p5_2,   /* interval [0.5, 2)    */
   _MM_MANT_NORM_p5_1,   /* interval [0.5, 1)    */
@@ -185,55 +95,6 @@
 {
   return (__m512i)__builtin_ia32_undef512();
 }
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcastd_epi32 (__m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
-              (__v16si)
-              _mm512_undefined_epi32 (),
-              (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
-              (__v16si) __O, __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
-              (__v16si)
-              _mm512_setzero_si512 (),
-              __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcastq_epi64 (__m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
-              (__v8di)
-              _mm512_undefined_pd (),
-              (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
-              (__v8di) __O, __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
-              (__v8di)
-              _mm512_setzero_si512 (),
-              __M);
-}
 
 static __inline __m512i __DEFAULT_FN_ATTRS
 _mm512_maskz_set1_epi32(__mmask16 __M, int __A)
@@ -343,31 +204,6 @@
   return __builtin_shufflevector(__a, __a, 0, 1, 2, 3);
 }
 
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_castpd128_pd512 (__m128d __A)
-{
-  return __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_castps128_ps512 (__m128 __A)
-{
-    return  __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_castsi128_si512 (__m128i __A)
-{
-   return  __builtin_shufflevector( __A, __A, 0, 1, -1, -1, -1, -1, -1, -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_castsi256_si512 (__m256i __A)
-{
-   return  __builtin_shufflevector( __A, __A, 0, 1, 2, 3, -1, -1, -1, -1);
-}
-
 /* Bitwise operators */
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_and_epi32(__m512i __a, __m512i __b)
@@ -1095,24 +931,6 @@
              (__mmask8) -1);
 }
 
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_rsqrt14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) __W,
-          (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_rsqrt14_ss (__mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) _mm_setzero_ps (),
-          (__mmask8) __U);
-}
-
 static  __inline__ __m128d __DEFAULT_FN_ATTRS
 _mm_rsqrt14_sd(__m128d __A, __m128d __B)
 {
@@ -1123,24 +941,6 @@
               (__mmask8) -1);
 }
 
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_rsqrt14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) __W,
-          (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_rsqrt14_sd (__mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_rsqrt14sd_mask ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) _mm_setzero_pd (),
-          (__mmask8) __U);
-}
-
 static  __inline__ __m512d __DEFAULT_FN_ATTRS
 _mm512_rcp14_pd(__m512d __A)
 {
@@ -1168,24 +968,6 @@
                  (__mmask8) -1);
 }
 
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_rcp14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) __W,
-          (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_rcp14_ss (__mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) _mm_setzero_ps (),
-          (__mmask8) __U);
-}
-
 static  __inline__ __m128d __DEFAULT_FN_ATTRS
 _mm_rcp14_sd(__m128d __A, __m128d __B)
 {
@@ -1196,24 +978,6 @@
             (__mmask8) -1);
 }
 
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_rcp14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) __W,
-          (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_rcp14_sd (__mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_rcp14sd_mask ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) _mm_setzero_pd (),
-          (__mmask8) __U);
-}
-
 static __inline __m512 __DEFAULT_FN_ATTRS
 _mm512_floor_ps(__m512 __A)
 {
@@ -2575,40 +2339,12 @@
                                          (I), (__v8di)_mm512_setzero_si512(), \
                                          (__mmask8)-1); })
 
-#define _mm512_mask_alignr_epi64( __W,  __U,  __A, __B, __imm) __extension__({\
-  (__m512i)__builtin_ia32_alignq512_mask ((__v8di) __A,\
-                                         (__v8di) __B, __imm,\
-                                         (__v8di) __W,\
-                                         (__mmask8) __U);\
-})
-
-#define _mm512_maskz_alignr_epi64( __U,  __A,  __B, __imm) __extension__({\
-  (__m512i)__builtin_ia32_alignq512_mask ((__v8di) __A,\
-                                         (__v8di) __B, __imm,\
-                                         (__v8di) _mm512_setzero_si512 (),\
-                                         (__mmask8) __U);\
-})
-
 #define _mm512_alignr_epi32(A, B, I) __extension__ ({ \
-    (__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \
+  (__m512i)__builtin_ia32_alignd512_mask((__v16si)(__m512i)(A), \
                                          (__v16si)(__m512i)(B), \
                                          (I), (__v16si)_mm512_setzero_si512(), \
-                                         (__mmask16)-1);\
-})
-                                         
-#define _mm512_mask_alignr_epi32( __W, __U, __A, __B,  __imm) __extension__ ({\
-    (__m512i) __builtin_ia32_alignd512_mask((__v16si) __A,\
-                                         (__v16si) __B, __imm,\
-                                         (__v16si) __W,\
-                                         (__mmask16) __U);\
-})
+                                         (__mmask16)-1); })
 
-#define _mm512_maskz_alignr_epi32( __U, __A, __B, __imm) __extension__({\
-    (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,\
-                                         (__v16si) __B, __imm,\
-                                         (__v16si) _mm512_setzero_si512 (),\
-                                         (__mmask16) __U);\
-})
 /* Vector Extract */
 
 #define _mm512_extractf64x4_pd(A, I) __extension__ ({                    \
@@ -4182,42 +3918,6 @@
                  (__v2df) __B, (__v2df) _mm_setzero_pd(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);
 }
 
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_getexp_round_sd( __W, __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_getexpsd128_round_mask ((__v2df) __A,\
-          (__v2df) __B,\
-          (__v2df) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_getexpsd128_round_mask ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) _mm_setzero_pd (),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_getexp_round_sd( __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_getexpsd128_round_mask ( (__v2df) __A,\
-          (__v2df) __B,\
-          (__v2df) _mm_setzero_pd (),\
-          (__mmask8) __U,\
-          __R);\
-})
-
 #define _mm_getexp_round_ss( __A, __B, __R) __extension__ ({ \
 __builtin_ia32_getexpss128_round_mask ((__v4sf)( __A),\
                 (__v4sf)( __B), (__v4sf)  _mm_setzero_ps(), (__mmask8) -1,\
@@ -4231,42 +3931,6 @@
                 (__v4sf) __B, (__v4sf)  _mm_setzero_ps(), (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);
 }
 
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_getexp_ss (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_getexp_round_ss( __W, __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_getexpss128_round_mask ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (__v4sf) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_getexp_ss (__mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_getexpss128_round_mask ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) _mm_setzero_pd (),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_getexp_round_ss( __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_getexpss128_round_mask ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (__v4sf) _mm_setzero_ps (),\
-          (__mmask8) __U,\
-          __R);\
-})
-
 #define _mm_getmant_round_sd( __A, __B, __C, __D, __R) __extension__ ({ \
 __builtin_ia32_getmantsd_round_mask ((__v2df)( __A),\
               (__v2df)( __B),\
@@ -4281,42 +3945,6 @@
               _MM_FROUND_CUR_DIRECTION);\
 })
 
-#define _mm_mask_getmant_sd( __W, __U, __A, __B, __C, __D) __extension__ ({\
-__builtin_ia32_getmantsd_round_mask ( (__v2df) __A,\
-          (__v2df) __B,\
-          (( __D) << 2) |( __C),\
-          (__v2df) __W,\
-          (__mmask8) __U,\
-          _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_mask_getmant_round_sd( __W, __U, __A, __B, __C, __D, __R)({\
-__builtin_ia32_getmantsd_round_mask ( (__v2df) __A,\
-          (__v2df) __B,\
-          (( __D) << 2) |( __C),\
-          (__v2df) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-#define _mm_maskz_getmant_sd( __U, __A, __B, __C, __D) __extension__ ({\
-__builtin_ia32_getmantsd_round_mask ( (__v2df) __A,\
-          (__v2df) __B,\
-          (( __D) << 2) |( __C),\
-          (__v2df) _mm_setzero_pd (),\
-          (__mmask8) __U,\
-          _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_maskz_getmant_round_sd( __U, __A, __B, __C, __D, __R) __extension__ ({\
-__builtin_ia32_getmantsd_round_mask ( (__v2df) __A,\
-          (__v2df) __B,\
-          (( __D) << 2) |( __C),\
-          (__v2df) _mm_setzero_pd (),\
-          (__mmask8) __U,\
-          __R);\
-})
-
 #define _mm_getmant_round_ss( __A, __B, __C, __D, __R) __extension__ ({ \
 __builtin_ia32_getmantss_round_mask ((__v4sf)( __A),\
               (__v4sf)( __B),\
@@ -4331,41 +3959,6 @@
               _MM_FROUND_CUR_DIRECTION);\
 })
 
-#define _mm_mask_getmant_ss( __W, __U, __A, __B, __C, __D) __extension__ ({\
-__builtin_ia32_getmantss_round_mask ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (( __D) << 2) |( __C),\
-          (__v4sf) __W,\
-          (__mmask8) __U,\
-          _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_mask_getmant_round_ss( __W, __U, __A, __B, __C, __D, __R)({\
-__builtin_ia32_getmantss_round_mask ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (( __D) << 2) |( __C),\
-          (__v4sf) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-#define _mm_maskz_getmant_ss( __U, __A, __B, __C, __D) __extension__ ({\
-__builtin_ia32_getmantss_round_mask ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (( __D) << 2) |( __C),\
-          (__v4sf) _mm_setzero_pd (),\
-          (__mmask8) __U,\
-          _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_maskz_getmant_round_ss( __U, __A, __B, __C, __D, __R) __extension__ ({\
-__builtin_ia32_getmantss_round_mask ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (( __D) << 2) |( __C),\
-          (__v4sf) _mm_setzero_ps (),\
-          (__mmask8) __U,\
-          __R);\
-})
 
 static __inline__ __mmask16 __DEFAULT_FN_ATTRS
 _mm512_kmov (__mmask16 __A)
@@ -4381,3801 +3974,6 @@
 __builtin_ia32_vcomiss ((__v4sf) (__A), (__v4sf) (__B), ( __P), ( __R));\
 })
 
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_unpackhi_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
-{
-  return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
-                (__v8df) __B,
-                (__v8df) __W,
-                (__mmask8) __U);
-}
-#define _mm_cvt_roundsd_si64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtsd2si64 ((__v2df)( __A),( __R));\
-})
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask2_permutex2var_epi32 (__m512i __A, __m512i __I,
-         __mmask16 __U, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_vpermi2vard512_mask ((__v16si) __A,
-                   (__v16si) __I
-                   /* idx */ ,
-                   (__v16si) __B,
-                   (__mmask16) __U);
-}
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_unpackhi_epi32 (__m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
-                 (__v16si) __B,
-                 (__v16si)
-                 _mm512_setzero_si512 (),
-                 (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_sll_epi32 (__m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si)
-             _mm512_setzero_si512 (),
-             (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_sll_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si) __W,
-             (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_sll_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si)
-             _mm512_setzero_si512 (),
-             (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_sll_epi64 (__m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_sll_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_sll_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_sllv_epi32 (__m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si)
-              _mm512_setzero_si512 (),
-              (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_sllv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si) __W,
-              (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_sllv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si)
-              _mm512_setzero_si512 (),
-              (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_sllv_epi64 (__m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di)
-             _mm512_undefined_pd (),
-             (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_sllv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_sllv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_sra_epi32 (__m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si)
-             _mm512_setzero_si512 (),
-             (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_sra_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si) __W,
-             (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_sra_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si)
-             _mm512_setzero_si512 (),
-             (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_sra_epi64 (__m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_sra_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_sra_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_srav_epi32 (__m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si)
-              _mm512_setzero_si512 (),
-              (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_srav_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si) __W,
-              (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_srav_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si)
-              _mm512_setzero_si512 (),
-              (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_srav_epi64 (__m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_srav_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_srav_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_srl_epi32 (__m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si)
-             _mm512_setzero_si512 (),
-             (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_srl_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si) __W,
-             (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_srl_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
-             (__v4si) __B,
-             (__v16si)
-             _mm512_setzero_si512 (),
-             (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_srl_epi64 (__m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_srl_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_srl_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
-{
-  return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
-             (__v2di) __B,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_srlv_epi32 (__m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si)
-              _mm512_setzero_si512 (),
-              (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_srlv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si) __W,
-              (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_srlv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
-              (__v16si) __Y,
-              (__v16si)
-              _mm512_setzero_si512 (),
-              (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_srlv_epi64 (__m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_srlv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_srlv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
-             (__v8di) __Y,
-             (__v8di)
-             _mm512_setzero_si512 (),
-             (__mmask8) __U);
-}
-
-#define _mm512_ternarylogic_epi32( __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd512_mask ((__v16si)( __A),\
-                 (__v16si)( __B),\
-                 (__v16si)( __C),\
-                ( imm), (__mmask16) -1);\
-})
-
-#define _mm512_mask_ternarylogic_epi32( __A, __U, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd512_mask ((__v16si)( __A),\
-                 (__v16si)( __B),\
-                 (__v16si)( __C),\
-                ( imm), (__mmask16)( __U));\
-})
-
-#define _mm512_maskz_ternarylogic_epi32( __U, __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd512_maskz ((__v16si)( __A),\
-                  (__v16si)( __B),\
-                  (__v16si)( __C),\
-                 ( imm), (__mmask16)( __U));\
-})
-
-#define _mm512_ternarylogic_epi64( __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq512_mask ((__v8di)( __A),\
-                 (__v8di)( __B),\
-                 (__v8di)( __C),( imm),\
-                 (__mmask8) -1);\
-})
-
-#define _mm512_mask_ternarylogic_epi64( __A, __U, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq512_mask ((__v8di)( __A),\
-                 (__v8di)( __B),\
-                 (__v8di)( __C),( imm),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_ternarylogic_epi64( __U, __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq512_maskz ((__v8di)( __A),\
-                  (__v8di)( __B),\
-                  (__v8di)( __C),\
-                 ( imm), (__mmask8)( __U));\
-})
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_unpackhi_pd (__mmask8 __U, __m512d __A, __m512d __B)
-{
-  return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
-                (__v8df) __B,
-                (__v8df)
-                _mm512_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_unpackhi_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
-{
-  return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
-               (__v16sf) __B,
-               (__v16sf) __W,
-               (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B)
-{
-  return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
-               (__v16sf) __B,
-               (__v16sf)
-               _mm512_setzero_ps (),
-               (__mmask16) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_unpacklo_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
-{
-  return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
-                (__v8df) __B,
-                (__v8df) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B)
-{
-  return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
-                (__v8df) __B,
-                (__v8df)
-                _mm512_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_unpacklo_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
-{
-  return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
-               (__v16sf) __B,
-               (__v16sf) __W,
-               (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B)
-{
-  return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
-               (__v16sf) __B,
-               (__v16sf)
-               _mm512_setzero_ps (),
-               (__mmask16) __U);
-}
-
-#define _mm_cvt_roundsd_i64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtsd2si64 ((__v2df)( __A),( __R));\
-})
-
-#define _mm_cvt_roundsd_si32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtsd2si32 ((__v2df)( __A),( __R));\
-})
-
-#define _mm_cvt_roundsd_i32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtsd2si32 ((__v2df)( __A),( __R));\
-})
-
-#define _mm_cvt_roundsd_u32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtsd2usi32 ((__v2df)( __A),( __R));\
-})
-
-static __inline__ unsigned __DEFAULT_FN_ATTRS
-_mm_cvtsd_u32 (__m128d __A)
-{
-  return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A,
-             _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundsd_u64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtsd2usi64 ((__v2df)( __A),( __R));\
-})
-
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-_mm_cvtsd_u64 (__m128d __A)
-{
-  return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df)
-                 __A,
-                 _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundss_si32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtss2si32 ((__v4sf)( __A),( __R));\
-})
-
-#define _mm_cvt_roundss_i32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtss2si32 ((__v4sf)( __A),( __R));\
-})
-
-#define _mm_cvt_roundss_si64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtss2si64 ((__v4sf)( __A),( __R));\
-})
-
-#define _mm_cvt_roundss_i64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtss2si64 ((__v4sf)( __A),( __R));\
-})
-
-#define _mm_cvt_roundss_u32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtss2usi32 ((__v4sf)( __A),( __R));\
-})
-
-static __inline__ unsigned __DEFAULT_FN_ATTRS
-_mm_cvtss_u32 (__m128 __A)
-{
-  return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A,
-             _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundss_u64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvtss2usi64 ((__v4sf)( __A),( __R));\
-})
-
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-_mm_cvtss_u64 (__m128 __A)
-{
-  return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf)
-                 __A,
-                 _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvtt_roundsd_i32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttsd2si32 ((__v2df)( __A),( __R));\
-})
-
-#define _mm_cvtt_roundsd_si32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttsd2si32 ((__v2df)( __A),( __R));\
-})
-
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvttsd_i32 (__m128d __A)
-{
-  return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A,
-              _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvtt_roundsd_si64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttsd2si64 ((__v2df)( __A),( __R));\
-})
-
-#define _mm_cvtt_roundsd_i64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttsd2si64 ((__v2df)( __A),( __R));\
-})
-
-static __inline__ long long __DEFAULT_FN_ATTRS
-_mm_cvttsd_i64 (__m128d __A)
-{
-  return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A,
-              _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvtt_roundsd_u32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttsd2usi32 ((__v2df)( __A),( __R));\
-})
-
-static __inline__ unsigned __DEFAULT_FN_ATTRS
-_mm_cvttsd_u32 (__m128d __A)
-{
-  return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A,
-              _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvtt_roundsd_u64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttsd2usi64 ((__v2df)( __A),( __R));\
-})
-
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-_mm_cvttsd_u64 (__m128d __A)
-{
-  return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df)
-                  __A,
-                  _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvtt_roundss_i32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttss2si32 ((__v4sf)( __A),( __R));\
-})
-
-#define _mm_cvtt_roundss_si32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttss2si32 ((__v4sf)( __A),( __R));\
-})
-
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm_cvttss_i32 (__m128 __A)
-{
-  return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A,
-              _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvtt_roundss_i64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttss2si64 ((__v4sf)( __A),( __R));\
-})
-
-#define _mm_cvtt_roundss_si64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttss2si64 ((__v4sf)( __A),( __R));\
-})
-
-static __inline__ long long __DEFAULT_FN_ATTRS
-_mm_cvttss_i64 (__m128 __A)
-{
-  return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A,
-              _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvtt_roundss_u32( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttss2usi32 ((__v4sf)( __A),( __R));\
-})
-
-static __inline__ unsigned __DEFAULT_FN_ATTRS
-_mm_cvttss_u32 (__m128 __A)
-{
-  return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A,
-              _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvtt_roundss_u64( __A, __R) __extension__ ({ \
-__builtin_ia32_vcvttss2usi64 ((__v4sf)( __A),( __R));\
-})
-
-static __inline__ unsigned long long __DEFAULT_FN_ATTRS
-_mm_cvttss_u64 (__m128 __A)
-{
-  return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf)
-                  __A,
-                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask2_permutex2var_pd (__m512d __A, __m512i __I, __mmask8 __U,
-            __m512d __B)
-{
-  return (__m512d) __builtin_ia32_vpermi2varpd512_mask ((__v8df) __A,
-              (__v8di) __I
-              /* idx */ ,
-              (__v8df) __B,
-              (__mmask8) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask2_permutex2var_ps (__m512 __A, __m512i __I, __mmask16 __U,
-            __m512 __B)
-{
-  return (__m512) __builtin_ia32_vpermi2varps512_mask ((__v16sf) __A,
-                   (__v16si) __I
-                   /* idx */ ,
-                   (__v16sf) __B,
-                   (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask2_permutex2var_epi64 (__m512i __A, __m512i __I,
-         __mmask8 __U, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_vpermi2varq512_mask ((__v8di) __A,
-                   (__v8di) __I
-                   /* idx */ ,
-                   (__v8di) __B,
-                   (__mmask8) __U);
-}
-
-#define _mm512_permute_pd( __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilpd512_mask ((__v8df)( __X),( __C),\
-                 (__v8df)\
-                 _mm512_undefined_pd (),\
-                 (__mmask8) -1);\
-})
-
-#define _mm512_mask_permute_pd( __W, __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilpd512_mask ((__v8df)( __X),( __C),\
-                 (__v8df)( __W),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_permute_pd( __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilpd512_mask ((__v8df)( __X),( __C),\
-                 (__v8df)\
-                 _mm512_setzero_pd (),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm512_permute_ps( __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilps512_mask ((__v16sf)( __X),( __C),\
-                (__v16sf)\
-                _mm512_undefined_ps (),\
-                (__mmask16) -1);\
-})
-
-#define _mm512_mask_permute_ps( __W, __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilps512_mask ((__v16sf)( __X),( __C),\
-                (__v16sf)( __W),\
-                (__mmask16)( __U));\
-})
-
-#define _mm512_maskz_permute_ps( __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilps512_mask ((__v16sf)( __X),( __C),\
-                (__v16sf)\
-                _mm512_setzero_ps (),\
-                (__mmask16)( __U));\
-})
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_permutevar_pd (__m512d __A, __m512i __C)
-{
-  return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
-              (__v8di) __C,
-              (__v8df)
-              _mm512_undefined_pd (),
-              (__mmask8) -1);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_permutevar_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512i __C)
-{
-  return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
-              (__v8di) __C,
-              (__v8df) __W,
-              (__mmask8) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_permutevar_pd (__mmask8 __U, __m512d __A, __m512i __C)
-{
-  return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
-              (__v8di) __C,
-              (__v8df)
-              _mm512_setzero_pd (),
-              (__mmask8) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_permutevar_ps (__m512 __A, __m512i __C)
-{
-  return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
-                   (__v16si) __C,
-                   (__v16sf)
-                   _mm512_undefined_ps (),
-                   (__mmask16) -1);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_permutevar_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512i __C)
-{
-  return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
-                   (__v16si) __C,
-                   (__v16sf) __W,
-                   (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_permutevar_ps (__mmask16 __U, __m512 __A, __m512i __C)
-{
-  return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
-                   (__v16si) __C,
-                   (__v16sf)
-                   _mm512_setzero_ps (),
-                   (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_permutex2var_epi32 (__mmask16 __U, __m512i __A,
-         __m512i __I, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_vpermt2vard512_maskz ((__v16si) __I
-              /* idx */ ,
-              (__v16si) __A,
-              (__v16si) __B,
-              (__mmask16) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_permutex2var_pd (__mmask8 __U, __m512d __A, __m512i __I,
-            __m512d __B)
-{
-  return (__m512d) __builtin_ia32_vpermt2varpd512_maskz ((__v8di) __I
-               /* idx */ ,
-               (__v8df) __A,
-               (__v8df) __B,
-               (__mmask8) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_permutex2var_ps (__mmask16 __U, __m512 __A, __m512i __I,
-            __m512 __B)
-{
-  return (__m512) __builtin_ia32_vpermt2varps512_maskz ((__v16si) __I
-              /* idx */ ,
-              (__v16sf) __A,
-              (__v16sf) __B,
-              (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_permutex2var_epi64 (__mmask8 __U, __m512i __A,
-         __m512i __I, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_vpermt2varq512_maskz ((__v8di) __I
-              /* idx */ ,
-              (__v8di) __A,
-              (__v8di) __B,
-              (__mmask8) __U);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_testn_epi32_mask (__m512i __A, __m512i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
-             (__v16si) __B,
-             (__mmask16) -1);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
-             (__v16si) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm512_testn_epi64_mask (__m512i __A, __m512i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
-            (__v8di) __B,
-            (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
-            (__v8di) __B, __U);
-}
-
-#define _mm512_cvtt_roundpd_epu32( __A, __R) __extension__ ({ \
-__builtin_ia32_cvttpd2udq512_mask ((__v8df)( __A),\
-                  (__v8si)\
-                  _mm256_undefined_si256 (),\
-                  (__mmask8) -1,( __R));\
-})
-
-#define _mm512_mask_cvtt_roundpd_epu32( __W, __U, __A, __R) __extension__ ({ \
-__builtin_ia32_cvttpd2udq512_mask ((__v8df)( __A),\
-                  (__v8si)( __W),\
-                  (__mmask8)( __U),( __R));\
-})
-
-#define _mm512_maskz_cvtt_roundpd_epu32( __U, __A, __R) __extension__ ({ \
-__builtin_ia32_cvttpd2udq512_mask ((__v8df)( __A),\
-                  (__v8si)\
-                  _mm256_setzero_si256 (),\
-                  (__mmask8)( __U),( __R));\
-})
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_cvttpd_epu32 (__m512d __A)
-{
-  return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
-                  (__v8si)
-                  _mm256_undefined_si256 (),
-                  (__mmask8) -1,
-                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
-{
-  return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
-                  (__v8si) __W,
-                  (__mmask8) __U,
-                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A)
-{
-  return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
-                  (__v8si)
-                  _mm256_setzero_si256 (),
-                  (__mmask8) __U,
-                  _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_unpackhi_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
-          __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
-                 (__v16si) __B,
-                 (__v16si) __W,
-                 (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_unpackhi_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
-                 (__v16si) __B,
-                 (__v16si)
-                 _mm512_setzero_si512 (),
-                 (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_unpackhi_epi64 (__m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
-                  (__v8di) __B,
-                  (__v8di)
-                  _mm512_setzero_si512 (),
-                  (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_unpackhi_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
-                  (__v8di) __B,
-                  (__v8di) __W,
-                  (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_unpackhi_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
-                  (__v8di) __B,
-                  (__v8di)
-                  _mm512_setzero_si512 (),
-                  (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_unpacklo_epi32 (__m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
-                 (__v16si) __B,
-                 (__v16si)
-                 _mm512_setzero_si512 (),
-                 (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_unpacklo_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
-          __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
-                 (__v16si) __B,
-                 (__v16si) __W,
-                 (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_unpacklo_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
-                 (__v16si) __B,
-                 (__v16si)
-                 _mm512_setzero_si512 (),
-                 (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_unpacklo_epi64 (__m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
-                  (__v8di) __B,
-                  (__v8di)
-                  _mm512_setzero_si512 (),
-                  (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
-                  (__v8di) __B,
-                  (__v8di) __W,
-                  (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
-                  (__v8di) __B,
-                  (__v8di)
-                  _mm512_setzero_si512 (),
-                  (__mmask8) __U);
-}
-
-#define _mm_roundscale_round_sd( __A, __B, __imm, __R) __extension__ ({ \
-__builtin_ia32_rndscalesd_round_mask ((__v2df)( __A),\
-                (__v2df)( __B), (__v2df) _mm_setzero_pd(),\
-                (__mmask8) -1,( __imm),( __R));\
-})
-
-#define _mm_roundscale_sd( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_rndscalesd_round_mask ((__v2df)( __A),\
-                (__v2df)( __B), (__v2df) _mm_setzero_pd(),\
-                (__mmask8) -1, ( __imm),\
-               _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_mask_roundscale_sd( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_rndscalesd_round_mask ( (__v2df)( __A),\
-                (__v2df)( __B),\
-                (__v2df)( __W),\
-                (__mmask8)( __U),\
-                (__imm),\
-                _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_mask_roundscale_round_sd( __W, __U, __A, __B, __I, __R) __extension__ ({ \
-__builtin_ia32_rndscalesd_round_mask ( (__v2df)( __A),\
-                (__v2df)( __B),\
-                (__v2df)( __W),\
-                (__mmask8)( __U),\
-                __I,\
-                __R);\
-})
-
-#define _mm_maskz_roundscale_sd( __U, __A, __B, __I) __extension__ ({ \
-__builtin_ia32_rndscalesd_round_mask ( (__v2df)( __A),\
-                 (__v2df)( __B),\
-                (__v2df) _mm_setzero_pd (),\
-                (__mmask8)( __U),\
-                __I,\
-                _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_maskz_roundscale_round_sd( __U, __A, __B, __I, __R) __extension__ ({ \
-__builtin_ia32_rndscalesd_round_mask ( (__v2df)( __A),\
-                 (__v2df)( __B),\
-                (__v2df) _mm_setzero_pd (),\
-                (__mmask8)( __U),\
-                __I,\
-                __R);\
-})
-
-#define _mm_roundscale_round_ss( __A, __B, __imm, __R) __extension__ ({ \
-__builtin_ia32_rndscaless_round_mask ((__v4sf)( __A),\
-               (__v4sf)( __B),  (__v4sf) _mm_setzero_ps(),\
-                (__mmask8) -1, __imm, __R);\
-})
-
-#define _mm_roundscale_ss( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_rndscaless_round_mask ((__v4sf)( __A),\
-               (__v4sf)( __B), (__v4sf) _mm_setzero_ps(),\
-                (__mmask8) -1, ( __imm),\
-               _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_mask_roundscale_ss( __W, __U, __A, __B, __I) __extension__ ({ \
-__builtin_ia32_rndscaless_round_mask ( (__v4sf) ( __A),\
-                 (__v4sf)( __B),\
-                 (__v4sf)( __W),\
-                 (__mmask8)( __U),\
-                 __I,\
-                 _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_mask_roundscale_round_ss( __W, __U, __A, __B, __I, __R) __extension__ ({ \
-__builtin_ia32_rndscaless_round_mask ( (__v4sf)( __A),\
-                (__v4sf)( __B),\
-                (__v4sf)( __W),\
-                (__mmask8)( __U),\
-                __I,\
-                __R);\
-})
-
-#define _mm_maskz_roundscale_ss( __U, __A, __B, __I) __extension__ ({ \
-__builtin_ia32_rndscaless_round_mask ( (__v4sf)( __A),\
-                 (__v4sf)( __B),\
-                (__v4sf) _mm_setzero_ps (),\
-                (__mmask8)( __U),\
-                __I,\
-                _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_maskz_roundscale_round_ss( __U, __A, __B, __I, __R) __extension__ ({ \
-__builtin_ia32_rndscaless_round_mask ( (__v4sf)( __A),\
-                 (__v4sf)( __B),\
-                (__v4sf) _mm_setzero_ps (),\
-                (__mmask8)( __U),\
-                __I,\
-                __R);\
-})
-
-#define _mm512_scalef_round_pd( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefpd512_mask ((__v8df)( __A),\
-                (__v8df)( __B),\
-                (__v8df)\
-                _mm512_undefined_pd (),\
-                (__mmask8) -1,( __R));\
-})
-
-#define _mm512_mask_scalef_round_pd( __W, __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefpd512_mask ((__v8df)( __A),\
-                (__v8df)( __B),\
-                (__v8df)( __W),\
-                (__mmask8)( __U),( __R));\
-})
-
-#define _mm512_maskz_scalef_round_pd( __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefpd512_mask ((__v8df)( __A),\
-                (__v8df)( __B),\
-                (__v8df)\
-                _mm512_setzero_pd (),\
-                (__mmask8)( __U),( __R));\
-})
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_scalef_pd (__m512d __A, __m512d __B)
-{
-  return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
-                (__v8df) __B,
-                (__v8df)
-                _mm512_undefined_pd (),
-                (__mmask8) -1,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
-{
-  return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
-                (__v8df) __B,
-                (__v8df) __W,
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B)
-{
-  return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
-                (__v8df) __B,
-                (__v8df)
-                _mm512_setzero_pd (),
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_scalef_round_ps( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefps512_mask ((__v16sf)( __A),\
-               (__v16sf)( __B),\
-               (__v16sf)\
-               _mm512_undefined_ps (),\
-               (__mmask16) -1,( __R));\
-})
-
-#define _mm512_mask_scalef_round_ps( __W, __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefps512_mask ((__v16sf)( __A),\
-               (__v16sf)( __B),\
-               (__v16sf)( __W),\
-               (__mmask16)( __U),( __R));\
-})
-
-#define _mm512_maskz_scalef_round_ps( __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefps512_mask ((__v16sf)( __A),\
-               (__v16sf)( __B),\
-               (__v16sf)\
-               _mm512_setzero_ps (),\
-               (__mmask16)( __U),( __R));\
-})
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_scalef_ps (__m512 __A, __m512 __B)
-{
-  return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
-               (__v16sf) __B,
-               (__v16sf)
-               _mm512_undefined_ps (),
-               (__mmask16) -1,
-               _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
-{
-  return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
-               (__v16sf) __B,
-               (__v16sf) __W,
-               (__mmask16) __U,
-               _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B)
-{
-  return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
-               (__v16sf) __B,
-               (__v16sf)
-               _mm512_setzero_ps (),
-               (__mmask16) __U,
-               _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_scalef_round_sd( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefsd_round_mask ((__v2df)( __A),\
-              (__v2df)( __B), (__v2df) _mm_setzero_pd(),\
-              (__mmask8) -1,\
-              ( __R));\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_scalef_sd (__m128d __A, __m128d __B)
-{
-  return (__m128d) __builtin_ia32_scalefsd_round_mask ((__v2df) __A,
-              (__v2df)( __B), (__v2df) _mm_setzero_pd(),
-              (__mmask8) -1,
-              _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_scalef_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A,
-                 (__v2df) __B,
-                (__v2df) __W,
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_scalef_round_sd( __W, __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefsd_round_mask ((__v2df)( __A),\
-              (__v2df)( __B), (__v2df) __W,\
-              (__mmask8) __U,\
-              ( __R));\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_scalef_sd (__mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_scalefsd_round_mask ( (__v2df) __A,
-                 (__v2df) __B,
-                (__v2df) _mm_setzero_pd (),
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_scalef_round_sd( __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefsd_round_mask ((__v2df)( __A),\
-              (__v2df)( __B), (__v2df) _mm_setzero_pd (),\
-              (__mmask8) __U,\
-              ( __R));\
-})
-
-#define _mm_scalef_round_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefss_round_mask ((__v4sf)( __A),\
-             (__v4sf)( __B), (__v4sf) _mm_setzero_ps(),\
-             (__mmask8) -1,\
-             ( __R));\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_scalef_ss (__m128 __A, __m128 __B)
-{
-  return (__m128) __builtin_ia32_scalefss_round_mask ((__v4sf) __A,
-             (__v4sf)( __B), (__v4sf) _mm_setzero_ps(),
-             (__mmask8) -1,
-             _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_scalef_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A,
-                (__v4sf) __B,
-                (__v4sf) __W,
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_scalef_round_ss( __W, __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefss_round_mask ((__v4sf)( __A),\
-             (__v4sf)( __B), (__v4sf) __W,\
-             (__mmask8) __U,\
-             ( __R));\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_scalef_ss (__mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_scalefss_round_mask ( (__v4sf) __A,
-                 (__v4sf) __B,
-                (__v4sf) _mm_setzero_ps (),
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_scalef_round_ss( __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_scalefss_round_mask ((__v4sf)( __A),\
-             (__v4sf)( __B), (__v4sf) _mm_setzero_ps(),\
-             (__mmask8) __U,\
-             _MM_FROUND_CUR_DIRECTION);\
-})
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_srai_epi32 (__m512i __A, unsigned int __B)
-{
-  return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
-              (__v16si)
-              _mm512_setzero_si512 (),
-              (__mmask16) -1);
-}
-
-#define _mm512_mask_srai_epi32( __W, __U, __A, __B) __extension__ ({ \
-__builtin_ia32_psradi512_mask ((__v16si)( __A),( __B),\
-              (__v16si)( __W),\
-              (__mmask16)( __U));\
-})
-
-#define _mm512_maskz_srai_epi32( __U, __A, __B) __extension__ ({ \
-__builtin_ia32_psradi512_mask ((__v16si)( __A),( __B),\
-              (__v16si)\
-              _mm512_setzero_si512 (),\
-              (__mmask16)( __U));\
-})
-
-#define _mm512_srai_epi64( __A, __B) __extension__ ({ \
-__builtin_ia32_psraqi512_mask ((__v8di)( __A),( __B),\
-              (__v8di)\
-              _mm512_setzero_si512 (),\
-              (__mmask8) -1);\
-})
-
-#define _mm512_mask_srai_epi64( __W, __U, __A, __B) __extension__ ({ \
-__builtin_ia32_psraqi512_mask ((__v8di)( __A),( __B),\
-              (__v8di)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_srai_epi64( __U, __A, __B) __extension__ ({ \
-__builtin_ia32_psraqi512_mask ((__v8di)( __A),( __B),\
-              (__v8di)\
-              _mm512_setzero_si512 (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm512_shuffle_f32x4( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f32x4_mask ((__v16sf)( __A),\
-              (__v16sf)( __B),( __imm),\
-              (__v16sf)\
-              _mm512_undefined_ps (),\
-              (__mmask16) -1);\
-})
-
-#define _mm512_mask_shuffle_f32x4( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f32x4_mask ((__v16sf)( __A),\
-              (__v16sf)( __B),( __imm),\
-              (__v16sf)( __W),\
-              (__mmask16)( __U));\
-})
-
-#define _mm512_maskz_shuffle_f32x4( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f32x4_mask ((__v16sf)( __A),\
-              (__v16sf)( __B),( __imm),\
-              (__v16sf)\
-              _mm512_setzero_ps (),\
-              (__mmask16)( __U));\
-})
-
-#define _mm512_shuffle_f64x2( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f64x2_mask ((__v8df)( __A),\
-               (__v8df)( __B),( __imm),\
-               (__v8df)\
-               _mm512_undefined_pd (),\
-               (__mmask8) -1);\
-})
-
-#define _mm512_mask_shuffle_f64x2( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f64x2_mask ((__v8df)( __A),\
-               (__v8df)( __B),( __imm),\
-               (__v8df)( __W),\
-               (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_shuffle_f64x2( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f64x2_mask ((__v8df)( __A),\
-               (__v8df)( __B),( __imm),\
-               (__v8df)\
-               _mm512_setzero_pd (),\
-               (__mmask8)( __U));\
-})
-
-#define _mm512_shuffle_i32x4( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i32x4_mask ((__v16si)( __A),\
-               (__v16si)( __B),\
-              ( __imm),\
-               (__v16si)\
-               _mm512_setzero_si512 (),\
-               (__mmask16) -1);\
-})
-
-#define _mm512_mask_shuffle_i32x4( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i32x4_mask ((__v16si)( __A),\
-               (__v16si)( __B),\
-              ( __imm),\
-               (__v16si)( __W),\
-               (__mmask16)( __U));\
-})
-
-#define _mm512_maskz_shuffle_i32x4( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i32x4_mask ((__v16si)( __A),\
-               (__v16si)( __B),\
-              ( __imm),\
-               (__v16si)\
-               _mm512_setzero_si512 (),\
-               (__mmask16)( __U));\
-})
-
-#define _mm512_shuffle_i64x2( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i64x2_mask ((__v8di)( __A),\
-               (__v8di)( __B),( __imm),\
-               (__v8di)\
-               _mm512_setzero_si512 (),\
-               (__mmask8) -1);\
-})
-
-#define _mm512_mask_shuffle_i64x2( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i64x2_mask ((__v8di)( __A),\
-               (__v8di)( __B),( __imm),\
-               (__v8di)( __W),\
-               (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_shuffle_i64x2( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i64x2_mask ((__v8di)( __A),\
-               (__v8di)( __B),( __imm),\
-               (__v8di)\
-               _mm512_setzero_si512 (),\
-               (__mmask8)( __U));\
-})
-
-#define _mm512_shuffle_pd( __M, __V, __imm) __extension__ ({ \
-__builtin_ia32_shufpd512_mask ((__v8df)( __M),\
-              (__v8df)( __V),( __imm),\
-              (__v8df)\
-              _mm512_undefined_pd (),\
-              (__mmask8) -1);\
-})
-
-#define _mm512_mask_shuffle_pd( __W, __U, __M, __V, __imm) __extension__ ({ \
-__builtin_ia32_shufpd512_mask ((__v8df)( __M),\
-              (__v8df)( __V),( __imm),\
-              (__v8df)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_shuffle_pd( __U, __M, __V, __imm) __extension__ ({ \
-__builtin_ia32_shufpd512_mask ((__v8df)( __M),\
-              (__v8df)( __V),( __imm),\
-              (__v8df)\
-              _mm512_setzero_pd (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm512_shuffle_ps( __M, __V, __imm) __extension__ ({ \
-__builtin_ia32_shufps512_mask ((__v16sf)( __M),\
-             (__v16sf)( __V),( __imm),\
-             (__v16sf)\
-             _mm512_undefined_ps (),\
-             (__mmask16) -1);\
-})
-
-#define _mm512_mask_shuffle_ps( __W, __U, __M, __V, __imm) __extension__ ({ \
-__builtin_ia32_shufps512_mask ((__v16sf)( __M),\
-             (__v16sf)( __V),( __imm),\
-             (__v16sf)( __W),\
-             (__mmask16)( __U));\
-})
-
-#define _mm512_maskz_shuffle_ps( __U, __M, __V, __imm) __extension__ ({ \
-__builtin_ia32_shufps512_mask ((__v16sf)( __M),\
-             (__v16sf)( __V),( __imm),\
-             (__v16sf)\
-             _mm512_setzero_ps (),\
-             (__mmask16)( __U));\
-})
-
-#define _mm_sqrt_round_sd( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_sqrtsd_round_mask ((__v2df)( __B),\
-            (__v2df)( __A),(__v2df) _mm_setzero_pd(),\
-            (__mmask8) -1,\
-           ( __R));\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_sqrt_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __B,
-                 (__v2df) __A,
-                (__v2df) __W,
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_sqrt_round_sd( __W, __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_sqrtsd_round_mask ((__v2df)( __B),\
-            (__v2df)( __A),(__v2df) __W,\
-            (__mmask8) __U,\
-            ( __R));\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_sqrt_sd (__mmask8 __U, __m128d __A, __m128d __B) 
-{
- return (__m128d) __builtin_ia32_sqrtsd_round_mask ( (__v2df) __B,
-                 (__v2df) __A,
-                (__v2df) _mm_setzero_pd (),
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_sqrt_round_sd( __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_sqrtsd_round_mask ((__v2df)( __B),\
-            (__v2df)( __A),(__v2df) _mm_setzero_pd(),\
-            (__mmask8) __U,\
-            ( __R));\
-})
-
-#define _mm_sqrt_round_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_sqrtss_round_mask ((__v4sf)( __B),\
-                 (__v4sf)( __A),(__v4sf) _mm_setzero_ps(),\
-                 (__mmask8) -1,\
-                 ( __R));\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_sqrt_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __B,
-                 (__v4sf) __A,
-                (__v4sf) __W,
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_sqrt_round_ss( __W, __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_sqrtss_round_mask ((__v4sf)( __B),\
-                 (__v4sf)( __A),(__v4sf) __W,\
-                 (__mmask8) __U,\
-                 ( __R));\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_sqrt_ss (__mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_sqrtss_round_mask ( (__v4sf) __A,
-                 (__v4sf) __B,
-                (__v4sf) _mm_setzero_ps (),
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_sqrt_round_ss( __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_sqrtss_round_mask ((__v4sf)( __B),\
-                 (__v4sf)( __A),(__v4sf) _mm_setzero_ps(),\
-                 (__mmask8) __U,\
-                 __R);\
-})
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_broadcast_f32x4 (__m128 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
-                 (__v16sf)
-                 _mm512_undefined_ps (),
-                 (__mmask16) -1);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_f32x4 (__m512 __O, __mmask16 __M, __m128 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
-                 (__v16sf) __O,
-                 __M);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_f32x4 (__mmask16 __M, __m128 __A)
-{
-  return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
-                 (__v16sf)
-                 _mm512_setzero_ps (),
-                 __M);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_broadcast_f64x4 (__m256d __A)
-{
-  return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
-                  (__v8df)
-                  _mm512_undefined_pd (),
-                  (__mmask8) -1);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_f64x4 (__m512d __O, __mmask8 __M, __m256d __A)
-{
-  return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
-                  (__v8df) __O,
-                  __M);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_f64x4 (__mmask8 __M, __m256d __A)
-{
-  return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
-                  (__v8df)
-                  _mm512_setzero_pd (),
-                  __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcast_i32x4 (__m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
-                  (__v16si)
-                  _mm512_undefined_epi32 (),
-                  (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_i32x4 (__m512i __O, __mmask16 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
-                  (__v16si) __O,
-                  __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_i32x4 (__mmask16 __M, __m128i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
-                  (__v16si)
-                  _mm512_setzero_si512 (),
-                  __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_broadcast_i64x4 (__m256i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
-                  (__v8di)
-                  _mm512_undefined_epi32 (),
-                  (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_broadcast_i64x4 (__m512i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
-                  (__v8di) __O,
-                  __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcast_i64x4 (__mmask8 __M, __m256i __A)
-{
-  return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
-                  (__v8di)
-                  _mm512_setzero_si512 (),
-                  __M);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A)
-{
-  return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
-              (__v8df) __O, __M);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
-{
-  return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
-              (__v8df)
-              _mm512_setzero_pd (),
-              __M);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A)
-{
-  return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
-             (__v16sf) __O, __M);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A)
-{
-  return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
-             (__v16sf)
-             _mm512_setzero_ps (),
-             __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtsepi32_epi8 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
-               (__v16qi) _mm_undefined_si128 (),
-               (__mmask16) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
-               (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
-               (__v16qi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
-{
-  __builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_cvtsepi32_epi16 (__m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
-               (__v16hi) _mm256_undefined_si256 (),
-               (__mmask16) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
-               (__v16hi) __O, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
-               (__v16hi) _mm256_setzero_si256 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
-{
-  __builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtsepi64_epi8 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
-               (__v16qi) _mm_undefined_si128 (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
-               (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
-               (__v16qi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovsqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_cvtsepi64_epi32 (__m512i __A)
-{
-  __v8si __O;
-  return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
-               (__v8si) _mm256_undefined_si256 (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
-               (__v8si) __O, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
-               (__v8si) _mm256_setzero_si256 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtsepi64_epi16 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
-               (__v8hi) _mm_undefined_si128 (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
-               (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
-               (__v8hi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtusepi32_epi8 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
-                (__v16qi) _mm_undefined_si128 (),
-                (__mmask16) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
-                (__v16qi) __O,
-                __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
-                (__v16qi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
-{
-  __builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_cvtusepi32_epi16 (__m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
-                (__v16hi) _mm256_undefined_si256 (),
-                (__mmask16) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
-                (__v16hi) __O,
-                __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
-                (__v16hi) _mm256_setzero_si256 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
-{
-  __builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtusepi64_epi8 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
-                (__v16qi) _mm_undefined_si128 (),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
-                (__v16qi) __O,
-                __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
-                (__v16qi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovusqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_cvtusepi64_epi32 (__m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
-                (__v8si) _mm256_undefined_si256 (),
-                (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
-                (__v8si) __O, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
-                (__v8si) _mm256_setzero_si256 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtusepi64_epi16 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
-                (__v8hi) _mm_undefined_si128 (),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
-                (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
-                (__v8hi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtepi32_epi8 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
-              (__v16qi) _mm_undefined_si128 (),
-              (__mmask16) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
-              (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
-              (__v16qi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
-{
-  __builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_cvtepi32_epi16 (__m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
-              (__v16hi) _mm256_undefined_si256 (),
-              (__mmask16) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
-              (__v16hi) __O, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
-              (__v16hi) _mm256_setzero_si256 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A)
-{
-  __builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtepi64_epi8 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
-              (__v16qi) _mm_undefined_si128 (),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
-              (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
-              (__v16qi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovqb512mem_mask ((__v16qi *) __P, (__v8di) __A, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_cvtepi64_epi32 (__m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
-              (__v8si) _mm256_undefined_si256 (),
-              (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
-              (__v8si) __O, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A)
-{
-  return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
-              (__v8si) _mm256_setzero_si256 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_cvtepi64_epi16 (__m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
-              (__v8hi) _mm_undefined_si128 (),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
-              (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
-              (__v8hi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
-{
-  __builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
-}
-
-#define _mm512_extracti32x4_epi32( __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x4_mask ((__v16si)( __A),\
-                 (__imm),\
-                 (__v4si) _mm_undefined_si128 (),\
-                 (__mmask8) -1);\
-})
-
-#define _mm512_mask_extracti32x4_epi32( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x4_mask ((__v16si)( __A),\
-                 ( __imm),\
-                 (__v4si)( __W),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_extracti32x4_epi32( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x4_mask ((__v16si)( __A),\
-                 ( __imm),\
-                 (__v4si) _mm_setzero_si128 (),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm512_extracti64x4_epi64( __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x4_mask ((__v8di)( __A),\
-                 ( __imm),\
-                 (__v4di) _mm256_undefined_si256 (),\
-                 (__mmask8) -1);\
-})
-
-#define _mm512_mask_extracti64x4_epi64( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x4_mask ((__v8di)( __A),\
-                 ( __imm),\
-                 (__v4di)( __W),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_extracti64x4_epi64( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x4_mask ((__v8di)( __A),\
-                 ( __imm),\
-                 (__v4di) _mm256_setzero_si256 (),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm512_insertf64x4( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x4_mask ((__v8df)( __A),\
-                (__v4df)( __B),\
-                ( __imm),\
-                (__v8df) _mm512_undefined_pd (),\
-                (__mmask8) -1);\
-})
-
-#define _mm512_mask_insertf64x4( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x4_mask ((__v8df)( __A),\
-                (__v4df)( __B),\
-                ( __imm),\
-                (__v8df)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_insertf64x4( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x4_mask ((__v8df)( __A),\
-                (__v4df)( __B),\
-                ( __imm),\
-                (__v8df) _mm512_setzero_pd (),\
-                (__mmask8)( __U));\
-})
-
-#define _mm512_inserti64x4( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x4_mask ((__v8di)( __A),\
-                (__v4di)( __B),\
-                ( __imm),\
-                (__v8di) _mm512_setzero_si512 (),\
-                (__mmask8) -1);\
-})
-
-#define _mm512_mask_inserti64x4( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x4_mask ((__v8di)( __A),\
-                (__v4di)( __B),\
-                ( __imm),\
-                (__v8di)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_inserti64x4( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x4_mask ((__v8di)( __A),\
-                (__v4di)( __B),\
-                ( __imm),\
-                (__v8di) _mm512_setzero_si512 (),\
-                (__mmask8)( __U));\
-})
-
-#define _mm512_getmant_round_pd( __A, __B, __C, __R) __extension__ ({ \
-__builtin_ia32_getmantpd512_mask ((__v8df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v8df) _mm512_undefined_pd (),\
-                 (__mmask8) -1,( __R));\
-})
-
-#define _mm512_mask_getmant_round_pd( __W, __U, __A, __B, __C, __R) __extension__ ({ \
-__builtin_ia32_getmantpd512_mask ((__v8df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v8df)( __W),(__mmask8)( __U),\
-                 ( __R));\
-})
-
-#define _mm512_maskz_getmant_round_pd( __U, __A, __B, __C, __R) __extension__ ({ \
-__builtin_ia32_getmantpd512_mask ((__v8df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v8df) _mm512_setzero_pd (),\
-                 (__mmask8)( __U),( __R));\
-})
-
-#define _mm512_getmant_pd( __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantpd512_mask ((__v8df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v8df) _mm512_setzero_pd (),\
-                 (__mmask8) -1, _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm512_mask_getmant_pd( __W, __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantpd512_mask ((__v8df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v8df)( __W), (__mmask8)( __U), _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm512_maskz_getmant_pd( __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantpd512_mask ((__v8df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v8df) _mm512_setzero_pd (),\
-                 (__mmask8)( __U), _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm512_getmant_round_ps( __A, __B, __C, __R) __extension__ ({ \
-__builtin_ia32_getmantps512_mask ((__v16sf)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v16sf) _mm512_undefined_ps (),\
-                 (__mmask16) -1,( __R));\
-})
-
-#define _mm512_mask_getmant_round_ps( __W, __U, __A, __B, __C, __R) __extension__ ({ \
-__builtin_ia32_getmantps512_mask ((__v16sf)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v16sf)( __W),(__mmask16)( __U),\
-                 ( __R));\
-})
-
-#define _mm512_maskz_getmant_round_ps( __U, __A, __B, __C, __R) __extension__ ({ \
-__builtin_ia32_getmantps512_mask ((__v16sf)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v16sf) _mm512_setzero_ps (),\
-                 ( __U),( __R));\
-})
-
-#define _mm512_getmant_ps( __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps512_mask ((__v16sf)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v16sf) _mm512_undefined_ps (),\
-                 (__mmask16) -1, _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm512_mask_getmant_ps( __W, __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps512_mask ((__v16sf)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v16sf)( __W),(__mmask16) ( __U),\
-                 _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm512_maskz_getmant_ps( __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps512_mask ((__v16sf)( __A),\
-                (__C << 2) |( __B),\
-                (__v16sf) _mm512_setzero_ps (),\
-                (__mmask16)( __U),_MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm512_getexp_round_pd( __A, __R) __extension__ ({ \
-__builtin_ia32_getexppd512_mask ((__v8df)( __A),\
-                (__v8df) _mm512_undefined_pd (),\
-                (__mmask8) -1,( __R));\
-})
-
-#define _mm512_mask_getexp_round_pd( __W, __U, __A, __R) __extension__ ({ \
-__builtin_ia32_getexppd512_mask ((__v8df)( __A),\
-                (__v8df)( __W),\
-                (__mmask8)( __U),( __R));\
-})
-
-#define _mm512_maskz_getexp_round_pd( __U, __A, __R) __extension__ ({ \
-__builtin_ia32_getexppd512_mask ((__v8df)( __A),\
-                (__v8df) _mm512_setzero_pd (),\
-                (__mmask8)( __U),( __R));\
-})
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_getexp_pd (__m512d __A)
-{
-  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
-                (__v8df) _mm512_undefined_pd (),
-                (__mmask8) -1,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A)
-{
-  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
-                (__v8df) __W,
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_getexp_pd (__mmask8 __U, __m512d __A)
-{
-  return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
-                (__v8df) _mm512_setzero_pd (),
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_getexp_round_ps( __A, __R) __extension__ ({ \
-__builtin_ia32_getexpps512_mask ((__v16sf)( __A),\
-               (__v16sf) _mm512_undefined_ps (),\
-               (__mmask16) -1,( __R));\
-})
-
-#define _mm512_mask_getexp_round_ps( __W, __U, __A, __R) __extension__ ({ \
-__builtin_ia32_getexpps512_mask ((__v16sf)( __A),\
-               (__v16sf)( __W),\
-               (__mmask16)( __U),( __R));\
-})
-
-#define _mm512_maskz_getexp_round_ps( __U, __A, __R) __extension__ ({ \
-__builtin_ia32_getexpps512_mask ((__v16sf)( __A),\
-               (__v16sf) _mm512_setzero_ps (),\
-               (__mmask16)( __U),( __R));\
-})
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_getexp_ps (__m512 __A)
-{
-  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
-               (__v16sf) _mm512_undefined_ps (),
-               (__mmask16) -1,
-               _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
-               (__v16sf) __W,
-               (__mmask16) __U,
-               _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_getexp_ps (__mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
-               (__v16sf) _mm512_setzero_ps (),
-               (__mmask16) __U,
-               _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm512_i64gather_ps( __index, __addr, __scale) __extension__ ({ \
-__builtin_ia32_gatherdiv16sf ((__v8sf) _mm256_undefined_ps (),\
-                              __addr, (__v8di) __index, (__mmask8) -1, __scale);\
-})
-
-#define _mm512_mask_i64gather_ps( __v1_old, __mask, __index,\
-                                  __addr, __scale) __extension__({\
-__builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,\
-                              __addr,(__v8di) __index, __mask, __scale);\
-})
-
-#define _mm512_i64gather_epi32(__index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gatherdiv16si ((__v8si) _mm256_undefined_ps (),\
-                              __addr, (__v8di) __index, (__mmask8) -1 , __scale);\
-})
-
-#define _mm512_mask_i64gather_epi32( __v1_old,  __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gatherdiv16si ((__v8si) __v1_old,\
-                              __addr, (__v8di) __index, __mask , __scale);\
-})
-
-#define _mm512_i64gather_pd(__index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gatherdiv8df ((__v8df) _mm512_undefined_pd(),\
-                              __addr, (__v8di) __index, (__mmask8) -1 , __scale);\
-})
-
-#define _mm512_mask_i64gather_pd( __v1_old,  __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gatherdiv8df ((__v8df) __v1_old,\
-                              __addr, (__v8di) __index, __mask , __scale);\
-})
-
-#define _mm512_i64gather_epi64(__index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gatherdiv8di ((__v8di) _mm512_undefined_pd(),\
-                              __addr, (__v8di) __index, (__mmask8) -1 , __scale);\
-})
-
-#define _mm512_mask_i64gather_epi64( __v1_old,  __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gatherdiv8di ((__v8di) __v1_old,\
-                              __addr, (__v8di) __index, __mask , __scale);\
-})
-
-#define _mm512_i32gather_ps(__index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gathersiv16sf ((__v16sf) _mm512_undefined_ps(),\
-                              __addr, (__v16si) __index, (__mmask8) -1 , __scale);\
-})
-
-#define _mm512_mask_i32gather_ps( __v1_old,  __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,\
-                              __addr, (__v16si) __index, __mask , __scale);\
-})
-
-#define _mm512_i32gather_epi32(__index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gathersiv16si ((__v16sf) _mm512_undefined_epi32(),\
-                              __addr, (__v16si) __index, (__mmask8) -1 , __scale);\
-})
-
-#define _mm512_mask_i32gather_epi32( __v1_old,  __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gathersiv16si ((__v16sf) __v1_old,\
-                              __addr, (__v16si) __index, __mask , __scale);\
-})
-
-#define _mm512_i32gather_pd(__index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gathersiv8df ((__v8df) _mm512_undefined_pd(),\
-                              __addr, (__v8si) __index, (__mmask8) -1 , __scale);\
-})
-
-#define _mm512_mask_i32gather_pd( __v1_old,  __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gathersiv8df ((__v8df) __v1_old,\
-                              __addr, (__v8si) __index, __mask , __scale);\
-})
-
-#define _mm512_i32gather_epi64(__index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gathersiv8di ((__v8di) _mm512_undefined_epi32(),\
-                              __addr, (__v8si) __index, (__mmask8) -1 , __scale);\
-})
-
-#define _mm512_mask_i32gather_epi64( __v1_old,  __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gathersiv8di ((__v8di) __v1_old,\
-                              __addr, (__v8si) __index, __mask , __scale);\
-})
-
-#define _mm512_i64scatter_ps(__addr,__index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scatterdiv16sf(__addr, (__mmask8) -1,\
-                             (__v8di) __index, (__v8sf) __v1, __scale);\
-})
-
-#define _mm512_mask_i64scatter_ps(__addr, __mask,__index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scatterdiv16sf(__addr, __mask,\
-                             (__v8di) __index, (__v8sf) __v1, __scale);\
-})
-
-#define _mm512_i64scatter_epi32(__addr, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scatterdiv16si (__addr, (__mmask8) -1,\
-                              (__v8di) __index, (__v8si) __v1, __scale);\
-})
-
-#define _mm512_mask_i64scatter_epi32(__addr, __mask, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scatterdiv16si (__addr, __mask, (__v8di) __index,\
-                              (__v8si) __v1, __scale);\
-})
-
-#define _mm512_i64scatter_pd( __addr, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scatterdiv8df (__addr, (__mmask8) -1,\
-                             (__v8di) __index, (__v8df) __v1, __scale);\
-})
-
-#define _mm512_mask_i64scatter_pd( __addr, __mask, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scatterdiv8df (__addr, __mask, (__v8di) __index,\
-                             (__v8df) __v1, __scale);\
-})
-
-#define _mm512_i64scatter_epi64( __addr, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scatterdiv8di (__addr, (__mmask8) -1,\
-                             (__v8di) __index, (__v8di) __v1, __scale);\
-})
-
-#define _mm512_mask_i64scatter_epi64( __addr, __mask, __index,  __v1,  __scale) __extension__ ({\
-__builtin_ia32_scatterdiv8di(__addr, __mask, (__v8di) __index,\
-                            (__v8di) __v1, __scale);\
-})
-
-#define _mm512_i32scatter_ps( __addr, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scattersiv16sf (__addr, (__mmask16) -1,\
-                              (__v16si) __index, (__v16sf) __v1, __scale);\
-})
-
-#define _mm512_mask_i32scatter_ps( __addr, __mask, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scattersiv16sf (__addr, __mask, (__v16si) __index,\
-                              (__v16sf) __v1, __scale);\
-})
-
-#define _mm512_i32scatter_epi32( __addr, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scattersiv16si (__addr, (__mmask16) -1,\
-                              (__v16si) __index, (__v16si) __v1, __scale);\
-})
-
-#define _mm512_mask_i32scatter_epi32( __addr, __mask, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scattersiv16si (__addr, __mask, (__v16si) __index,\
-                              (__v16si) __v1, __scale);\
-})
-
-#define _mm512_i32scatter_pd( __addr, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scattersiv8df (__addr, (__mmask8) -1,\
-                             (__v8si) __index, (__v8df) __v1, __scale);\
-})
-
-#define _mm512_mask_i32scatter_pd( __addr, __mask, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scattersiv8df (__addr, __mask, (__v8si) __index,\
-                             (__v8df) __v1, __scale);\
-})
-
-#define _mm512_i32scatter_epi64( __addr, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scattersiv8di (__addr, (__mmask8) -1,\
-                             (__v8si) __index, (__v8di) __v1, __scale);\
-})
-
-#define _mm512_mask_i32scatter_epi64( __addr, __mask, __index, __v1, __scale) __extension__ ({\
-__builtin_ia32_scattersiv8di (__addr, __mask, (__v8si) __index,\
-                             (__v8di) __v1, __scale);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_fmadd_round_ss( __W, __U, __A, __B, __R) __extension__({\
-__builtin_ia32_vfmaddss3_mask ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (__v4sf) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_fmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) __C,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fmadd_round_ss( __U, __A, __B, __C, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_maskz ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (__v4sf) __C,\
-          (__mmask8) __U,\
-          _MM_FROUND_CUR_DIRECTION);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask3_fmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
-          (__v4sf) __X,
-          (__v4sf) __Y,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fmadd_round_ss( __W, __X, __Y, __U, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,\
-          (__v4sf) __X,\
-          (__v4sf) __Y,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __A,
-          (__v4sf) -(__B),
-          (__v4sf) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_fmsub_round_ss( __W, __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_mask ((__v4sf) __A,\
-          (__v4sf) -(__B),\
-          (__v4sf) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_fmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __A,
-          (__v4sf) __B,
-          (__v4sf) -(__C),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fmsub_round_ss( __U, __A, __B, __C, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_maskz ((__v4sf) __A,\
-          (__v4sf) __B,\
-          (__v4sf) -(__C),\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask3_fmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
-          (__v4sf) __X,
-          (__v4sf) -(__Y),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fmsub_round_ss( __W, __X, __Y, __U, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,\
-          (__v4sf) __X,\
-          (__v4sf) -(__Y),\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) -(__A),
-          (__v4sf) __B,
-          (__v4sf) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_fnmadd_round_ss( __W, __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_mask ((__v4sf) -(__A),\
-          (__v4sf) __B,\
-          (__v4sf) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) -(__A),
-          (__v4sf) __B,
-          (__v4sf) __C,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fnmadd_round_ss( __U, __A, __B, __C, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_maskz ((__v4sf) -(__A),\
-          (__v4sf) __B,\
-          (__v4sf) __C,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask3_fnmadd_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) -(__W),
-          (__v4sf) __X,
-          (__v4sf) __Y,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fnmadd_round_ss( __W,  __X, __Y, __U, __R) __extension__({\
-__builtin_ia32_vfmaddss3_mask3 ((__v4sf) -(__W),\
-          (__v4sf) __X,\
-          (__v4sf) __Y,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) -(__A),
-          (__v4sf) -(__B),
-          (__v4sf) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_fnmsub_round_ss( __W, __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_mask ((__v4sf) -(__A),\
-          (__v4sf) -(__B),\
-          (__v4sf) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) -(__A),
-          (__v4sf) __B,
-          (__v4sf) -(__C),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fnmsub_round_ss( __U, __A, __B, __C, __R) __extension__ ({\
-__builtin_ia32_vfmaddss3_maskz((__v4sf) -(__A),\
-          (__v4sf) __B,\
-          (__v4sf) -(__C),\
-          (__mmask8) __U,\
-          _MM_FROUND_CUR_DIRECTION);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask3_fnmsub_ss (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) 
-{
- return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) -(__W),
-          (__v4sf) __X,
-          (__v4sf) -(__Y),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fnmsub_round_ss( __W, __X, __Y, __U, __R) __extension__({\
-__builtin_ia32_vfmaddss3_mask3 ((__v4sf) -(__W),\
-          (__v4sf) __X,\
-          (__v4sf) -(__Y),\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_fmadd_sd (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_mask ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_fmadd_round_sd( __W, __U, __A, __B, __R) __extension__({\
-__builtin_ia32_vfmaddsd3_mask ( (__v2df) __A,\
-          (__v2df) __B,\
-          (__v2df) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_fmadd_sd (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_maskz ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) __C,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fmadd_round_sd( __U, __A, __B, __C, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_maskz ( (__v2df) __A,\
-          (__v2df) __B,\
-          (__v2df) __C,\
-          (__mmask8) __U,\
-          _MM_FROUND_CUR_DIRECTION);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask3_fmadd_sd (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
-          (__v2df) __X,
-          (__v2df) __Y,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fmadd_round_sd( __W, __X, __Y, __U, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,\
-          (__v2df) __X,\
-          (__v2df) __Y,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_fmsub_sd (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_mask ( (__v2df) __A,
-          (__v2df) -(__B),
-          (__v2df) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_fmsub_round_sd( __W, __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_mask ( (__v2df) __A,\
-          (__v2df) -(__B),\
-          (__v2df) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_fmsub_sd (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_maskz ( (__v2df) __A,
-          (__v2df) __B,
-          (__v2df) -(__C),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fmsub_round_sd( __U, __A, __B, __C, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_maskz ( (__v2df) __A,\
-          (__v2df) __B,\
-          (__v2df) -(__C),\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask3_fmsub_sd (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
-          (__v2df) __X,
-          (__v2df) -(__Y),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fmsub_round_sd( __W, __X, __Y, __U, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,\
-          (__v2df) __X,\
-          (__v2df) -(__Y),\
-          (__mmask8) __U, __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_fnmadd_sd (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_mask ( (__v2df) -(__A),
-          (__v2df) __B,
-          (__v2df) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_fnmadd_round_sd( __W, __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_mask ( (__v2df) -(__A),\
-          (__v2df) __B,\
-          (__v2df) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_fnmadd_sd (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_maskz ( (__v2df) -(__A),
-          (__v2df) __B,
-          (__v2df) __C,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fnmadd_round_sd( __U, __A, __B, __C, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_maskz ( (__v2df) -(__A),\
-          (__v2df) __B,\
-          (__v2df) __C,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask3_fnmadd_sd (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) -(__W),
-          (__v2df) __X,
-          (__v2df) __Y,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fnmadd_round_sd( __W,  __X, __Y, __U, __R) __extension__({\
-__builtin_ia32_vfmaddsd3_mask3 ((__v2df) -(__W),\
-          (__v2df) __X,\
-          (__v2df) __Y,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_fnmsub_sd (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_mask ( (__v2df) -(__A),
-          (__v2df) -(__B),
-          (__v2df) __W,
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask_fnmsub_round_sd( __W, __U, __A, __B, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_mask ( (__v2df) -(__A),\
-          (__v2df) -(__B),\
-          (__v2df) __W,\
-          (__mmask8) __U,\
-          __R);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_fnmsub_sd (__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_maskz ( (__v2df) -(__A),
-          (__v2df) __B,
-          (__v2df) -(__C),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_maskz_fnmsub_round_sd( __U, __A, __B, __C, __R) __extension__ ({\
-__builtin_ia32_vfmaddsd3_maskz( (__v2df) -(__A),\
-          (__v2df) __B,\
-          (__v2df) -(__C),\
-          (__mmask8) __U,\
-          _MM_FROUND_CUR_DIRECTION);\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask3_fnmsub_sd (__m128 __W, __m128 __X, __m128 __Y, __mmask8 __U) 
-{
- return (__m128) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) -(__W),
-          (__v2df) __X,
-          (__v2df) -(__Y),
-          (__mmask8) __U,
-          _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_mask3_fnmsub_round_sd( __W, __X, __Y, __U, __R) __extension__({\
-__builtin_ia32_vfmaddsd3_mask3 ((__v2df) -(__W),\
-          (__v2df) __X,\
-          (__v2df) -(__Y),\
-          (__mmask8) __U,\
-          __R);\
-})
-
-#define _mm512_permutex_pd( __X, __M) __extension__ ({ \
-__builtin_ia32_permdf512_mask ((__v8df)( __X),( __M),\
-              (__v8df) _mm512_undefined_pd (),\
-              (__mmask8) -1);\
-})
-
-#define _mm512_mask_permutex_pd( __W, __U, __X, __M) __extension__ ({ \
-__builtin_ia32_permdf512_mask ((__v8df)( __X),( __M),\
-              (__v8df)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm512_maskz_permutex_pd( __U, __X, __M) __extension__ ({ \
-__builtin_ia32_permdf512_mask ((__v8df)( __X),( __M),\
-              (__v8df) _mm512_setzero_pd (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm512_permutex_epi64( __X, __I) __extension__ ({ \
-__builtin_ia32_permdi512_mask ((__v8di)( __X),( __I),\
-              (__v8di) _mm512_undefined_epi32 (),\
-              (__mmask8) (-1));\
-})
-
-#define _mm512_mask_permutex_epi64( __W, __M, __X, __I) __extension__ ({ \
-__builtin_ia32_permdi512_mask ((__v8di)( __X),( __I),\
-              (__v8di)( __W),\
-              (__mmask8)( __M));\
-})
-
-#define _mm512_maskz_permutex_epi64( __M, __X, __I) __extension__ ({ \
-__builtin_ia32_permdi512_mask ((__v8di)( __X),( __I),\
-              (__v8di) _mm512_setzero_si512 (),\
-              (__mmask8)( __M));\
-})
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_permutexvar_pd (__m512i __X, __m512d __Y)
-{
-  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
-                 (__v8di) __X,
-                 (__v8df) _mm512_undefined_pd (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y)
-{
-  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
-                 (__v8di) __X,
-                 (__v8df) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y)
-{
-  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
-                 (__v8di) __X,
-                 (__v8df) _mm512_setzero_pd (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
-                 (__v8di) __X,
-                 (__v8di) _mm512_setzero_si512 (),
-                 __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_permutexvar_epi64 (__m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
-                 (__v8di) __X,
-                 (__v8di) _mm512_undefined_epi32 (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X,
-             __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
-                 (__v8di) __X,
-                 (__v8di) __W,
-                 __M);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_permutexvar_ps (__m512i __X, __m512 __Y)
-{
-  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
-                (__v16si) __X,
-                (__v16sf) _mm512_undefined_ps (),
-                (__mmask16) -1);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y)
-{
-  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
-                (__v16si) __X,
-                (__v16sf) __W,
-                (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y)
-{
-  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
-                (__v16si) __X,
-                (__v16sf) _mm512_setzero_ps (),
-                (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
-                 (__v16si) __X,
-                 (__v16si) _mm512_setzero_si512 (),
-                 __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_permutexvar_epi32 (__m512i __X, __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
-                 (__v16si) __X,
-                 (__v16si) _mm512_undefined_epi32 (),
-                 (__mmask16) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,
-             __m512i __Y)
-{
-  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
-                 (__v16si) __X,
-                 (__v16si) __W,
-                 __M);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_kand (__mmask16 __A, __mmask16 __B)
-{
-  return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_kandn (__mmask16 __A, __mmask16 __B)
-{
-  return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A, (__mmask16) __B);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_kor (__mmask16 __A, __mmask16 __B)
-{
-  return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm512_kortestc (__mmask16 __A, __mmask16 __B)
-{
-  return (__mmask16) __builtin_ia32_kortestchi ((__mmask16) __A,
-            (__mmask16) __B);
-}
-
-static __inline__ int __DEFAULT_FN_ATTRS
-_mm512_kortestz (__mmask16 __A, __mmask16 __B)
-{
-  return (__mmask16) __builtin_ia32_kortestzhi ((__mmask16) __A,
-            (__mmask16) __B);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_kunpackb (__mmask16 __A, __mmask16 __B)
-{
-  return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_kxnor (__mmask16 __A, __mmask16 __B)
-{
-  return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm512_kxor (__mmask16 __A, __mmask16 __B)
-{
-  return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_stream_si512 (__m512i * __P, __m512i __A)
-{
-  __builtin_ia32_movntdq512 ((__v8di *) __P, (__v8di) __A);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_stream_load_si512 (void *__P)
-{
-  return __builtin_ia32_movntdqa512 ((__v8di *)__P);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_stream_pd (double *__P, __m512d __A)
-{
-  __builtin_ia32_movntpd512 (__P, (__v8df) __A);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_stream_ps (float *__P, __m512 __A)
-{
-  __builtin_ia32_movntps512 (__P, (__v16sf) __A);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A)
-{
-  return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
-                  (__v8df) __W,
-                  (__mmask8) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_compress_pd (__mmask8 __U, __m512d __A)
-{
-  return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
-                  (__v8df)
-                  _mm512_setzero_pd (),
-                  (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
-{
-  return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
-                  (__v8di) __W,
-                  (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A)
-{
-  return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
-                  (__v8di)
-                  _mm512_setzero_si512 (),
-                  (__mmask8) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
-                 (__v16sf) __W,
-                 (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_compress_ps (__mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
-                 (__v16sf)
-                 _mm512_setzero_ps (),
-                 (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
-{
-  return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
-                  (__v16si) __W,
-                  (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A)
-{
-  return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
-                  (__v16si)
-                  _mm512_setzero_si512 (),
-                  (__mmask16) __U);
-}
-
-#define _mm_cmp_round_ss_mask( __X, __Y, __P, __R) __extension__ ({ \
-__builtin_ia32_cmpss_mask ((__v4sf)( __X),\
-                 (__v4sf)( __Y), __P,\
-                 (__mmask8) -1, __R);\
-})
-
-#define _mm_mask_cmp_round_ss_mask( __M, __X, __Y, __P, __R) __extension__ ({ \
-__builtin_ia32_cmpss_mask ((__v4sf)( __X),\
-                 (__v4sf)( __Y), __P,\
-                 (__mmask8)( __M), __R);\
-})
-
-#define _mm_cmp_ss_mask( __X, __Y, __P) __extension__ ({ \
-__builtin_ia32_cmpss_mask ((__v4sf)( __X),\
-                 (__v4sf)( __Y),( __P),\
-                 (__mmask8) -1,\
-                 _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_mask_cmp_ss_mask( __M, __X, __Y, __P) __extension__ ({ \
-__builtin_ia32_cmpss_mask ((__v4sf)( __X),\
-                 (__v4sf)( __Y),( __P),\
-                 (__mmask8)( __M),\
-                 _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_cmp_round_sd_mask( __X, __Y, __P,__R) __extension__ ({ \
-__builtin_ia32_cmpsd_mask ((__v2df)( __X),\
-                 (__v2df)( __Y), __P,\
-                 (__mmask8) -1, __R);\
-})
-
-#define _mm_mask_cmp_round_sd_mask( __M, __X, __Y, __P, __R) __extension__ ({ \
-__builtin_ia32_cmpsd_mask ((__v2df)( __X),\
-                 (__v2df)( __Y), __P,\
-                 (__mmask8)( __M), __R);\
-})
-
-#define _mm_cmp_sd_mask( __X, __Y, __P) __extension__ ({ \
-__builtin_ia32_cmpsd_mask ((__v2df)( __X),\
-                 (__v2df)( __Y),( __P),\
-                 (__mmask8) -1,\
-                 _MM_FROUND_CUR_DIRECTION);\
-})
-
-#define _mm_mask_cmp_sd_mask( __M, __X, __Y, __P) __extension__ ({ \
-__builtin_ia32_cmpsd_mask ((__v2df)( __X),\
-                 (__v2df)( __Y),( __P),\
-                 (__mmask8)( __M),\
-                 _MM_FROUND_CUR_DIRECTION);\
-})
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_movehdup_ps (__m512 __A)
-{
-  return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
-               (__v16sf)
-               _mm512_undefined_ps (),
-               (__mmask16) -1);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
-               (__v16sf) __W,
-               (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
-               (__v16sf)
-               _mm512_setzero_ps (),
-               (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_moveldup_ps (__m512 __A)
-{
-  return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
-               (__v16sf)
-               _mm512_undefined_ps (),
-               (__mmask16) -1);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
-               (__v16sf) __W,
-               (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
-               (__v16sf)
-               _mm512_setzero_ps (),
-               (__mmask16) __U);
-}
-
-#define _mm512_shuffle_epi32( __A, __I) __extension__ ({ \
-__builtin_ia32_pshufd512_mask ((__v16si)( __A),\
-              ( __I),\
-              (__v16si) _mm512_undefined_epi32 (),\
-              (__mmask16) -1);\
-})
-
-#define _mm512_mask_shuffle_epi32( __W, __U, __A, __I) __extension__ ({ \
-__builtin_ia32_pshufd512_mask ((__v16si)( __A),\
-              ( __I),\
-              (__v16si)( __W),\
-              (__mmask16)( __U));\
-})
-
-#define _mm512_maskz_shuffle_epi32( __U, __A, __I) __extension__ ({ \
-__builtin_ia32_pshufd512_mask ((__v16si)( __A),\
-              ( __I),\
-              (__v16si) _mm512_setzero_si512 (),\
-              (__mmask16)( __U));\
-})
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A)
-{
-  return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,
-                (__v8df) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_expand_pd (__mmask8 __U, __m512d __A)
-{
-  return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,
-                (__v8df) _mm512_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
-{
-  return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,
-                (__v8di) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_expand_epi64 ( __mmask8 __U, __m512i __A)
-{
-  return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,
-                (__v8di) _mm512_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_expandloadu_pd(__m512d __W, __mmask8 __U, void const *__P)
-{
-  return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P,
-              (__v8df) __W,
-              (__mmask8) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_expandloadu_pd(__mmask8 __U, void const *__P)
-{
-  return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *)__P,
-              (__v8df) _mm512_setzero_pd(),
-              (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_expandloadu_epi64(__m512i __W, __mmask8 __U, void const *__P)
-{
-  return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P,
-              (__v8di) __W,
-              (__mmask8) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_expandloadu_epi64(__mmask8 __U, void const *__P)
-{
-  return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *)__P,
-              (__v8di) _mm512_setzero_pd(),
-              (__mmask8) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_expandloadu_ps(__m512 __W, __mmask16 __U, void const *__P)
-{
-  return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P,
-                   (__v16sf) __W,
-                   (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_expandloadu_ps(__mmask16 __U, void const *__P)
-{
-  return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *)__P,
-                   (__v16sf) _mm512_setzero_ps(),
-                   (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_expandloadu_epi32(__m512i __W, __mmask16 __U, void const *__P)
-{
-  return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P,
-              (__v16si) __W,
-              (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_expandloadu_epi32(__mmask16 __U, void const *__P)
-{
-  return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *)__P,
-              (__v16si) _mm512_setzero_ps(),
-              (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,
-               (__v16sf) __W,
-               (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_expand_ps (__mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,
-               (__v16sf) _mm512_setzero_ps(),
-               (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
-{
-  return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,
-                (__v16si) __W,
-                (__mmask16) __U);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A)
-{
-  return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,
-                (__v16si) _mm512_setzero_ps(),
-                (__mmask16) __U);
-}
-
-#define _mm512_cvt_roundps_pd( __A, __R) __extension__ ({ \
-__builtin_ia32_cvtps2pd512_mask ((__v8sf)( __A),\
-                (__v8df)\
-                _mm512_undefined_pd (),\
-                (__mmask8) -1,( __R));\
-})
-
-#define _mm512_mask_cvt_roundps_pd( __W, __U, __A, __R) __extension__ ({ \
-__builtin_ia32_cvtps2pd512_mask ((__v8sf)( __A),\
-                (__v8df)( __W),\
-                (__mmask8)( __U),( __R));\
-})
-
-#define _mm512_maskz_cvt_roundps_pd( __U, __A, __R) __extension__ ({ \
-__builtin_ia32_cvtps2pd512_mask ((__v8sf)( __A),\
-                (__v8df)\
-                _mm512_setzero_pd (),\
-                (__mmask8)( __U),( __R));\
-})
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_cvtps_pd (__m256 __A)
-{
-  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
-                (__v8df)
-                _mm512_undefined_pd (),
-                (__mmask8) -1,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A)
-{
-  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
-                (__v8df) __W,
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A)
-{
-  return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
-                (__v8df)
-                _mm512_setzero_pd (),
-                (__mmask8) __U,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A)
-{
-  return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A,
-              (__v8df) __W,
-              (__mmask8) __U);
-}
-
-static __inline__ __m512d __DEFAULT_FN_ATTRS
-_mm512_maskz_mov_pd (__mmask8 __U, __m512d __A)
-{
-  return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A,
-              (__v8df)
-              _mm512_setzero_pd (),
-              (__mmask8) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A,
-             (__v16sf) __W,
-             (__mmask16) __U);
-}
-
-static __inline__ __m512 __DEFAULT_FN_ATTRS
-_mm512_maskz_mov_ps (__mmask16 __U, __m512 __A)
-{
-  return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A,
-             (__v16sf)
-             _mm512_setzero_ps (),
-             (__mmask16) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A)
-{
-  __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A,
-            (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A)
-{
-  __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A,
-            (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A)
-{
-  __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A,
-            (__mmask16) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A)
-{
-  __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A,
-            (__mmask16) __U);
-}
-
-#define _mm_cvt_roundsd_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsd2ss_round_mask ((__v4sf)( __A),\
-             (__v2df)( __B),\
-             (__v4sf) _mm_undefined_ps (),\
-             (__mmask8) -1,\
-             ( __R));\
-})
-
-#define _mm_mask_cvt_roundsd_ss( __W, __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsd2ss_round_mask ((__v4sf)( __A),\
-             (__v2df)( __B),\
-             (__v4sf) __W,\
-             (__mmask8) __U,\
-             ( __R));\
-})
-
-#define _mm_maskz_cvt_roundsd_ss( __U, __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsd2ss_round_mask ((__v4sf)( __A),\
-             (__v2df)( __B),\
-             (__v4sf) _mm_setzero_ps (),\
-             (__mmask8) __U,\
-             ( __R));\
-})
-
-#define _mm_cvt_roundi64_sd( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsi2sd64 ((__v2df)( __A),( __B),( __R));\
-})
-
-#define _mm_cvt_roundsi64_sd( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsi2sd64 ((__v2df)( __A),( __B),( __R));\
-})
-
-#define _mm_cvt_roundsi32_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsi2ss32 ((__v4sf)( __A),( __B),( __R));\
-})
-
-#define _mm_cvt_roundi32_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsi2ss32 ((__v4sf)( __A),( __B),( __R));\
-})
-
-#define _mm_cvt_roundsi64_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsi2ss64 ((__v4sf)( __A),( __B),( __R));\
-})
-
-#define _mm_cvt_roundi64_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtsi2ss64 ((__v4sf)( __A),( __B),( __R));\
-})
-
-#define _mm_cvt_roundss_sd( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtss2sd_round_mask ((__v2df)( __A),\
-              (__v4sf)( __B),\
-              (__v2df) _mm_undefined_pd (),\
-              (__mmask8)-1,\
-              ( __R));\
-})
-
-#define _mm_mask_cvt_roundss_sd(__W, __U,__A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtss2sd_round_mask ((__v2df)( __A),\
-              (__v4sf)( __B),\
-              (__v2df) __W,\
-              (__mmask8) __U,\
-              ( __R));\
-})
-
-#define _mm_maskz_cvt_roundss_sd( __U,__A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtss2sd_round_mask ((__v2df)( __A),\
-              (__v4sf)( __B),\
-              (__v2df) _mm_setzero_pd(),\
-              (__mmask8) __U,\
-              ( __R));\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cvtu32_sd (__m128d __A, unsigned __B)
-{
-  return (__m128d) __builtin_ia32_cvtusi2sd32 ((__v2df) __A, __B);
-}
-
-#define _mm_cvt_roundu64_sd( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtusi2sd64 ((__v2df)( __A),( __B),( __R));\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_cvtu64_sd (__m128d __A, unsigned long long __B)
-{
-  return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B,
-                 _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundu32_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtusi2ss32 ((__v4sf)( __A),( __B),( __R));\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cvtu32_ss (__m128 __A, unsigned __B)
-{
-  return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B,
-                _MM_FROUND_CUR_DIRECTION);
-}
-
-#define _mm_cvt_roundu64_ss( __A, __B, __R) __extension__ ({ \
-__builtin_ia32_cvtusi2ss64 ((__v4sf)( __A),( __B),( __R));\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_cvtu64_ss (__m128 __A, unsigned long long __B)
-{
-  return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B,
-                _MM_FROUND_CUR_DIRECTION);
-}
 
 #undef __DEFAULT_FN_ATTRS
 
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512pfintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512pfintrin.h
deleted file mode 100644
index 54e94f1..0000000
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512pfintrin.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*===------------- avx512pfintrin.h - PF intrinsics ------------------===
- *
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *===-----------------------------------------------------------------------===
- */
-#ifndef __IMMINTRIN_H
-#error "Never use <avx512pfintrin.h> directly; include <immintrin.h> instead."
-#endif
-
-#ifndef __AVX512PFINTRIN_H
-#define __AVX512PFINTRIN_H
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512pf")))
-
-#define _mm512_mask_prefetch_i32gather_pd( index,  mask, addr,  scale, hint) __extension__ ({\
-__builtin_ia32_gatherpfdpd (mask, (__v8si) index, (long long const *) addr, scale, hint);\
-})
-
-#define _mm512_mask_prefetch_i32gather_ps( index,  mask, addr, scale,  hint) ({\
-__builtin_ia32_gatherpfdps (mask, (__v16si) index, (int const *) addr, scale, hint);\
-})
-
-#define _mm512_mask_prefetch_i64gather_pd( index,  mask, addr,  scale, hint) __extension__ ({\
-__builtin_ia32_gatherpfqpd (mask, (__v8di) index, (long long const *) addr, scale, hint);\
-})
-
-#define _mm512_mask_prefetch_i64gather_ps( index,  mask, addr, scale,  hint) ({\
-__builtin_ia32_gatherpfqps (mask, (__v8di) index, (int const *) addr, scale, hint);\
-})
-
-#define _mm512_prefetch_i32scatter_pd(addr,  index,  scale,  hint) __extension__ ({\
-__builtin_ia32_scatterpfdpd ((__mmask8) -1, (__v8si) index, \
-                            (void  *)addr, scale, hint);\
-})
-
-#define _mm512_mask_prefetch_i32scatter_pd(addr,  mask,  index,  scale,  hint) __extension__ ({\
-__builtin_ia32_scatterpfdpd (mask, (__v8si) index, (void  *) addr,\
-                             scale, hint);\
-})
-
-#define _mm512_prefetch_i32scatter_ps(addr, index, scale, hint) __extension__ ({\
-__builtin_ia32_scatterpfdps ((__mmask16) -1, (__v16si) index, (void  *) addr,\
-                             scale, hint);\
-})
-
-#define _mm512_mask_prefetch_i32scatter_ps(addr, mask, index, scale, hint) __extension__ ({\
-__builtin_ia32_scatterpfdps (mask, (__v16si) index, (void  *) addr,\
-                             scale, hint);\
-})
-
-#define _mm512_prefetch_i64scatter_pd(addr, index, scale, hint) __extension__ ({\
-__builtin_ia32_scatterpfqpd ((__mmask8) -1, (__v8di) index, (void  *) addr,\
-                             scale, hint);\
-})
-
-#define _mm512_mask_prefetch_i64scatter_pd(addr, mask, index, scale, hint) __extension__ ({\
-__builtin_ia32_scatterpfqpd (mask, (__v8di) index, (void  *) addr,\
-                             scale, hint);\
-})
-
-#define _mm512_prefetch_i64scatter_ps(addr, index, scale, hint) __extension__ ({\
-__builtin_ia32_scatterpfqps ((__mmask8) -1, (__v8di) index, (void  *) addr,\
-                             scale, hint);\
-})
-
-#define _mm512_mask_prefetch_i64scatter_ps(addr, mask, index, scale, hint) __extension__ ({\
-__builtin_ia32_scatterpfqps (mask, (__v8di) index, (void  *) addr,\
-                             scale, hint);\
-})
-
-#undef __DEFAULT_FN_ATTRS
-
-#endif
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vbmiintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vbmiintrin.h
index a2c3b8f..7ac9fe7 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vbmiintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vbmiintrin.h
@@ -79,35 +79,6 @@
                __U);
 }
 
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_permutexvar_epi8 (__m512i __A, __m512i __B)
-{
-  return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B,
-                 (__v64qi) __A,
-                 (__v64qi) _mm512_undefined_epi32 (),
-                 (__mmask64) -1);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_maskz_permutexvar_epi8 (__mmask64 __M, __m512i __A,
-        __m512i __B)
-{
-  return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B,
-                 (__v64qi) __A,
-                 (__v64qi) _mm512_setzero_si512(),
-                 (__mmask64) __M);
-}
-
-static __inline__ __m512i __DEFAULT_FN_ATTRS
-_mm512_mask_permutexvar_epi8 (__m512i __W, __mmask64 __M, __m512i __A,
-             __m512i __B)
-{
-  return (__m512i) __builtin_ia32_permvarqi512_mask ((__v64qi) __B,
-                 (__v64qi) __A,
-                 (__v64qi) __W,
-                 (__mmask64) __M);
-}
-
 #undef __DEFAULT_FN_ATTRS
 
 #endif
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vbmivlintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vbmivlintrin.h
index 5798969..04b7a47 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vbmivlintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vbmivlintrin.h
@@ -126,62 +126,6 @@
                __U);
 }
 
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_permutexvar_epi8 (__m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_permvarqi128_mask ((__v16qi) __B,
-                 (__v16qi) __A,
-                 (__v16qi) _mm_undefined_si128 (),
-                 (__mmask16) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_permutexvar_epi8 (__mmask16 __M, __m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_permvarqi128_mask ((__v16qi) __B,
-                 (__v16qi) __A,
-                 (__v16qi) _mm_setzero_si128 (),
-                 (__mmask16) __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_permutexvar_epi8 (__m128i __W, __mmask16 __M, __m128i __A,
-          __m128i __B)
-{
-  return (__m128i) __builtin_ia32_permvarqi128_mask ((__v16qi) __B,
-                 (__v16qi) __A,
-                 (__v16qi) __W,
-                 (__mmask16) __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_permutexvar_epi8 (__m256i __A, __m256i __B)
-{
-  return (__m256i) __builtin_ia32_permvarqi256_mask ((__v32qi) __B,
-                 (__v32qi) __A,
-                 (__v32qi) _mm256_undefined_si256 (),
-                 (__mmask32) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_permutexvar_epi8 (__mmask32 __M, __m256i __A,
-        __m256i __B)
-{
-  return (__m256i) __builtin_ia32_permvarqi256_mask ((__v32qi) __B,
-                 (__v32qi) __A,
-                 (__v32qi) _mm256_setzero_si256 (),
-                 (__mmask32) __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_permutexvar_epi8 (__m256i __W, __mmask32 __M, __m256i __A,
-             __m256i __B)
-{
-  return (__m256i) __builtin_ia32_permvarqi256_mask ((__v32qi) __B,
-                 (__v32qi) __A,
-                 (__v32qi) __W,
-                 (__mmask32) __M);
-}
 
 #undef __DEFAULT_FN_ATTRS
 
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlbwintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlbwintrin.h
index d8e67fc..bb69b1b 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlbwintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlbwintrin.h
@@ -2847,6 +2847,9 @@
               (__mmask16)( __U));\
 })
 
+
+
+
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
 {
@@ -3017,441 +3020,6 @@
                  _mm256_setzero_si256 (),
                  (__mmask32) __U);
 }
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_storeu_epi16 (void *__P, __mmask8 __U, __m128i __A)
-{
-  __builtin_ia32_storedquhi128_mask ((__v8hi *) __P,
-             (__v8hi) __A,
-             (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_storeu_epi16 (void *__P, __mmask16 __U, __m256i __A)
-{
-  __builtin_ia32_storedquhi256_mask ((__v16hi *) __P,
-             (__v16hi) __A,
-             (__mmask16) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_storeu_epi8 (void *__P, __mmask16 __U, __m128i __A)
-{
-  __builtin_ia32_storedquqi128_mask ((__v16qi *) __P,
-             (__v16qi) __A,
-             (__mmask16) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_storeu_epi8 (void *__P, __mmask32 __U, __m256i __A)
-{
-  __builtin_ia32_storedquqi256_mask ((__v32qi *) __P,
-             (__v32qi) __A,
-             (__mmask32) __U);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm_test_epi8_mask (__m128i __A, __m128i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
-            (__v16qi) __B,
-            (__mmask16) -1);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm_mask_test_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestmb128 ((__v16qi) __A,
-            (__v16qi) __B, __U);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm256_test_epi8_mask (__m256i __A, __m256i __B)
-{
-  return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
-            (__v32qi) __B,
-            (__mmask32) -1);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm256_mask_test_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
-{
-  return (__mmask32) __builtin_ia32_ptestmb256 ((__v32qi) __A,
-            (__v32qi) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_test_epi16_mask (__m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
-                 (__v8hi) __B,
-                 (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_mask_test_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmw128 ((__v8hi) __A,
-                 (__v8hi) __B, __U);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm256_test_epi16_mask (__m256i __A, __m256i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
-            (__v16hi) __B,
-            (__mmask16) -1);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm256_mask_test_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestmw256 ((__v16hi) __A,
-            (__v16hi) __B, __U);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm_testn_epi8_mask (__m128i __A, __m128i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
-             (__v16qi) __B,
-             (__mmask16) -1);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm_mask_testn_epi8_mask (__mmask16 __U, __m128i __A, __m128i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestnmb128 ((__v16qi) __A,
-             (__v16qi) __B, __U);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm256_testn_epi8_mask (__m256i __A, __m256i __B)
-{
-  return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
-             (__v32qi) __B,
-             (__mmask32) -1);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm256_mask_testn_epi8_mask (__mmask32 __U, __m256i __A, __m256i __B)
-{
-  return (__mmask32) __builtin_ia32_ptestnmb256 ((__v32qi) __A,
-             (__v32qi) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_testn_epi16_mask (__m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
-            (__v8hi) __B,
-            (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_mask_testn_epi16_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmw128 ((__v8hi) __A,
-            (__v8hi) __B, __U);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm256_testn_epi16_mask (__m256i __A, __m256i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
-             (__v16hi) __B,
-             (__mmask16) -1);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm256_mask_testn_epi16_mask (__mmask16 __U, __m256i __A, __m256i __B)
-{
-  return (__mmask16) __builtin_ia32_ptestnmw256 ((__v16hi) __A,
-             (__v16hi) __B, __U);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm_movepi8_mask (__m128i __A)
-{
-  return (__mmask16) __builtin_ia32_cvtb2mask128 ((__v16qi) __A);
-}
-
-static __inline__ __mmask32 __DEFAULT_FN_ATTRS
-_mm256_movepi8_mask (__m256i __A)
-{
-  return (__mmask32) __builtin_ia32_cvtb2mask256 ((__v32qi) __A);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_movepi16_mask (__m128i __A)
-{
-  return (__mmask8) __builtin_ia32_cvtw2mask128 ((__v8hi) __A);
-}
-
-static __inline__ __mmask16 __DEFAULT_FN_ATTRS
-_mm256_movepi16_mask (__m256i __A)
-{
-  return (__mmask16) __builtin_ia32_cvtw2mask256 ((__v16hi) __A);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_movm_epi8 (__mmask16 __A)
-{
-  return (__m128i) __builtin_ia32_cvtmask2b128 (__A);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_movm_epi8 (__mmask32 __A)
-{
-  return (__m256i) __builtin_ia32_cvtmask2b256 (__A);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_movm_epi16 (__mmask8 __A)
-{
-  return (__m128i) __builtin_ia32_cvtmask2w128 (__A);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_movm_epi16 (__mmask16 __A)
-{
-  return (__m256i) __builtin_ia32_cvtmask2w256 (__A);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_broadcastb_epi8 (__m128i __O, __mmask16 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A,
-                   (__v16qi) __O,
-                   __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_broadcastb_epi8 (__mmask16 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastb128_mask ((__v16qi) __A,
-                   (__v16qi) _mm_setzero_si128 (),
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_broadcastb_epi8 (__m256i __O, __mmask32 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A,
-                   (__v32qi) __O,
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcastb_epi8 (__mmask32 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastb256_mask ((__v16qi) __A,
-                   (__v32qi) _mm256_setzero_si256 (),
-                   __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_broadcastw_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A,
-                   (__v8hi) __O,
-                   __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_broadcastw_epi16 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastw128_mask ((__v8hi) __A,
-                   (__v8hi) _mm_setzero_si128 (),
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_broadcastw_epi16 (__m256i __O, __mmask16 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A,
-                   (__v16hi) __O,
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcastw_epi16 (__mmask16 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastw256_mask ((__v8hi) __A,
-                   (__v16hi) _mm256_setzero_si256 (),
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_set1_epi16 (__m256i __O, __mmask16 __M, short __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
-                 (__v16hi) __O,
-                 __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_set1_epi16 (__mmask16 __M, short __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastw256_gpr_mask (__A,
-                 (__v16hi) _mm256_setzero_si256 (),
-                 __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_set1_epi16 (__m128i __O, __mmask8 __M, short __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
-                 (__v8hi) __O,
-                 __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_set1_epi16 (__mmask8 __M, short __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastw128_gpr_mask (__A,
-                 (__v8hi) _mm_setzero_si128 (),
-                 __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_permutexvar_epi16 (__m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
-                 (__v8hi) __A,
-                 (__v8hi) _mm_undefined_si128 (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
-                 (__v8hi) __A,
-                 (__v8hi) _mm_setzero_si128 (),
-                 (__mmask8) __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
-          __m128i __B)
-{
-  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
-                 (__v8hi) __A,
-                 (__v8hi) __W,
-                 (__mmask8) __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
-{
-  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
-                 (__v16hi) __A,
-                 (__v16hi) _mm256_undefined_si256 (),
-                 (__mmask16) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
-        __m256i __B)
-{
-  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
-                 (__v16hi) __A,
-                 (__v16hi) _mm256_setzero_si256 (),
-                 (__mmask16) __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
-             __m256i __B)
-{
-  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
-                 (__v16hi) __A,
-                 (__v16hi) __W,
-                 (__mmask16) __M);
-}
-
-#define _mm_mask_alignr_epi8( __W, __U, __A, __B, __N) __extension__ ({ \
-__builtin_ia32_palignr128_mask ((__v2di)( __A),\
-               (__v2di)( __B),\
-               ( __N) * 8,\
-               (__v2di)( __W),\
-               (__mmask16)( __U));\
-})
-
-#define _mm_maskz_alignr_epi8( __U, __A, __B, __N) __extension__ ({ \
-__builtin_ia32_palignr128_mask ((__v2di)( __A),\
-               (__v2di)( __B),\
-               ( __N) * 8,\
-               (__v2di)\
-               _mm_setzero_si128 (),\
-               (__mmask16)( __U));\
-})
-
-#define _mm256_mask_alignr_epi8( __W, __U, __A, __B, __N) __extension__ ({ \
-__builtin_ia32_palignr256_mask ((__v4di)( __A),\
-               (__v4di)( __B),\
-               ( __N) * 8,\
-               (__v4di)( __W),\
-               (__mmask32)( __U));\
-})
-
-#define _mm256_maskz_alignr_epi8( __U, __A, __B, __N) __extension__ ({ \
-__builtin_ia32_palignr256_mask ((__v4di)( __A),\
-               (__v4di)( __B),\
-               ( __N) * 8,\
-               (__v4di)\
-               _mm256_setzero_si256 (),\
-               (__mmask32)( __U));\
-})
-
-#define _mm_dbsad_epu8( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_dbpsadbw128_mask ((__v16qi)( __A),\
-                (__v16qi)( __B),\
-                ( __imm),\
-                (__v8hi) _mm_setzero_hi (),\
-                (__mmask8) -1);\
-})
-
-#define _mm_mask_dbsad_epu8( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_dbpsadbw128_mask ((__v16qi)( __A),\
-                (__v16qi)( __B),\
-                ( __imm),\
-                (__v8hi)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm_maskz_dbsad_epu8( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_dbpsadbw128_mask ((__v16qi)( __A),\
-                (__v16qi)( __B),\
-                ( __imm),\
-                (__v8hi) _mm_setzero_si128 (),\
-                (__mmask8)( __U));\
-})
-
-#define _mm256_dbsad_epu8( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_dbpsadbw256_mask ((__v32qi)( __A),\
-                (__v32qi)( __B),\
-                ( __imm),\
-                (__v16hi) _mm256_setzero_si256 (),\
-                (__mmask16) -1);\
-})
-
-#define _mm256_mask_dbsad_epu8( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_dbpsadbw256_mask ((__v32qi)( __A),\
-                (__v32qi)( __B),\
-                ( __imm),\
-                (__v16hi)( __W),\
-                (__mmask16)( __U));\
-})
-
-#define _mm256_maskz_dbsad_epu8( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_dbpsadbw256_mask ((__v32qi)( __A),\
-                (__v32qi)( __B),\
-                ( __imm),\
-                (__v16hi) _mm256_setzero_si256 (),\
-                (__mmask16)( __U));\
-})
-
 #undef __DEFAULT_FN_ATTRS
 
 #endif /* __AVX512VLBWINTRIN_H */
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlcdintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlcdintrin.h
deleted file mode 100644
index b372da2..0000000
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlcdintrin.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*===---- avx512vlcdintrin.h - AVX512VL and AVX512CD intrinsics ---------------------------===
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *===-----------------------------------------------------------------------===
- */
-#ifndef __IMMINTRIN_H
-#error "Never use <avx512vlcdintrin.h> directly; include <immintrin.h> instead."
-#endif
-
-#ifndef __AVX512VLCDINTRIN_H
-#define __AVX512VLCDINTRIN_H
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("avx512vl,avx512cd")))
-
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_broadcastmb_epi64 (__mmask8 __A)
-{
-  return (__m128i) __builtin_ia32_broadcastmb128 (__A);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_broadcastmb_epi64 (__mmask8 __A)
-{
-  return (__m256i) __builtin_ia32_broadcastmb256 (__A);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_broadcastmw_epi32 (__mmask16 __A)
-{
-  return (__m128i) __builtin_ia32_broadcastmw128 (__A);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_broadcastmw_epi32 (__mmask16 __A)
-{
-  return (__m256i) __builtin_ia32_broadcastmw256 (__A);
-}
-
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_conflict_epi64 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
-               (__v2di) _mm_undefined_si128 (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_conflict_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
-               (__v2di) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_conflict_epi64 (__mmask8 __U, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_vpconflictdi_128_mask ((__v2di) __A,
-               (__v2di)
-               _mm_setzero_di (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_conflict_epi64 (__m256i __A)
-{
-  return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
-               (__v4di)  _mm256_undefined_si256 (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_conflict_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
-{
-  return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
-               (__v4di) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_conflict_epi64 (__mmask8 __U, __m256i __A)
-{
-  return (__m256i) __builtin_ia32_vpconflictdi_256_mask ((__v4di) __A,
-               (__v4di) _mm256_setzero_si256 (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_conflict_epi32 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
-               (__v4si) _mm_undefined_si128 (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_conflict_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
-               (__v4si) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_conflict_epi32 (__mmask8 __U, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_vpconflictsi_128_mask ((__v4si) __A,
-               (__v4si) _mm_setzero_si128 (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_conflict_epi32 (__m256i __A)
-{
-  return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
-               (__v8si) _mm256_undefined_si256 (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_conflict_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
-{
-  return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
-               (__v8si) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_conflict_epi32 (__mmask8 __U, __m256i __A)
-{
-  return (__m256i) __builtin_ia32_vpconflictsi_256_mask ((__v8si) __A,
-               (__v8si)
-               _mm256_setzero_si256 (),
-               (__mmask8) __U);
-}
-
-#undef __DEFAULT_FN_ATTRS
-
-#endif /* __AVX512VLCDINTRIN_H */
\ No newline at end of file
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vldqintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vldqintrin.h
index 3c28df8..dfd858e 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vldqintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vldqintrin.h
@@ -948,308 +948,6 @@
   (__m256) __builtin_ia32_reduceps256_mask ((__v8sf) __A, __B,     \
                 (__v8sf) _mm256_setzero_ps(), (__mmask8) __U); })
 
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_movepi32_mask (__m128i __A)
-{
-  return (__mmask8) __builtin_ia32_cvtd2mask128 ((__v4si) __A);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_movepi32_mask (__m256i __A)
-{
-  return (__mmask8) __builtin_ia32_cvtd2mask256 ((__v8si) __A);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_movm_epi32 (__mmask8 __A)
-{
-  return (__m128i) __builtin_ia32_cvtmask2d128 (__A);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_movm_epi32 (__mmask8 __A)
-{
-  return (__m256i) __builtin_ia32_cvtmask2d256 (__A);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_movm_epi64 (__mmask8 __A)
-{
-  return (__m128i) __builtin_ia32_cvtmask2q128 (__A);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_movm_epi64 (__mmask8 __A)
-{
-  return (__m256i) __builtin_ia32_cvtmask2q256 (__A);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_movepi64_mask (__m128i __A)
-{
-  return (__mmask8) __builtin_ia32_cvtq2mask128 ((__v2di) __A);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_movepi64_mask (__m256i __A)
-{
-  return (__mmask8) __builtin_ia32_cvtq2mask256 ((__v4di) __A);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_broadcast_f32x2 (__m128 __A)
-{
-  return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A,
-                (__v8sf)_mm256_undefined_ps(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_broadcast_f32x2 (__m256 __O, __mmask8 __M, __m128 __A)
-{
-  return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A,
-                (__v8sf) __O,
-                __M);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcast_f32x2 (__mmask8 __M, __m128 __A)
-{
-  return (__m256) __builtin_ia32_broadcastf32x2_256_mask ((__v4sf) __A,
-                (__v8sf) _mm256_setzero_ps (),
-                __M);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_broadcast_f64x2 (__m128d __A)
-{
-  return (__m256d) __builtin_ia32_broadcastf64x2_256_mask ((__v2df) __A,
-                 (__v4df)_mm256_undefined_pd(),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_broadcast_f64x2 (__m256d __O, __mmask8 __M, __m128d __A)
-{
-  return (__m256d) __builtin_ia32_broadcastf64x2_256_mask ((__v2df) __A,
-                 (__v4df) __O, 
-                 __M);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcast_f64x2 (__mmask8 __M, __m128d __A)
-{
-  return (__m256d) __builtin_ia32_broadcastf64x2_256_mask ((__v2df) __A,
-                 (__v4df) _mm256_setzero_ps (),
-                 __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_broadcast_i32x2 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) __A,
-                 (__v4si)_mm_undefined_si128(),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_broadcast_i32x2 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) __A,
-                 (__v4si) __O,
-                 __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_broadcasti32x2_128_mask ((__v4si) __A,
-                 (__v4si) _mm_setzero_si128 (),
-                 __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_broadcast_i32x2 (__m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) __A,
-                 (__v8si)_mm256_undefined_si256(),
-                 (__mmask8) - 1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_broadcast_i32x2 (__m256i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) __A,
-                 (__v8si) __O,
-                 __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcast_i32x2 (__mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti32x2_256_mask ((__v4si) __A,
-                 (__v8si) _mm256_setzero_si256 (),
-                 __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_broadcast_i64x2 (__m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti64x2_256_mask ((__v2di) __A,
-                 (__v4di)_mm256_undefined_si256(),
-                 (__mmask8) - 1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_broadcast_i64x2 (__m256i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti64x2_256_mask ((__v2di) __A,
-                 (__v4di) __O, 
-                 __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcast_i64x2 (__mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti64x2_256_mask ((__v2di) __A,
-                 (__v4di) _mm256_setzero_si256 (),
-                 __M);
-}
-
-#define _mm256_extractf64x2_pd( __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf64x2_256_mask ((__v4df)( __A),\
-               ( __imm),\
-               (__v2df) _mm_setzero_pd (),\
-               (__mmask8) -1);\
-})
-
-#define _mm256_mask_extractf64x2_pd( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf64x2_256_mask ((__v4df)( __A),\
-               ( __imm),\
-               (__v2df)( __W),\
-               (__mmask8) ( __U));\
-})
-
-#define _mm256_maskz_extractf64x2_pd( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf64x2_256_mask ((__v4df)( __A),\
-               ( __imm),\
-               (__v2df) _mm_setzero_pd (),\
-               (__mmask8) ( __U));\
-})
-
-#define _mm256_extracti64x2_epi64( __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x2_256_mask ((__v4di)( __A),\
-               ( __imm),\
-               (__v2di) _mm_setzero_di (),\
-               (__mmask8) -1);\
-})
-
-#define _mm256_mask_extracti64x2_epi64( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x2_256_mask ((__v4di)( __A),\
-               ( __imm),\
-               (__v2di)( __W),\
-               (__mmask8) ( __U));\
-})
-
-#define _mm256_maskz_extracti64x2_epi64( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti64x2_256_mask ((__v4di)( __A),\
-               ( __imm),\
-               (__v2di) _mm_setzero_di (),\
-               (__mmask8) ( __U));\
-})
-
-#define _mm256_insertf64x2( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x2_256_mask ((__v4df)( __A),\
-              (__v2df)( __B),\
-              ( __imm),\
-              (__v4df) _mm256_setzero_pd (),\
-              (__mmask8) -1);\
-})
-
-#define _mm256_mask_insertf64x2( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x2_256_mask ((__v4df)( __A),\
-              (__v2df)( __B),\
-              ( __imm),\
-              (__v4df)( __W),\
-              (__mmask8) ( __U));\
-})
-
-#define _mm256_maskz_insertf64x2( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf64x2_256_mask ((__v4df)( __A),\
-              (__v2df)( __B),\
-              ( __imm),\
-              (__v4df) _mm256_setzero_pd (),\
-              (__mmask8) ( __U));\
-})
-
-#define _mm256_inserti64x2( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x2_256_mask ((__v4di)( __A),\
-              (__v2di)( __B),\
-              ( __imm),\
-              (__v4di) _mm256_setzero_si256 (),\
-              (__mmask8) -1);\
-})
-
-#define _mm256_mask_inserti64x2( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x2_256_mask ((__v4di)( __A),\
-              (__v2di)( __B),\
-              ( __imm),\
-              (__v4di)( __W),\
-              (__mmask8) ( __U));\
-})
-
-#define _mm256_maskz_inserti64x2( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti64x2_256_mask ((__v4di)( __A),\
-              (__v2di)( __B),\
-              ( __imm),\
-              (__v4di) _mm256_setzero_si256 (),\
-              (__mmask8) ( __U));\
-})
-
-#define _mm_mask_fpclass_pd_mask( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclasspd128_mask ((__v2df)( __A),\
-                 ( __imm),( __U));\
-})
-
-#define _mm_fpclass_pd_mask( __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclasspd128_mask ((__v2df)( __A),\
-                  ( __imm),\
-                  (__mmask8) -1);\
-})
-
-#define _mm256_mask_fpclass_pd_mask( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclasspd256_mask ((__v4df)( __A),\
-                  ( __imm),( __U));\
-})
-
-#define _mm256_fpclass_pd_mask( __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclasspd256_mask ((__v4df)( __A),\
-                  ( __imm),\
-                  (__mmask8) -1);\
-})
-
-#define _mm_mask_fpclass_ps_mask( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclassps128_mask ((__v4sf)( __A),\
-                  ( __imm),( __U));\
-})
-
-#define _mm_fpclass_ps_mask( __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclassps128_mask ((__v4sf)( __A),\
-                  ( __imm),\
-                  (__mmask8) -1);\
-})
-
-#define _mm256_mask_fpclass_ps_mask( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclassps256_mask ((__v8sf)( __A),\
-                  ( __imm),( __U));\
-})
-
-#define _mm256_fpclass_ps_mask( __A, __imm) __extension__ ({ \
-__builtin_ia32_fpclassps256_mask ((__v8sf)( __A),\
-                  ( __imm),\
-                  (__mmask8) -1);\
-})
-
 #undef __DEFAULT_FN_ATTRS
 
 #endif
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlintrin.h
index dc6e0ba..6080a6d 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlintrin.h
@@ -5548,6 +5548,14 @@
              (__mmask8) __U);
 }
 
+#define _mm256_maskz_sllv_epi32( __U, __X, __Y) __extension__ ({ \
+__builtin_ia32_psllv8si_mask ((__v8si)( __X),\
+             (__v8si)( __Y),\
+             (__v8si)\
+             _mm256_setzero_si256 (),\
+             (__mmask8)( __U));\
+})
+
 
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS
@@ -6360,3159 +6368,6 @@
               _mm256_setzero_ps (),
               (__mmask8) __U);
 }
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_store_pd (void *__P, __mmask8 __U, __m128d __A)
-{
-  __builtin_ia32_storeapd128_mask ((__v2df *) __P,
-           (__v2df) __A,
-           (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_store_pd (void *__P, __mmask8 __U, __m256d __A)
-{
-  __builtin_ia32_storeapd256_mask ((__v4df *) __P,
-           (__v4df) __A,
-           (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_store_ps (void *__P, __mmask8 __U, __m128 __A)
-{
-  __builtin_ia32_storeaps128_mask ((__v4sf *) __P,
-           (__v4sf) __A,
-           (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_store_ps (void *__P, __mmask8 __U, __m256 __A)
-{
-  __builtin_ia32_storeaps256_mask ((__v8sf *) __P,
-           (__v8sf) __A,
-           (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_storeu_epi64 (void *__P, __mmask8 __U, __m128i __A)
-{
-  __builtin_ia32_storedqudi128_mask ((__v2di *) __P,
-             (__v2di) __A,
-             (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_storeu_epi64 (void *__P, __mmask8 __U, __m256i __A)
-{
-  __builtin_ia32_storedqudi256_mask ((__v4di *) __P,
-             (__v4di) __A,
-             (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_storeu_epi32 (void *__P, __mmask8 __U, __m128i __A)
-{
-  __builtin_ia32_storedqusi128_mask ((__v4si *) __P,
-             (__v4si) __A,
-             (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_storeu_epi32 (void *__P, __mmask8 __U, __m256i __A)
-{
-  __builtin_ia32_storedqusi256_mask ((__v8si *) __P,
-             (__v8si) __A,
-             (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_storeu_pd (void *__P, __mmask8 __U, __m128d __A)
-{
-  __builtin_ia32_storeupd128_mask ((__v2df *) __P,
-           (__v2df) __A,
-           (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_storeu_pd (void *__P, __mmask8 __U, __m256d __A)
-{
-  __builtin_ia32_storeupd256_mask ((__v4df *) __P,
-           (__v4df) __A,
-           (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_storeu_ps (void *__P, __mmask8 __U, __m128 __A)
-{
-  __builtin_ia32_storeups128_mask ((__v4sf *) __P,
-           (__v4sf) __A,
-           (__mmask8) __U);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_storeu_ps (void *__P, __mmask8 __U, __m256 __A)
-{
-  __builtin_ia32_storeups256_mask ((__v8sf *) __P,
-           (__v8sf) __A,
-           (__mmask8) __U);
-}
-
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_unpackhi_pd (__m128d __W, __mmask8 __U, __m128d __A,
-          __m128d __B)
-{
-  return (__m128d) __builtin_ia32_unpckhpd128_mask ((__v2df) __A,
-                (__v2df) __B,
-                (__v2df) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_unpackhi_pd (__mmask8 __U, __m128d __A, __m128d __B)
-{
-  return (__m128d) __builtin_ia32_unpckhpd128_mask ((__v2df) __A,
-                (__v2df) __B,
-                (__v2df)
-                _mm_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_unpackhi_pd (__m256d __W, __mmask8 __U, __m256d __A,
-       __m256d __B)
-{
-  return (__m256d) __builtin_ia32_unpckhpd256_mask ((__v4df) __A,
-                (__v4df) __B,
-                (__v4df) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_unpackhi_pd (__mmask8 __U, __m256d __A, __m256d __B)
-{
-  return (__m256d) __builtin_ia32_unpckhpd256_mask ((__v4df) __A,
-                (__v4df) __B,
-                (__v4df)
-                _mm256_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_unpackhi_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
-{
-  return (__m128) __builtin_ia32_unpckhps128_mask ((__v4sf) __A,
-               (__v4sf) __B,
-               (__v4sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_unpackhi_ps (__mmask8 __U, __m128 __A, __m128 __B)
-{
-  return (__m128) __builtin_ia32_unpckhps128_mask ((__v4sf) __A,
-               (__v4sf) __B,
-               (__v4sf)
-               _mm_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_unpackhi_ps (__m256 __W, __mmask8 __U, __m256 __A,
-       __m256 __B)
-{
-  return (__m256) __builtin_ia32_unpckhps256_mask ((__v8sf) __A,
-               (__v8sf) __B,
-               (__v8sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_unpackhi_ps (__mmask8 __U, __m256 __A, __m256 __B)
-{
-  return (__m256) __builtin_ia32_unpckhps256_mask ((__v8sf) __A,
-               (__v8sf) __B,
-               (__v8sf)
-               _mm256_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_unpacklo_pd (__m128d __W, __mmask8 __U, __m128d __A,
-          __m128d __B)
-{
-  return (__m128d) __builtin_ia32_unpcklpd128_mask ((__v2df) __A,
-                (__v2df) __B,
-                (__v2df) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_unpacklo_pd (__mmask8 __U, __m128d __A, __m128d __B)
-{
-  return (__m128d) __builtin_ia32_unpcklpd128_mask ((__v2df) __A,
-                (__v2df) __B,
-                (__v2df)
-                _mm_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_unpacklo_pd (__m256d __W, __mmask8 __U, __m256d __A,
-       __m256d __B)
-{
-  return (__m256d) __builtin_ia32_unpcklpd256_mask ((__v4df) __A,
-                (__v4df) __B,
-                (__v4df) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_unpacklo_pd (__mmask8 __U, __m256d __A, __m256d __B)
-{
-  return (__m256d) __builtin_ia32_unpcklpd256_mask ((__v4df) __A,
-                (__v4df) __B,
-                (__v4df)
-                _mm256_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_unpacklo_ps (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
-{
-  return (__m128) __builtin_ia32_unpcklps128_mask ((__v4sf) __A,
-               (__v4sf) __B,
-               (__v4sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_unpacklo_ps (__mmask8 __U, __m128 __A, __m128 __B)
-{
-  return (__m128) __builtin_ia32_unpcklps128_mask ((__v4sf) __A,
-               (__v4sf) __B,
-               (__v4sf)
-               _mm_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_unpacklo_ps (__m256 __W, __mmask8 __U, __m256 __A,
-       __m256 __B)
-{
-  return (__m256) __builtin_ia32_unpcklps256_mask ((__v8sf) __A,
-               (__v8sf) __B,
-               (__v8sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_unpacklo_ps (__mmask8 __U, __m256 __A, __m256 __B)
-{
-  return (__m256) __builtin_ia32_unpcklps256_mask ((__v8sf) __A,
-               (__v8sf) __B,
-               (__v8sf)
-               _mm256_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_rcp14_pd (__m128d __A)
-{
-  return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
-                (__v2df)
-                _mm_setzero_pd (),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_rcp14_pd (__m128d __W, __mmask8 __U, __m128d __A)
-{
-  return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
-                (__v2df) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_rcp14_pd (__mmask8 __U, __m128d __A)
-{
-  return (__m128d) __builtin_ia32_rcp14pd128_mask ((__v2df) __A,
-                (__v2df)
-                _mm_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_rcp14_pd (__m256d __A)
-{
-  return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
-                (__v4df)
-                _mm256_setzero_pd (),
-                (__mmask8) -1);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_rcp14_pd (__m256d __W, __mmask8 __U, __m256d __A)
-{
-  return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
-                (__v4df) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_rcp14_pd (__mmask8 __U, __m256d __A)
-{
-  return (__m256d) __builtin_ia32_rcp14pd256_mask ((__v4df) __A,
-                (__v4df)
-                _mm256_setzero_pd (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_rcp14_ps (__m128 __A)
-{
-  return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
-               (__v4sf)
-               _mm_setzero_ps (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_rcp14_ps (__m128 __W, __mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
-               (__v4sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_rcp14_ps (__mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_rcp14ps128_mask ((__v4sf) __A,
-               (__v4sf)
-               _mm_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_rcp14_ps (__m256 __A)
-{
-  return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
-               (__v8sf)
-               _mm256_setzero_ps (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_rcp14_ps (__m256 __W, __mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
-               (__v8sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_rcp14_ps (__mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_rcp14ps256_mask ((__v8sf) __A,
-               (__v8sf)
-               _mm256_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_lzcnt_epi32 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
-                 (__v4si)
-                 _mm_setzero_si128 (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_lzcnt_epi32 (__m128i __W, __mmask8 __U, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
-                 (__v4si) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_lzcnt_epi32 (__mmask8 __U, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_vplzcntd_128_mask ((__v4si) __A,
-                 (__v4si)
-                 _mm_setzero_si128 (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_lzcnt_epi32 (__m256i __A)
-{
-  return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
-                 (__v8si)
-                 _mm256_setzero_si256 (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_lzcnt_epi32 (__m256i __W, __mmask8 __U, __m256i __A)
-{
-  return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
-                 (__v8si) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_lzcnt_epi32 (__mmask8 __U, __m256i __A)
-{
-  return (__m256i) __builtin_ia32_vplzcntd_256_mask ((__v8si) __A,
-                 (__v8si)
-                 _mm256_setzero_si256 (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_lzcnt_epi64 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
-                 (__v2di)
-                 _mm_setzero_di (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_lzcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
-                 (__v2di) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_lzcnt_epi64 (__mmask8 __U, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_vplzcntq_128_mask ((__v2di) __A,
-                 (__v2di)
-                 _mm_setzero_di (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_lzcnt_epi64 (__m256i __A)
-{
-  return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
-                 (__v4di)
-                 _mm256_setzero_si256 (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_lzcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A)
-{
-  return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
-                 (__v4di) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_lzcnt_epi64 (__mmask8 __U, __m256i __A)
-{
-  return (__m256i) __builtin_ia32_vplzcntq_256_mask ((__v4di) __A,
-                 (__v4di)
-                 _mm256_setzero_si256 (),
-                 (__mmask8) __U);
-}
-
-
-#define _mm_mask_permute_pd( __W, __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilpd_mask ((__v2df)( __X),( __C),\
-              (__v2df)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_maskz_permute_pd( __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilpd_mask ((__v2df)( __X),( __C),\
-              (__v2df)\
-              _mm_setzero_pd (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_mask_permute_pd( __W, __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilpd256_mask ((__v4df)( __X),( __C),\
-                 (__v4df)( __W),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_permute_pd( __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilpd256_mask ((__v4df)( __X),( __C),\
-                 (__v4df)\
-                 _mm256_setzero_pd (),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm_mask_permute_ps( __W, __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilps_mask ((__v4sf)( __X),( __C),\
-             (__v4sf)( __W),\
-             (__mmask8)( __U));\
-})
-
-#define _mm_maskz_permute_ps( __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilps_mask ((__v4sf)( __X),( __C),\
-             (__v4sf)\
-             _mm_setzero_ps (),\
-             (__mmask8)( __U));\
-})
-
-#define _mm256_mask_permute_ps( __W, __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilps256_mask ((__v8sf)( __X),( __C),\
-                (__v8sf)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_permute_ps( __U, __X, __C) __extension__ ({ \
-__builtin_ia32_vpermilps256_mask ((__v8sf)( __X),( __C),\
-                (__v8sf)\
-                _mm256_setzero_ps (),\
-                (__mmask8)( __U));\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_permutevar_pd (__m128d __W, __mmask8 __U, __m128d __A,
-      __m128i __C)
-{
-  return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
-                 (__v2di) __C,
-                 (__v2df) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_permutevar_pd (__mmask8 __U, __m128d __A, __m128i __C)
-{
-  return (__m128d) __builtin_ia32_vpermilvarpd_mask ((__v2df) __A,
-                 (__v2di) __C,
-                 (__v2df)
-                 _mm_setzero_pd (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_permutevar_pd (__m256d __W, __mmask8 __U, __m256d __A,
-         __m256i __C)
-{
-  return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
-              (__v4di) __C,
-              (__v4df) __W,
-              (__mmask8)
-              __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_permutevar_pd (__mmask8 __U, __m256d __A, __m256i __C)
-{
-  return (__m256d) __builtin_ia32_vpermilvarpd256_mask ((__v4df) __A,
-              (__v4di) __C,
-              (__v4df)
-              _mm256_setzero_pd (),
-              (__mmask8)
-              __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_permutevar_ps (__m128 __W, __mmask8 __U, __m128 __A,
-      __m128i __C)
-{
-  return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
-                (__v4si) __C,
-                (__v4sf) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_permutevar_ps (__mmask8 __U, __m128 __A, __m128i __C)
-{
-  return (__m128) __builtin_ia32_vpermilvarps_mask ((__v4sf) __A,
-                (__v4si) __C,
-                (__v4sf)
-                _mm_setzero_ps (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_permutevar_ps (__m256 __W, __mmask8 __U, __m256 __A,
-         __m256i __C)
-{
-  return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
-                   (__v8si) __C,
-                   (__v8sf) __W,
-                   (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_permutevar_ps (__mmask8 __U, __m256 __A, __m256i __C)
-{
-  return (__m256) __builtin_ia32_vpermilvarps256_mask ((__v8sf) __A,
-                   (__v8si) __C,
-                   (__v8sf)
-                   _mm256_setzero_ps (),
-                   (__mmask8) __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_test_epi32_mask (__m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
-                 (__v4si) __B,
-                 (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_mask_test_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmd128 ((__v4si) __A,
-                 (__v4si) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_test_epi32_mask (__m256i __A, __m256i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
-                 (__v8si) __B,
-                 (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_mask_test_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmd256 ((__v8si) __A,
-                 (__v8si) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_test_epi64_mask (__m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
-                 (__v2di) __B,
-                 (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_mask_test_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmq128 ((__v2di) __A,
-                 (__v2di) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_test_epi64_mask (__m256i __A, __m256i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
-                 (__v4di) __B,
-                 (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_mask_test_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestmq256 ((__v4di) __A,
-                 (__v4di) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_testn_epi32_mask (__m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
-            (__v4si) __B,
-            (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_mask_testn_epi32_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmd128 ((__v4si) __A,
-            (__v4si) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_testn_epi32_mask (__m256i __A, __m256i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
-            (__v8si) __B,
-            (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_mask_testn_epi32_mask (__mmask8 __U, __m256i __A, __m256i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmd256 ((__v8si) __A,
-            (__v8si) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_testn_epi64_mask (__m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
-            (__v2di) __B,
-            (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm_mask_testn_epi64_mask (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmq128 ((__v2di) __A,
-            (__v2di) __B, __U);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_testn_epi64_mask (__m256i __A, __m256i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
-            (__v4di) __B,
-            (__mmask8) -1);
-}
-
-static __inline__ __mmask8 __DEFAULT_FN_ATTRS
-_mm256_mask_testn_epi64_mask (__mmask8 __U, __m256i __A, __m256i __B)
-{
-  return (__mmask8) __builtin_ia32_ptestnmq256 ((__v4di) __A,
-            (__v4di) __B, __U);
-}
-
-
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_unpackhi_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
-       __m128i __B)
-{
-  return (__m128i) __builtin_ia32_punpckhdq128_mask ((__v4si) __A,
-                 (__v4si) __B,
-                 (__v4si) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_unpackhi_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_punpckhdq128_mask ((__v4si) __A,
-                 (__v4si) __B,
-                 (__v4si)
-                 _mm_setzero_si128 (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_unpackhi_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
-          __m256i __B)
-{
-  return (__m256i) __builtin_ia32_punpckhdq256_mask ((__v8si) __A,
-                 (__v8si) __B,
-                 (__v8si) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_unpackhi_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
-{
-  return (__m256i) __builtin_ia32_punpckhdq256_mask ((__v8si) __A,
-                 (__v8si) __B,
-                 (__v8si)
-                 _mm256_setzero_si256 (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_unpackhi_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
-       __m128i __B)
-{
-  return (__m128i) __builtin_ia32_punpckhqdq128_mask ((__v2di) __A,
-                  (__v2di) __B,
-                  (__v2di) __W,
-                  (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_unpackhi_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_punpckhqdq128_mask ((__v2di) __A,
-                  (__v2di) __B,
-                  (__v2di)
-                  _mm_setzero_di (),
-                  (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_unpackhi_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
-          __m256i __B)
-{
-  return (__m256i) __builtin_ia32_punpckhqdq256_mask ((__v4di) __A,
-                  (__v4di) __B,
-                  (__v4di) __W,
-                  (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_unpackhi_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
-{
-  return (__m256i) __builtin_ia32_punpckhqdq256_mask ((__v4di) __A,
-                  (__v4di) __B,
-                  (__v4di)
-                  _mm256_setzero_si256 (),
-                  (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_unpacklo_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
-       __m128i __B)
-{
-  return (__m128i) __builtin_ia32_punpckldq128_mask ((__v4si) __A,
-                 (__v4si) __B,
-                 (__v4si) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_unpacklo_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_punpckldq128_mask ((__v4si) __A,
-                 (__v4si) __B,
-                 (__v4si)
-                 _mm_setzero_si128 (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_unpacklo_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
-          __m256i __B)
-{
-  return (__m256i) __builtin_ia32_punpckldq256_mask ((__v8si) __A,
-                 (__v8si) __B,
-                 (__v8si) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_unpacklo_epi32 (__mmask8 __U, __m256i __A, __m256i __B)
-{
-  return (__m256i) __builtin_ia32_punpckldq256_mask ((__v8si) __A,
-                 (__v8si) __B,
-                 (__v8si)
-                 _mm256_setzero_si256 (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_unpacklo_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
-       __m128i __B)
-{
-  return (__m128i) __builtin_ia32_punpcklqdq128_mask ((__v2di) __A,
-                  (__v2di) __B,
-                  (__v2di) __W,
-                  (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_unpacklo_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_punpcklqdq128_mask ((__v2di) __A,
-                  (__v2di) __B,
-                  (__v2di)
-                  _mm_setzero_di (),
-                  (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_unpacklo_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
-          __m256i __B)
-{
-  return (__m256i) __builtin_ia32_punpcklqdq256_mask ((__v4di) __A,
-                  (__v4di) __B,
-                  (__v4di) __W,
-                  (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_unpacklo_epi64 (__mmask8 __U, __m256i __A, __m256i __B)
-{
-  return (__m256i) __builtin_ia32_punpcklqdq256_mask ((__v4di) __A,
-                  (__v4di) __B,
-                  (__v4di)
-                  _mm256_setzero_si256 (),
-                  (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_sra_epi32 (__m128i __W, __mmask8 __U, __m128i __A,
-        __m128i __B)
-{
-  return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
-             (__v4si) __B,
-             (__v4si) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_sra_epi32 (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_psrad128_mask ((__v4si) __A,
-             (__v4si) __B,
-             (__v4si)
-             _mm_setzero_si128 (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_sra_epi32 (__m256i __W, __mmask8 __U, __m256i __A,
-           __m128i __B)
-{
-  return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
-             (__v4si) __B,
-             (__v8si) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_sra_epi32 (__mmask8 __U, __m256i __A, __m128i __B)
-{
-  return (__m256i) __builtin_ia32_psrad256_mask ((__v8si) __A,
-             (__v4si) __B,
-             (__v8si)
-             _mm256_setzero_si256 (),
-             (__mmask8) __U);
-}
-
-#define _mm_mask_srai_epi32( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_psradi128_mask ((__v4si)( __A),( __imm),\
-              (__v4si)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_maskz_srai_epi32( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_psradi128_mask ((__v4si)( __A),( __imm),\
-              (__v4si)\
-              _mm_setzero_si128 (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_mask_srai_epi32( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_psradi256_mask ((__v8si)( __A),( __imm),\
-              (__v8si)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_srai_epi32( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_psradi256_mask ((__v8si)( __A),( __imm),\
-              (__v8si)\
-              _mm256_setzero_si256 (),\
-              (__mmask8)( __U));\
-})
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_sra_epi64 (__m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
-             (__v2di) __B,
-             (__v2di)
-             _mm_setzero_di (),
-             (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_sra_epi64 (__m128i __W, __mmask8 __U, __m128i __A,
-        __m128i __B)
-{
-  return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
-             (__v2di) __B,
-             (__v2di) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_sra_epi64 (__mmask8 __U, __m128i __A, __m128i __B)
-{
-  return (__m128i) __builtin_ia32_psraq128_mask ((__v2di) __A,
-             (__v2di) __B,
-             (__v2di)
-             _mm_setzero_di (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_sra_epi64 (__m256i __A, __m128i __B)
-{
-  return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
-             (__v2di) __B,
-             (__v4di)
-             _mm256_setzero_si256 (),
-             (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_sra_epi64 (__m256i __W, __mmask8 __U, __m256i __A,
-           __m128i __B)
-{
-  return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
-             (__v2di) __B,
-             (__v4di) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_sra_epi64 (__mmask8 __U, __m256i __A, __m128i __B)
-{
-  return (__m256i) __builtin_ia32_psraq256_mask ((__v4di) __A,
-             (__v2di) __B,
-             (__v4di)
-             _mm256_setzero_si256 (),
-             (__mmask8) __U);
-}
-
-#define _mm_srai_epi64( __A, __imm) __extension__ ({ \
-__builtin_ia32_psraqi128_mask ((__v2di)( __A),( __imm),\
-              (__v2di)\
-              _mm_setzero_di (),\
-              (__mmask8) -1);\
-})
-
-#define _mm_mask_srai_epi64( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_psraqi128_mask ((__v2di)( __A),( __imm),\
-              (__v2di)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_maskz_srai_epi64( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_psraqi128_mask ((__v2di)( __A),( __imm),\
-              (__v2di)\
-              _mm_setzero_si128 (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_srai_epi64( __A, __imm) __extension__ ({ \
-__builtin_ia32_psraqi256_mask ((__v4di)( __A),( __imm),\
-              (__v4di)\
-              _mm256_setzero_si256 (),\
-              (__mmask8) -1);\
-})
-
-#define _mm256_mask_srai_epi64( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_psraqi256_mask ((__v4di)( __A),( __imm),\
-              (__v4di)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_srai_epi64( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_psraqi256_mask ((__v4di)( __A),( __imm),\
-              (__v4di)\
-              _mm256_setzero_si256 (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_ternarylogic_epi32( __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd128_mask ((__v4si)( __A),\
-                 (__v4si)( __B),\
-                 (__v4si)( __C),( imm),\
-                 (__mmask8) -1);\
-})
-
-#define _mm_mask_ternarylogic_epi32( __A, __U, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd128_mask ((__v4si)( __A),\
-                 (__v4si)( __B),\
-                 (__v4si)( __C),( imm),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm_maskz_ternarylogic_epi32( __U, __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd128_maskz ((__v4si)( __A),\
-                  (__v4si)( __B),\
-                  (__v4si)( __C),\
-                 ( imm),\
-                  (__mmask8)( __U));\
-})
-
-#define _mm256_ternarylogic_epi32( __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd256_mask ((__v8si)( __A),\
-                 (__v8si)( __B),\
-                 (__v8si)( __C),( imm),\
-                 (__mmask8) -1);\
-})
-
-#define _mm256_mask_ternarylogic_epi32( __A, __U, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd256_mask ((__v8si)( __A),\
-                 (__v8si)( __B),\
-                 (__v8si)( __C),( imm),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_ternarylogic_epi32( __U, __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogd256_maskz ((__v8si)( __A),\
-                  (__v8si)( __B),\
-                  (__v8si)( __C),\
-                 ( imm),\
-                  (__mmask8)( __U));\
-})
-
-#define _mm_ternarylogic_epi64( __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq128_mask ((__v2di)( __A),\
-                 (__v2di)( __B),\
-                 (__v2di)( __C),( imm),\
-                 (__mmask8) -1);\
-})
-
-#define _mm_mask_ternarylogic_epi64( __A, __U, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq128_mask ((__v2di)( __A),\
-                 (__v2di)( __B),\
-                 (__v2di)( __C),( imm),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm_maskz_ternarylogic_epi64( __U, __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq128_maskz ((__v2di)( __A),\
-                  (__v2di)( __B),\
-                  (__v2di)( __C),\
-                 ( imm),\
-                  (__mmask8)( __U));\
-})
-
-#define _mm256_ternarylogic_epi64( __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq256_mask ((__v4di)( __A),\
-                 (__v4di)( __B),\
-                 (__v4di)( __C),( imm),\
-                 (__mmask8) -1);\
-})
-
-#define _mm256_mask_ternarylogic_epi64( __A, __U, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq256_mask ((__v4di)( __A),\
-                 (__v4di)( __B),\
-                 (__v4di)( __C),( imm),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_ternarylogic_epi64( __U, __A, __B, __C, imm) __extension__ ({ \
-__builtin_ia32_pternlogq256_maskz ((__v4di)( __A),\
-                  (__v4di)( __B),\
-                  (__v4di)( __C),\
-                 ( imm),\
-                  (__mmask8)( __U));\
-})
-
-
-
-#define _mm256_shuffle_f32x4( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f32x4_256_mask ((__v8sf)( __A),\
-                  (__v8sf)( __B),\
-                 ( __imm),\
-                  (__v8sf)\
-                  _mm256_setzero_ps (),\
-                  (__mmask8) -1);\
-})
-
-#define _mm256_mask_shuffle_f32x4( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f32x4_256_mask ((__v8sf)( __A),\
-                  (__v8sf)( __B),\
-                 ( __imm),\
-                  (__v8sf)( __W),\
-                  (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_shuffle_f32x4( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f32x4_256_mask ((__v8sf)( __A),\
-                  (__v8sf)( __B),\
-                 ( __imm),\
-                  (__v8sf)\
-                  _mm256_setzero_ps (),\
-                  (__mmask8)( __U));\
-})
-
-#define _mm256_shuffle_f64x2( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f64x2_256_mask ((__v4df)( __A),\
-                   (__v4df)( __B),\
-                  ( __imm),\
-                   (__v4df)\
-                   _mm256_setzero_pd (),\
-                   (__mmask8) -1);\
-})
-
-#define _mm256_mask_shuffle_f64x2( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f64x2_256_mask ((__v4df)( __A),\
-                   (__v4df)( __B),\
-                  ( __imm),\
-                   (__v4df)( __W),\
-                   (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_shuffle_f64x2( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_f64x2_256_mask ((__v4df)( __A),\
-                   (__v4df)( __B),\
-                  ( __imm),\
-                   (__v4df)\
-                   _mm256_setzero_pd (),\
-                   (__mmask8)( __U));\
-})
-
-#define _mm256_shuffle_i32x4( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i32x4_256_mask ((__v8si)( __A),\
-                   (__v8si)( __B),\
-                  ( __imm),\
-                   (__v8si)\
-                   _mm256_setzero_si256 (),\
-                   (__mmask8) -1);\
-})
-
-#define _mm256_mask_shuffle_i32x4( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i32x4_256_mask ((__v8si)( __A),\
-                   (__v8si)( __B),\
-                  ( __imm),\
-                   (__v8si)( __W),\
-                   (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_shuffle_i32x4( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i32x4_256_mask ((__v8si)( __A),\
-                   (__v8si)( __B),\
-                  ( __imm),\
-                   (__v8si)\
-                   _mm256_setzero_si256 (),\
-                   (__mmask8)( __U));\
-})
-
-#define _mm256_shuffle_i64x2( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i64x2_256_mask ((__v4di)( __A),\
-                   (__v4di)( __B),\
-                  ( __imm),\
-                   (__v4di)\
-                   _mm256_setzero_si256 (),\
-                   (__mmask8) -1);\
-})
-
-#define _mm256_mask_shuffle_i64x2( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i64x2_256_mask ((__v4di)( __A),\
-                   (__v4di)( __B),\
-                  ( __imm),\
-                   (__v4di)( __W),\
-                   (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_shuffle_i64x2( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shuf_i64x2_256_mask ((__v4di)( __A),\
-                   (__v4di)( __B),\
-                  ( __imm),\
-                   (__v4di)\
-                   _mm256_setzero_si256 (),\
-                   (__mmask8)( __U));\
-})
-
-#define _mm_mask_shuffle_pd( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shufpd128_mask ((__v2df)( __A),\
-              (__v2df)( __B),( __imm),\
-              (__v2df)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_maskz_shuffle_pd( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shufpd128_mask ((__v2df)( __A),\
-              (__v2df)( __B),( __imm),\
-              (__v2df)\
-              _mm_setzero_pd (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_mask_shuffle_pd( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shufpd256_mask ((__v4df)( __A),\
-              (__v4df)( __B),( __imm),\
-              (__v4df)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_shuffle_pd( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shufpd256_mask ((__v4df)( __A),\
-              (__v4df)( __B),( __imm),\
-              (__v4df)\
-              _mm256_setzero_pd (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_mask_shuffle_ps( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shufps128_mask ((__v4sf)( __A),\
-             (__v4sf)( __B),( __imm),\
-             (__v4sf)( __W),\
-             (__mmask8)( __U));\
-})
-
-#define _mm_maskz_shuffle_ps( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shufps128_mask ((__v4sf)( __A),\
-             (__v4sf)( __B),( __imm),\
-             (__v4sf)\
-             _mm_setzero_ps (),\
-             (__mmask8)( __U));\
-})
-
-#define _mm256_mask_shuffle_ps( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shufps256_mask ((__v8sf)( __A),\
-             (__v8sf)( __B),( __imm),\
-             (__v8sf)( __W),\
-             (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_shuffle_ps( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_shufps256_mask ((__v8sf)( __A),\
-             (__v8sf)( __B),( __imm),\
-             (__v8sf)\
-             _mm256_setzero_ps (),\
-             (__mmask8)( __U));\
-})
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_rsqrt14_pd (__m128d __A)
-{
-  return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
-                 (__v2df)
-                 _mm_setzero_pd (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_rsqrt14_pd (__m128d __W, __mmask8 __U, __m128d __A)
-{
-  return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
-                 (__v2df) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_rsqrt14_pd (__mmask8 __U, __m128d __A)
-{
-  return (__m128d) __builtin_ia32_rsqrt14pd128_mask ((__v2df) __A,
-                 (__v2df)
-                 _mm_setzero_pd (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_rsqrt14_pd (__m256d __A)
-{
-  return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
-                 (__v4df)
-                 _mm256_setzero_pd (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_rsqrt14_pd (__m256d __W, __mmask8 __U, __m256d __A)
-{
-  return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
-                 (__v4df) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_rsqrt14_pd (__mmask8 __U, __m256d __A)
-{
-  return (__m256d) __builtin_ia32_rsqrt14pd256_mask ((__v4df) __A,
-                 (__v4df)
-                 _mm256_setzero_pd (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_rsqrt14_ps (__m128 __A)
-{
-  return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
-                (__v4sf)
-                _mm_setzero_ps (),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_rsqrt14_ps (__m128 __W, __mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
-                (__v4sf) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_rsqrt14_ps (__mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_rsqrt14ps128_mask ((__v4sf) __A,
-                (__v4sf)
-                _mm_setzero_ps (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_rsqrt14_ps (__m256 __A)
-{
-  return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
-                (__v8sf)
-                _mm256_setzero_ps (),
-                (__mmask8) -1);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_rsqrt14_ps (__m256 __W, __mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
-                (__v8sf) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_rsqrt14_ps (__mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_rsqrt14ps256_mask ((__v8sf) __A,
-                (__v8sf)
-                _mm256_setzero_ps (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_broadcast_f32x4 (__m128 __A)
-{
-  return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
-                (__v8sf)_mm256_undefined_pd (),
-                (__mmask8) - 1);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_broadcast_f32x4 (__m256 __O, __mmask8 __M, __m128 __A)
-{
-  return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
-                (__v8sf) __O,
-                __M);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcast_f32x4 (__mmask8 __M, __m128 __A)
-{
-  return (__m256) __builtin_ia32_broadcastf32x4_256_mask ((__v4sf) __A,
-                (__v8sf) _mm256_setzero_ps (),
-                __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_broadcast_i32x4 (__m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
-                 (__v8si)_mm256_undefined_si256 (),
-                 (__mmask8) - 1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_broadcast_i32x4 (__m256i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si) __A,
-                 (__v8si)
-                 __O, __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcast_i32x4 (__mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_broadcasti32x4_256_mask ((__v4si)
-                 __A,
-                 (__v8si) _mm256_setzero_si256 (),
-                 __M);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_broadcastsd_pd (__m256d __O, __mmask8 __M, __m128d __A)
-{
-  return (__m256d) __builtin_ia32_broadcastsd256_mask ((__v2df) __A,
-                   (__v4df) __O,
-                   __M);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
-{
-  return (__m256d) __builtin_ia32_broadcastsd256_mask ((__v2df) __A,
-                   (__v4df) _mm256_setzero_pd (),
-                   __M);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_broadcastss_ps (__m128 __O, __mmask8 __M, __m128 __A)
-{
-  return (__m128) __builtin_ia32_broadcastss128_mask ((__v4sf) __A,
-                  (__v4sf) __O,
-                  __M);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
-{
-  return (__m128) __builtin_ia32_broadcastss128_mask ((__v4sf) __A,
-                  (__v4sf) _mm_setzero_ps (),
-                  __M);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_broadcastss_ps (__m256 __O, __mmask8 __M, __m128 __A)
-{
-  return (__m256) __builtin_ia32_broadcastss256_mask ((__v4sf) __A,
-                  (__v8sf) __O,
-                  __M);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcastss_ps (__mmask8 __M, __m128 __A)
-{
-  return (__m256) __builtin_ia32_broadcastss256_mask ((__v4sf) __A,
-                  (__v8sf) _mm256_setzero_ps (),
-                  __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_broadcastd_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastd128_mask ((__v4si) __A,
-                   (__v4si) __O,
-                   __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastd128_mask ((__v4si) __A,
-                   (__v4si) _mm_setzero_si128 (),
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_broadcastd_epi32 (__m256i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastd256_mask ((__v4si) __A,
-                   (__v8si) __O,
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcastd_epi32 (__mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastd256_mask ((__v4si) __A,
-                   (__v8si) _mm256_setzero_si256 (),
-                   __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_broadcastq_epi64 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastq128_mask ((__v2di) __A,
-                   (__v2di) __O,
-                   __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pbroadcastq128_mask ((__v2di) __A,
-                   (__v2di) _mm_setzero_si128 (),
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_broadcastq_epi64 (__m256i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastq256_mask ((__v2di) __A,
-                   (__v4di) __O,
-                   __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
-{
-  return (__m256i) __builtin_ia32_pbroadcastq256_mask ((__v2di) __A,
-                   (__v4di) _mm256_setzero_si256 (),
-                   __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtsepi32_epi8 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
-               (__v16qi)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
-               (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtsepi32_epi8 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb128_mask ((__v4si) __A,
-               (__v16qi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovsdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtsepi32_epi8 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
-               (__v16qi)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
-               (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtsepi32_epi8 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdb256_mask ((__v8si) __A,
-               (__v16qi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovsdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtsepi32_epi16 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
-               (__v8hi)_mm_setzero_si128 (),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
-               (__v8hi)__O,
-               __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtsepi32_epi16 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdw128_mask ((__v4si) __A,
-               (__v8hi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovsdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtsepi32_epi16 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
-               (__v8hi)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
-               (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtsepi32_epi16 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsdw256_mask ((__v8si) __A,
-               (__v8hi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovsdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtsepi64_epi8 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
-               (__v16qi)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
-               (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtsepi64_epi8 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb128_mask ((__v2di) __A,
-               (__v16qi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovsqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtsepi64_epi8 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
-               (__v16qi)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
-               (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtsepi64_epi8 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqb256_mask ((__v4di) __A,
-               (__v16qi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovsqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtsepi64_epi32 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
-               (__v4si)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
-               (__v4si) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtsepi64_epi32 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqd128_mask ((__v2di) __A,
-               (__v4si) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovsqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtsepi64_epi32 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
-               (__v4si)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
-               (__v4si)__O,
-               __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtsepi64_epi32 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqd256_mask ((__v4di) __A,
-               (__v4si) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovsqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtsepi64_epi16 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
-               (__v8hi)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
-               (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtsepi64_epi16 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw128_mask ((__v2di) __A,
-               (__v8hi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovsqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtsepi64_epi16 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
-               (__v8hi)_mm_undefined_si128(),
-               (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
-               (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtsepi64_epi16 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovsqw256_mask ((__v4di) __A,
-               (__v8hi) _mm_setzero_si128 (),
-               __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovsqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtusepi32_epi8 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
-                (__v16qi)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
-                (__v16qi) __O,
-                __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtusepi32_epi8 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb128_mask ((__v4si) __A,
-                (__v16qi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovusdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtusepi32_epi8 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
-                (__v16qi)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
-                (__v16qi) __O,
-                __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtusepi32_epi8 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdb256_mask ((__v8si) __A,
-                (__v16qi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovusdb256mem_mask ((__v16qi*) __P, (__v8si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtusepi32_epi16 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
-                (__v8hi)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
-                (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtusepi32_epi16 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdw128_mask ((__v4si) __A,
-                (__v8hi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovusdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtusepi32_epi16 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
-                (__v8hi) _mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
-                (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtusepi32_epi16 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusdw256_mask ((__v8si) __A,
-                (__v8hi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi32_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovusdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtusepi64_epi8 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
-                (__v16qi)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
-                (__v16qi) __O,
-                __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtusepi64_epi8 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb128_mask ((__v2di) __A,
-                (__v16qi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovusqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtusepi64_epi8 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
-                (__v16qi)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
-                (__v16qi) __O,
-                __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtusepi64_epi8 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqb256_mask ((__v4di) __A,
-                (__v16qi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovusqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtusepi64_epi32 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
-                (__v4si)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
-                (__v4si) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtusepi64_epi32 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqd128_mask ((__v2di) __A,
-                (__v4si) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovusqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtusepi64_epi32 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
-                (__v4si)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
-                (__v4si) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtusepi64_epi32 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqd256_mask ((__v4di) __A,
-                (__v4si) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovusqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtusepi64_epi16 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
-                (__v8hi)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
-                (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtusepi64_epi16 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw128_mask ((__v2di) __A,
-                (__v8hi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovusqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtusepi64_epi16 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
-                (__v8hi)_mm_undefined_si128(),
-                (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
-                (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtusepi64_epi16 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovusqw256_mask ((__v4di) __A,
-                (__v8hi) _mm_setzero_si128 (),
-                __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtusepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
-{
-  return __builtin_ia32_pmovusqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtepi32_epi8 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
-              (__v16qi)_mm_undefined_si128(),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
-              (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtepi32_epi8 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb128_mask ((__v4si) __A,
-              (__v16qi)
-              _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovdb128mem_mask ((__v16qi *) __P, (__v4si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtepi32_epi8 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
-              (__v16qi)_mm_undefined_si128(),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi32_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
-              (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtepi32_epi8 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdb256_mask ((__v8si) __A,
-              (__v16qi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi32_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovdb256mem_mask ((__v16qi *) __P, (__v8si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtepi32_epi16 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
-              (__v8hi) _mm_setzero_si128 (),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
-              (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtepi32_epi16 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdw128_mask ((__v4si) __A,
-              (__v8hi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi32_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovdw128mem_mask ((__v8hi *) __P, (__v4si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtepi32_epi16 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
-              (__v8hi)_mm_setzero_si128 (),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi32_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
-              (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtepi32_epi16 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovdw256_mask ((__v8si) __A,
-              (__v8hi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi32_storeu_epi16 (void *  __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovdw256mem_mask ((__v8hi *) __P, (__v8si) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtepi64_epi8 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
-              (__v16qi) _mm_undefined_si128(),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
-              (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtepi64_epi8 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb128_mask ((__v2di) __A,
-              (__v16qi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovqb128mem_mask ((__v16qi *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtepi64_epi8 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
-              (__v16qi) _mm_undefined_si128(),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
-              (__v16qi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtepi64_epi8 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqb256_mask ((__v4di) __A,
-              (__v16qi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovqb256mem_mask ((__v16qi *) __P, (__v4di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtepi64_epi32 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
-              (__v4si)_mm_undefined_si128(),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
-              (__v4si) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtepi64_epi32 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqd128_mask ((__v2di) __A,
-              (__v4si) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovqd128mem_mask ((__v4si *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtepi64_epi32 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
-              (__v4si) _mm_undefined_si128(),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi64_epi32 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
-              (__v4si) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtepi64_epi32 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqd256_mask ((__v4di) __A,
-              (__v4si) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi64_storeu_epi32 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovqd256mem_mask ((__v4si *) __P, (__v4di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_cvtepi64_epi16 (__m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
-              (__v8hi) _mm_undefined_si128(),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
-              (__v8hi)__O,
-              __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm_maskz_cvtepi64_epi16 (__mmask8 __M, __m128i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw128_mask ((__v2di) __A,
-              (__v8hi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m128i __A)
-{
-  __builtin_ia32_pmovqw128mem_mask ((__v8hi *) __P, (__v2di) __A, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_cvtepi64_epi16 (__m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
-              (__v8hi)_mm_undefined_si128(),
-              (__mmask8) -1);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
-              (__v8hi) __O, __M);
-}
-
-static __inline__ __m128i __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtepi64_epi16 (__mmask8 __M, __m256i __A)
-{
-  return (__m128i) __builtin_ia32_pmovqw256_mask ((__v4di) __A,
-              (__v8hi) _mm_setzero_si128 (),
-              __M);
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS
-_mm256_mask_cvtepi64_storeu_epi16 (void * __P, __mmask8 __M, __m256i __A)
-{
-  __builtin_ia32_pmovqw256mem_mask ((__v8hi *) __P, (__v4di) __A, __M);
-}
-
-#define _mm256_extractf32x4_ps( __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf32x4_256_mask ((__v8sf)( __A),\
-              ( __imm),\
-              (__v4sf) _mm_setzero_ps (),\
-              (__mmask8) -1);\
-})
-
-#define _mm256_mask_extractf32x4_ps( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf32x4_256_mask ((__v8sf)( __A),\
-                ( __imm),\
-                (__v4sf)( __W),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm256_maskz_extractf32x4_ps( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extractf32x4_256_mask ((__v8sf)( __A),\
-                ( __imm),\
-                (__v4sf) _mm_setzero_ps (),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm256_extracti32x4_epi32( __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x4_256_mask ((__v8si)( __A),\
-                ( __imm),\
-                (__v4si) _mm_setzero_si128 (),\
-                (__mmask8) -1);\
-})
-
-#define _mm256_mask_extracti32x4_epi32( __W, __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x4_256_mask ((__v8si)( __A),\
-                ( __imm),\
-                (__v4si)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_extracti32x4_epi32( __U, __A, __imm) __extension__ ({ \
-__builtin_ia32_extracti32x4_256_mask ((__v8si)( __A),\
-               ( __imm),\
-               (__v4si) _mm_setzero_si128 (),\
-               (__mmask8) ( __U));\
-})
-
-#define _mm256_insertf32x4( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf32x4_256_mask ((__v8sf)( __A),\
-                (__v4sf)( __B),\
-                ( __imm),\
-                (__v8sf) _mm256_setzero_ps (),\
-                (__mmask8) -1);\
-})
-
-#define _mm256_mask_insertf32x4( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf32x4_256_mask ((__v8sf)( __A),\
-                (__v4sf)( __B),\
-                ( __imm),\
-                (__v8sf)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_insertf32x4( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_insertf32x4_256_mask ((__v8sf)( __A),\
-                (__v4sf)( __B),\
-                ( __imm),\
-                (__v8sf) _mm256_setzero_ps (),\
-                (__mmask8)( __U));\
-})
-
-#define _mm256_inserti32x4( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti32x4_256_mask ((__v8si)( __A),\
-                (__v4si)( __B),\
-                ( __imm),\
-                (__v8si) _mm256_setzero_si256 (),\
-                (__mmask8) -1);\
-})
-
-#define _mm256_mask_inserti32x4( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti32x4_256_mask ((__v8si)( __A),\
-                (__v4si)( __B),\
-                ( __imm),\
-                (__v8si)( __W),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm256_maskz_inserti32x4( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_inserti32x4_256_mask ((__v8si)( __A),\
-                (__v4si)( __B),\
-                ( __imm),\
-                (__v8si) _mm256_setzero_si256 (),\
-                (__mmask8) ( __U));\
-})
-
-#define _mm_getmant_pd( __A, __B, __C) __extension__({\
-__builtin_ia32_getmantpd128_mask ((__v2df) __A,\
-                 (__C << 2) | __B,\
-                 (__v2df) _mm_setzero_pd (),\
-                 (__mmask8) -1);\
-})
-
-#define _mm_mask_getmant_pd(  __W,  __U, __A, __B, __C) __extension__({\
-__builtin_ia32_getmantpd128_mask ((__v2df) __A,\
-                 (__C << 2) | __B,\
-                 (__v2df) __W,\
-                 (__mmask8) __U);\
-})
-
-#define _mm_maskz_getmant_pd( __U, __A, __B, __C) __extension__({\
-__builtin_ia32_getmantpd128_mask ((__v2df) __A,\
-                 (__C << 2) | __B,\
-                 (__v2df) _mm_setzero_pd (),\
-                 (__mmask8) __U);\
-})
-
-#define _mm256_getmant_pd( __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantpd256_mask ((__v4df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v4df) _mm256_setzero_pd (),\
-                 (__mmask8) -1);\
-})
-
-#define _mm256_mask_getmant_pd( __W, __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantpd256_mask ((__v4df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v4df)( __W),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_getmant_pd( __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantpd256_mask ((__v4df)( __A),\
-                 (__C << 2) |( __B),\
-                 (__v4df) _mm256_setzero_pd (),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm_getmant_ps( __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps128_mask ((__v4sf)( __A),\
-                (__C << 2) |( __B),\
-                (__v4sf) _mm_setzero_ps (),\
-                (__mmask8) -1);\
-})
-
-#define _mm_mask_getmant_ps( __W, __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps128_mask ((__v4sf)( __A),\
-                (__C << 2) |( __B),\
-                (__v4sf)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm_maskz_getmant_ps( __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps128_mask ((__v4sf)( __A),\
-                (__C << 2) |( __B),\
-                (__v4sf) _mm_setzero_ps (),\
-                (__mmask8)( __U));\
-})
-
-#define _mm256_getmant_ps( __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps256_mask ((__v8sf)( __A),\
-                (__C << 2) |( __B),\
-                (__v8sf) _mm256_setzero_ps (),\
-                (__mmask8) -1);\
-})
-
-#define _mm256_mask_getmant_ps( __W, __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps256_mask ((__v8sf)( __A),\
-                (__C << 2) |( __B),\
-                (__v8sf)( __W),\
-                (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_getmant_ps( __U, __A, __B, __C) __extension__ ({ \
-__builtin_ia32_getmantps256_mask ((__v8sf)( __A),\
-                (__C << 2) |( __B),\
-                (__v8sf) _mm256_setzero_ps (),\
-                (__mmask8)( __U));\
-})
-
-#define _mm_mmask_i64gather_pd( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3div2df ((__v2df) __v1_old, __addr, (__v2di) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm_mmask_i64gather_epi64( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3div2di ((__v2di) __v1_old, __addr, (__v2di) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mmask_i64gather_pd( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3div4df ((__v4df) __v1_old, __addr, (__v4di) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mmask_i64gather_epi64( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3div4di ((__v4di) __v1_old, __addr, (__v4di) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm_mmask_i64gather_ps( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3div4sf ((__v4sf) __v1_old, __addr, (__v2di) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm_mmask_i64gather_epi32( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3div4si ((__v4si) __v1_old, __addr, (__v2di) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mmask_i64gather_ps( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3div8sf ((__v4sf) __v1_old, __addr, (__v4di) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mmask_i64gather_epi32( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3div8si ((__v4si) __v1_old, __addr, (__v4di) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm_mmask_i32gather_pd( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3siv2df ((__v2df) __v1_old, __addr, (__v4si) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm_mmask_i32gather_epi64( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3siv2di ((__v2di) __v1_old, __addr, (__v4si) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mmask_i32gather_pd( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3siv4df ((__v4df) __v1_old, __addr, (__v4si) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mmask_i32gather_epi64( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3siv4di ((__v4di) __v1_old, __addr, (__v4si) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm_mmask_i32gather_ps( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3siv4sf ((__v4sf) __v1_old, __addr, (__v4si) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm_mmask_i32gather_epi32( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3siv4si ((__v4si) __v1_old, __addr, (__v4si) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mmask_i32gather_ps( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3siv8sf ((__v8sf) __v1_old, __addr, (__v8si) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mmask_i32gather_epi32( __v1_old, __mask, __index, __addr, __scale) __extension__ ({\
-__builtin_ia32_gather3siv8si ((__v8si) __v1_old, __addr, (__v8si) __index,\
-                               __mask, __scale);\
-})
-
-#define _mm256_mask_permutex_pd( __W, __U, __X, __imm) __extension__ ({ \
-__builtin_ia32_permdf256_mask ((__v4df)( __X),( __imm),\
-                 (__v4df)( __W),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_permutex_pd( __U, __X, __imm) __extension__ ({ \
-__builtin_ia32_permdf256_mask ((__v4df)( __X),( __imm),\
-                 (__v4df) _mm256_setzero_pd (),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm256_permutex_pd( __X, __M) __extension__ ({ \
-__builtin_ia32_permdf256_mask ((__v4df)( __X),( __M),\
-                 (__v4df) _mm256_undefined_pd (),\
-                 (__mmask8) -1);\
-})
-
-#define _mm256_mask_permutex_epi64( __W, __M, __X, __I) __extension__ ({ \
-__builtin_ia32_permdi256_mask ((__v4di)( __X),\
-                 ( __I),\
-                 (__v4di)( __W),\
-                 (__mmask8)( __M));\
-})
-
-#define _mm256_maskz_permutex_epi64( __M, __X, __I) __extension__ ({ \
-__builtin_ia32_permdi256_mask ((__v4di)( __X),\
-                 ( __I),\
-                 (__v4di) _mm256_setzero_si256 (),\
-                 (__mmask8)( __M));\
-})
-
-#define _mm256_permutex_epi64( __X, __I) __extension__ ({ \
-__builtin_ia32_permdi256_mask ((__v4di)( __X),\
-                 ( __I),\
-                 (__v4di) _mm256_undefined_si256 (),\
-                 (__mmask8) -1);\
-})
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_permutexvar_pd (__m256i __X, __m256d __Y)
-{
-  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
-                 (__v4di) __X,
-                 (__v4df) _mm256_undefined_si256 (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
-          __m256d __Y)
-{
-  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
-                 (__v4di) __X,
-                 (__v4df) __W,
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
-{
-  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
-                 (__v4di) __X,
-                 (__v4df) _mm256_setzero_pd (),
-                 (__mmask8) __U);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
-{
-  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
-                 (__v4di) __X,
-                 (__v4di) _mm256_setzero_si256 (),
-                 (__mmask8) __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
-{
-  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
-                 (__v4di) __X,
-                 (__v4di) _mm256_undefined_si256 (),
-                 (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
-             __m256i __Y)
-{
-  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
-                 (__v4di) __X,
-                 (__v4di) __W,
-                 __M);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
-          __m256 __Y)
-{
-  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
-                (__v8si) __X,
-                (__v8sf) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
-{
-  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
-                (__v8si) __X,
-                (__v8sf) _mm256_setzero_ps (),
-                (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_permutexvar_ps (__m256i __X, __m256 __Y)
-{
-  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
-                (__v8si) __X,
-                (__v8sf) _mm256_undefined_si256 (),
-                (__mmask8) -1);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
-{
-  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
-                 (__v8si) __X,
-                 (__v8si) _mm256_setzero_si256 (),
-                 __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
-             __m256i __Y)
-{
-  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
-                 (__v8si) __X,
-                 (__v8si) __W,
-                 (__mmask8) __M);
-}
-
-static __inline__ __m256i __DEFAULT_FN_ATTRS
-_mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
-{
-  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
-                 (__v8si) __X,
-                 (__v8si) _mm256_undefined_si256(),
-                 (__mmask8) -1);
-}
-
-#define _mm_alignr_epi32( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignd128_mask ((__v4si)( __A),\
-              (__v4si)( __B),( __imm),\
-              (__v4si) _mm_undefined_si128 (),\
-              (__mmask8) -1);\
-})
-
-#define _mm_mask_alignr_epi32( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignd128_mask ((__v4si)( __A),\
-              (__v4si)( __B),( __imm),\
-              (__v4si)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_maskz_alignr_epi32( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignd128_mask ((__v4si)( __A),\
-              (__v4si)( __B),( __imm),\
-              (__v4si) _mm_setzero_si128 (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_alignr_epi32( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignd256_mask ((__v8si)( __A),\
-              (__v8si)( __B),( __imm),\
-              (__v8si) _mm256_undefined_si256 (),\
-              (__mmask8) -1);\
-})
-
-#define _mm256_mask_alignr_epi32( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignd256_mask ((__v8si)( __A),\
-              (__v8si)( __B),( __imm),\
-              (__v8si)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_alignr_epi32( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignd256_mask ((__v8si)( __A),\
-              (__v8si)( __B),( __imm),\
-              (__v8si) _mm256_setzero_si256 (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_alignr_epi64( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignq128_mask ((__v2di)( __A),\
-              (__v2di)( __B),( __imm),\
-              (__v2di) _mm_setzero_di (),\
-              (__mmask8) -1);\
-})
-
-#define _mm_mask_alignr_epi64( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignq128_mask ((__v2di)( __A),\
-              (__v2di)( __B),( __imm),\
-              (__v2di)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_maskz_alignr_epi64( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignq128_mask ((__v2di)( __A),\
-              (__v2di)( __B),( __imm),\
-              (__v2di) _mm_setzero_di (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_alignr_epi64( __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignq256_mask ((__v4di)( __A),\
-              (__v4di)( __B),( __imm),\
-              (__v4di) _mm256_undefined_pd (),\
-              (__mmask8) -1);\
-})
-
-#define _mm256_mask_alignr_epi64( __W, __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignq256_mask ((__v4di)( __A),\
-              (__v4di)( __B),( __imm),\
-              (__v4di)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_alignr_epi64( __U, __A, __B, __imm) __extension__ ({ \
-__builtin_ia32_alignq256_mask ((__v4di)( __A),\
-              (__v4di)( __B),( __imm),\
-              (__v4di) _mm256_setzero_si256 (),\
-              (__mmask8)( __U));\
-})
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_movehdup_ps (__m128 __W, __mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_movshdup128_mask ((__v4sf) __A,
-               (__v4sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_movehdup_ps (__mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_movshdup128_mask ((__v4sf) __A,
-               (__v4sf)
-               _mm_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_movehdup_ps (__m256 __W, __mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_movshdup256_mask ((__v8sf) __A,
-               (__v8sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_movehdup_ps (__mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_movshdup256_mask ((__v8sf) __A,
-               (__v8sf)
-               _mm256_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_moveldup_ps (__m128 __W, __mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_movsldup128_mask ((__v4sf) __A,
-               (__v4sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_moveldup_ps (__mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_movsldup128_mask ((__v4sf) __A,
-               (__v4sf)
-               _mm_setzero_ps (),
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_moveldup_ps (__m256 __W, __mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_movsldup256_mask ((__v8sf) __A,
-               (__v8sf) __W,
-               (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_moveldup_ps (__mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_movsldup256_mask ((__v8sf) __A,
-               (__v8sf)
-               _mm256_setzero_ps (),
-               (__mmask8) __U);
-}
-
-#define _mm256_mask_shuffle_epi32( __W, __U, __A, __I) __extension__({\
-__builtin_ia32_pshufd256_mask((__v8si) (__A), (__I),\
-              (__v8si) (__W), (__mmask8) __U);\
-})
-
-#define _mm256_maskz_shuffle_epi32( __U,  __A, __I) __extension__({\
-__builtin_ia32_pshufd256_mask((__v8si) (__A), (__I),\
-              (__v8si) _mm256_setzero_si256 (),\
-              (__mmask8) (__U));\
-})
-
-#define _mm_mask_shuffle_epi32( __W, __U, __A, __I) __extension__({\
-  __builtin_ia32_pshufd128_mask ((__v4si) (__A), (__I),\
-              (__v4si) (__W), (__mmask8) __U);\
-})
-
-#define _mm_maskz_shuffle_epi32( __U,  __A, __I) __extension__({\
-  __builtin_ia32_pshufd128_mask ((__v4si) (__A), (__I),\
-              (__v4si)\
-              _mm_setzero_si128 (),\
-              (__mmask8) (__U));\
-})
-
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_mask_mov_pd (__m128d __W, __mmask8 __U, __m128d __A)
-{
-  return (__m128d) __builtin_ia32_movapd128_mask ((__v2df) __A,
-              (__v2df) __W,
-              (__mmask8) __U);
-}
-
-static __inline__ __m128d __DEFAULT_FN_ATTRS
-_mm_maskz_mov_pd (__mmask8 __U, __m128d __A)
-{
-  return (__m128d) __builtin_ia32_movapd128_mask ((__v2df) __A,
-              (__v2df)
-              _mm_setzero_pd (),
-              (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_mask_mov_pd (__m256d __W, __mmask8 __U, __m256d __A)
-{
-  return (__m256d) __builtin_ia32_movapd256_mask ((__v4df) __A,
-              (__v4df) __W,
-              (__mmask8) __U);
-}
-
-static __inline__ __m256d __DEFAULT_FN_ATTRS
-_mm256_maskz_mov_pd (__mmask8 __U, __m256d __A)
-{
-  return (__m256d) __builtin_ia32_movapd256_mask ((__v4df) __A,
-              (__v4df)
-              _mm256_setzero_pd (),
-              (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_mov_ps (__m128 __W, __mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_movaps128_mask ((__v4sf) __A,
-             (__v4sf) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_mov_ps (__mmask8 __U, __m128 __A)
-{
-  return (__m128) __builtin_ia32_movaps128_mask ((__v4sf) __A,
-             (__v4sf)
-             _mm_setzero_ps (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_mov_ps (__m256 __W, __mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_movaps256_mask ((__v8sf) __A,
-             (__v8sf) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_mov_ps (__mmask8 __U, __m256 __A)
-{
-  return (__m256) __builtin_ia32_movaps256_mask ((__v8sf) __A,
-             (__v8sf)
-             _mm256_setzero_ps (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_mask_cvtph_ps (__m128 __W, __mmask8 __U, __m128i __A)
-{
-  return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
-             (__v4sf) __W,
-             (__mmask8) __U);
-}
-
-static __inline__ __m128 __DEFAULT_FN_ATTRS
-_mm_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
-{
-  return (__m128) __builtin_ia32_vcvtph2ps_mask ((__v8hi) __A,
-             (__v4sf)
-             _mm_setzero_ps (),
-             (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_mask_cvtph_ps (__m256 __W, __mmask8 __U, __m128i __A)
-{
-  return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
-                (__v8sf) __W,
-                (__mmask8) __U);
-}
-
-static __inline__ __m256 __DEFAULT_FN_ATTRS
-_mm256_maskz_cvtph_ps (__mmask8 __U, __m128i __A)
-{
-  return (__m256) __builtin_ia32_vcvtph2ps256_mask ((__v8hi) __A,
-                (__v8sf)
-                _mm256_setzero_ps (),
-                (__mmask8) __U);
-}
-
-#define _mm_mask_cvtps_ph( __W, __U, __A, __I) __extension__ ({ \
-__builtin_ia32_vcvtps2ph_mask ((__v4sf)( __A),( __I),\
-              (__v8hi)( __W),\
-              (__mmask8)( __U));\
-})
-
-#define _mm_maskz_cvtps_ph( __U, __A, __I) __extension__ ({ \
-__builtin_ia32_vcvtps2ph_mask ((__v4sf)( __A),( __I),\
-              (__v8hi)\
-              _mm_setzero_si128 (),\
-              (__mmask8)( __U));\
-})
-
-#define _mm256_mask_cvtps_ph( __W, __U, __A, __I) __extension__ ({ \
-__builtin_ia32_vcvtps2ph256_mask ((__v8sf)( __A),( __I),\
-                 (__v8hi)( __W),\
-                 (__mmask8)( __U));\
-})
-
-#define _mm256_maskz_cvtps_ph( __U, __A, __I) __extension__ ({ \
-__builtin_ia32_vcvtps2ph256_mask ((__v8sf)( __A),( __I),\
-                 (__v8hi)\
-                 _mm_setzero_si128 (),\
-                 (__mmask8)( __U));\
-})
-
 #undef __DEFAULT_FN_ATTRS
 #undef __DEFAULT_FN_ATTRS_BOTH
 
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/emmintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/emmintrin.h
index aba2438..cfc2c71 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/emmintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/emmintrin.h
@@ -734,348 +734,108 @@
   return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b);
 }
 
-/// \brief Multiplies the corresponding elements of two [8 x short] vectors and
-///    returns a vector containing the low-order 16 bits of each 32-bit product
-///    in the corresponding element.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPMULLW / PMULLW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A 128-bit integer vector containing the products of both operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_mullo_epi16(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v8hi)__a * (__v8hi)__b);
 }
 
-/// \brief Multiplies 32-bit unsigned integer values contained in the lower bits
-///    of the two 64-bit integer vectors and returns the 64-bit unsigned
-///    product.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PMULUDQ instruction.
-///
-/// \param __a
-///    A 64-bit integer containing one of the source operands.
-/// \param __b
-///    A 64-bit integer containing one of the source operands.
-/// \returns A 64-bit integer vector containing the product of both operands.
 static __inline__ __m64 __DEFAULT_FN_ATTRS
 _mm_mul_su32(__m64 __a, __m64 __b)
 {
   return __builtin_ia32_pmuludq((__v2si)__a, (__v2si)__b);
 }
 
-/// \brief Multiplies 32-bit unsigned integer values contained in the lower
-///    bits of the corresponding elements of two [2 x i64] vectors, and returns
-///    the 64-bit products in the corresponding elements of a [2 x i64] vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPMULUDQ / PMULUDQ instruction.
-///
-/// \param __a
-///    A [2 x i64] vector containing one of the source operands.
-/// \param __b
-///    A [2 x i64] vector containing one of the source operands.
-/// \returns A [2 x i64] vector containing the product of both operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_mul_epu32(__m128i __a, __m128i __b)
 {
   return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b);
 }
 
-/// \brief Computes the absolute differences of corresponding 8-bit integer
-///    values in two 128-bit vectors. Sums the first 8 absolute differences, and
-///    separately sums the second 8 absolute differences. Packss these two
-///    unsigned 16-bit integer sums into the upper and lower elements of a
-///    [2 x i64] vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSADBW / PSADBW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A [2 x i64] vector containing the sums of the sets of absolute
-///    differences between both operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sad_epu8(__m128i __a, __m128i __b)
 {
   return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b);
 }
 
-/// \brief Subtracts the corresponding 8-bit integer values in the operands.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSUBB / PSUBB instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sub_epi8(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v16qi)__a - (__v16qi)__b);
 }
 
-/// \brief Subtracts the corresponding 16-bit integer values in the operands.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSUBW / PSUBW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sub_epi16(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v8hi)__a - (__v8hi)__b);
 }
 
-/// \brief Subtracts the corresponding 32-bit integer values in the operands.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSUBD / PSUBD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sub_epi32(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v4si)__a - (__v4si)__b);
 }
 
-/// \brief Subtracts signed or unsigned 64-bit integer values and writes the
-///    difference to the corresponding bits in the destination.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c PSUBQ instruction.
-///
-/// \param __a
-///    A 64-bit integer vector containing the minuend.
-/// \param __b
-///    A 64-bit integer vector containing the subtrahend.
-/// \returns A 64-bit integer vector containing the difference of the values in
-///    the operands.
 static __inline__ __m64 __DEFAULT_FN_ATTRS
 _mm_sub_si64(__m64 __a, __m64 __b)
 {
   return (__m64)__builtin_ia32_psubq(__a, __b);
 }
 
-/// \brief Subtracts the corresponding elements of two [2 x i64] vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSUBQ / PSUBQ instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sub_epi64(__m128i __a, __m128i __b)
 {
   return __a - __b;
 }
 
-/// \brief Subtracts corresponding 8-bit signed integer values in the input and
-///    returns the differences in the corresponding bytes in the destination.
-///    Differences greater than 7Fh are saturated to 7Fh, and differences less
-///    than 80h are saturated to 80h.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSUBSB / PSUBSB instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_subs_epi8(__m128i __a, __m128i __b)
 {
   return (__m128i)__builtin_ia32_psubsb128((__v16qi)__a, (__v16qi)__b);
 }
 
-/// \brief Subtracts corresponding 16-bit signed integer values in the input and
-///    returns the differences in the corresponding bytes in the destination.
-///    Differences greater than 7FFFh are saturated to 7FFFh, and values less
-///    than 8000h are saturated to 8000h.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSUBSW / PSUBSW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the differences of the values
-///    in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_subs_epi16(__m128i __a, __m128i __b)
 {
   return (__m128i)__builtin_ia32_psubsw128((__v8hi)__a, (__v8hi)__b);
 }
 
-/// \brief Subtracts corresponding 8-bit unsigned integer values in the input
-///    and returns the differences in the corresponding bytes in the
-///    destination. Differences less than 00h are saturated to 00h.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSUBUSB / PSUBUSB instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the unsigned integer
-///    differences of the values in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_subs_epu8(__m128i __a, __m128i __b)
 {
   return (__m128i)__builtin_ia32_psubusb128((__v16qi)__a, (__v16qi)__b);
 }
 
-/// \brief Subtracts corresponding 16-bit unsigned integer values in the input
-///    and returns the differences in the corresponding bytes in the
-///    destination. Differences less than 0000h are saturated to 0000h.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSUBUSW / PSUBUSW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the minuends.
-/// \param __b
-///    A 128-bit integer vector containing the subtrahends.
-/// \returns A 128-bit integer vector containing the unsigned integer
-///    differences of the values in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_subs_epu16(__m128i __a, __m128i __b)
 {
   return (__m128i)__builtin_ia32_psubusw128((__v8hi)__a, (__v8hi)__b);
 }
 
-/// \brief Performs a bitwise AND of two 128-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPAND / PAND instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A 128-bit integer vector containing the bitwise AND of the values
-///    in both operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_and_si128(__m128i __a, __m128i __b)
 {
   return __a & __b;
 }
 
-/// \brief Performs a bitwise AND of two 128-bit integer vectors, using the
-///    one's complement of the values contained in the first source operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPANDN / PANDN instruction.
-///
-/// \param __a
-///    A 128-bit vector containing the left source operand. The one's complement
-///    of this value is used in the bitwise AND.
-/// \param __b
-///    A 128-bit vector containing the right source operand.
-/// \returns A 128-bit integer vector containing the bitwise AND of the one's
-///    complement of the first operand and the values in the second operand.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_andnot_si128(__m128i __a, __m128i __b)
 {
   return ~__a & __b;
 }
-/// \brief Performs a bitwise OR of two 128-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPOR / POR instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A 128-bit integer vector containing the bitwise OR of the values
-///    in both operands.
+
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_or_si128(__m128i __a, __m128i __b)
 {
   return __a | __b;
 }
 
-/// \brief Performs a bitwise exclusive OR of two 128-bit integer vectors.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPXOR / PXOR instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing one of the source operands.
-/// \param __b
-///    A 128-bit integer vector containing one of the source operands.
-/// \returns A 128-bit integer vector containing the bitwise exclusive OR of the
-///    values in both operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_xor_si128(__m128i __a, __m128i __b)
 {
   return __a ^ __b;
 }
 
-/// \brief Left-shifts the 128-bit integer vector operand by the specified
-///    number of bytes. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm_slli_si128(__m128i a, const int imm);
-/// \endcode
-///
-/// This intrinsic corresponds to the \c VPSLLDQ / PSLLDQ instruction.
-///
-/// \param a
-///    A 128-bit integer vector containing the source operand.
-/// \param imm
-///    An immediate value specifying the number of bytes to left-shift
-///    operand a.
-/// \returns A 128-bit integer vector containing the left-shifted value.
 #define _mm_slli_si128(a, imm) __extension__ ({                         \
   (__m128i)__builtin_shufflevector((__v16qi)_mm_setzero_si128(),        \
                                    (__v16qi)(__m128i)(a),               \
@@ -1099,217 +859,66 @@
 #define _mm_bslli_si128(a, imm) \
   _mm_slli_si128((a), (imm))
 
-/// \brief Left-shifts each 16-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSLLW / PSLLW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to left-shift each value
-///    in operand __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_slli_epi16(__m128i __a, int __count)
 {
   return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count);
 }
 
-/// \brief Left-shifts each 16-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSLLW / PSLLW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to left-shift each value in operand __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sll_epi16(__m128i __a, __m128i __count)
 {
   return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count);
 }
 
-/// \brief Left-shifts each 32-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSLLD / PSLLD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to left-shift each value
-///    in operand __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_slli_epi32(__m128i __a, int __count)
 {
   return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count);
 }
 
-/// \brief Left-shifts each 32-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSLLD / PSLLD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to left-shift each value in operand __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sll_epi32(__m128i __a, __m128i __count)
 {
   return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count);
 }
 
-/// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSLLQ / PSLLQ instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to left-shift each value
-///    in operand __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_slli_epi64(__m128i __a, int __count)
 {
   return __builtin_ia32_psllqi128(__a, __count);
 }
 
-/// \brief Left-shifts each 64-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. Low-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSLLQ / PSLLQ instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to left-shift each value in operand __a.
-/// \returns A 128-bit integer vector containing the left-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sll_epi64(__m128i __a, __m128i __count)
 {
   return __builtin_ia32_psllq128(__a, __count);
 }
 
-/// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. High-order bits are filled with the sign
-///    bit of the initial value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRAW / PSRAW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_srai_epi16(__m128i __a, int __count)
 {
   return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count);
 }
 
-/// \brief Right-shifts each 16-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. High-order bits are filled with the sign
-///    bit of the initial value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRAW / PSRAW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sra_epi16(__m128i __a, __m128i __count)
 {
   return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count);
 }
 
-/// \brief Right-shifts each 32-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. High-order bits are filled with the sign
-///    bit of the initial value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRAD / PSRAD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_srai_epi32(__m128i __a, int __count)
 {
   return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count);
 }
 
-/// \brief Right-shifts each 32-bit value in the 128-bit integer vector operand
-///    by the specified number of bits. High-order bits are filled with the sign
-///    bit of the initial value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRAD / PSRAD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sra_epi32(__m128i __a, __m128i __count)
 {
   return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count);
 }
 
-/// \brief Right-shifts the 128-bit integer vector operand by the specified
-///    number of bytes. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// \code
-/// __m128i _mm_srli_si128(__m128i a, const int imm);
-/// \endcode
-///
-/// This intrinsic corresponds to the \c VPSRLDQ / PSRLDQ instruction.
-///
-/// \param a
-///    A 128-bit integer vector containing the source operand.
-/// \param imm
-///    An immediate value specifying the number of bytes to right-shift operand
-///    a.
-/// \returns A 128-bit integer vector containing the right-shifted value.
 #define _mm_srli_si128(a, imm) __extension__ ({                          \
   (__m128i)__builtin_shufflevector((__v16qi)(__m128i)(a),                \
                                    (__v16qi)_mm_setzero_si128(),         \
@@ -1333,191 +942,60 @@
 #define _mm_bsrli_si128(a, imm) \
   _mm_srli_si128((a), (imm))
 
-/// \brief Right-shifts each of 16-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRLW / PSRLW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_srli_epi16(__m128i __a, int __count)
 {
   return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count);
 }
 
-/// \brief Right-shifts each of 16-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRLW / PSRLW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_srl_epi16(__m128i __a, __m128i __count)
 {
   return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count);
 }
 
-/// \brief Right-shifts each of 32-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRLD / PSRLD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_srli_epi32(__m128i __a, int __count)
 {
   return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count);
 }
 
-/// \brief Right-shifts each of 32-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRLD / PSRLD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_srl_epi32(__m128i __a, __m128i __count)
 {
   return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count);
 }
 
-/// \brief Right-shifts each of 64-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRLQ / PSRLQ instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    An integer value specifying the number of bits to right-shift each value
-///    in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_srli_epi64(__m128i __a, int __count)
 {
   return __builtin_ia32_psrlqi128(__a, __count);
 }
 
-/// \brief Right-shifts each of 64-bit values in the 128-bit integer vector
-///    operand by the specified number of bits. High-order bits are cleared.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPSRLQ / PSRLQ instruction.
-///
-/// \param __a
-///    A 128-bit integer vector containing the source operand.
-/// \param __count
-///    A 128-bit integer vector in which bits [63:0] specify the number of bits
-///    to right-shift each value in operand __a.
-/// \returns A 128-bit integer vector containing the right-shifted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_srl_epi64(__m128i __a, __m128i __count)
 {
   return __builtin_ia32_psrlq128(__a, __count);
 }
 
-/// \brief Compares each of the corresponding 8-bit values of the 128-bit
-///    integer vectors for equality. Each comparison yields 0h for false, FFh
-///    for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPEQB / PCMPEQB instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmpeq_epi8(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v16qi)__a == (__v16qi)__b);
 }
 
-/// \brief Compares each of the corresponding 16-bit values of the 128-bit
-///    integer vectors for equality. Each comparison yields 0h for false, FFFFh
-///    for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPEQW / PCMPEQW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmpeq_epi16(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v8hi)__a == (__v8hi)__b);
 }
 
-/// \brief Compares each of the corresponding 32-bit values of the 128-bit
-///    integer vectors for equality. Each comparison yields 0h for false,
-///    FFFFFFFFh for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPEQD / PCMPEQD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmpeq_epi32(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v4si)__a == (__v4si)__b);
 }
 
-/// \brief Compares each of the corresponding signed 8-bit values of the 128-bit
-///    integer vectors to determine if the values in the first operand are
-///    greater than those in the second operand. Each comparison yields 0h for
-///    false, FFh for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPGTB / PCMPGTB instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmpgt_epi8(__m128i __a, __m128i __b)
 {
@@ -1526,100 +1004,30 @@
   return (__m128i)((__v16qs)__a > (__v16qs)__b);
 }
 
-/// \brief Compares each of the corresponding signed 16-bit values of the
-///    128-bit integer vectors to determine if the values in the first operand
-///    are greater than those in the second operand. Each comparison yields 0h
-///    for false, FFFFh for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPGTW / PCMPGTW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmpgt_epi16(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v8hi)__a > (__v8hi)__b);
 }
 
-/// \brief Compares each of the corresponding signed 32-bit values of the
-///    128-bit integer vectors to determine if the values in the first operand
-///    are greater than those in the second operand. Each comparison yields 0h
-///    for false, FFFFFFFFh for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPGTD / PCMPGTD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmpgt_epi32(__m128i __a, __m128i __b)
 {
   return (__m128i)((__v4si)__a > (__v4si)__b);
 }
 
-/// \brief Compares each of the corresponding signed 8-bit values of the 128-bit
-///    integer vectors to determine if the values in the first operand are less
-///    than those in the second operand. Each comparison yields 0h for false,
-///    FFh for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPGTB / PCMPGTB instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmplt_epi8(__m128i __a, __m128i __b)
 {
   return _mm_cmpgt_epi8(__b, __a);
 }
 
-/// \brief Compares each of the corresponding signed 16-bit values of the
-///    128-bit integer vectors to determine if the values in the first operand
-///    are less than those in the second operand. Each comparison yields 0h for
-///    false, FFFFh for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPGTW / PCMPGTW instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmplt_epi16(__m128i __a, __m128i __b)
 {
   return _mm_cmpgt_epi16(__b, __a);
 }
 
-/// \brief Compares each of the corresponding signed 32-bit values of the
-///    128-bit integer vectors to determine if the values in the first operand
-///    are less than those in the second operand. Each comparison yields 0h for
-///    false, FFFFFFFFh for true.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VPCMPGTD / PCMPGTD instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \param __b
-///    A 128-bit integer vector.
-/// \returns A 128-bit integer vector containing the comparison results.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cmplt_epi32(__m128i __a, __m128i __b)
 {
@@ -1627,23 +1035,6 @@
 }
 
 #ifdef __x86_64__
-/// \brief Converts a 64-bit signed integer value from the second operand into a
-///    double-precision value and returns it in the lower element of a [2 x
-///    double] vector; the upper element of the returned vector is copied from
-///    the upper element of the first operand.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VCVTSI2SD / CVTSI2SD instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The upper 64 bits of this operand are
-///    copied to the upper 64 bits of the destination.
-/// \param __b
-///    A 64-bit signed integer operand containing the value to be converted.
-/// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the
-///    converted value of the second operand. The upper 64 bits are copied from
-///    the upper 64 bits of the first operand.
 static __inline__ __m128d __DEFAULT_FN_ATTRS
 _mm_cvtsi64_sd(__m128d __a, long long __b)
 {
@@ -1651,34 +1042,12 @@
   return __a;
 }
 
-/// \brief Converts the first (lower) element of a vector of [2 x double] into a
-///    64-bit signed integer value, according to the current rounding mode.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VCVTSD2SI / CVTSD2SI instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
-///    conversion.
-/// \returns A 64-bit signed integer containing the converted value.
 static __inline__ long long __DEFAULT_FN_ATTRS
 _mm_cvtsd_si64(__m128d __a)
 {
   return __builtin_ia32_cvtsd2si64(__a);
 }
 
-/// \brief Converts the first (lower) element of a vector of [2 x double] into a
-///    64-bit signed integer value, truncating the result when it is inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VCVTTSD2SI / CVTTSD2SI instruction.
-///
-/// \param __a
-///    A 128-bit vector of [2 x double]. The lower 64 bits are used in the
-///    conversion.
-/// \returns A 64-bit signed integer containing the converted value.
 static __inline__ long long __DEFAULT_FN_ATTRS
 _mm_cvttsd_si64(__m128d __a)
 {
@@ -1686,63 +1055,24 @@
 }
 #endif
 
-/// \brief Converts a vector of [4 x i32] into a vector of [4 x float].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VCVTDQ2PS / CVTDQ2PS instruction.
-///
-/// \param __a
-///    A 128-bit integer vector.
-/// \returns A 128-bit vector of [4 x float] containing the converted values.
 static __inline__ __m128 __DEFAULT_FN_ATTRS
 _mm_cvtepi32_ps(__m128i __a)
 {
   return __builtin_ia32_cvtdq2ps((__v4si)__a);
 }
 
-/// \brief Converts a vector of [4 x float] into a vector of [4 x i32].
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VCVTPS2DQ / CVTPS2DQ instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit integer vector of [4 x i32] containing the converted
-///    values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtps_epi32(__m128 __a)
 {
   return (__m128i)__builtin_ia32_cvtps2dq(__a);
 }
 
-/// \brief Converts a vector of [4 x float] into a vector of [4 x i32],
-///    truncating the result when it is inexact.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VCVTTPS2DQ / CVTTPS2DQ instruction.
-///
-/// \param __a
-///    A 128-bit vector of [4 x float].
-/// \returns A 128-bit vector of [4 x i32] containing the converted values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvttps_epi32(__m128 __a)
 {
   return (__m128i)__builtin_ia32_cvttps2dq(__a);
 }
 
-/// \brief Returns a vector of [4 x i32] where the lowest element is the input
-///    operand and the remaining elements are zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VMOVD / MOVD instruction.
-///
-/// \param __a
-///    A 32-bit signed integer operand.
-/// \returns A 128-bit vector of [4 x i32].
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtsi32_si128(int __a)
 {
@@ -1750,16 +1080,6 @@
 }
 
 #ifdef __x86_64__
-/// \brief Returns a vector of [2 x i64] where the lower element is the input
-///    operand and the upper element is zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
-///
-/// \param __a
-///    A 64-bit signed integer operand containing the value to be converted.
-/// \returns A 128-bit vector of [2 x i64] containing the converted value.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtsi64_si128(long long __a)
 {
@@ -1767,17 +1087,6 @@
 }
 #endif
 
-/// \brief Moves the least significant 32 bits of a vector of [4 x i32] to a
-///    32-bit signed integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VMOVD / MOVD instruction.
-///
-/// \param __a
-///    A vector of [4 x i32]. The least significant 32 bits are moved to the
-///    destination.
-/// \returns A 32-bit signed integer containing the moved value.
 static __inline__ int __DEFAULT_FN_ATTRS
 _mm_cvtsi128_si32(__m128i __a)
 {
@@ -1786,17 +1095,6 @@
 }
 
 #ifdef __x86_64__
-/// \brief Moves the least significant 64 bits of a vector of [2 x i64] to a
-///    64-bit signed integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
-///
-/// \param __a
-///    A vector of [2 x i64]. The least significant 64 bits are moved to the
-///    destination.
-/// \returns A 64-bit signed integer containing the moved value.
 static __inline__ long long __DEFAULT_FN_ATTRS
 _mm_cvtsi128_si64(__m128i __a)
 {
@@ -1804,32 +1102,12 @@
 }
 #endif
 
-/// \brief Moves packed integer values from an aligned 128-bit memory location
-///    to elements in a 128-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VMOVDQA / MOVDQA instruction.
-///
-/// \param __p
-///    An aligned pointer to a memory location containing integer values.
-/// \returns A 128-bit integer vector containing the moved values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_load_si128(__m128i const *__p)
 {
   return *__p;
 }
 
-/// \brief Moves packed integer values from an unaligned 128-bit memory location
-///    to elements in a 128-bit integer vector.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VMOVDQU / MOVDQU instruction.
-///
-/// \param __p
-///    A pointer to a memory location containing integer values.
-/// \returns A 128-bit integer vector containing the moved values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_loadu_si128(__m128i const *__p)
 {
@@ -1839,18 +1117,6 @@
   return ((struct __loadu_si128*)__p)->__v;
 }
 
-/// \brief Returns a vector of [2 x i64] where the lower element is taken from
-///    the lower element of the operand, and the upper element is zero.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic corresponds to the \c VMOVQ / MOVQ instruction.
-///
-/// \param __p
-///    A 128-bit vector of [2 x i64]. Bits [63:0] are written to bits [63:0] of
-///    the destination.
-/// \returns A 128-bit vector of [2 x i64]. The lower order bits contain the
-///    moved value. The higher order bits are cleared.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_loadl_epi64(__m128i const *__p)
 {
@@ -1860,270 +1126,66 @@
   return (__m128i) { ((struct __mm_loadl_epi64_struct*)__p)->__u, 0};
 }
 
-/// \brief Generates a 128-bit vector of [4 x i32] with unspecified content.
-///    This could be used as an argument to another intrinsic function where the
-///    argument is required but the value is not actually used.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic has no corresponding instruction.
-///
-/// \returns A 128-bit vector of [4 x i32] with unspecified content.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_undefined_si128()
 {
   return (__m128i)__builtin_ia32_undef128();
 }
 
-/// \brief Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
-///    the specified 64-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __q1
-///    A 64-bit integer value used to initialize the upper 64 bits of the
-///    destination vector of [2 x i64].
-/// \param __q0
-///    A 64-bit integer value used to initialize the lower 64 bits of the
-///    destination vector of [2 x i64].
-/// \returns An initialized 128-bit vector of [2 x i64] containing the values
-///    provided in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set_epi64x(long long __q1, long long __q0)
 {
   return (__m128i){ __q0, __q1 };
 }
 
-/// \brief Initializes both 64-bit values in a 128-bit vector of [2 x i64] with
-///    the specified 64-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __q1
-///    A 64-bit integer value used to initialize the upper 64 bits of the
-///    destination vector of [2 x i64].
-/// \param __q0
-///    A 64-bit integer value used to initialize the lower 64 bits of the
-///    destination vector of [2 x i64].
-/// \returns An initialized 128-bit vector of [2 x i64] containing the values
-///    provided in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set_epi64(__m64 __q1, __m64 __q0)
 {
   return (__m128i){ (long long)__q0, (long long)__q1 };
 }
 
-/// \brief Initializes the 32-bit values in a 128-bit vector of [4 x i32] with
-///    the specified 32-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __i3
-///    A 32-bit integer value used to initialize bits [127:96] of the
-///    destination vector.
-/// \param __i2
-///    A 32-bit integer value used to initialize bits [95:64] of the destination
-///    vector.
-/// \param __i1
-///    A 32-bit integer value used to initialize bits [63:32] of the destination
-///    vector.
-/// \param __i0
-///    A 32-bit integer value used to initialize bits [31:0] of the destination
-///    vector.
-/// \returns An initialized 128-bit vector of [4 x i32] containing the values
-///    provided in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set_epi32(int __i3, int __i2, int __i1, int __i0)
 {
   return (__m128i)(__v4si){ __i0, __i1, __i2, __i3};
 }
 
-/// \brief Initializes the 16-bit values in a 128-bit vector of [8 x i16] with
-///    the specified 16-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __w7
-///    A 16-bit integer value used to initialize bits [127:112] of the
-///    destination vector.
-/// \param __w6
-///    A 16-bit integer value used to initialize bits [111:96] of the
-///    destination vector.
-/// \param __w5
-///    A 16-bit integer value used to initialize bits [95:80] of the destination
-///    vector.
-/// \param __w4
-///    A 16-bit integer value used to initialize bits [79:64] of the destination
-///    vector.
-/// \param __w3
-///    A 16-bit integer value used to initialize bits [63:48] of the destination
-///    vector.
-/// \param __w2
-///    A 16-bit integer value used to initialize bits [47:32] of the destination
-///    vector.
-/// \param __w1
-///    A 16-bit integer value used to initialize bits [31:16] of the destination
-///    vector.
-/// \param __w0
-///    A 16-bit integer value used to initialize bits [15:0] of the destination
-///    vector.
-/// \returns An initialized 128-bit vector of [8 x i16] containing the values
-///    provided in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3, short __w2, short __w1, short __w0)
 {
   return (__m128i)(__v8hi){ __w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7 };
 }
 
-/// \brief Initializes the 8-bit values in a 128-bit vector of [16 x i8] with
-///    the specified 8-bit integer values.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __b15
-///    Initializes bits [127:120] of the destination vector.
-/// \param __b14
-///    Initializes bits [119:112] of the destination vector.
-/// \param __b13
-///    Initializes bits [111:104] of the destination vector.
-/// \param __b12
-///    Initializes bits [103:96] of the destination vector.
-/// \param __b11
-///    Initializes bits [95:88] of the destination vector.
-/// \param __b10
-///    Initializes bits [87:80] of the destination vector.
-/// \param __b9
-///    Initializes bits [79:72] of the destination vector.
-/// \param __b8
-///    Initializes bits [71:64] of the destination vector.
-/// \param __b7
-///    Initializes bits [63:56] of the destination vector.
-/// \param __b6
-///    Initializes bits [55:48] of the destination vector.
-/// \param __b5
-///    Initializes bits [47:40] of the destination vector.
-/// \param __b4
-///    Initializes bits [39:32] of the destination vector.
-/// \param __b3
-///    Initializes bits [31:24] of the destination vector.
-/// \param __b2
-///    Initializes bits [23:16] of the destination vector.
-/// \param __b1
-///    Initializes bits [15:8] of the destination vector.
-/// \param __b0
-///    Initializes bits [7:0] of the destination vector.
-/// \returns An initialized 128-bit vector of [16 x i8] containing the values
-///    provided in the operands.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set_epi8(char __b15, char __b14, char __b13, char __b12, char __b11, char __b10, char __b9, char __b8, char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0)
 {
   return (__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15 };
 }
 
-/// \brief Initializes both values in a 128-bit integer vector with the
-///    specified 64-bit integer value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __q
-///    Integer value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit integer vector of [2 x i64] with both
-///    elements containing the value provided in the operand.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set1_epi64x(long long __q)
 {
   return (__m128i){ __q, __q };
 }
 
-/// \brief Initializes both values in a 128-bit vector of [2 x i64] with the
-///    specified 64-bit value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __q
-///    A 64-bit value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit vector of [2 x i64] with all elements
-///    containing the value provided in the operand.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set1_epi64(__m64 __q)
 {
   return (__m128i){ (long long)__q, (long long)__q };
 }
 
-/// \brief Initializes all values in a 128-bit vector of [4 x i32] with the
-///    specified 32-bit value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __i
-///    A 32-bit value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit vector of [4 x i32] with all elements
-///    containing the value provided in the operand.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set1_epi32(int __i)
 {
   return (__m128i)(__v4si){ __i, __i, __i, __i };
 }
 
-/// \brief Initializes all values in a 128-bit vector of [8 x i16] with the
-///    specified 16-bit value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __w
-///    A 16-bit value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit vector of [8 x i16] with all elements
-///    containing the value provided in the operand.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set1_epi16(short __w)
 {
   return (__m128i)(__v8hi){ __w, __w, __w, __w, __w, __w, __w, __w };
 }
 
-/// \brief Initializes all values in a 128-bit vector of [16 x i8] with the
-///    specified 8-bit value.
-///
-/// \headerfile <x86intrin.h>
-///
-/// This intrinsic is a utility function and does not correspond to a specific
-///    instruction.
-///
-/// \param __b
-///    An 8-bit value used to initialize the elements of the destination integer
-///    vector.
-/// \returns An initialized 128-bit vector of [16 x i8] with all elements
-///    containing the value provided in the operand.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_set1_epi8(char __b)
 {
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/immintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/immintrin.h
index a74dad8..ceaa103 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/immintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/immintrin.h
@@ -75,8 +75,6 @@
 
 #include <avx512vlbwintrin.h>
 
-#include <avx512vlcdintrin.h>
-
 #include <avx512vldqintrin.h>
 
 #include <avx512erintrin.h>
@@ -89,8 +87,6 @@
 
 #include <avx512vbmivlintrin.h>
 
-#include <avx512pfintrin.h>
-
 #include <pkuintrin.h>
 
 static __inline__ int __attribute__((__always_inline__, __nodebug__, __target__("rdrnd")))
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/module.modulemap b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/module.modulemap
index 4b2cb85..afb3865 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/module.modulemap
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/module.modulemap
@@ -1,26 +1,3 @@
-/*===---- module.modulemap - intrinsics module map -------------------------===
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- *===-----------------------------------------------------------------------===
- */
-
 module _Builtin_intrinsics [system] [extern_c] {
   explicit module altivec {
     requires altivec
@@ -47,19 +24,7 @@
     export *
 
     header "immintrin.h"
-    textual header "f16cintrin.h"
-    textual header "avxintrin.h"
-    textual header "avx2intrin.h"
-    textual header "avx512fintrin.h"
-    textual header "avx512erintrin.h"
-    textual header "fmaintrin.h"
-
     header "x86intrin.h"
-    textual header "bmiintrin.h"
-    textual header "bmi2intrin.h"
-    textual header "lzcntintrin.h"
-    textual header "xopintrin.h"
-    textual header "fma4intrin.h"
 
     explicit module mm_malloc {
       header "mm_malloc.h"
@@ -74,6 +39,10 @@
       header "mmintrin.h"
     }
 
+    explicit module f16c {
+      header "f16cintrin.h"
+    }
+
     explicit module sse {
       export mm_malloc
       export mmx
@@ -111,6 +80,46 @@
       header "ammintrin.h"
     }
 
+    explicit module avx {
+      export sse4_2
+      header "avxintrin.h"
+    }
+
+    explicit module avx2 {
+      export avx
+      header "avx2intrin.h"
+    }
+
+    explicit module avx512f {
+      export avx2
+      header "avx512fintrin.h"
+    }
+
+    explicit module avx512er {
+      header "avx512erintrin.h"
+    }
+
+    explicit module bmi {
+      header "bmiintrin.h"
+    }
+
+    explicit module bmi2 {
+      header "bmi2intrin.h"
+    }
+
+    explicit module fma {
+      header "fmaintrin.h"
+    }
+
+    explicit module fma4 {
+      export sse3
+      header "fma4intrin.h"
+    }
+
+    explicit module lzcnt {
+      header "lzcntintrin.h"
+    }
+
     explicit module popcnt {
       header "popcntintrin.h"
     }
@@ -119,6 +128,11 @@
       header "mm3dnow.h"
     }
 
+    explicit module xop {
+      export fma4
+      header "xopintrin.h"
+    }
+
     explicit module aes_pclmul {
       header "wmmintrin.h"
       export aes
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/xmmintrin.h b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/xmmintrin.h
index 43f9422..2b34260 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/xmmintrin.h
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/xmmintrin.h
@@ -1946,7 +1946,7 @@
 #undef __DEFAULT_FN_ATTRS
 
 /* Ugly hack for backwards-compatibility (compatible with gcc) */
-#if defined(__SSE2__) && !__building_module(_Builtin_intrinsics)
+#if defined(__SSE2__) && !__has_feature(modules)
 #include <emmintrin.h>
 #endif
 
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux/libclang_rt.asan-x86_64.a.syms b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux/libclang_rt.asan-x86_64.a.syms
index c89e34c..e79245b 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux/libclang_rt.asan-x86_64.a.syms
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux/libclang_rt.asan-x86_64.a.syms
@@ -22,7 +22,6 @@
   __interceptor___isoc99_vsscanf;
   __interceptor___libc_memalign;
   __interceptor___overflow;
-  __interceptor___strdup;
   __interceptor___tls_get_addr;
   __interceptor___uflow;
   __interceptor___underflow;
@@ -30,7 +29,6 @@
   __interceptor___wuflow;
   __interceptor___wunderflow;
   __interceptor___xpg_strerror_r;
-  __interceptor___xstat;
   __interceptor__exit;
   __interceptor__longjmp;
   __interceptor__obstack_begin;
@@ -1075,7 +1073,6 @@
   __sanitizer_unaligned_store64;
   __sanitizer_update_counter_bitset_and_clear_counters;
   __sanitizer_verify_contiguous_container;
-  __strdup;
   __tls_get_addr;
   __ubsan_*;
   __uflow;
@@ -1084,7 +1081,6 @@
   __wuflow;
   __wunderflow;
   __xpg_strerror_r;
-  __xstat;
   _exit;
   _longjmp;
   _obstack_begin;
diff --git a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux/libclang_rt.tsan-x86_64.a.syms b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux/libclang_rt.tsan-x86_64.a.syms
index dca5734..33a1e7d 100644
--- a/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux/libclang_rt.tsan-x86_64.a.syms
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/lib/linux/libclang_rt.tsan-x86_64.a.syms
@@ -350,6 +350,7 @@
   __interceptor_socketpair;
   __interceptor_sprintf;
   __interceptor_sscanf;
+  __interceptor_stat;
   __interceptor_stat64;
   __interceptor_statfs;
   __interceptor_statfs64;
@@ -1460,6 +1461,7 @@
   socketpair;
   sprintf;
   sscanf;
+  stat;
   stat64;
   statfs;
   statfs64;
diff --git a/third_party/llvm-build/cr_build_revision b/third_party/llvm-build/cr_build_revision
index a931574..2b4c6a4 100644
--- a/third_party/llvm-build/cr_build_revision
+++ b/third_party/llvm-build/cr_build_revision
@@ -1 +1 @@
-268813-1
+264915-1
diff --git a/tools/blink_tests/TestExpectationsIgnition b/tools/blink_tests/TestExpectationsIgnition
new file mode 100644
index 0000000..f2c912d
--- /dev/null
+++ b/tools/blink_tests/TestExpectationsIgnition
@@ -0,0 +1,4 @@
+# Failures due to eager compilation, crbug/608287.
+[ Linux ] inspector/sources/debugger-frameworks/frameworks-jquery.html [ Failure ]
+[ Linux ] inspector-protocol/heap-profiler/heap-snapshot-with-active-dom-object.html [ Failure ]
+[ Linux ] inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html [ Failure ]
diff --git a/tools/callstats.html b/tools/callstats.html
new file mode 100644
index 0000000..da85494
--- /dev/null
+++ b/tools/callstats.html
@@ -0,0 +1,1481 @@
+<html>
+<!--
+Copyright 2016 the V8 project authors. All rights reserved.  Use of this source
+code is governed by a BSD-style license that can be found in the LICENSE file.
+-->
+
+<head>
+  <meta charset="UTF-8">
+  <style>
+    body {
+      font-family: arial;
+    }
+    
+    table {
+      display: table;
+      border-spacing: 0px;
+    }
+    
+    tr {
+      border-spacing: 0px;
+      padding: 10px;
+    }
+    
+    td,
+    th {
+      padding: 3px 10px 3px 5px;
+    }
+    
+    .inline {
+      display: inline-block;
+      vertical-align: top;
+    }
+    
+    h2,
+    h3 {
+      margin-bottom: 0px;
+    }
+    
+    .hidden {
+      display: none;
+    }
+    
+    .view {
+      display: table;
+    }
+    
+    .column {
+      display: table-cell;
+      border-right: 1px black dotted;
+      min-width: 200px;
+    }
+    
+    .column .header {
+      padding: 0 10px 0 10px
+    }
+    
+    #column {
+      display: none;
+    }
+    
+    .list {
+      width: 100%;
+    }
+    
+    select {
+      width: 100%
+    }
+    
+    .list tbody {
+      cursor: pointer;
+    }
+    
+    .list tr:nth-child(even) {
+      background-color: #EFEFEF;
+    }
+    
+    .list tr:nth-child(even).selected {
+      background-color: #DDD;
+    }
+    
+    .list tr.child {
+      display: none;
+    }
+    
+    .list tr.child.visible {
+      display: table-row;
+    }
+    
+    .list .child .name {
+      padding-left: 20px;
+    }
+    
+    .list .parent td {
+      border-top: 1px solid #AAA;
+    }
+    
+    .list .total {
+      font-weight: bold
+    }
+    
+    .list tr.parent {
+      background-color: #FFF;
+    }
+    
+    .list tr.parent.selected {
+      background-color: #DDD;
+    }
+    
+    tr.selected {
+      background-color: #DDD;
+    }
+    
+    .list .position {
+      text-align: right;
+      display: none;
+    }
+    
+    .list div.toggle {
+      cursor: pointer;
+    }
+    
+    #column_0 .position {
+      display: table-cell;
+    }
+    
+    #column_0 .name {
+      display: table-cell;
+    }
+    
+    .list .name {
+      display: none;
+      white-space: nowrap;
+    }
+    
+    .value {
+      text-align: right;
+    }
+    
+    .selectedVersion {
+      font-weight: bold;
+    }
+    
+    #baseline {
+      width: auto;
+    }
+    
+    .compareSelector {
+      padding-bottom: 20px;
+    }
+    
+    .pageDetailTable tbody {
+      cursor: pointer
+    }
+    
+    .pageDetailTable tfoot td {
+      border-top: 1px grey solid;
+    }
+    
+    #popover {
+      position: absolute;
+      transform: translateY(-50%) translateX(40px);
+      box-shadow: -2px 10px 44px -10px #000;
+      border-radius: 5px;
+      z-index: 1;
+      background-color: #FFF;
+      display: none;
+      white-space: nowrap;
+    }
+    
+    #popover table {
+      position: relative;
+      z-index: 1;
+      text-align: right;
+      margin: 10px;
+    }
+    #popover td {
+      padding: 3px 0px 3px 5px;
+      white-space: nowrap;
+    }
+    
+    .popoverArrow {
+      background-color: #FFF;
+      position: absolute;
+      width: 30px;
+      height: 30px;
+      transform: translateY(-50%)rotate(45deg);
+      top: 50%;
+      left: -10px;
+      z-index: 0;
+    }
+    
+    #popover .name {
+      padding: 5px;
+      font-weight: bold;
+      text-align: center;
+    }
+    
+    #popover table .compare {
+      display: none
+    }
+    
+    #popover table.compare .compare {
+      display: table-cell;
+    }
+
+    #popover .compare .time,
+    #popover .compare .version {
+      padding-left: 10px;
+    }
+  </style>
+  <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
+  <script type="text/javascript">
+    "use strict"
+    google.charts.load('current', {packages: ['corechart']});
+
+    // Did anybody say monkeypatching?
+    if (!NodeList.prototype.forEach) {
+      NodeList.prototype.forEach = function(func) {
+        for (var i = 0; i < this.length; i++) {
+          func(this[i]);
+        }
+      }
+    }
+
+    var versions;
+    var selectedPage;
+    var baselineVersion;
+    var selectedEntry;
+
+    function initialize() {
+      var original = $("column");
+      var view = document.createElement('div');
+      view.id = 'view';
+      var i = 0;
+      versions.forEach((version) =>  {
+        if (!version.enabled) return;
+        // add column
+        var column = original.cloneNode(true);
+        column.id = "column_" + i;
+        // Fill in all versions
+        var select = column.querySelector(".version");
+        select.id = "selectVersion_" + i;
+        // add all select options
+        versions.forEach((version) => {
+          if (!version.enabled) return;
+          var option = document.createElement("option");
+          option.textContent = version.name;
+          option.version = version;
+          select.appendChild(option);
+        });
+        // Fill in all page versions
+        select = column.querySelector(".pageVersion");
+        select.id = "select_" + i;
+        // add all pages
+        versions.forEach((version) => {
+          if (!version.enabled) return;
+          var optgroup = document.createElement("optgroup");
+          optgroup.label = version.name;
+          optgroup.version = version;
+          version.pages.forEach((page) => {
+            var option = document.createElement("option");
+            option.textContent = page.name;
+            option.page = page;
+            optgroup.appendChild(option);
+          });
+          select.appendChild(optgroup);
+        });
+        view.appendChild(column);
+        i++;
+      });
+      var oldView = $('view');
+      oldView.parentNode.replaceChild(view, oldView);
+      
+      var select = $('baseline');
+      removeAllChildren(select);
+      select.appendChild(document.createElement('option'));
+      versions.forEach((version) => {
+        var option = document.createElement("option");
+        option.textContent = version.name;
+        option.version = version;
+        select.appendChild(option);
+      });
+
+      var versionSelectorList = $('results').querySelector('.versionSelector ul');
+      removeAllChildren(versionSelectorList);
+      versions.forEach((version) => {
+        var li = document.createElement('li');
+        var checkbox = document.createElement('input');
+        checkbox.type = 'checkbox';
+        checkbox.checked = version.enabled;
+        checkbox.version = version;
+        checkbox.addEventListener('click', handleToggleVersionEnable);
+        li.appendChild(checkbox);
+        li.appendChild(document.createTextNode(version.name));
+        versionSelectorList.appendChild(li);
+      });
+      $('results').querySelectorAll('#results > .hidden').forEach((node) => {
+        toggleCssClass(node, 'hidden', false);
+      });
+    }
+
+    function showPage(firstPage) {
+      var changeSelectedEntry = selectedEntry !== undefined 
+          && selectedEntry.page === selectedPage;
+      selectedPage = firstPage;
+      selectedPage.sort();
+      showPageInColumn(firstPage, 0);
+      // Show the other versions of this page in the following columns.
+      var pageVersions = versions.pageVersions(firstPage.name);
+      var index = 1;
+      pageVersions.forEach((page) => {
+        if (page !== firstPage) {
+          showPageInColumn(page, index);
+          index++;
+        }
+      });
+      if (changeSelectedEntry) {
+        showEntryDetail(selectedPage.getEntry(selectedEntry));
+      } else {
+        showImpactList(selectedPage);
+      }
+    }
+
+    function showPageInColumn(page, columnIndex) {
+      page.sort();
+      var showDiff = (baselineVersion === undefined && columnIndex !== 0) ||
+        (baselineVersion !== undefined && page.version !== baselineVersion);
+      var diffStatus = (td, a, b) => {};
+      if (showDiff) {
+        if (baselineVersion !== undefined) {
+          diffStatus = (td, a, b) => {
+            if (a == 0) return;
+            td.style.color = a < 0 ? '#FF0000' : '#00BB00';
+          };
+        } else {
+          diffStatus = (td, a, b) => {
+            if (a == b) return;
+            var color;
+            var ratio = a / b;
+            if (ratio > 1) {
+              ratio = Math.min(Math.round((ratio - 1) * 255 * 10), 200);
+              color = '#' + ratio.toString(16) + "0000";
+            } else {
+              ratio = Math.min(Math.round((1 - ratio) * 255 * 10), 200);
+              color = '#00' + ratio.toString(16) + "00";
+            }
+            td.style.color = color;
+          }
+        }
+      }
+
+      var column = $('column_' + columnIndex);
+      var select = $('select_' + columnIndex);
+      // Find the matching option
+      selectOption(select, (i, option) => {
+        return option.page == page
+      });
+      var table = column.querySelector("table");
+      var oldTbody = table.querySelector('tbody');
+      var tbody = document.createElement('tbody');
+      var referencePage = selectedPage;
+      page.forEachSorted(selectedPage, (parentEntry, entry, referenceEntry) => {
+        // Filter out entries that do not exist in the first column for the default
+        // view.
+        if (baselineVersion === undefined && referenceEntry &&
+          referenceEntry.time == 0) {
+          return;
+        }
+        var tr = document.createElement('tr');
+        tbody.appendChild(tr);
+        tr.entry = entry;
+        tr.parentEntry = parentEntry;
+        tr.className = parentEntry === undefined ? 'parent' : 'child';
+        // Don't show entries that do not exist on the current page or if we
+        // compare against the current page
+        if (entry !== undefined && page.version !== baselineVersion) {
+          // If we show a diff, use the baselineVersion as the referenceEntry
+          if (baselineVersion !== undefined) {
+            var baselineEntry = baselineVersion.getEntry(entry);
+            if (baselineEntry !== undefined) referenceEntry = baselineEntry
+          }
+          if (!parentEntry) {
+            var node = td(tr, '<div class="toggle">►</div>', 'position');
+            node.firstChild.addEventListener('click', handleToggleGroup);
+          } else {
+            td(tr, entry.position == 0 ? '' : entry.position, 'position');
+          }
+          td(tr, entry.name, 'name ' + entry.cssClass());
+          diffStatus(
+            td(tr, ms(entry.time), 'value time'),
+            entry.time, referenceEntry.time);
+          diffStatus(
+            td(tr, percent(entry.timePercent), 'value time'),
+            entry.time, referenceEntry.time);
+          diffStatus(
+            td(tr, count(entry.count), 'value count'),
+            entry.count, referenceEntry.count);
+        } else if (baselineVersion !== undefined && referenceEntry 
+            && page.version !== baselineVersion) {
+          // Show comparison of entry that does not exist on the current page.
+          tr.entry = referenceEntry;
+          td(tr, '-', 'position');
+          td(tr, referenceEntry.name, 'name');
+          diffStatus(
+            td(tr, ms(referenceEntry.time), 'value time'),
+            referenceEntry.time, 0);
+          diffStatus(
+            td(tr, percent(referenceEntry.timePercent), 'value time'),
+            referenceEntry.timePercent, 0);
+          diffStatus(
+            td(tr, count(referenceEntry.count), 'value count'),
+            referenceEntry.count, 0);
+        } else {
+          // Display empty entry / baseline entry
+          var showBaselineEntry = entry !== undefined;
+          if (showBaselineEntry) {
+            if (!parentEntry) {
+              var node = td(tr, '<div class="toggle">►</div>', 'position');
+              node.firstChild.addEventListener('click', handleToggleGroup);
+            } else {
+              td(tr, entry.position == 0 ? '' : entry.position, 'position');
+            }
+            td(tr, entry.name, 'name');
+            td(tr, ms(entry.time, false), 'value time');
+            td(tr, percent(entry.timePercent, false), 'value time');
+            td(tr, count(entry.count, false), 'value count');
+          } else {
+            td(tr, '-', 'position');
+            td(tr, '-', 'name');
+            td(tr, '-', 'value time');
+            td(tr, '-', 'value time');
+            td(tr, '-', 'value count');
+          }
+        }
+      });
+      table.replaceChild(tbody, oldTbody);
+      var versionSelect = column.querySelector('select.version');
+      selectOption(versionSelect, (index, option) => {
+        return option.version == page.version
+      });
+    }
+
+    function selectEntry(entry, updateSelectedPage) {
+      if (updateSelectedPage) {
+        entry = selectedPage.version.getEntry(entry);
+      }
+      var rowIndex;
+      var needsPageSwitch = updateSelectedPage && entry.page != selectedPage;
+      // If clicked in the detail row change the first column to that page.
+      if (needsPageSwitch) showPage(entry.page);
+      var childNodes = $('column_0').querySelector('.list tbody').childNodes;
+      for (var i = 0; i < childNodes.length; i++) {
+        if (childNodes[i].entry.name == entry.name) {
+          rowIndex = i;
+          break;
+        }
+      }
+      var firstEntry = childNodes[rowIndex].entry;
+      if (rowIndex) {
+        if (firstEntry.parent) showGroup(firstEntry.parent);
+      }
+      // Deselect all
+      $('view').querySelectorAll('.list tbody tr').forEach((tr) => {
+        toggleCssClass(tr, 'selected', false);
+      });
+      // Select the entry row
+      $('view').querySelectorAll("tbody").forEach((body) => {
+        var row = body.childNodes[rowIndex];
+        if (!row) return;
+        toggleCssClass(row, 'selected', row.entry && row.entry.name ==
+          firstEntry.name);
+      });
+      if (updateSelectedPage) {
+        entry = selectedEntry.page.version.getEntry(entry);
+      }
+      selectedEntry = entry;
+      showEntryDetail(entry);
+    }
+
+    function showEntryDetail(entry) {
+      var table, tbody, entries;
+      table = $('detailView').querySelector('.versionDetailTable');
+      tbody = document.createElement('tbody');
+      if (entry !== undefined) {
+        $('detailView').querySelector('.versionDetail h3 span').innerHTML =
+          entry.name;
+        entries = versions.pageVersions(entry.page.name).map(
+          (page) => {
+            return page.get(entry.name)
+          });
+        entries.sort((a, b) => {
+          return a.time - b.time
+        });
+        entries.forEach((pageEntry) => {
+          if (pageEntry === undefined) return;
+          var tr = document.createElement('tr');
+          if (pageEntry == entry) tr.className += 'selected';
+          tr.entry = pageEntry;
+          td(tr, pageEntry.page.version.name, 'version');
+          td(tr, pageEntry.position, 'value position');
+          td(tr, ms(pageEntry.time), 'value time');
+          td(tr, percent(pageEntry.timePercent), 'value time');
+          td(tr, count(pageEntry.count), 'value count');
+          tbody.appendChild(tr);
+        });
+      }
+      table.replaceChild(tbody, table.querySelector('tbody'));
+
+      table = $('detailView').querySelector('.pageDetailTable');
+      tbody = document.createElement('tbody');
+      if (entry !== undefined) {
+        var version = entry.page.version;
+        $('detailView').querySelector('.pageDetail h3 span').innerHTML =
+          version.name;
+        entries = version.pages.map(
+          (page) => {
+            return page.get(entry.name)
+          });
+        entries.sort((a, b) => {
+          var cmp = b.timePercent - a.timePercent;
+          if (cmp.toFixed(1) == 0) return b.time - a.time;
+          return cmp
+        });
+        entries.forEach((pageEntry) => {
+          if (pageEntry === undefined) return;
+          var tr = document.createElement('tr');
+          if (pageEntry === entry) tr.className += 'selected';
+          tr.entry = pageEntry;
+          td(tr, pageEntry.page.name, 'name');
+          td(tr, pageEntry.position, 'value position');
+          td(tr, ms(pageEntry.time), 'value time');
+          td(tr, percent(pageEntry.timePercent), 'value time');
+          td(tr, count(pageEntry.count), 'value count');
+          tbody.appendChild(tr);
+        });
+        // show the total for all pages
+        var tds = table.querySelectorAll('tfoot td');
+        tds[2].innerHTML = ms(entry.getTimeImpact());
+        // Only show the percentage total if we are in diff mode:
+        tds[3].innerHTML = percent(entry.getTimePercentImpact());
+        tds[4].innerHTML = count(entry.getCountImpact());
+      }
+      table.replaceChild(tbody, table.querySelector('tbody'));
+      showImpactList(entry.page);
+      showPageGraphs(entry.page);
+    }
+
+    function showImpactList(page) {
+      var impactView = $('detailView').querySelector('.impactView');
+      impactView.querySelector('h3 span').innerHTML = page.version.name;
+
+      var table = impactView.querySelector('table');
+      var tbody = document.createElement('tbody');
+      var version = page.version;
+      var entries = version.allEntries();
+      if (selectedEntry !== undefined && selectedEntry.isGroup) {
+        impactView.querySelector('h3 span').innerHTML += " " + selectedEntry.name;
+        entries = entries.filter((entry) => {
+          return entry.name == selectedEntry.name ||
+            (entry.parent && entry.parent.name == selectedEntry.name)
+        });
+      }
+      var isCompareView = baselineVersion !== undefined;
+      entries = entries.filter((entry) => {
+        if (isCompareView) {
+          var impact = entry.getTimeImpact();
+          return impact < -1 || 1 < impact
+        }
+        return entry.getTimePercentImpact() > 0.1;
+      });
+      entries.sort((a, b) => {
+        var cmp = b.getTimePercentImpact() - a.getTimePercentImpact(); 
+        if (isCompareView || cmp.toFixed(1) == 0) {
+          return b.getTimeImpact() - a.getTimeImpact();
+        }
+        return cmp
+      });
+      entries.forEach((entry) => {
+        var tr = document.createElement('tr');
+        tr.entry = entry;
+        td(tr, entry.name, 'name');
+        td(tr, ms(entry.getTimeImpact()), 'value time');
+        var percentImpact = entry.getTimePercentImpact();
+        td(tr, percentImpact > 1000 ? '-' : percent(percentImpact), 'value time');
+        var topPages = entry.getPagesByPercentImpact().slice(0, 3)
+          .map((each) => {
+            return each.name + ' (' + percent(each.getEntry(entry).timePercent) +
+              ')'
+          });
+        td(tr, topPages.join(', '), 'name');
+        tbody.appendChild(tr);
+      });
+      table.replaceChild(tbody, table.querySelector('tbody'));
+    }
+    
+    var selectedGroup;
+    function showPageGraphs(page) {
+      var groups = page.groups.filter(each => each.name != page.total.name);
+      if (selectedGroup == undefined) {
+        selectedGroup = groups[0];
+      } else {
+        groups = groups.filter(each => each.name != selectedGroup.name);
+        groups.unshift(selectedGroup);
+      }
+      var dataTable = new google.visualization.DataTable();
+      dataTable.addColumn('string', 'Name');
+      groups.forEach(group => {
+        var column = dataTable.addColumn('number', group.name);
+        dataTable.setColumnProperty(column, 'group', group);
+      });
+      // Calculate the average row
+      var row = ['Average'];
+      groups.forEach((group) => {
+        row.push(group.getTimeImpact());
+      });
+      dataTable.addRow(row);
+      // Sort the pages by the selected group.
+      var pages = page.version.pages.slice();
+      pages.sort((a, b) => {
+        return b.getEntry(selectedGroup).timePercent - a.getEntry(selectedGroup).timePercent; 
+      });
+      // Calculate the entries for the pages
+      pages.forEach((page) => { 
+        row = [page.name];
+        groups.forEach((group) => {
+          row.push(page.getEntry(group).time);
+        });
+        dataTable.addRow(row);
+      });
+
+      var height = 1000/27*page.version.pages.length;
+      var options = {
+        title: 'Page Comparison for Version ' + page.version.name,
+        isStacked: 'percent',
+        height: height ,
+        hAxis: {
+          title: '% Time',
+          minValue: 0,
+        },
+        vAxis: {
+        }
+      };
+      var chart = new google.visualization.BarChart($('pageGraphs'));
+      chart.draw(dataTable, options);
+      google.visualization.events.addListener(chart, 'select', selectHandler);
+      function selectHandler() {
+        var column = chart.getSelection()[0].column;
+        if (column === undefined) return;
+        selectedGroup = dataTable.getColumnProperty(column, 'group');
+        showPageGraphs(selectedEntry.page);
+      }
+    }
+
+    function showGroup(entry) {
+      toggleGroup(entry, true);
+    }
+
+    function toggleGroup(group, show) {
+      $('view').querySelectorAll(".child").forEach((tr) => {
+        var entry = tr.parentEntry;
+        if (!entry) return;
+        if (entry.name !== group.name) return;
+        toggleCssClass(tr, 'visible', show);
+      });
+    }
+
+    function showPopover(entry) {
+      var popover = $('popover');
+      popover.querySelector('td.name').innerHTML = entry.name;
+      popover.querySelector('td.page').innerHTML = entry.page.name;
+      setPopoverDetail(popover, entry, '');
+      popover.querySelector('table').className = "";
+      if (baselineVersion !== undefined) {
+        entry = baselineVersion.getEntry(entry);
+        setPopoverDetail(popover, entry, '.compare');
+        popover.querySelector('table').className = "compare";
+      }
+    }
+
+    function setPopoverDetail(popover, entry, prefix) {
+      var node = (name) => popover.querySelector(prefix + name);
+      if (entry == undefined) {
+        node('.version').innerHTML = baselineVersion.name;
+        node('.time').innerHTML = '-';
+        node('.timeVariance').innerHTML = '-';
+        node('.percent').innerHTML = '-';
+        node('.percentVariance').innerHTML  = '-';
+        node('.count').innerHTML =  '-';
+        node('.countVariance').innerHTML = '-';
+        node('.timeImpact').innerHTML = '-';
+        node('.timePercentImpact').innerHTML = '-';
+      } else {
+        node('.version').innerHTML = entry.page.version.name;
+        node('.time').innerHTML = ms(entry._time, false);
+        node('.timeVariance').innerHTML
+            = percent(entry.timeVariancePercent, false);
+        node('.percent').innerHTML = percent(entry.timePercent, false);
+        node('.percentVariance').innerHTML 
+            = percent(entry.timePercentVariancePercent, false);
+        node('.count').innerHTML = count(entry._count, false);
+        node('.countVariance').innerHTML
+            = percent(entry.timeVariancePercent, false);
+        node('.timeImpact').innerHTML
+            = ms(entry.getTimeImpact(false), false);
+        node('.timePercentImpact').innerHTML
+            = percent(entry.getTimeImpactVariancePercent(false), false);
+      }
+    }
+
+    // ===========================================================================
+    // Helpers
+    function $(id) {
+      return document.getElementById(id)
+    }
+
+    function removeAllChildren(node) {
+      while (node.firstChild) {
+        node.removeChild(node.firstChild);
+      }
+    }
+
+    function selectOption(select, match) {
+      var options = select.options;
+      for (var i = 0; i < options.length; i++) {
+        if (match(i, options[i])) {
+          select.selectedIndex = i;
+          return;
+        }
+      }
+    }
+
+    function td(tr, content, className) {
+      var td = document.createElement("td");
+      td.innerHTML = content;
+      td.className = className
+      tr.appendChild(td);
+      return td
+    }
+
+    function nodeIndex(node) {
+      var children = node.parentNode.childNodes,
+        i = 0;
+      for (; i < children.length; i++) {
+        if (children[i] == node) {
+          return i;
+        }
+      }
+      return -1;
+    }
+
+    function toggleCssClass(node, cssClass, toggleState) {
+      var index = -1;
+      var classes;
+      if (node.className != undefined) {
+        classes = node.className.split(' ');
+        index = classes.indexOf(cssClass);
+      }
+      if (index == -1) {
+        if (toggleState === false) return;
+        node.className += ' ' + cssClass;
+        return;
+      }
+      if (toggleState === true) return;
+      classes.splice(index, 1);
+      node.className = classes.join(' ');
+    }
+
+    function diffSign(value, digits, unit, showDiff) {
+      if (showDiff === false || baselineVersion == undefined) {
+        return value.toFixed(digits) + unit;
+      }
+      return (value >= 0 ? '+' : '') + value.toFixed(digits) + unit + 'Δ';
+    }
+
+    function ms(value, showDiff) {
+      return diffSign(value, 1, 'ms', showDiff);
+    }
+
+    function count(value, showDiff) {
+      return diffSign(value, 0, '#', showDiff);
+    }
+
+    function percent(value, showDiff) {
+      return diffSign(value, 1, '%', showDiff);
+    }
+
+    // =========================================================================
+    // EventHandlers
+    function handleBodyLoad() {
+      $('uploadInput').focus(); 
+    }
+
+    function handleLoadFile() {
+      var files = document.getElementById("uploadInput").files;
+      var file = files[0];
+      var reader = new FileReader();
+
+      reader.onload = function(evt) {
+        versions = Versions.fromJSON(JSON.parse(this.result));
+        initialize()
+        showPage(versions.versions[0].pages[0]);
+      }
+      reader.readAsText(file);
+    }
+
+    function handleToggleGroup(event) {
+      var group = event.target.parentNode.parentNode.entry;
+      toggleGroup(selectedPage.get(group.name));
+    }
+
+    function handleSelectPage(select, event) {
+      var option = select.options[select.selectedIndex];
+      if (select.id == "select_0") {
+        showPage(option.page);
+      } else {
+        var columnIndex = select.id.split('_')[1];
+        showPageInColumn(option.page, columnIndex);
+      }
+    }
+
+    function handleSelectVersion(select, event) {
+      var option = select.options[select.selectedIndex];
+      var version = option.version;
+      if (select.id == "selectVersion_0") {
+        var page = version.get(selectedPage.name);
+        showPage(page);
+      } else {
+        var columnIndex = select.id.split('_')[1];
+        var pageSelect = $('select_' + columnIndex);
+        var page = pageSelect.options[select.selectedIndex].page;
+        page = version.get(page.name);
+        showPageInColumn(page, columnIndex);
+      }
+    }
+
+    function handleSelectDetailRow(table, event) {
+      if (event.target.tagName != 'TD') return;
+      var tr = event.target.parentNode;
+      if (tr.tagName != 'TR') return;
+      if (tr.entry === undefined) return;
+      selectEntry(tr.entry, true);
+    }
+
+    function handleSelectRow(table, event, fromDetail) {
+      if (event.target.tagName != 'TD') return;
+      var tr = event.target.parentNode;
+      if (tr.tagName != 'TR') return;
+      if (tr.entry === undefined) return;
+      selectEntry(tr.entry, false);
+    }
+
+    function handleSelectBaseline(select, event) {
+      var option = select.options[select.selectedIndex];
+      baselineVersion = option.version
+      showPage(selectedPage);
+      if (selectedEntry === undefined) return;
+      selectEntry(selectedEntry, true);
+    }
+
+    function handleUpdatePopover(event) {
+      var popover = $('popover');
+      popover.style.left = event.pageX + 'px';
+      popover.style.top = event.pageY + 'px';
+      popover.style.display = event.shiftKey ? 'block' : 'none';
+      var target = event.target;
+      while (target.entry === undefined) {
+        target = target.parentNode;
+        if (!target) return;
+      }
+      showPopover(target.entry);
+    }
+
+    function handleToggleVersionEnable(event) {
+      var version = this.version;
+      if (version === undefined) return;
+      version.enabled = this.checked;
+      initialize();
+      var page = selectedPage;
+      if (page === undefined || !page.version.enabled) {
+        page = versions.getEnabledPage(page.name);
+      }
+      showPage(page);
+    }
+
+    // ===========================================================================
+
+    class Versions {
+      constructor() {
+        this.versions = [];
+      }
+      add(version) {
+        this.versions.push(version)
+      }
+      pageVersions(name) {
+        var result = [];
+        this.versions.forEach((version) => {
+          if (!version.enabled) return;
+          var page = version.get(name);
+          if (page !== undefined) result.push(page);
+        });
+        return result;
+      }
+      get length() {
+        return this.versions.length
+      }
+      get(index) {
+        return this.versions[index]
+      };
+      forEach(f) {
+        this.versions.forEach(f);
+      }
+      sort() {
+        this.versions.sort((a, b) => {
+          if (a.name > b.name) return 1;
+          if (a.name < b.name) return -1;
+          return 0
+        })
+      }
+      getEnabledPage(name) {
+        for (var i = 0; i < this.versions.length; i++) {
+          var version = this.versions[i];
+          if (!version.enabled) continue;
+          var page = version.get(name);
+          if (page !== undefined) return page;
+          }
+      }
+    }
+    Versions.fromJSON = function(json) {
+      var versions = new Versions();
+      for (var version in json) {
+        versions.add(Version.fromJSON(version, json[version]));
+      }
+      versions.sort();
+      return versions;
+    }
+
+    class Version {
+      constructor(name) {
+        this.name = name;
+        this.enabled = true;
+        this.pages = [];
+      }
+      add(page) {
+        this.pages.push(page);
+      }
+      indexOf(name) {
+        for (var i = 0; i < this.pages.length; i++) {
+          if (this.pages[i].name == name) return i;
+        }
+        return -1;
+      }
+      get(name) {
+        var index = this.indexOf(name);
+        if (0 <= index) return this.pages[index];
+        return undefined
+      }
+      get length() {
+        return this.versions.length
+      }
+      getEntry(entry) {
+        if (entry === undefined) return undefined;
+        var page = this.get(entry.page.name);
+        if (page === undefined) return undefined;
+        return page.get(entry.name);
+      }
+      forEachEntry(fun) {
+        this.pages.forEach((page) => {
+          page.forEach(fun);
+        });
+      }
+      allEntries() {
+        var map = new Map();
+        this.forEachEntry((group, entry) => {
+          if (!map.has(entry.name)) map.set(entry.name, entry);
+        });
+        return Array.from(map.values());
+      }
+      getTotalValue(name, property) {
+        if (name === undefined) name = this.pages[0].total.name;
+        var sum = 0;
+        this.pages.forEach((page) => {
+          var entry = page.get(name);
+          if (entry !== undefined) sum += entry[property];
+        });
+        return sum;
+      }
+      getTotalTime(name, showDiff) {
+        return this.getTotalValue(name, showDiff === false ? '_time' : 'time');
+      }
+      getTotalTimePercent(name, showDiff) {
+        if (baselineVersion === undefined) {
+          // Return the overall average percent of the given entry name.
+          return this.getTotalValue(name, 'time') /
+            this.getTotalTime('Group-Total') * 100;
+        }
+        // Otherwise return the difference to the sum of the baseline version.
+        var baselineValue = baselineVersion.getTotalTime(name, false);
+        return this.getTotalValue(name, '_time') / baselineValue  * 100;
+      }
+      getTotalTimeVariance(name, showDiff) {
+        // Calculate the overall error for a given entry name
+        var sum = 0;
+        this.pages.forEach((page) => {
+          var entry = page.get(name);
+          if (entry === undefined) return;
+          sum += entry.timeVariance * entry.timeVariance;
+        });
+        return Math.sqrt(sum);
+      }
+      getTotalTimeVariancePercent(name, showDiff) {
+        return this.getTotalTimeVariance(name, showDiff) / 
+          this.getTotalTime(name, showDiff) * 100;
+      }
+      getTotalCount(name, showDiff) {
+        return this.getTotalValue(name, showDiff === false ? '_count' : 'count');
+      }
+      getPagesByPercentImpact(name) {
+        var sortedPages =
+          this.pages.filter((each) => {
+            return each.get(name) !== undefined
+          });
+        sortedPages.sort((a, b) => {
+          return b.get(name).timePercent - a.get(name).timePercent;
+        });
+        return sortedPages;
+      }
+      sort() {
+        this.pages.sort((a, b) => {
+          if (a.name > b.name) return 1;
+          if (a.name < b.name) return -1;
+          return 0
+        })
+      }
+    }
+    Version.fromJSON = function(name, data) {
+      var version = new Version(name);
+      for (var page in data) {
+        version.add(Page.fromJSON(version, page, data[page]));
+      }
+      version.sort();
+      return version;
+    }
+
+
+    class Page {
+      constructor(version, name) {
+        this.name = name;
+        this.total = new GroupedEntry('Total', /.*Total.*/);
+        this.unclassified = new UnclassifiedEntry(this)
+        this.groups = [
+          this.total,
+          new GroupedEntry('IC', /.*IC.*/),
+          new GroupedEntry('Optimize',
+            /StackGuard|.*Optimize.*|.*Deoptimize.*|Recompile.*/),
+          new GroupedEntry('Compile', /.*Compile.*|Parse.*/),
+          new GroupedEntry('Callback', /.*Callback$/),
+          new GroupedEntry('API', /.*API.*/),
+          new GroupedEntry('GC', /GC|AllocateInTargetSpace/),
+          new GroupedEntry('JavaScript', /JS_Execution/),
+          this.unclassified
+        ];
+        this.entryDict = new Map();
+        this.groups.forEach((entry) => {
+          entry.page = this;
+          this.entryDict.set(entry.name, entry);
+        });
+        this.version = version;
+      }
+      add(entry) {
+        entry.page = this;
+        this.entryDict.set(entry.name, entry);
+        var added = false;
+        this.groups.forEach((group) => {
+          if (!added) added = group.add(entry);
+        });
+        if (added) return;
+        this.unclassified.push(entry);
+      }
+      get(name) {
+        return this.entryDict.get(name)
+      }
+      getEntry(entry) {
+        if (entry === undefined) return undefined;
+        return this.get(entry.name);
+      }
+      get length() {
+        return this.versions.length
+      }
+      forEachSorted(referencePage, func) {
+        // Iterate over all the entries in the order they appear on the reference page.
+        referencePage.forEach((parent, referenceEntry) => {
+          var entry;
+          if (parent) parent = this.entryDict.get(parent.name);
+          if (referenceEntry) entry = this.entryDict.get(referenceEntry.name);
+          func(parent, entry, referenceEntry);
+        });
+      }
+      forEach(fun) {
+        this.forEachGroup((group) => {
+          fun(undefined, group);
+          group.forEach((entry) => {
+            fun(group, entry)
+          });
+        });
+      }
+      forEachGroup(fun) {
+        this.groups.forEach(fun)
+      }
+      sort() {
+        this.groups.sort((a, b) => {
+          return b.time - a.time;
+        });
+        this.groups.forEach((group) => {
+          group.sort()
+        });
+      }
+    }
+    Page.fromJSON = function(version, name, data) {
+      if (name.indexOf('www.') == 0) {
+        name = name.substring(4);
+      }
+      var page = new Page(version, name);
+      for (var i = 0; i < data.length; i++) {
+        page.add(Entry.fromJSON(i, data[data.length - i - 1]));
+      }
+      page.sort();
+      return page
+    }
+
+
+    class Entry {
+      constructor(position, name, time, timeVariance, timeVariancePercent,
+        count,
+        countVariance, countVariancePercent) {
+        this.position = position;
+        this.name = name;
+        this._time = time;
+        this._timeVariance = timeVariance;
+        this._timeVariancePercent = timeVariancePercent;
+        this._count = count;
+        this.countVariance = countVariance;
+        this.countVariancePercent = countVariancePercent;
+        this.page = undefined;
+        this.parent = undefined;
+      }
+      getCompareWithBaseline(value, property) {
+        if (baselineVersion == undefined) return value;
+        var baselineEntry = baselineVersion.getEntry(this);
+        if (!baselineEntry) return value;
+        if (baselineVersion === this.page.version) return value;
+        return value - baselineEntry[property];
+      }
+      cssClass() {
+        return ''
+      }
+      get time() {
+        return this.getCompareWithBaseline(this._time, '_time');
+      }
+      get count() {
+        return this.getCompareWithBaseline(this._count, '_count');
+      }
+      get timePercent() {
+        var value = this._time / this.page.total._time * 100;
+        if (baselineVersion == undefined) return value;
+        var baselineEntry = baselineVersion.getEntry(this);
+        if (!baselineEntry) return value;
+        if (baselineVersion === this.page.version) return value;
+        return (this._time - baselineEntry._time) / this.page.total._time *
+          100;
+      }
+      get timePercentVariancePercent() {
+        // Get the absolute values for the percentages
+        return this.timeVariance / this.page.total._time * 100;
+      }
+      getTimeImpact(showDiff) {
+        return this.page.version.getTotalTime(this.name, showDiff);
+      }
+      getTimeImpactVariancePercent(showDiff) {
+        return this.page.version.getTotalTimeVariancePercent(this.name, showDiff);
+      }
+      getTimePercentImpact(showDiff) {
+        return this.page.version.getTotalTimePercent(this.name, showDiff);
+      }
+      getCountImpact(showDiff) {
+        return this.page.version.getTotalCount(this.name, showDiff);
+      }
+      getPagesByPercentImpact() {
+        return this.page.version.getPagesByPercentImpact(this.name);
+      }
+      get isGroup() {
+        return false
+      }
+      get timeVariance() {
+        return this._timeVariance
+      }
+      get timeVariancePercent() {
+        return this._timeVariancePercent
+      }
+    }
+    Entry.fromJSON = function(position, data) {
+      return new Entry(position, ...data);
+    }
+
+
+    class GroupedEntry extends Entry {
+      constructor(name, regexp) {
+        super(0, 'Group-' + name, 0, 0, 0, 0, 0, 0);
+        this.regexp = regexp;
+        this.entries = [];
+      }
+      add(entry) {
+        if (!entry.name.match(this.regexp)) return false;
+        this._time += entry.time;
+        this._count += entry.count;
+        // TODO: sum up variance
+        this.entries.push(entry);
+        entry.parent = this;
+        return true;
+      }
+      forEach(fun) {
+        if (baselineVersion === undefined) {
+          this.entries.forEach(fun);
+          return;
+        }
+        // If we have a baslineVersion to compare against show also all entries from the
+        // other group.
+        var tmpEntries = baselineVersion.getEntry(this)
+          .entries.filter((entry) => {
+            return this.page.get(entry.name) == undefined
+          });
+
+        // The compared entries are sorted by absolute impact.
+        tmpEntries = tmpEntries.map((entry) => {
+          var tmpEntry = new Entry(0, entry.name, 0, 0, 0, 0, 0, 0);
+          tmpEntry.page = this.page;
+          return tmpEntry;
+        });
+        tmpEntries = tmpEntries.concat(this.entries);
+        tmpEntries.sort((a, b) => {
+          return a.time - b.time
+        });
+        tmpEntries.forEach(fun);
+      }
+      sort() {
+        this.entries.sort((a, b) => {
+          return b.time - a.time;
+        });
+      }
+      cssClass() {
+        if (this.page.total == this) return 'total';
+        return '';
+      }
+      get isGroup() {
+        return true
+      }
+      getVarianceForProperty(property) {
+        var sum = 0;
+        this.entries.forEach((entry) => {
+          sum += entry[property + 'Variance'] * entry[property +
+            'Variance'];
+        });
+        return Math.sqrt(sum);
+      }
+      get timeVariancePercent() {
+        if (this._time == 0) return 0;
+        return this.getVarianceForProperty('time')  / this._time * 100
+      }
+      get timeVariance() {
+        return this.getVarianceForProperty('time')
+      }
+    }
+
+    class UnclassifiedEntry extends GroupedEntry {
+      constructor(page) {
+        super('Runtime');
+        this.page = page;
+        this._time = undefined;
+        this._count = undefined;
+      }
+      add(entry) {
+        this.entries.push(entry);
+        entry.parent = this;
+        return true;
+      }
+      forEachPageGroup(fun) {
+        this.page.forEachGroup((group) => {
+          if (group == this) return;
+          if (group == this.page.total) return;
+          fun(group);
+        });
+      }
+      get time() {
+        if (this._time === undefined) {
+          this._time = this.page.total._time;
+          this.forEachPageGroup((group) => {
+            this._time -= group._time;
+          });
+        }
+        return this.getCompareWithBaseline(this._time, '_time');
+      }
+      get count() {
+        if (this._count === undefined) {
+          this._count = this.page.total._count;
+          this.forEachPageGroup((group) => {
+            this._count -= group._count;
+          });
+        }
+        return this.getCompareWithBaseline(this._count, '_count');
+      }
+    }
+  </script>
+</head>
+
+<body onmousemove="handleUpdatePopover(event)" onload="handleBodyLoad()">
+  <h1>Runtime Stats Komparator</h1>
+
+  <div id="results">
+    <div class="inline">
+      <h2>Data</h2>
+      <form name="fileForm">
+        <p>
+          <input id="uploadInput" type="file" name="files" onchange="handleLoadFile();" accept=".json">
+        </p>
+      </form>
+    </div>
+
+    <div class="inline hidden">
+      <h2>Result</h2>
+      <div class="compareSelector inline">
+        Compare against:&nbsp;<select id="baseline" onchange="handleSelectBaseline(this, event)"></select><br/>
+        <span style="color: #060">Green</span> the selected version above performs
+        better on this measurement.
+      </div>
+      <div class="versionSelector inline">
+        Select Versions:
+        <ul></ul>
+      </div>
+    </div>
+    <div id="view">
+    </div>
+
+    <div id="detailView" class="hidden">
+      <h2></h2>
+      <div class="versionDetail inline">
+        <h3>Version Comparison for <span></span></h3>
+        <table class="versionDetailTable" onclick="handleSelectDetailRow(this, event);">
+          <thead>
+            <tr>
+              <th class="version">Version&nbsp;</th>
+              <th class="position">Pos.&nbsp;</th>
+              <th class="value time">Time▴&nbsp;</th>
+              <th class="value time">Percent&nbsp;</th>
+              <th class="value count">Count&nbsp;</th>
+            </tr>
+          </thead>
+          <tbody></tbody>
+        </table>
+      </div>
+      <div class="pageDetail inline">
+        <h3>Page Comparison for <span></span></h3>
+        <table class="pageDetailTable" onclick="handleSelectDetailRow(this, event);">
+          <thead>
+            <tr>
+              <th class="page">Page&nbsp;</th>
+              <th class="position">Pos.&nbsp;</th>
+              <th class="value time">Time&nbsp;</th>
+              <th class="value time">Percent▾&nbsp;</th>
+              <th class="value count">Count&nbsp;</th>
+            </tr>
+          </thead>
+          <tfoot>
+            <tr>
+              <td class="page">Total:</td>
+              <td class="position"></td>
+              <td class="value time"></td>
+              <td class="value time"></td>
+              <td class="value count"></td>
+            </tr>
+          </tfoot>
+          <tbody></tbody>
+        </table>
+      </div>
+      <div class="impactView inline">
+        <h3>Impact list for <span></span></h3>
+        <table class="pageDetailTable" onclick="handleSelectDetailRow(this, event);">
+          <thead>
+            <tr>
+              <th class="page">Name&nbsp;</th>
+              <th class="value time">Time&nbsp;</th>
+              <th class="value time">Percent▾&nbsp;</th>
+              <th class="">Top Pages</th>
+            </tr>
+          </thead>
+          <tbody></tbody>
+        </table>
+      </div>
+    </div>
+    <div id="pageGraphs" class="hidden">
+    </div>
+
+    <div id="column" class="column">
+      <div class="header">
+        <select class="version" onchange="handleSelectVersion(this, event);"></select>
+        <select class="pageVersion" onchange="handleSelectPage(this, event);"></select>
+      </div>
+      <table class="list" onclick="handleSelectRow(this, event);">
+        <thead>
+          <tr>
+            <th class="position">Pos.&nbsp;</th>
+            <th class="name">Name&nbsp;</th>
+            <th class="value time">Time&nbsp;</th>
+            <th class="value time">Percent&nbsp;</th>
+            <th class="value count">Count&nbsp;</th>
+          </tr>
+        </thead>
+        <tbody></tbody>
+      </table>
+    </div>
+  </div>
+
+  <div class="inline">
+    <h2>Usage</h2>
+    <ol>
+      <li>Install scipy, e.g. <code>sudo aptitude install python-scipy</code>
+      <li>Build chrome with the <a href="https://codereview.chromium.org/1923893002">extended runtime callstats</a>.</li>
+      <li>Run <code>callstats.py</code> with a web-page-replay archive:
+        <pre>$V8_DIR/tools/callstats.py run \
+        --replay-bin=$CHROME_SRC/third_party/webpagereplay/replay.py \
+        --replay-wpr=$INPUT_DIR/top25.wpr \
+        --js-flags="" \
+        --with-chrome=$CHROME_SRC/out/Release/chrome \
+        --sites-file=$INPUT_DIR/top25.json</pre>
+      </li>
+      <li>Move results file to a subdirectory: <code>mkdir $VERSION_DIR; mv *.txt $VERSION_DIR</code></li>
+      <li>Repeat from step 1 with a different configuration (e.g. <code>--js-flags="--nolazy"</code>).</li>
+      <li>Create the final results file: <code>./callstats.py json $VERSION_DIR1 $VERSION_DIR2 > result.json</code></li>
+      <li>Use <code>results.json</code> on this site.</code>
+    </ol>
+  </div>
+
+  <div id="popover">
+    <div class="popoverArrow"></div>
+    <table>
+      <tr>
+        <td class="name" colspan="6"></td>
+      </tr>
+      <tr>
+        <td>Page:</td>
+        <td class="page name" colspan="6"></td>
+      </tr>
+      <tr>
+        <td>Version:</td>
+        <td class="version name" colspan="3"></td>
+        <td class="compare version name" colspan="3"></td>
+      </tr>
+      <tr>
+        <td>Time:</td>
+        <td class="time"></td><td>±</td><td class="timeVariance"></td>
+        <td class="compare time"></td><td class="compare"> ± </td><td class="compare timeVariance"></td>
+      </tr>
+      <tr>
+        <td>Percent:</td>
+        <td class="percent"></td><td>±</td><td class="percentVariance"></td>
+        <td class="compare percent"></td><td class="compare"> ± </td><td class="compare percentVariance"></td>
+      </tr>
+      <tr>
+        <td>Count:</td>
+        <td class="count"></td><td>±</td><td class="countVariance"></td>
+        <td class="compare count"></td><td class="compare"> ± </td><td class="compare countVariance"></td>
+      </tr>
+      <tr>
+        <td>Overall Impact:</td>
+        <td class="timeImpact"></td><td>±</td><td class="timePercentImpact"></td>
+        <td class="compare timeImpact"></td><td class="compare"> ± </td><td class="compare timePercentImpact"></td>
+      </tr>
+    </table>
+  </div>
+
+</body>
+
+</html>
diff --git a/tools/callstats.py b/tools/callstats.py
new file mode 100755
index 0000000..9044618
--- /dev/null
+++ b/tools/callstats.py
@@ -0,0 +1,556 @@
+#!/usr/bin/env python
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+'''
+Usage: runtime-call-stats.py [-h] <command> ...
+
+Optional arguments:
+  -h, --help  show this help message and exit
+
+Commands:
+  run         run chrome with --runtime-call-stats and generate logs
+  stats       process logs and print statistics
+  json        process logs from several versions and generate JSON
+  help        help information
+
+For each command, you can try ./runtime-call-stats.py help command.
+'''
+
+import argparse
+import json
+import os
+import re
+import shutil
+import subprocess
+import sys
+import tempfile
+
+import numpy
+import scipy
+import scipy.stats
+from math import sqrt
+
+
+# Run benchmarks.
+
+def print_command(cmd_args):
+  def fix_for_printing(arg):
+    m = re.match(r'^--([^=]+)=(.*)$', arg)
+    if m and (' ' in m.group(2) or m.group(2).startswith('-')):
+      arg = "--{}='{}'".format(m.group(1), m.group(2))
+    elif ' ' in arg:
+      arg = "'{}'".format(arg)
+    return arg
+  print " ".join(map(fix_for_printing, cmd_args))
+
+
+def start_replay_server(args, sites):
+  with tempfile.NamedTemporaryFile(prefix='callstats-inject-', suffix='.js',
+                                   mode='wt', delete=False) as f:
+    injection = f.name
+    generate_injection(f, sites, args.refresh)
+  cmd_args = [
+      args.replay_bin,
+      "--port=4080",
+      "--ssl_port=4443",
+      "--no-dns_forwarding",
+      "--use_closest_match",
+      "--no-diff_unknown_requests",
+      "--inject_scripts=deterministic.js,{}".format(injection),
+      args.replay_wpr,
+  ]
+  print "=" * 80
+  print_command(cmd_args)
+  with open(os.devnull, 'w') as null:
+    server = subprocess.Popen(cmd_args, stdout=null, stderr=null)
+  print "RUNNING REPLAY SERVER: %s with PID=%s" % (args.replay_bin, server.pid)
+  print "=" * 80
+  return {'process': server, 'injection': injection}
+
+
+def stop_replay_server(server):
+  print("SHUTTING DOWN REPLAY SERVER %s" % server['process'].pid)
+  server['process'].terminate()
+  os.remove(server['injection'])
+
+
+def generate_injection(f, sites, refreshes=0):
+  print >> f, """\
+(function() {
+  let s = window.sessionStorage.getItem("refreshCounter");
+  let refreshTotal = """, refreshes, """;
+  let refreshCounter = s ? parseInt(s) : refreshTotal;
+  let refreshId = refreshTotal - refreshCounter;
+  if (refreshCounter > 0) {
+    window.sessionStorage.setItem("refreshCounter", refreshCounter-1);
+  }
+
+  function match(url, item) {
+    if ('regexp' in item) return url.match(item.regexp) !== null;
+    let url_wanted = item.url;
+    // Allow automatic redirections from http to https.
+    if (url_wanted.startsWith("http://") && url.startsWith("https://")) {
+      url_wanted = "https://" + url_wanted.substr(7);
+    }
+    return url.startsWith(url_wanted);
+  };
+
+  function onLoad(e) {
+    let url = e.target.URL;
+    for (let item of sites) {
+      if (!match(url, item)) continue;
+      let timeout = 'timeline' in item ? 2500 * item.timeline
+                  : 'timeout'  in item ? 1000 * (item.timeout - 3)
+                  : 10000;
+      console.log("Setting time out of " + timeout + " for: " + url);
+      window.setTimeout(function() {
+        console.log("Time is out for: " + url);
+        let msg = "STATS: (" + refreshId + ") " + url;
+        %GetAndResetRuntimeCallStats(1, msg);
+        if (refreshCounter > 0) {
+          console.log("Refresh counter is " + refreshCounter + ", refreshing: " + url);
+          window.location.reload();
+        }
+      }, timeout);
+      return;
+    }
+    console.log("Ignoring: " + url);
+  };
+
+  let sites =
+    """, json.dumps(sites), """;
+
+  console.log("Event listenner added for: " + window.location.href);
+  window.addEventListener("load", onLoad);
+})();"""
+
+
+def run_site(site, domain, args, timeout=None):
+  print "="*80
+  print "RUNNING DOMAIN %s" % domain
+  print "="*80
+  result_template = "{domain}#{count}.txt" if args.repeat else "{domain}.txt"
+  count = 0
+  if timeout is None: timeout = args.timeout
+  if args.replay_wpr:
+    timeout *= 1 + args.refresh
+    timeout += 1
+  while count == 0 or args.repeat is not None and count < args.repeat:
+    count += 1
+    result = result_template.format(domain=domain, count=count)
+    retries = 0
+    while args.retries is None or retries < args.retries:
+      retries += 1
+      try:
+        if args.user_data_dir:
+          user_data_dir = args.user_data_dir
+        else:
+          user_data_dir = tempfile.mkdtemp(prefix="chr_")
+        js_flags = "--runtime-call-stats"
+        if args.replay_wpr: js_flags += " --allow-natives-syntax"
+        if args.js_flags: js_flags += " " + args.js_flags
+        chrome_flags = [
+            "--no-default-browser-check",
+            "--disable-translate",
+            "--js-flags={}".format(js_flags),
+            "--no-first-run",
+            "--user-data-dir={}".format(user_data_dir),
+        ]
+        if args.replay_wpr:
+          chrome_flags += [
+              "--host-resolver-rules=MAP *:80 localhost:4080, "  \
+                                    "MAP *:443 localhost:4443, " \
+                                    "EXCLUDE localhost",
+              "--ignore-certificate-errors",
+              "--disable-seccomp-sandbox",
+              "--disable-web-security",
+              "--reduce-security-for-testing",
+              "--allow-insecure-localhost",
+          ]
+        else:
+          chrome_flags += [
+              "--single-process",
+          ]
+        if args.chrome_flags:
+          chrome_flags += args.chrome_flags.split()
+        cmd_args = [
+            "timeout", str(timeout),
+            args.with_chrome
+        ] + chrome_flags + [ site ]
+        print "- " * 40
+        print_command(cmd_args)
+        print "- " * 40
+        with open(result, "wt") as f:
+          status = subprocess.call(cmd_args, stdout=f)
+        # 124 means timeout killed chrome, 0 means the user was bored first!
+        # If none of these two happened, then chrome apparently crashed, so
+        # it must be called again.
+        if status != 124 and status != 0:
+          print("CHROME CRASHED, REPEATING RUN");
+          continue
+        # If the stats file is empty, chrome must be called again.
+        if os.path.isfile(result) and os.path.getsize(result) > 0:
+          if args.print_url:
+            with open(result, "at") as f:
+              print >> f
+              print >> f, "URL: {}".format(site)
+          break
+        if retries <= 6: timeout += 2 ** (retries-1)
+        print("EMPTY RESULT, REPEATING RUN");
+      finally:
+        if not args.user_data_dir:
+          shutil.rmtree(user_data_dir)
+
+
+def read_sites_file(args):
+  try:
+    sites = []
+    try:
+      with open(args.sites_file, "rt") as f:
+        for item in json.load(f):
+          if 'timeout' not in item:
+            # This is more-or-less arbitrary.
+            item['timeout'] = int(2.5 * item['timeline'] + 3)
+          if item['timeout'] > args.timeout: item['timeout'] = args.timeout
+          sites.append(item)
+    except ValueError:
+      with open(args.sites_file, "rt") as f:
+        for line in f:
+          line = line.strip()
+          if not line or line.startswith('#'): continue
+          sites.append({'url': line, 'timeout': args.timeout})
+    return sites
+  except IOError as e:
+    args.error("Cannot read from {}. {}.".format(args.sites_file, e.strerror))
+    sys.exit(1)
+
+
+def do_run(args):
+  # Determine the websites to benchmark.
+  if args.sites_file:
+    sites = read_sites_file(args)
+  else:
+    sites = [{'url': site, 'timeout': args.timeout} for site in args.sites]
+  # Disambiguate domains, if needed.
+  L = []
+  domains = {}
+  for item in sites:
+    site = item['url']
+    m = re.match(r'^(https?://)?([^/]+)(/.*)?$', site)
+    if not m:
+      args.error("Invalid URL {}.".format(site))
+      continue
+    domain = m.group(2)
+    entry = [site, domain, None, item['timeout']]
+    if domain not in domains:
+      domains[domain] = entry
+    else:
+      if not isinstance(domains[domain], int):
+        domains[domain][2] = 1
+        domains[domain] = 1
+      domains[domain] += 1
+      entry[2] = domains[domain]
+    L.append(entry)
+  replay_server = start_replay_server(args, sites) if args.replay_wpr else None
+  try:
+    # Run them.
+    for site, domain, count, timeout in L:
+      if count is not None: domain = "{}%{}".format(domain, count)
+      print site, domain, timeout
+      run_site(site, domain, args, timeout)
+  finally:
+    if replay_server:
+      stop_replay_server(replay_server)
+
+
+# Calculate statistics.
+
+def statistics(data):
+  N = len(data)
+  average = numpy.average(data)
+  median = numpy.median(data)
+  low = numpy.min(data)
+  high= numpy.max(data)
+  if N > 1:
+    # evaluate sample variance by setting delta degrees of freedom (ddof) to
+    # 1. The degree used in calculations is N - ddof
+    stddev = numpy.std(data, ddof=1)
+    # Get the endpoints of the range that contains 95% of the distribution
+    t_bounds = scipy.stats.t.interval(0.95, N-1)
+    #assert abs(t_bounds[0] + t_bounds[1]) < 1e-6
+    # sum mean to the confidence interval
+    ci = {
+        'abs': t_bounds[1] * stddev / sqrt(N),
+        'low': average + t_bounds[0] * stddev / sqrt(N),
+        'high': average + t_bounds[1] * stddev / sqrt(N)
+    }
+  else:
+    stddev = 0
+    ci = { 'abs': 0, 'low': average, 'high': average }
+  if abs(stddev) > 0.0001 and abs(average) > 0.0001:
+    ci['perc'] = t_bounds[1] * stddev / sqrt(N) / average * 100
+  else:
+    ci['perc'] = 0
+  return { 'samples': N, 'average': average, 'median': median,
+           'stddev': stddev, 'min': low, 'max': high, 'ci': ci }
+
+
+def read_stats(path, S):
+  with open(path, "rt") as f:
+    # Process the whole file and sum repeating entries.
+    D = { 'Sum': {'time': 0, 'count': 0} }
+    for line in f:
+      line = line.strip()
+      # Discard headers and footers.
+      if not line: continue
+      if line.startswith("Runtime Function"): continue
+      if line.startswith("===="): continue
+      if line.startswith("----"): continue
+      if line.startswith("URL:"): continue
+      if line.startswith("STATS:"): continue
+      # We have a regular line.
+      fields = line.split()
+      key = fields[0]
+      time = float(fields[1].replace("ms", ""))
+      count = int(fields[3])
+      if key not in D: D[key] = { 'time': 0, 'count': 0 }
+      D[key]['time'] += time
+      D[key]['count'] += count
+      # We calculate the sum, if it's not the "total" line.
+      if key != "Total":
+        D['Sum']['time'] += time
+        D['Sum']['count'] += count
+    # Append the sums as single entries to S.
+    for key in D:
+      if key not in S: S[key] = { 'time_list': [], 'count_list': [] }
+      S[key]['time_list'].append(D[key]['time'])
+      S[key]['count_list'].append(D[key]['count'])
+
+
+def print_stats(S, args):
+  # Sort by ascending/descending time average, then by ascending/descending
+  # count average, then by ascending name.
+  def sort_asc_func(item):
+    return (item[1]['time_stat']['average'],
+            item[1]['count_stat']['average'],
+            item[0])
+  def sort_desc_func(item):
+    return (-item[1]['time_stat']['average'],
+            -item[1]['count_stat']['average'],
+            item[0])
+  # Sorting order is in the commend-line arguments.
+  sort_func = sort_asc_func if args.sort == "asc" else sort_desc_func
+  # Possibly limit how many elements to print.
+  L = [item for item in sorted(S.items(), key=sort_func)
+       if item[0] not in ["Total", "Sum"]]
+  N = len(L)
+  if args.limit == 0:
+    low, high = 0, N
+  elif args.sort == "desc":
+    low, high = 0, args.limit
+  else:
+    low, high = N-args.limit, N
+  # How to print entries.
+  def print_entry(key, value):
+    def stats(s, units=""):
+      conf = "{:0.1f}({:0.2f}%)".format(s['ci']['abs'], s['ci']['perc'])
+      return "{:8.1f}{} +/- {:15s}".format(s['average'], units, conf)
+    print "{:>50s}  {}  {}".format(
+      key,
+      stats(value['time_stat'], units="ms"),
+      stats(value['count_stat'])
+    )
+  # Print and calculate partial sums, if necessary.
+  for i in range(low, high):
+    print_entry(*L[i])
+    if args.totals and args.limit != 0:
+      if i == low:
+        partial = { 'time_list': [0] * len(L[i][1]['time_list']),
+                    'count_list': [0] * len(L[i][1]['count_list']) }
+      assert len(partial['time_list']) == len(L[i][1]['time_list'])
+      assert len(partial['count_list']) == len(L[i][1]['count_list'])
+      for j, v in enumerate(L[i][1]['time_list']):
+        partial['time_list'][j] += v
+      for j, v in enumerate(L[i][1]['count_list']):
+        partial['count_list'][j] += v
+  # Print totals, if necessary.
+  if args.totals:
+    print '-' * 80
+    if args.limit != 0:
+      partial['time_stat'] = statistics(partial['time_list'])
+      partial['count_stat'] = statistics(partial['count_list'])
+      print_entry("Partial", partial)
+    print_entry("Sum", S["Sum"])
+    print_entry("Total", S["Total"])
+
+
+def do_stats(args):
+  T = {}
+  for path in args.logfiles:
+    filename = os.path.basename(path)
+    m = re.match(r'^([^#]+)(#.*)?$', filename)
+    domain = m.group(1)
+    if domain not in T: T[domain] = {}
+    read_stats(path, T[domain])
+  for i, domain in enumerate(sorted(T)):
+    if len(T) > 1:
+      if i > 0: print
+      print "{}:".format(domain)
+      print '=' * 80
+    S = T[domain]
+    for key in S:
+      S[key]['time_stat'] = statistics(S[key]['time_list'])
+      S[key]['count_stat'] = statistics(S[key]['count_list'])
+    print_stats(S, args)
+
+
+# Generate JSON file.
+
+def do_json(args):
+  J = {}
+  for path in args.logdirs:
+    if os.path.isdir(path):
+      for root, dirs, files in os.walk(path):
+        version = os.path.basename(root)
+        if version not in J: J[version] = {}
+        for filename in files:
+          if filename.endswith(".txt"):
+            m = re.match(r'^([^#]+)(#.*)?\.txt$', filename)
+            domain = m.group(1)
+            if domain not in J[version]: J[version][domain] = {}
+            read_stats(os.path.join(root, filename), J[version][domain])
+  for version, T in J.items():
+    for domain, S in T.items():
+      A = []
+      for name, value in S.items():
+        # We don't want the calculated sum in the JSON file.
+        if name == "Sum": continue
+        entry = [name]
+        for x in ['time_list', 'count_list']:
+          s = statistics(S[name][x])
+          entry.append(round(s['average'], 1))
+          entry.append(round(s['ci']['abs'], 1))
+          entry.append(round(s['ci']['perc'], 2))
+        A.append(entry)
+      T[domain] = A
+  print json.dumps(J, separators=(',', ':'))
+
+
+# Help.
+
+def do_help(parser, subparsers, args):
+  if args.help_cmd:
+    if args.help_cmd in subparsers:
+      subparsers[args.help_cmd].print_help()
+    else:
+      args.error("Unknown command '{}'".format(args.help_cmd))
+  else:
+    parser.print_help()
+
+
+# Main program, parse command line and execute.
+
+def coexist(*l):
+  given = sum(1 for x in l if x)
+  return given == 0 or given == len(l)
+
+def main():
+  parser = argparse.ArgumentParser()
+  subparser_adder = parser.add_subparsers(title="commands", dest="command",
+                                          metavar="<command>")
+  subparsers = {}
+  # Command: run.
+  subparsers["run"] = subparser_adder.add_parser(
+      "run", help="run --help")
+  subparsers["run"].set_defaults(
+      func=do_run, error=subparsers["run"].error)
+  subparsers["run"].add_argument(
+      "--chrome-flags", type=str, default="",
+      help="specify additional chrome flags")
+  subparsers["run"].add_argument(
+      "--js-flags", type=str, default="",
+      help="specify additional V8 flags")
+  subparsers["run"].add_argument(
+      "--no-url", dest="print_url", action="store_false", default=True,
+      help="do not include url in statistics file")
+  subparsers["run"].add_argument(
+      "-n", "--repeat", type=int, metavar="<num>",
+      help="specify iterations for each website (default: once)")
+  subparsers["run"].add_argument(
+      "-k", "--refresh", type=int, metavar="<num>", default=0,
+      help="specify refreshes for each iteration (default: 0)")
+  subparsers["run"].add_argument(
+      "--replay-wpr", type=str, metavar="<path>",
+      help="use the specified web page replay (.wpr) archive")
+  subparsers["run"].add_argument(
+      "--replay-bin", type=str, metavar="<path>",
+      help="specify the replay.py script typically located in " \
+           "$CHROMIUM/src/third_party/webpagereplay/replay.py")
+  subparsers["run"].add_argument(
+      "-r", "--retries", type=int, metavar="<num>",
+      help="specify retries if website is down (default: forever)")
+  subparsers["run"].add_argument(
+      "-f", "--sites-file", type=str, metavar="<path>",
+      help="specify file containing benchmark websites")
+  subparsers["run"].add_argument(
+      "-t", "--timeout", type=int, metavar="<seconds>", default=60,
+      help="specify seconds before chrome is killed")
+  subparsers["run"].add_argument(
+      "-u", "--user-data-dir", type=str, metavar="<path>",
+      help="specify user data dir (default is temporary)")
+  subparsers["run"].add_argument(
+      "-c", "--with-chrome", type=str, metavar="<path>",
+      default="/usr/bin/google-chrome",
+      help="specify chrome executable to use")
+  subparsers["run"].add_argument(
+      "sites", type=str, metavar="<URL>", nargs="*",
+      help="specify benchmark website")
+  # Command: stats.
+  subparsers["stats"] = subparser_adder.add_parser(
+      "stats", help="stats --help")
+  subparsers["stats"].set_defaults(
+      func=do_stats, error=subparsers["stats"].error)
+  subparsers["stats"].add_argument(
+      "-l", "--limit", type=int, metavar="<num>", default=0,
+      help="limit how many items to print (default: none)")
+  subparsers["stats"].add_argument(
+      "-s", "--sort", choices=["asc", "desc"], default="asc",
+      help="specify sorting order (default: ascending)")
+  subparsers["stats"].add_argument(
+      "-n", "--no-total", dest="totals", action="store_false", default=True,
+      help="do not print totals")
+  subparsers["stats"].add_argument(
+      "logfiles", type=str, metavar="<logfile>", nargs="*",
+      help="specify log files to parse")
+  # Command: json.
+  subparsers["json"] = subparser_adder.add_parser(
+      "json", help="json --help")
+  subparsers["json"].set_defaults(
+      func=do_json, error=subparsers["json"].error)
+  subparsers["json"].add_argument(
+      "logdirs", type=str, metavar="<logdir>", nargs="*",
+      help="specify directories with log files to parse")
+  # Command: help.
+  subparsers["help"] = subparser_adder.add_parser(
+      "help", help="help information")
+  subparsers["help"].set_defaults(
+      func=lambda args: do_help(parser, subparsers, args),
+      error=subparsers["help"].error)
+  subparsers["help"].add_argument(
+      "help_cmd", type=str, metavar="<command>", nargs="?",
+      help="command for which to display help")
+  # Execute the command.
+  args = parser.parse_args()
+  setattr(args, 'script_path', os.path.dirname(sys.argv[0]))
+  if args.command == "run" and coexist(args.sites_file, args.sites):
+    args.error("use either option --sites-file or site URLs")
+    sys.exit(1)
+  elif args.command == "run" and not coexist(args.replay_wpr, args.replay_bin):
+    args.error("options --replay-wpr and --replay-bin must be used together")
+    sys.exit(1)
+  else:
+    args.func(args)
+
+if __name__ == "__main__":
+  sys.exit(main())
diff --git a/tools/check-static-initializers.gyp b/tools/check-static-initializers.gyp
index 547a6c8..cfeacfc 100644
--- a/tools/check-static-initializers.gyp
+++ b/tools/check-static-initializers.gyp
@@ -13,8 +13,8 @@
             '../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../build/features.gypi',
-            '../build/isolate.gypi',
+            '../gypfiles/features.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'check-static-initializers.isolate',
diff --git a/tools/codemap.js b/tools/codemap.js
index fa6c36b..30cdc21 100644
--- a/tools/codemap.js
+++ b/tools/codemap.js
@@ -246,6 +246,14 @@
 
 
 /**
+ * Returns an array of pairs of all static code entries and their addresses.
+ */
+CodeMap.prototype.getAllStaticEntriesWithAddresses = function() {
+  return this.statics_.exportKeysAndValues();
+};
+
+
+/**
  * Returns an array of all libraries entries.
  */
 CodeMap.prototype.getAllLibrariesEntries = function() {
diff --git a/tools/dump-cpp.py b/tools/dump-cpp.py
new file mode 100644
index 0000000..b7bb32e
--- /dev/null
+++ b/tools/dump-cpp.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This script executes dumpcpp.js, collects all dumped C++ symbols,
+# and merges them back into v8 log.
+
+import os
+import platform
+import re
+import subprocess
+import sys
+
+def is_file_executable(fPath):
+  return os.path.isfile(fPath) and os.access(fPath, os.X_OK)
+
+if __name__ == '__main__':
+  JS_FILES = ['splaytree.js', 'codemap.js', 'csvparser.js', 'consarray.js',
+              'profile.js', 'logreader.js', 'tickprocessor.js', 'SourceMap.js',
+              'dumpcpp.js']
+  tools_path = os.path.dirname(os.path.realpath(__file__))
+  on_windows = platform.system() == 'Windows'
+  JS_FILES = [os.path.join(tools_path, f) for f in JS_FILES]
+
+  args = []
+  log_file = 'v8.log'
+  debug = False
+  for arg in sys.argv[1:]:
+    if arg == '--debug':
+      debug = True
+      continue
+    args.append(arg)
+    if not arg.startswith('-'):
+      log_file = arg
+
+  if on_windows:
+    args.append('--windows')
+
+  with open(log_file, 'r') as f:
+    lines = f.readlines()
+
+  d8_line = re.search(',\"(.*d8)', ''.join(lines))
+  if d8_line:
+    d8_exec = d8_line.group(1)
+    if not is_file_executable(d8_exec):
+      print 'd8 binary path found in {} is not executable.'.format(log_file)
+      sys.exit(-1)
+  else:
+    print 'No d8 binary path found in {}.'.format(log_file)
+    sys.exit(-1)
+
+  args = [d8_exec] + JS_FILES + ['--'] + args
+
+  with open(log_file) as f:
+    sp = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
+                          stdin=f)
+    out, err = sp.communicate()
+  if debug:
+    print err
+  if sp.returncode != 0:
+    print out
+    exit(-1)
+
+  if on_windows and out:
+    out = re.sub('\r+\n', '\n', out)
+
+  is_written = not bool(out)
+  with open(log_file, 'w') as f:
+    for line in lines:
+      if not is_written and line.startswith('tick'):
+        f.write(out)
+        is_written = True
+      f.write(line)
diff --git a/tools/dumpcpp.js b/tools/dumpcpp.js
new file mode 100644
index 0000000..28885e0
--- /dev/null
+++ b/tools/dumpcpp.js
@@ -0,0 +1,100 @@
+// Copyright 2016 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Dump C++ symbols of shared library if possible
+
+function processArguments(args) {
+  var processor = new ArgumentsProcessor(args);
+  if (processor.parse()) {
+    return processor.result();
+  } else {
+    processor.printUsageAndExit();
+  }
+}
+
+function initSourceMapSupport() {
+  // Pull dev tools source maps into our name space.
+  SourceMap = WebInspector.SourceMap;
+
+  // Overwrite the load function to load scripts synchronously.
+  SourceMap.load = function(sourceMapURL) {
+    var content = readFile(sourceMapURL);
+    var sourceMapObject = (JSON.parse(content));
+    return new SourceMap(sourceMapURL, sourceMapObject);
+  };
+}
+
+var entriesProviders = {
+  'unix': UnixCppEntriesProvider,
+  'windows': WindowsCppEntriesProvider,
+  'mac': MacCppEntriesProvider
+};
+
+var params = processArguments(arguments);
+var sourceMap = null;
+if (params.sourceMap) {
+  initSourceMapSupport();
+  sourceMap = SourceMap.load(params.sourceMap);
+}
+
+function CppProcessor(cppEntriesProvider, timedRange, pairwiseTimedRange) {
+  LogReader.call(this, {
+      'shared-library': { parsers: [null, parseInt, parseInt],
+          processor: this.processSharedLibrary }
+  }, timedRange, pairwiseTimedRange);
+
+  this.cppEntriesProvider_ = cppEntriesProvider;
+  this.codeMap_ = new CodeMap();
+  this.lastLogFileName_ = null;
+}
+inherits(CppProcessor, LogReader);
+
+/**
+ * @override
+ */
+CppProcessor.prototype.printError = function(str) {
+  print(str);
+};
+
+CppProcessor.prototype.processLogFile = function(fileName) {
+  this.lastLogFileName_ = fileName;
+  var line;
+  while (line = readline()) {
+    this.processLogLine(line);
+  }
+};
+
+CppProcessor.prototype.processLogFileInTest = function(fileName) {
+   // Hack file name to avoid dealing with platform specifics.
+  this.lastLogFileName_ = 'v8.log';
+  var contents = readFile(fileName);
+  this.processLogChunk(contents);
+};
+
+CppProcessor.prototype.processSharedLibrary = function(
+    name, startAddr, endAddr) {
+  var self = this;
+  var libFuncs = this.cppEntriesProvider_.parseVmSymbols(
+      name, startAddr, endAddr, function(fName, fStart, fEnd) {
+    var entry = new CodeMap.CodeEntry(fEnd - fStart, fName, 'CPP');
+    self.codeMap_.addStaticCode(fStart, entry);
+  });
+};
+
+CppProcessor.prototype.dumpCppSymbols = function() {
+  var staticEntries = this.codeMap_.getAllStaticEntriesWithAddresses();
+  var total = staticEntries.length;
+  for (var i = 0; i < total; ++i) {
+    var entry = staticEntries[i];
+    var printValues = ['cpp', '0x' + entry[0].toString(16), entry[1].size,
+                       '"' + entry[1].name + '"'];
+    print(printValues.join(','));
+  }
+};
+
+var cppProcessor = new CppProcessor(
+  new (entriesProviders[params.platform])(params.nm, params.targetRootFS),
+  params.timedRange, params.pairwiseTimedRange);
+cppProcessor.processLogFile(params.logFileName);
+cppProcessor.dumpCppSymbols();
diff --git a/tools/eval_gc_nvp.py b/tools/eval_gc_nvp.py
index fcb6d8b..25afe8e 100755
--- a/tools/eval_gc_nvp.py
+++ b/tools/eval_gc_nvp.py
@@ -10,7 +10,7 @@
 from argparse import ArgumentParser
 from copy import deepcopy
 from gc_nvp_common import split_nvp
-from math import log
+from math import ceil,log
 from sys import stdin
 
 
@@ -74,11 +74,12 @@
 
 
 class Category:
-  def __init__(self, key, histogram, csv):
+  def __init__(self, key, histogram, csv, percentiles):
     self.key = key
     self.values = []
     self.histogram = histogram
     self.csv = csv
+    self.percentiles = percentiles
 
   def process_entry(self, entry):
     if self.key in entry:
@@ -100,6 +101,16 @@
   def empty(self):
     return len(self.values) == 0
 
+  def _compute_percentiles(self):
+    ret = []
+    if len(self.values) == 0:
+      return ret
+    sorted_values = sorted(self.values)
+    for percentile in self.percentiles:
+      index = int(ceil((len(self.values) - 1) * percentile / 100))
+      ret.append("  {0}%: {1}".format(percentile, sorted_values[index]))
+    return ret
+
   def __str__(self):
     if self.csv:
       ret = [self.key]
@@ -118,6 +129,8 @@
         ret.append("  avg: {0}".format(self.avg()))
         if self.histogram:
           ret.append(str(self.histogram))
+        if self.percentiles:
+          ret.append("\n".join(self._compute_percentiles()))
       return "\n".join(ret)
 
   def __repr__(self):
@@ -160,6 +173,9 @@
                       help="rank keys by metric (default: no)")
   parser.add_argument('--csv', dest='csv',
                       action='store_true', help='provide output as csv')
+  parser.add_argument('--percentiles', dest='percentiles',
+                      type=str, default="",
+                      help='comma separated list of percentiles')
   args = parser.parse_args()
 
   histogram = None
@@ -171,7 +187,14 @@
       bucket_trait = LinearBucket(args.linear_histogram_granularity)
     histogram = Histogram(bucket_trait, not args.histogram_omit_empty)
 
-  categories = [ Category(key, deepcopy(histogram), args.csv)
+  percentiles = []
+  for percentile in args.percentiles.split(','):
+    try:
+      percentiles.append(float(percentile))
+    except ValueError:
+      pass
+
+  categories = [ Category(key, deepcopy(histogram), args.csv, percentiles)
                  for key in args.keys ]
 
   while True:
diff --git a/tools/eval_gc_time.sh b/tools/eval_gc_time.sh
index ceb4db5..140165d 100755
--- a/tools/eval_gc_time.sh
+++ b/tools/eval_gc_time.sh
@@ -17,6 +17,7 @@
   echo  "  -c|--csv                               provide csv output"
   echo  "  -f|--file FILE                         profile input in a file"
   echo  "                                         (default: stdin)"
+  echo  "  -p|--percentiles                       comma separated percentiles"
   exit 1
 }
 
@@ -25,6 +26,7 @@
 TOP_LEVEL=no
 CSV=""
 LOGFILE=/dev/stdin
+PERCENTILES=""
 
 while [[ $# -ge 1 ]]
 do
@@ -60,6 +62,10 @@
       LOGFILE=$2
       shift
       ;;
+    -p|--percentiles)
+      PERCENTILES="--percentiles=$2"
+      shift
+      ;;
     *)
       break
       ;;
@@ -98,7 +104,6 @@
   evacuate.clean_up \
   evacuate.copy \
   evacuate.update_pointers \
-  evacuate.update_pointers.between_evacuated \
   evacuate.update_pointers.to_evacuated \
   evacuate.update_pointers.to_new \
   evacuate.update_pointers.weak \
@@ -145,6 +150,7 @@
       --no-histogram \
       --rank $RANK_MODE \
       $CSV \
+      $PERCENTILES \
       ${INTERESTING_NEW_GEN_KEYS}
     ;;
   old-gen-rank)
@@ -153,6 +159,7 @@
       --no-histogram \
       --rank $RANK_MODE \
       $CSV \
+      $PERCENTILES \
       ${INTERESTING_OLD_GEN_KEYS}
     ;;
   *)
diff --git a/tools/gcmole/gcmole.lua b/tools/gcmole/gcmole.lua
index 82ea4e0..f16ad8f 100644
--- a/tools/gcmole/gcmole.lua
+++ b/tools/gcmole/gcmole.lua
@@ -185,7 +185,7 @@
 
 local function ParseGYPFile()
    local gyp = ""
-   local gyp_files = { "tools/gyp/v8.gyp", "test/cctest/cctest.gyp" }
+   local gyp_files = { "src/v8.gyp", "test/cctest/cctest.gyp" }
    for i = 1, #gyp_files do
       local f = assert(io.open(gyp_files[i]), "failed to open GYP file")
       local t = f:read('*a')
diff --git a/tools/gcmole/run-gcmole.isolate b/tools/gcmole/run-gcmole.isolate
index df6e9a2..39990de 100644
--- a/tools/gcmole/run-gcmole.isolate
+++ b/tools/gcmole/run-gcmole.isolate
@@ -12,7 +12,6 @@
       'parallel.py',
       'run-gcmole.py',
       # The following contains all relevant source and gyp files.
-      '../gyp/v8.gyp',
       '../../base/',
       '../../include/',
       '../../src/',
diff --git a/tools/gcmole/run_gcmole.gyp b/tools/gcmole/run_gcmole.gyp
index 9d13f76..7d206bf 100644
--- a/tools/gcmole/run_gcmole.gyp
+++ b/tools/gcmole/run_gcmole.gyp
@@ -10,8 +10,8 @@
           'target_name': 'run_gcmole_run',
           'type': 'none',
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'run-gcmole.isolate',
diff --git a/tools/gen-postmortem-metadata.py b/tools/gen-postmortem-metadata.py
index a0afc06..55f915d 100644
--- a/tools/gen-postmortem-metadata.py
+++ b/tools/gen-postmortem-metadata.py
@@ -92,6 +92,8 @@
         'value': 'DescriptorArray::kFirstIndex' },
     { 'name': 'prop_type_field',
         'value': 'DATA' },
+    { 'name': 'prop_type_const_field',
+        'value': 'DATA_CONSTANT' },
     { 'name': 'prop_type_mask',
         'value': 'PropertyDetails::TypeField::kMask' },
     { 'name': 'prop_index_mask',
diff --git a/tools/gyp/v8.gyp b/tools/gyp/v8.gyp
deleted file mode 100644
index b09fd1f..0000000
--- a/tools/gyp/v8.gyp
+++ /dev/null
@@ -1,2281 +0,0 @@
-# Copyright 2012 the V8 project authors. All rights reserved.
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-#       notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-#       copyright notice, this list of conditions and the following
-#       disclaimer in the documentation and/or other materials provided
-#       with the distribution.
-#     * Neither the name of Google Inc. nor the names of its
-#       contributors may be used to endorse or promote products derived
-#       from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'variables': {
-    'icu_use_data_file_flag%': 0,
-    'v8_code': 1,
-    'v8_random_seed%': 314159265,
-    'v8_vector_stores%': 0,
-    'embed_script%': "",
-    'warmup_script%': "",
-    'v8_extra_library_files%': [],
-    'v8_experimental_extra_library_files%': [],
-    'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)',
-  },
-  'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'],
-  'targets': [
-    {
-      'target_name': 'v8',
-      'dependencies_traverse': 1,
-      'dependencies': ['v8_maybe_snapshot'],
-      'conditions': [
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host', 'target'],
-        }, {
-          'toolsets': ['target'],
-        }],
-        ['component=="shared_library"', {
-          'type': '<(component)',
-          'sources': [
-            # Note: on non-Windows we still build this file so that gyp
-            # has some sources to link into the component.
-            '../../src/v8dll-main.cc',
-          ],
-          'include_dirs': [
-            '../..',
-          ],
-          'defines': [
-            'V8_SHARED',
-            'BUILDING_V8_SHARED',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'V8_SHARED',
-              'USING_V8_SHARED',
-            ],
-          },
-          'target_conditions': [
-            ['OS=="android" and _toolset=="target"', {
-              'libraries': [
-                '-llog',
-              ],
-              'include_dirs': [
-                'src/common/android/include',
-              ],
-            }],
-          ],
-          'conditions': [
-            ['OS=="mac"', {
-              'xcode_settings': {
-                'OTHER_LDFLAGS': ['-dynamiclib', '-all_load']
-              },
-            }],
-            ['soname_version!=""', {
-              'product_extension': 'so.<(soname_version)',
-            }],
-          ],
-        },
-        {
-          'type': 'none',
-        }],
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../../include',
-        ],
-      },
-    },
-    {
-      # This rule delegates to either v8_snapshot, v8_nosnapshot, or
-      # v8_external_snapshot, depending on the current variables.
-      # The intention is to make the 'calling' rules a bit simpler.
-      'target_name': 'v8_maybe_snapshot',
-      'type': 'none',
-      'conditions': [
-        ['v8_use_snapshot!="true"', {
-          # The dependency on v8_base should come from a transitive
-          # dependency however the Android toolchain requires libv8_base.a
-          # to appear before libv8_snapshot.a so it's listed explicitly.
-          'dependencies': ['v8_base', 'v8_nosnapshot'],
-        }],
-        ['v8_use_snapshot=="true" and v8_use_external_startup_data==0', {
-          # The dependency on v8_base should come from a transitive
-          # dependency however the Android toolchain requires libv8_base.a
-          # to appear before libv8_snapshot.a so it's listed explicitly.
-          'dependencies': ['v8_base', 'v8_snapshot'],
-        }],
-        ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==0', {
-          'dependencies': ['v8_base', 'v8_external_snapshot'],
-          'inputs': ['<(PRODUCT_DIR)/snapshot_blob.bin'],
-          'conditions': [
-            ['v8_separate_ignition_snapshot==1', {
-              'inputs': ['<(PRODUCT_DIR)/snapshot_blob_ignition.bin'],
-            }],
-          ]
-        }],
-        ['v8_use_snapshot=="true" and v8_use_external_startup_data==1 and want_separate_host_toolset==1', {
-          'dependencies': ['v8_base', 'v8_external_snapshot'],
-          'target_conditions': [
-            ['_toolset=="host"', {
-              'inputs': ['<(PRODUCT_DIR)/snapshot_blob_host.bin'],
-            }, {
-              'inputs': ['<(PRODUCT_DIR)/snapshot_blob.bin'],
-            }],
-          ],
-          'conditions': [
-            ['v8_separate_ignition_snapshot==1', {
-              'target_conditions': [
-                ['_toolset=="host"', {
-                  'inputs': ['<(PRODUCT_DIR)/snapshot_blob_ignition_host.bin'],
-                }, {
-                  'inputs': ['<(PRODUCT_DIR)/snapshot_blob_ignition.bin'],
-                }],
-              ],
-            }],
-          ],
-        }],
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host', 'target'],
-        }, {
-          'toolsets': ['target'],
-        }],
-      ]
-    },
-    {
-      'target_name': 'v8_snapshot',
-      'type': 'static_library',
-      'conditions': [
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host', 'target'],
-          'dependencies': [
-            'mksnapshot#host',
-            'js2c#host',
-          ],
-        }, {
-          'toolsets': ['target'],
-          'dependencies': [
-            'mksnapshot',
-            'js2c',
-          ],
-        }],
-        ['component=="shared_library"', {
-          'defines': [
-            'V8_SHARED',
-            'BUILDING_V8_SHARED',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'V8_SHARED',
-              'USING_V8_SHARED',
-            ],
-          },
-        }],
-      ],
-      'dependencies': [
-        'v8_base',
-      ],
-      'include_dirs+': [
-        '../..',
-      ],
-      'sources': [
-        '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
-        '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
-        '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
-        '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
-        '<(INTERMEDIATE_DIR)/snapshot.cc',
-      ],
-      'actions': [
-        {
-          'action_name': 'run_mksnapshot',
-          'inputs': [
-            '<(mksnapshot_exec)',
-            '<(embed_script)',
-            '<(warmup_script)',
-          ],
-          'outputs': [
-            '<(INTERMEDIATE_DIR)/snapshot.cc',
-          ],
-          'variables': {
-            'mksnapshot_flags': [],
-            'conditions': [
-              ['v8_random_seed!=0', {
-                'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
-              }],
-              ['v8_vector_stores!=0', {
-                'mksnapshot_flags': ['--vector-stores'],
-              }],
-            ],
-          },
-          'action': [
-            '<(mksnapshot_exec)',
-            '<@(mksnapshot_flags)',
-            '--startup_src', '<@(INTERMEDIATE_DIR)/snapshot.cc',
-            '<(embed_script)',
-            '<(warmup_script)',
-          ],
-        },
-      ],
-    },
-    {
-      'target_name': 'v8_nosnapshot',
-      'type': 'static_library',
-      'dependencies': [
-        'v8_base',
-      ],
-      'include_dirs+': [
-        '../..',
-      ],
-      'sources': [
-        '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
-        '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
-        '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
-        '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
-        '../../src/snapshot/snapshot-empty.cc',
-      ],
-      'conditions': [
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host', 'target'],
-          'dependencies': ['js2c#host'],
-        }, {
-          'toolsets': ['target'],
-          'dependencies': ['js2c'],
-        }],
-        ['component=="shared_library"', {
-          'defines': [
-            'BUILDING_V8_SHARED',
-            'V8_SHARED',
-          ],
-        }],
-      ]
-    },
-    {
-      'target_name': 'v8_external_snapshot',
-      'type': 'static_library',
-      'conditions': [
-        [ 'v8_use_external_startup_data==1', {
-          'conditions': [
-            ['want_separate_host_toolset==1', {
-              'toolsets': ['host', 'target'],
-              'dependencies': [
-                'mksnapshot#host',
-                'js2c#host',
-                'natives_blob',
-            ]}, {
-              'toolsets': ['target'],
-              'dependencies': [
-                'mksnapshot',
-                'js2c',
-                'natives_blob',
-              ],
-            }],
-            ['component=="shared_library"', {
-              'defines': [
-                'V8_SHARED',
-                'BUILDING_V8_SHARED',
-              ],
-              'direct_dependent_settings': {
-                'defines': [
-                  'V8_SHARED',
-                  'USING_V8_SHARED',
-                ],
-              },
-            }],
-            # Extra snapshot blob for ignition.
-            ['v8_separate_ignition_snapshot==1', {
-              # This is concatenated to the other actions list of
-              # v8_external_snapshot.
-              'actions': [
-                {
-                  'action_name': 'run_mksnapshot (ignition)',
-                  'inputs': ['<(mksnapshot_exec)'],
-                  'variables': {
-                    # TODO: Extract common mksnapshot_flags to a separate
-                    # variable.
-                    'mksnapshot_flags_ignition': [
-                      '--ignition',
-                    ],
-                    'conditions': [
-                      ['v8_random_seed!=0', {
-                        'mksnapshot_flags_ignition': ['--random-seed', '<(v8_random_seed)'],
-                      }],
-                      ['v8_vector_stores!=0', {
-                        'mksnapshot_flags_ignition': ['--vector-stores'],
-                      }],
-                    ],
-                  },
-                  'conditions': [
-                    ['want_separate_host_toolset==1', {
-                      'target_conditions': [
-                        ['_toolset=="host"', {
-                          'outputs': ['<(PRODUCT_DIR)/snapshot_blob_ignition_host.bin'],
-                          'action': [
-                            '<(mksnapshot_exec)',
-                            '<@(mksnapshot_flags_ignition)',
-                            '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_ignition_host.bin',
-                            '<(embed_script)',
-                            '<(warmup_script)',
-                          ],
-                        }, {
-                          'outputs': ['<(PRODUCT_DIR)/snapshot_blob_ignition.bin'],
-                          'action': [
-                            '<(mksnapshot_exec)',
-                            '<@(mksnapshot_flags_ignition)',
-                            '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_ignition.bin',
-                            '<(embed_script)',
-                            '<(warmup_script)',
-                          ],
-                        }],
-                      ],
-                    }, {
-                      'outputs': ['<(PRODUCT_DIR)/snapshot_blob_ignition.bin'],
-                      'action': [
-                        '<(mksnapshot_exec)',
-                        '<@(mksnapshot_flags_ignition)',
-                        '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_ignition.bin',
-                        '<(embed_script)',
-                        '<(warmup_script)',
-                      ],
-                    }],
-                  ],
-                },
-              ],
-            }],
-          ],
-          'dependencies': [
-            'v8_base',
-          ],
-          'include_dirs+': [
-            '../..',
-          ],
-          'sources': [
-            '../../src/snapshot/natives-external.cc',
-            '../../src/snapshot/snapshot-external.cc',
-          ],
-          'actions': [
-            {
-              'action_name': 'run_mksnapshot (external)',
-              'inputs': ['<(mksnapshot_exec)'],
-              'variables': {
-                'mksnapshot_flags': [],
-                'conditions': [
-                  ['v8_random_seed!=0', {
-                    'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'],
-                  }],
-                  ['v8_vector_stores!=0', {
-                    'mksnapshot_flags': ['--vector-stores'],
-                  }],
-                ],
-              },
-              'conditions': [
-                ['want_separate_host_toolset==1', {
-                  'target_conditions': [
-                    ['_toolset=="host"', {
-                      'outputs': ['<(PRODUCT_DIR)/snapshot_blob_host.bin'],
-                      'action': [
-                        '<(mksnapshot_exec)',
-                        '<@(mksnapshot_flags)',
-                        '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_host.bin',
-                        '<(embed_script)',
-                        '<(warmup_script)',
-                      ],
-                    }, {
-                      'outputs': ['<(PRODUCT_DIR)/snapshot_blob.bin'],
-                      'action': [
-                        '<(mksnapshot_exec)',
-                        '<@(mksnapshot_flags)',
-                        '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin',
-                        '<(embed_script)',
-                        '<(warmup_script)',
-                      ],
-                    }],
-                  ],
-                }, {
-                  'outputs': ['<(PRODUCT_DIR)/snapshot_blob.bin'],
-                  'action': [
-                    '<(mksnapshot_exec)',
-                    '<@(mksnapshot_flags)',
-                    '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin',
-                    '<(embed_script)',
-                    '<(warmup_script)',
-                  ],
-                }],
-              ],
-            },
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'v8_base',
-      'type': 'static_library',
-      'dependencies': [
-        'v8_libbase',
-      ],
-      'variables': {
-        'optimize': 'max',
-      },
-      'include_dirs+': [
-        '../..',
-        # To be able to find base/trace_event/common/trace_event_common.h
-        '../../..',
-      ],
-      'defines': [
-        # TODO(jochen): Remove again after this is globally turned on.
-        'V8_IMMINENT_DEPRECATION_WARNINGS',
-      ],
-      'sources': [  ### gcmole(all) ###
-        '../../include/v8-debug.h',
-        '../../include/v8-experimental.h',
-        '../../include/v8-platform.h',
-        '../../include/v8-profiler.h',
-        '../../include/v8-testing.h',
-        '../../include/v8-util.h',
-        '../../include/v8-version.h',
-        '../../include/v8.h',
-        '../../include/v8config.h',
-        '../../src/accessors.cc',
-        '../../src/accessors.h',
-        '../../src/address-map.cc',
-        '../../src/address-map.h',
-        '../../src/allocation.cc',
-        '../../src/allocation.h',
-        '../../src/allocation-site-scopes.cc',
-        '../../src/allocation-site-scopes.h',
-        '../../src/api-experimental.cc',
-        '../../src/api-experimental.h',
-        '../../src/api.cc',
-        '../../src/api.h',
-        '../../src/api-arguments.cc',
-        '../../src/api-arguments.h',
-        '../../src/api-natives.cc',
-        '../../src/api-natives.h',
-        '../../src/arguments.cc',
-        '../../src/arguments.h',
-        '../../src/assembler.cc',
-        '../../src/assembler.h',
-        '../../src/assert-scope.h',
-        '../../src/assert-scope.cc',
-        '../../src/ast/ast-expression-rewriter.cc',
-        '../../src/ast/ast-expression-rewriter.h',
-        '../../src/ast/ast-expression-visitor.cc',
-        '../../src/ast/ast-expression-visitor.h',
-        '../../src/ast/ast-literal-reindexer.cc',
-        '../../src/ast/ast-literal-reindexer.h',
-        '../../src/ast/ast-numbering.cc',
-        '../../src/ast/ast-numbering.h',
-        '../../src/ast/ast-value-factory.cc',
-        '../../src/ast/ast-value-factory.h',
-        '../../src/ast/ast.cc',
-        '../../src/ast/ast.h',
-        '../../src/ast/modules.cc',
-        '../../src/ast/modules.h',
-        '../../src/ast/prettyprinter.cc',
-        '../../src/ast/prettyprinter.h',
-        '../../src/ast/scopeinfo.cc',
-        '../../src/ast/scopeinfo.h',
-        '../../src/ast/scopes.cc',
-        '../../src/ast/scopes.h',
-        '../../src/ast/variables.cc',
-        '../../src/ast/variables.h',
-        '../../src/atomic-utils.h',
-        '../../src/background-parsing-task.cc',
-        '../../src/background-parsing-task.h',
-        '../../src/bailout-reason.cc',
-        '../../src/bailout-reason.h',
-        '../../src/basic-block-profiler.cc',
-        '../../src/basic-block-profiler.h',
-        '../../src/bignum-dtoa.cc',
-        '../../src/bignum-dtoa.h',
-        '../../src/bignum.cc',
-        '../../src/bignum.h',
-        '../../src/bit-vector.cc',
-        '../../src/bit-vector.h',
-        '../../src/bootstrapper.cc',
-        '../../src/bootstrapper.h',
-        '../../src/builtins.cc',
-        '../../src/builtins.h',
-        '../../src/cached-powers.cc',
-        '../../src/cached-powers.h',
-        '../../src/cancelable-task.cc',
-        '../../src/cancelable-task.h',
-        '../../src/char-predicates.cc',
-        '../../src/char-predicates-inl.h',
-        '../../src/char-predicates.h',
-        '../../src/checks.h',
-        '../../src/code-factory.cc',
-        '../../src/code-factory.h',
-        '../../src/code-stubs.cc',
-        '../../src/code-stubs.h',
-        '../../src/code-stubs-hydrogen.cc',
-        '../../src/codegen.cc',
-        '../../src/codegen.h',
-        '../../src/collector.h',
-        '../../src/compilation-cache.cc',
-        '../../src/compilation-cache.h',
-        '../../src/compilation-dependencies.cc',
-        '../../src/compilation-dependencies.h',
-        '../../src/compilation-statistics.cc',
-        '../../src/compilation-statistics.h',
-        '../../src/compiler/access-builder.cc',
-        '../../src/compiler/access-builder.h',
-        '../../src/compiler/access-info.cc',
-        '../../src/compiler/access-info.h',
-        '../../src/compiler/all-nodes.cc',
-        '../../src/compiler/all-nodes.h',
-        '../../src/compiler/ast-graph-builder.cc',
-        '../../src/compiler/ast-graph-builder.h',
-        '../../src/compiler/ast-loop-assignment-analyzer.cc',
-        '../../src/compiler/ast-loop-assignment-analyzer.h',
-        '../../src/compiler/basic-block-instrumentor.cc',
-        '../../src/compiler/basic-block-instrumentor.h',
-        '../../src/compiler/branch-elimination.cc',
-        '../../src/compiler/branch-elimination.h',
-        '../../src/compiler/bytecode-branch-analysis.cc',
-        '../../src/compiler/bytecode-branch-analysis.h',
-        '../../src/compiler/bytecode-graph-builder.cc',
-        '../../src/compiler/bytecode-graph-builder.h',
-        '../../src/compiler/change-lowering.cc',
-        '../../src/compiler/change-lowering.h',
-        '../../src/compiler/c-linkage.cc',
-        '../../src/compiler/coalesced-live-ranges.cc',
-        '../../src/compiler/coalesced-live-ranges.h',
-        '../../src/compiler/code-generator-impl.h',
-        '../../src/compiler/code-generator.cc',
-        '../../src/compiler/code-generator.h',
-        '../../src/compiler/code-stub-assembler.cc',
-        '../../src/compiler/code-stub-assembler.h',
-        '../../src/compiler/common-node-cache.cc',
-        '../../src/compiler/common-node-cache.h',
-        '../../src/compiler/common-operator-reducer.cc',
-        '../../src/compiler/common-operator-reducer.h',
-        '../../src/compiler/common-operator.cc',
-        '../../src/compiler/common-operator.h',
-        '../../src/compiler/control-builders.cc',
-        '../../src/compiler/control-builders.h',
-        '../../src/compiler/control-equivalence.cc',
-        '../../src/compiler/control-equivalence.h',
-        '../../src/compiler/control-flow-optimizer.cc',
-        '../../src/compiler/control-flow-optimizer.h',
-        '../../src/compiler/dead-code-elimination.cc',
-        '../../src/compiler/dead-code-elimination.h',
-        '../../src/compiler/diamond.h',
-        '../../src/compiler/escape-analysis.cc',
-        '../../src/compiler/escape-analysis.h',
-        "../../src/compiler/escape-analysis-reducer.cc",
-        "../../src/compiler/escape-analysis-reducer.h",
-        '../../src/compiler/frame.cc',
-        '../../src/compiler/frame.h',
-        '../../src/compiler/frame-elider.cc',
-        '../../src/compiler/frame-elider.h',
-        "../../src/compiler/frame-states.cc",
-        "../../src/compiler/frame-states.h",
-        '../../src/compiler/gap-resolver.cc',
-        '../../src/compiler/gap-resolver.h',
-        '../../src/compiler/graph-reducer.cc',
-        '../../src/compiler/graph-reducer.h',
-        '../../src/compiler/graph-replay.cc',
-        '../../src/compiler/graph-replay.h',
-        '../../src/compiler/graph-trimmer.cc',
-        '../../src/compiler/graph-trimmer.h',
-        '../../src/compiler/graph-visualizer.cc',
-        '../../src/compiler/graph-visualizer.h',
-        '../../src/compiler/graph.cc',
-        '../../src/compiler/graph.h',
-        '../../src/compiler/greedy-allocator.cc',
-        '../../src/compiler/greedy-allocator.h',
-        '../../src/compiler/instruction-codes.h',
-        '../../src/compiler/instruction-selector-impl.h',
-        '../../src/compiler/instruction-selector.cc',
-        '../../src/compiler/instruction-selector.h',
-        '../../src/compiler/instruction-scheduler.cc',
-        '../../src/compiler/instruction-scheduler.h',
-        '../../src/compiler/instruction.cc',
-        '../../src/compiler/instruction.h',
-        '../../src/compiler/int64-lowering.cc',
-        '../../src/compiler/int64-lowering.h',
-        '../../src/compiler/js-builtin-reducer.cc',
-        '../../src/compiler/js-builtin-reducer.h',
-        '../../src/compiler/js-call-reducer.cc',
-        '../../src/compiler/js-call-reducer.h',
-        '../../src/compiler/js-context-specialization.cc',
-        '../../src/compiler/js-context-specialization.h',
-        '../../src/compiler/js-create-lowering.cc',
-        '../../src/compiler/js-create-lowering.h',
-        '../../src/compiler/js-frame-specialization.cc',
-        '../../src/compiler/js-frame-specialization.h',
-        '../../src/compiler/js-generic-lowering.cc',
-        '../../src/compiler/js-generic-lowering.h',
-        '../../src/compiler/js-global-object-specialization.cc',
-        '../../src/compiler/js-global-object-specialization.h',
-        '../../src/compiler/js-graph.cc',
-        '../../src/compiler/js-graph.h',
-        '../../src/compiler/js-inlining.cc',
-        '../../src/compiler/js-inlining.h',
-        '../../src/compiler/js-inlining-heuristic.cc',
-        '../../src/compiler/js-inlining-heuristic.h',
-        '../../src/compiler/js-intrinsic-lowering.cc',
-        '../../src/compiler/js-intrinsic-lowering.h',
-        '../../src/compiler/js-native-context-specialization.cc',
-        '../../src/compiler/js-native-context-specialization.h',
-        '../../src/compiler/js-operator.cc',
-        '../../src/compiler/js-operator.h',
-        '../../src/compiler/js-typed-lowering.cc',
-        '../../src/compiler/js-typed-lowering.h',
-        '../../src/compiler/jump-threading.cc',
-        '../../src/compiler/jump-threading.h',
-        '../../src/compiler/linkage.cc',
-        '../../src/compiler/linkage.h',
-        '../../src/compiler/liveness-analyzer.cc',
-        '../../src/compiler/liveness-analyzer.h',
-        '../../src/compiler/live-range-separator.cc',
-        '../../src/compiler/live-range-separator.h',
-        '../../src/compiler/load-elimination.cc',
-        '../../src/compiler/load-elimination.h',
-        '../../src/compiler/loop-analysis.cc',
-        '../../src/compiler/loop-analysis.h',
-        '../../src/compiler/loop-peeling.cc',
-        '../../src/compiler/loop-peeling.h',
-        '../../src/compiler/machine-operator-reducer.cc',
-        '../../src/compiler/machine-operator-reducer.h',
-        '../../src/compiler/machine-operator.cc',
-        '../../src/compiler/machine-operator.h',
-        '../../src/compiler/move-optimizer.cc',
-        '../../src/compiler/move-optimizer.h',
-        '../../src/compiler/node-aux-data.h',
-        '../../src/compiler/node-cache.cc',
-        '../../src/compiler/node-cache.h',
-        '../../src/compiler/node-marker.cc',
-        '../../src/compiler/node-marker.h',
-        '../../src/compiler/node-matchers.cc',
-        '../../src/compiler/node-matchers.h',
-        '../../src/compiler/node-properties.cc',
-        '../../src/compiler/node-properties.h',
-        '../../src/compiler/node.cc',
-        '../../src/compiler/node.h',
-        '../../src/compiler/opcodes.cc',
-        '../../src/compiler/opcodes.h',
-        '../../src/compiler/operator-properties.cc',
-        '../../src/compiler/operator-properties.h',
-        '../../src/compiler/operator.cc',
-        '../../src/compiler/operator.h',
-        '../../src/compiler/osr.cc',
-        '../../src/compiler/osr.h',
-        '../../src/compiler/pipeline.cc',
-        '../../src/compiler/pipeline.h',
-        '../../src/compiler/pipeline-statistics.cc',
-        '../../src/compiler/pipeline-statistics.h',
-        '../../src/compiler/raw-machine-assembler.cc',
-        '../../src/compiler/raw-machine-assembler.h',
-        '../../src/compiler/register-allocator.cc',
-        '../../src/compiler/register-allocator.h',
-        '../../src/compiler/register-allocator-verifier.cc',
-        '../../src/compiler/register-allocator-verifier.h',
-        '../../src/compiler/representation-change.cc',
-        '../../src/compiler/representation-change.h',
-        '../../src/compiler/schedule.cc',
-        '../../src/compiler/schedule.h',
-        '../../src/compiler/scheduler.cc',
-        '../../src/compiler/scheduler.h',
-        '../../src/compiler/select-lowering.cc',
-        '../../src/compiler/select-lowering.h',
-        '../../src/compiler/simplified-lowering.cc',
-        '../../src/compiler/simplified-lowering.h',
-        '../../src/compiler/simplified-operator-reducer.cc',
-        '../../src/compiler/simplified-operator-reducer.h',
-        '../../src/compiler/simplified-operator.cc',
-        '../../src/compiler/simplified-operator.h',
-        '../../src/compiler/source-position.cc',
-        '../../src/compiler/source-position.h',
-        '../../src/compiler/state-values-utils.cc',
-        '../../src/compiler/state-values-utils.h',
-        '../../src/compiler/tail-call-optimization.cc',
-        '../../src/compiler/tail-call-optimization.h',
-        '../../src/compiler/type-hint-analyzer.cc',
-        '../../src/compiler/type-hint-analyzer.h',
-        '../../src/compiler/type-hints.cc',
-        '../../src/compiler/type-hints.h',
-        '../../src/compiler/typer.cc',
-        '../../src/compiler/typer.h',
-        '../../src/compiler/value-numbering-reducer.cc',
-        '../../src/compiler/value-numbering-reducer.h',
-        '../../src/compiler/verifier.cc',
-        '../../src/compiler/verifier.h',
-        '../../src/compiler/wasm-compiler.cc',
-        '../../src/compiler/wasm-compiler.h',
-        '../../src/compiler/wasm-linkage.cc',
-        '../../src/compiler/zone-pool.cc',
-        '../../src/compiler/zone-pool.h',
-        '../../src/compiler.cc',
-        '../../src/compiler.h',
-        '../../src/context-measure.cc',
-        '../../src/context-measure.h',
-        '../../src/contexts-inl.h',
-        '../../src/contexts.cc',
-        '../../src/contexts.h',
-        '../../src/conversions-inl.h',
-        '../../src/conversions.cc',
-        '../../src/conversions.h',
-        '../../src/counters.cc',
-        '../../src/counters.h',
-        '../../src/crankshaft/compilation-phase.cc',
-        '../../src/crankshaft/compilation-phase.h',
-        '../../src/crankshaft/hydrogen-alias-analysis.h',
-        '../../src/crankshaft/hydrogen-bce.cc',
-        '../../src/crankshaft/hydrogen-bce.h',
-        '../../src/crankshaft/hydrogen-canonicalize.cc',
-        '../../src/crankshaft/hydrogen-canonicalize.h',
-        '../../src/crankshaft/hydrogen-check-elimination.cc',
-        '../../src/crankshaft/hydrogen-check-elimination.h',
-        '../../src/crankshaft/hydrogen-dce.cc',
-        '../../src/crankshaft/hydrogen-dce.h',
-        '../../src/crankshaft/hydrogen-dehoist.cc',
-        '../../src/crankshaft/hydrogen-dehoist.h',
-        '../../src/crankshaft/hydrogen-environment-liveness.cc',
-        '../../src/crankshaft/hydrogen-environment-liveness.h',
-        '../../src/crankshaft/hydrogen-escape-analysis.cc',
-        '../../src/crankshaft/hydrogen-escape-analysis.h',
-        '../../src/crankshaft/hydrogen-flow-engine.h',
-        '../../src/crankshaft/hydrogen-gvn.cc',
-        '../../src/crankshaft/hydrogen-gvn.h',
-        '../../src/crankshaft/hydrogen-infer-representation.cc',
-        '../../src/crankshaft/hydrogen-infer-representation.h',
-        '../../src/crankshaft/hydrogen-infer-types.cc',
-        '../../src/crankshaft/hydrogen-infer-types.h',
-        '../../src/crankshaft/hydrogen-instructions.cc',
-        '../../src/crankshaft/hydrogen-instructions.h',
-        '../../src/crankshaft/hydrogen-load-elimination.cc',
-        '../../src/crankshaft/hydrogen-load-elimination.h',
-        '../../src/crankshaft/hydrogen-mark-deoptimize.cc',
-        '../../src/crankshaft/hydrogen-mark-deoptimize.h',
-        '../../src/crankshaft/hydrogen-mark-unreachable.cc',
-        '../../src/crankshaft/hydrogen-mark-unreachable.h',
-        '../../src/crankshaft/hydrogen-osr.cc',
-        '../../src/crankshaft/hydrogen-osr.h',
-        '../../src/crankshaft/hydrogen-range-analysis.cc',
-        '../../src/crankshaft/hydrogen-range-analysis.h',
-        '../../src/crankshaft/hydrogen-redundant-phi.cc',
-        '../../src/crankshaft/hydrogen-redundant-phi.h',
-        '../../src/crankshaft/hydrogen-removable-simulates.cc',
-        '../../src/crankshaft/hydrogen-removable-simulates.h',
-        '../../src/crankshaft/hydrogen-representation-changes.cc',
-        '../../src/crankshaft/hydrogen-representation-changes.h',
-        '../../src/crankshaft/hydrogen-sce.cc',
-        '../../src/crankshaft/hydrogen-sce.h',
-        '../../src/crankshaft/hydrogen-store-elimination.cc',
-        '../../src/crankshaft/hydrogen-store-elimination.h',
-        '../../src/crankshaft/hydrogen-types.cc',
-        '../../src/crankshaft/hydrogen-types.h',
-        '../../src/crankshaft/hydrogen-uint32-analysis.cc',
-        '../../src/crankshaft/hydrogen-uint32-analysis.h',
-        '../../src/crankshaft/hydrogen.cc',
-        '../../src/crankshaft/hydrogen.h',
-        '../../src/crankshaft/lithium-allocator-inl.h',
-        '../../src/crankshaft/lithium-allocator.cc',
-        '../../src/crankshaft/lithium-allocator.h',
-        '../../src/crankshaft/lithium-codegen.cc',
-        '../../src/crankshaft/lithium-codegen.h',
-        '../../src/crankshaft/lithium.cc',
-        '../../src/crankshaft/lithium.h',
-        '../../src/crankshaft/lithium-inl.h',
-        '../../src/crankshaft/typing.cc',
-        '../../src/crankshaft/typing.h',
-        '../../src/crankshaft/unique.h',
-        '../../src/date.cc',
-        '../../src/date.h',
-        '../../src/dateparser-inl.h',
-        '../../src/dateparser.cc',
-        '../../src/dateparser.h',
-        '../../src/debug/debug-evaluate.cc',
-        '../../src/debug/debug-evaluate.h',
-        '../../src/debug/debug-frames.cc',
-        '../../src/debug/debug-frames.h',
-        '../../src/debug/debug-scopes.cc',
-        '../../src/debug/debug-scopes.h',
-        '../../src/debug/debug.cc',
-        '../../src/debug/debug.h',
-        '../../src/debug/liveedit.cc',
-        '../../src/debug/liveedit.h',
-        '../../src/deoptimizer.cc',
-        '../../src/deoptimizer.h',
-        '../../src/disasm.h',
-        '../../src/disassembler.cc',
-        '../../src/disassembler.h',
-        '../../src/diy-fp.cc',
-        '../../src/diy-fp.h',
-        '../../src/double.h',
-        '../../src/dtoa.cc',
-        '../../src/dtoa.h',
-        '../../src/effects.h',
-        '../../src/elements-kind.cc',
-        '../../src/elements-kind.h',
-        '../../src/elements.cc',
-        '../../src/elements.h',
-        '../../src/execution.cc',
-        '../../src/execution.h',
-        '../../src/extensions/externalize-string-extension.cc',
-        '../../src/extensions/externalize-string-extension.h',
-        '../../src/extensions/free-buffer-extension.cc',
-        '../../src/extensions/free-buffer-extension.h',
-        '../../src/extensions/gc-extension.cc',
-        '../../src/extensions/gc-extension.h',
-        '../../src/extensions/statistics-extension.cc',
-        '../../src/extensions/statistics-extension.h',
-        '../../src/extensions/trigger-failure-extension.cc',
-        '../../src/extensions/trigger-failure-extension.h',
-        '../../src/external-reference-table.cc',
-        '../../src/external-reference-table.h',
-        '../../src/factory.cc',
-        '../../src/factory.h',
-        '../../src/fast-accessor-assembler.cc',
-        '../../src/fast-accessor-assembler.h',
-        '../../src/fast-dtoa.cc',
-        '../../src/fast-dtoa.h',
-        '../../src/field-index.h',
-        '../../src/field-index-inl.h',
-        '../../src/field-type.cc',
-        '../../src/field-type.h',
-        '../../src/fixed-dtoa.cc',
-        '../../src/fixed-dtoa.h',
-        '../../src/flag-definitions.h',
-        '../../src/flags.cc',
-        '../../src/flags.h',
-        '../../src/frames-inl.h',
-        '../../src/frames.cc',
-        '../../src/frames.h',
-        '../../src/full-codegen/full-codegen.cc',
-        '../../src/full-codegen/full-codegen.h',
-        '../../src/futex-emulation.cc',
-        '../../src/futex-emulation.h',
-        '../../src/gdb-jit.cc',
-        '../../src/gdb-jit.h',
-        '../../src/global-handles.cc',
-        '../../src/global-handles.h',
-        '../../src/globals.h',
-        '../../src/handles-inl.h',
-        '../../src/handles.cc',
-        '../../src/handles.h',
-        '../../src/hashmap.h',
-        '../../src/heap-symbols.h',
-        '../../src/heap/array-buffer-tracker.cc',
-        '../../src/heap/array-buffer-tracker.h',
-        '../../src/heap/memory-reducer.cc',
-        '../../src/heap/memory-reducer.h',
-        '../../src/heap/gc-idle-time-handler.cc',
-        '../../src/heap/gc-idle-time-handler.h',
-        '../../src/heap/gc-tracer.cc',
-        '../../src/heap/gc-tracer.h',
-        '../../src/heap/heap-inl.h',
-        '../../src/heap/heap.cc',
-        '../../src/heap/heap.h',
-        '../../src/heap/incremental-marking-inl.h',
-        '../../src/heap/incremental-marking-job.cc',
-        '../../src/heap/incremental-marking-job.h',
-        '../../src/heap/incremental-marking.cc',
-        '../../src/heap/incremental-marking.h',
-        '../../src/heap/mark-compact-inl.h',
-        '../../src/heap/mark-compact.cc',
-        '../../src/heap/mark-compact.h',
-        '../../src/heap/object-stats.cc',
-        '../../src/heap/object-stats.h',
-        '../../src/heap/objects-visiting-inl.h',
-        '../../src/heap/objects-visiting.cc',
-        '../../src/heap/objects-visiting.h',
-        '../../src/heap/page-parallel-job.h',
-        '../../src/heap/remembered-set.cc',
-        '../../src/heap/remembered-set.h',
-        '../../src/heap/scavenge-job.h',
-        '../../src/heap/scavenge-job.cc',
-        '../../src/heap/scavenger-inl.h',
-        '../../src/heap/scavenger.cc',
-        '../../src/heap/scavenger.h',
-        '../../src/heap/slot-set.h',
-        '../../src/heap/spaces-inl.h',
-        '../../src/heap/spaces.cc',
-        '../../src/heap/spaces.h',
-        '../../src/heap/store-buffer.cc',
-        '../../src/heap/store-buffer.h',
-        '../../src/i18n.cc',
-        '../../src/i18n.h',
-        '../../src/icu_util.cc',
-        '../../src/icu_util.h',
-        '../../src/ic/access-compiler.cc',
-        '../../src/ic/access-compiler.h',
-        '../../src/ic/call-optimization.cc',
-        '../../src/ic/call-optimization.h',
-        '../../src/ic/handler-compiler.cc',
-        '../../src/ic/handler-compiler.h',
-        '../../src/ic/ic-inl.h',
-        '../../src/ic/ic-state.cc',
-        '../../src/ic/ic-state.h',
-        '../../src/ic/ic.cc',
-        '../../src/ic/ic.h',
-        '../../src/ic/ic-compiler.cc',
-        '../../src/ic/ic-compiler.h',
-        '../../src/identity-map.cc',
-        '../../src/identity-map.h',
-        '../../src/interface-descriptors.cc',
-        '../../src/interface-descriptors.h',
-        '../../src/interpreter/bytecodes.cc',
-        '../../src/interpreter/bytecodes.h',
-        '../../src/interpreter/bytecode-array-builder.cc',
-        '../../src/interpreter/bytecode-array-builder.h',
-        '../../src/interpreter/bytecode-array-iterator.cc',
-        '../../src/interpreter/bytecode-array-iterator.h',
-        '../../src/interpreter/bytecode-register-allocator.cc',
-        '../../src/interpreter/bytecode-register-allocator.h',
-        '../../src/interpreter/bytecode-generator.cc',
-        '../../src/interpreter/bytecode-generator.h',
-        '../../src/interpreter/bytecode-traits.h',
-        '../../src/interpreter/constant-array-builder.cc',
-        '../../src/interpreter/constant-array-builder.h',
-        '../../src/interpreter/control-flow-builders.cc',
-        '../../src/interpreter/control-flow-builders.h',
-        '../../src/interpreter/handler-table-builder.cc',
-        '../../src/interpreter/handler-table-builder.h',
-        '../../src/interpreter/interpreter.cc',
-        '../../src/interpreter/interpreter.h',
-        '../../src/interpreter/interpreter-assembler.cc',
-        '../../src/interpreter/interpreter-assembler.h',
-        '../../src/interpreter/interpreter-intrinsics.cc',
-        '../../src/interpreter/interpreter-intrinsics.h',
-        '../../src/interpreter/source-position-table.cc',
-        '../../src/interpreter/source-position-table.h',
-        '../../src/isolate-inl.h',
-        '../../src/isolate.cc',
-        '../../src/isolate.h',
-        '../../src/json-parser.h',
-        '../../src/json-stringifier.h',
-        '../../src/keys.h',
-        '../../src/keys.cc',
-        '../../src/layout-descriptor-inl.h',
-        '../../src/layout-descriptor.cc',
-        '../../src/layout-descriptor.h',
-        '../../src/list-inl.h',
-        '../../src/list.h',
-        '../../src/locked-queue-inl.h',
-        '../../src/locked-queue.h',
-        '../../src/log-inl.h',
-        '../../src/log-utils.cc',
-        '../../src/log-utils.h',
-        '../../src/log.cc',
-        '../../src/log.h',
-        '../../src/lookup.cc',
-        '../../src/lookup.h',
-        '../../src/macro-assembler.h',
-        '../../src/machine-type.cc',
-        '../../src/machine-type.h',
-        '../../src/messages.cc',
-        '../../src/messages.h',
-        '../../src/msan.h',
-        '../../src/objects-body-descriptors-inl.h',
-        '../../src/objects-body-descriptors.h',
-        '../../src/objects-debug.cc',
-        '../../src/objects-inl.h',
-        '../../src/objects-printer.cc',
-        '../../src/objects.cc',
-        '../../src/objects.h',
-        '../../src/optimizing-compile-dispatcher.cc',
-        '../../src/optimizing-compile-dispatcher.h',
-        '../../src/ostreams.cc',
-        '../../src/ostreams.h',
-        '../../src/parsing/expression-classifier.h',
-        '../../src/parsing/func-name-inferrer.cc',
-        '../../src/parsing/func-name-inferrer.h',
-        '../../src/parsing/parameter-initializer-rewriter.cc',
-        '../../src/parsing/parameter-initializer-rewriter.h',
-        '../../src/parsing/parser-base.h',
-        '../../src/parsing/parser.cc',
-        '../../src/parsing/parser.h',
-        '../../src/parsing/pattern-rewriter.cc',
-        '../../src/parsing/preparse-data-format.h',
-        '../../src/parsing/preparse-data.cc',
-        '../../src/parsing/preparse-data.h',
-        '../../src/parsing/preparser.cc',
-        '../../src/parsing/preparser.h',
-        '../../src/parsing/rewriter.cc',
-        '../../src/parsing/rewriter.h',
-        '../../src/parsing/scanner-character-streams.cc',
-        '../../src/parsing/scanner-character-streams.h',
-        '../../src/parsing/scanner.cc',
-        '../../src/parsing/scanner.h',
-        '../../src/parsing/token.cc',
-        '../../src/parsing/token.h',
-        '../../src/pending-compilation-error-handler.cc',
-        '../../src/pending-compilation-error-handler.h',
-        '../../src/perf-jit.cc',
-        '../../src/perf-jit.h',
-        '../../src/profiler/allocation-tracker.cc',
-        '../../src/profiler/allocation-tracker.h',
-        '../../src/profiler/circular-queue-inl.h',
-        '../../src/profiler/circular-queue.h',
-        '../../src/profiler/cpu-profiler-inl.h',
-        '../../src/profiler/cpu-profiler.cc',
-        '../../src/profiler/cpu-profiler.h',
-        '../../src/profiler/heap-profiler.cc',
-        '../../src/profiler/heap-profiler.h',
-        '../../src/profiler/heap-snapshot-generator-inl.h',
-        '../../src/profiler/heap-snapshot-generator.cc',
-        '../../src/profiler/heap-snapshot-generator.h',
-        '../../src/profiler/profile-generator-inl.h',
-        '../../src/profiler/profile-generator.cc',
-        '../../src/profiler/profile-generator.h',
-        '../../src/profiler/sampler.cc',
-        '../../src/profiler/sampler.h',
-        '../../src/profiler/sampling-heap-profiler.cc',
-        '../../src/profiler/sampling-heap-profiler.h',
-        '../../src/profiler/strings-storage.cc',
-        '../../src/profiler/strings-storage.h',
-        '../../src/profiler/unbound-queue-inl.h',
-        '../../src/profiler/unbound-queue.h',
-        '../../src/property-descriptor.cc',
-        '../../src/property-descriptor.h',
-        '../../src/property-details.h',
-        '../../src/property.cc',
-        '../../src/property.h',
-        '../../src/prototype.h',
-        '../../src/regexp/bytecodes-irregexp.h',
-        '../../src/regexp/interpreter-irregexp.cc',
-        '../../src/regexp/interpreter-irregexp.h',
-        '../../src/regexp/jsregexp-inl.h',
-        '../../src/regexp/jsregexp.cc',
-        '../../src/regexp/jsregexp.h',
-        '../../src/regexp/regexp-ast.cc',
-        '../../src/regexp/regexp-ast.h',
-        '../../src/regexp/regexp-macro-assembler-irregexp-inl.h',
-        '../../src/regexp/regexp-macro-assembler-irregexp.cc',
-        '../../src/regexp/regexp-macro-assembler-irregexp.h',
-        '../../src/regexp/regexp-macro-assembler-tracer.cc',
-        '../../src/regexp/regexp-macro-assembler-tracer.h',
-        '../../src/regexp/regexp-macro-assembler.cc',
-        '../../src/regexp/regexp-macro-assembler.h',
-        '../../src/regexp/regexp-parser.cc',
-        '../../src/regexp/regexp-parser.h',
-        '../../src/regexp/regexp-stack.cc',
-        '../../src/regexp/regexp-stack.h',
-        '../../src/register-configuration.cc',
-        '../../src/register-configuration.h',
-        '../../src/runtime-profiler.cc',
-        '../../src/runtime-profiler.h',
-        '../../src/runtime/runtime-array.cc',
-        '../../src/runtime/runtime-atomics.cc',
-        '../../src/runtime/runtime-classes.cc',
-        '../../src/runtime/runtime-collections.cc',
-        '../../src/runtime/runtime-compiler.cc',
-        '../../src/runtime/runtime-date.cc',
-        '../../src/runtime/runtime-debug.cc',
-        '../../src/runtime/runtime-forin.cc',
-        '../../src/runtime/runtime-function.cc',
-        '../../src/runtime/runtime-futex.cc',
-        '../../src/runtime/runtime-generator.cc',
-        '../../src/runtime/runtime-i18n.cc',
-        '../../src/runtime/runtime-internal.cc',
-        '../../src/runtime/runtime-interpreter.cc',
-        '../../src/runtime/runtime-json.cc',
-        '../../src/runtime/runtime-literals.cc',
-        '../../src/runtime/runtime-liveedit.cc',
-        '../../src/runtime/runtime-maths.cc',
-        '../../src/runtime/runtime-numbers.cc',
-        '../../src/runtime/runtime-object.cc',
-        '../../src/runtime/runtime-observe.cc',
-        '../../src/runtime/runtime-operators.cc',
-        '../../src/runtime/runtime-proxy.cc',
-        '../../src/runtime/runtime-regexp.cc',
-        '../../src/runtime/runtime-scopes.cc',
-        '../../src/runtime/runtime-simd.cc',
-        '../../src/runtime/runtime-strings.cc',
-        '../../src/runtime/runtime-symbol.cc',
-        '../../src/runtime/runtime-test.cc',
-        '../../src/runtime/runtime-typedarray.cc',
-        '../../src/runtime/runtime-uri.cc',
-        '../../src/runtime/runtime-utils.h',
-        '../../src/runtime/runtime.cc',
-        '../../src/runtime/runtime.h',
-        '../../src/safepoint-table.cc',
-        '../../src/safepoint-table.h',
-        '../../src/signature.h',
-        '../../src/simulator.h',
-        '../../src/small-pointer-list.h',
-        '../../src/snapshot/code-serializer.cc',
-        '../../src/snapshot/code-serializer.h',
-        '../../src/snapshot/deserializer.cc',
-        '../../src/snapshot/deserializer.h',
-        '../../src/snapshot/natives.h',
-        '../../src/snapshot/natives-common.cc',
-        '../../src/snapshot/partial-serializer.cc',
-        '../../src/snapshot/partial-serializer.h',
-        '../../src/snapshot/serializer.cc',
-        '../../src/snapshot/serializer.h',
-        '../../src/snapshot/serializer-common.cc',
-        '../../src/snapshot/serializer-common.h',
-        '../../src/snapshot/snapshot.h',
-        '../../src/snapshot/snapshot-common.cc',
-        '../../src/snapshot/snapshot-source-sink.cc',
-        '../../src/snapshot/snapshot-source-sink.h',
-        '../../src/snapshot/startup-serializer.cc',
-        '../../src/snapshot/startup-serializer.h',
-        '../../src/source-position.h',
-        '../../src/splay-tree.h',
-        '../../src/splay-tree-inl.h',
-        '../../src/startup-data-util.cc',
-        '../../src/startup-data-util.h',
-        '../../src/string-builder.cc',
-        '../../src/string-builder.h',
-        '../../src/string-search.h',
-        '../../src/string-stream.cc',
-        '../../src/string-stream.h',
-        '../../src/strtod.cc',
-        '../../src/strtod.h',
-        '../../src/ic/stub-cache.cc',
-        '../../src/ic/stub-cache.h',
-        '../../src/tracing/trace-event.cc',
-        '../../src/tracing/trace-event.h',
-        '../../src/transitions-inl.h',
-        '../../src/transitions.cc',
-        '../../src/transitions.h',
-        '../../src/type-cache.cc',
-        '../../src/type-cache.h',
-        '../../src/type-feedback-vector-inl.h',
-        '../../src/type-feedback-vector.cc',
-        '../../src/type-feedback-vector.h',
-        '../../src/type-info.cc',
-        '../../src/type-info.h',
-        '../../src/types.cc',
-        '../../src/types.h',
-        '../../src/typing-asm.cc',
-        '../../src/typing-asm.h',
-        '../../src/typing-reset.cc',
-        '../../src/typing-reset.h',
-        '../../src/unicode-inl.h',
-        '../../src/unicode.cc',
-        '../../src/unicode.h',
-        '../../src/unicode-cache-inl.h',
-        '../../src/unicode-cache.h',
-        '../../src/unicode-decoder.cc',
-        '../../src/unicode-decoder.h',
-        '../../src/utils-inl.h',
-        '../../src/utils.cc',
-        '../../src/utils.h',
-        '../../src/v8.cc',
-        '../../src/v8.h',
-        '../../src/v8memory.h',
-        '../../src/v8threads.cc',
-        '../../src/v8threads.h',
-        '../../src/vector.h',
-        '../../src/version.cc',
-        '../../src/version.h',
-        '../../src/vm-state-inl.h',
-        '../../src/vm-state.h',
-        '../../src/wasm/asm-wasm-builder.cc',
-        '../../src/wasm/asm-wasm-builder.h',
-        '../../src/wasm/ast-decoder.cc',
-        '../../src/wasm/ast-decoder.h',
-        '../../src/wasm/decoder.h',
-        '../../src/wasm/encoder.cc',
-        '../../src/wasm/encoder.h',
-        '../../src/wasm/module-decoder.cc',
-        '../../src/wasm/module-decoder.h',
-        '../../src/wasm/wasm-js.cc',
-        '../../src/wasm/wasm-js.h',
-        '../../src/wasm/wasm-macro-gen.h',
-        '../../src/wasm/wasm-module.cc',
-        '../../src/wasm/wasm-module.h',
-        '../../src/wasm/wasm-opcodes.cc',
-        '../../src/wasm/wasm-opcodes.h',
-        '../../src/wasm/wasm-result.cc',
-        '../../src/wasm/wasm-result.h',
-        '../../src/zone.cc',
-        '../../src/zone.h',
-        '../../src/zone-allocator.h',
-        '../../src/zone-containers.h',
-        '../../src/third_party/fdlibm/fdlibm.cc',
-        '../../src/third_party/fdlibm/fdlibm.h',
-      ],
-      'conditions': [
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host', 'target'],
-        }, {
-          'toolsets': ['target'],
-        }],
-        ['v8_target_arch=="arm"', {
-          'sources': [  ### gcmole(arch:arm) ###
-            '../../src/arm/assembler-arm-inl.h',
-            '../../src/arm/assembler-arm.cc',
-            '../../src/arm/assembler-arm.h',
-            '../../src/arm/builtins-arm.cc',
-            '../../src/arm/code-stubs-arm.cc',
-            '../../src/arm/code-stubs-arm.h',
-            '../../src/arm/codegen-arm.cc',
-            '../../src/arm/codegen-arm.h',
-            '../../src/arm/constants-arm.h',
-            '../../src/arm/constants-arm.cc',
-            '../../src/arm/cpu-arm.cc',
-            '../../src/arm/deoptimizer-arm.cc',
-            '../../src/arm/disasm-arm.cc',
-            '../../src/arm/frames-arm.cc',
-            '../../src/arm/frames-arm.h',
-            '../../src/arm/interface-descriptors-arm.cc',
-            '../../src/arm/interface-descriptors-arm.h',
-            '../../src/arm/macro-assembler-arm.cc',
-            '../../src/arm/macro-assembler-arm.h',
-            '../../src/arm/simulator-arm.cc',
-            '../../src/arm/simulator-arm.h',
-            '../../src/compiler/arm/code-generator-arm.cc',
-            '../../src/compiler/arm/instruction-codes-arm.h',
-            '../../src/compiler/arm/instruction-scheduler-arm.cc',
-            '../../src/compiler/arm/instruction-selector-arm.cc',
-            '../../src/crankshaft/arm/lithium-arm.cc',
-            '../../src/crankshaft/arm/lithium-arm.h',
-            '../../src/crankshaft/arm/lithium-codegen-arm.cc',
-            '../../src/crankshaft/arm/lithium-codegen-arm.h',
-            '../../src/crankshaft/arm/lithium-gap-resolver-arm.cc',
-            '../../src/crankshaft/arm/lithium-gap-resolver-arm.h',
-            '../../src/debug/arm/debug-arm.cc',
-            '../../src/full-codegen/arm/full-codegen-arm.cc',
-            '../../src/ic/arm/access-compiler-arm.cc',
-            '../../src/ic/arm/handler-compiler-arm.cc',
-            '../../src/ic/arm/ic-arm.cc',
-            '../../src/ic/arm/ic-compiler-arm.cc',
-            '../../src/ic/arm/stub-cache-arm.cc',
-            '../../src/regexp/arm/regexp-macro-assembler-arm.cc',
-            '../../src/regexp/arm/regexp-macro-assembler-arm.h',
-          ],
-        }],
-        ['v8_target_arch=="arm64"', {
-          'sources': [  ### gcmole(arch:arm64) ###
-            '../../src/arm64/assembler-arm64.cc',
-            '../../src/arm64/assembler-arm64.h',
-            '../../src/arm64/assembler-arm64-inl.h',
-            '../../src/arm64/builtins-arm64.cc',
-            '../../src/arm64/codegen-arm64.cc',
-            '../../src/arm64/codegen-arm64.h',
-            '../../src/arm64/code-stubs-arm64.cc',
-            '../../src/arm64/code-stubs-arm64.h',
-            '../../src/arm64/constants-arm64.h',
-            '../../src/arm64/cpu-arm64.cc',
-            '../../src/arm64/decoder-arm64.cc',
-            '../../src/arm64/decoder-arm64.h',
-            '../../src/arm64/decoder-arm64-inl.h',
-            '../../src/arm64/deoptimizer-arm64.cc',
-            '../../src/arm64/disasm-arm64.cc',
-            '../../src/arm64/disasm-arm64.h',
-            '../../src/arm64/frames-arm64.cc',
-            '../../src/arm64/frames-arm64.h',
-            '../../src/arm64/instructions-arm64.cc',
-            '../../src/arm64/instructions-arm64.h',
-            '../../src/arm64/instrument-arm64.cc',
-            '../../src/arm64/instrument-arm64.h',
-            '../../src/arm64/interface-descriptors-arm64.cc',
-            '../../src/arm64/interface-descriptors-arm64.h',
-            '../../src/arm64/macro-assembler-arm64.cc',
-            '../../src/arm64/macro-assembler-arm64.h',
-            '../../src/arm64/macro-assembler-arm64-inl.h',
-            '../../src/arm64/simulator-arm64.cc',
-            '../../src/arm64/simulator-arm64.h',
-            '../../src/arm64/utils-arm64.cc',
-            '../../src/arm64/utils-arm64.h',
-            '../../src/compiler/arm64/code-generator-arm64.cc',
-            '../../src/compiler/arm64/instruction-codes-arm64.h',
-            '../../src/compiler/arm64/instruction-scheduler-arm64.cc',
-            '../../src/compiler/arm64/instruction-selector-arm64.cc',
-            '../../src/crankshaft/arm64/delayed-masm-arm64.cc',
-            '../../src/crankshaft/arm64/delayed-masm-arm64.h',
-            '../../src/crankshaft/arm64/delayed-masm-arm64-inl.h',
-            '../../src/crankshaft/arm64/lithium-arm64.cc',
-            '../../src/crankshaft/arm64/lithium-arm64.h',
-            '../../src/crankshaft/arm64/lithium-codegen-arm64.cc',
-            '../../src/crankshaft/arm64/lithium-codegen-arm64.h',
-            '../../src/crankshaft/arm64/lithium-gap-resolver-arm64.cc',
-            '../../src/crankshaft/arm64/lithium-gap-resolver-arm64.h',
-            '../../src/debug/arm64/debug-arm64.cc',
-            '../../src/full-codegen/arm64/full-codegen-arm64.cc',
-            '../../src/ic/arm64/access-compiler-arm64.cc',
-            '../../src/ic/arm64/handler-compiler-arm64.cc',
-            '../../src/ic/arm64/ic-arm64.cc',
-            '../../src/ic/arm64/ic-compiler-arm64.cc',
-            '../../src/ic/arm64/stub-cache-arm64.cc',
-            '../../src/regexp/arm64/regexp-macro-assembler-arm64.cc',
-            '../../src/regexp/arm64/regexp-macro-assembler-arm64.h',
-          ],
-        }],
-        ['v8_target_arch=="ia32"', {
-          'sources': [  ### gcmole(arch:ia32) ###
-            '../../src/ia32/assembler-ia32-inl.h',
-            '../../src/ia32/assembler-ia32.cc',
-            '../../src/ia32/assembler-ia32.h',
-            '../../src/ia32/builtins-ia32.cc',
-            '../../src/ia32/code-stubs-ia32.cc',
-            '../../src/ia32/code-stubs-ia32.h',
-            '../../src/ia32/codegen-ia32.cc',
-            '../../src/ia32/codegen-ia32.h',
-            '../../src/ia32/cpu-ia32.cc',
-            '../../src/ia32/deoptimizer-ia32.cc',
-            '../../src/ia32/disasm-ia32.cc',
-            '../../src/ia32/frames-ia32.cc',
-            '../../src/ia32/frames-ia32.h',
-            '../../src/ia32/interface-descriptors-ia32.cc',
-            '../../src/ia32/macro-assembler-ia32.cc',
-            '../../src/ia32/macro-assembler-ia32.h',
-            '../../src/compiler/ia32/code-generator-ia32.cc',
-            '../../src/compiler/ia32/instruction-codes-ia32.h',
-            '../../src/compiler/ia32/instruction-scheduler-ia32.cc',
-            '../../src/compiler/ia32/instruction-selector-ia32.cc',
-            '../../src/crankshaft/ia32/lithium-codegen-ia32.cc',
-            '../../src/crankshaft/ia32/lithium-codegen-ia32.h',
-            '../../src/crankshaft/ia32/lithium-gap-resolver-ia32.cc',
-            '../../src/crankshaft/ia32/lithium-gap-resolver-ia32.h',
-            '../../src/crankshaft/ia32/lithium-ia32.cc',
-            '../../src/crankshaft/ia32/lithium-ia32.h',
-            '../../src/debug/ia32/debug-ia32.cc',
-            '../../src/full-codegen/ia32/full-codegen-ia32.cc',
-            '../../src/ic/ia32/access-compiler-ia32.cc',
-            '../../src/ic/ia32/handler-compiler-ia32.cc',
-            '../../src/ic/ia32/ic-ia32.cc',
-            '../../src/ic/ia32/ic-compiler-ia32.cc',
-            '../../src/ic/ia32/stub-cache-ia32.cc',
-            '../../src/regexp/ia32/regexp-macro-assembler-ia32.cc',
-            '../../src/regexp/ia32/regexp-macro-assembler-ia32.h',
-          ],
-        }],
-        ['v8_target_arch=="x87"', {
-          'sources': [  ### gcmole(arch:x87) ###
-            '../../src/x87/assembler-x87-inl.h',
-            '../../src/x87/assembler-x87.cc',
-            '../../src/x87/assembler-x87.h',
-            '../../src/x87/builtins-x87.cc',
-            '../../src/x87/code-stubs-x87.cc',
-            '../../src/x87/code-stubs-x87.h',
-            '../../src/x87/codegen-x87.cc',
-            '../../src/x87/codegen-x87.h',
-            '../../src/x87/cpu-x87.cc',
-            '../../src/x87/deoptimizer-x87.cc',
-            '../../src/x87/disasm-x87.cc',
-            '../../src/x87/frames-x87.cc',
-            '../../src/x87/frames-x87.h',
-            '../../src/x87/interface-descriptors-x87.cc',
-            '../../src/x87/macro-assembler-x87.cc',
-            '../../src/x87/macro-assembler-x87.h',
-            '../../src/compiler/x87/code-generator-x87.cc',
-            '../../src/compiler/x87/instruction-codes-x87.h',
-            '../../src/compiler/x87/instruction-scheduler-x87.cc',
-            '../../src/compiler/x87/instruction-selector-x87.cc',
-            '../../src/crankshaft/x87/lithium-codegen-x87.cc',
-            '../../src/crankshaft/x87/lithium-codegen-x87.h',
-            '../../src/crankshaft/x87/lithium-gap-resolver-x87.cc',
-            '../../src/crankshaft/x87/lithium-gap-resolver-x87.h',
-            '../../src/crankshaft/x87/lithium-x87.cc',
-            '../../src/crankshaft/x87/lithium-x87.h',
-            '../../src/debug/x87/debug-x87.cc',
-            '../../src/full-codegen/x87/full-codegen-x87.cc',
-            '../../src/ic/x87/access-compiler-x87.cc',
-            '../../src/ic/x87/handler-compiler-x87.cc',
-            '../../src/ic/x87/ic-x87.cc',
-            '../../src/ic/x87/ic-compiler-x87.cc',
-            '../../src/ic/x87/stub-cache-x87.cc',
-            '../../src/regexp/x87/regexp-macro-assembler-x87.cc',
-            '../../src/regexp/x87/regexp-macro-assembler-x87.h',
-          ],
-        }],
-        ['v8_target_arch=="mips" or v8_target_arch=="mipsel"', {
-          'sources': [  ### gcmole(arch:mipsel) ###
-            '../../src/mips/assembler-mips.cc',
-            '../../src/mips/assembler-mips.h',
-            '../../src/mips/assembler-mips-inl.h',
-            '../../src/mips/builtins-mips.cc',
-            '../../src/mips/codegen-mips.cc',
-            '../../src/mips/codegen-mips.h',
-            '../../src/mips/code-stubs-mips.cc',
-            '../../src/mips/code-stubs-mips.h',
-            '../../src/mips/constants-mips.cc',
-            '../../src/mips/constants-mips.h',
-            '../../src/mips/cpu-mips.cc',
-            '../../src/mips/deoptimizer-mips.cc',
-            '../../src/mips/disasm-mips.cc',
-            '../../src/mips/frames-mips.cc',
-            '../../src/mips/frames-mips.h',
-            '../../src/mips/interface-descriptors-mips.cc',
-            '../../src/mips/macro-assembler-mips.cc',
-            '../../src/mips/macro-assembler-mips.h',
-            '../../src/mips/simulator-mips.cc',
-            '../../src/mips/simulator-mips.h',
-            '../../src/compiler/mips/code-generator-mips.cc',
-            '../../src/compiler/mips/instruction-codes-mips.h',
-            '../../src/compiler/mips/instruction-scheduler-mips.cc',
-            '../../src/compiler/mips/instruction-selector-mips.cc',
-            '../../src/crankshaft/mips/lithium-codegen-mips.cc',
-            '../../src/crankshaft/mips/lithium-codegen-mips.h',
-            '../../src/crankshaft/mips/lithium-gap-resolver-mips.cc',
-            '../../src/crankshaft/mips/lithium-gap-resolver-mips.h',
-            '../../src/crankshaft/mips/lithium-mips.cc',
-            '../../src/crankshaft/mips/lithium-mips.h',
-            '../../src/full-codegen/mips/full-codegen-mips.cc',
-            '../../src/debug/mips/debug-mips.cc',
-            '../../src/ic/mips/access-compiler-mips.cc',
-            '../../src/ic/mips/handler-compiler-mips.cc',
-            '../../src/ic/mips/ic-mips.cc',
-            '../../src/ic/mips/ic-compiler-mips.cc',
-            '../../src/ic/mips/stub-cache-mips.cc',
-            '../../src/regexp/mips/regexp-macro-assembler-mips.cc',
-            '../../src/regexp/mips/regexp-macro-assembler-mips.h',
-          ],
-        }],
-        ['v8_target_arch=="mips64" or v8_target_arch=="mips64el"', {
-          'sources': [  ### gcmole(arch:mips64el) ###
-            '../../src/mips64/assembler-mips64.cc',
-            '../../src/mips64/assembler-mips64.h',
-            '../../src/mips64/assembler-mips64-inl.h',
-            '../../src/mips64/builtins-mips64.cc',
-            '../../src/mips64/codegen-mips64.cc',
-            '../../src/mips64/codegen-mips64.h',
-            '../../src/mips64/code-stubs-mips64.cc',
-            '../../src/mips64/code-stubs-mips64.h',
-            '../../src/mips64/constants-mips64.cc',
-            '../../src/mips64/constants-mips64.h',
-            '../../src/mips64/cpu-mips64.cc',
-            '../../src/mips64/deoptimizer-mips64.cc',
-            '../../src/mips64/disasm-mips64.cc',
-            '../../src/mips64/frames-mips64.cc',
-            '../../src/mips64/frames-mips64.h',
-            '../../src/mips64/interface-descriptors-mips64.cc',
-            '../../src/mips64/macro-assembler-mips64.cc',
-            '../../src/mips64/macro-assembler-mips64.h',
-            '../../src/mips64/simulator-mips64.cc',
-            '../../src/mips64/simulator-mips64.h',
-            '../../src/compiler/mips64/code-generator-mips64.cc',
-            '../../src/compiler/mips64/instruction-codes-mips64.h',
-            '../../src/compiler/mips64/instruction-scheduler-mips64.cc',
-            '../../src/compiler/mips64/instruction-selector-mips64.cc',
-            '../../src/crankshaft/mips64/lithium-codegen-mips64.cc',
-            '../../src/crankshaft/mips64/lithium-codegen-mips64.h',
-            '../../src/crankshaft/mips64/lithium-gap-resolver-mips64.cc',
-            '../../src/crankshaft/mips64/lithium-gap-resolver-mips64.h',
-            '../../src/crankshaft/mips64/lithium-mips64.cc',
-            '../../src/crankshaft/mips64/lithium-mips64.h',
-            '../../src/debug/mips64/debug-mips64.cc',
-            '../../src/full-codegen/mips64/full-codegen-mips64.cc',
-            '../../src/ic/mips64/access-compiler-mips64.cc',
-            '../../src/ic/mips64/handler-compiler-mips64.cc',
-            '../../src/ic/mips64/ic-mips64.cc',
-            '../../src/ic/mips64/ic-compiler-mips64.cc',
-            '../../src/ic/mips64/stub-cache-mips64.cc',
-            '../../src/regexp/mips64/regexp-macro-assembler-mips64.cc',
-            '../../src/regexp/mips64/regexp-macro-assembler-mips64.h',
-          ],
-        }],
-        ['v8_target_arch=="x64" or v8_target_arch=="x32"', {
-          'sources': [  ### gcmole(arch:x64) ###
-            '../../src/crankshaft/x64/lithium-codegen-x64.cc',
-            '../../src/crankshaft/x64/lithium-codegen-x64.h',
-            '../../src/crankshaft/x64/lithium-gap-resolver-x64.cc',
-            '../../src/crankshaft/x64/lithium-gap-resolver-x64.h',
-            '../../src/crankshaft/x64/lithium-x64.cc',
-            '../../src/crankshaft/x64/lithium-x64.h',
-            '../../src/x64/assembler-x64-inl.h',
-            '../../src/x64/assembler-x64.cc',
-            '../../src/x64/assembler-x64.h',
-            '../../src/x64/builtins-x64.cc',
-            '../../src/x64/code-stubs-x64.cc',
-            '../../src/x64/code-stubs-x64.h',
-            '../../src/x64/codegen-x64.cc',
-            '../../src/x64/codegen-x64.h',
-            '../../src/x64/cpu-x64.cc',
-            '../../src/x64/deoptimizer-x64.cc',
-            '../../src/x64/disasm-x64.cc',
-            '../../src/x64/frames-x64.cc',
-            '../../src/x64/frames-x64.h',
-            '../../src/x64/interface-descriptors-x64.cc',
-            '../../src/x64/macro-assembler-x64.cc',
-            '../../src/x64/macro-assembler-x64.h',
-            '../../src/debug/x64/debug-x64.cc',
-            '../../src/full-codegen/x64/full-codegen-x64.cc',
-            '../../src/ic/x64/access-compiler-x64.cc',
-            '../../src/ic/x64/handler-compiler-x64.cc',
-            '../../src/ic/x64/ic-x64.cc',
-            '../../src/ic/x64/ic-compiler-x64.cc',
-            '../../src/ic/x64/stub-cache-x64.cc',
-            '../../src/regexp/x64/regexp-macro-assembler-x64.cc',
-            '../../src/regexp/x64/regexp-macro-assembler-x64.h',
-          ],
-        }],
-        ['v8_target_arch=="x64"', {
-          'sources': [
-            '../../src/compiler/x64/code-generator-x64.cc',
-            '../../src/compiler/x64/instruction-codes-x64.h',
-            '../../src/compiler/x64/instruction-scheduler-x64.cc',
-            '../../src/compiler/x64/instruction-selector-x64.cc',
-          ],
-        }],
-        ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', {
-          'sources': [  ### gcmole(arch:ppc) ###
-            '../../src/compiler/ppc/code-generator-ppc.cc',
-            '../../src/compiler/ppc/instruction-codes-ppc.h',
-            '../../src/compiler/ppc/instruction-scheduler-ppc.cc',
-            '../../src/compiler/ppc/instruction-selector-ppc.cc',
-            '../../src/crankshaft/ppc/lithium-ppc.cc',
-            '../../src/crankshaft/ppc/lithium-ppc.h',
-            '../../src/crankshaft/ppc/lithium-codegen-ppc.cc',
-            '../../src/crankshaft/ppc/lithium-codegen-ppc.h',
-            '../../src/crankshaft/ppc/lithium-gap-resolver-ppc.cc',
-            '../../src/crankshaft/ppc/lithium-gap-resolver-ppc.h',
-            '../../src/debug/ppc/debug-ppc.cc',
-            '../../src/full-codegen/ppc/full-codegen-ppc.cc',
-            '../../src/ic/ppc/access-compiler-ppc.cc',
-            '../../src/ic/ppc/handler-compiler-ppc.cc',
-            '../../src/ic/ppc/ic-ppc.cc',
-            '../../src/ic/ppc/ic-compiler-ppc.cc',
-            '../../src/ic/ppc/stub-cache-ppc.cc',
-            '../../src/ppc/assembler-ppc-inl.h',
-            '../../src/ppc/assembler-ppc.cc',
-            '../../src/ppc/assembler-ppc.h',
-            '../../src/ppc/builtins-ppc.cc',
-            '../../src/ppc/code-stubs-ppc.cc',
-            '../../src/ppc/code-stubs-ppc.h',
-            '../../src/ppc/codegen-ppc.cc',
-            '../../src/ppc/codegen-ppc.h',
-            '../../src/ppc/constants-ppc.h',
-            '../../src/ppc/constants-ppc.cc',
-            '../../src/ppc/cpu-ppc.cc',
-            '../../src/ppc/deoptimizer-ppc.cc',
-            '../../src/ppc/disasm-ppc.cc',
-            '../../src/ppc/frames-ppc.cc',
-            '../../src/ppc/frames-ppc.h',
-            '../../src/ppc/interface-descriptors-ppc.cc',
-            '../../src/ppc/macro-assembler-ppc.cc',
-            '../../src/ppc/macro-assembler-ppc.h',
-            '../../src/ppc/simulator-ppc.cc',
-            '../../src/ppc/simulator-ppc.h',
-            '../../src/regexp/ppc/regexp-macro-assembler-ppc.cc',
-            '../../src/regexp/ppc/regexp-macro-assembler-ppc.h',
-          ],
-        }],
-        ['v8_target_arch=="s390" or v8_target_arch=="s390x"', {
-          'sources': [  ### gcmole(arch:s390) ###
-            '../../src/compiler/s390/code-generator-s390.cc',
-            '../../src/compiler/s390/instruction-codes-s390.h',
-            '../../src/compiler/s390/instruction-scheduler-s390.cc',
-            '../../src/compiler/s390/instruction-selector-s390.cc',
-            '../../src/crankshaft/s390/lithium-codegen-s390.cc',
-            '../../src/crankshaft/s390/lithium-codegen-s390.h',
-            '../../src/crankshaft/s390/lithium-gap-resolver-s390.cc',
-            '../../src/crankshaft/s390/lithium-gap-resolver-s390.h',
-            '../../src/crankshaft/s390/lithium-s390.cc',
-            '../../src/crankshaft/s390/lithium-s390.h',
-            '../../src/debug/s390/debug-s390.cc',
-            '../../src/full-codegen/s390/full-codegen-s390.cc',
-            '../../src/ic/s390/access-compiler-s390.cc',
-            '../../src/ic/s390/handler-compiler-s390.cc',
-            '../../src/ic/s390/ic-compiler-s390.cc',
-            '../../src/ic/s390/ic-s390.cc',
-            '../../src/ic/s390/stub-cache-s390.cc',
-            '../../src/regexp/s390/regexp-macro-assembler-s390.cc',
-            '../../src/regexp/s390/regexp-macro-assembler-s390.h',
-            '../../src/s390/assembler-s390.cc',
-            '../../src/s390/assembler-s390.h',
-            '../../src/s390/assembler-s390-inl.h',
-            '../../src/s390/builtins-s390.cc',
-            '../../src/s390/codegen-s390.cc',
-            '../../src/s390/codegen-s390.h',
-            '../../src/s390/code-stubs-s390.cc',
-            '../../src/s390/code-stubs-s390.h',
-            '../../src/s390/constants-s390.cc',
-            '../../src/s390/constants-s390.h',
-            '../../src/s390/cpu-s390.cc',
-            '../../src/s390/deoptimizer-s390.cc',
-            '../../src/s390/disasm-s390.cc',
-            '../../src/s390/frames-s390.cc',
-            '../../src/s390/frames-s390.h',
-            '../../src/s390/interface-descriptors-s390.cc',
-            '../../src/s390/macro-assembler-s390.cc',
-            '../../src/s390/macro-assembler-s390.h',
-            '../../src/s390/simulator-s390.cc',
-            '../../src/s390/simulator-s390.h',
-          ],
-        }],
-        ['OS=="win"', {
-          'variables': {
-            'gyp_generators': '<!(echo $GYP_GENERATORS)',
-          },
-          'msvs_disabled_warnings': [4351, 4355, 4800],
-          # When building Official, the .lib is too large and exceeds the 2G
-          # limit. This breaks it into multiple pieces to avoid the limit.
-          # See http://crbug.com/485155.
-          'msvs_shard': 4,
-        }],
-        ['component=="shared_library"', {
-          'defines': [
-            'BUILDING_V8_SHARED',
-            'V8_SHARED',
-          ],
-        }],
-        ['v8_postmortem_support=="true"', {
-          'sources': [
-            '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
-          ]
-        }],
-        ['v8_enable_i18n_support==1', {
-          'dependencies': [
-            '<(icu_gyp_path):icui18n',
-            '<(icu_gyp_path):icuuc',
-          ]
-        }, {  # v8_enable_i18n_support==0
-          'sources!': [
-            '../../src/i18n.cc',
-            '../../src/i18n.h',
-          ],
-        }],
-        ['OS=="win" and v8_enable_i18n_support==1', {
-          'dependencies': [
-            '<(icu_gyp_path):icudata',
-          ],
-        }],
-        ['icu_use_data_file_flag==1', {
-          'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE'],
-        }, { # else icu_use_data_file_flag !=1
-          'conditions': [
-            ['OS=="win"', {
-              'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED'],
-            }, {
-              'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC'],
-            }],
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'v8_libbase',
-      'type': 'static_library',
-      'variables': {
-        'optimize': 'max',
-      },
-      'include_dirs+': [
-        '../..',
-      ],
-      'sources': [
-        '../../src/base/accounting-allocator.cc',
-        '../../src/base/accounting-allocator.h',
-        '../../src/base/adapters.h',
-        '../../src/base/atomicops.h',
-        '../../src/base/atomicops_internals_arm64_gcc.h',
-        '../../src/base/atomicops_internals_arm_gcc.h',
-        '../../src/base/atomicops_internals_atomicword_compat.h',
-        '../../src/base/atomicops_internals_mac.h',
-        '../../src/base/atomicops_internals_mips_gcc.h',
-        '../../src/base/atomicops_internals_mips64_gcc.h',
-        '../../src/base/atomicops_internals_portable.h',
-        '../../src/base/atomicops_internals_ppc_gcc.h',
-        '../../src/base/atomicops_internals_s390_gcc.h',
-        '../../src/base/atomicops_internals_tsan.h',
-        '../../src/base/atomicops_internals_x86_gcc.cc',
-        '../../src/base/atomicops_internals_x86_gcc.h',
-        '../../src/base/atomicops_internals_x86_msvc.h',
-        '../../src/base/bits.cc',
-        '../../src/base/bits.h',
-        '../../src/base/build_config.h',
-        '../../src/base/compiler-specific.h',
-        '../../src/base/cpu.cc',
-        '../../src/base/cpu.h',
-        '../../src/base/division-by-constant.cc',
-        '../../src/base/division-by-constant.h',
-        '../../src/base/flags.h',
-        '../../src/base/functional.cc',
-        '../../src/base/functional.h',
-        '../../src/base/iterator.h',
-        '../../src/base/lazy-instance.h',
-        '../../src/base/logging.cc',
-        '../../src/base/logging.h',
-        '../../src/base/macros.h',
-        '../../src/base/once.cc',
-        '../../src/base/once.h',
-        '../../src/base/platform/elapsed-timer.h',
-        '../../src/base/platform/time.cc',
-        '../../src/base/platform/time.h',
-        '../../src/base/platform/condition-variable.cc',
-        '../../src/base/platform/condition-variable.h',
-        '../../src/base/platform/mutex.cc',
-        '../../src/base/platform/mutex.h',
-        '../../src/base/platform/platform.h',
-        '../../src/base/platform/semaphore.cc',
-        '../../src/base/platform/semaphore.h',
-        '../../src/base/safe_conversions.h',
-        '../../src/base/safe_conversions_impl.h',
-        '../../src/base/safe_math.h',
-        '../../src/base/safe_math_impl.h',
-        '../../src/base/smart-pointers.h',
-        '../../src/base/sys-info.cc',
-        '../../src/base/sys-info.h',
-        '../../src/base/utils/random-number-generator.cc',
-        '../../src/base/utils/random-number-generator.h',
-      ],
-      'conditions': [
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host', 'target'],
-        }, {
-          'toolsets': ['target'],
-        }],
-        ['OS=="linux"', {
-            'conditions': [
-              ['nacl_target_arch=="none"', {
-                'link_settings': {
-                  'libraries': [
-                    '-ldl',
-                    '-lrt'
-                  ],
-                },
-              }, {
-                'defines': [
-                  'V8_LIBRT_NOT_AVAILABLE=1',
-                ],
-              }],
-            ],
-            'sources': [
-              '../../src/base/platform/platform-linux.cc',
-              '../../src/base/platform/platform-posix.cc'
-            ],
-          }
-        ],
-        ['OS=="android"', {
-            'sources': [
-              '../../src/base/platform/platform-posix.cc'
-            ],
-            'link_settings': {
-              'target_conditions': [
-                ['_toolset=="host"', {
-                  # Only include libdl and librt on host builds because they
-                  # are included by default on Android target builds, and we
-                  # don't want to re-include them here since this will change
-                  # library order and break (see crbug.com/469973).
-                  'libraries': [
-                    '-ldl',
-                    '-lrt'
-                  ]
-                }]
-              ]
-            },
-            'conditions': [
-              ['host_os=="mac"', {
-                'target_conditions': [
-                  ['_toolset=="host"', {
-                    'sources': [
-                      '../../src/base/platform/platform-macos.cc'
-                    ]
-                  }, {
-                    'sources': [
-                      '../../src/base/platform/platform-linux.cc'
-                    ]
-                  }],
-                ],
-              }, {
-                'sources': [
-                  '../../src/base/platform/platform-linux.cc'
-                ]
-              }],
-            ],
-          },
-        ],
-        ['OS=="qnx"', {
-            'link_settings': {
-              'target_conditions': [
-                ['_toolset=="host" and host_os=="linux"', {
-                  'libraries': [
-                    '-lrt'
-                  ],
-                }],
-                ['_toolset=="target"', {
-                  'libraries': [
-                    '-lbacktrace'
-                  ],
-                }],
-              ],
-            },
-            'sources': [
-              '../../src/base/platform/platform-posix.cc',
-              '../../src/base/qnx-math.h',
-            ],
-            'target_conditions': [
-              ['_toolset=="host" and host_os=="linux"', {
-                'sources': [
-                  '../../src/base/platform/platform-linux.cc'
-                ],
-              }],
-              ['_toolset=="host" and host_os=="mac"', {
-                'sources': [
-                  '../../src/base/platform/platform-macos.cc'
-                ],
-              }],
-              ['_toolset=="target"', {
-                'sources': [
-                  '../../src/base/platform/platform-qnx.cc'
-                ],
-              }],
-            ],
-          },
-        ],
-        ['OS=="freebsd"', {
-            'link_settings': {
-              'libraries': [
-                '-L/usr/local/lib -lexecinfo',
-            ]},
-            'sources': [
-              '../../src/base/platform/platform-freebsd.cc',
-              '../../src/base/platform/platform-posix.cc'
-            ],
-          }
-        ],
-        ['OS=="openbsd"', {
-            'link_settings': {
-              'libraries': [
-                '-L/usr/local/lib -lexecinfo',
-            ]},
-            'sources': [
-              '../../src/base/platform/platform-openbsd.cc',
-              '../../src/base/platform/platform-posix.cc'
-            ],
-          }
-        ],
-        ['OS=="netbsd"', {
-            'link_settings': {
-              'libraries': [
-                '-L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lexecinfo',
-            ]},
-            'sources': [
-              '../../src/base/platform/platform-openbsd.cc',
-              '../../src/base/platform/platform-posix.cc'
-            ],
-          }
-        ],
-        ['OS=="aix"', {
-          'sources': [
-            '../../src/base/platform/platform-aix.cc',
-            '../../src/base/platform/platform-posix.cc'
-          ]},
-        ],
-        ['OS=="solaris"', {
-            'link_settings': {
-              'libraries': [
-                '-lnsl -lrt',
-            ]},
-            'sources': [
-              '../../src/base/platform/platform-solaris.cc',
-              '../../src/base/platform/platform-posix.cc'
-            ],
-          }
-        ],
-        ['OS=="mac"', {
-          'sources': [
-            '../../src/base/platform/platform-macos.cc',
-            '../../src/base/platform/platform-posix.cc'
-          ]},
-        ],
-        ['OS=="win"', {
-          'defines': [
-            '_CRT_RAND_S'  # for rand_s()
-          ],
-          'variables': {
-            'gyp_generators': '<!(echo $GYP_GENERATORS)',
-          },
-          'conditions': [
-            ['gyp_generators=="make"', {
-              'variables': {
-                'build_env': '<!(uname -o)',
-              },
-              'conditions': [
-                ['build_env=="Cygwin"', {
-                  'sources': [
-                    '../../src/base/platform/platform-cygwin.cc',
-                    '../../src/base/platform/platform-posix.cc'
-                  ],
-                }, {
-                  'sources': [
-                    '../../src/base/platform/platform-win32.cc',
-                    '../../src/base/win32-headers.h',
-                  ],
-                }],
-              ],
-              'link_settings':  {
-                'libraries': [ '-lwinmm', '-lws2_32' ],
-              },
-            }, {
-              'sources': [
-                '../../src/base/platform/platform-win32.cc',
-                '../../src/base/win32-headers.h',
-              ],
-              'msvs_disabled_warnings': [4351, 4355, 4800],
-              'link_settings':  {
-                'libraries': [ '-lwinmm.lib', '-lws2_32.lib' ],
-              },
-            }],
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'v8_libplatform',
-      'type': 'static_library',
-      'variables': {
-        'optimize': 'max',
-      },
-      'dependencies': [
-        'v8_libbase',
-      ],
-      'include_dirs+': [
-        '../..',
-      ],
-      'sources': [
-        '../../include/libplatform/libplatform.h',
-        '../../src/libplatform/default-platform.cc',
-        '../../src/libplatform/default-platform.h',
-        '../../src/libplatform/task-queue.cc',
-        '../../src/libplatform/task-queue.h',
-        '../../src/libplatform/worker-thread.cc',
-        '../../src/libplatform/worker-thread.h',
-      ],
-      'conditions': [
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host', 'target'],
-        }, {
-          'toolsets': ['target'],
-        }],
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../../include',
-        ],
-      },
-    },
-    {
-      'target_name': 'natives_blob',
-      'type': 'none',
-      'conditions': [
-        [ 'v8_use_external_startup_data==1', {
-          'conditions': [
-            ['want_separate_host_toolset==1', {
-              'dependencies': ['js2c#host'],
-            }, {
-              'dependencies': ['js2c'],
-            }],
-          ],
-          'actions': [{
-            'action_name': 'concatenate_natives_blob',
-            'inputs': [
-              '../../tools/concatenate-files.py',
-              '<(SHARED_INTERMEDIATE_DIR)/libraries.bin',
-              '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental.bin',
-              '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin',
-              '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental-extras.bin',
-            ],
-            'conditions': [
-              ['want_separate_host_toolset==1', {
-                'target_conditions': [
-                  ['_toolset=="host"', {
-                    'outputs': [
-                      '<(PRODUCT_DIR)/natives_blob_host.bin',
-                    ],
-                    'action': [
-                      'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin'
-                    ],
-                  }, {
-                    'outputs': [
-                      '<(PRODUCT_DIR)/natives_blob.bin',
-                    ],
-                    'action': [
-                      'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
-                    ],
-                  }],
-                ],
-              }, {
-                'outputs': [
-                  '<(PRODUCT_DIR)/natives_blob.bin',
-                ],
-                'action': [
-                  'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin'
-                ],
-              }],
-            ],
-          }],
-        }],
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host', 'target'],
-        }, {
-          'toolsets': ['target'],
-        }],
-      ]
-    },
-    {
-      'target_name': 'js2c',
-      'type': 'none',
-      'conditions': [
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host'],
-        }, {
-          'toolsets': ['target'],
-        }],
-        ['v8_enable_i18n_support==1', {
-          'variables': {
-            'i18n_library_files': [
-              '../../src/js/i18n.js',
-            ],
-          },
-        }, {
-          'variables': {
-            'i18n_library_files': [],
-          },
-        }],
-      ],
-      'variables': {
-        'library_files': [
-          '../../src/js/macros.py',
-          '../../src/messages.h',
-          '../../src/js/prologue.js',
-          '../../src/js/runtime.js',
-          '../../src/js/v8natives.js',
-          '../../src/js/symbol.js',
-          '../../src/js/array.js',
-          '../../src/js/string.js',
-          '../../src/js/uri.js',
-          '../../src/js/math.js',
-          '../../src/third_party/fdlibm/fdlibm.js',
-          '../../src/js/regexp.js',
-          '../../src/js/arraybuffer.js',
-          '../../src/js/typedarray.js',
-          '../../src/js/iterator-prototype.js',
-          '../../src/js/generator.js',
-          '../../src/js/object-observe.js',
-          '../../src/js/collection.js',
-          '../../src/js/weak-collection.js',
-          '../../src/js/collection-iterator.js',
-          '../../src/js/promise.js',
-          '../../src/js/messages.js',
-          '../../src/js/json.js',
-          '../../src/js/array-iterator.js',
-          '../../src/js/string-iterator.js',
-          '../../src/js/templates.js',
-          '../../src/js/spread.js',
-          '../../src/js/proxy.js',
-          '../../src/debug/mirrors.js',
-          '../../src/debug/debug.js',
-          '../../src/debug/liveedit.js',
-        ],
-        'experimental_library_files': [
-          '../../src/js/macros.py',
-          '../../src/messages.h',
-          '../../src/js/generator.js',
-          '../../src/js/harmony-atomics.js',
-          '../../src/js/harmony-regexp-exec.js',
-          '../../src/js/harmony-object-observe.js',
-          '../../src/js/harmony-sharedarraybuffer.js',
-          '../../src/js/harmony-simd.js',
-          '../../src/js/harmony-species.js',
-          '../../src/js/harmony-unicode-regexps.js',
-          '../../src/js/harmony-string-padding.js',
-          '../../src/js/promise-extra.js',
-        ],
-        'libraries_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries.bin',
-        'libraries_experimental_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental.bin',
-        'libraries_extras_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin',
-        'libraries_experimental_extras_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental-extras.bin',
-      },
-      'actions': [
-        {
-          'action_name': 'js2c',
-          'inputs': [
-            '../../tools/js2c.py',
-            '<@(library_files)',
-            '<@(i18n_library_files)'
-          ],
-          'outputs': ['<(SHARED_INTERMEDIATE_DIR)/libraries.cc'],
-          'action': [
-            'python',
-            '../../tools/js2c.py',
-            '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
-            'CORE',
-            '<@(library_files)',
-            '<@(i18n_library_files)'
-          ],
-        },
-        {
-          'action_name': 'js2c_bin',
-          'inputs': [
-            '../../tools/js2c.py',
-            '<@(library_files)',
-            '<@(i18n_library_files)'
-          ],
-          'outputs': ['<@(libraries_bin_file)'],
-          'action': [
-            'python',
-            '../../tools/js2c.py',
-            '<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
-            'CORE',
-            '<@(library_files)',
-            '<@(i18n_library_files)',
-            '--startup_blob', '<@(libraries_bin_file)',
-            '--nojs',
-          ],
-        },
-        {
-          'action_name': 'js2c_experimental',
-          'inputs': [
-            '../../tools/js2c.py',
-            '<@(experimental_library_files)',
-          ],
-          'outputs': ['<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc'],
-          'action': [
-            'python',
-            '../../tools/js2c.py',
-            '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
-            'EXPERIMENTAL',
-            '<@(experimental_library_files)'
-          ],
-        },
-        {
-          'action_name': 'js2c_experimental_bin',
-          'inputs': [
-            '../../tools/js2c.py',
-            '<@(experimental_library_files)',
-          ],
-          'outputs': ['<@(libraries_experimental_bin_file)'],
-          'action': [
-            'python',
-            '../../tools/js2c.py',
-            '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
-            'EXPERIMENTAL',
-            '<@(experimental_library_files)',
-            '--startup_blob', '<@(libraries_experimental_bin_file)',
-            '--nojs',
-          ],
-        },
-        {
-          'action_name': 'js2c_extras',
-          'inputs': [
-            '../../tools/js2c.py',
-            '<@(v8_extra_library_files)',
-          ],
-          'outputs': ['<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc'],
-          'action': [
-            'python',
-            '../../tools/js2c.py',
-            '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
-            'EXTRAS',
-            '<@(v8_extra_library_files)',
-          ],
-        },
-        {
-          'action_name': 'js2c_extras_bin',
-          'inputs': [
-            '../../tools/js2c.py',
-            '<@(v8_extra_library_files)',
-          ],
-          'outputs': ['<@(libraries_extras_bin_file)'],
-          'action': [
-            'python',
-            '../../tools/js2c.py',
-            '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
-            'EXTRAS',
-            '<@(v8_extra_library_files)',
-            '--startup_blob', '<@(libraries_extras_bin_file)',
-            '--nojs',
-          ],
-        },
-        {
-          'action_name': 'js2c_experimental_extras',
-          'inputs': [
-            '../../tools/js2c.py',
-            '<@(v8_experimental_extra_library_files)',
-          ],
-          'outputs': [
-            '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
-          ],
-          'action': [
-            'python',
-            '../../tools/js2c.py',
-            '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
-            'EXPERIMENTAL_EXTRAS',
-            '<@(v8_experimental_extra_library_files)',
-          ],
-        },
-        {
-          'action_name': 'js2c_experimental_extras_bin',
-          'inputs': [
-            '../../tools/js2c.py',
-            '<@(v8_experimental_extra_library_files)',
-          ],
-          'outputs': ['<@(libraries_experimental_extras_bin_file)'],
-          'action': [
-            'python',
-            '../../tools/js2c.py',
-            '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
-            'EXPERIMENTAL_EXTRAS',
-            '<@(v8_experimental_extra_library_files)',
-            '--startup_blob', '<@(libraries_experimental_extras_bin_file)',
-            '--nojs',
-          ],
-        },
-      ],
-    },
-    {
-      'target_name': 'postmortem-metadata',
-      'type': 'none',
-      'variables': {
-        'heapobject_files': [
-            '../../src/objects.h',
-            '../../src/objects-inl.h',
-        ],
-      },
-      'actions': [
-          {
-            'action_name': 'gen-postmortem-metadata',
-            'inputs': [
-              '../../tools/gen-postmortem-metadata.py',
-              '<@(heapobject_files)',
-            ],
-            'outputs': [
-              '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
-            ],
-            'action': [
-              'python',
-              '../../tools/gen-postmortem-metadata.py',
-              '<@(_outputs)',
-              '<@(heapobject_files)'
-            ]
-          }
-        ]
-    },
-    {
-      'target_name': 'mksnapshot',
-      'type': 'executable',
-      'dependencies': ['v8_base', 'v8_nosnapshot', 'v8_libplatform'],
-      'include_dirs+': [
-        '../..',
-      ],
-      'sources': [
-        '../../src/snapshot/mksnapshot.cc',
-      ],
-      'conditions': [
-        ['v8_enable_i18n_support==1', {
-          'dependencies': [
-            '<(icu_gyp_path):icui18n',
-            '<(icu_gyp_path):icuuc',
-          ]
-        }],
-        ['want_separate_host_toolset==1', {
-          'toolsets': ['host'],
-        }, {
-          'toolsets': ['target'],
-        }],
-      ],
-    },
-  ],
-}
diff --git a/tools/ic-explorer.html b/tools/ic-explorer.html
index 43b486a..ad1737a 100644
--- a/tools/ic-explorer.html
+++ b/tools/ic-explorer.html
@@ -1,338 +1,350 @@
 <html>
-  <head>
-<style>
-  .entry-details { 
-  }
-  .entry-details TD { 
-  }
-  .details {
-    width: 2em;
-    border: 1px black dotted;
-  }
-  .count {
-    text-align: right;
-    width: 5em;
-    font-family: monospace;
-  }
-  .percentage { 
-    text-align: right;
-    width: 5em;
-    font-family: monospace;
-  }
-  .key {
-    padding-left: 1em;
-  }
-  .drilldown-group-title {
-    font-weight: bold;
-    padding: 0.5em 0 0.2em 0;
-  }
-</style>
-  <script>
-"use strict"
-var entries = [];
+<!--
+Copyright 2016 the V8 project authors. All rights reserved.  Use of this source
+code is governed by a BSD-style license that can be found in the LICENSE file.
+-->
 
-class Entry {
-  constructor(id, line) {
-    this.id = id;
-    this.line = line;
-    var parts = line.split(" ");
-    if (parts.length < 6) return
-    this.isValid = false;
-    if (parts[0][0] !== "[") return;
-    if (parts[1] === "patching") return;
-    this.type = parts[0].substr(1);
-    this.category = "Other";
-    if (this.type.indexOf("Store") !== -1) {
-      this.category = "Store";
-    } else if (this.type.indexOf("Load") !== -1) {
-      this.category = "Load";
+<head>
+  <style>
+    .entry-details {}
+    
+    .entry-details TD {}
+    
+    .details {
+      width: 2em;
+      border: 1px black dotted;
     }
-    if (this.type.length == 0) return;
-    if (this.type.indexOf('BinaryOpIC(') === 0) {
-      this.type = "BinaryOpIC";
-      var split = parts[0].split('(');
-      this.state = "(" + split[1] + " => " + parts[2];
-      var offset = this.parsePositionAndFile(parts, 6);
-      if (offset == -1) return
-      if (this.file === undefined) return
-      this.file = this.file.slice(0,-1);
-    } else {
-      var offset = this.parsePositionAndFile(parts, 2);
-      if (offset == -1) return
-      this.state = parts[++offset];
-      if (this.type !== "CompareIC") {
-        // if there is no address we have a smi key
-        var address = parts[++offset];
-        if (address !== undefined && address.indexOf("0x") === 0) {
-          this.key = parts.slice(++offset).join(" ");
+    
+    .count {
+      text-align: right;
+      width: 5em;
+      font-family: monospace;
+    }
+    
+    .percentage {
+      text-align: right;
+      width: 5em;
+      font-family: monospace;
+    }
+    
+    .key {
+      padding-left: 1em;
+    }
+    
+    .drilldown-group-title {
+      font-weight: bold;
+      padding: 0.5em 0 0.2em 0;
+    }
+  </style>
+  <script>
+    "use strict"
+    var entries = [];
+
+    class Entry {
+      constructor(id, line) {
+        this.id = id;
+        this.line = line;
+        var parts = line.split(" ");
+        if (parts.length < 6) return
+        this.isValid = false;
+        if (parts[0][0] !== "[") return;
+        if (parts[1] === "patching") return;
+        this.type = parts[0].substr(1);
+        this.category = "Other";
+        if (this.type.indexOf("Store") !== -1) {
+          this.category = "Store";
+        } else if (this.type.indexOf("Load") !== -1) {
+          this.category = "Load";
+        }
+        if (this.type.length == 0) return;
+        if (this.type.indexOf('BinaryOpIC(') === 0) {
+          this.type = "BinaryOpIC";
+          var split = parts[0].split('(');
+          this.state = "(" + split[1] + " => " + parts[2];
+          var offset = this.parsePositionAndFile(parts, 6);
+          if (offset == -1) return
+          if (this.file === undefined) return
+          this.file = this.file.slice(0, -1);
         } else {
-          this.key = address;
+          var offset = this.parsePositionAndFile(parts, 2);
+          if (offset == -1) return
+          this.state = parts[++offset];
+          if (this.type !== "CompareIC") {
+            // if there is no address we have a smi key
+            var address = parts[++offset];
+            if (address !== undefined && address.indexOf("0x") === 0) {
+              this.key = parts.slice(++offset).join(" ");
+            } else {
+              this.key = address;
+            }
+          }
+        }
+        this.filePosition = this.file + " " + this.position;
+        if (this.key) {
+          var isStringKey = false
+          if (this.key.indexOf("<String[") === 0) {
+            isStringKey = true;
+            this.key = "\"" + this.key.slice(this.key.indexOf(']') + 3);
+          } else if (this.key.indexOf("<") === 0) {
+            this.key = this.key.slice(1);
+          }
+          if (this.key.endsWith(">]")) {
+            this.key = this.key.slice(0, -2);
+          } else if (this.key.endsWith("]")) {
+            this.key = this.key.slice(0, -1);
+          }
+          if (isStringKey) {
+            this.key = this.key + "\"";
+          }
+        }
+        this.isValid = true;
+      }
+
+      parsePositionAndFile(parts, start) {
+        // find the position of 'at' in the parts array.
+        var offset = start;
+        for (var i = start + 1; i < parts.length; i++) {
+          offset++;
+          if (parts[i] == 'at') break;
+        }
+        if (parts[offset] !== 'at') return -1;
+        this.position = parts.slice(start, offset).join(' ');
+        offset += 1;
+        this.isNative = parts[offset] == "native"
+        offset += this.isNative ? 1 : 0;
+        this.file = parts[offset];
+        return offset;
+      }
+    }
+
+    function loadFile() {
+      var files = document.getElementById("uploadInput").files;
+
+      var file = files[0];
+      var reader = new FileReader();
+
+      reader.onload = function(evt) {
+        entries = [];
+        var end = this.result.length;
+        var current = 0;
+        var next = 0;
+        var line;
+        var i = 0;
+        var entry;
+        while (current < end) {
+          next = this.result.indexOf("\n", current);
+          if (next === -1) break;
+          i++;
+
+          line = this.result.substring(current, next);
+          current = next + 1;
+          entry = new Entry(i, line);
+          if (entry.isValid) entries.push(entry);
+        }
+
+        document.getElementById("count").innerHTML = i;
+        updateTable();
+      }
+      reader.readAsText(file);
+      initGroupKeySelect();
+    }
+
+
+
+    var properties = ['type', 'category', 'file', 'filePosition', 'state',
+      'key', 'isNative'
+    ]
+
+    class Group {
+      constructor(property, key, entry) {
+        this.property = property;
+        this.key = key;
+        this.count = 1;
+        this.entries = [entry];
+        this.percentage = undefined;
+        this.groups = undefined;
+      }
+
+      add(entry) {
+        this.count++;
+        this.entries.push(entry)
+      }
+
+      createSubGroups() {
+        this.groups = {};
+        for (var i = 0; i < properties.length; i++) {
+          var subProperty = properties[i];
+          if (this.property == subProperty) continue;
+          this.groups[subProperty] = groupBy(this.entries, subProperty);
         }
       }
     }
-    this.filePosition = this.file + " " + this.position;
-    if (this.key) {
-      var isStringKey = false
-      if (this.key.indexOf("<String[") === 0) {
-       isStringKey = true;
-        this.key = "\"" + this.key.slice(this.key.indexOf(']')+3);
-      } else if (this.key.indexOf("<") === 0) {
-        this.key = this.key.slice(1);
+
+    function groupBy(entries, property) {
+      var accumulator = {};
+      accumulator.__proto__ = null;
+      var length = entries.length;
+      for (var i = 0; i < length; i++) {
+        var entry = entries[i];
+        var key = entry[property];
+        if (accumulator[key] == undefined) {
+          accumulator[key] = new Group(property, key, entry)
+        } else {
+          var group = accumulator[key];
+          if (group.entries == undefined) console.log([group, entry]);
+          group.add(entry)
+        }
       }
-      if (this.key.endsWith(">]")) {
-        this.key = this.key.slice(0, -2);
-      } else if (this.key.endsWith("]")) {
-        this.key = this.key.slice(0, -1);
+      var result = []
+      for (var key in accumulator) {
+        var group = accumulator[key];
+        group.percentage = Math.round(group.count / length * 100 * 100) / 100;
+        result.push(group);
       }
-      if (isStringKey) {
-        this.key = this.key + "\"";
+      result.sort((a, b) => {
+        return b.count - a.count
+      });
+      return result;
+    }
+
+
+
+
+    function updateTable() {
+      var select = document.getElementById("group-key");
+      var key = select.options[select.selectedIndex].text;
+      console.log(key);
+      var tableBody = document.getElementById("table-body");
+      removeAllChildren(tableBody);
+      var groups = groupBy(entries, key, true);
+      display(groups, tableBody);
+    }
+
+    function selecedOption(node) {
+      return node.options[node.selectedIndex]
+    }
+
+    function removeAllChildren(node) {
+      while (node.firstChild) {
+        node.removeChild(node.firstChild);
       }
     }
-    this.isValid = true;
-  }
-  
-  parsePositionAndFile(parts, start) {
-    // find the position of 'at' in the parts array.
-    var offset = start;
-    for (var i = start+1; i<parts.length; i++) {
-      offset++;
-      if (parts[i] == 'at') break;
+
+    function display(entries, parent) {
+      var fragment = document.createDocumentFragment();
+
+      function td(tr, content, className) {
+        var td = document.createElement("td");
+        td.innerHTML = content;
+        td.className = className
+        tr.appendChild(td);
+        return td
+      }
+      var max = Math.min(1000, entries.length)
+      for (var i = 0; i < max; i++) {
+        var entry = entries[i];
+        var tr = document.createElement("tr");
+        tr.entry = entry;
+        td(tr, '<span onclick="toggleDetails(this)">details</a>', 'details');
+        td(tr, entry.percentage + "%", 'percentage');
+        td(tr, entry.count, 'count');
+        td(tr, entry.key, 'key');
+        fragment.appendChild(tr);
+      }
+      var omitted = entries.length - max;
+      if (omitted > 0) {
+        var tr = document.createElement("tr");
+        var td = td(tr, 'Omitted ' + omitted + " entries.");
+        td.colSpan = 4;
+        fragment.appendChild(tr);
+      }
+      parent.appendChild(fragment);
     }
-    if (parts[offset] !== 'at') return -1;
-    this.position = parts.slice(start, offset).join(' ');
-    offset += 1;
-    this.isNative = parts[offset] == "native"
-    offset += this.isNative ? 1 : 0;
-    this.file = parts[offset];
-    return offset;
-  }
-}
 
-function loadFile() {
-  var files = document.getElementById("uploadInput").files;
-
-  var file = files[0];
-  var reader = new FileReader();
-
-  reader.onload = function(evt) {
-    entries = [];
-    var end = this.result.length;
-    var current = 0;
-    var next = 0;
-    var line;
-    var i = 0;
-    var entry;
-    while (current < end) {
-      next = this.result.indexOf("\n", current);
-      if (next === -1) break;
-      i++;
-                            
-      line = this.result.substring(current, next);
-      current = next+1;
-      entry = new Entry(i, line);
-      if (entry.isValid) entries.push(entry);
+    function displayDrilldown(entry, previousSibling) {
+      var tr = document.createElement('tr');
+      tr.className = "entry-details";
+      tr.style.display = "none";
+      // indent by one td.
+      tr.appendChild(document.createElement("td"));
+      var td = document.createElement("td");
+      td.colSpan = 3;
+      for (var key in entry.groups) {
+        td.appendChild(displayDrilldownGroup(entry, key));
+      }
+      tr.appendChild(td);
+      // Append the new TR after previousSibling.
+      previousSibling.parentNode.insertBefore(tr, previousSibling.nextSibling)
     }
-                          
-    document.getElementById("count").innerHTML = i;
-    updateTable();
-  }
-  reader.readAsText(file);
-  initGroupKeySelect(); 
-}
 
-
-
-var properties = ['type', 'category', 'file', 'filePosition', 'state' , 'key', 'isNative']
-
-class Group {
-  constructor(property, key, entry) {
-    this.property = property;
-    this.key = key;
-    this.count = 1;
-    this.entries = [entry];
-    this.percentage = undefined;
-    this.groups = undefined;
-  }
-  
-  add(entry) {
-    this.count ++;
-    this.entries.push(entry)
-  }
-  
-  createSubGroups() {
-    this.groups = {};
-    for (var i=0; i<properties.length; i++) {
-      var subProperty = properties[i];
-      if (this.property == subProperty) continue;
-      this.groups[subProperty] = groupBy(this.entries, subProperty);
+    function displayDrilldownGroup(entry, key) {
+      var max = 20;
+      var group = entry.groups[key];
+      var div = document.createElement("div")
+      div.className = 'drilldown-group-title'
+      div.innerHTML = key + ' [top ' + max + ']';
+      var table = document.createElement("table");
+      display(group.slice(0, max), table, false)
+      div.appendChild(table);
+      return div;
     }
-  }
-}
 
-function groupBy(entries, property) {
-  var accumulator = {};
-  accumulator.__proto__ = null;
-  var length = entries.length;
-  for (var i = 0; i < length; i++) {
-    var entry = entries[i];
-    var key = entry[property];
-    if (accumulator[key] == undefined) {
-      accumulator[key] = new Group(property, key, entry)
-    } else {
-      var group = accumulator[key];
-      if (group.entries == undefined) console.log([group, entry]);
-      group.add(entry)
+    function toggleDetails(node) {
+      var tr = node.parentNode.parentNode;
+      var entry = tr.entry;
+
+      // Create subgroup in-place if the don't exist yet.
+      if (entry.groups === undefined) {
+        entry.createSubGroups();
+        displayDrilldown(entry, tr);
+      }
+      var details = tr.nextSibling;
+      var display = details.style.display;
+      if (display != "none") {
+        display = "none";
+      } else {
+        display = "table-row"
+      };
+      details.style.display = display;
     }
-  }
-  var result = []
-  for (var key in accumulator) {
-    var group = accumulator[key];
-    group.percentage = Math.round(group.count / length * 100 * 100) / 100;
-    result.push(group);
-  }
-  result.sort((a,b) => { return b.count - a.count });
-  return result;
-}
 
-
-
-
-function updateTable() {
-  var select = document.getElementById("group-key");
-  var key = select.options[select.selectedIndex].text;
-  console.log(key);
-  var tableBody = document.getElementById("table-body");
-  removeAllChildren(tableBody);
-  var groups = groupBy(entries, key, true);
-  display(groups, tableBody);
-}
-
-function selecedOption(node) {
- return node.options[node.selectedIndex]
-}
-
-function removeAllChildren(node) {
-  while (node.firstChild) {
-    node.removeChild(node.firstChild);
-  }
-}
-
-function display(entries, parent) {
-  var fragment = document.createDocumentFragment();
-
-  function td(tr, content, className) { 
-    var td = document.createElement("td");
-    td.innerHTML = content;
-    td.className = className
-    tr.appendChild(td);
-    return td
-  }
-  var max = Math.min(1000, entries.length)
-  for (var i = 0; i<max; i++) {
-    var entry = entries[i];
-    var tr = document.createElement("tr");
-    tr.entry = entry;
-    td(tr, '<span onclick="toggleDetails(this)">details</a>', 'details');
-    td(tr, entry.percentage +"%", 'percentage');
-    td(tr, entry.count, 'count');
-    td(tr, entry.key, 'key');
-    fragment.appendChild(tr);
-  }
-  var omitted = entries.length - max;
-  if (omitted > 0) {
-    var tr = document.createElement("tr");
-    var td = td(tr, 'Omitted ' + omitted + " entries.");
-    td.colSpan = 4;
-    fragment.appendChild(tr);
-  }
-  parent.appendChild(fragment);
-}
-
-function displayDrilldown(entry, previousSibling) {
-  var tr = document.createElement('tr');
-  tr.className = "entry-details";
-  tr.style.display = "none";
-  // indent by one td.
-  tr.appendChild(document.createElement("td"));
-  var td = document.createElement("td");
-  td.colSpan = 3;
-  for (var key in entry.groups) {
-    td.appendChild(displayDrilldownGroup(entry, key));
-  }
-  tr.appendChild(td);
-  // Append the new TR after previousSibling.
-  previousSibling.parentNode.insertBefore(tr, previousSibling.nextSibling)
-}
-
-function displayDrilldownGroup(entry, key) {
-  var max = 20;
-  var group = entry.groups[key];
-  var div = document.createElement("div")
-  div.className = 'drilldown-group-title'
-  div.innerHTML = key + ' [top ' + max + ']';
-  var table = document.createElement("table");
-  display(group.slice(0, max), table, false)
-  div.appendChild(table);
-  return div;
-}
-
-function toggleDetails(node) {
-  var tr = node.parentNode.parentNode;
-  var entry = tr.entry;
-
-  // Create subgroup in-place if the don't exist yet.
-  if (entry.groups === undefined) {
-    entry.createSubGroups();
-    displayDrilldown(entry, tr);
-  }
-  var details = tr.nextSibling;
-  var display = details.style.display;
-  if (display != "none") {
-    display = "none";
-  }else {
-    display = "table-row"
-  };
-  details.style.display = display;
-}
-
-function initGroupKeySelect() {
-  var select = document.getElementById("group-key");
-  for (var i in properties) {
-    var option = document.createElement("option");
-    option.text = properties[i];
-    select.add(option);
-  }
-}
-
+    function initGroupKeySelect() {
+      var select = document.getElementById("group-key");
+      for (var i in properties) {
+        var option = document.createElement("option");
+        option.text = properties[i];
+        select.add(option);
+      }
+    }
   </script>
-  </head>
-  <body>
-    <h1>
+</head>
+
+<body>
+  <h1>
       <span style="color: #00FF00">I</span>
       <span style="color: #FF00FF">C</span>
       <span style="color: #00FFFF">E</span>
-    </h1>
-    Your IC-Explorer.
-    <h2>Usage</h2>
-    Run your script with <code>--trace_ic</code> and upload on this page:<br/>
-    <code>/path/to/d8 --trace_ic your_script.js > trace.txt</code>
-    <h2>Data</h2>
-    <form name="fileForm">
-      <p>
-        <input id="uploadInput" type="file" name="files" onchange="loadFile();" >
-        trace entries: <span id="count">0</span>
-      </p>
-    </form>
-    <h2>Result</h2>
+    </h1> Your IC-Explorer.
+  <h2>Usage</h2> Run your script with <code>--trace_ic</code> and upload on this page:<br/>
+  <code>/path/to/d8 --trace_ic your_script.js > trace.txt</code>
+  <h2>Data</h2>
+  <form name="fileForm">
     <p>
+      <input id="uploadInput" type="file" name="files" onchange="loadFile();"> trace
+      entries: <span id="count">0</span>
+    </p>
+  </form>
+  <h2>Result</h2>
+  <p>
     Group-Key:
     <select id="group-key" onchange="updateTable()"></select>
-    </p>
-    <p>
-      <table id="table" width="100%">
-        <tbody id="table-body"> 
-        </tbody>
-      </table>
-    </p>
-  </body>
+  </p>
+  <p>
+    <table id="table" width="100%">
+      <tbody id="table-body">
+      </tbody>
+    </table>
+  </p>
+</body>
+
 </html>
diff --git a/tools/ignition/bytecode_dispatches_report.py b/tools/ignition/bytecode_dispatches_report.py
new file mode 100755
index 0000000..1c14014
--- /dev/null
+++ b/tools/ignition/bytecode_dispatches_report.py
@@ -0,0 +1,258 @@
+#! /usr/bin/python
+#
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+
+import argparse
+import heapq
+import json
+from matplotlib import colors
+from matplotlib import pyplot
+import numpy
+import struct
+
+
+__DESCRIPTION = """
+Process v8.ignition_dispatches_counters.json and list top counters,
+or plot a dispatch heatmap.
+
+Please note that those handlers that may not or will never dispatch
+(e.g. Return or Throw) do not show up in the results.
+"""
+
+
+__HELP_EPILOGUE = """
+examples:
+  # Print the hottest bytecodes in descending order, reading from
+  # default filename v8.ignition_dispatches_counters.json (default mode)
+  $ tools/ignition/bytecode_dispatches_report.py
+
+  # Print the hottest 15 bytecode dispatch pairs reading from data.json
+  $ tools/ignition/bytecode_dispatches_report.py -t -n 15 data.json
+
+  # Save heatmap to default filename v8.ignition_dispatches_counters.svg
+  $ tools/ignition/bytecode_dispatches_report.py -p
+
+  # Save heatmap to filename data.svg
+  $ tools/ignition/bytecode_dispatches_report.py -p -o data.svg
+
+  # Open the heatmap in an interactive viewer
+  $ tools/ignition/bytecode_dispatches_report.py -p -i
+
+  # Display the top 5 sources and destinations of dispatches to/from LdaZero
+  $ tools/ignition/bytecode_dispatches_report.py -f LdaZero -n 5
+"""
+
+__COUNTER_BITS = struct.calcsize("P") * 8  # Size in bits of a pointer
+__COUNTER_MAX = 2**__COUNTER_BITS - 1
+
+
+def warn_if_counter_may_have_saturated(dispatches_table):
+  for source, counters_from_source in dispatches_table.items():
+    for destination, counter in counters_from_source.items():
+      if counter == __COUNTER_MAX:
+        print "WARNING: {} -> {} may have saturated.".format(source,
+                                                             destination)
+
+
+def find_top_bytecode_dispatch_pairs(dispatches_table, top_count):
+  def flattened_counters_generator():
+    for source, counters_from_source in dispatches_table.items():
+      for destination, counter in counters_from_source.items():
+        yield source, destination, counter
+
+  return heapq.nlargest(top_count, flattened_counters_generator(),
+                        key=lambda x: x[2])
+
+
+def print_top_bytecode_dispatch_pairs(dispatches_table, top_count):
+  top_bytecode_dispatch_pairs = (
+    find_top_bytecode_dispatch_pairs(dispatches_table, top_count))
+  print "Top {} bytecode dispatch pairs:".format(top_count)
+  for source, destination, counter in top_bytecode_dispatch_pairs:
+    print "{:>12d}\t{} -> {}".format(counter, source, destination)
+
+
+def find_top_bytecodes(dispatches_table):
+  top_bytecodes = []
+  for bytecode, counters_from_bytecode in dispatches_table.items():
+    top_bytecodes.append((bytecode, sum(counters_from_bytecode.values())))
+  top_bytecodes.sort(key=lambda x: x[1], reverse=True)
+  return top_bytecodes
+
+
+def print_top_bytecodes(dispatches_table):
+  top_bytecodes = find_top_bytecodes(dispatches_table)
+  print "Top bytecodes:"
+  for bytecode, counter in top_bytecodes:
+    print "{:>12d}\t{}".format(counter, bytecode)
+
+
+def find_top_dispatch_sources(dispatches_table, destination, top_count):
+  def source_counters_generator():
+    for source, table_row in dispatches_table.items():
+      if destination in table_row:
+        yield source, table_row[destination]
+
+  return heapq.nlargest(top_count, source_counters_generator(),
+                        key=lambda x: x[1])
+
+
+def print_top_dispatch_sources_and_destinations(dispatches_table, bytecode,
+                                                top_count):
+  top_sources = find_top_dispatch_sources(dispatches_table, bytecode, top_count)
+  top_destinations = heapq.nlargest(top_count,
+                                    dispatches_table[bytecode].items(),
+                                    key=lambda x: x[1])
+
+  print "Top sources of dispatches to {}:".format(bytecode)
+  for source_name, counter in top_sources:
+    print "{:>12d}\t{}".format(counter, source_name)
+
+  print "\nTop destinations of dispatches from {}:".format(bytecode)
+  for destination_name, counter in top_destinations:
+    print "{:>12d}\t{}".format(counter, destination_name)
+
+
+def build_counters_matrix(dispatches_table):
+  labels = sorted(dispatches_table.keys())
+
+  counters_matrix = numpy.empty([len(labels), len(labels)], dtype=int)
+  for from_index, from_name in enumerate(labels):
+    current_row = dispatches_table[from_name];
+    for to_index, to_name in enumerate(labels):
+      counters_matrix[from_index, to_index] = current_row.get(to_name, 0)
+
+  # Reverse y axis for a nicer appearance
+  xlabels = labels
+  ylabels = list(reversed(xlabels))
+  counters_matrix = numpy.flipud(counters_matrix)
+
+  return counters_matrix, xlabels, ylabels
+
+
+def plot_dispatches_table(dispatches_table, figure, axis):
+  counters_matrix, xlabels, ylabels = build_counters_matrix(dispatches_table)
+
+  image = axis.pcolor(
+    counters_matrix,
+    cmap="jet",
+    norm=colors.LogNorm(),
+    edgecolor="grey",
+    linestyle="dotted",
+    linewidth=0.5
+  )
+
+  axis.xaxis.set(
+    ticks=numpy.arange(0.5, len(xlabels)),
+    label="From bytecode handler"
+  )
+  axis.xaxis.tick_top()
+  axis.set_xlim(0, len(xlabels))
+  axis.set_xticklabels(xlabels, rotation="vertical")
+
+  axis.yaxis.set(
+    ticks=numpy.arange(0.5, len(ylabels)),
+    label="To bytecode handler",
+    ticklabels=ylabels
+  )
+  axis.set_ylim(0, len(ylabels))
+
+  figure.colorbar(
+    image,
+    ax=axis,
+    fraction=0.01,
+    pad=0.01
+  )
+
+
+def parse_command_line():
+  command_line_parser = argparse.ArgumentParser(
+    formatter_class=argparse.RawDescriptionHelpFormatter,
+    description=__DESCRIPTION,
+    epilog=__HELP_EPILOGUE
+  )
+  command_line_parser.add_argument(
+    "--plot-size", "-s",
+    metavar="N",
+    default=30,
+    help="shorter side in inches of the output plot (default 30)"
+  )
+  command_line_parser.add_argument(
+    "--plot", "-p",
+    action="store_true",
+    help="plot dispatch pairs heatmap"
+  )
+  command_line_parser.add_argument(
+    "--interactive", "-i",
+    action="store_true",
+    help="open the heatmap in an interactive viewer, instead of writing to file"
+  )
+  command_line_parser.add_argument(
+    "--top-bytecode-dispatch-pairs", "-t",
+    action="store_true",
+    help="print the top bytecode dispatch pairs"
+  )
+  command_line_parser.add_argument(
+    "--top-entries-count", "-n",
+    metavar="N",
+    type=int,
+    default=10,
+    help="print N top entries when running with -t or -f (default 10)"
+  )
+  command_line_parser.add_argument(
+    "--top-dispatches-for-bytecode", "-f",
+    metavar="<bytecode name>",
+    help="print top dispatch sources and destinations to the specified bytecode"
+  )
+  command_line_parser.add_argument(
+    "--output-filename", "-o",
+    metavar="<output filename>",
+    default="v8.ignition_dispatches_table.svg",
+    help=("file to save the plot file to. File type is deduced from the "
+          "extension. PDF, SVG, PNG supported")
+  )
+  command_line_parser.add_argument(
+    "input_filename",
+    metavar="<input filename>",
+    default="v8.ignition_dispatches_table.json",
+    nargs='?',
+    help="Ignition counters JSON file"
+  )
+
+  return command_line_parser.parse_args()
+
+
+def main():
+  program_options = parse_command_line()
+
+  with open(program_options.input_filename) as stream:
+    dispatches_table = json.load(stream)
+
+  warn_if_counter_may_have_saturated(dispatches_table)
+
+  if program_options.plot:
+    figure, axis = pyplot.subplots()
+    plot_dispatches_table(dispatches_table, figure, axis)
+
+    if program_options.interactive:
+      pyplot.show()
+    else:
+      figure.set_size_inches(program_options.plot_size,
+                             program_options.plot_size)
+      pyplot.savefig(program_options.output_filename)
+  elif program_options.top_bytecode_dispatch_pairs:
+    print_top_bytecode_dispatch_pairs(
+      dispatches_table, program_options.top_entries_count)
+  elif program_options.top_dispatches_for_bytecode:
+    print_top_dispatch_sources_and_destinations(
+      dispatches_table, program_options.top_dispatches_for_bytecode,
+      program_options.top_entries_count)
+  else:
+    print_top_bytecodes(dispatches_table)
+
+
+if __name__ == "__main__":
+  main()
diff --git a/tools/ignition/bytecode_dispatches_report_test.py b/tools/ignition/bytecode_dispatches_report_test.py
new file mode 100644
index 0000000..523dac2
--- /dev/null
+++ b/tools/ignition/bytecode_dispatches_report_test.py
@@ -0,0 +1,54 @@
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import bytecode_dispatches_report as bdr
+import unittest
+
+
+class BytecodeDispatchesReportTest(unittest.TestCase):
+  def test_find_top_counters(self):
+    top_counters = bdr.find_top_bytecode_dispatch_pairs({
+      "a": {"a": 10, "b": 8, "c": 99},
+      "b": {"a":  1, "b": 4, "c":  1},
+      "c": {"a": 42, "b": 3, "c":  7}}, 5)
+    self.assertListEqual(top_counters, [
+      ('a', 'c', 99),
+      ('c', 'a', 42),
+      ('a', 'a', 10),
+      ('a', 'b',  8),
+      ('c', 'c',  7)])
+
+  def test_build_counters_matrix(self):
+    counters_matrix, xlabels, ylabels = bdr.build_counters_matrix({
+      "a": {"a": 10, "b":  8, "c":  7},
+      "b": {"a":  1, "c":  4},
+      "c": {"a": 42, "b": 12, "c": 99}})
+    self.assertTrue((counters_matrix == [[42, 12, 99],
+                                         [ 1,  0,  4],
+                                         [10,  8,  7]]).all())
+    self.assertListEqual(xlabels, ['a', 'b', 'c'])
+    self.assertListEqual(ylabels, ['c', 'b', 'a'])
+
+  def test_find_top_bytecodes(self):
+    top_dispatch_sources = bdr.find_top_bytecodes({
+      "a": {"a": 10, "b":  8, "c":  7},
+      "b": {"a":  1, "c":  4},
+      "c": {"a": 42, "b": 12, "c": 99}
+    })
+    self.assertListEqual(top_dispatch_sources, [
+      ('c', 153),
+      ('a',  25),
+      ('b',   5)
+    ])
+
+  def test_find_top_dispatch_sources(self):
+    top_dispatch_sources = bdr.find_top_dispatch_sources({
+      "a": {"a": 10, "b":  8, "c":  7},
+      "b": {"a":  1, "c":  4},
+      "c": {"a": 42, "b": 12, "c": 99}
+    }, "b", 10)
+    self.assertListEqual(top_dispatch_sources, [
+      ("c", 12),
+      ("a",  8)
+    ])
diff --git a/tools/ignition/linux_perf_bytecode_annotate.py b/tools/ignition/linux_perf_bytecode_annotate.py
new file mode 100755
index 0000000..6681190
--- /dev/null
+++ b/tools/ignition/linux_perf_bytecode_annotate.py
@@ -0,0 +1,174 @@
+#! /usr/bin/python2
+#
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+
+import argparse
+import collections
+import os
+import subprocess
+import sys
+
+
+__DESCRIPTION = """
+Processes a perf.data sample file and annotates the hottest instructions in a
+given bytecode handler.
+"""
+
+
+__HELP_EPILOGUE = """
+Note:
+  This tool uses the disassembly of interpreter's bytecode handler codegen
+  from out/<arch>.debug/d8. you should ensure that this binary is in-sync with
+  the version used to generate the perf profile.
+
+  Also, the tool depends on the symbol offsets from perf samples being accurate.
+  As such, you should use the ":pp" suffix for events.
+
+Examples:
+  EVENT_TYPE=cycles:pp tools/run-perf.sh out/x64.release/d8
+  tools/ignition/linux_perf_bytecode_annotate.py Add
+"""
+
+
+def bytecode_offset_generator(perf_stream, bytecode_name):
+  skip_until_end_of_chain = False
+  bytecode_symbol = "BytecodeHandler:" + bytecode_name;
+
+  for line in perf_stream:
+    # Lines starting with a "#" are comments, skip them.
+    if line[0] == "#":
+      continue
+    line = line.strip()
+
+    # Empty line signals the end of the callchain.
+    if not line:
+      skip_until_end_of_chain = False
+      continue
+
+    if skip_until_end_of_chain:
+      continue
+
+    symbol_and_offset = line.split(" ", 1)[1]
+
+    if symbol_and_offset.startswith("BytecodeHandler:"):
+      skip_until_end_of_chain = True
+
+      if symbol_and_offset.startswith(bytecode_symbol):
+        yield int(symbol_and_offset.split("+", 1)[1], 16)
+
+
+def bytecode_offset_counts(bytecode_offsets):
+  offset_counts = collections.defaultdict(int)
+  for offset in bytecode_offsets:
+    offset_counts[offset] += 1
+  return offset_counts
+
+
+def bytecode_disassembly_generator(ignition_codegen, bytecode_name):
+  name_string = "name = " + bytecode_name
+  for line in ignition_codegen:
+    if line.startswith(name_string):
+      break
+
+  # Found the bytecode disassembly.
+  for line in ignition_codegen:
+    line = line.strip()
+    # Blank line marks the end of the bytecode's disassembly.
+    if not line:
+      return
+
+    # Only yield disassembly output.
+    if not line.startswith("0x"):
+      continue
+
+    yield line
+
+
+def print_disassembly_annotation(offset_counts, bytecode_disassembly):
+  total = sum(offset_counts.values())
+  offsets = sorted(offset_counts, reverse=True)
+  def next_offset():
+    return offsets.pop() if offsets else -1
+
+  current_offset = next_offset()
+  print current_offset;
+
+  for line in bytecode_disassembly:
+    disassembly_offset = int(line.split()[1])
+    if disassembly_offset == current_offset:
+      count = offset_counts[current_offset]
+      percentage = 100.0 * count / total
+      print "{:>8d} ({:>5.1f}%) ".format(count, percentage),
+      current_offset = next_offset()
+    else:
+      print "                ",
+    print line
+
+  if offsets:
+    print ("WARNING: Offsets not empty. Output is most likely invalid due to "
+           "a mismatch between perf output and debug d8 binary.")
+
+
+def parse_command_line():
+  command_line_parser = argparse.ArgumentParser(
+      formatter_class=argparse.RawDescriptionHelpFormatter,
+      description=__DESCRIPTION,
+      epilog=__HELP_EPILOGUE)
+
+  command_line_parser.add_argument(
+      "--arch", "-a",
+      help="The architecture (default: x64)",
+      default="x64",
+  )
+  command_line_parser.add_argument(
+      "--input", "-i",
+      help="perf sample file to process (default: perf.data)",
+      default="perf.data",
+      metavar="<perf filename>",
+      dest="perf_filename"
+  )
+  command_line_parser.add_argument(
+      "--output", "-o",
+      help="output file name (stdout if omitted)",
+      type=argparse.FileType("wt"),
+      default=sys.stdout,
+      metavar="<output filename>",
+      dest="output_stream"
+  )
+  command_line_parser.add_argument(
+      "bytecode_name",
+      metavar="<bytecode name>",
+      nargs="?",
+      help="The bytecode handler to annotate"
+  )
+
+  return command_line_parser.parse_args()
+
+
+def main():
+  program_options = parse_command_line()
+  perf = subprocess.Popen(["perf", "script", "-f", "ip,sym,symoff",
+                           "-i", program_options.perf_filename],
+                          stdout=subprocess.PIPE)
+
+  v8_root_path = os.path.dirname(__file__) + "/../../"
+  d8_path = "{}/out/{}.debug/d8".format(v8_root_path, program_options.arch)
+  d8_codegen = subprocess.Popen([d8_path, "--ignition",
+                                 "--trace-ignition-codegen", "-e", "1"],
+                                stdout=subprocess.PIPE)
+
+  bytecode_offsets = bytecode_offset_generator(
+      perf.stdout, program_options.bytecode_name)
+  offset_counts = bytecode_offset_counts(bytecode_offsets)
+
+  bytecode_disassembly = bytecode_disassembly_generator(
+      d8_codegen.stdout, program_options.bytecode_name)
+
+  print_disassembly_annotation(offset_counts, bytecode_disassembly)
+
+
+if __name__ == "__main__":
+  main()
diff --git a/tools/ignition/linux_perf_bytecode_annotate_test.py b/tools/ignition/linux_perf_bytecode_annotate_test.py
new file mode 100644
index 0000000..15abbed
--- /dev/null
+++ b/tools/ignition/linux_perf_bytecode_annotate_test.py
@@ -0,0 +1,85 @@
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import StringIO
+import unittest
+import linux_perf_bytecode_annotate as bytecode_annotate
+
+
+PERF_SCRIPT_OUTPUT = """
+# This line is a comment
+# This should be ignored too
+#
+#    cdefab01  aRandomSymbol::Name(to, be, ignored)
+
+   00000000 firstSymbol
+   00000123 secondSymbol
+
+   01234567 foo
+   abcdef76 BytecodeHandler:bar+0x12
+   76543210 baz
+   abcdef76 BytecodeHandler:bar+0x16
+   76543210 baz
+
+   01234567 foo
+   abcdef76 BytecodeHandler:foo+0x1
+   76543210 baz
+   abcdef76 BytecodeHandler:bar+0x2
+   76543210 bar
+
+   abcdef76 BytecodeHandler:bar+0x19
+
+   abcdef76 BytecodeHandler:bar+0x12
+
+   abcdef76 BytecodeHandler:bar+0x12
+"""
+
+
+D8_CODEGEN_OUTPUT = """
+kind = BYTECODE_HANDLER
+name = foo
+compiler = turbofan
+Instructions (size = 3)
+0x3101394a3c0     0  55             push rbp
+0x3101394a3c1     1  ffe3           jmp rbx
+
+kind = BYTECODE_HANDLER
+name = bar
+compiler = turbofan
+Instructions (size = 5)
+0x3101394b3c0     0  55             push rbp
+0x3101394b3c1     1  4883c428       REX.W addq rsp,0x28
+# Unexpected comment
+0x3101394b3c5     5  ffe3           jmp rbx
+
+kind = BYTECODE_HANDLER
+name = baz
+compiler = turbofan
+Instructions (size = 5)
+0x3101394c3c0     0  55             push rbp
+0x3101394c3c1     1  4883c428       REX.W addq rsp,0x28
+0x3101394c3c5     5  ffe3           jmp rbx
+"""
+
+
+class LinuxPerfBytecodeAnnotateTest(unittest.TestCase):
+
+  def test_bytecode_offset_generator(self):
+    perf_stream = StringIO.StringIO(PERF_SCRIPT_OUTPUT)
+    offsets = list(
+        bytecode_annotate.bytecode_offset_generator(perf_stream, "bar"))
+    self.assertListEqual(offsets, [18, 25, 18, 18])
+
+  def test_bytecode_disassembly_generator(self):
+    codegen_stream = StringIO.StringIO(D8_CODEGEN_OUTPUT)
+    disassembly = list(
+        bytecode_annotate.bytecode_disassembly_generator(codegen_stream, "bar"))
+    self.assertListEqual(disassembly, [
+        "0x3101394b3c0     0  55             push rbp",
+        "0x3101394b3c1     1  4883c428       REX.W addq rsp,0x28",
+        "0x3101394b3c5     5  ffe3           jmp rbx"])
+
+
+if __name__ == "__main__":
+  unittest.main()
diff --git a/tools/ignition/linux_perf_report.py b/tools/ignition/linux_perf_report.py
new file mode 100755
index 0000000..fbf562c
--- /dev/null
+++ b/tools/ignition/linux_perf_report.py
@@ -0,0 +1,222 @@
+#! /usr/bin/python2
+#
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+
+import argparse
+import collections
+import re
+import subprocess
+import sys
+
+
+__DESCRIPTION = """
+Processes a perf.data sample file and reports the hottest Ignition bytecodes,
+or write an input file for flamegraph.pl.
+"""
+
+
+__HELP_EPILOGUE = """
+examples:
+  # Get a flamegraph for Ignition bytecode handlers on Octane benchmark,
+  # without considering the time spent compiling JS code, entry trampoline
+  # samples and other non-Ignition samples.
+  #
+  $ tools/run-perf.sh out/x64.release/d8 \\
+        --ignition --noturbo --nocrankshaft run.js
+  $ tools/ignition/linux_perf_report.py --flamegraph -o out.collapsed
+  $ flamegraph.pl --colors js out.collapsed > out.svg
+
+  # Same as above, but show all samples, including time spent compiling JS code,
+  # entry trampoline samples and other samples.
+  $ # ...
+  $ tools/ignition/linux_perf_report.py \\
+      --flamegraph --show-all -o out.collapsed
+  $ # ...
+
+  # Same as above, but show full function signatures in the flamegraph.
+  $ # ...
+  $ tools/ignition/linux_perf_report.py \\
+      --flamegraph --show-full-signatures -o out.collapsed
+  $ # ...
+
+  # See the hottest bytecodes on Octane benchmark, by number of samples.
+  #
+  $ tools/run-perf.sh out/x64.release/d8 \\
+        --ignition --noturbo --nocrankshaft octane/run.js
+  $ tools/ignition/linux_perf_report.py
+"""
+
+
+COMPILER_SYMBOLS_RE = re.compile(
+  r"v8::internal::(?:\(anonymous namespace\)::)?Compile|v8::internal::Parser")
+
+
+def strip_function_parameters(symbol):
+  if symbol[-1] != ')': return symbol
+  pos = 1
+  parenthesis_count = 0
+  for c in reversed(symbol):
+    if c == ')':
+      parenthesis_count += 1
+    elif c == '(':
+      parenthesis_count -= 1
+    if parenthesis_count == 0:
+      break
+    else:
+      pos += 1
+  return symbol[:-pos]
+
+
+def collapsed_callchains_generator(perf_stream, show_all=False,
+                                   show_full_signatures=False):
+  current_chain = []
+  skip_until_end_of_chain = False
+  compiler_symbol_in_chain = False
+
+  for line in perf_stream:
+    # Lines starting with a "#" are comments, skip them.
+    if line[0] == "#":
+      continue
+
+    line = line.strip()
+
+    # Empty line signals the end of the callchain.
+    if not line:
+      if not skip_until_end_of_chain and current_chain and show_all:
+        current_chain.append("[other]")
+        yield current_chain
+      # Reset parser status.
+      current_chain = []
+      skip_until_end_of_chain = False
+      compiler_symbol_in_chain = False
+      continue
+
+    if skip_until_end_of_chain:
+      continue
+
+    symbol = line.split(" ", 1)[1]
+    if not show_full_signatures:
+      symbol = strip_function_parameters(symbol)
+    current_chain.append(symbol)
+
+    if symbol.startswith("BytecodeHandler:"):
+      yield current_chain
+      skip_until_end_of_chain = True
+    elif symbol == "Stub:CEntryStub" and compiler_symbol_in_chain:
+      if show_all:
+        current_chain[-1] = "[compiler]"
+        yield current_chain
+      skip_until_end_of_chain = True
+    elif COMPILER_SYMBOLS_RE.match(symbol):
+      compiler_symbol_in_chain = True
+    elif symbol == "Builtin:InterpreterEntryTrampoline":
+      if len(current_chain) == 1:
+        yield ["[entry trampoline]"]
+      else:
+        # If we see an InterpreterEntryTrampoline which is not at the top of the
+        # chain and doesn't have a BytecodeHandler above it, then we have
+        # skipped the top BytecodeHandler due to the top-level stub not building
+        # a frame. File the chain in the [misattributed] bucket.
+        current_chain[-1] = "[misattributed]"
+        yield current_chain
+      skip_until_end_of_chain = True
+
+
+def calculate_samples_count_per_callchain(callchains):
+  chain_counters = collections.defaultdict(int)
+  for callchain in callchains:
+    key = ";".join(reversed(callchain))
+    chain_counters[key] += 1
+  return chain_counters.items()
+
+
+def calculate_samples_count_per_handler(callchains):
+  def strip_handler_prefix_if_any(handler):
+    return handler if handler[0] == "[" else handler.split(":", 1)[1]
+
+  handler_counters = collections.defaultdict(int)
+  for callchain in callchains:
+    handler = strip_handler_prefix_if_any(callchain[-1])
+    handler_counters[handler] += 1
+  return handler_counters.items()
+
+
+def write_flamegraph_input_file(output_stream, callchains):
+  for callchain, count in calculate_samples_count_per_callchain(callchains):
+    output_stream.write("{}; {}\n".format(callchain, count))
+
+
+def write_handlers_report(output_stream, callchains):
+  handler_counters = calculate_samples_count_per_handler(callchains)
+  samples_num = sum(counter for _, counter in handler_counters)
+  # Sort by decreasing number of samples
+  handler_counters.sort(key=lambda entry: entry[1], reverse=True)
+  for bytecode_name, count in handler_counters:
+    output_stream.write(
+      "{}\t{}\t{:.3f}%\n".format(bytecode_name, count,
+                                 100. * count / samples_num))
+
+
+def parse_command_line():
+  command_line_parser = argparse.ArgumentParser(
+    formatter_class=argparse.RawDescriptionHelpFormatter,
+    description=__DESCRIPTION,
+    epilog=__HELP_EPILOGUE)
+
+  command_line_parser.add_argument(
+    "perf_filename",
+    help="perf sample file to process (default: perf.data)",
+    nargs="?",
+    default="perf.data",
+    metavar="<perf filename>"
+  )
+  command_line_parser.add_argument(
+    "--flamegraph", "-f",
+    help="output an input file for flamegraph.pl, not a report",
+    action="store_true",
+    dest="output_flamegraph"
+  )
+  command_line_parser.add_argument(
+    "--show-all", "-a",
+    help="show samples outside Ignition bytecode handlers",
+    action="store_true"
+  )
+  command_line_parser.add_argument(
+    "--show-full-signatures", "-s",
+    help="show full signatures instead of function names",
+    action="store_true"
+  )
+  command_line_parser.add_argument(
+    "--output", "-o",
+    help="output file name (stdout if omitted)",
+    type=argparse.FileType('wt'),
+    default=sys.stdout,
+    metavar="<output filename>",
+    dest="output_stream"
+  )
+
+  return command_line_parser.parse_args()
+
+
+def main():
+  program_options = parse_command_line()
+
+  perf = subprocess.Popen(["perf", "script", "-f", "ip,sym",
+                           "-i", program_options.perf_filename],
+                          stdout=subprocess.PIPE)
+
+  callchains = collapsed_callchains_generator(
+    perf.stdout, program_options.show_all,
+    program_options.show_full_signatures)
+
+  if program_options.output_flamegraph:
+    write_flamegraph_input_file(program_options.output_stream, callchains)
+  else:
+    write_handlers_report(program_options.output_stream, callchains)
+
+
+if __name__ == "__main__":
+  main()
diff --git a/tools/ignition/linux_perf_report_test.py b/tools/ignition/linux_perf_report_test.py
new file mode 100644
index 0000000..d9cef75
--- /dev/null
+++ b/tools/ignition/linux_perf_report_test.py
@@ -0,0 +1,147 @@
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import linux_perf_report as ipr
+import StringIO
+import unittest
+
+
+PERF_SCRIPT_OUTPUT = """
+# This line is a comment
+# This should be ignored too
+#
+#    cdefab01  aRandomSymbol::Name(to, be, ignored)
+
+   00000000 firstSymbol
+   00000123 secondSymbol
+
+   01234567 foo
+   abcdef76 BytecodeHandler:bar
+   76543210 baz
+
+# Indentation shouldn't matter (neither should this line)
+
+    01234567 foo
+      abcdef76 BytecodeHandler:bar
+        76543210 baz
+
+      01234567 beep
+   abcdef76 BytecodeHandler:bar
+    76543210 baz
+
+   01234567 hello
+   abcdef76 v8::internal::Compiler
+   00000000 Stub:CEntryStub
+   76543210 world
+   11111111 BytecodeHandler:nope
+
+   00000000 Lost
+   11111111 Builtin:InterpreterEntryTrampoline
+   22222222 bar
+
+   11111111 Builtin:InterpreterEntryTrampoline
+   22222222 bar
+"""
+
+
+class LinuxPerfReportTest(unittest.TestCase):
+  def test_collapsed_callchains_generator(self):
+    perf_stream = StringIO.StringIO(PERF_SCRIPT_OUTPUT)
+    callchains = list(ipr.collapsed_callchains_generator(perf_stream))
+    self.assertListEqual(callchains, [
+      ["foo", "BytecodeHandler:bar"],
+      ["foo", "BytecodeHandler:bar"],
+      ["beep", "BytecodeHandler:bar"],
+      ["[entry trampoline]"],
+    ])
+
+  def test_collapsed_callchains_generator_show_other(self):
+    perf_stream = StringIO.StringIO(PERF_SCRIPT_OUTPUT)
+    callchains = list(ipr.collapsed_callchains_generator(perf_stream,
+                                                         show_all=True))
+    self.assertListEqual(callchains, [
+      ['firstSymbol', 'secondSymbol', '[other]'],
+      ["foo", "BytecodeHandler:bar"],
+      ["foo", "BytecodeHandler:bar"],
+      ["beep", "BytecodeHandler:bar"],
+      ["hello", "v8::internal::Compiler", "[compiler]"],
+      ["Lost", "[misattributed]"],
+      ["[entry trampoline]"],
+    ])
+
+  def test_calculate_samples_count_per_callchain(self):
+    counters = ipr.calculate_samples_count_per_callchain([
+      ["foo", "BytecodeHandler:bar"],
+      ["foo", "BytecodeHandler:bar"],
+      ["beep", "BytecodeHandler:bar"],
+      ["hello", "v8::internal::Compiler", "[compiler]"],
+    ])
+    self.assertItemsEqual(counters, [
+      ('BytecodeHandler:bar;foo', 2),
+      ('BytecodeHandler:bar;beep', 1),
+      ('[compiler];v8::internal::Compiler;hello', 1),
+    ])
+
+  def test_calculate_samples_count_per_callchain(self):
+    counters = ipr.calculate_samples_count_per_callchain([
+      ["foo", "BytecodeHandler:bar"],
+      ["foo", "BytecodeHandler:bar"],
+      ["beep", "BytecodeHandler:bar"],
+    ])
+    self.assertItemsEqual(counters, [
+      ('BytecodeHandler:bar;foo', 2),
+      ('BytecodeHandler:bar;beep', 1),
+    ])
+
+  def test_calculate_samples_count_per_handler_show_compile(self):
+    counters = ipr.calculate_samples_count_per_handler([
+      ["foo", "BytecodeHandler:bar"],
+      ["foo", "BytecodeHandler:bar"],
+      ["beep", "BytecodeHandler:bar"],
+      ["hello", "v8::internal::Compiler", "[compiler]"],
+    ])
+    self.assertItemsEqual(counters, [
+      ("bar", 3),
+      ("[compiler]", 1)
+    ])
+
+  def test_calculate_samples_count_per_handler_(self):
+    counters = ipr.calculate_samples_count_per_handler([
+      ["foo", "BytecodeHandler:bar"],
+      ["foo", "BytecodeHandler:bar"],
+      ["beep", "BytecodeHandler:bar"],
+    ])
+    self.assertItemsEqual(counters, [("bar", 3)])
+
+  def test_multiple_handlers(self):
+    perf_stream = StringIO.StringIO("""
+        0000 foo(bar)
+        1234 BytecodeHandler:first
+        5678 a::random::call<to>(something, else)
+        9abc BytecodeHandler:second
+        def0 otherIrrelevant(stuff)
+        1111 entrypoint
+    """)
+    callchains = list(ipr.collapsed_callchains_generator(perf_stream, False))
+    self.assertListEqual(callchains, [
+      ["foo", "BytecodeHandler:first"],
+    ])
+
+  def test_compiler_symbols_regex(self):
+    compiler_symbols = [
+      "v8::internal::Parser",
+      "v8::internal::(anonymous namespace)::Compile",
+      "v8::internal::Compiler::foo",
+    ]
+    for compiler_symbol in compiler_symbols:
+      self.assertTrue(ipr.COMPILER_SYMBOLS_RE.match(compiler_symbol))
+
+  def test_strip_function_parameters(self):
+    def should_match(signature, name):
+      self.assertEqual(ipr.strip_function_parameters(signature), name)
+
+    should_match("foo(bar)", "foo"),
+    should_match("Foo(foomatic::(anonymous)::bar(baz))", "Foo"),
+    should_match("v8::(anonymous ns)::bar<thing(with, parentheses)>(baz, poe)",
+       "v8::(anonymous ns)::bar<thing(with, parentheses)>")
diff --git a/tools/jsfunfuzz/jsfunfuzz.gyp b/tools/jsfunfuzz/jsfunfuzz.gyp
index fb0e5f4..8938e44 100644
--- a/tools/jsfunfuzz/jsfunfuzz.gyp
+++ b/tools/jsfunfuzz/jsfunfuzz.gyp
@@ -13,8 +13,8 @@
             '../../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../../build/features.gypi',
-            '../../build/isolate.gypi',
+            '../../gypfiles/features.gypi',
+            '../../gypfiles/isolate.gypi',
           ],
           'sources': [
             'jsfunfuzz.isolate',
diff --git a/tools/mingw-generate-makefiles.sh b/tools/mingw-generate-makefiles.sh
index 32af52d..67715fc 100755
--- a/tools/mingw-generate-makefiles.sh
+++ b/tools/mingw-generate-makefiles.sh
@@ -27,7 +27,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # Monkey-patch GYP.
-cat > build/gyp/gyp.mingw << EOF
+cat > tools/gyp/gyp.mingw << EOF
 #!/usr/bin/env python
 
 # Copyright (c) 2009 Google Inc. All rights reserved.
@@ -74,11 +74,11 @@
 find out -name '*.mk' -or -name 'Makefile*' -exec rm {} \;
 
 # Generate fresh Makefiles.
-mv build/gyp/gyp build/gyp/gyp.original
-mv build/gyp/gyp.mingw build/gyp/gyp
+mv tools/gyp/gyp tools/gyp/gyp.original
+mv tools/gyp/gyp.mingw tools/gyp/gyp
 make out/Makefile.ia32
-mv build/gyp/gyp build/gyp/gyp.mingw
-mv build/gyp/gyp.original build/gyp/gyp
+mv tools/gyp/gyp tools/gyp/gyp.mingw
+mv tools/gyp/gyp.original tools/gyp/gyp
 
 # Patch generated Makefiles: replace most backslashes with forward slashes,
 # fix library names in linker flags.
diff --git a/tools/parser-shell.gyp b/tools/parser-shell.gyp
index 77ed1eb..4ef1a82 100644
--- a/tools/parser-shell.gyp
+++ b/tools/parser-shell.gyp
@@ -30,14 +30,14 @@
     'v8_code': 1,
     'v8_enable_i18n_support%': 1,
   },
-  'includes': ['../build/toolchain.gypi', '../build/features.gypi'],
+  'includes': ['../gypfiles/toolchain.gypi', '../gypfiles/features.gypi'],
   'targets': [
     {
       'target_name': 'parser-shell',
       'type': 'executable',
       'dependencies': [
-        '../tools/gyp/v8.gyp:v8',
-        '../tools/gyp/v8.gyp:v8_libplatform',
+        '../src/v8.gyp:v8',
+        '../src/v8.gyp:v8_libplatform',
       ],
       'conditions': [
         ['v8_enable_i18n_support==1', {
@@ -50,10 +50,6 @@
       'include_dirs+': [
         '..',
       ],
-      'defines': [
-        # TODO(jochen): Remove again after this is globally turned on.
-        'V8_IMMINENT_DEPRECATION_WARNINGS',
-      ],
       'sources': [
         'parser-shell.cc',
         'shell-utils.h',
diff --git a/tools/perf-to-html.py b/tools/perf-to-html.py
index 63faeb1..7ec9c50 100755
--- a/tools/perf-to-html.py
+++ b/tools/perf-to-html.py
@@ -115,8 +115,8 @@
     self.name_ = name
     self.tests_ = {}
     for test in data:
-      # strip off "<name>/" prefix
-      test_name = test.split("/")[1]
+      # strip off "<name>/" prefix, allowing for subsequent "/"s
+      test_name = test.split("/", 1)[1]
       self.appendResult(test_name, data[test])
 
   # tests is a dictionary of Results
diff --git a/tools/release/auto_roll.py b/tools/release/auto_roll.py
index b71cac5..243b029 100755
--- a/tools/release/auto_roll.py
+++ b/tools/release/auto_roll.py
@@ -18,7 +18,9 @@
 
 Please close rolling in case of a roll revert:
 https://v8-roll.appspot.com/
-This only works with a Google account.""")
+This only works with a Google account.
+
+CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel""")
 
 class Preparation(Step):
   MESSAGE = "Preparation."
diff --git a/tools/release/create_release.py b/tools/release/create_release.py
index 7477ea1..14d44b4 100755
--- a/tools/release/create_release.py
+++ b/tools/release/create_release.py
@@ -223,6 +223,27 @@
     os.remove(self.Config("CHANGELOG_ENTRY_FILE"))
 
 
+class FixBrokenTag(Step):
+  MESSAGE = "Check for a missing tag and fix that instead."
+
+  def RunStep(self):
+    commit = None
+    try:
+      commit = self.GitLog(
+          n=1, format="%H",
+          grep=self["commit_title"],
+          branch="origin/%s" % self["version"],
+      )
+    except GitFailedException:
+      # In the normal case, the remote doesn't exist yet and git will fail.
+      pass
+    if commit:
+      print "Found %s. Trying to repair tag and bail out." % self["version"]
+      self.Git("tag %s %s" % (self["version"], commit))
+      self.Git("push origin refs/tags/%s" % self["version"])
+      return True
+
+
 class PushBranch(Step):
   MESSAGE = "Push changes."
 
@@ -303,6 +324,7 @@
       SetVersion,
       EnableMergeWatchlist,
       CommitBranch,
+      FixBrokenTag,
       PushBranch,
       TagRevision,
       CleanUp,
diff --git a/tools/release/test_scripts.py b/tools/release/test_scripts.py
index 05457c9..417f739 100644
--- a/tools/release/test_scripts.py
+++ b/tools/release/test_scripts.py
@@ -970,6 +970,8 @@
           cb=self.WriteFakeWatchlistsFile),
       Cmd("git commit -aF \"%s\"" % TEST_CONFIG["COMMITMSG_FILE"], "",
           cb=CheckVersionCommit),
+      Cmd("git log -1 --format=%H --grep=\"Version 3.22.5\" origin/3.22.5",
+          ""),
       Cmd("git push origin "
           "refs/heads/work-branch:refs/pending/heads/3.22.5 "
           "push_hash:refs/pending-tags/heads/3.22.5 "
@@ -1041,6 +1043,8 @@
 https://v8-roll.appspot.com/
 This only works with a Google account.
 
+CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
+
 TBR=reviewer@chromium.org"""
 
   # Snippet from the original DEPS file.
diff --git a/tools/run-deopt-fuzzer.gyp b/tools/run-deopt-fuzzer.gyp
index 73f0aaf..9eb6b53 100644
--- a/tools/run-deopt-fuzzer.gyp
+++ b/tools/run-deopt-fuzzer.gyp
@@ -13,8 +13,8 @@
             '../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../build/features.gypi',
-            '../build/isolate.gypi',
+            '../gypfiles/features.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'run-deopt-fuzzer.isolate',
diff --git a/tools/run-deopt-fuzzer.py b/tools/run-deopt-fuzzer.py
index 970aa8e..928c71b 100755
--- a/tools/run-deopt-fuzzer.py
+++ b/tools/run-deopt-fuzzer.py
@@ -399,6 +399,7 @@
     "gc_stress": False,
     "gcov_coverage": False,
     "ignition": False,
+    "ignition_turbofan": False,
     "isolates": options.isolates,
     "mode": mode,
     "no_i18n": False,
diff --git a/tools/run-perf.sh b/tools/run-perf.sh
index 24053b4..03123fd 100755
--- a/tools/run-perf.sh
+++ b/tools/run-perf.sh
@@ -13,6 +13,7 @@
 SAMPLE_RATE_CONFIG_FILE="/proc/sys/kernel/perf_event_max_sample_rate"
 KERNEL_MAP_CONFIG_FILE="/proc/sys/kernel/kptr_restrict"
 CALL_GRAPH_METHOD="fp"  # dwarf does not play nice with JITted objects.
+EVENT_TYPE=${EVENT_TYPE:=cycles:u}
 
 ########## Usage
 
@@ -46,7 +47,7 @@
 
 echo "Running..."
 perf record -R \
-  -e cycles:u \
+  -e $EVENT_TYPE \
   -c $SAMPLE_EVERY_N_CYCLES \
   --call-graph $CALL_GRAPH_METHOD \
   -i $@ --perf_basic_prof
diff --git a/tools/run-tests.py b/tools/run-tests.py
index a380c97..b1c71dd 100755
--- a/tools/run-tests.py
+++ b/tools/run-tests.py
@@ -105,6 +105,7 @@
 VARIANTS = ["default", "stress", "turbofan"]
 
 EXHAUSTIVE_VARIANTS = VARIANTS + [
+  "ignition",
   "nocrankshaft",
   "turbofan_opt",
 ]
@@ -194,6 +195,8 @@
               "mips64el",
               "nacl_ia32",
               "nacl_x64",
+              "s390",
+              "s390x",
               "x87",
               "arm64"]
 
@@ -253,6 +256,9 @@
                     default="")
   result.add_option("--ignition", help="Skip tests which don't run in ignition",
                     default=False, action="store_true")
+  result.add_option("--ignition-turbofan",
+                    help="Skip tests which don't run in ignition_turbofan",
+                    default=False, action="store_true")
   result.add_option("--isolates", help="Whether to test isolates",
                     default=False, action="store_true")
   result.add_option("-j", help="The number of parallel tasks to run",
@@ -335,7 +341,7 @@
   result.add_option("--time", help="Print timing information after running",
                     default=False, action="store_true")
   result.add_option("-t", "--timeout", help="Timeout in seconds",
-                    default= -1, type="int")
+                    default=TIMEOUT_DEFAULT, type="int")
   result.add_option("--tsan",
                     help="Regard test expectations for TSAN",
                     default=False, action="store_true")
@@ -378,6 +384,10 @@
 
 def SetupEnvironment(options):
   """Setup additional environment variables."""
+
+  # Many tests assume an English interface.
+  os.environ['LANG'] = 'en_US.UTF-8'
+
   symbolizer = 'external_symbolizer_path=%s' % (
       os.path.join(
           BASE_DIR, 'third_party', 'llvm-build', 'Release+Asserts', 'bin',
@@ -591,6 +601,11 @@
     return 1
   SetupEnvironment(options)
 
+  if options.swarming:
+    # Swarming doesn't print how isolated commands are called. Lets make this
+    # less cryptic by printing it ourselves.
+    print ' '.join(sys.argv)
+
   exit_code = 0
   if not options.no_presubmit:
     print ">>> running presubmit tests"
@@ -663,19 +678,16 @@
 
   # Populate context object.
   mode_flags = MODES[mode]["flags"]
-  timeout = options.timeout
-  if timeout == -1:
-    # Simulators are slow, therefore allow a longer default timeout.
-    if arch in SLOW_ARCHS:
-      timeout = 2 * TIMEOUT_DEFAULT;
-    else:
-      timeout = TIMEOUT_DEFAULT;
 
-  timeout *= MODES[mode]["timeout_scalefactor"]
+  # Simulators are slow, therefore allow a longer timeout.
+  if arch in SLOW_ARCHS:
+    options.timeout *= 2
+
+  options.timeout *= MODES[mode]["timeout_scalefactor"]
 
   if options.predictable:
     # Predictable mode is slower.
-    timeout *= 2
+    options.timeout *= 2
 
   # TODO(machenbach): Remove temporary verbose output on windows after
   # debugging driver-hung-up on XP.
@@ -685,7 +697,8 @@
   )
   ctx = context.Context(arch, MODES[mode]["execution_mode"], shell_dir,
                         mode_flags, verbose_output,
-                        timeout, options.isolates,
+                        options.timeout,
+                        options.isolates,
                         options.command_prefix,
                         options.extra_flags,
                         options.no_i18n,
@@ -711,6 +724,7 @@
     "gc_stress": options.gc_stress,
     "gcov_coverage": options.gcov_coverage,
     "ignition": options.ignition,
+    "ignition_turbofan": options.ignition_turbofan,
     "isolates": options.isolates,
     "mode": MODES[mode]["status_mode"],
     "no_i18n": options.no_i18n,
diff --git a/tools/run-valgrind.gyp b/tools/run-valgrind.gyp
index d06be93..02dd26d 100644
--- a/tools/run-valgrind.gyp
+++ b/tools/run-valgrind.gyp
@@ -13,8 +13,8 @@
             '../src/d8.gyp:d8_run',
           ],
           'includes': [
-            '../build/features.gypi',
-            '../build/isolate.gypi',
+            '../gypfiles/features.gypi',
+            '../gypfiles/isolate.gypi',
           ],
           'sources': [
             'run-valgrind.isolate',
diff --git a/tools/run_perf.py b/tools/run_perf.py
index db4245f..1dd03bd 100755
--- a/tools/run_perf.py
+++ b/tools/run_perf.py
@@ -612,6 +612,21 @@
 class DesktopPlatform(Platform):
   def __init__(self, options):
     super(DesktopPlatform, self).__init__(options)
+    self.command_prefix = []
+
+    if options.prioritize or options.affinitize != None:
+      self.command_prefix = ["schedtool"]
+      if options.prioritize:
+        self.command_prefix += ["-n", "-20"]
+      if options.affinitize != None:
+      # schedtool expects a bit pattern when setting affinity, where each
+      # bit set to '1' corresponds to a core where the process may run on.
+      # First bit corresponds to CPU 0. Since the 'affinitize' parameter is
+      # a core number, we need to map to said bit pattern.
+        cpu = int(options.affinitize)
+        core = 1 << cpu
+        self.command_prefix += ["-a", ("0x%x" % core)]
+      self.command_prefix += ["-e"]
 
   def PreExecution(self):
     pass
@@ -627,15 +642,18 @@
     suffix = ' - without patch' if no_patch else ''
     shell_dir = self.shell_dir_no_patch if no_patch else self.shell_dir
     title = ">>> %%s (#%d)%s:" % ((count + 1), suffix)
+    command = self.command_prefix + runnable.GetCommand(shell_dir,
+                                                        self.extra_flags)
     try:
       output = commands.Execute(
-          runnable.GetCommand(shell_dir, self.extra_flags),
-          timeout=runnable.timeout,
+        command,
+        timeout=runnable.timeout,
       )
     except OSError as e:  # pragma: no cover
       print title % "OSError"
       print e
       return ""
+
     print title % "Stdout"
     print output.stdout
     if output.stderr:  # pragma: no cover
@@ -788,6 +806,107 @@
       stdout = ""
     return stdout
 
+class CustomMachineConfiguration:
+  def __init__(self, disable_aslr = False, governor = None):
+    self.aslr_backup = None
+    self.governor_backup = None
+    self.disable_aslr = disable_aslr
+    self.governor = governor
+
+  def __enter__(self):
+    if self.disable_aslr:
+      self.aslr_backup = CustomMachineConfiguration.GetASLR()
+      CustomMachineConfiguration.SetASLR(0)
+    if self.governor != None:
+      self.governor_backup = CustomMachineConfiguration.GetCPUGovernor()
+      CustomMachineConfiguration.SetCPUGovernor(self.governor)
+    return self
+
+  def __exit__(self, type, value, traceback):
+    if self.aslr_backup != None:
+      CustomMachineConfiguration.SetASLR(self.aslr_backup)
+    if self.governor_backup != None:
+      CustomMachineConfiguration.SetCPUGovernor(self.governor_backup)
+
+  @staticmethod
+  def GetASLR():
+    try:
+      with open("/proc/sys/kernel/randomize_va_space", "r") as f:
+        return int(f.readline().strip())
+    except Exception as e:
+      print "Failed to get current ASLR settings."
+      raise e
+
+  @staticmethod
+  def SetASLR(value):
+    try:
+      with open("/proc/sys/kernel/randomize_va_space", "w") as f:
+        f.write(str(value))
+    except Exception as e:
+      print "Failed to update ASLR to %s." % value
+      print "Are we running under sudo?"
+      raise e
+
+    new_value = CustomMachineConfiguration.GetASLR()
+    if value != new_value:
+      raise Exception("Present value is %s" % new_value)
+
+  @staticmethod
+  def GetCPUCoresRange():
+    try:
+      with open("/sys/devices/system/cpu/present", "r") as f:
+        indexes = f.readline()
+        first, last = map(int, indexes.split("-"))
+        return range(first, last + 1)
+    except Exception as e:
+      print "Failed to retrieve number of CPUs."
+      raise e
+
+  @staticmethod
+  def GetCPUPathForId(cpu_index):
+    ret = "/sys/devices/system/cpu/cpu"
+    ret += str(cpu_index)
+    ret += "/cpufreq/scaling_governor"
+    return ret
+
+  @staticmethod
+  def GetCPUGovernor():
+    try:
+      cpu_indices = CustomMachineConfiguration.GetCPUCoresRange()
+      ret = None
+      for cpu_index in cpu_indices:
+        cpu_device = CustomMachineConfiguration.GetCPUPathForId(cpu_index)
+        with open(cpu_device, "r") as f:
+          # We assume the governors of all CPUs are set to the same value
+          val = f.readline().strip()
+          if ret == None:
+            ret = val
+          elif ret != val:
+            raise Exception("CPU cores have differing governor settings")
+      return ret
+    except Exception as e:
+      print "Failed to get the current CPU governor."
+      print "Is the CPU governor disabled? Check BIOS."
+      raise e
+
+  @staticmethod
+  def SetCPUGovernor(value):
+    try:
+      cpu_indices = CustomMachineConfiguration.GetCPUCoresRange()
+      for cpu_index in cpu_indices:
+        cpu_device = CustomMachineConfiguration.GetCPUPathForId(cpu_index)
+        with open(cpu_device, "w") as f:
+          f.write(value)
+
+    except Exception as e:
+      print "Failed to change CPU governor to %s." % value
+      print "Are we running under sudo?"
+      raise e
+
+    cur_value = CustomMachineConfiguration.GetCPUGovernor()
+    if cur_value != value:
+      raise Exception("Could not set CPU governor. Present value is %s"
+                      % cur_value )
 
 # TODO: Implement results_processor.
 def Main(args):
@@ -822,6 +941,27 @@
                     help="JavaScript engine binary. By default, d8 under "
                     "architecture-specific build dir. "
                     "Not supported in conjunction with outdir-no-patch.")
+  parser.add_option("--prioritize",
+                    help="Raise the priority to nice -20 for the benchmarking "
+                    "process.Requires Linux, schedtool, and sudo privileges.",
+                    default=False, action="store_true")
+  parser.add_option("--affinitize",
+                    help="Run benchmarking process on the specified core. "
+                    "For example: "
+                    "--affinitize=0 will run the benchmark process on core 0. "
+                    "--affinitize=3 will run the benchmark process on core 3. "
+                    "Requires Linux, schedtool, and sudo privileges.",
+                    default=None)
+  parser.add_option("--noaslr",
+                    help="Disable ASLR for the duration of the benchmarked "
+                    "process. Requires Linux and sudo privileges.",
+                    default=False, action="store_true")
+  parser.add_option("--cpu-governor",
+                    help="Set cpu governor to specified policy for the "
+                    "duration of the benchmarked process. Typical options: "
+                    "'powersave' for more stable results, or 'performance' "
+                    "for shorter completion time of suite, with potentially "
+                    "more noise in results.")
 
   (options, args) = parser.parse_args(args)
 
@@ -872,56 +1012,60 @@
   else:
     options.shell_dir_no_patch = None
 
+  prev_aslr = None
+  prev_cpu_gov = None
   platform = Platform.GetPlatform(options)
 
   results = Results()
   results_no_patch = Results()
-  for path in args:
-    path = os.path.abspath(path)
+  with CustomMachineConfiguration(governor = options.cpu_governor,
+                                  disable_aslr = options.noaslr) as conf:
+    for path in args:
+      path = os.path.abspath(path)
 
-    if not os.path.exists(path):  # pragma: no cover
-      results.errors.append("Configuration file %s does not exist." % path)
-      continue
+      if not os.path.exists(path):  # pragma: no cover
+        results.errors.append("Configuration file %s does not exist." % path)
+        continue
 
-    with open(path) as f:
-      suite = json.loads(f.read())
+      with open(path) as f:
+        suite = json.loads(f.read())
 
-    # If no name is given, default to the file name without .json.
-    suite.setdefault("name", os.path.splitext(os.path.basename(path))[0])
+      # If no name is given, default to the file name without .json.
+      suite.setdefault("name", os.path.splitext(os.path.basename(path))[0])
 
-    # Setup things common to one test suite.
-    platform.PreExecution()
+      # Setup things common to one test suite.
+      platform.PreExecution()
 
-    # Build the graph/trace tree structure.
-    default_parent = DefaultSentinel(default_binary_name)
-    root = BuildGraphConfigs(suite, options.arch, default_parent)
+      # Build the graph/trace tree structure.
+      default_parent = DefaultSentinel(default_binary_name)
+      root = BuildGraphConfigs(suite, options.arch, default_parent)
 
-    # Callback to be called on each node on traversal.
-    def NodeCB(node):
-      platform.PreTests(node, path)
+      # Callback to be called on each node on traversal.
+      def NodeCB(node):
+        platform.PreTests(node, path)
 
-    # Traverse graph/trace tree and interate over all runnables.
-    for runnable in FlattenRunnables(root, NodeCB):
-      print ">>> Running suite: %s" % "/".join(runnable.graphs)
+      # Traverse graph/trace tree and interate over all runnables.
+      for runnable in FlattenRunnables(root, NodeCB):
+        print ">>> Running suite: %s" % "/".join(runnable.graphs)
 
-      def Runner():
-        """Output generator that reruns several times."""
-        for i in xrange(0, max(1, runnable.run_count)):
-          # TODO(machenbach): Allow timeout per arch like with run_count per
-          # arch.
-          yield platform.Run(runnable, i)
+        def Runner():
+          """Output generator that reruns several times."""
+          for i in xrange(0, max(1, runnable.run_count)):
+            # TODO(machenbach): Allow timeout per arch like with run_count per
+            # arch.
+            yield platform.Run(runnable, i)
 
-      # Let runnable iterate over all runs and handle output.
-      result, result_no_patch = runnable.Run(
+        # Let runnable iterate over all runs and handle output.
+        result, result_no_patch = runnable.Run(
           Runner, trybot=options.shell_dir_no_patch)
-      results += result
-      results_no_patch += result_no_patch
-    platform.PostExecution()
+        results += result
+        results_no_patch += result_no_patch
+      platform.PostExecution()
 
-  if options.json_test_results:
-    results.WriteToFile(options.json_test_results)
-  else:  # pragma: no cover
-    print results
+    if options.json_test_results:
+      results.WriteToFile(options.json_test_results)
+    else:  # pragma: no cover
+      print results
 
   if options.json_test_results_no_patch:
     results_no_patch.WriteToFile(options.json_test_results_no_patch)
diff --git a/tools/testrunner/local/execution.py b/tools/testrunner/local/execution.py
index e0aec0b..f3d11a8 100644
--- a/tools/testrunner/local/execution.py
+++ b/tools/testrunner/local/execution.py
@@ -248,7 +248,6 @@
       self.total += 1
 
   def _ProcessTestNormal(self, test, result, pool):
-    self.indicator.AboutToRun(test)
     test.output = result[1]
     test.duration = result[2]
     has_unexpected_output = test.suite.HasUnexpectedOutput(test)
@@ -285,7 +284,6 @@
     if test.run == 1 and result[1].HasTimedOut():
       # If we get a timeout in the first run, we are already in an
       # unpredictable state. Just report it as a failure and don't rerun.
-      self.indicator.AboutToRun(test)
       test.output = result[1]
       self.remaining -= 1
       self.failed.append(test)
@@ -294,16 +292,13 @@
       # From the second run on, check for different allocations. If a
       # difference is found, call the indicator twice to report both tests.
       # All runs of each test are counted as one for the statistic.
-      self.indicator.AboutToRun(test)
       self.remaining -= 1
       self.failed.append(test)
       self.indicator.HasRun(test, True)
-      self.indicator.AboutToRun(test)
       test.output = result[1]
       self.indicator.HasRun(test, True)
     elif test.run >= 3:
       # No difference on the third run -> report a success.
-      self.indicator.AboutToRun(test)
       self.remaining -= 1
       self.succeeded += 1
       test.output = result[1]
diff --git a/tools/testrunner/local/progress.py b/tools/testrunner/local/progress.py
index 4e1be3e..33e27e1 100644
--- a/tools/testrunner/local/progress.py
+++ b/tools/testrunner/local/progress.py
@@ -34,6 +34,7 @@
 
 from . import execution
 from . import junit_output
+from . import statusfile
 
 
 ABS_PATH_PREFIX = os.getcwd() + os.sep
@@ -53,9 +54,6 @@
   def Done(self):
     pass
 
-  def AboutToRun(self, test):
-    pass
-
   def HasRun(self, test, has_unexpected_output):
     pass
 
@@ -146,10 +144,6 @@
 
 class VerboseProgressIndicator(SimpleProgressIndicator):
 
-  def AboutToRun(self, test):
-    print 'Starting %s...' % test.GetLabel()
-    sys.stdout.flush()
-
   def HasRun(self, test, has_unexpected_output):
     if has_unexpected_output:
       if test.output.HasCrashed():
@@ -200,10 +194,8 @@
     self.PrintProgress('Done')
     print ""  # Line break.
 
-  def AboutToRun(self, test):
-    self.PrintProgress(test.GetLabel())
-
   def HasRun(self, test, has_unexpected_output):
+    self.PrintProgress(test.GetLabel())
     if has_unexpected_output:
       self.ClearLine(self.last_status_length)
       self.PrintFailureHeader(test)
@@ -329,6 +321,12 @@
         # Buildbot might start out with an empty file.
         complete_results = json.loads(f.read() or "[]")
 
+    duration_mean = None
+    if self.tests:
+      # Get duration mean.
+      duration_mean = (
+          sum(t.duration for t in self.tests) / float(len(self.tests)))
+
     # Sort tests by duration.
     timed_tests = [t for t in self.tests if t.duration is not None]
     timed_tests.sort(lambda a, b: cmp(b.duration, a.duration))
@@ -338,6 +336,7 @@
         "flags": test.flags,
         "command": self._EscapeCommand(test).replace(ABS_PATH_PREFIX, ""),
         "duration": test.duration,
+        "marked_slow": statusfile.IsSlow(test.outcomes),
       } for test in timed_tests[:20]
     ]
 
@@ -346,6 +345,8 @@
       "mode": self.mode,
       "results": self.results,
       "slowest_tests": slowest_tests,
+      "duration_mean": duration_mean,
+      "test_total": len(self.tests),
     })
 
     with open(self.json_test_results, "w") as f:
diff --git a/tools/testrunner/local/statusfile.py b/tools/testrunner/local/statusfile.py
index 7e96cc3..fde6237 100644
--- a/tools/testrunner/local/statusfile.py
+++ b/tools/testrunner/local/statusfile.py
@@ -36,6 +36,7 @@
 CRASH = "CRASH"
 SLOW = "SLOW"
 FAST_VARIANTS = "FAST_VARIANTS"
+NO_IGNITION = "NO_IGNITION"
 NO_VARIANTS = "NO_VARIANTS"
 # These are just for the status files and are mapped below in DEFS:
 FAIL_OK = "FAIL_OK"
@@ -46,7 +47,8 @@
 
 KEYWORDS = {}
 for key in [SKIP, FAIL, PASS, OKAY, TIMEOUT, CRASH, SLOW, FAIL_OK,
-            FAST_VARIANTS, NO_VARIANTS, PASS_OR_FAIL, FAIL_SLOPPY, ALWAYS]:
+            FAST_VARIANTS, NO_IGNITION, NO_VARIANTS, PASS_OR_FAIL, FAIL_SLOPPY,
+            ALWAYS]:
   KEYWORDS[key] = key
 
 DEFS = {FAIL_OK: [FAIL, OKAY],
@@ -70,6 +72,10 @@
   return SLOW in outcomes
 
 
+def NoIgnitionVariant(outcomes):
+  return NO_IGNITION in outcomes
+
+
 def OnlyStandardVariant(outcomes):
   return NO_VARIANTS in outcomes
 
diff --git a/tools/testrunner/local/testsuite.py b/tools/testrunner/local/testsuite.py
index f43d008..8e8b476 100644
--- a/tools/testrunner/local/testsuite.py
+++ b/tools/testrunner/local/testsuite.py
@@ -41,7 +41,8 @@
   "turbofan": [["--turbo"]],
   "turbofan_opt": [["--turbo", "--always-opt"]],
   "nocrankshaft": [["--nocrankshaft"]],
-  "ignition": [["--ignition", "--turbo"]],
+  "ignition": [["--ignition"]],
+  "ignition_turbofan": [["--ignition", "--turbo", "--turbo-from-bytecode"]],
   "preparser": [["--min-preparse-length=0"]],
 }
 
@@ -51,14 +52,17 @@
   "stress": [["--stress-opt"]],
   "turbofan": [["--turbo"]],
   "nocrankshaft": [["--nocrankshaft"]],
-  "ignition": [["--ignition", "--turbo"]],
+  "ignition": [["--ignition"]],
+  "ignition_turbofan": [["--ignition", "--turbo", "--turbo-from-bytecode"]],
   "preparser": [["--min-preparse-length=0"]],
 }
 
 ALL_VARIANTS = set(["default", "stress", "turbofan", "turbofan_opt",
-                    "nocrankshaft", "ignition", "preparser"])
+                    "nocrankshaft", "ignition", "ignition_turbofan",
+                    "preparser"])
 FAST_VARIANTS = set(["default", "turbofan"])
 STANDARD_VARIANT = set(["default"])
+IGNITION_VARIANT = set(["ignition"])
 
 
 class VariantGenerator(object):
@@ -69,12 +73,15 @@
     self.standard_variant = STANDARD_VARIANT & variants
 
   def FilterVariantsByTest(self, testcase):
-    if testcase.outcomes and statusfile.OnlyStandardVariant(
-        testcase.outcomes):
-      return self.standard_variant
-    if testcase.outcomes and statusfile.OnlyFastVariants(testcase.outcomes):
-      return self.fast_variants
-    return self.all_variants
+    result = self.all_variants
+    if testcase.outcomes:
+      if statusfile.OnlyStandardVariant(testcase.outcomes):
+        return self.standard_variant
+      if statusfile.OnlyFastVariants(testcase.outcomes):
+        result = self.fast_variants
+      if statusfile.NoIgnitionVariant(testcase.outcomes):
+        result = result - IGNITION_VARIANT
+    return result
 
   def GetFlagSets(self, testcase, variant):
     if testcase.outcomes and statusfile.OnlyFastVariants(testcase.outcomes):
diff --git a/tools/testrunner/network/network_execution.py b/tools/testrunner/network/network_execution.py
index c842aba..a954401 100644
--- a/tools/testrunner/network/network_execution.py
+++ b/tools/testrunner/network/network_execution.py
@@ -203,7 +203,6 @@
                   [constants.INFORM_DURATION, perf_key, test.duration,
                    self.context.arch, self.context.mode],
                   self.local_socket)
-              self.indicator.AboutToRun(test)
               has_unexpected_output = test.suite.HasUnexpectedOutput(test)
               if has_unexpected_output:
                 self.failed.append(test)
diff --git a/tools/tickprocessor.js b/tools/tickprocessor.js
index ba7401a..5534355 100644
--- a/tools/tickprocessor.js
+++ b/tools/tickprocessor.js
@@ -83,7 +83,7 @@
     pairwiseTimedRange,
     onlySummary) {
   LogReader.call(this, {
-      'shared-library': { parsers: [null, parseInt, parseInt],
+      'shared-library': { parsers: [null, parseInt, parseInt, parseInt],
           processor: this.processSharedLibrary },
       'code-creation': {
           parsers: [null, parseInt, parseInt, parseInt, null, 'var-args'],
@@ -242,13 +242,13 @@
 
 
 TickProcessor.prototype.processSharedLibrary = function(
-    name, startAddr, endAddr) {
-  var entry = this.profile_.addLibrary(name, startAddr, endAddr);
+    name, startAddr, endAddr, aslrSlide) {
+  var entry = this.profile_.addLibrary(name, startAddr, endAddr, aslrSlide);
   this.setCodeType(entry.getName(), 'SHARED_LIB');
 
   var self = this;
   var libFuncs = this.cppEntriesProvider_.parseVmSymbols(
-      name, startAddr, endAddr, function(fName, fStart, fEnd) {
+      name, startAddr, endAddr, aslrSlide, function(fName, fStart, fEnd) {
     self.profile_.addStaticCode(fName, fStart, fEnd);
     self.setCodeType(fName, 'CPP');
   });
@@ -559,7 +559,7 @@
 
 
 CppEntriesProvider.prototype.parseVmSymbols = function(
-    libName, libStart, libEnd, processorFunc) {
+    libName, libStart, libEnd, libASLRSlide, processorFunc) {
   this.loadSymbols(libName);
 
   var prevEntry;
@@ -588,6 +588,7 @@
     } else if (funcInfo === false) {
       break;
     }
+    funcInfo.start += libASLRSlide;
     if (funcInfo.start < libStart && funcInfo.start < libEnd - libStart) {
       funcInfo.start += libStart;
     }
diff --git a/tools/try_perf.py b/tools/try_perf.py
index fbd4036..5565b80 100755
--- a/tools/try_perf.py
+++ b/tools/try_perf.py
@@ -44,6 +44,7 @@
   'octane-tf-pr',
   'simdjs',
   'sunspider',
+  'wasm',
 ]
 
 V8_BASE = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
diff --git a/tools/verify_source_deps.py b/tools/verify_source_deps.py
index 50caace..56e3156 100755
--- a/tools/verify_source_deps.py
+++ b/tools/verify_source_deps.py
@@ -24,10 +24,10 @@
 
 GYP_FILES = [
   os.path.join(V8_BASE, 'src', 'd8.gyp'),
+  os.path.join(V8_BASE, 'src', 'v8.gyp'),
   os.path.join(V8_BASE, 'src', 'third_party', 'vtune', 'v8vtune.gyp'),
   os.path.join(V8_BASE, 'test', 'cctest', 'cctest.gyp'),
   os.path.join(V8_BASE, 'test', 'unittests', 'unittests.gyp'),
-  os.path.join(V8_BASE, 'tools', 'gyp', 'v8.gyp'),
   os.path.join(V8_BASE, 'tools', 'parser-shell.gyp'),
 ]
 
diff --git a/tools/whitespace.txt b/tools/whitespace.txt
index d1395f5..c571b76 100644
--- a/tools/whitespace.txt
+++ b/tools/whitespace.txt
@@ -5,4 +5,4 @@
 A Smi balks into a war and says:
 "I'm so deoptimized today!"
 The doubles heard this and started to unbox.
-The Smi looked at them when a crazy v8-autoroll account showed up..
+The Smi looked at them when a crazy v8-autoroll account showed NaN..